mirror of
https://github.com/pnpm/pnpm.git
synced 2026-04-07 16:49:48 -04:00
* chore: update all dependencies to latest versions Update all outdated dependencies across the monorepo catalog and fix breaking changes from major version bumps. Notable updates: - ESLint 9 → 10 (fix custom rule API, disable new no-useless-assignment) - @stylistic/eslint-plugin 4 → 5 (auto-fixed indent changes) - @cyclonedx/cyclonedx-library 9 → 10 (adapt to removed SPDX API) - esbuild 0.25 → 0.27 - TypeScript 5.9.2 → 5.9.3 - Various @types packages, test utilities, and build tools Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * fix: update unified/remark/mdast imports for v11/v4 API changes Update imports in get-release-text for the new ESM named exports: - mdast-util-to-string: default → { toString } - unified: default → { unified } Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * fix: resolve typecheck errors from dependency updates - isexe v4: use named import { sync } instead of default export - remark-parse/remark-stringify v11: add vfile as packageExtension dependency so TypeScript can resolve type declarations - get-release-text: remove unused @ts-expect-error directives Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * fix: revert runtime dependency major version bumps Revert major version bumps for runtime dependencies that are bundled into pnpm to fix test failures where pnpm add silently fails: - bin-links: keep ^5.0.0 (was ^6.0.0) - cli-truncate: keep ^4.0.0 (was ^5.2.0) - delay: keep ^6.0.0 (was ^7.0.0) - filenamify: keep ^6.0.0 (was ^7.0.1) - find-up: keep ^7.0.0 (was ^8.0.0) - isexe: keep 2.0.0 (was 4.0.0) - normalize-newline: keep 4.1.0 (was 5.0.0) - p-queue: keep ^8.1.0 (was ^9.1.0) - ps-list: keep ^8.1.1 (was ^9.0.0) - string-length: keep ^6.0.0 (was ^7.0.1) - symlink-dir: keep ^7.0.0 (was ^9.0.0) - terminal-link: keep ^4.0.0 (was ^5.0.0) Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * fix: restore runtime dependency major version bumps Re-apply all runtime dependency major version bumps that were previously reverted. All packages maintain their default exports except isexe v4 which needs named imports. Updated runtime deps: - bin-links: ^5.0.0 → ^6.0.0 - cli-truncate: ^4.0.0 → ^5.2.0 - delay: ^6.0.0 → ^7.0.0 - filenamify: ^6.0.0 → ^7.0.1 - find-up: ^7.0.0 → ^8.0.0 - isexe: 2.0.0 → 4.0.0 (fix: use named import { sync }) - normalize-newline: 4.1.0 → 5.0.0 - p-queue: ^8.1.0 → ^9.1.0 - ps-list: ^8.1.1 → ^9.0.0 - string-length: ^6.0.0 → ^7.0.1 - symlink-dir: ^7.0.0 → ^9.0.0 - terminal-link: ^4.0.0 → ^5.0.0 Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * fix: revert tempy to 3.0.0 to fix bundle hang tempy 3.2.0 pulls in temp-dir 3.0.0 which uses async fs.realpath() inside its module init. When bundled by esbuild into the __esm lazy init pattern, this causes a deadlock during module initialization, making the pnpm binary hang silently on startup. Keeping tempy at 3.0.0 which uses temp-dir 2.x (sync fs.realpathSync). Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * docs: add comment explaining why tempy cannot be upgraded Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * fix: revert nock to 13.3.4 for node-fetch compatibility nock 14 changed its HTTP interception mechanism in a way that doesn't properly intercept node-fetch requests, causing audit tests to hang waiting for responses that are never intercepted. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * docs: add comment explaining why nock cannot be upgraded Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * fix: update symlink-dir imports for v10 ESM named exports symlink-dir v10 removed the default export and switched to named exports: { symlinkDir, symlinkDirSync }. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * fix: revert @typescript/native-preview to working version Newer tsgo dev builds (>= 20260318) have a regression where @types/node cannot be resolved, breaking all node built-in types. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * fix: vulnerabilities * fix: align comment indentation in runLifecycleHook Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * fix: pin msgpackr to 1.11.8 for TypeScript 5.9 compatibility msgpackr 1.11.9 has broken type definitions that use Iterable/Iterator without required type arguments, causing compile errors with TS 5.9. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
110 lines
3.0 KiB
TypeScript
110 lines
3.0 KiB
TypeScript
import path from 'node:path'
|
|
|
|
import {
|
|
cacheDelete,
|
|
cacheList,
|
|
cacheListRegistries,
|
|
cacheView,
|
|
} from '@pnpm/cache.api'
|
|
import { docsUrl } from '@pnpm/cli.utils'
|
|
import { type Config, types as allTypes } from '@pnpm/config.reader'
|
|
import { ABBREVIATED_META_DIR, FULL_FILTERED_META_DIR } from '@pnpm/constants'
|
|
import { PnpmError } from '@pnpm/error'
|
|
import { getStorePath } from '@pnpm/store.path'
|
|
import { pick } from 'ramda'
|
|
import { renderHelp } from 'render-help'
|
|
|
|
export const rcOptionsTypes = cliOptionsTypes
|
|
|
|
export function cliOptionsTypes (): Record<string, unknown> {
|
|
return {
|
|
...pick([
|
|
'registry',
|
|
'store-dir',
|
|
], allTypes),
|
|
}
|
|
}
|
|
|
|
export const commandNames = ['cache']
|
|
|
|
export function help (): string {
|
|
return renderHelp({
|
|
description: 'Inspect and manage the metadata cache',
|
|
descriptionLists: [
|
|
{
|
|
title: 'Commands',
|
|
|
|
list: [
|
|
{
|
|
description: 'Lists the available packages metadata cache. Supports filtering by glob',
|
|
name: 'list',
|
|
},
|
|
{
|
|
description: 'Lists all registries that have their metadata cache locally',
|
|
name: 'list-registries',
|
|
},
|
|
{
|
|
description: "Views information from the specified package's cache",
|
|
name: 'view',
|
|
},
|
|
{
|
|
description: 'Deletes metadata cache for the specified package(s). Supports patterns',
|
|
name: 'delete',
|
|
},
|
|
],
|
|
},
|
|
],
|
|
url: docsUrl('cache'),
|
|
usages: ['pnpm cache <command>'],
|
|
})
|
|
}
|
|
|
|
export type CacheCommandOptions = Pick<Config, 'cacheDir' | 'storeDir' | 'pnpmHomeDir' | 'cliOptions' | 'resolutionMode' | 'registrySupportsTimeField'>
|
|
|
|
export async function handler (opts: CacheCommandOptions, params: string[]): Promise<string | undefined> {
|
|
const cacheType = (opts.resolutionMode === 'time-based' && !opts.registrySupportsTimeField)
|
|
? FULL_FILTERED_META_DIR
|
|
: ABBREVIATED_META_DIR
|
|
const cacheDir = path.join(opts.cacheDir, cacheType)
|
|
switch (params[0]) {
|
|
case 'list-registries':
|
|
return cacheListRegistries({
|
|
...opts,
|
|
cacheDir,
|
|
})
|
|
case 'list':
|
|
return cacheList({
|
|
...opts,
|
|
cacheDir,
|
|
registry: opts.cliOptions['registry'],
|
|
}, params.slice(1))
|
|
case 'delete':
|
|
return cacheDelete({
|
|
...opts,
|
|
cacheDir,
|
|
registry: opts.cliOptions['registry'],
|
|
}, params.slice(1))
|
|
case 'view': {
|
|
if (!params[1]) {
|
|
throw new PnpmError('MISSING_PACKAGE_NAME', '`pnpm cache view` requires the package name')
|
|
}
|
|
if (params.length > 2) {
|
|
throw new PnpmError('TOO_MANY_PARAMS', '`pnpm cache view` only accepts one package name')
|
|
}
|
|
const storeDir = await getStorePath({
|
|
pkgRoot: process.cwd(),
|
|
storePath: opts.storeDir,
|
|
pnpmHomeDir: opts.pnpmHomeDir,
|
|
})
|
|
return cacheView({
|
|
...opts,
|
|
cacheDir,
|
|
storeDir,
|
|
registry: opts.cliOptions['registry'],
|
|
}, params[1])
|
|
}
|
|
default:
|
|
return help()
|
|
}
|
|
}
|