From af09f951011fb78d4e0739ed8afc9eb424882bc0 Mon Sep 17 00:00:00 2001 From: Joshua Feingold Date: Mon, 23 Sep 2024 13:14:39 -0500 Subject: [PATCH 01/14] CHANGE @W-16606246@ config command asks confirmation before overwriting existing file --- messages/config-writer.md | 4 +++ src/commands/code-analyzer/config.ts | 2 +- src/lib/Display.ts | 13 ++++++++ src/lib/actions/ConfigAction.ts | 2 +- src/lib/utils/FileUtil.ts | 10 ++++++ src/lib/writers/ConfigWriter.ts | 19 ++++++++---- test/commands/code-analyzer/config.test.ts | 3 +- test/lib/writers/ConfigWriter.test.ts | 36 +++++++++++++++++++--- test/stubs/SpyConfigWriter.ts | 3 +- test/stubs/SpyDisplay.ts | 15 +++++++++ 10 files changed, 92 insertions(+), 15 deletions(-) create mode 100644 src/lib/utils/FileUtil.ts diff --git a/messages/config-writer.md b/messages/config-writer.md index be162b732..b5097507f 100644 --- a/messages/config-writer.md +++ b/messages/config-writer.md @@ -1,3 +1,7 @@ # error.unrecognized-file-format The output file %s has an unsupported extension. Valid extensions include: .yaml/.yml. + +# prompt.overwrite-existing-file + +A file named %s already exists. Overwrite? diff --git a/src/commands/code-analyzer/config.ts b/src/commands/code-analyzer/config.ts index f7634059b..55b9c4f1d 100644 --- a/src/commands/code-analyzer/config.ts +++ b/src/commands/code-analyzer/config.ts @@ -73,7 +73,7 @@ export default class ConfigCommand extends SfCommand implements Displayabl viewer: new ConfigStyledYamlViewer(uxDisplay) }; if (outputFile) { - dependencies.writer = ConfigFileWriter.fromFile(outputFile); + dependencies.writer = ConfigFileWriter.fromFile(outputFile, uxDisplay); } return dependencies; } diff --git a/src/lib/Display.ts b/src/lib/Display.ts index 2e1bfbd3b..b7f002e82 100644 --- a/src/lib/Display.ts +++ b/src/lib/Display.ts @@ -33,6 +33,12 @@ export interface Display { */ displayTable(data: R[], columns: Ux.Table.Columns): void; + /** + * Prompt the user to confirm that the described action should be carried out, and block until they respond (or a timeout + * elapses). Resolves to {@code true} if the user confirms, or {@code false} if they don't. + */ + confirm(message: string): Promise; + spinnerStart(msg: string, status?: string): void; spinnerUpdate(status: string): void; @@ -71,6 +77,10 @@ export class UxDisplay implements Display { this.displayable.table(data, columns); } + public confirm(message: string): Promise { + return this.displayable.confirm(message); + } + public spinnerStart(msg: string, status?: string): void { this.spinner.start(msg, status); } @@ -100,6 +110,9 @@ export interface Displayable { // Output message to stdout at log-level (non-blocking) only when "--json" flag is not present. [Implemented by Command] log(message?: string): void; + // Prompt the user to confirm that the described action should be performed. [Implemented by SfCommand] + confirm(message: string): Promise; + // Output table to stdout only when "--json" flag is not present. [Implemented by SfCommand] table(data: R[], columns: Ux.Table.Columns, options?: Ux.Table.Options): void; } diff --git a/src/lib/actions/ConfigAction.ts b/src/lib/actions/ConfigAction.ts index ea8eefa95..6f7711d42 100644 --- a/src/lib/actions/ConfigAction.ts +++ b/src/lib/actions/ConfigAction.ts @@ -118,7 +118,7 @@ export class ConfigAction { const configModel: ConfigModel = this.dependencies.modelGenerator(relevantEngines, userConfigContext, defaultConfigContext); this.dependencies.viewer.view(configModel); - this.dependencies.writer?.write(configModel); + await this.dependencies.writer?.write(configModel); return Promise.resolve(); } diff --git a/src/lib/utils/FileUtil.ts b/src/lib/utils/FileUtil.ts new file mode 100644 index 000000000..e333a7266 --- /dev/null +++ b/src/lib/utils/FileUtil.ts @@ -0,0 +1,10 @@ +import * as fs from 'node:fs'; + +export async function exists(filename: string): Promise { + try { + await fs.promises.access(filename, fs.constants.F_OK); + return true; + } catch (e) { + return false; + } +} diff --git a/src/lib/writers/ConfigWriter.ts b/src/lib/writers/ConfigWriter.ts index e3718b186..da170ad5a 100644 --- a/src/lib/writers/ConfigWriter.ts +++ b/src/lib/writers/ConfigWriter.ts @@ -2,28 +2,35 @@ import path from 'node:path'; import fs from 'node:fs'; import {ConfigModel, OutputFormat} from '../models/ConfigModel'; import {BundleName, getMessage} from '../messages'; +import {Display} from '../Display'; +import {exists} from '../utils/FileUtil'; export interface ConfigWriter { - write(model: ConfigModel): void; + write(model: ConfigModel): Promise; } export class ConfigFileWriter implements ConfigWriter { private readonly file: string; private readonly format: OutputFormat; + private readonly display: Display; - private constructor(file: string, format: OutputFormat) { + private constructor(file: string, format: OutputFormat, display: Display) { this.file = file; this.format = format; + this.display = display; } - public write(model: ConfigModel): void { - fs.writeFileSync(this.file, model.toFormattedOutput(this.format)); + public async write(model: ConfigModel): Promise { + // Only write to the file if it doesn't already exist, or if the user confirms that they want to overwrite it. + if (!(await exists(this.file)) || await this.display.confirm(getMessage(BundleName.ConfigWriter, 'prompt.overwrite-existing-file', [this.file]))) { + fs.writeFileSync(this.file, model.toFormattedOutput(this.format)); + } } - public static fromFile(file: string): ConfigFileWriter { + public static fromFile(file: string, display: Display): ConfigFileWriter { const ext = path.extname(file).toLowerCase(); if (ext === '.yaml' || ext === '.yml') { - return new ConfigFileWriter(file, OutputFormat.RAW_YAML); + return new ConfigFileWriter(file, OutputFormat.RAW_YAML, display); } else { throw new Error(getMessage(BundleName.ConfigWriter, 'error.unrecognized-file-format', [file])); } diff --git a/test/commands/code-analyzer/config.test.ts b/test/commands/code-analyzer/config.test.ts index 494f5ae7e..1803e90df 100644 --- a/test/commands/code-analyzer/config.test.ts +++ b/test/commands/code-analyzer/config.test.ts @@ -3,6 +3,7 @@ import {TestContext} from '@salesforce/core/lib/testSetup'; import ConfigCommand from '../../../src/commands/code-analyzer/config'; import {ConfigAction, ConfigInput} from '../../../src/lib/actions/ConfigAction'; import {ConfigFileWriter} from '../../../src/lib/writers/ConfigWriter'; +import {SpyDisplay} from '../../stubs/SpyDisplay'; describe('`code-analyzer config` tests', () => { const $$ = new TestContext(); @@ -164,7 +165,7 @@ describe('`code-analyzer config` tests', () => { const originalFromFile = ConfigFileWriter.fromFile; fromFileSpy = jest.spyOn(ConfigFileWriter, 'fromFile').mockImplementation(file => { receivedFile = file; - return originalFromFile(file); + return originalFromFile(file, new SpyDisplay()); }); }); diff --git a/test/lib/writers/ConfigWriter.test.ts b/test/lib/writers/ConfigWriter.test.ts index 90ad33e32..8bf09f7d0 100644 --- a/test/lib/writers/ConfigWriter.test.ts +++ b/test/lib/writers/ConfigWriter.test.ts @@ -1,7 +1,9 @@ import fs from 'node:fs'; +import path from 'node:path'; import {OutputFormat} from '../../../src/lib/models/ConfigModel'; import {ConfigFileWriter} from '../../../src/lib/writers/ConfigWriter'; import {StubConfigModel} from '../../stubs/StubConfigModel'; +import {DisplayEvent, DisplayEventType, SpyDisplay} from '../../stubs/SpyDisplay'; describe('ConfigWriter implementations', () => { describe('ConfigWriterImpl', () => { @@ -22,13 +24,16 @@ describe('ConfigWriter implementations', () => { it.each([ {ext: '.yaml', expectedOutput: `# This is a leading comment\nResults formatted as ${OutputFormat.RAW_YAML}`}, {ext: '.yml', expectedOutput: `# This is a leading comment\nResults formatted as ${OutputFormat.RAW_YAML}`} - ])('Accepts and outputs valid file format: *$ext', ({ext, expectedOutput}) => { + ])('Accepts and outputs valid file format: *$ext', async ({ext, expectedOutput}) => { const validFile = `beep${ext}`; - const configFileWriter = ConfigFileWriter.fromFile(validFile); + const spyDisplay: SpyDisplay = new SpyDisplay(true); + const configFileWriter = ConfigFileWriter.fromFile(validFile, spyDisplay); const stubbedConfig = new StubConfigModel(); - configFileWriter.write(stubbedConfig); + await configFileWriter.write(stubbedConfig); + + expect(spyDisplay.getDisplayEvents()).toHaveLength(0); expect(writeFileSpy).toHaveBeenCalled(); expect(writeFileInvocations).toEqual([{ @@ -37,9 +42,30 @@ describe('ConfigWriter implementations', () => { }]); }); - it('Rejects invalid file format: *.txt', () => { + it.each([ + {case: 'Confirmation granted', confirmation: true, expectedCallCount: 1}, + {case: 'Confirmation denied', confirmation: false, expectedCallCount: 0} + ])('Only overwrites existing file after requesting user confirmation. Case: $case', async ({confirmation, expectedCallCount}) => { + const validFile = path.resolve(__dirname, '..', '..', 'fixtures', 'example-workspaces', 'workspace-with-yml-config', 'code-analyzer.yml'); + const spyDisplay: SpyDisplay = new SpyDisplay(confirmation); + const configFileWriter = ConfigFileWriter.fromFile(validFile, spyDisplay); + + const stubbedConfig = new StubConfigModel(); + + await configFileWriter.write(stubbedConfig); + + const displayEvents: DisplayEvent[] = spyDisplay.getDisplayEvents(); + expect(displayEvents).toHaveLength(1); + // The user should be prompted to confirm override. + expect(displayEvents[0].type).toEqual(DisplayEventType.CONFIRM); + expect(displayEvents[0].data).toContain('Overwrite'); + expect(writeFileSpy).toHaveBeenCalledTimes(expectedCallCount); + }); + + it('Rejects invalid file format: *.txt', async () => { const invalidFile = 'beep.txt'; - expect(() => ConfigFileWriter.fromFile(invalidFile)).toThrow(invalidFile); + const spyDisplay: SpyDisplay = new SpyDisplay(true); + expect(() => ConfigFileWriter.fromFile(invalidFile, spyDisplay)).toThrow(invalidFile); }) }); }); diff --git a/test/stubs/SpyConfigWriter.ts b/test/stubs/SpyConfigWriter.ts index 24dd4893b..82639e22a 100644 --- a/test/stubs/SpyConfigWriter.ts +++ b/test/stubs/SpyConfigWriter.ts @@ -4,8 +4,9 @@ import {ConfigWriter} from '../../src/lib/writers/ConfigWriter'; export class SpyConfigWriter implements ConfigWriter { private callHistory: ConfigModel[] = []; - public write(config: ConfigModel): void { + public write(config: ConfigModel): Promise { this.callHistory.push(config); + return Promise.resolve(); } public getCallHistory(): ConfigModel[] { diff --git a/test/stubs/SpyDisplay.ts b/test/stubs/SpyDisplay.ts index 007191e8b..31079ab26 100644 --- a/test/stubs/SpyDisplay.ts +++ b/test/stubs/SpyDisplay.ts @@ -7,6 +7,12 @@ import {Ux} from '@salesforce/sf-plugins-core'; export class SpyDisplay implements Display { private displayEvents: DisplayEvent[] = []; + private readonly confirmReturnValue: boolean; + + public constructor(confirmReturnValue: boolean = true) { + this.confirmReturnValue = confirmReturnValue; + } + /** * Track that the provided message was displayed as an Error-level output. */ @@ -58,6 +64,14 @@ export class SpyDisplay implements Display { }); } + public confirm(message: string): Promise { + this.displayEvents.push({ + type: DisplayEventType.CONFIRM, + data: message + }); + return Promise.resolve(this.confirmReturnValue); + } + /** * Track that the spinner was started with the provided message, and optionally status. */ @@ -103,6 +117,7 @@ export enum DisplayEventType { INFO, LOG, TABLE, + CONFIRM, SPINNER_START, SPINNER_UPDATE, SPINNER_STOP From 4d1c44c0ceaca237469209200c65e2f59910654b Mon Sep 17 00:00:00 2001 From: Joshua Feingold Date: Mon, 23 Sep 2024 13:50:50 -0500 Subject: [PATCH 02/14] @W-16606246@ Updated message based on feedback. --- messages/config-writer.md | 2 +- test/lib/writers/ConfigWriter.test.ts | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/messages/config-writer.md b/messages/config-writer.md index b5097507f..3a75fde1c 100644 --- a/messages/config-writer.md +++ b/messages/config-writer.md @@ -4,4 +4,4 @@ The output file %s has an unsupported extension. Valid extensions include: .yaml # prompt.overwrite-existing-file -A file named %s already exists. Overwrite? +A file named %s already exists. Do you want to overwrite it? diff --git a/test/lib/writers/ConfigWriter.test.ts b/test/lib/writers/ConfigWriter.test.ts index 8bf09f7d0..b84a4ce19 100644 --- a/test/lib/writers/ConfigWriter.test.ts +++ b/test/lib/writers/ConfigWriter.test.ts @@ -58,7 +58,7 @@ describe('ConfigWriter implementations', () => { expect(displayEvents).toHaveLength(1); // The user should be prompted to confirm override. expect(displayEvents[0].type).toEqual(DisplayEventType.CONFIRM); - expect(displayEvents[0].data).toContain('Overwrite'); + expect(displayEvents[0].data).toContain('overwrite'); expect(writeFileSpy).toHaveBeenCalledTimes(expectedCallCount); }); From 2e55a4efa24f4837107c083ede609c7c4475d03c Mon Sep 17 00:00:00 2001 From: Joshua Feingold Date: Mon, 30 Sep 2024 09:49:20 -0500 Subject: [PATCH 03/14] FIX @W-16865881@ RunSummaryViewer correctly outputs logfile. --- src/lib/actions/RunAction.ts | 2 +- src/lib/viewers/RunSummaryViewer.ts | 10 +++++----- src/lib/writers/LogWriter.ts | 11 +++++++++-- test/lib/viewers/RunSummaryViewer.test.ts | 7 ++++--- test/stubs/SpyLogWriter.ts | 4 ++++ test/stubs/SpyRunSummaryViewer.ts | 10 +++++----- 6 files changed, 28 insertions(+), 16 deletions(-) diff --git a/src/lib/actions/RunAction.ts b/src/lib/actions/RunAction.ts index e4fc4018c..43780761c 100644 --- a/src/lib/actions/RunAction.ts +++ b/src/lib/actions/RunAction.ts @@ -80,7 +80,7 @@ export class RunAction { this.dependencies.logEventListeners.forEach(listener => listener.stopListening()); this.dependencies.writer.write(results); this.dependencies.resultsViewer.view(results); - this.dependencies.runSummaryViewer.view(results, config, input['output-file']); + this.dependencies.runSummaryViewer.view(results, logWriter.getLogDestination(), input['output-file']); const thresholdValue = input['severity-threshold']; if (thresholdValue) { diff --git a/src/lib/viewers/RunSummaryViewer.ts b/src/lib/viewers/RunSummaryViewer.ts index d7471eed0..290c464fb 100644 --- a/src/lib/viewers/RunSummaryViewer.ts +++ b/src/lib/viewers/RunSummaryViewer.ts @@ -1,20 +1,20 @@ -import {CodeAnalyzerConfig, RunResults, SeverityLevel} from '@salesforce/code-analyzer-core'; +import {RunResults, SeverityLevel} from '@salesforce/code-analyzer-core'; import {Display} from '../Display'; import {indent, toStyledHeader} from '../utils/StylingUtil'; import {BundleName, getMessage} from '../messages'; export interface RunSummaryViewer { - view(results: RunResults, config: CodeAnalyzerConfig, outfiles: string[]): void; + view(results: RunResults, logFile: string, outfiles: string[]): void; } -export class RunSummaryDisplayer { +export class RunSummaryDisplayer implements RunSummaryViewer { protected display: Display; public constructor(display: Display) { this.display = display; } - public view(results: RunResults, config: CodeAnalyzerConfig, outfiles: string[]): void { + public view(results: RunResults, logFile: string, outfiles: string[]): void { this.display.displayLog(toStyledHeader(getMessage(BundleName.RunSummaryViewer, 'summary.header'))); // Use empty line as a visual separator this.display.displayLog(''); @@ -36,7 +36,7 @@ export class RunSummaryDisplayer { this.display.displayLog(''); this.display.displayLog(getMessage(BundleName.RunSummaryViewer, 'summary.log-file-location')); - this.display.displayLog(indent(config.getLogFolder())); + this.display.displayLog(indent(logFile)); } private displayResultsSummary(results: RunResults): void { diff --git a/src/lib/writers/LogWriter.ts b/src/lib/writers/LogWriter.ts index 531b2faf5..5bca25cb5 100644 --- a/src/lib/writers/LogWriter.ts +++ b/src/lib/writers/LogWriter.ts @@ -4,20 +4,27 @@ import {CodeAnalyzerConfig} from '@salesforce/code-analyzer-core'; export interface LogWriter { writeToLog(message: string): void; + getLogDestination(): string; closeLog(): void; } export class LogFileWriter implements LogWriter { private readonly writeStream: NodeJS.WritableStream; + private readonly destination: string; - private constructor(writeStream: NodeJS.WritableStream) { + private constructor(writeStream: NodeJS.WritableStream, destination: string) { this.writeStream = writeStream; + this.destination = destination; } public writeToLog(message: string): void { this.writeStream.write(message); } + public getLogDestination(): string { + return this.destination; + } + public closeLog(): void { this.writeStream.end(); } @@ -29,6 +36,6 @@ export class LogFileWriter implements LogWriter { const logFile = path.join(logFolder, `sfca-${Date.now()}.log`); // 'w' flag causes the file to be created if it doesn't already exist. const fh = await fs.open(logFile, 'w'); - return new LogFileWriter(fh.createWriteStream({})); + return new LogFileWriter(fh.createWriteStream({}), logFile); } } diff --git a/test/lib/viewers/RunSummaryViewer.test.ts b/test/lib/viewers/RunSummaryViewer.test.ts index 76056302d..7a06b8d4f 100644 --- a/test/lib/viewers/RunSummaryViewer.test.ts +++ b/test/lib/viewers/RunSummaryViewer.test.ts @@ -63,14 +63,15 @@ describe('RunSummaryViewer implementations', () => { // Create Displayers for the empty-input and non-empty-input cases. const emptyInputsDisplayer: RunSummaryDisplayer = new RunSummaryDisplayer(emptyInputsSpyDisplay); const nonEmptyInputsDisplayer: RunSummaryDisplayer = new RunSummaryDisplayer(nonEmptyInputsSpyDisplay); + const fakeLogFile: string = path.join('path', 'to', 'fakelogfile.log'); let emptyInputsDisplayEvents: DisplayEvent[]; let nonEmptyInputsDisplayEvents: DisplayEvent[]; beforeAll(() => { - emptyInputsDisplayer.view(emptyResults, config, []); + emptyInputsDisplayer.view(emptyResults, fakeLogFile, []); emptyInputsDisplayEvents = emptyInputsSpyDisplay.getDisplayEvents(); - nonEmptyInputsDisplayer.view(nonEmptyResults, config, [PATH_TO_OUTFILE1, PATH_TO_OUTFILE2]) + nonEmptyInputsDisplayer.view(nonEmptyResults, fakeLogFile, [PATH_TO_OUTFILE1, PATH_TO_OUTFILE2]) nonEmptyInputsDisplayEvents = nonEmptyInputsSpyDisplay.getDisplayEvents(); }); @@ -121,7 +122,7 @@ describe('RunSummaryViewer implementations', () => { describe('Logging breakdown', () => { it('Logfile is correctly displayed', () => { const expectation = `Additional log information written to:\n` + - ` ${config.getLogFolder()}`; + ` ${fakeLogFile}`; const emptyContents = emptyInputsDisplayEvents.map(e => e.data).join('\n'); const nonEmptyContents = nonEmptyInputsDisplayEvents.map(e => e.data).join('\n'); expect(emptyContents).toContain(expectation); diff --git a/test/stubs/SpyLogWriter.ts b/test/stubs/SpyLogWriter.ts index e44bdaba7..183a6e80f 100644 --- a/test/stubs/SpyLogWriter.ts +++ b/test/stubs/SpyLogWriter.ts @@ -13,6 +13,10 @@ export class SpyLogWriter implements LogWriter { this.log += message; } + public getLogDestination(): string { + return 'this value does not matter'; + } + public closeLog(): void { this.isClosed = true; } diff --git a/test/stubs/SpyRunSummaryViewer.ts b/test/stubs/SpyRunSummaryViewer.ts index 3b993d326..54870a40e 100644 --- a/test/stubs/SpyRunSummaryViewer.ts +++ b/test/stubs/SpyRunSummaryViewer.ts @@ -1,14 +1,14 @@ -import {CodeAnalyzerConfig, RunResults} from '@salesforce/code-analyzer-core'; +import {RunResults} from '@salesforce/code-analyzer-core'; import {RunSummaryViewer} from '../../src/lib/viewers/RunSummaryViewer' export class SpyRunSummaryViewer implements RunSummaryViewer { - private callHistory: {results: RunResults, config: CodeAnalyzerConfig, outfiles: string[]}[] = []; + private callHistory: {results: RunResults, logFile: string, outfiles: string[]}[] = []; - public view(results: RunResults, config: CodeAnalyzerConfig, outfiles: string[]): void { - this.callHistory.push({results, config, outfiles}); + public view(results: RunResults, logFile: string, outfiles: string[]): void { + this.callHistory.push({results, logFile, outfiles}); } - public getCallHistory(): {results: RunResults, config: CodeAnalyzerConfig, outfiles: string[]}[] { + public getCallHistory(): {results: RunResults, logFile: string, outfiles: string[]}[] { return this.callHistory; } } From 644488f0b1f26e0975c5ab91c958ff5b565d1c37 Mon Sep 17 00:00:00 2001 From: Joshua Feingold Date: Mon, 30 Sep 2024 14:01:55 -0500 Subject: [PATCH 04/14] CHANGE @W-16866345@ Spinners retain useful information in their done-state --- messages/progress-event-listener.md | 10 ++++--- src/lib/listeners/ProgressEventListener.ts | 28 +++++++++++++------ .../listeners/ProgressEventListener.test.ts | 12 ++++---- 3 files changed, 32 insertions(+), 18 deletions(-) diff --git a/messages/progress-event-listener.md b/messages/progress-event-listener.md index 39f1576aa..e8f383b91 100644 --- a/messages/progress-event-listener.md +++ b/messages/progress-event-listener.md @@ -1,9 +1,12 @@ # selection-spinner.action Selecting rules -# selection-spinner.status +# selection-spinner.in-progress-status Eligible engines: %s; Completion: %d%; Elapsed time: %ds +# selection-spinner.finished-status +done. Selected rules from %s. + # execution-spinner.action Executing rules @@ -13,6 +16,5 @@ Executing rules # execution-spinner.engine-status - %s at %d% completion. -# base-spinner.done -done - +# execution-spinner.finished-status +done. Executed rules from %s. diff --git a/src/lib/listeners/ProgressEventListener.ts b/src/lib/listeners/ProgressEventListener.ts index 7a46307db..a23c7e6c2 100644 --- a/src/lib/listeners/ProgressEventListener.ts +++ b/src/lib/listeners/ProgressEventListener.ts @@ -31,20 +31,20 @@ abstract class ProgressSpinner { return; } this.startTime = Date.now(); - this.display.spinnerStart(action, this.createSpinnerStatus()); + this.display.spinnerStart(action, this.createInProgressSpinnerStatus()); if (this.tickTime > 0) { // `setInterval` means the callback will be called repeatedly. This allows us to automatically refresh the // spinner on a regular interval even if nothing happened. This is primarily useful for incrementing a timer, // so the user doesn't feel like the system is frozen. this.tickIntervalId = setInterval(() => { - this.display.spinnerUpdate(this.createSpinnerStatus()); + this.display.spinnerUpdate(this.createInProgressSpinnerStatus()); }, this.tickTime); } this._isSpinning = true; } protected updateSpinner(): void { - this.display.spinnerUpdate(this.createSpinnerStatus()); + this.display.spinnerUpdate(this.createInProgressSpinnerStatus()); } protected stopSpinning(): void { @@ -52,7 +52,7 @@ abstract class ProgressSpinner { clearInterval(this.tickIntervalId); } if (this._isSpinning) { - this.display.spinnerStop(getMessage(BundleName.ProgressEventListener, 'base-spinner.done')); + this.display.spinnerStop(this.createFinishedSpinnerStatus()); this._isSpinning = false; } } @@ -69,7 +69,9 @@ abstract class ProgressSpinner { return Math.floor((Date.now() - this.startTime) / 1000); } - protected abstract createSpinnerStatus(): string; + protected abstract createInProgressSpinnerStatus(): string; + + protected abstract createFinishedSpinnerStatus(): string; } export class RuleSelectionProgressSpinner extends ProgressSpinner implements ProgressEventListener { @@ -128,12 +130,17 @@ export class RuleSelectionProgressSpinner extends ProgressSpinner implements Pro } } - protected createSpinnerStatus(): string { + protected createInProgressSpinnerStatus(): string { const aggregateCompletionPercentage: number = Math.floor(this.completionPercentages.reduce((prevTotal, next) => prevTotal + next, 0) / this.completionPercentages.length); - return getMessage(BundleName.ProgressEventListener, 'selection-spinner.status', + return getMessage(BundleName.ProgressEventListener, 'selection-spinner.in-progress-status', [[...this.engineNames.keys()].join(', '), aggregateCompletionPercentage, this.getSecondsSpentSpinning()]); } + + protected createFinishedSpinnerStatus(): string { + return getMessage(BundleName.ProgressEventListener, 'selection-spinner.finished-status', + [[...this.engineNames.keys()].join(', ')]); + } } export class EngineRunProgressSpinner extends ProgressSpinner implements ProgressEventListener { @@ -189,7 +196,7 @@ export class EngineRunProgressSpinner extends ProgressSpinner implements Progres this.updateSpinner(); } - protected createSpinnerStatus(): string { + protected createInProgressSpinnerStatus(): string { const secondsRunning = this.getSecondsSpentSpinning(); const totalEngines = this.progressMap.size; let unfinishedEngines = 0; @@ -205,4 +212,9 @@ export class EngineRunProgressSpinner extends ProgressSpinner implements Progres ...engineLines ].join('\n'); } + + protected createFinishedSpinnerStatus(): string { + return getMessage(BundleName.ProgressEventListener, 'execution-spinner.finished-status', + [[...this.progressMap.keys()].join(', ')]); + } } diff --git a/test/lib/listeners/ProgressEventListener.test.ts b/test/lib/listeners/ProgressEventListener.test.ts index 781beb6bf..b4e48127a 100644 --- a/test/lib/listeners/ProgressEventListener.test.ts +++ b/test/lib/listeners/ProgressEventListener.test.ts @@ -87,7 +87,7 @@ describe('ProgressEventListener implementations', () => { expect(percentagesInOrder).toEqual([0, 25, 50, 100]); const endEvent = displayEvents[displayEvents.length - 1]; expect(endEvent).toHaveProperty('type', DisplayEventType.SPINNER_STOP); - expect(endEvent.data).toContain('done'); + expect(endEvent.data).toContain(`done. Selected rules from stubEngine1, stubEngine2.`); }); it('Properly aggregates percentages across multiple Cores', async () => { @@ -123,7 +123,7 @@ describe('ProgressEventListener implementations', () => { expect(percentagesInOrder).toEqual([0, 12, 25, 50, 62, 75, 100]); const endEvent = displayEvents[displayEvents.length - 1]; expect(endEvent).toHaveProperty('type', DisplayEventType.SPINNER_STOP); - expect(endEvent.data).toContain('done'); + expect(endEvent.data).toContain('done. Selected rules from stubEngine1, stubEngine2.'); }); it('Properly interleaves progress updates with ticking', async () => { @@ -159,7 +159,7 @@ describe('ProgressEventListener implementations', () => { expect(percentagesInOrder).toEqual([0, 20, 40, 50, 60, 80, 100]); const endEvent = displayEvents[displayEvents.length - 1]; expect(endEvent).toHaveProperty('type', DisplayEventType.SPINNER_STOP); - expect(endEvent.data).toContain('done'); + expect(endEvent.data).toContain('done. Selected rules from timeableEngine1, timeableEngine2.'); }); }); @@ -252,7 +252,7 @@ describe('ProgressEventListener implementations', () => { expect(percentagesInOrder).toEqual([0, 50, 100]); const endEvent = displayEvents[displayEvents.length - 1]; expect(endEvent).toHaveProperty('type', DisplayEventType.SPINNER_STOP); - expect(endEvent.data).toContain('done'); + expect(endEvent.data).toContain('done. Executed rules from stubEngine1.'); }); it('Properly interleaves progress updates from multiple engines', async () => { @@ -296,7 +296,7 @@ describe('ProgressEventListener implementations', () => { // The final event should be the Stop event. const endEvent = displayEvents[displayEvents.length - 1]; expect(endEvent).toHaveProperty('type', DisplayEventType.SPINNER_STOP); - expect(endEvent.data).toContain('done'); + expect(endEvent.data).toContain('done. Executed rules from timeableEngine1, timeableEngine2.'); }); it('Properly interleaves progress updates with ticking', async () => { @@ -332,7 +332,7 @@ describe('ProgressEventListener implementations', () => { expect(percentagesInOrder).toEqual([0, 50, 100]); const endEvent = displayEvents[displayEvents.length - 1]; expect(endEvent).toHaveProperty('type', DisplayEventType.SPINNER_STOP); - expect(endEvent.data).toContain('done'); + expect(endEvent.data).toContain('done. Executed rules from timeableEngine1.'); }, 10000); // There's currently no need for this Spinner to accept multiple Cores, so we've opted to not implement that From ef143c370422c9a74b0cbe5726867f9ab1fa7b38 Mon Sep 17 00:00:00 2001 From: Stephen Carter Date: Mon, 7 Oct 2024 14:26:45 -0400 Subject: [PATCH 05/14] FIX(config): @W-16912030@: Refactor config command and fix path based values to null when default --- src/lib/models/ConfigModel.ts | 253 +++++++++--------- .../config_root.yml.goldfile | 2 +- .../log_folder.yml.goldfile | 2 +- test/lib/actions/ConfigAction.test.ts | 22 +- 4 files changed, 149 insertions(+), 130 deletions(-) diff --git a/src/lib/models/ConfigModel.ts b/src/lib/models/ConfigModel.ts index 5f151d025..e531ecde1 100644 --- a/src/lib/models/ConfigModel.ts +++ b/src/lib/models/ConfigModel.ts @@ -1,4 +1,4 @@ -import * as yaml from 'js-yaml'; +import {dump as yamlDump} from 'js-yaml'; import { CodeAnalyzer, CodeAnalyzerConfig, @@ -9,6 +9,7 @@ import { } from '@salesforce/code-analyzer-core'; import {indent, makeGrey} from '../utils/StylingUtil'; import {BundleName, getMessage} from '../messages'; +import path from "node:path"; export enum OutputFormat { RAW_YAML = "RAW_YAML", @@ -41,9 +42,9 @@ export class AnnotatedConfigModel implements ConfigModel { toFormattedOutput(format: OutputFormat): string { // istanbul ignore else: Should be impossible if (format === OutputFormat.STYLED_YAML) { - return toYaml(this.relevantEngines, this.userContext, this.defaultContext, true); + return new StyledYamlFormatter(this.relevantEngines, this.userContext, this.defaultContext).toYaml(); } else if (format === OutputFormat.RAW_YAML) { - return toYaml(this.relevantEngines, this.userContext, this.defaultContext, false); + return new PlainYamlFormatter(this.relevantEngines, this.userContext, this.defaultContext).toYaml(); } else { throw new Error(`Unsupported`) } @@ -54,153 +55,165 @@ export class AnnotatedConfigModel implements ConfigModel { } } -function toYaml(relevantEngines: Set, userContext: ConfigContext, defaultContext: ConfigContext, styled: boolean): string { - let result: string = ''; - - // First, add the header. - const topLevelDescription: ConfigDescription = CodeAnalyzerConfig.getConfigDescription(); - result += `${toYamlComment(getYamlSectionWrapper(), styled)}\n` - result += `${toYamlComment(topLevelDescription.overview!, styled)}\n`; - result += `${toYamlComment(getYamlSectionWrapper(), styled)}\n` - result += '\n'; - - // Next add `config_root` - result += `${toYamlComment(topLevelDescription.fieldDescriptions!.config_root, styled)}\n`; - result += `config_root: ${toYamlWithDerivedValueComment(userContext.config.getConfigRoot(), process.cwd(), styled)}\n`; - result += '\n'; - - // Then `log_folder' - result += `${toYamlComment(topLevelDescription.fieldDescriptions!.log_folder, styled)}\n`; - result += `log_folder: ${toYamlWithDerivedValueComment(userContext.config.getLogFolder(), defaultContext.config.getLogFolder(), styled)}\n`; - result += '\n'; - - // Then the `rules` section - result += `${toYamlComment(topLevelDescription.fieldDescriptions!.rules, styled)}\n`; - result += `${toYamlRules(userContext, defaultContext, styled)}\n`; - result += '\n'; +abstract class YamlFormatter { + private readonly relevantEngines: Set; + private readonly userContext: ConfigContext; + private readonly defaultContext: ConfigContext; - // Then the `engines` section - result += `${toYamlComment(topLevelDescription.fieldDescriptions!.engines, styled)}\n`; - result += `${toYamlEngines(relevantEngines, userContext, defaultContext, styled)}`; + protected constructor(relevantEngines: Set, userContext: ConfigContext, defaultContext: ConfigContext) { + this.relevantEngines = relevantEngines; + this.userContext = userContext; + this.defaultContext = defaultContext; + } - return result; -} + protected abstract toYamlComment(commentText: string): string -function getYamlSectionWrapper(): string { - return '='.repeat(70); -} + private toYamlSectionHeadingComment(commentText: string): string { + const horizontalLine: string = '='.repeat(70); + return this.toYamlComment(`${horizontalLine}\n${commentText}\n${horizontalLine}`); + } -function toYamlComment(comment: string, styled: boolean, indentLength: number = 0): string { - // At the start of the string, and at the start of every line... - return comment.replace(/^.*/gm, s => { - // ...Inject a `# ` at the start to make it a comment... - let commented = `# ${s}`; - // ...Apply styling if requested... - commented = styled ? makeGrey(commented) : commented; - // ...And indent to the requested amount - return indent(commented, indentLength); - }); -} + private toYamlUncheckedField(fieldName: string, fieldValue: unknown): string { + return yamlDump({[fieldName]: fieldValue}).trim(); + } -function toYamlWithDerivedValueComment(userValue: string, defaultValue: string, styled: boolean): string { - if (userValue == null || userValue === defaultValue) { - const comment = getMessage(BundleName.ConfigModel, 'template.last-calculated-as', [defaultValue]); - return `null ${toYamlComment(comment, styled)}`; - } else { - return `${userValue}`; + private toYamlUncheckedFieldWithInlineComment(fieldName: string, fieldValue: unknown, commentText: string): string { + const yamlCode: string = this.toYamlUncheckedField(fieldName, fieldValue); + const comment: string = this.toYamlComment(commentText); + return yamlCode.replace(/(\r?\n|$)/, ` ${comment}$1`); } -} -function toYamlRules(userContext: ConfigContext, defaultContext: ConfigContext, styled: boolean): string { - if (userContext.rules.getCount() === 0) { - const comment = getMessage(BundleName.ConfigModel, 'template.yaml.no-rules-selected'); - return `rules: {} ${toYamlComment(comment, styled)}`; - } - let results: string = 'rules:\n'; - for (const engineName of userContext.rules.getEngineNames()) { - results += `\n${toYamlComment(getYamlSectionWrapper(), styled, 2)}\n`; - results += `${toYamlComment(getMessage(BundleName.ConfigModel, 'template.rule-overrides-section', [engineName.toUpperCase()]), styled, 2)}\n`; - results += `${toYamlComment(getYamlSectionWrapper(), styled, 2)}\n`; - results += indent(`${engineName}:`, 2) + '\n'; - for (const userRule of userContext.rules.getRulesFor(engineName)) { - const defaultRule = getDefaultRule(defaultContext, engineName, userRule.getName()); - results += indent(toYamlRule(userRule, defaultRule, styled), 4); + private toYamlField(fieldName: string, userValue: unknown, defaultValue: unknown): string { + if (looksLikeAPathValue(userValue) && userValue === defaultValue) { + // We special handle a path value when it is equal to the default value, making it equal null because + // chances are it is a derived file or folder value based on the specific environment that we do not want to + // actually want to hard code since checking in the config to CI/CD system may create a different value + const commentText: string = getMessage(BundleName.ConfigModel, 'template.last-calculated-as', [JSON.stringify(userValue)]); + return this.toYamlUncheckedFieldWithInlineComment(fieldName, null, commentText); + } else if (JSON.stringify(userValue) === JSON.stringify(defaultValue)) { + return this.toYamlUncheckedField(fieldName, userValue); + } else { + const commentText: string = getMessage(BundleName.ConfigModel, 'template.modified-from', [JSON.stringify(defaultValue)]); + return this.toYamlUncheckedFieldWithInlineComment(fieldName, userValue, commentText); } } - return results; -} -function getDefaultRule(defaultContext: ConfigContext, engineName: string, ruleName: string): Rule|null { - try { - return defaultContext.rules.getRule(engineName, ruleName); - } catch (e) { - // istanbul ignore next - return null; + toYaml(): string { + const topLevelDescription: ConfigDescription = CodeAnalyzerConfig.getConfigDescription(); + return this.toYamlSectionHeadingComment(topLevelDescription.overview!) + '\n' + + '\n' + + this.toYamlComment(topLevelDescription.fieldDescriptions!.config_root) + '\n' + + this.toYamlField('config_root', this.userContext.config.getConfigRoot(), this.defaultContext.config.getConfigRoot()) + '\n' + + '\n' + + this.toYamlComment(topLevelDescription.fieldDescriptions!.log_folder) + '\n' + + this.toYamlField('log_folder', this.userContext.config.getLogFolder(), this.defaultContext.config.getLogFolder()) + '\n' + + '\n' + + this.toYamlComment(topLevelDescription.fieldDescriptions!.rules) + '\n' + + this.toYamlRuleOverrides() + '\n' + + '\n' + + this.toYamlComment(topLevelDescription.fieldDescriptions!.engines) + '\n' + + this.toYamlEngineOverrides() + '\n'; } -} -function toYamlRule(userRule: Rule, defaultRule: Rule|null, styled: boolean): string { - const ruleName: string = userRule.getName(); - const userSeverity: SeverityLevel = userRule.getSeverityLevel(); - const userTags: string[] = userRule.getTags(); - - let severityYaml = yaml.dump({severity: userSeverity}); - let tagsYaml = yaml.dump({tags: userTags}); + private toYamlRuleOverrides(): string { + if (this.userContext.rules.getCount() === 0) { + const commentText: string = getMessage(BundleName.ConfigModel, 'template.yaml.no-rules-selected'); + return `rules: {} ${this.toYamlComment(commentText)}`; + } - if (defaultRule != null) { - const defaultSeverity: SeverityLevel = defaultRule.getSeverityLevel(); - const defaultTagsJson: string = JSON.stringify(defaultRule.getTags()); + let yamlCode: string = 'rules:\n'; + for (const engineName of this.userContext.rules.getEngineNames()) { + yamlCode += '\n'; + yamlCode += indent(this.toYamlRuleOverridesForEngine(engineName), 2) + '\n'; + } + return yamlCode.trimEnd(); + } - if (userSeverity !== defaultSeverity) { - const comment = getMessage(BundleName.ConfigModel, 'template.modified-from', [defaultSeverity]); - severityYaml = severityYaml.replace('\n', ` ${toYamlComment(comment, styled)}\n`); + private toYamlRuleOverridesForEngine(engineName: string): string { + const engineConfigHeader: string = getMessage(BundleName.ConfigModel, 'template.rule-overrides-section', + [engineName.toUpperCase()]); + let yamlCode: string = this.toYamlSectionHeadingComment(engineConfigHeader) + '\n'; + yamlCode += `${engineName}:\n`; + for (const userRule of this.userContext.rules.getRulesFor(engineName)) { + const defaultRule: Rule|null = this.getDefaultRuleFor(engineName, userRule.getName()); + yamlCode += indent(this.toYamlRuleOverridesForRule(userRule, defaultRule), 2) + '\n'; } + return yamlCode.trimEnd(); + } - if (JSON.stringify(userTags) !== defaultTagsJson) { - const comment = getMessage(BundleName.ConfigModel, 'template.modified-from', [defaultTagsJson]); - // The YAML spec requires a trailing newline, so we know that there's at least one newline somewhere in the - // string. If we inject a comment before the first newline we encounter, then it will look clean. - tagsYaml = tagsYaml.replace('\n', ` ${toYamlComment(comment, styled)}\n`); + private getDefaultRuleFor(engineName: string, ruleName: string): Rule|null { + try { + return this.defaultContext.rules.getRule(engineName, ruleName); + } catch (e) { + // istanbul ignore next + return null; } } - return `"${ruleName}":\n${indent(severityYaml, 2)}${indent(tagsYaml, 2)}`; -} -function toYamlEngines(relevantEngines: Set, userContext: ConfigContext, defaultContext: ConfigContext, styled: boolean): string { - if (relevantEngines.size === 0) { - const comment = getMessage(BundleName.ConfigModel, 'template.yaml.no-engines-selected'); - return `engines: {} ${toYamlComment(comment, styled)}`; + private toYamlRuleOverridesForRule(userRule: Rule, defaultRule: Rule|null): string { + const userSeverity: SeverityLevel = userRule.getSeverityLevel(); + const userTags: string[] = userRule.getTags(); + return `"${userRule.getName()}":\n` + + indent(this.toYamlField('severity', userSeverity, defaultRule !== null ? defaultRule.getSeverityLevel() : userSeverity), 2) + '\n' + + indent(this.toYamlField('tags', userTags, defaultRule !== null ? defaultRule.getTags() : userTags), 2); } - let results: string = 'engines:\n' + private toYamlEngineOverrides(): string { + if (this.relevantEngines.size === 0) { + const commentText: string = getMessage(BundleName.ConfigModel, 'template.yaml.no-engines-selected'); + return `engines: {} ${this.toYamlComment(commentText)}`; + } - for (const engineName of relevantEngines.keys()) { - const engineConfigDescriptor = userContext.core.getEngineConfigDescription(engineName); - const userEngineConfig = userContext.core.getEngineConfig(engineName); - const defaultEngineConfig = defaultContext.core.getEngineConfig(engineName); + let yamlCode: string = 'engines:\n' + for (const engineName of this.relevantEngines.keys()) { + yamlCode += indent(this.toYamlEngineOverridesForEngine(engineName), 2) + '\n'; + } + return yamlCode.trimEnd(); + } - results += `\n${toYamlComment(getYamlSectionWrapper(), styled, 2)}\n` - // Engines are guaranteed to have an overview, even if it's just generic text. - results += `${toYamlComment(engineConfigDescriptor.overview!, styled, 2)}\n`; - results += `${toYamlComment(getYamlSectionWrapper(), styled, 2)}\n` + private toYamlEngineOverridesForEngine(engineName: string): string { + const engineConfigDescriptor = this.userContext.core.getEngineConfigDescription(engineName); + const userEngineConfig = this.userContext.core.getEngineConfig(engineName); + const defaultEngineConfig = this.defaultContext.core.getEngineConfig(engineName); - results += indent(`${engineName}:`, 2) + '\n'; + let yamlCode: string = '\n' + + this.toYamlSectionHeadingComment(engineConfigDescriptor.overview!) + '\n' + + `${engineName}:\n`; // By fiat, the field description will always include, at minimum, an entry for "disable_engine", so we can // assume that the object is not undefined. for (const configField of Object.keys(engineConfigDescriptor.fieldDescriptions!)) { const fieldDescription = engineConfigDescriptor.fieldDescriptions![configField]; - const defaultFieldValue = defaultEngineConfig[configField] ?? null; - const userFieldValue = userEngineConfig[configField] ?? defaultFieldValue; + const defaultValue = defaultEngineConfig[configField] ?? null; + const userValue = userEngineConfig[configField] ?? defaultValue; // Add a leading newline to visually break up the property from the previous one. - results += '\n' + toYamlComment(fieldDescription, styled, 4) + '\n'; - let fieldYaml = indent(`${yaml.dump({[configField]: userFieldValue})}`, 4); - if(JSON.stringify(userFieldValue) !== JSON.stringify(defaultFieldValue)) { - const comment = getMessage(BundleName.ConfigModel, 'template.modified-from', [JSON.stringify(defaultFieldValue)]); - fieldYaml = fieldYaml.replace('\n', ` ${toYamlComment(comment, styled)}\n`); - } - results += fieldYaml; + yamlCode += '\n' + + indent(this.toYamlComment(fieldDescription), 2) + '\n' + + indent(this.toYamlField(configField, userValue, defaultValue), 2) + '\n'; } + return yamlCode.trimEnd(); + } +} + +class PlainYamlFormatter extends YamlFormatter { + constructor(relevantEngines: Set, userContext: ConfigContext, defaultContext: ConfigContext) { + super(relevantEngines, userContext, defaultContext); + } + + protected toYamlComment(commentText: string): string { + return commentText.replace(/^.*/gm, s => `# ${s}`); + } +} + +class StyledYamlFormatter extends YamlFormatter { + constructor(relevantEngines: Set, userContext: ConfigContext, defaultContext: ConfigContext) { + super(relevantEngines, userContext, defaultContext); + } + + protected toYamlComment(commentText: string): string { + return commentText.replace(/^.*/gm, s => makeGrey(`# ${s}`)); } - return results; } +function looksLikeAPathValue(value: unknown) { + return typeof(value) === 'string' && !value.includes('\n') && value.includes(path.sep); +} diff --git a/test/fixtures/comparison-files/lib/actions/ConfigAction.test.ts/derivables-as-non-defaults/config_root.yml.goldfile b/test/fixtures/comparison-files/lib/actions/ConfigAction.test.ts/derivables-as-non-defaults/config_root.yml.goldfile index 05e5e45c1..c7af8e5af 100644 --- a/test/fixtures/comparison-files/lib/actions/ConfigAction.test.ts/derivables-as-non-defaults/config_root.yml.goldfile +++ b/test/fixtures/comparison-files/lib/actions/ConfigAction.test.ts/derivables-as-non-defaults/config_root.yml.goldfile @@ -1 +1 @@ -config_root: __DUMMY_CONFIG_ROOT__ +config_root: __DUMMY_CONFIG_ROOT__ # Modified from: __DUMMY_DEFAULT_CONFIG_ROOT__ diff --git a/test/fixtures/comparison-files/lib/actions/ConfigAction.test.ts/derivables-as-non-defaults/log_folder.yml.goldfile b/test/fixtures/comparison-files/lib/actions/ConfigAction.test.ts/derivables-as-non-defaults/log_folder.yml.goldfile index d5585725c..dc1f1f644 100644 --- a/test/fixtures/comparison-files/lib/actions/ConfigAction.test.ts/derivables-as-non-defaults/log_folder.yml.goldfile +++ b/test/fixtures/comparison-files/lib/actions/ConfigAction.test.ts/derivables-as-non-defaults/log_folder.yml.goldfile @@ -1 +1 @@ -log_folder: __DUMMY_LOG_FOLDER__ +log_folder: __DUMMY_LOG_FOLDER__ # Modified from: __DUMMY_DEFAULT_LOG_FOLDER__ diff --git a/test/lib/actions/ConfigAction.test.ts b/test/lib/actions/ConfigAction.test.ts index 85f64b0d0..dba194161 100644 --- a/test/lib/actions/ConfigAction.test.ts +++ b/test/lib/actions/ConfigAction.test.ts @@ -72,9 +72,10 @@ describe('ConfigAction tests', () => { const output = await runActionAndGetDisplayedConfig(dependencies, ['all']); // ==== ASSERTIONS ==== + const defaultConfig = CodeAnalyzerConfig.withDefaults(); const goldFileContents = (await readGoldFile(path.join(PATH_TO_COMPARISON_DIR, 'derivables-as-defaults', `${prop}.yml.goldfile`))) - .replaceAll('__DUMMY_CONFIG_ROOT__', CodeAnalyzerConfig.withDefaults().getConfigRoot()) - .replaceAll('__DUMMY_LOG_FOLDER__', CodeAnalyzerConfig.withDefaults().getLogFolder()); + .replaceAll('__DUMMY_CONFIG_ROOT__', JSON.stringify(defaultConfig.getConfigRoot())) + .replaceAll('__DUMMY_LOG_FOLDER__', JSON.stringify(defaultConfig.getLogFolder())); expect(output).toContain(goldFileContents); }); @@ -209,9 +210,10 @@ describe('ConfigAction tests', () => { const output = await runActionAndGetDisplayedConfig(dependencies, ['all']); // ==== ASSERTIONS ==== + const defaultConfig = CodeAnalyzerConfig.withDefaults(); const goldFileContents = (await readGoldFile(path.join(PATH_TO_COMPARISON_DIR, 'derivables-as-defaults', `${prop}.yml.goldfile`))) - .replaceAll('__DUMMY_CONFIG_ROOT__', CodeAnalyzerConfig.withDefaults().getConfigRoot()) - .replaceAll('__DUMMY_LOG_FOLDER__', CodeAnalyzerConfig.withDefaults().getLogFolder()); + .replaceAll('__DUMMY_CONFIG_ROOT__', JSON.stringify(defaultConfig.getConfigRoot())) + .replaceAll('__DUMMY_LOG_FOLDER__', JSON.stringify(defaultConfig.getLogFolder())); expect(output).toContain(goldFileContents); }); @@ -228,9 +230,10 @@ describe('ConfigAction tests', () => { const output = await runActionAndGetDisplayedConfig(dependencies, ['all']); // ==== ASSERTIONS ==== + const defaultConfig = CodeAnalyzerConfig.withDefaults(); const goldFileContents = (await readGoldFile(path.join(PATH_TO_COMPARISON_DIR, 'derivables-as-defaults', `${prop}.yml.goldfile`))) - .replaceAll('__DUMMY_CONFIG_ROOT__', CodeAnalyzerConfig.withDefaults().getConfigRoot()) - .replaceAll('__DUMMY_LOG_FOLDER__', CodeAnalyzerConfig.withDefaults().getLogFolder()); + .replaceAll('__DUMMY_CONFIG_ROOT__', JSON.stringify(defaultConfig.getConfigRoot())) + .replaceAll('__DUMMY_LOG_FOLDER__', JSON.stringify(defaultConfig.getLogFolder())); expect(output).toContain(goldFileContents); }); @@ -249,9 +252,12 @@ describe('ConfigAction tests', () => { const output = await runActionAndGetDisplayedConfig(dependencies, ['all']); // ==== ASSERTIONS ==== + const defaultConfig = CodeAnalyzerConfig.withDefaults(); const goldFileContents = (await readGoldFile(path.join(PATH_TO_COMPARISON_DIR, 'derivables-as-non-defaults', `${prop}.yml.goldfile`))) - .replaceAll('__DUMMY_CONFIG_ROOT__', parentOfCurrentDirectory) - .replaceAll('__DUMMY_LOG_FOLDER__', parentOfCurrentDirectory); + .replace('__DUMMY_CONFIG_ROOT__', parentOfCurrentDirectory) + .replace('__DUMMY_LOG_FOLDER__', parentOfCurrentDirectory) + .replace('__DUMMY_DEFAULT_CONFIG_ROOT__', JSON.stringify(defaultConfig.getConfigRoot())) + .replace('__DUMMY_DEFAULT_LOG_FOLDER__', JSON.stringify(defaultConfig.getLogFolder())) expect(output).toContain(goldFileContents); }); From a8788f55ada4daf07fd3f81de09337ae0a771e60 Mon Sep 17 00:00:00 2001 From: Stephen Carter Date: Fri, 11 Oct 2024 09:28:00 -0400 Subject: [PATCH 06/14] NEW: Upgrade engines to 0.11.0 and core to 0.14.0 --- package.json | 12 +++++----- yarn.lock | 62 +++++++++++++++++++++++++++------------------------- 2 files changed, 38 insertions(+), 36 deletions(-) diff --git a/package.json b/package.json index 84ee336b6..8014f56ad 100644 --- a/package.json +++ b/package.json @@ -6,12 +6,12 @@ "bugs": "https://github.com/forcedotcom/sfdx-scanner/issues", "dependencies": { "@oclif/core": "^3.3.2", - "@salesforce/code-analyzer-core": "^0.13.2", - "@salesforce/code-analyzer-engine-api": "0.10.0", - "@salesforce/code-analyzer-eslint-engine": "0.10.0", - "@salesforce/code-analyzer-pmd-engine": "0.10.1", - "@salesforce/code-analyzer-regex-engine": "0.10.0", - "@salesforce/code-analyzer-retirejs-engine": "0.10.0", + "@salesforce/code-analyzer-core": "0.14.0", + "@salesforce/code-analyzer-engine-api": "0.11.0", + "@salesforce/code-analyzer-eslint-engine": "0.11.0", + "@salesforce/code-analyzer-pmd-engine": "0.11.0", + "@salesforce/code-analyzer-regex-engine": "0.11.0", + "@salesforce/code-analyzer-retirejs-engine": "0.11.0", "@salesforce/core": "^5", "@salesforce/sf-plugins-core": "^5.0.4", "@salesforce/ts-types": "^2.0.9", diff --git a/yarn.lock b/yarn.lock index 68963753f..aaa197990 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1577,35 +1577,35 @@ strip-ansi "6.0.1" ts-retry-promise "^0.8.1" -"@salesforce/code-analyzer-core@^0.13.2": - version "0.13.2" - resolved "https://registry.yarnpkg.com/@salesforce/code-analyzer-core/-/code-analyzer-core-0.13.2.tgz#c2c05d5d04a1e0a3369badad476333a80b3c92ca" - integrity sha512-SDIF3s5j4bFEOEldGgq0pUZKAKZhbwBCUQ6r5UznEmuoiawiLTEAuR7YgpAS1+upw/zfaOJg1gKoVydxDNF3Kg== +"@salesforce/code-analyzer-core@0.14.0": + version "0.14.0" + resolved "https://registry.yarnpkg.com/@salesforce/code-analyzer-core/-/code-analyzer-core-0.14.0.tgz#9831adcd336655422f52dc783e7d570394b5c926" + integrity sha512-81YP5LJkZMH62uFCkzaCK1Ce7fRK1FZLZq0ILNVPBCw+LdWrnOzBf9Edz4NnCfc3MRZsN1kk6qTncsrZiTX07A== dependencies: - "@salesforce/code-analyzer-engine-api" "0.10.0" + "@salesforce/code-analyzer-engine-api" "0.11.0" "@types/js-yaml" "^4.0.9" "@types/node" "^20.0.0" csv-stringify "^6.5.0" js-yaml "^4.1.0" xmlbuilder "^15.1.1" -"@salesforce/code-analyzer-engine-api@0.10.0": - version "0.10.0" - resolved "https://registry.yarnpkg.com/@salesforce/code-analyzer-engine-api/-/code-analyzer-engine-api-0.10.0.tgz#28675d8300c49bc6316cdd468ee42ea1f16ef15a" - integrity sha512-PyFJgGLOc7Wi+epOEtKg7MHQUlUhOCoKGOEXtcJWh5iaj+b1LCHxhwrN4jZvOPTN9NfB0fcVIH/5JvCdCdqkVA== +"@salesforce/code-analyzer-engine-api@0.11.0": + version "0.11.0" + resolved "https://registry.yarnpkg.com/@salesforce/code-analyzer-engine-api/-/code-analyzer-engine-api-0.11.0.tgz#70c3468d875a77822ef3a8a68b09e56b1966b17a" + integrity sha512-m5Kta0BbtxiLALQa2LvEa67eesUWJy8Rqr5er5cAUdG1JByH5p4RmGOVHyckp99h3JhbHeEAJx9j2c/ka4aj9g== dependencies: "@types/node" "^20.0.0" -"@salesforce/code-analyzer-eslint-engine@0.10.0": - version "0.10.0" - resolved "https://registry.yarnpkg.com/@salesforce/code-analyzer-eslint-engine/-/code-analyzer-eslint-engine-0.10.0.tgz#dabde01da4e0a37d97f0f6301b02b9e08ee94f94" - integrity sha512-wXCzSBuGsXvJ27b5Wrabkziurl4Pdj037bPcXf4EmLUFff5kv0P0ZhzDB2okW7yWtcQAG+UyVSCqTUHhy4Y5vQ== +"@salesforce/code-analyzer-eslint-engine@0.11.0": + version "0.11.0" + resolved "https://registry.yarnpkg.com/@salesforce/code-analyzer-eslint-engine/-/code-analyzer-eslint-engine-0.11.0.tgz#07526dc46eaa2eee4c4ac1a1fbc68c6d63f16494" + integrity sha512-44yuY8Rydj41HdXHA89UZC16MURryNqhfw/wwmXVHitPX2pTRXrUIzsijhlc8bN74g8ACyWQLpob5i9proa/QQ== dependencies: "@babel/core" "^7.24.7" "@babel/eslint-parser" "^7.24.7" "@eslint/js" "^8.57.0" "@lwc/eslint-plugin-lwc" "^1.8.0" - "@salesforce/code-analyzer-engine-api" "0.10.0" + "@salesforce/code-analyzer-engine-api" "0.11.0" "@salesforce/eslint-config-lwc" "^3.5.3" "@salesforce/eslint-plugin-lightning" "^1.0.0" "@types/eslint" "^8.56.10" @@ -1616,31 +1616,33 @@ eslint-plugin-import "^2.29.1" eslint-plugin-jest "^28.6.0" -"@salesforce/code-analyzer-pmd-engine@0.10.1": - version "0.10.1" - resolved "https://registry.yarnpkg.com/@salesforce/code-analyzer-pmd-engine/-/code-analyzer-pmd-engine-0.10.1.tgz#ec63c66f7d752188b1ef6240c9d9391a32c4ddbd" - integrity sha512-X8lFTMzq5Nk6xlaod0YDkXo9BXEIulJL1PH/Jq+GAB1gDRYjnETWchk/sIo9BnbHsw8mSCK9TgtEOlRq9DVz2Q== +"@salesforce/code-analyzer-pmd-engine@0.11.0": + version "0.11.0" + resolved "https://registry.yarnpkg.com/@salesforce/code-analyzer-pmd-engine/-/code-analyzer-pmd-engine-0.11.0.tgz#3d988ea30eabb3d8eef92588609b21b4941a1c35" + integrity sha512-rSSyqF/P1O7F9tfQprJN9xJ+jVO00Z2oXbF3JT1XA5S+OrhenWYwXpe9caOELQjl6PWmIu+rP81PQSdC3NStJg== dependencies: - "@salesforce/code-analyzer-engine-api" "0.10.0" + "@salesforce/code-analyzer-engine-api" "0.11.0" "@types/node" "^20.0.0" + "@types/semver" "^7.5.8" "@types/tmp" "^0.2.6" + semver "^7.6.3" tmp "^0.2.3" -"@salesforce/code-analyzer-regex-engine@0.10.0": - version "0.10.0" - resolved "https://registry.yarnpkg.com/@salesforce/code-analyzer-regex-engine/-/code-analyzer-regex-engine-0.10.0.tgz#8728a00be3117b21c0b1ac50d1eb140aed052459" - integrity sha512-e/WZYko1o1aFodnyLGdMQFSJQ/dqOosqgTpJJNd8ltrgVdLS/J9B2XyqyKBDRcTviLEcCJVNVQi7CRDIBFctIw== +"@salesforce/code-analyzer-regex-engine@0.11.0": + version "0.11.0" + resolved "https://registry.yarnpkg.com/@salesforce/code-analyzer-regex-engine/-/code-analyzer-regex-engine-0.11.0.tgz#fba48a2eca875397ae812d9bc740e462e57b08eb" + integrity sha512-rupCOcbyw9pNbIUpErp5lLf8kr/5chDEGExxlXVlUbArsERxB6jYN+boWFk0QUIjWv+nH2gJJd3RAreSsZTx4g== dependencies: - "@salesforce/code-analyzer-engine-api" "0.10.0" + "@salesforce/code-analyzer-engine-api" "0.11.0" "@types/node" "^20.0.0" isbinaryfile "^5.0.2" -"@salesforce/code-analyzer-retirejs-engine@0.10.0": - version "0.10.0" - resolved "https://registry.yarnpkg.com/@salesforce/code-analyzer-retirejs-engine/-/code-analyzer-retirejs-engine-0.10.0.tgz#62b521bb13af9a88ae2a5b0af08c44f64eac847f" - integrity sha512-SPbCFkdijPGoK8dsVIhEGSBlb27grahUWt7pGZrnFyhCgWmZ7hwmQ7FaSBBX7V8invV6VavvQh0SD+10ygoLxw== +"@salesforce/code-analyzer-retirejs-engine@0.11.0": + version "0.11.0" + resolved "https://registry.yarnpkg.com/@salesforce/code-analyzer-retirejs-engine/-/code-analyzer-retirejs-engine-0.11.0.tgz#c52872af8b62930b74d1742008326d1162479632" + integrity sha512-Dz8NBXye7VWFPOoyGTXdkHcUJJkGrGANGeWmKTZ5P+6/F8I7bxcKdyvuyRiAWD9ecRW4W/PS+BLMiGp57xYdUQ== dependencies: - "@salesforce/code-analyzer-engine-api" "0.10.0" + "@salesforce/code-analyzer-engine-api" "0.11.0" "@types/node" "^20.0.0" "@types/tmp" "^0.2.6" isbinaryfile "^5.0.2" @@ -2490,7 +2492,7 @@ dependencies: undici-types "~6.19.2" -"@types/semver@^7.5.4": +"@types/semver@^7.5.4", "@types/semver@^7.5.8": version "7.5.8" resolved "https://registry.yarnpkg.com/@types/semver/-/semver-7.5.8.tgz#8268a8c57a3e4abd25c165ecd36237db7948a55e" integrity sha512-I8EUhyrgfLrcTkzV3TSsGyl1tSuPrEDzr0yd5m90UgNxQkyDXULk3b6MlQqTCpZpNtWe1K0hzclnZkTcLBe2UQ== From 8be34e46f6b8cc160f08a84a350e539410c5b745 Mon Sep 17 00:00:00 2001 From: Stephen Carter Date: Fri, 11 Oct 2024 16:30:55 -0400 Subject: [PATCH 07/14] CHANGE: @W-16937192@: Force relative paths in config output when absolute path values are set with config_root --- .eslintrc.json | 3 +- .images/vscodeScreenshot.png | Bin 372650 -> 0 bytes src/lib/models/ConfigModel.ts | 31 ++++++++++-- ...onfigWithRelativePathScenario.yml.goldfile | 12 +++++ .../optional-input-config.yml | 4 ++ test/lib/actions/ConfigAction.test.ts | 45 +++++++++++++----- 6 files changed, 80 insertions(+), 15 deletions(-) delete mode 100644 .images/vscodeScreenshot.png create mode 100644 test/fixtures/comparison-files/lib/actions/ConfigAction.test.ts/override-configurations/StubEngine2_forConfigWithRelativePathScenario.yml.goldfile diff --git a/.eslintrc.json b/.eslintrc.json index 78e9f7e84..9ec49752a 100644 --- a/.eslintrc.json +++ b/.eslintrc.json @@ -12,7 +12,8 @@ "project": "./tsconfig.json" }, "rules": { - "@typescript-eslint/no-unused-vars": ["error", {"argsIgnorePattern": "^_"}] + "@typescript-eslint/no-unused-vars": ["error", {"argsIgnorePattern": "^_"}], + "@typescript-eslint/unbound-method": ["error", {"ignoreStatic": true}] }, "plugins": [ "@typescript-eslint", diff --git a/.images/vscodeScreenshot.png b/.images/vscodeScreenshot.png deleted file mode 100644 index 4b7206a47c4b343e68e420c3202122d0dc82348d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 372650 zcmagF1yr5Qt^kU=ySuyV#@)TRySqbix8m*;C{obOG}FJ_EigqOT8;DJpp$h{+lp^zGpio;>4X%v-2MFo+I zWWmc#7Xrd}@}Q`;1aXU?s2aF{(33j_wO7AxK6M`QJ*;g$9kzS`T7GdqfeJdAQcw)` z_yF}&7CE%zReT2p2`X}&1Of{mCIuy;pyi$(>FYx$x;uQI)WQ>Mjc+Zf`F)pL^)b1F z7$<244CF~PW7iSLlZ|TyGtZO4Cop;We=S$$7`JEwdUj3}@a-j&c9geW*hEO5`=eGagWV~Q6LHmY~CaC~c&`c6H{`;ZX?kT170A||W zZ$6p^jTpf{VxGD&9${*?*n3Ev3 z1(2=*lxzTbHRwb){-eKOHF)(m&)xVRGeQ_kpiV;kTwt+*EQ-+bL0%3RS&(O2B+W2( z{=5cA(f&jJu*KanOo$jgEMP)h;UG%H$dWM1{&PgS;lSx4Zr^D4z`=#{k#ME`mGkK= z7?Tjug-jLE=YV_>U4_;2wWpA7kuv2t8QGLKC-S zxghzWQhVnwv76yLVKxIK3>aQf^aO#?pv5G9<*_NkCBcv2qX$QdIx6xid6uH6vX^1c zhx`^<7jaZ_E=9DU%ZN-7x6YHBj6hK45gLL0*BpfQ%a+(_=S;VW423UA?|Ud`jj9 z9M%`HHRoW)<&KA%8aO(DKa}00+XKH_>~L{K){dr!X&;B!OSx5dMgA!MYWm9b6{kyf zi9b_H5iA?P-@3tOj3*k&`3Vr~&(B0tX2gxPLg(pn3r_|@xr`*Ka z1QAHq58KQZ$m#O$ivPg)hz61uRO*%|(jk)As_$kGkfMpCk!Z-TE%pAvK6f%ljgwL= z>Rd1|b!};G30m(d1T5q$B+vubY4A<3cCbXSK%`{UQbd0w9)=~RCrKoR8u}fY93~&Nm#&L^G=&+>Aj&8z zFXO!=9)>#l1Ii}DSFLt^A0c7oULg{to#uY_2yUs?qVFcrCN+Dezci`Kl3G;jRcq$Z ze_+l8&U~41ocTV}F>}MR!xGE#gGG%6lx4J5y0)`+xt6|GVK3YXu0^uNsD+@#)05hh z^NH?>;zEC zRJvjWI$20fV_uM5x z)id%leL--_i55*0$EMuH|nh%w-i^MAZ|y+= zeQsfP648ZGyM{x|l+ctZDnYaDb@4X{hkBT`QB5-Gqpa#`>ao_TxTgoFZvD1Cg}sBp zF=yx9>%ZQ@Ur-Ur=$Bq`!K6oO+x93kY5c-l$B_ zW^F_uFC#yoa7vU-h@}{J*5PXSrFea?7mJ2-eYl)kmh~+6TQtK{%X8($rRx?J`xP4+ z`)yUV34e(r+cNiQ-R;(G;Xa2hy@F2@mAAr8^(@#e^z3w*youI)an3Gm{mwhw+vwpn zsWMwP>CLX{W8)`YMAkZY;wG2RY|?1r=r88xI1+3mR+?5WDp2&M-LQ*4Aof)chezn(5WiRo$C;PhAQWhOv zHTYXUc=LHf{%q6f^6YybY~U~Nq~#p9(`z?%D!<{_b$h|@P9B%bwtj;L$5}>n{P}KDAZEuzbCwomi)*%Ogbc=Ri1@sZDqwY zKQo8axA9`WW4YSD);X_w?fTNL{PnKSKBen!5^_wT!yY0jvV% zE@o=#^+r^C)kpW^)Wh`0?yb`^5G-< zZ4Fp;&W8R;oOJBmtgas-3uFYvh5DBbX(0a-kS$hoQ`4vZk�jlcg{q7s|KI<@bRT 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�yrmch!c8xKO`EuYvP#EzcGx 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
-?H6%v!mdPc>eTACE3|XF)lV5kF1!A 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%0Dlr_h{9<`J1Vv$l3NtH) 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 replaceAbsolutePathsWithRelativePathsWherePossible(item, parentFolder)); + } else if (typeof value === 'object' && value !== null) { + // If value is an object, recursively process each key-value pair + const updatedObject: object = {}; + for (const key in value) { + updatedObject[key] = replaceAbsolutePathsWithRelativePathsWherePossible(value[key], parentFolder); + } + return updatedObject; + } + // Return the value unchanged if it's a number, boolean, or null + return value; +} diff --git a/test/fixtures/comparison-files/lib/actions/ConfigAction.test.ts/override-configurations/StubEngine2_forConfigWithRelativePathScenario.yml.goldfile b/test/fixtures/comparison-files/lib/actions/ConfigAction.test.ts/override-configurations/StubEngine2_forConfigWithRelativePathScenario.yml.goldfile new file mode 100644 index 000000000..37775d47a --- /dev/null +++ b/test/fixtures/comparison-files/lib/actions/ConfigAction.test.ts/override-configurations/StubEngine2_forConfigWithRelativePathScenario.yml.goldfile @@ -0,0 +1,12 @@ + # ====================================================================== + # Some overview for StubEngine2 + # ====================================================================== + StubEngine2: + + # Whether to turn off the 'StubEngine2' engine so that it is not included when running Code Analyzer commands. + disable_engine: false + + # Some description for top_field + top_field: # Modified from: null + sub_field: + - optional-input-config.yml \ No newline at end of file diff --git a/test/fixtures/example-workspaces/ConfigAction.test.ts/optional-input-config.yml b/test/fixtures/example-workspaces/ConfigAction.test.ts/optional-input-config.yml index eb4dee090..b3dae7640 100644 --- a/test/fixtures/example-workspaces/ConfigAction.test.ts/optional-input-config.yml +++ b/test/fixtures/example-workspaces/ConfigAction.test.ts/optional-input-config.yml @@ -12,6 +12,10 @@ engines: SubProperty2: false Property5: ['bada-bing', 'bada-boom'] # Property6 is not set, so it should default to null + StubEngine2: + top_field: + sub_field: + - __DUMMY_STUBENGINE2_SUBFIELD__ StubEngine3: disable_engine: true rules: diff --git a/test/lib/actions/ConfigAction.test.ts b/test/lib/actions/ConfigAction.test.ts index dba194161..12c033201 100644 --- a/test/lib/actions/ConfigAction.test.ts +++ b/test/lib/actions/ConfigAction.test.ts @@ -14,10 +14,12 @@ import {ConfigStyledYamlViewer} from '../../../lib/lib/viewers/ConfigViewer'; import {SpyConfigWriter} from '../../stubs/SpyConfigWriter'; import {DisplayEventType, SpyDisplay} from '../../stubs/SpyDisplay'; -const PATH_TO_EXAMPLE_WORKSPACE = path.join(__dirname, '..', '..', 'fixtures', 'example-workspaces', 'ConfigAction.test.ts'); +const PATH_TO_FIXTURES = path.join(__dirname, '..', '..', 'fixtures'); + +const PATH_TO_EXAMPLE_WORKSPACE = path.join(PATH_TO_FIXTURES, 'example-workspaces', 'ConfigAction.test.ts'); describe('ConfigAction tests', () => { - const PATH_TO_COMPARISON_DIR = path.join(__dirname, '..', '..', 'fixtures', 'comparison-files', 'lib', 'actions', 'ConfigAction.test.ts'); + const PATH_TO_COMPARISON_DIR = path.join(PATH_TO_FIXTURES, 'comparison-files', 'lib', 'actions', 'ConfigAction.test.ts'); let spyDisplay: SpyDisplay; let dependencies: ConfigDependencies; @@ -26,7 +28,7 @@ describe('ConfigAction tests', () => { describe('When there IS NOT an existing config...', () => { - beforeEach(async () => { + beforeEach(() => { spyDisplay = new SpyDisplay(); dependencies = { logEventListeners: [], @@ -148,7 +150,7 @@ describe('ConfigAction tests', () => { let stubConfigFactory: AlternativeStubCodeAnalyzerConfigFactory; - beforeEach(async () => { + beforeEach(() => { stubConfigFactory = new AlternativeStubCodeAnalyzerConfigFactory(); spyDisplay = new SpyDisplay(); dependencies = { @@ -362,11 +364,24 @@ describe('ConfigAction tests', () => { const goldFileContents = await readGoldFile(path.join(PATH_TO_COMPARISON_DIR, 'override-configurations', `${ruleName}.yml.goldfile`)); expect(output).toContain(goldFileContents); }); + + it('If config is provided with relative path to config_root, then it remains relative in config output even though core makes it absolute for engines', async () => { + // ==== SETUP ==== + stubConfigFactory.setDummyConfigRoot(PATH_TO_EXAMPLE_WORKSPACE); + stubConfigFactory.setDummyLogFolder('null'); + + // ==== TESTED BEHAVIOR ==== + const output = await runActionAndGetDisplayedConfig(dependencies, ['Stub2Rule1']); + + // ==== ASSERTIONS ==== + const goldFileContents = await readGoldFile(path.join(PATH_TO_COMPARISON_DIR, 'override-configurations', `StubEngine2_forConfigWithRelativePathScenario.yml.goldfile`)); + expect(output).toContain(goldFileContents); + }); }); }); describe('File Creation', () => { - beforeEach(async () => { + beforeEach(() => { spyDisplay = new SpyDisplay(); dependencies = { logEventListeners: [], @@ -397,11 +412,12 @@ describe('ConfigAction tests', () => { return fsp.readFile(goldFilePath, {encoding: 'utf-8'}); } - async function runActionAndGetDisplayedConfig(dependencies: ConfigDependencies, ruleSelectors: string[]): Promise { + async function runActionAndGetDisplayedConfig(dependencies: ConfigDependencies, ruleSelectors: string[], configFile?: string): Promise { // ==== SETUP ==== const action = ConfigAction.createAction(dependencies); const input: ConfigInput = { - 'rule-selector': ruleSelectors + 'rule-selector': ruleSelectors, + 'config-file': configFile }; // ==== TESTED BEHAVIOR ==== @@ -436,11 +452,13 @@ class AlternativeStubCodeAnalyzerConfigFactory implements CodeAnalyzerConfigFact } public create(): CodeAnalyzerConfig { - const rawConfigFileContents = fs.readFileSync(path.join(PATH_TO_EXAMPLE_WORKSPACE, 'optional-input-config.yml'), {encoding: 'utf-8'}); + const rawConfigFileContents = fs.readFileSync(path.join(PATH_TO_EXAMPLE_WORKSPACE, 'optional-input-config.yml'), 'utf-8'); const validatedConfigFileContents = rawConfigFileContents .replaceAll('__DUMMY_CONFIG_ROOT__', this.dummyConfigRoot) - .replaceAll('__DUMMY_LOG_FOLDER__', this.dummyLogFolder); - return CodeAnalyzerConfig.fromYamlString(validatedConfigFileContents, process.cwd()); + .replaceAll('__DUMMY_LOG_FOLDER__', this.dummyLogFolder) + .replaceAll('__DUMMY_STUBENGINE2_SUBFIELD__', this.dummyConfigRoot && this.dummyConfigRoot !== 'null' ? + path.join(this.dummyConfigRoot, 'optional-input-config.yml') : 'dummy'); + return CodeAnalyzerConfig.fromYamlString(validatedConfigFileContents, process.cwd()); } } @@ -467,8 +485,13 @@ class StubEnginePlugin extends EngineApi.EnginePluginV1 { 'Property5': 'This is the description for Property5', 'Property6': 'This is the description for Property6' } + }, + StubEngine2: { + overview: 'Some overview for StubEngine2', + fieldDescriptions: { + 'top_field': 'Some description for top_field' + } } - // StubEngine2 has no overview and no documented properties. // StubEngine3 also has no overview or documented properties. } From 6c51d6c0b06752363b51c547c122d9e45bf0f423 Mon Sep 17 00:00:00 2001 From: Stephen Carter Date: Mon, 21 Oct 2024 11:50:32 -0400 Subject: [PATCH 08/14] CHANGE: @W-16606013@: Update core to 0.14.1 and plugins to 0.11.1 --- package.json | 12 +++++------ yarn.lock | 58 ++++++++++++++++++++++++++-------------------------- 2 files changed, 35 insertions(+), 35 deletions(-) diff --git a/package.json b/package.json index 8014f56ad..4cc927f92 100644 --- a/package.json +++ b/package.json @@ -6,12 +6,12 @@ "bugs": "https://github.com/forcedotcom/sfdx-scanner/issues", "dependencies": { "@oclif/core": "^3.3.2", - "@salesforce/code-analyzer-core": "0.14.0", - "@salesforce/code-analyzer-engine-api": "0.11.0", - "@salesforce/code-analyzer-eslint-engine": "0.11.0", - "@salesforce/code-analyzer-pmd-engine": "0.11.0", - "@salesforce/code-analyzer-regex-engine": "0.11.0", - "@salesforce/code-analyzer-retirejs-engine": "0.11.0", + "@salesforce/code-analyzer-core": "0.14.1", + "@salesforce/code-analyzer-engine-api": "0.11.1", + "@salesforce/code-analyzer-eslint-engine": "0.11.1", + "@salesforce/code-analyzer-pmd-engine": "0.11.1", + "@salesforce/code-analyzer-regex-engine": "0.11.1", + "@salesforce/code-analyzer-retirejs-engine": "0.11.1", "@salesforce/core": "^5", "@salesforce/sf-plugins-core": "^5.0.4", "@salesforce/ts-types": "^2.0.9", diff --git a/yarn.lock b/yarn.lock index aaa197990..8869ae8af 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1577,35 +1577,35 @@ strip-ansi "6.0.1" ts-retry-promise "^0.8.1" -"@salesforce/code-analyzer-core@0.14.0": - version "0.14.0" - resolved "https://registry.yarnpkg.com/@salesforce/code-analyzer-core/-/code-analyzer-core-0.14.0.tgz#9831adcd336655422f52dc783e7d570394b5c926" - integrity sha512-81YP5LJkZMH62uFCkzaCK1Ce7fRK1FZLZq0ILNVPBCw+LdWrnOzBf9Edz4NnCfc3MRZsN1kk6qTncsrZiTX07A== +"@salesforce/code-analyzer-core@0.14.1": + version "0.14.1" + resolved "https://registry.yarnpkg.com/@salesforce/code-analyzer-core/-/code-analyzer-core-0.14.1.tgz#6b14e12b1bbfc32ea4401b03f86117330431c952" + integrity sha512-kTgrGAsDxpeV4FU+V0i91h9byvD6tECJHfX0lKv/6bTfDwNJEuLFypb1t/g+w8qfIymRLq7IYvJ+wFjYAJTdDA== dependencies: - "@salesforce/code-analyzer-engine-api" "0.11.0" + "@salesforce/code-analyzer-engine-api" "0.11.1" "@types/js-yaml" "^4.0.9" "@types/node" "^20.0.0" csv-stringify "^6.5.0" js-yaml "^4.1.0" xmlbuilder "^15.1.1" -"@salesforce/code-analyzer-engine-api@0.11.0": - version "0.11.0" - resolved "https://registry.yarnpkg.com/@salesforce/code-analyzer-engine-api/-/code-analyzer-engine-api-0.11.0.tgz#70c3468d875a77822ef3a8a68b09e56b1966b17a" - integrity sha512-m5Kta0BbtxiLALQa2LvEa67eesUWJy8Rqr5er5cAUdG1JByH5p4RmGOVHyckp99h3JhbHeEAJx9j2c/ka4aj9g== +"@salesforce/code-analyzer-engine-api@0.11.1": + version "0.11.1" + resolved "https://registry.yarnpkg.com/@salesforce/code-analyzer-engine-api/-/code-analyzer-engine-api-0.11.1.tgz#c4e1ad9375263d1daf70cfef2118b11013ce4b4a" + integrity sha512-RW2OU3dHNL+ecYQ5B1TSmKCOFXlruT1M4ATG0pTp3E9wYvz0oah8wWeaFPRT37HNn+Sf7SNYpkbIVDZYwV46iw== dependencies: "@types/node" "^20.0.0" -"@salesforce/code-analyzer-eslint-engine@0.11.0": - version "0.11.0" - resolved "https://registry.yarnpkg.com/@salesforce/code-analyzer-eslint-engine/-/code-analyzer-eslint-engine-0.11.0.tgz#07526dc46eaa2eee4c4ac1a1fbc68c6d63f16494" - integrity sha512-44yuY8Rydj41HdXHA89UZC16MURryNqhfw/wwmXVHitPX2pTRXrUIzsijhlc8bN74g8ACyWQLpob5i9proa/QQ== +"@salesforce/code-analyzer-eslint-engine@0.11.1": + version "0.11.1" + resolved "https://registry.yarnpkg.com/@salesforce/code-analyzer-eslint-engine/-/code-analyzer-eslint-engine-0.11.1.tgz#f640324b05411404c6907e224ca482d3b57564e0" + integrity sha512-wOuY8nAtBnnkH2Bi8kz3PlJr97Mc6fQgKzOnUJR6fC3AcdLTz8rZ9YWR8yQdi9ASEPfGQq9ZyA20PDEzJMWezQ== dependencies: "@babel/core" "^7.24.7" "@babel/eslint-parser" "^7.24.7" "@eslint/js" "^8.57.0" "@lwc/eslint-plugin-lwc" "^1.8.0" - "@salesforce/code-analyzer-engine-api" "0.11.0" + "@salesforce/code-analyzer-engine-api" "0.11.1" "@salesforce/eslint-config-lwc" "^3.5.3" "@salesforce/eslint-plugin-lightning" "^1.0.0" "@types/eslint" "^8.56.10" @@ -1616,33 +1616,33 @@ eslint-plugin-import "^2.29.1" eslint-plugin-jest "^28.6.0" -"@salesforce/code-analyzer-pmd-engine@0.11.0": - version "0.11.0" - resolved "https://registry.yarnpkg.com/@salesforce/code-analyzer-pmd-engine/-/code-analyzer-pmd-engine-0.11.0.tgz#3d988ea30eabb3d8eef92588609b21b4941a1c35" - integrity sha512-rSSyqF/P1O7F9tfQprJN9xJ+jVO00Z2oXbF3JT1XA5S+OrhenWYwXpe9caOELQjl6PWmIu+rP81PQSdC3NStJg== +"@salesforce/code-analyzer-pmd-engine@0.11.1": + version "0.11.1" + resolved "https://registry.yarnpkg.com/@salesforce/code-analyzer-pmd-engine/-/code-analyzer-pmd-engine-0.11.1.tgz#8c6be62ad172ed1650149fc55840bac7490bd4df" + integrity sha512-hIbqT+PBhNiRu0NbYs66aNw8ML+PtvB0wneQ7IvOErvFhznL6RY7AokXix3FxMkCk4xyBdAC1s080m+QmojCug== dependencies: - "@salesforce/code-analyzer-engine-api" "0.11.0" + "@salesforce/code-analyzer-engine-api" "0.11.1" "@types/node" "^20.0.0" "@types/semver" "^7.5.8" "@types/tmp" "^0.2.6" semver "^7.6.3" tmp "^0.2.3" -"@salesforce/code-analyzer-regex-engine@0.11.0": - version "0.11.0" - resolved "https://registry.yarnpkg.com/@salesforce/code-analyzer-regex-engine/-/code-analyzer-regex-engine-0.11.0.tgz#fba48a2eca875397ae812d9bc740e462e57b08eb" - integrity sha512-rupCOcbyw9pNbIUpErp5lLf8kr/5chDEGExxlXVlUbArsERxB6jYN+boWFk0QUIjWv+nH2gJJd3RAreSsZTx4g== +"@salesforce/code-analyzer-regex-engine@0.11.1": + version "0.11.1" + resolved "https://registry.yarnpkg.com/@salesforce/code-analyzer-regex-engine/-/code-analyzer-regex-engine-0.11.1.tgz#e34974f356bc20c1afd8c9d6834fb4dcdc461fc7" + integrity sha512-KVdg44ENoIfripHIqVwmf2UemlAtQGQOw4Kn0fuqrjOXFbKATjKrJsawZZhyoKtSdejWt58ni1bjCvYesej93g== dependencies: - "@salesforce/code-analyzer-engine-api" "0.11.0" + "@salesforce/code-analyzer-engine-api" "0.11.1" "@types/node" "^20.0.0" isbinaryfile "^5.0.2" -"@salesforce/code-analyzer-retirejs-engine@0.11.0": - version "0.11.0" - resolved "https://registry.yarnpkg.com/@salesforce/code-analyzer-retirejs-engine/-/code-analyzer-retirejs-engine-0.11.0.tgz#c52872af8b62930b74d1742008326d1162479632" - integrity sha512-Dz8NBXye7VWFPOoyGTXdkHcUJJkGrGANGeWmKTZ5P+6/F8I7bxcKdyvuyRiAWD9ecRW4W/PS+BLMiGp57xYdUQ== +"@salesforce/code-analyzer-retirejs-engine@0.11.1": + version "0.11.1" + resolved "https://registry.yarnpkg.com/@salesforce/code-analyzer-retirejs-engine/-/code-analyzer-retirejs-engine-0.11.1.tgz#2a12a97626f32ff4841182f4969361ac570d9f81" + integrity sha512-nCaU7Sg24EZ/l8RljCjQEHccs7FgM5+t5oXVYrVU0/UoOuMHjgZvELsit02WD63K65J0vAQkBEsgRO4s7mLtlQ== dependencies: - "@salesforce/code-analyzer-engine-api" "0.11.0" + "@salesforce/code-analyzer-engine-api" "0.11.1" "@types/node" "^20.0.0" "@types/tmp" "^0.2.6" isbinaryfile "^5.0.2" From 9b7d80c9b7733e292dd310c5a16c66cfabd260dc Mon Sep 17 00:00:00 2001 From: Joshua Feingold Date: Fri, 18 Oct 2024 14:41:34 -0500 Subject: [PATCH 09/14] NEW @W-17014756@ Introduced functional smoke tests --- smoke-tests/smoke-test-generator.js | 85 ++++++++++++++++++- smoke-tests/smoke-test.cmd | 55 +++++++++++- smoke-tests/smoke-test.sh | 55 +++++++++++- .../config-files/existing-config.yml | 20 +++++ .../workspace-with-apex-files/MyClass1.cls | 7 ++ .../workspace-with-apex-files/MyClass2.cls | 5 ++ .../workspace-with-apex-files/MyClass3.cls | 7 ++ .../workspace-with-mixed-files/MyClass1.cls | 7 ++ .../workspace-with-mixed-files/my-script.ts | 6 ++ 9 files changed, 237 insertions(+), 10 deletions(-) create mode 100644 smoke-tests/test-data/config-files/existing-config.yml create mode 100644 smoke-tests/test-data/workspace-with-apex-files/MyClass1.cls create mode 100644 smoke-tests/test-data/workspace-with-apex-files/MyClass2.cls create mode 100644 smoke-tests/test-data/workspace-with-apex-files/MyClass3.cls create mode 100644 smoke-tests/test-data/workspace-with-mixed-files/MyClass1.cls create mode 100644 smoke-tests/test-data/workspace-with-mixed-files/my-script.ts diff --git a/smoke-tests/smoke-test-generator.js b/smoke-tests/smoke-test-generator.js index eb9190c2c..954ed7e77 100644 --- a/smoke-tests/smoke-test-generator.js +++ b/smoke-tests/smoke-test-generator.js @@ -1,4 +1,5 @@ const fs = require('fs'); +const path = require('path'); console.log('Switching to smoke test directory'); process.chdir(__dirname); @@ -13,7 +14,7 @@ function generateScriptHeader(isBash) { // All scripts should start with the same boilerplate disclaimer. header += `${cmt} Auto-generated on ${new Date(Date.now()).toDateString()} -${cmt} This script WILL EVENTUALLY run a smoke test of the entire plugin by running a series of commands that collectively +${cmt} This script performs a smoke test of the entire plugin by running a series of commands that collectively ${cmt} hit a vertical slice of all major features. If they all succeed, then we can reasonably assume that the plugin is ${cmt} approximately stable. ${cmt} DO NOT EDIT THIS SCRIPT DIRECTLY! INSTEAD, MAKE CHANGES IN ./smoke-tests/smoke-test-generator.js AND RERUN THAT @@ -31,11 +32,87 @@ ${cmt} SCRIPT FROM THE PROJECT ROOT!\n`; } function generateScriptBody(isBash, delim) { + const exeName = isBash ? '$EXE_NAME' : '%EXE_NAME%'; + + const commands = [ - // Log an explainer that since we're in the Alpha stage, we don't have a fully fleshed out smoke test. - `echo "At this point in the alpha, the smoke tests are no-ops and it is fine."` - ] + // Log a header. + `echo "====== SETUP FOR SMOKE TESTS ======"`, + // Delete the smoke test result directory if it already exists + `echo "====== Delete a a pre-existing smoke-test-results directory ======"`, + isBash ? 'rm -rf smoke-test-results' : 'if exist smoke-test-results rmdir /s /q smoke-test-results || exit /b 1', + // Create the output directory + `echo "====== Create smoke-test-results directory ======"`, + isBash ? 'mkdir -p smoke-test-results' : 'if not exist smoke-test-results mkdir smoke-test-results || exit /b 1', + `\n`, + `echo "====== SMOKE TESTS FOR CONFIG COMMAND ======"`, + // Show the default configuration for all engines + `echo "====== Show default config for all engines ======"`, + `${exeName} code-analyzer config`, + // Show the default configuration for only one engine + `echo "====== Show default config for PMD only ======"`, + `${exeName} code-analyzer config -r pmd`, + // Write the default config for PMD to a file + `echo "====== Write PMD's default config to a file ======"`, + `${exeName} code-analyzer config -r pmd -f ${path.join('.', 'smoke-test-results', 'pmd-only-config.yml')}`, + // Show the configuration from the config file we just created + `echo "====== Show configuration from last step's output file ======"`, + `${exeName} code-analyzer config -c ${path.join('.', 'smoke-test-results', 'pmd-only-config.yml')}`, + `echo "====== Show configuration from pre-existing config file ======"`, + `${exeName} code-analyzer config -c ${path.join('.', 'smoke-tests', 'test-data', 'config-files', 'existing-config.yml')}`, + `\n`, + `echo "====== SMOKE TESTS FOR RULES COMMAND ======"`, + // List all rules + `echo "====== List all rules ======"`, + `${exeName} code-analyzer rules`, + // List only rules from ESLint + `echo "====== List ESLint rules only ======"`, + `${exeName} code-analyzer rules -r eslint`, + // List only rules from RetireJS + `echo "====== List RetireJS rules only ======"`, + `${exeName} code-analyzer rules -r retire-js`, + // List only rules that are relevant to a provided workspace + `echo "====== List rules relevant to apex-only workspace ======"`, + `${exeName} code-analyzer rules -w ${path.join('.', 'smoke-tests', 'test-data', 'workspace-with-apex-files')}`, + // List only rules that match nonsensical selector (i.e., list no rules) + `echo "====== List rules matching a nonsensical selector (i.e. list no rules) ======"`, + `${exeName} code-analyzer rules -r asdfasdfasdf`, + // List one rule using a config with overrides + `echo "====== List rule overridden in config file ======"`, + `${exeName} code-analyzer rules -r no-unsafe-assignment -c ${path.join('.', 'smoke-tests', 'test-data', 'config-files', 'existing-config.yml')}`, + '\n', + `echo "====== SMOKE TESTS FOR RUN COMMAND ======"`, + // Run all rules against a folder + `echo "====== Run all rules against a folder ======"`, + `${exeName} code-analyzer run -w ${path.join('.', 'smoke-tests', 'test-data', 'workspace-with-mixed-files')}`, + // Run all rules against a file + `echo "====== Run all rules against a file ======"`, + `${exeName} code-analyzer run -w ${path.join('.', 'smoke-tests', 'test-data', 'workspace-with-mixed-files', 'my-script.ts')}`, + // Run all rules against a folder and write the output to some files + `echo "====== Run all rules against a folder and write to outfiles ======"`, + `${exeName} code-analyzer run -w ${path.join('.', 'smoke-tests', 'test-data', 'workspace-with-apex-files')} -f ${path.join('.', 'smoke-test-results', 'outfile.json')} -f ${path.join('.', 'smoke-test-results', 'outfile.html')}`, + // Run a selection of rules against a folder + `echo "====== Run a selection of rules against a folder ======"`, + `${exeName} code-analyzer run -r regex -w ${path.join('.', 'smoke-tests', 'test-data', 'workspace-with-mixed-files')}`, + // Run rules using a config file with overrides + `echo "====== Run rules using a config file with overrides ======"`, + `${exeName} code-analyzer run -c ${path.join('.', 'smoke-tests', 'test-data', 'config-files', 'existing-config.yml')} -w ${path.join('.', 'smoke-tests', 'test-data', 'workspace-with-mixed-files')}`, + '\n', + `echo "====== CONCLUSION ======"`, + `echo "If you are seeing this message, the smoke tests ran successfully, and all is (approximately) well"` + ]; + + // In a cmd script, you need to prepend plugin commands with "call" in order to make sure that the script continues, + // and you need to postfix it with another snippet to make it actually exist when an error is encountered. + if (!isBash) { + for (let i = 0; i < commands.length; i++) { + if (commands[i].startsWith(exeName)) { + commands[i] = `call ${commands[i]} || exit /b 1` + } + } + } + // Combine the commands and return the script body. return commands.join('\n'); } diff --git a/smoke-tests/smoke-test.cmd b/smoke-tests/smoke-test.cmd index 0e5350764..7cead315d 100755 --- a/smoke-tests/smoke-test.cmd +++ b/smoke-tests/smoke-test.cmd @@ -1,9 +1,58 @@ @echo off -REM Auto-generated on Tue Aug 27 2024 -REM This script WILL EVENTUALLY run a smoke test of the entire plugin by running a series of commands that collectively +REM Auto-generated on Fri Oct 18 2024 +REM This script performs a smoke test of the entire plugin by running a series of commands that collectively REM hit a vertical slice of all major features. If they all succeed, then we can reasonably assume that the plugin is REM approximately stable. REM DO NOT EDIT THIS SCRIPT DIRECTLY! INSTEAD, MAKE CHANGES IN ./smoke-tests/smoke-test-generator.js AND RERUN THAT REM SCRIPT FROM THE PROJECT ROOT! SET EXE_NAME=%1 -echo "At this point in the alpha, the smoke tests are no-ops and it is fine." \ No newline at end of file +echo "====== SETUP FOR SMOKE TESTS ======" +echo "====== Delete a a pre-existing smoke-test-results directory ======" +if exist smoke-test-results rmdir /s /q smoke-test-results || exit /b 1 +echo "====== Create smoke-test-results directory ======" +if not exist smoke-test-results mkdir smoke-test-results || exit /b 1 + + +echo "====== SMOKE TESTS FOR CONFIG COMMAND ======" +echo "====== Show default config for all engines ======" +call %EXE_NAME% code-analyzer config || exit /b 1 +echo "====== Show default config for PMD only ======" +call %EXE_NAME% code-analyzer config -r pmd || exit /b 1 +echo "====== Write PMD's default config to a file ======" +call %EXE_NAME% code-analyzer config -r pmd -f smoke-test-results/pmd-only-config.yml || exit /b 1 +echo "====== Show configuration from last step's output file ======" +call %EXE_NAME% code-analyzer config -c smoke-test-results/pmd-only-config.yml || exit /b 1 +echo "====== Show configuration from pre-existing config file ======" +call %EXE_NAME% code-analyzer config -c smoke-tests/test-data/config-files/existing-config.yml || exit /b 1 + + +echo "====== SMOKE TESTS FOR RULES COMMAND ======" +echo "====== List all rules ======" +call %EXE_NAME% code-analyzer rules || exit /b 1 +echo "====== List ESLint rules only ======" +call %EXE_NAME% code-analyzer rules -r eslint || exit /b 1 +echo "====== List RetireJS rules only ======" +call %EXE_NAME% code-analyzer rules -r retire-js || exit /b 1 +echo "====== List rules relevant to apex-only workspace ======" +call %EXE_NAME% code-analyzer rules -w smoke-tests/test-data/workspace-with-apex-files || exit /b 1 +echo "====== List rules matching a nonsensical selector (i.e. list no rules) ======" +call %EXE_NAME% code-analyzer rules -r asdfasdfasdf || exit /b 1 +echo "====== List rule overridden in config file ======" +call %EXE_NAME% code-analyzer rules -r no-unsafe-assignment -c smoke-tests/test-data/config-files/existing-config.yml || exit /b 1 + + +echo "====== SMOKE TESTS FOR RUN COMMAND ======" +echo "====== Run all rules against a folder ======" +call %EXE_NAME% code-analyzer run -w smoke-tests/test-data/workspace-with-mixed-files || exit /b 1 +echo "====== Run all rules against a file ======" +call %EXE_NAME% code-analyzer run -w smoke-tests/test-data/workspace-with-mixed-files/my-script.ts || exit /b 1 +echo "====== Run all rules against a folder and write to outfiles ======" +call %EXE_NAME% code-analyzer run -w smoke-tests/test-data/workspace-with-apex-files -f smoke-test-results/outfile.json -f smoke-test-results/outfile.html || exit /b 1 +echo "====== Run a selection of rules against a folder ======" +call %EXE_NAME% code-analyzer run -r regex -w smoke-tests/test-data/workspace-with-mixed-files || exit /b 1 +echo "====== Run rules using a config file with overrides ======" +call %EXE_NAME% code-analyzer run -c smoke-tests/test-data/config-files/existing-config.yml -w smoke-tests/test-data/workspace-with-mixed-files || exit /b 1 + + +echo "====== CONCLUSION ======" +echo "If you are seeing this message, the smoke tests ran successfully, and all is (approximately) well" \ No newline at end of file diff --git a/smoke-tests/smoke-test.sh b/smoke-tests/smoke-test.sh index 6aa7f0639..1adf98b10 100755 --- a/smoke-tests/smoke-test.sh +++ b/smoke-tests/smoke-test.sh @@ -1,10 +1,59 @@ #!/bin/bash -# Auto-generated on Tue Aug 27 2024 -# This script WILL EVENTUALLY run a smoke test of the entire plugin by running a series of commands that collectively +# Auto-generated on Fri Oct 18 2024 +# This script performs a smoke test of the entire plugin by running a series of commands that collectively # hit a vertical slice of all major features. If they all succeed, then we can reasonably assume that the plugin is # approximately stable. # DO NOT EDIT THIS SCRIPT DIRECTLY! INSTEAD, MAKE CHANGES IN ./smoke-tests/smoke-test-generator.js AND RERUN THAT # SCRIPT FROM THE PROJECT ROOT! set -e EXE_NAME=$1 -echo "At this point in the alpha, the smoke tests are no-ops and it is fine." \ No newline at end of file +echo "====== SETUP FOR SMOKE TESTS ======" +echo "====== Delete a a pre-existing smoke-test-results directory ======" +rm -rf smoke-test-results +echo "====== Create smoke-test-results directory ======" +mkdir -p smoke-test-results + + +echo "====== SMOKE TESTS FOR CONFIG COMMAND ======" +echo "====== Show default config for all engines ======" +$EXE_NAME code-analyzer config +echo "====== Show default config for PMD only ======" +$EXE_NAME code-analyzer config -r pmd +echo "====== Write PMD's default config to a file ======" +$EXE_NAME code-analyzer config -r pmd -f smoke-test-results/pmd-only-config.yml +echo "====== Show configuration from last step's output file ======" +$EXE_NAME code-analyzer config -c smoke-test-results/pmd-only-config.yml +echo "====== Show configuration from pre-existing config file ======" +$EXE_NAME code-analyzer config -c smoke-tests/test-data/config-files/existing-config.yml + + +echo "====== SMOKE TESTS FOR RULES COMMAND ======" +echo "====== List all rules ======" +$EXE_NAME code-analyzer rules +echo "====== List ESLint rules only ======" +$EXE_NAME code-analyzer rules -r eslint +echo "====== List RetireJS rules only ======" +$EXE_NAME code-analyzer rules -r retire-js +echo "====== List rules relevant to apex-only workspace ======" +$EXE_NAME code-analyzer rules -w smoke-tests/test-data/workspace-with-apex-files +echo "====== List rules matching a nonsensical selector (i.e. list no rules) ======" +$EXE_NAME code-analyzer rules -r asdfasdfasdf +echo "====== List rule overridden in config file ======" +$EXE_NAME code-analyzer rules -r no-unsafe-assignment -c smoke-tests/test-data/config-files/existing-config.yml + + +echo "====== SMOKE TESTS FOR RUN COMMAND ======" +echo "====== Run all rules against a folder ======" +$EXE_NAME code-analyzer run -w smoke-tests/test-data/workspace-with-mixed-files +echo "====== Run all rules against a file ======" +$EXE_NAME code-analyzer run -w smoke-tests/test-data/workspace-with-mixed-files/my-script.ts +echo "====== Run all rules against a folder and write to outfiles ======" +$EXE_NAME code-analyzer run -w smoke-tests/test-data/workspace-with-apex-files -f smoke-test-results/outfile.json -f smoke-test-results/outfile.html +echo "====== Run a selection of rules against a folder ======" +$EXE_NAME code-analyzer run -r regex -w smoke-tests/test-data/workspace-with-mixed-files +echo "====== Run rules using a config file with overrides ======" +$EXE_NAME code-analyzer run -c smoke-tests/test-data/config-files/existing-config.yml -w smoke-tests/test-data/workspace-with-mixed-files + + +echo "====== CONCLUSION ======" +echo "If you are seeing this message, the smoke tests ran successfully, and all is (approximately) well" \ No newline at end of file diff --git a/smoke-tests/test-data/config-files/existing-config.yml b/smoke-tests/test-data/config-files/existing-config.yml new file mode 100644 index 000000000..a0999c777 --- /dev/null +++ b/smoke-tests/test-data/config-files/existing-config.yml @@ -0,0 +1,20 @@ + +engines: + regex: + custom_rules: + NoTodos: + regex: "/todo/gi" + file_extensions: + - ".ts" + description: "detects todos" + tags: ["recommended", "beep"] + +rules: + pmd: + WhileLoopsMustUseBraces: + severity: HIGH + tags: + - CodeStyle + - Recommended + - apexLanguage + - Beep diff --git a/smoke-tests/test-data/workspace-with-apex-files/MyClass1.cls b/smoke-tests/test-data/workspace-with-apex-files/MyClass1.cls new file mode 100644 index 000000000..0976d0f2b --- /dev/null +++ b/smoke-tests/test-data/workspace-with-apex-files/MyClass1.cls @@ -0,0 +1,7 @@ +public class MyClass1 { + public static void doSomeQueries(string[] accNames) { + for (string accName : accNames) { + Account acc = [SELECT Name FROM Account LIMIT 1]; + } + } +} diff --git a/smoke-tests/test-data/workspace-with-apex-files/MyClass2.cls b/smoke-tests/test-data/workspace-with-apex-files/MyClass2.cls new file mode 100644 index 000000000..18b90a57e --- /dev/null +++ b/smoke-tests/test-data/workspace-with-apex-files/MyClass2.cls @@ -0,0 +1,5 @@ +public class MyClass2 { + public static void doSomeDebugging() { + System.debug(LoggingLevel.ERROR, 'aasdfasdfasdasdf'); + } +} diff --git a/smoke-tests/test-data/workspace-with-apex-files/MyClass3.cls b/smoke-tests/test-data/workspace-with-apex-files/MyClass3.cls new file mode 100644 index 000000000..ab168d61b --- /dev/null +++ b/smoke-tests/test-data/workspace-with-apex-files/MyClass3.cls @@ -0,0 +1,7 @@ +public class MyClass3 { + public static void declareUnusedVariables() { + Account acc = null; + boolean b = false; + string s = 'asdfasdfasdf'; + } +} diff --git a/smoke-tests/test-data/workspace-with-mixed-files/MyClass1.cls b/smoke-tests/test-data/workspace-with-mixed-files/MyClass1.cls new file mode 100644 index 000000000..0976d0f2b --- /dev/null +++ b/smoke-tests/test-data/workspace-with-mixed-files/MyClass1.cls @@ -0,0 +1,7 @@ +public class MyClass1 { + public static void doSomeQueries(string[] accNames) { + for (string accName : accNames) { + Account acc = [SELECT Name FROM Account LIMIT 1]; + } + } +} diff --git a/smoke-tests/test-data/workspace-with-mixed-files/my-script.ts b/smoke-tests/test-data/workspace-with-mixed-files/my-script.ts new file mode 100644 index 000000000..c52655138 --- /dev/null +++ b/smoke-tests/test-data/workspace-with-mixed-files/my-script.ts @@ -0,0 +1,6 @@ +// TODO This is just something to trip a Regex Rule looking for this kind of statement + +console.log('asdfasdfasdsasdf'); +const s: string = 'asdfasdf'; + +console.log(`s is ${s}`); From 010c10b171e7b7589e18346d531a9fa24a3f60a7 Mon Sep 17 00:00:00 2001 From: Joshua Feingold Date: Fri, 18 Oct 2024 16:55:07 -0500 Subject: [PATCH 10/14] NEW @W-17014756@ Added functionality to smoke tests --- .github/workflows/run-tests.yml | 66 ++++++++++++++++++++++++++++++++- 1 file changed, 65 insertions(+), 1 deletion(-) diff --git a/.github/workflows/run-tests.yml b/.github/workflows/run-tests.yml index 720708b73..21c6a9bdd 100644 --- a/.github/workflows/run-tests.yml +++ b/.github/workflows/run-tests.yml @@ -46,10 +46,35 @@ jobs: path: | ./reports ./coverage + + # The smoke tests should mimic a production setup as closely as possible. To that end, we'll spin up a tarball and + # then upload it as an artifact, so the smoke test jobs can pull it down and install it. + build-installable-tarball: + runs-on: ubuntu-latest + steps: + # Obviously, we need to get the code first + - uses: actions/checkout@v4 + with: + ref: ${{ inputs.target-branch }} + # Make sure we're on the right version of Node + - uses: actions/setup-node@v4 + with: + node-version: 'lts/*' # Always use Node LTS for building the tarball + # Install/build dependencies + - run: yarn + - run: yarn build + # Create the tarball + - run: npm pack + # Upload the tarball as an artifact + - uses: actions/upload-artifact@v4 + with: + name: smoke-test-tarball + path: ./salesforce-plugin-code-analyzer-*.tgz # For now, the smoke tests are no-ops, so the job doesn't have to do anything exciting. # When smoke-tests stop being no-ops, we'll need a build-dependencies step to create a tarball artifact, and so forth. # We'll be able to use the v4 workflow as a template. smoke-tests: + needs: build-installable-tarball strategy: # By default, if any job in a matrix fails, all other jobs are automatically cancelled. This makes the jobs run # to completion instead. @@ -59,8 +84,47 @@ jobs: os: [{vm: ubuntu-latest, exe: .sh}, {vm: macos-latest, exe: .sh}, {vm: windows-latest, exe: .cmd}] runs-on: ${{ matrix.os.vm }} steps: + # Check out the code - uses: actions/checkout@v4 with: ref: ${{ inputs.target-branch }} - - run: smoke-tests/smoke-test${{ matrix.os.exe }} sf + # Set up Node and Java + - uses: actions/setup-node@v4 + with: + node-version: ${{ matrix.node.version }} + - uses: actions/setup-java@v4 + with: + distribution: 'temurin' + java-version: '11' + # Install SF CLI via NPM + - run: npm install -g @salesforce/cli + # Download and install the Tarball artifact + - uses: actions/download-artifact@v4 + id: download + with: + name: smoke-test-tarball + # Download the tarball to a subdirectory of HOME, to guarantee that it's somewhere the installation command + # can see + path: ~/downloads/tarball + - name: Echo tarball download location + run: echo ${{ steps.download.outputs.download-path }} + - name: Install Tarball + shell: bash + run: | + # We need to determine the Tarball's name first. + TARBALL_NAME=$(ls ~/downloads/tarball | grep salesforce-plugin-code-analyzer-5\\.0\\.0-alpha\\.[0-9]*\\.tgz) + # We need to determine the Tarball's location in an installable way. + # Get the path to the download folder. Swap out backslashes for forward slashes to ensure Windows compatibility. + RAW_TARBALL_PATH=`echo '${{ steps.download.outputs.download-path }}' | tr '\\' '/'` + # If the path starts with "C:", that needs to be pulled off. + ADJUSTED_TARBALL_PATH=`[[ $RAW_TARBALL_PATH = C* ]] && echo $RAW_TARBALL_PATH | cut -d':' -f 2 || echo $RAW_TARBALL_PATH` + # Install the tarball, piping in a `y` to simulate agreeing to install an unsigned package. Use the URI of the file's full path. + echo y | sf plugins install "file://${ADJUSTED_TARBALL_PATH}/${TARBALL_NAME}" + - name: Run smoke tests + run: smoke-tests/smoke-test${{ matrix.os.exe }} sf + - uses: actions/upload-artifact@v4 + if: ${{always()}} + with: + name: smoke-test-results-${{ runner.os }}-node-${{ matrix.node.artifact }} + path: smoke-test-results From a74836844f7000fb6c745829666284cb98d656a5 Mon Sep 17 00:00:00 2001 From: Joshua Feingold Date: Wed, 16 Oct 2024 12:06:35 -0500 Subject: [PATCH 11/14] NEW @W-16891765@ Config action mentions outfile --- messages/action-summary-viewer.md | 15 ++++ src/commands/code-analyzer/config.ts | 2 + src/lib/actions/ConfigAction.ts | 11 ++- src/lib/messages.ts | 1 + src/lib/viewers/ActionSummaryViewer.ts | 49 ++++++++++++ src/lib/writers/ConfigWriter.ts | 7 +- test/commands/code-analyzer/config.test.ts | 3 + .../no-outfile-created.txt.goldfile | 5 ++ .../outfile-created.txt.goldfile | 6 ++ test/lib/actions/ConfigAction.test.ts | 75 ++++++++++++++++++- test/lib/writers/ConfigWriter.test.ts | 6 +- test/stubs/SpyConfigWriter.ts | 9 ++- 12 files changed, 179 insertions(+), 10 deletions(-) create mode 100644 messages/action-summary-viewer.md create mode 100644 src/lib/viewers/ActionSummaryViewer.ts create mode 100644 test/fixtures/comparison-files/lib/actions/ConfigAction.test.ts/action-summaries/no-outfile-created.txt.goldfile create mode 100644 test/fixtures/comparison-files/lib/actions/ConfigAction.test.ts/action-summaries/outfile-created.txt.goldfile diff --git a/messages/action-summary-viewer.md b/messages/action-summary-viewer.md new file mode 100644 index 000000000..ec334bec0 --- /dev/null +++ b/messages/action-summary-viewer.md @@ -0,0 +1,15 @@ +# common.summary-header + +Summary + +# common.logfile-location + +Additional log information written to: + +# config-action.no-outfiles + +No output file was specified. + +# config-action.outfile-location + +Config written to: diff --git a/src/commands/code-analyzer/config.ts b/src/commands/code-analyzer/config.ts index 55b9c4f1d..04459fdeb 100644 --- a/src/commands/code-analyzer/config.ts +++ b/src/commands/code-analyzer/config.ts @@ -2,6 +2,7 @@ import {Flags, SfCommand} from '@salesforce/sf-plugins-core'; import {ConfigAction, ConfigDependencies} from '../../lib/actions/ConfigAction'; import {ConfigFileWriter} from '../../lib/writers/ConfigWriter'; import {ConfigStyledYamlViewer} from '../../lib/viewers/ConfigViewer'; +import {ConfigActionSummaryViewer} from '../../lib/viewers/ActionSummaryViewer'; import {CodeAnalyzerConfigFactoryImpl} from '../../lib/factories/CodeAnalyzerConfigFactory'; import {EnginePluginsFactoryImpl} from '../../lib/factories/EnginePluginsFactory'; import {BundleName, getMessage, getMessages} from '../../lib/messages'; @@ -70,6 +71,7 @@ export default class ConfigCommand extends SfCommand implements Displayabl logEventListeners: [new LogEventDisplayer(uxDisplay)], progressEventListeners: [new RuleSelectionProgressSpinner(uxDisplay)], modelGenerator: modelGeneratorFunction, + actionSummaryViewer: new ConfigActionSummaryViewer(uxDisplay), viewer: new ConfigStyledYamlViewer(uxDisplay) }; if (outputFile) { diff --git a/src/lib/actions/ConfigAction.ts b/src/lib/actions/ConfigAction.ts index 6f7711d42..e588334ae 100644 --- a/src/lib/actions/ConfigAction.ts +++ b/src/lib/actions/ConfigAction.ts @@ -7,6 +7,7 @@ import {ConfigViewer} from '../viewers/ConfigViewer'; import {createWorkspace} from '../utils/WorkspaceUtil'; import {LogEventListener, LogEventLogger} from '../listeners/LogEventListener'; import {ProgressEventListener} from '../listeners/ProgressEventListener'; +import {ConfigActionSummaryViewer} from '../viewers/ActionSummaryViewer'; import {ConfigModel, ConfigModelGeneratorFunction, ConfigContext} from '../models/ConfigModel'; export type ConfigDependencies = { @@ -16,11 +17,13 @@ export type ConfigDependencies = { logEventListeners: LogEventListener[]; progressEventListeners: ProgressEventListener[]; writer?: ConfigWriter; + actionSummaryViewer: ConfigActionSummaryViewer; viewer: ConfigViewer; }; export type ConfigInput = { 'config-file'?: string; + 'output-file'?: string; 'rule-selector': string[]; workspace?: string[]; }; @@ -38,7 +41,8 @@ export class ConfigAction { const defaultConfig: CodeAnalyzerConfig = CodeAnalyzerConfig.withDefaults(); // We always add a Logger Listener to the appropriate listeners list, because we should always be logging. - const logEventLogger: LogEventLogger = new LogEventLogger(await LogFileWriter.fromConfig(userConfig)); + const logFileWriter: LogFileWriter = await LogFileWriter.fromConfig(userConfig); + const logEventLogger: LogEventLogger = new LogEventLogger(logFileWriter); this.dependencies.logEventListeners.push(logEventLogger); // The User's config produces one Core. @@ -118,7 +122,10 @@ export class ConfigAction { const configModel: ConfigModel = this.dependencies.modelGenerator(relevantEngines, userConfigContext, defaultConfigContext); this.dependencies.viewer.view(configModel); - await this.dependencies.writer?.write(configModel); + const fileWritten: boolean = this.dependencies.writer + ? await this.dependencies.writer.write(configModel) + : false; + this.dependencies.actionSummaryViewer.view(logFileWriter.getLogDestination(), fileWritten ? input['output-file'] : undefined); return Promise.resolve(); } diff --git a/src/lib/messages.ts b/src/lib/messages.ts index 6d7edc4cb..218091880 100644 --- a/src/lib/messages.ts +++ b/src/lib/messages.ts @@ -5,6 +5,7 @@ import {Tokens} from '@salesforce/core/lib/messages'; Messages.importMessagesDirectory(__dirname); export enum BundleName { + ActionSummaryViewer = 'action-summary-viewer', ConfigCommand = 'config-command', ConfigModel = 'config-model', ConfigWriter = 'config-writer', diff --git a/src/lib/viewers/ActionSummaryViewer.ts b/src/lib/viewers/ActionSummaryViewer.ts new file mode 100644 index 000000000..0754696d2 --- /dev/null +++ b/src/lib/viewers/ActionSummaryViewer.ts @@ -0,0 +1,49 @@ +import {Display} from '../Display'; +import {toStyledHeader, indent} from '../utils/StylingUtil'; +import {BundleName, getMessage} from '../messages'; + +abstract class AbstractActionSummaryViewer { + protected readonly display: Display; + + protected constructor(display: Display) { + this.display = display; + } + + protected displaySummaryHeader(): void { + this.display.displayLog(toStyledHeader(getMessage(BundleName.ActionSummaryViewer, 'common.summary-header'))); + } + + protected displayLineSeparator(): void { + this.display.displayLog(""); + } + + protected displayLogFileInfo(logFile: string): void { + this.display.displayLog(getMessage(BundleName.ActionSummaryViewer, 'common.logfile-location')); + this.display.displayLog(indent(logFile)); + } +} + +export class ConfigActionSummaryViewer extends AbstractActionSummaryViewer { + public constructor(display: Display) { + super(display); + } + + public view(logFile: string, outfile?: string): void { + this.displaySummaryHeader(); + this.displayLineSeparator(); + + if (outfile) { + this.displayOutfile(outfile); + } else { + this.display.displayLog(getMessage(BundleName.ActionSummaryViewer, 'config-action.no-outfiles')); + } + this.displayLineSeparator(); + + this.displayLogFileInfo(logFile); + } + + private displayOutfile(outfile: string): void { + this.display.displayLog(getMessage(BundleName.ActionSummaryViewer, 'config-action.outfile-location')); + this.display.displayLog(indent(outfile)); + } +} diff --git a/src/lib/writers/ConfigWriter.ts b/src/lib/writers/ConfigWriter.ts index da170ad5a..8a2f82573 100644 --- a/src/lib/writers/ConfigWriter.ts +++ b/src/lib/writers/ConfigWriter.ts @@ -6,7 +6,7 @@ import {Display} from '../Display'; import {exists} from '../utils/FileUtil'; export interface ConfigWriter { - write(model: ConfigModel): Promise; + write(model: ConfigModel): Promise; } export class ConfigFileWriter implements ConfigWriter { @@ -20,10 +20,13 @@ export class ConfigFileWriter implements ConfigWriter { this.display = display; } - public async write(model: ConfigModel): Promise { + public async write(model: ConfigModel): Promise { // Only write to the file if it doesn't already exist, or if the user confirms that they want to overwrite it. if (!(await exists(this.file)) || await this.display.confirm(getMessage(BundleName.ConfigWriter, 'prompt.overwrite-existing-file', [this.file]))) { fs.writeFileSync(this.file, model.toFormattedOutput(this.format)); + return true; + } else { + return false; } } diff --git a/test/commands/code-analyzer/config.test.ts b/test/commands/code-analyzer/config.test.ts index 1803e90df..986f602c3 100644 --- a/test/commands/code-analyzer/config.test.ts +++ b/test/commands/code-analyzer/config.test.ts @@ -177,6 +177,7 @@ describe('`code-analyzer config` tests', () => { expect(createActionSpy).toHaveBeenCalled(); expect(fromFileSpy).toHaveBeenCalled(); expect(receivedFile).toEqual(inputValue); + expect(receivedActionInput).toHaveProperty('output-file', inputValue); }); it('Can be referenced by its shortname, -f', async () => { @@ -186,6 +187,7 @@ describe('`code-analyzer config` tests', () => { expect(createActionSpy).toHaveBeenCalled(); expect(fromFileSpy).toHaveBeenCalled(); expect(receivedFile).toEqual(inputValue); + expect(receivedActionInput).toHaveProperty('output-file', inputValue); }); it('Cannot be supplied multiple times', async () => { @@ -201,6 +203,7 @@ describe('`code-analyzer config` tests', () => { expect(executeSpy).toHaveBeenCalled(); expect(createActionSpy).toHaveBeenCalled(); expect(fromFileSpy).not.toHaveBeenCalled(); + expect(receivedActionInput['output-file']).toBeUndefined(); }); }); diff --git a/test/fixtures/comparison-files/lib/actions/ConfigAction.test.ts/action-summaries/no-outfile-created.txt.goldfile b/test/fixtures/comparison-files/lib/actions/ConfigAction.test.ts/action-summaries/no-outfile-created.txt.goldfile new file mode 100644 index 000000000..3bcdbe5f2 --- /dev/null +++ b/test/fixtures/comparison-files/lib/actions/ConfigAction.test.ts/action-summaries/no-outfile-created.txt.goldfile @@ -0,0 +1,5 @@ +=== Summary + +No output file was specified. + +Additional log information written to: \ No newline at end of file diff --git a/test/fixtures/comparison-files/lib/actions/ConfigAction.test.ts/action-summaries/outfile-created.txt.goldfile b/test/fixtures/comparison-files/lib/actions/ConfigAction.test.ts/action-summaries/outfile-created.txt.goldfile new file mode 100644 index 000000000..b05ed3d0a --- /dev/null +++ b/test/fixtures/comparison-files/lib/actions/ConfigAction.test.ts/action-summaries/outfile-created.txt.goldfile @@ -0,0 +1,6 @@ +=== Summary + +Config written to: + out-config.yml + +Additional log information written to: \ No newline at end of file diff --git a/test/lib/actions/ConfigAction.test.ts b/test/lib/actions/ConfigAction.test.ts index 12c033201..16507f433 100644 --- a/test/lib/actions/ConfigAction.test.ts +++ b/test/lib/actions/ConfigAction.test.ts @@ -9,7 +9,8 @@ import {CodeAnalyzerConfigFactory} from "../../../src/lib/factories/CodeAnalyzer import {EnginePluginsFactory} from '../../../src/lib/factories/EnginePluginsFactory'; import {ConfigAction, ConfigDependencies, ConfigInput} from '../../../src/lib/actions/ConfigAction'; import {AnnotatedConfigModel} from '../../../src/lib/models/ConfigModel'; -import {ConfigStyledYamlViewer} from '../../../lib/lib/viewers/ConfigViewer'; +import {ConfigStyledYamlViewer} from '../../../src/lib/viewers/ConfigViewer'; +import {ConfigActionSummaryViewer} from '../../../src/lib/viewers/ActionSummaryViewer'; import {SpyConfigWriter} from '../../stubs/SpyConfigWriter'; import {DisplayEventType, SpyDisplay} from '../../stubs/SpyDisplay'; @@ -36,6 +37,7 @@ describe('ConfigAction tests', () => { viewer: new ConfigStyledYamlViewer(spyDisplay), configFactory: new DefaultStubCodeAnalyzerConfigFactory(), modelGenerator: AnnotatedConfigModel.fromSelection, + actionSummaryViewer: new ConfigActionSummaryViewer(spyDisplay), pluginsFactory: new StubEnginePluginFactory() }; }); @@ -159,6 +161,7 @@ describe('ConfigAction tests', () => { viewer: new ConfigStyledYamlViewer(spyDisplay), configFactory: stubConfigFactory, modelGenerator: AnnotatedConfigModel.fromSelection, + actionSummaryViewer: new ConfigActionSummaryViewer(spyDisplay), pluginsFactory: new StubEnginePluginFactory() }; }); @@ -389,6 +392,7 @@ describe('ConfigAction tests', () => { viewer: new ConfigStyledYamlViewer(spyDisplay), configFactory: new DefaultStubCodeAnalyzerConfigFactory(), modelGenerator: AnnotatedConfigModel.fromSelection, + actionSummaryViewer: new ConfigActionSummaryViewer(spyDisplay), pluginsFactory: new StubEnginePluginFactory() }; }); @@ -406,6 +410,74 @@ describe('ConfigAction tests', () => { expect(spyWriter.getCallHistory()).toHaveLength(1); }); }); + + describe('Summary generation', () => { + beforeEach(() => { + spyDisplay = new SpyDisplay(); + dependencies = { + logEventListeners: [], + progressEventListeners: [], + viewer: new ConfigStyledYamlViewer(spyDisplay), + configFactory: new DefaultStubCodeAnalyzerConfigFactory(), + modelGenerator: AnnotatedConfigModel.fromSelection, + actionSummaryViewer: new ConfigActionSummaryViewer(spyDisplay), + pluginsFactory: new StubEnginePluginFactory() + } + }); + + it('When an Outfile is created, it is mentioned by the Summarizer', async () => { + // ==== SETUP ==== + // Assign a Writer to the dependencies. + dependencies.writer = new SpyConfigWriter(true); + + // ==== TESTED BEHAVIOR ==== + // Invoke the action, specifying an outfile. + const action = ConfigAction.createAction(dependencies); + const input: ConfigInput = { + 'rule-selector': ['all'], + 'output-file': 'out-config.yml' + }; + await action.execute(input); + + // ==== ASSERTIONS ==== + const displayEvents = spyDisplay.getDisplayEvents(); + const displayedLogEvents = ansis.strip(displayEvents + .filter(e => e.type === DisplayEventType.LOG) + .map(e => e.data) + .join('\n')); + + const goldfileContents: string = await readGoldFile(path.join(PATH_TO_COMPARISON_DIR, 'action-summaries', 'outfile-created.txt.goldfile')); + expect(displayedLogEvents).toContain(goldfileContents); + }); + + it.each([ + {case: 'an Outfile is specified but not written', writer: new SpyConfigWriter(false), outfile: 'out-config.yml'}, + {case: 'an Outfile is not specified at all', writer: undefined, outfile: undefined} + ])('When $case, the Summarizer mentions no outfile', async ({writer, outfile}) => { + // ==== SETUP ==== + // Add the specified Writer (or lack-of-Writer) to the dependencies. + dependencies.writer = writer; + + // ==== TESTED BEHAVIOR ==== + // Invoke the action, specifying an outfile (or lack of one). + const action = ConfigAction.createAction(dependencies); + const input: ConfigInput = { + 'rule-selector': ['all'], + 'output-file': outfile + }; + await action.execute(input); + + // ==== ASSERTIONS ==== + const displayEvents = spyDisplay.getDisplayEvents(); + const displayedLogEvents = ansis.strip(displayEvents + .filter(e => e.type === DisplayEventType.LOG) + .map(e => e.data) + .join('\n')); + + const goldfileContents: string = await readGoldFile(path.join(PATH_TO_COMPARISON_DIR, 'action-summaries', 'no-outfile-created.txt.goldfile')); + expect(displayedLogEvents).toContain(goldfileContents); + }); + }) // ====== HELPER FUNCTIONS ====== async function readGoldFile(goldFilePath: string): Promise { @@ -425,7 +497,6 @@ describe('ConfigAction tests', () => { // ==== OUTPUT PROCESSING ==== const displayEvents = spyDisplay.getDisplayEvents(); - expect(displayEvents).toHaveLength(1); expect(displayEvents[0].type).toEqual(DisplayEventType.LOG); return ansis.strip(displayEvents[0].data); } diff --git a/test/lib/writers/ConfigWriter.test.ts b/test/lib/writers/ConfigWriter.test.ts index b84a4ce19..367f42526 100644 --- a/test/lib/writers/ConfigWriter.test.ts +++ b/test/lib/writers/ConfigWriter.test.ts @@ -31,8 +31,9 @@ describe('ConfigWriter implementations', () => { const stubbedConfig = new StubConfigModel(); - await configFileWriter.write(stubbedConfig); + const result: boolean = await configFileWriter.write(stubbedConfig); + expect(result).toEqual(true); expect(spyDisplay.getDisplayEvents()).toHaveLength(0); expect(writeFileSpy).toHaveBeenCalled(); @@ -52,10 +53,11 @@ describe('ConfigWriter implementations', () => { const stubbedConfig = new StubConfigModel(); - await configFileWriter.write(stubbedConfig); + const result: boolean = await configFileWriter.write(stubbedConfig); const displayEvents: DisplayEvent[] = spyDisplay.getDisplayEvents(); expect(displayEvents).toHaveLength(1); + expect(result).toEqual(confirmation); // The user should be prompted to confirm override. expect(displayEvents[0].type).toEqual(DisplayEventType.CONFIRM); expect(displayEvents[0].data).toContain('overwrite'); diff --git a/test/stubs/SpyConfigWriter.ts b/test/stubs/SpyConfigWriter.ts index 82639e22a..2c56eab7a 100644 --- a/test/stubs/SpyConfigWriter.ts +++ b/test/stubs/SpyConfigWriter.ts @@ -2,11 +2,16 @@ import {ConfigModel} from '../../src/lib/models/ConfigModel'; import {ConfigWriter} from '../../src/lib/writers/ConfigWriter'; export class SpyConfigWriter implements ConfigWriter { + private simulateSuccessfulWrites: boolean; private callHistory: ConfigModel[] = []; - public write(config: ConfigModel): Promise { + public constructor(simulateSuccessfulWrites: boolean = true) { + this.simulateSuccessfulWrites = simulateSuccessfulWrites; + } + + public write(config: ConfigModel): Promise { this.callHistory.push(config); - return Promise.resolve(); + return Promise.resolve(this.simulateSuccessfulWrites); } public getCallHistory(): ConfigModel[] { From 0e71236d249f5685ad882966f82c378cf674c9e7 Mon Sep 17 00:00:00 2001 From: Joshua Feingold Date: Wed, 16 Oct 2024 14:41:39 -0500 Subject: [PATCH 12/14] NEW @W-16891765@ Changed message based on feedback --- messages/action-summary-viewer.md | 2 +- .../action-summaries/outfile-created.txt.goldfile | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/messages/action-summary-viewer.md b/messages/action-summary-viewer.md index ec334bec0..2fe72f796 100644 --- a/messages/action-summary-viewer.md +++ b/messages/action-summary-viewer.md @@ -12,4 +12,4 @@ No output file was specified. # config-action.outfile-location -Config written to: +Configuration written to: diff --git a/test/fixtures/comparison-files/lib/actions/ConfigAction.test.ts/action-summaries/outfile-created.txt.goldfile b/test/fixtures/comparison-files/lib/actions/ConfigAction.test.ts/action-summaries/outfile-created.txt.goldfile index b05ed3d0a..fbe024e3c 100644 --- a/test/fixtures/comparison-files/lib/actions/ConfigAction.test.ts/action-summaries/outfile-created.txt.goldfile +++ b/test/fixtures/comparison-files/lib/actions/ConfigAction.test.ts/action-summaries/outfile-created.txt.goldfile @@ -1,6 +1,6 @@ === Summary -Config written to: +Configuration written to: out-config.yml Additional log information written to: \ No newline at end of file From b03d267654be26c0b8e9c76ba33f51f19505d89b Mon Sep 17 00:00:00 2001 From: Joshua Feingold Date: Mon, 21 Oct 2024 13:03:58 -0500 Subject: [PATCH 13/14] NEW @W-16891765@ Added end-of-file comment to config output. --- messages/config-model.md | 3 +++ src/lib/models/ConfigModel.ts | 4 +++- .../header-comments/top-level-end.yml.goldfile | 3 +++ ...l.yml.goldfile => top-level-start.yml.goldfile} | 0 test/lib/actions/ConfigAction.test.ts | 14 ++++++++++---- 5 files changed, 19 insertions(+), 5 deletions(-) create mode 100644 test/fixtures/comparison-files/lib/actions/ConfigAction.test.ts/header-comments/top-level-end.yml.goldfile rename test/fixtures/comparison-files/lib/actions/ConfigAction.test.ts/header-comments/{top-level.yml.goldfile => top-level-start.yml.goldfile} (100%) diff --git a/messages/config-model.md b/messages/config-model.md index 54eadeabd..414a20c34 100644 --- a/messages/config-model.md +++ b/messages/config-model.md @@ -12,3 +12,6 @@ Empty object used because rule selection returned no rules # template.yaml.no-rules-selected Remove this empty object {} when you are ready to specify your first rule override + +# template.common.end-of-config +END OF CODE ANALYZER CONFIGURATION diff --git a/src/lib/models/ConfigModel.ts b/src/lib/models/ConfigModel.ts index 322141012..479526d8e 100644 --- a/src/lib/models/ConfigModel.ts +++ b/src/lib/models/ConfigModel.ts @@ -114,7 +114,9 @@ abstract class YamlFormatter { this.toYamlRuleOverrides() + '\n' + '\n' + this.toYamlComment(topLevelDescription.fieldDescriptions!.engines) + '\n' + - this.toYamlEngineOverrides() + '\n'; + this.toYamlEngineOverrides() + '\n' + + '\n' + + this.toYamlSectionHeadingComment(getMessage(BundleName.ConfigModel, 'template.common.end-of-config')) + '\n'; } private toYamlRuleOverrides(): string { diff --git a/test/fixtures/comparison-files/lib/actions/ConfigAction.test.ts/header-comments/top-level-end.yml.goldfile b/test/fixtures/comparison-files/lib/actions/ConfigAction.test.ts/header-comments/top-level-end.yml.goldfile new file mode 100644 index 000000000..de1d3d889 --- /dev/null +++ b/test/fixtures/comparison-files/lib/actions/ConfigAction.test.ts/header-comments/top-level-end.yml.goldfile @@ -0,0 +1,3 @@ +# ====================================================================== +# END OF CODE ANALYZER CONFIGURATION +# ====================================================================== diff --git a/test/fixtures/comparison-files/lib/actions/ConfigAction.test.ts/header-comments/top-level.yml.goldfile b/test/fixtures/comparison-files/lib/actions/ConfigAction.test.ts/header-comments/top-level-start.yml.goldfile similarity index 100% rename from test/fixtures/comparison-files/lib/actions/ConfigAction.test.ts/header-comments/top-level.yml.goldfile rename to test/fixtures/comparison-files/lib/actions/ConfigAction.test.ts/header-comments/top-level-start.yml.goldfile diff --git a/test/lib/actions/ConfigAction.test.ts b/test/lib/actions/ConfigAction.test.ts index 16507f433..10edee0ab 100644 --- a/test/lib/actions/ConfigAction.test.ts +++ b/test/lib/actions/ConfigAction.test.ts @@ -42,13 +42,16 @@ describe('ConfigAction tests', () => { }; }); - it('Top-level overview-comment is correct', async () => { + it.each([ + {position: 'start'}, + {position: 'end'} + ])('Top-level $position comment is correct', async ({position}) => { // ==== TESTED BEHAVIOR ==== // Just select all rules for this test, since we don't care about the rules here. const output = await runActionAndGetDisplayedConfig(dependencies, ['all']); // ==== ASSERTIONS ==== - const goldFileContents = await readGoldFile(path.join(PATH_TO_COMPARISON_DIR, 'header-comments', 'top-level.yml.goldfile')); + const goldFileContents = await readGoldFile(path.join(PATH_TO_COMPARISON_DIR, 'header-comments', `top-level-${position}.yml.goldfile`)); expect(output).toContain(goldFileContents); }); @@ -167,7 +170,10 @@ describe('ConfigAction tests', () => { }); - it('Top-level overview-comment is correct', async () => { + it.each([ + {position: 'start'}, + {position: 'end'} + ])('Top-level $position comment is correct', async ({position}) => { // ==== SETUP ==== // Set the dummy config properties to null; it's fine for this test. stubConfigFactory.setDummyConfigRoot('null'); @@ -178,7 +184,7 @@ describe('ConfigAction tests', () => { const output = await runActionAndGetDisplayedConfig(dependencies, ['all']); // ==== ASSERTIONS ==== - const goldFileContents = await readGoldFile(path.join(PATH_TO_COMPARISON_DIR, 'header-comments', 'top-level.yml.goldfile')); + const goldFileContents = await readGoldFile(path.join(PATH_TO_COMPARISON_DIR, 'header-comments', `top-level-${position}.yml.goldfile`)); expect(output).toContain(goldFileContents); }); From a9046586c3995dff8d5f38780ad58dd27164a94f Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Fri, 25 Oct 2024 18:49:41 +0000 Subject: [PATCH 14/14] Preparing for v5.0.0-alpha.3 release. --- package.json | 2 +- yarn.lock | 2087 +++++++++++++++++++++++++------------------------- 2 files changed, 1037 insertions(+), 1052 deletions(-) diff --git a/package.json b/package.json index 4cc927f92..b7f6f06bd 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "@salesforce/plugin-code-analyzer", "description": "Static code scanner that applies quality and security rules to Apex code, and provides feedback.", - "version": "5.0.0-alpha.2", + "version": "5.0.0-alpha.3", "author": "Salesforce Code Analyzer Team", "bugs": "https://github.com/forcedotcom/sfdx-scanner/issues", "dependencies": { diff --git a/yarn.lock b/yarn.lock index 8869ae8af..6843b37dc 100644 --- a/yarn.lock +++ b/yarn.lock @@ -78,605 +78,617 @@ "@smithy/util-utf8" "^2.0.0" tslib "^2.6.2" -"@aws-sdk/client-cloudfront@^3.645.0": - version "3.654.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/client-cloudfront/-/client-cloudfront-3.654.0.tgz#1ea9f1eeb03d390c6e49a9b64c2238438f349f9e" - integrity sha512-AdSusqY4WJVcHpOMPRSpQpcknhOSUfxfAPYaIFkeyFduIGsl5lxvvMfhT4c+37nHFNhP9od1BxZZuaa6idgEDg== +"@aws-sdk/client-cloudfront@^3.675.0": + version "3.679.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/client-cloudfront/-/client-cloudfront-3.679.0.tgz#8062cc1cf25897306478ff7f44cb050bfd8cc283" + integrity sha512-C/k3ZP+K47CAWICCkaXleUJGdJCiEJRB+5XvbEpoCabrrRJDCa+x/qbgS0KfTuioS5gYb9V1DWeUfXD+iWaoCw== dependencies: "@aws-crypto/sha256-browser" "5.2.0" "@aws-crypto/sha256-js" "5.2.0" - "@aws-sdk/client-sso-oidc" "3.654.0" - "@aws-sdk/client-sts" "3.654.0" - "@aws-sdk/core" "3.654.0" - "@aws-sdk/credential-provider-node" "3.654.0" - "@aws-sdk/middleware-host-header" "3.654.0" - "@aws-sdk/middleware-logger" "3.654.0" - "@aws-sdk/middleware-recursion-detection" "3.654.0" - "@aws-sdk/middleware-user-agent" "3.654.0" - "@aws-sdk/region-config-resolver" "3.654.0" - "@aws-sdk/types" "3.654.0" - "@aws-sdk/util-endpoints" "3.654.0" - "@aws-sdk/util-user-agent-browser" "3.654.0" - "@aws-sdk/util-user-agent-node" "3.654.0" - "@aws-sdk/xml-builder" "3.654.0" - "@smithy/config-resolver" "^3.0.8" - "@smithy/core" "^2.4.3" - "@smithy/fetch-http-handler" "^3.2.7" - "@smithy/hash-node" "^3.0.6" - "@smithy/invalid-dependency" "^3.0.6" - "@smithy/middleware-content-length" "^3.0.8" - "@smithy/middleware-endpoint" "^3.1.3" - "@smithy/middleware-retry" "^3.0.18" - "@smithy/middleware-serde" "^3.0.6" - "@smithy/middleware-stack" "^3.0.6" - "@smithy/node-config-provider" "^3.1.7" - "@smithy/node-http-handler" "^3.2.2" - "@smithy/protocol-http" "^4.1.3" - "@smithy/smithy-client" "^3.3.2" - "@smithy/types" "^3.4.2" - "@smithy/url-parser" "^3.0.6" + "@aws-sdk/client-sso-oidc" "3.679.0" + "@aws-sdk/client-sts" "3.679.0" + "@aws-sdk/core" "3.679.0" + "@aws-sdk/credential-provider-node" "3.679.0" + "@aws-sdk/middleware-host-header" "3.679.0" + "@aws-sdk/middleware-logger" "3.679.0" + "@aws-sdk/middleware-recursion-detection" "3.679.0" + "@aws-sdk/middleware-user-agent" "3.679.0" + "@aws-sdk/region-config-resolver" "3.679.0" + "@aws-sdk/types" "3.679.0" + "@aws-sdk/util-endpoints" "3.679.0" + "@aws-sdk/util-user-agent-browser" "3.679.0" + "@aws-sdk/util-user-agent-node" "3.679.0" + "@aws-sdk/xml-builder" "3.679.0" + "@smithy/config-resolver" "^3.0.9" + "@smithy/core" "^2.4.8" + "@smithy/fetch-http-handler" "^3.2.9" + "@smithy/hash-node" "^3.0.7" + "@smithy/invalid-dependency" "^3.0.7" + "@smithy/middleware-content-length" "^3.0.9" + "@smithy/middleware-endpoint" "^3.1.4" + "@smithy/middleware-retry" "^3.0.23" + "@smithy/middleware-serde" "^3.0.7" + "@smithy/middleware-stack" "^3.0.7" + "@smithy/node-config-provider" "^3.1.8" + "@smithy/node-http-handler" "^3.2.4" + "@smithy/protocol-http" "^4.1.4" + "@smithy/smithy-client" "^3.4.0" + "@smithy/types" "^3.5.0" + "@smithy/url-parser" "^3.0.7" "@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.18" - "@smithy/util-defaults-mode-node" "^3.0.18" - "@smithy/util-endpoints" "^2.1.2" - "@smithy/util-middleware" "^3.0.6" - "@smithy/util-retry" "^3.0.6" - "@smithy/util-stream" "^3.1.6" + "@smithy/util-defaults-mode-browser" "^3.0.23" + "@smithy/util-defaults-mode-node" "^3.0.23" + "@smithy/util-endpoints" "^2.1.3" + "@smithy/util-middleware" "^3.0.7" + "@smithy/util-retry" "^3.0.7" + "@smithy/util-stream" "^3.1.9" "@smithy/util-utf8" "^3.0.0" - "@smithy/util-waiter" "^3.1.5" + "@smithy/util-waiter" "^3.1.6" tslib "^2.6.2" -"@aws-sdk/client-s3@^3.651.1": - version "3.654.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/client-s3/-/client-s3-3.654.0.tgz#a4a5a341959a4bab71b4a3326a76e59fb0d50ecd" - integrity sha512-EsyeZJhkZD2VMdZpNt4NhlQ3QUAF24gMC+5w2wpGg6Yw+Bv7VLdg1t3PkTQovriJX1KTJAYHcGAuy92OFmWIng== +"@aws-sdk/client-s3@^3.676.0": + version "3.679.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/client-s3/-/client-s3-3.679.0.tgz#862088ffa9388488ab3217144d3dd3a95219a92b" + integrity sha512-P93tUbJXiDtSPgBfFpnjaijLV38hyPlE3g0XybsPTmSYNV6A9Jt1TUIF6vX+o6LdFuq3FerCiagUjhfDANWkAw== dependencies: "@aws-crypto/sha1-browser" "5.2.0" "@aws-crypto/sha256-browser" "5.2.0" "@aws-crypto/sha256-js" "5.2.0" - "@aws-sdk/client-sso-oidc" "3.654.0" - "@aws-sdk/client-sts" "3.654.0" - "@aws-sdk/core" "3.654.0" - "@aws-sdk/credential-provider-node" "3.654.0" - "@aws-sdk/middleware-bucket-endpoint" "3.654.0" - "@aws-sdk/middleware-expect-continue" "3.654.0" - "@aws-sdk/middleware-flexible-checksums" "3.654.0" - "@aws-sdk/middleware-host-header" "3.654.0" - "@aws-sdk/middleware-location-constraint" "3.654.0" - "@aws-sdk/middleware-logger" "3.654.0" - "@aws-sdk/middleware-recursion-detection" "3.654.0" - "@aws-sdk/middleware-sdk-s3" "3.654.0" - "@aws-sdk/middleware-ssec" "3.654.0" - "@aws-sdk/middleware-user-agent" "3.654.0" - "@aws-sdk/region-config-resolver" "3.654.0" - "@aws-sdk/signature-v4-multi-region" "3.654.0" - "@aws-sdk/types" "3.654.0" - "@aws-sdk/util-endpoints" "3.654.0" - "@aws-sdk/util-user-agent-browser" "3.654.0" - "@aws-sdk/util-user-agent-node" "3.654.0" - "@aws-sdk/xml-builder" "3.654.0" - "@smithy/config-resolver" "^3.0.8" - "@smithy/core" "^2.4.3" - "@smithy/eventstream-serde-browser" "^3.0.9" - "@smithy/eventstream-serde-config-resolver" "^3.0.6" - "@smithy/eventstream-serde-node" "^3.0.8" - "@smithy/fetch-http-handler" "^3.2.7" - "@smithy/hash-blob-browser" "^3.1.5" - "@smithy/hash-node" "^3.0.6" - "@smithy/hash-stream-node" "^3.1.5" - "@smithy/invalid-dependency" "^3.0.6" - "@smithy/md5-js" "^3.0.6" - "@smithy/middleware-content-length" "^3.0.8" - "@smithy/middleware-endpoint" "^3.1.3" - "@smithy/middleware-retry" "^3.0.18" - "@smithy/middleware-serde" "^3.0.6" - "@smithy/middleware-stack" "^3.0.6" - "@smithy/node-config-provider" "^3.1.7" - "@smithy/node-http-handler" "^3.2.2" - "@smithy/protocol-http" "^4.1.3" - "@smithy/smithy-client" "^3.3.2" - "@smithy/types" "^3.4.2" - "@smithy/url-parser" "^3.0.6" + "@aws-sdk/client-sso-oidc" "3.679.0" + "@aws-sdk/client-sts" "3.679.0" + "@aws-sdk/core" "3.679.0" + "@aws-sdk/credential-provider-node" "3.679.0" + "@aws-sdk/middleware-bucket-endpoint" "3.679.0" + "@aws-sdk/middleware-expect-continue" "3.679.0" + "@aws-sdk/middleware-flexible-checksums" "3.679.0" + "@aws-sdk/middleware-host-header" "3.679.0" + "@aws-sdk/middleware-location-constraint" "3.679.0" + "@aws-sdk/middleware-logger" "3.679.0" + "@aws-sdk/middleware-recursion-detection" "3.679.0" + "@aws-sdk/middleware-sdk-s3" "3.679.0" + "@aws-sdk/middleware-ssec" "3.679.0" + "@aws-sdk/middleware-user-agent" "3.679.0" + "@aws-sdk/region-config-resolver" "3.679.0" + "@aws-sdk/signature-v4-multi-region" "3.679.0" + "@aws-sdk/types" "3.679.0" + "@aws-sdk/util-endpoints" "3.679.0" + "@aws-sdk/util-user-agent-browser" "3.679.0" + "@aws-sdk/util-user-agent-node" "3.679.0" + "@aws-sdk/xml-builder" "3.679.0" + "@smithy/config-resolver" "^3.0.9" + "@smithy/core" "^2.4.8" + "@smithy/eventstream-serde-browser" "^3.0.10" + "@smithy/eventstream-serde-config-resolver" "^3.0.7" + "@smithy/eventstream-serde-node" "^3.0.9" + "@smithy/fetch-http-handler" "^3.2.9" + "@smithy/hash-blob-browser" "^3.1.6" + "@smithy/hash-node" "^3.0.7" + "@smithy/hash-stream-node" "^3.1.6" + "@smithy/invalid-dependency" "^3.0.7" + "@smithy/md5-js" "^3.0.7" + "@smithy/middleware-content-length" "^3.0.9" + "@smithy/middleware-endpoint" "^3.1.4" + "@smithy/middleware-retry" "^3.0.23" + "@smithy/middleware-serde" "^3.0.7" + "@smithy/middleware-stack" "^3.0.7" + "@smithy/node-config-provider" "^3.1.8" + "@smithy/node-http-handler" "^3.2.4" + "@smithy/protocol-http" "^4.1.4" + "@smithy/smithy-client" "^3.4.0" + "@smithy/types" "^3.5.0" + "@smithy/url-parser" "^3.0.7" "@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.18" - "@smithy/util-defaults-mode-node" "^3.0.18" - "@smithy/util-endpoints" "^2.1.2" - "@smithy/util-middleware" "^3.0.6" - "@smithy/util-retry" "^3.0.6" - "@smithy/util-stream" "^3.1.6" + "@smithy/util-defaults-mode-browser" "^3.0.23" + "@smithy/util-defaults-mode-node" "^3.0.23" + "@smithy/util-endpoints" "^2.1.3" + "@smithy/util-middleware" "^3.0.7" + "@smithy/util-retry" "^3.0.7" + "@smithy/util-stream" "^3.1.9" "@smithy/util-utf8" "^3.0.0" - "@smithy/util-waiter" "^3.1.5" + "@smithy/util-waiter" "^3.1.6" tslib "^2.6.2" -"@aws-sdk/client-sso-oidc@3.654.0": - version "3.654.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/client-sso-oidc/-/client-sso-oidc-3.654.0.tgz#9c02ce49f95203e8b99e896cf0dca6e4858e2da7" - integrity sha512-gbHrKsEnaAtmkNCVQzLyiqMzpDaThV/bWl/ODEklI+t6stW3Pe3oDMstEHLfJ6JU5g8sYnx4VLuxlnJMtUkvPw== +"@aws-sdk/client-sso-oidc@3.679.0": + version "3.679.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/client-sso-oidc/-/client-sso-oidc-3.679.0.tgz#00de670c9ea31c5073f6eed6842795e70bc63fca" + integrity sha512-/dBYWcCwbA/id4sFCIVZvf0UsvzHCC68SryxeNQk/PDkY9N4n5yRcMUkZDaEyQCjowc3kY4JOXp2AdUP037nhA== dependencies: "@aws-crypto/sha256-browser" "5.2.0" "@aws-crypto/sha256-js" "5.2.0" - "@aws-sdk/core" "3.654.0" - "@aws-sdk/credential-provider-node" "3.654.0" - "@aws-sdk/middleware-host-header" "3.654.0" - "@aws-sdk/middleware-logger" "3.654.0" - "@aws-sdk/middleware-recursion-detection" "3.654.0" - "@aws-sdk/middleware-user-agent" "3.654.0" - "@aws-sdk/region-config-resolver" "3.654.0" - "@aws-sdk/types" "3.654.0" - "@aws-sdk/util-endpoints" "3.654.0" - "@aws-sdk/util-user-agent-browser" "3.654.0" - "@aws-sdk/util-user-agent-node" "3.654.0" - "@smithy/config-resolver" "^3.0.8" - "@smithy/core" "^2.4.3" - "@smithy/fetch-http-handler" "^3.2.7" - "@smithy/hash-node" "^3.0.6" - "@smithy/invalid-dependency" "^3.0.6" - "@smithy/middleware-content-length" "^3.0.8" - "@smithy/middleware-endpoint" "^3.1.3" - "@smithy/middleware-retry" "^3.0.18" - "@smithy/middleware-serde" "^3.0.6" - "@smithy/middleware-stack" "^3.0.6" - "@smithy/node-config-provider" "^3.1.7" - "@smithy/node-http-handler" "^3.2.2" - "@smithy/protocol-http" "^4.1.3" - "@smithy/smithy-client" "^3.3.2" - "@smithy/types" "^3.4.2" - "@smithy/url-parser" "^3.0.6" + "@aws-sdk/core" "3.679.0" + "@aws-sdk/credential-provider-node" "3.679.0" + "@aws-sdk/middleware-host-header" "3.679.0" + "@aws-sdk/middleware-logger" "3.679.0" + "@aws-sdk/middleware-recursion-detection" "3.679.0" + "@aws-sdk/middleware-user-agent" "3.679.0" + "@aws-sdk/region-config-resolver" "3.679.0" + "@aws-sdk/types" "3.679.0" + "@aws-sdk/util-endpoints" "3.679.0" + "@aws-sdk/util-user-agent-browser" "3.679.0" + "@aws-sdk/util-user-agent-node" "3.679.0" + "@smithy/config-resolver" "^3.0.9" + "@smithy/core" "^2.4.8" + "@smithy/fetch-http-handler" "^3.2.9" + "@smithy/hash-node" "^3.0.7" + "@smithy/invalid-dependency" "^3.0.7" + "@smithy/middleware-content-length" "^3.0.9" + "@smithy/middleware-endpoint" "^3.1.4" + "@smithy/middleware-retry" "^3.0.23" + "@smithy/middleware-serde" "^3.0.7" + "@smithy/middleware-stack" "^3.0.7" + "@smithy/node-config-provider" "^3.1.8" + "@smithy/node-http-handler" "^3.2.4" + "@smithy/protocol-http" "^4.1.4" + "@smithy/smithy-client" "^3.4.0" + "@smithy/types" "^3.5.0" + "@smithy/url-parser" "^3.0.7" "@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.18" - "@smithy/util-defaults-mode-node" "^3.0.18" - "@smithy/util-endpoints" "^2.1.2" - "@smithy/util-middleware" "^3.0.6" - "@smithy/util-retry" "^3.0.6" + "@smithy/util-defaults-mode-browser" "^3.0.23" + "@smithy/util-defaults-mode-node" "^3.0.23" + "@smithy/util-endpoints" "^2.1.3" + "@smithy/util-middleware" "^3.0.7" + "@smithy/util-retry" "^3.0.7" "@smithy/util-utf8" "^3.0.0" tslib "^2.6.2" -"@aws-sdk/client-sso@3.654.0": - version "3.654.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/client-sso/-/client-sso-3.654.0.tgz#6d800f0cfca97f8acf1fbf46cdac46169201267b" - integrity sha512-4kBxs2IzCDtj6a6lRXa/lXK5wWpMGzwKtb+HMXf/rJYVM6x7wYRzc1hYrOd3DYkFQ/sR3dUFj+0mTP0os3aAbA== +"@aws-sdk/client-sso@3.679.0": + version "3.679.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/client-sso/-/client-sso-3.679.0.tgz#6d6e96ae4e8c3258793e26bcd127b9f9a621dd1b" + integrity sha512-/0cAvYnpOZTo/Y961F1kx2fhDDLUYZ0SQQ5/75gh3xVImLj7Zw+vp74ieqFbqWLYGMaq8z1Arr9A8zG95mbLdg== dependencies: "@aws-crypto/sha256-browser" "5.2.0" "@aws-crypto/sha256-js" "5.2.0" - "@aws-sdk/core" "3.654.0" - "@aws-sdk/middleware-host-header" "3.654.0" - "@aws-sdk/middleware-logger" "3.654.0" - "@aws-sdk/middleware-recursion-detection" "3.654.0" - "@aws-sdk/middleware-user-agent" "3.654.0" - "@aws-sdk/region-config-resolver" "3.654.0" - "@aws-sdk/types" "3.654.0" - "@aws-sdk/util-endpoints" "3.654.0" - "@aws-sdk/util-user-agent-browser" "3.654.0" - "@aws-sdk/util-user-agent-node" "3.654.0" - "@smithy/config-resolver" "^3.0.8" - "@smithy/core" "^2.4.3" - "@smithy/fetch-http-handler" "^3.2.7" - "@smithy/hash-node" "^3.0.6" - "@smithy/invalid-dependency" "^3.0.6" - "@smithy/middleware-content-length" "^3.0.8" - "@smithy/middleware-endpoint" "^3.1.3" - "@smithy/middleware-retry" "^3.0.18" - "@smithy/middleware-serde" "^3.0.6" - "@smithy/middleware-stack" "^3.0.6" - "@smithy/node-config-provider" "^3.1.7" - "@smithy/node-http-handler" "^3.2.2" - "@smithy/protocol-http" "^4.1.3" - "@smithy/smithy-client" "^3.3.2" - "@smithy/types" "^3.4.2" - "@smithy/url-parser" "^3.0.6" + "@aws-sdk/core" "3.679.0" + "@aws-sdk/middleware-host-header" "3.679.0" + "@aws-sdk/middleware-logger" "3.679.0" + "@aws-sdk/middleware-recursion-detection" "3.679.0" + "@aws-sdk/middleware-user-agent" "3.679.0" + "@aws-sdk/region-config-resolver" "3.679.0" + "@aws-sdk/types" "3.679.0" + "@aws-sdk/util-endpoints" "3.679.0" + "@aws-sdk/util-user-agent-browser" "3.679.0" + "@aws-sdk/util-user-agent-node" "3.679.0" + "@smithy/config-resolver" "^3.0.9" + "@smithy/core" "^2.4.8" + "@smithy/fetch-http-handler" "^3.2.9" + "@smithy/hash-node" "^3.0.7" + "@smithy/invalid-dependency" "^3.0.7" + "@smithy/middleware-content-length" "^3.0.9" + "@smithy/middleware-endpoint" "^3.1.4" + "@smithy/middleware-retry" "^3.0.23" + "@smithy/middleware-serde" "^3.0.7" + "@smithy/middleware-stack" "^3.0.7" + "@smithy/node-config-provider" "^3.1.8" + "@smithy/node-http-handler" "^3.2.4" + "@smithy/protocol-http" "^4.1.4" + "@smithy/smithy-client" "^3.4.0" + "@smithy/types" "^3.5.0" + "@smithy/url-parser" "^3.0.7" "@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.18" - "@smithy/util-defaults-mode-node" "^3.0.18" - "@smithy/util-endpoints" "^2.1.2" - "@smithy/util-middleware" "^3.0.6" - "@smithy/util-retry" "^3.0.6" + "@smithy/util-defaults-mode-browser" "^3.0.23" + "@smithy/util-defaults-mode-node" "^3.0.23" + "@smithy/util-endpoints" "^2.1.3" + "@smithy/util-middleware" "^3.0.7" + "@smithy/util-retry" "^3.0.7" "@smithy/util-utf8" "^3.0.0" tslib "^2.6.2" -"@aws-sdk/client-sts@3.654.0": - version "3.654.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/client-sts/-/client-sts-3.654.0.tgz#574194804834f6158cc06d44ab517ec6e4c1c1c2" - integrity sha512-tyHa8jsBy+/NQZFHm6Q2Q09Vi9p3EH4yPy6PU8yPewpi2klreObtrUd0anJa6nzjS9SSuqnlZWsRic3cQ4QwCg== +"@aws-sdk/client-sts@3.679.0": + version "3.679.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/client-sts/-/client-sts-3.679.0.tgz#4641c24032ebd69a6e0e4eb28477749e21e69884" + integrity sha512-3CvrT8w1RjFu1g8vKA5Azfr5V83r2/b68Ock43WE003Bq/5Y38mwmYX7vk0fPHzC3qejt4YMAWk/C3fSKOy25g== dependencies: "@aws-crypto/sha256-browser" "5.2.0" "@aws-crypto/sha256-js" "5.2.0" - "@aws-sdk/client-sso-oidc" "3.654.0" - "@aws-sdk/core" "3.654.0" - "@aws-sdk/credential-provider-node" "3.654.0" - "@aws-sdk/middleware-host-header" "3.654.0" - "@aws-sdk/middleware-logger" "3.654.0" - "@aws-sdk/middleware-recursion-detection" "3.654.0" - "@aws-sdk/middleware-user-agent" "3.654.0" - "@aws-sdk/region-config-resolver" "3.654.0" - "@aws-sdk/types" "3.654.0" - "@aws-sdk/util-endpoints" "3.654.0" - "@aws-sdk/util-user-agent-browser" "3.654.0" - "@aws-sdk/util-user-agent-node" "3.654.0" - "@smithy/config-resolver" "^3.0.8" - "@smithy/core" "^2.4.3" - "@smithy/fetch-http-handler" "^3.2.7" - "@smithy/hash-node" "^3.0.6" - "@smithy/invalid-dependency" "^3.0.6" - "@smithy/middleware-content-length" "^3.0.8" - "@smithy/middleware-endpoint" "^3.1.3" - "@smithy/middleware-retry" "^3.0.18" - "@smithy/middleware-serde" "^3.0.6" - "@smithy/middleware-stack" "^3.0.6" - "@smithy/node-config-provider" "^3.1.7" - "@smithy/node-http-handler" "^3.2.2" - "@smithy/protocol-http" "^4.1.3" - "@smithy/smithy-client" "^3.3.2" - "@smithy/types" "^3.4.2" - "@smithy/url-parser" "^3.0.6" + "@aws-sdk/client-sso-oidc" "3.679.0" + "@aws-sdk/core" "3.679.0" + "@aws-sdk/credential-provider-node" "3.679.0" + "@aws-sdk/middleware-host-header" "3.679.0" + "@aws-sdk/middleware-logger" "3.679.0" + "@aws-sdk/middleware-recursion-detection" "3.679.0" + "@aws-sdk/middleware-user-agent" "3.679.0" + "@aws-sdk/region-config-resolver" "3.679.0" + "@aws-sdk/types" "3.679.0" + "@aws-sdk/util-endpoints" "3.679.0" + "@aws-sdk/util-user-agent-browser" "3.679.0" + "@aws-sdk/util-user-agent-node" "3.679.0" + "@smithy/config-resolver" "^3.0.9" + "@smithy/core" "^2.4.8" + "@smithy/fetch-http-handler" "^3.2.9" + "@smithy/hash-node" "^3.0.7" + "@smithy/invalid-dependency" "^3.0.7" + "@smithy/middleware-content-length" "^3.0.9" + "@smithy/middleware-endpoint" "^3.1.4" + "@smithy/middleware-retry" "^3.0.23" + "@smithy/middleware-serde" "^3.0.7" + "@smithy/middleware-stack" "^3.0.7" + "@smithy/node-config-provider" "^3.1.8" + "@smithy/node-http-handler" "^3.2.4" + "@smithy/protocol-http" "^4.1.4" + "@smithy/smithy-client" "^3.4.0" + "@smithy/types" "^3.5.0" + "@smithy/url-parser" "^3.0.7" "@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.18" - "@smithy/util-defaults-mode-node" "^3.0.18" - "@smithy/util-endpoints" "^2.1.2" - "@smithy/util-middleware" "^3.0.6" - "@smithy/util-retry" "^3.0.6" + "@smithy/util-defaults-mode-browser" "^3.0.23" + "@smithy/util-defaults-mode-node" "^3.0.23" + "@smithy/util-endpoints" "^2.1.3" + "@smithy/util-middleware" "^3.0.7" + "@smithy/util-retry" "^3.0.7" "@smithy/util-utf8" "^3.0.0" tslib "^2.6.2" -"@aws-sdk/core@3.654.0": - version "3.654.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/core/-/core-3.654.0.tgz#9ccc3618af04b4ff198433a22e27d7db14890917" - integrity sha512-4Rwx7BVaNaFqmXBDmnOkMbyuIFFbpZ+ru4lr660p45zY1QoNNSalechfoRffcokLFOZO+VWEJkdcorPUUU993w== - dependencies: - "@smithy/core" "^2.4.3" - "@smithy/node-config-provider" "^3.1.7" - "@smithy/property-provider" "^3.1.6" - "@smithy/protocol-http" "^4.1.3" - "@smithy/signature-v4" "^4.1.3" - "@smithy/smithy-client" "^3.3.2" - "@smithy/types" "^3.4.2" - "@smithy/util-middleware" "^3.0.6" +"@aws-sdk/core@3.679.0": + version "3.679.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/core/-/core-3.679.0.tgz#102aa1d19db5bdcabefc2dcd044f2fb5d0771568" + integrity sha512-CS6PWGX8l4v/xyvX8RtXnBisdCa5+URzKd0L6GvHChype9qKUVxO/Gg6N/y43Hvg7MNWJt9FBPNWIxUB+byJwg== + dependencies: + "@aws-sdk/types" "3.679.0" + "@smithy/core" "^2.4.8" + "@smithy/node-config-provider" "^3.1.8" + "@smithy/property-provider" "^3.1.7" + "@smithy/protocol-http" "^4.1.4" + "@smithy/signature-v4" "^4.2.0" + "@smithy/smithy-client" "^3.4.0" + "@smithy/types" "^3.5.0" + "@smithy/util-middleware" "^3.0.7" fast-xml-parser "4.4.1" tslib "^2.6.2" -"@aws-sdk/credential-provider-env@3.654.0": - version "3.654.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-env/-/credential-provider-env-3.654.0.tgz#5773a9d969ede7e30059472b26c9e39b3992cc0a" - integrity sha512-kogsx3Ql81JouHS7DkheCDU9MYAvK0AokxjcshDveGmf7BbgbWCA8Fnb9wjQyNDaOXNvkZu8Z8rgkX91z324/w== +"@aws-sdk/credential-provider-env@3.679.0": + version "3.679.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-env/-/credential-provider-env-3.679.0.tgz#abf297714b77197a9da0d3d95a0f5687ae28e5b3" + integrity sha512-EdlTYbzMm3G7VUNAMxr9S1nC1qUNqhKlAxFU8E7cKsAe8Bp29CD5HAs3POc56AVo9GC4yRIS+/mtlZSmrckzUA== dependencies: - "@aws-sdk/types" "3.654.0" - "@smithy/property-provider" "^3.1.6" - "@smithy/types" "^3.4.2" + "@aws-sdk/core" "3.679.0" + "@aws-sdk/types" "3.679.0" + "@smithy/property-provider" "^3.1.7" + "@smithy/types" "^3.5.0" tslib "^2.6.2" -"@aws-sdk/credential-provider-http@3.654.0": - version "3.654.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-http/-/credential-provider-http-3.654.0.tgz#72ce2ff0136eb87ef0c90d435bf1dd61558fe96d" - integrity sha512-tgmAH4MBi/aDR882lfw48+tDV95ZH3GWc1Eoe6DpNLiM3GN2VfU/cZwuHmi6aq+vAbdIlswBHJ/+va0fOvlyjw== - dependencies: - "@aws-sdk/types" "3.654.0" - "@smithy/fetch-http-handler" "^3.2.7" - "@smithy/node-http-handler" "^3.2.2" - "@smithy/property-provider" "^3.1.6" - "@smithy/protocol-http" "^4.1.3" - "@smithy/smithy-client" "^3.3.2" - "@smithy/types" "^3.4.2" - "@smithy/util-stream" "^3.1.6" +"@aws-sdk/credential-provider-http@3.679.0": + version "3.679.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-http/-/credential-provider-http-3.679.0.tgz#9fc29f4ec7ab52ecf394288c05295823e818d812" + integrity sha512-ZoKLubW5DqqV1/2a3TSn+9sSKg0T8SsYMt1JeirnuLJF0mCoYFUaWMyvxxKuxPoqvUsaycxKru4GkpJ10ltNBw== + dependencies: + "@aws-sdk/core" "3.679.0" + "@aws-sdk/types" "3.679.0" + "@smithy/fetch-http-handler" "^3.2.9" + "@smithy/node-http-handler" "^3.2.4" + "@smithy/property-provider" "^3.1.7" + "@smithy/protocol-http" "^4.1.4" + "@smithy/smithy-client" "^3.4.0" + "@smithy/types" "^3.5.0" + "@smithy/util-stream" "^3.1.9" tslib "^2.6.2" -"@aws-sdk/credential-provider-ini@3.654.0": - version "3.654.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-ini/-/credential-provider-ini-3.654.0.tgz#557b3774d4ab3d127f96cb2cd29419b2a8569796" - integrity sha512-DKSdaNu2hwdmuvnm9KnA0NLqMWxxmxSOLWjSUSoFIm++wGXUjPrRMFYKvMktaXnPuyf5my8gF/yGbwzPZ8wlTg== - dependencies: - "@aws-sdk/credential-provider-env" "3.654.0" - "@aws-sdk/credential-provider-http" "3.654.0" - "@aws-sdk/credential-provider-process" "3.654.0" - "@aws-sdk/credential-provider-sso" "3.654.0" - "@aws-sdk/credential-provider-web-identity" "3.654.0" - "@aws-sdk/types" "3.654.0" - "@smithy/credential-provider-imds" "^3.2.3" - "@smithy/property-provider" "^3.1.6" - "@smithy/shared-ini-file-loader" "^3.1.7" - "@smithy/types" "^3.4.2" +"@aws-sdk/credential-provider-ini@3.679.0": + version "3.679.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-ini/-/credential-provider-ini-3.679.0.tgz#0115c9e4813de3fcf0bf20f6156b6bf4b62d8431" + integrity sha512-Rg7t8RwUzKcumpipG4neZqaeJ6DF+Bco1+FHn5BZB68jpvwvjBjcQUuWkxj18B6ctYHr1fkunnzeKEn/+vy7+w== + dependencies: + "@aws-sdk/core" "3.679.0" + "@aws-sdk/credential-provider-env" "3.679.0" + "@aws-sdk/credential-provider-http" "3.679.0" + "@aws-sdk/credential-provider-process" "3.679.0" + "@aws-sdk/credential-provider-sso" "3.679.0" + "@aws-sdk/credential-provider-web-identity" "3.679.0" + "@aws-sdk/types" "3.679.0" + "@smithy/credential-provider-imds" "^3.2.4" + "@smithy/property-provider" "^3.1.7" + "@smithy/shared-ini-file-loader" "^3.1.8" + "@smithy/types" "^3.5.0" tslib "^2.6.2" -"@aws-sdk/credential-provider-node@3.654.0": - version "3.654.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-node/-/credential-provider-node-3.654.0.tgz#a701dda47eea2a3d5996d97672c058949ef41d3b" - integrity sha512-wPV7CNYaXDEc+SS+3R0v8SZwkHRUE1z2k2j1d49tH5QBDT4tb/k2V/biXWkwSk3hbR+IMWXmuhJDv/5lybhIvg== - dependencies: - "@aws-sdk/credential-provider-env" "3.654.0" - "@aws-sdk/credential-provider-http" "3.654.0" - "@aws-sdk/credential-provider-ini" "3.654.0" - "@aws-sdk/credential-provider-process" "3.654.0" - "@aws-sdk/credential-provider-sso" "3.654.0" - "@aws-sdk/credential-provider-web-identity" "3.654.0" - "@aws-sdk/types" "3.654.0" - "@smithy/credential-provider-imds" "^3.2.3" - "@smithy/property-provider" "^3.1.6" - "@smithy/shared-ini-file-loader" "^3.1.7" - "@smithy/types" "^3.4.2" +"@aws-sdk/credential-provider-node@3.679.0": + version "3.679.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-node/-/credential-provider-node-3.679.0.tgz#f3012b7e305aa1151c1472ece3f422f66666bc7c" + integrity sha512-E3lBtaqCte8tWs6Rkssc8sLzvGoJ10TLGvpkijOlz43wPd6xCRh1YLwg6zolf9fVFtEyUs/GsgymiASOyxhFtw== + dependencies: + "@aws-sdk/credential-provider-env" "3.679.0" + "@aws-sdk/credential-provider-http" "3.679.0" + "@aws-sdk/credential-provider-ini" "3.679.0" + "@aws-sdk/credential-provider-process" "3.679.0" + "@aws-sdk/credential-provider-sso" "3.679.0" + "@aws-sdk/credential-provider-web-identity" "3.679.0" + "@aws-sdk/types" "3.679.0" + "@smithy/credential-provider-imds" "^3.2.4" + "@smithy/property-provider" "^3.1.7" + "@smithy/shared-ini-file-loader" "^3.1.8" + "@smithy/types" "^3.5.0" tslib "^2.6.2" -"@aws-sdk/credential-provider-process@3.654.0": - version "3.654.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-process/-/credential-provider-process-3.654.0.tgz#2c526d0d059eddfe4176933fadbbf8bd59480642" - integrity sha512-PmQoo8sZ9Q2Ow8OMzK++Z9lI7MsRUG7sNq3E72DVA215dhtTICTDQwGlXH2AAmIp7n+G9LLRds+4wo2ehG4mkg== +"@aws-sdk/credential-provider-process@3.679.0": + version "3.679.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-process/-/credential-provider-process-3.679.0.tgz#a06b5193cdad2c14382708bcd44d487af52b11dc" + integrity sha512-u/p4TV8kQ0zJWDdZD4+vdQFTMhkDEJFws040Gm113VHa/Xo1SYOjbpvqeuFoz6VmM0bLvoOWjxB9MxnSQbwKpQ== dependencies: - "@aws-sdk/types" "3.654.0" - "@smithy/property-provider" "^3.1.6" - "@smithy/shared-ini-file-loader" "^3.1.7" - "@smithy/types" "^3.4.2" + "@aws-sdk/core" "3.679.0" + "@aws-sdk/types" "3.679.0" + "@smithy/property-provider" "^3.1.7" + "@smithy/shared-ini-file-loader" "^3.1.8" + "@smithy/types" "^3.5.0" tslib "^2.6.2" -"@aws-sdk/credential-provider-sso@3.654.0": - version "3.654.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-sso/-/credential-provider-sso-3.654.0.tgz#cb6cd05a8279c6ffe7e7399c03ba2db5ef2534f5" - integrity sha512-7GFme6fWEdA/XYKzZPOAdj/jS6fMBy1NdSIZsDXikS0v9jU+ZzHrAaWt13YLzHyjgxB9Sg9id9ncdY1IiubQXQ== - dependencies: - "@aws-sdk/client-sso" "3.654.0" - "@aws-sdk/token-providers" "3.654.0" - "@aws-sdk/types" "3.654.0" - "@smithy/property-provider" "^3.1.6" - "@smithy/shared-ini-file-loader" "^3.1.7" - "@smithy/types" "^3.4.2" +"@aws-sdk/credential-provider-sso@3.679.0": + version "3.679.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-sso/-/credential-provider-sso-3.679.0.tgz#ad07de8f9a0c3e5fe7bd660e1847867643ab480e" + integrity sha512-SAtWonhi9asxn0ukEbcE81jkyanKgqpsrtskvYPpO9Z9KOednM4Cqt6h1bfcS9zaHjN2zu815Gv8O7WiV+F/DQ== + dependencies: + "@aws-sdk/client-sso" "3.679.0" + "@aws-sdk/core" "3.679.0" + "@aws-sdk/token-providers" "3.679.0" + "@aws-sdk/types" "3.679.0" + "@smithy/property-provider" "^3.1.7" + "@smithy/shared-ini-file-loader" "^3.1.8" + "@smithy/types" "^3.5.0" tslib "^2.6.2" -"@aws-sdk/credential-provider-web-identity@3.654.0": - version "3.654.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-web-identity/-/credential-provider-web-identity-3.654.0.tgz#67dc0463d20f801c8577276e2066f9151b2d5eb1" - integrity sha512-6a2g9gMtZToqSu+CusjNK5zvbLJahQ9di7buO3iXgbizXpLXU1rnawCpWxwslMpT5fLgMSKDnKDrr6wdEk7jSw== +"@aws-sdk/credential-provider-web-identity@3.679.0": + version "3.679.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-web-identity/-/credential-provider-web-identity-3.679.0.tgz#5871c44e5846e7c93810fd033224c00493db65a3" + integrity sha512-a74tLccVznXCaBefWPSysUcLXYJiSkeUmQGtalNgJ1vGkE36W5l/8czFiiowdWdKWz7+x6xf0w+Kjkjlj42Ung== dependencies: - "@aws-sdk/types" "3.654.0" - "@smithy/property-provider" "^3.1.6" - "@smithy/types" "^3.4.2" + "@aws-sdk/core" "3.679.0" + "@aws-sdk/types" "3.679.0" + "@smithy/property-provider" "^3.1.7" + "@smithy/types" "^3.5.0" tslib "^2.6.2" -"@aws-sdk/middleware-bucket-endpoint@3.654.0": - version "3.654.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-bucket-endpoint/-/middleware-bucket-endpoint-3.654.0.tgz#f8241db792eb951e1aaa127911e9d35ae11f45f2" - integrity sha512-/lWkyeLESiK+rAB4+NCw1cVPle9RN7RW/v7B4b8ORiCn1FwZLUPmEiZSYzyh4in5oa3Mri+W/g+KafZDH6LCbA== +"@aws-sdk/middleware-bucket-endpoint@3.679.0": + version "3.679.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-bucket-endpoint/-/middleware-bucket-endpoint-3.679.0.tgz#cc5acad018d3b1646340fa2d0d0d412436b95e04" + integrity sha512-5EpiPhhGgnF+uJR4DzWUk6Lx3pOn9oM6JGXxeHsiynfoBfq7vHMleq+uABHHSQS+y7XzbyZ7x8tXNQlliMwOsg== dependencies: - "@aws-sdk/types" "3.654.0" - "@aws-sdk/util-arn-parser" "3.568.0" - "@smithy/node-config-provider" "^3.1.7" - "@smithy/protocol-http" "^4.1.3" - "@smithy/types" "^3.4.2" + "@aws-sdk/types" "3.679.0" + "@aws-sdk/util-arn-parser" "3.679.0" + "@smithy/node-config-provider" "^3.1.8" + "@smithy/protocol-http" "^4.1.4" + "@smithy/types" "^3.5.0" "@smithy/util-config-provider" "^3.0.0" tslib "^2.6.2" -"@aws-sdk/middleware-expect-continue@3.654.0": - version "3.654.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-expect-continue/-/middleware-expect-continue-3.654.0.tgz#ccf64bd5dbde3266181a00052bad8f78fcc1914e" - integrity sha512-S7fSlo8vdjkQTy9DmdF54ZsPwc+aA4z5Y9JVqAlGL9QiZe/fPtRE3GZ8BBbMICjBfMEa12tWjzhDz9su2c6PIA== +"@aws-sdk/middleware-expect-continue@3.679.0": + version "3.679.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-expect-continue/-/middleware-expect-continue-3.679.0.tgz#6b22403fa6d7a7b9b0312c4453cfef69da66334b" + integrity sha512-nYsh9PdWrF4EahTRdXHGlNud82RPc508CNGdh1lAGfPU3tNveGfMBX3PcGBtPOse3p9ebNKRWVmUc9eXSjGvHA== dependencies: - "@aws-sdk/types" "3.654.0" - "@smithy/protocol-http" "^4.1.3" - "@smithy/types" "^3.4.2" + "@aws-sdk/types" "3.679.0" + "@smithy/protocol-http" "^4.1.4" + "@smithy/types" "^3.5.0" tslib "^2.6.2" -"@aws-sdk/middleware-flexible-checksums@3.654.0": - version "3.654.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-flexible-checksums/-/middleware-flexible-checksums-3.654.0.tgz#2868528c66c1f0094811668e2e89b246ca94352a" - integrity sha512-ZSRC+Lf9WxyoDLuTkd7JrFRrBLPLXcTOZzX6tDsnHc6tgdneBNwV3/ZOYUwQ8bdwLLnzSaQUU+X5B2BkEFKIhQ== +"@aws-sdk/middleware-flexible-checksums@3.679.0": + version "3.679.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-flexible-checksums/-/middleware-flexible-checksums-3.679.0.tgz#ccf5b58f4ad3056076877898d94f2473b667083c" + integrity sha512-2Nf3rnrcog3GRRdXxc623wkQPH3WXhz8oZ+KHuXBeBKX01zbp7bz22QAZKqw3Oo2lv+LQNEDzIfQYn7leXLZGQ== dependencies: "@aws-crypto/crc32" "5.2.0" "@aws-crypto/crc32c" "5.2.0" - "@aws-sdk/types" "3.654.0" + "@aws-sdk/core" "3.679.0" + "@aws-sdk/types" "3.679.0" "@smithy/is-array-buffer" "^3.0.0" - "@smithy/node-config-provider" "^3.1.7" - "@smithy/protocol-http" "^4.1.3" - "@smithy/types" "^3.4.2" - "@smithy/util-middleware" "^3.0.6" + "@smithy/node-config-provider" "^3.1.8" + "@smithy/protocol-http" "^4.1.4" + "@smithy/types" "^3.5.0" + "@smithy/util-middleware" "^3.0.7" "@smithy/util-utf8" "^3.0.0" tslib "^2.6.2" -"@aws-sdk/middleware-host-header@3.654.0": - version "3.654.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-host-header/-/middleware-host-header-3.654.0.tgz#8b02dcc28467d5b48c32cec22fd6e10ffd2a0549" - integrity sha512-rxGgVHWKp8U2ubMv+t+vlIk7QYUaRCHaVpmUlJv0Wv6Q0KeO9a42T9FxHphjOTlCGQOLcjCreL9CF8Qhtb4mdQ== +"@aws-sdk/middleware-host-header@3.679.0": + version "3.679.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-host-header/-/middleware-host-header-3.679.0.tgz#1eabe42250c57a9e28742dd04786781573faad1a" + integrity sha512-y176HuQ8JRY3hGX8rQzHDSbCl9P5Ny9l16z4xmaiLo+Qfte7ee4Yr3yaAKd7GFoJ3/Mhud2XZ37fR015MfYl2w== dependencies: - "@aws-sdk/types" "3.654.0" - "@smithy/protocol-http" "^4.1.3" - "@smithy/types" "^3.4.2" + "@aws-sdk/types" "3.679.0" + "@smithy/protocol-http" "^4.1.4" + "@smithy/types" "^3.5.0" tslib "^2.6.2" -"@aws-sdk/middleware-location-constraint@3.654.0": - version "3.654.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-location-constraint/-/middleware-location-constraint-3.654.0.tgz#a64ab011c390e4c7be75a08e0e104e06ccb4d961" - integrity sha512-Duvv5c4DEQ7P6c0YlcvEUW3xCJi6X2uktafNGjILhVDMQwShSF/aFqNv/ikWU/luQcmWHZ9DtDjTR9UKLh6eTA== +"@aws-sdk/middleware-location-constraint@3.679.0": + version "3.679.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-location-constraint/-/middleware-location-constraint-3.679.0.tgz#99ed75f1bf5ec005656af1c9efdb35aa2ddc7216" + integrity sha512-SA1C1D3XgoKTGxyNsOqd016ONpk46xJLWDgJUd00Zb21Ox5wYCoY6aDRKiaMRW+1VfCJdezs1Do3XLyIU9KxyA== dependencies: - "@aws-sdk/types" "3.654.0" - "@smithy/types" "^3.4.2" + "@aws-sdk/types" "3.679.0" + "@smithy/types" "^3.5.0" tslib "^2.6.2" -"@aws-sdk/middleware-logger@3.654.0": - version "3.654.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-logger/-/middleware-logger-3.654.0.tgz#510495302fb134e1ef2163205f8eaedd46ffe05f" - integrity sha512-OQYb+nWlmASyXfRb989pwkJ9EVUMP1CrKn2eyTk3usl20JZmKo2Vjis6I0tLUkMSxMhnBJJlQKyWkRpD/u1FVg== +"@aws-sdk/middleware-logger@3.679.0": + version "3.679.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-logger/-/middleware-logger-3.679.0.tgz#cb0f205ddb5341d8327fc9ca1897bf06526c1896" + integrity sha512-0vet8InEj7nvIvGKk+ch7bEF5SyZ7Us9U7YTEgXPrBNStKeRUsgwRm0ijPWWd0a3oz2okaEwXsFl7G/vI0XiEA== dependencies: - "@aws-sdk/types" "3.654.0" - "@smithy/types" "^3.4.2" + "@aws-sdk/types" "3.679.0" + "@smithy/types" "^3.5.0" tslib "^2.6.2" -"@aws-sdk/middleware-recursion-detection@3.654.0": - version "3.654.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-recursion-detection/-/middleware-recursion-detection-3.654.0.tgz#4ade897efb6cbbfd72dd62a66999f28fd1552f9a" - integrity sha512-gKSomgltKVmsT8sC6W7CrADZ4GHwX9epk3GcH6QhebVO3LA9LRbkL3TwOPUXakxxOLLUTYdOZLIOtFf7iH00lg== +"@aws-sdk/middleware-recursion-detection@3.679.0": + version "3.679.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-recursion-detection/-/middleware-recursion-detection-3.679.0.tgz#3542de5baa466abffbfe5ee485fd87f60d5f917e" + integrity sha512-sQoAZFsQiW/LL3DfKMYwBoGjYDEnMbA9WslWN8xneCmBAwKo6IcSksvYs23PP8XMIoBGe2I2J9BSr654XWygTQ== dependencies: - "@aws-sdk/types" "3.654.0" - "@smithy/protocol-http" "^4.1.3" - "@smithy/types" "^3.4.2" + "@aws-sdk/types" "3.679.0" + "@smithy/protocol-http" "^4.1.4" + "@smithy/types" "^3.5.0" tslib "^2.6.2" -"@aws-sdk/middleware-sdk-s3@3.654.0": - version "3.654.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-sdk-s3/-/middleware-sdk-s3-3.654.0.tgz#53c87e64e745b45b6ff30ba8f06ed27b1fa7c761" - integrity sha512-6prq+GK6hLMAbxEb83tBMb1YiTWWK196fJhFO/7gE5TUPL1v756RhQZzKV/njbwB1fIBjRBTuhYLh5Bn98HhdA== - dependencies: - "@aws-sdk/core" "3.654.0" - "@aws-sdk/types" "3.654.0" - "@aws-sdk/util-arn-parser" "3.568.0" - "@smithy/core" "^2.4.3" - "@smithy/node-config-provider" "^3.1.7" - "@smithy/protocol-http" "^4.1.3" - "@smithy/signature-v4" "^4.1.3" - "@smithy/smithy-client" "^3.3.2" - "@smithy/types" "^3.4.2" +"@aws-sdk/middleware-sdk-s3@3.679.0": + version "3.679.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-sdk-s3/-/middleware-sdk-s3-3.679.0.tgz#bc3ce2cf5de927f8cb75a0086ad8431a37434b7f" + integrity sha512-4zcT193F7RkEfqlS6ZdwyNQ0UUp9s66msNXgItugasTbjf7oqfWDas7N+BG8ADB/Ql3wvRUh9I+zdrVkxxw3BQ== + dependencies: + "@aws-sdk/core" "3.679.0" + "@aws-sdk/types" "3.679.0" + "@aws-sdk/util-arn-parser" "3.679.0" + "@smithy/core" "^2.4.8" + "@smithy/node-config-provider" "^3.1.8" + "@smithy/protocol-http" "^4.1.4" + "@smithy/signature-v4" "^4.2.0" + "@smithy/smithy-client" "^3.4.0" + "@smithy/types" "^3.5.0" "@smithy/util-config-provider" "^3.0.0" - "@smithy/util-middleware" "^3.0.6" - "@smithy/util-stream" "^3.1.6" + "@smithy/util-middleware" "^3.0.7" + "@smithy/util-stream" "^3.1.9" "@smithy/util-utf8" "^3.0.0" tslib "^2.6.2" -"@aws-sdk/middleware-ssec@3.654.0": - version "3.654.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-ssec/-/middleware-ssec-3.654.0.tgz#025cddb3317e5ab8cfdb1f449c4135441810119b" - integrity sha512-k7hkQDJh4hcRJC7YojQ11kc37SY4foryen26Eafj5qYjeG2OGMW0oZTJDl1TVFJ7AcCjqIuMIo0Ho2US/2JspQ== +"@aws-sdk/middleware-ssec@3.679.0": + version "3.679.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-ssec/-/middleware-ssec-3.679.0.tgz#72c68c46073d1e93654b9b47be61cbcf852d7804" + integrity sha512-4GNUxXbs1M71uFHRiCAZtN0/g23ogI9YjMe5isAuYMHXwDB3MhqF7usKf954mBP6tplvN44vYlbJ84faaLrTtg== dependencies: - "@aws-sdk/types" "3.654.0" - "@smithy/types" "^3.4.2" + "@aws-sdk/types" "3.679.0" + "@smithy/types" "^3.5.0" tslib "^2.6.2" -"@aws-sdk/middleware-user-agent@3.654.0": - version "3.654.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-user-agent/-/middleware-user-agent-3.654.0.tgz#5fa56514b97ced923fefe2653429d7b2bfb102bb" - integrity sha512-liCcqPAyRsr53cy2tYu4qeH4MMN0eh9g6k56XzI5xd4SghXH5YWh4qOYAlQ8T66ZV4nPMtD8GLtLXGzsH8moFg== - dependencies: - "@aws-sdk/types" "3.654.0" - "@aws-sdk/util-endpoints" "3.654.0" - "@smithy/protocol-http" "^4.1.3" - "@smithy/types" "^3.4.2" +"@aws-sdk/middleware-user-agent@3.679.0": + version "3.679.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-user-agent/-/middleware-user-agent-3.679.0.tgz#11e410967405139dee2bf69ca728be76f4e617ef" + integrity sha512-4hdeXhPDURPqQLPd9jCpUEo9fQITXl3NM3W1MwcJpE0gdUM36uXkQOYsTPeeU/IRCLVjK8Htlh2oCaM9iJrLCA== + dependencies: + "@aws-sdk/core" "3.679.0" + "@aws-sdk/types" "3.679.0" + "@aws-sdk/util-endpoints" "3.679.0" + "@smithy/core" "^2.4.8" + "@smithy/protocol-http" "^4.1.4" + "@smithy/types" "^3.5.0" tslib "^2.6.2" -"@aws-sdk/region-config-resolver@3.654.0": - version "3.654.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/region-config-resolver/-/region-config-resolver-3.654.0.tgz#f98e25a6669fde3d747db23eb589732384e213ef" - integrity sha512-ydGOrXJxj3x0sJhsXyTmvJVLAE0xxuTWFJihTl67RtaO7VRNtd82I3P3bwoMMaDn5WpmV5mPo8fEUDRlBm3fPg== +"@aws-sdk/region-config-resolver@3.679.0": + version "3.679.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/region-config-resolver/-/region-config-resolver-3.679.0.tgz#d205dbaea8385aaf05e637fb7cb095c60bc708be" + integrity sha512-Ybx54P8Tg6KKq5ck7uwdjiKif7n/8g1x+V0V9uTjBjRWqaIgiqzXwKWoPj6NCNkE7tJNtqI4JrNxp/3S3HvmRw== dependencies: - "@aws-sdk/types" "3.654.0" - "@smithy/node-config-provider" "^3.1.7" - "@smithy/types" "^3.4.2" + "@aws-sdk/types" "3.679.0" + "@smithy/node-config-provider" "^3.1.8" + "@smithy/types" "^3.5.0" "@smithy/util-config-provider" "^3.0.0" - "@smithy/util-middleware" "^3.0.6" + "@smithy/util-middleware" "^3.0.7" tslib "^2.6.2" -"@aws-sdk/signature-v4-multi-region@3.654.0": - version "3.654.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/signature-v4-multi-region/-/signature-v4-multi-region-3.654.0.tgz#717ec39af4ec371ee463d0e51fa3985a2fb784ac" - integrity sha512-f8kyvbzgD3lSK1kFc3jsDCYjdutcqGO3tOzYO/QIK7BTl5lxc4rm6IKTcF2UYJsn8jiNqih7tVK8aVIGi8IF/w== +"@aws-sdk/signature-v4-multi-region@3.679.0": + version "3.679.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/signature-v4-multi-region/-/signature-v4-multi-region-3.679.0.tgz#174ed23967d70513345a446cb12cb9cd13026141" + integrity sha512-g1D57e7YBhgXihCWIRBcTUvKquS3FS27xuA24EynY9teiTIq7vHkASxxDnMMMcmKHnCKLI5pkznjk0PuDJ4uJw== dependencies: - "@aws-sdk/middleware-sdk-s3" "3.654.0" - "@aws-sdk/types" "3.654.0" - "@smithy/protocol-http" "^4.1.3" - "@smithy/signature-v4" "^4.1.3" - "@smithy/types" "^3.4.2" + "@aws-sdk/middleware-sdk-s3" "3.679.0" + "@aws-sdk/types" "3.679.0" + "@smithy/protocol-http" "^4.1.4" + "@smithy/signature-v4" "^4.2.0" + "@smithy/types" "^3.5.0" tslib "^2.6.2" -"@aws-sdk/token-providers@3.654.0": - version "3.654.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/token-providers/-/token-providers-3.654.0.tgz#1aba36d510d471ccac43f90b59e2a354399ed069" - integrity sha512-D8GeJYmvbfWkQDtTB4owmIobSMexZel0fOoetwvgCQ/7L8VPph3Q2bn1TRRIXvH7wdt6DcDxA3tKMHPBkT3GlA== +"@aws-sdk/token-providers@3.679.0": + version "3.679.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/token-providers/-/token-providers-3.679.0.tgz#7ec462d93941dd3cfdc245104ad32971f6ebc4f6" + integrity sha512-1/+Zso/x2jqgutKixYFQEGli0FELTgah6bm7aB+m2FAWH4Hz7+iMUsazg6nSWm714sG9G3h5u42Dmpvi9X6/hA== dependencies: - "@aws-sdk/types" "3.654.0" - "@smithy/property-provider" "^3.1.6" - "@smithy/shared-ini-file-loader" "^3.1.7" - "@smithy/types" "^3.4.2" + "@aws-sdk/types" "3.679.0" + "@smithy/property-provider" "^3.1.7" + "@smithy/shared-ini-file-loader" "^3.1.8" + "@smithy/types" "^3.5.0" tslib "^2.6.2" -"@aws-sdk/types@3.654.0", "@aws-sdk/types@^3.222.0": - version "3.654.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/types/-/types-3.654.0.tgz#d368dda5e8aff9e7b6575985bb425bbbaf67aa97" - integrity sha512-VWvbED3SV+10QJIcmU/PKjsKilsTV16d1I7/on4bvD/jo1qGeMXqLDBSen3ks/tuvXZF/mFc7ZW/W2DiLVtO7A== +"@aws-sdk/types@3.679.0", "@aws-sdk/types@^3.222.0": + version "3.679.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/types/-/types-3.679.0.tgz#3737bb0f190add9e788b838a24cd5d8106dbed4f" + integrity sha512-NwVq8YvInxQdJ47+zz4fH3BRRLC6lL+WLkvr242PVBbUOLRyK/lkwHlfiKUoeVIMyK5NF+up6TRg71t/8Bny6Q== dependencies: - "@smithy/types" "^3.4.2" + "@smithy/types" "^3.5.0" tslib "^2.6.2" -"@aws-sdk/util-arn-parser@3.568.0": - version "3.568.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/util-arn-parser/-/util-arn-parser-3.568.0.tgz#6a19a8c6bbaa520b6be1c278b2b8c17875b91527" - integrity sha512-XUKJWWo+KOB7fbnPP0+g/o5Ulku/X53t7i/h+sPHr5xxYTJJ9CYnbToo95mzxe7xWvkLrsNtJ8L+MnNn9INs2w== +"@aws-sdk/util-arn-parser@3.679.0": + version "3.679.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/util-arn-parser/-/util-arn-parser-3.679.0.tgz#1b7793c8ae31305ca6c6f7497066f3e74ad69716" + integrity sha512-CwzEbU8R8rq9bqUFryO50RFBlkfufV9UfMArHPWlo+lmsC+NlSluHQALoj6Jkq3zf5ppn1CN0c1DDLrEqdQUXg== dependencies: tslib "^2.6.2" -"@aws-sdk/util-endpoints@3.654.0": - version "3.654.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/util-endpoints/-/util-endpoints-3.654.0.tgz#ae8ac05c8afe73cf1428942c3a6d0ab8765f3911" - integrity sha512-i902fcBknHs0Irgdpi62+QMvzxE+bczvILXigYrlHL4+PiEnlMVpni5L5W1qCkNZXf8AaMrSBuR1NZAGp6UOUw== +"@aws-sdk/util-endpoints@3.679.0": + version "3.679.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/util-endpoints/-/util-endpoints-3.679.0.tgz#b249ad8b4289e634cb5dfb3873a70b7aecbf323f" + integrity sha512-YL6s4Y/1zC45OvddvgE139fjeWSKKPgLlnfrvhVL7alNyY9n7beR4uhoDpNrt5mI6sn9qiBF17790o+xLAXjjg== dependencies: - "@aws-sdk/types" "3.654.0" - "@smithy/types" "^3.4.2" - "@smithy/util-endpoints" "^2.1.2" + "@aws-sdk/types" "3.679.0" + "@smithy/types" "^3.5.0" + "@smithy/util-endpoints" "^2.1.3" tslib "^2.6.2" "@aws-sdk/util-locate-window@^3.0.0": - version "3.568.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/util-locate-window/-/util-locate-window-3.568.0.tgz#2acc4b2236af0d7494f7e517401ba6b3c4af11ff" - integrity sha512-3nh4TINkXYr+H41QaPelCceEB2FXP3fxp93YZXB/kqJvX0U9j0N0Uk45gvsjmEPzG8XxkPEeLIfT2I1M7A6Lig== + version "3.679.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/util-locate-window/-/util-locate-window-3.679.0.tgz#8d5898624691e12ccbad839e103562002bbec85e" + integrity sha512-zKTd48/ZWrCplkXpYDABI74rQlbR0DNHs8nH95htfSLj9/mWRSwaGptoxwcihaq/77vi/fl2X3y0a1Bo8bt7RA== dependencies: tslib "^2.6.2" -"@aws-sdk/util-user-agent-browser@3.654.0": - version "3.654.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/util-user-agent-browser/-/util-user-agent-browser-3.654.0.tgz#caa5e5d6d502aad1fe5a436cffbabfff1ec3b92c" - integrity sha512-ykYAJqvnxLt7wfrqya28wuH3/7NdrwzfiFd7NqEVQf7dXVxL5RPEpD7DxjcyQo3DsHvvdUvGZVaQhozycn1pzA== +"@aws-sdk/util-user-agent-browser@3.679.0": + version "3.679.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/util-user-agent-browser/-/util-user-agent-browser-3.679.0.tgz#bbaa5a8771c8a16388cd3cd934bb84a641ce907d" + integrity sha512-CusSm2bTBG1kFypcsqU8COhnYc6zltobsqs3nRrvYqYaOqtMnuE46K4XTWpnzKgwDejgZGOE+WYyprtAxrPvmQ== dependencies: - "@aws-sdk/types" "3.654.0" - "@smithy/types" "^3.4.2" + "@aws-sdk/types" "3.679.0" + "@smithy/types" "^3.5.0" bowser "^2.11.0" tslib "^2.6.2" -"@aws-sdk/util-user-agent-node@3.654.0": - version "3.654.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/util-user-agent-node/-/util-user-agent-node-3.654.0.tgz#d4b88fa9f3fce2fd70118d2c01abd941d30cffa7" - integrity sha512-a0ojjdBN6pqv6gB4H/QPPSfhs7mFtlVwnmKCM/QrTaFzN0U810PJ1BST3lBx5sa23I5jWHGaoFY+5q65C3clLQ== +"@aws-sdk/util-user-agent-node@3.679.0": + version "3.679.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/util-user-agent-node/-/util-user-agent-node-3.679.0.tgz#0d1cd6eba18bfe6d0106d78fc7aa9b74889c462b" + integrity sha512-Bw4uXZ+NU5ed6TNfo4tBbhBSW+2eQxXYjYBGl5gLUNUpg2pDFToQAP6rXBFiwcG52V2ny5oLGiD82SoYuYkAVg== dependencies: - "@aws-sdk/types" "3.654.0" - "@smithy/node-config-provider" "^3.1.7" - "@smithy/types" "^3.4.2" + "@aws-sdk/middleware-user-agent" "3.679.0" + "@aws-sdk/types" "3.679.0" + "@smithy/node-config-provider" "^3.1.8" + "@smithy/types" "^3.5.0" tslib "^2.6.2" -"@aws-sdk/xml-builder@3.654.0": - version "3.654.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/xml-builder/-/xml-builder-3.654.0.tgz#28d295a1a9bbe6313ba240ce9cf851e894fcd449" - integrity sha512-qA2diK3d/ztC8HUb7NwPKbJRV01NpzTzxFn+L5G3HzJBNeKbjLcprQ/9uG9gp2UEx2Go782FI1ddrMNa0qBICA== +"@aws-sdk/xml-builder@3.679.0": + version "3.679.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/xml-builder/-/xml-builder-3.679.0.tgz#96ccb7a4a4d4faa881d1fec5fc0554dc726843b5" + integrity sha512-nPmhVZb39ty5bcQ7mAwtjezBcsBqTYZ9A2D9v/lE92KCLdu5RhSkPH7O71ZqbZx1mUSg9fAOxHPiG79U5VlpLQ== dependencies: - "@smithy/types" "^3.4.2" + "@smithy/types" "^3.5.0" tslib "^2.6.2" -"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.12.13", "@babel/code-frame@^7.24.7": - version "7.24.7" - resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.24.7.tgz#882fd9e09e8ee324e496bd040401c6f046ef4465" - integrity sha512-BcYH1CVJBO9tvyIZ2jVeXgSIMvGZ2FDRvDdOIVQyuklNKSsx+eppDEBq/g47Ayw+RqNFE+URvOShmf+f/qwAlA== +"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.12.13", "@babel/code-frame@^7.24.7", "@babel/code-frame@^7.25.9", "@babel/code-frame@^7.26.0": + version "7.26.0" + resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.26.0.tgz#9374b5cd068d128dac0b94ff482594273b1c2815" + integrity sha512-INCKxTtbXtcNbUZ3YXutwMpEleqttcswhAdee7dhuoVrD2cnuc3PqtERBtxkX5nziX9vnBL8WXmSGwv8CuPV6g== dependencies: - "@babel/highlight" "^7.24.7" + "@babel/helper-validator-identifier" "^7.25.9" + js-tokens "^4.0.0" picocolors "^1.0.0" -"@babel/compat-data@^7.25.2": - version "7.25.4" - resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.25.4.tgz#7d2a80ce229890edcf4cc259d4d696cb4dae2fcb" - integrity sha512-+LGRog6RAsCJrrrg/IO6LGmpphNe5DiK30dGjCoxxeGv49B10/3XYGxPsAwrDlMFcFEvdAUavDT8r9k/hSyQqQ== +"@babel/compat-data@^7.25.9": + version "7.26.0" + resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.26.0.tgz#f02ba6d34e88fadd5e8861e8b38902f43cc1c819" + integrity sha512-qETICbZSLe7uXv9VE8T/RWOdIE5qqyTucOt4zLYMafj2MRO271VGgLd4RACJMeBO37UPWhXiKMBk7YlJ0fOzQA== "@babel/core@^7.11.6", "@babel/core@^7.12.3", "@babel/core@^7.23.9", "@babel/core@^7.24.7": - version "7.25.2" - resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.25.2.tgz#ed8eec275118d7613e77a352894cd12ded8eba77" - integrity sha512-BBt3opiCOxUr9euZ5/ro/Xv8/V7yJ5bjYMqG/C1YAo8MIKAnumZalCN+msbci3Pigy4lIQfPUpfMM27HMGaYEA== + version "7.26.0" + resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.26.0.tgz#d78b6023cc8f3114ccf049eb219613f74a747b40" + integrity sha512-i1SLeK+DzNnQ3LL/CswPCa/E5u4lh1k6IAEphON8F+cXt0t9euTshDru0q7/IqMa1PMPz5RnHuHscF8/ZJsStg== dependencies: "@ampproject/remapping" "^2.2.0" - "@babel/code-frame" "^7.24.7" - "@babel/generator" "^7.25.0" - "@babel/helper-compilation-targets" "^7.25.2" - "@babel/helper-module-transforms" "^7.25.2" - "@babel/helpers" "^7.25.0" - "@babel/parser" "^7.25.0" - "@babel/template" "^7.25.0" - "@babel/traverse" "^7.25.2" - "@babel/types" "^7.25.2" + "@babel/code-frame" "^7.26.0" + "@babel/generator" "^7.26.0" + "@babel/helper-compilation-targets" "^7.25.9" + "@babel/helper-module-transforms" "^7.26.0" + "@babel/helpers" "^7.26.0" + "@babel/parser" "^7.26.0" + "@babel/template" "^7.25.9" + "@babel/traverse" "^7.25.9" + "@babel/types" "^7.26.0" convert-source-map "^2.0.0" debug "^4.1.0" gensync "^1.0.0-beta.2" @@ -705,9 +717,9 @@ semver "^6.3.1" "@babel/eslint-parser@^7.24.7": - version "7.25.1" - resolved "https://registry.yarnpkg.com/@babel/eslint-parser/-/eslint-parser-7.25.1.tgz#469cee4bd18a88ff3edbdfbd227bd20e82aa9b82" - integrity sha512-Y956ghgTT4j7rKesabkh5WeqgSFZVFwaPR0IWFm7KFHFmmJ4afbG49SmfW4S+GyRPx0Dy5jxEWA5t0rpxfElWg== + version "7.25.9" + resolved "https://registry.yarnpkg.com/@babel/eslint-parser/-/eslint-parser-7.25.9.tgz#603c68a63078796527bc9d0833f5e52dd5f9224c" + integrity sha512-5UXfgpK0j0Xr/xIdgdLEhOFxaDZ0bRPWJJchRpqOSur/3rZoPbqqki5mm0p4NE2cs28krBEiSM2MB7//afRSQQ== dependencies: "@nicolo-ribaudo/eslint-scope-5-internals" "5.1.1-v1" eslint-visitor-keys "^2.1.0" @@ -722,97 +734,79 @@ eslint-visitor-keys "^2.1.0" semver "^6.3.1" -"@babel/generator@^7.24.9", "@babel/generator@^7.25.0", "@babel/generator@^7.25.6", "@babel/generator@^7.7.2": - version "7.25.6" - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.25.6.tgz#0df1ad8cb32fe4d2b01d8bf437f153d19342a87c" - integrity sha512-VPC82gr1seXOpkjAAKoLhP50vx4vGNlF4msF64dSFq1P8RfB+QAuJWGHPXXPc8QyfVWwwB/TNNU4+ayZmHNbZw== +"@babel/generator@^7.24.9", "@babel/generator@^7.25.9", "@babel/generator@^7.26.0", "@babel/generator@^7.7.2": + version "7.26.0" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.26.0.tgz#505cc7c90d92513f458a477e5ef0703e7c91b8d7" + integrity sha512-/AIkAmInnWwgEAJGQr9vY0c66Mj6kjkE2ZPB1PurTRaRAh3U+J45sAQMjQDJdh4WbR3l0x5xkimXBKyBXXAu2w== dependencies: - "@babel/types" "^7.25.6" + "@babel/parser" "^7.26.0" + "@babel/types" "^7.26.0" "@jridgewell/gen-mapping" "^0.3.5" "@jridgewell/trace-mapping" "^0.3.25" - jsesc "^2.5.1" + jsesc "^3.0.2" -"@babel/helper-compilation-targets@^7.24.8", "@babel/helper-compilation-targets@^7.25.2": - version "7.25.2" - resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.25.2.tgz#e1d9410a90974a3a5a66e84ff55ef62e3c02d06c" - integrity sha512-U2U5LsSaZ7TAt3cfaymQ8WHh0pxvdHoEk6HVpaexxixjyEquMh0L0YNJNM6CTGKMXV1iksi0iZkGw4AcFkPaaw== +"@babel/helper-compilation-targets@^7.24.8", "@babel/helper-compilation-targets@^7.25.9": + version "7.25.9" + resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.25.9.tgz#55af025ce365be3cdc0c1c1e56c6af617ce88875" + integrity sha512-j9Db8Suy6yV/VHa4qzrj9yZfZxhLWQdVnRlXxmKLYlhWUVB1sB2G5sxuWYXk/whHD9iW76PmNzxZ4UCnTQTVEQ== dependencies: - "@babel/compat-data" "^7.25.2" - "@babel/helper-validator-option" "^7.24.8" - browserslist "^4.23.1" + "@babel/compat-data" "^7.25.9" + "@babel/helper-validator-option" "^7.25.9" + browserslist "^4.24.0" lru-cache "^5.1.1" semver "^6.3.1" -"@babel/helper-module-imports@^7.24.7": - version "7.24.7" - resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.24.7.tgz#f2f980392de5b84c3328fc71d38bd81bbb83042b" - integrity sha512-8AyH3C+74cgCVVXow/myrynrAGv+nTVg5vKu2nZph9x7RcRwzmh0VFallJuFTZ9mx6u4eSdXZfcOzSqTUm0HCA== +"@babel/helper-module-imports@^7.25.9": + version "7.25.9" + resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.25.9.tgz#e7f8d20602ebdbf9ebbea0a0751fb0f2a4141715" + integrity sha512-tnUA4RsrmflIM6W6RFTLFSXITtl0wKjgpnLgXyowocVPrbYrLUXSBXDgTs8BlbmIzIdlBySRQjINYs2BAkiLtw== dependencies: - "@babel/traverse" "^7.24.7" - "@babel/types" "^7.24.7" + "@babel/traverse" "^7.25.9" + "@babel/types" "^7.25.9" -"@babel/helper-module-transforms@^7.24.9", "@babel/helper-module-transforms@^7.25.2": - version "7.25.2" - resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.25.2.tgz#ee713c29768100f2776edf04d4eb23b8d27a66e6" - integrity sha512-BjyRAbix6j/wv83ftcVJmBt72QtHI56C7JXZoG2xATiLpmoC7dpd8WnkikExHDVPpi/3qCmO6WY1EaXOluiecQ== +"@babel/helper-module-transforms@^7.24.9", "@babel/helper-module-transforms@^7.26.0": + version "7.26.0" + resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.26.0.tgz#8ce54ec9d592695e58d84cd884b7b5c6a2fdeeae" + integrity sha512-xO+xu6B5K2czEnQye6BHA7DolFFmS3LB7stHZFaOLb1pAwO1HWLS8fXA+eh0A2yIvltPVmx3eNNDBJA2SLHXFw== dependencies: - "@babel/helper-module-imports" "^7.24.7" - "@babel/helper-simple-access" "^7.24.7" - "@babel/helper-validator-identifier" "^7.24.7" - "@babel/traverse" "^7.25.2" + "@babel/helper-module-imports" "^7.25.9" + "@babel/helper-validator-identifier" "^7.25.9" + "@babel/traverse" "^7.25.9" -"@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.10.4", "@babel/helper-plugin-utils@^7.12.13", "@babel/helper-plugin-utils@^7.14.5", "@babel/helper-plugin-utils@^7.24.7", "@babel/helper-plugin-utils@^7.24.8", "@babel/helper-plugin-utils@^7.8.0": - version "7.24.8" - resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.8.tgz#94ee67e8ec0e5d44ea7baeb51e571bd26af07878" - integrity sha512-FFWx5142D8h2Mgr/iPVGH5G7w6jDn4jUSpZTyDnQO0Yn7Ks2Kuz6Pci8H6MPCoUJegd/UZQ3tAvfLCxQSnWWwg== +"@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.10.4", "@babel/helper-plugin-utils@^7.12.13", "@babel/helper-plugin-utils@^7.14.5", "@babel/helper-plugin-utils@^7.25.9", "@babel/helper-plugin-utils@^7.8.0": + version "7.25.9" + resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.25.9.tgz#9cbdd63a9443a2c92a725cca7ebca12cc8dd9f46" + integrity sha512-kSMlyUVdWe25rEsRGviIgOWnoT/nfABVWlqt9N19/dIPWViAOW2s9wznP5tURbs/IDuNk4gPy3YdYRgH3uxhBw== -"@babel/helper-simple-access@^7.24.7": - version "7.24.7" - resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.24.7.tgz#bcade8da3aec8ed16b9c4953b74e506b51b5edb3" - integrity sha512-zBAIvbCMh5Ts+b86r/CjU+4XGYIs+R1j951gxI3KmmxBMhCg4oQMsv6ZXQ64XOm/cvzfU1FmoCyt6+owc5QMYg== - dependencies: - "@babel/traverse" "^7.24.7" - "@babel/types" "^7.24.7" +"@babel/helper-string-parser@^7.25.9": + version "7.25.9" + resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.25.9.tgz#1aabb72ee72ed35789b4bbcad3ca2862ce614e8c" + integrity sha512-4A/SCr/2KLd5jrtOMFzaKjVtAei3+2r/NChoBNoZ3EyP/+GlhoaEGoWOZUmFmoITP7zOJyHIMm+DYRd8o3PvHA== -"@babel/helper-string-parser@^7.24.8": - version "7.24.8" - resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.24.8.tgz#5b3329c9a58803d5df425e5785865881a81ca48d" - integrity sha512-pO9KhhRcuUyGnJWwyEgnRJTSIZHiT+vMD0kPeD+so0l7mxkMT19g3pjY9GTnHySck/hDzq+dtW/4VgnMkippsQ== - -"@babel/helper-validator-identifier@^7.24.7": - version "7.24.7" - resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.24.7.tgz#75b889cfaf9e35c2aaf42cf0d72c8e91719251db" - integrity sha512-rR+PBcQ1SMQDDyF6X0wxtG8QyLCgUB0eRAGguqRLfkCA87l7yAP7ehq8SNj96OOGTO8OBV70KhuFYcIkHXOg0w== - -"@babel/helper-validator-option@^7.24.8": - version "7.24.8" - resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.24.8.tgz#3725cdeea8b480e86d34df15304806a06975e33d" - integrity sha512-xb8t9tD1MHLungh/AIoWYN+gVHaB9kwlu8gffXGSt3FFEIT7RjS+xWbc2vUD1UTZdIpKj/ab3rdqJ7ufngyi2Q== +"@babel/helper-validator-identifier@^7.25.9": + version "7.25.9" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.25.9.tgz#24b64e2c3ec7cd3b3c547729b8d16871f22cbdc7" + integrity sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ== -"@babel/helpers@^7.24.8", "@babel/helpers@^7.25.0": - version "7.25.6" - resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.25.6.tgz#57ee60141829ba2e102f30711ffe3afab357cc60" - integrity sha512-Xg0tn4HcfTijTwfDwYlvVCl43V6h4KyVVX2aEm4qdO/PC6L2YvzLHFdmxhoeSA3eslcE6+ZVXHgWwopXYLNq4Q== - dependencies: - "@babel/template" "^7.25.0" - "@babel/types" "^7.25.6" +"@babel/helper-validator-option@^7.25.9": + version "7.25.9" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.25.9.tgz#86e45bd8a49ab7e03f276577f96179653d41da72" + integrity sha512-e/zv1co8pp55dNdEcCynfj9X7nyUKUXoUEwfXqaZt0omVOmDe9oOTdKStH4GmAw6zxMFs50ZayuMfHDKlO7Tfw== -"@babel/highlight@^7.24.7": - version "7.24.7" - resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.24.7.tgz#a05ab1df134b286558aae0ed41e6c5f731bf409d" - integrity sha512-EStJpq4OuY8xYfhGVXngigBJRWxftKX9ksiGDnmlY3o7B/V7KIAc9X4oiK87uPJSc/vs5L869bem5fhZa8caZw== +"@babel/helpers@^7.24.8", "@babel/helpers@^7.26.0": + version "7.26.0" + resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.26.0.tgz#30e621f1eba5aa45fe6f4868d2e9154d884119a4" + integrity sha512-tbhNuIxNcVb21pInl3ZSjksLCvgdZy9KwJ8brv993QtIVKJBBkYXz4q4ZbAv31GdnC+R90np23L5FbEBlthAEw== dependencies: - "@babel/helper-validator-identifier" "^7.24.7" - chalk "^2.4.2" - js-tokens "^4.0.0" - picocolors "^1.0.0" + "@babel/template" "^7.25.9" + "@babel/types" "^7.26.0" -"@babel/parser@^7.1.0", "@babel/parser@^7.14.7", "@babel/parser@^7.20.7", "@babel/parser@^7.23.9", "@babel/parser@^7.24.8", "@babel/parser@^7.25.0", "@babel/parser@^7.25.6": - version "7.25.6" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.25.6.tgz#85660c5ef388cbbf6e3d2a694ee97a38f18afe2f" - integrity sha512-trGdfBdbD0l1ZPmcJ83eNxB9rbEax4ALFTF7fN386TMYbeCQbyme5cOEXQhbGXKebwGaB/J52w1mrklMcbgy6Q== +"@babel/parser@^7.1.0", "@babel/parser@^7.14.7", "@babel/parser@^7.20.7", "@babel/parser@^7.23.9", "@babel/parser@^7.24.8", "@babel/parser@^7.25.9", "@babel/parser@^7.26.0": + version "7.26.0" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.26.0.tgz#710a75a7d805a8f72753154e451474e9795b121c" + integrity sha512-aP8x5pIw3xvYr/sXT+SEUwyhrXT8rUJRZltK/qN3Db80dcKpTett8cJxHyjk+xYSVXvNnl2SfcJVjbwxpOSscA== dependencies: - "@babel/types" "^7.25.6" + "@babel/types" "^7.26.0" "@babel/plugin-syntax-async-generators@^7.8.4": version "7.8.4" @@ -843,11 +837,11 @@ "@babel/helper-plugin-utils" "^7.14.5" "@babel/plugin-syntax-import-attributes@^7.24.7": - version "7.25.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.25.6.tgz#6d4c78f042db0e82fd6436cd65fec5dc78ad2bde" - integrity sha512-sXaDXaJN9SNLymBdlWFA+bjzBhFD617ZaFiY13dGt7TVslVvVgA6fkZOP7Ki3IGElC45lwHdOTrCtKZGVAWeLQ== + version "7.26.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.26.0.tgz#3b1412847699eea739b4f2602c74ce36f6b0b0f7" + integrity sha512-e2dttdsJ1ZTpi3B9UYGLw41hifAubg19AtCu/2I/F1QNVclOBr1dYpTdmdyZ84Xiz43BS/tCUkMAZNLv12Pi+A== dependencies: - "@babel/helper-plugin-utils" "^7.24.8" + "@babel/helper-plugin-utils" "^7.25.9" "@babel/plugin-syntax-import-meta@^7.10.4": version "7.10.4" @@ -864,11 +858,11 @@ "@babel/helper-plugin-utils" "^7.8.0" "@babel/plugin-syntax-jsx@^7.7.2": - version "7.24.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.24.7.tgz#39a1fa4a7e3d3d7f34e2acc6be585b718d30e02d" - integrity sha512-6ddciUPe/mpMnOKv/U+RSd2vvVy+Yw/JfBB0ZHYjEZt9NLHmCUylNYlsbqCCS1Bffjlb0fCwC9Vqz+sBz6PsiQ== + version "7.25.9" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.25.9.tgz#a34313a178ea56f1951599b929c1ceacee719290" + integrity sha512-ld6oezHQMZsZfp6pWtbjaNDF2tiiCYYDqQszHt5VV437lewP9aSi2Of99CK0D0XB21k7FLgnLcmQKyKzynfeAA== dependencies: - "@babel/helper-plugin-utils" "^7.24.7" + "@babel/helper-plugin-utils" "^7.25.9" "@babel/plugin-syntax-logical-assignment-operators@^7.10.4": version "7.10.4" @@ -927,57 +921,56 @@ "@babel/helper-plugin-utils" "^7.14.5" "@babel/plugin-syntax-typescript@^7.7.2": - version "7.25.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.25.4.tgz#04db9ce5a9043d9c635e75ae7969a2cd50ca97ff" - integrity sha512-uMOCoHVU52BsSWxPOMVv5qKRdeSlPuImUCB2dlPuBSU+W2/ROE7/Zg8F2Kepbk+8yBa68LlRKxO+xgEVWorsDg== + version "7.25.9" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.25.9.tgz#67dda2b74da43727cf21d46cf9afef23f4365399" + integrity sha512-hjMgRy5hb8uJJjUcdWunWVcoi9bGpJp8p5Ol1229PoN6aytsLwNMgmdftO23wnCLMfVmTwZDWMPNq/D1SY60JQ== dependencies: - "@babel/helper-plugin-utils" "^7.24.8" + "@babel/helper-plugin-utils" "^7.25.9" "@babel/runtime-corejs3@^7.12.5": - version "7.25.6" - resolved "https://registry.yarnpkg.com/@babel/runtime-corejs3/-/runtime-corejs3-7.25.6.tgz#5e3facf42775cc95bcde95746e940061931286e4" - integrity sha512-Gz0Nrobx8szge6kQQ5Z5MX9L3ObqNwCQY1PSwSNzreFL7aHGxv8Fp2j3ETV6/wWdbiV+mW6OSm8oQhg3Tcsniw== + version "7.26.0" + resolved "https://registry.yarnpkg.com/@babel/runtime-corejs3/-/runtime-corejs3-7.26.0.tgz#5af6bed16073eb4a0191233d61e158a5c768c430" + integrity sha512-YXHu5lN8kJCb1LOb9PgV6pvak43X2h4HvRApcN5SdWeaItQOzfn1hgP6jasD6KWQyJDBxrVmA9o9OivlnNJK/w== dependencies: core-js-pure "^3.30.2" regenerator-runtime "^0.14.0" "@babel/runtime@^7.12.5": - version "7.25.6" - resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.25.6.tgz#9afc3289f7184d8d7f98b099884c26317b9264d2" - integrity sha512-VBj9MYyDb9tuLq7yzqjgzt6Q+IBQLrGZfdjOekyEirZPHxXWoTSGUTMrpsfi58Up73d13NfYLv8HT9vmznjzhQ== + version "7.26.0" + resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.26.0.tgz#8600c2f595f277c60815256418b85356a65173c1" + integrity sha512-FDSOghenHTiToteC/QRlv2q3DhPZ/oOXTBoirfWNx1Cx3TMVcGWQtMMmQcSvb/JjpNeGzx8Pq/b4fKEJuWm1sw== dependencies: regenerator-runtime "^0.14.0" -"@babel/template@^7.24.7", "@babel/template@^7.25.0", "@babel/template@^7.3.3": - version "7.25.0" - resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.25.0.tgz#e733dc3134b4fede528c15bc95e89cb98c52592a" - integrity sha512-aOOgh1/5XzKvg1jvVz7AVrx2piJ2XBi227DHmbY6y+bM9H2FlN+IfecYu4Xl0cNiiVejlsCri89LUsbj8vJD9Q== - dependencies: - "@babel/code-frame" "^7.24.7" - "@babel/parser" "^7.25.0" - "@babel/types" "^7.25.0" - -"@babel/traverse@^7.24.7", "@babel/traverse@^7.24.8", "@babel/traverse@^7.25.2": - version "7.25.6" - resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.25.6.tgz#04fad980e444f182ecf1520504941940a90fea41" - integrity sha512-9Vrcx5ZW6UwK5tvqsj0nGpp/XzqthkT0dqIc9g1AdtygFToNtTF67XzYS//dm+SAK9cp3B9R4ZO/46p63SCjlQ== - dependencies: - "@babel/code-frame" "^7.24.7" - "@babel/generator" "^7.25.6" - "@babel/parser" "^7.25.6" - "@babel/template" "^7.25.0" - "@babel/types" "^7.25.6" +"@babel/template@^7.24.7", "@babel/template@^7.25.9", "@babel/template@^7.3.3": + version "7.25.9" + resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.25.9.tgz#ecb62d81a8a6f5dc5fe8abfc3901fc52ddf15016" + integrity sha512-9DGttpmPvIxBb/2uwpVo3dqJ+O6RooAFOS+lB+xDqoE2PVCE8nfoHMdZLpfCQRLwvohzXISPZcgxt80xLfsuwg== + dependencies: + "@babel/code-frame" "^7.25.9" + "@babel/parser" "^7.25.9" + "@babel/types" "^7.25.9" + +"@babel/traverse@^7.24.8", "@babel/traverse@^7.25.9": + version "7.25.9" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.25.9.tgz#a50f8fe49e7f69f53de5bea7e413cd35c5e13c84" + integrity sha512-ZCuvfwOwlz/bawvAuvcj8rrithP2/N55Tzz342AkTvq4qaWbGfmCk/tKhNaV2cthijKrPAA8SRJV5WWe7IBMJw== + dependencies: + "@babel/code-frame" "^7.25.9" + "@babel/generator" "^7.25.9" + "@babel/parser" "^7.25.9" + "@babel/template" "^7.25.9" + "@babel/types" "^7.25.9" debug "^4.3.1" globals "^11.1.0" -"@babel/types@^7.0.0", "@babel/types@^7.20.7", "@babel/types@^7.24.7", "@babel/types@^7.24.9", "@babel/types@^7.25.0", "@babel/types@^7.25.2", "@babel/types@^7.25.6", "@babel/types@^7.3.3": - version "7.25.6" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.25.6.tgz#893942ddb858f32ae7a004ec9d3a76b3463ef8e6" - integrity sha512-/l42B1qxpG6RdfYf343Uw1vmDjeNhneUXtzhojE7pDgfpEypmRhI6j1kr17XCVv4Cgl9HdAiQY2x0GwKm7rWCw== +"@babel/types@^7.0.0", "@babel/types@^7.20.7", "@babel/types@^7.24.9", "@babel/types@^7.25.9", "@babel/types@^7.26.0", "@babel/types@^7.3.3": + version "7.26.0" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.26.0.tgz#deabd08d6b753bc8e0f198f8709fb575e31774ff" + integrity sha512-Z/yiTPj+lDVnF7lWeKCIJzaIkI0vYO87dMpZ4bg4TDrFe4XXLFWL1TbXU27gBP3QccxV9mZICCrnjnYlJjXHOA== dependencies: - "@babel/helper-string-parser" "^7.24.8" - "@babel/helper-validator-identifier" "^7.24.7" - to-fast-properties "^2.0.0" + "@babel/helper-string-parser" "^7.25.9" + "@babel/helper-validator-identifier" "^7.25.9" "@bcoe/v8-coverage@^0.2.3": version "0.2.3" @@ -1069,9 +1062,9 @@ yoctocolors-cjs "^2.1.2" "@inquirer/figures@^1.0.5", "@inquirer/figures@^1.0.6": - version "1.0.6" - resolved "https://registry.yarnpkg.com/@inquirer/figures/-/figures-1.0.6.tgz#1a562f916da39888c56b65b78259d2261bd7d40b" - integrity sha512-yfZzps3Cso2UbM7WlxKwZQh2Hs6plrbjs1QnzQDZhK2DgyCo6D8AaHps9olkNcUFlcYERMqU3uJSp1gmy3s/qQ== + version "1.0.7" + resolved "https://registry.yarnpkg.com/@inquirer/figures/-/figures-1.0.7.tgz#d050ccc0eabfacc0248c4ff647a9dfba1b01594b" + integrity sha512-m+Trk77mp54Zma6xLkLuY+mvanPxlE4A7yNKs2HBiyZ4UkVs28Mv5c/pgWrHeInx+USHeX/WEPzjrWrcJiQgjw== "@inquirer/input@^2.2.4": version "2.3.0" @@ -1081,7 +1074,7 @@ "@inquirer/core" "^9.1.0" "@inquirer/type" "^1.5.3" -"@inquirer/select@^2.3.10": +"@inquirer/select@^2.5.0": version "2.5.0" resolved "https://registry.yarnpkg.com/@inquirer/select/-/select-2.5.0.tgz#345c6908ecfaeef3d84ddd2f9feb2f487c558efb" integrity sha512-YmDobTItPP3WcEI86GvPo+T2sRHkxxOq/kXmsBjHS5BVXUgvgZ5AfJjkvQvZr03T81NnI3KrrRuMzeuYUQRFOA== @@ -1354,13 +1347,12 @@ "@jridgewell/resolve-uri" "^3.1.0" "@jridgewell/sourcemap-codec" "^1.4.14" -"@jsforce/jsforce-node@^3.4.1": - version "3.4.1" - resolved "https://registry.yarnpkg.com/@jsforce/jsforce-node/-/jsforce-node-3.4.1.tgz#36f5cba775b395eeedba676a78eafe447c3f4b28" - integrity sha512-PsBKfglH0/8W/Srr4LsxEFsVmjmZjEj/T4XLGpbBoK8yVObwbiMk4VqwA6XwiA6SHqnEqqQbHZxk2rr7dZC+4A== +"@jsforce/jsforce-node@^3.6.1": + version "3.6.1" + resolved "https://registry.yarnpkg.com/@jsforce/jsforce-node/-/jsforce-node-3.6.1.tgz#cdd112a33b8139ca798dd4eef91d3dc2a5a0f291" + integrity sha512-N294vrCY7bIdHzTNAHe0t20riTxozEyvCmYPM4rp/C7uGdBX3AYrPDBdojw7rsXOBsRtoFqr7L/tUwMbw1hRTg== dependencies: "@sindresorhus/is" "^4" - abort-controller "^3.0.0" base64url "^3.0.1" csv-parse "^5.5.2" csv-stringify "^6.4.4" @@ -1369,7 +1361,6 @@ https-proxy-agent "^5.0.0" multistream "^3.1.0" node-fetch "^2.6.1" - strip-ansi "^6.0.0" xml2js "^0.6.2" "@lwc/eslint-plugin-lwc@^1.8.0": @@ -1476,10 +1467,10 @@ wordwrap "^1.0.0" wrap-ansi "^7.0.0" -"@oclif/core@^4": - version "4.0.22" - resolved "https://registry.yarnpkg.com/@oclif/core/-/core-4.0.22.tgz#acb233c0c18ff4f365caca15e29e2807a4325709" - integrity sha512-aXM2O4g7f+kPNzhhOfqGOVRVYDxTVrH7Y720MuH0Twq5WHMxI4XwntnyBaRscoCPG6FWhItZLtiZxsvaUdupGg== +"@oclif/core@^4", "@oclif/core@^4.0.29": + version "4.0.30" + resolved "https://registry.yarnpkg.com/@oclif/core/-/core-4.0.30.tgz#65672282756bf19fde3830cab6d8031bf6236064" + integrity sha512-Ak3OUdOcoovIRWZOT6oC5JhZgyJD90uWX/7HjSofn+C4LEmHxxfiyu04a73dwnezfzqDu9jEXfd2mQOOC54KZw== dependencies: ansi-escapes "^4.3.2" ansis "^3.3.2" @@ -1490,9 +1481,10 @@ get-package-type "^0.1.0" globby "^11.1.0" indent-string "^4.0.0" - is-wsl "^2.2.0" + is-wsl "^3" lilconfig "^3.1.2" minimatch "^9.0.5" + semver "^7.6.3" string-width "^4.2.3" supports-color "^8" widest-line "^3.1.0" @@ -1506,17 +1498,17 @@ dependencies: "@oclif/core" "^2.15.0" -"@oclif/plugin-help@^6.2.10": - version "6.2.11" - resolved "https://registry.yarnpkg.com/@oclif/plugin-help/-/plugin-help-6.2.11.tgz#4477cf02778c6051b91cf21add5593fea9c8418c" - integrity sha512-Vo854dALtNhA34g6m4T9uWIrYfm/JFM82LWa5gLrsJGwpUGgeBwBX4P64HLo5ro59LF3YO2xPWViLaoK6gkm3g== +"@oclif/plugin-help@^6.2.14": + version "6.2.16" + resolved "https://registry.yarnpkg.com/@oclif/plugin-help/-/plugin-help-6.2.16.tgz#3cb6c068739bc934159dc430d4f8ca7f9effa22a" + integrity sha512-1x/Bm0LebDouDOfsjkOz+6AXqY6gIZ6JmmU/KuF/GnUmowDvj5i3MFlP9uBTiN8UsOUeT9cdLwnc1kmitHWFTg== dependencies: "@oclif/core" "^4" "@oclif/plugin-not-found@^3.2.21": - version "3.2.21" - resolved "https://registry.yarnpkg.com/@oclif/plugin-not-found/-/plugin-not-found-3.2.21.tgz#a1ef31a0e00fee1bde84d7aea118a269b80f2978" - integrity sha512-1v5MkECOH+mkubpk5RgyVK1qEHn3hr2wX1qsx5hawTyssd10WEFIkH258M9CjyiG42M6ZCQhOS3Wo2wteLo/vg== + version "3.2.22" + resolved "https://registry.yarnpkg.com/@oclif/plugin-not-found/-/plugin-not-found-3.2.22.tgz#f217622cfc61ae047c53059fa7990d982d1e6aff" + integrity sha512-snd/gmYjTYIa8vr5rPLNus0ymKhhITRTFWLlYCJvAZTs2kX+vUMMdpKId9pEPSzoVGmyddNVshWSCJ2FSgR0mg== dependencies: "@inquirer/confirm" "^3.2.0" "@oclif/core" "^4" @@ -1524,9 +1516,9 @@ fast-levenshtein "^3.0.0" "@oclif/plugin-warn-if-update-available@^3.1.11": - version "3.1.16" - resolved "https://registry.yarnpkg.com/@oclif/plugin-warn-if-update-available/-/plugin-warn-if-update-available-3.1.16.tgz#cc51b757fe3d0be075e948455bf190a802fce0dd" - integrity sha512-QGQF1kL+aUj/cTtXdV0GT1n7HNf3HX1ZnCwL86Y9rlZgQbBU9gl8/01/6P/uPj0E+WWExZMVF6+fmktTqwYVQw== + version "3.1.20" + resolved "https://registry.yarnpkg.com/@oclif/plugin-warn-if-update-available/-/plugin-warn-if-update-available-3.1.20.tgz#2ac90286a0b59860c66956c37a74b27f2a4e78d0" + integrity sha512-gvovUQXwWkQZzHG7WknLq+yoSe61Cbv45rEUooKbzo7tfRDChFnCyLQ+OCCldQOsSYvS/KTsiawyyCetSaCR1g== dependencies: "@oclif/core" "^4" ansis "^3.3.1" @@ -1562,11 +1554,11 @@ integrity sha512-zt6OdqaDoOnJ1ZYsCYGt9YmWzDXl4vQdKTyJev62gFhRGKdx7mcT54V9KIjg+d2wi9EXsPvAPKe7i7WjfVWB8g== "@salesforce/cli-plugins-testkit@^5.3.8": - version "5.3.32" - resolved "https://registry.yarnpkg.com/@salesforce/cli-plugins-testkit/-/cli-plugins-testkit-5.3.32.tgz#30018a25d68b21ad2cb4b91c82be1bcf9690629b" - integrity sha512-eXi0n4Ae7igTS4PAvuK19I5utA9p1uQlojNFlvQl0Oiqidy9Rl5i5GWekIAmNrn/hX0gbftwAh4PezB/W5hZ3Q== + version "5.3.34" + resolved "https://registry.yarnpkg.com/@salesforce/cli-plugins-testkit/-/cli-plugins-testkit-5.3.34.tgz#456503a30dade3459e1736a77a362fce2b41947b" + integrity sha512-OiXjWiLM1euGNr+DRK8iaOYAhp1gnhkD9oxbk+TZC2gQ/RYQ39dd/FEIGqyleCmeeFQMWupKXXni1dEighgoCw== dependencies: - "@salesforce/core" "^8.5.7" + "@salesforce/core" "^8.6.2" "@salesforce/kit" "^3.2.3" "@salesforce/ts-types" "^2.0.11" "@types/shelljs" "^0.8.15" @@ -1697,12 +1689,12 @@ semver "^7.6.0" ts-retry-promise "^0.7.1" -"@salesforce/core@^8.5.4", "@salesforce/core@^8.5.7": - version "8.5.7" - resolved "https://registry.yarnpkg.com/@salesforce/core/-/core-8.5.7.tgz#18c98ba383f7030f7e5420677bbd108d1d93dcc3" - integrity sha512-HY2ztRT2QACgWrbze+v+B6L4q+RT9FdswXhVQRssf8ZeJH/kqFnF4U640i+dAFChs9mGGCS2zmm6BTREiwg2LA== +"@salesforce/core@^8.6.2": + version "8.6.3" + resolved "https://registry.yarnpkg.com/@salesforce/core/-/core-8.6.3.tgz#1a4d50eaa2b731c1e480986cef96b414ccafd347" + integrity sha512-fxY3J9AttGztTY45AYH4QP1cKB3OD1fJMDd1j/ALGCI6EMb2iMPp52awKVKHxrd/eTbZhn1OV5Jr0r6nJx5Hhw== dependencies: - "@jsforce/jsforce-node" "^3.4.1" + "@jsforce/jsforce-node" "^3.6.1" "@salesforce/kit" "^3.2.2" "@salesforce/schemas" "^1.9.0" "@salesforce/ts-types" "^2.0.10" @@ -1816,158 +1808,167 @@ resolved "https://registry.yarnpkg.com/@sinonjs/text-encoding/-/text-encoding-0.7.3.tgz#282046f03e886e352b2d5f5da5eb755e01457f3f" integrity sha512-DE427ROAphMQzU4ENbliGYrBSYPXF+TtLg9S8vzeA+OF4ZKzoDdzfL8sxuMUGS/lgRhM6j1URSk9ghf7Xo1tyA== -"@smithy/abort-controller@^3.1.4": - version "3.1.4" - resolved "https://registry.yarnpkg.com/@smithy/abort-controller/-/abort-controller-3.1.4.tgz#7cb22871f7392319c565d1d9ab3cb04e635c4dd9" - integrity sha512-VupaALAQlXViW3/enTf/f5l5JZYSAxoJL7f0nanhNNKnww6DGCg1oYIuNP78KDugnkwthBO6iEcym16HhWV8RQ== +"@smithy/abort-controller@^3.1.6": + version "3.1.6" + resolved "https://registry.yarnpkg.com/@smithy/abort-controller/-/abort-controller-3.1.6.tgz#d9de97b85ca277df6ffb9ee7cd83d5da793ee6de" + integrity sha512-0XuhuHQlEqbNQZp7QxxrFTdVWdwxch4vjxYgfInF91hZFkPxf9QDrdQka0KfxFMPqLNzSw0b95uGTrLliQUavQ== dependencies: - "@smithy/types" "^3.4.2" + "@smithy/types" "^3.6.0" tslib "^2.6.2" -"@smithy/chunked-blob-reader-native@^3.0.0": - version "3.0.0" - resolved "https://registry.yarnpkg.com/@smithy/chunked-blob-reader-native/-/chunked-blob-reader-native-3.0.0.tgz#f1104b30030f76f9aadcbd3cdca4377bd1ba2695" - integrity sha512-VDkpCYW+peSuM4zJip5WDfqvg2Mo/e8yxOv3VF1m11y7B8KKMKVFtmZWDe36Fvk8rGuWrPZHHXZ7rR7uM5yWyg== +"@smithy/chunked-blob-reader-native@^3.0.1": + version "3.0.1" + resolved "https://registry.yarnpkg.com/@smithy/chunked-blob-reader-native/-/chunked-blob-reader-native-3.0.1.tgz#39045ed278ee1b6f4c12715c7565678557274c29" + integrity sha512-VEYtPvh5rs/xlyqpm5NRnfYLZn+q0SRPELbvBV+C/G7IQ+ouTuo+NKKa3ShG5OaFR8NYVMXls9hPYLTvIKKDrQ== dependencies: "@smithy/util-base64" "^3.0.0" tslib "^2.6.2" -"@smithy/chunked-blob-reader@^3.0.0": - version "3.0.0" - resolved "https://registry.yarnpkg.com/@smithy/chunked-blob-reader/-/chunked-blob-reader-3.0.0.tgz#e5d3b04e9b273ba8b7ede47461e2aa96c8aa49e0" - integrity sha512-sbnURCwjF0gSToGlsBiAmd1lRCmSn72nu9axfJu5lIx6RUEgHu6GwTMbqCdhQSi0Pumcm5vFxsi9XWXb2mTaoA== +"@smithy/chunked-blob-reader@^4.0.0": + version "4.0.0" + resolved "https://registry.yarnpkg.com/@smithy/chunked-blob-reader/-/chunked-blob-reader-4.0.0.tgz#754099909957fb1986c16eb88afad75919d7129d" + integrity sha512-jSqRnZvkT4egkq/7b6/QRCNXmmYVcHwnJldqJ3IhVpQE2atObVJ137xmGeuGFhjFUr8gCEVAOKwSY79OvpbDaQ== dependencies: tslib "^2.6.2" -"@smithy/config-resolver@^3.0.8": - version "3.0.8" - resolved "https://registry.yarnpkg.com/@smithy/config-resolver/-/config-resolver-3.0.8.tgz#8717ea934f1d72474a709fc3535d7b8a11de2e33" - integrity sha512-Tv1obAC18XOd2OnDAjSWmmthzx6Pdeh63FbLin8MlPiuJ2ATpKkq0NcNOJFr0dO+JmZXnwu8FQxKJ3TKJ3Hulw== +"@smithy/config-resolver@^3.0.10", "@smithy/config-resolver@^3.0.9": + version "3.0.10" + resolved "https://registry.yarnpkg.com/@smithy/config-resolver/-/config-resolver-3.0.10.tgz#d9529d9893e5fae1f14cb1ffd55517feb6d7e50f" + integrity sha512-Uh0Sz9gdUuz538nvkPiyv1DZRX9+D15EKDtnQP5rYVAzM/dnYk3P8cg73jcxyOitPgT3mE3OVj7ky7sibzHWkw== dependencies: - "@smithy/node-config-provider" "^3.1.7" - "@smithy/types" "^3.4.2" + "@smithy/node-config-provider" "^3.1.9" + "@smithy/types" "^3.6.0" "@smithy/util-config-provider" "^3.0.0" - "@smithy/util-middleware" "^3.0.6" + "@smithy/util-middleware" "^3.0.8" tslib "^2.6.2" -"@smithy/core@^2.4.3": - version "2.4.3" - resolved "https://registry.yarnpkg.com/@smithy/core/-/core-2.4.3.tgz#18344c2ff63f748f625ebc5171755816f3043849" - integrity sha512-4LTusLqFMRVQUfC3RNuTg6IzYTeJNpydRdTKq7J5wdEyIRQSu3rGIa3s80mgG2hhe6WOZl9IqTSo1pgbn6EHhA== - dependencies: - "@smithy/middleware-endpoint" "^3.1.3" - "@smithy/middleware-retry" "^3.0.18" - "@smithy/middleware-serde" "^3.0.6" - "@smithy/protocol-http" "^4.1.3" - "@smithy/smithy-client" "^3.3.2" - "@smithy/types" "^3.4.2" +"@smithy/core@^2.4.8", "@smithy/core@^2.5.1": + version "2.5.1" + resolved "https://registry.yarnpkg.com/@smithy/core/-/core-2.5.1.tgz#7f635b76778afca845bcb401d36f22fa37712f15" + integrity sha512-DujtuDA7BGEKExJ05W5OdxCoyekcKT3Rhg1ZGeiUWaz2BJIWXjZmsG/DIP4W48GHno7AQwRsaCb8NcBgH3QZpg== + dependencies: + "@smithy/middleware-serde" "^3.0.8" + "@smithy/protocol-http" "^4.1.5" + "@smithy/types" "^3.6.0" "@smithy/util-body-length-browser" "^3.0.0" - "@smithy/util-middleware" "^3.0.6" + "@smithy/util-middleware" "^3.0.8" + "@smithy/util-stream" "^3.2.1" "@smithy/util-utf8" "^3.0.0" tslib "^2.6.2" -"@smithy/credential-provider-imds@^3.2.3": - version "3.2.3" - resolved "https://registry.yarnpkg.com/@smithy/credential-provider-imds/-/credential-provider-imds-3.2.3.tgz#93314e58e4f81f2b641de6efac037c7a3250c050" - integrity sha512-VoxMzSzdvkkjMJNE38yQgx4CfnmT+Z+5EUXkg4x7yag93eQkVQgZvN3XBSHC/ylfBbLbAtdu7flTCChX9I+mVg== +"@smithy/credential-provider-imds@^3.2.4", "@smithy/credential-provider-imds@^3.2.5": + version "3.2.5" + resolved "https://registry.yarnpkg.com/@smithy/credential-provider-imds/-/credential-provider-imds-3.2.5.tgz#dbfd849a4a7ebd68519cd9fc35f78d091e126d0a" + integrity sha512-4FTQGAsuwqTzVMmiRVTn0RR9GrbRfkP0wfu/tXWVHd2LgNpTY0uglQpIScXK4NaEyXbB3JmZt8gfVqO50lP8wg== dependencies: - "@smithy/node-config-provider" "^3.1.7" - "@smithy/property-provider" "^3.1.6" - "@smithy/types" "^3.4.2" - "@smithy/url-parser" "^3.0.6" + "@smithy/node-config-provider" "^3.1.9" + "@smithy/property-provider" "^3.1.8" + "@smithy/types" "^3.6.0" + "@smithy/url-parser" "^3.0.8" tslib "^2.6.2" -"@smithy/eventstream-codec@^3.1.5": - version "3.1.5" - resolved "https://registry.yarnpkg.com/@smithy/eventstream-codec/-/eventstream-codec-3.1.5.tgz#2b0d65818425d60e043b8e9d8dee9c6744de0e7b" - integrity sha512-6pu+PT2r+5ZnWEV3vLV1DzyrpJ0TmehQlniIDCSpZg6+Ji2SfOI38EqUyQ+O8lotVElCrfVc9chKtSMe9cmCZQ== +"@smithy/eventstream-codec@^3.1.7": + version "3.1.7" + resolved "https://registry.yarnpkg.com/@smithy/eventstream-codec/-/eventstream-codec-3.1.7.tgz#5bfaffbc83ae374ffd85a755a8200ba3c7aed016" + integrity sha512-kVSXScIiRN7q+s1x7BrQtZ1Aa9hvvP9FeCqCdBxv37GimIHgBCOnZ5Ip80HLt0DhnAKpiobFdGqTFgbaJNrazA== dependencies: "@aws-crypto/crc32" "5.2.0" - "@smithy/types" "^3.4.2" + "@smithy/types" "^3.6.0" "@smithy/util-hex-encoding" "^3.0.0" tslib "^2.6.2" -"@smithy/eventstream-serde-browser@^3.0.9": - version "3.0.9" - resolved "https://registry.yarnpkg.com/@smithy/eventstream-serde-browser/-/eventstream-serde-browser-3.0.9.tgz#bb71b836a8755dd5d5fed85ac2fa500702f60544" - integrity sha512-PiQLo6OQmZAotJweIcObL1H44gkvuJACKMNqpBBe5Rf2Ax1DOcGi/28+feZI7yTe1ERHlQQaGnm8sSkyDUgsMg== +"@smithy/eventstream-serde-browser@^3.0.10": + version "3.0.11" + resolved "https://registry.yarnpkg.com/@smithy/eventstream-serde-browser/-/eventstream-serde-browser-3.0.11.tgz#019f3d1016d893b65ef6efec8c5e2fa925d0ac3d" + integrity sha512-Pd1Wnq3CQ/v2SxRifDUihvpXzirJYbbtXfEnnLV/z0OGCTx/btVX74P86IgrZkjOydOASBGXdPpupYQI+iO/6A== dependencies: - "@smithy/eventstream-serde-universal" "^3.0.8" - "@smithy/types" "^3.4.2" + "@smithy/eventstream-serde-universal" "^3.0.10" + "@smithy/types" "^3.6.0" tslib "^2.6.2" -"@smithy/eventstream-serde-config-resolver@^3.0.6": - version "3.0.6" - resolved "https://registry.yarnpkg.com/@smithy/eventstream-serde-config-resolver/-/eventstream-serde-config-resolver-3.0.6.tgz#538862ef05e549c0ef97b060100a5ffbb5d7adfb" - integrity sha512-iew15It+c7WfnVowWkt2a7cdPp533LFJnpjDQgfZQcxv2QiOcyEcea31mnrk5PVbgo0nNH3VbYGq7myw2q/F6A== +"@smithy/eventstream-serde-config-resolver@^3.0.7": + version "3.0.8" + resolved "https://registry.yarnpkg.com/@smithy/eventstream-serde-config-resolver/-/eventstream-serde-config-resolver-3.0.8.tgz#bba17a358818e61993aaa73e36ea4023c5805556" + integrity sha512-zkFIG2i1BLbfoGQnf1qEeMqX0h5qAznzaZmMVNnvPZz9J5AWBPkOMckZWPedGUPcVITacwIdQXoPcdIQq5FRcg== dependencies: - "@smithy/types" "^3.4.2" + "@smithy/types" "^3.6.0" tslib "^2.6.2" -"@smithy/eventstream-serde-node@^3.0.8": - version "3.0.8" - resolved "https://registry.yarnpkg.com/@smithy/eventstream-serde-node/-/eventstream-serde-node-3.0.8.tgz#0221c555f2851fd847b041f27a6231945822018f" - integrity sha512-6m+wI+fT0na+6oao6UqALVA38fsScCpoG5UO/A8ZSyGLnPM2i4MS1cFUhpuALgvLMxfYoTCh7qSeJa0aG4IWpQ== +"@smithy/eventstream-serde-node@^3.0.9": + version "3.0.10" + resolved "https://registry.yarnpkg.com/@smithy/eventstream-serde-node/-/eventstream-serde-node-3.0.10.tgz#da40b872001390bb47807186855faba8172b3b5b" + integrity sha512-hjpU1tIsJ9qpcoZq9zGHBJPBOeBGYt+n8vfhDwnITPhEre6APrvqq/y3XMDEGUT2cWQ4ramNqBPRbx3qn55rhw== dependencies: - "@smithy/eventstream-serde-universal" "^3.0.8" - "@smithy/types" "^3.4.2" + "@smithy/eventstream-serde-universal" "^3.0.10" + "@smithy/types" "^3.6.0" tslib "^2.6.2" -"@smithy/eventstream-serde-universal@^3.0.8": - version "3.0.8" - resolved "https://registry.yarnpkg.com/@smithy/eventstream-serde-universal/-/eventstream-serde-universal-3.0.8.tgz#0dac5365e3bb349960999b10a4a3c66b77b79dc3" - integrity sha512-09tqzIQ6e+7jLqGvRji1yJoDbL/zob0OFhq75edgStWErGLf16+yI5hRc/o9/YAybOhUZs/swpW2SPn892G5Gg== +"@smithy/eventstream-serde-universal@^3.0.10": + version "3.0.10" + resolved "https://registry.yarnpkg.com/@smithy/eventstream-serde-universal/-/eventstream-serde-universal-3.0.10.tgz#b24e66fec9ec003eb0a1d6733fa22ded43129281" + integrity sha512-ewG1GHbbqsFZ4asaq40KmxCmXO+AFSM1b+DcO2C03dyJj/ZH71CiTg853FSE/3SHK9q3jiYQIFjlGSwfxQ9kww== dependencies: - "@smithy/eventstream-codec" "^3.1.5" - "@smithy/types" "^3.4.2" + "@smithy/eventstream-codec" "^3.1.7" + "@smithy/types" "^3.6.0" tslib "^2.6.2" -"@smithy/fetch-http-handler@^3.2.7": - version "3.2.7" - resolved "https://registry.yarnpkg.com/@smithy/fetch-http-handler/-/fetch-http-handler-3.2.7.tgz#30520ca939fb817d3eb3ab9445ddc0f6c1df2960" - integrity sha512-Ra6IPI1spYLO+t62/3jQbodjOwAbto9wlpJdHZwkycm0Kit+GVpzHW/NMmSgY4rK1bjJ4qLAmCnaBzePO5Nkkg== +"@smithy/fetch-http-handler@^3.2.9": + version "3.2.9" + resolved "https://registry.yarnpkg.com/@smithy/fetch-http-handler/-/fetch-http-handler-3.2.9.tgz#8d5199c162a37caa37a8b6848eefa9ca58221a0b" + integrity sha512-hYNVQOqhFQ6vOpenifFME546f0GfJn2OiQ3M0FDmuUu8V/Uiwy2wej7ZXxFBNqdx0R5DZAqWM1l6VRhGz8oE6A== dependencies: - "@smithy/protocol-http" "^4.1.3" - "@smithy/querystring-builder" "^3.0.6" - "@smithy/types" "^3.4.2" + "@smithy/protocol-http" "^4.1.4" + "@smithy/querystring-builder" "^3.0.7" + "@smithy/types" "^3.5.0" "@smithy/util-base64" "^3.0.0" tslib "^2.6.2" -"@smithy/hash-blob-browser@^3.1.5": - version "3.1.5" - resolved "https://registry.yarnpkg.com/@smithy/hash-blob-browser/-/hash-blob-browser-3.1.5.tgz#db1cf756647f8f39b4214403482750afbb8f2236" - integrity sha512-Vi3eoNCmao4iKglS80ktYnBOIqZhjbDDwa1IIbF/VaJ8PsHnZTQ5wSicicPrU7nTI4JPFn92/txzWkh4GlK18Q== +"@smithy/fetch-http-handler@^4.0.0": + version "4.0.0" + resolved "https://registry.yarnpkg.com/@smithy/fetch-http-handler/-/fetch-http-handler-4.0.0.tgz#3763cb5178745ed630ed5bc3beb6328abdc31f36" + integrity sha512-MLb1f5tbBO2X6K4lMEKJvxeLooyg7guq48C2zKr4qM7F2Gpkz4dc+hdSgu77pCJ76jVqFBjZczHYAs6dp15N+g== dependencies: - "@smithy/chunked-blob-reader" "^3.0.0" - "@smithy/chunked-blob-reader-native" "^3.0.0" - "@smithy/types" "^3.4.2" + "@smithy/protocol-http" "^4.1.5" + "@smithy/querystring-builder" "^3.0.8" + "@smithy/types" "^3.6.0" + "@smithy/util-base64" "^3.0.0" tslib "^2.6.2" -"@smithy/hash-node@^3.0.6": - version "3.0.6" - resolved "https://registry.yarnpkg.com/@smithy/hash-node/-/hash-node-3.0.6.tgz#7c1a869afcbd411eac04c4777dd193ea7ac4e588" - integrity sha512-c/FHEdKK/7DU2z6ZE91L36ahyXWayR3B+FzELjnYq7wH5YqIseM24V+pWCS9kFn1Ln8OFGTf+pyYPiHZuX0s/Q== +"@smithy/hash-blob-browser@^3.1.6": + version "3.1.7" + resolved "https://registry.yarnpkg.com/@smithy/hash-blob-browser/-/hash-blob-browser-3.1.7.tgz#717a75129f3587e78c3cac74727448257a59dcc3" + integrity sha512-4yNlxVNJifPM5ThaA5HKnHkn7JhctFUHvcaz6YXxHlYOSIrzI6VKQPTN8Gs1iN5nqq9iFcwIR9THqchUCouIfg== dependencies: - "@smithy/types" "^3.4.2" + "@smithy/chunked-blob-reader" "^4.0.0" + "@smithy/chunked-blob-reader-native" "^3.0.1" + "@smithy/types" "^3.6.0" + tslib "^2.6.2" + +"@smithy/hash-node@^3.0.7": + version "3.0.8" + resolved "https://registry.yarnpkg.com/@smithy/hash-node/-/hash-node-3.0.8.tgz#f451cc342f74830466b0b39bf985dc3022634065" + integrity sha512-tlNQYbfpWXHimHqrvgo14DrMAgUBua/cNoz9fMYcDmYej7MAmUcjav/QKQbFc3NrcPxeJ7QClER4tWZmfwoPng== + dependencies: + "@smithy/types" "^3.6.0" "@smithy/util-buffer-from" "^3.0.0" "@smithy/util-utf8" "^3.0.0" tslib "^2.6.2" -"@smithy/hash-stream-node@^3.1.5": - version "3.1.5" - resolved "https://registry.yarnpkg.com/@smithy/hash-stream-node/-/hash-stream-node-3.1.5.tgz#4c8d290f6e4d55fdb143d65d645031da12af7fc1" - integrity sha512-61CyFCzqN3VBfcnGX7mof/rkzLb8oHjm4Lr6ZwBIRpBssBb8d09ChrZAqinP2rUrA915BRNkq9NpJz18N7+3hQ== +"@smithy/hash-stream-node@^3.1.6": + version "3.1.7" + resolved "https://registry.yarnpkg.com/@smithy/hash-stream-node/-/hash-stream-node-3.1.7.tgz#df5c3b7aa8dbe9c389ff7857ce9145694f550b7e" + integrity sha512-xMAsvJ3hLG63lsBVi1Hl6BBSfhd8/Qnp8fC06kjOpJvyyCEXdwHITa5Kvdsk6gaAXLhbZMhQMIGvgUbfnJDP6Q== dependencies: - "@smithy/types" "^3.4.2" + "@smithy/types" "^3.6.0" "@smithy/util-utf8" "^3.0.0" tslib "^2.6.2" -"@smithy/invalid-dependency@^3.0.6": - version "3.0.6" - resolved "https://registry.yarnpkg.com/@smithy/invalid-dependency/-/invalid-dependency-3.0.6.tgz#3b3e30a55b92341412626b412fe919929871eeb1" - integrity sha512-czM7Ioq3s8pIXht7oD+vmgy4Wfb4XavU/k/irO8NdXFFOx7YAlsCCcKOh/lJD1mJSYQqiR7NmpZ9JviryD/7AQ== +"@smithy/invalid-dependency@^3.0.7": + version "3.0.8" + resolved "https://registry.yarnpkg.com/@smithy/invalid-dependency/-/invalid-dependency-3.0.8.tgz#4d381a4c24832371ade79e904a72c173c9851e5f" + integrity sha512-7Qynk6NWtTQhnGTTZwks++nJhQ1O54Mzi7fz4PqZOiYXb4Z1Flpb2yRvdALoggTS8xjtohWUM+RygOtB30YL3Q== dependencies: - "@smithy/types" "^3.4.2" + "@smithy/types" "^3.6.0" tslib "^2.6.2" "@smithy/is-array-buffer@^2.2.0": @@ -1984,177 +1985,179 @@ dependencies: tslib "^2.6.2" -"@smithy/md5-js@^3.0.6": - version "3.0.6" - resolved "https://registry.yarnpkg.com/@smithy/md5-js/-/md5-js-3.0.6.tgz#cb8881ffef4ffbf68b0daf52d8add30dc57e3a7a" - integrity sha512-Ze690T8O3M5SVbb70WormwrKzVf9QQRtIuxtJDgpUQDkmt+PtdYDetBbyCbF9ryupxLw6tgzWKgwffAShhVIXQ== +"@smithy/md5-js@^3.0.7": + version "3.0.8" + resolved "https://registry.yarnpkg.com/@smithy/md5-js/-/md5-js-3.0.8.tgz#837e54094007e87bf5196e11eca453d1c1e83a26" + integrity sha512-LwApfTK0OJ/tCyNUXqnWCKoE2b4rDSr4BJlDAVCkiWYeHESr+y+d5zlAanuLW6fnitVJRD/7d9/kN/ZM9Su4mA== dependencies: - "@smithy/types" "^3.4.2" + "@smithy/types" "^3.6.0" "@smithy/util-utf8" "^3.0.0" tslib "^2.6.2" -"@smithy/middleware-content-length@^3.0.8": - version "3.0.8" - resolved "https://registry.yarnpkg.com/@smithy/middleware-content-length/-/middleware-content-length-3.0.8.tgz#4e1c1631718e4d6dfe9a06f37faa90de92e884ed" - integrity sha512-VuyszlSO49WKh3H9/kIO2kf07VUwGV80QRiaDxUfP8P8UKlokz381ETJvwLhwuypBYhLymCYyNhB3fLAGBX2og== +"@smithy/middleware-content-length@^3.0.9": + version "3.0.10" + resolved "https://registry.yarnpkg.com/@smithy/middleware-content-length/-/middleware-content-length-3.0.10.tgz#738266f6d81436d7e3a86bea931bc64e04ae7dbf" + integrity sha512-T4dIdCs1d/+/qMpwhJ1DzOhxCZjZHbHazEPJWdB4GDi2HjIZllVzeBEcdJUN0fomV8DURsgOyrbEUzg3vzTaOg== dependencies: - "@smithy/protocol-http" "^4.1.3" - "@smithy/types" "^3.4.2" + "@smithy/protocol-http" "^4.1.5" + "@smithy/types" "^3.6.0" tslib "^2.6.2" -"@smithy/middleware-endpoint@^3.1.3": - version "3.1.3" - resolved "https://registry.yarnpkg.com/@smithy/middleware-endpoint/-/middleware-endpoint-3.1.3.tgz#8c84d40c9d26b77e2bbb99721fd4a3d379828505" - integrity sha512-KeM/OrK8MVFUsoJsmCN0MZMVPjKKLudn13xpgwIMpGTYpA8QZB2Xq5tJ+RE6iu3A6NhOI4VajDTwBsm8pwwrhg== - dependencies: - "@smithy/middleware-serde" "^3.0.6" - "@smithy/node-config-provider" "^3.1.7" - "@smithy/shared-ini-file-loader" "^3.1.7" - "@smithy/types" "^3.4.2" - "@smithy/url-parser" "^3.0.6" - "@smithy/util-middleware" "^3.0.6" +"@smithy/middleware-endpoint@^3.1.4", "@smithy/middleware-endpoint@^3.2.1": + version "3.2.1" + resolved "https://registry.yarnpkg.com/@smithy/middleware-endpoint/-/middleware-endpoint-3.2.1.tgz#b9ee42d29d8f3a266883d293c4d6a586f7b60979" + integrity sha512-wWO3xYmFm6WRW8VsEJ5oU6h7aosFXfszlz3Dj176pTij6o21oZnzkCLzShfmRaaCHDkBXWBdO0c4sQAvLFP6zA== + dependencies: + "@smithy/core" "^2.5.1" + "@smithy/middleware-serde" "^3.0.8" + "@smithy/node-config-provider" "^3.1.9" + "@smithy/shared-ini-file-loader" "^3.1.9" + "@smithy/types" "^3.6.0" + "@smithy/url-parser" "^3.0.8" + "@smithy/util-middleware" "^3.0.8" tslib "^2.6.2" -"@smithy/middleware-retry@^3.0.18": - version "3.0.18" - resolved "https://registry.yarnpkg.com/@smithy/middleware-retry/-/middleware-retry-3.0.18.tgz#58372e264ca0c3a35f0526c531eb433ed8472df0" - integrity sha512-YU1o/vYob6vlqZdd97MN8cSXRToknLXhFBL3r+c9CZcnxkO/rgNZ++CfgX2vsmnEKvlqdi26+SRtSzlVp5z6Mg== - dependencies: - "@smithy/node-config-provider" "^3.1.7" - "@smithy/protocol-http" "^4.1.3" - "@smithy/service-error-classification" "^3.0.6" - "@smithy/smithy-client" "^3.3.2" - "@smithy/types" "^3.4.2" - "@smithy/util-middleware" "^3.0.6" - "@smithy/util-retry" "^3.0.6" +"@smithy/middleware-retry@^3.0.23": + version "3.0.25" + resolved "https://registry.yarnpkg.com/@smithy/middleware-retry/-/middleware-retry-3.0.25.tgz#a6b1081fc1a0991ffe1d15e567e76198af01f37c" + integrity sha512-m1F70cPaMBML4HiTgCw5I+jFNtjgz5z5UdGnUbG37vw6kh4UvizFYjqJGHvicfgKMkDL6mXwyPp5mhZg02g5sg== + dependencies: + "@smithy/node-config-provider" "^3.1.9" + "@smithy/protocol-http" "^4.1.5" + "@smithy/service-error-classification" "^3.0.8" + "@smithy/smithy-client" "^3.4.2" + "@smithy/types" "^3.6.0" + "@smithy/util-middleware" "^3.0.8" + "@smithy/util-retry" "^3.0.8" tslib "^2.6.2" uuid "^9.0.1" -"@smithy/middleware-serde@^3.0.6": - version "3.0.6" - resolved "https://registry.yarnpkg.com/@smithy/middleware-serde/-/middleware-serde-3.0.6.tgz#9f7a9c152989b59c12865ef3a17acbdb7b6a1566" - integrity sha512-KKTUSl1MzOM0MAjGbudeaVNtIDo+PpekTBkCNwvfZlKndodrnvRo+00USatiyLOc0ujjO9UydMRu3O9dYML7ag== +"@smithy/middleware-serde@^3.0.7", "@smithy/middleware-serde@^3.0.8": + version "3.0.8" + resolved "https://registry.yarnpkg.com/@smithy/middleware-serde/-/middleware-serde-3.0.8.tgz#a46d10dba3c395be0d28610d55c89ff8c07c0cd3" + integrity sha512-Xg2jK9Wc/1g/MBMP/EUn2DLspN8LNt+GMe7cgF+Ty3vl+Zvu+VeZU5nmhveU+H8pxyTsjrAkci8NqY6OuvZnjA== dependencies: - "@smithy/types" "^3.4.2" + "@smithy/types" "^3.6.0" tslib "^2.6.2" -"@smithy/middleware-stack@^3.0.6": - version "3.0.6" - resolved "https://registry.yarnpkg.com/@smithy/middleware-stack/-/middleware-stack-3.0.6.tgz#e63d09b3e292b7a46ac3b9eb482973701de15a6f" - integrity sha512-2c0eSYhTQ8xQqHMcRxLMpadFbTXg6Zla5l0mwNftFCZMQmuhI7EbAJMx6R5eqfuV3YbJ3QGyS3d5uSmrHV8Khg== +"@smithy/middleware-stack@^3.0.7", "@smithy/middleware-stack@^3.0.8": + version "3.0.8" + resolved "https://registry.yarnpkg.com/@smithy/middleware-stack/-/middleware-stack-3.0.8.tgz#f1c7d9c7fe8280c6081141c88f4a76875da1fc43" + integrity sha512-d7ZuwvYgp1+3682Nx0MD3D/HtkmZd49N3JUndYWQXfRZrYEnCWYc8BHcNmVsPAp9gKvlurdg/mubE6b/rPS9MA== dependencies: - "@smithy/types" "^3.4.2" + "@smithy/types" "^3.6.0" tslib "^2.6.2" -"@smithy/node-config-provider@^3.1.7": - version "3.1.7" - resolved "https://registry.yarnpkg.com/@smithy/node-config-provider/-/node-config-provider-3.1.7.tgz#6ae71aeff45e8c9792720986f0b1623cf6da671f" - integrity sha512-g3mfnC3Oo8pOI0dYuPXLtdW1WGVb3bR2tkV21GNkm0ZvQjLTtamXAwCWt/FCb0HGvKt3gHHmF1XerG0ICfalOg== +"@smithy/node-config-provider@^3.1.8", "@smithy/node-config-provider@^3.1.9": + version "3.1.9" + resolved "https://registry.yarnpkg.com/@smithy/node-config-provider/-/node-config-provider-3.1.9.tgz#d27ba8e4753f1941c24ed0af824dbc6c492f510a" + integrity sha512-qRHoah49QJ71eemjuS/WhUXB+mpNtwHRWQr77J/m40ewBVVwvo52kYAmb7iuaECgGTTcYxHS4Wmewfwy++ueew== dependencies: - "@smithy/property-provider" "^3.1.6" - "@smithy/shared-ini-file-loader" "^3.1.7" - "@smithy/types" "^3.4.2" + "@smithy/property-provider" "^3.1.8" + "@smithy/shared-ini-file-loader" "^3.1.9" + "@smithy/types" "^3.6.0" tslib "^2.6.2" -"@smithy/node-http-handler@^3.2.2": - version "3.2.2" - resolved "https://registry.yarnpkg.com/@smithy/node-http-handler/-/node-http-handler-3.2.2.tgz#1e659d52ba4d27123efc7b8a5c1abe76f97ea915" - integrity sha512-42Cy4/oT2O+00aiG1iQ7Kd7rE6q8j7vI0gFfnMlUiATvyo8vefJkhb7O10qZY0jAqo5WZdUzfl9IV6wQ3iMBCg== +"@smithy/node-http-handler@^3.2.4", "@smithy/node-http-handler@^3.2.5": + version "3.2.5" + resolved "https://registry.yarnpkg.com/@smithy/node-http-handler/-/node-http-handler-3.2.5.tgz#ad9d9ba1528bf0d4a655135e978ecc14b3df26a2" + integrity sha512-PkOwPNeKdvX/jCpn0A8n9/TyoxjGZB8WVoJmm9YzsnAgggTj4CrjpRHlTQw7dlLZ320n1mY1y+nTRUDViKi/3w== dependencies: - "@smithy/abort-controller" "^3.1.4" - "@smithy/protocol-http" "^4.1.3" - "@smithy/querystring-builder" "^3.0.6" - "@smithy/types" "^3.4.2" + "@smithy/abort-controller" "^3.1.6" + "@smithy/protocol-http" "^4.1.5" + "@smithy/querystring-builder" "^3.0.8" + "@smithy/types" "^3.6.0" tslib "^2.6.2" -"@smithy/property-provider@^3.1.6": - version "3.1.6" - resolved "https://registry.yarnpkg.com/@smithy/property-provider/-/property-provider-3.1.6.tgz#141a245ad8cac074d29a836ec992ef7dc3363bf7" - integrity sha512-NK3y/T7Q/Bw+Z8vsVs9MYIQ5v7gOX7clyrXcwhhIBQhbPgRl6JDrZbusO9qWDhcEus75Tg+VCxtIRfo3H76fpw== +"@smithy/property-provider@^3.1.7", "@smithy/property-provider@^3.1.8": + version "3.1.8" + resolved "https://registry.yarnpkg.com/@smithy/property-provider/-/property-provider-3.1.8.tgz#b1c5a3949effbb9772785ad7ddc5b4b235b10fbe" + integrity sha512-ukNUyo6rHmusG64lmkjFeXemwYuKge1BJ8CtpVKmrxQxc6rhUX0vebcptFA9MmrGsnLhwnnqeH83VTU9hwOpjA== dependencies: - "@smithy/types" "^3.4.2" + "@smithy/types" "^3.6.0" tslib "^2.6.2" -"@smithy/protocol-http@^4.1.3": - version "4.1.3" - resolved "https://registry.yarnpkg.com/@smithy/protocol-http/-/protocol-http-4.1.3.tgz#91d894ec7d82c012c5674cb3e209800852f05abd" - integrity sha512-GcbMmOYpH9iRqtC05RbRnc/0FssxSTHlmaNhYBTgSgNCYpdR3Kt88u5GAZTBmouzv+Zlj/VRv92J9ruuDeJuEw== +"@smithy/protocol-http@^4.1.4", "@smithy/protocol-http@^4.1.5": + version "4.1.5" + resolved "https://registry.yarnpkg.com/@smithy/protocol-http/-/protocol-http-4.1.5.tgz#a1f397440f299b6a5abeed6866957fecb1bf5013" + integrity sha512-hsjtwpIemmCkm3ZV5fd/T0bPIugW1gJXwZ/hpuVubt2hEUApIoUTrf6qIdh9MAWlw0vjMrA1ztJLAwtNaZogvg== dependencies: - "@smithy/types" "^3.4.2" + "@smithy/types" "^3.6.0" tslib "^2.6.2" -"@smithy/querystring-builder@^3.0.6": - version "3.0.6" - resolved "https://registry.yarnpkg.com/@smithy/querystring-builder/-/querystring-builder-3.0.6.tgz#bcb718b860697dca5257ca38dc8041a4696c486f" - integrity sha512-sQe08RunoObe+Usujn9+R2zrLuQERi3CWvRO3BvnoWSYUaIrLKuAIeY7cMeDax6xGyfIP3x/yFWbEKSXvOnvVg== +"@smithy/querystring-builder@^3.0.7", "@smithy/querystring-builder@^3.0.8": + version "3.0.8" + resolved "https://registry.yarnpkg.com/@smithy/querystring-builder/-/querystring-builder-3.0.8.tgz#0d845be53aa624771c518d1412881236ce12ed4f" + integrity sha512-btYxGVqFUARbUrN6VhL9c3dnSviIwBYD9Rz1jHuN1hgh28Fpv2xjU1HeCeDJX68xctz7r4l1PBnFhGg1WBBPuA== dependencies: - "@smithy/types" "^3.4.2" + "@smithy/types" "^3.6.0" "@smithy/util-uri-escape" "^3.0.0" tslib "^2.6.2" -"@smithy/querystring-parser@^3.0.6": - version "3.0.6" - resolved "https://registry.yarnpkg.com/@smithy/querystring-parser/-/querystring-parser-3.0.6.tgz#f30e7e244fa674d77bdfd3c65481c5dc0aa083ef" - integrity sha512-UJKw4LlEkytzz2Wq+uIdHf6qOtFfee/o7ruH0jF5I6UAuU+19r9QV7nU3P/uI0l6+oElRHmG/5cBBcGJrD7Ozg== +"@smithy/querystring-parser@^3.0.8": + version "3.0.8" + resolved "https://registry.yarnpkg.com/@smithy/querystring-parser/-/querystring-parser-3.0.8.tgz#057a8e2d301eea8eac7071923100ba38a824d7df" + integrity sha512-BtEk3FG7Ks64GAbt+JnKqwuobJNX8VmFLBsKIwWr1D60T426fGrV2L3YS5siOcUhhp6/Y6yhBw1PSPxA5p7qGg== dependencies: - "@smithy/types" "^3.4.2" + "@smithy/types" "^3.6.0" tslib "^2.6.2" -"@smithy/service-error-classification@^3.0.6": - version "3.0.6" - resolved "https://registry.yarnpkg.com/@smithy/service-error-classification/-/service-error-classification-3.0.6.tgz#e0ca00b79d9ccf00795284e01cfdc48b43b81d76" - integrity sha512-53SpchU3+DUZrN7J6sBx9tBiCVGzsib2e4sc512Q7K9fpC5zkJKs6Z9s+qbMxSYrkEkle6hnMtrts7XNkMJJMg== +"@smithy/service-error-classification@^3.0.8": + version "3.0.8" + resolved "https://registry.yarnpkg.com/@smithy/service-error-classification/-/service-error-classification-3.0.8.tgz#265ad2573b972f6c7bdd1ad6c5155a88aeeea1c4" + integrity sha512-uEC/kCCFto83bz5ZzapcrgGqHOh/0r69sZ2ZuHlgoD5kYgXJEThCoTuw/y1Ub3cE7aaKdznb+jD9xRPIfIwD7g== dependencies: - "@smithy/types" "^3.4.2" + "@smithy/types" "^3.6.0" -"@smithy/shared-ini-file-loader@^3.1.7": - version "3.1.7" - resolved "https://registry.yarnpkg.com/@smithy/shared-ini-file-loader/-/shared-ini-file-loader-3.1.7.tgz#bdcf3f0213c3c5779c3fbb41580e9a217ad52e8f" - integrity sha512-IA4K2qTJYXkF5OfVN4vsY1hfnUZjaslEE8Fsr/gGFza4TAC2A9NfnZuSY2srQIbt9bwtjHiAayrRVgKse4Q7fA== +"@smithy/shared-ini-file-loader@^3.1.8", "@smithy/shared-ini-file-loader@^3.1.9": + version "3.1.9" + resolved "https://registry.yarnpkg.com/@smithy/shared-ini-file-loader/-/shared-ini-file-loader-3.1.9.tgz#1b77852b5bb176445e1d80333fa3f739313a4928" + integrity sha512-/+OsJRNtoRbtsX0UpSgWVxFZLsJHo/4sTr+kBg/J78sr7iC+tHeOvOJrS5hCpVQ6sWBbhWLp1UNiuMyZhE6pmA== dependencies: - "@smithy/types" "^3.4.2" + "@smithy/types" "^3.6.0" tslib "^2.6.2" -"@smithy/signature-v4@^4.1.3": - version "4.1.3" - resolved "https://registry.yarnpkg.com/@smithy/signature-v4/-/signature-v4-4.1.3.tgz#1a5adc19563b8cf8f28ae1ada4d6cda7d351943d" - integrity sha512-YD2KYSCEEeFHcWZ1E3mLdAaHl8T/TANh6XwmocQ6nPcTdBfh4N5fusgnblnWDlnlU1/cUqEq3PiGi22GmT2Lkg== +"@smithy/signature-v4@^4.2.0": + version "4.2.1" + resolved "https://registry.yarnpkg.com/@smithy/signature-v4/-/signature-v4-4.2.1.tgz#a918fd7d99af9f60aa07617506fa54be408126ee" + integrity sha512-NsV1jF4EvmO5wqmaSzlnTVetemBS3FZHdyc5CExbDljcyJCEEkJr8ANu2JvtNbVg/9MvKAWV44kTrGS+Pi4INg== dependencies: "@smithy/is-array-buffer" "^3.0.0" - "@smithy/protocol-http" "^4.1.3" - "@smithy/types" "^3.4.2" + "@smithy/protocol-http" "^4.1.5" + "@smithy/types" "^3.6.0" "@smithy/util-hex-encoding" "^3.0.0" - "@smithy/util-middleware" "^3.0.6" + "@smithy/util-middleware" "^3.0.8" "@smithy/util-uri-escape" "^3.0.0" "@smithy/util-utf8" "^3.0.0" tslib "^2.6.2" -"@smithy/smithy-client@^3.3.2": - version "3.3.2" - resolved "https://registry.yarnpkg.com/@smithy/smithy-client/-/smithy-client-3.3.2.tgz#0c5511525f3e64ac5132d513c38d5d0d4a770719" - integrity sha512-RKDfhF2MTwXl7jan5d7QfS9eCC6XJbO3H+EZAvLQN8A5in4ib2Ml4zoeLo57w9QrqFekBPcsoC2hW3Ekw4vQ9Q== - dependencies: - "@smithy/middleware-endpoint" "^3.1.3" - "@smithy/middleware-stack" "^3.0.6" - "@smithy/protocol-http" "^4.1.3" - "@smithy/types" "^3.4.2" - "@smithy/util-stream" "^3.1.6" +"@smithy/smithy-client@^3.4.0", "@smithy/smithy-client@^3.4.2": + version "3.4.2" + resolved "https://registry.yarnpkg.com/@smithy/smithy-client/-/smithy-client-3.4.2.tgz#a6e3ed98330ce170cf482e765bd0c21e0fde8ae4" + integrity sha512-dxw1BDxJiY9/zI3cBqfVrInij6ShjpV4fmGHesGZZUiP9OSE/EVfdwdRz0PgvkEvrZHpsj2htRaHJfftE8giBA== + dependencies: + "@smithy/core" "^2.5.1" + "@smithy/middleware-endpoint" "^3.2.1" + "@smithy/middleware-stack" "^3.0.8" + "@smithy/protocol-http" "^4.1.5" + "@smithy/types" "^3.6.0" + "@smithy/util-stream" "^3.2.1" tslib "^2.6.2" -"@smithy/types@^3.4.2": - version "3.4.2" - resolved "https://registry.yarnpkg.com/@smithy/types/-/types-3.4.2.tgz#aa2d087922d57205dbad68df8a45c848699c551e" - integrity sha512-tHiFcfcVedVBHpmHUEUHOCCih8iZbIAYn9NvPsNzaPm/237I3imdDdZoOC8c87H5HBAVEa06tTgb+OcSWV9g5w== +"@smithy/types@^3.5.0", "@smithy/types@^3.6.0": + version "3.6.0" + resolved "https://registry.yarnpkg.com/@smithy/types/-/types-3.6.0.tgz#03a52bfd62ee4b7b2a1842c8ae3ada7a0a5ff3a4" + integrity sha512-8VXK/KzOHefoC65yRgCn5vG1cysPJjHnOVt9d0ybFQSmJgQj152vMn4EkYhGuaOmnnZvCPav/KnYyE6/KsNZ2w== dependencies: tslib "^2.6.2" -"@smithy/url-parser@^3.0.6": - version "3.0.6" - resolved "https://registry.yarnpkg.com/@smithy/url-parser/-/url-parser-3.0.6.tgz#98b426f9a492e0c992fcd5dceac35444c2632837" - integrity sha512-47Op/NU8Opt49KyGpHtVdnmmJMsp2hEwBdyjuFB9M2V5QVOwA7pBhhxKN5z6ztKGrMw76gd8MlbPuzzvaAncuQ== +"@smithy/url-parser@^3.0.7", "@smithy/url-parser@^3.0.8": + version "3.0.8" + resolved "https://registry.yarnpkg.com/@smithy/url-parser/-/url-parser-3.0.8.tgz#8057d91d55ba8df97d74576e000f927b42da9e18" + integrity sha512-4FdOhwpTW7jtSFWm7SpfLGKIBC9ZaTKG5nBF0wK24aoQKQyDIKUw3+KFWCQ9maMzrgTJIuOvOnsV2lLGW5XjTg== dependencies: - "@smithy/querystring-parser" "^3.0.6" - "@smithy/types" "^3.4.2" + "@smithy/querystring-parser" "^3.0.8" + "@smithy/types" "^3.6.0" tslib "^2.6.2" "@smithy/util-base64@^3.0.0": @@ -2203,37 +2206,37 @@ dependencies: tslib "^2.6.2" -"@smithy/util-defaults-mode-browser@^3.0.18": - version "3.0.18" - resolved "https://registry.yarnpkg.com/@smithy/util-defaults-mode-browser/-/util-defaults-mode-browser-3.0.18.tgz#c3904b71db96c9b99861fc2017fea503fcff12a4" - integrity sha512-/eveCzU6Z6Yw8dlYQLA4rcK30XY0E4L3lD3QFHm59mzDaWYelrXE1rlynuT3J6qxv+5yNy3a1JuzhG5hk5hcmw== +"@smithy/util-defaults-mode-browser@^3.0.23": + version "3.0.25" + resolved "https://registry.yarnpkg.com/@smithy/util-defaults-mode-browser/-/util-defaults-mode-browser-3.0.25.tgz#ef9b84272d1db23503ff155f9075a4543ab6dab7" + integrity sha512-fRw7zymjIDt6XxIsLwfJfYUfbGoO9CmCJk6rjJ/X5cd20+d2Is7xjU5Kt/AiDt6hX8DAf5dztmfP5O82gR9emA== dependencies: - "@smithy/property-provider" "^3.1.6" - "@smithy/smithy-client" "^3.3.2" - "@smithy/types" "^3.4.2" + "@smithy/property-provider" "^3.1.8" + "@smithy/smithy-client" "^3.4.2" + "@smithy/types" "^3.6.0" bowser "^2.11.0" tslib "^2.6.2" -"@smithy/util-defaults-mode-node@^3.0.18": - version "3.0.18" - resolved "https://registry.yarnpkg.com/@smithy/util-defaults-mode-node/-/util-defaults-mode-node-3.0.18.tgz#6b46911f2f749bb048cdc287d7237be9d58f4a6b" - integrity sha512-9cfzRjArtOFPlTYRREJk00suUxVXTgbrzVncOyMRTUeMKnecG/YentLF3cORa+R6mUOMSrMSnT18jos1PKqK6Q== - dependencies: - "@smithy/config-resolver" "^3.0.8" - "@smithy/credential-provider-imds" "^3.2.3" - "@smithy/node-config-provider" "^3.1.7" - "@smithy/property-provider" "^3.1.6" - "@smithy/smithy-client" "^3.3.2" - "@smithy/types" "^3.4.2" +"@smithy/util-defaults-mode-node@^3.0.23": + version "3.0.25" + resolved "https://registry.yarnpkg.com/@smithy/util-defaults-mode-node/-/util-defaults-mode-node-3.0.25.tgz#c16fe3995c8e90ae318e336178392173aebe1e37" + integrity sha512-H3BSZdBDiVZGzt8TG51Pd2FvFO0PAx/A0mJ0EH8a13KJ6iUCdYnw/Dk/MdC1kTd0eUuUGisDFaxXVXo4HHFL1g== + dependencies: + "@smithy/config-resolver" "^3.0.10" + "@smithy/credential-provider-imds" "^3.2.5" + "@smithy/node-config-provider" "^3.1.9" + "@smithy/property-provider" "^3.1.8" + "@smithy/smithy-client" "^3.4.2" + "@smithy/types" "^3.6.0" tslib "^2.6.2" -"@smithy/util-endpoints@^2.1.2": - version "2.1.2" - resolved "https://registry.yarnpkg.com/@smithy/util-endpoints/-/util-endpoints-2.1.2.tgz#e1d789d598da9ab955b8cf3257ab2f263c35031a" - integrity sha512-FEISzffb4H8DLzGq1g4MuDpcv6CIG15fXoQzDH9SjpRJv6h7J++1STFWWinilG0tQh9H1v2UKWG19Jjr2B16zQ== +"@smithy/util-endpoints@^2.1.3": + version "2.1.4" + resolved "https://registry.yarnpkg.com/@smithy/util-endpoints/-/util-endpoints-2.1.4.tgz#a29134c2b1982442c5fc3be18d9b22796e8eb964" + integrity sha512-kPt8j4emm7rdMWQyL0F89o92q10gvCUa6sBkBtDJ7nV2+P7wpXczzOfoDJ49CKXe5CCqb8dc1W+ZdLlrKzSAnQ== dependencies: - "@smithy/node-config-provider" "^3.1.7" - "@smithy/types" "^3.4.2" + "@smithy/node-config-provider" "^3.1.9" + "@smithy/types" "^3.6.0" tslib "^2.6.2" "@smithy/util-hex-encoding@^3.0.0": @@ -2243,31 +2246,31 @@ dependencies: tslib "^2.6.2" -"@smithy/util-middleware@^3.0.6": - version "3.0.6" - resolved "https://registry.yarnpkg.com/@smithy/util-middleware/-/util-middleware-3.0.6.tgz#463c41e74d6e8d758f6cceba4dbed4dc5a4afe50" - integrity sha512-BxbX4aBhI1O9p87/xM+zWy0GzT3CEVcXFPBRDoHAM+pV0eSW156pR+PSYEz0DQHDMYDsYAflC2bQNz2uaDBUZQ== +"@smithy/util-middleware@^3.0.7", "@smithy/util-middleware@^3.0.8": + version "3.0.8" + resolved "https://registry.yarnpkg.com/@smithy/util-middleware/-/util-middleware-3.0.8.tgz#372bc7a2845408ad69da039d277fc23c2734d0c6" + integrity sha512-p7iYAPaQjoeM+AKABpYWeDdtwQNxasr4aXQEA/OmbOaug9V0odRVDy3Wx4ci8soljE/JXQo+abV0qZpW8NX0yA== dependencies: - "@smithy/types" "^3.4.2" + "@smithy/types" "^3.6.0" tslib "^2.6.2" -"@smithy/util-retry@^3.0.6": - version "3.0.6" - resolved "https://registry.yarnpkg.com/@smithy/util-retry/-/util-retry-3.0.6.tgz#297de1cd5a836fb957ab2ad3439041e848815499" - integrity sha512-BRZiuF7IwDntAbevqMco67an0Sr9oLQJqqRCsSPZZHYRnehS0LHDAkJk/pSmI7Z8c/1Vet294H7fY2fWUgB+Rg== +"@smithy/util-retry@^3.0.7", "@smithy/util-retry@^3.0.8": + version "3.0.8" + resolved "https://registry.yarnpkg.com/@smithy/util-retry/-/util-retry-3.0.8.tgz#9c607c175a4d8a87b5d8ebaf308f6b849e4dc4d0" + integrity sha512-TCEhLnY581YJ+g1x0hapPz13JFqzmh/pMWL2KEFASC51qCfw3+Y47MrTmea4bUE5vsdxQ4F6/KFbUeSz22Q1ow== dependencies: - "@smithy/service-error-classification" "^3.0.6" - "@smithy/types" "^3.4.2" + "@smithy/service-error-classification" "^3.0.8" + "@smithy/types" "^3.6.0" tslib "^2.6.2" -"@smithy/util-stream@^3.1.6": - version "3.1.6" - resolved "https://registry.yarnpkg.com/@smithy/util-stream/-/util-stream-3.1.6.tgz#424dbb4e321129807e5fb01d961ef902ee7c04f8" - integrity sha512-lQEUfTx1ht5CRdvIjdAN/gUL6vQt2wSARGGLaBHNe+iJSkRHlWzY+DOn0mFTmTgyU3jcI5n9DkT5gTzYuSOo6A== +"@smithy/util-stream@^3.1.9", "@smithy/util-stream@^3.2.1": + version "3.2.1" + resolved "https://registry.yarnpkg.com/@smithy/util-stream/-/util-stream-3.2.1.tgz#f3055dc4c8caba8af4e47191ea7e773d0e5a429d" + integrity sha512-R3ufuzJRxSJbE58K9AEnL/uSZyVdHzud9wLS8tIbXclxKzoe09CRohj2xV8wpx5tj7ZbiJaKYcutMm1eYgz/0A== dependencies: - "@smithy/fetch-http-handler" "^3.2.7" - "@smithy/node-http-handler" "^3.2.2" - "@smithy/types" "^3.4.2" + "@smithy/fetch-http-handler" "^4.0.0" + "@smithy/node-http-handler" "^3.2.5" + "@smithy/types" "^3.6.0" "@smithy/util-base64" "^3.0.0" "@smithy/util-buffer-from" "^3.0.0" "@smithy/util-hex-encoding" "^3.0.0" @@ -2297,13 +2300,13 @@ "@smithy/util-buffer-from" "^3.0.0" tslib "^2.6.2" -"@smithy/util-waiter@^3.1.5": - version "3.1.5" - resolved "https://registry.yarnpkg.com/@smithy/util-waiter/-/util-waiter-3.1.5.tgz#56b3a0fa6498ed22dfee7f40c64d13a54dd04fcc" - integrity sha512-jYOSvM3H6sZe3CHjzD2VQNCjWBJs+4DbtwBMvUp9y5EnnwNa7NQxTeYeQw0CKCAdGGZ3QvVkyJmvbvs5M/B10A== +"@smithy/util-waiter@^3.1.6": + version "3.1.7" + resolved "https://registry.yarnpkg.com/@smithy/util-waiter/-/util-waiter-3.1.7.tgz#e94f7b9fb8e3b627d78f8886918c76030cf41815" + integrity sha512-d5yGlQtmN/z5eoTtIYgkvOw27US2Ous4VycnXatyoImIF9tzlcpnKqQ/V7qhvJmb2p6xZne1NopCLakdTnkBBQ== dependencies: - "@smithy/abort-controller" "^3.1.4" - "@smithy/types" "^3.4.2" + "@smithy/abort-controller" "^3.1.6" + "@smithy/types" "^3.6.0" tslib "^2.6.2" "@szmarczak/http-timer@^5.0.1": @@ -2439,9 +2442,9 @@ "@types/istanbul-lib-report" "*" "@types/jest@^29.5.12": - version "29.5.13" - resolved "https://registry.yarnpkg.com/@types/jest/-/jest-29.5.13.tgz#8bc571659f401e6a719a7bf0dbcb8b78c71a8adc" - integrity sha512-wd+MVEZCHt23V0/L642O5APvspWply/rGY5BcW4SUETo2UzPU3Z26qr8jC2qxpimI2jjx9h7+2cj2FwIr01bXg== + version "29.5.14" + resolved "https://registry.yarnpkg.com/@types/jest/-/jest-29.5.14.tgz#2b910912fa1d6856cadcd0c1f95af7df1d6049e5" + integrity sha512-ZN+4sdnLUbo8EVvVc2ao0GFW6oVrQRPn4K2lglySj7APvSrgzxHiNNK99us4WDMi57xxA2yggblIAMNhXOotLQ== dependencies: expect "^29.0.0" pretty-format "^29.0.0" @@ -2474,11 +2477,11 @@ "@types/node" "*" "@types/node@*", "@types/node@^22.5.5": - version "22.5.5" - resolved "https://registry.yarnpkg.com/@types/node/-/node-22.5.5.tgz#52f939dd0f65fc552a4ad0b392f3c466cc5d7a44" - integrity sha512-Xjs4y5UPO/CLdzpgR6GirZJx36yScjh73+2NlLlkFRSoQN8B0DpfXPdZGnvVmLRLOsqDpOfTNv7D9trgGhmOIA== + version "22.8.0" + resolved "https://registry.yarnpkg.com/@types/node/-/node-22.8.0.tgz#193c6f82f9356ce0e6bba86b59f2ffe06e7e320b" + integrity sha512-84rafSBHC/z1i1E3p0cJwKA+CfYDNSXX9WSZBRopjIzLET8oNt6ht2tei4C7izwDeEiLLfdeSVBv1egOH916hg== dependencies: - undici-types "~6.19.2" + undici-types "~6.19.8" "@types/node@^12.19.9": version "12.20.55" @@ -2486,9 +2489,9 @@ integrity sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ== "@types/node@^20.0.0": - version "20.16.5" - resolved "https://registry.yarnpkg.com/@types/node/-/node-20.16.5.tgz#d43c7f973b32ffdf9aa7bd4f80e1072310fd7a53" - integrity sha512-VwYCweNo3ERajwy0IUlqqcyZ8/A7Zwa9ZP3MnENWcB11AejO+tLy3pu850goUW2FC/IJMdZUfKpX/yxL1gymCA== + version "20.17.1" + resolved "https://registry.yarnpkg.com/@types/node/-/node-20.17.1.tgz#2b968e060dfb04b7f9550fe3db5f552721c14566" + integrity sha512-j2VlPv1NnwPJbaCNv69FO/1z4lId0QmGvpT41YxitRtWlg96g/j8qcv2RKsLKe2F6OJgyXhupN1Xo17b2m139Q== dependencies: undici-types "~6.19.2" @@ -2573,13 +2576,13 @@ "@typescript-eslint/types" "7.18.0" "@typescript-eslint/visitor-keys" "7.18.0" -"@typescript-eslint/scope-manager@8.6.0": - version "8.6.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-8.6.0.tgz#28cc2fc26a84b75addf45091a2c6283e29e2c982" - integrity sha512-ZuoutoS5y9UOxKvpc/GkvF4cuEmpokda4wRg64JEia27wX+PysIE9q+lzDtlHHgblwUWwo5/Qn+/WyTUvDwBHw== +"@typescript-eslint/scope-manager@8.11.0": + version "8.11.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-8.11.0.tgz#9d399ce624118966732824878bc9a83593a30405" + integrity sha512-Uholz7tWhXmA4r6epo+vaeV7yjdKy5QFCERMjs1kMVsLRKIrSdM6o21W2He9ftp5PP6aWOVpD5zvrvuHZC0bMQ== dependencies: - "@typescript-eslint/types" "8.6.0" - "@typescript-eslint/visitor-keys" "8.6.0" + "@typescript-eslint/types" "8.11.0" + "@typescript-eslint/visitor-keys" "8.11.0" "@typescript-eslint/type-utils@7.18.0": version "7.18.0" @@ -2596,10 +2599,10 @@ resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-7.18.0.tgz#b90a57ccdea71797ffffa0321e744f379ec838c9" integrity sha512-iZqi+Ds1y4EDYUtlOOC+aUmxnE9xS/yCigkjA7XpTKV6nCBd3Hp/PRGGmdwnfkV2ThMyYldP1wRpm/id99spTQ== -"@typescript-eslint/types@8.6.0": - version "8.6.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-8.6.0.tgz#cdc3a16f83f2f0663d6723e9fd032331cdd9f51c" - integrity sha512-rojqFZGd4MQxw33SrOy09qIDS8WEldM8JWtKQLAjf/X5mGSeEFh5ixQlxssMNyPslVIk9yzWqXCsV2eFhYrYUw== +"@typescript-eslint/types@8.11.0": + version "8.11.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-8.11.0.tgz#7c766250502097f49bbc2e651132e6bf489e20b8" + integrity sha512-tn6sNMHf6EBAYMvmPUaKaVeYvhUsrE6x+bXQTxjQRp360h1giATU0WvgeEys1spbvb5R+VpNOZ+XJmjD8wOUHw== "@typescript-eslint/typescript-estree@7.18.0": version "7.18.0" @@ -2615,13 +2618,13 @@ semver "^7.6.0" ts-api-utils "^1.3.0" -"@typescript-eslint/typescript-estree@8.6.0": - version "8.6.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-8.6.0.tgz#f945506de42871f04868371cb5bf21e8f7266e01" - integrity sha512-MOVAzsKJIPIlLK239l5s06YXjNqpKTVhBVDnqUumQJja5+Y94V3+4VUFRA0G60y2jNnTVwRCkhyGQpavfsbq/g== +"@typescript-eslint/typescript-estree@8.11.0": + version "8.11.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-8.11.0.tgz#35fe5d3636fc5727c52429393415412e552e222b" + integrity sha512-yHC3s1z1RCHoCz5t06gf7jH24rr3vns08XXhfEqzYpd6Hll3z/3g23JRi0jM8A47UFKNc3u/y5KIMx8Ynbjohg== dependencies: - "@typescript-eslint/types" "8.6.0" - "@typescript-eslint/visitor-keys" "8.6.0" + "@typescript-eslint/types" "8.11.0" + "@typescript-eslint/visitor-keys" "8.11.0" debug "^4.3.4" fast-glob "^3.3.2" is-glob "^4.0.3" @@ -2640,14 +2643,14 @@ "@typescript-eslint/typescript-estree" "7.18.0" "@typescript-eslint/utils@^6.0.0 || ^7.0.0 || ^8.0.0": - version "8.6.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-8.6.0.tgz#175fe893f32804bed1e72b3364ea6bbe1044181c" - integrity sha512-eNp9cWnYf36NaOVjkEUznf6fEgVy1TWpE0o52e4wtojjBx7D1UV2WAWGzR+8Y5lVFtpMLPwNbC67T83DWSph4A== + version "8.11.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-8.11.0.tgz#4480d1e9f2bb18ea3510c79f870a1aefc118103d" + integrity sha512-CYiX6WZcbXNJV7UNB4PLDIBtSdRmRI/nb0FMyqHPTQD1rMjA0foPLaPUV39C/MxkTd/QKSeX+Gb34PPsDVC35g== dependencies: "@eslint-community/eslint-utils" "^4.4.0" - "@typescript-eslint/scope-manager" "8.6.0" - "@typescript-eslint/types" "8.6.0" - "@typescript-eslint/typescript-estree" "8.6.0" + "@typescript-eslint/scope-manager" "8.11.0" + "@typescript-eslint/types" "8.11.0" + "@typescript-eslint/typescript-estree" "8.11.0" "@typescript-eslint/visitor-keys@7.18.0": version "7.18.0" @@ -2657,12 +2660,12 @@ "@typescript-eslint/types" "7.18.0" eslint-visitor-keys "^3.4.3" -"@typescript-eslint/visitor-keys@8.6.0": - version "8.6.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-8.6.0.tgz#5432af4a1753f376f35ab5b891fc9db237aaf76f" - integrity sha512-wapVFfZg9H0qOYh4grNVQiMklJGluQrOUiOhYRrQWhx7BY/+I1IYb8BczWNbbUpO+pqy0rDciv3lQH5E1bCLrg== +"@typescript-eslint/visitor-keys@8.11.0": + version "8.11.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-8.11.0.tgz#273de1cbffe63d9f9cd7dfc20b5a5af66310cb92" + integrity sha512-EaewX6lxSjRJnc+99+dqzTeoDZUfyrA52d2/HRrkI830kgovWsmIiTfmr0NZorzqic7ga+1bS60lRBUgR3n/Bw== dependencies: - "@typescript-eslint/types" "8.6.0" + "@typescript-eslint/types" "8.11.0" eslint-visitor-keys "^3.4.3" "@ungap/structured-clone@^1.2.0": @@ -2690,9 +2693,9 @@ acorn-walk@^8.1.1: acorn "^8.11.0" acorn@^8.11.0, acorn@^8.4.1, acorn@^8.9.0: - version "8.12.1" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.12.1.tgz#71616bdccbe25e27a54439e0046e89ca76df2248" - integrity sha512-tcpGyI9zbizT9JbV6oYE477V6mTlXvvi0T0G3SNIYE2apm/G5huBa1+K89VGeovbg+jycCrfhl3ADxErOuO6Jg== + version "8.13.0" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.13.0.tgz#2a30d670818ad16ddd6a35d3842dacec9e5d7ca3" + integrity sha512-8zSiw54Oxrdym50NlZ9sUusyO1Z1ZchgRLWRaK6c86XJFClyCgFKetdowBg5bKxyp/u+CDBJG4Mpp0m3HLZl9w== agent-base@6: version "6.0.2" @@ -2745,13 +2748,6 @@ ansi-regex@^5.0.1: resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304" integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ== -ansi-styles@^3.2.1: - version "3.2.1" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" - integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA== - dependencies: - color-convert "^1.9.0" - ansi-styles@^4.0.0, ansi-styles@^4.1.0, ansi-styles@^4.3.0: version "4.3.0" resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937" @@ -3042,15 +3038,15 @@ braces@^3.0.3: dependencies: fill-range "^7.1.1" -browserslist@^4.23.1: - version "4.23.3" - resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.23.3.tgz#debb029d3c93ebc97ffbc8d9cbb03403e227c800" - integrity sha512-btwCFJVjI4YWDNfau8RhZ+B1Q/VLoUITrm3RlP6y1tYGWIOa+InuYiRGXUBXo8nA1qKmHMyLB/iVQg5TT4eFoA== +browserslist@^4.24.0: + version "4.24.2" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.24.2.tgz#f5845bc91069dbd55ee89faf9822e1d885d16580" + integrity sha512-ZIc+Q62revdMcqC6aChtW4jz3My3klmCO1fEmINZY/8J3EpBg5/A/D0AKmBveUh6pgoeycoMkVMko84tuYS+Gg== dependencies: - caniuse-lite "^1.0.30001646" - electron-to-chromium "^1.5.4" + caniuse-lite "^1.0.30001669" + electron-to-chromium "^1.5.41" node-releases "^2.0.18" - update-browserslist-db "^1.1.0" + update-browserslist-db "^1.1.1" bs-logger@^0.2.6: version "0.2.6" @@ -3144,10 +3140,10 @@ camelcase@^6.2.0: resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-6.3.0.tgz#5685b95eb209ac9c0c177467778c9c84df58ba9a" integrity sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA== -caniuse-lite@^1.0.30001646: - version "1.0.30001662" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001662.tgz#3574b22dfec54a3f3b6787331da1040fe8e763ec" - integrity sha512-sgMUVwLmGseH8ZIrm1d51UbrhqMCH3jvS7gF/M6byuHOnKyLOBL7W8yz5V02OHwgLGA36o/AFhWzzh4uc5aqTA== +caniuse-lite@^1.0.30001669: + version "1.0.30001669" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001669.tgz#fda8f1d29a8bfdc42de0c170d7f34a9cf19ed7a3" + integrity sha512-DlWzFDJqstqtIVx1zeSpIMLjunf5SmwOw0N2Ck/QSQdS8PLS4+9HrLaYei4w8BIAL7IB/UEDu889d8vhCTPA0w== capital-case@^1.0.4: version "1.0.4" @@ -3166,15 +3162,6 @@ cardinal@^2.1.1: ansicolors "~0.3.2" redeyed "~2.1.0" -chalk@^2.4.2: - version "2.4.2" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" - integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== - dependencies: - ansi-styles "^3.2.1" - escape-string-regexp "^1.0.5" - supports-color "^5.3.0" - chalk@^4, chalk@^4.0.0, chalk@^4.0.2, chalk@^4.1.0, chalk@^4.1.1, chalk@^4.1.2: version "4.1.2" resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01" @@ -3281,13 +3268,6 @@ collect-v8-coverage@^1.0.0: resolved "https://registry.yarnpkg.com/collect-v8-coverage/-/collect-v8-coverage-1.0.2.tgz#c0b29bcd33bcd0779a1344c2136051e6afd3d9e9" integrity sha512-lHl4d5/ONEbLlJvaJNtsF/Lz+WvB07u2ycqTYbdrq7UypDXailES4valYb2eWiJFxZlVmpGekfqoxQhzyFdT4Q== -color-convert@^1.9.0: - version "1.9.3" - resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" - integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== - dependencies: - color-name "1.1.3" - color-convert@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3" @@ -3295,11 +3275,6 @@ color-convert@^2.0.1: dependencies: color-name "~1.1.4" -color-name@1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" - integrity sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw== - color-name@^1.0.0, color-name@~1.1.4: version "1.1.4" resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" @@ -3634,10 +3609,10 @@ ejs@^3.1.10, ejs@^3.1.8: dependencies: jake "^10.8.5" -electron-to-chromium@^1.5.4: - version "1.5.26" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.5.26.tgz#449b4fa90e83ab98abbe3b6a96c8ee395de94452" - integrity sha512-Z+OMe9M/V6Ep9n/52+b7lkvYEps26z4Yz3vjWL1V61W0q+VLF1pOHhMY17sa4roz4AWmULSI8E6SAojZA5L0YQ== +electron-to-chromium@^1.5.41: + version "1.5.46" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.5.46.tgz#69c98f809a3ea669386263d672f4d920be71da3a" + integrity sha512-1XDk0Z8/YRgB2t5GeEg8DPK592DLjVmd/5uwAu6c/S4Z0CUwV/RwYqe5GWxQqcoN3bJ5U7hYMiMRPZzpCzSBhQ== emittery@^0.13.1: version "0.13.1" @@ -3759,7 +3734,7 @@ es-to-primitive@^1.2.1: is-date-object "^1.0.1" is-symbol "^1.0.2" -escalade@^3.1.1, escalade@^3.1.2: +escalade@^3.1.1, escalade@^3.2.0: version "3.2.0" resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.2.0.tgz#011a3f69856ba189dffa7dc8fcce99d2a87903e5" integrity sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA== @@ -3799,17 +3774,17 @@ eslint-import-resolver-node@^0.3.9: is-core-module "^2.13.0" resolve "^1.22.4" -eslint-module-utils@^2.9.0: - version "2.11.0" - resolved "https://registry.yarnpkg.com/eslint-module-utils/-/eslint-module-utils-2.11.0.tgz#b99b211ca4318243f09661fae088f373ad5243c4" - integrity sha512-gbBE5Hitek/oG6MUVj6sFuzEjA/ClzNflVrLovHi/JgLdC7fiN5gLAY1WIPW1a0V5I999MnsrvVrCOGmmVqDBQ== +eslint-module-utils@^2.12.0: + version "2.12.0" + resolved "https://registry.yarnpkg.com/eslint-module-utils/-/eslint-module-utils-2.12.0.tgz#fe4cfb948d61f49203d7b08871982b65b9af0b0b" + integrity sha512-wALZ0HFoytlyh/1+4wuZ9FJCD/leWHQzzrxJ8+rebyReSLk7LApMyd3WJaLVoN+D5+WIdJyDK1c6JnE65V4Zyg== dependencies: debug "^3.2.7" eslint-plugin-import@^2.29.1: - version "2.30.0" - resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.30.0.tgz#21ceea0fc462657195989dd780e50c92fe95f449" - integrity sha512-/mHNE9jINJfiD2EKkg1BKyPyUk4zdnT54YgbOgfjSakWT5oyX/qQLVNTkehyfpcMxZXMy1zyonZ2v7hZTX43Yw== + version "2.31.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.31.0.tgz#310ce7e720ca1d9c0bb3f69adfd1c6bdd7d9e0e7" + integrity sha512-ixmkI62Rbc2/w8Vfxyh1jQRTdRTF52VxwRVHl/ykPAmqG+Nb7/kNn+byLP0LxPgI7zWA16Jt82SybJInmMia3A== dependencies: "@rtsao/scc" "^1.1.0" array-includes "^3.1.8" @@ -3819,7 +3794,7 @@ eslint-plugin-import@^2.29.1: debug "^3.2.7" doctrine "^2.1.0" eslint-import-resolver-node "^0.3.9" - eslint-module-utils "^2.9.0" + eslint-module-utils "^2.12.0" hasown "^2.0.2" is-core-module "^2.15.1" is-glob "^4.0.3" @@ -3828,6 +3803,7 @@ eslint-plugin-import@^2.29.1: object.groupby "^1.0.3" object.values "^1.2.0" semver "^6.3.1" + string.prototype.trimend "^1.0.8" tsconfig-paths "^3.15.0" eslint-plugin-jest@^28.6.0: @@ -3838,11 +3814,11 @@ eslint-plugin-jest@^28.6.0: "@typescript-eslint/utils" "^6.0.0 || ^7.0.0 || ^8.0.0" eslint-plugin-sf-plugin@^1.17.4: - version "1.20.7" - resolved "https://registry.yarnpkg.com/eslint-plugin-sf-plugin/-/eslint-plugin-sf-plugin-1.20.7.tgz#f22dfe52f6731e68e6ff54debccc938e7802645c" - integrity sha512-Lps86ebnRrHTYRVMJPvoQtvM+hmTzkEj0mbD3d0UfPPvTZ2dy5HtFk/8OspG9HweyYbTJU6qoTXWDwIH09LD0g== + version "1.20.9" + resolved "https://registry.yarnpkg.com/eslint-plugin-sf-plugin/-/eslint-plugin-sf-plugin-1.20.9.tgz#87d17902f696ac242a1b7c6ccbb43f271d883e7e" + integrity sha512-9lqHOVTO2y9MpdaXiHGHPWP3hf8pcn3SWy6osLxK2J+jm4r2cJsx9mK0WdS4Grlfoou7Xm5P71fwgf+htrtdow== dependencies: - "@salesforce/core" "^8.5.4" + "@salesforce/core" "^8.6.2" "@typescript-eslint/utils" "^7.18.0" eslint-restricted-globals@~0.2.0: @@ -4062,9 +4038,9 @@ fast-safe-stringify@^2.1.1: integrity sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA== fast-uri@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/fast-uri/-/fast-uri-3.0.1.tgz#cddd2eecfc83a71c1be2cc2ef2061331be8a7134" - integrity sha512-MWipKbbYiYI0UC7cl8m/i/IWTqfC8YXsqjzybjddLsFjStroQzsHXkc73JutMvBiXmOvapk+axIl79ig5t55Bw== + version "3.0.3" + resolved "https://registry.yarnpkg.com/fast-uri/-/fast-uri-3.0.3.tgz#892a1c91802d5d7860de728f18608a0573142241" + integrity sha512-aLrHthzCjH5He4Z2H9YZ+v6Ujb9ocRuW6ZzkJQOrTxleEijANq4v1TsaPaVG1PZcuurEzrLcWRyYBYXD5cEiaw== fast-xml-parser@4.4.1: version "4.4.1" @@ -4189,9 +4165,9 @@ form-data-encoder@^2.1.2: integrity sha512-yDYSgNMraqvnxiEXO4hi88+YZxaHC6QKzb5N84iRCTDeRO7ZALpir/lVmf/uXUhnwUr2O4HU8s/n6x+yNjQkHw== form-data@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/form-data/-/form-data-4.0.0.tgz#93919daeaf361ee529584b9b31664dc12c9fa452" - integrity sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww== + version "4.0.1" + resolved "https://registry.yarnpkg.com/form-data/-/form-data-4.0.1.tgz#ba1076daaaa5bfd7e99c1a6cb02aa0a5cff90d48" + integrity sha512-tzN8e4TX8+kkxGPK8D5u0FNmjPUjw3lwC9lSLxxoB/+GtsJG91CO8bSWy73APlgAZzZbXEYZJuxjkHH2w+Ezhw== dependencies: asynckit "^0.4.0" combined-stream "^1.0.8" @@ -4423,11 +4399,6 @@ has-bigints@^1.0.1, has-bigints@^1.0.2: resolved "https://registry.yarnpkg.com/has-bigints/-/has-bigints-1.0.2.tgz#0871bd3e3d51626f6ca0966668ba35d5602d6eaa" integrity sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ== -has-flag@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" - integrity sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw== - has-flag@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" @@ -4745,6 +4716,11 @@ is-docker@^2.0.0: resolved "https://registry.yarnpkg.com/is-docker/-/is-docker-2.2.1.tgz#33eeabe23cfe86f14bde4408a02c0cfb853acdaa" integrity sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ== +is-docker@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/is-docker/-/is-docker-3.0.0.tgz#90093aa3106277d8a77a5910dbae71747e15a200" + integrity sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ== + is-extglob@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" @@ -4767,6 +4743,13 @@ is-glob@^4.0.0, is-glob@^4.0.1, is-glob@^4.0.3: dependencies: is-extglob "^2.1.1" +is-inside-container@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-inside-container/-/is-inside-container-1.0.0.tgz#e81fba699662eb31dbdaf26766a61d4814717ea4" + integrity sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA== + dependencies: + is-docker "^3.0.0" + is-interactive@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/is-interactive/-/is-interactive-1.0.0.tgz#cea6e6ae5c870a7b0a0004070b7b587e0252912e" @@ -4864,6 +4847,13 @@ is-wsl@^2.1.1, is-wsl@^2.2.0: dependencies: is-docker "^2.0.0" +is-wsl@^3: + version "3.1.0" + resolved "https://registry.yarnpkg.com/is-wsl/-/is-wsl-3.1.0.tgz#e1c657e39c10090afcbedec61720f6b924c3cbd2" + integrity sha512-UcVfVfaK4Sc4m7X3dUSoHoozQGBEFeDC+zVo06t98xe8CzHSZZBekNXH+tu0NalHolcJ/QAGqS46Hef7QXBIMw== + dependencies: + is-inside-container "^1.0.0" + isarray@^2.0.5: version "2.0.5" resolved "https://registry.yarnpkg.com/isarray/-/isarray-2.0.5.tgz#8af1e4c1221244cc62459faf38940d4e644a5723" @@ -4875,9 +4865,9 @@ isarray@~1.0.0: integrity sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ== isbinaryfile@^5.0.2: - version "5.0.2" - resolved "https://registry.yarnpkg.com/isbinaryfile/-/isbinaryfile-5.0.2.tgz#fe6e4dfe2e34e947ffa240c113444876ba393ae0" - integrity sha512-GvcjojwonMjWbTkfMpnVHVqXW/wKMYDfEpY94/8zy8HFMOqb/VL6oeONq9v87q4ttVlaTLnGXnJD4B5B1OTGIg== + version "5.0.4" + resolved "https://registry.yarnpkg.com/isbinaryfile/-/isbinaryfile-5.0.4.tgz#2a2edefa76cafa66613fe4c1ea52f7f031017bdf" + integrity sha512-YKBKVkKhty7s8rxddb40oOkuP0NbaeXrQvLin6QMHL7Ypiy2RW9LwOVrVgZRyOrhQlayMd9t+D8yDy8MKFTSDQ== isexe@^2.0.0: version "2.0.0" @@ -5352,10 +5342,10 @@ jsbn@1.1.0: resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-1.1.0.tgz#b01307cb29b618a1ed26ec79e911f803c4da0040" integrity sha512-4bYVV3aAMtDTTu4+xsDYa6sy9GyJ69/amsu9sYF2zqjiEoZA5xJi3BrfX3uY+/IekIu7MwdObdbDWpoZdBv3/A== -jsesc@^2.5.1: - version "2.5.2" - resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-2.5.2.tgz#80564d2e483dacf6e8ef209650a67df3f0c283a4" - integrity sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA== +jsesc@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-3.0.2.tgz#bb8b09a6597ba426425f2e4a07245c3d00b9343e" + integrity sha512-xKqzzWXDttJuOcawBt4KnKHHIf5oQ/Cxax+0PWFG+DFDgHNAdi+TXECADI+RYiFUMmx8792xsMbbgXj4CwnP4g== jsforce@^2.0.0-beta.28, jsforce@^2.0.0-beta.29: version "2.0.0-beta.29" @@ -5896,17 +5886,17 @@ object.values@^1.2.0: es-object-atoms "^1.0.0" oclif@^4.0.3: - version "4.14.34" - resolved "https://registry.yarnpkg.com/oclif/-/oclif-4.14.34.tgz#45ddd207ab648a0996ec845e975087ac2fe10479" - integrity sha512-NA604h6cPhiDQTLjjwaJ2yGq3gv6OyHIMIdwt9xTiOqMjFOrKXpoqXiwmKN6bGoeWC1SuaSJqlfoXThlAKn+Ag== + version "4.15.12" + resolved "https://registry.yarnpkg.com/oclif/-/oclif-4.15.12.tgz#3af53ffba0989741da32118585c2c4e0629147d1" + integrity sha512-L1D7dM6nEA+6QZSm+h7qfN7jLF19eOopCE8bs5V4Hmj002c2i4vw41rSL95yaUaLYM6kDlCEsJhgs+gC2wVsiA== dependencies: - "@aws-sdk/client-cloudfront" "^3.645.0" - "@aws-sdk/client-s3" "^3.651.1" + "@aws-sdk/client-cloudfront" "^3.675.0" + "@aws-sdk/client-s3" "^3.676.0" "@inquirer/confirm" "^3.1.22" "@inquirer/input" "^2.2.4" - "@inquirer/select" "^2.3.10" - "@oclif/core" "^4" - "@oclif/plugin-help" "^6.2.10" + "@inquirer/select" "^2.5.0" + "@oclif/core" "^4.0.29" + "@oclif/plugin-help" "^6.2.14" "@oclif/plugin-not-found" "^3.2.21" "@oclif/plugin-warn-if-update-available" "^3.1.11" async-retry "^1.3.3" @@ -6136,10 +6126,10 @@ path-type@^4.0.0: resolved "https://registry.yarnpkg.com/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b" integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw== -picocolors@^1.0.0, picocolors@^1.0.1: - version "1.1.0" - resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.1.0.tgz#5358b76a78cde483ba5cef6a9dc9671440b27d59" - integrity sha512-TQ92mBOW0l3LeMeyLV6mzy/kWr8lkd/hp3mTg7wYK7zJhuBStmGMBG0BdeDZS/dZx1IukaX6Bk11zcln25o1Aw== +picocolors@^1.0.0, picocolors@^1.1.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.1.1.tgz#3d321af3eab939b083c8f929a1d12cda81c26b6b" + integrity sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA== picomatch@^2.0.4, picomatch@^2.2.3, picomatch@^2.3.1: version "2.3.1" @@ -6154,6 +6144,13 @@ pino-abstract-transport@^1.0.0, pino-abstract-transport@^1.1.0, pino-abstract-tr readable-stream "^4.0.0" split2 "^4.0.0" +pino-abstract-transport@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/pino-abstract-transport/-/pino-abstract-transport-2.0.0.tgz#de241578406ac7b8a33ce0d77ae6e8a0b3b68a60" + integrity sha512-F63x5tizV6WCh4R6RHyi2Ml+M70DNRXt/+HANowMflpgGFMAym/VKm6G7ZOQRjqN7XbGxK1Lg9t6ZrtzOaivMw== + dependencies: + split2 "^4.0.0" + pino-pretty@^10.2.3, pino-pretty@^10.3.1: version "10.3.1" resolved "https://registry.yarnpkg.com/pino-pretty/-/pino-pretty-10.3.1.tgz#e3285a5265211ac6c7cd5988f9e65bf3371a0ca9" @@ -6175,9 +6172,9 @@ pino-pretty@^10.2.3, pino-pretty@^10.3.1: strip-json-comments "^3.1.1" pino-pretty@^11.2.2: - version "11.2.2" - resolved "https://registry.yarnpkg.com/pino-pretty/-/pino-pretty-11.2.2.tgz#5e8ec69b31e90eb187715af07b1d29a544e60d39" - integrity sha512-2FnyGir8nAJAqD3srROdrF1J5BIcMT4nwj7hHSc60El6Uxlym00UbCCd8pYIterstVBFlMyF1yFV8XdGIPbj4A== + version "11.3.0" + resolved "https://registry.yarnpkg.com/pino-pretty/-/pino-pretty-11.3.0.tgz#390b3be044cf3d2e9192c7d19d44f6b690468f2e" + integrity sha512-oXwn7ICywaZPHmu3epHGU2oJX4nPmKvHvB/bwrJHlGcbEWaVcotkpyVHMKLKmiVryWYByNp0jpgAcXpFJDXJzA== dependencies: colorette "^2.0.7" dateformat "^4.6.3" @@ -6187,7 +6184,7 @@ pino-pretty@^11.2.2: joycon "^3.1.1" minimist "^1.2.6" on-exit-leak-free "^2.1.0" - pino-abstract-transport "^1.0.0" + pino-abstract-transport "^2.0.0" pump "^3.0.0" readable-stream "^4.0.0" secure-json-parse "^2.4.0" @@ -6222,14 +6219,14 @@ pino@^8.16.0, pino@^8.19.0: thread-stream "^2.6.0" pino@^9.4.0: - version "9.4.0" - resolved "https://registry.yarnpkg.com/pino/-/pino-9.4.0.tgz#e4600ff199efc744856a5b3b71c53e38998eae5a" - integrity sha512-nbkQb5+9YPhQRz/BeQmrWpEknAaqjpAqRK8NwJpmrX/JHu7JuZC5G1CeAwJDJfGes4h+YihC6in3Q2nGb+Y09w== + version "9.5.0" + resolved "https://registry.yarnpkg.com/pino/-/pino-9.5.0.tgz#a7ef0fea868d22d52d8a4ce46e6e03c5dc46fdd6" + integrity sha512-xSEmD4pLnV54t0NOUN16yCl7RIB1c5UUOse5HSyEXtBp+FgFQyPeDutc+Q2ZO7/22vImV7VfEjH/1zV2QuqvYw== dependencies: atomic-sleep "^1.0.0" fast-redact "^3.1.1" on-exit-leak-free "^2.1.0" - pino-abstract-transport "^1.2.0" + pino-abstract-transport "^2.0.0" pino-std-serializers "^7.0.0" process-warning "^4.0.0" quick-format-unescaped "^4.0.3" @@ -6431,14 +6428,14 @@ regenerator-runtime@^0.14.0: integrity sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw== regexp.prototype.flags@^1.5.2: - version "1.5.2" - resolved "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.5.2.tgz#138f644a3350f981a858c44f6bb1a61ff59be334" - integrity sha512-NcDiDkTLuPR+++OCKB0nWafEmhg/Da8aUPLPMQbK+bxKKCm1/S5he+AqYa4PlMCVBalb4/yxIRub6qkEx5yJbw== + version "1.5.3" + resolved "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.5.3.tgz#b3ae40b1d2499b8350ab2c3fe6ef3845d3a96f42" + integrity sha512-vqlC04+RQoFalODCbCumG2xIOvapzVMHwsyIGM/SIE8fRhFFsXeH8/QQ+s0T0kDAhKc4k30s73/0ydkHQz6HlQ== dependencies: - call-bind "^1.0.6" + call-bind "^1.0.7" define-properties "^1.2.1" es-errors "^1.3.0" - set-function-name "^2.0.1" + set-function-name "^2.0.2" registry-auth-token@^5.0.2: version "5.0.2" @@ -6509,9 +6506,9 @@ restore-cursor@^3.1.0: signal-exit "^3.0.2" retire@^5.0.1: - version "5.2.2" - resolved "https://registry.yarnpkg.com/retire/-/retire-5.2.2.tgz#f5e20085feb2dad68d129aba37d4f328109c5853" - integrity sha512-WDXqqFjSlmZTglW3ra/y6jcStqOAuVloPLyDatKXqq97H40vV5je3WstpSLEQD4L9JDJZl21siEWbDWTecYBFw== + version "5.2.4" + resolved "https://registry.yarnpkg.com/retire/-/retire-5.2.4.tgz#8d6dd5ff9eec21ff853493c974be3e69f341898f" + integrity sha512-iutStQwG3svZQBvy79ZEG/7463GbVg8IKG/05SUPUdocQoCKl7e2mnvA/X3XlJqMQj0yV4mcKbZeeM1mAU374A== dependencies: ansi-colors "^4.1.1" astronomical "^1.0.0" @@ -6654,7 +6651,7 @@ set-function-length@^1.2.1: gopd "^1.0.1" has-property-descriptors "^1.0.2" -set-function-name@^2.0.1: +set-function-name@^2.0.2: version "2.0.2" resolved "https://registry.yarnpkg.com/set-function-name/-/set-function-name-2.0.2.tgz#16a705c5a0dc2f5e638ca96d8a8cd4e1c2b90985" integrity sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ== @@ -6791,9 +6788,9 @@ sonic-boom@^3.0.0, sonic-boom@^3.7.0: atomic-sleep "^1.0.0" sonic-boom@^4.0.1: - version "4.1.0" - resolved "https://registry.yarnpkg.com/sonic-boom/-/sonic-boom-4.1.0.tgz#4f039663ba191fac5cfe4f1dc330faac079e4342" - integrity sha512-NGipjjRicyJJ03rPiZCJYjwlsuP2d1/5QUviozRXC7S3WdVWNK5e3Ojieb9CCyfhq2UC+3+SRd9nG3I2lPRvUw== + version "4.2.0" + resolved "https://registry.yarnpkg.com/sonic-boom/-/sonic-boom-4.2.0.tgz#e59a525f831210fa4ef1896428338641ac1c124d" + integrity sha512-INb7TM37/mAcsGmc9hyyI6+QR3rR1zVRu36B0NeGXKnOOLiZOfER5SA+N7X7k3yUYRzLWafduTDvJAfDswwEww== dependencies: atomic-sleep "^1.0.0" @@ -6968,13 +6965,6 @@ strnum@^1.0.5: resolved "https://registry.yarnpkg.com/strnum/-/strnum-1.0.5.tgz#5c4e829fe15ad4ff0d20c3db5ac97b73c9b072db" integrity sha512-J8bbNyKKXl5qYcR36TIO8W3mVGVHrmmxsd5PAItGkmyzwJvybiw2IVq5nqd0i4LSNSkB/sx9VHllbfFdr9k1JA== -supports-color@^5.3.0: - version "5.5.0" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" - integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== - dependencies: - has-flag "^3.0.0" - supports-color@^7, supports-color@^7.0.0, supports-color@^7.1.0: version "7.2.0" resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da" @@ -7040,17 +7030,17 @@ tiny-jsonc@^1.0.1: resolved "https://registry.yarnpkg.com/tiny-jsonc/-/tiny-jsonc-1.0.1.tgz#71de47c9d812b411e87a9f3ab4a5fe42cd8d8f9c" integrity sha512-ik6BCxzva9DoiEfDX/li0L2cWKPPENYvixUprFdl3YPi4bZZUhDnNI9YUkacrv+uIG90dnxR5mNqaoD6UhD6Bw== -tldts-core@^6.1.47: - version "6.1.47" - resolved "https://registry.yarnpkg.com/tldts-core/-/tldts-core-6.1.47.tgz#bb6deb97abb6ef04243af60968d2d0055a65cbd7" - integrity sha512-6SWyFMnlst1fEt7GQVAAu16EGgFK0cLouH/2Mk6Ftlwhv3Ol40L0dlpGMcnnNiiOMyD2EV/aF3S+U2nKvvLvrA== +tldts-core@^6.1.55: + version "6.1.55" + resolved "https://registry.yarnpkg.com/tldts-core/-/tldts-core-6.1.55.tgz#cab0d412672fca9c77d3c51312c69bb5b5ee95c2" + integrity sha512-BL+BuKHHaOpntE5BGI6naXjULU6aRlgaYdfDHR3T/hdbNTWkWUZ9yuc11wGnwgpvRwlyUiIK+QohYK3olaVU6Q== tldts@^6.1.32: - version "6.1.47" - resolved "https://registry.yarnpkg.com/tldts/-/tldts-6.1.47.tgz#bab4edf5867e2bbd763e72d9435289de97b082df" - integrity sha512-R/K2tZ5MiY+mVrnSkNJkwqYT2vUv1lcT6wJvd2emGaMJ7PHUGRY4e3tUsdFCXgqxi2QgbHjL3yJgXCo40v9Hxw== + version "6.1.55" + resolved "https://registry.yarnpkg.com/tldts/-/tldts-6.1.55.tgz#9a27d1708652bbae93d4b842dc2f8554fdabffc6" + integrity sha512-HxQR/9roQ07Pwc8RyyrJMAxRz5/ssoF3qIPPUiIo3zUt6yMdmYZjM2OZIFMiZ3jHyz9jrGHEHuQZrUhoc1LkDw== dependencies: - tldts-core "^6.1.47" + tldts-core "^6.1.55" tmp@^0.0.33: version "0.0.33" @@ -7069,11 +7059,6 @@ tmpl@1.0.5: resolved "https://registry.yarnpkg.com/tmpl/-/tmpl-1.0.5.tgz#8683e0b902bb9c20c4f726e3c0b69f36518c07cc" integrity sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw== -to-fast-properties@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e" - integrity sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog== - to-regex-range@^5.0.1: version "5.0.1" resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4" @@ -7158,9 +7143,9 @@ tslib@^1.9.0: integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== tslib@^2, tslib@^2.0.1, tslib@^2.0.3, tslib@^2.1.0, tslib@^2.5.0, tslib@^2.6.2: - version "2.7.0" - resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.7.0.tgz#d9b40c5c40ab59e8738f297df3087bf1a2690c01" - integrity sha512-gLXCKdN1/j47AiHiOkJN69hJmcbGTHI0ImLmbYLHykhgeN0jVGola9yVjFgzCUklsZQMW55o+dW7IXv3RCXDzA== + version "2.8.0" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.8.0.tgz#d124c86c3c05a40a91e6fdea4021bd31d377971b" + integrity sha512-jWVzBLplnCmoaTr13V9dYbiQ99wvZRd0vNWaDRg+aVYRcjDF3nDksxFDE/+fkXnKhpnUUkmx5pK/v8mCtLVqZA== tunnel-agent@*, tunnel-agent@^0.6.0: version "0.6.0" @@ -7241,9 +7226,9 @@ typed-array-length@^1.0.6: possible-typed-array-names "^1.0.0" typescript@^5.4.5: - version "5.6.2" - resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.6.2.tgz#d1de67b6bef77c41823f822df8f0b3bcff60a5a0" - integrity sha512-NW8ByodCSNCwZeghjN3o+JX5OFH0Ojg6sadjEKY4huZ52TqbJTJnDo5+Tw98lSy63NZvi4n+ez5m2u5d4PkZyw== + version "5.6.3" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.6.3.tgz#5f3449e31c9d94febb17de03cc081dd56d81db5b" + integrity sha512-hjcS1mhfuyi4WW8IWtjP7brDrG2cuDZukyrYrSauoXGNgx0S7zceP07adYkJycEr56BOUTNPzbInooiN3fn1qw== unbox-primitive@^1.0.2: version "1.0.2" @@ -7255,7 +7240,7 @@ unbox-primitive@^1.0.2: has-symbols "^1.0.3" which-boxed-primitive "^1.0.2" -undici-types@~6.19.2: +undici-types@~6.19.2, undici-types@~6.19.8: version "6.19.8" resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-6.19.8.tgz#35111c9d1437ab83a7cdc0abae2f26d88eda0a02" integrity sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw== @@ -7270,13 +7255,13 @@ universalify@^2.0.0: resolved "https://registry.yarnpkg.com/universalify/-/universalify-2.0.1.tgz#168efc2180964e6386d061e094df61afe239b18d" integrity sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw== -update-browserslist-db@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.1.0.tgz#7ca61c0d8650766090728046e416a8cde682859e" - integrity sha512-EdRAaAyk2cUE1wOf2DkEhzxqOQvFOoRJFNS6NeyJ01Gp2beMRpBAINjM2iDXE3KCuKhwnvHIQCJm6ThL2Z+HzQ== +update-browserslist-db@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.1.1.tgz#80846fba1d79e82547fb661f8d141e0945755fe5" + integrity sha512-R8UzCaa9Az+38REPiJ1tXlImTJXlVfgHZsglwBD/k6nj76ctsH1E3q4doGrukiLQd3sGQYu56r5+lo5r94l29A== dependencies: - escalade "^3.1.2" - picocolors "^1.0.1" + escalade "^3.2.0" + picocolors "^1.1.0" upper-case-first@^2.0.2: version "2.0.2"