{"_id":"async-astar","_rev":"30-7f9cd8b20fcb6f08e9ec73e7307c43e9","name":"async-astar","description":"An asynchronous, generic A*(a-star) solver.","dist-tags":{"latest":"1.0.14"},"versions":{"1.0.0":{"name":"async-astar","version":"1.0.0","description":"A generic, async A-Star solver","main":"src/AsyncAstar.js","scripts":{"test":"grunt simplemocha"},"keywords":["a-star","solver","async"],"author":{"name":"Timothy S Sweeney Jr."},"license":"ISC","devDependencies":{"grunt":"~0.4.5","grunt-contrib-jshint":"^0.11.0","grunt-contrib-watch":"^0.6.1","grunt-jsbeautifier":"^0.2.8","grunt-simple-mocha":"^0.4.0"},"gitHead":"68a025974040674fc9dd0810e4138e7c04e4c1fc","_id":"async-astar@1.0.0","_shasum":"2dcda28a6cd39bc0f798b236cdd1890167c7e966","_from":".","_npmVersion":"1.4.28","_npmUser":{"name":"timssweeney","email":"tim.s.sweeney@gmail.com"},"maintainers":[{"name":"timssweeney","email":"tim.s.sweeney@gmail.com"}],"dist":{"shasum":"2dcda28a6cd39bc0f798b236cdd1890167c7e966","tarball":"https://registry.npmjs.org/async-astar/-/async-astar-1.0.0.tgz","integrity":"sha512-q+IKXuTA//EZ4yAUWVX24xwA3mqsWIgU9WANsd/g1lzF/64P/Vdy/DUjUwMb5dkvhs//3zUvhdZ5IW2VkmfAfw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIDBwcpqyNd8HwfV9A7C4I3AndrFWMZh1Ggm+Cu5a4FEhAiEAv7OgjV2Y/8xq7X68i9MnNVXYfy9W7qomT0N3G8za03o="}]}},"1.0.1":{"name":"async-astar","version":"1.0.1","description":"An asynchronous, generic A*(a-star) solver.","main":"src/AsyncAstar.js","scripts":{"test":"mocha -R min ./tests/"},"keywords":["a-star","solver","async"],"author":{"name":"Timothy S Sweeney Jr."},"license":"ISC","repository":{"type":"git","url":"git://github.com/tssweeney/async-astar.git"},"homepage":"http://timssweeney.com/async-astar/","dependencies":{"mocha":"^2.1.0"},"devDependencies":{"grunt":"~0.4.5","grunt-contrib-jshint":"^0.11.0","grunt-contrib-watch":"^0.6.1","grunt-docker":"0.0.9","grunt-jsbeautifier":"^0.2.8","grunt-simple-mocha":"^0.4.0"},"gitHead":"4ac2f3b295a4e682d31841a1eaf442fe5b8beb5c","bugs":{"url":"https://github.com/tssweeney/async-astar/issues"},"_id":"async-astar@1.0.1","_shasum":"f0ad95d3f1a17817841a16e15f651e352c3de2d4","_from":".","_npmVersion":"1.4.28","_npmUser":{"name":"timssweeney","email":"tim.s.sweeney@gmail.com"},"maintainers":[{"name":"timssweeney","email":"tim.s.sweeney@gmail.com"}],"dist":{"shasum":"f0ad95d3f1a17817841a16e15f651e352c3de2d4","tarball":"https://registry.npmjs.org/async-astar/-/async-astar-1.0.1.tgz","integrity":"sha512-QCxsYIIrDl66kMGw0lkrHyB4NXfmFqP/B3l7wSly+axapKsCln5Ft/FUBnUZByxkvA6twdlcb6CNQKhYR6ABMg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCCz2bRknU2H8eThIXoYInb51tzMJFo3uvHuVIEIdDdkAIgWsbnphNfd7z5qBXKCyeupsBqLHgJXWIqdGH6Dt+K4eE="}]}},"1.0.3":{"name":"async-astar","version":"1.0.3","description":"An asynchronous, generic A*(a-star) solver.","main":"src/AsyncAstar.js","scripts":{"test":"mocha -R min ./tests/"},"keywords":["a-star","solver","async"],"author":{"name":"Timothy S Sweeney Jr."},"license":"ISC","repository":{"type":"git","url":"git://github.com/tssweeney/async-astar.git"},"homepage":"http://timssweeney.com/async-astar/","dependencies":{"mocha":"^2.1.0"},"devDependencies":{"grunt":"~0.4.5","grunt-contrib-jshint":"^0.11.0","grunt-contrib-watch":"^0.6.1","grunt-docker":"0.0.9","grunt-jsbeautifier":"^0.2.8","grunt-simple-mocha":"^0.4.0"},"gitHead":"52960b7c939fb92aafb789794dfdb6b827cc61d7","bugs":{"url":"https://github.com/tssweeney/async-astar/issues"},"_id":"async-astar@1.0.3","_shasum":"189a30bff5e918ed21752c3da0ed120d12cf18c4","_from":".","_npmVersion":"1.4.28","_npmUser":{"name":"timssweeney","email":"tim.s.sweeney@gmail.com"},"maintainers":[{"name":"timssweeney","email":"tim.s.sweeney@gmail.com"}],"dist":{"shasum":"189a30bff5e918ed21752c3da0ed120d12cf18c4","tarball":"https://registry.npmjs.org/async-astar/-/async-astar-1.0.3.tgz","integrity":"sha512-Not2pPc0wd6FKWqliB8r2WKqH3eYwkkG3l1gzoVSnqkK+fr2yoeqal1McqRImCqnAX05SQWNowZoZSZbViFGSA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDZ+kC9K5rnZvkwRvdJ+gaX09UswsL1NWjmlqzQFbiclAIhANnAo5/w6kENtSI/E+ln9RkGYupHgvD+cOL+mH7qft/L"}]}},"1.0.4":{"name":"async-astar","version":"1.0.4","description":"An asynchronous, generic A*(a-star) solver.","main":"src/AsyncAstar.js","scripts":{"test":"mocha -R min ./tests/"},"keywords":["a-star","solver","async"],"author":{"name":"Timothy S Sweeney Jr."},"license":"ISC","repository":{"type":"git","url":"git://github.com/tssweeney/async-astar.git"},"homepage":"http://timssweeney.com/async-astar/","dependencies":{"mocha":"^2.1.0"},"devDependencies":{"grunt":"~0.4.5","grunt-contrib-jshint":"^0.11.0","grunt-contrib-watch":"^0.6.1","grunt-docker":"0.0.9","grunt-jsbeautifier":"^0.2.8","grunt-simple-mocha":"^0.4.0"},"gitHead":"e14ec077785468466914b3519c560e0a2449c295","bugs":{"url":"https://github.com/tssweeney/async-astar/issues"},"_id":"async-astar@1.0.4","_shasum":"3db3e7c91f4503e914ce50c9655259bc178f3282","_from":".","_npmVersion":"1.4.28","_npmUser":{"name":"timssweeney","email":"tim.s.sweeney@gmail.com"},"maintainers":[{"name":"timssweeney","email":"tim.s.sweeney@gmail.com"}],"dist":{"shasum":"3db3e7c91f4503e914ce50c9655259bc178f3282","tarball":"https://registry.npmjs.org/async-astar/-/async-astar-1.0.4.tgz","integrity":"sha512-XRC70K399tuaJRoZkrtODanW3wEc4APJEyxbsS9gCoVMEWYmObqGJkcSvHqHaHJdPPKzT0RxVUnbMu88DiDzPQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDheT2z5drZLM7wBO+fRiuuJGZVp85lBG+91KEXTAU5hQIgPgkIZKkQL21b7n0y5AOq7w0dGQbk8GuCOwJCDBo8ea8="}]}},"1.0.5":{"name":"async-astar","version":"1.0.5","description":"An asynchronous, generic A*(a-star) solver.","main":"src/AsyncAstar.js","scripts":{"test":"mocha -R min ./tests/"},"keywords":["a-star","solver","async"],"author":{"name":"Timothy S Sweeney Jr."},"license":"ISC","repository":{"type":"git","url":"git://github.com/tssweeney/async-astar.git"},"homepage":"http://timssweeney.com/async-astar/","dependencies":{"mocha":"^2.1.0"},"devDependencies":{"grunt":"~0.4.5","grunt-contrib-jshint":"^0.11.0","grunt-contrib-watch":"^0.6.1","grunt-docker":"0.0.9","grunt-jsbeautifier":"^0.2.8","grunt-simple-mocha":"^0.4.0"},"gitHead":"e14ec077785468466914b3519c560e0a2449c295","bugs":{"url":"https://github.com/tssweeney/async-astar/issues"},"_id":"async-astar@1.0.5","_shasum":"3c320ac02ddd324b0c7187933ede3a24643d72ad","_from":".","_npmVersion":"1.4.28","_npmUser":{"name":"timssweeney","email":"tim.s.sweeney@gmail.com"},"maintainers":[{"name":"timssweeney","email":"tim.s.sweeney@gmail.com"}],"dist":{"shasum":"3c320ac02ddd324b0c7187933ede3a24643d72ad","tarball":"https://registry.npmjs.org/async-astar/-/async-astar-1.0.5.tgz","integrity":"sha512-0HEoSHc4MZBVJcc+rcBp0u6DLG0NDDXDhRe98n3JVvzOQQjxZE2hvdw0InUYrNqcK00PsQK6VcYsVuKnKfXwnA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCICvSZhjN4jm/u/lETFQqbmJ+VjXFwfwHYqBYzy5YPFzSAiEAkJZoYUAiWcWwxT04kyk+T8Lwbj4JxH6kewb4MI1K8N0="}]}},"1.0.6":{"name":"async-astar","version":"1.0.6","description":"An asynchronous, generic A*(a-star) solver.","main":"src/AsyncAstar.js","scripts":{"test":"mocha -R min ./tests/"},"keywords":["a-star","solver","async"],"author":{"name":"Timothy S Sweeney Jr."},"license":"ISC","repository":{"type":"git","url":"git://github.com/tssweeney/async-astar.git"},"homepage":"http://timssweeney.com/async-astar/","dependencies":{"mocha":"^2.1.0"},"devDependencies":{"grunt":"~0.4.5","grunt-contrib-jshint":"^0.11.0","grunt-contrib-watch":"^0.6.1","grunt-docker":"0.0.9","grunt-jsbeautifier":"^0.2.8","grunt-simple-mocha":"^0.4.0"},"gitHead":"af4dae10e60c45b2a3e6f628f98a6b5471118180","bugs":{"url":"https://github.com/tssweeney/async-astar/issues"},"_id":"async-astar@1.0.6","_shasum":"db6b032feab6084f1f12d71d1e5f789d3dc3de9e","_from":".","_npmVersion":"1.4.28","_npmUser":{"name":"timssweeney","email":"tim.s.sweeney@gmail.com"},"maintainers":[{"name":"timssweeney","email":"tim.s.sweeney@gmail.com"}],"dist":{"shasum":"db6b032feab6084f1f12d71d1e5f789d3dc3de9e","tarball":"https://registry.npmjs.org/async-astar/-/async-astar-1.0.6.tgz","integrity":"sha512-VA0wNCl0uAE6BKLJu6sXN+yaOXwmpyc4Udoj84oa1ONN4bU3nvhInelg3Q01ses4yL+hTi+6RU/XuWttRcPHzQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDFJp640+SKd/ognblstBC3YZp2ZOfNOcIoA0f/KjtuFQIhAJrNehMY6CnHmRRkpvebDjd00pvOfTdQGTRWXJqidXYL"}]}},"1.0.7":{"name":"async-astar","version":"1.0.7","description":"An asynchronous, generic A*(a-star) solver.","main":"src/AsyncAstar.js","scripts":{"test":"mocha -R min ./tests/"},"keywords":["a-star","solver","async"],"author":{"name":"Timothy S Sweeney Jr."},"license":"ISC","repository":{"type":"git","url":"git://github.com/tssweeney/async-astar.git"},"homepage":"http://timssweeney.com/async-astar/","dependencies":{"mocha":"^2.1.0"},"devDependencies":{"grunt":"~0.4.5","grunt-contrib-jshint":"^0.11.0","grunt-contrib-watch":"^0.6.1","grunt-docker":"0.0.9","grunt-jsbeautifier":"^0.2.8","grunt-simple-mocha":"^0.4.0"},"gitHead":"a0bf0e71da7f19e2678a6162531df430ef2850eb","bugs":{"url":"https://github.com/tssweeney/async-astar/issues"},"_id":"async-astar@1.0.7","_shasum":"8c030fa11bc67577d6e0128a9611d2e338a58026","_from":".","_npmVersion":"1.4.28","_npmUser":{"name":"timssweeney","email":"tim.s.sweeney@gmail.com"},"maintainers":[{"name":"timssweeney","email":"tim.s.sweeney@gmail.com"}],"dist":{"shasum":"8c030fa11bc67577d6e0128a9611d2e338a58026","tarball":"https://registry.npmjs.org/async-astar/-/async-astar-1.0.7.tgz","integrity":"sha512-HcGzJ26uxaieNELNBRGl6Smd6qCqPQYFlKaJ9bqppiJpKXLlrOUBRm1cW7N60hQVhoy6+j7Lb9o6CqFs/DM5hQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCUoq70/p0TkzRxRYn3TsarJtuitPkxHmL+sNIAfoetngIgdY2El889oxVH2w7IbmjQmouEyaIf3HdQYY20fZwB6QY="}]}},"1.0.8":{"name":"async-astar","version":"1.0.8","description":"An asynchronous, generic A*(a-star) solver.","main":"src/AsyncAstar.js","scripts":{"test":"mocha -R min ./tests/"},"keywords":["a-star","solver","async"],"author":{"name":"Timothy S Sweeney Jr."},"license":"ISC","repository":{"type":"git","url":"git://github.com/tssweeney/async-astar.git"},"homepage":"http://timssweeney.com/async-astar/","dependencies":{"mocha":"^2.1.0"},"devDependencies":{"grunt":"~0.4.5","grunt-contrib-jshint":"^0.11.0","grunt-contrib-watch":"^0.6.1","grunt-docker":"0.0.9","grunt-jsbeautifier":"^0.2.8","grunt-simple-mocha":"^0.4.0"},"gitHead":"b5038aaf823a5462e9dd986d9f3fc674dc1a6bc4","bugs":{"url":"https://github.com/tssweeney/async-astar/issues"},"_id":"async-astar@1.0.8","_shasum":"57a2ff909208f93d3bd6976011bb9b3090d57298","_from":".","_npmVersion":"1.4.28","_npmUser":{"name":"timssweeney","email":"tim.s.sweeney@gmail.com"},"maintainers":[{"name":"timssweeney","email":"tim.s.sweeney@gmail.com"}],"dist":{"shasum":"57a2ff909208f93d3bd6976011bb9b3090d57298","tarball":"https://registry.npmjs.org/async-astar/-/async-astar-1.0.8.tgz","integrity":"sha512-Ajr2z2SoFWc01ff+MOjHhkNWhDDTPOOQ8kViXvfRiAs2YOPatJlO9OiwYM1MQbGd18aah+Y+O/7tQEYMmz/4uA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIDtPwJJKEZxdd0+VHcUw3HwSmFjJeoMBuchLdKJIeyqLAiBlvlvfXh/fEGO7Iw9k038nmzcK7aLoM9ZS6I30ohooLA=="}]}},"1.0.9":{"name":"async-astar","version":"1.0.9","description":"An asynchronous, generic A*(a-star) solver.","main":"src/AsyncAstar.js","scripts":{"test":"mocha -R min ./tests/"},"keywords":["a-star","solver","async"],"author":{"name":"Timothy S Sweeney Jr."},"license":"ISC","repository":{"type":"git","url":"git://github.com/tssweeney/async-astar.git"},"homepage":"http://timssweeney.com/async-astar/","dependencies":{"mocha":"^2.1.0"},"devDependencies":{"grunt":"~0.4.5","grunt-contrib-jshint":"^0.11.0","grunt-contrib-watch":"^0.6.1","grunt-docker":"0.0.9","grunt-jsbeautifier":"^0.2.8","grunt-release":"^0.11.0","grunt-simple-mocha":"^0.4.0"},"gitHead":"d636b7dde209f73bbad7f7ea5e1a570c870e3614","bugs":{"url":"https://github.com/tssweeney/async-astar/issues"},"_id":"async-astar@1.0.9","_shasum":"8b688282976ca01e3d8d908a9e4e2ef6a466b98b","_from":".","_npmVersion":"1.4.28","_npmUser":{"name":"timssweeney","email":"tim.s.sweeney@gmail.com"},"maintainers":[{"name":"timssweeney","email":"tim.s.sweeney@gmail.com"}],"dist":{"shasum":"8b688282976ca01e3d8d908a9e4e2ef6a466b98b","tarball":"https://registry.npmjs.org/async-astar/-/async-astar-1.0.9.tgz","integrity":"sha512-/WzMZtdbi0WW3OLjqooYeUATCam6elk79PnRRfqHrNf4Wm5X2wf8hpemPWZfKTPExzYzHo8QjxuPaoe9zURRJA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQC3/bhCKSCalt2VFj5KBf3QAhVwYV8OThTMM9EZLlt33gIgFMAagLfNnRrGOhbdR6h0bPgxraIPDYer49xtDBRhlU8="}]}},"1.0.10":{"name":"async-astar","version":"1.0.10","description":"An asynchronous, generic A*(a-star) solver.","main":"src/AsyncAstar.js","scripts":{"test":"mocha -R min ./tests/"},"keywords":["a-star","solver","async"],"author":{"name":"Timothy S Sweeney Jr."},"license":"ISC","repository":{"type":"git","url":"git://github.com/tssweeney/async-astar.git"},"homepage":"http://timssweeney.com/async-astar/","dependencies":{"mocha":"^2.1.0"},"devDependencies":{"grunt":"~0.4.5","grunt-contrib-jshint":"^0.11.0","grunt-contrib-watch":"^0.6.1","grunt-docker":"0.0.9","grunt-jsbeautifier":"^0.2.8","grunt-release":"^0.11.0","grunt-simple-mocha":"^0.4.0"},"gitHead":"9f38b4b7cdac71d3b75dd185cf695917afc7049f","bugs":{"url":"https://github.com/tssweeney/async-astar/issues"},"_id":"async-astar@1.0.10","_shasum":"2e7437ee034848fbc47a7aebb91c361ba5f230d1","_from":".","_npmVersion":"1.4.28","_npmUser":{"name":"timssweeney","email":"tim.s.sweeney@gmail.com"},"maintainers":[{"name":"timssweeney","email":"tim.s.sweeney@gmail.com"}],"dist":{"shasum":"2e7437ee034848fbc47a7aebb91c361ba5f230d1","tarball":"https://registry.npmjs.org/async-astar/-/async-astar-1.0.10.tgz","integrity":"sha512-J50dV/8ZBdVURiUGXxF7uMEyOmUbI4BAvAk5SWWeedKi6oE3rFBqYsfhYiMxTenKUAV674bMhrrdyuJuKtJAvQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDZsTZUIZY7fzWFma2/mLRjsk6hAdrVvuUeqfbMBM6tAwIgWDdw1QkTSOb7TUqMdowiAnvsZOc2tTcbjHR0txOFlfE="}]}},"1.0.11":{"name":"async-astar","version":"1.0.11","description":"An asynchronous, generic A*(a-star) solver.","main":"src/AsyncAstar.js","scripts":{"test":"mocha -R min ./tests/"},"keywords":["a-star","solver","async"],"author":{"name":"Timothy S Sweeney Jr."},"license":"ISC","repository":{"type":"git","url":"git://github.com/tssweeney/async-astar.git"},"homepage":"http://timssweeney.com/async-astar/","dependencies":{"mocha":"^2.1.0"},"devDependencies":{"grunt":"~0.4.5","grunt-contrib-jshint":"^0.11.0","grunt-contrib-watch":"^0.6.1","grunt-docker":"0.0.9","grunt-jsbeautifier":"^0.2.8","grunt-release":"^0.11.0","grunt-simple-mocha":"^0.4.0"},"gitHead":"b5734f1eed947ff9f8702de1772c47eadf8730e7","bugs":{"url":"https://github.com/tssweeney/async-astar/issues"},"_id":"async-astar@1.0.11","_shasum":"39d1604589cabc37e88a23e98742e8eac4ad35c1","_from":".","_npmVersion":"1.4.28","_npmUser":{"name":"timssweeney","email":"tim.s.sweeney@gmail.com"},"maintainers":[{"name":"timssweeney","email":"tim.s.sweeney@gmail.com"}],"dist":{"shasum":"39d1604589cabc37e88a23e98742e8eac4ad35c1","tarball":"https://registry.npmjs.org/async-astar/-/async-astar-1.0.11.tgz","integrity":"sha512-IoveUOwm62Vx5zoqNi3Q4X1AQ64ONwl67ljiDhE9uB3UBF9sLuLk1Nn6MCJSNfquRKwEV78l5Xf5rPHUZQgLow==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDz54fLTAOOV9zyC8cVcM2lxYC2mCeXW6Xf/JJ91RYmHgIgS3G2CfYmj4zSEl7+10LgNIEKDWSBh473hLhRtJvTAUA="}]}},"1.0.12":{"name":"async-astar","version":"1.0.12","description":"An asynchronous, generic A*(a-star) solver.","main":"src/AsyncAstar.js","scripts":{"test":"mocha -R min ./tests/"},"keywords":["a-star","solver","async"],"author":{"name":"Timothy S Sweeney Jr."},"license":"ISC","repository":{"type":"git","url":"git://github.com/tssweeney/async-astar.git"},"homepage":"http://timssweeney.com/async-astar/","dependencies":{"mocha":"^2.1.0"},"devDependencies":{"grunt":"~0.4.5","grunt-contrib-jshint":"^0.11.0","grunt-contrib-watch":"^0.6.1","grunt-docker":"0.0.9","grunt-jsbeautifier":"^0.2.8","grunt-release":"^0.11.0","grunt-simple-mocha":"^0.4.0"},"gitHead":"da69a58affbbaeb2cb985a329b0e9e10ec440ea3","bugs":{"url":"https://github.com/tssweeney/async-astar/issues"},"_id":"async-astar@1.0.12","_shasum":"e77b1a32709d88b06002c0f3ab0f48235c935b60","_from":".","_npmVersion":"1.4.28","_npmUser":{"name":"timssweeney","email":"tim.s.sweeney@gmail.com"},"maintainers":[{"name":"timssweeney","email":"tim.s.sweeney@gmail.com"}],"dist":{"shasum":"e77b1a32709d88b06002c0f3ab0f48235c935b60","tarball":"https://registry.npmjs.org/async-astar/-/async-astar-1.0.12.tgz","integrity":"sha512-+J9A6Vp0HG88pqeHjCTngTRo2QOzl9mGs2QzTsMq8Tqm8RI+iClkHxK08DF1cFMHw4mdiKCA4YC5wHCEXXELTw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIBSJV+k3gVx20ovSU9h9cNE7waXX+3be7hay0smqJr7vAiEA020GPh3xlNFMt+uqY3pI69Z3glFvFXXaYNGODhn0aZA="}]}},"1.0.13":{"name":"async-astar","version":"1.0.13","description":"An asynchronous, generic A*(a-star) solver.","main":"src/AsyncAstar.js","scripts":{"test":"mocha -R min ./tests/"},"keywords":["a-star","solver","async"],"author":{"name":"Timothy S Sweeney Jr."},"license":"ISC","repository":{"type":"git","url":"git://github.com/tssweeney/async-astar.git"},"homepage":"http://timssweeney.com/async-astar/","dependencies":{"mocha":"^2.1.0"},"devDependencies":{"grunt":"~0.4.5","grunt-contrib-jshint":"^0.11.0","grunt-contrib-watch":"^0.6.1","grunt-docker":"0.0.9","grunt-jsbeautifier":"^0.2.8","grunt-release":"^0.11.0","grunt-simple-mocha":"^0.4.0"},"gitHead":"c6932426c85adf922cf89d23d9df9682787ea3ca","bugs":{"url":"https://github.com/tssweeney/async-astar/issues"},"_id":"async-astar@1.0.13","_shasum":"18267fff594b2badcb1b4965d8229d7d41f70908","_from":".","_npmVersion":"2.5.1","_nodeVersion":"0.12.0","_npmUser":{"name":"timssweeney","email":"tim.s.sweeney@gmail.com"},"maintainers":[{"name":"timssweeney","email":"tim.s.sweeney@gmail.com"}],"dist":{"shasum":"18267fff594b2badcb1b4965d8229d7d41f70908","tarball":"https://registry.npmjs.org/async-astar/-/async-astar-1.0.13.tgz","integrity":"sha512-qQMi8HCUYZe3NNK7LBBD6E/de15hgdvKRn/q5aCcn0v6KwIzQcbHGlWyhV9u2chjNxo7wXEHT3f1/ZHGYbwr9g==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIE6EAoTDpNVWYfQvD9bEKBqkxZXadyKs0pVxjBU6dEXXAiBBHRGCfFQWxC8w/VD2GwKM9c7yBqubMlDD4QYOHXA4sg=="}]}},"1.0.14":{"name":"async-astar","version":"1.0.14","description":"An asynchronous, generic A*(a-star) solver.","main":"src/AsyncAstar.js","scripts":{"test":"mocha -R min ./tests/"},"keywords":["a-star","solver","async"],"author":{"name":"Timothy S Sweeney Jr."},"license":"ISC","repository":{"type":"git","url":"git://github.com/tssweeney/async-astar.git"},"homepage":"http://timssweeney.com/async-astar/","dependencies":{"mocha":"^2.1.0"},"devDependencies":{"grunt":"~0.4.5","grunt-contrib-jshint":"^0.11.0","grunt-contrib-watch":"^0.6.1","grunt-docker":"0.0.9","grunt-jsbeautifier":"^0.2.8","grunt-release":"^0.11.0","grunt-simple-mocha":"^0.4.0"},"gitHead":"593e99e5bd131868a3eb7ce96d45db9bfc19ea6e","bugs":{"url":"https://github.com/tssweeney/async-astar/issues"},"_id":"async-astar@1.0.14","_shasum":"6f088408251b25cccbf65b69d01237a253ff9538","_from":".","_npmVersion":"2.5.1","_nodeVersion":"0.12.0","_npmUser":{"name":"timssweeney","email":"tim.s.sweeney@gmail.com"},"maintainers":[{"name":"timssweeney","email":"tim.s.sweeney@gmail.com"}],"dist":{"shasum":"6f088408251b25cccbf65b69d01237a253ff9538","tarball":"https://registry.npmjs.org/async-astar/-/async-astar-1.0.14.tgz","integrity":"sha512-HHxWDLbRsE3NDouGvNpOQjn/S/D7jpBzL1Q3bnT8FkJVcYsPVZHwfBpJyu5+sWtoupu2f8rhgd4dq4PwiWOLiA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCAP4kvtzEPhhBJo52WPFzkGfg2dgSNUfZ42dVFBshtXgIgdIjNMRSO0uXJrRHWIAF1n4HWpIndoEc98+ZbgrAQ9jI="}]}}},"readme":"[![NPM](https://nodei.co/npm/async-astar.png?downloads=true)](https://nodei.co/npm/async-astar/)\n\nAsync-Astar \n===\n\n[![Build Status](https://travis-ci.org/tssweeney/async-astar.svg)](https://travis-ci.org/tssweeney/async-astar)\n\n**[View Documentation](http://timssweeney.com/async-astar/src/AsyncAstar.js.html)**\n\n**[Read About A\\*(A-Star) Algorithm Here](http://en.wikipedia.org/wiki/A*_search_algorithm)**\n\nThis module provides an asynchronous, generic A\\* implementation that can be used to solve various puzzles, games, or graph traversals. There are 2 main concepts to understand: neighbors and heuristics. Check out the tests for usage examples, but here's a quick overview:\n\n### Usage\n\n```\nvar AsyncAstar = require('async-astar');\nvar options = {\n  initial: {StateObject}\n  neighbors: {Function},\n  [heuristic]: {Function},\n  [timeout]: {Integer},\n  onComplete: {Function},\n  [onTimeout]: {Function}\n}\nvar solver = new AsyncAstar(options);\n```\n\n##### StateObject {Object}\nAn object used by the solving algorithm to represent a single state in the puzzle/game/graph. The three required fields are:\n\n* id {String} Uniquely identifies puzzle/game state\n* state {Integer} -1|0|1 Impossible|Playing|Win respectively. This a-star solver can handle impossible cases (perhaps a wall, or a pit of doom).\n* action {String|Integer} This is the last \"thing\" you had to do to get to this state. Upon solving the puzzle, the returned \"path\" is an array of the action attributes of the most efficient path. It might be a cardinal direction, a key-press, something that would work like this:\n\n```\nMyGame.takeAction(0);\nMyGame.getState();\n// ->\n// {... action: 0 ...}\n```\n\nAdditionally, if you need to store information that is needed to determine a state's neighbors or heuristic, append those attributes to this object. This might be x/y coordinates of your player.\n\n##### initial {StateObject}\nAn object that represents the initial state to solve from.\n\n```\ninitial: {\n\tid: \"x1y5\"\n\tstate: 0,\n\t// action is null, because it is the starting state. Nothing came before.\n\taction: null,\n\tx: 1,\t\n\ty: 5\n}\n```\n\n##### neighbors {Function}\nA function that accepts a single StateObject as the only parameter and returns an array of neighbors. For example:\n\n```\nneighbors: function(state){\n\tvar neighborStates = [];\n\tMyGame.setPlayer({\n\t\tx: state.x,\n\t\ty: state.y\n\t});\n\tneighborStates.push(MyGame.moveUp.getState());\n\tneighborStates.push(MyGame.moveRight.getState());\n\tneighborStates.push(MyGame.moveDown.getState());\n\tneighborStates.push(MyGame.moveLeft.getState());\n\treturn neighborStates;\n}\n```\n\nNote, let's say that there is a game-rule (business rule of the game - maybe a wall or something) that is stopping the player from moving up. `The MyGame.moveUp.getState()` call should return a StateObject that has the same `id` as the original state. The A\\* algorithm can then understand that the move resulted in the same state. This is also how the algorithm resolves circular paths. \n\n##### [optional] heuristic {Function}\nA function that accepts a single StateObject as the only parameter and returns an integer - the lower the value, the better. A heuristic is an estimation of \"closeness\" to the end and defaults to a function returning 0 for all states. Read more about the principles of a heuristic here: [wiki](http://en.wikipedia.org/wiki/A*_search_algorithm#Admissibility_and_optimality). For example:\n\n```\nheuristic: function(state) {\n\tvar endLocation = MyGame.getEndLocation();\n\treturn Math.abs(state.x - endLocation.x) + Math.abs(state.y - endLocation.y)\n}\n```\n\n##### [optional] timeout {Integer}\nNumber of milliseconds before timeout is called and solving halts. Defaults to no timeout.\n\n##### onComplete {Function}\nFunction that is called once the solution has been found. It accepts a single argument that will have 3 attributes:\n\n* success {Boolean} if the puzzle was solved\n* actions {Array} of `action` attributes of each state to get to solution\n* cost {Integer} count of actions needed (actions.length - 1)\n\n```\nonComplete: function(result) {\n\tif (result.success) {\n\t\tconsole.log(\"The steps(\" + result.cost + \") required to solve the puzzle are: \", result.actions);\n\t} else {\n\t\tconsole.log(\"There is no solution to the puzzle.\");\n\t}\n}\n```\n\n##### [optional] onTimeout {Function}\nCalled if the solver times out. No parameters needed.\n\n```\nonTimeout: function(){\n\tconsole.log(\"Solver timed out.\");\n}\n```\n","maintainers":[{"name":"timssweeney","email":"tim.s.sweeney@gmail.com"}],"time":{"modified":"2022-06-13T03:36:18.482Z","created":"2015-02-20T21:27:53.583Z","1.0.0":"2015-02-20T21:27:53.583Z","1.0.1":"2015-02-23T00:20:00.104Z","1.0.3":"2015-02-23T00:24:46.942Z","1.0.4":"2015-02-23T00:33:21.078Z","1.0.5":"2015-02-23T00:34:19.773Z","1.0.6":"2015-02-23T05:19:29.448Z","1.0.7":"2015-02-23T05:48:38.629Z","1.0.8":"2015-02-23T19:01:38.887Z","1.0.9":"2015-02-25T21:51:53.031Z","1.0.10":"2015-02-25T22:11:44.603Z","1.0.11":"2015-02-25T22:14:14.503Z","1.0.12":"2015-02-25T22:28:48.070Z","1.0.13":"2015-03-02T01:31:21.531Z","1.0.14":"2015-03-04T19:37:35.014Z"},"keywords":["a-star","solver","async"],"author":{"name":"Timothy S Sweeney Jr."},"license":"ISC","readmeFilename":"README.md","homepage":"http://timssweeney.com/async-astar/","repository":{"type":"git","url":"git://github.com/tssweeney/async-astar.git"},"bugs":{"url":"https://github.com/tssweeney/async-astar/issues"}}