diff --git a/.devcontainer/Dockerfile b/.devcontainer/Dockerfile index 035b15af331d8b..ae399c5e43015d 100644 --- a/.devcontainer/Dockerfile +++ b/.devcontainer/Dockerfile @@ -1 +1 @@ -FROM ghcr.io/containerbase/devcontainer:13.4.3 +FROM ghcr.io/containerbase/devcontainer:13.4.5 diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index ad2b02e2949cd3..bfcc54a25cf8e5 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -411,7 +411,7 @@ jobs: - name: Save coverage artifacts if: (success() || failure()) && github.event.pull_request.draft != true && matrix.coverage - uses: actions/upload-artifact@b4b15b8c7c6ac21ea08fcf65892d2ee8f75cf882 # v4.4.3 + uses: actions/upload-artifact@6f51ac03b9356f520e9adb1b1b7802705f340c2b # v4.5.0 with: name: ${{ matrix.upload-artifact-name }} path: | @@ -567,7 +567,7 @@ jobs: run: pnpm test-e2e:pack - name: Upload - uses: actions/upload-artifact@b4b15b8c7c6ac21ea08fcf65892d2ee8f75cf882 # v4.4.3 + uses: actions/upload-artifact@6f51ac03b9356f520e9adb1b1b7802705f340c2b # v4.5.0 with: name: renovate-package path: renovate-0.0.0-semantic-release.tgz @@ -611,7 +611,7 @@ jobs: run: pnpm test:docs - name: Upload - uses: actions/upload-artifact@b4b15b8c7c6ac21ea08fcf65892d2ee8f75cf882 # v4.4.3 + uses: actions/upload-artifact@6f51ac03b9356f520e9adb1b1b7802705f340c2b # v4.5.0 with: name: docs path: tmp/docs/ @@ -684,7 +684,7 @@ jobs: show-progress: false - name: docker-config - uses: containerbase/internal-tools@16a59ac6156118c10fd17d3cfd3fc746e7069809 # v3.5.6 + uses: containerbase/internal-tools@f022a1677af8af9a36c53589e1b07edb932a3c84 # v3.5.10 with: command: docker-config diff --git a/.github/workflows/find-issues-with-missing-labels.yml b/.github/workflows/find-issues-with-missing-labels.yml new file mode 100644 index 00000000000000..f0e41b7ae98585 --- /dev/null +++ b/.github/workflows/find-issues-with-missing-labels.yml @@ -0,0 +1,22 @@ +name: 'Find issues with missing labels' + +on: + schedule: + # Run every Sunday at midnight + - cron: '0 0 * * 0' + +jobs: + check-unlabeled-issues: + runs-on: ubuntu-latest + + permissions: + issues: write + + env: + GH_TOKEN: ${{ github.token }} + + steps: + - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 + + - name: Search for issues with missing labels + run: bash ./tools/find-issues-with-missing-labels.sh diff --git a/.github/workflows/scorecard.yml b/.github/workflows/scorecard.yml index de03e2e09ecfd4..d2b0c20e30924d 100644 --- a/.github/workflows/scorecard.yml +++ b/.github/workflows/scorecard.yml @@ -43,7 +43,7 @@ jobs: # Upload the results as artifacts (optional). Commenting out will disable uploads of run results in SARIF # format to the repository Actions tab. - name: 'Upload artifact' - uses: actions/upload-artifact@b4b15b8c7c6ac21ea08fcf65892d2ee8f75cf882 # v4.4.3 + uses: actions/upload-artifact@6f51ac03b9356f520e9adb1b1b7802705f340c2b # v4.5.0 with: name: SARIF file path: results.sarif diff --git a/docs/development/issue-labeling.md b/docs/development/issue-labeling.md index e294b2745eddf0..35038eab39c8f3 100644 --- a/docs/development/issue-labeling.md +++ b/docs/development/issue-labeling.md @@ -221,3 +221,15 @@ Add a label `auto:retry-latest` to any Discussion where the user should retry th Apply the `self-hosted` label when an issue is applicable only to users who self-administer their own bot. + +## Automated check for Issues with missing labels + +We have a GitHub Action (`find-issues-with-missing-labels.yml`) to find issues on our repository that are missing labels. +Any Issues with missing labels will be put in a list in a new "error" Issue. + +The Action runs each week. + +### Apply the correct labels manually + +The Action will _not_ fix any badly labeled issues. +This means that you, or we, must apply the correct labels to any affected Issue. diff --git a/docs/usage/config-overview.md b/docs/usage/config-overview.md index 669e15ea87607b..b627789ba3e473 100644 --- a/docs/usage/config-overview.md +++ b/docs/usage/config-overview.md @@ -1,12 +1,24 @@ # Renovate configuration overview -When Renovate runs on a repository, the final config used is derived from the: +Each time Renovate runs on a repository it reads the configuration files listed below and creates a final config. +This final config describes what Renovate will do during its run. -- Default config -- Global config -- Inherited config -- Repository config -- Resolved presets referenced in config +The final config is internal to Renovate, and is _not_ saved or cached for a later run. +But you can always find the final config in Renovate's logs. + +Renovate reads the configuration files in this order (from from top to bottom): + +1. Default config +2. Global config + - File config + - Environment config + - CLI config +3. Inherited config +4. Resolved presets referenced in config +5. Repository config + +Items with a higher number override items that have lower numbers. +If the item has the `mergeable` property, it will merge with lower numbers instead. !!! note diff --git a/docs/usage/docker.md b/docs/usage/docker.md index 13624d4be94632..7e57142b22d409 100644 --- a/docs/usage/docker.md +++ b/docs/usage/docker.md @@ -478,7 +478,7 @@ Make sure to install the Google Cloud SDK into the custom image, as you need the For example: ```Dockerfile -FROM renovate/renovate:39.57.4 +FROM renovate/renovate:39.69.2 # Include the "Docker tip" which you can find here https://cloud.google.com/sdk/docs/install # under "Installation" for "Debian/Ubuntu" RUN ... diff --git a/docs/usage/examples/opentelemetry.md b/docs/usage/examples/opentelemetry.md index 67cb4f7001bc2d..2e6181fb36a2ef 100644 --- a/docs/usage/examples/opentelemetry.md +++ b/docs/usage/examples/opentelemetry.md @@ -19,7 +19,7 @@ services: - '4317' otel-collector: - image: otel/opentelemetry-collector-contrib:0.115.1 + image: otel/opentelemetry-collector-contrib:0.116.1 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 a13695bfba048a..d493d4ef5ab3f7 100644 --- a/docs/usage/examples/self-hosting.md +++ b/docs/usage/examples/self-hosting.md @@ -25,8 +25,8 @@ It builds `latest` based on the `main` branch and all SemVer tags are published ```sh title="Example of valid tags" docker run --rm renovate/renovate docker run --rm renovate/renovate:39 -docker run --rm renovate/renovate:39.57 -docker run --rm renovate/renovate:39.57.4 +docker run --rm renovate/renovate:39.69 +docker run --rm renovate/renovate:39.69.2 ``` @@ -62,7 +62,7 @@ spec: - name: renovate # Update this to the latest available and then enable Renovate on # the manifest - image: renovate/renovate:39.57.4 + image: renovate/renovate:39.69.2 args: - user/repo # Environment Variables @@ -121,7 +121,7 @@ spec: template: spec: containers: - - image: renovate/renovate:39.57.4 + - image: renovate/renovate:39.69.2 name: renovate-bot env: # For illustration purposes, please use secrets. - name: RENOVATE_PLATFORM @@ -367,7 +367,7 @@ spec: containers: - name: renovate # Update this to the latest available and then enable Renovate on the manifest - image: renovate/renovate:39.57.4 + image: renovate/renovate:39.69.2 volumeMounts: - name: ssh-key-volume readOnly: true diff --git a/docs/usage/mend-hosted/migrating-secrets.md b/docs/usage/mend-hosted/migrating-secrets.md index d73839009896c9..c02f903dbe2914 100644 --- a/docs/usage/mend-hosted/migrating-secrets.md +++ b/docs/usage/mend-hosted/migrating-secrets.md @@ -8,7 +8,7 @@ They can be referenced from the Renovate config files inside the repo using `{{ ## Old method -This method will stop working on 01-Oct-2024: +This method is deprecated: ```json title="Put encrypted secret in Renovate config" { @@ -25,7 +25,7 @@ This method will stop working on 01-Oct-2024: ## New method -This is the new method, that you should start using: +This is the new method that you should start using: ```json title="Reference the app secret in the Renovate config" { diff --git a/docs/usage/upgrade-best-practices.md b/docs/usage/upgrade-best-practices.md index 9f95f0714aac0a..7d3e429b39dd03 100644 --- a/docs/usage/upgrade-best-practices.md +++ b/docs/usage/upgrade-best-practices.md @@ -88,7 +88,7 @@ Pinning your development dependencies means you, and your team, are using the sa This makes the developer-tool side of your builds reproducible. Debugging faulty versions of your tools is easier, because you can use Git to check out different versions of the tools. -### Why updating often is easier, faster and safer +## Why updating often is easier, faster and safer You may think that updating takes too much time. But updating regularly actually _saves_ you time, because: @@ -98,14 +98,14 @@ But updating regularly actually _saves_ you time, because: - You'll be ready for CVE patches - You'll look for ways to automate the updates -#### Regular updates tend to be small +### Regular updates tend to be small Firstly, when you update regularly updates tend to be small. The update's changelogs are small, quick to read, and easy to understand. You probably only need to make changes in a few places (if at all) to merge the PR and get going again. Because you're reading the changelogs regularly, you'll get a feel for the direction of the upstream project. -#### Applying `major` updates is easier +### Applying `major` updates is easier Secondly, when you're current with upstream, `major` updates are easier. This is because you already: @@ -114,14 +114,14 @@ This is because you already: - use the latest names for features/variables - read the previous changelogs -#### You'll be ready for CVE patches +### You'll be ready for CVE patches Thirdly, you'll be ready when a upstream package releases a patch for a critical CVE. If you're current, you can review and merge Renovate's PR quickly. When you're behind on updates, you'll have a bad time, because you must read _more_ changelogs and make _more_ changes before you can merge the critical patch. -#### You'll look for ways to automate the updates +### You'll look for ways to automate the updates Finally, when you're updating often, you'll start looking for ways to automate the updates. You may start to [`automerge`](./configuration-options.md#automerge) development dependencies like Prettier, or ESLint when the linter passes. diff --git a/lib/config/options/index.ts b/lib/config/options/index.ts index db79053add6c99..065238c6f24344 100644 --- a/lib/config/options/index.ts +++ b/lib/config/options/index.ts @@ -516,7 +516,7 @@ const options: RenovateOptions[] = [ description: 'Change this value to override the default Renovate sidecar image.', type: 'string', - default: 'ghcr.io/containerbase/sidecar:13.4.3', + default: 'ghcr.io/containerbase/sidecar:13.4.5', globalOnly: true, }, { diff --git a/lib/config/presets/internal/group.ts b/lib/config/presets/internal/group.ts index d0735ef136ada9..e600ed3f318664 100644 --- a/lib/config/presets/internal/group.ts +++ b/lib/config/presets/internal/group.ts @@ -346,6 +346,16 @@ const staticGroups = { }, ], }, + micrometer: { + description: + "Group Micrometer packages together, e.g. 'io.micrometer:micrometer-core'.", + packageRules: [ + { + groupName: 'micrometer', + matchPackageNames: ['io.micrometer:micrometer-**'], + }, + ], + }, nodeJs: { description: "Group anything that looks like Node.js together so that it's updated together.", @@ -467,6 +477,7 @@ const staticGroups = { 'group:jestPlusTypes', 'group:jwtFramework', 'group:kubernetes', + 'group:micrometer', 'group:phpstan', 'group:polymer', 'group:react', diff --git a/lib/logger/index.spec.ts b/lib/logger/index.spec.ts index a2eb3e3beb19c3..6fc7c67dead27d 100644 --- a/lib/logger/index.spec.ts +++ b/lib/logger/index.spec.ts @@ -1,8 +1,10 @@ import type { WriteStream } from 'node:fs'; +import bunyan from 'bunyan'; import fs from 'fs-extra'; import { partial } from '../../test/util'; import { add } from '../util/host-rules'; import { addSecretForSanitizing as addSecret } from '../util/sanitize'; +import type { RenovateLogger } from './renovate-logger'; import { addMeta, addStream, @@ -17,16 +19,38 @@ import { setMeta, } from '.'; +const initialContext = 'initial_context'; + jest.unmock('.'); +jest.mock('nanoid', () => ({ + nanoid: () => 'initial_context', +})); + +const bunyanDebugSpy = jest.spyOn(bunyan.prototype, 'debug'); describe('logger/index', () => { it('inits', () => { expect(logger).toBeDefined(); }); + it('uses an auto-generated log context', () => { + logger.debug(''); + + expect(bunyanDebugSpy).toHaveBeenCalledWith( + { logContext: initialContext }, + '', + ); + }); + it('sets and gets context', () => { - setContext('123test'); - expect(getContext()).toBe('123test'); + const logContext = '123test'; + const msg = 'test'; + setContext(logContext); + + logger.debug(msg); + + expect(getContext()).toBe(logContext); + expect(bunyanDebugSpy).toHaveBeenCalledWith({ logContext }, msg); }); it('supports logging with metadata', () => { @@ -41,16 +65,62 @@ describe('logger/index', () => { expect(() => logger.debug('some meta')).not.toThrow(); }); - it('sets meta', () => { - expect(() => setMeta({ any: 'test' })).not.toThrow(); - }); + describe('meta functions', () => { + beforeEach(() => { + setContext(initialContext); + }); - it('adds meta', () => { - expect(() => addMeta({ new: 'test' })).not.toThrow(); - }); + it('sets meta', () => { + const logMeta = { foo: 'foo' }; + const meta = { bar: 'bar' }; + setMeta(meta); + + logger.debug(logMeta, ''); + + expect(bunyanDebugSpy).toHaveBeenCalledWith( + { logContext: initialContext, ...meta, ...logMeta }, + '', + ); + expect(bunyanDebugSpy).toHaveBeenCalledTimes(1); + }); - it('removes meta', () => { - expect(() => removeMeta(['new'])).not.toThrow(); + it('adds meta', () => { + const logMeta = { foo: 'foo' }; + const meta = { bar: 'bar' }; + addMeta(meta); + + logger.debug(logMeta, ''); + + expect(bunyanDebugSpy).toHaveBeenCalledWith( + { logContext: initialContext, ...meta, ...logMeta }, + '', + ); + expect(bunyanDebugSpy).toHaveBeenCalledTimes(1); + }); + + it('removes meta', () => { + const logMeta = { foo: 'foo' }; + const meta = { bar: 'bar' }; + setMeta(meta); + + logger.debug(logMeta, ''); + + expect(bunyanDebugSpy).toHaveBeenCalledWith( + { logContext: initialContext, ...meta, ...logMeta }, + '', + ); + expect(bunyanDebugSpy).toHaveBeenCalledTimes(1); + + removeMeta(Object.keys(meta)); + + logger.debug(logMeta, ''); + + expect(bunyanDebugSpy).toHaveBeenCalledWith( + { logContext: initialContext, ...logMeta }, + '', + ); + expect(bunyanDebugSpy).toHaveBeenCalledTimes(2); + }); }); it('sets level', () => { @@ -59,15 +129,30 @@ describe('logger/index', () => { expect(logLevel()).toBe('debug'); }); + it('should create a child logger', () => { + const childLogger = (logger as RenovateLogger).childLogger(); + const loggerSpy = jest.spyOn(logger, 'debug'); + const childLoggerSpy = jest.spyOn(childLogger, 'debug'); + + childLogger.debug('test'); + + expect(loggerSpy).toHaveBeenCalledTimes(0); + expect(childLoggerSpy).toHaveBeenCalledTimes(1); + expect(childLoggerSpy).toHaveBeenCalledWith('test'); + }); + it('saves problems', () => { addSecret('p4$$w0rd'); levels('stdout', 'fatal'); + logger.fatal('fatal error'); logger.error('some meta'); logger.error({ some: 'meta', password: 'super secret' }); logger.error({ some: 'meta' }, 'message'); logger.warn('a warning with a p4$$w0rd'); + logger.trace('ignored'); logger.info('ignored'); expect(getProblems()).toMatchObject([ + { msg: 'fatal error' }, { msg: 'some meta' }, { some: 'meta', password: '***********' }, { some: 'meta', msg: 'message' }, diff --git a/lib/logger/index.ts b/lib/logger/index.ts index f066e05f97b22e..a120c4a4584b2f 100644 --- a/lib/logger/index.ts +++ b/lib/logger/index.ts @@ -6,9 +6,8 @@ import upath from 'upath'; import cmdSerializer from './cmd-serializer'; import configSerializer from './config-serializer'; import errSerializer from './err-serializer'; -import { once, reset as onceReset } from './once'; import { RenovateStream } from './pretty-stdout'; -import { getRemappedLevel } from './remap'; +import { RenovateLogger } from './renovate-logger'; import type { BunyanRecord, Logger } from './types'; import { ProblemStream, @@ -17,161 +16,120 @@ import { withSanitizer, } from './utils'; -let logContext: string = getEnv('LOG_CONTEXT') ?? nanoid(); -let curMeta: Record = {}; - const problems = new ProblemStream(); - let stdoutLevel = validateLogLevel(getEnv('LOG_LEVEL'), 'info'); -const stdout: bunyan.Stream = { - name: 'stdout', - level: stdoutLevel, - stream: process.stdout, -}; export function logLevel(): bunyan.LogLevelString { return stdoutLevel; } -// istanbul ignore if: not testable -if (getEnv('LOG_FORMAT') !== 'json') { - // TODO: typings (#9615) - const prettyStdOut = new RenovateStream() as any; - prettyStdOut.pipe(process.stdout); - stdout.stream = prettyStdOut; - stdout.type = 'raw'; -} - -const bunyanLogger = bunyan.createLogger({ - name: 'renovate', - serializers: { - body: configSerializer, - cmd: cmdSerializer, - config: configSerializer, - migratedConfig: configSerializer, - originalConfig: configSerializer, - presetConfig: configSerializer, - oldConfig: configSerializer, - newConfig: configSerializer, - err: errSerializer, - }, - streams: [ - stdout, - { - name: 'problems', - level: 'warn' as bunyan.LogLevel, - stream: problems as any, - type: 'raw', - }, - ].map(withSanitizer), -}); - -const logFactory = ( - _level: bunyan.LogLevelString, -): ((p1: unknown, p2: unknown) => void) => { - return (p1: any, p2: any): void => { - let level = _level; - if (p2) { - // meta and msg provided - const msg = p2; - const meta: Record = { logContext, ...curMeta, ...p1 }; - const remappedLevel = getRemappedLevel(msg); - // istanbul ignore if: not testable - if (remappedLevel) { - meta.oldLevel = level; - level = remappedLevel; - } - bunyanLogger[level](meta, msg); - } else if (is.string(p1)) { - // only message provided - const msg = p1; - const meta: Record = { logContext, ...curMeta }; - const remappedLevel = getRemappedLevel(msg); - // istanbul ignore if: not testable - if (remappedLevel) { - meta.oldLevel = level; - level = remappedLevel; - } - bunyanLogger[level](meta, msg); - } else { - // only meta provided - bunyanLogger[level]({ logContext, ...curMeta, ...p1 }); - } +export function createDefaultStreams( + stdoutLevel: bunyan.LogLevelString, + problems: ProblemStream, + logFile: string | undefined, +): bunyan.Stream[] { + const stdout: bunyan.Stream = { + name: 'stdout', + level: stdoutLevel, + stream: process.stdout, }; -}; - -const loggerLevels: bunyan.LogLevelString[] = [ - 'trace', - 'debug', - 'info', - 'warn', - 'error', - 'fatal', -]; - -export const logger: Logger = { once: { reset: onceReset } } as any; - -loggerLevels.forEach((loggerLevel) => { - logger[loggerLevel] = logFactory(loggerLevel) as never; - - const logOnceFn = (p1: any, p2: any): void => { - once(() => { - const logFn = logger[loggerLevel]; - if (is.undefined(p2)) { - logFn(p1); - } else { - logFn(p1, p2); - } - }, logOnceFn); + + // istanbul ignore if: not testable + if (getEnv('LOG_FORMAT') !== 'json') { + // TODO: typings (#9615) + const prettyStdOut = new RenovateStream() as any; + prettyStdOut.pipe(process.stdout); + stdout.stream = prettyStdOut; + stdout.type = 'raw'; + } + + const problemsStream: bunyan.Stream = { + name: 'problems', + level: 'warn' as bunyan.LogLevel, + stream: problems as any, + type: 'raw', }; - logger.once[loggerLevel] = logOnceFn as never; -}); -const logFile = getEnv('LOG_FILE'); -// istanbul ignore if: not easily testable -if (is.string(logFile)) { - // ensure log file directory exists + // istanbul ignore next: not easily testable + const logFileStream: bunyan.Stream | undefined = is.string(logFile) + ? createLogFileStream(logFile) + : undefined; + + return [stdout, problemsStream, logFileStream].filter( + Boolean, + ) as bunyan.Stream[]; +} + +// istanbul ignore next: not easily testable +function createLogFileStream(logFile: string): bunyan.Stream { + // Ensure log file directory exists const directoryName = upath.dirname(logFile); fs.ensureDirSync(directoryName); - addStream({ + return { name: 'logfile', path: logFile, level: validateLogLevel(getEnv('LOG_FILE_LEVEL'), 'debug'), + }; +} + +function serializedSanitizedLogger(streams: bunyan.Stream[]): bunyan { + return bunyan.createLogger({ + name: 'renovate', + serializers: { + body: configSerializer, + cmd: cmdSerializer, + config: configSerializer, + migratedConfig: configSerializer, + originalConfig: configSerializer, + presetConfig: configSerializer, + oldConfig: configSerializer, + newConfig: configSerializer, + err: errSerializer, + }, + streams: streams.map(withSanitizer), }); } +const defaultStreams = createDefaultStreams( + stdoutLevel, + problems, + getEnv('LOG_FILE'), +); + +const bunyanLogger = serializedSanitizedLogger(defaultStreams); +const logContext = getEnv('LOG_CONTEXT') ?? nanoid(); +const loggerInternal = new RenovateLogger(bunyanLogger, logContext, {}); + +export const logger: Logger = loggerInternal; + export function setContext(value: string): void { - logContext = value; + loggerInternal.logContext = value; } export function getContext(): any { - return logContext; + return loggerInternal.logContext; } // setMeta overrides existing meta, may remove fields if no longer existing export function setMeta(obj: Record): void { - curMeta = { ...obj }; + loggerInternal.setMeta(obj); } // addMeta overrides or adds fields but does not remove any export function addMeta(obj: Record): void { - curMeta = { ...curMeta, ...obj }; + loggerInternal.addMeta(obj); } // removeMeta removes the provided fields from meta export function removeMeta(fields: string[]): void { - Object.keys(curMeta).forEach((key) => { - if (fields.includes(key)) { - delete curMeta[key]; - } - }); + loggerInternal.removeMeta(fields); } export /* istanbul ignore next */ function addStream( stream: bunyan.Stream, ): void { - bunyanLogger.addStream(withSanitizer(stream)); + loggerInternal.addStream(stream); } /** diff --git a/lib/logger/renovate-logger.ts b/lib/logger/renovate-logger.ts new file mode 100644 index 00000000000000..096b763ec42d4d --- /dev/null +++ b/lib/logger/renovate-logger.ts @@ -0,0 +1,156 @@ +import is from '@sindresorhus/is'; +import type * as bunyan from 'bunyan'; +import { once, reset as onceReset } from './once'; +import { getRemappedLevel } from './remap'; +import type { Logger } from './types'; +import { getMessage, toMeta, withSanitizer } from './utils'; + +const loggerLevels: bunyan.LogLevelString[] = [ + 'trace', + 'debug', + 'info', + 'warn', + 'error', + 'fatal', +]; + +type LoggerFunction = (p1: string | Record, p2?: string) => void; + +export class RenovateLogger implements Logger { + readonly logger: Logger = { once: { reset: onceReset } } as any; + readonly once = this.logger.once; + + constructor( + private readonly bunyanLogger: bunyan, + private context: string, + private meta: Record, + ) { + for (const level of loggerLevels) { + this.logger[level] = this.logFactory(level) as never; + this.logger.once[level] = this.logOnceFn(level); + } + } + + trace(p1: string): void; + trace(p1: Record, p2?: string): void; + trace(p1: string | Record, p2?: string): void { + this.log('trace', p1, p2); + } + + debug(p1: string): void; + debug(p1: Record, p2?: string): void; + debug(p1: string | Record, p2?: string): void { + this.log('debug', p1, p2); + } + + info(p1: string): void; + info(p1: Record, p2?: string): void; + info(p1: string | Record, p2?: string): void { + this.log('info', p1, p2); + } + + warn(p1: string): void; + warn(p1: Record, p2?: string): void; + warn(p1: string | Record, p2?: string): void { + this.log('warn', p1, p2); + } + + error(p1: string): void; + error(p1: Record, p2?: string): void; + error(p1: string | Record, p2?: string): void { + this.log('error', p1, p2); + } + + fatal(p1: string): void; + fatal(p1: Record, p2?: string): void; + fatal(p1: string | Record, p2?: string): void { + this.log('fatal', p1, p2); + } + + addStream(stream: bunyan.Stream): void { + this.bunyanLogger.addStream(withSanitizer(stream)); + } + + childLogger(): RenovateLogger { + return new RenovateLogger( + this.bunyanLogger.child({}), + this.context, + this.meta, + ); + } + + get logContext(): string { + return this.context; + } + + set logContext(context: string) { + this.context = context; + } + + setMeta(obj: Record): void { + this.meta = { ...obj }; + } + + addMeta(obj: Record): void { + this.meta = { ...this.meta, ...obj }; + } + + removeMeta(fields: string[]): void { + for (const key of Object.keys(this.meta)) { + if (fields.includes(key)) { + delete this.meta[key]; + } + } + } + + private logFactory(_level: bunyan.LogLevelString): LoggerFunction { + return (p1: string | Record, p2?: string): void => { + const meta: Record = { + logContext: this.context, + ...this.meta, + ...toMeta(p1), + }; + const msg = getMessage(p1, p2); + let level = _level; + + if (is.string(msg)) { + const remappedLevel = getRemappedLevel(msg); + // istanbul ignore if: not easily testable + if (remappedLevel) { + meta.oldLevel = level; + level = remappedLevel; + } + this.bunyanLogger[level](meta, msg); + } else { + this.bunyanLogger[level](meta); + } + }; + } + + private logOnceFn(level: bunyan.LogLevelString): LoggerFunction { + const logOnceFn = (p1: string | Record, p2?: string): void => { + once(() => { + const logFn = this[level].bind(this); // bind to the instance. + if (is.string(p1)) { + logFn(p1); + } else { + logFn(p1, p2); + } + }, logOnceFn); + }; + return logOnceFn; + } + + private log( + level: bunyan.LogLevelString, + p1: string | Record, + p2?: string, + ): void { + const logFn = this.logger[level]; + if (is.string(p1)) { + logFn(p1); + } else { + logFn(p1, p2); + } + } +} diff --git a/lib/logger/utils.ts b/lib/logger/utils.ts index 5b2d512601ac71..b85f2c44de22e4 100644 --- a/lib/logger/utils.ts +++ b/lib/logger/utils.ts @@ -339,3 +339,16 @@ export function getEnv(key: string): string | undefined { .map((v) => v?.toLowerCase().trim()) .find(is.nonEmptyStringAndNotWhitespace); } + +export function getMessage( + p1: string | Record, + p2?: string, +): string | undefined { + return is.string(p1) ? p1 : p2; +} + +export function toMeta( + p1: string | Record, +): Record { + return is.object(p1) ? p1 : {}; +} diff --git a/lib/modules/datasource/github-runners/index.spec.ts b/lib/modules/datasource/github-runners/index.spec.ts index 3d9d0ca048ba2a..cddc31305487da 100644 --- a/lib/modules/datasource/github-runners/index.spec.ts +++ b/lib/modules/datasource/github-runners/index.spec.ts @@ -13,7 +13,7 @@ describe('modules/datasource/github-runners/index', () => { releases: [ { version: '16.04', isDeprecated: true }, { version: '18.04', isDeprecated: true }, - { version: '20.04' }, + { version: '20.04', isDeprecated: true }, { version: '22.04' }, { version: '24.04' }, ], diff --git a/lib/modules/datasource/github-runners/index.ts b/lib/modules/datasource/github-runners/index.ts index 9c998e98dbd298..2fe484344c62d4 100644 --- a/lib/modules/datasource/github-runners/index.ts +++ b/lib/modules/datasource/github-runners/index.ts @@ -19,7 +19,7 @@ export class GithubRunnersDatasource extends Datasource { ubuntu: [ { version: '24.04' }, { version: '22.04' }, - { version: '20.04' }, + { version: '20.04', isDeprecated: true }, { version: '18.04', isDeprecated: true }, { version: '16.04', isDeprecated: true }, ], diff --git a/lib/modules/manager/circleci/extract.spec.ts b/lib/modules/manager/circleci/extract.spec.ts index 7feeb83add7213..25915c53639f84 100644 --- a/lib/modules/manager/circleci/extract.spec.ts +++ b/lib/modules/manager/circleci/extract.spec.ts @@ -249,5 +249,65 @@ describe('modules/manager/circleci/extract', () => { }, ]); }); + + it('extracts orb definitions', () => { + const res = extractPackageFile(codeBlock` + version: 2.1 + + orbs: + myorb: + orbs: + python: circleci/python@2.1.1 + + executors: + python: + docker: + - image: cimg/python:3.9 + + jobs: + test_image: + docker: + - image: cimg/python:3.7 + steps: + - checkout + + workflows: + Test: + jobs: + - myorb/test_image`); + + expect(res).toEqual({ + deps: [ + { + currentValue: '2.1.1', + datasource: 'orb', + depName: 'python', + depType: 'orb', + packageName: 'circleci/python', + versioning: 'npm', + }, + { + autoReplaceStringTemplate: + '{{depName}}{{#if newValue}}:{{newValue}}{{/if}}{{#if newDigest}}@{{newDigest}}{{/if}}', + currentDigest: undefined, + currentValue: '3.9', + datasource: 'docker', + depName: 'cimg/python', + depType: 'docker', + replaceString: 'cimg/python:3.9', + }, + { + autoReplaceStringTemplate: + '{{depName}}{{#if newValue}}:{{newValue}}{{/if}}{{#if newDigest}}@{{newDigest}}{{/if}}', + currentDigest: undefined, + currentValue: '3.7', + datasource: 'docker', + depName: 'cimg/python', + depType: 'docker', + replaceString: 'cimg/python:3.7', + }, + ], + }); + }); }); }); diff --git a/lib/modules/manager/circleci/extract.ts b/lib/modules/manager/circleci/extract.ts index 660fb4eb35e620..8748635cf59595 100644 --- a/lib/modules/manager/circleci/extract.ts +++ b/lib/modules/manager/circleci/extract.ts @@ -9,20 +9,16 @@ import type { PackageDependency, PackageFileContent, } from '../types'; -import { CircleCiFile, type CircleCiJob } from './schema'; +import { CircleCiFile, type CircleCiJob, type CircleCiOrb } from './schema'; -export function extractPackageFile( - content: string, - packageFile?: string, +function extractDefinition( + definition: CircleCiOrb | CircleCiFile, config?: ExtractConfig, -): PackageFileContent | null { +): PackageDependency[] { const deps: PackageDependency[] = []; - try { - const parsed = parseSingleYaml(content, { - customSchema: CircleCiFile, - }); - for (const [key, orb] of Object.entries(parsed.orbs ?? {})) { + for (const [key, orb] of Object.entries(definition.orbs ?? {})) { + if (typeof orb === 'string') { const [packageName, currentValue] = orb.split('@'); deps.push({ @@ -33,21 +29,40 @@ export function extractPackageFile( versioning: npmVersioning.id, datasource: OrbDatasource.id, }); + } else { + deps.push(...extractDefinition(orb, config)); } + } - // extract environments - const environments: CircleCiJob[] = [ - Object.values(parsed.executors ?? {}), - Object.values(parsed.jobs ?? {}), - ].flat(); - for (const job of environments) { - for (const dockerElement of coerceArray(job.docker)) { - deps.push({ - ...getDep(dockerElement.image, true, config?.registryAliases), - depType: 'docker', - }); - } + // extract environments + const environments: CircleCiJob[] = [ + Object.values(definition.executors ?? {}), + Object.values(definition.jobs ?? {}), + ].flat(); + for (const job of environments) { + for (const dockerElement of coerceArray(job.docker)) { + deps.push({ + ...getDep(dockerElement.image, true, config?.registryAliases), + depType: 'docker', + }); } + } + + return deps; +} + +export function extractPackageFile( + content: string, + packageFile?: string, + config?: ExtractConfig, +): PackageFileContent | null { + const deps: PackageDependency[] = []; + try { + const parsed = parseSingleYaml(content, { + customSchema: CircleCiFile, + }); + + deps.push(...extractDefinition(parsed, config)); for (const alias of coerceArray(parsed.aliases)) { deps.push({ diff --git a/lib/modules/manager/circleci/schema.ts b/lib/modules/manager/circleci/schema.ts index 2aa96811019fc3..f4288727a2845f 100644 --- a/lib/modules/manager/circleci/schema.ts +++ b/lib/modules/manager/circleci/schema.ts @@ -4,14 +4,31 @@ export const CircleCiDocker = z.object({ image: z.string(), }); -export type CircleCiJob = z.infer; export const CircleCiJob = z.object({ docker: z.array(CircleCiDocker).optional(), }); +export type CircleCiJob = z.infer; + +const baseOrb = z.object({ + executors: z.record(z.string(), CircleCiJob).optional(), + jobs: z.record(z.string(), CircleCiJob).optional(), +}); + +type Orb = z.infer & { + orbs?: Record; +}; + +export const CircleCiOrb: z.ZodType = baseOrb.extend({ + orbs: z.lazy(() => + z.record(z.string(), z.union([z.string(), CircleCiOrb])).optional(), + ), +}); +export type CircleCiOrb = z.infer; export const CircleCiFile = z.object({ aliases: z.array(CircleCiDocker).optional(), executors: z.record(z.string(), CircleCiJob).optional(), jobs: z.record(z.string(), CircleCiJob).optional(), - orbs: z.record(z.string()).optional(), + orbs: z.record(z.string(), z.union([z.string(), CircleCiOrb])).optional(), }); +export type CircleCiFile = z.infer; diff --git a/lib/modules/manager/types.ts b/lib/modules/manager/types.ts index 7e6cd5fdd09aeb..f10e2ace9f1357 100644 --- a/lib/modules/manager/types.ts +++ b/lib/modules/manager/types.ts @@ -6,7 +6,12 @@ import type { ValidationMessage, } from '../../config/types'; import type { Category } from '../../constants'; -import type { ModuleApi, RangeStrategy, SkipReason } from '../../types'; +import type { + ModuleApi, + RangeStrategy, + SkipReason, + StageName, +} from '../../types'; import type { FileChange } from '../../util/git/types'; import type { MergeConfidence } from '../../util/merge-confidence/types'; import type { CustomExtractConfig } from './custom/types'; @@ -144,6 +149,7 @@ export interface PackageDependency> registryUrls?: string[] | null; rangeStrategy?: RangeStrategy; skipReason?: SkipReason; + skipStage?: StageName; sourceLine?: number; newVersion?: string; updates?: LookupUpdate[]; diff --git a/lib/modules/platform/bitbucket/index.spec.ts b/lib/modules/platform/bitbucket/index.spec.ts index 86b482f09851da..a4f372e15e39b6 100644 --- a/lib/modules/platform/bitbucket/index.spec.ts +++ b/lib/modules/platform/bitbucket/index.spec.ts @@ -1668,7 +1668,12 @@ describe('modules/platform/bitbucket/index', () => { .get('/2.0/repositories/some/repo/pullrequests/5') .reply(200, { reviewers: [reviewer] }) .put('/2.0/repositories/some/repo/pullrequests/5') - .reply(200); + .reply(200, { id: 5 }) + .get(`/2.0/repositories/some/repo/pullrequests`) + .query(true) + .reply(200, { + values: [{ id: 5 }], + }); await expect( bitbucket.updatePr({ number: 5, @@ -1736,7 +1741,12 @@ describe('modules/platform/bitbucket/index', () => { account_status: 'inactive', }) .put('/2.0/repositories/some/repo/pullrequests/5') - .reply(200); + .reply(200, { id: 5 }) + .get(`/2.0/repositories/some/repo/pullrequests`) + .query(true) + .reply(200, { + values: [{ id: 5 }], + }); await expect( bitbucket.updatePr({ number: 5, prTitle: 'title', prBody: 'body' }), ).toResolve(); @@ -1779,7 +1789,12 @@ describe('modules/platform/bitbucket/index', () => { ) .reply(200) .put('/2.0/repositories/some/repo/pullrequests/5') - .reply(200); + .reply(200, { id: 5 }) + .get(`/2.0/repositories/some/repo/pullrequests`) + .query(true) + .reply(200, { + values: [{ id: 5 }], + }); await expect( bitbucket.updatePr({ number: 5, prTitle: 'title', prBody: 'body' }), @@ -1884,9 +1899,14 @@ describe('modules/platform/bitbucket/index', () => { .get('/2.0/repositories/some/repo/pullrequests/5') .reply(200, { values: [pr] }) .put('/2.0/repositories/some/repo/pullrequests/5') - .reply(200) + .reply(200, { id: 5 }) .post('/2.0/repositories/some/repo/pullrequests/5/decline') - .reply(200); + .reply(200) + .get(`/2.0/repositories/some/repo/pullrequests`) + .query(true) + .reply(200, { + values: [{ id: 5 }], + }); expect( await bitbucket.updatePr({ @@ -1898,6 +1918,113 @@ describe('modules/platform/bitbucket/index', () => { }); }); + describe('maintains pr cache integrity at runtime', () => { + it('pr cache gets updated after a pr is created', async () => { + const projectReviewer = { + type: 'default_reviewer', + reviewer_type: 'project', + user: { + display_name: 'Bob Smith', + uuid: '{d2238482-2e9f-48b3-8630-de22ccb9e42f}', + account_id: '123', + }, + }; + const repoReviewer = { + type: 'default_reviewer', + reviewer_type: 'repository', + user: { + display_name: 'Jane Smith', + uuid: '{90b6646d-1724-4a64-9fd9-539515fe94e9}', + account_id: '456', + }, + }; + + const scope = httpMock.scope(baseUrl); + scope.get('/2.0/user').reply(200, { uuid: '12345' }); + await bitbucket.initPlatform({ username: 'renovate', password: 'pass' }); + await initRepoMock(undefined, null, scope); + scope + .get(`/2.0/repositories/some/repo/pullrequests`) + .query(true) + .reply(200, { + values: [ + { + id: 1, + author: { uuid: '12345' }, + source: { branch: { name: 'branch-a' } }, + destination: { branch: { name: 'branch-b' } }, + state: 'OPEN', + }, + ], + }) + .get( + '/2.0/repositories/some/repo/effective-default-reviewers?pagelen=100', + ) + .reply(200, { + values: [projectReviewer, repoReviewer], + }) + .post('/2.0/repositories/some/repo/pullrequests') + .reply(200, { id: 5 }); + + await bitbucket.getPrList(); // cache is now initialized + + await bitbucket.createPr({ + sourceBranch: 'branch', + targetBranch: 'master', + prTitle: 'title', + prBody: 'body', + platformPrOptions: { + bbUseDefaultReviewers: true, + }, + }); + + const newPrList = await bitbucket.getPrList(); + expect(newPrList).toHaveLength(2); + }); + + it('pr cache gets updated after a pr is updated', async () => { + const reviewer = { + display_name: 'Jane Smith', + uuid: '{90b6646d-1724-4a64-9fd9-539515fe94e9}', + }; + const scope = httpMock.scope(baseUrl); + scope.get('/2.0/user').reply(200, { uuid: '12345' }); + await bitbucket.initPlatform({ username: 'renovate', password: 'pass' }); + await initRepoMock(undefined, null, scope); + scope + .get(`/2.0/repositories/some/repo/pullrequests`) + .query(true) + .reply(200, { + values: [ + { + id: 5, + author: { uuid: '12345' }, + source: { branch: { name: 'branch-a' } }, + destination: { branch: { name: 'branch-b' } }, + state: 'OPEN', + title: 'title', + }, + ], + }) + .get('/2.0/repositories/some/repo/pullrequests/5') + .reply(200, { reviewers: [reviewer] }) + .put('/2.0/repositories/some/repo/pullrequests/5') + .reply(200, { id: 5, title: 'newTitle' }); + + const oldPrList = await bitbucket.getPrList(); // cache is now initialized + expect(oldPrList.find((pr) => pr.title === 'title')).toBeDefined(); + await bitbucket.updatePr({ + number: 5, + prTitle: 'newTitle', + prBody: 'body', + targetBranch: 'new_base', + }); + + const newPrList = await bitbucket.getPrList(); + expect(newPrList.find((pr) => pr.title === 'newTitle')).toBeDefined(); + }); + }); + describe('mergePr()', () => { it('posts Merge with optional merge strategy', async () => { const scope = await initRepoMock(); diff --git a/lib/modules/platform/bitbucket/index.ts b/lib/modules/platform/bitbucket/index.ts index 9678aa2443b45e..11594cd7bc24b8 100644 --- a/lib/modules/platform/bitbucket/index.ts +++ b/lib/modules/platform/bitbucket/index.ts @@ -919,7 +919,7 @@ export async function createPr({ ) ).body; const pr = utils.prInfo(prRes); - await BitbucketPrCache.addPr( + await BitbucketPrCache.setPr( bitbucketHttp, config.repository, renovateUserUuid, @@ -949,7 +949,7 @@ export async function createPr({ ) ).body; const pr = utils.prInfo(prRes); - await BitbucketPrCache.addPr( + await BitbucketPrCache.setPr( bitbucketHttp, config.repository, renovateUserUuid, @@ -1022,6 +1022,7 @@ export async function updatePr({ ) ).body; + let updatedPrRes: PrResponse; try { const body: any = { title, @@ -1036,10 +1037,12 @@ export async function updatePr({ }; } - await bitbucketHttp.putJson( - `/2.0/repositories/${config.repository}/pullrequests/${prNo}`, - { body }, - ); + updatedPrRes = ( + await bitbucketHttp.putJson( + `/2.0/repositories/${config.repository}/pullrequests/${prNo}`, + { body }, + ) + ).body; } catch (err) { // Try sanitizing reviewers const sanitizedReviewers = await sanitizeReviewers(pr.reviewers, err); @@ -1047,16 +1050,18 @@ export async function updatePr({ if (sanitizedReviewers === undefined) { throw err; } else { - await bitbucketHttp.putJson( - `/2.0/repositories/${config.repository}/pullrequests/${prNo}`, - { - body: { - title, - description: sanitize(description), - reviewers: sanitizedReviewers, + updatedPrRes = ( + await bitbucketHttp.putJson( + `/2.0/repositories/${config.repository}/pullrequests/${prNo}`, + { + body: { + title, + description: sanitize(description), + reviewers: sanitizedReviewers, + }, }, - }, - ); + ) + ).body; } } @@ -1065,6 +1070,14 @@ export async function updatePr({ `/2.0/repositories/${config.repository}/pullrequests/${prNo}/decline`, ); } + + // update pr cache + await BitbucketPrCache.setPr( + bitbucketHttp, + config.repository, + renovateUserUuid, + utils.prInfo({ ...updatedPrRes, ...(state && { state }) }), + ); } export async function mergePr({ diff --git a/lib/modules/platform/bitbucket/pr-cache.ts b/lib/modules/platform/bitbucket/pr-cache.ts index a270f45b6aa9cc..45ac62b30f091c 100644 --- a/lib/modules/platform/bitbucket/pr-cache.ts +++ b/lib/modules/platform/bitbucket/pr-cache.ts @@ -74,19 +74,19 @@ export class BitbucketPrCache { return prCache.getPrs(); } - private addPr(pr: Pr): void { + private setPr(pr: Pr): void { logger.debug(`Adding PR #${pr.number} to the PR cache`); this.cache.items[pr.number] = pr; } - static async addPr( + static async setPr( http: BitbucketHttp, repo: string, author: string | null, item: Pr, ): Promise { const prCache = await BitbucketPrCache.init(http, repo, author); - prCache.addPr(item); + prCache.setPr(item); } private reconcile(rawItems: PrResponse[]): void { diff --git a/lib/modules/platform/gitea/index.ts b/lib/modules/platform/gitea/index.ts index d67cf0ceea290e..697be51f84b411 100644 --- a/lib/modules/platform/gitea/index.ts +++ b/lib/modules/platform/gitea/index.ts @@ -483,7 +483,7 @@ const platform: Platform = { // Add pull request to cache for further lookups / queries if (pr) { - await GiteaPrCache.addPr(giteaHttp, config.repository, botUserName, pr); + await GiteaPrCache.setPr(giteaHttp, config.repository, botUserName, pr); } } @@ -580,7 +580,7 @@ const platform: Platform = { throw new Error('Can not parse newly created Pull Request'); } - await GiteaPrCache.addPr(giteaHttp, config.repository, botUserName, pr); + await GiteaPrCache.setPr(giteaHttp, config.repository, botUserName, pr); return pr; } catch (err) { // When the user manually deletes a branch from Renovate, the PR remains but is no longer linked to any branch. In @@ -673,7 +673,7 @@ const platform: Platform = { ); const pr = toRenovatePR(gpr, botUserName); if (pr) { - await GiteaPrCache.addPr(giteaHttp, config.repository, botUserName, pr); + await GiteaPrCache.setPr(giteaHttp, config.repository, botUserName, pr); } }, diff --git a/lib/modules/platform/gitea/pr-cache.ts b/lib/modules/platform/gitea/pr-cache.ts index d3192d767e14f3..b26085d97a95df 100644 --- a/lib/modules/platform/gitea/pr-cache.ts +++ b/lib/modules/platform/gitea/pr-cache.ts @@ -66,18 +66,18 @@ export class GiteaPrCache { return prCache.getPrs(); } - private addPr(item: Pr): void { + private setPr(item: Pr): void { this.cache.items[item.number] = item; } - static async addPr( + static async setPr( http: GiteaHttp, repo: string, author: string, item: Pr, ): Promise { const prCache = await GiteaPrCache.init(http, repo, author); - prCache.addPr(item); + prCache.setPr(item); } private reconcile(rawItems: PR[]): boolean { diff --git a/lib/types/index.ts b/lib/types/index.ts index a111c9ade7ea7d..4b6a9036088268 100644 --- a/lib/types/index.ts +++ b/lib/types/index.ts @@ -1,6 +1,6 @@ export type { CommitMessageJSON } from './commit-message-json'; export type { HostRule, CombinedHostRule } from './host-rules'; -export type { SkipReason } from './skip-reason'; +export type { SkipReason, StageName } from './skip-reason'; export type { RangeStrategy } from './versioning'; export type { BranchStatus } from './branch-status'; export type { diff --git a/lib/types/skip-reason.ts b/lib/types/skip-reason.ts index 534d37b445b934..8ebf4568e4363f 100644 --- a/lib/types/skip-reason.ts +++ b/lib/types/skip-reason.ts @@ -50,8 +50,10 @@ export type SkipReason = export type StageName = | 'current-timestamp' | 'datasource-merge' + | 'extract' | 'lock-file-maintenance-merge' | 'lock-file-maintenance-merge-2' + | 'lookup' | 'pre-lookup' | 'source-url' | 'update-type' diff --git a/lib/util/cache/repository/types.ts b/lib/util/cache/repository/types.ts index 3341418e23064e..f4798c8ab460db 100644 --- a/lib/util/cache/repository/types.ts +++ b/lib/util/cache/repository/types.ts @@ -8,6 +8,7 @@ import type { RepoInitConfig } from '../../../workers/repository/init/types'; import type { PrBlockedBy } from '../../../workers/types'; export interface BaseBranchCache { + revision?: number; sha: string; // branch commit sha configHash: string; // object hash of config extractionFingerprints: Record; // matching manager fingerprints diff --git a/lib/workers/repository/config-migration/index.spec.ts b/lib/workers/repository/config-migration/index.spec.ts index 19ae2263eeb0f2..11fa18a755893a 100644 --- a/lib/workers/repository/config-migration/index.spec.ts +++ b/lib/workers/repository/config-migration/index.spec.ts @@ -46,6 +46,19 @@ describe('workers/repository/config-migration/index', () => { expect(ensureConfigMigrationPr).toHaveBeenCalledTimes(0); }); + it('skips pr creation if config found in package.json', async () => { + const branchList: string[] = []; + mockedFunction(MigratedDataFactory.getAsync).mockResolvedValue({ + content, + indent: partial(), + filename: 'package.json', + }); + const res = await configMigration(config, branchList); + expect(res).toMatchObject({ result: 'no-migration' }); + expect(checkConfigMigrationBranch).toHaveBeenCalledTimes(0); + expect(ensureConfigMigrationPr).toHaveBeenCalledTimes(0); + }); + it('creates migration pr if needed', async () => { const branchList: string[] = []; mockedFunction(checkConfigMigrationBranch).mockResolvedValue({ diff --git a/lib/workers/repository/config-migration/index.ts b/lib/workers/repository/config-migration/index.ts index 2574fdc4eacefb..fdd038f3274cb6 100644 --- a/lib/workers/repository/config-migration/index.ts +++ b/lib/workers/repository/config-migration/index.ts @@ -27,6 +27,14 @@ export async function configMigration( return { result: 'no-migration' }; } + if (migratedConfigData.filename === 'package.json') { + logger.debug( + ' Using package.json for Renovate config is deprecated - please use a dedicated configuration file instead. Skipping config migration.', + ); + MigratedDataFactory.reset(); + return { result: 'no-migration' }; + } + const res = await checkConfigMigrationBranch(config, migratedConfigData); // migration needed but not demanded by user diff --git a/lib/workers/repository/process/extract-update.spec.ts b/lib/workers/repository/process/extract-update.spec.ts index 21627e84b9c797..220e9c8535e88b 100644 --- a/lib/workers/repository/process/extract-update.spec.ts +++ b/lib/workers/repository/process/extract-update.spec.ts @@ -6,7 +6,13 @@ import { fingerprint } from '../../../util/fingerprint'; import type { LongCommitSha } from '../../../util/git/types'; import { generateFingerprintConfig } from '../extract/extract-fingerprint-config'; import * as _branchify from '../updates/branchify'; -import { extract, isCacheExtractValid, lookup, update } from './extract-update'; +import { + EXTRACT_CACHE_REVISION, + extract, + isCacheExtractValid, + lookup, + update, +} from './extract-update'; const createVulnerabilitiesMock = jest.fn(); @@ -97,6 +103,7 @@ describe('workers/repository/process/extract-update', () => { repositoryCache.getCache.mockReturnValueOnce({ scan: { master: { + revision: EXTRACT_CACHE_REVISION, sha: '123test', configHash: fingerprint(generateFingerprintConfig(config)), extractionFingerprints: {}, @@ -150,6 +157,7 @@ describe('workers/repository/process/extract-update', () => { beforeEach(() => { cachedExtract = { + revision: EXTRACT_CACHE_REVISION, sha: 'sha', configHash: undefined as never, extractionFingerprints: {}, @@ -162,6 +170,18 @@ describe('workers/repository/process/extract-update', () => { expect(logger.logger.debug).toHaveBeenCalledTimes(0); }); + it('returns false if no revision', () => { + delete cachedExtract.revision; + expect(isCacheExtractValid('sha', 'hash', cachedExtract)).toBe(false); + expect(logger.logger.debug).toHaveBeenCalledTimes(1); + }); + + it('returns false if revision mismatch', () => { + cachedExtract.revision = -1; + expect(isCacheExtractValid('sha', 'hash', cachedExtract)).toBe(false); + expect(logger.logger.debug).toHaveBeenCalledTimes(1); + }); + it('partial cache', () => { expect(isCacheExtractValid('sha', 'hash', cachedExtract)).toBe(false); expect(logger.logger.debug).toHaveBeenCalledTimes(0); diff --git a/lib/workers/repository/process/extract-update.ts b/lib/workers/repository/process/extract-update.ts index e31b055a9e78e0..610e519da73a53 100644 --- a/lib/workers/repository/process/extract-update.ts +++ b/lib/workers/repository/process/extract-update.ts @@ -18,6 +18,9 @@ import { Vulnerabilities } from './vulnerabilities'; import type { WriteUpdateResult } from './write'; import { writeUpdates } from './write'; +// Increment this if needing to cache bust ALL extract caches +export const EXTRACT_CACHE_REVISION = 1; + export interface ExtractResult { branches: BranchConfig[]; branchList: string[]; @@ -69,7 +72,23 @@ export function isCacheExtractValid( configHash: string, cachedExtract?: BaseBranchCache, ): boolean { - if (!(cachedExtract?.sha && cachedExtract.configHash)) { + if (!cachedExtract) { + return false; + } + + if (!cachedExtract.revision) { + logger.debug('Cached extract is missing revision, so cannot be used'); + return false; + } + + if (cachedExtract.revision !== EXTRACT_CACHE_REVISION) { + logger.debug( + `Extract cache revision has changed (old=${cachedExtract.revision}, new=${EXTRACT_CACHE_REVISION})`, + ); + return false; + } + + if (!(cachedExtract.sha && cachedExtract.configHash)) { return false; } if (cachedExtract.sha !== baseBranchSha) { @@ -142,6 +161,7 @@ export async function extract( const { extractionFingerprints } = extractResult; // TODO: fix types (#22198) cache.scan[baseBranch!] = { + revision: EXTRACT_CACHE_REVISION, sha: baseBranchSha!, configHash, extractionFingerprints, diff --git a/lib/workers/repository/process/fetch.spec.ts b/lib/workers/repository/process/fetch.spec.ts index f891c6e81e6fd8..e68a4ce76f1647 100644 --- a/lib/workers/repository/process/fetch.spec.ts +++ b/lib/workers/repository/process/fetch.spec.ts @@ -59,18 +59,21 @@ describe('workers/repository/process/fetch', () => { depName: 'abcd', packageName: 'abcd', skipReason: 'ignored', + skipStage: 'lookup', updates: [], }, { depName: 'foo', packageName: 'foo', skipReason: 'disabled', + skipStage: 'lookup', updates: [], }, { depName: 'skipped', packageName: 'skipped', skipReason: 'some-reason', + skipStage: 'lookup', updates: [], }, ], diff --git a/lib/workers/repository/process/fetch.ts b/lib/workers/repository/process/fetch.ts index e9b17a4470f6bc..36fd712277c32d 100644 --- a/lib/workers/repository/process/fetch.ts +++ b/lib/workers/repository/process/fetch.ts @@ -172,6 +172,9 @@ export async function fetchUpdates( deps = []; packageDeps.set(packageFile, deps); } + if (dep.skipReason && !dep.skipStage) { + dep.skipStage = 'lookup'; + } deps.push(dep); } else { errors.push(err); diff --git a/package.json b/package.json index 3310152fbb0f0e..606384ee0765e3 100644 --- a/package.json +++ b/package.json @@ -192,8 +192,8 @@ "editorconfig": "2.0.0", "email-addresses": "5.0.0", "emoji-regex": "10.4.0", - "emojibase": "15.3.1", - "emojibase-regex": "15.3.2", + "emojibase": "16.0.0", + "emojibase-regex": "16.0.0", "extract-zip": "2.0.1", "find-packages": "10.0.4", "find-up": "5.0.0", @@ -251,10 +251,10 @@ "vuln-vects": "1.1.0", "xmldoc": "1.3.0", "yaml": "2.6.1", - "zod": "3.23.8" + "zod": "3.24.1" }, "optionalDependencies": { - "better-sqlite3": "11.6.0", + "better-sqlite3": "11.7.0", "openpgp": "6.0.1", "re2": "1.21.4" }, @@ -269,7 +269,7 @@ "@openpgp/web-stream-tools": "0.1.3", "@renovate/eslint-plugin": "file:tools/eslint", "@semantic-release/exec": "6.0.3", - "@swc/core": "1.10.0", + "@swc/core": "1.10.1", "@types/auth-header": "1.0.6", "@types/aws4": "1.11.6", "@types/better-sqlite3": "7.6.12", @@ -317,7 +317,7 @@ "callsite": "1.0.0", "common-tags": "1.8.2", "conventional-changelog-conventionalcommits": "8.0.0", - "emojibase-data": "15.3.2", + "emojibase-data": "16.0.2", "eslint": "8.57.1", "eslint-formatter-gha": "1.5.1", "eslint-import-resolver-typescript": "3.6.3", @@ -335,8 +335,8 @@ "jest-mock": "29.7.0", "jest-mock-extended": "3.0.7", "jest-snapshot": "29.7.0", - "markdownlint-cli2": "0.15.0", - "memfs": "4.14.1", + "markdownlint-cli2": "0.16.0", + "memfs": "4.15.0", "nock": "13.5.6", "npm-run-all2": "7.0.1", "nyc": "17.1.0", diff --git a/pdm.lock b/pdm.lock index b2764c2e90dacf..3c2a81ef1819df 100644 --- a/pdm.lock +++ b/pdm.lock @@ -5,7 +5,7 @@ groups = ["default"] strategy = ["inherit_metadata"] lock_version = "4.5.0" -content_hash = "sha256:7db5b5fe986b377f2cf123236671d2a57eb5cd72e0dc67f5abeea24910468f37" +content_hash = "sha256:600db411871a7859e3c5506989a7bb6a9101938ebf6797e8d3180309a5a2681f" [[metadata.targets]] requires_python = ">=3.11" @@ -37,13 +37,13 @@ files = [ [[package]] name = "certifi" -version = "2024.8.30" +version = "2024.12.14" requires_python = ">=3.6" summary = "Python package for providing Mozilla's CA Bundle." groups = ["default"] files = [ - {file = "certifi-2024.8.30-py3-none-any.whl", hash = "sha256:922820b53db7a7257ffbda3f597266d435245903d80737e34f8a45ff3e3230d8"}, - {file = "certifi-2024.8.30.tar.gz", hash = "sha256:bec941d2aa8195e248a60b31ff9f0558284cf01a52591ceda73ea9afffd69fd9"}, + {file = "certifi-2024.12.14-py3-none-any.whl", hash = "sha256:1275f7a45be9464efc1173084eaa30f866fe2e47d389406136d332ed4967ec56"}, + {file = "certifi-2024.12.14.tar.gz", hash = "sha256:b650d30f370c2b724812bee08008be0c4163b163ddaec3f2546c1caf65f191db"}, ] [[package]] @@ -303,7 +303,7 @@ files = [ [[package]] name = "mkdocs-material" -version = "9.5.48" +version = "9.5.49" 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.48-py3-none-any.whl", hash = "sha256:b695c998f4b939ce748adbc0d3bff73fa886a670ece948cf27818fa115dc16f8"}, - {file = "mkdocs_material-9.5.48.tar.gz", hash = "sha256:a582531e8b34f4c7ed38c29d5c44763053832cf2a32f7409567e0c74749a47db"}, + {file = "mkdocs_material-9.5.49-py3-none-any.whl", hash = "sha256:c3c2d8176b18198435d3a3e119011922f3e11424074645c24019c2dcf08a360e"}, + {file = "mkdocs_material-9.5.49.tar.gz", hash = "sha256:3671bb282b4f53a1c72e08adbe04d2481a98f85fed392530051f80ff94a9621d"}, ] [[package]] diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index cc630c3a4524a9..6099661b0bba7a 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -159,11 +159,11 @@ importers: specifier: 10.4.0 version: 10.4.0 emojibase: - specifier: 15.3.1 - version: 15.3.1 + specifier: 16.0.0 + version: 16.0.0 emojibase-regex: - specifier: 15.3.2 - version: 15.3.2 + specifier: 16.0.0 + version: 16.0.0 extract-zip: specifier: 2.0.1 version: 2.0.1 @@ -336,12 +336,12 @@ importers: specifier: 2.6.1 version: 2.6.1 zod: - specifier: 3.23.8 - version: 3.23.8 + specifier: 3.24.1 + version: 3.24.1 optionalDependencies: better-sqlite3: - specifier: 11.6.0 - version: 11.6.0 + specifier: 11.7.0 + version: 11.7.0 openpgp: specifier: 6.0.1 version: 6.0.1 @@ -380,8 +380,8 @@ importers: specifier: 6.0.3 version: 6.0.3(semantic-release@24.2.0(typescript@5.7.2)) '@swc/core': - specifier: 1.10.0 - version: 1.10.0 + specifier: 1.10.1 + version: 1.10.1 '@types/auth-header': specifier: 1.0.6 version: 1.0.6 @@ -524,8 +524,8 @@ importers: specifier: 8.0.0 version: 8.0.0 emojibase-data: - specifier: 15.3.2 - version: 15.3.2(emojibase@15.3.1) + specifier: 16.0.2 + version: 16.0.2(emojibase@16.0.0) eslint: specifier: 8.57.1 version: 8.57.1 @@ -540,7 +540,7 @@ importers: version: 2.31.0(@typescript-eslint/parser@8.11.0(eslint@8.57.1)(typescript@5.7.2))(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.7.2))(eslint@8.57.1)(typescript@5.7.2))(eslint@8.57.1)(jest@29.7.0(@types/node@20.17.9)(ts-node@10.9.2(@swc/core@1.10.0)(@types/node@20.17.9)(typescript@5.7.2)))(typescript@5.7.2) + version: 28.8.3(@typescript-eslint/eslint-plugin@8.11.0(@typescript-eslint/parser@8.11.0(eslint@8.57.1)(typescript@5.7.2))(eslint@8.57.1)(typescript@5.7.2))(eslint@8.57.1)(jest@29.7.0(@types/node@20.17.9)(ts-node@10.9.2(@swc/core@1.10.1)(@types/node@20.17.9)(typescript@5.7.2)))(typescript@5.7.2) eslint-plugin-jest-formatting: specifier: 3.1.0 version: 3.1.0(eslint@8.57.1) @@ -564,25 +564,25 @@ importers: version: 9.1.7 jest: specifier: 29.7.0 - version: 29.7.0(@types/node@20.17.9)(ts-node@10.9.2(@swc/core@1.10.0)(@types/node@20.17.9)(typescript@5.7.2)) + version: 29.7.0(@types/node@20.17.9)(ts-node@10.9.2(@swc/core@1.10.1)(@types/node@20.17.9)(typescript@5.7.2)) jest-extended: specifier: 4.0.2 - version: 4.0.2(jest@29.7.0(@types/node@20.17.9)(ts-node@10.9.2(@swc/core@1.10.0)(@types/node@20.17.9)(typescript@5.7.2))) + version: 4.0.2(jest@29.7.0(@types/node@20.17.9)(ts-node@10.9.2(@swc/core@1.10.1)(@types/node@20.17.9)(typescript@5.7.2))) 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.9)(ts-node@10.9.2(@swc/core@1.10.0)(@types/node@20.17.9)(typescript@5.7.2)))(typescript@5.7.2) + version: 3.0.7(jest@29.7.0(@types/node@20.17.9)(ts-node@10.9.2(@swc/core@1.10.1)(@types/node@20.17.9)(typescript@5.7.2)))(typescript@5.7.2) jest-snapshot: specifier: 29.7.0 version: 29.7.0 markdownlint-cli2: - specifier: 0.15.0 - version: 0.15.0 + specifier: 0.16.0 + version: 0.16.0 memfs: - specifier: 4.14.1 - version: 4.14.1 + specifier: 4.15.0 + version: 4.15.0 nock: specifier: 13.5.6 version: 13.5.6 @@ -609,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.9)(ts-node@10.9.2(@swc/core@1.10.0)(@types/node@20.17.9)(typescript@5.7.2)))(typescript@5.7.2) + 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.9)(ts-node@10.9.2(@swc/core@1.10.1)(@types/node@20.17.9)(typescript@5.7.2)))(typescript@5.7.2) ts-node: specifier: 10.9.2 - version: 10.9.2(@swc/core@1.10.0)(@types/node@20.17.9)(typescript@5.7.2) + version: 10.9.2(@swc/core@1.10.1)(@types/node@20.17.9)(typescript@5.7.2) type-fest: specifier: 4.30.0 version: 4.30.0 @@ -1140,8 +1140,8 @@ packages: resolution: {integrity: sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - '@jridgewell/gen-mapping@0.3.5': - resolution: {integrity: sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==} + '@jridgewell/gen-mapping@0.3.8': + resolution: {integrity: sha512-imAbBGkb+ebQyxKgzv5Hu2nmROxoDOXHh80evxdoXNOrvAnVx7zimzc1Oo5h9RlfV4vPXaE2iM5pOFbvOCClWA==} engines: {node: '>=6.0.0'} '@jridgewell/resolve-uri@3.1.2': @@ -1658,8 +1658,8 @@ packages: '@sinonjs/text-encoding@0.7.3': resolution: {integrity: sha512-DE427ROAphMQzU4ENbliGYrBSYPXF+TtLg9S8vzeA+OF4ZKzoDdzfL8sxuMUGS/lgRhM6j1URSk9ghf7Xo1tyA==} - '@smithy/abort-controller@3.1.8': - resolution: {integrity: sha512-+3DOBcUn5/rVjlxGvUPKc416SExarAQ+Qe0bqk30YSUjbepwpS7QN0cyKUSifvLJhdMZ0WPzPP5ymut0oonrpQ==} + '@smithy/abort-controller@3.1.9': + resolution: {integrity: sha512-yiW0WI30zj8ZKoSYNx90no7ugVn3khlyH/z5W8qtKBtVE6awRALbhSG+2SAHA1r6bO/6M9utxYKVZ3PCJ1rWxw==} engines: {node: '>=16.0.0'} '@smithy/chunked-blob-reader-native@3.0.1': @@ -1668,53 +1668,53 @@ packages: '@smithy/chunked-blob-reader@4.0.0': resolution: {integrity: sha512-jSqRnZvkT4egkq/7b6/QRCNXmmYVcHwnJldqJ3IhVpQE2atObVJ137xmGeuGFhjFUr8gCEVAOKwSY79OvpbDaQ==} - '@smithy/config-resolver@3.0.12': - resolution: {integrity: sha512-YAJP9UJFZRZ8N+UruTeq78zkdjUHmzsY62J4qKWZ4SXB4QXJ/+680EfXXgkYA2xj77ooMqtUY9m406zGNqwivQ==} + '@smithy/config-resolver@3.0.13': + resolution: {integrity: sha512-Gr/qwzyPaTL1tZcq8WQyHhTZREER5R1Wytmz4WnVGL4onA3dNk6Btll55c8Vr58pLdvWZmtG8oZxJTw3t3q7Jg==} engines: {node: '>=16.0.0'} - '@smithy/core@2.5.4': - resolution: {integrity: sha512-iFh2Ymn2sCziBRLPuOOxRPkuCx/2gBdXtBGuCUFLUe6bWYjKnhHyIPqGeNkLZ5Aco/5GjebRTBFiWID3sDbrKw==} + '@smithy/core@2.5.5': + resolution: {integrity: sha512-G8G/sDDhXA7o0bOvkc7bgai6POuSld/+XhNnWAbpQTpLv2OZPvyqQ58tLPPlz0bSNsXktldDDREIv1LczFeNEw==} engines: {node: '>=16.0.0'} - '@smithy/credential-provider-imds@3.2.7': - resolution: {integrity: sha512-cEfbau+rrWF8ylkmmVAObOmjbTIzKyUC5TkBL58SbLywD0RCBC4JAUKbmtSm2w5KUJNRPGgpGFMvE2FKnuNlWQ==} + '@smithy/credential-provider-imds@3.2.8': + resolution: {integrity: sha512-ZCY2yD0BY+K9iMXkkbnjo+08T2h8/34oHd0Jmh6BZUSZwaaGlGCyBT/3wnS7u7Xl33/EEfN4B6nQr3Gx5bYxgw==} engines: {node: '>=16.0.0'} - '@smithy/eventstream-codec@3.1.9': - resolution: {integrity: sha512-F574nX0hhlNOjBnP+noLtsPFqXnWh2L0+nZKCwcu7P7J8k+k+rdIDs+RMnrMwrzhUE4mwMgyN0cYnEn0G8yrnQ==} + '@smithy/eventstream-codec@3.1.10': + resolution: {integrity: sha512-323B8YckSbUH0nMIpXn7HZsAVKHYHFUODa8gG9cHo0ySvA1fr5iWaNT+iIL0UCqUzG6QPHA3BSsBtRQou4mMqQ==} - '@smithy/eventstream-serde-browser@3.0.13': - resolution: {integrity: sha512-Nee9m+97o9Qj6/XeLz2g2vANS2SZgAxV4rDBMKGHvFJHU/xz88x2RwCkwsvEwYjSX4BV1NG1JXmxEaDUzZTAtw==} + '@smithy/eventstream-serde-browser@3.0.14': + resolution: {integrity: sha512-kbrt0vjOIihW3V7Cqj1SXQvAI5BR8SnyQYsandva0AOR307cXAc+IhPngxIPslxTLfxwDpNu0HzCAq6g42kCPg==} engines: {node: '>=16.0.0'} - '@smithy/eventstream-serde-config-resolver@3.0.10': - resolution: {integrity: sha512-K1M0x7P7qbBUKB0UWIL5KOcyi6zqV5mPJoL0/o01HPJr0CSq3A9FYuJC6e11EX6hR8QTIR++DBiGrYveOu6trw==} + '@smithy/eventstream-serde-config-resolver@3.0.11': + resolution: {integrity: sha512-P2pnEp4n75O+QHjyO7cbw/vsw5l93K/8EWyjNCAAybYwUmj3M+hjSQZ9P5TVdUgEG08ueMAP5R4FkuSkElZ5tQ==} engines: {node: '>=16.0.0'} - '@smithy/eventstream-serde-node@3.0.12': - resolution: {integrity: sha512-kiZymxXvZ4tnuYsPSMUHe+MMfc4FTeFWJIc0Q5wygJoUQM4rVHNghvd48y7ppuulNMbuYt95ah71pYc2+o4JOA==} + '@smithy/eventstream-serde-node@3.0.13': + resolution: {integrity: sha512-zqy/9iwbj8Wysmvi7Lq7XFLeDgjRpTbCfwBhJa8WbrylTAHiAu6oQTwdY7iu2lxigbc9YYr9vPv5SzYny5tCXQ==} engines: {node: '>=16.0.0'} - '@smithy/eventstream-serde-universal@3.0.12': - resolution: {integrity: sha512-1i8ifhLJrOZ+pEifTlF0EfZzMLUGQggYQ6WmZ4d5g77zEKf7oZ0kvh1yKWHPjofvOwqrkwRDVuxuYC8wVd662A==} + '@smithy/eventstream-serde-universal@3.0.13': + resolution: {integrity: sha512-L1Ib66+gg9uTnqp/18Gz4MDpJPKRE44geOjOQ2SVc0eiaO5l255ADziATZgjQjqumC7yPtp1XnjHlF1srcwjKw==} engines: {node: '>=16.0.0'} - '@smithy/fetch-http-handler@4.1.1': - resolution: {integrity: sha512-bH7QW0+JdX0bPBadXt8GwMof/jz0H28I84hU1Uet9ISpzUqXqRQ3fEZJ+ANPOhzSEczYvANNl3uDQDYArSFDtA==} + '@smithy/fetch-http-handler@4.1.2': + resolution: {integrity: sha512-R7rU7Ae3ItU4rC0c5mB2sP5mJNbCfoDc8I5XlYjIZnquyUwec7fEo78F6DA3SmgJgkU1qTMcZJuGblxZsl10ZA==} - '@smithy/hash-blob-browser@3.1.9': - resolution: {integrity: sha512-wOu78omaUuW5DE+PVWXiRKWRZLecARyP3xcq5SmkXUw9+utgN8HnSnBfrjL2B/4ZxgqPjaAJQkC/+JHf1ITVaQ==} + '@smithy/hash-blob-browser@3.1.10': + resolution: {integrity: sha512-elwslXOoNunmfS0fh55jHggyhccobFkexLYC1ZeZ1xP2BTSrcIBaHV2b4xUQOdctrSNOpMqOZH1r2XzWTEhyfA==} - '@smithy/hash-node@3.0.10': - resolution: {integrity: sha512-3zWGWCHI+FlJ5WJwx73Mw2llYR8aflVyZN5JhoqLxbdPZi6UyKSdCeXAWJw9ja22m6S6Tzz1KZ+kAaSwvydi0g==} + '@smithy/hash-node@3.0.11': + resolution: {integrity: sha512-emP23rwYyZhQBvklqTtwetkQlqbNYirDiEEwXl2v0GYWMnCzxst7ZaRAnWuy28njp5kAH54lvkdG37MblZzaHA==} engines: {node: '>=16.0.0'} - '@smithy/hash-stream-node@3.1.9': - resolution: {integrity: sha512-3XfHBjSP3oDWxLmlxnt+F+FqXpL3WlXs+XXaB6bV9Wo8BBu87fK1dSEsyH7Z4ZHRmwZ4g9lFMdf08m9hoX1iRA==} + '@smithy/hash-stream-node@3.1.10': + resolution: {integrity: sha512-olomK/jZQ93OMayW1zfTHwcbwBdhcZOHsyWyiZ9h9IXvc1mCD/VuvzbLb3Gy/qNJwI4MANPLctTp2BucV2oU/Q==} engines: {node: '>=16.0.0'} - '@smithy/invalid-dependency@3.0.10': - resolution: {integrity: sha512-Lp2L65vFi+cj0vFMu2obpPW69DU+6O5g3086lmI4XcnRCG8PxvpWC7XyaVwJCxsZFzueHjXnrOH/E0pl0zikfA==} + '@smithy/invalid-dependency@3.0.11': + resolution: {integrity: sha512-NuQmVPEJjUX6c+UELyVz8kUx8Q539EDeNwbRyu4IIF8MeV7hUtq1FB3SHVyki2u++5XLMFqngeMKk7ccspnNyQ==} '@smithy/is-array-buffer@2.2.0': resolution: {integrity: sha512-GGP3O9QFD24uGeAXYUjwSTXARoqpZykHadOmA8G5vfJPK0/DC67qa//0qvqrJzL1xc8WQWX7/yc7fwudjPHPhA==} @@ -1724,75 +1724,75 @@ packages: resolution: {integrity: sha512-+Fsu6Q6C4RSJiy81Y8eApjEB5gVtM+oFKTffg+jSuwtvomJJrhUJBu2zS8wjXSgH/g1MKEWrzyChTBe6clb5FQ==} engines: {node: '>=16.0.0'} - '@smithy/md5-js@3.0.10': - resolution: {integrity: sha512-m3bv6dApflt3fS2Y1PyWPUtRP7iuBlvikEOGwu0HsCZ0vE7zcIX+dBoh3e+31/rddagw8nj92j0kJg2TfV+SJA==} + '@smithy/md5-js@3.0.11': + resolution: {integrity: sha512-3NM0L3i2Zm4bbgG6Ymi9NBcxXhryi3uE8fIfHJZIOfZVxOkGdjdgjR9A06SFIZCfnEIWKXZdm6Yq5/aPXFFhsQ==} - '@smithy/middleware-content-length@3.0.12': - resolution: {integrity: sha512-1mDEXqzM20yywaMDuf5o9ue8OkJ373lSPbaSjyEvkWdqELhFMyNNgKGWL/rCSf4KME8B+HlHKuR8u9kRj8HzEQ==} + '@smithy/middleware-content-length@3.0.13': + resolution: {integrity: sha512-zfMhzojhFpIX3P5ug7jxTjfUcIPcGjcQYzB9t+rv0g1TX7B0QdwONW+ATouaLoD7h7LOw/ZlXfkq4xJ/g2TrIw==} engines: {node: '>=16.0.0'} - '@smithy/middleware-endpoint@3.2.4': - resolution: {integrity: sha512-TybiW2LA3kYVd3e+lWhINVu1o26KJbBwOpADnf0L4x/35vLVica77XVR5hvV9+kWeTGeSJ3IHTcYxbRxlbwhsg==} + '@smithy/middleware-endpoint@3.2.5': + resolution: {integrity: sha512-VhJNs/s/lyx4weiZdXSloBgoLoS8osV0dKIain8nGmx7of3QFKu5BSdEuk1z/U8x9iwes1i+XCiNusEvuK1ijg==} engines: {node: '>=16.0.0'} - '@smithy/middleware-retry@3.0.28': - resolution: {integrity: sha512-vK2eDfvIXG1U64FEUhYxoZ1JSj4XFbYWkK36iz02i3pFwWiDz1Q7jKhGTBCwx/7KqJNk4VS7d7cDLXFOvP7M+g==} + '@smithy/middleware-retry@3.0.30': + resolution: {integrity: sha512-6323RL2BvAR3VQpTjHpa52kH/iSHyxd/G9ohb2MkBk2Ucu+oMtRXT8yi7KTSIS9nb58aupG6nO0OlXnQOAcvmQ==} engines: {node: '>=16.0.0'} - '@smithy/middleware-serde@3.0.10': - resolution: {integrity: sha512-MnAuhh+dD14F428ubSJuRnmRsfOpxSzvRhaGVTvd/lrUDE3kxzCCmH8lnVTvoNQnV2BbJ4c15QwZ3UdQBtFNZA==} + '@smithy/middleware-serde@3.0.11': + resolution: {integrity: sha512-KzPAeySp/fOoQA82TpnwItvX8BBURecpx6ZMu75EZDkAcnPtO6vf7q4aH5QHs/F1s3/snQaSFbbUMcFFZ086Mw==} engines: {node: '>=16.0.0'} - '@smithy/middleware-stack@3.0.10': - resolution: {integrity: sha512-grCHyoiARDBBGPyw2BeicpjgpsDFWZZxptbVKb3CRd/ZA15F/T6rZjCCuBUjJwdck1nwUuIxYtsS4H9DDpbP5w==} + '@smithy/middleware-stack@3.0.11': + resolution: {integrity: sha512-1HGo9a6/ikgOMrTrWL/WiN9N8GSVYpuRQO5kjstAq4CvV59bjqnh7TbdXGQ4vxLD3xlSjfBjq5t1SOELePsLnA==} engines: {node: '>=16.0.0'} - '@smithy/node-config-provider@3.1.11': - resolution: {integrity: sha512-URq3gT3RpDikh/8MBJUB+QGZzfS7Bm6TQTqoh4CqE8NBuyPkWa5eUXj0XFcFfeZVgg3WMh1u19iaXn8FvvXxZw==} + '@smithy/node-config-provider@3.1.12': + resolution: {integrity: sha512-O9LVEu5J/u/FuNlZs+L7Ikn3lz7VB9hb0GtPT9MQeiBmtK8RSY3ULmsZgXhe6VAlgTw0YO+paQx4p8xdbs43vQ==} engines: {node: '>=16.0.0'} - '@smithy/node-http-handler@3.3.1': - resolution: {integrity: sha512-fr+UAOMGWh6bn4YSEezBCpJn9Ukp9oR4D32sCjCo7U81evE11YePOQ58ogzyfgmjIO79YeOdfXXqr0jyhPQeMg==} + '@smithy/node-http-handler@3.3.2': + resolution: {integrity: sha512-t4ng1DAd527vlxvOfKFYEe6/QFBcsj7WpNlWTyjorwXXcKw3XlltBGbyHfSJ24QT84nF+agDha9tNYpzmSRZPA==} engines: {node: '>=16.0.0'} - '@smithy/property-provider@3.1.10': - resolution: {integrity: sha512-n1MJZGTorTH2DvyTVj+3wXnd4CzjJxyXeOgnTlgNVFxaaMeT4OteEp4QrzF8p9ee2yg42nvyVK6R/awLCakjeQ==} + '@smithy/property-provider@3.1.11': + resolution: {integrity: sha512-I/+TMc4XTQ3QAjXfOcUWbSS073oOEAxgx4aZy8jHaf8JQnRkq2SZWw8+PfDtBvLUjcGMdxl+YwtzWe6i5uhL/A==} engines: {node: '>=16.0.0'} - '@smithy/protocol-http@4.1.7': - resolution: {integrity: sha512-FP2LepWD0eJeOTm0SjssPcgqAlDFzOmRXqXmGhfIM52G7Lrox/pcpQf6RP4F21k0+O12zaqQt5fCDOeBtqY6Cg==} + '@smithy/protocol-http@4.1.8': + resolution: {integrity: sha512-hmgIAVyxw1LySOwkgMIUN0kjN8TG9Nc85LJeEmEE/cNEe2rkHDUWhnJf2gxcSRFLWsyqWsrZGw40ROjUogg+Iw==} engines: {node: '>=16.0.0'} - '@smithy/querystring-builder@3.0.10': - resolution: {integrity: sha512-nT9CQF3EIJtIUepXQuBFb8dxJi3WVZS3XfuDksxSCSn+/CzZowRLdhDn+2acbBv8R6eaJqPupoI/aRFIImNVPQ==} + '@smithy/querystring-builder@3.0.11': + resolution: {integrity: sha512-u+5HV/9uJaeLj5XTb6+IEF/dokWWkEqJ0XiaRRogyREmKGUgZnNecLucADLdauWFKUNbQfulHFEZEdjwEBjXRg==} engines: {node: '>=16.0.0'} - '@smithy/querystring-parser@3.0.10': - resolution: {integrity: sha512-Oa0XDcpo9SmjhiDD9ua2UyM3uU01ZTuIrNdZvzwUTykW1PM8o2yJvMh1Do1rY5sUQg4NDV70dMi0JhDx4GyxuQ==} + '@smithy/querystring-parser@3.0.11': + resolution: {integrity: sha512-Je3kFvCsFMnso1ilPwA7GtlbPaTixa3WwC+K21kmMZHsBEOZYQaqxcMqeFFoU7/slFjKDIpiiPydvdJm8Q/MCw==} engines: {node: '>=16.0.0'} - '@smithy/service-error-classification@3.0.10': - resolution: {integrity: sha512-zHe642KCqDxXLuhs6xmHVgRwy078RfqxP2wRDpIyiF8EmsWXptMwnMwbVa50lw+WOGNrYm9zbaEg0oDe3PTtvQ==} + '@smithy/service-error-classification@3.0.11': + resolution: {integrity: sha512-QnYDPkyewrJzCyaeI2Rmp7pDwbUETe+hU8ADkXmgNusO1bgHBH7ovXJiYmba8t0fNfJx75fE8dlM6SEmZxheog==} engines: {node: '>=16.0.0'} - '@smithy/shared-ini-file-loader@3.1.11': - resolution: {integrity: sha512-AUdrIZHFtUgmfSN4Gq9nHu3IkHMa1YDcN+s061Nfm+6pQ0mJy85YQDB0tZBCmls0Vuj22pLwDPmL92+Hvfwwlg==} + '@smithy/shared-ini-file-loader@3.1.12': + resolution: {integrity: sha512-1xKSGI+U9KKdbG2qDvIR9dGrw3CNx+baqJfyr0igKEpjbHL5stsqAesYBzHChYHlelWtb87VnLWlhvfCz13H8Q==} engines: {node: '>=16.0.0'} - '@smithy/signature-v4@4.2.3': - resolution: {integrity: sha512-pPSQQ2v2vu9vc8iew7sszLd0O09I5TRc5zhY71KA+Ao0xYazIG+uLeHbTJfIWGO3BGVLiXjUr3EEeCcEQLjpWQ==} + '@smithy/signature-v4@4.2.4': + resolution: {integrity: sha512-5JWeMQYg81TgU4cG+OexAWdvDTs5JDdbEZx+Qr1iPbvo91QFGzjy0IkXAKaXUHqmKUJgSHK0ZxnCkgZpzkeNTA==} engines: {node: '>=16.0.0'} - '@smithy/smithy-client@3.4.5': - resolution: {integrity: sha512-k0sybYT9zlP79sIKd1XGm4TmK0AS1nA2bzDHXx7m0nGi3RQ8dxxQUs4CPkSmQTKAo+KF9aINU3KzpGIpV7UoMw==} + '@smithy/smithy-client@3.5.0': + resolution: {integrity: sha512-Y8FeOa7gbDfCWf7njrkoRATPa5eNLUEjlJS5z5rXatYuGkCb80LbHcu8AQR8qgAZZaNHCLyo2N+pxPsV7l+ivg==} engines: {node: '>=16.0.0'} - '@smithy/types@3.7.1': - resolution: {integrity: sha512-XKLcLXZY7sUQgvvWyeaL/qwNPp6V3dWcUjqrQKjSb+tzYiCy340R/c64LV5j+Tnb2GhmunEX0eou+L+m2hJNYA==} + '@smithy/types@3.7.2': + resolution: {integrity: sha512-bNwBYYmN8Eh9RyjS1p2gW6MIhSO2rl7X9QeLM8iTdcGRP+eDiIWDt66c9IysCc22gefKszZv+ubV9qZc7hdESg==} engines: {node: '>=16.0.0'} - '@smithy/url-parser@3.0.10': - resolution: {integrity: sha512-j90NUalTSBR2NaZTuruEgavSdh8MLirf58LoGSk4AtQfyIymogIhgnGUU2Mga2bkMkpSoC9gxb74xBXL5afKAQ==} + '@smithy/url-parser@3.0.11': + resolution: {integrity: sha512-TmlqXkSk8ZPhfc+SQutjmFr5FjC0av3GZP4B/10caK1SbRwe/v+Wzu/R6xEKxoNqL+8nY18s1byiy6HqPG37Aw==} '@smithy/util-base64@3.0.0': resolution: {integrity: sha512-Kxvoh5Qtt0CDsfajiZOCpJxgtPHXOKwmM+Zy4waD43UoEMA+qPxxa98aE/7ZhdnBFZFXMOiBR5xbcaMhLtznQQ==} @@ -1817,32 +1817,32 @@ packages: resolution: {integrity: sha512-pbjk4s0fwq3Di/ANL+rCvJMKM5bzAQdE5S/6RL5NXgMExFAi6UgQMPOm5yPaIWPpr+EOXKXRonJ3FoxKf4mCJQ==} engines: {node: '>=16.0.0'} - '@smithy/util-defaults-mode-browser@3.0.28': - resolution: {integrity: sha512-6bzwAbZpHRFVJsOztmov5PGDmJYsbNSoIEfHSJJyFLzfBGCCChiO3od9k7E/TLgrCsIifdAbB9nqbVbyE7wRUw==} + '@smithy/util-defaults-mode-browser@3.0.30': + resolution: {integrity: sha512-nLuGmgfcr0gzm64pqF2UT4SGWVG8UGviAdayDlVzJPNa6Z4lqvpDzdRXmLxtOdEjVlTOEdpZ9dd3ZMMu488mzg==} engines: {node: '>= 10.0.0'} - '@smithy/util-defaults-mode-node@3.0.28': - resolution: {integrity: sha512-78ENJDorV1CjOQselGmm3+z7Yqjj5HWCbjzh0Ixuq736dh1oEnD9sAttSBNSLlpZsX8VQnmERqA2fEFlmqWn8w==} + '@smithy/util-defaults-mode-node@3.0.30': + resolution: {integrity: sha512-OD63eWoH68vp75mYcfYyuVH+p7Li/mY4sYOROnauDrtObo1cS4uWfsy/zhOTW8F8ZPxQC1ZXZKVxoxvMGUv2Ow==} engines: {node: '>= 10.0.0'} - '@smithy/util-endpoints@2.1.6': - resolution: {integrity: sha512-mFV1t3ndBh0yZOJgWxO9J/4cHZVn5UG1D8DeCc6/echfNkeEJWu9LD7mgGH5fHrEdR7LDoWw7PQO6QiGpHXhgA==} + '@smithy/util-endpoints@2.1.7': + resolution: {integrity: sha512-tSfcqKcN/Oo2STEYCABVuKgJ76nyyr6skGl9t15hs+YaiU06sgMkN7QYjo0BbVw+KT26zok3IzbdSOksQ4YzVw==} 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.10': - resolution: {integrity: sha512-eJO+/+RsrG2RpmY68jZdwQtnfsxjmPxzMlQpnHKjFPwrYqvlcT+fHdT+ZVwcjlWSrByOhGr9Ff2GG17efc192A==} + '@smithy/util-middleware@3.0.11': + resolution: {integrity: sha512-dWpyc1e1R6VoXrwLoLDd57U1z6CwNSdkM69Ie4+6uYh2GC7Vg51Qtan7ITzczuVpqezdDTKJGJB95fFvvjU/ow==} engines: {node: '>=16.0.0'} - '@smithy/util-retry@3.0.10': - resolution: {integrity: sha512-1l4qatFp4PiU6j7UsbasUHL2VU023NRB/gfaa1M0rDqVrRN4g3mCArLRyH3OuktApA4ye+yjWQHjdziunw2eWA==} + '@smithy/util-retry@3.0.11': + resolution: {integrity: sha512-hJUC6W7A3DQgaee3Hp9ZFcOxVDZzmBIRBPlUAk8/fSOEl7pE/aX7Dci0JycNOnm9Mfr0KV2XjIlUOcGWXQUdVQ==} engines: {node: '>=16.0.0'} - '@smithy/util-stream@3.3.1': - resolution: {integrity: sha512-Ff68R5lJh2zj+AUTvbAU/4yx+6QPRzg7+pI7M1FbtQHcRIp7xvguxVsQBKyB3fwiOwhAKu0lnNyYBaQfSW6TNw==} + '@smithy/util-stream@3.3.2': + resolution: {integrity: sha512-sInAqdiVeisUGYAv/FrXpmJ0b4WTFmciTRqzhb7wVuem9BHvhIG7tpiYHLDWrl2stOokNZpTTGqz3mzB2qFwXg==} engines: {node: '>=16.0.0'} '@smithy/util-uri-escape@3.0.0': @@ -1857,72 +1857,72 @@ packages: resolution: {integrity: sha512-rUeT12bxFnplYDe815GXbq/oixEGHfRFFtcTF3YdDi/JaENIM6aSYYLJydG83UNzLXeRI5K8abYd/8Sp/QM0kA==} engines: {node: '>=16.0.0'} - '@smithy/util-waiter@3.1.9': - resolution: {integrity: sha512-/aMXPANhMOlMPjfPtSrDfPeVP8l56SJlz93xeiLmhLe5xvlXA5T3abZ2ilEsDEPeY9T/wnN/vNGn9wa1SbufWA==} + '@smithy/util-waiter@3.2.0': + resolution: {integrity: sha512-PpjSboaDUE6yl+1qlg3Si57++e84oXdWGbuFUSAciXsVfEZJJJupR2Nb0QuXHiunt2vGR+1PTizOMvnUPaG2Qg==} engines: {node: '>=16.0.0'} - '@swc/core-darwin-arm64@1.10.0': - resolution: {integrity: sha512-wCeUpanqZyzvgqWRtXIyhcFK3CqukAlYyP+fJpY2gWc/+ekdrenNIfZMwY7tyTFDkXDYEKzvn3BN/zDYNJFowQ==} + '@swc/core-darwin-arm64@1.10.1': + resolution: {integrity: sha512-NyELPp8EsVZtxH/mEqvzSyWpfPJ1lugpTQcSlMduZLj1EASLO4sC8wt8hmL1aizRlsbjCX+r0PyL+l0xQ64/6Q==} engines: {node: '>=10'} cpu: [arm64] os: [darwin] - '@swc/core-darwin-x64@1.10.0': - resolution: {integrity: sha512-0CZPzqTynUBO+SHEl/qKsFSahp2Jv/P2ZRjFG0gwZY5qIcr1+B/v+o74/GyNMBGz9rft+F2WpU31gz2sJwyF4A==} + '@swc/core-darwin-x64@1.10.1': + resolution: {integrity: sha512-L4BNt1fdQ5ZZhAk5qoDfUnXRabDOXKnXBxMDJ+PWLSxOGBbWE6aJTnu4zbGjJvtot0KM46m2LPAPY8ttknqaZA==} engines: {node: '>=10'} cpu: [x64] os: [darwin] - '@swc/core-linux-arm-gnueabihf@1.10.0': - resolution: {integrity: sha512-oq+DdMu5uJOFPtRkeiITc4kxmd+QSmK+v+OBzlhdGkSgoH3yRWZP+H2ao0cBXo93ZgCr2LfjiER0CqSKhjGuNA==} + '@swc/core-linux-arm-gnueabihf@1.10.1': + resolution: {integrity: sha512-Y1u9OqCHgvVp2tYQAJ7hcU9qO5brDMIrA5R31rwWQIAKDkJKtv3IlTHF0hrbWk1wPR0ZdngkQSJZple7G+Grvw==} engines: {node: '>=10'} cpu: [arm] os: [linux] - '@swc/core-linux-arm64-gnu@1.10.0': - resolution: {integrity: sha512-Y6+PC8knchEViRxiCUj3j8wsGXaIhuvU+WqrFqV834eiItEMEI9+Vh3FovqJMBE3L7d4E4ZQtgImHCXjrHfxbw==} + '@swc/core-linux-arm64-gnu@1.10.1': + resolution: {integrity: sha512-tNQHO/UKdtnqjc7o04iRXng1wTUXPgVd8Y6LI4qIbHVoVPwksZydISjMcilKNLKIwOoUQAkxyJ16SlOAeADzhQ==} engines: {node: '>=10'} cpu: [arm64] os: [linux] - '@swc/core-linux-arm64-musl@1.10.0': - resolution: {integrity: sha512-EbrX9A5U4cECCQQfky7945AW9GYnTXtCUXElWTkTYmmyQK87yCyFfY8hmZ9qMFIwxPOH6I3I2JwMhzdi8Qoz7g==} + '@swc/core-linux-arm64-musl@1.10.1': + resolution: {integrity: sha512-x0L2Pd9weQ6n8dI1z1Isq00VHFvpBClwQJvrt3NHzmR+1wCT/gcYl1tp9P5xHh3ldM8Cn4UjWCw+7PaUgg8FcQ==} engines: {node: '>=10'} cpu: [arm64] os: [linux] - '@swc/core-linux-x64-gnu@1.10.0': - resolution: {integrity: sha512-TaxpO6snTjjfLXFYh5EjZ78se69j2gDcqEM8yB9gguPYwkCHi2Ylfmh7iVaNADnDJFtjoAQp0L41bTV/Pfq9Cg==} + '@swc/core-linux-x64-gnu@1.10.1': + resolution: {integrity: sha512-yyYEwQcObV3AUsC79rSzN9z6kiWxKAVJ6Ntwq2N9YoZqSPYph+4/Am5fM1xEQYf/kb99csj0FgOelomJSobxQA==} engines: {node: '>=10'} cpu: [x64] os: [linux] - '@swc/core-linux-x64-musl@1.10.0': - resolution: {integrity: sha512-IEGvDd6aEEKEyZFZ8oCKuik05G5BS7qwG5hO5PEMzdGeh8JyFZXxsfFXbfeAqjue4UaUUrhnoX+Ze3M2jBVMHw==} + '@swc/core-linux-x64-musl@1.10.1': + resolution: {integrity: sha512-tcaS43Ydd7Fk7sW5ROpaf2Kq1zR+sI5K0RM+0qYLYYurvsJruj3GhBCaiN3gkzd8m/8wkqNqtVklWaQYSDsyqA==} engines: {node: '>=10'} cpu: [x64] os: [linux] - '@swc/core-win32-arm64-msvc@1.10.0': - resolution: {integrity: sha512-UkQ952GSpY+Z6XONj9GSW8xGSkF53jrCsuLj0nrcuw7Dvr1a816U/9WYZmmcYS8tnG2vHylhpm6csQkyS8lpCw==} + '@swc/core-win32-arm64-msvc@1.10.1': + resolution: {integrity: sha512-D3Qo1voA7AkbOzQ2UGuKNHfYGKL6eejN8VWOoQYtGHHQi1p5KK/Q7V1ku55oxXBsj79Ny5FRMqiRJpVGad7bjQ==} engines: {node: '>=10'} cpu: [arm64] os: [win32] - '@swc/core-win32-ia32-msvc@1.10.0': - resolution: {integrity: sha512-a2QpIZmTiT885u/mUInpeN2W9ClCnqrV2LnMqJR1/Fgx1Afw/hAtiDZPtQ0SqS8yDJ2VR5gfNZo3gpxWMrqdVA==} + '@swc/core-win32-ia32-msvc@1.10.1': + resolution: {integrity: sha512-WalYdFoU3454Og+sDKHM1MrjvxUGwA2oralknXkXL8S0I/8RkWZOB++p3pLaGbTvOO++T+6znFbQdR8KRaa7DA==} engines: {node: '>=10'} cpu: [ia32] os: [win32] - '@swc/core-win32-x64-msvc@1.10.0': - resolution: {integrity: sha512-tZcCmMwf483nwsEBfUk5w9e046kMa1iSik4bP9Kwi2FGtOfHuDfIcwW4jek3hdcgF5SaBW1ktnK/lgQLDi5AtA==} + '@swc/core-win32-x64-msvc@1.10.1': + resolution: {integrity: sha512-JWobfQDbTnoqaIwPKQ3DVSywihVXlQMbDuwik/dDWlj33A8oEHcjPOGs4OqcA3RHv24i+lfCQpM3Mn4FAMfacA==} engines: {node: '>=10'} cpu: [x64] os: [win32] - '@swc/core@1.10.0': - resolution: {integrity: sha512-+CuuTCmQFfzaNGg1JmcZvdUVITQXJk9sMnl1C2TiDLzOSVOJRwVD4dNo5dljX/qxpMAN+2BIYlwjlSkoGi6grg==} + '@swc/core@1.10.1': + resolution: {integrity: sha512-rQ4dS6GAdmtzKiCRt3LFVxl37FaY1cgL9kSUTnhQ2xc3fmHOd7jdJK/V4pSZMG1ruGTd0bsi34O2R0Olg9Zo/w==} engines: {node: '>=10'} peerDependencies: '@swc/helpers': '*' @@ -2236,8 +2236,8 @@ packages: resolution: {integrity: sha512-Uholz7tWhXmA4r6epo+vaeV7yjdKy5QFCERMjs1kMVsLRKIrSdM6o21W2He9ftp5PP6aWOVpD5zvrvuHZC0bMQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/scope-manager@8.17.0': - resolution: {integrity: sha512-/ewp4XjvnxaREtqsZjF4Mfn078RD/9GmiEAtTeLQ7yFdKnqwTOgRMSvFz4et9U5RiJQ15WTGXPLj89zGusvxBg==} + '@typescript-eslint/scope-manager@8.18.0': + resolution: {integrity: sha512-PNGcHop0jkK2WVYGotk/hxj+UFLhXtGPiGtiaWgVBVP1jhMoMCHlTyJA+hEj4rszoSdLTK3fN4oOatrL0Cp+Xw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} '@typescript-eslint/type-utils@8.11.0': @@ -2257,8 +2257,8 @@ packages: resolution: {integrity: sha512-tn6sNMHf6EBAYMvmPUaKaVeYvhUsrE6x+bXQTxjQRp360h1giATU0WvgeEys1spbvb5R+VpNOZ+XJmjD8wOUHw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/types@8.17.0': - resolution: {integrity: sha512-gY2TVzeve3z6crqh2Ic7Cr+CAv6pfb0Egee7J5UAVWCpVvDI/F71wNfolIim4FE6hT15EbpZFVUj9j5i38jYXA==} + '@typescript-eslint/types@8.18.0': + resolution: {integrity: sha512-FNYxgyTCAnFwTrzpBGq+zrnoTO4x0c1CKYY5MuUTzpScqmY5fmsh2o3+57lqdI3NZucBDCzDgdEbIaNfAjAHQA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} '@typescript-eslint/typescript-estree@5.62.0': @@ -2279,14 +2279,11 @@ packages: typescript: optional: true - '@typescript-eslint/typescript-estree@8.17.0': - resolution: {integrity: sha512-JqkOopc1nRKZpX+opvKqnM3XUlM7LpFMD0lYxTqOTKQfCWAmxw45e3qlOCsEqEB2yuacujivudOFpCnqkBDNMw==} + '@typescript-eslint/typescript-estree@8.18.0': + resolution: {integrity: sha512-rqQgFRu6yPkauz+ms3nQpohwejS8bvgbPyIDq13cgEDbkXt4LH4OkDMT0/fN1RUtzG8e8AKJyDBoocuQh8qNeg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true + typescript: '>=4.8.4 <5.8.0' '@typescript-eslint/utils@5.62.0': resolution: {integrity: sha512-n8oxjeb5aIbPFEtmQxQYOLI0i9n5ySBEY/ZEHHZqKQSFnxio1rv6dthascc9dLuwrL0RC5mPCxB7vnAVGAYWAQ==} @@ -2300,15 +2297,12 @@ packages: peerDependencies: eslint: ^8.57.0 || ^9.0.0 - '@typescript-eslint/utils@8.17.0': - resolution: {integrity: sha512-bQC8BnEkxqG8HBGKwG9wXlZqg37RKSMY7v/X8VEWD8JG2JuTHuNK0VFvMPMUKQcbk6B+tf05k+4AShAEtCtJ/w==} + '@typescript-eslint/utils@8.18.0': + resolution: {integrity: sha512-p6GLdY383i7h5b0Qrfbix3Vc3+J2k6QWw6UMUeY5JGfm3C5LbZ4QIZzJNoNOfgyRe0uuYKjvVOsO/jD4SJO+xg==} 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: '>=4.8.4 <5.8.0' '@typescript-eslint/visitor-keys@5.62.0': resolution: {integrity: sha512-07ny+LHRzQXepkGg6w0mFY41fVUNBrL2Roj/++7V1txKugfjm/Ci/qSND03r2RhlJhJYMcTn9AhhSSqQp0Ysyw==} @@ -2318,8 +2312,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.17.0': - resolution: {integrity: sha512-1Hm7THLpO6ww5QU6H/Qp+AusUUl+z/CAm3cNZZ0jQvon9yicgO7Rwd+/WWRpMKLYV6p2UvdbR27c86rzCPpreg==} + '@typescript-eslint/visitor-keys@8.18.0': + resolution: {integrity: sha512-pCh/qEA8Lb1wVIqNvBke8UaRjJ6wrAWkJO5yyIbs8Yx6TNGYyfNjOo61tLv+WwLvoLPp4BQ8B7AHKijl8NGUfw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} '@ungap/structured-clone@1.2.1': @@ -2471,16 +2465,16 @@ packages: resolution: {integrity: sha512-zfETvRFA8o7EiNn++N5f/kaCw221hrpGsDmcpndVupkPzEc1Wuf3VgC0qby1BbHs7f5DVYjgtEU2LLh5bqeGfQ==} engines: {node: '>= 0.4'} - array.prototype.flat@1.3.2: - resolution: {integrity: sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA==} + array.prototype.flat@1.3.3: + resolution: {integrity: sha512-rwG/ja1neyLqCuGZ5YYrznA62D4mZXg0i1cIskIUKSiqF3Cje9/wXAls9B9s1Wa2fomMsIv8czB8jZcPmxCXFg==} engines: {node: '>= 0.4'} - array.prototype.flatmap@1.3.2: - resolution: {integrity: sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ==} + array.prototype.flatmap@1.3.3: + resolution: {integrity: sha512-Y7Wt51eKJSyi80hFrJCePGGNo5ktJCslFuboqJsbf57CCPcm5zztluPlc4/aD8sWsKvlwatezpV4U1efk8kpjg==} engines: {node: '>= 0.4'} - arraybuffer.prototype.slice@1.0.3: - resolution: {integrity: sha512-bMxMKAjg13EBSVscxTaYA4mRc5t1UAXa2kXiGTNfZ079HIWXEkKmkgFrh/nJqamaLSrXO5H4WFFkPEaLJWbs3A==} + arraybuffer.prototype.slice@1.0.4: + resolution: {integrity: sha512-BNoCY6SXXPQ7gF2opIP4GBE+Xw7U+pHMYKuzjgCN3GwiaIR09UUeKfheyIry77QtrCBlC0KK0q5/TER/tYh3PQ==} engines: {node: '>= 0.4'} arrify@1.0.1: @@ -2553,8 +2547,8 @@ packages: before-after-hook@3.0.2: resolution: {integrity: sha512-Nik3Sc0ncrMK4UUdXQmAnRtzmNQTAAXmXIopizwZ1W1t8QmfJj+zL4OA2I7XPTPW5z5TDqv4hRo/JzouDJnX3A==} - better-sqlite3@11.6.0: - resolution: {integrity: sha512-2J6k/eVxcFYY2SsTxsXrj6XylzHWPxveCn4fKPKZFv/Vqn/Cd7lOuX4d7rGQXT5zL+97MkNL3nSbCrIoe3LkgA==} + better-sqlite3@11.7.0: + resolution: {integrity: sha512-mXpa5jnIKKHeoGzBrUJrc65cXFKcILGZpU3FXR0pradUEm9MA7UZz02qfEejaMcm9iXrSOCenwwYMJ/tZ1y5Ig==} bignumber.js@9.1.2: resolution: {integrity: sha512-2/mKyZH9K85bzOEfhXDBFZTGd1CTs+5IHpeFQo9luiBG7hghdC851Pj2WAhb6E3R6b9tZj/XKhbg4fum+Kepug==} @@ -2591,8 +2585,8 @@ packages: resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==} engines: {node: '>=8'} - browserslist@4.24.2: - resolution: {integrity: sha512-ZIc+Q62revdMcqC6aChtW4jz3My3klmCO1fEmINZY/8J3EpBg5/A/D0AKmBveUh6pgoeycoMkVMko84tuYS+Gg==} + browserslist@4.24.3: + resolution: {integrity: sha512-1CPmv8iobE2fyRMV97dAcMVegvvWKxmq94hkLiAkUGwKVTyDLw33K+ZxiFrREKmmps4rIw6grcCFCnTMSZ/YiA==} engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} hasBin: true @@ -2643,14 +2637,18 @@ packages: resolution: {integrity: sha512-kpqOvwXnjjN44D89K5ccQC+RUrsy7jB/XLlRrx0D7/2HNcTPqzsb6XgYoErwko6QsV184CA2YgS1fxDiiDZMWA==} engines: {node: '>=8'} - call-bind-apply-helpers@1.0.0: - resolution: {integrity: sha512-CCKAP2tkPau7D3GE8+V8R6sQubA9R5foIzGp+85EXCVSCivuxBNAWqcpn72PKYiIcqoViv/kcUDpaEIMBVi1lQ==} + call-bind-apply-helpers@1.0.1: + resolution: {integrity: sha512-BhYE+WDaywFg2TBWYNXAE+8B1ATnThNBqXHP5nQu0jWJdVvY2hvkpyB3qOmtmDePiS5/BDQ8wASEWGMWRG148g==} engines: {node: '>= 0.4'} call-bind@1.0.8: resolution: {integrity: sha512-oKlSFMcMwpUg2ednkhQ454wfWiU/ul3CkJe/PEHcTKuiX6RpbehUiFMXu13HalGZxfUwCQzZG747YXBn1im9ww==} engines: {node: '>= 0.4'} + call-bound@1.0.3: + resolution: {integrity: sha512-YTd+6wGlNlPxSuri7Y6X8tY2dmm12UMH66RpKMhiX6rsk5wXXnYgbUcOt8kiS31/AjfoTOvCsE+w8nZQLQnzHA==} + engines: {node: '>= 0.4'} + callsite@1.0.0: resolution: {integrity: sha512-0vdNRFXn5q+dtOqjfFtmtlI9N2eVZ7LMyEV2iKC5mEEFvSg/69Ml6b/WU2qF8W1nLRa0wiSrDT3Y5jOHZCwKPQ==} @@ -2670,8 +2668,8 @@ packages: resolution: {integrity: sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==} engines: {node: '>=10'} - caniuse-lite@1.0.30001687: - resolution: {integrity: sha512-0S/FDhf4ZiqrTUiQ39dKeUjYRjkv7lOZU1Dgif2rIqrTzX/1wV2hfKu9TOm1IHkdSijfLswxTFzl/cvir+SLSQ==} + caniuse-lite@1.0.30001688: + resolution: {integrity: sha512-Nmqpru91cuABu/DTCXbM2NSRHzM2uVHfPnhJ/1zEAJx/ILBRVmz3pzH4N7DZqbdG0gWClsCC05Oj0mJ/1AWMbA==} chalk@2.4.2: resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==} @@ -3073,8 +3071,8 @@ packages: engines: {node: '>=0.10.0'} hasBin: true - electron-to-chromium@1.5.71: - resolution: {integrity: sha512-dB68l59BI75W1BUGVTAEJy45CEVuEGy9qPVVQ8pnHyHMn36PLPPoE1mjLH+lo9rKulO3HC2OhbACI/8tCqJBcA==} + electron-to-chromium@1.5.73: + resolution: {integrity: sha512-8wGNxG9tAG5KhGd3eeA0o6ixhiNdgr0DcHWm85XPCphwZgD1lIEoi6t3VERayWao7SF7AAZTw6oARGJeVjH8Kg==} email-addresses@5.0.0: resolution: {integrity: sha512-4OIPYlA6JXqtVn8zpHpGiI7vE6EQOAg16aGnDMIAlZVinnoZ8208tW1hAbjWydgN/4PLTT9q+O1K6AH/vALJGw==} @@ -3092,16 +3090,17 @@ packages: emoji-regex@9.2.2: resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==} - emojibase-data@15.3.2: - resolution: {integrity: sha512-TpDyTDDTdqWIJixV5sTA6OQ0P0JfIIeK2tFRR3q56G9LK65ylAZ7z3KyBXokpvTTJ+mLUXQXbLNyVkjvnTLE+A==} + emojibase-data@16.0.2: + resolution: {integrity: sha512-vRM82rvhjB4z5jDvxYanK/CZVe1QCu9ihxockyNvitd/aFkTT6Y4eeBW49GoXv5JMCNFrzDarADWrv7tjLcefA==} peerDependencies: emojibase: '*' - emojibase-regex@15.3.2: - resolution: {integrity: sha512-ue6BVeb2qu33l97MkxcOoyMJlg6Tug3eTv2z1at+M9TjvlWKvdmAPvZIDG1JbT2RH3FSyJNLucO5K5H/yxT03w==} + emojibase-regex@16.0.0: + resolution: {integrity: sha512-ZMp31BkzBWNW+T73of6NURL6nXQa5GkfKneOkr3cEwBDVllbW/2nuva7NO0J3RjaQ07+SZQNgPTGZ4JlIhmM2Q==} - emojibase@15.3.1: - resolution: {integrity: sha512-GNsjHnG2J3Ktg684Fs/vZR/6XpOSkZPMAv85EHrr6br2RN2cJNwdS4am/3YSK3y+/gOv2kmoK3GGdahXdMxg2g==} + emojibase@16.0.0: + resolution: {integrity: sha512-Nw2m7JLIO4Ou2X/yZPRNscHQXVbbr6SErjkJ7EooG7MbR3yDZszCv9KTizsXFc7yZl0n3WF+qUKIC/Lw6H9xaQ==} + engines: {node: '>=18.12.0'} emojilib@2.4.0: resolution: {integrity: sha512-5U0rVMU5Y2n2+ykNLQqMoqklN9ICBT/KsvC1Gz6vqHbz2AXXGkG+Pm5rMWk/8Vjrr/mY9985Hi8DYzn1F09Nyw==} @@ -3502,8 +3501,8 @@ packages: resolution: {integrity: sha512-939eZS4gJ3htTHAldmyyuzlrD58P03fHG49v2JfFXbV6OhvZKRC9j2yAtdHw/zrp2zXHuv05zMIy40F0ge7spA==} engines: {node: '>=18'} - function.prototype.name@1.1.6: - resolution: {integrity: sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==} + function.prototype.name@1.1.7: + resolution: {integrity: sha512-2g4x+HqTJKM9zcJqBSpjoRmdcPFtJM60J3xJisTQSXBWka5XqyBN/2tNUgma1mztTXyDuUsEtYe5qcs7xYzYQA==} engines: {node: '>= 0.4'} functions-have-names@1.2.3: @@ -3529,8 +3528,8 @@ packages: resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} engines: {node: 6.* || 8.* || >= 10.*} - get-intrinsic@1.2.5: - resolution: {integrity: sha512-Y4+pKa7XeRUPWFNvOOYHkRYrfzW07oraURSvjDmRVOJ748OrVmeXtpE4+GCEHncjCjkTxPNRt8kEbxDhsn6VTg==} + get-intrinsic@1.2.6: + resolution: {integrity: sha512-qxsEs+9A+u85HhllWJJFicJfPDhRmjzoYdl64aMWW9yRIJmSyxdn8IEkuIM530/7T+lv0TIHd8L6Q/ra0tEoeA==} engines: {node: '>= 0.4'} get-package-type@0.1.0: @@ -3865,8 +3864,8 @@ packages: resolution: {integrity: sha512-gZHC7f/cJgXz7MXlHFBxPVMsvIbev1OQN1uKQYKVJDydGNm9oYf9JstbU4Atnh/eSvk41WtEovoRm+8IF686xg==} hasBin: true - internal-slot@1.0.7: - resolution: {integrity: sha512-NGnrKwXzSms2qUUih/ILZ5JBqNTSa1+ZmP6flaIp6KmSElgE9qdndzS3cqjrDovwFdmwsGsLdeFgB6suw+1e9g==} + internal-slot@1.1.0: + resolution: {integrity: sha512-4gd7VpWNQNB4UKKCFFVcp1AVv+FMOgs9NKzjHKusc8jTMhd5eL1NqQqOpE0KzMds804/yHlglp3uxgluOqAPLw==} engines: {node: '>= 0.4'} into-stream@7.0.0: @@ -3883,8 +3882,8 @@ packages: is-alphanumerical@1.0.4: resolution: {integrity: sha512-UzoZUr+XfVz3t3v4KyGEniVL9BDRoQtY7tOyrRybkVNjDFWyo1yhXNGrrBTQxp3ib9BLAWs7k2YKBQsFRkZG9A==} - is-arguments@1.1.1: - resolution: {integrity: sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==} + is-arguments@1.2.0: + resolution: {integrity: sha512-7bVbi0huj/wrIAOzb8U1aszg9kdi3KN/CyU19CTI7tAoZYEZoL9yCDXpbXN+uPsuWnP02cyug1gleqq+TU+YCA==} engines: {node: '>= 0.4'} is-array-buffer@3.0.4: @@ -3902,8 +3901,8 @@ packages: resolution: {integrity: sha512-n4ZT37wG78iz03xPRKJrHTdZbe3IicyucEtdRsV5yglwc3GyUfbAfpSeD0FJ41NbUNSt5wbhqfp1fS+BgnvDFQ==} engines: {node: '>= 0.4'} - is-boolean-object@1.2.0: - resolution: {integrity: sha512-kR5g0+dXf/+kXnqI+lu0URKYPKgICtHGGNCDSB10AaUFj3o/HkB3u7WfpRBJGFopxxY0oH3ux7ZsDjLtK7xqvw==} + is-boolean-object@1.2.1: + resolution: {integrity: sha512-l9qO6eFlUETHtuihLcYOaLKByJ1f+N4kthcU9YjHy3N+B3hWv0y/2Nd0mu/7lTFnRQHTrSdXF50HQ3bl5fEnng==} engines: {node: '>= 0.4'} is-buffer@2.0.5: @@ -3917,16 +3916,16 @@ packages: resolution: {integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==} engines: {node: '>= 0.4'} - is-core-module@2.15.1: - resolution: {integrity: sha512-z0vtXSwucUJtANQWldhbtbt7BnL0vxiFjIdDLAatwhDYty2bad6s+rijD6Ri4YuYJubLzIJLUidCh09e1djEVQ==} + is-core-module@2.16.0: + resolution: {integrity: sha512-urTSINYfAYgcbLb0yDQ6egFm6h3Mo1DcF9EkyXSRjjzdHbsulg01qhwWuXdOoUBuTkbQ80KDboXa0vFJ+BDH+g==} engines: {node: '>= 0.4'} - is-data-view@1.0.1: - resolution: {integrity: sha512-AHkaJrsUVW6wq6JS8y3JnM/GJF/9cf+k20+iDzlSaJrinEo5+7vRiteOSwBhHRiAyQATN1AmY4hwzxJKPmYf+w==} + is-data-view@1.0.2: + resolution: {integrity: sha512-RKtWF8pGmS87i2D6gqQu/l7EYRlVdfzemCJN/P3UOs//x1QE7mfhvzHIApBTRf7axvT6DMGwSwBXYCT0nfB9xw==} engines: {node: '>= 0.4'} - is-date-object@1.0.5: - resolution: {integrity: sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==} + is-date-object@1.1.0: + resolution: {integrity: sha512-PwwhEakHVKTdRNVOw+/Gyh0+MzlCl4R6qKvkhuvLtPMggI1WAHt9sOwZxQLSGpUaDnrdyDsomoRgNnCfKNSXXg==} engines: {node: '>= 0.4'} is-decimal@1.0.4: @@ -3998,8 +3997,8 @@ packages: resolution: {integrity: sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==} engines: {node: '>=12'} - is-regex@1.2.0: - resolution: {integrity: sha512-B6ohK4ZmoftlUe+uvenXSbPJFo6U37BH7oO1B3nQH8f/7h27N56s85MhUtbFJAziz5dcmuR3i8ovUl35zp8pFA==} + is-regex@1.2.1: + resolution: {integrity: sha512-MjYsKHO5O7mCsmRGxWcLWheFqN9DJ/2TmngvjKXihe6efViPqc274+Fx/4fYj/r03+ESvBdTXK0V6tA3rgez1g==} engines: {node: '>= 0.4'} is-set@2.0.3: @@ -4029,8 +4028,8 @@ packages: resolution: {integrity: sha512-PlfzajuF9vSo5wErv3MJAKD/nqf9ngAs1NFQYm16nUYFO2IzxJ2hcm+IOCg+EEopdykNNUhVq5cz35cAUxU8+g==} engines: {node: '>= 0.4'} - is-symbol@1.1.0: - resolution: {integrity: sha512-qS8KkNNXUZ/I+nX6QT8ZS1/Yx0A444yhzdTKxCzKkNjQ9sHErBxJnJAgh+f5YhusYECEcjo4XcyH87hn6+ks0A==} + is-symbol@1.1.1: + resolution: {integrity: sha512-9gGx6GTtCQM73BgmHQXfDmLtfjjTUDSyoxTCbp5WtoixAhfgsDirWIcVQ/IHpvI5Vgd5i/J5F7B9cN/WlVbC/w==} engines: {node: '>= 0.4'} is-typed-array@1.1.13: @@ -4048,8 +4047,9 @@ packages: 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-weakref@1.1.0: + resolution: {integrity: sha512-SXM8Nwyys6nT5WP6pltOwKytLV7FqQ4UiibxVmW+EIosHcmCqkkjViTb5SNssDlkCiEYRP1/pdWUKVvZBmsR2Q==} + engines: {node: '>= 0.4'} is-weakset@2.0.3: resolution: {integrity: sha512-LvIm3/KWzS9oRFHugab7d+M/GcBXuXX5xZkzPmN+NxihdQlZUQ4dWuSV1xR/sq6upL1TJEDrfBgRepHFdBtSNQ==} @@ -4289,8 +4289,8 @@ packages: jsbn@1.1.0: resolution: {integrity: sha512-4bYVV3aAMtDTTu4+xsDYa6sy9GyJ69/amsu9sYF2zqjiEoZA5xJi3BrfX3uY+/IekIu7MwdObdbDWpoZdBv3/A==} - jsesc@3.0.2: - resolution: {integrity: sha512-xKqzzWXDttJuOcawBt4KnKHHIf5oQ/Cxax+0PWFG+DFDgHNAdi+TXECADI+RYiFUMmx8792xsMbbgXj4CwnP4g==} + jsesc@3.1.0: + resolution: {integrity: sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==} engines: {node: '>=6'} hasBin: true @@ -4509,8 +4509,8 @@ packages: peerDependencies: markdownlint-cli2: '>=0.0.4' - markdownlint-cli2@0.15.0: - resolution: {integrity: sha512-4P/lnxQxU2R5lywRJs4b2ajm8z65CW8qqR1bTIcdQ5EG+nZpC6HJlJUnmIR5ee+uecUkoMroazxWcLB7etSmrg==} + markdownlint-cli2@0.16.0: + resolution: {integrity: sha512-oy5dJdOxGMKSwrlouxdEGf6N4O2Iz8oJ4/HO2Ix67o4vTK1AQNGjZUNwTIzfa5x+XbJ++dfgR1gLfILajsW+1Q==} engines: {node: '>=18'} hasBin: true @@ -4537,6 +4537,10 @@ packages: resolution: {integrity: sha512-OkeDaAZ/bQCxeFAozM55PKcKU0yJMPGifLwV4Qgjitu+5MoAfSQN4lsLJeXZ1b8w0x+/Emda6MZgXS1jvsapng==} engines: {node: '>=10'} + math-intrinsics@1.0.0: + resolution: {integrity: sha512-4MqMiKP90ybymYvsut0CH2g4XWbfLtmlCkXmtmdcDCxNB+mQcu1w/1+L/VD7vi/PSv7X2JYV7SCcR+jiPXnQtA==} + engines: {node: '>= 0.4'} + mdast-util-find-and-replace@1.1.1: resolution: {integrity: sha512-9cKl33Y21lyckGzpSmEQnIDjEfeeWelN5s1kUW1LwdB0Fkuq2u+4GdqcGEygYxJE8GVqCl0741bYXHgamfWAZA==} @@ -4555,8 +4559,8 @@ packages: mdurl@2.0.0: resolution: {integrity: sha512-Lf+9+2r+Tdp5wXDXC4PcIBjTDtq4UKjCPMQhKIuzpJNW0b96kVqSwW0bT7FhRSfmAiFYgP+SCRvdrDozfh0U5w==} - memfs@4.14.1: - resolution: {integrity: sha512-Fq5CMEth+2iprLJ5mNizRcWuiwRZYjNkUD0zKk224jZunE9CRacTRDK8QLALbMBlNX2y3nY6lKZbesCwDwacig==} + memfs@4.15.0: + resolution: {integrity: sha512-q9MmZXd2rRWHS6GU3WEm3HyiXZyyoA1DqdOhEq0lxPBmKb5S7IAOwX0RgUCwJfqjelDCySa5h8ujOy24LqsWcw==} engines: {node: '>= 4.0.0'} memorystream@0.3.1: @@ -4782,8 +4786,8 @@ packages: resolution: {integrity: sha512-RM5oyBy45cLEoHqCeh+MNuFAxO0vTFBLskvQbOKnEE7YTTSN4tbN8QWDIPQ6L+WvKsB/qLEGpYe2ZZ9d4W9OIQ==} engines: {node: '>=8'} - node-releases@2.0.18: - resolution: {integrity: sha512-d9VeXT4SJ7ZeOqGX6R5EM022wpL+eWPooLI+5UpWn2jCT1aosUQEhQP214x33Wkwx3JQMvIm+tIoVOdodFS40g==} + node-releases@2.0.19: + resolution: {integrity: sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw==} nopt@7.2.1: resolution: {integrity: sha512-taM24ViiimT/XntxbPyJQzCG+p4EKOpgD3mxFwW38mGjVUrfERQOeY4EDHjdnptttfHuHQXFx+lTP08Q+mLa/w==} @@ -5393,8 +5397,8 @@ packages: resolution: {integrity: sha512-OcXjMsGdhL4XnbShKpAcSqPMzQoYkYyhbEaeSko47MjRP9NfEQMhZkXL1DoFlt9LWQn4YttrdnV6X2OiyzBi+A==} engines: {node: '>=10'} - resolve@1.22.8: - resolution: {integrity: sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==} + resolve@1.22.9: + resolution: {integrity: sha512-QxrmX1DzraFIi9PxdG5VkRfRwIgjwyud+z/iBwfRRrVmHc+P9Q7u2lSSpQ6bjr2gy5lrqIiU9vb6iAeGf2400A==} hasBin: true responselike@2.0.1: @@ -5429,8 +5433,8 @@ packages: run-parallel@1.2.0: resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} - safe-array-concat@1.1.2: - resolution: {integrity: sha512-vj6RsCsWBCf19jIeHEfkRMw8DPiBb+DMXklQ/1SGDHOMlHdPUkZXFQ2YdplS23zESTijAcurb1aSgJA3AgMu1Q==} + safe-array-concat@1.1.3: + resolution: {integrity: sha512-AURm5f0jYEOydBj7VQlVvDrjeFgthDdEF5H1dP+6mNpoXOMo1quQqJ4wvJDyRZ9+pO3kGWoOdmV08cSv2aJV6Q==} engines: {node: '>=0.4'} safe-buffer@5.1.2: @@ -5439,8 +5443,8 @@ packages: safe-buffer@5.2.1: resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} - safe-regex-test@1.0.3: - resolution: {integrity: sha512-CdASjNJPvRa7roO6Ra/gLYBTzYzzPyyBXxIMdGW3USQLyjWEls2RgW5UBTXaQVp+OrpeCK3bLem8smtmheoRuw==} + safe-regex-test@1.1.0: + resolution: {integrity: sha512-x/+Cz4YrimQxQccJf5mKEbIa1NzeCRNI5Ecl/ekmlYaampdNLPalVyIcCZNNH3MvmqBugV5TMYZXv0ljslUlaw==} engines: {node: '>= 0.4'} safe-stable-stringify@2.5.0: @@ -5522,8 +5526,20 @@ packages: shlex@2.1.2: resolution: {integrity: sha512-Nz6gtibMVgYeMEhUjp2KuwAgqaJA1K155dU/HuDaEJUGgnmYfVtVZah+uerVWdH8UGnyahhDCgABbYTbs254+w==} - side-channel@1.0.6: - resolution: {integrity: sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==} + side-channel-list@1.0.0: + resolution: {integrity: sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==} + engines: {node: '>= 0.4'} + + side-channel-map@1.0.1: + resolution: {integrity: sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==} + engines: {node: '>= 0.4'} + + side-channel-weakmap@1.0.2: + resolution: {integrity: sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==} + engines: {node: '>= 0.4'} + + side-channel@1.1.0: + resolution: {integrity: sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==} engines: {node: '>= 0.4'} signal-exit@3.0.7: @@ -5652,12 +5668,13 @@ packages: resolution: {integrity: sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==} engines: {node: '>=12'} - string.prototype.trim@1.2.9: - resolution: {integrity: sha512-klHuCNxiMZ8MlsOihJhJEBJAiMVqU3Z2nEXWfWnIqjN0gEFS9J9+IxKozWWtQGcgoa1WUZzLjKPTr4ZHNFTFxw==} + string.prototype.trim@1.2.10: + resolution: {integrity: sha512-Rs66F0P/1kedk5lyYyH9uBzuiI/kNRmwJAR9quK6VOtIpZ2G+hMZd+HQbbv25MgCA6gEffoMZYxlTod4WcdrKA==} engines: {node: '>= 0.4'} - string.prototype.trimend@1.0.8: - resolution: {integrity: sha512-p73uL5VCHCO2BZZ6krwwQE3kCzM7NKmis8S//xEC6fQonchbum4eP6kR4DLEjQFO3Wnj3Fuo8NM0kOSjVdHjZQ==} + string.prototype.trimend@1.0.9: + resolution: {integrity: sha512-G7Ok5C6E/j4SGfyLCloXTrngQIQU3PWtXGst3yM7Bea9FRURf1S42ZHlZZtsNque2FN2PoUhfZXYLNWwEr4dLQ==} + engines: {node: '>= 0.4'} string.prototype.trimstart@1.0.8: resolution: {integrity: sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==} @@ -6153,8 +6170,8 @@ packages: resolution: {integrity: sha512-Ei7Miu/AXe2JJ4iNF5j/UphAgRoma4trE6PtisM09bPygb3egMH3YLW/befsWb1A1AxvNSFidOFTB18XtnIIng==} engines: {node: '>= 0.4'} - which-builtin-type@1.2.0: - resolution: {integrity: sha512-I+qLGQ/vucCby4tf5HsLmGueEla4ZhwTBSqaooS+Y0BuxN4Cp+okmGuV+8mXZ84KDI9BA+oklo+RzKg0ONdSUA==} + which-builtin-type@1.2.1: + resolution: {integrity: sha512-6iBczoX+kDQ7a3+YJBnh3T+KZRxM/iYNPXicqk66/Qfm1b93iu+yOImkg0zHbj5LNOcNv1TEADiZ0xa34B4q6Q==} engines: {node: '>= 0.4'} which-collection@1.0.2: @@ -6288,8 +6305,8 @@ packages: resolution: {integrity: sha512-GQHQqAopRhwU8Kt1DDM8NjibDXHC8eoh1erhGAJPEyveY9qqVeXvVikNKrDz69sHowPMorbPUrH/mx8c50eiBQ==} engines: {node: '>=18'} - zod@3.23.8: - resolution: {integrity: sha512-XBx9AXhXktjUqnepgTiE5flcKIYWi/rme0Eaj+5Y0lftuGBq+jyRu/md4WnuxqgP1ubdpNCsYEYPxrzVHD8d6g==} + zod@3.24.1: + resolution: {integrity: sha512-muH7gBL9sI1nciMZV67X5fTKKBLtwpZ5VBp1vsOQzj1MhrBZ4wlVCm3gedKZWLp0Oyel8sIGfeiz54Su+OVT+A==} zwitch@1.0.5: resolution: {integrity: sha512-V50KMwwzqJV0NpZIZFwfOD5/lyny3WlSzRiXgA0G7VUnRlqttta1L6UQIHzd6EuBY/cHGfwTIck7w1yH6Q5zUw==} @@ -6304,7 +6321,7 @@ snapshots: '@ampproject/remapping@2.3.0': dependencies: - '@jridgewell/gen-mapping': 0.3.5 + '@jridgewell/gen-mapping': 0.3.8 '@jridgewell/trace-mapping': 0.3.25 '@arcanis/slice-ansi@1.1.1': @@ -6375,30 +6392,30 @@ snapshots: '@aws-sdk/util-endpoints': 3.696.0 '@aws-sdk/util-user-agent-browser': 3.696.0 '@aws-sdk/util-user-agent-node': 3.696.0 - '@smithy/config-resolver': 3.0.12 - '@smithy/core': 2.5.4 - '@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.4 - '@smithy/middleware-retry': 3.0.28 - '@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.5 - '@smithy/types': 3.7.1 - '@smithy/url-parser': 3.0.10 + '@smithy/config-resolver': 3.0.13 + '@smithy/core': 2.5.5 + '@smithy/fetch-http-handler': 4.1.2 + '@smithy/hash-node': 3.0.11 + '@smithy/invalid-dependency': 3.0.11 + '@smithy/middleware-content-length': 3.0.13 + '@smithy/middleware-endpoint': 3.2.5 + '@smithy/middleware-retry': 3.0.30 + '@smithy/middleware-serde': 3.0.11 + '@smithy/middleware-stack': 3.0.11 + '@smithy/node-config-provider': 3.1.12 + '@smithy/node-http-handler': 3.3.2 + '@smithy/protocol-http': 4.1.8 + '@smithy/smithy-client': 3.5.0 + '@smithy/types': 3.7.2 + '@smithy/url-parser': 3.0.11 '@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.28 - '@smithy/util-defaults-mode-node': 3.0.28 - '@smithy/util-endpoints': 2.1.6 - '@smithy/util-middleware': 3.0.10 - '@smithy/util-retry': 3.0.10 + '@smithy/util-defaults-mode-browser': 3.0.30 + '@smithy/util-defaults-mode-node': 3.0.30 + '@smithy/util-endpoints': 2.1.7 + '@smithy/util-middleware': 3.0.11 + '@smithy/util-retry': 3.0.11 '@smithy/util-utf8': 3.0.0 '@types/uuid': 9.0.8 tslib: 2.8.1 @@ -6423,30 +6440,30 @@ snapshots: '@aws-sdk/util-endpoints': 3.696.0 '@aws-sdk/util-user-agent-browser': 3.696.0 '@aws-sdk/util-user-agent-node': 3.696.0 - '@smithy/config-resolver': 3.0.12 - '@smithy/core': 2.5.4 - '@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.4 - '@smithy/middleware-retry': 3.0.28 - '@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.5 - '@smithy/types': 3.7.1 - '@smithy/url-parser': 3.0.10 + '@smithy/config-resolver': 3.0.13 + '@smithy/core': 2.5.5 + '@smithy/fetch-http-handler': 4.1.2 + '@smithy/hash-node': 3.0.11 + '@smithy/invalid-dependency': 3.0.11 + '@smithy/middleware-content-length': 3.0.13 + '@smithy/middleware-endpoint': 3.2.5 + '@smithy/middleware-retry': 3.0.30 + '@smithy/middleware-serde': 3.0.11 + '@smithy/middleware-stack': 3.0.11 + '@smithy/node-config-provider': 3.1.12 + '@smithy/node-http-handler': 3.3.2 + '@smithy/protocol-http': 4.1.8 + '@smithy/smithy-client': 3.5.0 + '@smithy/types': 3.7.2 + '@smithy/url-parser': 3.0.11 '@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.28 - '@smithy/util-defaults-mode-node': 3.0.28 - '@smithy/util-endpoints': 2.1.6 - '@smithy/util-middleware': 3.0.10 - '@smithy/util-retry': 3.0.10 + '@smithy/util-defaults-mode-browser': 3.0.30 + '@smithy/util-defaults-mode-node': 3.0.30 + '@smithy/util-endpoints': 2.1.7 + '@smithy/util-middleware': 3.0.11 + '@smithy/util-retry': 3.0.11 '@smithy/util-utf8': 3.0.0 tslib: 2.8.1 transitivePeerDependencies: @@ -6470,32 +6487,32 @@ snapshots: '@aws-sdk/util-endpoints': 3.696.0 '@aws-sdk/util-user-agent-browser': 3.696.0 '@aws-sdk/util-user-agent-node': 3.696.0 - '@smithy/config-resolver': 3.0.12 - '@smithy/core': 2.5.4 - '@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.4 - '@smithy/middleware-retry': 3.0.28 - '@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.5 - '@smithy/types': 3.7.1 - '@smithy/url-parser': 3.0.10 + '@smithy/config-resolver': 3.0.13 + '@smithy/core': 2.5.5 + '@smithy/fetch-http-handler': 4.1.2 + '@smithy/hash-node': 3.0.11 + '@smithy/invalid-dependency': 3.0.11 + '@smithy/middleware-content-length': 3.0.13 + '@smithy/middleware-endpoint': 3.2.5 + '@smithy/middleware-retry': 3.0.30 + '@smithy/middleware-serde': 3.0.11 + '@smithy/middleware-stack': 3.0.11 + '@smithy/node-config-provider': 3.1.12 + '@smithy/node-http-handler': 3.3.2 + '@smithy/protocol-http': 4.1.8 + '@smithy/smithy-client': 3.5.0 + '@smithy/types': 3.7.2 + '@smithy/url-parser': 3.0.11 '@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.28 - '@smithy/util-defaults-mode-node': 3.0.28 - '@smithy/util-endpoints': 2.1.6 - '@smithy/util-middleware': 3.0.10 - '@smithy/util-retry': 3.0.10 + '@smithy/util-defaults-mode-browser': 3.0.30 + '@smithy/util-defaults-mode-node': 3.0.30 + '@smithy/util-endpoints': 2.1.7 + '@smithy/util-middleware': 3.0.11 + '@smithy/util-retry': 3.0.11 '@smithy/util-utf8': 3.0.0 - '@smithy/util-waiter': 3.1.9 + '@smithy/util-waiter': 3.2.0 '@types/uuid': 9.0.8 tslib: 2.8.1 uuid: 9.0.1 @@ -6519,32 +6536,32 @@ snapshots: '@aws-sdk/util-endpoints': 3.696.0 '@aws-sdk/util-user-agent-browser': 3.696.0 '@aws-sdk/util-user-agent-node': 3.696.0 - '@smithy/config-resolver': 3.0.12 - '@smithy/core': 2.5.4 - '@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.4 - '@smithy/middleware-retry': 3.0.28 - '@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.5 - '@smithy/types': 3.7.1 - '@smithy/url-parser': 3.0.10 + '@smithy/config-resolver': 3.0.13 + '@smithy/core': 2.5.5 + '@smithy/fetch-http-handler': 4.1.2 + '@smithy/hash-node': 3.0.11 + '@smithy/invalid-dependency': 3.0.11 + '@smithy/middleware-content-length': 3.0.13 + '@smithy/middleware-endpoint': 3.2.5 + '@smithy/middleware-retry': 3.0.30 + '@smithy/middleware-serde': 3.0.11 + '@smithy/middleware-stack': 3.0.11 + '@smithy/node-config-provider': 3.1.12 + '@smithy/node-http-handler': 3.3.2 + '@smithy/protocol-http': 4.1.8 + '@smithy/smithy-client': 3.5.0 + '@smithy/types': 3.7.2 + '@smithy/url-parser': 3.0.11 '@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.28 - '@smithy/util-defaults-mode-node': 3.0.28 - '@smithy/util-endpoints': 2.1.6 - '@smithy/util-middleware': 3.0.10 - '@smithy/util-retry': 3.0.10 + '@smithy/util-defaults-mode-browser': 3.0.30 + '@smithy/util-defaults-mode-node': 3.0.30 + '@smithy/util-endpoints': 2.1.7 + '@smithy/util-middleware': 3.0.11 + '@smithy/util-retry': 3.0.11 '@smithy/util-utf8': 3.0.0 - '@smithy/util-waiter': 3.1.9 + '@smithy/util-waiter': 3.2.0 tslib: 2.8.1 transitivePeerDependencies: - aws-crt @@ -6567,32 +6584,32 @@ snapshots: '@aws-sdk/util-endpoints': 3.696.0 '@aws-sdk/util-user-agent-browser': 3.696.0 '@aws-sdk/util-user-agent-node': 3.696.0 - '@smithy/config-resolver': 3.0.12 - '@smithy/core': 2.5.4 - '@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.4 - '@smithy/middleware-retry': 3.0.28 - '@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.5 - '@smithy/types': 3.7.1 - '@smithy/url-parser': 3.0.10 + '@smithy/config-resolver': 3.0.13 + '@smithy/core': 2.5.5 + '@smithy/fetch-http-handler': 4.1.2 + '@smithy/hash-node': 3.0.11 + '@smithy/invalid-dependency': 3.0.11 + '@smithy/middleware-content-length': 3.0.13 + '@smithy/middleware-endpoint': 3.2.5 + '@smithy/middleware-retry': 3.0.30 + '@smithy/middleware-serde': 3.0.11 + '@smithy/middleware-stack': 3.0.11 + '@smithy/node-config-provider': 3.1.12 + '@smithy/node-http-handler': 3.3.2 + '@smithy/protocol-http': 4.1.8 + '@smithy/smithy-client': 3.5.0 + '@smithy/types': 3.7.2 + '@smithy/url-parser': 3.0.11 '@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.28 - '@smithy/util-defaults-mode-node': 3.0.28 - '@smithy/util-endpoints': 2.1.6 - '@smithy/util-middleware': 3.0.10 - '@smithy/util-retry': 3.0.10 + '@smithy/util-defaults-mode-browser': 3.0.30 + '@smithy/util-defaults-mode-node': 3.0.30 + '@smithy/util-endpoints': 2.1.7 + '@smithy/util-middleware': 3.0.11 + '@smithy/util-retry': 3.0.11 '@smithy/util-utf8': 3.0.0 - '@smithy/util-waiter': 3.1.9 + '@smithy/util-waiter': 3.2.0 tslib: 2.8.1 transitivePeerDependencies: - aws-crt @@ -6623,39 +6640,39 @@ snapshots: '@aws-sdk/util-user-agent-browser': 3.696.0 '@aws-sdk/util-user-agent-node': 3.696.0 '@aws-sdk/xml-builder': 3.696.0 - '@smithy/config-resolver': 3.0.12 - '@smithy/core': 2.5.4 - '@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.4 - '@smithy/middleware-retry': 3.0.28 - '@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.5 - '@smithy/types': 3.7.1 - '@smithy/url-parser': 3.0.10 + '@smithy/config-resolver': 3.0.13 + '@smithy/core': 2.5.5 + '@smithy/eventstream-serde-browser': 3.0.14 + '@smithy/eventstream-serde-config-resolver': 3.0.11 + '@smithy/eventstream-serde-node': 3.0.13 + '@smithy/fetch-http-handler': 4.1.2 + '@smithy/hash-blob-browser': 3.1.10 + '@smithy/hash-node': 3.0.11 + '@smithy/hash-stream-node': 3.1.10 + '@smithy/invalid-dependency': 3.0.11 + '@smithy/md5-js': 3.0.11 + '@smithy/middleware-content-length': 3.0.13 + '@smithy/middleware-endpoint': 3.2.5 + '@smithy/middleware-retry': 3.0.30 + '@smithy/middleware-serde': 3.0.11 + '@smithy/middleware-stack': 3.0.11 + '@smithy/node-config-provider': 3.1.12 + '@smithy/node-http-handler': 3.3.2 + '@smithy/protocol-http': 4.1.8 + '@smithy/smithy-client': 3.5.0 + '@smithy/types': 3.7.2 + '@smithy/url-parser': 3.0.11 '@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.28 - '@smithy/util-defaults-mode-node': 3.0.28 - '@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-defaults-mode-browser': 3.0.30 + '@smithy/util-defaults-mode-node': 3.0.30 + '@smithy/util-endpoints': 2.1.7 + '@smithy/util-middleware': 3.0.11 + '@smithy/util-retry': 3.0.11 + '@smithy/util-stream': 3.3.2 '@smithy/util-utf8': 3.0.0 - '@smithy/util-waiter': 3.1.9 + '@smithy/util-waiter': 3.2.0 tslib: 2.8.1 transitivePeerDependencies: - aws-crt @@ -6676,30 +6693,30 @@ snapshots: '@aws-sdk/util-endpoints': 3.696.0 '@aws-sdk/util-user-agent-browser': 3.696.0 '@aws-sdk/util-user-agent-node': 3.696.0 - '@smithy/config-resolver': 3.0.12 - '@smithy/core': 2.5.4 - '@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.4 - '@smithy/middleware-retry': 3.0.28 - '@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.5 - '@smithy/types': 3.7.1 - '@smithy/url-parser': 3.0.10 + '@smithy/config-resolver': 3.0.13 + '@smithy/core': 2.5.5 + '@smithy/fetch-http-handler': 4.1.2 + '@smithy/hash-node': 3.0.11 + '@smithy/invalid-dependency': 3.0.11 + '@smithy/middleware-content-length': 3.0.13 + '@smithy/middleware-endpoint': 3.2.5 + '@smithy/middleware-retry': 3.0.30 + '@smithy/middleware-serde': 3.0.11 + '@smithy/middleware-stack': 3.0.11 + '@smithy/node-config-provider': 3.1.12 + '@smithy/node-http-handler': 3.3.2 + '@smithy/protocol-http': 4.1.8 + '@smithy/smithy-client': 3.5.0 + '@smithy/types': 3.7.2 + '@smithy/url-parser': 3.0.11 '@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.28 - '@smithy/util-defaults-mode-node': 3.0.28 - '@smithy/util-endpoints': 2.1.6 - '@smithy/util-middleware': 3.0.10 - '@smithy/util-retry': 3.0.10 + '@smithy/util-defaults-mode-browser': 3.0.30 + '@smithy/util-defaults-mode-node': 3.0.30 + '@smithy/util-endpoints': 2.1.7 + '@smithy/util-middleware': 3.0.11 + '@smithy/util-retry': 3.0.11 '@smithy/util-utf8': 3.0.0 tslib: 2.8.1 transitivePeerDependencies: @@ -6719,30 +6736,30 @@ snapshots: '@aws-sdk/util-endpoints': 3.696.0 '@aws-sdk/util-user-agent-browser': 3.696.0 '@aws-sdk/util-user-agent-node': 3.696.0 - '@smithy/config-resolver': 3.0.12 - '@smithy/core': 2.5.4 - '@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.4 - '@smithy/middleware-retry': 3.0.28 - '@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.5 - '@smithy/types': 3.7.1 - '@smithy/url-parser': 3.0.10 + '@smithy/config-resolver': 3.0.13 + '@smithy/core': 2.5.5 + '@smithy/fetch-http-handler': 4.1.2 + '@smithy/hash-node': 3.0.11 + '@smithy/invalid-dependency': 3.0.11 + '@smithy/middleware-content-length': 3.0.13 + '@smithy/middleware-endpoint': 3.2.5 + '@smithy/middleware-retry': 3.0.30 + '@smithy/middleware-serde': 3.0.11 + '@smithy/middleware-stack': 3.0.11 + '@smithy/node-config-provider': 3.1.12 + '@smithy/node-http-handler': 3.3.2 + '@smithy/protocol-http': 4.1.8 + '@smithy/smithy-client': 3.5.0 + '@smithy/types': 3.7.2 + '@smithy/url-parser': 3.0.11 '@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.28 - '@smithy/util-defaults-mode-node': 3.0.28 - '@smithy/util-endpoints': 2.1.6 - '@smithy/util-middleware': 3.0.10 - '@smithy/util-retry': 3.0.10 + '@smithy/util-defaults-mode-browser': 3.0.30 + '@smithy/util-defaults-mode-node': 3.0.30 + '@smithy/util-endpoints': 2.1.7 + '@smithy/util-middleware': 3.0.11 + '@smithy/util-retry': 3.0.11 '@smithy/util-utf8': 3.0.0 tslib: 2.8.1 transitivePeerDependencies: @@ -6764,30 +6781,30 @@ snapshots: '@aws-sdk/util-endpoints': 3.696.0 '@aws-sdk/util-user-agent-browser': 3.696.0 '@aws-sdk/util-user-agent-node': 3.696.0 - '@smithy/config-resolver': 3.0.12 - '@smithy/core': 2.5.4 - '@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.4 - '@smithy/middleware-retry': 3.0.28 - '@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.5 - '@smithy/types': 3.7.1 - '@smithy/url-parser': 3.0.10 + '@smithy/config-resolver': 3.0.13 + '@smithy/core': 2.5.5 + '@smithy/fetch-http-handler': 4.1.2 + '@smithy/hash-node': 3.0.11 + '@smithy/invalid-dependency': 3.0.11 + '@smithy/middleware-content-length': 3.0.13 + '@smithy/middleware-endpoint': 3.2.5 + '@smithy/middleware-retry': 3.0.30 + '@smithy/middleware-serde': 3.0.11 + '@smithy/middleware-stack': 3.0.11 + '@smithy/node-config-provider': 3.1.12 + '@smithy/node-http-handler': 3.3.2 + '@smithy/protocol-http': 4.1.8 + '@smithy/smithy-client': 3.5.0 + '@smithy/types': 3.7.2 + '@smithy/url-parser': 3.0.11 '@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.28 - '@smithy/util-defaults-mode-node': 3.0.28 - '@smithy/util-endpoints': 2.1.6 - '@smithy/util-middleware': 3.0.10 - '@smithy/util-retry': 3.0.10 + '@smithy/util-defaults-mode-browser': 3.0.30 + '@smithy/util-defaults-mode-node': 3.0.30 + '@smithy/util-endpoints': 2.1.7 + '@smithy/util-middleware': 3.0.11 + '@smithy/util-retry': 3.0.11 '@smithy/util-utf8': 3.0.0 tslib: 2.8.1 transitivePeerDependencies: @@ -6796,14 +6813,14 @@ snapshots: '@aws-sdk/core@3.696.0': dependencies: '@aws-sdk/types': 3.696.0 - '@smithy/core': 2.5.4 - '@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.5 - '@smithy/types': 3.7.1 - '@smithy/util-middleware': 3.0.10 + '@smithy/core': 2.5.5 + '@smithy/node-config-provider': 3.1.12 + '@smithy/property-provider': 3.1.11 + '@smithy/protocol-http': 4.1.8 + '@smithy/signature-v4': 4.2.4 + '@smithy/smithy-client': 3.5.0 + '@smithy/types': 3.7.2 + '@smithy/util-middleware': 3.0.11 fast-xml-parser: 4.4.1 tslib: 2.8.1 @@ -6811,8 +6828,8 @@ snapshots: dependencies: '@aws-sdk/client-cognito-identity': 3.699.0 '@aws-sdk/types': 3.696.0 - '@smithy/property-provider': 3.1.10 - '@smithy/types': 3.7.1 + '@smithy/property-provider': 3.1.11 + '@smithy/types': 3.7.2 tslib: 2.8.1 transitivePeerDependencies: - aws-crt @@ -6821,21 +6838,21 @@ snapshots: dependencies: '@aws-sdk/core': 3.696.0 '@aws-sdk/types': 3.696.0 - '@smithy/property-provider': 3.1.10 - '@smithy/types': 3.7.1 + '@smithy/property-provider': 3.1.11 + '@smithy/types': 3.7.2 tslib: 2.8.1 '@aws-sdk/credential-provider-http@3.696.0': dependencies: '@aws-sdk/core': 3.696.0 '@aws-sdk/types': 3.696.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.5 - '@smithy/types': 3.7.1 - '@smithy/util-stream': 3.3.1 + '@smithy/fetch-http-handler': 4.1.2 + '@smithy/node-http-handler': 3.3.2 + '@smithy/property-provider': 3.1.11 + '@smithy/protocol-http': 4.1.8 + '@smithy/smithy-client': 3.5.0 + '@smithy/types': 3.7.2 + '@smithy/util-stream': 3.3.2 tslib: 2.8.1 '@aws-sdk/credential-provider-ini@3.699.0(@aws-sdk/client-sso-oidc@3.699.0(@aws-sdk/client-sts@3.699.0))(@aws-sdk/client-sts@3.699.0)': @@ -6848,10 +6865,10 @@ snapshots: '@aws-sdk/credential-provider-sso': 3.699.0(@aws-sdk/client-sso-oidc@3.699.0(@aws-sdk/client-sts@3.699.0)) '@aws-sdk/credential-provider-web-identity': 3.696.0(@aws-sdk/client-sts@3.699.0) '@aws-sdk/types': 3.696.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 + '@smithy/credential-provider-imds': 3.2.8 + '@smithy/property-provider': 3.1.11 + '@smithy/shared-ini-file-loader': 3.1.12 + '@smithy/types': 3.7.2 tslib: 2.8.1 transitivePeerDependencies: - '@aws-sdk/client-sso-oidc' @@ -6866,10 +6883,10 @@ snapshots: '@aws-sdk/credential-provider-sso': 3.699.0(@aws-sdk/client-sso-oidc@3.699.0(@aws-sdk/client-sts@3.699.0)) '@aws-sdk/credential-provider-web-identity': 3.696.0(@aws-sdk/client-sts@3.699.0) '@aws-sdk/types': 3.696.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 + '@smithy/credential-provider-imds': 3.2.8 + '@smithy/property-provider': 3.1.11 + '@smithy/shared-ini-file-loader': 3.1.12 + '@smithy/types': 3.7.2 tslib: 2.8.1 transitivePeerDependencies: - '@aws-sdk/client-sso-oidc' @@ -6880,9 +6897,9 @@ snapshots: dependencies: '@aws-sdk/core': 3.696.0 '@aws-sdk/types': 3.696.0 - '@smithy/property-provider': 3.1.10 - '@smithy/shared-ini-file-loader': 3.1.11 - '@smithy/types': 3.7.1 + '@smithy/property-provider': 3.1.11 + '@smithy/shared-ini-file-loader': 3.1.12 + '@smithy/types': 3.7.2 tslib: 2.8.1 '@aws-sdk/credential-provider-sso@3.699.0(@aws-sdk/client-sso-oidc@3.699.0(@aws-sdk/client-sts@3.699.0))': @@ -6891,9 +6908,9 @@ snapshots: '@aws-sdk/core': 3.696.0 '@aws-sdk/token-providers': 3.699.0(@aws-sdk/client-sso-oidc@3.699.0(@aws-sdk/client-sts@3.699.0)) '@aws-sdk/types': 3.696.0 - '@smithy/property-provider': 3.1.10 - '@smithy/shared-ini-file-loader': 3.1.11 - '@smithy/types': 3.7.1 + '@smithy/property-provider': 3.1.11 + '@smithy/shared-ini-file-loader': 3.1.12 + '@smithy/types': 3.7.2 tslib: 2.8.1 transitivePeerDependencies: - '@aws-sdk/client-sso-oidc' @@ -6904,8 +6921,8 @@ snapshots: '@aws-sdk/client-sts': 3.699.0 '@aws-sdk/core': 3.696.0 '@aws-sdk/types': 3.696.0 - '@smithy/property-provider': 3.1.10 - '@smithy/types': 3.7.1 + '@smithy/property-provider': 3.1.11 + '@smithy/types': 3.7.2 tslib: 2.8.1 '@aws-sdk/credential-providers@3.699.0(@aws-sdk/client-sso-oidc@3.699.0(@aws-sdk/client-sts@3.699.0))': @@ -6923,9 +6940,9 @@ snapshots: '@aws-sdk/credential-provider-sso': 3.699.0(@aws-sdk/client-sso-oidc@3.699.0(@aws-sdk/client-sts@3.699.0)) '@aws-sdk/credential-provider-web-identity': 3.696.0(@aws-sdk/client-sts@3.699.0) '@aws-sdk/types': 3.696.0 - '@smithy/credential-provider-imds': 3.2.7 - '@smithy/property-provider': 3.1.10 - '@smithy/types': 3.7.1 + '@smithy/credential-provider-imds': 3.2.8 + '@smithy/property-provider': 3.1.11 + '@smithy/types': 3.7.2 tslib: 2.8.1 transitivePeerDependencies: - '@aws-sdk/client-sso-oidc' @@ -6935,17 +6952,17 @@ snapshots: dependencies: '@aws-sdk/types': 3.696.0 '@aws-sdk/util-arn-parser': 3.693.0 - '@smithy/node-config-provider': 3.1.11 - '@smithy/protocol-http': 4.1.7 - '@smithy/types': 3.7.1 + '@smithy/node-config-provider': 3.1.12 + '@smithy/protocol-http': 4.1.8 + '@smithy/types': 3.7.2 '@smithy/util-config-provider': 3.0.0 tslib: 2.8.1 '@aws-sdk/middleware-expect-continue@3.696.0': dependencies: '@aws-sdk/types': 3.696.0 - '@smithy/protocol-http': 4.1.7 - '@smithy/types': 3.7.1 + '@smithy/protocol-http': 4.1.8 + '@smithy/types': 3.7.2 tslib: 2.8.1 '@aws-sdk/middleware-flexible-checksums@3.701.0': @@ -6956,59 +6973,59 @@ snapshots: '@aws-sdk/core': 3.696.0 '@aws-sdk/types': 3.696.0 '@smithy/is-array-buffer': 3.0.0 - '@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/node-config-provider': 3.1.12 + '@smithy/protocol-http': 4.1.8 + '@smithy/types': 3.7.2 + '@smithy/util-middleware': 3.0.11 + '@smithy/util-stream': 3.3.2 '@smithy/util-utf8': 3.0.0 tslib: 2.8.1 '@aws-sdk/middleware-host-header@3.696.0': dependencies: '@aws-sdk/types': 3.696.0 - '@smithy/protocol-http': 4.1.7 - '@smithy/types': 3.7.1 + '@smithy/protocol-http': 4.1.8 + '@smithy/types': 3.7.2 tslib: 2.8.1 '@aws-sdk/middleware-location-constraint@3.696.0': dependencies: '@aws-sdk/types': 3.696.0 - '@smithy/types': 3.7.1 + '@smithy/types': 3.7.2 tslib: 2.8.1 '@aws-sdk/middleware-logger@3.696.0': dependencies: '@aws-sdk/types': 3.696.0 - '@smithy/types': 3.7.1 + '@smithy/types': 3.7.2 tslib: 2.8.1 '@aws-sdk/middleware-recursion-detection@3.696.0': dependencies: '@aws-sdk/types': 3.696.0 - '@smithy/protocol-http': 4.1.7 - '@smithy/types': 3.7.1 + '@smithy/protocol-http': 4.1.8 + '@smithy/types': 3.7.2 tslib: 2.8.1 '@aws-sdk/middleware-sdk-ec2@3.696.0': dependencies: '@aws-sdk/types': 3.696.0 '@aws-sdk/util-format-url': 3.696.0 - '@smithy/middleware-endpoint': 3.2.4 - '@smithy/protocol-http': 4.1.7 - '@smithy/signature-v4': 4.2.3 - '@smithy/smithy-client': 3.4.5 - '@smithy/types': 3.7.1 + '@smithy/middleware-endpoint': 3.2.5 + '@smithy/protocol-http': 4.1.8 + '@smithy/signature-v4': 4.2.4 + '@smithy/smithy-client': 3.5.0 + '@smithy/types': 3.7.2 tslib: 2.8.1 '@aws-sdk/middleware-sdk-rds@3.696.0': dependencies: '@aws-sdk/types': 3.696.0 '@aws-sdk/util-format-url': 3.696.0 - '@smithy/middleware-endpoint': 3.2.4 - '@smithy/protocol-http': 4.1.7 - '@smithy/signature-v4': 4.2.3 - '@smithy/types': 3.7.1 + '@smithy/middleware-endpoint': 3.2.5 + '@smithy/protocol-http': 4.1.8 + '@smithy/signature-v4': 4.2.4 + '@smithy/types': 3.7.2 tslib: 2.8.1 '@aws-sdk/middleware-sdk-s3@3.696.0': @@ -7016,22 +7033,22 @@ snapshots: '@aws-sdk/core': 3.696.0 '@aws-sdk/types': 3.696.0 '@aws-sdk/util-arn-parser': 3.693.0 - '@smithy/core': 2.5.4 - '@smithy/node-config-provider': 3.1.11 - '@smithy/protocol-http': 4.1.7 - '@smithy/signature-v4': 4.2.3 - '@smithy/smithy-client': 3.4.5 - '@smithy/types': 3.7.1 + '@smithy/core': 2.5.5 + '@smithy/node-config-provider': 3.1.12 + '@smithy/protocol-http': 4.1.8 + '@smithy/signature-v4': 4.2.4 + '@smithy/smithy-client': 3.5.0 + '@smithy/types': 3.7.2 '@smithy/util-config-provider': 3.0.0 - '@smithy/util-middleware': 3.0.10 - '@smithy/util-stream': 3.3.1 + '@smithy/util-middleware': 3.0.11 + '@smithy/util-stream': 3.3.2 '@smithy/util-utf8': 3.0.0 tslib: 2.8.1 '@aws-sdk/middleware-ssec@3.696.0': dependencies: '@aws-sdk/types': 3.696.0 - '@smithy/types': 3.7.1 + '@smithy/types': 3.7.2 tslib: 2.8.1 '@aws-sdk/middleware-user-agent@3.696.0': @@ -7039,41 +7056,41 @@ snapshots: '@aws-sdk/core': 3.696.0 '@aws-sdk/types': 3.696.0 '@aws-sdk/util-endpoints': 3.696.0 - '@smithy/core': 2.5.4 - '@smithy/protocol-http': 4.1.7 - '@smithy/types': 3.7.1 + '@smithy/core': 2.5.5 + '@smithy/protocol-http': 4.1.8 + '@smithy/types': 3.7.2 tslib: 2.8.1 '@aws-sdk/region-config-resolver@3.696.0': dependencies: '@aws-sdk/types': 3.696.0 - '@smithy/node-config-provider': 3.1.11 - '@smithy/types': 3.7.1 + '@smithy/node-config-provider': 3.1.12 + '@smithy/types': 3.7.2 '@smithy/util-config-provider': 3.0.0 - '@smithy/util-middleware': 3.0.10 + '@smithy/util-middleware': 3.0.11 tslib: 2.8.1 '@aws-sdk/signature-v4-multi-region@3.696.0': dependencies: '@aws-sdk/middleware-sdk-s3': 3.696.0 '@aws-sdk/types': 3.696.0 - '@smithy/protocol-http': 4.1.7 - '@smithy/signature-v4': 4.2.3 - '@smithy/types': 3.7.1 + '@smithy/protocol-http': 4.1.8 + '@smithy/signature-v4': 4.2.4 + '@smithy/types': 3.7.2 tslib: 2.8.1 '@aws-sdk/token-providers@3.699.0(@aws-sdk/client-sso-oidc@3.699.0(@aws-sdk/client-sts@3.699.0))': dependencies: '@aws-sdk/client-sso-oidc': 3.699.0(@aws-sdk/client-sts@3.699.0) '@aws-sdk/types': 3.696.0 - '@smithy/property-provider': 3.1.10 - '@smithy/shared-ini-file-loader': 3.1.11 - '@smithy/types': 3.7.1 + '@smithy/property-provider': 3.1.11 + '@smithy/shared-ini-file-loader': 3.1.12 + '@smithy/types': 3.7.2 tslib: 2.8.1 '@aws-sdk/types@3.696.0': dependencies: - '@smithy/types': 3.7.1 + '@smithy/types': 3.7.2 tslib: 2.8.1 '@aws-sdk/util-arn-parser@3.693.0': @@ -7083,15 +7100,15 @@ snapshots: '@aws-sdk/util-endpoints@3.696.0': dependencies: '@aws-sdk/types': 3.696.0 - '@smithy/types': 3.7.1 - '@smithy/util-endpoints': 2.1.6 + '@smithy/types': 3.7.2 + '@smithy/util-endpoints': 2.1.7 tslib: 2.8.1 '@aws-sdk/util-format-url@3.696.0': dependencies: '@aws-sdk/types': 3.696.0 - '@smithy/querystring-builder': 3.0.10 - '@smithy/types': 3.7.1 + '@smithy/querystring-builder': 3.0.11 + '@smithy/types': 3.7.2 tslib: 2.8.1 '@aws-sdk/util-locate-window@3.693.0': @@ -7101,7 +7118,7 @@ snapshots: '@aws-sdk/util-user-agent-browser@3.696.0': dependencies: '@aws-sdk/types': 3.696.0 - '@smithy/types': 3.7.1 + '@smithy/types': 3.7.2 bowser: 2.11.0 tslib: 2.8.1 @@ -7109,13 +7126,13 @@ snapshots: dependencies: '@aws-sdk/middleware-user-agent': 3.696.0 '@aws-sdk/types': 3.696.0 - '@smithy/node-config-provider': 3.1.11 - '@smithy/types': 3.7.1 + '@smithy/node-config-provider': 3.1.12 + '@smithy/types': 3.7.2 tslib: 2.8.1 '@aws-sdk/xml-builder@3.696.0': dependencies: - '@smithy/types': 3.7.1 + '@smithy/types': 3.7.2 tslib: 2.8.1 '@babel/code-frame@7.26.2': @@ -7150,15 +7167,15 @@ snapshots: dependencies: '@babel/parser': 7.26.3 '@babel/types': 7.26.3 - '@jridgewell/gen-mapping': 0.3.5 + '@jridgewell/gen-mapping': 0.3.8 '@jridgewell/trace-mapping': 0.3.25 - jsesc: 3.0.2 + jsesc: 3.1.0 '@babel/helper-compilation-targets@7.25.9': dependencies: '@babel/compat-data': 7.26.3 '@babel/helper-validator-option': 7.25.9 - browserslist: 4.24.2 + browserslist: 4.24.3 lru-cache: 5.1.1 semver: 6.3.1 @@ -7394,7 +7411,7 @@ snapshots: jest-util: 29.7.0 slash: 3.0.0 - '@jest/core@29.7.0(ts-node@10.9.2(@swc/core@1.10.0)(@types/node@20.17.9)(typescript@5.7.2))': + '@jest/core@29.7.0(ts-node@10.9.2(@swc/core@1.10.1)(@types/node@20.17.9)(typescript@5.7.2))': dependencies: '@jest/console': 29.7.0 '@jest/reporters': 29.7.0 @@ -7408,7 +7425,7 @@ snapshots: exit: 0.1.2 graceful-fs: 4.2.11 jest-changed-files: 29.7.0 - jest-config: 29.7.0(@types/node@20.17.9)(ts-node@10.9.2(@swc/core@1.10.0)(@types/node@20.17.9)(typescript@5.7.2)) + jest-config: 29.7.0(@types/node@20.17.9)(ts-node@10.9.2(@swc/core@1.10.1)(@types/node@20.17.9)(typescript@5.7.2)) jest-haste-map: 29.7.0 jest-message-util: 29.7.0 jest-regex-util: 29.6.3 @@ -7551,7 +7568,7 @@ snapshots: '@types/yargs': 17.0.33 chalk: 4.1.2 - '@jridgewell/gen-mapping@0.3.5': + '@jridgewell/gen-mapping@0.3.8': dependencies: '@jridgewell/set-array': 1.2.1 '@jridgewell/sourcemap-codec': 1.5.0 @@ -8008,7 +8025,7 @@ snapshots: fs-extra: 11.2.0 toml-eslint-parser: 0.10.0 upath: 2.0.1 - zod: 3.23.8 + zod: 3.24.1 '@renovatebot/eslint-plugin@file:tools/eslint': {} @@ -8176,9 +8193,9 @@ snapshots: '@sinonjs/text-encoding@0.7.3': {} - '@smithy/abort-controller@3.1.8': + '@smithy/abort-controller@3.1.9': dependencies: - '@smithy/types': 3.7.1 + '@smithy/types': 3.7.2 tslib: 2.8.1 '@smithy/chunked-blob-reader-native@3.0.1': @@ -8190,94 +8207,94 @@ snapshots: dependencies: tslib: 2.8.1 - '@smithy/config-resolver@3.0.12': + '@smithy/config-resolver@3.0.13': dependencies: - '@smithy/node-config-provider': 3.1.11 - '@smithy/types': 3.7.1 + '@smithy/node-config-provider': 3.1.12 + '@smithy/types': 3.7.2 '@smithy/util-config-provider': 3.0.0 - '@smithy/util-middleware': 3.0.10 + '@smithy/util-middleware': 3.0.11 tslib: 2.8.1 - '@smithy/core@2.5.4': + '@smithy/core@2.5.5': dependencies: - '@smithy/middleware-serde': 3.0.10 - '@smithy/protocol-http': 4.1.7 - '@smithy/types': 3.7.1 + '@smithy/middleware-serde': 3.0.11 + '@smithy/protocol-http': 4.1.8 + '@smithy/types': 3.7.2 '@smithy/util-body-length-browser': 3.0.0 - '@smithy/util-middleware': 3.0.10 - '@smithy/util-stream': 3.3.1 + '@smithy/util-middleware': 3.0.11 + '@smithy/util-stream': 3.3.2 '@smithy/util-utf8': 3.0.0 tslib: 2.8.1 - '@smithy/credential-provider-imds@3.2.7': + '@smithy/credential-provider-imds@3.2.8': dependencies: - '@smithy/node-config-provider': 3.1.11 - '@smithy/property-provider': 3.1.10 - '@smithy/types': 3.7.1 - '@smithy/url-parser': 3.0.10 + '@smithy/node-config-provider': 3.1.12 + '@smithy/property-provider': 3.1.11 + '@smithy/types': 3.7.2 + '@smithy/url-parser': 3.0.11 tslib: 2.8.1 - '@smithy/eventstream-codec@3.1.9': + '@smithy/eventstream-codec@3.1.10': dependencies: '@aws-crypto/crc32': 5.2.0 - '@smithy/types': 3.7.1 + '@smithy/types': 3.7.2 '@smithy/util-hex-encoding': 3.0.0 tslib: 2.8.1 - '@smithy/eventstream-serde-browser@3.0.13': + '@smithy/eventstream-serde-browser@3.0.14': dependencies: - '@smithy/eventstream-serde-universal': 3.0.12 - '@smithy/types': 3.7.1 + '@smithy/eventstream-serde-universal': 3.0.13 + '@smithy/types': 3.7.2 tslib: 2.8.1 - '@smithy/eventstream-serde-config-resolver@3.0.10': + '@smithy/eventstream-serde-config-resolver@3.0.11': dependencies: - '@smithy/types': 3.7.1 + '@smithy/types': 3.7.2 tslib: 2.8.1 - '@smithy/eventstream-serde-node@3.0.12': + '@smithy/eventstream-serde-node@3.0.13': dependencies: - '@smithy/eventstream-serde-universal': 3.0.12 - '@smithy/types': 3.7.1 + '@smithy/eventstream-serde-universal': 3.0.13 + '@smithy/types': 3.7.2 tslib: 2.8.1 - '@smithy/eventstream-serde-universal@3.0.12': + '@smithy/eventstream-serde-universal@3.0.13': dependencies: - '@smithy/eventstream-codec': 3.1.9 - '@smithy/types': 3.7.1 + '@smithy/eventstream-codec': 3.1.10 + '@smithy/types': 3.7.2 tslib: 2.8.1 - '@smithy/fetch-http-handler@4.1.1': + '@smithy/fetch-http-handler@4.1.2': dependencies: - '@smithy/protocol-http': 4.1.7 - '@smithy/querystring-builder': 3.0.10 - '@smithy/types': 3.7.1 + '@smithy/protocol-http': 4.1.8 + '@smithy/querystring-builder': 3.0.11 + '@smithy/types': 3.7.2 '@smithy/util-base64': 3.0.0 tslib: 2.8.1 - '@smithy/hash-blob-browser@3.1.9': + '@smithy/hash-blob-browser@3.1.10': dependencies: '@smithy/chunked-blob-reader': 4.0.0 '@smithy/chunked-blob-reader-native': 3.0.1 - '@smithy/types': 3.7.1 + '@smithy/types': 3.7.2 tslib: 2.8.1 - '@smithy/hash-node@3.0.10': + '@smithy/hash-node@3.0.11': dependencies: - '@smithy/types': 3.7.1 + '@smithy/types': 3.7.2 '@smithy/util-buffer-from': 3.0.0 '@smithy/util-utf8': 3.0.0 tslib: 2.8.1 - '@smithy/hash-stream-node@3.1.9': + '@smithy/hash-stream-node@3.1.10': dependencies: - '@smithy/types': 3.7.1 + '@smithy/types': 3.7.2 '@smithy/util-utf8': 3.0.0 tslib: 2.8.1 - '@smithy/invalid-dependency@3.0.10': + '@smithy/invalid-dependency@3.0.11': dependencies: - '@smithy/types': 3.7.1 + '@smithy/types': 3.7.2 tslib: 2.8.1 '@smithy/is-array-buffer@2.2.0': @@ -8288,125 +8305,125 @@ snapshots: dependencies: tslib: 2.8.1 - '@smithy/md5-js@3.0.10': + '@smithy/md5-js@3.0.11': dependencies: - '@smithy/types': 3.7.1 + '@smithy/types': 3.7.2 '@smithy/util-utf8': 3.0.0 tslib: 2.8.1 - '@smithy/middleware-content-length@3.0.12': + '@smithy/middleware-content-length@3.0.13': dependencies: - '@smithy/protocol-http': 4.1.7 - '@smithy/types': 3.7.1 + '@smithy/protocol-http': 4.1.8 + '@smithy/types': 3.7.2 tslib: 2.8.1 - '@smithy/middleware-endpoint@3.2.4': + '@smithy/middleware-endpoint@3.2.5': dependencies: - '@smithy/core': 2.5.4 - '@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 + '@smithy/core': 2.5.5 + '@smithy/middleware-serde': 3.0.11 + '@smithy/node-config-provider': 3.1.12 + '@smithy/shared-ini-file-loader': 3.1.12 + '@smithy/types': 3.7.2 + '@smithy/url-parser': 3.0.11 + '@smithy/util-middleware': 3.0.11 tslib: 2.8.1 - '@smithy/middleware-retry@3.0.28': + '@smithy/middleware-retry@3.0.30': dependencies: - '@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.5 - '@smithy/types': 3.7.1 - '@smithy/util-middleware': 3.0.10 - '@smithy/util-retry': 3.0.10 + '@smithy/node-config-provider': 3.1.12 + '@smithy/protocol-http': 4.1.8 + '@smithy/service-error-classification': 3.0.11 + '@smithy/smithy-client': 3.5.0 + '@smithy/types': 3.7.2 + '@smithy/util-middleware': 3.0.11 + '@smithy/util-retry': 3.0.11 tslib: 2.8.1 uuid: 9.0.1 - '@smithy/middleware-serde@3.0.10': + '@smithy/middleware-serde@3.0.11': dependencies: - '@smithy/types': 3.7.1 + '@smithy/types': 3.7.2 tslib: 2.8.1 - '@smithy/middleware-stack@3.0.10': + '@smithy/middleware-stack@3.0.11': dependencies: - '@smithy/types': 3.7.1 + '@smithy/types': 3.7.2 tslib: 2.8.1 - '@smithy/node-config-provider@3.1.11': + '@smithy/node-config-provider@3.1.12': dependencies: - '@smithy/property-provider': 3.1.10 - '@smithy/shared-ini-file-loader': 3.1.11 - '@smithy/types': 3.7.1 + '@smithy/property-provider': 3.1.11 + '@smithy/shared-ini-file-loader': 3.1.12 + '@smithy/types': 3.7.2 tslib: 2.8.1 - '@smithy/node-http-handler@3.3.1': + '@smithy/node-http-handler@3.3.2': dependencies: - '@smithy/abort-controller': 3.1.8 - '@smithy/protocol-http': 4.1.7 - '@smithy/querystring-builder': 3.0.10 - '@smithy/types': 3.7.1 + '@smithy/abort-controller': 3.1.9 + '@smithy/protocol-http': 4.1.8 + '@smithy/querystring-builder': 3.0.11 + '@smithy/types': 3.7.2 tslib: 2.8.1 - '@smithy/property-provider@3.1.10': + '@smithy/property-provider@3.1.11': dependencies: - '@smithy/types': 3.7.1 + '@smithy/types': 3.7.2 tslib: 2.8.1 - '@smithy/protocol-http@4.1.7': + '@smithy/protocol-http@4.1.8': dependencies: - '@smithy/types': 3.7.1 + '@smithy/types': 3.7.2 tslib: 2.8.1 - '@smithy/querystring-builder@3.0.10': + '@smithy/querystring-builder@3.0.11': dependencies: - '@smithy/types': 3.7.1 + '@smithy/types': 3.7.2 '@smithy/util-uri-escape': 3.0.0 tslib: 2.8.1 - '@smithy/querystring-parser@3.0.10': + '@smithy/querystring-parser@3.0.11': dependencies: - '@smithy/types': 3.7.1 + '@smithy/types': 3.7.2 tslib: 2.8.1 - '@smithy/service-error-classification@3.0.10': + '@smithy/service-error-classification@3.0.11': dependencies: - '@smithy/types': 3.7.1 + '@smithy/types': 3.7.2 - '@smithy/shared-ini-file-loader@3.1.11': + '@smithy/shared-ini-file-loader@3.1.12': dependencies: - '@smithy/types': 3.7.1 + '@smithy/types': 3.7.2 tslib: 2.8.1 - '@smithy/signature-v4@4.2.3': + '@smithy/signature-v4@4.2.4': dependencies: '@smithy/is-array-buffer': 3.0.0 - '@smithy/protocol-http': 4.1.7 - '@smithy/types': 3.7.1 + '@smithy/protocol-http': 4.1.8 + '@smithy/types': 3.7.2 '@smithy/util-hex-encoding': 3.0.0 - '@smithy/util-middleware': 3.0.10 + '@smithy/util-middleware': 3.0.11 '@smithy/util-uri-escape': 3.0.0 '@smithy/util-utf8': 3.0.0 tslib: 2.8.1 - '@smithy/smithy-client@3.4.5': + '@smithy/smithy-client@3.5.0': dependencies: - '@smithy/core': 2.5.4 - '@smithy/middleware-endpoint': 3.2.4 - '@smithy/middleware-stack': 3.0.10 - '@smithy/protocol-http': 4.1.7 - '@smithy/types': 3.7.1 - '@smithy/util-stream': 3.3.1 + '@smithy/core': 2.5.5 + '@smithy/middleware-endpoint': 3.2.5 + '@smithy/middleware-stack': 3.0.11 + '@smithy/protocol-http': 4.1.8 + '@smithy/types': 3.7.2 + '@smithy/util-stream': 3.3.2 tslib: 2.8.1 - '@smithy/types@3.7.1': + '@smithy/types@3.7.2': dependencies: tslib: 2.8.1 - '@smithy/url-parser@3.0.10': + '@smithy/url-parser@3.0.11': dependencies: - '@smithy/querystring-parser': 3.0.10 - '@smithy/types': 3.7.1 + '@smithy/querystring-parser': 3.0.11 + '@smithy/types': 3.7.2 tslib: 2.8.1 '@smithy/util-base64@3.0.0': @@ -8437,50 +8454,50 @@ snapshots: dependencies: tslib: 2.8.1 - '@smithy/util-defaults-mode-browser@3.0.28': + '@smithy/util-defaults-mode-browser@3.0.30': dependencies: - '@smithy/property-provider': 3.1.10 - '@smithy/smithy-client': 3.4.5 - '@smithy/types': 3.7.1 + '@smithy/property-provider': 3.1.11 + '@smithy/smithy-client': 3.5.0 + '@smithy/types': 3.7.2 bowser: 2.11.0 tslib: 2.8.1 - '@smithy/util-defaults-mode-node@3.0.28': + '@smithy/util-defaults-mode-node@3.0.30': dependencies: - '@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.5 - '@smithy/types': 3.7.1 + '@smithy/config-resolver': 3.0.13 + '@smithy/credential-provider-imds': 3.2.8 + '@smithy/node-config-provider': 3.1.12 + '@smithy/property-provider': 3.1.11 + '@smithy/smithy-client': 3.5.0 + '@smithy/types': 3.7.2 tslib: 2.8.1 - '@smithy/util-endpoints@2.1.6': + '@smithy/util-endpoints@2.1.7': dependencies: - '@smithy/node-config-provider': 3.1.11 - '@smithy/types': 3.7.1 + '@smithy/node-config-provider': 3.1.12 + '@smithy/types': 3.7.2 tslib: 2.8.1 '@smithy/util-hex-encoding@3.0.0': dependencies: tslib: 2.8.1 - '@smithy/util-middleware@3.0.10': + '@smithy/util-middleware@3.0.11': dependencies: - '@smithy/types': 3.7.1 + '@smithy/types': 3.7.2 tslib: 2.8.1 - '@smithy/util-retry@3.0.10': + '@smithy/util-retry@3.0.11': dependencies: - '@smithy/service-error-classification': 3.0.10 - '@smithy/types': 3.7.1 + '@smithy/service-error-classification': 3.0.11 + '@smithy/types': 3.7.2 tslib: 2.8.1 - '@smithy/util-stream@3.3.1': + '@smithy/util-stream@3.3.2': dependencies: - '@smithy/fetch-http-handler': 4.1.1 - '@smithy/node-http-handler': 3.3.1 - '@smithy/types': 3.7.1 + '@smithy/fetch-http-handler': 4.1.2 + '@smithy/node-http-handler': 3.3.2 + '@smithy/types': 3.7.2 '@smithy/util-base64': 3.0.0 '@smithy/util-buffer-from': 3.0.0 '@smithy/util-hex-encoding': 3.0.0 @@ -8501,57 +8518,57 @@ snapshots: '@smithy/util-buffer-from': 3.0.0 tslib: 2.8.1 - '@smithy/util-waiter@3.1.9': + '@smithy/util-waiter@3.2.0': dependencies: - '@smithy/abort-controller': 3.1.8 - '@smithy/types': 3.7.1 + '@smithy/abort-controller': 3.1.9 + '@smithy/types': 3.7.2 tslib: 2.8.1 - '@swc/core-darwin-arm64@1.10.0': + '@swc/core-darwin-arm64@1.10.1': optional: true - '@swc/core-darwin-x64@1.10.0': + '@swc/core-darwin-x64@1.10.1': optional: true - '@swc/core-linux-arm-gnueabihf@1.10.0': + '@swc/core-linux-arm-gnueabihf@1.10.1': optional: true - '@swc/core-linux-arm64-gnu@1.10.0': + '@swc/core-linux-arm64-gnu@1.10.1': optional: true - '@swc/core-linux-arm64-musl@1.10.0': + '@swc/core-linux-arm64-musl@1.10.1': optional: true - '@swc/core-linux-x64-gnu@1.10.0': + '@swc/core-linux-x64-gnu@1.10.1': optional: true - '@swc/core-linux-x64-musl@1.10.0': + '@swc/core-linux-x64-musl@1.10.1': optional: true - '@swc/core-win32-arm64-msvc@1.10.0': + '@swc/core-win32-arm64-msvc@1.10.1': optional: true - '@swc/core-win32-ia32-msvc@1.10.0': + '@swc/core-win32-ia32-msvc@1.10.1': optional: true - '@swc/core-win32-x64-msvc@1.10.0': + '@swc/core-win32-x64-msvc@1.10.1': optional: true - '@swc/core@1.10.0': + '@swc/core@1.10.1': dependencies: '@swc/counter': 0.1.3 '@swc/types': 0.1.17 optionalDependencies: - '@swc/core-darwin-arm64': 1.10.0 - '@swc/core-darwin-x64': 1.10.0 - '@swc/core-linux-arm-gnueabihf': 1.10.0 - '@swc/core-linux-arm64-gnu': 1.10.0 - '@swc/core-linux-arm64-musl': 1.10.0 - '@swc/core-linux-x64-gnu': 1.10.0 - '@swc/core-linux-x64-musl': 1.10.0 - '@swc/core-win32-arm64-msvc': 1.10.0 - '@swc/core-win32-ia32-msvc': 1.10.0 - '@swc/core-win32-x64-msvc': 1.10.0 + '@swc/core-darwin-arm64': 1.10.1 + '@swc/core-darwin-x64': 1.10.1 + '@swc/core-linux-arm-gnueabihf': 1.10.1 + '@swc/core-linux-arm64-gnu': 1.10.1 + '@swc/core-linux-arm64-musl': 1.10.1 + '@swc/core-linux-x64-gnu': 1.10.1 + '@swc/core-linux-x64-musl': 1.10.1 + '@swc/core-win32-arm64-msvc': 1.10.1 + '@swc/core-win32-ia32-msvc': 1.10.1 + '@swc/core-win32-x64-msvc': 1.10.1 '@swc/counter@0.1.3': {} @@ -8870,10 +8887,10 @@ snapshots: '@typescript-eslint/types': 8.11.0 '@typescript-eslint/visitor-keys': 8.11.0 - '@typescript-eslint/scope-manager@8.17.0': + '@typescript-eslint/scope-manager@8.18.0': dependencies: - '@typescript-eslint/types': 8.17.0 - '@typescript-eslint/visitor-keys': 8.17.0 + '@typescript-eslint/types': 8.18.0 + '@typescript-eslint/visitor-keys': 8.18.0 '@typescript-eslint/type-utils@8.11.0(eslint@8.57.1)(typescript@5.7.2)': dependencies: @@ -8891,7 +8908,7 @@ snapshots: '@typescript-eslint/types@8.11.0': {} - '@typescript-eslint/types@8.17.0': {} + '@typescript-eslint/types@8.18.0': {} '@typescript-eslint/typescript-estree@5.62.0(typescript@5.7.2)': dependencies: @@ -8922,17 +8939,16 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/typescript-estree@8.17.0(typescript@5.7.2)': + '@typescript-eslint/typescript-estree@8.18.0(typescript@5.7.2)': dependencies: - '@typescript-eslint/types': 8.17.0 - '@typescript-eslint/visitor-keys': 8.17.0 + '@typescript-eslint/types': 8.18.0 + '@typescript-eslint/visitor-keys': 8.18.0 debug: 4.4.0 fast-glob: 3.3.2 is-glob: 4.0.3 minimatch: 9.0.5 semver: 7.6.3 ts-api-utils: 1.4.3(typescript@5.7.2) - optionalDependencies: typescript: 5.7.2 transitivePeerDependencies: - supports-color @@ -8963,14 +8979,13 @@ snapshots: - supports-color - typescript - '@typescript-eslint/utils@8.17.0(eslint@8.57.1)(typescript@5.7.2)': + '@typescript-eslint/utils@8.18.0(eslint@8.57.1)(typescript@5.7.2)': dependencies: '@eslint-community/eslint-utils': 4.4.1(eslint@8.57.1) - '@typescript-eslint/scope-manager': 8.17.0 - '@typescript-eslint/types': 8.17.0 - '@typescript-eslint/typescript-estree': 8.17.0(typescript@5.7.2) + '@typescript-eslint/scope-manager': 8.18.0 + '@typescript-eslint/types': 8.18.0 + '@typescript-eslint/typescript-estree': 8.18.0(typescript@5.7.2) eslint: 8.57.1 - optionalDependencies: typescript: 5.7.2 transitivePeerDependencies: - supports-color @@ -8985,9 +9000,9 @@ snapshots: '@typescript-eslint/types': 8.11.0 eslint-visitor-keys: 3.4.3 - '@typescript-eslint/visitor-keys@8.17.0': + '@typescript-eslint/visitor-keys@8.18.0': dependencies: - '@typescript-eslint/types': 8.17.0 + '@typescript-eslint/types': 8.18.0 eslint-visitor-keys: 4.2.0 '@ungap/structured-clone@1.2.1': {} @@ -9153,7 +9168,7 @@ snapshots: define-properties: 1.2.1 es-abstract: 1.23.5 es-object-atoms: 1.0.0 - get-intrinsic: 1.2.5 + get-intrinsic: 1.2.6 is-string: 1.1.0 array-union@2.1.0: {} @@ -9167,30 +9182,29 @@ snapshots: es-object-atoms: 1.0.0 es-shim-unscopables: 1.0.2 - array.prototype.flat@1.3.2: + array.prototype.flat@1.3.3: dependencies: call-bind: 1.0.8 define-properties: 1.2.1 es-abstract: 1.23.5 es-shim-unscopables: 1.0.2 - array.prototype.flatmap@1.3.2: + array.prototype.flatmap@1.3.3: dependencies: call-bind: 1.0.8 define-properties: 1.2.1 es-abstract: 1.23.5 es-shim-unscopables: 1.0.2 - arraybuffer.prototype.slice@1.0.3: + arraybuffer.prototype.slice@1.0.4: dependencies: array-buffer-byte-length: 1.0.1 call-bind: 1.0.8 define-properties: 1.2.1 es-abstract: 1.23.5 es-errors: 1.3.0 - get-intrinsic: 1.2.5 + get-intrinsic: 1.2.6 is-array-buffer: 3.0.4 - is-shared-array-buffer: 1.0.3 arrify@1.0.1: {} @@ -9286,7 +9300,7 @@ snapshots: before-after-hook@3.0.2: {} - better-sqlite3@11.6.0: + better-sqlite3@11.7.0: dependencies: bindings: 1.5.0 prebuild-install: 7.1.2 @@ -9329,12 +9343,12 @@ snapshots: dependencies: fill-range: 7.1.1 - browserslist@4.24.2: + browserslist@4.24.3: dependencies: - caniuse-lite: 1.0.30001687 - electron-to-chromium: 1.5.71 - node-releases: 2.0.18 - update-browserslist-db: 1.1.1(browserslist@4.24.2) + caniuse-lite: 1.0.30001688 + electron-to-chromium: 1.5.73 + node-releases: 2.0.19 + update-browserslist-db: 1.1.1(browserslist@4.24.3) bs-logger@0.2.6: dependencies: @@ -9410,18 +9424,23 @@ snapshots: package-hash: 4.0.0 write-file-atomic: 3.0.3 - call-bind-apply-helpers@1.0.0: + call-bind-apply-helpers@1.0.1: dependencies: es-errors: 1.3.0 function-bind: 1.1.2 call-bind@1.0.8: dependencies: - call-bind-apply-helpers: 1.0.0 + call-bind-apply-helpers: 1.0.1 es-define-property: 1.0.1 - get-intrinsic: 1.2.5 + get-intrinsic: 1.2.6 set-function-length: 1.2.2 + call-bound@1.0.3: + dependencies: + call-bind-apply-helpers: 1.0.1 + get-intrinsic: 1.2.6 + callsite@1.0.0: {} callsites@3.1.0: {} @@ -9436,7 +9455,7 @@ snapshots: camelcase@6.3.0: {} - caniuse-lite@1.0.30001687: {} + caniuse-lite@1.0.30001688: {} chalk@2.4.2: dependencies: @@ -9614,13 +9633,13 @@ snapshots: optionalDependencies: typescript: 5.7.2 - create-jest@29.7.0(@types/node@20.17.9)(ts-node@10.9.2(@swc/core@1.10.0)(@types/node@20.17.9)(typescript@5.7.2)): + create-jest@29.7.0(@types/node@20.17.9)(ts-node@10.9.2(@swc/core@1.10.1)(@types/node@20.17.9)(typescript@5.7.2)): 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.9)(ts-node@10.9.2(@swc/core@1.10.0)(@types/node@20.17.9)(typescript@5.7.2)) + jest-config: 29.7.0(@types/node@20.17.9)(ts-node@10.9.2(@swc/core@1.10.1)(@types/node@20.17.9)(typescript@5.7.2)) jest-util: 29.7.0 prompts: 2.4.2 transitivePeerDependencies: @@ -9661,19 +9680,19 @@ snapshots: dependencies: call-bind: 1.0.8 es-errors: 1.3.0 - is-data-view: 1.0.1 + is-data-view: 1.0.2 data-view-byte-length@1.0.1: dependencies: call-bind: 1.0.8 es-errors: 1.3.0 - is-data-view: 1.0.1 + is-data-view: 1.0.2 data-view-byte-offset@1.0.0: dependencies: call-bind: 1.0.8 es-errors: 1.3.0 - is-data-view: 1.0.1 + is-data-view: 1.0.2 debug@3.2.7: dependencies: @@ -9784,7 +9803,7 @@ snapshots: dunder-proto@1.0.0: dependencies: - call-bind-apply-helpers: 1.0.0 + call-bind-apply-helpers: 1.0.1 es-errors: 1.3.0 gopd: 1.2.0 @@ -9809,7 +9828,7 @@ snapshots: dependencies: jake: 10.9.2 - electron-to-chromium@1.5.71: {} + electron-to-chromium@1.5.73: {} email-addresses@5.0.0: {} @@ -9821,13 +9840,13 @@ snapshots: emoji-regex@9.2.2: {} - emojibase-data@15.3.2(emojibase@15.3.1): + emojibase-data@16.0.2(emojibase@16.0.0): dependencies: - emojibase: 15.3.1 + emojibase: 16.0.0 - emojibase-regex@15.3.2: {} + emojibase-regex@16.0.0: {} - emojibase@15.3.1: {} + emojibase@16.0.0: {} emojilib@2.4.0: {} @@ -9866,7 +9885,7 @@ snapshots: es-abstract@1.23.5: dependencies: array-buffer-byte-length: 1.0.1 - arraybuffer.prototype.slice: 1.0.3 + arraybuffer.prototype.slice: 1.0.4 available-typed-arrays: 1.0.7 call-bind: 1.0.8 data-view-buffer: 1.0.1 @@ -9877,8 +9896,8 @@ snapshots: es-object-atoms: 1.0.0 es-set-tostringtag: 2.0.3 es-to-primitive: 1.3.0 - function.prototype.name: 1.1.6 - get-intrinsic: 1.2.5 + function.prototype.name: 1.1.7 + get-intrinsic: 1.2.6 get-symbol-description: 1.0.2 globalthis: 1.0.4 gopd: 1.2.0 @@ -9886,24 +9905,24 @@ snapshots: has-proto: 1.2.0 has-symbols: 1.1.0 hasown: 2.0.2 - internal-slot: 1.0.7 + internal-slot: 1.1.0 is-array-buffer: 3.0.4 is-callable: 1.2.7 - is-data-view: 1.0.1 + is-data-view: 1.0.2 is-negative-zero: 2.0.3 - is-regex: 1.2.0 + is-regex: 1.2.1 is-shared-array-buffer: 1.0.3 is-string: 1.1.0 is-typed-array: 1.1.13 - is-weakref: 1.0.2 + is-weakref: 1.1.0 object-inspect: 1.13.3 object-keys: 1.1.1 object.assign: 4.1.5 regexp.prototype.flags: 1.5.3 - safe-array-concat: 1.1.2 - safe-regex-test: 1.0.3 - string.prototype.trim: 1.2.9 - string.prototype.trimend: 1.0.8 + safe-array-concat: 1.1.3 + safe-regex-test: 1.1.0 + string.prototype.trim: 1.2.10 + string.prototype.trimend: 1.0.9 string.prototype.trimstart: 1.0.8 typed-array-buffer: 1.0.2 typed-array-byte-length: 1.0.1 @@ -9922,7 +9941,7 @@ snapshots: es-set-tostringtag@2.0.3: dependencies: - get-intrinsic: 1.2.5 + get-intrinsic: 1.2.6 has-tostringtag: 1.0.2 hasown: 2.0.2 @@ -9933,8 +9952,8 @@ snapshots: es-to-primitive@1.3.0: dependencies: is-callable: 1.2.7 - is-date-object: 1.0.5 - is-symbol: 1.1.0 + is-date-object: 1.1.0 + is-symbol: 1.1.1 es6-error@4.1.1: {} @@ -9964,8 +9983,8 @@ snapshots: eslint-import-resolver-node@0.3.9: dependencies: debug: 3.2.7 - is-core-module: 2.15.1 - resolve: 1.22.8 + is-core-module: 2.16.0 + resolve: 1.22.9 transitivePeerDependencies: - supports-color @@ -10004,22 +10023,22 @@ snapshots: '@rtsao/scc': 1.1.0 array-includes: 3.1.8 array.prototype.findlastindex: 1.2.5 - array.prototype.flat: 1.3.2 - array.prototype.flatmap: 1.3.2 + array.prototype.flat: 1.3.3 + array.prototype.flatmap: 1.3.3 debug: 3.2.7 doctrine: 2.1.0 eslint: 8.57.1 eslint-import-resolver-node: 0.3.9 eslint-module-utils: 2.12.0(@typescript-eslint/parser@8.11.0(eslint@8.57.1)(typescript@5.7.2))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.3)(eslint@8.57.1) hasown: 2.0.2 - is-core-module: 2.15.1 + is-core-module: 2.16.0 is-glob: 4.0.3 minimatch: 3.1.2 object.fromentries: 2.0.8 object.groupby: 1.0.3 object.values: 1.2.0 semver: 6.3.1 - string.prototype.trimend: 1.0.8 + string.prototype.trimend: 1.0.9 tsconfig-paths: 3.15.0 optionalDependencies: '@typescript-eslint/parser': 8.11.0(eslint@8.57.1)(typescript@5.7.2) @@ -10032,13 +10051,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.7.2))(eslint@8.57.1)(typescript@5.7.2))(eslint@8.57.1)(jest@29.7.0(@types/node@20.17.9)(ts-node@10.9.2(@swc/core@1.10.0)(@types/node@20.17.9)(typescript@5.7.2)))(typescript@5.7.2): + 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.7.2))(eslint@8.57.1)(typescript@5.7.2))(eslint@8.57.1)(jest@29.7.0(@types/node@20.17.9)(ts-node@10.9.2(@swc/core@1.10.1)(@types/node@20.17.9)(typescript@5.7.2)))(typescript@5.7.2): dependencies: - '@typescript-eslint/utils': 8.17.0(eslint@8.57.1)(typescript@5.7.2) + '@typescript-eslint/utils': 8.18.0(eslint@8.57.1)(typescript@5.7.2) eslint: 8.57.1 optionalDependencies: '@typescript-eslint/eslint-plugin': 8.11.0(@typescript-eslint/parser@8.11.0(eslint@8.57.1)(typescript@5.7.2))(eslint@8.57.1)(typescript@5.7.2) - jest: 29.7.0(@types/node@20.17.9)(ts-node@10.9.2(@swc/core@1.10.0)(@types/node@20.17.9)(typescript@5.7.2)) + jest: 29.7.0(@types/node@20.17.9)(ts-node@10.9.2(@swc/core@1.10.1)(@types/node@20.17.9)(typescript@5.7.2)) transitivePeerDependencies: - supports-color - typescript @@ -10356,12 +10375,13 @@ snapshots: function-timeout@1.0.2: {} - function.prototype.name@1.1.6: + function.prototype.name@1.1.7: dependencies: call-bind: 1.0.8 define-properties: 1.2.1 - es-abstract: 1.23.5 functions-have-names: 1.2.3 + hasown: 2.0.2 + is-callable: 1.2.7 functions-have-names@1.2.3: {} @@ -10390,16 +10410,18 @@ snapshots: get-caller-file@2.0.5: {} - get-intrinsic@1.2.5: + get-intrinsic@1.2.6: dependencies: - call-bind-apply-helpers: 1.0.0 + call-bind-apply-helpers: 1.0.1 dunder-proto: 1.0.0 es-define-property: 1.0.1 es-errors: 1.3.0 + es-object-atoms: 1.0.0 function-bind: 1.1.2 gopd: 1.2.0 has-symbols: 1.1.0 hasown: 2.0.2 + math-intrinsics: 1.0.0 get-package-type@0.1.0: {} @@ -10422,7 +10444,7 @@ snapshots: dependencies: call-bind: 1.0.8 es-errors: 1.3.0 - get-intrinsic: 1.2.5 + get-intrinsic: 1.2.6 get-tsconfig@4.8.1: dependencies: @@ -10760,11 +10782,11 @@ snapshots: install-artifact-from-github@1.3.5: optional: true - internal-slot@1.0.7: + internal-slot@1.1.0: dependencies: es-errors: 1.3.0 hasown: 2.0.2 - side-channel: 1.0.6 + side-channel: 1.1.0 into-stream@7.0.0: dependencies: @@ -10784,15 +10806,15 @@ snapshots: is-alphabetical: 1.0.4 is-decimal: 1.0.4 - is-arguments@1.1.1: + is-arguments@1.2.0: dependencies: - call-bind: 1.0.8 + call-bound: 1.0.3 has-tostringtag: 1.0.2 is-array-buffer@3.0.4: dependencies: call-bind: 1.0.8 - get-intrinsic: 1.2.5 + get-intrinsic: 1.2.6 is-arrayish@0.2.1: {} @@ -10804,9 +10826,9 @@ snapshots: dependencies: has-bigints: 1.0.2 - is-boolean-object@1.2.0: + is-boolean-object@1.2.1: dependencies: - call-bind: 1.0.8 + call-bound: 1.0.3 has-tostringtag: 1.0.2 is-buffer@2.0.5: {} @@ -10817,16 +10839,19 @@ snapshots: is-callable@1.2.7: {} - is-core-module@2.15.1: + is-core-module@2.16.0: dependencies: hasown: 2.0.2 - is-data-view@1.0.1: + is-data-view@1.0.2: dependencies: + call-bound: 1.0.3 + get-intrinsic: 1.2.6 is-typed-array: 1.1.13 - is-date-object@1.0.5: + is-date-object@1.1.0: dependencies: + call-bound: 1.0.3 has-tostringtag: 1.0.2 is-decimal@1.0.4: {} @@ -10875,9 +10900,9 @@ snapshots: is-plain-obj@4.1.0: {} - is-regex@1.2.0: + is-regex@1.2.1: dependencies: - call-bind: 1.0.8 + call-bound: 1.0.3 gopd: 1.2.0 has-tostringtag: 1.0.2 hasown: 2.0.2 @@ -10903,11 +10928,11 @@ snapshots: call-bind: 1.0.8 has-tostringtag: 1.0.2 - is-symbol@1.1.0: + is-symbol@1.1.1: dependencies: - call-bind: 1.0.8 + call-bound: 1.0.3 has-symbols: 1.1.0 - safe-regex-test: 1.0.3 + safe-regex-test: 1.1.0 is-typed-array@1.1.13: dependencies: @@ -10919,14 +10944,14 @@ snapshots: is-weakmap@2.0.2: {} - is-weakref@1.0.2: + is-weakref@1.1.0: dependencies: - call-bind: 1.0.8 + call-bound: 1.0.3 is-weakset@2.0.3: dependencies: call-bind: 1.0.8 - get-intrinsic: 1.2.5 + get-intrinsic: 1.2.6 is-windows@1.0.2: {} @@ -11051,16 +11076,16 @@ snapshots: - babel-plugin-macros - supports-color - jest-cli@29.7.0(@types/node@20.17.9)(ts-node@10.9.2(@swc/core@1.10.0)(@types/node@20.17.9)(typescript@5.7.2)): + jest-cli@29.7.0(@types/node@20.17.9)(ts-node@10.9.2(@swc/core@1.10.1)(@types/node@20.17.9)(typescript@5.7.2)): dependencies: - '@jest/core': 29.7.0(ts-node@10.9.2(@swc/core@1.10.0)(@types/node@20.17.9)(typescript@5.7.2)) + '@jest/core': 29.7.0(ts-node@10.9.2(@swc/core@1.10.1)(@types/node@20.17.9)(typescript@5.7.2)) '@jest/test-result': 29.7.0 '@jest/types': 29.6.3 chalk: 4.1.2 - create-jest: 29.7.0(@types/node@20.17.9)(ts-node@10.9.2(@swc/core@1.10.0)(@types/node@20.17.9)(typescript@5.7.2)) + create-jest: 29.7.0(@types/node@20.17.9)(ts-node@10.9.2(@swc/core@1.10.1)(@types/node@20.17.9)(typescript@5.7.2)) exit: 0.1.2 import-local: 3.2.0 - jest-config: 29.7.0(@types/node@20.17.9)(ts-node@10.9.2(@swc/core@1.10.0)(@types/node@20.17.9)(typescript@5.7.2)) + jest-config: 29.7.0(@types/node@20.17.9)(ts-node@10.9.2(@swc/core@1.10.1)(@types/node@20.17.9)(typescript@5.7.2)) jest-util: 29.7.0 jest-validate: 29.7.0 yargs: 17.7.2 @@ -11070,7 +11095,7 @@ snapshots: - supports-color - ts-node - jest-config@29.7.0(@types/node@20.17.9)(ts-node@10.9.2(@swc/core@1.10.0)(@types/node@20.17.9)(typescript@5.7.2)): + jest-config@29.7.0(@types/node@20.17.9)(ts-node@10.9.2(@swc/core@1.10.1)(@types/node@20.17.9)(typescript@5.7.2)): dependencies: '@babel/core': 7.26.0 '@jest/test-sequencer': 29.7.0 @@ -11096,7 +11121,7 @@ snapshots: strip-json-comments: 3.1.1 optionalDependencies: '@types/node': 20.17.9 - ts-node: 10.9.2(@swc/core@1.10.0)(@types/node@20.17.9)(typescript@5.7.2) + ts-node: 10.9.2(@swc/core@1.10.1)(@types/node@20.17.9)(typescript@5.7.2) transitivePeerDependencies: - babel-plugin-macros - supports-color @@ -11129,12 +11154,12 @@ snapshots: jest-mock: 29.7.0 jest-util: 29.7.0 - jest-extended@4.0.2(jest@29.7.0(@types/node@20.17.9)(ts-node@10.9.2(@swc/core@1.10.0)(@types/node@20.17.9)(typescript@5.7.2))): + jest-extended@4.0.2(jest@29.7.0(@types/node@20.17.9)(ts-node@10.9.2(@swc/core@1.10.1)(@types/node@20.17.9)(typescript@5.7.2))): dependencies: jest-diff: 29.7.0 jest-get-type: 29.6.3 optionalDependencies: - jest: 29.7.0(@types/node@20.17.9)(ts-node@10.9.2(@swc/core@1.10.0)(@types/node@20.17.9)(typescript@5.7.2)) + jest: 29.7.0(@types/node@20.17.9)(ts-node@10.9.2(@swc/core@1.10.1)(@types/node@20.17.9)(typescript@5.7.2)) jest-get-type@29.6.3: {} @@ -11185,9 +11210,9 @@ snapshots: slash: 3.0.0 stack-utils: 2.0.6 - jest-mock-extended@3.0.7(jest@29.7.0(@types/node@20.17.9)(ts-node@10.9.2(@swc/core@1.10.0)(@types/node@20.17.9)(typescript@5.7.2)))(typescript@5.7.2): + jest-mock-extended@3.0.7(jest@29.7.0(@types/node@20.17.9)(ts-node@10.9.2(@swc/core@1.10.1)(@types/node@20.17.9)(typescript@5.7.2)))(typescript@5.7.2): dependencies: - jest: 29.7.0(@types/node@20.17.9)(ts-node@10.9.2(@swc/core@1.10.0)(@types/node@20.17.9)(typescript@5.7.2)) + jest: 29.7.0(@types/node@20.17.9)(ts-node@10.9.2(@swc/core@1.10.1)(@types/node@20.17.9)(typescript@5.7.2)) ts-essentials: 10.0.3(typescript@5.7.2) typescript: 5.7.2 @@ -11218,7 +11243,7 @@ snapshots: jest-pnp-resolver: 1.2.3(jest-resolve@29.7.0) jest-util: 29.7.0 jest-validate: 29.7.0 - resolve: 1.22.8 + resolve: 1.22.9 resolve.exports: 2.0.3 slash: 3.0.0 @@ -11336,12 +11361,12 @@ snapshots: merge-stream: 2.0.0 supports-color: 8.1.1 - jest@29.7.0(@types/node@20.17.9)(ts-node@10.9.2(@swc/core@1.10.0)(@types/node@20.17.9)(typescript@5.7.2)): + jest@29.7.0(@types/node@20.17.9)(ts-node@10.9.2(@swc/core@1.10.1)(@types/node@20.17.9)(typescript@5.7.2)): dependencies: - '@jest/core': 29.7.0(ts-node@10.9.2(@swc/core@1.10.0)(@types/node@20.17.9)(typescript@5.7.2)) + '@jest/core': 29.7.0(ts-node@10.9.2(@swc/core@1.10.1)(@types/node@20.17.9)(typescript@5.7.2)) '@jest/types': 29.6.3 import-local: 3.2.0 - jest-cli: 29.7.0(@types/node@20.17.9)(ts-node@10.9.2(@swc/core@1.10.0)(@types/node@20.17.9)(typescript@5.7.2)) + jest-cli: 29.7.0(@types/node@20.17.9)(ts-node@10.9.2(@swc/core@1.10.1)(@types/node@20.17.9)(typescript@5.7.2)) transitivePeerDependencies: - '@types/node' - babel-plugin-macros @@ -11364,7 +11389,7 @@ snapshots: jsbn@1.1.0: optional: true - jsesc@3.0.2: {} + jsesc@3.1.0: {} json-bigint@1.0.0: dependencies: @@ -11571,17 +11596,17 @@ snapshots: dependencies: repeat-string: 1.6.1 - markdownlint-cli2-formatter-default@0.0.5(markdownlint-cli2@0.15.0): + markdownlint-cli2-formatter-default@0.0.5(markdownlint-cli2@0.16.0): dependencies: - markdownlint-cli2: 0.15.0 + markdownlint-cli2: 0.16.0 - markdownlint-cli2@0.15.0: + markdownlint-cli2@0.16.0: dependencies: globby: 14.0.2 js-yaml: 4.1.0 jsonc-parser: 3.3.1 markdownlint: 0.36.1 - markdownlint-cli2-formatter-default: 0.0.5(markdownlint-cli2@0.15.0) + markdownlint-cli2-formatter-default: 0.0.5(markdownlint-cli2@0.16.0) micromatch: 4.0.8 markdownlint-micromark@0.1.12: {} @@ -11608,6 +11633,8 @@ snapshots: dependencies: escape-string-regexp: 4.0.0 + math-intrinsics@1.0.0: {} + mdast-util-find-and-replace@1.1.1: dependencies: escape-string-regexp: 4.0.0 @@ -11639,7 +11666,7 @@ snapshots: mdurl@2.0.0: {} - memfs@4.14.1: + memfs@4.15.0: dependencies: '@jsonjoy.com/json-pack': 1.1.1(tslib@2.8.1) '@jsonjoy.com/util': 1.5.0(tslib@2.8.1) @@ -11885,7 +11912,7 @@ snapshots: dependencies: process-on-spawn: 1.1.0 - node-releases@2.0.18: {} + node-releases@2.0.19: {} nopt@7.2.1: dependencies: @@ -11895,14 +11922,14 @@ snapshots: normalize-package-data@2.5.0: dependencies: hosted-git-info: 2.8.9 - resolve: 1.22.8 + resolve: 1.22.9 semver: 5.7.2 validate-npm-package-license: 3.0.4 normalize-package-data@3.0.3: dependencies: hosted-git-info: 4.1.0 - is-core-module: 2.15.1 + is-core-module: 2.16.0 semver: 7.6.3 validate-npm-package-license: 3.0.4 @@ -12318,7 +12345,7 @@ snapshots: qs@6.13.1: dependencies: - side-channel: 1.0.6 + side-channel: 1.1.0 queue-microtask@1.2.3: {} @@ -12418,9 +12445,9 @@ snapshots: dunder-proto: 1.0.0 es-abstract: 1.23.5 es-errors: 1.3.0 - get-intrinsic: 1.2.5 + get-intrinsic: 1.2.6 gopd: 1.2.0 - which-builtin-type: 1.2.0 + which-builtin-type: 1.2.1 regenerator-runtime@0.14.1: {} @@ -12471,7 +12498,7 @@ snapshots: dependencies: debug: 4.4.0 module-details-from-path: 1.0.3 - resolve: 1.22.8 + resolve: 1.22.9 transitivePeerDependencies: - supports-color @@ -12491,9 +12518,9 @@ snapshots: resolve.exports@2.0.3: {} - resolve@1.22.8: + resolve@1.22.9: dependencies: - is-core-module: 2.15.1 + is-core-module: 2.16.0 path-parse: 1.0.7 supports-preserve-symlinks-flag: 1.0.0 @@ -12532,10 +12559,11 @@ snapshots: dependencies: queue-microtask: 1.2.3 - safe-array-concat@1.1.2: + safe-array-concat@1.1.3: dependencies: call-bind: 1.0.8 - get-intrinsic: 1.2.5 + call-bound: 1.0.3 + get-intrinsic: 1.2.6 has-symbols: 1.1.0 isarray: 2.0.5 @@ -12543,11 +12571,11 @@ snapshots: safe-buffer@5.2.1: {} - safe-regex-test@1.0.3: + safe-regex-test@1.1.0: dependencies: - call-bind: 1.0.8 + call-bound: 1.0.3 es-errors: 1.3.0 - is-regex: 1.2.0 + is-regex: 1.2.1 safe-stable-stringify@2.5.0: {} @@ -12622,7 +12650,7 @@ snapshots: define-data-property: 1.1.4 es-errors: 1.3.0 function-bind: 1.1.2 - get-intrinsic: 1.2.5 + get-intrinsic: 1.2.6 gopd: 1.2.0 has-property-descriptors: 1.0.2 @@ -12645,13 +12673,34 @@ snapshots: shlex@2.1.2: {} - side-channel@1.0.6: + side-channel-list@1.0.0: dependencies: - call-bind: 1.0.8 es-errors: 1.3.0 - get-intrinsic: 1.2.5 object-inspect: 1.13.3 + side-channel-map@1.0.1: + dependencies: + call-bound: 1.0.3 + es-errors: 1.3.0 + get-intrinsic: 1.2.6 + object-inspect: 1.13.3 + + side-channel-weakmap@1.0.2: + dependencies: + call-bound: 1.0.3 + es-errors: 1.3.0 + get-intrinsic: 1.2.6 + object-inspect: 1.13.3 + side-channel-map: 1.0.1 + + side-channel@1.1.0: + dependencies: + es-errors: 1.3.0 + object-inspect: 1.13.3 + side-channel-list: 1.0.0 + side-channel-map: 1.0.1 + side-channel-weakmap: 1.0.2 + signal-exit@3.0.7: {} signal-exit@4.1.0: {} @@ -12807,16 +12856,20 @@ snapshots: emoji-regex: 9.2.2 strip-ansi: 7.1.0 - string.prototype.trim@1.2.9: + string.prototype.trim@1.2.10: dependencies: call-bind: 1.0.8 + call-bound: 1.0.3 + define-data-property: 1.1.4 define-properties: 1.2.1 es-abstract: 1.23.5 es-object-atoms: 1.0.0 + has-property-descriptors: 1.0.2 - string.prototype.trimend@1.0.8: + string.prototype.trimend@1.0.9: dependencies: call-bind: 1.0.8 + call-bound: 1.0.3 define-properties: 1.2.1 es-object-atoms: 1.0.0 @@ -13020,12 +13073,12 @@ snapshots: optionalDependencies: typescript: 5.7.2 - 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.9)(ts-node@10.9.2(@swc/core@1.10.0)(@types/node@20.17.9)(typescript@5.7.2)))(typescript@5.7.2): + 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.9)(ts-node@10.9.2(@swc/core@1.10.1)(@types/node@20.17.9)(typescript@5.7.2)))(typescript@5.7.2): 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.9)(ts-node@10.9.2(@swc/core@1.10.0)(@types/node@20.17.9)(typescript@5.7.2)) + jest: 29.7.0(@types/node@20.17.9)(ts-node@10.9.2(@swc/core@1.10.1)(@types/node@20.17.9)(typescript@5.7.2)) jest-util: 29.7.0 json5: 2.2.3 lodash.memoize: 4.1.2 @@ -13039,7 +13092,7 @@ snapshots: '@jest/types': 29.6.3 babel-jest: 29.7.0(@babel/core@7.26.0) - ts-node@10.9.2(@swc/core@1.10.0)(@types/node@20.17.9)(typescript@5.7.2): + ts-node@10.9.2(@swc/core@1.10.1)(@types/node@20.17.9)(typescript@5.7.2): dependencies: '@cspotcode/source-map-support': 0.8.1 '@tsconfig/node10': 1.0.11 @@ -13057,7 +13110,7 @@ snapshots: v8-compile-cache-lib: 3.0.1 yn: 3.1.1 optionalDependencies: - '@swc/core': 1.10.0 + '@swc/core': 1.10.1 tsconfig-paths@3.15.0: dependencies: @@ -13241,9 +13294,9 @@ snapshots: upath@2.0.1: {} - update-browserslist-db@1.1.1(browserslist@4.24.2): + update-browserslist-db@1.1.1(browserslist@4.24.3): dependencies: - browserslist: 4.24.2 + browserslist: 4.24.3 escalade: 3.2.0 picocolors: 1.1.1 @@ -13260,7 +13313,7 @@ snapshots: util@0.12.5: dependencies: inherits: 2.0.4 - is-arguments: 1.1.1 + is-arguments: 1.2.0 is-generator-function: 1.0.10 is-typed-array: 1.1.13 which-typed-array: 1.1.16 @@ -13312,22 +13365,22 @@ snapshots: which-boxed-primitive@1.1.0: dependencies: is-bigint: 1.1.0 - is-boolean-object: 1.2.0 + is-boolean-object: 1.2.1 is-number-object: 1.1.0 is-string: 1.1.0 - is-symbol: 1.1.0 + is-symbol: 1.1.1 - which-builtin-type@1.2.0: + which-builtin-type@1.2.1: dependencies: - call-bind: 1.0.8 - function.prototype.name: 1.1.6 + call-bound: 1.0.3 + function.prototype.name: 1.1.7 has-tostringtag: 1.0.2 is-async-function: 2.0.0 - is-date-object: 1.0.5 + is-date-object: 1.1.0 is-finalizationregistry: 1.1.0 is-generator-function: 1.0.10 - is-regex: 1.2.0 - is-weakref: 1.0.2 + is-regex: 1.2.1 + is-weakref: 1.1.0 isarray: 2.0.5 which-boxed-primitive: 1.1.0 which-collection: 1.0.2 @@ -13481,6 +13534,6 @@ snapshots: yoctocolors@2.1.1: {} - zod@3.23.8: {} + zod@3.24.1: {} zwitch@1.0.5: {} diff --git a/pyproject.toml b/pyproject.toml index 07b3354964d318..ed8410f545a806 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [project] dependencies = [ - "mkdocs-material==9.5.48", + "mkdocs-material==9.5.49", "mkdocs-awesome-pages-plugin==2.9.3", ] requires-python = ">=3.11" diff --git a/tools/docker/Dockerfile b/tools/docker/Dockerfile index 497c7632bdcbec..34bd694ca4fd4a 100644 --- a/tools/docker/Dockerfile +++ b/tools/docker/Dockerfile @@ -1,23 +1,23 @@ -# syntax=docker/dockerfile:1.12.0@sha256:db1ff77fb637a5955317c7a3a62540196396d565f3dd5742e76dddbb6d75c4c5 +# syntax=docker/dockerfile:1.12.1@sha256:93bfd3b68c109427185cd78b4779fc82b484b0b7618e36d0f104d4d801e66d25 ARG BASE_IMAGE_TYPE=slim # -------------------------------------- # slim image # -------------------------------------- -FROM ghcr.io/renovatebot/base-image:9.22.2@sha256:ef4c8e2eebad1ff876e1d1ad7292070c20df96d08e8a62cb0eb3cfd60a3943e6 AS slim-base +FROM ghcr.io/renovatebot/base-image:9.23.1@sha256:b74857278e502b08cd9cbaf397c7029acde81a9d16097ec7678f5d706fd39ca3 AS slim-base # -------------------------------------- # full image # -------------------------------------- -FROM ghcr.io/renovatebot/base-image:9.22.2-full@sha256:40914939b7dda15dd472c34da99906c6d8a006958eaae749e3ff57a8eba72649 AS full-base +FROM ghcr.io/renovatebot/base-image:9.23.1-full@sha256:e4146d992faa4a70e6cbd11b60ccaad47885f9e559257ccab23e9c6c7d561e44 AS full-base ENV RENOVATE_BINARY_SOURCE=global # -------------------------------------- # build image # -------------------------------------- -FROM --platform=$BUILDPLATFORM ghcr.io/renovatebot/base-image:9.22.2@sha256:ef4c8e2eebad1ff876e1d1ad7292070c20df96d08e8a62cb0eb3cfd60a3943e6 AS build +FROM --platform=$BUILDPLATFORM ghcr.io/renovatebot/base-image:9.23.1@sha256:b74857278e502b08cd9cbaf397c7029acde81a9d16097ec7678f5d706fd39ca3 AS build # We want a specific node version here # renovate: datasource=node-version diff --git a/tools/find-issues-with-missing-labels.sh b/tools/find-issues-with-missing-labels.sh new file mode 100755 index 00000000000000..26bdc15eadc7ed --- /dev/null +++ b/tools/find-issues-with-missing-labels.sh @@ -0,0 +1,68 @@ +#!/bin/bash + +# When the repository labels are changed (i.e dropped a label, added a label, etc), you should make the same change to the lists below. +# For example, if the repository added a "type:task" type label, then add "-label:type:task" to the TYPE_LABELS_FILTER. +TYPE_LABELS_FILTER='-label:type:bug -label:type:feature -label:type:docs -label:type:refactor -label:type:help' + +PRIORITY_LABELS_FILTER='-label:priority-1-critical -label:priority-2-high -label:priority-3-medium -label:priority-4-low' + +HAS_ISSUES_MISSING_LABELS=false + +ISSUE_BODY="# Label check action\n" + +REPO='renovatebot/renovate' + +ISSUE_TITLE="Issues with missing labels" + +for FILTER in "$TYPE_LABELS_FILTER" "$PRIORITY_LABELS_FILTER"; do + # Extract the label type from the filter + LABEL_TYPE=$(echo "$FILTER" | cut -d ':' -f 2 | cut -d '-' -f 1) + + # Fetch issues that match the filter + ISSUES_MISSING_LABEL=$(gh issue list --repo $REPO --limit 100000 -s open -S "$FILTER" --json "number,title") || { echo "Failed to fetch issues without $LABEL_TYPE labels"; exit 1; } + # Ignore the Issue from the "Find issues with missing labels" Action + ISSUES_MISSING_LABEL=$(echo "$ISSUES_MISSING_LABEL" | jq --arg title "$ISSUE_TITLE" 'map(select(.title != $title))') + + if [ "$ISSUES_MISSING_LABEL" != "[]" ]; then + HAS_ISSUES_MISSING_LABELS=true + + # Create a list of issue numbers + FORMATTED_OUTPUT=$(echo "$ISSUES_MISSING_LABEL" | jq -r '.[].number' | sed 's/^/- #/') + + # Count the issues and decide if the output should be singular or plural + ISSUE_COUNT=$(echo "$ISSUES_MISSING_LABEL" | jq '. | length') + ISSUE_SINGULAR_PLURAL=$(if [ "$ISSUE_COUNT" -eq 1 ]; then echo "issue"; else echo "issues"; fi) + + # Append the "list of issues without labels" to the issue body + ISSUE_BODY="$ISSUE_BODY## Found $ISSUE_COUNT $ISSUE_SINGULAR_PLURAL missing \`$LABEL_TYPE:\` labels:\n$FORMATTED_OUTPUT\n" + fi +done + +if [ "$HAS_ISSUES_MISSING_LABELS" = false ]; then + echo "All checked issues have labels. Exiting the action." + exit 0 +fi + +LABEL_CHECK_ISSUE_EXISTS=$(gh search issues --repo $REPO --json "number,author,title" | jq --arg title "$ISSUE_TITLE" 'map(select(.title == $title and .author.type == "Bot"))') || { echo "Failed to fetch existing label check issue"; exit 1; } +ISSUE_NUMBER=$(echo "$LABEL_CHECK_ISSUE_EXISTS" | jq -r '.[].number') + +if [ -z "$ISSUE_NUMBER" ]; then + + # Create a new issue (with the list of issues in it). + gh issue create --repo $REPO --title "$ISSUE_TITLE" --body "$(echo -e "$ISSUE_BODY")" || { echo "Failed to create issue."; exit 1; } +else + # Edit the open issue, and update the list of issues. + gh issue edit "$ISSUE_NUMBER" --repo $REPO --title "$ISSUE_TITLE" --body "$(echo -e "$ISSUE_BODY")" || { echo "Failed to update issue."; exit 1; } + + # Re-open the issue. + gh issue reopen "$ISSUE_NUMBER" --repo $REPO || { echo "Failed to reopen issue"; exit 1; } +fi + +# Show the list of "issues with missing labels" in the logs. +echo -e "$ISSUE_BODY" + +# Log a message and "fail" the Action if there are issues with missing labels +echo "Found issues without labels. Please check the issue(s) listed above. Exiting the action." + +exit 1 +