@@ -2185,28 +2185,144 @@ it("parse cabal freeze", () => {
21852185} ) ;
21862186
21872187it ( "parse conan data" , ( ) => {
2188- assert . deepStrictEqual ( parseConanLockData ( null ) , [ ] ) ;
2189- let dep_list = parseConanLockData (
2188+ let conanLockData = parseConanLockData ( null ) ;
2189+ assert . deepStrictEqual ( conanLockData . pkgList . length , 0 ) ;
2190+ assert . deepStrictEqual ( Object . keys ( conanLockData . dependencies ) . length , 0 ) ;
2191+ assert . deepStrictEqual ( conanLockData . parentComponentDependencies . length , 0 ) ;
2192+ conanLockData = parseConanLockData (
21902193 readFileSync ( "./test/data/conan-v1.lock" , { encoding : "utf-8" } ) ,
21912194 ) ;
2192- assert . deepStrictEqual ( dep_list . length , 3 ) ;
2193- assert . deepStrictEqual ( dep_list [ 0 ] , {
2195+ assert . deepStrictEqual ( conanLockData . pkgList . length , 3 ) ;
2196+ assert . deepStrictEqual ( conanLockData . pkgList [ 0 ] , {
21942197 name : "zstd" ,
21952198 version : "1.4.4" ,
21962199 "bom-ref" : "pkg:conan/zstd@1.4.4" ,
21972200 purl : "pkg:conan/zstd@1.4.4" ,
21982201 } ) ;
2199- dep_list = parseConanLockData (
2202+ assert . deepStrictEqual ( Object . keys ( conanLockData . dependencies ) . length , 0 ) ;
2203+ assert . deepStrictEqual ( conanLockData . parentComponentDependencies , [
2204+ "pkg:conan/zstd@1.4.4" ,
2205+ "pkg:conan/jerryscript@2.2.0" ,
2206+ "pkg:conan/wolfssl@4.4.0" ,
2207+ ] ) ;
2208+
2209+ conanLockData = parseConanLockData (
2210+ readFileSync ( "./test/data/conan-v1-for-reference.lock" , {
2211+ encoding : "utf-8" ,
2212+ } ) ,
2213+ ) ;
2214+ assert . deepStrictEqual ( Object . keys ( conanLockData . pkgList ) . length , 7 ) ;
2215+ assert . deepStrictEqual ( conanLockData . pkgList [ 0 ] , {
2216+ name : "grpc" ,
2217+ version : "1.50.1" ,
2218+ "bom-ref" : "pkg:conan/grpc@1.50.1" ,
2219+ purl : "pkg:conan/grpc@1.50.1" ,
2220+ } ) ;
2221+ assert . deepStrictEqual ( Object . keys ( conanLockData . dependencies ) . length , 3 ) ;
2222+ assert . deepStrictEqual ( conanLockData . dependencies [ "pkg:conan/grpc@1.50.1" ] , [
2223+ "pkg:conan/abseil@20230802.1" ,
2224+ "pkg:conan/protobuf@3.21.12" ,
2225+ "pkg:conan/c-ares@1.34.1" ,
2226+ "pkg:conan/openssl@3.3.2" ,
2227+ "pkg:conan/re2@20230301" ,
2228+ "pkg:conan/zlib@1.3.1" ,
2229+ ] ) ;
2230+ assert . deepStrictEqual (
2231+ conanLockData . dependencies [ "pkg:conan/protobuf@3.21.12" ] ,
2232+ [ "pkg:conan/zlib@1.3.1" ] ,
2233+ ) ;
2234+ assert . deepStrictEqual (
2235+ conanLockData . dependencies [ "pkg:conan/openssl@3.3.2" ] ,
2236+ [ "pkg:conan/zlib@1.3.1" ] ,
2237+ ) ;
2238+ assert . deepStrictEqual ( conanLockData . parentComponentDependencies . length , 0 ) ;
2239+
2240+ conanLockData = parseConanLockData (
2241+ readFileSync ( "./test/data/conan-v1-with-nested-deps.lock" , {
2242+ encoding : "utf-8" ,
2243+ } ) ,
2244+ ) ;
2245+ assert . deepStrictEqual ( conanLockData . pkgList . length , 9 ) ;
2246+ assert . deepStrictEqual ( conanLockData . pkgList [ 0 ] , {
2247+ name : "grpc" ,
2248+ version : "1.50.1" ,
2249+ "bom-ref" : "pkg:conan/grpc@1.50.1" ,
2250+ purl : "pkg:conan/grpc@1.50.1" ,
2251+ } ) ;
2252+ assert . deepStrictEqual ( conanLockData . pkgList [ 1 ] , {
2253+ name : "abseil" ,
2254+ version : "20230802.1" ,
2255+ "bom-ref" : "pkg:conan/abseil@20230802.1" ,
2256+ purl : "pkg:conan/abseil@20230802.1" ,
2257+ } ) ;
2258+ assert . deepStrictEqual ( conanLockData . pkgList [ 2 ] , {
2259+ name : "protobuf" ,
2260+ version : "3.21.12" ,
2261+ "bom-ref" : "pkg:conan/protobuf@3.21.12" ,
2262+ purl : "pkg:conan/protobuf@3.21.12" ,
2263+ } ) ;
2264+ assert . deepStrictEqual ( conanLockData . pkgList [ 3 ] , {
2265+ name : "zlib" ,
2266+ version : "1.3.1" ,
2267+ "bom-ref" : "pkg:conan/zlib@1.3.1" ,
2268+ purl : "pkg:conan/zlib@1.3.1" ,
2269+ } ) ;
2270+ assert . deepStrictEqual ( conanLockData . pkgList [ 5 ] , {
2271+ name : "openssl" ,
2272+ version : "3.3.2" ,
2273+ "bom-ref" : "pkg:conan/openssl@3.3.2" ,
2274+ purl : "pkg:conan/openssl@3.3.2" ,
2275+ } ) ;
2276+ assert . deepStrictEqual ( conanLockData . pkgList [ 8 ] , {
2277+ name : "gtest" ,
2278+ version : "1.13.0" ,
2279+ "bom-ref" : "pkg:conan/gtest@1.13.0" ,
2280+ purl : "pkg:conan/gtest@1.13.0" ,
2281+ } ) ;
2282+ assert . deepStrictEqual ( Object . keys ( conanLockData . dependencies ) . length , 3 ) ;
2283+ assert . deepStrictEqual ( conanLockData . dependencies [ "pkg:conan/grpc@1.50.1" ] , [
2284+ "pkg:conan/abseil@20230802.1" ,
2285+ "pkg:conan/protobuf@3.21.12" ,
2286+ "pkg:conan/c-ares@1.34.1" ,
2287+ "pkg:conan/openssl@3.3.2" ,
2288+ "pkg:conan/re2@20230301" ,
2289+ "pkg:conan/zlib@1.3.1" ,
2290+ ] ) ;
2291+ assert . deepStrictEqual (
2292+ conanLockData . dependencies [ "pkg:conan/protobuf@3.21.12" ] ,
2293+ [ "pkg:conan/zlib@1.3.1" ] ,
2294+ ) ;
2295+ assert . deepStrictEqual (
2296+ conanLockData . dependencies [ "pkg:conan/openssl@3.3.2" ] ,
2297+ [ "pkg:conan/zlib@1.3.1" ] ,
2298+ ) ;
2299+ assert . deepStrictEqual ( conanLockData . parentComponentDependencies . length , 3 ) ;
2300+ assert . deepStrictEqual (
2301+ conanLockData . parentComponentDependencies [ 0 ] ,
2302+ "pkg:conan/grpc@1.50.1" ,
2303+ ) ;
2304+ assert . deepStrictEqual (
2305+ conanLockData . parentComponentDependencies [ 1 ] ,
2306+ "pkg:conan/rapidjson@1.1.0" ,
2307+ ) ;
2308+ assert . deepStrictEqual (
2309+ conanLockData . parentComponentDependencies [ 2 ] ,
2310+ "pkg:conan/gtest@1.13.0" ,
2311+ ) ;
2312+
2313+ conanLockData = parseConanLockData (
22002314 readFileSync ( "./test/data/conan-v2.lock" , { encoding : "utf-8" } ) ,
22012315 ) ;
2202- assert . deepStrictEqual ( dep_list . length , 2 ) ;
2203- assert . deepStrictEqual ( dep_list [ 0 ] , {
2316+ assert . deepStrictEqual ( conanLockData . pkgList . length , 2 ) ;
2317+ assert . deepStrictEqual ( conanLockData . pkgList [ 0 ] , {
22042318 name : "opensta" ,
22052319 version : "4.0.0" ,
22062320 "bom-ref" : "pkg:conan/opensta@4.0.0?rrev=765a7eed989e624c762a73291d712b14" ,
22072321 purl : "pkg:conan/opensta@4.0.0?rrev=765a7eed989e624c762a73291d712b14" ,
22082322 } ) ;
2209- dep_list = parseConanData (
2323+ assert . deepStrictEqual ( Object . keys ( conanLockData . dependencies ) . length , 0 ) ;
2324+ assert . deepStrictEqual ( conanLockData . parentComponentDependencies . length , 0 ) ;
2325+ let dep_list = parseConanData (
22102326 readFileSync ( "./test/data/conanfile.txt" , { encoding : "utf-8" } ) ,
22112327 ) ;
22122328 assert . deepStrictEqual ( dep_list . length , 3 ) ;
@@ -2316,42 +2432,42 @@ it("conan package reference mapper to pURL", () => {
23162432} ) ;
23172433
23182434it ( "parse conan data where packages use custom user/channel" , ( ) => {
2319- let dep_list = parseConanLockData (
2435+ const conanLockData = parseConanLockData (
23202436 readFileSync ( "./test/data/conan.with_custom_pkg_user_channel.lock" , {
23212437 encoding : "utf-8" ,
23222438 } ) ,
23232439 ) ;
2324- assert . deepStrictEqual ( dep_list . length , 4 ) ;
2325- assert . deepStrictEqual ( dep_list [ 0 ] , {
2440+ assert . deepStrictEqual ( conanLockData . pkgList . length , 4 ) ;
2441+ assert . deepStrictEqual ( conanLockData . pkgList [ 0 ] , {
23262442 name : "libcurl" ,
23272443 version : "8.1.2" ,
23282444 "bom-ref" :
23292445 "pkg:conan/libcurl@8.1.2?channel=stable&rrev=25215c550633ef0224152bc2c0556698&user=internal" ,
23302446 purl : "pkg:conan/libcurl@8.1.2?channel=stable&rrev=25215c550633ef0224152bc2c0556698&user=internal" ,
23312447 } ) ;
2332- assert . deepStrictEqual ( dep_list [ 1 ] , {
2448+ assert . deepStrictEqual ( conanLockData . pkgList [ 1 ] , {
23332449 name : "openssl" ,
23342450 version : "3.1.0" ,
23352451 "bom-ref" :
23362452 "pkg:conan/openssl@3.1.0?channel=stable&rrev=c9c6ab43aa40bafacf8b37c5948cdb1f&user=internal" ,
23372453 purl : "pkg:conan/openssl@3.1.0?channel=stable&rrev=c9c6ab43aa40bafacf8b37c5948cdb1f&user=internal" ,
23382454 } ) ;
2339- assert . deepStrictEqual ( dep_list [ 2 ] , {
2455+ assert . deepStrictEqual ( conanLockData . pkgList [ 2 ] , {
23402456 name : "zlib" ,
23412457 version : "1.2.13" ,
23422458 "bom-ref" :
23432459 "pkg:conan/zlib@1.2.13?channel=stable&rrev=aee6a56ff7927dc7261c55eb2db4fc5b&user=internal" ,
23442460 purl : "pkg:conan/zlib@1.2.13?channel=stable&rrev=aee6a56ff7927dc7261c55eb2db4fc5b&user=internal" ,
23452461 } ) ;
2346- assert . deepStrictEqual ( dep_list [ 3 ] , {
2462+ assert . deepStrictEqual ( conanLockData . pkgList [ 3 ] , {
23472463 name : "fmt" ,
23482464 version : "10.0.0" ,
23492465 purl : "pkg:conan/fmt@10.0.0?channel=stable&rrev=79e7cc169695bc058fb606f20df6bb10&user=internal" ,
23502466 "bom-ref" :
23512467 "pkg:conan/fmt@10.0.0?channel=stable&rrev=79e7cc169695bc058fb606f20df6bb10&user=internal" ,
23522468 } ) ;
23532469
2354- dep_list = parseConanData (
2470+ const dep_list = parseConanData (
23552471 readFileSync ( "./test/data/conanfile.with_custom_pkg_user_channel.txt" , {
23562472 encoding : "utf-8" ,
23572473 } ) ,
0 commit comments