github.com/noqcks/syft@v0.0.0-20230920222752-a9e2c4e288e5/syft/pkg/metadata.go (about) 1 package pkg 2 3 import ( 4 "reflect" 5 ) 6 7 // MetadataType represents the data shape stored within pkg.Package.Metadata. 8 type MetadataType string 9 10 const ( 11 // this is the full set of data shapes that can be represented within the pkg.Package.Metadata field 12 13 UnknownMetadataType MetadataType = "UnknownMetadata" 14 AlpmMetadataType MetadataType = "AlpmMetadata" 15 ApkMetadataType MetadataType = "ApkMetadata" 16 BinaryMetadataType MetadataType = "BinaryMetadata" 17 CocoapodsMetadataType MetadataType = "CocoapodsMetadataType" 18 ConanLockMetadataType MetadataType = "ConanLockMetadataType" 19 ConanMetadataType MetadataType = "ConanMetadataType" 20 DartPubMetadataType MetadataType = "DartPubMetadata" 21 DotnetDepsMetadataType MetadataType = "DotnetDepsMetadata" 22 DotnetPortableExecutableMetadataType MetadataType = "DotnetPortableExecutableMetadata" 23 DpkgMetadataType MetadataType = "DpkgMetadata" 24 GemMetadataType MetadataType = "GemMetadata" 25 GolangBinMetadataType MetadataType = "GolangBinMetadata" 26 GolangModMetadataType MetadataType = "GolangModMetadata" 27 HackageMetadataType MetadataType = "HackageMetadataType" 28 JavaMetadataType MetadataType = "JavaMetadata" 29 KbPackageMetadataType MetadataType = "KbPackageMetadata" 30 LinuxKernelMetadataType MetadataType = "LinuxKernelMetadata" 31 LinuxKernelModuleMetadataType MetadataType = "LinuxKernelModuleMetadata" 32 MixLockMetadataType MetadataType = "MixLockMetadataType" 33 NixStoreMetadataType MetadataType = "NixStoreMetadata" 34 NpmPackageJSONMetadataType MetadataType = "NpmPackageJsonMetadata" 35 NpmPackageLockJSONMetadataType MetadataType = "NpmPackageLockJsonMetadata" 36 PhpComposerJSONMetadataType MetadataType = "PhpComposerJsonMetadata" 37 PortageMetadataType MetadataType = "PortageMetadata" 38 PythonPackageMetadataType MetadataType = "PythonPackageMetadata" 39 PythonPipfileLockMetadataType MetadataType = "PythonPipfileLockMetadata" 40 PythonRequirementsMetadataType MetadataType = "PythonRequirementsMetadata" 41 RebarLockMetadataType MetadataType = "RebarLockMetadataType" 42 RDescriptionFileMetadataType MetadataType = "RDescriptionFileMetadataType" 43 RpmMetadataType MetadataType = "RpmMetadata" 44 RustCargoPackageMetadataType MetadataType = "RustCargoPackageMetadata" 45 SwiftPackageManagerMetadataType MetadataType = "SwiftPackageManagerMetadata" 46 ) 47 48 var AllMetadataTypes = []MetadataType{ 49 AlpmMetadataType, 50 ApkMetadataType, 51 BinaryMetadataType, 52 CocoapodsMetadataType, 53 ConanLockMetadataType, 54 ConanMetadataType, 55 DartPubMetadataType, 56 DotnetDepsMetadataType, 57 DotnetPortableExecutableMetadataType, 58 DpkgMetadataType, 59 GemMetadataType, 60 GolangBinMetadataType, 61 GolangModMetadataType, 62 HackageMetadataType, 63 JavaMetadataType, 64 KbPackageMetadataType, 65 LinuxKernelMetadataType, 66 LinuxKernelModuleMetadataType, 67 MixLockMetadataType, 68 NixStoreMetadataType, 69 NpmPackageJSONMetadataType, 70 NpmPackageLockJSONMetadataType, 71 PhpComposerJSONMetadataType, 72 PortageMetadataType, 73 PythonPackageMetadataType, 74 PythonPipfileLockMetadataType, 75 PythonRequirementsMetadataType, 76 RDescriptionFileMetadataType, 77 RebarLockMetadataType, 78 RpmMetadataType, 79 RustCargoPackageMetadataType, 80 SwiftPackageManagerMetadataType, 81 } 82 83 var MetadataTypeByName = map[MetadataType]reflect.Type{ 84 AlpmMetadataType: reflect.TypeOf(AlpmMetadata{}), 85 ApkMetadataType: reflect.TypeOf(ApkMetadata{}), 86 BinaryMetadataType: reflect.TypeOf(BinaryMetadata{}), 87 CocoapodsMetadataType: reflect.TypeOf(CocoapodsMetadata{}), 88 ConanLockMetadataType: reflect.TypeOf(ConanLockMetadata{}), 89 ConanMetadataType: reflect.TypeOf(ConanMetadata{}), 90 DartPubMetadataType: reflect.TypeOf(DartPubMetadata{}), 91 DotnetDepsMetadataType: reflect.TypeOf(DotnetDepsMetadata{}), 92 DotnetPortableExecutableMetadataType: reflect.TypeOf(DotnetPortableExecutableMetadata{}), 93 DpkgMetadataType: reflect.TypeOf(DpkgMetadata{}), 94 GemMetadataType: reflect.TypeOf(GemMetadata{}), 95 GolangBinMetadataType: reflect.TypeOf(GolangBinMetadata{}), 96 GolangModMetadataType: reflect.TypeOf(GolangModMetadata{}), 97 HackageMetadataType: reflect.TypeOf(HackageMetadata{}), 98 JavaMetadataType: reflect.TypeOf(JavaMetadata{}), 99 KbPackageMetadataType: reflect.TypeOf(KbPackageMetadata{}), 100 LinuxKernelMetadataType: reflect.TypeOf(LinuxKernelMetadata{}), 101 LinuxKernelModuleMetadataType: reflect.TypeOf(LinuxKernelModuleMetadata{}), 102 MixLockMetadataType: reflect.TypeOf(MixLockMetadata{}), 103 NixStoreMetadataType: reflect.TypeOf(NixStoreMetadata{}), 104 NpmPackageJSONMetadataType: reflect.TypeOf(NpmPackageJSONMetadata{}), 105 NpmPackageLockJSONMetadataType: reflect.TypeOf(NpmPackageLockJSONMetadata{}), 106 PhpComposerJSONMetadataType: reflect.TypeOf(PhpComposerJSONMetadata{}), 107 PortageMetadataType: reflect.TypeOf(PortageMetadata{}), 108 PythonPackageMetadataType: reflect.TypeOf(PythonPackageMetadata{}), 109 PythonPipfileLockMetadataType: reflect.TypeOf(PythonPipfileLockMetadata{}), 110 PythonRequirementsMetadataType: reflect.TypeOf(PythonRequirementsMetadata{}), 111 RDescriptionFileMetadataType: reflect.TypeOf(RDescriptionFileMetadata{}), 112 RebarLockMetadataType: reflect.TypeOf(RebarLockMetadata{}), 113 RpmMetadataType: reflect.TypeOf(RpmMetadata{}), 114 RustCargoPackageMetadataType: reflect.TypeOf(CargoPackageMetadata{}), 115 SwiftPackageManagerMetadataType: reflect.TypeOf(SwiftPackageManagerMetadata{}), 116 } 117 118 func CleanMetadataType(typ MetadataType) MetadataType { 119 if typ == "RpmdbMetadata" { 120 return RpmMetadataType 121 } 122 if typ == "GolangMetadata" { 123 return GolangBinMetadataType 124 } 125 return typ 126 }