From 339c0a70465fdaa3dcc986fd4322094395f3c96a Mon Sep 17 00:00:00 2001 From: Zoltan Kochan Date: Sun, 25 Dec 2022 21:18:18 +0200 Subject: [PATCH] fix: run prepublish scripts of packages installed from Git (#5837) close #5826 --- .changeset/fresh-taxis-own.md | 8 ++++ .changeset/lucky-pugs-sell.md | 6 +++ env/node.fetcher/src/index.ts | 1 + exec/plugin-commands-rebuild/test/index.ts | 14 +++++-- exec/prepare-package/package.json | 18 +++++--- exec/prepare-package/src/index.ts | 42 +++++++++++++++---- .../has-prepublish-script/package.json | 10 +++++ .../has-prepublish-script/pnpm-lock.yaml | 0 exec/prepare-package/test/index.ts | 16 +++++++ exec/prepare-package/tsconfig.json | 9 ++++ fetching/git-fetcher/src/index.ts | 5 ++- fetching/git-fetcher/test/index.ts | 10 ++--- .../src/gitHostedTarballFetcher.ts | 8 ++-- fetching/tarball-fetcher/src/index.ts | 3 +- fetching/tarball-fetcher/test/fetch.ts | 4 ++ pkg-manager/client/src/index.ts | 3 +- pkg-manager/client/test/index.ts | 2 + .../core/test/install/lifecycleScripts.ts | 1 + pkg-manager/core/test/utils/testDefaults.ts | 1 + .../headless/test/utils/testDefaults.ts | 1 + pkg-manager/package-requester/test/index.ts | 2 + pnpm-lock.yaml | 35 ++++++++++++---- store/package-store/test/index.ts | 2 + store/server/test/index.ts | 1 + .../src/createNewStoreController.ts | 1 + 25 files changed, 166 insertions(+), 37 deletions(-) create mode 100644 .changeset/fresh-taxis-own.md create mode 100644 .changeset/lucky-pugs-sell.md create mode 100644 exec/prepare-package/test/__fixtures__/has-prepublish-script/package.json create mode 100644 exec/prepare-package/test/__fixtures__/has-prepublish-script/pnpm-lock.yaml create mode 100644 exec/prepare-package/test/index.ts diff --git a/.changeset/fresh-taxis-own.md b/.changeset/fresh-taxis-own.md new file mode 100644 index 00000000000..5e0a9a334f3 --- /dev/null +++ b/.changeset/fresh-taxis-own.md @@ -0,0 +1,8 @@ +--- +"@pnpm/prepare-package": major +"@pnpm/git-fetcher": major +"@pnpm/tarball-fetcher": major +"@pnpm/client": major +--- + +A new required option added to the prepare package function: rawConfig. It is needed in order to create a proper environment for the package manager executed during the preparation of a git-hosted dependency. diff --git a/.changeset/lucky-pugs-sell.md b/.changeset/lucky-pugs-sell.md new file mode 100644 index 00000000000..4aa4e276847 --- /dev/null +++ b/.changeset/lucky-pugs-sell.md @@ -0,0 +1,6 @@ +--- +"@pnpm/prepare-package": patch +"pnpm": patch +--- + +Run the prepublish scripts of packages installed from Git [#5826](https://github.com/pnpm/pnpm/issues/5826). diff --git a/env/node.fetcher/src/index.ts b/env/node.fetcher/src/index.ts index 228211eccfd..7fdb9673cd5 100644 --- a/env/node.fetcher/src/index.ts +++ b/env/node.fetcher/src/index.ts @@ -34,6 +34,7 @@ export async function fetchNode (fetch: FetchFromRegistry, version: string, targ } const getAuthHeader = () => undefined const fetchers = createTarballFetcher(fetch, getAuthHeader, { + rawConfig: {}, // This is not needed for fetching Node.js retry: opts.retry, timeout: opts.fetchTimeout, }) diff --git a/exec/plugin-commands-rebuild/test/index.ts b/exec/plugin-commands-rebuild/test/index.ts index 3ab8b6f12cc..3b279f8d5fd 100644 --- a/exec/plugin-commands-rebuild/test/index.ts +++ b/exec/plugin-commands-rebuild/test/index.ts @@ -64,10 +64,16 @@ test('rebuilds dependencies', async () => { { const scripts = project.requireModule('test-git-fetch/output.json') - expect(scripts[0]).toBe('preinstall') - expect(scripts[1]).toBe('install') - expect(scripts[2]).toBe('postinstall') - expect(scripts[3]).toBe('prepare') + expect(scripts).toStrictEqual([ + 'preinstall', + 'install', + 'postinstall', + 'prepare', + 'prepublishOnly', + 'preinstall', + 'install', + 'postinstall', + ]) } }) diff --git a/exec/prepare-package/package.json b/exec/prepare-package/package.json index 2fc44075972..f06c75930a4 100644 --- a/exec/prepare-package/package.json +++ b/exec/prepare-package/package.json @@ -12,10 +12,11 @@ "node": ">=14.6" }, "scripts": { - "lint": "eslint src/**/*.ts", - "test": "pnpm run compile", + "lint": "eslint src/**/*.ts test/**/*.ts", + "test": "pnpm run compile && pnpm run _test", "prepublishOnly": "pnpm run compile", - "compile": "tsc --build && pnpm run lint --fix" + "compile": "tsc --build && pnpm run lint --fix", + "_test": "jest" }, "repository": "https://github.com/pnpm/pnpm/blob/main/exec/prepare-package", "keywords": [ @@ -29,14 +30,21 @@ "homepage": "https://github.com/pnpm/pnpm/blob/main/exec/prepare-package#readme", "dependencies": { "@pnpm/error": "workspace:*", + "@pnpm/npm-lifecycle": "^2.0.0", "@pnpm/read-package-json": "workspace:*", "@zkochan/rimraf": "^2.1.2", "execa": "npm:safe-execa@^0.1.2", - "preferred-pm": "^3.0.3" + "preferred-pm": "^3.0.3", + "ramda": "npm:@pnpm/ramda@0.28.1" }, "funding": "https://opencollective.com/pnpm", "devDependencies": { - "@pnpm/prepare-package": "workspace:*" + "@pnpm/prepare": "workspace:*", + "@pnpm/prepare-package": "workspace:*", + "@pnpm/test-fixtures": "workspace:*", + "@pnpm/types": "workspace:*", + "@types/ramda": "0.28.20", + "load-json-file": "^6.2.0" }, "exports": { ".": "./lib/index.js" diff --git a/exec/prepare-package/src/index.ts b/exec/prepare-package/src/index.ts index 7127811834f..26fbdd356bf 100644 --- a/exec/prepare-package/src/index.ts +++ b/exec/prepare-package/src/index.ts @@ -1,19 +1,45 @@ import path from 'path' import { PnpmError } from '@pnpm/error' +import lifecycle from '@pnpm/npm-lifecycle' import { safeReadPackageJsonFromDir } from '@pnpm/read-package-json' +import { PackageScripts } from '@pnpm/types' import rimraf from '@zkochan/rimraf' import execa from 'execa' import preferredPM from 'preferred-pm' +import omit from 'ramda/src/omit' -export async function preparePackage (pkgDir: string) { +const PREPUBLISH_SCRIPTS = [ + 'prepublish', + 'prepublishOnly', + 'prepack', + 'publish', + 'postpublish', +] + +export async function preparePackage (opts: { rawConfig: object }, pkgDir: string) { const manifest = await safeReadPackageJsonFromDir(pkgDir) - if (manifest?.scripts?.prepare != null && manifest.scripts.prepare !== '') { - const pm = (await preferredPM(pkgDir))?.name ?? 'npm' - try { - await execa(pm, ['install'], { cwd: pkgDir }) - } catch (err: any) { // eslint-disable-line - throw new PnpmError('PREPARE_PKG_FAILURE', err.shortMessage ?? err.message) + if (manifest?.scripts == null || !packageShouldBeBuilt(manifest.scripts)) return + const pm = (await preferredPM(pkgDir))?.name ?? 'npm' + // We can't prepare a package without running its lifecycle scripts. + // An alternative solution could be to throw an exception. + const config = omit(['ignore-scripts'], opts.rawConfig) + const env = lifecycle.makeEnv(manifest, { config }) + const execOpts = { cwd: pkgDir, env, extendEnv: true } + try { + await execa(pm, ['install'], execOpts) + for (const scriptName of PREPUBLISH_SCRIPTS) { + if (manifest.scripts[scriptName] == null || manifest.scripts[scriptName] === '') continue + await execa(pm, ['run', scriptName], execOpts) } - await rimraf(path.join(pkgDir, 'node_modules')) + } catch (err: any) { // eslint-disable-line + throw new PnpmError('PREPARE_PKG_FAILURE', err.shortMessage ?? err.message) } + await rimraf(path.join(pkgDir, 'node_modules')) +} + +function packageShouldBeBuilt (packageScripts: PackageScripts): boolean { + return [ + ...PREPUBLISH_SCRIPTS, + 'prepare', + ].some((scriptName) => packageScripts[scriptName] != null && packageScripts[scriptName] !== '') } diff --git a/exec/prepare-package/test/__fixtures__/has-prepublish-script/package.json b/exec/prepare-package/test/__fixtures__/has-prepublish-script/package.json new file mode 100644 index 00000000000..89a741d4a7d --- /dev/null +++ b/exec/prepare-package/test/__fixtures__/has-prepublish-script/package.json @@ -0,0 +1,10 @@ +{ + "name": "has-prepublish-script", + "version": "1.0.0", + "scripts": { + "prepublish": "node -e \"process.stdout.write('prepublish')\" | json-append output.json" + }, + "devDependencies": { + "json-append": "1.1.1" + } +} diff --git a/exec/prepare-package/test/__fixtures__/has-prepublish-script/pnpm-lock.yaml b/exec/prepare-package/test/__fixtures__/has-prepublish-script/pnpm-lock.yaml new file mode 100644 index 00000000000..e69de29bb2d diff --git a/exec/prepare-package/test/index.ts b/exec/prepare-package/test/index.ts new file mode 100644 index 00000000000..65e635bd0cf --- /dev/null +++ b/exec/prepare-package/test/index.ts @@ -0,0 +1,16 @@ +import path from 'path' +import { preparePackage } from '@pnpm/prepare-package' +import { tempDir } from '@pnpm/prepare' +import { fixtures } from '@pnpm/test-fixtures' +import { sync as loadJsonFile } from 'load-json-file' + +const f = fixtures(__dirname) + +test('prepare package runs the prepbublish script', async () => { + const tmp = tempDir() + f.copy('has-prepublish-script', tmp) + await preparePackage({ rawConfig: {} }, tmp) + expect(loadJsonFile(path.join(tmp, 'output.json'))).toStrictEqual([ + 'prepublish', + ]) +}) diff --git a/exec/prepare-package/tsconfig.json b/exec/prepare-package/tsconfig.json index 690769fe4f1..359055070d7 100644 --- a/exec/prepare-package/tsconfig.json +++ b/exec/prepare-package/tsconfig.json @@ -9,9 +9,18 @@ "../../__typings__/**/*.d.ts" ], "references": [ + { + "path": "../../__utils__/prepare" + }, + { + "path": "../../__utils__/test-fixtures" + }, { "path": "../../packages/error" }, + { + "path": "../../packages/types" + }, { "path": "../../pkg-manifest/read-package-json" } diff --git a/fetching/git-fetcher/src/index.ts b/fetching/git-fetcher/src/index.ts index 051dde0a145..07f79f916c7 100644 --- a/fetching/git-fetcher/src/index.ts +++ b/fetching/git-fetcher/src/index.ts @@ -5,8 +5,9 @@ import rimraf from '@zkochan/rimraf' import execa from 'execa' import { URL } from 'url' -export function createGitFetcher (createOpts?: { gitShallowHosts?: string[] }) { +export function createGitFetcher (createOpts: { gitShallowHosts?: string[], rawConfig: object }) { const allowedHosts = new Set(createOpts?.gitShallowHosts ?? []) + const preparePkg = preparePackage.bind(null, { rawConfig: createOpts.rawConfig }) const gitFetcher: GitFetcher = async (cafs, resolution, opts) => { const tempLocation = await cafs.tempDir() @@ -18,7 +19,7 @@ export function createGitFetcher (createOpts?: { gitShallowHosts?: string[] }) { await execGit(['clone', resolution.repo, tempLocation]) } await execGit(['checkout', resolution.commit], { cwd: tempLocation }) - await preparePackage(tempLocation) + await preparePkg(tempLocation) // removing /.git to make directory integrity calculation faster await rimraf(path.join(tempLocation, '.git')) const filesIndex = await cafs.addFilesFromDir(tempLocation, opts.manifest) diff --git a/fetching/git-fetcher/test/index.ts b/fetching/git-fetcher/test/index.ts index 2b16131fe6d..36cc711c102 100644 --- a/fetching/git-fetcher/test/index.ts +++ b/fetching/git-fetcher/test/index.ts @@ -22,7 +22,7 @@ beforeEach(() => { test('fetch', async () => { const cafsDir = tempy.directory() - const fetch = createGitFetcher().git + const fetch = createGitFetcher({ rawConfig: {} }).git const manifest = pDefer() const { filesIndex } = await fetch( createCafsStore(cafsDir), @@ -43,7 +43,7 @@ test('fetch', async () => { test('fetch a package from Git that has a prepare script', async () => { const cafsDir = tempy.directory() - const fetch = createGitFetcher().git + const fetch = createGitFetcher({ rawConfig: {} }).git const manifest = pDefer() const { filesIndex } = await fetch( createCafsStore(cafsDir), @@ -62,7 +62,7 @@ test('fetch a package from Git that has a prepare script', async () => { // Test case for https://github.com/pnpm/pnpm/issues/1866 test('fetch a package without a package.json', async () => { const cafsDir = tempy.directory() - const fetch = createGitFetcher().git + const fetch = createGitFetcher({ rawConfig: {} }).git const manifest = pDefer() const { filesIndex } = await fetch( createCafsStore(cafsDir), @@ -82,7 +82,7 @@ test('fetch a package without a package.json', async () => { // Covers the regression reported in https://github.com/pnpm/pnpm/issues/4064 test('fetch a big repository', async () => { const cafsDir = tempy.directory() - const fetch = createGitFetcher().git + const fetch = createGitFetcher({ rawConfig: {} }).git const manifest = pDefer() const { filesIndex } = await fetch(createCafsStore(cafsDir), { @@ -95,7 +95,7 @@ test('fetch a big repository', async () => { test('still able to shallow fetch for allowed hosts', async () => { const cafsDir = tempy.directory() - const fetch = createGitFetcher({ gitShallowHosts: ['github.com'] }).git + const fetch = createGitFetcher({ gitShallowHosts: ['github.com'], rawConfig: {} }).git const manifest = pDefer() const resolution = { commit: 'c9b30e71d704cd30fa71f2edd1ecc7dcc4985493', diff --git a/fetching/tarball-fetcher/src/gitHostedTarballFetcher.ts b/fetching/tarball-fetcher/src/gitHostedTarballFetcher.ts index d370b9bed0f..ff6ed46a5d8 100644 --- a/fetching/tarball-fetcher/src/gitHostedTarballFetcher.ts +++ b/fetching/tarball-fetcher/src/gitHostedTarballFetcher.ts @@ -10,17 +10,17 @@ interface Resolution { tarball: string } -export function createGitHostedTarballFetcher (fetchRemoteTarball: FetchFunction): FetchFunction { +export function createGitHostedTarballFetcher (fetchRemoteTarball: FetchFunction, rawConfig: object): FetchFunction { const fetch = async (cafs: Cafs, resolution: Resolution, opts: FetchOptions) => { const { filesIndex } = await fetchRemoteTarball(cafs, resolution, opts) - return { filesIndex: await prepareGitHostedPkg(filesIndex as FilesIndex, cafs) } + return { filesIndex: await prepareGitHostedPkg(filesIndex as FilesIndex, cafs, rawConfig) } } return fetch as FetchFunction } -async function prepareGitHostedPkg (filesIndex: FilesIndex, cafs: Cafs) { +async function prepareGitHostedPkg (filesIndex: FilesIndex, cafs: Cafs, rawConfig: object) { const tempLocation = await cafs.tempDir() await cafs.importPackage(tempLocation, { filesResponse: { @@ -29,7 +29,7 @@ async function prepareGitHostedPkg (filesIndex: FilesIndex, cafs: Cafs) { }, force: true, }) - await preparePackage(tempLocation) + await preparePackage({ rawConfig }, tempLocation) const newFilesIndex = await cafs.addFilesFromDir(tempLocation) // Important! We cannot remove the temp location at this stage. // Even though we have the index of the package, diff --git a/fetching/tarball-fetcher/src/index.ts b/fetching/tarball-fetcher/src/index.ts index 1ba35d71c76..9d87487370f 100644 --- a/fetching/tarball-fetcher/src/index.ts +++ b/fetching/tarball-fetcher/src/index.ts @@ -31,6 +31,7 @@ export function createTarballFetcher ( fetchFromRegistry: FetchFromRegistry, getAuthHeader: GetAuthHeader, opts: { + rawConfig: object timeout?: number retry?: RetryTimeoutOptions offline?: boolean @@ -50,7 +51,7 @@ export function createTarballFetcher ( return { localTarball: createLocalTarballFetcher(), remoteTarball: remoteTarballFetcher, - gitHostedTarball: createGitHostedTarballFetcher(remoteTarballFetcher), + gitHostedTarball: createGitHostedTarballFetcher(remoteTarballFetcher, opts.rawConfig), } } diff --git a/fetching/tarball-fetcher/test/fetch.ts b/fetching/tarball-fetcher/test/fetch.ts index cc19a90e7c9..185605d69f7 100644 --- a/fetching/tarball-fetcher/test/fetch.ts +++ b/fetching/tarball-fetcher/test/fetch.ts @@ -25,6 +25,7 @@ const registry = 'http://example.com/' const fetchFromRegistry = createFetchFromRegistry({}) const getAuthHeader = () => undefined const fetch = createTarballFetcher(fetchFromRegistry, getAuthHeader, { + rawConfig: {}, retry: { maxTimeout: 100, minTimeout: 0, @@ -206,6 +207,7 @@ test("don't fail when fetching a local tarball in offline mode", async () => { const fetch = createTarballFetcher(fetchFromRegistry, getAuthHeader, { offline: true, + rawConfig: {}, retry: { maxTimeout: 100, minTimeout: 0, @@ -230,6 +232,7 @@ test('fail when trying to fetch a non-local tarball in offline mode', async () = const fetch = createTarballFetcher(fetchFromRegistry, getAuthHeader, { offline: true, + rawConfig: {}, retry: { maxTimeout: 100, minTimeout: 0, @@ -321,6 +324,7 @@ test('accessing private packages', async () => { const getAuthHeader = () => 'Bearer ofjergrg349gj3f2' const fetch = createTarballFetcher(fetchFromRegistry, getAuthHeader, { + rawConfig: {}, retry: { maxTimeout: 100, minTimeout: 0, diff --git a/pkg-manager/client/src/index.ts b/pkg-manager/client/src/index.ts index ee5d3fe1a22..83625271b0e 100644 --- a/pkg-manager/client/src/index.ts +++ b/pkg-manager/client/src/index.ts @@ -17,6 +17,7 @@ export { ResolveFunction } export type ClientOptions = { authConfig: Record customFetchers?: CustomFetchers + rawConfig: object retry?: RetryTimeoutOptions timeout?: number userAgent?: string @@ -53,7 +54,7 @@ type Fetchers = { function createFetchers ( fetchFromRegistry: FetchFromRegistry, getAuthHeader: GetAuthHeader, - opts: Pick, + opts: Pick, customFetchers?: CustomFetchers ): Fetchers { const defaultFetchers = { diff --git a/pkg-manager/client/test/index.ts b/pkg-manager/client/test/index.ts index 773b4b7623d..ad1fde6bf17 100644 --- a/pkg-manager/client/test/index.ts +++ b/pkg-manager/client/test/index.ts @@ -5,6 +5,7 @@ test('createClient()', () => { const client = createClient({ authConfig: { registry: 'https://registry.npmjs.org/' }, cacheDir: '', + rawConfig: {}, }) expect(typeof client === 'object').toBeTruthy() }) @@ -13,6 +14,7 @@ test('createResolver()', () => { const resolver = createResolver({ authConfig: { registry: 'https://registry.npmjs.org/' }, cacheDir: '', + rawConfig: {}, }) expect(typeof resolver === 'function').toBeTruthy() }) diff --git a/pkg-manager/core/test/install/lifecycleScripts.ts b/pkg-manager/core/test/install/lifecycleScripts.ts index 2e056d4115c..0852fcba22e 100644 --- a/pkg-manager/core/test/install/lifecycleScripts.ts +++ b/pkg-manager/core/test/install/lifecycleScripts.ts @@ -278,6 +278,7 @@ test('run prepare script for git-hosted dependencies', async () => { 'install', 'postinstall', 'prepare', + 'prepublishOnly', 'preinstall', 'install', 'postinstall', diff --git a/pkg-manager/core/test/utils/testDefaults.ts b/pkg-manager/core/test/utils/testDefaults.ts index fe1c0ff1edf..affe7bf2559 100644 --- a/pkg-manager/core/test/utils/testDefaults.ts +++ b/pkg-manager/core/test/utils/testDefaults.ts @@ -39,6 +39,7 @@ export async function testDefaults ( const cacheDir = path.resolve('cache') const { resolve, fetchers } = createClient({ authConfig, + rawConfig: {}, retry: retryOpts, cacheDir, ...resolveOpts, diff --git a/pkg-manager/headless/test/utils/testDefaults.ts b/pkg-manager/headless/test/utils/testDefaults.ts index d754d6ec109..2e3b96b26b9 100644 --- a/pkg-manager/headless/test/utils/testDefaults.ts +++ b/pkg-manager/headless/test/utils/testDefaults.ts @@ -45,6 +45,7 @@ export async function testDefaults ( const authConfig = { registry } const { resolve, fetchers } = createClient({ authConfig, + rawConfig: {}, retry: retryOpts, cacheDir, ...resolveOpts, diff --git a/pkg-manager/package-requester/test/index.ts b/pkg-manager/package-requester/test/index.ts index ea8f5122d9c..c42b965ae1b 100644 --- a/pkg-manager/package-requester/test/index.ts +++ b/pkg-manager/package-requester/test/index.ts @@ -26,6 +26,7 @@ const authConfig = { registry } const { resolve, fetchers } = createClient({ authConfig, cacheDir: '.store', + rawConfig: {}, }) test('request package', async () => { @@ -522,6 +523,7 @@ test('fetchPackageToStore() does not cache errors', async () => { const noRetry = createClient({ authConfig, + rawConfig: {}, retry: { retries: 0 }, cacheDir: '.pnpm', }) diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 76652c511d6..e7a3de262c8 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -1226,6 +1226,9 @@ importers: '@pnpm/error': specifier: workspace:* version: link:../../packages/error + '@pnpm/npm-lifecycle': + specifier: ^2.0.0 + version: 2.0.0_typanion@3.12.1 '@pnpm/read-package-json': specifier: workspace:* version: link:../../pkg-manifest/read-package-json @@ -1238,10 +1241,28 @@ importers: preferred-pm: specifier: ^3.0.3 version: 3.0.3 + ramda: + specifier: npm:@pnpm/ramda@0.28.1 + version: /@pnpm/ramda/0.28.1 devDependencies: + '@pnpm/prepare': + specifier: workspace:* + version: link:../../__utils__/prepare '@pnpm/prepare-package': specifier: workspace:* version: 'link:' + '@pnpm/test-fixtures': + specifier: workspace:* + version: link:../../__utils__/test-fixtures + '@pnpm/types': + specifier: workspace:* + version: link:../../packages/types + '@types/ramda': + specifier: 0.28.20 + version: 0.28.20 + load-json-file: + specifier: ^6.2.0 + version: 6.2.0 exec/run-npm: dependencies: @@ -11819,7 +11840,7 @@ packages: resolution: {integrity: sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==} engines: {node: '>= 8'} dependencies: - minipass: 3.3.5 + minipass: 3.3.6 /fs-mkdirp-stream/1.0.0: resolution: {integrity: sha512-+vSd9frUnapVC2RZYfL3FCB2p3g4TBhaUmrsWlSudsGdnxIuUvBB2QM1VZeBtc49QFwrp+wQLrDs3+xxDgI5gQ==} @@ -14030,7 +14051,7 @@ packages: resolution: {integrity: sha512-6T6lH0H8OG9kITm/Jm6tdooIbogG9e0tLgpY6mphXSm/A9u8Nq1ryBG+Qspiub9LjWlBPsPS3tWQ/Botq4FdxA==} engines: {node: '>= 8'} dependencies: - minipass: 3.3.5 + minipass: 3.3.6 /minipass-fetch/1.4.1: resolution: {integrity: sha512-CGH1eblLq26Y15+Azk7ey4xh0J/XfJfrCox5LDJiKqI2Q2iwOLOKrlmIaODiSQS8d18jalF6y2K2ePUm0CmShw==} @@ -14058,19 +14079,19 @@ packages: resolution: {integrity: sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw==} engines: {node: '>= 8'} dependencies: - minipass: 3.3.5 + minipass: 3.3.6 /minipass-pipeline/1.2.4: resolution: {integrity: sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A==} engines: {node: '>=8'} dependencies: - minipass: 3.3.5 + minipass: 3.3.6 /minipass-sized/1.0.3: resolution: {integrity: sha512-MbkQQ2CTiBMlA2Dm/5cY+9SWFEN8pzzOXi6rlM5Xxq0Yqbda5ZQy9sU75a673FE9ZK0Zsbr6Y5iP6u9nktfg2g==} engines: {node: '>=8'} dependencies: - minipass: 3.3.5 + minipass: 3.3.6 /minipass/3.3.4: resolution: {integrity: sha512-I9WPbWHCGu8W+6k1ZiGpPu0GkoKBeorkfKNuAFBNS1HNFJvke82sxvI5bzcCNpWPorkOO5QQ+zomzzwRxejXiw==} @@ -14100,7 +14121,7 @@ packages: resolution: {integrity: sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==} engines: {node: '>= 8'} dependencies: - minipass: 3.3.5 + minipass: 3.3.6 yallist: 4.0.0 /mixme/0.5.4: @@ -16069,7 +16090,7 @@ packages: resolution: {integrity: sha512-97qShzy1AiyxvPNIkLWoGua7xoQzzPjQ0HAH4B0rWKo7SZ6USuPcrUiAFrws0UH8RrbWmgq3LMTObhPIHbbBeQ==} engines: {node: '>= 8'} dependencies: - minipass: 3.3.5 + minipass: 3.3.6 /ssri/9.0.1: resolution: {integrity: sha512-o57Wcn66jMQvfHG1FlYbWeZWW/dHZhJXjpIcTfXldXEk5nz5lStPo3mK0OJQfGR3RbZUlbISexbljkJzuEj/8Q==} diff --git a/store/package-store/test/index.ts b/store/package-store/test/index.ts index 67412f8e387..124a4211378 100644 --- a/store/package-store/test/index.ts +++ b/store/package-store/test/index.ts @@ -14,6 +14,7 @@ describe('store.importPackage()', () => { const { resolve, fetchers } = createClient({ authConfig, cacheDir: path.join(tmp, 'cache'), + rawConfig: {}, }) const storeController = await createPackageStore(resolve, fetchers, { storeDir, @@ -51,6 +52,7 @@ describe('store.importPackage()', () => { const { resolve, fetchers } = createClient({ authConfig, cacheDir: path.join(tmp, 'cache'), + rawConfig: {}, }) const storeController = await createPackageStore(resolve, fetchers, { packageImportMethod: 'copy', diff --git a/store/server/test/index.ts b/store/server/test/index.ts index af92fccdfef..e9f8b7c88a4 100644 --- a/store/server/test/index.ts +++ b/store/server/test/index.ts @@ -23,6 +23,7 @@ async function createStoreController (storeDir?: string) { const { resolve, fetchers } = createClient({ authConfig, cacheDir, + rawConfig: {}, }) return createPackageStore(resolve, fetchers, { networkConcurrency: 1, diff --git a/store/store-connection-manager/src/createNewStoreController.ts b/store/store-connection-manager/src/createNewStoreController.ts index 9433cb3e934..a4772407fe3 100644 --- a/store/store-connection-manager/src/createNewStoreController.ts +++ b/store/store-connection-manager/src/createNewStoreController.ts @@ -63,6 +63,7 @@ export async function createNewStoreController ( noProxy: opts.noProxy, offline: opts.offline, preferOffline: opts.preferOffline, + rawConfig: opts.rawConfig, retry: { factor: opts.fetchRetryFactor, maxTimeout: opts.fetchRetryMaxtimeout,