{"_id":"ngraph.path","_rev":"17-ad409fdf9824a2246c50aeee4de78895","name":"ngraph.path","dist-tags":{"latest":"1.6.1"},"versions":{"1.0.0":{"name":"ngraph.path","version":"1.0.0","keywords":["ngraph","path","find","astar","a-star","pathfinding"],"author":{"name":"Andrei Kashcha"},"license":"MIT","_id":"ngraph.path@1.0.0","maintainers":[{"name":"anvaka","email":"anvaka@gmail.com"}],"homepage":"https://github.com/anvaka/ngraph.path#readme","bugs":{"url":"https://github.com/anvaka/ngraph.path/issues"},"dist":{"shasum":"fac9de5a74189c7c3f46ec26246a8a19284210d1","tarball":"https://registry.npmjs.org/ngraph.path/-/ngraph.path-1.0.0.tgz","integrity":"sha512-9pfOYdkIRmSCNREAfCQ68nI5hztJvAQ43Xd+ifca25bPSEsBJt+aCj/VKBSyJupFvUy0ZueiSOzOA0AzwBIdFw==","signatures":[{"sig":"MEQCIBUi6hDsKVRrpc4jAP779ve/wJn19jjgZwA/JvMpnmVQAiBTeTt9eZyYucYlnQCdY2OvAVzh1X1nyyhHDkySey68HA==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"index.js","_from":".","_shasum":"fac9de5a74189c7c3f46ec26246a8a19284210d1","gitHead":"995aef8737e1a4696aea1adbe435c11d3cf2fdcf","scripts":{"test":"tap test/*.js"},"_npmUser":{"name":"anvaka","email":"anvaka@gmail.com"},"repository":{"url":"git+https://github.com/anvaka/ngraph.path.git","type":"git"},"_npmVersion":"3.10.10","description":"Path finding in a graph","directories":{},"_nodeVersion":"7.2.1","devDependencies":{"tap":"^10.7.2","ngraph.graph":"0.0.14","ngraph.fromdot":"^0.2.0"},"_npmOperationalInternal":{"tmp":"tmp/ngraph.path-1.0.0.tgz_1505805215213_0.6000490894075483","host":"s3://npm-registry-packages"}},"1.0.1":{"name":"ngraph.path","version":"1.0.1","keywords":["ngraph","path","find","astar","a-star","pathfinding"],"author":{"name":"Andrei Kashcha"},"license":"MIT","_id":"ngraph.path@1.0.1","maintainers":[{"name":"anvaka","email":"anvaka@gmail.com"}],"homepage":"https://github.com/anvaka/ngraph.path#readme","bugs":{"url":"https://github.com/anvaka/ngraph.path/issues"},"dist":{"shasum":"17509c311421fb20fdee242fb3cfa645c8c2b5b7","tarball":"https://registry.npmjs.org/ngraph.path/-/ngraph.path-1.0.1.tgz","integrity":"sha512-BMt2kFEjrEAaJGpzf1gQjEQczuU+TwYU8T1tMC0HTq3HX+kDJgRrG/12CpET3/LqAXur3+MMGQJmG034WvTDoQ==","signatures":[{"sig":"MEQCIAPwRcULrcCjiIVhYhg6Vl6nKjuQ2uxYCY8dZ4s7VsBFAiAsd83OCdF5Jc23Oz9LvsUKs0/2JnGflNX5N2/p/YyFCg==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"index.js","_from":".","_shasum":"17509c311421fb20fdee242fb3cfa645c8c2b5b7","gitHead":"78c7225d02766b20edde23fd3c0c1608b543d2df","scripts":{"test":"tap test/*.js"},"_npmUser":{"name":"anvaka","email":"anvaka@gmail.com"},"repository":{"url":"git+https://github.com/anvaka/ngraph.path.git","type":"git"},"_npmVersion":"3.10.10","description":"Path finding in a graph","directories":{},"_nodeVersion":"7.2.1","devDependencies":{"tap":"^10.7.2","ngraph.graph":"0.0.14","ngraph.fromdot":"^0.2.0"},"_npmOperationalInternal":{"tmp":"tmp/ngraph.path-1.0.1.tgz_1505959522548_0.23224015138112009","host":"s3://npm-registry-packages"}},"1.0.2":{"name":"ngraph.path","version":"1.0.2","keywords":["ngraph","path","find","astar","a-star","pathfinding"],"author":{"name":"Andrei Kashcha"},"license":"MIT","_id":"ngraph.path@1.0.2","maintainers":[{"name":"anvaka","email":"anvaka@gmail.com"}],"homepage":"https://github.com/anvaka/ngraph.path#readme","bugs":{"url":"https://github.com/anvaka/ngraph.path/issues"},"dist":{"shasum":"546bfa082900ad6eb6da95171cbc603e524de937","tarball":"https://registry.npmjs.org/ngraph.path/-/ngraph.path-1.0.2.tgz","integrity":"sha512-mYHWvnfx0acKpls1AsSTP4D47nZTQZVYsvgndoEfCAZ7B3hmPMspYpJICKoV0r5oTMOA4F3Eid9OuQq2tsvnvw==","signatures":[{"sig":"MEQCIH5uEa4Rg635NufNxoKqceW8kfYjrihYW4i3prPjrx/nAiB4fjROnuQoFY+BZI4n+lZmSllLG9Qf05jMXlKvxnaM0Q==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"index.js","_from":".","_shasum":"546bfa082900ad6eb6da95171cbc603e524de937","gitHead":"925c40c0537f858877c12835104dcec8bedc1aab","scripts":{"test":"tap test/*.js"},"_npmUser":{"name":"anvaka","email":"anvaka@gmail.com"},"repository":{"url":"git+https://github.com/anvaka/ngraph.path.git","type":"git"},"_npmVersion":"3.10.10","description":"Path finding in a graph","directories":{},"_nodeVersion":"7.2.1","devDependencies":{"tap":"^10.7.2","ngraph.graph":"0.0.14","ngraph.fromdot":"^0.2.0"},"_npmOperationalInternal":{"tmp":"tmp/ngraph.path-1.0.2.tgz_1505976739262_0.6996283901389688","host":"s3://npm-registry-packages"}},"1.0.3":{"name":"ngraph.path","version":"1.0.3","keywords":["ngraph","path","find","astar","a-star","pathfinding"],"author":{"name":"Andrei Kashcha"},"license":"MIT","_id":"ngraph.path@1.0.3","maintainers":[{"name":"anvaka","email":"anvaka@gmail.com"}],"homepage":"https://github.com/anvaka/ngraph.path#readme","bugs":{"url":"https://github.com/anvaka/ngraph.path/issues"},"dist":{"shasum":"2ec2d97c55c7473e1c883eed7052917388d3b88d","tarball":"https://registry.npmjs.org/ngraph.path/-/ngraph.path-1.0.3.tgz","fileCount":20,"integrity":"sha512-AWdsSPIXqpwyB62rzK0jJ9le10fqDNdFysE8c0T7T6vaERlHh7t5ClXKKkatVDXzTy4cc+4F+PD81/dLtIaa1Q==","signatures":[{"sig":"MEYCIQDNf0MboCIHG2XT+ldqb07k1pIURlTvRONnr9BaYuDeogIhAJoQbKKDCV1rMTKFr8HyBjxI9AtWRxUhUEt0hXIqg3Kl","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":2683696,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcCeidCRA9TVsSAnZWagAAh0kP+gIqkdmYyZKN6oUbDWWp\naRxJEGutHCP6VKsfgB8CI4wVyMduPLiFaiTHArUueP/4ianilxvigQShGtmH\niJjc3+FghiBJuBQxh1pioRS43qNn+bURR3UNWlYmE00p48bgumeKQ78oZ4aZ\nbPGvXmK42jOiGkshDxRDpO8J+I8405mxA5R93NJ85AHGgLQZtPEqK6W7PhFw\nQkBtuQXhPXfC36DYLr9eHvoeYm5WliPYlHSSMLRgcHqKlvtpwyDuZDV/bqSg\nn43UNwVTkI1nV9xdQ9U15wjwj973vsMGzNxPCTdb3yUCbT0k8mtzlrG6ELAX\nlNYMcmc9Sr7MoMuxWm7DY218iR64be1EfQrMudUXTohZ0bf2YHgdG0pkpqhS\nNCCnuvGmq8Z7DeVuw4sXMjuk3h/Y6uj1Z8fZehAwdposweMl/1JZobTKG5zP\n2neBK5dslMXJ6htd8jl7EJZRbtUNg/o7jFQ5JbpNEyQls/32I3pvvZF0mvRI\nU3GP/OrRpFJz1rOUMiuo5K2r3Z1fUIZfPtxYG1v5PYrkPBPt4okknmrorHGq\nJ55fDx1yGYv556RSE83j1SV+YL1Kaqga3Cub1XS4G6evN20SyZv0OBdjcW7I\ni2wLl7Zjm+mgJsrBxCuMOBEAggEkOlN8y9aWYTGzwXuwSq4fcCsyaRUcFiaT\naGjA\r\n=9ne8\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","gitHead":"0726e58dd1b17b07a4d64cf34b9ee59ab63ecd16","scripts":{"test":"tap test/*.js"},"_npmUser":{"name":"anvaka","email":"anvaka@gmail.com"},"repository":{"url":"git+https://github.com/anvaka/ngraph.path.git","type":"git"},"_npmVersion":"6.4.1","description":"Path finding in a graph","directories":{},"_nodeVersion":"8.10.0","_hasShrinkwrap":false,"devDependencies":{"tap":"^10.7.2","ngraph.graph":"0.0.14","ngraph.fromdot":"^0.2.0"},"_npmOperationalInternal":{"tmp":"tmp/ngraph.path_1.0.3_1544153244114_0.7346944350533131","host":"s3://npm-registry-packages"}},"1.1.0":{"name":"ngraph.path","version":"1.1.0","keywords":["ngraph","path","find","astar","a-star","pathfinding"],"author":{"name":"Andrei Kashcha"},"license":"MIT","_id":"ngraph.path@1.1.0","maintainers":[{"name":"anvaka","email":"anvaka@gmail.com"}],"homepage":"https://github.com/anvaka/ngraph.path#readme","bugs":{"url":"https://github.com/anvaka/ngraph.path/issues"},"dist":{"shasum":"87a95da6c0793d5088add136ba68d3ae36496003","tarball":"https://registry.npmjs.org/ngraph.path/-/ngraph.path-1.1.0.tgz","fileCount":22,"integrity":"sha512-3lY5/ClJVlt/DnqE0pTdzhuh7SxaXWMwr1RMyjXHKF4rXWpA4dQNZ5zS3uligdXvh5C+2LVA4O5xjhQ5sYJSaQ==","signatures":[{"sig":"MEQCIHg24F6qKZc3P1inKGn6Rg3BJn4tddaWA3VyY9BHZwq9AiAyGIj5CBTPRiXXJhdoH9inMMZD8O+7Idx9XbYcHHCPww==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":2731321,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcdA7aCRA9TVsSAnZWagAAB94QAJ2iFnsb/ZuARvy0bWeg\nFVqm5iFV2WbYdmd87QAuf39rts72VkOERXKbsJSFXIf7it5FIggPHNMHtpFh\n1DyIjldkqau43CyS8outemFEMDXf6UJCZwW9A/2/dL5BlMZBhx4P7316J9xL\n1Wx6kby1JveHe1/9J6/JNG1nIA6dJoed2T5WFxVjiHwLz4EWQnjydvgq+d4+\n2mfuZibdwcEP+v3H6a8X4xPqRhSZeGSf4nB8fJFnRYQeATKuO7SvHpPtVpcY\ngElBtDE9I0hg0UA/MuV7mTkkCvU5f6L6P6toi0qnt3WEs8THoRJorkSL2Ucc\nj69FknhM9l1BVNdp8Rn/BreCYrmtUFuPSHGcejrkqOw6XYs8jKsPVLC5BIua\nddGWh+fw9bcAne8ou6xdBEWgYaW0OHh/E3pXlCQxhxtnK9fKEZuzm7WGQ8np\nEVEQfE6AgP1Hz29ApONYiJgt2izbVkny6EVg1dPHhIm+3a8h8Qc7rxR2MO7V\nasJPcyOg0xl/7zTh9yoaljhBA/Swd73MFMzyGQujrxjDEA0JFEhP5e68yaQv\nXIoCYwDdRiNBQHu0QXQClxVapB5lpRu+RFCqvXisxTQLrkn4K2Kone657Y3e\nrI7Z17ZFDbfjz2AXdO/diW3vop1yu6EUnMfmz57B80FyOKskgu3OTiz8GxUT\nfPMU\r\n=GITS\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","gitHead":"6798fc9818d17bc04fdffaa3cedcf55dac2090ca","scripts":{"test":"tap test/*.js","build":"browserify index.js -s ngraphPath -o dist/ngraph.path.js && uglifyjs dist/ngraph.path.js -o dist/ngraph.path.min.js"},"_npmUser":{"name":"anvaka","email":"anvaka@gmail.com"},"repository":{"url":"git+https://github.com/anvaka/ngraph.path.git","type":"git"},"_npmVersion":"6.4.1","description":"Path finding in a graph","directories":{},"_nodeVersion":"8.10.0","_hasShrinkwrap":false,"devDependencies":{"tap":"^12.5.3","uglify-js":"^3.4.9","browserify":"^16.2.3","ngraph.graph":"0.0.15","ngraph.fromdot":"^0.4.0"},"_npmOperationalInternal":{"tmp":"tmp/ngraph.path_1.1.0_1551109849619_0.14019467600974922","host":"s3://npm-registry-packages"}},"1.2.0":{"name":"ngraph.path","version":"1.2.0","keywords":["ngraph","path","find","astar","a-star","pathfinding"],"author":{"name":"Andrei Kashcha"},"license":"MIT","_id":"ngraph.path@1.2.0","maintainers":[{"name":"anvaka","email":"anvaka@gmail.com"}],"homepage":"https://github.com/anvaka/ngraph.path#readme","bugs":{"url":"https://github.com/anvaka/ngraph.path/issues"},"dist":{"shasum":"6f50110d7439d4289fe0f60a1dc8d184b5191e56","tarball":"https://registry.npmjs.org/ngraph.path/-/ngraph.path-1.2.0.tgz","fileCount":22,"integrity":"sha512-GMbpiox35n8N/Cs42hJllEvASqh8BrQ+u7RQ55z/538gljc6ccoZakX5liFyEX2arysraH1CLaAEvu/YxjP6jQ==","signatures":[{"sig":"MEYCIQDSveov6V46BWpxF71rCiRVi6O9DOB3AIgAsWVLWXXPMwIhAPMY/haLv+UnO6p40MQgEFqLsxndUE9brgw3bCiuBZBG","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":2731610,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJc2EJfCRA9TVsSAnZWagAATg0P/j07H+YjfVqj9xzAXaZ1\nhZyWD+JsuuPLaFFChgJPcQ9GNV6AYSdVrEmRwCsuyxcm+nof8WJrz6ItqiUM\neuUNqqcUG/9W6WIIiIlHdn3wtRiv0nS2ImoeQyDrlQ3m+hcGLtER9SQYYcoS\nQ5U7MUQLh+Fh1KLAL4EuxegH/AFquwSv1/vQTFvty6l5kOjBSEy0je22f8Q3\n407hTMJkZqpT0vOnFi5Py3kEkUZFNaFz3u8S+krZe709uieuYxnQjfkSW17P\nm/HT1l3KaLEa5odpGLv/n35u/0VAKXNcX+vcLDKquck6YXiDlVqcEWh5hw7i\nIqOLbHptFeZ2OkuJ5sqbIrmu8MC2f0lIF88ZkWrncye/NomRlyQVBqmWRDyf\nXq3VgzvI6iUHzTYb/qDedJHEb0VTNq5ApZYhqKKnASnkRDU03P0NDjzIg+gH\n40/Pjg1ecBsIPJWyeUDDDp+9bLKH6WKC76XmBoBv9583C8QuvWw/eoYQzcky\nfKa2VeZhG04hVIHIx3sjV56kpXpmXVERoXdMBDzXm8Gljb/H63nNdT52oiu/\nCiGJzzMv6mXwRbTgds1Cmwnpb95jiCN1To5eZxo1urn11dXYGWpkyGVnd66R\ntz1hh5/kOg7UaaQuk4/dWGZIXmHUYWJdjlyRmGGm0cqxQnGTdCoQ5hPcL8c7\nMfgW\r\n=op7C\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","gitHead":"50a51a0c26cd38b624e113b0f52ae64e72e635b4","scripts":{"test":"tap test/*.js","build":"browserify index.js -s ngraphPath -o dist/ngraph.path.js && uglifyjs dist/ngraph.path.js -o dist/ngraph.path.min.js"},"_npmUser":{"name":"anvaka","email":"anvaka@gmail.com"},"repository":{"url":"git+https://github.com/anvaka/ngraph.path.git","type":"git"},"_npmVersion":"6.4.1","description":"Path finding in a graph","directories":{},"_nodeVersion":"8.10.0","_hasShrinkwrap":false,"devDependencies":{"tap":"^13.1.8","uglify-js":"^3.4.9","browserify":"^16.2.3","ngraph.graph":"18.0.0","ngraph.fromdot":"^0.4.0"},"_npmOperationalInternal":{"tmp":"tmp/ngraph.path_1.2.0_1557676638668_0.9077852153883852","host":"s3://npm-registry-packages"}},"1.3.0":{"name":"ngraph.path","version":"1.3.0","keywords":["ngraph","path","find","astar","a-star","pathfinding"],"author":{"name":"Andrei Kashcha"},"license":"MIT","_id":"ngraph.path@1.3.0","maintainers":[{"name":"anvaka","email":"anvaka@gmail.com"}],"homepage":"https://github.com/anvaka/ngraph.path#readme","bugs":{"url":"https://github.com/anvaka/ngraph.path/issues"},"dist":{"shasum":"19d258371660c8aaca7b0e0a0f69b41ecd4ebd17","tarball":"https://registry.npmjs.org/ngraph.path/-/ngraph.path-1.3.0.tgz","fileCount":22,"integrity":"sha512-sOxQWeDwz9x3c7KGr+Z3u5GGCIkaEdJmTkN0s/76L4BVygiy+QbLobhOUsGtV9geoz37peQroN2vYMjl/wcT5g==","signatures":[{"sig":"MEYCIQC50aA84PYs0J0UJal44SEsuPZVw7rsWQ7HjWkrR0JLywIhAMHLvQEKGwBkz4elGZCzzNvWx2jcJSaOyk1RIxxbK4fp","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":2731610,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdtIczCRA9TVsSAnZWagAA/4kP/1QGbWYPZN8DnRLJWSCl\nXBX4nEkqMDMbvyX62LbA6rUgXQ4yWKIcA9BWibFLt7VRPv8Lp/c9mSx+2u1K\nQsMGotd46mJEhy8ZVGXSnEYlKVc16nxZE7NKmAHdgryuxNWBOlkovGlyS9Iv\nZ32OHaqTjwCYfkjJcPD9LKfBdOhA1xc24XithIw8MPHFJSEpA7DTNQcZiv5Z\nVgVlWg/miza2DdRwflgQkZQiVTxKK9yBuD77p/NZbpo1sHN7Gumjsf78kIo3\nWjJ4UvjD/5maLjrnEJjGorX45TbTh7wA16zlD9WGRy8NgdmJYBzwOcy/OnJQ\nsxNLrQmvzVFOudtY7Og/7/WKYXWyS45uOXdjQUkVOXXXtrarFOyoKCKAaowq\njniDIlcJ22dFmBTr23qVrXYgXcyPqerSoZJGgOQym6ouLERS8erUtu53TdDg\n5N+xuCt3nvdU1Q8okfpw9KrGhvhpumon05Xn/QzlsyBz+06Es7v2q2PoG/cx\nXHV8u7ZwnaPurm9pikTqt+z7Kk9Tr+NNUYfBdJea6qfDdtfqGbtPQ8u5A1XL\ny1ZBPCrhKnkRXBk0pNzF+JFB2Syd+2FoX0/lVXmSdjo93i3t9fCIce23TJmX\nTlLPuDq+gdyQ7ipGBg/7cyyborLHiqkVBGbNCBJTTbSahuBfFwnJ9DeLz+jR\nkFfF\r\n=QhBe\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","gitHead":"50f309e9928a7274ba2198900f720059fd88cb79","scripts":{"test":"tap test/*.js","build":"browserify index.js -s ngraphPath -o dist/ngraph.path.js && uglifyjs dist/ngraph.path.js -o dist/ngraph.path.min.js"},"_npmUser":{"name":"anvaka","email":"anvaka@gmail.com"},"repository":{"url":"git+https://github.com/anvaka/ngraph.path.git","type":"git"},"_npmVersion":"6.4.1","description":"Path finding in a graph","directories":{},"_nodeVersion":"8.10.0","_hasShrinkwrap":false,"devDependencies":{"tap":"^13.1.8","uglify-js":"^3.4.9","browserify":"^16.2.3","ngraph.graph":"18.0.0","ngraph.fromdot":"^0.4.0"},"_npmOperationalInternal":{"tmp":"tmp/ngraph.path_1.3.0_1572112178538_0.5555652453272959","host":"s3://npm-registry-packages"}},"1.3.1":{"name":"ngraph.path","version":"1.3.1","keywords":["ngraph","path","find","astar","a-star","pathfinding"],"author":{"name":"Andrei Kashcha"},"license":"MIT","_id":"ngraph.path@1.3.1","maintainers":[{"name":"anvaka","email":"anvaka@gmail.com"}],"homepage":"https://github.com/anvaka/ngraph.path#readme","bugs":{"url":"https://github.com/anvaka/ngraph.path/issues"},"dist":{"shasum":"bc05b3ad7a9719eedf6679804ca0e2d913239978","tarball":"https://registry.npmjs.org/ngraph.path/-/ngraph.path-1.3.1.tgz","fileCount":22,"integrity":"sha512-A78BGNCDo/uMApMx9QRqtSOheV4wMrgxitOVR2+0ZdbTfgzd70IN2WjuSXUFbNh7T2o0fPebPB2AFx39IvP8Gw==","signatures":[{"sig":"MEUCIQDlxyTvjJrlriktzdRBW0Ak1hFMLlVjtEZ6mv+fo0owJgIgIEMhObHINYKCqVNurt6JRoyOyG3aIWTt9wN6yNj2mA8=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":2731610,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdv4P9CRA9TVsSAnZWagAAXa8P/RNxQbYRnBOPaX37Hflp\np7kIgm+7e3oI72M+mTVrgNKnHP9VR/bhmHi7ZfaFCXy03T141wlFkrBlP5nY\nPJ8vviXsh+VZBX6dSr/Ed3ap8GRgfcVqZLeeRJDaZxJTDpjnYrNxaimyE9jh\nNGFbCvvXr2C8npAyhvJDmj3tDlzFO4NWSDzK2G8M1wrKEeKITqrxjYoW4bVh\nyh/P+m0n9HGZo1OWx50ooMTd5tPjhUN7H97soPprULKMeSjcCrH+74sppbGo\nJ1s8+ICZJ8proYL7202ccN84SahbLQjfLt2Qmyy7fj+KGGDtMjZEBpKbXcLi\nn/ydwl72D5ctun4KNpA2p1uMwoJsEZbL6yCL16tOkwF6ci3HOxPubcuMCc7z\n4RmE5iwrjFfER6H1YDmCK7n8NlO22HHhkVj7nnIcmHmM5xcMQ4T7TiHG6LqD\nvpNk+8QwUwCv4i1eP5mBbvILxXaqllB2uqZqtWruZsDup9xzguzGZduwvAZJ\nHMut7M7g/H8UbkROjgICXJNoAP3Anwbi/BlU4l87epBJzGiOllVQBIKVOHvA\nfWCzYMwMhiPn/DcfuVLcWJiJBF/bmbrST+Nj8GqDQKWTfU+IC38+w4Kv4n1K\nXeBFlzlQE8U1q85aGNKT9Vp7idnu7xol7NaYzCJUGbVXqNDUvFAITid2te8f\nlCXx\r\n=CiCF\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","gitHead":"224dde327219890db1930abd89480619314471b8","scripts":{"test":"tap test/*.js","build":"browserify index.js -s ngraphPath -o dist/ngraph.path.js && uglifyjs dist/ngraph.path.js -o dist/ngraph.path.min.js"},"_npmUser":{"name":"anvaka","email":"anvaka@gmail.com"},"repository":{"url":"git+https://github.com/anvaka/ngraph.path.git","type":"git"},"_npmVersion":"6.4.1","description":"Path finding in a graph","directories":{},"_nodeVersion":"8.10.0","_hasShrinkwrap":false,"devDependencies":{"tap":"^13.1.8","uglify-js":"^3.4.9","browserify":"^16.2.3","ngraph.graph":"18.0.0","ngraph.fromdot":"^0.4.0"},"_npmOperationalInternal":{"tmp":"tmp/ngraph.path_1.3.1_1572832253141_0.5875688709226514","host":"s3://npm-registry-packages"}},"1.4.0":{"name":"ngraph.path","version":"1.4.0","keywords":["ngraph","path","find","astar","a-star","pathfinding"],"author":{"name":"Andrei Kashcha"},"license":"MIT","_id":"ngraph.path@1.4.0","maintainers":[{"name":"anvaka","email":"anvaka@gmail.com"}],"homepage":"https://github.com/anvaka/ngraph.path#readme","bugs":{"url":"https://github.com/anvaka/ngraph.path/issues"},"dist":{"shasum":"0b6701b187d92d3e72ba8ecfe094a4154fc69aba","tarball":"https://registry.npmjs.org/ngraph.path/-/ngraph.path-1.4.0.tgz","fileCount":23,"integrity":"sha512-yJZay4tP0wcjqkkf8zlMQ/T+JOgU+EWfdE4w4TG8OS94B12J/+Z44UOYxVJErE8E6/wFunX1hMZEB1/GHsBYHg==","signatures":[{"sig":"MEQCIBwechXEsxCh6/RmtCzBPL3bVdDfqGnzExXLzFFdyJo0AiA45jdPNjeAAc8oojVn0GBCdKh511VwstpAOJFBp3i5qQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":2732124,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJh7N4lCRA9TVsSAnZWagAAJlMP/iL0EKtZG/CcdKjEVl7O\nWzjX517BGwqOHZ1UBq38hJ2Nf/Yc2sKoI25X49W7kOYJPoeTD/inJn/bGar3\n7PxLzvWjuEuvuGm/iO60eCH1BKdcjJl/7J6E6jw5BagEfSCGs6Nzh9VdytzK\nHmr1VZfPfPk4EUIRD6/Obz/2YjH6KeBCqJk4m+Hy48C2fIKlT0UQow5pizPP\nTxmZpGMOd9m8f8rxpXdX2egUAHzpQtb68EqF5GHykRH/KTnLt01xg1I+Mtd0\njW6oDfbh00+ZApjlPFF0X9cPuUvwWTe7pRKHMxT4CQ3UEjUmnBzeWbwa2U5Z\nQxcnjJ2diMPlDwjI/0JYMksiOXCl8ZEE153ty+EnwmVsV/n0Ogm0nWrRFoBO\nSwXCvWErRPCoA7eZ8oPyXr5OQDcOrhlBr9r/NEbn0+gzNjF2SK3rMBXajNDB\npimXiLHJep6GOBoTWP5067RyXQ/GlI9pPhFcCMOTjtAzTeD3sFKXcWnTVpwt\nKHzS/B3+Qq1qaoyVovAj0rQokVjbPVx7nTpJVkd+SK7HBMFW8pGWN2VfNg7p\n6UyQFs3TwFJzwNa7y2zjYRIKDc+NhvE3oKD8Ug4OyNkLNkW6MVdlQJUwVlCJ\n3xqJCZPvUNd3tOeLuxrNvkyObEWt8QSlU7AFQGjQW/4ufav6FyBILWeYqBZ5\nevgz\r\n=mY3+\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","gitHead":"3c972267abd23776d1f0832b83ac0983732efe9f","scripts":{"test":"tap --branches=70 --lines=80 --statements=80 --functions=80 test/*.js","build":"browserify index.js -s ngraphPath -o dist/ngraph.path.js && uglifyjs dist/ngraph.path.js -o dist/ngraph.path.min.js"},"_npmUser":{"name":"anvaka","email":"anvaka@gmail.com"},"repository":{"url":"git+https://github.com/anvaka/ngraph.path.git","type":"git"},"_npmVersion":"7.18.1","description":"Path finding in a graph","directories":{},"_nodeVersion":"16.4.0","_hasShrinkwrap":false,"devDependencies":{"tap":"^15.1.6","uglify-js":"^3.10.0","browserify":"^16.5.1","ngraph.graph":"^20.0.0","ngraph.fromdot":"^7.0.0"},"_npmOperationalInternal":{"tmp":"tmp/ngraph.path_1.4.0_1642913317420_0.6874793845877092","host":"s3://npm-registry-packages"}},"1.5.0":{"name":"ngraph.path","version":"1.5.0","keywords":["ngraph","path","find","astar","a-star","pathfinding"],"author":{"name":"Andrei Kashcha"},"license":"MIT","_id":"ngraph.path@1.5.0","maintainers":[{"name":"anvaka","email":"anvaka@gmail.com"}],"homepage":"https://github.com/anvaka/ngraph.path#readme","bugs":{"url":"https://github.com/anvaka/ngraph.path/issues"},"dist":{"shasum":"4630ffdb2ce77691fd6e17fc9f12f51fce83d3e6","tarball":"https://registry.npmjs.org/ngraph.path/-/ngraph.path-1.5.0.tgz","fileCount":23,"integrity":"sha512-2IdmqfBYq2zbGHtpmskdWF6x/nIWZkhfs1taMgg2waBJRn4xNqe7gBiRtD1YS5ZcKhp0trK+Gw94Rli2emMs1Q==","signatures":[{"sig":"MEUCIFv0HcFhScvVpCyD6u/+CU41msofTeqMaIXuchD+6mflAiEAphyHrMmCVoU9wF598NWwfyliWzMugisF3+w0STFORJg=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":2738627},"main":"index.js","types":"./index.d.ts","gitHead":"386e9b4e6c279e620b45f2684f85483c44bcfc2a","scripts":{"test":"tap --branches=70 --lines=80 --statements=80 --functions=80 test/*.js","build":"browserify index.js -s ngraphPath -o dist/ngraph.path.js && uglifyjs dist/ngraph.path.js -o dist/ngraph.path.min.js"},"_npmUser":{"name":"anvaka","email":"anvaka@gmail.com"},"repository":{"url":"git+https://github.com/anvaka/ngraph.path.git","type":"git"},"_npmVersion":"8.19.2","description":"Path finding in a graph","directories":{},"_nodeVersion":"16.18.0","_hasShrinkwrap":false,"devDependencies":{"tap":"^16.3.0","uglify-js":"^3.10.0","browserify":"^16.5.1","ngraph.graph":"^20.0.0","ngraph.fromdot":"^7.0.0"},"_npmOperationalInternal":{"tmp":"tmp/ngraph.path_1.5.0_1691973716788_0.9460894289673765","host":"s3://npm-registry-packages"}},"1.6.0":{"name":"ngraph.path","version":"1.6.0","keywords":["ngraph","path","find","astar","a-star","pathfinding"],"author":{"name":"Andrei Kashcha"},"license":"MIT","_id":"ngraph.path@1.6.0","maintainers":[{"name":"anvaka","email":"anvaka@gmail.com"}],"homepage":"https://github.com/anvaka/ngraph.path#readme","bugs":{"url":"https://github.com/anvaka/ngraph.path/issues"},"dist":{"shasum":"a2320e9acf244b0c59c11d91b67f3ac5b3c50074","tarball":"https://registry.npmjs.org/ngraph.path/-/ngraph.path-1.6.0.tgz","fileCount":29,"integrity":"sha512-E4UTqvant24SnAq3s0cPO1FgR8Zd5HXz9dS+tFLpck42XDoFBMbQ7Do6HFx5oYEWanCK2mcDTc/OAiWjbGaDzA==","signatures":[{"sig":"MEQCIAIefKevD+mbIuyaccddoWx8JUzLPJuOJ9H7SEhnWa0MAiB/I7l+o2HSTs25hbFhg8WCKSLjPAMTO2KZTH1Wl6I5Sg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2810506},"main":"dist/ngraph.path.umd.js","type":"module","types":"index.d.ts","unpkg":"dist/ngraph.path.umd.js","exports":{".":{"types":"./index.d.ts","import":"./index.js","require":"./dist/ngraph.path.umd.js"},"./dist/*":"./dist/*"},"gitHead":"70d29a48cf1556c792c86ee080e5e4d0734d2027","scripts":{"test":"vitest run","build":"vite build","coverage":"vitest run --coverage","test:watch":"vitest"},"_npmUser":{"name":"anvaka","email":"anvaka@gmail.com"},"jsdelivr":"dist/ngraph.path.umd.js","deprecated":"Broken CommonJS entry; use >=1.6.1","repository":{"url":"git+https://github.com/anvaka/ngraph.path.git","type":"git"},"_npmVersion":"11.5.1","description":"Path finding in a graph","directories":{},"sideEffects":false,"_nodeVersion":"24.7.0","_hasShrinkwrap":false,"devDependencies":{"vite":"^7.1.4","vitest":"^3.2.4","ngraph.graph":"^20.0.0","@vitest/coverage-v8":"^3.2.4"},"_npmOperationalInternal":{"tmp":"tmp/ngraph.path_1.6.0_1763185184347_0.2060326086195019","host":"s3://npm-registry-packages-npm-production"}},"1.6.1":{"name":"ngraph.path","version":"1.6.1","description":"Path finding in a graph","type":"module","main":"dist/ngraph.path.cjs","module":"dist/ngraph.path.es.js","types":"index.d.ts","jsdelivr":"dist/ngraph.path.umd.js","unpkg":"dist/ngraph.path.umd.js","scripts":{"build":"vite build","test":"vitest run","test:watch":"vitest","coverage":"vitest run --coverage"},"keywords":["ngraph","path","find","astar","a-star","pathfinding"],"author":{"name":"Andrei Kashcha"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/anvaka/ngraph.path.git"},"devDependencies":{"@vitest/coverage-v8":"^3.2.4","ngraph.graph":"^20.0.0","vite":"^7.1.4","vitest":"^3.2.4"},"exports":{".":{"types":"./index.d.ts","import":"./dist/ngraph.path.es.js","require":"./dist/ngraph.path.cjs","default":"./dist/ngraph.path.es.js"},"./dist/*":"./dist/*"},"sideEffects":false,"_id":"ngraph.path@1.6.1","gitHead":"76c113c59ac3e2c11dc5ea26ffc76c833fe0b486","bugs":{"url":"https://github.com/anvaka/ngraph.path/issues"},"homepage":"https://github.com/anvaka/ngraph.path#readme","_nodeVersion":"24.7.0","_npmVersion":"11.5.1","dist":{"integrity":"sha512-NiA52wAoRo/t36/1dBAZkXPeX+rQ1mn82bc9LSfnfywGY9TxH/jXw3x3fZ1mOCblyln26lHtfHHEzssjjyX+aw==","shasum":"aef6eafe29bf878a98d0d5f0314aacac4218a9b0","tarball":"https://registry.npmjs.org/ngraph.path/-/ngraph.path-1.6.1.tgz","fileCount":31,"unpackedSize":2863901,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIC+9t05C/IgR6e82cBJvkWwJW3oSmZhluT28QsgU9FiKAiAqFmX3swvnt3f90+Y6cs+4X2GzhYnIevOoQ64D1M4GNg=="}]},"_npmUser":{"name":"anvaka","email":"anvaka@gmail.com"},"directories":{},"maintainers":[{"name":"anvaka","email":"anvaka@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/ngraph.path_1.6.1_1763449853052_0.5377862271181539"},"_hasShrinkwrap":false}},"time":{"created":"2017-09-19T07:13:35.313Z","modified":"2025-11-18T07:10:53.517Z","1.0.0":"2017-09-19T07:13:35.313Z","1.0.1":"2017-09-21T02:05:22.707Z","1.0.2":"2017-09-21T06:52:19.874Z","1.0.3":"2018-12-07T03:27:24.531Z","1.1.0":"2019-02-25T15:50:49.869Z","1.2.0":"2019-05-12T15:57:18.871Z","1.3.0":"2019-10-26T17:49:38.710Z","1.3.1":"2019-11-04T01:50:53.356Z","1.4.0":"2022-01-23T04:48:37.622Z","1.5.0":"2023-08-14T00:41:57.038Z","1.6.0":"2025-11-15T05:39:44.727Z","1.6.1":"2025-11-18T07:10:53.309Z"},"bugs":{"url":"https://github.com/anvaka/ngraph.path/issues"},"author":{"name":"Andrei Kashcha"},"license":"MIT","homepage":"https://github.com/anvaka/ngraph.path#readme","keywords":["ngraph","path","find","astar","a-star","pathfinding"],"repository":{"type":"git","url":"git+https://github.com/anvaka/ngraph.path.git"},"description":"Path finding in a graph","maintainers":[{"name":"anvaka","email":"anvaka@gmail.com"}],"readme":"# ngraph.path\n\nFast path finding for arbitrary graphs. [Play with a demo](https://anvaka.github.io/ngraph.path.demo/) or [watch it](https://www.youtube.com/watch?v=hGeZuIEV6KU) on YouTube.\n\n[![demo](https://raw.githubusercontent.com/anvaka/ngraph.path/main/docs/seattle.gif)](https://anvaka.github.io/ngraph.path.demo/)\n\nIf you want to learn how the demo was made, please refer to the [demo's source code](https://github.com/anvaka/ngraph.path.demo#ngraphpath-demo).\nI tried to describe it in great details.\n\n# Performance\n\nI measured performance of this library on New York City roads graph (`733,844` edges, `264,346` nodes).\nIt was done by solving `250` random path finding problems. Each algorithm was solving\nthe same set of problems. Table below shows required time to solve one problem.\n\n|                                        | Average | Median | Min | Max   | p90   | p99   |\n|----------------------------------------|---------|:------:|:---:|-------|-------|-------|\n|      A* greedy (suboptimal)            |   32ms  |  24ms  | 0ms | 179ms |  73ms | 136ms |\n|      NBA*                              |   44ms  |  34ms  | 0ms | 222ms | 107ms | 172ms |\n|      A*, unidirectional                |   55ms  |  38ms  | 0ms | 356ms | 123ms | 287ms |\n|      Dijkstra                          |  264ms  | 258ms  | 0ms | 782ms | 483ms | 631ms |\n\n\"A* greedy\" converged the fastest, however, as name implies the found path is not necessary\nglobally optimal.\n\n[Source code for performance measurements](https://github.com/anvaka/ngraph.path.demo/blob/main/measurePerformance.js)\n\n## Why is it fast?\n\nThere are a few things that contribute to the performance of this library.\n\nI'm using heap-based priority queue, built specifically for the path finding.\nI [modified a heap's](https://github.com/anvaka/ngraph.path/blob/main/a-star/NodeHeap.js) implementation,\nso that changing priority of any element takes `O(lg n)` time.\n\nEach path finder opens many graph nodes during its exploration, which creates pressure\non garbage collector. To avoid the pressure, I've created an [object pool](https://github.com/anvaka/ngraph.path/blob/main/a-star/nba/makeNBASearchStatePool.js),\nwhich recycles nodes when possible.\n\nIn general, the `A*` algorithm helps to converge to the optimal solution faster than\nDijkstra, because it uses \"hints\" from the heuristic function. When search is performed\nin both directions (`source -> target` and `target -> source`), the convergence can be\nimproved even more. The [NBA*](https://github.com/anvaka/ngraph.path/blob/main/a-star/nba/index.js) algorithm\nis a bi-directional path finder, that guarantees optimal shortest path. At the same time it\nremoves balanced heuristic requirement. It also seem to be the fastest algorithm, among implemented \nhere *(NB: If you have suggestions how to improve this even further - please let me know!)*\n\nI also tried to create my own version of bi-directional A* search, which\nturned out to be harder than I expected - the two searches met each other quickly, but the point\nwhere they met was not necessary on the shortest global path. It was close to optimal, but not the optimal.\nI wanted to remove the code, but then changed my mind: It finds a path very quickly. So, in case when\nspeed matters more than correctness, this could be a good trade off. I called this algorithm `A* greedy`,\nbut maybe it should be `A* lazy`.\n\n# usage\n\n## installation\n\nYou can install this module, bu requiring it from npm:\n\n```\nnpm i ngraph.path\n```\n\nOr download from CDN:\n\n``` html\n<script src=\"https://unpkg.com/ngraph.path@1.6.0/dist/ngraph.path.umd.js\"></script>\n```\n\nIf you download from CDN the library will be available under `ngraphPath` global name.\n\n## Basic usage\n\nThis is a basic example, which finds a path between arbitrary\ntwo nodes in arbitrary graph\n\n``` js\nlet path = require('ngraph.path');\nlet pathFinder = path.aStar(graph); // graph is https://github.com/anvaka/ngraph.graph\n\n// now we can find a path between two nodes:\nlet fromNodeId = 40;\nlet toNodeId = 42;\nlet foundPath = pathFinder.find(fromNodeId, toNodeId);\n// foundPath is array of nodes in the graph\n```\n\nExample above works for any graph, and it's equivalent to unweighted [Dijkstra's algorithm](https://en.wikipedia.org/wiki/Dijkstra%27s_algorithm).\n\n## Weighted graph\n\nLet's say we have the following graph:\n\n``` js\nlet createGraph = require('ngraph.graph');\nlet graph = createGraph();\n\ngraph.addLink('a', 'b', {weight: 10});\ngraph.addLink('a', 'c', {weight: 10});\ngraph.addLink('c', 'd', {weight: 5});\ngraph.addLink('b', 'd', {weight: 10});\n```\n\n![weighted](https://raw.githubusercontent.com/anvaka/ngraph.path/main/docs/weighted.png)\n\nWe want to find a path with the smallest possible weight:\n\n``` js\nlet pathFinder = aStar(graph, {\n  // We tell our pathfinder what should it use as a distance function:\n  distance(fromNode, toNode, link) {\n    // We don't really care about from/to nodes in this case,\n    // as link.data has all needed information:\n    return link.data.weight;\n  }\n});\nlet path = pathFinder.find('a', 'd');\n```\n\nThis code will correctly print a path: `d <- c <- a`.\n\n## Guided (A-Star)\n\nWhen pathfinder searches for a path between two nodes it considers all\nneighbors of a given node without any preference. In some cases we may want to\nguide the pathfinder and tell it our preferred exploration direction.\n\nFor example, when each node in a graph has coordinates, we can assume that \nnodes that are closer towards the path-finder's target should be explored \nbefore other nodes.\n\n``` js\nlet createGraph = require('ngraph.graph');\nlet graph = createGraph();\n\n// Our graph has cities:\ngraph.addNode('NYC', {x: 0, y: 0});\ngraph.addNode('Boston', {x: 1, y: 1});\ngraph.addNode('Philadelphia', {x: -1, y: -1});\ngraph.addNode('Washington', {x: -2, y: -2});\n\n// and railroads:\ngraph.addLink('NYC', 'Boston');\ngraph.addLink('NYC', 'Philadelphia');\ngraph.addLink('Philadelphia', 'Washington');\n```\n\n![guided](https://raw.githubusercontent.com/anvaka/ngraph.path/main/docs/guided.png)\n\nWhen we build the shortest path from NYC to Washington, we want to tell the pathfinder\nthat it should prefer Philadelphia over Boston.\n\n``` js\nlet pathFinder = aStar(graph, {\n  distance(fromNode, toNode) {\n    // In this case we have coordinates. Lets use them as\n    // distance between two nodes:\n    let dx = fromNode.data.x - toNode.data.x;\n    let dy = fromNode.data.y - toNode.data.y;\n\n    return Math.sqrt(dx * dx + dy * dy);\n  },\n  heuristic(fromNode, toNode) {\n    // this is where we \"guess\" distance between two nodes.\n    // In this particular case our guess is the same as our distance\n    // function:\n    let dx = fromNode.data.x - toNode.data.x;\n    let dy = fromNode.data.y - toNode.data.y;\n\n    return Math.sqrt(dx * dx + dy * dy);\n  }\n});\nlet path = pathFinder.find('NYC', 'Washington');\n```\n\nWith this simple heuristic our algorithm becomes smarter and faster.\n\nIt is very important that our heuristic function does not overestimate actual distance\nbetween two nodes. If it does so, then algorithm cannot guarantee the shortest path.\n\n## oriented graphs\n\nIf you want the pathfinder to treat your graph as oriented - pass `oriented: true` setting:\n\n``` js\nlet pathFinder = aStar(graph, {\n  oriented: true\n});\n```\n\n## blocked paths\n\nIn scenarios where a path might be temporarily blocked between two nodes a `blocked()` function\nmay be supplied to resolve blocked routes during path finding.\n\nFor example, train routes with service disruptions could be modelled as follows:\n\n``` js\nlet createGraph = require('ngraph.graph');\nlet graph = createGraph();\n\n// Our graph has cities:\ngraph.addNode('NYC');\ngraph.addNode('Philadelphia');\ngraph.addNode('Baltimore');\ngraph.addNode('Pittsburgh');\ngraph.addNode('Washington');\n\n// and railroads:\ngraph.addLink('NYC', 'Philadelphia', { disruption: false });\ngraph.addLink('Philadelphia', 'Baltimore', { disruption: true });\ngraph.addLink('Philadelphia', 'Pittsburgh', { disruption: false });\ngraph.addLink('Pittsburgh', 'Washington', { disruption: false });\ngraph.addLink('Baltimore', 'Washington', { disruption: false });\n```\n\nWhile the Philadelphia to Baltimore route is facing a service disruption, the alternative \nroute to Washington is via Pittsburgh. The following is an example `blocked()` function implementation\nthat may be supplied to yield this result:\n\n``` js\nlet path = require('ngraph.path');\n\nlet pathFinder = path.aStar(graph, {\n  blocked(fromNode, toNode, link) {\n    return link.data.disruption;\n  },\n});\nlet result = pathFinder.find('NYC', 'Washington');\n```\n\n## available finders\n\nThe library implements a few A* based path finders:\n\n``` js\nlet aStarPathFinder = path.aStar(graph, options);\nlet aGreedyStar = path.aGreedy(graph, options);\nlet nbaFinder = path.nba(graph, options);\n```\n\nEach finder has just one method `find(fromNodeId, toNodeId)`, which returns array of\nnodes, that belongs to the found path. If no path exists - empty array is returned.\n\n## development\n\n```bash\nnpm install\nnpm test\nnpm run build\n```\n\n# Which finder to choose?\n\nWith many options available, it may be confusing whether to pick Dijkstra or A*.\n\nI would pick Dijkstra if there is no way to guess a distance between two arbitrary nodes\nin a graph. If we can guess distance between two nodes - pick A*.\n\nAmong algorithms presented above, I'd recommend `A* greedy` if you care more about speed and\nless about accuracy. However if accuracy is your top priority - choose `NBA*`. \nThis is a bi-directional, optimal A* algorithm with very good exit criteria. You can read\nabout it here: https://repub.eur.nl/pub/16100/ei2009-10.pdf\n\n# license\n\nMIT\n","readmeFilename":"README.md","users":{"rexpan":true}}