.editorconfig .eslintrc.js .gitattributes .github/PULL_REQUEST_TEMPLATE.md .github/workflows/benchmark.yml .github/workflows/cancel.yml .github/workflows/close_pull_requests.yml .github/workflows/examples.yml .github/workflows/publish.yml .github/workflows/test.yml .github/workflows/test_coverage.yml .github/workflows/test_install.yml .gitignore .npmignore .npmrc CHANGELOG.md CODE_OF_CONDUCT.md CONTRIBUTING.md CONTRIBUTORS LICENSE Makefile NOTICE README.md benchmark/benchmark.factory.js benchmark/benchmark.js docs/repl.txt docs/types/index.d.ts docs/types/test.ts examples/index.js lib/defaults.json lib/factory.js lib/has.js lib/index.js lib/main.js lib/validate.js package.json test/test.factory.js test/test.has.js test/test.js test/test.validate.js <<<<<< network # path=coverage.json {"/home/runner/work/assert-deep-has-property/assert-deep-has-property/lib/has.js":{"path":"/home/runner/work/assert-deep-has-property/assert-deep-has-property/lib/has.js","s":{"1":1,"2":1,"3":55,"4":55,"5":55,"6":9,"7":46,"8":100,"9":78,"10":22,"11":24,"12":1},"b":{"1":[9,46],"2":[78,22]},"f":{"1":55},"fnMap":{"1":{"name":"deepHasProp","line":36,"loc":{"start":{"line":36,"column":0},"end":{"line":36,"column":33}}}},"statementMap":{"1":{"start":{"line":23,"column":0},"end":{"line":23,"column":55}},"2":{"start":{"line":36,"column":0},"end":{"line":50,"column":1}},"3":{"start":{"line":37,"column":1},"end":{"line":37,"column":24}},"4":{"start":{"line":38,"column":1},"end":{"line":38,"column":7}},"5":{"start":{"line":39,"column":1},"end":{"line":41,"column":2}},"6":{"start":{"line":40,"column":2},"end":{"line":40,"column":15}},"7":{"start":{"line":42,"column":1},"end":{"line":48,"column":2}},"8":{"start":{"line":43,"column":2},"end":{"line":47,"column":3}},"9":{"start":{"line":44,"column":3},"end":{"line":44,"column":23}},"10":{"start":{"line":46,"column":3},"end":{"line":46,"column":16}},"11":{"start":{"line":49,"column":1},"end":{"line":49,"column":13}},"12":{"start":{"line":55,"column":0},"end":{"line":55,"column":29}}},"branchMap":{"1":{"line":39,"type":"if","locations":[{"start":{"line":39,"column":1},"end":{"line":39,"column":1}},{"start":{"line":39,"column":1},"end":{"line":39,"column":1}}]},"2":{"line":43,"type":"if","locations":[{"start":{"line":43,"column":2},"end":{"line":43,"column":2}},{"start":{"line":43,"column":2},"end":{"line":43,"column":2}}]}}},"/home/runner/work/assert-deep-has-property/assert-deep-has-property/lib/index.js":{"path":"/home/runner/work/assert-deep-has-property/assert-deep-has-property/lib/index.js","s":{"1":1,"2":1,"3":1,"4":1,"5":1},"b":{},"f":{},"fnMap":{},"statementMap":{"1":{"start":{"line":70,"column":0},"end":{"line":70,"column":85}},"2":{"start":{"line":71,"column":0},"end":{"line":71,"column":41}},"3":{"start":{"line":72,"column":0},"end":{"line":72,"column":40}},"4":{"start":{"line":77,"column":0},"end":{"line":77,"column":47}},"5":{"start":{"line":82,"column":0},"end":{"line":82,"column":29}}},"branchMap":{}},"/home/runner/work/assert-deep-has-property/assert-deep-has-property/lib/main.js":{"path":"/home/runner/work/assert-deep-has-property/assert-deep-has-property/lib/main.js","s":{"1":1,"2":1,"3":1,"4":1,"5":1,"6":1,"7":1,"8":53,"9":53,"10":53,"11":53,"12":53,"13":53,"14":8,"15":45,"16":45,"17":27,"18":27,"19":18,"20":27,"21":2,"22":25,"23":17,"24":8,"25":25,"26":1},"b":{"1":[8,45],"2":[53,16],"3":[27,18],"4":[18,9],"5":[2,25],"6":[27,26],"7":[17,8]},"f":{"1":53},"fnMap":{"1":{"name":"deepHasProp","line":88,"loc":{"start":{"line":88,"column":0},"end":{"line":88,"column":45}}}},"statementMap":{"1":{"start":{"line":23,"column":0},"end":{"line":23,"column":65}},"2":{"start":{"line":24,"column":0},"end":{"line":24,"column":51}},"3":{"start":{"line":25,"column":0},"end":{"line":25,"column":43}},"4":{"start":{"line":26,"column":0},"end":{"line":26,"column":42}},"5":{"start":{"line":27,"column":0},"end":{"line":27,"column":44}},"6":{"start":{"line":28,"column":0},"end":{"line":28,"column":32}},"7":{"start":{"line":88,"column":0},"end":{"line":114,"column":1}},"8":{"start":{"line":89,"column":1},"end":{"line":89,"column":11}},"9":{"start":{"line":90,"column":1},"end":{"line":90,"column":11}},"10":{"start":{"line":91,"column":1},"end":{"line":91,"column":10}},"11":{"start":{"line":92,"column":1},"end":{"line":92,"column":9}},"12":{"start":{"line":94,"column":1},"end":{"line":94,"column":26}},"13":{"start":{"line":95,"column":1},"end":{"line":97,"column":2}},"14":{"start":{"line":96,"column":2},"end":{"line":96,"column":120}},"15":{"start":{"line":98,"column":1},"end":{"line":98,"column":25}},"16":{"start":{"line":99,"column":1},"end":{"line":104,"column":2}},"17":{"start":{"line":100,"column":2},"end":{"line":100,"column":34}},"18":{"start":{"line":101,"column":2},"end":{"line":103,"column":3}},"19":{"start":{"line":102,"column":3},"end":{"line":102,"column":13}},"20":{"start":{"line":105,"column":1},"end":{"line":107,"column":2}},"21":{"start":{"line":106,"column":2},"end":{"line":106,"column":15}},"22":{"start":{"line":108,"column":1},"end":{"line":112,"column":2}},"23":{"start":{"line":109,"column":2},"end":{"line":109,"column":33}},"24":{"start":{"line":111,"column":2},"end":{"line":111,"column":15}},"25":{"start":{"line":113,"column":1},"end":{"line":113,"column":28}},"26":{"start":{"line":119,"column":0},"end":{"line":119,"column":29}}},"branchMap":{"1":{"line":95,"type":"if","locations":[{"start":{"line":95,"column":1},"end":{"line":95,"column":1}},{"start":{"line":95,"column":1},"end":{"line":95,"column":1}}]},"2":{"line":95,"type":"binary-expr","locations":[{"start":{"line":95,"column":6},"end":{"line":95,"column":12}},{"start":{"line":95,"column":16},"end":{"line":95,"column":32}}]},"3":{"line":99,"type":"if","locations":[{"start":{"line":99,"column":1},"end":{"line":99,"column":1}},{"start":{"line":99,"column":1},"end":{"line":99,"column":1}}]},"4":{"line":101,"type":"if","locations":[{"start":{"line":101,"column":2},"end":{"line":101,"column":2}},{"start":{"line":101,"column":2},"end":{"line":101,"column":2}}]},"5":{"line":105,"type":"if","locations":[{"start":{"line":105,"column":1},"end":{"line":105,"column":1}},{"start":{"line":105,"column":1},"end":{"line":105,"column":1}}]},"6":{"line":105,"type":"binary-expr","locations":[{"start":{"line":105,"column":6},"end":{"line":105,"column":22}},{"start":{"line":105,"column":26},"end":{"line":105,"column":40}}]},"7":{"line":108,"type":"if","locations":[{"start":{"line":108,"column":1},"end":{"line":108,"column":1}},{"start":{"line":108,"column":1},"end":{"line":108,"column":1}}]}}},"/home/runner/work/assert-deep-has-property/assert-deep-has-property/lib/validate.js":{"path":"/home/runner/work/assert-deep-has-property/assert-deep-has-property/lib/validate.js","s":{"1":1,"2":1,"3":1,"4":1,"5":75,"6":27,"7":48,"8":47,"9":47,"10":28,"11":20,"12":1},"b":{"1":[27,48],"2":[47,1],"3":[28,19]},"f":{"1":75},"fnMap":{"1":{"name":"validate","line":49,"loc":{"start":{"line":49,"column":0},"end":{"line":49,"column":35}}}},"statementMap":{"1":{"start":{"line":23,"column":0},"end":{"line":23,"column":65}},"2":{"start":{"line":24,"column":0},"end":{"line":24,"column":59}},"3":{"start":{"line":25,"column":0},"end":{"line":25,"column":62}},"4":{"start":{"line":49,"column":0},"end":{"line":60,"column":1}},"5":{"start":{"line":50,"column":1},"end":{"line":52,"column":2}},"6":{"start":{"line":51,"column":2},"end":{"line":51,"column":108}},"7":{"start":{"line":53,"column":1},"end":{"line":58,"column":2}},"8":{"start":{"line":54,"column":2},"end":{"line":54,"column":25}},"9":{"start":{"line":55,"column":2},"end":{"line":57,"column":3}},"10":{"start":{"line":56,"column":3},"end":{"line":56,"column":114}},"11":{"start":{"line":59,"column":1},"end":{"line":59,"column":13}},"12":{"start":{"line":65,"column":0},"end":{"line":65,"column":26}}},"branchMap":{"1":{"line":50,"type":"if","locations":[{"start":{"line":50,"column":1},"end":{"line":50,"column":1}},{"start":{"line":50,"column":1},"end":{"line":50,"column":1}}]},"2":{"line":53,"type":"if","locations":[{"start":{"line":53,"column":1},"end":{"line":53,"column":1}},{"start":{"line":53,"column":1},"end":{"line":53,"column":1}}]},"3":{"line":55,"type":"if","locations":[{"start":{"line":55,"column":2},"end":{"line":55,"column":2}},{"start":{"line":55,"column":2},"end":{"line":55,"column":2}}]}}},"/home/runner/work/assert-deep-has-property/assert-deep-has-property/lib/factory.js":{"path":"/home/runner/work/assert-deep-has-property/assert-deep-has-property/lib/factory.js","s":{"1":1,"2":1,"3":1,"4":1,"5":1,"6":1,"7":1,"8":48,"9":48,"10":48,"11":48,"12":48,"13":48,"14":8,"15":40,"16":40,"17":26,"18":26,"19":18,"20":22,"21":17,"22":5,"23":22,"24":1,"25":23,"26":4,"27":19,"28":1},"b":{"1":[8,40],"2":[48,13],"3":[26,14],"4":[18,8],"5":[17,5],"6":[4,19],"7":[23,21]},"f":{"1":48,"2":23},"fnMap":{"1":{"name":"factory","line":49,"loc":{"start":{"line":49,"column":0},"end":{"line":49,"column":34}}},"2":{"name":"deepHasProp","line":83,"loc":{"start":{"line":83,"column":1},"end":{"line":83,"column":31}}}},"statementMap":{"1":{"start":{"line":23,"column":0},"end":{"line":23,"column":65}},"2":{"start":{"line":24,"column":0},"end":{"line":24,"column":51}},"3":{"start":{"line":25,"column":0},"end":{"line":25,"column":43}},"4":{"start":{"line":26,"column":0},"end":{"line":26,"column":42}},"5":{"start":{"line":27,"column":0},"end":{"line":27,"column":44}},"6":{"start":{"line":28,"column":0},"end":{"line":28,"column":32}},"7":{"start":{"line":49,"column":0},"end":{"line":89,"column":1}},"8":{"start":{"line":50,"column":1},"end":{"line":50,"column":11}},"9":{"start":{"line":51,"column":1},"end":{"line":51,"column":11}},"10":{"start":{"line":52,"column":1},"end":{"line":52,"column":10}},"11":{"start":{"line":53,"column":1},"end":{"line":53,"column":9}},"12":{"start":{"line":54,"column":1},"end":{"line":54,"column":26}},"13":{"start":{"line":55,"column":1},"end":{"line":57,"column":2}},"14":{"start":{"line":56,"column":2},"end":{"line":56,"column":120}},"15":{"start":{"line":58,"column":1},"end":{"line":58,"column":25}},"16":{"start":{"line":59,"column":1},"end":{"line":64,"column":2}},"17":{"start":{"line":60,"column":2},"end":{"line":60,"column":34}},"18":{"start":{"line":61,"column":2},"end":{"line":63,"column":3}},"19":{"start":{"line":62,"column":3},"end":{"line":62,"column":13}},"20":{"start":{"line":65,"column":1},"end":{"line":69,"column":2}},"21":{"start":{"line":66,"column":2},"end":{"line":66,"column":33}},"22":{"start":{"line":68,"column":2},"end":{"line":68,"column":15}},"23":{"start":{"line":70,"column":1},"end":{"line":70,"column":20}},"24":{"start":{"line":83,"column":1},"end":{"line":88,"column":2}},"25":{"start":{"line":84,"column":2},"end":{"line":86,"column":3}},"26":{"start":{"line":85,"column":3},"end":{"line":85,"column":16}},"27":{"start":{"line":87,"column":2},"end":{"line":87,"column":29}},"28":{"start":{"line":94,"column":0},"end":{"line":94,"column":25}}},"branchMap":{"1":{"line":55,"type":"if","locations":[{"start":{"line":55,"column":1},"end":{"line":55,"column":1}},{"start":{"line":55,"column":1},"end":{"line":55,"column":1}}]},"2":{"line":55,"type":"binary-expr","locations":[{"start":{"line":55,"column":6},"end":{"line":55,"column":12}},{"start":{"line":55,"column":16},"end":{"line":55,"column":32}}]},"3":{"line":59,"type":"if","locations":[{"start":{"line":59,"column":1},"end":{"line":59,"column":1}},{"start":{"line":59,"column":1},"end":{"line":59,"column":1}}]},"4":{"line":61,"type":"if","locations":[{"start":{"line":61,"column":2},"end":{"line":61,"column":2}},{"start":{"line":61,"column":2},"end":{"line":61,"column":2}}]},"5":{"line":65,"type":"if","locations":[{"start":{"line":65,"column":1},"end":{"line":65,"column":1}},{"start":{"line":65,"column":1},"end":{"line":65,"column":1}}]},"6":{"line":84,"type":"if","locations":[{"start":{"line":84,"column":2},"end":{"line":84,"column":2}},{"start":{"line":84,"column":2},"end":{"line":84,"column":2}}]},"7":{"line":84,"type":"binary-expr","locations":[{"start":{"line":84,"column":7},"end":{"line":84,"column":23}},{"start":{"line":84,"column":27},"end":{"line":84,"column":41}}]}}}}<<<<<< EOF # path=lcov.info TN: SF:/home/runner/work/assert-deep-has-property/assert-deep-has-property/lib/has.js FN:36,deepHasProp FNF:1 FNH:1 FNDA:55,deepHasProp DA:23,1 DA:36,1 DA:37,55 DA:38,55 DA:39,55 DA:40,9 DA:42,46 DA:43,100 DA:44,78 DA:46,22 DA:49,24 DA:55,1 LF:12 LH:12 BRDA:39,1,0,9 BRDA:39,1,1,46 BRDA:43,2,0,78 BRDA:43,2,1,22 BRF:4 BRH:4 end_of_record TN: SF:/home/runner/work/assert-deep-has-property/assert-deep-has-property/lib/index.js FNF:0 FNH:0 DA:70,1 DA:71,1 DA:72,1 DA:77,1 DA:82,1 LF:5 LH:5 BRF:0 BRH:0 end_of_record TN: SF:/home/runner/work/assert-deep-has-property/assert-deep-has-property/lib/main.js FN:88,deepHasProp FNF:1 FNH:1 FNDA:53,deepHasProp DA:23,1 DA:24,1 DA:25,1 DA:26,1 DA:27,1 DA:28,1 DA:88,1 DA:89,53 DA:90,53 DA:91,53 DA:92,53 DA:94,53 DA:95,53 DA:96,8 DA:98,45 DA:99,45 DA:100,27 DA:101,27 DA:102,18 DA:105,27 DA:106,2 DA:108,25 DA:109,17 DA:111,8 DA:113,25 DA:119,1 LF:26 LH:26 BRDA:95,1,0,8 BRDA:95,1,1,45 BRDA:95,2,0,53 BRDA:95,2,1,16 BRDA:99,3,0,27 BRDA:99,3,1,18 BRDA:101,4,0,18 BRDA:101,4,1,9 BRDA:105,5,0,2 BRDA:105,5,1,25 BRDA:105,6,0,27 BRDA:105,6,1,26 BRDA:108,7,0,17 BRDA:108,7,1,8 BRF:14 BRH:14 end_of_record TN: SF:/home/runner/work/assert-deep-has-property/assert-deep-has-property/lib/validate.js FN:49,validate FNF:1 FNH:1 FNDA:75,validate DA:23,1 DA:24,1 DA:25,1 DA:49,1 DA:50,75 DA:51,27 DA:53,48 DA:54,47 DA:55,47 DA:56,28 DA:59,20 DA:65,1 LF:12 LH:12 BRDA:50,1,0,27 BRDA:50,1,1,48 BRDA:53,2,0,47 BRDA:53,2,1,1 BRDA:55,3,0,28 BRDA:55,3,1,19 BRF:6 BRH:6 end_of_record TN: SF:/home/runner/work/assert-deep-has-property/assert-deep-has-property/lib/factory.js FN:49,factory FN:83,deepHasProp FNF:2 FNH:2 FNDA:48,factory FNDA:23,deepHasProp DA:23,1 DA:24,1 DA:25,1 DA:26,1 DA:27,1 DA:28,1 DA:49,1 DA:50,48 DA:51,48 DA:52,48 DA:53,48 DA:54,48 DA:55,48 DA:56,8 DA:58,40 DA:59,40 DA:60,26 DA:61,26 DA:62,18 DA:65,22 DA:66,17 DA:68,5 DA:70,22 DA:83,1 DA:84,23 DA:85,4 DA:87,19 DA:94,1 LF:28 LH:28 BRDA:55,1,0,8 BRDA:55,1,1,40 BRDA:55,2,0,48 BRDA:55,2,1,13 BRDA:59,3,0,26 BRDA:59,3,1,14 BRDA:61,4,0,18 BRDA:61,4,1,8 BRDA:65,5,0,17 BRDA:65,5,1,5 BRDA:84,6,0,4 BRDA:84,6,1,19 BRDA:84,7,0,23 BRDA:84,7,1,21 BRF:14 BRH:14 end_of_record <<<<<< EOF