mirror of
https://github.com/pnpm/pnpm.git
synced 2025-12-23 23:29:17 -05:00
5
.changeset/dry-beans-fix.md
Normal file
5
.changeset/dry-beans-fix.md
Normal file
@@ -0,0 +1,5 @@
|
||||
---
|
||||
"@pnpm/core-loggers": minor
|
||||
---
|
||||
|
||||
New logger added: `updateCheckLogger`.
|
||||
9
.changeset/few-dogs-run.md
Normal file
9
.changeset/few-dogs-run.md
Normal file
@@ -0,0 +1,9 @@
|
||||
---
|
||||
"pnpm": minor
|
||||
---
|
||||
|
||||
Check the registry for CLI updates once a day.
|
||||
|
||||
The time of the last update is saved in a new state file at `~/.pnpm-state.json`.
|
||||
|
||||
`update-notifier` is removed from the dependencies.
|
||||
5
.changeset/three-carpets-learn.md
Normal file
5
.changeset/three-carpets-learn.md
Normal file
@@ -0,0 +1,5 @@
|
||||
---
|
||||
"@pnpm/default-reporter": minor
|
||||
---
|
||||
|
||||
Print a notification about newer version of the CLI.
|
||||
@@ -2,7 +2,7 @@ const path = require('path')
|
||||
|
||||
module.exports = {
|
||||
preset: 'ts-jest',
|
||||
testMatch: ["**/test/**/*.[jt]s?(x)"],
|
||||
testMatch: ["**/test/**/*.[jt]s?(x)", "**/src/**/*.test.ts"],
|
||||
testEnvironment: 'node',
|
||||
collectCoverage: true,
|
||||
coveragePathIgnorePatterns: ['node_modules'],
|
||||
|
||||
@@ -5,15 +5,16 @@ export * from './hookLogger'
|
||||
export * from './installCheckLogger'
|
||||
export * from './lifecycleLogger'
|
||||
export * from './linkLogger'
|
||||
export * from './packageManifestLogger'
|
||||
export * from './packageImportMethodLogger'
|
||||
export * from './packageManifestLogger'
|
||||
export * from './progressLogger'
|
||||
export * from './registryLogger'
|
||||
export * from './requestRetryLogger'
|
||||
export * from './removalLogger'
|
||||
export * from './requestRetryLogger'
|
||||
export * from './rootLogger'
|
||||
export * from './scopeLogger'
|
||||
export * from './skippedOptionalDependencyLogger'
|
||||
export * from './stageLogger'
|
||||
export * from './statsLogger'
|
||||
export * from './summaryLogger'
|
||||
export * from './updateCheckLogger'
|
||||
|
||||
@@ -17,6 +17,7 @@ import {
|
||||
StageLog,
|
||||
StatsLog,
|
||||
SummaryLog,
|
||||
UpdateCheckLog,
|
||||
} from './all'
|
||||
|
||||
export * from './all'
|
||||
@@ -40,3 +41,4 @@ export type Log =
|
||||
| StageLog
|
||||
| StatsLog
|
||||
| SummaryLog
|
||||
| UpdateCheckLog
|
||||
|
||||
12
packages/core-loggers/src/updateCheckLogger.ts
Normal file
12
packages/core-loggers/src/updateCheckLogger.ts
Normal file
@@ -0,0 +1,12 @@
|
||||
import baseLogger, {
|
||||
LogBase,
|
||||
} from '@pnpm/logger'
|
||||
|
||||
export const updateCheckLogger = baseLogger('update-check')
|
||||
|
||||
export interface UpdateCheckMessage {
|
||||
currentVersion: string
|
||||
latestVersion: string
|
||||
}
|
||||
|
||||
export type UpdateCheckLog = {name: 'pnpm:update-check'} & LogBase & UpdateCheckMessage
|
||||
@@ -35,6 +35,7 @@
|
||||
"@pnpm/error": "workspace:1.4.0",
|
||||
"@pnpm/types": "workspace:6.4.0",
|
||||
"ansi-diff": "^1.1.1",
|
||||
"boxen": "^5.0.0",
|
||||
"chalk": "^4.1.0",
|
||||
"normalize-path": "^3.0.0",
|
||||
"pretty-bytes": "^5.5.0",
|
||||
|
||||
@@ -100,6 +100,7 @@ export function toOutput$ (
|
||||
const skippedOptionalDependencyPushStream = new Rx.Subject<logs.SkippedOptionalDependencyLog>()
|
||||
const scopePushStream = new Rx.Subject<logs.ScopeLog>()
|
||||
const requestRetryPushStream = new Rx.Subject<logs.RequestRetryLog>()
|
||||
const updateCheckPushStream = new Rx.Subject<logs.UpdateCheckLog>()
|
||||
setTimeout(() => {
|
||||
opts.streamParser['on']('data', (log: logs.Log) => {
|
||||
switch (log.name) {
|
||||
@@ -157,6 +158,9 @@ export function toOutput$ (
|
||||
case 'pnpm:request-retry':
|
||||
requestRetryPushStream.next(log)
|
||||
break
|
||||
case 'pnpm:update-check':
|
||||
updateCheckPushStream.next(log)
|
||||
break
|
||||
case 'pnpm' as any: // eslint-disable-line
|
||||
case 'pnpm:global' as any: // eslint-disable-line
|
||||
case 'pnpm:store' as any: // eslint-disable-line
|
||||
@@ -186,6 +190,7 @@ export function toOutput$ (
|
||||
stage: Rx.from(stagePushStream),
|
||||
stats: Rx.from(statsPushStream),
|
||||
summary: Rx.from(summaryPushStream),
|
||||
updateCheck: Rx.from(updateCheckPushStream),
|
||||
}
|
||||
const outputs: Array<Rx.Observable<Rx.Observable<{msg: string}>>> = reporterForClient(
|
||||
log$,
|
||||
|
||||
@@ -16,6 +16,7 @@ import reportScope from './reportScope'
|
||||
import reportSkippedOptionalDependencies from './reportSkippedOptionalDependencies'
|
||||
import reportStats from './reportStats'
|
||||
import reportSummary from './reportSummary'
|
||||
import reportUpdateCheck from './reportUpdateCheck'
|
||||
|
||||
export default function (
|
||||
log$: {
|
||||
@@ -38,6 +39,7 @@ export default function (
|
||||
scope: Rx.Observable<logs.ScopeLog>
|
||||
skippedOptionalDependency: Rx.Observable<logs.SkippedOptionalDependencyLog>
|
||||
packageImportMethod: Rx.Observable<logs.PackageImportMethodLog>
|
||||
updateCheck: Rx.Observable<logs.UpdateCheckLog>
|
||||
},
|
||||
opts: {
|
||||
appendOnly?: boolean
|
||||
@@ -89,6 +91,7 @@ export default function (
|
||||
reportSkippedOptionalDependencies(log$.skippedOptionalDependency, { cwd }),
|
||||
reportHooks(log$.hook, { cwd, isRecursive: opts.isRecursive }),
|
||||
reportContext(log$, { cwd }),
|
||||
reportUpdateCheck(log$.updateCheck),
|
||||
]
|
||||
|
||||
if (!opts.appendOnly) {
|
||||
|
||||
@@ -0,0 +1,29 @@
|
||||
import { UpdateCheckLog } from '@pnpm/core-loggers'
|
||||
import boxen from 'boxen'
|
||||
import chalk from 'chalk'
|
||||
import * as Rx from 'rxjs'
|
||||
import { filter, map, take } from 'rxjs/operators'
|
||||
import semver from 'semver'
|
||||
|
||||
export default (log$: Rx.Observable<UpdateCheckLog>) => {
|
||||
return log$.pipe(
|
||||
take(1),
|
||||
filter((log) => semver.gt(log.latestVersion, log.currentVersion)),
|
||||
map((log) => Rx.of({
|
||||
msg: boxen(`\
|
||||
Update available! ${chalk.red(log.currentVersion)} → ${chalk.green(log.latestVersion)}.
|
||||
${chalk.magenta('Changelog:')} https://github.com/pnpm/pnpm/releases/tag/v${log.latestVersion}
|
||||
Run ${chalk.magenta('pnpm add -g pnpm')} to update.
|
||||
|
||||
Follow ${chalk.magenta('@pnpmjs')} for updates: https://twitter.com/pnpmjs`,
|
||||
{
|
||||
padding: 1,
|
||||
margin: 1,
|
||||
align: 'center',
|
||||
borderColor: 'yellow',
|
||||
borderStyle: 'round',
|
||||
}
|
||||
),
|
||||
}))
|
||||
)
|
||||
}
|
||||
@@ -0,0 +1,15 @@
|
||||
// Jest Snapshot v1, https://goo.gl/fbAQLP
|
||||
|
||||
exports[`print update notification if the latest version is greater than the current 1`] = `
|
||||
"
|
||||
╭──────────────────────────────────────────────────────────────────╮
|
||||
│ │
|
||||
│ Update available! 10.0.0 → 11.0.0. │
|
||||
│ Changelog: https://github.com/pnpm/pnpm/releases/tag/v11.0.0 │
|
||||
│ Run pnpm add -g pnpm to update. │
|
||||
│ │
|
||||
│ Follow @pnpmjs for updates: https://twitter.com/pnpmjs │
|
||||
│ │
|
||||
╰──────────────────────────────────────────────────────────────────╯
|
||||
"
|
||||
`;
|
||||
@@ -1,12 +1,9 @@
|
||||
import { Config } from '@pnpm/config'
|
||||
import { scopeLogger } from '@pnpm/core-loggers'
|
||||
import { toOutput$ } from '@pnpm/default-reporter'
|
||||
import logger, {
|
||||
createStreamParser,
|
||||
} from '@pnpm/logger'
|
||||
import { createStreamParser } from '@pnpm/logger'
|
||||
import { take } from 'rxjs/operators'
|
||||
|
||||
const scopeLogger = logger<object>('scope')
|
||||
|
||||
test('does not print scope of non-recursive install in a workspace', (done) => {
|
||||
const output$ = toOutput$({
|
||||
context: {
|
||||
|
||||
58
packages/default-reporter/test/reportingUpdateCheck.ts
Normal file
58
packages/default-reporter/test/reportingUpdateCheck.ts
Normal file
@@ -0,0 +1,58 @@
|
||||
import { Config } from '@pnpm/config'
|
||||
import { updateCheckLogger } from '@pnpm/core-loggers'
|
||||
import { toOutput$ } from '@pnpm/default-reporter'
|
||||
import { createStreamParser } from '@pnpm/logger'
|
||||
import { take } from 'rxjs/operators'
|
||||
import stripAnsi from 'strip-ansi'
|
||||
|
||||
test('does not print update if latest is less than current', (done) => {
|
||||
const output$ = toOutput$({
|
||||
context: {
|
||||
argv: ['install'],
|
||||
},
|
||||
streamParser: createStreamParser(),
|
||||
})
|
||||
|
||||
updateCheckLogger.debug({
|
||||
currentVersion: '10.0.0',
|
||||
latestVersion: '9.0.0',
|
||||
})
|
||||
|
||||
const subscription = output$.subscribe({
|
||||
complete: () => done(),
|
||||
error: done,
|
||||
next: () => {
|
||||
done('should not log anything')
|
||||
},
|
||||
})
|
||||
|
||||
setTimeout(() => {
|
||||
done()
|
||||
subscription.unsubscribe()
|
||||
}, 10)
|
||||
})
|
||||
|
||||
test('print update notification if the latest version is greater than the current', (done) => {
|
||||
const output$ = toOutput$({
|
||||
context: {
|
||||
argv: ['install'],
|
||||
config: { recursive: true } as Config,
|
||||
},
|
||||
streamParser: createStreamParser(),
|
||||
})
|
||||
|
||||
updateCheckLogger.debug({
|
||||
currentVersion: '10.0.0',
|
||||
latestVersion: '11.0.0',
|
||||
})
|
||||
|
||||
expect.assertions(1)
|
||||
|
||||
output$.pipe(take(1)).subscribe({
|
||||
complete: () => done(),
|
||||
error: done,
|
||||
next: output => {
|
||||
expect(stripAnsi(output)).toMatchSnapshot()
|
||||
},
|
||||
})
|
||||
})
|
||||
@@ -16,14 +16,13 @@
|
||||
"bin"
|
||||
],
|
||||
"optionalDependencies": {
|
||||
"graceful-fs": "4.2.4",
|
||||
"node-gyp": "^7.1.2",
|
||||
"update-notifier": "^5.1.0"
|
||||
"node-gyp": "^7.1.2"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@pnpm/assert-project": "workspace:*",
|
||||
"@pnpm/cli-meta": "workspace:1.0.2",
|
||||
"@pnpm/cli-utils": "workspace:0.5.3",
|
||||
"@pnpm/client": "workspace:2.0.24",
|
||||
"@pnpm/command": "workspace:1.0.0",
|
||||
"@pnpm/common-cli-options-help": "workspace:0.3.1",
|
||||
"@pnpm/config": "workspace:11.14.1",
|
||||
@@ -38,6 +37,7 @@
|
||||
"@pnpm/logger": "^3.2.3",
|
||||
"@pnpm/modules-yaml": "workspace:8.0.6",
|
||||
"@pnpm/parse-cli-args": "workspace:3.2.2",
|
||||
"@pnpm/pick-registry-for-package": "workspace:1.1.0",
|
||||
"@pnpm/plugin-commands-audit": "workspace:3.0.5",
|
||||
"@pnpm/plugin-commands-import": "workspace:1.0.109",
|
||||
"@pnpm/plugin-commands-installation": "workspace:3.5.27",
|
||||
@@ -52,6 +52,7 @@
|
||||
"@pnpm/read-package-json": "workspace:4.0.0",
|
||||
"@pnpm/read-project-manifest": "workspace:1.1.7",
|
||||
"@pnpm/run-npm": "workspace:2.0.3",
|
||||
"@pnpm/store-path": "5.0.0-0",
|
||||
"@pnpm/tabtab": "^0.1.2",
|
||||
"@pnpm/types": "workspace:6.4.0",
|
||||
"@pnpm/write-project-manifest": "workspace:1.1.7",
|
||||
|
||||
95
packages/pnpm/src/checkForUpdates.test.ts
Normal file
95
packages/pnpm/src/checkForUpdates.test.ts
Normal file
@@ -0,0 +1,95 @@
|
||||
import getConfig from '@pnpm/config'
|
||||
import { updateCheckLogger } from '@pnpm/core-loggers'
|
||||
import { prepareEmpty } from '@pnpm/prepare'
|
||||
import loadJsonFile from 'load-json-file'
|
||||
import writeJsonFile from 'write-json-file'
|
||||
import checkForUpdates from './checkForUpdates'
|
||||
|
||||
jest.mock('os', () => {
|
||||
const os = jest.requireActual('os')
|
||||
return {
|
||||
...os,
|
||||
homedir: () => process.cwd(),
|
||||
}
|
||||
})
|
||||
|
||||
jest.mock('@pnpm/core-loggers', () => ({
|
||||
updateCheckLogger: { debug: jest.fn() },
|
||||
}))
|
||||
|
||||
beforeEach(() => {
|
||||
updateCheckLogger.debug['mockReset']()
|
||||
})
|
||||
|
||||
test('check for updates when no pnpm state file is present', async () => {
|
||||
prepareEmpty()
|
||||
|
||||
const { config } = await getConfig({
|
||||
cliOptions: {},
|
||||
packageManager: {
|
||||
name: 'pnpm',
|
||||
version: '1.0.0',
|
||||
},
|
||||
})
|
||||
await checkForUpdates(config)
|
||||
|
||||
expect(updateCheckLogger.debug).toBeCalledWith({
|
||||
currentVersion: expect.any(String),
|
||||
latestVersion: expect.any(String),
|
||||
})
|
||||
|
||||
const state = await loadJsonFile('.pnpm-state.json')
|
||||
expect(state).toEqual({
|
||||
lastUpdateCheck: expect.any(String),
|
||||
})
|
||||
})
|
||||
|
||||
test('do not check for updates when last update check happened recently', async () => {
|
||||
prepareEmpty()
|
||||
|
||||
const lastUpdateCheck = new Date().toUTCString()
|
||||
await writeJsonFile('.pnpm-state.json', { lastUpdateCheck })
|
||||
|
||||
const { config } = await getConfig({
|
||||
cliOptions: {},
|
||||
packageManager: {
|
||||
name: 'pnpm',
|
||||
version: '1.0.0',
|
||||
},
|
||||
})
|
||||
await checkForUpdates(config)
|
||||
|
||||
expect(updateCheckLogger.debug).not.toBeCalled()
|
||||
|
||||
const state = await loadJsonFile('.pnpm-state.json')
|
||||
expect(state).toStrictEqual({ lastUpdateCheck })
|
||||
})
|
||||
|
||||
test('check for updates when last update check happened two days ago', async () => {
|
||||
prepareEmpty()
|
||||
|
||||
const lastUpdateCheckDate = new Date()
|
||||
lastUpdateCheckDate.setDate(lastUpdateCheckDate.getDate() - 2)
|
||||
const initialLastUpdateCheck = lastUpdateCheckDate.toUTCString()
|
||||
await writeJsonFile('.pnpm-state.json', {
|
||||
lastUpdateCheck: initialLastUpdateCheck,
|
||||
})
|
||||
|
||||
const { config } = await getConfig({
|
||||
cliOptions: {},
|
||||
packageManager: {
|
||||
name: 'pnpm',
|
||||
version: '1.0.0',
|
||||
},
|
||||
})
|
||||
await checkForUpdates(config)
|
||||
|
||||
expect(updateCheckLogger.debug).toBeCalledWith({
|
||||
currentVersion: expect.any(String),
|
||||
latestVersion: expect.any(String),
|
||||
})
|
||||
|
||||
const state = await loadJsonFile<{ lastUpdateCheck: string }>('.pnpm-state.json')
|
||||
expect(state.lastUpdateCheck).toBeDefined()
|
||||
expect(state.lastUpdateCheck).not.toEqual(initialLastUpdateCheck)
|
||||
})
|
||||
@@ -1,25 +1,56 @@
|
||||
import { homedir } from 'os'
|
||||
import path from 'path'
|
||||
import packageManager from '@pnpm/cli-meta'
|
||||
import chalk from 'chalk'
|
||||
import { Config } from '@pnpm/config'
|
||||
import { createResolver } from '@pnpm/client'
|
||||
import pickRegistryForPackage from '@pnpm/pick-registry-for-package'
|
||||
import storePath from '@pnpm/store-path'
|
||||
import { updateCheckLogger } from '@pnpm/core-loggers'
|
||||
import loadJsonFile from 'load-json-file'
|
||||
import writeJsonFile from 'write-json-file'
|
||||
|
||||
export default async function () {
|
||||
let updateNotifier
|
||||
try {
|
||||
updateNotifier = (await import('update-notifier')).default
|
||||
} catch (err) {
|
||||
return
|
||||
}
|
||||
const notifier = updateNotifier({ pkg: packageManager })
|
||||
const update = notifier.update
|
||||
|
||||
if (update == null) {
|
||||
return
|
||||
}
|
||||
|
||||
const message = `Update available! ${chalk.red(update.current)} → ${chalk.green(update.latest)}
|
||||
${chalk.magenta('Changelog:')} https://github.com/pnpm/pnpm/releases/tag/v${update.latest}
|
||||
Run ${chalk.magenta('pnpm i -g pnpm')} to update!
|
||||
|
||||
Follow ${chalk.magenta('@pnpmjs')} for updates: https://twitter.com/pnpmjs`
|
||||
|
||||
notifier.notify({ message })
|
||||
interface State {
|
||||
lastUpdateCheck?: string
|
||||
}
|
||||
|
||||
const UPDATE_CHECK_FREQUENCY = 24 * 60 * 60 * 1000 // 1 day
|
||||
|
||||
export default async function (config: Config) {
|
||||
const stateFile = path.join(homedir(), '.pnpm-state.json')
|
||||
let state: State | undefined
|
||||
try {
|
||||
state = await loadJsonFile(stateFile)
|
||||
} catch (err) {}
|
||||
|
||||
if (
|
||||
state?.lastUpdateCheck &&
|
||||
(Date.now() - new Date(state.lastUpdateCheck).valueOf()) < UPDATE_CHECK_FREQUENCY
|
||||
) return
|
||||
|
||||
try {
|
||||
const storeDir = await storePath(config.dir, config.storeDir)
|
||||
const resolve = createResolver({
|
||||
...config,
|
||||
authConfig: config.rawConfig,
|
||||
storeDir,
|
||||
})
|
||||
const resolution = await resolve({ alias: packageManager.name, pref: 'latest' }, {
|
||||
lockfileDir: config.lockfileDir ?? config.dir,
|
||||
preferredVersions: {},
|
||||
projectDir: config.dir,
|
||||
registry: pickRegistryForPackage(config.registries, packageManager.name, 'latest'),
|
||||
})
|
||||
if (resolution?.manifest?.version) {
|
||||
updateCheckLogger.debug({
|
||||
currentVersion: packageManager.version,
|
||||
latestVersion: resolution?.manifest.version,
|
||||
})
|
||||
}
|
||||
await writeJsonFile(stateFile, {
|
||||
...state,
|
||||
lastUpdateCheck: new Date().toUTCString(),
|
||||
})
|
||||
} catch (err) {
|
||||
// ignore any issues
|
||||
}
|
||||
}
|
||||
|
||||
@@ -115,15 +115,6 @@ export default async function run (inputArgv: string[]) {
|
||||
write = (text) => process.stdout.write(stripAnsi(text))
|
||||
}
|
||||
|
||||
const selfUpdate = config.global && (cmd === 'add' || cmd === 'update') && cliParams.includes(packageManager.name)
|
||||
|
||||
// Don't check for updates
|
||||
// 1. on CI environments
|
||||
// 2. when in the middle of an actual update
|
||||
if (!isCI && !selfUpdate) {
|
||||
await checkForUpdates()
|
||||
}
|
||||
|
||||
const reporterType: ReporterType = (() => {
|
||||
if (config.loglevel === 'silent') return 'silent'
|
||||
if (config.reporter) return config.reporter as ReporterType
|
||||
@@ -137,6 +128,8 @@ export default async function run (inputArgv: string[]) {
|
||||
})
|
||||
global['reporterInitialized'] = reporterType
|
||||
|
||||
const selfUpdate = config.global && (cmd === 'add' || cmd === 'update') && cliParams.includes(packageManager.name)
|
||||
|
||||
if (selfUpdate) {
|
||||
await pnpmCmds.server(config as any, ['stop']) // eslint-disable-line @typescript-eslint/no-explicit-any
|
||||
try {
|
||||
@@ -194,6 +187,13 @@ export default async function run (inputArgv: string[]) {
|
||||
// NOTE: we defer the next stage, otherwise reporter might not catch all the logs
|
||||
const [output, exitCode] = await new Promise((resolve, reject) => {
|
||||
setTimeout(async () => {
|
||||
// Don't check for updates
|
||||
// 1. on CI environments
|
||||
// 2. when in the middle of an actual update
|
||||
if (!isCI && !selfUpdate) {
|
||||
await checkForUpdates(config)
|
||||
}
|
||||
|
||||
if (config.force === true) {
|
||||
logger.warn({
|
||||
message: 'using --force I sure hope you know what you are doing',
|
||||
|
||||
@@ -24,6 +24,9 @@
|
||||
{
|
||||
"path": "../cli-utils"
|
||||
},
|
||||
{
|
||||
"path": "../client"
|
||||
},
|
||||
{
|
||||
"path": "../command"
|
||||
},
|
||||
@@ -60,6 +63,9 @@
|
||||
{
|
||||
"path": "../parse-cli-args"
|
||||
},
|
||||
{
|
||||
"path": "../pick-registry-for-package"
|
||||
},
|
||||
{
|
||||
"path": "../pkgs-graph"
|
||||
},
|
||||
|
||||
332
pnpm-lock.yaml
generated
332
pnpm-lock.yaml
generated
@@ -314,6 +314,7 @@ importers:
|
||||
'@types/ramda': ^0.27.35
|
||||
'@types/semver': ^7.3.4
|
||||
ansi-diff: ^1.1.1
|
||||
boxen: ^5.0.0
|
||||
chalk: ^4.1.0
|
||||
ghooks: 2.0.4
|
||||
load-json-file: ^6.2.0
|
||||
@@ -334,6 +335,7 @@ importers:
|
||||
'@pnpm/error': link:../error
|
||||
'@pnpm/types': link:../types
|
||||
ansi-diff: 1.1.1
|
||||
boxen: 5.0.0
|
||||
chalk: 4.1.0
|
||||
normalize-path: 3.0.0
|
||||
pretty-bytes: 5.6.0
|
||||
@@ -2272,6 +2274,7 @@ importers:
|
||||
'@pnpm/assert-project': workspace:*
|
||||
'@pnpm/cli-meta': workspace:1.0.2
|
||||
'@pnpm/cli-utils': workspace:0.5.3
|
||||
'@pnpm/client': workspace:2.0.24
|
||||
'@pnpm/command': workspace:1.0.0
|
||||
'@pnpm/common-cli-options-help': workspace:0.3.1
|
||||
'@pnpm/config': workspace:11.14.1
|
||||
@@ -2286,6 +2289,7 @@ importers:
|
||||
'@pnpm/logger': ^3.2.3
|
||||
'@pnpm/modules-yaml': workspace:8.0.6
|
||||
'@pnpm/parse-cli-args': workspace:3.2.2
|
||||
'@pnpm/pick-registry-for-package': workspace:1.1.0
|
||||
'@pnpm/plugin-commands-audit': workspace:3.0.5
|
||||
'@pnpm/plugin-commands-import': workspace:1.0.109
|
||||
'@pnpm/plugin-commands-installation': workspace:3.5.27
|
||||
@@ -2300,6 +2304,7 @@ importers:
|
||||
'@pnpm/read-package-json': workspace:4.0.0
|
||||
'@pnpm/read-project-manifest': workspace:1.1.7
|
||||
'@pnpm/run-npm': workspace:2.0.3
|
||||
'@pnpm/store-path': 5.0.0-0
|
||||
'@pnpm/tabtab': ^0.1.2
|
||||
'@pnpm/types': workspace:6.4.0
|
||||
'@pnpm/write-project-manifest': workspace:1.1.7
|
||||
@@ -2326,7 +2331,6 @@ importers:
|
||||
esbuild: ^0.9.0
|
||||
execa: ^5.0.0
|
||||
exists-link: 2.0.0
|
||||
graceful-fs: 4.2.4
|
||||
is-ci: ^3.0.0
|
||||
is-windows: ^1.0.2
|
||||
load-json-file: ^6.2.0
|
||||
@@ -2351,19 +2355,17 @@ importers:
|
||||
symlink-dir: ^4.2.0
|
||||
tempy: ^1.0.0
|
||||
tree-kill: ^1.2.2
|
||||
update-notifier: ^5.1.0
|
||||
which: ^2.0.2
|
||||
write-json-file: ^4.3.0
|
||||
write-pkg: 4.0.0
|
||||
write-yaml-file: ^4.2.0
|
||||
optionalDependencies:
|
||||
graceful-fs: 4.2.4
|
||||
node-gyp: 7.1.2
|
||||
update-notifier: 5.1.0
|
||||
devDependencies:
|
||||
'@pnpm/assert-project': link:../../privatePackages/assert-project
|
||||
'@pnpm/cli-meta': link:../cli-meta
|
||||
'@pnpm/cli-utils': link:../cli-utils
|
||||
'@pnpm/client': link:../client
|
||||
'@pnpm/command': link:../command
|
||||
'@pnpm/common-cli-options-help': link:../common-cli-options-help
|
||||
'@pnpm/config': link:../config
|
||||
@@ -2378,6 +2380,7 @@ importers:
|
||||
'@pnpm/logger': 3.2.3
|
||||
'@pnpm/modules-yaml': link:../modules-yaml
|
||||
'@pnpm/parse-cli-args': link:../parse-cli-args
|
||||
'@pnpm/pick-registry-for-package': link:../pick-registry-for-package
|
||||
'@pnpm/plugin-commands-audit': link:../plugin-commands-audit
|
||||
'@pnpm/plugin-commands-import': link:../plugin-commands-import
|
||||
'@pnpm/plugin-commands-installation': link:../plugin-commands-installation
|
||||
@@ -2392,6 +2395,7 @@ importers:
|
||||
'@pnpm/read-package-json': link:../read-package-json
|
||||
'@pnpm/read-project-manifest': link:../read-project-manifest
|
||||
'@pnpm/run-npm': link:../run-npm
|
||||
'@pnpm/store-path': 5.0.0-0
|
||||
'@pnpm/tabtab': 0.1.2
|
||||
'@pnpm/types': link:../types
|
||||
'@pnpm/write-project-manifest': link:../write-project-manifest
|
||||
@@ -4384,12 +4388,6 @@ packages:
|
||||
write-yaml-file: 4.2.0
|
||||
dev: true
|
||||
|
||||
/@sindresorhus/is/0.14.0:
|
||||
resolution: {integrity: sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ==}
|
||||
engines: {node: '>=6'}
|
||||
dev: false
|
||||
optional: true
|
||||
|
||||
/@sinonjs/commons/1.8.2:
|
||||
resolution: {integrity: sha512-sruwd86RJHdsVf/AtBoijDmUqJp3B6hF/DGC23C+JaegnDHaZyewCjoVGTdg3J0uz3Zs7NnIT05OBOmML72lQw==}
|
||||
dependencies:
|
||||
@@ -4420,14 +4418,6 @@ packages:
|
||||
resolution: {integrity: sha512-+iTbntw2IZPb/anVDbypzfQa+ay64MW0Zo8aJ8gZPWMMK6/OubMVb6lUPMagqjOPnmtauXnFCACVl3O7ogjeqQ==}
|
||||
dev: true
|
||||
|
||||
/@szmarczak/http-timer/1.1.2:
|
||||
resolution: {integrity: sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA==}
|
||||
engines: {node: '>=6'}
|
||||
dependencies:
|
||||
defer-to-connect: 1.1.3
|
||||
dev: false
|
||||
optional: true
|
||||
|
||||
/@tootallnate/once/1.1.2:
|
||||
resolution: {integrity: sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==}
|
||||
engines: {node: '>= 6'}
|
||||
@@ -5899,7 +5889,6 @@ packages:
|
||||
widest-line: 3.1.0
|
||||
wrap-ansi: 7.0.0
|
||||
dev: false
|
||||
optional: true
|
||||
|
||||
/brace-expansion/1.1.11:
|
||||
resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==}
|
||||
@@ -6062,20 +6051,6 @@ packages:
|
||||
unset-value: 1.0.0
|
||||
dev: true
|
||||
|
||||
/cacheable-request/6.1.0:
|
||||
resolution: {integrity: sha512-Oj3cAGPCqOZX7Rz64Uny2GYAZNliQSqfbePrgAQ1wKAihYmCUnraBtJtKcGR4xz7wF+LoJC+ssFZvv5BgF9Igg==}
|
||||
engines: {node: '>=8'}
|
||||
dependencies:
|
||||
clone-response: 1.0.2
|
||||
get-stream: 5.2.0
|
||||
http-cache-semantics: 4.1.0
|
||||
keyv: 3.1.0
|
||||
lowercase-keys: 2.0.0
|
||||
normalize-url: 4.5.0
|
||||
responselike: 1.0.2
|
||||
dev: false
|
||||
optional: true
|
||||
|
||||
/call-bind/1.0.2:
|
||||
resolution: {integrity: sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==}
|
||||
dependencies:
|
||||
@@ -6200,6 +6175,7 @@ packages:
|
||||
|
||||
/ci-info/2.0.0:
|
||||
resolution: {integrity: sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==}
|
||||
dev: true
|
||||
|
||||
/ci-info/3.1.1:
|
||||
resolution: {integrity: sha512-kdRWLBIJwdsYJWYJFtAFFYxybguqeF91qpZaggjG5Nf8QKdizFG2hjqvaTXbxFIcYbSaD74KpAXv6BSm17DHEQ==}
|
||||
@@ -6294,13 +6270,6 @@ packages:
|
||||
shallow-clone: 3.0.1
|
||||
dev: true
|
||||
|
||||
/clone-response/1.0.2:
|
||||
resolution: {integrity: sha1-0dyXOSAxTfZ/vrlCI7TuNQI56Ws=}
|
||||
dependencies:
|
||||
mimic-response: 1.0.1
|
||||
dev: false
|
||||
optional: true
|
||||
|
||||
/clone-stats/1.0.0:
|
||||
resolution: {integrity: sha1-s3gt/4u1R04Yuba/D9/ngvh3doA=}
|
||||
dev: true
|
||||
@@ -6465,19 +6434,6 @@ packages:
|
||||
ini: 1.3.8
|
||||
proto-list: 1.2.4
|
||||
|
||||
/configstore/5.0.1:
|
||||
resolution: {integrity: sha512-aMKprgk5YhBNyH25hj8wGt2+D52Sw1DRRIzqBwLp2Ya9mFmY8KPvvtvmna8SxVR9JMZ4kzMD68N22vlaRpkeFA==}
|
||||
engines: {node: '>=8'}
|
||||
dependencies:
|
||||
dot-prop: 5.3.0
|
||||
graceful-fs: 4.2.4
|
||||
make-dir: 3.1.0
|
||||
unique-string: 2.0.0
|
||||
write-file-atomic: 3.0.3
|
||||
xdg-basedir: 4.0.0
|
||||
dev: false
|
||||
optional: true
|
||||
|
||||
/console-control-strings/1.1.0:
|
||||
resolution: {integrity: sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=}
|
||||
|
||||
@@ -6817,24 +6773,10 @@ packages:
|
||||
pumpify: 1.5.1
|
||||
dev: false
|
||||
|
||||
/decompress-response/3.3.0:
|
||||
resolution: {integrity: sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M=}
|
||||
engines: {node: '>=4'}
|
||||
dependencies:
|
||||
mimic-response: 1.0.1
|
||||
dev: false
|
||||
optional: true
|
||||
|
||||
/dedent/0.7.0:
|
||||
resolution: {integrity: sha1-JJXduvbrh0q7Dhvp3yLS5aVEMmw=}
|
||||
dev: true
|
||||
|
||||
/deep-extend/0.6.0:
|
||||
resolution: {integrity: sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==}
|
||||
engines: {node: '>=4.0.0'}
|
||||
dev: false
|
||||
optional: true
|
||||
|
||||
/deep-is/0.1.3:
|
||||
resolution: {integrity: sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=}
|
||||
dev: true
|
||||
@@ -6868,11 +6810,6 @@ packages:
|
||||
clone: 1.0.4
|
||||
dev: true
|
||||
|
||||
/defer-to-connect/1.1.3:
|
||||
resolution: {integrity: sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ==}
|
||||
dev: false
|
||||
optional: true
|
||||
|
||||
/deferred-leveldown/5.3.0:
|
||||
resolution: {integrity: sha512-a59VOT+oDy7vtAbLRCZwWgxu2BaCfd5Hk7wxJd48ei7I+nsg8Orlb9CLG0PMZienk9BSUKgeAqkO2+Lw+1+Ukw==}
|
||||
engines: {node: '>=6'}
|
||||
@@ -7056,6 +6993,7 @@ packages:
|
||||
engines: {node: '>=8'}
|
||||
dependencies:
|
||||
is-obj: 2.0.0
|
||||
dev: true
|
||||
|
||||
/dotenv/8.2.0:
|
||||
resolution: {integrity: sha512-8sJ78ElpbDJBHNeBzUbUVLsqKdccaa/BXF1uPTw3GrvQTBgrQrtObr2mUrE38vzYd8cEv+m/JBfDLioYcfXoaw==}
|
||||
@@ -7071,11 +7009,6 @@ packages:
|
||||
dev: true
|
||||
optional: true
|
||||
|
||||
/duplexer3/0.1.4:
|
||||
resolution: {integrity: sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI=}
|
||||
dev: false
|
||||
optional: true
|
||||
|
||||
/duplexify/3.7.1:
|
||||
resolution: {integrity: sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g==}
|
||||
dependencies:
|
||||
@@ -7230,12 +7163,6 @@ packages:
|
||||
engines: {node: '>=6'}
|
||||
dev: true
|
||||
|
||||
/escape-goat/2.1.1:
|
||||
resolution: {integrity: sha512-8/uIhbG12Csjy2JEW7D9pHbreaVaS/OpN3ycnyvElTdwM5n6GY6W6e2IPemfvGZeUMqZ9A/3GqIZMgKnBhAw/Q==}
|
||||
engines: {node: '>=8'}
|
||||
dev: false
|
||||
optional: true
|
||||
|
||||
/escape-html/1.0.3:
|
||||
resolution: {integrity: sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=}
|
||||
dev: true
|
||||
@@ -8117,19 +8044,12 @@ packages:
|
||||
engines: {node: '>=4'}
|
||||
dev: true
|
||||
|
||||
/get-stream/4.1.0:
|
||||
resolution: {integrity: sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==}
|
||||
engines: {node: '>=6'}
|
||||
dependencies:
|
||||
pump: 3.0.0
|
||||
dev: false
|
||||
optional: true
|
||||
|
||||
/get-stream/5.2.0:
|
||||
resolution: {integrity: sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==}
|
||||
engines: {node: '>=8'}
|
||||
dependencies:
|
||||
pump: 3.0.0
|
||||
dev: true
|
||||
|
||||
/get-stream/6.0.0:
|
||||
resolution: {integrity: sha512-A1B3Bh1UmL0bidM/YX2NsCOTnGJePL9rO/M+Mw3m9f2gUpfokS0hi5Eah0WSUEWZdZhIZtMjkIYS7mDfOqNHbg==}
|
||||
@@ -8240,14 +8160,6 @@ packages:
|
||||
ini: 1.3.7
|
||||
dev: true
|
||||
|
||||
/global-dirs/3.0.0:
|
||||
resolution: {integrity: sha512-v8ho2DS5RiCjftj1nD9NmnfaOzTdud7RRnVd9kFNOjqZbISlx5DQ+OrTkywgd0dIt7oFCvKetZSHoHcP3sDdiA==}
|
||||
engines: {node: '>=10'}
|
||||
dependencies:
|
||||
ini: 2.0.0
|
||||
dev: false
|
||||
optional: true
|
||||
|
||||
/globals/11.12.0:
|
||||
resolution: {integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==}
|
||||
engines: {node: '>=4'}
|
||||
@@ -8292,24 +8204,6 @@ packages:
|
||||
slash: 2.0.0
|
||||
dev: true
|
||||
|
||||
/got/9.6.0:
|
||||
resolution: {integrity: sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q==}
|
||||
engines: {node: '>=8.6'}
|
||||
dependencies:
|
||||
'@sindresorhus/is': 0.14.0
|
||||
'@szmarczak/http-timer': 1.1.2
|
||||
cacheable-request: 6.1.0
|
||||
decompress-response: 3.3.0
|
||||
duplexer3: 0.1.4
|
||||
get-stream: 4.1.0
|
||||
lowercase-keys: 1.0.1
|
||||
mimic-response: 1.0.1
|
||||
p-cancelable: 1.1.0
|
||||
to-readable-stream: 1.0.0
|
||||
url-parse-lax: 3.0.0
|
||||
dev: false
|
||||
optional: true
|
||||
|
||||
/graceful-fs/4.2.4:
|
||||
resolution: {integrity: sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw==}
|
||||
|
||||
@@ -8446,12 +8340,6 @@ packages:
|
||||
kind-of: 4.0.0
|
||||
dev: true
|
||||
|
||||
/has-yarn/2.1.0:
|
||||
resolution: {integrity: sha512-UqBRqi4ju7T+TqGNdqAO0PaSVGsDGJUBQvk9eUWNGRY1CFGDzYhLWoM7JQEemnlvVcv/YEmc2wNW8BC24EnUsw==}
|
||||
engines: {node: '>=8'}
|
||||
dev: false
|
||||
optional: true
|
||||
|
||||
/has/1.0.3:
|
||||
resolution: {integrity: sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==}
|
||||
engines: {node: '>= 0.4.0'}
|
||||
@@ -8491,11 +8379,6 @@ packages:
|
||||
resolution: {integrity: sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==}
|
||||
dev: true
|
||||
|
||||
/http-cache-semantics/4.1.0:
|
||||
resolution: {integrity: sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ==}
|
||||
dev: false
|
||||
optional: true
|
||||
|
||||
/http-errors/1.8.0:
|
||||
resolution: {integrity: sha512-4I8r0C5JDhT5VkvI47QktDW75rNlGVsUf/8hzjCC/wkWI/jdTRmBb9aI7erSG82r1bjKY3F6k28WnsVxB1C73A==}
|
||||
engines: {node: '>= 0.6'}
|
||||
@@ -8623,12 +8506,6 @@ packages:
|
||||
resolve-from: 5.0.0
|
||||
dev: false
|
||||
|
||||
/import-lazy/2.1.0:
|
||||
resolution: {integrity: sha1-BWmOPUXIjo1+nZLLBYTnfwlvPkM=}
|
||||
engines: {node: '>=4'}
|
||||
dev: false
|
||||
optional: true
|
||||
|
||||
/import-local/3.0.2:
|
||||
resolution: {integrity: sha512-vjL3+w0oulAVZ0hBHnxa/Nm5TAurf9YLQJDhqRZyqb+VKGOB6LU8t9H1Nr5CIo16vh9XfJTOoHwU0B71S557gA==}
|
||||
engines: {node: '>=8'}
|
||||
@@ -8775,6 +8652,7 @@ packages:
|
||||
hasBin: true
|
||||
dependencies:
|
||||
ci-info: 2.0.0
|
||||
dev: true
|
||||
|
||||
/is-ci/3.0.0:
|
||||
resolution: {integrity: sha512-kDXyttuLeslKAHYL/K28F2YkM3x5jvFPEw3yXbRptXydjD9rpLEz+C5K5iutY9ZiUu6AP41JdvRQwF4Iqs4ZCQ==}
|
||||
@@ -8893,15 +8771,6 @@ packages:
|
||||
resolve-link-target: 2.0.0
|
||||
dev: false
|
||||
|
||||
/is-installed-globally/0.4.0:
|
||||
resolution: {integrity: sha512-iwGqO3J21aaSkC7jWnHP/difazwS7SFeIqxv6wEtLU8Y5KlzFTjyqcSIT0d8s4+dDhKytsk9PJZ2BkS5eZwQRQ==}
|
||||
engines: {node: '>=10'}
|
||||
dependencies:
|
||||
global-dirs: 3.0.0
|
||||
is-path-inside: 3.0.3
|
||||
dev: false
|
||||
optional: true
|
||||
|
||||
/is-negated-glob/1.0.0:
|
||||
resolution: {integrity: sha1-aRC8pdqMleeEtXUbl2z1oQ/uNtI=}
|
||||
engines: {node: '>=0.10.0'}
|
||||
@@ -8911,12 +8780,6 @@ packages:
|
||||
resolution: {integrity: sha512-2z6JzQvZRa9A2Y7xC6dQQm4FSTSTNWjKIYYTt4246eMTJmIo0Q+ZyOsU66X8lxK1AbB92dFeglPLrhwpeRKO6w==}
|
||||
engines: {node: '>= 0.4'}
|
||||
|
||||
/is-npm/5.0.0:
|
||||
resolution: {integrity: sha512-WW/rQLOazUq+ST/bCAVBp/2oMERWLsR7OrKyt052dNDk4DHcDE0/7QSXITlmi+VBcV13DfIbysG3tZJm5RfdBA==}
|
||||
engines: {node: '>=10'}
|
||||
dev: false
|
||||
optional: true
|
||||
|
||||
/is-number-object/1.0.4:
|
||||
resolution: {integrity: sha512-zohwelOAur+5uXtk8O3GPQ1eAcu4ZX3UwxQhUlfFFMNpUd83gXgjbhJh6HmB6LUNV/ieOLQuDwJO3dWJosUeMw==}
|
||||
engines: {node: '>= 0.4'}
|
||||
@@ -8940,6 +8803,7 @@ packages:
|
||||
/is-obj/2.0.0:
|
||||
resolution: {integrity: sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==}
|
||||
engines: {node: '>=8'}
|
||||
dev: true
|
||||
|
||||
/is-object/1.0.2:
|
||||
resolution: {integrity: sha512-2rRIahhZr2UWb45fIOuvZGpFtz0TyOZLf32KxBbSoUCeZR495zCKlWUKKUByk3geS2eAs7ZAABt0Y/Rx0GiQGA==}
|
||||
@@ -9046,11 +8910,6 @@ packages:
|
||||
resolution: {integrity: sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==}
|
||||
engines: {node: '>=0.10.0'}
|
||||
|
||||
/is-yarn-global/0.3.0:
|
||||
resolution: {integrity: sha512-VjSeb/lHmkoyd8ryPVIKvOCn4D1koMqY+vqyjjUfc3xyKtP4dYOxM44sZrnqQSzSds3xyOrUTLTC9LVCVgLngw==}
|
||||
dev: false
|
||||
optional: true
|
||||
|
||||
/isarray/0.0.1:
|
||||
resolution: {integrity: sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=}
|
||||
dev: true
|
||||
@@ -9717,11 +9576,6 @@ packages:
|
||||
concat-stream: 1.6.2
|
||||
dev: true
|
||||
|
||||
/json-buffer/3.0.0:
|
||||
resolution: {integrity: sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg=}
|
||||
dev: false
|
||||
optional: true
|
||||
|
||||
/json-parse-better-errors/1.0.2:
|
||||
resolution: {integrity: sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==}
|
||||
dev: true
|
||||
@@ -9834,13 +9688,6 @@ packages:
|
||||
tsscmp: 1.0.6
|
||||
dev: true
|
||||
|
||||
/keyv/3.1.0:
|
||||
resolution: {integrity: sha512-9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA==}
|
||||
dependencies:
|
||||
json-buffer: 3.0.0
|
||||
dev: false
|
||||
optional: true
|
||||
|
||||
/kind-of/3.2.2:
|
||||
resolution: {integrity: sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=}
|
||||
engines: {node: '>=0.10.0'}
|
||||
@@ -9880,14 +9727,6 @@ packages:
|
||||
engines: {node: '>=0.10.0'}
|
||||
dev: true
|
||||
|
||||
/latest-version/5.1.0:
|
||||
resolution: {integrity: sha512-weT+r0kTkRQdCdYCNtkMwWXQTMEswKrFBkm4ckQOMVhhqhIMI1UT2hMj+1iigIhgSZm5gTmrRXBNoGUgaTY1xA==}
|
||||
engines: {node: '>=8'}
|
||||
dependencies:
|
||||
package-json: 6.5.0
|
||||
dev: false
|
||||
optional: true
|
||||
|
||||
/lazy-cache/2.0.2:
|
||||
resolution: {integrity: sha1-uRkKT5EzVGlIQIWfio9whNiCImQ=}
|
||||
engines: {node: '>=0.10.0'}
|
||||
@@ -10225,18 +10064,6 @@ packages:
|
||||
signal-exit: 3.0.3
|
||||
dev: true
|
||||
|
||||
/lowercase-keys/1.0.1:
|
||||
resolution: {integrity: sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==}
|
||||
engines: {node: '>=0.10.0'}
|
||||
dev: false
|
||||
optional: true
|
||||
|
||||
/lowercase-keys/2.0.0:
|
||||
resolution: {integrity: sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==}
|
||||
engines: {node: '>=8'}
|
||||
dev: false
|
||||
optional: true
|
||||
|
||||
/lru-cache/4.1.5:
|
||||
resolution: {integrity: sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==}
|
||||
dependencies:
|
||||
@@ -10481,12 +10308,6 @@ packages:
|
||||
engines: {node: '>=8'}
|
||||
dev: false
|
||||
|
||||
/mimic-response/1.0.1:
|
||||
resolution: {integrity: sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==}
|
||||
engines: {node: '>=4'}
|
||||
dev: false
|
||||
optional: true
|
||||
|
||||
/min-indent/1.0.1:
|
||||
resolution: {integrity: sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==}
|
||||
engines: {node: '>=4'}
|
||||
@@ -10816,12 +10637,6 @@ packages:
|
||||
resolution: {integrity: sha512-0v6T4851b72ykk5zEtFoN4QX/Fqyk7pouIj9xZyAvAe9jlDhAwT4z6FlwsoQCHjeuK2EGUoAwy/F4y4B1uZq9A==}
|
||||
dev: false
|
||||
|
||||
/normalize-url/4.5.0:
|
||||
resolution: {integrity: sha512-2s47yzUxdexf1OhyRi4Em83iQk0aPvwTddtFz4hnSSw9dCEsLEGf6SwIO8ss/19S9iBb5sJaOuTvTGDeZI00BQ==}
|
||||
engines: {node: '>=8'}
|
||||
dev: false
|
||||
optional: true
|
||||
|
||||
/now-and-later/2.0.1:
|
||||
resolution: {integrity: sha512-KGvQ0cB70AQfg107Xvs/Fbu+dGmZoTRJp2TaPwcwQm3/7PteUyN2BCgk8KBMPGBUXZdVwyWS8fDCGFygBm19UQ==}
|
||||
engines: {node: '>= 0.10'}
|
||||
@@ -11045,12 +10860,6 @@ packages:
|
||||
p-some: 5.0.0
|
||||
dev: true
|
||||
|
||||
/p-cancelable/1.1.0:
|
||||
resolution: {integrity: sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw==}
|
||||
engines: {node: '>=6'}
|
||||
dev: false
|
||||
optional: true
|
||||
|
||||
/p-cancelable/2.1.0:
|
||||
resolution: {integrity: sha512-HAZyB3ZodPo+BDpb4/Iu7Jv4P6cSazBz9ZM0ChhEXp70scx834aWCEjQRwgt41UzzejUAPdbqqONfRWTPYrPAQ==}
|
||||
engines: {node: '>=8'}
|
||||
@@ -11201,17 +11010,6 @@ packages:
|
||||
resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==}
|
||||
engines: {node: '>=6'}
|
||||
|
||||
/package-json/6.5.0:
|
||||
resolution: {integrity: sha512-k3bdm2n25tkyxcjSKzB5x8kfVxlMdgsbPr0GkZcwHsLpba6cBjqCt1KlcChKEvxHIcTB1FVMuwoijZ26xex5MQ==}
|
||||
engines: {node: '>=8'}
|
||||
dependencies:
|
||||
got: 9.6.0
|
||||
registry-auth-token: 4.2.1
|
||||
registry-url: 5.1.0
|
||||
semver: 6.3.0
|
||||
dev: false
|
||||
optional: true
|
||||
|
||||
/pako/0.2.9:
|
||||
resolution: {integrity: sha1-8/dSL073gjSNqBYbrZ7P1Rv4OnU=}
|
||||
dev: false
|
||||
@@ -11484,12 +11282,6 @@ packages:
|
||||
engines: {node: '>= 0.8.0'}
|
||||
dev: true
|
||||
|
||||
/prepend-http/2.0.0:
|
||||
resolution: {integrity: sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc=}
|
||||
engines: {node: '>=4'}
|
||||
dev: false
|
||||
optional: true
|
||||
|
||||
/prettier/1.19.1:
|
||||
resolution: {integrity: sha512-s7PoyDv/II1ObgQunCbB9PdLmUcBZcnWOcxDh7O0N/UwDEsHyqkW+Qh28jW+mVuCdx7gLB0BotYI1Y6uI9iyew==}
|
||||
engines: {node: '>=4'}
|
||||
@@ -11712,6 +11504,7 @@ packages:
|
||||
dependencies:
|
||||
end-of-stream: 1.4.4
|
||||
once: 1.4.0
|
||||
dev: true
|
||||
|
||||
/pumpify/1.5.1:
|
||||
resolution: {integrity: sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ==}
|
||||
@@ -11728,14 +11521,6 @@ packages:
|
||||
resolution: {integrity: sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==}
|
||||
engines: {node: '>=6'}
|
||||
|
||||
/pupa/2.1.1:
|
||||
resolution: {integrity: sha512-l1jNAspIBSFqbT+y+5FosojNpVpF94nlI+wDUpqP9enwOTfHx9f0gh5nB96vl+6yTpsJsypeNrwfzPrKuHB41A==}
|
||||
engines: {node: '>=8'}
|
||||
dependencies:
|
||||
escape-goat: 2.1.1
|
||||
dev: false
|
||||
optional: true
|
||||
|
||||
/q/1.5.1:
|
||||
resolution: {integrity: sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc=}
|
||||
engines: {node: '>=0.6.0', teleport: '>=0.2.0'}
|
||||
@@ -11784,17 +11569,6 @@ packages:
|
||||
unpipe: 1.0.0
|
||||
dev: true
|
||||
|
||||
/rc/1.2.8:
|
||||
resolution: {integrity: sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==}
|
||||
hasBin: true
|
||||
dependencies:
|
||||
deep-extend: 0.6.0
|
||||
ini: 1.3.8
|
||||
minimist: 1.2.5
|
||||
strip-json-comments: 2.0.1
|
||||
dev: false
|
||||
optional: true
|
||||
|
||||
/react-is/17.0.1:
|
||||
resolution: {integrity: sha512-NAnt2iGDXohE5LI7uBnLnqvLQMtzhkiAOLXTmv+qnF9Ky7xAPcX8Up/xWIhxvLVGJvuLiNc4xQLtuqDRzb4fSA==}
|
||||
dev: true
|
||||
@@ -11998,22 +11772,6 @@ packages:
|
||||
resolution: {integrity: sha512-ZOIzd8yVsQQA7j8GCSlPGXwg5PfmA1mrq0JP4nGhh54LaKN3xdai/vHUDu74pKwV8OxseMS65u2NImosQcSD0Q==}
|
||||
engines: {node: '>=8'}
|
||||
|
||||
/registry-auth-token/4.2.1:
|
||||
resolution: {integrity: sha512-6gkSb4U6aWJB4SF2ZvLb76yCBjcvufXBqvvEx1HbmKPkutswjW1xNVRY0+daljIYRbogN7O0etYSlbiaEQyMyw==}
|
||||
engines: {node: '>=6.0.0'}
|
||||
dependencies:
|
||||
rc: 1.2.8
|
||||
dev: false
|
||||
optional: true
|
||||
|
||||
/registry-url/5.1.0:
|
||||
resolution: {integrity: sha512-8acYXXTI0AkQv6RAOjE3vOaIXZkT9wo4LOFbBKYQEEnnMNBpKqdUrI6S4NT0KPIo/WVvJ5tE/X5LF/TQUf0ekw==}
|
||||
engines: {node: '>=8'}
|
||||
dependencies:
|
||||
rc: 1.2.8
|
||||
dev: false
|
||||
optional: true
|
||||
|
||||
/remove-bom-buffer/3.0.0:
|
||||
resolution: {integrity: sha512-8v2rWhaakv18qcvNeli2mZ/TMTL2nEyAKRvzo1WtnZBl15SHyEhrCu2/xKlJyUFKHiHgfXIyuY6g2dObJJycXQ==}
|
||||
engines: {node: '>=0.10.0'}
|
||||
@@ -12213,13 +11971,6 @@ packages:
|
||||
is-core-module: 2.2.0
|
||||
path-parse: 1.0.6
|
||||
|
||||
/responselike/1.0.2:
|
||||
resolution: {integrity: sha1-kYcg7ztjHFZCvgaPFa3lpG9Loec=}
|
||||
dependencies:
|
||||
lowercase-keys: 1.0.1
|
||||
dev: false
|
||||
optional: true
|
||||
|
||||
/restore-cursor/1.0.1:
|
||||
resolution: {integrity: sha1-NGYfRohjJ/7SmRR5FSJS35LapUE=}
|
||||
engines: {node: '>=0.10.0'}
|
||||
@@ -12357,14 +12108,6 @@ packages:
|
||||
resolution: {integrity: sha1-De4hahyUGrN+nvsXiPavxf9VN/w=}
|
||||
dev: true
|
||||
|
||||
/semver-diff/3.1.1:
|
||||
resolution: {integrity: sha512-GX0Ix/CJcHyB8c4ykpHGIAvLyOwOobtM/8d+TQkAd81/bEjgPHrfba41Vpesr7jX/t8Uh+R3EX9eAS5be+jQYg==}
|
||||
engines: {node: '>=8'}
|
||||
dependencies:
|
||||
semver: 6.3.0
|
||||
dev: false
|
||||
optional: true
|
||||
|
||||
/semver-regex/3.1.2:
|
||||
resolution: {integrity: sha512-bXWyL6EAKOJa81XG1OZ/Yyuq+oT0b2YLlxx7c+mrdYPaPbnj6WgVULXhinMIeZGufuUBu/eVRqXEhiv4imfwxA==}
|
||||
engines: {node: '>=8'}
|
||||
@@ -12938,12 +12681,6 @@ packages:
|
||||
min-indent: 1.0.1
|
||||
dev: true
|
||||
|
||||
/strip-json-comments/2.0.1:
|
||||
resolution: {integrity: sha1-PFMZQukIwml8DsNEhYwobHygpgo=}
|
||||
engines: {node: '>=0.10.0'}
|
||||
dev: false
|
||||
optional: true
|
||||
|
||||
/strip-json-comments/3.1.1:
|
||||
resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==}
|
||||
engines: {node: '>=8'}
|
||||
@@ -13191,12 +12928,6 @@ packages:
|
||||
kind-of: 3.2.2
|
||||
dev: true
|
||||
|
||||
/to-readable-stream/1.0.0:
|
||||
resolution: {integrity: sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q==}
|
||||
engines: {node: '>=6'}
|
||||
dev: false
|
||||
optional: true
|
||||
|
||||
/to-regex-range/2.1.1:
|
||||
resolution: {integrity: sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=}
|
||||
engines: {node: '>=0.10.0'}
|
||||
@@ -13596,27 +13327,6 @@ packages:
|
||||
engines: {node: '>=8'}
|
||||
dev: true
|
||||
|
||||
/update-notifier/5.1.0:
|
||||
resolution: {integrity: sha512-ItnICHbeMh9GqUy31hFPrD1kcuZ3rpxDZbf4KUDavXwS0bW5m7SLbDQpGX3UYr072cbrF5hFUs3r5tUsPwjfHw==}
|
||||
engines: {node: '>=10'}
|
||||
dependencies:
|
||||
boxen: 5.0.0
|
||||
chalk: 4.1.0
|
||||
configstore: 5.0.1
|
||||
has-yarn: 2.1.0
|
||||
import-lazy: 2.1.0
|
||||
is-ci: 2.0.0
|
||||
is-installed-globally: 0.4.0
|
||||
is-npm: 5.0.0
|
||||
is-yarn-global: 0.3.0
|
||||
latest-version: 5.1.0
|
||||
pupa: 2.1.1
|
||||
semver: 7.3.4
|
||||
semver-diff: 3.1.1
|
||||
xdg-basedir: 4.0.0
|
||||
dev: false
|
||||
optional: true
|
||||
|
||||
/uri-js/4.4.1:
|
||||
resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==}
|
||||
dependencies:
|
||||
@@ -13627,14 +13337,6 @@ packages:
|
||||
deprecated: Please see https://github.com/lydell/urix#deprecated
|
||||
dev: true
|
||||
|
||||
/url-parse-lax/3.0.0:
|
||||
resolution: {integrity: sha1-FrXK/Afb42dsGxmZF3gj1lA6yww=}
|
||||
engines: {node: '>=4'}
|
||||
dependencies:
|
||||
prepend-http: 2.0.0
|
||||
dev: false
|
||||
optional: true
|
||||
|
||||
/use/3.1.1:
|
||||
resolution: {integrity: sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==}
|
||||
engines: {node: '>=0.10.0'}
|
||||
@@ -14102,12 +13804,6 @@ packages:
|
||||
optional: true
|
||||
dev: true
|
||||
|
||||
/xdg-basedir/4.0.0:
|
||||
resolution: {integrity: sha512-PSNhEJDejZYV7h50BohL09Er9VaIefr2LMAf3OEmpCkjOi34eYyQYAXUTjEQtZJTKcF0E2UKTh+osDLsgNim9Q==}
|
||||
engines: {node: '>=8'}
|
||||
dev: false
|
||||
optional: true
|
||||
|
||||
/xml-name-validator/3.0.0:
|
||||
resolution: {integrity: sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw==}
|
||||
dev: true
|
||||
|
||||
Reference in New Issue
Block a user