{"bugs":{"url":"https://github.com/pnpm/supi/issues"},"dist":{"shasum":"d56228bbc3989c444766bd258c0e8f3f3a6ff43c","tarball":"https://registry.npmjs.org/supi/-/supi-0.15.0.tgz","fileCount":168,"integrity":"sha512-0BCOBT2ADxdojhy35ZV3idKq/E8bfib+0lJRLVGE/d+d6Tf63xiZfHhOJtxNBRNsaGl966awbEvgBSZJlHuFaQ==","signatures":[{"sig":"MEUCIBxB3lruCSXGL1Tjp+EDvIWfh5LZssrc2FKZZ9k2ukC1AiEAku1stQ6rl2F3MGM+GWjD1NiJroLjmyXnJ7ilKNSUUQQ=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":322674},"main":"lib/index.js","name":"supi","files":["lib/"],"author":{"url":"https://www.kochan.io/","name":"Zoltan Kochan","email":"z@kochan.io"},"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> Fast, disk space efficient installation engine. Used by [pnpm](https://github.com/pnpm/pnpm)\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## 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.shrinkwrap` - *Boolean* - `true` by default. When `false`, ignores the `shrinkwrap.yaml` file and doesn't create/update one.\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* `options.frozenShrinkwrap` - *Boolean* - `false` by default. When `true`, shrinkwrap file is not generated and installation fails if an update is needed.\n  With this option, a headless installation is performed. A headless installation is ~33% faster than a regular one because it skips\n  dependencies resolution and peers resolution.\n* `options.preferFrozenShrinkwrap` - *Boolean* - `false` by default. When `true`, a headless installation is performed if the shrinkwrap file\n  is up-to-date with the `package.json` file.\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(linkFromPkgs, linkToNodeModules, [options])`\n\nCreate symbolic links from the linked packages to the target package's `node_modules` (and its `node_modules/.bin`).\n\n**Arguments:**\n\n* `linkFromPkgs` - *String[]* - paths to the packages that should be linked.\n* `linkToNodeModules` - *String* - path to the dependent package's `node_modules` directory.\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(pkgNames, linkTo, options)`\n\nCreate symbolic links from the global `pkgName`s to the `linkTo/node_modules` folder.\n\n**Arguments:**\n\n* `pkgNames` - *String[]* - packages 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","engines":{"node":">=4"},"gitHead":"dd543f05711a9bb48284726acceb54d7c88be0f6","license":"MIT","scripts":{"tsc":"rimraf lib && tsc","info":"npm-scripts-info","lint":"tslint -c tslint.json --project .","test":"npm run lint && npm run lint-test && preview && npm run test:e2e","start":"npm run tsc -- --watch","commit":"commit","?commit":"echo 'Run Git commit wizard'","pretest":"rimraf ../.tmp/ && pnpm-registry-mock prepare","test:e2e":"npm-run-all -p -r pnpm-registry-mock test:tap","test:tap":"ts-node test","commitmsg":"commitlint -e","lint-test":"tslint -c tslint.json --project test","prepublishOnly":"npm run tsc","pnpm-registry-mock":"pnpm-registry-mock"},"typings":"lib/index.d.ts","_npmUser":{"name":"zkochan","email":"z@kochan.io"},"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"],"deprecated":"This package was renamed to @pnpm/core","repository":{"url":"git+https://github.com/pnpm/supi.git","type":"git"},"_npmVersion":"5.8.0","description":"Fast, disk space efficient installation engine","directories":{"test":"test"},"greenkeeper":{"ignore":["pnpm-default-reporter","pnpm-file-reporter","pnpm-install-checks","pnpm-logger","pnpm-registry-mock","remove-all-except-outer-links","pnpm-shrinkwrap"]},"maintainers":[{"name":"zkochan","email":"zoltan.kochan@gmail.com"}],"_nodeVersion":"9.10.1","dependencies":{"mz":"^2.7.0","execa":"^0.10.0","is-ci":"^1.0.10","ramda":"^0.25.0","semver":"^5.3.0","p-limit":"^1.1.0","p-filter":"^1.0.0","@types/mz":"^0.0.32","@types/rc":"^0.0.1","is-subdir":"^1.0.1","write-pkg":"^3.1.0","@types/npm":"^2.0.28","os-homedir":"^1.0.2","@pnpm/types":"^1.7.0","@types/node":"^9.3.0","@types/nopt":"^3.0.29","common-tags":"^1.4.0","graceful-fs":"^4.1.11","path-exists":"^3.0.0","rimraf-then":"^1.0.1","symlink-dir":"^1.1.0","@types/ramda":"^0.25.8","@types/byline":"^4.2.31","@types/semver":"^5.3.30","is-inner-link":"^2.0.0","package-store":"^0.18.0","path-absolute":"^1.0.0","@pnpm/headless":"^0.1.7","load-json-file":"^4.0.0","mkdirp-promise":"^5.0.1","normalize-path":"^2.1.1","replace-string":"^1.1.0","util.promisify":"^1.0.0","@pnpm/fs-locker":"^1.0.0","@pnpm/lifecycle":"^1.0.1","@pnpm/link-bins":"^1.0.1","@types/p-series":"^1.0.0","dependency-path":"^1.2.0","encode-registry":"^1.0.0","graph-sequencer":"^2.0.0","pnpm-shrinkwrap":"^6.2.3","read-package-json":"^2.0.5","@pnpm/modules-yaml":"^1.0.0","@pnpm/package-bins":"^1.0.0","@types/common-tags":"^1.2.5","@pnpm/check-package":"^1.0.0","@pnpm/resolver-base":"^1.0.0","get-npm-tarball-url":"^2.0.0","pnpm-install-checks":"^1.1.0","resolve-link-target":"^1.0.1","@types/load-json-file":"^2.0.5","version-selector-type":"^2.0.0","normalize-registry-url":"^1.0.0","@pnpm/package-requester":"^0.8.3","@pnpm/pkgid-to-filename":"^1.0.0","@zkochan/npm-package-arg":"^1.0.0","validate-npm-package-name":"^3.0.0","remove-all-except-outer-links":"^1.0.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"caw":"^2.0.0","ncp":"^2.0.0","tape":"^4.8.0","sepia":"^2.0.2","sinon":"^5.0.0","mkdirp":"^0.5.1","rimraf":"^2.6.2","tslint":"^5.4.2","ts-node":"^5.0.1","read-pkg":"^3.0.0","path-name":"^1.0.0","is-windows":"^1.0.2","typescript":"^2.7.1","@types/tape":"^4.2.30","cross-spawn":"^6.0.5","exists-link":"^2.0.0","npm-run-all":"^4.0.1","@pnpm/logger":"^1.0.0","@types/sinon":"^4.1.2","tape-promise":"^2.0.1","@types/mkdirp":"^0.5.1","@zkochan/husky":"^0.0.0","load-yaml-file":"^0.1.0","@commitlint/cli":"^6.1.3","package-preview":"^1.0.0","write-json-file":"^2.2.0","write-yaml-file":"^1.0.1","@pnpm/store-path":"^1.0.0","deep-require-cwd":"^1.0.0","npm-scripts-info":"^0.3.6","pnpm-registry-mock":"^1.21.0","@pnpm/assert-project":"^1.1.2","@pnpm/default-fetcher":"^0.4.0","@commitlint/prompt-cli":"^6.1.3","@pnpm/default-resolver":"^0.1.4","anonymous-npm-registry-client":"^0.1.2","@commitlint/config-conventional":"^6.1.3"},"peerDependencies":{"@pnpm/logger":"^1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/supi_0.15.0_1522700029553_0.35981395061291677","host":"s3://npm-registry-packages"},"_id":"supi@0.15.0","version":"0.15.0"}