{
  "name": "node-firefox-find-devices",
  "version": "1.0.0",
  "description": "Find attached FirefoxOS devices using ADB",
  "main": "index.js",
  "dependencies": {
    "es6-promise": "^2.0.1",
    "adbkit": "^2.1.6"
  },
  "devDependencies": {
    "gulp": "^3.8.10",
    "gulp-jscs": "^1.3.1",
    "gulp-jshint": "^1.9.0",
    "gulp-json-lint": "0.0.1",
    "gulp-nodeunit": "0.0.5",
    "gulp-replace": "^0.5.0",
    "jshint-stylish": "^1.0.0",
    "mockery": "^1.4.0",
    "node-firefox-build-tools": "^0.1.0",
    "nodemock": "^0.3.4"
  },
  "scripts": {
    "gulp": "gulp",
    "test": "gulp test"
  },
  "repository": {
    "type": "git",
    "url": "https://github.com/mozilla/node-firefox-find-devices.git"
  },
  "keywords": [
    "firefox",
    "developer tools",
    "b2g",
    "firefox os",
    "firefoxos",
    "fxos",
    "ports"
  ],
  "author": {
    "name": "Mozilla",
    "url": "https://mozilla.org/"
  },
  "contributors": [
    {
      "name": "Les Orchard",
      "email": "me@lmorchard.com",
      "url": "http://lmorchard.com"
    }
  ],
  "license": "Apache 2.0",
  "bugs": {
    "url": "https://github.com/mozilla/node-firefox-find-devices/issues"
  },
  "homepage": "https://github.com/mozilla/node-firefox-find-devices",
  "readme": "# node-firefox-find-devices [![Build Status](https://secure.travis-ci.org/mozilla/node-firefox-find-devices.png?branch=master)](http://travis-ci.org/mozilla/node-firefox-find-devices)\n\n> Find attached FirefoxOS devices using ADB.\n\n[![Install with NPM](https://nodei.co/npm/node-firefox-find-devices.png?downloads=true&stars=true)](https://nodei.co/npm/node-firefox-find-devices/)\n\nThis is part of the [node-firefox](https://github.com/mozilla/node-firefox) project.\n\nWhen Firefox OS devices are plugged in via USB, they can be found using the\nAndroid Debug Bridge. Once found, a test for the presence of Firefox OS on the\ndevice can separate them from normal Android devices.\n\n## Installation\n\n### From git\n\n```bash\ngit clone https://github.com/mozilla/node-firefox-find-devices.git\ncd node-firefox-find-devices\nnpm install\n```\n\nIf you want to update later on:\n\n```bash\ncd node-firefox-find-devices\ngit pull origin master\nnpm install\n```\n\n### npm\n\n```bash\nnpm install node-firefox-find-devices\n```\n\n## Usage\n\n```javascript\nfindDevices() // returns a Promise\n```\n\n### Finding devices\n\n```javascript\nvar findDevices = require('node-firefox-find-devices');\n\n// Return all listening runtimes\nfindDevices().then(function(results) {\n  console.log(results);\n});\n```\n\n## Running the tests\n\nAfter installing, you can simply run the following from the module folder:\n\n```bash\nnpm test\n```\n\nTo add a new unit test file, create a new file in the `tests/unit` folder. Any file that matches `test.*.js` will be run as a test by the appropriate test runner, based on the folder location.\n\nWe use `gulp` behind the scenes to run the test; if you don't have it installed globally you can use `npm gulp` from inside the project's root folder to run `gulp`.\n\n### Code quality and style\n\nBecause we have multiple contributors working on our projects, we value consistent code styles. It makes it easier to read code written by many people! :-)\n\nOur tests include unit tests as well as code quality (\"linting\") tests that make sure our test pass a style guide and [JSHint](http://jshint.com/). Instead of submitting code with the wrong indentation or a different style, run the tests and you will be told where your code quality/style differs from ours and instructions on how to fix it.\n\nThis program is free software; it is distributed under an\n[Apache License](https://github.com/mozilla/node-firefox-find-devices/blob/master/LICENSE).\n\n## Copyright\n\nCopyright (c) 2015 [Mozilla](https://mozilla.org)\n([Contributors](https://github.com/mozilla/node-firefox-find-devices/graphs/contributors)).\n",
  "readmeFilename": "README.md",
  "gitHead": "d12f9aaeca4ed669da0817c130e3df5fb05dd57d",
  "_id": "node-firefox-find-devices@1.0.0",
  "_shasum": "f84df2a6cffa5de83253441e0443070ce063e8ca",
  "_from": "node-firefox-find-devices@"
}
