@zkochan/pnpm
Version:
Fast, disk space efficient package manager
244 lines (243 loc) • 15.8 kB
JSON
{
"_args": [
[
{
"raw": "supi@0.24.8",
"scope": null,
"escapedName": "supi",
"name": "supi",
"rawSpec": "0.24.8",
"spec": "0.24.8",
"type": "version"
},
"/home/zkochan/src/pnpm/packages/pnpm"
]
],
"_from": "supi@0.24.8",
"_hasShrinkwrap": false,
"_id": "supi@0.24.8",
"_location": "/supi",
"_nodeVersion": "9.10.1",
"_npmOperationalInternal": {
"host": "s3://npm-registry-packages",
"tmp": "tmp/supi_0.24.8_1536528090704_0.004911157188303594"
},
"_npmUser": {
"name": "zkochan",
"email": "z@kochan.io"
},
"_npmVersion": "6.4.1",
"_phantomChildren": {},
"_requested": {
"raw": "supi@0.24.8",
"scope": null,
"escapedName": "supi",
"name": "supi",
"rawSpec": "0.24.8",
"spec": "0.24.8",
"type": "version"
},
"_requiredBy": [
"/"
],
"_resolved": "https://registry.npmjs.org/supi/-/supi-0.24.8.tgz",
"_shasum": "73961d76958b3f0c4764f8784bda57e80114b73e",
"_shrinkwrap": null,
"_spec": "supi@0.24.8",
"_where": "/home/zkochan/src/pnpm/packages/pnpm",
"author": {
"name": "Zoltan Kochan",
"email": "z@kochan.io",
"url": "https://www.kochan.io/"
},
"bugs": {
"url": "https://github.com/pnpm/pnpm/issues"
},
"dependencies": {
"@pnpm/check-package": "2.0.0",
"@pnpm/fs-locker": "1.0.2",
"@pnpm/headless": "0.6.5",
"@pnpm/lifecycle": "3.0.1",
"@pnpm/link-bins": "3.0.0",
"@pnpm/modules-yaml": "1.0.0",
"@pnpm/package-requester": "4.1.3",
"@pnpm/pkgid-to-filename": "2.0.0",
"@pnpm/read-package-json": "1.0.0",
"@pnpm/resolver-base": "1.2.0",
"@pnpm/types": "^1.7.0",
"@pnpm/utils": "0.6.4",
"@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": "^10.0.6",
"@types/nopt": "^3.0.29",
"@types/npm": "^2.0.28",
"@types/p-series": "^1.0.0",
"@types/ramda": "0.25.34",
"@types/rc": "^0.0.1",
"@types/semver": "^5.3.30",
"@zkochan/npm-package-arg": "1.0.0",
"common-tags": "1.8.0",
"dependency-path": "2.0.0",
"encode-registry": "1.1.0",
"execa": "1.0.0",
"get-npm-tarball-url": "2.0.1",
"graceful-fs": "4.1.11",
"graph-sequencer": "2.0.0",
"import-from": "2.1.0",
"is-ci": "1.2.1",
"is-inner-link": "2.0.2",
"is-subdir": "1.0.2",
"load-json-file": "5.0.0",
"mkdirp-promise": "5.0.1",
"mz": "2.7.0",
"normalize-path": "3.0.0",
"normalize-registry-url": "1.0.0",
"os-homedir": "1.0.2",
"p-filter": "1.0.0",
"p-limit": "2.0.0",
"package-store": "0.23.3",
"path-absolute": "1.0.0",
"path-exists": "3.0.0",
"pnpm-install-checks": "1.1.0",
"pnpm-shrinkwrap": "7.0.2",
"ramda": "0.25.0",
"remove-all-except-outer-links": "1.0.3",
"replace-string": "1.1.0",
"resolve-link-target": "1.0.1",
"rimraf-then": "1.0.1",
"semver": "5.5.1",
"symlink-dir": "1.1.3",
"util.promisify": "1.0.0",
"validate-npm-package-name": "3.0.0",
"version-selector-type": "2.0.0",
"write-pkg": "3.2.0"
},
"description": "Fast, disk space efficient installation engine",
"devDependencies": {
"@pnpm/assert-project": "^1.1.2",
"@pnpm/default-fetcher": "^2.0.0",
"@pnpm/default-resolver": "^2.0.0",
"@pnpm/logger": "^2.1.0",
"@pnpm/store-path": "^1.0.0",
"@types/is-windows": "^0.2.0",
"@types/mkdirp": "^0.5.1",
"@types/sinon": "^5.0.0",
"@types/tape": "^4.2.30",
"anonymous-npm-registry-client": "^0.1.2",
"caw": "^2.0.0",
"cross-spawn": "^6.0.5",
"deep-require-cwd": "^1.0.0",
"exists-link": "^2.0.0",
"is-windows": "^1.0.2",
"load-yaml-file": "^0.1.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",
"path-name": "^1.0.0",
"pnpm-registry-mock": "^2.2.0",
"read-pkg": "^4.0.0",
"rimraf": "^2.6.2",
"sepia": "^2.0.2",
"sinon": "^6.0.0",
"tape": "^4.8.0",
"tape-promise": "^3.0.0",
"ts-node": "^6.2.0",
"tslint": "^5.4.2",
"typescript": "^3.0.0",
"write-json-file": "^3.0.0",
"write-yaml-file": "^1.0.1"
},
"directories": {
"test": "test"
},
"dist": {
"integrity": "sha512-uyveoi1z6IIib2Idz8fTYlxmxlXECRbcXZKoFYeSKZdKvihYLJcKgUaP8GmMy+whlur3REHd+fXZu4QuQkPoXg==",
"shasum": "73961d76958b3f0c4764f8784bda57e80114b73e",
"tarball": "https://registry.npmjs.org/supi/-/supi-0.24.8.tgz",
"fileCount": 147,
"unpackedSize": 344495,
"npm-signature": "-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJblY7bCRA9TVsSAnZWagAA9OYP+gLE4PnC8VnvgH4pKacS\nWvMIZ3h8Tnm4CbMYv7nfhDdbmYp6Fa4XY8/D0kIE+tMAkezAZyNuGhvpncI+\nD1UhaE0+s3PWnXrqqjjfJTo/ddPIRcIMH+IJqYGlJNWywAtpG909Vrbv2Wyg\noQOId5Fsxry5YZI83Y2OGijGIlJ8xu+vGWF52bK0fmE8g/X8A4P7/plZSN64\nBjsxzWePIP0cMAS7Tme+fB+FG2jHwx7y8wqUxN1Be8NZX/sWU0ZWlOrnGCpV\n6WRMIxAYnlH+XVkPDx8pwKck/cBirwgwM2odDdOJLP0HDPXT8TdNUruwGKOt\nItkl2RNnosO7Oh2ZFlgDARrOKYOOKoX+/UnUC7k2AG5TUt1A4VlZC5lmrk+C\nk2QWKV71yOrxTv+WiS89ZhtvZ0O1eEXG+FEQNgitHKMSbWRTp6bdtGa0BzN+\nWzFYLvz5rvtwA4YrQVubplcHdOXBbQ4l7zaoG6vuwfWSH/bgOIiqTI2knKKi\nPnL0RY+MjmReAf+9jLlyyIThAS4BQRiB/WxUmOgignZwJjilpGd74fmSL8b7\ntFjSC+FGS2zLSNXFS/gwHTAeWquLkA3lgIikcp2Gyftxw5ogOnVjYptEh4bX\njqo5OLSPzb6JBFMp/sbTPbZ1r33c7BK8NA/eOhckNN/43u1I3ELT3Z67WxwF\nXp9N\r\n=KS+1\r\n-----END PGP SIGNATURE-----\r\n"
},
"engines": {
"node": ">=6"
},
"files": [
"lib/"
],
"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": "^2.1.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> 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.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* `options.allowNew` - *Boolean* - `true` by default. When `true`, packages that are not yet in `package.json` may be installed.\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* - `true` by default. When `true`, a headless installation is performed if the shrinkwrap file\n is up-to-date with the `package.json` file.\n* `options.ownLifecycleHooksStdio` - *'inherit' | 'pipe'* - the stdio of the project's lifecycle hooks. Does not affect the stdio of the dependencies' hooks.\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### `afterAllResolved(shr: Shrinkwrap): Shrinkwrap`\n\nThis hook is called after all dependencies are resolved. It recieves and returns the resolved shrinkwrap object.\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": "https://github.com/pnpm/pnpm/blob/master/packages/supi"
},
"scripts": {
"?commit": "echo 'Run Git commit wizard'",
"commit": "commit",
"commitmsg": "commitlint -e",
"info": "npm-scripts-info",
"lint": "tslint -c tslint.json --project .",
"lint-test": "tslint -c tslint.json --project test",
"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 && npm run lint-test && npm run tsc && pnpm link . && npm run test:e2e",
"test-with-preview": "npm run lint && npm run lint-test && 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.24.8"
}