diff --git a/.devcontainer/Dockerfile b/.devcontainer/Dockerfile index 7ef0afc6e6ebec..a5f27891c1540e 100644 --- a/.devcontainer/Dockerfile +++ b/.devcontainer/Dockerfile @@ -1 +1 @@ -FROM ghcr.io/containerbase/devcontainer:13.0.11 +FROM ghcr.io/containerbase/devcontainer:13.0.21 diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 9edb052856d486..6e896b6390085c 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -31,12 +31,13 @@ concurrency: env: DEFAULT_BRANCH: ${{ github.event.repository.default_branch }} NODE_VERSION: 22 - PDM_VERSION: 2.20.0.post1 # renovate: datasource=pypi depName=pdm + PDM_VERSION: 2.20.1 # renovate: datasource=pypi depName=pdm DRY_RUN: true TEST_LEGACY_DECRYPTION: true SPARSE_CHECKOUT: |- .github/actions/ data/ + patches/ tools/ package.json pnpm-lock.yaml @@ -683,7 +684,7 @@ jobs: show-progress: false - name: docker-config - uses: containerbase/internal-tools@5da2b2ba4cbde318e17640f04c54306ddee36856 # v3.4.40 + uses: containerbase/internal-tools@fd19a9e4e99f83adf8ec2529ef1276b626d6785f # v3.4.45 with: command: docker-config diff --git a/.github/workflows/codeql-analysis.yml b/.github/workflows/codeql-analysis.yml index 88cfda2d9f4300..ff42f0e039a08b 100644 --- a/.github/workflows/codeql-analysis.yml +++ b/.github/workflows/codeql-analysis.yml @@ -41,7 +41,7 @@ jobs: # Initializes the CodeQL tools for scanning. - name: Initialize CodeQL - uses: github/codeql-action/init@662472033e021d55d94146f66f6058822b0b39fd # v3.27.0 + uses: github/codeql-action/init@f09c1c0a94de965c15400f5634aa42fac8fb8f88 # v3.27.5 with: languages: javascript @@ -51,7 +51,7 @@ jobs: # Autobuild attempts to build any compiled languages (C/C++, C#, or Java). # If this step fails, then you should remove it and run the build manually (see below) - name: Autobuild - uses: github/codeql-action/autobuild@662472033e021d55d94146f66f6058822b0b39fd # v3.27.0 + uses: github/codeql-action/autobuild@f09c1c0a94de965c15400f5634aa42fac8fb8f88 # v3.27.5 # ℹī¸ Command-line programs to run using the OS shell. # 📚 https://git.io/JvXDl @@ -65,4 +65,4 @@ jobs: # make release - name: Perform CodeQL Analysis - uses: github/codeql-action/analyze@662472033e021d55d94146f66f6058822b0b39fd # v3.27.0 + uses: github/codeql-action/analyze@f09c1c0a94de965c15400f5634aa42fac8fb8f88 # v3.27.5 diff --git a/.github/workflows/dependency-review.yml b/.github/workflows/dependency-review.yml index 607e581b8ff5c4..993aa483de8858 100644 --- a/.github/workflows/dependency-review.yml +++ b/.github/workflows/dependency-review.yml @@ -14,4 +14,4 @@ jobs: show-progress: false - name: 'Dependency Review' - uses: actions/dependency-review-action@4081bf99e2866ebe428fc0477b69eb4fcda7220a # v4.4.0 + uses: actions/dependency-review-action@3b139cfc5fae8b618d3eae3675e383bb1769c019 # v4.5.0 diff --git a/.github/workflows/mend-slack.yml b/.github/workflows/mend-slack.yml index 7f4c8e8288c103..14a0f4fc32bfc7 100644 --- a/.github/workflows/mend-slack.yml +++ b/.github/workflows/mend-slack.yml @@ -14,7 +14,7 @@ jobs: steps: - name: Post to Slack id: slack - uses: slackapi/slack-github-action@37ebaef184d7626c5f204ab8d3baff4262dd30f0 # v1.27.0 + uses: slackapi/slack-github-action@fcfb566f8b0aab22203f066d80ca1d7e4b5d05b3 # v1.27.1 with: channel-id: 'C05NLTMGCJC' # For posting a simple plain text message diff --git a/.github/workflows/scorecard.yml b/.github/workflows/scorecard.yml index 9b66c586520f47..22834a82fe36d2 100644 --- a/.github/workflows/scorecard.yml +++ b/.github/workflows/scorecard.yml @@ -51,6 +51,6 @@ jobs: # Upload the results to GitHub's code scanning dashboard. - name: 'Upload to code-scanning' - uses: github/codeql-action/upload-sarif@662472033e021d55d94146f66f6058822b0b39fd # v3.27.0 + uses: github/codeql-action/upload-sarif@f09c1c0a94de965c15400f5634aa42fac8fb8f88 # v3.27.5 with: sarif_file: results.sarif diff --git a/.github/workflows/trivy.yml b/.github/workflows/trivy.yml index 0e141d17ee1753..1997a7eead1e6f 100644 --- a/.github/workflows/trivy.yml +++ b/.github/workflows/trivy.yml @@ -25,13 +25,13 @@ jobs: with: show-progress: false - - uses: aquasecurity/trivy-action@915b19bbe73b92a6cf82a1bc12b087c9a19a5fe2 # 0.28.0 + - uses: aquasecurity/trivy-action@18f2510ee396bbf400402947b394f2dd8c87dbb0 # 0.29.0 with: image-ref: ghcr.io/renovatebot/renovate:${{ matrix.tag }} format: 'sarif' output: 'trivy-results.sarif' - - uses: github/codeql-action/upload-sarif@662472033e021d55d94146f66f6058822b0b39fd # v3.27.0 + - uses: github/codeql-action/upload-sarif@f09c1c0a94de965c15400f5634aa42fac8fb8f88 # v3.27.5 with: sarif_file: trivy-results.sarif category: 'docker-image-${{ matrix.tag }}' diff --git a/docs/usage/assets/images/app-settings/add-host-rule.png b/docs/usage/assets/images/app-settings/add-host-rule.png new file mode 100644 index 00000000000000..b55ff559357aa0 Binary files /dev/null and b/docs/usage/assets/images/app-settings/add-host-rule.png differ diff --git a/docs/usage/assets/images/app-settings/host-rules.png b/docs/usage/assets/images/app-settings/host-rules.png new file mode 100644 index 00000000000000..ed2427f5d36bf0 Binary files /dev/null and b/docs/usage/assets/images/app-settings/host-rules.png differ diff --git a/docs/usage/config-presets.md b/docs/usage/config-presets.md index 8d90c12dd93252..095115f253d0a8 100644 --- a/docs/usage/config-presets.md +++ b/docs/usage/config-presets.md @@ -176,7 +176,7 @@ To host your preset config on GitHub: - Create a new repository. Normally you'd call it `renovate-config` but it can be named anything - Add configuration files to this new repo for any presets you want to share. For the default preset, `default.json` will be checked. For named presets, `.json` will be loaded. For example, loading preset `library` would load `library.json`. No other files are necessary. -- In other repos, reference it in an extends array like "github>owner/name", for example: +- In other repos, reference it in an extends array like `"github>owner/name"`, for example: ```json { @@ -195,7 +195,7 @@ To host your preset config on GitLab: - Create a new repository on GitLab. Normally you'd call it `renovate-config` but it can be named anything - Add a `default.json` to this new repo containing the preset config. No other files are necessary -- In other repos, reference it in an extends array like "gitlab>owner/name", e.g. "gitlab>rarkins/renovate-config" +- In other repos, reference it in an extends array like `"gitlab>owner/name"`, e.g. `"gitlab>rarkins/renovate-config"` ## Gitea-hosted Presets diff --git a/docs/usage/configuration-options.md b/docs/usage/configuration-options.md index 02f2d3394cd350..dc974e1bd17b08 100644 --- a/docs/usage/configuration-options.md +++ b/docs/usage/configuration-options.md @@ -122,7 +122,7 @@ If enabled Renovate tries to determine PR assignees by matching rules defined in Read the docs for your platform for details on syntax and allowed file locations: - [GitHub Docs, About code owners](https://docs.github.com/en/repositories/managing-your-repositorys-settings-and-features/customizing-your-repository/about-code-owners) -- [GitLab, Code Owners](https://docs.gitlab.com/ee/user/project/code_owners.html) +- [GitLab, Code Owners](https://docs.gitlab.com/ee/user/project/codeowners/) - [Bitbucket, Set up and use code owners](https://support.atlassian.com/bitbucket-cloud/docs/set-up-and-use-code-owners/) ## assigneesSampleSize diff --git a/docs/usage/docker.md b/docs/usage/docker.md index d6582773b5afa1..d3224dd4e3400c 100644 --- a/docs/usage/docker.md +++ b/docs/usage/docker.md @@ -307,7 +307,7 @@ Renovate will get the credentials with the [`google-auth-library`](https://www.n service_account: ${{ env.SERVICE_ACCOUNT }} - name: renovate - uses: renovatebot/github-action@v40.3.5 + uses: renovatebot/github-action@v41.0.3 env: RENOVATE_HOST_RULES: | [ @@ -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:38.142.5 +FROM renovate/renovate:39.19.1 # 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 92c871a195a0f8..9d2abe6d44898b 100644 --- a/docs/usage/examples/opentelemetry.md +++ b/docs/usage/examples/opentelemetry.md @@ -13,13 +13,13 @@ version: '3' services: # Jaeger jaeger: - image: jaegertracing/all-in-one:1.62.0 + image: jaegertracing/all-in-one:1.63.0 ports: - '16686:16686' - '4317' otel-collector: - image: otel/opentelemetry-collector-contrib:0.113.0 + image: otel/opentelemetry-collector-contrib:0.114.0 command: ['--config=/etc/otel-collector-config.yml'] volumes: - ./otel-collector-config.yml:/etc/otel-collector-config.yml diff --git a/docs/usage/examples/self-hosting.md b/docs/usage/examples/self-hosting.md index edc1b91a386940..a343bd70720955 100644 --- a/docs/usage/examples/self-hosting.md +++ b/docs/usage/examples/self-hosting.md @@ -24,9 +24,9 @@ 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:38 -docker run --rm renovate/renovate:38.142 -docker run --rm renovate/renovate:38.142.5 +docker run --rm renovate/renovate:39 +docker run --rm renovate/renovate:39.19 +docker run --rm renovate/renovate:39.19.1 ``` @@ -62,7 +62,7 @@ spec: - name: renovate # Update this to the latest available and then enable Renovate on # the manifest - image: renovate/renovate:38.142.5 + image: renovate/renovate:39.19.1 args: - user/repo # Environment Variables @@ -121,7 +121,7 @@ spec: template: spec: containers: - - image: renovate/renovate:38.142.5 + - image: renovate/renovate:39.19.1 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:38.142.5 + image: renovate/renovate:39.19.1 volumeMounts: - name: ssh-key-volume readOnly: true diff --git a/docs/usage/faq.md b/docs/usage/faq.md index 75beefa07302d9..ab2fed23fcf078 100644 --- a/docs/usage/faq.md +++ b/docs/usage/faq.md @@ -51,7 +51,7 @@ Follow these steps to see which version the Mend Renovate app is on: ``` INFO: Repository started { - "renovateVersion": "38.120.1" + "renovateVersion": "39.11.5" } ``` diff --git a/docs/usage/getting-started/private-packages.md b/docs/usage/getting-started/private-packages.md index 5efa53b1bb51c0..0e6eb2f0dbca41 100644 --- a/docs/usage/getting-started/private-packages.md +++ b/docs/usage/getting-started/private-packages.md @@ -611,7 +611,7 @@ If you need to provide credentials to the Mend Renovate App, please do this: } ``` -For more details, see [Using Secrets with Mend Cloud Apps](../mend-hosted/app-secrets.md). +For more details, see [Using Secrets with Mend Cloud Apps](../mend-hosted/credentials.md). ### Access to GitHub Actions Secrets diff --git a/docs/usage/golang.md b/docs/usage/golang.md index 51b334ab624718..4394a5f4dcd957 100644 --- a/docs/usage/golang.md +++ b/docs/usage/golang.md @@ -67,16 +67,16 @@ By default, Renovate will keep up with the latest version of the `go` binary. You can force Renovate to use a specific version of Go by setting a constraint. -```json title="Getting Renovate to use the latest patch version of the 1.16 Go binary" +```json title="Getting Renovate to use the latest patch version of the 1.23 Go binary" { "constraints": { - "go": "1.16" + "go": "1.23" } } ``` We do not support patch level versions for the minimum `go` version. -This means you cannot use `go 1.16.6`, but you can use `go 1.16` as a constraint. +This means you cannot use `go 1.23.3`, but you can use `go 1.23` as a constraint. ### Custom registry support, and authentication diff --git a/docs/usage/mend-hosted/.pages b/docs/usage/mend-hosted/.pages index 90b6607a9f5084..01b1b47debd098 100644 --- a/docs/usage/mend-hosted/.pages +++ b/docs/usage/mend-hosted/.pages @@ -1,5 +1,5 @@ title: Mend-hosted Apps nav: - 'Configuration': 'hosted-apps-config.md' - - 'App Secrets': 'app-secrets.md' + - 'Credentials': 'credentials.md' - 'Migrating Secrets': 'migrating-secrets.md' diff --git a/docs/usage/mend-hosted/app-secrets.md b/docs/usage/mend-hosted/credentials.md similarity index 78% rename from docs/usage/mend-hosted/app-secrets.md rename to docs/usage/mend-hosted/credentials.md index 4e01c4a718eadc..b0fdab984b1cf8 100644 --- a/docs/usage/mend-hosted/app-secrets.md +++ b/docs/usage/mend-hosted/credentials.md @@ -31,6 +31,7 @@ To add a secret for the Mend cloud app: ![Credentials settings page](../assets/images/app-settings/app-credentials.png) 4. Reference the secret from Renovate config files inside the repo. + Alternatively, you can use the Host Rules UI (see below). ```json { @@ -43,6 +44,21 @@ To add a secret for the Mend cloud app: } ``` +### Adding a host rule through the UI + +You can centrally add/configure Host Rules through the Mend UI as an alternative to including them in Renovate presets. + +1. Open the _Credentials_ section of the settings page for the relevant Org or Repo. +2. Select `ADD HOST RULE` to open the "Add a Host Rule" dialog box. + + ![Add Host Rule](../assets/images/app-settings/add-host-rule.png) + +3. Fill out the details for your host rule. + + As an example, if you are a Bitbucket or Azure DevOps user, and you want to specify a github.com token to fetch release notes and enable github-based datasources, you could create a host rule like this: + + ![Host Rules dialog box](../assets/images/app-settings/host-rules.png) + ## Organization secrets vs repository secrets ### Secret scope diff --git a/docs/usage/mend-hosted/migrating-secrets.md b/docs/usage/mend-hosted/migrating-secrets.md index ac74c451bc2f41..d73839009896c9 100644 --- a/docs/usage/mend-hosted/migrating-secrets.md +++ b/docs/usage/mend-hosted/migrating-secrets.md @@ -1,6 +1,6 @@ # Migrating Secrets from Repo Config to App Settings -On 01-Oct-2024 the Mend Renovate cloud apps will stop reading any encrypted secrets from the Renovate configuration file on your repository. +Use of encrypted secrets in the Mend Renovate cloud apps has been deprecated and soon the apps will stop reading any encrypted secrets from the Renovate configuration file on your repository. Previously, you could encrypt a secret with the [Renovate encryption tool](https://app.renovatebot.com/encrypt) and then put it in your Renovate config file. Going forward, all secrets must be stored in the App settings on the cloud. @@ -102,4 +102,4 @@ If you were expecting to import a secret originally encrypted by Renovate: ## Related links -- [Using Secrets with Mend Cloud Apps](app-secrets.md) +- [Using Secrets with Mend Cloud Apps](credentials.md) diff --git a/docs/usage/release-notes-for-major-versions.md b/docs/usage/release-notes-for-major-versions.md index cc1b650b2908c4..5a1241fdc27d88 100644 --- a/docs/usage/release-notes-for-major-versions.md +++ b/docs/usage/release-notes-for-major-versions.md @@ -7,6 +7,71 @@ The most recent versions are always at the top of the page. This is because recent versions may revert changes made in an older version. You also don't have to scroll to the bottom of the page to find the latest release notes. +## Version 39 + +### Breaking changes for 39 + +#### New tools for all Docker images + +All our Docker images now use: + +- Node.js v22 as base, was Node.js v20 +- Ubuntu 24.04 as base, was 20.04 + +#### New Docker user ID for all Docker images + +All our Docker images now set the Docker user ID to `12021`, the old ID was `1001`. + +After updating your Renovate Docker image to the new v39 release, you must: + +- Delete your old Docker cache, _or_ +- Ensure the new user ID has write permissions to any existing cache + +#### Updated version of Python, and new default behavior for the `-full` Docker image + +On top of the changes listed above, the `-full` image now: + +- Uses Python 3.13 +- Defaults to [`binarySource=global`](self-hosted-configuration.md#binarysource) (note: this was previously the case in v36 onwards but regressed sometime in v38) + +If you want to keep the old behavior, where Renovate dynamically installs the needed tools: set the environment variable `RENOVATE_BINARY_SOURCE` to `"install"`. + +#### Renovate tries squash merges first when automerging on GitHub + +Due to technical reasons, GitHub will only sign commits coming from a squash merge. +To help those who want Renovate to sign its commits, Renovate now tries the squash merge first. + +Of course, Renovate only uses the merge method(s) that you allow in your GitHub repository config. + +##### How you can allow squash merges on your GitHub repository + +If you want to allow squash merges on your GitHub repository, follow the steps in the [GitHub Docs, configuring commit squashing for pull requests](https://docs.github.com/en/repositories/configuring-branches-and-merges-in-your-repository/configuring-pull-request-merges/configuring-commit-squashing-for-pull-requests). + +#### Branch names with multiple slashes + +If you set `branchNameStrict=true`, then branch names with multiple forward slashes (`/`) will change. + +The problem was that even if you set `branchNameStrict=true`, in some cases special characters could still end up in Renovate's branch names. +We fixed this problem, by letting Renovate convert multiple forward slashes (`/`) to hyphens (`-`) in its branch names, if `branchNameStrict=true`. + +### Commentary for 39 + +#### Technical reasons for trying the squash merge first on GitHub + +Renovate has changed its GitHub merge preference to "squash" because this way results in signed commits, while "rebase" merges do not. + +Read the [GitHub Docs, Signature verification for rebase and merge](https://docs.github.com/en/authentication/managing-commit-signature-verification/about-commit-signature-verification#signature-verification-for-rebase-and-merge) to learn more about commit signing. + +#### Why we change branch names with multiple slashes + +Branches with mutiple slashes (`/`) are not wanted, this was a bug. +We are changing it in a major release out of politeness to all our users. +If you enabled `branchNameStrict`, you can expect some branch names to change. + +### Link to release notes for 39 + +[Release notes for `v39` on GitHub](https://github.com/renovatebot/renovate/releases/tag/39.0.0). + ## Version 38 ### Breaking changes for 38 @@ -130,7 +195,7 @@ If you're on a version of Lerna before v7, you should prioritize upgrading to v7 - **automerge:** Platform automerge will now be chosen by default whenever automerge is enabled - Post upgrade templating is now allowed by default, as long as the post upgrade task command is itself already allowed - Official Renovate Docker images now use the "slim" approach with `binarySource=install` by default. e.g. `renovate/renovate:latest` is the slim image, not full -- The "full" image is now available via the tag `full`, e.g. `renovate/renovate:38-full`, and defaults to `binarySource=global` (no dynamic installs) +- The "full" image is now available via the tag `full`, e.g. `renovate/renovate:39-full`, and defaults to `binarySource=global` (no dynamic installs) - Third party tools in the full image have been updated to latest/LTS major version ### Commentary for 36 diff --git a/docs/usage/rust.md b/docs/usage/rust.md index 594abea989aab8..23c525e03d328d 100644 --- a/docs/usage/rust.md +++ b/docs/usage/rust.md @@ -34,7 +34,7 @@ Read the [Rust environment variables docs](https://doc.rust-lang.org/cargo/refer You as user can set authentication for private crates by adding a `hostRules` configuration to your `renovate.json` file. All token `hostRules` with a `hostType` (e.g. `github`, `gitlab`, `bitbucket`, etc.) and host rules without a `hostType` will be automatically setup for authentication. -You can also configure a `hostRules` that's only for Cargo authentication (e.g. `hostType: 'cargo'`). +You can also configure a `hostRules` that's only for Cargo authentication (e.g. `hostType: 'crate'`). ```js title="Example of authentication for a private GitHub and Cargo registry:" module.exports = { @@ -47,7 +47,7 @@ module.exports = { { matchHost: 'someGitHost.enterprise.com', token: process.env.CARGO_GIT_TOKEN, - hostType: 'cargo', + hostType: 'crate', }, ], }; diff --git a/lib/config-validator.ts b/lib/config-validator.ts index bc298c6c23b0bd..c8ff6bfc4a564f 100644 --- a/lib/config-validator.ts +++ b/lib/config-validator.ts @@ -1,6 +1,7 @@ #!/usr/bin/env node // istanbul ignore file import 'source-map-support/register'; +import './punycode.cjs'; import { dequal } from 'dequal'; import { pathExists, readFile } from 'fs-extra'; import { configFileNames } from './config/app-strings'; diff --git a/lib/config/options/index.ts b/lib/config/options/index.ts index 72f6387263d52f..0575942785574a 100644 --- a/lib/config/options/index.ts +++ b/lib/config/options/index.ts @@ -515,7 +515,7 @@ const options: RenovateOptions[] = [ description: 'Change this value to override the default Renovate sidecar image.', type: 'string', - default: 'ghcr.io/containerbase/sidecar:13.0.11', + default: 'ghcr.io/containerbase/sidecar:13.0.21', globalOnly: true, }, { @@ -1135,6 +1135,7 @@ const options: RenovateOptions[] = [ supportedManagers: [ 'ansible', 'bitbucket-pipelines', + 'buildpacks', 'crossplane', 'devcontainer', 'docker-compose', diff --git a/lib/config/presets/internal/group.ts b/lib/config/presets/internal/group.ts index e3db5f98e77335..2957b595ef3a81 100644 --- a/lib/config/presets/internal/group.ts +++ b/lib/config/presets/internal/group.ts @@ -347,7 +347,7 @@ const staticGroups = { packageRules: [ { commitMessageTopic: 'Node.js', - matchDatasources: ['docker'], + matchDatasources: ['docker', 'node-version'], matchPackageNames: [ '/(?:^|/)node$/', // node or ends with "/node, except those below" '!calico/node', diff --git a/lib/data/monorepo.json b/lib/data/monorepo.json index 3c9ff681b4028b..412f66469aacbf 100644 --- a/lib/data/monorepo.json +++ b/lib/data/monorepo.json @@ -483,6 +483,7 @@ "shopify-app-bridge": "https://github.com/Shopify/app-bridge", "sitecore-jss": "https://github.com/Sitecore/jss", "skiasharp": "https://github.com/mono/SkiaSharp", + "slack-net": "https://github.com/soxtoby/SlackNet", "slf4j": "https://github.com/qos-ch/slf4j", "spectre-console": "https://github.com/spectreconsole/spectre.console", "springfox": "https://github.com/springfox/springfox", diff --git a/lib/logger/index.spec.ts b/lib/logger/index.spec.ts index 3fa2fbd10aa2e1..a2eb3e3beb19c3 100644 --- a/lib/logger/index.spec.ts +++ b/lib/logger/index.spec.ts @@ -10,6 +10,7 @@ import { getContext, getProblems, levels, + logLevel, logger, removeMeta, setContext, @@ -53,7 +54,9 @@ describe('logger/index', () => { }); it('sets level', () => { + expect(logLevel()).toBeDefined(); // depends on passed env expect(() => levels('stdout', 'debug')).not.toThrow(); + expect(logLevel()).toBe('debug'); }); it('saves problems', () => { diff --git a/lib/logger/index.ts b/lib/logger/index.ts index 504e9b1a2c97e8..f066e05f97b22e 100644 --- a/lib/logger/index.ts +++ b/lib/logger/index.ts @@ -10,26 +10,31 @@ import { once, reset as onceReset } from './once'; import { RenovateStream } from './pretty-stdout'; import { getRemappedLevel } from './remap'; import type { BunyanRecord, Logger } from './types'; -import { ProblemStream, validateLogLevel, withSanitizer } from './utils'; - -let logContext: string = process.env.LOG_CONTEXT ?? nanoid(); +import { + ProblemStream, + getEnv, + validateLogLevel, + withSanitizer, +} from './utils'; + +let logContext: string = getEnv('LOG_CONTEXT') ?? nanoid(); let curMeta: Record = {}; const problems = new ProblemStream(); -// istanbul ignore if: not easily testable -if (is.string(process.env.LOG_LEVEL)) { - process.env.LOG_LEVEL = process.env.LOG_LEVEL.toLowerCase().trim(); -} - +let stdoutLevel = validateLogLevel(getEnv('LOG_LEVEL'), 'info'); const stdout: bunyan.Stream = { name: 'stdout', - level: validateLogLevel(process.env.LOG_LEVEL, 'info'), + level: stdoutLevel, stream: process.stdout, }; +export function logLevel(): bunyan.LogLevelString { + return stdoutLevel; +} + // istanbul ignore if: not testable -if (process.env.LOG_FORMAT !== 'json') { +if (getEnv('LOG_FORMAT') !== 'json') { // TODO: typings (#9615) const prettyStdOut = new RenovateStream() as any; prettyStdOut.pipe(process.stdout); @@ -122,16 +127,17 @@ loggerLevels.forEach((loggerLevel) => { logger.once[loggerLevel] = logOnceFn as never; }); +const logFile = getEnv('LOG_FILE'); // istanbul ignore if: not easily testable -if (is.string(process.env.LOG_FILE)) { +if (is.string(logFile)) { // ensure log file directory exists - const directoryName = upath.dirname(process.env.LOG_FILE); + const directoryName = upath.dirname(logFile); fs.ensureDirSync(directoryName); addStream({ name: 'logfile', - path: process.env.LOG_FILE, - level: validateLogLevel(process.env.LOG_FILE_LEVEL, 'debug'), + path: logFile, + level: validateLogLevel(getEnv('LOG_FILE_LEVEL'), 'debug'), }); } @@ -168,8 +174,20 @@ export /* istanbul ignore next */ function addStream( bunyanLogger.addStream(withSanitizer(stream)); } -export function levels(name: string, level: bunyan.LogLevel): void { +/** + * For testing purposes only + * @param name stream name + * @param level log level + * @private + */ +export function levels( + name: 'stdout' | 'logfile', + level: bunyan.LogLevelString, +): void { bunyanLogger.levels(name, level); + if (name === 'stdout') { + stdoutLevel = level; + } } export function getProblems(): BunyanRecord[] { diff --git a/lib/logger/utils.ts b/lib/logger/utils.ts index f04c0f8132ad9e..5b2d512601ac71 100644 --- a/lib/logger/utils.ts +++ b/lib/logger/utils.ts @@ -333,3 +333,9 @@ export function sanitizeUrls(text: string): string { }) .replace(dataUriCredRe, '$1**redacted**'); } + +export function getEnv(key: string): string | undefined { + return [process.env[`RENOVATE_${key}`], process.env[key]] + .map((v) => v?.toLowerCase().trim()) + .find(is.nonEmptyStringAndNotWhitespace); +} diff --git a/lib/modules/datasource/common.spec.ts b/lib/modules/datasource/common.spec.ts index a86c6a2d3f43de..02eddebeb117df 100644 --- a/lib/modules/datasource/common.spec.ts +++ b/lib/modules/datasource/common.spec.ts @@ -103,7 +103,10 @@ describe('modules/datasource/common', () => { }; const res = applyExtractVersion(releaseResult, '^v(?.+)$'); expect(res).toEqual({ - releases: [{ version: '1.0.0' }, { version: '2.0.0' }], + releases: [ + { version: '1.0.0', versionOrig: 'v1.0.0' }, + { version: '2.0.0', versionOrig: 'v2.0.0' }, + ], }); }); @@ -113,7 +116,7 @@ describe('modules/datasource/common', () => { }; const result = applyExtractVersion(releaseResult, '^v(?.+)$'); expect(result).toEqual({ - releases: [{ version: '1.0.0' }], + releases: [{ version: '1.0.0', versionOrig: 'v1.0.0' }], }); }); }); diff --git a/lib/modules/datasource/common.ts b/lib/modules/datasource/common.ts index b50f109ef2d9db..7ce15263d9615a 100644 --- a/lib/modules/datasource/common.ts +++ b/lib/modules/datasource/common.ts @@ -110,6 +110,7 @@ export function applyExtractVersion( return null; } + release.versionOrig = release.version; release.version = version; return release; }); diff --git a/lib/modules/datasource/conan/common.ts b/lib/modules/datasource/conan/common.ts index e0dfa211ddd500..c17062a5995b3a 100644 --- a/lib/modules/datasource/conan/common.ts +++ b/lib/modules/datasource/conan/common.ts @@ -6,7 +6,7 @@ export const defaultRegistryUrl = 'https://center.conan.io/'; export const datasource = 'conan'; export const conanDatasourceRegex = regEx( - /(?[a-z\-_0-9]+)\/(?[^@/\n]+)(?@\S+\/\S+)/gim, + /(?[a-zA-Z\-_0-9]+)\/(?[^@/\n]+)(?@\S+\/\S+)/gim, ); export function getConanPackage(packageName: string): ConanPackage { diff --git a/lib/modules/datasource/docker/index.spec.ts b/lib/modules/datasource/docker/index.spec.ts index 43f255734cee33..68096768f24baf 100644 --- a/lib/modules/datasource/docker/index.spec.ts +++ b/lib/modules/datasource/docker/index.spec.ts @@ -237,6 +237,9 @@ describe('modules/datasource/docker/index', () => { const ecr = ecrMock.call(0).thisValue as ECRClient; expect(await ecr.config.region()).toBe('us-east-1'); expect(await ecr.config.credentials()).toEqual({ + $source: { + CREDENTIALS_CODE: 'e', + }, accessKeyId: 'some-username', secretAccessKey: 'some-password', }); @@ -276,6 +279,9 @@ describe('modules/datasource/docker/index', () => { const ecr = ecrMock.call(0).thisValue as ECRClient; expect(await ecr.config.region()).toBe('us-east-1'); expect(await ecr.config.credentials()).toEqual({ + $source: { + CREDENTIALS_CODE: 'e', + }, accessKeyId: 'some-username', secretAccessKey: 'some-password', sessionToken: 'some-session-token', diff --git a/lib/modules/datasource/go/__snapshots__/index.spec.ts.snap b/lib/modules/datasource/go/__snapshots__/index.spec.ts.snap deleted file mode 100644 index e1ff755b222b8d..00000000000000 --- a/lib/modules/datasource/go/__snapshots__/index.spec.ts.snap +++ /dev/null @@ -1,3 +0,0 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP - -exports[`modules/datasource/go/index getDigest support bitbucket digest 1`] = `"123"`; diff --git a/lib/modules/datasource/go/base.spec.ts b/lib/modules/datasource/go/base.spec.ts index c70d690ce2648a..e425fae5864067 100644 --- a/lib/modules/datasource/go/base.spec.ts +++ b/lib/modules/datasource/go/base.spec.ts @@ -16,14 +16,17 @@ const hostRules = mocked(_hostRules); describe('modules/datasource/go/base', () => { describe('simple cases', () => { it.each` - module | datasource | packageName - ${'gopkg.in/foo'} | ${'github-tags'} | ${'go-foo/foo'} - ${'gopkg.in/foo/bar'} | ${'github-tags'} | ${'foo/bar'} - ${'github.com/foo/bar'} | ${'github-tags'} | ${'foo/bar'} - ${'bitbucket.org/foo/bar'} | ${'bitbucket-tags'} | ${'foo/bar'} - ${'code.cloudfoundry.org/lager'} | ${'github-tags'} | ${'cloudfoundry/lager'} - ${'dev.azure.com/foo/bar/_git/baz.git'} | ${'git-tags'} | ${'https://dev.azure.com/foo/bar/_git/baz'} - ${'dev.azure.com/foo/bar/baz.git'} | ${'git-tags'} | ${'https://dev.azure.com/foo/bar/_git/baz'} + module | datasource | packageName + ${'gopkg.in/foo'} | ${'github-tags'} | ${'go-foo/foo'} + ${'gopkg.in/foo/bar'} | ${'github-tags'} | ${'foo/bar'} + ${'github.com/foo/bar'} | ${'github-tags'} | ${'foo/bar'} + ${'bitbucket.org/foo/bar'} | ${'bitbucket-tags'} | ${'foo/bar'} + ${'code.cloudfoundry.org/lager'} | ${'github-tags'} | ${'cloudfoundry/lager'} + ${'dev.azure.com/foo/bar/_git/baz.git'} | ${'git-tags'} | ${'https://dev.azure.com/foo/bar/_git/baz'} + ${'dev.azure.com/foo/bar/baz.git'} | ${'git-tags'} | ${'https://dev.azure.com/foo/bar/_git/baz'} + ${'gitea.com/go-chi/cache'} | ${'gitea-tags'} | ${'go-chi/cache'} + ${'code.forgejo.org/go-chi/cache'} | ${'gitea-tags'} | ${'go-chi/cache'} + ${'codeberg.org/eviedelta/detctime/durationparser'} | ${'gitea-tags'} | ${'eviedelta/detctime'} `( '$module -> $datasource: $packageName', async ({ module, datasource, packageName }) => { diff --git a/lib/modules/datasource/go/base.ts b/lib/modules/datasource/go/base.ts index 06ee3276bdd375..ba3c74800afc4e 100644 --- a/lib/modules/datasource/go/base.ts +++ b/lib/modules/datasource/go/base.ts @@ -12,6 +12,7 @@ import { } from '../../../util/url'; import { BitbucketTagsDatasource } from '../bitbucket-tags'; import { GitTagsDatasource } from '../git-tags'; +import { GiteaTagsDatasource } from '../gitea-tags'; import { GithubTagsDatasource } from '../github-tags'; import { GitlabTagsDatasource } from '../gitlab-tags'; import type { DataSource } from './types'; @@ -94,6 +95,38 @@ export class BaseGoDatasource { } } + //#region known gitea compatible hosts + if (goModule.startsWith('gitea.com/')) { + const split = goModule.split('/'); + const packageName = `${split[1]}/${split[2]}`; + return { + datasource: GiteaTagsDatasource.id, + packageName, + registryUrl: 'https://gitea.com', + }; + } + + if (goModule.startsWith('code.forgejo.org/')) { + const split = goModule.split('/'); + const packageName = `${split[1]}/${split[2]}`; + return { + datasource: GiteaTagsDatasource.id, + packageName, + registryUrl: 'https://code.forgejo.org', + }; + } + + if (goModule.startsWith('codeberg.org/')) { + const split = goModule.split('/'); + const packageName = `${split[1]}/${split[2]}`; + return { + datasource: GiteaTagsDatasource.id, + packageName, + registryUrl: 'https://codeberg.org', + }; + } + //#endregion + return await BaseGoDatasource.goGetDatasource(goModule); } diff --git a/lib/modules/datasource/go/index.spec.ts b/lib/modules/datasource/go/index.spec.ts index 5a9ff72de940b0..6099b6fbb60222 100644 --- a/lib/modules/datasource/go/index.spec.ts +++ b/lib/modules/datasource/go/index.spec.ts @@ -10,6 +10,7 @@ const hostRules = mocked(_hostRules); const getReleasesDirectMock = jest.fn(); +const getDigestGiteaMock = jest.fn(); const getDigestGithubMock = jest.fn(); const getDigestGitlabMock = jest.fn(); const getDigestGitMock = jest.fn(); @@ -19,6 +20,7 @@ jest.mock('./releases-direct', () => { GoDirectDatasource: jest.fn().mockImplementation(() => { return { git: { getDigest: (...args: any[]) => getDigestGitMock(...args) }, + gitea: { getDigest: (...args: any[]) => getDigestGiteaMock(...args) }, github: { getDigest: (...args: any[]) => getDigestGithubMock(...args) }, gitlab: { getDigest: (...args: any[]) => getDigestGitlabMock(...args) }, bitbucket: { @@ -189,9 +191,18 @@ describe('modules/datasource/go/index', () => { }, undefined, ); - expect(res).toMatchSnapshot(); - expect(res).not.toBeNull(); - expect(res).toBeDefined(); + expect(res).toBe('123'); + }); + + it('support gitea digest', async () => { + getDigestGiteaMock.mockResolvedValueOnce('123'); + const res = await datasource.getDigest( + { + packageName: 'gitea.com/go-chi/cache', + }, + undefined, + ); + expect(res).toBe('123'); }); describe('GOPROXY', () => { diff --git a/lib/modules/datasource/go/index.ts b/lib/modules/datasource/go/index.ts index 1684dba29ea81a..0bb7ff263ab035 100644 --- a/lib/modules/datasource/go/index.ts +++ b/lib/modules/datasource/go/index.ts @@ -8,6 +8,7 @@ import { id as semverId } from '../../versioning/semver'; import { BitbucketTagsDatasource } from '../bitbucket-tags'; import { Datasource } from '../datasource'; import { GitTagsDatasource } from '../git-tags'; +import { GiteaTagsDatasource } from '../gitea-tags'; import { GithubTagsDatasource } from '../github-tags'; import { GitlabTagsDatasource } from '../gitlab-tags'; import type { DigestConfig, GetReleasesConfig, ReleaseResult } from '../types'; @@ -98,6 +99,9 @@ export class GoDatasource extends Datasource { case GitTagsDatasource.id: { return this.direct.git.getDigest(source, tag); } + case GiteaTagsDatasource.id: { + return this.direct.gitea.getDigest(source, tag); + } case GithubTagsDatasource.id: { return this.direct.github.getDigest(source, tag); } diff --git a/lib/modules/datasource/go/releases-direct.spec.ts b/lib/modules/datasource/go/releases-direct.spec.ts index b106c3780bde32..19da04761d3c4a 100644 --- a/lib/modules/datasource/go/releases-direct.spec.ts +++ b/lib/modules/datasource/go/releases-direct.spec.ts @@ -88,6 +88,67 @@ describe('modules/datasource/go/releases-direct', () => { expect(res).toBeDefined(); }); + it('support gitea', async () => { + getDatasourceSpy.mockResolvedValueOnce({ + datasource: 'gitea-tags', + registryUrl: 'https://gitea.com', + packageName: 'go-chi/cache', + }); + httpMock + .scope('https://gitea.com/') + .get('/api/v1/repos/go-chi/cache/tags') + .reply(200, [ + { + name: 'v0.1.0', + commit: { + sha: 'd73d815ec22c421e7192a414594ac798c73c89e5', + created: '2022-05-15T16:29:42Z', + }, + }, + { + name: 'v0.2.0', + commit: { + sha: '3976707232cb68751ff2ddf42547ff95c6878a97', + created: '2022-05-15T17:23:28Z', + }, + }, + { + name: 'v0.2.1', + commit: { + sha: '2963b104773ead7ed28c00181c03318885d909dc', + created: '2024-09-06T23:44:34Z', + }, + }, + ]); + const res = await datasource.getReleases({ + packageName: 'gitea.com/go-chi/cache', + }); + expect(res).toEqual({ + registryUrl: 'https://gitea.com', + releases: [ + { + gitRef: 'v0.1.0', + newDigest: 'd73d815ec22c421e7192a414594ac798c73c89e5', + releaseTimestamp: '2022-05-15T16:29:42Z', + version: 'v0.1.0', + }, + { + gitRef: 'v0.2.0', + newDigest: '3976707232cb68751ff2ddf42547ff95c6878a97', + releaseTimestamp: '2022-05-15T17:23:28Z', + version: 'v0.2.0', + }, + { + gitRef: 'v0.2.1', + newDigest: '2963b104773ead7ed28c00181c03318885d909dc', + releaseTimestamp: '2024-09-06T23:44:34Z', + version: 'v0.2.1', + }, + ], + sourceUrl: null, + }); + }); + it('support git', async () => { getDatasourceSpy.mockResolvedValueOnce({ datasource: 'git-tags', diff --git a/lib/modules/datasource/go/releases-direct.ts b/lib/modules/datasource/go/releases-direct.ts index 2376f73eb8453a..16c74487560bfe 100644 --- a/lib/modules/datasource/go/releases-direct.ts +++ b/lib/modules/datasource/go/releases-direct.ts @@ -4,6 +4,7 @@ import { regEx } from '../../../util/regex'; import { BitbucketTagsDatasource } from '../bitbucket-tags'; import { Datasource } from '../datasource'; import { GitTagsDatasource } from '../git-tags'; +import { GiteaTagsDatasource } from '../gitea-tags'; import { GithubTagsDatasource } from '../github-tags'; import { GitlabTagsDatasource } from '../gitlab-tags'; import type { GetReleasesConfig, Release, ReleaseResult } from '../types'; @@ -60,6 +61,7 @@ export class GoDirectDatasource extends Datasource { static readonly id = 'go-direct'; git: GitTagsDatasource; + readonly gitea = new GiteaTagsDatasource(); github: GithubTagsDatasource; gitlab: GitlabTagsDatasource; bitbucket: BitbucketTagsDatasource; @@ -108,6 +110,10 @@ export class GoDirectDatasource extends Datasource { res = await this.git.getReleases(source); break; } + case GiteaTagsDatasource.id: { + res = await this.gitea.getReleases(source); + break; + } case GithubTagsDatasource.id: { res = await this.github.getReleases(source); break; diff --git a/lib/modules/datasource/maven/index.spec.ts b/lib/modules/datasource/maven/index.spec.ts index 265910390b2092..757e328764afa2 100644 --- a/lib/modules/datasource/maven/index.spec.ts +++ b/lib/modules/datasource/maven/index.spec.ts @@ -63,9 +63,9 @@ function mockGenericPackage(opts: MockOpts = {}) { } if (html) { - scope.get(`/${packagePath}/index.html`).reply(200, html); + scope.get(`/${packagePath}/`).reply(200, html); } else if (html === null) { - scope.get(`/${packagePath}/index.html`).reply(404); + scope.get(`/${packagePath}/`).reply(404); } if (pom) { @@ -129,7 +129,7 @@ describe('modules/datasource/maven/index', () => { it('returns null when metadata is not found', async () => { httpMock .scope(baseUrl) - .get('/org/example/package/index.html') + .get('/org/example/package/') .reply(404) .get('/org/example/package/maven-metadata.xml') .reply(404); @@ -711,6 +711,21 @@ describe('modules/datasource/maven/index', () => { expect(res).toBe(releaseOrig); }); + it('returns original value for 200 response with versionOrig', async () => { + httpMock + .scope(MAVEN_REPO) + .head('/foo/bar/1.2.3/bar-1.2.3.pom') + .reply(200); + const releaseOrig: Release = { version: '1.2', versionOrig: '1.2.3' }; + + const res = await postprocessRelease( + { datasource, packageName: 'foo:bar', registryUrl: MAVEN_REPO }, + releaseOrig, + ); + + expect(res).toBe(releaseOrig); + }); + it('returns original value for invalid configs', async () => { const releaseOrig: Release = { version: '1.2.3' }; expect( diff --git a/lib/modules/datasource/maven/index.ts b/lib/modules/datasource/maven/index.ts index 3738414d501237..aae05ab640bf48 100644 --- a/lib/modules/datasource/maven/index.ts +++ b/lib/modules/datasource/maven/index.ts @@ -143,7 +143,7 @@ export class MavenDatasource extends Datasource { workingReleaseMap = {}; let retryEarlier = false; try { - const indexUrl = getMavenUrl(dependency, repoUrl, 'index.html'); + const indexUrl = getMavenUrl(dependency, repoUrl, ''); const res = await downloadHttpProtocol(this.http, indexUrl); if (res) { for (const line of res.body.split(newlineRegex)) { @@ -171,7 +171,7 @@ export class MavenDatasource extends Datasource { retryEarlier = true; logger.debug( { dependency, err }, - 'Failed to get releases from index.html', + 'Failed to get releases from package index page', ); } const cacheTTL = retryEarlier @@ -252,8 +252,9 @@ export class MavenDatasource extends Datasource { namespace: `datasource-maven`, key: ( { registryUrl, packageName }: PostprocessReleaseConfig, - { version }: Release, - ) => `postprocessRelease:${registryUrl}:${packageName}:${version}`, + { version, versionOrig }: Release, + ) => + `postprocessRelease:${registryUrl}:${packageName}:${versionOrig ? `${versionOrig}:${version}` : `${version}`}`, ttlMinutes: 24 * 60, }) override async postprocessRelease( @@ -268,7 +269,7 @@ export class MavenDatasource extends Datasource { const pomUrl = await createUrlForDependencyPom( this.http, - release.version, + release.versionOrig ?? release.version, dependency, registryUrl, ); diff --git a/lib/modules/datasource/postprocess-release.spec.ts b/lib/modules/datasource/postprocess-release.spec.ts index a8cacb3d92378e..3ec6de9abd8e99 100644 --- a/lib/modules/datasource/postprocess-release.spec.ts +++ b/lib/modules/datasource/postprocess-release.spec.ts @@ -124,31 +124,6 @@ describe('modules/datasource/postprocess-release', () => { expect(release).toBeNull(); }); - it('preserves rejected release when `extractVersion` was set', async () => { - const releaseOrig: Release = { version: '1.2.3' }; - - class SomeDatasource extends DummyDatasource { - override postprocessRelease( - _config: PostprocessReleaseConfig, - _release: Release, - ): Promise { - return Promise.resolve('reject'); - } - } - getDatasourceFor.mockReturnValueOnce(new SomeDatasource()); - - const release = await postprocessRelease( - { - datasource: 'some-datasource', - packageName: 'some-package', - extractVersion: '^(?\\d+)$', - }, - releaseOrig, - ); - - expect(release).toBe(releaseOrig); - }); - it('falls back when error was thrown', async () => { const releaseOrig: Release = { version: '1.2.3' }; diff --git a/lib/modules/datasource/postprocess-release.ts b/lib/modules/datasource/postprocess-release.ts index b2ba55624557d8..a71837fee471db 100644 --- a/lib/modules/datasource/postprocess-release.ts +++ b/lib/modules/datasource/postprocess-release.ts @@ -49,22 +49,14 @@ export async function postprocessRelease( ); if (result === 'reject') { - if (config.extractVersion) { - logger.debug( - { - datasource, - packageName, - registryUrl, - version: release.version, - extractVersion: config.extractVersion, - }, - 'Rejected release combined with `extractVersion`: preserving the release', - ); - return release; - } - logger.debug( - { datasource, packageName, registryUrl, version: release.version }, + { + datasource, + packageName, + registryUrl, + version: release.version, + versionOrig: release.versionOrig, + }, 'Rejected release', ); return null; diff --git a/lib/modules/datasource/sbt-package/index.spec.ts b/lib/modules/datasource/sbt-package/index.spec.ts index 45510d2c9402a6..19423659d8e4c4 100644 --- a/lib/modules/datasource/sbt-package/index.spec.ts +++ b/lib/modules/datasource/sbt-package/index.spec.ts @@ -76,7 +76,7 @@ describe('modules/datasource/sbt-package/index', () => { .reply(404, '') .get('/maven2/com/example/empty/maven-metadata.xml') .reply(404) - .get('/maven2/com/example/empty/index.html') + .get('/maven2/com/example/empty/') .reply(404); const res = await getPkgReleases({ diff --git a/lib/modules/datasource/types.ts b/lib/modules/datasource/types.ts index d4e8ed0b3287e2..94336ff106cc3d 100644 --- a/lib/modules/datasource/types.ts +++ b/lib/modules/datasource/types.ts @@ -61,6 +61,8 @@ export interface Release { isStable?: boolean; releaseTimestamp?: string | null; version: string; + /** The original value to which `extractVersion` was applied */ + versionOrig?: string; newDigest?: string | undefined; constraints?: Record; dependencies?: Record; diff --git a/lib/modules/datasource/util.ts b/lib/modules/datasource/util.ts index abd252282ab05c..b418bb9bb7c560 100644 --- a/lib/modules/datasource/util.ts +++ b/lib/modules/datasource/util.ts @@ -12,7 +12,7 @@ export function isArtifactoryServer( return is.string(res?.headers[JFROG_ARTIFACTORY_RES_HEADER]); } -export async function getGoogleAuthToken(): Promise { +export async function getGoogleAuthTokenRaw(): Promise { try { const googleAuth: GoogleAuth = new GoogleAuth({ scopes: 'https://www.googleapis.com/auth/cloud-platform', @@ -21,7 +21,7 @@ export async function getGoogleAuthToken(): Promise { if (accessToken) { // sanitize token addSecretForSanitizing(accessToken); - return Buffer.from(`oauth2accesstoken:${accessToken}`).toString('base64'); + return accessToken; } else { logger.warn( 'Could not retrieve access token using google-auth-library getAccessToken', @@ -36,3 +36,11 @@ export async function getGoogleAuthToken(): Promise { } return null; } + +export async function getGoogleAuthToken(): Promise { + const accessToken = await getGoogleAuthTokenRaw(); + if (accessToken) { + return Buffer.from(`oauth2accesstoken:${accessToken}`).toString('base64'); + } + return null; +} diff --git a/lib/modules/manager/api.ts b/lib/modules/manager/api.ts index 466ce2f0f61764..e8522f73326a9e 100644 --- a/lib/modules/manager/api.ts +++ b/lib/modules/manager/api.ts @@ -12,6 +12,7 @@ import * as bicep from './bicep'; import * as bitbucketPipelines from './bitbucket-pipelines'; import * as bitrise from './bitrise'; import * as buildkite from './buildkite'; +import * as buildpacks from './buildpacks'; import * as bun from './bun'; import * as bunVersion from './bun-version'; import * as bundler from './bundler'; @@ -117,6 +118,7 @@ api.set('bicep', bicep); api.set('bitbucket-pipelines', bitbucketPipelines); api.set('bitrise', bitrise); api.set('buildkite', buildkite); +api.set('buildpacks', buildpacks); api.set('bun', bun); api.set('bun-version', bunVersion); api.set('bundler', bundler); diff --git a/lib/modules/manager/asdf/extract.spec.ts b/lib/modules/manager/asdf/extract.spec.ts index 576f46582493c6..680444d4dad0ea 100644 --- a/lib/modules/manager/asdf/extract.spec.ts +++ b/lib/modules/manager/asdf/extract.spec.ts @@ -49,6 +49,7 @@ actionlint 0.7.0 adr-tools 3.0.0 argocd 2.5.4 asdf-plugin-manager 1.1.1 +atmos 1.100.0 awscli 2.8.6 bun 0.2.2 cargo-make 0.36.2 @@ -73,7 +74,7 @@ github-cli 2.32.1 gitleaks 8.21.1 gleam 1.3.1 gohugo extended_0.104.3 -golang 1.19.2 +golang 1.23.3 golangci-lint 1.52.2 gomplate 3.11.7 hadolint 2.12.0 @@ -85,6 +86,7 @@ idris 1.3.4 java adoptopenjdk-16.0.0+36 julia 1.8.2 just 1.7.0 +k3s 1.31.2+k3s1 kind 0.19.0 kotlin 1.7.20 kubectl 1.26.3 @@ -97,7 +99,9 @@ minikube 1.33.1 nim 1.6.8 nodejs 18.12.0 ocaml 4.14.0 +oci 3.50.0 opentofu 1.6.0 +packer 1.11.2 perl 5.37.5 php 8.1.12 pnpm 7.26.2 @@ -167,6 +171,13 @@ dummy 1.2.3 depName: 'asdf-plugin-manager', extractVersion: '^v(?\\S+)', }, + { + currentValue: '1.100.0', + datasource: 'github-releases', + packageName: 'cloudposse/atmos', + depName: 'atmos', + extractVersion: '^v(?\\S+)', + }, { currentValue: '2.8.6', datasource: 'github-tags', @@ -325,7 +336,7 @@ dummy 1.2.3 extractVersion: '^v(?\\S+)', }, { - currentValue: '1.19.2', + currentValue: '1.23.3', datasource: 'github-tags', packageName: 'golang/go', depName: 'golang', @@ -406,6 +417,13 @@ dummy 1.2.3 packageName: 'casey/just', depName: 'just', }, + { + currentValue: '1.31.2+k3s1', + datasource: 'github-releases', + packageName: 'k3s-io/k3s', + depName: 'k3s', + extractVersion: '^v(?\\S+)', + }, { currentValue: '0.19.0', datasource: 'github-releases', @@ -486,6 +504,13 @@ dummy 1.2.3 packageName: 'ocaml/ocaml', depName: 'ocaml', }, + { + currentValue: '3.50.0', + datasource: 'github-releases', + packageName: 'oracle/oci-cli', + depName: 'oci', + extractVersion: '^v(?\\S+)', + }, { currentValue: '1.6.0', datasource: 'github-releases', @@ -493,6 +518,13 @@ dummy 1.2.3 depName: 'opentofu', extractVersion: '^v(?\\S+)', }, + { + currentValue: '1.11.2', + datasource: 'github-releases', + packageName: 'hashicorp/packer', + depName: 'packer', + extractVersion: '^v(?\\S+)', + }, { currentValue: '5.37.5', datasource: 'github-tags', @@ -786,32 +818,6 @@ awscli 2.8.6 }, ], }); - const semeruJdkRes = extractPackageFile( - 'java semeru-openj9-17.0.8.1+1_openj9-0.40.0', - ); - expect(semeruJdkRes).toEqual({ - deps: [ - { - currentValue: '17.0.8.1+1', - datasource: 'java-version', - depName: 'java', - packageName: 'java-jdk', - }, - ], - }); - const semeruJreRes = extractPackageFile( - 'java semeru-jre-openj9-17.0.8.1+1_openj9-0.40.0', - ); - expect(semeruJreRes).toEqual({ - deps: [ - { - currentValue: '17.0.8.1+1', - datasource: 'java-version', - depName: 'java', - packageName: 'java-jre', - }, - ], - }); const temurinJdkRes = extractPackageFile('java temurin-16.0.0+36'); expect(temurinJdkRes).toEqual({ deps: [ diff --git a/lib/modules/manager/asdf/upgradeable-tooling.ts b/lib/modules/manager/asdf/upgradeable-tooling.ts index 10ede4ce9b0e07..ba4ac276d9ef52 100644 --- a/lib/modules/manager/asdf/upgradeable-tooling.ts +++ b/lib/modules/manager/asdf/upgradeable-tooling.ts @@ -79,6 +79,14 @@ export const upgradeableTooling: Record = { extractVersion: '^v(?\\S+)', }, }, + atmos: { + asdfPluginUrl: 'https://github.com/cloudposse/asdf-atmos', + config: { + datasource: GithubReleasesDatasource.id, + packageName: 'cloudposse/atmos', + extractVersion: '^v(?\\S+)', + }, + }, awscli: { asdfPluginUrl: 'https://github.com/MetricMike/asdf-awscli', config: { @@ -357,26 +365,6 @@ export const upgradeableTooling: Record = { currentValue: adoptOpenJreMatches.version, }; } - const semeruJdkMatches = version.match( - /^semeru-openj9-(?\d\S+)_openj9-(?\d\S+)/, - )?.groups; - if (semeruJdkMatches) { - return { - datasource: JavaVersionDatasource.id, - packageName: 'java-jdk', - currentValue: semeruJdkMatches.version, - }; - } - const semeruJreMatches = version.match( - /^semeru-jre-openj9-(?\d\S+)_openj9-\d\S+/, - )?.groups; - if (semeruJreMatches) { - return { - datasource: JavaVersionDatasource.id, - packageName: 'java-jre', - currentValue: semeruJreMatches.version, - }; - } const temurinJdkMatches = version.match( /^temurin-(?\d\S+)/, )?.groups; @@ -416,6 +404,14 @@ export const upgradeableTooling: Record = { packageName: 'casey/just', }, }, + k3s: { + asdfPluginUrl: 'https://github.com/dmpe/asdf-k3s', + config: { + datasource: GithubReleasesDatasource.id, + packageName: 'k3s-io/k3s', + extractVersion: '^v(?\\S+)', + }, + }, kind: { asdfPluginUrl: 'https://github.com/johnlayton/asdf-kind', config: { @@ -510,6 +506,14 @@ export const upgradeableTooling: Record = { packageName: 'ocaml/ocaml', }, }, + oci: { + asdfPluginUrl: 'https://github.com/yasn77/asdf-oci', + config: { + datasource: GithubReleasesDatasource.id, + packageName: 'oracle/oci-cli', + extractVersion: '^v(?\\S+)', + }, + }, opentofu: { asdfPluginUrl: 'https://github.com/virtualroot/asdf-opentofu', config: { @@ -518,6 +522,14 @@ export const upgradeableTooling: Record = { extractVersion: '^v(?\\S+)', }, }, + packer: { + asdfPluginUrl: 'https://github.com/asdf-community/asdf-hashicorp', + config: { + datasource: GithubReleasesDatasource.id, + packageName: 'hashicorp/packer', + extractVersion: '^v(?\\S+)', + }, + }, perl: { asdfPluginUrl: 'https://github.com/ouest/asdf-perl', config: { diff --git a/lib/modules/manager/azure-pipelines/readme.md b/lib/modules/manager/azure-pipelines/readme.md index 91efbd47eee5cb..a7ca5ab559722c 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:a31cbb4db18c6f09e3300fa85b77f6d56702501fcb9bdb8792ec702a39ba6200 + image: python:3.13@sha256:bc78d3c007f86dbb87d711b8b082d9d564b8025487e780d24ccb8581d83ef8b0 stages: - stage: StageOne diff --git a/lib/modules/manager/bazel-module/parser/common.ts b/lib/modules/manager/bazel-module/parser/common.ts new file mode 100644 index 00000000000000..5fe3ad77180d45 --- /dev/null +++ b/lib/modules/manager/bazel-module/parser/common.ts @@ -0,0 +1,29 @@ +import { query as q } from 'good-enough-parser'; +import { regEx } from '../../../../util/regex'; +import type { Ctx } from '../context'; +import * as starlark from '../starlark'; + +const booleanValuesRegex = regEx(`^${starlark.booleanStringValues.join('|')}$`); + +/** + * Matches key-value pairs: + * - `name = "foobar"` + * - `name = True` + * - `name = ["string"]` + **/ +export const kvParams = q + .sym((ctx, token) => ctx.startAttribute(token.value)) + .op('=') + .alt( + q.str((ctx, token) => ctx.addString(token.value)), + q.sym(booleanValuesRegex, (ctx, token) => ctx.addBoolean(token.value)), + q.tree({ + type: 'wrapped-tree', + maxDepth: 1, + startsWith: '[', + endsWith: ']', + postHandler: (ctx) => ctx.endArray(), + preHandler: (ctx) => ctx.startArray(), + search: q.many(q.str((ctx, token) => ctx.addString(token.value))), + }), + ); diff --git a/lib/modules/manager/bazel-module/parser/index.spec.ts b/lib/modules/manager/bazel-module/parser/index.spec.ts index f0137c9f13a09c..aa2311d2c9ee93 100644 --- a/lib/modules/manager/bazel-module/parser/index.spec.ts +++ b/lib/modules/manager/bazel-module/parser/index.spec.ts @@ -66,6 +66,10 @@ describe('modules/manager/bazel-module/parser/index', () => { { rule: fragments.string('git_override'), module_name: fragments.string('rules_foo'), + patches: fragments.array( + [fragments.string('//:rules_foo.patch')], + true, + ), commit: fragments.string( '6a2c2e22849b3e6b33d5ea9aa72222d4803a986a', ), @@ -102,6 +106,10 @@ describe('modules/manager/bazel-module/parser/index', () => { { rule: fragments.string('archive_override'), module_name: fragments.string('rules_foo'), + urls: fragments.array( + [fragments.string('https://example.com/archive.tar.gz')], + true, + ), }, true, ), diff --git a/lib/modules/manager/bazel-module/parser/maven.ts b/lib/modules/manager/bazel-module/parser/maven.ts index 9248297c9a4613..56376b8a13c3bd 100644 --- a/lib/modules/manager/bazel-module/parser/maven.ts +++ b/lib/modules/manager/bazel-module/parser/maven.ts @@ -10,6 +10,7 @@ import { StringArrayFragmentSchema, StringFragmentSchema, } from '../fragments'; +import { kvParams } from './common'; const artifactMethod = 'artifact'; const installMethod = 'install'; @@ -115,22 +116,6 @@ export function fillRegistryUrls( return result; } -const kvParams = q - .sym((ctx, token) => ctx.startAttribute(token.value)) - .op('=') - .alt( - q.str((ctx, token) => ctx.addString(token.value)), - q.tree({ - type: 'wrapped-tree', - maxDepth: 1, - startsWith: '[', - endsWith: ']', - postHandler: (ctx) => ctx.endArray(), - preHandler: (ctx) => ctx.startArray(), - search: q.many(q.str((ctx, token) => ctx.addString(token.value))), - }), - ); - export const mavenRules = q .sym(mavenVariableRegex, (ctx, token) => { return ctx.startRule(token.value); diff --git a/lib/modules/manager/bazel-module/parser/module.ts b/lib/modules/manager/bazel-module/parser/module.ts index ace1d413d7ab8f..80371274c029e3 100644 --- a/lib/modules/manager/bazel-module/parser/module.ts +++ b/lib/modules/manager/bazel-module/parser/module.ts @@ -1,9 +1,8 @@ import { query as q } from 'good-enough-parser'; import { regEx } from '../../../../util/regex'; import type { Ctx } from '../context'; -import * as starlark from '../starlark'; +import { kvParams } from './common'; -const booleanValuesRegex = regEx(`^${starlark.booleanStringValues.join('|')}$`); const supportedRules = [ 'archive_override', 'bazel_dep', @@ -13,19 +12,6 @@ const supportedRules = [ ]; const supportedRulesRegex = regEx(`^${supportedRules.join('|')}$`); -/** - * Matches key-value pairs: - * - `name = "foobar"` - * - `name = True` - **/ -const kvParams = q - .sym((ctx, token) => ctx.startAttribute(token.value)) - .op('=') - .alt( - q.str((ctx, token) => ctx.addString(token.value)), - q.sym(booleanValuesRegex, (ctx, token) => ctx.addBoolean(token.value)), - ); - export const moduleRules = q .sym(supportedRulesRegex, (ctx, token) => ctx.startRule(token.value)) .join( diff --git a/lib/modules/manager/buildpacks/extract.spec.ts b/lib/modules/manager/buildpacks/extract.spec.ts new file mode 100644 index 00000000000000..dedcefcbd4f68a --- /dev/null +++ b/lib/modules/manager/buildpacks/extract.spec.ts @@ -0,0 +1,111 @@ +import { codeBlock } from 'common-tags'; + +import { extractPackageFile } from '.'; + +describe('modules/manager/buildpacks/extract', () => { + describe('extractPackageFile()', () => { + it('returns null for invalid files', () => { + expect(extractPackageFile('not a project toml', '', {})).toBeNull(); + }); + + it('returns null for empty package.toml', () => { + const res = extractPackageFile( + '[_]\nschema-version = "0.2"', + 'project.toml', + {}, + ); + expect(res).toBeNull(); + }); + + it('extracts builder and buildpack images', () => { + const res = extractPackageFile( + codeBlock` +[_] +schema-version = "0.2" + +[io.buildpacks] +builder = "registry.corp/builder/noble:1.1.1" + +[[io.buildpacks.group]] +uri = "docker://buildpacks/java:2.2.2" + +[[io.buildpacks.group]] +uri = "buildpacks/nodejs:3.3.3" + +[[io.buildpacks.group]] +uri = "example/foo@1.0.0" + +[[io.buildpacks.group]] +uri = "example/registry-cnb" + +[[io.buildpacks.group]] +uri = "urn:cnb:registry:example/foo@1.0.0" + +[[io.buildpacks.group]] +uri = "some-bp@sha256:0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef" + +[[io.buildpacks.group]] +uri = "cnbs/some-bp:some-tag@sha256:0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef" + +[[io.buildpacks.group]] +uri = "from=builder:foobar" + +[[io.buildpacks.group]] +uri = "file://local.oci" + +[[io.buildpacks.group]] +uri = "foo://fake.oci"`, + 'project.toml', + {}, + ); + expect(res?.deps).toEqual([ + { + autoReplaceStringTemplate: + '{{depName}}{{#if newValue}}:{{newValue}}{{/if}}{{#if newDigest}}@{{newDigest}}{{/if}}', + commitMessageTopic: 'builder {{depName}}', + currentValue: '1.1.1', + datasource: 'docker', + depName: 'registry.corp/builder/noble', + replaceString: 'registry.corp/builder/noble:1.1.1', + }, + { + autoReplaceStringTemplate: + '{{depName}}{{#if newValue}}:{{newValue}}{{/if}}{{#if newDigest}}@{{newDigest}}{{/if}}', + currentValue: '2.2.2', + datasource: 'docker', + depName: 'buildpacks/java', + replaceString: 'buildpacks/java:2.2.2', + }, + { + autoReplaceStringTemplate: + '{{depName}}{{#if newValue}}:{{newValue}}{{/if}}{{#if newDigest}}@{{newDigest}}{{/if}}', + currentValue: '3.3.3', + datasource: 'docker', + depName: 'buildpacks/nodejs', + replaceString: 'buildpacks/nodejs:3.3.3', + }, + { + autoReplaceStringTemplate: + '{{depName}}{{#if newValue}}:{{newValue}}{{/if}}{{#if newDigest}}@{{newDigest}}{{/if}}', + currentDigest: + 'sha256:0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef', + datasource: 'docker', + depName: 'some-bp', + replaceString: + 'some-bp@sha256:0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef', + }, + { + autoReplaceStringTemplate: + '{{depName}}{{#if newValue}}:{{newValue}}{{/if}}{{#if newDigest}}@{{newDigest}}{{/if}}', + currentDigest: + 'sha256:0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef', + currentValue: 'some-tag', + datasource: 'docker', + depName: 'cnbs/some-bp', + replaceString: + 'cnbs/some-bp:some-tag@sha256:0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef', + }, + ]); + }); + }); +}); diff --git a/lib/modules/manager/buildpacks/extract.ts b/lib/modules/manager/buildpacks/extract.ts new file mode 100644 index 00000000000000..c00d4a4c681e19 --- /dev/null +++ b/lib/modules/manager/buildpacks/extract.ts @@ -0,0 +1,103 @@ +import is from '@sindresorhus/is'; +import { logger } from '../../../logger'; +import { regEx } from '../../../util/regex'; +import { getDep } from '../dockerfile/extract'; +import type { + ExtractConfig, + PackageDependency, + PackageFileContent, +} from '../types'; +import { type ProjectDescriptor, ProjectDescriptorToml } from './schema'; + +const dockerPrefix = regEx(/^docker:\/?\//); +const dockerRef = regEx( + /^((?:[a-z\d](?:[a-z\d-]{0,61}[a-z\d])?(?:\.[a-z\d](?:[a-z\d-]{0,61}[a-z\d])?)*)(?::\d{2,5}\/)?)?[a-z\d]+((\.|_|__|-+)[a-z\d]+)*(\/[a-z\d]+((\.|_|__|-+)[a-z\d]+)*)*(?::(\w[\w.-]{0,127})(?:@sha256:[A-Fa-f\d]{32,})?|@sha256:[A-Fa-f\d]{32,})$/, +); + +function isDockerRef(ref: string): boolean { + if (ref.startsWith('docker:/') || dockerRef.test(ref)) { + return true; + } + return false; +} + +function parseProjectToml( + content: string, + packageFile: string, +): ProjectDescriptor | null { + const res = ProjectDescriptorToml.safeParse(content); + if (res.success) { + return res.data; + } + + logger.debug( + { packageFile, err: res.error }, + 'Failed to parse buildpacks project descriptor TOML', + ); + + return null; +} + +export function extractPackageFile( + content: string, + packageFile: string, + config: ExtractConfig, +): PackageFileContent | null { + const deps: PackageDependency[] = []; + + const descriptor = parseProjectToml(content, packageFile); + if (!descriptor) { + return null; + } + + if ( + descriptor.io?.buildpacks?.builder && + isDockerRef(descriptor.io.buildpacks.builder) + ) { + const dep = getDep( + descriptor.io.buildpacks.builder.replace(dockerPrefix, ''), + true, + config.registryAliases, + ); + logger.trace( + { + depName: dep.depName, + currentValue: dep.currentValue, + currentDigest: dep.currentDigest, + }, + 'Cloud Native Buildpacks builder', + ); + + deps.push({ ...dep, commitMessageTopic: 'builder {{depName}}' }); + } + + if ( + descriptor.io?.buildpacks?.group && + is.array(descriptor.io.buildpacks.group) + ) { + for (const group of descriptor.io.buildpacks.group) { + if (group.uri && isDockerRef(group.uri)) { + const dep = getDep( + group.uri.replace(dockerPrefix, ''), + true, + config.registryAliases, + ); + logger.trace( + { + depName: dep.depName, + currentValue: dep.currentValue, + currentDigest: dep.currentDigest, + }, + 'Cloud Native Buildpack', + ); + + deps.push(dep); + } + } + } + + if (!deps.length) { + return null; + } + return { deps }; +} diff --git a/lib/modules/manager/buildpacks/index.ts b/lib/modules/manager/buildpacks/index.ts new file mode 100644 index 00000000000000..53a3dcfeb4c221 --- /dev/null +++ b/lib/modules/manager/buildpacks/index.ts @@ -0,0 +1,12 @@ +import type { Category } from '../../../constants'; +import { DockerDatasource } from '../../datasource/docker'; +export { extractPackageFile } from './extract'; + +export const defaultConfig = { + commitMessageTopic: 'buildpack {{depName}}', + fileMatch: ['(^|/)project\\.toml$'], + pinDigests: false, +}; + +export const categories: Category[] = ['docker']; +export const supportedDatasources = [DockerDatasource.id]; diff --git a/lib/modules/manager/buildpacks/readme.md b/lib/modules/manager/buildpacks/readme.md new file mode 100644 index 00000000000000..d2f7b6c613968a --- /dev/null +++ b/lib/modules/manager/buildpacks/readme.md @@ -0,0 +1,26 @@ +The `buildpacks` manager updates Cloud Native Buildpacks project descriptors in `project.toml` files. +A `project.toml` file can reference builder / buildpack images by URIs. +Renovate can update a `project.toml` file if: + +- It can find the file +- The file follows the [project descriptor specifications](https://github.com/buildpacks/spec/blob/main/extensions/project-descriptor.md) +- The buildpack `uri` is an OCI image reference (references to a local file or buildpack registry are ignored) + +If you use buildpacks in the `io.buildpacks.group` array, then you _must_ configure the Docker reference (`uri`) for Renovate to work. + +```toml title="Example of a project.toml file with Docker reference URIs" +[_] +schema-version = "0.2" + +[io.buildpacks] +builder = "registry.corp/builder/noble:1.1.1" + +[[io.buildpacks.group]] +uri = "docker://buildpacks/java:2.2.2" + +[[io.buildpacks.group]] +uri = "buildpacks/nodejs:3.3.3" + +[[io.buildpacks.group]] +uri = "file://local.oci" # will be ignored +``` diff --git a/lib/modules/manager/buildpacks/schema.ts b/lib/modules/manager/buildpacks/schema.ts new file mode 100644 index 00000000000000..dc90371ca4ce93 --- /dev/null +++ b/lib/modules/manager/buildpacks/schema.ts @@ -0,0 +1,25 @@ +import { z } from 'zod'; +import { Toml } from '../../../util/schema-utils'; + +const BuildpackGroup = z.object({ + uri: z.string().optional(), +}); + +const IoBuildpacks = z.object({ + builder: z.string().optional(), + group: z.array(BuildpackGroup).optional(), +}); + +export const ProjectDescriptor = z.object({ + _: z.object({ + 'schema-version': z.string(), + }), + io: z + .object({ + buildpacks: IoBuildpacks.optional(), + }) + .optional(), +}); + +export type ProjectDescriptor = z.infer; +export const ProjectDescriptorToml = Toml.pipe(ProjectDescriptor); diff --git a/lib/modules/manager/bundler/extract.spec.ts b/lib/modules/manager/bundler/extract.spec.ts index cbee5d033f7c3e..8e58870bed9922 100644 --- a/lib/modules/manager/bundler/extract.spec.ts +++ b/lib/modules/manager/bundler/extract.spec.ts @@ -1,4 +1,5 @@ import is from '@sindresorhus/is'; +import { codeBlock } from 'common-tags'; import { Fixtures } from '../../../../test/fixtures'; import { fs } from '../../../../test/util'; import { isValid } from '../../versioning/ruby'; @@ -141,4 +142,57 @@ describe('modules/manager/bundler/extract', () => { { depName: 'sfn_my_dep2', currentValue: '"~> 1"' }, ]); }); + + it('parses source variable in Gemfile', async () => { + const sourceVariableGemfile = codeBlock` + foo = 'https://gems.foo.com' + bar = 'https://gems.bar.com' + + source foo + + source bar do + gem "some_internal_gem" + end + `; + + fs.readLocalFile.mockResolvedValueOnce(sourceVariableGemfile); + const res = await extractPackageFile(sourceVariableGemfile, 'Gemfile'); + expect(res).toMatchObject({ + registryUrls: ['https://gems.foo.com'], + deps: [ + { + depName: 'some_internal_gem', + registryUrls: ['https://gems.bar.com'], + }, + ], + }); + }); + + it('parses inline source in Gemfile', async () => { + const sourceInlineGemfile = codeBlock` + baz = 'https://gems.baz.com' + gem "inline_source_gem", source: 'https://gems.foo.com' + gem 'inline_source_gem_with_version', "~> 1", source: 'https://gems.bar.com' + gem 'inline_source_gem_with_variable_source', source: baz + `; + fs.readLocalFile.mockResolvedValueOnce(sourceInlineGemfile); + const res = await extractPackageFile(sourceInlineGemfile, 'Gemfile'); + expect(res).toMatchObject({ + deps: [ + { + depName: 'inline_source_gem', + registryUrls: ['https://gems.foo.com'], + }, + { + depName: 'inline_source_gem_with_version', + currentValue: '"~> 1"', + registryUrls: ['https://gems.bar.com'], + }, + { + depName: 'inline_source_gem_with_variable_source', + registryUrls: ['https://gems.baz.com'], + }, + ], + }); + }); }); diff --git a/lib/modules/manager/bundler/extract.ts b/lib/modules/manager/bundler/extract.ts index 54995620a9c487..e84cd65cb36f41 100644 --- a/lib/modules/manager/bundler/extract.ts +++ b/lib/modules/manager/bundler/extract.ts @@ -78,6 +78,9 @@ export async function extractPackageFile( registryUrls: [], deps: [], }; + + const variables: Record = {}; + const lines = content.split(newlineRegex); for (lineNumber = 0; lineNumber < lines.length; lineNumber += 1) { const line = lines[lineNumber]; @@ -85,12 +88,20 @@ export async function extractPackageFile( for (const delimiter of delimiters) { sourceMatch = sourceMatch ?? - regEx(`^source ${delimiter}([^${delimiter}]+)${delimiter}\\s*$`).exec( - line, - ); + regEx( + `^source ((${delimiter}(?[^${delimiter}]+)${delimiter})|(?\\w+))\\s*$`, + ).exec(line); } if (sourceMatch) { - res.registryUrls?.push(sourceMatch[1]); + if (sourceMatch.groups?.registryUrl) { + res.registryUrls?.push(sourceMatch.groups.registryUrl); + } + if (sourceMatch.groups?.sourceName) { + const registryUrl = variables[sourceMatch.groups.sourceName]; + if (registryUrl) { + res.registryUrls?.push(registryUrl); + } + } } const rubyMatch = extractRubyVersion(line); @@ -103,8 +114,18 @@ export async function extractPackageFile( }); } + const variableMatchRegex = regEx( + `^(?\\w+)\\s*=\\s*['"](?[^'"]+)['"]`, + ); + const variableMatch = variableMatchRegex.exec(line); + if (variableMatch) { + if (variableMatch.groups?.key) { + variables[variableMatch.groups?.key] = variableMatch.groups?.value; + } + } + const gemMatchRegex = regEx( - `^\\s*gem\\s+(['"])(?[^'"]+)(['"])(\\s*,\\s*(?(['"])[^'"]+['"](\\s*,\\s*['"][^'"]+['"])?))?`, + `^\\s*gem\\s+(['"])(?[^'"]+)(['"])(\\s*,\\s*(?(['"])[^'"]+['"](\\s*,\\s*['"][^'"]+['"])?))?(\\s*,\\s*source:\\s*(['"](?[^'"]+)['"]|(?[^'"]+)))?`, ); const gemMatch = gemMatchRegex.exec(line); if (gemMatch) { @@ -116,6 +137,14 @@ export async function extractPackageFile( const currentValue = gemMatch.groups.currentValue; dep.currentValue = currentValue; } + if (gemMatch.groups?.registryUrl) { + const registryUrl = gemMatch.groups.registryUrl; + dep.registryUrls = [registryUrl]; + } + if (gemMatch.groups?.sourceName) { + const registryUrl = variables[gemMatch.groups.sourceName]; + dep.registryUrls = [registryUrl]; + } dep.datasource = RubygemsDatasource.id; res.deps.push(dep); } @@ -124,10 +153,18 @@ export async function extractPackageFile( for (const delimiter of delimiters) { const sourceBlockMatch = regEx( - `^source\\s+${delimiter}(.*?)${delimiter}\\s+do`, + `^source\\s+((${delimiter}(?[^${delimiter}]+)${delimiter})|(?\\w+))\\s+do`, ).exec(line); if (sourceBlockMatch) { - const repositoryUrl = sourceBlockMatch[1]; + let repositoryUrl = ''; + if (sourceBlockMatch.groups?.registryUrl) { + repositoryUrl = sourceBlockMatch.groups.registryUrl; + } + if (sourceBlockMatch.groups?.sourceName) { + if (variables[sourceBlockMatch.groups.sourceName]) { + repositoryUrl = variables[sourceBlockMatch.groups.sourceName]; + } + } const sourceLineNumber = lineNumber; let sourceContent = ''; let sourceLine = ''; diff --git a/lib/modules/manager/cargo/extract.spec.ts b/lib/modules/manager/cargo/extract.spec.ts index 6b48dc84378ea5..d379da8257fea8 100644 --- a/lib/modules/manager/cargo/extract.spec.ts +++ b/lib/modules/manager/cargo/extract.spec.ts @@ -635,5 +635,21 @@ replace-with = "mcorbin" const res = await extractPackageFile(cargotoml, 'Cargo.toml', config); expect(res?.packageFileVersion).toBe('0.1.0'); }); + + it('should extract project version from workspace', async () => { + const cargotoml = codeBlock` + [package] + name = "test" + version.workspace = true + edition = "2021" + [workspace.package] + version = "0.1.0" + [dependencies] + syn = "2.0" + `; + + const res = await extractPackageFile(cargotoml, 'Cargo.toml', config); + expect(res?.packageFileVersion).toBe('0.1.0'); + }); }); }); diff --git a/lib/modules/manager/cargo/extract.ts b/lib/modules/manager/cargo/extract.ts index f71df1f2226c9d..3d090e52b7a3e8 100644 --- a/lib/modules/manager/cargo/extract.ts +++ b/lib/modules/manager/cargo/extract.ts @@ -1,3 +1,4 @@ +import is from '@sindresorhus/is'; import { logger } from '../../../logger'; import { coerceArray } from '../../../util/array'; import { findLocalSiblingOrParent, readLocalFile } from '../../../util/fs'; @@ -248,7 +249,15 @@ export async function extractPackageFile( const packageSection = cargoManifest.package; let version: string | undefined = undefined; if (packageSection) { - version = packageSection.version; + if (is.string(packageSection.version)) { + version = packageSection.version; + } else if ( + is.object(packageSection.version) && + cargoManifest.workspace?.package?.version + ) { + // TODO: Support reading from parent workspace manifest? + version = cargoManifest.workspace.package.version; + } } const lockFileName = await findLocalSiblingOrParent( diff --git a/lib/modules/manager/cargo/schema.ts b/lib/modules/manager/cargo/schema.ts index 52640d4252d893..1a5e799e96d577 100644 --- a/lib/modules/manager/cargo/schema.ts +++ b/lib/modules/manager/cargo/schema.ts @@ -99,13 +99,24 @@ const CargoSection = z.object({ const CargoWorkspace = z.object({ dependencies: withDepType(CargoDeps, 'workspace.dependencies').optional(), + package: z + .object({ + version: z.string().optional(), + }) + .optional(), }); const CargoTarget = z.record(z.string(), CargoSection); export const CargoManifestSchema = Toml.pipe( CargoSection.extend({ - package: z.object({ version: z.string().optional() }).optional(), + package: z + .object({ + version: z + .union([z.string(), z.object({ workspace: z.literal(true) })]) + .optional(), + }) + .optional(), workspace: CargoWorkspace.optional(), target: CargoTarget.optional(), }), diff --git a/lib/modules/manager/conan/__fixtures__/conanfile.txt b/lib/modules/manager/conan/__fixtures__/conanfile.txt index fb8a66eab42492..b3efed12102655 100644 --- a/lib/modules/manager/conan/__fixtures__/conanfile.txt +++ b/lib/modules/manager/conan/__fixtures__/conanfile.txt @@ -4,6 +4,7 @@ zlib/[~1.2.3, loose=False] fake/8.62.134@test/dev cairo/1.17.2#aff2d03608351db075ec1348a3afc9ff cairo/1.17.2@_/_#aff2d03608351db075ec1348a3afc9ff +Fake/8.62.134@ [build_requires] 7zip/[>1.1 <2.1, include_prerelease=True] diff --git a/lib/modules/manager/conan/extract.spec.ts b/lib/modules/manager/conan/extract.spec.ts index b0df8a12a5f878..783c74fbdc7e30 100644 --- a/lib/modules/manager/conan/extract.spec.ts +++ b/lib/modules/manager/conan/extract.spec.ts @@ -55,6 +55,13 @@ describe('modules/manager/conan/extract', () => { packageName: 'cairo/1.17.2@_/_', replaceString: 'cairo/1.17.2@_/_#aff2d03608351db075ec1348a3afc9ff', }, + { + currentValue: '8.62.134', + depName: 'Fake', + depType: 'requires', + packageName: 'Fake/8.62.134@_/_', + replaceString: 'Fake/8.62.134', + }, { currentValue: '[>1.1 <2.1, include_prerelease=True]', depName: '7zip', diff --git a/lib/modules/manager/conan/extract.ts b/lib/modules/manager/conan/extract.ts index e4fab9f50233b7..fb869dad2fd98a 100644 --- a/lib/modules/manager/conan/extract.ts +++ b/lib/modules/manager/conan/extract.ts @@ -4,7 +4,7 @@ import type { PackageDependency, PackageFileContent } from '../types'; import { isComment } from './common'; const regex = regEx( - `(?[-_a-z0-9]+)/(?[^@#\n{*"']+)(?@[-_a-zA-Z0-9]+(?:/[^#\n.{*"' ]+|))?#?(?[-_a-f0-9]+[^\n{*"'])?`, + `(?[-_a-zA-Z0-9]+)/(?[^@#\n{*"']+)(?@[-_a-zA-Z0-9]+(?:/[^#\n.{*"' ]+|))?#?(?[-_a-f0-9]+[^\n{*"'])?`, ); function setDepType(content: string, originalType: string): string { diff --git a/lib/modules/manager/custom/regex/__fixtures__/Dockerfile b/lib/modules/manager/custom/regex/__fixtures__/Dockerfile index cac5d01da33c7e..ed0437310798e9 100644 --- a/lib/modules/manager/custom/regex/__fixtures__/Dockerfile +++ b/lib/modules/manager/custom/regex/__fixtures__/Dockerfile @@ -131,7 +131,7 @@ RUN chmod +x /usr/local/bin/composer RUN apt-get update && apt-get install -y bzr mercurial && \ rm -rf /var/lib/apt/lists/* -ENV GOLANG_VERSION=1.13.4 +ENV GOLANG_VERSION=1.23.3 # Disable GOPROXY and GOSUMDB until we offer a solid solution to configure # private repositories. diff --git a/lib/modules/manager/dockerfile/extract.spec.ts b/lib/modules/manager/dockerfile/extract.spec.ts index ce1faec854d533..a16b0bb40c0008 100644 --- a/lib/modules/manager/dockerfile/extract.spec.ts +++ b/lib/modules/manager/dockerfile/extract.spec.ts @@ -463,7 +463,7 @@ describe('modules/manager/dockerfile/extract', () => { it('detects ["stage"] and ["final"] deps of docker multi-stage build.', () => { const res = extractPackageFile( - 'FROM node:8.15.1-alpine as skippedfrom\nFROM golang:1.7.3 as builder\n\n# comment\nWORKDIR /go/src/github.com/alexellis/href-counter/\nRUN go get -d -v golang.org/x/net/html \nCOPY app.go .\nRUN CGO_ENABLED=0 GOOS=linux go build -a -installsuffix cgo -o app .\n\nFROM alpine:latest \nRUN apk --no-cache add ca-certificates\nWORKDIR /root/\nCOPY --from=builder /go/src/github.com/alexellis/href-counter/app .\nCMD ["./app"]\n', + 'FROM node:8.15.1-alpine as skippedfrom\nFROM golang:1.23.3 as builder\n\n# comment\nWORKDIR /go/src/github.com/alexellis/href-counter/\nRUN go get -d -v golang.org/x/net/html \nCOPY app.go .\nRUN CGO_ENABLED=0 GOOS=linux go build -a -installsuffix cgo -o app .\n\nFROM alpine:latest \nRUN apk --no-cache add ca-certificates\nWORKDIR /root/\nCOPY --from=builder /go/src/github.com/alexellis/href-counter/app .\nCMD ["./app"]\n', '', {}, )?.deps; @@ -482,11 +482,11 @@ describe('modules/manager/dockerfile/extract', () => { autoReplaceStringTemplate: '{{depName}}{{#if newValue}}:{{newValue}}{{/if}}{{#if newDigest}}@{{newDigest}}{{/if}}', currentDigest: undefined, - currentValue: '1.7.3', + currentValue: '1.23.3', datasource: 'docker', depName: 'golang', depType: 'stage', - replaceString: 'golang:1.7.3', + replaceString: 'golang:1.23.3', }, { autoReplaceStringTemplate: diff --git a/lib/modules/manager/gomod/__fixtures__/3/go-mod b/lib/modules/manager/gomod/__fixtures__/3/go-mod index 973a7c3dcee593..7407b435d7b566 100644 --- a/lib/modules/manager/gomod/__fixtures__/3/go-mod +++ b/lib/modules/manager/gomod/__fixtures__/3/go-mod @@ -1,6 +1,6 @@ module k8s.io/minikube -go 1.13 +go 1.23 require ( cloud.google.com/go v0.45.1 @@ -132,5 +132,4 @@ replace ( k8s.io/sample-controller => k8s.io/sample-controller v0.17.3 ) -toolchain go1.22.1 - +toolchain go1.23.3 diff --git a/lib/modules/manager/gomod/artifacts.spec.ts b/lib/modules/manager/gomod/artifacts.spec.ts index 9246997792a3f2..308904a603356b 100644 --- a/lib/modules/manager/gomod/artifacts.spec.ts +++ b/lib/modules/manager/gomod/artifacts.spec.ts @@ -443,7 +443,7 @@ describe('modules/manager/gomod/artifacts', () => { fs.readLocalFile.mockResolvedValueOnce('New go.sum'); fs.readLocalFile.mockResolvedValueOnce(gomod1); datasource.getPkgReleases.mockResolvedValueOnce({ - releases: [{ version: '1.17.0' }, { version: '1.14.0' }], + releases: [{ version: '1.17.0' }, { version: '1.23.3' }], }); expect( await gomod.updateArtifacts({ @@ -480,7 +480,7 @@ describe('modules/manager/gomod/artifacts', () => { '-w "/tmp/github/some/repo" ' + 'ghcr.io/containerbase/sidecar' + ' bash -l -c "' + - 'install-tool golang 1.14.0' + + 'install-tool golang 1.23.3' + ' && ' + 'go get -d -t ./...' + '"', @@ -505,7 +505,7 @@ describe('modules/manager/gomod/artifacts', () => { fs.readLocalFile.mockResolvedValueOnce('New go.sum'); fs.readLocalFile.mockResolvedValueOnce(gomod1); datasource.getPkgReleases.mockResolvedValueOnce({ - releases: [{ version: '1.17.0' }, { version: '1.14.0' }], + releases: [{ version: '1.17.0' }, { version: '1.23.3' }], }); expect( await gomod.updateArtifacts({ @@ -524,7 +524,7 @@ describe('modules/manager/gomod/artifacts', () => { }, ]); expect(execSnapshots).toMatchObject([ - { cmd: 'install-tool golang 1.14.0' }, + { cmd: 'install-tool golang 1.23.3' }, { cmd: 'go get -d -t ./...', options: { @@ -595,7 +595,7 @@ describe('modules/manager/gomod/artifacts', () => { fs.readLocalFile.mockResolvedValueOnce('New go.sum'); fs.readLocalFile.mockResolvedValueOnce(gomod1); datasource.getPkgReleases.mockResolvedValueOnce({ - releases: [{ version: '1.17.0' }, { version: '1.14.0' }], + releases: [{ version: '1.17.0' }, { version: '1.23.3' }], }); expect( await gomod.updateArtifacts({ @@ -645,7 +645,7 @@ describe('modules/manager/gomod/artifacts', () => { '-w "/tmp/github/some/repo" ' + 'ghcr.io/containerbase/sidecar' + ' bash -l -c "' + - 'install-tool golang 1.14.0' + + 'install-tool golang 1.23.3' + ' && ' + 'go get -d -t ./...' + '"', @@ -704,7 +704,7 @@ describe('modules/manager/gomod/artifacts', () => { fs.readLocalFile.mockResolvedValueOnce('New go.sum'); fs.readLocalFile.mockResolvedValueOnce(gomod1); datasource.getPkgReleases.mockResolvedValueOnce({ - releases: [{ version: '1.17.0' }, { version: '1.14.0' }], + releases: [{ version: '1.17.0' }, { version: '1.23.3' }], }); expect( await gomod.updateArtifacts({ @@ -772,7 +772,7 @@ describe('modules/manager/gomod/artifacts', () => { fs.readLocalFile.mockResolvedValueOnce('New go.sum'); fs.readLocalFile.mockResolvedValueOnce(gomod1); datasource.getPkgReleases.mockResolvedValueOnce({ - releases: [{ version: '1.17.0' }, { version: '1.14.0' }], + releases: [{ version: '1.17.0' }, { version: '1.23.3' }], }); expect( await gomod.updateArtifacts({ @@ -837,7 +837,7 @@ describe('modules/manager/gomod/artifacts', () => { fs.readLocalFile.mockResolvedValueOnce('New go.sum'); fs.readLocalFile.mockResolvedValueOnce(gomod1); datasource.getPkgReleases.mockResolvedValueOnce({ - releases: [{ version: '1.17.0' }, { version: '1.14.0' }], + releases: [{ version: '1.17.0' }, { version: '1.23.3' }], }); expect( await gomod.updateArtifacts({ @@ -911,7 +911,7 @@ describe('modules/manager/gomod/artifacts', () => { fs.readLocalFile.mockResolvedValueOnce('New go.sum'); fs.readLocalFile.mockResolvedValueOnce(gomod1); datasource.getPkgReleases.mockResolvedValueOnce({ - releases: [{ version: '1.17.0' }, { version: '1.14.0' }], + releases: [{ version: '1.17.0' }, { version: '1.23.3' }], }); expect( await gomod.updateArtifacts({ @@ -984,7 +984,7 @@ describe('modules/manager/gomod/artifacts', () => { fs.readLocalFile.mockResolvedValueOnce('New go.sum'); fs.readLocalFile.mockResolvedValueOnce(gomod1); datasource.getPkgReleases.mockResolvedValueOnce({ - releases: [{ version: '1.17.0' }, { version: '1.14.0' }], + releases: [{ version: '1.17.0' }, { version: '1.23.3' }], }); expect( await gomod.updateArtifacts({ @@ -1065,7 +1065,7 @@ describe('modules/manager/gomod/artifacts', () => { fs.readLocalFile.mockResolvedValueOnce('New go.sum'); fs.readLocalFile.mockResolvedValueOnce(gomod1); datasource.getPkgReleases.mockResolvedValueOnce({ - releases: [{ version: '1.17.0' }, { version: '1.14.0' }], + releases: [{ version: '1.17.0' }, { version: '1.23.3' }], }); expect( await gomod.updateArtifacts({ @@ -1120,7 +1120,7 @@ describe('modules/manager/gomod/artifacts', () => { fs.readLocalFile.mockResolvedValueOnce('New go.sum 3'); fs.readLocalFile.mockResolvedValueOnce('New go.mod'); datasource.getPkgReleases.mockResolvedValueOnce({ - releases: [{ version: '1.17.0' }, { version: '1.14.0' }], + releases: [{ version: '1.17.0' }, { version: '1.23.3' }], }); expect( await gomod.updateArtifacts({ @@ -1155,7 +1155,7 @@ describe('modules/manager/gomod/artifacts', () => { '-w "/tmp/github/some/repo" ' + 'ghcr.io/containerbase/sidecar' + ' bash -l -c "' + - 'install-tool golang 1.14.0' + + 'install-tool golang 1.23.3' + ' && ' + 'go get -d -t ./...' + ' && ' + @@ -1184,7 +1184,7 @@ describe('modules/manager/gomod/artifacts', () => { fs.readLocalFile.mockResolvedValueOnce('New go.sum 3'); fs.readLocalFile.mockResolvedValueOnce('New go.mod'); datasource.getPkgReleases.mockResolvedValueOnce({ - releases: [{ version: '1.17.0' }, { version: '1.14.0' }], + releases: [{ version: '1.17.0' }, { version: '1.23.3' }], }); expect( await gomod.updateArtifacts({ @@ -1219,7 +1219,7 @@ describe('modules/manager/gomod/artifacts', () => { '-w "/tmp/github/some/repo" ' + 'ghcr.io/containerbase/sidecar' + ' bash -l -c "' + - 'install-tool golang 1.14.0' + + 'install-tool golang 1.23.3' + ' && ' + 'go get -d -t ./...' + ' && ' + @@ -1248,7 +1248,7 @@ describe('modules/manager/gomod/artifacts', () => { fs.readLocalFile.mockResolvedValueOnce('New go.sum 3'); fs.readLocalFile.mockResolvedValueOnce('New go.mod'); datasource.getPkgReleases.mockResolvedValueOnce({ - releases: [{ version: '1.17.0' }, { version: '1.14.0' }], + releases: [{ version: '1.17.0' }, { version: '1.23.3' }], }); expect( await gomod.updateArtifacts({ @@ -1283,7 +1283,7 @@ describe('modules/manager/gomod/artifacts', () => { '-w "/tmp/github/some/repo" ' + 'ghcr.io/containerbase/sidecar' + ' bash -l -c "' + - 'install-tool golang 1.14.0' + + 'install-tool golang 1.23.3' + ' && ' + 'go get -d -t ./...' + ' && ' + @@ -1312,7 +1312,7 @@ describe('modules/manager/gomod/artifacts', () => { fs.readLocalFile.mockResolvedValueOnce('New go.sum 3'); fs.readLocalFile.mockResolvedValueOnce('New go.mod'); datasource.getPkgReleases.mockResolvedValueOnce({ - releases: [{ version: '1.17.0' }, { version: '1.14.0' }], + releases: [{ version: '1.17.0' }, { version: '1.23.3' }], }); expect( await gomod.updateArtifacts({ @@ -1347,7 +1347,7 @@ describe('modules/manager/gomod/artifacts', () => { '-w "/tmp/github/some/repo" ' + 'ghcr.io/containerbase/sidecar' + ' bash -l -c "' + - 'install-tool golang 1.14.0' + + 'install-tool golang 1.23.3' + ' && ' + 'go get -d -t ./...' + ' && ' + @@ -1905,7 +1905,7 @@ describe('modules/manager/gomod/artifacts', () => { .mockResolvedValueOnce('New main.go') .mockResolvedValueOnce('New go.mod'); datasource.getPkgReleases.mockResolvedValueOnce({ - releases: [{ version: '1.17.0' }, { version: '1.14.0' }], + releases: [{ version: '1.17.0' }, { version: '1.23.3' }], }); const res = await gomod.updateArtifacts({ packageFileName: 'go.mod', @@ -1924,7 +1924,7 @@ describe('modules/manager/gomod/artifacts', () => { { file: { type: 'addition', path: 'go.mod', contents: 'New go.mod' } }, ]); expect(execSnapshots).toMatchObject([ - { cmd: 'install-tool golang 1.14.0' }, + { cmd: 'install-tool golang 1.23.3' }, { cmd: 'go get -d -t ./...', options: { cwd: '/tmp/github/some/repo' }, @@ -1964,7 +1964,7 @@ describe('modules/manager/gomod/artifacts', () => { .mockResolvedValueOnce('New main.go') .mockResolvedValueOnce('New go.mod'); datasource.getPkgReleases.mockResolvedValueOnce({ - releases: [{ version: '1.17.0' }, { version: '1.14.0' }], + releases: [{ version: '1.17.0' }, { version: '1.23.3' }], }); const res = await gomod.updateArtifacts({ packageFileName: 'go.mod', @@ -2004,7 +2004,7 @@ describe('modules/manager/gomod/artifacts', () => { '-w "/tmp/github/some/repo" ' + 'ghcr.io/containerbase/sidecar' + ' bash -l -c "' + - 'install-tool golang 1.17.0' + + 'install-tool golang 1.23.3' + ' && ' + 'go get -d -t ./...' + ' && ' + @@ -2038,7 +2038,7 @@ describe('modules/manager/gomod/artifacts', () => { .mockResolvedValueOnce('New main.go') .mockResolvedValueOnce('New go.mod'); datasource.getPkgReleases.mockResolvedValueOnce({ - releases: [{ version: '1.17.0' }, { version: '1.14.0' }], + releases: [{ version: '1.17.0' }, { version: '1.23.3' }], }); const res = await gomod.updateArtifacts({ packageFileName: 'go.mod', @@ -2077,7 +2077,7 @@ describe('modules/manager/gomod/artifacts', () => { .mockResolvedValueOnce('New main.go') .mockResolvedValueOnce('New go.mod'); datasource.getPkgReleases.mockResolvedValueOnce({ - releases: [{ version: '1.17.0' }, { version: '1.14.0' }], + releases: [{ version: '1.17.0' }, { version: '1.23.3' }], }); const res = await gomod.updateArtifacts({ packageFileName: 'go.mod', @@ -2119,7 +2119,7 @@ describe('modules/manager/gomod/artifacts', () => { '-w "/tmp/github/some/repo" ' + 'ghcr.io/containerbase/sidecar' + ' bash -l -c "' + - 'install-tool golang 1.14.0' + + 'install-tool golang 1.23.3' + ' && ' + 'go get -d -t ./...' + ' && ' + diff --git a/lib/modules/manager/gomod/extract.spec.ts b/lib/modules/manager/gomod/extract.spec.ts index 97d093d62b4ac6..e5d063f83afbb4 100644 --- a/lib/modules/manager/gomod/extract.spec.ts +++ b/lib/modules/manager/gomod/extract.spec.ts @@ -46,7 +46,7 @@ describe('modules/manager/gomod/extract', () => { it('extracts replace directives from multi-line and single line', () => { const goMod = codeBlock` module github.com/renovate-tests/gomod - go 1.18 + go 1.23 replace golang.org/x/foo => github.com/pravesht/gocql v0.0.0 replace ( k8s.io/client-go => k8s.io/client-go v0.21.9 @@ -66,7 +66,7 @@ describe('modules/manager/gomod/extract', () => { }, depName: 'go', depType: 'golang', - currentValue: '1.18', + currentValue: '1.23', datasource: 'golang-version', versioning: 'go-mod-directive', }, @@ -127,8 +127,8 @@ describe('modules/manager/gomod/extract', () => { it('extracts the toolchain directive', () => { const goMod = codeBlock` module github.com/renovate-tests/gomod - go 1.21 - toolchain go1.21.7 + go 1.23 + toolchain go1.23.3 replace golang.org/x/foo => github.com/pravesht/gocql v0.0.0 `; const res = extractPackageFile(goMod); @@ -140,7 +140,7 @@ describe('modules/manager/gomod/extract', () => { }, depName: 'go', depType: 'golang', - currentValue: '1.21', + currentValue: '1.23', datasource: 'golang-version', versioning: 'go-mod-directive', }, @@ -150,7 +150,7 @@ describe('modules/manager/gomod/extract', () => { }, depName: 'go', depType: 'toolchain', - currentValue: '1.21.7', + currentValue: '1.23.3', datasource: 'golang-version', }, { diff --git a/lib/modules/manager/gomod/line-parser.spec.ts b/lib/modules/manager/gomod/line-parser.spec.ts index 11beed76cf86cc..a7ad513712c6e1 100644 --- a/lib/modules/manager/gomod/line-parser.spec.ts +++ b/lib/modules/manager/gomod/line-parser.spec.ts @@ -6,10 +6,10 @@ describe('modules/manager/gomod/line-parser', () => { }); it('should parse go version', () => { - const line = 'go 1.16'; + const line = 'go 1.23'; const res = parseLine(line); expect(res).toStrictEqual({ - currentValue: '1.16', + currentValue: '1.23', datasource: 'golang-version', depName: 'go', depType: 'golang', @@ -31,10 +31,10 @@ describe('modules/manager/gomod/line-parser', () => { }); it('should parse toolchain version', () => { - const line = 'toolchain go1.16'; + const line = 'toolchain go1.23'; const res = parseLine(line); expect(res).toStrictEqual({ - currentValue: '1.16', + currentValue: '1.23', datasource: 'golang-version', depName: 'go', depType: 'toolchain', diff --git a/lib/modules/manager/gomod/readme.md b/lib/modules/manager/gomod/readme.md index 34dc5df94f2862..d5a97547b768f2 100644 --- a/lib/modules/manager/gomod/readme.md +++ b/lib/modules/manager/gomod/readme.md @@ -16,7 +16,7 @@ You might be interested in the following `postUpdateOptions`: 1. `gomodMassage` - to enable massaging of all `replace` statements prior to running `go` so that they will be ignored When Renovate is running using `binarySource=docker` (such as in the Mend Renovate App) then it will pick the latest compatible version of Go to run, i.e. the latest `1.x` release. -Even if the `go.mod` has a version like `go 1.14`, Renovate will treat it as a `^1.14` constraint and not `=1.14`. +Even if the `go.mod` has a version like `go 1.22`, Renovate will treat it as a `^1.22` constraint and not `=1.22`. Indirect updates are disabled by default. To enable them, add a package rule such as: diff --git a/lib/modules/manager/gomod/update.spec.ts b/lib/modules/manager/gomod/update.spec.ts index c6cce004636d5a..28b9e2c5b23c9f 100644 --- a/lib/modules/manager/gomod/update.spec.ts +++ b/lib/modules/manager/gomod/update.spec.ts @@ -366,7 +366,7 @@ describe('modules/manager/gomod/update', () => { it('handles multiline replace update', () => { const fileContent = ` - go 1.18 + go 1.23 replace ( k8s.io/client-go => k8s.io/client-go v0.21.9 )`; diff --git a/lib/modules/manager/gradle-wrapper/util.spec.ts b/lib/modules/manager/gradle-wrapper/util.spec.ts index 470adaf837d2b1..5087e073d3c7c9 100644 --- a/lib/modules/manager/gradle-wrapper/util.spec.ts +++ b/lib/modules/manager/gradle-wrapper/util.spec.ts @@ -5,6 +5,7 @@ import { fs, partial } from '../../../../test/util'; import { extractGradleVersion, getJavaConstraint, + getJavaLanguageVersion, getJvmConfiguration, gradleWrapperFileName, prepareGradleCommand, @@ -45,6 +46,15 @@ describe('modules/manager/gradle-wrapper/util', () => { fs.readLocalFile.mockResolvedValue(daemonJvm); expect(await getJavaConstraint('8.8', './gradlew')).toBe('^999.0.0'); }); + + it('returns languageVersion constraint if found', async () => { + const buildGradle = codeBlock` + java { toolchain { languageVersion = JavaLanguageVersion.of(456) } } + `; + fs.localPathExists.mockResolvedValueOnce(true); + fs.readLocalFile.mockResolvedValue(buildGradle); + expect(await getJavaConstraint('6.7', './gradlew')).toBe('^456.0.0'); + }); }); describe('getJvmConfiguration', () => { @@ -67,6 +77,36 @@ describe('modules/manager/gradle-wrapper/util', () => { }); }); + describe('getJavaLanguageVersion', () => { + it('extract languageVersion value', async () => { + const buildGradle = codeBlock` + java { toolchain { languageVersion = JavaLanguageVersion.of(21) } } + `; + fs.localPathExists.mockResolvedValue(true); + fs.readLocalFile.mockResolvedValue(buildGradle); + expect(await getJavaLanguageVersion('')).toBe('21'); + }); + + it('returns null if build.gradle or build.gradle.kts file not found', async () => { + fs.localPathExists.mockResolvedValue(false); + fs.readLocalFile.mockResolvedValue(null); + expect(await getJavaLanguageVersion('sub/gradlew')).toBeNull(); + expect(fs.readLocalFile).toHaveBeenCalledWith( + 'sub/build.gradle.kts', + 'utf8', + ); + }); + + it('returns null if build.gradle does not include languageVersion', async () => { + const buildGradle = codeBlock` + dependencies { implementation "com.google.protobuf:protobuf-java:2.17.0" } + `; + fs.localPathExists.mockResolvedValue(true); + fs.readLocalFile.mockResolvedValue(buildGradle); + expect(await getJavaLanguageVersion('')).toBeNull(); + }); + }); + describe('extractGradleVersion()', () => { it('returns null', () => { const properties = codeBlock` diff --git a/lib/modules/manager/gradle-wrapper/utils.ts b/lib/modules/manager/gradle-wrapper/utils.ts index fece660f4b0a16..a869bbc20b3959 100644 --- a/lib/modules/manager/gradle-wrapper/utils.ts +++ b/lib/modules/manager/gradle-wrapper/utils.ts @@ -2,9 +2,15 @@ import os from 'node:os'; import { dirname, join } from 'upath'; import { GlobalConfig } from '../../../config/global'; import { logger } from '../../../logger'; -import { chmodLocalFile, readLocalFile, statLocalFile } from '../../../util/fs'; +import { + chmodLocalFile, + localPathExists, + readLocalFile, + statLocalFile, +} from '../../../util/fs'; import { regEx } from '../../../util/regex'; import gradleVersioning from '../../versioning/gradle'; +import { parseJavaToolchainVersion } from '../gradle/parser'; import type { GradleVersionExtract } from './types'; export const extraEnv = { @@ -60,6 +66,13 @@ export async function getJavaConstraint( return `^${toolChainVersion}.0.0`; } } + // https://docs.gradle.org/6.7/release-notes.html#new-jvm-ecosystem-features + if (major > 6 || (major === 6 && minor && minor >= 7)) { + const languageVersion = await getJavaLanguageVersion(gradlewFile); + if (languageVersion) { + return `^${languageVersion}.0.0`; + } + } if (major > 8 || (major === 8 && minor && minor >= 5)) { return '^21.0.0'; } @@ -103,6 +116,27 @@ export async function getJvmConfiguration( return null; } +/** + * https://docs.gradle.org/current/userguide/toolchains.html#sec:consuming + */ +export async function getJavaLanguageVersion( + gradlewFile: string, +): Promise { + const localGradleDir = dirname(gradlewFile); + let buildFileName = join(localGradleDir, 'build.gradle'); + if (!(await localPathExists(buildFileName))) { + buildFileName = join(localGradleDir, 'build.gradle.kts'); + } + + const buildFileContent = await readLocalFile(buildFileName, 'utf8'); + if (!buildFileContent) { + logger.debug('build.gradle or build.gradle.kts not found'); + return null; + } + + return parseJavaToolchainVersion(buildFileContent); +} + // https://regex101.com/r/IcOs7P/1 const DISTRIBUTION_URL_REGEX = regEx( '^(?:distributionUrl\\s*=\\s*)(?\\S*-(?\\d+\\.\\d+(?:\\.\\d+)?(?:-\\w+)*)-(?bin|all)\\.zip)\\s*$', diff --git a/lib/modules/manager/gradle/parser.spec.ts b/lib/modules/manager/gradle/parser.spec.ts index 101848c6c81937..668c6b3ff188cb 100644 --- a/lib/modules/manager/gradle/parser.spec.ts +++ b/lib/modules/manager/gradle/parser.spec.ts @@ -2,7 +2,12 @@ import is from '@sindresorhus/is'; import { codeBlock } from 'common-tags'; import { Fixtures } from '../../../../test/fixtures'; import { fs, logger } from '../../../../test/util'; -import { parseGradle, parseKotlinSource, parseProps } from './parser'; +import { + parseGradle, + parseJavaToolchainVersion, + parseKotlinSource, + parseProps, +} from './parser'; import { GRADLE_PLUGINS, REGISTRY_URLS } from './parser/common'; jest.mock('../../../util/fs'); @@ -1108,4 +1113,23 @@ describe('modules/manager/gradle/parser', () => { }); }); }); + + describe('Java language version', () => { + it.each` + input | output + ${'java { toolchain { languageVersion = JavaLanguageVersion.of(22) } }'} | ${'22'} + ${'java { toolchain.languageVersion.set(JavaLanguageVersion.of(16)) }'} | ${'16'} + ${'java.toolchain { languageVersion.set(JavaLanguageVersion.of(17)) }'} | ${'17'} + ${'java.toolchain.languageVersion = JavaLanguageVersion.of(21)'} | ${'21'} + ${'kotlin { jvmToolchain { languageVersion = JavaLanguageVersion.of(17) } }'} | ${'17'} + ${'kotlin { jvmToolchain { languageVersion.set(JavaLanguageVersion.of(17)) } }'} | ${'17'} + ${'kotlin.jvmToolchain { languageVersion.set(JavaLanguageVersion.of(8)) }'} | ${'8'} + ${'kotlin { jvmToolchain(11) }'} | ${'11'} + ${'kotlin.jvmToolchain(16)'} | ${'16'} + ${'dependencies { implementation "com.google.protobuf:protobuf-java:2.17.0" }'} | ${null} + `('$input', ({ input, output }) => { + const javaLanguageVersion = parseJavaToolchainVersion(input); + expect(javaLanguageVersion).toBe(output); + }); + }); }); diff --git a/lib/modules/manager/gradle/parser.ts b/lib/modules/manager/gradle/parser.ts index abf2361eaca859..d9f0f4e6111792 100644 --- a/lib/modules/manager/gradle/parser.ts +++ b/lib/modules/manager/gradle/parser.ts @@ -6,6 +6,7 @@ import { qAssignments } from './parser/assignments'; import { qKotlinImport } from './parser/common'; import { qDependencies, qLongFormDep } from './parser/dependencies'; import { setParseGradleFunc } from './parser/handlers'; +import { qToolchainVersion } from './parser/language-version'; import { qKotlinMultiObjectVarAssignment } from './parser/objects'; import { qPlugins } from './parser/plugins'; import { qRegistryUrls } from './parser/registry-urls'; @@ -51,7 +52,6 @@ export function parseGradle( const query = q.tree({ type: 'root-tree', - maxDepth: 32, search: q.alt( qKotlinImport, qAssignments, @@ -109,6 +109,13 @@ export function parseKotlinSource( return { deps, vars }; } +export function parseJavaToolchainVersion(input: string): string | null { + const ctx: Partial = {}; + const parsedResult = groovy.query(input, qToolchainVersion, ctx); + + return parsedResult?.javaLanguageVersion ?? null; +} + const propWord = '[a-zA-Z_][a-zA-Z0-9_]*(?:\\.[a-zA-Z_][a-zA-Z0-9_]*)*'; const propRegex = regEx( `^(?\\s*(?${propWord})\\s*[= :]\\s*['"]?)(?[^\\s'"]+)['"]?\\s*$`, diff --git a/lib/modules/manager/gradle/parser/common.ts b/lib/modules/manager/gradle/parser/common.ts index 997ac4f42b169f..fffc610c0cac41 100644 --- a/lib/modules/manager/gradle/parser/common.ts +++ b/lib/modules/manager/gradle/parser/common.ts @@ -313,3 +313,22 @@ export const qKotlinImport = q return ctx; }) .handler(cleanupTempVars); + +// foo { bar { baz } } +// foo.bar { baz } +export const qDotOrBraceExpr = ( + symValue: q.SymMatcherValue, + matcher: q.QueryBuilder, +): q.QueryBuilder => + q.sym(symValue).alt( + q.alt( + q.op('.').join(matcher), + q.tree({ + type: 'wrapped-tree', + maxDepth: 1, + startsWith: '{', + endsWith: '}', + search: matcher, + }), + ), + ); diff --git a/lib/modules/manager/gradle/parser/language-version.ts b/lib/modules/manager/gradle/parser/language-version.ts new file mode 100644 index 00000000000000..38cb4514a15a1d --- /dev/null +++ b/lib/modules/manager/gradle/parser/language-version.ts @@ -0,0 +1,59 @@ +import type { lexer } from 'good-enough-parser'; +import { query as q } from 'good-enough-parser'; +import { regEx } from '../../../../util/regex'; +import type { Ctx } from '../types'; +import { qDotOrBraceExpr } from './common'; + +// (21) +const qVersionNumber = q.tree({ + type: 'wrapped-tree', + maxDepth: 1, + maxMatches: 1, + startsWith: '(', + endsWith: ')', + search: q.num((ctx: Ctx, node: lexer.Token) => { + ctx.javaLanguageVersion = node.value; + return ctx; + }), +}); + +// kotlin { jvmToolchain(17) } +// kotlin.jvmToolchain(17) +const qKotlinShortNotationToolchain = qDotOrBraceExpr( + 'kotlin', + q.sym('jvmToolchain').join(qVersionNumber), +); + +// JavaLanguageVersion.of(21) +const qJavaLanguageVersion = q + .sym('JavaLanguageVersion') + .op('.') + .sym('of') + .join(qVersionNumber); + +// java { toolchain { languageVersion = JavaLanguageVersion.of(21) } } +// kotlin { jvmToolchain { languageVersion.set(JavaLanguageVersion.of(17)) } } +const qLongFormToolchainVersion = qDotOrBraceExpr( + regEx(/^(?:java|kotlin)$/), + qDotOrBraceExpr( + regEx(/^(?:toolchain|jvmToolchain)$/), + q.sym('languageVersion').alt( + q.op('=').join(qJavaLanguageVersion), + q + .op('.') + .sym('set') + .tree({ + type: 'wrapped-tree', + maxDepth: 1, + startsWith: '(', + endsWith: ')', + search: q.begin().join(qJavaLanguageVersion).end(), + }), + ), + ), +); + +export const qToolchainVersion = q.alt( + qKotlinShortNotationToolchain, + qLongFormToolchainVersion, +); diff --git a/lib/modules/manager/gradle/readme.md b/lib/modules/manager/gradle/readme.md index 5cd0635a8333e2..118a958d500727 100644 --- a/lib/modules/manager/gradle/readme.md +++ b/lib/modules/manager/gradle/readme.md @@ -11,7 +11,7 @@ As the output of these commands can be very large, any text other than errors (i ### Dependency verification -If Renovate finds a `gradle/verification-metadata.xml` file, it updates the content by using the `gradle --write-verification-metadata dependencies` command. +If Renovate finds a `gradle/verification-metadata.xml` file and either `true` or `true` (or both), it updates the content by using the `gradle --write-verification-metadata dependencies` command. Renovate will check the file for existing hash types (like `sha256`) and use them as ``. diff --git a/lib/modules/manager/gradle/types.ts b/lib/modules/manager/gradle/types.ts index 74dfd059c98235..0a6fbe93a1c006 100644 --- a/lib/modules/manager/gradle/types.ts +++ b/lib/modules/manager/gradle/types.ts @@ -18,6 +18,7 @@ export interface ParseGradleResult { deps: PackageDependency[]; urls: PackageRegistry[]; vars: PackageVariables; + javaLanguageVersion?: string; } export interface GradleCatalog { @@ -80,6 +81,7 @@ export interface Ctx { globalVars: PackageVariables; deps: PackageDependency[]; registryUrls: PackageRegistry[]; + javaLanguageVersion?: string; varTokens: lexer.Token[]; tmpKotlinImportStore: lexer.Token[][]; diff --git a/lib/modules/manager/helmv3/artifacts.spec.ts b/lib/modules/manager/helmv3/artifacts.spec.ts index ed8c25d3df6266..772288f524fcad 100644 --- a/lib/modules/manager/helmv3/artifacts.spec.ts +++ b/lib/modules/manager/helmv3/artifacts.spec.ts @@ -791,6 +791,9 @@ describe('modules/manager/helmv3/artifacts', () => { const ecr = ecrMock.call(0).thisValue as ECRClient; expect(await ecr.config.region()).toBe('us-east-1'); expect(await ecr.config.credentials()).toEqual({ + $source: { + CREDENTIALS_CODE: 'e', + }, accessKeyId: 'some-username', secretAccessKey: 'some-password', sessionToken: 'some-session-token', @@ -909,6 +912,9 @@ describe('modules/manager/helmv3/artifacts', () => { const ecr = ecrMock.call(0).thisValue as ECRClient; expect(await ecr.config.region()).toBe('us-east-1'); expect(await ecr.config.credentials()).toEqual({ + $source: { + CREDENTIALS_CODE: 'e', + }, accessKeyId: 'some-username', secretAccessKey: 'some-password', sessionToken: 'some-session-token', @@ -965,6 +971,9 @@ describe('modules/manager/helmv3/artifacts', () => { const ecr = ecrMock.call(0).thisValue as ECRClient; expect(await ecr.config.region()).toBe('us-east-1'); expect(await ecr.config.credentials()).toEqual({ + $source: { + CREDENTIALS_CODE: 'e', + }, accessKeyId: 'some-username', secretAccessKey: 'some-password', sessionToken: 'some-session-token', diff --git a/lib/modules/manager/nuget/package-tree.ts b/lib/modules/manager/nuget/package-tree.ts index 56b3f874ff6470..fd4595e31d453e 100644 --- a/lib/modules/manager/nuget/package-tree.ts +++ b/lib/modules/manager/nuget/package-tree.ts @@ -1,5 +1,5 @@ import is from '@sindresorhus/is'; -import { Graph } from 'graph-data-structure'; +import { Graph, hasCycle } from 'graph-data-structure'; import upath from 'upath'; import { logger } from '../../../logger'; import { minimatchFilter } from '../../../util/minimatch'; @@ -18,7 +18,7 @@ export async function getDependentPackageFiles( isCentralManagement = false, ): Promise { const packageFiles = await getAllPackageFiles(); - const graph: ReturnType = Graph(); + const graph = new Graph(); if (isCentralManagement) { graph.addNode(packageFileName); @@ -62,7 +62,7 @@ export async function getDependentPackageFiles( graph.addEdge(ref, f); } - if (graph.hasCycle()) { + if (hasCycle(graph)) { throw new Error('Circular reference detected in NuGet package files'); } } @@ -84,12 +84,12 @@ export async function getDependentPackageFiles( */ function recursivelyGetDependentPackageFiles( packageFileName: string, - graph: ReturnType, + graph: Graph, deps: Map, ): void { const dependents = graph.adjacent(packageFileName); - if (dependents.length === 0) { + if (!dependents || dependents.size === 0) { deps.set(packageFileName, true); return; } diff --git a/lib/modules/manager/pep621/processors/pdm.spec.ts b/lib/modules/manager/pep621/processors/pdm.spec.ts index 05ad3d73dbfaf9..7d7f23252ad9c9 100644 --- a/lib/modules/manager/pep621/processors/pdm.spec.ts +++ b/lib/modules/manager/pep621/processors/pdm.spec.ts @@ -4,6 +4,7 @@ import { fs, mockedFunction } from '../../../../../test/util'; import { GlobalConfig } from '../../../../config/global'; import type { RepoGlobalConfig } from '../../../../config/types'; import { logger } from '../../../../logger'; +import * as hostRules from '../../../../util/host-rules'; import { getPkgReleases as _getPkgReleases } from '../../../datasource'; import type { UpdateArtifactsConfig } from '../../types'; import { depTypes } from '../utils'; @@ -290,5 +291,64 @@ describe('modules/manager/pep621/processors/pdm', () => { }, ]); }); + + it('sets Git environment variables', async () => { + hostRules.add({ + matchHost: 'https://example.com', + username: 'user', + password: 'pass', + }); + const execSnapshots = mockExecAll(); + GlobalConfig.set(adminConfig); + fs.getSiblingFileName.mockReturnValueOnce('pdm.lock'); + fs.readLocalFile.mockResolvedValueOnce('test content'); + fs.readLocalFile.mockResolvedValueOnce('changed test content'); + // python + getPkgReleases.mockResolvedValueOnce({ + releases: [{ version: '3.11.1' }, { version: '3.11.2' }], + }); + // pdm + getPkgReleases.mockResolvedValueOnce({ + releases: [{ version: 'v2.6.1' }, { version: 'v2.5.0' }], + }); + + const result = await processor.updateArtifacts( + { + packageFileName: 'folder/pyproject.toml', + newPackageFileContent: '', + config: { + updateType: 'lockFileMaintenance', + }, + updatedDeps: [], + }, + {}, + ); + expect(result).toEqual([ + { + file: { + contents: 'changed test content', + path: 'pdm.lock', + type: 'addition', + }, + }, + ]); + expect(execSnapshots).toMatchObject([ + { + cmd: 'pdm update --no-sync --update-eager', + options: { + cwd: '/tmp/github/some/repo/folder', + env: { + GIT_CONFIG_COUNT: '3', + GIT_CONFIG_KEY_0: 'url.https://user:pass@example.com/.insteadOf', + GIT_CONFIG_KEY_1: 'url.https://user:pass@example.com/.insteadOf', + GIT_CONFIG_KEY_2: 'url.https://user:pass@example.com/.insteadOf', + GIT_CONFIG_VALUE_0: 'ssh://git@example.com/', + GIT_CONFIG_VALUE_1: 'git@example.com:', + GIT_CONFIG_VALUE_2: 'https://example.com/', + }, + }, + }, + ]); + }); }); }); diff --git a/lib/modules/manager/pep621/processors/pdm.ts b/lib/modules/manager/pep621/processors/pdm.ts index d991c78cc3a9c0..a78097e74deeb0 100644 --- a/lib/modules/manager/pep621/processors/pdm.ts +++ b/lib/modules/manager/pep621/processors/pdm.ts @@ -5,6 +5,7 @@ import { logger } from '../../../../logger'; import { exec } from '../../../../util/exec'; import type { ExecOptions, ToolConstraint } from '../../../../util/exec/types'; import { getSiblingFileName, readLocalFile } from '../../../../util/fs'; +import { getGitEnvironmentVariables } from '../../../../util/git/auth'; import { Result } from '../../../../util/result'; import { PypiDatasource } from '../../../datasource/pypi'; import type { @@ -116,8 +117,12 @@ export class PdmProcessor implements PyProjectProcessor { constraint: config.constraints?.pdm, }; + const extraEnv = { + ...getGitEnvironmentVariables(['pep621']), + }; const execOptions: ExecOptions = { cwdFile: packageFileName, + extraEnv, docker: {}, userConfiguredEnv: config.env, toolConstraints: [pythonConstraint, pdmConstraint], diff --git a/lib/modules/manager/pep621/processors/uv.spec.ts b/lib/modules/manager/pep621/processors/uv.spec.ts index e570a1178076cf..772a3050644d1d 100644 --- a/lib/modules/manager/pep621/processors/uv.spec.ts +++ b/lib/modules/manager/pep621/processors/uv.spec.ts @@ -1,6 +1,12 @@ +import { GoogleAuth as _googleAuth } from 'google-auth-library'; import { join } from 'upath'; import { mockExecAll } from '../../../../../test/exec-util'; -import { fs, hostRules, mockedFunction } from '../../../../../test/util'; +import { + fs, + hostRules, + mocked, + mockedFunction, +} from '../../../../../test/util'; import { GlobalConfig } from '../../../../config/global'; import type { RepoGlobalConfig } from '../../../../config/types'; import { getPkgReleases as _getPkgReleases } from '../../../datasource'; @@ -13,9 +19,11 @@ import type { UpdateArtifactsConfig } from '../../types'; import { depTypes } from '../utils'; import { UvProcessor } from './uv'; +jest.mock('google-auth-library'); jest.mock('../../../../util/fs'); jest.mock('../../../datasource'); +const googleAuth = mocked(_googleAuth); const getPkgReleases = mockedFunction(_getPkgReleases); const config: UpdateArtifactsConfig = {}; @@ -295,6 +303,11 @@ describe('modules/manager/pep621/processors/uv', () => { username: 'user', password: 'pass', }); + googleAuth.mockImplementationOnce( + jest.fn().mockImplementationOnce(() => ({ + getAccessToken: jest.fn().mockResolvedValue('some-token'), + })), + ); fs.getSiblingFileName.mockReturnValueOnce('uv.lock'); fs.readLocalFile.mockResolvedValueOnce('test content'); fs.readLocalFile.mockResolvedValueOnce('changed test content'); @@ -332,6 +345,82 @@ describe('modules/manager/pep621/processors/uv', () => { datasource: GithubTagsDatasource.id, registryUrls: ['https://github.com'], }, + { + packageName: 'dep5', + depType: depTypes.dependencies, + datasource: PypiDatasource.id, + registryUrls: [ + 'https://someregion-python.pkg.dev/some-project/some-repo/', + ], + }, + ]; + const result = await processor.updateArtifacts( + { + packageFileName: 'pyproject.toml', + newPackageFileContent: '', + config: {}, + updatedDeps, + }, + {}, + ); + expect(result).toEqual([ + { + file: { + contents: 'changed test content', + path: 'uv.lock', + type: 'addition', + }, + }, + ]); + expect(execSnapshots).toMatchObject([ + { + cmd: 'uv lock --upgrade-package dep1 --upgrade-package dep2 --upgrade-package dep3 --upgrade-package dep4 --upgrade-package dep5', + options: { + env: { + GIT_CONFIG_COUNT: '3', + GIT_CONFIG_KEY_0: 'url.https://user:pass@example.com/.insteadOf', + GIT_CONFIG_KEY_1: 'url.https://user:pass@example.com/.insteadOf', + GIT_CONFIG_KEY_2: 'url.https://user:pass@example.com/.insteadOf', + GIT_CONFIG_VALUE_0: 'ssh://git@example.com/', + GIT_CONFIG_VALUE_1: 'git@example.com:', + GIT_CONFIG_VALUE_2: 'https://example.com/', + UV_EXTRA_INDEX_URL: + 'https://foobar.com/ https://user:pass@example.com/ https://oauth2accesstoken:some-token@someregion-python.pkg.dev/some-project/some-repo/', + }, + }, + }, + ]); + }); + + it('continues if Google auth is not configured', async () => { + const execSnapshots = mockExecAll(); + GlobalConfig.set(adminConfig); + googleAuth.mockImplementation( + jest.fn().mockImplementation(() => ({ + getAccessToken: jest.fn().mockResolvedValue(undefined), + })), + ); + fs.getSiblingFileName.mockReturnValueOnce('uv.lock'); + fs.readLocalFile.mockResolvedValueOnce('test content'); + fs.readLocalFile.mockResolvedValueOnce('changed test content'); + // python + getPkgReleases.mockResolvedValueOnce({ + releases: [{ version: '3.11.1' }, { version: '3.11.2' }], + }); + // uv + getPkgReleases.mockResolvedValueOnce({ + releases: [{ version: '0.2.35' }, { version: '0.2.28' }], + }); + + const updatedDeps = [ + { + packageName: 'dep', + depType: depTypes.dependencies, + datasource: PypiDatasource.id, + registryUrls: [ + 'https://someregion-python.pkg.dev/some-project/some-repo/simple/', + ], + }, ]; const result = await processor.updateArtifacts( { @@ -353,11 +442,11 @@ describe('modules/manager/pep621/processors/uv', () => { ]); expect(execSnapshots).toMatchObject([ { - cmd: 'uv lock --upgrade-package dep1 --upgrade-package dep2 --upgrade-package dep3 --upgrade-package dep4', + cmd: 'uv lock --upgrade-package dep', options: { env: { UV_EXTRA_INDEX_URL: - 'https://foobar.com/ https://user:pass@example.com/', + 'https://someregion-python.pkg.dev/some-project/some-repo/simple/', }, }, }, diff --git a/lib/modules/manager/pep621/processors/uv.ts b/lib/modules/manager/pep621/processors/uv.ts index 4bc86b3fe8b38e..5de57d565e5c52 100644 --- a/lib/modules/manager/pep621/processors/uv.ts +++ b/lib/modules/manager/pep621/processors/uv.ts @@ -6,10 +6,12 @@ import type { HostRule } from '../../../../types'; import { exec } from '../../../../util/exec'; import type { ExecOptions, ToolConstraint } from '../../../../util/exec/types'; import { getSiblingFileName, readLocalFile } from '../../../../util/fs'; +import { getGitEnvironmentVariables } from '../../../../util/git/auth'; import { find } from '../../../../util/host-rules'; import { Result } from '../../../../util/result'; import { parseUrl } from '../../../../util/url'; import { PypiDatasource } from '../../../datasource/pypi'; +import { getGoogleAuthTokenRaw } from '../../../datasource/util'; import type { PackageDependency, UpdateArtifact, @@ -129,7 +131,8 @@ export class UvProcessor implements PyProjectProcessor { }; const extraEnv = { - ...getUvExtraIndexUrl(updateArtifact.updatedDeps), + ...getGitEnvironmentVariables(['pep621']), + ...(await getUvExtraIndexUrl(updateArtifact.updatedDeps)), }; const execOptions: ExecOptions = { cwdFile: packageFileName, @@ -214,7 +217,7 @@ function getMatchingHostRule(url: string | undefined): HostRule { return find({ hostType: PypiDatasource.id, url }); } -function getUvExtraIndexUrl(deps: Upgrade[]): NodeJS.ProcessEnv { +async function getUvExtraIndexUrl(deps: Upgrade[]): Promise { const pyPiRegistryUrls = deps .filter((dep) => dep.datasource === PypiDatasource.id) .map((dep) => dep.registryUrls) @@ -229,11 +232,21 @@ function getUvExtraIndexUrl(deps: Upgrade[]): NodeJS.ProcessEnv { } const rule = getMatchingHostRule(parsedUrl.toString()); - if (rule.username) { - parsedUrl.username = rule.username; - } - if (rule.password) { - parsedUrl.password = rule.password; + if (rule.username || rule.password) { + if (rule.username) { + parsedUrl.username = rule.username; + } + if (rule.password) { + parsedUrl.password = rule.password; + } + } else if (parsedUrl.hostname.endsWith('.pkg.dev')) { + const accessToken = await getGoogleAuthTokenRaw(); + if (accessToken) { + parsedUrl.username = 'oauth2accesstoken'; + parsedUrl.password = accessToken; + } else { + logger.once.debug({ registryUrl }, 'Could not get Google access token'); + } } extraIndexUrls.push(parsedUrl.toString()); diff --git a/lib/modules/manager/pep621/readme.md b/lib/modules/manager/pep621/readme.md index db3ac79b0c7268..0084470bf51d5f 100644 --- a/lib/modules/manager/pep621/readme.md +++ b/lib/modules/manager/pep621/readme.md @@ -16,3 +16,20 @@ Available `depType`s: - `tool.uv.dev-dependencies` - `tool.uv.sources` - `tool.hatch.envs.` + +### Private Modules Authentication + +Before running the `pdm` or `uv` commands to update the `pdm.lock` or `uv.lock` respectively, Renovate exports `git` [`insteadOf`](https://git-scm.com/docs/git-config#Documentation/git-config.txt-urlltbasegtinsteadOf) directives in environment variables. + +Renovate uses this logic before it updates any "artifacts": + +The token from the `hostRules` entry matching `hostType=github` and `matchHost=api.github.com` is added as the default authentication for `github.com`. +For those running against `github.com`, this token will be the default platform token. + +Next, all `hostRules` with both a token or username/password and `matchHost` will be fetched, except for any `github.com` one from above. + +Rules from this list are converted to environment variable directives if they match _any_ of these characteristics: + +- No `hostType` is defined, or +- `hostType` is `pep621`, or +- `hostType` is a platform (`github`, `gitlab`, `azure`, etc.) diff --git a/lib/modules/manager/pip-compile/utils.ts b/lib/modules/manager/pip-compile/utils.ts index 50fcdde6585feb..8ae1d5126903d4 100644 --- a/lib/modules/manager/pip-compile/utils.ts +++ b/lib/modules/manager/pip-compile/utils.ts @@ -1,4 +1,4 @@ -import { Graph } from 'graph-data-structure'; +import { Graph, topologicalSort } from 'graph-data-structure'; import upath from 'upath'; import { logger } from '../../../logger'; import type { PackageFile } from '../types'; @@ -9,11 +9,11 @@ export function sortPackageFiles( packageFiles: Map, ): PackageFile[] { const result: PackageFile[] = []; - const graph: ReturnType = Graph(); + const graph = new Graph(); depsBetweenFiles.forEach(({ sourceFile, outputFile }) => { graph.addEdge(sourceFile, outputFile); }); - const sorted = graph.topologicalSort(); + const sorted = topologicalSort(graph); for (const file of sorted) { if (packageFiles.has(file)) { const packageFile = packageFiles.get(file)!; diff --git a/lib/modules/manager/terraform/extractors/others/modules.spec.ts b/lib/modules/manager/terraform/extractors/others/modules.spec.ts index 845e7b7c46e008..7062f4d39eb494 100644 --- a/lib/modules/manager/terraform/extractors/others/modules.spec.ts +++ b/lib/modules/manager/terraform/extractors/others/modules.spec.ts @@ -4,6 +4,7 @@ import { bitbucketRefMatchRegex, gitTagsRefMatchRegex, githubRefMatchRegex, + hostnameMatchRegex, } from './modules'; describe('modules/manager/terraform/extractors/others/modules', () => { @@ -300,4 +301,22 @@ describe('modules/manager/terraform/extractors/others/modules', () => { }); }); }); + + describe('hostnameMatchRegex', () => { + it('should extact hostname from source url', () => { + const host1 = hostnameMatchRegex.exec( + 'git-lab.git-server.com/my/terraform/module', + )?.groups; + const host2 = hostnameMatchRegex.exec( + 'example.com/my/terraform/module', + )?.groups; + + expect(host1).toEqual({ + hostname: 'git-lab.git-server.com', + }); + expect(host2).toEqual({ + hostname: 'example.com', + }); + }); + }); }); diff --git a/lib/modules/manager/terraform/extractors/others/modules.ts b/lib/modules/manager/terraform/extractors/others/modules.ts index 5ba4f31c3ca122..21cbddca1f9dd3 100644 --- a/lib/modules/manager/terraform/extractors/others/modules.ts +++ b/lib/modules/manager/terraform/extractors/others/modules.ts @@ -21,7 +21,9 @@ export const gitTagsRefMatchRegex = regEx( export const azureDevOpsSshRefMatchRegex = regEx( /(?:git::)?(?git@ssh\.dev\.azure\.com:v3\/(?[^/]*)\/(?[^/]*)\/(?[^/]*))(?.*)?\?(depth=\d+&)?ref=(?.*?)(&depth=\d+)?$/, ); -const hostnameMatchRegex = regEx(/^(?([\w|\d]+\.)+[\w|\d]+)/); +export const hostnameMatchRegex = regEx( + /^(?[a-zA-Z\d]([a-zA-Z\d-]*\.)+[a-zA-Z\d]+)/, +); export class ModuleExtractor extends DependencyExtractor { getCheckList(): string[] { diff --git a/lib/modules/manager/terragrunt/modules.ts b/lib/modules/manager/terragrunt/modules.ts index 9d71e1e8aa6483..0079b18581303b 100644 --- a/lib/modules/manager/terragrunt/modules.ts +++ b/lib/modules/manager/terragrunt/modules.ts @@ -20,7 +20,9 @@ export const gitTagsRefMatchRegex = regEx( export const tfrVersionMatchRegex = regEx( /tfr:\/\/(?.*?)\/(?[^/]+?)\/(?[^/]+?)\/(?[^/?]+).*\?(?:ref|version)=(?.*?)$/, ); -const hostnameMatchRegex = regEx(/^(?([\w|\d]+\.)+[\w|\d]+)/); +const hostnameMatchRegex = regEx( + /^(?[a-zA-Z\d]([a-zA-Z\d-]*\.)+[a-zA-Z\d]+)/, +); export function extractTerragruntModule( startingLine: number, diff --git a/lib/modules/platform/gerrit/client.spec.ts b/lib/modules/platform/gerrit/client.spec.ts index 21c994e7d46ad4..2d5ff5cddbf9fe 100644 --- a/lib/modules/platform/gerrit/client.spec.ts +++ b/lib/modules/platform/gerrit/client.spec.ts @@ -208,39 +208,6 @@ describe('modules/platform/gerrit/client', () => { }); }); - describe('setCommitMessage()', () => { - it('setCommitMessage', async () => { - const change = partial({}); - httpMock - .scope(gerritEndpointUrl) - .put('/a/changes/123456/message', { message: 'new message' }) - .reply(200, gerritRestResponse(change), jsonResultHeader); - await expect(client.setCommitMessage(123456, 'new message')).toResolve(); - }); - }); - - describe('updateChangeSubject', () => { - it('updateChangeSubject - success', async () => { - const change = partial({}); - const newSubject = 'new subject'; - const previousSubject = 'some subject'; - const previousBody = `some body\n\nChange-Id: some-change-id\n`; - httpMock - .scope(gerritEndpointUrl) - .put('/a/changes/123456/message', { - message: `${newSubject}\n\n${previousBody}`, - }) - .reply(200, gerritRestResponse(change), jsonResultHeader); - await expect( - client.updateChangeSubject( - 123456, - `${previousSubject}\n\n${previousBody}`, - 'new subject', - ), - ).toResolve(); - }); - }); - describe('getMessages()', () => { it('no messages', async () => { httpMock diff --git a/lib/modules/platform/gerrit/client.ts b/lib/modules/platform/gerrit/client.ts index b4aeaa9748bd42..89b4ebf3e66e3c 100644 --- a/lib/modules/platform/gerrit/client.ts +++ b/lib/modules/platform/gerrit/client.ts @@ -98,25 +98,6 @@ class GerritClient { return change.body; } - async setCommitMessage(changeNumber: number, message: string): Promise { - await this.gerritHttp.putJson(`a/changes/${changeNumber}/message`, { - body: { message }, - }); - } - - async updateChangeSubject( - number: number, - currentMessage: string, - newSubject: string, - ): Promise { - // Replace first line of the commit message with the new subject - const newMessage = currentMessage.replace( - new RegExp(`^.*$`, 'm'), - newSubject, - ); - await this.setCommitMessage(number, newMessage); - } - async getMessages(changeNumber: number): Promise { const messages = await this.gerritHttp.getJson( `a/changes/${changeNumber}/messages`, diff --git a/lib/modules/platform/gerrit/index.spec.ts b/lib/modules/platform/gerrit/index.spec.ts index 025f1d1e2e3f7e..85e04bd02be48c 100644 --- a/lib/modules/platform/gerrit/index.spec.ts +++ b/lib/modules/platform/gerrit/index.spec.ts @@ -187,29 +187,6 @@ describe('modules/platform/gerrit/index', () => { gerrit.writeToConfig({ labels: {} }); }); - it('updatePr() - new prTitle => copy to commit msg', async () => { - const oldSubject = 'old title'; - const oldMessage = `${oldSubject}\n\nsome body\n\nChange-Id: ...`; - const change = partial({ - subject: oldSubject, - current_revision: 'some-revision', - revisions: { - 'some-revision': partial({ - commit: { - message: oldMessage, - }, - }), - }, - }); - clientMock.getChange.mockResolvedValueOnce(change); - await gerrit.updatePr({ number: 123456, prTitle: 'new title' }); - expect(clientMock.updateChangeSubject).toHaveBeenCalledWith( - 123456, - oldMessage, - 'new title', - ); - }); - it('updatePr() - auto approve enabled', async () => { const change = partial({ current_revision: 'some-revision', @@ -332,7 +309,7 @@ describe('modules/platform/gerrit/index', () => { ]); }); - it('createPr() - update body/title WITHOUT approve', async () => { + it('createPr() - update body WITHOUT approve', async () => { const pr = await gerrit.createPr({ sourceBranch: 'source', targetBranch: 'target', @@ -349,11 +326,6 @@ describe('modules/platform/gerrit/index', () => { TAG_PULL_REQUEST_BODY, ); expect(clientMock.approveChange).not.toHaveBeenCalled(); - expect(clientMock.updateChangeSubject).toHaveBeenCalledWith( - 123456, - message, - 'title', - ); }); it('createPr() - update body and approve', async () => { @@ -373,7 +345,6 @@ describe('modules/platform/gerrit/index', () => { TAG_PULL_REQUEST_BODY, ); expect(clientMock.approveChange).toHaveBeenCalledWith(123456); - expect(clientMock.setCommitMessage).not.toHaveBeenCalled(); }); }); diff --git a/lib/modules/platform/gerrit/index.ts b/lib/modules/platform/gerrit/index.ts index 20360a761d497d..d4f5b3c8123780 100644 --- a/lib/modules/platform/gerrit/index.ts +++ b/lib/modules/platform/gerrit/index.ts @@ -153,14 +153,6 @@ export async function getPr(number: number): Promise { export async function updatePr(prConfig: UpdatePrConfig): Promise { logger.debug(`updatePr(${prConfig.number}, ${prConfig.prTitle})`); - const change = await client.getChange(prConfig.number); - if (change.subject !== prConfig.prTitle) { - await client.updateChangeSubject( - prConfig.number, - change.revisions[change.current_revision].commit.message, - prConfig.prTitle, - ); - } if (prConfig.prBody) { await client.addMessageIfNotAlreadyExists( prConfig.number, @@ -198,14 +190,6 @@ export async function createPr(prConfig: CreatePRConfig): Promise { `the change should be created automatically from previous push to refs/for/${prConfig.sourceBranch}`, ); } - //Workaround for "Known Problems.1" - if (pr.subject !== prConfig.prTitle) { - await client.updateChangeSubject( - pr._number, - pr.revisions[pr.current_revision].commit.message, - prConfig.prTitle, - ); - } await client.addMessageIfNotAlreadyExists( pr._number, prConfig.prBody, diff --git a/lib/modules/platform/gerrit/readme.md b/lib/modules/platform/gerrit/readme.md index 7246f3f946dc78..cdf994cf29fd4a 100644 --- a/lib/modules/platform/gerrit/readme.md +++ b/lib/modules/platform/gerrit/readme.md @@ -61,15 +61,3 @@ For example, if you want to use the [Merge Confidence](../../../merge-confidence - Creating issues (not a Gerrit concept) - Dependency Dashboard (needs issues first) - -## Known problems - -### PR title is different from first commit message - -Sometimes the PR title passed to the Gerrit platform code is different from the first line of the commit message. -For example: - -- Commit-Message=`Update keycloak.version to v21` -- Pull-Request-Title=`Update keycloak.version to v21 (major)` - -In this case the Gerrit-Platform implementation tries to detect this and change the commit-message in a second patch-set. diff --git a/lib/modules/platform/gerrit/scm.spec.ts b/lib/modules/platform/gerrit/scm.spec.ts index 9be155245ad15e..f2041ef7f365c4 100644 --- a/lib/modules/platform/gerrit/scm.spec.ts +++ b/lib/modules/platform/gerrit/scm.spec.ts @@ -266,6 +266,7 @@ describe('modules/platform/gerrit/scm', () => { baseBranch: 'main', message: 'commit msg', files: [], + prTitle: 'pr title', }), ).resolves.toBeNull(); expect(clientMock.findChanges).toHaveBeenCalledWith( @@ -294,6 +295,7 @@ describe('modules/platform/gerrit/scm', () => { baseBranch: 'main', message: 'commit msg', files: [], + prTitle: 'pr title', }), ).toBe('commitSha'); expect(git.prepareCommit).toHaveBeenCalledWith({ @@ -301,11 +303,12 @@ describe('modules/platform/gerrit/scm', () => { branchName: 'renovate/dependency-1.x', files: [], message: [ - 'commit msg', + 'pr title', expect.stringMatching( /^Renovate-Branch: renovate\/dependency-1\.x\nChange-Id: I[a-z0-9]{40}$/, ), ], + prTitle: 'pr title', force: true, }); expect(git.pushCommit).toHaveBeenCalledWith({ @@ -338,6 +341,7 @@ describe('modules/platform/gerrit/scm', () => { baseBranch: 'main', message: ['commit msg'], files: [], + prTitle: 'pr title', }), ).toBeNull(); expect(git.prepareCommit).toHaveBeenCalledWith({ @@ -345,9 +349,10 @@ describe('modules/platform/gerrit/scm', () => { branchName: 'renovate/dependency-1.x', files: [], message: [ - 'commit msg', + 'pr title', 'Renovate-Branch: renovate/dependency-1.x\nChange-Id: ...', ], + prTitle: 'pr title', force: true, }); expect(git.fetchRevSpec).toHaveBeenCalledWith('refs/changes/1/2'); @@ -379,6 +384,7 @@ describe('modules/platform/gerrit/scm', () => { baseBranch: 'main', message: 'commit msg', files: [], + prTitle: 'pr title', }), ).toBe('commitSha'); expect(git.prepareCommit).toHaveBeenCalledWith({ @@ -386,9 +392,10 @@ describe('modules/platform/gerrit/scm', () => { branchName: 'renovate/dependency-1.x', files: [], message: [ - 'commit msg', + 'pr title', 'Renovate-Branch: renovate/dependency-1.x\nChange-Id: ...', ], + prTitle: 'pr title', force: true, }); expect(git.fetchRevSpec).toHaveBeenCalledWith('refs/changes/1/2'); diff --git a/lib/modules/platform/gerrit/scm.ts b/lib/modules/platform/gerrit/scm.ts index d8500e95205251..6289f1f1f24047 100644 --- a/lib/modules/platform/gerrit/scm.ts +++ b/lib/modules/platform/gerrit/scm.ts @@ -105,10 +105,18 @@ export class GerritScm extends DefaultGitScm { .then((res) => res.pop()); let hasChanges = true; - const origMsg = + const message = typeof commit.message === 'string' ? [commit.message] : commit.message; + + // In Gerrit, the change subject/title is the first line of the commit message + if (commit.prTitle) { + const firstMessageLines = message[0].split('\n'); + firstMessageLines[0] = commit.prTitle; + message[0] = firstMessageLines.join('\n'); + } + commit.message = [ - ...origMsg, + ...message, `Renovate-Branch: ${commit.branchName}\nChange-Id: ${existingChange?.change_id ?? generateChangeId()}`, ]; const commitResult = await git.prepareCommit({ ...commit, force: true }); diff --git a/lib/modules/platform/gitlab/__snapshots__/index.spec.ts.snap b/lib/modules/platform/gitlab/__snapshots__/index.spec.ts.snap index c2b91671c51220..b5e23476024b19 100644 --- a/lib/modules/platform/gitlab/__snapshots__/index.spec.ts.snap +++ b/lib/modules/platform/gitlab/__snapshots__/index.spec.ts.snap @@ -6,12 +6,7 @@ exports[`modules/platform/gitlab/index getBranchPr(branchName) should return the "hash": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", }, "hasAssignees": false, - "headPipelineSha": undefined, - "headPipelineStatus": undefined, - "labels": undefined, "number": 91, - "reviewers": undefined, - "sha": undefined, "sourceBranch": "some-branch", "state": "open", "targetBranch": "master", @@ -25,13 +20,8 @@ exports[`modules/platform/gitlab/index getBranchPr(branchName) should strip depr "hash": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", }, "hasAssignees": false, - "headPipelineSha": undefined, - "headPipelineStatus": undefined, "isDraft": true, - "labels": undefined, "number": 91, - "reviewers": undefined, - "sha": undefined, "sourceBranch": "some-branch", "state": "open", "targetBranch": "master", @@ -45,13 +35,8 @@ exports[`modules/platform/gitlab/index getBranchPr(branchName) should strip draf "hash": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", }, "hasAssignees": false, - "headPipelineSha": undefined, - "headPipelineStatus": undefined, "isDraft": true, - "labels": undefined, "number": 91, - "reviewers": undefined, - "sha": undefined, "sourceBranch": "some-branch", "state": "open", "targetBranch": "master", @@ -65,13 +50,8 @@ exports[`modules/platform/gitlab/index getPr(prNo) removes deprecated draft pref "hash": "23f41dbec0785a6c77457dd6ebf99ae5970c5fffc9f7a8ad7f66c1b8eeba5b90", }, "hasAssignees": false, - "headPipelineSha": undefined, - "headPipelineStatus": undefined, "isDraft": true, - "labels": undefined, "number": 12345, - "reviewers": undefined, - "sha": undefined, "sourceBranch": "some-branch", "state": "merged", "targetBranch": "master", @@ -85,13 +65,8 @@ exports[`modules/platform/gitlab/index getPr(prNo) removes draft prefix from ret "hash": "23f41dbec0785a6c77457dd6ebf99ae5970c5fffc9f7a8ad7f66c1b8eeba5b90", }, "hasAssignees": false, - "headPipelineSha": undefined, - "headPipelineStatus": undefined, "isDraft": true, - "labels": undefined, "number": 12345, - "reviewers": undefined, - "sha": undefined, "sourceBranch": "some-branch", "state": "merged", "targetBranch": "master", @@ -105,12 +80,7 @@ exports[`modules/platform/gitlab/index getPr(prNo) returns the PR 1`] = ` "hash": "23f41dbec0785a6c77457dd6ebf99ae5970c5fffc9f7a8ad7f66c1b8eeba5b90", }, "hasAssignees": false, - "headPipelineSha": undefined, - "headPipelineStatus": undefined, - "labels": undefined, "number": 12345, - "reviewers": undefined, - "sha": undefined, "sourceBranch": "some-branch", "state": "merged", "targetBranch": "master", @@ -124,12 +94,7 @@ exports[`modules/platform/gitlab/index getPr(prNo) returns the PR with nonexisti "hash": "23f41dbec0785a6c77457dd6ebf99ae5970c5fffc9f7a8ad7f66c1b8eeba5b90", }, "hasAssignees": true, - "headPipelineSha": undefined, - "headPipelineStatus": undefined, - "labels": undefined, "number": 12345, - "reviewers": undefined, - "sha": undefined, "sourceBranch": "some-branch", "state": "open", "targetBranch": "master", @@ -143,12 +108,7 @@ exports[`modules/platform/gitlab/index getPr(prNo) returns the mergeable PR 1`] "hash": "23f41dbec0785a6c77457dd6ebf99ae5970c5fffc9f7a8ad7f66c1b8eeba5b90", }, "hasAssignees": true, - "headPipelineSha": undefined, - "headPipelineStatus": undefined, - "labels": undefined, "number": 12345, - "reviewers": undefined, - "sha": undefined, "sourceBranch": "some-branch", "state": "open", "targetBranch": "master", diff --git a/lib/modules/platform/gitlab/index.spec.ts b/lib/modules/platform/gitlab/index.spec.ts index 515bfd65beb643..9c3aefc983fbca 100644 --- a/lib/modules/platform/gitlab/index.spec.ts +++ b/lib/modules/platform/gitlab/index.spec.ts @@ -3003,6 +3003,7 @@ describe('modules/platform/gitlab/index', () => { iid: 1, source_branch: 'branch-a', title: 'branch a pr', + description: 'a merge request', state: 'open', }, ]) @@ -3025,6 +3026,7 @@ describe('modules/platform/gitlab/index', () => { iid: 1, source_branch: 'branch-a', title: 'Draft: foo', + description: 'a merge request', state: 'open', }, ]) @@ -3047,6 +3049,7 @@ describe('modules/platform/gitlab/index', () => { iid: 1, source_branch: 'branch-a', title: 'WIP: foo', + description: 'a merge request', state: 'open', }, ]) @@ -3069,6 +3072,7 @@ describe('modules/platform/gitlab/index', () => { iid: 1, source_branch: 'branch-a', title: 'branch a pr', + description: 'a merge request', state: 'open', target_branch: 'branch-b', }, @@ -3098,6 +3102,7 @@ describe('modules/platform/gitlab/index', () => { iid: 1, source_branch: 'branch-a', title: 'branch a pr', + description: 'a merge request', state: 'open', }, ]) @@ -3129,6 +3134,7 @@ describe('modules/platform/gitlab/index', () => { iid: 1, source_branch: 'branch-a', title: 'branch a pr', + description: 'a merge request', state: 'open', }, ]) @@ -3156,6 +3162,7 @@ describe('modules/platform/gitlab/index', () => { iid: 1, source_branch: 'branch-a', title: 'branch a pr', + description: 'a merge request', state: 'open', }, ]) diff --git a/lib/modules/platform/gitlab/index.ts b/lib/modules/platform/gitlab/index.ts index bbb7b900b7042e..4d8551870d2781 100644 --- a/lib/modules/platform/gitlab/index.ts +++ b/lib/modules/platform/gitlab/index.ts @@ -72,6 +72,7 @@ import type { RepoResponse, } from './types'; import { prInfo } from './utils'; +import { DRAFT_PREFIX, DRAFT_PREFIX_DEPRECATED, prInfo } from './utils'; let config: { repository: string; @@ -93,9 +94,6 @@ const defaults = { export const id = 'gitlab'; -const DRAFT_PREFIX = 'Draft: '; -const DRAFT_PREFIX_DEPRECATED = 'WIP: '; - let draftPrefix = DRAFT_PREFIX; export async function initPlatform({ @@ -563,7 +561,7 @@ async function fetchPrList(): Promise { const res = await gitlabApi.getJson(urlString, { paginate: true, }); - return res.body.map((pr) => massagePr(prInfo(pr))); + return res.body.map((pr) => prInfo(pr)); } catch (err) /* istanbul ignore next */ { logger.debug({ err }, 'Error fetching PR list'); if (err.statusCode === 403) { @@ -786,8 +784,7 @@ export async function getPr(iid: number): Promise { const mr = await getMR(config.repository, iid); // Harmonize fields with GitHub - const pr: GitlabPr = prInfo(mr); - return massagePr(pr); + return prInfo(mr); } export async function updatePr({ @@ -932,18 +929,7 @@ export async function findPr({ return null; } - // return the latest merge request - const mr = mrList[0]; - - // only pass necessary info - const pr: GitlabPr = { - sourceBranch: mr.source_branch, - number: mr.iid, - state: 'open', - title: mr.title, - }; - - return massagePr(pr); + return prInfo(mrList[0]); } const prList = await getPrList(); diff --git a/lib/modules/platform/gitlab/utils.ts b/lib/modules/platform/gitlab/utils.ts index 494ad7565783cd..afba4ffd165d97 100644 --- a/lib/modules/platform/gitlab/utils.ts +++ b/lib/modules/platform/gitlab/utils.ts @@ -1,19 +1,41 @@ +import is from '@sindresorhus/is'; import { getPrBodyStruct } from '../pr-body'; import type { GitLabMergeRequest, GitlabPr } from './types'; +export const DRAFT_PREFIX = 'Draft: '; +export const DRAFT_PREFIX_DEPRECATED = 'WIP: '; + export function prInfo(mr: GitLabMergeRequest): GitlabPr { - return { + const pr: GitlabPr = { sourceBranch: mr.source_branch, - targetBranch: mr.target_branch, - number: mr.iid, - bodyStruct: getPrBodyStruct(mr.description), state: mr.state === 'opened' ? 'open' : mr.state, - headPipelineStatus: mr.head_pipeline?.status, - headPipelineSha: mr.head_pipeline?.sha, - hasAssignees: !!(mr.assignee?.id ?? mr.assignees?.[0]?.id), - reviewers: mr.reviewers?.map(({ username }) => username), + number: mr.iid, title: mr.title, - labels: mr.labels, - sha: mr.sha, + hasAssignees: !!(mr.assignee?.id ?? mr.assignees?.[0]?.id), + bodyStruct: getPrBodyStruct(mr.description), + + ...(mr.target_branch && { targetBranch: mr.target_branch }), + + ...(mr.head_pipeline?.status && { + headPipelineStatus: mr.head_pipeline?.status, + }), + ...(mr.head_pipeline?.sha && { headPipelineSha: mr.head_pipeline?.sha }), + + ...(is.nonEmptyArray(mr.reviewers) && { + reviewers: mr.reviewers?.map(({ username }) => username), + }), + + ...(mr.labels && { labels: mr.labels }), + ...(mr.sha && { sha: mr.sha }), }; + + if (pr.title.startsWith(DRAFT_PREFIX)) { + pr.title = pr.title.substring(DRAFT_PREFIX.length); + pr.isDraft = true; + } else if (pr.title.startsWith(DRAFT_PREFIX_DEPRECATED)) { + pr.title = pr.title.substring(DRAFT_PREFIX_DEPRECATED.length); + pr.isDraft = true; + } + + return pr; } diff --git a/lib/punycode.cjs b/lib/punycode.cjs new file mode 100644 index 00000000000000..40e97f8dcba0df --- /dev/null +++ b/lib/punycode.cjs @@ -0,0 +1,10 @@ +/** + * punycode workaround + * + * Load punycode.js module to cache and override node built-in. + * + * See + */ +// eslint-disable-next-line @typescript-eslint/no-require-imports +require('punycode/'); +require.cache.punycode = require.cache[require.resolve('punycode/')]; diff --git a/lib/renovate.ts b/lib/renovate.ts index 4a618b9a385f83..d60ae5b2d7dec1 100644 --- a/lib/renovate.ts +++ b/lib/renovate.ts @@ -1,6 +1,7 @@ #!/usr/bin/env node import 'source-map-support/register'; +import './punycode.cjs'; import { instrument, shutdown as telemetryShutdown } from './instrumentation'; // has to be imported before logger and other libraries which are instrumentalised import { logger } from './logger'; import { bootstrap } from './proxy'; diff --git a/lib/util/cache/repository/common.ts b/lib/util/cache/repository/common.ts index 2108a57e66a479..a7fad1e4e28411 100644 --- a/lib/util/cache/repository/common.ts +++ b/lib/util/cache/repository/common.ts @@ -1,6 +1,6 @@ -// Increment this whenever there could be incompatibilities between old and new cache structure import upath from 'upath'; +// Increment this whenever there could be incompatibilities between old and new cache structure export const CACHE_REVISION = 13; export function getLocalCacheFileName( diff --git a/lib/util/git/private-key.spec.ts b/lib/util/git/private-key.spec.ts index 1f365b0f5e544a..4b64a88a965de4 100644 --- a/lib/util/git/private-key.spec.ts +++ b/lib/util/git/private-key.spec.ts @@ -35,7 +35,7 @@ describe('util/git/private-key', () => { exec.exec.calledWith(any()).mockResolvedValue({ stdout: '', stderr: '' }); exec.exec .calledWith( - `gpg --import ${upath.join(os.tmpdir() + '/git-private-gpg.key')}`, + `gpg --batch --no-tty --import ${upath.join(os.tmpdir() + '/git-private-gpg.key')}`, ) .mockRejectedValueOnce({ stderr: `something wrong`, @@ -50,7 +50,7 @@ describe('util/git/private-key', () => { exec.exec.calledWith(any()).mockResolvedValue({ stdout: '', stderr: '' }); exec.exec .calledWith( - `gpg --import ${upath.join(os.tmpdir() + '/git-private-gpg.key')}`, + `gpg --batch --no-tty --import ${upath.join(os.tmpdir() + '/git-private-gpg.key')}`, ) .mockResolvedValueOnce({ stderr: `gpg: key ${publicKey}: secret key imported\nfoo\n`, diff --git a/lib/util/git/private-key.ts b/lib/util/git/private-key.ts index 2b8828e6064146..406366e1b53291 100644 --- a/lib/util/git/private-key.ts +++ b/lib/util/git/private-key.ts @@ -64,7 +64,10 @@ class GPGKey extends PrivateKey { protected async importKey(): Promise { const keyFileName = upath.join(os.tmpdir() + '/git-private-gpg.key'); await fs.outputFile(keyFileName, this.key); - const { stdout, stderr } = await exec(`gpg --import ${keyFileName}`); + const { stdout, stderr } = await exec( + // --batch --no-tty flags allow Renovate to skip warnings about unsupported algorithms in the key + `gpg --batch --no-tty --import ${keyFileName}`, + ); logger.debug({ stdout, stderr }, 'Private key import result'); await fs.remove(keyFileName); return `${stdout}${stderr}` diff --git a/lib/util/git/types.ts b/lib/util/git/types.ts index 2dd36b64085a12..63544838059dfb 100644 --- a/lib/util/git/types.ts +++ b/lib/util/git/types.ts @@ -83,6 +83,8 @@ export interface CommitFilesConfig { message: string | string[]; force?: boolean; platformCommit?: PlatformCommitOptions; + /** Only needed by Gerrit platform */ + prTitle?: string; } export interface PushFilesConfig { diff --git a/lib/workers/global/config/parse/file.ts b/lib/workers/global/config/parse/file.ts index bdc39481f16708..cf6ecf20c69898 100644 --- a/lib/workers/global/config/parse/file.ts +++ b/lib/workers/global/config/parse/file.ts @@ -70,6 +70,7 @@ export async function getConfig(env: NodeJS.ProcessEnv): Promise { logger.fatal(err.message); process.exit(1); } else if (env.RENOVATE_CONFIG_FILE) { + logger.debug({ err }, 'Parse error'); logger.fatal('Error parsing config file'); process.exit(1); } diff --git a/lib/workers/global/index.spec.ts b/lib/workers/global/index.spec.ts index dd9c31464eb07b..9348676f0d5322 100644 --- a/lib/workers/global/index.spec.ts +++ b/lib/workers/global/index.spec.ts @@ -43,6 +43,7 @@ const initPlatform = jest.spyOn(platform, 'initPlatform'); describe('workers/global/index', () => { beforeEach(() => { logger.getProblems.mockImplementation(() => []); + logger.logLevel.mockImplementation(() => 'info'); initPlatform.mockImplementation((input) => Promise.resolve(input)); delete process.env.AWS_SECRET_ACCESS_KEY; delete process.env.AWS_SESSION_TOKEN; diff --git a/lib/workers/global/index.ts b/lib/workers/global/index.ts index fd233ecb61a81f..0ef5d1c870d29f 100644 --- a/lib/workers/global/index.ts +++ b/lib/workers/global/index.ts @@ -17,7 +17,7 @@ import { CONFIG_PRESETS_INVALID } from '../../constants/error-messages'; import { pkg } from '../../expose.cjs'; import { instrument } from '../../instrumentation'; import { exportStats, finalizeReport } from '../../instrumentation/reporting'; -import { getProblems, logger, setMeta } from '../../logger'; +import { getProblems, logLevel, logger, setMeta } from '../../logger'; import { setGlobalLogLevelRemaps } from '../../logger/remap'; import * as hostRules from '../../util/host-rules'; import * as queue from '../../util/http/queue'; @@ -228,10 +228,9 @@ export async function start(): Promise { } } finally { await globalFinalize(config!); - const logLevel = process.env.LOG_LEVEL ?? 'info'; - if (logLevel === 'info') { + if (logLevel() === 'info') { logger.info( - `Renovate was run at log level "${logLevel}". Set LOG_LEVEL=debug in environment variables to see extended debug logs.`, + `Renovate was run at log level "${logLevel()}". Set LOG_LEVEL=debug in environment variables to see extended debug logs.`, ); } } diff --git a/lib/workers/repository/dependency-dashboard.ts b/lib/workers/repository/dependency-dashboard.ts index 02be583d683e74..ec4edc604a1c62 100644 --- a/lib/workers/repository/dependency-dashboard.ts +++ b/lib/workers/repository/dependency-dashboard.ts @@ -249,10 +249,7 @@ export async function ensureDependencyDashboard( // Check packageFiles for any deprecations let hasDeprecations = false; const deprecatedPackages: Record> = {}; - logger.debug( - { packageFiles }, - 'Checking packageFiles for deprecated packages', - ); + logger.debug('Checking packageFiles for deprecated packages'); if (is.nonEmptyObject(packageFiles)) { for (const [manager, fileNames] of Object.entries(packageFiles)) { for (const fileName of fileNames) { diff --git a/lib/workers/repository/process/index.ts b/lib/workers/repository/process/index.ts index 8fb4ef3b0ebb2c..f06b11e87cd42a 100644 --- a/lib/workers/repository/process/index.ts +++ b/lib/workers/repository/process/index.ts @@ -119,7 +119,7 @@ export async function extractDependencies( let res: ExtractResult = { branches: [], branchList: [], - packageFiles: null!, + packageFiles: {}, }; if (GlobalConfig.get('platform') !== 'local' && config.baseBranches?.length) { config.baseBranches = unfoldBaseBranches( @@ -146,7 +146,10 @@ export async function extractDependencies( const baseBranchRes = await lookup(baseBranchConfig, packageFiles); res.branches = res.branches.concat(baseBranchRes?.branches); res.branchList = res.branchList.concat(baseBranchRes?.branchList); - res.packageFiles = res.packageFiles || baseBranchRes?.packageFiles; // Use the first branch + if (!res.packageFiles || !Object.keys(res.packageFiles).length) { + // Use the first branch + res.packageFiles = baseBranchRes?.packageFiles; + } } } removeMeta(['baseBranch']); diff --git a/lib/workers/repository/update/branch/commit.ts b/lib/workers/repository/update/branch/commit.ts index aa6c46d9a7be1a..cadafc9ca0e75c 100644 --- a/lib/workers/repository/update/branch/commit.ts +++ b/lib/workers/repository/update/branch/commit.ts @@ -60,5 +60,7 @@ export function commitFilesToBranch( message: config.commitMessage!, force: !!config.forceCommit, platformCommit: config.platformCommit, + // Only needed by Gerrit platform + prTitle: config.prTitle, }); } diff --git a/lib/workers/repository/update/branch/index.ts b/lib/workers/repository/update/branch/index.ts index 4f35e4ad3667e9..e76b4c2dce533d 100644 --- a/lib/workers/repository/update/branch/index.ts +++ b/lib/workers/repository/update/branch/index.ts @@ -181,6 +181,9 @@ export async function processBranch( branchConfig.pendingChecks && !dependencyDashboardCheck ) { + logger.debug( + `Branch ${config.branchName} creation is disabled because internalChecksFilter was not met`, + ); return { branchExists: false, prNo: branchPr?.number, diff --git a/package.json b/package.json index ac9f31da164d22..847c6faeb5168a 100644 --- a/package.json +++ b/package.json @@ -140,33 +140,33 @@ }, "volta": { "node": "22.11.0", - "pnpm": "9.12.3" + "pnpm": "9.13.0" }, "dependencies": { - "@aws-sdk/client-codecommit": "3.658.1", - "@aws-sdk/client-ec2": "3.658.1", - "@aws-sdk/client-ecr": "3.658.1", - "@aws-sdk/client-rds": "3.658.1", - "@aws-sdk/client-s3": "3.658.1", - "@aws-sdk/credential-providers": "3.658.1", + "@aws-sdk/client-codecommit": "3.687.0", + "@aws-sdk/client-ec2": "3.687.0", + "@aws-sdk/client-ecr": "3.687.0", + "@aws-sdk/client-rds": "3.687.0", + "@aws-sdk/client-s3": "3.689.0", + "@aws-sdk/credential-providers": "3.687.0", "@breejs/later": "4.2.0", - "@cdktf/hcl2json": "0.20.9", + "@cdktf/hcl2json": "0.20.10", "@opentelemetry/api": "1.9.0", "@opentelemetry/context-async-hooks": "1.27.0", - "@opentelemetry/exporter-trace-otlp-http": "0.54.0", - "@opentelemetry/instrumentation": "0.54.0", + "@opentelemetry/exporter-trace-otlp-http": "0.54.2", + "@opentelemetry/instrumentation": "0.54.2", "@opentelemetry/instrumentation-bunyan": "0.42.0", - "@opentelemetry/instrumentation-http": "0.54.0", + "@opentelemetry/instrumentation-http": "0.54.2", "@opentelemetry/resources": "1.27.0", "@opentelemetry/sdk-trace-base": "1.27.0", "@opentelemetry/sdk-trace-node": "1.27.0", "@opentelemetry/semantic-conventions": "1.27.0", "@qnighy/marshal": "0.1.3", "@renovatebot/detect-tools": "1.1.0", - "@renovatebot/kbpgp": "3.0.1", + "@renovatebot/kbpgp": "4.0.1", "@renovatebot/osv-offline": "1.5.10", - "@renovatebot/pep440": "3.0.20", - "@renovatebot/ruby-semver": "3.0.23", + "@renovatebot/pep440": "4.0.1", + "@renovatebot/ruby-semver": "4.0.0", "@sindresorhus/is": "4.6.0", "@yarnpkg/core": "4.1.4", "@yarnpkg/parsers": "3.0.2", @@ -205,7 +205,7 @@ "good-enough-parser": "1.1.23", "google-auth-library": "9.14.2", "got": "11.8.6", - "graph-data-structure": "3.5.0", + "graph-data-structure": "4.2.0", "handlebars": "4.7.8", "ignore": "6.0.2", "ini": "5.0.0", @@ -231,6 +231,7 @@ "parse-link-header": "2.0.0", "prettier": "3.3.3", "protobufjs": "7.4.0", + "punycode": "2.3.1", "redis": "4.7.0", "remark": "13.0.0", "remark-github": "10.1.0", @@ -254,7 +255,7 @@ }, "optionalDependencies": { "better-sqlite3": "11.5.0", - "openpgp": "5.11.2", + "openpgp": "6.0.0", "re2": "1.21.4" }, "devDependencies": { @@ -265,10 +266,10 @@ "@jest/test-result": "29.7.0", "@jest/types": "29.6.3", "@ls-lint/ls-lint": "2.2.3", - "@openpgp/web-stream-tools": "0.0.14", + "@openpgp/web-stream-tools": "0.1.3", "@renovate/eslint-plugin": "file:tools/eslint", "@semantic-release/exec": "6.0.3", - "@swc/core": "1.7.42", + "@swc/core": "1.9.2", "@types/auth-header": "1.0.6", "@types/aws4": "1.11.6", "@types/better-sqlite3": "7.6.11", @@ -298,8 +299,9 @@ "@types/mdast": "3.0.15", "@types/moo": "0.5.9", "@types/ms": "0.7.34", - "@types/node": "20.17.5", + "@types/node": "20.17.6", "@types/parse-link-header": "2.0.3", + "@types/punycode": "2.1.4", "@types/semver": "7.5.8", "@types/semver-stable": "3.0.2", "@types/semver-utils": "1.1.3", @@ -333,9 +335,9 @@ "jest-mock": "29.7.0", "jest-mock-extended": "3.0.7", "jest-snapshot": "29.7.0", - "markdownlint-cli2": "0.14.0", + "markdownlint-cli2": "0.15.0", "memfs": "4.14.0", - "nock": "13.5.5", + "nock": "13.5.6", "npm-run-all2": "7.0.1", "nyc": "17.1.0", "pretty-format": "29.7.0", @@ -349,7 +351,7 @@ "typescript": "5.6.3", "unified": "9.2.2" }, - "packageManager": "pnpm@9.12.3", + "packageManager": "pnpm@9.13.0", "files": [ "dist", "renovate-schema.json" diff --git a/pdm.lock b/pdm.lock index 186c00a77d7935..02e7b9b91a0430 100644 --- a/pdm.lock +++ b/pdm.lock @@ -5,7 +5,7 @@ groups = ["default"] strategy = ["inherit_metadata"] lock_version = "4.5.0" -content_hash = "sha256:391bc32ccf53e8559416b6c2d714ac4bb1accbfaf4b34208b080b2f88ce55b1c" +content_hash = "sha256:00a372fd42992f149d800daa39c351bda8b556cf2c15e163178e5ff846023f06" [[metadata.targets]] requires_python = ">=3.11" @@ -303,7 +303,7 @@ files = [ [[package]] name = "mkdocs-material" -version = "9.5.44" +version = "9.5.45" requires_python = ">=3.8" summary = "Documentation that simply works" groups = ["default"] @@ -321,8 +321,8 @@ dependencies = [ "requests~=2.26", ] files = [ - {file = "mkdocs_material-9.5.44-py3-none-any.whl", hash = "sha256:47015f9c167d58a5ff5e682da37441fc4d66a1c79334bfc08d774763cacf69ca"}, - {file = "mkdocs_material-9.5.44.tar.gz", hash = "sha256:f3a6c968e524166b3f3ed1fb97d3ed3e0091183b0545cedf7156a2a6804c56c0"}, + {file = "mkdocs_material-9.5.45-py3-none-any.whl", hash = "sha256:a9be237cfd0be14be75f40f1726d83aa3a81ce44808dc3594d47a7a592f44547"}, + {file = "mkdocs_material-9.5.45.tar.gz", hash = "sha256:286489cf0beca4a129d91d59d6417419c63bceed1ce5cd0ec1fc7e1ebffb8189"}, ] [[package]] @@ -349,13 +349,13 @@ files = [ [[package]] name = "packaging" -version = "24.1" +version = "24.2" requires_python = ">=3.8" summary = "Core utilities for Python packages" groups = ["default"] files = [ - {file = "packaging-24.1-py3-none-any.whl", hash = "sha256:5b8f2217dbdbd2f7f384c41c628544e6d52f2d0f53c6d0c3ea61aa5d1d7ff124"}, - {file = "packaging-24.1.tar.gz", hash = "sha256:026ed72c8ed3fcce5bf8950572258698927fd1dbda10a5e981cdf0ac37f4f002"}, + {file = "packaging-24.2-py3-none-any.whl", hash = "sha256:09abb1bccd265c01f4a3aa3f7a7db064b36514d2cba19a2f694fe6150451a759"}, + {file = "packaging-24.2.tar.gz", hash = "sha256:c228a6dc5e932d346bc5739379109d49e8853dd8223571c7c5b55260edc0b97f"}, ] [[package]] @@ -483,57 +483,57 @@ files = [ [[package]] name = "regex" -version = "2024.9.11" +version = "2024.11.6" requires_python = ">=3.8" summary = "Alternative regular expression module, to replace re." groups = ["default"] files = [ - {file = "regex-2024.9.11-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:2cce2449e5927a0bf084d346da6cd5eb016b2beca10d0013ab50e3c226ffc0df"}, - {file = "regex-2024.9.11-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:3b37fa423beefa44919e009745ccbf353d8c981516e807995b2bd11c2c77d268"}, - {file = "regex-2024.9.11-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:64ce2799bd75039b480cc0360907c4fb2f50022f030bf9e7a8705b636e408fad"}, - {file = "regex-2024.9.11-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a4cc92bb6db56ab0c1cbd17294e14f5e9224f0cc6521167ef388332604e92679"}, - {file = "regex-2024.9.11-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d05ac6fa06959c4172eccd99a222e1fbf17b5670c4d596cb1e5cde99600674c4"}, - {file = "regex-2024.9.11-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:040562757795eeea356394a7fb13076ad4f99d3c62ab0f8bdfb21f99a1f85664"}, - {file = "regex-2024.9.11-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6113c008a7780792efc80f9dfe10ba0cd043cbf8dc9a76ef757850f51b4edc50"}, - {file = "regex-2024.9.11-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:8e5fb5f77c8745a60105403a774fe2c1759b71d3e7b4ca237a5e67ad066c7199"}, - {file = "regex-2024.9.11-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:54d9ff35d4515debf14bc27f1e3b38bfc453eff3220f5bce159642fa762fe5d4"}, - {file = "regex-2024.9.11-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:df5cbb1fbc74a8305b6065d4ade43b993be03dbe0f8b30032cced0d7740994bd"}, - {file = "regex-2024.9.11-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:7fb89ee5d106e4a7a51bce305ac4efb981536301895f7bdcf93ec92ae0d91c7f"}, - {file = "regex-2024.9.11-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:a738b937d512b30bf75995c0159c0ddf9eec0775c9d72ac0202076c72f24aa96"}, - {file = "regex-2024.9.11-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:e28f9faeb14b6f23ac55bfbbfd3643f5c7c18ede093977f1df249f73fd22c7b1"}, - {file = "regex-2024.9.11-cp311-cp311-win32.whl", hash = "sha256:18e707ce6c92d7282dfce370cd205098384b8ee21544e7cb29b8aab955b66fa9"}, - {file = "regex-2024.9.11-cp311-cp311-win_amd64.whl", hash = "sha256:313ea15e5ff2a8cbbad96ccef6be638393041b0a7863183c2d31e0c6116688cf"}, - {file = "regex-2024.9.11-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:b0d0a6c64fcc4ef9c69bd5b3b3626cc3776520a1637d8abaa62b9edc147a58f7"}, - {file = "regex-2024.9.11-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:49b0e06786ea663f933f3710a51e9385ce0cba0ea56b67107fd841a55d56a231"}, - {file = "regex-2024.9.11-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:5b513b6997a0b2f10e4fd3a1313568e373926e8c252bd76c960f96fd039cd28d"}, - {file = "regex-2024.9.11-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ee439691d8c23e76f9802c42a95cfeebf9d47cf4ffd06f18489122dbb0a7ad64"}, - {file = "regex-2024.9.11-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a8f877c89719d759e52783f7fe6e1c67121076b87b40542966c02de5503ace42"}, - {file = "regex-2024.9.11-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:23b30c62d0f16827f2ae9f2bb87619bc4fba2044911e2e6c2eb1af0161cdb766"}, - {file = "regex-2024.9.11-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:85ab7824093d8f10d44330fe1e6493f756f252d145323dd17ab6b48733ff6c0a"}, - {file = "regex-2024.9.11-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:8dee5b4810a89447151999428fe096977346cf2f29f4d5e29609d2e19e0199c9"}, - {file = "regex-2024.9.11-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:98eeee2f2e63edae2181c886d7911ce502e1292794f4c5ee71e60e23e8d26b5d"}, - {file = "regex-2024.9.11-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:57fdd2e0b2694ce6fc2e5ccf189789c3e2962916fb38779d3e3521ff8fe7a822"}, - {file = "regex-2024.9.11-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:d552c78411f60b1fdaafd117a1fca2f02e562e309223b9d44b7de8be451ec5e0"}, - {file = "regex-2024.9.11-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:a0b2b80321c2ed3fcf0385ec9e51a12253c50f146fddb2abbb10f033fe3d049a"}, - {file = "regex-2024.9.11-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:18406efb2f5a0e57e3a5881cd9354c1512d3bb4f5c45d96d110a66114d84d23a"}, - {file = "regex-2024.9.11-cp312-cp312-win32.whl", hash = "sha256:e464b467f1588e2c42d26814231edecbcfe77f5ac414d92cbf4e7b55b2c2a776"}, - {file = "regex-2024.9.11-cp312-cp312-win_amd64.whl", hash = "sha256:9e8719792ca63c6b8340380352c24dcb8cd7ec49dae36e963742a275dfae6009"}, - {file = "regex-2024.9.11-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:c157bb447303070f256e084668b702073db99bbb61d44f85d811025fcf38f784"}, - {file = "regex-2024.9.11-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:4db21ece84dfeefc5d8a3863f101995de646c6cb0536952c321a2650aa202c36"}, - {file = "regex-2024.9.11-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:220e92a30b426daf23bb67a7962900ed4613589bab80382be09b48896d211e92"}, - {file = "regex-2024.9.11-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:eb1ae19e64c14c7ec1995f40bd932448713d3c73509e82d8cd7744dc00e29e86"}, - {file = "regex-2024.9.11-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f47cd43a5bfa48f86925fe26fbdd0a488ff15b62468abb5d2a1e092a4fb10e85"}, - {file = "regex-2024.9.11-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:9d4a76b96f398697fe01117093613166e6aa8195d63f1b4ec3f21ab637632963"}, - {file = "regex-2024.9.11-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0ea51dcc0835eea2ea31d66456210a4e01a076d820e9039b04ae8d17ac11dee6"}, - {file = "regex-2024.9.11-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b7aaa315101c6567a9a45d2839322c51c8d6e81f67683d529512f5bcfb99c802"}, - {file = "regex-2024.9.11-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:c57d08ad67aba97af57a7263c2d9006d5c404d721c5f7542f077f109ec2a4a29"}, - {file = "regex-2024.9.11-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:f8404bf61298bb6f8224bb9176c1424548ee1181130818fcd2cbffddc768bed8"}, - {file = "regex-2024.9.11-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:dd4490a33eb909ef5078ab20f5f000087afa2a4daa27b4c072ccb3cb3050ad84"}, - {file = "regex-2024.9.11-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:eee9130eaad130649fd73e5cd92f60e55708952260ede70da64de420cdcad554"}, - {file = "regex-2024.9.11-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:6a2644a93da36c784e546de579ec1806bfd2763ef47babc1b03d765fe560c9f8"}, - {file = "regex-2024.9.11-cp313-cp313-win32.whl", hash = "sha256:e997fd30430c57138adc06bba4c7c2968fb13d101e57dd5bb9355bf8ce3fa7e8"}, - {file = "regex-2024.9.11-cp313-cp313-win_amd64.whl", hash = "sha256:042c55879cfeb21a8adacc84ea347721d3d83a159da6acdf1116859e2427c43f"}, - {file = "regex-2024.9.11.tar.gz", hash = "sha256:6c188c307e8433bcb63dc1915022deb553b4203a70722fc542c363bf120a01fd"}, + {file = "regex-2024.11.6-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:5478c6962ad548b54a591778e93cd7c456a7a29f8eca9c49e4f9a806dcc5d638"}, + {file = "regex-2024.11.6-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:2c89a8cc122b25ce6945f0423dc1352cb9593c68abd19223eebbd4e56612c5b7"}, + {file = "regex-2024.11.6-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:94d87b689cdd831934fa3ce16cc15cd65748e6d689f5d2b8f4f4df2065c9fa20"}, + {file = "regex-2024.11.6-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1062b39a0a2b75a9c694f7a08e7183a80c63c0d62b301418ffd9c35f55aaa114"}, + {file = "regex-2024.11.6-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:167ed4852351d8a750da48712c3930b031f6efdaa0f22fa1933716bfcd6bf4a3"}, + {file = "regex-2024.11.6-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2d548dafee61f06ebdb584080621f3e0c23fff312f0de1afc776e2a2ba99a74f"}, + {file = "regex-2024.11.6-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f2a19f302cd1ce5dd01a9099aaa19cae6173306d1302a43b627f62e21cf18ac0"}, + {file = "regex-2024.11.6-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:bec9931dfb61ddd8ef2ebc05646293812cb6b16b60cf7c9511a832b6f1854b55"}, + {file = "regex-2024.11.6-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:9714398225f299aa85267fd222f7142fcb5c769e73d7733344efc46f2ef5cf89"}, + {file = "regex-2024.11.6-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:202eb32e89f60fc147a41e55cb086db2a3f8cb82f9a9a88440dcfc5d37faae8d"}, + {file = "regex-2024.11.6-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:4181b814e56078e9b00427ca358ec44333765f5ca1b45597ec7446d3a1ef6e34"}, + {file = "regex-2024.11.6-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:068376da5a7e4da51968ce4c122a7cd31afaaec4fccc7856c92f63876e57b51d"}, + {file = "regex-2024.11.6-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:ac10f2c4184420d881a3475fb2c6f4d95d53a8d50209a2500723d831036f7c45"}, + {file = "regex-2024.11.6-cp311-cp311-win32.whl", hash = "sha256:c36f9b6f5f8649bb251a5f3f66564438977b7ef8386a52460ae77e6070d309d9"}, + {file = "regex-2024.11.6-cp311-cp311-win_amd64.whl", hash = "sha256:02e28184be537f0e75c1f9b2f8847dc51e08e6e171c6bde130b2687e0c33cf60"}, + {file = "regex-2024.11.6-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:52fb28f528778f184f870b7cf8f225f5eef0a8f6e3778529bdd40c7b3920796a"}, + {file = "regex-2024.11.6-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:fdd6028445d2460f33136c55eeb1f601ab06d74cb3347132e1c24250187500d9"}, + {file = "regex-2024.11.6-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:805e6b60c54bf766b251e94526ebad60b7de0c70f70a4e6210ee2891acb70bf2"}, + {file = "regex-2024.11.6-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b85c2530be953a890eaffde05485238f07029600e8f098cdf1848d414a8b45e4"}, + {file = "regex-2024.11.6-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:bb26437975da7dc36b7efad18aa9dd4ea569d2357ae6b783bf1118dabd9ea577"}, + {file = "regex-2024.11.6-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:abfa5080c374a76a251ba60683242bc17eeb2c9818d0d30117b4486be10c59d3"}, + {file = "regex-2024.11.6-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:70b7fa6606c2881c1db9479b0eaa11ed5dfa11c8d60a474ff0e095099f39d98e"}, + {file = "regex-2024.11.6-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:0c32f75920cf99fe6b6c539c399a4a128452eaf1af27f39bce8909c9a3fd8cbe"}, + {file = "regex-2024.11.6-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:982e6d21414e78e1f51cf595d7f321dcd14de1f2881c5dc6a6e23bbbbd68435e"}, + {file = "regex-2024.11.6-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:a7c2155f790e2fb448faed6dd241386719802296ec588a8b9051c1f5c481bc29"}, + {file = "regex-2024.11.6-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:149f5008d286636e48cd0b1dd65018548944e495b0265b45e1bffecce1ef7f39"}, + {file = "regex-2024.11.6-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:e5364a4502efca094731680e80009632ad6624084aff9a23ce8c8c6820de3e51"}, + {file = "regex-2024.11.6-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:0a86e7eeca091c09e021db8eb72d54751e527fa47b8d5787caf96d9831bd02ad"}, + {file = "regex-2024.11.6-cp312-cp312-win32.whl", hash = "sha256:32f9a4c643baad4efa81d549c2aadefaeba12249b2adc5af541759237eee1c54"}, + {file = "regex-2024.11.6-cp312-cp312-win_amd64.whl", hash = "sha256:a93c194e2df18f7d264092dc8539b8ffb86b45b899ab976aa15d48214138e81b"}, + {file = "regex-2024.11.6-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:a6ba92c0bcdf96cbf43a12c717eae4bc98325ca3730f6b130ffa2e3c3c723d84"}, + {file = "regex-2024.11.6-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:525eab0b789891ac3be914d36893bdf972d483fe66551f79d3e27146191a37d4"}, + {file = "regex-2024.11.6-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:086a27a0b4ca227941700e0b31425e7a28ef1ae8e5e05a33826e17e47fbfdba0"}, + {file = "regex-2024.11.6-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:bde01f35767c4a7899b7eb6e823b125a64de314a8ee9791367c9a34d56af18d0"}, + {file = "regex-2024.11.6-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b583904576650166b3d920d2bcce13971f6f9e9a396c673187f49811b2769dc7"}, + {file = "regex-2024.11.6-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:1c4de13f06a0d54fa0d5ab1b7138bfa0d883220965a29616e3ea61b35d5f5fc7"}, + {file = "regex-2024.11.6-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3cde6e9f2580eb1665965ce9bf17ff4952f34f5b126beb509fee8f4e994f143c"}, + {file = "regex-2024.11.6-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:0d7f453dca13f40a02b79636a339c5b62b670141e63efd511d3f8f73fba162b3"}, + {file = "regex-2024.11.6-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:59dfe1ed21aea057a65c6b586afd2a945de04fc7db3de0a6e3ed5397ad491b07"}, + {file = "regex-2024.11.6-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:b97c1e0bd37c5cd7902e65f410779d39eeda155800b65fc4d04cc432efa9bc6e"}, + {file = "regex-2024.11.6-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:f9d1e379028e0fc2ae3654bac3cbbef81bf3fd571272a42d56c24007979bafb6"}, + {file = "regex-2024.11.6-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:13291b39131e2d002a7940fb176e120bec5145f3aeb7621be6534e46251912c4"}, + {file = "regex-2024.11.6-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:4f51f88c126370dcec4908576c5a627220da6c09d0bff31cfa89f2523843316d"}, + {file = "regex-2024.11.6-cp313-cp313-win32.whl", hash = "sha256:63b13cfd72e9601125027202cad74995ab26921d8cd935c25f09c630436348ff"}, + {file = "regex-2024.11.6-cp313-cp313-win_amd64.whl", hash = "sha256:2b3361af3198667e99927da8b84c1b010752fa4b1115ee30beaa332cabc3ef1a"}, + {file = "regex-2024.11.6.tar.gz", hash = "sha256:7ab159b063c52a0333c884e4679f8d7a85112ee3078fe3d9004b2dd875585519"}, ] [[package]] diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 3de2a99eb34bc9..07ecec3b9fddd4 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -12,29 +12,29 @@ importers: .: dependencies: '@aws-sdk/client-codecommit': - specifier: 3.658.1 - version: 3.658.1 + specifier: 3.687.0 + version: 3.687.0 '@aws-sdk/client-ec2': - specifier: 3.658.1 - version: 3.658.1 + specifier: 3.687.0 + version: 3.687.0 '@aws-sdk/client-ecr': - specifier: 3.658.1 - version: 3.658.1 + specifier: 3.687.0 + version: 3.687.0 '@aws-sdk/client-rds': - specifier: 3.658.1 - version: 3.658.1 + specifier: 3.687.0 + version: 3.687.0 '@aws-sdk/client-s3': - specifier: 3.658.1 - version: 3.658.1 + specifier: 3.689.0 + version: 3.689.0 '@aws-sdk/credential-providers': - specifier: 3.658.1 - version: 3.658.1(@aws-sdk/client-sso-oidc@3.658.1(@aws-sdk/client-sts@3.658.1)) + specifier: 3.687.0 + version: 3.687.0(@aws-sdk/client-sso-oidc@3.687.0(@aws-sdk/client-sts@3.687.0)) '@breejs/later': specifier: 4.2.0 version: 4.2.0 '@cdktf/hcl2json': - specifier: 0.20.9 - version: 0.20.9 + specifier: 0.20.10 + version: 0.20.10 '@opentelemetry/api': specifier: 1.9.0 version: 1.9.0 @@ -42,17 +42,17 @@ importers: specifier: 1.27.0 version: 1.27.0(@opentelemetry/api@1.9.0) '@opentelemetry/exporter-trace-otlp-http': - specifier: 0.54.0 - version: 0.54.0(@opentelemetry/api@1.9.0) + specifier: 0.54.2 + version: 0.54.2(@opentelemetry/api@1.9.0) '@opentelemetry/instrumentation': - specifier: 0.54.0 - version: 0.54.0(@opentelemetry/api@1.9.0) + specifier: 0.54.2 + version: 0.54.2(@opentelemetry/api@1.9.0) '@opentelemetry/instrumentation-bunyan': specifier: 0.42.0 version: 0.42.0(@opentelemetry/api@1.9.0) '@opentelemetry/instrumentation-http': - specifier: 0.54.0 - version: 0.54.0(@opentelemetry/api@1.9.0) + specifier: 0.54.2 + version: 0.54.2(@opentelemetry/api@1.9.0) '@opentelemetry/resources': specifier: 1.27.0 version: 1.27.0(@opentelemetry/api@1.9.0) @@ -72,17 +72,17 @@ importers: specifier: 1.1.0 version: 1.1.0 '@renovatebot/kbpgp': - specifier: 3.0.1 - version: 3.0.1 + specifier: 4.0.1 + version: 4.0.1 '@renovatebot/osv-offline': specifier: 1.5.10 version: 1.5.10(encoding@0.1.13) '@renovatebot/pep440': - specifier: 3.0.20 - version: 3.0.20 + specifier: 4.0.1 + version: 4.0.1 '@renovatebot/ruby-semver': - specifier: 3.0.23 - version: 3.0.23 + specifier: 4.0.0 + version: 4.0.0 '@sindresorhus/is': specifier: 4.6.0 version: 4.6.0 @@ -198,8 +198,8 @@ importers: specifier: 11.8.6 version: 11.8.6 graph-data-structure: - specifier: 3.5.0 - version: 3.5.0 + specifier: 4.2.0 + version: 4.2.0 handlebars: specifier: 4.7.8 version: 4.7.8 @@ -275,6 +275,9 @@ importers: protobufjs: specifier: 7.4.0 version: 7.4.0 + punycode: + specifier: 2.3.1 + version: 2.3.1 redis: specifier: 4.7.0 version: 4.7.0 @@ -340,8 +343,8 @@ importers: specifier: 11.5.0 version: 11.5.0 openpgp: - specifier: 5.11.2 - version: 5.11.2 + specifier: 6.0.0 + version: 6.0.0 re2: specifier: 1.21.4 version: 1.21.4 @@ -368,8 +371,8 @@ importers: specifier: 2.2.3 version: 2.2.3 '@openpgp/web-stream-tools': - specifier: 0.0.14 - version: 0.0.14(typescript@5.6.3) + specifier: 0.1.3 + version: 0.1.3(typescript@5.6.3) '@renovate/eslint-plugin': specifier: file:tools/eslint version: '@renovatebot/eslint-plugin@file:tools/eslint' @@ -377,8 +380,8 @@ importers: specifier: 6.0.3 version: 6.0.3(semantic-release@24.2.0(typescript@5.6.3)) '@swc/core': - specifier: 1.7.42 - version: 1.7.42 + specifier: 1.9.2 + version: 1.9.2 '@types/auth-header': specifier: 1.0.6 version: 1.0.6 @@ -467,11 +470,14 @@ importers: specifier: 0.7.34 version: 0.7.34 '@types/node': - specifier: 20.17.5 - version: 20.17.5 + specifier: 20.17.6 + version: 20.17.6 '@types/parse-link-header': specifier: 2.0.3 version: 2.0.3 + '@types/punycode': + specifier: 2.1.4 + version: 2.1.4 '@types/semver': specifier: 7.5.8 version: 7.5.8 @@ -534,7 +540,7 @@ importers: version: 2.31.0(@typescript-eslint/parser@8.11.0(eslint@8.57.1)(typescript@5.6.3))(eslint-import-resolver-typescript@3.6.3)(eslint@8.57.1) eslint-plugin-jest: specifier: 28.8.3 - version: 28.8.3(@typescript-eslint/eslint-plugin@8.11.0(@typescript-eslint/parser@8.11.0(eslint@8.57.1)(typescript@5.6.3))(eslint@8.57.1)(typescript@5.6.3))(eslint@8.57.1)(jest@29.7.0(@types/node@20.17.5)(ts-node@10.9.2(@swc/core@1.7.42)(@types/node@20.17.5)(typescript@5.6.3)))(typescript@5.6.3) + version: 28.8.3(@typescript-eslint/eslint-plugin@8.11.0(@typescript-eslint/parser@8.11.0(eslint@8.57.1)(typescript@5.6.3))(eslint@8.57.1)(typescript@5.6.3))(eslint@8.57.1)(jest@29.7.0(@types/node@20.17.6)(ts-node@10.9.2(@swc/core@1.9.2)(@types/node@20.17.6)(typescript@5.6.3)))(typescript@5.6.3) eslint-plugin-jest-formatting: specifier: 3.1.0 version: 3.1.0(eslint@8.57.1) @@ -558,28 +564,28 @@ importers: version: 9.1.6 jest: specifier: 29.7.0 - version: 29.7.0(@types/node@20.17.5)(ts-node@10.9.2(@swc/core@1.7.42)(@types/node@20.17.5)(typescript@5.6.3)) + version: 29.7.0(@types/node@20.17.6)(ts-node@10.9.2(@swc/core@1.9.2)(@types/node@20.17.6)(typescript@5.6.3)) jest-extended: specifier: 4.0.2 - version: 4.0.2(jest@29.7.0(@types/node@20.17.5)(ts-node@10.9.2(@swc/core@1.7.42)(@types/node@20.17.5)(typescript@5.6.3))) + version: 4.0.2(jest@29.7.0(@types/node@20.17.6)(ts-node@10.9.2(@swc/core@1.9.2)(@types/node@20.17.6)(typescript@5.6.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@20.17.5)(ts-node@10.9.2(@swc/core@1.7.42)(@types/node@20.17.5)(typescript@5.6.3)))(typescript@5.6.3) + version: 3.0.7(jest@29.7.0(@types/node@20.17.6)(ts-node@10.9.2(@swc/core@1.9.2)(@types/node@20.17.6)(typescript@5.6.3)))(typescript@5.6.3) jest-snapshot: specifier: 29.7.0 version: 29.7.0 markdownlint-cli2: - specifier: 0.14.0 - version: 0.14.0 + specifier: 0.15.0 + version: 0.15.0 memfs: specifier: 4.14.0 version: 4.14.0 nock: - specifier: 13.5.5 - version: 13.5.5 + specifier: 13.5.6 + version: 13.5.6 npm-run-all2: specifier: 7.0.1 version: 7.0.1 @@ -603,10 +609,10 @@ importers: version: 3.0.3 ts-jest: specifier: 29.2.5 - version: 29.2.5(@babel/core@7.26.0)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.26.0))(jest@29.7.0(@types/node@20.17.5)(ts-node@10.9.2(@swc/core@1.7.42)(@types/node@20.17.5)(typescript@5.6.3)))(typescript@5.6.3) + version: 29.2.5(@babel/core@7.26.0)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.26.0))(jest@29.7.0(@types/node@20.17.6)(ts-node@10.9.2(@swc/core@1.9.2)(@types/node@20.17.6)(typescript@5.6.3)))(typescript@5.6.3) ts-node: specifier: 10.9.2 - version: 10.9.2(@swc/core@1.7.42)(@types/node@20.17.5)(typescript@5.6.3) + version: 10.9.2(@swc/core@1.9.2)(@types/node@20.17.6)(typescript@5.6.3) type-fest: specifier: 4.26.1 version: 4.26.1 @@ -649,175 +655,175 @@ packages: '@aws-crypto/util@5.2.0': resolution: {integrity: sha512-4RkU9EsI6ZpBve5fseQlGNUWKMa1RLPQ1dnjnQoe07ldfIzcsGb5hC5W0Dm7u423KWzawlrpbjXBrXCEv9zazQ==} - '@aws-sdk/client-codecommit@3.658.1': - resolution: {integrity: sha512-79Bq42BjDY2EWd4Lq6fjFCiEmUD0ib8z6evIJp04ULW4NDuaZP+T+BjXO8Rj2SrhSrtJHYHj2CW4nAHDo74Krg==} + '@aws-sdk/client-codecommit@3.687.0': + resolution: {integrity: sha512-w4pkP8Qofo39mxAiEojC1sWR4Dm2ALl9/bY6btl8MXYKsgfvLdT4CFKdQNX3acbVPb45+Umd+PkcA9P3t7wvOg==} engines: {node: '>=16.0.0'} - '@aws-sdk/client-cognito-identity@3.658.1': - resolution: {integrity: sha512-MCYLKmNy0FlNT9TvXfOxj0jh+ZQq+G9qEy/VZqu3JsQSgiFvFRdzgzcbQ9gQx7fZrDC/TPdABOTh483zI4cu9g==} + '@aws-sdk/client-cognito-identity@3.687.0': + resolution: {integrity: sha512-jcQTioloSed+Jc3snjrgpWejkOm8t3Zt+jWrApw3ejN8qBtpFCH43M7q/CSDVZ9RS1IjX+KRWoBFnrDOnbuw0Q==} engines: {node: '>=16.0.0'} - '@aws-sdk/client-ec2@3.658.1': - resolution: {integrity: sha512-J/TdGg7Z8pwIL826QKwaX/EgND5Tst5N5hKcjwnj0jGfsJOkRTMdZTwOgvShYWgs6BplFFZqkl3t2dKsNfsVcg==} + '@aws-sdk/client-ec2@3.687.0': + resolution: {integrity: sha512-cE9BsLzAprNWKMXDotgfhhCnnnflg724HZ23vapx9smUhB5SgCr6MaZeTAutPKUtraowzC/7Idb8nURb93urAQ==} engines: {node: '>=16.0.0'} - '@aws-sdk/client-ecr@3.658.1': - resolution: {integrity: sha512-tdkq5KCZZFGdgP9I8fPyRuNpHZ1CFXrFS9KeI4D+QWFTN179t3w7PonFc9JvOHNaEuMlIzwf9yzayRvVfqROBw==} + '@aws-sdk/client-ecr@3.687.0': + resolution: {integrity: sha512-F7dwRe1ciSe94n1X6TQu5h3tdYkeVRULLVo7Srm7VW72d1cSvPzIh2bKSLKwsOivOz8JtRKlH0ngkS/uHSHkAw==} engines: {node: '>=16.0.0'} - '@aws-sdk/client-rds@3.658.1': - resolution: {integrity: sha512-yfTcc4Q6kuf/eIwVaB8h3j2DZ+elfUIxkWnRCB2YsNzQlDZFrFlT1h89070MBpTrbDC90WT7AbOJ14Ga4YQXGw==} + '@aws-sdk/client-rds@3.687.0': + resolution: {integrity: sha512-5neJjCsyK2KJGsH54pHCdSWBYkB/G/ABT2fsHIrEm91JxJphCAHKliGpz1IKPcCLP72OuXNFwabPBbALnYcFbQ==} engines: {node: '>=16.0.0'} - '@aws-sdk/client-s3@3.658.1': - resolution: {integrity: sha512-rxYW7ONoh1y/SM292jt0TEH+LSiztoPCJxT3gst4S2o/85apFY3RxL8TrhOqzXoIeMu2LNzyN51Zygme6AbQAA==} + '@aws-sdk/client-s3@3.689.0': + resolution: {integrity: sha512-qYD1GJEPeLM6H3x8BuAAMXZltvVce5vGiwtZc9uMkBBo3HyFnmPitIPTPfaD1q8LOn/7KFdkY4MJ4e8D3YpV9g==} engines: {node: '>=16.0.0'} - '@aws-sdk/client-sso-oidc@3.658.1': - resolution: {integrity: sha512-RGcZAI3qEA05JszPKwa0cAyp8rnS1nUvs0Sqw4hqLNQ1kD7b7V6CPjRXe7EFQqCOMvM4kGqx0+cEEVTOmBsFLw==} + '@aws-sdk/client-sso-oidc@3.687.0': + resolution: {integrity: sha512-Rdd8kLeTeh+L5ZuG4WQnWgYgdv7NorytKdZsGjiag1D8Wv3PcJvPqqWdgnI0Og717BSXVoaTYaN34FyqFYSx6Q==} engines: {node: '>=16.0.0'} peerDependencies: - '@aws-sdk/client-sts': ^3.658.1 + '@aws-sdk/client-sts': ^3.687.0 - '@aws-sdk/client-sso@3.658.1': - resolution: {integrity: sha512-lOuaBtqPTYGn6xpXlQF4LsNDsQ8Ij2kOdnk+i69Kp6yS76TYvtUuukyLL5kx8zE1c8WbYtxj9y8VNw9/6uKl7Q==} + '@aws-sdk/client-sso@3.687.0': + resolution: {integrity: sha512-dfj0y9fQyX4kFill/ZG0BqBTLQILKlL7+O5M4F9xlsh2WNuV2St6WtcOg14Y1j5UODPJiJs//pO+mD1lihT5Kw==} engines: {node: '>=16.0.0'} - '@aws-sdk/client-sts@3.658.1': - resolution: {integrity: sha512-yw9hc5blTnbT1V6mR7Cx9HGc9KQpcLQ1QXj8rntiJi6tIYu3aFNVEyy81JHL7NsuBSeQulJTvHO3y6r3O0sfRg==} + '@aws-sdk/client-sts@3.687.0': + resolution: {integrity: sha512-SQjDH8O4XCTtouuCVYggB0cCCrIaTzUZIkgJUpOsIEJBLlTbNOb/BZqUShAQw2o9vxr2rCeOGjAQOYPysW/Pmg==} engines: {node: '>=16.0.0'} - '@aws-sdk/core@3.658.1': - resolution: {integrity: sha512-vJVMoMcSKXK2gBRSu9Ywwv6wQ7tXH8VL1fqB1uVxgCqBZ3IHfqNn4zvpMPWrwgO2/3wv7XFyikGQ5ypPTCw4jA==} + '@aws-sdk/core@3.686.0': + resolution: {integrity: sha512-Xt3DV4DnAT3v2WURwzTxWQK34Ew+iiLzoUoguvLaZrVMFOqMMrwVjP+sizqIaHp1j7rGmFcN5I8saXnsDLuQLA==} engines: {node: '>=16.0.0'} - '@aws-sdk/credential-provider-cognito-identity@3.658.1': - resolution: {integrity: sha512-JY4rZ4e2emL7PNHCU7F/BQV8PpQGEBZLkEoPD55RO4CitaIhlVZRpUCGLih+0Hw4MOnTUqJdfQBM+qZk6G+Now==} + '@aws-sdk/credential-provider-cognito-identity@3.687.0': + resolution: {integrity: sha512-hJq9ytoj2q/Jonc7mox/b0HT+j4NeMRuU184DkXRJbvIvwwB+oMt12221kThLezMhwIYfXEteZ7GEId7Hn8Y8g==} engines: {node: '>=16.0.0'} - '@aws-sdk/credential-provider-env@3.654.0': - resolution: {integrity: sha512-kogsx3Ql81JouHS7DkheCDU9MYAvK0AokxjcshDveGmf7BbgbWCA8Fnb9wjQyNDaOXNvkZu8Z8rgkX91z324/w==} + '@aws-sdk/credential-provider-env@3.686.0': + resolution: {integrity: sha512-osD7lPO8OREkgxPiTWmA1i6XEmOth1uW9HWWj/+A2YGCj1G/t2sHu931w4Qj9NWHYZtbTTXQYVRg+TErALV7nQ==} engines: {node: '>=16.0.0'} - '@aws-sdk/credential-provider-http@3.658.1': - resolution: {integrity: sha512-4ubkJjEVCZflxkZnV1JDQv8P2pburxk1LrEp55telfJRzXrnowzBKwuV2ED0QMNC448g2B3VCaffS+Ct7c4IWQ==} + '@aws-sdk/credential-provider-http@3.686.0': + resolution: {integrity: sha512-xyGAD/f3vR/wssUiZrNFWQWXZvI4zRm2wpHhoHA1cC2fbRMNFYtFn365yw6dU7l00ZLcdFB1H119AYIUZS7xbw==} engines: {node: '>=16.0.0'} - '@aws-sdk/credential-provider-ini@3.658.1': - resolution: {integrity: sha512-2uwOamQg5ppwfegwen1ddPu5HM3/IBSnaGlaKLFhltkdtZ0jiqTZWUtX2V+4Q+buLnT0hQvLS/frQ+7QUam+0Q==} + '@aws-sdk/credential-provider-ini@3.687.0': + resolution: {integrity: sha512-6d5ZJeZch+ZosJccksN0PuXv7OSnYEmanGCnbhUqmUSz9uaVX6knZZfHCZJRgNcfSqg9QC0zsFA/51W5HCUqSQ==} engines: {node: '>=16.0.0'} peerDependencies: - '@aws-sdk/client-sts': ^3.658.1 + '@aws-sdk/client-sts': ^3.687.0 - '@aws-sdk/credential-provider-node@3.658.1': - resolution: {integrity: sha512-XwxW6N+uPXPYAuyq+GfOEdfL/MZGAlCSfB5gEWtLBFmFbikhmEuqfWtI6CD60OwudCUOh6argd21BsJf8o1SJA==} + '@aws-sdk/credential-provider-node@3.687.0': + resolution: {integrity: sha512-Pqld8Nx11NYaBUrVk3bYiGGpLCxkz8iTONlpQWoVWFhSOzlO7zloNOaYbD2XgFjjqhjlKzE91drs/f41uGeCTA==} engines: {node: '>=16.0.0'} - '@aws-sdk/credential-provider-process@3.654.0': - resolution: {integrity: sha512-PmQoo8sZ9Q2Ow8OMzK++Z9lI7MsRUG7sNq3E72DVA215dhtTICTDQwGlXH2AAmIp7n+G9LLRds+4wo2ehG4mkg==} + '@aws-sdk/credential-provider-process@3.686.0': + resolution: {integrity: sha512-sXqaAgyzMOc+dm4CnzAR5Q6S9OWVHyZjLfW6IQkmGjqeQXmZl24c4E82+w64C+CTkJrFLzH1VNOYp1Hy5gE6Qw==} engines: {node: '>=16.0.0'} - '@aws-sdk/credential-provider-sso@3.658.1': - resolution: {integrity: sha512-YOagVEsZEk9DmgJEBg+4MBXrPcw/tYas0VQ5OVBqC5XHNbi2OBGJqgmjVPesuu393E7W0VQxtJFDS00O1ewQgA==} + '@aws-sdk/credential-provider-sso@3.687.0': + resolution: {integrity: sha512-N1YCoE7DovIRF2ReyRrA4PZzF0WNi4ObPwdQQkVxhvSm7PwjbWxrfq7rpYB+6YB1Uq3QPzgVwUFONE36rdpxUQ==} engines: {node: '>=16.0.0'} - '@aws-sdk/credential-provider-web-identity@3.654.0': - resolution: {integrity: sha512-6a2g9gMtZToqSu+CusjNK5zvbLJahQ9di7buO3iXgbizXpLXU1rnawCpWxwslMpT5fLgMSKDnKDrr6wdEk7jSw==} + '@aws-sdk/credential-provider-web-identity@3.686.0': + resolution: {integrity: sha512-40UqCpPxyHCXDP7CGd9JIOZDgDZf+u1OyLaGBpjQJlz1HYuEsIWnnbTe29Yg3Ah/Zc3g4NBWcUdlGVotlnpnDg==} engines: {node: '>=16.0.0'} peerDependencies: - '@aws-sdk/client-sts': ^3.654.0 + '@aws-sdk/client-sts': ^3.686.0 - '@aws-sdk/credential-providers@3.658.1': - resolution: {integrity: sha512-lfXA6kZS6GHyi/67EbfrKdLoqHR6j7G35eFwaqxyNkfMhNBpAF0eZK3SYiwnzdR9+Wb/enTFawYiFbG5R+dQzA==} + '@aws-sdk/credential-providers@3.687.0': + resolution: {integrity: sha512-3aKlmKaOplpanOycmoigbTrQsqtxpzhpfquCey51aHf9GYp2yYyYF1YOgkXpE3qm3w6eiEN1asjJ2gqoECUuPA==} engines: {node: '>=16.0.0'} - '@aws-sdk/middleware-bucket-endpoint@3.654.0': - resolution: {integrity: sha512-/lWkyeLESiK+rAB4+NCw1cVPle9RN7RW/v7B4b8ORiCn1FwZLUPmEiZSYzyh4in5oa3Mri+W/g+KafZDH6LCbA==} + '@aws-sdk/middleware-bucket-endpoint@3.686.0': + resolution: {integrity: sha512-6qCoWI73/HDzQE745MHQUYz46cAQxHCgy1You8MZQX9vHAQwqBnkcsb2hGp7S6fnQY5bNsiZkMWVQ/LVd2MNjg==} engines: {node: '>=16.0.0'} - '@aws-sdk/middleware-expect-continue@3.654.0': - resolution: {integrity: sha512-S7fSlo8vdjkQTy9DmdF54ZsPwc+aA4z5Y9JVqAlGL9QiZe/fPtRE3GZ8BBbMICjBfMEa12tWjzhDz9su2c6PIA==} + '@aws-sdk/middleware-expect-continue@3.686.0': + resolution: {integrity: sha512-5yYqIbyhLhH29vn4sHiTj7sU6GttvLMk3XwCmBXjo2k2j3zHqFUwh9RyFGF9VY6Z392Drf/E/cl+qOGypwULpg==} engines: {node: '>=16.0.0'} - '@aws-sdk/middleware-flexible-checksums@3.658.1': - resolution: {integrity: sha512-aBhnDIy8PwhgZRJh5U4l1JfLIPLkBeHBCTwn3XjdvhvisXNCfeINWKYuDDHamM+XKgBNUlLoTxpXI2AvLk5cGw==} + '@aws-sdk/middleware-flexible-checksums@3.689.0': + resolution: {integrity: sha512-6VxMOf3mgmAgg6SMagwKj5pAe+putcx2F2odOAWviLcobFpdM/xK9vNry7p6kY+RDNmSlBvcji9wnU59fjV74Q==} engines: {node: '>=16.0.0'} - '@aws-sdk/middleware-host-header@3.654.0': - resolution: {integrity: sha512-rxGgVHWKp8U2ubMv+t+vlIk7QYUaRCHaVpmUlJv0Wv6Q0KeO9a42T9FxHphjOTlCGQOLcjCreL9CF8Qhtb4mdQ==} + '@aws-sdk/middleware-host-header@3.686.0': + resolution: {integrity: sha512-+Yc6rO02z+yhFbHmRZGvEw1vmzf/ifS9a4aBjJGeVVU+ZxaUvnk+IUZWrj4YQopUQ+bSujmMUzJLXSkbDq7yuw==} engines: {node: '>=16.0.0'} - '@aws-sdk/middleware-location-constraint@3.654.0': - resolution: {integrity: sha512-Duvv5c4DEQ7P6c0YlcvEUW3xCJi6X2uktafNGjILhVDMQwShSF/aFqNv/ikWU/luQcmWHZ9DtDjTR9UKLh6eTA==} + '@aws-sdk/middleware-location-constraint@3.686.0': + resolution: {integrity: sha512-pCLeZzt5zUGY3NbW4J/5x3kaHyJEji4yqtoQcUlJmkoEInhSxJ0OE8sTxAfyL3nIOF4yr6L2xdaLCqYgQT8Aog==} engines: {node: '>=16.0.0'} - '@aws-sdk/middleware-logger@3.654.0': - resolution: {integrity: sha512-OQYb+nWlmASyXfRb989pwkJ9EVUMP1CrKn2eyTk3usl20JZmKo2Vjis6I0tLUkMSxMhnBJJlQKyWkRpD/u1FVg==} + '@aws-sdk/middleware-logger@3.686.0': + resolution: {integrity: sha512-cX43ODfA2+SPdX7VRxu6gXk4t4bdVJ9pkktbfnkE5t27OlwNfvSGGhnHrQL8xTOFeyQ+3T+oowf26gf1OI+vIg==} engines: {node: '>=16.0.0'} - '@aws-sdk/middleware-recursion-detection@3.654.0': - resolution: {integrity: sha512-gKSomgltKVmsT8sC6W7CrADZ4GHwX9epk3GcH6QhebVO3LA9LRbkL3TwOPUXakxxOLLUTYdOZLIOtFf7iH00lg==} + '@aws-sdk/middleware-recursion-detection@3.686.0': + resolution: {integrity: sha512-jF9hQ162xLgp9zZ/3w5RUNhmwVnXDBlABEUX8jCgzaFpaa742qR/KKtjjZQ6jMbQnP+8fOCSXFAVNMU+s6v81w==} engines: {node: '>=16.0.0'} - '@aws-sdk/middleware-sdk-ec2@3.658.1': - resolution: {integrity: sha512-CnkMajiLD8c+PyiqMjdRt3n87oZnd8jw+8mbtB0jX7Q9ED2z+oeG+RTZMXp2QEiZ0Q+7RyKjXf/PLRhARppFog==} + '@aws-sdk/middleware-sdk-ec2@3.686.0': + resolution: {integrity: sha512-R2URZuKKKnqG1gHP4ErzLtei4TbP2BspCiIn2NLaUmM1TJ25a8wi6ObHD6k7IOIHOm6Kir01YVWr4y6kklhEWA==} engines: {node: '>=16.0.0'} - '@aws-sdk/middleware-sdk-rds@3.658.1': - resolution: {integrity: sha512-+67kb5hTV1DZtNYFS76RUyB7OJKnhbWsPPFEF3TDXmFUFJd5zDxU8xgCQdqifEUJl6Go7zPTXI1V+Gj1Nt62vg==} + '@aws-sdk/middleware-sdk-rds@3.686.0': + resolution: {integrity: sha512-9F4IPV8i82MsmSYWpc5rWXmimwupow8BUD4Kpb3J2aQ63YLmMmdvJtf8KnohpNEsp+QkmkgWv7wvPsj70R/R6g==} engines: {node: '>=16.0.0'} - '@aws-sdk/middleware-sdk-s3@3.658.1': - resolution: {integrity: sha512-UdiwCY4Eg7e1ZbseKvBr83SARukcqS5R9R3bnx4sb3cEK0wFDXWrlhRMgK94jr8IJeskV1ySyxozdb1XOzOU3w==} + '@aws-sdk/middleware-sdk-s3@3.687.0': + resolution: {integrity: sha512-YGHYqiyRiNNucmvLrfx3QxIkjSDWR/+cc72bn0lPvqFUQBRHZgmYQLxVYrVZSmRzzkH2FQ1HsZcXhOafLbq4vQ==} engines: {node: '>=16.0.0'} - '@aws-sdk/middleware-ssec@3.654.0': - resolution: {integrity: sha512-k7hkQDJh4hcRJC7YojQ11kc37SY4foryen26Eafj5qYjeG2OGMW0oZTJDl1TVFJ7AcCjqIuMIo0Ho2US/2JspQ==} + '@aws-sdk/middleware-ssec@3.686.0': + resolution: {integrity: sha512-zJXml/CpVHFUdlGQqja87vNQ3rPB5SlDbfdwxlj1KBbjnRRwpBtxxmOlWRShg8lnVV6aIMGv95QmpIFy4ayqnQ==} engines: {node: '>=16.0.0'} - '@aws-sdk/middleware-user-agent@3.654.0': - resolution: {integrity: sha512-liCcqPAyRsr53cy2tYu4qeH4MMN0eh9g6k56XzI5xd4SghXH5YWh4qOYAlQ8T66ZV4nPMtD8GLtLXGzsH8moFg==} + '@aws-sdk/middleware-user-agent@3.687.0': + resolution: {integrity: sha512-nUgsKiEinyA50CaDXojAkOasAU3Apdg7Qox6IjNUC4ZjgOu7QWsCDB5N28AYMUt06cNYeYQdfMX1aEzG85a1Mg==} engines: {node: '>=16.0.0'} - '@aws-sdk/region-config-resolver@3.654.0': - resolution: {integrity: sha512-ydGOrXJxj3x0sJhsXyTmvJVLAE0xxuTWFJihTl67RtaO7VRNtd82I3P3bwoMMaDn5WpmV5mPo8fEUDRlBm3fPg==} + '@aws-sdk/region-config-resolver@3.686.0': + resolution: {integrity: sha512-6zXD3bSD8tcsMAVVwO1gO7rI1uy2fCD3czgawuPGPopeLiPpo6/3FoUWCQzk2nvEhj7p9Z4BbjwZGSlRkVrXTw==} engines: {node: '>=16.0.0'} - '@aws-sdk/signature-v4-multi-region@3.658.1': - resolution: {integrity: sha512-gad2cOtmwLuiR096PB1vJsv2+KYwI+eN5D+eLaRLCTD9MMGvVWB5xkIXXGmn99ks4gAgtSpzZp8RD6viBj0gIw==} + '@aws-sdk/signature-v4-multi-region@3.687.0': + resolution: {integrity: sha512-vdOQHCRHJPX9mT8BM6xOseazHD6NodvHl9cyF5UjNtLn+gERRJEItIA9hf0hlt62odGD8Fqp+rFRuqdmbNkcNw==} engines: {node: '>=16.0.0'} - '@aws-sdk/token-providers@3.654.0': - resolution: {integrity: sha512-D8GeJYmvbfWkQDtTB4owmIobSMexZel0fOoetwvgCQ/7L8VPph3Q2bn1TRRIXvH7wdt6DcDxA3tKMHPBkT3GlA==} + '@aws-sdk/token-providers@3.686.0': + resolution: {integrity: sha512-9oL4kTCSePFmyKPskibeiOXV6qavPZ63/kXM9Wh9V6dTSvBtLeNnMxqGvENGKJcTdIgtoqyqA6ET9u0PJ5IRIg==} engines: {node: '>=16.0.0'} peerDependencies: - '@aws-sdk/client-sso-oidc': ^3.654.0 + '@aws-sdk/client-sso-oidc': ^3.686.0 - '@aws-sdk/types@3.654.0': - resolution: {integrity: sha512-VWvbED3SV+10QJIcmU/PKjsKilsTV16d1I7/on4bvD/jo1qGeMXqLDBSen3ks/tuvXZF/mFc7ZW/W2DiLVtO7A==} + '@aws-sdk/types@3.686.0': + resolution: {integrity: sha512-xFnrb3wxOoJcW2Xrh63ZgFo5buIu9DF7bOHnwoUxHdNpUXicUh0AHw85TjXxyxIAd0d1psY/DU7QHoNI3OswgQ==} engines: {node: '>=16.0.0'} - '@aws-sdk/util-arn-parser@3.568.0': - resolution: {integrity: sha512-XUKJWWo+KOB7fbnPP0+g/o5Ulku/X53t7i/h+sPHr5xxYTJJ9CYnbToo95mzxe7xWvkLrsNtJ8L+MnNn9INs2w==} + '@aws-sdk/util-arn-parser@3.679.0': + resolution: {integrity: sha512-CwzEbU8R8rq9bqUFryO50RFBlkfufV9UfMArHPWlo+lmsC+NlSluHQALoj6Jkq3zf5ppn1CN0c1DDLrEqdQUXg==} engines: {node: '>=16.0.0'} - '@aws-sdk/util-endpoints@3.654.0': - resolution: {integrity: sha512-i902fcBknHs0Irgdpi62+QMvzxE+bczvILXigYrlHL4+PiEnlMVpni5L5W1qCkNZXf8AaMrSBuR1NZAGp6UOUw==} + '@aws-sdk/util-endpoints@3.686.0': + resolution: {integrity: sha512-7msZE2oYl+6QYeeRBjlDgxQUhq/XRky3cXE0FqLFs2muLS7XSuQEXkpOXB3R782ygAP6JX0kmBxPTLurRTikZg==} engines: {node: '>=16.0.0'} - '@aws-sdk/util-format-url@3.654.0': - resolution: {integrity: sha512-2yAlJ/l1uTJhS52iu4+/EvdIyQhDBL+nATY8rEjFI0H+BHGVrJIH2CL4DByhvi2yvYwsqQX0HYah6pF/yoXukA==} + '@aws-sdk/util-format-url@3.686.0': + resolution: {integrity: sha512-9doB6O4FAlnWZrvnFDUxTtSFtuL8kUqxlP00HTiDgL1uDJZ8e0S4gqjKR+9+N5goFtxGi7IJeNsDEz2H7imvgw==} engines: {node: '>=16.0.0'} - '@aws-sdk/util-locate-window@3.679.0': - resolution: {integrity: sha512-zKTd48/ZWrCplkXpYDABI74rQlbR0DNHs8nH95htfSLj9/mWRSwaGptoxwcihaq/77vi/fl2X3y0a1Bo8bt7RA==} + '@aws-sdk/util-locate-window@3.693.0': + resolution: {integrity: sha512-ttrag6haJLWABhLqtg1Uf+4LgHWIMOVSYL+VYZmAp2v4PUGOwWmWQH0Zk8RM7YuQcLfH/EoR72/Yxz6A4FKcuw==} engines: {node: '>=16.0.0'} - '@aws-sdk/util-user-agent-browser@3.654.0': - resolution: {integrity: sha512-ykYAJqvnxLt7wfrqya28wuH3/7NdrwzfiFd7NqEVQf7dXVxL5RPEpD7DxjcyQo3DsHvvdUvGZVaQhozycn1pzA==} + '@aws-sdk/util-user-agent-browser@3.686.0': + resolution: {integrity: sha512-YiQXeGYZegF1b7B2GOR61orhgv79qmI0z7+Agm3NXLO6hGfVV3kFUJbXnjtH1BgWo5hbZYW7HQ2omGb3dnb6Lg==} - '@aws-sdk/util-user-agent-node@3.654.0': - resolution: {integrity: sha512-a0ojjdBN6pqv6gB4H/QPPSfhs7mFtlVwnmKCM/QrTaFzN0U810PJ1BST3lBx5sa23I5jWHGaoFY+5q65C3clLQ==} + '@aws-sdk/util-user-agent-node@3.687.0': + resolution: {integrity: sha512-idkP6ojSTZ4ek1pJ8wIN7r9U3KR5dn0IkJn3KQBXQ58LWjkRqLtft2vxzdsktWwhPKjjmIKl1S0kbvqLawf8XQ==} engines: {node: '>=16.0.0'} peerDependencies: aws-crt: '>=1.0.0' @@ -825,8 +831,8 @@ packages: aws-crt: optional: true - '@aws-sdk/xml-builder@3.654.0': - resolution: {integrity: sha512-qA2diK3d/ztC8HUb7NwPKbJRV01NpzTzxFn+L5G3HzJBNeKbjLcprQ/9uG9gp2UEx2Go782FI1ddrMNa0qBICA==} + '@aws-sdk/xml-builder@3.686.0': + resolution: {integrity: sha512-k0z5b5dkYSuOHY0AOZ4iyjcGBeVL9lWsQNF4+c+1oK3OW4fRWl/bNa1soMRMpangsHPzgyn/QkzuDbl7qR4qrw==} engines: {node: '>=16.0.0'} '@babel/code-frame@7.26.2': @@ -998,8 +1004,8 @@ packages: resolution: {integrity: sha512-EVMD0SgJtOuFeg0lAVbCwa+qeTKILb87jqvLyUtQswGD9+ce2nB52Y5zbTF1Hc0MDFfbydcMcxb47jSdhikVHA==} engines: {node: '>= 10'} - '@cdktf/hcl2json@0.20.9': - resolution: {integrity: sha512-HlYqFsvEANyQJiQx8L2j05xot+bKa6T6PInc11dUCyQh8SbpVehdbGVN39TVnv1lIjdG7E2WNuxOf1L/Y3oF5w==} + '@cdktf/hcl2json@0.20.10': + resolution: {integrity: sha512-oh8g9727sSEnwRjIjPYnhTn4mvvxclRcovf5GIkFED+4HpiBLioVUUsX33rFk6wZZh175uJBOAvQ/qVG+Uaqyw==} '@colors/colors@1.5.0': resolution: {integrity: sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==} @@ -1306,16 +1312,17 @@ packages: '@one-ini/wasm@0.1.1': resolution: {integrity: sha512-XuySG1E38YScSJoMlqovLru4KTUNSjgVTIjyh7qMX6aNN5HY5Ct5LhRJdxO79JtTzKfzV/bnWpz+zquYrISsvw==} - '@openpgp/web-stream-tools@0.0.14': - resolution: {integrity: sha512-6btCNVf6YSsmlyIS7yw+IbzXeXCEcJxeSpxvSxkDuZj9B/ekt4fXkZj4oOaIxG4SKTftIK1svnlVroJ1cCMT4g==} + '@openpgp/web-stream-tools@0.1.3': + resolution: {integrity: sha512-mT/ds43cH6c+AO5RFpxs+LkACr7KjC3/dZWHrP6KPrWJu4uJ/XJ+p7telaoYiqUfdjiiIvdNSOfhezW9fkmboQ==} + engines: {node: '>= 18.0.0'} peerDependencies: typescript: '>=4.2' peerDependenciesMeta: typescript: optional: true - '@opentelemetry/api-logs@0.54.0': - resolution: {integrity: sha512-9HhEh5GqFrassUndqJsyW7a0PzfyWr2eV2xwzHLIS+wX3125+9HE9FMRAKmJRwxZhgZGwH3HNQQjoMGZqmOeVA==} + '@opentelemetry/api-logs@0.54.2': + resolution: {integrity: sha512-4MTVwwmLgUh5QrJnZpYo6YRO5IBLAggf2h8gWDblwRagDStY13aEvt7gGk3jewrMaPlHiF83fENhIx0HO97/cQ==} engines: {node: '>=14'} '@opentelemetry/api@1.9.0': @@ -1334,8 +1341,8 @@ packages: peerDependencies: '@opentelemetry/api': '>=1.0.0 <1.10.0' - '@opentelemetry/exporter-trace-otlp-http@0.54.0': - resolution: {integrity: sha512-00X6rtr6Ew59+MM9pPSH7Ww5ScpWKBLiBA49awbPqQuVL/Bp0qp7O1cTxKHgjWdNkhsELzJxAEYwuRnDGrMXyA==} + '@opentelemetry/exporter-trace-otlp-http@0.54.2': + resolution: {integrity: sha512-BgWKKyD/h2zpISdmYHN/sapwTjvt1P4p5yx4xeBV8XAEqh4OQUhOtSGFG80+nPQ1F8of3mKOT1DDoDbJp1u25w==} engines: {node: '>=14'} peerDependencies: '@opentelemetry/api': ^1.3.0 @@ -1346,26 +1353,26 @@ packages: peerDependencies: '@opentelemetry/api': ^1.3.0 - '@opentelemetry/instrumentation-http@0.54.0': - resolution: {integrity: sha512-ovl0UrL+vGpi0O7fdZ1mHRdiQkuv6NGMRBRKZZygVCUFNXdoqTpvJRRbTYih5U5FC+PHIFssEordmlblRCaGUg==} + '@opentelemetry/instrumentation-http@0.54.2': + resolution: {integrity: sha512-mABjJ34UcU32pg8g18L9xBh0U3JON/2F6/57BYYy8AZJp2a71lZjcKr0T00pICoic50TW5HvcTrmyfMil+AiXQ==} engines: {node: '>=14'} peerDependencies: '@opentelemetry/api': ^1.3.0 - '@opentelemetry/instrumentation@0.54.0': - resolution: {integrity: sha512-B0Ydo9g9ehgNHwtpc97XivEzjz0XBKR6iQ83NTENIxEEf5NHE0otZQuZLgDdey1XNk+bP1cfRpIkSFWM5YlSyg==} + '@opentelemetry/instrumentation@0.54.2': + resolution: {integrity: sha512-go6zpOVoZVztT9r1aPd79Fr3OWiD4N24bCPJsIKkBses8oyFo12F/Ew3UBTdIu6hsW4HC4MVEJygG6TEyJI/lg==} engines: {node: '>=14'} peerDependencies: '@opentelemetry/api': ^1.3.0 - '@opentelemetry/otlp-exporter-base@0.54.0': - resolution: {integrity: sha512-g+H7+QleVF/9lz4zhaR9Dt4VwApjqG5WWupy5CTMpWJfHB/nLxBbX73GBZDgdiNfh08nO3rNa6AS7fK8OhgF5g==} + '@opentelemetry/otlp-exporter-base@0.54.2': + resolution: {integrity: sha512-NrNyxu6R/bGAwanhz1HI0aJWKR6xUED4TjCH4iWMlAfyRukGbI9Kt/Akd2sYLwRKNhfS+sKetKGCUQPMDyYYMA==} engines: {node: '>=14'} peerDependencies: '@opentelemetry/api': ^1.3.0 - '@opentelemetry/otlp-transformer@0.54.0': - resolution: {integrity: sha512-jRexIASQQzdK4AjfNIBfn94itAq4Q8EXR9d3b/OVbhd3kKQKvMr7GkxYDjbeTbY7hHCOLcLfJ3dpYQYGOe8qOQ==} + '@opentelemetry/otlp-transformer@0.54.2': + resolution: {integrity: sha512-2tIjahJlMRRUz0A2SeE+qBkeBXBFkSjR0wqJ08kuOqaL8HNGan5iZf+A8cfrfmZzPUuMKCyY9I+okzFuFs6gKQ==} engines: {node: '>=14'} peerDependencies: '@opentelemetry/api': ^1.3.0 @@ -1388,8 +1395,8 @@ packages: peerDependencies: '@opentelemetry/api': '>=1.0.0 <1.10.0' - '@opentelemetry/sdk-logs@0.54.0': - resolution: {integrity: sha512-HeWvOPiWhEw6lWvg+lCIi1WhJnIPbI4/OFZgHq9tKfpwF3LX6/kk3+GR8sGUGAEZfbjPElkkngzvd2s03zbD7Q==} + '@opentelemetry/sdk-logs@0.54.2': + resolution: {integrity: sha512-yIbYqDLS/AtBbPjCjh6eSToGNRMqW2VR8RrKEy+G+J7dFG7pKoptTH5T+XlKPleP9NY8JZYIpgJBlI+Osi0rFw==} engines: {node: '>=14'} peerDependencies: '@opentelemetry/api': '>=1.4.0 <1.10.0' @@ -1532,9 +1539,9 @@ packages: '@renovatebot/eslint-plugin@file:tools/eslint': resolution: {directory: tools/eslint, type: directory} - '@renovatebot/kbpgp@3.0.1': - resolution: {integrity: sha512-n78K03XvVIVhE95Thlmq+AXl6j9gYKnsKtrVzU7vnmsKNQDSPn8zTRs1wXGjjdup9REPmqRNcITeq3NsG32QYQ==} - engines: {node: ^18.12.0 || >=20.9.0, pnpm: ^9.0.0} + '@renovatebot/kbpgp@4.0.1': + resolution: {integrity: sha512-Uj52QvCuIr9qwvbPR3fymQFMwn0MIKItZrEKywNoSF7K4UVfrtBW3DGVQ9KZ2D5tFR3LgrlPdhNSYEkEVAQ4OA==} + engines: {node: ^20.9.0 || ^22.11.0, pnpm: ^9.0.0} '@renovatebot/osv-offline-db@1.6.0': resolution: {integrity: sha512-cEOCTyd3+/7gPDmBn0pyJtF01+f9e/dJ1mOoML+v5AsP8GIPAzhtQUuIB5FiCxS4IsbP0qm34anYUZHGJldNJA==} @@ -1542,13 +1549,13 @@ packages: '@renovatebot/osv-offline@1.5.10': resolution: {integrity: sha512-3Nu7bGVQGm0rJwGoHxZjc80cERtK7r25aii8aBwK2+JLAacC7xLju2WzuELt1TWSx/yt+QjA4ouWSC5/JnlmHw==} - '@renovatebot/pep440@3.0.20': - resolution: {integrity: sha512-Jw8jzHh2r1LAPTrjQlIwh/+8J3N2MqXZgPuTt6HdNeJIBjJskV8bsEfGs9rBzXi/omeHob3BXnvlECu2rCCUYw==} - engines: {node: ^18.12.0 || >= 20.0.0, pnpm: ^8.6.11} + '@renovatebot/pep440@4.0.1': + resolution: {integrity: sha512-jKodfnFIIGjK9PcoB7+2JkDQ+prjv3LHFMUS21F3+IEaiGomrvpiH27+gjyQRRwtSkkRnrxkqjEPdkj2IxC2qA==} + engines: {node: ^20.9.0 || ^22.11.0, pnpm: ^9.0.0} - '@renovatebot/ruby-semver@3.0.23': - resolution: {integrity: sha512-YGvsvvyxOgv5Uq+sFEdD1yviyrPGs9hocjhIo7uWTj/EAIlbGyk5YA5JrHql3EkJf0tVsyfmEkM3kLK+45hmIw==} - engines: {node: ^18.12.0 || >= 20.0.0, pnpm: ^8.6.11} + '@renovatebot/ruby-semver@4.0.0': + resolution: {integrity: sha512-vuLfebLvwYWwQYJeZiHHs5NmydjO6cdhwS1dUHJbXMi0WD8kBa/+f7gz4WcuNJPRR+enLFQUHs89OCjfl6Os0g==} + engines: {node: ^20.9.0 || ^22.11.0, pnpm: ^9.0.0} '@rtsao/scc@1.1.0': resolution: {integrity: sha512-zt6OdqaDoOnJ1ZYsCYGt9YmWzDXl4vQdKTyJev62gFhRGKdx7mcT54V9KIjg+d2wi9EXsPvAPKe7i7WjfVWB8g==} @@ -1582,8 +1589,8 @@ packages: peerDependencies: semantic-release: '>=18.0.0' - '@semantic-release/github@11.0.0': - resolution: {integrity: sha512-Uon6G6gJD8U1JNvPm7X0j46yxNRJ8Ui6SgK4Zw5Ktu8RgjEft3BGn+l/RX1TTzhhO3/uUcKuqM+/9/ETFxWS/Q==} + '@semantic-release/github@11.0.1': + resolution: {integrity: sha512-Z9cr0LgU/zgucbT9cksH0/pX9zmVda9hkDPcgIE0uvjMQ8w/mElDivGjx1w1pEQ+MuQJ5CBq3VCF16S6G4VH3A==} engines: {node: '>=20.8.1'} peerDependencies: semantic-release: '>=24.1.0' @@ -1633,8 +1640,8 @@ packages: '@sinonjs/text-encoding@0.7.3': resolution: {integrity: sha512-DE427ROAphMQzU4ENbliGYrBSYPXF+TtLg9S8vzeA+OF4ZKzoDdzfL8sxuMUGS/lgRhM6j1URSk9ghf7Xo1tyA==} - '@smithy/abort-controller@3.1.6': - resolution: {integrity: sha512-0XuhuHQlEqbNQZp7QxxrFTdVWdwxch4vjxYgfInF91hZFkPxf9QDrdQka0KfxFMPqLNzSw0b95uGTrLliQUavQ==} + '@smithy/abort-controller@3.1.8': + resolution: {integrity: sha512-+3DOBcUn5/rVjlxGvUPKc416SExarAQ+Qe0bqk30YSUjbepwpS7QN0cyKUSifvLJhdMZ0WPzPP5ymut0oonrpQ==} engines: {node: '>=16.0.0'} '@smithy/chunked-blob-reader-native@3.0.1': @@ -1643,56 +1650,53 @@ packages: '@smithy/chunked-blob-reader@4.0.0': resolution: {integrity: sha512-jSqRnZvkT4egkq/7b6/QRCNXmmYVcHwnJldqJ3IhVpQE2atObVJ137xmGeuGFhjFUr8gCEVAOKwSY79OvpbDaQ==} - '@smithy/config-resolver@3.0.10': - resolution: {integrity: sha512-Uh0Sz9gdUuz538nvkPiyv1DZRX9+D15EKDtnQP5rYVAzM/dnYk3P8cg73jcxyOitPgT3mE3OVj7ky7sibzHWkw==} + '@smithy/config-resolver@3.0.12': + resolution: {integrity: sha512-YAJP9UJFZRZ8N+UruTeq78zkdjUHmzsY62J4qKWZ4SXB4QXJ/+680EfXXgkYA2xj77ooMqtUY9m406zGNqwivQ==} engines: {node: '>=16.0.0'} - '@smithy/core@2.5.1': - resolution: {integrity: sha512-DujtuDA7BGEKExJ05W5OdxCoyekcKT3Rhg1ZGeiUWaz2BJIWXjZmsG/DIP4W48GHno7AQwRsaCb8NcBgH3QZpg==} + '@smithy/core@2.5.3': + resolution: {integrity: sha512-96uW8maifUSmehaeW7uydWn7wBc98NEeNI3zN8vqakGpyCQgzyJaA64Z4FCOUmAdCJkhppd/7SZ798Fo4Xx37g==} engines: {node: '>=16.0.0'} - '@smithy/credential-provider-imds@3.2.5': - resolution: {integrity: sha512-4FTQGAsuwqTzVMmiRVTn0RR9GrbRfkP0wfu/tXWVHd2LgNpTY0uglQpIScXK4NaEyXbB3JmZt8gfVqO50lP8wg==} + '@smithy/credential-provider-imds@3.2.7': + resolution: {integrity: sha512-cEfbau+rrWF8ylkmmVAObOmjbTIzKyUC5TkBL58SbLywD0RCBC4JAUKbmtSm2w5KUJNRPGgpGFMvE2FKnuNlWQ==} engines: {node: '>=16.0.0'} - '@smithy/eventstream-codec@3.1.7': - resolution: {integrity: sha512-kVSXScIiRN7q+s1x7BrQtZ1Aa9hvvP9FeCqCdBxv37GimIHgBCOnZ5Ip80HLt0DhnAKpiobFdGqTFgbaJNrazA==} + '@smithy/eventstream-codec@3.1.9': + resolution: {integrity: sha512-F574nX0hhlNOjBnP+noLtsPFqXnWh2L0+nZKCwcu7P7J8k+k+rdIDs+RMnrMwrzhUE4mwMgyN0cYnEn0G8yrnQ==} - '@smithy/eventstream-serde-browser@3.0.11': - resolution: {integrity: sha512-Pd1Wnq3CQ/v2SxRifDUihvpXzirJYbbtXfEnnLV/z0OGCTx/btVX74P86IgrZkjOydOASBGXdPpupYQI+iO/6A==} + '@smithy/eventstream-serde-browser@3.0.13': + resolution: {integrity: sha512-Nee9m+97o9Qj6/XeLz2g2vANS2SZgAxV4rDBMKGHvFJHU/xz88x2RwCkwsvEwYjSX4BV1NG1JXmxEaDUzZTAtw==} engines: {node: '>=16.0.0'} - '@smithy/eventstream-serde-config-resolver@3.0.8': - resolution: {integrity: sha512-zkFIG2i1BLbfoGQnf1qEeMqX0h5qAznzaZmMVNnvPZz9J5AWBPkOMckZWPedGUPcVITacwIdQXoPcdIQq5FRcg==} + '@smithy/eventstream-serde-config-resolver@3.0.10': + resolution: {integrity: sha512-K1M0x7P7qbBUKB0UWIL5KOcyi6zqV5mPJoL0/o01HPJr0CSq3A9FYuJC6e11EX6hR8QTIR++DBiGrYveOu6trw==} engines: {node: '>=16.0.0'} - '@smithy/eventstream-serde-node@3.0.10': - resolution: {integrity: sha512-hjpU1tIsJ9qpcoZq9zGHBJPBOeBGYt+n8vfhDwnITPhEre6APrvqq/y3XMDEGUT2cWQ4ramNqBPRbx3qn55rhw==} + '@smithy/eventstream-serde-node@3.0.12': + resolution: {integrity: sha512-kiZymxXvZ4tnuYsPSMUHe+MMfc4FTeFWJIc0Q5wygJoUQM4rVHNghvd48y7ppuulNMbuYt95ah71pYc2+o4JOA==} engines: {node: '>=16.0.0'} - '@smithy/eventstream-serde-universal@3.0.10': - resolution: {integrity: sha512-ewG1GHbbqsFZ4asaq40KmxCmXO+AFSM1b+DcO2C03dyJj/ZH71CiTg853FSE/3SHK9q3jiYQIFjlGSwfxQ9kww==} + '@smithy/eventstream-serde-universal@3.0.12': + resolution: {integrity: sha512-1i8ifhLJrOZ+pEifTlF0EfZzMLUGQggYQ6WmZ4d5g77zEKf7oZ0kvh1yKWHPjofvOwqrkwRDVuxuYC8wVd662A==} engines: {node: '>=16.0.0'} - '@smithy/fetch-http-handler@3.2.9': - resolution: {integrity: sha512-hYNVQOqhFQ6vOpenifFME546f0GfJn2OiQ3M0FDmuUu8V/Uiwy2wej7ZXxFBNqdx0R5DZAqWM1l6VRhGz8oE6A==} - - '@smithy/fetch-http-handler@4.0.0': - resolution: {integrity: sha512-MLb1f5tbBO2X6K4lMEKJvxeLooyg7guq48C2zKr4qM7F2Gpkz4dc+hdSgu77pCJ76jVqFBjZczHYAs6dp15N+g==} + '@smithy/fetch-http-handler@4.1.1': + resolution: {integrity: sha512-bH7QW0+JdX0bPBadXt8GwMof/jz0H28I84hU1Uet9ISpzUqXqRQ3fEZJ+ANPOhzSEczYvANNl3uDQDYArSFDtA==} - '@smithy/hash-blob-browser@3.1.7': - resolution: {integrity: sha512-4yNlxVNJifPM5ThaA5HKnHkn7JhctFUHvcaz6YXxHlYOSIrzI6VKQPTN8Gs1iN5nqq9iFcwIR9THqchUCouIfg==} + '@smithy/hash-blob-browser@3.1.9': + resolution: {integrity: sha512-wOu78omaUuW5DE+PVWXiRKWRZLecARyP3xcq5SmkXUw9+utgN8HnSnBfrjL2B/4ZxgqPjaAJQkC/+JHf1ITVaQ==} - '@smithy/hash-node@3.0.8': - resolution: {integrity: sha512-tlNQYbfpWXHimHqrvgo14DrMAgUBua/cNoz9fMYcDmYej7MAmUcjav/QKQbFc3NrcPxeJ7QClER4tWZmfwoPng==} + '@smithy/hash-node@3.0.10': + resolution: {integrity: sha512-3zWGWCHI+FlJ5WJwx73Mw2llYR8aflVyZN5JhoqLxbdPZi6UyKSdCeXAWJw9ja22m6S6Tzz1KZ+kAaSwvydi0g==} engines: {node: '>=16.0.0'} - '@smithy/hash-stream-node@3.1.7': - resolution: {integrity: sha512-xMAsvJ3hLG63lsBVi1Hl6BBSfhd8/Qnp8fC06kjOpJvyyCEXdwHITa5Kvdsk6gaAXLhbZMhQMIGvgUbfnJDP6Q==} + '@smithy/hash-stream-node@3.1.9': + resolution: {integrity: sha512-3XfHBjSP3oDWxLmlxnt+F+FqXpL3WlXs+XXaB6bV9Wo8BBu87fK1dSEsyH7Z4ZHRmwZ4g9lFMdf08m9hoX1iRA==} engines: {node: '>=16.0.0'} - '@smithy/invalid-dependency@3.0.8': - resolution: {integrity: sha512-7Qynk6NWtTQhnGTTZwks++nJhQ1O54Mzi7fz4PqZOiYXb4Z1Flpb2yRvdALoggTS8xjtohWUM+RygOtB30YL3Q==} + '@smithy/invalid-dependency@3.0.10': + resolution: {integrity: sha512-Lp2L65vFi+cj0vFMu2obpPW69DU+6O5g3086lmI4XcnRCG8PxvpWC7XyaVwJCxsZFzueHjXnrOH/E0pl0zikfA==} '@smithy/is-array-buffer@2.2.0': resolution: {integrity: sha512-GGP3O9QFD24uGeAXYUjwSTXARoqpZykHadOmA8G5vfJPK0/DC67qa//0qvqrJzL1xc8WQWX7/yc7fwudjPHPhA==} @@ -1702,75 +1706,75 @@ packages: resolution: {integrity: sha512-+Fsu6Q6C4RSJiy81Y8eApjEB5gVtM+oFKTffg+jSuwtvomJJrhUJBu2zS8wjXSgH/g1MKEWrzyChTBe6clb5FQ==} engines: {node: '>=16.0.0'} - '@smithy/md5-js@3.0.8': - resolution: {integrity: sha512-LwApfTK0OJ/tCyNUXqnWCKoE2b4rDSr4BJlDAVCkiWYeHESr+y+d5zlAanuLW6fnitVJRD/7d9/kN/ZM9Su4mA==} + '@smithy/md5-js@3.0.10': + resolution: {integrity: sha512-m3bv6dApflt3fS2Y1PyWPUtRP7iuBlvikEOGwu0HsCZ0vE7zcIX+dBoh3e+31/rddagw8nj92j0kJg2TfV+SJA==} - '@smithy/middleware-content-length@3.0.10': - resolution: {integrity: sha512-T4dIdCs1d/+/qMpwhJ1DzOhxCZjZHbHazEPJWdB4GDi2HjIZllVzeBEcdJUN0fomV8DURsgOyrbEUzg3vzTaOg==} + '@smithy/middleware-content-length@3.0.12': + resolution: {integrity: sha512-1mDEXqzM20yywaMDuf5o9ue8OkJ373lSPbaSjyEvkWdqELhFMyNNgKGWL/rCSf4KME8B+HlHKuR8u9kRj8HzEQ==} engines: {node: '>=16.0.0'} - '@smithy/middleware-endpoint@3.2.1': - resolution: {integrity: sha512-wWO3xYmFm6WRW8VsEJ5oU6h7aosFXfszlz3Dj176pTij6o21oZnzkCLzShfmRaaCHDkBXWBdO0c4sQAvLFP6zA==} + '@smithy/middleware-endpoint@3.2.3': + resolution: {integrity: sha512-Hdl9296i/EMptaX7agrSzJZDiz5Y8XPUeBbctTmMtnCguGpqfU3jVsTUan0VLaOhsnquqWLL8Bl5HrlbVGT1og==} engines: {node: '>=16.0.0'} - '@smithy/middleware-retry@3.0.25': - resolution: {integrity: sha512-m1F70cPaMBML4HiTgCw5I+jFNtjgz5z5UdGnUbG37vw6kh4UvizFYjqJGHvicfgKMkDL6mXwyPp5mhZg02g5sg==} + '@smithy/middleware-retry@3.0.27': + resolution: {integrity: sha512-H3J/PjJpLL7Tt+fxDKiOD25sMc94YetlQhCnYeNmina2LZscAdu0ZEZPas/kwePHABaEtqp7hqa5S4UJgMs1Tg==} engines: {node: '>=16.0.0'} - '@smithy/middleware-serde@3.0.8': - resolution: {integrity: sha512-Xg2jK9Wc/1g/MBMP/EUn2DLspN8LNt+GMe7cgF+Ty3vl+Zvu+VeZU5nmhveU+H8pxyTsjrAkci8NqY6OuvZnjA==} + '@smithy/middleware-serde@3.0.10': + resolution: {integrity: sha512-MnAuhh+dD14F428ubSJuRnmRsfOpxSzvRhaGVTvd/lrUDE3kxzCCmH8lnVTvoNQnV2BbJ4c15QwZ3UdQBtFNZA==} engines: {node: '>=16.0.0'} - '@smithy/middleware-stack@3.0.8': - resolution: {integrity: sha512-d7ZuwvYgp1+3682Nx0MD3D/HtkmZd49N3JUndYWQXfRZrYEnCWYc8BHcNmVsPAp9gKvlurdg/mubE6b/rPS9MA==} + '@smithy/middleware-stack@3.0.10': + resolution: {integrity: sha512-grCHyoiARDBBGPyw2BeicpjgpsDFWZZxptbVKb3CRd/ZA15F/T6rZjCCuBUjJwdck1nwUuIxYtsS4H9DDpbP5w==} engines: {node: '>=16.0.0'} - '@smithy/node-config-provider@3.1.9': - resolution: {integrity: sha512-qRHoah49QJ71eemjuS/WhUXB+mpNtwHRWQr77J/m40ewBVVwvo52kYAmb7iuaECgGTTcYxHS4Wmewfwy++ueew==} + '@smithy/node-config-provider@3.1.11': + resolution: {integrity: sha512-URq3gT3RpDikh/8MBJUB+QGZzfS7Bm6TQTqoh4CqE8NBuyPkWa5eUXj0XFcFfeZVgg3WMh1u19iaXn8FvvXxZw==} engines: {node: '>=16.0.0'} - '@smithy/node-http-handler@3.2.5': - resolution: {integrity: sha512-PkOwPNeKdvX/jCpn0A8n9/TyoxjGZB8WVoJmm9YzsnAgggTj4CrjpRHlTQw7dlLZ320n1mY1y+nTRUDViKi/3w==} + '@smithy/node-http-handler@3.3.1': + resolution: {integrity: sha512-fr+UAOMGWh6bn4YSEezBCpJn9Ukp9oR4D32sCjCo7U81evE11YePOQ58ogzyfgmjIO79YeOdfXXqr0jyhPQeMg==} engines: {node: '>=16.0.0'} - '@smithy/property-provider@3.1.8': - resolution: {integrity: sha512-ukNUyo6rHmusG64lmkjFeXemwYuKge1BJ8CtpVKmrxQxc6rhUX0vebcptFA9MmrGsnLhwnnqeH83VTU9hwOpjA==} + '@smithy/property-provider@3.1.10': + resolution: {integrity: sha512-n1MJZGTorTH2DvyTVj+3wXnd4CzjJxyXeOgnTlgNVFxaaMeT4OteEp4QrzF8p9ee2yg42nvyVK6R/awLCakjeQ==} engines: {node: '>=16.0.0'} - '@smithy/protocol-http@4.1.5': - resolution: {integrity: sha512-hsjtwpIemmCkm3ZV5fd/T0bPIugW1gJXwZ/hpuVubt2hEUApIoUTrf6qIdh9MAWlw0vjMrA1ztJLAwtNaZogvg==} + '@smithy/protocol-http@4.1.7': + resolution: {integrity: sha512-FP2LepWD0eJeOTm0SjssPcgqAlDFzOmRXqXmGhfIM52G7Lrox/pcpQf6RP4F21k0+O12zaqQt5fCDOeBtqY6Cg==} engines: {node: '>=16.0.0'} - '@smithy/querystring-builder@3.0.8': - resolution: {integrity: sha512-btYxGVqFUARbUrN6VhL9c3dnSviIwBYD9Rz1jHuN1hgh28Fpv2xjU1HeCeDJX68xctz7r4l1PBnFhGg1WBBPuA==} + '@smithy/querystring-builder@3.0.10': + resolution: {integrity: sha512-nT9CQF3EIJtIUepXQuBFb8dxJi3WVZS3XfuDksxSCSn+/CzZowRLdhDn+2acbBv8R6eaJqPupoI/aRFIImNVPQ==} engines: {node: '>=16.0.0'} - '@smithy/querystring-parser@3.0.8': - resolution: {integrity: sha512-BtEk3FG7Ks64GAbt+JnKqwuobJNX8VmFLBsKIwWr1D60T426fGrV2L3YS5siOcUhhp6/Y6yhBw1PSPxA5p7qGg==} + '@smithy/querystring-parser@3.0.10': + resolution: {integrity: sha512-Oa0XDcpo9SmjhiDD9ua2UyM3uU01ZTuIrNdZvzwUTykW1PM8o2yJvMh1Do1rY5sUQg4NDV70dMi0JhDx4GyxuQ==} engines: {node: '>=16.0.0'} - '@smithy/service-error-classification@3.0.8': - resolution: {integrity: sha512-uEC/kCCFto83bz5ZzapcrgGqHOh/0r69sZ2ZuHlgoD5kYgXJEThCoTuw/y1Ub3cE7aaKdznb+jD9xRPIfIwD7g==} + '@smithy/service-error-classification@3.0.10': + resolution: {integrity: sha512-zHe642KCqDxXLuhs6xmHVgRwy078RfqxP2wRDpIyiF8EmsWXptMwnMwbVa50lw+WOGNrYm9zbaEg0oDe3PTtvQ==} engines: {node: '>=16.0.0'} - '@smithy/shared-ini-file-loader@3.1.9': - resolution: {integrity: sha512-/+OsJRNtoRbtsX0UpSgWVxFZLsJHo/4sTr+kBg/J78sr7iC+tHeOvOJrS5hCpVQ6sWBbhWLp1UNiuMyZhE6pmA==} + '@smithy/shared-ini-file-loader@3.1.11': + resolution: {integrity: sha512-AUdrIZHFtUgmfSN4Gq9nHu3IkHMa1YDcN+s061Nfm+6pQ0mJy85YQDB0tZBCmls0Vuj22pLwDPmL92+Hvfwwlg==} engines: {node: '>=16.0.0'} - '@smithy/signature-v4@4.2.1': - resolution: {integrity: sha512-NsV1jF4EvmO5wqmaSzlnTVetemBS3FZHdyc5CExbDljcyJCEEkJr8ANu2JvtNbVg/9MvKAWV44kTrGS+Pi4INg==} + '@smithy/signature-v4@4.2.3': + resolution: {integrity: sha512-pPSQQ2v2vu9vc8iew7sszLd0O09I5TRc5zhY71KA+Ao0xYazIG+uLeHbTJfIWGO3BGVLiXjUr3EEeCcEQLjpWQ==} engines: {node: '>=16.0.0'} - '@smithy/smithy-client@3.4.2': - resolution: {integrity: sha512-dxw1BDxJiY9/zI3cBqfVrInij6ShjpV4fmGHesGZZUiP9OSE/EVfdwdRz0PgvkEvrZHpsj2htRaHJfftE8giBA==} + '@smithy/smithy-client@3.4.4': + resolution: {integrity: sha512-dPGoJuSZqvirBq+yROapBcHHvFjChoAQT8YPWJ820aPHHiowBlB3RL1Q4kPT1hx0qKgJuf+HhyzKi5Gbof4fNA==} engines: {node: '>=16.0.0'} - '@smithy/types@3.6.0': - resolution: {integrity: sha512-8VXK/KzOHefoC65yRgCn5vG1cysPJjHnOVt9d0ybFQSmJgQj152vMn4EkYhGuaOmnnZvCPav/KnYyE6/KsNZ2w==} + '@smithy/types@3.7.1': + resolution: {integrity: sha512-XKLcLXZY7sUQgvvWyeaL/qwNPp6V3dWcUjqrQKjSb+tzYiCy340R/c64LV5j+Tnb2GhmunEX0eou+L+m2hJNYA==} engines: {node: '>=16.0.0'} - '@smithy/url-parser@3.0.8': - resolution: {integrity: sha512-4FdOhwpTW7jtSFWm7SpfLGKIBC9ZaTKG5nBF0wK24aoQKQyDIKUw3+KFWCQ9maMzrgTJIuOvOnsV2lLGW5XjTg==} + '@smithy/url-parser@3.0.10': + resolution: {integrity: sha512-j90NUalTSBR2NaZTuruEgavSdh8MLirf58LoGSk4AtQfyIymogIhgnGUU2Mga2bkMkpSoC9gxb74xBXL5afKAQ==} '@smithy/util-base64@3.0.0': resolution: {integrity: sha512-Kxvoh5Qtt0CDsfajiZOCpJxgtPHXOKwmM+Zy4waD43UoEMA+qPxxa98aE/7ZhdnBFZFXMOiBR5xbcaMhLtznQQ==} @@ -1795,32 +1799,32 @@ packages: resolution: {integrity: sha512-pbjk4s0fwq3Di/ANL+rCvJMKM5bzAQdE5S/6RL5NXgMExFAi6UgQMPOm5yPaIWPpr+EOXKXRonJ3FoxKf4mCJQ==} engines: {node: '>=16.0.0'} - '@smithy/util-defaults-mode-browser@3.0.25': - resolution: {integrity: sha512-fRw7zymjIDt6XxIsLwfJfYUfbGoO9CmCJk6rjJ/X5cd20+d2Is7xjU5Kt/AiDt6hX8DAf5dztmfP5O82gR9emA==} + '@smithy/util-defaults-mode-browser@3.0.27': + resolution: {integrity: sha512-GV8NvPy1vAGp7u5iD/xNKUxCorE4nQzlyl057qRac+KwpH5zq8wVq6rE3lPPeuFLyQXofPN6JwxL1N9ojGapiQ==} engines: {node: '>= 10.0.0'} - '@smithy/util-defaults-mode-node@3.0.25': - resolution: {integrity: sha512-H3BSZdBDiVZGzt8TG51Pd2FvFO0PAx/A0mJ0EH8a13KJ6iUCdYnw/Dk/MdC1kTd0eUuUGisDFaxXVXo4HHFL1g==} + '@smithy/util-defaults-mode-node@3.0.27': + resolution: {integrity: sha512-7+4wjWfZqZxZVJvDutO+i1GvL6bgOajEkop4FuR6wudFlqBiqwxw3HoH6M9NgeCd37km8ga8NPp2JacQEtAMPg==} engines: {node: '>= 10.0.0'} - '@smithy/util-endpoints@2.1.4': - resolution: {integrity: sha512-kPt8j4emm7rdMWQyL0F89o92q10gvCUa6sBkBtDJ7nV2+P7wpXczzOfoDJ49CKXe5CCqb8dc1W+ZdLlrKzSAnQ==} + '@smithy/util-endpoints@2.1.6': + resolution: {integrity: sha512-mFV1t3ndBh0yZOJgWxO9J/4cHZVn5UG1D8DeCc6/echfNkeEJWu9LD7mgGH5fHrEdR7LDoWw7PQO6QiGpHXhgA==} engines: {node: '>=16.0.0'} '@smithy/util-hex-encoding@3.0.0': resolution: {integrity: sha512-eFndh1WEK5YMUYvy3lPlVmYY/fZcQE1D8oSf41Id2vCeIkKJXPcYDCZD+4+xViI6b1XSd7tE+s5AmXzz5ilabQ==} engines: {node: '>=16.0.0'} - '@smithy/util-middleware@3.0.8': - resolution: {integrity: sha512-p7iYAPaQjoeM+AKABpYWeDdtwQNxasr4aXQEA/OmbOaug9V0odRVDy3Wx4ci8soljE/JXQo+abV0qZpW8NX0yA==} + '@smithy/util-middleware@3.0.10': + resolution: {integrity: sha512-eJO+/+RsrG2RpmY68jZdwQtnfsxjmPxzMlQpnHKjFPwrYqvlcT+fHdT+ZVwcjlWSrByOhGr9Ff2GG17efc192A==} engines: {node: '>=16.0.0'} - '@smithy/util-retry@3.0.8': - resolution: {integrity: sha512-TCEhLnY581YJ+g1x0hapPz13JFqzmh/pMWL2KEFASC51qCfw3+Y47MrTmea4bUE5vsdxQ4F6/KFbUeSz22Q1ow==} + '@smithy/util-retry@3.0.10': + resolution: {integrity: sha512-1l4qatFp4PiU6j7UsbasUHL2VU023NRB/gfaa1M0rDqVrRN4g3mCArLRyH3OuktApA4ye+yjWQHjdziunw2eWA==} engines: {node: '>=16.0.0'} - '@smithy/util-stream@3.2.1': - resolution: {integrity: sha512-R3ufuzJRxSJbE58K9AEnL/uSZyVdHzud9wLS8tIbXclxKzoe09CRohj2xV8wpx5tj7ZbiJaKYcutMm1eYgz/0A==} + '@smithy/util-stream@3.3.1': + resolution: {integrity: sha512-Ff68R5lJh2zj+AUTvbAU/4yx+6QPRzg7+pI7M1FbtQHcRIp7xvguxVsQBKyB3fwiOwhAKu0lnNyYBaQfSW6TNw==} engines: {node: '>=16.0.0'} '@smithy/util-uri-escape@3.0.0': @@ -1835,72 +1839,72 @@ packages: resolution: {integrity: sha512-rUeT12bxFnplYDe815GXbq/oixEGHfRFFtcTF3YdDi/JaENIM6aSYYLJydG83UNzLXeRI5K8abYd/8Sp/QM0kA==} engines: {node: '>=16.0.0'} - '@smithy/util-waiter@3.1.7': - resolution: {integrity: sha512-d5yGlQtmN/z5eoTtIYgkvOw27US2Ous4VycnXatyoImIF9tzlcpnKqQ/V7qhvJmb2p6xZne1NopCLakdTnkBBQ==} + '@smithy/util-waiter@3.1.9': + resolution: {integrity: sha512-/aMXPANhMOlMPjfPtSrDfPeVP8l56SJlz93xeiLmhLe5xvlXA5T3abZ2ilEsDEPeY9T/wnN/vNGn9wa1SbufWA==} engines: {node: '>=16.0.0'} - '@swc/core-darwin-arm64@1.7.42': - resolution: {integrity: sha512-fWhaCs2+8GDRIcjExVDEIfbptVrxDqG8oHkESnXgymmvqTWzWei5SOnPNMS8Q+MYsn/b++Y2bDxkcwmq35Bvxg==} + '@swc/core-darwin-arm64@1.9.2': + resolution: {integrity: sha512-nETmsCoY29krTF2PtspEgicb3tqw7Ci5sInTI03EU5zpqYbPjoPH99BVTjj0OsF53jP5MxwnLI5Hm21lUn1d6A==} engines: {node: '>=10'} cpu: [arm64] os: [darwin] - '@swc/core-darwin-x64@1.7.42': - resolution: {integrity: sha512-ZaVHD2bijrlkCyD7NDzLmSK849Jgcx+6DdL4x1dScoz1slJ8GTvLtEu0JOUaaScQwA+cVlhmrmlmi9ssjbRLGQ==} + '@swc/core-darwin-x64@1.9.2': + resolution: {integrity: sha512-9gD+bwBz8ZByjP6nZTXe/hzd0tySIAjpDHgkFiUrc+5zGF+rdTwhcNrzxNHJmy6mw+PW38jqII4uspFHUqqxuQ==} engines: {node: '>=10'} cpu: [x64] os: [darwin] - '@swc/core-linux-arm-gnueabihf@1.7.42': - resolution: {integrity: sha512-iF0BJj7hVTbY/vmbvyzVTh/0W80+Q4fbOYschdUM3Bsud39TA+lSaPOefOHywkNH58EQ1z3EAxYcJOWNES7GFQ==} + '@swc/core-linux-arm-gnueabihf@1.9.2': + resolution: {integrity: sha512-kYq8ief1Qrn+WmsTWAYo4r+Coul4dXN6cLFjiPZ29Cv5pyU+GFvSPAB4bEdMzwy99rCR0u2P10UExaeCjurjvg==} engines: {node: '>=10'} cpu: [arm] os: [linux] - '@swc/core-linux-arm64-gnu@1.7.42': - resolution: {integrity: sha512-xGu8j+DOLYTLkVmsfZPJbNPW1EkiWgSucT0nOlz77bLxImukt/0+HVm2hOwHSKuArQ8C3cjahAMY3b/s4VH2ww==} + '@swc/core-linux-arm64-gnu@1.9.2': + resolution: {integrity: sha512-n0W4XiXlmEIVqxt+rD3ZpkogsEWUk1jJ+i5bQNgB+1JuWh0fBE8c/blDgTQXa0GB5lTPVDZQussgdNOCnAZwiA==} engines: {node: '>=10'} cpu: [arm64] os: [linux] - '@swc/core-linux-arm64-musl@1.7.42': - resolution: {integrity: sha512-qtW3JNO7i1yHEko59xxz+jY38+tYmB96JGzj6XzygMbYJYZDYbrOpXQvKbMGNG3YeTDan7Fp2jD0dlKf7NgDPA==} + '@swc/core-linux-arm64-musl@1.9.2': + resolution: {integrity: sha512-8xzrOmsyCC1zrx2Wzx/h8dVsdewO1oMCwBTLc1gSJ/YllZYTb04pNm6NsVbzUX2tKddJVRgSJXV10j/NECLwpA==} engines: {node: '>=10'} cpu: [arm64] os: [linux] - '@swc/core-linux-x64-gnu@1.7.42': - resolution: {integrity: sha512-F9WY1TN+hhhtiEzZjRQziNLt36M5YprMeOBHjsLVNqwgflzleSI7ulgnlQECS8c8zESaXj3ksGduAoJYtPC1cA==} + '@swc/core-linux-x64-gnu@1.9.2': + resolution: {integrity: sha512-kZrNz/PjRQKcchWF6W292jk3K44EoVu1ad5w+zbS4jekIAxsM8WwQ1kd+yjUlN9jFcF8XBat5NKIs9WphJCVXg==} engines: {node: '>=10'} cpu: [x64] os: [linux] - '@swc/core-linux-x64-musl@1.7.42': - resolution: {integrity: sha512-7YMdOaYKLMQ8JGfnmRDwidpLFs/6ka+80zekeM0iCVO48yLrJR36G0QGXzMjKsXI0BPhq+mboZRRENK4JfQnEA==} + '@swc/core-linux-x64-musl@1.9.2': + resolution: {integrity: sha512-TTIpR4rjMkhX1lnFR+PSXpaL83TrQzp9znRdp2TzYrODlUd/R20zOwSo9vFLCyH6ZoD47bccY7QeGZDYT3nlRg==} engines: {node: '>=10'} cpu: [x64] os: [linux] - '@swc/core-win32-arm64-msvc@1.7.42': - resolution: {integrity: sha512-C5CYWaIZEyqPl5W/EwcJ/mLBJFHVoUEa/IwWi0b4q2fCXcSCktQGwKXOQ+d67GneiZoiq0HasgcdMmMpGS9YRQ==} + '@swc/core-win32-arm64-msvc@1.9.2': + resolution: {integrity: sha512-+Eg2d4icItKC0PMjZxH7cSYFLWk0aIp94LNmOw6tPq0e69ax6oh10upeq0D1fjWsKLmOJAWEvnXlayZcijEXDw==} engines: {node: '>=10'} cpu: [arm64] os: [win32] - '@swc/core-win32-ia32-msvc@1.7.42': - resolution: {integrity: sha512-3j47seZ5pO62mbrqvPe1iwhe2BXnM5q7iB+n2xgA38PCGYt0mnaJafqmpCXm/uYZOCMqSNynaoOWCMMZm4sqtA==} + '@swc/core-win32-ia32-msvc@1.9.2': + resolution: {integrity: sha512-nLWBi4vZDdM/LkiQmPCakof8Dh1/t5EM7eudue04V1lIcqx9YHVRS3KMwEaCoHLGg0c312Wm4YgrWQd9vwZ5zQ==} engines: {node: '>=10'} cpu: [ia32] os: [win32] - '@swc/core-win32-x64-msvc@1.7.42': - resolution: {integrity: sha512-FXl9MdeUogZLGDcLr6QIRdDVkpG0dkN4MLM4dwQ5kcAk+XfKPrQibX6M2kcfhsCx+jtBqtK7hRFReRXPWJZGbA==} + '@swc/core-win32-x64-msvc@1.9.2': + resolution: {integrity: sha512-ik/k+JjRJBFkXARukdU82tSVx0CbExFQoQ78qTO682esbYXzjdB5eLVkoUbwen299pnfr88Kn4kyIqFPTje8Xw==} engines: {node: '>=10'} cpu: [x64] os: [win32] - '@swc/core@1.7.42': - resolution: {integrity: sha512-iQrRk3SKndQZ4ptJv1rzeQSiCYQIhMjiO97QXOlCcCoaazOLKPnLnXzU4Kv0FuBFyYfG2FE94BoR0XI2BN02qw==} + '@swc/core@1.9.2': + resolution: {integrity: sha512-dYyEkO6mRYtZFpnOsnYzv9rY69fHAHoawYOjGOEcxk9WYtaJhowMdP/w6NcOKnz2G7GlZaenjkzkMa6ZeQeMsg==} engines: {node: '>=10'} peerDependencies: '@swc/helpers': '*' @@ -1911,8 +1915,8 @@ packages: '@swc/counter@0.1.3': resolution: {integrity: sha512-e2BR4lsJkkRlKZ/qCHPw9ZaSxc0MVUd7gtbtaB7aMvHeJVYe8sOB8DBZkP2DtISHGSku9sCK6T6cnY0CtXrOCQ==} - '@swc/types@0.1.13': - resolution: {integrity: sha512-JL7eeCk6zWCbiYQg2xQSdLXQJl8Qoc9rXmG2cEKvHe3CKwMHwHGpfOb8frzNLmbycOo6I51qxnLnn9ESf4I20Q==} + '@swc/types@0.1.15': + resolution: {integrity: sha512-XKaZ+dzDIQ9Ot9o89oJQ/aluI17+VvUnIpYJTcZtvv1iYX6MzHh3Ik2CSR7MdPKpPwfZXHBeCingb2b4PoDVdw==} '@szmarczak/http-timer@4.0.6': resolution: {integrity: sha512-4BAffykYOgO+5nzBWYwE3W90sBgLJoUPRWWcL8wlyiM8IB8ipJz3UMJ9KXQd1RKQXpKp8Tutn80HZtWsu2u76w==} @@ -2107,8 +2111,8 @@ packages: '@types/ms@0.7.34': resolution: {integrity: sha512-nG96G3Wp6acyAgJqGasjODb+acrI7KltPiRxzHPXnP3NgI28bpQDRv53olbqGXbfcgF5aiiHmO3xpwEpS5Ld9g==} - '@types/node@20.17.5': - resolution: {integrity: sha512-n8FYY/pRxu496441gIcAQFZPKXbhsd6VZygcq+PTSZ75eMh/Ke0hCAROdUa21qiFqKNsPPYic46yXDO1JGiPBQ==} + '@types/node@20.17.6': + resolution: {integrity: sha512-VEI7OdvK2wP7XHnsuXbAJnEpEkF6NjSN45QJlL4VGqZSXsnicpesdTWsg9RISeSdYd3yeRj/y3k5KGjUXYnFwQ==} '@types/normalize-package-data@2.4.4': resolution: {integrity: sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==} @@ -2116,6 +2120,9 @@ packages: '@types/parse-link-header@2.0.3': resolution: {integrity: sha512-ffLAxD6Xqcf2gSbtEJehj8yJ5R/2OZqD4liodQvQQ+hhO4kg1mk9ToEZQPMtNTm/zIQj2GNleQbsjPp9+UQm4Q==} + '@types/punycode@2.1.4': + resolution: {integrity: sha512-trzh6NzBnq8yw5e35f8xe8VTYjqM3NE7bohBtvDVf/dtUer3zYTLK1Ka3DG3p7bdtoaOHZucma6FfVKlQ134pQ==} + '@types/responselike@1.0.3': resolution: {integrity: sha512-H/+L+UkTV33uf49PH5pCAUBVPNj2nDBXTN+qS1dOwyyg24l3CcicicCA7ca+HMvJBZcFgl5r8e+RR6elsb4Lyw==} @@ -2155,6 +2162,9 @@ packages: '@types/url-join@4.0.3': resolution: {integrity: sha512-3l1qMm3wqO0iyC5gkADzT95UVW7C/XXcdvUcShOideKF0ddgVRErEQQJXBd2kvQm+aSgqhBGHGB38TgMeT57Ww==} + '@types/uuid@9.0.8': + resolution: {integrity: sha512-jg+97EGIcY9AGHJJRaaPVgetKDsrTgbRjQ5Msgjh/DQKEFl0DtyRr/VCOyD1T2R1MNeWPK/u7JoGhlDZnKBAfA==} + '@types/validate-npm-package-name@4.0.2': resolution: {integrity: sha512-lrpDziQipxCEeK5kWxvljWYhUvOiB2A9izZd9B2AFarYAkqZshb4lPbRs7zKEic6eGtH8V/2qJW+dPp9OtF6bw==} @@ -2205,8 +2215,8 @@ packages: resolution: {integrity: sha512-Uholz7tWhXmA4r6epo+vaeV7yjdKy5QFCERMjs1kMVsLRKIrSdM6o21W2He9ftp5PP6aWOVpD5zvrvuHZC0bMQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/scope-manager@8.12.2': - resolution: {integrity: sha512-gPLpLtrj9aMHOvxJkSbDBmbRuYdtiEbnvO25bCMza3DhMjTQw0u7Y1M+YR5JPbMsXXnSPuCf5hfq0nEkQDL/JQ==} + '@typescript-eslint/scope-manager@8.15.0': + resolution: {integrity: sha512-QRGy8ADi4J7ii95xz4UoiymmmMd/zuy9azCaamnZ3FM8T5fZcex8UfJcjkiEZjJSztKfEBe3dZ5T/5RHAmw2mA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} '@typescript-eslint/type-utils@8.11.0': @@ -2226,8 +2236,8 @@ packages: resolution: {integrity: sha512-tn6sNMHf6EBAYMvmPUaKaVeYvhUsrE6x+bXQTxjQRp360h1giATU0WvgeEys1spbvb5R+VpNOZ+XJmjD8wOUHw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/types@8.12.2': - resolution: {integrity: sha512-VwDwMF1SZ7wPBUZwmMdnDJ6sIFk4K4s+ALKLP6aIQsISkPv8jhiw65sAK6SuWODN/ix+m+HgbYDkH+zLjrzvOA==} + '@typescript-eslint/types@8.15.0': + resolution: {integrity: sha512-n3Gt8Y/KyJNe0S3yDCD2RVKrHBC4gTUcLTebVBXacPy091E6tNspFLKRXlk3hwT4G55nfr1n2AdFqi/XMxzmPQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} '@typescript-eslint/typescript-estree@5.62.0': @@ -2248,8 +2258,8 @@ packages: typescript: optional: true - '@typescript-eslint/typescript-estree@8.12.2': - resolution: {integrity: sha512-mME5MDwGe30Pq9zKPvyduyU86PH7aixwqYR2grTglAdB+AN8xXQ1vFGpYaUSJ5o5P/5znsSBeNcs5g5/2aQwow==} + '@typescript-eslint/typescript-estree@8.15.0': + resolution: {integrity: sha512-1eMp2JgNec/niZsR7ioFBlsh/Fk0oJbhaqO0jRyQBMgkz7RrFfkqF9lYYmBoGBaSiLnu8TAPQTwoTUiSTUW9dg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: typescript: '*' @@ -2269,11 +2279,15 @@ packages: peerDependencies: eslint: ^8.57.0 || ^9.0.0 - '@typescript-eslint/utils@8.12.2': - resolution: {integrity: sha512-UTTuDIX3fkfAz6iSVa5rTuSfWIYZ6ATtEocQ/umkRSyC9O919lbZ8dcH7mysshrCdrAM03skJOEYaBugxN+M6A==} + '@typescript-eslint/utils@8.15.0': + resolution: {integrity: sha512-k82RI9yGhr0QM3Dnq+egEpz9qB6Un+WLYhmoNcvl8ltMEededhh7otBVVIDDsEEttauwdY/hQoSsOv13lxrFzQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true '@typescript-eslint/visitor-keys@5.62.0': resolution: {integrity: sha512-07ny+LHRzQXepkGg6w0mFY41fVUNBrL2Roj/++7V1txKugfjm/Ci/qSND03r2RhlJhJYMcTn9AhhSSqQp0Ysyw==} @@ -2283,8 +2297,8 @@ packages: resolution: {integrity: sha512-EaewX6lxSjRJnc+99+dqzTeoDZUfyrA52d2/HRrkI830kgovWsmIiTfmr0NZorzqic7ga+1bS60lRBUgR3n/Bw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/visitor-keys@8.12.2': - resolution: {integrity: sha512-PChz8UaKQAVNHghsHcPyx1OMHoFRUEA7rJSK/mDhdq85bk+PLsUHUBqTQTFt18VJZbmxBovM65fezlheQRsSDA==} + '@typescript-eslint/visitor-keys@8.15.0': + resolution: {integrity: sha512-h8vYOulWec9LhpwfAdZf2bjr8xIp0KNKnpgqSz0qqYYKAW/QZKw3ktRndbiAtUz4acH4QLQavwZBYCc0wulA/Q==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} '@ungap/structured-clone@1.2.0': @@ -2452,9 +2466,6 @@ packages: resolution: {integrity: sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA==} engines: {node: '>=0.10.0'} - asn1.js@5.4.1: - resolution: {integrity: sha512-+I//4cYPccV8LdmBLiX8CYvf9Sp3vQsrqu2QNXRcrbiWvcx/UdlFiqUJJzxRQxgsZmvhXhn4cSKeSmoFjVdupA==} - async-mutex@0.5.0: resolution: {integrity: sha512-1A94B18jkJ3DYq284ohPxoXbfTA5HsQ7/Mf4DEhcyLx3Bz27Rh59iScbB6EPiP+B+joue6YCxcMXSbFC1tZKwA==} @@ -2533,9 +2544,6 @@ packages: bl@4.1.0: resolution: {integrity: sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==} - bn.js@4.12.0: - resolution: {integrity: sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==} - bn@1.0.5: resolution: {integrity: sha512-7TvGbqbZb6lDzsBtNz1VkdXXV0BVmZKPPViPmo2IpvwaryF7P+QKYKACyVkwo2mZPr2CpFiz7EtgPEcc3o/JFQ==} @@ -2633,8 +2641,8 @@ packages: resolution: {integrity: sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==} engines: {node: '>=10'} - caniuse-lite@1.0.30001677: - resolution: {integrity: sha512-fmfjsOlJUpMWu+mAAtZZZHz7UEwsUxIIvu1TJfO1HqFQvB/B+ii0xr9B5HpbZY/mC4XZ8SvjHJqtAY6pDPQEog==} + caniuse-lite@1.0.30001680: + resolution: {integrity: sha512-rPQy70G6AGUMnbwS1z6Xg+RkHYPAi18ihs47GH0jcxIG7wArmPgY3XbS2sRdBbxJljp3thdT8BIqv9ccCypiPA==} chalk@2.4.2: resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==} @@ -2683,8 +2691,8 @@ packages: resolution: {integrity: sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==} engines: {node: '>=8'} - ci-info@4.0.0: - resolution: {integrity: sha512-TdHqgGf9odd8SXNuxtUBVx8Nv+qZOejE6qyqiy5NtbYYQOeFa6zmHkxlPzmaLxWWHsU6nJmB7AETdVPi+2NBUg==} + ci-info@4.1.0: + resolution: {integrity: sha512-HutrvTNsF48wnxkzERIXOe5/mlcfFcbfCmwcg6CJnizbSue78AbDt+1cgl26zwn61WFxhcPykPfZrbqjGmBb4A==} engines: {node: '>=8'} cjs-module-lexer@1.4.1: @@ -2848,6 +2856,10 @@ packages: resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==} engines: {node: '>= 8'} + cross-spawn@7.0.6: + resolution: {integrity: sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==} + engines: {node: '>= 8'} + crypto-random-string@4.0.0: resolution: {integrity: sha512-x8dy3RnvYdlUcPOjkEHqozhiwzKNSq7GcPuXFbnyMOCHxX8V3OgIg/pYuabl2sbUPfIJaeAQB7PMOK8DFIdoRA==} engines: {node: '>=12'} @@ -2912,10 +2924,6 @@ packages: babel-plugin-macros: optional: true - deep-equal@2.2.3: - resolution: {integrity: sha512-ZIwpnevOurS8bpT4192sqAowWM76JDKSHYzMLty3BZGSswgq6pBaH3DhCSW5xVAZICZyKdOBPjwww5wfgT/6PA==} - engines: {node: '>= 0.4'} - deep-extend@0.6.0: resolution: {integrity: sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==} engines: {node: '>=4.0.0'} @@ -3032,8 +3040,8 @@ packages: engines: {node: '>=0.10.0'} hasBin: true - electron-to-chromium@1.5.50: - resolution: {integrity: sha512-eMVObiUQ2LdgeO1F/ySTXsvqvxb6ZH2zPGaMYsWzRDdOddUa77tdmI0ltg+L16UpbWdhPmuF3wIQYyQq65WfZw==} + electron-to-chromium@1.5.63: + resolution: {integrity: sha512-ddeXKuY9BHo/mw145axlyWjlJ1UBt4WK3AlvkT7W2AbqfRQoacVoRUCF6wL3uIx/8wT9oLKXzI+rFqHHscByaA==} email-addresses@5.0.0: resolution: {integrity: sha512-4OIPYlA6JXqtVn8zpHpGiI7vE6EQOAg16aGnDMIAlZVinnoZ8208tW1hAbjWydgN/4PLTT9q+O1K6AH/vALJGw==} @@ -3097,8 +3105,8 @@ packages: error-ex@1.3.2: resolution: {integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==} - es-abstract@1.23.3: - resolution: {integrity: sha512-e+HfNH61Bj1X9/jLc5v1owaLYuHdeHHSQlkhCBiTK8rBvKaULl/beGMxwrMXjpYrv4pz22BlY570vVePA2ho4A==} + es-abstract@1.23.5: + resolution: {integrity: sha512-vlmniQ0WNPwXqA0BnmwV3Ng7HxiGlh6r5U6JcTMNx8OilcAGqVJBHJcPjqOMaczU9fRuRK5Px2BdVyPRnKMMVQ==} engines: {node: '>= 0.4'} es-define-property@1.0.0: @@ -3109,9 +3117,6 @@ packages: resolution: {integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==} engines: {node: '>= 0.4'} - es-get-iterator@1.1.3: - resolution: {integrity: sha512-sPZmqHBe6JIiTfN5q2pEi//TwxmAFHwj/XEuYjTuse78i8KxaqMTTzxPoFKuzRpDpTJ+0NAbpfenkmH2rePtuw==} - es-object-atoms@1.0.0: resolution: {integrity: sha512-MZ4iQ6JwHOBQjahnjwaC1ZtIBH+2ohjamzAO3oaHcXYup7qxjF2fixyH+Q71voWHeOkI2q/TnJao/KfXYIZWbw==} engines: {node: '>= 0.4'} @@ -3248,6 +3253,10 @@ packages: resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + eslint-visitor-keys@4.2.0: + resolution: {integrity: sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + eslint@8.57.1: resolution: {integrity: sha512-ypowyDxpVSYpkXr9WPv2PAZCtNip1Mv5KTW0SCurXv/9iOpcrH9PaqUElksqEB6pChqHGDRCFTyrZlGhnLNGiA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} @@ -3407,8 +3416,8 @@ packages: resolution: {integrity: sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==} engines: {node: ^10.12.0 || >=12.0.0} - flatted@3.3.1: - resolution: {integrity: sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==} + flatted@3.3.2: + resolution: {integrity: sha512-AiwGJM8YcNOaobumgtng+6NHuOqC3A7MixFeDafM3X9cIUM+xUXoS5Vfgf+OihAYe20fxqNM9yPBXJzRtZ/4eA==} for-each@0.3.3: resolution: {integrity: sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==} @@ -3608,8 +3617,8 @@ packages: graceful-fs@4.2.11: resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} - graph-data-structure@3.5.0: - resolution: {integrity: sha512-AAgjRtBZC1acIExgK2otv2LDdcYeZdQFKiEStXRDTyaVs6sUUaGUif05pCczTqAU4ny82NQtM1p5PK7AQEYgRA==} + graph-data-structure@4.2.0: + resolution: {integrity: sha512-DFGyFROTYJAXwLjBPvj6LYihF2zIUDKt6Rzgo18E+FFKtHm7dJnE/bMHVp6fji5IchykUg3ctS9gwS0L5azwDw==} grapheme-splitter@1.0.4: resolution: {integrity: sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==} @@ -3910,10 +3919,6 @@ packages: is-lambda@1.0.1: resolution: {integrity: sha512-z7CMFGNrENq5iFB9Bqo64Xk6Y9sg+epq1myIcdHaGnbMTYOxvzsEtdYqQUylB7LxfkvgrrjP32T6Ywciio9UIQ==} - is-map@2.0.3: - resolution: {integrity: sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==} - engines: {node: '>= 0.4'} - is-negative-zero@2.0.3: resolution: {integrity: sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==} engines: {node: '>= 0.4'} @@ -3950,10 +3955,6 @@ packages: resolution: {integrity: sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==} engines: {node: '>= 0.4'} - is-set@2.0.3: - resolution: {integrity: sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg==} - engines: {node: '>= 0.4'} - is-shared-array-buffer@1.0.3: resolution: {integrity: sha512-nA2hv5XIhLR3uVzDDfCIknerhx8XUKnstuOERPNNIinXG7v9u+ohXF67vxm4TPTEPU6lm61ZkwP3c9PCB97rhg==} engines: {node: '>= 0.4'} @@ -3992,17 +3993,9 @@ packages: resolution: {integrity: sha512-mE00Gnza5EEB3Ds0HfMyllZzbBrmLOX3vfWoj9A9PEnTfratQ/BcaJOuMhnkhjXvb2+FkY3VuHqtAGpTPmglFQ==} engines: {node: '>=18'} - is-weakmap@2.0.2: - resolution: {integrity: sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w==} - engines: {node: '>= 0.4'} - is-weakref@1.0.2: resolution: {integrity: sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==} - is-weakset@2.0.3: - resolution: {integrity: sha512-LvIm3/KWzS9oRFHugab7d+M/GcBXuXX5xZkzPmN+NxihdQlZUQ4dWuSV1xR/sq6upL1TJEDrfBgRepHFdBtSNQ==} - engines: {node: '>= 0.4'} - is-windows@1.0.2: resolution: {integrity: sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==} engines: {node: '>=0.10.0'} @@ -4457,17 +4450,17 @@ packages: peerDependencies: markdownlint-cli2: '>=0.0.4' - markdownlint-cli2@0.14.0: - resolution: {integrity: sha512-2cqdWy56frU2FTpbuGb83mEWWYuUIYv6xS8RVEoUAuKNw/hXPar2UYGpuzUhlFMngE8Omaz4RBH52MzfRbGshw==} + markdownlint-cli2@0.15.0: + resolution: {integrity: sha512-4P/lnxQxU2R5lywRJs4b2ajm8z65CW8qqR1bTIcdQ5EG+nZpC6HJlJUnmIR5ee+uecUkoMroazxWcLB7etSmrg==} engines: {node: '>=18'} hasBin: true - markdownlint-micromark@0.1.10: - resolution: {integrity: sha512-no5ZfdqAdWGxftCLlySHSgddEjyW4kui4z7amQcGsSKfYC5v/ou+8mIQVyg9KQMeEZLNtz9OPDTj7nnTnoR4FQ==} + markdownlint-micromark@0.1.12: + resolution: {integrity: sha512-RlB6EwMGgc0sxcIhOQ2+aq7Zw1V2fBnzbXKGgYK/mVWdT7cz34fteKSwfYeo4rL6+L/q2tyC9QtD/PgZbkdyJQ==} engines: {node: '>=18'} - markdownlint@0.35.0: - resolution: {integrity: sha512-wgp8yesWjFBL7bycA3hxwHRdsZGJhjhyP1dSxKVKrza0EPFYtn+mHtkVy6dvP1kGSjovyG5B8yNP6Frj0UFUJg==} + markdownlint@0.36.1: + resolution: {integrity: sha512-s73fU2CQN7WCgjhaQUQ8wYESQNzGRNOKDd+3xgVqu8kuTEhmwepd/mxOv1LR2oV046ONrTLBFsM7IoKWNvmy5g==} engines: {node: '>=18'} marked-terminal@7.2.1: @@ -4694,8 +4687,8 @@ packages: nise@6.1.1: resolution: {integrity: sha512-aMSAzLVY7LyeM60gvBS423nBmIPP+Wy7St7hsb+8/fc1HmeoHJfLO8CKse4u3BtOZvQLJghYPI2i/1WZrEj5/g==} - nock@13.5.5: - resolution: {integrity: sha512-XKYnqUrCwXC8DGG1xX4YH5yNIrlh9c065uaMZZHUoeUUINTOyt+x/G+ezYk0Ft6ExSREVIs+qBJDK503viTfFA==} + nock@13.5.6: + resolution: {integrity: sha512-o2zOYiCpzRqSzPj0Zt/dQ/DqZeYoaQ7TUonc/xUPjCGl9WeHpNbxgVvOquXYAaJzI0M9BXV3HTzG0p8IUAbBTQ==} engines: {node: '>= 10.13'} node-abi@3.71.0: @@ -4868,12 +4861,8 @@ packages: resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} engines: {node: '>=0.10.0'} - object-inspect@1.13.2: - resolution: {integrity: sha512-IRZSRuzJiynemAXPYtPe5BoI/RESNYR7TYm50MC5Mqbd3Jmw5y790sErYw3V6SryFJD64b74qQQs9wn5Bg/k3g==} - engines: {node: '>= 0.4'} - - object-is@1.1.6: - resolution: {integrity: sha512-F8cZ+KfGlSGi09lJT7/Nd6KJZ9ygtvYC0/UYYLI9nmQKLMnydpB9yvbv9K1uSkEu7FU9vYPmVwLg328tX+ot3Q==} + object-inspect@1.13.3: + resolution: {integrity: sha512-kDCGIbxkDSXE3euJZZXzc6to7fCrKHNI/hSRQnRuQ+BWjFNzZwiFF8fj/6o2t2G9/jTj8PSIYTfCLelLZEeRpA==} engines: {node: '>= 0.4'} object-keys@1.1.1: @@ -4907,9 +4896,9 @@ packages: resolution: {integrity: sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==} engines: {node: '>=12'} - openpgp@5.11.2: - resolution: {integrity: sha512-f8dJFVLwdkvPvW3VPFs6q9Vs2+HNhdvwls7a/MIFcQUB+XiQzRe7alfa3RtwfGJU7oUDDMAWPZ0nYsHa23Az+A==} - engines: {node: '>= 8.0.0'} + openpgp@6.0.0: + resolution: {integrity: sha512-8YMuhOV6bP8+J4bCHltvRwol1sBJhxAcJXvwEKpcK65lKpQ0VUbymQR/EuGrzxYnatNSyMyrMgip4j/F0vhZvg==} + engines: {node: '>= 18.0.0'} optionator@0.9.4: resolution: {integrity: sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==} @@ -5154,8 +5143,8 @@ packages: resolution: {integrity: sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - pretty-ms@9.1.0: - resolution: {integrity: sha512-o1piW0n3tgKIKCwk2vpM/vOV13zjJzvP37Ioze54YlTHE06m4tjEbzg9WsKkvTuyYln2DHjo5pY4qrZGI0otpw==} + pretty-ms@9.2.0: + resolution: {integrity: sha512-4yf0QO/sllf/1zbZWYnvWw3NxCQwLXKzIj0G849LSufP15BXKM0rbD2Z3wVnkMfjdn/CB0Dpp444gYAACdsplg==} engines: {node: '>=18'} proc-log@4.2.0: @@ -5165,8 +5154,8 @@ packages: process-nextick-args@2.0.1: resolution: {integrity: sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==} - process-on-spawn@1.0.0: - resolution: {integrity: sha512-1WsPDsUSMmZH5LeMLegqkPDrsGgsWwk1Exipy2hvB0o/F0ASzbpIctSCcZIK1ykJvtTJULEH+20WOFjMvGnCTg==} + process-on-spawn@1.1.0: + resolution: {integrity: sha512-JOnOPQ/8TZgjs1JIH/m9ni7FfimjNa/PRx7y/Wb5qdItsnhO0jE4AT7fC0HjC28DUQWDr50dwSYZLdRMlqDq3Q==} engines: {node: '>=8'} progress@1.1.8: @@ -5213,8 +5202,8 @@ packages: resolution: {integrity: sha512-L/e3qq/3m/TrYtINo2aBB98oz6w8VHGyFy+arSKwPMZDUNNw2OaQxYnZO6UIZZw2OnRl2qkxGmuSOEfsuHXJdA==} engines: {node: '>=0.10.0'} - qs@6.13.0: - resolution: {integrity: sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg==} + qs@6.13.1: + resolution: {integrity: sha512-EJPeIn0CYrGu+hli1xilKAPXODtJ12T0sP63Ijx2/khC2JtuaN3JyNIpvmnkmaEtha9ocbG4A4cMcr+TvqvwQg==} engines: {node: '>=0.6'} queue-microtask@1.2.3: @@ -5579,10 +5568,6 @@ packages: resolution: {integrity: sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==} engines: {node: '>=10'} - stop-iteration-iterator@1.0.0: - resolution: {integrity: sha512-iCGQj+0l0HOdZ2AEeBADlsRC+vsnDsZsbdSiH1yNSjcfKM7fdpCMfqAL/dwF5BLiw/XhRft/Wax6zQbhq2BcjQ==} - engines: {node: '>= 0.4'} - stream-combiner2@1.1.1: resolution: {integrity: sha512-3PnJbYgS56AeWgtKF5jtJRT6uFJe56Z0Hc5Ngg/6sI6rIt8iiMBTa9cvdyFfpMQjaVHr8dusbNeFGIIonxOvKw==} @@ -6090,10 +6075,6 @@ packages: which-boxed-primitive@1.0.2: resolution: {integrity: sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==} - which-collection@1.0.2: - resolution: {integrity: sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw==} - engines: {node: '>= 0.4'} - which-module@2.0.1: resolution: {integrity: sha512-iBdZ57RDvnOR9AGBhML2vFZf7h8vmBjhoaZqODJBFWHVtKkDmKuHai3cx5PgVMrX5YDNp27AofYbAwctSS+vhQ==} @@ -6247,21 +6228,21 @@ snapshots: '@aws-crypto/crc32@5.2.0': dependencies: '@aws-crypto/util': 5.2.0 - '@aws-sdk/types': 3.654.0 + '@aws-sdk/types': 3.686.0 tslib: 2.8.1 '@aws-crypto/crc32c@5.2.0': dependencies: '@aws-crypto/util': 5.2.0 - '@aws-sdk/types': 3.654.0 + '@aws-sdk/types': 3.686.0 tslib: 2.8.1 '@aws-crypto/sha1-browser@5.2.0': dependencies: '@aws-crypto/supports-web-crypto': 5.2.0 '@aws-crypto/util': 5.2.0 - '@aws-sdk/types': 3.654.0 - '@aws-sdk/util-locate-window': 3.679.0 + '@aws-sdk/types': 3.686.0 + '@aws-sdk/util-locate-window': 3.693.0 '@smithy/util-utf8': 2.3.0 tslib: 2.8.1 @@ -6270,15 +6251,15 @@ snapshots: '@aws-crypto/sha256-js': 5.2.0 '@aws-crypto/supports-web-crypto': 5.2.0 '@aws-crypto/util': 5.2.0 - '@aws-sdk/types': 3.654.0 - '@aws-sdk/util-locate-window': 3.679.0 + '@aws-sdk/types': 3.686.0 + '@aws-sdk/util-locate-window': 3.693.0 '@smithy/util-utf8': 2.3.0 tslib: 2.8.1 '@aws-crypto/sha256-js@5.2.0': dependencies: '@aws-crypto/util': 5.2.0 - '@aws-sdk/types': 3.654.0 + '@aws-sdk/types': 3.686.0 tslib: 2.8.1 '@aws-crypto/supports-web-crypto@5.2.0': @@ -6287,752 +6268,768 @@ snapshots: '@aws-crypto/util@5.2.0': dependencies: - '@aws-sdk/types': 3.654.0 + '@aws-sdk/types': 3.686.0 '@smithy/util-utf8': 2.3.0 tslib: 2.8.1 - '@aws-sdk/client-codecommit@3.658.1': + '@aws-sdk/client-codecommit@3.687.0': dependencies: '@aws-crypto/sha256-browser': 5.2.0 '@aws-crypto/sha256-js': 5.2.0 - '@aws-sdk/client-sso-oidc': 3.658.1(@aws-sdk/client-sts@3.658.1) - '@aws-sdk/client-sts': 3.658.1 - '@aws-sdk/core': 3.658.1 - '@aws-sdk/credential-provider-node': 3.658.1(@aws-sdk/client-sso-oidc@3.658.1(@aws-sdk/client-sts@3.658.1))(@aws-sdk/client-sts@3.658.1) - '@aws-sdk/middleware-host-header': 3.654.0 - '@aws-sdk/middleware-logger': 3.654.0 - '@aws-sdk/middleware-recursion-detection': 3.654.0 - '@aws-sdk/middleware-user-agent': 3.654.0 - '@aws-sdk/region-config-resolver': 3.654.0 - '@aws-sdk/types': 3.654.0 - '@aws-sdk/util-endpoints': 3.654.0 - '@aws-sdk/util-user-agent-browser': 3.654.0 - '@aws-sdk/util-user-agent-node': 3.654.0 - '@smithy/config-resolver': 3.0.10 - '@smithy/core': 2.5.1 - '@smithy/fetch-http-handler': 3.2.9 - '@smithy/hash-node': 3.0.8 - '@smithy/invalid-dependency': 3.0.8 - '@smithy/middleware-content-length': 3.0.10 - '@smithy/middleware-endpoint': 3.2.1 - '@smithy/middleware-retry': 3.0.25 - '@smithy/middleware-serde': 3.0.8 - '@smithy/middleware-stack': 3.0.8 - '@smithy/node-config-provider': 3.1.9 - '@smithy/node-http-handler': 3.2.5 - '@smithy/protocol-http': 4.1.5 - '@smithy/smithy-client': 3.4.2 - '@smithy/types': 3.6.0 - '@smithy/url-parser': 3.0.8 + '@aws-sdk/client-sso-oidc': 3.687.0(@aws-sdk/client-sts@3.687.0) + '@aws-sdk/client-sts': 3.687.0 + '@aws-sdk/core': 3.686.0 + '@aws-sdk/credential-provider-node': 3.687.0(@aws-sdk/client-sso-oidc@3.687.0(@aws-sdk/client-sts@3.687.0))(@aws-sdk/client-sts@3.687.0) + '@aws-sdk/middleware-host-header': 3.686.0 + '@aws-sdk/middleware-logger': 3.686.0 + '@aws-sdk/middleware-recursion-detection': 3.686.0 + '@aws-sdk/middleware-user-agent': 3.687.0 + '@aws-sdk/region-config-resolver': 3.686.0 + '@aws-sdk/types': 3.686.0 + '@aws-sdk/util-endpoints': 3.686.0 + '@aws-sdk/util-user-agent-browser': 3.686.0 + '@aws-sdk/util-user-agent-node': 3.687.0 + '@smithy/config-resolver': 3.0.12 + '@smithy/core': 2.5.3 + '@smithy/fetch-http-handler': 4.1.1 + '@smithy/hash-node': 3.0.10 + '@smithy/invalid-dependency': 3.0.10 + '@smithy/middleware-content-length': 3.0.12 + '@smithy/middleware-endpoint': 3.2.3 + '@smithy/middleware-retry': 3.0.27 + '@smithy/middleware-serde': 3.0.10 + '@smithy/middleware-stack': 3.0.10 + '@smithy/node-config-provider': 3.1.11 + '@smithy/node-http-handler': 3.3.1 + '@smithy/protocol-http': 4.1.7 + '@smithy/smithy-client': 3.4.4 + '@smithy/types': 3.7.1 + '@smithy/url-parser': 3.0.10 '@smithy/util-base64': 3.0.0 '@smithy/util-body-length-browser': 3.0.0 '@smithy/util-body-length-node': 3.0.0 - '@smithy/util-defaults-mode-browser': 3.0.25 - '@smithy/util-defaults-mode-node': 3.0.25 - '@smithy/util-endpoints': 2.1.4 - '@smithy/util-middleware': 3.0.8 - '@smithy/util-retry': 3.0.8 + '@smithy/util-defaults-mode-browser': 3.0.27 + '@smithy/util-defaults-mode-node': 3.0.27 + '@smithy/util-endpoints': 2.1.6 + '@smithy/util-middleware': 3.0.10 + '@smithy/util-retry': 3.0.10 '@smithy/util-utf8': 3.0.0 + '@types/uuid': 9.0.8 tslib: 2.8.1 uuid: 9.0.1 transitivePeerDependencies: - aws-crt - '@aws-sdk/client-cognito-identity@3.658.1': + '@aws-sdk/client-cognito-identity@3.687.0': dependencies: '@aws-crypto/sha256-browser': 5.2.0 '@aws-crypto/sha256-js': 5.2.0 - '@aws-sdk/client-sso-oidc': 3.658.1(@aws-sdk/client-sts@3.658.1) - '@aws-sdk/client-sts': 3.658.1 - '@aws-sdk/core': 3.658.1 - '@aws-sdk/credential-provider-node': 3.658.1(@aws-sdk/client-sso-oidc@3.658.1(@aws-sdk/client-sts@3.658.1))(@aws-sdk/client-sts@3.658.1) - '@aws-sdk/middleware-host-header': 3.654.0 - '@aws-sdk/middleware-logger': 3.654.0 - '@aws-sdk/middleware-recursion-detection': 3.654.0 - '@aws-sdk/middleware-user-agent': 3.654.0 - '@aws-sdk/region-config-resolver': 3.654.0 - '@aws-sdk/types': 3.654.0 - '@aws-sdk/util-endpoints': 3.654.0 - '@aws-sdk/util-user-agent-browser': 3.654.0 - '@aws-sdk/util-user-agent-node': 3.654.0 - '@smithy/config-resolver': 3.0.10 - '@smithy/core': 2.5.1 - '@smithy/fetch-http-handler': 3.2.9 - '@smithy/hash-node': 3.0.8 - '@smithy/invalid-dependency': 3.0.8 - '@smithy/middleware-content-length': 3.0.10 - '@smithy/middleware-endpoint': 3.2.1 - '@smithy/middleware-retry': 3.0.25 - '@smithy/middleware-serde': 3.0.8 - '@smithy/middleware-stack': 3.0.8 - '@smithy/node-config-provider': 3.1.9 - '@smithy/node-http-handler': 3.2.5 - '@smithy/protocol-http': 4.1.5 - '@smithy/smithy-client': 3.4.2 - '@smithy/types': 3.6.0 - '@smithy/url-parser': 3.0.8 + '@aws-sdk/client-sso-oidc': 3.687.0(@aws-sdk/client-sts@3.687.0) + '@aws-sdk/client-sts': 3.687.0 + '@aws-sdk/core': 3.686.0 + '@aws-sdk/credential-provider-node': 3.687.0(@aws-sdk/client-sso-oidc@3.687.0(@aws-sdk/client-sts@3.687.0))(@aws-sdk/client-sts@3.687.0) + '@aws-sdk/middleware-host-header': 3.686.0 + '@aws-sdk/middleware-logger': 3.686.0 + '@aws-sdk/middleware-recursion-detection': 3.686.0 + '@aws-sdk/middleware-user-agent': 3.687.0 + '@aws-sdk/region-config-resolver': 3.686.0 + '@aws-sdk/types': 3.686.0 + '@aws-sdk/util-endpoints': 3.686.0 + '@aws-sdk/util-user-agent-browser': 3.686.0 + '@aws-sdk/util-user-agent-node': 3.687.0 + '@smithy/config-resolver': 3.0.12 + '@smithy/core': 2.5.3 + '@smithy/fetch-http-handler': 4.1.1 + '@smithy/hash-node': 3.0.10 + '@smithy/invalid-dependency': 3.0.10 + '@smithy/middleware-content-length': 3.0.12 + '@smithy/middleware-endpoint': 3.2.3 + '@smithy/middleware-retry': 3.0.27 + '@smithy/middleware-serde': 3.0.10 + '@smithy/middleware-stack': 3.0.10 + '@smithy/node-config-provider': 3.1.11 + '@smithy/node-http-handler': 3.3.1 + '@smithy/protocol-http': 4.1.7 + '@smithy/smithy-client': 3.4.4 + '@smithy/types': 3.7.1 + '@smithy/url-parser': 3.0.10 '@smithy/util-base64': 3.0.0 '@smithy/util-body-length-browser': 3.0.0 '@smithy/util-body-length-node': 3.0.0 - '@smithy/util-defaults-mode-browser': 3.0.25 - '@smithy/util-defaults-mode-node': 3.0.25 - '@smithy/util-endpoints': 2.1.4 - '@smithy/util-middleware': 3.0.8 - '@smithy/util-retry': 3.0.8 + '@smithy/util-defaults-mode-browser': 3.0.27 + '@smithy/util-defaults-mode-node': 3.0.27 + '@smithy/util-endpoints': 2.1.6 + '@smithy/util-middleware': 3.0.10 + '@smithy/util-retry': 3.0.10 '@smithy/util-utf8': 3.0.0 tslib: 2.8.1 transitivePeerDependencies: - aws-crt - '@aws-sdk/client-ec2@3.658.1': + '@aws-sdk/client-ec2@3.687.0': dependencies: '@aws-crypto/sha256-browser': 5.2.0 '@aws-crypto/sha256-js': 5.2.0 - '@aws-sdk/client-sso-oidc': 3.658.1(@aws-sdk/client-sts@3.658.1) - '@aws-sdk/client-sts': 3.658.1 - '@aws-sdk/core': 3.658.1 - '@aws-sdk/credential-provider-node': 3.658.1(@aws-sdk/client-sso-oidc@3.658.1(@aws-sdk/client-sts@3.658.1))(@aws-sdk/client-sts@3.658.1) - '@aws-sdk/middleware-host-header': 3.654.0 - '@aws-sdk/middleware-logger': 3.654.0 - '@aws-sdk/middleware-recursion-detection': 3.654.0 - '@aws-sdk/middleware-sdk-ec2': 3.658.1 - '@aws-sdk/middleware-user-agent': 3.654.0 - '@aws-sdk/region-config-resolver': 3.654.0 - '@aws-sdk/types': 3.654.0 - '@aws-sdk/util-endpoints': 3.654.0 - '@aws-sdk/util-user-agent-browser': 3.654.0 - '@aws-sdk/util-user-agent-node': 3.654.0 - '@smithy/config-resolver': 3.0.10 - '@smithy/core': 2.5.1 - '@smithy/fetch-http-handler': 3.2.9 - '@smithy/hash-node': 3.0.8 - '@smithy/invalid-dependency': 3.0.8 - '@smithy/middleware-content-length': 3.0.10 - '@smithy/middleware-endpoint': 3.2.1 - '@smithy/middleware-retry': 3.0.25 - '@smithy/middleware-serde': 3.0.8 - '@smithy/middleware-stack': 3.0.8 - '@smithy/node-config-provider': 3.1.9 - '@smithy/node-http-handler': 3.2.5 - '@smithy/protocol-http': 4.1.5 - '@smithy/smithy-client': 3.4.2 - '@smithy/types': 3.6.0 - '@smithy/url-parser': 3.0.8 + '@aws-sdk/client-sso-oidc': 3.687.0(@aws-sdk/client-sts@3.687.0) + '@aws-sdk/client-sts': 3.687.0 + '@aws-sdk/core': 3.686.0 + '@aws-sdk/credential-provider-node': 3.687.0(@aws-sdk/client-sso-oidc@3.687.0(@aws-sdk/client-sts@3.687.0))(@aws-sdk/client-sts@3.687.0) + '@aws-sdk/middleware-host-header': 3.686.0 + '@aws-sdk/middleware-logger': 3.686.0 + '@aws-sdk/middleware-recursion-detection': 3.686.0 + '@aws-sdk/middleware-sdk-ec2': 3.686.0 + '@aws-sdk/middleware-user-agent': 3.687.0 + '@aws-sdk/region-config-resolver': 3.686.0 + '@aws-sdk/types': 3.686.0 + '@aws-sdk/util-endpoints': 3.686.0 + '@aws-sdk/util-user-agent-browser': 3.686.0 + '@aws-sdk/util-user-agent-node': 3.687.0 + '@smithy/config-resolver': 3.0.12 + '@smithy/core': 2.5.3 + '@smithy/fetch-http-handler': 4.1.1 + '@smithy/hash-node': 3.0.10 + '@smithy/invalid-dependency': 3.0.10 + '@smithy/middleware-content-length': 3.0.12 + '@smithy/middleware-endpoint': 3.2.3 + '@smithy/middleware-retry': 3.0.27 + '@smithy/middleware-serde': 3.0.10 + '@smithy/middleware-stack': 3.0.10 + '@smithy/node-config-provider': 3.1.11 + '@smithy/node-http-handler': 3.3.1 + '@smithy/protocol-http': 4.1.7 + '@smithy/smithy-client': 3.4.4 + '@smithy/types': 3.7.1 + '@smithy/url-parser': 3.0.10 '@smithy/util-base64': 3.0.0 '@smithy/util-body-length-browser': 3.0.0 '@smithy/util-body-length-node': 3.0.0 - '@smithy/util-defaults-mode-browser': 3.0.25 - '@smithy/util-defaults-mode-node': 3.0.25 - '@smithy/util-endpoints': 2.1.4 - '@smithy/util-middleware': 3.0.8 - '@smithy/util-retry': 3.0.8 + '@smithy/util-defaults-mode-browser': 3.0.27 + '@smithy/util-defaults-mode-node': 3.0.27 + '@smithy/util-endpoints': 2.1.6 + '@smithy/util-middleware': 3.0.10 + '@smithy/util-retry': 3.0.10 '@smithy/util-utf8': 3.0.0 - '@smithy/util-waiter': 3.1.7 + '@smithy/util-waiter': 3.1.9 + '@types/uuid': 9.0.8 tslib: 2.8.1 uuid: 9.0.1 transitivePeerDependencies: - aws-crt - '@aws-sdk/client-ecr@3.658.1': + '@aws-sdk/client-ecr@3.687.0': dependencies: '@aws-crypto/sha256-browser': 5.2.0 '@aws-crypto/sha256-js': 5.2.0 - '@aws-sdk/client-sso-oidc': 3.658.1(@aws-sdk/client-sts@3.658.1) - '@aws-sdk/client-sts': 3.658.1 - '@aws-sdk/core': 3.658.1 - '@aws-sdk/credential-provider-node': 3.658.1(@aws-sdk/client-sso-oidc@3.658.1(@aws-sdk/client-sts@3.658.1))(@aws-sdk/client-sts@3.658.1) - '@aws-sdk/middleware-host-header': 3.654.0 - '@aws-sdk/middleware-logger': 3.654.0 - '@aws-sdk/middleware-recursion-detection': 3.654.0 - '@aws-sdk/middleware-user-agent': 3.654.0 - '@aws-sdk/region-config-resolver': 3.654.0 - '@aws-sdk/types': 3.654.0 - '@aws-sdk/util-endpoints': 3.654.0 - '@aws-sdk/util-user-agent-browser': 3.654.0 - '@aws-sdk/util-user-agent-node': 3.654.0 - '@smithy/config-resolver': 3.0.10 - '@smithy/core': 2.5.1 - '@smithy/fetch-http-handler': 3.2.9 - '@smithy/hash-node': 3.0.8 - '@smithy/invalid-dependency': 3.0.8 - '@smithy/middleware-content-length': 3.0.10 - '@smithy/middleware-endpoint': 3.2.1 - '@smithy/middleware-retry': 3.0.25 - '@smithy/middleware-serde': 3.0.8 - '@smithy/middleware-stack': 3.0.8 - '@smithy/node-config-provider': 3.1.9 - '@smithy/node-http-handler': 3.2.5 - '@smithy/protocol-http': 4.1.5 - '@smithy/smithy-client': 3.4.2 - '@smithy/types': 3.6.0 - '@smithy/url-parser': 3.0.8 + '@aws-sdk/client-sso-oidc': 3.687.0(@aws-sdk/client-sts@3.687.0) + '@aws-sdk/client-sts': 3.687.0 + '@aws-sdk/core': 3.686.0 + '@aws-sdk/credential-provider-node': 3.687.0(@aws-sdk/client-sso-oidc@3.687.0(@aws-sdk/client-sts@3.687.0))(@aws-sdk/client-sts@3.687.0) + '@aws-sdk/middleware-host-header': 3.686.0 + '@aws-sdk/middleware-logger': 3.686.0 + '@aws-sdk/middleware-recursion-detection': 3.686.0 + '@aws-sdk/middleware-user-agent': 3.687.0 + '@aws-sdk/region-config-resolver': 3.686.0 + '@aws-sdk/types': 3.686.0 + '@aws-sdk/util-endpoints': 3.686.0 + '@aws-sdk/util-user-agent-browser': 3.686.0 + '@aws-sdk/util-user-agent-node': 3.687.0 + '@smithy/config-resolver': 3.0.12 + '@smithy/core': 2.5.3 + '@smithy/fetch-http-handler': 4.1.1 + '@smithy/hash-node': 3.0.10 + '@smithy/invalid-dependency': 3.0.10 + '@smithy/middleware-content-length': 3.0.12 + '@smithy/middleware-endpoint': 3.2.3 + '@smithy/middleware-retry': 3.0.27 + '@smithy/middleware-serde': 3.0.10 + '@smithy/middleware-stack': 3.0.10 + '@smithy/node-config-provider': 3.1.11 + '@smithy/node-http-handler': 3.3.1 + '@smithy/protocol-http': 4.1.7 + '@smithy/smithy-client': 3.4.4 + '@smithy/types': 3.7.1 + '@smithy/url-parser': 3.0.10 '@smithy/util-base64': 3.0.0 '@smithy/util-body-length-browser': 3.0.0 '@smithy/util-body-length-node': 3.0.0 - '@smithy/util-defaults-mode-browser': 3.0.25 - '@smithy/util-defaults-mode-node': 3.0.25 - '@smithy/util-endpoints': 2.1.4 - '@smithy/util-middleware': 3.0.8 - '@smithy/util-retry': 3.0.8 + '@smithy/util-defaults-mode-browser': 3.0.27 + '@smithy/util-defaults-mode-node': 3.0.27 + '@smithy/util-endpoints': 2.1.6 + '@smithy/util-middleware': 3.0.10 + '@smithy/util-retry': 3.0.10 '@smithy/util-utf8': 3.0.0 - '@smithy/util-waiter': 3.1.7 + '@smithy/util-waiter': 3.1.9 tslib: 2.8.1 transitivePeerDependencies: - aws-crt - '@aws-sdk/client-rds@3.658.1': + '@aws-sdk/client-rds@3.687.0': dependencies: '@aws-crypto/sha256-browser': 5.2.0 '@aws-crypto/sha256-js': 5.2.0 - '@aws-sdk/client-sso-oidc': 3.658.1(@aws-sdk/client-sts@3.658.1) - '@aws-sdk/client-sts': 3.658.1 - '@aws-sdk/core': 3.658.1 - '@aws-sdk/credential-provider-node': 3.658.1(@aws-sdk/client-sso-oidc@3.658.1(@aws-sdk/client-sts@3.658.1))(@aws-sdk/client-sts@3.658.1) - '@aws-sdk/middleware-host-header': 3.654.0 - '@aws-sdk/middleware-logger': 3.654.0 - '@aws-sdk/middleware-recursion-detection': 3.654.0 - '@aws-sdk/middleware-sdk-rds': 3.658.1 - '@aws-sdk/middleware-user-agent': 3.654.0 - '@aws-sdk/region-config-resolver': 3.654.0 - '@aws-sdk/types': 3.654.0 - '@aws-sdk/util-endpoints': 3.654.0 - '@aws-sdk/util-user-agent-browser': 3.654.0 - '@aws-sdk/util-user-agent-node': 3.654.0 - '@smithy/config-resolver': 3.0.10 - '@smithy/core': 2.5.1 - '@smithy/fetch-http-handler': 3.2.9 - '@smithy/hash-node': 3.0.8 - '@smithy/invalid-dependency': 3.0.8 - '@smithy/middleware-content-length': 3.0.10 - '@smithy/middleware-endpoint': 3.2.1 - '@smithy/middleware-retry': 3.0.25 - '@smithy/middleware-serde': 3.0.8 - '@smithy/middleware-stack': 3.0.8 - '@smithy/node-config-provider': 3.1.9 - '@smithy/node-http-handler': 3.2.5 - '@smithy/protocol-http': 4.1.5 - '@smithy/smithy-client': 3.4.2 - '@smithy/types': 3.6.0 - '@smithy/url-parser': 3.0.8 + '@aws-sdk/client-sso-oidc': 3.687.0(@aws-sdk/client-sts@3.687.0) + '@aws-sdk/client-sts': 3.687.0 + '@aws-sdk/core': 3.686.0 + '@aws-sdk/credential-provider-node': 3.687.0(@aws-sdk/client-sso-oidc@3.687.0(@aws-sdk/client-sts@3.687.0))(@aws-sdk/client-sts@3.687.0) + '@aws-sdk/middleware-host-header': 3.686.0 + '@aws-sdk/middleware-logger': 3.686.0 + '@aws-sdk/middleware-recursion-detection': 3.686.0 + '@aws-sdk/middleware-sdk-rds': 3.686.0 + '@aws-sdk/middleware-user-agent': 3.687.0 + '@aws-sdk/region-config-resolver': 3.686.0 + '@aws-sdk/types': 3.686.0 + '@aws-sdk/util-endpoints': 3.686.0 + '@aws-sdk/util-user-agent-browser': 3.686.0 + '@aws-sdk/util-user-agent-node': 3.687.0 + '@smithy/config-resolver': 3.0.12 + '@smithy/core': 2.5.3 + '@smithy/fetch-http-handler': 4.1.1 + '@smithy/hash-node': 3.0.10 + '@smithy/invalid-dependency': 3.0.10 + '@smithy/middleware-content-length': 3.0.12 + '@smithy/middleware-endpoint': 3.2.3 + '@smithy/middleware-retry': 3.0.27 + '@smithy/middleware-serde': 3.0.10 + '@smithy/middleware-stack': 3.0.10 + '@smithy/node-config-provider': 3.1.11 + '@smithy/node-http-handler': 3.3.1 + '@smithy/protocol-http': 4.1.7 + '@smithy/smithy-client': 3.4.4 + '@smithy/types': 3.7.1 + '@smithy/url-parser': 3.0.10 '@smithy/util-base64': 3.0.0 '@smithy/util-body-length-browser': 3.0.0 '@smithy/util-body-length-node': 3.0.0 - '@smithy/util-defaults-mode-browser': 3.0.25 - '@smithy/util-defaults-mode-node': 3.0.25 - '@smithy/util-endpoints': 2.1.4 - '@smithy/util-middleware': 3.0.8 - '@smithy/util-retry': 3.0.8 + '@smithy/util-defaults-mode-browser': 3.0.27 + '@smithy/util-defaults-mode-node': 3.0.27 + '@smithy/util-endpoints': 2.1.6 + '@smithy/util-middleware': 3.0.10 + '@smithy/util-retry': 3.0.10 '@smithy/util-utf8': 3.0.0 - '@smithy/util-waiter': 3.1.7 + '@smithy/util-waiter': 3.1.9 tslib: 2.8.1 transitivePeerDependencies: - aws-crt - '@aws-sdk/client-s3@3.658.1': + '@aws-sdk/client-s3@3.689.0': dependencies: '@aws-crypto/sha1-browser': 5.2.0 '@aws-crypto/sha256-browser': 5.2.0 '@aws-crypto/sha256-js': 5.2.0 - '@aws-sdk/client-sso-oidc': 3.658.1(@aws-sdk/client-sts@3.658.1) - '@aws-sdk/client-sts': 3.658.1 - '@aws-sdk/core': 3.658.1 - '@aws-sdk/credential-provider-node': 3.658.1(@aws-sdk/client-sso-oidc@3.658.1(@aws-sdk/client-sts@3.658.1))(@aws-sdk/client-sts@3.658.1) - '@aws-sdk/middleware-bucket-endpoint': 3.654.0 - '@aws-sdk/middleware-expect-continue': 3.654.0 - '@aws-sdk/middleware-flexible-checksums': 3.658.1 - '@aws-sdk/middleware-host-header': 3.654.0 - '@aws-sdk/middleware-location-constraint': 3.654.0 - '@aws-sdk/middleware-logger': 3.654.0 - '@aws-sdk/middleware-recursion-detection': 3.654.0 - '@aws-sdk/middleware-sdk-s3': 3.658.1 - '@aws-sdk/middleware-ssec': 3.654.0 - '@aws-sdk/middleware-user-agent': 3.654.0 - '@aws-sdk/region-config-resolver': 3.654.0 - '@aws-sdk/signature-v4-multi-region': 3.658.1 - '@aws-sdk/types': 3.654.0 - '@aws-sdk/util-endpoints': 3.654.0 - '@aws-sdk/util-user-agent-browser': 3.654.0 - '@aws-sdk/util-user-agent-node': 3.654.0 - '@aws-sdk/xml-builder': 3.654.0 - '@smithy/config-resolver': 3.0.10 - '@smithy/core': 2.5.1 - '@smithy/eventstream-serde-browser': 3.0.11 - '@smithy/eventstream-serde-config-resolver': 3.0.8 - '@smithy/eventstream-serde-node': 3.0.10 - '@smithy/fetch-http-handler': 3.2.9 - '@smithy/hash-blob-browser': 3.1.7 - '@smithy/hash-node': 3.0.8 - '@smithy/hash-stream-node': 3.1.7 - '@smithy/invalid-dependency': 3.0.8 - '@smithy/md5-js': 3.0.8 - '@smithy/middleware-content-length': 3.0.10 - '@smithy/middleware-endpoint': 3.2.1 - '@smithy/middleware-retry': 3.0.25 - '@smithy/middleware-serde': 3.0.8 - '@smithy/middleware-stack': 3.0.8 - '@smithy/node-config-provider': 3.1.9 - '@smithy/node-http-handler': 3.2.5 - '@smithy/protocol-http': 4.1.5 - '@smithy/smithy-client': 3.4.2 - '@smithy/types': 3.6.0 - '@smithy/url-parser': 3.0.8 + '@aws-sdk/client-sso-oidc': 3.687.0(@aws-sdk/client-sts@3.687.0) + '@aws-sdk/client-sts': 3.687.0 + '@aws-sdk/core': 3.686.0 + '@aws-sdk/credential-provider-node': 3.687.0(@aws-sdk/client-sso-oidc@3.687.0(@aws-sdk/client-sts@3.687.0))(@aws-sdk/client-sts@3.687.0) + '@aws-sdk/middleware-bucket-endpoint': 3.686.0 + '@aws-sdk/middleware-expect-continue': 3.686.0 + '@aws-sdk/middleware-flexible-checksums': 3.689.0 + '@aws-sdk/middleware-host-header': 3.686.0 + '@aws-sdk/middleware-location-constraint': 3.686.0 + '@aws-sdk/middleware-logger': 3.686.0 + '@aws-sdk/middleware-recursion-detection': 3.686.0 + '@aws-sdk/middleware-sdk-s3': 3.687.0 + '@aws-sdk/middleware-ssec': 3.686.0 + '@aws-sdk/middleware-user-agent': 3.687.0 + '@aws-sdk/region-config-resolver': 3.686.0 + '@aws-sdk/signature-v4-multi-region': 3.687.0 + '@aws-sdk/types': 3.686.0 + '@aws-sdk/util-endpoints': 3.686.0 + '@aws-sdk/util-user-agent-browser': 3.686.0 + '@aws-sdk/util-user-agent-node': 3.687.0 + '@aws-sdk/xml-builder': 3.686.0 + '@smithy/config-resolver': 3.0.12 + '@smithy/core': 2.5.3 + '@smithy/eventstream-serde-browser': 3.0.13 + '@smithy/eventstream-serde-config-resolver': 3.0.10 + '@smithy/eventstream-serde-node': 3.0.12 + '@smithy/fetch-http-handler': 4.1.1 + '@smithy/hash-blob-browser': 3.1.9 + '@smithy/hash-node': 3.0.10 + '@smithy/hash-stream-node': 3.1.9 + '@smithy/invalid-dependency': 3.0.10 + '@smithy/md5-js': 3.0.10 + '@smithy/middleware-content-length': 3.0.12 + '@smithy/middleware-endpoint': 3.2.3 + '@smithy/middleware-retry': 3.0.27 + '@smithy/middleware-serde': 3.0.10 + '@smithy/middleware-stack': 3.0.10 + '@smithy/node-config-provider': 3.1.11 + '@smithy/node-http-handler': 3.3.1 + '@smithy/protocol-http': 4.1.7 + '@smithy/smithy-client': 3.4.4 + '@smithy/types': 3.7.1 + '@smithy/url-parser': 3.0.10 '@smithy/util-base64': 3.0.0 '@smithy/util-body-length-browser': 3.0.0 '@smithy/util-body-length-node': 3.0.0 - '@smithy/util-defaults-mode-browser': 3.0.25 - '@smithy/util-defaults-mode-node': 3.0.25 - '@smithy/util-endpoints': 2.1.4 - '@smithy/util-middleware': 3.0.8 - '@smithy/util-retry': 3.0.8 - '@smithy/util-stream': 3.2.1 + '@smithy/util-defaults-mode-browser': 3.0.27 + '@smithy/util-defaults-mode-node': 3.0.27 + '@smithy/util-endpoints': 2.1.6 + '@smithy/util-middleware': 3.0.10 + '@smithy/util-retry': 3.0.10 + '@smithy/util-stream': 3.3.1 '@smithy/util-utf8': 3.0.0 - '@smithy/util-waiter': 3.1.7 + '@smithy/util-waiter': 3.1.9 tslib: 2.8.1 transitivePeerDependencies: - aws-crt - '@aws-sdk/client-sso-oidc@3.658.1(@aws-sdk/client-sts@3.658.1)': + '@aws-sdk/client-sso-oidc@3.687.0(@aws-sdk/client-sts@3.687.0)': dependencies: '@aws-crypto/sha256-browser': 5.2.0 '@aws-crypto/sha256-js': 5.2.0 - '@aws-sdk/client-sts': 3.658.1 - '@aws-sdk/core': 3.658.1 - '@aws-sdk/credential-provider-node': 3.658.1(@aws-sdk/client-sso-oidc@3.658.1(@aws-sdk/client-sts@3.658.1))(@aws-sdk/client-sts@3.658.1) - '@aws-sdk/middleware-host-header': 3.654.0 - '@aws-sdk/middleware-logger': 3.654.0 - '@aws-sdk/middleware-recursion-detection': 3.654.0 - '@aws-sdk/middleware-user-agent': 3.654.0 - '@aws-sdk/region-config-resolver': 3.654.0 - '@aws-sdk/types': 3.654.0 - '@aws-sdk/util-endpoints': 3.654.0 - '@aws-sdk/util-user-agent-browser': 3.654.0 - '@aws-sdk/util-user-agent-node': 3.654.0 - '@smithy/config-resolver': 3.0.10 - '@smithy/core': 2.5.1 - '@smithy/fetch-http-handler': 3.2.9 - '@smithy/hash-node': 3.0.8 - '@smithy/invalid-dependency': 3.0.8 - '@smithy/middleware-content-length': 3.0.10 - '@smithy/middleware-endpoint': 3.2.1 - '@smithy/middleware-retry': 3.0.25 - '@smithy/middleware-serde': 3.0.8 - '@smithy/middleware-stack': 3.0.8 - '@smithy/node-config-provider': 3.1.9 - '@smithy/node-http-handler': 3.2.5 - '@smithy/protocol-http': 4.1.5 - '@smithy/smithy-client': 3.4.2 - '@smithy/types': 3.6.0 - '@smithy/url-parser': 3.0.8 + '@aws-sdk/client-sts': 3.687.0 + '@aws-sdk/core': 3.686.0 + '@aws-sdk/credential-provider-node': 3.687.0(@aws-sdk/client-sso-oidc@3.687.0(@aws-sdk/client-sts@3.687.0))(@aws-sdk/client-sts@3.687.0) + '@aws-sdk/middleware-host-header': 3.686.0 + '@aws-sdk/middleware-logger': 3.686.0 + '@aws-sdk/middleware-recursion-detection': 3.686.0 + '@aws-sdk/middleware-user-agent': 3.687.0 + '@aws-sdk/region-config-resolver': 3.686.0 + '@aws-sdk/types': 3.686.0 + '@aws-sdk/util-endpoints': 3.686.0 + '@aws-sdk/util-user-agent-browser': 3.686.0 + '@aws-sdk/util-user-agent-node': 3.687.0 + '@smithy/config-resolver': 3.0.12 + '@smithy/core': 2.5.3 + '@smithy/fetch-http-handler': 4.1.1 + '@smithy/hash-node': 3.0.10 + '@smithy/invalid-dependency': 3.0.10 + '@smithy/middleware-content-length': 3.0.12 + '@smithy/middleware-endpoint': 3.2.3 + '@smithy/middleware-retry': 3.0.27 + '@smithy/middleware-serde': 3.0.10 + '@smithy/middleware-stack': 3.0.10 + '@smithy/node-config-provider': 3.1.11 + '@smithy/node-http-handler': 3.3.1 + '@smithy/protocol-http': 4.1.7 + '@smithy/smithy-client': 3.4.4 + '@smithy/types': 3.7.1 + '@smithy/url-parser': 3.0.10 '@smithy/util-base64': 3.0.0 '@smithy/util-body-length-browser': 3.0.0 '@smithy/util-body-length-node': 3.0.0 - '@smithy/util-defaults-mode-browser': 3.0.25 - '@smithy/util-defaults-mode-node': 3.0.25 - '@smithy/util-endpoints': 2.1.4 - '@smithy/util-middleware': 3.0.8 - '@smithy/util-retry': 3.0.8 + '@smithy/util-defaults-mode-browser': 3.0.27 + '@smithy/util-defaults-mode-node': 3.0.27 + '@smithy/util-endpoints': 2.1.6 + '@smithy/util-middleware': 3.0.10 + '@smithy/util-retry': 3.0.10 '@smithy/util-utf8': 3.0.0 tslib: 2.8.1 transitivePeerDependencies: - aws-crt - '@aws-sdk/client-sso@3.658.1': + '@aws-sdk/client-sso@3.687.0': dependencies: '@aws-crypto/sha256-browser': 5.2.0 '@aws-crypto/sha256-js': 5.2.0 - '@aws-sdk/core': 3.658.1 - '@aws-sdk/middleware-host-header': 3.654.0 - '@aws-sdk/middleware-logger': 3.654.0 - '@aws-sdk/middleware-recursion-detection': 3.654.0 - '@aws-sdk/middleware-user-agent': 3.654.0 - '@aws-sdk/region-config-resolver': 3.654.0 - '@aws-sdk/types': 3.654.0 - '@aws-sdk/util-endpoints': 3.654.0 - '@aws-sdk/util-user-agent-browser': 3.654.0 - '@aws-sdk/util-user-agent-node': 3.654.0 - '@smithy/config-resolver': 3.0.10 - '@smithy/core': 2.5.1 - '@smithy/fetch-http-handler': 3.2.9 - '@smithy/hash-node': 3.0.8 - '@smithy/invalid-dependency': 3.0.8 - '@smithy/middleware-content-length': 3.0.10 - '@smithy/middleware-endpoint': 3.2.1 - '@smithy/middleware-retry': 3.0.25 - '@smithy/middleware-serde': 3.0.8 - '@smithy/middleware-stack': 3.0.8 - '@smithy/node-config-provider': 3.1.9 - '@smithy/node-http-handler': 3.2.5 - '@smithy/protocol-http': 4.1.5 - '@smithy/smithy-client': 3.4.2 - '@smithy/types': 3.6.0 - '@smithy/url-parser': 3.0.8 + '@aws-sdk/core': 3.686.0 + '@aws-sdk/middleware-host-header': 3.686.0 + '@aws-sdk/middleware-logger': 3.686.0 + '@aws-sdk/middleware-recursion-detection': 3.686.0 + '@aws-sdk/middleware-user-agent': 3.687.0 + '@aws-sdk/region-config-resolver': 3.686.0 + '@aws-sdk/types': 3.686.0 + '@aws-sdk/util-endpoints': 3.686.0 + '@aws-sdk/util-user-agent-browser': 3.686.0 + '@aws-sdk/util-user-agent-node': 3.687.0 + '@smithy/config-resolver': 3.0.12 + '@smithy/core': 2.5.3 + '@smithy/fetch-http-handler': 4.1.1 + '@smithy/hash-node': 3.0.10 + '@smithy/invalid-dependency': 3.0.10 + '@smithy/middleware-content-length': 3.0.12 + '@smithy/middleware-endpoint': 3.2.3 + '@smithy/middleware-retry': 3.0.27 + '@smithy/middleware-serde': 3.0.10 + '@smithy/middleware-stack': 3.0.10 + '@smithy/node-config-provider': 3.1.11 + '@smithy/node-http-handler': 3.3.1 + '@smithy/protocol-http': 4.1.7 + '@smithy/smithy-client': 3.4.4 + '@smithy/types': 3.7.1 + '@smithy/url-parser': 3.0.10 '@smithy/util-base64': 3.0.0 '@smithy/util-body-length-browser': 3.0.0 '@smithy/util-body-length-node': 3.0.0 - '@smithy/util-defaults-mode-browser': 3.0.25 - '@smithy/util-defaults-mode-node': 3.0.25 - '@smithy/util-endpoints': 2.1.4 - '@smithy/util-middleware': 3.0.8 - '@smithy/util-retry': 3.0.8 + '@smithy/util-defaults-mode-browser': 3.0.27 + '@smithy/util-defaults-mode-node': 3.0.27 + '@smithy/util-endpoints': 2.1.6 + '@smithy/util-middleware': 3.0.10 + '@smithy/util-retry': 3.0.10 '@smithy/util-utf8': 3.0.0 tslib: 2.8.1 transitivePeerDependencies: - aws-crt - '@aws-sdk/client-sts@3.658.1': + '@aws-sdk/client-sts@3.687.0': dependencies: '@aws-crypto/sha256-browser': 5.2.0 '@aws-crypto/sha256-js': 5.2.0 - '@aws-sdk/client-sso-oidc': 3.658.1(@aws-sdk/client-sts@3.658.1) - '@aws-sdk/core': 3.658.1 - '@aws-sdk/credential-provider-node': 3.658.1(@aws-sdk/client-sso-oidc@3.658.1(@aws-sdk/client-sts@3.658.1))(@aws-sdk/client-sts@3.658.1) - '@aws-sdk/middleware-host-header': 3.654.0 - '@aws-sdk/middleware-logger': 3.654.0 - '@aws-sdk/middleware-recursion-detection': 3.654.0 - '@aws-sdk/middleware-user-agent': 3.654.0 - '@aws-sdk/region-config-resolver': 3.654.0 - '@aws-sdk/types': 3.654.0 - '@aws-sdk/util-endpoints': 3.654.0 - '@aws-sdk/util-user-agent-browser': 3.654.0 - '@aws-sdk/util-user-agent-node': 3.654.0 - '@smithy/config-resolver': 3.0.10 - '@smithy/core': 2.5.1 - '@smithy/fetch-http-handler': 3.2.9 - '@smithy/hash-node': 3.0.8 - '@smithy/invalid-dependency': 3.0.8 - '@smithy/middleware-content-length': 3.0.10 - '@smithy/middleware-endpoint': 3.2.1 - '@smithy/middleware-retry': 3.0.25 - '@smithy/middleware-serde': 3.0.8 - '@smithy/middleware-stack': 3.0.8 - '@smithy/node-config-provider': 3.1.9 - '@smithy/node-http-handler': 3.2.5 - '@smithy/protocol-http': 4.1.5 - '@smithy/smithy-client': 3.4.2 - '@smithy/types': 3.6.0 - '@smithy/url-parser': 3.0.8 + '@aws-sdk/client-sso-oidc': 3.687.0(@aws-sdk/client-sts@3.687.0) + '@aws-sdk/core': 3.686.0 + '@aws-sdk/credential-provider-node': 3.687.0(@aws-sdk/client-sso-oidc@3.687.0(@aws-sdk/client-sts@3.687.0))(@aws-sdk/client-sts@3.687.0) + '@aws-sdk/middleware-host-header': 3.686.0 + '@aws-sdk/middleware-logger': 3.686.0 + '@aws-sdk/middleware-recursion-detection': 3.686.0 + '@aws-sdk/middleware-user-agent': 3.687.0 + '@aws-sdk/region-config-resolver': 3.686.0 + '@aws-sdk/types': 3.686.0 + '@aws-sdk/util-endpoints': 3.686.0 + '@aws-sdk/util-user-agent-browser': 3.686.0 + '@aws-sdk/util-user-agent-node': 3.687.0 + '@smithy/config-resolver': 3.0.12 + '@smithy/core': 2.5.3 + '@smithy/fetch-http-handler': 4.1.1 + '@smithy/hash-node': 3.0.10 + '@smithy/invalid-dependency': 3.0.10 + '@smithy/middleware-content-length': 3.0.12 + '@smithy/middleware-endpoint': 3.2.3 + '@smithy/middleware-retry': 3.0.27 + '@smithy/middleware-serde': 3.0.10 + '@smithy/middleware-stack': 3.0.10 + '@smithy/node-config-provider': 3.1.11 + '@smithy/node-http-handler': 3.3.1 + '@smithy/protocol-http': 4.1.7 + '@smithy/smithy-client': 3.4.4 + '@smithy/types': 3.7.1 + '@smithy/url-parser': 3.0.10 '@smithy/util-base64': 3.0.0 '@smithy/util-body-length-browser': 3.0.0 '@smithy/util-body-length-node': 3.0.0 - '@smithy/util-defaults-mode-browser': 3.0.25 - '@smithy/util-defaults-mode-node': 3.0.25 - '@smithy/util-endpoints': 2.1.4 - '@smithy/util-middleware': 3.0.8 - '@smithy/util-retry': 3.0.8 + '@smithy/util-defaults-mode-browser': 3.0.27 + '@smithy/util-defaults-mode-node': 3.0.27 + '@smithy/util-endpoints': 2.1.6 + '@smithy/util-middleware': 3.0.10 + '@smithy/util-retry': 3.0.10 '@smithy/util-utf8': 3.0.0 tslib: 2.8.1 transitivePeerDependencies: - aws-crt - '@aws-sdk/core@3.658.1': - dependencies: - '@smithy/core': 2.5.1 - '@smithy/node-config-provider': 3.1.9 - '@smithy/property-provider': 3.1.8 - '@smithy/protocol-http': 4.1.5 - '@smithy/signature-v4': 4.2.1 - '@smithy/smithy-client': 3.4.2 - '@smithy/types': 3.6.0 - '@smithy/util-middleware': 3.0.8 + '@aws-sdk/core@3.686.0': + dependencies: + '@aws-sdk/types': 3.686.0 + '@smithy/core': 2.5.3 + '@smithy/node-config-provider': 3.1.11 + '@smithy/property-provider': 3.1.10 + '@smithy/protocol-http': 4.1.7 + '@smithy/signature-v4': 4.2.3 + '@smithy/smithy-client': 3.4.4 + '@smithy/types': 3.7.1 + '@smithy/util-middleware': 3.0.10 fast-xml-parser: 4.4.1 tslib: 2.8.1 - '@aws-sdk/credential-provider-cognito-identity@3.658.1': + '@aws-sdk/credential-provider-cognito-identity@3.687.0': dependencies: - '@aws-sdk/client-cognito-identity': 3.658.1 - '@aws-sdk/types': 3.654.0 - '@smithy/property-provider': 3.1.8 - '@smithy/types': 3.6.0 + '@aws-sdk/client-cognito-identity': 3.687.0 + '@aws-sdk/types': 3.686.0 + '@smithy/property-provider': 3.1.10 + '@smithy/types': 3.7.1 tslib: 2.8.1 transitivePeerDependencies: - aws-crt - '@aws-sdk/credential-provider-env@3.654.0': + '@aws-sdk/credential-provider-env@3.686.0': dependencies: - '@aws-sdk/types': 3.654.0 - '@smithy/property-provider': 3.1.8 - '@smithy/types': 3.6.0 + '@aws-sdk/core': 3.686.0 + '@aws-sdk/types': 3.686.0 + '@smithy/property-provider': 3.1.10 + '@smithy/types': 3.7.1 tslib: 2.8.1 - '@aws-sdk/credential-provider-http@3.658.1': - dependencies: - '@aws-sdk/types': 3.654.0 - '@smithy/fetch-http-handler': 3.2.9 - '@smithy/node-http-handler': 3.2.5 - '@smithy/property-provider': 3.1.8 - '@smithy/protocol-http': 4.1.5 - '@smithy/smithy-client': 3.4.2 - '@smithy/types': 3.6.0 - '@smithy/util-stream': 3.2.1 + '@aws-sdk/credential-provider-http@3.686.0': + dependencies: + '@aws-sdk/core': 3.686.0 + '@aws-sdk/types': 3.686.0 + '@smithy/fetch-http-handler': 4.1.1 + '@smithy/node-http-handler': 3.3.1 + '@smithy/property-provider': 3.1.10 + '@smithy/protocol-http': 4.1.7 + '@smithy/smithy-client': 3.4.4 + '@smithy/types': 3.7.1 + '@smithy/util-stream': 3.3.1 tslib: 2.8.1 - '@aws-sdk/credential-provider-ini@3.658.1(@aws-sdk/client-sso-oidc@3.658.1(@aws-sdk/client-sts@3.658.1))(@aws-sdk/client-sts@3.658.1)': - dependencies: - '@aws-sdk/client-sts': 3.658.1 - '@aws-sdk/credential-provider-env': 3.654.0 - '@aws-sdk/credential-provider-http': 3.658.1 - '@aws-sdk/credential-provider-process': 3.654.0 - '@aws-sdk/credential-provider-sso': 3.658.1(@aws-sdk/client-sso-oidc@3.658.1(@aws-sdk/client-sts@3.658.1)) - '@aws-sdk/credential-provider-web-identity': 3.654.0(@aws-sdk/client-sts@3.658.1) - '@aws-sdk/types': 3.654.0 - '@smithy/credential-provider-imds': 3.2.5 - '@smithy/property-provider': 3.1.8 - '@smithy/shared-ini-file-loader': 3.1.9 - '@smithy/types': 3.6.0 + '@aws-sdk/credential-provider-ini@3.687.0(@aws-sdk/client-sso-oidc@3.687.0(@aws-sdk/client-sts@3.687.0))(@aws-sdk/client-sts@3.687.0)': + dependencies: + '@aws-sdk/client-sts': 3.687.0 + '@aws-sdk/core': 3.686.0 + '@aws-sdk/credential-provider-env': 3.686.0 + '@aws-sdk/credential-provider-http': 3.686.0 + '@aws-sdk/credential-provider-process': 3.686.0 + '@aws-sdk/credential-provider-sso': 3.687.0(@aws-sdk/client-sso-oidc@3.687.0(@aws-sdk/client-sts@3.687.0)) + '@aws-sdk/credential-provider-web-identity': 3.686.0(@aws-sdk/client-sts@3.687.0) + '@aws-sdk/types': 3.686.0 + '@smithy/credential-provider-imds': 3.2.7 + '@smithy/property-provider': 3.1.10 + '@smithy/shared-ini-file-loader': 3.1.11 + '@smithy/types': 3.7.1 tslib: 2.8.1 transitivePeerDependencies: - '@aws-sdk/client-sso-oidc' - aws-crt - '@aws-sdk/credential-provider-node@3.658.1(@aws-sdk/client-sso-oidc@3.658.1(@aws-sdk/client-sts@3.658.1))(@aws-sdk/client-sts@3.658.1)': - dependencies: - '@aws-sdk/credential-provider-env': 3.654.0 - '@aws-sdk/credential-provider-http': 3.658.1 - '@aws-sdk/credential-provider-ini': 3.658.1(@aws-sdk/client-sso-oidc@3.658.1(@aws-sdk/client-sts@3.658.1))(@aws-sdk/client-sts@3.658.1) - '@aws-sdk/credential-provider-process': 3.654.0 - '@aws-sdk/credential-provider-sso': 3.658.1(@aws-sdk/client-sso-oidc@3.658.1(@aws-sdk/client-sts@3.658.1)) - '@aws-sdk/credential-provider-web-identity': 3.654.0(@aws-sdk/client-sts@3.658.1) - '@aws-sdk/types': 3.654.0 - '@smithy/credential-provider-imds': 3.2.5 - '@smithy/property-provider': 3.1.8 - '@smithy/shared-ini-file-loader': 3.1.9 - '@smithy/types': 3.6.0 + '@aws-sdk/credential-provider-node@3.687.0(@aws-sdk/client-sso-oidc@3.687.0(@aws-sdk/client-sts@3.687.0))(@aws-sdk/client-sts@3.687.0)': + dependencies: + '@aws-sdk/credential-provider-env': 3.686.0 + '@aws-sdk/credential-provider-http': 3.686.0 + '@aws-sdk/credential-provider-ini': 3.687.0(@aws-sdk/client-sso-oidc@3.687.0(@aws-sdk/client-sts@3.687.0))(@aws-sdk/client-sts@3.687.0) + '@aws-sdk/credential-provider-process': 3.686.0 + '@aws-sdk/credential-provider-sso': 3.687.0(@aws-sdk/client-sso-oidc@3.687.0(@aws-sdk/client-sts@3.687.0)) + '@aws-sdk/credential-provider-web-identity': 3.686.0(@aws-sdk/client-sts@3.687.0) + '@aws-sdk/types': 3.686.0 + '@smithy/credential-provider-imds': 3.2.7 + '@smithy/property-provider': 3.1.10 + '@smithy/shared-ini-file-loader': 3.1.11 + '@smithy/types': 3.7.1 tslib: 2.8.1 transitivePeerDependencies: - '@aws-sdk/client-sso-oidc' - '@aws-sdk/client-sts' - aws-crt - '@aws-sdk/credential-provider-process@3.654.0': + '@aws-sdk/credential-provider-process@3.686.0': dependencies: - '@aws-sdk/types': 3.654.0 - '@smithy/property-provider': 3.1.8 - '@smithy/shared-ini-file-loader': 3.1.9 - '@smithy/types': 3.6.0 + '@aws-sdk/core': 3.686.0 + '@aws-sdk/types': 3.686.0 + '@smithy/property-provider': 3.1.10 + '@smithy/shared-ini-file-loader': 3.1.11 + '@smithy/types': 3.7.1 tslib: 2.8.1 - '@aws-sdk/credential-provider-sso@3.658.1(@aws-sdk/client-sso-oidc@3.658.1(@aws-sdk/client-sts@3.658.1))': + '@aws-sdk/credential-provider-sso@3.687.0(@aws-sdk/client-sso-oidc@3.687.0(@aws-sdk/client-sts@3.687.0))': dependencies: - '@aws-sdk/client-sso': 3.658.1 - '@aws-sdk/token-providers': 3.654.0(@aws-sdk/client-sso-oidc@3.658.1(@aws-sdk/client-sts@3.658.1)) - '@aws-sdk/types': 3.654.0 - '@smithy/property-provider': 3.1.8 - '@smithy/shared-ini-file-loader': 3.1.9 - '@smithy/types': 3.6.0 + '@aws-sdk/client-sso': 3.687.0 + '@aws-sdk/core': 3.686.0 + '@aws-sdk/token-providers': 3.686.0(@aws-sdk/client-sso-oidc@3.687.0(@aws-sdk/client-sts@3.687.0)) + '@aws-sdk/types': 3.686.0 + '@smithy/property-provider': 3.1.10 + '@smithy/shared-ini-file-loader': 3.1.11 + '@smithy/types': 3.7.1 tslib: 2.8.1 transitivePeerDependencies: - '@aws-sdk/client-sso-oidc' - aws-crt - '@aws-sdk/credential-provider-web-identity@3.654.0(@aws-sdk/client-sts@3.658.1)': + '@aws-sdk/credential-provider-web-identity@3.686.0(@aws-sdk/client-sts@3.687.0)': dependencies: - '@aws-sdk/client-sts': 3.658.1 - '@aws-sdk/types': 3.654.0 - '@smithy/property-provider': 3.1.8 - '@smithy/types': 3.6.0 + '@aws-sdk/client-sts': 3.687.0 + '@aws-sdk/core': 3.686.0 + '@aws-sdk/types': 3.686.0 + '@smithy/property-provider': 3.1.10 + '@smithy/types': 3.7.1 tslib: 2.8.1 - '@aws-sdk/credential-providers@3.658.1(@aws-sdk/client-sso-oidc@3.658.1(@aws-sdk/client-sts@3.658.1))': - dependencies: - '@aws-sdk/client-cognito-identity': 3.658.1 - '@aws-sdk/client-sso': 3.658.1 - '@aws-sdk/client-sts': 3.658.1 - '@aws-sdk/credential-provider-cognito-identity': 3.658.1 - '@aws-sdk/credential-provider-env': 3.654.0 - '@aws-sdk/credential-provider-http': 3.658.1 - '@aws-sdk/credential-provider-ini': 3.658.1(@aws-sdk/client-sso-oidc@3.658.1(@aws-sdk/client-sts@3.658.1))(@aws-sdk/client-sts@3.658.1) - '@aws-sdk/credential-provider-node': 3.658.1(@aws-sdk/client-sso-oidc@3.658.1(@aws-sdk/client-sts@3.658.1))(@aws-sdk/client-sts@3.658.1) - '@aws-sdk/credential-provider-process': 3.654.0 - '@aws-sdk/credential-provider-sso': 3.658.1(@aws-sdk/client-sso-oidc@3.658.1(@aws-sdk/client-sts@3.658.1)) - '@aws-sdk/credential-provider-web-identity': 3.654.0(@aws-sdk/client-sts@3.658.1) - '@aws-sdk/types': 3.654.0 - '@smithy/credential-provider-imds': 3.2.5 - '@smithy/property-provider': 3.1.8 - '@smithy/types': 3.6.0 + '@aws-sdk/credential-providers@3.687.0(@aws-sdk/client-sso-oidc@3.687.0(@aws-sdk/client-sts@3.687.0))': + dependencies: + '@aws-sdk/client-cognito-identity': 3.687.0 + '@aws-sdk/client-sso': 3.687.0 + '@aws-sdk/client-sts': 3.687.0 + '@aws-sdk/core': 3.686.0 + '@aws-sdk/credential-provider-cognito-identity': 3.687.0 + '@aws-sdk/credential-provider-env': 3.686.0 + '@aws-sdk/credential-provider-http': 3.686.0 + '@aws-sdk/credential-provider-ini': 3.687.0(@aws-sdk/client-sso-oidc@3.687.0(@aws-sdk/client-sts@3.687.0))(@aws-sdk/client-sts@3.687.0) + '@aws-sdk/credential-provider-node': 3.687.0(@aws-sdk/client-sso-oidc@3.687.0(@aws-sdk/client-sts@3.687.0))(@aws-sdk/client-sts@3.687.0) + '@aws-sdk/credential-provider-process': 3.686.0 + '@aws-sdk/credential-provider-sso': 3.687.0(@aws-sdk/client-sso-oidc@3.687.0(@aws-sdk/client-sts@3.687.0)) + '@aws-sdk/credential-provider-web-identity': 3.686.0(@aws-sdk/client-sts@3.687.0) + '@aws-sdk/types': 3.686.0 + '@smithy/credential-provider-imds': 3.2.7 + '@smithy/property-provider': 3.1.10 + '@smithy/types': 3.7.1 tslib: 2.8.1 transitivePeerDependencies: - '@aws-sdk/client-sso-oidc' - aws-crt - '@aws-sdk/middleware-bucket-endpoint@3.654.0': + '@aws-sdk/middleware-bucket-endpoint@3.686.0': dependencies: - '@aws-sdk/types': 3.654.0 - '@aws-sdk/util-arn-parser': 3.568.0 - '@smithy/node-config-provider': 3.1.9 - '@smithy/protocol-http': 4.1.5 - '@smithy/types': 3.6.0 + '@aws-sdk/types': 3.686.0 + '@aws-sdk/util-arn-parser': 3.679.0 + '@smithy/node-config-provider': 3.1.11 + '@smithy/protocol-http': 4.1.7 + '@smithy/types': 3.7.1 '@smithy/util-config-provider': 3.0.0 tslib: 2.8.1 - '@aws-sdk/middleware-expect-continue@3.654.0': + '@aws-sdk/middleware-expect-continue@3.686.0': dependencies: - '@aws-sdk/types': 3.654.0 - '@smithy/protocol-http': 4.1.5 - '@smithy/types': 3.6.0 + '@aws-sdk/types': 3.686.0 + '@smithy/protocol-http': 4.1.7 + '@smithy/types': 3.7.1 tslib: 2.8.1 - '@aws-sdk/middleware-flexible-checksums@3.658.1': + '@aws-sdk/middleware-flexible-checksums@3.689.0': dependencies: '@aws-crypto/crc32': 5.2.0 '@aws-crypto/crc32c': 5.2.0 - '@aws-sdk/types': 3.654.0 + '@aws-crypto/util': 5.2.0 + '@aws-sdk/core': 3.686.0 + '@aws-sdk/types': 3.686.0 '@smithy/is-array-buffer': 3.0.0 - '@smithy/node-config-provider': 3.1.9 - '@smithy/protocol-http': 4.1.5 - '@smithy/types': 3.6.0 - '@smithy/util-middleware': 3.0.8 + '@smithy/node-config-provider': 3.1.11 + '@smithy/protocol-http': 4.1.7 + '@smithy/types': 3.7.1 + '@smithy/util-middleware': 3.0.10 + '@smithy/util-stream': 3.3.1 '@smithy/util-utf8': 3.0.0 tslib: 2.8.1 - '@aws-sdk/middleware-host-header@3.654.0': + '@aws-sdk/middleware-host-header@3.686.0': dependencies: - '@aws-sdk/types': 3.654.0 - '@smithy/protocol-http': 4.1.5 - '@smithy/types': 3.6.0 + '@aws-sdk/types': 3.686.0 + '@smithy/protocol-http': 4.1.7 + '@smithy/types': 3.7.1 tslib: 2.8.1 - '@aws-sdk/middleware-location-constraint@3.654.0': + '@aws-sdk/middleware-location-constraint@3.686.0': dependencies: - '@aws-sdk/types': 3.654.0 - '@smithy/types': 3.6.0 + '@aws-sdk/types': 3.686.0 + '@smithy/types': 3.7.1 tslib: 2.8.1 - '@aws-sdk/middleware-logger@3.654.0': + '@aws-sdk/middleware-logger@3.686.0': dependencies: - '@aws-sdk/types': 3.654.0 - '@smithy/types': 3.6.0 + '@aws-sdk/types': 3.686.0 + '@smithy/types': 3.7.1 tslib: 2.8.1 - '@aws-sdk/middleware-recursion-detection@3.654.0': + '@aws-sdk/middleware-recursion-detection@3.686.0': dependencies: - '@aws-sdk/types': 3.654.0 - '@smithy/protocol-http': 4.1.5 - '@smithy/types': 3.6.0 + '@aws-sdk/types': 3.686.0 + '@smithy/protocol-http': 4.1.7 + '@smithy/types': 3.7.1 tslib: 2.8.1 - '@aws-sdk/middleware-sdk-ec2@3.658.1': + '@aws-sdk/middleware-sdk-ec2@3.686.0': dependencies: - '@aws-sdk/types': 3.654.0 - '@aws-sdk/util-format-url': 3.654.0 - '@smithy/middleware-endpoint': 3.2.1 - '@smithy/protocol-http': 4.1.5 - '@smithy/signature-v4': 4.2.1 - '@smithy/smithy-client': 3.4.2 - '@smithy/types': 3.6.0 + '@aws-sdk/types': 3.686.0 + '@aws-sdk/util-format-url': 3.686.0 + '@smithy/middleware-endpoint': 3.2.3 + '@smithy/protocol-http': 4.1.7 + '@smithy/signature-v4': 4.2.3 + '@smithy/smithy-client': 3.4.4 + '@smithy/types': 3.7.1 tslib: 2.8.1 - '@aws-sdk/middleware-sdk-rds@3.658.1': + '@aws-sdk/middleware-sdk-rds@3.686.0': dependencies: - '@aws-sdk/types': 3.654.0 - '@aws-sdk/util-format-url': 3.654.0 - '@smithy/middleware-endpoint': 3.2.1 - '@smithy/protocol-http': 4.1.5 - '@smithy/signature-v4': 4.2.1 - '@smithy/types': 3.6.0 + '@aws-sdk/types': 3.686.0 + '@aws-sdk/util-format-url': 3.686.0 + '@smithy/middleware-endpoint': 3.2.3 + '@smithy/protocol-http': 4.1.7 + '@smithy/signature-v4': 4.2.3 + '@smithy/types': 3.7.1 tslib: 2.8.1 - '@aws-sdk/middleware-sdk-s3@3.658.1': - dependencies: - '@aws-sdk/core': 3.658.1 - '@aws-sdk/types': 3.654.0 - '@aws-sdk/util-arn-parser': 3.568.0 - '@smithy/core': 2.5.1 - '@smithy/node-config-provider': 3.1.9 - '@smithy/protocol-http': 4.1.5 - '@smithy/signature-v4': 4.2.1 - '@smithy/smithy-client': 3.4.2 - '@smithy/types': 3.6.0 + '@aws-sdk/middleware-sdk-s3@3.687.0': + dependencies: + '@aws-sdk/core': 3.686.0 + '@aws-sdk/types': 3.686.0 + '@aws-sdk/util-arn-parser': 3.679.0 + '@smithy/core': 2.5.3 + '@smithy/node-config-provider': 3.1.11 + '@smithy/protocol-http': 4.1.7 + '@smithy/signature-v4': 4.2.3 + '@smithy/smithy-client': 3.4.4 + '@smithy/types': 3.7.1 '@smithy/util-config-provider': 3.0.0 - '@smithy/util-middleware': 3.0.8 - '@smithy/util-stream': 3.2.1 + '@smithy/util-middleware': 3.0.10 + '@smithy/util-stream': 3.3.1 '@smithy/util-utf8': 3.0.0 tslib: 2.8.1 - '@aws-sdk/middleware-ssec@3.654.0': + '@aws-sdk/middleware-ssec@3.686.0': dependencies: - '@aws-sdk/types': 3.654.0 - '@smithy/types': 3.6.0 + '@aws-sdk/types': 3.686.0 + '@smithy/types': 3.7.1 tslib: 2.8.1 - '@aws-sdk/middleware-user-agent@3.654.0': + '@aws-sdk/middleware-user-agent@3.687.0': dependencies: - '@aws-sdk/types': 3.654.0 - '@aws-sdk/util-endpoints': 3.654.0 - '@smithy/protocol-http': 4.1.5 - '@smithy/types': 3.6.0 + '@aws-sdk/core': 3.686.0 + '@aws-sdk/types': 3.686.0 + '@aws-sdk/util-endpoints': 3.686.0 + '@smithy/core': 2.5.3 + '@smithy/protocol-http': 4.1.7 + '@smithy/types': 3.7.1 tslib: 2.8.1 - '@aws-sdk/region-config-resolver@3.654.0': + '@aws-sdk/region-config-resolver@3.686.0': dependencies: - '@aws-sdk/types': 3.654.0 - '@smithy/node-config-provider': 3.1.9 - '@smithy/types': 3.6.0 + '@aws-sdk/types': 3.686.0 + '@smithy/node-config-provider': 3.1.11 + '@smithy/types': 3.7.1 '@smithy/util-config-provider': 3.0.0 - '@smithy/util-middleware': 3.0.8 + '@smithy/util-middleware': 3.0.10 tslib: 2.8.1 - '@aws-sdk/signature-v4-multi-region@3.658.1': + '@aws-sdk/signature-v4-multi-region@3.687.0': dependencies: - '@aws-sdk/middleware-sdk-s3': 3.658.1 - '@aws-sdk/types': 3.654.0 - '@smithy/protocol-http': 4.1.5 - '@smithy/signature-v4': 4.2.1 - '@smithy/types': 3.6.0 + '@aws-sdk/middleware-sdk-s3': 3.687.0 + '@aws-sdk/types': 3.686.0 + '@smithy/protocol-http': 4.1.7 + '@smithy/signature-v4': 4.2.3 + '@smithy/types': 3.7.1 tslib: 2.8.1 - '@aws-sdk/token-providers@3.654.0(@aws-sdk/client-sso-oidc@3.658.1(@aws-sdk/client-sts@3.658.1))': + '@aws-sdk/token-providers@3.686.0(@aws-sdk/client-sso-oidc@3.687.0(@aws-sdk/client-sts@3.687.0))': dependencies: - '@aws-sdk/client-sso-oidc': 3.658.1(@aws-sdk/client-sts@3.658.1) - '@aws-sdk/types': 3.654.0 - '@smithy/property-provider': 3.1.8 - '@smithy/shared-ini-file-loader': 3.1.9 - '@smithy/types': 3.6.0 + '@aws-sdk/client-sso-oidc': 3.687.0(@aws-sdk/client-sts@3.687.0) + '@aws-sdk/types': 3.686.0 + '@smithy/property-provider': 3.1.10 + '@smithy/shared-ini-file-loader': 3.1.11 + '@smithy/types': 3.7.1 tslib: 2.8.1 - '@aws-sdk/types@3.654.0': + '@aws-sdk/types@3.686.0': dependencies: - '@smithy/types': 3.6.0 + '@smithy/types': 3.7.1 tslib: 2.8.1 - '@aws-sdk/util-arn-parser@3.568.0': + '@aws-sdk/util-arn-parser@3.679.0': dependencies: tslib: 2.8.1 - '@aws-sdk/util-endpoints@3.654.0': + '@aws-sdk/util-endpoints@3.686.0': dependencies: - '@aws-sdk/types': 3.654.0 - '@smithy/types': 3.6.0 - '@smithy/util-endpoints': 2.1.4 + '@aws-sdk/types': 3.686.0 + '@smithy/types': 3.7.1 + '@smithy/util-endpoints': 2.1.6 tslib: 2.8.1 - '@aws-sdk/util-format-url@3.654.0': + '@aws-sdk/util-format-url@3.686.0': dependencies: - '@aws-sdk/types': 3.654.0 - '@smithy/querystring-builder': 3.0.8 - '@smithy/types': 3.6.0 + '@aws-sdk/types': 3.686.0 + '@smithy/querystring-builder': 3.0.10 + '@smithy/types': 3.7.1 tslib: 2.8.1 - '@aws-sdk/util-locate-window@3.679.0': + '@aws-sdk/util-locate-window@3.693.0': dependencies: tslib: 2.8.1 - '@aws-sdk/util-user-agent-browser@3.654.0': + '@aws-sdk/util-user-agent-browser@3.686.0': dependencies: - '@aws-sdk/types': 3.654.0 - '@smithy/types': 3.6.0 + '@aws-sdk/types': 3.686.0 + '@smithy/types': 3.7.1 bowser: 2.11.0 tslib: 2.8.1 - '@aws-sdk/util-user-agent-node@3.654.0': + '@aws-sdk/util-user-agent-node@3.687.0': dependencies: - '@aws-sdk/types': 3.654.0 - '@smithy/node-config-provider': 3.1.9 - '@smithy/types': 3.6.0 + '@aws-sdk/middleware-user-agent': 3.687.0 + '@aws-sdk/types': 3.686.0 + '@smithy/node-config-provider': 3.1.11 + '@smithy/types': 3.7.1 tslib: 2.8.1 - '@aws-sdk/xml-builder@3.654.0': + '@aws-sdk/xml-builder@3.686.0': dependencies: - '@smithy/types': 3.6.0 + '@smithy/types': 3.7.1 tslib: 2.8.1 '@babel/code-frame@7.26.2': @@ -7229,7 +7226,7 @@ snapshots: '@breejs/later@4.2.0': {} - '@cdktf/hcl2json@0.20.9': + '@cdktf/hcl2json@0.20.10': dependencies: fs-extra: 11.2.0 @@ -7305,27 +7302,27 @@ snapshots: '@jest/console@29.7.0': dependencies: '@jest/types': 29.6.3 - '@types/node': 20.17.5 + '@types/node': 20.17.6 chalk: 4.1.2 jest-message-util: 29.7.0 jest-util: 29.7.0 slash: 3.0.0 - '@jest/core@29.7.0(ts-node@10.9.2(@swc/core@1.7.42)(@types/node@20.17.5)(typescript@5.6.3))': + '@jest/core@29.7.0(ts-node@10.9.2(@swc/core@1.9.2)(@types/node@20.17.6)(typescript@5.6.3))': dependencies: '@jest/console': 29.7.0 '@jest/reporters': 29.7.0 '@jest/test-result': 29.7.0 '@jest/transform': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 20.17.5 + '@types/node': 20.17.6 ansi-escapes: 4.3.2 chalk: 4.1.2 ci-info: 3.9.0 exit: 0.1.2 graceful-fs: 4.2.11 jest-changed-files: 29.7.0 - jest-config: 29.7.0(@types/node@20.17.5)(ts-node@10.9.2(@swc/core@1.7.42)(@types/node@20.17.5)(typescript@5.6.3)) + jest-config: 29.7.0(@types/node@20.17.6)(ts-node@10.9.2(@swc/core@1.9.2)(@types/node@20.17.6)(typescript@5.6.3)) jest-haste-map: 29.7.0 jest-message-util: 29.7.0 jest-regex-util: 29.6.3 @@ -7350,7 +7347,7 @@ snapshots: dependencies: '@jest/fake-timers': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 20.17.5 + '@types/node': 20.17.6 jest-mock: 29.7.0 '@jest/expect-utils@29.4.1': @@ -7372,7 +7369,7 @@ snapshots: dependencies: '@jest/types': 29.6.3 '@sinonjs/fake-timers': 10.3.0 - '@types/node': 20.17.5 + '@types/node': 20.17.6 jest-message-util: 29.7.0 jest-mock: 29.7.0 jest-util: 29.7.0 @@ -7394,7 +7391,7 @@ snapshots: '@jest/transform': 29.7.0 '@jest/types': 29.6.3 '@jridgewell/trace-mapping': 0.3.25 - '@types/node': 20.17.5 + '@types/node': 20.17.6 chalk: 4.1.2 collect-v8-coverage: 1.0.2 exit: 0.1.2 @@ -7464,7 +7461,7 @@ snapshots: '@jest/schemas': 29.6.3 '@types/istanbul-lib-coverage': 2.0.6 '@types/istanbul-reports': 3.0.4 - '@types/node': 20.17.5 + '@types/node': 20.17.6 '@types/yargs': 17.0.33 chalk: 4.1.2 @@ -7662,11 +7659,11 @@ snapshots: '@one-ini/wasm@0.1.1': {} - '@openpgp/web-stream-tools@0.0.14(typescript@5.6.3)': + '@openpgp/web-stream-tools@0.1.3(typescript@5.6.3)': optionalDependencies: typescript: 5.6.3 - '@opentelemetry/api-logs@0.54.0': + '@opentelemetry/api-logs@0.54.2': dependencies: '@opentelemetry/api': 1.9.0 @@ -7681,39 +7678,39 @@ snapshots: '@opentelemetry/api': 1.9.0 '@opentelemetry/semantic-conventions': 1.27.0 - '@opentelemetry/exporter-trace-otlp-http@0.54.0(@opentelemetry/api@1.9.0)': + '@opentelemetry/exporter-trace-otlp-http@0.54.2(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 '@opentelemetry/core': 1.27.0(@opentelemetry/api@1.9.0) - '@opentelemetry/otlp-exporter-base': 0.54.0(@opentelemetry/api@1.9.0) - '@opentelemetry/otlp-transformer': 0.54.0(@opentelemetry/api@1.9.0) + '@opentelemetry/otlp-exporter-base': 0.54.2(@opentelemetry/api@1.9.0) + '@opentelemetry/otlp-transformer': 0.54.2(@opentelemetry/api@1.9.0) '@opentelemetry/resources': 1.27.0(@opentelemetry/api@1.9.0) '@opentelemetry/sdk-trace-base': 1.27.0(@opentelemetry/api@1.9.0) '@opentelemetry/instrumentation-bunyan@0.42.0(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 - '@opentelemetry/api-logs': 0.54.0 - '@opentelemetry/instrumentation': 0.54.0(@opentelemetry/api@1.9.0) + '@opentelemetry/api-logs': 0.54.2 + '@opentelemetry/instrumentation': 0.54.2(@opentelemetry/api@1.9.0) '@types/bunyan': 1.8.9 transitivePeerDependencies: - supports-color - '@opentelemetry/instrumentation-http@0.54.0(@opentelemetry/api@1.9.0)': + '@opentelemetry/instrumentation-http@0.54.2(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 '@opentelemetry/core': 1.27.0(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation': 0.54.0(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation': 0.54.2(@opentelemetry/api@1.9.0) '@opentelemetry/semantic-conventions': 1.27.0 forwarded-parse: 2.1.2 semver: 7.6.3 transitivePeerDependencies: - supports-color - '@opentelemetry/instrumentation@0.54.0(@opentelemetry/api@1.9.0)': + '@opentelemetry/instrumentation@0.54.2(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 - '@opentelemetry/api-logs': 0.54.0 + '@opentelemetry/api-logs': 0.54.2 '@types/shimmer': 1.2.0 import-in-the-middle: 1.11.2 require-in-the-middle: 7.4.0 @@ -7722,19 +7719,19 @@ snapshots: transitivePeerDependencies: - supports-color - '@opentelemetry/otlp-exporter-base@0.54.0(@opentelemetry/api@1.9.0)': + '@opentelemetry/otlp-exporter-base@0.54.2(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 '@opentelemetry/core': 1.27.0(@opentelemetry/api@1.9.0) - '@opentelemetry/otlp-transformer': 0.54.0(@opentelemetry/api@1.9.0) + '@opentelemetry/otlp-transformer': 0.54.2(@opentelemetry/api@1.9.0) - '@opentelemetry/otlp-transformer@0.54.0(@opentelemetry/api@1.9.0)': + '@opentelemetry/otlp-transformer@0.54.2(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 - '@opentelemetry/api-logs': 0.54.0 + '@opentelemetry/api-logs': 0.54.2 '@opentelemetry/core': 1.27.0(@opentelemetry/api@1.9.0) '@opentelemetry/resources': 1.27.0(@opentelemetry/api@1.9.0) - '@opentelemetry/sdk-logs': 0.54.0(@opentelemetry/api@1.9.0) + '@opentelemetry/sdk-logs': 0.54.2(@opentelemetry/api@1.9.0) '@opentelemetry/sdk-metrics': 1.27.0(@opentelemetry/api@1.9.0) '@opentelemetry/sdk-trace-base': 1.27.0(@opentelemetry/api@1.9.0) protobufjs: 7.4.0 @@ -7755,10 +7752,10 @@ snapshots: '@opentelemetry/core': 1.27.0(@opentelemetry/api@1.9.0) '@opentelemetry/semantic-conventions': 1.27.0 - '@opentelemetry/sdk-logs@0.54.0(@opentelemetry/api@1.9.0)': + '@opentelemetry/sdk-logs@0.54.2(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 - '@opentelemetry/api-logs': 0.54.0 + '@opentelemetry/api-logs': 0.54.2 '@opentelemetry/core': 1.27.0(@opentelemetry/api@1.9.0) '@opentelemetry/resources': 1.27.0(@opentelemetry/api@1.9.0) @@ -7906,11 +7903,10 @@ snapshots: '@renovatebot/eslint-plugin@file:tools/eslint': {} - '@renovatebot/kbpgp@3.0.1': + '@renovatebot/kbpgp@4.0.1': dependencies: bn: 1.0.5 bzip-deflate: 1.0.0 - deep-equal: 2.2.3 iced-error: 0.0.13 iced-lock: 2.0.1 iced-runtime-3: 3.0.5 @@ -7938,9 +7934,9 @@ snapshots: transitivePeerDependencies: - encoding - '@renovatebot/pep440@3.0.20': {} + '@renovatebot/pep440@4.0.1': {} - '@renovatebot/ruby-semver@3.0.23': {} + '@renovatebot/ruby-semver@4.0.0': {} '@rtsao/scc@1.1.0': {} @@ -7984,7 +7980,7 @@ snapshots: transitivePeerDependencies: - supports-color - '@semantic-release/github@11.0.0(semantic-release@24.2.0(typescript@5.6.3))': + '@semantic-release/github@11.0.1(semantic-release@24.2.0(typescript@5.6.3))': dependencies: '@octokit/core': 6.1.2 '@octokit/plugin-paginate-rest': 11.3.5(@octokit/core@6.1.2) @@ -8071,9 +8067,9 @@ snapshots: '@sinonjs/text-encoding@0.7.3': {} - '@smithy/abort-controller@3.1.6': + '@smithy/abort-controller@3.1.8': dependencies: - '@smithy/types': 3.6.0 + '@smithy/types': 3.7.1 tslib: 2.8.1 '@smithy/chunked-blob-reader-native@3.0.1': @@ -8085,102 +8081,94 @@ snapshots: dependencies: tslib: 2.8.1 - '@smithy/config-resolver@3.0.10': + '@smithy/config-resolver@3.0.12': dependencies: - '@smithy/node-config-provider': 3.1.9 - '@smithy/types': 3.6.0 + '@smithy/node-config-provider': 3.1.11 + '@smithy/types': 3.7.1 '@smithy/util-config-provider': 3.0.0 - '@smithy/util-middleware': 3.0.8 + '@smithy/util-middleware': 3.0.10 tslib: 2.8.1 - '@smithy/core@2.5.1': + '@smithy/core@2.5.3': dependencies: - '@smithy/middleware-serde': 3.0.8 - '@smithy/protocol-http': 4.1.5 - '@smithy/types': 3.6.0 + '@smithy/middleware-serde': 3.0.10 + '@smithy/protocol-http': 4.1.7 + '@smithy/types': 3.7.1 '@smithy/util-body-length-browser': 3.0.0 - '@smithy/util-middleware': 3.0.8 - '@smithy/util-stream': 3.2.1 + '@smithy/util-middleware': 3.0.10 + '@smithy/util-stream': 3.3.1 '@smithy/util-utf8': 3.0.0 tslib: 2.8.1 - '@smithy/credential-provider-imds@3.2.5': + '@smithy/credential-provider-imds@3.2.7': dependencies: - '@smithy/node-config-provider': 3.1.9 - '@smithy/property-provider': 3.1.8 - '@smithy/types': 3.6.0 - '@smithy/url-parser': 3.0.8 + '@smithy/node-config-provider': 3.1.11 + '@smithy/property-provider': 3.1.10 + '@smithy/types': 3.7.1 + '@smithy/url-parser': 3.0.10 tslib: 2.8.1 - '@smithy/eventstream-codec@3.1.7': + '@smithy/eventstream-codec@3.1.9': dependencies: '@aws-crypto/crc32': 5.2.0 - '@smithy/types': 3.6.0 + '@smithy/types': 3.7.1 '@smithy/util-hex-encoding': 3.0.0 tslib: 2.8.1 - '@smithy/eventstream-serde-browser@3.0.11': - dependencies: - '@smithy/eventstream-serde-universal': 3.0.10 - '@smithy/types': 3.6.0 - tslib: 2.8.1 - - '@smithy/eventstream-serde-config-resolver@3.0.8': + '@smithy/eventstream-serde-browser@3.0.13': dependencies: - '@smithy/types': 3.6.0 + '@smithy/eventstream-serde-universal': 3.0.12 + '@smithy/types': 3.7.1 tslib: 2.8.1 - '@smithy/eventstream-serde-node@3.0.10': + '@smithy/eventstream-serde-config-resolver@3.0.10': dependencies: - '@smithy/eventstream-serde-universal': 3.0.10 - '@smithy/types': 3.6.0 + '@smithy/types': 3.7.1 tslib: 2.8.1 - '@smithy/eventstream-serde-universal@3.0.10': + '@smithy/eventstream-serde-node@3.0.12': dependencies: - '@smithy/eventstream-codec': 3.1.7 - '@smithy/types': 3.6.0 + '@smithy/eventstream-serde-universal': 3.0.12 + '@smithy/types': 3.7.1 tslib: 2.8.1 - '@smithy/fetch-http-handler@3.2.9': + '@smithy/eventstream-serde-universal@3.0.12': dependencies: - '@smithy/protocol-http': 4.1.5 - '@smithy/querystring-builder': 3.0.8 - '@smithy/types': 3.6.0 - '@smithy/util-base64': 3.0.0 + '@smithy/eventstream-codec': 3.1.9 + '@smithy/types': 3.7.1 tslib: 2.8.1 - '@smithy/fetch-http-handler@4.0.0': + '@smithy/fetch-http-handler@4.1.1': dependencies: - '@smithy/protocol-http': 4.1.5 - '@smithy/querystring-builder': 3.0.8 - '@smithy/types': 3.6.0 + '@smithy/protocol-http': 4.1.7 + '@smithy/querystring-builder': 3.0.10 + '@smithy/types': 3.7.1 '@smithy/util-base64': 3.0.0 tslib: 2.8.1 - '@smithy/hash-blob-browser@3.1.7': + '@smithy/hash-blob-browser@3.1.9': dependencies: '@smithy/chunked-blob-reader': 4.0.0 '@smithy/chunked-blob-reader-native': 3.0.1 - '@smithy/types': 3.6.0 + '@smithy/types': 3.7.1 tslib: 2.8.1 - '@smithy/hash-node@3.0.8': + '@smithy/hash-node@3.0.10': dependencies: - '@smithy/types': 3.6.0 + '@smithy/types': 3.7.1 '@smithy/util-buffer-from': 3.0.0 '@smithy/util-utf8': 3.0.0 tslib: 2.8.1 - '@smithy/hash-stream-node@3.1.7': + '@smithy/hash-stream-node@3.1.9': dependencies: - '@smithy/types': 3.6.0 + '@smithy/types': 3.7.1 '@smithy/util-utf8': 3.0.0 tslib: 2.8.1 - '@smithy/invalid-dependency@3.0.8': + '@smithy/invalid-dependency@3.0.10': dependencies: - '@smithy/types': 3.6.0 + '@smithy/types': 3.7.1 tslib: 2.8.1 '@smithy/is-array-buffer@2.2.0': @@ -8191,125 +8179,125 @@ snapshots: dependencies: tslib: 2.8.1 - '@smithy/md5-js@3.0.8': + '@smithy/md5-js@3.0.10': dependencies: - '@smithy/types': 3.6.0 + '@smithy/types': 3.7.1 '@smithy/util-utf8': 3.0.0 tslib: 2.8.1 - '@smithy/middleware-content-length@3.0.10': + '@smithy/middleware-content-length@3.0.12': dependencies: - '@smithy/protocol-http': 4.1.5 - '@smithy/types': 3.6.0 + '@smithy/protocol-http': 4.1.7 + '@smithy/types': 3.7.1 tslib: 2.8.1 - '@smithy/middleware-endpoint@3.2.1': + '@smithy/middleware-endpoint@3.2.3': dependencies: - '@smithy/core': 2.5.1 - '@smithy/middleware-serde': 3.0.8 - '@smithy/node-config-provider': 3.1.9 - '@smithy/shared-ini-file-loader': 3.1.9 - '@smithy/types': 3.6.0 - '@smithy/url-parser': 3.0.8 - '@smithy/util-middleware': 3.0.8 + '@smithy/core': 2.5.3 + '@smithy/middleware-serde': 3.0.10 + '@smithy/node-config-provider': 3.1.11 + '@smithy/shared-ini-file-loader': 3.1.11 + '@smithy/types': 3.7.1 + '@smithy/url-parser': 3.0.10 + '@smithy/util-middleware': 3.0.10 tslib: 2.8.1 - '@smithy/middleware-retry@3.0.25': + '@smithy/middleware-retry@3.0.27': dependencies: - '@smithy/node-config-provider': 3.1.9 - '@smithy/protocol-http': 4.1.5 - '@smithy/service-error-classification': 3.0.8 - '@smithy/smithy-client': 3.4.2 - '@smithy/types': 3.6.0 - '@smithy/util-middleware': 3.0.8 - '@smithy/util-retry': 3.0.8 + '@smithy/node-config-provider': 3.1.11 + '@smithy/protocol-http': 4.1.7 + '@smithy/service-error-classification': 3.0.10 + '@smithy/smithy-client': 3.4.4 + '@smithy/types': 3.7.1 + '@smithy/util-middleware': 3.0.10 + '@smithy/util-retry': 3.0.10 tslib: 2.8.1 uuid: 9.0.1 - '@smithy/middleware-serde@3.0.8': + '@smithy/middleware-serde@3.0.10': dependencies: - '@smithy/types': 3.6.0 + '@smithy/types': 3.7.1 tslib: 2.8.1 - '@smithy/middleware-stack@3.0.8': + '@smithy/middleware-stack@3.0.10': dependencies: - '@smithy/types': 3.6.0 + '@smithy/types': 3.7.1 tslib: 2.8.1 - '@smithy/node-config-provider@3.1.9': + '@smithy/node-config-provider@3.1.11': dependencies: - '@smithy/property-provider': 3.1.8 - '@smithy/shared-ini-file-loader': 3.1.9 - '@smithy/types': 3.6.0 + '@smithy/property-provider': 3.1.10 + '@smithy/shared-ini-file-loader': 3.1.11 + '@smithy/types': 3.7.1 tslib: 2.8.1 - '@smithy/node-http-handler@3.2.5': + '@smithy/node-http-handler@3.3.1': dependencies: - '@smithy/abort-controller': 3.1.6 - '@smithy/protocol-http': 4.1.5 - '@smithy/querystring-builder': 3.0.8 - '@smithy/types': 3.6.0 + '@smithy/abort-controller': 3.1.8 + '@smithy/protocol-http': 4.1.7 + '@smithy/querystring-builder': 3.0.10 + '@smithy/types': 3.7.1 tslib: 2.8.1 - '@smithy/property-provider@3.1.8': + '@smithy/property-provider@3.1.10': dependencies: - '@smithy/types': 3.6.0 + '@smithy/types': 3.7.1 tslib: 2.8.1 - '@smithy/protocol-http@4.1.5': + '@smithy/protocol-http@4.1.7': dependencies: - '@smithy/types': 3.6.0 + '@smithy/types': 3.7.1 tslib: 2.8.1 - '@smithy/querystring-builder@3.0.8': + '@smithy/querystring-builder@3.0.10': dependencies: - '@smithy/types': 3.6.0 + '@smithy/types': 3.7.1 '@smithy/util-uri-escape': 3.0.0 tslib: 2.8.1 - '@smithy/querystring-parser@3.0.8': + '@smithy/querystring-parser@3.0.10': dependencies: - '@smithy/types': 3.6.0 + '@smithy/types': 3.7.1 tslib: 2.8.1 - '@smithy/service-error-classification@3.0.8': + '@smithy/service-error-classification@3.0.10': dependencies: - '@smithy/types': 3.6.0 + '@smithy/types': 3.7.1 - '@smithy/shared-ini-file-loader@3.1.9': + '@smithy/shared-ini-file-loader@3.1.11': dependencies: - '@smithy/types': 3.6.0 + '@smithy/types': 3.7.1 tslib: 2.8.1 - '@smithy/signature-v4@4.2.1': + '@smithy/signature-v4@4.2.3': dependencies: '@smithy/is-array-buffer': 3.0.0 - '@smithy/protocol-http': 4.1.5 - '@smithy/types': 3.6.0 + '@smithy/protocol-http': 4.1.7 + '@smithy/types': 3.7.1 '@smithy/util-hex-encoding': 3.0.0 - '@smithy/util-middleware': 3.0.8 + '@smithy/util-middleware': 3.0.10 '@smithy/util-uri-escape': 3.0.0 '@smithy/util-utf8': 3.0.0 tslib: 2.8.1 - '@smithy/smithy-client@3.4.2': + '@smithy/smithy-client@3.4.4': dependencies: - '@smithy/core': 2.5.1 - '@smithy/middleware-endpoint': 3.2.1 - '@smithy/middleware-stack': 3.0.8 - '@smithy/protocol-http': 4.1.5 - '@smithy/types': 3.6.0 - '@smithy/util-stream': 3.2.1 + '@smithy/core': 2.5.3 + '@smithy/middleware-endpoint': 3.2.3 + '@smithy/middleware-stack': 3.0.10 + '@smithy/protocol-http': 4.1.7 + '@smithy/types': 3.7.1 + '@smithy/util-stream': 3.3.1 tslib: 2.8.1 - '@smithy/types@3.6.0': + '@smithy/types@3.7.1': dependencies: tslib: 2.8.1 - '@smithy/url-parser@3.0.8': + '@smithy/url-parser@3.0.10': dependencies: - '@smithy/querystring-parser': 3.0.8 - '@smithy/types': 3.6.0 + '@smithy/querystring-parser': 3.0.10 + '@smithy/types': 3.7.1 tslib: 2.8.1 '@smithy/util-base64@3.0.0': @@ -8340,50 +8328,50 @@ snapshots: dependencies: tslib: 2.8.1 - '@smithy/util-defaults-mode-browser@3.0.25': + '@smithy/util-defaults-mode-browser@3.0.27': dependencies: - '@smithy/property-provider': 3.1.8 - '@smithy/smithy-client': 3.4.2 - '@smithy/types': 3.6.0 + '@smithy/property-provider': 3.1.10 + '@smithy/smithy-client': 3.4.4 + '@smithy/types': 3.7.1 bowser: 2.11.0 tslib: 2.8.1 - '@smithy/util-defaults-mode-node@3.0.25': + '@smithy/util-defaults-mode-node@3.0.27': dependencies: - '@smithy/config-resolver': 3.0.10 - '@smithy/credential-provider-imds': 3.2.5 - '@smithy/node-config-provider': 3.1.9 - '@smithy/property-provider': 3.1.8 - '@smithy/smithy-client': 3.4.2 - '@smithy/types': 3.6.0 + '@smithy/config-resolver': 3.0.12 + '@smithy/credential-provider-imds': 3.2.7 + '@smithy/node-config-provider': 3.1.11 + '@smithy/property-provider': 3.1.10 + '@smithy/smithy-client': 3.4.4 + '@smithy/types': 3.7.1 tslib: 2.8.1 - '@smithy/util-endpoints@2.1.4': + '@smithy/util-endpoints@2.1.6': dependencies: - '@smithy/node-config-provider': 3.1.9 - '@smithy/types': 3.6.0 + '@smithy/node-config-provider': 3.1.11 + '@smithy/types': 3.7.1 tslib: 2.8.1 '@smithy/util-hex-encoding@3.0.0': dependencies: tslib: 2.8.1 - '@smithy/util-middleware@3.0.8': + '@smithy/util-middleware@3.0.10': dependencies: - '@smithy/types': 3.6.0 + '@smithy/types': 3.7.1 tslib: 2.8.1 - '@smithy/util-retry@3.0.8': + '@smithy/util-retry@3.0.10': dependencies: - '@smithy/service-error-classification': 3.0.8 - '@smithy/types': 3.6.0 + '@smithy/service-error-classification': 3.0.10 + '@smithy/types': 3.7.1 tslib: 2.8.1 - '@smithy/util-stream@3.2.1': + '@smithy/util-stream@3.3.1': dependencies: - '@smithy/fetch-http-handler': 4.0.0 - '@smithy/node-http-handler': 3.2.5 - '@smithy/types': 3.6.0 + '@smithy/fetch-http-handler': 4.1.1 + '@smithy/node-http-handler': 3.3.1 + '@smithy/types': 3.7.1 '@smithy/util-base64': 3.0.0 '@smithy/util-buffer-from': 3.0.0 '@smithy/util-hex-encoding': 3.0.0 @@ -8404,61 +8392,61 @@ snapshots: '@smithy/util-buffer-from': 3.0.0 tslib: 2.8.1 - '@smithy/util-waiter@3.1.7': + '@smithy/util-waiter@3.1.9': dependencies: - '@smithy/abort-controller': 3.1.6 - '@smithy/types': 3.6.0 + '@smithy/abort-controller': 3.1.8 + '@smithy/types': 3.7.1 tslib: 2.8.1 - '@swc/core-darwin-arm64@1.7.42': + '@swc/core-darwin-arm64@1.9.2': optional: true - '@swc/core-darwin-x64@1.7.42': + '@swc/core-darwin-x64@1.9.2': optional: true - '@swc/core-linux-arm-gnueabihf@1.7.42': + '@swc/core-linux-arm-gnueabihf@1.9.2': optional: true - '@swc/core-linux-arm64-gnu@1.7.42': + '@swc/core-linux-arm64-gnu@1.9.2': optional: true - '@swc/core-linux-arm64-musl@1.7.42': + '@swc/core-linux-arm64-musl@1.9.2': optional: true - '@swc/core-linux-x64-gnu@1.7.42': + '@swc/core-linux-x64-gnu@1.9.2': optional: true - '@swc/core-linux-x64-musl@1.7.42': + '@swc/core-linux-x64-musl@1.9.2': optional: true - '@swc/core-win32-arm64-msvc@1.7.42': + '@swc/core-win32-arm64-msvc@1.9.2': optional: true - '@swc/core-win32-ia32-msvc@1.7.42': + '@swc/core-win32-ia32-msvc@1.9.2': optional: true - '@swc/core-win32-x64-msvc@1.7.42': + '@swc/core-win32-x64-msvc@1.9.2': optional: true - '@swc/core@1.7.42': + '@swc/core@1.9.2': dependencies: '@swc/counter': 0.1.3 - '@swc/types': 0.1.13 + '@swc/types': 0.1.15 optionalDependencies: - '@swc/core-darwin-arm64': 1.7.42 - '@swc/core-darwin-x64': 1.7.42 - '@swc/core-linux-arm-gnueabihf': 1.7.42 - '@swc/core-linux-arm64-gnu': 1.7.42 - '@swc/core-linux-arm64-musl': 1.7.42 - '@swc/core-linux-x64-gnu': 1.7.42 - '@swc/core-linux-x64-musl': 1.7.42 - '@swc/core-win32-arm64-msvc': 1.7.42 - '@swc/core-win32-ia32-msvc': 1.7.42 - '@swc/core-win32-x64-msvc': 1.7.42 + '@swc/core-darwin-arm64': 1.9.2 + '@swc/core-darwin-x64': 1.9.2 + '@swc/core-linux-arm-gnueabihf': 1.9.2 + '@swc/core-linux-arm64-gnu': 1.9.2 + '@swc/core-linux-arm64-musl': 1.9.2 + '@swc/core-linux-x64-gnu': 1.9.2 + '@swc/core-linux-x64-musl': 1.9.2 + '@swc/core-win32-arm64-msvc': 1.9.2 + '@swc/core-win32-ia32-msvc': 1.9.2 + '@swc/core-win32-x64-msvc': 1.9.2 '@swc/counter@0.1.3': {} - '@swc/types@0.1.13': + '@swc/types@0.1.15': dependencies: '@swc/counter': 0.1.3 @@ -8515,7 +8503,7 @@ snapshots: '@types/aws4@1.11.6': dependencies: - '@types/node': 20.17.5 + '@types/node': 20.17.6 '@types/babel__core@7.20.5': dependencies: @@ -8540,27 +8528,27 @@ snapshots: '@types/better-sqlite3@7.6.11': dependencies: - '@types/node': 20.17.5 + '@types/node': 20.17.6 '@types/breejs__later@4.1.5': {} '@types/bunyan@1.8.11': dependencies: - '@types/node': 20.17.5 + '@types/node': 20.17.6 '@types/bunyan@1.8.9': dependencies: - '@types/node': 20.17.5 + '@types/node': 20.17.6 '@types/cacache@17.0.2': dependencies: - '@types/node': 20.17.5 + '@types/node': 20.17.6 '@types/cacheable-request@6.0.3': dependencies: '@types/http-cache-semantics': 4.0.4 '@types/keyv': 3.1.4 - '@types/node': 20.17.5 + '@types/node': 20.17.6 '@types/responselike': 1.0.3 '@types/callsite@1.0.34': {} @@ -8587,7 +8575,7 @@ snapshots: '@types/fs-extra@11.0.4': dependencies: '@types/jsonfile': 6.1.4 - '@types/node': 20.17.5 + '@types/node': 20.17.6 '@types/git-url-parse@9.0.3': {} @@ -8597,7 +8585,7 @@ snapshots: '@types/graceful-fs@4.1.9': dependencies: - '@types/node': 20.17.5 + '@types/node': 20.17.6 '@types/http-cache-semantics@4.0.4': {} @@ -8623,11 +8611,11 @@ snapshots: '@types/jsonfile@6.1.4': dependencies: - '@types/node': 20.17.5 + '@types/node': 20.17.6 '@types/keyv@3.1.4': dependencies: - '@types/node': 20.17.5 + '@types/node': 20.17.6 '@types/linkify-it@5.0.0': {} @@ -8646,7 +8634,7 @@ snapshots: '@types/marshal@0.5.3': dependencies: - '@types/node': 20.17.5 + '@types/node': 20.17.6 '@types/mdast@3.0.15': dependencies: @@ -8662,7 +8650,7 @@ snapshots: '@types/ms@0.7.34': {} - '@types/node@20.17.5': + '@types/node@20.17.6': dependencies: undici-types: 6.19.8 @@ -8670,9 +8658,11 @@ snapshots: '@types/parse-link-header@2.0.3': {} + '@types/punycode@2.1.4': {} + '@types/responselike@1.0.3': dependencies: - '@types/node': 20.17.5 + '@types/node': 20.17.6 '@types/semver-stable@3.0.2': {} @@ -8692,7 +8682,7 @@ snapshots: '@types/tar@6.1.13': dependencies: - '@types/node': 20.17.5 + '@types/node': 20.17.6 minipass: 4.2.8 '@types/tmp@0.2.6': {} @@ -8703,6 +8693,8 @@ snapshots: '@types/url-join@4.0.3': {} + '@types/uuid@9.0.8': {} + '@types/validate-npm-package-name@4.0.2': {} '@types/xmldoc@1.1.9': {} @@ -8715,7 +8707,7 @@ snapshots: '@types/yauzl@2.10.3': dependencies: - '@types/node': 20.17.5 + '@types/node': 20.17.6 optional: true '@typescript-eslint/eslint-plugin@8.11.0(@typescript-eslint/parser@8.11.0(eslint@8.57.1)(typescript@5.6.3))(eslint@8.57.1)(typescript@5.6.3)': @@ -8767,10 +8759,10 @@ snapshots: '@typescript-eslint/types': 8.11.0 '@typescript-eslint/visitor-keys': 8.11.0 - '@typescript-eslint/scope-manager@8.12.2': + '@typescript-eslint/scope-manager@8.15.0': dependencies: - '@typescript-eslint/types': 8.12.2 - '@typescript-eslint/visitor-keys': 8.12.2 + '@typescript-eslint/types': 8.15.0 + '@typescript-eslint/visitor-keys': 8.15.0 '@typescript-eslint/type-utils@8.11.0(eslint@8.57.1)(typescript@5.6.3)': dependencies: @@ -8788,7 +8780,7 @@ snapshots: '@typescript-eslint/types@8.11.0': {} - '@typescript-eslint/types@8.12.2': {} + '@typescript-eslint/types@8.15.0': {} '@typescript-eslint/typescript-estree@5.62.0(typescript@5.6.3)': dependencies: @@ -8819,10 +8811,10 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/typescript-estree@8.12.2(typescript@5.6.3)': + '@typescript-eslint/typescript-estree@8.15.0(typescript@5.6.3)': dependencies: - '@typescript-eslint/types': 8.12.2 - '@typescript-eslint/visitor-keys': 8.12.2 + '@typescript-eslint/types': 8.15.0 + '@typescript-eslint/visitor-keys': 8.15.0 debug: 4.3.7 fast-glob: 3.3.2 is-glob: 4.0.3 @@ -8860,16 +8852,17 @@ snapshots: - supports-color - typescript - '@typescript-eslint/utils@8.12.2(eslint@8.57.1)(typescript@5.6.3)': + '@typescript-eslint/utils@8.15.0(eslint@8.57.1)(typescript@5.6.3)': dependencies: '@eslint-community/eslint-utils': 4.4.1(eslint@8.57.1) - '@typescript-eslint/scope-manager': 8.12.2 - '@typescript-eslint/types': 8.12.2 - '@typescript-eslint/typescript-estree': 8.12.2(typescript@5.6.3) + '@typescript-eslint/scope-manager': 8.15.0 + '@typescript-eslint/types': 8.15.0 + '@typescript-eslint/typescript-estree': 8.15.0(typescript@5.6.3) eslint: 8.57.1 + optionalDependencies: + typescript: 5.6.3 transitivePeerDependencies: - supports-color - - typescript '@typescript-eslint/visitor-keys@5.62.0': dependencies: @@ -8881,10 +8874,10 @@ snapshots: '@typescript-eslint/types': 8.11.0 eslint-visitor-keys: 3.4.3 - '@typescript-eslint/visitor-keys@8.12.2': + '@typescript-eslint/visitor-keys@8.15.0': dependencies: - '@typescript-eslint/types': 8.12.2 - eslint-visitor-keys: 3.4.3 + '@typescript-eslint/types': 8.15.0 + eslint-visitor-keys: 4.2.0 '@ungap/structured-clone@1.2.0': {} @@ -8899,7 +8892,7 @@ snapshots: '@yarnpkg/shell': 4.1.0(typanion@3.14.0) camelcase: 5.3.1 chalk: 3.0.0 - ci-info: 4.0.0 + ci-info: 4.1.0 clipanion: 4.0.0-rc.4(typanion@3.14.0) cross-spawn: 7.0.3 diff: 5.2.0 @@ -9051,7 +9044,7 @@ snapshots: dependencies: call-bind: 1.0.7 define-properties: 1.2.1 - es-abstract: 1.23.3 + es-abstract: 1.23.5 es-object-atoms: 1.0.0 get-intrinsic: 1.2.4 is-string: 1.0.7 @@ -9062,7 +9055,7 @@ snapshots: dependencies: call-bind: 1.0.7 define-properties: 1.2.1 - es-abstract: 1.23.3 + es-abstract: 1.23.5 es-errors: 1.3.0 es-object-atoms: 1.0.0 es-shim-unscopables: 1.0.2 @@ -9071,14 +9064,14 @@ snapshots: dependencies: call-bind: 1.0.7 define-properties: 1.2.1 - es-abstract: 1.23.3 + es-abstract: 1.23.5 es-shim-unscopables: 1.0.2 array.prototype.flatmap@1.3.2: dependencies: call-bind: 1.0.7 define-properties: 1.2.1 - es-abstract: 1.23.3 + es-abstract: 1.23.5 es-shim-unscopables: 1.0.2 arraybuffer.prototype.slice@1.0.3: @@ -9086,7 +9079,7 @@ snapshots: array-buffer-byte-length: 1.0.1 call-bind: 1.0.7 define-properties: 1.2.1 - es-abstract: 1.23.3 + es-abstract: 1.23.5 es-errors: 1.3.0 get-intrinsic: 1.2.4 is-array-buffer: 3.0.4 @@ -9094,14 +9087,6 @@ snapshots: arrify@1.0.1: {} - asn1.js@5.4.1: - dependencies: - bn.js: 4.12.0 - inherits: 2.0.4 - minimalistic-assert: 1.0.1 - safer-buffer: 2.1.2 - optional: true - async-mutex@0.5.0: dependencies: tslib: 2.8.1 @@ -9214,9 +9199,6 @@ snapshots: readable-stream: 3.6.2 optional: true - bn.js@4.12.0: - optional: true - bn@1.0.5: {} boolbase@1.0.0: {} @@ -9242,8 +9224,8 @@ snapshots: browserslist@4.24.2: dependencies: - caniuse-lite: 1.0.30001677 - electron-to-chromium: 1.5.50 + caniuse-lite: 1.0.30001680 + electron-to-chromium: 1.5.63 node-releases: 2.0.18 update-browserslist-db: 1.1.1(browserslist@4.24.2) @@ -9327,7 +9309,7 @@ snapshots: camelcase@6.3.0: {} - caniuse-lite@1.0.30001677: {} + caniuse-lite@1.0.30001680: {} chalk@2.4.2: dependencies: @@ -9366,7 +9348,7 @@ snapshots: ci-info@3.9.0: {} - ci-info@4.0.0: {} + ci-info@4.1.0: {} cjs-module-lexer@1.4.1: {} @@ -9505,13 +9487,13 @@ snapshots: optionalDependencies: typescript: 5.6.3 - create-jest@29.7.0(@types/node@20.17.5)(ts-node@10.9.2(@swc/core@1.7.42)(@types/node@20.17.5)(typescript@5.6.3)): + create-jest@29.7.0(@types/node@20.17.6)(ts-node@10.9.2(@swc/core@1.9.2)(@types/node@20.17.6)(typescript@5.6.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@20.17.5)(ts-node@10.9.2(@swc/core@1.7.42)(@types/node@20.17.5)(typescript@5.6.3)) + jest-config: 29.7.0(@types/node@20.17.6)(ts-node@10.9.2(@swc/core@1.9.2)(@types/node@20.17.6)(typescript@5.6.3)) jest-util: 29.7.0 prompts: 2.4.2 transitivePeerDependencies: @@ -9534,6 +9516,12 @@ snapshots: shebang-command: 2.0.0 which: 2.0.2 + cross-spawn@7.0.6: + dependencies: + path-key: 3.1.1 + shebang-command: 2.0.0 + which: 2.0.2 + crypto-random-string@4.0.0: dependencies: type-fest: 1.4.0 @@ -9589,27 +9577,6 @@ snapshots: dedent@1.5.3: {} - deep-equal@2.2.3: - dependencies: - array-buffer-byte-length: 1.0.1 - call-bind: 1.0.7 - es-get-iterator: 1.1.3 - get-intrinsic: 1.2.4 - is-arguments: 1.1.1 - is-array-buffer: 3.0.4 - is-date-object: 1.0.5 - is-regex: 1.1.4 - is-shared-array-buffer: 1.0.3 - isarray: 2.0.5 - object-is: 1.1.6 - object-keys: 1.1.1 - object.assign: 4.1.5 - regexp.prototype.flags: 1.5.3 - side-channel: 1.0.6 - which-boxed-primitive: 1.0.2 - which-collection: 1.0.2 - which-typed-array: 1.1.15 - deep-extend@0.6.0: {} deep-is@0.1.4: {} @@ -9715,7 +9682,7 @@ snapshots: dependencies: jake: 10.9.2 - electron-to-chromium@1.5.50: {} + electron-to-chromium@1.5.63: {} email-addresses@5.0.0: {} @@ -9769,7 +9736,7 @@ snapshots: dependencies: is-arrayish: 0.2.1 - es-abstract@1.23.3: + es-abstract@1.23.5: dependencies: array-buffer-byte-length: 1.0.1 arraybuffer.prototype.slice: 1.0.3 @@ -9802,7 +9769,7 @@ snapshots: is-string: 1.0.7 is-typed-array: 1.1.13 is-weakref: 1.0.2 - object-inspect: 1.13.2 + object-inspect: 1.13.3 object-keys: 1.1.1 object.assign: 4.1.5 regexp.prototype.flags: 1.5.3 @@ -9824,18 +9791,6 @@ snapshots: es-errors@1.3.0: {} - es-get-iterator@1.1.3: - dependencies: - call-bind: 1.0.7 - get-intrinsic: 1.2.4 - has-symbols: 1.0.3 - is-arguments: 1.1.1 - is-map: 2.0.3 - is-set: 2.0.3 - is-string: 1.0.7 - isarray: 2.0.5 - stop-iteration-iterator: 1.0.0 - es-object-atoms@1.0.0: dependencies: es-errors: 1.3.0 @@ -9952,13 +9907,13 @@ snapshots: dependencies: eslint: 8.57.1 - eslint-plugin-jest@28.8.3(@typescript-eslint/eslint-plugin@8.11.0(@typescript-eslint/parser@8.11.0(eslint@8.57.1)(typescript@5.6.3))(eslint@8.57.1)(typescript@5.6.3))(eslint@8.57.1)(jest@29.7.0(@types/node@20.17.5)(ts-node@10.9.2(@swc/core@1.7.42)(@types/node@20.17.5)(typescript@5.6.3)))(typescript@5.6.3): + eslint-plugin-jest@28.8.3(@typescript-eslint/eslint-plugin@8.11.0(@typescript-eslint/parser@8.11.0(eslint@8.57.1)(typescript@5.6.3))(eslint@8.57.1)(typescript@5.6.3))(eslint@8.57.1)(jest@29.7.0(@types/node@20.17.6)(ts-node@10.9.2(@swc/core@1.9.2)(@types/node@20.17.6)(typescript@5.6.3)))(typescript@5.6.3): dependencies: - '@typescript-eslint/utils': 8.12.2(eslint@8.57.1)(typescript@5.6.3) + '@typescript-eslint/utils': 8.15.0(eslint@8.57.1)(typescript@5.6.3) eslint: 8.57.1 optionalDependencies: '@typescript-eslint/eslint-plugin': 8.11.0(@typescript-eslint/parser@8.11.0(eslint@8.57.1)(typescript@5.6.3))(eslint@8.57.1)(typescript@5.6.3) - jest: 29.7.0(@types/node@20.17.5)(ts-node@10.9.2(@swc/core@1.7.42)(@types/node@20.17.5)(typescript@5.6.3)) + jest: 29.7.0(@types/node@20.17.6)(ts-node@10.9.2(@swc/core@1.9.2)(@types/node@20.17.6)(typescript@5.6.3)) transitivePeerDependencies: - supports-color - typescript @@ -9987,6 +9942,8 @@ snapshots: eslint-visitor-keys@3.4.3: {} + eslint-visitor-keys@4.2.0: {} + eslint@8.57.1: dependencies: '@eslint-community/eslint-utils': 4.4.1(eslint@8.57.1) @@ -9999,7 +9956,7 @@ snapshots: '@ungap/structured-clone': 1.2.0 ajv: 6.12.6 chalk: 4.1.2 - cross-spawn: 7.0.3 + cross-spawn: 7.0.6 debug: 4.3.7 doctrine: 3.0.0 escape-string-regexp: 4.0.0 @@ -10056,7 +10013,7 @@ snapshots: execa@5.1.1: dependencies: - cross-spawn: 7.0.3 + cross-spawn: 7.0.6 get-stream: 6.0.1 human-signals: 2.1.0 is-stream: 2.0.1 @@ -10068,7 +10025,7 @@ snapshots: execa@8.0.1: dependencies: - cross-spawn: 7.0.3 + cross-spawn: 7.0.6 get-stream: 8.0.1 human-signals: 5.0.0 is-stream: 3.0.0 @@ -10081,14 +10038,14 @@ snapshots: execa@9.5.1: dependencies: '@sindresorhus/merge-streams': 4.0.0 - cross-spawn: 7.0.3 + cross-spawn: 7.0.6 figures: 6.1.0 get-stream: 9.0.1 human-signals: 8.0.0 is-plain-obj: 4.1.0 is-stream: 4.0.1 npm-run-path: 6.0.0 - pretty-ms: 9.1.0 + pretty-ms: 9.2.0 signal-exit: 4.1.0 strip-final-newline: 4.0.0 yoctocolors: 2.1.1 @@ -10219,11 +10176,11 @@ snapshots: flat-cache@3.2.0: dependencies: - flatted: 3.3.1 + flatted: 3.3.2 keyv: 4.5.4 rimraf: 3.0.2 - flatted@3.3.1: {} + flatted@3.3.2: {} for-each@0.3.3: dependencies: @@ -10231,12 +10188,12 @@ snapshots: foreground-child@2.0.0: dependencies: - cross-spawn: 7.0.3 + cross-spawn: 7.0.6 signal-exit: 3.0.7 foreground-child@3.3.0: dependencies: - cross-spawn: 7.0.3 + cross-spawn: 7.0.6 signal-exit: 4.1.0 forwarded-parse@2.1.2: {} @@ -10278,7 +10235,7 @@ snapshots: dependencies: call-bind: 1.0.7 define-properties: 1.2.1 - es-abstract: 1.23.3 + es-abstract: 1.23.5 functions-have-names: 1.2.3 functions-have-names@1.2.3: {} @@ -10488,7 +10445,7 @@ snapshots: graceful-fs@4.2.11: {} - graph-data-structure@3.5.0: {} + graph-data-structure@4.2.0: {} grapheme-splitter@1.0.4: {} @@ -10761,8 +10718,6 @@ snapshots: is-lambda@1.0.1: optional: true - is-map@2.0.3: {} - is-negative-zero@2.0.3: {} is-number-object@1.0.7: @@ -10786,8 +10741,6 @@ snapshots: call-bind: 1.0.7 has-tostringtag: 1.0.2 - is-set@2.0.3: {} - is-shared-array-buffer@1.0.3: dependencies: call-bind: 1.0.7 @@ -10818,17 +10771,10 @@ snapshots: is-unicode-supported@2.1.0: {} - is-weakmap@2.0.2: {} - is-weakref@1.0.2: dependencies: call-bind: 1.0.7 - is-weakset@2.0.3: - dependencies: - call-bind: 1.0.7 - get-intrinsic: 1.2.4 - is-windows@1.0.2: {} isarray@1.0.0: {} @@ -10876,7 +10822,7 @@ snapshots: istanbul-lib-processinfo@2.0.3: dependencies: archy: 1.0.0 - cross-spawn: 7.0.3 + cross-spawn: 7.0.6 istanbul-lib-coverage: 3.2.2 p-map: 3.0.0 rimraf: 3.0.2 @@ -10932,7 +10878,7 @@ snapshots: '@jest/expect': 29.7.0 '@jest/test-result': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 20.17.5 + '@types/node': 20.17.6 chalk: 4.1.2 co: 4.6.0 dedent: 1.5.3 @@ -10952,16 +10898,16 @@ snapshots: - babel-plugin-macros - supports-color - jest-cli@29.7.0(@types/node@20.17.5)(ts-node@10.9.2(@swc/core@1.7.42)(@types/node@20.17.5)(typescript@5.6.3)): + jest-cli@29.7.0(@types/node@20.17.6)(ts-node@10.9.2(@swc/core@1.9.2)(@types/node@20.17.6)(typescript@5.6.3)): dependencies: - '@jest/core': 29.7.0(ts-node@10.9.2(@swc/core@1.7.42)(@types/node@20.17.5)(typescript@5.6.3)) + '@jest/core': 29.7.0(ts-node@10.9.2(@swc/core@1.9.2)(@types/node@20.17.6)(typescript@5.6.3)) '@jest/test-result': 29.7.0 '@jest/types': 29.6.3 chalk: 4.1.2 - create-jest: 29.7.0(@types/node@20.17.5)(ts-node@10.9.2(@swc/core@1.7.42)(@types/node@20.17.5)(typescript@5.6.3)) + create-jest: 29.7.0(@types/node@20.17.6)(ts-node@10.9.2(@swc/core@1.9.2)(@types/node@20.17.6)(typescript@5.6.3)) exit: 0.1.2 import-local: 3.2.0 - jest-config: 29.7.0(@types/node@20.17.5)(ts-node@10.9.2(@swc/core@1.7.42)(@types/node@20.17.5)(typescript@5.6.3)) + jest-config: 29.7.0(@types/node@20.17.6)(ts-node@10.9.2(@swc/core@1.9.2)(@types/node@20.17.6)(typescript@5.6.3)) jest-util: 29.7.0 jest-validate: 29.7.0 yargs: 17.7.2 @@ -10971,7 +10917,7 @@ snapshots: - supports-color - ts-node - jest-config@29.7.0(@types/node@20.17.5)(ts-node@10.9.2(@swc/core@1.7.42)(@types/node@20.17.5)(typescript@5.6.3)): + jest-config@29.7.0(@types/node@20.17.6)(ts-node@10.9.2(@swc/core@1.9.2)(@types/node@20.17.6)(typescript@5.6.3)): dependencies: '@babel/core': 7.26.0 '@jest/test-sequencer': 29.7.0 @@ -10996,8 +10942,8 @@ snapshots: slash: 3.0.0 strip-json-comments: 3.1.1 optionalDependencies: - '@types/node': 20.17.5 - ts-node: 10.9.2(@swc/core@1.7.42)(@types/node@20.17.5)(typescript@5.6.3) + '@types/node': 20.17.6 + ts-node: 10.9.2(@swc/core@1.9.2)(@types/node@20.17.6)(typescript@5.6.3) transitivePeerDependencies: - babel-plugin-macros - supports-color @@ -11026,16 +10972,16 @@ snapshots: '@jest/environment': 29.7.0 '@jest/fake-timers': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 20.17.5 + '@types/node': 20.17.6 jest-mock: 29.7.0 jest-util: 29.7.0 - jest-extended@4.0.2(jest@29.7.0(@types/node@20.17.5)(ts-node@10.9.2(@swc/core@1.7.42)(@types/node@20.17.5)(typescript@5.6.3))): + jest-extended@4.0.2(jest@29.7.0(@types/node@20.17.6)(ts-node@10.9.2(@swc/core@1.9.2)(@types/node@20.17.6)(typescript@5.6.3))): dependencies: jest-diff: 29.7.0 jest-get-type: 29.6.3 optionalDependencies: - jest: 29.7.0(@types/node@20.17.5)(ts-node@10.9.2(@swc/core@1.7.42)(@types/node@20.17.5)(typescript@5.6.3)) + jest: 29.7.0(@types/node@20.17.6)(ts-node@10.9.2(@swc/core@1.9.2)(@types/node@20.17.6)(typescript@5.6.3)) jest-get-type@29.6.3: {} @@ -11043,7 +10989,7 @@ snapshots: dependencies: '@jest/types': 29.6.3 '@types/graceful-fs': 4.1.9 - '@types/node': 20.17.5 + '@types/node': 20.17.6 anymatch: 3.1.3 fb-watchman: 2.0.2 graceful-fs: 4.2.11 @@ -11086,16 +11032,16 @@ snapshots: slash: 3.0.0 stack-utils: 2.0.6 - jest-mock-extended@3.0.7(jest@29.7.0(@types/node@20.17.5)(ts-node@10.9.2(@swc/core@1.7.42)(@types/node@20.17.5)(typescript@5.6.3)))(typescript@5.6.3): + jest-mock-extended@3.0.7(jest@29.7.0(@types/node@20.17.6)(ts-node@10.9.2(@swc/core@1.9.2)(@types/node@20.17.6)(typescript@5.6.3)))(typescript@5.6.3): dependencies: - jest: 29.7.0(@types/node@20.17.5)(ts-node@10.9.2(@swc/core@1.7.42)(@types/node@20.17.5)(typescript@5.6.3)) + jest: 29.7.0(@types/node@20.17.6)(ts-node@10.9.2(@swc/core@1.9.2)(@types/node@20.17.6)(typescript@5.6.3)) ts-essentials: 10.0.3(typescript@5.6.3) typescript: 5.6.3 jest-mock@29.7.0: dependencies: '@jest/types': 29.6.3 - '@types/node': 20.17.5 + '@types/node': 20.17.6 jest-util: 29.7.0 jest-pnp-resolver@1.2.3(jest-resolve@29.7.0): @@ -11130,7 +11076,7 @@ snapshots: '@jest/test-result': 29.7.0 '@jest/transform': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 20.17.5 + '@types/node': 20.17.6 chalk: 4.1.2 emittery: 0.13.1 graceful-fs: 4.2.11 @@ -11158,7 +11104,7 @@ snapshots: '@jest/test-result': 29.7.0 '@jest/transform': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 20.17.5 + '@types/node': 20.17.6 chalk: 4.1.2 cjs-module-lexer: 1.4.1 collect-v8-coverage: 1.0.2 @@ -11204,7 +11150,7 @@ snapshots: jest-util@29.7.0: dependencies: '@jest/types': 29.6.3 - '@types/node': 20.17.5 + '@types/node': 20.17.6 chalk: 4.1.2 ci-info: 3.9.0 graceful-fs: 4.2.11 @@ -11223,7 +11169,7 @@ snapshots: dependencies: '@jest/test-result': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 20.17.5 + '@types/node': 20.17.6 ansi-escapes: 4.3.2 chalk: 4.1.2 emittery: 0.13.1 @@ -11232,17 +11178,17 @@ snapshots: jest-worker@29.7.0: dependencies: - '@types/node': 20.17.5 + '@types/node': 20.17.6 jest-util: 29.7.0 merge-stream: 2.0.0 supports-color: 8.1.1 - jest@29.7.0(@types/node@20.17.5)(ts-node@10.9.2(@swc/core@1.7.42)(@types/node@20.17.5)(typescript@5.6.3)): + jest@29.7.0(@types/node@20.17.6)(ts-node@10.9.2(@swc/core@1.9.2)(@types/node@20.17.6)(typescript@5.6.3)): dependencies: - '@jest/core': 29.7.0(ts-node@10.9.2(@swc/core@1.7.42)(@types/node@20.17.5)(typescript@5.6.3)) + '@jest/core': 29.7.0(ts-node@10.9.2(@swc/core@1.9.2)(@types/node@20.17.6)(typescript@5.6.3)) '@jest/types': 29.6.3 import-local: 3.2.0 - jest-cli: 29.7.0(@types/node@20.17.5)(ts-node@10.9.2(@swc/core@1.7.42)(@types/node@20.17.5)(typescript@5.6.3)) + jest-cli: 29.7.0(@types/node@20.17.6)(ts-node@10.9.2(@swc/core@1.9.2)(@types/node@20.17.6)(typescript@5.6.3)) transitivePeerDependencies: - '@types/node' - babel-plugin-macros @@ -11472,25 +11418,25 @@ snapshots: dependencies: repeat-string: 1.6.1 - markdownlint-cli2-formatter-default@0.0.5(markdownlint-cli2@0.14.0): + markdownlint-cli2-formatter-default@0.0.5(markdownlint-cli2@0.15.0): dependencies: - markdownlint-cli2: 0.14.0 + markdownlint-cli2: 0.15.0 - markdownlint-cli2@0.14.0: + markdownlint-cli2@0.15.0: dependencies: globby: 14.0.2 js-yaml: 4.1.0 jsonc-parser: 3.3.1 - markdownlint: 0.35.0 - markdownlint-cli2-formatter-default: 0.0.5(markdownlint-cli2@0.14.0) + markdownlint: 0.36.1 + markdownlint-cli2-formatter-default: 0.0.5(markdownlint-cli2@0.15.0) micromatch: 4.0.8 - markdownlint-micromark@0.1.10: {} + markdownlint-micromark@0.1.12: {} - markdownlint@0.35.0: + markdownlint@0.36.1: dependencies: markdown-it: 14.1.0 - markdownlint-micromark: 0.1.10 + markdownlint-micromark: 0.1.12 marked-terminal@7.2.1(marked@12.0.2): dependencies: @@ -11733,7 +11679,7 @@ snapshots: just-extend: 6.2.0 path-to-regexp: 8.2.0 - nock@13.5.5: + nock@13.5.6: dependencies: debug: 4.3.7 json-stringify-safe: 5.0.1 @@ -11784,7 +11730,7 @@ snapshots: node-preload@0.2.1: dependencies: - process-on-spawn: 1.0.0 + process-on-spawn: 1.1.0 node-releases@2.0.18: {} @@ -11824,7 +11770,7 @@ snapshots: npm-run-all2@7.0.1: dependencies: ansi-styles: 6.2.1 - cross-spawn: 7.0.3 + cross-spawn: 7.0.6 memorystream: 0.3.1 minimatch: 9.0.5 pidtree: 0.6.0 @@ -11873,7 +11819,7 @@ snapshots: make-dir: 3.1.0 node-preload: 0.2.1 p-map: 3.0.0 - process-on-spawn: 1.0.0 + process-on-spawn: 1.1.0 resolve-from: 5.0.0 rimraf: 3.0.2 signal-exit: 3.0.7 @@ -11885,12 +11831,7 @@ snapshots: object-assign@4.1.1: {} - object-inspect@1.13.2: {} - - object-is@1.1.6: - dependencies: - call-bind: 1.0.7 - define-properties: 1.2.1 + object-inspect@1.13.3: {} object-keys@1.1.1: {} @@ -11905,14 +11846,14 @@ snapshots: dependencies: call-bind: 1.0.7 define-properties: 1.2.1 - es-abstract: 1.23.3 + es-abstract: 1.23.5 es-object-atoms: 1.0.0 object.groupby@1.0.3: dependencies: call-bind: 1.0.7 define-properties: 1.2.1 - es-abstract: 1.23.3 + es-abstract: 1.23.5 object.values@1.2.0: dependencies: @@ -11932,9 +11873,7 @@ snapshots: dependencies: mimic-fn: 4.0.0 - openpgp@5.11.2: - dependencies: - asn1.js: 5.4.1 + openpgp@6.0.0: optional: true optionator@0.9.4: @@ -12163,7 +12102,7 @@ snapshots: ansi-styles: 5.2.0 react-is: 18.3.1 - pretty-ms@9.1.0: + pretty-ms@9.2.0: dependencies: parse-ms: 4.0.0 @@ -12172,7 +12111,7 @@ snapshots: process-nextick-args@2.0.1: {} - process-on-spawn@1.0.0: + process-on-spawn@1.1.0: dependencies: fromentries: 1.3.2 @@ -12205,7 +12144,7 @@ snapshots: '@protobufjs/path': 1.1.2 '@protobufjs/pool': 1.1.0 '@protobufjs/utf8': 1.1.0 - '@types/node': 20.17.5 + '@types/node': 20.17.6 long: 5.2.3 protocols@2.0.1: {} @@ -12223,7 +12162,7 @@ snapshots: purepack@1.0.6: {} - qs@6.13.0: + qs@6.13.1: dependencies: side-channel: 1.0.6 @@ -12456,7 +12395,7 @@ snapshots: dependencies: '@semantic-release/commit-analyzer': 13.0.0(semantic-release@24.2.0(typescript@5.6.3)) '@semantic-release/error': 4.0.0 - '@semantic-release/github': 11.0.0(semantic-release@24.2.0(typescript@5.6.3)) + '@semantic-release/github': 11.0.1(semantic-release@24.2.0(typescript@5.6.3)) '@semantic-release/npm': 12.0.1(semantic-release@24.2.0(typescript@5.6.3)) '@semantic-release/release-notes-generator': 14.0.1(semantic-release@24.2.0(typescript@5.6.3)) aggregate-error: 5.0.0 @@ -12546,7 +12485,7 @@ snapshots: call-bind: 1.0.7 es-errors: 1.3.0 get-intrinsic: 1.2.4 - object-inspect: 1.13.2 + object-inspect: 1.13.3 signal-exit@3.0.7: {} @@ -12676,10 +12615,6 @@ snapshots: dependencies: escape-string-regexp: 2.0.0 - stop-iteration-iterator@1.0.0: - dependencies: - internal-slot: 1.0.7 - stream-combiner2@1.1.1: dependencies: duplexer2: 0.1.4 @@ -12706,7 +12641,7 @@ snapshots: dependencies: call-bind: 1.0.7 define-properties: 1.2.1 - es-abstract: 1.23.3 + es-abstract: 1.23.5 es-object-atoms: 1.0.0 string.prototype.trimend@1.0.8: @@ -12915,12 +12850,12 @@ snapshots: optionalDependencies: typescript: 5.6.3 - ts-jest@29.2.5(@babel/core@7.26.0)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.26.0))(jest@29.7.0(@types/node@20.17.5)(ts-node@10.9.2(@swc/core@1.7.42)(@types/node@20.17.5)(typescript@5.6.3)))(typescript@5.6.3): + ts-jest@29.2.5(@babel/core@7.26.0)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.26.0))(jest@29.7.0(@types/node@20.17.6)(ts-node@10.9.2(@swc/core@1.9.2)(@types/node@20.17.6)(typescript@5.6.3)))(typescript@5.6.3): dependencies: bs-logger: 0.2.6 ejs: 3.1.10 fast-json-stable-stringify: 2.1.0 - jest: 29.7.0(@types/node@20.17.5)(ts-node@10.9.2(@swc/core@1.7.42)(@types/node@20.17.5)(typescript@5.6.3)) + jest: 29.7.0(@types/node@20.17.6)(ts-node@10.9.2(@swc/core@1.9.2)(@types/node@20.17.6)(typescript@5.6.3)) jest-util: 29.7.0 json5: 2.2.3 lodash.memoize: 4.1.2 @@ -12934,14 +12869,14 @@ snapshots: '@jest/types': 29.6.3 babel-jest: 29.7.0(@babel/core@7.26.0) - ts-node@10.9.2(@swc/core@1.7.42)(@types/node@20.17.5)(typescript@5.6.3): + ts-node@10.9.2(@swc/core@1.9.2)(@types/node@20.17.6)(typescript@5.6.3): dependencies: '@cspotcode/source-map-support': 0.8.1 '@tsconfig/node10': 1.0.11 '@tsconfig/node12': 1.0.11 '@tsconfig/node14': 1.0.3 '@tsconfig/node16': 1.0.4 - '@types/node': 20.17.5 + '@types/node': 20.17.6 acorn: 8.14.0 acorn-walk: 8.3.4 arg: 4.1.3 @@ -12952,7 +12887,7 @@ snapshots: v8-compile-cache-lib: 3.0.1 yn: 3.1.1 optionalDependencies: - '@swc/core': 1.7.42 + '@swc/core': 1.9.2 tsconfig-paths@3.15.0: dependencies: @@ -13045,7 +12980,7 @@ snapshots: dependencies: des.js: 1.1.0 js-md4: 0.3.2 - qs: 6.13.0 + qs: 6.13.1 tunnel: 0.0.6 underscore: 1.13.7 @@ -13201,13 +13136,6 @@ snapshots: is-string: 1.0.7 is-symbol: 1.0.4 - which-collection@1.0.2: - dependencies: - is-map: 2.0.3 - is-set: 2.0.3 - is-weakmap: 2.0.2 - is-weakset: 2.0.3 - which-module@2.0.1: {} which-typed-array@1.1.15: diff --git a/pyproject.toml b/pyproject.toml index 81a1dbeb22ab90..78f8e5bcb5f359 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [project] dependencies = [ - "mkdocs-material==9.5.44", + "mkdocs-material==9.5.45", "mkdocs-awesome-pages-plugin==2.9.3", ] requires-python = ">=3.11" diff --git a/tools/docker/Dockerfile b/tools/docker/Dockerfile index 93e40ce02a8655..17d73d3849a7fd 100644 --- a/tools/docker/Dockerfile +++ b/tools/docker/Dockerfile @@ -5,19 +5,19 @@ ARG BASE_IMAGE_TYPE=slim # -------------------------------------- # slim image # -------------------------------------- -FROM ghcr.io/renovatebot/base-image:9.4.4@sha256:929f57b34415175bdb70fd5dc9a03c4531fe40f441e4b141bca65f8ace32e9a8 AS slim-base +FROM ghcr.io/renovatebot/base-image:9.9.3@sha256:e56ca45f3c4b9fcb0afde9229d06db0be6f35b6aa98fa3c389dd5de8b8e26f20 AS slim-base # -------------------------------------- # full image # -------------------------------------- -FROM ghcr.io/renovatebot/base-image:9.4.3-full@sha256:9502eb0c36c823b0a2b24f083841ad9a69a150ff6d1fec68c5c81117a43e48a6 AS full-base +FROM ghcr.io/renovatebot/base-image:9.9.3-full@sha256:033e5e78cc4b17d3bf98e3e0008adb56383de07f9971a25e7c7abc93748d6ba6 AS full-base ENV RENOVATE_BINARY_SOURCE=global # -------------------------------------- # build image # -------------------------------------- -FROM --platform=$BUILDPLATFORM ghcr.io/renovatebot/base-image:9.4.4@sha256:929f57b34415175bdb70fd5dc9a03c4531fe40f441e4b141bca65f8ace32e9a8 AS build +FROM --platform=$BUILDPLATFORM ghcr.io/renovatebot/base-image:9.9.3@sha256:e56ca45f3c4b9fcb0afde9229d06db0be6f35b6aa98fa3c389dd5de8b8e26f20 AS build # We want a specific node version here # renovate: datasource=node-version @@ -95,6 +95,10 @@ COPY --link --from=build --chown=root:root /usr/local/renovate/ /usr/local/renov # make our node binary available as last in path RUN ln -sf /usr/local/renovate/node /bin/node +# ensure default base and cache directories exist. +RUN mkdir -p /tmp/renovate/cache && \ + chmod -R 777 /tmp/renovate + # test RUN set -ex; \ renovate --version; \ diff --git a/tools/docker/bin/renovate b/tools/docker/bin/renovate index dee1d6137014f8..043e88c6995c67 100755 --- a/tools/docker/bin/renovate +++ b/tools/docker/bin/renovate @@ -5,4 +5,9 @@ if [[ -f "/usr/local/etc/env" && -z "${CONTAINERBASE_ENV+x}" ]]; then . /usr/local/etc/env fi +if [[ ! -d "/tmp/containerbase" ]]; then + # initialize all prepared tools + containerbase-cli init tool all +fi + /usr/local/renovate/node --use-openssl-ca "${RENOVATE_NODE_ARGS[@]}" /usr/local/renovate/dist/renovate.js "$@" diff --git a/tools/docker/bin/renovate-config-validator b/tools/docker/bin/renovate-config-validator index 384c372993acef..44bbe8a8bff909 100755 --- a/tools/docker/bin/renovate-config-validator +++ b/tools/docker/bin/renovate-config-validator @@ -5,4 +5,9 @@ if [[ -f "/usr/local/etc/env" && -z "${CONTAINERBASE_ENV+x}" ]]; then . /usr/local/etc/env fi +if [[ ! -d "/tmp/containerbase" ]]; then + # initialize all prepared tools + containerbase-cli init tool all +fi + /usr/local/renovate/node --use-openssl-ca /usr/local/renovate/dist/config-validator.js "$@" diff --git a/tools/docker/bin/renovate-entrypoint.sh b/tools/docker/bin/renovate-entrypoint.sh index 8d06f1fdb2f038..7e0d39a1779887 100755 --- a/tools/docker/bin/renovate-entrypoint.sh +++ b/tools/docker/bin/renovate-entrypoint.sh @@ -5,6 +5,11 @@ if [[ -f "/usr/local/etc/env" && -z "${CONTAINERBASE_ENV+x}" ]]; then . /usr/local/etc/env fi +if [[ ! -d "/tmp/containerbase" ]]; then + # initialize all prepared tools + containerbase-cli init tool all +fi + if [[ "${1:0:1}" = '-' ]]; then # assume $1 is renovate flag set -- renovate "$@" diff --git a/tools/mkdocs/mkdocs.yml b/tools/mkdocs/mkdocs.yml index 5b8eef98dd2962..cf68267748d9c9 100644 --- a/tools/mkdocs/mkdocs.yml +++ b/tools/mkdocs/mkdocs.yml @@ -59,7 +59,7 @@ theme: # The custom_dir points to the overrides folder, this folder has the code for our announcement bar. # The easiest way to disable the announcement bar is to comment out the custom_dir: overrides entry in this mkdocs.yml file. # https://squidfunk.github.io/mkdocs-material/customization/#setup-and-theme-structure - # custom_dir: overrides + custom_dir: overrides logo: 'assets/images/logo.png' favicon: 'assets/images/logo.png' diff --git a/tools/mkdocs/overrides/main.html b/tools/mkdocs/overrides/main.html index 63eeff390ae725..7c2c95214149eb 100644 --- a/tools/mkdocs/overrides/main.html +++ b/tools/mkdocs/overrides/main.html @@ -6,6 +6,6 @@ {% block announce %}

- We released Renovate v38. Read the Release notes for major versions of Renovate to learn what's changed. + We released Renovate v39. Read the Release notes for major versions of Renovate to learn what's changed.

{% endblock %}