{
  "_args": [
    [
      {
        "raw": "module-deps@^6.0.0",
        "scope": null,
        "escapedName": "module-deps",
        "name": "module-deps",
        "rawSpec": "^6.0.0",
        "spec": ">=6.0.0 <7.0.0",
        "type": "range"
      },
      "E:\\Mine\\Project\\git\\laya\\dawawa\\layaairdoc_cmd\\node_modules\\browserify"
    ]
  ],
  "_from": "module-deps@^6.0.0",
  "_hasShrinkwrap": false,
  "_id": "module-deps@6.2.0",
  "_location": "/module-deps",
  "_nodeVersion": "11.1.0",
  "_npmOperationalInternal": {
    "host": "s3://npm-registry-packages",
    "tmp": "tmp/module-deps_6.2.0_1542106814854_0.46446808683530283"
  },
  "_npmUser": {
    "name": "goto-bus-stop",
    "email": "renee@kooi.me"
  },
  "_npmVersion": "6.4.1",
  "_phantomChildren": {
    "core-util-is": "1.0.2",
    "inherits": "2.0.3",
    "process-nextick-args": "2.0.0",
    "safe-buffer": "5.1.2",
    "util-deprecate": "1.0.2"
  },
  "_requested": {
    "raw": "module-deps@^6.0.0",
    "scope": null,
    "escapedName": "module-deps",
    "name": "module-deps",
    "rawSpec": "^6.0.0",
    "spec": ">=6.0.0 <7.0.0",
    "type": "range"
  },
  "_requiredBy": [
    "/browserify"
  ],
  "_resolved": "https://registry.npmjs.org/module-deps/-/module-deps-6.2.0.tgz",
  "_shasum": "d41a2e790245ce319171e4e7c4d8c73993ba3cd5",
  "_shrinkwrap": null,
  "_spec": "module-deps@^6.0.0",
  "_where": "E:\\Mine\\Project\\git\\laya\\dawawa\\layaairdoc_cmd\\node_modules\\browserify",
  "author": {
    "name": "James Halliday",
    "email": "mail@substack.net",
    "url": "http://substack.net"
  },
  "bin": {
    "module-deps": "bin/cmd.js"
  },
  "bugs": {
    "url": "https://github.com/browserify/module-deps/issues"
  },
  "dependencies": {
    "JSONStream": "^1.0.3",
    "browser-resolve": "^1.7.0",
    "cached-path-relative": "^1.0.0",
    "concat-stream": "~1.6.0",
    "defined": "^1.0.0",
    "detective": "^5.0.2",
    "duplexer2": "^0.1.2",
    "inherits": "^2.0.1",
    "parents": "^1.0.0",
    "readable-stream": "^2.0.2",
    "resolve": "^1.4.0",
    "stream-combiner2": "^1.1.1",
    "subarg": "^1.0.0",
    "through2": "^2.0.0",
    "xtend": "^4.0.0"
  },
  "description": "walk the dependency graph to generate json output that can be fed into browser-pack",
  "devDependencies": {
    "browser-pack": "^6.0.2",
    "tap": "^1.0.0"
  },
  "directories": {},
  "dist": {
    "integrity": "sha512-hKPmO06so6bL/ZvqVNVqdTVO8UAYsi3tQWlCa+z9KuWhoN4KDQtb5hcqQQv58qYiDE21wIvnttZEPiDgEbpwbA==",
    "shasum": "d41a2e790245ce319171e4e7c4d8c73993ba3cd5",
    "tarball": "https://registry.npmjs.org/module-deps/-/module-deps-6.2.0.tgz",
    "fileCount": 119,
    "unpackedSize": 86849,
    "npm-signature": "-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJb6q6/CRA9TVsSAnZWagAA3DsP/12ZXFpBBgEWWL0rEQ8i\nqJFUIe5E3BUDOtA7ZxkpdXoJhGuHFQMgNsTj8x59VhItYyu5nKN8y8o6JMm7\nQziMziNJsoUW/tG20oO+PGqlw25uy8spvoiIL7yh1IQqdmU/lSnoi+oXlzUH\nu2FtckFEacvDgvrXhlRr/Mi4PiwXiuM+F0/sVuRJ9g/+h3gsrPNyAyFq4bCT\nQXeQE2KftjDZdJ/Nlk7ucZ9470uCm7GqjB+KFN2d2L59w0slSx1ND4p4DX5s\n+zZtSzIKW4zgc06t8K+g+/kK/mQKb+0/0Rd5chHjBYHFFQWsVQU48RyjFMyD\n7p97KQ6kyUbHN1r7ID6n2Wa7IJdg0gHzXPD+ALdItWjEFCytw+6QUOIy6OUJ\n17XEnDPltEwfVxEQwrIFKs/4rmejCKibydWKzNZNrGqH4FVlL3SVcC4pTrKF\nz6X8915M4aTt0a3s1acxaqaH8UUeE3z41ZUrINysGrGmLZ+OSy70lKNl81Xu\n0lIywxmk8GxiF6f7hd0UDK6F3uqJp8fuRFDQgLRgzDCHA5f9awyS5Qjqx9Yp\nGjp7sYcqNBCzkgPe1XhjdjR/EmtqWk+eQLxA3Fuggp0iCjbvzkB9lIpnHAfW\nhf8z1XwaOs+8vVb37L6RGHHbWamRJ91W2TZrR0Rooj/WgNtO1nI0xo7a21Ys\nct0L\r\n=ES6d\r\n-----END PGP SIGNATURE-----\r\n"
  },
  "engines": {
    "node": ">= 0.8.0"
  },
  "gitHead": "b4ad85066ee1146a7ae885afa8de16259cef86b5",
  "homepage": "https://github.com/browserify/module-deps",
  "keywords": [
    "dependency",
    "graph",
    "browser",
    "require",
    "module",
    "exports",
    "json"
  ],
  "license": "MIT",
  "main": "index.js",
  "maintainers": [
    {
      "name": "ahdinosaur",
      "email": "michael.williams@enspiral.com"
    },
    {
      "name": "anandthakker",
      "email": "vestibule@anandthakker.net"
    },
    {
      "name": "ashaffer88",
      "email": "darawk@gmail.com"
    },
    {
      "name": "balupton",
      "email": "b@lupton.cc"
    },
    {
      "name": "bpostlethwaite",
      "email": "post.ben.here@gmail.com"
    },
    {
      "name": "bret",
      "email": "bcomnes@gmail.com"
    },
    {
      "name": "cwmma",
      "email": "calvin.metcalf@gmail.com"
    },
    {
      "name": "dcousens",
      "email": "npm@dcousens.com"
    },
    {
      "name": "dominictarr",
      "email": "dominic.tarr@gmail.com"
    },
    {
      "name": "elnounch",
      "email": "contact@elnounch.net"
    },
    {
      "name": "emilbayes",
      "email": "github@tixz.dk"
    },
    {
      "name": "feross",
      "email": "feross@feross.org"
    },
    {
      "name": "forbeslindesay",
      "email": "forbes@lindesay.co.uk"
    },
    {
      "name": "fpereira1",
      "email": "pereira.filype@gmail.com"
    },
    {
      "name": "garann",
      "email": "garann@gmail.com"
    },
    {
      "name": "gkatsev",
      "email": "me@gkatsev.com"
    },
    {
      "name": "goto-bus-stop",
      "email": "rene@kooi.me"
    },
    {
      "name": "hughsk",
      "email": "hughskennedy@gmail.com"
    },
    {
      "name": "indutny",
      "email": "fedor@indutny.com"
    },
    {
      "name": "jmm",
      "email": "npm-public@jessemccarthy.net"
    },
    {
      "name": "jprichardson",
      "email": "jprichardson@gmail.com"
    },
    {
      "name": "jryans",
      "email": "jryans@gmail.com"
    },
    {
      "name": "leichtgewicht",
      "email": "martin.heidegger@gmail.com"
    },
    {
      "name": "mafintosh",
      "email": "mathiasbuus@gmail.com"
    },
    {
      "name": "mattdesl",
      "email": "dave.des@gmail.com"
    },
    {
      "name": "maxogden",
      "email": "max@maxogden.com"
    },
    {
      "name": "mellowmelon",
      "email": "palmermebane@gmail.com"
    },
    {
      "name": "parshap",
      "email": "parshap+npm@gmail.com"
    },
    {
      "name": "pkrumins",
      "email": "peteris.krumins@gmail.com"
    },
    {
      "name": "sethvincent",
      "email": "sethvincent@gmail.com"
    },
    {
      "name": "stevemao",
      "email": "maochenyan@gmail.com"
    },
    {
      "name": "substack",
      "email": "substack@gmail.com"
    },
    {
      "name": "tehshrike",
      "email": "me@JoshDuff.com"
    },
    {
      "name": "terinjokes",
      "email": "terinjokes@gmail.com"
    },
    {
      "name": "thlorenz",
      "email": "thlorenz@gmx.de"
    },
    {
      "name": "ungoldman",
      "email": "ungoldman@gmail.com"
    },
    {
      "name": "yerkopalma",
      "email": "yerko.palma@usach.cl"
    },
    {
      "name": "yoshuawuyts",
      "email": "yoshuawuyts@gmail.com"
    },
    {
      "name": "zertosh",
      "email": "zertosh@gmail.com"
    }
  ],
  "name": "module-deps",
  "optionalDependencies": {},
  "readme": "# module-deps\n\nwalk the dependency graph to generate json output that can be fed into\n[browser-pack](https://github.com/browserify/browser-pack)\n\n[![build status](https://secure.travis-ci.org/browserify/module-deps.png)](http://travis-ci.org/browserify/module-deps)\n\n# example\n\n``` js\nvar mdeps = require('module-deps');\nvar JSONStream = require('JSONStream');\n\nvar md = mdeps();\nmd.pipe(JSONStream.stringify()).pipe(process.stdout);\nmd.end({ file: __dirname + '/files/main.js' });\n```\n\noutput:\n\n```json\n$ node example/deps.js\n[\n{\"id\":\"/home/substack/projects/module-deps/example/files/main.js\",\"source\":\"var foo = require('./foo');\\nconsole.log('main: ' + foo(5));\\n\",\"entry\":true,\"deps\":{\"./foo\":\"/home/substack/projects/module-deps/example/files/foo.js\"}}\n,\n{\"id\":\"/home/substack/projects/module-deps/example/files/foo.js\",\"source\":\"var bar = require('./bar');\\n\\nmodule.exports = function (n) {\\n    return n * 111 + bar(n);\\n};\\n\",\"deps\":{\"./bar\":\"/home/substack/projects/module-deps/example/files/bar.js\"}}\n,\n{\"id\":\"/home/substack/projects/module-deps/example/files/bar.js\",\"source\":\"module.exports = function (n) {\\n    return n * 100;\\n};\\n\",\"deps\":{}}\n]\n```\n\nand you can feed this json data into\n[browser-pack](https://github.com/browserify/browser-pack):\n\n```bash\n$ node example/deps.js | browser-pack | node\nmain: 1055\n```\n\n# usage\n\n```\nusage: module-deps [files]\n\n  generate json output from each entry file\n\n```\n\n# methods\n\n``` js\nvar mdeps = require('module-deps')\n```\n\n## var d = mdeps(opts={})\n\nReturn an object transform stream `d` that expects entry filenames or\n`{ id: ..., file: ... }` objects as input and produces objects for every\ndependency from a recursive module traversal as output.\n\nEach file in `files` can be a string filename or a stream.\n\nOptionally pass in some `opts`:\n\n* `opts.transform` - a string or array of string transforms (see below)\n\n* `opts.transformKey` - an array path of strings showing where to look in the\npackage.json for source transformations. If falsy, don't look at the\npackage.json at all.\n\n* `opts.resolve` - custom resolve function using the\n`opts.resolve(id, parent, cb)` signature that\n[browser-resolve](https://github.com/shtylman/node-browser-resolve) has\n\n* `opts.detect` - a custom dependency detection function. `opts.detect(source)`\nshould return an array of dependency module names. By default\n[detective](https://github.com/browserify/detective) is used.\n\n* `opts.filter` - a function (id) to skip resolution of some module `id` strings.\nIf defined, `opts.filter(id)` should return truthy for all the ids to include\nand falsey for all the ids to skip.\n\n* `opts.postFilter` - a function (id, file, pkg) that gets called after `id` has\nbeen resolved. Return false to skip this file.\n\n* `opts.packageFilter` - transform the parsed package.json contents before using\nthe values. `opts.packageFilter(pkg, dir)` should return the new `pkg` object to\nuse.\n\n* `opts.noParse` - an array of absolute paths to not parse for dependencies. Use\nthis for large dependencies like jquery or threejs which take forever to parse.\n\n* `opts.cache` - an object mapping filenames to file objects to skip costly io\n\n* `opts.packageCache` - an object mapping filenames to their parent package.json\ncontents for browser fields, main entries, and transforms\n\n* `opts.fileCache` - an object mapping filenames to raw source to avoid reading\nfrom disk.\n\n* `opts.persistentCache` - a complex cache handler that allows async and persistent\n    caching of data. A `persistentCache` needs to follow this interface:\n    ```js\n    function persistentCache (\n        file, // the path to the file that is loaded\n        id,   // the id that is used to reference this file\n        pkg,  // the package that this file belongs to fallback\n        fallback, // async fallback handler to be called if the cache doesn't hold the given file \n        cb    // callback handler that receives the cache data\n    ) {\n        if (hasError()) {\n            return cb(error) // Pass any error to the callback\n        }\n\n        var fileData = fs.readFileSync(file)\n        var key = keyFromFile(file, fileData)\n\n        if (db.has(key)) {\n            return cb(null, {\n                source: db.get(key).toString(),\n                package: pkg, // The package for housekeeping\n                deps: {\n                    'id':  // id that is used to reference a required file\n                    'file' // file path to the required file\n                }\n            })\n        }\n        //\n        // The fallback will process the file in case the file is not\n        // in cache.\n        //\n        // Note that if your implementation doesn't need the file data\n        // then you can pass `null` instead of the source and the fallback will\n        // fetch the data by itself.\n        //\n        fallback(fileData, function (error, cacheableEntry) {\n            if (error) {\n                return cb(error)\n            }\n            db.addToCache(key, cacheableEntry)\n            cb(null, cacheableEntry)\n        })\n    }\n    ```\n\n* `opts.paths` - array of global paths to search. Defaults to splitting on `':'`\nin `process.env.NODE_PATH`\n\n* `opts.ignoreMissing` - ignore files that failed to resolve\n\n# input objects\n\nInput objects should be string filenames or objects with these parameters:\n\n* `row.file` - filename\n* `row.entry` - whether to treat this file as an entry point, defaults to\n  `true`. Set to `false` to include this file, but not run it automatically.\n* `row.expose` - name to be exposed as\n* `row.noparse` - when true, don't parse the file contents for dependencies\n\nor objects can specify transforms:\n\n* `row.transform` - string name, path, or function\n* `row.options` - transform options as an object\n* `row.global` - boolean, whether the transform is global\n\n# output objects\n\nOutput objects describe files with dependencies. They have these properties:\n\n* `row.id` - an identifier for the file, used in the `row.deps` prperty\n* `row.file` - path to the source file\n* `row.entry` - true if the file is an entry point\n* `row.expose` - name to be exposed as\n* `row.source` - source file content as a string\n* `row.deps` - object describing dependencies. The keys are strings as used\n  in `require()` calls in the file, and values are the row IDs (file paths)\n  of dependencies.\n\n# events\n\n## d.on('transform', function (tr, file) {})\n\nEvery time a transform is applied to a `file`, a `'transform'` event fires with\nthe instantiated transform stream `tr`.\n\n## d.on('file', function (file) {})\n\nEvery time a file is read, this event fires with the file path.\n\n## d.on('missing', function (id, parent) {})\n\nWhen `opts.ignoreMissing` is enabled, this event fires for each missing package.\n\n## d.on('package', function (pkg) {})\n\nEvery time a package is read, this event fires. The directory name of the\npackage is available in `pkg.__dirname`.\n\n# transforms\n\nmodule-deps can be configured to run source transformations on files before\nparsing them for `require()` calls. These transforms are useful if you want to\ncompile a language like [coffeescript](http://coffeescript.org/) on the fly or\nif you want to load static assets into your bundle by parsing the AST for\n`fs.readFileSync()` calls.\n\nIf the transform is a function, it should take the `file` name as an argument\nand return a through stream that will be written file contents and should output\nthe new transformed file contents.\n\nIf the transform is a string, it is treated as a module name that will resolve\nto a module that is expected to follow this format:\n\n``` js\nvar through = require('through2');\nmodule.exports = function (file, opts) { return through() };\n```\n\nYou don't necessarily need to use the\n[through2](https://github.com/rvagg/through2) module to create a\nreadable/writable filter stream for transforming file contents, but this is an\neasy way to do it.\n\nmodule-deps looks for `require()` calls and adds their arguments as dependencies\nof a file. Transform streams can emit `'dep'` events to include additional\ndependencies that are not consumed with `require()`.\n\nWhen you call `mdeps()` with an `opts.transform`, the transformations you\nspecify will not be run for any files in node_modules/. This is because modules\nyou include should be self-contained and not need to worry about guarding\nthemselves against transformations that may happen upstream.\n\nModules can apply their own transformations by setting a transformation pipeline\nin their package.json at the `opts.transformKey` path. These transformations\nonly apply to the files directly in the module itself, not to the module's\ndependants nor to its dependencies.\n\n## package.json transformKey\n\nTransform keys live at a configurable location in the package.json denoted by\nthe `opts.transformKey` array.\n\nFor a transformKey of `['foo','bar']`, the transformKey can be a single string\n(`\"fff\"`):\n\n``` json\n{\n  \"foo\": {\n    \"bar\": \"fff\"\n  }\n}\n```\n\nor an array of strings (`[\"fff\",\"ggg\"]`):\n\n``` json\n{\n  \"foo\": {\n    \"bar\": [\"fff\",\"ggg\"]\n  }\n}\n```\n\nIf you want to pass options to the transforms, you can use a 2-element array\ninside of the primary array. Here `fff` gets an options object with `{\"x\":3}`\nand `ggg` gets `{\"y\":4}`:\n\n``` json\n{\n  \"foo\": {\n    \"bar\": [[\"fff\",{\"x\":3}],[\"ggg\",{\"y\":4}]]\n  }\n}\n```\n\nOptions sent to the module-deps constructor are also provided under\n`opts._flags`. These options are sometimes required if your transform\nneeds to do something different when browserify is run in debug mode, for\nexample.\n\n# usage\n\n```\nmodule-deps [FILES] OPTIONS\n\n  Generate json output for the entry point FILES.\n\nOPTIONS are:\n\n  -t TRANSFORM  Apply a TRANSFORM.\n  -g TRANSFORM  Apply a global TRANSFORM.\n\n```\n\n# install\n\nWith [npm](http://npmjs.org), to get the module do:\n\n```\nnpm install module-deps\n```\n\nand to get the `module-deps` command do:\n\n```\nnpm install -g module-deps\n```\n\n# license\n\nMIT\n",
  "readmeFilename": "readme.markdown",
  "repository": {
    "type": "git",
    "url": "git://github.com/browserify/module-deps.git"
  },
  "scripts": {
    "test": "tap test/*.js"
  },
  "version": "6.2.0"
}
