diff --git a/packages/read-project-manifest/fixtures/commented-package-json5/modified.json5 b/packages/read-project-manifest/fixtures/commented-package-json5/modified.json5 new file mode 100644 index 00000000000..6aaa08ea229 --- /dev/null +++ b/packages/read-project-manifest/fixtures/commented-package-json5/modified.json5 @@ -0,0 +1,9 @@ +/* This is an example of a package.json5 file with comments. */ +{ + /* pnpm should keep comments at the same indentation level */ + name: 'foo', + version: '1.0.0', // it should keep in-line comments on the same line + // It should allow in-line comments with no other content + type: 'commonjs', +} +/* And it should preserve comments at the end of the file. Note no newline. */ \ No newline at end of file diff --git a/packages/read-project-manifest/fixtures/commented-package-json5/package.json5 b/packages/read-project-manifest/fixtures/commented-package-json5/package.json5 new file mode 100644 index 00000000000..c6b65fc12af --- /dev/null +++ b/packages/read-project-manifest/fixtures/commented-package-json5/package.json5 @@ -0,0 +1,9 @@ +/* This is an example of a package.json5 file with comments. */ +{ + /* pnpm should keep comments at the same indentation level */ + name: 'foo', + version: '1.0.0', // it should keep in-line comments on the same line + // It should allow in-line comments with no other content + type: 'module', +} +/* And it should preserve comments at the end of the file. Note no newline. */ \ No newline at end of file diff --git a/packages/read-project-manifest/src/types/strip-comments-strings/index.d.ts b/packages/read-project-manifest/src/types/strip-comments-strings/index.d.ts new file mode 100644 index 00000000000..5fda8942278 --- /dev/null +++ b/packages/read-project-manifest/src/types/strip-comments-strings/index.d.ts @@ -0,0 +1,2 @@ +// strip-comments-strings/index.d.ts +declare module 'strip-comments-strings'; diff --git a/pkg-manifest/read-project-manifest/package.json b/pkg-manifest/read-project-manifest/package.json index 0f216386e03..7a42e5226b3 100644 --- a/pkg-manifest/read-project-manifest/package.json +++ b/pkg-manifest/read-project-manifest/package.json @@ -40,7 +40,8 @@ "parse-json": "^5.2.0", "read-yaml-file": "^2.1.0", "sort-keys": "^4.2.0", - "strip-bom": "^4.0.0" + "strip-bom": "^4.0.0", + "strip-comments-strings": "1.2.0" }, "devDependencies": { "@pnpm/read-project-manifest": "workspace:*", diff --git a/pkg-manifest/read-project-manifest/src/index.ts b/pkg-manifest/read-project-manifest/src/index.ts index 74530244129..bc8ddfe1901 100644 --- a/pkg-manifest/read-project-manifest/src/index.ts +++ b/pkg-manifest/read-project-manifest/src/index.ts @@ -2,10 +2,11 @@ import { promises as fs, Stats } from 'fs' import path from 'path' import { PnpmError } from '@pnpm/error' import { ProjectManifest } from '@pnpm/types' -import { writeProjectManifest } from '@pnpm/write-project-manifest' +import { writeProjectManifest, CommentSpecifier } from '@pnpm/write-project-manifest' import readYamlFile from 'read-yaml-file' import detectIndent from '@gwhitney/detect-indent' +import { parseString, stripComments } from 'strip-comments-strings' import equal from 'fast-deep-equal' import isWindows from 'is-windows' import sortKeys from 'sort-keys' @@ -118,9 +119,55 @@ export async function tryReadProjectManifest (projectDir: string): Promise<{ } function detectFileFormatting (text: string) { + const finalNewline = text.endsWith('\n') + if (!finalNewline) { + /* For the sake of the comment parser, which otherwise loses the + * final character of a final comment + */ + text += '\n' + } + const { comments } = parseString(text) + let stripped = stripComments(text) + if (!finalNewline) { + stripped = stripped.slice(0, -1) + } + let offset = 0 // accumulates difference of indices from text to stripped + for (const comment of comments) { + // Unfortunately, JavaScript lastIndexOf does not have an end parameter: + const preamble: string = stripped.slice(0, comment.index - offset) + const lineStart = Math.max(preamble.lastIndexOf('\n'), 0) + const priorLines = preamble.split('\n') + comment.lineNumber = priorLines.length + if (comment.lineNumber === 1) { + if (preamble.trim().length === 0) { + comment.lineNumber = 0 + } + } else { + comment.after = priorLines[comment.lineNumber - 2] + if (priorLines[0].trim().length === 0) { + /* JSON5.stringify will not have a whitespace-only line at the start */ + comment.lineNumber -= 1 + } + } + let lineEnd: number = stripped.indexOf( + '\n', (lineStart === 0) ? 0 : lineStart + 1) + if (lineEnd < 0) { + lineEnd = stripped.length + } + comment.on = stripped.slice(lineStart, lineEnd) + comment.whitespace = stripped + .slice(lineStart, comment.index - offset) + .match(/^\s*/)[0] + const nextLineEnd = stripped.indexOf('\n', lineEnd + 1) + if (nextLineEnd >= 0) { + comment.before = stripped.slice(lineEnd, nextLineEnd) + } + offset += comment.indexEnd - comment.index + } return { + comments, indent: detectIndent(text).indent, - insertFinalNewline: text.endsWith('\n'), + insertFinalNewline: finalNewline, } } @@ -174,6 +221,7 @@ async function readPackageYaml (filePath: string) { function createManifestWriter ( opts: { initialManifest: ProjectManifest + comments?: CommentSpecifier[] indent?: string | number | undefined insertFinalNewline?: boolean manifestPath: string @@ -184,6 +232,7 @@ function createManifestWriter ( updatedManifest = normalize(updatedManifest) if (force === true || !equal(initialManifest, updatedManifest)) { await writeProjectManifest(opts.manifestPath, updatedManifest, { + comments: opts.comments, indent: opts.indent, insertFinalNewline: opts.insertFinalNewline, }) diff --git a/pkg-manifest/read-project-manifest/test/index.ts b/pkg-manifest/read-project-manifest/test/index.ts index 00177026256..bba57a54554 100644 --- a/pkg-manifest/read-project-manifest/test/index.ts +++ b/pkg-manifest/read-project-manifest/test/index.ts @@ -82,6 +82,26 @@ test('preserve space indentation in json5 file', async () => { expect(rawManifest).toBe("{\n name: 'foo',\n dependencies: {\n bar: '1.0.0',\n },\n}\n") }) +test('preserve comments in json5 file', async () => { + const originalManifest = await fs.readFile( + path.join(fixtures, 'commented-package-json5/package.json5'), 'utf8') + const modifiedManifest = await fs.readFile( + path.join(fixtures, 'commented-package-json5/modified.json5'), 'utf8') + + process.chdir(tempy.directory()) + await fs.writeFile('package.json5', originalManifest, 'utf8') + + const { manifest, writeProjectManifest } = await readProjectManifest(process.cwd()) + + // Have to make a change to get it to write anything: + const newManifest = Object.assign({}, manifest, { type: 'commonjs' }) + + await writeProjectManifest(newManifest) + + const resultingManifest = await fs.readFile('package.json5', 'utf8') + expect(resultingManifest).toBe(modifiedManifest) +}) + test('do not save manifest if it had no changes', async () => { process.chdir(tempy.directory()) diff --git a/pkg-manifest/write-project-manifest/src/index.ts b/pkg-manifest/write-project-manifest/src/index.ts index f220231d34d..a5d0ea40ac4 100644 --- a/pkg-manifest/write-project-manifest/src/index.ts +++ b/pkg-manifest/write-project-manifest/src/index.ts @@ -10,10 +10,21 @@ const YAML_FORMAT = { noRefs: true, } +export interface CommentSpecifier { + type: string + content: string + lineNumber: number + after?: string + on: string + whitespace: string + before?: string +} + export async function writeProjectManifest ( filePath: string, manifest: ProjectManifest, opts?: { + comments?: CommentSpecifier[] indent?: string | number | undefined insertFinalNewline?: boolean } @@ -26,8 +37,90 @@ export async function writeProjectManifest ( await fs.mkdir(path.dirname(filePath), { recursive: true }) const trailingNewline = opts?.insertFinalNewline === false ? '' : '\n' - const json = (fileType === 'json5' ? JSON5 : JSON) + let json = (fileType === 'json5' ? JSON5 : JSON) .stringify(manifest, undefined, opts?.indent ?? '\t') + if (opts?.comments) { + // We need to reintroduce the comments. So create an index of + // the lines of the manifest so we can try to match them up. + // We eliminate whitespace and quotes because pnpm may have changed them. + const jsonLines = json.split('\n') + const index = {} + for (let i = 0; i < jsonLines.length; ++i) { + const key = jsonLines[i].replace(/[\s'"]/g, '') + if (key in index) { + index[key] = -1 + } else { + index[key] = i + } + } + + // A place to put comments that come _before_ the lines they are + // anchored to: + const jsonPrefix: Record = {} + for (const comment of opts.comments) { + // First if we can find the line the comment was on, that is + // the most reliable locator: + let key = comment.on.replace(/[\s'"]/g, '') + if (key && index[key] !== undefined && index[key] >= 0) { + jsonLines[index[key]] += ' ' + comment.content + continue + } + // Next, if it's not before anything, it must have been at the very end: + if (comment.before === undefined) { + jsonLines[jsonLines.length - 1] += comment.whitespace + comment.content + continue + } + // Next, try to put it before something; note the comment extractor + // used the convention that position 0 is before the first line: + let location = (comment.lineNumber === 0) ? 0 : -1 + if (location < 0) { + key = comment.before.replace(/[\s'"]/g, '') + if (key && index[key] !== undefined) { + location = index[key] + } + } + if (location >= 0) { + if (jsonPrefix[location]) { + jsonPrefix[location] += ' ' + comment.content + } else { + const inlineWhitespace = comment.whitespace.startsWith('\n') + ? comment.whitespace.slice(1) + : comment.whitespace + jsonPrefix[location] = inlineWhitespace + comment.content + } + continue + } + // The last definite indicator we can use is that it is after something: + if (comment.after) { + key = comment.after.replace(/[\s'"]/g, '') + if (key && index[key] !== undefined && index[key] >= 0) { + jsonLines[index[key]] += comment.whitespace + comment.content + continue + } + } + // Finally, try to get it in the right general location by using the + // line number, but warn the user the comment may have been relocated: + location = comment.lineNumber - 1 // 0 was handled above + let separator = ' ' + if (location >= jsonLines.length) { + location = jsonLines.length - 1 + separator = '\n' + } + jsonLines[location] += separator + comment.content + + ' /* [comment possibly relocated by pnpm] */' + } + // Insert the accumulated prefixes: + for (let i = 0; i < jsonLines.length; ++i) { + if (jsonPrefix[i]) { + jsonLines[i] = jsonPrefix[i] + '\n' + jsonLines[i] + } + } + // And reassemble the manifest: + json = jsonLines.join('\n') + } + return writeFileAtomic(filePath, `${json}${trailingNewline}`) } + +export default writeProjectManifest diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index ca665da9169..1e4673119ef 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -172,7 +172,7 @@ importers: version: link:../../pkg-manager/modules-yaml '@pnpm/registry-mock': specifier: 3.1.0 - version: 3.1.0_typanion@3.12.1 + version: 3.1.0 '@pnpm/types': specifier: workspace:* version: link:../../packages/types @@ -212,7 +212,7 @@ importers: version: link:../../store/cafs '@pnpm/registry-mock': specifier: 3.1.0 - version: 3.1.0_typanion@3.12.1 + version: 3.1.0 path-exists: specifier: ^4.0.0 version: 4.0.0 @@ -377,9 +377,6 @@ importers: '@pnpm/error': specifier: workspace:* version: link:../../packages/error - '@pnpm/logger': - specifier: ^5.0.0 - version: 5.0.0 '@pnpm/manifest-utils': specifier: workspace:* version: link:../../pkg-manifest/manifest-utils @@ -402,6 +399,9 @@ importers: '@pnpm/cli-utils': specifier: workspace:* version: 'link:' + '@pnpm/logger': + specifier: ^5.0.0 + version: 5.0.0 '@types/ramda': specifier: 0.28.15 version: 0.28.15 @@ -429,9 +429,6 @@ importers: '@pnpm/error': specifier: workspace:* version: link:../../packages/error - '@pnpm/logger': - specifier: ^5.0.0 - version: 5.0.0 '@pnpm/render-peer-issues': specifier: workspace:* version: link:../../packages/render-peer-issues @@ -481,6 +478,9 @@ importers: '@pnpm/default-reporter': specifier: workspace:* version: 'link:' + '@pnpm/logger': + specifier: ^5.0.0 + version: 5.0.0 '@types/normalize-path': specifier: ^3.0.0 version: 3.0.0 @@ -647,9 +647,6 @@ importers: '@pnpm/error': specifier: workspace:* version: link:../../packages/error - '@pnpm/logger': - specifier: ^5.0.0 - version: 5.0.0 '@pnpm/types': specifier: workspace:* version: link:../../packages/types @@ -666,6 +663,9 @@ importers: specifier: ^7.3.8 version: 7.3.8 devDependencies: + '@pnpm/logger': + specifier: ^5.0.0 + version: 5.0.0 '@pnpm/package-is-installable': specifier: workspace:* version: 'link:' @@ -866,9 +866,6 @@ importers: '@pnpm/link-bins': specifier: workspace:* version: link:../../pkg-manager/link-bins - '@pnpm/logger': - specifier: ^5.0.0 - version: 5.0.0 '@pnpm/read-package-json': specifier: workspace:* version: link:../../pkg-manifest/read-package-json @@ -891,6 +888,9 @@ importers: '@pnpm/build-modules': specifier: workspace:* version: 'link:' + '@pnpm/logger': + specifier: ^5.0.0 + version: 5.0.0 '@types/ramda': specifier: 0.28.15 version: 0.28.15 @@ -903,9 +903,6 @@ importers: '@pnpm/directory-fetcher': specifier: workspace:* version: link:../../fetching/directory-fetcher - '@pnpm/logger': - specifier: ^5.0.0 - version: 5.0.0 '@pnpm/npm-lifecycle': specifier: ^2.0.0-1 version: 2.0.0-1_typanion@3.12.1 @@ -928,6 +925,9 @@ importers: '@pnpm/lifecycle': specifier: workspace:* version: 'link:' + '@pnpm/logger': + specifier: ^5.0.0 + version: 5.0.0 '@types/rimraf': specifier: ^3.0.2 version: 3.0.2 @@ -979,9 +979,6 @@ importers: '@pnpm/lockfile-walker': specifier: workspace:* version: link:../../lockfile/lockfile-walker - '@pnpm/logger': - specifier: ^5.0.0 - version: 5.0.0 '@pnpm/modules-yaml': specifier: workspace:* version: link:../../pkg-manager/modules-yaml @@ -1031,6 +1028,9 @@ importers: '@pnpm/filter-workspace-packages': specifier: workspace:* version: link:../../workspace/filter-workspace-packages + '@pnpm/logger': + specifier: ^5.0.0 + version: 5.0.0 '@pnpm/plugin-commands-rebuild': specifier: workspace:* version: 'link:' @@ -1039,7 +1039,7 @@ importers: version: link:../../__utils__/prepare '@pnpm/registry-mock': specifier: 3.1.0 - version: 3.1.0_typanion@3.12.1 + version: 3.1.0 '@pnpm/test-fixtures': specifier: workspace:* version: link:../../__utils__/test-fixtures @@ -1085,9 +1085,6 @@ importers: '@pnpm/lifecycle': specifier: workspace:* version: link:../lifecycle - '@pnpm/logger': - specifier: ^5.0.0 - version: 5.0.0 '@pnpm/package-bins': specifier: workspace:* version: link:../../pkg-manager/package-bins @@ -1137,6 +1134,9 @@ importers: '@pnpm/filter-workspace-packages': specifier: workspace:* version: link:../../workspace/filter-workspace-packages + '@pnpm/logger': + specifier: ^5.0.0 + version: 5.0.0 '@pnpm/plugin-commands-script-runners': specifier: workspace:* version: 'link:' @@ -1145,7 +1145,7 @@ importers: version: link:../../__utils__/prepare '@pnpm/registry-mock': specifier: 3.1.0 - version: 3.1.0_typanion@3.12.1 + version: 3.1.0 '@types/is-windows': specifier: ^1.0.0 version: 1.0.0 @@ -1202,9 +1202,6 @@ importers: '@pnpm/fetcher-base': specifier: workspace:* version: link:../fetcher-base - '@pnpm/logger': - specifier: ^5.0.0 - version: 5.0.0 '@pnpm/read-project-manifest': specifier: workspace:* version: link:../../pkg-manifest/read-project-manifest @@ -1221,6 +1218,9 @@ importers: '@pnpm/directory-fetcher': specifier: workspace:* version: 'link:' + '@pnpm/logger': + specifier: ^5.0.0 + version: 5.0.0 '@pnpm/test-fixtures': specifier: workspace:* version: link:../../__utils__/test-fixtures @@ -1316,9 +1316,6 @@ importers: '@pnpm/graceful-fs': specifier: workspace:* version: link:../../fs/graceful-fs - '@pnpm/logger': - specifier: ^5.0.0 - version: 5.0.0 '@pnpm/prepare-package': specifier: workspace:* version: link:../../exec/prepare-package @@ -1344,6 +1341,9 @@ importers: '@pnpm/fetch': specifier: workspace:* version: link:../../network/fetch + '@pnpm/logger': + specifier: ^5.0.0 + version: 5.0.0 '@pnpm/tarball-fetcher': specifier: workspace:* version: 'link:' @@ -1406,9 +1406,6 @@ importers: '@pnpm/core-loggers': specifier: workspace:* version: link:../../packages/core-loggers - '@pnpm/logger': - specifier: ^5.0.0 - version: 5.0.0 '@pnpm/store-controller-types': specifier: workspace:* version: link:../../store/store-controller-types @@ -1437,6 +1434,9 @@ importers: '@pnpm/fs.indexed-pkg-importer': specifier: workspace:* version: 'link:' + '@pnpm/logger': + specifier: ^5.0.0 + version: 5.0.0 '@pnpm/prepare': specifier: workspace:* version: link:../../__utils__/prepare @@ -1459,9 +1459,6 @@ importers: '@pnpm/core-loggers': specifier: workspace:* version: link:../../packages/core-loggers - '@pnpm/logger': - specifier: ^5.0.0 - version: 5.0.0 '@pnpm/types': specifier: workspace:* version: link:../../packages/types @@ -1469,6 +1466,9 @@ importers: specifier: ^5.1.0 version: 5.1.0 devDependencies: + '@pnpm/logger': + specifier: ^5.0.0 + version: 5.0.0 '@pnpm/prepare': specifier: workspace:* version: link:../../__utils__/prepare @@ -1490,9 +1490,6 @@ importers: '@pnpm/lockfile-types': specifier: workspace:* version: link:../../lockfile/lockfile-types - '@pnpm/logger': - specifier: ^5.0.0 - version: 5.0.0 '@pnpm/store-controller-types': specifier: workspace:* version: link:../../store/store-controller-types @@ -1509,6 +1506,9 @@ importers: '@pnpm/fetcher-base': specifier: workspace:* version: link:../../fetching/fetcher-base + '@pnpm/logger': + specifier: ^5.0.0 + version: 5.0.0 '@pnpm/pnpmfile': specifier: workspace:* version: 'link:' @@ -1622,9 +1622,6 @@ importers: '@pnpm/lockfile-walker': specifier: workspace:* version: link:../lockfile-walker - '@pnpm/logger': - specifier: ^5.0.0 - version: 5.0.0 '@pnpm/package-is-installable': specifier: workspace:* version: link:../../config/package-is-installable @@ -1641,6 +1638,9 @@ importers: '@pnpm/filter-lockfile': specifier: workspace:* version: 'link:' + '@pnpm/logger': + specifier: ^5.0.0 + version: 5.0.0 '@types/ramda': specifier: 0.28.15 version: 0.28.15 @@ -1671,9 +1671,6 @@ importers: '@pnpm/lockfile-types': specifier: workspace:* version: link:../lockfile-types - '@pnpm/logger': - specifier: ^5.0.0 - version: 5.0.0 '@pnpm/merge-lockfile-changes': specifier: workspace:* version: link:../merge-lockfile-changes @@ -1717,6 +1714,9 @@ importers: '@pnpm/lockfile-file': specifier: workspace:* version: 'link:' + '@pnpm/logger': + specifier: ^5.0.0 + version: 5.0.0 '@types/js-yaml': specifier: ^4.0.5 version: 4.0.5 @@ -1750,9 +1750,6 @@ importers: '@pnpm/lockfile-utils': specifier: workspace:* version: link:../lockfile-utils - '@pnpm/logger': - specifier: ^5.0.0 - version: 5.0.0 '@pnpm/types': specifier: workspace:* version: link:../../packages/types @@ -1772,6 +1769,9 @@ importers: '@pnpm/lockfile-to-pnp': specifier: workspace:* version: 'link:' + '@pnpm/logger': + specifier: ^5.0.0 + version: 5.0.0 '@types/normalize-path': specifier: ^3.0.0 version: 3.0.0 @@ -2004,9 +2004,6 @@ importers: '@pnpm/fetching-types': specifier: workspace:* version: link:../fetching-types - '@pnpm/logger': - specifier: ^5.0.0 - version: 5.0.0 '@pnpm/network.agent': specifier: 0.0.3 version: 0.0.3 @@ -2020,6 +2017,9 @@ importers: '@pnpm/fetch': specifier: workspace:* version: 'link:' + '@pnpm/logger': + specifier: ^5.0.0 + version: 5.0.0 nock: specifier: 13.2.9 version: 13.2.9 @@ -2058,9 +2058,6 @@ importers: packages/core-loggers: dependencies: - '@pnpm/logger': - specifier: ^5.0.0 - version: 5.0.0 '@pnpm/types': specifier: workspace:* version: link:../types @@ -2068,6 +2065,9 @@ importers: '@pnpm/core-loggers': specifier: workspace:* version: 'link:' + '@pnpm/logger': + specifier: ^5.0.0 + version: 5.0.0 packages/crypto.base32-hash: dependencies: @@ -2244,13 +2244,13 @@ importers: '@pnpm/config': specifier: workspace:* version: link:../../config/config - '@pnpm/logger': - specifier: ^5.0.0 - version: 5.0.0 render-help: specifier: ^1.0.2 version: 1.0.2 devDependencies: + '@pnpm/logger': + specifier: ^5.0.0 + version: 5.0.0 '@pnpm/plugin-commands-doctor': specifier: workspace:* version: 'link:' @@ -2300,9 +2300,6 @@ importers: '@pnpm/error': specifier: workspace:* version: link:../error - '@pnpm/logger': - specifier: ^5.0.0 - version: 5.0.0 '@pnpm/parse-wanted-dependency': specifier: workspace:* version: link:../parse-wanted-dependency @@ -2337,6 +2334,9 @@ importers: specifier: ^1.0.1 version: 1.0.1 devDependencies: + '@pnpm/logger': + specifier: ^5.0.0 + version: 5.0.0 '@pnpm/plugin-commands-patching': specifier: workspace:* version: 'link:' @@ -2345,7 +2345,7 @@ importers: version: link:../../__utils__/prepare '@pnpm/registry-mock': specifier: 3.1.0 - version: 3.1.0_typanion@3.12.1 + version: 3.1.0 '@types/ramda': specifier: 0.28.15 version: 0.28.15 @@ -2355,9 +2355,6 @@ importers: '@pnpm/cli-utils': specifier: workspace:* version: link:../../cli/cli-utils - '@pnpm/logger': - specifier: ^5.0.0 - version: 5.0.0 '@pnpm/os.env.path-extender': specifier: ^0.2.8 version: 0.2.8 @@ -2368,6 +2365,9 @@ importers: '@pnpm/error': specifier: workspace:* version: link:../error + '@pnpm/logger': + specifier: ^5.0.0 + version: 5.0.0 '@pnpm/plugin-commands-setup': specifier: workspace:* version: 'link:' @@ -2512,9 +2512,6 @@ importers: '@pnpm/lockfile-walker': specifier: workspace:* version: link:../../lockfile/lockfile-walker - '@pnpm/logger': - specifier: ^5.0.0 - version: 5.0.0 '@pnpm/manifest-utils': specifier: workspace:* version: link:../../pkg-manifest/manifest-utils @@ -2636,6 +2633,9 @@ importers: '@pnpm/git-utils': specifier: workspace:* version: link:../../packages/git-utils + '@pnpm/logger': + specifier: ^5.0.0 + version: 5.0.0 '@pnpm/package-store': specifier: workspace:* version: link:../../store/package-store @@ -2644,7 +2644,7 @@ importers: version: link:../../__utils__/prepare '@pnpm/registry-mock': specifier: 3.1.0 - version: 3.1.0_typanion@3.12.1 + version: 3.1.0 '@pnpm/store-path': specifier: workspace:* version: link:../../store/store-path @@ -2674,7 +2674,7 @@ importers: version: 10.0.13 '@yarnpkg/core': specifier: 4.0.0-rc.27 - version: 4.0.0-rc.27_typanion@3.12.1 + version: 4.0.0-rc.27 deep-require-cwd: specifier: 1.0.0 version: 1.0.0 @@ -2760,9 +2760,6 @@ importers: '@pnpm/lockfile-file': specifier: workspace:* version: link:../../lockfile/lockfile-file - '@pnpm/logger': - specifier: ^5.0.0 - version: 5.0.0 '@pnpm/modules-yaml': specifier: workspace:* version: link:../modules-yaml @@ -2788,6 +2785,9 @@ importers: '@pnpm/get-context': specifier: workspace:* version: 'link:' + '@pnpm/logger': + specifier: ^5.0.0 + version: 5.0.0 '@types/is-ci': specifier: ^3.0.0 version: 3.0.0 @@ -2833,9 +2833,6 @@ importers: '@pnpm/lockfile-utils': specifier: workspace:* version: link:../../lockfile/lockfile-utils - '@pnpm/logger': - specifier: ^5.0.0 - version: 5.0.0 '@pnpm/modules-cleaner': specifier: workspace:* version: link:../modules-cleaner @@ -2903,6 +2900,9 @@ importers: '@pnpm/headless': specifier: workspace:* version: 'link:' + '@pnpm/logger': + specifier: ^5.0.0 + version: 5.0.0 '@pnpm/package-store': specifier: workspace:* version: link:../../store/package-store @@ -2914,7 +2914,7 @@ importers: version: link:../read-projects-context '@pnpm/registry-mock': specifier: 3.1.0 - version: 3.1.0_typanion@3.12.1 + version: 3.1.0 '@pnpm/store-path': specifier: workspace:* version: link:../../store/store-path @@ -2972,9 +2972,6 @@ importers: '@pnpm/lockfile-walker': specifier: workspace:* version: link:../../lockfile/lockfile-walker - '@pnpm/logger': - specifier: ^5.0.0 - version: 5.0.0 '@pnpm/matcher': specifier: workspace:* version: link:../../config/matcher @@ -3003,6 +3000,9 @@ importers: '@pnpm/hoist': specifier: workspace:* version: 'link:' + '@pnpm/logger': + specifier: ^5.0.0 + version: 5.0.0 '@types/ramda': specifier: 0.28.15 version: 0.28.15 @@ -3012,9 +3012,6 @@ importers: '@pnpm/error': specifier: workspace:* version: link:../../packages/error - '@pnpm/logger': - specifier: ^5.0.0 - version: 5.0.0 '@pnpm/manifest-utils': specifier: workspace:* version: link:../../pkg-manifest/manifest-utils @@ -3064,6 +3061,9 @@ importers: '@pnpm/link-bins': specifier: workspace:* version: 'link:' + '@pnpm/logger': + specifier: ^5.0.0 + version: 5.0.0 '@pnpm/test-fixtures': specifier: workspace:* version: link:../../__utils__/test-fixtures @@ -3103,9 +3103,6 @@ importers: '@pnpm/lockfile-utils': specifier: workspace:* version: link:../../lockfile/lockfile-utils - '@pnpm/logger': - specifier: ^5.0.0 - version: 5.0.0 '@pnpm/read-modules-dir': specifier: workspace:* version: link:../../fs/read-modules-dir @@ -3128,6 +3125,9 @@ importers: specifier: npm:@pnpm/ramda@0.28.1 version: /@pnpm/ramda/0.28.1 devDependencies: + '@pnpm/logger': + specifier: ^5.0.0 + version: 5.0.0 '@pnpm/modules-cleaner': specifier: workspace:* version: 'link:' @@ -3202,9 +3202,6 @@ importers: '@pnpm/graceful-fs': specifier: workspace:* version: link:../../fs/graceful-fs - '@pnpm/logger': - specifier: ^5.0.0 - version: 5.0.0 '@pnpm/package-is-installable': specifier: workspace:* version: link:../../config/package-is-installable @@ -3272,12 +3269,15 @@ importers: '@pnpm/create-cafs-store': specifier: workspace:* version: link:../../store/create-cafs-store + '@pnpm/logger': + specifier: ^5.0.0 + version: 5.0.0 '@pnpm/package-requester': specifier: workspace:* version: 'link:' '@pnpm/registry-mock': specifier: 3.1.0 - version: 3.1.0_typanion@3.12.1 + version: 3.1.0 '@pnpm/test-fixtures': specifier: workspace:* version: link:../../__utils__/test-fixtures @@ -3344,9 +3344,6 @@ importers: '@pnpm/graceful-fs': specifier: workspace:* version: link:../../fs/graceful-fs - '@pnpm/logger': - specifier: ^5.0.0 - version: 5.0.0 '@pnpm/manifest-utils': specifier: workspace:* version: link:../../pkg-manifest/manifest-utils @@ -3388,7 +3385,7 @@ importers: version: link:../../packages/types '@yarnpkg/core': specifier: 4.0.0-rc.27 - version: 4.0.0-rc.27_typanion@3.12.1 + version: 4.0.0-rc.27 '@yarnpkg/lockfile': specifier: ^1.1.0 version: 1.1.0 @@ -3450,6 +3447,9 @@ importers: '@pnpm/lockfile-types': specifier: workspace:* version: link:../../lockfile/lockfile-types + '@pnpm/logger': + specifier: ^5.0.0 + version: 5.0.0 '@pnpm/modules-yaml': specifier: workspace:* version: link:../modules-yaml @@ -3461,7 +3461,7 @@ importers: version: link:../../__utils__/prepare '@pnpm/registry-mock': specifier: 3.1.0 - version: 3.1.0_typanion@3.12.1 + version: 3.1.0 '@pnpm/test-fixtures': specifier: workspace:* version: link:../../__utils__/test-fixtures @@ -3519,9 +3519,6 @@ importers: '@pnpm/lockfile-file': specifier: workspace:* version: link:../../lockfile/lockfile-file - '@pnpm/logger': - specifier: ^5.0.0 - version: 5.0.0 '@pnpm/modules-yaml': specifier: workspace:* version: link:../modules-yaml @@ -3535,6 +3532,9 @@ importers: specifier: ^1.1.0 version: 1.1.0 devDependencies: + '@pnpm/logger': + specifier: ^5.0.0 + version: 5.0.0 '@pnpm/read-projects-context': specifier: workspace:* version: 'link:' @@ -3549,7 +3549,7 @@ importers: version: link:../../lockfile/lockfile-utils '@yarnpkg/nm': specifier: 4.0.0-rc.27 - version: 4.0.0-rc.27_typanion@3.12.1 + version: 4.0.0-rc.27 dependency-path: specifier: workspace:* version: link:../../packages/dependency-path @@ -3566,9 +3566,6 @@ importers: '@pnpm/core-loggers': specifier: workspace:* version: link:../../packages/core-loggers - '@pnpm/logger': - specifier: ^5.0.0 - version: 5.0.0 '@pnpm/package-bins': specifier: workspace:* version: link:../package-bins @@ -3588,6 +3585,9 @@ importers: specifier: ^1.0.2 version: 1.0.2 devDependencies: + '@pnpm/logger': + specifier: ^5.0.0 + version: 5.0.0 '@pnpm/remove-bins': specifier: workspace:* version: 'link:' @@ -3615,9 +3615,6 @@ importers: '@pnpm/lockfile-utils': specifier: workspace:* version: link:../../lockfile/lockfile-utils - '@pnpm/logger': - specifier: ^5.0.0 - version: 5.0.0 '@pnpm/manifest-utils': specifier: workspace:* version: link:../../pkg-manifest/manifest-utils @@ -3647,7 +3644,7 @@ importers: version: link:../../packages/which-version-is-pinned '@yarnpkg/core': specifier: 4.0.0-rc.27 - version: 4.0.0-rc.27_typanion@3.12.1 + version: 4.0.0-rc.27 dependency-path: specifier: workspace:* version: link:../../packages/dependency-path @@ -3700,6 +3697,9 @@ importers: specifier: ^3.0.0 version: 3.0.0 devDependencies: + '@pnpm/logger': + specifier: ^5.0.0 + version: 5.0.0 '@pnpm/resolve-dependencies': specifier: workspace:* version: 'link:' @@ -3814,6 +3814,9 @@ importers: strip-bom: specifier: ^4.0.0 version: 4.0.0 + strip-comments-strings: + specifier: 1.2.0 + version: 1.2.0 devDependencies: '@pnpm/read-project-manifest': specifier: workspace:* @@ -3978,7 +3981,7 @@ importers: version: link:../pkg-manifest/read-project-manifest '@pnpm/registry-mock': specifier: 3.1.0 - version: 3.1.0_typanion@3.12.1 + version: 3.1.0 '@pnpm/run-npm': specifier: workspace:* version: link:../exec/run-npm @@ -4199,9 +4202,6 @@ importers: '@pnpm/fs.indexed-pkg-importer': specifier: workspace:* version: link:../../fs/indexed-pkg-importer - '@pnpm/logger': - specifier: ^5.0.0 - version: 5.0.0 '@pnpm/plugin-commands-installation': specifier: workspace:* version: link:../../pkg-manager/plugin-commands-installation @@ -4224,6 +4224,9 @@ importers: '@pnpm/lockfile-types': specifier: workspace:* version: link:../../lockfile/lockfile-types + '@pnpm/logger': + specifier: ^5.0.0 + version: 5.0.0 '@pnpm/plugin-commands-deploy': specifier: workspace:* version: 'link:' @@ -4232,7 +4235,7 @@ importers: version: link:../../__utils__/prepare '@pnpm/registry-mock': specifier: 3.1.0 - version: 3.1.0_typanion@3.12.1 + version: 3.1.0 releasing/plugin-commands-publishing: dependencies: @@ -4260,9 +4263,6 @@ importers: '@pnpm/lifecycle': specifier: workspace:* version: link:../../exec/lifecycle - '@pnpm/logger': - specifier: ^5.0.0 - version: 5.0.0 '@pnpm/package-bins': specifier: workspace:* version: link:../../pkg-manager/package-bins @@ -4321,6 +4321,9 @@ importers: '@pnpm/filter-workspace-packages': specifier: workspace:* version: link:../../workspace/filter-workspace-packages + '@pnpm/logger': + specifier: ^5.0.0 + version: 5.0.0 '@pnpm/plugin-commands-publishing': specifier: workspace:* version: 'link:' @@ -4329,7 +4332,7 @@ importers: version: link:../../__utils__/prepare '@pnpm/registry-mock': specifier: 3.1.0 - version: 3.1.0_typanion@3.12.1 + version: 3.1.0 '@types/cross-spawn': specifier: ^6.0.2 version: 6.0.2 @@ -4492,9 +4495,6 @@ importers: '@pnpm/graceful-fs': specifier: workspace:* version: link:../../fs/graceful-fs - '@pnpm/logger': - specifier: ^5.0.0 - version: 5.0.0 '@pnpm/resolve-workspace-range': specifier: workspace:* version: link:../../workspace/resolve-workspace-range @@ -4550,6 +4550,9 @@ importers: '@pnpm/fetch': specifier: workspace:* version: link:../../network/fetch + '@pnpm/logger': + specifier: ^5.0.0 + version: 5.0.0 '@pnpm/npm-resolver': specifier: workspace:* version: 'link:' @@ -4670,9 +4673,6 @@ importers: '@pnpm/lockfile-walker': specifier: workspace:* version: link:../../lockfile/lockfile-walker - '@pnpm/logger': - specifier: ^5.0.0 - version: 5.0.0 '@pnpm/package-is-installable': specifier: workspace:* version: link:../../config/package-is-installable @@ -4704,6 +4704,9 @@ importers: '@pnpm/license-scanner': specifier: workspace:* version: 'link:' + '@pnpm/logger': + specifier: ^5.0.0 + version: 5.0.0 '@types/ramda': specifier: 0.28.15 version: 0.28.15 @@ -4780,9 +4783,6 @@ importers: '@pnpm/lockfile-utils': specifier: workspace:* version: link:../../lockfile/lockfile-utils - '@pnpm/logger': - specifier: ^5.0.0 - version: 5.0.0 '@pnpm/manifest-utils': specifier: workspace:* version: link:../../pkg-manifest/manifest-utils @@ -4811,6 +4811,9 @@ importers: specifier: ^7.3.8 version: 7.3.8 devDependencies: + '@pnpm/logger': + specifier: ^5.0.0 + version: 5.0.0 '@pnpm/outdated': specifier: workspace:* version: 'link:' @@ -4880,7 +4883,7 @@ importers: version: link:../../pkg-manifest/read-package-json '@pnpm/registry-mock': specifier: 3.1.0 - version: 3.1.0_typanion@3.12.1 + version: 3.1.0 '@types/ramda': specifier: 0.28.15 version: 0.28.15 @@ -4914,9 +4917,6 @@ importers: '@pnpm/list': specifier: workspace:* version: link:../list - '@pnpm/logger': - specifier: ^5.0.0 - version: 5.0.0 '@pnpm/types': specifier: workspace:* version: link:../../packages/types @@ -4933,6 +4933,9 @@ importers: '@pnpm/filter-workspace-packages': specifier: workspace:* version: link:../../workspace/filter-workspace-packages + '@pnpm/logger': + specifier: ^5.0.0 + version: 5.0.0 '@pnpm/plugin-commands-installation': specifier: workspace:* version: link:../../pkg-manager/plugin-commands-installation @@ -4944,7 +4947,7 @@ importers: version: link:../../__utils__/prepare '@pnpm/registry-mock': specifier: 3.1.0 - version: 3.1.0_typanion@3.12.1 + version: 3.1.0 '@types/ramda': specifier: 0.28.15 version: 0.28.15 @@ -5041,7 +5044,7 @@ importers: version: link:../../__utils__/prepare '@pnpm/registry-mock': specifier: 3.1.0 - version: 3.1.0_typanion@3.12.1 + version: 3.1.0 '@pnpm/test-fixtures': specifier: workspace:* version: link:../../__utils__/test-fixtures @@ -5148,9 +5151,6 @@ importers: '@pnpm/fs.indexed-pkg-importer': specifier: workspace:* version: link:../../fs/indexed-pkg-importer - '@pnpm/logger': - specifier: ^5.0.0 - version: 5.0.0 '@pnpm/store-controller-types': specifier: workspace:* version: link:../store-controller-types @@ -5170,6 +5170,9 @@ importers: '@pnpm/create-cafs-store': specifier: workspace:* version: 'link:' + '@pnpm/logger': + specifier: ^5.0.0 + version: 5.0.0 '@pnpm/prepare': specifier: workspace:* version: link:../../__utils__/prepare @@ -5188,9 +5191,6 @@ importers: '@pnpm/fetcher-base': specifier: workspace:* version: link:../../fetching/fetcher-base - '@pnpm/logger': - specifier: ^5.0.0 - version: 5.0.0 '@pnpm/package-requester': specifier: workspace:* version: link:../../pkg-manager/package-requester @@ -5222,6 +5222,9 @@ importers: '@pnpm/client': specifier: workspace:* version: link:../../pkg-manager/client + '@pnpm/logger': + specifier: ^5.0.0 + version: 5.0.0 '@pnpm/package-store': specifier: workspace:* version: 'link:' @@ -5255,9 +5258,6 @@ importers: '@pnpm/error': specifier: workspace:* version: link:../../packages/error - '@pnpm/logger': - specifier: ^5.0.0 - version: 5.0.0 '@pnpm/server': specifier: workspace:* version: link:../server @@ -5295,6 +5295,9 @@ importers: specifier: ^1.2.2 version: 1.2.2 devDependencies: + '@pnpm/logger': + specifier: ^5.0.0 + version: 5.0.0 '@pnpm/plugin-commands-server': specifier: workspace:* version: 'link:' @@ -5328,9 +5331,6 @@ importers: '@pnpm/lockfile-utils': specifier: workspace:* version: link:../../lockfile/lockfile-utils - '@pnpm/logger': - specifier: ^5.0.0 - version: 5.0.0 '@pnpm/normalize-registries': specifier: workspace:* version: link:../../config/normalize-registries @@ -5380,6 +5380,9 @@ importers: '@pnpm/lockfile-file': specifier: workspace:* version: link:../../lockfile/lockfile-file + '@pnpm/logger': + specifier: ^5.0.0 + version: 5.0.0 '@pnpm/plugin-commands-store': specifier: workspace:* version: 'link:' @@ -5388,7 +5391,7 @@ importers: version: link:../../__utils__/prepare '@pnpm/registry-mock': specifier: 3.1.0 - version: 3.1.0_typanion@3.12.1 + version: 3.1.0 '@types/archy': specifier: 0.0.32 version: 0.0.32 @@ -5419,9 +5422,6 @@ importers: '@pnpm/fetch': specifier: workspace:* version: link:../../network/fetch - '@pnpm/logger': - specifier: ^5.0.0 - version: 5.0.0 '@pnpm/store-controller-types': specifier: workspace:* version: link:../store-controller-types @@ -5441,6 +5441,9 @@ importers: '@pnpm/client': specifier: workspace:* version: link:../../pkg-manager/client + '@pnpm/logger': + specifier: ^5.0.0 + version: 5.0.0 '@pnpm/package-requester': specifier: workspace:* version: link:../../pkg-manager/package-requester @@ -5489,9 +5492,6 @@ importers: '@pnpm/error': specifier: workspace:* version: link:../../packages/error - '@pnpm/logger': - specifier: ^5.0.0 - version: 5.0.0 '@pnpm/package-store': specifier: workspace:* version: link:../package-store @@ -5511,6 +5511,9 @@ importers: specifier: ^2.0.0 version: 2.0.0 devDependencies: + '@pnpm/logger': + specifier: ^5.0.0 + version: 5.0.0 '@pnpm/store-connection-manager': specifier: workspace:* version: 'link:' @@ -8031,6 +8034,27 @@ packages: - typanion dev: true + /@pnpm/registry-mock/3.1.0: + resolution: {integrity: sha512-uOWJxzqNOutPbeH+yQW+cYwg0yM1eCdaMWstlIVjBCCoJ2IEpwsi3KhQnCDmMKZbqqUdPDcHTQaYzMKVG0WAFQ==} + engines: {node: '>=10.13'} + hasBin: true + dependencies: + anonymous-npm-registry-client: 0.2.0 + cpr: 3.0.1 + execa: 5.1.1 + read-yaml-file: 2.1.0 + rimraf: 3.0.2 + tempy: 1.0.1 + verdaccio: 5.16.3 + write-yaml-file: 4.2.0 + transitivePeerDependencies: + - bufferutil + - canvas + - encoding + - supports-color + - typanion + - utf-8-validate + /@pnpm/registry-mock/3.1.0_typanion@3.12.1: resolution: {integrity: sha512-uOWJxzqNOutPbeH+yQW+cYwg0yM1eCdaMWstlIVjBCCoJ2IEpwsi3KhQnCDmMKZbqqUdPDcHTQaYzMKVG0WAFQ==} engines: {node: '>=10.13'} @@ -8051,6 +8075,7 @@ packages: - supports-color - typanion - utf-8-validate + dev: true /@pnpm/remove-bins/4.0.2_@pnpm+logger@5.0.0: resolution: {integrity: sha512-49s59lNaEpL8y3r+oU5K8H46DzjI5QeREICOwNG5k/rRPZ5K2ksNgcnKD/XqPARfDW2KSE/3b74O78t5kH3AHg==} @@ -8828,6 +8853,39 @@ packages: - typanion dev: true + /@yarnpkg/core/4.0.0-rc.27: + resolution: {integrity: sha512-y5PKe+7SVIsDmz+YEOzNme5rf0myiTxGF2xCFvdYQKHNnJ+qylEEFpULD9i74LTEx2HLdXttH2aP+uXnhTkDww==} + engines: {node: '>=14.15.0'} + dependencies: + '@arcanis/slice-ansi': 1.1.1 + '@types/lodash': 4.14.181 + '@types/semver': 7.3.13 + '@types/treeify': 1.0.0 + '@yarnpkg/fslib': 3.0.0-rc.25 + '@yarnpkg/libzip': 3.0.0-rc.25_@yarnpkg+fslib@3.0.0-rc.25 + '@yarnpkg/parsers': 3.0.0-rc.30 + '@yarnpkg/shell': 4.0.0-rc.30 + camelcase: 5.3.1 + chalk: 3.0.0 + ci-info: 3.6.1 + clipanion: 3.2.0-rc.6 + cross-spawn: 7.0.3 + diff: 5.1.0 + globby: 11.1.0 + got: 11.8.5 + lodash: 4.17.21 + micromatch: 4.0.5 + p-limit: 2.3.0 + semver: 7.3.8 + strip-ansi: 6.0.1 + tar: 6.1.12 + tinylogic: 2.0.0 + treeify: 1.1.0 + tslib: 2.4.1 + tunnel: 0.0.6 + transitivePeerDependencies: + - typanion + /@yarnpkg/core/4.0.0-rc.27_typanion@3.12.1: resolution: {integrity: sha512-y5PKe+7SVIsDmz+YEOzNme5rf0myiTxGF2xCFvdYQKHNnJ+qylEEFpULD9i74LTEx2HLdXttH2aP+uXnhTkDww==} engines: {node: '>=14.15.0'} @@ -8898,6 +8956,17 @@ packages: /@yarnpkg/lockfile/1.1.0: resolution: {integrity: sha512-GpSwvyXOcOOlV70vbnzjj4fW5xW/FdUF6nQEt1ENy7m4ZCczi1+/buVUPAqmGfqznsORNFzUMjctTIp8a9tuCQ==} + /@yarnpkg/nm/4.0.0-rc.27: + resolution: {integrity: sha512-KfoYI38XY0PjpPu+LGvRHxg3OFO+5nwbQy/c5FuLR0ipQkXcinS3JbG+de17Mf6QdKnBTcghA7mdrUKs5JbxyA==} + engines: {node: '>=14.15.0'} + dependencies: + '@yarnpkg/core': 4.0.0-rc.27 + '@yarnpkg/fslib': 3.0.0-rc.25 + '@yarnpkg/pnp': 4.0.0-rc.30 + transitivePeerDependencies: + - typanion + dev: false + /@yarnpkg/nm/4.0.0-rc.27_typanion@3.12.1: resolution: {integrity: sha512-KfoYI38XY0PjpPu+LGvRHxg3OFO+5nwbQy/c5FuLR0ipQkXcinS3JbG+de17Mf6QdKnBTcghA7mdrUKs5JbxyA==} engines: {node: '>=14.15.0'} @@ -8907,6 +8976,7 @@ packages: '@yarnpkg/pnp': 4.0.0-rc.30 transitivePeerDependencies: - typanion + dev: true /@yarnpkg/parsers/2.5.1: resolution: {integrity: sha512-KtYN6Ez3x753vPF9rETxNTPnPjeaHY11Exlpqb4eTII7WRlnGiZ5rvvQBau4R20Ik5KBv+vS3EJEcHyCunwzzw==} @@ -8962,6 +9032,22 @@ packages: transitivePeerDependencies: - typanion + /@yarnpkg/shell/4.0.0-rc.30: + resolution: {integrity: sha512-ZBX6X/LMRoHF0COrfG2Q/txYM13pK4RXEbwK5Vxcvc8b4h43EAPhUPvwuDouXQskGweVSivsbA7f94Mb40SqfA==} + engines: {node: '>=14.15.0'} + hasBin: true + dependencies: + '@yarnpkg/fslib': 3.0.0-rc.25 + '@yarnpkg/parsers': 3.0.0-rc.30 + chalk: 3.0.0 + clipanion: 3.2.0-rc.6 + cross-spawn: 7.0.3 + fast-glob: 3.2.12 + micromatch: 4.0.5 + tslib: 2.4.1 + transitivePeerDependencies: + - typanion + /@yarnpkg/shell/4.0.0-rc.30_typanion@3.12.1: resolution: {integrity: sha512-ZBX6X/LMRoHF0COrfG2Q/txYM13pK4RXEbwK5Vxcvc8b4h43EAPhUPvwuDouXQskGweVSivsbA7f94Mb40SqfA==} engines: {node: '>=14.15.0'} @@ -9856,6 +9942,11 @@ packages: resolution: {integrity: sha512-GRMWDxpOB6Dgk2E5Uo+3eEBvtOOlimMmpbFiKuLFnQzYDavtLFY3K5ona41jgN/WdRZtG7utuVSVTL4HbZHGkw==} dev: true + /clipanion/3.2.0-rc.6: + resolution: {integrity: sha512-lcByFNxi1L/sskjD/YybFZI43bnkm/AuUNFcF5i5Znz6nvWCH9gfq4qkNmAk5MhS/MPY5Im8jiqYH54h23Vc7Q==} + peerDependencies: + typanion: '*' + /clipanion/3.2.0-rc.6_typanion@3.12.1: resolution: {integrity: sha512-lcByFNxi1L/sskjD/YybFZI43bnkm/AuUNFcF5i5Znz6nvWCH9gfq4qkNmAk5MhS/MPY5Im8jiqYH54h23Vc7Q==} peerDependencies: @@ -16100,6 +16191,10 @@ packages: resolution: {integrity: sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==} engines: {node: '>=8'} + /strip-comments-strings/1.2.0: + resolution: {integrity: sha512-zwF4bmnyEjZwRhaak9jUWNxc0DoeKBJ7lwSN/LEc8dQXZcUFG6auaaTQJokQWXopLdM3iTx01nQT8E4aL29DAQ==} + dev: false + /strip-final-newline/2.0.0: resolution: {integrity: sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==} engines: {node: '>=6'} @@ -16864,6 +16959,61 @@ packages: http-errors: 2.0.0 unix-crypt-td-js: 1.1.4 + /verdaccio/5.16.3: + resolution: {integrity: sha512-2MWGcInH4wR1zSWQpsr51sAZjOzAMvtbi5IrqD4+1VCU2VB1VI5kAwte+ic8DA09thX1xaKGQgOsjMdT6p3jNQ==} + engines: {node: '>=12', npm: '>=6'} + hasBin: true + dependencies: + '@verdaccio/commons-api': 10.2.0 + '@verdaccio/local-storage': 10.3.1 + '@verdaccio/readme': 10.4.2 + '@verdaccio/streams': 10.2.0 + '@verdaccio/ui-theme': 6.0.0-6-next.50 + JSONStream: 1.3.5 + async: 3.2.4 + body-parser: 1.20.1 + clipanion: 3.2.0-rc.6 + compression: 1.7.4 + cookies: 0.8.0 + cors: 2.8.5 + dayjs: 1.11.6 + debug: 4.3.4 + envinfo: 7.8.1 + eslint-import-resolver-node: 0.3.6 + express: 4.18.2 + express-rate-limit: 5.5.1 + fast-safe-stringify: 2.1.1 + handlebars: 4.7.7 + http-errors: 2.0.0 + js-yaml: /@zkochan/js-yaml/0.0.6 + jsonwebtoken: 8.5.1 + kleur: 4.1.5 + lodash: 4.17.21 + lru-cache: 7.14.0 + lunr-mutable-indexes: 2.3.2 + marked: 4.2.2 + memoizee: 0.4.15 + mime: 3.0.0 + minimatch: 5.1.0 + mkdirp: 1.0.4 + mv: 2.1.1 + pino: 6.14.0 + pkginfo: 0.4.1 + prettier-bytes: 1.0.4 + pretty-ms: 7.0.1 + request: 2.88.0 + semver: 7.3.7 + validator: 13.7.0 + verdaccio-audit: 10.2.3 + verdaccio-htpasswd: 10.5.1 + transitivePeerDependencies: + - bufferutil + - canvas + - encoding + - supports-color + - typanion + - utf-8-validate + /verdaccio/5.16.3_typanion@3.12.1: resolution: {integrity: sha512-2MWGcInH4wR1zSWQpsr51sAZjOzAMvtbi5IrqD4+1VCU2VB1VI5kAwte+ic8DA09thX1xaKGQgOsjMdT6p3jNQ==} engines: {node: '>=12', npm: '>=6'} @@ -16918,6 +17068,7 @@ packages: - supports-color - typanion - utf-8-validate + dev: true /verror/1.10.0: resolution: {integrity: sha512-ZZKSmDAEFOijERBLkmYfJ+vmk3w+7hOLYDNkRCuRuMJGEmqYNCNLyBBFwWKVMhfwaEF3WOd0Zlw86U/WC/+nYw==} @@ -17589,6 +17740,7 @@ time: /string.prototype.replaceall/1.0.6: '2021-10-05T01:00:00.092Z' /strip-ansi/6.0.1: '2021-09-23T16:34:41.798Z' /strip-bom/4.0.0: '2019-04-28T04:40:47.887Z' + /strip-comments-strings/1.2.0: '2022-06-12T23:34:53.852Z' /symlink-dir/5.1.0: '2022-11-20T16:48:15.918Z' /syncpack/8.3.9: '2022-10-28T16:58:42.312Z' /tar-stream/2.2.0: '2020-12-29T10:22:57.508Z'