{
  "_args": [
    [
      {
        "raw": "supi@^0.12.5",
        "scope": null,
        "escapedName": "supi",
        "name": "supi",
        "rawSpec": "^0.12.5",
        "spec": ">=0.12.5 <0.13.0",
        "type": "range"
      },
      "/home/zkochan/src/pnpm/pnpm"
    ]
  ],
  "_from": "supi@>=0.12.5 <0.13.0",
  "_id": "supi@0.12.5",
  "_inCache": true,
  "_location": "/supi",
  "_nodeVersion": "6.11.4",
  "_npmOperationalInternal": {
    "host": "s3://npm-registry-packages",
    "tmp": "tmp/supi-0.12.5.tgz_1517355203644_0.6436914384830743"
  },
  "_npmUser": {
    "name": "zkochan",
    "email": "z@kochan.io"
  },
  "_npmVersion": "5.6.0",
  "_phantomChildren": {
    "@pnpm/types": "1.7.0",
    "@types/write-json-file": "2.2.1",
    "byline": "5.0.0",
    "delay": "2.0.0",
    "graceful-fs": "4.1.11",
    "is-windows": "1.0.1",
    "load-json-file": "4.0.0",
    "mkdirp-promise": "5.0.1",
    "p-limit": "1.2.0",
    "ramda": "0.25.0",
    "retry": "0.10.1",
    "signal-exit": "3.0.2",
    "util.promisify": "1.0.0",
    "write-json-file": "2.3.0"
  },
  "_requested": {
    "raw": "supi@^0.12.5",
    "scope": null,
    "escapedName": "supi",
    "name": "supi",
    "rawSpec": "^0.12.5",
    "spec": ">=0.12.5 <0.13.0",
    "type": "range"
  },
  "_requiredBy": [
    "/"
  ],
  "_resolved": "https://registry.npmjs.org/supi/-/supi-0.12.5.tgz",
  "_shasum": "d223b7213a3d497c81763fb1676b65488cd231d6",
  "_shrinkwrap": null,
  "_spec": "supi@^0.12.5",
  "_where": "/home/zkochan/src/pnpm/pnpm",
  "author": {
    "name": "Zoltan Kochan",
    "email": "z@kochan.io",
    "url": "https://www.kochan.io/"
  },
  "bugs": {
    "url": "https://github.com/pnpm/supi/issues"
  },
  "dependencies": {
    "@pnpm/check-package": "^1.0.0",
    "@pnpm/fs-locker": "^1.0.0",
    "@pnpm/package-requester": "^0.7.3",
    "@pnpm/pkgid-to-filename": "^1.0.0",
    "@pnpm/types": "^1.7.0",
    "@types/byline": "^4.2.31",
    "@types/common-tags": "^1.2.5",
    "@types/load-json-file": "^2.0.5",
    "@types/mz": "^0.0.32",
    "@types/node": "^9.3.0",
    "@types/nopt": "^3.0.29",
    "@types/npm": "^2.0.28",
    "@types/p-series": "^1.0.0",
    "@types/ramda": "^0.25.8",
    "@types/rc": "^0.0.1",
    "@types/semver": "^5.3.30",
    "@types/update-notifier": "^1.0.0",
    "@zkochan/cmd-shim": "^2.2.4",
    "@zkochan/npm-package-arg": "^1.0.0",
    "arr-flatten": "^1.0.1",
    "byline": "^5.0.0",
    "common-tags": "^1.4.0",
    "cross-spawn": "^5.0.0",
    "dependency-path": "^1.2.0",
    "encode-registry": "^1.0.0",
    "execa": "^0.9.0",
    "get-npm-tarball-url": "^2.0.0",
    "graceful-fs": "^4.1.11",
    "is-ci": "^1.0.10",
    "is-inner-link": "^2.0.0",
    "is-subdir": "^1.0.1",
    "is-windows": "^1.0.0",
    "load-json-file": "^4.0.0",
    "load-yaml-file": "^0.1.0",
    "mkdirp-promise": "^5.0.1",
    "mz": "^2.7.0",
    "normalize-path": "^2.1.1",
    "normalize-registry-url": "^1.0.0",
    "npm-lifecycle": "^2.0.0",
    "os-homedir": "^1.0.2",
    "p-filter": "^1.0.0",
    "p-limit": "^1.1.0",
    "p-series": "^1.0.0",
    "package-store": "^0.15.3",
    "path-absolute": "^1.0.0",
    "path-exists": "^3.0.0",
    "path-name": "^1.0.0",
    "pnpm-install-checks": "^1.1.0",
    "pnpm-shrinkwrap": "^5.1.2",
    "ramda": "^0.25.0",
    "read-package-json": "^2.0.5",
    "remove-all-except-outer-links": "^1.0.0",
    "replace-string": "^1.1.0",
    "rimraf-then": "^1.0.1",
    "semver": "^5.3.0",
    "symlink-dir": "^1.1.0",
    "util.promisify": "^1.0.0",
    "validate-npm-package-name": "^3.0.0",
    "version-selector-type": "^2.0.0",
    "write-pkg": "^3.1.0",
    "write-yaml-file": "^1.0.0"
  },
  "description": "Fast, disk space efficient installation engine",
  "devDependencies": {
    "@commitlint/cli": "^4.2.0",
    "@commitlint/config-angular": "^4.2.0",
    "@commitlint/prompt-cli": "^4.2.0",
    "@pnpm/default-fetcher": "^0.3.1",
    "@pnpm/default-resolver": "^0.1.1",
    "@pnpm/logger": "^1.0.0",
    "@types/mkdirp": "^0.5.1",
    "@types/sinon": "^4.1.2",
    "@types/tape": "^4.2.30",
    "@zkochan/husky": "^0.0.0",
    "anonymous-npm-registry-client": "^0.1.2",
    "caw": "^2.0.0",
    "deep-require-cwd": "^1.0.0",
    "exists-link": "^2.0.0",
    "isexe": "^2.0.0",
    "mkdirp": "^0.5.1",
    "ncp": "^2.0.0",
    "npm-run-all": "^4.0.1",
    "npm-scripts-info": "^0.3.6",
    "package-preview": "^1.0.0",
    "pnpm-registry-mock": "^1.17.0",
    "read-pkg": "^3.0.0",
    "rimraf": "^2.6.2",
    "sepia": "^2.0.2",
    "sinon": "^4.1.3",
    "tape": "^4.8.0",
    "tape-promise": "^2.0.1",
    "ts-node": "^4.0.1",
    "tslint": "^5.4.2",
    "typescript": "^2.6.1",
    "write-json-file": "^2.2.0"
  },
  "directories": {
    "test": "test"
  },
  "dist": {
    "integrity": "sha512-AFHV/TiBu7RBQkVnAmuRyOjDtCL+SIijg9WYb7RGeBGvGALr74ESspfYltN+EA8vDdeBa2qRVh6T0pooy+t0+Q==",
    "shasum": "d223b7213a3d497c81763fb1676b65488cd231d6",
    "tarball": "https://registry.npmjs.org/supi/-/supi-0.12.5.tgz"
  },
  "engines": {
    "node": ">=4"
  },
  "files": [
    "lib/"
  ],
  "gitHead": "0473c469eec50f32b989b3ccbaadec79f7cbd1a1",
  "greenkeeper": {
    "ignore": [
      "pnpm-default-reporter",
      "pnpm-file-reporter",
      "pnpm-install-checks",
      "pnpm-logger",
      "pnpm-registry-mock",
      "remove-all-except-outer-links",
      "pnpm-shrinkwrap"
    ]
  },
  "homepage": "https://pnpm.js.org",
  "keywords": [
    "dependency manager",
    "install",
    "installer",
    "uninstall",
    "remove",
    "link",
    "prune",
    "shrinkwrap",
    "lockfile",
    "fast",
    "rapid",
    "efficient",
    "package.json",
    "packages",
    "dependencies",
    "symlinks",
    "hardlinks",
    "modules",
    "npm",
    "package manager"
  ],
  "license": "MIT",
  "main": "lib/index.js",
  "maintainers": [
    {
      "name": "zkochan",
      "email": "zoltan.kochan@gmail.com"
    }
  ],
  "name": "supi",
  "optionalDependencies": {},
  "peerDependencies": {
    "@pnpm/logger": "^1.0.0"
  },
  "readme": "<p align=\"center\">\n  <img alt=\"supi - pnpm's installation engine\" src=\"https://cdn.rawgit.com/pnpm/supi/master/logo.svg\" width=\"200\">\n</p>\n\n# supi\n\n[![Status](https://travis-ci.org/pnpm/supi.svg?branch=master)](https://travis-ci.org/pnpm/supi \"See test builds\")\n[![Windows build status](https://ci.appveyor.com/api/projects/status/18j52s5bdd71pjy5/branch/master?svg=true)](https://ci.appveyor.com/project/zkochan/supi/branch/master)\n\n> Fast, disk space efficient installation engine. Used by [pnpm](https://github.com/pnpm/pnpm)\n\n## Install\n\nInstall it via npm.\n\n```\nnpm install supi\n```\n\nIt also depends on `@pnpm/logger` version `1`, so install it as well via:\n\n```\nnpm install @pnpm/logger@1\n```\n\n## API\n\n### `supi.installPkgs(pkgsToInstall, [options])`\n\nInstall packages.\n\n**Arguments:**\n\n* `pkgsToInstall` - *Object | String[]* - either an object that maps package names to version ranges or inputs usually passed to `npm install` (e.g., `foo@1.0.0`, `foo`).\n* `options.storeController` - *Object* - required. An object that does all the manipulations with the store.\n* `options.store` - *String* - required. Location of the store.\n* `options.saveProd` - *Boolean* - package will appear in `dependencies`.\n* `options.saveDev` - *Boolean* - package will appear in `devDependencies`.\n* `options.saveOptional` - *Boolean* - package will appear in `optionalDependencies`.\n* `options.saveExact` - *Boolean* - saved dependencies will be configured with an exact version rather than using npm's default semver range operator.\n* `options.global` - *Boolean* - the packages will be installed globally rather than locally.\n* `options.prefix` - *String* - the directory in which the installation will be performed. By default the `process.cwd()` value is used.\n* `options.reporter` - *Function* - A function that listens for logs.\n* `options.packageManager` - *Object* - The `package.json` of the package manager.\n* `options.hooks` - *Object* - A property that contains installation hooks. Hooks are [documented separately](#hooks).\n* `options.shrinkwrapOnly` - *Boolean* - `false` by default. When `true`, only updates `shrinkwrap.yaml` and `package.json` instead of checking `node_modules` and downloading dependencies.\n\n**Returns:** a Promise\n\n**Example:**\n\n```js\nconst pnpm = require('pnpm')\n\npnpm.installPkgs({\n  'is-positive': '1.0.0',\n  'hello-world': '^2.3.1'\n}, { saveDev: true })\n```\n\n### `supi.install([options])`\n\nInstall all modules listed as dependencies in `package.json`.\n\n**Arguments:** (same as in named install and additionally)\n\n* `options.production` - *Boolean* - `true` by default. If `true`, packages listed in `dependencies` will be installed.\n* `options.development` - *Boolean* - `true` by default. If `true`, packages listed in `devDependencies` will be installed.\n* `options.optional` - *Boolean* - Has the value of `options.production` by default. If `true`, packages listed in `optionalDependencies` will be installed.\n  Can be `true` only when `options.production` is `true` as well.\n\n### `supi.uninstall(pkgsToUninstall, [options])`\n\nUninstalls a package, completely removing everything pnpm installed on its behalf.\n\n**Arguments:**\n\n* `pkgsToUninstall` - *String[]* - the package names to be uninstalled.\n* `options.saveProd` - *Boolean* - the package will be removed from `dependencies`.\n* `options.saveDev` - *Boolean* - the package will be removed from `devDependencies`.\n* `options.saveOptional` - *Boolean* - the package will be removed from `optionalDependencies`.\n* `options.global` - *Boolean* - the packages will be uninstalled globally.\n* `options.reporter` - *Function* - A function that listens for logs.\n\n### `supi.link(linkFrom, lintTo, [options])`\n\nCreate a symbolic link from the linked package to the target package's `node_modules` (and its `node_modules/.bin`).\n\n**Arguments:**\n\n* `linkFrom` - *String* - path to the package that should be linked.\n* `lintTo` - *String* - path to the dependent package.\n* `options.reporter` - *Function* - A function that listens for logs.\n\n### `supi.linkToGlobal(linkFrom, options)`\n\nCreate a symbolic link from the specified package to the global `node_modules`.\n\n**Arguments:**\n\n* `linkFrom` - *String* - path to the package that should be linked.\n* `globalPrefix` - *String* - path to the global directory.\n* `options.reporter` - *Function* - A function that listens for logs.\n\n### `supi.linkFromGlobal(pkgName, linkTo, options)`\n\nCreate a symbolic link from the global `pkgName` to the `linkTo/node_modules` folder.\n\n**Arguments:**\n\n* `pkgName` - *String* - package to link.\n* `linkTo` - *String* - package to link to.\n* `globalPrefix` - *String* - path to the global directory.\n* `options.reporter` - *Function* - A function that listens for logs.\n\n### `supi.unlink([options])`\n\nUnlinks all packages that were linked during development in a project. If the linked package is in `package.json` of the project,\nit is installed after unlinking.\n\n**Arguments:**\n\n* `options.prefix` - *String* - by default `process.cwd()`. Path to the project.\n* `options.reporter` - *Function* - A function that listens for logs.\n\n### `supi.unlinkPkgs(pkgsToUnlink, [options])`\n\nUnlinks the listed packages that were linked during development in a project. If the linked package is in `package.json` of the project,\nit is installed after unlinking.\n\n**Arguments:**\n\n* `pkgsToUnlink` - *String[]* - the list of packages that have to be unlinked. If the passed in package is not an external link, then a warning is reported.\n* `options.prefix` - *String* - by default `process.cwd()`. Path to the project.\n* `options.reporter` - *Function* - A function that listens for logs.\n\n### `supi.prune([options])`\n\nRemove extraneous packages. Extraneous packages are packages that are not listed on the parent package's dependencies list.\n\n**Arguments:**\n\n* `options.production` - *Boolean* - by default `false`. If this property is `true`, prune will remove the packages specified in `devDependencies`.\n* `options.prefix` - *String* - by default `process.cwd()`.\n* `options.reporter` - *Function* - A function that listens for logs.\n\n### `supi.storeStatus([options])`\n\nReturn the list of modified dependencies.\n\n**Arguments:**\n\n* `options.reporter` - *Function* - A function that listens for logs.\n\n**Returns:** `Promise<string[]>` - the paths to the modified packages of the current project. The paths contain the location of packages in the store,\nnot in the projects `node_modules` folder.\n\n### `supi.storePrune([options])`\n\nRemove unreferenced packages from the store.\n\n## Hooks\n\nHooks are functions that can step into the installation process.\n\n### `readPackage(pkg)`\n\nThis hook is called with every dependency's manifest information.\nThe modified manifest returned by this hook is then used by supi during installation.\n\n**Example:**\n\n```js\nconst supi = require('supi')\n\nsupi.installPkgs({\n  hooks: {readPackage}\n})\n\nfunction readPackage (pkg) {\n  if (pkg.name === 'foo') {\n    pkg.dependencies = {\n      bar: '^2.0.0',\n    }\n  }\n  return pkg\n}\n```\n\n## Acknowledgements\n\nThanks to [Valentina Kozlova](https://github.com/ValentinaKozlova) for the supi logo\n\n## License\n\n[MIT](LICENSE)\n",
  "readmeFilename": "README.md",
  "repository": {
    "type": "git",
    "url": "git+https://github.com/pnpm/supi.git"
  },
  "scripts": {
    "?commit": "echo 'Run Git commit wizard'",
    "commit": "commit",
    "commitmsg": "commitlint -e",
    "info": "npm-scripts-info",
    "lint": "tslint -c tslint.json --project .",
    "pnpm-registry-mock": "pnpm-registry-mock",
    "prepublishOnly": "npm run tsc",
    "pretest": "rimraf ../.tmp/ && pnpm-registry-mock prepare",
    "start": "npm run tsc -- --watch",
    "test": "npm run lint && preview && npm run test:e2e",
    "test:e2e": "npm-run-all -p -r pnpm-registry-mock test:tap",
    "test:tap": "ts-node test",
    "tsc": "rimraf lib && tsc"
  },
  "typings": "lib/index.d.ts",
  "version": "0.12.5"
}
