Vex::Component
Inherits JSON::Serializable < Reference < Object
Component captures the fields shared by Product and Subcomponent.
On the wire there is no Component type — only product and subcomponent
shapes that share these keys. The spec lists subcomponents as a Component
field, so a subcomponent can itself nest further subcomponents.
Constructors
Instance methods
Returns true if this reference is the same as other. Invokes same?.
See Object#hash(hasher)
Cryptographic hashes keyed by algorithm (sha-256, sha-512, ...).
A component is identifiable when it carries at least one of @id,
identifiers, or hashes. Spec: "Product details MUST include
[product_id]" — and subcomponents inherit the same requirement from
the Component fields table.
Software identifiers keyed by type (purl, cpe22, cpe23).
True when this component's @id, any identifier value, OR any (recursive) subcomponent matches. Used by Document lookups so a consumer asking about a named subcomponent hits the parent statement.
Nested subcomponents. The spec defines subcomponents on Component, so
this is available on both Product and Subcomponent (allowing nesting).
Nested subcomponents. The spec defines subcomponents on Component, so
this is available on both Product and Subcomponent (allowing nesting).
Spec-recommended keys are listed in Appendix A (hashes) and Appendix B
(identifiers). Unrecognized keys are not errors — the spec uses SHOULD
— but tooling consuming the document may not know how to interpret
them. Returns one warning string per unrecognized key, plus an
@id-not-an-IRI warning when the @id lacks a scheme (e.g. a bare purl
missing its pkg: prefix, or a CVE name in the wrong slot).