diff --git a/.devcontainer/Dockerfile b/.devcontainer/Dockerfile
index dcf83c5037b3a0..b207507887d8c5 100644
--- a/.devcontainer/Dockerfile
+++ b/.devcontainer/Dockerfile
@@ -1 +1,5 @@
-FROM ghcr.io/containerbase/devcontainer:13.7.2
+FROM ghcr.io/containerbase/devcontainer:13.7.7
+
+# https://github.com/pnpm/pnpm/issues/8971
+# renovate: datasource=npm
+RUN install-tool pnpm 9.15.4
diff --git a/.devcontainer/post-create.sh b/.devcontainer/post-create.sh
index eae5da872d27d6..f368a583156f47 100755
--- a/.devcontainer/post-create.sh
+++ b/.devcontainer/post-create.sh
@@ -7,4 +7,4 @@ if [[ "${CODESPACES}" == true ]]; then
sudo chmod 1777 /tmp
fi
-COREPACK_ENABLE_DOWNLOAD_PROMPT=0 pnpm install
+pnpm install --reporter append-only --aggregate-output
diff --git a/.github/label-actions.yml b/.github/label-actions.yml
index d19aae3bbf4636..21115a3b3f0635 100644
--- a/.github/label-actions.yml
+++ b/.github/label-actions.yml
@@ -100,16 +100,6 @@
- ### Insufficient logs
-
- Select me to read instructions
-
-
- If you already gave us a log, and the Renovate team said it's not enough, then follow the instructions from the **No logs at all** section.
-
-
-
-
### Formatting your logs
Select me to read instructions
@@ -137,12 +127,31 @@
The Renovate team
+'auto:logs-insufficient':
+ comment: >
+ Hi there,
+
+
+ The logs you provided are insufficient to help you.
+
+
+ Please provide more logs, or more detailed logs, so we can help you. Be sure to include _DEBUG_ logs, and don't excessively redact or truncate them.
+
+
+ If you feel the logs are too large to paste here, please use a service like [GitHub Gist](https://gist.github.com/) and paste the link here.
+
+
+ Read the [Renovate docs, Troubleshooting](https://docs.renovatebot.com/troubleshooting/) to learn more about getting the correct logs.
+
+
+ Thanks, the Renovate team
+
'auto:logs-packages':
comment: >
Hi there,
- A maintainer wants you to find and share a specific log message (`packageFiles with updates`) from your repository or environment.
+ Please locate the debug message `packageFiles with updates` in your logs and paste the contents here. Depending on your question, we may need the full list of packages or only one.
If you self-host Renovate: make sure you run Renovate with `LOG_LEVEL=debug` to get the debug log messages! Next, open the debug-level logs and search for `packageFiles with updates`. This text marks the start of a structured log message that shows every package file, dependency, and update that Renovate found.
@@ -531,3 +540,25 @@
Thanks, the Renovate team
+
+'auto:inactive-pr':
+ comment: >
+ Hi there,
+
+
+ This PR appears to have been inactive for a while. Please let us know if you are still working on it, or if we can close it for now.
+
+
+ Thanks, the Renovate team
+
+'auto:close-inactive-pr':
+ comment: >
+ Hi there,
+
+
+ We're closing this PR due to inactivity, but we are happy for you, or others, to finish the PR if time allows.
+
+
+ Thanks, the Renovate team
+
+ close: true
diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml
index 61bf9af519c178..dc740a461c9b83 100644
--- a/.github/workflows/build.yml
+++ b/.github/workflows/build.yml
@@ -700,7 +700,7 @@ jobs:
node-version: ${{ needs.setup-build.outputs.node-version }}
os: ${{ runner.os }}
- - uses: sigstore/cosign-installer@dc72c7d5c4d10cd6bcb8cf6e3fd625a9e5e537da # v3.7.0
+ - uses: sigstore/cosign-installer@c56c2d3e59e4281cc41dea2217323ba5694b171e # v3.8.0
- name: Docker registry login
run: |
diff --git a/docs/development/local-development.md b/docs/development/local-development.md
index 43e0b0ae7f513d..5bdfdef3dcc18f 100644
--- a/docs/development/local-development.md
+++ b/docs/development/local-development.md
@@ -12,7 +12,7 @@ You need the following dependencies for local development:
- Git `>=2.45.1`
- Node.js `^20.15.1`
-- pnpm `^9.0.0` (use corepack)
+- pnpm `^9.0.0`
- C++ compiler
We recommend you use the version of Node.js defined in the repository's `.nvmrc` or use [Volta](https://volta.sh/) to manage your tool versions.
@@ -26,12 +26,12 @@ You can use the following commands on Ubuntu.
curl -sL https://deb.nodesource.com/setup_20.x | sudo -E bash -
sudo apt-get update
sudo apt-get install -y git build-essential nodejs
-corepack enable
+npm install -g pnpm@latest-10
```
#### Nix
-To enter a development shell with the necessary packages, run `nix-shell --packages gcc gitFull nodejs` and then `corepack enable`.
+To enter a development shell with the necessary packages, run `nix-shell --packages gcc gitFull nodejs` and then `npm install -global pnpm@latest-10`.
#### Windows
@@ -41,7 +41,7 @@ If you already installed a part, skip the corresponding step.
- Install [Git](https://git-scm.com/downloads). Make sure you've [configured your username and email](https://git-scm.com/book/en/v2/Getting-Started-First-Time-Git-Setup)
- Install [Node.js LTS](https://nodejs.org/en/download/)
- In an Administrator PowerShell prompt, run `npm install -global npm` and then `npm --debug install --global windows-build-tools`
-- Enable corepack with: `corepack enable`
+- Install pnpm with: `npm install -global pnpm@latest-10`
You can see what versions you're using like this:
diff --git a/docs/usage/configuration-options.md b/docs/usage/configuration-options.md
index 2691ea9ed826fe..987fdfa0293f1f 100644
--- a/docs/usage/configuration-options.md
+++ b/docs/usage/configuration-options.md
@@ -849,7 +849,7 @@ It will be compiled using Handlebars and the regex `groups` result.
It specifies the syntax of the package file that's managed by the custom `jsonata` manager.
This setting helps the system correctly parse and interpret the configuration file's contents.
-Only the `json` and `yaml` format is supported.
+Only the `json` and `yaml` formats are supported.
`yaml` files are parsed as multi document YAML files.
```json title="Parsing a JSON file with a custom manager"
@@ -3849,6 +3849,16 @@ The field supports multiple URLs but it is datasource-dependent on whether only
Add to this object if you wish to define rules that apply only to PRs that replace dependencies.
+## replacementApproach
+
+For `npm` manager when `replacementApproach=alias` then instead of replacing `"foo": "1.2.3"` with `"@my/foo": "1.2.4"` we would instead replace it with `"foo": "npm:@my/foo@1.2.4"`.
+
+```json
+{
+ "replacementApproach": "alias"
+}
+```
+
## respectLatest
Similar to `ignoreUnstable`, this option controls whether to update to versions that are greater than the version tagged as `latest` in the repository.
diff --git a/docs/usage/docker.md b/docs/usage/docker.md
index 5a89606e671beb..6a9a9f2b973be7 100644
--- a/docs/usage/docker.md
+++ b/docs/usage/docker.md
@@ -478,7 +478,7 @@ Make sure to install the Google Cloud SDK into the custom image, as you need the
For example:
```Dockerfile
-FROM renovate/renovate:39.134.0
+FROM renovate/renovate:39.156.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/docs/usage/examples/opentelemetry.md b/docs/usage/examples/opentelemetry.md
index 6225f08569db35..8bae3a25715464 100644
--- a/docs/usage/examples/opentelemetry.md
+++ b/docs/usage/examples/opentelemetry.md
@@ -36,7 +36,7 @@ services:
otel-collector:
# Using the Contrib version to access the spanmetrics connector.
# If you don't need the spanmetrics connector, you can use the standard version
- image: otel/opentelemetry-collector-contrib:0.118.0
+ image: otel/opentelemetry-collector-contrib:0.119.0
volumes:
- ./otel-collector-config.yml:/etc/otelcol-contrib/config.yaml
ports:
diff --git a/docs/usage/examples/self-hosting.md b/docs/usage/examples/self-hosting.md
index a333b13848e609..95360482f062d7 100644
--- a/docs/usage/examples/self-hosting.md
+++ b/docs/usage/examples/self-hosting.md
@@ -25,8 +25,8 @@ It builds `latest` based on the `main` branch and all SemVer tags are published
```sh title="Example of valid tags"
docker run --rm renovate/renovate
docker run --rm renovate/renovate:39
-docker run --rm renovate/renovate:39.134
-docker run --rm renovate/renovate:39.134.0
+docker run --rm renovate/renovate:39.156
+docker run --rm renovate/renovate:39.156.2
```
@@ -62,7 +62,7 @@ spec:
- name: renovate
# Update this to the latest available and then enable Renovate on
# the manifest
- image: renovate/renovate:39.134.0
+ image: renovate/renovate:39.156.2
args:
- user/repo
# Environment Variables
@@ -121,7 +121,7 @@ spec:
template:
spec:
containers:
- - image: renovate/renovate:39.134.0
+ - image: renovate/renovate:39.156.2
name: renovate-bot
env: # For illustration purposes, please use secrets.
- name: RENOVATE_PLATFORM
@@ -367,7 +367,7 @@ spec:
containers:
- name: renovate
# Update this to the latest available and then enable Renovate on the manifest
- image: renovate/renovate:39.134.0
+ image: renovate/renovate:39.156.2
volumeMounts:
- name: ssh-key-volume
readOnly: true
diff --git a/docs/usage/self-hosted-configuration.md b/docs/usage/self-hosted-configuration.md
index 2f0f680b5f6a04..b33a68677c2e40 100644
--- a/docs/usage/self-hosted-configuration.md
+++ b/docs/usage/self-hosted-configuration.md
@@ -770,7 +770,6 @@ To handle the case where the underlying Git processes appear to hang, configure
## gitUrl
Override the default resolution for Git remote, e.g. to switch GitLab from HTTPS to SSH-based.
-Currently works for Bitbucket Server and GitLab only.
Possible values:
diff --git a/docs/usage/self-hosted-experimental.md b/docs/usage/self-hosted-experimental.md
index a16acf51baf1d3..d7945675aaac95 100644
--- a/docs/usage/self-hosted-experimental.md
+++ b/docs/usage/self-hosted-experimental.md
@@ -99,7 +99,7 @@ If set to any value, Renovate will download `nupkg` files for determining packag
## `RENOVATE_X_PLATFORM_VERSION`
-Specify this string for Renovate to skip API checks and provide GitLab/Bitbucket server version directly.
+Specify this string for Renovate to skip API checks and provide GitLab/Gitea and Forgejo/Bitbucket server version directly.
Particularly useful with GitLab's `CI_JOB_TOKEN` to authenticate Renovate or to reduce API calls for Bitbucket.
Read [platform details](modules/platform/gitlab/index.md) to learn why we need the server version on GitLab.
diff --git a/lib/config/options/index.ts b/lib/config/options/index.ts
index c5ad124c28110c..79cc61f495b4c6 100644
--- a/lib/config/options/index.ts
+++ b/lib/config/options/index.ts
@@ -1465,6 +1465,16 @@ const options: RenovateOptions[] = [
cli: false,
env: false,
},
+ {
+ name: 'replacementApproach',
+ description:
+ 'Select whether to perform a direct replacement or alias replacement.',
+ type: 'string',
+ stage: 'branch',
+ allowedValues: ['replace', 'alias'],
+ supportedManagers: ['npm'],
+ default: 'replace',
+ },
{
name: 'matchConfidence',
description:
@@ -2904,7 +2914,7 @@ const options: RenovateOptions[] = [
description:
'Overrides the default resolution for Git remote, e.g. to switch GitLab from HTTPS to SSH-based.',
type: 'string',
- supportedPlatforms: ['gitlab', 'bitbucket-server'],
+ supportedPlatforms: ['gitea', 'gitlab', 'bitbucket-server'],
allowedValues: ['default', 'ssh', 'endpoint'],
default: 'default',
stage: 'repository',
diff --git a/lib/config/types.ts b/lib/config/types.ts
index d3c38f602112a3..f3d5a481e5fc57 100644
--- a/lib/config/types.ts
+++ b/lib/config/types.ts
@@ -463,6 +463,16 @@ export interface RenovateOptionBase {
* For internal use only: add it to any config option of type integer that supports negative integers
*/
allowNegative?: boolean;
+
+ /**
+ * Managers which support this option, leave undefined if all managers support it.
+ */
+ supportedManagers?: string[];
+
+ /**
+ * Platforms which support this option, leave undefined if all platforms support it.
+ */
+ supportedPlatforms?: PlatformId[];
}
export interface RenovateArrayOption<
@@ -472,35 +482,25 @@ export interface RenovateArrayOption<
mergeable?: boolean;
type: 'array';
subType?: 'string' | 'object' | 'number';
- supportedManagers?: string[] | 'all';
- supportedPlatforms?: string[] | 'all';
}
export interface RenovateStringArrayOption extends RenovateArrayOption {
format?: 'regex';
subType: 'string';
- supportedManagers?: string[] | 'all';
- supportedPlatforms?: string[] | 'all';
}
export interface RenovateNumberArrayOption extends RenovateArrayOption {
subType: 'number';
- supportedManagers?: string[] | 'all';
- supportedPlatforms?: string[] | 'all';
}
export interface RenovateBooleanOption extends RenovateOptionBase {
default?: boolean | null;
type: 'boolean';
- supportedManagers?: string[] | 'all';
- supportedPlatforms?: string[] | 'all';
}
export interface RenovateIntegerOption extends RenovateOptionBase {
default?: number | null;
type: 'integer';
- supportedManagers?: string[] | 'all';
- supportedPlatforms?: string[] | 'all';
}
export interface RenovateStringOption extends RenovateOptionBase {
@@ -510,8 +510,6 @@ export interface RenovateStringOption extends RenovateOptionBase {
// Not used
replaceLineReturns?: boolean;
type: 'string';
- supportedManagers?: string[] | 'all';
- supportedPlatforms?: string[] | 'all';
}
export interface RenovateObjectOption extends RenovateOptionBase {
@@ -519,8 +517,6 @@ export interface RenovateObjectOption extends RenovateOptionBase {
additionalProperties?: Record | boolean;
mergeable?: boolean;
type: 'object';
- supportedManagers?: string[] | 'all';
- supportedPlatforms?: string[] | 'all';
}
export type RenovateOptions =
diff --git a/lib/data/monorepo.json b/lib/data/monorepo.json
index e35e42f1af885d..0ab42cab1780e9 100644
--- a/lib/data/monorepo.json
+++ b/lib/data/monorepo.json
@@ -463,6 +463,7 @@
"orleans": "https://github.com/dotnet/orleans",
"panda-css": "https://github.com/chakra-ui/panda",
"parcel": "https://github.com/parcel-bundler/parcel",
+ "payloadcms": "https://github.com/payloadcms/payload",
"percy-cli": "https://github.com/percy/cli",
"picassojs": "https://github.com/qlik-oss/picasso.js",
"pixijs": [
diff --git a/lib/modules/manager/azure-pipelines/readme.md b/lib/modules/manager/azure-pipelines/readme.md
index 952462a64103ee..0f68fa5249f4a4 100644
--- a/lib/modules/manager/azure-pipelines/readme.md
+++ b/lib/modules/manager/azure-pipelines/readme.md
@@ -44,7 +44,7 @@ resources:
- container: linux
image: ubuntu:24.04
- container: python
- image: python:3.13@sha256:137ae4b9f85671bd912a82a19b6966e2655f73e13579b5d6ad4edbddaaf62a9c
+ image: python:3.13@sha256:7be9b757ea8fa90b43efd604dd5ef2923364230f00564b2ea7f0982d24b374c9
stages:
- stage: StageOne
diff --git a/lib/modules/manager/gradle/extract.spec.ts b/lib/modules/manager/gradle/extract.spec.ts
index 25c24846e3805c..65995556f365cc 100644
--- a/lib/modules/manager/gradle/extract.spec.ts
+++ b/lib/modules/manager/gradle/extract.spec.ts
@@ -1,7 +1,8 @@
import { codeBlock } from 'common-tags';
import { Fixtures } from '../../../../test/fixtures';
import { fs, logger, partial } from '../../../../test/util';
-import type { ExtractConfig } from '../types';
+import type { ExtractConfig, PackageDependency } from '../types';
+import { matchesContentDescriptor } from './extract';
import * as parser from './parser';
import { extractAllPackageFiles } from '.';
@@ -494,6 +495,215 @@ describe('modules/manager/gradle/extract', () => {
},
]);
});
+
+ describe('content descriptors', () => {
+ describe('simple descriptor matches', () => {
+ it.each`
+ input | output | descriptor
+ ${'foo:bar:1.2.3'} | ${true} | ${undefined}
+ ${'foo:bar:1.2.3'} | ${true} | ${[{ mode: 'include', matcher: 'simple', groupId: 'foo' }]}
+ ${'foo:bar:1.2.3'} | ${false} | ${[{ mode: 'exclude', matcher: 'simple', groupId: 'foo' }]}
+ ${'foo:bar:1.2.3'} | ${false} | ${[{ mode: 'include', matcher: 'simple', groupId: 'bar' }]}
+ ${'foo:bar:1.2.3'} | ${true} | ${[{ mode: 'include', matcher: 'simple', groupId: 'foo', artifactId: 'bar' }]}
+ ${'foo:bar:1.2.3'} | ${false} | ${[{ mode: 'exclude', matcher: 'simple', groupId: 'foo', artifactId: 'bar' }]}
+ ${'foo:bar:1.2.3'} | ${false} | ${[{ mode: 'include', matcher: 'simple', groupId: 'foo', artifactId: 'baz' }]}
+ ${'foo:bar:1.2.3'} | ${true} | ${[{ mode: 'include', matcher: 'simple', groupId: 'foo', artifactId: 'bar', version: '1.2.3' }]}
+ ${'foo:bar:1.2.3'} | ${false} | ${[{ mode: 'exclude', matcher: 'simple', groupId: 'foo', artifactId: 'bar', version: '1.2.3' }]}
+ ${'foo:bar:1.2.3'} | ${true} | ${[{ mode: 'include', matcher: 'simple', groupId: 'foo', artifactId: 'bar', version: '1.2.+' }]}
+ ${'foo:bar:1.2.3'} | ${false} | ${[{ mode: 'include', matcher: 'simple', groupId: 'foo', artifactId: 'baz', version: '4.5.6' }]}
+ ${'foo:bar:1.2.3'} | ${true} | ${[{ mode: 'include', matcher: 'subgroup', groupId: 'foo' }]}
+ ${'foo.bar.baz:qux:1.2.3'} | ${true} | ${[{ mode: 'include', matcher: 'subgroup', groupId: 'foo.bar.baz' }]}
+ ${'foo.bar.baz:qux:1.2.3'} | ${true} | ${[{ mode: 'include', matcher: 'subgroup', groupId: 'foo.bar' }]}
+ ${'foo.bar.baz:qux:1.2.3'} | ${false} | ${[{ mode: 'include', matcher: 'subgroup', groupId: 'foo.barbaz' }]}
+ ${'foobarbaz:qux:1.2.3'} | ${true} | ${[{ mode: 'include', matcher: 'regex', groupId: '.*bar.*' }]}
+ ${'foobarbaz:qux:1.2.3'} | ${true} | ${[{ mode: 'include', matcher: 'regex', groupId: '.*bar.*', artifactId: 'qux' }]}
+ ${'foobar:foobar:1.2.3'} | ${true} | ${[{ mode: 'include', matcher: 'regex', groupId: '.*bar.*', artifactId: 'foo.*' }]}
+ ${'foobar:foobar:1.2.3'} | ${false} | ${[{ mode: 'include', matcher: 'regex', groupId: 'foobar', artifactId: '^bar' }]}
+ ${'foobar:foobar:1.2.3'} | ${true} | ${[{ mode: 'include', matcher: 'regex', groupId: 'foobar', artifactId: '^foo.*', version: '1\\.*' }]}
+ ${'foobar:foobar:1.2.3'} | ${false} | ${[{ mode: 'include', matcher: 'regex', groupId: 'foobar', artifactId: '^foo', version: '3.+' }]}
+ ${'foobar:foobar:1.2.3'} | ${false} | ${[{ mode: 'include', matcher: 'regex', groupId: 'foobar', artifactId: 'qux', version: '1\\.*' }]}
+ `('$input | $output', ({ input, output, descriptor }) => {
+ const [groupId, artifactId, currentValue] = input.split(':');
+ const dep: PackageDependency = {
+ depName: `${groupId}:${artifactId}`,
+ currentValue,
+ };
+
+ expect(matchesContentDescriptor(dep, descriptor)).toBe(output);
+ });
+ });
+
+ describe('multiple descriptors', () => {
+ const dep: PackageDependency = {
+ depName: `foo:bar`,
+ currentValue: '1.2.3',
+ };
+
+ it('if both includes and excludes exist, dep must match include and not match exclude', () => {
+ expect(
+ matchesContentDescriptor(dep, [
+ { mode: 'include', matcher: 'simple', groupId: 'foo' },
+ {
+ mode: 'exclude',
+ matcher: 'simple',
+ groupId: 'foo',
+ artifactId: 'baz',
+ },
+ ]),
+ ).toBe(true);
+
+ expect(
+ matchesContentDescriptor(dep, [
+ { mode: 'include', matcher: 'simple', groupId: 'foo' },
+ {
+ mode: 'exclude',
+ matcher: 'simple',
+ groupId: 'foo',
+ artifactId: 'bar',
+ },
+ ]),
+ ).toBe(false);
+ });
+
+ it('if only includes exist, dep must match at least one include', () => {
+ expect(
+ matchesContentDescriptor(dep, [
+ { mode: 'include', matcher: 'simple', groupId: 'some' },
+ { mode: 'include', matcher: 'simple', groupId: 'foo' },
+ { mode: 'include', matcher: 'simple', groupId: 'bar' },
+ ]),
+ ).toBe(true);
+
+ expect(
+ matchesContentDescriptor(dep, [
+ { mode: 'include', matcher: 'simple', groupId: 'some' },
+ { mode: 'include', matcher: 'simple', groupId: 'other' },
+ { mode: 'include', matcher: 'simple', groupId: 'bar' },
+ ]),
+ ).toBe(false);
+ });
+
+ it('if only excludes exist, dep must match not match any exclude', () => {
+ expect(
+ matchesContentDescriptor(dep, [
+ { mode: 'exclude', matcher: 'simple', groupId: 'some' },
+ { mode: 'exclude', matcher: 'simple', groupId: 'foo' },
+ { mode: 'exclude', matcher: 'simple', groupId: 'bar' },
+ ]),
+ ).toBe(false);
+
+ expect(
+ matchesContentDescriptor(dep, [
+ { mode: 'exclude', matcher: 'simple', groupId: 'some' },
+ { mode: 'exclude', matcher: 'simple', groupId: 'other' },
+ { mode: 'exclude', matcher: 'simple', groupId: 'bar' },
+ ]),
+ ).toBe(true);
+ });
+ });
+
+ it('extracts content descriptors', async () => {
+ const fsMock = {
+ 'build.gradle': codeBlock`
+ pluginManagement {
+ repositories {
+ maven {
+ url = "https://foo.bar/baz"
+ content {
+ includeModule("com.diffplug.spotless", "com.diffplug.spotless.gradle.plugin")
+ }
+ }
+ }
+ }
+ repositories {
+ mavenCentral()
+ google {
+ content {
+ includeGroupAndSubgroups("foo.bar")
+ includeModuleByRegex("com\\\\.(google|android).*", "protobuf.*")
+ includeGroupByRegex("(?!(unsupported|pattern).*)")
+ includeGroupByRegex "org\\\\.jetbrains\\\\.kotlin.*"
+ excludeModule("foo.bar.group", "simple.module")
+ }
+ }
+ maven {
+ name = "some"
+ url = "https://foo.bar/\${name}"
+ content {
+ includeModule("foo.bar.group", "simple.module")
+ includeVersion("com.google.protobuf", "protobuf-java", "2.17.+")
+ }
+ }
+ }
+
+ plugins {
+ id("com.diffplug.spotless") version "6.10.0"
+ }
+
+ dependencies {
+ implementation "com.google.protobuf:protobuf-java:2.17.1"
+ implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.4.21"
+ implementation "foo.bar:protobuf-java:2.17.0"
+ implementation "foo.bar.group:simple.module:2.17.0"
+ }
+ `,
+ };
+ mockFs(fsMock);
+
+ const res = await extractAllPackageFiles(
+ partial(),
+ Object.keys(fsMock),
+ );
+
+ expect(res).toMatchObject([
+ {
+ deps: [
+ {
+ depName: 'com.diffplug.spotless',
+ currentValue: '6.10.0',
+ depType: 'plugin',
+ packageName:
+ 'com.diffplug.spotless:com.diffplug.spotless.gradle.plugin',
+ registryUrls: ['https://foo.bar/baz'],
+ },
+ {
+ depName: 'com.google.protobuf:protobuf-java',
+ currentValue: '2.17.1',
+ registryUrls: [
+ 'https://repo.maven.apache.org/maven2',
+ 'https://dl.google.com/android/maven2/',
+ 'https://foo.bar/some',
+ ],
+ },
+ {
+ depName: 'org.jetbrains.kotlin:kotlin-stdlib-jdk8',
+ currentValue: '1.4.21',
+ registryUrls: [
+ 'https://repo.maven.apache.org/maven2',
+ 'https://dl.google.com/android/maven2/',
+ ],
+ },
+ {
+ depName: 'foo.bar:protobuf-java',
+ currentValue: '2.17.0',
+ registryUrls: [
+ 'https://repo.maven.apache.org/maven2',
+ 'https://dl.google.com/android/maven2/',
+ ],
+ },
+ {
+ depName: 'foo.bar.group:simple.module',
+ currentValue: '2.17.0',
+ registryUrls: [
+ 'https://repo.maven.apache.org/maven2',
+ 'https://foo.bar/some',
+ ],
+ },
+ ],
+ },
+ ]);
+ });
+ });
});
describe('version catalogs', () => {
diff --git a/lib/modules/manager/gradle/extract.ts b/lib/modules/manager/gradle/extract.ts
index d70a5722dbb6e2..3f94060c427b66 100644
--- a/lib/modules/manager/gradle/extract.ts
+++ b/lib/modules/manager/gradle/extract.ts
@@ -1,7 +1,10 @@
import upath from 'upath';
import { logger } from '../../../logger';
+import { coerceArray } from '../../../util/array';
import { getLocalFiles } from '../../../util/fs';
+import { regEx } from '../../../util/regex';
import { MavenDatasource } from '../../datasource/maven';
+import gradleVersioning from '../../versioning/gradle';
import type { ExtractConfig, PackageDependency, PackageFile } from '../types';
import { parseCatalog } from './extract/catalog';
import {
@@ -12,6 +15,7 @@ import {
import { parseGradle, parseKotlinSource, parseProps } from './parser';
import { REGISTRY_URLS } from './parser/common';
import type {
+ ContentDescriptorSpec,
GradleManagerData,
PackageRegistry,
VariableRegistry,
@@ -44,6 +48,89 @@ function updatePackageRegistries(
}
}
+export function matchesContentDescriptor(
+ dep: PackageDependency,
+ contentDescriptors?: ContentDescriptorSpec[],
+): boolean {
+ const [groupId, artifactId] = (dep.packageName ?? dep.depName!).split(':');
+ let hasIncludes = false;
+ let hasExcludes = false;
+ let matchesInclude = false;
+ let matchesExclude = false;
+
+ for (const content of coerceArray(contentDescriptors)) {
+ const {
+ mode,
+ matcher,
+ groupId: contentGroupId,
+ artifactId: contentArtifactId,
+ version: contentVersion,
+ } = content;
+
+ // group matching
+ let groupMatch = false;
+ if (matcher === 'regex') {
+ groupMatch = regEx(contentGroupId).test(groupId);
+ } else if (matcher === 'subgroup') {
+ groupMatch =
+ groupId === contentGroupId || `${groupId}.`.startsWith(contentGroupId);
+ } else {
+ groupMatch = groupId === contentGroupId;
+ }
+
+ // artifact matching (optional)
+ let artifactMatch = true;
+ if (groupMatch && contentArtifactId) {
+ if (matcher === 'regex') {
+ artifactMatch = regEx(contentArtifactId).test(artifactId);
+ } else {
+ artifactMatch = artifactId === contentArtifactId;
+ }
+ }
+
+ // version matching (optional)
+ let versionMatch = true;
+ if (groupMatch && artifactMatch && contentVersion && dep.currentValue) {
+ if (matcher === 'regex') {
+ versionMatch = regEx(contentVersion).test(dep.currentValue);
+ } else {
+ // contentVersion can be an exact version or a gradle-supported version range
+ versionMatch = gradleVersioning.matches(
+ dep.currentValue,
+ contentVersion,
+ );
+ }
+ }
+
+ const isMatch = groupMatch && artifactMatch && versionMatch;
+ if (mode === 'include') {
+ hasIncludes = true;
+ if (isMatch) {
+ matchesInclude = true;
+ }
+ } else if (mode === 'exclude') {
+ hasExcludes = true;
+ if (isMatch) {
+ matchesExclude = true;
+ }
+ }
+ }
+
+ if (hasIncludes && hasExcludes) {
+ // if both includes and excludes exist, dep must match include and not match exclude
+ return matchesInclude && !matchesExclude;
+ } else if (hasIncludes) {
+ // if only includes exist, dep must match at least one include
+ return matchesInclude;
+ } else if (hasExcludes) {
+ // if only excludes exist, dep must not match any exclude
+ return !matchesExclude;
+ }
+
+ // by default, repositories include everything and exclude nothing
+ return true;
+}
+
function getRegistryUrlsForDep(
packageRegistries: PackageRegistry[],
dep: PackageDependency,
@@ -52,6 +139,7 @@ function getRegistryUrlsForDep(
const registryUrls = packageRegistries
.filter((item) => item.scope === scope)
+ .filter((item) => matchesContentDescriptor(dep, item.content))
.map((item) => item.registryUrl);
if (!registryUrls.length && scope === 'plugin') {
diff --git a/lib/modules/manager/gradle/parser.spec.ts b/lib/modules/manager/gradle/parser.spec.ts
index faa099f3e4345b..3f0281b1d55d67 100644
--- a/lib/modules/manager/gradle/parser.spec.ts
+++ b/lib/modules/manager/gradle/parser.spec.ts
@@ -728,6 +728,157 @@ describe('modules/manager/gradle/parser', () => {
},
]);
});
+
+ describe('content descriptors', () => {
+ it('valid combinations', () => {
+ const input = codeBlock`
+ maven(url = "https://foo.bar/baz") {
+ content {
+ excludeGroup("baz.qux")
+ }
+ }
+ mavenCentral().content {
+ includeGroup("foo.bar")
+ }
+ maven {
+ url = "https://foo.bar/deps"
+ content {
+ includeGroupAndSubgroups("foo.bar")
+ }
+ }
+ maven {
+ url = "https://some.foo"
+ content {
+ includeModule("foo", "bar")
+ excludeModule("baz", "qux")
+ includeVersion("foo", "bar", "1.2.3")
+ excludeVersion("baz", "qux", "4.5.6")
+ includeGroupByRegex("org\\\\.jetbrains\\\\.kotlin.*")
+ excludeGroupByRegex(".*google.*")
+ includeModuleByRegex(".*foo.*", ".*bar.*")
+ excludeModuleByRegex(".*baz.*", ".*qux.*")
+ includeVersionByRegex(".*foo.*", ".*bar.*", "1.2.3")
+ excludeVersionByRegex(".*baz.*", ".*qux.*", ".*4.5.*")
+ }
+ }
+ `;
+
+ const { urls } = parseGradle(input);
+ expect(urls).toStrictEqual([
+ {
+ registryUrl: 'https://foo.bar/baz',
+ scope: 'dep',
+ content: [
+ { mode: 'exclude', matcher: 'simple', groupId: 'baz.qux' },
+ ],
+ },
+ {
+ registryUrl: REGISTRY_URLS.mavenCentral,
+ scope: 'dep',
+ content: [
+ { mode: 'include', matcher: 'simple', groupId: 'foo.bar' },
+ ],
+ },
+ {
+ registryUrl: 'https://foo.bar/deps',
+ scope: 'dep',
+ content: [
+ { mode: 'include', matcher: 'subgroup', groupId: 'foo.bar' },
+ ],
+ },
+ {
+ registryUrl: 'https://some.foo',
+ scope: 'dep',
+ content: [
+ {
+ mode: 'include',
+ matcher: 'simple',
+ groupId: 'foo',
+ artifactId: 'bar',
+ },
+ {
+ mode: 'exclude',
+ matcher: 'simple',
+ groupId: 'baz',
+ artifactId: 'qux',
+ },
+ {
+ mode: 'include',
+ matcher: 'simple',
+ groupId: 'foo',
+ artifactId: 'bar',
+ version: '1.2.3',
+ },
+ {
+ mode: 'exclude',
+ matcher: 'simple',
+ groupId: 'baz',
+ artifactId: 'qux',
+ version: '4.5.6',
+ },
+ {
+ mode: 'include',
+ matcher: 'regex',
+ groupId: '^org\\.jetbrains\\.kotlin.*$',
+ },
+ { mode: 'exclude', matcher: 'regex', groupId: '^.*google.*$' },
+ {
+ mode: 'include',
+ matcher: 'regex',
+ groupId: '^.*foo.*$',
+ artifactId: '^.*bar.*$',
+ },
+ {
+ mode: 'exclude',
+ matcher: 'regex',
+ groupId: '^.*baz.*$',
+ artifactId: '^.*qux.*$',
+ },
+ {
+ mode: 'include',
+ matcher: 'regex',
+ groupId: '^.*foo.*$',
+ artifactId: '^.*bar.*$',
+ version: '^1.2.3$',
+ },
+ {
+ mode: 'exclude',
+ matcher: 'regex',
+ groupId: '^.*baz.*$',
+ artifactId: '^.*qux.*$',
+ version: '^.*4.5.*$',
+ },
+ ],
+ },
+ ]);
+ });
+
+ describe('invalid or unsupported regEx patterns', () => {
+ it.each`
+ fieldName | pattern
+ ${'group'} | ${'includeGroupByRegex(".*so\\me.invalid.pattern.*")'}
+ ${'group'} | ${'includeModuleByRegex(".*so\\me.invalid.pattern.*", ".*bar.*")'}
+ ${'module'} | ${'includeModuleByRegex(".*foo.*", ".*so\\me.invalid.pattern.*")'}
+ ${'module'} | ${'excludeModuleByRegex(".*baz.*", "(?!(foo|bar).*)")'}
+ ${'version'} | ${'includeVersionByRegex(".*foo.*", ".*bar.*", "(?!(foo|bar).*)")'}
+ ${'version'} | ${'excludeVersionByRegex(".*baz.*", ".*qux.*", "(?!(foo|bar).*)")'}
+ `('$pattern', ({ fieldName, pattern }) => {
+ const input = codeBlock`
+ mavenCentral {
+ content {
+ ${pattern}
+ }
+ }
+ `;
+ parseGradle(input);
+ expect(logger.logger.debug).toHaveBeenCalledWith(
+ expect.stringContaining(
+ `Skipping content descriptor with unsupported regExp pattern for ${fieldName}`,
+ ),
+ );
+ });
+ });
+ });
});
describe('version catalog', () => {
diff --git a/lib/modules/manager/gradle/parser.ts b/lib/modules/manager/gradle/parser.ts
index b0459572b2d084..92d55a1b09ee0d 100644
--- a/lib/modules/manager/gradle/parser.ts
+++ b/lib/modules/manager/gradle/parser.ts
@@ -33,6 +33,7 @@ const ctx: Ctx = {
varTokens: [],
tmpKotlinImportStore: [],
tmpNestingDepth: [],
+ tmpRegistryContent: [],
tmpTokenStore: {},
tokenMap: {},
};
diff --git a/lib/modules/manager/gradle/parser/common.spec.ts b/lib/modules/manager/gradle/parser/common.spec.ts
index e9625d2c2dbbd1..7b2bf2afdcd521 100644
--- a/lib/modules/manager/gradle/parser/common.spec.ts
+++ b/lib/modules/manager/gradle/parser/common.spec.ts
@@ -32,6 +32,7 @@ describe('modules/manager/gradle/parser/common', () => {
varTokens: [],
tmpKotlinImportStore: [],
tmpNestingDepth: [],
+ tmpRegistryContent: [],
tmpTokenStore: {},
tokenMap: {},
};
diff --git a/lib/modules/manager/gradle/parser/handlers.ts b/lib/modules/manager/gradle/parser/handlers.ts
index 5d983abbd07f31..ca32f64a6e4987 100644
--- a/lib/modules/manager/gradle/parser/handlers.ts
+++ b/lib/modules/manager/gradle/parser/handlers.ts
@@ -5,7 +5,12 @@ import { getSiblingFileName } from '../../../../util/fs';
import { regEx } from '../../../../util/regex';
import type { PackageDependency } from '../../types';
import type { parseGradle as parseGradleCallback } from '../parser';
-import type { Ctx, GradleManagerData } from '../types';
+import type {
+ ContentDescriptorMatcher,
+ ContentDescriptorSpec,
+ Ctx,
+ GradleManagerData,
+} from '../types';
import { isDependencyString, parseDependencyString } from '../utils';
import {
GRADLE_PLUGINS,
@@ -264,6 +269,65 @@ export function handlePlugin(ctx: Ctx): Ctx {
return ctx;
}
+function isValidContentDescriptorRegex(
+ fieldName: string,
+ pattern: string,
+): boolean {
+ try {
+ regEx(pattern);
+ } catch {
+ logger.debug(
+ `Skipping content descriptor with unsupported regExp pattern for ${fieldName}: ${pattern}`,
+ );
+ return false;
+ }
+
+ return true;
+}
+
+export function handleRegistryContent(ctx: Ctx): Ctx {
+ const methodName = loadFromTokenMap(ctx, 'methodName')[0].value;
+ let groupId = loadFromTokenMap(ctx, 'groupId')[0].value;
+
+ let matcher: ContentDescriptorMatcher = 'simple';
+ if (methodName.includes('Regex')) {
+ matcher = 'regex';
+ groupId = `^${groupId}$`.replaceAll('\\\\', '\\');
+ if (!isValidContentDescriptorRegex('group', groupId)) {
+ return ctx;
+ }
+ } else if (methodName.includes('AndSubgroups')) {
+ matcher = 'subgroup';
+ }
+
+ const mode = methodName.startsWith('include') ? 'include' : 'exclude';
+ const spec: ContentDescriptorSpec = { mode, matcher, groupId };
+
+ if (methodName.includes('Module') || methodName.includes('Version')) {
+ spec.artifactId = loadFromTokenMap(ctx, 'artifactId')[0].value;
+ if (matcher === 'regex') {
+ spec.artifactId = `^${spec.artifactId}$`.replaceAll('\\\\', '\\');
+ if (!isValidContentDescriptorRegex('module', spec.artifactId)) {
+ return ctx;
+ }
+ }
+ }
+
+ if (methodName.includes('Version')) {
+ spec.version = loadFromTokenMap(ctx, 'version')[0].value;
+ if (matcher === 'regex') {
+ spec.version = `^${spec.version}$`.replaceAll('\\\\', '\\');
+ if (!isValidContentDescriptorRegex('version', spec.version)) {
+ return ctx;
+ }
+ }
+ }
+
+ ctx.tmpRegistryContent.push(spec);
+
+ return ctx;
+}
+
function isPluginRegistry(ctx: Ctx): boolean {
if (ctx.tokenMap.registryScope) {
const registryScope = loadFromTokenMap(ctx, 'registryScope')[0].value;
@@ -279,6 +343,7 @@ export function handlePredefinedRegistryUrl(ctx: Ctx): Ctx {
ctx.registryUrls.push({
registryUrl: REGISTRY_URLS[registryName as keyof typeof REGISTRY_URLS],
scope: isPluginRegistry(ctx) ? 'plugin' : 'dep',
+ content: ctx.tmpRegistryContent,
});
return ctx;
@@ -314,6 +379,7 @@ export function handleCustomRegistryUrl(ctx: Ctx): Ctx {
ctx.registryUrls.push({
registryUrl,
scope: isPluginRegistry(ctx) ? 'plugin' : 'dep',
+ content: ctx.tmpRegistryContent,
});
}
} catch {
diff --git a/lib/modules/manager/gradle/parser/registry-urls.ts b/lib/modules/manager/gradle/parser/registry-urls.ts
index e684135f808852..1d602b5c8f61cc 100644
--- a/lib/modules/manager/gradle/parser/registry-urls.ts
+++ b/lib/modules/manager/gradle/parser/registry-urls.ts
@@ -1,3 +1,4 @@
+import type { parser } from 'good-enough-parser';
import { query as q } from 'good-enough-parser';
import { regEx } from '../../../../util/regex';
import type { Ctx } from '../types';
@@ -6,16 +7,80 @@ import { qAssignments } from './assignments';
import {
REGISTRY_URLS,
cleanupTempVars,
+ qArtifactId,
+ qGroupId,
qValueMatcher,
+ qVersion,
storeInTokenMap,
storeVarToken,
} from './common';
import {
handleCustomRegistryUrl,
handlePredefinedRegistryUrl,
+ handleRegistryContent,
} from './handlers';
import { qPlugins } from './plugins';
+const cleanupTmpContentSpec = (ctx: Ctx): Ctx => {
+ ctx.tmpRegistryContent = [];
+ return ctx;
+};
+
+const qContentDescriptorSpec = (
+ methodName: RegExp,
+ matcher: q.QueryBuilder,
+): q.QueryBuilder => {
+ return q
+ .sym(methodName, storeVarToken)
+ .handler((ctx) => storeInTokenMap(ctx, 'methodName'))
+ .alt(
+ // includeGroup "foo.bar"
+ matcher,
+ // includeGroup("foo.bar")
+ q.tree({
+ type: 'wrapped-tree',
+ maxDepth: 1,
+ startsWith: '(',
+ endsWith: ')',
+ search: q.begin().join(matcher).end(),
+ }),
+ );
+};
+
+// includeModule('foo')
+// excludeModuleByRegex('bar')
+const qContentDescriptor = (
+ mode: 'include' | 'exclude',
+): q.QueryBuilder => {
+ return q
+ .alt(
+ qContentDescriptorSpec(
+ regEx(
+ `^(?:${mode}Group|${mode}GroupByRegex|${mode}GroupAndSubgroups)$`,
+ ),
+ qGroupId,
+ ),
+ qContentDescriptorSpec(
+ regEx(`^(?:${mode}Module|${mode}ModuleByRegex)$`),
+ q.join(qGroupId, q.op(','), qArtifactId),
+ ),
+ qContentDescriptorSpec(
+ regEx(`^(?:${mode}Version|${mode}VersionByRegex)$`),
+ q.join(qGroupId, q.op(','), qArtifactId, q.op(','), qVersion),
+ ),
+ )
+ .handler(handleRegistryContent);
+};
+
+// content { includeModule('foo'); excludeModule('bar') }
+const qRegistryContent = q.sym('content').tree({
+ type: 'wrapped-tree',
+ maxDepth: 1,
+ startsWith: '{',
+ endsWith: '}',
+ search: q.alt(qContentDescriptor('include'), qContentDescriptor('exclude')),
+});
+
// uri("https://foo.bar/baz")
// "https://foo.bar/baz"
const qUri = q
@@ -34,22 +99,26 @@ const qPredefinedRegistries = q
.sym(regEx(`^(?:${Object.keys(REGISTRY_URLS).join('|')})$`), storeVarToken)
.handler((ctx) => storeInTokenMap(ctx, 'registryUrl'))
.alt(
- q.tree({
- type: 'wrapped-tree',
- startsWith: '(',
- endsWith: ')',
- search: q.begin().end(),
- }),
+ q
+ .tree({
+ type: 'wrapped-tree',
+ startsWith: '(',
+ endsWith: ')',
+ search: q.begin().end(),
+ })
+ .opt(q.op('.').join(qRegistryContent)),
q.tree({
type: 'wrapped-tree',
startsWith: '{',
endsWith: '}',
+ search: q.opt(qRegistryContent),
}),
)
.handler(handlePredefinedRegistryUrl)
+ .handler(cleanupTmpContentSpec)
.handler(cleanupTempVars);
-// { url = "https://some.repo" }
+// { url = "https://some.repo"; content { ... } }
const qMavenArtifactRegistry = q.tree({
type: 'wrapped-tree',
maxDepth: 1,
@@ -68,24 +137,29 @@ const qMavenArtifactRegistry = q.tree({
endsWith: ')',
search: q.begin().join(qUri).end(),
}),
+ qRegistryContent,
),
});
// maven(url = uri("https://foo.bar/baz"))
+// maven("https://foo.bar/baz") { content { ... } }
// maven { name = some; url = "https://foo.bar/${name}" }
const qCustomRegistryUrl = q
.sym('maven')
.alt(
- q.tree({
- type: 'wrapped-tree',
- maxDepth: 1,
- startsWith: '(',
- endsWith: ')',
- search: q.begin().opt(q.sym('url').op('=')).join(qUri).end(),
- }),
+ q
+ .tree({
+ type: 'wrapped-tree',
+ maxDepth: 1,
+ startsWith: '(',
+ endsWith: ')',
+ search: q.begin().opt(q.sym('url').op('=')).join(qUri).end(),
+ })
+ .opt(qMavenArtifactRegistry),
qMavenArtifactRegistry,
)
.handler(handleCustomRegistryUrl)
+ .handler(cleanupTmpContentSpec)
.handler(cleanupTempVars);
const qPluginManagement = q.sym('pluginManagement', storeVarToken).tree({
diff --git a/lib/modules/manager/gradle/types.ts b/lib/modules/manager/gradle/types.ts
index 0a6fbe93a1c006..dd7899e652807b 100644
--- a/lib/modules/manager/gradle/types.ts
+++ b/lib/modules/manager/gradle/types.ts
@@ -68,9 +68,20 @@ export interface RichVersion {
export type GradleVersionPointerTarget = string | RichVersion;
export type GradleVersionCatalogVersion = string | VersionPointer | RichVersion;
+export type ContentDescriptorMatcher = 'simple' | 'regex' | 'subgroup';
+
+export interface ContentDescriptorSpec {
+ mode: 'include' | 'exclude';
+ matcher: ContentDescriptorMatcher;
+ groupId: string;
+ artifactId?: string;
+ version?: string;
+}
+
export interface PackageRegistry {
registryUrl: string;
scope: 'dep' | 'plugin';
+ content?: ContentDescriptorSpec[];
}
export interface Ctx {
@@ -86,6 +97,7 @@ export interface Ctx {
varTokens: lexer.Token[];
tmpKotlinImportStore: lexer.Token[][];
tmpNestingDepth: lexer.Token[];
+ tmpRegistryContent: ContentDescriptorSpec[];
tmpTokenStore: Record;
tokenMap: Record;
}
diff --git a/lib/modules/manager/mise/upgradeable-tooling.ts b/lib/modules/manager/mise/upgradeable-tooling.ts
index ad57d4914fe0d1..3e41baa44ac865 100644
--- a/lib/modules/manager/mise/upgradeable-tooling.ts
+++ b/lib/modules/manager/mise/upgradeable-tooling.ts
@@ -1,5 +1,6 @@
import { GithubReleasesDatasource } from '../../datasource/github-releases';
import { GithubTagsDatasource } from '../../datasource/github-tags';
+import { HexpmBobDatasource } from '../../datasource/hexpm-bob';
import { JavaVersionDatasource } from '../../datasource/java-version';
import { NodeVersionDatasource } from '../../datasource/node-version';
import { RubyVersionDatasource } from '../../datasource/ruby-version';
@@ -32,6 +33,12 @@ export const miseTooling: Record = {
extractVersion: '^v(?\\S+)',
},
},
+ elixir: {
+ misePluginUrl: 'https://mise.jdx.dev/lang/elixir.html',
+ config: {
+ datasource: HexpmBobDatasource.id,
+ },
+ },
erlang: {
misePluginUrl: 'https://mise.jdx.dev/lang/erlang.html',
config: {
diff --git a/lib/modules/manager/npm/update/dependency/index.spec.ts b/lib/modules/manager/npm/update/dependency/index.spec.ts
index e02760aadc42e4..18d871756e6d89 100644
--- a/lib/modules/manager/npm/update/dependency/index.spec.ts
+++ b/lib/modules/manager/npm/update/dependency/index.spec.ts
@@ -1,5 +1,6 @@
import * as npmUpdater from '../..';
import { Fixtures } from '../../../../../../test/fixtures';
+import { type Upgrade } from '../../../types';
const readFixture = (x: string): string => Fixtures.get(x, '../..');
@@ -254,6 +255,23 @@ describe('modules/manager/npm/update/dependency/index', () => {
expect(JSON.parse(testContent!).dependencies.abc).toBe('2.0.0');
});
+ it('supports alias-based replacement', () => {
+ const upgrade: Upgrade = {
+ depType: 'dependencies',
+ depName: 'config',
+ newName: 'abc',
+ replacementApproach: 'alias',
+ newValue: '2.0.0',
+ };
+ const testContent = npmUpdater.updateDependency({
+ fileContent: input01Content,
+ upgrade,
+ });
+ expect(JSON.parse(testContent!).dependencies.config).toBe(
+ 'npm:abc@2.0.0',
+ );
+ });
+
it('replaces glob package resolutions', () => {
const upgrade = {
depType: 'dependencies',
diff --git a/lib/modules/manager/npm/update/dependency/index.ts b/lib/modules/manager/npm/update/dependency/index.ts
index 0d4bb218f0205e..c86ed856b20761 100644
--- a/lib/modules/manager/npm/update/dependency/index.ts
+++ b/lib/modules/manager/npm/update/dependency/index.ts
@@ -161,25 +161,38 @@ export function updateDependency({
}
// TODO #22198
- let newFileContent = replaceAsString(
- parsedContents,
- fileContent,
- depType as NpmDepType,
- depName,
- oldVersion!,
- newValue!,
- overrideDepParents,
- );
- if (upgrade.newName) {
+ let newFileContent: string;
+ if (upgrade.newName && upgrade.replacementApproach === 'alias') {
newFileContent = replaceAsString(
parsedContents,
- newFileContent,
+ fileContent,
depType as NpmDepType,
depName,
+ oldVersion!,
+ `npm:${upgrade.newName}@${newValue}`,
+ overrideDepParents,
+ );
+ } else {
+ newFileContent = replaceAsString(
+ parsedContents,
+ fileContent,
+ depType as NpmDepType,
depName,
- upgrade.newName,
+ oldVersion!,
+ newValue!,
overrideDepParents,
);
+ if (upgrade.newName) {
+ newFileContent = replaceAsString(
+ parsedContents,
+ newFileContent,
+ depType as NpmDepType,
+ depName,
+ depName,
+ upgrade.newName,
+ overrideDepParents,
+ );
+ }
}
// istanbul ignore if
if (!newFileContent) {
diff --git a/lib/modules/manager/pip-compile/artifacts.spec.ts b/lib/modules/manager/pip-compile/artifacts.spec.ts
index 6818e35d0550d6..d162929e55cd1e 100644
--- a/lib/modules/manager/pip-compile/artifacts.spec.ts
+++ b/lib/modules/manager/pip-compile/artifacts.spec.ts
@@ -28,6 +28,18 @@ jest.mock('../../../util/host-rules', () => mockDeep());
jest.mock('../../../util/http');
jest.mock('../../datasource', () => mockDeep());
+const requirementsWithUv = `# This file was autogenerated by uv via the following command:
+# uv pip compile --generate-hashes --output-file=requirements.txt --universal requirements.in
+attrs==21.2.0 \
+ --hash=sha256:149e90d6d8ac20db7a955ad60cf0e6881a3f20d37096140088356da6c716b0b1 \
+ --hash=sha256:ef6aaac3ca6cd92904cdd0d83f629a15f18053ec84e6432106f7a4d04ae4f5fb
+ # via -r requirements.in
+setuptools==59.2.0 \
+ --hash=sha256:157d21de9d055ab9e8ea3186d91e7f4f865e11f42deafa952d90842671fc2576 \
+ --hash=sha256:4adde3d1e1c89bde1c643c64d89cdd94cbfd8c75252ee459d4500bccb9c7d05d
+ # via -r requirements.in
+`;
+
function getCommandInHeader(command: string) {
return `#
# This file is autogenerated by pip-compile with Python 3.11
@@ -488,6 +500,16 @@ describe('modules/manager/pip-compile/artifacts', () => {
);
});
+ it('returns extracted arguments for uv ', () => {
+ expect(
+ constructPipCompileCmd(
+ extractHeaderCommand(requirementsWithUv, 'subdir/requirements.txt'),
+ ),
+ ).toBe(
+ 'uv pip compile --generate-hashes --output-file=requirements.txt --universal requirements.in',
+ );
+ });
+
it('returns --no-emit-index-url when credentials are found in PIP_INDEX_URL', () => {
process.env.PIP_INDEX_URL = 'https://user:pass@example.com/pypi/simple';
expect(
diff --git a/lib/modules/manager/pip-compile/artifacts.ts b/lib/modules/manager/pip-compile/artifacts.ts
index 5d8bafb46d4220..3608808a6a869b 100644
--- a/lib/modules/manager/pip-compile/artifacts.ts
+++ b/lib/modules/manager/pip-compile/artifacts.ts
@@ -57,7 +57,7 @@ export function constructPipCompileCmd(
compileArgs: PipCompileArgs,
upgradePackages: Upgrade[] = [],
): string {
- if (compileArgs.isCustomCommand) {
+ if (compileArgs.commandType === 'custom') {
throw new Error(
'Detected custom command, header modified or set by CUSTOM_COMPILE_COMMAND',
);
@@ -68,6 +68,7 @@ export function constructPipCompileCmd(
}
// safeguard against index url leak if not explicitly set by an option
if (
+ compileArgs.commandType === 'pip-compile' &&
!compileArgs.noEmitIndexUrl &&
!compileArgs.emitIndexUrl &&
haveCredentialsInPipEnvironmentVariables()
@@ -115,6 +116,7 @@ export async function updateArtifacts({
}
const compileArgs = extractHeaderCommand(existingOutput, outputFileName);
const pythonVersion = extractPythonVersion(
+ compileArgs.commandType,
existingOutput,
outputFileName,
);
diff --git a/lib/modules/manager/pip-compile/common.spec.ts b/lib/modules/manager/pip-compile/common.spec.ts
index a465e9a9bccf5f..5c91ad9729abf0 100644
--- a/lib/modules/manager/pip-compile/common.spec.ts
+++ b/lib/modules/manager/pip-compile/common.spec.ts
@@ -2,7 +2,7 @@ import { mockDeep } from 'jest-mock-extended';
import { hostRules } from '../../../../test/util';
import { logger } from '../../../logger';
import {
- allowedPipOptions,
+ allowedOptions,
extractHeaderCommand,
extractPythonVersion,
getRegistryCredVarsFromPackageFiles,
@@ -137,8 +137,8 @@ describe('modules/manager/pip-compile/common', () => {
).toEqual(exampleSourceFiles);
});
- it.each(allowedPipOptions)(
- 'returned sourceFiles must not contain options',
+ it.each(allowedOptions['pip-compile'])(
+ 'returned sourceFiles must not contain options (pip-compile)',
(argument: string) => {
const sourceFiles = extractHeaderCommand(
getCommandInHeader(`pip-compile ${argument}=reqs.txt reqs.in`),
@@ -149,13 +149,25 @@ describe('modules/manager/pip-compile/common', () => {
},
);
+ it.each(allowedOptions['uv'])(
+ 'returned sourceFiles must not contain options (uv)',
+ (argument: string) => {
+ const sourceFiles = extractHeaderCommand(
+ getCommandInHeader(`uv pip compile ${argument}=reqs.txt reqs.in`),
+ 'reqs.txt',
+ ).sourceFiles;
+ expect(sourceFiles).not.toContainEqual(argument);
+ expect(sourceFiles).toEqual(['reqs.in']);
+ },
+ );
+
it('detects custom command', () => {
expect(
extractHeaderCommand(
getCommandInHeader(`./pip-compile-wrapper reqs.in`),
'reqs.txt',
),
- ).toHaveProperty('isCustomCommand', true);
+ ).toHaveProperty('commandType', 'custom');
});
it.each([
@@ -176,6 +188,7 @@ describe('modules/manager/pip-compile/common', () => {
it('extracts Python version from valid header', () => {
expect(
extractPythonVersion(
+ 'pip-compile',
getCommandInHeader('pip-compile reqs.in'),
'reqs.txt',
),
@@ -183,7 +196,13 @@ describe('modules/manager/pip-compile/common', () => {
});
it('returns undefined if version cannot be extracted', () => {
- expect(extractPythonVersion('', 'reqs.txt')).toBeUndefined();
+ expect(
+ extractPythonVersion('pip-compile', '', 'reqs.txt'),
+ ).toBeUndefined();
+ });
+
+ it('returns undefined if the command type is uv', () => {
+ expect(extractPythonVersion('uv', '', 'reqs.txt')).toBeUndefined();
});
});
diff --git a/lib/modules/manager/pip-compile/common.ts b/lib/modules/manager/pip-compile/common.ts
index 5a2126198900be..a055edc0329b22 100644
--- a/lib/modules/manager/pip-compile/common.ts
+++ b/lib/modules/manager/pip-compile/common.ts
@@ -9,7 +9,7 @@ import { ensureLocalPath } from '../../../util/fs/util';
import * as hostRules from '../../../util/host-rules';
import { regEx } from '../../../util/regex';
import type { PackageFileContent, UpdateArtifactsConfig } from '../types';
-import type { PipCompileArgs, SupportedManagers } from './types';
+import type { CommandType, PipCompileArgs, SupportedManagers } from './types';
export function getPythonVersionConstraint(
config: UpdateArtifactsConfig,
@@ -83,24 +83,45 @@ export const constraintLineRegex = regEx(
export const disallowedPipOptions = [
'--no-header', // header is required by this manager
];
-export const optionsWithArguments = [
+const commonOptionsWithArguments = [
'--output-file',
'--extra',
'--extra-index-url',
+];
+const pipOptionsWithArguments = [
'--resolver',
'--constraint',
+ ...commonOptionsWithArguments,
];
-export const allowedPipOptions = [
+const uvOptionsWithArguments = ['--constraints', ...commonOptionsWithArguments];
+export const optionsWithArguments = [
+ ...pipOptionsWithArguments,
+ ...uvOptionsWithArguments,
+];
+const allowedCommonOptions = [
'-v',
- '--all-extras',
- '--allow-unsafe',
'--generate-hashes',
- '--no-emit-index-url',
'--emit-index-url',
- '--strip-extras',
'--index-url',
- ...optionsWithArguments,
];
+export const allowedOptions: Record = {
+ 'pip-compile': [
+ '--all-extras',
+ '--allow-unsafe',
+ '--generate-hashes',
+ '--no-emit-index-url',
+ '--strip-extras',
+ ...allowedCommonOptions,
+ ...pipOptionsWithArguments,
+ ],
+ uv: [
+ '--no-strip-extras',
+ '--universal',
+ ...allowedCommonOptions,
+ ...uvOptionsWithArguments,
+ ],
+ custom: [],
+};
// TODO(not7cd): test on all correct headers, even with CUSTOM_COMPILE_COMMAND
export function extractHeaderCommand(
@@ -118,23 +139,33 @@ export function extractHeaderCommand(
);
const command = compileCommand.groups.command;
const argv = [command];
- const isCustomCommand = command !== 'pip-compile';
+ let commandType: CommandType;
+ if (command === 'pip-compile') {
+ commandType = 'pip-compile';
+ } else if (command === 'uv') {
+ commandType = 'uv';
+ } else {
+ commandType = 'custom';
+ }
if (compileCommand.groups.arguments) {
argv.push(...split(compileCommand.groups.arguments));
}
logger.debug(
- { fileName, argv, isCustomCommand },
+ { fileName, argv, commandType },
`pip-compile: extracted command from header`,
);
const result: PipCompileArgs = {
argv,
command,
- isCustomCommand,
+ commandType,
outputFile: '',
sourceFiles: [],
};
for (const arg of argv.slice(1)) {
+ if (commandType === 'uv' && ['pip', 'compile'].includes(arg)) {
+ continue;
+ }
// TODO(not7cd): check for "--option -- argument" case
if (!arg.startsWith('-')) {
result.sourceFiles.push(arg);
@@ -142,7 +173,7 @@ export function extractHeaderCommand(
}
throwForDisallowedOption(arg);
throwForNoEqualSignInOptionWithArgument(arg);
- throwForUnknownOption(arg);
+ throwForUnknownOption(commandType, arg);
if (arg.includes('=')) {
const [option, value] = arg.split('=');
@@ -153,7 +184,7 @@ export function extractHeaderCommand(
result.extraIndexUrl = result.extraIndexUrl ?? [];
result.extraIndexUrl.push(value);
// TODO: add to secrets? next PR
- } else if (option === '--constraint') {
+ } else if (['--constraint', '--constraints'].includes(option)) {
result.constraintsFiles = result.constraintsFiles ?? [];
result.constraintsFiles.push(value);
} else if (option === '--output-file') {
@@ -210,9 +241,15 @@ const pythonVersionRegex = regEx(
);
export function extractPythonVersion(
+ commandType: CommandType,
content: string,
fileName: string,
): string | undefined {
+ // uv's headers do not include the Python version
+ // https://github.com/astral-sh/uv/issues/3588
+ if (commandType === 'uv') {
+ return;
+ }
const match = pythonVersionRegex.exec(content);
if (match?.groups === undefined) {
logger.warn(
@@ -244,14 +281,14 @@ function throwForNoEqualSignInOptionWithArgument(arg: string): void {
);
}
}
-function throwForUnknownOption(arg: string): void {
+function throwForUnknownOption(commandType: CommandType, arg: string): void {
if (arg.includes('=')) {
const [option] = arg.split('=');
- if (allowedPipOptions.includes(option)) {
+ if (allowedOptions[commandType].includes(option)) {
return;
}
}
- if (allowedPipOptions.includes(arg)) {
+ if (allowedOptions[commandType].includes(arg)) {
return;
}
throw new Error(`Option ${arg} not supported (yet)`);
diff --git a/lib/modules/manager/pip-compile/extract.ts b/lib/modules/manager/pip-compile/extract.ts
index d040d676015699..4fe0b07aa66ab5 100644
--- a/lib/modules/manager/pip-compile/extract.ts
+++ b/lib/modules/manager/pip-compile/extract.ts
@@ -1,5 +1,6 @@
import upath from 'upath';
import { logger } from '../../../logger';
+import { coerceArray } from '../../../util/array';
import { readLocalFile } from '../../../util/fs';
import { ensureLocalPath } from '../../../util/fs/util';
import { extractPackageFile as extractRequirementsFile } from '../pip_requirements/extract';
@@ -73,7 +74,7 @@ export async function extractAllPackageFiles(
continue;
}
lockFileArgs.set(fileMatch, compileArgs);
- for (const constraint in compileArgs.constraintsFiles) {
+ for (const constraint of coerceArray(compileArgs.constraintsFiles)) {
depsBetweenFiles.push({
sourceFile: constraint,
outputFile: fileMatch,
diff --git a/lib/modules/manager/pip-compile/readme.md b/lib/modules/manager/pip-compile/readme.md
index cb846fb0a78d42..5ef2c4b4d0d094 100644
--- a/lib/modules/manager/pip-compile/readme.md
+++ b/lib/modules/manager/pip-compile/readme.md
@@ -1,6 +1,8 @@
Due to limited functionality, the `pip-compile` manager should be considered in an "alpha" stage, which means it's not ready for production use for the majority of end users.
We welcome feedback and bug reports!
+The `uv pip compile` command is also supported through this manager in the same fashion as `pip-compile`.
+
The current implementation has some limitations.
Read the full document before you start using the `pip-compile` manager.
@@ -31,10 +33,12 @@ In turn `pip-compile` manager will find all source files and parse them as packa
The following files are currently supported:
-| Source filename | Manager |
-| --------------: | ------------------ |
-| `setup.py` | `pip_setup` |
-| `*.in` | `pip_requirements` |
+| Source filename | Manager |
+| ---------------: | ------------------ |
+| `setup.py` | `pip_setup` |
+| `setup.cfg` | `setup-cfg` |
+| `pyproject.toml` | `pep621` |
+| `*.in` / `*.txt` | `pip_requirements` |
Example header:
@@ -58,6 +62,12 @@ Because `pip-compile` will update source files with their associated manager you
},
"pip_setup": {
"enabled": false
+ },
+ "setup-cfg": {
+ "enabled": false
+ },
+ "pep621": {
+ "enabled": false
}
}
```
diff --git a/lib/modules/manager/pip-compile/types.ts b/lib/modules/manager/pip-compile/types.ts
index c496e01c886a7d..ad0b9dcaf6c29b 100644
--- a/lib/modules/manager/pip-compile/types.ts
+++ b/lib/modules/manager/pip-compile/types.ts
@@ -5,10 +5,12 @@ export type SupportedManagers =
| 'setup-cfg'
| 'pep621';
+export type CommandType = 'pip-compile' | 'uv' | 'custom';
+
export interface PipCompileArgs {
argv: string[]; // all arguments as a list
command: string;
- isCustomCommand: boolean;
+ commandType: CommandType;
constraintsFiles?: string[];
extra?: string[];
allExtras?: boolean;
diff --git a/lib/modules/manager/terragrunt/__fixtures__/3.hcl b/lib/modules/manager/terragrunt/__fixtures__/3.hcl
index 24e81c345cfc7b..22079aae6c9fe9 100644
--- a/lib/modules/manager/terragrunt/__fixtures__/3.hcl
+++ b/lib/modules/manager/terragrunt/__fixtures__/3.hcl
@@ -155,6 +155,11 @@ terraform {
source = "git::ssh://git@mygit.com/hashicorp/example?ref=v1.0.3&depth=1"
}
+# gittags_ssh_subdir
+terraform {
+ source = "git::ssh://git@mygit.com/hashicorp/example//subdir/test?ref=v1.0.4&depth=1"
+}
+
# invalid, ignored by test since it does not have source on the next line
terraform {
}
diff --git a/lib/modules/manager/terragrunt/extract.spec.ts b/lib/modules/manager/terragrunt/extract.spec.ts
index a87f17f6002fe8..e8533f64f5e1eb 100644
--- a/lib/modules/manager/terragrunt/extract.spec.ts
+++ b/lib/modules/manager/terragrunt/extract.spec.ts
@@ -418,6 +418,13 @@ describe('modules/manager/terragrunt/extract', () => {
depType: 'gitTags',
packageName: 'ssh://git@mygit.com/hashicorp/example',
},
+ {
+ currentValue: 'v1.0.4',
+ datasource: 'git-tags',
+ depName: 'mygit.com/hashicorp/example',
+ depType: 'gitTags',
+ packageName: 'ssh://git@mygit.com/hashicorp/example',
+ },
{
skipReason: 'no-source',
},
@@ -466,7 +473,7 @@ describe('modules/manager/terragrunt/extract', () => {
},
],
});
- expect(res?.deps).toHaveLength(35);
+ expect(res?.deps).toHaveLength(36);
expect(res?.deps.filter((dep) => dep.skipReason)).toHaveLength(4);
});
diff --git a/lib/modules/manager/terragrunt/modules.ts b/lib/modules/manager/terragrunt/modules.ts
index 0079b18581303b..a6690cdc2c0726 100644
--- a/lib/modules/manager/terragrunt/modules.ts
+++ b/lib/modules/manager/terragrunt/modules.ts
@@ -71,7 +71,7 @@ export function analyseTerragruntModule(
dep.datasource = GithubTagsDatasource.id;
} else if (gitTagsRefMatch?.groups) {
const { url, tag } = gitTagsRefMatch.groups;
- const { hostname, host, origin, pathname, protocol } = new URL(url);
+ const { hostname, host, pathname, protocol } = new URL(url);
const containsSubDirectory = pathname.includes('//');
if (containsSubDirectory) {
logger.debug('Terragrunt module contains subdirectory');
@@ -87,7 +87,8 @@ export function analyseTerragruntModule(
dep.datasource = detectGitTagDatasource(url);
if (dep.datasource === GitTagsDatasource.id) {
if (containsSubDirectory) {
- dep.packageName = `${origin}${pathname.split('//')[0]}`;
+ const tempLookupName = url.split('//');
+ dep.packageName = tempLookupName[0] + '//' + tempLookupName[1];
} else {
dep.packageName = url;
}
diff --git a/lib/modules/manager/types.ts b/lib/modules/manager/types.ts
index 28ede22bda9518..3ce881369af1e5 100644
--- a/lib/modules/manager/types.ts
+++ b/lib/modules/manager/types.ts
@@ -192,6 +192,7 @@ export interface Upgrade> extends PackageDependency {
registryUrls?: string[] | null;
currentVersion?: string;
replaceString?: string;
+ replacementApproach?: 'replace' | 'alias';
}
export interface ArtifactNotice {
diff --git a/lib/modules/platform/gerrit/index.ts b/lib/modules/platform/gerrit/index.ts
index 234d9965631f56..bae6b5114090f5 100644
--- a/lib/modules/platform/gerrit/index.ts
+++ b/lib/modules/platform/gerrit/index.ts
@@ -96,7 +96,7 @@ export async function initRepo({
repository,
gitUrl,
}: RepoParams): Promise {
- logger.debug(`initRepo(${repository}, ${gitUrl!})`);
+ logger.debug(`initRepo(${repository}, ${gitUrl})`);
const projectInfo = await client.getProjectInfo(repository);
const branchInfo = await client.getBranchInfo(repository);
diff --git a/lib/modules/platform/gitea/index.spec.ts b/lib/modules/platform/gitea/index.spec.ts
index 53ce4256adff6b..49c236fe5577fe 100644
--- a/lib/modules/platform/gitea/index.spec.ts
+++ b/lib/modules/platform/gitea/index.spec.ts
@@ -1222,7 +1222,13 @@ describe('modules/platform/gitea/index', () => {
.scope('https://gitea.com/api/v1')
.get('/repos/some/repo/pulls')
.query({ state: 'all', sort: 'recentupdate' })
- .reply(200, mockPRs);
+ .reply(200, mockPRs.slice(0, 2), {
+ // test correct pagination handling, domain should be ignored
+ link: '; rel="next",; rel="last"',
+ })
+ .get('/repos/some/repo/pulls')
+ .query({ state: 'all', sort: 'recentupdate', page: 2 })
+ .reply(200, mockPRs.slice(2));
await initFakePlatform(scope);
await initFakeRepo(scope);
diff --git a/lib/modules/platform/gitea/index.ts b/lib/modules/platform/gitea/index.ts
index 369edaad369b7b..1c8326c54167cc 100644
--- a/lib/modules/platform/gitea/index.ts
+++ b/lib/modules/platform/gitea/index.ts
@@ -212,10 +212,18 @@ const platform: Platform = {
gitAuthor = `${user.full_name ?? user.username} <${user.email}>`;
botUserID = user.id;
botUserName = user.username;
- defaults.version = await helper.getVersion({ token });
+ // istanbul ignore if: experimental feature
+ if (semver.valid(process.env.RENOVATE_X_PLATFORM_VERSION)) {
+ defaults.version = process.env.RENOVATE_X_PLATFORM_VERSION!;
+ } else {
+ defaults.version = await helper.getVersion({ token });
+ }
if (defaults.version?.includes('gitea-')) {
defaults.isForgejo = true;
}
+ logger.debug(
+ `${defaults.isForgejo ? 'Forgejo' : 'Gitea'} version: ${defaults.version}`,
+ );
} catch (err) {
logger.debug(
{ err },
diff --git a/lib/modules/platform/gitea/pr-cache.ts b/lib/modules/platform/gitea/pr-cache.ts
index 82d935de312186..7f6268dcdbfe2a 100644
--- a/lib/modules/platform/gitea/pr-cache.ts
+++ b/lib/modules/platform/gitea/pr-cache.ts
@@ -6,7 +6,7 @@ import * as memCache from '../../../util/cache/memory';
import { getCache } from '../../../util/cache/repository';
import type { GiteaHttp } from '../../../util/http/gitea';
import type { HttpResponse } from '../../../util/http/types';
-import { getQueryString, parseLinkHeader } from '../../../util/url';
+import { getQueryString, parseLinkHeader, parseUrl } from '../../../util/url';
import type { Pr } from '../types';
import type { GiteaPrCacheData, PR } from './types';
import { API_PATH, toRenovatePR } from './utils';
@@ -149,7 +149,8 @@ export class GiteaPrCache {
break;
}
- url = parseLinkHeader(res.headers.link)?.next?.url;
+ const uri = parseUrl(parseLinkHeader(res.headers.link)?.next?.url);
+ url = uri ? `${uri.pathname}${uri.search}` : undefined;
}
this.updateItems();
diff --git a/lib/modules/platform/github/index.ts b/lib/modules/platform/github/index.ts
index 2ef5eb87dac3f3..0d1a15f4f34364 100644
--- a/lib/modules/platform/github/index.ts
+++ b/lib/modules/platform/github/index.ts
@@ -423,7 +423,7 @@ export async function createFork(
await githubApi.postJson(`repos/${repository}/forks`, {
token,
body: {
- organization: forkOrg ? forkOrg : undefined,
+ organization: forkOrg ?? undefined,
name: config.parentRepo!.replace('/', '-_-'),
default_branch_only: true, // no baseBranches support yet
},
diff --git a/lib/modules/versioning/index.ts b/lib/modules/versioning/index.ts
index b93c5e8740e812..5267c25d1a6bfa 100644
--- a/lib/modules/versioning/index.ts
+++ b/lib/modules/versioning/index.ts
@@ -17,9 +17,7 @@ export const getVersionings = (): Map<
> => versionings;
export function get(versioning: string | null | undefined): VersioningApi {
- const res = Versioning.safeParse(
- versioning ? versioning : defaultVersioning.id,
- );
+ const res = Versioning.safeParse(versioning ?? defaultVersioning.id);
if (!res.success) {
const [issue] = res.error.issues;
diff --git a/lib/modules/versioning/ubuntu/index.ts b/lib/modules/versioning/ubuntu/index.ts
index ce41ab1a3a0d80..d26cd2a86eefdd 100644
--- a/lib/modules/versioning/ubuntu/index.ts
+++ b/lib/modules/versioning/ubuntu/index.ts
@@ -66,7 +66,7 @@ function isStable(version: string): boolean {
function getVersionByCodename(version: string): string {
const datedImgVersion = getDatedContainerImageCodename(version);
- const getVersion = datedImgVersion ? datedImgVersion : version;
+ const getVersion = datedImgVersion ?? version;
return di.getVersionByCodename(getVersion);
}
diff --git a/package.json b/package.json
index 5fd097b81e6e9b..43d1cebb17523d 100644
--- a/package.json
+++ b/package.json
@@ -271,7 +271,7 @@
"@openpgp/web-stream-tools": "0.1.3",
"@renovate/eslint-plugin": "file:tools/eslint",
"@semantic-release/exec": "6.0.3",
- "@swc/core": "1.10.9",
+ "@swc/core": "1.10.11",
"@types/auth-header": "1.0.6",
"@types/aws4": "1.11.6",
"@types/better-sqlite3": "7.6.12",
@@ -293,7 +293,7 @@
"@types/js-yaml": "4.0.9",
"@types/json-dup-key-validator": "1.0.2",
"@types/linkify-markdown": "1.0.3",
- "@types/lodash": "4.17.14",
+ "@types/lodash": "4.17.15",
"@types/luxon": "3.4.2",
"@types/markdown-it": "14.1.2",
"@types/markdown-table": "2.0.0",
@@ -313,8 +313,8 @@
"@types/url-join": "4.0.3",
"@types/validate-npm-package-name": "4.0.2",
"@types/xmldoc": "1.1.9",
- "@typescript-eslint/eslint-plugin": "8.20.0",
- "@typescript-eslint/parser": "8.20.0",
+ "@typescript-eslint/eslint-plugin": "8.22.0",
+ "@typescript-eslint/parser": "8.22.0",
"aws-sdk-client-mock": "4.1.0",
"callsite": "1.0.0",
"common-tags": "1.8.2",
diff --git a/pdm.lock b/pdm.lock
index be933f80efbffc..6c5af4212bf5ae 100644
--- a/pdm.lock
+++ b/pdm.lock
@@ -5,14 +5,14 @@
groups = ["default"]
strategy = ["inherit_metadata"]
lock_version = "4.5.0"
-content_hash = "sha256:cb7ab4ded4a7ff81d1e6f461b57bd06ec2efafa0dbc1f980286e10fbb75c1a57"
+content_hash = "sha256:8314f1066faf3c76d51f55ac5db00e1bdb5b99f0a0545a87fa5a83c7efdbeb15"
[[metadata.targets]]
requires_python = ">=3.11"
[[package]]
name = "babel"
-version = "2.16.0"
+version = "2.17.0"
requires_python = ">=3.8"
summary = "Internationalization utilities"
groups = ["default"]
@@ -20,8 +20,8 @@ dependencies = [
"pytz>=2015.7; python_version < \"3.9\"",
]
files = [
- {file = "babel-2.16.0-py3-none-any.whl", hash = "sha256:368b5b98b37c06b7daf6696391c3240c938b37767d4584413e8438c5c435fa8b"},
- {file = "babel-2.16.0.tar.gz", hash = "sha256:d1f3554ca26605fe173f3de0c65f750f5a42f924499bf134de6423582298e316"},
+ {file = "babel-2.17.0-py3-none-any.whl", hash = "sha256:4d0b53093fdfb4b21c92b5213dba5a1b23885afa8383709427046b21c366e5f2"},
+ {file = "babel-2.17.0.tar.gz", hash = "sha256:0c54cffb19f690cdcc52a3b50bcbf71e07a808d1c80d549f2459b9d2cf0afb9d"},
]
[[package]]
@@ -297,7 +297,7 @@ files = [
[[package]]
name = "mkdocs-material"
-version = "9.6.1"
+version = "9.6.2"
requires_python = ">=3.8"
summary = "Documentation that simply works"
groups = ["default"]
@@ -315,8 +315,8 @@ dependencies = [
"requests~=2.26",
]
files = [
- {file = "mkdocs_material-9.6.1-py3-none-any.whl", hash = "sha256:c1742d410be29811a9b7e863cb25a578b9e255fe6f04c69f8c6838863a58e141"},
- {file = "mkdocs_material-9.6.1.tar.gz", hash = "sha256:da37dba220d9fbfc5f1fc567fafc4028e3c3d7d828f2779ed09ab726ceca77dc"},
+ {file = "mkdocs_material-9.6.2-py3-none-any.whl", hash = "sha256:71d90dbd63b393ad11a4d90151dfe3dcbfcd802c0f29ce80bebd9bbac6abc753"},
+ {file = "mkdocs_material-9.6.2.tar.gz", hash = "sha256:a3de1c5d4c745f10afa78b1a02f917b9dce0808fb206adc0f5bb48b58c1ca21f"},
]
[[package]]
@@ -397,7 +397,7 @@ files = [
[[package]]
name = "pymdown-extensions"
-version = "10.14.2"
+version = "10.14.3"
requires_python = ">=3.8"
summary = "Extension pack for Python Markdown."
groups = ["default"]
@@ -406,8 +406,8 @@ dependencies = [
"pyyaml",
]
files = [
- {file = "pymdown_extensions-10.14.2-py3-none-any.whl", hash = "sha256:f45bc5892410e54fd738ab8ccd736098b7ff0cb27fdb4bf24d0a0c6584bc90e1"},
- {file = "pymdown_extensions-10.14.2.tar.gz", hash = "sha256:7a77b8116dc04193f2c01143760a43387bd9dc4aa05efacb7d838885a7791253"},
+ {file = "pymdown_extensions-10.14.3-py3-none-any.whl", hash = "sha256:05e0bee73d64b9c71a4ae17c72abc2f700e8bc8403755a00580b49a4e9f189e9"},
+ {file = "pymdown_extensions-10.14.3.tar.gz", hash = "sha256:41e576ce3f5d650be59e900e4ceff231e0aed2a88cf30acaee41e02f063a061b"},
]
[[package]]
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index 87f4559adb1cb6..10aa2862823a26 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -383,8 +383,8 @@ importers:
specifier: 6.0.3
version: 6.0.3(semantic-release@24.2.1(typescript@5.7.3))
'@swc/core':
- specifier: 1.10.9
- version: 1.10.9
+ specifier: 1.10.11
+ version: 1.10.11
'@types/auth-header':
specifier: 1.0.6
version: 1.0.6
@@ -449,8 +449,8 @@ importers:
specifier: 1.0.3
version: 1.0.3
'@types/lodash':
- specifier: 4.17.14
- version: 4.17.14
+ specifier: 4.17.15
+ version: 4.17.15
'@types/luxon':
specifier: 3.4.2
version: 3.4.2
@@ -509,11 +509,11 @@ importers:
specifier: 1.1.9
version: 1.1.9
'@typescript-eslint/eslint-plugin':
- specifier: 8.20.0
- version: 8.20.0(@typescript-eslint/parser@8.20.0(eslint@8.57.1)(typescript@5.7.3))(eslint@8.57.1)(typescript@5.7.3)
+ specifier: 8.22.0
+ version: 8.22.0(@typescript-eslint/parser@8.22.0(eslint@8.57.1)(typescript@5.7.3))(eslint@8.57.1)(typescript@5.7.3)
'@typescript-eslint/parser':
- specifier: 8.20.0
- version: 8.20.0(eslint@8.57.1)(typescript@5.7.3)
+ specifier: 8.22.0
+ version: 8.22.0(eslint@8.57.1)(typescript@5.7.3)
aws-sdk-client-mock:
specifier: 4.1.0
version: 4.1.0
@@ -540,10 +540,10 @@ importers:
version: 3.7.0(eslint-plugin-import@2.31.0)(eslint@8.57.1)
eslint-plugin-import:
specifier: 2.31.0
- version: 2.31.0(@typescript-eslint/parser@8.20.0(eslint@8.57.1)(typescript@5.7.3))(eslint-import-resolver-typescript@3.7.0)(eslint@8.57.1)
+ version: 2.31.0(@typescript-eslint/parser@8.22.0(eslint@8.57.1)(typescript@5.7.3))(eslint-import-resolver-typescript@3.7.0)(eslint@8.57.1)
eslint-plugin-jest:
specifier: 28.11.0
- version: 28.11.0(@typescript-eslint/eslint-plugin@8.20.0(@typescript-eslint/parser@8.20.0(eslint@8.57.1)(typescript@5.7.3))(eslint@8.57.1)(typescript@5.7.3))(eslint@8.57.1)(jest@29.7.0(@types/node@22.10.9)(ts-node@10.9.2(@swc/core@1.10.9)(@types/node@22.10.9)(typescript@5.7.3)))(typescript@5.7.3)
+ version: 28.11.0(@typescript-eslint/eslint-plugin@8.22.0(@typescript-eslint/parser@8.22.0(eslint@8.57.1)(typescript@5.7.3))(eslint@8.57.1)(typescript@5.7.3))(eslint@8.57.1)(jest@29.7.0(@types/node@22.10.9)(ts-node@10.9.2(@swc/core@1.10.11)(@types/node@22.10.9)(typescript@5.7.3)))(typescript@5.7.3)
eslint-plugin-jest-formatting:
specifier: 3.1.0
version: 3.1.0(eslint@8.57.1)
@@ -567,16 +567,16 @@ importers:
version: 9.1.7
jest:
specifier: 29.7.0
- version: 29.7.0(@types/node@22.10.9)(ts-node@10.9.2(@swc/core@1.10.9)(@types/node@22.10.9)(typescript@5.7.3))
+ version: 29.7.0(@types/node@22.10.9)(ts-node@10.9.2(@swc/core@1.10.11)(@types/node@22.10.9)(typescript@5.7.3))
jest-extended:
specifier: 4.0.2
- version: 4.0.2(jest@29.7.0(@types/node@22.10.9)(ts-node@10.9.2(@swc/core@1.10.9)(@types/node@22.10.9)(typescript@5.7.3)))
+ version: 4.0.2(jest@29.7.0(@types/node@22.10.9)(ts-node@10.9.2(@swc/core@1.10.11)(@types/node@22.10.9)(typescript@5.7.3)))
jest-mock:
specifier: 29.7.0
version: 29.7.0
jest-mock-extended:
specifier: 3.0.7
- version: 3.0.7(jest@29.7.0(@types/node@22.10.9)(ts-node@10.9.2(@swc/core@1.10.9)(@types/node@22.10.9)(typescript@5.7.3)))(typescript@5.7.3)
+ version: 3.0.7(jest@29.7.0(@types/node@22.10.9)(ts-node@10.9.2(@swc/core@1.10.11)(@types/node@22.10.9)(typescript@5.7.3)))(typescript@5.7.3)
jest-snapshot:
specifier: 29.7.0
version: 29.7.0
@@ -612,10 +612,10 @@ importers:
version: 3.0.3
ts-jest:
specifier: 29.2.5
- version: 29.2.5(@babel/core@7.26.7)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.26.7))(jest@29.7.0(@types/node@22.10.9)(ts-node@10.9.2(@swc/core@1.10.9)(@types/node@22.10.9)(typescript@5.7.3)))(typescript@5.7.3)
+ version: 29.2.5(@babel/core@7.26.7)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.26.7))(jest@29.7.0(@types/node@22.10.9)(ts-node@10.9.2(@swc/core@1.10.11)(@types/node@22.10.9)(typescript@5.7.3)))(typescript@5.7.3)
ts-node:
specifier: 10.9.2
- version: 10.9.2(@swc/core@1.10.9)(@types/node@22.10.9)(typescript@5.7.3)
+ version: 10.9.2(@swc/core@1.10.11)(@types/node@22.10.9)(typescript@5.7.3)
type-fest:
specifier: 4.33.0
version: 4.33.0
@@ -1214,8 +1214,8 @@ packages:
resolution: {integrity: sha512-tY/msAuJo6ARbK6SPIxZrPBms3xPbfwBrulZe0Wtr/DIY9lje2HeV1uoebShn6mx7SjCHif6EjMvoREj+gZ+SA==}
engines: {node: '>= 18'}
- '@octokit/auth-token@5.1.1':
- resolution: {integrity: sha512-rh3G3wDO8J9wSjfI436JUKzHIxq8NaiL0tVeB2aXmG6p/9859aUOAjA9pmSPNGGZxfwmaJ9ozOJImuNVJdpvbA==}
+ '@octokit/auth-token@5.1.2':
+ resolution: {integrity: sha512-JcQDsBdg49Yky2w2ld20IHAlwr8d/d8N6NiOXbtuoPCqzbsiJgF633mVUw3x4mo0H5ypataQIX7SFu3yy44Mpw==}
engines: {node: '>= 18'}
'@octokit/core@5.2.0':
@@ -1238,8 +1238,8 @@ packages:
resolution: {integrity: sha512-r+oZUH7aMFui1ypZnAvZmn0KSqAUgE1/tUXIWaqUCa1758ts/Jio84GZuzsvUkme98kv0WFY8//n0J1Z+vsIsQ==}
engines: {node: '>= 18'}
- '@octokit/graphql@8.1.2':
- resolution: {integrity: sha512-bdlj/CJVjpaz06NBpfHhp4kGJaRZfz7AzC+6EwUImRtrwIw8dIgJ63Xg0OzV9pRn3rIzrt5c2sa++BL0JJ8GLw==}
+ '@octokit/graphql@8.2.0':
+ resolution: {integrity: sha512-gejfDywEml/45SqbWTWrhfwvLBrcGYhOn50sPOjIeVvH6i7D16/9xcFA8dAJNp2HMcd+g4vru41g4E2RBiZvfQ==}
engines: {node: '>= 18'}
'@octokit/openapi-types@23.0.1':
@@ -1301,8 +1301,8 @@ packages:
resolution: {integrity: sha512-MB4AYDsM5jhIHro/dq4ix1iWTLGToIGk6cWF5L6vanFaMble5jTX/UBQyiv05HsWnwUtY8JrfHy2LWfKwihqMw==}
engines: {node: '>= 18'}
- '@octokit/types@13.7.0':
- resolution: {integrity: sha512-BXfRP+3P3IN6fd4uF3SniaHKOO4UXWBfkdR3vA8mIvaoO/wLjGN5qivUtW0QRitBHHMcfC41SLhNVYIZZE+wkA==}
+ '@octokit/types@13.8.0':
+ resolution: {integrity: sha512-x7DjTIbEpEWXK99DMd01QfWy0hd5h4EN+Q7shkdKds3otGQP+oWE/y0A76i1OvH9fygo4ddvNf7ZvF0t78P98A==}
'@one-ini/wasm@0.1.1':
resolution: {integrity: sha512-XuySG1E38YScSJoMlqovLru4KTUNSjgVTIjyh7qMX6aNN5HY5Ct5LhRJdxO79JtTzKfzV/bnWpz+zquYrISsvw==}
@@ -1679,8 +1679,8 @@ packages:
resolution: {integrity: sha512-Igfg8lKu3dRVkTSEm98QpZUvKEOa71jDX4vKRcvJVyRc3UgN3j7vFMf0s7xLQhYmKa8kyJGQgUJDOV5V3neVlQ==}
engines: {node: '>=18.0.0'}
- '@smithy/core@3.1.1':
- resolution: {integrity: sha512-hhUZlBWYuh9t6ycAcN90XOyG76C1AzwxZZgaCVPMYpWqqk9uMFo7HGG5Zu2cEhCJn7DdOi5krBmlibWWWPgdsw==}
+ '@smithy/core@3.1.2':
+ resolution: {integrity: sha512-htwQXkbdF13uwwDevz9BEzL5ABK+1sJpVQXywwGSH973AVOvisHNfpcB8A8761G6XgHoS2kHPqc9DqHJ2gp+/Q==}
engines: {node: '>=18.0.0'}
'@smithy/credential-provider-imds@4.0.1':
@@ -1743,16 +1743,16 @@ packages:
resolution: {integrity: sha512-OGXo7w5EkB5pPiac7KNzVtfCW2vKBTZNuCctn++TTSOMpe6RZO/n6WEC1AxJINn3+vWLKW49uad3lo/u0WJ9oQ==}
engines: {node: '>=18.0.0'}
- '@smithy/middleware-endpoint@4.0.2':
- resolution: {integrity: sha512-Z9m67CXizGpj8CF/AW/7uHqYNh1VXXOn9Ap54fenWsCa0HnT4cJuE61zqG3cBkTZJDCy0wHJphilI41co/PE5g==}
+ '@smithy/middleware-endpoint@4.0.3':
+ resolution: {integrity: sha512-YdbmWhQF5kIxZjWqPIgboVfi8i5XgiYMM7GGKFMTvBei4XjNQfNv8sukT50ITvgnWKKKpOtp0C0h7qixLgb77Q==}
engines: {node: '>=18.0.0'}
- '@smithy/middleware-retry@4.0.3':
- resolution: {integrity: sha512-TiKwwQTwUDeDtwWW8UWURTqu7s6F3wN2pmziLU215u7bqpVT9Mk2oEvURjpRLA+5XeQhM68R5BpAGzVtomsqgA==}
+ '@smithy/middleware-retry@4.0.4':
+ resolution: {integrity: sha512-wmxyUBGHaYUqul0wZiset4M39SMtDBOtUr2KpDuftKNN74Do9Y36Go6Eqzj9tL0mIPpr31ulB5UUtxcsCeGXsQ==}
engines: {node: '>=18.0.0'}
- '@smithy/middleware-serde@4.0.1':
- resolution: {integrity: sha512-Fh0E2SOF+S+P1+CsgKyiBInAt3o2b6Qk7YOp2W0Qx2XnfTdfMuSDKUEcnrtpxCzgKJnqXeLUZYqtThaP0VGqtA==}
+ '@smithy/middleware-serde@4.0.2':
+ resolution: {integrity: sha512-Sdr5lOagCn5tt+zKsaW+U2/iwr6bI9p08wOkCp6/eL6iMbgdtc2R5Ety66rf87PeohR0ExI84Txz9GYv5ou3iQ==}
engines: {node: '>=18.0.0'}
'@smithy/middleware-stack@4.0.1':
@@ -1795,8 +1795,8 @@ packages:
resolution: {integrity: sha512-nCe6fQ+ppm1bQuw5iKoeJ0MJfz2os7Ic3GBjOkLOPtavbD1ONoyE3ygjBfz2ythFWm4YnRm6OxW+8p/m9uCoIA==}
engines: {node: '>=18.0.0'}
- '@smithy/smithy-client@4.1.2':
- resolution: {integrity: sha512-0yApeHWBqocelHGK22UivZyShNxFbDNrgREBllGh5Ws0D0rg/yId/CJfeoKKpjbfY2ju8j6WgDUGZHYQmINZ5w==}
+ '@smithy/smithy-client@4.1.3':
+ resolution: {integrity: sha512-A2Hz85pu8BJJaYFdX8yb1yocqigyqBzn+OVaVgm+Kwi/DkN8vhN2kbDVEfADo6jXf5hPKquMLGA3UINA64UZ7A==}
engines: {node: '>=18.0.0'}
'@smithy/types@4.1.0':
@@ -1831,12 +1831,12 @@ packages:
resolution: {integrity: sha512-L1RBVzLyfE8OXH+1hsJ8p+acNUSirQnWQ6/EgpchV88G6zGBTDPdXiiExei6Z1wR2RxYvxY/XLw6AMNCCt8H3w==}
engines: {node: '>=18.0.0'}
- '@smithy/util-defaults-mode-browser@4.0.3':
- resolution: {integrity: sha512-7c5SF1fVK0EOs+2EOf72/qF199zwJflU1d02AevwKbAUPUZyE9RUZiyJxeUmhVxfKDWdUKaaVojNiaDQgnHL9g==}
+ '@smithy/util-defaults-mode-browser@4.0.4':
+ resolution: {integrity: sha512-Ej1bV5sbrIfH++KnWxjjzFNq9nyP3RIUq2c9Iqq7SmMO/idUR24sqvKH2LUQFTSPy/K7G4sB2m8n7YYlEAfZaw==}
engines: {node: '>=18.0.0'}
- '@smithy/util-defaults-mode-node@4.0.3':
- resolution: {integrity: sha512-CVnD42qYD3JKgDlImZ9+On+MqJHzq9uJgPbMdeBE8c2x8VJ2kf2R3XO/yVFx+30ts5lD/GlL0eFIShY3x9ROgQ==}
+ '@smithy/util-defaults-mode-node@4.0.4':
+ resolution: {integrity: sha512-HE1I7gxa6yP7ZgXPCFfZSDmVmMtY7SHqzFF55gM/GPegzZKaQWZZ+nYn9C2Cc3JltCMyWe63VPR3tSFDEvuGjw==}
engines: {node: '>=18.0.0'}
'@smithy/util-endpoints@3.0.1':
@@ -1875,68 +1875,68 @@ packages:
resolution: {integrity: sha512-piUTHyp2Axx3p/kc2CIJkYSv0BAaheBQmbACZgQSSfWUumWNW+R1lL+H9PDBxKJkvOeEX+hKYEFiwO8xagL8AQ==}
engines: {node: '>=18.0.0'}
- '@swc/core-darwin-arm64@1.10.9':
- resolution: {integrity: sha512-XTHLtijFervv2B+i1ngM993umhSj9K1IeMomvU/Db84Asjur2XmD4KXt9QPnGDRFgv2kLSjZ+DDL25Qk0f4r+w==}
+ '@swc/core-darwin-arm64@1.10.11':
+ resolution: {integrity: sha512-ZpgEaNcx2e5D+Pd0yZGVbpSrEDOEubn7r2JXoNBf0O85lPjUm3HDzGRfLlV/MwxRPAkwm93eLP4l7gYnc50l3g==}
engines: {node: '>=10'}
cpu: [arm64]
os: [darwin]
- '@swc/core-darwin-x64@1.10.9':
- resolution: {integrity: sha512-bi3el9/FV/la8HIsolSjeDar+tM7m9AmSF1w7X6ZByW2qgc4Z1tmq0A4M4H9aH3TfHesZbfq8hgaNtc2/VtzzQ==}
+ '@swc/core-darwin-x64@1.10.11':
+ resolution: {integrity: sha512-szObinnq2o7spXMDU5pdunmUeLrfV67Q77rV+DyojAiGJI1RSbEQotLOk+ONOLpoapwGUxOijFG4IuX1xiwQ2g==}
engines: {node: '>=10'}
cpu: [x64]
os: [darwin]
- '@swc/core-linux-arm-gnueabihf@1.10.9':
- resolution: {integrity: sha512-xsLHV02S+RTDuI+UJBkA2muNk/s0ETRpoc1K/gNt0i8BqTurPYkrvGDDALN9+leiUPydHvZi9P1qdExbgUJnXw==}
+ '@swc/core-linux-arm-gnueabihf@1.10.11':
+ resolution: {integrity: sha512-tVE8aXQwd8JUB9fOGLawFJa76nrpvp3dvErjozMmWSKWqtoeO7HV83aOrVtc8G66cj4Vq7FjTE9pOJeV1FbKRw==}
engines: {node: '>=10'}
cpu: [arm]
os: [linux]
- '@swc/core-linux-arm64-gnu@1.10.9':
- resolution: {integrity: sha512-41hJgPoGhIa12U6Tud+yLF/m64YA3mGut3TmBEkj2R7rdJdE0mljdtR0tf4J2RoQaWZPPi0DBSqGdROiAEx9dg==}
+ '@swc/core-linux-arm64-gnu@1.10.11':
+ resolution: {integrity: sha512-geFkENU5GMEKO7FqHOaw9HVlpQEW10nICoM6ubFc0hXBv8dwRXU4vQbh9s/isLSFRftw1m4jEEWixAnXSw8bxQ==}
engines: {node: '>=10'}
cpu: [arm64]
os: [linux]
- '@swc/core-linux-arm64-musl@1.10.9':
- resolution: {integrity: sha512-DUMRhl49b9r7bLg9oNzCdW4lLcDJKrRBn87Iq5APPvixsm1auGnsVQycGkQcDDKvVllxIFSbmCYzjagx3l8Hnw==}
+ '@swc/core-linux-arm64-musl@1.10.11':
+ resolution: {integrity: sha512-2mMscXe/ivq8c4tO3eQSbQDFBvagMJGlalXCspn0DgDImLYTEnt/8KHMUMGVfh0gMJTZ9q4FlGLo7mlnbx99MQ==}
engines: {node: '>=10'}
cpu: [arm64]
os: [linux]
- '@swc/core-linux-x64-gnu@1.10.9':
- resolution: {integrity: sha512-xW0y88vQvmzYo3Gn7yFnY03TfHMwuca4aFH3ZmhwDNOYHmTOi6fmhAkg/13F/NrwjMYO+GnF5uJTjdjb3B6tdQ==}
+ '@swc/core-linux-x64-gnu@1.10.11':
+ resolution: {integrity: sha512-eu2apgDbC4xwsigpl6LS+iyw6a3mL6kB4I+6PZMbFF2nIb1Dh7RGnu70Ai6mMn1o80fTmRSKsCT3CKMfVdeNFg==}
engines: {node: '>=10'}
cpu: [x64]
os: [linux]
- '@swc/core-linux-x64-musl@1.10.9':
- resolution: {integrity: sha512-jYs32BEx+CPVuxN6NdsWEpdehjnmAag25jyJzwjQx+NCGYwHEV3bT5y8TX4eFhaVB1rafmqJOlYQPs4+MSyGCg==}
+ '@swc/core-linux-x64-musl@1.10.11':
+ resolution: {integrity: sha512-0n+wPWpDigwqRay4IL2JIvAqSKCXv6nKxPig9M7+epAlEQlqX+8Oq/Ap3yHtuhjNPb7HmnqNJLCXT1Wx+BZo0w==}
engines: {node: '>=10'}
cpu: [x64]
os: [linux]
- '@swc/core-win32-arm64-msvc@1.10.9':
- resolution: {integrity: sha512-Uhh5T3Fq3Nyom96Bm3ACBNASH3iqNc76in7ewZz8PooUqeTIO8aZpsghnncjctRNE9T819/8btpiFIhHo3sKtg==}
+ '@swc/core-win32-arm64-msvc@1.10.11':
+ resolution: {integrity: sha512-7+bMSIoqcbXKosIVd314YjckDRPneA4OpG1cb3/GrkQTEDXmWT3pFBBlJf82hzJfw7b6lfv6rDVEFBX7/PJoLA==}
engines: {node: '>=10'}
cpu: [arm64]
os: [win32]
- '@swc/core-win32-ia32-msvc@1.10.9':
- resolution: {integrity: sha512-bD5BpbojEsDfrAvT+1qjQPf5RCKLg4UL+3Uwm019+ZR02hd8qO538BlOnQdOqRqccu+75DF6aRglQ7AJ24Cs0Q==}
+ '@swc/core-win32-ia32-msvc@1.10.11':
+ resolution: {integrity: sha512-6hkLl4+3KjP/OFTryWxpW7YFN+w4R689TSPwiII4fFgsFNupyEmLWWakKfkGgV2JVA59L4Oi02elHy/O1sbgtw==}
engines: {node: '>=10'}
cpu: [ia32]
os: [win32]
- '@swc/core-win32-x64-msvc@1.10.9':
- resolution: {integrity: sha512-NwkuUNeBBQnAaXVvcGw8Zr6RR8kylyjFUnlYZZ3G0QkQZ4rYLXYTafAmiRjrfzgVb0LcMF/sBzJvGOk7SwtIDg==}
+ '@swc/core-win32-x64-msvc@1.10.11':
+ resolution: {integrity: sha512-kKNE2BGu/La2k2WFHovenqZvGQAHRIU+rd2/6a7D6EiQ6EyimtbhUqjCCZ+N1f5fIAnvM+sMdLiQJq4jdd/oOQ==}
engines: {node: '>=10'}
cpu: [x64]
os: [win32]
- '@swc/core@1.10.9':
- resolution: {integrity: sha512-MQ97YSXu2oibzm7wi4GNa7hhndjLuVt/lmO2sq53+P37oZmyg/JQ/IYYtSiC6UGK3+cHoiVAykrK+glxLjJbag==}
+ '@swc/core@1.10.11':
+ resolution: {integrity: sha512-3zGU5y3S20cAwot9ZcsxVFNsSVaptG+dKdmAxORSE3EX7ixe1Xn5kUwLlgIsM4qrwTUWCJDLNhRS+2HLFivcDg==}
engines: {node: '>=10'}
peerDependencies:
'@swc/helpers': '*'
@@ -2116,8 +2116,8 @@ packages:
'@types/linkify-markdown@1.0.3':
resolution: {integrity: sha512-BnuGqDmpzmXCDMXHzgle/vMRUnbFcWclts0+n7Or421exav3XG6efl9gsxamLET6QPhX+pMnxcsHgnAO/daj9w==}
- '@types/lodash@4.17.14':
- resolution: {integrity: sha512-jsxagdikDiDBeIRaPYtArcT8my4tN1og7MtMRquFT3XNA6axxyHDRUemqDz/taRDdOUn0GnGHRCuff4q48sW9A==}
+ '@types/lodash@4.17.15':
+ resolution: {integrity: sha512-w/P33JFeySuhN6JLkysYUK2gEmy9kHHFN7E8ro0tkfmlDOgxBDzWEZ/J8cWA+fHqFevpswDTFZnDx+R9lbL6xw==}
'@types/luxon@3.4.2':
resolution: {integrity: sha512-TifLZlFudklWlMBfhubvgqTXRzLDI5pCbGa4P8a3wPyUQSW+1xQ5eDsreP9DWHX3tjq1ke96uYG/nwundroWcA==}
@@ -2221,8 +2221,8 @@ packages:
'@types/yauzl@2.10.3':
resolution: {integrity: sha512-oJoftv0LSuaDZE3Le4DbKX+KS9G36NzOeSap90UIK0yMA/NhKJhqlSGtNDORNRaIbQfzjXDrQa0ytJ6mNRGz/Q==}
- '@typescript-eslint/eslint-plugin@8.20.0':
- resolution: {integrity: sha512-naduuphVw5StFfqp4Gq4WhIBE2gN1GEmMUExpJYknZJdRnc+2gDzB8Z3+5+/Kv33hPQRDGzQO/0opHE72lZZ6A==}
+ '@typescript-eslint/eslint-plugin@8.22.0':
+ resolution: {integrity: sha512-4Uta6REnz/xEJMvwf72wdUnC3rr4jAQf5jnTkeRQ9b6soxLxhDEbS/pfMPoJLDfFPNVRdryqWUIV/2GZzDJFZw==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
peerDependencies:
'@typescript-eslint/parser': ^8.0.0 || ^8.0.0-alpha.0
@@ -2235,8 +2235,8 @@ packages:
peerDependencies:
eslint: ^6.0.0 || ^7.0.0 || ^8.0.0
- '@typescript-eslint/parser@8.20.0':
- resolution: {integrity: sha512-gKXG7A5HMyjDIedBi6bUrDcun8GIjnI8qOwVLiY3rx6T/sHP/19XLJOnIq/FgQvWLHja5JN/LSE7eklNBr612g==}
+ '@typescript-eslint/parser@8.22.0':
+ resolution: {integrity: sha512-MqtmbdNEdoNxTPzpWiWnqNac54h8JDAmkWtJExBVVnSrSmi9z+sZUt0LfKqk9rjqmKOIeRhO4fHHJ1nQIjduIQ==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
peerDependencies:
eslint: ^8.57.0 || ^9.0.0
@@ -2246,16 +2246,16 @@ packages:
resolution: {integrity: sha512-VXuvVvZeQCQb5Zgf4HAxc04q5j+WrNAtNh9OwCsCgpKqESMTu3tF/jhZ3xG6T4NZwWl65Bg8KuS2uEvhSfLl0w==}
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
- '@typescript-eslint/scope-manager@8.20.0':
- resolution: {integrity: sha512-J7+VkpeGzhOt3FeG1+SzhiMj9NzGD/M6KoGn9f4dbz3YzK9hvbhVTmLj/HiTp9DazIzJ8B4XcM80LrR9Dm1rJw==}
+ '@typescript-eslint/scope-manager@8.22.0':
+ resolution: {integrity: sha512-/lwVV0UYgkj7wPSw0o8URy6YI64QmcOdwHuGuxWIYznO6d45ER0wXUbksr9pYdViAofpUCNJx/tAzNukgvaaiQ==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
- '@typescript-eslint/scope-manager@8.21.0':
- resolution: {integrity: sha512-G3IBKz0/0IPfdeGRMbp+4rbjfSSdnGkXsM/pFZA8zM9t9klXDnB/YnKOBQ0GoPmoROa4bCq2NeHgJa5ydsQ4mA==}
+ '@typescript-eslint/scope-manager@8.23.0':
+ resolution: {integrity: sha512-OGqo7+dXHqI7Hfm+WqkZjKjsiRtFUQHPdGMXzk5mYXhJUedO7e/Y7i8AK3MyLMgZR93TX4bIzYrfyVjLC+0VSw==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
- '@typescript-eslint/type-utils@8.20.0':
- resolution: {integrity: sha512-bPC+j71GGvA7rVNAHAtOjbVXbLN5PkwqMvy1cwGeaxUoRQXVuKCebRoLzm+IPW/NtFFpstn1ummSIasD5t60GA==}
+ '@typescript-eslint/type-utils@8.22.0':
+ resolution: {integrity: sha512-NzE3aB62fDEaGjaAYZE4LH7I1MUwHooQ98Byq0G0y3kkibPJQIXVUspzlFOmOfHhiDLwKzMlWxaNv+/qcZurJA==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
peerDependencies:
eslint: ^8.57.0 || ^9.0.0
@@ -2265,12 +2265,12 @@ packages:
resolution: {integrity: sha512-87NVngcbVXUahrRTqIK27gD2t5Cu1yuCXxbLcFtCzZGlfyVWWh8mLHkoxzjsB6DDNnvdL+fW8MiwPEJyGJQDgQ==}
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
- '@typescript-eslint/types@8.20.0':
- resolution: {integrity: sha512-cqaMiY72CkP+2xZRrFt3ExRBu0WmVitN/rYPZErA80mHjHx/Svgp8yfbzkJmDoQ/whcytOPO9/IZXnOc+wigRA==}
+ '@typescript-eslint/types@8.22.0':
+ resolution: {integrity: sha512-0S4M4baNzp612zwpD4YOieP3VowOARgK2EkN/GBn95hpyF8E2fbMT55sRHWBq+Huaqk3b3XK+rxxlM8sPgGM6A==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
- '@typescript-eslint/types@8.21.0':
- resolution: {integrity: sha512-PAL6LUuQwotLW2a8VsySDBwYMm129vFm4tMVlylzdoTybTHaAi0oBp7Ac6LhSrHHOdLM3efH+nAR6hAWoMF89A==}
+ '@typescript-eslint/types@8.23.0':
+ resolution: {integrity: sha512-1sK4ILJbCmZOTt9k4vkoulT6/y5CHJ1qUYxqpF1K/DBAd8+ZUL4LlSCxOssuH5m4rUaaN0uS0HlVPvd45zjduQ==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
'@typescript-eslint/typescript-estree@5.62.0':
@@ -2282,14 +2282,14 @@ packages:
typescript:
optional: true
- '@typescript-eslint/typescript-estree@8.20.0':
- resolution: {integrity: sha512-Y7ncuy78bJqHI35NwzWol8E0X7XkRVS4K4P4TCyzWkOJih5NDvtoRDW4Ba9YJJoB2igm9yXDdYI/+fkiiAxPzA==}
+ '@typescript-eslint/typescript-estree@8.22.0':
+ resolution: {integrity: sha512-SJX99NAS2ugGOzpyhMza/tX+zDwjvwAtQFLsBo3GQxiGcvaKlqGBkmZ+Y1IdiSi9h4Q0Lr5ey+Cp9CGWNY/F/w==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
peerDependencies:
typescript: '>=4.8.4 <5.8.0'
- '@typescript-eslint/typescript-estree@8.21.0':
- resolution: {integrity: sha512-x+aeKh/AjAArSauz0GiQZsjT8ciadNMHdkUSwBB9Z6PrKc/4knM4g3UfHml6oDJmKC88a6//cdxnO/+P2LkMcg==}
+ '@typescript-eslint/typescript-estree@8.23.0':
+ resolution: {integrity: sha512-LcqzfipsB8RTvH8FX24W4UUFk1bl+0yTOf9ZA08XngFwMg4Kj8A+9hwz8Cr/ZS4KwHrmo9PJiLZkOt49vPnuvQ==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
peerDependencies:
typescript: '>=4.8.4 <5.8.0'
@@ -2300,15 +2300,15 @@ packages:
peerDependencies:
eslint: ^6.0.0 || ^7.0.0 || ^8.0.0
- '@typescript-eslint/utils@8.20.0':
- resolution: {integrity: sha512-dq70RUw6UK9ei7vxc4KQtBRk7qkHZv447OUZ6RPQMQl71I3NZxQJX/f32Smr+iqWrB02pHKn2yAdHBb0KNrRMA==}
+ '@typescript-eslint/utils@8.22.0':
+ resolution: {integrity: sha512-T8oc1MbF8L+Bk2msAvCUzjxVB2Z2f+vXYfcucE2wOmYs7ZUwco5Ep0fYZw8quNwOiw9K8GYVL+Kgc2pETNTLOg==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
peerDependencies:
eslint: ^8.57.0 || ^9.0.0
typescript: '>=4.8.4 <5.8.0'
- '@typescript-eslint/utils@8.21.0':
- resolution: {integrity: sha512-xcXBfcq0Kaxgj7dwejMbFyq7IOHgpNMtVuDveK7w3ZGwG9owKzhALVwKpTF2yrZmEwl9SWdetf3fxNzJQaVuxw==}
+ '@typescript-eslint/utils@8.23.0':
+ resolution: {integrity: sha512-uB/+PSo6Exu02b5ZEiVtmY6RVYO7YU5xqgzTIVZwTHvvK3HsL8tZZHFaTLFtRG3CsV4A5mhOv+NZx5BlhXPyIA==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
peerDependencies:
eslint: ^8.57.0 || ^9.0.0
@@ -2318,12 +2318,12 @@ packages:
resolution: {integrity: sha512-07ny+LHRzQXepkGg6w0mFY41fVUNBrL2Roj/++7V1txKugfjm/Ci/qSND03r2RhlJhJYMcTn9AhhSSqQp0Ysyw==}
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
- '@typescript-eslint/visitor-keys@8.20.0':
- resolution: {integrity: sha512-v/BpkeeYAsPkKCkR8BDwcno0llhzWVqPOamQrAEMdpZav2Y9OVjd9dwJyBLJWwf335B5DmlifECIkZRJCaGaHA==}
+ '@typescript-eslint/visitor-keys@8.22.0':
+ resolution: {integrity: sha512-AWpYAXnUgvLNabGTy3uBylkgZoosva/miNd1I8Bz3SjotmQPbVqhO4Cczo8AsZ44XVErEBPr/CRSgaj8sG7g0w==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
- '@typescript-eslint/visitor-keys@8.21.0':
- resolution: {integrity: sha512-BkLMNpdV6prozk8LlyK/SOoWLmUFi+ZD+pcqti9ILCbVvHGk1ui1g4jJOc2WDLaeExz2qWwojxlPce5PljcT3w==}
+ '@typescript-eslint/visitor-keys@8.23.0':
+ resolution: {integrity: sha512-oWWhcWDLwDfu++BGTZcmXWqpwtkwb5o7fxUIGksMQQDSdPW9prsSnfIOZMlsj4vBOSrcnjIUZMiIjODgGosFhQ==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
'@ungap/structured-clone@1.3.0':
@@ -2685,8 +2685,8 @@ packages:
resolution: {integrity: sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==}
engines: {node: '>=10'}
- caniuse-lite@1.0.30001695:
- resolution: {integrity: sha512-vHyLade6wTgI2u1ec3WQBxv+2BrTERV28UXQu9LO6lZ9pYeMk34vjXFLOxo1A4UBA8XTL4njRQZdno/yYaSmWw==}
+ caniuse-lite@1.0.30001697:
+ resolution: {integrity: sha512-GwNPlWJin8E+d7Gxq96jxM6w0w+VFeyyXRsjU58emtkYqnbwHqXm5uT2uCmO0RQE9htWknOP4xtBlLmM/gWxvQ==}
chalk@2.4.2:
resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==}
@@ -2748,8 +2748,8 @@ packages:
resolution: {integrity: sha512-HutrvTNsF48wnxkzERIXOe5/mlcfFcbfCmwcg6CJnizbSue78AbDt+1cgl26zwn61WFxhcPykPfZrbqjGmBb4A==}
engines: {node: '>=8'}
- cjs-module-lexer@1.4.1:
- resolution: {integrity: sha512-cuSVIHi9/9E/+821Qjdvngor+xpnlwnuwIyZOaLmHBVdXL+gP+I6QQB9VkO7RI77YIcTV+S1W9AreJ5eN63JBA==}
+ cjs-module-lexer@1.4.3:
+ resolution: {integrity: sha512-9z8TZaGM1pfswYeXrUpzPrkx8UnWYdhJclsiYMm6x/w5+nN+8Tf/LnAgfLGQCm59qAOxU8WwHEq2vNwF6i4j+Q==}
clean-git-ref@2.0.1:
resolution: {integrity: sha512-bLSptAy2P0s6hU4PzuIMKmMJJSE6gLXGH1cntDu7bWJUksvuM+7ReOK61mozULErYvP6a15rnYl0zFDef+pyPw==}
@@ -3107,8 +3107,8 @@ packages:
engines: {node: '>=0.10.0'}
hasBin: true
- electron-to-chromium@1.5.88:
- resolution: {integrity: sha512-K3C2qf1o+bGzbilTDCTBhTQcMS9KW60yTAaTeeXsfvQuTDDwlokLam/AdqlqcSy9u4UainDgsHV23ksXAOgamw==}
+ electron-to-chromium@1.5.91:
+ resolution: {integrity: sha512-sNSHHyq048PFmZY4S90ax61q+gLCs0X0YmcOII9wG9S2XwbVr+h4VW2wWhnbp/Eys3cCwTxVF292W3qPaxIapQ==}
email-addresses@5.0.0:
resolution: {integrity: sha512-4OIPYlA6JXqtVn8zpHpGiI7vE6EQOAg16aGnDMIAlZVinnoZ8208tW1hAbjWydgN/4PLTT9q+O1K6AH/vALJGw==}
@@ -3147,8 +3147,8 @@ packages:
end-of-stream@1.4.4:
resolution: {integrity: sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==}
- enhanced-resolve@5.18.0:
- resolution: {integrity: sha512-0/r0MySGYG8YqlayBZ6MuCfECmHFdJ5qyPh8s8wa5Hnm6SaFLSK1VYCbj+NKp090Nm1caZhD+QTnmxO7esYGyQ==}
+ enhanced-resolve@5.18.1:
+ resolution: {integrity: sha512-ZSW3ma5GkcQBIpwZTSRAI8N71Uuwgs93IezB7mf7R60tC8ZbJideoDNKjHn2O9KIlx6rkGTTEk1xUCK2E1Y2Yg==}
engines: {node: '>=10.13.0'}
entities@4.5.0:
@@ -3424,8 +3424,8 @@ packages:
resolution: {integrity: sha512-xkjOecfnKGkSsOwtZ5Pz7Us/T6mrbPQrq0nh+aCO5V9nk5NLWmasAHumTKjiPJPWANe+kAZ84Jc8ooJkzZ88Sw==}
hasBin: true
- fastq@1.18.0:
- resolution: {integrity: sha512-QKHXPW0hD8g4UET03SdOdunzSouc9N4AuHdsX8XNcTsuz+yYFILVNIX4l9yHABMhiEI9Db0JTTIpu0wB+Y1QQw==}
+ fastq@1.19.0:
+ resolution: {integrity: sha512-7SFSRCNjBQIZH/xZR3iy5iQYR8aGBE0h3VG6/cwlbrpdciNYBMotQav8c1XI3HjHH+NikUpP53nPdlZSdWmFzA==}
fb-watchman@2.0.2:
resolution: {integrity: sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==}
@@ -3556,8 +3556,8 @@ packages:
resolution: {integrity: sha512-LDODD4TMYx7XXdpwxAVRAIAuB0bzv0s+ywFonY46k126qzQHT9ygyoa9tncmOiQmmDrik65UYsEkv3lbfqQ3yQ==}
engines: {node: '>=14'}
- gcp-metadata@6.1.0:
- resolution: {integrity: sha512-Jh/AIwwgaxan+7ZUUmRLCjtchyDiqh4KjBJ5tW3plBZb5iL/BPcso8A5DlzeD9qlw0duCamnNdpFjxwaT0KyKg==}
+ gcp-metadata@6.1.1:
+ resolution: {integrity: sha512-a4tiq7E0/5fTjxPAaH4jpjkSv/uCaU2p5KC6HVGrvl0cDjA8iBZv4vv1gyzlmK0ZUKqwpOyQMKzZQe3lTit77A==}
engines: {node: '>=14'}
generic-pool@3.9.0:
@@ -3684,6 +3684,10 @@ packages:
resolution: {integrity: sha512-Jb6Z0+nvECVz+2lzSMt9u98UsoakXxA2HGHMCxh+so3n90XgYWkq5dur19JAJV7ONiJY22yBTyJB1TSkvPq9Ng==}
engines: {node: '>=14'}
+ google-logging-utils@0.0.2:
+ resolution: {integrity: sha512-NEgUnEcBiP5HrPzufUkBzJOD/Sxsco3rLNo1F1TNf7ieU8ryUzBhqba8r756CjLX7rn3fHl6iLEwPYuqpoKgQQ==}
+ engines: {node: '>=14'}
+
gopd@1.2.0:
resolution: {integrity: sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==}
engines: {node: '>= 0.4'}
@@ -3860,8 +3864,8 @@ packages:
immediate@3.0.6:
resolution: {integrity: sha512-XXOFtyqDjNDAQxVfYxuF7g9Il/IbWmmlQg2MYKOH8ExIT1qg6xc4zyS3HaEEATgs1btfzxq15ciUiY7gjSXRGQ==}
- import-fresh@3.3.0:
- resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==}
+ import-fresh@3.3.1:
+ resolution: {integrity: sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==}
engines: {node: '>=6'}
import-from-esm@2.0.0:
@@ -4104,8 +4108,8 @@ packages:
resolution: {integrity: sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w==}
engines: {node: '>= 0.4'}
- is-weakref@1.1.0:
- resolution: {integrity: sha512-SXM8Nwyys6nT5WP6pltOwKytLV7FqQ4UiibxVmW+EIosHcmCqkkjViTb5SNssDlkCiEYRP1/pdWUKVvZBmsR2Q==}
+ is-weakref@1.1.1:
+ resolution: {integrity: sha512-6i9mGWSlqzNMEqpCp93KwRS1uUOodk2OJ6b+sq7ZPDSy2WuI5NFIxp/254TytR8ftefexkWn5xNiHUNpPOfSew==}
engines: {node: '>= 0.4'}
is-weakset@2.0.4:
@@ -4580,11 +4584,11 @@ packages:
resolution: {integrity: sha512-u00joA/syf3VhWh6/ybVFkib5Zpj2e5KB/cfCei8fkSRuums6nyisTWGqjTWIOFoFwuXoTBQQiqlB4qFKp8ncQ==}
engines: {node: '>=18'}
- marked-terminal@7.2.1:
- resolution: {integrity: sha512-rQ1MoMFXZICWNsKMiiHwP/Z+92PLKskTPXj+e7uwXmuMPkNn7iTqC+IvDekVm1MPeC9wYQeLxeFaOvudRR/XbQ==}
+ marked-terminal@7.3.0:
+ resolution: {integrity: sha512-t4rBvPsHc57uE/2nJOLmMbZCQ4tgAccAED3ngXQqW6g+TxA488JzJ+FK3lQkzBQOI1mRV/r/Kq+1ZlJ4D0owQw==}
engines: {node: '>=16.0.0'}
peerDependencies:
- marked: '>=1 <15'
+ marked: '>=1 <16'
marked@12.0.2:
resolution: {integrity: sha512-qXUm7e/YKFoqFPYPa3Ukg9xlI5cyAtGmyEIzMfW//m6kXwCy2Ps9DYf5ioijFKQ8qyuscrHoY04iJGctu2Kg0Q==}
@@ -4887,8 +4891,8 @@ packages:
resolution: {integrity: sha512-o2zOYiCpzRqSzPj0Zt/dQ/DqZeYoaQ7TUonc/xUPjCGl9WeHpNbxgVvOquXYAaJzI0M9BXV3HTzG0p8IUAbBTQ==}
engines: {node: '>= 10.13'}
- node-abi@3.73.0:
- resolution: {integrity: sha512-z8iYzQGBu35ZkTQ9mtR8RqugJZ9RCLn8fv3d7LsgDBzOijGQP3RdKTX4LA7LXw03ZhU5z0l4xfhIMgSES31+cg==}
+ node-abi@3.74.0:
+ resolution: {integrity: sha512-c5XK0MjkGBrQPGYG24GBADZud0NCbznxNx0ZkS+ebUTrmV1qTDxPxSL8zEAPURXSbLRWVexxmP4986BziahL5w==}
engines: {node: '>=10'}
node-emoji@2.2.0:
@@ -5508,8 +5512,8 @@ packages:
resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==}
engines: {node: '>=0.10.0'}
- require-in-the-middle@7.4.0:
- resolution: {integrity: sha512-X34iHADNbNDfr6OTStIAHWSAvvKQRYgLO6duASaVf7J2VA3lvmNYboAHOuLC2huav1IwgZJtyEcJCKVzFxOSMQ==}
+ require-in-the-middle@7.5.0:
+ resolution: {integrity: sha512-/Tvpny/RVVicqlYTKwt/GtpZRsPG1CmJNhxVKGz+Sy/4MONfXCVNK69MFgGKdUt0/324q3ClI2dICcPgISrC8g==}
engines: {node: '>=8.6.0'}
require-main-filename@2.0.0:
@@ -5900,8 +5904,8 @@ packages:
resolution: {integrity: sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==}
engines: {node: '>=10'}
- supports-hyperlinks@3.1.0:
- resolution: {integrity: sha512-2rn0BZ+/f7puLOHZm1HOJfwBggfaHXUpPUSSG/SWM4TWp5KCfmNYwnC3hruy2rZlMnmWZ+QAGpZfchu3f3695A==}
+ supports-hyperlinks@3.2.0:
+ resolution: {integrity: sha512-zFObLMyZeEwzAoKCyu1B91U79K2t7ApXuQfo8OuxwXLDgcKxuwM+YvcbIhm6QWqz7mHUH1TVytR1PwVVjEuMig==}
engines: {node: '>=14.18'}
supports-preserve-symlinks-flag@1.0.0:
@@ -6016,8 +6020,8 @@ packages:
trough@1.0.5:
resolution: {integrity: sha512-rvuRbTarPXmMb79SmzEp8aqXNKcK+y0XaB298IXueQ8I2PsrATcPBCSPyK/dDNa2iWOhKlfNnOjdAOTBU/nkFA==}
- ts-api-utils@2.0.0:
- resolution: {integrity: sha512-xCt/TOAc+EOHS1XPnijD3/yzpH6qg2xppZO1YDqGoVsNXfQfzHpOdNuXwrwOU8u4ITXJyDCTyt8w5g1sZv9ynQ==}
+ ts-api-utils@2.0.1:
+ resolution: {integrity: sha512-dnlgjFSVetynI8nzgJ+qF62efpglpWRk8isUEWZGWlJYySCTD6aKvbUDu+zbPeDakk3bg5H4XpitHukgfL1m9w==}
engines: {node: '>=18.12'}
peerDependencies:
typescript: '>=4.8.4'
@@ -6548,26 +6552,26 @@ snapshots:
'@aws-sdk/util-user-agent-browser': 3.734.0
'@aws-sdk/util-user-agent-node': 3.734.0
'@smithy/config-resolver': 4.0.1
- '@smithy/core': 3.1.1
+ '@smithy/core': 3.1.2
'@smithy/fetch-http-handler': 5.0.1
'@smithy/hash-node': 4.0.1
'@smithy/invalid-dependency': 4.0.1
'@smithy/middleware-content-length': 4.0.1
- '@smithy/middleware-endpoint': 4.0.2
- '@smithy/middleware-retry': 4.0.3
- '@smithy/middleware-serde': 4.0.1
+ '@smithy/middleware-endpoint': 4.0.3
+ '@smithy/middleware-retry': 4.0.4
+ '@smithy/middleware-serde': 4.0.2
'@smithy/middleware-stack': 4.0.1
'@smithy/node-config-provider': 4.0.1
'@smithy/node-http-handler': 4.0.2
'@smithy/protocol-http': 5.0.1
- '@smithy/smithy-client': 4.1.2
+ '@smithy/smithy-client': 4.1.3
'@smithy/types': 4.1.0
'@smithy/url-parser': 4.0.1
'@smithy/util-base64': 4.0.0
'@smithy/util-body-length-browser': 4.0.0
'@smithy/util-body-length-node': 4.0.0
- '@smithy/util-defaults-mode-browser': 4.0.3
- '@smithy/util-defaults-mode-node': 4.0.3
+ '@smithy/util-defaults-mode-browser': 4.0.4
+ '@smithy/util-defaults-mode-node': 4.0.4
'@smithy/util-endpoints': 3.0.1
'@smithy/util-middleware': 4.0.1
'@smithy/util-retry': 4.0.1
@@ -6594,26 +6598,26 @@ snapshots:
'@aws-sdk/util-user-agent-browser': 3.734.0
'@aws-sdk/util-user-agent-node': 3.734.0
'@smithy/config-resolver': 4.0.1
- '@smithy/core': 3.1.1
+ '@smithy/core': 3.1.2
'@smithy/fetch-http-handler': 5.0.1
'@smithy/hash-node': 4.0.1
'@smithy/invalid-dependency': 4.0.1
'@smithy/middleware-content-length': 4.0.1
- '@smithy/middleware-endpoint': 4.0.2
- '@smithy/middleware-retry': 4.0.3
- '@smithy/middleware-serde': 4.0.1
+ '@smithy/middleware-endpoint': 4.0.3
+ '@smithy/middleware-retry': 4.0.4
+ '@smithy/middleware-serde': 4.0.2
'@smithy/middleware-stack': 4.0.1
'@smithy/node-config-provider': 4.0.1
'@smithy/node-http-handler': 4.0.2
'@smithy/protocol-http': 5.0.1
- '@smithy/smithy-client': 4.1.2
+ '@smithy/smithy-client': 4.1.3
'@smithy/types': 4.1.0
'@smithy/url-parser': 4.0.1
'@smithy/util-base64': 4.0.0
'@smithy/util-body-length-browser': 4.0.0
'@smithy/util-body-length-node': 4.0.0
- '@smithy/util-defaults-mode-browser': 4.0.3
- '@smithy/util-defaults-mode-node': 4.0.3
+ '@smithy/util-defaults-mode-browser': 4.0.4
+ '@smithy/util-defaults-mode-node': 4.0.4
'@smithy/util-endpoints': 3.0.1
'@smithy/util-middleware': 4.0.1
'@smithy/util-retry': 4.0.1
@@ -6639,26 +6643,26 @@ snapshots:
'@aws-sdk/util-user-agent-browser': 3.734.0
'@aws-sdk/util-user-agent-node': 3.734.0
'@smithy/config-resolver': 4.0.1
- '@smithy/core': 3.1.1
+ '@smithy/core': 3.1.2
'@smithy/fetch-http-handler': 5.0.1
'@smithy/hash-node': 4.0.1
'@smithy/invalid-dependency': 4.0.1
'@smithy/middleware-content-length': 4.0.1
- '@smithy/middleware-endpoint': 4.0.2
- '@smithy/middleware-retry': 4.0.3
- '@smithy/middleware-serde': 4.0.1
+ '@smithy/middleware-endpoint': 4.0.3
+ '@smithy/middleware-retry': 4.0.4
+ '@smithy/middleware-serde': 4.0.2
'@smithy/middleware-stack': 4.0.1
'@smithy/node-config-provider': 4.0.1
'@smithy/node-http-handler': 4.0.2
'@smithy/protocol-http': 5.0.1
- '@smithy/smithy-client': 4.1.2
+ '@smithy/smithy-client': 4.1.3
'@smithy/types': 4.1.0
'@smithy/url-parser': 4.0.1
'@smithy/util-base64': 4.0.0
'@smithy/util-body-length-browser': 4.0.0
'@smithy/util-body-length-node': 4.0.0
- '@smithy/util-defaults-mode-browser': 4.0.3
- '@smithy/util-defaults-mode-node': 4.0.3
+ '@smithy/util-defaults-mode-browser': 4.0.4
+ '@smithy/util-defaults-mode-node': 4.0.4
'@smithy/util-endpoints': 3.0.1
'@smithy/util-middleware': 4.0.1
'@smithy/util-retry': 4.0.1
@@ -6686,26 +6690,26 @@ snapshots:
'@aws-sdk/util-user-agent-browser': 3.734.0
'@aws-sdk/util-user-agent-node': 3.734.0
'@smithy/config-resolver': 4.0.1
- '@smithy/core': 3.1.1
+ '@smithy/core': 3.1.2
'@smithy/fetch-http-handler': 5.0.1
'@smithy/hash-node': 4.0.1
'@smithy/invalid-dependency': 4.0.1
'@smithy/middleware-content-length': 4.0.1
- '@smithy/middleware-endpoint': 4.0.2
- '@smithy/middleware-retry': 4.0.3
- '@smithy/middleware-serde': 4.0.1
+ '@smithy/middleware-endpoint': 4.0.3
+ '@smithy/middleware-retry': 4.0.4
+ '@smithy/middleware-serde': 4.0.2
'@smithy/middleware-stack': 4.0.1
'@smithy/node-config-provider': 4.0.1
'@smithy/node-http-handler': 4.0.2
'@smithy/protocol-http': 5.0.1
- '@smithy/smithy-client': 4.1.2
+ '@smithy/smithy-client': 4.1.3
'@smithy/types': 4.1.0
'@smithy/url-parser': 4.0.1
'@smithy/util-base64': 4.0.0
'@smithy/util-body-length-browser': 4.0.0
'@smithy/util-body-length-node': 4.0.0
- '@smithy/util-defaults-mode-browser': 4.0.3
- '@smithy/util-defaults-mode-node': 4.0.3
+ '@smithy/util-defaults-mode-browser': 4.0.4
+ '@smithy/util-defaults-mode-node': 4.0.4
'@smithy/util-endpoints': 3.0.1
'@smithy/util-middleware': 4.0.1
'@smithy/util-retry': 4.0.1
@@ -6732,26 +6736,26 @@ snapshots:
'@aws-sdk/util-user-agent-browser': 3.734.0
'@aws-sdk/util-user-agent-node': 3.734.0
'@smithy/config-resolver': 4.0.1
- '@smithy/core': 3.1.1
+ '@smithy/core': 3.1.2
'@smithy/fetch-http-handler': 5.0.1
'@smithy/hash-node': 4.0.1
'@smithy/invalid-dependency': 4.0.1
'@smithy/middleware-content-length': 4.0.1
- '@smithy/middleware-endpoint': 4.0.2
- '@smithy/middleware-retry': 4.0.3
- '@smithy/middleware-serde': 4.0.1
+ '@smithy/middleware-endpoint': 4.0.3
+ '@smithy/middleware-retry': 4.0.4
+ '@smithy/middleware-serde': 4.0.2
'@smithy/middleware-stack': 4.0.1
'@smithy/node-config-provider': 4.0.1
'@smithy/node-http-handler': 4.0.2
'@smithy/protocol-http': 5.0.1
- '@smithy/smithy-client': 4.1.2
+ '@smithy/smithy-client': 4.1.3
'@smithy/types': 4.1.0
'@smithy/url-parser': 4.0.1
'@smithy/util-base64': 4.0.0
'@smithy/util-body-length-browser': 4.0.0
'@smithy/util-body-length-node': 4.0.0
- '@smithy/util-defaults-mode-browser': 4.0.3
- '@smithy/util-defaults-mode-node': 4.0.3
+ '@smithy/util-defaults-mode-browser': 4.0.4
+ '@smithy/util-defaults-mode-node': 4.0.4
'@smithy/util-endpoints': 3.0.1
'@smithy/util-middleware': 4.0.1
'@smithy/util-retry': 4.0.1
@@ -6786,7 +6790,7 @@ snapshots:
'@aws-sdk/util-user-agent-node': 3.734.0
'@aws-sdk/xml-builder': 3.734.0
'@smithy/config-resolver': 4.0.1
- '@smithy/core': 3.1.1
+ '@smithy/core': 3.1.2
'@smithy/eventstream-serde-browser': 4.0.1
'@smithy/eventstream-serde-config-resolver': 4.0.1
'@smithy/eventstream-serde-node': 4.0.1
@@ -6797,21 +6801,21 @@ snapshots:
'@smithy/invalid-dependency': 4.0.1
'@smithy/md5-js': 4.0.1
'@smithy/middleware-content-length': 4.0.1
- '@smithy/middleware-endpoint': 4.0.2
- '@smithy/middleware-retry': 4.0.3
- '@smithy/middleware-serde': 4.0.1
+ '@smithy/middleware-endpoint': 4.0.3
+ '@smithy/middleware-retry': 4.0.4
+ '@smithy/middleware-serde': 4.0.2
'@smithy/middleware-stack': 4.0.1
'@smithy/node-config-provider': 4.0.1
'@smithy/node-http-handler': 4.0.2
'@smithy/protocol-http': 5.0.1
- '@smithy/smithy-client': 4.1.2
+ '@smithy/smithy-client': 4.1.3
'@smithy/types': 4.1.0
'@smithy/url-parser': 4.0.1
'@smithy/util-base64': 4.0.0
'@smithy/util-body-length-browser': 4.0.0
'@smithy/util-body-length-node': 4.0.0
- '@smithy/util-defaults-mode-browser': 4.0.3
- '@smithy/util-defaults-mode-node': 4.0.3
+ '@smithy/util-defaults-mode-browser': 4.0.4
+ '@smithy/util-defaults-mode-node': 4.0.4
'@smithy/util-endpoints': 3.0.1
'@smithy/util-middleware': 4.0.1
'@smithy/util-retry': 4.0.1
@@ -6837,26 +6841,26 @@ snapshots:
'@aws-sdk/util-user-agent-browser': 3.734.0
'@aws-sdk/util-user-agent-node': 3.734.0
'@smithy/config-resolver': 4.0.1
- '@smithy/core': 3.1.1
+ '@smithy/core': 3.1.2
'@smithy/fetch-http-handler': 5.0.1
'@smithy/hash-node': 4.0.1
'@smithy/invalid-dependency': 4.0.1
'@smithy/middleware-content-length': 4.0.1
- '@smithy/middleware-endpoint': 4.0.2
- '@smithy/middleware-retry': 4.0.3
- '@smithy/middleware-serde': 4.0.1
+ '@smithy/middleware-endpoint': 4.0.3
+ '@smithy/middleware-retry': 4.0.4
+ '@smithy/middleware-serde': 4.0.2
'@smithy/middleware-stack': 4.0.1
'@smithy/node-config-provider': 4.0.1
'@smithy/node-http-handler': 4.0.2
'@smithy/protocol-http': 5.0.1
- '@smithy/smithy-client': 4.1.2
+ '@smithy/smithy-client': 4.1.3
'@smithy/types': 4.1.0
'@smithy/url-parser': 4.0.1
'@smithy/util-base64': 4.0.0
'@smithy/util-body-length-browser': 4.0.0
'@smithy/util-body-length-node': 4.0.0
- '@smithy/util-defaults-mode-browser': 4.0.3
- '@smithy/util-defaults-mode-node': 4.0.3
+ '@smithy/util-defaults-mode-browser': 4.0.4
+ '@smithy/util-defaults-mode-node': 4.0.4
'@smithy/util-endpoints': 3.0.1
'@smithy/util-middleware': 4.0.1
'@smithy/util-retry': 4.0.1
@@ -6868,12 +6872,12 @@ snapshots:
'@aws-sdk/core@3.734.0':
dependencies:
'@aws-sdk/types': 3.734.0
- '@smithy/core': 3.1.1
+ '@smithy/core': 3.1.2
'@smithy/node-config-provider': 4.0.1
'@smithy/property-provider': 4.0.1
'@smithy/protocol-http': 5.0.1
'@smithy/signature-v4': 5.0.1
- '@smithy/smithy-client': 4.1.2
+ '@smithy/smithy-client': 4.1.3
'@smithy/types': 4.1.0
'@smithy/util-middleware': 4.0.1
fast-xml-parser: 4.4.1
@@ -6905,7 +6909,7 @@ snapshots:
'@smithy/node-http-handler': 4.0.2
'@smithy/property-provider': 4.0.1
'@smithy/protocol-http': 5.0.1
- '@smithy/smithy-client': 4.1.2
+ '@smithy/smithy-client': 4.1.3
'@smithy/types': 4.1.0
'@smithy/util-stream': 4.0.2
tslib: 2.8.1
@@ -6992,7 +6996,7 @@ snapshots:
'@aws-sdk/credential-provider-web-identity': 3.734.0
'@aws-sdk/nested-clients': 3.734.0
'@aws-sdk/types': 3.734.0
- '@smithy/core': 3.1.1
+ '@smithy/core': 3.1.2
'@smithy/credential-provider-imds': 4.0.1
'@smithy/property-provider': 4.0.1
'@smithy/types': 4.1.0
@@ -7063,10 +7067,10 @@ snapshots:
dependencies:
'@aws-sdk/types': 3.734.0
'@aws-sdk/util-format-url': 3.734.0
- '@smithy/middleware-endpoint': 4.0.2
+ '@smithy/middleware-endpoint': 4.0.3
'@smithy/protocol-http': 5.0.1
'@smithy/signature-v4': 5.0.1
- '@smithy/smithy-client': 4.1.2
+ '@smithy/smithy-client': 4.1.3
'@smithy/types': 4.1.0
tslib: 2.8.1
@@ -7074,7 +7078,7 @@ snapshots:
dependencies:
'@aws-sdk/types': 3.734.0
'@aws-sdk/util-format-url': 3.734.0
- '@smithy/middleware-endpoint': 4.0.2
+ '@smithy/middleware-endpoint': 4.0.3
'@smithy/protocol-http': 5.0.1
'@smithy/signature-v4': 5.0.1
'@smithy/types': 4.1.0
@@ -7085,11 +7089,11 @@ snapshots:
'@aws-sdk/core': 3.734.0
'@aws-sdk/types': 3.734.0
'@aws-sdk/util-arn-parser': 3.723.0
- '@smithy/core': 3.1.1
+ '@smithy/core': 3.1.2
'@smithy/node-config-provider': 4.0.1
'@smithy/protocol-http': 5.0.1
'@smithy/signature-v4': 5.0.1
- '@smithy/smithy-client': 4.1.2
+ '@smithy/smithy-client': 4.1.3
'@smithy/types': 4.1.0
'@smithy/util-config-provider': 4.0.0
'@smithy/util-middleware': 4.0.1
@@ -7108,7 +7112,7 @@ snapshots:
'@aws-sdk/core': 3.734.0
'@aws-sdk/types': 3.734.0
'@aws-sdk/util-endpoints': 3.734.0
- '@smithy/core': 3.1.1
+ '@smithy/core': 3.1.2
'@smithy/protocol-http': 5.0.1
'@smithy/types': 4.1.0
tslib: 2.8.1
@@ -7128,26 +7132,26 @@ snapshots:
'@aws-sdk/util-user-agent-browser': 3.734.0
'@aws-sdk/util-user-agent-node': 3.734.0
'@smithy/config-resolver': 4.0.1
- '@smithy/core': 3.1.1
+ '@smithy/core': 3.1.2
'@smithy/fetch-http-handler': 5.0.1
'@smithy/hash-node': 4.0.1
'@smithy/invalid-dependency': 4.0.1
'@smithy/middleware-content-length': 4.0.1
- '@smithy/middleware-endpoint': 4.0.2
- '@smithy/middleware-retry': 4.0.3
- '@smithy/middleware-serde': 4.0.1
+ '@smithy/middleware-endpoint': 4.0.3
+ '@smithy/middleware-retry': 4.0.4
+ '@smithy/middleware-serde': 4.0.2
'@smithy/middleware-stack': 4.0.1
'@smithy/node-config-provider': 4.0.1
'@smithy/node-http-handler': 4.0.2
'@smithy/protocol-http': 5.0.1
- '@smithy/smithy-client': 4.1.2
+ '@smithy/smithy-client': 4.1.3
'@smithy/types': 4.1.0
'@smithy/url-parser': 4.0.1
'@smithy/util-base64': 4.0.0
'@smithy/util-body-length-browser': 4.0.0
'@smithy/util-body-length-node': 4.0.0
- '@smithy/util-defaults-mode-browser': 4.0.3
- '@smithy/util-defaults-mode-node': 4.0.3
+ '@smithy/util-defaults-mode-browser': 4.0.4
+ '@smithy/util-defaults-mode-node': 4.0.4
'@smithy/util-endpoints': 3.0.1
'@smithy/util-middleware': 4.0.1
'@smithy/util-retry': 4.0.1
@@ -7451,7 +7455,7 @@ snapshots:
espree: 9.6.1
globals: 13.24.0
ignore: 5.3.2
- import-fresh: 3.3.0
+ import-fresh: 3.3.1
js-yaml: 4.1.0
minimatch: 3.1.2
strip-json-comments: 3.1.1
@@ -7508,7 +7512,7 @@ snapshots:
jest-util: 29.7.0
slash: 3.0.0
- '@jest/core@29.7.0(ts-node@10.9.2(@swc/core@1.10.9)(@types/node@22.10.9)(typescript@5.7.3))':
+ '@jest/core@29.7.0(ts-node@10.9.2(@swc/core@1.10.11)(@types/node@22.10.9)(typescript@5.7.3))':
dependencies:
'@jest/console': 29.7.0
'@jest/reporters': 29.7.0
@@ -7522,7 +7526,7 @@ snapshots:
exit: 0.1.2
graceful-fs: 4.2.11
jest-changed-files: 29.7.0
- jest-config: 29.7.0(@types/node@22.10.9)(ts-node@10.9.2(@swc/core@1.10.9)(@types/node@22.10.9)(typescript@5.7.3))
+ jest-config: 29.7.0(@types/node@22.10.9)(ts-node@10.9.2(@swc/core@1.10.11)(@types/node@22.10.9)(typescript@5.7.3))
jest-haste-map: 29.7.0
jest-message-util: 29.7.0
jest-regex-util: 29.6.3
@@ -7723,7 +7727,7 @@ snapshots:
'@nodelib/fs.walk@1.2.8':
dependencies:
'@nodelib/fs.scandir': 2.1.5
- fastq: 1.18.0
+ fastq: 1.19.0
'@nolyfill/is-core-module@1.0.39': {}
@@ -7749,7 +7753,7 @@ snapshots:
'@octokit/auth-token@4.0.0': {}
- '@octokit/auth-token@5.1.1': {}
+ '@octokit/auth-token@5.1.2': {}
'@octokit/core@5.2.0':
dependencies:
@@ -7757,40 +7761,40 @@ snapshots:
'@octokit/graphql': 7.1.0
'@octokit/request': 8.4.0
'@octokit/request-error': 5.1.0
- '@octokit/types': 13.7.0
+ '@octokit/types': 13.8.0
before-after-hook: 2.2.3
universal-user-agent: 6.0.1
'@octokit/core@6.1.3':
dependencies:
- '@octokit/auth-token': 5.1.1
- '@octokit/graphql': 8.1.2
+ '@octokit/auth-token': 5.1.2
+ '@octokit/graphql': 8.2.0
'@octokit/request': 9.2.0
'@octokit/request-error': 6.1.6
- '@octokit/types': 13.7.0
+ '@octokit/types': 13.8.0
before-after-hook: 3.0.2
universal-user-agent: 7.0.2
'@octokit/endpoint@10.1.2':
dependencies:
- '@octokit/types': 13.7.0
+ '@octokit/types': 13.8.0
universal-user-agent: 7.0.2
'@octokit/endpoint@9.0.5':
dependencies:
- '@octokit/types': 13.7.0
+ '@octokit/types': 13.8.0
universal-user-agent: 6.0.1
'@octokit/graphql@7.1.0':
dependencies:
'@octokit/request': 8.4.0
- '@octokit/types': 13.7.0
+ '@octokit/types': 13.8.0
universal-user-agent: 6.0.1
- '@octokit/graphql@8.1.2':
+ '@octokit/graphql@8.2.0':
dependencies:
'@octokit/request': 9.2.0
- '@octokit/types': 13.7.0
+ '@octokit/types': 13.8.0
universal-user-agent: 7.0.2
'@octokit/openapi-types@23.0.1': {}
@@ -7798,12 +7802,12 @@ snapshots:
'@octokit/plugin-paginate-rest@11.3.1(@octokit/core@5.2.0)':
dependencies:
'@octokit/core': 5.2.0
- '@octokit/types': 13.7.0
+ '@octokit/types': 13.8.0
'@octokit/plugin-paginate-rest@11.4.0(@octokit/core@6.1.3)':
dependencies:
'@octokit/core': 6.1.3
- '@octokit/types': 13.7.0
+ '@octokit/types': 13.8.0
'@octokit/plugin-request-log@4.0.1(@octokit/core@5.2.0)':
dependencies:
@@ -7812,43 +7816,43 @@ snapshots:
'@octokit/plugin-rest-endpoint-methods@13.2.2(@octokit/core@5.2.0)':
dependencies:
'@octokit/core': 5.2.0
- '@octokit/types': 13.7.0
+ '@octokit/types': 13.8.0
'@octokit/plugin-retry@7.1.3(@octokit/core@6.1.3)':
dependencies:
'@octokit/core': 6.1.3
'@octokit/request-error': 6.1.6
- '@octokit/types': 13.7.0
+ '@octokit/types': 13.8.0
bottleneck: 2.19.5
'@octokit/plugin-throttling@9.4.0(@octokit/core@6.1.3)':
dependencies:
'@octokit/core': 6.1.3
- '@octokit/types': 13.7.0
+ '@octokit/types': 13.8.0
bottleneck: 2.19.5
'@octokit/request-error@5.1.0':
dependencies:
- '@octokit/types': 13.7.0
+ '@octokit/types': 13.8.0
deprecation: 2.3.1
once: 1.4.0
'@octokit/request-error@6.1.6':
dependencies:
- '@octokit/types': 13.7.0
+ '@octokit/types': 13.8.0
'@octokit/request@8.4.0':
dependencies:
'@octokit/endpoint': 9.0.5
'@octokit/request-error': 5.1.0
- '@octokit/types': 13.7.0
+ '@octokit/types': 13.8.0
universal-user-agent: 6.0.1
'@octokit/request@9.2.0':
dependencies:
'@octokit/endpoint': 10.1.2
'@octokit/request-error': 6.1.6
- '@octokit/types': 13.7.0
+ '@octokit/types': 13.8.0
fast-content-type-parse: 2.0.1
universal-user-agent: 7.0.2
@@ -7859,7 +7863,7 @@ snapshots:
'@octokit/plugin-request-log': 4.0.1(@octokit/core@5.2.0)
'@octokit/plugin-rest-endpoint-methods': 13.2.2(@octokit/core@5.2.0)
- '@octokit/types@13.7.0':
+ '@octokit/types@13.8.0':
dependencies:
'@octokit/openapi-types': 23.0.1
@@ -7919,7 +7923,7 @@ snapshots:
'@opentelemetry/api-logs': 0.57.1
'@types/shimmer': 1.2.0
import-in-the-middle: 1.12.0
- require-in-the-middle: 7.4.0
+ require-in-the-middle: 7.5.0
semver: 7.6.3
shimmer: 1.2.1
transitivePeerDependencies:
@@ -8321,9 +8325,9 @@ snapshots:
'@smithy/util-middleware': 4.0.1
tslib: 2.8.1
- '@smithy/core@3.1.1':
+ '@smithy/core@3.1.2':
dependencies:
- '@smithy/middleware-serde': 4.0.1
+ '@smithy/middleware-serde': 4.0.2
'@smithy/protocol-http': 5.0.1
'@smithy/types': 4.1.0
'@smithy/util-body-length-browser': 4.0.0
@@ -8423,10 +8427,10 @@ snapshots:
'@smithy/types': 4.1.0
tslib: 2.8.1
- '@smithy/middleware-endpoint@4.0.2':
+ '@smithy/middleware-endpoint@4.0.3':
dependencies:
- '@smithy/core': 3.1.1
- '@smithy/middleware-serde': 4.0.1
+ '@smithy/core': 3.1.2
+ '@smithy/middleware-serde': 4.0.2
'@smithy/node-config-provider': 4.0.1
'@smithy/shared-ini-file-loader': 4.0.1
'@smithy/types': 4.1.0
@@ -8434,19 +8438,19 @@ snapshots:
'@smithy/util-middleware': 4.0.1
tslib: 2.8.1
- '@smithy/middleware-retry@4.0.3':
+ '@smithy/middleware-retry@4.0.4':
dependencies:
'@smithy/node-config-provider': 4.0.1
'@smithy/protocol-http': 5.0.1
'@smithy/service-error-classification': 4.0.1
- '@smithy/smithy-client': 4.1.2
+ '@smithy/smithy-client': 4.1.3
'@smithy/types': 4.1.0
'@smithy/util-middleware': 4.0.1
'@smithy/util-retry': 4.0.1
tslib: 2.8.1
uuid: 9.0.1
- '@smithy/middleware-serde@4.0.1':
+ '@smithy/middleware-serde@4.0.2':
dependencies:
'@smithy/types': 4.1.0
tslib: 2.8.1
@@ -8512,10 +8516,10 @@ snapshots:
'@smithy/util-utf8': 4.0.0
tslib: 2.8.1
- '@smithy/smithy-client@4.1.2':
+ '@smithy/smithy-client@4.1.3':
dependencies:
- '@smithy/core': 3.1.1
- '@smithy/middleware-endpoint': 4.0.2
+ '@smithy/core': 3.1.2
+ '@smithy/middleware-endpoint': 4.0.3
'@smithy/middleware-stack': 4.0.1
'@smithy/protocol-http': 5.0.1
'@smithy/types': 4.1.0
@@ -8560,21 +8564,21 @@ snapshots:
dependencies:
tslib: 2.8.1
- '@smithy/util-defaults-mode-browser@4.0.3':
+ '@smithy/util-defaults-mode-browser@4.0.4':
dependencies:
'@smithy/property-provider': 4.0.1
- '@smithy/smithy-client': 4.1.2
+ '@smithy/smithy-client': 4.1.3
'@smithy/types': 4.1.0
bowser: 2.11.0
tslib: 2.8.1
- '@smithy/util-defaults-mode-node@4.0.3':
+ '@smithy/util-defaults-mode-node@4.0.4':
dependencies:
'@smithy/config-resolver': 4.0.1
'@smithy/credential-provider-imds': 4.0.1
'@smithy/node-config-provider': 4.0.1
'@smithy/property-provider': 4.0.1
- '@smithy/smithy-client': 4.1.2
+ '@smithy/smithy-client': 4.1.3
'@smithy/types': 4.1.0
tslib: 2.8.1
@@ -8630,51 +8634,51 @@ snapshots:
'@smithy/types': 4.1.0
tslib: 2.8.1
- '@swc/core-darwin-arm64@1.10.9':
+ '@swc/core-darwin-arm64@1.10.11':
optional: true
- '@swc/core-darwin-x64@1.10.9':
+ '@swc/core-darwin-x64@1.10.11':
optional: true
- '@swc/core-linux-arm-gnueabihf@1.10.9':
+ '@swc/core-linux-arm-gnueabihf@1.10.11':
optional: true
- '@swc/core-linux-arm64-gnu@1.10.9':
+ '@swc/core-linux-arm64-gnu@1.10.11':
optional: true
- '@swc/core-linux-arm64-musl@1.10.9':
+ '@swc/core-linux-arm64-musl@1.10.11':
optional: true
- '@swc/core-linux-x64-gnu@1.10.9':
+ '@swc/core-linux-x64-gnu@1.10.11':
optional: true
- '@swc/core-linux-x64-musl@1.10.9':
+ '@swc/core-linux-x64-musl@1.10.11':
optional: true
- '@swc/core-win32-arm64-msvc@1.10.9':
+ '@swc/core-win32-arm64-msvc@1.10.11':
optional: true
- '@swc/core-win32-ia32-msvc@1.10.9':
+ '@swc/core-win32-ia32-msvc@1.10.11':
optional: true
- '@swc/core-win32-x64-msvc@1.10.9':
+ '@swc/core-win32-x64-msvc@1.10.11':
optional: true
- '@swc/core@1.10.9':
+ '@swc/core@1.10.11':
dependencies:
'@swc/counter': 0.1.3
'@swc/types': 0.1.17
optionalDependencies:
- '@swc/core-darwin-arm64': 1.10.9
- '@swc/core-darwin-x64': 1.10.9
- '@swc/core-linux-arm-gnueabihf': 1.10.9
- '@swc/core-linux-arm64-gnu': 1.10.9
- '@swc/core-linux-arm64-musl': 1.10.9
- '@swc/core-linux-x64-gnu': 1.10.9
- '@swc/core-linux-x64-musl': 1.10.9
- '@swc/core-win32-arm64-msvc': 1.10.9
- '@swc/core-win32-ia32-msvc': 1.10.9
- '@swc/core-win32-x64-msvc': 1.10.9
+ '@swc/core-darwin-arm64': 1.10.11
+ '@swc/core-darwin-x64': 1.10.11
+ '@swc/core-linux-arm-gnueabihf': 1.10.11
+ '@swc/core-linux-arm64-gnu': 1.10.11
+ '@swc/core-linux-arm64-musl': 1.10.11
+ '@swc/core-linux-x64-gnu': 1.10.11
+ '@swc/core-linux-x64-musl': 1.10.11
+ '@swc/core-win32-arm64-msvc': 1.10.11
+ '@swc/core-win32-ia32-msvc': 1.10.11
+ '@swc/core-win32-x64-msvc': 1.10.11
'@swc/counter@0.1.3': {}
@@ -8859,7 +8863,7 @@ snapshots:
'@types/linkify-markdown@1.0.3': {}
- '@types/lodash@4.17.14': {}
+ '@types/lodash@4.17.15': {}
'@types/luxon@3.4.2': {}
@@ -8950,19 +8954,19 @@ snapshots:
'@types/node': 22.10.9
optional: true
- '@typescript-eslint/eslint-plugin@8.20.0(@typescript-eslint/parser@8.20.0(eslint@8.57.1)(typescript@5.7.3))(eslint@8.57.1)(typescript@5.7.3)':
+ '@typescript-eslint/eslint-plugin@8.22.0(@typescript-eslint/parser@8.22.0(eslint@8.57.1)(typescript@5.7.3))(eslint@8.57.1)(typescript@5.7.3)':
dependencies:
'@eslint-community/regexpp': 4.12.1
- '@typescript-eslint/parser': 8.20.0(eslint@8.57.1)(typescript@5.7.3)
- '@typescript-eslint/scope-manager': 8.20.0
- '@typescript-eslint/type-utils': 8.20.0(eslint@8.57.1)(typescript@5.7.3)
- '@typescript-eslint/utils': 8.20.0(eslint@8.57.1)(typescript@5.7.3)
- '@typescript-eslint/visitor-keys': 8.20.0
+ '@typescript-eslint/parser': 8.22.0(eslint@8.57.1)(typescript@5.7.3)
+ '@typescript-eslint/scope-manager': 8.22.0
+ '@typescript-eslint/type-utils': 8.22.0(eslint@8.57.1)(typescript@5.7.3)
+ '@typescript-eslint/utils': 8.22.0(eslint@8.57.1)(typescript@5.7.3)
+ '@typescript-eslint/visitor-keys': 8.22.0
eslint: 8.57.1
graphemer: 1.4.0
ignore: 5.3.2
natural-compare: 1.4.0
- ts-api-utils: 2.0.0(typescript@5.7.3)
+ ts-api-utils: 2.0.1(typescript@5.7.3)
typescript: 5.7.3
transitivePeerDependencies:
- supports-color
@@ -8975,12 +8979,12 @@ snapshots:
- supports-color
- typescript
- '@typescript-eslint/parser@8.20.0(eslint@8.57.1)(typescript@5.7.3)':
+ '@typescript-eslint/parser@8.22.0(eslint@8.57.1)(typescript@5.7.3)':
dependencies:
- '@typescript-eslint/scope-manager': 8.20.0
- '@typescript-eslint/types': 8.20.0
- '@typescript-eslint/typescript-estree': 8.20.0(typescript@5.7.3)
- '@typescript-eslint/visitor-keys': 8.20.0
+ '@typescript-eslint/scope-manager': 8.22.0
+ '@typescript-eslint/types': 8.22.0
+ '@typescript-eslint/typescript-estree': 8.22.0(typescript@5.7.3)
+ '@typescript-eslint/visitor-keys': 8.22.0
debug: 4.4.0
eslint: 8.57.1
typescript: 5.7.3
@@ -8992,32 +8996,32 @@ snapshots:
'@typescript-eslint/types': 5.62.0
'@typescript-eslint/visitor-keys': 5.62.0
- '@typescript-eslint/scope-manager@8.20.0':
+ '@typescript-eslint/scope-manager@8.22.0':
dependencies:
- '@typescript-eslint/types': 8.20.0
- '@typescript-eslint/visitor-keys': 8.20.0
+ '@typescript-eslint/types': 8.22.0
+ '@typescript-eslint/visitor-keys': 8.22.0
- '@typescript-eslint/scope-manager@8.21.0':
+ '@typescript-eslint/scope-manager@8.23.0':
dependencies:
- '@typescript-eslint/types': 8.21.0
- '@typescript-eslint/visitor-keys': 8.21.0
+ '@typescript-eslint/types': 8.23.0
+ '@typescript-eslint/visitor-keys': 8.23.0
- '@typescript-eslint/type-utils@8.20.0(eslint@8.57.1)(typescript@5.7.3)':
+ '@typescript-eslint/type-utils@8.22.0(eslint@8.57.1)(typescript@5.7.3)':
dependencies:
- '@typescript-eslint/typescript-estree': 8.20.0(typescript@5.7.3)
- '@typescript-eslint/utils': 8.20.0(eslint@8.57.1)(typescript@5.7.3)
+ '@typescript-eslint/typescript-estree': 8.22.0(typescript@5.7.3)
+ '@typescript-eslint/utils': 8.22.0(eslint@8.57.1)(typescript@5.7.3)
debug: 4.4.0
eslint: 8.57.1
- ts-api-utils: 2.0.0(typescript@5.7.3)
+ ts-api-utils: 2.0.1(typescript@5.7.3)
typescript: 5.7.3
transitivePeerDependencies:
- supports-color
'@typescript-eslint/types@5.62.0': {}
- '@typescript-eslint/types@8.20.0': {}
+ '@typescript-eslint/types@8.22.0': {}
- '@typescript-eslint/types@8.21.0': {}
+ '@typescript-eslint/types@8.23.0': {}
'@typescript-eslint/typescript-estree@5.62.0(typescript@5.7.3)':
dependencies:
@@ -9033,30 +9037,30 @@ snapshots:
transitivePeerDependencies:
- supports-color
- '@typescript-eslint/typescript-estree@8.20.0(typescript@5.7.3)':
+ '@typescript-eslint/typescript-estree@8.22.0(typescript@5.7.3)':
dependencies:
- '@typescript-eslint/types': 8.20.0
- '@typescript-eslint/visitor-keys': 8.20.0
+ '@typescript-eslint/types': 8.22.0
+ '@typescript-eslint/visitor-keys': 8.22.0
debug: 4.4.0
fast-glob: 3.3.3
is-glob: 4.0.3
minimatch: 9.0.5
semver: 7.6.3
- ts-api-utils: 2.0.0(typescript@5.7.3)
+ ts-api-utils: 2.0.1(typescript@5.7.3)
typescript: 5.7.3
transitivePeerDependencies:
- supports-color
- '@typescript-eslint/typescript-estree@8.21.0(typescript@5.7.3)':
+ '@typescript-eslint/typescript-estree@8.23.0(typescript@5.7.3)':
dependencies:
- '@typescript-eslint/types': 8.21.0
- '@typescript-eslint/visitor-keys': 8.21.0
+ '@typescript-eslint/types': 8.23.0
+ '@typescript-eslint/visitor-keys': 8.23.0
debug: 4.4.0
fast-glob: 3.3.3
is-glob: 4.0.3
minimatch: 9.0.5
semver: 7.6.3
- ts-api-utils: 2.0.0(typescript@5.7.3)
+ ts-api-utils: 2.0.1(typescript@5.7.3)
typescript: 5.7.3
transitivePeerDependencies:
- supports-color
@@ -9076,23 +9080,23 @@ snapshots:
- supports-color
- typescript
- '@typescript-eslint/utils@8.20.0(eslint@8.57.1)(typescript@5.7.3)':
+ '@typescript-eslint/utils@8.22.0(eslint@8.57.1)(typescript@5.7.3)':
dependencies:
'@eslint-community/eslint-utils': 4.4.1(eslint@8.57.1)
- '@typescript-eslint/scope-manager': 8.20.0
- '@typescript-eslint/types': 8.20.0
- '@typescript-eslint/typescript-estree': 8.20.0(typescript@5.7.3)
+ '@typescript-eslint/scope-manager': 8.22.0
+ '@typescript-eslint/types': 8.22.0
+ '@typescript-eslint/typescript-estree': 8.22.0(typescript@5.7.3)
eslint: 8.57.1
typescript: 5.7.3
transitivePeerDependencies:
- supports-color
- '@typescript-eslint/utils@8.21.0(eslint@8.57.1)(typescript@5.7.3)':
+ '@typescript-eslint/utils@8.23.0(eslint@8.57.1)(typescript@5.7.3)':
dependencies:
'@eslint-community/eslint-utils': 4.4.1(eslint@8.57.1)
- '@typescript-eslint/scope-manager': 8.21.0
- '@typescript-eslint/types': 8.21.0
- '@typescript-eslint/typescript-estree': 8.21.0(typescript@5.7.3)
+ '@typescript-eslint/scope-manager': 8.23.0
+ '@typescript-eslint/types': 8.23.0
+ '@typescript-eslint/typescript-estree': 8.23.0(typescript@5.7.3)
eslint: 8.57.1
typescript: 5.7.3
transitivePeerDependencies:
@@ -9103,14 +9107,14 @@ snapshots:
'@typescript-eslint/types': 5.62.0
eslint-visitor-keys: 3.4.3
- '@typescript-eslint/visitor-keys@8.20.0':
+ '@typescript-eslint/visitor-keys@8.22.0':
dependencies:
- '@typescript-eslint/types': 8.20.0
+ '@typescript-eslint/types': 8.22.0
eslint-visitor-keys: 4.2.0
- '@typescript-eslint/visitor-keys@8.21.0':
+ '@typescript-eslint/visitor-keys@8.23.0':
dependencies:
- '@typescript-eslint/types': 8.21.0
+ '@typescript-eslint/types': 8.23.0
eslint-visitor-keys: 4.2.0
'@ungap/structured-clone@1.3.0': {}
@@ -9455,8 +9459,8 @@ snapshots:
browserslist@4.24.4:
dependencies:
- caniuse-lite: 1.0.30001695
- electron-to-chromium: 1.5.88
+ caniuse-lite: 1.0.30001697
+ electron-to-chromium: 1.5.91
node-releases: 2.0.19
update-browserslist-db: 1.1.2(browserslist@4.24.4)
@@ -9569,7 +9573,7 @@ snapshots:
camelcase@6.3.0: {}
- caniuse-lite@1.0.30001695: {}
+ caniuse-lite@1.0.30001697: {}
chalk@2.4.2:
dependencies:
@@ -9616,7 +9620,7 @@ snapshots:
ci-info@4.1.0: {}
- cjs-module-lexer@1.4.1: {}
+ cjs-module-lexer@1.4.3: {}
clean-git-ref@2.0.1: {}
@@ -9749,19 +9753,19 @@ snapshots:
cosmiconfig@9.0.0(typescript@5.7.3):
dependencies:
env-paths: 2.2.1
- import-fresh: 3.3.0
+ import-fresh: 3.3.1
js-yaml: 4.1.0
parse-json: 5.2.0
optionalDependencies:
typescript: 5.7.3
- create-jest@29.7.0(@types/node@22.10.9)(ts-node@10.9.2(@swc/core@1.10.9)(@types/node@22.10.9)(typescript@5.7.3)):
+ create-jest@29.7.0(@types/node@22.10.9)(ts-node@10.9.2(@swc/core@1.10.11)(@types/node@22.10.9)(typescript@5.7.3)):
dependencies:
'@jest/types': 29.6.3
chalk: 4.1.2
exit: 0.1.2
graceful-fs: 4.2.11
- jest-config: 29.7.0(@types/node@22.10.9)(ts-node@10.9.2(@swc/core@1.10.9)(@types/node@22.10.9)(typescript@5.7.3))
+ jest-config: 29.7.0(@types/node@22.10.9)(ts-node@10.9.2(@swc/core@1.10.11)(@types/node@22.10.9)(typescript@5.7.3))
jest-util: 29.7.0
prompts: 2.4.2
transitivePeerDependencies:
@@ -9958,7 +9962,7 @@ snapshots:
dependencies:
jake: 10.9.2
- electron-to-chromium@1.5.88: {}
+ electron-to-chromium@1.5.91: {}
email-addresses@5.0.0: {}
@@ -9989,7 +9993,7 @@ snapshots:
dependencies:
once: 1.4.0
- enhanced-resolve@5.18.0:
+ enhanced-resolve@5.18.1:
dependencies:
graceful-fs: 4.2.11
tapable: 2.2.1
@@ -10045,7 +10049,7 @@ snapshots:
is-shared-array-buffer: 1.0.4
is-string: 1.1.1
is-typed-array: 1.1.15
- is-weakref: 1.1.0
+ is-weakref: 1.1.1
math-intrinsics: 1.1.0
object-inspect: 1.13.3
object-keys: 1.1.1
@@ -10128,7 +10132,7 @@ snapshots:
dependencies:
'@nolyfill/is-core-module': 1.0.39
debug: 4.4.0
- enhanced-resolve: 5.18.0
+ enhanced-resolve: 5.18.1
eslint: 8.57.1
fast-glob: 3.3.3
get-tsconfig: 4.10.0
@@ -10136,22 +10140,22 @@ snapshots:
is-glob: 4.0.3
stable-hash: 0.0.4
optionalDependencies:
- eslint-plugin-import: 2.31.0(@typescript-eslint/parser@8.20.0(eslint@8.57.1)(typescript@5.7.3))(eslint-import-resolver-typescript@3.7.0)(eslint@8.57.1)
+ eslint-plugin-import: 2.31.0(@typescript-eslint/parser@8.22.0(eslint@8.57.1)(typescript@5.7.3))(eslint-import-resolver-typescript@3.7.0)(eslint@8.57.1)
transitivePeerDependencies:
- supports-color
- eslint-module-utils@2.12.0(@typescript-eslint/parser@8.20.0(eslint@8.57.1)(typescript@5.7.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.7.0)(eslint@8.57.1):
+ eslint-module-utils@2.12.0(@typescript-eslint/parser@8.22.0(eslint@8.57.1)(typescript@5.7.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.7.0)(eslint@8.57.1):
dependencies:
debug: 3.2.7
optionalDependencies:
- '@typescript-eslint/parser': 8.20.0(eslint@8.57.1)(typescript@5.7.3)
+ '@typescript-eslint/parser': 8.22.0(eslint@8.57.1)(typescript@5.7.3)
eslint: 8.57.1
eslint-import-resolver-node: 0.3.9
eslint-import-resolver-typescript: 3.7.0(eslint-plugin-import@2.31.0)(eslint@8.57.1)
transitivePeerDependencies:
- supports-color
- eslint-plugin-import@2.31.0(@typescript-eslint/parser@8.20.0(eslint@8.57.1)(typescript@5.7.3))(eslint-import-resolver-typescript@3.7.0)(eslint@8.57.1):
+ eslint-plugin-import@2.31.0(@typescript-eslint/parser@8.22.0(eslint@8.57.1)(typescript@5.7.3))(eslint-import-resolver-typescript@3.7.0)(eslint@8.57.1):
dependencies:
'@rtsao/scc': 1.1.0
array-includes: 3.1.8
@@ -10162,7 +10166,7 @@ snapshots:
doctrine: 2.1.0
eslint: 8.57.1
eslint-import-resolver-node: 0.3.9
- eslint-module-utils: 2.12.0(@typescript-eslint/parser@8.20.0(eslint@8.57.1)(typescript@5.7.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.7.0)(eslint@8.57.1)
+ eslint-module-utils: 2.12.0(@typescript-eslint/parser@8.22.0(eslint@8.57.1)(typescript@5.7.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.7.0)(eslint@8.57.1)
hasown: 2.0.2
is-core-module: 2.16.1
is-glob: 4.0.3
@@ -10174,7 +10178,7 @@ snapshots:
string.prototype.trimend: 1.0.9
tsconfig-paths: 3.15.0
optionalDependencies:
- '@typescript-eslint/parser': 8.20.0(eslint@8.57.1)(typescript@5.7.3)
+ '@typescript-eslint/parser': 8.22.0(eslint@8.57.1)(typescript@5.7.3)
transitivePeerDependencies:
- eslint-import-resolver-typescript
- eslint-import-resolver-webpack
@@ -10184,13 +10188,13 @@ snapshots:
dependencies:
eslint: 8.57.1
- eslint-plugin-jest@28.11.0(@typescript-eslint/eslint-plugin@8.20.0(@typescript-eslint/parser@8.20.0(eslint@8.57.1)(typescript@5.7.3))(eslint@8.57.1)(typescript@5.7.3))(eslint@8.57.1)(jest@29.7.0(@types/node@22.10.9)(ts-node@10.9.2(@swc/core@1.10.9)(@types/node@22.10.9)(typescript@5.7.3)))(typescript@5.7.3):
+ eslint-plugin-jest@28.11.0(@typescript-eslint/eslint-plugin@8.22.0(@typescript-eslint/parser@8.22.0(eslint@8.57.1)(typescript@5.7.3))(eslint@8.57.1)(typescript@5.7.3))(eslint@8.57.1)(jest@29.7.0(@types/node@22.10.9)(ts-node@10.9.2(@swc/core@1.10.11)(@types/node@22.10.9)(typescript@5.7.3)))(typescript@5.7.3):
dependencies:
- '@typescript-eslint/utils': 8.21.0(eslint@8.57.1)(typescript@5.7.3)
+ '@typescript-eslint/utils': 8.23.0(eslint@8.57.1)(typescript@5.7.3)
eslint: 8.57.1
optionalDependencies:
- '@typescript-eslint/eslint-plugin': 8.20.0(@typescript-eslint/parser@8.20.0(eslint@8.57.1)(typescript@5.7.3))(eslint@8.57.1)(typescript@5.7.3)
- jest: 29.7.0(@types/node@22.10.9)(ts-node@10.9.2(@swc/core@1.10.9)(@types/node@22.10.9)(typescript@5.7.3))
+ '@typescript-eslint/eslint-plugin': 8.22.0(@typescript-eslint/parser@8.22.0(eslint@8.57.1)(typescript@5.7.3))(eslint@8.57.1)(typescript@5.7.3)
+ jest: 29.7.0(@types/node@22.10.9)(ts-node@10.9.2(@swc/core@1.10.11)(@types/node@22.10.9)(typescript@5.7.3))
transitivePeerDependencies:
- supports-color
- typescript
@@ -10384,7 +10388,7 @@ snapshots:
dependencies:
strnum: 1.0.5
- fastq@1.18.0:
+ fastq@1.19.0:
dependencies:
reusify: 1.0.4
@@ -10539,9 +10543,10 @@ snapshots:
- encoding
- supports-color
- gcp-metadata@6.1.0(encoding@0.1.13):
+ gcp-metadata@6.1.1(encoding@0.1.13):
dependencies:
gaxios: 6.7.1(encoding@0.1.13)
+ google-logging-utils: 0.0.2
json-bigint: 1.0.0
transitivePeerDependencies:
- encoding
@@ -10714,13 +10719,15 @@ snapshots:
base64-js: 1.5.1
ecdsa-sig-formatter: 1.0.11
gaxios: 6.7.1(encoding@0.1.13)
- gcp-metadata: 6.1.0(encoding@0.1.13)
+ gcp-metadata: 6.1.1(encoding@0.1.13)
gtoken: 7.1.0(encoding@0.1.13)
jws: 4.0.0
transitivePeerDependencies:
- encoding
- supports-color
+ google-logging-utils@0.0.2: {}
+
gopd@1.2.0: {}
got@11.8.6:
@@ -10882,7 +10889,7 @@ snapshots:
immediate@3.0.6: {}
- import-fresh@3.3.0:
+ import-fresh@3.3.1:
dependencies:
parent-module: 1.0.1
resolve-from: 4.0.0
@@ -10898,7 +10905,7 @@ snapshots:
dependencies:
acorn: 8.14.0
acorn-import-attributes: 1.9.5(acorn@8.14.0)
- cjs-module-lexer: 1.4.1
+ cjs-module-lexer: 1.4.3
module-details-from-path: 1.0.3
import-local@3.2.0:
@@ -11109,7 +11116,7 @@ snapshots:
is-weakmap@2.0.2: {}
- is-weakref@1.1.0:
+ is-weakref@1.1.1:
dependencies:
call-bound: 1.0.3
@@ -11241,16 +11248,16 @@ snapshots:
- babel-plugin-macros
- supports-color
- jest-cli@29.7.0(@types/node@22.10.9)(ts-node@10.9.2(@swc/core@1.10.9)(@types/node@22.10.9)(typescript@5.7.3)):
+ jest-cli@29.7.0(@types/node@22.10.9)(ts-node@10.9.2(@swc/core@1.10.11)(@types/node@22.10.9)(typescript@5.7.3)):
dependencies:
- '@jest/core': 29.7.0(ts-node@10.9.2(@swc/core@1.10.9)(@types/node@22.10.9)(typescript@5.7.3))
+ '@jest/core': 29.7.0(ts-node@10.9.2(@swc/core@1.10.11)(@types/node@22.10.9)(typescript@5.7.3))
'@jest/test-result': 29.7.0
'@jest/types': 29.6.3
chalk: 4.1.2
- create-jest: 29.7.0(@types/node@22.10.9)(ts-node@10.9.2(@swc/core@1.10.9)(@types/node@22.10.9)(typescript@5.7.3))
+ create-jest: 29.7.0(@types/node@22.10.9)(ts-node@10.9.2(@swc/core@1.10.11)(@types/node@22.10.9)(typescript@5.7.3))
exit: 0.1.2
import-local: 3.2.0
- jest-config: 29.7.0(@types/node@22.10.9)(ts-node@10.9.2(@swc/core@1.10.9)(@types/node@22.10.9)(typescript@5.7.3))
+ jest-config: 29.7.0(@types/node@22.10.9)(ts-node@10.9.2(@swc/core@1.10.11)(@types/node@22.10.9)(typescript@5.7.3))
jest-util: 29.7.0
jest-validate: 29.7.0
yargs: 17.7.2
@@ -11260,7 +11267,7 @@ snapshots:
- supports-color
- ts-node
- jest-config@29.7.0(@types/node@22.10.9)(ts-node@10.9.2(@swc/core@1.10.9)(@types/node@22.10.9)(typescript@5.7.3)):
+ jest-config@29.7.0(@types/node@22.10.9)(ts-node@10.9.2(@swc/core@1.10.11)(@types/node@22.10.9)(typescript@5.7.3)):
dependencies:
'@babel/core': 7.26.7
'@jest/test-sequencer': 29.7.0
@@ -11286,7 +11293,7 @@ snapshots:
strip-json-comments: 3.1.1
optionalDependencies:
'@types/node': 22.10.9
- ts-node: 10.9.2(@swc/core@1.10.9)(@types/node@22.10.9)(typescript@5.7.3)
+ ts-node: 10.9.2(@swc/core@1.10.11)(@types/node@22.10.9)(typescript@5.7.3)
transitivePeerDependencies:
- babel-plugin-macros
- supports-color
@@ -11319,12 +11326,12 @@ snapshots:
jest-mock: 29.7.0
jest-util: 29.7.0
- jest-extended@4.0.2(jest@29.7.0(@types/node@22.10.9)(ts-node@10.9.2(@swc/core@1.10.9)(@types/node@22.10.9)(typescript@5.7.3))):
+ jest-extended@4.0.2(jest@29.7.0(@types/node@22.10.9)(ts-node@10.9.2(@swc/core@1.10.11)(@types/node@22.10.9)(typescript@5.7.3))):
dependencies:
jest-diff: 29.7.0
jest-get-type: 29.6.3
optionalDependencies:
- jest: 29.7.0(@types/node@22.10.9)(ts-node@10.9.2(@swc/core@1.10.9)(@types/node@22.10.9)(typescript@5.7.3))
+ jest: 29.7.0(@types/node@22.10.9)(ts-node@10.9.2(@swc/core@1.10.11)(@types/node@22.10.9)(typescript@5.7.3))
jest-get-type@29.6.3: {}
@@ -11375,9 +11382,9 @@ snapshots:
slash: 3.0.0
stack-utils: 2.0.6
- jest-mock-extended@3.0.7(jest@29.7.0(@types/node@22.10.9)(ts-node@10.9.2(@swc/core@1.10.9)(@types/node@22.10.9)(typescript@5.7.3)))(typescript@5.7.3):
+ jest-mock-extended@3.0.7(jest@29.7.0(@types/node@22.10.9)(ts-node@10.9.2(@swc/core@1.10.11)(@types/node@22.10.9)(typescript@5.7.3)))(typescript@5.7.3):
dependencies:
- jest: 29.7.0(@types/node@22.10.9)(ts-node@10.9.2(@swc/core@1.10.9)(@types/node@22.10.9)(typescript@5.7.3))
+ jest: 29.7.0(@types/node@22.10.9)(ts-node@10.9.2(@swc/core@1.10.11)(@types/node@22.10.9)(typescript@5.7.3))
ts-essentials: 10.0.4(typescript@5.7.3)
typescript: 5.7.3
@@ -11449,7 +11456,7 @@ snapshots:
'@jest/types': 29.6.3
'@types/node': 22.10.9
chalk: 4.1.2
- cjs-module-lexer: 1.4.1
+ cjs-module-lexer: 1.4.3
collect-v8-coverage: 1.0.2
glob: 7.2.3
graceful-fs: 4.2.11
@@ -11526,12 +11533,12 @@ snapshots:
merge-stream: 2.0.0
supports-color: 8.1.1
- jest@29.7.0(@types/node@22.10.9)(ts-node@10.9.2(@swc/core@1.10.9)(@types/node@22.10.9)(typescript@5.7.3)):
+ jest@29.7.0(@types/node@22.10.9)(ts-node@10.9.2(@swc/core@1.10.11)(@types/node@22.10.9)(typescript@5.7.3)):
dependencies:
- '@jest/core': 29.7.0(ts-node@10.9.2(@swc/core@1.10.9)(@types/node@22.10.9)(typescript@5.7.3))
+ '@jest/core': 29.7.0(ts-node@10.9.2(@swc/core@1.10.11)(@types/node@22.10.9)(typescript@5.7.3))
'@jest/types': 29.6.3
import-local: 3.2.0
- jest-cli: 29.7.0(@types/node@22.10.9)(ts-node@10.9.2(@swc/core@1.10.9)(@types/node@22.10.9)(typescript@5.7.3))
+ jest-cli: 29.7.0(@types/node@22.10.9)(ts-node@10.9.2(@swc/core@1.10.11)(@types/node@22.10.9)(typescript@5.7.3))
transitivePeerDependencies:
- '@types/node'
- babel-plugin-macros
@@ -11794,7 +11801,7 @@ snapshots:
transitivePeerDependencies:
- supports-color
- marked-terminal@7.2.1(marked@12.0.2):
+ marked-terminal@7.3.0(marked@12.0.2):
dependencies:
ansi-escapes: 7.0.0
ansi-regex: 6.1.0
@@ -11803,7 +11810,7 @@ snapshots:
cli-table3: 0.6.5
marked: 12.0.2
node-emoji: 2.2.0
- supports-hyperlinks: 3.1.0
+ supports-hyperlinks: 3.2.0
marked@12.0.2: {}
@@ -12217,7 +12224,7 @@ snapshots:
transitivePeerDependencies:
- supports-color
- node-abi@3.73.0:
+ node-abi@3.74.0:
dependencies:
semver: 7.6.3
optional: true
@@ -12634,7 +12641,7 @@ snapshots:
minimist: 1.2.8
mkdirp-classic: 0.5.3
napi-build-utils: 2.0.0
- node-abi: 3.73.0
+ node-abi: 3.74.0
pump: 3.0.2
rc: 1.2.8
simple-get: 4.0.1
@@ -12865,7 +12872,7 @@ snapshots:
require-directory@2.1.1: {}
- require-in-the-middle@7.4.0:
+ require-in-the-middle@7.5.0:
dependencies:
debug: 4.4.0
module-details-from-path: 1.0.3
@@ -12981,7 +12988,7 @@ snapshots:
import-from-esm: 2.0.0
lodash-es: 4.17.21
marked: 12.0.2
- marked-terminal: 7.2.1(marked@12.0.2)
+ marked-terminal: 7.3.0(marked@12.0.2)
micromatch: 4.0.8
p-each-series: 3.0.0
p-reduce: 3.0.0
@@ -13318,7 +13325,7 @@ snapshots:
dependencies:
has-flag: 4.0.0
- supports-hyperlinks@3.1.0:
+ supports-hyperlinks@3.2.0:
dependencies:
has-flag: 4.0.0
supports-color: 7.2.0
@@ -13449,7 +13456,7 @@ snapshots:
trough@1.0.5: {}
- ts-api-utils@2.0.0(typescript@5.7.3):
+ ts-api-utils@2.0.1(typescript@5.7.3):
dependencies:
typescript: 5.7.3
@@ -13457,12 +13464,12 @@ snapshots:
optionalDependencies:
typescript: 5.7.3
- ts-jest@29.2.5(@babel/core@7.26.7)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.26.7))(jest@29.7.0(@types/node@22.10.9)(ts-node@10.9.2(@swc/core@1.10.9)(@types/node@22.10.9)(typescript@5.7.3)))(typescript@5.7.3):
+ ts-jest@29.2.5(@babel/core@7.26.7)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.26.7))(jest@29.7.0(@types/node@22.10.9)(ts-node@10.9.2(@swc/core@1.10.11)(@types/node@22.10.9)(typescript@5.7.3)))(typescript@5.7.3):
dependencies:
bs-logger: 0.2.6
ejs: 3.1.10
fast-json-stable-stringify: 2.1.0
- jest: 29.7.0(@types/node@22.10.9)(ts-node@10.9.2(@swc/core@1.10.9)(@types/node@22.10.9)(typescript@5.7.3))
+ jest: 29.7.0(@types/node@22.10.9)(ts-node@10.9.2(@swc/core@1.10.11)(@types/node@22.10.9)(typescript@5.7.3))
jest-util: 29.7.0
json5: 2.2.3
lodash.memoize: 4.1.2
@@ -13476,7 +13483,7 @@ snapshots:
'@jest/types': 29.6.3
babel-jest: 29.7.0(@babel/core@7.26.7)
- ts-node@10.9.2(@swc/core@1.10.9)(@types/node@22.10.9)(typescript@5.7.3):
+ ts-node@10.9.2(@swc/core@1.10.11)(@types/node@22.10.9)(typescript@5.7.3):
dependencies:
'@cspotcode/source-map-support': 0.8.1
'@tsconfig/node10': 1.0.11
@@ -13494,7 +13501,7 @@ snapshots:
v8-compile-cache-lib: 3.0.1
yn: 3.1.1
optionalDependencies:
- '@swc/core': 1.10.9
+ '@swc/core': 1.10.11
tsconfig-paths@3.15.0:
dependencies:
@@ -13768,7 +13775,7 @@ snapshots:
is-finalizationregistry: 1.1.1
is-generator-function: 1.1.0
is-regex: 1.2.1
- is-weakref: 1.1.0
+ is-weakref: 1.1.1
isarray: 2.0.5
which-boxed-primitive: 1.1.1
which-collection: 1.0.2
diff --git a/pyproject.toml b/pyproject.toml
index ab231c3855bc30..ff290ef1b9ea69 100644
--- a/pyproject.toml
+++ b/pyproject.toml
@@ -1,6 +1,6 @@
[project]
dependencies = [
- "mkdocs-material==9.6.1",
+ "mkdocs-material==9.6.2",
"mkdocs-awesome-pages-plugin==2.10.1",
]
requires-python = ">=3.11"
diff --git a/tools/docker/Dockerfile b/tools/docker/Dockerfile
index 6b67d454c5c790..6caca5c726d78d 100644
--- a/tools/docker/Dockerfile
+++ b/tools/docker/Dockerfile
@@ -23,6 +23,10 @@ FROM --platform=$BUILDPLATFORM ghcr.io/renovatebot/base-image:9.38.3@sha256:e4d3
# renovate: datasource=node-version
RUN install-tool node 22.13.1
+# corepack is too buggy 😞
+# renovate: datasource=npm
+RUN install-tool pnpm 9.15.4
+
WORKDIR /usr/local/renovate
ARG TARGETPLATFORM
@@ -63,14 +67,14 @@ ENV npm_config_arch=${ARCH} npm_config_platform_arch=${ARCH}
# only fetch deps from lockfile https://pnpm.io/cli/fetch
RUN set -ex; \
- corepack pnpm fetch --prod; \
+ pnpm fetch --prod; \
true
COPY --link . ./
# install npm packages
RUN set -ex; \
- corepack pnpm install --prod --offline --ignore-scripts; \
+ pnpm install --prod --offline --ignore-scripts; \
true
# --------------------------------------