diff --git a/HISTORY.md b/HISTORY.md index 6b65718a..dfde0d13 100644 --- a/HISTORY.md +++ b/HISTORY.md @@ -6,6 +6,14 @@ All notable changes to this project will be documented in this file. +Added _basic_ support for [_CycloneDX_ Specification-1.7](https://github.com/CycloneDX/specification/releases/tag/1.7). + +* Changed + * This tool may support _CycloneDX_ Specification-1.7 now (via [#579]) + This feature depends on `cyclonedx/cyclonedx-library:^3.8`. + +[#579]: https://github.com/CycloneDX/cyclonedx-php-composer/pull/579 + ## 5.2.3 - 2025-05-12 Maintenance release. diff --git a/README.md b/README.md index a48fa0c7..151c43f6 100644 --- a/README.md +++ b/README.md @@ -74,7 +74,7 @@ Options: {choices: "dev", "plugin"} (multiple values allowed) --spec-version=SPEC-VERSION Which version of CycloneDX spec to use. - {choices: "1.1", "1.2", "1.3", "1.4", "1.5", "1.6"} + {choices: "1.1", "1.2", "1.3", "1.4", "1.5", "1.6", "1.7"} [default: "1.5"] --output-reproducible|--no-output-reproducible Whether to go the extra mile and make the output reproducible. This might result in loss of time- and random-based-values. diff --git a/composer.json b/composer.json index 3352ec36..3c604c96 100644 --- a/composer.json +++ b/composer.json @@ -55,6 +55,7 @@ }, "config": { "allow-plugins": { + "cyclonedx/cyclonedx-php-composer": true, "ergebnis/composer-normalize": true, "icanhazstring/composer-unused": true }, diff --git a/demo/devReq/README.md b/demo/devReq/README.md index b41de1d0..105c2fd1 100644 --- a/demo/devReq/README.md +++ b/demo/devReq/README.md @@ -14,10 +14,14 @@ The following are examples generated by _cyclonedx-php-composer_: * [`results/bom.1.3.xml`](results/bom.1.3.xml) * [`results/bom.1.4.xml`](results/bom.1.4.xml) * [`results/bom.1.5.xml`](results/bom.1.5.xml) +* [`results/bom.1.6.xml`](results/bom.1.6.xml) +* [`results/bom.1.7.xml`](results/bom.1.7.xml) * [`results/bom.1.2.json`](results/bom.1.2.json) * [`results/bom.1.3.json`](results/bom.1.3.json) * [`results/bom.1.4.json`](results/bom.1.4.json) * [`results/bom.1.5.json`](results/bom.1.5.json) +* [`results/bom.1.6.json`](results/bom.1.6.json) +* [`results/bom.1.7.json`](results/bom.1.7.json) ## Setup diff --git a/demo/devReq/project/composer.json b/demo/devReq/project/composer.json index 72d7944c..32c4e6c7 100644 --- a/demo/devReq/project/composer.json +++ b/demo/devReq/project/composer.json @@ -39,6 +39,7 @@ "@putenv CDX_CP_TOOLS_VERSION_OVERRIDE=in-dev", "@putenv CDX_CP_TOOLS_EXCLUDE_LIBS=1", "@putenv CDX_CP_TOOLS_EXCLUDE_COMPOSER=1", + "@composer -d ../../.tool CycloneDX:make-sbom --validate --spec-version=1.7 --output-reproducible --output-format=JSON --output-file=$PWD/../results/bom.1.7.json $PWD/composer.json", "@composer -d ../../.tool CycloneDX:make-sbom --validate --spec-version=1.6 --output-reproducible --output-format=JSON --output-file=$PWD/../results/bom.1.6.json $PWD/composer.json", "@composer -d ../../.tool CycloneDX:make-sbom --validate --spec-version=1.5 --output-reproducible --output-format=JSON --output-file=$PWD/../results/bom.1.5.json $PWD/composer.json", "@composer -d ../../.tool CycloneDX:make-sbom --validate --spec-version=1.4 --output-reproducible --output-format=JSON --output-file=$PWD/../results/bom.1.4.json $PWD/composer.json", @@ -49,6 +50,7 @@ "@putenv CDX_CP_TOOLS_VERSION_OVERRIDE=in-dev", "@putenv CDX_CP_TOOLS_EXCLUDE_LIBS=1", "@putenv CDX_CP_TOOLS_EXCLUDE_COMPOSER=1", + "@composer -d ../../.tool CycloneDX:make-sbom --validate --spec-version=1.7 --output-reproducible --output-format=XML --output-file=$PWD/../results/bom.1.7.xml $PWD/composer.json", "@composer -d ../../.tool CycloneDX:make-sbom --validate --spec-version=1.6 --output-reproducible --output-format=XML --output-file=$PWD/../results/bom.1.6.xml $PWD/composer.json", "@composer -d ../../.tool CycloneDX:make-sbom --validate --spec-version=1.5 --output-reproducible --output-format=XML --output-file=$PWD/../results/bom.1.5.xml $PWD/composer.json", "@composer -d ../../.tool CycloneDX:make-sbom --validate --spec-version=1.4 --output-reproducible --output-format=XML --output-file=$PWD/../results/bom.1.4.xml $PWD/composer.json", diff --git a/demo/devReq/results/bom.1.7.json b/demo/devReq/results/bom.1.7.json new file mode 100644 index 00000000..97982274 --- /dev/null +++ b/demo/devReq/results/bom.1.7.json @@ -0,0 +1,1952 @@ +{ + "$schema": "http://cyclonedx.org/schema/bom-1.7.schema.json", + "bomFormat": "CycloneDX", + "specVersion": "1.7", + "version": 1, + "metadata": { + "tools": [ + { + "vendor": "cyclonedx", + "name": "cyclonedx-php-composer", + "version": "in-dev" + } + ], + "component": { + "bom-ref": "cyclonedx-demo/cyclonedx-php-composer-devreq-dev-master", + "type": "application", + "name": "cyclonedx-php-composer-devreq", + "version": "dev-master", + "group": "cyclonedx-demo", + "description": "demo of cyclonedx/cyclonedx-php-composer with a dev dependency", + "author": "Jan Kowalleck", + "purl": "pkg:composer/cyclonedx-demo/cyclonedx-php-composer-devreq@dev-master", + "externalReferences": [ + { + "type": "website", + "url": "https://cyclonedx.org/", + "comment": "as detected from Composer manifest 'homepage'" + }, + { + "type": "other", + "url": "support@cyclonedx.org", + "comment": "as detected from Composer manifest 'support.email'" + }, + { + "type": "issue-tracker", + "url": "https://github.com/CycloneDX/cyclonedx-php-composer/issues", + "comment": "as detected from Composer manifest 'support.issues'" + }, + { + "type": "other", + "url": "https://groups.io/g/CycloneDX", + "comment": "as detected from Composer manifest 'support.forum'" + }, + { + "type": "chat", + "url": "https://cyclonedx.org/slack/invite", + "comment": "as detected from Composer manifest 'support.chat'" + }, + { + "type": "documentation", + "url": "https://github.com/CycloneDX/cyclonedx-php-composer/blob/master/demo/devReq/README.md", + "comment": "as detected from Composer manifest 'support.docs'" + } + ], + "properties": [ + { + "name": "cdx:composer:package:type", + "value": "project" + } + ] + } + }, + "components": [ + { + "bom-ref": "doctrine/instantiator-1.5.0.0", + "type": "library", + "name": "instantiator", + "version": "1.5.0", + "group": "doctrine", + "description": "A small, lightweight utility to instantiate objects in PHP without invoking their constructors", + "author": "Marco Pivetta", + "licenses": [ + { + "license": { + "id": "MIT", + "acknowledgement": "declared" + } + } + ], + "purl": "pkg:composer/doctrine/instantiator@1.5.0", + "externalReferences": [ + { + "type": "distribution", + "url": "https://api.github.com/repos/doctrine/instantiator/zipball/0a0fa9780f5d4e507415a065172d26a98d02047b", + "comment": "dist reference: 0a0fa9780f5d4e507415a065172d26a98d02047b" + }, + { + "type": "vcs", + "url": "https://github.com/doctrine/instantiator.git", + "comment": "source reference: 0a0fa9780f5d4e507415a065172d26a98d02047b" + }, + { + "type": "website", + "url": "https://www.doctrine-project.org/projects/instantiator.html", + "comment": "as detected from Composer manifest 'homepage'" + }, + { + "type": "issue-tracker", + "url": "https://github.com/doctrine/instantiator/issues", + "comment": "as detected from Composer manifest 'support.issues'" + }, + { + "type": "vcs", + "url": "https://github.com/doctrine/instantiator/tree/1.5.0", + "comment": "as detected from Composer manifest 'support.source'" + } + ], + "properties": [ + { + "name": "cdx:composer:package:distReference", + "value": "0a0fa9780f5d4e507415a065172d26a98d02047b" + }, + { + "name": "cdx:composer:package:sourceReference", + "value": "0a0fa9780f5d4e507415a065172d26a98d02047b" + }, + { + "name": "cdx:composer:package:type", + "value": "library" + }, + { + "name": "cdx:composer:package:isDevRequirement", + "value": "true" + } + ] + }, + { + "bom-ref": "myclabs/deep-copy-1.11.0.0", + "type": "library", + "name": "deep-copy", + "version": "1.11.0", + "group": "myclabs", + "description": "Create deep copies (clones) of your objects", + "licenses": [ + { + "license": { + "id": "MIT", + "acknowledgement": "declared" + } + } + ], + "purl": "pkg:composer/myclabs/deep-copy@1.11.0", + "externalReferences": [ + { + "type": "distribution", + "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/14daed4296fae74d9e3201d2c4925d1acb7aa614", + "comment": "dist reference: 14daed4296fae74d9e3201d2c4925d1acb7aa614" + }, + { + "type": "vcs", + "url": "https://github.com/myclabs/DeepCopy.git", + "comment": "source reference: 14daed4296fae74d9e3201d2c4925d1acb7aa614" + }, + { + "type": "issue-tracker", + "url": "https://github.com/myclabs/DeepCopy/issues", + "comment": "as detected from Composer manifest 'support.issues'" + }, + { + "type": "vcs", + "url": "https://github.com/myclabs/DeepCopy/tree/1.11.0", + "comment": "as detected from Composer manifest 'support.source'" + } + ], + "properties": [ + { + "name": "cdx:composer:package:distReference", + "value": "14daed4296fae74d9e3201d2c4925d1acb7aa614" + }, + { + "name": "cdx:composer:package:sourceReference", + "value": "14daed4296fae74d9e3201d2c4925d1acb7aa614" + }, + { + "name": "cdx:composer:package:type", + "value": "library" + }, + { + "name": "cdx:composer:package:isDevRequirement", + "value": "true" + } + ] + }, + { + "bom-ref": "nikic/php-parser-4.15.4.0", + "type": "library", + "name": "php-parser", + "version": "v4.15.4", + "group": "nikic", + "description": "A PHP parser written in PHP", + "author": "Nikita Popov", + "licenses": [ + { + "license": { + "id": "BSD-3-Clause", + "acknowledgement": "declared" + } + } + ], + "purl": "pkg:composer/nikic/php-parser@v4.15.4", + "externalReferences": [ + { + "type": "distribution", + "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/6bb5176bc4af8bcb7d926f88718db9b96a2d4290", + "comment": "dist reference: 6bb5176bc4af8bcb7d926f88718db9b96a2d4290" + }, + { + "type": "vcs", + "url": "https://github.com/nikic/PHP-Parser.git", + "comment": "source reference: 6bb5176bc4af8bcb7d926f88718db9b96a2d4290" + }, + { + "type": "issue-tracker", + "url": "https://github.com/nikic/PHP-Parser/issues", + "comment": "as detected from Composer manifest 'support.issues'" + }, + { + "type": "vcs", + "url": "https://github.com/nikic/PHP-Parser/tree/v4.15.4", + "comment": "as detected from Composer manifest 'support.source'" + } + ], + "properties": [ + { + "name": "cdx:composer:package:distReference", + "value": "6bb5176bc4af8bcb7d926f88718db9b96a2d4290" + }, + { + "name": "cdx:composer:package:sourceReference", + "value": "6bb5176bc4af8bcb7d926f88718db9b96a2d4290" + }, + { + "name": "cdx:composer:package:type", + "value": "library" + }, + { + "name": "cdx:composer:package:isDevRequirement", + "value": "true" + } + ] + }, + { + "bom-ref": "phar-io/manifest-2.0.3.0", + "type": "library", + "name": "manifest", + "version": "2.0.3", + "group": "phar-io", + "description": "Component for reading phar.io manifest information from a PHP Archive (PHAR)", + "author": "Arne Blankerts, Sebastian Heuer, Sebastian Bergmann", + "licenses": [ + { + "license": { + "id": "BSD-3-Clause", + "acknowledgement": "declared" + } + } + ], + "purl": "pkg:composer/phar-io/manifest@2.0.3", + "externalReferences": [ + { + "type": "distribution", + "url": "https://api.github.com/repos/phar-io/manifest/zipball/97803eca37d319dfa7826cc2437fc020857acb53", + "comment": "dist reference: 97803eca37d319dfa7826cc2437fc020857acb53" + }, + { + "type": "vcs", + "url": "https://github.com/phar-io/manifest.git", + "comment": "source reference: 97803eca37d319dfa7826cc2437fc020857acb53" + }, + { + "type": "issue-tracker", + "url": "https://github.com/phar-io/manifest/issues", + "comment": "as detected from Composer manifest 'support.issues'" + }, + { + "type": "vcs", + "url": "https://github.com/phar-io/manifest/tree/2.0.3", + "comment": "as detected from Composer manifest 'support.source'" + } + ], + "properties": [ + { + "name": "cdx:composer:package:distReference", + "value": "97803eca37d319dfa7826cc2437fc020857acb53" + }, + { + "name": "cdx:composer:package:sourceReference", + "value": "97803eca37d319dfa7826cc2437fc020857acb53" + }, + { + "name": "cdx:composer:package:type", + "value": "library" + }, + { + "name": "cdx:composer:package:isDevRequirement", + "value": "true" + } + ] + }, + { + "bom-ref": "phar-io/version-3.2.1.0", + "type": "library", + "name": "version", + "version": "3.2.1", + "group": "phar-io", + "description": "Library for handling version information and constraints", + "author": "Arne Blankerts, Sebastian Heuer, Sebastian Bergmann", + "licenses": [ + { + "license": { + "id": "BSD-3-Clause", + "acknowledgement": "declared" + } + } + ], + "purl": "pkg:composer/phar-io/version@3.2.1", + "externalReferences": [ + { + "type": "distribution", + "url": "https://api.github.com/repos/phar-io/version/zipball/4f7fd7836c6f332bb2933569e566a0d6c4cbed74", + "comment": "dist reference: 4f7fd7836c6f332bb2933569e566a0d6c4cbed74" + }, + { + "type": "vcs", + "url": "https://github.com/phar-io/version.git", + "comment": "source reference: 4f7fd7836c6f332bb2933569e566a0d6c4cbed74" + }, + { + "type": "issue-tracker", + "url": "https://github.com/phar-io/version/issues", + "comment": "as detected from Composer manifest 'support.issues'" + }, + { + "type": "vcs", + "url": "https://github.com/phar-io/version/tree/3.2.1", + "comment": "as detected from Composer manifest 'support.source'" + } + ], + "properties": [ + { + "name": "cdx:composer:package:distReference", + "value": "4f7fd7836c6f332bb2933569e566a0d6c4cbed74" + }, + { + "name": "cdx:composer:package:sourceReference", + "value": "4f7fd7836c6f332bb2933569e566a0d6c4cbed74" + }, + { + "name": "cdx:composer:package:type", + "value": "library" + }, + { + "name": "cdx:composer:package:isDevRequirement", + "value": "true" + } + ] + }, + { + "bom-ref": "phpunit/php-code-coverage-9.2.26.0", + "type": "library", + "name": "php-code-coverage", + "version": "9.2.26", + "group": "phpunit", + "description": "Library that provides collection, processing, and rendering functionality for PHP code coverage information.", + "author": "Sebastian Bergmann", + "licenses": [ + { + "license": { + "id": "BSD-3-Clause", + "acknowledgement": "declared" + } + } + ], + "purl": "pkg:composer/phpunit/php-code-coverage@9.2.26", + "externalReferences": [ + { + "type": "distribution", + "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/443bc6912c9bd5b409254a40f4b0f4ced7c80ea1", + "comment": "dist reference: 443bc6912c9bd5b409254a40f4b0f4ced7c80ea1" + }, + { + "type": "vcs", + "url": "https://github.com/sebastianbergmann/php-code-coverage.git", + "comment": "source reference: 443bc6912c9bd5b409254a40f4b0f4ced7c80ea1" + }, + { + "type": "website", + "url": "https://github.com/sebastianbergmann/php-code-coverage", + "comment": "as detected from Composer manifest 'homepage'" + }, + { + "type": "issue-tracker", + "url": "https://github.com/sebastianbergmann/php-code-coverage/issues", + "comment": "as detected from Composer manifest 'support.issues'" + }, + { + "type": "vcs", + "url": "https://github.com/sebastianbergmann/php-code-coverage/tree/9.2.26", + "comment": "as detected from Composer manifest 'support.source'" + } + ], + "properties": [ + { + "name": "cdx:composer:package:distReference", + "value": "443bc6912c9bd5b409254a40f4b0f4ced7c80ea1" + }, + { + "name": "cdx:composer:package:sourceReference", + "value": "443bc6912c9bd5b409254a40f4b0f4ced7c80ea1" + }, + { + "name": "cdx:composer:package:type", + "value": "library" + }, + { + "name": "cdx:composer:package:isDevRequirement", + "value": "true" + } + ] + }, + { + "bom-ref": "phpunit/php-file-iterator-3.0.6.0", + "type": "library", + "name": "php-file-iterator", + "version": "3.0.6", + "group": "phpunit", + "description": "FilterIterator implementation that filters files based on a list of suffixes.", + "author": "Sebastian Bergmann", + "licenses": [ + { + "license": { + "id": "BSD-3-Clause", + "acknowledgement": "declared" + } + } + ], + "purl": "pkg:composer/phpunit/php-file-iterator@3.0.6", + "externalReferences": [ + { + "type": "distribution", + "url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/cf1c2e7c203ac650e352f4cc675a7021e7d1b3cf", + "comment": "dist reference: cf1c2e7c203ac650e352f4cc675a7021e7d1b3cf" + }, + { + "type": "vcs", + "url": "https://github.com/sebastianbergmann/php-file-iterator.git", + "comment": "source reference: cf1c2e7c203ac650e352f4cc675a7021e7d1b3cf" + }, + { + "type": "website", + "url": "https://github.com/sebastianbergmann/php-file-iterator/", + "comment": "as detected from Composer manifest 'homepage'" + }, + { + "type": "issue-tracker", + "url": "https://github.com/sebastianbergmann/php-file-iterator/issues", + "comment": "as detected from Composer manifest 'support.issues'" + }, + { + "type": "vcs", + "url": "https://github.com/sebastianbergmann/php-file-iterator/tree/3.0.6", + "comment": "as detected from Composer manifest 'support.source'" + } + ], + "properties": [ + { + "name": "cdx:composer:package:distReference", + "value": "cf1c2e7c203ac650e352f4cc675a7021e7d1b3cf" + }, + { + "name": "cdx:composer:package:sourceReference", + "value": "cf1c2e7c203ac650e352f4cc675a7021e7d1b3cf" + }, + { + "name": "cdx:composer:package:type", + "value": "library" + }, + { + "name": "cdx:composer:package:isDevRequirement", + "value": "true" + } + ] + }, + { + "bom-ref": "phpunit/php-invoker-3.1.1.0", + "type": "library", + "name": "php-invoker", + "version": "3.1.1", + "group": "phpunit", + "description": "Invoke callables with a timeout", + "author": "Sebastian Bergmann", + "licenses": [ + { + "license": { + "id": "BSD-3-Clause", + "acknowledgement": "declared" + } + } + ], + "purl": "pkg:composer/phpunit/php-invoker@3.1.1", + "externalReferences": [ + { + "type": "distribution", + "url": "https://api.github.com/repos/sebastianbergmann/php-invoker/zipball/5a10147d0aaf65b58940a0b72f71c9ac0423cc67", + "comment": "dist reference: 5a10147d0aaf65b58940a0b72f71c9ac0423cc67" + }, + { + "type": "vcs", + "url": "https://github.com/sebastianbergmann/php-invoker.git", + "comment": "source reference: 5a10147d0aaf65b58940a0b72f71c9ac0423cc67" + }, + { + "type": "website", + "url": "https://github.com/sebastianbergmann/php-invoker/", + "comment": "as detected from Composer manifest 'homepage'" + }, + { + "type": "issue-tracker", + "url": "https://github.com/sebastianbergmann/php-invoker/issues", + "comment": "as detected from Composer manifest 'support.issues'" + }, + { + "type": "vcs", + "url": "https://github.com/sebastianbergmann/php-invoker/tree/3.1.1", + "comment": "as detected from Composer manifest 'support.source'" + } + ], + "properties": [ + { + "name": "cdx:composer:package:distReference", + "value": "5a10147d0aaf65b58940a0b72f71c9ac0423cc67" + }, + { + "name": "cdx:composer:package:sourceReference", + "value": "5a10147d0aaf65b58940a0b72f71c9ac0423cc67" + }, + { + "name": "cdx:composer:package:type", + "value": "library" + }, + { + "name": "cdx:composer:package:isDevRequirement", + "value": "true" + } + ] + }, + { + "bom-ref": "phpunit/php-text-template-2.0.4.0", + "type": "library", + "name": "php-text-template", + "version": "2.0.4", + "group": "phpunit", + "description": "Simple template engine.", + "author": "Sebastian Bergmann", + "licenses": [ + { + "license": { + "id": "BSD-3-Clause", + "acknowledgement": "declared" + } + } + ], + "purl": "pkg:composer/phpunit/php-text-template@2.0.4", + "externalReferences": [ + { + "type": "distribution", + "url": "https://api.github.com/repos/sebastianbergmann/php-text-template/zipball/5da5f67fc95621df9ff4c4e5a84d6a8a2acf7c28", + "comment": "dist reference: 5da5f67fc95621df9ff4c4e5a84d6a8a2acf7c28" + }, + { + "type": "vcs", + "url": "https://github.com/sebastianbergmann/php-text-template.git", + "comment": "source reference: 5da5f67fc95621df9ff4c4e5a84d6a8a2acf7c28" + }, + { + "type": "website", + "url": "https://github.com/sebastianbergmann/php-text-template/", + "comment": "as detected from Composer manifest 'homepage'" + }, + { + "type": "issue-tracker", + "url": "https://github.com/sebastianbergmann/php-text-template/issues", + "comment": "as detected from Composer manifest 'support.issues'" + }, + { + "type": "vcs", + "url": "https://github.com/sebastianbergmann/php-text-template/tree/2.0.4", + "comment": "as detected from Composer manifest 'support.source'" + } + ], + "properties": [ + { + "name": "cdx:composer:package:distReference", + "value": "5da5f67fc95621df9ff4c4e5a84d6a8a2acf7c28" + }, + { + "name": "cdx:composer:package:sourceReference", + "value": "5da5f67fc95621df9ff4c4e5a84d6a8a2acf7c28" + }, + { + "name": "cdx:composer:package:type", + "value": "library" + }, + { + "name": "cdx:composer:package:isDevRequirement", + "value": "true" + } + ] + }, + { + "bom-ref": "phpunit/php-timer-5.0.3.0", + "type": "library", + "name": "php-timer", + "version": "5.0.3", + "group": "phpunit", + "description": "Utility class for timing", + "author": "Sebastian Bergmann", + "licenses": [ + { + "license": { + "id": "BSD-3-Clause", + "acknowledgement": "declared" + } + } + ], + "purl": "pkg:composer/phpunit/php-timer@5.0.3", + "externalReferences": [ + { + "type": "distribution", + "url": "https://api.github.com/repos/sebastianbergmann/php-timer/zipball/5a63ce20ed1b5bf577850e2c4e87f4aa902afbd2", + "comment": "dist reference: 5a63ce20ed1b5bf577850e2c4e87f4aa902afbd2" + }, + { + "type": "vcs", + "url": "https://github.com/sebastianbergmann/php-timer.git", + "comment": "source reference: 5a63ce20ed1b5bf577850e2c4e87f4aa902afbd2" + }, + { + "type": "website", + "url": "https://github.com/sebastianbergmann/php-timer/", + "comment": "as detected from Composer manifest 'homepage'" + }, + { + "type": "issue-tracker", + "url": "https://github.com/sebastianbergmann/php-timer/issues", + "comment": "as detected from Composer manifest 'support.issues'" + }, + { + "type": "vcs", + "url": "https://github.com/sebastianbergmann/php-timer/tree/5.0.3", + "comment": "as detected from Composer manifest 'support.source'" + } + ], + "properties": [ + { + "name": "cdx:composer:package:distReference", + "value": "5a63ce20ed1b5bf577850e2c4e87f4aa902afbd2" + }, + { + "name": "cdx:composer:package:sourceReference", + "value": "5a63ce20ed1b5bf577850e2c4e87f4aa902afbd2" + }, + { + "name": "cdx:composer:package:type", + "value": "library" + }, + { + "name": "cdx:composer:package:isDevRequirement", + "value": "true" + } + ] + }, + { + "bom-ref": "phpunit/phpunit-9.5.26.0", + "type": "library", + "name": "phpunit", + "version": "9.5.26", + "group": "phpunit", + "description": "The PHP Unit Testing framework.", + "author": "Sebastian Bergmann", + "licenses": [ + { + "license": { + "id": "BSD-3-Clause", + "acknowledgement": "declared" + } + } + ], + "purl": "pkg:composer/phpunit/phpunit@9.5.26", + "externalReferences": [ + { + "type": "distribution", + "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/851867efcbb6a1b992ec515c71cdcf20d895e9d2", + "comment": "dist reference: 851867efcbb6a1b992ec515c71cdcf20d895e9d2" + }, + { + "type": "vcs", + "url": "https://github.com/sebastianbergmann/phpunit.git", + "comment": "source reference: 851867efcbb6a1b992ec515c71cdcf20d895e9d2" + }, + { + "type": "website", + "url": "https://phpunit.de/", + "comment": "as detected from Composer manifest 'homepage'" + }, + { + "type": "issue-tracker", + "url": "https://github.com/sebastianbergmann/phpunit/issues", + "comment": "as detected from Composer manifest 'support.issues'" + }, + { + "type": "vcs", + "url": "https://github.com/sebastianbergmann/phpunit/tree/9.5.26", + "comment": "as detected from Composer manifest 'support.source'" + } + ], + "properties": [ + { + "name": "cdx:composer:package:distReference", + "value": "851867efcbb6a1b992ec515c71cdcf20d895e9d2" + }, + { + "name": "cdx:composer:package:sourceReference", + "value": "851867efcbb6a1b992ec515c71cdcf20d895e9d2" + }, + { + "name": "cdx:composer:package:type", + "value": "library" + }, + { + "name": "cdx:composer:package:isDevRequirement", + "value": "true" + } + ] + }, + { + "bom-ref": "sebastian/cli-parser-1.0.1.0", + "type": "library", + "name": "cli-parser", + "version": "1.0.1", + "group": "sebastian", + "description": "Library for parsing CLI options", + "author": "Sebastian Bergmann", + "licenses": [ + { + "license": { + "id": "BSD-3-Clause", + "acknowledgement": "declared" + } + } + ], + "purl": "pkg:composer/sebastian/cli-parser@1.0.1", + "externalReferences": [ + { + "type": "distribution", + "url": "https://api.github.com/repos/sebastianbergmann/cli-parser/zipball/442e7c7e687e42adc03470c7b668bc4b2402c0b2", + "comment": "dist reference: 442e7c7e687e42adc03470c7b668bc4b2402c0b2" + }, + { + "type": "vcs", + "url": "https://github.com/sebastianbergmann/cli-parser.git", + "comment": "source reference: 442e7c7e687e42adc03470c7b668bc4b2402c0b2" + }, + { + "type": "website", + "url": "https://github.com/sebastianbergmann/cli-parser", + "comment": "as detected from Composer manifest 'homepage'" + }, + { + "type": "issue-tracker", + "url": "https://github.com/sebastianbergmann/cli-parser/issues", + "comment": "as detected from Composer manifest 'support.issues'" + }, + { + "type": "vcs", + "url": "https://github.com/sebastianbergmann/cli-parser/tree/1.0.1", + "comment": "as detected from Composer manifest 'support.source'" + } + ], + "properties": [ + { + "name": "cdx:composer:package:distReference", + "value": "442e7c7e687e42adc03470c7b668bc4b2402c0b2" + }, + { + "name": "cdx:composer:package:sourceReference", + "value": "442e7c7e687e42adc03470c7b668bc4b2402c0b2" + }, + { + "name": "cdx:composer:package:type", + "value": "library" + }, + { + "name": "cdx:composer:package:isDevRequirement", + "value": "true" + } + ] + }, + { + "bom-ref": "sebastian/code-unit-1.0.8.0", + "type": "library", + "name": "code-unit", + "version": "1.0.8", + "group": "sebastian", + "description": "Collection of value objects that represent the PHP code units", + "author": "Sebastian Bergmann", + "licenses": [ + { + "license": { + "id": "BSD-3-Clause", + "acknowledgement": "declared" + } + } + ], + "purl": "pkg:composer/sebastian/code-unit@1.0.8", + "externalReferences": [ + { + "type": "distribution", + "url": "https://api.github.com/repos/sebastianbergmann/code-unit/zipball/1fc9f64c0927627ef78ba436c9b17d967e68e120", + "comment": "dist reference: 1fc9f64c0927627ef78ba436c9b17d967e68e120" + }, + { + "type": "vcs", + "url": "https://github.com/sebastianbergmann/code-unit.git", + "comment": "source reference: 1fc9f64c0927627ef78ba436c9b17d967e68e120" + }, + { + "type": "website", + "url": "https://github.com/sebastianbergmann/code-unit", + "comment": "as detected from Composer manifest 'homepage'" + }, + { + "type": "issue-tracker", + "url": "https://github.com/sebastianbergmann/code-unit/issues", + "comment": "as detected from Composer manifest 'support.issues'" + }, + { + "type": "vcs", + "url": "https://github.com/sebastianbergmann/code-unit/tree/1.0.8", + "comment": "as detected from Composer manifest 'support.source'" + } + ], + "properties": [ + { + "name": "cdx:composer:package:distReference", + "value": "1fc9f64c0927627ef78ba436c9b17d967e68e120" + }, + { + "name": "cdx:composer:package:sourceReference", + "value": "1fc9f64c0927627ef78ba436c9b17d967e68e120" + }, + { + "name": "cdx:composer:package:type", + "value": "library" + }, + { + "name": "cdx:composer:package:isDevRequirement", + "value": "true" + } + ] + }, + { + "bom-ref": "sebastian/code-unit-reverse-lookup-2.0.3.0", + "type": "library", + "name": "code-unit-reverse-lookup", + "version": "2.0.3", + "group": "sebastian", + "description": "Looks up which function or method a line of code belongs to", + "author": "Sebastian Bergmann", + "licenses": [ + { + "license": { + "id": "BSD-3-Clause", + "acknowledgement": "declared" + } + } + ], + "purl": "pkg:composer/sebastian/code-unit-reverse-lookup@2.0.3", + "externalReferences": [ + { + "type": "distribution", + "url": "https://api.github.com/repos/sebastianbergmann/code-unit-reverse-lookup/zipball/ac91f01ccec49fb77bdc6fd1e548bc70f7faa3e5", + "comment": "dist reference: ac91f01ccec49fb77bdc6fd1e548bc70f7faa3e5" + }, + { + "type": "vcs", + "url": "https://github.com/sebastianbergmann/code-unit-reverse-lookup.git", + "comment": "source reference: ac91f01ccec49fb77bdc6fd1e548bc70f7faa3e5" + }, + { + "type": "website", + "url": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/", + "comment": "as detected from Composer manifest 'homepage'" + }, + { + "type": "issue-tracker", + "url": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/issues", + "comment": "as detected from Composer manifest 'support.issues'" + }, + { + "type": "vcs", + "url": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/tree/2.0.3", + "comment": "as detected from Composer manifest 'support.source'" + } + ], + "properties": [ + { + "name": "cdx:composer:package:distReference", + "value": "ac91f01ccec49fb77bdc6fd1e548bc70f7faa3e5" + }, + { + "name": "cdx:composer:package:sourceReference", + "value": "ac91f01ccec49fb77bdc6fd1e548bc70f7faa3e5" + }, + { + "name": "cdx:composer:package:type", + "value": "library" + }, + { + "name": "cdx:composer:package:isDevRequirement", + "value": "true" + } + ] + }, + { + "bom-ref": "sebastian/comparator-4.0.8.0", + "type": "library", + "name": "comparator", + "version": "4.0.8", + "group": "sebastian", + "description": "Provides the functionality to compare PHP values for equality", + "author": "Sebastian Bergmann, Jeff Welch, Volker Dusch, Bernhard Schussek", + "licenses": [ + { + "license": { + "id": "BSD-3-Clause", + "acknowledgement": "declared" + } + } + ], + "purl": "pkg:composer/sebastian/comparator@4.0.8", + "externalReferences": [ + { + "type": "distribution", + "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/fa0f136dd2334583309d32b62544682ee972b51a", + "comment": "dist reference: fa0f136dd2334583309d32b62544682ee972b51a" + }, + { + "type": "vcs", + "url": "https://github.com/sebastianbergmann/comparator.git", + "comment": "source reference: fa0f136dd2334583309d32b62544682ee972b51a" + }, + { + "type": "website", + "url": "https://github.com/sebastianbergmann/comparator", + "comment": "as detected from Composer manifest 'homepage'" + }, + { + "type": "issue-tracker", + "url": "https://github.com/sebastianbergmann/comparator/issues", + "comment": "as detected from Composer manifest 'support.issues'" + }, + { + "type": "vcs", + "url": "https://github.com/sebastianbergmann/comparator/tree/4.0.8", + "comment": "as detected from Composer manifest 'support.source'" + } + ], + "properties": [ + { + "name": "cdx:composer:package:distReference", + "value": "fa0f136dd2334583309d32b62544682ee972b51a" + }, + { + "name": "cdx:composer:package:sourceReference", + "value": "fa0f136dd2334583309d32b62544682ee972b51a" + }, + { + "name": "cdx:composer:package:type", + "value": "library" + }, + { + "name": "cdx:composer:package:isDevRequirement", + "value": "true" + } + ] + }, + { + "bom-ref": "sebastian/complexity-2.0.2.0", + "type": "library", + "name": "complexity", + "version": "2.0.2", + "group": "sebastian", + "description": "Library for calculating the complexity of PHP code units", + "author": "Sebastian Bergmann", + "licenses": [ + { + "license": { + "id": "BSD-3-Clause", + "acknowledgement": "declared" + } + } + ], + "purl": "pkg:composer/sebastian/complexity@2.0.2", + "externalReferences": [ + { + "type": "distribution", + "url": "https://api.github.com/repos/sebastianbergmann/complexity/zipball/739b35e53379900cc9ac327b2147867b8b6efd88", + "comment": "dist reference: 739b35e53379900cc9ac327b2147867b8b6efd88" + }, + { + "type": "vcs", + "url": "https://github.com/sebastianbergmann/complexity.git", + "comment": "source reference: 739b35e53379900cc9ac327b2147867b8b6efd88" + }, + { + "type": "website", + "url": "https://github.com/sebastianbergmann/complexity", + "comment": "as detected from Composer manifest 'homepage'" + }, + { + "type": "issue-tracker", + "url": "https://github.com/sebastianbergmann/complexity/issues", + "comment": "as detected from Composer manifest 'support.issues'" + }, + { + "type": "vcs", + "url": "https://github.com/sebastianbergmann/complexity/tree/2.0.2", + "comment": "as detected from Composer manifest 'support.source'" + } + ], + "properties": [ + { + "name": "cdx:composer:package:distReference", + "value": "739b35e53379900cc9ac327b2147867b8b6efd88" + }, + { + "name": "cdx:composer:package:sourceReference", + "value": "739b35e53379900cc9ac327b2147867b8b6efd88" + }, + { + "name": "cdx:composer:package:type", + "value": "library" + }, + { + "name": "cdx:composer:package:isDevRequirement", + "value": "true" + } + ] + }, + { + "bom-ref": "sebastian/diff-4.0.4.0", + "type": "library", + "name": "diff", + "version": "4.0.4", + "group": "sebastian", + "description": "Diff implementation", + "author": "Sebastian Bergmann, Kore Nordmann", + "licenses": [ + { + "license": { + "id": "BSD-3-Clause", + "acknowledgement": "declared" + } + } + ], + "purl": "pkg:composer/sebastian/diff@4.0.4", + "externalReferences": [ + { + "type": "distribution", + "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/3461e3fccc7cfdfc2720be910d3bd73c69be590d", + "comment": "dist reference: 3461e3fccc7cfdfc2720be910d3bd73c69be590d" + }, + { + "type": "vcs", + "url": "https://github.com/sebastianbergmann/diff.git", + "comment": "source reference: 3461e3fccc7cfdfc2720be910d3bd73c69be590d" + }, + { + "type": "website", + "url": "https://github.com/sebastianbergmann/diff", + "comment": "as detected from Composer manifest 'homepage'" + }, + { + "type": "issue-tracker", + "url": "https://github.com/sebastianbergmann/diff/issues", + "comment": "as detected from Composer manifest 'support.issues'" + }, + { + "type": "vcs", + "url": "https://github.com/sebastianbergmann/diff/tree/4.0.4", + "comment": "as detected from Composer manifest 'support.source'" + } + ], + "properties": [ + { + "name": "cdx:composer:package:distReference", + "value": "3461e3fccc7cfdfc2720be910d3bd73c69be590d" + }, + { + "name": "cdx:composer:package:sourceReference", + "value": "3461e3fccc7cfdfc2720be910d3bd73c69be590d" + }, + { + "name": "cdx:composer:package:type", + "value": "library" + }, + { + "name": "cdx:composer:package:isDevRequirement", + "value": "true" + } + ] + }, + { + "bom-ref": "sebastian/environment-5.1.5.0", + "type": "library", + "name": "environment", + "version": "5.1.5", + "group": "sebastian", + "description": "Provides functionality to handle HHVM/PHP environments", + "author": "Sebastian Bergmann", + "licenses": [ + { + "license": { + "id": "BSD-3-Clause", + "acknowledgement": "declared" + } + } + ], + "purl": "pkg:composer/sebastian/environment@5.1.5", + "externalReferences": [ + { + "type": "distribution", + "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/830c43a844f1f8d5b7a1f6d6076b784454d8b7ed", + "comment": "dist reference: 830c43a844f1f8d5b7a1f6d6076b784454d8b7ed" + }, + { + "type": "vcs", + "url": "https://github.com/sebastianbergmann/environment.git", + "comment": "source reference: 830c43a844f1f8d5b7a1f6d6076b784454d8b7ed" + }, + { + "type": "website", + "url": "http://www.github.com/sebastianbergmann/environment", + "comment": "as detected from Composer manifest 'homepage'" + }, + { + "type": "issue-tracker", + "url": "https://github.com/sebastianbergmann/environment/issues", + "comment": "as detected from Composer manifest 'support.issues'" + }, + { + "type": "vcs", + "url": "https://github.com/sebastianbergmann/environment/tree/5.1.5", + "comment": "as detected from Composer manifest 'support.source'" + } + ], + "properties": [ + { + "name": "cdx:composer:package:distReference", + "value": "830c43a844f1f8d5b7a1f6d6076b784454d8b7ed" + }, + { + "name": "cdx:composer:package:sourceReference", + "value": "830c43a844f1f8d5b7a1f6d6076b784454d8b7ed" + }, + { + "name": "cdx:composer:package:type", + "value": "library" + }, + { + "name": "cdx:composer:package:isDevRequirement", + "value": "true" + } + ] + }, + { + "bom-ref": "sebastian/exporter-4.0.5.0", + "type": "library", + "name": "exporter", + "version": "4.0.5", + "group": "sebastian", + "description": "Provides the functionality to export PHP variables for visualization", + "author": "Sebastian Bergmann, Jeff Welch, Volker Dusch, Adam Harvey, Bernhard Schussek", + "licenses": [ + { + "license": { + "id": "BSD-3-Clause", + "acknowledgement": "declared" + } + } + ], + "purl": "pkg:composer/sebastian/exporter@4.0.5", + "externalReferences": [ + { + "type": "distribution", + "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/ac230ed27f0f98f597c8a2b6eb7ac563af5e5b9d", + "comment": "dist reference: ac230ed27f0f98f597c8a2b6eb7ac563af5e5b9d" + }, + { + "type": "vcs", + "url": "https://github.com/sebastianbergmann/exporter.git", + "comment": "source reference: ac230ed27f0f98f597c8a2b6eb7ac563af5e5b9d" + }, + { + "type": "website", + "url": "https://www.github.com/sebastianbergmann/exporter", + "comment": "as detected from Composer manifest 'homepage'" + }, + { + "type": "issue-tracker", + "url": "https://github.com/sebastianbergmann/exporter/issues", + "comment": "as detected from Composer manifest 'support.issues'" + }, + { + "type": "vcs", + "url": "https://github.com/sebastianbergmann/exporter/tree/4.0.5", + "comment": "as detected from Composer manifest 'support.source'" + } + ], + "properties": [ + { + "name": "cdx:composer:package:distReference", + "value": "ac230ed27f0f98f597c8a2b6eb7ac563af5e5b9d" + }, + { + "name": "cdx:composer:package:sourceReference", + "value": "ac230ed27f0f98f597c8a2b6eb7ac563af5e5b9d" + }, + { + "name": "cdx:composer:package:type", + "value": "library" + }, + { + "name": "cdx:composer:package:isDevRequirement", + "value": "true" + } + ] + }, + { + "bom-ref": "sebastian/global-state-5.0.5.0", + "type": "library", + "name": "global-state", + "version": "5.0.5", + "group": "sebastian", + "description": "Snapshotting of global state", + "author": "Sebastian Bergmann", + "licenses": [ + { + "license": { + "id": "BSD-3-Clause", + "acknowledgement": "declared" + } + } + ], + "purl": "pkg:composer/sebastian/global-state@5.0.5", + "externalReferences": [ + { + "type": "distribution", + "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/0ca8db5a5fc9c8646244e629625ac486fa286bf2", + "comment": "dist reference: 0ca8db5a5fc9c8646244e629625ac486fa286bf2" + }, + { + "type": "vcs", + "url": "https://github.com/sebastianbergmann/global-state.git", + "comment": "source reference: 0ca8db5a5fc9c8646244e629625ac486fa286bf2" + }, + { + "type": "website", + "url": "http://www.github.com/sebastianbergmann/global-state", + "comment": "as detected from Composer manifest 'homepage'" + }, + { + "type": "issue-tracker", + "url": "https://github.com/sebastianbergmann/global-state/issues", + "comment": "as detected from Composer manifest 'support.issues'" + }, + { + "type": "vcs", + "url": "https://github.com/sebastianbergmann/global-state/tree/5.0.5", + "comment": "as detected from Composer manifest 'support.source'" + } + ], + "properties": [ + { + "name": "cdx:composer:package:distReference", + "value": "0ca8db5a5fc9c8646244e629625ac486fa286bf2" + }, + { + "name": "cdx:composer:package:sourceReference", + "value": "0ca8db5a5fc9c8646244e629625ac486fa286bf2" + }, + { + "name": "cdx:composer:package:type", + "value": "library" + }, + { + "name": "cdx:composer:package:isDevRequirement", + "value": "true" + } + ] + }, + { + "bom-ref": "sebastian/lines-of-code-1.0.3.0", + "type": "library", + "name": "lines-of-code", + "version": "1.0.3", + "group": "sebastian", + "description": "Library for counting the lines of code in PHP source code", + "author": "Sebastian Bergmann", + "licenses": [ + { + "license": { + "id": "BSD-3-Clause", + "acknowledgement": "declared" + } + } + ], + "purl": "pkg:composer/sebastian/lines-of-code@1.0.3", + "externalReferences": [ + { + "type": "distribution", + "url": "https://api.github.com/repos/sebastianbergmann/lines-of-code/zipball/c1c2e997aa3146983ed888ad08b15470a2e22ecc", + "comment": "dist reference: c1c2e997aa3146983ed888ad08b15470a2e22ecc" + }, + { + "type": "vcs", + "url": "https://github.com/sebastianbergmann/lines-of-code.git", + "comment": "source reference: c1c2e997aa3146983ed888ad08b15470a2e22ecc" + }, + { + "type": "website", + "url": "https://github.com/sebastianbergmann/lines-of-code", + "comment": "as detected from Composer manifest 'homepage'" + }, + { + "type": "issue-tracker", + "url": "https://github.com/sebastianbergmann/lines-of-code/issues", + "comment": "as detected from Composer manifest 'support.issues'" + }, + { + "type": "vcs", + "url": "https://github.com/sebastianbergmann/lines-of-code/tree/1.0.3", + "comment": "as detected from Composer manifest 'support.source'" + } + ], + "properties": [ + { + "name": "cdx:composer:package:distReference", + "value": "c1c2e997aa3146983ed888ad08b15470a2e22ecc" + }, + { + "name": "cdx:composer:package:sourceReference", + "value": "c1c2e997aa3146983ed888ad08b15470a2e22ecc" + }, + { + "name": "cdx:composer:package:type", + "value": "library" + }, + { + "name": "cdx:composer:package:isDevRequirement", + "value": "true" + } + ] + }, + { + "bom-ref": "sebastian/object-enumerator-4.0.4.0", + "type": "library", + "name": "object-enumerator", + "version": "4.0.4", + "group": "sebastian", + "description": "Traverses array structures and object graphs to enumerate all referenced objects", + "author": "Sebastian Bergmann", + "licenses": [ + { + "license": { + "id": "BSD-3-Clause", + "acknowledgement": "declared" + } + } + ], + "purl": "pkg:composer/sebastian/object-enumerator@4.0.4", + "externalReferences": [ + { + "type": "distribution", + "url": "https://api.github.com/repos/sebastianbergmann/object-enumerator/zipball/5c9eeac41b290a3712d88851518825ad78f45c71", + "comment": "dist reference: 5c9eeac41b290a3712d88851518825ad78f45c71" + }, + { + "type": "vcs", + "url": "https://github.com/sebastianbergmann/object-enumerator.git", + "comment": "source reference: 5c9eeac41b290a3712d88851518825ad78f45c71" + }, + { + "type": "website", + "url": "https://github.com/sebastianbergmann/object-enumerator/", + "comment": "as detected from Composer manifest 'homepage'" + }, + { + "type": "issue-tracker", + "url": "https://github.com/sebastianbergmann/object-enumerator/issues", + "comment": "as detected from Composer manifest 'support.issues'" + }, + { + "type": "vcs", + "url": "https://github.com/sebastianbergmann/object-enumerator/tree/4.0.4", + "comment": "as detected from Composer manifest 'support.source'" + } + ], + "properties": [ + { + "name": "cdx:composer:package:distReference", + "value": "5c9eeac41b290a3712d88851518825ad78f45c71" + }, + { + "name": "cdx:composer:package:sourceReference", + "value": "5c9eeac41b290a3712d88851518825ad78f45c71" + }, + { + "name": "cdx:composer:package:type", + "value": "library" + }, + { + "name": "cdx:composer:package:isDevRequirement", + "value": "true" + } + ] + }, + { + "bom-ref": "sebastian/object-reflector-2.0.4.0", + "type": "library", + "name": "object-reflector", + "version": "2.0.4", + "group": "sebastian", + "description": "Allows reflection of object attributes, including inherited and non-public ones", + "author": "Sebastian Bergmann", + "licenses": [ + { + "license": { + "id": "BSD-3-Clause", + "acknowledgement": "declared" + } + } + ], + "purl": "pkg:composer/sebastian/object-reflector@2.0.4", + "externalReferences": [ + { + "type": "distribution", + "url": "https://api.github.com/repos/sebastianbergmann/object-reflector/zipball/b4f479ebdbf63ac605d183ece17d8d7fe49c15c7", + "comment": "dist reference: b4f479ebdbf63ac605d183ece17d8d7fe49c15c7" + }, + { + "type": "vcs", + "url": "https://github.com/sebastianbergmann/object-reflector.git", + "comment": "source reference: b4f479ebdbf63ac605d183ece17d8d7fe49c15c7" + }, + { + "type": "website", + "url": "https://github.com/sebastianbergmann/object-reflector/", + "comment": "as detected from Composer manifest 'homepage'" + }, + { + "type": "issue-tracker", + "url": "https://github.com/sebastianbergmann/object-reflector/issues", + "comment": "as detected from Composer manifest 'support.issues'" + }, + { + "type": "vcs", + "url": "https://github.com/sebastianbergmann/object-reflector/tree/2.0.4", + "comment": "as detected from Composer manifest 'support.source'" + } + ], + "properties": [ + { + "name": "cdx:composer:package:distReference", + "value": "b4f479ebdbf63ac605d183ece17d8d7fe49c15c7" + }, + { + "name": "cdx:composer:package:sourceReference", + "value": "b4f479ebdbf63ac605d183ece17d8d7fe49c15c7" + }, + { + "name": "cdx:composer:package:type", + "value": "library" + }, + { + "name": "cdx:composer:package:isDevRequirement", + "value": "true" + } + ] + }, + { + "bom-ref": "sebastian/recursion-context-4.0.5.0", + "type": "library", + "name": "recursion-context", + "version": "4.0.5", + "group": "sebastian", + "description": "Provides functionality to recursively process PHP variables", + "author": "Sebastian Bergmann, Jeff Welch, Adam Harvey", + "licenses": [ + { + "license": { + "id": "BSD-3-Clause", + "acknowledgement": "declared" + } + } + ], + "purl": "pkg:composer/sebastian/recursion-context@4.0.5", + "externalReferences": [ + { + "type": "distribution", + "url": "https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/e75bd0f07204fec2a0af9b0f3cfe97d05f92efc1", + "comment": "dist reference: e75bd0f07204fec2a0af9b0f3cfe97d05f92efc1" + }, + { + "type": "vcs", + "url": "https://github.com/sebastianbergmann/recursion-context.git", + "comment": "source reference: e75bd0f07204fec2a0af9b0f3cfe97d05f92efc1" + }, + { + "type": "website", + "url": "https://github.com/sebastianbergmann/recursion-context", + "comment": "as detected from Composer manifest 'homepage'" + }, + { + "type": "issue-tracker", + "url": "https://github.com/sebastianbergmann/recursion-context/issues", + "comment": "as detected from Composer manifest 'support.issues'" + }, + { + "type": "vcs", + "url": "https://github.com/sebastianbergmann/recursion-context/tree/4.0.5", + "comment": "as detected from Composer manifest 'support.source'" + } + ], + "properties": [ + { + "name": "cdx:composer:package:distReference", + "value": "e75bd0f07204fec2a0af9b0f3cfe97d05f92efc1" + }, + { + "name": "cdx:composer:package:sourceReference", + "value": "e75bd0f07204fec2a0af9b0f3cfe97d05f92efc1" + }, + { + "name": "cdx:composer:package:type", + "value": "library" + }, + { + "name": "cdx:composer:package:isDevRequirement", + "value": "true" + } + ] + }, + { + "bom-ref": "sebastian/resource-operations-3.0.3.0", + "type": "library", + "name": "resource-operations", + "version": "3.0.3", + "group": "sebastian", + "description": "Provides a list of PHP built-in functions that operate on resources", + "author": "Sebastian Bergmann", + "licenses": [ + { + "license": { + "id": "BSD-3-Clause", + "acknowledgement": "declared" + } + } + ], + "purl": "pkg:composer/sebastian/resource-operations@3.0.3", + "externalReferences": [ + { + "type": "distribution", + "url": "https://api.github.com/repos/sebastianbergmann/resource-operations/zipball/0f4443cb3a1d92ce809899753bc0d5d5a8dd19a8", + "comment": "dist reference: 0f4443cb3a1d92ce809899753bc0d5d5a8dd19a8" + }, + { + "type": "vcs", + "url": "https://github.com/sebastianbergmann/resource-operations.git", + "comment": "source reference: 0f4443cb3a1d92ce809899753bc0d5d5a8dd19a8" + }, + { + "type": "website", + "url": "https://www.github.com/sebastianbergmann/resource-operations", + "comment": "as detected from Composer manifest 'homepage'" + }, + { + "type": "issue-tracker", + "url": "https://github.com/sebastianbergmann/resource-operations/issues", + "comment": "as detected from Composer manifest 'support.issues'" + }, + { + "type": "vcs", + "url": "https://github.com/sebastianbergmann/resource-operations/tree/3.0.3", + "comment": "as detected from Composer manifest 'support.source'" + } + ], + "properties": [ + { + "name": "cdx:composer:package:distReference", + "value": "0f4443cb3a1d92ce809899753bc0d5d5a8dd19a8" + }, + { + "name": "cdx:composer:package:sourceReference", + "value": "0f4443cb3a1d92ce809899753bc0d5d5a8dd19a8" + }, + { + "name": "cdx:composer:package:type", + "value": "library" + }, + { + "name": "cdx:composer:package:isDevRequirement", + "value": "true" + } + ] + }, + { + "bom-ref": "sebastian/type-3.2.1.0", + "type": "library", + "name": "type", + "version": "3.2.1", + "group": "sebastian", + "description": "Collection of value objects that represent the types of the PHP type system", + "author": "Sebastian Bergmann", + "licenses": [ + { + "license": { + "id": "BSD-3-Clause", + "acknowledgement": "declared" + } + } + ], + "purl": "pkg:composer/sebastian/type@3.2.1", + "externalReferences": [ + { + "type": "distribution", + "url": "https://api.github.com/repos/sebastianbergmann/type/zipball/75e2c2a32f5e0b3aef905b9ed0b179b953b3d7c7", + "comment": "dist reference: 75e2c2a32f5e0b3aef905b9ed0b179b953b3d7c7" + }, + { + "type": "vcs", + "url": "https://github.com/sebastianbergmann/type.git", + "comment": "source reference: 75e2c2a32f5e0b3aef905b9ed0b179b953b3d7c7" + }, + { + "type": "website", + "url": "https://github.com/sebastianbergmann/type", + "comment": "as detected from Composer manifest 'homepage'" + }, + { + "type": "issue-tracker", + "url": "https://github.com/sebastianbergmann/type/issues", + "comment": "as detected from Composer manifest 'support.issues'" + }, + { + "type": "vcs", + "url": "https://github.com/sebastianbergmann/type/tree/3.2.1", + "comment": "as detected from Composer manifest 'support.source'" + } + ], + "properties": [ + { + "name": "cdx:composer:package:distReference", + "value": "75e2c2a32f5e0b3aef905b9ed0b179b953b3d7c7" + }, + { + "name": "cdx:composer:package:sourceReference", + "value": "75e2c2a32f5e0b3aef905b9ed0b179b953b3d7c7" + }, + { + "name": "cdx:composer:package:type", + "value": "library" + }, + { + "name": "cdx:composer:package:isDevRequirement", + "value": "true" + } + ] + }, + { + "bom-ref": "sebastian/version-3.0.2.0", + "type": "library", + "name": "version", + "version": "3.0.2", + "group": "sebastian", + "description": "Library that helps with managing the version number of Git-hosted PHP projects", + "author": "Sebastian Bergmann", + "licenses": [ + { + "license": { + "id": "BSD-3-Clause", + "acknowledgement": "declared" + } + } + ], + "purl": "pkg:composer/sebastian/version@3.0.2", + "externalReferences": [ + { + "type": "distribution", + "url": "https://api.github.com/repos/sebastianbergmann/version/zipball/c6c1022351a901512170118436c764e473f6de8c", + "comment": "dist reference: c6c1022351a901512170118436c764e473f6de8c" + }, + { + "type": "vcs", + "url": "https://github.com/sebastianbergmann/version.git", + "comment": "source reference: c6c1022351a901512170118436c764e473f6de8c" + }, + { + "type": "website", + "url": "https://github.com/sebastianbergmann/version", + "comment": "as detected from Composer manifest 'homepage'" + }, + { + "type": "issue-tracker", + "url": "https://github.com/sebastianbergmann/version/issues", + "comment": "as detected from Composer manifest 'support.issues'" + }, + { + "type": "vcs", + "url": "https://github.com/sebastianbergmann/version/tree/3.0.2", + "comment": "as detected from Composer manifest 'support.source'" + } + ], + "properties": [ + { + "name": "cdx:composer:package:distReference", + "value": "c6c1022351a901512170118436c764e473f6de8c" + }, + { + "name": "cdx:composer:package:sourceReference", + "value": "c6c1022351a901512170118436c764e473f6de8c" + }, + { + "name": "cdx:composer:package:type", + "value": "library" + }, + { + "name": "cdx:composer:package:isDevRequirement", + "value": "true" + } + ] + }, + { + "bom-ref": "theseer/tokenizer-1.2.1.0", + "type": "library", + "name": "tokenizer", + "version": "1.2.1", + "group": "theseer", + "description": "A small library for converting tokenized PHP source code into XML and potentially other formats", + "author": "Arne Blankerts", + "licenses": [ + { + "license": { + "id": "BSD-3-Clause", + "acknowledgement": "declared" + } + } + ], + "purl": "pkg:composer/theseer/tokenizer@1.2.1", + "externalReferences": [ + { + "type": "distribution", + "url": "https://api.github.com/repos/theseer/tokenizer/zipball/34a41e998c2183e22995f158c581e7b5e755ab9e", + "comment": "dist reference: 34a41e998c2183e22995f158c581e7b5e755ab9e" + }, + { + "type": "vcs", + "url": "https://github.com/theseer/tokenizer.git", + "comment": "source reference: 34a41e998c2183e22995f158c581e7b5e755ab9e" + }, + { + "type": "issue-tracker", + "url": "https://github.com/theseer/tokenizer/issues", + "comment": "as detected from Composer manifest 'support.issues'" + }, + { + "type": "vcs", + "url": "https://github.com/theseer/tokenizer/tree/1.2.1", + "comment": "as detected from Composer manifest 'support.source'" + } + ], + "properties": [ + { + "name": "cdx:composer:package:distReference", + "value": "34a41e998c2183e22995f158c581e7b5e755ab9e" + }, + { + "name": "cdx:composer:package:sourceReference", + "value": "34a41e998c2183e22995f158c581e7b5e755ab9e" + }, + { + "name": "cdx:composer:package:type", + "value": "library" + }, + { + "name": "cdx:composer:package:isDevRequirement", + "value": "true" + } + ] + } + ], + "dependencies": [ + { + "ref": "doctrine/instantiator-1.5.0.0" + }, + { + "ref": "myclabs/deep-copy-1.11.0.0" + }, + { + "ref": "nikic/php-parser-4.15.4.0" + }, + { + "ref": "phar-io/manifest-2.0.3.0", + "dependsOn": [ + "phar-io/version-3.2.1.0" + ] + }, + { + "ref": "phar-io/version-3.2.1.0" + }, + { + "ref": "phpunit/php-code-coverage-9.2.26.0", + "dependsOn": [ + "nikic/php-parser-4.15.4.0", + "phpunit/php-file-iterator-3.0.6.0", + "phpunit/php-text-template-2.0.4.0", + "sebastian/code-unit-reverse-lookup-2.0.3.0", + "sebastian/complexity-2.0.2.0", + "sebastian/environment-5.1.5.0", + "sebastian/lines-of-code-1.0.3.0", + "sebastian/version-3.0.2.0", + "theseer/tokenizer-1.2.1.0" + ] + }, + { + "ref": "phpunit/php-file-iterator-3.0.6.0" + }, + { + "ref": "phpunit/php-invoker-3.1.1.0" + }, + { + "ref": "phpunit/php-text-template-2.0.4.0" + }, + { + "ref": "phpunit/php-timer-5.0.3.0" + }, + { + "ref": "phpunit/phpunit-9.5.26.0", + "dependsOn": [ + "doctrine/instantiator-1.5.0.0", + "myclabs/deep-copy-1.11.0.0", + "phar-io/manifest-2.0.3.0", + "phar-io/version-3.2.1.0", + "phpunit/php-code-coverage-9.2.26.0", + "phpunit/php-file-iterator-3.0.6.0", + "phpunit/php-invoker-3.1.1.0", + "phpunit/php-text-template-2.0.4.0", + "phpunit/php-timer-5.0.3.0", + "sebastian/cli-parser-1.0.1.0", + "sebastian/code-unit-1.0.8.0", + "sebastian/comparator-4.0.8.0", + "sebastian/diff-4.0.4.0", + "sebastian/environment-5.1.5.0", + "sebastian/exporter-4.0.5.0", + "sebastian/global-state-5.0.5.0", + "sebastian/object-enumerator-4.0.4.0", + "sebastian/resource-operations-3.0.3.0", + "sebastian/type-3.2.1.0", + "sebastian/version-3.0.2.0" + ] + }, + { + "ref": "sebastian/cli-parser-1.0.1.0" + }, + { + "ref": "sebastian/code-unit-1.0.8.0" + }, + { + "ref": "sebastian/code-unit-reverse-lookup-2.0.3.0" + }, + { + "ref": "sebastian/comparator-4.0.8.0", + "dependsOn": [ + "sebastian/diff-4.0.4.0", + "sebastian/exporter-4.0.5.0" + ] + }, + { + "ref": "sebastian/complexity-2.0.2.0", + "dependsOn": [ + "nikic/php-parser-4.15.4.0" + ] + }, + { + "ref": "sebastian/diff-4.0.4.0" + }, + { + "ref": "sebastian/environment-5.1.5.0" + }, + { + "ref": "sebastian/exporter-4.0.5.0", + "dependsOn": [ + "sebastian/recursion-context-4.0.5.0" + ] + }, + { + "ref": "sebastian/global-state-5.0.5.0", + "dependsOn": [ + "sebastian/object-reflector-2.0.4.0", + "sebastian/recursion-context-4.0.5.0" + ] + }, + { + "ref": "sebastian/lines-of-code-1.0.3.0", + "dependsOn": [ + "nikic/php-parser-4.15.4.0" + ] + }, + { + "ref": "sebastian/object-enumerator-4.0.4.0", + "dependsOn": [ + "sebastian/object-reflector-2.0.4.0", + "sebastian/recursion-context-4.0.5.0" + ] + }, + { + "ref": "sebastian/object-reflector-2.0.4.0" + }, + { + "ref": "sebastian/recursion-context-4.0.5.0" + }, + { + "ref": "sebastian/resource-operations-3.0.3.0" + }, + { + "ref": "sebastian/type-3.2.1.0" + }, + { + "ref": "sebastian/version-3.0.2.0" + }, + { + "ref": "theseer/tokenizer-1.2.1.0" + }, + { + "ref": "cyclonedx-demo/cyclonedx-php-composer-devreq-dev-master", + "dependsOn": [ + "phpunit/phpunit-9.5.26.0" + ] + } + ] +} \ No newline at end of file diff --git a/demo/devReq/results/bom.1.7.xml b/demo/devReq/results/bom.1.7.xml new file mode 100644 index 00000000..d43d9733 --- /dev/null +++ b/demo/devReq/results/bom.1.7.xml @@ -0,0 +1,1259 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/demo/laravel-7.12.0/README.md b/demo/laravel-7.12.0/README.md index 81d586f3..821fb239 100644 --- a/demo/laravel-7.12.0/README.md +++ b/demo/laravel-7.12.0/README.md @@ -18,10 +18,14 @@ as "laravel-7.12.0". * [`results/bom.1.3.xml`](results/bom.1.3.xml) * [`results/bom.1.4.xml`](results/bom.1.4.xml) * [`results/bom.1.5.xml`](results/bom.1.5.xml) +* [`results/bom.1.6.xml`](results/bom.1.6.xml) +* [`results/bom.1.7.xml`](results/bom.1.7.xml) * [`results/bom.1.2.json`](results/bom.1.2.json) * [`results/bom.1.3.json`](results/bom.1.3.json) * [`results/bom.1.4.json`](results/bom.1.4.json) * [`results/bom.1.5.json`](results/bom.1.5.json) +* [`results/bom.1.6.json`](results/bom.1.6.json) +* [`results/bom.1.7.json`](results/bom.1.7.json) ## Setup diff --git a/demo/laravel-7.12.0/project/composer.json b/demo/laravel-7.12.0/project/composer.json index 46193674..5ce164da 100644 --- a/demo/laravel-7.12.0/project/composer.json +++ b/demo/laravel-7.12.0/project/composer.json @@ -33,6 +33,7 @@ "@putenv CDX_CP_TOOLS_VERSION_OVERRIDE=in-dev", "@putenv CDX_CP_TOOLS_EXCLUDE_LIBS=1", "@putenv CDX_CP_TOOLS_EXCLUDE_COMPOSER=1", + "@composer -d ../../.tool CycloneDX:make-sbom --validate --omit=dev --spec-version=1.7 --output-reproducible --output-format=JSON --output-file=$PWD/../results/bom.1.7.json $PWD/composer.json", "@composer -d ../../.tool CycloneDX:make-sbom --validate --omit=dev --spec-version=1.6 --output-reproducible --output-format=JSON --output-file=$PWD/../results/bom.1.6.json $PWD/composer.json", "@composer -d ../../.tool CycloneDX:make-sbom --validate --omit=dev --spec-version=1.5 --output-reproducible --output-format=JSON --output-file=$PWD/../results/bom.1.5.json $PWD/composer.json", "@composer -d ../../.tool CycloneDX:make-sbom --validate --omit=dev --spec-version=1.4 --output-reproducible --output-format=JSON --output-file=$PWD/../results/bom.1.4.json $PWD/composer.json", @@ -43,6 +44,7 @@ "@putenv CDX_CP_TOOLS_VERSION_OVERRIDE=in-dev", "@putenv CDX_CP_TOOLS_EXCLUDE_LIBS=1", "@putenv CDX_CP_TOOLS_EXCLUDE_COMPOSER=1", + "@composer -d ../../.tool CycloneDX:make-sbom --validate --omit=dev --spec-version=1.7 --output-reproducible --output-format=XML --output-file=$PWD/../results/bom.1.7.xml $PWD/composer.json", "@composer -d ../../.tool CycloneDX:make-sbom --validate --omit=dev --spec-version=1.6 --output-reproducible --output-format=XML --output-file=$PWD/../results/bom.1.6.xml $PWD/composer.json", "@composer -d ../../.tool CycloneDX:make-sbom --validate --omit=dev --spec-version=1.5 --output-reproducible --output-format=XML --output-file=$PWD/../results/bom.1.5.xml $PWD/composer.json", "@composer -d ../../.tool CycloneDX:make-sbom --validate --omit=dev --spec-version=1.4 --output-reproducible --output-format=XML --output-file=$PWD/../results/bom.1.4.xml $PWD/composer.json", diff --git a/demo/laravel-7.12.0/results/bom.1.7.json b/demo/laravel-7.12.0/results/bom.1.7.json new file mode 100644 index 00000000..78cdc322 --- /dev/null +++ b/demo/laravel-7.12.0/results/bom.1.7.json @@ -0,0 +1,3830 @@ +{ + "$schema": "http://cyclonedx.org/schema/bom-1.7.schema.json", + "bomFormat": "CycloneDX", + "specVersion": "1.7", + "version": 1, + "metadata": { + "tools": [ + { + "vendor": "cyclonedx", + "name": "cyclonedx-php-composer", + "version": "in-dev" + } + ], + "component": { + "bom-ref": "cyclonedx/cyclonedx-php-composer-demo-dev-master", + "type": "application", + "name": "cyclonedx-php-composer-demo", + "version": "dev-master", + "group": "cyclonedx", + "description": "demo of cyclonedx/cyclonedx-php-composer with a pinned version of laravel/framework", + "author": "Jan Kowalleck", + "purl": "pkg:composer/cyclonedx/cyclonedx-php-composer-demo@dev-master", + "properties": [ + { + "name": "cdx:composer:package:type", + "value": "project" + } + ] + } + }, + "components": [ + { + "bom-ref": "asm89/stack-cors-1.3.0.0", + "type": "library", + "name": "stack-cors", + "version": "1.3.0", + "group": "asm89", + "description": "Cross-origin resource sharing library and stack middleware", + "author": "Alexander", + "licenses": [ + { + "license": { + "id": "MIT", + "acknowledgement": "declared" + } + } + ], + "purl": "pkg:composer/asm89/stack-cors@1.3.0", + "externalReferences": [ + { + "type": "distribution", + "url": "https://api.github.com/repos/asm89/stack-cors/zipball/b9c31def6a83f84b4d4a40d35996d375755f0e08", + "comment": "dist reference: b9c31def6a83f84b4d4a40d35996d375755f0e08" + }, + { + "type": "vcs", + "url": "https://github.com/asm89/stack-cors.git", + "comment": "source reference: b9c31def6a83f84b4d4a40d35996d375755f0e08" + }, + { + "type": "website", + "url": "https://github.com/asm89/stack-cors", + "comment": "as detected from Composer manifest 'homepage'" + }, + { + "type": "issue-tracker", + "url": "https://github.com/asm89/stack-cors/issues", + "comment": "as detected from Composer manifest 'support.issues'" + }, + { + "type": "vcs", + "url": "https://github.com/asm89/stack-cors/tree/1.3.0", + "comment": "as detected from Composer manifest 'support.source'" + } + ], + "properties": [ + { + "name": "cdx:composer:package:distReference", + "value": "b9c31def6a83f84b4d4a40d35996d375755f0e08" + }, + { + "name": "cdx:composer:package:sourceReference", + "value": "b9c31def6a83f84b4d4a40d35996d375755f0e08" + }, + { + "name": "cdx:composer:package:type", + "value": "library" + } + ] + }, + { + "bom-ref": "brick/math-0.9.3.0", + "type": "library", + "name": "math", + "version": "0.9.3", + "group": "brick", + "description": "Arbitrary-precision arithmetic library", + "licenses": [ + { + "license": { + "id": "MIT", + "acknowledgement": "declared" + } + } + ], + "purl": "pkg:composer/brick/math@0.9.3", + "externalReferences": [ + { + "type": "distribution", + "url": "https://api.github.com/repos/brick/math/zipball/ca57d18f028f84f777b2168cd1911b0dee2343ae", + "comment": "dist reference: ca57d18f028f84f777b2168cd1911b0dee2343ae" + }, + { + "type": "vcs", + "url": "https://github.com/brick/math.git", + "comment": "source reference: ca57d18f028f84f777b2168cd1911b0dee2343ae" + }, + { + "type": "issue-tracker", + "url": "https://github.com/brick/math/issues", + "comment": "as detected from Composer manifest 'support.issues'" + }, + { + "type": "vcs", + "url": "https://github.com/brick/math/tree/0.9.3", + "comment": "as detected from Composer manifest 'support.source'" + } + ], + "properties": [ + { + "name": "cdx:composer:package:distReference", + "value": "ca57d18f028f84f777b2168cd1911b0dee2343ae" + }, + { + "name": "cdx:composer:package:sourceReference", + "value": "ca57d18f028f84f777b2168cd1911b0dee2343ae" + }, + { + "name": "cdx:composer:package:type", + "value": "library" + } + ] + }, + { + "bom-ref": "doctrine/inflector-2.0.6.0", + "type": "library", + "name": "inflector", + "version": "2.0.6", + "group": "doctrine", + "description": "PHP Doctrine Inflector is a small library that can perform string manipulations with regard to upper/lowercase and singular/plural forms of words.", + "author": "Guilherme Blanco, Roman Borschel, Benjamin Eberlei, Jonathan Wage, Johannes Schmitt", + "licenses": [ + { + "license": { + "id": "MIT", + "acknowledgement": "declared" + } + } + ], + "purl": "pkg:composer/doctrine/inflector@2.0.6", + "externalReferences": [ + { + "type": "distribution", + "url": "https://api.github.com/repos/doctrine/inflector/zipball/d9d313a36c872fd6ee06d9a6cbcf713eaa40f024", + "comment": "dist reference: d9d313a36c872fd6ee06d9a6cbcf713eaa40f024" + }, + { + "type": "vcs", + "url": "https://github.com/doctrine/inflector.git", + "comment": "source reference: d9d313a36c872fd6ee06d9a6cbcf713eaa40f024" + }, + { + "type": "website", + "url": "https://www.doctrine-project.org/projects/inflector.html", + "comment": "as detected from Composer manifest 'homepage'" + }, + { + "type": "issue-tracker", + "url": "https://github.com/doctrine/inflector/issues", + "comment": "as detected from Composer manifest 'support.issues'" + }, + { + "type": "vcs", + "url": "https://github.com/doctrine/inflector/tree/2.0.6", + "comment": "as detected from Composer manifest 'support.source'" + } + ], + "properties": [ + { + "name": "cdx:composer:package:distReference", + "value": "d9d313a36c872fd6ee06d9a6cbcf713eaa40f024" + }, + { + "name": "cdx:composer:package:sourceReference", + "value": "d9d313a36c872fd6ee06d9a6cbcf713eaa40f024" + }, + { + "name": "cdx:composer:package:type", + "value": "library" + } + ] + }, + { + "bom-ref": "doctrine/lexer-1.2.3.0", + "type": "library", + "name": "lexer", + "version": "1.2.3", + "group": "doctrine", + "description": "PHP Doctrine Lexer parser library that can be used in Top-Down, Recursive Descent Parsers.", + "author": "Guilherme Blanco, Roman Borschel, Johannes Schmitt", + "licenses": [ + { + "license": { + "id": "MIT", + "acknowledgement": "declared" + } + } + ], + "purl": "pkg:composer/doctrine/lexer@1.2.3", + "externalReferences": [ + { + "type": "distribution", + "url": "https://api.github.com/repos/doctrine/lexer/zipball/c268e882d4dbdd85e36e4ad69e02dc284f89d229", + "comment": "dist reference: c268e882d4dbdd85e36e4ad69e02dc284f89d229" + }, + { + "type": "vcs", + "url": "https://github.com/doctrine/lexer.git", + "comment": "source reference: c268e882d4dbdd85e36e4ad69e02dc284f89d229" + }, + { + "type": "website", + "url": "https://www.doctrine-project.org/projects/lexer.html", + "comment": "as detected from Composer manifest 'homepage'" + }, + { + "type": "issue-tracker", + "url": "https://github.com/doctrine/lexer/issues", + "comment": "as detected from Composer manifest 'support.issues'" + }, + { + "type": "vcs", + "url": "https://github.com/doctrine/lexer/tree/1.2.3", + "comment": "as detected from Composer manifest 'support.source'" + } + ], + "properties": [ + { + "name": "cdx:composer:package:distReference", + "value": "c268e882d4dbdd85e36e4ad69e02dc284f89d229" + }, + { + "name": "cdx:composer:package:sourceReference", + "value": "c268e882d4dbdd85e36e4ad69e02dc284f89d229" + }, + { + "name": "cdx:composer:package:type", + "value": "library" + } + ] + }, + { + "bom-ref": "dragonmantank/cron-expression-2.3.1.0", + "type": "library", + "name": "cron-expression", + "version": "v2.3.1", + "group": "dragonmantank", + "description": "CRON for PHP: Calculate the next or previous run date and determine if a CRON expression is due", + "author": "Michael Dowling, Chris Tankersley", + "licenses": [ + { + "license": { + "id": "MIT", + "acknowledgement": "declared" + } + } + ], + "purl": "pkg:composer/dragonmantank/cron-expression@v2.3.1", + "externalReferences": [ + { + "type": "distribution", + "url": "https://api.github.com/repos/dragonmantank/cron-expression/zipball/65b2d8ee1f10915efb3b55597da3404f096acba2", + "comment": "dist reference: 65b2d8ee1f10915efb3b55597da3404f096acba2" + }, + { + "type": "vcs", + "url": "https://github.com/dragonmantank/cron-expression.git", + "comment": "source reference: 65b2d8ee1f10915efb3b55597da3404f096acba2" + }, + { + "type": "issue-tracker", + "url": "https://github.com/dragonmantank/cron-expression/issues", + "comment": "as detected from Composer manifest 'support.issues'" + }, + { + "type": "vcs", + "url": "https://github.com/dragonmantank/cron-expression/tree/v2.3.1", + "comment": "as detected from Composer manifest 'support.source'" + } + ], + "properties": [ + { + "name": "cdx:composer:package:distReference", + "value": "65b2d8ee1f10915efb3b55597da3404f096acba2" + }, + { + "name": "cdx:composer:package:sourceReference", + "value": "65b2d8ee1f10915efb3b55597da3404f096acba2" + }, + { + "name": "cdx:composer:package:type", + "value": "library" + } + ] + }, + { + "bom-ref": "egulias/email-validator-2.1.25.0", + "type": "library", + "name": "email-validator", + "version": "2.1.25", + "group": "egulias", + "description": "A library for validating emails against several RFCs", + "author": "Eduardo Gulias Davis", + "licenses": [ + { + "license": { + "id": "MIT", + "acknowledgement": "declared" + } + } + ], + "purl": "pkg:composer/egulias/email-validator@2.1.25", + "externalReferences": [ + { + "type": "distribution", + "url": "https://api.github.com/repos/egulias/EmailValidator/zipball/0dbf5d78455d4d6a41d186da50adc1122ec066f4", + "comment": "dist reference: 0dbf5d78455d4d6a41d186da50adc1122ec066f4" + }, + { + "type": "vcs", + "url": "https://github.com/egulias/EmailValidator.git", + "comment": "source reference: 0dbf5d78455d4d6a41d186da50adc1122ec066f4" + }, + { + "type": "website", + "url": "https://github.com/egulias/EmailValidator", + "comment": "as detected from Composer manifest 'homepage'" + }, + { + "type": "issue-tracker", + "url": "https://github.com/egulias/EmailValidator/issues", + "comment": "as detected from Composer manifest 'support.issues'" + }, + { + "type": "vcs", + "url": "https://github.com/egulias/EmailValidator/tree/2.1.25", + "comment": "as detected from Composer manifest 'support.source'" + } + ], + "properties": [ + { + "name": "cdx:composer:package:distReference", + "value": "0dbf5d78455d4d6a41d186da50adc1122ec066f4" + }, + { + "name": "cdx:composer:package:sourceReference", + "value": "0dbf5d78455d4d6a41d186da50adc1122ec066f4" + }, + { + "name": "cdx:composer:package:type", + "value": "library" + } + ] + }, + { + "bom-ref": "fideloper/proxy-4.4.2.0", + "type": "library", + "name": "proxy", + "version": "4.4.2", + "group": "fideloper", + "description": "Set trusted proxies for Laravel", + "author": "Chris Fidao", + "licenses": [ + { + "license": { + "id": "MIT", + "acknowledgement": "declared" + } + } + ], + "purl": "pkg:composer/fideloper/proxy@4.4.2", + "externalReferences": [ + { + "type": "distribution", + "url": "https://api.github.com/repos/fideloper/TrustedProxy/zipball/a751f2bc86dd8e6cfef12dc0cbdada82f5a18750", + "comment": "dist reference: a751f2bc86dd8e6cfef12dc0cbdada82f5a18750" + }, + { + "type": "vcs", + "url": "https://github.com/fideloper/TrustedProxy.git", + "comment": "source reference: a751f2bc86dd8e6cfef12dc0cbdada82f5a18750" + }, + { + "type": "issue-tracker", + "url": "https://github.com/fideloper/TrustedProxy/issues", + "comment": "as detected from Composer manifest 'support.issues'" + }, + { + "type": "vcs", + "url": "https://github.com/fideloper/TrustedProxy/tree/4.4.2", + "comment": "as detected from Composer manifest 'support.source'" + } + ], + "properties": [ + { + "name": "cdx:composer:package:distReference", + "value": "a751f2bc86dd8e6cfef12dc0cbdada82f5a18750" + }, + { + "name": "cdx:composer:package:sourceReference", + "value": "a751f2bc86dd8e6cfef12dc0cbdada82f5a18750" + }, + { + "name": "cdx:composer:package:type", + "value": "library" + } + ] + }, + { + "bom-ref": "fruitcake/laravel-cors-1.0.6.0", + "type": "library", + "name": "laravel-cors", + "version": "v1.0.6", + "group": "fruitcake", + "description": "Adds CORS (Cross-Origin Resource Sharing) headers support in your Laravel application", + "author": "Fruitcake, Barry vd. Heuvel", + "licenses": [ + { + "license": { + "id": "MIT", + "acknowledgement": "declared" + } + } + ], + "purl": "pkg:composer/fruitcake/laravel-cors@v1.0.6", + "externalReferences": [ + { + "type": "distribution", + "url": "https://api.github.com/repos/fruitcake/laravel-cors/zipball/1d127dbec313e2e227d65e0c483765d8d7559bf6", + "comment": "dist reference: 1d127dbec313e2e227d65e0c483765d8d7559bf6" + }, + { + "type": "vcs", + "url": "https://github.com/fruitcake/laravel-cors.git", + "comment": "source reference: 1d127dbec313e2e227d65e0c483765d8d7559bf6" + }, + { + "type": "issue-tracker", + "url": "https://github.com/fruitcake/laravel-cors/issues", + "comment": "as detected from Composer manifest 'support.issues'" + }, + { + "type": "vcs", + "url": "https://github.com/fruitcake/laravel-cors/tree/1.0", + "comment": "as detected from Composer manifest 'support.source'" + } + ], + "properties": [ + { + "name": "cdx:composer:package:distReference", + "value": "1d127dbec313e2e227d65e0c483765d8d7559bf6" + }, + { + "name": "cdx:composer:package:sourceReference", + "value": "1d127dbec313e2e227d65e0c483765d8d7559bf6" + }, + { + "name": "cdx:composer:package:type", + "value": "library" + } + ] + }, + { + "bom-ref": "guzzlehttp/guzzle-6.5.8.0", + "type": "library", + "name": "guzzle", + "version": "6.5.8", + "group": "guzzlehttp", + "description": "Guzzle is a PHP HTTP client library", + "author": "Graham Campbell, Michael Dowling, Jeremy Lindblom, George Mponos, Tobias Nyholm, M\u00e1rk S\u00e1gi-Kaz\u00e1r, Tobias Schultze", + "licenses": [ + { + "license": { + "id": "MIT", + "acknowledgement": "declared" + } + } + ], + "purl": "pkg:composer/guzzlehttp/guzzle@6.5.8", + "externalReferences": [ + { + "type": "distribution", + "url": "https://api.github.com/repos/guzzle/guzzle/zipball/a52f0440530b54fa079ce76e8c5d196a42cad981", + "comment": "dist reference: a52f0440530b54fa079ce76e8c5d196a42cad981" + }, + { + "type": "vcs", + "url": "https://github.com/guzzle/guzzle.git", + "comment": "source reference: a52f0440530b54fa079ce76e8c5d196a42cad981" + }, + { + "type": "website", + "url": "http://guzzlephp.org/", + "comment": "as detected from Composer manifest 'homepage'" + }, + { + "type": "issue-tracker", + "url": "https://github.com/guzzle/guzzle/issues", + "comment": "as detected from Composer manifest 'support.issues'" + }, + { + "type": "vcs", + "url": "https://github.com/guzzle/guzzle/tree/6.5.8", + "comment": "as detected from Composer manifest 'support.source'" + } + ], + "properties": [ + { + "name": "cdx:composer:package:distReference", + "value": "a52f0440530b54fa079ce76e8c5d196a42cad981" + }, + { + "name": "cdx:composer:package:sourceReference", + "value": "a52f0440530b54fa079ce76e8c5d196a42cad981" + }, + { + "name": "cdx:composer:package:type", + "value": "library" + } + ] + }, + { + "bom-ref": "guzzlehttp/promises-1.5.2.0", + "type": "library", + "name": "promises", + "version": "1.5.2", + "group": "guzzlehttp", + "description": "Guzzle promises library", + "author": "Graham Campbell, Michael Dowling, Tobias Nyholm, Tobias Schultze", + "licenses": [ + { + "license": { + "id": "MIT", + "acknowledgement": "declared" + } + } + ], + "purl": "pkg:composer/guzzlehttp/promises@1.5.2", + "externalReferences": [ + { + "type": "distribution", + "url": "https://api.github.com/repos/guzzle/promises/zipball/b94b2807d85443f9719887892882d0329d1e2598", + "comment": "dist reference: b94b2807d85443f9719887892882d0329d1e2598" + }, + { + "type": "vcs", + "url": "https://github.com/guzzle/promises.git", + "comment": "source reference: b94b2807d85443f9719887892882d0329d1e2598" + }, + { + "type": "issue-tracker", + "url": "https://github.com/guzzle/promises/issues", + "comment": "as detected from Composer manifest 'support.issues'" + }, + { + "type": "vcs", + "url": "https://github.com/guzzle/promises/tree/1.5.2", + "comment": "as detected from Composer manifest 'support.source'" + } + ], + "properties": [ + { + "name": "cdx:composer:package:distReference", + "value": "b94b2807d85443f9719887892882d0329d1e2598" + }, + { + "name": "cdx:composer:package:sourceReference", + "value": "b94b2807d85443f9719887892882d0329d1e2598" + }, + { + "name": "cdx:composer:package:type", + "value": "library" + } + ] + }, + { + "bom-ref": "guzzlehttp/psr7-1.9.0.0", + "type": "library", + "name": "psr7", + "version": "1.9.0", + "group": "guzzlehttp", + "description": "PSR-7 message implementation that also provides common utility methods", + "author": "Graham Campbell, Michael Dowling, George Mponos, Tobias Nyholm, M\u00e1rk S\u00e1gi-Kaz\u00e1r, Tobias Schultze", + "licenses": [ + { + "license": { + "id": "MIT", + "acknowledgement": "declared" + } + } + ], + "purl": "pkg:composer/guzzlehttp/psr7@1.9.0", + "externalReferences": [ + { + "type": "distribution", + "url": "https://api.github.com/repos/guzzle/psr7/zipball/e98e3e6d4f86621a9b75f623996e6bbdeb4b9318", + "comment": "dist reference: e98e3e6d4f86621a9b75f623996e6bbdeb4b9318" + }, + { + "type": "vcs", + "url": "https://github.com/guzzle/psr7.git", + "comment": "source reference: e98e3e6d4f86621a9b75f623996e6bbdeb4b9318" + }, + { + "type": "issue-tracker", + "url": "https://github.com/guzzle/psr7/issues", + "comment": "as detected from Composer manifest 'support.issues'" + }, + { + "type": "vcs", + "url": "https://github.com/guzzle/psr7/tree/1.9.0", + "comment": "as detected from Composer manifest 'support.source'" + } + ], + "properties": [ + { + "name": "cdx:composer:package:distReference", + "value": "e98e3e6d4f86621a9b75f623996e6bbdeb4b9318" + }, + { + "name": "cdx:composer:package:sourceReference", + "value": "e98e3e6d4f86621a9b75f623996e6bbdeb4b9318" + }, + { + "name": "cdx:composer:package:type", + "value": "library" + } + ] + }, + { + "bom-ref": "laravel/framework-7.30.6.0", + "type": "library", + "name": "framework", + "version": "v7.30.6", + "group": "laravel", + "description": "The Laravel Framework.", + "author": "Taylor Otwell", + "licenses": [ + { + "license": { + "id": "MIT", + "acknowledgement": "declared" + } + } + ], + "purl": "pkg:composer/laravel/framework@v7.30.6", + "externalReferences": [ + { + "type": "distribution", + "url": "https://api.github.com/repos/laravel/framework/zipball/ecdafad1dda3c790af186a6d18479ea4757ef9ee", + "comment": "dist reference: ecdafad1dda3c790af186a6d18479ea4757ef9ee" + }, + { + "type": "vcs", + "url": "https://github.com/laravel/framework.git", + "comment": "source reference: ecdafad1dda3c790af186a6d18479ea4757ef9ee" + }, + { + "type": "website", + "url": "https://laravel.com", + "comment": "as detected from Composer manifest 'homepage'" + }, + { + "type": "issue-tracker", + "url": "https://github.com/laravel/framework/issues", + "comment": "as detected from Composer manifest 'support.issues'" + }, + { + "type": "vcs", + "url": "https://github.com/laravel/framework", + "comment": "as detected from Composer manifest 'support.source'" + } + ], + "properties": [ + { + "name": "cdx:composer:package:distReference", + "value": "ecdafad1dda3c790af186a6d18479ea4757ef9ee" + }, + { + "name": "cdx:composer:package:sourceReference", + "value": "ecdafad1dda3c790af186a6d18479ea4757ef9ee" + }, + { + "name": "cdx:composer:package:type", + "value": "library" + } + ] + }, + { + "bom-ref": "laravel/laravel-7.12.0.0", + "type": "library", + "name": "laravel", + "version": "v7.12.0", + "group": "laravel", + "description": "The Laravel Framework.", + "licenses": [ + { + "license": { + "id": "MIT", + "acknowledgement": "declared" + } + } + ], + "purl": "pkg:composer/laravel/laravel@v7.12.0", + "externalReferences": [ + { + "type": "distribution", + "url": "https://api.github.com/repos/laravel/laravel/zipball/5639581ea56ecd556cdf6e6edc37ce5795740fd7", + "comment": "dist reference: 5639581ea56ecd556cdf6e6edc37ce5795740fd7" + }, + { + "type": "vcs", + "url": "https://github.com/laravel/laravel.git", + "comment": "source reference: 5639581ea56ecd556cdf6e6edc37ce5795740fd7" + }, + { + "type": "vcs", + "url": "https://github.com/laravel/laravel/tree/master", + "comment": "as detected from Composer manifest 'support.source'" + } + ], + "properties": [ + { + "name": "cdx:composer:package:distReference", + "value": "5639581ea56ecd556cdf6e6edc37ce5795740fd7" + }, + { + "name": "cdx:composer:package:sourceReference", + "value": "5639581ea56ecd556cdf6e6edc37ce5795740fd7" + }, + { + "name": "cdx:composer:package:type", + "value": "project" + } + ] + }, + { + "bom-ref": "laravel/tinker-2.7.3.0", + "type": "library", + "name": "tinker", + "version": "v2.7.3", + "group": "laravel", + "description": "Powerful REPL for the Laravel framework.", + "author": "Taylor Otwell", + "licenses": [ + { + "license": { + "id": "MIT", + "acknowledgement": "declared" + } + } + ], + "purl": "pkg:composer/laravel/tinker@v2.7.3", + "externalReferences": [ + { + "type": "distribution", + "url": "https://api.github.com/repos/laravel/tinker/zipball/5062061b4924af3392225dd482ca7b4d85d8b8ef", + "comment": "dist reference: 5062061b4924af3392225dd482ca7b4d85d8b8ef" + }, + { + "type": "vcs", + "url": "https://github.com/laravel/tinker.git", + "comment": "source reference: 5062061b4924af3392225dd482ca7b4d85d8b8ef" + }, + { + "type": "issue-tracker", + "url": "https://github.com/laravel/tinker/issues", + "comment": "as detected from Composer manifest 'support.issues'" + }, + { + "type": "vcs", + "url": "https://github.com/laravel/tinker/tree/v2.7.3", + "comment": "as detected from Composer manifest 'support.source'" + } + ], + "properties": [ + { + "name": "cdx:composer:package:distReference", + "value": "5062061b4924af3392225dd482ca7b4d85d8b8ef" + }, + { + "name": "cdx:composer:package:sourceReference", + "value": "5062061b4924af3392225dd482ca7b4d85d8b8ef" + }, + { + "name": "cdx:composer:package:type", + "value": "library" + } + ] + }, + { + "bom-ref": "league/commonmark-1.6.7.0", + "type": "library", + "name": "commonmark", + "version": "1.6.7", + "group": "league", + "description": "Highly-extensible PHP Markdown parser which fully supports the CommonMark spec and Github-Flavored Markdown (GFM)", + "author": "Colin O'Dell", + "licenses": [ + { + "license": { + "id": "BSD-3-Clause", + "acknowledgement": "declared" + } + } + ], + "purl": "pkg:composer/league/commonmark@1.6.7", + "externalReferences": [ + { + "type": "distribution", + "url": "https://api.github.com/repos/thephpleague/commonmark/zipball/2b8185c13bc9578367a5bf901881d1c1b5bbd09b", + "comment": "dist reference: 2b8185c13bc9578367a5bf901881d1c1b5bbd09b" + }, + { + "type": "vcs", + "url": "https://github.com/thephpleague/commonmark.git", + "comment": "source reference: 2b8185c13bc9578367a5bf901881d1c1b5bbd09b" + }, + { + "type": "website", + "url": "https://commonmark.thephpleague.com", + "comment": "as detected from Composer manifest 'homepage'" + }, + { + "type": "documentation", + "url": "https://commonmark.thephpleague.com/", + "comment": "as detected from Composer manifest 'support.docs'" + }, + { + "type": "issue-tracker", + "url": "https://github.com/thephpleague/commonmark/issues", + "comment": "as detected from Composer manifest 'support.issues'" + }, + { + "type": "other", + "url": "https://github.com/thephpleague/commonmark/releases.atom", + "comment": "as detected from Composer manifest 'support.rss'" + }, + { + "type": "vcs", + "url": "https://github.com/thephpleague/commonmark", + "comment": "as detected from Composer manifest 'support.source'" + } + ], + "properties": [ + { + "name": "cdx:composer:package:distReference", + "value": "2b8185c13bc9578367a5bf901881d1c1b5bbd09b" + }, + { + "name": "cdx:composer:package:sourceReference", + "value": "2b8185c13bc9578367a5bf901881d1c1b5bbd09b" + }, + { + "name": "cdx:composer:package:type", + "value": "library" + } + ] + }, + { + "bom-ref": "league/flysystem-1.1.10.0", + "type": "library", + "name": "flysystem", + "version": "1.1.10", + "group": "league", + "description": "Filesystem abstraction: Many filesystems, one API.", + "author": "Frank de Jonge", + "licenses": [ + { + "license": { + "id": "MIT", + "acknowledgement": "declared" + } + } + ], + "purl": "pkg:composer/league/flysystem@1.1.10", + "externalReferences": [ + { + "type": "distribution", + "url": "https://api.github.com/repos/thephpleague/flysystem/zipball/3239285c825c152bcc315fe0e87d6b55f5972ed1", + "comment": "dist reference: 3239285c825c152bcc315fe0e87d6b55f5972ed1" + }, + { + "type": "vcs", + "url": "https://github.com/thephpleague/flysystem.git", + "comment": "source reference: 3239285c825c152bcc315fe0e87d6b55f5972ed1" + }, + { + "type": "issue-tracker", + "url": "https://github.com/thephpleague/flysystem/issues", + "comment": "as detected from Composer manifest 'support.issues'" + }, + { + "type": "vcs", + "url": "https://github.com/thephpleague/flysystem/tree/1.1.10", + "comment": "as detected from Composer manifest 'support.source'" + } + ], + "properties": [ + { + "name": "cdx:composer:package:distReference", + "value": "3239285c825c152bcc315fe0e87d6b55f5972ed1" + }, + { + "name": "cdx:composer:package:sourceReference", + "value": "3239285c825c152bcc315fe0e87d6b55f5972ed1" + }, + { + "name": "cdx:composer:package:type", + "value": "library" + } + ] + }, + { + "bom-ref": "league/mime-type-detection-1.11.0.0", + "type": "library", + "name": "mime-type-detection", + "version": "1.11.0", + "group": "league", + "description": "Mime-type detection for Flysystem", + "author": "Frank de Jonge", + "licenses": [ + { + "license": { + "id": "MIT", + "acknowledgement": "declared" + } + } + ], + "purl": "pkg:composer/league/mime-type-detection@1.11.0", + "externalReferences": [ + { + "type": "distribution", + "url": "https://api.github.com/repos/thephpleague/mime-type-detection/zipball/ff6248ea87a9f116e78edd6002e39e5128a0d4dd", + "comment": "dist reference: ff6248ea87a9f116e78edd6002e39e5128a0d4dd" + }, + { + "type": "vcs", + "url": "https://github.com/thephpleague/mime-type-detection.git", + "comment": "source reference: ff6248ea87a9f116e78edd6002e39e5128a0d4dd" + }, + { + "type": "issue-tracker", + "url": "https://github.com/thephpleague/mime-type-detection/issues", + "comment": "as detected from Composer manifest 'support.issues'" + }, + { + "type": "vcs", + "url": "https://github.com/thephpleague/mime-type-detection/tree/1.11.0", + "comment": "as detected from Composer manifest 'support.source'" + } + ], + "properties": [ + { + "name": "cdx:composer:package:distReference", + "value": "ff6248ea87a9f116e78edd6002e39e5128a0d4dd" + }, + { + "name": "cdx:composer:package:sourceReference", + "value": "ff6248ea87a9f116e78edd6002e39e5128a0d4dd" + }, + { + "name": "cdx:composer:package:type", + "value": "library" + } + ] + }, + { + "bom-ref": "monolog/monolog-2.8.0.0", + "type": "library", + "name": "monolog", + "version": "2.8.0", + "group": "monolog", + "description": "Sends your logs to files, sockets, inboxes, databases and various web services", + "author": "Jordi Boggiano", + "licenses": [ + { + "license": { + "id": "MIT", + "acknowledgement": "declared" + } + } + ], + "purl": "pkg:composer/monolog/monolog@2.8.0", + "externalReferences": [ + { + "type": "distribution", + "url": "https://api.github.com/repos/Seldaek/monolog/zipball/720488632c590286b88b80e62aa3d3d551ad4a50", + "comment": "dist reference: 720488632c590286b88b80e62aa3d3d551ad4a50" + }, + { + "type": "vcs", + "url": "https://github.com/Seldaek/monolog.git", + "comment": "source reference: 720488632c590286b88b80e62aa3d3d551ad4a50" + }, + { + "type": "website", + "url": "https://github.com/Seldaek/monolog", + "comment": "as detected from Composer manifest 'homepage'" + }, + { + "type": "issue-tracker", + "url": "https://github.com/Seldaek/monolog/issues", + "comment": "as detected from Composer manifest 'support.issues'" + }, + { + "type": "vcs", + "url": "https://github.com/Seldaek/monolog/tree/2.8.0", + "comment": "as detected from Composer manifest 'support.source'" + } + ], + "properties": [ + { + "name": "cdx:composer:package:distReference", + "value": "720488632c590286b88b80e62aa3d3d551ad4a50" + }, + { + "name": "cdx:composer:package:sourceReference", + "value": "720488632c590286b88b80e62aa3d3d551ad4a50" + }, + { + "name": "cdx:composer:package:type", + "value": "library" + } + ] + }, + { + "bom-ref": "nesbot/carbon-2.63.0.0", + "type": "library", + "name": "carbon", + "version": "2.63.0", + "group": "nesbot", + "description": "An API extension for DateTime that supports 281 different languages.", + "author": "Brian Nesbitt, kylekatarnls", + "licenses": [ + { + "license": { + "id": "MIT", + "acknowledgement": "declared" + } + } + ], + "purl": "pkg:composer/nesbot/carbon@2.63.0", + "externalReferences": [ + { + "type": "distribution", + "url": "https://api.github.com/repos/briannesbitt/Carbon/zipball/ad35dd71a6a212b98e4b87e97389b6fa85f0e347", + "comment": "dist reference: ad35dd71a6a212b98e4b87e97389b6fa85f0e347" + }, + { + "type": "vcs", + "url": "https://github.com/briannesbitt/Carbon.git", + "comment": "source reference: ad35dd71a6a212b98e4b87e97389b6fa85f0e347" + }, + { + "type": "website", + "url": "https://carbon.nesbot.com", + "comment": "as detected from Composer manifest 'homepage'" + }, + { + "type": "documentation", + "url": "https://carbon.nesbot.com/docs", + "comment": "as detected from Composer manifest 'support.docs'" + }, + { + "type": "issue-tracker", + "url": "https://github.com/briannesbitt/Carbon/issues", + "comment": "as detected from Composer manifest 'support.issues'" + }, + { + "type": "vcs", + "url": "https://github.com/briannesbitt/Carbon", + "comment": "as detected from Composer manifest 'support.source'" + } + ], + "properties": [ + { + "name": "cdx:composer:package:distReference", + "value": "ad35dd71a6a212b98e4b87e97389b6fa85f0e347" + }, + { + "name": "cdx:composer:package:sourceReference", + "value": "ad35dd71a6a212b98e4b87e97389b6fa85f0e347" + }, + { + "name": "cdx:composer:package:type", + "value": "library" + } + ] + }, + { + "bom-ref": "nikic/php-parser-4.15.2.0", + "type": "library", + "name": "php-parser", + "version": "v4.15.2", + "group": "nikic", + "description": "A PHP parser written in PHP", + "author": "Nikita Popov", + "licenses": [ + { + "license": { + "id": "BSD-3-Clause", + "acknowledgement": "declared" + } + } + ], + "purl": "pkg:composer/nikic/php-parser@v4.15.2", + "externalReferences": [ + { + "type": "distribution", + "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/f59bbe44bf7d96f24f3e2b4ddc21cd52c1d2adbc", + "comment": "dist reference: f59bbe44bf7d96f24f3e2b4ddc21cd52c1d2adbc" + }, + { + "type": "vcs", + "url": "https://github.com/nikic/PHP-Parser.git", + "comment": "source reference: f59bbe44bf7d96f24f3e2b4ddc21cd52c1d2adbc" + }, + { + "type": "issue-tracker", + "url": "https://github.com/nikic/PHP-Parser/issues", + "comment": "as detected from Composer manifest 'support.issues'" + }, + { + "type": "vcs", + "url": "https://github.com/nikic/PHP-Parser/tree/v4.15.2", + "comment": "as detected from Composer manifest 'support.source'" + } + ], + "properties": [ + { + "name": "cdx:composer:package:distReference", + "value": "f59bbe44bf7d96f24f3e2b4ddc21cd52c1d2adbc" + }, + { + "name": "cdx:composer:package:sourceReference", + "value": "f59bbe44bf7d96f24f3e2b4ddc21cd52c1d2adbc" + }, + { + "name": "cdx:composer:package:type", + "value": "library" + } + ] + }, + { + "bom-ref": "opis/closure-3.6.3.0", + "type": "library", + "name": "closure", + "version": "3.6.3", + "group": "opis", + "description": "A library that can be used to serialize closures (anonymous functions) and arbitrary objects.", + "author": "Marius Sarca, Sorin Sarca", + "licenses": [ + { + "license": { + "id": "MIT", + "acknowledgement": "declared" + } + } + ], + "purl": "pkg:composer/opis/closure@3.6.3", + "externalReferences": [ + { + "type": "distribution", + "url": "https://api.github.com/repos/opis/closure/zipball/3d81e4309d2a927abbe66df935f4bb60082805ad", + "comment": "dist reference: 3d81e4309d2a927abbe66df935f4bb60082805ad" + }, + { + "type": "vcs", + "url": "https://github.com/opis/closure.git", + "comment": "source reference: 3d81e4309d2a927abbe66df935f4bb60082805ad" + }, + { + "type": "website", + "url": "https://opis.io/closure", + "comment": "as detected from Composer manifest 'homepage'" + }, + { + "type": "issue-tracker", + "url": "https://github.com/opis/closure/issues", + "comment": "as detected from Composer manifest 'support.issues'" + }, + { + "type": "vcs", + "url": "https://github.com/opis/closure/tree/3.6.3", + "comment": "as detected from Composer manifest 'support.source'" + } + ], + "properties": [ + { + "name": "cdx:composer:package:distReference", + "value": "3d81e4309d2a927abbe66df935f4bb60082805ad" + }, + { + "name": "cdx:composer:package:sourceReference", + "value": "3d81e4309d2a927abbe66df935f4bb60082805ad" + }, + { + "name": "cdx:composer:package:type", + "value": "library" + } + ] + }, + { + "bom-ref": "phpoption/phpoption-1.9.0.0", + "type": "library", + "name": "phpoption", + "version": "1.9.0", + "group": "phpoption", + "description": "Option Type for PHP", + "author": "Johannes M. Schmitt, Graham Campbell", + "licenses": [ + { + "license": { + "id": "Apache-2.0", + "acknowledgement": "declared" + } + } + ], + "purl": "pkg:composer/phpoption/phpoption@1.9.0", + "externalReferences": [ + { + "type": "distribution", + "url": "https://api.github.com/repos/schmittjoh/php-option/zipball/dc5ff11e274a90cc1c743f66c9ad700ce50db9ab", + "comment": "dist reference: dc5ff11e274a90cc1c743f66c9ad700ce50db9ab" + }, + { + "type": "vcs", + "url": "https://github.com/schmittjoh/php-option.git", + "comment": "source reference: dc5ff11e274a90cc1c743f66c9ad700ce50db9ab" + }, + { + "type": "issue-tracker", + "url": "https://github.com/schmittjoh/php-option/issues", + "comment": "as detected from Composer manifest 'support.issues'" + }, + { + "type": "vcs", + "url": "https://github.com/schmittjoh/php-option/tree/1.9.0", + "comment": "as detected from Composer manifest 'support.source'" + } + ], + "properties": [ + { + "name": "cdx:composer:package:distReference", + "value": "dc5ff11e274a90cc1c743f66c9ad700ce50db9ab" + }, + { + "name": "cdx:composer:package:sourceReference", + "value": "dc5ff11e274a90cc1c743f66c9ad700ce50db9ab" + }, + { + "name": "cdx:composer:package:type", + "value": "library" + } + ] + }, + { + "bom-ref": "psr/container-1.1.1.0", + "type": "library", + "name": "container", + "version": "1.1.1", + "group": "psr", + "description": "Common Container Interface (PHP FIG PSR-11)", + "author": "PHP-FIG", + "licenses": [ + { + "license": { + "id": "MIT", + "acknowledgement": "declared" + } + } + ], + "purl": "pkg:composer/psr/container@1.1.1", + "externalReferences": [ + { + "type": "distribution", + "url": "https://api.github.com/repos/php-fig/container/zipball/8622567409010282b7aeebe4bb841fe98b58dcaf", + "comment": "dist reference: 8622567409010282b7aeebe4bb841fe98b58dcaf" + }, + { + "type": "vcs", + "url": "https://github.com/php-fig/container.git", + "comment": "source reference: 8622567409010282b7aeebe4bb841fe98b58dcaf" + }, + { + "type": "website", + "url": "https://github.com/php-fig/container", + "comment": "as detected from Composer manifest 'homepage'" + }, + { + "type": "issue-tracker", + "url": "https://github.com/php-fig/container/issues", + "comment": "as detected from Composer manifest 'support.issues'" + }, + { + "type": "vcs", + "url": "https://github.com/php-fig/container/tree/1.1.1", + "comment": "as detected from Composer manifest 'support.source'" + } + ], + "properties": [ + { + "name": "cdx:composer:package:distReference", + "value": "8622567409010282b7aeebe4bb841fe98b58dcaf" + }, + { + "name": "cdx:composer:package:sourceReference", + "value": "8622567409010282b7aeebe4bb841fe98b58dcaf" + }, + { + "name": "cdx:composer:package:type", + "value": "library" + } + ] + }, + { + "bom-ref": "psr/event-dispatcher-1.0.0.0", + "type": "library", + "name": "event-dispatcher", + "version": "1.0.0", + "group": "psr", + "description": "Standard interfaces for event handling.", + "author": "PHP-FIG", + "licenses": [ + { + "license": { + "id": "MIT", + "acknowledgement": "declared" + } + } + ], + "purl": "pkg:composer/psr/event-dispatcher@1.0.0", + "externalReferences": [ + { + "type": "distribution", + "url": "https://api.github.com/repos/php-fig/event-dispatcher/zipball/dbefd12671e8a14ec7f180cab83036ed26714bb0", + "comment": "dist reference: dbefd12671e8a14ec7f180cab83036ed26714bb0" + }, + { + "type": "vcs", + "url": "https://github.com/php-fig/event-dispatcher.git", + "comment": "source reference: dbefd12671e8a14ec7f180cab83036ed26714bb0" + }, + { + "type": "issue-tracker", + "url": "https://github.com/php-fig/event-dispatcher/issues", + "comment": "as detected from Composer manifest 'support.issues'" + }, + { + "type": "vcs", + "url": "https://github.com/php-fig/event-dispatcher/tree/1.0.0", + "comment": "as detected from Composer manifest 'support.source'" + } + ], + "properties": [ + { + "name": "cdx:composer:package:distReference", + "value": "dbefd12671e8a14ec7f180cab83036ed26714bb0" + }, + { + "name": "cdx:composer:package:sourceReference", + "value": "dbefd12671e8a14ec7f180cab83036ed26714bb0" + }, + { + "name": "cdx:composer:package:type", + "value": "library" + } + ] + }, + { + "bom-ref": "psr/http-message-1.0.1.0", + "type": "library", + "name": "http-message", + "version": "1.0.1", + "group": "psr", + "description": "Common interface for HTTP messages", + "author": "PHP-FIG", + "licenses": [ + { + "license": { + "id": "MIT", + "acknowledgement": "declared" + } + } + ], + "purl": "pkg:composer/psr/http-message@1.0.1", + "externalReferences": [ + { + "type": "distribution", + "url": "https://api.github.com/repos/php-fig/http-message/zipball/f6561bf28d520154e4b0ec72be95418abe6d9363", + "comment": "dist reference: f6561bf28d520154e4b0ec72be95418abe6d9363" + }, + { + "type": "vcs", + "url": "https://github.com/php-fig/http-message.git", + "comment": "source reference: f6561bf28d520154e4b0ec72be95418abe6d9363" + }, + { + "type": "website", + "url": "https://github.com/php-fig/http-message", + "comment": "as detected from Composer manifest 'homepage'" + }, + { + "type": "vcs", + "url": "https://github.com/php-fig/http-message/tree/master", + "comment": "as detected from Composer manifest 'support.source'" + } + ], + "properties": [ + { + "name": "cdx:composer:package:distReference", + "value": "f6561bf28d520154e4b0ec72be95418abe6d9363" + }, + { + "name": "cdx:composer:package:sourceReference", + "value": "f6561bf28d520154e4b0ec72be95418abe6d9363" + }, + { + "name": "cdx:composer:package:type", + "value": "library" + } + ] + }, + { + "bom-ref": "psr/log-1.1.4.0", + "type": "library", + "name": "log", + "version": "1.1.4", + "group": "psr", + "description": "Common interface for logging libraries", + "author": "PHP-FIG", + "licenses": [ + { + "license": { + "id": "MIT", + "acknowledgement": "declared" + } + } + ], + "purl": "pkg:composer/psr/log@1.1.4", + "externalReferences": [ + { + "type": "distribution", + "url": "https://api.github.com/repos/php-fig/log/zipball/d49695b909c3b7628b6289db5479a1c204601f11", + "comment": "dist reference: d49695b909c3b7628b6289db5479a1c204601f11" + }, + { + "type": "vcs", + "url": "https://github.com/php-fig/log.git", + "comment": "source reference: d49695b909c3b7628b6289db5479a1c204601f11" + }, + { + "type": "website", + "url": "https://github.com/php-fig/log", + "comment": "as detected from Composer manifest 'homepage'" + }, + { + "type": "vcs", + "url": "https://github.com/php-fig/log/tree/1.1.4", + "comment": "as detected from Composer manifest 'support.source'" + } + ], + "properties": [ + { + "name": "cdx:composer:package:distReference", + "value": "d49695b909c3b7628b6289db5479a1c204601f11" + }, + { + "name": "cdx:composer:package:sourceReference", + "value": "d49695b909c3b7628b6289db5479a1c204601f11" + }, + { + "name": "cdx:composer:package:type", + "value": "library" + } + ] + }, + { + "bom-ref": "psr/simple-cache-1.0.1.0", + "type": "library", + "name": "simple-cache", + "version": "1.0.1", + "group": "psr", + "description": "Common interfaces for simple caching", + "author": "PHP-FIG", + "licenses": [ + { + "license": { + "id": "MIT", + "acknowledgement": "declared" + } + } + ], + "purl": "pkg:composer/psr/simple-cache@1.0.1", + "externalReferences": [ + { + "type": "distribution", + "url": "https://api.github.com/repos/php-fig/simple-cache/zipball/408d5eafb83c57f6365a3ca330ff23aa4a5fa39b", + "comment": "dist reference: 408d5eafb83c57f6365a3ca330ff23aa4a5fa39b" + }, + { + "type": "vcs", + "url": "https://github.com/php-fig/simple-cache.git", + "comment": "source reference: 408d5eafb83c57f6365a3ca330ff23aa4a5fa39b" + }, + { + "type": "vcs", + "url": "https://github.com/php-fig/simple-cache/tree/master", + "comment": "as detected from Composer manifest 'support.source'" + } + ], + "properties": [ + { + "name": "cdx:composer:package:distReference", + "value": "408d5eafb83c57f6365a3ca330ff23aa4a5fa39b" + }, + { + "name": "cdx:composer:package:sourceReference", + "value": "408d5eafb83c57f6365a3ca330ff23aa4a5fa39b" + }, + { + "name": "cdx:composer:package:type", + "value": "library" + } + ] + }, + { + "bom-ref": "psy/psysh-0.11.9.0", + "type": "library", + "name": "psysh", + "version": "v0.11.9", + "group": "psy", + "description": "An interactive shell for modern PHP.", + "author": "Justin Hileman", + "licenses": [ + { + "license": { + "id": "MIT", + "acknowledgement": "declared" + } + } + ], + "purl": "pkg:composer/psy/psysh@v0.11.9", + "externalReferences": [ + { + "type": "distribution", + "url": "https://api.github.com/repos/bobthecow/psysh/zipball/1acec99d6684a54ff92f8b548a4e41b566963778", + "comment": "dist reference: 1acec99d6684a54ff92f8b548a4e41b566963778" + }, + { + "type": "vcs", + "url": "https://github.com/bobthecow/psysh.git", + "comment": "source reference: 1acec99d6684a54ff92f8b548a4e41b566963778" + }, + { + "type": "website", + "url": "http://psysh.org", + "comment": "as detected from Composer manifest 'homepage'" + }, + { + "type": "issue-tracker", + "url": "https://github.com/bobthecow/psysh/issues", + "comment": "as detected from Composer manifest 'support.issues'" + }, + { + "type": "vcs", + "url": "https://github.com/bobthecow/psysh/tree/v0.11.9", + "comment": "as detected from Composer manifest 'support.source'" + } + ], + "properties": [ + { + "name": "cdx:composer:package:distReference", + "value": "1acec99d6684a54ff92f8b548a4e41b566963778" + }, + { + "name": "cdx:composer:package:sourceReference", + "value": "1acec99d6684a54ff92f8b548a4e41b566963778" + }, + { + "name": "cdx:composer:package:type", + "value": "library" + } + ] + }, + { + "bom-ref": "ralouphie/getallheaders-3.0.3.0", + "type": "library", + "name": "getallheaders", + "version": "3.0.3", + "group": "ralouphie", + "description": "A polyfill for getallheaders.", + "author": "Ralph Khattar", + "licenses": [ + { + "license": { + "id": "MIT", + "acknowledgement": "declared" + } + } + ], + "purl": "pkg:composer/ralouphie/getallheaders@3.0.3", + "externalReferences": [ + { + "type": "distribution", + "url": "https://api.github.com/repos/ralouphie/getallheaders/zipball/120b605dfeb996808c31b6477290a714d356e822", + "comment": "dist reference: 120b605dfeb996808c31b6477290a714d356e822" + }, + { + "type": "vcs", + "url": "https://github.com/ralouphie/getallheaders.git", + "comment": "source reference: 120b605dfeb996808c31b6477290a714d356e822" + }, + { + "type": "issue-tracker", + "url": "https://github.com/ralouphie/getallheaders/issues", + "comment": "as detected from Composer manifest 'support.issues'" + }, + { + "type": "vcs", + "url": "https://github.com/ralouphie/getallheaders/tree/develop", + "comment": "as detected from Composer manifest 'support.source'" + } + ], + "properties": [ + { + "name": "cdx:composer:package:distReference", + "value": "120b605dfeb996808c31b6477290a714d356e822" + }, + { + "name": "cdx:composer:package:sourceReference", + "value": "120b605dfeb996808c31b6477290a714d356e822" + }, + { + "name": "cdx:composer:package:type", + "value": "library" + } + ] + }, + { + "bom-ref": "ramsey/collection-1.2.2.0", + "type": "library", + "name": "collection", + "version": "1.2.2", + "group": "ramsey", + "description": "A PHP library for representing and manipulating collections.", + "author": "Ben Ramsey", + "licenses": [ + { + "license": { + "id": "MIT", + "acknowledgement": "declared" + } + } + ], + "purl": "pkg:composer/ramsey/collection@1.2.2", + "externalReferences": [ + { + "type": "distribution", + "url": "https://api.github.com/repos/ramsey/collection/zipball/cccc74ee5e328031b15640b51056ee8d3bb66c0a", + "comment": "dist reference: cccc74ee5e328031b15640b51056ee8d3bb66c0a" + }, + { + "type": "vcs", + "url": "https://github.com/ramsey/collection.git", + "comment": "source reference: cccc74ee5e328031b15640b51056ee8d3bb66c0a" + }, + { + "type": "issue-tracker", + "url": "https://github.com/ramsey/collection/issues", + "comment": "as detected from Composer manifest 'support.issues'" + }, + { + "type": "vcs", + "url": "https://github.com/ramsey/collection/tree/1.2.2", + "comment": "as detected from Composer manifest 'support.source'" + } + ], + "properties": [ + { + "name": "cdx:composer:package:distReference", + "value": "cccc74ee5e328031b15640b51056ee8d3bb66c0a" + }, + { + "name": "cdx:composer:package:sourceReference", + "value": "cccc74ee5e328031b15640b51056ee8d3bb66c0a" + }, + { + "name": "cdx:composer:package:type", + "value": "library" + } + ] + }, + { + "bom-ref": "ramsey/uuid-4.2.3.0", + "type": "library", + "name": "uuid", + "version": "4.2.3", + "group": "ramsey", + "description": "A PHP library for generating and working with universally unique identifiers (UUIDs).", + "licenses": [ + { + "license": { + "id": "MIT", + "acknowledgement": "declared" + } + } + ], + "purl": "pkg:composer/ramsey/uuid@4.2.3", + "externalReferences": [ + { + "type": "distribution", + "url": "https://api.github.com/repos/ramsey/uuid/zipball/fc9bb7fb5388691fd7373cd44dcb4d63bbcf24df", + "comment": "dist reference: fc9bb7fb5388691fd7373cd44dcb4d63bbcf24df" + }, + { + "type": "vcs", + "url": "https://github.com/ramsey/uuid.git", + "comment": "source reference: fc9bb7fb5388691fd7373cd44dcb4d63bbcf24df" + }, + { + "type": "issue-tracker", + "url": "https://github.com/ramsey/uuid/issues", + "comment": "as detected from Composer manifest 'support.issues'" + }, + { + "type": "vcs", + "url": "https://github.com/ramsey/uuid/tree/4.2.3", + "comment": "as detected from Composer manifest 'support.source'" + } + ], + "properties": [ + { + "name": "cdx:composer:package:distReference", + "value": "fc9bb7fb5388691fd7373cd44dcb4d63bbcf24df" + }, + { + "name": "cdx:composer:package:sourceReference", + "value": "fc9bb7fb5388691fd7373cd44dcb4d63bbcf24df" + }, + { + "name": "cdx:composer:package:type", + "value": "library" + } + ] + }, + { + "bom-ref": "swiftmailer/swiftmailer-6.3.0.0", + "type": "library", + "name": "swiftmailer", + "version": "v6.3.0", + "group": "swiftmailer", + "description": "Swiftmailer, free feature-rich PHP mailer", + "author": "Chris Corbyn, Fabien Potencier", + "licenses": [ + { + "license": { + "id": "MIT", + "acknowledgement": "declared" + } + } + ], + "purl": "pkg:composer/swiftmailer/swiftmailer@v6.3.0", + "externalReferences": [ + { + "type": "distribution", + "url": "https://api.github.com/repos/swiftmailer/swiftmailer/zipball/8a5d5072dca8f48460fce2f4131fcc495eec654c", + "comment": "dist reference: 8a5d5072dca8f48460fce2f4131fcc495eec654c" + }, + { + "type": "vcs", + "url": "https://github.com/swiftmailer/swiftmailer.git", + "comment": "source reference: 8a5d5072dca8f48460fce2f4131fcc495eec654c" + }, + { + "type": "website", + "url": "https://swiftmailer.symfony.com", + "comment": "as detected from Composer manifest 'homepage'" + }, + { + "type": "issue-tracker", + "url": "https://github.com/swiftmailer/swiftmailer/issues", + "comment": "as detected from Composer manifest 'support.issues'" + }, + { + "type": "vcs", + "url": "https://github.com/swiftmailer/swiftmailer/tree/v6.3.0", + "comment": "as detected from Composer manifest 'support.source'" + } + ], + "properties": [ + { + "name": "cdx:composer:package:distReference", + "value": "8a5d5072dca8f48460fce2f4131fcc495eec654c" + }, + { + "name": "cdx:composer:package:sourceReference", + "value": "8a5d5072dca8f48460fce2f4131fcc495eec654c" + }, + { + "name": "cdx:composer:package:type", + "value": "library" + } + ] + }, + { + "bom-ref": "symfony/console-5.4.16.0", + "type": "library", + "name": "console", + "version": "v5.4.16", + "group": "symfony", + "description": "Eases the creation of beautiful and testable command line interfaces", + "author": "Fabien Potencier, Symfony Community", + "licenses": [ + { + "license": { + "id": "MIT", + "acknowledgement": "declared" + } + } + ], + "purl": "pkg:composer/symfony/console@v5.4.16", + "externalReferences": [ + { + "type": "distribution", + "url": "https://api.github.com/repos/symfony/console/zipball/8e9b9c8dfb33af6057c94e1b44846bee700dc5ef", + "comment": "dist reference: 8e9b9c8dfb33af6057c94e1b44846bee700dc5ef" + }, + { + "type": "vcs", + "url": "https://github.com/symfony/console.git", + "comment": "source reference: 8e9b9c8dfb33af6057c94e1b44846bee700dc5ef" + }, + { + "type": "website", + "url": "https://symfony.com", + "comment": "as detected from Composer manifest 'homepage'" + }, + { + "type": "vcs", + "url": "https://github.com/symfony/console/tree/v5.4.16", + "comment": "as detected from Composer manifest 'support.source'" + } + ], + "properties": [ + { + "name": "cdx:composer:package:distReference", + "value": "8e9b9c8dfb33af6057c94e1b44846bee700dc5ef" + }, + { + "name": "cdx:composer:package:sourceReference", + "value": "8e9b9c8dfb33af6057c94e1b44846bee700dc5ef" + }, + { + "name": "cdx:composer:package:type", + "value": "library" + } + ] + }, + { + "bom-ref": "symfony/css-selector-5.4.11.0", + "type": "library", + "name": "css-selector", + "version": "v5.4.11", + "group": "symfony", + "description": "Converts CSS selectors to XPath expressions", + "author": "Fabien Potencier, Jean-Fran\u00e7ois Simon, Symfony Community", + "licenses": [ + { + "license": { + "id": "MIT", + "acknowledgement": "declared" + } + } + ], + "purl": "pkg:composer/symfony/css-selector@v5.4.11", + "externalReferences": [ + { + "type": "distribution", + "url": "https://api.github.com/repos/symfony/css-selector/zipball/c1681789f059ab756001052164726ae88512ae3d", + "comment": "dist reference: c1681789f059ab756001052164726ae88512ae3d" + }, + { + "type": "vcs", + "url": "https://github.com/symfony/css-selector.git", + "comment": "source reference: c1681789f059ab756001052164726ae88512ae3d" + }, + { + "type": "website", + "url": "https://symfony.com", + "comment": "as detected from Composer manifest 'homepage'" + }, + { + "type": "vcs", + "url": "https://github.com/symfony/css-selector/tree/v5.4.11", + "comment": "as detected from Composer manifest 'support.source'" + } + ], + "properties": [ + { + "name": "cdx:composer:package:distReference", + "value": "c1681789f059ab756001052164726ae88512ae3d" + }, + { + "name": "cdx:composer:package:sourceReference", + "value": "c1681789f059ab756001052164726ae88512ae3d" + }, + { + "name": "cdx:composer:package:type", + "value": "library" + } + ] + }, + { + "bom-ref": "symfony/deprecation-contracts-2.5.2.0", + "type": "library", + "name": "deprecation-contracts", + "version": "v2.5.2", + "group": "symfony", + "description": "A generic function and convention to trigger deprecation notices", + "author": "Nicolas Grekas, Symfony Community", + "licenses": [ + { + "license": { + "id": "MIT", + "acknowledgement": "declared" + } + } + ], + "purl": "pkg:composer/symfony/deprecation-contracts@v2.5.2", + "externalReferences": [ + { + "type": "distribution", + "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/e8b495ea28c1d97b5e0c121748d6f9b53d075c66", + "comment": "dist reference: e8b495ea28c1d97b5e0c121748d6f9b53d075c66" + }, + { + "type": "vcs", + "url": "https://github.com/symfony/deprecation-contracts.git", + "comment": "source reference: e8b495ea28c1d97b5e0c121748d6f9b53d075c66" + }, + { + "type": "website", + "url": "https://symfony.com", + "comment": "as detected from Composer manifest 'homepage'" + }, + { + "type": "vcs", + "url": "https://github.com/symfony/deprecation-contracts/tree/v2.5.2", + "comment": "as detected from Composer manifest 'support.source'" + } + ], + "properties": [ + { + "name": "cdx:composer:package:distReference", + "value": "e8b495ea28c1d97b5e0c121748d6f9b53d075c66" + }, + { + "name": "cdx:composer:package:sourceReference", + "value": "e8b495ea28c1d97b5e0c121748d6f9b53d075c66" + }, + { + "name": "cdx:composer:package:type", + "value": "library" + } + ] + }, + { + "bom-ref": "symfony/error-handler-5.4.15.0", + "type": "library", + "name": "error-handler", + "version": "v5.4.15", + "group": "symfony", + "description": "Provides tools to manage errors and ease debugging PHP code", + "author": "Fabien Potencier, Symfony Community", + "licenses": [ + { + "license": { + "id": "MIT", + "acknowledgement": "declared" + } + } + ], + "purl": "pkg:composer/symfony/error-handler@v5.4.15", + "externalReferences": [ + { + "type": "distribution", + "url": "https://api.github.com/repos/symfony/error-handler/zipball/539cf1428b8442303c6e876ad7bf5a7babd91091", + "comment": "dist reference: 539cf1428b8442303c6e876ad7bf5a7babd91091" + }, + { + "type": "vcs", + "url": "https://github.com/symfony/error-handler.git", + "comment": "source reference: 539cf1428b8442303c6e876ad7bf5a7babd91091" + }, + { + "type": "website", + "url": "https://symfony.com", + "comment": "as detected from Composer manifest 'homepage'" + }, + { + "type": "vcs", + "url": "https://github.com/symfony/error-handler/tree/v5.4.15", + "comment": "as detected from Composer manifest 'support.source'" + } + ], + "properties": [ + { + "name": "cdx:composer:package:distReference", + "value": "539cf1428b8442303c6e876ad7bf5a7babd91091" + }, + { + "name": "cdx:composer:package:sourceReference", + "value": "539cf1428b8442303c6e876ad7bf5a7babd91091" + }, + { + "name": "cdx:composer:package:type", + "value": "library" + } + ] + }, + { + "bom-ref": "symfony/event-dispatcher-5.4.9.0", + "type": "library", + "name": "event-dispatcher", + "version": "v5.4.9", + "group": "symfony", + "description": "Provides tools that allow your application components to communicate with each other by dispatching events and listening to them", + "author": "Fabien Potencier, Symfony Community", + "licenses": [ + { + "license": { + "id": "MIT", + "acknowledgement": "declared" + } + } + ], + "purl": "pkg:composer/symfony/event-dispatcher@v5.4.9", + "externalReferences": [ + { + "type": "distribution", + "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/8e6ce1cc0279e3ff3c8ff0f43813bc88d21ca1bc", + "comment": "dist reference: 8e6ce1cc0279e3ff3c8ff0f43813bc88d21ca1bc" + }, + { + "type": "vcs", + "url": "https://github.com/symfony/event-dispatcher.git", + "comment": "source reference: 8e6ce1cc0279e3ff3c8ff0f43813bc88d21ca1bc" + }, + { + "type": "website", + "url": "https://symfony.com", + "comment": "as detected from Composer manifest 'homepage'" + }, + { + "type": "vcs", + "url": "https://github.com/symfony/event-dispatcher/tree/v5.4.9", + "comment": "as detected from Composer manifest 'support.source'" + } + ], + "properties": [ + { + "name": "cdx:composer:package:distReference", + "value": "8e6ce1cc0279e3ff3c8ff0f43813bc88d21ca1bc" + }, + { + "name": "cdx:composer:package:sourceReference", + "value": "8e6ce1cc0279e3ff3c8ff0f43813bc88d21ca1bc" + }, + { + "name": "cdx:composer:package:type", + "value": "library" + } + ] + }, + { + "bom-ref": "symfony/event-dispatcher-contracts-2.5.2.0", + "type": "library", + "name": "event-dispatcher-contracts", + "version": "v2.5.2", + "group": "symfony", + "description": "Generic abstractions related to dispatching event", + "author": "Nicolas Grekas, Symfony Community", + "licenses": [ + { + "license": { + "id": "MIT", + "acknowledgement": "declared" + } + } + ], + "purl": "pkg:composer/symfony/event-dispatcher-contracts@v2.5.2", + "externalReferences": [ + { + "type": "distribution", + "url": "https://api.github.com/repos/symfony/event-dispatcher-contracts/zipball/f98b54df6ad059855739db6fcbc2d36995283fe1", + "comment": "dist reference: f98b54df6ad059855739db6fcbc2d36995283fe1" + }, + { + "type": "vcs", + "url": "https://github.com/symfony/event-dispatcher-contracts.git", + "comment": "source reference: f98b54df6ad059855739db6fcbc2d36995283fe1" + }, + { + "type": "website", + "url": "https://symfony.com", + "comment": "as detected from Composer manifest 'homepage'" + }, + { + "type": "vcs", + "url": "https://github.com/symfony/event-dispatcher-contracts/tree/v2.5.2", + "comment": "as detected from Composer manifest 'support.source'" + } + ], + "properties": [ + { + "name": "cdx:composer:package:distReference", + "value": "f98b54df6ad059855739db6fcbc2d36995283fe1" + }, + { + "name": "cdx:composer:package:sourceReference", + "value": "f98b54df6ad059855739db6fcbc2d36995283fe1" + }, + { + "name": "cdx:composer:package:type", + "value": "library" + } + ] + }, + { + "bom-ref": "symfony/finder-5.4.11.0", + "type": "library", + "name": "finder", + "version": "v5.4.11", + "group": "symfony", + "description": "Finds files and directories via an intuitive fluent interface", + "author": "Fabien Potencier, Symfony Community", + "licenses": [ + { + "license": { + "id": "MIT", + "acknowledgement": "declared" + } + } + ], + "purl": "pkg:composer/symfony/finder@v5.4.11", + "externalReferences": [ + { + "type": "distribution", + "url": "https://api.github.com/repos/symfony/finder/zipball/7872a66f57caffa2916a584db1aa7f12adc76f8c", + "comment": "dist reference: 7872a66f57caffa2916a584db1aa7f12adc76f8c" + }, + { + "type": "vcs", + "url": "https://github.com/symfony/finder.git", + "comment": "source reference: 7872a66f57caffa2916a584db1aa7f12adc76f8c" + }, + { + "type": "website", + "url": "https://symfony.com", + "comment": "as detected from Composer manifest 'homepage'" + }, + { + "type": "vcs", + "url": "https://github.com/symfony/finder/tree/v5.4.11", + "comment": "as detected from Composer manifest 'support.source'" + } + ], + "properties": [ + { + "name": "cdx:composer:package:distReference", + "value": "7872a66f57caffa2916a584db1aa7f12adc76f8c" + }, + { + "name": "cdx:composer:package:sourceReference", + "value": "7872a66f57caffa2916a584db1aa7f12adc76f8c" + }, + { + "name": "cdx:composer:package:type", + "value": "library" + } + ] + }, + { + "bom-ref": "symfony/http-foundation-5.4.16.0", + "type": "library", + "name": "http-foundation", + "version": "v5.4.16", + "group": "symfony", + "description": "Defines an object-oriented layer for the HTTP specification", + "author": "Fabien Potencier, Symfony Community", + "licenses": [ + { + "license": { + "id": "MIT", + "acknowledgement": "declared" + } + } + ], + "purl": "pkg:composer/symfony/http-foundation@v5.4.16", + "externalReferences": [ + { + "type": "distribution", + "url": "https://api.github.com/repos/symfony/http-foundation/zipball/5032c5849aef24741e1970cb03511b0dd131d838", + "comment": "dist reference: 5032c5849aef24741e1970cb03511b0dd131d838" + }, + { + "type": "vcs", + "url": "https://github.com/symfony/http-foundation.git", + "comment": "source reference: 5032c5849aef24741e1970cb03511b0dd131d838" + }, + { + "type": "website", + "url": "https://symfony.com", + "comment": "as detected from Composer manifest 'homepage'" + }, + { + "type": "vcs", + "url": "https://github.com/symfony/http-foundation/tree/v5.4.16", + "comment": "as detected from Composer manifest 'support.source'" + } + ], + "properties": [ + { + "name": "cdx:composer:package:distReference", + "value": "5032c5849aef24741e1970cb03511b0dd131d838" + }, + { + "name": "cdx:composer:package:sourceReference", + "value": "5032c5849aef24741e1970cb03511b0dd131d838" + }, + { + "name": "cdx:composer:package:type", + "value": "library" + } + ] + }, + { + "bom-ref": "symfony/http-kernel-5.4.16.0", + "type": "library", + "name": "http-kernel", + "version": "v5.4.16", + "group": "symfony", + "description": "Provides a structured process for converting a Request into a Response", + "author": "Fabien Potencier, Symfony Community", + "licenses": [ + { + "license": { + "id": "MIT", + "acknowledgement": "declared" + } + } + ], + "purl": "pkg:composer/symfony/http-kernel@v5.4.16", + "externalReferences": [ + { + "type": "distribution", + "url": "https://api.github.com/repos/symfony/http-kernel/zipball/b432c57c5de73634b1859093c1f58e3cd84455a1", + "comment": "dist reference: b432c57c5de73634b1859093c1f58e3cd84455a1" + }, + { + "type": "vcs", + "url": "https://github.com/symfony/http-kernel.git", + "comment": "source reference: b432c57c5de73634b1859093c1f58e3cd84455a1" + }, + { + "type": "website", + "url": "https://symfony.com", + "comment": "as detected from Composer manifest 'homepage'" + }, + { + "type": "vcs", + "url": "https://github.com/symfony/http-kernel/tree/v5.4.16", + "comment": "as detected from Composer manifest 'support.source'" + } + ], + "properties": [ + { + "name": "cdx:composer:package:distReference", + "value": "b432c57c5de73634b1859093c1f58e3cd84455a1" + }, + { + "name": "cdx:composer:package:sourceReference", + "value": "b432c57c5de73634b1859093c1f58e3cd84455a1" + }, + { + "name": "cdx:composer:package:type", + "value": "library" + } + ] + }, + { + "bom-ref": "symfony/mime-5.4.16.0", + "type": "library", + "name": "mime", + "version": "v5.4.16", + "group": "symfony", + "description": "Allows manipulating MIME messages", + "author": "Fabien Potencier, Symfony Community", + "licenses": [ + { + "license": { + "id": "MIT", + "acknowledgement": "declared" + } + } + ], + "purl": "pkg:composer/symfony/mime@v5.4.16", + "externalReferences": [ + { + "type": "distribution", + "url": "https://api.github.com/repos/symfony/mime/zipball/46eeedb08f0832b1b61a84c612d945fc85ee4734", + "comment": "dist reference: 46eeedb08f0832b1b61a84c612d945fc85ee4734" + }, + { + "type": "vcs", + "url": "https://github.com/symfony/mime.git", + "comment": "source reference: 46eeedb08f0832b1b61a84c612d945fc85ee4734" + }, + { + "type": "website", + "url": "https://symfony.com", + "comment": "as detected from Composer manifest 'homepage'" + }, + { + "type": "vcs", + "url": "https://github.com/symfony/mime/tree/v5.4.16", + "comment": "as detected from Composer manifest 'support.source'" + } + ], + "properties": [ + { + "name": "cdx:composer:package:distReference", + "value": "46eeedb08f0832b1b61a84c612d945fc85ee4734" + }, + { + "name": "cdx:composer:package:sourceReference", + "value": "46eeedb08f0832b1b61a84c612d945fc85ee4734" + }, + { + "name": "cdx:composer:package:type", + "value": "library" + } + ] + }, + { + "bom-ref": "symfony/polyfill-ctype-1.27.0.0", + "type": "library", + "name": "polyfill-ctype", + "version": "v1.27.0", + "group": "symfony", + "description": "Symfony polyfill for ctype functions", + "author": "Gert de Pagter, Symfony Community", + "licenses": [ + { + "license": { + "id": "MIT", + "acknowledgement": "declared" + } + } + ], + "purl": "pkg:composer/symfony/polyfill-ctype@v1.27.0", + "externalReferences": [ + { + "type": "distribution", + "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/5bbc823adecdae860bb64756d639ecfec17b050a", + "comment": "dist reference: 5bbc823adecdae860bb64756d639ecfec17b050a" + }, + { + "type": "vcs", + "url": "https://github.com/symfony/polyfill-ctype.git", + "comment": "source reference: 5bbc823adecdae860bb64756d639ecfec17b050a" + }, + { + "type": "website", + "url": "https://symfony.com", + "comment": "as detected from Composer manifest 'homepage'" + }, + { + "type": "vcs", + "url": "https://github.com/symfony/polyfill-ctype/tree/v1.27.0", + "comment": "as detected from Composer manifest 'support.source'" + } + ], + "properties": [ + { + "name": "cdx:composer:package:distReference", + "value": "5bbc823adecdae860bb64756d639ecfec17b050a" + }, + { + "name": "cdx:composer:package:sourceReference", + "value": "5bbc823adecdae860bb64756d639ecfec17b050a" + }, + { + "name": "cdx:composer:package:type", + "value": "library" + } + ] + }, + { + "bom-ref": "symfony/polyfill-iconv-1.27.0.0", + "type": "library", + "name": "polyfill-iconv", + "version": "v1.27.0", + "group": "symfony", + "description": "Symfony polyfill for the Iconv extension", + "author": "Nicolas Grekas, Symfony Community", + "licenses": [ + { + "license": { + "id": "MIT", + "acknowledgement": "declared" + } + } + ], + "purl": "pkg:composer/symfony/polyfill-iconv@v1.27.0", + "externalReferences": [ + { + "type": "distribution", + "url": "https://api.github.com/repos/symfony/polyfill-iconv/zipball/927013f3aac555983a5059aada98e1907d842695", + "comment": "dist reference: 927013f3aac555983a5059aada98e1907d842695" + }, + { + "type": "vcs", + "url": "https://github.com/symfony/polyfill-iconv.git", + "comment": "source reference: 927013f3aac555983a5059aada98e1907d842695" + }, + { + "type": "website", + "url": "https://symfony.com", + "comment": "as detected from Composer manifest 'homepage'" + }, + { + "type": "vcs", + "url": "https://github.com/symfony/polyfill-iconv/tree/v1.27.0", + "comment": "as detected from Composer manifest 'support.source'" + } + ], + "properties": [ + { + "name": "cdx:composer:package:distReference", + "value": "927013f3aac555983a5059aada98e1907d842695" + }, + { + "name": "cdx:composer:package:sourceReference", + "value": "927013f3aac555983a5059aada98e1907d842695" + }, + { + "name": "cdx:composer:package:type", + "value": "library" + } + ] + }, + { + "bom-ref": "symfony/polyfill-intl-grapheme-1.27.0.0", + "type": "library", + "name": "polyfill-intl-grapheme", + "version": "v1.27.0", + "group": "symfony", + "description": "Symfony polyfill for intl's grapheme_* functions", + "author": "Nicolas Grekas, Symfony Community", + "licenses": [ + { + "license": { + "id": "MIT", + "acknowledgement": "declared" + } + } + ], + "purl": "pkg:composer/symfony/polyfill-intl-grapheme@v1.27.0", + "externalReferences": [ + { + "type": "distribution", + "url": "https://api.github.com/repos/symfony/polyfill-intl-grapheme/zipball/511a08c03c1960e08a883f4cffcacd219b758354", + "comment": "dist reference: 511a08c03c1960e08a883f4cffcacd219b758354" + }, + { + "type": "vcs", + "url": "https://github.com/symfony/polyfill-intl-grapheme.git", + "comment": "source reference: 511a08c03c1960e08a883f4cffcacd219b758354" + }, + { + "type": "website", + "url": "https://symfony.com", + "comment": "as detected from Composer manifest 'homepage'" + }, + { + "type": "vcs", + "url": "https://github.com/symfony/polyfill-intl-grapheme/tree/v1.27.0", + "comment": "as detected from Composer manifest 'support.source'" + } + ], + "properties": [ + { + "name": "cdx:composer:package:distReference", + "value": "511a08c03c1960e08a883f4cffcacd219b758354" + }, + { + "name": "cdx:composer:package:sourceReference", + "value": "511a08c03c1960e08a883f4cffcacd219b758354" + }, + { + "name": "cdx:composer:package:type", + "value": "library" + } + ] + }, + { + "bom-ref": "symfony/polyfill-intl-idn-1.27.0.0", + "type": "library", + "name": "polyfill-intl-idn", + "version": "v1.27.0", + "group": "symfony", + "description": "Symfony polyfill for intl's idn_to_ascii and idn_to_utf8 functions", + "author": "Laurent Bassin, Trevor Rowbotham, Symfony Community", + "licenses": [ + { + "license": { + "id": "MIT", + "acknowledgement": "declared" + } + } + ], + "purl": "pkg:composer/symfony/polyfill-intl-idn@v1.27.0", + "externalReferences": [ + { + "type": "distribution", + "url": "https://api.github.com/repos/symfony/polyfill-intl-idn/zipball/639084e360537a19f9ee352433b84ce831f3d2da", + "comment": "dist reference: 639084e360537a19f9ee352433b84ce831f3d2da" + }, + { + "type": "vcs", + "url": "https://github.com/symfony/polyfill-intl-idn.git", + "comment": "source reference: 639084e360537a19f9ee352433b84ce831f3d2da" + }, + { + "type": "website", + "url": "https://symfony.com", + "comment": "as detected from Composer manifest 'homepage'" + }, + { + "type": "vcs", + "url": "https://github.com/symfony/polyfill-intl-idn/tree/v1.27.0", + "comment": "as detected from Composer manifest 'support.source'" + } + ], + "properties": [ + { + "name": "cdx:composer:package:distReference", + "value": "639084e360537a19f9ee352433b84ce831f3d2da" + }, + { + "name": "cdx:composer:package:sourceReference", + "value": "639084e360537a19f9ee352433b84ce831f3d2da" + }, + { + "name": "cdx:composer:package:type", + "value": "library" + } + ] + }, + { + "bom-ref": "symfony/polyfill-intl-normalizer-1.27.0.0", + "type": "library", + "name": "polyfill-intl-normalizer", + "version": "v1.27.0", + "group": "symfony", + "description": "Symfony polyfill for intl's Normalizer class and related functions", + "author": "Nicolas Grekas, Symfony Community", + "licenses": [ + { + "license": { + "id": "MIT", + "acknowledgement": "declared" + } + } + ], + "purl": "pkg:composer/symfony/polyfill-intl-normalizer@v1.27.0", + "externalReferences": [ + { + "type": "distribution", + "url": "https://api.github.com/repos/symfony/polyfill-intl-normalizer/zipball/19bd1e4fcd5b91116f14d8533c57831ed00571b6", + "comment": "dist reference: 19bd1e4fcd5b91116f14d8533c57831ed00571b6" + }, + { + "type": "vcs", + "url": "https://github.com/symfony/polyfill-intl-normalizer.git", + "comment": "source reference: 19bd1e4fcd5b91116f14d8533c57831ed00571b6" + }, + { + "type": "website", + "url": "https://symfony.com", + "comment": "as detected from Composer manifest 'homepage'" + }, + { + "type": "vcs", + "url": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.27.0", + "comment": "as detected from Composer manifest 'support.source'" + } + ], + "properties": [ + { + "name": "cdx:composer:package:distReference", + "value": "19bd1e4fcd5b91116f14d8533c57831ed00571b6" + }, + { + "name": "cdx:composer:package:sourceReference", + "value": "19bd1e4fcd5b91116f14d8533c57831ed00571b6" + }, + { + "name": "cdx:composer:package:type", + "value": "library" + } + ] + }, + { + "bom-ref": "symfony/polyfill-mbstring-1.27.0.0", + "type": "library", + "name": "polyfill-mbstring", + "version": "v1.27.0", + "group": "symfony", + "description": "Symfony polyfill for the Mbstring extension", + "author": "Nicolas Grekas, Symfony Community", + "licenses": [ + { + "license": { + "id": "MIT", + "acknowledgement": "declared" + } + } + ], + "purl": "pkg:composer/symfony/polyfill-mbstring@v1.27.0", + "externalReferences": [ + { + "type": "distribution", + "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/8ad114f6b39e2c98a8b0e3bd907732c207c2b534", + "comment": "dist reference: 8ad114f6b39e2c98a8b0e3bd907732c207c2b534" + }, + { + "type": "vcs", + "url": "https://github.com/symfony/polyfill-mbstring.git", + "comment": "source reference: 8ad114f6b39e2c98a8b0e3bd907732c207c2b534" + }, + { + "type": "website", + "url": "https://symfony.com", + "comment": "as detected from Composer manifest 'homepage'" + }, + { + "type": "vcs", + "url": "https://github.com/symfony/polyfill-mbstring/tree/v1.27.0", + "comment": "as detected from Composer manifest 'support.source'" + } + ], + "properties": [ + { + "name": "cdx:composer:package:distReference", + "value": "8ad114f6b39e2c98a8b0e3bd907732c207c2b534" + }, + { + "name": "cdx:composer:package:sourceReference", + "value": "8ad114f6b39e2c98a8b0e3bd907732c207c2b534" + }, + { + "name": "cdx:composer:package:type", + "value": "library" + } + ] + }, + { + "bom-ref": "symfony/polyfill-php72-1.27.0.0", + "type": "library", + "name": "polyfill-php72", + "version": "v1.27.0", + "group": "symfony", + "description": "Symfony polyfill backporting some PHP 7.2+ features to lower PHP versions", + "author": "Nicolas Grekas, Symfony Community", + "licenses": [ + { + "license": { + "id": "MIT", + "acknowledgement": "declared" + } + } + ], + "purl": "pkg:composer/symfony/polyfill-php72@v1.27.0", + "externalReferences": [ + { + "type": "distribution", + "url": "https://api.github.com/repos/symfony/polyfill-php72/zipball/869329b1e9894268a8a61dabb69153029b7a8c97", + "comment": "dist reference: 869329b1e9894268a8a61dabb69153029b7a8c97" + }, + { + "type": "vcs", + "url": "https://github.com/symfony/polyfill-php72.git", + "comment": "source reference: 869329b1e9894268a8a61dabb69153029b7a8c97" + }, + { + "type": "website", + "url": "https://symfony.com", + "comment": "as detected from Composer manifest 'homepage'" + }, + { + "type": "vcs", + "url": "https://github.com/symfony/polyfill-php72/tree/v1.27.0", + "comment": "as detected from Composer manifest 'support.source'" + } + ], + "properties": [ + { + "name": "cdx:composer:package:distReference", + "value": "869329b1e9894268a8a61dabb69153029b7a8c97" + }, + { + "name": "cdx:composer:package:sourceReference", + "value": "869329b1e9894268a8a61dabb69153029b7a8c97" + }, + { + "name": "cdx:composer:package:type", + "value": "library" + } + ] + }, + { + "bom-ref": "symfony/polyfill-php73-1.27.0.0", + "type": "library", + "name": "polyfill-php73", + "version": "v1.27.0", + "group": "symfony", + "description": "Symfony polyfill backporting some PHP 7.3+ features to lower PHP versions", + "author": "Nicolas Grekas, Symfony Community", + "licenses": [ + { + "license": { + "id": "MIT", + "acknowledgement": "declared" + } + } + ], + "purl": "pkg:composer/symfony/polyfill-php73@v1.27.0", + "externalReferences": [ + { + "type": "distribution", + "url": "https://api.github.com/repos/symfony/polyfill-php73/zipball/9e8ecb5f92152187c4799efd3c96b78ccab18ff9", + "comment": "dist reference: 9e8ecb5f92152187c4799efd3c96b78ccab18ff9" + }, + { + "type": "vcs", + "url": "https://github.com/symfony/polyfill-php73.git", + "comment": "source reference: 9e8ecb5f92152187c4799efd3c96b78ccab18ff9" + }, + { + "type": "website", + "url": "https://symfony.com", + "comment": "as detected from Composer manifest 'homepage'" + }, + { + "type": "vcs", + "url": "https://github.com/symfony/polyfill-php73/tree/v1.27.0", + "comment": "as detected from Composer manifest 'support.source'" + } + ], + "properties": [ + { + "name": "cdx:composer:package:distReference", + "value": "9e8ecb5f92152187c4799efd3c96b78ccab18ff9" + }, + { + "name": "cdx:composer:package:sourceReference", + "value": "9e8ecb5f92152187c4799efd3c96b78ccab18ff9" + }, + { + "name": "cdx:composer:package:type", + "value": "library" + } + ] + }, + { + "bom-ref": "symfony/polyfill-php80-1.27.0.0", + "type": "library", + "name": "polyfill-php80", + "version": "v1.27.0", + "group": "symfony", + "description": "Symfony polyfill backporting some PHP 8.0+ features to lower PHP versions", + "author": "Ion Bazan, Nicolas Grekas, Symfony Community", + "licenses": [ + { + "license": { + "id": "MIT", + "acknowledgement": "declared" + } + } + ], + "purl": "pkg:composer/symfony/polyfill-php80@v1.27.0", + "externalReferences": [ + { + "type": "distribution", + "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/7a6ff3f1959bb01aefccb463a0f2cd3d3d2fd936", + "comment": "dist reference: 7a6ff3f1959bb01aefccb463a0f2cd3d3d2fd936" + }, + { + "type": "vcs", + "url": "https://github.com/symfony/polyfill-php80.git", + "comment": "source reference: 7a6ff3f1959bb01aefccb463a0f2cd3d3d2fd936" + }, + { + "type": "website", + "url": "https://symfony.com", + "comment": "as detected from Composer manifest 'homepage'" + }, + { + "type": "vcs", + "url": "https://github.com/symfony/polyfill-php80/tree/v1.27.0", + "comment": "as detected from Composer manifest 'support.source'" + } + ], + "properties": [ + { + "name": "cdx:composer:package:distReference", + "value": "7a6ff3f1959bb01aefccb463a0f2cd3d3d2fd936" + }, + { + "name": "cdx:composer:package:sourceReference", + "value": "7a6ff3f1959bb01aefccb463a0f2cd3d3d2fd936" + }, + { + "name": "cdx:composer:package:type", + "value": "library" + } + ] + }, + { + "bom-ref": "symfony/polyfill-php81-1.27.0.0", + "type": "library", + "name": "polyfill-php81", + "version": "v1.27.0", + "group": "symfony", + "description": "Symfony polyfill backporting some PHP 8.1+ features to lower PHP versions", + "author": "Nicolas Grekas, Symfony Community", + "licenses": [ + { + "license": { + "id": "MIT", + "acknowledgement": "declared" + } + } + ], + "purl": "pkg:composer/symfony/polyfill-php81@v1.27.0", + "externalReferences": [ + { + "type": "distribution", + "url": "https://api.github.com/repos/symfony/polyfill-php81/zipball/707403074c8ea6e2edaf8794b0157a0bfa52157a", + "comment": "dist reference: 707403074c8ea6e2edaf8794b0157a0bfa52157a" + }, + { + "type": "vcs", + "url": "https://github.com/symfony/polyfill-php81.git", + "comment": "source reference: 707403074c8ea6e2edaf8794b0157a0bfa52157a" + }, + { + "type": "website", + "url": "https://symfony.com", + "comment": "as detected from Composer manifest 'homepage'" + }, + { + "type": "vcs", + "url": "https://github.com/symfony/polyfill-php81/tree/v1.27.0", + "comment": "as detected from Composer manifest 'support.source'" + } + ], + "properties": [ + { + "name": "cdx:composer:package:distReference", + "value": "707403074c8ea6e2edaf8794b0157a0bfa52157a" + }, + { + "name": "cdx:composer:package:sourceReference", + "value": "707403074c8ea6e2edaf8794b0157a0bfa52157a" + }, + { + "name": "cdx:composer:package:type", + "value": "library" + } + ] + }, + { + "bom-ref": "symfony/process-5.4.11.0", + "type": "library", + "name": "process", + "version": "v5.4.11", + "group": "symfony", + "description": "Executes commands in sub-processes", + "author": "Fabien Potencier, Symfony Community", + "licenses": [ + { + "license": { + "id": "MIT", + "acknowledgement": "declared" + } + } + ], + "purl": "pkg:composer/symfony/process@v5.4.11", + "externalReferences": [ + { + "type": "distribution", + "url": "https://api.github.com/repos/symfony/process/zipball/6e75fe6874cbc7e4773d049616ab450eff537bf1", + "comment": "dist reference: 6e75fe6874cbc7e4773d049616ab450eff537bf1" + }, + { + "type": "vcs", + "url": "https://github.com/symfony/process.git", + "comment": "source reference: 6e75fe6874cbc7e4773d049616ab450eff537bf1" + }, + { + "type": "website", + "url": "https://symfony.com", + "comment": "as detected from Composer manifest 'homepage'" + }, + { + "type": "vcs", + "url": "https://github.com/symfony/process/tree/v5.4.11", + "comment": "as detected from Composer manifest 'support.source'" + } + ], + "properties": [ + { + "name": "cdx:composer:package:distReference", + "value": "6e75fe6874cbc7e4773d049616ab450eff537bf1" + }, + { + "name": "cdx:composer:package:sourceReference", + "value": "6e75fe6874cbc7e4773d049616ab450eff537bf1" + }, + { + "name": "cdx:composer:package:type", + "value": "library" + } + ] + }, + { + "bom-ref": "symfony/routing-5.4.15.0", + "type": "library", + "name": "routing", + "version": "v5.4.15", + "group": "symfony", + "description": "Maps an HTTP request to a set of configuration variables", + "author": "Fabien Potencier, Symfony Community", + "licenses": [ + { + "license": { + "id": "MIT", + "acknowledgement": "declared" + } + } + ], + "purl": "pkg:composer/symfony/routing@v5.4.15", + "externalReferences": [ + { + "type": "distribution", + "url": "https://api.github.com/repos/symfony/routing/zipball/5c9b129efe9abce9470e384bf65d8a7e262eee69", + "comment": "dist reference: 5c9b129efe9abce9470e384bf65d8a7e262eee69" + }, + { + "type": "vcs", + "url": "https://github.com/symfony/routing.git", + "comment": "source reference: 5c9b129efe9abce9470e384bf65d8a7e262eee69" + }, + { + "type": "website", + "url": "https://symfony.com", + "comment": "as detected from Composer manifest 'homepage'" + }, + { + "type": "vcs", + "url": "https://github.com/symfony/routing/tree/v5.4.15", + "comment": "as detected from Composer manifest 'support.source'" + } + ], + "properties": [ + { + "name": "cdx:composer:package:distReference", + "value": "5c9b129efe9abce9470e384bf65d8a7e262eee69" + }, + { + "name": "cdx:composer:package:sourceReference", + "value": "5c9b129efe9abce9470e384bf65d8a7e262eee69" + }, + { + "name": "cdx:composer:package:type", + "value": "library" + } + ] + }, + { + "bom-ref": "symfony/service-contracts-2.5.2.0", + "type": "library", + "name": "service-contracts", + "version": "v2.5.2", + "group": "symfony", + "description": "Generic abstractions related to writing services", + "author": "Nicolas Grekas, Symfony Community", + "licenses": [ + { + "license": { + "id": "MIT", + "acknowledgement": "declared" + } + } + ], + "purl": "pkg:composer/symfony/service-contracts@v2.5.2", + "externalReferences": [ + { + "type": "distribution", + "url": "https://api.github.com/repos/symfony/service-contracts/zipball/4b426aac47d6427cc1a1d0f7e2ac724627f5966c", + "comment": "dist reference: 4b426aac47d6427cc1a1d0f7e2ac724627f5966c" + }, + { + "type": "vcs", + "url": "https://github.com/symfony/service-contracts.git", + "comment": "source reference: 4b426aac47d6427cc1a1d0f7e2ac724627f5966c" + }, + { + "type": "website", + "url": "https://symfony.com", + "comment": "as detected from Composer manifest 'homepage'" + }, + { + "type": "vcs", + "url": "https://github.com/symfony/service-contracts/tree/v2.5.2", + "comment": "as detected from Composer manifest 'support.source'" + } + ], + "properties": [ + { + "name": "cdx:composer:package:distReference", + "value": "4b426aac47d6427cc1a1d0f7e2ac724627f5966c" + }, + { + "name": "cdx:composer:package:sourceReference", + "value": "4b426aac47d6427cc1a1d0f7e2ac724627f5966c" + }, + { + "name": "cdx:composer:package:type", + "value": "library" + } + ] + }, + { + "bom-ref": "symfony/string-5.4.15.0", + "type": "library", + "name": "string", + "version": "v5.4.15", + "group": "symfony", + "description": "Provides an object-oriented API to strings and deals with bytes, UTF-8 code points and grapheme clusters in a unified way", + "author": "Nicolas Grekas, Symfony Community", + "licenses": [ + { + "license": { + "id": "MIT", + "acknowledgement": "declared" + } + } + ], + "purl": "pkg:composer/symfony/string@v5.4.15", + "externalReferences": [ + { + "type": "distribution", + "url": "https://api.github.com/repos/symfony/string/zipball/571334ce9f687e3e6af72db4d3b2a9431e4fd9ed", + "comment": "dist reference: 571334ce9f687e3e6af72db4d3b2a9431e4fd9ed" + }, + { + "type": "vcs", + "url": "https://github.com/symfony/string.git", + "comment": "source reference: 571334ce9f687e3e6af72db4d3b2a9431e4fd9ed" + }, + { + "type": "website", + "url": "https://symfony.com", + "comment": "as detected from Composer manifest 'homepage'" + }, + { + "type": "vcs", + "url": "https://github.com/symfony/string/tree/v5.4.15", + "comment": "as detected from Composer manifest 'support.source'" + } + ], + "properties": [ + { + "name": "cdx:composer:package:distReference", + "value": "571334ce9f687e3e6af72db4d3b2a9431e4fd9ed" + }, + { + "name": "cdx:composer:package:sourceReference", + "value": "571334ce9f687e3e6af72db4d3b2a9431e4fd9ed" + }, + { + "name": "cdx:composer:package:type", + "value": "library" + } + ] + }, + { + "bom-ref": "symfony/translation-5.4.14.0", + "type": "library", + "name": "translation", + "version": "v5.4.14", + "group": "symfony", + "description": "Provides tools to internationalize your application", + "author": "Fabien Potencier, Symfony Community", + "licenses": [ + { + "license": { + "id": "MIT", + "acknowledgement": "declared" + } + } + ], + "purl": "pkg:composer/symfony/translation@v5.4.14", + "externalReferences": [ + { + "type": "distribution", + "url": "https://api.github.com/repos/symfony/translation/zipball/f0ed07675863aa6e3939df8b1bc879450b585cab", + "comment": "dist reference: f0ed07675863aa6e3939df8b1bc879450b585cab" + }, + { + "type": "vcs", + "url": "https://github.com/symfony/translation.git", + "comment": "source reference: f0ed07675863aa6e3939df8b1bc879450b585cab" + }, + { + "type": "website", + "url": "https://symfony.com", + "comment": "as detected from Composer manifest 'homepage'" + }, + { + "type": "vcs", + "url": "https://github.com/symfony/translation/tree/v5.4.14", + "comment": "as detected from Composer manifest 'support.source'" + } + ], + "properties": [ + { + "name": "cdx:composer:package:distReference", + "value": "f0ed07675863aa6e3939df8b1bc879450b585cab" + }, + { + "name": "cdx:composer:package:sourceReference", + "value": "f0ed07675863aa6e3939df8b1bc879450b585cab" + }, + { + "name": "cdx:composer:package:type", + "value": "library" + } + ] + }, + { + "bom-ref": "symfony/translation-contracts-2.5.2.0", + "type": "library", + "name": "translation-contracts", + "version": "v2.5.2", + "group": "symfony", + "description": "Generic abstractions related to translation", + "author": "Nicolas Grekas, Symfony Community", + "licenses": [ + { + "license": { + "id": "MIT", + "acknowledgement": "declared" + } + } + ], + "purl": "pkg:composer/symfony/translation-contracts@v2.5.2", + "externalReferences": [ + { + "type": "distribution", + "url": "https://api.github.com/repos/symfony/translation-contracts/zipball/136b19dd05cdf0709db6537d058bcab6dd6e2dbe", + "comment": "dist reference: 136b19dd05cdf0709db6537d058bcab6dd6e2dbe" + }, + { + "type": "vcs", + "url": "https://github.com/symfony/translation-contracts.git", + "comment": "source reference: 136b19dd05cdf0709db6537d058bcab6dd6e2dbe" + }, + { + "type": "website", + "url": "https://symfony.com", + "comment": "as detected from Composer manifest 'homepage'" + }, + { + "type": "vcs", + "url": "https://github.com/symfony/translation-contracts/tree/v2.5.2", + "comment": "as detected from Composer manifest 'support.source'" + } + ], + "properties": [ + { + "name": "cdx:composer:package:distReference", + "value": "136b19dd05cdf0709db6537d058bcab6dd6e2dbe" + }, + { + "name": "cdx:composer:package:sourceReference", + "value": "136b19dd05cdf0709db6537d058bcab6dd6e2dbe" + }, + { + "name": "cdx:composer:package:type", + "value": "library" + } + ] + }, + { + "bom-ref": "symfony/var-dumper-5.4.14.0", + "type": "library", + "name": "var-dumper", + "version": "v5.4.14", + "group": "symfony", + "description": "Provides mechanisms for walking through any arbitrary PHP variable", + "author": "Nicolas Grekas, Symfony Community", + "licenses": [ + { + "license": { + "id": "MIT", + "acknowledgement": "declared" + } + } + ], + "purl": "pkg:composer/symfony/var-dumper@v5.4.14", + "externalReferences": [ + { + "type": "distribution", + "url": "https://api.github.com/repos/symfony/var-dumper/zipball/6894d06145fefebd9a4c7272baa026a1c394a430", + "comment": "dist reference: 6894d06145fefebd9a4c7272baa026a1c394a430" + }, + { + "type": "vcs", + "url": "https://github.com/symfony/var-dumper.git", + "comment": "source reference: 6894d06145fefebd9a4c7272baa026a1c394a430" + }, + { + "type": "website", + "url": "https://symfony.com", + "comment": "as detected from Composer manifest 'homepage'" + }, + { + "type": "vcs", + "url": "https://github.com/symfony/var-dumper/tree/v5.4.14", + "comment": "as detected from Composer manifest 'support.source'" + } + ], + "properties": [ + { + "name": "cdx:composer:package:distReference", + "value": "6894d06145fefebd9a4c7272baa026a1c394a430" + }, + { + "name": "cdx:composer:package:sourceReference", + "value": "6894d06145fefebd9a4c7272baa026a1c394a430" + }, + { + "name": "cdx:composer:package:type", + "value": "library" + } + ] + }, + { + "bom-ref": "tijsverkoyen/css-to-inline-styles-2.2.5.0", + "type": "library", + "name": "css-to-inline-styles", + "version": "2.2.5", + "group": "tijsverkoyen", + "description": "CssToInlineStyles is a class that enables you to convert HTML-pages/files into HTML-pages/files with inline styles. This is very useful when you're sending emails.", + "author": "Tijs Verkoyen", + "licenses": [ + { + "license": { + "id": "BSD-3-Clause", + "acknowledgement": "declared" + } + } + ], + "purl": "pkg:composer/tijsverkoyen/css-to-inline-styles@2.2.5", + "externalReferences": [ + { + "type": "distribution", + "url": "https://api.github.com/repos/tijsverkoyen/CssToInlineStyles/zipball/4348a3a06651827a27d989ad1d13efec6bb49b19", + "comment": "dist reference: 4348a3a06651827a27d989ad1d13efec6bb49b19" + }, + { + "type": "vcs", + "url": "https://github.com/tijsverkoyen/CssToInlineStyles.git", + "comment": "source reference: 4348a3a06651827a27d989ad1d13efec6bb49b19" + }, + { + "type": "website", + "url": "https://github.com/tijsverkoyen/CssToInlineStyles", + "comment": "as detected from Composer manifest 'homepage'" + }, + { + "type": "issue-tracker", + "url": "https://github.com/tijsverkoyen/CssToInlineStyles/issues", + "comment": "as detected from Composer manifest 'support.issues'" + }, + { + "type": "vcs", + "url": "https://github.com/tijsverkoyen/CssToInlineStyles/tree/2.2.5", + "comment": "as detected from Composer manifest 'support.source'" + } + ], + "properties": [ + { + "name": "cdx:composer:package:distReference", + "value": "4348a3a06651827a27d989ad1d13efec6bb49b19" + }, + { + "name": "cdx:composer:package:sourceReference", + "value": "4348a3a06651827a27d989ad1d13efec6bb49b19" + }, + { + "name": "cdx:composer:package:type", + "value": "library" + } + ] + }, + { + "bom-ref": "vlucas/phpdotenv-4.3.0.0", + "type": "library", + "name": "phpdotenv", + "version": "v4.3.0", + "group": "vlucas", + "description": "Loads environment variables from `.env` to `getenv()`, `$_ENV` and `$_SERVER` automagically.", + "author": "Graham Campbell, Vance Lucas", + "licenses": [ + { + "license": { + "id": "BSD-3-Clause", + "acknowledgement": "declared" + } + } + ], + "purl": "pkg:composer/vlucas/phpdotenv@v4.3.0", + "externalReferences": [ + { + "type": "distribution", + "url": "https://api.github.com/repos/vlucas/phpdotenv/zipball/67a491df68208bef8c37092db11fa3885008efcf", + "comment": "dist reference: 67a491df68208bef8c37092db11fa3885008efcf" + }, + { + "type": "vcs", + "url": "https://github.com/vlucas/phpdotenv.git", + "comment": "source reference: 67a491df68208bef8c37092db11fa3885008efcf" + }, + { + "type": "issue-tracker", + "url": "https://github.com/vlucas/phpdotenv/issues", + "comment": "as detected from Composer manifest 'support.issues'" + }, + { + "type": "vcs", + "url": "https://github.com/vlucas/phpdotenv/tree/v4.3.0", + "comment": "as detected from Composer manifest 'support.source'" + } + ], + "properties": [ + { + "name": "cdx:composer:package:distReference", + "value": "67a491df68208bef8c37092db11fa3885008efcf" + }, + { + "name": "cdx:composer:package:sourceReference", + "value": "67a491df68208bef8c37092db11fa3885008efcf" + }, + { + "name": "cdx:composer:package:type", + "value": "library" + } + ] + }, + { + "bom-ref": "voku/portable-ascii-1.6.1.0", + "type": "library", + "name": "portable-ascii", + "version": "1.6.1", + "group": "voku", + "description": "Portable ASCII library - performance optimized (ascii) string functions for php.", + "author": "Lars Moelleken", + "licenses": [ + { + "license": { + "id": "MIT", + "acknowledgement": "declared" + } + } + ], + "purl": "pkg:composer/voku/portable-ascii@1.6.1", + "externalReferences": [ + { + "type": "distribution", + "url": "https://api.github.com/repos/voku/portable-ascii/zipball/87337c91b9dfacee02452244ee14ab3c43bc485a", + "comment": "dist reference: 87337c91b9dfacee02452244ee14ab3c43bc485a" + }, + { + "type": "vcs", + "url": "https://github.com/voku/portable-ascii.git", + "comment": "source reference: 87337c91b9dfacee02452244ee14ab3c43bc485a" + }, + { + "type": "website", + "url": "https://github.com/voku/portable-ascii", + "comment": "as detected from Composer manifest 'homepage'" + }, + { + "type": "issue-tracker", + "url": "https://github.com/voku/portable-ascii/issues", + "comment": "as detected from Composer manifest 'support.issues'" + }, + { + "type": "vcs", + "url": "https://github.com/voku/portable-ascii/tree/1.6.1", + "comment": "as detected from Composer manifest 'support.source'" + } + ], + "properties": [ + { + "name": "cdx:composer:package:distReference", + "value": "87337c91b9dfacee02452244ee14ab3c43bc485a" + }, + { + "name": "cdx:composer:package:sourceReference", + "value": "87337c91b9dfacee02452244ee14ab3c43bc485a" + }, + { + "name": "cdx:composer:package:type", + "value": "library" + } + ] + } + ], + "dependencies": [ + { + "ref": "asm89/stack-cors-1.3.0.0", + "dependsOn": [ + "symfony/http-foundation-5.4.16.0", + "symfony/http-kernel-5.4.16.0" + ] + }, + { + "ref": "brick/math-0.9.3.0" + }, + { + "ref": "doctrine/inflector-2.0.6.0" + }, + { + "ref": "doctrine/lexer-1.2.3.0" + }, + { + "ref": "dragonmantank/cron-expression-2.3.1.0" + }, + { + "ref": "egulias/email-validator-2.1.25.0", + "dependsOn": [ + "doctrine/lexer-1.2.3.0", + "symfony/polyfill-intl-idn-1.27.0.0" + ] + }, + { + "ref": "fideloper/proxy-4.4.2.0" + }, + { + "ref": "fruitcake/laravel-cors-1.0.6.0", + "dependsOn": [ + "asm89/stack-cors-1.3.0.0", + "symfony/http-foundation-5.4.16.0", + "symfony/http-kernel-5.4.16.0" + ] + }, + { + "ref": "guzzlehttp/guzzle-6.5.8.0", + "dependsOn": [ + "guzzlehttp/promises-1.5.2.0", + "guzzlehttp/psr7-1.9.0.0", + "symfony/polyfill-intl-idn-1.27.0.0" + ] + }, + { + "ref": "guzzlehttp/promises-1.5.2.0" + }, + { + "ref": "guzzlehttp/psr7-1.9.0.0", + "dependsOn": [ + "psr/http-message-1.0.1.0", + "ralouphie/getallheaders-3.0.3.0" + ] + }, + { + "ref": "laravel/framework-7.30.6.0", + "dependsOn": [ + "doctrine/inflector-2.0.6.0", + "dragonmantank/cron-expression-2.3.1.0", + "egulias/email-validator-2.1.25.0", + "league/commonmark-1.6.7.0", + "league/flysystem-1.1.10.0", + "monolog/monolog-2.8.0.0", + "nesbot/carbon-2.63.0.0", + "opis/closure-3.6.3.0", + "psr/container-1.1.1.0", + "psr/simple-cache-1.0.1.0", + "ramsey/uuid-4.2.3.0", + "swiftmailer/swiftmailer-6.3.0.0", + "symfony/console-5.4.16.0", + "symfony/error-handler-5.4.15.0", + "symfony/finder-5.4.11.0", + "symfony/http-foundation-5.4.16.0", + "symfony/http-kernel-5.4.16.0", + "symfony/mime-5.4.16.0", + "symfony/polyfill-php73-1.27.0.0", + "symfony/process-5.4.11.0", + "symfony/routing-5.4.15.0", + "symfony/var-dumper-5.4.14.0", + "tijsverkoyen/css-to-inline-styles-2.2.5.0", + "vlucas/phpdotenv-4.3.0.0", + "voku/portable-ascii-1.6.1.0" + ] + }, + { + "ref": "laravel/laravel-7.12.0.0", + "dependsOn": [ + "fideloper/proxy-4.4.2.0", + "fruitcake/laravel-cors-1.0.6.0", + "guzzlehttp/guzzle-6.5.8.0", + "laravel/framework-7.30.6.0", + "laravel/tinker-2.7.3.0" + ] + }, + { + "ref": "laravel/tinker-2.7.3.0", + "dependsOn": [ + "psy/psysh-0.11.9.0", + "symfony/var-dumper-5.4.14.0" + ] + }, + { + "ref": "league/commonmark-1.6.7.0" + }, + { + "ref": "league/flysystem-1.1.10.0", + "dependsOn": [ + "league/mime-type-detection-1.11.0.0" + ] + }, + { + "ref": "league/mime-type-detection-1.11.0.0" + }, + { + "ref": "monolog/monolog-2.8.0.0", + "dependsOn": [ + "psr/log-1.1.4.0" + ] + }, + { + "ref": "nesbot/carbon-2.63.0.0", + "dependsOn": [ + "symfony/polyfill-mbstring-1.27.0.0", + "symfony/polyfill-php80-1.27.0.0", + "symfony/translation-5.4.14.0" + ] + }, + { + "ref": "nikic/php-parser-4.15.2.0" + }, + { + "ref": "opis/closure-3.6.3.0" + }, + { + "ref": "phpoption/phpoption-1.9.0.0" + }, + { + "ref": "psr/container-1.1.1.0" + }, + { + "ref": "psr/event-dispatcher-1.0.0.0" + }, + { + "ref": "psr/http-message-1.0.1.0" + }, + { + "ref": "psr/log-1.1.4.0" + }, + { + "ref": "psr/simple-cache-1.0.1.0" + }, + { + "ref": "psy/psysh-0.11.9.0", + "dependsOn": [ + "nikic/php-parser-4.15.2.0", + "symfony/console-5.4.16.0", + "symfony/var-dumper-5.4.14.0" + ] + }, + { + "ref": "ralouphie/getallheaders-3.0.3.0" + }, + { + "ref": "ramsey/collection-1.2.2.0", + "dependsOn": [ + "symfony/polyfill-php81-1.27.0.0" + ] + }, + { + "ref": "ramsey/uuid-4.2.3.0", + "dependsOn": [ + "brick/math-0.9.3.0", + "ramsey/collection-1.2.2.0", + "symfony/polyfill-ctype-1.27.0.0", + "symfony/polyfill-php80-1.27.0.0" + ] + }, + { + "ref": "swiftmailer/swiftmailer-6.3.0.0", + "dependsOn": [ + "egulias/email-validator-2.1.25.0", + "symfony/polyfill-iconv-1.27.0.0", + "symfony/polyfill-intl-idn-1.27.0.0", + "symfony/polyfill-mbstring-1.27.0.0" + ] + }, + { + "ref": "symfony/console-5.4.16.0", + "dependsOn": [ + "symfony/deprecation-contracts-2.5.2.0", + "symfony/polyfill-mbstring-1.27.0.0", + "symfony/polyfill-php73-1.27.0.0", + "symfony/polyfill-php80-1.27.0.0", + "symfony/service-contracts-2.5.2.0", + "symfony/string-5.4.15.0" + ] + }, + { + "ref": "symfony/css-selector-5.4.11.0", + "dependsOn": [ + "symfony/polyfill-php80-1.27.0.0" + ] + }, + { + "ref": "symfony/deprecation-contracts-2.5.2.0" + }, + { + "ref": "symfony/error-handler-5.4.15.0", + "dependsOn": [ + "psr/log-1.1.4.0", + "symfony/var-dumper-5.4.14.0" + ] + }, + { + "ref": "symfony/event-dispatcher-5.4.9.0", + "dependsOn": [ + "symfony/deprecation-contracts-2.5.2.0", + "symfony/event-dispatcher-contracts-2.5.2.0", + "symfony/polyfill-php80-1.27.0.0" + ] + }, + { + "ref": "symfony/event-dispatcher-contracts-2.5.2.0", + "dependsOn": [ + "psr/event-dispatcher-1.0.0.0" + ] + }, + { + "ref": "symfony/finder-5.4.11.0", + "dependsOn": [ + "symfony/deprecation-contracts-2.5.2.0", + "symfony/polyfill-php80-1.27.0.0" + ] + }, + { + "ref": "symfony/http-foundation-5.4.16.0", + "dependsOn": [ + "symfony/deprecation-contracts-2.5.2.0", + "symfony/polyfill-mbstring-1.27.0.0", + "symfony/polyfill-php80-1.27.0.0" + ] + }, + { + "ref": "symfony/http-kernel-5.4.16.0", + "dependsOn": [ + "psr/log-1.1.4.0", + "symfony/deprecation-contracts-2.5.2.0", + "symfony/error-handler-5.4.15.0", + "symfony/event-dispatcher-5.4.9.0", + "symfony/http-foundation-5.4.16.0", + "symfony/polyfill-ctype-1.27.0.0", + "symfony/polyfill-php73-1.27.0.0", + "symfony/polyfill-php80-1.27.0.0" + ] + }, + { + "ref": "symfony/mime-5.4.16.0", + "dependsOn": [ + "symfony/deprecation-contracts-2.5.2.0", + "symfony/polyfill-intl-idn-1.27.0.0", + "symfony/polyfill-mbstring-1.27.0.0", + "symfony/polyfill-php80-1.27.0.0" + ] + }, + { + "ref": "symfony/polyfill-ctype-1.27.0.0" + }, + { + "ref": "symfony/polyfill-iconv-1.27.0.0" + }, + { + "ref": "symfony/polyfill-intl-grapheme-1.27.0.0" + }, + { + "ref": "symfony/polyfill-intl-idn-1.27.0.0", + "dependsOn": [ + "symfony/polyfill-intl-normalizer-1.27.0.0", + "symfony/polyfill-php72-1.27.0.0" + ] + }, + { + "ref": "symfony/polyfill-intl-normalizer-1.27.0.0" + }, + { + "ref": "symfony/polyfill-mbstring-1.27.0.0" + }, + { + "ref": "symfony/polyfill-php72-1.27.0.0" + }, + { + "ref": "symfony/polyfill-php73-1.27.0.0" + }, + { + "ref": "symfony/polyfill-php80-1.27.0.0" + }, + { + "ref": "symfony/polyfill-php81-1.27.0.0" + }, + { + "ref": "symfony/process-5.4.11.0", + "dependsOn": [ + "symfony/polyfill-php80-1.27.0.0" + ] + }, + { + "ref": "symfony/routing-5.4.15.0", + "dependsOn": [ + "symfony/deprecation-contracts-2.5.2.0", + "symfony/polyfill-php80-1.27.0.0" + ] + }, + { + "ref": "symfony/service-contracts-2.5.2.0", + "dependsOn": [ + "psr/container-1.1.1.0", + "symfony/deprecation-contracts-2.5.2.0" + ] + }, + { + "ref": "symfony/string-5.4.15.0", + "dependsOn": [ + "symfony/polyfill-ctype-1.27.0.0", + "symfony/polyfill-intl-grapheme-1.27.0.0", + "symfony/polyfill-intl-normalizer-1.27.0.0", + "symfony/polyfill-mbstring-1.27.0.0", + "symfony/polyfill-php80-1.27.0.0" + ] + }, + { + "ref": "symfony/translation-5.4.14.0", + "dependsOn": [ + "symfony/deprecation-contracts-2.5.2.0", + "symfony/polyfill-mbstring-1.27.0.0", + "symfony/polyfill-php80-1.27.0.0", + "symfony/translation-contracts-2.5.2.0" + ] + }, + { + "ref": "symfony/translation-contracts-2.5.2.0" + }, + { + "ref": "symfony/var-dumper-5.4.14.0", + "dependsOn": [ + "symfony/polyfill-mbstring-1.27.0.0", + "symfony/polyfill-php80-1.27.0.0" + ] + }, + { + "ref": "tijsverkoyen/css-to-inline-styles-2.2.5.0", + "dependsOn": [ + "symfony/css-selector-5.4.11.0" + ] + }, + { + "ref": "vlucas/phpdotenv-4.3.0.0", + "dependsOn": [ + "phpoption/phpoption-1.9.0.0", + "symfony/polyfill-ctype-1.27.0.0" + ] + }, + { + "ref": "voku/portable-ascii-1.6.1.0" + }, + { + "ref": "cyclonedx/cyclonedx-php-composer-demo-dev-master", + "dependsOn": [ + "laravel/laravel-7.12.0.0" + ] + } + ] +} \ No newline at end of file diff --git a/demo/laravel-7.12.0/results/bom.1.7.xml b/demo/laravel-7.12.0/results/bom.1.7.xml new file mode 100644 index 00000000..f7536412 --- /dev/null +++ b/demo/laravel-7.12.0/results/bom.1.7.xml @@ -0,0 +1,2530 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/demo/local/README.md b/demo/local/README.md index 056eec54..47250af1 100644 --- a/demo/local/README.md +++ b/demo/local/README.md @@ -9,10 +9,14 @@ This is a demo of how locally hosted/located requirements are treated. * [`results/bom.1.3.xml`](results/bom.1.3.xml) * [`results/bom.1.4.xml`](results/bom.1.4.xml) * [`results/bom.1.5.xml`](results/bom.1.5.xml) +* [`results/bom.1.6.xml`](results/bom.1.6.xml) +* [`results/bom.1.7.xml`](results/bom.1.7.xml) * [`results/bom.1.2.json`](results/bom.1.2.json) * [`results/bom.1.3.json`](results/bom.1.3.json) * [`results/bom.1.4.json`](results/bom.1.4.json) * [`results/bom.1.5.json`](results/bom.1.5.json) +* [`results/bom.1.6.json`](results/bom.1.6.json) +* [`results/bom.1.7.json`](results/bom.1.7.json) ## Setup diff --git a/demo/local/project/composer.json b/demo/local/project/composer.json index ee5de549..1b442144 100644 --- a/demo/local/project/composer.json +++ b/demo/local/project/composer.json @@ -50,6 +50,7 @@ "@putenv CDX_CP_TOOLS_VERSION_OVERRIDE=in-dev", "@putenv CDX_CP_TOOLS_EXCLUDE_LIBS=1", "@putenv CDX_CP_TOOLS_EXCLUDE_COMPOSER=1", + "@composer -d ../../.tool CycloneDX:make-sbom --omit=dev --validate --spec-version=1.7 --output-reproducible --output-format=JSON --output-file=$PWD/../results/bom.1.7.json $PWD/composer.json", "@composer -d ../../.tool CycloneDX:make-sbom --omit=dev --validate --spec-version=1.6 --output-reproducible --output-format=JSON --output-file=$PWD/../results/bom.1.6.json $PWD/composer.json", "@composer -d ../../.tool CycloneDX:make-sbom --omit=dev --validate --spec-version=1.5 --output-reproducible --output-format=JSON --output-file=$PWD/../results/bom.1.5.json $PWD/composer.json", "@composer -d ../../.tool CycloneDX:make-sbom --omit=dev --validate --spec-version=1.4 --output-reproducible --output-format=JSON --output-file=$PWD/../results/bom.1.4.json $PWD/composer.json", @@ -60,6 +61,7 @@ "@putenv CDX_CP_TOOLS_VERSION_OVERRIDE=in-dev", "@putenv CDX_CP_TOOLS_EXCLUDE_LIBS=1", "@putenv CDX_CP_TOOLS_EXCLUDE_COMPOSER=1", + "@composer -d ../../.tool CycloneDX:make-sbom --omit=dev --validate --spec-version=1.7 --output-reproducible --output-format=XML --output-file=$PWD/../results/bom.1.7.xml $PWD/composer.json", "@composer -d ../../.tool CycloneDX:make-sbom --omit=dev --validate --spec-version=1.6 --output-reproducible --output-format=XML --output-file=$PWD/../results/bom.1.6.xml $PWD/composer.json", "@composer -d ../../.tool CycloneDX:make-sbom --omit=dev --validate --spec-version=1.5 --output-reproducible --output-format=XML --output-file=$PWD/../results/bom.1.5.xml $PWD/composer.json", "@composer -d ../../.tool CycloneDX:make-sbom --omit=dev --validate --spec-version=1.4 --output-reproducible --output-format=XML --output-file=$PWD/../results/bom.1.4.xml $PWD/composer.json", diff --git a/demo/local/results/bom.1.7.json b/demo/local/results/bom.1.7.json new file mode 100644 index 00000000..14bda180 --- /dev/null +++ b/demo/local/results/bom.1.7.json @@ -0,0 +1,199 @@ +{ + "$schema": "http://cyclonedx.org/schema/bom-1.7.schema.json", + "bomFormat": "CycloneDX", + "specVersion": "1.7", + "version": 1, + "metadata": { + "tools": [ + { + "vendor": "cyclonedx", + "name": "cyclonedx-php-composer", + "version": "in-dev" + } + ], + "component": { + "bom-ref": "cyclonedx-demo/cyclonedx-php-composer-local-dev-master", + "type": "application", + "name": "cyclonedx-php-composer-local", + "version": "dev-master", + "group": "cyclonedx-demo", + "description": "demo of cyclonedx/cyclonedx-php-composer with a local dependency", + "author": "Jan Kowalleck", + "licenses": [ + { + "license": { + "id": "Apache-2.0", + "acknowledgement": "declared" + } + } + ], + "purl": "pkg:composer/cyclonedx-demo/cyclonedx-php-composer-local@dev-master", + "externalReferences": [ + { + "type": "website", + "url": "https://cyclonedx.org/", + "comment": "as detected from Composer manifest 'homepage'" + }, + { + "type": "other", + "url": "support@cyclonedx.org", + "comment": "as detected from Composer manifest 'support.email'" + }, + { + "type": "issue-tracker", + "url": "https://github.com/CycloneDX/cyclonedx-php-composer/issues", + "comment": "as detected from Composer manifest 'support.issues'" + }, + { + "type": "other", + "url": "https://groups.io/g/CycloneDX", + "comment": "as detected from Composer manifest 'support.forum'" + }, + { + "type": "chat", + "url": "https://cyclonedx.org/slack/invite", + "comment": "as detected from Composer manifest 'support.chat'" + }, + { + "type": "documentation", + "url": "https://github.com/CycloneDX/cyclonedx-php-composer/blob/master/demo/local/README.md", + "comment": "as detected from Composer manifest 'support.docs'" + } + ], + "properties": [ + { + "name": "cdx:composer:package:type", + "value": "project" + } + ] + } + }, + "components": [ + { + "bom-ref": "cyclonedx-demo/local-demo-dependency-1.33.7.0", + "type": "library", + "name": "local-demo-dependency", + "version": "1.33.7", + "group": "cyclonedx-demo", + "description": "a package that is hosted locally and required in a local demo", + "author": "Jan Kowalleck", + "licenses": [ + { + "license": { + "id": "Apache-2.0", + "acknowledgement": "declared" + } + } + ], + "purl": "pkg:composer/cyclonedx-demo/local-demo-dependency@1.33.7", + "externalReferences": [ + { + "type": "distribution", + "url": "packages/local-demo-dependency", + "comment": "dist reference: 0f3c3d45329014fcb6a18e73f975008b7eee0c90" + } + ], + "properties": [ + { + "name": "cdx:composer:package:distReference", + "value": "0f3c3d45329014fcb6a18e73f975008b7eee0c90" + }, + { + "name": "cdx:composer:package:type", + "value": "library" + } + ] + }, + { + "bom-ref": "cyclonedx-demo/local-demo-issue-158-dev-issue-158", + "type": "library", + "name": "local-demo-issue-158", + "version": "dev-issue-158", + "group": "cyclonedx-demo", + "description": "a package that reproduces issue#158", + "author": "Jan Kowalleck", + "licenses": [ + { + "license": { + "id": "Apache-2.0", + "acknowledgement": "declared" + } + } + ], + "purl": "pkg:composer/cyclonedx-demo/local-demo-issue-158@dev-issue-158", + "externalReferences": [ + { + "type": "distribution", + "url": "packages/local-demo-issue-158", + "comment": "dist reference: 0a81eb04585ab16145687d0d324871413132ffcc" + }, + { + "type": "website", + "url": "https://github.com/CycloneDX/cyclonedx-php-composer/issues/158", + "comment": "as detected from Composer manifest 'homepage'" + }, + { + "type": "issue-tracker", + "url": "https://pear.php.net/bugs/search.php?cmd=display&package_name%5B%5D=PEAR_Exception", + "comment": "as detected from Composer manifest 'support.issues'" + } + ], + "properties": [ + { + "name": "cdx:composer:package:distReference", + "value": "0a81eb04585ab16145687d0d324871413132ffcc" + }, + { + "name": "cdx:composer:package:type", + "value": "library" + } + ] + }, + { + "bom-ref": "cyclonedx-demo/local-dependency-with-minimal-setup-dev-feat/license-acknowledgement", + "type": "library", + "name": "local-dependency-with-minimal-setup", + "version": "dev-feat/license-acknowledgement", + "group": "cyclonedx-demo", + "purl": "pkg:composer/cyclonedx-demo/local-dependency-with-minimal-setup@dev-feat/license-acknowledgement", + "externalReferences": [ + { + "type": "distribution", + "url": "packages/local-dependency-with-minimal-setup", + "comment": "dist reference: 5cdadb5ab51e8009613e68c49f8d07fcd512da78" + } + ], + "properties": [ + { + "name": "cdx:composer:package:distReference", + "value": "5cdadb5ab51e8009613e68c49f8d07fcd512da78" + }, + { + "name": "cdx:composer:package:type", + "value": "library" + } + ] + } + ], + "dependencies": [ + { + "ref": "cyclonedx-demo/local-demo-dependency-1.33.7.0", + "dependsOn": [ + "cyclonedx-demo/local-dependency-with-minimal-setup-dev-feat/license-acknowledgement" + ] + }, + { + "ref": "cyclonedx-demo/local-demo-issue-158-dev-issue-158" + }, + { + "ref": "cyclonedx-demo/local-dependency-with-minimal-setup-dev-feat/license-acknowledgement" + }, + { + "ref": "cyclonedx-demo/cyclonedx-php-composer-local-dev-master", + "dependsOn": [ + "cyclonedx-demo/local-demo-dependency-1.33.7.0", + "cyclonedx-demo/local-demo-issue-158-dev-issue-158" + ] + } + ] +} \ No newline at end of file diff --git a/demo/local/results/bom.1.7.xml b/demo/local/results/bom.1.7.xml new file mode 100644 index 00000000..b9951781 --- /dev/null +++ b/demo/local/results/bom.1.7.xml @@ -0,0 +1,137 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/demo/symfony/example-results/bom.json b/demo/symfony/example-results/bom.json index 9dd28fb1..85d24d4d 100644 --- a/demo/symfony/example-results/bom.json +++ b/demo/symfony/example-results/bom.json @@ -2,24 +2,24 @@ "$schema": "http://cyclonedx.org/schema/bom-1.6.schema.json", "bomFormat": "CycloneDX", "specVersion": "1.6", - "serialNumber": "urn:uuid:752eaa36-0cec-48cd-9a6c-65236f588efd", + "serialNumber": "urn:uuid:6b4c68e2-f04e-4af6-af4a-bbcf8965c805", "version": 1, "metadata": { - "timestamp": "2024-04-29T12:26:02Z", + "timestamp": "2025-10-24T13:24:52Z", "tools": [ { "name": "composer", - "version": "2.7.4" + "version": "2.8.12" }, { "vendor": "cyclonedx", "name": "cyclonedx-php-composer", - "version": "4.x-dev", + "version": "5.x-dev", "externalReferences": [ { "type": "distribution", "url": "../..", - "comment": "dist reference: 88cf1cf6c9034567cbcf9fcd776c71aeed6c35a8" + "comment": "dist reference: 346194aeb64639d0c587257cc9c91a7b950a426a" }, { "type": "website", @@ -41,17 +41,17 @@ { "vendor": "cyclonedx", "name": "cyclonedx-library", - "version": "v3.3.0", + "version": "v3.8.0", "externalReferences": [ { "type": "distribution", - "url": "https://api.github.com/repos/CycloneDX/cyclonedx-php-library/zipball/34fb57c387abe57d3926e05511475ed4a04c1ed7", - "comment": "dist reference: 34fb57c387abe57d3926e05511475ed4a04c1ed7" + "url": "https://api.github.com/repos/CycloneDX/cyclonedx-php-library/zipball/0c6fdbc1241d9435426eef0ce45ed7fb6a9a1c9f", + "comment": "dist reference: 0c6fdbc1241d9435426eef0ce45ed7fb6a9a1c9f" }, { "type": "vcs", "url": "https://github.com/CycloneDX/cyclonedx-php-library.git", - "comment": "source reference: 34fb57c387abe57d3926e05511475ed4a04c1ed7" + "comment": "source reference: 0c6fdbc1241d9435426eef0ce45ed7fb6a9a1c9f" }, { "type": "website", @@ -96,11 +96,11 @@ "properties": [ { "name": "cdx:composer:package:distReference", - "value": "d03acdc46afe71026f767cbf6a2c42b1ed5e4001" + "value": "779a263523245868e6f1446d345910446289e5b9" }, { "name": "cdx:composer:package:sourceReference", - "value": "d03acdc46afe71026f767cbf6a2c42b1ed5e4001" + "value": "779a263523245868e6f1446d345910446289e5b9" }, { "name": "cdx:composer:package:type", diff --git a/demo/symfony/example-results/bom.xml b/demo/symfony/example-results/bom.xml index 0d03750c..80fdd6a9 100644 --- a/demo/symfony/example-results/bom.xml +++ b/demo/symfony/example-results/bom.xml @@ -1,20 +1,20 @@ - + - + - + - + - + @@ -33,15 +33,15 @@ - + - - + + - + @@ -75,8 +75,8 @@ - - + + diff --git a/src/_internal/MakeBom/Command.php b/src/_internal/MakeBom/Command.php index 1cf67a6c..96e23cf3 100644 --- a/src/_internal/MakeBom/Command.php +++ b/src/_internal/MakeBom/Command.php @@ -27,7 +27,7 @@ use Composer\Factory as ComposerFactory; use Composer\IO\IOInterface; use CycloneDX\Core\Serialization; -use CycloneDX\Core\Spec\Format; +use CycloneDX\Core\Spec\Format as SpecFormat; use CycloneDX\Core\Spec\SpecFactory; use CycloneDX\Core\Utils\BomUtility; use CycloneDX\Core\Validation\Validator; @@ -182,8 +182,8 @@ private function generateBom(IOInterface $io, $spec): string * @psalm-suppress MixedArgumentTypeCoercion -- psalm has issues wth template TSpec for $spec */ $serializer = match ($this->options->outputFormat) { - Format::JSON => new Serialization\JsonSerializer(new Serialization\JSON\NormalizerFactory($spec)), - Format::XML => new Serialization\XmlSerializer(new Serialization\DOM\NormalizerFactory($spec)), + SpecFormat::JSON => new Serialization\JsonSerializer(new Serialization\JSON\NormalizerFactory($spec)), + SpecFormat::XML => new Serialization\XmlSerializer(new Serialization\DOM\NormalizerFactory($spec)), default => throw new DomainException("unsupported format: {$this->options->outputFormat->name}"), }; $io->writeErrorRaw('using '.$serializer::class, verbosity: IOInterface::DEBUG); @@ -211,8 +211,8 @@ private function validateBom(string $bom, $spec, IOInterface $io): void * @psalm-suppress MixedArgumentTypeCoercion -- psalm has issues wth template TSpec for $spec **/ $validator = match ($this->options->outputFormat) { - Format::JSON => new Validators\JsonStrictValidator($spec), - Format::XML => new Validators\XmlValidator($spec), + SpecFormat::JSON => new Validators\JsonStrictValidator($spec), + SpecFormat::XML => new Validators\XmlValidator($spec), default => throw new DomainException("unsupported format: {$this->options->outputFormat->name}"), }; $io->writeErrorRaw('using '.$validator::class, verbosity: IOInterface::DEBUG); diff --git a/src/_internal/MakeBom/Options.php b/src/_internal/MakeBom/Options.php index f6821eb7..a6bfb3e0 100644 --- a/src/_internal/MakeBom/Options.php +++ b/src/_internal/MakeBom/Options.php @@ -23,8 +23,8 @@ namespace CycloneDX\Composer\_internal\MakeBom; -use CycloneDX\Core\Spec\Format; -use CycloneDX\Core\Spec\Version; +use CycloneDX\Core\Spec\Format as SpecFormat; +use CycloneDX\Core\Spec\Version as SpecVersion; use Symfony\Component\Console\Command\Command; use Symfony\Component\Console\Input\InputArgument; use Symfony\Component\Console\Input\InputDefinition; @@ -73,12 +73,11 @@ class Options * Possible output formats. * First in list is the default value. * - * @psalm-var array + * @psalm-var array */ private const VALUES_OUTPUT_FORMAT_MAP = [ - 'XML' => Format::XML, - // first in list is the default value - see constructor - 'JSON' => Format::JSON, + 'JSON' => SpecFormat::JSON, + 'XML' => SpecFormat::XML, ]; public const VALUE_OUTPUT_FILE_STDOUT = '-'; @@ -93,22 +92,6 @@ class Options 'plugin', ]; - /** - * Possible spec versions. - * First in list is the default value. - * - * @psalm-var array - */ - private const VALUE_SPEC_VERSION_MAP = [ - '1.5' => Version::v1dot5, - // first in list is the default value - see constructor - '1.6' => Version::v1dot6, - '1.4' => Version::v1dot4, - '1.3' => Version::v1dot3, - '1.2' => Version::v1dot2, - '1.1' => Version::v1dot1, - ]; - /** * @param scalar[] $values */ @@ -127,6 +110,8 @@ private static function formatChoice(array $values, int $sortFlag = \SORT_STRING */ public function getDefinition(): InputDefinition { + $specVersionValues = array_map(fn ($sv) => $sv->value, SpecVersion::cases()); + return new InputDefinition([ new InputOption( self::OPTION_OUTPUT_FORMAT, @@ -159,9 +144,9 @@ public function getDefinition(): InputDefinition null, InputOption::VALUE_REQUIRED, 'Which version of CycloneDX spec to use.'.\PHP_EOL. - self::formatChoice(array_keys(self::VALUE_SPEC_VERSION_MAP), \SORT_NUMERIC), - array_search($this->specVersion, self::VALUE_SPEC_VERSION_MAP, true), - array_keys(self::VALUE_SPEC_VERSION_MAP) + self::formatChoice($specVersionValues, \SORT_NUMERIC), + $this->specVersion->value, + $specVersionValues ), new InputOption( self::SWITCH_OUTPUT_REPRODUCIBLE, @@ -201,7 +186,7 @@ public function getDefinition(): InputDefinition * * @psalm-allow-private-mutation */ - public Version $specVersion; + public SpecVersion $specVersion = SpecVersion::v1dot5; /** * @readonly @@ -219,7 +204,7 @@ public function getDefinition(): InputDefinition * * @psalm-allow-private-mutation */ - public Format $outputFormat; + public SpecFormat $outputFormat = SpecFormat::XML; /** * @readonly @@ -262,12 +247,6 @@ public function getDefinition(): InputDefinition */ public ?string $mainComponentVersion = null; - public function __construct() - { - $this->outputFormat = self::VALUES_OUTPUT_FORMAT_MAP[array_key_first(self::VALUES_OUTPUT_FORMAT_MAP)]; - $this->specVersion = self::VALUE_SPEC_VERSION_MAP[array_key_first(self::VALUE_SPEC_VERSION_MAP)]; - } - /** * @psalm-return null|non-empty-string */ @@ -301,17 +280,18 @@ public function setFromInput(InputInterface $input): static { // region get from input - $specVersion = $input->getOption(self::OPTION_SPEC_VERSION); - \assert(\is_string($specVersion)); - if (false === \array_key_exists($specVersion, self::VALUE_SPEC_VERSION_MAP)) { - throw new Errors\OptionError('Invalid value for option "'.self::OPTION_SPEC_VERSION.'": '.$specVersion); + $specVersionRaw = $input->getOption(self::OPTION_SPEC_VERSION); + \assert(\is_string($specVersionRaw)); + $specVersion = SpecVersion::tryFrom($specVersionRaw); + if (null === $specVersion) { + throw new Errors\OptionError('Invalid value for option "'.self::OPTION_SPEC_VERSION.'": '.$specVersionRaw); } - $outputFormat = $input->getOption(self::OPTION_OUTPUT_FORMAT); - \assert(\is_string($outputFormat)); - $outputFormat = strtoupper($outputFormat); - if (false === \array_key_exists($outputFormat, self::VALUES_OUTPUT_FORMAT_MAP)) { - throw new Errors\OptionError('Invalid value for option "'.self::OPTION_OUTPUT_FORMAT.'": '.$outputFormat); + $outputFormatRaw = $input->getOption(self::OPTION_OUTPUT_FORMAT); + \assert(\is_string($outputFormatRaw)); + $outputFormat = self::VALUES_OUTPUT_FORMAT_MAP[strtoupper($outputFormatRaw)] ?? null; + if (null === $outputFormat) { + throw new Errors\OptionError('Invalid value for option "'.self::OPTION_OUTPUT_FORMAT.'": '.$outputFormatRaw); } $outputFile = $input->getOption(self::OPTION_OUTPUT_FILE); @@ -338,9 +318,9 @@ public function setFromInput(InputInterface $input): static // region set state - $this->specVersion = self::VALUE_SPEC_VERSION_MAP[$specVersion]; $this->omit = array_values(array_intersect(self::VALUES_OMIT, $omit)); - $this->outputFormat = self::VALUES_OUTPUT_FORMAT_MAP[$outputFormat]; + $this->specVersion = $specVersion; + $this->outputFormat = $outputFormat; $this->outputReproducible = $outputReproducible; $this->validate = $validate; $this->outputFile = $outputFile; diff --git a/tests/Integration/CommandMakeSbomAsExpectedTest.php b/tests/Integration/CommandMakeSbomAsExpectedTest.php index 5ed96c97..64c42a7a 100644 --- a/tests/Integration/CommandMakeSbomAsExpectedTest.php +++ b/tests/Integration/CommandMakeSbomAsExpectedTest.php @@ -27,6 +27,7 @@ use CycloneDX\Composer\_internal\MakeBom\Command; use CycloneDX\Composer\_internal\MakeBom\Options; use CycloneDX\Composer\Plugin; +use CycloneDX\Core\Spec\Version as SpecVersion; use Generator; use PHPUnit\Framework\Attributes\CoversClass; use PHPUnit\Framework\Attributes\DataProvider; @@ -55,14 +56,14 @@ protected function tearDown(): void } #[DataProvider('dp')] - public function test(string $outputFormat, string $specV, string $composeFile, array $omit, + public function test(string $outputFormat, SpecVersion $specV, string $composeFile, array $omit, string $expectedSbomFile): void { $outFile = tempnam(sys_get_temp_dir(), 'CommandMakeSbomAsExpectedTest'); $in = new ArrayInput([ 'command' => 'CycloneDX:make-sbom', '--output-format' => $outputFormat, - '--spec-version' => $specV, + '--spec-version' => $specV->value, '--output-reproducible' => true, '--validate' => true, '--output-file' => $outFile, @@ -86,14 +87,15 @@ public static function dp(): Generator { foreach (['devReq', 'laravel-7.12.0', 'local'] as $purpose) { foreach (['json', 'xml'] as $outputFormat) { - $specVs = ['1.6', '1.5', '1.4', '1.3', '1.2']; - if ('xml' === $outputFormat) { - $specVs[] = '1.1'; + $specVs = SpecVersion::cases(); + if ('json' === $outputFormat) { + // remove unsupported versions + $specVs = array_filter($specVs, fn ($sv) => SpecVersion::v1dot1 !== $sv); } foreach ($specVs as $specV) { $composeFile = self::DEMO_ROOT."/$purpose/project/composer.json"; - $snapshotFile = self::DEMO_ROOT."/$purpose/results/bom.$specV.$outputFormat"; - yield "demo: $purpose $outputFormat $specV" => [ + $snapshotFile = self::DEMO_ROOT."/$purpose/results/bom.{$specV->value}.$outputFormat"; + yield "demo: $purpose $outputFormat {$specV->value}" => [ $outputFormat, $specV, $composeFile, diff --git a/tests/Unit/MakeBom/OptionsTest.php b/tests/Unit/MakeBom/OptionsTest.php index ae21189b..8b3f8cf9 100644 --- a/tests/Unit/MakeBom/OptionsTest.php +++ b/tests/Unit/MakeBom/OptionsTest.php @@ -91,16 +91,9 @@ public static function dpProducesOption(): Generator '--omit=dev --omit plugin --omit invalid-value', ['omit' => ['dev', 'plugin']], ]; - foreach ([ - '1.6' => Version::v1dot6, - '1.5' => Version::v1dot5, - '1.4' => Version::v1dot4, - '1.3' => Version::v1dot3, - '1.2' => Version::v1dot2, - '1.1' => Version::v1dot1, - ] as $specVersionIn => $specVersion) { - yield "specVersion '$specVersionIn'" => [ - '--spec-version '.escapeshellarg($specVersionIn), + foreach (Version::cases() as $specVersion) { + yield "specVersion '{$specVersion->value}'" => [ + '--spec-version '.escapeshellarg($specVersion->value), ['specVersion' => $specVersion], ]; }