{
  "_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-browser/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": [
    "/cordova-browser"
  ],
  "_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"
}
