diff --git a/.changeset/curvy-socks-press.md b/.changeset/curvy-socks-press.md new file mode 100644 index 00000000000..183f643954d --- /dev/null +++ b/.changeset/curvy-socks-press.md @@ -0,0 +1,5 @@ +--- +"@pnpm/hooks.read-package-hook": major +--- + +First release. diff --git a/packages/core/package.json b/packages/core/package.json index 5025b5cf72f..d17cf1918df 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -26,6 +26,7 @@ "@pnpm/graph-sequencer": "1.0.0", "@pnpm/headless": "workspace:*", "@pnpm/hoist": "workspace:*", + "@pnpm/hooks.read-package-hook": "workspace:*", "@pnpm/lifecycle": "workspace:*", "@pnpm/link-bins": "workspace:*", "@pnpm/lockfile-file": "workspace:*", @@ -39,7 +40,6 @@ "@pnpm/normalize-registries": "workspace:*", "@pnpm/npm-package-arg": "^1.0.0", "@pnpm/package-requester": "workspace:*", - "@pnpm/parse-overrides": "workspace:*", "@pnpm/parse-wanted-dependency": "workspace:*", "@pnpm/prune-lockfile": "workspace:*", "@pnpm/read-modules-dir": "workspace:*", @@ -52,7 +52,6 @@ "@pnpm/symlink-dependency": "workspace:*", "@pnpm/types": "workspace:*", "@pnpm/which-version-is-pinned": "workspace:*", - "@yarnpkg/extensions": "1.2.0-rc.1", "@zkochan/rimraf": "^2.1.2", "dependency-path": "workspace:*", "is-inner-link": "^4.0.0", diff --git a/packages/core/src/getPeerDependencyIssues.ts b/packages/core/src/getPeerDependencyIssues.ts index 9cdc6203c05..c9aa91b6313 100644 --- a/packages/core/src/getPeerDependencyIssues.ts +++ b/packages/core/src/getPeerDependencyIssues.ts @@ -1,7 +1,7 @@ import resolveDependencies, { getWantedDependencies } from '@pnpm/resolve-dependencies' import { PeerDependencyIssuesByProjects } from '@pnpm/types' import getContext, { GetContextOptions, ProjectOptions } from '@pnpm/get-context' -import { createReadPackageHook } from './install/createReadPackageHook' +import { createReadPackageHook } from '@pnpm/hooks.read-package-hook' import { getPreferredVersionsFromLockfile } from './install/getPreferredVersions' import { InstallOptions } from './install/extendInstallOptions' import { DEFAULT_REGISTRIES } from '@pnpm/normalize-registries' diff --git a/packages/core/src/install/extendInstallOptions.ts b/packages/core/src/install/extendInstallOptions.ts index 48eed14566c..413158d988d 100644 --- a/packages/core/src/install/extendInstallOptions.ts +++ b/packages/core/src/install/extendInstallOptions.ts @@ -1,6 +1,7 @@ import { WANTED_LOCKFILE } from '@pnpm/constants' import PnpmError from '@pnpm/error' import { HoistingLimits } from '@pnpm/headless' +import { createReadPackageHook } from '@pnpm/hooks.read-package-hook' import { Lockfile } from '@pnpm/lockfile-file' import { IncludedDependencies } from '@pnpm/modules-yaml' import normalizeRegistries, { DEFAULT_REGISTRIES } from '@pnpm/normalize-registries' @@ -15,7 +16,6 @@ import { } from '@pnpm/types' import pnpmPkgJson from '../pnpmPkgJson' import { ReporterFunction } from '../types' -import { createReadPackageHook } from './createReadPackageHook' import { PreResolutionHookContext } from './hooks' export interface StrictInstallOptions { diff --git a/packages/core/tsconfig.json b/packages/core/tsconfig.json index a20f883a99d..024996f28a4 100644 --- a/packages/core/tsconfig.json +++ b/packages/core/tsconfig.json @@ -63,6 +63,9 @@ { "path": "../hoist" }, + { + "path": "../hooks.read-package-hook" + }, { "path": "../lifecycle" }, @@ -102,9 +105,6 @@ { "path": "../package-store" }, - { - "path": "../parse-overrides" - }, { "path": "../parse-wanted-dependency" }, diff --git a/packages/hooks.read-package-hook/README.md b/packages/hooks.read-package-hook/README.md new file mode 100644 index 00000000000..8ba8b3926e4 --- /dev/null +++ b/packages/hooks.read-package-hook/README.md @@ -0,0 +1,13 @@ +# @pnpm/hooks.read-package-hook + +> Creates the default package reader hook used by pnpm + +## Installation + +```sh +pnpm add @pnpm/hooks.read-package-hook +``` + +## License + +MIT diff --git a/packages/hooks.read-package-hook/jest.config.js b/packages/hooks.read-package-hook/jest.config.js new file mode 100644 index 00000000000..9b65513eba2 --- /dev/null +++ b/packages/hooks.read-package-hook/jest.config.js @@ -0,0 +1,3 @@ +const config = require('../../jest.config.js'); + +module.exports = Object.assign({}, config, {}); diff --git a/packages/hooks.read-package-hook/package.json b/packages/hooks.read-package-hook/package.json new file mode 100644 index 00000000000..87762e20f8a --- /dev/null +++ b/packages/hooks.read-package-hook/package.json @@ -0,0 +1,51 @@ +{ + "name": "@pnpm/hooks.read-package-hook", + "version": "0.0.0", + "description": "Creates the default package reader hook used by pnpm", + "main": "lib/index.js", + "types": "lib/index.d.ts", + "files": [ + "lib", + "!*.map" + ], + "scripts": { + "lint": "eslint src/**/*.ts test/**/*.ts", + "_test": "jest", + "test": "pnpm run compile && pnpm run _test", + "prepublishOnly": "pnpm run compile", + "compile": "tsc --build && pnpm run lint --fix" + }, + "repository": "https://github.com/pnpm/pnpm/blob/main/packages/hooks.read-package-hook", + "keywords": [ + "pnpm7" + ], + "engines": { + "node": ">=14.6" + }, + "license": "MIT", + "bugs": { + "url": "https://github.com/pnpm/pnpm/issues" + }, + "homepage": "https://github.com/pnpm/pnpm/blob/main/packages/hooks.read-package-hook#readme", + "dependencies": { + "@pnpm/matcher": "workspace:*", + "@pnpm/parse-overrides": "workspace:*", + "@pnpm/parse-wanted-dependency": "workspace:*", + "@pnpm/types": "workspace:*", + "@yarnpkg/extensions": "1.2.0-rc.1", + "normalize-path": "^3.0.0", + "ramda": "npm:@pnpm/ramda@0.28.1", + "semver": "^7.3.7" + }, + "devDependencies": { + "@pnpm/hooks.read-package-hook": "workspace:*", + "@types/normalize-path": "^3.0.0", + "@types/ramda": "0.28.15", + "@types/semver": "7.3.10", + "@yarnpkg/core": "4.0.0-rc.14" + }, + "funding": "https://opencollective.com/pnpm", + "exports": { + ".": "./lib/index.js" + } +} diff --git a/packages/core/src/install/createPackageExtender.ts b/packages/hooks.read-package-hook/src/createPackageExtender.ts similarity index 100% rename from packages/core/src/install/createPackageExtender.ts rename to packages/hooks.read-package-hook/src/createPackageExtender.ts diff --git a/packages/core/src/install/createPeerDependencyPatcher.ts b/packages/hooks.read-package-hook/src/createPeerDependencyPatcher.ts similarity index 100% rename from packages/core/src/install/createPeerDependencyPatcher.ts rename to packages/hooks.read-package-hook/src/createPeerDependencyPatcher.ts diff --git a/packages/core/src/install/createReadPackageHook.ts b/packages/hooks.read-package-hook/src/createReadPackageHook.ts similarity index 100% rename from packages/core/src/install/createReadPackageHook.ts rename to packages/hooks.read-package-hook/src/createReadPackageHook.ts diff --git a/packages/core/src/install/createVersionsOverrider.ts b/packages/hooks.read-package-hook/src/createVersionsOverrider.ts similarity index 100% rename from packages/core/src/install/createVersionsOverrider.ts rename to packages/hooks.read-package-hook/src/createVersionsOverrider.ts diff --git a/packages/hooks.read-package-hook/src/index.ts b/packages/hooks.read-package-hook/src/index.ts new file mode 100644 index 00000000000..5e105d3378e --- /dev/null +++ b/packages/hooks.read-package-hook/src/index.ts @@ -0,0 +1 @@ +export { createReadPackageHook } from './createReadPackageHook' diff --git a/packages/core/test/install/createPackageExtender.test.ts b/packages/hooks.read-package-hook/test/createPackageExtender.test.ts similarity index 95% rename from packages/core/test/install/createPackageExtender.test.ts rename to packages/hooks.read-package-hook/test/createPackageExtender.test.ts index 28b2ced5308..2facbbccaa9 100644 --- a/packages/core/test/install/createPackageExtender.test.ts +++ b/packages/hooks.read-package-hook/test/createPackageExtender.test.ts @@ -1,4 +1,4 @@ -import createPackageExtender from '../../lib/install/createPackageExtender' +import createPackageExtender from '../lib/createPackageExtender' const packageExtender = createPackageExtender({ foo: { diff --git a/packages/core/test/install/createPeerDependencyPatcher.test.ts b/packages/hooks.read-package-hook/test/createPeerDependencyPatcher.test.ts similarity index 96% rename from packages/core/test/install/createPeerDependencyPatcher.test.ts rename to packages/hooks.read-package-hook/test/createPeerDependencyPatcher.test.ts index 135f2118271..16f77736e26 100644 --- a/packages/core/test/install/createPeerDependencyPatcher.test.ts +++ b/packages/hooks.read-package-hook/test/createPeerDependencyPatcher.test.ts @@ -1,4 +1,4 @@ -import createPeerDependencyPatcher from '../../lib/install/createPeerDependencyPatcher' +import createPeerDependencyPatcher from '../lib/createPeerDependencyPatcher' test('createPeerDependencyPatcher() ignores missing', () => { const patcher = createPeerDependencyPatcher({ diff --git a/packages/core/test/install/createVersionOverrider.test.ts b/packages/hooks.read-package-hook/test/createVersionOverrider.test.ts similarity index 98% rename from packages/core/test/install/createVersionOverrider.test.ts rename to packages/hooks.read-package-hook/test/createVersionOverrider.test.ts index d8267b13b79..d16f42516ac 100644 --- a/packages/core/test/install/createVersionOverrider.test.ts +++ b/packages/hooks.read-package-hook/test/createVersionOverrider.test.ts @@ -1,5 +1,5 @@ import path from 'path' -import createVersionsOverrider from '../../lib/install/createVersionsOverrider' +import createVersionsOverrider from '../lib/createVersionsOverrider' test('createVersionsOverrider() matches subranges', () => { const overrider = createVersionsOverrider({ diff --git a/packages/hooks.read-package-hook/tsconfig.json b/packages/hooks.read-package-hook/tsconfig.json new file mode 100644 index 00000000000..2cdd5062363 --- /dev/null +++ b/packages/hooks.read-package-hook/tsconfig.json @@ -0,0 +1,25 @@ +{ + "extends": "@pnpm/tsconfig", + "compilerOptions": { + "outDir": "lib", + "rootDir": "src" + }, + "include": [ + "src/**/*.ts", + "../../typings/**/*.d.ts" + ], + "references": [ + { + "path": "../matcher" + }, + { + "path": "../parse-overrides" + }, + { + "path": "../parse-wanted-dependency" + }, + { + "path": "../types" + } + ] +} diff --git a/packages/hooks.read-package-hook/tsconfig.lint.json b/packages/hooks.read-package-hook/tsconfig.lint.json new file mode 100644 index 00000000000..0dc5add6b7b --- /dev/null +++ b/packages/hooks.read-package-hook/tsconfig.lint.json @@ -0,0 +1,8 @@ +{ + "extends": "./tsconfig.json", + "include": [ + "src/**/*.ts", + "test/**/*.ts", + "../../typings/**/*.d.ts" + ] +} diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 01cb3339273..b20fd6f7fe0 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -581,6 +581,9 @@ importers: '@pnpm/hoist': specifier: workspace:* version: link:../hoist + '@pnpm/hooks.read-package-hook': + specifier: workspace:* + version: link:../hooks.read-package-hook '@pnpm/lifecycle': specifier: workspace:* version: link:../lifecycle @@ -620,9 +623,6 @@ importers: '@pnpm/package-requester': specifier: workspace:* version: link:../package-requester - '@pnpm/parse-overrides': - specifier: workspace:* - version: link:../parse-overrides '@pnpm/parse-wanted-dependency': specifier: workspace:* version: link:../parse-wanted-dependency @@ -659,9 +659,6 @@ importers: '@pnpm/which-version-is-pinned': specifier: workspace:* version: link:../which-version-is-pinned - '@yarnpkg/extensions': - specifier: 1.2.0-rc.1 - version: 1.2.0-rc.1_@yarnpkg+core@4.0.0-rc.14 '@zkochan/rimraf': specifier: ^2.1.2 version: 2.1.2 @@ -1747,6 +1744,49 @@ importers: specifier: 0.28.15 version: 0.28.15 + packages/hooks.read-package-hook: + dependencies: + '@pnpm/matcher': + specifier: workspace:* + version: link:../matcher + '@pnpm/parse-overrides': + specifier: workspace:* + version: link:../parse-overrides + '@pnpm/parse-wanted-dependency': + specifier: workspace:* + version: link:../parse-wanted-dependency + '@pnpm/types': + specifier: workspace:* + version: link:../types + '@yarnpkg/extensions': + specifier: 1.2.0-rc.1 + version: 1.2.0-rc.1_@yarnpkg+core@4.0.0-rc.14 + normalize-path: + specifier: ^3.0.0 + version: 3.0.0 + ramda: + specifier: npm:@pnpm/ramda@0.28.1 + version: /@pnpm/ramda/0.28.1 + semver: + specifier: ^7.3.7 + version: 7.3.7 + devDependencies: + '@pnpm/hooks.read-package-hook': + specifier: workspace:* + version: 'link:' + '@types/normalize-path': + specifier: ^3.0.0 + version: 3.0.0 + '@types/ramda': + specifier: 0.28.15 + version: 0.28.15 + '@types/semver': + specifier: 7.3.10 + version: 7.3.10 + '@yarnpkg/core': + specifier: 4.0.0-rc.14 + version: 4.0.0-rc.14 + packages/lifecycle: dependencies: '@pnpm/core-loggers': @@ -7191,7 +7231,7 @@ packages: resolution: {integrity: sha512-ZUxbzKl0IfJILTS6t7ip5fQQM/J3TJYubDm3nMbgubNNYS62eXeUpoLUC8/7fJNiFYHTrGPQn7hspDUzIHX3UA==} dependencies: '@types/minimatch': 5.1.1 - '@types/node': 14.18.26 + '@types/node': 18.7.14 dev: true /@types/graceful-fs/4.1.5: @@ -7360,10 +7400,10 @@ packages: /@types/semver/7.3.10: resolution: {integrity: sha512-zsv3fsC7S84NN6nPK06u79oWgrPVd0NvOyqgghV1haPaFcVxIrP4DLomRwGAXk0ui4HZA7mOcSFL98sMVW9viw==} + dev: true /@types/semver/7.3.12: resolution: {integrity: sha512-WwA1MW0++RfXmCr12xeYOOC5baSC9mSb0ZqCquFzKhcoF4TvHu5MKOuXsncgZcpVFhB1pXd5hZmM0ryAoCp12A==} - dev: false /@types/signal-exit/3.0.1: resolution: {integrity: sha512-OSitN9PP9E/c4tlt1Qdj3CAz5uHD9Da5rhUqlaKyQRCX1T7Zdpbk6YdeZbR2eiE2ce+NMBgVnMxGqpaPSNQDUQ==} @@ -7634,7 +7674,7 @@ packages: dependencies: '@arcanis/slice-ansi': 1.1.1 '@types/lodash': 4.14.181 - '@types/semver': 7.3.10 + '@types/semver': 7.3.12 '@types/treeify': 1.0.0 '@yarnpkg/fslib': 3.0.0-rc.15 '@yarnpkg/libzip': 3.0.0-rc.15