{"_id":"bower-json","_rev":"143056","name":"bower-json","description":"Read bower.json files with semantics, normalisation, defaults and validation","dist-tags":{"latest":"0.8.4"},"maintainers":[{"name":"desandro","email":"desandrocodes@gmail.com"},{"name":"paulirish","email":""},{"name":"satazor","email":"andremiguelcruz@msn.com"},{"name":"sheerun","email":"sheerun@sher.pl"},{"name":"sindresorhus","email":""},{"name":"wibblymat","email":"mat@wibbly.org.uk"}],"time":{"modified":"2021-06-03T11:28:10.000Z","created":"2013-07-09T19:57:24.653Z","0.8.4":"2020-04-27T16:03:59.777Z","0.8.3":"2020-04-27T11:56:17.099Z","0.8.2":"2020-04-26T23:58:10.337Z","0.8.1":"2016-04-04T19:48:08.336Z","0.8.0":"2016-04-04T12:11:51.909Z","0.7.0":"2016-02-10T01:23:01.789Z","0.6.0":"2015-07-29T14:19:46.682Z","0.5.0":"2015-05-19T20:07:17.919Z","0.4.0":"2013-08-11T13:46:54.127Z","0.3.0":"2013-08-05T13:25:07.182Z","0.2.0":"2013-07-27T21:27:08.754Z","0.1.0-rc.1":"2013-07-09T19:57:24.653Z"},"users":{"asawq2006":true,"jhabdas":true,"dmarsh":true},"author":{"name":"Twitter"},"repository":{"type":"git","url":"https://github.com/bower/bower/tree/master/packages/bower-json"},"versions":{"0.8.4":{"name":"bower-json","version":"0.8.4","description":"Read bower.json files with semantics, normalisation, defaults and validation","author":{"name":"Twitter"},"license":"MIT","repository":{"type":"git","url":"https://github.com/bower/bower/tree/master/packages/bower-json"},"main":"lib/json","engines":{"node":">=0.10.0"},"dependencies":{"deep-extend":"^0.5.1","ends-with":"^0.2.0","ext-list":"^2.0.0","sort-keys-length":"^1.0.0","graceful-fs":"^4.1.3","intersect":"^1.0.1"},"devDependencies":{"expect.js":"^0.3.1","mocha":"^2.5.3","request":"^2.64.0","underscore.string":"^3.0.3"},"scripts":{"test":"mocha"},"_id":"bower-json@0.8.4","_nodeVersion":"10.18.1","_npmVersion":"6.13.4","dist":{"shasum":"9c3b375870dcd9581350c1f403f6383dbf6a18b1","size":5334,"noattachment":false,"key":"/bower-json/-/bower-json-0.8.4.tgz","tarball":"http://registry.cnpm.dingdandao.com/bower-json/download/bower-json-0.8.4.tgz"},"maintainers":[{"name":"desandro","email":"desandrocodes@gmail.com"},{"name":"paulirish","email":""},{"name":"satazor","email":"andremiguelcruz@msn.com"},{"name":"sheerun","email":"sheerun@sher.pl"},{"name":"sindresorhus","email":""},{"name":"wibblymat","email":"mat@wibbly.org.uk"}],"_npmUser":{"name":"sheerun","email":"sheerun@sher.pl"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/bower-json_0.8.4_1588003439608_0.47738435851730965"},"_hasShrinkwrap":false,"publish_time":1588003439777,"_cnpm_publish_time":1588003439777},"0.8.3":{"name":"bower-json","version":"0.8.3","description":"Read bower.json files with semantics, normalisation, defaults and validation","author":{"name":"Twitter"},"license":"MIT","repository":{"type":"git","url":"https://github.com/bower/bower/tree/master/packages/bower-json"},"main":"lib/json","engines":{"node":">=0.10.0"},"dependencies":{"deep-extend":"^0.4.0","ends-with":"^0.2.0","ext-list":"^2.0.0","sort-keys-length":"^1.0.0","graceful-fs":"^4.1.3","intersect":"^1.0.1"},"devDependencies":{"expect.js":"^0.3.1","mocha":"^2.5.3","request":"^2.64.0","underscore.string":"^3.0.3"},"scripts":{"test":"mocha"},"_id":"bower-json@0.8.3","_nodeVersion":"10.18.1","_npmVersion":"6.13.4","dist":{"shasum":"ad51b443e04b1d748af883fba89a8e5064cdf5c0","size":5313,"noattachment":false,"key":"/bower-json/-/bower-json-0.8.3.tgz","tarball":"http://registry.cnpm.dingdandao.com/bower-json/download/bower-json-0.8.3.tgz"},"maintainers":[{"name":"desandro","email":"desandrocodes@gmail.com"},{"name":"paulirish","email":""},{"name":"satazor","email":"andremiguelcruz@msn.com"},{"name":"sheerun","email":"sheerun@sher.pl"},{"name":"sindresorhus","email":""},{"name":"wibblymat","email":"mat@wibbly.org.uk"}],"_npmUser":{"name":"sheerun","email":"sheerun@sher.pl"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/bower-json_0.8.3_1587988576937_0.7292903864839413"},"_hasShrinkwrap":false,"publish_time":1587988577099,"_cnpm_publish_time":1587988577099},"0.8.2":{"name":"bower-json","version":"0.8.2","description":"Read bower.json files with semantics, normalisation, defaults and validation","author":{"name":"Twitter"},"license":"MIT","repository":{"type":"git","url":"https://github.com/bower/bower/tree/master/packages/bower-json"},"main":"lib/json","engines":{"node":">=0.10.0"},"dependencies":{"deep-extend":"^0.4.0","ends-with":"^0.2.0","ext-list":"^2.0.0","sort-keys-length":"^1.0.0","graceful-fs":"^4.1.3","intersect":"^1.0.1"},"devDependencies":{"expect.js":"^0.3.1","mocha":"^2.5.3","request":"^2.64.0","underscore.string":"^3.0.3"},"scripts":{"test":"mocha"},"_id":"bower-json@0.8.2","_nodeVersion":"10.18.1","_npmVersion":"6.13.4","dist":{"shasum":"bbcd69cf485f10cd68a7100f42fe99a87a4ef5bb","size":5299,"noattachment":false,"key":"/bower-json/-/bower-json-0.8.2.tgz","tarball":"http://registry.cnpm.dingdandao.com/bower-json/download/bower-json-0.8.2.tgz"},"maintainers":[{"name":"desandro","email":"desandrocodes@gmail.com"},{"name":"paulirish","email":""},{"name":"satazor","email":"andremiguelcruz@msn.com"},{"name":"sheerun","email":"sheerun@sher.pl"},{"name":"sindresorhus","email":""},{"name":"wibblymat","email":"mat@wibbly.org.uk"}],"_npmUser":{"name":"sheerun","email":"sheerun@sher.pl"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/bower-json_0.8.2_1587945490067_0.7544271839501238"},"_hasShrinkwrap":false,"publish_time":1587945490337,"_cnpm_publish_time":1587945490337},"0.8.1":{"name":"bower-json","version":"0.8.1","description":"Read bower.json files with semantics, normalisation, defaults and validation","author":{"name":"Twitter"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/bower/json.git"},"main":"lib/json","engines":{"node":">=0.10.0"},"dependencies":{"deep-extend":"^0.4.0","ext-name":"^3.0.0","graceful-fs":"^4.1.3","intersect":"^1.0.1"},"devDependencies":{"coveralls":"^2.11.2","expect.js":"^0.3.1","grunt":"^0.4.4","grunt-cli":"^0.1.13","grunt-contrib-jshint":"^0.11.2","grunt-contrib-watch":"^0.6.1","grunt-coveralls":"^1.0.0","grunt-exec":"^0.4.6","grunt-simple-mocha":"^0.4.0","istanbul":"^0.3.5","load-grunt-tasks":"^3.3.0","mocha":"*","request":"^2.64.0","underscore.string":"^3.0.3"},"scripts":{"test":"grunt test"},"files":["lib"],"gitHead":"404d94ef0efbfa3932463410ac484e3ad383d614","bugs":{"url":"https://github.com/bower/json/issues"},"homepage":"https://github.com/bower/json#readme","_id":"bower-json@0.8.1","_shasum":"96c14723241ae6466a9c52e16caa32623a883843","_from":".","_npmVersion":"3.7.3","_nodeVersion":"5.9.0","_npmUser":{"name":"sheerun","email":"sheerun@sher.pl"},"dist":{"shasum":"96c14723241ae6466a9c52e16caa32623a883843","size":5226,"noattachment":false,"key":"/bower-json/-/bower-json-0.8.1.tgz","tarball":"http://registry.cnpm.dingdandao.com/bower-json/download/bower-json-0.8.1.tgz"},"maintainers":[{"name":"desandro","email":"desandrocodes@gmail.com"},{"name":"paulirish","email":""},{"name":"satazor","email":"andremiguelcruz@msn.com"},{"name":"sheerun","email":"sheerun@sher.pl"},{"name":"sindresorhus","email":""},{"name":"wibblymat","email":"mat@wibbly.org.uk"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/bower-json-0.8.1.tgz_1459799285872_0.2716905332636088"},"directories":{},"publish_time":1459799288336,"_cnpm_publish_time":1459799288336,"_hasShrinkwrap":false},"0.8.0":{"name":"bower-json","version":"0.8.0","description":"Read bower.json files with semantics, normalisation, defaults and validation","author":{"name":"Twitter"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/bower/json.git"},"main":"lib/json","engines":{"node":">=0.10.0"},"dependencies":{"deep-extend":"^0.4.0","ext-name":"^3.0.0","graceful-fs":"^4.1.3","intersect":"^1.0.1"},"devDependencies":{"coveralls":"^2.11.2","expect.js":"^0.3.1","grunt":"^0.4.4","grunt-cli":"^0.1.13","grunt-contrib-jshint":"^0.11.2","grunt-contrib-watch":"^0.6.1","grunt-coveralls":"^1.0.0","grunt-exec":"^0.4.6","grunt-simple-mocha":"^0.4.0","istanbul":"^0.3.5","load-grunt-tasks":"^3.3.0","mocha":"*","request":"^2.64.0","underscore.string":"^3.0.3"},"scripts":{"test":"grunt test"},"files":["lib"],"gitHead":"804bf3c692ecb00f50616460313b1651d37deb54","bugs":{"url":"https://github.com/bower/json/issues"},"homepage":"https://github.com/bower/json#readme","_id":"bower-json@0.8.0","_shasum":"6d6eaa333b17046e48124ca9329e27bacc3c18d0","_from":".","_npmVersion":"3.7.3","_nodeVersion":"5.9.0","_npmUser":{"name":"sheerun","email":"sheerun@sher.pl"},"dist":{"shasum":"6d6eaa333b17046e48124ca9329e27bacc3c18d0","size":5123,"noattachment":false,"key":"/bower-json/-/bower-json-0.8.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/bower-json/download/bower-json-0.8.0.tgz"},"maintainers":[{"name":"desandro","email":"desandrocodes@gmail.com"},{"name":"paulirish","email":""},{"name":"satazor","email":"andremiguelcruz@msn.com"},{"name":"sheerun","email":"sheerun@sher.pl"},{"name":"sindresorhus","email":""},{"name":"wibblymat","email":"mat@wibbly.org.uk"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/bower-json-0.8.0.tgz_1459771909635_0.8343595759943128"},"directories":{},"publish_time":1459771911909,"_cnpm_publish_time":1459771911909,"_hasShrinkwrap":false},"0.7.0":{"name":"bower-json","version":"0.7.0","description":"Read bower.json files with semantics, normalisation, defaults and validation","author":{"name":"Twitter"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/bower/json.git"},"main":"lib/json","engines":{"node":">=0.10.0"},"dependencies":{"deep-extend":"^0.4.0","ext-name":"^3.0.0","graceful-fs":"^3.0.0","intersect":"^1.0.1"},"devDependencies":{"coveralls":"^2.11.2","expect.js":"^0.3.1","grunt":"^0.4.4","grunt-cli":"^0.1.13","grunt-contrib-jshint":"^0.11.2","grunt-contrib-watch":"^0.6.1","grunt-coveralls":"^1.0.0","grunt-exec":"^0.4.6","grunt-simple-mocha":"^0.4.0","istanbul":"^0.3.5","load-grunt-tasks":"^3.3.0","mocha":"*","underscore.string":"^3.0.3"},"scripts":{"test":"grunt test"},"files":["lib"],"gitHead":"2366289b6e158a7d8724bd5d74886fc5884b4fe9","bugs":{"url":"https://github.com/bower/json/issues"},"homepage":"https://github.com/bower/json#readme","_id":"bower-json@0.7.0","_shasum":"f0f5a05e16147c2fee6593272c2fdbcf8ceb314d","_from":".","_npmVersion":"3.7.1","_nodeVersion":"4.1.1","_npmUser":{"name":"sheerun","email":"sheerun@sher.pl"},"dist":{"shasum":"f0f5a05e16147c2fee6593272c2fdbcf8ceb314d","size":5023,"noattachment":false,"key":"/bower-json/-/bower-json-0.7.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/bower-json/download/bower-json-0.7.0.tgz"},"maintainers":[{"name":"desandro","email":"desandrocodes@gmail.com"},{"name":"paulirish","email":""},{"name":"satazor","email":"andremiguelcruz@msn.com"},{"name":"sheerun","email":"sheerun@sher.pl"},{"name":"sindresorhus","email":""},{"name":"wibblymat","email":"mat@wibbly.org.uk"}],"_npmOperationalInternal":{"host":"packages-9-west.internal.npmjs.com","tmp":"tmp/bower-json-0.7.0.tgz_1455067378682_0.1215298087336123"},"directories":{},"publish_time":1455067381789,"_cnpm_publish_time":1455067381789,"_hasShrinkwrap":false},"0.6.0":{"name":"bower-json","version":"0.6.0","description":"Read bower.json files with semantics, normalisation, defaults and validation","author":{"name":"Twitter"},"license":"MIT","repository":{"type":"git","url":"https://github.com/bower/json"},"main":"lib/json","engines":{"node":">=0.10.0"},"dependencies":{"deep-extend":"^0.4.0","ext-name":"^3.0.0","graceful-fs":"^3.0.0","intersect":"^1.0.1"},"devDependencies":{"expect.js":"^0.3.1","grunt":"^0.4.4","grunt-cli":"^0.1.13","grunt-contrib-jshint":"^0.11.2","grunt-contrib-watch":"^0.6.1","grunt-simple-mocha":"^0.4.0","mocha":"*","underscore.string":"^3.0.3"},"scripts":{"test":"grunt test"},"files":["lib"],"gitHead":"6eb7778a7f1ff012c92a4a19280ea80aee674277","bugs":{"url":"https://github.com/bower/json/issues"},"homepage":"https://github.com/bower/json","_id":"bower-json@0.6.0","_shasum":"326579b23c33e4ea828e4763c55cd81fd7650329","_from":".","_npmVersion":"2.7.4","_nodeVersion":"0.12.2","_npmUser":{"name":"desandro","email":"desandrocodes@gmail.com"},"maintainers":[{"name":"desandro","email":"desandrocodes@gmail.com"},{"name":"paulirish","email":""},{"name":"satazor","email":"andremiguelcruz@msn.com"},{"name":"sheerun","email":"sheerun@sher.pl"},{"name":"sindresorhus","email":""},{"name":"wibblymat","email":"mat@wibbly.org.uk"}],"dist":{"shasum":"326579b23c33e4ea828e4763c55cd81fd7650329","size":4345,"noattachment":false,"key":"/bower-json/-/bower-json-0.6.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/bower-json/download/bower-json-0.6.0.tgz"},"directories":{},"publish_time":1438179586682,"_cnpm_publish_time":1438179586682,"_hasShrinkwrap":false},"0.5.0":{"name":"bower-json","version":"0.5.0","description":"Read bower.json files with semantics, normalisation, defaults and validation","author":{"name":"Twitter"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/bower/json.git"},"main":"lib/json","engines":{"node":">=0.10.0"},"dependencies":{"deep-extend":"^0.4.0","graceful-fs":"^3.0.0","intersect":"^1.0.1"},"devDependencies":{"expect.js":"^0.3.1","grunt":"^0.4.4","grunt-cli":"^0.1.13","grunt-contrib-jshint":"^0.11.2","grunt-contrib-watch":"^0.6.1","grunt-simple-mocha":"^0.4.0","mocha":"*","underscore.string":"^3.0.3"},"scripts":{"test":"grunt test"},"files":["lib"],"gitHead":"3cc1cd61c86d65c11fae42c05e2a4ce61310cbce","bugs":{"url":"https://github.com/bower/json/issues"},"homepage":"https://github.com/bower/json#readme","_id":"bower-json@0.5.0","_shasum":"1377bf0fef0e358e3ef4159f8b0187a4a7a13f69","_from":".","_npmVersion":"2.10.0","_nodeVersion":"0.12.3","_npmUser":{"name":"sindresorhus","email":"sindresorhus@gmail.com"},"dist":{"shasum":"1377bf0fef0e358e3ef4159f8b0187a4a7a13f69","size":3783,"noattachment":false,"key":"/bower-json/-/bower-json-0.5.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/bower-json/download/bower-json-0.5.0.tgz"},"maintainers":[{"name":"desandro","email":"desandrocodes@gmail.com"},{"name":"paulirish","email":""},{"name":"satazor","email":"andremiguelcruz@msn.com"},{"name":"sheerun","email":"sheerun@sher.pl"},{"name":"sindresorhus","email":""},{"name":"wibblymat","email":"mat@wibbly.org.uk"}],"directories":{},"publish_time":1432066037919,"_cnpm_publish_time":1432066037919,"_hasShrinkwrap":false},"0.4.0":{"name":"bower-json","version":"0.4.0","description":"Read bower.json files with semantics, normalisation, defaults and validation.","author":{"name":"Twitter"},"licenses":[{"type":"MIT","url":"https://github.com/bower/json/blob/master/LICENSE"}],"repository":{"type":"git","url":"git://github.com/bower/json.git"},"main":"lib/json","engines":{"node":">=0.8.0"},"dependencies":{"deep-extend":"~0.2.5","graceful-fs":"~2.0.0","intersect":"~0.0.3"},"devDependencies":{"expect.js":"~0.2.0","mocha":"~1.12.0","grunt":"~0.4.1","grunt-contrib-watch":"~0.4.4","grunt-contrib-jshint":"~0.6.0","grunt-simple-mocha":"~0.4.0"},"scripts":{"test":"grunt test"},"readmeFilename":"README.md","bugs":{"url":"https://github.com/bower/json/issues"},"_id":"bower-json@0.4.0","dist":{"shasum":"a99c3ccf416ef0590ed0ded252c760f1c6d93766","size":5838,"noattachment":false,"key":"/bower-json/-/bower-json-0.4.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/bower-json/download/bower-json-0.4.0.tgz"},"_from":".","_npmVersion":"1.3.2","_npmUser":{"name":"satazor","email":"andremiguelcruz@msn.com"},"maintainers":[{"name":"desandro","email":"desandrocodes@gmail.com"},{"name":"paulirish","email":""},{"name":"satazor","email":"andremiguelcruz@msn.com"},{"name":"sheerun","email":"sheerun@sher.pl"},{"name":"sindresorhus","email":""},{"name":"wibblymat","email":"mat@wibbly.org.uk"}],"directories":{},"publish_time":1376228814127,"_cnpm_publish_time":1376228814127,"_hasShrinkwrap":false},"0.3.0":{"name":"bower-json","version":"0.3.0","description":"Read bower.json files with semantics, normalisation, defaults and validation.","author":{"name":"Twitter"},"licenses":[{"type":"MIT","url":"https://github.com/bower/json/blob/master/LICENSE"}],"repository":{"type":"git","url":"git://github.com/bower/json.git"},"main":"lib/json","engines":{"node":">=0.8.0"},"dependencies":{"deep-extend":"~0.2.5","graceful-fs":"~2.0.0"},"devDependencies":{"expect.js":"~0.2.0","mocha":"~1.12.0","grunt":"~0.4.1","grunt-contrib-watch":"~0.4.4","grunt-contrib-jshint":"~0.6.0","grunt-simple-mocha":"~0.4.0"},"scripts":{"test":"grunt test"},"readmeFilename":"README.md","bugs":{"url":"https://github.com/bower/json/issues"},"_id":"bower-json@0.3.0","dist":{"shasum":"4b3c8ac94adf728616d3a2df07874e4eab172d24","size":5197,"noattachment":false,"key":"/bower-json/-/bower-json-0.3.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/bower-json/download/bower-json-0.3.0.tgz"},"_from":".","_npmVersion":"1.3.2","_npmUser":{"name":"satazor","email":"andremiguelcruz@msn.com"},"maintainers":[{"name":"desandro","email":"desandrocodes@gmail.com"},{"name":"paulirish","email":""},{"name":"satazor","email":"andremiguelcruz@msn.com"},{"name":"sheerun","email":"sheerun@sher.pl"},{"name":"sindresorhus","email":""},{"name":"wibblymat","email":"mat@wibbly.org.uk"}],"directories":{},"publish_time":1375709107182,"_cnpm_publish_time":1375709107182,"_hasShrinkwrap":false},"0.2.0":{"name":"bower-json","version":"0.2.0","description":"Read bower.json files with semantics, normalisation, defaults and validation.","author":{"name":"Twitter"},"licenses":[{"type":"MIT","url":"https://github.com/bower/json/blob/master/LICENSE"}],"repository":{"type":"git","url":"git://github.com/bower/json.git"},"main":"lib/json","engines":{"node":">=0.8.0"},"dependencies":{"deep-extend":"~0.2.5","graceful-fs":"~2.0.0"},"devDependencies":{"expect.js":"~0.2.0","mocha":"~1.12.0","grunt":"~0.4.1","grunt-contrib-watch":"~0.4.4","grunt-contrib-jshint":"~0.6.0","grunt-simple-mocha":"~0.4.0"},"scripts":{"test":"grunt test"},"readmeFilename":"README.md","bugs":{"url":"https://github.com/bower/json/issues"},"_id":"bower-json@0.2.0","dist":{"shasum":"e4383fe1bdcb527de8119190b2c7245e2f021419","size":5042,"noattachment":false,"key":"/bower-json/-/bower-json-0.2.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/bower-json/download/bower-json-0.2.0.tgz"},"_from":".","_npmVersion":"1.3.2","_npmUser":{"name":"satazor","email":"andremiguelcruz@msn.com"},"maintainers":[{"name":"desandro","email":"desandrocodes@gmail.com"},{"name":"paulirish","email":""},{"name":"satazor","email":"andremiguelcruz@msn.com"},{"name":"sheerun","email":"sheerun@sher.pl"},{"name":"sindresorhus","email":""},{"name":"wibblymat","email":"mat@wibbly.org.uk"}],"directories":{},"publish_time":1374960428754,"_cnpm_publish_time":1374960428754,"_hasShrinkwrap":false},"0.1.0-rc.1":{"name":"bower-json","version":"0.1.0-rc.1","description":"Read bower.json files with semantics, normalisation, defaults and validation.","author":{"name":"Twitter"},"licenses":[{"type":"MIT","url":"https://github.com/bower/json/blob/master/LICENSE"}],"repository":{"type":"git","url":"git://github.com/bower/json.git"},"main":"lib/json","engines":{"node":">=0.8.0"},"dependencies":{"graceful-fs":"~1.2.2"},"devDependencies":{"expect.js":"~0.2.0","mocha":"~1.12.0"},"scripts":{"test":"mocha -R spec"},"readmeFilename":"README.md","bugs":{"url":"https://github.com/bower/json/issues"},"_id":"bower-json@0.1.0-rc.1","dist":{"shasum":"4e622a300ecc54b6cb784e52ece2cfaeed8baf08","size":3672,"noattachment":false,"key":"/bower-json/-/bower-json-0.1.0-rc.1.tgz","tarball":"http://registry.cnpm.dingdandao.com/bower-json/download/bower-json-0.1.0-rc.1.tgz"},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"satazor","email":"andremiguelcruz@msn.com"},"maintainers":[{"name":"desandro","email":"desandrocodes@gmail.com"},{"name":"paulirish","email":""},{"name":"satazor","email":"andremiguelcruz@msn.com"},{"name":"sheerun","email":"sheerun@sher.pl"},{"name":"sindresorhus","email":""},{"name":"wibblymat","email":"mat@wibbly.org.uk"}],"directories":{},"publish_time":1373399844653,"_cnpm_publish_time":1373399844653,"_hasShrinkwrap":false}},"readme":"# bower-json\n\nRead `bower.json` files with semantics, normalisation, defaults and validation.\n\nInstall via [npm](https://www.npmjs.org/package/bower-json): `npm install --save bower-json`\n\n## Usage\n\n#### .read(file, options, callback)\n#### .readSync(file, options)\n\nReads `file` and applies normalisation, defaults and validation according to the `bower.json` spec.\nIf the passed `file` does not exist, the callback is called with `error.code` equal to `ENOENT`.\nIf the passed `file` contents are not valid JSON, the callback is called with `error.code` equal to `EMALFORMED`.\nIf the `json` does not comply with the `bower.json` spec, the callback is called with `error.code` equal to `EINVALID`.\n\nIf `file` is a directory, `find()` will be used to search for the json file.\nThe `options` argument is optional and can be omitted. These options will be passed to `parse` method.\n\n\n```js\nvar bowerJson = require('bower-json');\n\n// Can also be used by simply calling bowerJson()\nbowerJson.read('/path/to/bower.json', function (err, json) {\n    if (err) {\n        console.error('There was an error reading the file');\n        console.error(err.message);\n        return;\n    }\n\n    console.log('JSON: ', json);\n});\n```\n\n\n#### .parse(json, options)\n\nParses an object. Useful when you want to apply normalisation and validation directly to an object.\nIf the `json` does not comply with the `bower.json` spec, an error is thrown with `error.code` equal to `EINVALID`.\n\nThe `options` arguments is optional and can be omitted. Available options:\n\n- validate: Apply validation, defaults to `true`\n- normalize: Apply normalisation, defaults to `false`\n- clone: clone, use and return the passed in `json` object instead of using it directly, defaults to `false`\n\n\n```js\nvar bowerJson = require('bower-json');\n\nvar json = {\n    name: 'my-package',\n    version: '0.0.1'\n};\n\ntry {\n    bowerJson.parse(json);\n} catch (err) {\n    console.error('There was an error parsing the object');\n    console.error(err.message);\n}\n```\n\n#### .getIssues(json) - DEPRECATED\n\nValidates the passed `json` object.\n\nReturns an object with errors and warnings of this bower.json contents.\n\n```js\nvar bowerJson = require('bower-json');\n\nvar json = {\n    name: 'myPackage',\n    version: '0.0.1',\n    main: {}\n};\n\nvar issues = bowerJson.getIssues(json);\n\nexpect(issues).toEqual({\n  errors: ['The \"main\" field has to be either an Array or a String'],\n  warnings: ['The \"name\" must be lowercase']\n});\n\n#### .validate(json)\n\nValidates the passed `json` object.\n\nThrows an error with `error.code` equal to `EINVALID` if it does not comply with the spec.\n\n```js\nvar bowerJson = require('bower-json');\n\nvar json = {\n    name: 'myPackage',\n    version: '0.0.1'\n};\n\ntry {\n    bowerJson.validate(json);\n} catch (err) {\n    console.error('There was an error validating the object');\n    console.error(err.message);\n}\n```\n\n#### .normalize(json)\n\n```js\nvar bowerJson = require('bower-json');\n\nvar json = {\n    name: 'my-package',\n    version: '0.0.1',\n    main: 'foo.js,bar.js'\n};\n\nbowerJson.normalize(json);\njson.main // ['foo.js', 'bar.js']\n```\n\n\n#### .find(folder, callback)\n#### .findSync(folder)\n\nFinds the `json` filename inside a folder.\nChecks if a `bower.json` exists, falling back to `component.json` (deprecated) and `.bower.json`.\nIf no file was found, the callback is called with a `error.code` of `ENOENT`.\n\n```js\nvar bowerJson = require('bower-json');\n\nbowerJson.find('/path/to/folder', function (err, filename) {\n    if (err) {\n        console.error('There is no json file in the folder');\n        return;\n    }\n\n    console.log('Filename: ', filename);\n\n    // Now that we got the filename, we can read its contents\n    bowerJson.read(filename, function (err, json) {\n        if (err) {\n            console.error('There was an error reading the file');\n            console.error(err.message);\n            return;\n        }\n\n        console.log('JSON: ', json);\n    });\n});\n```\n\n\n## License\n\nReleased under the [MIT License](http://www.opensource.org/licenses/mit-license.php).\n","_attachments":{},"license":"MIT"}