diff --git a/.changeset/calm-doors-switch.md b/.changeset/calm-doors-switch.md new file mode 100644 index 0000000000..4094e6ad10 --- /dev/null +++ b/.changeset/calm-doors-switch.md @@ -0,0 +1,6 @@ +--- +"@pnpm/core": patch +"pnpm": patch +--- + +Use Yarn's compatibility database to patch broken packages in the ecosystem with package extensions. diff --git a/package.json b/package.json index fb04becc8c..1c4f9b4605 100644 --- a/package.json +++ b/package.json @@ -117,7 +117,8 @@ "allowedVersions": { "eslint": "*", "@typescript-eslint/eslint-plugin": "^5.6.0" - } + }, + "ignoreMissing": ["@yarnpkg/plugin-patch"] } } } diff --git a/packages/core/package.json b/packages/core/package.json index a05456bff3..9be869c46d 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -49,6 +49,7 @@ "@pnpm/symlink-dependency": "workspace:5.0.1", "@pnpm/types": "workspace:8.0.1", "@pnpm/which-version-is-pinned": "workspace:2.0.0", + "@yarnpkg/plugin-compat": "4.0.0-rc.4", "@zkochan/npm-package-arg": "^2.0.1", "@zkochan/rimraf": "^2.1.2", "dependency-path": "workspace:9.1.1", @@ -83,6 +84,7 @@ "@types/ramda": "0.27.39", "@types/semver": "^7.3.4", "@types/sinon": "^10.0.6", + "@yarnpkg/core": "3.2.0", "deep-require-cwd": "1.0.0", "execa": "npm:safe-execa@^0.1.1", "exists-link": "2.0.0", diff --git a/packages/core/src/install/index.ts b/packages/core/src/install/index.ts index db9697cf56..86507bd31d 100644 --- a/packages/core/src/install/index.ts +++ b/packages/core/src/install/index.ts @@ -53,6 +53,7 @@ import { ProjectManifest, ReadPackageHook, } from '@pnpm/types' +import { packageExtensions as compatPackageExtensions } from '@yarnpkg/plugin-compat/lib/extensions' import rimraf from '@zkochan/rimraf' import isInnerLink from 'is-inner-link' import pFilter from 'p-filter' @@ -515,6 +516,7 @@ export function createReadPackageHook ( if (!isEmpty(overrides ?? {})) { hooks.push(createVersionsOverrider(overrides!, lockfileDir)) } + hooks.push(createPackageExtender(fromPairs(compatPackageExtensions))) if (!isEmpty(packageExtensions ?? {})) { hooks.push(createPackageExtender(packageExtensions!)) } diff --git a/packages/core/test/install/packageExtensions.ts b/packages/core/test/install/packageExtensions.ts index f6f6bd8c41..4cdafc262f 100644 --- a/packages/core/test/install/packageExtensions.ts +++ b/packages/core/test/install/packageExtensions.ts @@ -101,3 +101,16 @@ test('manifests are extended with fields specified by packageExtensions', async ) ) }) + +test('manifests are patched by extensions from the compatibility database', async () => { + const project = prepareEmpty() + + await addDependenciesToPackage( + {}, + ['debug@4.0.0'], + await testDefaults() + ) + + const lockfile = await project.readLockfile() + expect(lockfile.packages['/debug/4.0.0'].peerDependenciesMeta?.['supports-color']?.optional).toBe(true) +}) diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 5af7f5fa14..d7752bb273 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -439,6 +439,8 @@ importers: '@types/ramda': 0.27.39 '@types/semver': ^7.3.4 '@types/sinon': ^10.0.6 + '@yarnpkg/core': 3.2.0 + '@yarnpkg/plugin-compat': 4.0.0-rc.4 '@zkochan/npm-package-arg': ^2.0.1 '@zkochan/rimraf': ^2.1.2 deep-require-cwd: 1.0.0 @@ -501,6 +503,7 @@ importers: '@pnpm/symlink-dependency': link:../symlink-dependency '@pnpm/types': link:../types '@pnpm/which-version-is-pinned': link:../which-version-is-pinned + '@yarnpkg/plugin-compat': 4.0.0-rc.4_@yarnpkg+core@3.2.0 '@zkochan/npm-package-arg': 2.0.1 '@zkochan/rimraf': 2.1.2 dependency-path: link:../dependency-path @@ -534,6 +537,7 @@ importers: '@types/ramda': 0.27.39 '@types/semver': 7.3.9 '@types/sinon': 10.0.11 + '@yarnpkg/core': 3.2.0 deep-require-cwd: 1.0.0 execa: /safe-execa/0.1.1 exists-link: 2.0.0 @@ -3692,7 +3696,6 @@ packages: resolution: {integrity: sha512-xguP2WR2Dv0gQ7Ykbdb7BNCnPnIPB94uTi0Z2NvkRBEnhbwjOQ7QyQKJXrVQg4qDpiD9hA5l5cCwy/z2OXgc3w==} dependencies: grapheme-splitter: 1.0.4 - dev: false /@babel/code-frame/7.16.7: resolution: {integrity: sha512-iAXqUn8IIeBTNd72xsFlgaXHkMBMt6y4HJp1tIaK465CWLT/fG1aqB7ykr95gHHmlBdGbFeWWfyB4NJJ0nmeIg==} @@ -4347,11 +4350,9 @@ packages: /@chevrotain/types/9.1.0: resolution: {integrity: sha512-3hbCD1CThkv9gnaSIPq0GUXwKni68e0ph6jIHwCvcWiQ4JB2xi8bFxBain0RF04qHUWuDjgnZLj4rLgimuGO+g==} - dev: false /@chevrotain/utils/9.1.0: resolution: {integrity: sha512-llLJZ8OAlZrjGlBvamm6Zdo/HmGAcCLq5gx7cSwUX8No+n/8ip+oaC4x33IdZIif8+Rh5dQUIZXmfbSghiOmNQ==} - dev: false /@commitlint/cli/16.2.4: resolution: {integrity: sha512-rbvqvz9JI+uiKxV2nH65BtSU01fsADd3bxe9fWtO3rM0c+CI/H9FfzKkDLvSRmXjvk1G2/wXlCGeqO9IBT4X9g==} @@ -5231,7 +5232,6 @@ packages: /@sindresorhus/is/4.6.0: resolution: {integrity: sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw==} engines: {node: '>=10'} - dev: false /@sinonjs/commons/1.8.3: resolution: {integrity: sha512-xkNcLAn/wZaX14RPlwizcKicDk9G3F8m2nU3L7Ukm5zBgTwiT0wsoFAHx9Jq56fJA1z/7uKGtCRu16sOUCLIHQ==} @@ -5268,7 +5268,6 @@ packages: engines: {node: '>=10'} dependencies: defer-to-connect: 2.0.1 - dev: false /@tootallnate/once/1.1.2: resolution: {integrity: sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==} @@ -5350,7 +5349,6 @@ packages: '@types/keyv': 3.1.4 '@types/node': 17.0.31 '@types/responselike': 1.0.0 - dev: false /@types/concat-stream/1.6.1: resolution: {integrity: sha512-eHE4cQPoj6ngxBZMvVf6Hw7Mh4jMW4U9lpGmS5GBPB9RYxlFg+CHaVN7ErNY4W9XfLIEn20b4VDYaIrbq0q4uA==} @@ -5366,7 +5364,6 @@ packages: /@types/emscripten/1.39.6: resolution: {integrity: sha512-H90aoynNhhkQP6DRweEjJp5vfUVdIj7tdPLsu7pq89vODD/lcugKfZOsfgwpvM6XUewEp2N5dCg1Uf3Qe55Dcg==} - dev: false /@types/fs-extra/9.0.13: resolution: {integrity: sha512-nEnwB++1u5lVDM2UI4c1+5R+FYaKfaAzS4OococimjVm3nQw3TuzH5UNsocrcTBbhnerblyHj4A49qXbIiZdpA==} @@ -5393,7 +5390,6 @@ packages: /@types/http-cache-semantics/4.0.1: resolution: {integrity: sha512-SZs7ekbP8CN0txVG2xVRH6EgKmEm31BOxA07vkFaETzZz1xh+cbt8BcI0slpymvwhx5dlFnQG2rTlPVQn+iRPQ==} - dev: false /@types/http-proxy-agent/4.0.1: resolution: {integrity: sha512-2XJTByP9C14Kcq5ClvPRfOgFJxklhuru7xmuSPcNr2CPwRGdpCgIdUUNc0MDb25+bzaSolVN0u4RKH7M+CMimg==} @@ -5449,7 +5445,6 @@ packages: /@types/json-buffer/3.0.0: resolution: {integrity: sha512-3YP80IxxFJB4b5tYC2SUPwkg0XQLiu0nWvhRgEatgjf+29IcWO9X1k8xRv5DGssJ/lCrjYTjQPcobJr2yWIVuQ==} - dev: false /@types/json-schema/7.0.11: resolution: {integrity: sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==} @@ -5470,11 +5465,9 @@ packages: resolution: {integrity: sha512-BQ5aZNSCpj7D6K2ksrRCTmKRLEpnPvWDiLPfoGyhZ++8YtiK9d/3DBKPJgry359X/P1PfruyYwvnvwFjuEiEIg==} dependencies: '@types/node': 17.0.31 - dev: false /@types/lodash/4.14.181: resolution: {integrity: sha512-n3tyKthHJbkiWhDZs3DkhkCzt2MexYHXlX0td5iMplyfwketaOeKboEVBqzceH7juqvEg3q5oUoBFxSLu7zFag==} - dev: false /@types/lru-cache/5.1.1: resolution: {integrity: sha512-ssE3Vlrys7sdIzs5LOxCzTVMsU7i9oa/IaW92wF32JFb3CVczqOkru2xspuKczHEbG3nvmPY7IFqVmGGHdNbYw==} @@ -5512,7 +5505,6 @@ packages: /@types/node/13.13.52: resolution: {integrity: sha512-s3nugnZumCC//n4moGGe6tkNMyYEdaDBitVjwPxXmR5lnMG5dHePinH2EdxkG3Rh1ghFHHixAG4NJhpJW1rthQ==} - dev: false /@types/node/14.18.16: resolution: {integrity: sha512-X3bUMdK/VmvrWdoTkz+VCn6nwKwrKCFTHtqwBIaQJNx4RUIBBUFXM00bqPz/DsDd+Icjmzm6/tyYZzeGVqb6/Q==} @@ -5554,7 +5546,6 @@ packages: resolution: {integrity: sha512-85Y2BjiufFzaMIlvJDvTTB8Fxl2xfLo4HgmHzVBz08w4wDePCTjYw66PdrolO0kzli3yam/YCgRufyo1DdQVTA==} dependencies: '@types/node': 17.0.31 - dev: false /@types/retry/0.12.2: resolution: {integrity: sha512-XISRgDJ2Tc5q4TRqvgJtzsRkFYNJzZrhTdtMoGVBttwzzQJkPnS3WWTFc7kuDRoPtPakl+T+OfdEUjYJj7Jbow==} @@ -5621,7 +5612,6 @@ packages: /@types/treeify/1.0.0: resolution: {integrity: sha512-ONpcZAEYlbPx4EtJwfTyCDQJGUpKf4sEcuySdCVjK5Fj/3vHp5HII1fqa1/+qrsLnpYELCQTfVW/awsGJePoIg==} - dev: false /@types/unist/2.0.6: resolution: {integrity: sha512-PBjIUxZHOuj0R15/xuwJYjFi+KZdNFrehocChv4g5hu6aFroHue8m0lBP0POdK2nKzbw0cgV1mws8+V/JAcEkQ==} @@ -5934,7 +5924,6 @@ packages: treeify: 1.1.0 tslib: 1.14.1 tunnel: 0.0.6 - dev: false /@yarnpkg/fslib/2.6.1: resolution: {integrity: sha512-OtxwAUeBUt0ba/YnakcEw90YtYwQH+kT8wwHTP46HR8KuvVFawFLT6kwS18l5PARTIwKbqC1QaFyOrLn9xYfKg==} @@ -5942,7 +5931,6 @@ packages: dependencies: '@yarnpkg/libzip': 2.2.4 tslib: 1.14.1 - dev: false /@yarnpkg/json-proxy/2.1.1: resolution: {integrity: sha512-meUiCAgCYpXTH1qJfqfz+dX013ohW9p2dKfwIzUYAFutH+lsz1eHPBIk72cuCV84adh9gX6j66ekBKH/bIhCQw==} @@ -5950,7 +5938,6 @@ packages: dependencies: '@yarnpkg/fslib': 2.6.1 tslib: 1.14.1 - dev: false /@yarnpkg/libzip/2.2.4: resolution: {integrity: sha512-QP0vUP+w0d7Jlo7jqTnlRChSnIB/dOF7nJFLD/gsPvFIHsVWLQQuAiolOcXQUD2hezLD1mQd2qb0yOKqPYRcfQ==} @@ -5958,7 +5945,6 @@ packages: dependencies: '@types/emscripten': 1.39.6 tslib: 1.14.1 - dev: false /@yarnpkg/lockfile/1.1.0: resolution: {integrity: sha512-GpSwvyXOcOOlV70vbnzjj4fW5xW/FdUF6nQEt1ENy7m4ZCczi1+/buVUPAqmGfqznsORNFzUMjctTIp8a9tuCQ==} @@ -5978,6 +5964,15 @@ packages: dependencies: js-yaml: 3.14.1 tslib: 1.14.1 + + /@yarnpkg/plugin-compat/4.0.0-rc.4_@yarnpkg+core@3.2.0: + resolution: {integrity: sha512-yle1mg4xJttDOnsuKzuFbXmhEE0rg4HM+PoXNNkr9fMy5LmI5xLo/nzzmzkBgg6gQ3VsvnYEvjG2V09tHp/YEg==} + engines: {node: '>=14.15.0'} + peerDependencies: + '@yarnpkg/core': ^4.0.0-rc.4 + '@yarnpkg/plugin-patch': ^4.0.0-rc.4 + dependencies: + '@yarnpkg/core': 3.2.0 dev: false /@yarnpkg/pnp/2.3.2: @@ -5995,7 +5990,6 @@ packages: dependencies: '@types/node': 13.13.52 '@yarnpkg/fslib': 2.6.1 - dev: false /@yarnpkg/shell/3.2.0: resolution: {integrity: sha512-zyompS91RMmCtaMijnHo63/CHo4b8Goh/VWWrJRujQl3e4JpPGUQtE/5qhER/vjmAbRbOc5RUmAUb/irGiH37Q==} @@ -6011,7 +6005,6 @@ packages: micromatch: 4.0.5 stream-buffers: 3.0.2 tslib: 1.14.1 - dev: false /@yarnpkg/shell/3.2.0-rc.8: resolution: {integrity: sha512-UEcdjx+0gUwa3N/fWfnlqae//b7cNc1Imla+W7jqc9XMoydk3CG5EISx+5KY2hjrhpaZ55bXUP9Z6q0mjo+KdA==} @@ -6466,7 +6459,6 @@ packages: /asap/2.0.6: resolution: {integrity: sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY=} - dev: false /asn1/0.2.6: resolution: {integrity: sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ==} @@ -6878,7 +6870,6 @@ packages: /cacheable-lookup/5.0.4: resolution: {integrity: sha512-2/kNscPhpcxrOigMZzbiWF7dz8ilhb/nIHU3EyZiXWXpeq/au8qJ8VhdftMkty3n7Gj6HIGalQG8oiBNB3AJgA==} engines: {node: '>=10.6.0'} - dev: false /cacheable-request/7.0.2: resolution: {integrity: sha512-pouW8/FmiPQbuGpkXQ9BAPv/Mo5xDGANgSNXzTzJ8DrKGuXOssM4wIQRjfanNRh3Yu5cfYPvcorqbhg2KIJtew==} @@ -6891,7 +6882,6 @@ packages: lowercase-keys: 2.0.0 normalize-url: 6.1.0 responselike: 2.0.0 - dev: false /call-bind/1.0.2: resolution: {integrity: sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==} @@ -7015,7 +7005,6 @@ packages: '@chevrotain/types': 9.1.0 '@chevrotain/utils': 9.1.0 regexp-to-ast: 0.5.0 - dev: false /chownr/1.1.4: resolution: {integrity: sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==} @@ -7107,7 +7096,6 @@ packages: resolution: {integrity: sha1-0dyXOSAxTfZ/vrlCI7TuNQI56Ws=} dependencies: mimic-response: 1.0.1 - dev: false /clone-stats/1.0.0: resolution: {integrity: sha1-s3gt/4u1R04Yuba/D9/ngvh3doA=} @@ -7242,7 +7230,6 @@ packages: dependencies: '@types/json-buffer': 3.0.0 json-buffer: 3.0.1 - dev: false /compressible/2.0.18: resolution: {integrity: sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==} @@ -7657,7 +7644,6 @@ packages: engines: {node: '>=10'} dependencies: mimic-response: 3.1.0 - dev: false /dedent/0.7.0: resolution: {integrity: sha1-JJXduvbrh0q7Dhvp3yLS5aVEMmw=} @@ -7703,7 +7689,6 @@ packages: /defer-to-connect/2.0.1: resolution: {integrity: sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg==} engines: {node: '>=10'} - dev: false /define-properties/1.1.4: resolution: {integrity: sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA==} @@ -7939,7 +7924,6 @@ packages: resolution: {integrity: sha1-6TUyWLqpEIll78QcsO+K3i88+wc=} dependencies: once: 1.3.3 - dev: false /end-of-stream/1.4.4: resolution: {integrity: sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==} @@ -9171,7 +9155,6 @@ packages: engines: {node: '>=8'} dependencies: pump: 3.0.0 - dev: false /get-stream/6.0.1: resolution: {integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==} @@ -9333,7 +9316,6 @@ packages: lowercase-keys: 2.0.0 p-cancelable: 2.1.1 responselike: 2.0.0 - dev: false /graceful-fs/4.2.10: resolution: {integrity: sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==} @@ -9491,7 +9473,6 @@ packages: /http-cache-semantics/4.1.0: resolution: {integrity: sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ==} - dev: false /http-errors/1.8.1: resolution: {integrity: sha512-Kpk9Sm7NmI+RHhnj6OIWDI1d6fIoFAtFt9RLaTMRlg/8w49juAStsrBgp0Dp4OdxdVbRIeKhtCUvoi/RuAhO4g==} @@ -9540,7 +9521,6 @@ packages: dependencies: quick-lru: 5.1.1 resolve-alpn: 1.2.1 - dev: false /https-proxy-agent/5.0.0: resolution: {integrity: sha512-EkYm5BcKUGiduxzSt3Eppko+PiNWNEpa4ySk9vTC6wDsQJW9rHSa+UhGNJoRYp7bz6Ht1eaRIa6QaJqO5rCFbA==} @@ -10087,7 +10067,6 @@ packages: /is/3.3.0: resolution: {integrity: sha512-nW24QBoPcFGGHJGUwnfpI7Yc5CdqWNdsyHQszVE/z2pKHXzh7FZ5GWhJqSyaQ9wMkQnsTx+kAI8bHlCX4tKdbg==} - dev: false /isarray/0.0.1: resolution: {integrity: sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=} @@ -10736,7 +10715,6 @@ packages: /json-buffer/3.0.1: resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==} - dev: false /json-file-plus/3.3.1: resolution: {integrity: sha512-wo0q1UuiV5NsDPQDup1Km8IwEeqe+olr8tkWxeJq9Bjtcp7DZ0l+yrg28fSC3DEtrE311mhTZ54QGS6oiqnZEA==} @@ -10747,7 +10725,6 @@ packages: object.assign: 4.1.2 promiseback: 2.0.3 safer-buffer: 2.1.2 - dev: false /json-parse-better-errors/1.0.2: resolution: {integrity: sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==} @@ -10854,7 +10831,6 @@ packages: dependencies: compress-brotli: 1.3.6 json-buffer: 3.0.1 - dev: false /kind-of/3.2.2: resolution: {integrity: sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=} @@ -11110,7 +11086,6 @@ packages: /lowercase-keys/2.0.0: resolution: {integrity: sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==} engines: {node: '>=8'} - dev: false /lru-cache/4.1.5: resolution: {integrity: sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==} @@ -11437,7 +11412,6 @@ packages: /mimic-response/1.0.1: resolution: {integrity: sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==} engines: {node: '>=4'} - dev: false /mimic-response/2.1.0: resolution: {integrity: sha512-wXqjST+SLt7R009ySCglWBCFpjUygmCIfD790/kVbiGmUgfYGuB14PiTd5DwVxSV4NcYHjzMkoj5LjQZwTQLEA==} @@ -11447,7 +11421,6 @@ packages: /mimic-response/3.1.0: resolution: {integrity: sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==} engines: {node: '>=10'} - dev: false /min-indent/1.0.1: resolution: {integrity: sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==} @@ -11782,7 +11755,6 @@ packages: dependencies: has: 1.0.3 is: 3.3.0 - dev: false /noop-logger/0.1.1: resolution: {integrity: sha1-lKKxYzxPExdVMAfYlm/Q6EG2pMI=} @@ -11833,7 +11805,6 @@ packages: /normalize-url/6.1.0: resolution: {integrity: sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==} engines: {node: '>=10'} - dev: false /now-and-later/2.0.1: resolution: {integrity: sha512-KGvQ0cB70AQfg107Xvs/Fbu+dGmZoTRJp2TaPwcwQm3/7PteUyN2BCgk8KBMPGBUXZdVwyWS8fDCGFygBm19UQ==} @@ -11993,7 +11964,6 @@ packages: resolution: {integrity: sha1-suJhVXzkwxTsgwTz+oJmPkKXyiA=} dependencies: wrappy: 1.0.2 - dev: false /once/1.4.0: resolution: {integrity: sha1-WDsap3WWHUsROsF9nFC6753Xa9E=} @@ -12488,7 +12458,6 @@ packages: /pluralize/7.0.0: resolution: {integrity: sha512-ARhBOdzS3e41FbkW/XWrTEtukqqLoK5+Z/4UeDaLuSW+39JPeFgs4gCGqsrJHVZX0fUrx//4OF0K1CUGwlIFow==} engines: {node: '>=4'} - dev: false /pn/1.1.0: resolution: {integrity: sha512-2qHaIQr2VLRFoxe2nASzsV6ef4yOOH+Fi9FBOVH6cqeSgUnoyySPZkxzLuzd+RYOQTRpROA0ztTMqxROKSb/nA==} @@ -12607,7 +12576,6 @@ packages: engines: {node: '>= 0.4'} dependencies: promise: 7.3.1 - dev: false /promise-inflight/1.0.1: resolution: {integrity: sha1-mEcocL8igTL8vdhoEputEsPAKeM=} @@ -12632,7 +12600,6 @@ packages: resolution: {integrity: sha512-nolQXZ/4L+bP/UGlkfaIujX9BKxGwmQ9OT4mOt5yvy8iK1h3wqTEJCijzGANTCCl9nWjY41juyAn2K3Q1hLLTg==} dependencies: asap: 2.0.6 - dev: false /promiseback/2.0.3: resolution: {integrity: sha512-VZXdCwS0ppVNTIRfNsCvVwJAaP2b+pxQF7lM8DMWfmpNWyTxB6O5YNbzs+8z0ki/KIBHKHk308NTIl4kJUem3w==} @@ -12640,7 +12607,6 @@ packages: dependencies: is-callable: 1.2.4 promise-deferred: 2.0.3 - dev: false /prompts/2.4.2: resolution: {integrity: sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==} @@ -12946,7 +12912,6 @@ packages: /regexp-to-ast/0.5.0: resolution: {integrity: sha512-tlbJqcMHnPKI9zSrystikWKwHkBqu2a/Sgw01h3zFjvYrMxEDYHzzoMZnUrbIfpTFEsoRnnviOXNCzFiSc54Qw==} - dev: false /regexpp/3.2.0: resolution: {integrity: sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==} @@ -13133,7 +13098,6 @@ packages: /resolve-alpn/1.2.1: resolution: {integrity: sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g==} - dev: false /resolve-cwd/3.0.0: resolution: {integrity: sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==} @@ -13195,7 +13159,6 @@ packages: resolution: {integrity: sha512-xH48u3FTB9VsZw7R+vvgaKeLKzT6jOogbQhEe/jewwnZgzPcnyWui2Av6JpoYZF/91uueC+lqhWqeURw5/qhCw==} dependencies: lowercase-keys: 2.0.0 - dev: false /restore-cursor/2.0.0: resolution: {integrity: sha1-n37ih/gv0ybU/RYpI9YhKe7g368=} @@ -13771,7 +13734,6 @@ packages: /stream-buffers/3.0.2: resolution: {integrity: sha512-DQi1h8VEBA/lURbSwFtEHnSTb9s2/pwLEaFuNhXwy1Dx3Sa0lOuYT2yNUr4/j2fs8oCAMANtrZ5OrPZtyVs3MQ==} engines: {node: '>= 0.10.0'} - dev: false /stream-meter/1.0.4: resolution: {integrity: sha1-Uq+Vql6nYKJJFxZwTb/5D3Ov3R0=} @@ -13786,7 +13748,6 @@ packages: resolution: {integrity: sha1-u/azn19D7DC8cbq8s3VXrOzzQ1M=} dependencies: any-promise: 1.3.0 - dev: false /stream-to-promise/2.2.0: resolution: {integrity: sha1-se2y4cjLESidG1A8CNPyrvUeZQ8=} @@ -13794,7 +13755,6 @@ packages: any-promise: 1.3.0 end-of-stream: 1.1.0 stream-to-array: 2.3.0 - dev: false /stream-transform/2.1.3: resolution: {integrity: sha512-9GHUiM5hMiCi6Y03jD2ARC1ettBXkQBoQAe7nJsPknnI0ow10aXjTnew8QtYQmLjzn974BnmWEAJgCY6ZP1DeQ==} @@ -14123,7 +14083,6 @@ packages: resolution: {integrity: sha512-9CpbvSIqfBt1TN/GZYkVjRK0d0TRlo2jdx2cXB2vO5aFy1wx6KGdqfS0MeAcMuR0o5JAeK/zAZkgR0fCyOP21w==} dependencies: chevrotain: 9.1.0 - dev: false /tmp-promise/3.0.3: resolution: {integrity: sha512-RwM7MoPojPxsOBYnyd2hy0bxtIlVrihNs9pj5SUvY8Zz1sQcQG2tG1hSr8PDxfgEB8RNKDhqbIlroIarSNDNsQ==} @@ -14263,7 +14222,6 @@ packages: /treeify/1.1.0: resolution: {integrity: sha512-1m4RA7xVAJrSGrrXGs0L3YTwyvBs2S8PbRHaLZAkFw7JR8oIFwYtysxlBZhYIa7xSyiYJKZ3iGrrk55cGA3i9A==} engines: {node: '>=0.6'} - dev: false /trim-newlines/3.0.1: resolution: {integrity: sha512-c1PTsA3tYrIsLGkJkzHF+w9F2EyxfXGo4UyJc4pFL++FMjnq0HJS69T3M7d//gKrFKwy429bouPescbjecU+Zw==} @@ -14424,7 +14382,6 @@ packages: /tunnel/0.0.6: resolution: {integrity: sha512-1h/Lnq9yajKY2PEbBadPXj3VxsDDu844OnaAo52UVmIzIvwwtBPIuNvkjuzBlTWpfJyUbG3ez0KSBibQkj4ojg==} engines: {node: '>=0.6.11 <=0.7.0 || >=0.7.3'} - dev: false /tweetnacl/0.14.5: resolution: {integrity: sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=}