{
  "_args": [
    [
      {
        "raw": "cordova-common@^2.1.1",
        "scope": null,
        "escapedName": "cordova-common",
        "name": "cordova-common",
        "rawSpec": "^2.1.1",
        "spec": ">=2.1.1 <3.0.0",
        "type": "range"
      },
      "/Users/steveng/repo/cordova/cordova-browser"
    ]
  ],
  "_from": "cordova-common@>=2.1.1 <3.0.0",
  "_id": "cordova-common@2.1.1",
  "_inCache": true,
  "_location": "/cordova-common",
  "_nodeVersion": "6.6.0",
  "_npmOperationalInternal": {
    "host": "s3://npm-registry-packages",
    "tmp": "tmp/cordova-common-2.1.1.tgz_1507594418999_0.47268117731437087"
  },
  "_npmUser": {
    "name": "stevegill",
    "email": "stevengill97@gmail.com"
  },
  "_npmVersion": "4.6.1",
  "_phantomChildren": {},
  "_requested": {
    "raw": "cordova-common@^2.1.1",
    "scope": null,
    "escapedName": "cordova-common",
    "name": "cordova-common",
    "rawSpec": "^2.1.1",
    "spec": ">=2.1.1 <3.0.0",
    "type": "range"
  },
  "_requiredBy": [
    "/"
  ],
  "_resolved": "file:cordova-dist/tools/cordova-common-2.1.1.tgz",
  "_shasum": "e3a16a4f3d29a8e2b523128ac65478aca9ea1749",
  "_shrinkwrap": null,
  "_spec": "cordova-common@^2.1.1",
  "_where": "/Users/steveng/repo/cordova/cordova-browser",
  "author": {
    "name": "Apache Software Foundation"
  },
  "bugs": {
    "url": "https://issues.apache.org/jira/browse/CB",
    "email": "dev@cordova.apache.org"
  },
  "contributors": [],
  "dependencies": {
    "ansi": "^0.3.1",
    "bplist-parser": "^0.1.0",
    "cordova-registry-mapper": "^1.1.8",
    "elementtree": "0.1.6",
    "glob": "^5.0.13",
    "minimatch": "^3.0.0",
    "osenv": "^0.1.3",
    "plist": "^1.2.0",
    "q": "^1.4.1",
    "semver": "^5.0.1",
    "shelljs": "^0.5.3",
    "underscore": "^1.8.3",
    "unorm": "^1.3.3"
  },
  "description": "Apache Cordova tools and platforms shared routines",
  "devDependencies": {
    "eslint": "^4.0.0",
    "eslint-config-semistandard": "^11.0.0",
    "eslint-config-standard": "^10.2.1",
    "eslint-plugin-import": "^2.3.0",
    "eslint-plugin-node": "^5.0.0",
    "eslint-plugin-promise": "^3.5.0",
    "eslint-plugin-standard": "^3.0.1",
    "istanbul": "^0.4.5",
    "jasmine": "^2.5.2",
    "promise-matchers": "^0.9.6",
    "rewire": "^2.5.1"
  },
  "directories": {},
  "dist": {
    "shasum": "e3a16a4f3d29a8e2b523128ac65478aca9ea1749",
    "tarball": "https://registry.npmjs.org/cordova-common/-/cordova-common-2.1.1.tgz"
  },
  "engines": {
    "node": ">=4.0.0"
  },
  "homepage": "https://github.com/apache/cordova-lib#readme",
  "license": "Apache-2.0",
  "main": "cordova-common.js",
  "maintainers": [
    {
      "name": "audreyso",
      "email": "audreyeso@gmail.com"
    },
    {
      "name": "apachebuilds",
      "email": "root@apache.org"
    },
    {
      "name": "filmaj",
      "email": "maj.fil@gmail.com"
    },
    {
      "name": "timbarham",
      "email": "npmjs@barhams.info"
    },
    {
      "name": "shazron",
      "email": "shazron@gmail.com"
    },
    {
      "name": "bowserj",
      "email": "bowserj@apache.org"
    },
    {
      "name": "purplecabbage",
      "email": "purplecabbage@gmail.com"
    },
    {
      "name": "stevegill",
      "email": "stevengill97@gmail.com"
    },
    {
      "name": "kotikov.vladimir",
      "email": "kotikov.vladimir@gmail.com"
    }
  ],
  "name": "cordova-common",
  "optionalDependencies": {},
  "readme": "<!--\n#\n# Licensed to the Apache Software Foundation (ASF) under one\n# or more contributor license agreements.  See the NOTICE file\n# distributed with this work for additional information\n# regarding copyright ownership.  The ASF licenses this file\n# to you under the Apache License, Version 2.0 (the\n# \"License\"); you may not use this file except in compliance\n# with the License.  You may obtain a copy of the License at\n#\n# http://www.apache.org/licenses/LICENSE-2.0\n#\n# Unless required by applicable law or agreed to in writing,\n# software distributed under the License is distributed on an\n# \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n#  KIND, either express or implied.  See the License for the\n# specific language governing permissions and limitations\n# under the License.\n#\n-->\n\n[![Build status](https://ci.appveyor.com/api/projects/status/wxkmo0jalsr8gane?svg=true)](https://ci.appveyor.com/project/ApacheSoftwareFoundation/cordova-common/branch/master)\n[![Build Status](https://travis-ci.org/apache/cordova-common.svg?branch=master)](https://travis-ci.org/apache/cordova-common)\n[![NPM](https://nodei.co/npm/cordova-common.png)](https://nodei.co/npm/cordova-common/)\n\n# cordova-common\nExpoeses shared functionality used by [cordova-lib](https://github.com/apache/cordova-lib/) and Cordova platforms.\n## Exposed APIs\n\n### `events`\n  \nRepresents special instance of NodeJS EventEmitter which is intended to be used to post events to cordova-lib and cordova-cli\n\nUsage:\n```js\nvar events = require('cordova-common').events;\nevents.emit('warn', 'Some warning message')\n```\n\nThere are the following events supported by cordova-cli: `verbose`, `log`, `info`, `warn`, `error`.\n\n### `CordovaError`\n\nAn error class used by Cordova to throw cordova-specific errors. The CordovaError class is inherited from Error, so CordovaError instances is also valid Error instances (`instanceof` check succeeds).\n\nUsage:\n\n```js\nvar CordovaError = require('cordova-common').CordovaError;\nthrow new CordovaError('Some error message', SOME_ERR_CODE);\n```\n\nSee [CordovaError](src/CordovaError/CordovaError.js) for supported error codes.\n\n### `ConfigParser`\n\nExposes functionality to deal with cordova project `config.xml` files. For ConfigParser API reference check [ConfigParser Readme](src/ConfigParser/README.md).\n\nUsage:\n```js\nvar ConfigParser = require('cordova-common').ConfigParser;\nvar appConfig = new ConfigParser('path/to/cordova-app/config.xml');\nconsole.log(appconfig.name() + ':' + appConfig.version());\n```\n\n### `PluginInfoProvider` and `PluginInfo`\n\n`PluginInfo` is a wrapper for cordova plugins' `plugin.xml` files. This class may be instantiated directly or via `PluginInfoProvider`. The difference is that `PluginInfoProvider` caches `PluginInfo` instances based on plugin source directory.\n\nUsage:\n```js\nvar PluginInfo: require('cordova-common').PluginInfo;\nvar PluginInfoProvider: require('cordova-common').PluginInfoProvider;\n\n// The following instances are equal\nvar plugin1 = new PluginInfo('path/to/plugin_directory');\nvar plugin2 = new PluginInfoProvider().get('path/to/plugin_directory');\n\nconsole.log('The plugin ' + plugin1.id + ' has version ' + plugin1.version)\n```\n\n### `ActionStack`\n\nUtility module for dealing with sequential tasks. Provides a set of tasks that are needed to be done and reverts all tasks that are already completed if one of those tasks fail to complete. Used internally by cordova-lib and platform's plugin installation routines.\n\nUsage:\n```js\nvar ActionStack = require('cordova-common').ActionStack;\nvar stack = new ActionStack()\n\nvar action1 = stack.createAction(task1, [<task parameters>], task1_reverter, [<reverter_parameters>]);\nvar action2 = stack.createAction(task2, [<task parameters>], task2_reverter, [<reverter_parameters>]);\n\nstack.push(action1);\nstack.push(action2);\n\nstack.process()\n.then(function() {\n    // all actions succeded\n})\n.catch(function(error){\n    // One of actions failed with error\n})\n```\n\n### `superspawn`\n\nModule for spawning child processes with some advanced logic.\n\nUsage:\n```js\nvar superspawn = require('cordova-common').superspawn;\nsuperspawn.spawn('adb', ['devices'])\n.progress(function(data){\n    if (data.stderr)\n        console.error('\"adb devices\" raised an error: ' + data.stderr);\n})\n.then(function(devices){\n    // Do something...\n})\n```\n\n### `xmlHelpers`\n\nA set of utility methods for dealing with xml files.\n\nUsage:\n```js\nvar xml = require('cordova-common').xmlHelpers;\n\nvar xmlDoc1 = xml.parseElementtreeSync('some/xml/file');\nvar xmlDoc2 = xml.parseElementtreeSync('another/xml/file');\n\nxml.mergeXml(doc1, doc2); // doc2 now contains all the nodes from doc1\n```\n\n### Other APIs\n\nThe APIs listed below are also exposed but are intended to be only used internally by cordova plugin installation routines.\n\n```\nPlatformJson\nConfigChanges\nConfigKeeper\nConfigFile\nmungeUtil\n```\n\n## Setup\n* Clone this repository onto your local machine\n    `git clone https://git-wip-us.apache.org/repos/asf/cordova-lib.git`\n* In terminal, navigate to the inner cordova-common directory\n    `cd cordova-lib/cordova-common`\n* Install dependencies and npm-link\n    `npm install && npm link`\n* Navigate to cordova-lib directory and link cordova-common\n    `cd ../cordova-lib && npm link cordova-common && npm install`\n",
  "readmeFilename": "README.md",
  "repository": {
    "type": "git",
    "url": "git+https://github.com/apache/cordova-lib.git"
  },
  "scripts": {
    "cover": "istanbul cover --root src --print detail jasmine",
    "eslint": "eslint src && eslint spec",
    "jasmine": "jasmine JASMINE_CONFIG_PATH=spec/support/jasmine.json",
    "test": "npm run eslint && npm run jasmine"
  },
  "version": "2.1.1"
}
