diff --git a/.devcontainer/Dockerfile b/.devcontainer/Dockerfile
index 9e36d1a4b5a7b5..86e338ca7892f4 100644
--- a/.devcontainer/Dockerfile
+++ b/.devcontainer/Dockerfile
@@ -1,5 +1,5 @@
-FROM containerbase/node:v14.18.0@sha256:50de253d90cbb55711d47927e56850c32ea5fcb7a3c787269a3f15e69a6ee564
+FROM containerbase/node:v14.18.1@sha256:b720748f7a35570e402a8741f37a5bd54ad485dd6b4aeaff04027ad761b1306d
# renovate: datasource=npm
-RUN install-tool yarn 1.22.14
+RUN install-tool yarn 1.22.15
diff --git a/.github/workflows/build-pr.yml b/.github/workflows/build-pr.yml
deleted file mode 100644
index aeffcdfc95a59c..00000000000000
--- a/.github/workflows/build-pr.yml
+++ /dev/null
@@ -1,110 +0,0 @@
-name: build-pr
-
-on:
- pull_request:
-
-env:
- NODE_VERSION: 14
- PYTHON_VERSION: 3.9
- SKIP_JAVA_TESTS: true
-
-concurrency:
- group: ${{ github.workflow }}-${{ github.event.number || github.ref }}
- cancel-in-progress: true
-
-jobs:
- test:
- runs-on: ubuntu-latest
-
- # tests shouldn't need more time
- timeout-minutes: 30
-
- steps:
- - uses: actions/checkout@5a4ac9002d0be2fb38bd78e4b4dbde5606d7042f # renovate: tag=v2.3.4
- with:
- fetch-depth: 2
-
- - name: Set up Node.js ${{ env.NODE_VERSION }}
- uses: actions/setup-node@270253e841af726300e85d718a5f606959b2903c # renovate: tag=v2.4.1
- with:
- node-version: ${{ env.NODE_VERSION }}
- cache: yarn
-
- - name: Set up Python ${{ env.PYTHON_VERSION }}
- uses: actions/setup-python@dc73133d4da04e56a135ae2246682783cc7c7cb6 # renovate: tag=v2.2.2
- with:
- python-version: ${{ env.PYTHON_VERSION }}
-
- - name: Init platform
- shell: bash
- run: |
- git config --global core.autocrlf false
- git config --global core.symlinks true
- git config --global user.email 'renovate@whitesourcesoftware.com'
- git config --global user.name 'Renovate Bot'
- npm config set scripts-prepend-node-path true
- git --version
- echo "Node $(node --version)"
- python --version
- echo "Yarn $(yarn --version)"
-
- - name: Installing dependencies
- run: yarn install --frozen-lockfile
-
- - name: Unit tests
- run: yarn jest --maxWorkers=2 --ci
-
- - name: Codecov
- uses: codecov/codecov-action@f32b3a3741e1053eb607407145bc9619351dc93b # renovate: tag=v2.1.0
- if: always()
-
- # build after tests to exclude files
- - name: Build
- run: yarn build
-
- - name: E2E Test
- run: yarn test-e2e
-
- lint:
- runs-on: ubuntu-latest
-
- # lint shouldn't need more than 10 min
- timeout-minutes: 15
-
- steps:
- - uses: actions/checkout@5a4ac9002d0be2fb38bd78e4b4dbde5606d7042f # renovate: tag=v2.3.4
- with:
- fetch-depth: 2
-
- - name: Set up Node.js ${{ env.NODE_VERSION }}
- uses: actions/setup-node@270253e841af726300e85d718a5f606959b2903c # renovate: tag=v2.4.1
- with:
- node-version: ${{ env.NODE_VERSION }}
- cache: yarn
-
- - name: Init platform
- run: |
- git config --global core.autocrlf false
- git config --global core.symlinks true
- git config --global user.email 'renovate@whitesourcesoftware.com'
- git config --global user.name 'Renovate Bot'
- npm config set scripts-prepend-node-path true
- echo "Node $(node --version)"
- echo "Yarn $(yarn --version)"
-
- - name: Installing dependencies
- run: yarn install --frozen-lockfile
-
- - name: Lint
- run: |
- yarn ls-lint
- yarn eslint -f gha
- yarn prettier
- yarn markdown-lint
- yarn git-check
-
- - name: Test schema
- run: yarn test-schema
-
- - name: Type check
- run: yarn type-check
diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml
index 79aaabf787be1c..a5ea6700a1c9f1 100644
--- a/.github/workflows/build.yml
+++ b/.github/workflows/build.yml
@@ -6,6 +6,8 @@ on:
- main
- v25
+ pull_request:
+
workflow_dispatch:
inputs:
dryRun:
@@ -13,6 +15,10 @@ on:
default: 'true'
required: false
+concurrency:
+ group: ${{ github.workflow }}-${{ github.event.number || github.ref }}
+ cancel-in-progress: true
+
env:
# Currently no way to detect automatically (#8153)
DEFAULT_BRANCH: main
@@ -21,6 +27,7 @@ env:
jobs:
test:
+ name: ${{ format('test ({0})', matrix.os) }}
runs-on: ${{ matrix.os }}
# tests shouldn't need more time
@@ -28,16 +35,31 @@ jobs:
strategy:
matrix:
- os: [ubuntu-latest, macos-11, windows-latest]
+ os: [ubuntu-latest]
node-version: [14]
python-version: [3.9]
java-version: [11]
+ # skip macOS and Windows test on pull requests without 'ci:fulltest' label
+ include: >-
+ ${{ fromJSON((github.event_name != 'pull_request' || contains(github.event.pull_request.labels.*.name, 'ci:fulltest')) && '[{
+ "os": "macos-latest",
+ "node-version": 14,
+ "python-version": 3.9,
+ "java-version": 11
+ }, {
+ "os": "windows-latest",
+ "node-version": 14,
+ "python-version": 3.9,
+ "java-version": 11
+ }]' || '[]') }}
env:
coverage: ${{ matrix.os == 'ubuntu-latest' && matrix.node-version == 14 }}
NODE_VERSION: ${{ matrix.node-version }}
PYTHON_VERSION: ${{ matrix.python-version }}
JAVA_VERSION: ${{ matrix.java-version }}
+ # skip Java tests on pull requests without 'ci:fulltest' label
+ SKIP_JAVA_TESTS: ${{ matrix.node-version != 14 || (github.event_name == 'pull_request' && !contains(github.event.pull_request.labels.*.name, 'ci:fulltest')) }}
steps:
- uses: actions/checkout@5a4ac9002d0be2fb38bd78e4b4dbde5606d7042f # renovate: tag=v2.3.4
@@ -56,7 +78,7 @@ jobs:
python-version: ${{ env.PYTHON_VERSION }}
- name: Set up Java ${{ env.JAVA_VERSION }}
- if: env.NODE_VERSION == '14'
+ if: env.SKIP_JAVA_TESTS == 'false'
uses: actions/setup-java@8db439b6b47e5e12312bf036760bbaa6893481ac # renovate: tag=v2.3.1
with:
java-version: ${{ env.JAVA_VERSION }}
@@ -64,10 +86,6 @@ jobs:
java-package: jre
check-latest: false
- - name: Skip Java tests
- if: env.NODE_VERSION != '14'
- run: echo "SKIP_JAVA_TESTS=true" >> $GITHUB_ENV
-
- name: Init platform
shell: bash
run: |
@@ -145,6 +163,7 @@ jobs:
release:
needs: [lint, test]
+ if: github.event_name != 'pull_request'
runs-on: ubuntu-latest
# release shouldn't need more than 5 min
timeout-minutes: 15
diff --git a/docs/usage/configuration-options.md b/docs/usage/configuration-options.md
index 8dfac52d901fc2..f414adf6d7794a 100644
--- a/docs/usage/configuration-options.md
+++ b/docs/usage/configuration-options.md
@@ -219,12 +219,6 @@ Setting this to `true` will automatically approve the PRs in Azure DevOps.
You can also configure this using `packageRules` if you want to use it selectively (e.g. per-package).
-## azureAutoComplete
-
-Setting this to `true` will configure PRs in Azure DevOps to auto-complete after all (if any) branch policies have been met.
-
-You can also configure this using `packageRules` if you want to use it selectively (e.g. per-package).
-
## azureWorkItemId
When creating a PR in Azure DevOps, some branches can be protected with branch policies to [check for linked work items](https://docs.microsoft.com/en-us/azure/devops/repos/git/branch-policies?view=azure-devops#check-for-linked-work-items).
@@ -756,12 +750,6 @@ Example:
}
```
-## gitLabAutomerge
-
-If you enabled `automerge` in the Renovate config, you can speed up the automerge process by using GitLab's own automerge function.
-Caution (fixed in GitLab >= 12.7): when this option is enabled it is possible due to a bug in GitLab that MRs with failing pipelines might still get merged.
-This is caused by a race condition in GitLab's Merge Request API - [read the corresponding issue](https://gitlab.com/gitlab-org/gitlab/issues/26293) for details.
-
## gitLabIgnoreApprovals
Ignore the default project level approval(s), so that Renovate bot can automerge its merge requests, without needing approval(s).
@@ -1677,6 +1665,16 @@ Add to this object if you wish to define rules that apply only to PRs that pin d
If enabled Renovate will pin Docker images by means of their SHA256 digest and not only by tag so that they are immutable.
+## platformAutomerge
+
+If you have enabled `automerge` and set `automergeType=pr` in the Renovate config, then `platformAutomerge` is enabled by default to speed up merging via the platform's native automerge functionality.
+
+`platformAutomerge` will configure PRs to be merged after all (if any) branch policies have been met.
+This option is available for Azure and GitLab.
+It falls back to Renovate-based automerge if the platform-native automerge is not available.
+
+Though this option is enabled by default, you can fine tune the behavior by setting `packageRules` if you want to use it selectively (e.g. per-package).
+
## postUpdateOptions
- `gomodTidy`: Run `go mod tidy` after Go module updates. This is implicitly enabled for major module updates.
diff --git a/docs/usage/docker.md b/docs/usage/docker.md
index 6a55a0d20c892c..920cc259696237 100644
--- a/docs/usage/docker.md
+++ b/docs/usage/docker.md
@@ -227,7 +227,7 @@ To get access to the token a custom Renovate Docker image is needed that include
The Dockerfile to create such an image can look like this:
```Dockerfile
-FROM renovate/renovate:27.26.0
+FROM renovate/renovate:28.0.2
# Include the "Docker tip" which you can find here https://cloud.google.com/sdk/docs/install
# under "Installation" for "Debian/Ubuntu"
RUN ...
diff --git a/lib/config/migration.spec.ts b/lib/config/migration.spec.ts
index 4aa9d4625c0db6..b725ec180f69fe 100644
--- a/lib/config/migration.spec.ts
+++ b/lib/config/migration.spec.ts
@@ -783,4 +783,54 @@ describe('config/migration', () => {
expect(isMigrated).toBe(true);
expect(migratedConfig).toMatchInlineSnapshot(`Object {}`);
});
+
+ it('migrates azureAutoComplete', () => {
+ const migrate = (config: RenovateConfig): MigratedConfig =>
+ configMigration.migrateConfig(config, defaultConfig);
+
+ expect(migrate({ azureAutoComplete: true })).toEqual({
+ isMigrated: true,
+ migratedConfig: { platformAutomerge: true },
+ });
+
+ expect(migrate({ azureAutoComplete: false })).toEqual({
+ isMigrated: true,
+ migratedConfig: { platformAutomerge: false },
+ });
+
+ expect(migrate({ automerge: false, azureAutoComplete: true })).toEqual({
+ isMigrated: true,
+ migratedConfig: { automerge: false, platformAutomerge: true },
+ });
+
+ expect(migrate({ automerge: true, azureAutoComplete: true })).toEqual({
+ isMigrated: true,
+ migratedConfig: { automerge: true, platformAutomerge: true },
+ });
+ });
+
+ it('migrates gitLabAutomerge', () => {
+ const migrate = (config: RenovateConfig): MigratedConfig =>
+ configMigration.migrateConfig(config, defaultConfig);
+
+ expect(migrate({ gitLabAutomerge: true })).toEqual({
+ isMigrated: true,
+ migratedConfig: { platformAutomerge: true },
+ });
+
+ expect(migrate({ gitLabAutomerge: false })).toEqual({
+ isMigrated: true,
+ migratedConfig: { platformAutomerge: false },
+ });
+
+ expect(migrate({ automerge: false, gitLabAutomerge: true })).toEqual({
+ isMigrated: true,
+ migratedConfig: { automerge: false, platformAutomerge: true },
+ });
+
+ expect(migrate({ automerge: true, gitLabAutomerge: true })).toEqual({
+ isMigrated: true,
+ migratedConfig: { automerge: true, platformAutomerge: true },
+ });
+ });
});
diff --git a/lib/config/migration.ts b/lib/config/migration.ts
index 2f093ff8bbf080..e6a3903afe320d 100644
--- a/lib/config/migration.ts
+++ b/lib/config/migration.ts
@@ -544,6 +544,11 @@ export function migrateConfig(
} else if (val === false) {
migratedConfig.composerIgnorePlatformReqs = null;
}
+ } else if (key === 'azureAutoComplete' || key === 'gitLabAutomerge') {
+ if (migratedConfig[key] !== undefined) {
+ migratedConfig.platformAutomerge = migratedConfig[key];
+ }
+ delete migratedConfig[key];
}
const migratedTemplates = {
fromVersion: 'currentVersion',
diff --git a/lib/config/options/index.ts b/lib/config/options/index.ts
index 5030ea0a24d250..e12d34a3addb11 100644
--- a/lib/config/options/index.ts
+++ b/lib/config/options/index.ts
@@ -752,13 +752,6 @@ const options: RenovateOptions[] = [
cli: false,
env: false,
},
- {
- name: 'azureAutoComplete',
- description:
- 'If set to true, Azure DevOps PRs will be set to auto-complete after all (if any) branch policies have been met.',
- type: 'boolean',
- default: false,
- },
{
name: 'azureWorkItemId',
description:
@@ -1910,12 +1903,6 @@ const options: RenovateOptions[] = [
type: 'boolean',
default: true,
},
- {
- name: 'gitLabAutomerge',
- description: `Enable or disable usage of GitLab's "merge when pipeline succeeds" feature when automerging MRs.`,
- type: 'boolean',
- default: false,
- },
{
name: 'gitLabIgnoreApprovals',
description: `Ignore approval rules for MRs created by Renovate, which is useful for automerge.`,
@@ -2083,6 +2070,12 @@ const options: RenovateOptions[] = [
globalOnly: true,
env: false,
},
+ {
+ name: 'platformAutomerge',
+ description: `Enable or disable usage of platform-native auto-merge capabilities when available.`,
+ type: 'boolean',
+ default: true,
+ },
];
export function getOptions(): RenovateOptions[] {
diff --git a/lib/config/presets/__snapshots__/index.spec.ts.snap b/lib/config/presets/__snapshots__/index.spec.ts.snap
index ac7b6c8d96f8bd..9da80cfecfd4ea 100644
--- a/lib/config/presets/__snapshots__/index.spec.ts.snap
+++ b/lib/config/presets/__snapshots__/index.spec.ts.snap
@@ -31,7 +31,7 @@ Object {
"Use renovate/
as prefix for all branch names",
"If semantic commits detected, use semantic commit type fix
for dependencies and chore
for all others",
"Require all status checks to pass before any automerging",
- "Pin dependency versions for devDependencies
and retain semver ranges for others",
+ "Pin dependency versions for devDependencies
and retain SemVer ranges for others",
],
"ignoreTests": false,
"ignoreUnstable": true,
diff --git a/lib/config/presets/index.spec.ts b/lib/config/presets/index.spec.ts
index e1eb4df266640f..73ef83ec01713e 100644
--- a/lib/config/presets/index.spec.ts
+++ b/lib/config/presets/index.spec.ts
@@ -649,7 +649,7 @@ Object {
const res = await presets.getPreset(':pinVersions(foo, bar)', {});
expect(res).toEqual({
description: [
- 'Use version pinning (maintain a single version only and not semver ranges)',
+ 'Use version pinning (maintain a single version only and not SemVer ranges)',
],
rangeStrategy: 'pin',
});
diff --git a/lib/config/presets/internal/default.ts b/lib/config/presets/internal/default.ts
index 40fbcd749d194a..f72a630814c235 100644
--- a/lib/config/presets/internal/default.ts
+++ b/lib/config/presets/internal/default.ts
@@ -2,11 +2,11 @@ import type { Preset } from '../types';
export const presets: Record = {
enableRenovate: {
- description: 'Enable renovate',
+ description: 'Enable Renovate',
enabled: true,
},
disableRenovate: {
- description: 'Disable renovate',
+ description: 'Disable Renovate',
enabled: false,
},
disableMajorUpdates: {
@@ -60,12 +60,12 @@ export const presets: Record = {
},
pinVersions: {
description:
- 'Use version pinning (maintain a single version only and not semver ranges)',
+ 'Use version pinning (maintain a single version only and not SemVer ranges)',
rangeStrategy: 'pin',
},
preserveSemverRanges: {
description:
- 'Preserve (but continue to upgrade) any existing semver ranges',
+ 'Preserve (but continue to upgrade) any existing SemVer ranges',
rangeStrategy: 'replace',
},
pinAllExceptPeerDependencies: {
@@ -102,7 +102,7 @@ export const presets: Record = {
},
pinOnlyDevDependencies: {
description:
- 'Pin dependency versions for devDependencies
and retain semver ranges for others',
+ 'Pin dependency versions for devDependencies
and retain SemVer ranges for others',
packageRules: [
{
matchPackagePatterns: ['*'],
@@ -182,7 +182,7 @@ export const presets: Record = {
],
},
disableDigestUpdates: {
- description: 'Disable digest and git hash updates',
+ description: 'Disable digest and Git hash updates',
digest: {
enabled: false,
},
@@ -242,11 +242,11 @@ export const presets: Record = {
prHourlyLimit: 4,
},
prConcurrentLimitNone: {
- description: 'Remove limit for open PRs',
+ description: 'Remove limit for open PRs at any time',
prConcurrentLimit: 0,
},
prConcurrentLimit10: {
- description: 'Limit to maximum 10 open PRs',
+ description: 'Limit to maximum 10 open PRs at any time',
prConcurrentLimit: 10,
},
prConcurrentLimit20: {
@@ -330,7 +330,7 @@ export const presets: Record = {
},
},
pinDigestsDisabled: {
- description: 'Disable pinning of docker dependency digests',
+ description: 'Disable pinning of Docker dependency digests',
pinDigests: false,
},
maintainLockFilesWeekly: {
@@ -408,11 +408,12 @@ export const presets: Record = {
},
},
gitSignOff: {
- description: 'Append git Signed-off-by signature to git commits.',
+ description:
+ 'Append Git Signed-off-by:
signature to Git commits.',
commitBody: 'Signed-off-by: {{{gitAuthor}}}',
},
npm: {
- description: 'Keep package.json npm dependencies updated',
+ description: 'Keep package.json
npm dependencies updated',
npm: {
enabled: true,
},
@@ -517,7 +518,7 @@ export const presets: Record = {
},
widenPeerDependencies: {
description:
- 'Always widen peerDependencies semver ranges when updating, instead of replacing',
+ 'Always widen peerDependencies SemVer ranges when updating, instead of replacing',
packageRules: [
{
matchDepTypes: ['peerDependencies'],
diff --git a/lib/config/presets/internal/monorepo.ts b/lib/config/presets/internal/monorepo.ts
index a89030169440c0..91c47f8782f190 100644
--- a/lib/config/presets/internal/monorepo.ts
+++ b/lib/config/presets/internal/monorepo.ts
@@ -31,6 +31,7 @@ const repoGroups = {
'chakra-ui': 'https://github.com/chakra-ui/chakra-ui',
'contentful-rich-text': 'https://github.com/contentful/rich-text',
'date-io': 'https://github.com/dmtrKovalenko/date-io',
+ deno: 'https://github.com/denoland/deno',
'devextreme-reactive': 'https://github.com/DevExpress/devextreme-reactive',
'dnd-kit': 'https://github.com/clauderic/dnd-kit',
'electron-forge': 'https://github.com/electron-userland/electron-forge',
diff --git a/lib/datasource/api.ts b/lib/datasource/api.ts
index 3e45c789a1cdd3..9cf8796dc8be5e 100644
--- a/lib/datasource/api.ts
+++ b/lib/datasource/api.ts
@@ -3,7 +3,7 @@ import { ArtifactoryDatasource } from './artifactory';
import { BitBucketTagsDatasource } from './bitbucket-tags';
import { CdnJsDatasource } from './cdnjs';
import { ClojureDatasource } from './clojure';
-import * as crate from './crate';
+import { CrateDatasource } from './crate';
import { DartDatasource } from './dart';
import * as docker from './docker';
import { GalaxyDatasource } from './galaxy';
@@ -45,7 +45,7 @@ api.set(ArtifactoryDatasource.id, new ArtifactoryDatasource());
api.set('bitbucket-tags', new BitBucketTagsDatasource());
api.set('cdnjs', new CdnJsDatasource());
api.set('clojure', new ClojureDatasource());
-api.set('crate', crate);
+api.set('crate', new CrateDatasource());
api.set('dart', new DartDatasource());
api.set('docker', docker);
api.set('galaxy', new GalaxyDatasource());
diff --git a/lib/datasource/crate/index.spec.ts b/lib/datasource/crate/index.spec.ts
index afaac1b8261238..9da0f5a7e49cab 100644
--- a/lib/datasource/crate/index.spec.ts
+++ b/lib/datasource/crate/index.spec.ts
@@ -10,7 +10,7 @@ import { setGlobalConfig } from '../../config/global';
import type { RepoGlobalConfig } from '../../config/types';
import * as memCache from '../../util/cache/memory';
import { RegistryFlavor, RegistryInfo } from './types';
-import { id as datasource, fetchCrateRecordsPayload, getIndexSuffix } from '.';
+import { CrateDatasource } from '.';
jest.mock('simple-git');
const simpleGit: any = _simpleGit;
@@ -22,6 +22,8 @@ const res3 = loadFixture('mypkg');
const baseUrl =
'https://raw.githubusercontent.com/rust-lang/crates.io-index/master/';
+const datasource = CrateDatasource.id;
+
function setupGitMocks(delayMs?: number): { mockClone: jest.Mock } {
const mockClone = jest
.fn()
@@ -63,13 +65,29 @@ function setupErrorGitMock(): { mockClone: jest.Mock } {
describe('datasource/crate/index', () => {
describe('getIndexSuffix', () => {
it('returns correct suffixes', () => {
- expect(getIndexSuffix('a')).toStrictEqual(['1', 'a']);
- expect(getIndexSuffix('1')).toStrictEqual(['1', '1']);
- expect(getIndexSuffix('1234567')).toStrictEqual(['12', '34', '1234567']);
- expect(getIndexSuffix('ab')).toStrictEqual(['2', 'ab']);
- expect(getIndexSuffix('abc')).toStrictEqual(['3', 'a', 'abc']);
- expect(getIndexSuffix('abcd')).toStrictEqual(['ab', 'cd', 'abcd']);
- expect(getIndexSuffix('abcde')).toStrictEqual(['ab', 'cd', 'abcde']);
+ expect(CrateDatasource.getIndexSuffix('a')).toStrictEqual(['1', 'a']);
+ expect(CrateDatasource.getIndexSuffix('1')).toStrictEqual(['1', '1']);
+ expect(CrateDatasource.getIndexSuffix('1234567')).toStrictEqual([
+ '12',
+ '34',
+ '1234567',
+ ]);
+ expect(CrateDatasource.getIndexSuffix('ab')).toStrictEqual(['2', 'ab']);
+ expect(CrateDatasource.getIndexSuffix('abc')).toStrictEqual([
+ '3',
+ 'a',
+ 'abc',
+ ]);
+ expect(CrateDatasource.getIndexSuffix('abcd')).toStrictEqual([
+ 'ab',
+ 'cd',
+ 'abcd',
+ ]);
+ expect(CrateDatasource.getIndexSuffix('abcde')).toStrictEqual([
+ 'ab',
+ 'cd',
+ 'abcde',
+ ]);
});
});
@@ -323,7 +341,10 @@ describe('datasource/crate/index', () => {
const info: RegistryInfo = {
flavor: RegistryFlavor.Cloudsmith,
};
- await expect(fetchCrateRecordsPayload(info, 'benedict')).toReject();
+ const crateDatasource = new CrateDatasource();
+ await expect(
+ crateDatasource.fetchCrateRecordsPayload(info, 'benedict')
+ ).toReject();
});
});
});
diff --git a/lib/datasource/crate/index.ts b/lib/datasource/crate/index.ts
index 2166ffdefe813b..b3d570e6df93ed 100644
--- a/lib/datasource/crate/index.ts
+++ b/lib/datasource/crate/index.ts
@@ -3,90 +3,106 @@ import Git from 'simple-git';
import { join } from 'upath';
import { getGlobalConfig } from '../../config/global';
import { logger } from '../../logger';
-import { ExternalHostError } from '../../types/errors/external-host-error';
import * as memCache from '../../util/cache/memory';
-import * as packageCache from '../../util/cache/package';
+import { cache } from '../../util/cache/package/decorator';
import { privateCacheDir, readFile } from '../../util/fs';
import { Http } from '../../util/http';
import { regEx } from '../../util/regex';
+import { simpleGitConfig } from '../../util/git/config';
import * as cargoVersioning from '../../versioning/cargo';
+import { Datasource } from '../datasource';
import type { GetReleasesConfig, Release, ReleaseResult } from '../types';
import { CrateRecord, RegistryFlavor, RegistryInfo } from './types';
-export const id = 'crate';
-export const customRegistrySupport = true;
-export const defaultRegistryUrls = ['https://crates.io'];
-export const defaultVersioning = cargoVersioning.id;
-export const registryStrategy = 'first';
+export class CrateDatasource extends Datasource {
+ static readonly id = 'crate';
-const http = new Http(id);
+ constructor() {
+ super(CrateDatasource.id);
+ }
-const CRATES_IO_BASE_URL =
- 'https://raw.githubusercontent.com/rust-lang/crates.io-index/master/';
+ override defaultRegistryUrls = ['https://crates.io'];
-export function getIndexSuffix(lookupName: string): string[] {
- const len = lookupName.length;
+ override defaultVersioning = cargoVersioning.id;
- if (len === 1) {
- return ['1', lookupName];
- }
- if (len === 2) {
- return ['2', lookupName];
- }
- if (len === 3) {
- return ['3', lookupName[0], lookupName];
- }
+ static readonly CRATES_IO_BASE_URL =
+ 'https://raw.githubusercontent.com/rust-lang/crates.io-index/master/';
- return [lookupName.slice(0, 2), lookupName.slice(2, 4), lookupName];
-}
+ @cache({
+ namespace: `datasource-${CrateDatasource.id}`,
+ key: ({ registryUrl, lookupName }: GetReleasesConfig) =>
+ `${registryUrl}/${lookupName}`,
+ cacheable: ({ registryUrl }: GetReleasesConfig) =>
+ CrateDatasource.areReleasesCacheable(registryUrl),
+ })
+ async getReleases({
+ lookupName,
+ registryUrl,
+ }: GetReleasesConfig): Promise {
+ // istanbul ignore if
+ if (!registryUrl) {
+ logger.warn(
+ 'crate datasource: No registryUrl specified, cannot perform getReleases'
+ );
+ return null;
+ }
-export async function fetchCrateRecordsPayload(
- info: RegistryInfo,
- lookupName: string
-): Promise {
- if (info.clonePath) {
- const path = join(info.clonePath, ...getIndexSuffix(lookupName));
- return readFile(path, 'utf8');
- }
+ const registryInfo = await CrateDatasource.fetchRegistryInfo({
+ lookupName,
+ registryUrl,
+ });
+ if (!registryInfo) {
+ logger.debug({ registryUrl }, 'Could not fetch registry info');
+ return null;
+ }
- if (info.flavor === RegistryFlavor.CratesIo) {
- const crateUrl = CRATES_IO_BASE_URL + getIndexSuffix(lookupName).join('/');
- try {
- return (await http.get(crateUrl)).body;
- } catch (err) {
- if (
- err.statusCode === 429 ||
- (err.statusCode >= 500 && err.statusCode < 600)
- ) {
- throw new ExternalHostError(err);
- }
+ const dependencyUrl = CrateDatasource.getDependencyUrl(
+ registryInfo,
+ lookupName
+ );
- throw err;
+ const payload = await this.fetchCrateRecordsPayload(
+ registryInfo,
+ lookupName
+ );
+ const lines = payload
+ .split('\n') // break into lines
+ .map((line) => line.trim()) // remove whitespace
+ .filter((line) => line.length !== 0) // remove empty lines
+ .map((line) => JSON.parse(line) as CrateRecord); // parse
+ const result: ReleaseResult = {
+ dependencyUrl,
+ releases: [],
+ };
+ result.releases = lines
+ .map((version) => {
+ const release: Release = {
+ version: version.vers,
+ };
+ if (version.yanked) {
+ release.isDeprecated = true;
+ }
+ return release;
+ })
+ .filter((release) => release.version);
+ if (!result.releases.length) {
+ return null;
}
- }
- throw new Error(`unsupported crate registry flavor: ${info.flavor}`);
-}
+ return result;
+ }
-/**
- * Computes the dependency URL for a crate, given
- * registry information
- */
-function getDependencyUrl(info: RegistryInfo, lookupName: string): string {
- switch (info.flavor) {
- case RegistryFlavor.CratesIo:
- return `https://crates.io/crates/${lookupName}`;
- case RegistryFlavor.Cloudsmith: {
- // input: https://dl.cloudsmith.io/basic/$org/$repo/cargo/index.git
- const tokens = info.url.pathname.split('/');
- const org = tokens[2];
- const repo = tokens[3];
- return `https://cloudsmith.io/~${org}/repos/${repo}/packages/detail/cargo/${lookupName}`;
+ public async fetchCrateRecordsPayload(
+ info: RegistryInfo,
+ lookupName: string
+ ): Promise {
+ if (info.clonePath) {
+ const path = join(
+ info.clonePath,
+ ...CrateDatasource.getIndexSuffix(lookupName)
+ );
+ return readFile(path, 'utf8');
}
- default:
- return `${info.rawUrl}/${lookupName}`;
- }
-}
/**
* Given a Git URL, computes a semi-human-readable name for a folder in which to
@@ -101,176 +117,178 @@ function cacheDirFromUrl(url: URL): string {
return `crate-registry-${proto}-${host}-${hash}`;
}
-
-/**
- * Fetches information about a registry, by url.
- * If no url is given, assumes crates.io.
- * If an url is given, assumes it's a valid Git repository
- * url and clones it to cache.
- */
-async function fetchRegistryInfo(
- config: GetReleasesConfig,
- registryUrl: string
-): Promise {
- let url: URL;
- try {
- url = new URL(registryUrl);
- } catch (err) {
- logger.debug({ registryUrl }, 'could not parse registry URL');
- return null;
+ if (info.flavor === RegistryFlavor.CratesIo) {
+ const crateUrl =
+ CrateDatasource.CRATES_IO_BASE_URL +
+ CrateDatasource.getIndexSuffix(lookupName).join('/');
+ try {
+ return (await this.http.get(crateUrl)).body;
+ } catch (err) {
+ this.handleGenericErrors(err);
+ }
+ }
+ throw new Error(`unsupported crate registry flavor: ${info.flavor}`);
}
- let flavor: RegistryFlavor;
- if (url.hostname === 'crates.io') {
- flavor = RegistryFlavor.CratesIo;
- } else if (url.hostname === 'dl.cloudsmith.io') {
- flavor = RegistryFlavor.Cloudsmith;
- } else {
- flavor = RegistryFlavor.Other;
+ /**
+ * Computes the dependency URL for a crate, given
+ * registry information
+ */
+ private static getDependencyUrl(
+ info: RegistryInfo,
+ lookupName: string
+ ): string {
+ switch (info.flavor) {
+ case RegistryFlavor.CratesIo:
+ return `https://crates.io/crates/${lookupName}`;
+ case RegistryFlavor.Cloudsmith: {
+ // input: https://dl.cloudsmith.io/basic/$org/$repo/cargo/index.git
+ const tokens = info.url.pathname.split('/');
+ const org = tokens[2];
+ const repo = tokens[3];
+ return `https://cloudsmith.io/~${org}/repos/${repo}/packages/detail/cargo/${lookupName}`;
+ }
+ default:
+ return `${info.rawUrl}/${lookupName}`;
+ }
}
- const registry: RegistryInfo = {
- flavor,
- rawUrl: registryUrl,
- url,
- };
+ /**
+ * Given a Git URL, computes a semi-human-readable name for a folder in which to
+ * clone the repository.
+ */
+ private static cacheDirFromUrl(url: URL): string {
+ const proto = url.protocol.replace(/:$/, '');
+ const host = url.hostname;
+ const hash = hasha(url.pathname, {
+ algorithm: 'sha256',
+ }).substr(0, 7);
+
+ return `crate-registry-${proto}-${host}-${hash}`;
+ }
- if (flavor !== RegistryFlavor.CratesIo) {
- if (!getGlobalConfig().allowCustomCrateRegistries) {
- logger.warn(
- 'crate datasource: allowCustomCrateRegistries=true is required for registries other than crates.io, bailing out'
- );
+ /**
+ * Fetches information about a registry, by url.
+ * If no url is given, assumes crates.io.
+ * If an url is given, assumes it's a valid Git repository
+ * url and clones it to cache.
+ */
+ private static async fetchRegistryInfo({
+ lookupName,
+ registryUrl,
+ }: GetReleasesConfig): Promise {
+ let url: URL;
+ try {
+ url = new URL(registryUrl);
+ } catch (err) {
+ logger.debug({ registryUrl }, 'could not parse registry URL');
return null;
}
- const cacheKey = `crate-datasource/registry-clone-path/${registryUrl}`;
- const cacheKeyForError = `crate-datasource/registry-clone-path/${registryUrl}/error`;
-
- // We need to ensure we don't run `git clone` in parallel. Therefore we store
- // a promise of the running operation in the mem cache, which in the end resolves
- // to the file path of the cloned repository.
-
- const clonePathPromise: Promise | null = memCache.get(cacheKey);
- let clonePath: string;
-
- // eslint-disable-next-line @typescript-eslint/no-misused-promises
- if (clonePathPromise) {
- clonePath = await clonePathPromise;
+ let flavor: RegistryFlavor;
+ if (url.hostname === 'crates.io') {
+ flavor = RegistryFlavor.CratesIo;
+ } else if (url.hostname === 'dl.cloudsmith.io') {
+ flavor = RegistryFlavor.Cloudsmith;
} else {
- clonePath = join(privateCacheDir(), cacheDirFromUrl(url));
- logger.info({ clonePath, registryUrl }, `Cloning private cargo registry`);
-
- const git = Git();
- const clonePromise = git.clone(registryUrl, clonePath, {
- '--depth': 1,
- });
+ flavor = RegistryFlavor.Other;
+ }
- memCache.set(
- cacheKey,
- clonePromise.then(() => clonePath).catch(() => null)
- );
+ const registry: RegistryInfo = {
+ flavor,
+ rawUrl: registryUrl,
+ url,
+ };
- try {
- await clonePromise;
- } catch (err) {
+ if (flavor !== RegistryFlavor.CratesIo) {
+ if (!getGlobalConfig().allowCustomCrateRegistries) {
logger.warn(
- { err, lookupName: config.lookupName, registryUrl },
- 'failed cloning git registry'
+ 'crate datasource: allowCustomCrateRegistries=true is required for registries other than crates.io, bailing out'
);
- memCache.set(cacheKeyForError, err);
-
return null;
}
- }
- if (!clonePath) {
- const err = memCache.get(cacheKeyForError);
- logger.warn(
- { err, lookupName: config.lookupName, registryUrl },
- 'Previous git clone failed, bailing out.'
- );
+ const cacheKey = `crate-datasource/registry-clone-path/${registryUrl}`;
+ const cacheKeyForError = `crate-datasource/registry-clone-path/${registryUrl}/error`;
- return null;
- }
+ // We need to ensure we don't run `git clone` in parallel. Therefore we store
+ // a promise of the running operation in the mem cache, which in the end resolves
+ // to the file path of the cloned repository.
- registry.clonePath = clonePath;
- }
+ const clonePathPromise: Promise | null = memCache.get(cacheKey);
+ let clonePath: string;
- return registry;
-}
+ // eslint-disable-next-line @typescript-eslint/no-misused-promises
+ if (clonePathPromise) {
+ clonePath = await clonePathPromise;
+ } else {
+ clonePath = join(
+ privateCacheDir(),
+ CrateDatasource.cacheDirFromUrl(url)
+ );
+ logger.info(
+ { clonePath, registryUrl },
+ `Cloning private cargo registry`
+ );
-export function areReleasesCacheable(registryUrl: string): boolean {
- // We only cache public releases, we don't want to cache private
- // cloned data between runs.
- return registryUrl === 'https://crates.io';
-}
+ const git = Git(simpleGitConfig());
+ const clonePromise = git.clone(registryUrl, clonePath, {
+ '--depth': 1,
+ });
-export async function getReleases(
- config: GetReleasesConfig
-): Promise {
- const { lookupName, registryUrl } = config;
+ memCache.set(
+ cacheKey,
+ clonePromise.then(() => clonePath).catch(() => null)
+ );
- // istanbul ignore if
- if (!registryUrl) {
- logger.warn(
- 'crate datasource: No registryUrl specified, cannot perform getReleases'
- );
- return null;
- }
+ try {
+ await clonePromise;
+ } catch (err) {
+ logger.warn(
+ { err, lookupName, registryUrl },
+ 'failed cloning git registry'
+ );
+ memCache.set(cacheKeyForError, err);
+
+ return null;
+ }
+ }
- const cacheable = areReleasesCacheable(registryUrl);
- const cacheNamespace = 'datasource-crate';
- const cacheKey = `${registryUrl}/${lookupName}`;
+ if (!clonePath) {
+ const err = memCache.get(cacheKeyForError);
+ logger.warn(
+ { err, lookupName, registryUrl },
+ 'Previous git clone failed, bailing out.'
+ );
- if (cacheable) {
- const cachedResult = await packageCache.get(
- cacheNamespace,
- cacheKey
- );
- // istanbul ignore if
- if (cachedResult) {
- logger.debug({ cacheKey }, 'Returning cached resource');
- return cachedResult;
+ return null;
+ }
+
+ registry.clonePath = clonePath;
}
- }
- const registryInfo = await fetchRegistryInfo(config, registryUrl);
- if (!registryInfo) {
- logger.debug({ registryUrl }, 'Could not fetch registry info');
- return null;
+ return registry;
}
- const dependencyUrl = getDependencyUrl(registryInfo, lookupName);
-
- const payload = await fetchCrateRecordsPayload(registryInfo, lookupName);
- const lines = payload
- .split('\n') // break into lines
- .map((line) => line.trim()) // remove whitespace
- .filter((line) => line.length !== 0) // remove empty lines
- .map((line) => JSON.parse(line) as CrateRecord); // parse
- const result: ReleaseResult = {
- dependencyUrl,
- releases: [],
- };
- result.releases = lines
- .map((version) => {
- const release: Release = {
- version: version.vers,
- };
- if (version.yanked) {
- release.isDeprecated = true;
- }
- return release;
- })
- .filter((release) => release.version);
- if (!result.releases.length) {
- return null;
+ private static areReleasesCacheable(registryUrl: string): boolean {
+ // We only cache public releases, we don't want to cache private
+ // cloned data between runs.
+ return registryUrl === 'https://crates.io';
}
- if (cacheable) {
- const cacheMinutes = 10;
- await packageCache.set(cacheNamespace, cacheKey, result, cacheMinutes);
- }
+ public static getIndexSuffix(lookupName: string): string[] {
+ const len = lookupName.length;
- return result;
+ if (len === 1) {
+ return ['1', lookupName];
+ }
+ if (len === 2) {
+ return ['2', lookupName];
+ }
+ if (len === 3) {
+ return ['3', lookupName[0], lookupName];
+ }
+
+ return [lookupName.slice(0, 2), lookupName.slice(2, 4), lookupName];
+ }
}
diff --git a/lib/datasource/git-refs/index.ts b/lib/datasource/git-refs/index.ts
index f0c6528c788c61..653fc08940b6c9 100644
--- a/lib/datasource/git-refs/index.ts
+++ b/lib/datasource/git-refs/index.ts
@@ -1,5 +1,6 @@
import simpleGit from 'simple-git';
import * as packageCache from '../../util/cache/package';
+import { simpleGitConfig } from '../../util/git/config';
import { getRemoteUrlWithToken } from '../../util/git/url';
import { regEx } from '../../util/regex';
import * as semver from '../../versioning/semver';
@@ -18,7 +19,7 @@ export async function getRawRefs(
{ lookupName }: GetReleasesConfig,
hostType: string
): Promise {
- const git = simpleGit();
+ const git = simpleGit(simpleGitConfig());
const cacheNamespace = 'git-raw-refs';
const cachedResult = await packageCache.get(
diff --git a/lib/manager/argocd/__fixtures__/validApplication.yml b/lib/manager/argocd/__fixtures__/validApplication.yml
index d8146bec1b02f5..87e7aeb5fc9295 100644
--- a/lib/manager/argocd/__fixtures__/validApplication.yml
+++ b/lib/manager/argocd/__fixtures__/validApplication.yml
@@ -7,6 +7,15 @@ spec:
repoURL: https://prometheus-community.github.io/helm-charts
targetRevision: 2.4.1
---
+# application with helm values
+apiVersion: argoproj.io/v1alpha1
+kind: Application
+spec:
+ source:
+ chart: {{ .Values.chart }}
+ repoURL: {{ .Values.repoUrl}}
+ targetRevision: {{ .Values.targetRevision }}
+---
apiVersion: argoproj.io/v1alpha1
kind: Application
spec:
diff --git a/lib/manager/argocd/extract.ts b/lib/manager/argocd/extract.ts
index fd1ebd6bdcd29c..78a0b555554d4d 100644
--- a/lib/manager/argocd/extract.ts
+++ b/lib/manager/argocd/extract.ts
@@ -1,3 +1,4 @@
+import is from '@sindresorhus/is';
import { loadAll } from 'js-yaml';
import * as gitTags from '../../datasource/git-tags';
import { HelmDatasource } from '../../datasource/helm';
@@ -10,7 +11,11 @@ function createDependency(
): PackageDependency {
const source = definition.spec?.source;
- if (source == null) {
+ if (
+ source == null ||
+ !is.nonEmptyString(source.repoURL) ||
+ !is.nonEmptyString(source.targetRevision)
+ ) {
return null;
}
diff --git a/lib/manager/cargo/extract.ts b/lib/manager/cargo/extract.ts
index af76dedd3ac928..d10b89bf3d867e 100644
--- a/lib/manager/cargo/extract.ts
+++ b/lib/manager/cargo/extract.ts
@@ -1,5 +1,5 @@
import { parse } from '@iarna/toml';
-import * as datasourceCrate from '../../datasource/crate';
+import { CrateDatasource } from '../../datasource/crate';
import { logger } from '../../logger';
import { SkipReason } from '../../types';
import { findLocalSiblingOrParent, readLocalFile } from '../../util/fs';
@@ -70,7 +70,7 @@ function extractFromSection(
depType: section,
currentValue: currentValue as any,
managerData: { nestedVersion },
- datasource: datasourceCrate.id,
+ datasource: CrateDatasource.id,
};
if (registryUrls) {
dep.registryUrls = registryUrls;
diff --git a/lib/manager/git-submodules/extract.ts b/lib/manager/git-submodules/extract.ts
index 6c23db7018e3cf..b5083af836e8e0 100644
--- a/lib/manager/git-submodules/extract.ts
+++ b/lib/manager/git-submodules/extract.ts
@@ -4,6 +4,7 @@ import upath from 'upath';
import { getGlobalConfig } from '../../config/global';
import * as datasourceGitRefs from '../../datasource/git-refs';
import { logger } from '../../logger';
+import { simpleGitConfig } from '../../util/git/config';
import { getHttpUrl, getRemoteUrlWithToken } from '../../util/git/url';
import type { ExtractConfig, PackageFile } from '../types';
import { GitModule } from './types';
@@ -14,7 +15,7 @@ async function getUrl(
submoduleName: string
): Promise {
const path = (
- await Git().raw([
+ await Git(simpleGitConfig()).raw([
'config',
'--file',
gitModulesPath,
diff --git a/lib/manager/gradle/shallow/extract.spec.ts b/lib/manager/gradle/shallow/extract.spec.ts
index 33678e57c896c9..951001c92c74ba 100644
--- a/lib/manager/gradle/shallow/extract.spec.ts
+++ b/lib/manager/gradle/shallow/extract.spec.ts
@@ -1,5 +1,6 @@
import { extractAllPackageFiles } from '..';
import { fs, loadFixture } from '../../../../test/util';
+import { SkipReason } from '../../../types';
import type { ExtractConfig } from '../../types';
jest.mock('../../../util/fs');
@@ -108,6 +109,34 @@ describe('manager/gradle/shallow/extract', () => {
]);
});
+ it('skips versions composed from multiple variables', async () => {
+ mockFs({
+ 'build.gradle':
+ 'foo = "1"; bar = "2"; baz = "3"; "foo:bar:$foo.$bar.$baz"',
+ });
+
+ const res = await extractAllPackageFiles({} as ExtractConfig, [
+ 'build.gradle',
+ ]);
+
+ expect(res).toMatchObject([
+ {
+ packageFile: 'build.gradle',
+ deps: [
+ {
+ depName: 'foo:bar',
+ currentValue: '1.2.3',
+ registryUrls: ['https://repo.maven.apache.org/maven2'],
+ skipReason: SkipReason.ContainsVariable,
+ managerData: {
+ packageFile: 'build.gradle',
+ },
+ },
+ ],
+ },
+ ]);
+ });
+
it('works with file-ext-var', async () => {
mockFs({
'gradle.properties': 'baz=1.2.3',
diff --git a/lib/manager/gradle/shallow/parser.ts b/lib/manager/gradle/shallow/parser.ts
index f684215c8e3907..6c913197f089b4 100644
--- a/lib/manager/gradle/shallow/parser.ts
+++ b/lib/manager/gradle/shallow/parser.ts
@@ -1,6 +1,7 @@
import * as url from 'url';
import is from '@sindresorhus/is';
import { logger } from '../../../logger';
+import { SkipReason } from '../../../types';
import { regEx } from '../../../util/regex';
import type { PackageDependency } from '../../types';
import type { GradleManagerData } from '../types';
@@ -147,20 +148,23 @@ function processDepInterpolation({
if (interpolationResult && isDependencyString(interpolationResult)) {
const dep = parseDependencyString(interpolationResult);
if (dep) {
+ let packageFile: string;
+ let fileReplacePosition: number;
token.children.forEach((child) => {
const variable = variables[child.value];
- if (
- child?.type === TokenType.Variable &&
- variable &&
- variable?.value === dep.currentValue
- ) {
- dep.managerData = {
- fileReplacePosition: variable.fileReplacePosition,
- packageFile: variable.packageFile,
- };
- dep.groupName = variable.key;
+ if (child?.type === TokenType.Variable && variable) {
+ packageFile = variable.packageFile;
+ fileReplacePosition = variable.fileReplacePosition;
+ if (variable?.value === dep.currentValue) {
+ dep.managerData = { fileReplacePosition, packageFile };
+ dep.groupName = variable.key;
+ }
}
});
+ if (!dep.managerData) {
+ dep.managerData = { fileReplacePosition, packageFile };
+ dep.skipReason = SkipReason.ContainsVariable;
+ }
return { deps: [dep] };
}
}
diff --git a/lib/manager/npm/index.ts b/lib/manager/npm/index.ts
index fdccb12bc16cbe..029a431f1e9d49 100644
--- a/lib/manager/npm/index.ts
+++ b/lib/manager/npm/index.ts
@@ -17,6 +17,12 @@ export const defaultConfig = {
fileMatch: ['(^|/)package.json$'],
rollbackPrs: true,
versioning: npmVersioning.id,
+ digest: {
+ prBodyDefinitions: {
+ Change:
+ '{{#if displayFrom}}`{{{displayFrom}}}` -> {{else}}{{#if currentValue}}`{{{currentValue}}}` -> {{/if}}{{/if}}{{#if displayTo}}`{{{displayTo}}}`{{else}}`{{{newValue}}}`{{/if}}',
+ },
+ },
prBodyDefinitions: {
Change:
"[{{#if displayFrom}}`{{{displayFrom}}}` -> {{else}}{{#if currentValue}}`{{{currentValue}}}` -> {{/if}}{{/if}}{{#if displayTo}}`{{{displayTo}}}`{{else}}`{{{newValue}}}`{{/if}}]({{#if depName}}https://renovatebot.com/diffs/npm/{{replace '/' '%2f' depName}}/{{{currentVersion}}}/{{{newVersion}}}{{/if}})",
diff --git a/lib/manager/terraform/providers.ts b/lib/manager/terraform/providers.ts
index 553fcacbe84a5c..a74b5ca53d6c53 100644
--- a/lib/manager/terraform/providers.ts
+++ b/lib/manager/terraform/providers.ts
@@ -36,24 +36,25 @@ export function extractTerraformProvider(
}
const line = lines[lineNumber];
- // `{` will be counted wit +1 and `}` with -1. Therefore if we reach braceCounter == 0. We have found the end of the terraform block
- const openBrackets = (line.match(/\{/g) || []).length;
- const closedBrackets = (line.match(/\}/g) || []).length;
- braceCounter = braceCounter + openBrackets - closedBrackets;
+ if (line) {
+ // `{` will be counted wit +1 and `}` with -1. Therefore if we reach braceCounter == 0. We have found the end of the terraform block
+ const openBrackets = (line.match(/\{/g) || []).length;
+ const closedBrackets = (line.match(/\}/g) || []).length;
+ braceCounter = braceCounter + openBrackets - closedBrackets;
- // only update fields inside the root block
- if (braceCounter === 1) {
- const kvMatch = keyValueExtractionRegex.exec(line);
- if (kvMatch) {
- if (kvMatch.groups.key === 'version') {
- dep.currentValue = kvMatch.groups.value;
- } else if (kvMatch.groups.key === 'source') {
- dep.managerData.source = kvMatch.groups.value;
- dep.managerData.sourceLine = lineNumber;
+ // only update fields inside the root block
+ if (braceCounter === 1) {
+ const kvMatch = keyValueExtractionRegex.exec(line);
+ if (kvMatch) {
+ if (kvMatch.groups.key === 'version') {
+ dep.currentValue = kvMatch.groups.value;
+ } else if (kvMatch.groups.key === 'source') {
+ dep.managerData.source = kvMatch.groups.value;
+ dep.managerData.sourceLine = lineNumber;
+ }
}
}
}
-
lineNumber += 1;
} while (braceCounter !== 0);
deps.push(dep);
diff --git a/lib/platform/azure/index.spec.ts b/lib/platform/azure/index.spec.ts
index c117cd68729f10..e343b700ad182e 100644
--- a/lib/platform/azure/index.spec.ts
+++ b/lib/platform/azure/index.spec.ts
@@ -652,7 +652,7 @@ describe('platform/azure/index', () => {
prTitle: 'The Title',
prBody: 'Hello world',
labels: ['deps', 'renovate'],
- platformOptions: { azureAutoComplete: true },
+ platformOptions: { usePlatformAutomerge: true },
});
expect(updateFn).toHaveBeenCalled();
expect(pr).toMatchSnapshot();
diff --git a/lib/platform/azure/index.ts b/lib/platform/azure/index.ts
index 9d19e3d2ef283b..60185e64fb6119 100644
--- a/lib/platform/azure/index.ts
+++ b/lib/platform/azure/index.ts
@@ -388,7 +388,7 @@ export async function createPr({
},
config.repoId
);
- if (platformOptions?.azureAutoComplete) {
+ if (platformOptions?.usePlatformAutomerge) {
pr = await azureApiGit.updatePullRequest(
{
autoCompleteSetBy: {
diff --git a/lib/platform/gitlab/index.spec.ts b/lib/platform/gitlab/index.spec.ts
index 6e847a727781d8..ab77b04d6f296f 100644
--- a/lib/platform/gitlab/index.spec.ts
+++ b/lib/platform/gitlab/index.spec.ts
@@ -1414,8 +1414,7 @@ describe('platform/gitlab/index', () => {
prBody: 'the-body',
labels: [],
platformOptions: {
- azureAutoComplete: false,
- gitLabAutomerge: true,
+ usePlatformAutomerge: true,
},
});
expect(httpMock.getTrace()).toMatchSnapshot();
@@ -1522,8 +1521,7 @@ describe('platform/gitlab/index', () => {
prBody: 'the-body',
labels: [],
platformOptions: {
- azureAutoComplete: false,
- gitLabAutomerge: true,
+ usePlatformAutomerge: true,
gitLabIgnoreApprovals: true,
},
});
@@ -1565,8 +1563,7 @@ describe('platform/gitlab/index', () => {
prBody: 'the-body',
labels: [],
platformOptions: {
- azureAutoComplete: false,
- gitLabAutomerge: true,
+ usePlatformAutomerge: true,
gitLabIgnoreApprovals: true,
},
});
@@ -1608,8 +1605,7 @@ describe('platform/gitlab/index', () => {
prBody: 'the-body',
labels: [],
platformOptions: {
- azureAutoComplete: false,
- gitLabAutomerge: true,
+ usePlatformAutomerge: true,
gitLabIgnoreApprovals: true,
},
});
diff --git a/lib/platform/gitlab/index.ts b/lib/platform/gitlab/index.ts
index 25ba11b2a0a9b2..45d62902545a7b 100644
--- a/lib/platform/gitlab/index.ts
+++ b/lib/platform/gitlab/index.ts
@@ -500,7 +500,7 @@ async function tryPrAutomerge(
pr: number,
platformOptions: PlatformPrOptions
): Promise {
- if (platformOptions?.gitLabAutomerge) {
+ if (platformOptions?.usePlatformAutomerge) {
try {
if (platformOptions?.gitLabIgnoreApprovals) {
await ignoreApprovals(pr);
diff --git a/lib/platform/types.ts b/lib/platform/types.ts
index b371dc016b92e2..3d0e7aaaaac66e 100644
--- a/lib/platform/types.ts
+++ b/lib/platform/types.ts
@@ -78,11 +78,10 @@ export interface Issue {
}
export type PlatformPrOptions = {
azureAutoApprove?: boolean;
- azureAutoComplete?: boolean;
azureWorkItemId?: number;
bbUseDefaultReviewers?: boolean;
- gitLabAutomerge?: boolean;
gitLabIgnoreApprovals?: boolean;
+ usePlatformAutomerge?: boolean;
};
export interface CreatePRConfig {
sourceBranch: string;
diff --git a/lib/util/cache/package/decorator.ts b/lib/util/cache/package/decorator.ts
index 0e547bb1f73f69..cf7382e2d691d3 100644
--- a/lib/util/cache/package/decorator.ts
+++ b/lib/util/cache/package/decorator.ts
@@ -57,6 +57,7 @@ function decorate(fn: Handler): Decorator {
}
type HashFunction = (...args: T) => string;
+type BooleanFunction = (...args: T) => boolean;
/**
* The cache decorator parameters.
@@ -74,6 +75,12 @@ interface CacheParameters {
*/
key: string | HashFunction;
+ /**
+ * A function that returns true if a result is cacheable
+ * Used to prevent caching of private, sensitive, results
+ */
+ cacheable?: BooleanFunction;
+
/**
* The TTL (or expiry) of the key in minutes
*/
@@ -86,9 +93,14 @@ interface CacheParameters {
export function cache({
namespace,
key,
+ cacheable = () => true,
ttlMinutes = 30,
}: CacheParameters): Decorator {
return decorate(async ({ args, instance, callback }) => {
+ if (!cacheable.apply(instance, args)) {
+ return callback();
+ }
+
let finalNamespace: string;
if (is.string(namespace)) {
finalNamespace = namespace;
diff --git a/lib/util/git/config.spec.ts b/lib/util/git/config.spec.ts
new file mode 100644
index 00000000000000..65c03da6c58bae
--- /dev/null
+++ b/lib/util/git/config.spec.ts
@@ -0,0 +1,9 @@
+import { simpleGitConfig } from './config';
+
+describe('util/git/config', () => {
+ it('uses "close" events, ignores "exit" events from child processes', () => {
+ expect(simpleGitConfig()).toEqual({
+ completion: { onClose: true, onExit: false },
+ });
+ });
+});
diff --git a/lib/util/git/config.ts b/lib/util/git/config.ts
index 957a069f57b900..7842559b577edb 100644
--- a/lib/util/git/config.ts
+++ b/lib/util/git/config.ts
@@ -1,4 +1,5 @@
import is from '@sindresorhus/is';
+import { SimpleGitOptions } from 'simple-git';
export const enum GitNoVerifyOption {
Commit = 'commit',
@@ -21,3 +22,12 @@ export function setNoVerify(value: GitNoVerifyOption[]): void {
export function getNoVerify(): GitNoVerifyOption[] {
return noVerify;
}
+
+export function simpleGitConfig(): Partial {
+ return {
+ completion: {
+ onClose: true,
+ onExit: false,
+ },
+ };
+}
diff --git a/lib/util/git/index.ts b/lib/util/git/index.ts
index 3b66f06f96d6a6..345fb32af8a49a 100644
--- a/lib/util/git/index.ts
+++ b/lib/util/git/index.ts
@@ -9,6 +9,7 @@ import Git, {
TaskOptions,
} from 'simple-git';
import { join } from 'upath';
+import { configFileNames } from '../../config/app-strings';
import { getGlobalConfig } from '../../config/global';
import type { RenovateConfig } from '../../config/types';
import {
@@ -24,7 +25,7 @@ import { ExternalHostError } from '../../types/errors/external-host-error';
import { GitOptions, GitProtocol } from '../../types/git';
import { Limit, incLimitedValue } from '../../workers/global/limits';
import { parseGitAuthor } from './author';
-import { GitNoVerifyOption, getNoVerify } from './config';
+import { GitNoVerifyOption, getNoVerify, simpleGitConfig } from './config';
import { configSigningKey, writePrivateKey } from './private-key';
export { GitNoVerifyOption, setNoVerify } from './config';
@@ -185,7 +186,7 @@ export async function initRepo(args: StorageConfig): Promise {
config.additionalBranches = [];
config.branchIsModified = {};
const { localDir } = getGlobalConfig();
- git = Git(localDir);
+ git = Git(localDir, simpleGitConfig());
gitInitialized = false;
await fetchBranchCommits();
}
@@ -721,7 +722,10 @@ export async function commitFiles({
});
}
try {
- await git.add(fileName);
+ // istanbul ignore next
+ const addParams =
+ fileName === configFileNames[0] ? ['-f', fileName] : fileName;
+ await git.add(addParams);
if (file.executable) {
await git.raw(['update-index', '--chmod=+x', fileName]);
}
@@ -846,7 +850,10 @@ export async function commitFiles({
);
return null;
}
- if (err.message.includes('denying non-fast-forward')) {
+ if (
+ err.message.includes('denying non-fast-forward') ||
+ err.message.includes('GH003: Sorry, force-pushing')
+ ) {
logger.debug({ err }, 'Permission denied to update branch');
const error = new Error(CONFIG_VALIDATION);
error.validationSource = branchName;
diff --git a/lib/workers/global/config/parse/cli.spec.ts b/lib/workers/global/config/parse/cli.spec.ts
index fbce467a3c617b..76455df6f260f7 100644
--- a/lib/workers/global/config/parse/cli.spec.ts
+++ b/lib/workers/global/config/parse/cli.spec.ts
@@ -103,11 +103,18 @@ describe('workers/global/config/parse/cli', () => {
hostRules: [],
});
});
- it('migrates --endpoints', () => {
- argv.push(`--endpoints=`);
- expect(cli.getConfig(argv)).toEqual({
- hostRules: [],
- });
+ test.each`
+ arg | config
+ ${'--endpoints='} | ${{ hostRules: [] }}
+ ${'--azure-auto-complete=false'} | ${{ platformAutomerge: false }}
+ ${'--azure-auto-complete=true'} | ${{ platformAutomerge: true }}
+ ${'--azure-auto-complete'} | ${{ platformAutomerge: true }}
+ ${'--git-lab-automerge=false'} | ${{ platformAutomerge: false }}
+ ${'--git-lab-automerge=true'} | ${{ platformAutomerge: true }}
+ ${'--git-lab-automerge'} | ${{ platformAutomerge: true }}
+ `('"$arg" -> $config', ({ arg, config }) => {
+ argv.push(arg);
+ expect(cli.getConfig(argv)).toMatchObject(config);
});
it('parses json object correctly when empty', () => {
argv.push(`--onboarding-config=`);
diff --git a/lib/workers/global/config/parse/cli.ts b/lib/workers/global/config/parse/cli.ts
index 81632f4caf77b5..1e224a736ed17e 100644
--- a/lib/workers/global/config/parse/cli.ts
+++ b/lib/workers/global/config/parse/cli.ts
@@ -14,15 +14,18 @@ export function getCliName(option: Partial): string {
export function getConfig(input: string[]): AllConfig {
// massage migrated configuration keys
const argv = input
- .map((a) =>
- a
- .replace('--endpoints=', '--host-rules=')
- .replace('--expose-env=true', '--trust-level=high')
- .replace('--expose-env', '--trust-level=high')
- .replace('--renovate-fork', '--include-forks')
- .replace('"platform":"', '"hostType":"')
- .replace('"endpoint":"', '"matchHost":"')
- .replace('"host":"', '"matchHost":"')
+ .map(
+ (a) =>
+ a
+ .replace('--endpoints=', '--host-rules=')
+ .replace('--expose-env=true', '--trust-level=high')
+ .replace('--expose-env', '--trust-level=high')
+ .replace('--renovate-fork', '--include-forks')
+ .replace('"platform":"', '"hostType":"')
+ .replace('"endpoint":"', '"matchHost":"')
+ .replace('"host":"', '"matchHost":"')
+ .replace('--azure-auto-complete', '--platform-automerge') // migrate: azureAutoComplete
+ .replace('--git-lab-automerge', '--platform-automerge') // migrate: gitLabAutomerge
)
.filter((a) => !a.startsWith('--git-fs'));
const options = getOptions();
diff --git a/lib/workers/global/config/parse/env.spec.ts b/lib/workers/global/config/parse/env.spec.ts
index 216be52a5989fc..49ae1318c2d94e 100644
--- a/lib/workers/global/config/parse/env.spec.ts
+++ b/lib/workers/global/config/parse/env.spec.ts
@@ -288,6 +288,15 @@ describe('workers/global/config/parse/env', () => {
expect(processExit).toHaveBeenCalledWith(1);
});
});
+ describe('migrations', () => {
+ it('renames migrated variables', () => {
+ const envParam: NodeJS.ProcessEnv = {
+ RENOVATE_GIT_LAB_AUTOMERGE: 'true',
+ };
+ const config = env.getConfig(envParam);
+ expect(config.platformAutomerge).toBe(true);
+ });
+ });
});
describe('.getEnvName(definition)', () => {
it('returns empty', () => {
diff --git a/lib/workers/global/config/parse/env.ts b/lib/workers/global/config/parse/env.ts
index 3425a5be880591..a27dd5bd379d54 100644
--- a/lib/workers/global/config/parse/env.ts
+++ b/lib/workers/global/config/parse/env.ts
@@ -35,8 +35,28 @@ export function getEnvName(option: Partial): string {
return `RENOVATE_${nameWithUnderscores.toUpperCase()}`;
}
+const renameKeys = {
+ azureAutoComplete: 'platformAutomerge', // migrate: azureAutoComplete
+ gitLabAutomerge: 'platformAutomerge', // migrate: gitLabAutomerge
+};
+
+function renameEnvKeys(env: NodeJS.ProcessEnv): NodeJS.ProcessEnv {
+ const result = { ...env };
+ for (const [from, to] of Object.entries(renameKeys)) {
+ const fromKey = getEnvName({ name: from });
+ const toKey = getEnvName({ name: to });
+ if (env[fromKey]) {
+ result[toKey] = env[fromKey];
+ delete result[fromKey];
+ }
+ }
+ return result;
+}
+
export function getConfig(inputEnv: NodeJS.ProcessEnv): AllConfig {
- const env = normalizePrefixes(inputEnv, inputEnv.ENV_PREFIX);
+ let env = inputEnv;
+ env = normalizePrefixes(inputEnv, inputEnv.ENV_PREFIX);
+ env = renameEnvKeys(env);
const options = getOptions();
diff --git a/lib/workers/pr/__snapshots__/index.spec.ts.snap b/lib/workers/pr/__snapshots__/index.spec.ts.snap
index a7ae95855e90ec..65cfb688b1ddc7 100644
--- a/lib/workers/pr/__snapshots__/index.spec.ts.snap
+++ b/lib/workers/pr/__snapshots__/index.spec.ts.snap
@@ -59,11 +59,10 @@ Array [
"labels": Array [],
"platformOptions": Object {
"azureAutoApprove": false,
- "azureAutoComplete": false,
"azureWorkItemId": 0,
"bbUseDefaultReviewers": true,
- "gitLabAutomerge": false,
"gitLabIgnoreApprovals": false,
+ "usePlatformAutomerge": false,
},
"prBody": "This PR contains the following updates:\\n\\n| Package | Type | Update | Change |\\n|---|---|---|---|\\n| [dummy](https://dummy.com) ([source](https://github.com/renovateapp/dummy), [changelog](https://github.com/renovateapp/dummy/changelog.md)) | devDependencies | pin | \`1.0.0\` -> \`1.1.0\` |\\n\\nš **Important**: Renovate will wait until you have merged this Pin PR before creating any *upgrade* PRs for the affected packages. Add the preset \`:preserveSemverRanges\` to your config if you instead don't wish to pin dependencies.\\n\\n---\\n\\n### Release Notes\\n\\n\\nrenovateapp/dummy
\\n\\n### [\`v1.1.0\`](https://github.com/renovateapp/dummy/compare/v1.0.0...v1.1.0)\\n\\n[Compare Source](https://github.com/renovateapp/dummy/compare/v1.0.0...v1.1.0)\\n\\n \\n\\n---\\n\\n### Configuration\\n\\nš
**Schedule**: \\"before 5am\\" in timezone some timezone.\\n\\nš¦ **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\\n\\nā» **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\\n\\nš **Ignore**: Close this PR and you won't be reminded about this update again.\\n\\n---\\n\\n - [ ] If you want to rebase/retry this PR, check this box.\\n\\n---\\n\\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).",
"prTitle": "Update dependency dummy to v1.1.0",
@@ -93,11 +92,10 @@ Array [
"labels": Array [],
"platformOptions": Object {
"azureAutoApprove": false,
- "azureAutoComplete": false,
"azureWorkItemId": 0,
"bbUseDefaultReviewers": true,
- "gitLabAutomerge": false,
"gitLabIgnoreApprovals": false,
+ "usePlatformAutomerge": false,
},
"prBody": "This PR contains the following updates:\\n\\n| Package | Type | Update | Change |\\n|---|---|---|---|\\n| [dummy](https://dummy.com) ([source](https://github.com/renovateapp/dummy), [changelog](https://github.com/renovateapp/dummy/changelog.md)) | devDependencies | minor | \`1.0.0\` -> \`1.1.0\` |\\n\\n---\\n\\n### Release Notes\\n\\n\\nrenovateapp/dummy
\\n\\n### [\`v1.1.0\`](https://github.com/renovateapp/dummy/compare/v1.0.0...v1.1.0)\\n\\n[Compare Source](https://github.com/renovateapp/dummy/compare/v1.0.0...v1.1.0)\\n\\n \\n\\n---\\n\\n### Configuration\\n\\nš
**Schedule**: \\"before 5am\\" (UTC).\\n\\nš¦ **Automerge**: Enabled.\\n\\nā» **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.\\n\\nš **Ignore**: Close this PR and you won't be reminded about this update again.\\n\\n---\\n\\n - [ ] If you want to rebase/retry this PR, check this box.\\n\\n---\\n\\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).",
"prTitle": "Update dependency dummy to v1.1.0",
@@ -114,11 +112,10 @@ Array [
"labels": Array [],
"platformOptions": Object {
"azureAutoApprove": false,
- "azureAutoComplete": false,
"azureWorkItemId": 0,
"bbUseDefaultReviewers": true,
- "gitLabAutomerge": false,
"gitLabIgnoreApprovals": false,
+ "usePlatformAutomerge": false,
},
"prBody": "This PR contains the following updates:\\n\\n| Package | Type | Update | Change |\\n|---|---|---|---|\\n| [gitlabdummy](https://dummy.com) ([source](https://gitlab.com/renovateapp/gitlabdummy), [changelog](https://gitlab.com/renovateapp/gitlabdummy/changelog.md)) | devDependencies | minor | \`1.0.0\` -> \`1.1.0\` |\\n\\n---\\n\\n### Configuration\\n\\nš
**Schedule**: \\"before 5am\\" (UTC).\\n\\nš¦ **Automerge**: Enabled.\\n\\nā» **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.\\n\\nš **Ignore**: Close this PR and you won't be reminded about this update again.\\n\\n---\\n\\n - [ ] If you want to rebase/retry this PR, check this box.\\n\\n---\\n\\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).",
"prTitle": "Update dependency dummy to v1.1.0",
@@ -135,11 +132,10 @@ Array [
"labels": Array [],
"platformOptions": Object {
"azureAutoApprove": false,
- "azureAutoComplete": false,
"azureWorkItemId": 0,
"bbUseDefaultReviewers": true,
- "gitLabAutomerge": false,
"gitLabIgnoreApprovals": false,
+ "usePlatformAutomerge": false,
},
"prBody": "This PR contains the following updates:\\n\\n| Package | Type | Update | Change |\\n|---|---|---|---|\\n| [dummy](https://dummy.com) ([source](https://github.com/renovateapp/dummy), [changelog](https://github.com/renovateapp/dummy/changelog.md)) | devDependencies | lockFileMaintenance | \`1.0.0\` -> \`1.1.0\` |\\n| a | | | \`zzzzzz\` -> \`aaaaaaa\` |\\n| b | | pin | \`some_old_value\` -> \`some_new_value\` |\\n| c | | | \`\` -> \`\` |\\n| d | | lockFileMaintenance | \`\` -> \`\` |\\n\\nnote 1\\n\\nnote 2\\n\\n:warning: Release Notes retrieval for this PR were skipped because no github.com credentials were available.\\nIf you are self-hosted, please see [this instruction](https://github.com/renovatebot/renovate/blob/master/docs/usage/examples/self-hosting.md#githubcom-token-for-release-notes).\\n\\nš” If you wish to disable git hash updates, add \`\\":disableDigestUpdates\\"\` to the extends array in your config.\\n\\nš§ This Pull Request updates lock files to use the latest dependency versions.\\n\\n---\\n\\n### Release Notes\\n\\n\\nrenovateapp/dummy
\\n\\n### [\`v1.1.0\`](https://github.com/renovateapp/dummy/compare/v1.0.0...v1.1.0)\\n\\n[Compare Source](https://github.com/renovateapp/dummy/compare/v1.0.0...v1.1.0)\\n\\n \\n\\n\\nrenovateapp/dummy
\\n\\n \\n\\n---\\n\\n### Configuration\\n\\nš
**Schedule**: At any time (no schedule defined).\\n\\nš¦ **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\\n\\nā» **Rebasing**: Never, or you tick the rebase/retry checkbox.\\n\\nš» **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions) if that's undesired.\\n\\n---\\n\\n - [ ] If you want to rebase/retry this PR, check this box.\\n\\n---\\n\\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).",
"prTitle": "Update dependency dummy to v1.1.0",
@@ -156,11 +152,10 @@ Array [
"labels": Array [],
"platformOptions": Object {
"azureAutoApprove": false,
- "azureAutoComplete": false,
"azureWorkItemId": 0,
"bbUseDefaultReviewers": true,
- "gitLabAutomerge": false,
"gitLabIgnoreApprovals": false,
+ "usePlatformAutomerge": false,
},
"prBody": "This PR contains the following updates:\\n\\n| Package | Type | Update | Change |\\n|---|---|---|---|\\n| [dummy](https://dummy.com) ([source](https://github.com/renovateapp/dummy), [changelog](https://github.com/renovateapp/dummy/changelog.md)) | devDependencies | minor | \`1.0.0\` -> \`1.1.0\` |\\n\\n---\\n\\n### Release Notes\\n\\n\\nsomeproject
\\n\\n### [\`v1.1.0\`](https://github.com/renovateapp/dummy/compare/v1.0.0...v1.1.0)\\n\\n[Compare Source](https://github.com/renovateapp/dummy/compare/v1.0.0...v1.1.0)\\n\\n \\n\\n---\\n\\n### Configuration\\n\\nš
**Schedule**: At any time (no schedule defined).\\n\\nš¦ **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\\n\\nā» **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.\\n\\nš **Ignore**: Close this PR and you won't be reminded about this update again.\\n\\n---\\n\\n - [ ] If you want to rebase/retry this PR, check this box.\\n\\n---\\n\\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).",
"prTitle": "Update dependency dummy to v1.1.0",
diff --git a/lib/workers/pr/index.spec.ts b/lib/workers/pr/index.spec.ts
index 63e7ae7cab6f42..488771cff25156 100644
--- a/lib/workers/pr/index.spec.ts
+++ b/lib/workers/pr/index.spec.ts
@@ -627,13 +627,13 @@ describe('workers/pr/index', () => {
});
it('should trigger GitLab automerge when configured', async () => {
- config.gitLabAutomerge = true;
+ config.usePlatformAutomerge = true;
config.gitLabIgnoreApprovals = true;
config.automerge = true;
await prWorker.ensurePr(config);
const args = platform.createPr.mock.calls[0];
expect(args[0].platformOptions).toMatchObject({
- gitLabAutomerge: true,
+ usePlatformAutomerge: true,
gitLabIgnoreApprovals: true,
});
});
diff --git a/lib/workers/pr/index.ts b/lib/workers/pr/index.ts
index d613bbcf95895a..58a6cd9786b647 100644
--- a/lib/workers/pr/index.ts
+++ b/lib/workers/pr/index.ts
@@ -116,16 +116,18 @@ export async function addAssigneesReviewers(
export function getPlatformPrOptions(
config: RenovateConfig & PlatformPrOptions
): PlatformPrOptions {
+ const usePlatformAutomerge = Boolean(
+ config.automerge &&
+ config.automergeType === 'pr' &&
+ config.usePlatformAutomerge
+ );
+
return {
azureAutoApprove: config.azureAutoApprove,
- azureAutoComplete: config.azureAutoComplete,
azureWorkItemId: config.azureWorkItemId,
bbUseDefaultReviewers: config.bbUseDefaultReviewers,
- gitLabAutomerge:
- config.automerge &&
- config.automergeType === 'pr' &&
- config.gitLabAutomerge,
gitLabIgnoreApprovals: config.gitLabIgnoreApprovals,
+ usePlatformAutomerge,
};
}
diff --git a/package.json b/package.json
index 0a72db699443e5..bf2be8600e1018 100644
--- a/package.json
+++ b/package.json
@@ -188,7 +188,7 @@
"shlex": "2.1.0",
"shortid": "2.2.16",
"simple-git": "2.46.0",
- "slugify": "1.6.0",
+ "slugify": "1.6.1",
"traverse": "0.6.6",
"upath": "2.0.1",
"url-join": "4.0.1",
@@ -223,11 +223,11 @@
"@types/json-dup-key-validator": "1.0.0",
"@types/linkify-markdown": "1.0.1",
"@types/luxon": "2.0.4",
- "@types/markdown-it": "12.2.1",
+ "@types/markdown-it": "12.2.2",
"@types/markdown-table": "2.0.0",
"@types/moo": "0.5.5",
"@types/nock": "10.0.3",
- "@types/node": "14.17.20",
+ "@types/node": "14.17.21",
"@types/node-emoji": "1.8.1",
"@types/parse-link-header": "1.0.0",
"@types/registry-auth-token": "4.2.1",
@@ -238,8 +238,8 @@
"@types/traverse": "0.6.32",
"@types/url-join": "4.0.1",
"@types/xmldoc": "1.1.6",
- "@typescript-eslint/eslint-plugin": "4.32.0",
- "@typescript-eslint/parser": "4.32.0",
+ "@typescript-eslint/eslint-plugin": "4.33.0",
+ "@typescript-eslint/parser": "4.33.0",
"conventional-changelog-conventionalcommits": "4.6.1",
"cross-env": "7.0.3",
"emojibase-data": "6.2.0",
@@ -248,10 +248,10 @@
"eslint-config-prettier": "8.3.0",
"eslint-formatter-gha": "1.2.0",
"eslint-plugin-import": "2.24.2",
- "eslint-plugin-jest": "24.5.0",
+ "eslint-plugin-jest": "24.5.2",
"eslint-plugin-promise": "5.1.0",
"glob": "7.2.0",
- "graphql": "15.6.0",
+ "graphql": "15.6.1",
"husky": "7.0.2",
"jest": "27.2.4",
"jest-extended": "0.11.5",
diff --git a/yarn.lock b/yarn.lock
index 388d7fe498fc2f..c30733042832ba 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -489,9 +489,9 @@
integrity sha512-vS0+cTKwj6CujlR07HmeEBxzWPWSrdmZMYnxn/QC9KW9dFu0lsyCGSCqWsFluI6GI0flsnYYWNkP5y4bfD9tqg==
"@aws-sdk/types@^3.1.0":
- version "3.34.0"
- resolved "https://registry.yarnpkg.com/@aws-sdk/types/-/types-3.34.0.tgz#832a802838d0f0ae568db8e3ce1ee550f05bb4b4"
- integrity sha512-rx9mJp+yKEgb6HVyMtytG+45xwiX3eaHy1VrPC0RV/Uxym1iGyFmpHYo+0/UgL1BTRrJXLA9gTfj15H5kyZ6/Q==
+ version "3.36.0"
+ resolved "https://registry.yarnpkg.com/@aws-sdk/types/-/types-3.36.0.tgz#6d561df1070f039f29b2259affdd1201f3d06472"
+ integrity sha512-OeaTDZqo4OfGahgsZF2viOWxSSNColEUf8RbKAWNlke3nkMu3JW8kkft1Qte6jvoQxZ3jOQWi33Z4LUxix/V7A==
"@aws-sdk/url-parser@3.25.0":
version "3.25.0"
@@ -555,9 +555,9 @@
tslib "^2.3.0"
"@aws-sdk/util-locate-window@^3.0.0":
- version "3.34.0"
- resolved "https://registry.yarnpkg.com/@aws-sdk/util-locate-window/-/util-locate-window-3.34.0.tgz#612cc17701cd712069fe7eea8b806731dfccd954"
- integrity sha512-/xZs6dJ+00H/vNi4+tRoj32XfkhDCYWiASI/wVMzpZG/F15SOipe9MWxUWrH7FAm+BSp5cHcdnLtzFoJmI5cCQ==
+ version "3.36.0"
+ resolved "https://registry.yarnpkg.com/@aws-sdk/util-locate-window/-/util-locate-window-3.36.0.tgz#8cf066f2bea665ba5352ce293844e9f6276e29d8"
+ integrity sha512-w5k3siBOGy7bAfZG/p0WIHpedHNb4OQ0wUSDNvd6Kzn4dkqHPTWoA1NrCEuFk9Gwkrr1yNKxgVlo0SCtgznxPw==
dependencies:
tslib "^2.3.0"
@@ -594,9 +594,9 @@
tslib "^2.3.0"
"@aws-sdk/util-utf8-browser@^3.0.0":
- version "3.34.0"
- resolved "https://registry.yarnpkg.com/@aws-sdk/util-utf8-browser/-/util-utf8-browser-3.34.0.tgz#6fd3b06cbed53a83f1f438f5ef8f29aa045f5666"
- integrity sha512-auB09BoFk5mPA444WmBpF5dZN+59ojrmpAcJf4zc0S/UfsWzAQDj7Lsj2aSu9O0xWoDmtzUWxfiwQqNIEqcNIA==
+ version "3.36.0"
+ resolved "https://registry.yarnpkg.com/@aws-sdk/util-utf8-browser/-/util-utf8-browser-3.36.0.tgz#f80218f44d90bb39bf1bf9a902599ad1b7c4e6a8"
+ integrity sha512-xVUtGIemnh2gD+1s6DZzdGNlgVxHXKlR/sT4G1afysifKrbyXMbh2Z3Ez+BgunWXQRbVXFmNQXHKHYuebMDe5w==
dependencies:
tslib "^2.3.0"
@@ -624,10 +624,10 @@
dependencies:
"@babel/highlight" "^7.10.4"
-"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.12.13", "@babel/code-frame@^7.14.5":
- version "7.14.5"
- resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.14.5.tgz#23b08d740e83f49c5e59945fbf1b43e80bbf4edb"
- integrity sha512-9pzDqyc6OLDaqe+zbACgFkb6fKMNG6CObKpnYXChRsvYGyEdc7CA2BaqeOM+vOtCS5ndmJicPJhKAwYRI6UfFw==
+"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.12.13", "@babel/code-frame@^7.14.5", "@babel/code-frame@^7.15.8":
+ version "7.15.8"
+ resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.15.8.tgz#45990c47adadb00c03677baa89221f7cc23d2503"
+ integrity sha512-2IAnmn8zbvC/jKYhq5Ki9I+DwjlrtMPUCH/CpHvqI4dNnlwHwsxoIhlc8WcYY5LSYknXQtAlFYuHfqAFCvQ4Wg==
dependencies:
"@babel/highlight" "^7.14.5"
@@ -637,19 +637,19 @@
integrity sha512-0NqAC1IJE0S0+lL1SWFMxMkz1pKCNCjI4tr2Zx4LJSXxCLAdr6KyArnY+sno5m3yH9g737ygOyPABDsnXkpxiA==
"@babel/core@^7.1.0", "@babel/core@^7.7.2", "@babel/core@^7.7.5":
- version "7.15.5"
- resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.15.5.tgz#f8ed9ace730722544609f90c9bb49162dc3bf5b9"
- integrity sha512-pYgXxiwAgQpgM1bNkZsDEq85f0ggXMA5L7c+o3tskGMh2BunCI9QUwB9Z4jpvXUOuMdyGKiGKQiRe11VS6Jzvg==
+ version "7.15.8"
+ resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.15.8.tgz#195b9f2bffe995d2c6c159e72fe525b4114e8c10"
+ integrity sha512-3UG9dsxvYBMYwRv+gS41WKHno4K60/9GPy1CJaH6xy3Elq8CTtvtjT5R5jmNhXfCYLX2mTw+7/aq5ak/gOE0og==
dependencies:
- "@babel/code-frame" "^7.14.5"
- "@babel/generator" "^7.15.4"
+ "@babel/code-frame" "^7.15.8"
+ "@babel/generator" "^7.15.8"
"@babel/helper-compilation-targets" "^7.15.4"
- "@babel/helper-module-transforms" "^7.15.4"
+ "@babel/helper-module-transforms" "^7.15.8"
"@babel/helpers" "^7.15.4"
- "@babel/parser" "^7.15.5"
+ "@babel/parser" "^7.15.8"
"@babel/template" "^7.15.4"
"@babel/traverse" "^7.15.4"
- "@babel/types" "^7.15.4"
+ "@babel/types" "^7.15.6"
convert-source-map "^1.7.0"
debug "^4.1.0"
gensync "^1.0.0-beta.2"
@@ -657,12 +657,12 @@
semver "^6.3.0"
source-map "^0.5.0"
-"@babel/generator@^7.15.4", "@babel/generator@^7.7.2":
- version "7.15.4"
- resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.15.4.tgz#85acb159a267ca6324f9793986991ee2022a05b0"
- integrity sha512-d3itta0tu+UayjEORPNz6e1T3FtvWlP5N4V5M+lhp/CxT4oAA7/NcScnpRyspUMLK6tu9MNHmQHxRykuN2R7hw==
+"@babel/generator@^7.15.4", "@babel/generator@^7.15.8", "@babel/generator@^7.7.2":
+ version "7.15.8"
+ resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.15.8.tgz#fa56be6b596952ceb231048cf84ee499a19c0cd1"
+ integrity sha512-ECmAKstXbp1cvpTTZciZCgfOt6iN64lR0d+euv3UZisU5awfRawOvg07Utn/qBGuH4bRIEZKrA/4LzZyXhZr8g==
dependencies:
- "@babel/types" "^7.15.4"
+ "@babel/types" "^7.15.6"
jsesc "^2.5.1"
source-map "^0.5.0"
@@ -713,10 +713,10 @@
dependencies:
"@babel/types" "^7.15.4"
-"@babel/helper-module-transforms@^7.15.4":
- version "7.15.7"
- resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.15.7.tgz#7da80c8cbc1f02655d83f8b79d25866afe50d226"
- integrity sha512-ZNqjjQG/AuFfekFTY+7nY4RgBSklgTu970c7Rj3m/JOhIu5KPBUuTA9AY6zaKcUvk4g6EbDXdBnhi35FAssdSw==
+"@babel/helper-module-transforms@^7.15.8":
+ version "7.15.8"
+ resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.15.8.tgz#d8c0e75a87a52e374a8f25f855174786a09498b2"
+ integrity sha512-DfAfA6PfpG8t4S6npwzLvTUpp0sS7JrcuaMiy1Y5645laRJIp/LiLGIBbQKaXSInK8tiGNI7FL7L8UvB8gdUZg==
dependencies:
"@babel/helper-module-imports" "^7.15.4"
"@babel/helper-replace-supers" "^7.15.4"
@@ -791,10 +791,10 @@
chalk "^2.0.0"
js-tokens "^4.0.0"
-"@babel/parser@^7.1.0", "@babel/parser@^7.15.4", "@babel/parser@^7.15.5", "@babel/parser@^7.7.2":
- version "7.15.7"
- resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.15.7.tgz#0c3ed4a2eb07b165dfa85b3cc45c727334c4edae"
- integrity sha512-rycZXvQ+xS9QyIcJ9HXeDWf1uxqlbVFAUq0Rq0dbc50Zb/+wUe/ehyfzGfm9KZZF0kBejYgxltBXocP+gKdL2g==
+"@babel/parser@^7.1.0", "@babel/parser@^7.15.4", "@babel/parser@^7.15.8", "@babel/parser@^7.7.2":
+ version "7.15.8"
+ resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.15.8.tgz#7bacdcbe71bdc3ff936d510c15dcea7cf0b99016"
+ integrity sha512-BRYa3wcQnjS/nqI8Ac94pYYpJfojHVvVXJ97+IDCImX4Jc8W8Xv1+47enbruk+q1etOpsQNwnfFcNGw+gtPGxA==
"@babel/plugin-syntax-async-generators@^7.8.4":
version "7.8.4"
@@ -988,7 +988,7 @@
resolved "https://registry.yarnpkg.com/@iarna/toml/-/toml-2.2.5.tgz#b32366c89b43c6f8cefbdefac778b9c828e3ba8c"
integrity sha512-trnsAYxU3xnS1gPHPyU961coFyLkh4gAD/0zQ5mymY4yOZ+CYvsPqUbOFSw0aDM4y0tV7tiFxL/1XfXPNC6IPg==
-"@isaacs/string-locale-compare@^1.0.1":
+"@isaacs/string-locale-compare@*", "@isaacs/string-locale-compare@^1.0.1":
version "1.1.0"
resolved "https://registry.yarnpkg.com/@isaacs/string-locale-compare/-/string-locale-compare-1.1.0.tgz#291c227e93fd407a96ecd59879a35809120e432b"
integrity sha512-SQ7Kzhh9+D+ZW9MA0zkYv3VXhIDNx+LzM6EJ+/65I3QY+enU6Itte7E5XX7EWrqLW2FN4n06GWzBnPoC3th2aQ==
@@ -1018,75 +1018,75 @@
chalk "^2.0.1"
slash "^2.0.0"
-"@jest/console@^27.2.4":
- version "27.2.4"
- resolved "https://registry.yarnpkg.com/@jest/console/-/console-27.2.4.tgz#2f1a4bf82b9940065d4818fac271def99ec55e5e"
- integrity sha512-94znCKynPZpDpYHQ6esRJSc11AmONrVkBOBZiD7S+bSubHhrUfbS95EY5HIOxhm4PQO7cnvZkL3oJcY0oMA+Wg==
+"@jest/console@^27.2.4", "@jest/console@^27.2.5":
+ version "27.2.5"
+ resolved "https://registry.yarnpkg.com/@jest/console/-/console-27.2.5.tgz#bddbf8d41c191f17b52bf0c9e6c0d18605e35d6e"
+ integrity sha512-smtlRF9vNKorRMCUtJ+yllIoiY8oFmfFG7xlzsAE76nKEwXNhjPOJIsc7Dv+AUitVt76t+KjIpUP9m98Crn2LQ==
dependencies:
- "@jest/types" "^27.2.4"
+ "@jest/types" "^27.2.5"
"@types/node" "*"
chalk "^4.0.0"
- jest-message-util "^27.2.4"
- jest-util "^27.2.4"
+ jest-message-util "^27.2.5"
+ jest-util "^27.2.5"
slash "^3.0.0"
-"@jest/core@^27.2.4":
- version "27.2.4"
- resolved "https://registry.yarnpkg.com/@jest/core/-/core-27.2.4.tgz#0b932da787d64848eab720dbb88e5b7a3f86e539"
- integrity sha512-UNQLyy+rXoojNm2MGlapgzWhZD1CT1zcHZQYeiD0xE7MtJfC19Q6J5D/Lm2l7i4V97T30usKDoEtjI8vKwWcLg==
+"@jest/core@^27.2.4", "@jest/core@^27.2.5":
+ version "27.2.5"
+ resolved "https://registry.yarnpkg.com/@jest/core/-/core-27.2.5.tgz#854c314708cee0d892ac4f531b9129f00a21ee69"
+ integrity sha512-VR7mQ+jykHN4WO3OvusRJMk4xCa2MFLipMS+43fpcRGaYrN1KwMATfVEXif7ccgFKYGy5D1TVXTNE4mGq/KMMA==
dependencies:
- "@jest/console" "^27.2.4"
- "@jest/reporters" "^27.2.4"
- "@jest/test-result" "^27.2.4"
- "@jest/transform" "^27.2.4"
- "@jest/types" "^27.2.4"
+ "@jest/console" "^27.2.5"
+ "@jest/reporters" "^27.2.5"
+ "@jest/test-result" "^27.2.5"
+ "@jest/transform" "^27.2.5"
+ "@jest/types" "^27.2.5"
"@types/node" "*"
ansi-escapes "^4.2.1"
chalk "^4.0.0"
emittery "^0.8.1"
exit "^0.1.2"
graceful-fs "^4.2.4"
- jest-changed-files "^27.2.4"
- jest-config "^27.2.4"
- jest-haste-map "^27.2.4"
- jest-message-util "^27.2.4"
+ jest-changed-files "^27.2.5"
+ jest-config "^27.2.5"
+ jest-haste-map "^27.2.5"
+ jest-message-util "^27.2.5"
jest-regex-util "^27.0.6"
- jest-resolve "^27.2.4"
- jest-resolve-dependencies "^27.2.4"
- jest-runner "^27.2.4"
- jest-runtime "^27.2.4"
- jest-snapshot "^27.2.4"
- jest-util "^27.2.4"
- jest-validate "^27.2.4"
- jest-watcher "^27.2.4"
+ jest-resolve "^27.2.5"
+ jest-resolve-dependencies "^27.2.5"
+ jest-runner "^27.2.5"
+ jest-runtime "^27.2.5"
+ jest-snapshot "^27.2.5"
+ jest-util "^27.2.5"
+ jest-validate "^27.2.5"
+ jest-watcher "^27.2.5"
micromatch "^4.0.4"
rimraf "^3.0.0"
slash "^3.0.0"
strip-ansi "^6.0.0"
-"@jest/environment@^27.2.4":
- version "27.2.4"
- resolved "https://registry.yarnpkg.com/@jest/environment/-/environment-27.2.4.tgz#db3e60f7dd30ab950f6ce2d6d7293ed9a6b7cbcd"
- integrity sha512-wkuui5yr3SSQW0XD0Qm3TATUbL/WE3LDEM3ulC+RCQhMf2yxhci8x7svGkZ4ivJ6Pc94oOzpZ6cdHBAMSYd1ew==
+"@jest/environment@^27.2.4", "@jest/environment@^27.2.5":
+ version "27.2.5"
+ resolved "https://registry.yarnpkg.com/@jest/environment/-/environment-27.2.5.tgz#b85517ccfcec55690c82c56f5a01a3b30c5e3c84"
+ integrity sha512-XvUW3q6OUF+54SYFCgbbfCd/BKTwm5b2MGLoc2jINXQLKQDTCS2P2IrpPOtQ08WWZDGzbhAzVhOYta3J2arubg==
dependencies:
- "@jest/fake-timers" "^27.2.4"
- "@jest/types" "^27.2.4"
+ "@jest/fake-timers" "^27.2.5"
+ "@jest/types" "^27.2.5"
"@types/node" "*"
- jest-mock "^27.2.4"
+ jest-mock "^27.2.5"
-"@jest/fake-timers@^27.2.4":
- version "27.2.4"
- resolved "https://registry.yarnpkg.com/@jest/fake-timers/-/fake-timers-27.2.4.tgz#00df08bd60332bd59503cb5b6db21e4903785f86"
- integrity sha512-cs/TzvwWUM7kAA6Qm/890SK6JJ2pD5RfDNM3SSEom6BmdyV6OiWP1qf/pqo6ts6xwpcM36oN0wSEzcZWc6/B6w==
+"@jest/fake-timers@^27.2.5":
+ version "27.2.5"
+ resolved "https://registry.yarnpkg.com/@jest/fake-timers/-/fake-timers-27.2.5.tgz#0c7e5762d7bfe6e269e7b49279b097a52a42f0a0"
+ integrity sha512-ZGUb6jg7BgwY+nmO0TW10bc7z7Hl2G/UTAvmxEyZ/GgNFoa31tY9/cgXmqcxnnZ7o5Xs7RAOz3G1SKIj8IVDlg==
dependencies:
- "@jest/types" "^27.2.4"
+ "@jest/types" "^27.2.5"
"@sinonjs/fake-timers" "^8.0.1"
"@types/node" "*"
- jest-message-util "^27.2.4"
- jest-mock "^27.2.4"
- jest-util "^27.2.4"
+ jest-message-util "^27.2.5"
+ jest-mock "^27.2.5"
+ jest-util "^27.2.5"
-"@jest/globals@27.2.4", "@jest/globals@^27.2.4":
+"@jest/globals@27.2.4":
version "27.2.4"
resolved "https://registry.yarnpkg.com/@jest/globals/-/globals-27.2.4.tgz#0aeb22b011f8c8c4b8ff3b4dbd1ee0392fe0dd8a"
integrity sha512-DRsRs5dh0i+fA9mGHylTU19+8fhzNJoEzrgsu+zgJoZth3x8/0juCQ8nVVdW1er4Cqifb/ET7/hACYVPD0dBEA==
@@ -1095,7 +1095,16 @@
"@jest/types" "^27.2.4"
expect "^27.2.4"
-"@jest/reporters@27.2.4", "@jest/reporters@^27.2.4":
+"@jest/globals@^27.2.5":
+ version "27.2.5"
+ resolved "https://registry.yarnpkg.com/@jest/globals/-/globals-27.2.5.tgz#4115538f98ed6cee4051a90fdbd0854062902099"
+ integrity sha512-naRI537GM+enFVJQs6DcwGYPn/0vgJNb06zGVbzXfDfe/epDPV73hP1vqO37PqSKDeOXM2KInr6ymYbL1HTP7g==
+ dependencies:
+ "@jest/environment" "^27.2.5"
+ "@jest/types" "^27.2.5"
+ expect "^27.2.5"
+
+"@jest/reporters@27.2.4":
version "27.2.4"
resolved "https://registry.yarnpkg.com/@jest/reporters/-/reporters-27.2.4.tgz#1482ff007f2e919d85c54b1563abb8b2ea2d5198"
integrity sha512-LHeSdDnDZkDnJ8kvnjcqV8P1Yv/32yL4d4XfR5gBiy3xGO0onwll1QEbvtW96fIwhx2nejug0GTaEdNDoyr3fQ==
@@ -1125,6 +1134,37 @@
terminal-link "^2.0.0"
v8-to-istanbul "^8.1.0"
+"@jest/reporters@^27.2.5":
+ version "27.2.5"
+ resolved "https://registry.yarnpkg.com/@jest/reporters/-/reporters-27.2.5.tgz#65198ed1f3f4449e3f656129764dc6c5bb27ebe3"
+ integrity sha512-zYuR9fap3Q3mxQ454VWF8I6jYHErh368NwcKHWO2uy2fwByqBzRHkf9j2ekMDM7PaSTWcLBSZyd7NNxR1iHxzQ==
+ dependencies:
+ "@bcoe/v8-coverage" "^0.2.3"
+ "@jest/console" "^27.2.5"
+ "@jest/test-result" "^27.2.5"
+ "@jest/transform" "^27.2.5"
+ "@jest/types" "^27.2.5"
+ "@types/node" "*"
+ chalk "^4.0.0"
+ collect-v8-coverage "^1.0.0"
+ exit "^0.1.2"
+ glob "^7.1.2"
+ graceful-fs "^4.2.4"
+ istanbul-lib-coverage "^3.0.0"
+ istanbul-lib-instrument "^4.0.3"
+ istanbul-lib-report "^3.0.0"
+ istanbul-lib-source-maps "^4.0.0"
+ istanbul-reports "^3.0.2"
+ jest-haste-map "^27.2.5"
+ jest-resolve "^27.2.5"
+ jest-util "^27.2.5"
+ jest-worker "^27.2.5"
+ slash "^3.0.0"
+ source-map "^0.6.0"
+ string-length "^4.0.1"
+ terminal-link "^2.0.0"
+ v8-to-istanbul "^8.1.0"
+
"@jest/source-map@^24.9.0":
version "24.9.0"
resolved "https://registry.yarnpkg.com/@jest/source-map/-/source-map-24.9.0.tgz#0e263a94430be4b41da683ccc1e6bffe2a191714"
@@ -1143,7 +1183,7 @@
graceful-fs "^4.2.4"
source-map "^0.6.0"
-"@jest/test-result@27.2.4", "@jest/test-result@^27.2.4":
+"@jest/test-result@27.2.4":
version "27.2.4"
resolved "https://registry.yarnpkg.com/@jest/test-result/-/test-result-27.2.4.tgz#d1ca8298d168f1b0be834bfb543b1ac0294c05d7"
integrity sha512-eU+PRo0+lIS01b0dTmMdVZ0TtcRSxEaYquZTRFMQz6CvsehGhx9bRzi9Zdw6VROviJyv7rstU+qAMX5pNBmnfQ==
@@ -1162,31 +1202,41 @@
"@jest/types" "^24.9.0"
"@types/istanbul-lib-coverage" "^2.0.0"
-"@jest/test-sequencer@^27.2.4":
- version "27.2.4"
- resolved "https://registry.yarnpkg.com/@jest/test-sequencer/-/test-sequencer-27.2.4.tgz#df66422a3e9e7440ce8b7498e255fa6b52c0bc03"
- integrity sha512-fpk5eknU3/DXE2QCCG1wv/a468+cfPo3Asu6d6yUtM9LOPh709ubZqrhuUOYfM8hXMrIpIdrv1CdCrWWabX0rQ==
+"@jest/test-result@^27.2.4", "@jest/test-result@^27.2.5":
+ version "27.2.5"
+ resolved "https://registry.yarnpkg.com/@jest/test-result/-/test-result-27.2.5.tgz#e9f73cf6cd5e2cc6eb3105339248dea211f9320e"
+ integrity sha512-ub7j3BrddxZ0BdSnM5JCF6cRZJ/7j3wgdX0+Dtwhw2Po+HKsELCiXUTvh+mgS4/89mpnU1CPhZxe2mTvuLPJJg==
dependencies:
- "@jest/test-result" "^27.2.4"
+ "@jest/console" "^27.2.5"
+ "@jest/types" "^27.2.5"
+ "@types/istanbul-lib-coverage" "^2.0.0"
+ collect-v8-coverage "^1.0.0"
+
+"@jest/test-sequencer@^27.2.5":
+ version "27.2.5"
+ resolved "https://registry.yarnpkg.com/@jest/test-sequencer/-/test-sequencer-27.2.5.tgz#ed5ae91c00e623fb719111d58e380395e16cefbb"
+ integrity sha512-8j8fHZRfnjbbdMitMAGFKaBZ6YqvFRFJlMJzcy3v75edTOqc7RY65S9JpMY6wT260zAcL2sTQRga/P4PglCu3Q==
+ dependencies:
+ "@jest/test-result" "^27.2.5"
graceful-fs "^4.2.4"
- jest-haste-map "^27.2.4"
- jest-runtime "^27.2.4"
+ jest-haste-map "^27.2.5"
+ jest-runtime "^27.2.5"
-"@jest/transform@^27.2.4":
- version "27.2.4"
- resolved "https://registry.yarnpkg.com/@jest/transform/-/transform-27.2.4.tgz#2fe5b6836895f7a1b8bdec442c51e83943c62733"
- integrity sha512-n5FlX2TH0oQGwyVDKPxdJ5nI2sO7TJBFe3u3KaAtt7TOiV4yL+Y+rSFDl+Ic5MpbiA/eqXmLAQxjnBmWgS2rEA==
+"@jest/transform@^27.2.4", "@jest/transform@^27.2.5":
+ version "27.2.5"
+ resolved "https://registry.yarnpkg.com/@jest/transform/-/transform-27.2.5.tgz#02b08862a56dbedddf0ba3c2eae41e049a250e29"
+ integrity sha512-29lRtAHHYGALbZOx343v0zKmdOg4Sb0rsA1uSv0818bvwRhs3TyElOmTVXlrw0v1ZTqXJCAH/cmoDXimBhQOJQ==
dependencies:
"@babel/core" "^7.1.0"
- "@jest/types" "^27.2.4"
+ "@jest/types" "^27.2.5"
babel-plugin-istanbul "^6.0.0"
chalk "^4.0.0"
convert-source-map "^1.4.0"
fast-json-stable-stringify "^2.0.0"
graceful-fs "^4.2.4"
- jest-haste-map "^27.2.4"
+ jest-haste-map "^27.2.5"
jest-regex-util "^27.0.6"
- jest-util "^27.2.4"
+ jest-util "^27.2.5"
micromatch "^4.0.4"
pirates "^4.0.1"
slash "^3.0.0"
@@ -1213,10 +1263,10 @@
"@types/yargs" "^15.0.0"
chalk "^4.0.0"
-"@jest/types@^27.2.4":
- version "27.2.4"
- resolved "https://registry.yarnpkg.com/@jest/types/-/types-27.2.4.tgz#2430042a66e00dc5b140c3636f4474d464c21ee8"
- integrity sha512-IDO2ezTxeMvQAHxzG/ZvEyA47q0aVfzT95rGFl7bZs/Go0aIucvfDbS2rmnoEdXxlLQhcolmoG/wvL/uKx4tKA==
+"@jest/types@^27.2.4", "@jest/types@^27.2.5":
+ version "27.2.5"
+ resolved "https://registry.yarnpkg.com/@jest/types/-/types-27.2.5.tgz#420765c052605e75686982d24b061b4cbba22132"
+ integrity sha512-nmuM4VuDtCZcY+eTpw+0nvstwReMsjPoj7ZR80/BbixulhLaiX+fbv8oeLW8WZlJMcsGQsTmMKT/iTZu1Uy/lQ==
dependencies:
"@types/istanbul-lib-coverage" "^2.0.0"
"@types/istanbul-reports" "^3.0.0"
@@ -1262,20 +1312,20 @@
"@nodelib/fs.scandir" "2.1.5"
fastq "^1.6.0"
-"@npmcli/arborist@*", "@npmcli/arborist@^2.3.0", "@npmcli/arborist@^2.5.0":
- version "2.10.0"
- resolved "https://registry.yarnpkg.com/@npmcli/arborist/-/arborist-2.10.0.tgz#424c2d73a7ae59c960b0cc7f74fed043e4316c2c"
- integrity sha512-CLnD+zXG9oijEEzViimz8fbOoFVb7hoypiaf7p6giJhvYtrxLAyY3cZAMPIFQvsG731+02eMDp3LqVBNo7BaZA==
+"@npmcli/arborist@*", "@npmcli/arborist@^3.0.0":
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/@npmcli/arborist/-/arborist-3.0.0.tgz#fcd2416dc153aefa1e3ca5436eacbf4de5f09662"
+ integrity sha512-zAmy3LwjQ81HKYA8Z4Uao8Re+ydiad2sDKI+PKe2loqDXnFolm69LIGmHp8+7BPWX1CAJCs1/XRNTLdXmuMZZw==
dependencies:
"@isaacs/string-locale-compare" "^1.0.1"
"@npmcli/installed-package-contents" "^1.0.7"
"@npmcli/map-workspaces" "^1.0.2"
- "@npmcli/metavuln-calculator" "^1.1.0"
+ "@npmcli/metavuln-calculator" "^2.0.0"
"@npmcli/move-file" "^1.1.0"
"@npmcli/name-from-folder" "^1.0.1"
"@npmcli/node-gyp" "^1.0.1"
"@npmcli/package-json" "^1.0.1"
- "@npmcli/run-script" "^1.8.2"
+ "@npmcli/run-script" "^2.0.0"
bin-links "^2.2.1"
cacache "^15.0.3"
common-ancestor-path "^1.0.1"
@@ -1287,7 +1337,7 @@
npm-package-arg "^8.1.5"
npm-pick-manifest "^6.1.0"
npm-registry-fetch "^11.0.0"
- pacote "^11.3.5"
+ pacote "^12.0.0"
parse-conflict-json "^1.1.1"
proc-log "^1.0.0"
promise-all-reject-late "^1.0.0"
@@ -1363,13 +1413,14 @@
minimatch "^3.0.4"
read-package-json-fast "^2.0.1"
-"@npmcli/metavuln-calculator@^1.1.0":
- version "1.1.1"
- resolved "https://registry.yarnpkg.com/@npmcli/metavuln-calculator/-/metavuln-calculator-1.1.1.tgz#2f95ff3c6d88b366dd70de1c3f304267c631b458"
- integrity sha512-9xe+ZZ1iGVaUovBVFI9h3qW+UuECUzhvZPxK9RaEA2mjU26o5D0JloGYWwLYvQELJNmBdQB6rrpuN8jni6LwzQ==
+"@npmcli/metavuln-calculator@^2.0.0":
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/@npmcli/metavuln-calculator/-/metavuln-calculator-2.0.0.tgz#70937b8b5a5cad5c588c8a7b38c4a8bd6f62c84c"
+ integrity sha512-VVW+JhWCKRwCTE+0xvD6p3uV4WpqocNYYtzyvenqL/u1Q3Xx6fGTJ+6UoIoii07fbuEO9U3IIyuGY0CYHDv1sg==
dependencies:
cacache "^15.0.5"
- pacote "^11.1.11"
+ json-parse-even-better-errors "^2.3.1"
+ pacote "^12.0.0"
semver "^7.3.2"
"@npmcli/move-file@^1.0.1", "@npmcli/move-file@^1.1.0":
@@ -1386,9 +1437,9 @@
integrity sha512-qq3oEfcLFwNfEYOQ8HLimRGKlD8WSeGEdtUa7hmzpR8Sa7haL1KVQrvgO6wqMjhWFFVjgtrh1gIxDz+P8sjUaA==
"@npmcli/node-gyp@^1.0.1", "@npmcli/node-gyp@^1.0.2":
- version "1.0.2"
- resolved "https://registry.yarnpkg.com/@npmcli/node-gyp/-/node-gyp-1.0.2.tgz#3cdc1f30e9736dbc417373ed803b42b1a0a29ede"
- integrity sha512-yrJUe6reVMpktcvagumoqD9r08fH1iRo01gn1u0zoCApa9lnZGEigVKUd2hzsCId4gdtkZZIVscLhNxMECKgRg==
+ version "1.0.3"
+ resolved "https://registry.yarnpkg.com/@npmcli/node-gyp/-/node-gyp-1.0.3.tgz#a912e637418ffc5f2db375e93b85837691a43a33"
+ integrity sha512-fnkhw+fmX65kiLqk6E3BFLXNC26rUhK90zVwe2yncPliVT/Qos3xjhTLE59Df8KnPlcwIERXKVlU1bXoUQ+liA==
"@npmcli/package-json@*", "@npmcli/package-json@^1.0.1":
version "1.0.1"
@@ -1404,7 +1455,7 @@
dependencies:
infer-owner "^1.0.4"
-"@npmcli/run-script@*":
+"@npmcli/run-script@*", "@npmcli/run-script@^2.0.0":
version "2.0.0"
resolved "https://registry.yarnpkg.com/@npmcli/run-script/-/run-script-2.0.0.tgz#9949c0cab415b17aaac279646db4f027d6f1e743"
integrity sha512-fSan/Pu11xS/TdaTpTB0MRn9guwGU8dye+x56mEVgBEd/QsybBbYcAL0phPXi8SGWFEChkQd6M9qL4y6VOpFig==
@@ -1414,7 +1465,7 @@
node-gyp "^8.2.0"
read-package-json-fast "^2.0.1"
-"@npmcli/run-script@^1.8.2", "@npmcli/run-script@^1.8.3", "@npmcli/run-script@^1.8.4":
+"@npmcli/run-script@^1.8.2":
version "1.8.6"
resolved "https://registry.yarnpkg.com/@npmcli/run-script/-/run-script-1.8.6.tgz#18314802a6660b0d4baa4c3afe7f1ad39d8c28b7"
integrity sha512-e42bVZnC6VluBZBAFEr3YrdqSspG3bgilyg4nSLBJ7TRGNCzxHa92XAHxQBLYg0BmgwO4b2mf3h/l5EkEWRn3g==
@@ -1462,29 +1513,29 @@
"@octokit/types" "^6.0.3"
universal-user-agent "^6.0.0"
-"@octokit/openapi-types@^10.6.4":
- version "10.6.4"
- resolved "https://registry.yarnpkg.com/@octokit/openapi-types/-/openapi-types-10.6.4.tgz#c8b5b1f5c60ab7c62858abe2ef57bc709f426a30"
- integrity sha512-JVmwWzYTIs6jACYOwD6zu5rdrqGIYsiAsLzTCxdrWIPNKNVjEF6vPTL20shmgJ4qZsq7WPBcLXLsaQD+NLChfg==
+"@octokit/openapi-types@^11.2.0":
+ version "11.2.0"
+ resolved "https://registry.yarnpkg.com/@octokit/openapi-types/-/openapi-types-11.2.0.tgz#b38d7fc3736d52a1e96b230c1ccd4a58a2f400a6"
+ integrity sha512-PBsVO+15KSlGmiI8QAzaqvsNlZlrDlyAJYcrXBCvVUxCp7VnXjkwPoFHgjEJXx3WF9BAwkA6nfCUA7i9sODzKA==
-"@octokit/plugin-paginate-rest@^2.16.4":
- version "2.16.7"
- resolved "https://registry.yarnpkg.com/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-2.16.7.tgz#d25b6e650ba5a007002986f5fda66958d44e70a4"
- integrity sha512-TMlyVhMPx6La1Ud4PSY4YxqAvb9YPEMs/7R1nBSbsw4wNqG73aBqls0r0dRRCWe5Pm0ZUGS9a94N46iAxlOR8A==
+"@octokit/plugin-paginate-rest@^2.16.8":
+ version "2.17.0"
+ resolved "https://registry.yarnpkg.com/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-2.17.0.tgz#32e9c7cab2a374421d3d0de239102287d791bce7"
+ integrity sha512-tzMbrbnam2Mt4AhuyCHvpRkS0oZ5MvwwcQPYGtMv4tUa5kkzG58SVB0fcsLulOZQeRnOgdkZWkRUiyBlh0Bkyw==
dependencies:
- "@octokit/types" "^6.31.3"
+ "@octokit/types" "^6.34.0"
"@octokit/plugin-request-log@^1.0.4":
version "1.0.4"
resolved "https://registry.yarnpkg.com/@octokit/plugin-request-log/-/plugin-request-log-1.0.4.tgz#5e50ed7083a613816b1e4a28aeec5fb7f1462e85"
integrity sha512-mLUsMkgP7K/cnFEw07kWqXGF5LKrOkD+lhCrKvPHXWDywAwuDUeDwWBpc69XK3pNX0uKiVt8g5z96PJ6z9xCFA==
-"@octokit/plugin-rest-endpoint-methods@5.11.4":
- version "5.11.4"
- resolved "https://registry.yarnpkg.com/@octokit/plugin-rest-endpoint-methods/-/plugin-rest-endpoint-methods-5.11.4.tgz#221dedcbdc45d6bfa54228d469e8c34acb4e0e34"
- integrity sha512-iS+GYTijrPUiEiLoDsGJhrbXIvOPfm2+schvr+FxNMs7PeE9Nl4bAMhE8ftfNX3Z1xLxSKwEZh0O7GbWurX5HQ==
+"@octokit/plugin-rest-endpoint-methods@^5.12.0":
+ version "5.13.0"
+ resolved "https://registry.yarnpkg.com/@octokit/plugin-rest-endpoint-methods/-/plugin-rest-endpoint-methods-5.13.0.tgz#8c46109021a3412233f6f50d28786f8e552427ba"
+ integrity sha512-uJjMTkN1KaOIgNtUPMtIXDOjx6dGYysdIFhgA52x4xSadQCz3b/zJexvITDVpANnfKPW/+E0xkOvLntqMYpviA==
dependencies:
- "@octokit/types" "^6.31.2"
+ "@octokit/types" "^6.34.0"
deprecation "^2.3.1"
"@octokit/request-error@^2.0.5", "@octokit/request-error@^2.1.0":
@@ -1509,21 +1560,21 @@
universal-user-agent "^6.0.0"
"@octokit/rest@^18.0.0":
- version "18.11.4"
- resolved "https://registry.yarnpkg.com/@octokit/rest/-/rest-18.11.4.tgz#9fb6d826244554fbf8c110b9064018d7198eec51"
- integrity sha512-QplypCyYxqMK05JdMSm/bDWZO8VWWaBdzQ9tbF9rEV9rIEiICh+v6q+Vu/Y5hdze8JJaxfUC+PBC7vrnEkZvZg==
+ version "18.12.0"
+ resolved "https://registry.yarnpkg.com/@octokit/rest/-/rest-18.12.0.tgz#f06bc4952fc87130308d810ca9d00e79f6988881"
+ integrity sha512-gDPiOHlyGavxr72y0guQEhLsemgVjwRePayJ+FcKc2SJqKUbxbkvf5kAZEWA/MKvsfYlQAMVzNJE3ezQcxMJ2Q==
dependencies:
"@octokit/core" "^3.5.1"
- "@octokit/plugin-paginate-rest" "^2.16.4"
+ "@octokit/plugin-paginate-rest" "^2.16.8"
"@octokit/plugin-request-log" "^1.0.4"
- "@octokit/plugin-rest-endpoint-methods" "5.11.4"
+ "@octokit/plugin-rest-endpoint-methods" "^5.12.0"
-"@octokit/types@^6.0.3", "@octokit/types@^6.16.1", "@octokit/types@^6.31.2", "@octokit/types@^6.31.3":
- version "6.31.3"
- resolved "https://registry.yarnpkg.com/@octokit/types/-/types-6.31.3.tgz#14c2961baea853b2bf148d892256357a936343f8"
- integrity sha512-IUG3uMpsLHrtEL6sCVXbxCgnbKcgpkS4K7gVEytLDvYYalkK3XcuMCHK1YPD8xJglSJAOAbL4MgXp47rS9G49w==
+"@octokit/types@^6.0.3", "@octokit/types@^6.16.1", "@octokit/types@^6.34.0":
+ version "6.34.0"
+ resolved "https://registry.yarnpkg.com/@octokit/types/-/types-6.34.0.tgz#c6021333334d1ecfb5d370a8798162ddf1ae8218"
+ integrity sha512-s1zLBjWhdEI2zwaoSgyOFoKSl109CUcVBCc7biPJ3aAf6LGLU6szDvi31JPU7bxfla2lqfhjbbg/5DdFNxOwHw==
dependencies:
- "@octokit/openapi-types" "^10.6.4"
+ "@octokit/openapi-types" "^11.2.0"
"@renovate/eslint-plugin@https://github.com/renovatebot/eslint-plugin#v0.0.3":
version "0.0.1"
@@ -1911,14 +1962,13 @@
resolved "https://registry.yarnpkg.com/@types/luxon/-/luxon-2.0.4.tgz#f7b5a86ccd843c0ccaddfaedd9ee1081bc1cde3b"
integrity sha512-l3xuhmyF2kBldy15SeY6d6HbK2BacEcSK1qTF1ISPtPHr29JH0C1fndz9ExXLKpGl0J6pZi+dGp1i5xesMt60Q==
-"@types/markdown-it@12.2.1":
- version "12.2.1"
- resolved "https://registry.yarnpkg.com/@types/markdown-it/-/markdown-it-12.2.1.tgz#ca36e1edce6f15a770f3e99e68622d1d2e2f0c65"
- integrity sha512-iij+ilRX/vxtUPCREjn74xzHo/RorHJDwOsJ6X+TgKw7zSvazhVXnDfwlTnyLOMdiVUjtRYU4CrcUZ7Aci4PmQ==
+"@types/markdown-it@12.2.2":
+ version "12.2.2"
+ resolved "https://registry.yarnpkg.com/@types/markdown-it/-/markdown-it-12.2.2.tgz#b451a2a6645c45138143ac1183351574c3b7ccbd"
+ integrity sha512-mgqTMVcbwAMUs15tS13VtxBCSqP/sXDkMqBhIdGofOywDzzlOj2Y38PFi1pD+PKJDzk5OdN1RJkRx7GPJf+Twg==
dependencies:
"@types/linkify-it" "*"
"@types/mdurl" "*"
- highlight.js "^10.7.2"
"@types/markdown-table@2.0.0":
version "2.0.0"
@@ -1965,14 +2015,14 @@
integrity sha512-0fRfA90FWm6KJfw6P9QGyo0HDTCmthZ7cWaBQndITlaWLTZ6njRyKwrwpzpg+n6kBXBIGKeUHEQuBx7bphGJkA==
"@types/node@*":
- version "16.10.2"
- resolved "https://registry.yarnpkg.com/@types/node/-/node-16.10.2.tgz#5764ca9aa94470adb4e1185fe2e9f19458992b2e"
- integrity sha512-zCclL4/rx+W5SQTzFs9wyvvyCwoK9QtBpratqz2IYJ3O8Umrn0m3nsTv0wQBk9sRGpvUe9CwPDrQFB10f1FIjQ==
+ version "16.10.3"
+ resolved "https://registry.yarnpkg.com/@types/node/-/node-16.10.3.tgz#7a8f2838603ea314d1d22bb3171d899e15c57bd5"
+ integrity sha512-ho3Ruq+fFnBrZhUYI46n/bV2GjwzSkwuT4dTf0GkuNFmnb8nq4ny2z9JEVemFi6bdEJanHLlYfy9c6FN9B9McQ==
-"@types/node@14.17.20":
- version "14.17.20"
- resolved "https://registry.yarnpkg.com/@types/node/-/node-14.17.20.tgz#74cc80438fd0467dc4377ee5bbad89a886df3c10"
- integrity sha512-gI5Sl30tmhXsqkNvopFydP7ASc4c2cLfGNQrVKN3X90ADFWFsPEsotm/8JHSUJQKTHbwowAHtcJPeyVhtKv0TQ==
+"@types/node@14.17.21":
+ version "14.17.21"
+ resolved "https://registry.yarnpkg.com/@types/node/-/node-14.17.21.tgz#6359d8cf73481e312a43886fa50afc70ce5592c6"
+ integrity sha512-zv8ukKci1mrILYiQOwGSV4FpkZhyxQtuFWGya2GujWg+zVAeRQ4qbaMmWp9vb9889CFA8JECH7lkwCL6Ygg8kA==
"@types/node@^13.7.0":
version "13.13.52"
@@ -2114,13 +2164,13 @@
dependencies:
"@types/node" "*"
-"@typescript-eslint/eslint-plugin@4.32.0":
- version "4.32.0"
- resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-4.32.0.tgz#46d2370ae9311092f2a6f7246d28357daf2d4e89"
- integrity sha512-+OWTuWRSbWI1KDK8iEyG/6uK2rTm3kpS38wuVifGUTDB6kjEuNrzBI1MUtxnkneuWG/23QehABe2zHHrj+4yuA==
+"@typescript-eslint/eslint-plugin@4.33.0":
+ version "4.33.0"
+ resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-4.33.0.tgz#c24dc7c8069c7706bc40d99f6fa87edcb2005276"
+ integrity sha512-aINiAxGVdOl1eJyVjaWn/YcVAq4Gi/Yo35qHGCnqbWVz61g39D0h23veY/MA0rFFGfxK7TySg2uwDeNv+JgVpg==
dependencies:
- "@typescript-eslint/experimental-utils" "4.32.0"
- "@typescript-eslint/scope-manager" "4.32.0"
+ "@typescript-eslint/experimental-utils" "4.33.0"
+ "@typescript-eslint/scope-manager" "4.33.0"
debug "^4.3.1"
functional-red-black-tree "^1.0.1"
ignore "^5.1.8"
@@ -2128,60 +2178,60 @@
semver "^7.3.5"
tsutils "^3.21.0"
-"@typescript-eslint/experimental-utils@4.32.0", "@typescript-eslint/experimental-utils@^4.0.1":
- version "4.32.0"
- resolved "https://registry.yarnpkg.com/@typescript-eslint/experimental-utils/-/experimental-utils-4.32.0.tgz#53a8267d16ca5a79134739129871966c56a59dc4"
- integrity sha512-WLoXcc+cQufxRYjTWr4kFt0DyEv6hDgSaFqYhIzQZ05cF+kXfqXdUh+//kgquPJVUBbL3oQGKQxwPbLxHRqm6A==
+"@typescript-eslint/experimental-utils@4.33.0", "@typescript-eslint/experimental-utils@^4.0.1":
+ version "4.33.0"
+ resolved "https://registry.yarnpkg.com/@typescript-eslint/experimental-utils/-/experimental-utils-4.33.0.tgz#6f2a786a4209fa2222989e9380b5331b2810f7fd"
+ integrity sha512-zeQjOoES5JFjTnAhI5QY7ZviczMzDptls15GFsI6jyUOq0kOf9+WonkhtlIhh0RgHRnqj5gdNxW5j1EvAyYg6Q==
dependencies:
"@types/json-schema" "^7.0.7"
- "@typescript-eslint/scope-manager" "4.32.0"
- "@typescript-eslint/types" "4.32.0"
- "@typescript-eslint/typescript-estree" "4.32.0"
+ "@typescript-eslint/scope-manager" "4.33.0"
+ "@typescript-eslint/types" "4.33.0"
+ "@typescript-eslint/typescript-estree" "4.33.0"
eslint-scope "^5.1.1"
eslint-utils "^3.0.0"
-"@typescript-eslint/parser@4.32.0", "@typescript-eslint/parser@^4.4.1":
- version "4.32.0"
- resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-4.32.0.tgz#751ecca0e2fecd3d44484a9b3049ffc1871616e5"
- integrity sha512-lhtYqQ2iEPV5JqV7K+uOVlPePjClj4dOw7K4/Z1F2yvjIUvyr13yJnDzkK6uon4BjHYuHy3EG0c2Z9jEhFk56w==
+"@typescript-eslint/parser@4.33.0", "@typescript-eslint/parser@^4.4.1":
+ version "4.33.0"
+ resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-4.33.0.tgz#dfe797570d9694e560528d18eecad86c8c744899"
+ integrity sha512-ZohdsbXadjGBSK0/r+d87X0SBmKzOq4/S5nzK6SBgJspFo9/CUDJ7hjayuze+JK7CZQLDMroqytp7pOcFKTxZA==
dependencies:
- "@typescript-eslint/scope-manager" "4.32.0"
- "@typescript-eslint/types" "4.32.0"
- "@typescript-eslint/typescript-estree" "4.32.0"
+ "@typescript-eslint/scope-manager" "4.33.0"
+ "@typescript-eslint/types" "4.33.0"
+ "@typescript-eslint/typescript-estree" "4.33.0"
debug "^4.3.1"
-"@typescript-eslint/scope-manager@4.32.0":
- version "4.32.0"
- resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-4.32.0.tgz#e03c8668f8b954072b3f944d5b799c0c9225a7d5"
- integrity sha512-DK+fMSHdM216C0OM/KR1lHXjP1CNtVIhJ54kQxfOE6x8UGFAjha8cXgDMBEIYS2XCYjjCtvTkjQYwL3uvGOo0w==
+"@typescript-eslint/scope-manager@4.33.0":
+ version "4.33.0"
+ resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-4.33.0.tgz#d38e49280d983e8772e29121cf8c6e9221f280a3"
+ integrity sha512-5IfJHpgTsTZuONKbODctL4kKuQje/bzBRkwHE8UOZ4f89Zeddg+EGZs8PD8NcN4LdM3ygHWYB3ukPAYjvl/qbQ==
dependencies:
- "@typescript-eslint/types" "4.32.0"
- "@typescript-eslint/visitor-keys" "4.32.0"
+ "@typescript-eslint/types" "4.33.0"
+ "@typescript-eslint/visitor-keys" "4.33.0"
-"@typescript-eslint/types@4.32.0":
- version "4.32.0"
- resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-4.32.0.tgz#52c633c18da47aee09449144bf59565ab36df00d"
- integrity sha512-LE7Z7BAv0E2UvqzogssGf1x7GPpUalgG07nGCBYb1oK4mFsOiFC/VrSMKbZQzFJdN2JL5XYmsx7C7FX9p9ns0w==
+"@typescript-eslint/types@4.33.0":
+ version "4.33.0"
+ resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-4.33.0.tgz#a1e59036a3b53ae8430ceebf2a919dc7f9af6d72"
+ integrity sha512-zKp7CjQzLQImXEpLt2BUw1tvOMPfNoTAfb8l51evhYbOEEzdWyQNmHWWGPR6hwKJDAi+1VXSBmnhL9kyVTTOuQ==
-"@typescript-eslint/typescript-estree@4.32.0":
- version "4.32.0"
- resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-4.32.0.tgz#db00ccc41ccedc8d7367ea3f50c6994b8efa9f3b"
- integrity sha512-tRYCgJ3g1UjMw1cGG8Yn1KzOzNlQ6u1h9AmEtPhb5V5a1TmiHWcRyF/Ic+91M4f43QeChyYlVTcf3DvDTZR9vw==
+"@typescript-eslint/typescript-estree@4.33.0":
+ version "4.33.0"
+ resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-4.33.0.tgz#0dfb51c2908f68c5c08d82aefeaf166a17c24609"
+ integrity sha512-rkWRY1MPFzjwnEVHsxGemDzqqddw2QbTJlICPD9p9I9LfsO8fdmfQPOX3uKfUaGRDFJbfrtm/sXhVXN4E+bzCA==
dependencies:
- "@typescript-eslint/types" "4.32.0"
- "@typescript-eslint/visitor-keys" "4.32.0"
+ "@typescript-eslint/types" "4.33.0"
+ "@typescript-eslint/visitor-keys" "4.33.0"
debug "^4.3.1"
globby "^11.0.3"
is-glob "^4.0.1"
semver "^7.3.5"
tsutils "^3.21.0"
-"@typescript-eslint/visitor-keys@4.32.0":
- version "4.32.0"
- resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-4.32.0.tgz#455ba8b51242f2722a497ffae29313f33b14cb7f"
- integrity sha512-e7NE0qz8W+atzv3Cy9qaQ7BTLwWsm084Z0c4nIO2l3Bp6u9WIgdqCgyPyV5oSPDMIW3b20H59OOCmVk3jw3Ptw==
+"@typescript-eslint/visitor-keys@4.33.0":
+ version "4.33.0"
+ resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-4.33.0.tgz#2a22f77a41604289b7a186586e9ec48ca92ef1dd"
+ integrity sha512-uqi/2aSz9g2ftcHWf8uLPJA70rUv6yuMW5Bohw+bwcuzaxQIHaKFZCKGoGXIrc9vkTJ3+0txM73K0Hq3d5wgIg==
dependencies:
- "@typescript-eslint/types" "4.32.0"
+ "@typescript-eslint/types" "4.33.0"
eslint-visitor-keys "^2.0.0"
"@yarnpkg/core@2.4.0":
@@ -2524,15 +2574,15 @@ array-ify@^1.0.0:
integrity sha1-nlKHYrSpBmrRY6aWKjZEGOlibs4=
array-includes@^3.1.3:
- version "3.1.3"
- resolved "https://registry.yarnpkg.com/array-includes/-/array-includes-3.1.3.tgz#c7f619b382ad2afaf5326cddfdc0afc61af7690a"
- integrity sha512-gcem1KlBU7c9rB+Rq8/3PPKsK2kjqeEBa3bD5kkQo4nYlOHQCJqIJFqBXDEfwaRuYTT4E+FxA9xez7Gf/e3Q7A==
+ version "3.1.4"
+ resolved "https://registry.yarnpkg.com/array-includes/-/array-includes-3.1.4.tgz#f5b493162c760f3539631f005ba2bb46acb45ba9"
+ integrity sha512-ZTNSQkmWumEbiHO2GF4GmWxYVTiQyJy2XOTa15sdQSrvKn7l+180egQMqlrMOUMCyLMD7pmyQe4mMDUT6Behrw==
dependencies:
call-bind "^1.0.2"
define-properties "^1.1.3"
- es-abstract "^1.18.0-next.2"
+ es-abstract "^1.19.1"
get-intrinsic "^1.1.1"
- is-string "^1.0.5"
+ is-string "^1.0.7"
array-union@^2.1.0:
version "2.1.0"
@@ -2633,13 +2683,13 @@ azure-devops-node-api@11.0.1:
tunnel "0.0.6"
typed-rest-client "^1.8.4"
-babel-jest@^27.2.4:
- version "27.2.4"
- resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-27.2.4.tgz#21ed6729d51bdd75470bbbf3c8b08d86209fb0dc"
- integrity sha512-f24OmxyWymk5jfgLdlCMu4fTs4ldxFBIdn5sJdhvGC1m08rSkJ5hYbWkNmfBSvE/DjhCVNSHXepxsI6THGfGsg==
+babel-jest@^27.2.5:
+ version "27.2.5"
+ resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-27.2.5.tgz#6bbbc1bb4200fe0bfd1b1fbcbe02fc62ebed16aa"
+ integrity sha512-GC9pWCcitBhSuF7H3zl0mftoKizlswaF0E3qi+rPL417wKkCB0d+Sjjb0OfXvxj7gWiBf497ldgRMii68Xz+2g==
dependencies:
- "@jest/transform" "^27.2.4"
- "@jest/types" "^27.2.4"
+ "@jest/transform" "^27.2.5"
+ "@jest/types" "^27.2.5"
"@types/babel__core" "^7.1.14"
babel-plugin-istanbul "^6.0.0"
babel-preset-jest "^27.2.0"
@@ -2832,15 +2882,15 @@ browser-process-hrtime@^1.0.0:
integrity sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow==
browserslist@^4.16.6:
- version "4.17.2"
- resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.17.2.tgz#aa15dbd2fab399a399fe4df601bb09363c5458a6"
- integrity sha512-jSDZyqJmkKMEMi7SZAgX5UltFdR5NAO43vY0AwTpu4X3sGH7GLLQ83KiUomgrnvZRCeW0yPPnKqnxPqQOER9zQ==
+ version "4.17.3"
+ resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.17.3.tgz#2844cd6eebe14d12384b0122d217550160d2d624"
+ integrity sha512-59IqHJV5VGdcJZ+GZ2hU5n4Kv3YiASzW6Xk5g9tf5a/MAzGeFwgGWU39fVzNIOVcgB3+Gp+kiQu0HEfTVU/3VQ==
dependencies:
- caniuse-lite "^1.0.30001261"
- electron-to-chromium "^1.3.854"
+ caniuse-lite "^1.0.30001264"
+ electron-to-chromium "^1.3.857"
escalade "^3.1.1"
- nanocolors "^0.2.12"
- node-releases "^1.1.76"
+ node-releases "^1.1.77"
+ picocolors "^0.2.1"
bs-logger@0.x:
version "0.2.6"
@@ -2978,10 +3028,10 @@ camelcase@^6.2.0:
resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-6.2.0.tgz#924af881c9d525ac9d87f40d964e5cea982a1809"
integrity sha512-c7wVvbw3f37nuobQNtgsgG9POC9qMbNuMQmTCqZv23b6MIz0fcYpBiOlv9gEN/hdLdnZTDQhg6e9Dq5M1vKvfg==
-caniuse-lite@^1.0.30001261:
- version "1.0.30001264"
- resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001264.tgz#88f625a60efb6724c7c62ac698bc8dbd9757e55b"
- integrity sha512-Ftfqqfcs/ePiUmyaySsQ4PUsdcYyXG2rfoBVsk3iY1ahHaJEw65vfb7Suzqm+cEkwwPIv/XWkg27iCpRavH4zA==
+caniuse-lite@^1.0.30001264:
+ version "1.0.30001265"
+ resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001265.tgz#0613c9e6c922e422792e6fcefdf9a3afeee4f8c3"
+ integrity sha512-YzBnspggWV5hep1m9Z6sZVLOt7vrju8xWooFAgN6BA5qvy98qPAPb7vNUzypFaoh2pb3vlfzbDO8tB57UPGbtw==
cardinal@^2.1.1:
version "2.1.1"
@@ -3329,14 +3379,14 @@ copy-descriptor@^0.1.0:
integrity sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=
core-js-pure@^3.16.0:
- version "3.18.1"
- resolved "https://registry.yarnpkg.com/core-js-pure/-/core-js-pure-3.18.1.tgz#097d34d24484be45cea700a448d1e74622646c80"
- integrity sha512-kmW/k8MaSuqpvA1xm2l3TVlBuvW+XBkcaOroFUpO3D4lsTGQWBTb/tBDCf/PNkkPLrwgrkQRIYNPB0CeqGJWGQ==
+ version "3.18.2"
+ resolved "https://registry.yarnpkg.com/core-js-pure/-/core-js-pure-3.18.2.tgz#d8cc11d4885ea919f3de776d45e720e4c769d406"
+ integrity sha512-4hMMLUlZhKJKOWbbGD1/VDUxGPEhEoN/T01k7bx271WiBKCvCfkgPzy0IeRS4PB50p6/N1q/SZL4B/TRsTE5bA==
core-js@^3.6.5:
- version "3.18.1"
- resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.18.1.tgz#289d4be2ce0085d40fc1244c0b1a54c00454622f"
- integrity sha512-vJlUi/7YdlCZeL6fXvWNaLUPh/id12WXj3MbkMw5uOyF0PfWPBNOCNbs53YqgrvtujLNlt9JQpruyIKkUZ+PKA==
+ version "3.18.2"
+ resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.18.2.tgz#63a551e8a29f305cd4123754846e65896619ba5b"
+ integrity sha512-zNhPOUoSgoizoSQFdX1MeZO16ORRb9FFQLts8gSYbZU5FcgXhp24iMWMxnOQo5uIaIG7/6FA/IqJPwev1o9ZXQ==
core-util-is@1.0.2:
version "1.0.2"
@@ -3415,9 +3465,9 @@ css-select@^4.1.3:
nth-check "^2.0.0"
css-what@^5.0.0, css-what@^5.0.1:
- version "5.0.1"
- resolved "https://registry.yarnpkg.com/css-what/-/css-what-5.0.1.tgz#3efa820131f4669a8ac2408f9c32e7c7de9f4cad"
- integrity sha512-FYDTSHb/7KXsWICVsxdmiExPjCfRC4qRFBdVwv7Ax9hMnvMmEjP9RfxTEZ3qPZGmADDn2vAKSo9UcN1jKVYscg==
+ version "5.1.0"
+ resolved "https://registry.yarnpkg.com/css-what/-/css-what-5.1.0.tgz#3f7b707aadf633baf62c2ceb8579b545bb40f7fe"
+ integrity sha512-arSMRWIIFY0hV8pIxZMEfmMI47Wj3R/aWpZDDxWYCPEiOMv6tfOrnpDtgxBYPEQD4V0Y/958+1TdC3iWTFcUPw==
cssom@^0.4.4:
version "0.4.4"
@@ -3765,10 +3815,10 @@ ecc-jsbn@~0.1.1:
jsbn "~0.1.0"
safer-buffer "^2.1.0"
-electron-to-chromium@^1.3.854:
- version "1.3.857"
- resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.857.tgz#dcc239ff8a12b6e4b501e6a5ad20fd0d5a3210f9"
- integrity sha512-a5kIr2lajm4bJ5E4D3fp8Y/BRB0Dx2VOcCRE5Gtb679mXIME/OFhWler8Gy2ksrf8gFX+EFCSIGA33FB3gqYpg==
+electron-to-chromium@^1.3.857:
+ version "1.3.864"
+ resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.864.tgz#6a993bcc196a2b8b3df84d28d5d4dd912393885f"
+ integrity sha512-v4rbad8GO6/yVI92WOeU9Wgxc4NA0n4f6P1FvZTY+jyY7JHEhw3bduYu60v3Q1h81Cg6eo4ApZrFPuycwd5hGw==
email-addresses@5.0.0:
version "5.0.0"
@@ -3868,7 +3918,7 @@ error-ex@^1.3.1:
dependencies:
is-arrayish "^0.2.1"
-es-abstract@^1.18.0-next.2, es-abstract@^1.18.2, es-abstract@^1.19.0, es-abstract@^1.19.1:
+es-abstract@^1.19.0, es-abstract@^1.19.1:
version "1.19.1"
resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.19.1.tgz#d4885796876916959de78edaa0df456627115ec3"
integrity sha512-2vJ6tjA/UfqLm2MPs7jxVybLoB8i1t1Jd9R3kISld20sIxPcTbLuggQOUxeWeAvIUkduv/CfMjuh4WmiXr2v9w==
@@ -4016,10 +4066,10 @@ eslint-plugin-import@2.24.2:
resolve "^1.20.0"
tsconfig-paths "^3.11.0"
-eslint-plugin-jest@24.5.0:
- version "24.5.0"
- resolved "https://registry.yarnpkg.com/eslint-plugin-jest/-/eslint-plugin-jest-24.5.0.tgz#a223a0040a19af749a161807254f0e47f5bfdcc3"
- integrity sha512-Cm+XdX7Nms2UXGRnivHFVcM3ZmlKheHvc9VD78iZLO1XcqB59WbVjrMSiesCbHDlToxWjMJDiJMgc1CzFE13Vg==
+eslint-plugin-jest@24.5.2:
+ version "24.5.2"
+ resolved "https://registry.yarnpkg.com/eslint-plugin-jest/-/eslint-plugin-jest-24.5.2.tgz#f71f98f27fd18b50f55246ca090f36d1730e36a6"
+ integrity sha512-lrI3sGAyZi513RRmP08sIW241Ti/zMnn/6wbE4ZBhb3M2pJ9ztaZMnSKSKKBUfotVdwqU8W1KtD8ao2/FR8DIg==
dependencies:
"@typescript-eslint/experimental-utils" "^4.0.1"
@@ -4214,16 +4264,16 @@ expect@^24.1.0:
jest-message-util "^24.9.0"
jest-regex-util "^24.9.0"
-expect@^27.2.4:
- version "27.2.4"
- resolved "https://registry.yarnpkg.com/expect/-/expect-27.2.4.tgz#4debf546050bcdad8914a8c95fec7662e02bf67c"
- integrity sha512-gOtuonQ8TCnbNNCSw2fhVzRf8EFYDII4nB5NmG4IEV0rbUnW1I5zXvoTntU4iicB/Uh0oZr20NGlOLdJiwsOZA==
+expect@^27.2.4, expect@^27.2.5:
+ version "27.2.5"
+ resolved "https://registry.yarnpkg.com/expect/-/expect-27.2.5.tgz#16154aaa60b4d9a5b0adacfea3e4d6178f4b93fd"
+ integrity sha512-ZrO0w7bo8BgGoP/bLz+HDCI+0Hfei9jUSZs5yI/Wyn9VkG9w8oJ7rHRgYj+MA7yqqFa0IwHA3flJzZtYugShJA==
dependencies:
- "@jest/types" "^27.2.4"
+ "@jest/types" "^27.2.5"
ansi-styles "^5.0.0"
jest-get-type "^27.0.6"
- jest-matcher-utils "^27.2.4"
- jest-message-util "^27.2.4"
+ jest-matcher-utils "^27.2.5"
+ jest-message-util "^27.2.5"
jest-regex-util "^27.0.6"
extend-shallow@^2.0.1:
@@ -4742,10 +4792,10 @@ grapheme-splitter@^1.0.4:
resolved "https://registry.yarnpkg.com/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz#9cf3a665c6247479896834af35cf1dbb4400767e"
integrity sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==
-graphql@15.6.0:
- version "15.6.0"
- resolved "https://registry.yarnpkg.com/graphql/-/graphql-15.6.0.tgz#e69323c6a9780a1a4b9ddf7e35ca8904bb04df02"
- integrity sha512-WJR872Zlc9hckiEPhXgyUftXH48jp2EjO5tgBBOyNMRJZ9fviL2mJBD6CAysk6N5S0r9BTs09Qk39nnJBkvOXQ==
+graphql@15.6.1:
+ version "15.6.1"
+ resolved "https://registry.yarnpkg.com/graphql/-/graphql-15.6.1.tgz#9125bdf057553525da251e19e96dab3d3855ddfc"
+ integrity sha512-3i5lu0z6dRvJ48QP9kFxBkJ7h4Kso7PS8eahyTFz5Jm6CvQfLtNIE8LX9N6JLnXTuwR+sIYnXzaWp6anOg0QQw==
handlebars@4.7.7, handlebars@^4.7.6:
version "4.7.7"
@@ -4867,11 +4917,6 @@ he@1.2.0:
resolved "https://registry.yarnpkg.com/he/-/he-1.2.0.tgz#84ae65fa7eafb165fddb61566ae14baf05664f0f"
integrity sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==
-highlight.js@^10.7.2:
- version "10.7.3"
- resolved "https://registry.yarnpkg.com/highlight.js/-/highlight.js-10.7.3.tgz#697272e3991356e40c3cac566a74eef681756531"
- integrity sha512-tzcUFauisWKNHaRkN4Wjl/ZA07gENAjFl3J/c480dprkGTg5EQstgaNFqBfUqCq54kZRIEcreTsAgF/m2quD7A==
-
hook-std@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/hook-std/-/hook-std-2.0.0.tgz#ff9aafdebb6a989a354f729bb6445cf4a3a7077c"
@@ -5021,9 +5066,9 @@ import-from@^4.0.0:
integrity sha512-P9J71vT5nLlDeV8FHs5nNxaLbrpfAV5cF5srvbZfpwpcJoM/xZR3hiv+q+SAnuSmuGbXMWud063iIMx/V/EWZQ==
import-local@^3.0.2:
- version "3.0.2"
- resolved "https://registry.yarnpkg.com/import-local/-/import-local-3.0.2.tgz#a8cfd0431d1de4a2199703d003e3e62364fa6db6"
- integrity sha512-vjL3+w0oulAVZ0hBHnxa/Nm5TAurf9YLQJDhqRZyqb+VKGOB6LU8t9H1Nr5CIo16vh9XfJTOoHwU0B71S557gA==
+ version "3.0.3"
+ resolved "https://registry.yarnpkg.com/import-local/-/import-local-3.0.3.tgz#4d51c2c495ca9393da259ec66b62e022920211e0"
+ integrity sha512-bE9iaUY3CXH8Cwfan/abDKAxe1KGT9kyGsBPqf6DMK/z0a2OzAsrukeYNgIH6cH5Xr452jb1TUL8rSfCLjZ9uA==
dependencies:
pkg-dir "^4.2.0"
resolve-cwd "^3.0.0"
@@ -5474,9 +5519,9 @@ issue-parser@^6.0.0:
lodash.uniqby "^4.7.0"
istanbul-lib-coverage@^3.0.0:
- version "3.0.1"
- resolved "https://registry.yarnpkg.com/istanbul-lib-coverage/-/istanbul-lib-coverage-3.0.1.tgz#e8900b3ed6069759229cf30f7067388d148aeb5e"
- integrity sha512-GvCYYTxaCPqwMjobtVcVKvSHtAGe48MNhGjpK8LtVF8K0ISX7hCKl85LgtuaSneWVyQmaGcW3iXVV3GaZSLpmQ==
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/istanbul-lib-coverage/-/istanbul-lib-coverage-3.0.0.tgz#f5944a37c70b550b02a78a5c3b2055b280cec8ec"
+ integrity sha512-UiUIqxMgRDET6eR+o5HbfRYP1l0hqkWOs7vNxC/mggutCMUIhWMm8gAHb8tHlyfD3/l6rlgNA5cKdDzEAf6hEg==
istanbul-lib-instrument@^4.0.0, istanbul-lib-instrument@^4.0.3:
version "4.0.3"
@@ -5507,9 +5552,9 @@ istanbul-lib-source-maps@^4.0.0:
source-map "^0.6.1"
istanbul-reports@^3.0.2:
- version "3.0.2"
- resolved "https://registry.yarnpkg.com/istanbul-reports/-/istanbul-reports-3.0.2.tgz#d593210e5000683750cb09fc0644e4b6e27fd53b"
- integrity sha512-9tZvz7AiR3PEDNGiV9vIouQ/EAcqMXFmkcA1CDFTwOB98OZVDL0PH9glHotf5Ugp6GCOTypfzGWI/OqjWNCRUw==
+ version "3.0.3"
+ resolved "https://registry.yarnpkg.com/istanbul-reports/-/istanbul-reports-3.0.3.tgz#974d682037f6d12b15dc55f9a2a5f8f1ea923831"
+ integrity sha512-0i77ZFLsb9U3DHi22WzmIngVzfoyxxbQcZRqlF3KoKmCJGq9nhFHoGi8FqBztN2rE8w6hURnZghetn0xpkVb6A==
dependencies:
html-escaper "^2.0.0"
istanbul-lib-report "^3.0.0"
@@ -5519,84 +5564,84 @@ java-properties@^1.0.0:
resolved "https://registry.yarnpkg.com/java-properties/-/java-properties-1.0.2.tgz#ccd1fa73907438a5b5c38982269d0e771fe78211"
integrity sha512-qjdpeo2yKlYTH7nFdK0vbZWuTCesk4o63v5iVOlhMQPfuIZQfW/HI35SjfhA+4qpg36rnFSvUK5b1m+ckIblQQ==
-jest-changed-files@^27.2.4:
- version "27.2.4"
- resolved "https://registry.yarnpkg.com/jest-changed-files/-/jest-changed-files-27.2.4.tgz#d7de46e90e5a599c47e260760f5ab53516e835e6"
- integrity sha512-eeO1C1u4ex7pdTroYXezr+rbr957myyVoKGjcY4R1TJi3A+9v+4fu1Iv9J4eLq1bgFyT3O3iRWU9lZsEE7J72Q==
+jest-changed-files@^27.2.5:
+ version "27.2.5"
+ resolved "https://registry.yarnpkg.com/jest-changed-files/-/jest-changed-files-27.2.5.tgz#9dfd550d158260bcb6fa80aff491f5647f7daeca"
+ integrity sha512-jfnNJzF89csUKRPKJ4MwZ1SH27wTmX2xiAIHUHrsb/OYd9Jbo4/SXxJ17/nnx6RIifpthk3Y+LEeOk+/dDeGdw==
dependencies:
- "@jest/types" "^27.2.4"
+ "@jest/types" "^27.2.5"
execa "^5.0.0"
throat "^6.0.1"
-jest-circus@^27.2.4:
- version "27.2.4"
- resolved "https://registry.yarnpkg.com/jest-circus/-/jest-circus-27.2.4.tgz#3bd898a29dcaf6a506f3f1b780dff5f67ca83c23"
- integrity sha512-TtheheTElrGjlsY9VxkzUU1qwIx05ItIusMVKnvNkMt4o/PeegLRcjq3Db2Jz0GGdBalJdbzLZBgeulZAJxJWA==
+jest-circus@^27.2.5:
+ version "27.2.5"
+ resolved "https://registry.yarnpkg.com/jest-circus/-/jest-circus-27.2.5.tgz#573256a6fb6e447ac2fc7e0ade9375013309037f"
+ integrity sha512-eyL9IcrAxm3Saq3rmajFCwpaxaRMGJ1KJs+7hlTDinXpJmeR3P02bheM3CYohE7UfwOBmrFMJHjgo/WPcLTM+Q==
dependencies:
- "@jest/environment" "^27.2.4"
- "@jest/test-result" "^27.2.4"
- "@jest/types" "^27.2.4"
+ "@jest/environment" "^27.2.5"
+ "@jest/test-result" "^27.2.5"
+ "@jest/types" "^27.2.5"
"@types/node" "*"
chalk "^4.0.0"
co "^4.6.0"
dedent "^0.7.0"
- expect "^27.2.4"
+ expect "^27.2.5"
is-generator-fn "^2.0.0"
- jest-each "^27.2.4"
- jest-matcher-utils "^27.2.4"
- jest-message-util "^27.2.4"
- jest-runtime "^27.2.4"
- jest-snapshot "^27.2.4"
- jest-util "^27.2.4"
- pretty-format "^27.2.4"
+ jest-each "^27.2.5"
+ jest-matcher-utils "^27.2.5"
+ jest-message-util "^27.2.5"
+ jest-runtime "^27.2.5"
+ jest-snapshot "^27.2.5"
+ jest-util "^27.2.5"
+ pretty-format "^27.2.5"
slash "^3.0.0"
stack-utils "^2.0.3"
throat "^6.0.1"
jest-cli@^27.2.4:
- version "27.2.4"
- resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-27.2.4.tgz#acda7f367aa6e674723fc1a7334e0ae1799448d2"
- integrity sha512-4kpQQkg74HYLaXo3nzwtg4PYxSLgL7puz1LXHj5Tu85KmlIpxQFjRkXlx4V47CYFFIDoyl3rHA/cXOxUWyMpNg==
+ version "27.2.5"
+ resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-27.2.5.tgz#88718c8f05f1c0f209152952ecd61afe4c3311bb"
+ integrity sha512-XzfcOXi5WQrXqFYsDxq5RDOKY4FNIgBgvgf3ZBz4e/j5/aWep5KnsAYH5OFPMdX/TP/LFsYQMRH7kzJUMh6JKg==
dependencies:
- "@jest/core" "^27.2.4"
- "@jest/test-result" "^27.2.4"
- "@jest/types" "^27.2.4"
+ "@jest/core" "^27.2.5"
+ "@jest/test-result" "^27.2.5"
+ "@jest/types" "^27.2.5"
chalk "^4.0.0"
exit "^0.1.2"
graceful-fs "^4.2.4"
import-local "^3.0.2"
- jest-config "^27.2.4"
- jest-util "^27.2.4"
- jest-validate "^27.2.4"
+ jest-config "^27.2.5"
+ jest-util "^27.2.5"
+ jest-validate "^27.2.5"
prompts "^2.0.1"
yargs "^16.2.0"
-jest-config@^27.2.4:
- version "27.2.4"
- resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-27.2.4.tgz#0204969f5ae2e5190d47be2c14c04d631b7836e2"
- integrity sha512-tWy0UxhdzqiKyp4l5Vq4HxLyD+gH5td+GCF3c22/DJ0bYAOsMo+qi2XtbJI6oYMH5JOJQs9nLW/r34nvFCehjA==
+jest-config@^27.2.5:
+ version "27.2.5"
+ resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-27.2.5.tgz#c2e4ec6ea2bf4ffd2cae3d927999fe6159cba207"
+ integrity sha512-QdENtn9b5rIIYGlbDNEcgY9LDL5kcokJnXrp7x8AGjHob/XFqw1Z6p+gjfna2sUulQsQ3ce2Fvntnv+7fKYDhQ==
dependencies:
"@babel/core" "^7.1.0"
- "@jest/test-sequencer" "^27.2.4"
- "@jest/types" "^27.2.4"
- babel-jest "^27.2.4"
+ "@jest/test-sequencer" "^27.2.5"
+ "@jest/types" "^27.2.5"
+ babel-jest "^27.2.5"
chalk "^4.0.0"
deepmerge "^4.2.2"
glob "^7.1.1"
graceful-fs "^4.2.4"
is-ci "^3.0.0"
- jest-circus "^27.2.4"
- jest-environment-jsdom "^27.2.4"
- jest-environment-node "^27.2.4"
+ jest-circus "^27.2.5"
+ jest-environment-jsdom "^27.2.5"
+ jest-environment-node "^27.2.5"
jest-get-type "^27.0.6"
- jest-jasmine2 "^27.2.4"
+ jest-jasmine2 "^27.2.5"
jest-regex-util "^27.0.6"
- jest-resolve "^27.2.4"
- jest-runner "^27.2.4"
- jest-util "^27.2.4"
- jest-validate "^27.2.4"
+ jest-resolve "^27.2.5"
+ jest-runner "^27.2.5"
+ jest-util "^27.2.5"
+ jest-validate "^27.2.5"
micromatch "^4.0.4"
- pretty-format "^27.2.4"
+ pretty-format "^27.2.5"
jest-diff@^24.9.0:
version "24.9.0"
@@ -5608,15 +5653,15 @@ jest-diff@^24.9.0:
jest-get-type "^24.9.0"
pretty-format "^24.9.0"
-jest-diff@^27.0.0, jest-diff@^27.2.4:
- version "27.2.4"
- resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-27.2.4.tgz#171c51d3d2c105c457100fee6e7bf7cee51c8d8c"
- integrity sha512-bLAVlDSCR3gqUPGv+4nzVpEXGsHh98HjUL7Vb2hVyyuBDoQmja8eJb0imUABsuxBeUVmf47taJSAd9nDrwWKEg==
+jest-diff@^27.0.0, jest-diff@^27.2.5:
+ version "27.2.5"
+ resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-27.2.5.tgz#908f7a6aca5653824516ad30e0a9fd9767e53623"
+ integrity sha512-7gfwwyYkeslOOVQY4tVq5TaQa92mWfC9COsVYMNVYyJTOYAqbIkoD3twi5A+h+tAPtAelRxkqY6/xu+jwTr0dA==
dependencies:
chalk "^4.0.0"
diff-sequences "^27.0.6"
jest-get-type "^27.0.6"
- pretty-format "^27.2.4"
+ pretty-format "^27.2.5"
jest-docblock@^27.0.6:
version "27.0.6"
@@ -5625,41 +5670,41 @@ jest-docblock@^27.0.6:
dependencies:
detect-newline "^3.0.0"
-jest-each@^27.2.4:
- version "27.2.4"
- resolved "https://registry.yarnpkg.com/jest-each/-/jest-each-27.2.4.tgz#b4f280aafd63129ba82e345f0e74c5a10200aeef"
- integrity sha512-w9XVc+0EDBUTJS4xBNJ7N2JCcWItFd006lFjz77OarAQcQ10eFDBMrfDv2GBJMKlXe9aq0HrIIF51AXcZrRJyg==
+jest-each@^27.2.5:
+ version "27.2.5"
+ resolved "https://registry.yarnpkg.com/jest-each/-/jest-each-27.2.5.tgz#378118d516db730b92096a9607b8711165946353"
+ integrity sha512-HUPWIbJT0bXarRwKu/m7lYzqxR4GM5EhKOsu0z3t0SKtbFN6skQhpAUADM4qFShBXb9zoOuag5lcrR1x/WM+Ag==
dependencies:
- "@jest/types" "^27.2.4"
+ "@jest/types" "^27.2.5"
chalk "^4.0.0"
jest-get-type "^27.0.6"
- jest-util "^27.2.4"
- pretty-format "^27.2.4"
+ jest-util "^27.2.5"
+ pretty-format "^27.2.5"
-jest-environment-jsdom@^27.2.4:
- version "27.2.4"
- resolved "https://registry.yarnpkg.com/jest-environment-jsdom/-/jest-environment-jsdom-27.2.4.tgz#39ae80bbb8675306bfaf0440be1e5f877554539a"
- integrity sha512-X70pTXFSypD7AIzKT1mLnDi5hP9w9mdTRcOGOmoDoBrNyNEg4rYm6d4LQWFLc9ps1VnMuDOkFSG0wjSNYGjkng==
+jest-environment-jsdom@^27.2.5:
+ version "27.2.5"
+ resolved "https://registry.yarnpkg.com/jest-environment-jsdom/-/jest-environment-jsdom-27.2.5.tgz#21de3ad0e89441d961b592ba7561b16241279208"
+ integrity sha512-QtRpOh/RQKuXniaWcoFE2ElwP6tQcyxHu0hlk32880g0KczdonCs5P1sk5+weu/OVzh5V4Bt1rXuQthI01mBLg==
dependencies:
- "@jest/environment" "^27.2.4"
- "@jest/fake-timers" "^27.2.4"
- "@jest/types" "^27.2.4"
+ "@jest/environment" "^27.2.5"
+ "@jest/fake-timers" "^27.2.5"
+ "@jest/types" "^27.2.5"
"@types/node" "*"
- jest-mock "^27.2.4"
- jest-util "^27.2.4"
+ jest-mock "^27.2.5"
+ jest-util "^27.2.5"
jsdom "^16.6.0"
-jest-environment-node@^27.2.4:
- version "27.2.4"
- resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-27.2.4.tgz#b79f98cb36e0c9111aac859c9c99f04eb2f74ff6"
- integrity sha512-ZbVbFSnbzTvhLOIkqh5lcLuGCCFvtG4xTXIRPK99rV2KzQT3kNg16KZwfTnLNlIiWCE8do960eToeDfcqmpSAw==
+jest-environment-node@^27.2.5:
+ version "27.2.5"
+ resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-27.2.5.tgz#ffa1afb3604c640ec841f044d526c65912e02cef"
+ integrity sha512-0o1LT4grm7iwrS8fIoLtwJxb/hoa3GsH7pP10P02Jpj7Mi4BXy65u46m89vEM2WfD1uFJQ2+dfDiWZNA2e6bJg==
dependencies:
- "@jest/environment" "^27.2.4"
- "@jest/fake-timers" "^27.2.4"
- "@jest/types" "^27.2.4"
+ "@jest/environment" "^27.2.5"
+ "@jest/fake-timers" "^27.2.5"
+ "@jest/types" "^27.2.5"
"@types/node" "*"
- jest-mock "^27.2.4"
- jest-util "^27.2.4"
+ jest-mock "^27.2.5"
+ jest-util "^27.2.5"
jest-extended@0.11.5:
version "0.11.5"
@@ -5692,12 +5737,12 @@ jest-github-actions-reporter@1.0.3:
dependencies:
"@actions/core" "^1.2.0"
-jest-haste-map@^27.2.4:
- version "27.2.4"
- resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-27.2.4.tgz#f8974807bedf07348ca9fd24e5861ab7c8e61aba"
- integrity sha512-bkJ4bT00T2K+1NZXbRcyKnbJ42I6QBvoDNMTAQQDBhaGNnZreiQKUNqax0e6hLTx7E75pKDeltVu3V1HAdu+YA==
+jest-haste-map@^27.2.4, jest-haste-map@^27.2.5:
+ version "27.2.5"
+ resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-27.2.5.tgz#0247b7299250643472bbcf5b4ad85c72d5178e2e"
+ integrity sha512-pzO+Gw2WLponaSi0ilpzYBE0kuVJstoXBX8YWyUebR8VaXuX4tzzn0Zp23c/WaETo7XYTGv2e8KdnpiskAFMhQ==
dependencies:
- "@jest/types" "^27.2.4"
+ "@jest/types" "^27.2.5"
"@types/graceful-fs" "^4.1.2"
"@types/node" "*"
anymatch "^3.0.3"
@@ -5705,35 +5750,35 @@ jest-haste-map@^27.2.4:
graceful-fs "^4.2.4"
jest-regex-util "^27.0.6"
jest-serializer "^27.0.6"
- jest-util "^27.2.4"
- jest-worker "^27.2.4"
+ jest-util "^27.2.5"
+ jest-worker "^27.2.5"
micromatch "^4.0.4"
walker "^1.0.7"
optionalDependencies:
fsevents "^2.3.2"
-jest-jasmine2@^27.2.4:
- version "27.2.4"
- resolved "https://registry.yarnpkg.com/jest-jasmine2/-/jest-jasmine2-27.2.4.tgz#4a1608133dbdb4d68b5929bfd785503ed9c9ba51"
- integrity sha512-fcffjO/xLWLVnW2ct3No4EksxM5RyPwHDYu9QU+90cC+/eSMLkFAxS55vkqsxexOO5zSsZ3foVpMQcg/amSeIQ==
+jest-jasmine2@^27.2.5:
+ version "27.2.5"
+ resolved "https://registry.yarnpkg.com/jest-jasmine2/-/jest-jasmine2-27.2.5.tgz#baaf96c69913c52bce0100000cf0721027c0fd66"
+ integrity sha512-hdxY9Cm/CjLqu2tXeAoQHPgA4vcqlweVXYOg1+S9FeFdznB9Rti+eEBKDDkmOy9iqr4Xfbq95OkC4NFbXXPCAQ==
dependencies:
"@babel/traverse" "^7.1.0"
- "@jest/environment" "^27.2.4"
+ "@jest/environment" "^27.2.5"
"@jest/source-map" "^27.0.6"
- "@jest/test-result" "^27.2.4"
- "@jest/types" "^27.2.4"
+ "@jest/test-result" "^27.2.5"
+ "@jest/types" "^27.2.5"
"@types/node" "*"
chalk "^4.0.0"
co "^4.6.0"
- expect "^27.2.4"
+ expect "^27.2.5"
is-generator-fn "^2.0.0"
- jest-each "^27.2.4"
- jest-matcher-utils "^27.2.4"
- jest-message-util "^27.2.4"
- jest-runtime "^27.2.4"
- jest-snapshot "^27.2.4"
- jest-util "^27.2.4"
- pretty-format "^27.2.4"
+ jest-each "^27.2.5"
+ jest-matcher-utils "^27.2.5"
+ jest-message-util "^27.2.5"
+ jest-runtime "^27.2.5"
+ jest-snapshot "^27.2.5"
+ jest-util "^27.2.5"
+ pretty-format "^27.2.5"
throat "^6.0.1"
jest-junit@12.3.0:
@@ -5746,13 +5791,13 @@ jest-junit@12.3.0:
uuid "^8.3.2"
xml "^1.0.1"
-jest-leak-detector@^27.2.4:
- version "27.2.4"
- resolved "https://registry.yarnpkg.com/jest-leak-detector/-/jest-leak-detector-27.2.4.tgz#9bb7eab26a73bb280e9298be8d80f389288ec8f1"
- integrity sha512-SrcHWbe0EHg/bw2uBjVoHacTo5xosl068x2Q0aWsjr2yYuW2XwqrSkZV4lurUop0jhv1709ymG4or+8E4sH27Q==
+jest-leak-detector@^27.2.5:
+ version "27.2.5"
+ resolved "https://registry.yarnpkg.com/jest-leak-detector/-/jest-leak-detector-27.2.5.tgz#e2edc3b37d38e8d9a527e10e456b403c3151b206"
+ integrity sha512-HYsi3GUR72bYhOGB5C5saF9sPdxGzSjX7soSQS+BqDRysc7sPeBwPbhbuT8DnOpijnKjgwWQ8JqvbmReYnt3aQ==
dependencies:
jest-get-type "^27.0.6"
- pretty-format "^27.2.4"
+ pretty-format "^27.2.5"
jest-matcher-utils@^22.0.0:
version "22.4.3"
@@ -5773,15 +5818,15 @@ jest-matcher-utils@^24.9.0:
jest-get-type "^24.9.0"
pretty-format "^24.9.0"
-jest-matcher-utils@^27.2.4:
- version "27.2.4"
- resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-27.2.4.tgz#008fff018151415ad1b6cfc083fd70fe1e012525"
- integrity sha512-nQeLfFAIPPkyhkDfifAPfP/U5wm1x0fLtAzqXZSSKckXDNuk2aaOfQiDYv1Mgf5GY6yOsxfUnvNm3dDjXM+BXw==
+jest-matcher-utils@^27.2.5:
+ version "27.2.5"
+ resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-27.2.5.tgz#4684faaa8eb32bf15e6edaead6834031897e2980"
+ integrity sha512-qNR/kh6bz0Dyv3m68Ck2g1fLW5KlSOUNcFQh87VXHZwWc/gY6XwnKofx76Qytz3x5LDWT09/2+yXndTkaG4aWg==
dependencies:
chalk "^4.0.0"
- jest-diff "^27.2.4"
+ jest-diff "^27.2.5"
jest-get-type "^27.0.6"
- pretty-format "^27.2.4"
+ pretty-format "^27.2.5"
jest-message-util@^24.9.0:
version "24.9.0"
@@ -5797,18 +5842,18 @@ jest-message-util@^24.9.0:
slash "^2.0.0"
stack-utils "^1.0.1"
-jest-message-util@^27.2.4:
- version "27.2.4"
- resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-27.2.4.tgz#667e8c0f2b973156d1bac7398a7f677705cafaca"
- integrity sha512-wbKT/BNGnBVB9nzi+IoaLkXt6fbSvqUxx+IYY66YFh96J3goY33BAaNG3uPqaw/Sh/FR9YpXGVDfd5DJdbh4nA==
+jest-message-util@^27.2.5:
+ version "27.2.5"
+ resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-27.2.5.tgz#ed8b7b0965247bb875a49c1f9b9ab2d1d0820028"
+ integrity sha512-ggXSLoPfIYcbmZ8glgEJZ8b+e0Msw/iddRmgkoO7lDAr9SmI65IIfv7VnvTnV4FGnIIUIjzM+fHRHO5RBvyAbQ==
dependencies:
"@babel/code-frame" "^7.12.13"
- "@jest/types" "^27.2.4"
+ "@jest/types" "^27.2.5"
"@types/stack-utils" "^2.0.0"
chalk "^4.0.0"
graceful-fs "^4.2.4"
micromatch "^4.0.4"
- pretty-format "^27.2.4"
+ pretty-format "^27.2.5"
slash "^3.0.0"
stack-utils "^2.0.3"
@@ -5819,12 +5864,12 @@ jest-mock-extended@2.0.4:
dependencies:
ts-essentials "^7.0.3"
-jest-mock@^27.2.4:
- version "27.2.4"
- resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-27.2.4.tgz#c8f0ef33f73d8ff53e3f60b16d59f1128f4072ae"
- integrity sha512-iVRU905rutaAoUcrt5Tm1JoHHWi24YabqEGXjPJI4tAyA6wZ7mzDi3GrZ+M7ebgWBqUkZE93GAx1STk7yCMIQA==
+jest-mock@^27.2.5:
+ version "27.2.5"
+ resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-27.2.5.tgz#0ec38d5ff1e49c4802e7a4a8179e8d7a2fd84de0"
+ integrity sha512-HiMB3LqE9RzmeMzZARi2Bz3NoymxyP0gCid4y42ca1djffNtYFKgI220aC1VP1mUZ8rbpqZbHZOJ15093bZV/Q==
dependencies:
- "@jest/types" "^27.2.4"
+ "@jest/types" "^27.2.5"
"@types/node" "*"
jest-pnp-resolver@^1.2.2:
@@ -5842,72 +5887,72 @@ jest-regex-util@^27.0.6:
resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-27.0.6.tgz#02e112082935ae949ce5d13b2675db3d8c87d9c5"
integrity sha512-SUhPzBsGa1IKm8hx2F4NfTGGp+r7BXJ4CulsZ1k2kI+mGLG+lxGrs76veN2LF/aUdGosJBzKgXmNCw+BzFqBDQ==
-jest-resolve-dependencies@^27.2.4:
- version "27.2.4"
- resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-27.2.4.tgz#20c41cc02b66aa45169b282356ec73b133013089"
- integrity sha512-i5s7Uh9B3Q6uwxLpMhNKlgBf6pcemvWaORxsW1zNF/YCY3jd5EftvnGBI+fxVwJ1CBxkVfxqCvm1lpZkbaoGmg==
+jest-resolve-dependencies@^27.2.5:
+ version "27.2.5"
+ resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-27.2.5.tgz#fcd8eca005b3d11ba32da443045c028164b83be1"
+ integrity sha512-BSjefped31bcvvCh++/pN9ueqqN1n0+p8/58yScuWfklLm2tbPbS9d251vJhAy0ZI2pL/0IaGhOTJrs9Y4FJlg==
dependencies:
- "@jest/types" "^27.2.4"
+ "@jest/types" "^27.2.5"
jest-regex-util "^27.0.6"
- jest-snapshot "^27.2.4"
+ jest-snapshot "^27.2.5"
-jest-resolve@^27.2.4:
- version "27.2.4"
- resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-27.2.4.tgz#d3b999f073ff84a8ae109ce99ff7f3223048701a"
- integrity sha512-IsAO/3+3BZnKjI2I4f3835TBK/90dxR7Otgufn3mnrDFTByOSXclDi3G2XJsawGV4/18IMLARJ+V7Wm7t+J89Q==
+jest-resolve@^27.2.4, jest-resolve@^27.2.5:
+ version "27.2.5"
+ resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-27.2.5.tgz#04dadbfc1312a2541f5c199c5011945e9cfe5cef"
+ integrity sha512-q5irwS3oS73SKy3+FM/HL2T7WJftrk9BRzrXF92f7net5HMlS7lJMg/ZwxLB4YohKqjSsdksEw7n/jvMxV7EKg==
dependencies:
- "@jest/types" "^27.2.4"
+ "@jest/types" "^27.2.5"
chalk "^4.0.0"
escalade "^3.1.1"
graceful-fs "^4.2.4"
- jest-haste-map "^27.2.4"
+ jest-haste-map "^27.2.5"
jest-pnp-resolver "^1.2.2"
- jest-util "^27.2.4"
- jest-validate "^27.2.4"
+ jest-util "^27.2.5"
+ jest-validate "^27.2.5"
resolve "^1.20.0"
slash "^3.0.0"
-jest-runner@^27.2.4:
- version "27.2.4"
- resolved "https://registry.yarnpkg.com/jest-runner/-/jest-runner-27.2.4.tgz#d816f4cb4af04f3cba703afcf5a35a335b77cad4"
- integrity sha512-hIo5PPuNUyVDidZS8EetntuuJbQ+4IHWxmHgYZz9FIDbG2wcZjrP6b52uMDjAEQiHAn8yn8ynNe+TL8UuGFYKg==
+jest-runner@^27.2.5:
+ version "27.2.5"
+ resolved "https://registry.yarnpkg.com/jest-runner/-/jest-runner-27.2.5.tgz#3d9d0626f351480bb2cffcfbbfac240c0097ebd4"
+ integrity sha512-n41vw9RLg5TKAnEeJK9d6pGOsBOpwE89XBniK+AD1k26oIIy3V7ogM1scbDjSheji8MUPC9pNgCrZ/FHLVDNgg==
dependencies:
- "@jest/console" "^27.2.4"
- "@jest/environment" "^27.2.4"
- "@jest/test-result" "^27.2.4"
- "@jest/transform" "^27.2.4"
- "@jest/types" "^27.2.4"
+ "@jest/console" "^27.2.5"
+ "@jest/environment" "^27.2.5"
+ "@jest/test-result" "^27.2.5"
+ "@jest/transform" "^27.2.5"
+ "@jest/types" "^27.2.5"
"@types/node" "*"
chalk "^4.0.0"
emittery "^0.8.1"
exit "^0.1.2"
graceful-fs "^4.2.4"
jest-docblock "^27.0.6"
- jest-environment-jsdom "^27.2.4"
- jest-environment-node "^27.2.4"
- jest-haste-map "^27.2.4"
- jest-leak-detector "^27.2.4"
- jest-message-util "^27.2.4"
- jest-resolve "^27.2.4"
- jest-runtime "^27.2.4"
- jest-util "^27.2.4"
- jest-worker "^27.2.4"
+ jest-environment-jsdom "^27.2.5"
+ jest-environment-node "^27.2.5"
+ jest-haste-map "^27.2.5"
+ jest-leak-detector "^27.2.5"
+ jest-message-util "^27.2.5"
+ jest-resolve "^27.2.5"
+ jest-runtime "^27.2.5"
+ jest-util "^27.2.5"
+ jest-worker "^27.2.5"
source-map-support "^0.5.6"
throat "^6.0.1"
-jest-runtime@^27.2.4:
- version "27.2.4"
- resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-27.2.4.tgz#170044041e5d30625ab8d753516bbe503f213a5c"
- integrity sha512-ICKzzYdjIi70P17MZsLLIgIQFCQmIjMFf+xYww3aUySiUA/QBPUTdUqo5B2eg4HOn9/KkUsV0z6GVgaqAPBJvg==
+jest-runtime@^27.2.5:
+ version "27.2.5"
+ resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-27.2.5.tgz#d144c3f6889b927aae1e695b63a41a3323b7016b"
+ integrity sha512-N0WRZ3QszKyZ3Dm27HTBbBuestsSd3Ud5ooVho47XZJ8aSKO/X1Ag8M1dNx9XzfGVRNdB/xCA3lz8MJwIzPLLA==
dependencies:
- "@jest/console" "^27.2.4"
- "@jest/environment" "^27.2.4"
- "@jest/fake-timers" "^27.2.4"
- "@jest/globals" "^27.2.4"
+ "@jest/console" "^27.2.5"
+ "@jest/environment" "^27.2.5"
+ "@jest/fake-timers" "^27.2.5"
+ "@jest/globals" "^27.2.5"
"@jest/source-map" "^27.0.6"
- "@jest/test-result" "^27.2.4"
- "@jest/transform" "^27.2.4"
- "@jest/types" "^27.2.4"
+ "@jest/test-result" "^27.2.5"
+ "@jest/transform" "^27.2.5"
+ "@jest/types" "^27.2.5"
"@types/yargs" "^16.0.0"
chalk "^4.0.0"
cjs-module-lexer "^1.0.0"
@@ -5916,14 +5961,14 @@ jest-runtime@^27.2.4:
exit "^0.1.2"
glob "^7.1.3"
graceful-fs "^4.2.4"
- jest-haste-map "^27.2.4"
- jest-message-util "^27.2.4"
- jest-mock "^27.2.4"
+ jest-haste-map "^27.2.5"
+ jest-message-util "^27.2.5"
+ jest-mock "^27.2.5"
jest-regex-util "^27.0.6"
- jest-resolve "^27.2.4"
- jest-snapshot "^27.2.4"
- jest-util "^27.2.4"
- jest-validate "^27.2.4"
+ jest-resolve "^27.2.5"
+ jest-snapshot "^27.2.5"
+ jest-util "^27.2.5"
+ jest-validate "^27.2.5"
slash "^3.0.0"
strip-bom "^4.0.0"
yargs "^16.2.0"
@@ -5944,10 +5989,10 @@ jest-silent-reporter@0.5.0:
chalk "^4.0.0"
jest-util "^26.0.0"
-jest-snapshot@^27.2.4:
- version "27.2.4"
- resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-27.2.4.tgz#277b2269437e3ffcb91d95a73b24becf33c5a871"
- integrity sha512-5DFxK31rYS8X8C6WXsFx8XxrxW3PGa6+9IrUcZdTLg1aEyXDGIeiBh4jbwvh655bg/9vTETbEj/njfZicHTZZw==
+jest-snapshot@^27.2.5:
+ version "27.2.5"
+ resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-27.2.5.tgz#8a612fe31e2967f58ad364542198dff61f92ef32"
+ integrity sha512-2/Jkn+VN6Abwz0llBltZaiJMnL8b1j5Bp/gRIxe9YR3FCEh9qp0TXVV0dcpTGZ8AcJV1SZGQkczewkI9LP5yGw==
dependencies:
"@babel/core" "^7.7.2"
"@babel/generator" "^7.7.2"
@@ -5955,23 +6000,23 @@ jest-snapshot@^27.2.4:
"@babel/plugin-syntax-typescript" "^7.7.2"
"@babel/traverse" "^7.7.2"
"@babel/types" "^7.0.0"
- "@jest/transform" "^27.2.4"
- "@jest/types" "^27.2.4"
+ "@jest/transform" "^27.2.5"
+ "@jest/types" "^27.2.5"
"@types/babel__traverse" "^7.0.4"
"@types/prettier" "^2.1.5"
babel-preset-current-node-syntax "^1.0.0"
chalk "^4.0.0"
- expect "^27.2.4"
+ expect "^27.2.5"
graceful-fs "^4.2.4"
- jest-diff "^27.2.4"
+ jest-diff "^27.2.5"
jest-get-type "^27.0.6"
- jest-haste-map "^27.2.4"
- jest-matcher-utils "^27.2.4"
- jest-message-util "^27.2.4"
- jest-resolve "^27.2.4"
- jest-util "^27.2.4"
+ jest-haste-map "^27.2.5"
+ jest-matcher-utils "^27.2.5"
+ jest-message-util "^27.2.5"
+ jest-resolve "^27.2.5"
+ jest-util "^27.2.5"
natural-compare "^1.4.0"
- pretty-format "^27.2.4"
+ pretty-format "^27.2.5"
semver "^7.3.2"
jest-util@^26.0.0:
@@ -5986,47 +6031,47 @@ jest-util@^26.0.0:
is-ci "^2.0.0"
micromatch "^4.0.2"
-jest-util@^27.0.0, jest-util@^27.2.4:
- version "27.2.4"
- resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-27.2.4.tgz#3d7ce081b2e7f4cfe0156452ac01f3cb456cc656"
- integrity sha512-mW++4u+fSvAt3YBWm5IpbmRAceUqa2B++JlUZTiuEt2AmNYn0Yw5oay4cP17TGsMINRNPSGiJ2zNnX60g+VbFg==
+jest-util@^27.0.0, jest-util@^27.2.4, jest-util@^27.2.5:
+ version "27.2.5"
+ resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-27.2.5.tgz#88740c4024d223634a82ce7c2263e8bc6df3b3ba"
+ integrity sha512-QRhDC6XxISntMzFRd/OQ6TGsjbzA5ONO0tlAj2ElHs155x1aEr0rkYJBEysG6H/gZVH3oGFzCdAB/GA8leh8NQ==
dependencies:
- "@jest/types" "^27.2.4"
+ "@jest/types" "^27.2.5"
"@types/node" "*"
chalk "^4.0.0"
graceful-fs "^4.2.4"
is-ci "^3.0.0"
picomatch "^2.2.3"
-jest-validate@^27.2.4:
- version "27.2.4"
- resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-27.2.4.tgz#b66d462b2fb93d7e16a47d1aa8763d5600bf2cfa"
- integrity sha512-VMtbxbkd7LHnIH7PChdDtrluCFRJ4b1YV2YJzNwwsASMWftq/HgqiqjvptBOWyWOtevgO3f14wPxkPcLlVBRog==
+jest-validate@^27.2.5:
+ version "27.2.5"
+ resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-27.2.5.tgz#2d59bf1627d180f395ba58f24599b0ee0efcfbdf"
+ integrity sha512-XgYtjS89nhVe+UfkbLgcm+GgXKWgL80t9nTcNeejyO3t0Sj/yHE8BtIJqjZu9NXQksYbGImoQRXmQ1gP+Guffw==
dependencies:
- "@jest/types" "^27.2.4"
+ "@jest/types" "^27.2.5"
camelcase "^6.2.0"
chalk "^4.0.0"
jest-get-type "^27.0.6"
leven "^3.1.0"
- pretty-format "^27.2.4"
+ pretty-format "^27.2.5"
-jest-watcher@^27.2.4:
- version "27.2.4"
- resolved "https://registry.yarnpkg.com/jest-watcher/-/jest-watcher-27.2.4.tgz#b1d5c39ab94f59f4f35f66cc96f7761a10e0cfc4"
- integrity sha512-LXC/0+dKxhK7cfF7reflRYlzDIaQE+fL4ynhKhzg8IMILNMuI4xcjXXfUJady7OR4/TZeMg7X8eHx8uan9vqaQ==
+jest-watcher@^27.2.5:
+ version "27.2.5"
+ resolved "https://registry.yarnpkg.com/jest-watcher/-/jest-watcher-27.2.5.tgz#41cd3e64dc5bea8a4327083d71ba7667be400567"
+ integrity sha512-umV4qGozg2Dn6DTTtqAh9puPw+DGLK9AQas7+mWjiK8t0fWMpxKg8ZXReZw7L4C88DqorsGUiDgwHNZ+jkVrkQ==
dependencies:
- "@jest/test-result" "^27.2.4"
- "@jest/types" "^27.2.4"
+ "@jest/test-result" "^27.2.5"
+ "@jest/types" "^27.2.5"
"@types/node" "*"
ansi-escapes "^4.2.1"
chalk "^4.0.0"
- jest-util "^27.2.4"
+ jest-util "^27.2.5"
string-length "^4.0.1"
-jest-worker@^27.2.4:
- version "27.2.4"
- resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-27.2.4.tgz#881455df75e22e7726a53f43703ab74d6b36f82d"
- integrity sha512-Zq9A2Pw59KkVjBBKD1i3iE2e22oSjXhUKKuAK1HGX8flGwkm6NMozyEYzKd41hXc64dbd/0eWFeEEuxqXyhM+g==
+jest-worker@^27.2.4, jest-worker@^27.2.5:
+ version "27.2.5"
+ resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-27.2.5.tgz#ed42865661959488aa020e8a325df010597c36d4"
+ integrity sha512-HTjEPZtcNKZ4LnhSp02NEH4vE+5OpJ0EsOWYvGQpHgUMLngydESAAMH5Wd/asPf29+XUDQZszxpLg1BkIIA2aw==
dependencies:
"@types/node" "*"
merge-stream "^2.0.0"
@@ -6283,28 +6328,28 @@ libnpmdiff@*:
tar "^6.1.0"
libnpmexec@*:
- version "2.0.1"
- resolved "https://registry.yarnpkg.com/libnpmexec/-/libnpmexec-2.0.1.tgz#729ae3e15a3ba225964ccf248117a75d311eeb73"
- integrity sha512-4SqBB7eJvJWmUKNF42Q5qTOn20DRjEE4TgvEh2yneKlAiRlwlhuS9MNR45juWwmoURJlf2K43bozlVt7OZiIOw==
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/libnpmexec/-/libnpmexec-3.0.0.tgz#ab1a32403363d837df97807cf142e6d1c768db3b"
+ integrity sha512-qyt0gSMSHeHIqb/a+vcryfw3VXfNNgle8jK9QVnrNQAyoDvyVQ6auyoB3ycqWPIl2swTEXPEVremSUaDzOiEgw==
dependencies:
- "@npmcli/arborist" "^2.3.0"
+ "@npmcli/arborist" "^3.0.0"
"@npmcli/ci-detect" "^1.3.0"
- "@npmcli/run-script" "^1.8.4"
+ "@npmcli/run-script" "^2.0.0"
chalk "^4.1.0"
mkdirp-infer-owner "^2.0.0"
npm-package-arg "^8.1.2"
- pacote "^11.3.1"
+ pacote "^12.0.0"
proc-log "^1.0.0"
read "^1.0.7"
read-package-json-fast "^2.0.2"
walk-up-path "^1.0.0"
libnpmfund@*:
- version "1.1.0"
- resolved "https://registry.yarnpkg.com/libnpmfund/-/libnpmfund-1.1.0.tgz#ee91313905b3194b900530efa339bc3f9fc4e5c4"
- integrity sha512-Kfmh3pLS5/RGKG5WXEig8mjahPVOxkik6lsbH4iX0si1xxNi6eeUh/+nF1MD+2cgalsQif3O5qyr6mNz2ryJrQ==
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/libnpmfund/-/libnpmfund-2.0.0.tgz#2e9f683d6456604e57d83f8cda7db02cfda5b7df"
+ integrity sha512-A89Mp+VcbVS2IzXlTJxcAEJEulVX7pvCB+NFqWKRIaqIncwGku1u8b0h8Qp9IUHrvzzzJiJxJmMYCXmlf6xFxw==
dependencies:
- "@npmcli/arborist" "^2.5.0"
+ "@npmcli/arborist" "^3.0.0"
libnpmhook@*:
version "6.0.3"
@@ -6323,13 +6368,13 @@ libnpmorg@*:
npm-registry-fetch "^11.0.0"
libnpmpack@*:
- version "2.0.1"
- resolved "https://registry.yarnpkg.com/libnpmpack/-/libnpmpack-2.0.1.tgz#d3eac25cc8612f4e7cdeed4730eee339ba51c643"
- integrity sha512-He4/jxOwlaQ7YG7sIC1+yNeXeUDQt8RLBvpI68R3RzPMZPa4/VpxhlDo8GtBOBDYoU8eq6v1wKL38sq58u4ibQ==
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/libnpmpack/-/libnpmpack-3.0.0.tgz#b1cdf182106bc0d25910e79bb5c9b6c23cd71670"
+ integrity sha512-W6lt4blkR9YXu/qOrFknfnKBajz/1GvAc5q1XcWTGuBJn2DYKDWHtA7x1fuMQdn7hKDBOPlZ/Aqll+ZvAnrM6g==
dependencies:
- "@npmcli/run-script" "^1.8.3"
+ "@npmcli/run-script" "^2.0.0"
npm-package-arg "^8.1.0"
- pacote "^11.2.6"
+ pacote "^12.0.0"
libnpmpublish@*:
version "4.0.2"
@@ -6358,12 +6403,12 @@ libnpmteam@*:
npm-registry-fetch "^11.0.0"
libnpmversion@*:
- version "1.2.1"
- resolved "https://registry.yarnpkg.com/libnpmversion/-/libnpmversion-1.2.1.tgz#689aa7fe0159939b3cbbf323741d34976f4289e9"
- integrity sha512-AA7x5CFgBFN+L4/JWobnY5t4OAHjQuPbAwUYJ7/NtHuyLut5meb+ne/aj0n7PWNiTGCJcRw/W6Zd2LoLT7EZuQ==
+ version "2.0.1"
+ resolved "https://registry.yarnpkg.com/libnpmversion/-/libnpmversion-2.0.1.tgz#20b1425d88cd99c66806a54b458d2d654066b550"
+ integrity sha512-uFGtNTe/m0GOIBQCE4ryIsgGNJdeShW+qvYtKNLCCuiG7JY3YEslL/maFFZbaO4wlQa/oj1t0Bm9TyjahvtgQQ==
dependencies:
"@npmcli/git" "^2.0.7"
- "@npmcli/run-script" "^1.8.4"
+ "@npmcli/run-script" "^2.0.0"
json-parse-even-better-errors "^2.3.1"
semver "^7.3.5"
stringify-package "^1.0.1"
@@ -7007,11 +7052,6 @@ nan@^2.14.0, nan@^2.14.2:
resolved "https://registry.yarnpkg.com/nan/-/nan-2.15.0.tgz#3f34a473ff18e15c1b5626b62903b5ad6e665fee"
integrity sha512-8ZtvEnA2c5aYCZYd1cvgdnU6cqwixRoYg70xPLWUws5ORTa/lnw+u4amixRS/Ac5U5mQVgp9pnlSUnbNWFaWZQ==
-nanocolors@^0.2.12:
- version "0.2.12"
- resolved "https://registry.yarnpkg.com/nanocolors/-/nanocolors-0.2.12.tgz#4d05932e70116078673ea4cc6699a1c56cc77777"
- integrity sha512-SFNdALvzW+rVlzqexid6epYdt8H9Zol7xDoQarioEFcFN0JHo4CYNztAxmtfgGTVRCmFlEOqqhBpoFGKqSAMug==
-
nanoid@^2.1.0:
version "2.1.11"
resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-2.1.11.tgz#ec24b8a758d591561531b4176a01e3ab4f0f0280"
@@ -7138,7 +7178,7 @@ node-modules-regexp@^1.0.0:
resolved "https://registry.yarnpkg.com/node-modules-regexp/-/node-modules-regexp-1.0.0.tgz#8d9dbe28964a4ac5712e9131642107c71e90ec40"
integrity sha1-jZ2+KJZKSsVxLpExZCEHxx6Q7EA=
-node-releases@^1.1.76:
+node-releases@^1.1.77:
version "1.1.77"
resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.77.tgz#50b0cfede855dd374e7585bf228ff34e57c1c32e"
integrity sha512-rB1DUFUNAN4Gn9keO2K1efO35IDK7yKHCdCaIMvFO7yUYmmZYeDjnGKle26G4rwj+LKRQpjyUUvMkPglwGCYNQ==
@@ -7290,10 +7330,11 @@ npm-user-validate@*:
integrity sha512-uQwcd/tY+h1jnEaze6cdX/LrhWhoBxfSknxentoqmIuStxUExxjWd3ULMLFPiFUrZKbOVMowH6Jq2FRWfmhcEw==
npm@^7.0.0:
- version "7.24.1"
- resolved "https://registry.yarnpkg.com/npm/-/npm-7.24.1.tgz#4d23670f46c828e88f6b853497d2a896e8fac41b"
- integrity sha512-U7/C++ZgB3zNH/kzhSJMnp3pO2iLrZRGUUXAgCCLB/by+sR+dKVhP/ik9+sTOGk9wk3zbmwHAYDT8igkv1ss0g==
+ version "7.24.2"
+ resolved "https://registry.yarnpkg.com/npm/-/npm-7.24.2.tgz#861117af8241bea592289f22407230e5300e59ca"
+ integrity sha512-120p116CE8VMMZ+hk8IAb1inCPk4Dj3VZw29/n2g6UI77urJKVYb7FZUDW8hY+EBnfsjI/2yrobBgFyzo7YpVQ==
dependencies:
+ "@isaacs/string-locale-compare" "*"
"@npmcli/arborist" "*"
"@npmcli/ci-detect" "*"
"@npmcli/config" "*"
@@ -7464,13 +7505,13 @@ object.pick@^1.3.0:
isobject "^3.0.1"
object.values@^1.1.4:
- version "1.1.4"
- resolved "https://registry.yarnpkg.com/object.values/-/object.values-1.1.4.tgz#0d273762833e816b693a637d30073e7051535b30"
- integrity sha512-TnGo7j4XSnKQoK3MfvkzqKCi0nVe/D9I9IjwTNYdb/fxYHpjrluHVOgw0AF6jrRFGMPHdfuidR09tIDiIvnaSg==
+ version "1.1.5"
+ resolved "https://registry.yarnpkg.com/object.values/-/object.values-1.1.5.tgz#959f63e3ce9ef108720333082131e4a459b716ac"
+ integrity sha512-QUZRW0ilQ3PnPpbNtgdNV1PDbEqLIiSFB3l+EnGtBQ/8SUTLj1PZwtQHABZtLgwpJZTSZhuGLOGk57Drx2IvYg==
dependencies:
call-bind "^1.0.2"
define-properties "^1.1.3"
- es-abstract "^1.18.2"
+ es-abstract "^1.19.1"
once@^1.3.0, once@^1.3.1, once@^1.4.0:
version "1.4.0"
@@ -7655,7 +7696,32 @@ p-try@^2.0.0:
resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6"
integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==
-pacote@*, pacote@^11.1.11, pacote@^11.2.6, pacote@^11.3.0, pacote@^11.3.1, pacote@^11.3.5:
+pacote@*, pacote@^12.0.0:
+ version "12.0.0"
+ resolved "https://registry.yarnpkg.com/pacote/-/pacote-12.0.0.tgz#5bf4491f3301ffe459290b26a518bf536e8bcc52"
+ integrity sha512-5DnYqZU0w7GIskuc5yXii1kKpQS2fsaxCaI0FXRsMULXB06lXnZpRdV7JC1TTcQN5uy62h4VWS4WMPYGWu3MYg==
+ dependencies:
+ "@npmcli/git" "^2.1.0"
+ "@npmcli/installed-package-contents" "^1.0.6"
+ "@npmcli/promise-spawn" "^1.2.0"
+ "@npmcli/run-script" "^2.0.0"
+ cacache "^15.0.5"
+ chownr "^2.0.0"
+ fs-minipass "^2.1.0"
+ infer-owner "^1.0.4"
+ minipass "^3.1.3"
+ mkdirp "^1.0.3"
+ npm-package-arg "^8.0.1"
+ npm-packlist "^2.1.4"
+ npm-pick-manifest "^6.0.0"
+ npm-registry-fetch "^11.0.0"
+ promise-retry "^2.0.1"
+ read-package-json-fast "^2.0.1"
+ rimraf "^3.0.2"
+ ssri "^8.0.1"
+ tar "^6.1.0"
+
+pacote@^11.3.0:
version "11.3.5"
resolved "https://registry.yarnpkg.com/pacote/-/pacote-11.3.5.tgz#73cf1fc3772b533f575e39efa96c50be8c3dc9d2"
integrity sha512-fT375Yczn4zi+6Hkk2TBe1x1sP8FgFsEIZ2/iWaXY2r/NkhDJfxbcn5paz1+RTFCyNf+dPnaoBDJoAxXSU8Bkg==
@@ -7820,6 +7886,11 @@ performance-now@^2.1.0:
resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b"
integrity sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=
+picocolors@^0.2.1:
+ version "0.2.1"
+ resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-0.2.1.tgz#570670f793646851d1ba135996962abad587859f"
+ integrity sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==
+
picomatch@^2.0.4, picomatch@^2.2.3:
version "2.3.0"
resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.0.tgz#f1f061de8f6a4bf022892e2d128234fb98302972"
@@ -7919,12 +7990,12 @@ pretty-format@^24.9.0:
ansi-styles "^3.2.0"
react-is "^16.8.4"
-pretty-format@^27.0.0, pretty-format@^27.2.4:
- version "27.2.4"
- resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-27.2.4.tgz#08ea39c5eab41b082852d7093059a091f6ddc748"
- integrity sha512-NUjw22WJHldzxyps2YjLZkUj6q1HvjqFezkB9Y2cklN8NtVZN/kZEXGZdFw4uny3oENzV5EEMESrkI0YDUH8vg==
+pretty-format@^27.0.0, pretty-format@^27.2.5:
+ version "27.2.5"
+ resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-27.2.5.tgz#7cfe2a8e8f01a5b5b29296a0b70f4140df0830c5"
+ integrity sha512-+nYn2z9GgicO9JiqmY25Xtq8SYfZ/5VCpEU3pppHHNAhd1y+ZXxmNPd1evmNcAd6Hz4iBV2kf0UpGth5A/VJ7g==
dependencies:
- "@jest/types" "^27.2.4"
+ "@jest/types" "^27.2.5"
ansi-regex "^5.0.1"
ansi-styles "^5.0.0"
react-is "^17.0.1"
@@ -8002,9 +8073,9 @@ promiseback@^2.0.2:
promise-deferred "^2.0.3"
prompts@^2.0.1:
- version "2.4.1"
- resolved "https://registry.yarnpkg.com/prompts/-/prompts-2.4.1.tgz#befd3b1195ba052f9fd2fde8a486c4e82ee77f61"
- integrity sha512-EQyfIuO2hPDsX1L/blblV+H7I0knhgAd82cVneCwcdND9B8AuCDuRcBH6yIcG4dFzlOUqbazQqwGjx5xmsNLuQ==
+ version "2.4.2"
+ resolved "https://registry.yarnpkg.com/prompts/-/prompts-2.4.2.tgz#7b57e73b3a48029ad10ebd44f74b01722a4cb069"
+ integrity sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==
dependencies:
kleur "^3.0.3"
sisteransi "^1.0.5"
@@ -8712,10 +8783,10 @@ slice-ansi@^4.0.0:
astral-regex "^2.0.0"
is-fullwidth-code-point "^3.0.0"
-slugify@1.6.0:
- version "1.6.0"
- resolved "https://registry.yarnpkg.com/slugify/-/slugify-1.6.0.tgz#6bdf8ed01dabfdc46425b67e3320b698832ff893"
- integrity sha512-FkMq+MQc5hzYgM86nLuHI98Acwi3p4wX+a5BO9Hhw4JdK4L7WueIiZ4tXEobImPqBz2sVcV0+Mu3GRB30IGang==
+slugify@1.6.1:
+ version "1.6.1"
+ resolved "https://registry.yarnpkg.com/slugify/-/slugify-1.6.1.tgz#a5fcaef29f4e57c6e932ce7044b6ffd9cf81b641"
+ integrity sha512-5ofqMTbetNhxlzjYYLBaZFQd6oiTuSkQlyfPEFIMwgUABlZQ0hbk5xIV9Ydd5jghWeRoO7GkiJliUvTpLOjNRA==
smart-buffer@^4.1.0:
version "4.2.0"
@@ -9004,13 +9075,13 @@ string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3:
strip-ansi "^6.0.1"
string.prototype.padend@^3.0.0:
- version "3.1.2"
- resolved "https://registry.yarnpkg.com/string.prototype.padend/-/string.prototype.padend-3.1.2.tgz#6858ca4f35c5268ebd5e8615e1327d55f59ee311"
- integrity sha512-/AQFLdYvePENU3W5rgurfWSMU6n+Ww8n/3cUt7E+vPBB/D7YDG8x+qjoFs4M/alR2bW7Qg6xMjVwWUOvuQ0XpQ==
+ version "3.1.3"
+ resolved "https://registry.yarnpkg.com/string.prototype.padend/-/string.prototype.padend-3.1.3.tgz#997a6de12c92c7cb34dc8a201a6c53d9bd88a5f1"
+ integrity sha512-jNIIeokznm8SD/TZISQsZKYu7RJyheFNt84DUPrh482GC8RVp2MKqm2O5oBRdGxbDQoXrhhWtPIWQOiy20svUg==
dependencies:
call-bind "^1.0.2"
define-properties "^1.1.3"
- es-abstract "^1.18.0-next.2"
+ es-abstract "^1.19.1"
string.prototype.trimend@^1.0.4:
version "1.0.4"