{"maintainers":[{"name":"fkling","email":"felix.kling@gmx.net"}],"keywords":["codemod","recast"],"dist-tags":{"latest":"0.3.30"},"author":{"name":"Felix Kling"},"description":"A toolkit for JavaScript codemods","readme":"# jscodeshift [![Build Status](https://travis-ci.org/facebook/jscodeshift.svg?branch=master)](https://travis-ci.org/facebook/jscodeshift)\n\njscodeshift is a toolkit for running codemods over multiple JS files.\nIt provides:\n\n- A runner, which executes the provided transform for each file passed to it.\n  It also outputs a summary of how many files have (not) been transformed.\n- A wrapper around [recast][], providing a different API.  Recast is an\n  AST-to-AST transform tool and also tries to preserve the style of original code\n  as much as possible.\n\n## Install\n\nGet jscodeshift from [npm][]:\n\n```\n$ npm install -g jscodeshift\n```\n\nThis will install the runner as `jscodeshift`.\n\n## Usage (CLI)\n\nThe CLI provides the following options:\n\n```text\n$ jscodeshift --help\n\nUsage: jscodeshift <path>... [options]\n\npath     Files or directory to transform\n\nOptions:\n   -t FILE, --transform FILE   Path to the transform file. Can be either a local path or url  [./transform.js]\n   -c, --cpus                  (all by default) Determines the number of processes started.\n   -v, --verbose               Show more information about the transform process  [0]\n   -d, --dry                   Dry run (no changes are made to files)\n   -p, --print                 Print output, useful for development\n   --babel                     Apply Babel to transform files  [true]\n   --extensions                File extensions the transform file should be applied to  [js]\n   --ignore-pattern            Ignore files that match a provided glob expression\n   --ignore-config FILE        Ignore files if they match patterns sourced from a configuration file (e.g., a .gitignore)\n   --run-in-band               Run serially in the current process  [false]\n   -s, --silent                No output  [false]\n   --parser                    The parser to use for parsing your source files (babel | babylon | flow)  [babel]\n   --version                   print version and exit\n```\n\nThis passes the source of all passed through the transform module specified\nwith `-t` or `--transform` (defaults to `transform.js` in the current\ndirectory). The next section explains the structure of the transform module.\n\n## Transform module\n\nThe transform is simply a module that exports a function of the form:\n\n```js\nmodule.exports = function(fileInfo, api, options) {\n  // transform `fileInfo.source` here\n  // ...\n  // return changed source\n  return source;\n};\n```\n\n### Arguments\n\n#### `fileInfo`\n\nHolds information about the currently processed file.\n\nProperty    | Description\n------------|------------\npath        | File path\nsource      | File content\n\n#### `api`\n\nThis object exposes the `jscodeshift` library and helper functions from the\nrunner.\n\nProperty    | Description\n------------|------------\njscodeshift | A reference to the jscodeshift library\nstats       | A function to collect statistics during `--dry` runs\n\n`jscodeshift` is a reference to the wrapper around recast and provides a\njQuery-like API to navigate and transform the AST. Here is a quick example,\na more detailed description can be found below.\n\n```js\n/**\n * This replaces every occurence of variable \"foo\".\n */\nmodule.exports = function(fileInfo, api) {\n  return api.jscodeshift(fileInfo.source)\n    .findVariableDeclarators('foo')\n    .renameTo('bar')\n    .toSource();\n}\n```\n\n**Note:** This api is exposed for convenience, but you don't have to use it.\nYou can use any tool to modify the source.\n\n`stats` is a function that only works when the `--dry` options is set. It accepts\na string, and will simply count how often it was called with that value.\n\nAt the end, the CLI will report those values. This can be useful while\ndeveloping the transform, e.g. to find out how often a certain construct\nappears in the source(s).\n\n#### `options`\n\nContains all options that have been passed to runner. This allows you to pass\nadditional options to the transform. For example, if the CLI is called with\n\n```\n$ jscodeshift -t myTransforms fileA fileB --foo=bar\n```\n\n`options` would contain `{foo: 'bar'}`. jscodeshift uses [nomnom][] to parse\ncommand line options.\n\n### Return value\n\nThe return value of the function determines the status of the transformation:\n\n- If a string is returned and it is different from passed source, the\n  transform is considered to be successful.\n- If a string is returned but it's the same as the source, the transform\n  is considered to be unsuccessful.\n- If nothing is returned, the file is not supposed to be transformed (which is\n  ok).\n\nThe CLI provides a summary of the transformation at the end. You can get more\ndetailed information by setting the `-v` option to `1` or `2`.\n\nYou can collect even more stats via the `stats` function as explained above.\n\n### Parser\n\nThe transform can let jscodeshift know with which parser to parse the source \nfiles (and features like templates).\n\nTo do that, the transform module can export `parser`, which can either be one \nof the strings `\"babel\"`, `\"babylon\"`, or `\"flow\"`, or it can be a parser \nobject that is compatible with recast.\n\nFor example:\n\n```js\nmodule.exports.parser = 'flow'; // use the flow parser\n// or\nmodule.exports.parser = {\n  parse: function(source) {\n    // return estree compatible AST\n  },\n};\n```\n\n### Example output\n\n```text\n$ jscodeshift -t myTransform.js src\nProcessing 10 files...\nSpawning 2 workers with 5 files each...\nAll workers done.\nResults: 0 errors 2 unmodified 3 skipped 5 ok\n```\n\n## The jscodeshift API\n\nAs already mentioned, jscodeshift also provides a wrapper around [recast][].\nIn order to properly use the jscodeshift API, one has to understand the basic\nbuilding blocks of recast (and ASTs) as well.\n\n### Core Concepts\n\n#### AST nodes\n\nAn AST node is a plain JavaScript object with a specific set of fields, in\naccordance with the [Mozilla Parser API][]. The primary way to identify nodes\nis via their `type`.\n\nFor example, string literals are represented via `Literal` nodes, which\nhave the structure\n\n```js\n// \"foo\"\n{\n  type: 'Literal',\n  value: 'foo',\n  raw: '\"foo\"'\n}\n```\n\nIt's OK to not know the structure of every AST node type.\nThe [(esprima) AST explorer][ast-explorer] is an online tool to inspect the AST\nfor a given piece of JS code.\n\n#### Path objects\n\nRecast itself relies heavily on [ast-types][] which defines methods to traverse\nthe AST, access node fields and build new nodes. ast-types wraps every AST node\ninto a *path object*. Paths contain meta-information and helper methods to\nprocess AST nodes.\n\nFor example, the child-parent relationship between two nodes is not explicitly\ndefined. Given a plain AST node, it is not possible to traverse the tree *up*.\nGiven a path object however, the parent can be traversed to via `path.parent`.\n\nFor more information about the path object API, please have a look at\n[ast-types][].\n\n#### Builders\n\nTo make creating AST nodes a bit simpler and \"safer\", ast-types defines a couple\nof *builder methods*, which are also exposed on `jscodeshift`.\n\nFor example, the following creates an AST equivalent to `foo(bar)`:\n\n```js\n// inside a module transform\nvar j = jscodeshift;\n// foo(bar);\nvar ast = j.callExpression(\n  j.identifier('foo'),\n  [j.identifier('bar')]\n);\n```\n\nThe signature of each builder function is best learned by having a look at the\n[definition files](https://github.com/benjamn/ast-types/blob/master/def/).\n\n### Collections and Traversal\n\nIn order to transform the AST, you have to traverse it and find the nodes that\nneed to be changed. jscodeshift is built around the idea of **collections** of\npaths and thus provides a different way of processing an AST than recast or\nast-types.\n\nA collection has methods to process the nodes inside a collection, often\nresulting in a new collection. This results in a fluent interface, which can\nmake the transform more readable.\n\nCollections are \"typed\" which means that the type of a collection is the\n\"lowest\" type all AST nodes in the collection have in common. That means you\ncannot call a method for a `FunctionExpression` collection on an `Identifier`\ncollection.\n\nHere is an example of how one would find/traverse all `Identifier` nodes with\njscodeshift and with recast:\n\n```js\n// recast\nvar ast = recast.parse(src);\nrecast.visit(ast, {\n  visitIdentifier: function(path) {\n    // do something with path\n    return false;\n  }\n});\n\n// jscodeshift\njscodeshift(src)\n  .find(jscodeshift.Identifier)\n  .forEach(function(path) {\n    // do something with path\n  });\n```\n\nTo learn about the provided methods, have a look at the\n[Collection.js](src/Collection.js) and its [extensions](src/collections/).\n\n### Extensibility\n\njscodeshift provides an API to extend collections. By moving common operators\ninto helper functions (which can be stored separately in other modules), a\ntransform can be made more readable.\n\nThere are two types of extensions: generic extensions and type-specific\nextensions. **Generic extensions** are applicable to all collections. As such,\nthey typically don't access specific node data, but rather traverse the AST from\nthe nodes in the collection. **Type-specific** extensions work only on specific\nnode types and are not callable on differently typed collections.\n\n#### Examples\n\n```js\n// Adding a method to all Identifiers\njscodeshift.registerMethods({\n\tlogNames: function() {\n\t\treturn this.forEach(function(path) {\n\t\t\tconsole.log(path.node.name);\n\t\t});\n\t}\n}, jscodeshift.Identifier);\n\n// Adding a method to all collections\njscodeshift.registerMethods({\n\tfindIdentifiers: function() {\n\t\treturn this.find(jscodeshift.Identifier);\n\t}\n});\n\njscodeshift(ast).findIdentifiers().logNames();\njscodeshift(ast).logNames(); // error, unless `ast` only consists of Identifier nodes\n```\n\n### Passing options to [recast]\n\nYou may want to change some of the output settings (like setting `'` instead of `\"`).\nThis can be done by passing config options to [recast].\n\n```js\n.toSource({quote: 'single'}); // sets strings to use single quotes in transformed code.\n```\n\nYou can also pass options to recast's `parse` method by passing an object to \njscodeshift as second argument:\n\n```js\njscodeshift(source, {...})\n```\n\nMore on config options [here](https://github.com/benjamn/recast/blob/52a7ec3eaaa37e78436841ed8afc948033a86252/lib/options.js#L61)\n\n### Unit Testing\n\njscodeshift comes with a simple utility to allow easy unit testing with [Jest](https://facebook.github.io/jest/), without having to write a lot of boilerplate code. This utility makes some assumptions in order to reduce the amount of configuration required:\n\n - The test is located in a subdirectory under the directory the transform itself is located in (eg. `__tests__`)\n - Test fixtures are located in a `__testfixtures__` directory\n\nThis results in a directory structure like this:\n```\n/MyTransform.js\n/__tests__/MyTransform-test.js\n/__testfixtures__/MyTransform.input.js\n/__testfixtures__/MyTransform.output.js\n```\n\nTo define a test, use `defineTest` from the `testUtils` module:\n\n```js\njest.autoMockOff();\nconst defineTest = require('jscodeshift/dist/testUtils').defineTest;\ndefineTest(__dirname, 'MyTransform');\n```\n\nAn alternate fixture filename can be provided as the fourth argument to `defineTest`. This also means that multiple test fixtures can be provided:\n```js\ndefineTest(__dirname, 'MyTransform', null, 'FirstFixture');\ndefineTest(__dirname, 'MyTransform', null, 'SecondFixture');\n```\nThis will run two tests: One for `__testfixtures__/FirstFixture.input.js` and one for `__testfixtures__/SecondFixture.input.js`\n\n\nA simple example is bundled in the [sample directory](sample).\n\n\n### Example Codemods\n\n- [react-codemod](https://github.com/reactjs/react-codemod) - React codemod scripts to update React APIs.\n- [js-codemod](https://github.com/cpojer/js-codemod/) - Codemod scripts to transform code to next generation JS.\n- [js-transforms](https://github.com/jhgg/js-transforms) - Some documented codemod experiments to help you learn.\n\n### Recipes\n\n- [Retain leading comment(s) in file when replacing/removing first statement](recipes/retain-first-comment.md)\n\n### Support\n\n* Discord - [#codemod](https://discordapp.com/channels/102860784329052160/103748721107292160) on [Reactiflux](http://www.reactiflux.com/)\n\n[npm]: https://www.npmjs.com/\n[Mozilla Parser API]: https://developer.mozilla.org/en-US/docs/Mozilla/Projects/SpiderMonkey/Parser_API\n[recast]: https://github.com/benjamn/recast\n[ast-types]: https://github.com/benjamn/ast-types\n[ast-explorer]: http://astexplorer.net/\n[nomnom]: https://www.npmjs.com/package/nomnom\n","repository":{"type":"git","url":"git+https://github.com/facebook/jscodeshift.git"},"users":{"ahmedelgabri":true,"mongodb-js":true,"nelix":true,"jjdanois":true,"hal9zillion":true,"cmtegner":true,"insomniaqc":true},"bugs":{"url":"https://github.com/facebook/jscodeshift/issues"},"license":"BSD-3-Clause","versions":{"0.1.0":{"name":"jscodeshift","version":"0.1.0","description":"A toolkit for AST-to-AST JavaScript codemods","repository":{"type":"git","url":"https://github.com/facebook/jscodeshift.git"},"bugs":{"url":"https://github.com/facebook/jscodeshift/issues"},"main":"index.js","scripts":{"build":"rm -rf dist; jsx --harmony src/ dist/","watch":"jsx --harmony src/ dist/ -w","test":"npm run build && jest","prepublish":"npm run build"},"bin":{"jscodeshift":"./bin/jscodeshift.sh"},"keywords":["codemod","recast"],"author":{"name":"Felix Kling"},"license":"BSD-3-Clause","dependencies":{"async":"^0.9.0","cli-color":"^0.3.2","esprima-fb":"^13001.1001.0-dev-harmony-fb","lodash":"^3.5.0","nomnom":"^1.8.1","recast":"^0.10.5"},"devDependencies":{"es6-promise":"^2.0.1","jest-cli":"^0.4.0","react-tools":"^0.13.1","temp":"^0.8.1"},"jest":{"scriptPreprocessor":"./scripts/test-preprocess.js","testPathDirs":["src","bin"]},"gitHead":"bb2d28bc693c7e4c11437f1466e6347a4ace5a59","homepage":"https://github.com/facebook/jscodeshift","_id":"jscodeshift@0.1.0","_shasum":"a4a4b4cd86c47163f55fa56cf54eff93873d41ef","_from":".","_npmVersion":"2.7.1","_nodeVersion":"0.12.0","_npmUser":{"name":"fkling","email":"felix.kling@gmx.net"},"maintainers":[{"name":"fkling","email":"felix.kling@gmx.net"}],"dist":{"shasum":"a4a4b4cd86c47163f55fa56cf54eff93873d41ef","tarball":"http://nexus.dui88.com:8081/nexus/content/groups/npm-all/jscodeshift/-/jscodeshift-0.1.0.tgz"},"directories":{}},"0.1.1":{"name":"jscodeshift","version":"0.1.1","description":"A toolkit for JavaScript codemods","repository":{"type":"git","url":"https://github.com/facebook/jscodeshift.git"},"bugs":{"url":"https://github.com/facebook/jscodeshift/issues"},"main":"index.js","scripts":{"build":"rm -rf dist; jsx --harmony src/ dist/","watch":"jsx --harmony src/ dist/ -w","test":"npm run build && jest","prepublish":"npm run build"},"bin":{"jscodeshift":"./bin/jscodeshift.sh"},"keywords":["codemod","recast"],"author":{"name":"Felix Kling"},"license":"BSD-3-Clause","dependencies":{"async":"^0.9.0","cli-color":"^0.3.2","esprima-fb":"^13001.1001.0-dev-harmony-fb","lodash":"^3.5.0","nomnom":"^1.8.1","recast":"^0.10.10"},"devDependencies":{"es6-promise":"^2.0.1","jest-cli":"^0.4.0","react-tools":"^0.13.1","temp":"^0.8.1"},"jest":{"scriptPreprocessor":"./scripts/test-preprocess.js","testPathDirs":["src","bin"]},"gitHead":"462860558abf6f249ca3ca886565e87b9e0f031b","homepage":"https://github.com/facebook/jscodeshift","_id":"jscodeshift@0.1.1","_shasum":"be64221cbc9c277818223d101d3fcf9cb53dae97","_from":".","_npmVersion":"2.7.1","_nodeVersion":"0.12.0","_npmUser":{"name":"fkling","email":"felix.kling@gmx.net"},"maintainers":[{"name":"fkling","email":"felix.kling@gmx.net"}],"dist":{"shasum":"be64221cbc9c277818223d101d3fcf9cb53dae97","tarball":"http://nexus.dui88.com:8081/nexus/content/groups/npm-all/jscodeshift/-/jscodeshift-0.1.1.tgz"},"directories":{}},"0.1.2":{"name":"jscodeshift","version":"0.1.2","description":"A toolkit for JavaScript codemods","repository":{"type":"git","url":"https://github.com/facebook/jscodeshift.git"},"bugs":{"url":"https://github.com/facebook/jscodeshift/issues"},"main":"index.js","scripts":{"build":"rm -rf dist; jsx --harmony src/ dist/","watch":"jsx --harmony src/ dist/ -w","test":"npm run build && jest","prepublish":"npm run build"},"bin":{"jscodeshift":"./bin/jscodeshift.sh"},"keywords":["codemod","recast"],"author":{"name":"Felix Kling"},"license":"BSD-3-Clause","dependencies":{"async":"^0.9.0","cli-color":"^0.3.2","esprima-fb":"^13001.1001.0-dev-harmony-fb","lodash":"^3.5.0","nomnom":"^1.8.1","recast":"^0.10.10"},"devDependencies":{"es6-promise":"^2.0.1","jest-cli":"^0.4.0","react-tools":"^0.13.1","temp":"^0.8.1"},"jest":{"scriptPreprocessor":"./scripts/test-preprocess.js","testPathDirs":["src","bin"]},"gitHead":"8d2e05278686dfffbab2aa0ab2cffacd505f1506","homepage":"https://github.com/facebook/jscodeshift","_id":"jscodeshift@0.1.2","_shasum":"5cdc2844ffaec70797bad6b4648a52bba0043bf7","_from":".","_npmVersion":"2.6.0","_nodeVersion":"0.12.0","_npmUser":{"name":"fkling","email":"felix.kling@gmx.net"},"maintainers":[{"name":"fkling","email":"felix.kling@gmx.net"}],"dist":{"shasum":"5cdc2844ffaec70797bad6b4648a52bba0043bf7","tarball":"http://nexus.dui88.com:8081/nexus/content/groups/npm-all/jscodeshift/-/jscodeshift-0.1.2.tgz"},"directories":{}},"0.1.3":{"name":"jscodeshift","version":"0.1.3","description":"A toolkit for JavaScript codemods","repository":{"type":"git","url":"https://github.com/facebook/jscodeshift.git"},"bugs":{"url":"https://github.com/facebook/jscodeshift/issues"},"main":"index.js","scripts":{"build":"rm -rf dist; jsx --harmony src/ dist/","watch":"jsx --harmony src/ dist/ -w","test":"npm run build && jest","prepublish":"npm run build"},"bin":{"jscodeshift":"./bin/jscodeshift.sh"},"keywords":["codemod","recast"],"author":{"name":"Felix Kling"},"license":"BSD-3-Clause","dependencies":{"async":"^0.9.0","cli-color":"^0.3.2","esprima-fb":"^13001.1001.0-dev-harmony-fb","lodash":"^3.5.0","nomnom":"^1.8.1","recast":"^0.10.10"},"devDependencies":{"es6-promise":"^2.0.1","jest-cli":"^0.4.0","react-tools":"^0.13.1","temp":"^0.8.1"},"jest":{"scriptPreprocessor":"./scripts/test-preprocess.js","testPathDirs":["src","bin"]},"gitHead":"c1e1ee70332120229dd4c61c1f0d2f692374efb3","homepage":"https://github.com/facebook/jscodeshift","_id":"jscodeshift@0.1.3","_shasum":"4f940d770d7d55fad956355c6fe0f8a78ab9ac11","_from":".","_npmVersion":"2.6.0","_nodeVersion":"0.12.0","_npmUser":{"name":"fkling","email":"felix.kling@gmx.net"},"maintainers":[{"name":"fkling","email":"felix.kling@gmx.net"}],"dist":{"shasum":"4f940d770d7d55fad956355c6fe0f8a78ab9ac11","tarball":"http://nexus.dui88.com:8081/nexus/content/groups/npm-all/jscodeshift/-/jscodeshift-0.1.3.tgz"},"directories":{}},"0.1.4":{"name":"jscodeshift","version":"0.1.4","description":"A toolkit for JavaScript codemods","repository":{"type":"git","url":"https://github.com/facebook/jscodeshift.git"},"bugs":{"url":"https://github.com/facebook/jscodeshift/issues"},"main":"index.js","scripts":{"build":"rm -rf dist; jsx --harmony src/ dist/","watch":"jsx --harmony src/ dist/ -w","test":"npm run build && jest","prepublish":"npm run build"},"bin":{"jscodeshift":"./bin/jscodeshift.sh"},"keywords":["codemod","recast"],"author":{"name":"Felix Kling"},"license":"BSD-3-Clause","dependencies":{"async":"^0.9.0","cli-color":"^0.3.2","esprima-fb":"^14001.1.0-dev-harmony-fb","lodash":"^3.5.0","nomnom":"^1.8.1","recast":"^0.10.10"},"devDependencies":{"es6-promise":"^2.0.1","jest-cli":"^0.4.0","react-tools":"^0.13.1","temp":"^0.8.1"},"jest":{"scriptPreprocessor":"./scripts/test-preprocess.js","testPathDirs":["src","bin"]},"gitHead":"885e9562a8b99b4d1f83b3ae6e931a4b9e8300f7","homepage":"https://github.com/facebook/jscodeshift","_id":"jscodeshift@0.1.4","_shasum":"d380867b5fcd19cd27d8d564ce0695cd5229ff09","_from":".","_npmVersion":"2.6.0","_nodeVersion":"0.12.0","_npmUser":{"name":"fkling","email":"felix.kling@gmx.net"},"maintainers":[{"name":"fkling","email":"felix.kling@gmx.net"}],"dist":{"shasum":"d380867b5fcd19cd27d8d564ce0695cd5229ff09","tarball":"http://nexus.dui88.com:8081/nexus/content/groups/npm-all/jscodeshift/-/jscodeshift-0.1.4.tgz"},"directories":{}},"0.1.5":{"name":"jscodeshift","version":"0.1.5","description":"A toolkit for JavaScript codemods","repository":{"type":"git","url":"git+https://github.com/facebook/jscodeshift.git"},"bugs":{"url":"https://github.com/facebook/jscodeshift/issues"},"main":"index.js","scripts":{"build":"rm -rf dist; jsx --harmony src/ dist/","watch":"jsx --harmony src/ dist/ -w","test":"npm run build && jest","prepublish":"npm run build"},"bin":{"jscodeshift":"./bin/jscodeshift.sh"},"keywords":["codemod","recast"],"author":{"name":"Felix Kling"},"license":"BSD-3-Clause","dependencies":{"async":"^0.9.0","cli-color":"^0.3.2","esprima-fb":"^14001.1.0-dev-harmony-fb","lodash":"^3.5.0","nomnom":"^1.8.1","recast":"^0.10.10"},"devDependencies":{"es6-promise":"^2.0.1","jest-cli":"^0.4.0","react-tools":"^0.13.1","temp":"^0.8.1"},"jest":{"scriptPreprocessor":"./scripts/test-preprocess.js","testPathDirs":["src","bin"]},"gitHead":"3d4776b6da417b0488a59d7290f0201676d23f36","homepage":"https://github.com/facebook/jscodeshift#readme","_id":"jscodeshift@0.1.5","_shasum":"912055065e1ac155437b51f846174049bb00001a","_from":".","_npmVersion":"2.10.0","_nodeVersion":"0.12.2","_npmUser":{"name":"fkling","email":"felix.kling@gmx.net"},"dist":{"shasum":"912055065e1ac155437b51f846174049bb00001a","tarball":"http://nexus.dui88.com:8081/nexus/content/groups/npm-all/jscodeshift/-/jscodeshift-0.1.5.tgz"},"maintainers":[{"name":"fkling","email":"felix.kling@gmx.net"}],"directories":{}},"0.1.6":{"name":"jscodeshift","version":"0.1.6","description":"A toolkit for JavaScript codemods","repository":{"type":"git","url":"https://github.com/facebook/jscodeshift.git"},"bugs":{"url":"https://github.com/facebook/jscodeshift/issues"},"main":"index.js","scripts":{"build":"rm -rf dist; babel src/ --out-dir dist/","watch":"babel src/ --out-dir dist/ --watch","test":"jest","prepublish":"npm run build"},"bin":{"jscodeshift":"./bin/jscodeshift.sh"},"keywords":["codemod","recast"],"author":{"name":"Felix Kling"},"license":"BSD-3-Clause","dependencies":{"async":"^0.9.0","babel":"^5.6.14","babel-runtime":"^5.6.18","cli-color":"^0.3.2","esprima-fb":"^15001.1.0-dev-harmony-fb","lodash":"^3.5.0","nomnom":"^1.8.1","recast":"^0.10.10"},"devDependencies":{"babel-jest":"^5.3.0","es6-promise":"^2.0.1","jest-cli":"^0.4.0","temp":"^0.8.1"},"jest":{"scriptPreprocessor":"<rootDir>/node_modules/babel-jest","preprocessCachingDisabled":true,"testPathDirs":["src","bin"],"unmockedModulePathPatterns":["babel-runtime","babel"]},"gitHead":"82e11a684784655e1008706e2c3f15dfbeee0fee","homepage":"https://github.com/facebook/jscodeshift","_id":"jscodeshift@0.1.6","_shasum":"cb91c70a68d8b0135176ba03e5860ee61b26f506","_from":".","_npmVersion":"2.7.1","_nodeVersion":"0.10.36","_npmUser":{"name":"fkling","email":"felix.kling@gmx.net"},"dist":{"shasum":"cb91c70a68d8b0135176ba03e5860ee61b26f506","tarball":"http://nexus.dui88.com:8081/nexus/content/groups/npm-all/jscodeshift/-/jscodeshift-0.1.6.tgz"},"maintainers":[{"name":"fkling","email":"felix.kling@gmx.net"}],"directories":{}},"0.2.0":{"name":"jscodeshift","version":"0.2.0","description":"A toolkit for JavaScript codemods","repository":{"type":"git","url":"https://github.com/facebook/jscodeshift.git"},"bugs":{"url":"https://github.com/facebook/jscodeshift/issues"},"main":"index.js","scripts":{"build":"rm -rf dist; babel src/ --out-dir dist/","watch":"babel src/ --out-dir dist/ --watch","test":"jest","prepublish":"npm run build"},"bin":{"jscodeshift":"./bin/jscodeshift.sh"},"keywords":["codemod","recast"],"author":{"name":"Felix Kling"},"license":"BSD-3-Clause","dependencies":{"async":"^0.9.0","babel":"^5.6.14","babel-runtime":"^5.6.18","cli-color":"^0.3.2","esprima-fb":"^15001.1.0-dev-harmony-fb","lodash":"^3.5.0","nomnom":"^1.8.1","recast":"^0.10.10"},"devDependencies":{"babel-jest":"^5.3.0","es6-promise":"^2.0.1","jest-cli":"^0.4.0","temp":"^0.8.1"},"jest":{"scriptPreprocessor":"<rootDir>/node_modules/babel-jest","preprocessCachingDisabled":true,"testPathDirs":["src","bin"],"unmockedModulePathPatterns":["babel-runtime","babel"]},"gitHead":"87c7ed098da8fae996d0d90c33802710be6cdbf4","homepage":"https://github.com/facebook/jscodeshift","_id":"jscodeshift@0.2.0","_shasum":"1cdcd79fd3db1d052dd930bb989df129525188a0","_from":".","_npmVersion":"2.7.1","_nodeVersion":"0.10.36","_npmUser":{"name":"fkling","email":"felix.kling@gmx.net"},"dist":{"shasum":"1cdcd79fd3db1d052dd930bb989df129525188a0","tarball":"http://nexus.dui88.com:8081/nexus/content/groups/npm-all/jscodeshift/-/jscodeshift-0.2.0.tgz"},"maintainers":[{"name":"fkling","email":"felix.kling@gmx.net"}],"directories":{}},"0.3.0":{"name":"jscodeshift","version":"0.3.0","description":"A toolkit for JavaScript codemods","repository":{"type":"git","url":"git+https://github.com/facebook/jscodeshift.git"},"bugs":{"url":"https://github.com/facebook/jscodeshift/issues"},"main":"index.js","scripts":{"build":"rm -rf dist; babel src/ --out-dir dist/","watch":"babel src/ --out-dir dist/ --watch","test":"jest","prepublish":"npm run build"},"bin":{"jscodeshift":"./bin/jscodeshift.sh"},"keywords":["codemod","recast"],"author":{"name":"Felix Kling"},"license":"BSD-3-Clause","dependencies":{"async":"^0.9.0","babel":"^5.6.14","babel-runtime":"^5.6.18","cli-color":"^0.3.2","esprima-fb":"^15001.1.0-dev-harmony-fb","lodash":"^3.5.0","nomnom":"^1.8.1","recast":"^0.10.10"},"devDependencies":{"babel-jest":"^5.3.0","es6-promise":"^2.0.1","jest-cli":"^0.4.0","node-dir":"0.1.8","temp":"^0.8.1"},"jest":{"scriptPreprocessor":"<rootDir>/node_modules/babel-jest","preprocessCachingDisabled":true,"testPathDirs":["src","bin"],"unmockedModulePathPatterns":["babel-runtime","babel"]},"gitHead":"0255fd19c4b590c03ebd4ca5f85d6baa09aecdf4","homepage":"https://github.com/facebook/jscodeshift#readme","_id":"jscodeshift@0.3.0","_shasum":"6770e223dcd006884ee3411026ac3151a9813645","_from":".","_npmVersion":"2.12.1","_nodeVersion":"0.12.7","_npmUser":{"name":"fkling","email":"felix.kling@gmx.net"},"dist":{"shasum":"6770e223dcd006884ee3411026ac3151a9813645","tarball":"http://nexus.dui88.com:8081/nexus/content/groups/npm-all/jscodeshift/-/jscodeshift-0.3.0.tgz"},"maintainers":[{"name":"fkling","email":"felix.kling@gmx.net"}],"directories":{}},"0.3.1":{"name":"jscodeshift","version":"0.3.1","description":"A toolkit for JavaScript codemods","repository":{"type":"git","url":"git+https://github.com/facebook/jscodeshift.git"},"bugs":{"url":"https://github.com/facebook/jscodeshift/issues"},"main":"index.js","scripts":{"build":"rm -rf dist; babel src/ --out-dir dist/","watch":"babel src/ --out-dir dist/ --watch","test":"jest","prepublish":"npm run build"},"bin":{"jscodeshift":"./bin/jscodeshift.sh"},"keywords":["codemod","recast"],"author":{"name":"Felix Kling"},"license":"BSD-3-Clause","dependencies":{"async":"^0.9.0","babel":"^5.6.14","babel-runtime":"^5.6.18","cli-color":"^0.3.2","es6-promise":"^2.0.1","esprima-fb":"^15001.1.0-dev-harmony-fb","lodash":"^3.5.0","nomnom":"^1.8.1","recast":"^0.10.10"},"devDependencies":{"babel-jest":"^5.3.0","jest-cli":"^0.4.0","node-dir":"0.1.8","temp":"^0.8.1"},"jest":{"scriptPreprocessor":"<rootDir>/node_modules/babel-jest","preprocessCachingDisabled":true,"testPathDirs":["src","bin"],"unmockedModulePathPatterns":["babel-runtime","babel"]},"gitHead":"809225ea2d2abf2ccc68c25abd7ab01880d585e6","homepage":"https://github.com/facebook/jscodeshift#readme","_id":"jscodeshift@0.3.1","_shasum":"3a4e9db6700590ad38436a97122175cd72ec503d","_from":".","_npmVersion":"2.12.1","_nodeVersion":"0.12.7","_npmUser":{"name":"fkling","email":"felix.kling@gmx.net"},"dist":{"shasum":"3a4e9db6700590ad38436a97122175cd72ec503d","tarball":"http://nexus.dui88.com:8081/nexus/content/groups/npm-all/jscodeshift/-/jscodeshift-0.3.1.tgz"},"maintainers":[{"name":"fkling","email":"felix.kling@gmx.net"}],"directories":{}},"0.3.2":{"name":"jscodeshift","version":"0.3.2","description":"A toolkit for JavaScript codemods","repository":{"type":"git","url":"git+https://github.com/facebook/jscodeshift.git"},"bugs":{"url":"https://github.com/facebook/jscodeshift/issues"},"main":"index.js","scripts":{"build":"rm -rf dist; babel src/ --out-dir dist/","watch":"babel src/ --out-dir dist/ --watch","test":"jest","prepublish":"npm run build"},"bin":{"jscodeshift":"./bin/jscodeshift.sh"},"keywords":["codemod","recast"],"author":{"name":"Felix Kling"},"license":"BSD-3-Clause","dependencies":{"async":"^0.9.0","babel":"^5.6.14","babel-runtime":"^5.6.18","cli-color":"^0.3.2","es6-promise":"^2.0.1","esprima-fb":"^15001.1.0-dev-harmony-fb","lodash":"^3.5.0","node-dir":"0.1.8","nomnom":"^1.8.1","recast":"^0.10.10"},"devDependencies":{"babel-jest":"^5.3.0","jest-cli":"^0.4.0","temp":"^0.8.1"},"jest":{"scriptPreprocessor":"<rootDir>/node_modules/babel-jest","preprocessCachingDisabled":true,"testPathDirs":["src","bin"],"unmockedModulePathPatterns":["babel-runtime","babel"]},"gitHead":"77506279610d362d0a9d0a30e5ecce80b0ea6ada","homepage":"https://github.com/facebook/jscodeshift#readme","_id":"jscodeshift@0.3.2","_shasum":"f1cfc442fa8105ff377fd2142cb9e2da9deec495","_from":".","_npmVersion":"2.12.1","_nodeVersion":"0.12.7","_npmUser":{"name":"fkling","email":"felix.kling@gmx.net"},"dist":{"shasum":"f1cfc442fa8105ff377fd2142cb9e2da9deec495","tarball":"http://nexus.dui88.com:8081/nexus/content/groups/npm-all/jscodeshift/-/jscodeshift-0.3.2.tgz"},"maintainers":[{"name":"fkling","email":"felix.kling@gmx.net"}],"directories":{}},"0.3.3":{"name":"jscodeshift","version":"0.3.3","description":"A toolkit for JavaScript codemods","repository":{"type":"git","url":"https://github.com/facebook/jscodeshift.git"},"bugs":{"url":"https://github.com/facebook/jscodeshift/issues"},"main":"index.js","scripts":{"build":"rm -rf dist; babel src/ --out-dir dist/","watch":"babel src/ --out-dir dist/ --watch","test":"jest","prepublish":"npm run build"},"bin":{"jscodeshift":"./bin/jscodeshift.sh"},"keywords":["codemod","recast"],"author":{"name":"Felix Kling"},"license":"BSD-3-Clause","dependencies":{"async":"^0.9.0","babel":"^5.6.14","babel-runtime":"^5.6.18","cli-color":"^0.3.2","es6-promise":"^2.0.1","esprima-fb":"^15001.1.0-dev-harmony-fb","lodash":"^3.5.0","node-dir":"0.1.8","nomnom":"^1.8.1","recast":"^0.10.10"},"devDependencies":{"babel-jest":"^5.3.0","jest-cli":"^0.4.0","temp":"^0.8.1"},"jest":{"scriptPreprocessor":"<rootDir>/node_modules/babel-jest","preprocessCachingDisabled":true,"testPathDirs":["src","bin"],"unmockedModulePathPatterns":["babel-runtime","babel"]},"gitHead":"8515b6adb9543efe4351616e7d81fcf31513317a","homepage":"https://github.com/facebook/jscodeshift","_id":"jscodeshift@0.3.3","_shasum":"cdc8fba3f440e6643c374dd5987e1c74694e2693","_from":".","_npmVersion":"2.7.1","_nodeVersion":"0.10.36","_npmUser":{"name":"fkling","email":"felix.kling@gmx.net"},"dist":{"shasum":"cdc8fba3f440e6643c374dd5987e1c74694e2693","tarball":"http://nexus.dui88.com:8081/nexus/content/groups/npm-all/jscodeshift/-/jscodeshift-0.3.3.tgz"},"maintainers":[{"name":"fkling","email":"felix.kling@gmx.net"}],"directories":{}},"0.3.4":{"name":"jscodeshift","version":"0.3.4","description":"A toolkit for JavaScript codemods","repository":{"type":"git","url":"git+https://github.com/facebook/jscodeshift.git"},"bugs":{"url":"https://github.com/facebook/jscodeshift/issues"},"main":"index.js","scripts":{"build":"rm -rf dist; babel src/ --out-dir dist/","watch":"babel src/ --out-dir dist/ --watch","test":"jest","prepublish":"npm run build"},"bin":{"jscodeshift":"./bin/jscodeshift.sh"},"keywords":["codemod","recast"],"author":{"name":"Felix Kling"},"license":"BSD-3-Clause","dependencies":{"async":"^0.9.0","babel":"^5.6.14","babel-runtime":"^5.6.18","cli-color":"^0.3.2","es6-promise":"^2.0.1","esprima-fb":"^15001.1.0-dev-harmony-fb","lodash":"^3.5.0","node-dir":"0.1.8","nomnom":"^1.8.1","recast":"^0.10.10"},"devDependencies":{"babel-jest":"^5.3.0","jest-cli":"^0.4.0","temp":"^0.8.1"},"jest":{"scriptPreprocessor":"<rootDir>/node_modules/babel-jest","preprocessCachingDisabled":true,"testPathDirs":["src","bin"],"unmockedModulePathPatterns":["babel-runtime","babel"]},"gitHead":"462ea7f84ef0160a46713d2ea844b64e09855919","homepage":"https://github.com/facebook/jscodeshift#readme","_id":"jscodeshift@0.3.4","_shasum":"e39cc86f935eb743b60fed14da082036cdad51c0","_from":".","_npmVersion":"2.10.1","_nodeVersion":"0.12.4","_npmUser":{"name":"fkling","email":"felix.kling@gmx.net"},"dist":{"shasum":"e39cc86f935eb743b60fed14da082036cdad51c0","tarball":"http://nexus.dui88.com:8081/nexus/content/groups/npm-all/jscodeshift/-/jscodeshift-0.3.4.tgz"},"maintainers":[{"name":"fkling","email":"felix.kling@gmx.net"}],"directories":{}},"0.3.5":{"name":"jscodeshift","version":"0.3.5","description":"A toolkit for JavaScript codemods","repository":{"type":"git","url":"https://github.com/facebook/jscodeshift.git"},"bugs":{"url":"https://github.com/facebook/jscodeshift/issues"},"main":"index.js","scripts":{"build":"rm -rf dist; babel src/ --out-dir dist/","watch":"babel src/ --out-dir dist/ --watch","test":"jest","prepublish":"npm run build"},"bin":{"jscodeshift":"./bin/jscodeshift.sh"},"keywords":["codemod","recast"],"author":{"name":"Felix Kling"},"license":"BSD-3-Clause","dependencies":{"async":"^0.9.0","babel-core":"^5.8.21","babel-runtime":"^5.6.18","cli-color":"^0.3.2","es6-promise":"^2.0.1","lodash":"^3.5.0","node-dir":"0.1.8","nomnom":"^1.8.1","recast":"^0.10.28"},"devDependencies":{"babel":"^5.6.14","babel-jest":"^5.3.0","jest-cli":"^0.4.0","temp":"^0.8.1"},"jest":{"scriptPreprocessor":"<rootDir>/node_modules/babel-jest","preprocessCachingDisabled":true,"testPathDirs":["src","bin"],"unmockedModulePathPatterns":["babel-runtime","babel"]},"gitHead":"2a0f8a7ebf10a66d68072681df6ab77e1646bbb0","homepage":"https://github.com/facebook/jscodeshift","_id":"jscodeshift@0.3.5","_shasum":"2f774afdc54ae6893007186236b5e8d9def2fe3c","_from":".","_npmVersion":"1.4.28","_npmUser":{"name":"fkling","email":"felix.kling@gmx.net"},"maintainers":[{"name":"fkling","email":"felix.kling@gmx.net"}],"dist":{"shasum":"2f774afdc54ae6893007186236b5e8d9def2fe3c","tarball":"http://nexus.dui88.com:8081/nexus/content/groups/npm-all/jscodeshift/-/jscodeshift-0.3.5.tgz"},"directories":{}},"0.3.6":{"name":"jscodeshift","version":"0.3.6","description":"A toolkit for JavaScript codemods","repository":{"type":"git","url":"git+https://github.com/facebook/jscodeshift.git"},"bugs":{"url":"https://github.com/facebook/jscodeshift/issues"},"main":"index.js","scripts":{"build":"rm -rf dist; babel src/ --out-dir dist/","watch":"babel src/ --out-dir dist/ --watch","test":"jest","prepublish":"npm run build"},"bin":{"jscodeshift":"./bin/jscodeshift.sh"},"keywords":["codemod","recast"],"author":{"name":"Felix Kling"},"license":"BSD-3-Clause","dependencies":{"async":"^0.9.0","babel-core":"^5.8.21","babel-runtime":"^5.6.18","cli-color":"^0.3.2","es6-promise":"^2.0.1","lodash":"^3.5.0","node-dir":"0.1.8","nomnom":"^1.8.1","recast":"^0.10.28"},"devDependencies":{"babel":"^5.6.14","babel-jest":"^5.3.0","jest-cli":"^0.4.0","temp":"^0.8.1"},"jest":{"scriptPreprocessor":"<rootDir>/node_modules/babel-jest","preprocessCachingDisabled":true,"testPathDirs":["src","bin"],"unmockedModulePathPatterns":["babel-runtime","babel"]},"gitHead":"3a41c182fadac0f8a8d9872022d78d08ee30771f","homepage":"https://github.com/facebook/jscodeshift#readme","_id":"jscodeshift@0.3.6","_shasum":"383029f913071533d4b6f35341ee85fab1b72f79","_from":".","_npmVersion":"2.12.1","_nodeVersion":"0.12.7","_npmUser":{"name":"fkling","email":"felix.kling@gmx.net"},"dist":{"shasum":"383029f913071533d4b6f35341ee85fab1b72f79","tarball":"http://nexus.dui88.com:8081/nexus/content/groups/npm-all/jscodeshift/-/jscodeshift-0.3.6.tgz"},"maintainers":[{"name":"fkling","email":"felix.kling@gmx.net"}],"directories":{}},"0.3.7":{"name":"jscodeshift","version":"0.3.7","description":"A toolkit for JavaScript codemods","repository":{"type":"git","url":"git+https://github.com/facebook/jscodeshift.git"},"bugs":{"url":"https://github.com/facebook/jscodeshift/issues"},"main":"index.js","scripts":{"build":"rm -rf dist; babel src/ --out-dir dist/","watch":"babel src/ --out-dir dist/ --watch","test":"jest","prepublish":"npm run build"},"bin":{"jscodeshift":"./bin/jscodeshift.sh"},"keywords":["codemod","recast"],"author":{"name":"Felix Kling"},"license":"BSD-3-Clause","dependencies":{"async":"^0.9.0","babel-core":"^5.8.21","babel-runtime":"^5.6.18","cli-color":"^0.3.2","es6-promise":"^2.0.1","lodash":"^3.5.0","node-dir":"0.1.8","nomnom":"^1.8.1","recast":"^0.10.32"},"devDependencies":{"babel":"^5.6.14","babel-jest":"^5.3.0","jest-cli":"^0.4.0","temp":"^0.8.1"},"jest":{"scriptPreprocessor":"<rootDir>/node_modules/babel-jest","preprocessCachingDisabled":true,"testPathDirs":["src","bin"],"unmockedModulePathPatterns":["babel-runtime","babel"]},"gitHead":"88737b0c7cb230168b72ab955b4e4c20e33d7c4c","homepage":"https://github.com/facebook/jscodeshift#readme","_id":"jscodeshift@0.3.7","_shasum":"c63b0d7104b3010a936bc947e9ba1f1892f98dee","_from":".","_npmVersion":"2.14.0","_nodeVersion":"0.12.7","_npmUser":{"name":"fkling","email":"felix.kling@gmx.net"},"dist":{"shasum":"c63b0d7104b3010a936bc947e9ba1f1892f98dee","tarball":"http://nexus.dui88.com:8081/nexus/content/groups/npm-all/jscodeshift/-/jscodeshift-0.3.7.tgz"},"maintainers":[{"name":"fkling","email":"felix.kling@gmx.net"}],"directories":{}},"0.3.8":{"name":"jscodeshift","version":"0.3.8","description":"A toolkit for JavaScript codemods","repository":{"type":"git","url":"git+https://github.com/facebook/jscodeshift.git"},"bugs":{"url":"https://github.com/facebook/jscodeshift/issues"},"main":"index.js","scripts":{"build":"rm -rf dist; babel src/ --out-dir dist/","watch":"babel src/ --out-dir dist/ --watch","test":"jest","prepublish":"npm run build"},"bin":{"jscodeshift":"./bin/jscodeshift.sh"},"keywords":["codemod","recast"],"author":{"name":"Felix Kling"},"license":"BSD-3-Clause","dependencies":{"async":"^0.9.0","babel-core":"^5.8.21","babel-runtime":"^5.6.18","cli-color":"^0.3.2","es6-promise":"^2.0.1","lodash":"^3.5.0","node-dir":"0.1.8","nomnom":"^1.8.1","recast":"^0.10.32"},"devDependencies":{"babel":"^5.6.14","babel-jest":"^5.3.0","jest-cli":"^0.5.10","temp":"^0.8.1"},"jest":{"scriptPreprocessor":"<rootDir>/node_modules/babel-jest","preprocessCachingDisabled":true,"testPathDirs":["src","bin"],"unmockedModulePathPatterns":["babel-runtime","babel"]},"gitHead":"b45a30fc30d81f668e73956a0186ee6a28dbc13f","homepage":"https://github.com/facebook/jscodeshift#readme","_id":"jscodeshift@0.3.8","_shasum":"99d57354b8a8385520ab469594451ff03b463b49","_from":".","_npmVersion":"2.14.7","_nodeVersion":"4.2.1","_npmUser":{"name":"fkling","email":"felix.kling@gmx.net"},"dist":{"shasum":"99d57354b8a8385520ab469594451ff03b463b49","tarball":"http://nexus.dui88.com:8081/nexus/content/groups/npm-all/jscodeshift/-/jscodeshift-0.3.8.tgz"},"maintainers":[{"name":"fkling","email":"felix.kling@gmx.net"}],"directories":{}},"0.3.9":{"name":"jscodeshift","version":"0.3.9","description":"A toolkit for JavaScript codemods","repository":{"type":"git","url":"git+https://github.com/facebook/jscodeshift.git"},"bugs":{"url":"https://github.com/facebook/jscodeshift/issues"},"main":"index.js","scripts":{"build":"rm -rf dist; babel src/ --out-dir dist/","watch":"babel src/ --out-dir dist/ --watch","test":"jest","prepublish":"npm run build"},"bin":{"jscodeshift":"./bin/jscodeshift.sh"},"keywords":["codemod","recast"],"author":{"name":"Felix Kling"},"license":"BSD-3-Clause","dependencies":{"async":"^1.5.0","babel-core":"^5.8.21","babel-runtime":"^5.6.18","cli-color":"^1.0.0","es6-promise":"^3.0.0","lodash":"^3.5.0","node-dir":"0.1.8","nomnom":"^1.8.1","recast":"^0.10.32"},"devDependencies":{"babel":"^5.6.14","babel-jest":"^5.3.0","jest-cli":"^0.7.1","temp":"^0.8.1"},"jest":{"scriptPreprocessor":"<rootDir>/node_modules/babel-jest","preprocessCachingDisabled":true,"testPathDirs":["src","bin"],"unmockedModulePathPatterns":["node_modules/"]},"gitHead":"a61a3e22a61f09b704f9d4ba99490eae299a8426","homepage":"https://github.com/facebook/jscodeshift#readme","_id":"jscodeshift@0.3.9","_shasum":"510e780308f716a5b2fc9ce5248d7eede7a8c53e","_from":".","_npmVersion":"3.3.12","_nodeVersion":"5.0.0","_npmUser":{"name":"fkling","email":"felix.kling@gmx.net"},"dist":{"shasum":"510e780308f716a5b2fc9ce5248d7eede7a8c53e","tarball":"http://nexus.dui88.com:8081/nexus/content/groups/npm-all/jscodeshift/-/jscodeshift-0.3.9.tgz"},"maintainers":[{"name":"fkling","email":"felix.kling@gmx.net"}],"directories":{}},"0.3.10":{"name":"jscodeshift","version":"0.3.10","description":"A toolkit for JavaScript codemods","repository":{"type":"git","url":"git+https://github.com/facebook/jscodeshift.git"},"bugs":{"url":"https://github.com/facebook/jscodeshift/issues"},"main":"index.js","scripts":{"build":"rm -rf dist; babel src/ --out-dir dist/","watch":"babel src/ --out-dir dist/ --watch","test":"jest","prepublish":"npm run build"},"bin":{"jscodeshift":"./bin/jscodeshift.sh"},"keywords":["codemod","recast"],"author":{"name":"Felix Kling"},"license":"BSD-3-Clause","dependencies":{"async":"^1.5.0","babel-core":"^5.8.21","babel-runtime":"^5.6.18","cli-color":"^1.0.0","es6-promise":"^3.0.0","lodash":"^3.5.0","node-dir":"0.1.8","nomnom":"^1.8.1","recast":"^0.10.32"},"devDependencies":{"babel":"^5.6.14","babel-jest":"^5.3.0","jest-cli":"^0.8.0","temp":"^0.8.1"},"jest":{"scriptPreprocessor":"<rootDir>/node_modules/babel-jest","preprocessCachingDisabled":true,"testPathDirs":["src","bin"],"unmockedModulePathPatterns":["node_modules/"]},"gitHead":"06ad57cccc701df0a8d39b1c44aba16c0846b7a3","homepage":"https://github.com/facebook/jscodeshift#readme","_id":"jscodeshift@0.3.10","_shasum":"9212eda2badeb070ee4b1b6f035cc94d6a45d129","_from":".","_npmVersion":"3.3.12","_nodeVersion":"5.0.0","_npmUser":{"name":"fkling","email":"felix.kling@gmx.net"},"dist":{"shasum":"9212eda2badeb070ee4b1b6f035cc94d6a45d129","tarball":"http://nexus.dui88.com:8081/nexus/content/groups/npm-all/jscodeshift/-/jscodeshift-0.3.10.tgz"},"maintainers":[{"name":"fkling","email":"felix.kling@gmx.net"}],"directories":{}},"0.3.11":{"name":"jscodeshift","version":"0.3.11","description":"A toolkit for JavaScript codemods","repository":{"type":"git","url":"git+https://github.com/facebook/jscodeshift.git"},"bugs":{"url":"https://github.com/facebook/jscodeshift/issues"},"main":"index.js","scripts":{"build":"rm -rf dist; babel src/ --out-dir dist/","watch":"babel src/ --out-dir dist/ --watch","test":"jest","prepublish":"npm run build"},"bin":{"jscodeshift":"./bin/jscodeshift.sh"},"keywords":["codemod","recast"],"author":{"name":"Felix Kling"},"license":"BSD-3-Clause","dependencies":{"async":"^1.5.0","babel-core":"^5.8.21","babel-runtime":"^5.6.18","cli-color":"^1.0.0","es6-promise":"^3.0.0","lodash":"^3.5.0","node-dir":"0.1.8","nomnom":"^1.8.1","recast":"^0.10.32"},"devDependencies":{"babel":"^5.6.14","babel-jest":"^5.3.0","jest-cli":"^0.8.0","temp":"^0.8.1"},"jest":{"scriptPreprocessor":"<rootDir>/node_modules/babel-jest","preprocessCachingDisabled":true,"testPathDirs":["src","bin"],"unmockedModulePathPatterns":["node_modules/"]},"gitHead":"f70fdaa94b6f0f51012f7273153c8194e4dd0755","homepage":"https://github.com/facebook/jscodeshift#readme","_id":"jscodeshift@0.3.11","_shasum":"7bdd48acd0c50dab097821b50f5569e191bf878a","_from":".","_npmVersion":"3.3.12","_nodeVersion":"5.1.1","_npmUser":{"name":"fkling","email":"felix.kling@gmx.net"},"dist":{"shasum":"7bdd48acd0c50dab097821b50f5569e191bf878a","tarball":"http://nexus.dui88.com:8081/nexus/content/groups/npm-all/jscodeshift/-/jscodeshift-0.3.11.tgz"},"maintainers":[{"name":"fkling","email":"felix.kling@gmx.net"}],"directories":{}},"0.3.12":{"name":"jscodeshift","version":"0.3.12","description":"A toolkit for JavaScript codemods","repository":{"type":"git","url":"git+https://github.com/facebook/jscodeshift.git"},"bugs":{"url":"https://github.com/facebook/jscodeshift/issues"},"main":"index.js","scripts":{"build":"rm -rf dist; babel src/ --out-dir dist/","watch":"babel src/ --out-dir dist/ --watch","test":"jest","prepublish":"npm run build"},"bin":{"jscodeshift":"./bin/jscodeshift.sh"},"keywords":["codemod","recast"],"author":{"name":"Felix Kling"},"license":"BSD-3-Clause","dependencies":{"async":"^1.5.0","babel-core":"^5.8.21","babel-runtime":"^5.6.18","cli-color":"^1.0.0","es6-promise":"^3.0.0","lodash":"^3.5.0","node-dir":"0.1.8","nomnom":"^1.8.1","recast":"^0.10.32"},"devDependencies":{"babel":"^5.6.14","babel-jest":"^5.3.0","jest-cli":"^0.8.0","temp":"^0.8.1"},"jest":{"scriptPreprocessor":"<rootDir>/node_modules/babel-jest","preprocessCachingDisabled":true,"testPathDirs":["src","bin"],"unmockedModulePathPatterns":["node_modules/"]},"gitHead":"635343a6ecb648633a04ac8092d30857ed2f0ecc","homepage":"https://github.com/facebook/jscodeshift#readme","_id":"jscodeshift@0.3.12","_shasum":"a97f9ca0ff261d6e2dd53a0bab33f6f9600fa4c1","_from":".","_npmVersion":"3.3.12","_nodeVersion":"5.3.0","_npmUser":{"name":"fkling","email":"felix.kling@gmx.net"},"dist":{"shasum":"a97f9ca0ff261d6e2dd53a0bab33f6f9600fa4c1","tarball":"http://nexus.dui88.com:8081/nexus/content/groups/npm-all/jscodeshift/-/jscodeshift-0.3.12.tgz"},"maintainers":[{"name":"fkling","email":"felix.kling@gmx.net"}],"directories":{}},"0.3.13":{"name":"jscodeshift","version":"0.3.13","description":"A toolkit for JavaScript codemods","repository":{"type":"git","url":"git+https://github.com/facebook/jscodeshift.git"},"bugs":{"url":"https://github.com/facebook/jscodeshift/issues"},"main":"index.js","scripts":{"build":"rm -rf dist; babel src/ --out-dir dist/","watch":"babel src/ --out-dir dist/ --watch","test":" npm run build && jest","prepublish":"npm run test && npm run build"},"bin":{"jscodeshift":"./bin/jscodeshift.sh"},"keywords":["codemod","recast"],"author":{"name":"Felix Kling"},"license":"BSD-3-Clause","dependencies":{"async":"^1.5.0","babel-core":"^5.8.21","babel-runtime":"^5.6.18","cli-color":"^1.0.0","es6-promise":"^3.0.0","lodash":"^3.5.0","node-dir":"0.1.8","nomnom":"^1.8.1","recast":"^0.11.0"},"devDependencies":{"babel":"^5.6.14","babel-jest":"^5.3.0","jest-cli":"^0.8.0","temp":"^0.8.1"},"jest":{"scriptPreprocessor":"<rootDir>/node_modules/babel-jest","preprocessCachingDisabled":true,"testPathDirs":["src","bin"],"unmockedModulePathPatterns":["node_modules/"]},"gitHead":"b5e05937a3a3abe2580e5de13b1af2539e03caa8","homepage":"https://github.com/facebook/jscodeshift#readme","_id":"jscodeshift@0.3.13","_shasum":"775023e8a45fa07f2aa711acce2c589f3a641f5a","_from":".","_npmVersion":"3.5.3","_nodeVersion":"5.4.1","_npmUser":{"name":"fkling","email":"felix.kling@gmx.net"},"dist":{"shasum":"775023e8a45fa07f2aa711acce2c589f3a641f5a","tarball":"http://nexus.dui88.com:8081/nexus/content/groups/npm-all/jscodeshift/-/jscodeshift-0.3.13.tgz"},"maintainers":[{"name":"fkling","email":"felix.kling@gmx.net"}],"directories":{}},"0.3.14":{"name":"jscodeshift","version":"0.3.14","description":"A toolkit for JavaScript codemods","repository":{"type":"git","url":"git+https://github.com/facebook/jscodeshift.git"},"bugs":{"url":"https://github.com/facebook/jscodeshift/issues"},"main":"index.js","scripts":{"build":"rm -rf dist; babel src/ --out-dir dist/","watch":"babel src/ --out-dir dist/ --watch","test":" npm run build && jest","prepublish":"npm run test && npm run build"},"bin":{"jscodeshift":"./bin/jscodeshift.sh"},"keywords":["codemod","recast"],"author":{"name":"Felix Kling"},"license":"BSD-3-Clause","dependencies":{"async":"^1.5.0","babel-core":"^5.8.21","babel-runtime":"^5.6.18","cli-color":"^1.0.0","es6-promise":"^3.0.0","lodash":"^3.5.0","node-dir":"0.1.8","nomnom":"^1.8.1","recast":"^0.11.0"},"devDependencies":{"babel":"^5.6.14","babel-jest":"^5.3.0","jest-cli":"^0.8.0","temp":"^0.8.1"},"jest":{"scriptPreprocessor":"<rootDir>/node_modules/babel-jest","preprocessCachingDisabled":true,"testPathDirs":["src","bin"],"unmockedModulePathPatterns":["node_modules/"]},"gitHead":"ee5673346827376bcc40d660f968544ab3b78a7d","homepage":"https://github.com/facebook/jscodeshift#readme","_id":"jscodeshift@0.3.14","_shasum":"b5d56f03d6173ba91c24a95168effa5da07c8f44","_from":".","_npmVersion":"3.8.0","_nodeVersion":"5.7.0","_npmUser":{"name":"fkling","email":"felix.kling@gmx.net"},"dist":{"shasum":"b5d56f03d6173ba91c24a95168effa5da07c8f44","tarball":"http://nexus.dui88.com:8081/nexus/content/groups/npm-all/jscodeshift/-/jscodeshift-0.3.14.tgz"},"maintainers":[{"name":"fkling","email":"felix.kling@gmx.net"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/jscodeshift-0.3.14.tgz_1457487680485_0.06498487014323473"},"directories":{}},"0.3.15":{"name":"jscodeshift","version":"0.3.15","description":"A toolkit for JavaScript codemods","repository":{"type":"git","url":"git+https://github.com/facebook/jscodeshift.git"},"bugs":{"url":"https://github.com/facebook/jscodeshift/issues"},"main":"index.js","scripts":{"build":"rm -rf dist; babel src/ --out-dir dist/","watch":"babel src/ --out-dir dist/ --watch","test":" npm run build && jest","prepublish":"npm run test && npm run build"},"bin":{"jscodeshift":"./bin/jscodeshift.sh"},"keywords":["codemod","recast"],"author":{"name":"Felix Kling"},"license":"BSD-3-Clause","dependencies":{"async":"^1.5.0","babel-core":"^5.8.21","babel-runtime":"^5.6.18","cli-color":"^1.0.0","es6-promise":"^3.0.0","lodash":"^3.5.0","node-dir":"0.1.8","nomnom":"^1.8.1","recast":"^0.11.0"},"devDependencies":{"babel":"^5.6.14","babel-jest":"^5.3.0","jest-cli":"^0.8.0","temp":"^0.8.1"},"jest":{"scriptPreprocessor":"<rootDir>/node_modules/babel-jest","preprocessCachingDisabled":true,"testPathDirs":["src","bin"],"unmockedModulePathPatterns":["node_modules/"]},"gitHead":"a95cf8ebb1d9e8740c957b072e9c2eddb0d9d23d","homepage":"https://github.com/facebook/jscodeshift#readme","_id":"jscodeshift@0.3.15","_shasum":"b75ec6580ac3c0ff148fc8217f883ab09b9eb24e","_from":".","_npmVersion":"3.8.0","_nodeVersion":"5.7.0","_npmUser":{"name":"fkling","email":"felix.kling@gmx.net"},"dist":{"shasum":"b75ec6580ac3c0ff148fc8217f883ab09b9eb24e","tarball":"http://nexus.dui88.com:8081/nexus/content/groups/npm-all/jscodeshift/-/jscodeshift-0.3.15.tgz"},"maintainers":[{"name":"fkling","email":"felix.kling@gmx.net"}],"_npmOperationalInternal":{"host":"packages-13-west.internal.npmjs.com","tmp":"tmp/jscodeshift-0.3.15.tgz_1458058991974_0.6028192765079439"},"directories":{}},"0.3.16":{"name":"jscodeshift","version":"0.3.16","description":"A toolkit for JavaScript codemods","repository":{"type":"git","url":"git+https://github.com/facebook/jscodeshift.git"},"bugs":{"url":"https://github.com/facebook/jscodeshift/issues"},"main":"index.js","scripts":{"build":"rm -rf dist; babel src/ --out-dir dist/","watch":"babel src/ --out-dir dist/ --watch","test":" npm run build && jest","prepublish":"npm run test && npm run build"},"bin":{"jscodeshift":"./bin/jscodeshift.sh"},"keywords":["codemod","recast"],"author":{"name":"Felix Kling"},"license":"BSD-3-Clause","dependencies":{"async":"^1.5.0","babel-core":"^5.8.21","babel-runtime":"^5.6.18","cli-color":"^1.0.0","es6-promise":"^3.0.0","lodash":"^3.5.0","node-dir":"0.1.8","nomnom":"^1.8.1","recast":"^0.11.0","temp":"^0.8.1"},"devDependencies":{"babel":"^5.6.14","babel-jest":"^5.3.0","jest-cli":"^0.8.0"},"jest":{"scriptPreprocessor":"<rootDir>/node_modules/babel-jest","preprocessCachingDisabled":true,"testPathDirs":["src","bin"],"unmockedModulePathPatterns":["node_modules/"]},"gitHead":"7d21580346ae1b3c41984cdcf1fa89b6cf153ec8","homepage":"https://github.com/facebook/jscodeshift#readme","_id":"jscodeshift@0.3.16","_shasum":"13d3ea67aeb9d39876869b276ea93ae514671786","_from":".","_npmVersion":"3.8.0","_nodeVersion":"5.7.0","_npmUser":{"name":"fkling","email":"felix.kling@gmx.net"},"dist":{"shasum":"13d3ea67aeb9d39876869b276ea93ae514671786","tarball":"http://nexus.dui88.com:8081/nexus/content/groups/npm-all/jscodeshift/-/jscodeshift-0.3.16.tgz"},"maintainers":[{"name":"fkling","email":"felix.kling@gmx.net"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/jscodeshift-0.3.16.tgz_1458073383138_0.16708804108202457"},"directories":{}},"0.3.17":{"name":"jscodeshift","version":"0.3.17","description":"A toolkit for JavaScript codemods","repository":{"type":"git","url":"git+https://github.com/facebook/jscodeshift.git"},"bugs":{"url":"https://github.com/facebook/jscodeshift/issues"},"main":"index.js","scripts":{"build":"rm -rf dist; babel src/ --out-dir dist/","watch":"babel src/ --out-dir dist/ --watch","test":" npm run build && jest","prepublish":"npm run test && npm run build"},"bin":{"jscodeshift":"./bin/jscodeshift.sh"},"keywords":["codemod","recast"],"author":{"name":"Felix Kling"},"license":"BSD-3-Clause","dependencies":{"async":"^1.5.0","babel-core":"^5.8.21","babel-runtime":"^5.6.18","cli-color":"^1.0.0","es6-promise":"^3.0.0","lodash":"^3.5.0","node-dir":"0.1.8","nomnom":"^1.8.1","recast":"^0.11.0","temp":"^0.8.1"},"devDependencies":{"babel":"^5.6.14","babel-jest":"^5.3.0","jest-cli":"^0.8.0"},"jest":{"scriptPreprocessor":"<rootDir>/node_modules/babel-jest","preprocessCachingDisabled":true,"testPathDirs":["src","bin"],"unmockedModulePathPatterns":["node_modules/"]},"gitHead":"a77f4c90acbdc4643fa32ab644db87bdb0a52161","homepage":"https://github.com/facebook/jscodeshift#readme","_id":"jscodeshift@0.3.17","_shasum":"21d9a036c17d50aeaea24cb593b4cd7a99c8c6bb","_from":".","_npmVersion":"3.8.0","_nodeVersion":"5.7.0","_npmUser":{"name":"fkling","email":"felix.kling@gmx.net"},"dist":{"shasum":"21d9a036c17d50aeaea24cb593b4cd7a99c8c6bb","tarball":"http://nexus.dui88.com:8081/nexus/content/groups/npm-all/jscodeshift/-/jscodeshift-0.3.17.tgz"},"maintainers":[{"name":"fkling","email":"felix.kling@gmx.net"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/jscodeshift-0.3.17.tgz_1458256625528_0.8525742404162884"},"directories":{}},"0.3.18":{"name":"jscodeshift","version":"0.3.18","description":"A toolkit for JavaScript codemods","repository":{"type":"git","url":"git+https://github.com/facebook/jscodeshift.git"},"bugs":{"url":"https://github.com/facebook/jscodeshift/issues"},"main":"index.js","scripts":{"build":"rm -rf dist; babel src/ --out-dir dist/","watch":"babel src/ --out-dir dist/ --watch","test":" npm run build && jest","prepublish":"npm run test && npm run build"},"bin":{"jscodeshift":"./bin/jscodeshift.sh"},"keywords":["codemod","recast"],"author":{"name":"Felix Kling"},"license":"BSD-3-Clause","dependencies":{"async":"^1.5.0","babel-core":"^5.8.21","babel-runtime":"^5.6.18","cli-color":"^1.0.0","es6-promise":"^3.0.0","lodash":"^3.5.0","node-dir":"0.1.8","nomnom":"^1.8.1","recast":"^0.11.0","temp":"^0.8.1"},"devDependencies":{"babel":"^5.6.14","babel-jest":"^5.3.0","jest-cli":"^0.8.0"},"jest":{"scriptPreprocessor":"<rootDir>/node_modules/babel-jest","preprocessCachingDisabled":true,"testPathDirs":["src","bin"],"unmockedModulePathPatterns":["node_modules/"]},"gitHead":"9e5de4615129a2f473eaeb25fae7fc3d5ef96ec5","homepage":"https://github.com/facebook/jscodeshift#readme","_id":"jscodeshift@0.3.18","_shasum":"aa0e18d7a14bb733c7dbe64daf14c38bc046e418","_from":".","_npmVersion":"3.8.0","_nodeVersion":"5.7.0","_npmUser":{"name":"fkling","email":"felix.kling@gmx.net"},"dist":{"shasum":"aa0e18d7a14bb733c7dbe64daf14c38bc046e418","tarball":"http://nexus.dui88.com:8081/nexus/content/groups/npm-all/jscodeshift/-/jscodeshift-0.3.18.tgz"},"maintainers":[{"name":"fkling","email":"felix.kling@gmx.net"}],"_npmOperationalInternal":{"host":"packages-13-west.internal.npmjs.com","tmp":"tmp/jscodeshift-0.3.18.tgz_1458340477670_0.38916746200993657"},"directories":{}},"0.3.19":{"name":"jscodeshift","version":"0.3.19","description":"A toolkit for JavaScript codemods","repository":{"type":"git","url":"git+https://github.com/facebook/jscodeshift.git"},"bugs":{"url":"https://github.com/facebook/jscodeshift/issues"},"main":"index.js","scripts":{"build":"rm -rf dist; babel src/ --out-dir dist/","watch":"babel src/ --out-dir dist/ --watch","test":" npm run build && jest","prepublish":"npm run test && npm run build"},"bin":{"jscodeshift":"./bin/jscodeshift.sh"},"keywords":["codemod","recast"],"author":{"name":"Felix Kling"},"license":"BSD-3-Clause","dependencies":{"async":"^1.5.0","babel-core":"^5.8.21","babel-runtime":"^5.6.18","colors":"^1.1.2","es6-promise":"^3.0.0","lodash":"^3.5.0","node-dir":"0.1.8","nomnom":"^1.8.1","recast":"^0.11.0","temp":"^0.8.1"},"devDependencies":{"babel":"^5.6.14","babel-jest":"^5.3.0","jest-cli":"^0.9.0"},"jest":{"scriptPreprocessor":"<rootDir>/node_modules/babel-jest","preprocessCachingDisabled":true,"testPathDirs":["src","bin"],"unmockedModulePathPatterns":["node_modules/"]},"gitHead":"ab22e68ec65a376e01759e75643efb94605fb6e8","homepage":"https://github.com/facebook/jscodeshift#readme","_id":"jscodeshift@0.3.19","_shasum":"0ad74439568825c73bb9c541b029dffe4a3c382a","_from":".","_npmVersion":"3.8.0","_nodeVersion":"5.7.0","_npmUser":{"name":"fkling","email":"felix.kling@gmx.net"},"dist":{"shasum":"0ad74439568825c73bb9c541b029dffe4a3c382a","tarball":"http://nexus.dui88.com:8081/nexus/content/groups/npm-all/jscodeshift/-/jscodeshift-0.3.19.tgz"},"maintainers":[{"name":"fkling","email":"felix.kling@gmx.net"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/jscodeshift-0.3.19.tgz_1459061792049_0.053551180055364966"},"directories":{}},"0.3.20":{"name":"jscodeshift","version":"0.3.20","description":"A toolkit for JavaScript codemods","repository":{"type":"git","url":"git+https://github.com/facebook/jscodeshift.git"},"bugs":{"url":"https://github.com/facebook/jscodeshift/issues"},"main":"index.js","scripts":{"build":"rm -rf dist; babel src/ --out-dir dist/","watch":"babel src/ --out-dir dist/ --watch","test":" npm run build && jest","prepublish":"npm run test && npm run build"},"bin":{"jscodeshift":"./bin/jscodeshift.sh"},"keywords":["codemod","recast"],"author":{"name":"Felix Kling"},"license":"BSD-3-Clause","dependencies":{"async":"^1.5.0","babel-core":"^5.8.21","babel-runtime":"^5.6.18","colors":"^1.1.2","es6-promise":"^3.0.0","lodash":"^3.5.0","micromatch":"^2.3.7","node-dir":"0.1.8","nomnom":"^1.8.1","recast":"^0.11.0","temp":"^0.8.1"},"devDependencies":{"babel":"^5.6.14","babel-jest":"^5.3.0","jest-cli":"^0.9.0","mkdirp":"^0.5.1"},"jest":{"scriptPreprocessor":"<rootDir>/node_modules/babel-jest","preprocessCachingDisabled":true,"testPathDirs":["src","bin","sample"],"unmockedModulePathPatterns":["node_modules/"]},"gitHead":"d07ac8ef2ea814b0ea1656f223e3c5271d5b991b","homepage":"https://github.com/facebook/jscodeshift#readme","_id":"jscodeshift@0.3.20","_shasum":"1e8e7f1c7207d3ab91ae21f160281561156f7caa","_from":".","_npmVersion":"3.8.0","_nodeVersion":"5.7.0","_npmUser":{"name":"fkling","email":"felix.kling@gmx.net"},"dist":{"shasum":"1e8e7f1c7207d3ab91ae21f160281561156f7caa","tarball":"http://nexus.dui88.com:8081/nexus/content/groups/npm-all/jscodeshift/-/jscodeshift-0.3.20.tgz"},"maintainers":[{"name":"fkling","email":"felix.kling@gmx.net"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/jscodeshift-0.3.20.tgz_1461475753959_0.8293883518781513"},"directories":{}},"0.3.21":{"name":"jscodeshift","version":"0.3.21","description":"A toolkit for JavaScript codemods","repository":{"type":"git","url":"git+https://github.com/facebook/jscodeshift.git"},"bugs":{"url":"https://github.com/facebook/jscodeshift/issues"},"main":"index.js","scripts":{"build":"cp -R src/ dist/","test":"jest --bail","prepublish":"npm run build && npm run test"},"bin":{"jscodeshift":"./bin/jscodeshift.sh"},"engines":{"node":">=4"},"keywords":["codemod","recast"],"author":{"name":"Felix Kling"},"license":"BSD-3-Clause","dependencies":{"async":"^1.5.0","babel-preset-es2015":"^6.9.0","babel-register":"^6.9.0","babelv5":"file:packages/babelv5","babylon":"^6.8.1","colors":"^1.1.2","es6-promise":"^3.0.0","flow-parser":"^0.*","lodash":"^3.5.0","micromatch":"^2.3.7","node-dir":"0.1.8","nomnom":"^1.8.1","recast":"^0.11.8","temp":"^0.8.1"},"devDependencies":{"jest-cli":"^12.0.0","mkdirp":"^0.5.1"},"jest":{"testPathDirs":["src","bin","sample"],"unmockedModulePathPatterns":["node_modules/"]},"gitHead":"a7fec23e6f17242b4df2fe4e4c0ba1d7834db137","homepage":"https://github.com/facebook/jscodeshift#readme","_id":"jscodeshift@0.3.21","_shasum":"af4c0bc89d6725a1f02193e0392a74a83419f856","_from":".","_npmVersion":"2.15.5","_nodeVersion":"4.4.5","_npmUser":{"name":"fkling","email":"felix.kling@gmx.net"},"dist":{"shasum":"af4c0bc89d6725a1f02193e0392a74a83419f856","tarball":"http://nexus.dui88.com:8081/nexus/content/groups/npm-all/jscodeshift/-/jscodeshift-0.3.21.tgz"},"maintainers":[{"name":"fkling","email":"felix.kling@gmx.net"}],"_npmOperationalInternal":{"host":"packages-16-east.internal.npmjs.com","tmp":"tmp/jscodeshift-0.3.21.tgz_1466454130953_0.5040526492521167"},"directories":{}},"0.3.22":{"name":"jscodeshift","version":"0.3.22","description":"A toolkit for JavaScript codemods","repository":{"type":"git","url":"git+https://github.com/facebook/jscodeshift.git"},"bugs":{"url":"https://github.com/facebook/jscodeshift/issues"},"main":"index.js","scripts":{"build":"cp -R src/ dist/","test":"jest --bail","prepublish":"npm run build && npm run test"},"bin":{"jscodeshift":"./bin/jscodeshift.sh"},"engines":{"node":">=4"},"keywords":["codemod","recast"],"author":{"name":"Felix Kling"},"license":"BSD-3-Clause","dependencies":{"async":"^1.5.0","babel-core":"^5","babel-preset-es2015":"^6.9.0","babel-register":"^6.9.0","babylon":"^6.8.1","colors":"^1.1.2","es6-promise":"^3.0.0","flow-parser":"^0.*","lodash":"^3.5.0","micromatch":"^2.3.7","node-dir":"0.1.8","nomnom":"^1.8.1","recast":"^0.11.8","temp":"^0.8.1"},"devDependencies":{"jest-cli":"^12.0.0","mkdirp":"^0.5.1"},"jest":{"testPathDirs":["src","bin","sample"],"unmockedModulePathPatterns":["node_modules/"]},"gitHead":"6f4dabd442d096a8fe45a466f327970a1cbb1c58","homepage":"https://github.com/facebook/jscodeshift#readme","_id":"jscodeshift@0.3.22","_shasum":"ea0798170b1d743339e4b9d9ff4e01b09ebde04e","_from":".","_npmVersion":"2.15.5","_nodeVersion":"4.4.5","_npmUser":{"name":"fkling","email":"felix.kling@gmx.net"},"dist":{"shasum":"ea0798170b1d743339e4b9d9ff4e01b09ebde04e","tarball":"http://nexus.dui88.com:8081/nexus/content/groups/npm-all/jscodeshift/-/jscodeshift-0.3.22.tgz"},"maintainers":[{"name":"fkling","email":"felix.kling@gmx.net"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/jscodeshift-0.3.22.tgz_1466464176962_0.6393318073824048"},"directories":{}},"0.3.23":{"name":"jscodeshift","version":"0.3.23","description":"A toolkit for JavaScript codemods","repository":{"type":"git","url":"git+https://github.com/facebook/jscodeshift.git"},"bugs":{"url":"https://github.com/facebook/jscodeshift/issues"},"main":"index.js","scripts":{"build":"cp -R src/ dist/","test":"jest --bail","prepublish":"npm run build && npm run test"},"bin":{"jscodeshift":"./bin/jscodeshift.sh"},"engines":{"node":">=4"},"keywords":["codemod","recast"],"author":{"name":"Felix Kling"},"license":"BSD-3-Clause","dependencies":{"async":"^1.5.0","babel-core":"^5","babel-preset-es2015":"^6.9.0","babel-register":"^6.9.0","babylon":"^6.8.1","colors":"^1.1.2","es6-promise":"^3.0.0","flow-parser":"^0.*","lodash":"^4.13.1","micromatch":"^2.3.7","node-dir":"0.1.8","nomnom":"^1.8.1","recast":"^0.11.8","temp":"^0.8.1"},"devDependencies":{"jest-cli":"^12.0.0","mkdirp":"^0.5.1"},"jest":{"testPathDirs":["src","bin","sample"],"unmockedModulePathPatterns":["node_modules/"]},"gitHead":"1e077694913e4aa84cb97bebc08cdb72a8e77c34","homepage":"https://github.com/facebook/jscodeshift#readme","_id":"jscodeshift@0.3.23","_shasum":"e6188d4884bc49a4676d6a24fb25a44a6fb37e16","_from":".","_npmVersion":"2.15.5","_nodeVersion":"4.4.5","_npmUser":{"name":"fkling","email":"felix.kling@gmx.net"},"dist":{"shasum":"e6188d4884bc49a4676d6a24fb25a44a6fb37e16","tarball":"http://nexus.dui88.com:8081/nexus/content/groups/npm-all/jscodeshift/-/jscodeshift-0.3.23.tgz"},"maintainers":[{"name":"fkling","email":"felix.kling@gmx.net"}],"_npmOperationalInternal":{"host":"packages-16-east.internal.npmjs.com","tmp":"tmp/jscodeshift-0.3.23.tgz_1466618627662_0.15740253636613488"},"directories":{}},"0.3.24":{"name":"jscodeshift","version":"0.3.24","description":"A toolkit for JavaScript codemods","repository":{"type":"git","url":"git+https://github.com/facebook/jscodeshift.git"},"bugs":{"url":"https://github.com/facebook/jscodeshift/issues"},"main":"index.js","scripts":{"build":"cp -R src/ dist/","test":"jest --bail","prepublish":"npm run build && npm run test"},"bin":{"jscodeshift":"./bin/jscodeshift.sh"},"engines":{"node":">=4"},"keywords":["codemod","recast"],"author":{"name":"Felix Kling"},"license":"BSD-3-Clause","dependencies":{"async":"^1.5.0","babel-core":"^5","babel-preset-es2015":"^6.9.0","babel-register":"^6.9.0","babylon":"^6.8.1","colors":"^1.1.2","es6-promise":"^3.0.0","flow-parser":"^0.*","lodash":"^4.13.1","micromatch":"^2.3.7","node-dir":"0.1.8","nomnom":"^1.8.1","recast":"^0.11.8","temp":"^0.8.1"},"devDependencies":{"jest-cli":"^12.0.0","mkdirp":"^0.5.1"},"jest":{"testPathDirs":["src","bin","sample"],"unmockedModulePathPatterns":["node_modules/"]},"gitHead":"51013b8d5fa4fea6316814178945dc3ba4197d53","homepage":"https://github.com/facebook/jscodeshift#readme","_id":"jscodeshift@0.3.24","_shasum":"661b7a1bf620081b48a3dd4856a29438a0aa11e2","_from":".","_npmVersion":"2.15.5","_nodeVersion":"4.4.5","_npmUser":{"name":"fkling","email":"felix.kling@gmx.net"},"dist":{"shasum":"661b7a1bf620081b48a3dd4856a29438a0aa11e2","tarball":"http://nexus.dui88.com:8081/nexus/content/groups/npm-all/jscodeshift/-/jscodeshift-0.3.24.tgz"},"maintainers":[{"name":"fkling","email":"felix.kling@gmx.net"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/jscodeshift-0.3.24.tgz_1466627034540_0.8040860560722649"},"directories":{}},"0.3.25":{"name":"jscodeshift","version":"0.3.25","description":"A toolkit for JavaScript codemods","repository":{"type":"git","url":"git+https://github.com/facebook/jscodeshift.git"},"bugs":{"url":"https://github.com/facebook/jscodeshift/issues"},"main":"index.js","scripts":{"build":"cp -R src/ dist/","test":"jest --bail","prepublish":"npm run build && npm run test"},"bin":{"jscodeshift":"./bin/jscodeshift.sh"},"engines":{"node":">=4"},"keywords":["codemod","recast"],"author":{"name":"Felix Kling"},"license":"BSD-3-Clause","dependencies":{"async":"^1.5.0","babel-core":"^5","babel-preset-es2015":"^6.9.0","babel-register":"^6.9.0","babylon":"^6.8.1","colors":"^1.1.2","es6-promise":"^3.0.0","flow-parser":"^0.*","lodash":"^4.13.1","micromatch":"^2.3.7","node-dir":"0.1.8","nomnom":"^1.8.1","recast":"^0.11.8","temp":"^0.8.1"},"devDependencies":{"jest-cli":"^12.0.0","mkdirp":"^0.5.1"},"jest":{"testPathDirs":["src","bin","sample"],"unmockedModulePathPatterns":["node_modules/"]},"gitHead":"b4f015855605998934642b13ca169b0182219062","homepage":"https://github.com/facebook/jscodeshift#readme","_id":"jscodeshift@0.3.25","_shasum":"0185af735fd081b319e453382dcc34c164726e1b","_from":".","_npmVersion":"2.15.5","_nodeVersion":"4.4.5","_npmUser":{"name":"fkling","email":"felix.kling@gmx.net"},"dist":{"shasum":"0185af735fd081b319e453382dcc34c164726e1b","tarball":"http://nexus.dui88.com:8081/nexus/content/groups/npm-all/jscodeshift/-/jscodeshift-0.3.25.tgz"},"maintainers":[{"name":"fkling","email":"felix.kling@gmx.net"}],"_npmOperationalInternal":{"host":"packages-16-east.internal.npmjs.com","tmp":"tmp/jscodeshift-0.3.25.tgz_1466643291736_0.8906998485326767"},"directories":{}},"0.3.26":{"name":"jscodeshift","version":"0.3.26","description":"A toolkit for JavaScript codemods","repository":{"type":"git","url":"git+https://github.com/facebook/jscodeshift.git"},"bugs":{"url":"https://github.com/facebook/jscodeshift/issues"},"main":"index.js","scripts":{"build":"cp -R src/ dist/","test":"jest --bail","prepublish":"npm run build && npm run test"},"bin":{"jscodeshift":"./bin/jscodeshift.sh"},"engines":{"node":">=4"},"keywords":["codemod","recast"],"author":{"name":"Felix Kling"},"license":"BSD-3-Clause","dependencies":{"async":"^1.5.0","babel-core":"^5","babel-plugin-transform-flow-strip-types":"^6.8.0","babel-preset-es2015":"^6.9.0","babel-preset-stage-1":"^6.5.0","babel-register":"^6.9.0","babylon":"^6.8.1","colors":"^1.1.2","es6-promise":"^3.0.0","flow-parser":"^0.*","lodash":"^4.13.1","micromatch":"^2.3.7","node-dir":"0.1.8","nomnom":"^1.8.1","recast":"^0.11.8","temp":"^0.8.1"},"devDependencies":{"jest-cli":"^12.0.0","mkdirp":"^0.5.1"},"jest":{"testPathDirs":["src","bin","sample"],"unmockedModulePathPatterns":["node_modules/"]},"gitHead":"12a3b98ec01b210c64c7f481ded21bd33249075d","homepage":"https://github.com/facebook/jscodeshift#readme","_id":"jscodeshift@0.3.26","_shasum":"f8b0f9fb507222a410aef041c883cfff3edf0b0c","_from":".","_npmVersion":"3.8.6","_nodeVersion":"5.12.0","_npmUser":{"name":"fkling","email":"felix.kling@gmx.net"},"dist":{"shasum":"f8b0f9fb507222a410aef041c883cfff3edf0b0c","tarball":"http://nexus.dui88.com:8081/nexus/content/groups/npm-all/jscodeshift/-/jscodeshift-0.3.26.tgz"},"maintainers":[{"name":"fkling","email":"felix.kling@gmx.net"}],"_npmOperationalInternal":{"host":"packages-16-east.internal.npmjs.com","tmp":"tmp/jscodeshift-0.3.26.tgz_1468836976093_0.5067624596413225"},"directories":{}},"0.3.27":{"name":"jscodeshift","version":"0.3.27","description":"A toolkit for JavaScript codemods","repository":{"type":"git","url":"git+https://github.com/facebook/jscodeshift.git"},"bugs":{"url":"https://github.com/facebook/jscodeshift/issues"},"main":"index.js","scripts":{"build":"cp -R src/ dist/","test":"jest --bail","prepublish":"npm run build && npm run test"},"bin":{"jscodeshift":"./bin/jscodeshift.sh"},"engines":{"node":">=4"},"keywords":["codemod","recast"],"author":{"name":"Felix Kling"},"license":"BSD-3-Clause","dependencies":{"async":"^1.5.0","babel-core":"^5","babel-plugin-transform-flow-strip-types":"^6.8.0","babel-preset-es2015":"^6.9.0","babel-preset-stage-1":"^6.5.0","babel-register":"^6.9.0","babylon":"^6.8.1","colors":"^1.1.2","es6-promise":"^3.0.0","flow-parser":"^0.*","lodash":"^4.13.1","micromatch":"^2.3.7","node-dir":"0.1.8","nomnom":"^1.8.1","recast":"^0.11.8","temp":"^0.8.1"},"devDependencies":{"babel-eslint":"^6.1.2","eslint":"^3.1.1","jest-cli":"^12.0.0","mkdirp":"^0.5.1"},"jest":{"testPathDirs":["src","bin","sample"],"unmockedModulePathPatterns":["node_modules/"]},"gitHead":"d4ec75956d8d05421df6e3abe05645370da0f91a","homepage":"https://github.com/facebook/jscodeshift#readme","_id":"jscodeshift@0.3.27","_shasum":"a5ecab3329e2fe8debfbc3d5994409cb33238adc","_from":".","_npmVersion":"3.8.6","_nodeVersion":"5.12.0","_npmUser":{"name":"fkling","email":"felix.kling@gmx.net"},"dist":{"shasum":"a5ecab3329e2fe8debfbc3d5994409cb33238adc","tarball":"http://nexus.dui88.com:8081/nexus/content/groups/npm-all/jscodeshift/-/jscodeshift-0.3.27.tgz"},"maintainers":[{"name":"fkling","email":"felix.kling@gmx.net"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/jscodeshift-0.3.27.tgz_1469833067237_0.09810599707998335"},"directories":{}},"0.3.28":{"name":"jscodeshift","version":"0.3.28","description":"A toolkit for JavaScript codemods","repository":{"type":"git","url":"git+https://github.com/facebook/jscodeshift.git"},"bugs":{"url":"https://github.com/facebook/jscodeshift/issues"},"main":"index.js","scripts":{"build":"cp -R src/ dist/","test":"jest --bail","prepublish":"npm run build && npm run test"},"bin":{"jscodeshift":"./bin/jscodeshift.sh"},"engines":{"node":">=4"},"keywords":["codemod","recast"],"author":{"name":"Felix Kling"},"license":"BSD-3-Clause","dependencies":{"async":"^1.5.0","babel-core":"^5","babel-plugin-transform-flow-strip-types":"^6.8.0","babel-preset-es2015":"^6.9.0","babel-preset-stage-1":"^6.5.0","babel-register":"^6.9.0","babylon":"^6.8.1","colors":"^1.1.2","es6-promise":"^3.0.0","flow-parser":"^0.*","lodash":"^4.13.1","micromatch":"^2.3.7","node-dir":"0.1.8","nomnom":"^1.8.1","recast":"^0.11.11","temp":"^0.8.1"},"devDependencies":{"babel-eslint":"^6.1.2","eslint":"^3.1.1","jest-cli":"^12.0.0","mkdirp":"^0.5.1"},"jest":{"testPathDirs":["src","bin","sample"],"unmockedModulePathPatterns":["node_modules/"]},"gitHead":"fe67b121d4c2519c5227a00be3f590e7f7c46d2b","homepage":"https://github.com/facebook/jscodeshift#readme","_id":"jscodeshift@0.3.28","_shasum":"8e87be995ba3c9cba36e83808f22c1ac03f8eb87","_from":".","_npmVersion":"3.8.6","_nodeVersion":"5.12.0","_npmUser":{"name":"fkling","email":"felix.kling@gmx.net"},"dist":{"shasum":"8e87be995ba3c9cba36e83808f22c1ac03f8eb87","tarball":"http://nexus.dui88.com:8081/nexus/content/groups/npm-all/jscodeshift/-/jscodeshift-0.3.28.tgz"},"maintainers":[{"name":"fkling","email":"felix.kling@gmx.net"}],"_npmOperationalInternal":{"host":"packages-16-east.internal.npmjs.com","tmp":"tmp/jscodeshift-0.3.28.tgz_1471278163711_0.24770012288354337"},"directories":{}},"0.3.29":{"name":"jscodeshift","version":"0.3.29","description":"A toolkit for JavaScript codemods","repository":{"type":"git","url":"git+https://github.com/facebook/jscodeshift.git"},"bugs":{"url":"https://github.com/facebook/jscodeshift/issues"},"main":"index.js","scripts":{"build":"cp -R src/ dist/","test":"jest --bail","prepublish":"npm run build && npm run test","docs":"rm -rf docs && jsdoc -d docs -R README.md src/collections/* src/core.js src/Collection.js"},"bin":{"jscodeshift":"./bin/jscodeshift.sh"},"engines":{"node":">=4"},"keywords":["codemod","recast"],"author":{"name":"Felix Kling"},"license":"BSD-3-Clause","dependencies":{"async":"^1.5.0","babel-core":"^5","babel-plugin-transform-flow-strip-types":"^6.8.0","babel-preset-es2015":"^6.9.0","babel-preset-stage-1":"^6.5.0","babel-register":"^6.9.0","babylon":"^6.8.1","colors":"^1.1.2","es6-promise":"^3.0.0","flow-parser":"^0.*","lodash":"^4.13.1","micromatch":"^2.3.7","node-dir":"0.1.8","nomnom":"^1.8.1","recast":"^0.11.11","temp":"^0.8.1"},"devDependencies":{"babel-eslint":"^6.1.2","eslint":"^3.1.1","jsdoc":"^3.4.0","jest":"^15.1.1","mkdirp":"^0.5.1"},"jest":{"testPathDirs":["src","bin","sample"]},"gitHead":"85bfc77cfd88064aefb5e62a59c49b13d51530c7","homepage":"https://github.com/facebook/jscodeshift#readme","_id":"jscodeshift@0.3.29","_shasum":"aa4dcf9682ac3589b0d3163af78e2de03c5b71ab","_from":".","_npmVersion":"3.8.6","_nodeVersion":"5.12.0","_npmUser":{"name":"fkling","email":"felix.kling@gmx.net"},"dist":{"shasum":"aa4dcf9682ac3589b0d3163af78e2de03c5b71ab","tarball":"http://nexus.dui88.com:8081/nexus/content/groups/npm-all/jscodeshift/-/jscodeshift-0.3.29.tgz"},"maintainers":[{"name":"fkling","email":"felix.kling@gmx.net"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/jscodeshift-0.3.29.tgz_1475276526174_0.7169484205078334"},"directories":{}},"0.3.30":{"name":"jscodeshift","version":"0.3.30","description":"A toolkit for JavaScript codemods","repository":{"type":"git","url":"git+https://github.com/facebook/jscodeshift.git"},"bugs":{"url":"https://github.com/facebook/jscodeshift/issues"},"main":"index.js","scripts":{"build":"cp -R src/ dist/","test":"jest --bail","prepublish":"npm run build && npm run test","docs":"rm -rf docs && jsdoc -d docs -R README.md src/collections/* src/core.js src/Collection.js"},"bin":{"jscodeshift":"./bin/jscodeshift.sh"},"engines":{"node":">=4"},"keywords":["codemod","recast"],"author":{"name":"Felix Kling"},"license":"BSD-3-Clause","dependencies":{"async":"^1.5.0","babel-core":"^5","babel-plugin-transform-flow-strip-types":"^6.8.0","babel-preset-es2015":"^6.9.0","babel-preset-stage-1":"^6.5.0","babel-register":"^6.9.0","babylon":"^6.8.1","colors":"^1.1.2","es6-promise":"^3.0.0","flow-parser":"^0.*","lodash":"^4.13.1","micromatch":"^2.3.7","node-dir":"0.1.8","nomnom":"^1.8.1","recast":"^0.11.11","temp":"^0.8.1","write-file-atomic":"^1.2.0"},"devDependencies":{"babel-eslint":"^6.1.2","eslint":"^3.1.1","jsdoc":"^3.4.0","jest":"^15.1.1","mkdirp":"^0.5.1"},"jest":{"testPathDirs":["src","bin","sample"]},"gitHead":"eb9a30ba2e39d6324a9af698862677ce182e848a","homepage":"https://github.com/facebook/jscodeshift#readme","_id":"jscodeshift@0.3.30","_shasum":"73f459d8fc3b3a80841991aeb7d24809cef6dfc5","_from":".","_npmVersion":"3.8.6","_nodeVersion":"5.12.0","_npmUser":{"name":"fkling","email":"felix.kling@gmx.net"},"dist":{"shasum":"73f459d8fc3b3a80841991aeb7d24809cef6dfc5","tarball":"http://nexus.dui88.com:8081/nexus/content/groups/npm-all/jscodeshift/-/jscodeshift-0.3.30.tgz"},"maintainers":[{"name":"fkling","email":"felix.kling@gmx.net"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/jscodeshift-0.3.30.tgz_1477419141293_0.8033463300671428"},"directories":{}}},"name":"jscodeshift","time":{"modified":"2017-04-08T02:49:28.672Z","created":"2015-03-25T03:12:16.408Z","0.1.0":"2015-03-25T03:12:16.408Z","0.1.1":"2015-03-25T06:21:17.429Z","0.1.2":"2015-03-26T21:45:29.644Z","0.1.3":"2015-04-03T17:16:46.440Z","0.1.4":"2015-04-03T18:03:29.706Z","0.1.5":"2015-05-19T03:04:53.460Z","0.1.6":"2015-07-16T23:20:46.686Z","0.2.0":"2015-07-21T23:57:59.991Z","0.3.0":"2015-07-28T17:49:00.181Z","0.3.1":"2015-07-30T16:54:40.059Z","0.3.2":"2015-07-30T17:18:23.406Z","0.3.3":"2015-07-31T19:35:53.882Z","0.3.4":"2015-08-06T16:49:07.821Z","0.3.5":"2015-08-12T23:24:24.007Z","0.3.6":"2015-08-21T00:39:05.286Z","0.3.7":"2015-09-03T21:52:50.487Z","0.3.8":"2015-10-21T22:08:24.882Z","0.3.9":"2015-11-18T00:51:18.939Z","0.3.10":"2015-12-07T22:00:54.439Z","0.3.11":"2015-12-19T01:33:50.861Z","0.3.12":"2016-01-07T16:54:35.100Z","0.3.13":"2016-01-25T22:06:12.876Z","0.3.14":"2016-03-09T01:41:23.040Z","0.3.15":"2016-03-15T16:23:12.573Z","0.3.16":"2016-03-15T20:23:03.556Z","0.3.17":"2016-03-17T23:17:06.105Z","0.3.18":"2016-03-18T22:34:38.167Z","0.3.19":"2016-03-27T06:56:32.431Z","0.3.20":"2016-04-24T05:29:14.432Z","0.3.21":"2016-06-20T20:22:13.676Z","0.3.22":"2016-06-20T23:09:37.382Z","0.3.23":"2016-06-22T18:03:51.057Z","0.3.24":"2016-06-22T20:23:55.097Z","0.3.25":"2016-06-23T00:54:55.398Z","0.3.26":"2016-07-18T10:16:17.091Z","0.3.27":"2016-07-29T22:57:47.507Z","0.3.28":"2016-08-15T16:22:46.608Z","0.3.29":"2016-09-30T23:02:06.445Z","0.3.30":"2016-10-25T18:12:21.571Z"},"readmeFilename":"README.md","homepage":"https://github.com/facebook/jscodeshift#readme"}