sbom-cyclonedx 0.1.0 → 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.gitignore +15 -0
- data/.gitlab-ci.yml +49 -0
- data/.rspec +3 -0
- data/.rubocop.yml +72 -0
- data/.vscode/settings.json +6 -0
- data/CHANGELOG.md +9 -0
- data/CODE_OF_CONDUCT.md +132 -0
- data/Gemfile +26 -0
- data/Gemfile.lock +179 -0
- data/LICENSE.txt +21 -0
- data/README.md +39 -0
- data/Rakefile +36 -0
- data/Steepfile +14 -0
- data/bin/console +11 -0
- data/bin/rbs_spec +9 -0
- data/bin/setup +8 -0
- data/bom-1.6.schema.json +7334 -0
- data/lib/email_address_extension.rb +26 -0
- data/lib/sbom/cyclone_dx/enum.rb +2178 -0
- data/lib/sbom/cyclone_dx/field.rb +404 -0
- data/lib/sbom/cyclone_dx/pattern.rb +43 -0
- data/lib/sbom/cyclone_dx/record/advisory.rb +17 -0
- data/lib/sbom/cyclone_dx/record/annotation.rb +46 -0
- data/lib/sbom/cyclone_dx/record/attachment.rb +21 -0
- data/lib/sbom/cyclone_dx/record/base.rb +244 -0
- data/lib/sbom/cyclone_dx/record/cipher_suite.rb +23 -0
- data/lib/sbom/cyclone_dx/record/co2_measure.rb +18 -0
- data/lib/sbom/cyclone_dx/record/command.rb +18 -0
- data/lib/sbom/cyclone_dx/record/commit.rb +25 -0
- data/lib/sbom/cyclone_dx/record/component.rb +126 -0
- data/lib/sbom/cyclone_dx/record/component_data.rb +46 -0
- data/lib/sbom/cyclone_dx/record/component_evidence.rb +68 -0
- data/lib/sbom/cyclone_dx/record/component_identity_evidence.rb +36 -0
- data/lib/sbom/cyclone_dx/record/composition.rb +33 -0
- data/lib/sbom/cyclone_dx/record/condition.rb +20 -0
- data/lib/sbom/cyclone_dx/record/copyright.rb +16 -0
- data/lib/sbom/cyclone_dx/record/crypto_properties.rb +137 -0
- data/lib/sbom/cyclone_dx/record/data_governance.rb +21 -0
- data/lib/sbom/cyclone_dx/record/data_governance_responsible_party.rb +22 -0
- data/lib/sbom/cyclone_dx/record/declarations.rb +193 -0
- data/lib/sbom/cyclone_dx/record/definitions.rb +17 -0
- data/lib/sbom/cyclone_dx/record/dependency.rb +21 -0
- data/lib/sbom/cyclone_dx/record/diff.rb +18 -0
- data/lib/sbom/cyclone_dx/record/energy_consumption.rb +31 -0
- data/lib/sbom/cyclone_dx/record/energy_measure.rb +18 -0
- data/lib/sbom/cyclone_dx/record/energy_provider.rb +31 -0
- data/lib/sbom/cyclone_dx/record/environmental_consideration.rb +20 -0
- data/lib/sbom/cyclone_dx/record/event.rb +31 -0
- data/lib/sbom/cyclone_dx/record/external_reference.rb +25 -0
- data/lib/sbom/cyclone_dx/record/fairness_assessment.rb +22 -0
- data/lib/sbom/cyclone_dx/record/formula.rb +29 -0
- data/lib/sbom/cyclone_dx/record/graphic.rb +19 -0
- data/lib/sbom/cyclone_dx/record/graphics_collection.rb +19 -0
- data/lib/sbom/cyclone_dx/record/hash_data.rb +18 -0
- data/lib/sbom/cyclone_dx/record/identifiable_action.rb +21 -0
- data/lib/sbom/cyclone_dx/record/input.rb +34 -0
- data/lib/sbom/cyclone_dx/record/input_output_ml_parameter.rb +17 -0
- data/lib/sbom/cyclone_dx/record/issue.rb +36 -0
- data/lib/sbom/cyclone_dx/record/license.rb +90 -0
- data/lib/sbom/cyclone_dx/record/license_choice.rb +35 -0
- data/lib/sbom/cyclone_dx/record/metadata.rb +55 -0
- data/lib/sbom/cyclone_dx/record/model_card.rb +89 -0
- data/lib/sbom/cyclone_dx/record/note.rb +20 -0
- data/lib/sbom/cyclone_dx/record/organizational_contact.rb +26 -0
- data/lib/sbom/cyclone_dx/record/organizational_entity.rb +28 -0
- data/lib/sbom/cyclone_dx/record/output.rb +34 -0
- data/lib/sbom/cyclone_dx/record/parameter.rb +20 -0
- data/lib/sbom/cyclone_dx/record/patch.rb +23 -0
- data/lib/sbom/cyclone_dx/record/performance_metric.rb +30 -0
- data/lib/sbom/cyclone_dx/record/postal_address.rb +34 -0
- data/lib/sbom/cyclone_dx/record/property.rb +18 -0
- data/lib/sbom/cyclone_dx/record/rating.rb +27 -0
- data/lib/sbom/cyclone_dx/record/release_notes.rb +44 -0
- data/lib/sbom/cyclone_dx/record/resource_reference_choice.rb +22 -0
- data/lib/sbom/cyclone_dx/record/risk.rb +18 -0
- data/lib/sbom/cyclone_dx/record/root.rb +63 -0
- data/lib/sbom/cyclone_dx/record/secured_by.rb +20 -0
- data/lib/sbom/cyclone_dx/record/service.rb +54 -0
- data/lib/sbom/cyclone_dx/record/service_data.rb +32 -0
- data/lib/sbom/cyclone_dx/record/signature.rb +85 -0
- data/lib/sbom/cyclone_dx/record/standard.rb +72 -0
- data/lib/sbom/cyclone_dx/record/step.rb +24 -0
- data/lib/sbom/cyclone_dx/record/swid.rb +29 -0
- data/lib/sbom/cyclone_dx/record/task.rb +56 -0
- data/lib/sbom/cyclone_dx/record/tools.rb +20 -0
- data/lib/sbom/cyclone_dx/record/trigger.rb +48 -0
- data/lib/sbom/cyclone_dx/record/version.rb +24 -0
- data/lib/sbom/cyclone_dx/record/volume.rb +33 -0
- data/lib/sbom/cyclone_dx/record/vulnerability.rb +119 -0
- data/lib/sbom/cyclone_dx/record/vulnerability_source.rb +20 -0
- data/lib/sbom/cyclone_dx/record/workflow.rb +59 -0
- data/lib/sbom/cyclone_dx/record/workspace.rb +45 -0
- data/lib/sbom/cyclone_dx/record.rb +12 -0
- data/lib/sbom/cyclone_dx/validator/array_validator.rb +66 -0
- data/lib/sbom/cyclone_dx/validator/base_validator.rb +43 -0
- data/lib/sbom/cyclone_dx/validator/boolean_validator.rb +16 -0
- data/lib/sbom/cyclone_dx/validator/date_time_validator.rb +29 -0
- data/lib/sbom/cyclone_dx/validator/email_address_validator.rb +31 -0
- data/lib/sbom/cyclone_dx/validator/float_validator.rb +30 -0
- data/lib/sbom/cyclone_dx/validator/integer_validator.rb +30 -0
- data/lib/sbom/cyclone_dx/validator/record_validator.rb +26 -0
- data/lib/sbom/cyclone_dx/validator/string_validator.rb +33 -0
- data/lib/sbom/cyclone_dx/validator/union_validator.rb +39 -0
- data/lib/sbom/cyclone_dx/validator/uri_validator.rb +32 -0
- data/lib/sbom/cyclone_dx/validator.rb +32 -0
- data/lib/sbom/cyclone_dx/version.rb +7 -0
- data/lib/sbom/cyclone_dx.rb +39 -0
- data/rbs_collection.lock.yaml +288 -0
- data/rbs_collection.yaml +31 -0
- data/sbom-cyclone_dx.gemspec +32 -0
- data/sig/email_address_extension.rbs +14 -0
- data/sig/sbom/cyclone_dx/enum.rbs +93 -0
- data/sig/sbom/cyclone_dx/field.rbs +434 -0
- data/sig/sbom/cyclone_dx/pattern.rbs +24 -0
- data/sig/sbom/cyclone_dx/record/advisory.rbs +19 -0
- data/sig/sbom/cyclone_dx/record/annotation.rbs +63 -0
- data/sig/sbom/cyclone_dx/record/attachment.rbs +24 -0
- data/sig/sbom/cyclone_dx/record/base.rbs +62 -0
- data/sig/sbom/cyclone_dx/record/cipher_suite.rbs +24 -0
- data/sig/sbom/cyclone_dx/record/co2_measure.rbs +14 -0
- data/sig/sbom/cyclone_dx/record/command.rbs +19 -0
- data/sig/sbom/cyclone_dx/record/commit.rbs +34 -0
- data/sig/sbom/cyclone_dx/record/component.rbs +203 -0
- data/sig/sbom/cyclone_dx/record/component_data.rbs +73 -0
- data/sig/sbom/cyclone_dx/record/component_evidence.rbs +115 -0
- data/sig/sbom/cyclone_dx/record/component_identity_evidence.rbs +53 -0
- data/sig/sbom/cyclone_dx/record/composition.rbs +39 -0
- data/sig/sbom/cyclone_dx/record/condition.rbs +24 -0
- data/sig/sbom/cyclone_dx/record/copyright.rbs +14 -0
- data/sig/sbom/cyclone_dx/record/crypto_properties.rbs +268 -0
- data/sig/sbom/cyclone_dx/record/data_governance.rbs +24 -0
- data/sig/sbom/cyclone_dx/record/data_governance_responsible_party.rbs +19 -0
- data/sig/sbom/cyclone_dx/record/declarations.rbs +352 -0
- data/sig/sbom/cyclone_dx/record/definitions.rbs +14 -0
- data/sig/sbom/cyclone_dx/record/dependency.rbs +24 -0
- data/sig/sbom/cyclone_dx/record/diff.rbs +19 -0
- data/sig/sbom/cyclone_dx/record/energy_consumption.rbs +39 -0
- data/sig/sbom/cyclone_dx/record/energy_measure.rbs +14 -0
- data/sig/sbom/cyclone_dx/record/energy_provider.rbs +39 -0
- data/sig/sbom/cyclone_dx/record/environmental_consideration.rbs +19 -0
- data/sig/sbom/cyclone_dx/record/event.rbs +44 -0
- data/sig/sbom/cyclone_dx/record/external_reference.rbs +29 -0
- data/sig/sbom/cyclone_dx/record/fairness_assessment.rbs +29 -0
- data/sig/sbom/cyclone_dx/record/formula.rbs +34 -0
- data/sig/sbom/cyclone_dx/record/graphic.rbs +19 -0
- data/sig/sbom/cyclone_dx/record/graphics_collection.rbs +19 -0
- data/sig/sbom/cyclone_dx/record/hash_data.rbs +19 -0
- data/sig/sbom/cyclone_dx/record/identifiable_action.rbs +24 -0
- data/sig/sbom/cyclone_dx/record/input.rbs +44 -0
- data/sig/sbom/cyclone_dx/record/input_output_ml_parameter.rbs +14 -0
- data/sig/sbom/cyclone_dx/record/issue.rbs +53 -0
- data/sig/sbom/cyclone_dx/record/license.rbs +134 -0
- data/sig/sbom/cyclone_dx/record/license_choice.rbs +39 -0
- data/sig/sbom/cyclone_dx/record/metadata.rbs +82 -0
- data/sig/sbom/cyclone_dx/record/model_card.rbs +143 -0
- data/sig/sbom/cyclone_dx/record/note.rbs +19 -0
- data/sig/sbom/cyclone_dx/record/organizational_contact.rbs +29 -0
- data/sig/sbom/cyclone_dx/record/organizational_entity.rbs +34 -0
- data/sig/sbom/cyclone_dx/record/output.rbs +44 -0
- data/sig/sbom/cyclone_dx/record/parameter.rbs +24 -0
- data/sig/sbom/cyclone_dx/record/patch.rbs +24 -0
- data/sig/sbom/cyclone_dx/record/performance_metric.rbs +43 -0
- data/sig/sbom/cyclone_dx/record/postal_address.rbs +44 -0
- data/sig/sbom/cyclone_dx/record/property.rbs +19 -0
- data/sig/sbom/cyclone_dx/record/rating.rbs +39 -0
- data/sig/sbom/cyclone_dx/record/release_notes.rbs +64 -0
- data/sig/sbom/cyclone_dx/record/resource_reference_choice.rbs +19 -0
- data/sig/sbom/cyclone_dx/record/risk.rbs +19 -0
- data/sig/sbom/cyclone_dx/record/root.rbs +84 -0
- data/sig/sbom/cyclone_dx/record/secured_by.rbs +19 -0
- data/sig/sbom/cyclone_dx/record/service.rbs +99 -0
- data/sig/sbom/cyclone_dx/record/service_data.rbs +44 -0
- data/sig/sbom/cyclone_dx/record/signature.rbs +130 -0
- data/sig/sbom/cyclone_dx/record/standard.rbs +132 -0
- data/sig/sbom/cyclone_dx/record/step.rbs +29 -0
- data/sig/sbom/cyclone_dx/record/swid.rbs +44 -0
- data/sig/sbom/cyclone_dx/record/task.rbs +84 -0
- data/sig/sbom/cyclone_dx/record/tools.rbs +19 -0
- data/sig/sbom/cyclone_dx/record/trigger.rbs +69 -0
- data/sig/sbom/cyclone_dx/record/version.rbs +24 -0
- data/sig/sbom/cyclone_dx/record/volume.rbs +49 -0
- data/sig/sbom/cyclone_dx/record/vulnerability.rbs +209 -0
- data/sig/sbom/cyclone_dx/record/vulnerability_source.rbs +19 -0
- data/sig/sbom/cyclone_dx/record/workflow.rbs +94 -0
- data/sig/sbom/cyclone_dx/record/workspace.rbs +69 -0
- data/sig/sbom/cyclone_dx/record.rbs +161 -0
- data/sig/sbom/cyclone_dx/type.rbs +16 -0
- data/sig/sbom/cyclone_dx/validator/array_validator.rbs +31 -0
- data/sig/sbom/cyclone_dx/validator/base_validator.rbs +21 -0
- data/sig/sbom/cyclone_dx/validator/boolean_validator.rbs +9 -0
- data/sig/sbom/cyclone_dx/validator/date_time_validator.rbs +10 -0
- data/sig/sbom/cyclone_dx/validator/email_address_validator.rbs +10 -0
- data/sig/sbom/cyclone_dx/validator/float_validator.rbs +12 -0
- data/sig/sbom/cyclone_dx/validator/integer_validator.rbs +12 -0
- data/sig/sbom/cyclone_dx/validator/record_validator.rbs +12 -0
- data/sig/sbom/cyclone_dx/validator/string_validator.rbs +14 -0
- data/sig/sbom/cyclone_dx/validator/union_validator.rbs +24 -0
- data/sig/sbom/cyclone_dx/validator/uri_validator.rbs +10 -0
- data/sig/sbom/cyclone_dx/validator.rbs +66 -0
- data/sig/sbom/cyclone_dx.rbs +13 -0
- data/sig/types.rbs +45 -0
- data/spec/email_address_extension_spec.rb +27 -0
- data/spec/factories/factory_helper.rb +78 -0
- data/spec/factories/record/advisory_factory.rb +11 -0
- data/spec/factories/record/annotation_factory.rb +63 -0
- data/spec/factories/record/attachment_factory.rb +9 -0
- data/spec/factories/record/cipher_suite_factory.rb +26 -0
- data/spec/factories/record/co2_measure_factory.rb +9 -0
- data/spec/factories/record/command_factory.rb +10 -0
- data/spec/factories/record/commit_factory.rb +13 -0
- data/spec/factories/record/component_data_factory.rb +28 -0
- data/spec/factories/record/component_evidence_factory.rb +44 -0
- data/spec/factories/record/component_factory.rb +102 -0
- data/spec/factories/record/component_identity_evidence_factory.rb +25 -0
- data/spec/factories/record/composition_factory.rb +20 -0
- data/spec/factories/record/condition_factory.rb +11 -0
- data/spec/factories/record/copyright_factory.rb +9 -0
- data/spec/factories/record/crypto_properties_factory.rb +191 -0
- data/spec/factories/record/data_governance_factory.rb +11 -0
- data/spec/factories/record/data_governance_responsible_party_factory.rb +31 -0
- data/spec/factories/record/declarations_factory.rb +145 -0
- data/spec/factories/record/definitions_factory.rb +9 -0
- data/spec/factories/record/dependency_factory.rb +12 -0
- data/spec/factories/record/diff_factory.rb +24 -0
- data/spec/factories/record/energy_consumption_factory.rb +15 -0
- data/spec/factories/record/energy_measure_factory.rb +9 -0
- data/spec/factories/record/energy_provider_factory.rb +15 -0
- data/spec/factories/record/environmental_consideration_factory.rb +10 -0
- data/spec/factories/record/event_factory.rb +15 -0
- data/spec/factories/record/external_reference_factory.rb +13 -0
- data/spec/factories/record/fairness_assessment_factory.rb +12 -0
- data/spec/factories/record/formula_factory.rb +13 -0
- data/spec/factories/record/graphic_factory.rb +10 -0
- data/spec/factories/record/graphics_collection_factory.rb +10 -0
- data/spec/factories/record/hash_data_factory.rb +10 -0
- data/spec/factories/record/identifiable_action_factory.rb +11 -0
- data/spec/factories/record/input_factory.rb +36 -0
- data/spec/factories/record/input_output_ml_parameter_factory.rb +9 -0
- data/spec/factories/record/issue_factory.rb +22 -0
- data/spec/factories/record/license_choice_factory.rb +23 -0
- data/spec/factories/record/license_factory.rb +99 -0
- data/spec/factories/record/metadata_factory.rb +38 -0
- data/spec/factories/record/model_card_factory.rb +59 -0
- data/spec/factories/record/note_factory.rb +11 -0
- data/spec/factories/record/organizational_contact_factory.rb +12 -0
- data/spec/factories/record/organizational_entity_factory.rb +13 -0
- data/spec/factories/record/output_factory.rb +32 -0
- data/spec/factories/record/parameter_factory.rb +11 -0
- data/spec/factories/record/patch_factory.rb +12 -0
- data/spec/factories/record/performance_metric_factory.rb +20 -0
- data/spec/factories/record/postal_address_factory.rb +14 -0
- data/spec/factories/record/property_factory.rb +11 -0
- data/spec/factories/record/rating_factory.rb +14 -0
- data/spec/factories/record/release_notes_factory.rb +20 -0
- data/spec/factories/record/resource_reference_choice_factory.rb +27 -0
- data/spec/factories/record/risk_factory.rb +10 -0
- data/spec/factories/record/root_factory.rb +23 -0
- data/spec/factories/record/secured_by_factory.rb +10 -0
- data/spec/factories/record/service_data_factory.rb +16 -0
- data/spec/factories/record/service_factory.rb +27 -0
- data/spec/factories/record/signature_factory.rb +50 -0
- data/spec/factories/record/standard_factory.rb +37 -0
- data/spec/factories/record/step_factory.rb +12 -0
- data/spec/factories/record/swid_factory.rb +16 -0
- data/spec/factories/record/task_factory.rb +24 -0
- data/spec/factories/record/tools_factory.rb +10 -0
- data/spec/factories/record/trigger_factory.rb +21 -0
- data/spec/factories/record/version_factory.rb +19 -0
- data/spec/factories/record/volume_factory.rb +16 -0
- data/spec/factories/record/vulnerability_factory.rb +70 -0
- data/spec/factories/record/vulnerability_source_factory.rb +10 -0
- data/spec/factories/record/workflow_factory.rb +26 -0
- data/spec/factories/record/workspace_factory.rb +21 -0
- data/spec/factories/record_factory.rb +159 -0
- data/spec/fixtures/cipher_info.yml +948 -0
- data/spec/fixtures/purl_data.yml +0 -0
- data/spec/sbom/cyclone_dx/enum_spec.rb +30 -0
- data/spec/sbom/cyclone_dx/field_spec.rb +104 -0
- data/spec/sbom/cyclone_dx/pattern_spec.rb +18 -0
- data/spec/sbom/cyclone_dx/record/advisory_spec.rb +14 -0
- data/spec/sbom/cyclone_dx/record/annotation_spec.rb +31 -0
- data/spec/sbom/cyclone_dx/record/attachment_spec.rb +14 -0
- data/spec/sbom/cyclone_dx/record/base_spec.rb +363 -0
- data/spec/sbom/cyclone_dx/record/cipher_suite_spec.rb +14 -0
- data/spec/sbom/cyclone_dx/record/co2_measure_spec.rb +14 -0
- data/spec/sbom/cyclone_dx/record/command_spec.rb +14 -0
- data/spec/sbom/cyclone_dx/record/commit_spec.rb +14 -0
- data/spec/sbom/cyclone_dx/record/component_data_spec.rb +14 -0
- data/spec/sbom/cyclone_dx/record/component_evidence_spec.rb +14 -0
- data/spec/sbom/cyclone_dx/record/component_identity_evidence_spec.rb +14 -0
- data/spec/sbom/cyclone_dx/record/component_spec.rb +14 -0
- data/spec/sbom/cyclone_dx/record/composition_spec.rb +14 -0
- data/spec/sbom/cyclone_dx/record/condition_spec.rb +14 -0
- data/spec/sbom/cyclone_dx/record/copyright_spec.rb +14 -0
- data/spec/sbom/cyclone_dx/record/crypto_properties_spec.rb +14 -0
- data/spec/sbom/cyclone_dx/record/data_governance_responsible_party_spec.rb +19 -0
- data/spec/sbom/cyclone_dx/record/data_governance_spec.rb +14 -0
- data/spec/sbom/cyclone_dx/record/declarations_spec.rb +14 -0
- data/spec/sbom/cyclone_dx/record/definitions_spec.rb +14 -0
- data/spec/sbom/cyclone_dx/record/dependency_spec.rb +14 -0
- data/spec/sbom/cyclone_dx/record/diff_spec.rb +14 -0
- data/spec/sbom/cyclone_dx/record/energy_consumption_spec.rb +14 -0
- data/spec/sbom/cyclone_dx/record/energy_measure_spec.rb +14 -0
- data/spec/sbom/cyclone_dx/record/energy_provider_spec.rb +14 -0
- data/spec/sbom/cyclone_dx/record/environmental_consideration_spec.rb +14 -0
- data/spec/sbom/cyclone_dx/record/event_spec.rb +14 -0
- data/spec/sbom/cyclone_dx/record/external_reference_spec.rb +14 -0
- data/spec/sbom/cyclone_dx/record/fairness_assessment_spec.rb +14 -0
- data/spec/sbom/cyclone_dx/record/formula_spec.rb +14 -0
- data/spec/sbom/cyclone_dx/record/graphic_spec.rb +14 -0
- data/spec/sbom/cyclone_dx/record/graphics_collection_spec.rb +14 -0
- data/spec/sbom/cyclone_dx/record/hash_data_spec.rb +14 -0
- data/spec/sbom/cyclone_dx/record/identifiable_action_spec.rb +14 -0
- data/spec/sbom/cyclone_dx/record/input_output_ml_parameter_spec.rb +14 -0
- data/spec/sbom/cyclone_dx/record/input_spec.rb +14 -0
- data/spec/sbom/cyclone_dx/record/issue_spec.rb +14 -0
- data/spec/sbom/cyclone_dx/record/license_choice_spec.rb +26 -0
- data/spec/sbom/cyclone_dx/record/license_spec.rb +14 -0
- data/spec/sbom/cyclone_dx/record/metadata_spec.rb +14 -0
- data/spec/sbom/cyclone_dx/record/model_card_spec.rb +14 -0
- data/spec/sbom/cyclone_dx/record/note_spec.rb +14 -0
- data/spec/sbom/cyclone_dx/record/organizational_contact_spec.rb +14 -0
- data/spec/sbom/cyclone_dx/record/organizational_entity_spec.rb +14 -0
- data/spec/sbom/cyclone_dx/record/output_spec.rb +14 -0
- data/spec/sbom/cyclone_dx/record/parameter_spec.rb +14 -0
- data/spec/sbom/cyclone_dx/record/patch_spec.rb +14 -0
- data/spec/sbom/cyclone_dx/record/performance_metric_spec.rb +14 -0
- data/spec/sbom/cyclone_dx/record/postal_address_spec.rb +14 -0
- data/spec/sbom/cyclone_dx/record/property_spec.rb +14 -0
- data/spec/sbom/cyclone_dx/record/rating_spec.rb +14 -0
- data/spec/sbom/cyclone_dx/record/release_notes_spec.rb +14 -0
- data/spec/sbom/cyclone_dx/record/resource_reference_choice_spec.rb +14 -0
- data/spec/sbom/cyclone_dx/record/risk_spec.rb +14 -0
- data/spec/sbom/cyclone_dx/record/root_spec.rb +14 -0
- data/spec/sbom/cyclone_dx/record/secured_by_spec.rb +14 -0
- data/spec/sbom/cyclone_dx/record/service_data_spec.rb +14 -0
- data/spec/sbom/cyclone_dx/record/service_spec.rb +14 -0
- data/spec/sbom/cyclone_dx/record/signature_spec.rb +26 -0
- data/spec/sbom/cyclone_dx/record/standard_spec.rb +14 -0
- data/spec/sbom/cyclone_dx/record/step_spec.rb +14 -0
- data/spec/sbom/cyclone_dx/record/swid_spec.rb +14 -0
- data/spec/sbom/cyclone_dx/record/task_spec.rb +14 -0
- data/spec/sbom/cyclone_dx/record/tools_spec.rb +14 -0
- data/spec/sbom/cyclone_dx/record/trigger_spec.rb +14 -0
- data/spec/sbom/cyclone_dx/record/version_spec.rb +14 -0
- data/spec/sbom/cyclone_dx/record/volume_spec.rb +14 -0
- data/spec/sbom/cyclone_dx/record/vulnerability_source_spec.rb +14 -0
- data/spec/sbom/cyclone_dx/record/vulnerability_spec.rb +14 -0
- data/spec/sbom/cyclone_dx/record/workflow_spec.rb +14 -0
- data/spec/sbom/cyclone_dx/record/workspace_spec.rb +14 -0
- data/spec/sbom/cyclone_dx/record_spec.rb +7 -0
- data/spec/sbom/cyclone_dx/validator/array_validator_spec.rb +184 -0
- data/spec/sbom/cyclone_dx/validator/base_validator_spec.rb +71 -0
- data/spec/sbom/cyclone_dx/validator/boolean_validator_spec.rb +26 -0
- data/spec/sbom/cyclone_dx/validator/date_time_validator_spec.rb +28 -0
- data/spec/sbom/cyclone_dx/validator/email_address_validator_spec.rb +23 -0
- data/spec/sbom/cyclone_dx/validator/float_validator_spec.rb +71 -0
- data/spec/sbom/cyclone_dx/validator/integer_validator_spec.rb +71 -0
- data/spec/sbom/cyclone_dx/validator/record_validator_spec.rb +35 -0
- data/spec/sbom/cyclone_dx/validator/string_validator_spec.rb +94 -0
- data/spec/sbom/cyclone_dx/validator/union_validator_spec.rb +65 -0
- data/spec/sbom/cyclone_dx/validator/uri_validator_spec.rb +21 -0
- data/spec/sbom/cyclone_dx/validator_spec.rb +38 -0
- data/spec/sbom/cyclone_dx/version_spec.rb +9 -0
- data/spec/sbom/cyclone_dx_spec.rb +7 -0
- data/spec/spec_helper.rb +39 -0
- metadata +377 -6
@@ -0,0 +1,434 @@
|
|
1
|
+
module SBOM
|
2
|
+
module CycloneDX
|
3
|
+
interface _FieldClass
|
4
|
+
end
|
5
|
+
|
6
|
+
module Field
|
7
|
+
type undefined = :undefined
|
8
|
+
type defaultValue[T < fieldValue] = T? | ^() -> T?
|
9
|
+
|
10
|
+
interface _FieldBaseClass[T < fieldValue]
|
11
|
+
def field_name: -> Symbol
|
12
|
+
def validator: -> Validator::BaseValidator[T]
|
13
|
+
def json_name: -> String
|
14
|
+
def required?: -> bool
|
15
|
+
def const?: -> bool
|
16
|
+
def const: -> T?
|
17
|
+
def default?: -> bool
|
18
|
+
def default: -> T?
|
19
|
+
def coerce: (untyped) -> T?
|
20
|
+
end
|
21
|
+
|
22
|
+
class Base[T < fieldValue]
|
23
|
+
extend _FieldBaseClass
|
24
|
+
|
25
|
+
attr_reader errors: ::Array[::String]
|
26
|
+
attr_reader value: T?
|
27
|
+
|
28
|
+
@value_set: bool
|
29
|
+
|
30
|
+
self.@const_present: bool
|
31
|
+
self.@default: fieldValue? | ^() -> fieldValue?
|
32
|
+
self.@default_present: bool
|
33
|
+
|
34
|
+
def initialize: -> void
|
35
|
+
def value=: (T?) -> void
|
36
|
+
def value?: -> bool
|
37
|
+
def valid?: -> bool
|
38
|
+
|
39
|
+
def field_name: -> Symbol
|
40
|
+
def validator: -> Validator::BaseValidator[T]
|
41
|
+
def json_name: -> String
|
42
|
+
def required?: -> bool
|
43
|
+
def const: -> T?
|
44
|
+
def const?: -> bool
|
45
|
+
def default: -> T?
|
46
|
+
def default?: -> bool
|
47
|
+
end
|
48
|
+
|
49
|
+
class ConstBase[T < fieldValue] < Base[T]
|
50
|
+
def initialize: -> void
|
51
|
+
end
|
52
|
+
|
53
|
+
class PropBase[T < fieldValue] < Base[T]
|
54
|
+
def initialize: (*T?) -> void
|
55
|
+
|
56
|
+
def value=: (T?) -> void
|
57
|
+
def unset_value: -> void
|
58
|
+
def self.coerce: [T < fieldValue] (untyped) -> T?
|
59
|
+
end
|
60
|
+
|
61
|
+
def self.array:
|
62
|
+
[T < fieldValue, U < singleton(ConstBase)] (
|
63
|
+
field_name: Symbol,
|
64
|
+
items: Validator::ArrayValidator::itemsValidator | Validator::ArrayValidator::validSingleTypeLabel | Validator::arrayItemValidatorParams,
|
65
|
+
?unique: bool,
|
66
|
+
?required: bool,
|
67
|
+
?json_name: ::String?,
|
68
|
+
?const: ::Array[T]?,
|
69
|
+
?default: undefined
|
70
|
+
) -> U
|
71
|
+
| [T < fieldValue, U < singleton(PropBase)] (
|
72
|
+
field_name: Symbol,
|
73
|
+
items: Validator::ArrayValidator::itemsValidator | Validator::ArrayValidator::validSingleTypeLabel | Validator::arrayItemValidatorParams,
|
74
|
+
?unique: bool,
|
75
|
+
?required: bool,
|
76
|
+
?json_name: ::String?,
|
77
|
+
?const: undefined,
|
78
|
+
?default: defaultValue[::Array[T]] | undefined
|
79
|
+
) -> U
|
80
|
+
|
81
|
+
def self.boolean:
|
82
|
+
[T < singleton(ConstBase)] (
|
83
|
+
field_name: Symbol,
|
84
|
+
?required: bool,
|
85
|
+
?json_name: ::String?,
|
86
|
+
?const: bool?,
|
87
|
+
?default: undefined
|
88
|
+
) -> T
|
89
|
+
| [T < singleton(PropBase)] (
|
90
|
+
field_name: Symbol,
|
91
|
+
?required: bool,
|
92
|
+
?json_name: ::String?,
|
93
|
+
?const: undefined,
|
94
|
+
?default: defaultValue[bool] | undefined
|
95
|
+
) -> T
|
96
|
+
|
97
|
+
def self.date_time:
|
98
|
+
[T < singleton(ConstBase)] (
|
99
|
+
field_name: Symbol,
|
100
|
+
?required: bool,
|
101
|
+
?json_name: ::String?,
|
102
|
+
?const: dateTime?,
|
103
|
+
?default: undefined
|
104
|
+
) -> T
|
105
|
+
| [T < singleton(PropBase)] (
|
106
|
+
field_name: Symbol,
|
107
|
+
?required: bool,
|
108
|
+
?json_name: ::String?,
|
109
|
+
?const: undefined,
|
110
|
+
?default: defaultValue[dateTime] | undefined
|
111
|
+
) -> T
|
112
|
+
|
113
|
+
def self.email_address:
|
114
|
+
[T < singleton(ConstBase)] (
|
115
|
+
field_name: Symbol,
|
116
|
+
?required: bool,
|
117
|
+
?json_name: ::String?,
|
118
|
+
?const: emailAddress?,
|
119
|
+
?default: undefined
|
120
|
+
) -> T
|
121
|
+
| [T < singleton(PropBase)] (
|
122
|
+
field_name: Symbol,
|
123
|
+
?required: bool,
|
124
|
+
?json_name: ::String?,
|
125
|
+
?const: undefined,
|
126
|
+
?default: defaultValue[emailAddress] | undefined
|
127
|
+
) -> T
|
128
|
+
|
129
|
+
def self.float:
|
130
|
+
[T < singleton(ConstBase)] (
|
131
|
+
field_name: Symbol,
|
132
|
+
?minimum: number?,
|
133
|
+
?maximum: number?,
|
134
|
+
?required: bool,
|
135
|
+
?json_name: ::String?,
|
136
|
+
?const: ::Float?,
|
137
|
+
?default: undefined
|
138
|
+
) -> T
|
139
|
+
| [T < singleton(PropBase)] (
|
140
|
+
field_name: Symbol,
|
141
|
+
?minimum: number?,
|
142
|
+
?maximum: number?,
|
143
|
+
?required: bool,
|
144
|
+
?json_name: ::String?,
|
145
|
+
?const: undefined,
|
146
|
+
?default: defaultValue[::Float] | undefined
|
147
|
+
) -> T
|
148
|
+
|
149
|
+
def self.integer:
|
150
|
+
[T < singleton(ConstBase)] (
|
151
|
+
field_name: Symbol,
|
152
|
+
?minimum: number?,
|
153
|
+
?maximum: number?,
|
154
|
+
?required: bool,
|
155
|
+
?json_name: ::String?,
|
156
|
+
?const: ::Integer?,
|
157
|
+
?default: undefined
|
158
|
+
) -> T
|
159
|
+
| [T < singleton(PropBase)] (
|
160
|
+
field_name: Symbol,
|
161
|
+
?minimum: number?,
|
162
|
+
?maximum: number?,
|
163
|
+
?required: bool,
|
164
|
+
?json_name: ::String?,
|
165
|
+
?const: undefined,
|
166
|
+
?default: defaultValue[::Integer] | undefined
|
167
|
+
) -> T
|
168
|
+
|
169
|
+
def self.record:
|
170
|
+
[T < singleton(ConstBase)] (
|
171
|
+
field_name: Symbol,
|
172
|
+
klass: singleton(SBOM::CycloneDX::Record::Base),
|
173
|
+
?required: bool,
|
174
|
+
?json_name: ::String?,
|
175
|
+
?const: CycloneDX::Record::Base?,
|
176
|
+
?default: undefined
|
177
|
+
) -> T
|
178
|
+
| [T < singleton(PropBase)] (
|
179
|
+
field_name: Symbol,
|
180
|
+
klass: singleton(SBOM::CycloneDX::Record::Base),
|
181
|
+
?required: bool,
|
182
|
+
?json_name: ::String?,
|
183
|
+
?const: undefined,
|
184
|
+
?default: defaultValue[CycloneDX::Record::Base] | undefined
|
185
|
+
) -> T
|
186
|
+
|
187
|
+
def self.string:
|
188
|
+
[T < singleton(ConstBase)] (
|
189
|
+
field_name: Symbol,
|
190
|
+
?enum: ::Array[::String]?,
|
191
|
+
?max_length: ::Integer?,
|
192
|
+
?min_length: ::Integer?,
|
193
|
+
?pattern: Regexp,
|
194
|
+
?required: bool,
|
195
|
+
?json_name: ::String?,
|
196
|
+
?const: ::String?,
|
197
|
+
?default: undefined
|
198
|
+
) -> T
|
199
|
+
| [T < singleton(PropBase)] (
|
200
|
+
field_name: Symbol,
|
201
|
+
?enum: ::Array[::String]?,
|
202
|
+
?max_length: ::Integer?,
|
203
|
+
?min_length: ::Integer?,
|
204
|
+
?pattern: Regexp,
|
205
|
+
?required: bool,
|
206
|
+
?json_name: ::String?,
|
207
|
+
?const: undefined,
|
208
|
+
?default: defaultValue[::String] | undefined
|
209
|
+
) -> T
|
210
|
+
|
211
|
+
def self.union:
|
212
|
+
[T < singleton(ConstBase)] (
|
213
|
+
field_name: Symbol,
|
214
|
+
of: ::Array[Validator::UnionValidator::unionableValidatorParams],
|
215
|
+
?required: bool,
|
216
|
+
?json_name: ::String?,
|
217
|
+
?const: fieldValue?,
|
218
|
+
?default: undefined
|
219
|
+
) -> T
|
220
|
+
| [T < singleton(PropBase)] (
|
221
|
+
field_name: Symbol,
|
222
|
+
of: ::Array[Validator::UnionValidator::unionableValidatorParams],
|
223
|
+
?required: bool,
|
224
|
+
?json_name: ::String?,
|
225
|
+
?const: undefined,
|
226
|
+
?default: defaultValue[fieldValue] | undefined
|
227
|
+
) -> T
|
228
|
+
|
229
|
+
def self.uri:
|
230
|
+
[T < singleton(ConstBase)] (
|
231
|
+
field_name: Symbol,
|
232
|
+
?required: bool,
|
233
|
+
?json_name: ::String?,
|
234
|
+
?const: uri?,
|
235
|
+
?default: undefined
|
236
|
+
) -> T
|
237
|
+
| [T < singleton(PropBase)] (
|
238
|
+
field_name: Symbol,
|
239
|
+
?required: bool,
|
240
|
+
?json_name: ::String?,
|
241
|
+
?const: undefined,
|
242
|
+
?default: defaultValue[uri] | undefined
|
243
|
+
) -> T
|
244
|
+
|
245
|
+
private def self.Field:
|
246
|
+
[T < singleton(PropBase)] (
|
247
|
+
field_name: Symbol,
|
248
|
+
type: :array,
|
249
|
+
validator: Validator::ArrayValidator,
|
250
|
+
?json_name: ::String?,
|
251
|
+
?const: undefined,
|
252
|
+
?default: defaultValue[::Array[fieldValue]] | undefined
|
253
|
+
) { (untyped) -> ::Array[fieldValue]? } -> T
|
254
|
+
| [T < singleton(ConstBase)] (
|
255
|
+
field_name: Symbol,
|
256
|
+
type: :array,
|
257
|
+
validator: Validator::ArrayValidator,
|
258
|
+
?json_name: ::String?,
|
259
|
+
?const: ::Array[fieldValue]?,
|
260
|
+
?default: undefined
|
261
|
+
) { (untyped) -> ::Array[fieldValue]? } -> T
|
262
|
+
| [T < singleton(ConstBase)] (
|
263
|
+
field_name: Symbol,
|
264
|
+
type: :boolean,
|
265
|
+
validator: Validator::BooleanValidator,
|
266
|
+
?json_name: ::String?,
|
267
|
+
?const: bool?,
|
268
|
+
?default: undefined
|
269
|
+
) { (untyped) -> bool? } -> T
|
270
|
+
| [T < singleton(PropBase)] (
|
271
|
+
field_name: Symbol,
|
272
|
+
type: :boolean,
|
273
|
+
validator: Validator::BooleanValidator,
|
274
|
+
?json_name: ::String?,
|
275
|
+
?const: undefined,
|
276
|
+
?default: defaultValue[bool] | undefined
|
277
|
+
) { (untyped) -> bool? } -> T
|
278
|
+
| [T < singleton(ConstBase)] (
|
279
|
+
field_name: Symbol,
|
280
|
+
type: :date_time,
|
281
|
+
validator: Validator::DateTimeValidator,
|
282
|
+
?json_name: ::String?,
|
283
|
+
?const: dateTime?,
|
284
|
+
?default: undefined
|
285
|
+
) { (untyped) -> dateTime? } -> T
|
286
|
+
| [T < singleton(PropBase)] (
|
287
|
+
field_name: Symbol,
|
288
|
+
type: :date_time,
|
289
|
+
validator: Validator::DateTimeValidator,
|
290
|
+
?json_name: ::String?,
|
291
|
+
?const: undefined,
|
292
|
+
?default: defaultValue[dateTime] | undefined
|
293
|
+
) { (untyped) -> dateTime? } -> T
|
294
|
+
| [T < singleton(ConstBase)] (
|
295
|
+
field_name: Symbol,
|
296
|
+
type: :email_address,
|
297
|
+
validator: Validator::EmailAddressValidator,
|
298
|
+
?json_name: ::String?,
|
299
|
+
?const: emailAddress?,
|
300
|
+
?default: undefined
|
301
|
+
) { (untyped) -> emailAddress? } -> T
|
302
|
+
| [T < singleton(PropBase)] (
|
303
|
+
field_name: Symbol,
|
304
|
+
type: :email_address,
|
305
|
+
validator: Validator::EmailAddressValidator,
|
306
|
+
?json_name: ::String?,
|
307
|
+
?const: undefined,
|
308
|
+
?default: defaultValue[emailAddress] | undefined
|
309
|
+
) { (untyped) -> emailAddress? } -> T
|
310
|
+
| [T < singleton(ConstBase)] (
|
311
|
+
field_name: Symbol,
|
312
|
+
type: :float,
|
313
|
+
validator: Validator::FloatValidator,
|
314
|
+
?json_name: ::String?,
|
315
|
+
?const: ::Float?,
|
316
|
+
?default: undefined
|
317
|
+
) { (untyped) -> ::Float? } -> T
|
318
|
+
| [T < singleton(PropBase)] (
|
319
|
+
field_name: Symbol,
|
320
|
+
type: :float,
|
321
|
+
validator: Validator::FloatValidator,
|
322
|
+
?json_name: ::String?,
|
323
|
+
?const: undefined,
|
324
|
+
?default: defaultValue[::Float] | undefined
|
325
|
+
) { (untyped) -> ::Float? } -> T
|
326
|
+
| [T < singleton(ConstBase)] (
|
327
|
+
field_name: Symbol,
|
328
|
+
type: :integer,
|
329
|
+
validator: Validator::IntegerValidator,
|
330
|
+
?json_name: ::String?,
|
331
|
+
?const: ::Integer?,
|
332
|
+
?default: undefined
|
333
|
+
) { (untyped) -> ::Integer? } -> T
|
334
|
+
| [T < singleton(PropBase)] (
|
335
|
+
field_name: Symbol,
|
336
|
+
type: :integer,
|
337
|
+
validator: Validator::IntegerValidator,
|
338
|
+
?json_name: ::String?,
|
339
|
+
?const: undefined,
|
340
|
+
?default: defaultValue[::Integer] | undefined
|
341
|
+
) { (untyped) -> ::Integer? } -> T
|
342
|
+
| [T < singleton(ConstBase)] (
|
343
|
+
field_name: Symbol,
|
344
|
+
type: singleton(SBOM::CycloneDX::Record::Base),
|
345
|
+
validator: Validator::RecordValidator,
|
346
|
+
?json_name: ::String?,
|
347
|
+
?const: CycloneDX::Record::Base?,
|
348
|
+
?default: undefined
|
349
|
+
) { (untyped) -> CycloneDX::Record::Base? } -> T
|
350
|
+
| [T < singleton(PropBase)] (
|
351
|
+
field_name: Symbol,
|
352
|
+
type: singleton(SBOM::CycloneDX::Record::Base),
|
353
|
+
validator: Validator::RecordValidator,
|
354
|
+
?json_name: ::String?,
|
355
|
+
?const: undefined,
|
356
|
+
?default: defaultValue[CycloneDX::Record::Base?] | undefined
|
357
|
+
) { (untyped) -> CycloneDX::Record::Base? } -> T
|
358
|
+
| [T < singleton(ConstBase)] (
|
359
|
+
field_name: Symbol,
|
360
|
+
type: :string,
|
361
|
+
validator: Validator::StringValidator,
|
362
|
+
?json_name: ::String?,
|
363
|
+
?const: ::String?,
|
364
|
+
?default: undefined
|
365
|
+
) { (untyped) -> ::String? } -> T
|
366
|
+
| [T < singleton(PropBase)] (
|
367
|
+
field_name: Symbol,
|
368
|
+
type: :string,
|
369
|
+
validator: Validator::StringValidator,
|
370
|
+
?json_name: ::String?,
|
371
|
+
?const: undefined,
|
372
|
+
?default: defaultValue[::String] | undefined
|
373
|
+
) { (untyped) -> ::String? } -> T
|
374
|
+
| [T < singleton(ConstBase)] (
|
375
|
+
field_name: Symbol,
|
376
|
+
type: :union,
|
377
|
+
validator: Validator::UnionValidator,
|
378
|
+
?json_name: ::String?,
|
379
|
+
?const: fieldValue?,
|
380
|
+
?default: undefined
|
381
|
+
) { (untyped) -> fieldValue? } -> T
|
382
|
+
| [T < singleton(PropBase)] (
|
383
|
+
field_name: Symbol,
|
384
|
+
type: :union,
|
385
|
+
validator: Validator::UnionValidator,
|
386
|
+
?json_name: ::String?,
|
387
|
+
?const: undefined,
|
388
|
+
?default: defaultValue[fieldValue] | undefined
|
389
|
+
) { (untyped) -> fieldValue? } -> T
|
390
|
+
| [T < singleton(ConstBase)] (
|
391
|
+
field_name: Symbol,
|
392
|
+
type: :uri,
|
393
|
+
validator: Validator::URIValidator,
|
394
|
+
?json_name: ::String?,
|
395
|
+
?const: uri?,
|
396
|
+
?default: undefined
|
397
|
+
) { (untyped) -> uri? } -> T
|
398
|
+
| [T < singleton(PropBase)] (
|
399
|
+
field_name: Symbol,
|
400
|
+
type: :uri,
|
401
|
+
validator: Validator::URIValidator,
|
402
|
+
?json_name: ::String?,
|
403
|
+
?const: undefined,
|
404
|
+
?default: defaultValue[uri] | undefined
|
405
|
+
) { (untyped) -> uri? } -> T
|
406
|
+
| [T < fieldValue, U < singleton(PropBase)] (
|
407
|
+
field_name: Symbol,
|
408
|
+
type: fieldTypeLabel,
|
409
|
+
validator: Validator::BaseValidator[T],
|
410
|
+
?json_name: ::String?,
|
411
|
+
?const: undefined,
|
412
|
+
?default: defaultValue[T] | undefined
|
413
|
+
) { (untyped) -> T? } -> U
|
414
|
+
| [T < fieldValue, U < singleton(ConstBase)] (
|
415
|
+
field_name: Symbol,
|
416
|
+
type: fieldTypeLabel,
|
417
|
+
validator: Validator::BaseValidator[T],
|
418
|
+
?json_name: ::String?,
|
419
|
+
?const: T?,
|
420
|
+
?default: undefined
|
421
|
+
) { (untyped) -> T? } -> U
|
422
|
+
| [T < fieldValue, U < singleton(ConstBase)] (
|
423
|
+
field_name: Symbol,
|
424
|
+
type: fieldTypeLabel,
|
425
|
+
validator: Validator::BaseValidator[T],
|
426
|
+
?json_name: ::String?,
|
427
|
+
?const: T? | undefined,
|
428
|
+
?default: defaultValue[T] | undefined
|
429
|
+
) { (untyped) -> T? } -> U
|
430
|
+
|
431
|
+
private def self.validate_types: [T < fieldValue] (fieldTypeLabel, Validator::BaseValidator[untyped], **(T? | defaultValue[T])) -> void
|
432
|
+
end
|
433
|
+
end
|
434
|
+
end
|
@@ -0,0 +1,24 @@
|
|
1
|
+
module SBOM
|
2
|
+
module CycloneDX
|
3
|
+
module Pattern
|
4
|
+
BOM_SERIAL_NUMBER: ::Regexp
|
5
|
+
CDX_BOM_VERSION: ::Regexp
|
6
|
+
CDX_URN_ASSIGNED_NAME: ::Regexp
|
7
|
+
CDX_URN_FRAGMENT: ::Regexp
|
8
|
+
CDX_URN_NSS: ::Regexp
|
9
|
+
CDX_URN_WITH_FRAGMENT: ::Regexp
|
10
|
+
CDX_URN: ::Regexp
|
11
|
+
CONTENT_TYPE: ::Regexp
|
12
|
+
HASH_VALUE: ::Regexp
|
13
|
+
LOCALE: ::Regexp
|
14
|
+
MIME_TYPE: ::Regexp
|
15
|
+
OPEN_CRE: ::Regexp
|
16
|
+
REF_LINK: ::Regexp
|
17
|
+
REF_OR_CDX_URN: ::Regexp
|
18
|
+
UUID: ::Regexp
|
19
|
+
DEFAULT: ::Regexp
|
20
|
+
|
21
|
+
def self.match_exactly?: (::Regexp, ::String) -> bool
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
@@ -0,0 +1,19 @@
|
|
1
|
+
module SBOM
|
2
|
+
module CycloneDX
|
3
|
+
module Record
|
4
|
+
class Advisory < Base
|
5
|
+
def initialize: (?title: String?, url: uri) -> void
|
6
|
+
|
7
|
+
def title: () -> String?
|
8
|
+
def title=: (String?) -> String?
|
9
|
+
def title?: () -> bool
|
10
|
+
def title_valid?: () -> bool
|
11
|
+
|
12
|
+
def url: () -> uri
|
13
|
+
def url=: (uri) -> uri
|
14
|
+
def url?: () -> bool
|
15
|
+
def url_valid?: () -> bool
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
@@ -0,0 +1,63 @@
|
|
1
|
+
module SBOM
|
2
|
+
module CycloneDX
|
3
|
+
module Record
|
4
|
+
class Annotation < Base
|
5
|
+
class Annotator < Base
|
6
|
+
def initialize: (?organization: OrganizationalEntity?, ?individual: OrganizationalContact?, ?component: Component?, ?service: Service?) -> void
|
7
|
+
|
8
|
+
def organization: () -> OrganizationalEntity?
|
9
|
+
def organization=: (OrganizationalEntity?) -> OrganizationalEntity?
|
10
|
+
def organization?: () -> bool
|
11
|
+
def organization_valid?: () -> bool
|
12
|
+
|
13
|
+
def individual: () -> OrganizationalContact?
|
14
|
+
def individual=: (OrganizationalContact?) -> OrganizationalContact?
|
15
|
+
def individual?: () -> bool
|
16
|
+
def individual_valid?: () -> bool
|
17
|
+
|
18
|
+
def component: () -> Component?
|
19
|
+
def component=: (Component?) -> Component?
|
20
|
+
def component?: () -> bool
|
21
|
+
def component_valid?: () -> bool
|
22
|
+
|
23
|
+
def service: () -> Service?
|
24
|
+
def service=: (Service?) -> Service?
|
25
|
+
def service?: () -> bool
|
26
|
+
def service_valid?: () -> bool
|
27
|
+
end
|
28
|
+
|
29
|
+
def initialize: (?bom_ref: String?, subjects: Array[String], annotator: Annotator, timestamp: dateTime, text: String, ?signature: Signature::signatureChoice?) -> void
|
30
|
+
|
31
|
+
def bom_ref: () -> String?
|
32
|
+
def bom_ref=: (String?) -> String?
|
33
|
+
def bom_ref?: () -> bool
|
34
|
+
def bom_ref_valid?: () -> bool
|
35
|
+
|
36
|
+
def subjects: () -> Array[String]
|
37
|
+
def subjects=: (Array[String]) -> Array[String]
|
38
|
+
def subjects?: () -> bool
|
39
|
+
def subjects_valid?: () -> bool
|
40
|
+
|
41
|
+
def annotator: () -> Annotator
|
42
|
+
def annotator=: (Annotator) -> Annotator
|
43
|
+
def annotator?: () -> bool
|
44
|
+
def annotator_valid?: () -> bool
|
45
|
+
|
46
|
+
def timestamp: () -> dateTime
|
47
|
+
def timestamp=: (dateTime) -> dateTime
|
48
|
+
def timestamp?: () -> bool
|
49
|
+
def timestamp_valid?: () -> bool
|
50
|
+
|
51
|
+
def text: () -> String
|
52
|
+
def text=: (String) -> String
|
53
|
+
def text?: () -> bool
|
54
|
+
def text_valid?: () -> bool
|
55
|
+
|
56
|
+
def signature: () -> Signature::signatureChoice?
|
57
|
+
def signature=: (Signature::signatureChoice?) -> Signature::signatureChoice?
|
58
|
+
def signature?: () -> bool
|
59
|
+
def signature_valid?: () -> bool
|
60
|
+
end
|
61
|
+
end
|
62
|
+
end
|
63
|
+
end
|
@@ -0,0 +1,24 @@
|
|
1
|
+
module SBOM
|
2
|
+
module CycloneDX
|
3
|
+
module Record
|
4
|
+
class Attachment < Base
|
5
|
+
def initialize: (content: String, ?content_type: String) -> void
|
6
|
+
|
7
|
+
def content_type: () -> String
|
8
|
+
def content_type=: (String) -> String
|
9
|
+
def content_type?: () -> bool
|
10
|
+
def content_type_valid?: () -> bool
|
11
|
+
|
12
|
+
def content: () -> String
|
13
|
+
def content=: (String) -> String
|
14
|
+
def content?: () -> bool
|
15
|
+
def content_valid?: () -> bool
|
16
|
+
|
17
|
+
type encodingConst = "base64"
|
18
|
+
def encoding: () -> encodingConst
|
19
|
+
def encoding?: () -> true
|
20
|
+
def encoding_valid?: () -> true
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
@@ -0,0 +1,62 @@
|
|
1
|
+
module SBOM
|
2
|
+
module CycloneDX
|
3
|
+
module Record
|
4
|
+
class Base
|
5
|
+
include Comparable
|
6
|
+
include _Instance
|
7
|
+
extend _Klass
|
8
|
+
|
9
|
+
@errors: Hash[Symbol | String, Array[String]]
|
10
|
+
|
11
|
+
def <=>: (untyped other) -> Integer?
|
12
|
+
def valid!: -> void
|
13
|
+
|
14
|
+
private def populate_fields: (**untyped) -> void
|
15
|
+
private def json_name: (Symbol) -> String
|
16
|
+
private def validator_for: (Symbol) -> SBOM::CycloneDX::Validator::BaseValidator[fieldValue]
|
17
|
+
private def validate_value: (Symbol) -> Array[String]
|
18
|
+
private def validate_custom: (*Symbol, ?message: String?) { (*fieldValue?) -> (bool? | String | Array[String]) } -> Array[String]
|
19
|
+
|
20
|
+
@_fields: Hash[Symbol, SBOM::CycloneDX::Field::Base[fieldValue]]
|
21
|
+
self.@json_name: String
|
22
|
+
self.@json_name_map: Hash[Symbol, String]
|
23
|
+
self.@fields: Hash[Symbol, singleton(SBOM::CycloneDX::Field::Base)]
|
24
|
+
self.@custom_validators: Array[[Array[Symbol], String?, ^(*fieldValue?) -> (bool? | String | Array[String])]]
|
25
|
+
|
26
|
+
def self.json_create: (::Hash[Symbol | String, untyped]) -> instance
|
27
|
+
private def self.in_subclass_body?: () -> bool
|
28
|
+
private def self.json_name_map: () -> Hash[Symbol, String]
|
29
|
+
private def self.build_prop:
|
30
|
+
(Symbol, :array, Validator::arrayValidatorParams, ?required: bool, ?json_name: String?) -> void
|
31
|
+
| (Symbol, :boolean, Validator::booleanValidatorParams, ?required: bool, ?json_name: String?) -> void
|
32
|
+
| (Symbol, :date_time, Validator::dateTimeValidatorParams, ?required: bool, ?json_name: String?) -> void
|
33
|
+
| (Symbol, :email_address, Validator::emailAddressValidatorParams, ?required: bool, ?json_name: String?) -> void
|
34
|
+
| (Symbol, :float, Validator::floatValidatorParams, ?required: bool, ?json_name: String?) -> void
|
35
|
+
| (Symbol, :integer, Validator::integerValidatorParams, ?required: bool, ?json_name: String?) -> void
|
36
|
+
| (Symbol, singleton(SBOM::CycloneDX::Record::Base), Validator::recordValidatorParams, ?required: bool, ?json_name: String?) -> void
|
37
|
+
| (Symbol, :string, Validator::stringValidatorParams, ?required: bool, ?json_name: String?) -> void
|
38
|
+
| (Symbol, :union, Validator::unionValidatorParams, ?required: bool, ?json_name: String?) -> void
|
39
|
+
| (Symbol, :uri, Validator::uriValidatorParams, ?required: bool, ?json_name: String?) -> void
|
40
|
+
| (Symbol, fieldTypeLabel, Validator::anyValidatorParams, ?required: bool, ?json_name: String?) -> void
|
41
|
+
private def self.validator_for: (Symbol) -> SBOM::CycloneDX::Validator::BaseValidator[fieldValue]
|
42
|
+
private def self.resolve_prop_kwargs:
|
43
|
+
(:array, **untyped) -> Validator::arrayValidatorParams
|
44
|
+
| (:boolean, **untyped) -> Validator::booleanValidatorParams
|
45
|
+
| (:date_time, **untyped) -> Validator::dateTimeValidatorParams
|
46
|
+
| (:email_address, **untyped) -> Validator::emailAddressValidatorParams
|
47
|
+
| (:float, **untyped) -> Validator::floatValidatorParams
|
48
|
+
| (:integer, **untyped) -> Validator::integerValidatorParams
|
49
|
+
| (singleton(SBOM::CycloneDX::Record::Base), **untyped) -> Validator::recordValidatorParams
|
50
|
+
| (:string, **untyped) -> Validator::stringValidatorParams
|
51
|
+
| (:union, **untyped) -> Validator::unionValidatorParams
|
52
|
+
| (:uri, **untyped) -> Validator::uriValidatorParams
|
53
|
+
| (fieldTypeLabel, **untyped) -> Validator::anyValidatorParams # Should never be called
|
54
|
+
private def self.validate_presence: (
|
55
|
+
::Array[Symbol] props,
|
56
|
+
Record::presenceCheck presence,
|
57
|
+
?String? message
|
58
|
+
) -> [Array[Symbol], String?, ^(*fieldValue?) -> (bool? | String | Array[String])]
|
59
|
+
end
|
60
|
+
end
|
61
|
+
end
|
62
|
+
end
|
@@ -0,0 +1,24 @@
|
|
1
|
+
module SBOM
|
2
|
+
module CycloneDX
|
3
|
+
module Record
|
4
|
+
class CipherSuite < Base
|
5
|
+
def initialize: (?name: String?, ?algorithms: Array[String]?, ?identifiers: Array[String]?) -> void
|
6
|
+
|
7
|
+
def name: () -> String?
|
8
|
+
def name=: (String?) -> String?
|
9
|
+
def name?: () -> bool
|
10
|
+
def name_valid?: () -> bool
|
11
|
+
|
12
|
+
def algorithms: () -> Array[String]?
|
13
|
+
def algorithms=: (Array[String]?) -> Array[String]?
|
14
|
+
def algorithms?: () -> bool
|
15
|
+
def algorithms_valid?: () -> bool
|
16
|
+
|
17
|
+
def identifiers: () -> Array[String]?
|
18
|
+
def identifiers=: (Array[String]?) -> Array[String]?
|
19
|
+
def identifiers?: () -> bool
|
20
|
+
def identifiers_valid?: () -> bool
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
@@ -0,0 +1,14 @@
|
|
1
|
+
module SBOM
|
2
|
+
module CycloneDX
|
3
|
+
module Record
|
4
|
+
class CO2Measure < Base
|
5
|
+
def initialize: (value: Float) -> void
|
6
|
+
|
7
|
+
def value: () -> Float
|
8
|
+
def value=: (Float) -> Float
|
9
|
+
def value?: () -> bool
|
10
|
+
def value_valid?: () -> bool
|
11
|
+
end
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
@@ -0,0 +1,19 @@
|
|
1
|
+
module SBOM
|
2
|
+
module CycloneDX
|
3
|
+
module Record
|
4
|
+
class Command < Base
|
5
|
+
def initialize: (?executed: String?, ?properties: Array[Property]?) -> void
|
6
|
+
|
7
|
+
def executed: () -> String?
|
8
|
+
def executed=: (String?) -> String?
|
9
|
+
def executed?: () -> bool
|
10
|
+
def executed_valid?: () -> bool
|
11
|
+
|
12
|
+
def properties: () -> Array[Property]?
|
13
|
+
def properties=: (Array[Property]?) -> Array[Property]?
|
14
|
+
def properties?: () -> bool
|
15
|
+
def properties_valid?: () -> bool
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|