From 203dec1f6a5d7cac2092ed6904998d24db0f7d74 Mon Sep 17 00:00:00 2001 From: Ayan Sinha Mahapatra Date: Mon, 24 Jun 2024 20:45:59 +0530 Subject: [PATCH] Update cocoapods podfile.lock parser Get all the dependencies from a podfile.lock cocoapods lockfile with its dependency graph information preserved, with resolved package versions, direct dependency relationships, dependency requirements and other extra data. Reference: https://github.com/nexB/scancode.io/issues/1279 Signed-off-by: Ayan Sinha Mahapatra --- CHANGELOG.rst | 4 + src/packagedcode/cocoapods.py | 285 ++- .../assemble/many-podspecs-expected.json | 845 ++++++++- .../many-podspecs-with-license-expected.json | 845 ++++++++- .../assemble/multiple-podspec-expected.json | 305 ++- .../assemble/single-podspec-expected.json | 305 ++- .../assemble/solo/Podfile.lock-expected.json | 305 ++- .../podfile.lock/artsy_eigen_Podfile.lock | 111 ++ .../artsy_eigen_Podfile.lock.expected.json | 1652 +++++++++++++++++ .../braintree_ios_Podfile.lock.expected.json | 592 +++++- tests/packagedcode/test_cocoapods.py | 8 +- 11 files changed, 5132 insertions(+), 125 deletions(-) create mode 100644 tests/packagedcode/data/cocoapods/podfile.lock/artsy_eigen_Podfile.lock create mode 100644 tests/packagedcode/data/cocoapods/podfile.lock/artsy_eigen_Podfile.lock.expected.json diff --git a/CHANGELOG.rst b/CHANGELOG.rst index f7ce8704a0f..8e5d2af1df2 100644 --- a/CHANGELOG.rst +++ b/CHANGELOG.rst @@ -38,6 +38,10 @@ v33.0.0 (next next, roadmap) from nuget lockfile `packages.lock.json`. See https://github.com/nexB/scancode-toolkit/pull/3825 +- Add support for parsing resolved packages and dependency relationships + from cocoapods lockfile `Podfile.lock`. + See https://github.com/nexB/scancode-toolkit/pull/3827 + v32.2.0 - 2024-06-19 ---------------------- diff --git a/src/packagedcode/cocoapods.py b/src/packagedcode/cocoapods.py index 8ca3617800b..4a86dccc8d0 100644 --- a/src/packagedcode/cocoapods.py +++ b/src/packagedcode/cocoapods.py @@ -19,7 +19,8 @@ from packagedcode import models from packagedcode import spec -from packagedcode import utils +from packagedcode.utils import get_base_purl +from packagedcode.utils import build_description """ Handle cocoapods packages manifests for macOS and iOS @@ -232,7 +233,7 @@ def parse(cls, location, package_only=False): extracted_license_statement = podspec.get('license') summary = podspec.get('summary') description = podspec.get('description') - description = utils.build_description( + description = build_description( summary=summary, description=description, ) @@ -292,6 +293,96 @@ class PodfileLockHandler(BasePodHandler): default_primary_language = 'Objective-C' description = 'Cocoapods Podfile.lock' documentation_url = 'https://guides.cocoapods.org/using/the-podfile.html' + is_lockfile = True + + @classmethod + def get_pods_dependency_with_resolved_package( + cls, + dependency_data, + main_pod, + dependencies_for_resolved=[], + ): + """ + Get a DependentPackage object with its resolved package and + dependencies from the `main_pod` string, with additional data + populated from the `PodfileLockDataByPurl` mappings. + """ + purl, xreq = parse_dep_requirements(main_pod) + base_purl = get_base_purl(purl.to_string()) + + resolved_package_mapping = dict( + datasource_id=cls.datasource_id, + type=cls.default_package_type, + primary_language=cls.default_primary_language, + namespace=purl.namespace, + name=purl.name, + version=purl.version, + dependencies=dependencies_for_resolved, + is_virtual=True, + ) + resolved_package = models.PackageData.from_data(resolved_package_mapping) + + checksum = dependency_data.checksum_by_base_purl.get(base_purl) + if checksum: + resolved_package.sha1 = checksum + + is_direct = False + if base_purl in dependency_data.direct_dependency_purls: + is_direct = True + + spec_repo = dependency_data.spec_by_base_purl.get(base_purl) + if spec_repo: + resolved_package.extra_data["spec_repo"] = spec_repo + + external_source = dependency_data.external_sources_by_base_purl.get(base_purl) + if external_source: + resolved_package.extra_data["external_source"] = external_source + + return models.DependentPackage( + purl=purl.to_string(), + # FIXME: why dev? + scope='requires', + extracted_requirement=xreq, + is_runtime=False, + is_optional=True, + is_resolved=True, + is_direct=is_direct, + resolved_package=resolved_package, + ) + + @classmethod + def get_dependencies_for_resolved_package(cls, dependency_data, dep_pods): + """ + Get the list of dependencies with versions and version requirements + for a cocoapods resolved package. + """ + dependencies_for_resolved = [] + for dep_pod in dep_pods: + dep_purl, dep_xreq = parse_dep_requirements(dep_pod) + base_dep_purl = get_base_purl(dep_purl.to_string()) + + dep_version = dependency_data.versions_by_base_purl.get(base_dep_purl) + if dep_version: + purl_mapping = dep_purl.to_dict() + purl_mapping["version"] = dep_version + dep_purl = PackageURL(**purl_mapping) + + if not dep_xreq: + dep_xreq = dep_version + + dependency_for_resolved = models.DependentPackage( + purl=dep_purl.to_string(), + # FIXME: why dev? + scope='requires', + extracted_requirement=dep_xreq, + is_runtime=False, + is_optional=True, + is_resolved=True, + is_direct=True, + ).to_dict() + dependencies_for_resolved.append(dependency_for_resolved) + + return dependencies_for_resolved @classmethod def parse(cls, location, package_only=False): @@ -301,52 +392,145 @@ def parse(cls, location, package_only=False): with open(location) as pfl: data = saneyaml.load(pfl) - pods = data['PODS'] + dependency_data = PodfileLockDataByPurl.collect_dependencies_data_by_purl( + data=data, + package_type=cls.default_package_type, + ) + dependencies = [] + pods = data.get('PODS') or [] for pod in pods: + # dependencies with mappings have direct dependencies if isinstance(pod, dict): - for main_pod, _dep_pods in pod.items(): - - purl, xreq = parse_dep_requirements(main_pod) - - dependencies.append( - models.DependentPackage( - purl=str(purl), - # FIXME: why dev? - scope='requires', - extracted_requirement=xreq, - is_runtime=False, - is_optional=True, - is_resolved=True, - ) + for main_pod, dep_pods in pod.items(): + dependencies_for_resolved = cls.get_dependencies_for_resolved_package( + dependency_data=dependency_data, + dep_pods=dep_pods, ) + dependency = cls.get_pods_dependency_with_resolved_package( + dependency_data=dependency_data, + main_pod=main_pod, + dependencies_for_resolved=dependencies_for_resolved, + ) + dependencies.append(dependency) + # These packages have no direct dependencies elif isinstance(pod, str): - - purl, xreq = parse_dep_requirements(pod) - - dependencies.append( - models.DependentPackage( - purl=str(purl), - # FIXME: why dev? - scope='requires', - extracted_requirement=xreq, - is_runtime=False, - is_optional=True, - is_resolved=True, - ) + dependency = cls.get_pods_dependency_with_resolved_package( + dependency_data, pod, ) + dependencies.append(dependency) + + podfile_checksum = data.get('PODFILE CHECKSUM') + cocoapods_version = data.get('COCOAPODS') + extra_data = { + 'cocoapods': cocoapods_version, + 'podfile_checksum': podfile_checksum, + } package_data = dict( datasource_id=cls.datasource_id, type=cls.default_package_type, primary_language=cls.default_primary_language, dependencies=dependencies, + extra_data=extra_data, ) yield models.PackageData.from_data(package_data, package_only) +class PodfileLockDataByPurl: + """ + Podfile.lock locskfiles contains information about its cocoapods + dependencies in multiple parallel lists by it's name. + + These are: + - PODS : Dependency graph with resolved package versions, dependency + relationships and dependency requirements + - DEPENDENCIES : list of direct dependencies + - SPEC REPOS : location of spec repo having the package metadata podspec + - SPEC CHECKSUMS : sha1 checksums of the package + - CHECKOUT OPTIONS : the version control system info for the package with exact commit + - EXTERNAL SOURCES : External source for a package, locally, or in a external vcs repo + + Additionally the resolved package version for dependencies are also only + present in the top-level, but not in the dependency relationships. + + This class parses these information and stores them in mappings by purl. + """ + + versions_by_base_purl = {} + direct_dependency_purls = [] + spec_by_base_purl = {} + checksum_by_base_purl = {} + external_sources_by_base_purl = {} + + @classmethod + def collect_dependencies_data_by_purl(cls, data, package_type): + """ + Parse and populate cocoapods dependency information by purl, + from the `data` mapping. + """ + dep_data = cls() + + # collect versions of all dependencies + pods = data.get('PODS') or [] + for pod in pods: + if isinstance(pod, dict): + for main_pod, _dep_pods in pod.items(): + purl, xreq = parse_dep_requirements(main_pod) + base_purl = get_base_purl(purl.to_string()) + dep_data.versions_by_base_purl[base_purl] = xreq + + elif isinstance(pod, str): + purl, xreq = parse_dep_requirements(pod) + base_purl = get_base_purl(purl.to_string()) + dep_data.versions_by_base_purl[base_purl] = xreq + + direct_dependencies = data.get('DEPENDENCIES') or [] + for direct_dep in direct_dependencies: + purl, _xreq = parse_dep_requirements(direct_dep) + base_purl = get_base_purl(purl.to_string()) + dep_data.direct_dependency_purls.append(base_purl) + + spec_repos = data.get('SPEC REPOS') or {} + for spec_repo, packages in spec_repos.items(): + for package in packages: + purl, _xreq = parse_dep_requirements(package) + base_purl = get_base_purl(purl.to_string()) + dep_data.spec_by_base_purl[base_purl] = spec_repo + + checksums = data.get('SPEC CHECKSUMS') or {} + for name, checksum in checksums.items(): + purl, _xreq = parse_dep_requirements(name) + base_purl = get_base_purl(purl.to_string()) + dep_data.checksum_by_base_purl[base_purl] = checksum + + checkout_options = data.get('CHECKOUT OPTIONS') or {} + for name, source in checkout_options.items(): + processed_source = process_external_source(source) + base_purl = PackageURL( + type=package_type, + name=name, + ).to_string() + dep_data.external_sources_by_base_purl[base_purl] = processed_source + + external_sources = data.get('EXTERNAL SOURCES') or {} + for name, source in external_sources.items(): + base_purl = PackageURL( + type=package_type, + name=name, + ).to_string() + + # `CHECKOUT OPTIONS` is more verbose than `EXTERNAL SOURCES` + if base_purl in dep_data.external_sources_by_base_purl: + continue + processed_source = process_external_source(source) + dep_data.external_sources_by_base_purl[base_purl] = processed_source + + return dep_data + + class PodspecJsonHandler(models.DatafileHandler): datasource_id = 'cocoapods_podspec_json' path_patterns = ('*.podspec.json',) @@ -566,3 +750,44 @@ def parse_dep_requirements(dep): version=version, ) return purl, requirement + + +def process_external_source(source_mapping): + """ + Process dependencies with external sources into + a path or URL string. + + Some examples: + + boost: + :podspec: "../node_modules/react-native/third-party-podspecs/boost.podspec" + Pulley: + :branch: master + :git: https://github.com/artsy/Pulley.git + SnapKit: + :branch: xcode102 + :git: "git@github.com:alanzeino/SnapKit.git" + SwiftyJSON: + :commit: af76cf3ef710b6ca5f8c05f3a31307d44a3c5828 + :git: https://github.com/SwiftyJSON/SwiftyJSON/ + tipsi-stripe: + :path: "../node_modules/tipsi-stripe" + """ + + # this could be either `:path`, `:podspec` or `:git` + if len(source_mapping.keys()) == 1: + return str(list(source_mapping.values()).pop()) + + # this is a link to a git repository + elif len(source_mapping.keys()) == 2 and ':git' in source_mapping: + repo_url = source_mapping.get(':git').replace('.git', '').replace('git@', 'https://') + repo_url = repo_url.rstrip('/') + if ':commit' in source_mapping: + commit = source_mapping.get(':commit') + return f"{repo_url}/tree/{commit}" + elif ':branch' in source_mapping: + branch = source_mapping.get(':branch') + return f"{repo_url}/tree/{branch}" + + # In all other cases + return str(source_mapping) diff --git a/tests/packagedcode/data/cocoapods/assemble/many-podspecs-expected.json b/tests/packagedcode/data/cocoapods/assemble/many-podspecs-expected.json index aec5430ad7a..322b55d87e9 100644 --- a/tests/packagedcode/data/cocoapods/assemble/many-podspecs-expected.json +++ b/tests/packagedcode/data/cocoapods/assemble/many-podspecs-expected.json @@ -484,7 +484,51 @@ "is_optional": true, "is_resolved": true, "is_direct": true, - "resolved_package": {}, + "resolved_package": { + "type": "cocoapods", + "namespace": null, + "name": "AWSCore", + "version": "2.27.0", + "qualifiers": {}, + "subpath": null, + "primary_language": "Objective-C", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": null, + "size": null, + "sha1": "d605449939e5b40704f11ff9f91f905f7d978589", + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "holder": null, + "declared_license_expression": null, + "declared_license_expression_spdx": null, + "license_detections": [], + "other_license_expression": null, + "other_license_expression_spdx": null, + "other_license_detections": [], + "extracted_license_statement": null, + "notice_text": null, + "source_packages": [], + "file_references": [], + "is_private": false, + "is_virtual": true, + "extra_data": { + "spec_repo": "trunk" + }, + "dependencies": [], + "repository_homepage_url": null, + "repository_download_url": null, + "api_data_url": null, + "datasource_id": "cocoapods_podfile_lock" + }, "extra_data": {}, "dependency_uid": "pkg:cocoapods/AWSCore@2.27.0?uuid=fixed-uid-done-for-testing-5642512d1758", "for_package_uid": "pkg:cocoapods/CoreMLPredictionsPlugin@%24AMPLIFY_VERSION?uuid=fixed-uid-done-for-testing-5642512d1758", @@ -498,8 +542,64 @@ "is_runtime": false, "is_optional": true, "is_resolved": true, - "is_direct": true, - "resolved_package": {}, + "is_direct": false, + "resolved_package": { + "type": "cocoapods", + "namespace": null, + "name": "CwlCatchException", + "version": "2.1.1", + "qualifiers": {}, + "subpath": null, + "primary_language": "Objective-C", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": null, + "size": null, + "sha1": "86760545af2a490a23e964d76d7c77442dbce79b", + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "holder": null, + "declared_license_expression": null, + "declared_license_expression_spdx": null, + "license_detections": [], + "other_license_expression": null, + "other_license_expression_spdx": null, + "other_license_detections": [], + "extracted_license_statement": null, + "notice_text": null, + "source_packages": [], + "file_references": [], + "is_private": false, + "is_virtual": true, + "extra_data": { + "spec_repo": "trunk" + }, + "dependencies": [ + { + "purl": "pkg:cocoapods/CwlCatchExceptionSupport@2.1.1", + "extracted_requirement": "~> 2.1.1", + "scope": "requires", + "is_runtime": false, + "is_optional": true, + "is_resolved": true, + "is_direct": true, + "resolved_package": {}, + "extra_data": {} + } + ], + "repository_homepage_url": null, + "repository_download_url": null, + "api_data_url": null, + "datasource_id": "cocoapods_podfile_lock" + }, "extra_data": {}, "dependency_uid": "pkg:cocoapods/CwlCatchException@2.1.1?uuid=fixed-uid-done-for-testing-5642512d1758", "for_package_uid": "pkg:cocoapods/CoreMLPredictionsPlugin@%24AMPLIFY_VERSION?uuid=fixed-uid-done-for-testing-5642512d1758", @@ -513,8 +613,52 @@ "is_runtime": false, "is_optional": true, "is_resolved": true, - "is_direct": true, - "resolved_package": {}, + "is_direct": false, + "resolved_package": { + "type": "cocoapods", + "namespace": null, + "name": "CwlCatchExceptionSupport", + "version": "2.1.1", + "qualifiers": {}, + "subpath": null, + "primary_language": "Objective-C", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": null, + "size": null, + "sha1": "a004322095d7101b945442c86adc7cec0650f676", + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "holder": null, + "declared_license_expression": null, + "declared_license_expression_spdx": null, + "license_detections": [], + "other_license_expression": null, + "other_license_expression_spdx": null, + "other_license_detections": [], + "extracted_license_statement": null, + "notice_text": null, + "source_packages": [], + "file_references": [], + "is_private": false, + "is_virtual": true, + "extra_data": { + "spec_repo": "trunk" + }, + "dependencies": [], + "repository_homepage_url": null, + "repository_download_url": null, + "api_data_url": null, + "datasource_id": "cocoapods_podfile_lock" + }, "extra_data": {}, "dependency_uid": "pkg:cocoapods/CwlCatchExceptionSupport@2.1.1?uuid=fixed-uid-done-for-testing-5642512d1758", "for_package_uid": "pkg:cocoapods/CoreMLPredictionsPlugin@%24AMPLIFY_VERSION?uuid=fixed-uid-done-for-testing-5642512d1758", @@ -528,8 +672,52 @@ "is_runtime": false, "is_optional": true, "is_resolved": true, - "is_direct": true, - "resolved_package": {}, + "is_direct": false, + "resolved_package": { + "type": "cocoapods", + "namespace": null, + "name": "CwlMachBadInstructionHandler", + "version": "2.1.0", + "qualifiers": {}, + "subpath": null, + "primary_language": "Objective-C", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": null, + "size": null, + "sha1": "aa1fe9f2d08b29507c150d099434b2890247e7f8", + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "holder": null, + "declared_license_expression": null, + "declared_license_expression_spdx": null, + "license_detections": [], + "other_license_expression": null, + "other_license_expression_spdx": null, + "other_license_detections": [], + "extracted_license_statement": null, + "notice_text": null, + "source_packages": [], + "file_references": [], + "is_private": false, + "is_virtual": true, + "extra_data": { + "spec_repo": "trunk" + }, + "dependencies": [], + "repository_homepage_url": null, + "repository_download_url": null, + "api_data_url": null, + "datasource_id": "cocoapods_podfile_lock" + }, "extra_data": {}, "dependency_uid": "pkg:cocoapods/CwlMachBadInstructionHandler@2.1.0?uuid=fixed-uid-done-for-testing-5642512d1758", "for_package_uid": "pkg:cocoapods/CoreMLPredictionsPlugin@%24AMPLIFY_VERSION?uuid=fixed-uid-done-for-testing-5642512d1758", @@ -543,8 +731,52 @@ "is_runtime": false, "is_optional": true, "is_resolved": true, - "is_direct": true, - "resolved_package": {}, + "is_direct": false, + "resolved_package": { + "type": "cocoapods", + "namespace": null, + "name": "CwlPosixPreconditionTesting", + "version": "2.1.0", + "qualifiers": {}, + "subpath": null, + "primary_language": "Objective-C", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": null, + "size": null, + "sha1": "1ba4471964405941f79b3f06bbcf3c2be782950c", + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "holder": null, + "declared_license_expression": null, + "declared_license_expression_spdx": null, + "license_detections": [], + "other_license_expression": null, + "other_license_expression_spdx": null, + "other_license_detections": [], + "extracted_license_statement": null, + "notice_text": null, + "source_packages": [], + "file_references": [], + "is_private": false, + "is_virtual": true, + "extra_data": { + "spec_repo": "trunk" + }, + "dependencies": [], + "repository_homepage_url": null, + "repository_download_url": null, + "api_data_url": null, + "datasource_id": "cocoapods_podfile_lock" + }, "extra_data": {}, "dependency_uid": "pkg:cocoapods/CwlPosixPreconditionTesting@2.1.0?uuid=fixed-uid-done-for-testing-5642512d1758", "for_package_uid": "pkg:cocoapods/CoreMLPredictionsPlugin@%24AMPLIFY_VERSION?uuid=fixed-uid-done-for-testing-5642512d1758", @@ -559,7 +791,85 @@ "is_optional": true, "is_resolved": true, "is_direct": true, - "resolved_package": {}, + "resolved_package": { + "type": "cocoapods", + "namespace": null, + "name": "CwlPreconditionTesting", + "version": "2.1.0", + "qualifiers": {}, + "subpath": null, + "primary_language": "Objective-C", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": null, + "size": null, + "sha1": "73ae5de517a8761e5e40fb4136c6a26365af0440", + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "holder": null, + "declared_license_expression": null, + "declared_license_expression_spdx": null, + "license_detections": [], + "other_license_expression": null, + "other_license_expression_spdx": null, + "other_license_detections": [], + "extracted_license_statement": null, + "notice_text": null, + "source_packages": [], + "file_references": [], + "is_private": false, + "is_virtual": true, + "extra_data": { + "external_source": "{':git': 'https://github.com/mattgallagher/CwlPreconditionTesting.git', ':tag': '2.1.0'}" + }, + "dependencies": [ + { + "purl": "pkg:cocoapods/CwlCatchException@2.1.1", + "extracted_requirement": "~> 2.1.1", + "scope": "requires", + "is_runtime": false, + "is_optional": true, + "is_resolved": true, + "is_direct": true, + "resolved_package": {}, + "extra_data": {} + }, + { + "purl": "pkg:cocoapods/CwlMachBadInstructionHandler@2.1.0", + "extracted_requirement": "~> 2.1.0", + "scope": "requires", + "is_runtime": false, + "is_optional": true, + "is_resolved": true, + "is_direct": true, + "resolved_package": {}, + "extra_data": {} + }, + { + "purl": "pkg:cocoapods/CwlPosixPreconditionTesting@2.1.0", + "extracted_requirement": "~> 2.1.0", + "scope": "requires", + "is_runtime": false, + "is_optional": true, + "is_resolved": true, + "is_direct": true, + "resolved_package": {}, + "extra_data": {} + } + ], + "repository_homepage_url": null, + "repository_download_url": null, + "api_data_url": null, + "datasource_id": "cocoapods_podfile_lock" + }, "extra_data": {}, "dependency_uid": "pkg:cocoapods/CwlPreconditionTesting@2.1.0?uuid=fixed-uid-done-for-testing-5642512d1758", "for_package_uid": "pkg:cocoapods/CoreMLPredictionsPlugin@%24AMPLIFY_VERSION?uuid=fixed-uid-done-for-testing-5642512d1758", @@ -574,7 +884,49 @@ "is_optional": true, "is_resolved": true, "is_direct": true, - "resolved_package": {}, + "resolved_package": { + "type": "cocoapods", + "namespace": "SwiftFormat", + "name": "CLI", + "version": "0.44.17", + "qualifiers": {}, + "subpath": null, + "primary_language": "Objective-C", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": null, + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "holder": null, + "declared_license_expression": null, + "declared_license_expression_spdx": null, + "license_detections": [], + "other_license_expression": null, + "other_license_expression_spdx": null, + "other_license_detections": [], + "extracted_license_statement": null, + "notice_text": null, + "source_packages": [], + "file_references": [], + "is_private": false, + "is_virtual": true, + "extra_data": {}, + "dependencies": [], + "repository_homepage_url": null, + "repository_download_url": null, + "api_data_url": null, + "datasource_id": "cocoapods_podfile_lock" + }, "extra_data": {}, "dependency_uid": "pkg:cocoapods/SwiftFormat/CLI@0.44.17?uuid=fixed-uid-done-for-testing-5642512d1758", "for_package_uid": "pkg:cocoapods/CoreMLPredictionsPlugin@%24AMPLIFY_VERSION?uuid=fixed-uid-done-for-testing-5642512d1758", @@ -589,7 +941,51 @@ "is_optional": true, "is_resolved": true, "is_direct": true, - "resolved_package": {}, + "resolved_package": { + "type": "cocoapods", + "namespace": null, + "name": "SwiftLint", + "version": "0.46.2", + "qualifiers": {}, + "subpath": null, + "primary_language": "Objective-C", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": null, + "size": null, + "sha1": "6bc52a21f0fd44cab9aa2dc8e534fb9f5e3ec507", + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "holder": null, + "declared_license_expression": null, + "declared_license_expression_spdx": null, + "license_detections": [], + "other_license_expression": null, + "other_license_expression_spdx": null, + "other_license_detections": [], + "extracted_license_statement": null, + "notice_text": null, + "source_packages": [], + "file_references": [], + "is_private": false, + "is_virtual": true, + "extra_data": { + "spec_repo": "trunk" + }, + "dependencies": [], + "repository_homepage_url": null, + "repository_download_url": null, + "api_data_url": null, + "datasource_id": "cocoapods_podfile_lock" + }, "extra_data": {}, "dependency_uid": "pkg:cocoapods/SwiftLint@0.46.2?uuid=fixed-uid-done-for-testing-5642512d1758", "for_package_uid": "pkg:cocoapods/CoreMLPredictionsPlugin@%24AMPLIFY_VERSION?uuid=fixed-uid-done-for-testing-5642512d1758", @@ -1209,7 +1605,10 @@ "file_references": [], "is_private": false, "is_virtual": false, - "extra_data": {}, + "extra_data": { + "cocoapods": "1.11.3", + "podfile_checksum": "5e20e56b8ef40444b018a3736b7b726ff9772f00" + }, "dependencies": [ { "purl": "pkg:cocoapods/AWSCore@2.27.0", @@ -1219,7 +1618,51 @@ "is_optional": true, "is_resolved": true, "is_direct": true, - "resolved_package": {}, + "resolved_package": { + "type": "cocoapods", + "namespace": null, + "name": "AWSCore", + "version": "2.27.0", + "qualifiers": {}, + "subpath": null, + "primary_language": "Objective-C", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": null, + "size": null, + "sha1": "d605449939e5b40704f11ff9f91f905f7d978589", + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "holder": null, + "declared_license_expression": null, + "declared_license_expression_spdx": null, + "license_detections": [], + "other_license_expression": null, + "other_license_expression_spdx": null, + "other_license_detections": [], + "extracted_license_statement": null, + "notice_text": null, + "source_packages": [], + "file_references": [], + "is_private": false, + "is_virtual": true, + "extra_data": { + "spec_repo": "trunk" + }, + "dependencies": [], + "repository_homepage_url": null, + "repository_download_url": null, + "api_data_url": null, + "datasource_id": "cocoapods_podfile_lock" + }, "extra_data": {} }, { @@ -1229,8 +1672,64 @@ "is_runtime": false, "is_optional": true, "is_resolved": true, - "is_direct": true, - "resolved_package": {}, + "is_direct": false, + "resolved_package": { + "type": "cocoapods", + "namespace": null, + "name": "CwlCatchException", + "version": "2.1.1", + "qualifiers": {}, + "subpath": null, + "primary_language": "Objective-C", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": null, + "size": null, + "sha1": "86760545af2a490a23e964d76d7c77442dbce79b", + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "holder": null, + "declared_license_expression": null, + "declared_license_expression_spdx": null, + "license_detections": [], + "other_license_expression": null, + "other_license_expression_spdx": null, + "other_license_detections": [], + "extracted_license_statement": null, + "notice_text": null, + "source_packages": [], + "file_references": [], + "is_private": false, + "is_virtual": true, + "extra_data": { + "spec_repo": "trunk" + }, + "dependencies": [ + { + "purl": "pkg:cocoapods/CwlCatchExceptionSupport@2.1.1", + "extracted_requirement": "~> 2.1.1", + "scope": "requires", + "is_runtime": false, + "is_optional": true, + "is_resolved": true, + "is_direct": true, + "resolved_package": {}, + "extra_data": {} + } + ], + "repository_homepage_url": null, + "repository_download_url": null, + "api_data_url": null, + "datasource_id": "cocoapods_podfile_lock" + }, "extra_data": {} }, { @@ -1240,8 +1739,52 @@ "is_runtime": false, "is_optional": true, "is_resolved": true, - "is_direct": true, - "resolved_package": {}, + "is_direct": false, + "resolved_package": { + "type": "cocoapods", + "namespace": null, + "name": "CwlCatchExceptionSupport", + "version": "2.1.1", + "qualifiers": {}, + "subpath": null, + "primary_language": "Objective-C", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": null, + "size": null, + "sha1": "a004322095d7101b945442c86adc7cec0650f676", + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "holder": null, + "declared_license_expression": null, + "declared_license_expression_spdx": null, + "license_detections": [], + "other_license_expression": null, + "other_license_expression_spdx": null, + "other_license_detections": [], + "extracted_license_statement": null, + "notice_text": null, + "source_packages": [], + "file_references": [], + "is_private": false, + "is_virtual": true, + "extra_data": { + "spec_repo": "trunk" + }, + "dependencies": [], + "repository_homepage_url": null, + "repository_download_url": null, + "api_data_url": null, + "datasource_id": "cocoapods_podfile_lock" + }, "extra_data": {} }, { @@ -1251,8 +1794,52 @@ "is_runtime": false, "is_optional": true, "is_resolved": true, - "is_direct": true, - "resolved_package": {}, + "is_direct": false, + "resolved_package": { + "type": "cocoapods", + "namespace": null, + "name": "CwlMachBadInstructionHandler", + "version": "2.1.0", + "qualifiers": {}, + "subpath": null, + "primary_language": "Objective-C", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": null, + "size": null, + "sha1": "aa1fe9f2d08b29507c150d099434b2890247e7f8", + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "holder": null, + "declared_license_expression": null, + "declared_license_expression_spdx": null, + "license_detections": [], + "other_license_expression": null, + "other_license_expression_spdx": null, + "other_license_detections": [], + "extracted_license_statement": null, + "notice_text": null, + "source_packages": [], + "file_references": [], + "is_private": false, + "is_virtual": true, + "extra_data": { + "spec_repo": "trunk" + }, + "dependencies": [], + "repository_homepage_url": null, + "repository_download_url": null, + "api_data_url": null, + "datasource_id": "cocoapods_podfile_lock" + }, "extra_data": {} }, { @@ -1262,8 +1849,52 @@ "is_runtime": false, "is_optional": true, "is_resolved": true, - "is_direct": true, - "resolved_package": {}, + "is_direct": false, + "resolved_package": { + "type": "cocoapods", + "namespace": null, + "name": "CwlPosixPreconditionTesting", + "version": "2.1.0", + "qualifiers": {}, + "subpath": null, + "primary_language": "Objective-C", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": null, + "size": null, + "sha1": "1ba4471964405941f79b3f06bbcf3c2be782950c", + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "holder": null, + "declared_license_expression": null, + "declared_license_expression_spdx": null, + "license_detections": [], + "other_license_expression": null, + "other_license_expression_spdx": null, + "other_license_detections": [], + "extracted_license_statement": null, + "notice_text": null, + "source_packages": [], + "file_references": [], + "is_private": false, + "is_virtual": true, + "extra_data": { + "spec_repo": "trunk" + }, + "dependencies": [], + "repository_homepage_url": null, + "repository_download_url": null, + "api_data_url": null, + "datasource_id": "cocoapods_podfile_lock" + }, "extra_data": {} }, { @@ -1274,7 +1905,85 @@ "is_optional": true, "is_resolved": true, "is_direct": true, - "resolved_package": {}, + "resolved_package": { + "type": "cocoapods", + "namespace": null, + "name": "CwlPreconditionTesting", + "version": "2.1.0", + "qualifiers": {}, + "subpath": null, + "primary_language": "Objective-C", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": null, + "size": null, + "sha1": "73ae5de517a8761e5e40fb4136c6a26365af0440", + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "holder": null, + "declared_license_expression": null, + "declared_license_expression_spdx": null, + "license_detections": [], + "other_license_expression": null, + "other_license_expression_spdx": null, + "other_license_detections": [], + "extracted_license_statement": null, + "notice_text": null, + "source_packages": [], + "file_references": [], + "is_private": false, + "is_virtual": true, + "extra_data": { + "external_source": "{':git': 'https://github.com/mattgallagher/CwlPreconditionTesting.git', ':tag': '2.1.0'}" + }, + "dependencies": [ + { + "purl": "pkg:cocoapods/CwlCatchException@2.1.1", + "extracted_requirement": "~> 2.1.1", + "scope": "requires", + "is_runtime": false, + "is_optional": true, + "is_resolved": true, + "is_direct": true, + "resolved_package": {}, + "extra_data": {} + }, + { + "purl": "pkg:cocoapods/CwlMachBadInstructionHandler@2.1.0", + "extracted_requirement": "~> 2.1.0", + "scope": "requires", + "is_runtime": false, + "is_optional": true, + "is_resolved": true, + "is_direct": true, + "resolved_package": {}, + "extra_data": {} + }, + { + "purl": "pkg:cocoapods/CwlPosixPreconditionTesting@2.1.0", + "extracted_requirement": "~> 2.1.0", + "scope": "requires", + "is_runtime": false, + "is_optional": true, + "is_resolved": true, + "is_direct": true, + "resolved_package": {}, + "extra_data": {} + } + ], + "repository_homepage_url": null, + "repository_download_url": null, + "api_data_url": null, + "datasource_id": "cocoapods_podfile_lock" + }, "extra_data": {} }, { @@ -1285,7 +1994,49 @@ "is_optional": true, "is_resolved": true, "is_direct": true, - "resolved_package": {}, + "resolved_package": { + "type": "cocoapods", + "namespace": "SwiftFormat", + "name": "CLI", + "version": "0.44.17", + "qualifiers": {}, + "subpath": null, + "primary_language": "Objective-C", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": null, + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "holder": null, + "declared_license_expression": null, + "declared_license_expression_spdx": null, + "license_detections": [], + "other_license_expression": null, + "other_license_expression_spdx": null, + "other_license_detections": [], + "extracted_license_statement": null, + "notice_text": null, + "source_packages": [], + "file_references": [], + "is_private": false, + "is_virtual": true, + "extra_data": {}, + "dependencies": [], + "repository_homepage_url": null, + "repository_download_url": null, + "api_data_url": null, + "datasource_id": "cocoapods_podfile_lock" + }, "extra_data": {} }, { @@ -1296,7 +2047,51 @@ "is_optional": true, "is_resolved": true, "is_direct": true, - "resolved_package": {}, + "resolved_package": { + "type": "cocoapods", + "namespace": null, + "name": "SwiftLint", + "version": "0.46.2", + "qualifiers": {}, + "subpath": null, + "primary_language": "Objective-C", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": null, + "size": null, + "sha1": "6bc52a21f0fd44cab9aa2dc8e534fb9f5e3ec507", + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "holder": null, + "declared_license_expression": null, + "declared_license_expression_spdx": null, + "license_detections": [], + "other_license_expression": null, + "other_license_expression_spdx": null, + "other_license_detections": [], + "extracted_license_statement": null, + "notice_text": null, + "source_packages": [], + "file_references": [], + "is_private": false, + "is_virtual": true, + "extra_data": { + "spec_repo": "trunk" + }, + "dependencies": [], + "repository_homepage_url": null, + "repository_download_url": null, + "api_data_url": null, + "datasource_id": "cocoapods_podfile_lock" + }, "extra_data": {} } ], diff --git a/tests/packagedcode/data/cocoapods/assemble/many-podspecs-with-license-expected.json b/tests/packagedcode/data/cocoapods/assemble/many-podspecs-with-license-expected.json index 69ed0d5f031..01bcaea6fc0 100644 --- a/tests/packagedcode/data/cocoapods/assemble/many-podspecs-with-license-expected.json +++ b/tests/packagedcode/data/cocoapods/assemble/many-podspecs-with-license-expected.json @@ -484,7 +484,51 @@ "is_optional": true, "is_resolved": true, "is_direct": true, - "resolved_package": {}, + "resolved_package": { + "type": "cocoapods", + "namespace": null, + "name": "AWSCore", + "version": "2.27.0", + "qualifiers": {}, + "subpath": null, + "primary_language": "Objective-C", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": null, + "size": null, + "sha1": "d605449939e5b40704f11ff9f91f905f7d978589", + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "holder": null, + "declared_license_expression": null, + "declared_license_expression_spdx": null, + "license_detections": [], + "other_license_expression": null, + "other_license_expression_spdx": null, + "other_license_detections": [], + "extracted_license_statement": null, + "notice_text": null, + "source_packages": [], + "file_references": [], + "is_private": false, + "is_virtual": true, + "extra_data": { + "spec_repo": "trunk" + }, + "dependencies": [], + "repository_homepage_url": null, + "repository_download_url": null, + "api_data_url": null, + "datasource_id": "cocoapods_podfile_lock" + }, "extra_data": {}, "dependency_uid": "pkg:cocoapods/AWSCore@2.27.0?uuid=fixed-uid-done-for-testing-5642512d1758", "for_package_uid": "pkg:cocoapods/CoreMLPredictionsPlugin@%24AMPLIFY_VERSION?uuid=fixed-uid-done-for-testing-5642512d1758", @@ -498,8 +542,64 @@ "is_runtime": false, "is_optional": true, "is_resolved": true, - "is_direct": true, - "resolved_package": {}, + "is_direct": false, + "resolved_package": { + "type": "cocoapods", + "namespace": null, + "name": "CwlCatchException", + "version": "2.1.1", + "qualifiers": {}, + "subpath": null, + "primary_language": "Objective-C", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": null, + "size": null, + "sha1": "86760545af2a490a23e964d76d7c77442dbce79b", + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "holder": null, + "declared_license_expression": null, + "declared_license_expression_spdx": null, + "license_detections": [], + "other_license_expression": null, + "other_license_expression_spdx": null, + "other_license_detections": [], + "extracted_license_statement": null, + "notice_text": null, + "source_packages": [], + "file_references": [], + "is_private": false, + "is_virtual": true, + "extra_data": { + "spec_repo": "trunk" + }, + "dependencies": [ + { + "purl": "pkg:cocoapods/CwlCatchExceptionSupport@2.1.1", + "extracted_requirement": "~> 2.1.1", + "scope": "requires", + "is_runtime": false, + "is_optional": true, + "is_resolved": true, + "is_direct": true, + "resolved_package": {}, + "extra_data": {} + } + ], + "repository_homepage_url": null, + "repository_download_url": null, + "api_data_url": null, + "datasource_id": "cocoapods_podfile_lock" + }, "extra_data": {}, "dependency_uid": "pkg:cocoapods/CwlCatchException@2.1.1?uuid=fixed-uid-done-for-testing-5642512d1758", "for_package_uid": "pkg:cocoapods/CoreMLPredictionsPlugin@%24AMPLIFY_VERSION?uuid=fixed-uid-done-for-testing-5642512d1758", @@ -513,8 +613,52 @@ "is_runtime": false, "is_optional": true, "is_resolved": true, - "is_direct": true, - "resolved_package": {}, + "is_direct": false, + "resolved_package": { + "type": "cocoapods", + "namespace": null, + "name": "CwlCatchExceptionSupport", + "version": "2.1.1", + "qualifiers": {}, + "subpath": null, + "primary_language": "Objective-C", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": null, + "size": null, + "sha1": "a004322095d7101b945442c86adc7cec0650f676", + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "holder": null, + "declared_license_expression": null, + "declared_license_expression_spdx": null, + "license_detections": [], + "other_license_expression": null, + "other_license_expression_spdx": null, + "other_license_detections": [], + "extracted_license_statement": null, + "notice_text": null, + "source_packages": [], + "file_references": [], + "is_private": false, + "is_virtual": true, + "extra_data": { + "spec_repo": "trunk" + }, + "dependencies": [], + "repository_homepage_url": null, + "repository_download_url": null, + "api_data_url": null, + "datasource_id": "cocoapods_podfile_lock" + }, "extra_data": {}, "dependency_uid": "pkg:cocoapods/CwlCatchExceptionSupport@2.1.1?uuid=fixed-uid-done-for-testing-5642512d1758", "for_package_uid": "pkg:cocoapods/CoreMLPredictionsPlugin@%24AMPLIFY_VERSION?uuid=fixed-uid-done-for-testing-5642512d1758", @@ -528,8 +672,52 @@ "is_runtime": false, "is_optional": true, "is_resolved": true, - "is_direct": true, - "resolved_package": {}, + "is_direct": false, + "resolved_package": { + "type": "cocoapods", + "namespace": null, + "name": "CwlMachBadInstructionHandler", + "version": "2.1.0", + "qualifiers": {}, + "subpath": null, + "primary_language": "Objective-C", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": null, + "size": null, + "sha1": "aa1fe9f2d08b29507c150d099434b2890247e7f8", + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "holder": null, + "declared_license_expression": null, + "declared_license_expression_spdx": null, + "license_detections": [], + "other_license_expression": null, + "other_license_expression_spdx": null, + "other_license_detections": [], + "extracted_license_statement": null, + "notice_text": null, + "source_packages": [], + "file_references": [], + "is_private": false, + "is_virtual": true, + "extra_data": { + "spec_repo": "trunk" + }, + "dependencies": [], + "repository_homepage_url": null, + "repository_download_url": null, + "api_data_url": null, + "datasource_id": "cocoapods_podfile_lock" + }, "extra_data": {}, "dependency_uid": "pkg:cocoapods/CwlMachBadInstructionHandler@2.1.0?uuid=fixed-uid-done-for-testing-5642512d1758", "for_package_uid": "pkg:cocoapods/CoreMLPredictionsPlugin@%24AMPLIFY_VERSION?uuid=fixed-uid-done-for-testing-5642512d1758", @@ -543,8 +731,52 @@ "is_runtime": false, "is_optional": true, "is_resolved": true, - "is_direct": true, - "resolved_package": {}, + "is_direct": false, + "resolved_package": { + "type": "cocoapods", + "namespace": null, + "name": "CwlPosixPreconditionTesting", + "version": "2.1.0", + "qualifiers": {}, + "subpath": null, + "primary_language": "Objective-C", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": null, + "size": null, + "sha1": "1ba4471964405941f79b3f06bbcf3c2be782950c", + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "holder": null, + "declared_license_expression": null, + "declared_license_expression_spdx": null, + "license_detections": [], + "other_license_expression": null, + "other_license_expression_spdx": null, + "other_license_detections": [], + "extracted_license_statement": null, + "notice_text": null, + "source_packages": [], + "file_references": [], + "is_private": false, + "is_virtual": true, + "extra_data": { + "spec_repo": "trunk" + }, + "dependencies": [], + "repository_homepage_url": null, + "repository_download_url": null, + "api_data_url": null, + "datasource_id": "cocoapods_podfile_lock" + }, "extra_data": {}, "dependency_uid": "pkg:cocoapods/CwlPosixPreconditionTesting@2.1.0?uuid=fixed-uid-done-for-testing-5642512d1758", "for_package_uid": "pkg:cocoapods/CoreMLPredictionsPlugin@%24AMPLIFY_VERSION?uuid=fixed-uid-done-for-testing-5642512d1758", @@ -559,7 +791,85 @@ "is_optional": true, "is_resolved": true, "is_direct": true, - "resolved_package": {}, + "resolved_package": { + "type": "cocoapods", + "namespace": null, + "name": "CwlPreconditionTesting", + "version": "2.1.0", + "qualifiers": {}, + "subpath": null, + "primary_language": "Objective-C", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": null, + "size": null, + "sha1": "73ae5de517a8761e5e40fb4136c6a26365af0440", + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "holder": null, + "declared_license_expression": null, + "declared_license_expression_spdx": null, + "license_detections": [], + "other_license_expression": null, + "other_license_expression_spdx": null, + "other_license_detections": [], + "extracted_license_statement": null, + "notice_text": null, + "source_packages": [], + "file_references": [], + "is_private": false, + "is_virtual": true, + "extra_data": { + "external_source": "{':git': 'https://github.com/mattgallagher/CwlPreconditionTesting.git', ':tag': '2.1.0'}" + }, + "dependencies": [ + { + "purl": "pkg:cocoapods/CwlCatchException@2.1.1", + "extracted_requirement": "~> 2.1.1", + "scope": "requires", + "is_runtime": false, + "is_optional": true, + "is_resolved": true, + "is_direct": true, + "resolved_package": {}, + "extra_data": {} + }, + { + "purl": "pkg:cocoapods/CwlMachBadInstructionHandler@2.1.0", + "extracted_requirement": "~> 2.1.0", + "scope": "requires", + "is_runtime": false, + "is_optional": true, + "is_resolved": true, + "is_direct": true, + "resolved_package": {}, + "extra_data": {} + }, + { + "purl": "pkg:cocoapods/CwlPosixPreconditionTesting@2.1.0", + "extracted_requirement": "~> 2.1.0", + "scope": "requires", + "is_runtime": false, + "is_optional": true, + "is_resolved": true, + "is_direct": true, + "resolved_package": {}, + "extra_data": {} + } + ], + "repository_homepage_url": null, + "repository_download_url": null, + "api_data_url": null, + "datasource_id": "cocoapods_podfile_lock" + }, "extra_data": {}, "dependency_uid": "pkg:cocoapods/CwlPreconditionTesting@2.1.0?uuid=fixed-uid-done-for-testing-5642512d1758", "for_package_uid": "pkg:cocoapods/CoreMLPredictionsPlugin@%24AMPLIFY_VERSION?uuid=fixed-uid-done-for-testing-5642512d1758", @@ -574,7 +884,49 @@ "is_optional": true, "is_resolved": true, "is_direct": true, - "resolved_package": {}, + "resolved_package": { + "type": "cocoapods", + "namespace": "SwiftFormat", + "name": "CLI", + "version": "0.44.17", + "qualifiers": {}, + "subpath": null, + "primary_language": "Objective-C", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": null, + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "holder": null, + "declared_license_expression": null, + "declared_license_expression_spdx": null, + "license_detections": [], + "other_license_expression": null, + "other_license_expression_spdx": null, + "other_license_detections": [], + "extracted_license_statement": null, + "notice_text": null, + "source_packages": [], + "file_references": [], + "is_private": false, + "is_virtual": true, + "extra_data": {}, + "dependencies": [], + "repository_homepage_url": null, + "repository_download_url": null, + "api_data_url": null, + "datasource_id": "cocoapods_podfile_lock" + }, "extra_data": {}, "dependency_uid": "pkg:cocoapods/SwiftFormat/CLI@0.44.17?uuid=fixed-uid-done-for-testing-5642512d1758", "for_package_uid": "pkg:cocoapods/CoreMLPredictionsPlugin@%24AMPLIFY_VERSION?uuid=fixed-uid-done-for-testing-5642512d1758", @@ -589,7 +941,51 @@ "is_optional": true, "is_resolved": true, "is_direct": true, - "resolved_package": {}, + "resolved_package": { + "type": "cocoapods", + "namespace": null, + "name": "SwiftLint", + "version": "0.46.2", + "qualifiers": {}, + "subpath": null, + "primary_language": "Objective-C", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": null, + "size": null, + "sha1": "6bc52a21f0fd44cab9aa2dc8e534fb9f5e3ec507", + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "holder": null, + "declared_license_expression": null, + "declared_license_expression_spdx": null, + "license_detections": [], + "other_license_expression": null, + "other_license_expression_spdx": null, + "other_license_detections": [], + "extracted_license_statement": null, + "notice_text": null, + "source_packages": [], + "file_references": [], + "is_private": false, + "is_virtual": true, + "extra_data": { + "spec_repo": "trunk" + }, + "dependencies": [], + "repository_homepage_url": null, + "repository_download_url": null, + "api_data_url": null, + "datasource_id": "cocoapods_podfile_lock" + }, "extra_data": {}, "dependency_uid": "pkg:cocoapods/SwiftLint@0.46.2?uuid=fixed-uid-done-for-testing-5642512d1758", "for_package_uid": "pkg:cocoapods/CoreMLPredictionsPlugin@%24AMPLIFY_VERSION?uuid=fixed-uid-done-for-testing-5642512d1758", @@ -1493,7 +1889,10 @@ "file_references": [], "is_private": false, "is_virtual": false, - "extra_data": {}, + "extra_data": { + "cocoapods": "1.11.3", + "podfile_checksum": "5e20e56b8ef40444b018a3736b7b726ff9772f00" + }, "dependencies": [ { "purl": "pkg:cocoapods/AWSCore@2.27.0", @@ -1503,7 +1902,51 @@ "is_optional": true, "is_resolved": true, "is_direct": true, - "resolved_package": {}, + "resolved_package": { + "type": "cocoapods", + "namespace": null, + "name": "AWSCore", + "version": "2.27.0", + "qualifiers": {}, + "subpath": null, + "primary_language": "Objective-C", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": null, + "size": null, + "sha1": "d605449939e5b40704f11ff9f91f905f7d978589", + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "holder": null, + "declared_license_expression": null, + "declared_license_expression_spdx": null, + "license_detections": [], + "other_license_expression": null, + "other_license_expression_spdx": null, + "other_license_detections": [], + "extracted_license_statement": null, + "notice_text": null, + "source_packages": [], + "file_references": [], + "is_private": false, + "is_virtual": true, + "extra_data": { + "spec_repo": "trunk" + }, + "dependencies": [], + "repository_homepage_url": null, + "repository_download_url": null, + "api_data_url": null, + "datasource_id": "cocoapods_podfile_lock" + }, "extra_data": {} }, { @@ -1513,8 +1956,64 @@ "is_runtime": false, "is_optional": true, "is_resolved": true, - "is_direct": true, - "resolved_package": {}, + "is_direct": false, + "resolved_package": { + "type": "cocoapods", + "namespace": null, + "name": "CwlCatchException", + "version": "2.1.1", + "qualifiers": {}, + "subpath": null, + "primary_language": "Objective-C", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": null, + "size": null, + "sha1": "86760545af2a490a23e964d76d7c77442dbce79b", + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "holder": null, + "declared_license_expression": null, + "declared_license_expression_spdx": null, + "license_detections": [], + "other_license_expression": null, + "other_license_expression_spdx": null, + "other_license_detections": [], + "extracted_license_statement": null, + "notice_text": null, + "source_packages": [], + "file_references": [], + "is_private": false, + "is_virtual": true, + "extra_data": { + "spec_repo": "trunk" + }, + "dependencies": [ + { + "purl": "pkg:cocoapods/CwlCatchExceptionSupport@2.1.1", + "extracted_requirement": "~> 2.1.1", + "scope": "requires", + "is_runtime": false, + "is_optional": true, + "is_resolved": true, + "is_direct": true, + "resolved_package": {}, + "extra_data": {} + } + ], + "repository_homepage_url": null, + "repository_download_url": null, + "api_data_url": null, + "datasource_id": "cocoapods_podfile_lock" + }, "extra_data": {} }, { @@ -1524,8 +2023,52 @@ "is_runtime": false, "is_optional": true, "is_resolved": true, - "is_direct": true, - "resolved_package": {}, + "is_direct": false, + "resolved_package": { + "type": "cocoapods", + "namespace": null, + "name": "CwlCatchExceptionSupport", + "version": "2.1.1", + "qualifiers": {}, + "subpath": null, + "primary_language": "Objective-C", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": null, + "size": null, + "sha1": "a004322095d7101b945442c86adc7cec0650f676", + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "holder": null, + "declared_license_expression": null, + "declared_license_expression_spdx": null, + "license_detections": [], + "other_license_expression": null, + "other_license_expression_spdx": null, + "other_license_detections": [], + "extracted_license_statement": null, + "notice_text": null, + "source_packages": [], + "file_references": [], + "is_private": false, + "is_virtual": true, + "extra_data": { + "spec_repo": "trunk" + }, + "dependencies": [], + "repository_homepage_url": null, + "repository_download_url": null, + "api_data_url": null, + "datasource_id": "cocoapods_podfile_lock" + }, "extra_data": {} }, { @@ -1535,8 +2078,52 @@ "is_runtime": false, "is_optional": true, "is_resolved": true, - "is_direct": true, - "resolved_package": {}, + "is_direct": false, + "resolved_package": { + "type": "cocoapods", + "namespace": null, + "name": "CwlMachBadInstructionHandler", + "version": "2.1.0", + "qualifiers": {}, + "subpath": null, + "primary_language": "Objective-C", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": null, + "size": null, + "sha1": "aa1fe9f2d08b29507c150d099434b2890247e7f8", + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "holder": null, + "declared_license_expression": null, + "declared_license_expression_spdx": null, + "license_detections": [], + "other_license_expression": null, + "other_license_expression_spdx": null, + "other_license_detections": [], + "extracted_license_statement": null, + "notice_text": null, + "source_packages": [], + "file_references": [], + "is_private": false, + "is_virtual": true, + "extra_data": { + "spec_repo": "trunk" + }, + "dependencies": [], + "repository_homepage_url": null, + "repository_download_url": null, + "api_data_url": null, + "datasource_id": "cocoapods_podfile_lock" + }, "extra_data": {} }, { @@ -1546,8 +2133,52 @@ "is_runtime": false, "is_optional": true, "is_resolved": true, - "is_direct": true, - "resolved_package": {}, + "is_direct": false, + "resolved_package": { + "type": "cocoapods", + "namespace": null, + "name": "CwlPosixPreconditionTesting", + "version": "2.1.0", + "qualifiers": {}, + "subpath": null, + "primary_language": "Objective-C", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": null, + "size": null, + "sha1": "1ba4471964405941f79b3f06bbcf3c2be782950c", + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "holder": null, + "declared_license_expression": null, + "declared_license_expression_spdx": null, + "license_detections": [], + "other_license_expression": null, + "other_license_expression_spdx": null, + "other_license_detections": [], + "extracted_license_statement": null, + "notice_text": null, + "source_packages": [], + "file_references": [], + "is_private": false, + "is_virtual": true, + "extra_data": { + "spec_repo": "trunk" + }, + "dependencies": [], + "repository_homepage_url": null, + "repository_download_url": null, + "api_data_url": null, + "datasource_id": "cocoapods_podfile_lock" + }, "extra_data": {} }, { @@ -1558,7 +2189,85 @@ "is_optional": true, "is_resolved": true, "is_direct": true, - "resolved_package": {}, + "resolved_package": { + "type": "cocoapods", + "namespace": null, + "name": "CwlPreconditionTesting", + "version": "2.1.0", + "qualifiers": {}, + "subpath": null, + "primary_language": "Objective-C", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": null, + "size": null, + "sha1": "73ae5de517a8761e5e40fb4136c6a26365af0440", + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "holder": null, + "declared_license_expression": null, + "declared_license_expression_spdx": null, + "license_detections": [], + "other_license_expression": null, + "other_license_expression_spdx": null, + "other_license_detections": [], + "extracted_license_statement": null, + "notice_text": null, + "source_packages": [], + "file_references": [], + "is_private": false, + "is_virtual": true, + "extra_data": { + "external_source": "{':git': 'https://github.com/mattgallagher/CwlPreconditionTesting.git', ':tag': '2.1.0'}" + }, + "dependencies": [ + { + "purl": "pkg:cocoapods/CwlCatchException@2.1.1", + "extracted_requirement": "~> 2.1.1", + "scope": "requires", + "is_runtime": false, + "is_optional": true, + "is_resolved": true, + "is_direct": true, + "resolved_package": {}, + "extra_data": {} + }, + { + "purl": "pkg:cocoapods/CwlMachBadInstructionHandler@2.1.0", + "extracted_requirement": "~> 2.1.0", + "scope": "requires", + "is_runtime": false, + "is_optional": true, + "is_resolved": true, + "is_direct": true, + "resolved_package": {}, + "extra_data": {} + }, + { + "purl": "pkg:cocoapods/CwlPosixPreconditionTesting@2.1.0", + "extracted_requirement": "~> 2.1.0", + "scope": "requires", + "is_runtime": false, + "is_optional": true, + "is_resolved": true, + "is_direct": true, + "resolved_package": {}, + "extra_data": {} + } + ], + "repository_homepage_url": null, + "repository_download_url": null, + "api_data_url": null, + "datasource_id": "cocoapods_podfile_lock" + }, "extra_data": {} }, { @@ -1569,7 +2278,49 @@ "is_optional": true, "is_resolved": true, "is_direct": true, - "resolved_package": {}, + "resolved_package": { + "type": "cocoapods", + "namespace": "SwiftFormat", + "name": "CLI", + "version": "0.44.17", + "qualifiers": {}, + "subpath": null, + "primary_language": "Objective-C", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": null, + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "holder": null, + "declared_license_expression": null, + "declared_license_expression_spdx": null, + "license_detections": [], + "other_license_expression": null, + "other_license_expression_spdx": null, + "other_license_detections": [], + "extracted_license_statement": null, + "notice_text": null, + "source_packages": [], + "file_references": [], + "is_private": false, + "is_virtual": true, + "extra_data": {}, + "dependencies": [], + "repository_homepage_url": null, + "repository_download_url": null, + "api_data_url": null, + "datasource_id": "cocoapods_podfile_lock" + }, "extra_data": {} }, { @@ -1580,7 +2331,51 @@ "is_optional": true, "is_resolved": true, "is_direct": true, - "resolved_package": {}, + "resolved_package": { + "type": "cocoapods", + "namespace": null, + "name": "SwiftLint", + "version": "0.46.2", + "qualifiers": {}, + "subpath": null, + "primary_language": "Objective-C", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": null, + "size": null, + "sha1": "6bc52a21f0fd44cab9aa2dc8e534fb9f5e3ec507", + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "holder": null, + "declared_license_expression": null, + "declared_license_expression_spdx": null, + "license_detections": [], + "other_license_expression": null, + "other_license_expression_spdx": null, + "other_license_detections": [], + "extracted_license_statement": null, + "notice_text": null, + "source_packages": [], + "file_references": [], + "is_private": false, + "is_virtual": true, + "extra_data": { + "spec_repo": "trunk" + }, + "dependencies": [], + "repository_homepage_url": null, + "repository_download_url": null, + "api_data_url": null, + "datasource_id": "cocoapods_podfile_lock" + }, "extra_data": {} } ], diff --git a/tests/packagedcode/data/cocoapods/assemble/multiple-podspec-expected.json b/tests/packagedcode/data/cocoapods/assemble/multiple-podspec-expected.json index 2e4b3c08d60..ca8be3ecb6e 100644 --- a/tests/packagedcode/data/cocoapods/assemble/multiple-podspec-expected.json +++ b/tests/packagedcode/data/cocoapods/assemble/multiple-podspec-expected.json @@ -168,7 +168,51 @@ "is_optional": true, "is_resolved": true, "is_direct": true, - "resolved_package": {}, + "resolved_package": { + "type": "cocoapods", + "namespace": null, + "name": "boost", + "version": "1.76.0", + "qualifiers": {}, + "subpath": null, + "primary_language": "Objective-C", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": null, + "size": null, + "sha1": "a7c83b31436843459a1961bfd74b96033dc77234", + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "holder": null, + "declared_license_expression": null, + "declared_license_expression_spdx": null, + "license_detections": [], + "other_license_expression": null, + "other_license_expression_spdx": null, + "other_license_detections": [], + "extracted_license_statement": null, + "notice_text": null, + "source_packages": [], + "file_references": [], + "is_private": false, + "is_virtual": true, + "extra_data": { + "external_source": "../node_modules/react-native/third-party-podspecs/boost.podspec" + }, + "dependencies": [], + "repository_homepage_url": null, + "repository_download_url": null, + "api_data_url": null, + "datasource_id": "cocoapods_podfile_lock" + }, "extra_data": {}, "dependency_uid": "pkg:cocoapods/boost@1.76.0?uuid=fixed-uid-done-for-testing-5642512d1758", "for_package_uid": "pkg:cocoapods/RxDataSources@4.0.1?uuid=fixed-uid-done-for-testing-5642512d1758", @@ -183,7 +227,49 @@ "is_optional": true, "is_resolved": true, "is_direct": true, - "resolved_package": {}, + "resolved_package": { + "type": "cocoapods", + "namespace": null, + "name": "Yoga", + "version": "1.14.0", + "qualifiers": {}, + "subpath": null, + "primary_language": "Objective-C", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": null, + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "holder": null, + "declared_license_expression": null, + "declared_license_expression_spdx": null, + "license_detections": [], + "other_license_expression": null, + "other_license_expression_spdx": null, + "other_license_detections": [], + "extracted_license_statement": null, + "notice_text": null, + "source_packages": [], + "file_references": [], + "is_private": false, + "is_virtual": true, + "extra_data": {}, + "dependencies": [], + "repository_homepage_url": null, + "repository_download_url": null, + "api_data_url": null, + "datasource_id": "cocoapods_podfile_lock" + }, "extra_data": {}, "dependency_uid": "pkg:cocoapods/Yoga@1.14.0?uuid=fixed-uid-done-for-testing-5642512d1758", "for_package_uid": "pkg:cocoapods/RxDataSources@4.0.1?uuid=fixed-uid-done-for-testing-5642512d1758", @@ -197,8 +283,64 @@ "is_runtime": false, "is_optional": true, "is_resolved": true, - "is_direct": true, - "resolved_package": {}, + "is_direct": false, + "resolved_package": { + "type": "cocoapods", + "namespace": null, + "name": "YogaKit", + "version": "1.18.1", + "qualifiers": {}, + "subpath": null, + "primary_language": "Objective-C", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": null, + "size": null, + "sha1": "f782866e155069a2cca2517aafea43200b01fd5a", + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "holder": null, + "declared_license_expression": null, + "declared_license_expression_spdx": null, + "license_detections": [], + "other_license_expression": null, + "other_license_expression_spdx": null, + "other_license_detections": [], + "extracted_license_statement": null, + "notice_text": null, + "source_packages": [], + "file_references": [], + "is_private": false, + "is_virtual": true, + "extra_data": { + "spec_repo": "trunk" + }, + "dependencies": [ + { + "purl": "pkg:cocoapods/Yoga@1.14.0", + "extracted_requirement": "~> 1.14", + "scope": "requires", + "is_runtime": false, + "is_optional": true, + "is_resolved": true, + "is_direct": true, + "resolved_package": {}, + "extra_data": {} + } + ], + "repository_homepage_url": null, + "repository_download_url": null, + "api_data_url": null, + "datasource_id": "cocoapods_podfile_lock" + }, "extra_data": {}, "dependency_uid": "pkg:cocoapods/YogaKit@1.18.1?uuid=fixed-uid-done-for-testing-5642512d1758", "for_package_uid": "pkg:cocoapods/RxDataSources@4.0.1?uuid=fixed-uid-done-for-testing-5642512d1758", @@ -393,7 +535,10 @@ "file_references": [], "is_private": false, "is_virtual": false, - "extra_data": {}, + "extra_data": { + "cocoapods": "1.11.2", + "podfile_checksum": "54cfb5be72a5a243eacfea1f4dd52754968dbdac" + }, "dependencies": [ { "purl": "pkg:cocoapods/boost@1.76.0", @@ -403,7 +548,51 @@ "is_optional": true, "is_resolved": true, "is_direct": true, - "resolved_package": {}, + "resolved_package": { + "type": "cocoapods", + "namespace": null, + "name": "boost", + "version": "1.76.0", + "qualifiers": {}, + "subpath": null, + "primary_language": "Objective-C", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": null, + "size": null, + "sha1": "a7c83b31436843459a1961bfd74b96033dc77234", + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "holder": null, + "declared_license_expression": null, + "declared_license_expression_spdx": null, + "license_detections": [], + "other_license_expression": null, + "other_license_expression_spdx": null, + "other_license_detections": [], + "extracted_license_statement": null, + "notice_text": null, + "source_packages": [], + "file_references": [], + "is_private": false, + "is_virtual": true, + "extra_data": { + "external_source": "../node_modules/react-native/third-party-podspecs/boost.podspec" + }, + "dependencies": [], + "repository_homepage_url": null, + "repository_download_url": null, + "api_data_url": null, + "datasource_id": "cocoapods_podfile_lock" + }, "extra_data": {} }, { @@ -414,7 +603,49 @@ "is_optional": true, "is_resolved": true, "is_direct": true, - "resolved_package": {}, + "resolved_package": { + "type": "cocoapods", + "namespace": null, + "name": "Yoga", + "version": "1.14.0", + "qualifiers": {}, + "subpath": null, + "primary_language": "Objective-C", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": null, + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "holder": null, + "declared_license_expression": null, + "declared_license_expression_spdx": null, + "license_detections": [], + "other_license_expression": null, + "other_license_expression_spdx": null, + "other_license_detections": [], + "extracted_license_statement": null, + "notice_text": null, + "source_packages": [], + "file_references": [], + "is_private": false, + "is_virtual": true, + "extra_data": {}, + "dependencies": [], + "repository_homepage_url": null, + "repository_download_url": null, + "api_data_url": null, + "datasource_id": "cocoapods_podfile_lock" + }, "extra_data": {} }, { @@ -424,8 +655,64 @@ "is_runtime": false, "is_optional": true, "is_resolved": true, - "is_direct": true, - "resolved_package": {}, + "is_direct": false, + "resolved_package": { + "type": "cocoapods", + "namespace": null, + "name": "YogaKit", + "version": "1.18.1", + "qualifiers": {}, + "subpath": null, + "primary_language": "Objective-C", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": null, + "size": null, + "sha1": "f782866e155069a2cca2517aafea43200b01fd5a", + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "holder": null, + "declared_license_expression": null, + "declared_license_expression_spdx": null, + "license_detections": [], + "other_license_expression": null, + "other_license_expression_spdx": null, + "other_license_detections": [], + "extracted_license_statement": null, + "notice_text": null, + "source_packages": [], + "file_references": [], + "is_private": false, + "is_virtual": true, + "extra_data": { + "spec_repo": "trunk" + }, + "dependencies": [ + { + "purl": "pkg:cocoapods/Yoga@1.14.0", + "extracted_requirement": "~> 1.14", + "scope": "requires", + "is_runtime": false, + "is_optional": true, + "is_resolved": true, + "is_direct": true, + "resolved_package": {}, + "extra_data": {} + } + ], + "repository_homepage_url": null, + "repository_download_url": null, + "api_data_url": null, + "datasource_id": "cocoapods_podfile_lock" + }, "extra_data": {} } ], diff --git a/tests/packagedcode/data/cocoapods/assemble/single-podspec-expected.json b/tests/packagedcode/data/cocoapods/assemble/single-podspec-expected.json index a380431565e..c205f045f58 100644 --- a/tests/packagedcode/data/cocoapods/assemble/single-podspec-expected.json +++ b/tests/packagedcode/data/cocoapods/assemble/single-podspec-expected.json @@ -89,7 +89,51 @@ "is_optional": true, "is_resolved": true, "is_direct": true, - "resolved_package": {}, + "resolved_package": { + "type": "cocoapods", + "namespace": null, + "name": "boost", + "version": "1.76.0", + "qualifiers": {}, + "subpath": null, + "primary_language": "Objective-C", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": null, + "size": null, + "sha1": "a7c83b31436843459a1961bfd74b96033dc77234", + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "holder": null, + "declared_license_expression": null, + "declared_license_expression_spdx": null, + "license_detections": [], + "other_license_expression": null, + "other_license_expression_spdx": null, + "other_license_detections": [], + "extracted_license_statement": null, + "notice_text": null, + "source_packages": [], + "file_references": [], + "is_private": false, + "is_virtual": true, + "extra_data": { + "external_source": "../node_modules/react-native/third-party-podspecs/boost.podspec" + }, + "dependencies": [], + "repository_homepage_url": null, + "repository_download_url": null, + "api_data_url": null, + "datasource_id": "cocoapods_podfile_lock" + }, "extra_data": {}, "dependency_uid": "pkg:cocoapods/boost@1.76.0?uuid=fixed-uid-done-for-testing-5642512d1758", "for_package_uid": "pkg:cocoapods/RxDataSources@4.0.1?uuid=fixed-uid-done-for-testing-5642512d1758", @@ -104,7 +148,49 @@ "is_optional": true, "is_resolved": true, "is_direct": true, - "resolved_package": {}, + "resolved_package": { + "type": "cocoapods", + "namespace": null, + "name": "Yoga", + "version": "1.14.0", + "qualifiers": {}, + "subpath": null, + "primary_language": "Objective-C", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": null, + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "holder": null, + "declared_license_expression": null, + "declared_license_expression_spdx": null, + "license_detections": [], + "other_license_expression": null, + "other_license_expression_spdx": null, + "other_license_detections": [], + "extracted_license_statement": null, + "notice_text": null, + "source_packages": [], + "file_references": [], + "is_private": false, + "is_virtual": true, + "extra_data": {}, + "dependencies": [], + "repository_homepage_url": null, + "repository_download_url": null, + "api_data_url": null, + "datasource_id": "cocoapods_podfile_lock" + }, "extra_data": {}, "dependency_uid": "pkg:cocoapods/Yoga@1.14.0?uuid=fixed-uid-done-for-testing-5642512d1758", "for_package_uid": "pkg:cocoapods/RxDataSources@4.0.1?uuid=fixed-uid-done-for-testing-5642512d1758", @@ -118,8 +204,64 @@ "is_runtime": false, "is_optional": true, "is_resolved": true, - "is_direct": true, - "resolved_package": {}, + "is_direct": false, + "resolved_package": { + "type": "cocoapods", + "namespace": null, + "name": "YogaKit", + "version": "1.18.1", + "qualifiers": {}, + "subpath": null, + "primary_language": "Objective-C", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": null, + "size": null, + "sha1": "f782866e155069a2cca2517aafea43200b01fd5a", + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "holder": null, + "declared_license_expression": null, + "declared_license_expression_spdx": null, + "license_detections": [], + "other_license_expression": null, + "other_license_expression_spdx": null, + "other_license_detections": [], + "extracted_license_statement": null, + "notice_text": null, + "source_packages": [], + "file_references": [], + "is_private": false, + "is_virtual": true, + "extra_data": { + "spec_repo": "trunk" + }, + "dependencies": [ + { + "purl": "pkg:cocoapods/Yoga@1.14.0", + "extracted_requirement": "~> 1.14", + "scope": "requires", + "is_runtime": false, + "is_optional": true, + "is_resolved": true, + "is_direct": true, + "resolved_package": {}, + "extra_data": {} + } + ], + "repository_homepage_url": null, + "repository_download_url": null, + "api_data_url": null, + "datasource_id": "cocoapods_podfile_lock" + }, "extra_data": {}, "dependency_uid": "pkg:cocoapods/YogaKit@1.18.1?uuid=fixed-uid-done-for-testing-5642512d1758", "for_package_uid": "pkg:cocoapods/RxDataSources@4.0.1?uuid=fixed-uid-done-for-testing-5642512d1758", @@ -229,7 +371,10 @@ "file_references": [], "is_private": false, "is_virtual": false, - "extra_data": {}, + "extra_data": { + "cocoapods": "1.11.2", + "podfile_checksum": "54cfb5be72a5a243eacfea1f4dd52754968dbdac" + }, "dependencies": [ { "purl": "pkg:cocoapods/boost@1.76.0", @@ -239,7 +384,51 @@ "is_optional": true, "is_resolved": true, "is_direct": true, - "resolved_package": {}, + "resolved_package": { + "type": "cocoapods", + "namespace": null, + "name": "boost", + "version": "1.76.0", + "qualifiers": {}, + "subpath": null, + "primary_language": "Objective-C", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": null, + "size": null, + "sha1": "a7c83b31436843459a1961bfd74b96033dc77234", + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "holder": null, + "declared_license_expression": null, + "declared_license_expression_spdx": null, + "license_detections": [], + "other_license_expression": null, + "other_license_expression_spdx": null, + "other_license_detections": [], + "extracted_license_statement": null, + "notice_text": null, + "source_packages": [], + "file_references": [], + "is_private": false, + "is_virtual": true, + "extra_data": { + "external_source": "../node_modules/react-native/third-party-podspecs/boost.podspec" + }, + "dependencies": [], + "repository_homepage_url": null, + "repository_download_url": null, + "api_data_url": null, + "datasource_id": "cocoapods_podfile_lock" + }, "extra_data": {} }, { @@ -250,7 +439,49 @@ "is_optional": true, "is_resolved": true, "is_direct": true, - "resolved_package": {}, + "resolved_package": { + "type": "cocoapods", + "namespace": null, + "name": "Yoga", + "version": "1.14.0", + "qualifiers": {}, + "subpath": null, + "primary_language": "Objective-C", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": null, + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "holder": null, + "declared_license_expression": null, + "declared_license_expression_spdx": null, + "license_detections": [], + "other_license_expression": null, + "other_license_expression_spdx": null, + "other_license_detections": [], + "extracted_license_statement": null, + "notice_text": null, + "source_packages": [], + "file_references": [], + "is_private": false, + "is_virtual": true, + "extra_data": {}, + "dependencies": [], + "repository_homepage_url": null, + "repository_download_url": null, + "api_data_url": null, + "datasource_id": "cocoapods_podfile_lock" + }, "extra_data": {} }, { @@ -260,8 +491,64 @@ "is_runtime": false, "is_optional": true, "is_resolved": true, - "is_direct": true, - "resolved_package": {}, + "is_direct": false, + "resolved_package": { + "type": "cocoapods", + "namespace": null, + "name": "YogaKit", + "version": "1.18.1", + "qualifiers": {}, + "subpath": null, + "primary_language": "Objective-C", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": null, + "size": null, + "sha1": "f782866e155069a2cca2517aafea43200b01fd5a", + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "holder": null, + "declared_license_expression": null, + "declared_license_expression_spdx": null, + "license_detections": [], + "other_license_expression": null, + "other_license_expression_spdx": null, + "other_license_detections": [], + "extracted_license_statement": null, + "notice_text": null, + "source_packages": [], + "file_references": [], + "is_private": false, + "is_virtual": true, + "extra_data": { + "spec_repo": "trunk" + }, + "dependencies": [ + { + "purl": "pkg:cocoapods/Yoga@1.14.0", + "extracted_requirement": "~> 1.14", + "scope": "requires", + "is_runtime": false, + "is_optional": true, + "is_resolved": true, + "is_direct": true, + "resolved_package": {}, + "extra_data": {} + } + ], + "repository_homepage_url": null, + "repository_download_url": null, + "api_data_url": null, + "datasource_id": "cocoapods_podfile_lock" + }, "extra_data": {} } ], diff --git a/tests/packagedcode/data/cocoapods/assemble/solo/Podfile.lock-expected.json b/tests/packagedcode/data/cocoapods/assemble/solo/Podfile.lock-expected.json index 2d1933db0c8..0c65ce89d92 100644 --- a/tests/packagedcode/data/cocoapods/assemble/solo/Podfile.lock-expected.json +++ b/tests/packagedcode/data/cocoapods/assemble/solo/Podfile.lock-expected.json @@ -9,7 +9,51 @@ "is_optional": true, "is_resolved": true, "is_direct": true, - "resolved_package": {}, + "resolved_package": { + "type": "cocoapods", + "namespace": null, + "name": "boost", + "version": "1.76.0", + "qualifiers": {}, + "subpath": null, + "primary_language": "Objective-C", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": null, + "size": null, + "sha1": "a7c83b31436843459a1961bfd74b96033dc77234", + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "holder": null, + "declared_license_expression": null, + "declared_license_expression_spdx": null, + "license_detections": [], + "other_license_expression": null, + "other_license_expression_spdx": null, + "other_license_detections": [], + "extracted_license_statement": null, + "notice_text": null, + "source_packages": [], + "file_references": [], + "is_private": false, + "is_virtual": true, + "extra_data": { + "external_source": "../node_modules/react-native/third-party-podspecs/boost.podspec" + }, + "dependencies": [], + "repository_homepage_url": null, + "repository_download_url": null, + "api_data_url": null, + "datasource_id": "cocoapods_podfile_lock" + }, "extra_data": {}, "dependency_uid": "pkg:cocoapods/boost@1.76.0?uuid=fixed-uid-done-for-testing-5642512d1758", "for_package_uid": null, @@ -24,7 +68,49 @@ "is_optional": true, "is_resolved": true, "is_direct": true, - "resolved_package": {}, + "resolved_package": { + "type": "cocoapods", + "namespace": null, + "name": "Yoga", + "version": "1.14.0", + "qualifiers": {}, + "subpath": null, + "primary_language": "Objective-C", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": null, + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "holder": null, + "declared_license_expression": null, + "declared_license_expression_spdx": null, + "license_detections": [], + "other_license_expression": null, + "other_license_expression_spdx": null, + "other_license_detections": [], + "extracted_license_statement": null, + "notice_text": null, + "source_packages": [], + "file_references": [], + "is_private": false, + "is_virtual": true, + "extra_data": {}, + "dependencies": [], + "repository_homepage_url": null, + "repository_download_url": null, + "api_data_url": null, + "datasource_id": "cocoapods_podfile_lock" + }, "extra_data": {}, "dependency_uid": "pkg:cocoapods/Yoga@1.14.0?uuid=fixed-uid-done-for-testing-5642512d1758", "for_package_uid": null, @@ -38,8 +124,64 @@ "is_runtime": false, "is_optional": true, "is_resolved": true, - "is_direct": true, - "resolved_package": {}, + "is_direct": false, + "resolved_package": { + "type": "cocoapods", + "namespace": null, + "name": "YogaKit", + "version": "1.18.1", + "qualifiers": {}, + "subpath": null, + "primary_language": "Objective-C", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": null, + "size": null, + "sha1": "f782866e155069a2cca2517aafea43200b01fd5a", + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "holder": null, + "declared_license_expression": null, + "declared_license_expression_spdx": null, + "license_detections": [], + "other_license_expression": null, + "other_license_expression_spdx": null, + "other_license_detections": [], + "extracted_license_statement": null, + "notice_text": null, + "source_packages": [], + "file_references": [], + "is_private": false, + "is_virtual": true, + "extra_data": { + "spec_repo": "trunk" + }, + "dependencies": [ + { + "purl": "pkg:cocoapods/Yoga@1.14.0", + "extracted_requirement": "~> 1.14", + "scope": "requires", + "is_runtime": false, + "is_optional": true, + "is_resolved": true, + "is_direct": true, + "resolved_package": {}, + "extra_data": {} + } + ], + "repository_homepage_url": null, + "repository_download_url": null, + "api_data_url": null, + "datasource_id": "cocoapods_podfile_lock" + }, "extra_data": {}, "dependency_uid": "pkg:cocoapods/YogaKit@1.18.1?uuid=fixed-uid-done-for-testing-5642512d1758", "for_package_uid": null, @@ -88,7 +230,10 @@ "file_references": [], "is_private": false, "is_virtual": false, - "extra_data": {}, + "extra_data": { + "cocoapods": "1.11.2", + "podfile_checksum": "54cfb5be72a5a243eacfea1f4dd52754968dbdac" + }, "dependencies": [ { "purl": "pkg:cocoapods/boost@1.76.0", @@ -98,7 +243,51 @@ "is_optional": true, "is_resolved": true, "is_direct": true, - "resolved_package": {}, + "resolved_package": { + "type": "cocoapods", + "namespace": null, + "name": "boost", + "version": "1.76.0", + "qualifiers": {}, + "subpath": null, + "primary_language": "Objective-C", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": null, + "size": null, + "sha1": "a7c83b31436843459a1961bfd74b96033dc77234", + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "holder": null, + "declared_license_expression": null, + "declared_license_expression_spdx": null, + "license_detections": [], + "other_license_expression": null, + "other_license_expression_spdx": null, + "other_license_detections": [], + "extracted_license_statement": null, + "notice_text": null, + "source_packages": [], + "file_references": [], + "is_private": false, + "is_virtual": true, + "extra_data": { + "external_source": "../node_modules/react-native/third-party-podspecs/boost.podspec" + }, + "dependencies": [], + "repository_homepage_url": null, + "repository_download_url": null, + "api_data_url": null, + "datasource_id": "cocoapods_podfile_lock" + }, "extra_data": {} }, { @@ -109,7 +298,49 @@ "is_optional": true, "is_resolved": true, "is_direct": true, - "resolved_package": {}, + "resolved_package": { + "type": "cocoapods", + "namespace": null, + "name": "Yoga", + "version": "1.14.0", + "qualifiers": {}, + "subpath": null, + "primary_language": "Objective-C", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": null, + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "holder": null, + "declared_license_expression": null, + "declared_license_expression_spdx": null, + "license_detections": [], + "other_license_expression": null, + "other_license_expression_spdx": null, + "other_license_detections": [], + "extracted_license_statement": null, + "notice_text": null, + "source_packages": [], + "file_references": [], + "is_private": false, + "is_virtual": true, + "extra_data": {}, + "dependencies": [], + "repository_homepage_url": null, + "repository_download_url": null, + "api_data_url": null, + "datasource_id": "cocoapods_podfile_lock" + }, "extra_data": {} }, { @@ -119,8 +350,64 @@ "is_runtime": false, "is_optional": true, "is_resolved": true, - "is_direct": true, - "resolved_package": {}, + "is_direct": false, + "resolved_package": { + "type": "cocoapods", + "namespace": null, + "name": "YogaKit", + "version": "1.18.1", + "qualifiers": {}, + "subpath": null, + "primary_language": "Objective-C", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": null, + "size": null, + "sha1": "f782866e155069a2cca2517aafea43200b01fd5a", + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "holder": null, + "declared_license_expression": null, + "declared_license_expression_spdx": null, + "license_detections": [], + "other_license_expression": null, + "other_license_expression_spdx": null, + "other_license_detections": [], + "extracted_license_statement": null, + "notice_text": null, + "source_packages": [], + "file_references": [], + "is_private": false, + "is_virtual": true, + "extra_data": { + "spec_repo": "trunk" + }, + "dependencies": [ + { + "purl": "pkg:cocoapods/Yoga@1.14.0", + "extracted_requirement": "~> 1.14", + "scope": "requires", + "is_runtime": false, + "is_optional": true, + "is_resolved": true, + "is_direct": true, + "resolved_package": {}, + "extra_data": {} + } + ], + "repository_homepage_url": null, + "repository_download_url": null, + "api_data_url": null, + "datasource_id": "cocoapods_podfile_lock" + }, "extra_data": {} } ], diff --git a/tests/packagedcode/data/cocoapods/podfile.lock/artsy_eigen_Podfile.lock b/tests/packagedcode/data/cocoapods/podfile.lock/artsy_eigen_Podfile.lock new file mode 100644 index 00000000000..d57bc1c7b30 --- /dev/null +++ b/tests/packagedcode/data/cocoapods/podfile.lock/artsy_eigen_Podfile.lock @@ -0,0 +1,111 @@ +PODS: + - Aerodramus (2.0.0): + - ISO8601DateFormatter + - AFNetworkActivityLogger (2.0.4): + - AFNetworking/NSURLConnection (~> 2.0) + - AFNetworking/NSURLSession (~> 2.0) + - AFNetworking/NSURLConnection (2.7.0): + - AFNetworking/Reachability + - AFNetworking/Security + - AFNetworking/Serialization + - AFNetworking/NSURLSession (2.7.0): + - AFNetworking/Reachability + - AFNetworking/Security + - AFNetworking/Serialization + - AFNetworking/Reachability (2.7.0) + - AFNetworking/Security (2.7.0) + - AFNetworking/Serialization (2.7.0) + - Analytics (4.1.8) + - AppAuth (1.7.3): + - AppAuth/Core (= 1.7.3) + - AppAuth/ExternalUserAgent (= 1.7.3) + - AppAuth/Core (1.7.3) + - AppAuth/ExternalUserAgent (1.7.3): + - AppAuth/Core + - Appboy-iOS-SDK (4.4.4): + - Appboy-iOS-SDK/UI (= 4.4.4) + - Appboy-iOS-SDK/ContentCards (4.4.4): + - Appboy-iOS-SDK/Core + - Appboy-iOS-SDK/Core (4.4.4) + - Appboy-iOS-SDK/InAppMessage (4.4.4): + - Appboy-iOS-SDK/Core + - Appboy-iOS-SDK/NewsFeed (4.4.4): + - Appboy-iOS-SDK/Core + - Appboy-iOS-SDK/UI (4.4.4): + - Appboy-iOS-SDK/ContentCards + - Appboy-iOS-SDK/Core + - Appboy-iOS-SDK/InAppMessage + - Appboy-iOS-SDK/NewsFeed + - appcenter-core (5.0.0): + - AppCenterReactNativeShared (~> 5.0) + - AppCenter/Core (5.0.3) + - AppCenterReactNativeShared (5.0.0): + - AppCenter/Core (= 5.0.3) + - Base64 (1.1.2) + - boost (1.76.0) + - ISO8601DateFormatter (0.7.1) + - Pulley (2.6.2) + - SwiftyJSON (5.0.2) + +DEPENDENCIES: + - Aerodramus (= 2.0.0) + - AFNetworkActivityLogger + - AFNetworking/NSURLConnection (= 2.7.0) + - AFNetworking/NSURLSession (= 2.7.0) + - appcenter-core (from `../node_modules/appcenter`) + - boost (from `../node_modules/react-native/third-party-podspecs/boost.podspec`) + - Pulley (from `https://github.com/artsy/Pulley.git`, branch `master`) + - SwiftyJSON (from `https://github.com/SwiftyJSON/SwiftyJSON/`, commit `af76cf3ef710b6ca5f8c05f3a31307d44a3c5828`) + +SPEC REPOS: + https://github.com/artsy/Specs.git: + - Aerodramus + trunk: + - AFNetworkActivityLogger + - AFNetworking + - Analytics + - AppAuth + - Appboy-iOS-SDK + - AppCenter + - AppCenterReactNativeShared + +EXTERNAL SOURCES: + appcenter-core: + :path: "../node_modules/appcenter" + boost: + :podspec: "../node_modules/react-native/third-party-podspecs/boost.podspec" + Pulley: + :branch: master + :git: https://github.com/artsy/Pulley.git + SwiftyJSON: + :commit: af76cf3ef710b6ca5f8c05f3a31307d44a3c5828 + :git: https://github.com/SwiftyJSON/SwiftyJSON/ + +CHECKOUT OPTIONS: + ISO8601DateFormatter: + :commit: 1a48b819c85903ded669e74e476aceffebf311fc + :git: https://github.com/artsy/iso-8601-date-formatter + Pulley: + :commit: f677b18b332ea3798dc379879dbc0d038efd3ccc + :git: https://github.com/artsy/Pulley.git + SwiftyJSON: + :commit: af76cf3ef710b6ca5f8c05f3a31307d44a3c5828 + :git: https://github.com/SwiftyJSON/SwiftyJSON/ + +SPEC CHECKSUMS: + Aerodramus: a22de7451c8fc85ae5d974f5d6a656f59046fffc + AFNetworkActivityLogger: 121486778117d53b3ab1c61d264b88081d0c3eee + AFNetworking: 9d57de7506959955d82fb5274ee4bec86b930e52 + Analytics: 9655e0e1c71ea98107cfcb2b14891168acc6c6c9 + AppAuth: a13994980c1ec792f7e2e665acd4d4aa6be43240 + Appboy-iOS-SDK: b05b957ab645d0a9a43d3f35195ad69202b89edc + AppCenter: a4070ec3d4418b5539067a51f57155012e486ebd + appcenter-core: e192ea8b373bebd3e44998882b43311078bd7dda + AppCenterReactNativeShared: 01df23849b1c3c6eb8c4049f54322635650e98f0 + boost: 7dcd2de282d72e344012f7d6564d024930a6a440 + Pulley: edc993fb57f7eb20541c8453d0fce10559f21dac + SwiftyJSON: 576fbf26942d5ef414daad8870b1642413ecc00c + +PODFILE CHECKSUM: 5692a82aae086bb5c68f7181faa1760979de637c + +COCOAPODS: 1.14.3 diff --git a/tests/packagedcode/data/cocoapods/podfile.lock/artsy_eigen_Podfile.lock.expected.json b/tests/packagedcode/data/cocoapods/podfile.lock/artsy_eigen_Podfile.lock.expected.json new file mode 100644 index 00000000000..5c61b03cbda --- /dev/null +++ b/tests/packagedcode/data/cocoapods/podfile.lock/artsy_eigen_Podfile.lock.expected.json @@ -0,0 +1,1652 @@ +[ + { + "type": "cocoapods", + "namespace": null, + "name": null, + "version": null, + "qualifiers": {}, + "subpath": null, + "primary_language": "Objective-C", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": null, + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "holder": null, + "declared_license_expression": null, + "declared_license_expression_spdx": null, + "license_detections": [], + "other_license_expression": null, + "other_license_expression_spdx": null, + "other_license_detections": [], + "extracted_license_statement": null, + "notice_text": null, + "source_packages": [], + "file_references": [], + "is_private": false, + "is_virtual": false, + "extra_data": { + "cocoapods": "1.14.3", + "podfile_checksum": "5692a82aae086bb5c68f7181faa1760979de637c" + }, + "dependencies": [ + { + "purl": "pkg:cocoapods/Aerodramus@2.0.0", + "extracted_requirement": "2.0.0", + "scope": "requires", + "is_runtime": false, + "is_optional": true, + "is_resolved": true, + "is_direct": true, + "resolved_package": { + "type": "cocoapods", + "namespace": null, + "name": "Aerodramus", + "version": "2.0.0", + "qualifiers": {}, + "subpath": null, + "primary_language": "Objective-C", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": null, + "size": null, + "sha1": "a22de7451c8fc85ae5d974f5d6a656f59046fffc", + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "holder": null, + "declared_license_expression": null, + "declared_license_expression_spdx": null, + "license_detections": [], + "other_license_expression": null, + "other_license_expression_spdx": null, + "other_license_detections": [], + "extracted_license_statement": null, + "notice_text": null, + "source_packages": [], + "file_references": [], + "is_private": false, + "is_virtual": true, + "extra_data": { + "spec_repo": "https://github.com/artsy/Specs.git" + }, + "dependencies": [ + { + "purl": "pkg:cocoapods/ISO8601DateFormatter@0.7.1", + "extracted_requirement": "0.7.1", + "scope": "requires", + "is_runtime": false, + "is_optional": true, + "is_resolved": true, + "is_direct": true, + "resolved_package": {}, + "extra_data": {} + } + ], + "repository_homepage_url": null, + "repository_download_url": null, + "api_data_url": null, + "datasource_id": "cocoapods_podfile_lock" + }, + "extra_data": {} + }, + { + "purl": "pkg:cocoapods/AFNetworkActivityLogger@2.0.4", + "extracted_requirement": "2.0.4", + "scope": "requires", + "is_runtime": false, + "is_optional": true, + "is_resolved": true, + "is_direct": true, + "resolved_package": { + "type": "cocoapods", + "namespace": null, + "name": "AFNetworkActivityLogger", + "version": "2.0.4", + "qualifiers": {}, + "subpath": null, + "primary_language": "Objective-C", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": null, + "size": null, + "sha1": "121486778117d53b3ab1c61d264b88081d0c3eee", + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "holder": null, + "declared_license_expression": null, + "declared_license_expression_spdx": null, + "license_detections": [], + "other_license_expression": null, + "other_license_expression_spdx": null, + "other_license_detections": [], + "extracted_license_statement": null, + "notice_text": null, + "source_packages": [], + "file_references": [], + "is_private": false, + "is_virtual": true, + "extra_data": { + "spec_repo": "trunk" + }, + "dependencies": [ + { + "purl": "pkg:cocoapods/AFNetworking/NSURLConnection@2.7.0", + "extracted_requirement": "~> 2.0", + "scope": "requires", + "is_runtime": false, + "is_optional": true, + "is_resolved": true, + "is_direct": true, + "resolved_package": {}, + "extra_data": {} + }, + { + "purl": "pkg:cocoapods/AFNetworking/NSURLSession@2.7.0", + "extracted_requirement": "~> 2.0", + "scope": "requires", + "is_runtime": false, + "is_optional": true, + "is_resolved": true, + "is_direct": true, + "resolved_package": {}, + "extra_data": {} + } + ], + "repository_homepage_url": null, + "repository_download_url": null, + "api_data_url": null, + "datasource_id": "cocoapods_podfile_lock" + }, + "extra_data": {} + }, + { + "purl": "pkg:cocoapods/AFNetworking/NSURLConnection@2.7.0", + "extracted_requirement": "2.7.0", + "scope": "requires", + "is_runtime": false, + "is_optional": true, + "is_resolved": true, + "is_direct": true, + "resolved_package": { + "type": "cocoapods", + "namespace": "AFNetworking", + "name": "NSURLConnection", + "version": "2.7.0", + "qualifiers": {}, + "subpath": null, + "primary_language": "Objective-C", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": null, + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "holder": null, + "declared_license_expression": null, + "declared_license_expression_spdx": null, + "license_detections": [], + "other_license_expression": null, + "other_license_expression_spdx": null, + "other_license_detections": [], + "extracted_license_statement": null, + "notice_text": null, + "source_packages": [], + "file_references": [], + "is_private": false, + "is_virtual": true, + "extra_data": {}, + "dependencies": [ + { + "purl": "pkg:cocoapods/AFNetworking/Reachability@2.7.0", + "extracted_requirement": "2.7.0", + "scope": "requires", + "is_runtime": false, + "is_optional": true, + "is_resolved": true, + "is_direct": true, + "resolved_package": {}, + "extra_data": {} + }, + { + "purl": "pkg:cocoapods/AFNetworking/Security@2.7.0", + "extracted_requirement": "2.7.0", + "scope": "requires", + "is_runtime": false, + "is_optional": true, + "is_resolved": true, + "is_direct": true, + "resolved_package": {}, + "extra_data": {} + }, + { + "purl": "pkg:cocoapods/AFNetworking/Serialization@2.7.0", + "extracted_requirement": "2.7.0", + "scope": "requires", + "is_runtime": false, + "is_optional": true, + "is_resolved": true, + "is_direct": true, + "resolved_package": {}, + "extra_data": {} + } + ], + "repository_homepage_url": null, + "repository_download_url": null, + "api_data_url": null, + "datasource_id": "cocoapods_podfile_lock" + }, + "extra_data": {} + }, + { + "purl": "pkg:cocoapods/AFNetworking/NSURLSession@2.7.0", + "extracted_requirement": "2.7.0", + "scope": "requires", + "is_runtime": false, + "is_optional": true, + "is_resolved": true, + "is_direct": true, + "resolved_package": { + "type": "cocoapods", + "namespace": "AFNetworking", + "name": "NSURLSession", + "version": "2.7.0", + "qualifiers": {}, + "subpath": null, + "primary_language": "Objective-C", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": null, + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "holder": null, + "declared_license_expression": null, + "declared_license_expression_spdx": null, + "license_detections": [], + "other_license_expression": null, + "other_license_expression_spdx": null, + "other_license_detections": [], + "extracted_license_statement": null, + "notice_text": null, + "source_packages": [], + "file_references": [], + "is_private": false, + "is_virtual": true, + "extra_data": {}, + "dependencies": [ + { + "purl": "pkg:cocoapods/AFNetworking/Reachability@2.7.0", + "extracted_requirement": "2.7.0", + "scope": "requires", + "is_runtime": false, + "is_optional": true, + "is_resolved": true, + "is_direct": true, + "resolved_package": {}, + "extra_data": {} + }, + { + "purl": "pkg:cocoapods/AFNetworking/Security@2.7.0", + "extracted_requirement": "2.7.0", + "scope": "requires", + "is_runtime": false, + "is_optional": true, + "is_resolved": true, + "is_direct": true, + "resolved_package": {}, + "extra_data": {} + }, + { + "purl": "pkg:cocoapods/AFNetworking/Serialization@2.7.0", + "extracted_requirement": "2.7.0", + "scope": "requires", + "is_runtime": false, + "is_optional": true, + "is_resolved": true, + "is_direct": true, + "resolved_package": {}, + "extra_data": {} + } + ], + "repository_homepage_url": null, + "repository_download_url": null, + "api_data_url": null, + "datasource_id": "cocoapods_podfile_lock" + }, + "extra_data": {} + }, + { + "purl": "pkg:cocoapods/AFNetworking/Reachability@2.7.0", + "extracted_requirement": "2.7.0", + "scope": "requires", + "is_runtime": false, + "is_optional": true, + "is_resolved": true, + "is_direct": false, + "resolved_package": { + "type": "cocoapods", + "namespace": "AFNetworking", + "name": "Reachability", + "version": "2.7.0", + "qualifiers": {}, + "subpath": null, + "primary_language": "Objective-C", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": null, + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "holder": null, + "declared_license_expression": null, + "declared_license_expression_spdx": null, + "license_detections": [], + "other_license_expression": null, + "other_license_expression_spdx": null, + "other_license_detections": [], + "extracted_license_statement": null, + "notice_text": null, + "source_packages": [], + "file_references": [], + "is_private": false, + "is_virtual": true, + "extra_data": {}, + "dependencies": [], + "repository_homepage_url": null, + "repository_download_url": null, + "api_data_url": null, + "datasource_id": "cocoapods_podfile_lock" + }, + "extra_data": {} + }, + { + "purl": "pkg:cocoapods/AFNetworking/Security@2.7.0", + "extracted_requirement": "2.7.0", + "scope": "requires", + "is_runtime": false, + "is_optional": true, + "is_resolved": true, + "is_direct": false, + "resolved_package": { + "type": "cocoapods", + "namespace": "AFNetworking", + "name": "Security", + "version": "2.7.0", + "qualifiers": {}, + "subpath": null, + "primary_language": "Objective-C", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": null, + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "holder": null, + "declared_license_expression": null, + "declared_license_expression_spdx": null, + "license_detections": [], + "other_license_expression": null, + "other_license_expression_spdx": null, + "other_license_detections": [], + "extracted_license_statement": null, + "notice_text": null, + "source_packages": [], + "file_references": [], + "is_private": false, + "is_virtual": true, + "extra_data": {}, + "dependencies": [], + "repository_homepage_url": null, + "repository_download_url": null, + "api_data_url": null, + "datasource_id": "cocoapods_podfile_lock" + }, + "extra_data": {} + }, + { + "purl": "pkg:cocoapods/AFNetworking/Serialization@2.7.0", + "extracted_requirement": "2.7.0", + "scope": "requires", + "is_runtime": false, + "is_optional": true, + "is_resolved": true, + "is_direct": false, + "resolved_package": { + "type": "cocoapods", + "namespace": "AFNetworking", + "name": "Serialization", + "version": "2.7.0", + "qualifiers": {}, + "subpath": null, + "primary_language": "Objective-C", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": null, + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "holder": null, + "declared_license_expression": null, + "declared_license_expression_spdx": null, + "license_detections": [], + "other_license_expression": null, + "other_license_expression_spdx": null, + "other_license_detections": [], + "extracted_license_statement": null, + "notice_text": null, + "source_packages": [], + "file_references": [], + "is_private": false, + "is_virtual": true, + "extra_data": {}, + "dependencies": [], + "repository_homepage_url": null, + "repository_download_url": null, + "api_data_url": null, + "datasource_id": "cocoapods_podfile_lock" + }, + "extra_data": {} + }, + { + "purl": "pkg:cocoapods/Analytics@4.1.8", + "extracted_requirement": "4.1.8", + "scope": "requires", + "is_runtime": false, + "is_optional": true, + "is_resolved": true, + "is_direct": false, + "resolved_package": { + "type": "cocoapods", + "namespace": null, + "name": "Analytics", + "version": "4.1.8", + "qualifiers": {}, + "subpath": null, + "primary_language": "Objective-C", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": null, + "size": null, + "sha1": "9655e0e1c71ea98107cfcb2b14891168acc6c6c9", + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "holder": null, + "declared_license_expression": null, + "declared_license_expression_spdx": null, + "license_detections": [], + "other_license_expression": null, + "other_license_expression_spdx": null, + "other_license_detections": [], + "extracted_license_statement": null, + "notice_text": null, + "source_packages": [], + "file_references": [], + "is_private": false, + "is_virtual": true, + "extra_data": { + "spec_repo": "trunk" + }, + "dependencies": [], + "repository_homepage_url": null, + "repository_download_url": null, + "api_data_url": null, + "datasource_id": "cocoapods_podfile_lock" + }, + "extra_data": {} + }, + { + "purl": "pkg:cocoapods/AppAuth@1.7.3", + "extracted_requirement": "1.7.3", + "scope": "requires", + "is_runtime": false, + "is_optional": true, + "is_resolved": true, + "is_direct": false, + "resolved_package": { + "type": "cocoapods", + "namespace": null, + "name": "AppAuth", + "version": "1.7.3", + "qualifiers": {}, + "subpath": null, + "primary_language": "Objective-C", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": null, + "size": null, + "sha1": "a13994980c1ec792f7e2e665acd4d4aa6be43240", + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "holder": null, + "declared_license_expression": null, + "declared_license_expression_spdx": null, + "license_detections": [], + "other_license_expression": null, + "other_license_expression_spdx": null, + "other_license_detections": [], + "extracted_license_statement": null, + "notice_text": null, + "source_packages": [], + "file_references": [], + "is_private": false, + "is_virtual": true, + "extra_data": { + "spec_repo": "trunk" + }, + "dependencies": [ + { + "purl": "pkg:cocoapods/AppAuth/Core@1.7.3", + "extracted_requirement": "= 1.7.3", + "scope": "requires", + "is_runtime": false, + "is_optional": true, + "is_resolved": true, + "is_direct": true, + "resolved_package": {}, + "extra_data": {} + }, + { + "purl": "pkg:cocoapods/AppAuth/ExternalUserAgent@1.7.3", + "extracted_requirement": "= 1.7.3", + "scope": "requires", + "is_runtime": false, + "is_optional": true, + "is_resolved": true, + "is_direct": true, + "resolved_package": {}, + "extra_data": {} + } + ], + "repository_homepage_url": null, + "repository_download_url": null, + "api_data_url": null, + "datasource_id": "cocoapods_podfile_lock" + }, + "extra_data": {} + }, + { + "purl": "pkg:cocoapods/AppAuth/Core@1.7.3", + "extracted_requirement": "1.7.3", + "scope": "requires", + "is_runtime": false, + "is_optional": true, + "is_resolved": true, + "is_direct": false, + "resolved_package": { + "type": "cocoapods", + "namespace": "AppAuth", + "name": "Core", + "version": "1.7.3", + "qualifiers": {}, + "subpath": null, + "primary_language": "Objective-C", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": null, + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "holder": null, + "declared_license_expression": null, + "declared_license_expression_spdx": null, + "license_detections": [], + "other_license_expression": null, + "other_license_expression_spdx": null, + "other_license_detections": [], + "extracted_license_statement": null, + "notice_text": null, + "source_packages": [], + "file_references": [], + "is_private": false, + "is_virtual": true, + "extra_data": {}, + "dependencies": [], + "repository_homepage_url": null, + "repository_download_url": null, + "api_data_url": null, + "datasource_id": "cocoapods_podfile_lock" + }, + "extra_data": {} + }, + { + "purl": "pkg:cocoapods/AppAuth/ExternalUserAgent@1.7.3", + "extracted_requirement": "1.7.3", + "scope": "requires", + "is_runtime": false, + "is_optional": true, + "is_resolved": true, + "is_direct": false, + "resolved_package": { + "type": "cocoapods", + "namespace": "AppAuth", + "name": "ExternalUserAgent", + "version": "1.7.3", + "qualifiers": {}, + "subpath": null, + "primary_language": "Objective-C", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": null, + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "holder": null, + "declared_license_expression": null, + "declared_license_expression_spdx": null, + "license_detections": [], + "other_license_expression": null, + "other_license_expression_spdx": null, + "other_license_detections": [], + "extracted_license_statement": null, + "notice_text": null, + "source_packages": [], + "file_references": [], + "is_private": false, + "is_virtual": true, + "extra_data": {}, + "dependencies": [ + { + "purl": "pkg:cocoapods/AppAuth/Core@1.7.3", + "extracted_requirement": "1.7.3", + "scope": "requires", + "is_runtime": false, + "is_optional": true, + "is_resolved": true, + "is_direct": true, + "resolved_package": {}, + "extra_data": {} + } + ], + "repository_homepage_url": null, + "repository_download_url": null, + "api_data_url": null, + "datasource_id": "cocoapods_podfile_lock" + }, + "extra_data": {} + }, + { + "purl": "pkg:cocoapods/Appboy-iOS-SDK@4.4.4", + "extracted_requirement": "4.4.4", + "scope": "requires", + "is_runtime": false, + "is_optional": true, + "is_resolved": true, + "is_direct": false, + "resolved_package": { + "type": "cocoapods", + "namespace": null, + "name": "Appboy-iOS-SDK", + "version": "4.4.4", + "qualifiers": {}, + "subpath": null, + "primary_language": "Objective-C", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": null, + "size": null, + "sha1": "b05b957ab645d0a9a43d3f35195ad69202b89edc", + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "holder": null, + "declared_license_expression": null, + "declared_license_expression_spdx": null, + "license_detections": [], + "other_license_expression": null, + "other_license_expression_spdx": null, + "other_license_detections": [], + "extracted_license_statement": null, + "notice_text": null, + "source_packages": [], + "file_references": [], + "is_private": false, + "is_virtual": true, + "extra_data": { + "spec_repo": "trunk" + }, + "dependencies": [ + { + "purl": "pkg:cocoapods/Appboy-iOS-SDK/UI@4.4.4", + "extracted_requirement": "= 4.4.4", + "scope": "requires", + "is_runtime": false, + "is_optional": true, + "is_resolved": true, + "is_direct": true, + "resolved_package": {}, + "extra_data": {} + } + ], + "repository_homepage_url": null, + "repository_download_url": null, + "api_data_url": null, + "datasource_id": "cocoapods_podfile_lock" + }, + "extra_data": {} + }, + { + "purl": "pkg:cocoapods/Appboy-iOS-SDK/ContentCards@4.4.4", + "extracted_requirement": "4.4.4", + "scope": "requires", + "is_runtime": false, + "is_optional": true, + "is_resolved": true, + "is_direct": false, + "resolved_package": { + "type": "cocoapods", + "namespace": "Appboy-iOS-SDK", + "name": "ContentCards", + "version": "4.4.4", + "qualifiers": {}, + "subpath": null, + "primary_language": "Objective-C", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": null, + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "holder": null, + "declared_license_expression": null, + "declared_license_expression_spdx": null, + "license_detections": [], + "other_license_expression": null, + "other_license_expression_spdx": null, + "other_license_detections": [], + "extracted_license_statement": null, + "notice_text": null, + "source_packages": [], + "file_references": [], + "is_private": false, + "is_virtual": true, + "extra_data": {}, + "dependencies": [ + { + "purl": "pkg:cocoapods/Appboy-iOS-SDK/Core@4.4.4", + "extracted_requirement": "4.4.4", + "scope": "requires", + "is_runtime": false, + "is_optional": true, + "is_resolved": true, + "is_direct": true, + "resolved_package": {}, + "extra_data": {} + } + ], + "repository_homepage_url": null, + "repository_download_url": null, + "api_data_url": null, + "datasource_id": "cocoapods_podfile_lock" + }, + "extra_data": {} + }, + { + "purl": "pkg:cocoapods/Appboy-iOS-SDK/Core@4.4.4", + "extracted_requirement": "4.4.4", + "scope": "requires", + "is_runtime": false, + "is_optional": true, + "is_resolved": true, + "is_direct": false, + "resolved_package": { + "type": "cocoapods", + "namespace": "Appboy-iOS-SDK", + "name": "Core", + "version": "4.4.4", + "qualifiers": {}, + "subpath": null, + "primary_language": "Objective-C", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": null, + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "holder": null, + "declared_license_expression": null, + "declared_license_expression_spdx": null, + "license_detections": [], + "other_license_expression": null, + "other_license_expression_spdx": null, + "other_license_detections": [], + "extracted_license_statement": null, + "notice_text": null, + "source_packages": [], + "file_references": [], + "is_private": false, + "is_virtual": true, + "extra_data": {}, + "dependencies": [], + "repository_homepage_url": null, + "repository_download_url": null, + "api_data_url": null, + "datasource_id": "cocoapods_podfile_lock" + }, + "extra_data": {} + }, + { + "purl": "pkg:cocoapods/Appboy-iOS-SDK/InAppMessage@4.4.4", + "extracted_requirement": "4.4.4", + "scope": "requires", + "is_runtime": false, + "is_optional": true, + "is_resolved": true, + "is_direct": false, + "resolved_package": { + "type": "cocoapods", + "namespace": "Appboy-iOS-SDK", + "name": "InAppMessage", + "version": "4.4.4", + "qualifiers": {}, + "subpath": null, + "primary_language": "Objective-C", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": null, + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "holder": null, + "declared_license_expression": null, + "declared_license_expression_spdx": null, + "license_detections": [], + "other_license_expression": null, + "other_license_expression_spdx": null, + "other_license_detections": [], + "extracted_license_statement": null, + "notice_text": null, + "source_packages": [], + "file_references": [], + "is_private": false, + "is_virtual": true, + "extra_data": {}, + "dependencies": [ + { + "purl": "pkg:cocoapods/Appboy-iOS-SDK/Core@4.4.4", + "extracted_requirement": "4.4.4", + "scope": "requires", + "is_runtime": false, + "is_optional": true, + "is_resolved": true, + "is_direct": true, + "resolved_package": {}, + "extra_data": {} + } + ], + "repository_homepage_url": null, + "repository_download_url": null, + "api_data_url": null, + "datasource_id": "cocoapods_podfile_lock" + }, + "extra_data": {} + }, + { + "purl": "pkg:cocoapods/Appboy-iOS-SDK/NewsFeed@4.4.4", + "extracted_requirement": "4.4.4", + "scope": "requires", + "is_runtime": false, + "is_optional": true, + "is_resolved": true, + "is_direct": false, + "resolved_package": { + "type": "cocoapods", + "namespace": "Appboy-iOS-SDK", + "name": "NewsFeed", + "version": "4.4.4", + "qualifiers": {}, + "subpath": null, + "primary_language": "Objective-C", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": null, + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "holder": null, + "declared_license_expression": null, + "declared_license_expression_spdx": null, + "license_detections": [], + "other_license_expression": null, + "other_license_expression_spdx": null, + "other_license_detections": [], + "extracted_license_statement": null, + "notice_text": null, + "source_packages": [], + "file_references": [], + "is_private": false, + "is_virtual": true, + "extra_data": {}, + "dependencies": [ + { + "purl": "pkg:cocoapods/Appboy-iOS-SDK/Core@4.4.4", + "extracted_requirement": "4.4.4", + "scope": "requires", + "is_runtime": false, + "is_optional": true, + "is_resolved": true, + "is_direct": true, + "resolved_package": {}, + "extra_data": {} + } + ], + "repository_homepage_url": null, + "repository_download_url": null, + "api_data_url": null, + "datasource_id": "cocoapods_podfile_lock" + }, + "extra_data": {} + }, + { + "purl": "pkg:cocoapods/Appboy-iOS-SDK/UI@4.4.4", + "extracted_requirement": "4.4.4", + "scope": "requires", + "is_runtime": false, + "is_optional": true, + "is_resolved": true, + "is_direct": false, + "resolved_package": { + "type": "cocoapods", + "namespace": "Appboy-iOS-SDK", + "name": "UI", + "version": "4.4.4", + "qualifiers": {}, + "subpath": null, + "primary_language": "Objective-C", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": null, + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "holder": null, + "declared_license_expression": null, + "declared_license_expression_spdx": null, + "license_detections": [], + "other_license_expression": null, + "other_license_expression_spdx": null, + "other_license_detections": [], + "extracted_license_statement": null, + "notice_text": null, + "source_packages": [], + "file_references": [], + "is_private": false, + "is_virtual": true, + "extra_data": {}, + "dependencies": [ + { + "purl": "pkg:cocoapods/Appboy-iOS-SDK/ContentCards@4.4.4", + "extracted_requirement": "4.4.4", + "scope": "requires", + "is_runtime": false, + "is_optional": true, + "is_resolved": true, + "is_direct": true, + "resolved_package": {}, + "extra_data": {} + }, + { + "purl": "pkg:cocoapods/Appboy-iOS-SDK/Core@4.4.4", + "extracted_requirement": "4.4.4", + "scope": "requires", + "is_runtime": false, + "is_optional": true, + "is_resolved": true, + "is_direct": true, + "resolved_package": {}, + "extra_data": {} + }, + { + "purl": "pkg:cocoapods/Appboy-iOS-SDK/InAppMessage@4.4.4", + "extracted_requirement": "4.4.4", + "scope": "requires", + "is_runtime": false, + "is_optional": true, + "is_resolved": true, + "is_direct": true, + "resolved_package": {}, + "extra_data": {} + }, + { + "purl": "pkg:cocoapods/Appboy-iOS-SDK/NewsFeed@4.4.4", + "extracted_requirement": "4.4.4", + "scope": "requires", + "is_runtime": false, + "is_optional": true, + "is_resolved": true, + "is_direct": true, + "resolved_package": {}, + "extra_data": {} + } + ], + "repository_homepage_url": null, + "repository_download_url": null, + "api_data_url": null, + "datasource_id": "cocoapods_podfile_lock" + }, + "extra_data": {} + }, + { + "purl": "pkg:cocoapods/appcenter-core@5.0.0", + "extracted_requirement": "5.0.0", + "scope": "requires", + "is_runtime": false, + "is_optional": true, + "is_resolved": true, + "is_direct": true, + "resolved_package": { + "type": "cocoapods", + "namespace": null, + "name": "appcenter-core", + "version": "5.0.0", + "qualifiers": {}, + "subpath": null, + "primary_language": "Objective-C", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": null, + "size": null, + "sha1": "e192ea8b373bebd3e44998882b43311078bd7dda", + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "holder": null, + "declared_license_expression": null, + "declared_license_expression_spdx": null, + "license_detections": [], + "other_license_expression": null, + "other_license_expression_spdx": null, + "other_license_detections": [], + "extracted_license_statement": null, + "notice_text": null, + "source_packages": [], + "file_references": [], + "is_private": false, + "is_virtual": true, + "extra_data": { + "external_source": "../node_modules/appcenter" + }, + "dependencies": [ + { + "purl": "pkg:cocoapods/AppCenterReactNativeShared@5.0.0", + "extracted_requirement": "~> 5.0", + "scope": "requires", + "is_runtime": false, + "is_optional": true, + "is_resolved": true, + "is_direct": true, + "resolved_package": {}, + "extra_data": {} + } + ], + "repository_homepage_url": null, + "repository_download_url": null, + "api_data_url": null, + "datasource_id": "cocoapods_podfile_lock" + }, + "extra_data": {} + }, + { + "purl": "pkg:cocoapods/AppCenter/Core@5.0.3", + "extracted_requirement": "5.0.3", + "scope": "requires", + "is_runtime": false, + "is_optional": true, + "is_resolved": true, + "is_direct": false, + "resolved_package": { + "type": "cocoapods", + "namespace": "AppCenter", + "name": "Core", + "version": "5.0.3", + "qualifiers": {}, + "subpath": null, + "primary_language": "Objective-C", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": null, + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "holder": null, + "declared_license_expression": null, + "declared_license_expression_spdx": null, + "license_detections": [], + "other_license_expression": null, + "other_license_expression_spdx": null, + "other_license_detections": [], + "extracted_license_statement": null, + "notice_text": null, + "source_packages": [], + "file_references": [], + "is_private": false, + "is_virtual": true, + "extra_data": {}, + "dependencies": [], + "repository_homepage_url": null, + "repository_download_url": null, + "api_data_url": null, + "datasource_id": "cocoapods_podfile_lock" + }, + "extra_data": {} + }, + { + "purl": "pkg:cocoapods/AppCenterReactNativeShared@5.0.0", + "extracted_requirement": "5.0.0", + "scope": "requires", + "is_runtime": false, + "is_optional": true, + "is_resolved": true, + "is_direct": false, + "resolved_package": { + "type": "cocoapods", + "namespace": null, + "name": "AppCenterReactNativeShared", + "version": "5.0.0", + "qualifiers": {}, + "subpath": null, + "primary_language": "Objective-C", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": null, + "size": null, + "sha1": "01df23849b1c3c6eb8c4049f54322635650e98f0", + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "holder": null, + "declared_license_expression": null, + "declared_license_expression_spdx": null, + "license_detections": [], + "other_license_expression": null, + "other_license_expression_spdx": null, + "other_license_detections": [], + "extracted_license_statement": null, + "notice_text": null, + "source_packages": [], + "file_references": [], + "is_private": false, + "is_virtual": true, + "extra_data": { + "spec_repo": "trunk" + }, + "dependencies": [ + { + "purl": "pkg:cocoapods/AppCenter/Core@5.0.3", + "extracted_requirement": "= 5.0.3", + "scope": "requires", + "is_runtime": false, + "is_optional": true, + "is_resolved": true, + "is_direct": true, + "resolved_package": {}, + "extra_data": {} + } + ], + "repository_homepage_url": null, + "repository_download_url": null, + "api_data_url": null, + "datasource_id": "cocoapods_podfile_lock" + }, + "extra_data": {} + }, + { + "purl": "pkg:cocoapods/Base64@1.1.2", + "extracted_requirement": "1.1.2", + "scope": "requires", + "is_runtime": false, + "is_optional": true, + "is_resolved": true, + "is_direct": false, + "resolved_package": { + "type": "cocoapods", + "namespace": null, + "name": "Base64", + "version": "1.1.2", + "qualifiers": {}, + "subpath": null, + "primary_language": "Objective-C", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": null, + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "holder": null, + "declared_license_expression": null, + "declared_license_expression_spdx": null, + "license_detections": [], + "other_license_expression": null, + "other_license_expression_spdx": null, + "other_license_detections": [], + "extracted_license_statement": null, + "notice_text": null, + "source_packages": [], + "file_references": [], + "is_private": false, + "is_virtual": true, + "extra_data": {}, + "dependencies": [], + "repository_homepage_url": null, + "repository_download_url": null, + "api_data_url": null, + "datasource_id": "cocoapods_podfile_lock" + }, + "extra_data": {} + }, + { + "purl": "pkg:cocoapods/boost@1.76.0", + "extracted_requirement": "1.76.0", + "scope": "requires", + "is_runtime": false, + "is_optional": true, + "is_resolved": true, + "is_direct": true, + "resolved_package": { + "type": "cocoapods", + "namespace": null, + "name": "boost", + "version": "1.76.0", + "qualifiers": {}, + "subpath": null, + "primary_language": "Objective-C", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": null, + "size": null, + "sha1": "7dcd2de282d72e344012f7d6564d024930a6a440", + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "holder": null, + "declared_license_expression": null, + "declared_license_expression_spdx": null, + "license_detections": [], + "other_license_expression": null, + "other_license_expression_spdx": null, + "other_license_detections": [], + "extracted_license_statement": null, + "notice_text": null, + "source_packages": [], + "file_references": [], + "is_private": false, + "is_virtual": true, + "extra_data": { + "external_source": "../node_modules/react-native/third-party-podspecs/boost.podspec" + }, + "dependencies": [], + "repository_homepage_url": null, + "repository_download_url": null, + "api_data_url": null, + "datasource_id": "cocoapods_podfile_lock" + }, + "extra_data": {} + }, + { + "purl": "pkg:cocoapods/ISO8601DateFormatter@0.7.1", + "extracted_requirement": "0.7.1", + "scope": "requires", + "is_runtime": false, + "is_optional": true, + "is_resolved": true, + "is_direct": false, + "resolved_package": { + "type": "cocoapods", + "namespace": null, + "name": "ISO8601DateFormatter", + "version": "0.7.1", + "qualifiers": {}, + "subpath": null, + "primary_language": "Objective-C", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": null, + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "holder": null, + "declared_license_expression": null, + "declared_license_expression_spdx": null, + "license_detections": [], + "other_license_expression": null, + "other_license_expression_spdx": null, + "other_license_detections": [], + "extracted_license_statement": null, + "notice_text": null, + "source_packages": [], + "file_references": [], + "is_private": false, + "is_virtual": true, + "extra_data": { + "external_source": "https://github.com/artsy/iso-8601-date-formatter/tree/1a48b819c85903ded669e74e476aceffebf311fc" + }, + "dependencies": [], + "repository_homepage_url": null, + "repository_download_url": null, + "api_data_url": null, + "datasource_id": "cocoapods_podfile_lock" + }, + "extra_data": {} + }, + { + "purl": "pkg:cocoapods/Pulley@2.6.2", + "extracted_requirement": "2.6.2", + "scope": "requires", + "is_runtime": false, + "is_optional": true, + "is_resolved": true, + "is_direct": true, + "resolved_package": { + "type": "cocoapods", + "namespace": null, + "name": "Pulley", + "version": "2.6.2", + "qualifiers": {}, + "subpath": null, + "primary_language": "Objective-C", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": null, + "size": null, + "sha1": "edc993fb57f7eb20541c8453d0fce10559f21dac", + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "holder": null, + "declared_license_expression": null, + "declared_license_expression_spdx": null, + "license_detections": [], + "other_license_expression": null, + "other_license_expression_spdx": null, + "other_license_detections": [], + "extracted_license_statement": null, + "notice_text": null, + "source_packages": [], + "file_references": [], + "is_private": false, + "is_virtual": true, + "extra_data": { + "external_source": "https://github.com/artsy/Pulley/tree/f677b18b332ea3798dc379879dbc0d038efd3ccc" + }, + "dependencies": [], + "repository_homepage_url": null, + "repository_download_url": null, + "api_data_url": null, + "datasource_id": "cocoapods_podfile_lock" + }, + "extra_data": {} + }, + { + "purl": "pkg:cocoapods/SwiftyJSON@5.0.2", + "extracted_requirement": "5.0.2", + "scope": "requires", + "is_runtime": false, + "is_optional": true, + "is_resolved": true, + "is_direct": true, + "resolved_package": { + "type": "cocoapods", + "namespace": null, + "name": "SwiftyJSON", + "version": "5.0.2", + "qualifiers": {}, + "subpath": null, + "primary_language": "Objective-C", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": null, + "size": null, + "sha1": "576fbf26942d5ef414daad8870b1642413ecc00c", + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "holder": null, + "declared_license_expression": null, + "declared_license_expression_spdx": null, + "license_detections": [], + "other_license_expression": null, + "other_license_expression_spdx": null, + "other_license_detections": [], + "extracted_license_statement": null, + "notice_text": null, + "source_packages": [], + "file_references": [], + "is_private": false, + "is_virtual": true, + "extra_data": { + "external_source": "https://github.com/SwiftyJSON/SwiftyJSON/tree/af76cf3ef710b6ca5f8c05f3a31307d44a3c5828" + }, + "dependencies": [], + "repository_homepage_url": null, + "repository_download_url": null, + "api_data_url": null, + "datasource_id": "cocoapods_podfile_lock" + }, + "extra_data": {} + } + ], + "repository_homepage_url": null, + "repository_download_url": null, + "api_data_url": null, + "datasource_id": "cocoapods_podfile_lock", + "purl": null + } +] \ No newline at end of file diff --git a/tests/packagedcode/data/cocoapods/podfile.lock/braintree_ios_Podfile.lock.expected.json b/tests/packagedcode/data/cocoapods/podfile.lock/braintree_ios_Podfile.lock.expected.json index c47f68e24b8..27ec560a146 100644 --- a/tests/packagedcode/data/cocoapods/podfile.lock/braintree_ios_Podfile.lock.expected.json +++ b/tests/packagedcode/data/cocoapods/podfile.lock/braintree_ios_Podfile.lock.expected.json @@ -35,7 +35,10 @@ "file_references": [], "is_private": false, "is_virtual": false, - "extra_data": {}, + "extra_data": { + "cocoapods": "1.10.1", + "podfile_checksum": "75163f16229528991a9364c7c1a44cd57a30cac6" + }, "dependencies": [ { "purl": "pkg:cocoapods/Expecta@1.0.6", @@ -45,7 +48,51 @@ "is_optional": true, "is_resolved": true, "is_direct": true, - "resolved_package": {}, + "resolved_package": { + "type": "cocoapods", + "namespace": null, + "name": "Expecta", + "version": "1.0.6", + "qualifiers": {}, + "subpath": null, + "primary_language": "Objective-C", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": null, + "size": null, + "sha1": "3b6bd90a64b9a1dcb0b70aa0e10a7f8f631667d5", + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "holder": null, + "declared_license_expression": null, + "declared_license_expression_spdx": null, + "license_detections": [], + "other_license_expression": null, + "other_license_expression_spdx": null, + "other_license_detections": [], + "extracted_license_statement": null, + "notice_text": null, + "source_packages": [], + "file_references": [], + "is_private": false, + "is_virtual": true, + "extra_data": { + "spec_repo": "trunk" + }, + "dependencies": [], + "repository_homepage_url": null, + "repository_download_url": null, + "api_data_url": null, + "datasource_id": "cocoapods_podfile_lock" + }, "extra_data": {} }, { @@ -56,7 +103,51 @@ "is_optional": true, "is_resolved": true, "is_direct": true, - "resolved_package": {}, + "resolved_package": { + "type": "cocoapods", + "namespace": null, + "name": "InAppSettingsKit", + "version": "3.1.4", + "qualifiers": {}, + "subpath": null, + "primary_language": "Objective-C", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": null, + "size": null, + "sha1": "01fb9774c74a11fefc521f29cb2338909e1c2b61", + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "holder": null, + "declared_license_expression": null, + "declared_license_expression_spdx": null, + "license_detections": [], + "other_license_expression": null, + "other_license_expression_spdx": null, + "other_license_detections": [], + "extracted_license_statement": null, + "notice_text": null, + "source_packages": [], + "file_references": [], + "is_private": false, + "is_virtual": true, + "extra_data": { + "spec_repo": "trunk" + }, + "dependencies": [], + "repository_homepage_url": null, + "repository_download_url": null, + "api_data_url": null, + "datasource_id": "cocoapods_podfile_lock" + }, "extra_data": {} }, { @@ -67,7 +158,51 @@ "is_optional": true, "is_resolved": true, "is_direct": true, - "resolved_package": {}, + "resolved_package": { + "type": "cocoapods", + "namespace": null, + "name": "OCMock", + "version": "3.7.1", + "qualifiers": {}, + "subpath": null, + "primary_language": "Objective-C", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": null, + "size": null, + "sha1": "75fbeaa46a9b11f8c182bbb1d1f7e9a35ccc9955", + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "holder": null, + "declared_license_expression": null, + "declared_license_expression_spdx": null, + "license_detections": [], + "other_license_expression": null, + "other_license_expression_spdx": null, + "other_license_detections": [], + "extracted_license_statement": null, + "notice_text": null, + "source_packages": [], + "file_references": [], + "is_private": false, + "is_virtual": true, + "extra_data": { + "spec_repo": "trunk" + }, + "dependencies": [], + "repository_homepage_url": null, + "repository_download_url": null, + "api_data_url": null, + "datasource_id": "cocoapods_podfile_lock" + }, "extra_data": {} }, { @@ -78,7 +213,63 @@ "is_optional": true, "is_resolved": true, "is_direct": true, - "resolved_package": {}, + "resolved_package": { + "type": "cocoapods", + "namespace": null, + "name": "OHHTTPStubs", + "version": "9.0.0", + "qualifiers": {}, + "subpath": null, + "primary_language": "Objective-C", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": null, + "size": null, + "sha1": "cb29d2a9d09a828ecb93349a2b0c64f99e0db89f", + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "holder": null, + "declared_license_expression": null, + "declared_license_expression_spdx": null, + "license_detections": [], + "other_license_expression": null, + "other_license_expression_spdx": null, + "other_license_detections": [], + "extracted_license_statement": null, + "notice_text": null, + "source_packages": [], + "file_references": [], + "is_private": false, + "is_virtual": true, + "extra_data": { + "spec_repo": "trunk" + }, + "dependencies": [ + { + "purl": "pkg:cocoapods/OHHTTPStubs/Default@9.0.0", + "extracted_requirement": "= 9.0.0", + "scope": "requires", + "is_runtime": false, + "is_optional": true, + "is_resolved": true, + "is_direct": true, + "resolved_package": {}, + "extra_data": {} + } + ], + "repository_homepage_url": null, + "repository_download_url": null, + "api_data_url": null, + "datasource_id": "cocoapods_podfile_lock" + }, "extra_data": {} }, { @@ -88,8 +279,50 @@ "is_runtime": false, "is_optional": true, "is_resolved": true, - "is_direct": true, - "resolved_package": {}, + "is_direct": false, + "resolved_package": { + "type": "cocoapods", + "namespace": "OHHTTPStubs", + "name": "Core", + "version": "9.0.0", + "qualifiers": {}, + "subpath": null, + "primary_language": "Objective-C", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": null, + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "holder": null, + "declared_license_expression": null, + "declared_license_expression_spdx": null, + "license_detections": [], + "other_license_expression": null, + "other_license_expression_spdx": null, + "other_license_detections": [], + "extracted_license_statement": null, + "notice_text": null, + "source_packages": [], + "file_references": [], + "is_private": false, + "is_virtual": true, + "extra_data": {}, + "dependencies": [], + "repository_homepage_url": null, + "repository_download_url": null, + "api_data_url": null, + "datasource_id": "cocoapods_podfile_lock" + }, "extra_data": {} }, { @@ -99,8 +332,95 @@ "is_runtime": false, "is_optional": true, "is_resolved": true, - "is_direct": true, - "resolved_package": {}, + "is_direct": false, + "resolved_package": { + "type": "cocoapods", + "namespace": "OHHTTPStubs", + "name": "Default", + "version": "9.0.0", + "qualifiers": {}, + "subpath": null, + "primary_language": "Objective-C", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": null, + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "holder": null, + "declared_license_expression": null, + "declared_license_expression_spdx": null, + "license_detections": [], + "other_license_expression": null, + "other_license_expression_spdx": null, + "other_license_detections": [], + "extracted_license_statement": null, + "notice_text": null, + "source_packages": [], + "file_references": [], + "is_private": false, + "is_virtual": true, + "extra_data": {}, + "dependencies": [ + { + "purl": "pkg:cocoapods/OHHTTPStubs/Core@9.0.0", + "extracted_requirement": "9.0.0", + "scope": "requires", + "is_runtime": false, + "is_optional": true, + "is_resolved": true, + "is_direct": true, + "resolved_package": {}, + "extra_data": {} + }, + { + "purl": "pkg:cocoapods/OHHTTPStubs/JSON@9.0.0", + "extracted_requirement": "9.0.0", + "scope": "requires", + "is_runtime": false, + "is_optional": true, + "is_resolved": true, + "is_direct": true, + "resolved_package": {}, + "extra_data": {} + }, + { + "purl": "pkg:cocoapods/OHHTTPStubs/NSURLSession@9.0.0", + "extracted_requirement": "9.0.0", + "scope": "requires", + "is_runtime": false, + "is_optional": true, + "is_resolved": true, + "is_direct": true, + "resolved_package": {}, + "extra_data": {} + }, + { + "purl": "pkg:cocoapods/OHHTTPStubs/OHPathHelpers@9.0.0", + "extracted_requirement": "9.0.0", + "scope": "requires", + "is_runtime": false, + "is_optional": true, + "is_resolved": true, + "is_direct": true, + "resolved_package": {}, + "extra_data": {} + } + ], + "repository_homepage_url": null, + "repository_download_url": null, + "api_data_url": null, + "datasource_id": "cocoapods_podfile_lock" + }, "extra_data": {} }, { @@ -110,8 +430,62 @@ "is_runtime": false, "is_optional": true, "is_resolved": true, - "is_direct": true, - "resolved_package": {}, + "is_direct": false, + "resolved_package": { + "type": "cocoapods", + "namespace": "OHHTTPStubs", + "name": "JSON", + "version": "9.0.0", + "qualifiers": {}, + "subpath": null, + "primary_language": "Objective-C", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": null, + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "holder": null, + "declared_license_expression": null, + "declared_license_expression_spdx": null, + "license_detections": [], + "other_license_expression": null, + "other_license_expression_spdx": null, + "other_license_detections": [], + "extracted_license_statement": null, + "notice_text": null, + "source_packages": [], + "file_references": [], + "is_private": false, + "is_virtual": true, + "extra_data": {}, + "dependencies": [ + { + "purl": "pkg:cocoapods/OHHTTPStubs/Core@9.0.0", + "extracted_requirement": "9.0.0", + "scope": "requires", + "is_runtime": false, + "is_optional": true, + "is_resolved": true, + "is_direct": true, + "resolved_package": {}, + "extra_data": {} + } + ], + "repository_homepage_url": null, + "repository_download_url": null, + "api_data_url": null, + "datasource_id": "cocoapods_podfile_lock" + }, "extra_data": {} }, { @@ -121,8 +495,62 @@ "is_runtime": false, "is_optional": true, "is_resolved": true, - "is_direct": true, - "resolved_package": {}, + "is_direct": false, + "resolved_package": { + "type": "cocoapods", + "namespace": "OHHTTPStubs", + "name": "NSURLSession", + "version": "9.0.0", + "qualifiers": {}, + "subpath": null, + "primary_language": "Objective-C", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": null, + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "holder": null, + "declared_license_expression": null, + "declared_license_expression_spdx": null, + "license_detections": [], + "other_license_expression": null, + "other_license_expression_spdx": null, + "other_license_detections": [], + "extracted_license_statement": null, + "notice_text": null, + "source_packages": [], + "file_references": [], + "is_private": false, + "is_virtual": true, + "extra_data": {}, + "dependencies": [ + { + "purl": "pkg:cocoapods/OHHTTPStubs/Core@9.0.0", + "extracted_requirement": "9.0.0", + "scope": "requires", + "is_runtime": false, + "is_optional": true, + "is_resolved": true, + "is_direct": true, + "resolved_package": {}, + "extra_data": {} + } + ], + "repository_homepage_url": null, + "repository_download_url": null, + "api_data_url": null, + "datasource_id": "cocoapods_podfile_lock" + }, "extra_data": {} }, { @@ -132,8 +560,50 @@ "is_runtime": false, "is_optional": true, "is_resolved": true, - "is_direct": true, - "resolved_package": {}, + "is_direct": false, + "resolved_package": { + "type": "cocoapods", + "namespace": "OHHTTPStubs", + "name": "OHPathHelpers", + "version": "9.0.0", + "qualifiers": {}, + "subpath": null, + "primary_language": "Objective-C", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": null, + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "holder": null, + "declared_license_expression": null, + "declared_license_expression_spdx": null, + "license_detections": [], + "other_license_expression": null, + "other_license_expression_spdx": null, + "other_license_detections": [], + "extracted_license_statement": null, + "notice_text": null, + "source_packages": [], + "file_references": [], + "is_private": false, + "is_virtual": true, + "extra_data": {}, + "dependencies": [], + "repository_homepage_url": null, + "repository_download_url": null, + "api_data_url": null, + "datasource_id": "cocoapods_podfile_lock" + }, "extra_data": {} }, { @@ -144,7 +614,51 @@ "is_optional": true, "is_resolved": true, "is_direct": true, - "resolved_package": {}, + "resolved_package": { + "type": "cocoapods", + "namespace": null, + "name": "Specta", + "version": "1.0.7", + "qualifiers": {}, + "subpath": null, + "primary_language": "Objective-C", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": null, + "size": null, + "sha1": "3e1bd89c3517421982dc4d1c992503e48bd5fe66", + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "holder": null, + "declared_license_expression": null, + "declared_license_expression_spdx": null, + "license_detections": [], + "other_license_expression": null, + "other_license_expression_spdx": null, + "other_license_detections": [], + "extracted_license_statement": null, + "notice_text": null, + "source_packages": [], + "file_references": [], + "is_private": false, + "is_virtual": true, + "extra_data": { + "spec_repo": "trunk" + }, + "dependencies": [], + "repository_homepage_url": null, + "repository_download_url": null, + "api_data_url": null, + "datasource_id": "cocoapods_podfile_lock" + }, "extra_data": {} }, { @@ -155,7 +669,51 @@ "is_optional": true, "is_resolved": true, "is_direct": true, - "resolved_package": {}, + "resolved_package": { + "type": "cocoapods", + "namespace": null, + "name": "xcbeautify", + "version": "0.8.1", + "qualifiers": {}, + "subpath": null, + "primary_language": "Objective-C", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": null, + "size": null, + "sha1": "a3b03e4a38eb1a5766a83a7a3c53915a233572e3", + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "holder": null, + "declared_license_expression": null, + "declared_license_expression_spdx": null, + "license_detections": [], + "other_license_expression": null, + "other_license_expression_spdx": null, + "other_license_detections": [], + "extracted_license_statement": null, + "notice_text": null, + "source_packages": [], + "file_references": [], + "is_private": false, + "is_virtual": true, + "extra_data": { + "spec_repo": "trunk" + }, + "dependencies": [], + "repository_homepage_url": null, + "repository_download_url": null, + "api_data_url": null, + "datasource_id": "cocoapods_podfile_lock" + }, "extra_data": {} } ], diff --git a/tests/packagedcode/test_cocoapods.py b/tests/packagedcode/test_cocoapods.py index 0d1407b38d8..523d925c79b 100644 --- a/tests/packagedcode/test_cocoapods.py +++ b/tests/packagedcode/test_cocoapods.py @@ -148,12 +148,18 @@ def test_cocoapods_can_detect_podfile_lock(self): test_file = self.get_test_loc('cocoapods/podfile.lock/braintree_ios_Podfile.lock') assert PodfileLockHandler.is_datafile(test_file) - def test_cocoapods_can_parse_braintree_ios(self): + def test_cocoapods_can_parse_simple_podfile_lock(self): test_file = self.get_test_loc('cocoapods/podfile.lock/braintree_ios_Podfile.lock') expected_loc = self.get_test_loc('cocoapods/podfile.lock/braintree_ios_Podfile.lock.expected.json') packages = PodfileLockHandler.parse(test_file) self.check_packages_data(packages, expected_loc, regen=REGEN_TEST_FIXTURES) + def test_cocoapods_can_parse_complex_podfile_lock(self): + test_file = self.get_test_loc('cocoapods/podfile.lock/artsy_eigen_Podfile.lock') + expected_loc = self.get_test_loc('cocoapods/podfile.lock/artsy_eigen_Podfile.lock.expected.json') + packages = PodfileLockHandler.parse(test_file) + self.check_packages_data(packages, expected_loc, regen=REGEN_TEST_FIXTURES) + class TestCocoapodsEndToEndAssemble(PackageTester): test_data_dir = os.path.join(os.path.dirname(__file__), 'data')