From 0ab2c5c4a51620c6bd2af3e39ef55cbaca9dcb79 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dmitrij=20Kuzmi=C4=8Diov?= <29233962+Yato333@users.noreply.github.com> Date: Tue, 12 Mar 2024 10:16:21 +0200 Subject: [PATCH] Add performance tests (#461) * Initial refactor * Add arguments aliases and a debugger option * Fix merge issue * remove extra parameters * refactor * Move changes to a new project * Setup test reporter * Fix performance tests * Remove unnecessary stuff * Set up global benchmark script * Update readme * Adjust pipeline * Fix output path * Remove test results file * Fix formatting issue * Fix eslint config * Save main benchmark results only when run on master branch * Fix condition * Fix eslint problems * Remove start script * Change file structure * Use public query executor * Refactor blocking stats * Add table dependency * Remove logging from hierarchy provider * Improve test reporter console output * Remove check leaks option * Remove pid from profile name * Remove pre-caching of iModels * Simplify float rounding * Fix p95 * Add additional entries for benchmark * Fix import being on top of header * Fix debugger crashing on startup * Fix issue of TestReporter measuring time from `beforeEach` to test end. * Add undefined check * Improve comment * Rename itMeasures to run * Improve text for blocking benchmark entries --------- Co-authored-by: Dmitrij Kuzmiciov --- .github/workflows/benchmark-pr.yml | 7 +- .github/workflows/benchmark.yml | 7 +- .vscode/launch.json | 11 + apps/performance-tests/.gitignore | 3 + apps/performance-tests/.mocharc.json | 5 + apps/performance-tests/README.md | 25 + apps/performance-tests/eslint.config.js | 20 + apps/performance-tests/package.json | 34 + apps/performance-tests/src/Datasets.ts | 42 + .../src/StatelessHierarchyProvider.ts | 84 + apps/performance-tests/src/main.ts | 17 + apps/performance-tests/src/stateless.test.ts | 30 + .../src/util/BlockHandler.ts | 73 + .../src/util/TestReporter.ts | 145 ++ .../src/util/TestUtilities.ts | 12 + apps/performance-tests/tsconfig.json | 10 + package.json | 2 +- pnpm-lock.yaml | 1383 +++++++++-------- pnpm-workspace.yaml | 1 + scripts/runBenchmarkTests.js | 103 -- 20 files changed, 1215 insertions(+), 799 deletions(-) create mode 100644 apps/performance-tests/.gitignore create mode 100644 apps/performance-tests/.mocharc.json create mode 100644 apps/performance-tests/README.md create mode 100644 apps/performance-tests/eslint.config.js create mode 100644 apps/performance-tests/package.json create mode 100644 apps/performance-tests/src/Datasets.ts create mode 100644 apps/performance-tests/src/StatelessHierarchyProvider.ts create mode 100644 apps/performance-tests/src/main.ts create mode 100644 apps/performance-tests/src/stateless.test.ts create mode 100644 apps/performance-tests/src/util/BlockHandler.ts create mode 100644 apps/performance-tests/src/util/TestReporter.ts create mode 100644 apps/performance-tests/src/util/TestUtilities.ts create mode 100644 apps/performance-tests/tsconfig.json delete mode 100644 scripts/runBenchmarkTests.js diff --git a/.github/workflows/benchmark-pr.yml b/.github/workflows/benchmark-pr.yml index befe95dcd..13fed1fb9 100644 --- a/.github/workflows/benchmark-pr.yml +++ b/.github/workflows/benchmark-pr.yml @@ -6,12 +6,11 @@ on: - master - stable paths: - - apps/load-tests/** + - apps/performance-tests/** - packages/core-interop/** - packages/hierarchy-builder/** - packages/models-tree/** - pnpm-lock.yaml - - scripts/runBenchmarkTests.js - .github/workflows/benchmark-pr.yaml types: [opened, synchronize, reopened, ready_for_review] @@ -39,7 +38,7 @@ jobs: run: pnpm install - name: Build benchmark tests - run: pnpm lage build --to @load-tests/backend @load-tests/frontend + run: pnpm lage build --to presentation-performance-tests - name: Run benchmark tests run: pnpm benchmark @@ -48,7 +47,7 @@ jobs: uses: jalextowle/github-action-benchmark@35e54a2ea34188ca73481c2a0ce5919907978f4f with: tool: 'customSmallerIsBetter' - output-file-path: ./apps/load-tests/tests/benchmark.json + output-file-path: ./apps/performance-tests/benchmark.json github-token: ${{ secrets.GITHUB_TOKEN }} save-data-file: false comment-on-pull-request: true diff --git a/.github/workflows/benchmark.yml b/.github/workflows/benchmark.yml index 9f02163c9..a9acdad0b 100644 --- a/.github/workflows/benchmark.yml +++ b/.github/workflows/benchmark.yml @@ -6,7 +6,7 @@ on: branches: - master paths: - - apps/load-tests/** + - apps/performance-tests/** - packages/core-interop/** - packages/hierarchy-builder/** - packages/models-tree/** @@ -39,16 +39,17 @@ jobs: run: pnpm install - name: Build benchmark tests - run: pnpm lage build --to @load-tests/backend @load-tests/frontend + run: pnpm lage build --to presentation-performance-tests - name: Run benchmark tests run: pnpm benchmark - name: Store benchmark result uses: benchmark-action/github-action-benchmark@v1 + if: ${{ github.ref == 'refs/heads/master' }} with: tool: 'customSmallerIsBetter' - output-file-path: ./apps/load-tests/tests/benchmark.json + output-file-path: ./apps/performance-tests/benchmark.json # Access token to deploy GitHub Pages branch github-token: ${{ secrets.IMJS_ADMIN_GH_TOKEN }} # Push and deploy GitHub pages branch automatically diff --git a/.vscode/launch.json b/.vscode/launch.json index 096eb657f..53c97ba4d 100644 --- a/.vscode/launch.json +++ b/.vscode/launch.json @@ -125,6 +125,17 @@ "NODE_ENV": "development" } }, + { + "name": "Tests: Performance", + "cwd": "${workspaceFolder}/apps/performance-tests", + "type": "node", + "request": "launch", + "runtimeExecutable": "npx", + "runtimeArgs": ["mocha", "--config", "./.mocharc.json", "./lib/*test.js"], + "env": { + "NODE_OPTIONS": "--enable-source-maps" + } + }, { "name": "Tests: Hierarchy builder", "cwd": "${workspaceFolder}/packages/hierarchy-builder", diff --git a/apps/performance-tests/.gitignore b/apps/performance-tests/.gitignore new file mode 100644 index 000000000..7a1cacdd5 --- /dev/null +++ b/apps/performance-tests/.gitignore @@ -0,0 +1,3 @@ +datasets/* +benchmark.json +test-results.xml diff --git a/apps/performance-tests/.mocharc.json b/apps/performance-tests/.mocharc.json new file mode 100644 index 000000000..83a9c458b --- /dev/null +++ b/apps/performance-tests/.mocharc.json @@ -0,0 +1,5 @@ +{ + "timeout": 60000, + "file": "./lib/main.js", + "reporter": ["./lib/util/TestReporter.js"] +} diff --git a/apps/performance-tests/README.md b/apps/performance-tests/README.md new file mode 100644 index 000000000..7d4ef254f --- /dev/null +++ b/apps/performance-tests/README.md @@ -0,0 +1,25 @@ +# Presentation performance tests + +## Tests + +The tests are supposed to represent various scenarios that we want to profile. + +## Test reporter + +Additionally, we want to measure how much time the main thread is being blocked. +Also, these tests have a different purpose - to provide a benchmark that will be used by GitHub actions and can be useful for the developers. +The simplest way to accommodate that is to use a custom test reporter (defined in `TestReporter.ts`). +The reporter gathers test durations and information about main thread blocking and saves it to a file if an output path is provided. + +Example: `mocha -R ./lib/TestReporter.js -O BENCHMARK_OUTPUT_PATH="./results.json"` + +### iModels + +The tests may use iModels that are managed in `Datasets.ts` module. The iModels are stored locally in the `./datasets` folder. + +## Usage + +- In order to run all performance tests type: + `pnpm test` +- In order to run performance tests and save the results to `./benchmark.json` enter: + `pnpm benchmark`. diff --git a/apps/performance-tests/eslint.config.js b/apps/performance-tests/eslint.config.js new file mode 100644 index 000000000..18642a0b7 --- /dev/null +++ b/apps/performance-tests/eslint.config.js @@ -0,0 +1,20 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Bentley Systems, Incorporated. All rights reserved. + * See LICENSE.md in the project root for license terms and full copyright notice. + *--------------------------------------------------------------------------------------------*/ +const iTwinPlugin = require("@itwin/eslint-plugin"); +const eslintBaseConfig = require("../../eslint.base.config"); + +module.exports = [ + { + files: ["**/*.ts"], + ...iTwinPlugin.configs.iTwinjsRecommendedConfig, + }, + ...eslintBaseConfig, + { + files: ["**/*.ts"], + rules: { + "no-console": "off", + }, + }, +]; diff --git a/apps/performance-tests/package.json b/apps/performance-tests/package.json new file mode 100644 index 000000000..636281597 --- /dev/null +++ b/apps/performance-tests/package.json @@ -0,0 +1,34 @@ +{ + "name": "presentation-performance-tests", + "version": "0.0.0", + "private": true, + "scripts": { + "test": "NODE_OPTIONS=\"--enable-source-maps\" mocha --config ./.mocharc.json ./lib/*test.js", + "benchmark": "npm run test -- -O BENCHMARK_OUTPUT_PATH=./benchmark.json", + "build": "tsc", + "clean": "rimraf lib temp", + "lint": "eslint \"./src/**/*.ts\"" + }, + "dependencies": { + "@itwin/core-backend": "^4.4.0", + "@itwin/core-bentley": "^4.4.0", + "@itwin/core-common": "^4.4.0", + "@itwin/ecschema-metadata": "^4.4.0", + "@itwin/presentation-hierarchy-builder": "workspace:*", + "@itwin/presentation-core-interop": "workspace:*", + "@itwin/presentation-models-tree": "workspace:*", + "as-table": "^1.0.55", + "mocha": "^10.3.0", + "blocked": "^1.3.0", + "rxjs": "^7.8.1" + }, + "devDependencies": { + "@itwin/eslint-plugin": "4.0.0-dev.48", + "@types/blocked": "^1.3.4", + "@types/mocha": "^10.0.6", + "@types/node": "^18.17.7", + "eslint": "^8.56.0", + "rimraf": "^5.0.5", + "typescript": "~5.0.4" + } +} diff --git a/apps/performance-tests/src/Datasets.ts b/apps/performance-tests/src/Datasets.ts new file mode 100644 index 000000000..12ba105fb --- /dev/null +++ b/apps/performance-tests/src/Datasets.ts @@ -0,0 +1,42 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Bentley Systems, Incorporated. All rights reserved. + * See LICENSE.md in the project root for license terms and full copyright notice. + *--------------------------------------------------------------------------------------------*/ +import fs from "fs"; +import path from "path"; + +async function downloadDataset(name: string, downloadUrl: string, localPath: string): Promise { + console.log(`Downloading "${name}" iModel from "${downloadUrl}"...`); + const response = await fetch(downloadUrl); + if (!response.ok) { + throw new Error(`Failed to fetch ${name} iModel: ${response.statusText}`); + } + + await response.body!.pipeTo(fs.WriteStream.toWeb(fs.createWriteStream(localPath))); +} + +/** Paths to downloaded iModels. */ +export const iModelPaths = new Array(); + +/** Loads iModels into cache for the tests to use. */ +export async function loadDataSets(datasetsDirPath: string) { + await fs.promises.mkdir(datasetsDirPath, { recursive: true }); + + const datasets = [["Baytown", "https://github.com/imodeljs/desktop-starter/raw/master/assets/Baytown.bim"]].map((entry) => [ + ...entry, + path.join(datasetsDirPath, `${entry[0]}.bim`), + ]); + + const datasetPaths = await Promise.all( + datasets.map(async ([name, url, localPath]) => { + try { + await fs.promises.access(localPath, fs.constants.F_OK); + } catch { + await downloadDataset(name, url, localPath); + } + return path.resolve(localPath); + }), + ); + + iModelPaths.push(...datasetPaths); +} diff --git a/apps/performance-tests/src/StatelessHierarchyProvider.ts b/apps/performance-tests/src/StatelessHierarchyProvider.ts new file mode 100644 index 000000000..c5be023ec --- /dev/null +++ b/apps/performance-tests/src/StatelessHierarchyProvider.ts @@ -0,0 +1,84 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Bentley Systems, Incorporated. All rights reserved. + * See LICENSE.md in the project root for license terms and full copyright notice. + *--------------------------------------------------------------------------------------------*/ +import { expand, filter, from, mergeAll, of } from "rxjs"; +import { IModelDb } from "@itwin/core-backend"; +import { ISchemaLocater, Schema, SchemaContext, SchemaInfo, SchemaKey, SchemaMatchType } from "@itwin/ecschema-metadata"; +import { createECSqlQueryExecutor, createMetadataProvider } from "@itwin/presentation-core-interop"; +import { createLimitingECSqlQueryExecutor, HierarchyNode, HierarchyProvider } from "@itwin/presentation-hierarchy-builder"; +import { ModelsTreeDefinition } from "@itwin/presentation-models-tree"; + +export class StatelessHierarchyProvider { + private readonly _provider: HierarchyProvider; + + constructor( + iModelDb: IModelDb, + private readonly _nodeRequestLimit = 10, + ) { + this._provider = createProvider(iModelDb); + } + + public async loadInitialHierarchy(): Promise { + await this.loadNodes((node) => node.children && !!node.autoExpand); + } + + public async loadFullHierarchy(): Promise { + await this.loadNodes((node) => node.children); + } + + private async loadNodes(nodeHasChildren: (node: HierarchyNode) => boolean) { + await new Promise((resolve, reject) => { + const nodesObservable = of(undefined).pipe( + expand((parentNode) => { + return from(this._provider.getNodes({ parentNode })).pipe( + mergeAll(), + filter((node) => nodeHasChildren(node)), + ); + }, this._nodeRequestLimit), + ); + nodesObservable.subscribe({ + complete: resolve, + error: reject, + }); + }); + } +} + +function createProvider(iModelDb: IModelDb) { + const schemas = new SchemaContext(); + const locater = new SchedulingSchemaLocater(iModelDb); + schemas.addLocater(locater); + const metadataProvider = createMetadataProvider(schemas); + + return new HierarchyProvider({ + metadataProvider, + hierarchyDefinition: new ModelsTreeDefinition({ metadataProvider }), + queryExecutor: createLimitingECSqlQueryExecutor(createECSqlQueryExecutor(iModelDb), 1000), + }); +} + +class SchedulingSchemaLocater implements ISchemaLocater { + constructor(private readonly _iModelDb: IModelDb) {} + + public getSchemaSync(_schemaKey: Readonly, _matchType: SchemaMatchType, _schemaContext: SchemaContext): T | undefined { + console.error(`getSchemaSync not implemented`); + return undefined; + } + + public async getSchemaInfo(schemaKey: Readonly, matchType: SchemaMatchType, schemaContext: SchemaContext): Promise { + const schemaJson = this._iModelDb.getSchemaProps(schemaKey.name); + const schemaInfo = await Schema.startLoadingFromJson(schemaJson, schemaContext); + if (schemaInfo !== undefined && schemaInfo.schemaKey.matches(schemaKey, matchType)) { + return schemaInfo; + } + return undefined; + } + + public async getSchema(schemaKey: Readonly, matchType: SchemaMatchType, schemaContext: SchemaContext): Promise { + await this.getSchemaInfo(schemaKey, matchType, schemaContext); + // eslint-disable-next-line @itwin/no-internal + const schema = await schemaContext.getCachedSchema(schemaKey, matchType); + return schema as T; + } +} diff --git a/apps/performance-tests/src/main.ts b/apps/performance-tests/src/main.ts new file mode 100644 index 000000000..7ef0d6439 --- /dev/null +++ b/apps/performance-tests/src/main.ts @@ -0,0 +1,17 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Bentley Systems, Incorporated. All rights reserved. + * See LICENSE.md in the project root for license terms and full copyright notice. + *--------------------------------------------------------------------------------------------*/ +import { IModelHost } from "@itwin/core-backend"; +import { loadDataSets } from "./Datasets"; + +before(async () => { + await IModelHost.startup({ + profileName: "presentation-performance-tests", + }); + await loadDataSets("./datasets"); +}); + +after(async () => { + await IModelHost.shutdown(); +}); diff --git a/apps/performance-tests/src/stateless.test.ts b/apps/performance-tests/src/stateless.test.ts new file mode 100644 index 000000000..47545d16d --- /dev/null +++ b/apps/performance-tests/src/stateless.test.ts @@ -0,0 +1,30 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Bentley Systems, Incorporated. All rights reserved. + * See LICENSE.md in the project root for license terms and full copyright notice. + *--------------------------------------------------------------------------------------------*/ +import { SnapshotDb } from "@itwin/core-backend"; +import { iModelPaths } from "./Datasets"; +import { StatelessHierarchyProvider } from "./StatelessHierarchyProvider"; +import { run } from "./util/TestUtilities"; + +describe("stateless hierarchy", () => { + let iModel: SnapshotDb; + + beforeEach(() => { + iModel = SnapshotDb.openFile(iModelPaths[0]); + }); + + afterEach(() => { + iModel.close(); + }); + + run("loads initial hierarchy", async () => { + const provider = new StatelessHierarchyProvider(iModel); + await provider.loadInitialHierarchy(); + }); + + run("loads full hierarchy", async () => { + const provider = new StatelessHierarchyProvider(iModel); + await provider.loadFullHierarchy(); + }); +}); diff --git a/apps/performance-tests/src/util/BlockHandler.ts b/apps/performance-tests/src/util/BlockHandler.ts new file mode 100644 index 000000000..a93861159 --- /dev/null +++ b/apps/performance-tests/src/util/BlockHandler.ts @@ -0,0 +1,73 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Bentley Systems, Incorporated. All rights reserved. + * See LICENSE.md in the project root for license terms and full copyright notice. + *--------------------------------------------------------------------------------------------*/ +import blocked from "blocked"; +import { SortedArray } from "@itwin/core-bentley"; + +export interface Summary { + count: number; + max?: number; + p95?: number; + median?: number; + + [key: string]: number | undefined; +} + +/** + * This class measures the durations of time when main thread is blocked. + * This is measured by running a timer which detects cases when it is fired later than expected. + */ +export class BlockHandler { + private readonly _samples = new SortedArray((a, b) => a - b); + private _timer?: NodeJS.Timer; + + public getSummary(): Summary { + const arr = this._samples.extractArray(); + const count = arr.length; + const max = count ? arr[count - 1] : undefined; + const p95 = getP95(arr); + const median = getMedian(arr); + return { + count, + max, + p95, + median, + }; + } + + /** + * Starts the timer and records instances of abnormally long blocking. + * @param threshold The minimum amount of blocking that will be considered abnormal. + * @param interval Delay in time between each blocking check. + */ + public start(threshold: number = 20, interval: number = 10) { + this._samples.clear(); + this._timer = blocked((time) => this._samples.insert(time), { threshold, interval }); + } + + /** Stops the blocking timer. */ + public stop() { + clearTimeout(this._timer); + } +} + +function getP95(arr: number[]): number | undefined { + if (arr.length === 0) { + return undefined; + } + + return arr[Math.floor(0.95 * arr.length)]; +} + +function getMedian(arr: number[]): number | undefined { + if (arr.length === 0) { + return undefined; + } + + const middle = arr.length / 2; + if (arr.length % 2 === 0) { + return (arr[middle - 1] + arr[middle]) / 2; + } + return arr[Math.floor(middle)]; +} diff --git a/apps/performance-tests/src/util/TestReporter.ts b/apps/performance-tests/src/util/TestReporter.ts new file mode 100644 index 000000000..063c46d8b --- /dev/null +++ b/apps/performance-tests/src/util/TestReporter.ts @@ -0,0 +1,145 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Bentley Systems, Incorporated. All rights reserved. + * See LICENSE.md in the project root for license terms and full copyright notice. + *--------------------------------------------------------------------------------------------*/ +import asTable from "as-table"; +import fs from "fs"; +import Mocha from "mocha"; +import { BlockHandler, Summary } from "./BlockHandler"; + +interface TestInfo { + fullTitle: string; + duration: number; + pass: boolean; + error?: any; + blockingSummary: Summary; +} + +// eslint-disable-next-line @typescript-eslint/naming-convention +const Base = Mocha.reporters.Base; +const { EVENT_TEST_BEGIN, EVENT_TEST_END, EVENT_SUITE_BEGIN, EVENT_RUN_END } = Mocha.Runner.constants; + +const tableFormatter = asTable.configure({ + delimiter: " | ", +}); + +/** + * Measures test time and the amounts of time when the main thread was blocked. + */ +export class TestReporter extends Base { + private readonly _testStartTimes = new Map(); + private readonly _testInfo = new Array(); + private readonly _blockHandler = new BlockHandler(); + private readonly _outputPath?: string; + + constructor(runner: Mocha.Runner, options: Mocha.MochaOptions) { + super(runner, options); + this._outputPath = options.reporterOptions?.BENCHMARK_OUTPUT_PATH; + + runner.on(EVENT_SUITE_BEGIN, (suite) => console.log(`\n${suite.title}`)); + runner.on(EVENT_TEST_BEGIN, (test) => { + // This event can be fired before beforeEach() and we do not want to measure beforeEach() blocking time. + // Add callback to the test context, so that it could be called at the actual beginning of the test. + return (test.ctx!.testReporterOnTestStart = () => this.onTestStart(test)); + }); + runner.on(EVENT_TEST_END, (test) => this.onTestEnd(test)); + runner.on(EVENT_RUN_END, () => { + this.printResults(); + if (this._outputPath && this.failures.length === 0) { + this.saveResults(); + } + }); + } + + /** Run before each test starts. */ + private onTestStart(test: Mocha.Runnable) { + this._blockHandler.start(); + process.stdout.write(`${test.title}...`); + this._testStartTimes.set(test.title, performance.now()); + } + + /** Run after each test passes or fails. */ + private onTestEnd(test: Mocha.Test) { + const endTime = performance.now(); + const startTime = this._testStartTimes.get(test.title); + if (startTime === undefined) { + return; + } + + const duration = Math.round((endTime - startTime) * 100) / 100; + this._blockHandler.stop(); + + const pass = test.isPassed(); + Base.cursor.CR(); + console.log(`${pass ? Base.symbols.ok : Base.symbols.err} ${test.title} (${duration} ms)`); + + const blockingSummary = this._blockHandler.getSummary(); + this._testInfo.push({ + fullTitle: test.fullTitle(), + duration, + pass, + error: test.err, + blockingSummary, + }); + } + + private printResults() { + const errors = new Map(); + const results = this._testInfo.map(({ fullTitle, duration, pass, error, blockingSummary }) => { + if (error) { + errors.set(fullTitle, error); + } + + const blockingInfo = Object.entries(blockingSummary) + .filter(([_, val]) => val !== undefined) + .map(([key, val]) => `${key}: ${(key === "count" ? val : val?.toFixed(2)) ?? "N/A"}`) + .join(", "); + + /* eslint-disable @typescript-eslint/naming-convention */ + return { + Status: pass ? "PASS" : "FAIL", + Test: fullTitle, + Duration: `${duration} ms`, + Blocks: blockingInfo, + }; + /* eslint-enable @typescript-eslint/naming-convention */ + }); + + console.log(); + console.log(tableFormatter(results)); + + for (const [name, error] of errors) { + console.error(); + console.error(`${name}:`); + console.error(error); + } + } + + /** Saves performance results in a format that is compatible with Github benchmark action. */ + private saveResults() { + const data = this._testInfo.flatMap(({ fullTitle, duration, blockingSummary }) => { + const durationEntry = { + name: fullTitle, + unit: "ms", + value: duration, + }; + + const blockingEntry = { + name: `${fullTitle} (P95 of main thread blocks)`, + unit: "ms", + value: blockingSummary.p95 ?? 0, + extra: Object.entries(blockingSummary) + .map(([key, val]) => `${key}: ${val ?? "N/A"}`) + .join("\n"), + }; + + return [durationEntry, blockingEntry]; + }); + + const outputPath = this._outputPath!; + fs.writeFileSync(outputPath, JSON.stringify(data, undefined, 2)); + console.log(`Test results saved at ${outputPath}`); + } +} + +module.exports = TestReporter; diff --git a/apps/performance-tests/src/util/TestUtilities.ts b/apps/performance-tests/src/util/TestUtilities.ts new file mode 100644 index 000000000..8dd903047 --- /dev/null +++ b/apps/performance-tests/src/util/TestUtilities.ts @@ -0,0 +1,12 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Bentley Systems, Incorporated. All rights reserved. + * See LICENSE.md in the project root for license terms and full copyright notice. + *--------------------------------------------------------------------------------------------*/ + +/** Runs a test and passes information about it to the TestReporter. */ +export function run(desc: string, callback: (() => void) | (() => Promise)) { + it(desc, async function () { + this.test!.ctx!.testReporterOnTestStart(); + await callback(); + }); +} diff --git a/apps/performance-tests/tsconfig.json b/apps/performance-tests/tsconfig.json new file mode 100644 index 000000000..97fed4dac --- /dev/null +++ b/apps/performance-tests/tsconfig.json @@ -0,0 +1,10 @@ +{ + "extends": "../../tsconfig.json", + "compilerOptions": { + "outDir": "./lib", + "sourceMap": true, + "esModuleInterop": true, + "allowJs": true, + }, + "include": ["src"], +} diff --git a/package.json b/package.json index 455c7b035..ccb2b4dcf 100644 --- a/package.json +++ b/package.json @@ -25,7 +25,7 @@ "change:empty": "changeset add --empty", "check": "changeset status", "release": "npm run build:all && changeset publish", - "benchmark": "node ./scripts/runBenchmarkTests.js" + "benchmark": "pnpm run -C ./apps/performance-tests benchmark" }, "dependencies": { "@changesets/cli": "^2.27.1", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index b7c46ab41..8517c1c89 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -182,6 +182,64 @@ importers: specifier: ~5.0.4 version: 5.0.4 + apps/performance-tests: + dependencies: + '@itwin/core-backend': + specifier: ^4.4.0 + version: 4.4.0(@itwin/core-bentley@4.4.0)(@itwin/core-common@4.4.0)(@itwin/core-geometry@4.4.0)(@opentelemetry/api@1.6.0) + '@itwin/core-bentley': + specifier: ^4.4.0 + version: 4.4.0 + '@itwin/core-common': + specifier: ^4.4.0 + version: 4.4.0(@itwin/core-bentley@4.4.0)(@itwin/core-geometry@4.4.0) + '@itwin/ecschema-metadata': + specifier: ^4.4.0 + version: 4.4.0(@itwin/core-bentley@4.4.0)(@itwin/core-quantity@4.4.0) + '@itwin/presentation-core-interop': + specifier: workspace:* + version: link:../../packages/core-interop + '@itwin/presentation-hierarchy-builder': + specifier: workspace:* + version: link:../../packages/hierarchy-builder + '@itwin/presentation-models-tree': + specifier: workspace:* + version: link:../../packages/models-tree + as-table: + specifier: ^1.0.55 + version: 1.0.55 + blocked: + specifier: ^1.3.0 + version: 1.3.0 + mocha: + specifier: ^10.3.0 + version: 10.3.0 + rxjs: + specifier: ^7.8.1 + version: 7.8.1 + devDependencies: + '@itwin/eslint-plugin': + specifier: 4.0.0-dev.48 + version: 4.0.0-dev.48(eslint@8.56.0)(typescript@5.0.4) + '@types/blocked': + specifier: ^1.3.4 + version: 1.3.4 + '@types/mocha': + specifier: ^10.0.6 + version: 10.0.6 + '@types/node': + specifier: ^18.17.7 + version: 18.17.7 + eslint: + specifier: ^8.56.0 + version: 8.56.0 + rimraf: + specifier: ^5.0.5 + version: 5.0.5 + typescript: + specifier: ~5.0.4 + version: 5.0.4 + apps/test-app/backend: dependencies: '@itwin/appui-abstract': @@ -1350,7 +1408,7 @@ packages: resolution: {integrity: sha512-IzSgsrxUcsrejQbPVilIKy16kAT52EwB6zSaI+M3xxIhKh5+aldEyvI+z6erM7TCLB2BJsFrtHjp6/4/sr+3dA==} dependencies: '@aws-crypto/util': 3.0.0 - '@aws-sdk/types': 3.515.0 + '@aws-sdk/types': 3.523.0 tslib: 1.14.1 dev: false @@ -1367,7 +1425,7 @@ packages: '@aws-crypto/sha256-js': 3.0.0 '@aws-crypto/supports-web-crypto': 3.0.0 '@aws-crypto/util': 3.0.0 - '@aws-sdk/types': 3.515.0 + '@aws-sdk/types': 3.523.0 '@aws-sdk/util-locate-window': 3.495.0 '@aws-sdk/util-utf8-browser': 3.259.0 tslib: 1.14.1 @@ -1377,7 +1435,7 @@ packages: resolution: {integrity: sha512-PnNN7os0+yd1XvXAy23CFOmTbMaDxgxXtTKHybrJ39Y8kGzBATgBFibWJKH6BhytLI/Zyszs87xCOBNyBig6vQ==} dependencies: '@aws-crypto/util': 3.0.0 - '@aws-sdk/types': 3.515.0 + '@aws-sdk/types': 3.523.0 tslib: 1.14.1 dev: false @@ -1390,249 +1448,249 @@ packages: /@aws-crypto/util@3.0.0: resolution: {integrity: sha512-2OJlpeJpCR48CC8r+uKVChzs9Iungj9wkZrl8Z041DWEWvyIHILYKCPNzJghKsivj+S3mLo6BVc7mBNzdxA46w==} dependencies: - '@aws-sdk/types': 3.515.0 + '@aws-sdk/types': 3.523.0 '@aws-sdk/util-utf8-browser': 3.259.0 tslib: 1.14.1 dev: false - /@aws-sdk/client-cloudwatch@3.515.0: - resolution: {integrity: sha512-3t2cyaCoA9ST0nt6sN10Zz1q3vdXAzJaZbxwpT45/s/Z7Xg5AzxezX6zWk7amy/7lv4ZoRvKwfovjddztPxqpw==} + /@aws-sdk/client-cloudwatch@3.525.0: + resolution: {integrity: sha512-qi73IN/cGDxixHKnO99UIzGhYshStPXsZou8PNp0ee6ZJgyEpwtj1lFAoAEAbYcD0/PjtXsVNCOpyA1VXNjDDQ==} engines: {node: '>=14.0.0'} dependencies: '@aws-crypto/sha256-browser': 3.0.0 '@aws-crypto/sha256-js': 3.0.0 - '@aws-sdk/client-sts': 3.515.0(@aws-sdk/credential-provider-node@3.515.0) - '@aws-sdk/core': 3.513.0 - '@aws-sdk/credential-provider-node': 3.515.0 - '@aws-sdk/middleware-host-header': 3.515.0 - '@aws-sdk/middleware-logger': 3.515.0 - '@aws-sdk/middleware-recursion-detection': 3.515.0 - '@aws-sdk/middleware-user-agent': 3.515.0 - '@aws-sdk/region-config-resolver': 3.515.0 - '@aws-sdk/types': 3.515.0 - '@aws-sdk/util-endpoints': 3.515.0 - '@aws-sdk/util-user-agent-browser': 3.515.0 - '@aws-sdk/util-user-agent-node': 3.515.0 - '@smithy/config-resolver': 2.1.1 - '@smithy/core': 1.3.2 - '@smithy/fetch-http-handler': 2.4.1 - '@smithy/hash-node': 2.1.1 - '@smithy/invalid-dependency': 2.1.1 - '@smithy/middleware-compression': 2.1.1 - '@smithy/middleware-content-length': 2.1.1 - '@smithy/middleware-endpoint': 2.4.1 - '@smithy/middleware-retry': 2.1.1 - '@smithy/middleware-serde': 2.1.1 - '@smithy/middleware-stack': 2.1.1 - '@smithy/node-config-provider': 2.2.1 - '@smithy/node-http-handler': 2.3.1 - '@smithy/protocol-http': 3.1.1 - '@smithy/smithy-client': 2.3.1 - '@smithy/types': 2.9.1 - '@smithy/url-parser': 2.1.1 + '@aws-sdk/client-sts': 3.525.0(@aws-sdk/credential-provider-node@3.525.0) + '@aws-sdk/core': 3.525.0 + '@aws-sdk/credential-provider-node': 3.525.0 + '@aws-sdk/middleware-host-header': 3.523.0 + '@aws-sdk/middleware-logger': 3.523.0 + '@aws-sdk/middleware-recursion-detection': 3.523.0 + '@aws-sdk/middleware-user-agent': 3.525.0 + '@aws-sdk/region-config-resolver': 3.525.0 + '@aws-sdk/types': 3.523.0 + '@aws-sdk/util-endpoints': 3.525.0 + '@aws-sdk/util-user-agent-browser': 3.523.0 + '@aws-sdk/util-user-agent-node': 3.525.0 + '@smithy/config-resolver': 2.1.4 + '@smithy/core': 1.3.5 + '@smithy/fetch-http-handler': 2.4.3 + '@smithy/hash-node': 2.1.3 + '@smithy/invalid-dependency': 2.1.3 + '@smithy/middleware-compression': 2.1.4 + '@smithy/middleware-content-length': 2.1.3 + '@smithy/middleware-endpoint': 2.4.4 + '@smithy/middleware-retry': 2.1.4 + '@smithy/middleware-serde': 2.1.3 + '@smithy/middleware-stack': 2.1.3 + '@smithy/node-config-provider': 2.2.4 + '@smithy/node-http-handler': 2.4.1 + '@smithy/protocol-http': 3.2.1 + '@smithy/smithy-client': 2.4.2 + '@smithy/types': 2.10.1 + '@smithy/url-parser': 2.1.3 '@smithy/util-base64': 2.1.1 '@smithy/util-body-length-browser': 2.1.1 '@smithy/util-body-length-node': 2.2.1 - '@smithy/util-defaults-mode-browser': 2.1.1 - '@smithy/util-defaults-mode-node': 2.2.0 - '@smithy/util-endpoints': 1.1.1 - '@smithy/util-middleware': 2.1.1 - '@smithy/util-retry': 2.1.1 + '@smithy/util-defaults-mode-browser': 2.1.4 + '@smithy/util-defaults-mode-node': 2.2.3 + '@smithy/util-endpoints': 1.1.4 + '@smithy/util-middleware': 2.1.3 + '@smithy/util-retry': 2.1.3 '@smithy/util-utf8': 2.1.1 - '@smithy/util-waiter': 2.1.1 + '@smithy/util-waiter': 2.1.3 fast-xml-parser: 4.2.5 tslib: 2.6.2 transitivePeerDependencies: - aws-crt dev: false - /@aws-sdk/client-cognito-identity@3.515.0: - resolution: {integrity: sha512-e51ImjjRLzXkPEYguvGCbhWPNhoV2OGS6mKHCR940XEeImt04yE1tytYP1vXYpPICmuYgz79BV0FOC9J5N9bvg==} + /@aws-sdk/client-cognito-identity@3.525.0: + resolution: {integrity: sha512-LxI9rfn6Vy/EX6I7as14PAKqAhUwVQviaMV/xCLQIubgdVj1xfexVURdiSk7GQshpcwtrs+GQWV21yP+3AX/7A==} engines: {node: '>=14.0.0'} dependencies: '@aws-crypto/sha256-browser': 3.0.0 '@aws-crypto/sha256-js': 3.0.0 - '@aws-sdk/client-sts': 3.515.0(@aws-sdk/credential-provider-node@3.515.0) - '@aws-sdk/core': 3.513.0 - '@aws-sdk/credential-provider-node': 3.515.0 - '@aws-sdk/middleware-host-header': 3.515.0 - '@aws-sdk/middleware-logger': 3.515.0 - '@aws-sdk/middleware-recursion-detection': 3.515.0 - '@aws-sdk/middleware-user-agent': 3.515.0 - '@aws-sdk/region-config-resolver': 3.515.0 - '@aws-sdk/types': 3.515.0 - '@aws-sdk/util-endpoints': 3.515.0 - '@aws-sdk/util-user-agent-browser': 3.515.0 - '@aws-sdk/util-user-agent-node': 3.515.0 - '@smithy/config-resolver': 2.1.1 - '@smithy/core': 1.3.2 - '@smithy/fetch-http-handler': 2.4.1 - '@smithy/hash-node': 2.1.1 - '@smithy/invalid-dependency': 2.1.1 - '@smithy/middleware-content-length': 2.1.1 - '@smithy/middleware-endpoint': 2.4.1 - '@smithy/middleware-retry': 2.1.1 - '@smithy/middleware-serde': 2.1.1 - '@smithy/middleware-stack': 2.1.1 - '@smithy/node-config-provider': 2.2.1 - '@smithy/node-http-handler': 2.3.1 - '@smithy/protocol-http': 3.1.1 - '@smithy/smithy-client': 2.3.1 - '@smithy/types': 2.9.1 - '@smithy/url-parser': 2.1.1 + '@aws-sdk/client-sts': 3.525.0(@aws-sdk/credential-provider-node@3.525.0) + '@aws-sdk/core': 3.525.0 + '@aws-sdk/credential-provider-node': 3.525.0 + '@aws-sdk/middleware-host-header': 3.523.0 + '@aws-sdk/middleware-logger': 3.523.0 + '@aws-sdk/middleware-recursion-detection': 3.523.0 + '@aws-sdk/middleware-user-agent': 3.525.0 + '@aws-sdk/region-config-resolver': 3.525.0 + '@aws-sdk/types': 3.523.0 + '@aws-sdk/util-endpoints': 3.525.0 + '@aws-sdk/util-user-agent-browser': 3.523.0 + '@aws-sdk/util-user-agent-node': 3.525.0 + '@smithy/config-resolver': 2.1.4 + '@smithy/core': 1.3.5 + '@smithy/fetch-http-handler': 2.4.3 + '@smithy/hash-node': 2.1.3 + '@smithy/invalid-dependency': 2.1.3 + '@smithy/middleware-content-length': 2.1.3 + '@smithy/middleware-endpoint': 2.4.4 + '@smithy/middleware-retry': 2.1.4 + '@smithy/middleware-serde': 2.1.3 + '@smithy/middleware-stack': 2.1.3 + '@smithy/node-config-provider': 2.2.4 + '@smithy/node-http-handler': 2.4.1 + '@smithy/protocol-http': 3.2.1 + '@smithy/smithy-client': 2.4.2 + '@smithy/types': 2.10.1 + '@smithy/url-parser': 2.1.3 '@smithy/util-base64': 2.1.1 '@smithy/util-body-length-browser': 2.1.1 '@smithy/util-body-length-node': 2.2.1 - '@smithy/util-defaults-mode-browser': 2.1.1 - '@smithy/util-defaults-mode-node': 2.2.0 - '@smithy/util-endpoints': 1.1.1 - '@smithy/util-middleware': 2.1.1 - '@smithy/util-retry': 2.1.1 + '@smithy/util-defaults-mode-browser': 2.1.4 + '@smithy/util-defaults-mode-node': 2.2.3 + '@smithy/util-endpoints': 1.1.4 + '@smithy/util-middleware': 2.1.3 + '@smithy/util-retry': 2.1.3 '@smithy/util-utf8': 2.1.1 tslib: 2.6.2 transitivePeerDependencies: - aws-crt dev: false - /@aws-sdk/client-sso-oidc@3.515.0(@aws-sdk/credential-provider-node@3.515.0): - resolution: {integrity: sha512-zACa8LNlPUdlNUBqQRf5a3MfouLNtcBfm84v2c8M976DwJrMGONPe1QjyLLsD38uESQiXiVQRruj/b000iMXNw==} + /@aws-sdk/client-sso-oidc@3.525.0(@aws-sdk/credential-provider-node@3.525.0): + resolution: {integrity: sha512-zz13k/6RkjPSLmReSeGxd8wzGiiZa4Odr2Tv3wTcxClM4wOjD+zOgGv4Fe32b9AMqaueiCdjbvdu7AKcYxFA4A==} engines: {node: '>=14.0.0'} peerDependencies: - '@aws-sdk/credential-provider-node': ^3.515.0 + '@aws-sdk/credential-provider-node': ^3.525.0 dependencies: '@aws-crypto/sha256-browser': 3.0.0 '@aws-crypto/sha256-js': 3.0.0 - '@aws-sdk/client-sts': 3.515.0(@aws-sdk/credential-provider-node@3.515.0) - '@aws-sdk/core': 3.513.0 - '@aws-sdk/credential-provider-node': 3.515.0 - '@aws-sdk/middleware-host-header': 3.515.0 - '@aws-sdk/middleware-logger': 3.515.0 - '@aws-sdk/middleware-recursion-detection': 3.515.0 - '@aws-sdk/middleware-user-agent': 3.515.0 - '@aws-sdk/region-config-resolver': 3.515.0 - '@aws-sdk/types': 3.515.0 - '@aws-sdk/util-endpoints': 3.515.0 - '@aws-sdk/util-user-agent-browser': 3.515.0 - '@aws-sdk/util-user-agent-node': 3.515.0 - '@smithy/config-resolver': 2.1.1 - '@smithy/core': 1.3.2 - '@smithy/fetch-http-handler': 2.4.1 - '@smithy/hash-node': 2.1.1 - '@smithy/invalid-dependency': 2.1.1 - '@smithy/middleware-content-length': 2.1.1 - '@smithy/middleware-endpoint': 2.4.1 - '@smithy/middleware-retry': 2.1.1 - '@smithy/middleware-serde': 2.1.1 - '@smithy/middleware-stack': 2.1.1 - '@smithy/node-config-provider': 2.2.1 - '@smithy/node-http-handler': 2.3.1 - '@smithy/protocol-http': 3.1.1 - '@smithy/smithy-client': 2.3.1 - '@smithy/types': 2.9.1 - '@smithy/url-parser': 2.1.1 + '@aws-sdk/client-sts': 3.525.0(@aws-sdk/credential-provider-node@3.525.0) + '@aws-sdk/core': 3.525.0 + '@aws-sdk/credential-provider-node': 3.525.0 + '@aws-sdk/middleware-host-header': 3.523.0 + '@aws-sdk/middleware-logger': 3.523.0 + '@aws-sdk/middleware-recursion-detection': 3.523.0 + '@aws-sdk/middleware-user-agent': 3.525.0 + '@aws-sdk/region-config-resolver': 3.525.0 + '@aws-sdk/types': 3.523.0 + '@aws-sdk/util-endpoints': 3.525.0 + '@aws-sdk/util-user-agent-browser': 3.523.0 + '@aws-sdk/util-user-agent-node': 3.525.0 + '@smithy/config-resolver': 2.1.4 + '@smithy/core': 1.3.5 + '@smithy/fetch-http-handler': 2.4.3 + '@smithy/hash-node': 2.1.3 + '@smithy/invalid-dependency': 2.1.3 + '@smithy/middleware-content-length': 2.1.3 + '@smithy/middleware-endpoint': 2.4.4 + '@smithy/middleware-retry': 2.1.4 + '@smithy/middleware-serde': 2.1.3 + '@smithy/middleware-stack': 2.1.3 + '@smithy/node-config-provider': 2.2.4 + '@smithy/node-http-handler': 2.4.1 + '@smithy/protocol-http': 3.2.1 + '@smithy/smithy-client': 2.4.2 + '@smithy/types': 2.10.1 + '@smithy/url-parser': 2.1.3 '@smithy/util-base64': 2.1.1 '@smithy/util-body-length-browser': 2.1.1 '@smithy/util-body-length-node': 2.2.1 - '@smithy/util-defaults-mode-browser': 2.1.1 - '@smithy/util-defaults-mode-node': 2.2.0 - '@smithy/util-endpoints': 1.1.1 - '@smithy/util-middleware': 2.1.1 - '@smithy/util-retry': 2.1.1 + '@smithy/util-defaults-mode-browser': 2.1.4 + '@smithy/util-defaults-mode-node': 2.2.3 + '@smithy/util-endpoints': 1.1.4 + '@smithy/util-middleware': 2.1.3 + '@smithy/util-retry': 2.1.3 '@smithy/util-utf8': 2.1.1 tslib: 2.6.2 transitivePeerDependencies: - aws-crt dev: false - /@aws-sdk/client-sso@3.515.0: - resolution: {integrity: sha512-4oGBLW476zmkdN98lAns3bObRNO+DLOfg4MDUSR6l6GYBV/zGAtoy2O/FhwYKgA2L5h2ZtElGopLlk/1Q0ePLw==} + /@aws-sdk/client-sso@3.525.0: + resolution: {integrity: sha512-6KwGQWFoNLH1UupdWPFdKPfTgjSz1kN8/r8aCzuvvXBe4Pz+iDUZ6FEJzGWNc9AapjvZDNO1hs23slomM9rTaA==} engines: {node: '>=14.0.0'} dependencies: '@aws-crypto/sha256-browser': 3.0.0 '@aws-crypto/sha256-js': 3.0.0 - '@aws-sdk/core': 3.513.0 - '@aws-sdk/middleware-host-header': 3.515.0 - '@aws-sdk/middleware-logger': 3.515.0 - '@aws-sdk/middleware-recursion-detection': 3.515.0 - '@aws-sdk/middleware-user-agent': 3.515.0 - '@aws-sdk/region-config-resolver': 3.515.0 - '@aws-sdk/types': 3.515.0 - '@aws-sdk/util-endpoints': 3.515.0 - '@aws-sdk/util-user-agent-browser': 3.515.0 - '@aws-sdk/util-user-agent-node': 3.515.0 - '@smithy/config-resolver': 2.1.1 - '@smithy/core': 1.3.2 - '@smithy/fetch-http-handler': 2.4.1 - '@smithy/hash-node': 2.1.1 - '@smithy/invalid-dependency': 2.1.1 - '@smithy/middleware-content-length': 2.1.1 - '@smithy/middleware-endpoint': 2.4.1 - '@smithy/middleware-retry': 2.1.1 - '@smithy/middleware-serde': 2.1.1 - '@smithy/middleware-stack': 2.1.1 - '@smithy/node-config-provider': 2.2.1 - '@smithy/node-http-handler': 2.3.1 - '@smithy/protocol-http': 3.1.1 - '@smithy/smithy-client': 2.3.1 - '@smithy/types': 2.9.1 - '@smithy/url-parser': 2.1.1 + '@aws-sdk/core': 3.525.0 + '@aws-sdk/middleware-host-header': 3.523.0 + '@aws-sdk/middleware-logger': 3.523.0 + '@aws-sdk/middleware-recursion-detection': 3.523.0 + '@aws-sdk/middleware-user-agent': 3.525.0 + '@aws-sdk/region-config-resolver': 3.525.0 + '@aws-sdk/types': 3.523.0 + '@aws-sdk/util-endpoints': 3.525.0 + '@aws-sdk/util-user-agent-browser': 3.523.0 + '@aws-sdk/util-user-agent-node': 3.525.0 + '@smithy/config-resolver': 2.1.4 + '@smithy/core': 1.3.5 + '@smithy/fetch-http-handler': 2.4.3 + '@smithy/hash-node': 2.1.3 + '@smithy/invalid-dependency': 2.1.3 + '@smithy/middleware-content-length': 2.1.3 + '@smithy/middleware-endpoint': 2.4.4 + '@smithy/middleware-retry': 2.1.4 + '@smithy/middleware-serde': 2.1.3 + '@smithy/middleware-stack': 2.1.3 + '@smithy/node-config-provider': 2.2.4 + '@smithy/node-http-handler': 2.4.1 + '@smithy/protocol-http': 3.2.1 + '@smithy/smithy-client': 2.4.2 + '@smithy/types': 2.10.1 + '@smithy/url-parser': 2.1.3 '@smithy/util-base64': 2.1.1 '@smithy/util-body-length-browser': 2.1.1 '@smithy/util-body-length-node': 2.2.1 - '@smithy/util-defaults-mode-browser': 2.1.1 - '@smithy/util-defaults-mode-node': 2.2.0 - '@smithy/util-endpoints': 1.1.1 - '@smithy/util-middleware': 2.1.1 - '@smithy/util-retry': 2.1.1 + '@smithy/util-defaults-mode-browser': 2.1.4 + '@smithy/util-defaults-mode-node': 2.2.3 + '@smithy/util-endpoints': 1.1.4 + '@smithy/util-middleware': 2.1.3 + '@smithy/util-retry': 2.1.3 '@smithy/util-utf8': 2.1.1 tslib: 2.6.2 transitivePeerDependencies: - aws-crt dev: false - /@aws-sdk/client-sts@3.515.0(@aws-sdk/credential-provider-node@3.515.0): - resolution: {integrity: sha512-ScYuvaIDgip3atOJIA1FU2n0gJkEdveu1KrrCPathoUCV5zpK8qQmO/n+Fj/7hKFxeKdFbB+4W4CsJWYH94nlg==} + /@aws-sdk/client-sts@3.525.0(@aws-sdk/credential-provider-node@3.525.0): + resolution: {integrity: sha512-a8NUGRvO6rkfTZCbMaCsjDjLbERCwIUU9dIywFYcRgbFhkupJ7fSaZz3Het98U51M9ZbTEpaTa3fz0HaJv8VJw==} engines: {node: '>=14.0.0'} peerDependencies: - '@aws-sdk/credential-provider-node': ^3.515.0 + '@aws-sdk/credential-provider-node': ^3.525.0 dependencies: '@aws-crypto/sha256-browser': 3.0.0 '@aws-crypto/sha256-js': 3.0.0 - '@aws-sdk/core': 3.513.0 - '@aws-sdk/credential-provider-node': 3.515.0 - '@aws-sdk/middleware-host-header': 3.515.0 - '@aws-sdk/middleware-logger': 3.515.0 - '@aws-sdk/middleware-recursion-detection': 3.515.0 - '@aws-sdk/middleware-user-agent': 3.515.0 - '@aws-sdk/region-config-resolver': 3.515.0 - '@aws-sdk/types': 3.515.0 - '@aws-sdk/util-endpoints': 3.515.0 - '@aws-sdk/util-user-agent-browser': 3.515.0 - '@aws-sdk/util-user-agent-node': 3.515.0 - '@smithy/config-resolver': 2.1.1 - '@smithy/core': 1.3.2 - '@smithy/fetch-http-handler': 2.4.1 - '@smithy/hash-node': 2.1.1 - '@smithy/invalid-dependency': 2.1.1 - '@smithy/middleware-content-length': 2.1.1 - '@smithy/middleware-endpoint': 2.4.1 - '@smithy/middleware-retry': 2.1.1 - '@smithy/middleware-serde': 2.1.1 - '@smithy/middleware-stack': 2.1.1 - '@smithy/node-config-provider': 2.2.1 - '@smithy/node-http-handler': 2.3.1 - '@smithy/protocol-http': 3.1.1 - '@smithy/smithy-client': 2.3.1 - '@smithy/types': 2.9.1 - '@smithy/url-parser': 2.1.1 + '@aws-sdk/core': 3.525.0 + '@aws-sdk/credential-provider-node': 3.525.0 + '@aws-sdk/middleware-host-header': 3.523.0 + '@aws-sdk/middleware-logger': 3.523.0 + '@aws-sdk/middleware-recursion-detection': 3.523.0 + '@aws-sdk/middleware-user-agent': 3.525.0 + '@aws-sdk/region-config-resolver': 3.525.0 + '@aws-sdk/types': 3.523.0 + '@aws-sdk/util-endpoints': 3.525.0 + '@aws-sdk/util-user-agent-browser': 3.523.0 + '@aws-sdk/util-user-agent-node': 3.525.0 + '@smithy/config-resolver': 2.1.4 + '@smithy/core': 1.3.5 + '@smithy/fetch-http-handler': 2.4.3 + '@smithy/hash-node': 2.1.3 + '@smithy/invalid-dependency': 2.1.3 + '@smithy/middleware-content-length': 2.1.3 + '@smithy/middleware-endpoint': 2.4.4 + '@smithy/middleware-retry': 2.1.4 + '@smithy/middleware-serde': 2.1.3 + '@smithy/middleware-stack': 2.1.3 + '@smithy/node-config-provider': 2.2.4 + '@smithy/node-http-handler': 2.4.1 + '@smithy/protocol-http': 3.2.1 + '@smithy/smithy-client': 2.4.2 + '@smithy/types': 2.10.1 + '@smithy/url-parser': 2.1.3 '@smithy/util-base64': 2.1.1 '@smithy/util-body-length-browser': 2.1.1 '@smithy/util-body-length-node': 2.2.1 - '@smithy/util-defaults-mode-browser': 2.1.1 - '@smithy/util-defaults-mode-node': 2.2.0 - '@smithy/util-endpoints': 1.1.1 - '@smithy/util-middleware': 2.1.1 - '@smithy/util-retry': 2.1.1 + '@smithy/util-defaults-mode-browser': 2.1.4 + '@smithy/util-defaults-mode-node': 2.2.3 + '@smithy/util-endpoints': 1.1.4 + '@smithy/util-middleware': 2.1.3 + '@smithy/util-retry': 2.1.3 '@smithy/util-utf8': 2.1.1 fast-xml-parser: 4.2.5 tslib: 2.6.2 @@ -1640,243 +1698,243 @@ packages: - aws-crt dev: false - /@aws-sdk/core@3.513.0: - resolution: {integrity: sha512-L+9DL4apWuqNKVOMJ8siAuWoRM9rZf9w1iPv8S2o83WO2jVK7E/m+rNW1dFo9HsA5V1ccDl2H2qLXx24HiHmOw==} + /@aws-sdk/core@3.525.0: + resolution: {integrity: sha512-E3LtEtMWCriQOFZpVKpLYzbdw/v2PAOEAMhn2VRRZ1g0/g1TXzQrfhEU2yd8l/vQEJaCJ82ooGGg7YECviBUxA==} engines: {node: '>=14.0.0'} dependencies: - '@smithy/core': 1.3.2 - '@smithy/protocol-http': 3.1.1 - '@smithy/signature-v4': 2.1.1 - '@smithy/smithy-client': 2.3.1 - '@smithy/types': 2.9.1 + '@smithy/core': 1.3.5 + '@smithy/protocol-http': 3.2.1 + '@smithy/signature-v4': 2.1.3 + '@smithy/smithy-client': 2.4.2 + '@smithy/types': 2.10.1 tslib: 2.6.2 dev: false - /@aws-sdk/credential-provider-cognito-identity@3.515.0: - resolution: {integrity: sha512-pWMJFhNc6bLbCpKhYXWWa23wMyhpFFyw3kF/6ea+95JQHF0FY2l4wDQa7ynE4hW4Wf5oA3Sf7Wf87pp9iAHubQ==} + /@aws-sdk/credential-provider-cognito-identity@3.525.0: + resolution: {integrity: sha512-0djjCN/zN6QFQt1xU64VBOSRP4wJckU6U7FjLPrGpL6w03hF0dUmVUXjhQZe5WKNPCicVc2S3BYPohl/PzCx1w==} engines: {node: '>=14.0.0'} dependencies: - '@aws-sdk/client-cognito-identity': 3.515.0 - '@aws-sdk/types': 3.515.0 - '@smithy/property-provider': 2.1.1 - '@smithy/types': 2.9.1 + '@aws-sdk/client-cognito-identity': 3.525.0 + '@aws-sdk/types': 3.523.0 + '@smithy/property-provider': 2.1.3 + '@smithy/types': 2.10.1 tslib: 2.6.2 transitivePeerDependencies: - aws-crt dev: false - /@aws-sdk/credential-provider-env@3.515.0: - resolution: {integrity: sha512-45vxdyqhTAaUMERYVWOziG3K8L2TV9G4ryQS/KZ84o7NAybE9GMdoZRVmGHAO7mJJ1wQiYCM/E+i5b3NW9JfNA==} + /@aws-sdk/credential-provider-env@3.523.0: + resolution: {integrity: sha512-Y6DWdH6/OuMDoNKVzZlNeBc6f1Yjk1lYMjANKpIhMbkRCvLJw/PYZKOZa8WpXbTYdgg9XLjKybnLIb3ww3uuzA==} engines: {node: '>=14.0.0'} dependencies: - '@aws-sdk/types': 3.515.0 - '@smithy/property-provider': 2.1.1 - '@smithy/types': 2.9.1 + '@aws-sdk/types': 3.523.0 + '@smithy/property-provider': 2.1.3 + '@smithy/types': 2.10.1 tslib: 2.6.2 dev: false - /@aws-sdk/credential-provider-http@3.515.0: - resolution: {integrity: sha512-Ba6FXK77vU4WyheiamNjEuTFmir0eAXuJGPO27lBaA8g+V/seXGHScsbOG14aQGDOr2P02OPwKGZrWWA7BFpfQ==} + /@aws-sdk/credential-provider-http@3.525.0: + resolution: {integrity: sha512-RNWQGuSBQZhl3iqklOslUEfQ4br1V3DCPboMpeqFtddUWJV3m2u2extFur9/4Uy+1EHVF120IwZUKtd8dF+ibw==} engines: {node: '>=14.0.0'} dependencies: - '@aws-sdk/types': 3.515.0 - '@smithy/fetch-http-handler': 2.4.1 - '@smithy/node-http-handler': 2.3.1 - '@smithy/property-provider': 2.1.1 - '@smithy/protocol-http': 3.1.1 - '@smithy/smithy-client': 2.3.1 - '@smithy/types': 2.9.1 - '@smithy/util-stream': 2.1.1 + '@aws-sdk/types': 3.523.0 + '@smithy/fetch-http-handler': 2.4.3 + '@smithy/node-http-handler': 2.4.1 + '@smithy/property-provider': 2.1.3 + '@smithy/protocol-http': 3.2.1 + '@smithy/smithy-client': 2.4.2 + '@smithy/types': 2.10.1 + '@smithy/util-stream': 2.1.3 tslib: 2.6.2 dev: false - /@aws-sdk/credential-provider-ini@3.515.0(@aws-sdk/credential-provider-node@3.515.0): - resolution: {integrity: sha512-ouDlNZdv2TKeVEA/YZk2+XklTXyAAGdbWnl4IgN9ItaodWI+lZjdIoNC8BAooVH+atIV/cZgoGTGQL7j2TxJ9A==} + /@aws-sdk/credential-provider-ini@3.525.0(@aws-sdk/credential-provider-node@3.525.0): + resolution: {integrity: sha512-JDnccfK5JRb9jcgpc9lirL9PyCwGIqY0nKdw3LlX5WL5vTpTG4E1q7rLAlpNh7/tFD1n66Itarfv2tsyHMIqCw==} engines: {node: '>=14.0.0'} dependencies: - '@aws-sdk/client-sts': 3.515.0(@aws-sdk/credential-provider-node@3.515.0) - '@aws-sdk/credential-provider-env': 3.515.0 - '@aws-sdk/credential-provider-process': 3.515.0 - '@aws-sdk/credential-provider-sso': 3.515.0(@aws-sdk/credential-provider-node@3.515.0) - '@aws-sdk/credential-provider-web-identity': 3.515.0(@aws-sdk/credential-provider-node@3.515.0) - '@aws-sdk/types': 3.515.0 - '@smithy/credential-provider-imds': 2.2.1 - '@smithy/property-provider': 2.1.1 - '@smithy/shared-ini-file-loader': 2.3.1 - '@smithy/types': 2.9.1 + '@aws-sdk/client-sts': 3.525.0(@aws-sdk/credential-provider-node@3.525.0) + '@aws-sdk/credential-provider-env': 3.523.0 + '@aws-sdk/credential-provider-process': 3.523.0 + '@aws-sdk/credential-provider-sso': 3.525.0(@aws-sdk/credential-provider-node@3.525.0) + '@aws-sdk/credential-provider-web-identity': 3.525.0(@aws-sdk/credential-provider-node@3.525.0) + '@aws-sdk/types': 3.523.0 + '@smithy/credential-provider-imds': 2.2.4 + '@smithy/property-provider': 2.1.3 + '@smithy/shared-ini-file-loader': 2.3.4 + '@smithy/types': 2.10.1 tslib: 2.6.2 transitivePeerDependencies: - '@aws-sdk/credential-provider-node' - aws-crt dev: false - /@aws-sdk/credential-provider-node@3.515.0: - resolution: {integrity: sha512-Y4kHSpbxksiCZZNcvsiKUd8Fb2XlyUuONEwqWFNL82ZH6TCCjBGS31wJQCSxBHqYcOL3tiORUEJkoO7uS30uQA==} + /@aws-sdk/credential-provider-node@3.525.0: + resolution: {integrity: sha512-RJXlO8goGXpnoHQAyrCcJ0QtWEOFa34LSbfdqBIjQX/fwnjUuEmiGdXTV3AZmwYQ7juk49tfBneHbtOP3AGqsQ==} engines: {node: '>=14.0.0'} dependencies: - '@aws-sdk/credential-provider-env': 3.515.0 - '@aws-sdk/credential-provider-http': 3.515.0 - '@aws-sdk/credential-provider-ini': 3.515.0(@aws-sdk/credential-provider-node@3.515.0) - '@aws-sdk/credential-provider-process': 3.515.0 - '@aws-sdk/credential-provider-sso': 3.515.0(@aws-sdk/credential-provider-node@3.515.0) - '@aws-sdk/credential-provider-web-identity': 3.515.0(@aws-sdk/credential-provider-node@3.515.0) - '@aws-sdk/types': 3.515.0 - '@smithy/credential-provider-imds': 2.2.1 - '@smithy/property-provider': 2.1.1 - '@smithy/shared-ini-file-loader': 2.3.1 - '@smithy/types': 2.9.1 + '@aws-sdk/credential-provider-env': 3.523.0 + '@aws-sdk/credential-provider-http': 3.525.0 + '@aws-sdk/credential-provider-ini': 3.525.0(@aws-sdk/credential-provider-node@3.525.0) + '@aws-sdk/credential-provider-process': 3.523.0 + '@aws-sdk/credential-provider-sso': 3.525.0(@aws-sdk/credential-provider-node@3.525.0) + '@aws-sdk/credential-provider-web-identity': 3.525.0(@aws-sdk/credential-provider-node@3.525.0) + '@aws-sdk/types': 3.523.0 + '@smithy/credential-provider-imds': 2.2.4 + '@smithy/property-provider': 2.1.3 + '@smithy/shared-ini-file-loader': 2.3.4 + '@smithy/types': 2.10.1 tslib: 2.6.2 transitivePeerDependencies: - aws-crt dev: false - /@aws-sdk/credential-provider-process@3.515.0: - resolution: {integrity: sha512-pSjiOA2FM63LHRKNDvEpBRp80FVGT0Mw/gzgbqFXP+sewk0WVonYbEcMDTJptH3VsLPGzqH/DQ1YL/aEIBuXFQ==} + /@aws-sdk/credential-provider-process@3.523.0: + resolution: {integrity: sha512-f0LP9KlFmMvPWdKeUKYlZ6FkQAECUeZMmISsv6NKtvPCI9e4O4cLTeR09telwDK8P0HrgcRuZfXM7E30m8re0Q==} engines: {node: '>=14.0.0'} dependencies: - '@aws-sdk/types': 3.515.0 - '@smithy/property-provider': 2.1.1 - '@smithy/shared-ini-file-loader': 2.3.1 - '@smithy/types': 2.9.1 + '@aws-sdk/types': 3.523.0 + '@smithy/property-provider': 2.1.3 + '@smithy/shared-ini-file-loader': 2.3.4 + '@smithy/types': 2.10.1 tslib: 2.6.2 dev: false - /@aws-sdk/credential-provider-sso@3.515.0(@aws-sdk/credential-provider-node@3.515.0): - resolution: {integrity: sha512-j7vUkiSmuhpBvZYoPTRTI4ePnQbiZMFl6TNhg9b9DprC1zHkucsZnhRhqjOVlrw/H6J4jmcPGcHHTZ5WQNI5xQ==} + /@aws-sdk/credential-provider-sso@3.525.0(@aws-sdk/credential-provider-node@3.525.0): + resolution: {integrity: sha512-7V7ybtufxdD3plxeIeB6aqHZeFIUlAyPphXIUgXrGY10iNcosL970rQPBeggsohe4gCM6UvY2TfMeEcr+ZE8FA==} engines: {node: '>=14.0.0'} dependencies: - '@aws-sdk/client-sso': 3.515.0 - '@aws-sdk/token-providers': 3.515.0(@aws-sdk/credential-provider-node@3.515.0) - '@aws-sdk/types': 3.515.0 - '@smithy/property-provider': 2.1.1 - '@smithy/shared-ini-file-loader': 2.3.1 - '@smithy/types': 2.9.1 + '@aws-sdk/client-sso': 3.525.0 + '@aws-sdk/token-providers': 3.525.0(@aws-sdk/credential-provider-node@3.525.0) + '@aws-sdk/types': 3.523.0 + '@smithy/property-provider': 2.1.3 + '@smithy/shared-ini-file-loader': 2.3.4 + '@smithy/types': 2.10.1 tslib: 2.6.2 transitivePeerDependencies: - '@aws-sdk/credential-provider-node' - aws-crt dev: false - /@aws-sdk/credential-provider-web-identity@3.515.0(@aws-sdk/credential-provider-node@3.515.0): - resolution: {integrity: sha512-66+2g4z3fWwdoGReY8aUHvm6JrKZMTRxjuizljVmMyOBttKPeBYXvUTop/g3ZGUx1f8j+C5qsGK52viYBvtjuQ==} + /@aws-sdk/credential-provider-web-identity@3.525.0(@aws-sdk/credential-provider-node@3.525.0): + resolution: {integrity: sha512-sAukOjR1oKb2JXG4nPpuBFpSwGUhrrY17PG/xbTy8NAoLLhrqRwnErcLfdTfmj6tH+3094k6ws/Sh8a35ae7fA==} engines: {node: '>=14.0.0'} dependencies: - '@aws-sdk/client-sts': 3.515.0(@aws-sdk/credential-provider-node@3.515.0) - '@aws-sdk/types': 3.515.0 - '@smithy/property-provider': 2.1.1 - '@smithy/types': 2.9.1 + '@aws-sdk/client-sts': 3.525.0(@aws-sdk/credential-provider-node@3.525.0) + '@aws-sdk/types': 3.523.0 + '@smithy/property-provider': 2.1.3 + '@smithy/types': 2.10.1 tslib: 2.6.2 transitivePeerDependencies: - '@aws-sdk/credential-provider-node' - aws-crt dev: false - /@aws-sdk/credential-providers@3.515.0: - resolution: {integrity: sha512-XQ9maVLTtv6iJbOYiRS+IvaPlFkJDuxfpfxuky3aPzQpxDilU4cf1CfIDua8qivZKQ4QQOd1EaBMXPIpLI1ZTQ==} + /@aws-sdk/credential-providers@3.525.0: + resolution: {integrity: sha512-zj439Ok1s44nahIJKpBM4jhAxnSw20flXQpMD2aeGdvUuKm2xmzZP0lX5z9a+XQWFtNh251ZcSt2p+RwtLKtiw==} engines: {node: '>=14.0.0'} dependencies: - '@aws-sdk/client-cognito-identity': 3.515.0 - '@aws-sdk/client-sso': 3.515.0 - '@aws-sdk/client-sts': 3.515.0(@aws-sdk/credential-provider-node@3.515.0) - '@aws-sdk/credential-provider-cognito-identity': 3.515.0 - '@aws-sdk/credential-provider-env': 3.515.0 - '@aws-sdk/credential-provider-http': 3.515.0 - '@aws-sdk/credential-provider-ini': 3.515.0(@aws-sdk/credential-provider-node@3.515.0) - '@aws-sdk/credential-provider-node': 3.515.0 - '@aws-sdk/credential-provider-process': 3.515.0 - '@aws-sdk/credential-provider-sso': 3.515.0(@aws-sdk/credential-provider-node@3.515.0) - '@aws-sdk/credential-provider-web-identity': 3.515.0(@aws-sdk/credential-provider-node@3.515.0) - '@aws-sdk/types': 3.515.0 - '@smithy/credential-provider-imds': 2.2.1 - '@smithy/property-provider': 2.1.1 - '@smithy/types': 2.9.1 + '@aws-sdk/client-cognito-identity': 3.525.0 + '@aws-sdk/client-sso': 3.525.0 + '@aws-sdk/client-sts': 3.525.0(@aws-sdk/credential-provider-node@3.525.0) + '@aws-sdk/credential-provider-cognito-identity': 3.525.0 + '@aws-sdk/credential-provider-env': 3.523.0 + '@aws-sdk/credential-provider-http': 3.525.0 + '@aws-sdk/credential-provider-ini': 3.525.0(@aws-sdk/credential-provider-node@3.525.0) + '@aws-sdk/credential-provider-node': 3.525.0 + '@aws-sdk/credential-provider-process': 3.523.0 + '@aws-sdk/credential-provider-sso': 3.525.0(@aws-sdk/credential-provider-node@3.525.0) + '@aws-sdk/credential-provider-web-identity': 3.525.0(@aws-sdk/credential-provider-node@3.525.0) + '@aws-sdk/types': 3.523.0 + '@smithy/credential-provider-imds': 2.2.4 + '@smithy/property-provider': 2.1.3 + '@smithy/types': 2.10.1 tslib: 2.6.2 transitivePeerDependencies: - aws-crt dev: false - /@aws-sdk/middleware-host-header@3.515.0: - resolution: {integrity: sha512-I1MwWPzdRKM1luvdDdjdGsDjNVPhj9zaIytEchjTY40NcKOg+p2evLD2y69ozzg8pyXK63r8DdvDGOo9QPuh0A==} + /@aws-sdk/middleware-host-header@3.523.0: + resolution: {integrity: sha512-4g3q7Ta9sdD9TMUuohBAkbx/e3I/juTqfKi7TPgP+8jxcYX72MOsgemAMHuP6CX27eyj4dpvjH+w4SIVDiDSmg==} engines: {node: '>=14.0.0'} dependencies: - '@aws-sdk/types': 3.515.0 - '@smithy/protocol-http': 3.1.1 - '@smithy/types': 2.9.1 + '@aws-sdk/types': 3.523.0 + '@smithy/protocol-http': 3.2.1 + '@smithy/types': 2.10.1 tslib: 2.6.2 dev: false - /@aws-sdk/middleware-logger@3.515.0: - resolution: {integrity: sha512-qXomJzg2m/5seQOxHi/yOXOKfSjwrrJSmEmfwJKJyQgdMbBcjz3Cz0H/1LyC6c5hHm6a/SZgSTzDAbAoUmyL+Q==} + /@aws-sdk/middleware-logger@3.523.0: + resolution: {integrity: sha512-PeDNJNhfiaZx54LBaLTXzUaJ9LXFwDFFIksipjqjvxMafnoVcQwKbkoPUWLe5ytT4nnL1LogD3s55mERFUsnwg==} engines: {node: '>=14.0.0'} dependencies: - '@aws-sdk/types': 3.515.0 - '@smithy/types': 2.9.1 + '@aws-sdk/types': 3.523.0 + '@smithy/types': 2.10.1 tslib: 2.6.2 dev: false - /@aws-sdk/middleware-recursion-detection@3.515.0: - resolution: {integrity: sha512-dokHLbTV3IHRIBrw9mGoxcNTnQsjlm7TpkJhPdGT9T4Mq399EyQo51u6IsVMm07RXLl2Zw7u+u9p+qWBFzmFRA==} + /@aws-sdk/middleware-recursion-detection@3.523.0: + resolution: {integrity: sha512-nZ3Vt7ehfSDYnrcg/aAfjjvpdE+61B3Zk68i6/hSUIegT3IH9H1vSW67NDKVp+50hcEfzWwM2HMPXxlzuyFyrw==} engines: {node: '>=14.0.0'} dependencies: - '@aws-sdk/types': 3.515.0 - '@smithy/protocol-http': 3.1.1 - '@smithy/types': 2.9.1 + '@aws-sdk/types': 3.523.0 + '@smithy/protocol-http': 3.2.1 + '@smithy/types': 2.10.1 tslib: 2.6.2 dev: false - /@aws-sdk/middleware-user-agent@3.515.0: - resolution: {integrity: sha512-nOqZjGA/GkjuJ5fUshec9Fv6HFd7ovOTxMJbw3MfAhqXuVZ6dKF41lpVJ4imNsgyFt3shUg9WDY8zGFjlYMB3g==} + /@aws-sdk/middleware-user-agent@3.525.0: + resolution: {integrity: sha512-4al/6uO+t/QIYXK2OgqzDKQzzLAYJza1vWFS+S0lJ3jLNGyLB5BMU5KqWjDzevYZ4eCnz2Nn7z0FveUTNz8YdQ==} engines: {node: '>=14.0.0'} dependencies: - '@aws-sdk/types': 3.515.0 - '@aws-sdk/util-endpoints': 3.515.0 - '@smithy/protocol-http': 3.1.1 - '@smithy/types': 2.9.1 + '@aws-sdk/types': 3.523.0 + '@aws-sdk/util-endpoints': 3.525.0 + '@smithy/protocol-http': 3.2.1 + '@smithy/types': 2.10.1 tslib: 2.6.2 dev: false - /@aws-sdk/region-config-resolver@3.515.0: - resolution: {integrity: sha512-RIRx9loxMgEAc/r1wPfnfShOuzn4RBi8pPPv6/jhhITEeMnJe6enAh2k5y9DdiVDDgCWZgVFSv0YkAIfzAFsnQ==} + /@aws-sdk/region-config-resolver@3.525.0: + resolution: {integrity: sha512-8kFqXk6UyKgTMi7N7QlhA6qM4pGPWbiUXqEY2RgUWngtxqNFGeM9JTexZeuavQI+qLLe09VPShPNX71fEDcM6w==} engines: {node: '>=14.0.0'} dependencies: - '@aws-sdk/types': 3.515.0 - '@smithy/node-config-provider': 2.2.1 - '@smithy/types': 2.9.1 + '@aws-sdk/types': 3.523.0 + '@smithy/node-config-provider': 2.2.4 + '@smithy/types': 2.10.1 '@smithy/util-config-provider': 2.2.1 - '@smithy/util-middleware': 2.1.1 + '@smithy/util-middleware': 2.1.3 tslib: 2.6.2 dev: false - /@aws-sdk/token-providers@3.515.0(@aws-sdk/credential-provider-node@3.515.0): - resolution: {integrity: sha512-MQuf04rIcTXqwDzmyHSpFPF1fKEzRl64oXtCRUF3ddxTdK6wxXkePfK6wNCuL+GEbEcJAoCtIGIRpzGPJvQjHA==} + /@aws-sdk/token-providers@3.525.0(@aws-sdk/credential-provider-node@3.525.0): + resolution: {integrity: sha512-puVjbxuK0Dq7PTQ2HdddHy2eQjOH8GZbump74yWJa6JVpRW84LlOcNmP+79x4Kscvz2ldWB8XDFw/pcCiSDe5A==} engines: {node: '>=14.0.0'} dependencies: - '@aws-sdk/client-sso-oidc': 3.515.0(@aws-sdk/credential-provider-node@3.515.0) - '@aws-sdk/types': 3.515.0 - '@smithy/property-provider': 2.1.1 - '@smithy/shared-ini-file-loader': 2.3.1 - '@smithy/types': 2.9.1 + '@aws-sdk/client-sso-oidc': 3.525.0(@aws-sdk/credential-provider-node@3.525.0) + '@aws-sdk/types': 3.523.0 + '@smithy/property-provider': 2.1.3 + '@smithy/shared-ini-file-loader': 2.3.4 + '@smithy/types': 2.10.1 tslib: 2.6.2 transitivePeerDependencies: - '@aws-sdk/credential-provider-node' - aws-crt dev: false - /@aws-sdk/types@3.515.0: - resolution: {integrity: sha512-B3gUpiMlpT6ERaLvZZ61D0RyrQPsFYDkCncLPVkZOKkCOoFU46zi1o6T5JcYiz8vkx1q9RGloQ5exh79s5pU/w==} + /@aws-sdk/types@3.523.0: + resolution: {integrity: sha512-AqGIu4u+SxPiUuNBp2acCVcq80KDUFjxe6e3cMTvKWTzCbrVk1AXv0dAaJnCmdkWIha6zJDWxpIk/aL4EGhZ9A==} engines: {node: '>=14.0.0'} dependencies: - '@smithy/types': 2.9.1 + '@smithy/types': 2.10.1 tslib: 2.6.2 dev: false - /@aws-sdk/util-endpoints@3.515.0: - resolution: {integrity: sha512-UJi+jdwcGFV/F7d3+e2aQn5yZOVpDiAgfgNhPnEtgV0WozJ5/ZUeZBgWvSc/K415N4A4D/9cbBc7+I+35qzcDQ==} + /@aws-sdk/util-endpoints@3.525.0: + resolution: {integrity: sha512-DIW7WWU5tIGkeeKX6NJUyrEIdWMiqjLQG3XBzaUj+ufIENwNjdAHhlD8l2vX7Yr3JZRT6yN/84wBCj7Tw1xd1g==} engines: {node: '>=14.0.0'} dependencies: - '@aws-sdk/types': 3.515.0 - '@smithy/types': 2.9.1 - '@smithy/util-endpoints': 1.1.1 + '@aws-sdk/types': 3.523.0 + '@smithy/types': 2.10.1 + '@smithy/util-endpoints': 1.1.4 tslib: 2.6.2 dev: false @@ -1887,17 +1945,17 @@ packages: tslib: 2.6.2 dev: false - /@aws-sdk/util-user-agent-browser@3.515.0: - resolution: {integrity: sha512-pTWQb0JCafTmLHLDv3Qqs/nAAJghcPdGQIBpsCStb0YEzg3At/dOi2AIQ683yYnXmeOxLXJDzmlsovfVObJScw==} + /@aws-sdk/util-user-agent-browser@3.523.0: + resolution: {integrity: sha512-6ZRNdGHX6+HQFqTbIA5+i8RWzxFyxsZv8D3soRfpdyWIKkzhSz8IyRKXRciwKBJDaC7OX2jzGE90wxRQft27nA==} dependencies: - '@aws-sdk/types': 3.515.0 - '@smithy/types': 2.9.1 + '@aws-sdk/types': 3.523.0 + '@smithy/types': 2.10.1 bowser: 2.11.0 tslib: 2.6.2 dev: false - /@aws-sdk/util-user-agent-node@3.515.0: - resolution: {integrity: sha512-A/KJ+/HTohHyVXLH+t/bO0Z2mPrQgELbQO8tX+B2nElo8uklj70r5cT7F8ETsI9oOy+HDVpiL5/v45ZgpUOiPg==} + /@aws-sdk/util-user-agent-node@3.525.0: + resolution: {integrity: sha512-88Wjt4efyUSBGcyIuh1dvoMqY1k15jpJc5A/3yi67clBQEFsu9QCodQCQPqmRjV3VRcMtBOk+jeCTiUzTY5dRQ==} engines: {node: '>=14.0.0'} peerDependencies: aws-crt: '>=1.0.0' @@ -1905,9 +1963,9 @@ packages: aws-crt: optional: true dependencies: - '@aws-sdk/types': 3.515.0 - '@smithy/node-config-provider': 2.2.1 - '@smithy/types': 2.9.1 + '@aws-sdk/types': 3.523.0 + '@smithy/node-config-provider': 2.2.4 + '@smithy/types': 2.10.1 tslib: 2.6.2 dev: false @@ -3590,14 +3648,14 @@ packages: resolution: {integrity: sha512-JEV2RAqijAFdWeT6HddYymfnkiRu2ASxoTBr4WsnGJhOjWZkEy6vp+Sx9ozr1NaIODOa2HUyckExIqQjn6qywQ==} engines: {node: '>=14'} dependencies: - '@opentelemetry/api': 1.7.0 + '@opentelemetry/api': 1.6.0 dev: false /@opentelemetry/api-logs@0.43.0: resolution: {integrity: sha512-0CXMOYPXgAdLM2OzVkiUfAL6QQwWVhnMfUXCqLsITY42FZ9TxAhZIHkoc4mfVxvPuXsBnRYGR8UQZX86p87z4A==} engines: {node: '>=14'} dependencies: - '@opentelemetry/api': 1.7.0 + '@opentelemetry/api': 1.6.0 dev: false /@opentelemetry/api-logs@0.48.0: @@ -3611,11 +3669,6 @@ packages: resolution: {integrity: sha512-OWlrQAnWn9577PhVgqjUvMr1pg57Bc4jv0iL4w0PRuOSRvq67rvHW9Ie/dZVMvCzhSCB+UxhcY/PmCmFj33Q+g==} engines: {node: '>=8.0.0'} - /@opentelemetry/api@1.7.0: - resolution: {integrity: sha512-AdY5wvN0P2vXBi3b29hxZgSFvdhdxPB9+f0B6s//P9Q8nibRWeA3cHm8UmLpio9ABigkVHJ5NMPk+Mz8VCCyrw==} - engines: {node: '>=8.0.0'} - dev: false - /@opentelemetry/context-async-hooks@1.21.0(@opentelemetry/api@1.6.0): resolution: {integrity: sha512-t0iulGPiMjG/NrSjinPQoIf8ST/o9V0dGOJthfrFporJlNdlKIQPfC7lkrV+5s2dyBThfmSbJlp/4hO1eOcDXA==} engines: {node: '>=14'} @@ -3625,32 +3678,23 @@ packages: '@opentelemetry/api': 1.6.0 dev: false - /@opentelemetry/context-async-hooks@1.21.0(@opentelemetry/api@1.7.0): - resolution: {integrity: sha512-t0iulGPiMjG/NrSjinPQoIf8ST/o9V0dGOJthfrFporJlNdlKIQPfC7lkrV+5s2dyBThfmSbJlp/4hO1eOcDXA==} - engines: {node: '>=14'} - peerDependencies: - '@opentelemetry/api': '>=1.0.0 <1.8.0' - dependencies: - '@opentelemetry/api': 1.7.0 - dev: false - - /@opentelemetry/core@1.15.2(@opentelemetry/api@1.7.0): + /@opentelemetry/core@1.15.2(@opentelemetry/api@1.6.0): resolution: {integrity: sha512-+gBv15ta96WqkHZaPpcDHiaz0utiiHZVfm2YOYSqFGrUaJpPkMoSuLBB58YFQGi6Rsb9EHos84X6X5+9JspmLw==} engines: {node: '>=14'} peerDependencies: '@opentelemetry/api': '>=1.0.0 <1.5.0' dependencies: - '@opentelemetry/api': 1.7.0 + '@opentelemetry/api': 1.6.0 '@opentelemetry/semantic-conventions': 1.15.2 dev: false - /@opentelemetry/core@1.17.0(@opentelemetry/api@1.7.0): + /@opentelemetry/core@1.17.0(@opentelemetry/api@1.6.0): resolution: {integrity: sha512-tfnl3h+UefCgx1aeN2xtrmr6BmdWGKXypk0pflQR0urFS40aE88trnkOMc2HTJZbMrqEEl4HsaBeFhwLVXsrJg==} engines: {node: '>=14'} peerDependencies: '@opentelemetry/api': '>=1.0.0 <1.7.0' dependencies: - '@opentelemetry/api': 1.7.0 + '@opentelemetry/api': 1.6.0 '@opentelemetry/semantic-conventions': 1.17.0 dev: false @@ -3664,75 +3708,65 @@ packages: '@opentelemetry/semantic-conventions': 1.21.0 dev: false - /@opentelemetry/core@1.21.0(@opentelemetry/api@1.7.0): - resolution: {integrity: sha512-KP+OIweb3wYoP7qTYL/j5IpOlu52uxBv5M4+QhSmmUfLyTgu1OIS71msK3chFo1D6Y61BIH3wMiMYRCxJCQctA==} - engines: {node: '>=14'} - peerDependencies: - '@opentelemetry/api': '>=1.0.0 <1.8.0' - dependencies: - '@opentelemetry/api': 1.7.0 - '@opentelemetry/semantic-conventions': 1.21.0 - dev: false - - /@opentelemetry/exporter-metrics-otlp-grpc@0.41.2(@opentelemetry/api@1.7.0): + /@opentelemetry/exporter-metrics-otlp-grpc@0.41.2(@opentelemetry/api@1.6.0): resolution: {integrity: sha512-gQuCcd5QSMkfi1XIriWAoak/vaRvFzpvtzh2hjziIvbnA3VtoGD3bDb2dzEzOA1iSWO0/tHwnBsSmmUZsETyOA==} engines: {node: '>=14'} peerDependencies: '@opentelemetry/api': ^1.3.0 dependencies: '@grpc/grpc-js': 1.10.1 - '@opentelemetry/api': 1.7.0 - '@opentelemetry/core': 1.15.2(@opentelemetry/api@1.7.0) - '@opentelemetry/exporter-metrics-otlp-http': 0.41.2(@opentelemetry/api@1.7.0) - '@opentelemetry/otlp-grpc-exporter-base': 0.41.2(@opentelemetry/api@1.7.0) - '@opentelemetry/otlp-transformer': 0.41.2(@opentelemetry/api@1.7.0) - '@opentelemetry/resources': 1.15.2(@opentelemetry/api@1.7.0) - '@opentelemetry/sdk-metrics': 1.15.2(@opentelemetry/api@1.7.0) + '@opentelemetry/api': 1.6.0 + '@opentelemetry/core': 1.15.2(@opentelemetry/api@1.6.0) + '@opentelemetry/exporter-metrics-otlp-http': 0.41.2(@opentelemetry/api@1.6.0) + '@opentelemetry/otlp-grpc-exporter-base': 0.41.2(@opentelemetry/api@1.6.0) + '@opentelemetry/otlp-transformer': 0.41.2(@opentelemetry/api@1.6.0) + '@opentelemetry/resources': 1.15.2(@opentelemetry/api@1.6.0) + '@opentelemetry/sdk-metrics': 1.15.2(@opentelemetry/api@1.6.0) dev: false - /@opentelemetry/exporter-metrics-otlp-http@0.41.2(@opentelemetry/api@1.7.0): + /@opentelemetry/exporter-metrics-otlp-http@0.41.2(@opentelemetry/api@1.6.0): resolution: {integrity: sha512-+YeIcL4nuldWE89K8NBLImpXCvih04u1MBnn8EzvoywG2TKR5JC3CZEPepODIxlsfGSgP8W5khCEP1NHZzftYw==} engines: {node: '>=14'} peerDependencies: '@opentelemetry/api': ^1.3.0 dependencies: - '@opentelemetry/api': 1.7.0 - '@opentelemetry/core': 1.15.2(@opentelemetry/api@1.7.0) - '@opentelemetry/otlp-exporter-base': 0.41.2(@opentelemetry/api@1.7.0) - '@opentelemetry/otlp-transformer': 0.41.2(@opentelemetry/api@1.7.0) - '@opentelemetry/resources': 1.15.2(@opentelemetry/api@1.7.0) - '@opentelemetry/sdk-metrics': 1.15.2(@opentelemetry/api@1.7.0) + '@opentelemetry/api': 1.6.0 + '@opentelemetry/core': 1.15.2(@opentelemetry/api@1.6.0) + '@opentelemetry/otlp-exporter-base': 0.41.2(@opentelemetry/api@1.6.0) + '@opentelemetry/otlp-transformer': 0.41.2(@opentelemetry/api@1.6.0) + '@opentelemetry/resources': 1.15.2(@opentelemetry/api@1.6.0) + '@opentelemetry/sdk-metrics': 1.15.2(@opentelemetry/api@1.6.0) dev: false - /@opentelemetry/exporter-metrics-otlp-proto@0.41.2(@opentelemetry/api@1.7.0): + /@opentelemetry/exporter-metrics-otlp-proto@0.41.2(@opentelemetry/api@1.6.0): resolution: {integrity: sha512-OLNs6wF84uhxn8TJ8Bv1q2ltdJqjKA9oUEtICcUDDzXIiztPxZ9ur/4xdMk9T3ZJeFMfrhj8eYDkpETBy+fjCg==} engines: {node: '>=14'} peerDependencies: '@opentelemetry/api': ^1.3.0 dependencies: - '@opentelemetry/api': 1.7.0 - '@opentelemetry/core': 1.15.2(@opentelemetry/api@1.7.0) - '@opentelemetry/exporter-metrics-otlp-http': 0.41.2(@opentelemetry/api@1.7.0) - '@opentelemetry/otlp-exporter-base': 0.41.2(@opentelemetry/api@1.7.0) - '@opentelemetry/otlp-proto-exporter-base': 0.41.2(@opentelemetry/api@1.7.0) - '@opentelemetry/otlp-transformer': 0.41.2(@opentelemetry/api@1.7.0) - '@opentelemetry/resources': 1.15.2(@opentelemetry/api@1.7.0) - '@opentelemetry/sdk-metrics': 1.15.2(@opentelemetry/api@1.7.0) + '@opentelemetry/api': 1.6.0 + '@opentelemetry/core': 1.15.2(@opentelemetry/api@1.6.0) + '@opentelemetry/exporter-metrics-otlp-http': 0.41.2(@opentelemetry/api@1.6.0) + '@opentelemetry/otlp-exporter-base': 0.41.2(@opentelemetry/api@1.6.0) + '@opentelemetry/otlp-proto-exporter-base': 0.41.2(@opentelemetry/api@1.6.0) + '@opentelemetry/otlp-transformer': 0.41.2(@opentelemetry/api@1.6.0) + '@opentelemetry/resources': 1.15.2(@opentelemetry/api@1.6.0) + '@opentelemetry/sdk-metrics': 1.15.2(@opentelemetry/api@1.6.0) dev: false - /@opentelemetry/exporter-trace-otlp-grpc@0.43.0(@opentelemetry/api@1.7.0): + /@opentelemetry/exporter-trace-otlp-grpc@0.43.0(@opentelemetry/api@1.6.0): resolution: {integrity: sha512-h/oofzwyONMcAeBXD6+E6+foFQg9CPadBFcKAGoMIyVSK7iZgtK5DLEwAF4jz5MhfxWNmwZjHXFRc0GqCRx/tA==} engines: {node: '>=14'} peerDependencies: '@opentelemetry/api': ^1.0.0 dependencies: '@grpc/grpc-js': 1.10.1 - '@opentelemetry/api': 1.7.0 - '@opentelemetry/core': 1.17.0(@opentelemetry/api@1.7.0) - '@opentelemetry/otlp-grpc-exporter-base': 0.43.0(@opentelemetry/api@1.7.0) - '@opentelemetry/otlp-transformer': 0.43.0(@opentelemetry/api@1.7.0) - '@opentelemetry/resources': 1.17.0(@opentelemetry/api@1.7.0) - '@opentelemetry/sdk-trace-base': 1.17.0(@opentelemetry/api@1.7.0) + '@opentelemetry/api': 1.6.0 + '@opentelemetry/core': 1.17.0(@opentelemetry/api@1.6.0) + '@opentelemetry/otlp-grpc-exporter-base': 0.43.0(@opentelemetry/api@1.6.0) + '@opentelemetry/otlp-transformer': 0.43.0(@opentelemetry/api@1.6.0) + '@opentelemetry/resources': 1.17.0(@opentelemetry/api@1.6.0) + '@opentelemetry/sdk-trace-base': 1.17.0(@opentelemetry/api@1.6.0) dev: false /@opentelemetry/exporter-trace-otlp-grpc@0.48.0(@opentelemetry/api@1.6.0): @@ -3750,18 +3784,18 @@ packages: '@opentelemetry/sdk-trace-base': 1.21.0(@opentelemetry/api@1.6.0) dev: false - /@opentelemetry/exporter-trace-otlp-http@0.41.2(@opentelemetry/api@1.7.0): + /@opentelemetry/exporter-trace-otlp-http@0.41.2(@opentelemetry/api@1.6.0): resolution: {integrity: sha512-Y0fGLipjZXLMelWtlS1/MDtrPxf25oM408KukRdkN31a1MEFo4h/ZkNwS7ZfmqHGUa+4rWRt2bi6JBiqy7Ytgw==} engines: {node: '>=14'} peerDependencies: '@opentelemetry/api': ^1.0.0 dependencies: - '@opentelemetry/api': 1.7.0 - '@opentelemetry/core': 1.15.2(@opentelemetry/api@1.7.0) - '@opentelemetry/otlp-exporter-base': 0.41.2(@opentelemetry/api@1.7.0) - '@opentelemetry/otlp-transformer': 0.41.2(@opentelemetry/api@1.7.0) - '@opentelemetry/resources': 1.15.2(@opentelemetry/api@1.7.0) - '@opentelemetry/sdk-trace-base': 1.15.2(@opentelemetry/api@1.7.0) + '@opentelemetry/api': 1.6.0 + '@opentelemetry/core': 1.15.2(@opentelemetry/api@1.6.0) + '@opentelemetry/otlp-exporter-base': 0.41.2(@opentelemetry/api@1.6.0) + '@opentelemetry/otlp-transformer': 0.41.2(@opentelemetry/api@1.6.0) + '@opentelemetry/resources': 1.15.2(@opentelemetry/api@1.6.0) + '@opentelemetry/sdk-trace-base': 1.15.2(@opentelemetry/api@1.6.0) dev: false /@opentelemetry/exporter-trace-otlp-http@0.48.0(@opentelemetry/api@1.6.0): @@ -3778,19 +3812,19 @@ packages: '@opentelemetry/sdk-trace-base': 1.21.0(@opentelemetry/api@1.6.0) dev: false - /@opentelemetry/exporter-trace-otlp-proto@0.41.2(@opentelemetry/api@1.7.0): + /@opentelemetry/exporter-trace-otlp-proto@0.41.2(@opentelemetry/api@1.6.0): resolution: {integrity: sha512-IGZga9IIckqYE3IpRE9FO9G5umabObIrChlXUHYpMJtDgx797dsb3qXCvLeuAwB+HoB8NsEZstlzmLnoa6/HmA==} engines: {node: '>=14'} peerDependencies: '@opentelemetry/api': ^1.0.0 dependencies: - '@opentelemetry/api': 1.7.0 - '@opentelemetry/core': 1.15.2(@opentelemetry/api@1.7.0) - '@opentelemetry/otlp-exporter-base': 0.41.2(@opentelemetry/api@1.7.0) - '@opentelemetry/otlp-proto-exporter-base': 0.41.2(@opentelemetry/api@1.7.0) - '@opentelemetry/otlp-transformer': 0.41.2(@opentelemetry/api@1.7.0) - '@opentelemetry/resources': 1.15.2(@opentelemetry/api@1.7.0) - '@opentelemetry/sdk-trace-base': 1.15.2(@opentelemetry/api@1.7.0) + '@opentelemetry/api': 1.6.0 + '@opentelemetry/core': 1.15.2(@opentelemetry/api@1.6.0) + '@opentelemetry/otlp-exporter-base': 0.41.2(@opentelemetry/api@1.6.0) + '@opentelemetry/otlp-proto-exporter-base': 0.41.2(@opentelemetry/api@1.6.0) + '@opentelemetry/otlp-transformer': 0.41.2(@opentelemetry/api@1.6.0) + '@opentelemetry/resources': 1.15.2(@opentelemetry/api@1.6.0) + '@opentelemetry/sdk-trace-base': 1.15.2(@opentelemetry/api@1.6.0) dev: false /@opentelemetry/exporter-trace-otlp-proto@0.48.0(@opentelemetry/api@1.6.0): @@ -3821,19 +3855,6 @@ packages: '@opentelemetry/semantic-conventions': 1.21.0 dev: false - /@opentelemetry/exporter-zipkin@1.21.0(@opentelemetry/api@1.7.0): - resolution: {integrity: sha512-J0ejrOx52s1PqvjNalIHvY/4v9ZxR2r7XS7WZbwK3qpVYZlGVq5V1+iCNweqsKnb/miUt/4TFvJBc9f5Q/kGcA==} - engines: {node: '>=14'} - peerDependencies: - '@opentelemetry/api': ^1.0.0 - dependencies: - '@opentelemetry/api': 1.7.0 - '@opentelemetry/core': 1.21.0(@opentelemetry/api@1.7.0) - '@opentelemetry/resources': 1.21.0(@opentelemetry/api@1.7.0) - '@opentelemetry/sdk-trace-base': 1.21.0(@opentelemetry/api@1.7.0) - '@opentelemetry/semantic-conventions': 1.21.0 - dev: false - /@opentelemetry/instrumentation@0.48.0(@opentelemetry/api@1.6.0): resolution: {integrity: sha512-sjtZQB5PStIdCw5ovVTDGwnmQC+GGYArJNgIcydrDSqUTdYBnMrN9P4pwQZgS3vTGIp+TU1L8vMXGe51NVmIKQ==} engines: {node: '>=14'} @@ -3850,24 +3871,24 @@ packages: - supports-color dev: false - /@opentelemetry/otlp-exporter-base@0.41.2(@opentelemetry/api@1.7.0): + /@opentelemetry/otlp-exporter-base@0.41.2(@opentelemetry/api@1.6.0): resolution: {integrity: sha512-pfwa6d+Dax3itZcGWiA0AoXeVaCuZbbqUTsCtOysd2re8C2PWXNxDONUfBWsn+KgxAdi+ljwTjJGiaVLDaIEvQ==} engines: {node: '>=14'} peerDependencies: '@opentelemetry/api': ^1.0.0 dependencies: - '@opentelemetry/api': 1.7.0 - '@opentelemetry/core': 1.15.2(@opentelemetry/api@1.7.0) + '@opentelemetry/api': 1.6.0 + '@opentelemetry/core': 1.15.2(@opentelemetry/api@1.6.0) dev: false - /@opentelemetry/otlp-exporter-base@0.43.0(@opentelemetry/api@1.7.0): + /@opentelemetry/otlp-exporter-base@0.43.0(@opentelemetry/api@1.6.0): resolution: {integrity: sha512-LXNtRFVuPRXB9q0qdvrLikQ3NtT9Jmv255Idryz3RJPhOh/Fa03sBASQoj3D55OH3xazmA90KFHfhJ/d8D8y4A==} engines: {node: '>=14'} peerDependencies: '@opentelemetry/api': ^1.0.0 dependencies: - '@opentelemetry/api': 1.7.0 - '@opentelemetry/core': 1.17.0(@opentelemetry/api@1.7.0) + '@opentelemetry/api': 1.6.0 + '@opentelemetry/core': 1.17.0(@opentelemetry/api@1.6.0) dev: false /@opentelemetry/otlp-exporter-base@0.48.0(@opentelemetry/api@1.6.0): @@ -3880,29 +3901,29 @@ packages: '@opentelemetry/core': 1.21.0(@opentelemetry/api@1.6.0) dev: false - /@opentelemetry/otlp-grpc-exporter-base@0.41.2(@opentelemetry/api@1.7.0): + /@opentelemetry/otlp-grpc-exporter-base@0.41.2(@opentelemetry/api@1.6.0): resolution: {integrity: sha512-OErK8dYjXG01XIMIpmOV2SzL9ctkZ0Nyhf2UumICOAKtgLvR5dG1JMlsNVp8Jn0RzpsKc6Urv7JpP69wzRXN+A==} engines: {node: '>=14'} peerDependencies: '@opentelemetry/api': ^1.0.0 dependencies: '@grpc/grpc-js': 1.10.1 - '@opentelemetry/api': 1.7.0 - '@opentelemetry/core': 1.15.2(@opentelemetry/api@1.7.0) - '@opentelemetry/otlp-exporter-base': 0.41.2(@opentelemetry/api@1.7.0) + '@opentelemetry/api': 1.6.0 + '@opentelemetry/core': 1.15.2(@opentelemetry/api@1.6.0) + '@opentelemetry/otlp-exporter-base': 0.41.2(@opentelemetry/api@1.6.0) protobufjs: 7.2.6 dev: false - /@opentelemetry/otlp-grpc-exporter-base@0.43.0(@opentelemetry/api@1.7.0): + /@opentelemetry/otlp-grpc-exporter-base@0.43.0(@opentelemetry/api@1.6.0): resolution: {integrity: sha512-oOpqtDJo9BBa1+nD6ID1qZ55ZdTwEwSSn2idMobw8jmByJKaanVLdr9SJKsn5T9OBqo/c5QY2brMf0TNZkobJQ==} engines: {node: '>=14'} peerDependencies: '@opentelemetry/api': ^1.0.0 dependencies: '@grpc/grpc-js': 1.10.1 - '@opentelemetry/api': 1.7.0 - '@opentelemetry/core': 1.17.0(@opentelemetry/api@1.7.0) - '@opentelemetry/otlp-exporter-base': 0.43.0(@opentelemetry/api@1.7.0) + '@opentelemetry/api': 1.6.0 + '@opentelemetry/core': 1.17.0(@opentelemetry/api@1.6.0) + '@opentelemetry/otlp-exporter-base': 0.43.0(@opentelemetry/api@1.6.0) protobufjs: 7.2.6 dev: false @@ -3919,15 +3940,15 @@ packages: protobufjs: 7.2.6 dev: false - /@opentelemetry/otlp-proto-exporter-base@0.41.2(@opentelemetry/api@1.7.0): + /@opentelemetry/otlp-proto-exporter-base@0.41.2(@opentelemetry/api@1.6.0): resolution: {integrity: sha512-BxmEMiP6tHiFroe5/dTt9BsxCci7BTLtF7A6d4DKHLiLweWWZxQ9l7hON7qt/IhpKrQcAFD1OzZ1Gq2ZkNzhCw==} engines: {node: '>=14'} peerDependencies: '@opentelemetry/api': ^1.0.0 dependencies: - '@opentelemetry/api': 1.7.0 - '@opentelemetry/core': 1.15.2(@opentelemetry/api@1.7.0) - '@opentelemetry/otlp-exporter-base': 0.41.2(@opentelemetry/api@1.7.0) + '@opentelemetry/api': 1.6.0 + '@opentelemetry/core': 1.15.2(@opentelemetry/api@1.6.0) + '@opentelemetry/otlp-exporter-base': 0.41.2(@opentelemetry/api@1.6.0) protobufjs: 7.2.6 dev: false @@ -3943,34 +3964,34 @@ packages: protobufjs: 7.2.6 dev: false - /@opentelemetry/otlp-transformer@0.41.2(@opentelemetry/api@1.7.0): + /@opentelemetry/otlp-transformer@0.41.2(@opentelemetry/api@1.6.0): resolution: {integrity: sha512-jJbPwB0tNu2v+Xi0c/v/R3YBLJKLonw1p+v3RVjT2VfzeUyzSp/tBeVdY7RZtL6dzZpA9XSmp8UEfWIFQo33yA==} engines: {node: '>=14'} peerDependencies: '@opentelemetry/api': '>=1.3.0 <1.5.0' dependencies: - '@opentelemetry/api': 1.7.0 + '@opentelemetry/api': 1.6.0 '@opentelemetry/api-logs': 0.41.2 - '@opentelemetry/core': 1.15.2(@opentelemetry/api@1.7.0) - '@opentelemetry/resources': 1.15.2(@opentelemetry/api@1.7.0) - '@opentelemetry/sdk-logs': 0.41.2(@opentelemetry/api-logs@0.41.2)(@opentelemetry/api@1.7.0) - '@opentelemetry/sdk-metrics': 1.15.2(@opentelemetry/api@1.7.0) - '@opentelemetry/sdk-trace-base': 1.15.2(@opentelemetry/api@1.7.0) + '@opentelemetry/core': 1.15.2(@opentelemetry/api@1.6.0) + '@opentelemetry/resources': 1.15.2(@opentelemetry/api@1.6.0) + '@opentelemetry/sdk-logs': 0.41.2(@opentelemetry/api-logs@0.41.2)(@opentelemetry/api@1.6.0) + '@opentelemetry/sdk-metrics': 1.15.2(@opentelemetry/api@1.6.0) + '@opentelemetry/sdk-trace-base': 1.15.2(@opentelemetry/api@1.6.0) dev: false - /@opentelemetry/otlp-transformer@0.43.0(@opentelemetry/api@1.7.0): + /@opentelemetry/otlp-transformer@0.43.0(@opentelemetry/api@1.6.0): resolution: {integrity: sha512-KXYmgzWdVBOD5NvPmGW1nEMJjyQ8gK3N8r6pi4HvmEhTp0v4T13qDSax4q0HfsqmbPJR355oqQSJUnu1dHNutw==} engines: {node: '>=14'} peerDependencies: '@opentelemetry/api': '>=1.3.0 <1.7.0' dependencies: - '@opentelemetry/api': 1.7.0 + '@opentelemetry/api': 1.6.0 '@opentelemetry/api-logs': 0.43.0 - '@opentelemetry/core': 1.17.0(@opentelemetry/api@1.7.0) - '@opentelemetry/resources': 1.17.0(@opentelemetry/api@1.7.0) - '@opentelemetry/sdk-logs': 0.43.0(@opentelemetry/api-logs@0.43.0)(@opentelemetry/api@1.7.0) - '@opentelemetry/sdk-metrics': 1.17.0(@opentelemetry/api@1.7.0) - '@opentelemetry/sdk-trace-base': 1.17.0(@opentelemetry/api@1.7.0) + '@opentelemetry/core': 1.17.0(@opentelemetry/api@1.6.0) + '@opentelemetry/resources': 1.17.0(@opentelemetry/api@1.6.0) + '@opentelemetry/sdk-logs': 0.43.0(@opentelemetry/api-logs@0.43.0)(@opentelemetry/api@1.6.0) + '@opentelemetry/sdk-metrics': 1.17.0(@opentelemetry/api@1.6.0) + '@opentelemetry/sdk-trace-base': 1.17.0(@opentelemetry/api@1.6.0) dev: false /@opentelemetry/otlp-transformer@0.48.0(@opentelemetry/api@1.6.0): @@ -4008,25 +4029,25 @@ packages: '@opentelemetry/core': 1.21.0(@opentelemetry/api@1.6.0) dev: false - /@opentelemetry/resources@1.15.2(@opentelemetry/api@1.7.0): + /@opentelemetry/resources@1.15.2(@opentelemetry/api@1.6.0): resolution: {integrity: sha512-xmMRLenT9CXmm5HMbzpZ1hWhaUowQf8UB4jMjFlAxx1QzQcsD3KFNAVX/CAWzFPtllTyTplrA4JrQ7sCH3qmYw==} engines: {node: '>=14'} peerDependencies: '@opentelemetry/api': '>=1.0.0 <1.5.0' dependencies: - '@opentelemetry/api': 1.7.0 - '@opentelemetry/core': 1.15.2(@opentelemetry/api@1.7.0) + '@opentelemetry/api': 1.6.0 + '@opentelemetry/core': 1.15.2(@opentelemetry/api@1.6.0) '@opentelemetry/semantic-conventions': 1.15.2 dev: false - /@opentelemetry/resources@1.17.0(@opentelemetry/api@1.7.0): + /@opentelemetry/resources@1.17.0(@opentelemetry/api@1.6.0): resolution: {integrity: sha512-+u0ciVnj8lhuL/qGRBPeVYvk7fL+H/vOddfvmOeJaA1KC+5/3UED1c9KoZQlRsNT5Kw1FaK8LkY2NVLYfOVZQw==} engines: {node: '>=14'} peerDependencies: '@opentelemetry/api': '>=1.0.0 <1.7.0' dependencies: - '@opentelemetry/api': 1.7.0 - '@opentelemetry/core': 1.17.0(@opentelemetry/api@1.7.0) + '@opentelemetry/api': 1.6.0 + '@opentelemetry/core': 1.17.0(@opentelemetry/api@1.6.0) '@opentelemetry/semantic-conventions': 1.17.0 dev: false @@ -4041,41 +4062,30 @@ packages: '@opentelemetry/semantic-conventions': 1.21.0 dev: false - /@opentelemetry/resources@1.21.0(@opentelemetry/api@1.7.0): - resolution: {integrity: sha512-1Z86FUxPKL6zWVy2LdhueEGl9AHDJcx+bvHStxomruz6Whd02mE3lNUMjVJ+FGRoktx/xYQcxccYb03DiUP6Yw==} - engines: {node: '>=14'} - peerDependencies: - '@opentelemetry/api': '>=1.0.0 <1.8.0' - dependencies: - '@opentelemetry/api': 1.7.0 - '@opentelemetry/core': 1.21.0(@opentelemetry/api@1.7.0) - '@opentelemetry/semantic-conventions': 1.21.0 - dev: false - - /@opentelemetry/sdk-logs@0.41.2(@opentelemetry/api-logs@0.41.2)(@opentelemetry/api@1.7.0): + /@opentelemetry/sdk-logs@0.41.2(@opentelemetry/api-logs@0.41.2)(@opentelemetry/api@1.6.0): resolution: {integrity: sha512-smqKIw0tTW15waj7BAPHFomii5c3aHnSE4LQYTszGoK5P9nZs8tEAIpu15UBxi3aG31ZfsLmm4EUQkjckdlFrw==} engines: {node: '>=14'} peerDependencies: '@opentelemetry/api': '>=1.4.0 <1.5.0' '@opentelemetry/api-logs': '>=0.39.1' dependencies: - '@opentelemetry/api': 1.7.0 + '@opentelemetry/api': 1.6.0 '@opentelemetry/api-logs': 0.41.2 - '@opentelemetry/core': 1.15.2(@opentelemetry/api@1.7.0) - '@opentelemetry/resources': 1.15.2(@opentelemetry/api@1.7.0) + '@opentelemetry/core': 1.15.2(@opentelemetry/api@1.6.0) + '@opentelemetry/resources': 1.15.2(@opentelemetry/api@1.6.0) dev: false - /@opentelemetry/sdk-logs@0.43.0(@opentelemetry/api-logs@0.43.0)(@opentelemetry/api@1.7.0): + /@opentelemetry/sdk-logs@0.43.0(@opentelemetry/api-logs@0.43.0)(@opentelemetry/api@1.6.0): resolution: {integrity: sha512-JyJ2BBRKm37Mc4cSEhFmsMl5ASQn1dkGhEWzAAMSlhPtLRTv5PfvJwhR+Mboaic/eDLAlciwsgijq8IFlf6IgQ==} engines: {node: '>=14'} peerDependencies: '@opentelemetry/api': '>=1.4.0 <1.7.0' '@opentelemetry/api-logs': '>=0.39.1' dependencies: - '@opentelemetry/api': 1.7.0 + '@opentelemetry/api': 1.6.0 '@opentelemetry/api-logs': 0.43.0 - '@opentelemetry/core': 1.17.0(@opentelemetry/api@1.7.0) - '@opentelemetry/resources': 1.17.0(@opentelemetry/api@1.7.0) + '@opentelemetry/core': 1.17.0(@opentelemetry/api@1.6.0) + '@opentelemetry/resources': 1.17.0(@opentelemetry/api@1.6.0) dev: false /@opentelemetry/sdk-logs@0.48.0(@opentelemetry/api-logs@0.48.0)(@opentelemetry/api@1.6.0): @@ -4091,27 +4101,27 @@ packages: '@opentelemetry/resources': 1.21.0(@opentelemetry/api@1.6.0) dev: false - /@opentelemetry/sdk-metrics@1.15.2(@opentelemetry/api@1.7.0): + /@opentelemetry/sdk-metrics@1.15.2(@opentelemetry/api@1.6.0): resolution: {integrity: sha512-9aIlcX8GnhcsAHW/Wl8bzk4ZnWTpNlLtud+fxUfBtFATu6OZ6TrGrF4JkT9EVrnoxwtPIDtjHdEsSjOqisY/iA==} engines: {node: '>=14'} peerDependencies: '@opentelemetry/api': '>=1.3.0 <1.5.0' dependencies: - '@opentelemetry/api': 1.7.0 - '@opentelemetry/core': 1.15.2(@opentelemetry/api@1.7.0) - '@opentelemetry/resources': 1.15.2(@opentelemetry/api@1.7.0) + '@opentelemetry/api': 1.6.0 + '@opentelemetry/core': 1.15.2(@opentelemetry/api@1.6.0) + '@opentelemetry/resources': 1.15.2(@opentelemetry/api@1.6.0) lodash.merge: 4.6.2 dev: false - /@opentelemetry/sdk-metrics@1.17.0(@opentelemetry/api@1.7.0): + /@opentelemetry/sdk-metrics@1.17.0(@opentelemetry/api@1.6.0): resolution: {integrity: sha512-HlWM27yGmYuwCoVRe3yg2PqKnIsq0kEF0HQgvkeDWz2NYkq9fFaSspR6kvjxUTbghAlZrabiqbgyKoYpYaXS3w==} engines: {node: '>=14'} peerDependencies: '@opentelemetry/api': '>=1.3.0 <1.7.0' dependencies: - '@opentelemetry/api': 1.7.0 - '@opentelemetry/core': 1.17.0(@opentelemetry/api@1.7.0) - '@opentelemetry/resources': 1.17.0(@opentelemetry/api@1.7.0) + '@opentelemetry/api': 1.6.0 + '@opentelemetry/core': 1.17.0(@opentelemetry/api@1.6.0) + '@opentelemetry/resources': 1.17.0(@opentelemetry/api@1.6.0) lodash.merge: 4.6.2 dev: false @@ -4127,18 +4137,6 @@ packages: lodash.merge: 4.6.2 dev: false - /@opentelemetry/sdk-metrics@1.21.0(@opentelemetry/api@1.7.0): - resolution: {integrity: sha512-on1jTzIHc5DyWhRP+xpf+zrgrREXcHBH4EDAfaB5mIG7TWpKxNXooQ1JCylaPsswZUv4wGnVTinr4HrBdGARAQ==} - engines: {node: '>=14'} - peerDependencies: - '@opentelemetry/api': '>=1.3.0 <1.8.0' - dependencies: - '@opentelemetry/api': 1.7.0 - '@opentelemetry/core': 1.21.0(@opentelemetry/api@1.7.0) - '@opentelemetry/resources': 1.21.0(@opentelemetry/api@1.7.0) - lodash.merge: 4.6.2 - dev: false - /@opentelemetry/sdk-node@0.48.0(@opentelemetry/api@1.6.0): resolution: {integrity: sha512-3o3GS6t+VLGVFCV5bqfGOcWIgOdkR/UE6Qz7hHksP5PXrVBeYsPqts7cPma5YXweaI3r3h26mydg9PqQIcqksg==} engines: {node: '>=14'} @@ -4163,27 +4161,27 @@ packages: - supports-color dev: false - /@opentelemetry/sdk-trace-base@1.15.2(@opentelemetry/api@1.7.0): + /@opentelemetry/sdk-trace-base@1.15.2(@opentelemetry/api@1.6.0): resolution: {integrity: sha512-BEaxGZbWtvnSPchV98qqqqa96AOcb41pjgvhfzDij10tkBhIu9m0Jd6tZ1tJB5ZHfHbTffqYVYE0AOGobec/EQ==} engines: {node: '>=14'} peerDependencies: '@opentelemetry/api': '>=1.0.0 <1.5.0' dependencies: - '@opentelemetry/api': 1.7.0 - '@opentelemetry/core': 1.15.2(@opentelemetry/api@1.7.0) - '@opentelemetry/resources': 1.15.2(@opentelemetry/api@1.7.0) + '@opentelemetry/api': 1.6.0 + '@opentelemetry/core': 1.15.2(@opentelemetry/api@1.6.0) + '@opentelemetry/resources': 1.15.2(@opentelemetry/api@1.6.0) '@opentelemetry/semantic-conventions': 1.15.2 dev: false - /@opentelemetry/sdk-trace-base@1.17.0(@opentelemetry/api@1.7.0): + /@opentelemetry/sdk-trace-base@1.17.0(@opentelemetry/api@1.6.0): resolution: {integrity: sha512-2T5HA1/1iE36Q9eg6D4zYlC4Y4GcycI1J6NsHPKZY9oWfAxWsoYnRlkPfUqyY5XVtocCo/xHpnJvGNHwzT70oQ==} engines: {node: '>=14'} peerDependencies: '@opentelemetry/api': '>=1.0.0 <1.7.0' dependencies: - '@opentelemetry/api': 1.7.0 - '@opentelemetry/core': 1.17.0(@opentelemetry/api@1.7.0) - '@opentelemetry/resources': 1.17.0(@opentelemetry/api@1.7.0) + '@opentelemetry/api': 1.6.0 + '@opentelemetry/core': 1.17.0(@opentelemetry/api@1.6.0) + '@opentelemetry/resources': 1.17.0(@opentelemetry/api@1.6.0) '@opentelemetry/semantic-conventions': 1.17.0 dev: false @@ -4199,18 +4197,6 @@ packages: '@opentelemetry/semantic-conventions': 1.21.0 dev: false - /@opentelemetry/sdk-trace-base@1.21.0(@opentelemetry/api@1.7.0): - resolution: {integrity: sha512-yrElGX5Fv0umzp8Nxpta/XqU71+jCAyaLk34GmBzNcrW43nqbrqvdPs4gj4MVy/HcTjr6hifCDCYA3rMkajxxA==} - engines: {node: '>=14'} - peerDependencies: - '@opentelemetry/api': '>=1.0.0 <1.8.0' - dependencies: - '@opentelemetry/api': 1.7.0 - '@opentelemetry/core': 1.21.0(@opentelemetry/api@1.7.0) - '@opentelemetry/resources': 1.21.0(@opentelemetry/api@1.7.0) - '@opentelemetry/semantic-conventions': 1.21.0 - dev: false - /@opentelemetry/sdk-trace-node@1.21.0(@opentelemetry/api@1.6.0): resolution: {integrity: sha512-1pdm8jnqs+LuJ0Bvx6sNL28EhC8Rv7NYV8rnoXq3GIQo7uOHBDAFSj7makAfbakrla7ecO1FRfI8emnR4WvhYA==} engines: {node: '>=14'} @@ -4505,83 +4491,83 @@ packages: /@sinonjs/text-encoding@0.7.2: resolution: {integrity: sha512-sXXKG+uL9IrKqViTtao2Ws6dy0znu9sOaP1di/jKGW1M6VssO8vlpXCQcpZ+jisQ1tTFAC5Jo/EOzFbggBagFQ==} - /@smithy/abort-controller@2.1.1: - resolution: {integrity: sha512-1+qdrUqLhaALYL0iOcN43EP6yAXXQ2wWZ6taf4S2pNGowmOc5gx+iMQv+E42JizNJjB0+gEadOXeV1Bf7JWL1Q==} + /@smithy/abort-controller@2.1.3: + resolution: {integrity: sha512-c2aYH2Wu1RVE3rLlVgg2kQOBJGM0WbjReQi5DnPTm2Zb7F0gk7J2aeQeaX2u/lQZoHl6gv8Oac7mt9alU3+f4A==} engines: {node: '>=14.0.0'} dependencies: - '@smithy/types': 2.9.1 + '@smithy/types': 2.10.1 tslib: 2.6.2 dev: false - /@smithy/config-resolver@2.1.1: - resolution: {integrity: sha512-lxfLDpZm+AWAHPFZps5JfDoO9Ux1764fOgvRUBpHIO8HWHcSN1dkgsago1qLRVgm1BZ8RCm8cgv99QvtaOWIhw==} + /@smithy/config-resolver@2.1.4: + resolution: {integrity: sha512-AW2WUZmBAzgO3V3ovKtsUbI3aBNMeQKFDumoqkNxaVDWF/xfnxAWqBKDr/NuG7c06N2Rm4xeZLPiJH/d+na0HA==} engines: {node: '>=14.0.0'} dependencies: - '@smithy/node-config-provider': 2.2.1 - '@smithy/types': 2.9.1 + '@smithy/node-config-provider': 2.2.4 + '@smithy/types': 2.10.1 '@smithy/util-config-provider': 2.2.1 - '@smithy/util-middleware': 2.1.1 + '@smithy/util-middleware': 2.1.3 tslib: 2.6.2 dev: false - /@smithy/core@1.3.2: - resolution: {integrity: sha512-tYDmTp0f2TZVE18jAOH1PnmkngLQ+dOGUlMd1u67s87ieueNeyqhja6z/Z4MxhybEiXKOWFOmGjfTZWFxljwJw==} + /@smithy/core@1.3.5: + resolution: {integrity: sha512-Rrc+e2Jj6Gu7Xbn0jvrzZlSiP2CZocIOfZ9aNUA82+1sa6GBnxqL9+iZ9EKHeD9aqD1nU8EK4+oN2EiFpSv7Yw==} engines: {node: '>=14.0.0'} dependencies: - '@smithy/middleware-endpoint': 2.4.1 - '@smithy/middleware-retry': 2.1.1 - '@smithy/middleware-serde': 2.1.1 - '@smithy/protocol-http': 3.1.1 - '@smithy/smithy-client': 2.3.1 - '@smithy/types': 2.9.1 - '@smithy/util-middleware': 2.1.1 + '@smithy/middleware-endpoint': 2.4.4 + '@smithy/middleware-retry': 2.1.4 + '@smithy/middleware-serde': 2.1.3 + '@smithy/protocol-http': 3.2.1 + '@smithy/smithy-client': 2.4.2 + '@smithy/types': 2.10.1 + '@smithy/util-middleware': 2.1.3 tslib: 2.6.2 dev: false - /@smithy/credential-provider-imds@2.2.1: - resolution: {integrity: sha512-7XHjZUxmZYnONheVQL7j5zvZXga+EWNgwEAP6OPZTi7l8J4JTeNh9aIOfE5fKHZ/ee2IeNOh54ZrSna+Vc6TFA==} + /@smithy/credential-provider-imds@2.2.4: + resolution: {integrity: sha512-DdatjmBZQnhGe1FhI8gO98f7NmvQFSDiZTwC3WMvLTCKQUY+Y1SVkhJqIuLu50Eb7pTheoXQmK+hKYUgpUWsNA==} engines: {node: '>=14.0.0'} dependencies: - '@smithy/node-config-provider': 2.2.1 - '@smithy/property-provider': 2.1.1 - '@smithy/types': 2.9.1 - '@smithy/url-parser': 2.1.1 + '@smithy/node-config-provider': 2.2.4 + '@smithy/property-provider': 2.1.3 + '@smithy/types': 2.10.1 + '@smithy/url-parser': 2.1.3 tslib: 2.6.2 dev: false - /@smithy/eventstream-codec@2.1.1: - resolution: {integrity: sha512-E8KYBxBIuU4c+zrpR22VsVrOPoEDzk35bQR3E+xm4k6Pa6JqzkDOdMyf9Atac5GPNKHJBdVaQ4JtjdWX2rl/nw==} + /@smithy/eventstream-codec@2.1.3: + resolution: {integrity: sha512-rGlCVuwSDv6qfKH4/lRxFjcZQnIE0LZ3D4lkMHg7ZSltK9rA74r0VuGSvWVQ4N/d70VZPaniFhp4Z14QYZsa+A==} dependencies: '@aws-crypto/crc32': 3.0.0 - '@smithy/types': 2.9.1 + '@smithy/types': 2.10.1 '@smithy/util-hex-encoding': 2.1.1 tslib: 2.6.2 dev: false - /@smithy/fetch-http-handler@2.4.1: - resolution: {integrity: sha512-VYGLinPsFqH68lxfRhjQaSkjXM7JysUOJDTNjHBuN/ykyRb2f1gyavN9+VhhPTWCy32L4yZ2fdhpCs/nStEicg==} + /@smithy/fetch-http-handler@2.4.3: + resolution: {integrity: sha512-Fn/KYJFo6L5I4YPG8WQb2hOmExgRmNpVH5IK2zU3JKrY5FKW7y9ar5e0BexiIC9DhSKqKX+HeWq/Y18fq7Dkpw==} dependencies: - '@smithy/protocol-http': 3.1.1 - '@smithy/querystring-builder': 2.1.1 - '@smithy/types': 2.9.1 + '@smithy/protocol-http': 3.2.1 + '@smithy/querystring-builder': 2.1.3 + '@smithy/types': 2.10.1 '@smithy/util-base64': 2.1.1 tslib: 2.6.2 dev: false - /@smithy/hash-node@2.1.1: - resolution: {integrity: sha512-Qhoq0N8f2OtCnvUpCf+g1vSyhYQrZjhSwvJ9qvR8BUGOtTXiyv2x1OD2e6jVGmlpC4E4ax1USHoyGfV9JFsACg==} + /@smithy/hash-node@2.1.3: + resolution: {integrity: sha512-FsAPCUj7VNJIdHbSxMd5uiZiF20G2zdSDgrgrDrHqIs/VMxK85Vqk5kMVNNDMCZmMezp6UKnac0B4nAyx7HJ9g==} engines: {node: '>=14.0.0'} dependencies: - '@smithy/types': 2.9.1 + '@smithy/types': 2.10.1 '@smithy/util-buffer-from': 2.1.1 '@smithy/util-utf8': 2.1.1 tslib: 2.6.2 dev: false - /@smithy/invalid-dependency@2.1.1: - resolution: {integrity: sha512-7WTgnKw+VPg8fxu2v9AlNOQ5yaz6RA54zOVB4f6vQuR0xFKd+RzlCpt0WidYTsye7F+FYDIaS/RnJW4pxjNInw==} + /@smithy/invalid-dependency@2.1.3: + resolution: {integrity: sha512-wkra7d/G4CbngV4xsjYyAYOvdAhahQje/WymuQdVEnXFExJopEu7fbL5AEAlBPgWHXwu94VnCSG00gVzRfExyg==} dependencies: - '@smithy/types': 2.9.1 + '@smithy/types': 2.10.1 tslib: 2.6.2 dev: false @@ -4592,181 +4578,181 @@ packages: tslib: 2.6.2 dev: false - /@smithy/middleware-compression@2.1.1: - resolution: {integrity: sha512-eLgIs2Y3YBk/xQPTyzTazhyXdnDlI0+xCBcSHbUNfpE/S0Ofd8pv/952szlJpc5soOvY00+sY3y3ROinLrhpkw==} + /@smithy/middleware-compression@2.1.4: + resolution: {integrity: sha512-euMHyTkvKbndhLvoMKwDDZAcQPhVHv4prkEru2xkbH85ShC8SMLGjuTvQ6UcmOQCzuDZaMCBLhisKxbfn4GWWg==} engines: {node: '>=14.0.0'} dependencies: '@smithy/is-array-buffer': 2.1.1 - '@smithy/node-config-provider': 2.2.1 - '@smithy/protocol-http': 3.1.1 - '@smithy/types': 2.9.1 + '@smithy/node-config-provider': 2.2.4 + '@smithy/protocol-http': 3.2.1 + '@smithy/types': 2.10.1 '@smithy/util-config-provider': 2.2.1 - '@smithy/util-middleware': 2.1.1 + '@smithy/util-middleware': 2.1.3 '@smithy/util-utf8': 2.1.1 fflate: 0.8.1 tslib: 2.6.2 dev: false - /@smithy/middleware-content-length@2.1.1: - resolution: {integrity: sha512-rSr9ezUl9qMgiJR0UVtVOGEZElMdGFyl8FzWEF5iEKTlcWxGr2wTqGfDwtH3LAB7h+FPkxqv4ZU4cpuCN9Kf/g==} + /@smithy/middleware-content-length@2.1.3: + resolution: {integrity: sha512-aJduhkC+dcXxdnv5ZpM3uMmtGmVFKx412R1gbeykS5HXDmRU6oSsyy2SoHENCkfOGKAQOjVE2WVqDJibC0d21g==} engines: {node: '>=14.0.0'} dependencies: - '@smithy/protocol-http': 3.1.1 - '@smithy/types': 2.9.1 + '@smithy/protocol-http': 3.2.1 + '@smithy/types': 2.10.1 tslib: 2.6.2 dev: false - /@smithy/middleware-endpoint@2.4.1: - resolution: {integrity: sha512-XPZTb1E2Oav60Ven3n2PFx+rX9EDsU/jSTA8VDamt7FXks67ekjPY/XrmmPDQaFJOTUHJNKjd8+kZxVO5Ael4Q==} + /@smithy/middleware-endpoint@2.4.4: + resolution: {integrity: sha512-4yjHyHK2Jul4JUDBo2sTsWY9UshYUnXeb/TAK/MTaPEb8XQvDmpwSFnfIRDU45RY1a6iC9LCnmJNg/yHyfxqkw==} engines: {node: '>=14.0.0'} dependencies: - '@smithy/middleware-serde': 2.1.1 - '@smithy/node-config-provider': 2.2.1 - '@smithy/shared-ini-file-loader': 2.3.1 - '@smithy/types': 2.9.1 - '@smithy/url-parser': 2.1.1 - '@smithy/util-middleware': 2.1.1 + '@smithy/middleware-serde': 2.1.3 + '@smithy/node-config-provider': 2.2.4 + '@smithy/shared-ini-file-loader': 2.3.4 + '@smithy/types': 2.10.1 + '@smithy/url-parser': 2.1.3 + '@smithy/util-middleware': 2.1.3 tslib: 2.6.2 dev: false - /@smithy/middleware-retry@2.1.1: - resolution: {integrity: sha512-eMIHOBTXro6JZ+WWzZWd/8fS8ht5nS5KDQjzhNMHNRcG5FkNTqcKpYhw7TETMYzbLfhO5FYghHy1vqDWM4FLDA==} + /@smithy/middleware-retry@2.1.4: + resolution: {integrity: sha512-Cyolv9YckZTPli1EkkaS39UklonxMd08VskiuMhURDjC0HHa/AD6aK/YoD21CHv9s0QLg0WMLvk9YeLTKkXaFQ==} engines: {node: '>=14.0.0'} dependencies: - '@smithy/node-config-provider': 2.2.1 - '@smithy/protocol-http': 3.1.1 - '@smithy/service-error-classification': 2.1.1 - '@smithy/smithy-client': 2.3.1 - '@smithy/types': 2.9.1 - '@smithy/util-middleware': 2.1.1 - '@smithy/util-retry': 2.1.1 + '@smithy/node-config-provider': 2.2.4 + '@smithy/protocol-http': 3.2.1 + '@smithy/service-error-classification': 2.1.3 + '@smithy/smithy-client': 2.4.2 + '@smithy/types': 2.10.1 + '@smithy/util-middleware': 2.1.3 + '@smithy/util-retry': 2.1.3 tslib: 2.6.2 uuid: 8.3.2 dev: false - /@smithy/middleware-serde@2.1.1: - resolution: {integrity: sha512-D8Gq0aQBeE1pxf3cjWVkRr2W54t+cdM2zx78tNrVhqrDykRA7asq8yVJij1u5NDtKzKqzBSPYh7iW0svUKg76g==} + /@smithy/middleware-serde@2.1.3: + resolution: {integrity: sha512-s76LId+TwASrHhUa9QS4k/zeXDUAuNuddKklQzRgumbzge5BftVXHXIqL4wQxKGLocPwfgAOXWx+HdWhQk9hTg==} engines: {node: '>=14.0.0'} dependencies: - '@smithy/types': 2.9.1 + '@smithy/types': 2.10.1 tslib: 2.6.2 dev: false - /@smithy/middleware-stack@2.1.1: - resolution: {integrity: sha512-KPJhRlhsl8CjgGXK/DoDcrFGfAqoqvuwlbxy+uOO4g2Azn1dhH+GVfC3RAp+6PoL5PWPb+vt6Z23FP+Mr6qeCw==} + /@smithy/middleware-stack@2.1.3: + resolution: {integrity: sha512-opMFufVQgvBSld/b7mD7OOEBxF6STyraVr1xel1j0abVILM8ALJvRoFbqSWHGmaDlRGIiV9Q5cGbWi0sdiEaLQ==} engines: {node: '>=14.0.0'} dependencies: - '@smithy/types': 2.9.1 + '@smithy/types': 2.10.1 tslib: 2.6.2 dev: false - /@smithy/node-config-provider@2.2.1: - resolution: {integrity: sha512-epzK3x1xNxA9oJgHQ5nz+2j6DsJKdHfieb+YgJ7ATWxzNcB7Hc+Uya2TUck5MicOPhDV8HZImND7ZOecVr+OWg==} + /@smithy/node-config-provider@2.2.4: + resolution: {integrity: sha512-nqazHCp8r4KHSFhRQ+T0VEkeqvA0U+RhehBSr1gunUuNW3X7j0uDrWBxB2gE9eutzy6kE3Y7L+Dov/UXT871vg==} engines: {node: '>=14.0.0'} dependencies: - '@smithy/property-provider': 2.1.1 - '@smithy/shared-ini-file-loader': 2.3.1 - '@smithy/types': 2.9.1 + '@smithy/property-provider': 2.1.3 + '@smithy/shared-ini-file-loader': 2.3.4 + '@smithy/types': 2.10.1 tslib: 2.6.2 dev: false - /@smithy/node-http-handler@2.3.1: - resolution: {integrity: sha512-gLA8qK2nL9J0Rk/WEZSvgin4AppvuCYRYg61dcUo/uKxvMZsMInL5I5ZdJTogOvdfVug3N2dgI5ffcUfS4S9PA==} + /@smithy/node-http-handler@2.4.1: + resolution: {integrity: sha512-HCkb94soYhJMxPCa61wGKgmeKpJ3Gftx1XD6bcWEB2wMV1L9/SkQu/6/ysKBnbOzWRE01FGzwrTxucHypZ8rdg==} engines: {node: '>=14.0.0'} dependencies: - '@smithy/abort-controller': 2.1.1 - '@smithy/protocol-http': 3.1.1 - '@smithy/querystring-builder': 2.1.1 - '@smithy/types': 2.9.1 + '@smithy/abort-controller': 2.1.3 + '@smithy/protocol-http': 3.2.1 + '@smithy/querystring-builder': 2.1.3 + '@smithy/types': 2.10.1 tslib: 2.6.2 dev: false - /@smithy/property-provider@2.1.1: - resolution: {integrity: sha512-FX7JhhD/o5HwSwg6GLK9zxrMUrGnb3PzNBrcthqHKBc3dH0UfgEAU24xnJ8F0uow5mj17UeBEOI6o3CF2k7Mhw==} + /@smithy/property-provider@2.1.3: + resolution: {integrity: sha512-bMz3se+ySKWNrgm7eIiQMa2HO/0fl2D0HvLAdg9pTMcpgp4SqOAh6bz7Ik6y7uQqSrk4rLjIKgbQ6yzYgGehCQ==} engines: {node: '>=14.0.0'} dependencies: - '@smithy/types': 2.9.1 + '@smithy/types': 2.10.1 tslib: 2.6.2 dev: false - /@smithy/protocol-http@3.1.1: - resolution: {integrity: sha512-6ZRTSsaXuSL9++qEwH851hJjUA0OgXdQFCs+VDw4tGH256jQ3TjYY/i34N4vd24RV3nrjNsgd1yhb57uMoKbzQ==} + /@smithy/protocol-http@3.2.1: + resolution: {integrity: sha512-KLrQkEw4yJCeAmAH7hctE8g9KwA7+H2nSJwxgwIxchbp/L0B5exTdOQi9D5HinPLlothoervGmhpYKelZ6AxIA==} engines: {node: '>=14.0.0'} dependencies: - '@smithy/types': 2.9.1 + '@smithy/types': 2.10.1 tslib: 2.6.2 dev: false - /@smithy/querystring-builder@2.1.1: - resolution: {integrity: sha512-C/ko/CeEa8jdYE4gt6nHO5XDrlSJ3vdCG0ZAc6nD5ZIE7LBp0jCx4qoqp7eoutBu7VrGMXERSRoPqwi1WjCPbg==} + /@smithy/querystring-builder@2.1.3: + resolution: {integrity: sha512-kFD3PnNqKELe6m9GRHQw/ftFFSZpnSeQD4qvgDB6BQN6hREHELSosVFUMPN4M3MDKN2jAwk35vXHLoDrNfKu0A==} engines: {node: '>=14.0.0'} dependencies: - '@smithy/types': 2.9.1 + '@smithy/types': 2.10.1 '@smithy/util-uri-escape': 2.1.1 tslib: 2.6.2 dev: false - /@smithy/querystring-parser@2.1.1: - resolution: {integrity: sha512-H4+6jKGVhG1W4CIxfBaSsbm98lOO88tpDWmZLgkJpt8Zkk/+uG0FmmqMuCAc3HNM2ZDV+JbErxr0l5BcuIf/XQ==} + /@smithy/querystring-parser@2.1.3: + resolution: {integrity: sha512-3+CWJoAqcBMR+yvz6D+Fc5VdoGFtfenW6wqSWATWajrRMGVwJGPT3Vy2eb2bnMktJc4HU4bpjeovFa566P3knQ==} engines: {node: '>=14.0.0'} dependencies: - '@smithy/types': 2.9.1 + '@smithy/types': 2.10.1 tslib: 2.6.2 dev: false - /@smithy/service-error-classification@2.1.1: - resolution: {integrity: sha512-txEdZxPUgM1PwGvDvHzqhXisrc5LlRWYCf2yyHfvITWioAKat7srQvpjMAvgzf0t6t7j8yHrryXU9xt7RZqFpw==} + /@smithy/service-error-classification@2.1.3: + resolution: {integrity: sha512-iUrpSsem97bbXHHT/v3s7vaq8IIeMo6P6cXdeYHrx0wOJpMeBGQF7CB0mbJSiTm3//iq3L55JiEm8rA7CTVI8A==} engines: {node: '>=14.0.0'} dependencies: - '@smithy/types': 2.9.1 + '@smithy/types': 2.10.1 dev: false - /@smithy/shared-ini-file-loader@2.3.1: - resolution: {integrity: sha512-2E2kh24igmIznHLB6H05Na4OgIEilRu0oQpYXo3LCNRrawHAcfDKq9004zJs+sAMt2X5AbY87CUCJ7IpqpSgdw==} + /@smithy/shared-ini-file-loader@2.3.4: + resolution: {integrity: sha512-CiZmPg9GeDKbKmJGEFvJBsJcFnh0AQRzOtQAzj1XEa8N/0/uSN/v1LYzgO7ry8hhO8+9KB7+DhSW0weqBra4Aw==} engines: {node: '>=14.0.0'} dependencies: - '@smithy/types': 2.9.1 + '@smithy/types': 2.10.1 tslib: 2.6.2 dev: false - /@smithy/signature-v4@2.1.1: - resolution: {integrity: sha512-Hb7xub0NHuvvQD3YwDSdanBmYukoEkhqBjqoxo+bSdC0ryV9cTfgmNjuAQhTPYB6yeU7hTR+sPRiFMlxqv6kmg==} + /@smithy/signature-v4@2.1.3: + resolution: {integrity: sha512-Jq4iPPdCmJojZTsPePn4r1ULShh6ONkokLuxp1Lnk4Sq7r7rJp4HlA1LbPBq4bD64TIzQezIpr1X+eh5NYkNxw==} engines: {node: '>=14.0.0'} dependencies: - '@smithy/eventstream-codec': 2.1.1 + '@smithy/eventstream-codec': 2.1.3 '@smithy/is-array-buffer': 2.1.1 - '@smithy/types': 2.9.1 + '@smithy/types': 2.10.1 '@smithy/util-hex-encoding': 2.1.1 - '@smithy/util-middleware': 2.1.1 + '@smithy/util-middleware': 2.1.3 '@smithy/util-uri-escape': 2.1.1 '@smithy/util-utf8': 2.1.1 tslib: 2.6.2 dev: false - /@smithy/smithy-client@2.3.1: - resolution: {integrity: sha512-YsTdU8xVD64r2pLEwmltrNvZV6XIAC50LN6ivDopdt+YiF/jGH6PY9zUOu0CXD/d8GMB8gbhnpPsdrjAXHS9QA==} + /@smithy/smithy-client@2.4.2: + resolution: {integrity: sha512-ntAFYN51zu3N3mCd95YFcFi/8rmvm//uX+HnK24CRbI6k5Rjackn0JhgKz5zOx/tbNvOpgQIwhSX+1EvEsBLbA==} engines: {node: '>=14.0.0'} dependencies: - '@smithy/middleware-endpoint': 2.4.1 - '@smithy/middleware-stack': 2.1.1 - '@smithy/protocol-http': 3.1.1 - '@smithy/types': 2.9.1 - '@smithy/util-stream': 2.1.1 + '@smithy/middleware-endpoint': 2.4.4 + '@smithy/middleware-stack': 2.1.3 + '@smithy/protocol-http': 3.2.1 + '@smithy/types': 2.10.1 + '@smithy/util-stream': 2.1.3 tslib: 2.6.2 dev: false - /@smithy/types@2.9.1: - resolution: {integrity: sha512-vjXlKNXyprDYDuJ7UW5iobdmyDm6g8dDG+BFUncAg/3XJaN45Gy5RWWWUVgrzIK7S4R1KWgIX5LeJcfvSI24bw==} + /@smithy/types@2.10.1: + resolution: {integrity: sha512-hjQO+4ru4cQ58FluQvKKiyMsFg0A6iRpGm2kqdH8fniyNd2WyanoOsYJfMX/IFLuLxEoW6gnRkNZy1y6fUUhtA==} engines: {node: '>=14.0.0'} dependencies: tslib: 2.6.2 dev: false - /@smithy/url-parser@2.1.1: - resolution: {integrity: sha512-qC9Bv8f/vvFIEkHsiNrUKYNl8uKQnn4BdhXl7VzQRP774AwIjiSMMwkbT+L7Fk8W8rzYVifzJNYxv1HwvfBo3Q==} + /@smithy/url-parser@2.1.3: + resolution: {integrity: sha512-X1NRA4WzK/ihgyzTpeGvI9Wn45y8HmqF4AZ/FazwAv8V203Ex+4lXqcYI70naX9ETqbqKVzFk88W6WJJzCggTQ==} dependencies: - '@smithy/querystring-parser': 2.1.1 - '@smithy/types': 2.9.1 + '@smithy/querystring-parser': 2.1.3 + '@smithy/types': 2.10.1 tslib: 2.6.2 dev: false @@ -4806,36 +4792,36 @@ packages: tslib: 2.6.2 dev: false - /@smithy/util-defaults-mode-browser@2.1.1: - resolution: {integrity: sha512-lqLz/9aWRO6mosnXkArtRuQqqZBhNpgI65YDpww4rVQBuUT7qzKbDLG5AmnQTCiU4rOquaZO/Kt0J7q9Uic7MA==} + /@smithy/util-defaults-mode-browser@2.1.4: + resolution: {integrity: sha512-J6XAVY+/g7jf03QMnvqPyU+8jqGrrtXoKWFVOS+n1sz0Lg8HjHJ1ANqaDN+KTTKZRZlvG8nU5ZrJOUL6VdwgcQ==} engines: {node: '>= 10.0.0'} dependencies: - '@smithy/property-provider': 2.1.1 - '@smithy/smithy-client': 2.3.1 - '@smithy/types': 2.9.1 + '@smithy/property-provider': 2.1.3 + '@smithy/smithy-client': 2.4.2 + '@smithy/types': 2.10.1 bowser: 2.11.0 tslib: 2.6.2 dev: false - /@smithy/util-defaults-mode-node@2.2.0: - resolution: {integrity: sha512-iFJp/N4EtkanFpBUtSrrIbtOIBf69KNuve03ic1afhJ9/korDxdM0c6cCH4Ehj/smI9pDCfVv+bqT3xZjF2WaA==} + /@smithy/util-defaults-mode-node@2.2.3: + resolution: {integrity: sha512-ttUISrv1uVOjTlDa3nznX33f0pthoUlP+4grhTvOzcLhzArx8qHB94/untGACOG3nlf8vU20nI2iWImfzoLkYA==} engines: {node: '>= 10.0.0'} dependencies: - '@smithy/config-resolver': 2.1.1 - '@smithy/credential-provider-imds': 2.2.1 - '@smithy/node-config-provider': 2.2.1 - '@smithy/property-provider': 2.1.1 - '@smithy/smithy-client': 2.3.1 - '@smithy/types': 2.9.1 + '@smithy/config-resolver': 2.1.4 + '@smithy/credential-provider-imds': 2.2.4 + '@smithy/node-config-provider': 2.2.4 + '@smithy/property-provider': 2.1.3 + '@smithy/smithy-client': 2.4.2 + '@smithy/types': 2.10.1 tslib: 2.6.2 dev: false - /@smithy/util-endpoints@1.1.1: - resolution: {integrity: sha512-sI4d9rjoaekSGEtq3xSb2nMjHMx8QXcz2cexnVyRWsy4yQ9z3kbDpX+7fN0jnbdOp0b3KSTZJZ2Yb92JWSanLw==} + /@smithy/util-endpoints@1.1.4: + resolution: {integrity: sha512-/qAeHmK5l4yQ4/bCIJ9p49wDe9rwWtOzhPHblu386fwPNT3pxmodgcs9jDCV52yK9b4rB8o9Sj31P/7Vzka1cg==} engines: {node: '>= 14.0.0'} dependencies: - '@smithy/node-config-provider': 2.2.1 - '@smithy/types': 2.9.1 + '@smithy/node-config-provider': 2.2.4 + '@smithy/types': 2.10.1 tslib: 2.6.2 dev: false @@ -4846,30 +4832,30 @@ packages: tslib: 2.6.2 dev: false - /@smithy/util-middleware@2.1.1: - resolution: {integrity: sha512-mKNrk8oz5zqkNcbcgAAepeJbmfUW6ogrT2Z2gDbIUzVzNAHKJQTYmH9jcy0jbWb+m7ubrvXKb6uMjkSgAqqsFA==} + /@smithy/util-middleware@2.1.3: + resolution: {integrity: sha512-/+2fm7AZ2ozl5h8wM++ZP0ovE9/tiUUAHIbCfGfb3Zd3+Dyk17WODPKXBeJ/TnK5U+x743QmA0xHzlSm8I/qhw==} engines: {node: '>=14.0.0'} dependencies: - '@smithy/types': 2.9.1 + '@smithy/types': 2.10.1 tslib: 2.6.2 dev: false - /@smithy/util-retry@2.1.1: - resolution: {integrity: sha512-Mg+xxWPTeSPrthpC5WAamJ6PW4Kbo01Fm7lWM1jmGRvmrRdsd3192Gz2fBXAMURyXpaNxyZf6Hr/nQ4q70oVEA==} + /@smithy/util-retry@2.1.3: + resolution: {integrity: sha512-Kbvd+GEMuozbNUU3B89mb99tbufwREcyx2BOX0X2+qHjq6Gvsah8xSDDgxISDwcOHoDqUWO425F0Uc/QIRhYkg==} engines: {node: '>= 14.0.0'} dependencies: - '@smithy/service-error-classification': 2.1.1 - '@smithy/types': 2.9.1 + '@smithy/service-error-classification': 2.1.3 + '@smithy/types': 2.10.1 tslib: 2.6.2 dev: false - /@smithy/util-stream@2.1.1: - resolution: {integrity: sha512-J7SMIpUYvU4DQN55KmBtvaMc7NM3CZ2iWICdcgaovtLzseVhAqFRYqloT3mh0esrFw+3VEK6nQFteFsTqZSECQ==} + /@smithy/util-stream@2.1.3: + resolution: {integrity: sha512-HvpEQbP8raTy9n86ZfXiAkf3ezp1c3qeeO//zGqwZdrfaoOpGKQgF2Sv1IqZp7wjhna7pvczWaGUHjcOPuQwKw==} engines: {node: '>=14.0.0'} dependencies: - '@smithy/fetch-http-handler': 2.4.1 - '@smithy/node-http-handler': 2.3.1 - '@smithy/types': 2.9.1 + '@smithy/fetch-http-handler': 2.4.3 + '@smithy/node-http-handler': 2.4.1 + '@smithy/types': 2.10.1 '@smithy/util-base64': 2.1.1 '@smithy/util-buffer-from': 2.1.1 '@smithy/util-hex-encoding': 2.1.1 @@ -4892,12 +4878,12 @@ packages: tslib: 2.6.2 dev: false - /@smithy/util-waiter@2.1.1: - resolution: {integrity: sha512-kYy6BLJJNif+uqNENtJqWdXcpqo1LS+nj1AfXcDhOpqpSHJSAkVySLyZV9fkmuVO21lzGoxjvd1imGGJHph/IA==} + /@smithy/util-waiter@2.1.3: + resolution: {integrity: sha512-3R0wNFAQQoH9e4m+bVLDYNOst2qNxtxFgq03WoNHWTBOqQT3jFnOBRj1W51Rf563xDA5kwqjziksxn6RKkHB+Q==} engines: {node: '>=14.0.0'} dependencies: - '@smithy/abort-controller': 2.1.1 - '@smithy/types': 2.9.1 + '@smithy/abort-controller': 2.1.3 + '@smithy/types': 2.10.1 tslib: 2.6.2 dev: false @@ -4988,7 +4974,7 @@ packages: /@types/artillery@1.7.4: resolution: {integrity: sha512-nqT0ixMaWyy8eVyvVLfbea/8q9TRnzO6UlpEVejTTy49YKUaax3KL/Pp/36BFkGL9c0WYc8Ea9Yhy7CahNnQBA==} dependencies: - '@types/node': 18.17.7 + '@types/node': 18.19.17 '@types/tough-cookie': 4.0.5 got: 11.8.6 dev: false @@ -5026,6 +5012,12 @@ packages: resolution: {integrity: sha512-Q2Xn2/vQHRGLRXhQ5+BSLwhHkR3JVflxVKywH0Q6fVoAiUE8fFYL2pE5/l2ZiOiBDfA8qUqRnSxln4G/NFz1Sg==} dev: false + /@types/blocked@1.3.4: + resolution: {integrity: sha512-Jwn+iPAM0k8BsS9FgZUXmroYci+fT0nCySh8ReAxV3Khh1CEUh7jFXZhx5X509XGbbhfEj+8LoKZoPZiZw52uA==} + dependencies: + '@types/node': 18.19.17 + dev: true + /@types/cacheable-request@6.0.3: resolution: {integrity: sha512-IQ3EbTzGxIigb1I3qPZc1rWJnH0BmSKv5QYTalEwweFvyBDLSAe24zP0le/hyi7ecGfZVlIVAg4BZqb8WBwKqw==} dependencies: @@ -5064,7 +5056,7 @@ packages: /@types/cpx@1.5.5: resolution: {integrity: sha512-PwM+cN40GZcjG9YgGFp/rQGKOpTqr6scUl1Q85NHL5jieh9I203kKiArjJcExwxy4+vTABmVUNRkNvGbPnRQZg==} dependencies: - '@types/node': 18.17.7 + '@types/node': 18.19.17 dev: false /@types/estree@1.0.5: @@ -5844,19 +5836,19 @@ packages: /artillery-plugin-publish-metrics@2.12.0: resolution: {integrity: sha512-HKP3fiBsYH5GTb8iD/oIdt0vHmdS65vVYBrPze2Q5OcUXqFZ2mTlScJjvE+QI2VVTrvfBHrL5GjW/TuVoe+Qvw==} dependencies: - '@aws-sdk/client-cloudwatch': 3.515.0 - '@opentelemetry/api': 1.7.0 - '@opentelemetry/context-async-hooks': 1.21.0(@opentelemetry/api@1.7.0) - '@opentelemetry/exporter-metrics-otlp-grpc': 0.41.2(@opentelemetry/api@1.7.0) - '@opentelemetry/exporter-metrics-otlp-http': 0.41.2(@opentelemetry/api@1.7.0) - '@opentelemetry/exporter-metrics-otlp-proto': 0.41.2(@opentelemetry/api@1.7.0) - '@opentelemetry/exporter-trace-otlp-grpc': 0.43.0(@opentelemetry/api@1.7.0) - '@opentelemetry/exporter-trace-otlp-http': 0.41.2(@opentelemetry/api@1.7.0) - '@opentelemetry/exporter-trace-otlp-proto': 0.41.2(@opentelemetry/api@1.7.0) - '@opentelemetry/exporter-zipkin': 1.21.0(@opentelemetry/api@1.7.0) - '@opentelemetry/resources': 1.21.0(@opentelemetry/api@1.7.0) - '@opentelemetry/sdk-metrics': 1.21.0(@opentelemetry/api@1.7.0) - '@opentelemetry/sdk-trace-base': 1.21.0(@opentelemetry/api@1.7.0) + '@aws-sdk/client-cloudwatch': 3.525.0 + '@opentelemetry/api': 1.6.0 + '@opentelemetry/context-async-hooks': 1.21.0(@opentelemetry/api@1.6.0) + '@opentelemetry/exporter-metrics-otlp-grpc': 0.41.2(@opentelemetry/api@1.6.0) + '@opentelemetry/exporter-metrics-otlp-http': 0.41.2(@opentelemetry/api@1.6.0) + '@opentelemetry/exporter-metrics-otlp-proto': 0.41.2(@opentelemetry/api@1.6.0) + '@opentelemetry/exporter-trace-otlp-grpc': 0.43.0(@opentelemetry/api@1.6.0) + '@opentelemetry/exporter-trace-otlp-http': 0.41.2(@opentelemetry/api@1.6.0) + '@opentelemetry/exporter-trace-otlp-proto': 0.41.2(@opentelemetry/api@1.6.0) + '@opentelemetry/exporter-zipkin': 1.21.0(@opentelemetry/api@1.6.0) + '@opentelemetry/resources': 1.21.0(@opentelemetry/api@1.6.0) + '@opentelemetry/sdk-metrics': 1.21.0(@opentelemetry/api@1.6.0) + '@opentelemetry/sdk-trace-base': 1.21.0(@opentelemetry/api@1.6.0) '@opentelemetry/semantic-conventions': 1.21.0 async: 2.6.4 datadog-metrics: 0.9.3 @@ -5883,7 +5875,7 @@ packages: dependencies: '@artilleryio/int-commons': 2.0.4 '@artilleryio/int-core': 2.3.1 - '@aws-sdk/credential-providers': 3.515.0 + '@aws-sdk/credential-providers': 3.525.0 '@oclif/core': 2.15.0(@types/node@18.17.7)(typescript@5.0.4) '@oclif/plugin-help': 5.2.20(@types/node@18.17.7)(typescript@5.0.4) '@oclif/plugin-not-found': 2.4.3(@types/node@18.17.7)(typescript@5.0.4) @@ -5896,7 +5888,7 @@ packages: artillery-plugin-metrics-by-endpoint: 1.2.0 artillery-plugin-publish-metrics: 2.12.0 async: 2.6.4 - aws-sdk: 2.1562.0 + aws-sdk: 2.1571.0 chalk: 2.4.2 ci-info: 3.9.0 cli-table3: 0.6.3 @@ -5910,7 +5902,7 @@ packages: eventemitter3: 4.0.7 fs-extra: 10.1.0 is-builtin-module: 2.0.0 - joi: 17.12.1 + joi: 17.12.2 js-yaml: 3.14.1 jsonwebtoken: 9.0.2 lodash: 4.17.21 @@ -5918,7 +5910,7 @@ packages: nanoid: 3.3.7 ora: 4.1.1 posthog-node: 3.6.3(debug@4.3.4) - sqs-consumer: 5.8.0(aws-sdk@2.1562.0) + sqs-consumer: 5.8.0(aws-sdk@2.1571.0) temp: 0.9.4 tmp: 0.2.1 try-require: 1.2.1 @@ -5935,6 +5927,12 @@ packages: - utf-8-validate dev: false + /as-table@1.0.55: + resolution: {integrity: sha512-xvsWESUJn0JN421Xb9MQw6AsMHRCUknCe0Wjlxvjud80mU4E6hQf1A6NzQKcYNmYw62MfzEtXc+badstZP3JpQ==} + dependencies: + printable-characters: 1.0.42 + dev: false + /assertion-error@1.1.0: resolution: {integrity: sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==} @@ -5983,8 +5981,8 @@ packages: dependencies: possible-typed-array-names: 1.0.0 - /aws-sdk@2.1562.0: - resolution: {integrity: sha512-HsdlDRfVamH4tv+M+d0lnEYdtx+yEpqWA4T2XuJCjtV5JjjHDUQTKm+9C+EoTxLWtuw+SYSVWyuclwETv6CmHQ==} + /aws-sdk@2.1571.0: + resolution: {integrity: sha512-Hixs1aD+7IwsP/Bkb7StFCrOC9ejmw8zBv8xVqEtEughRX6AF8bLKFRoJRbD4V6TrM+gPGpCqoFlpa84HLHkSA==} engines: {node: '>= 10.0.0'} dependencies: buffer: 4.9.2 @@ -6068,6 +6066,11 @@ packages: readable-stream: 3.6.2 dev: false + /blocked@1.3.0: + resolution: {integrity: sha512-tAb98b4F01wLnKIjCpp17hheKIKnd7j+SgxwgNHQNjQ+EcvOCRZ1HPVNZt3/XnpMjFymVdIZlBQysi+s7OltLw==} + engines: {node: '>= 0.9.1'} + dev: false + /body-parser@1.20.1: resolution: {integrity: sha512-jWi7abTbYwajOytWCQc37VulmWiRae5RyTpaCyDcS5/lMdtwSz5lOpDE67srw/HYe35f1z3fDQw+3txg7gNtWw==} engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16} @@ -7237,8 +7240,8 @@ packages: engines: {node: '>=10.0.0'} dev: false - /enhanced-resolve@5.15.0: - resolution: {integrity: sha512-LXYT42KJ7lpIKECr2mAXIaMldcNCh/7E0KBKOu4KSfkHmP+mZmSs+8V5gBAqisWBy0OO4W5Oyys0GO1Y8KtdKg==} + /enhanced-resolve@5.15.1: + resolution: {integrity: sha512-3d3JRbwsCLJsYgvb6NuWEG44jjPSOMuS73L/6+7BZuoKm3W+qXnSoIYVHi8dG7Qcg4inAY4jbzkZ7MnskePeDg==} engines: {node: '>=10.13.0'} dependencies: graceful-fs: 4.2.11 @@ -7991,7 +7994,7 @@ packages: dependencies: app-module-path: 2.2.0 commander: 10.0.1 - enhanced-resolve: 5.15.0 + enhanced-resolve: 5.15.1 is-relative-path: 1.0.2 module-definition: 5.0.1 module-lookup-amd: 8.0.5 @@ -9232,8 +9235,8 @@ packages: engines: {node: '>= 0.6.0'} dev: false - /joi@17.12.1: - resolution: {integrity: sha512-vtxmq+Lsc5SlfqotnfVjlViWfOL9nt/avKNbKYizwf6gsCfq9NYY/ceYRMFD8XDdrjJ9abJyScWmhmIiy+XRtQ==} + /joi@17.12.2: + resolution: {integrity: sha512-RonXAIzCiHLc8ss3Ibuz45u28GOsWE1UpfDXLbN/9NKbL4tCJf8TWYVKsoYuuh+sAUt7fsSNpA+r2+TBA6Wjmw==} dependencies: '@hapi/hoek': 9.3.0 '@hapi/topo': 5.1.0 @@ -10029,8 +10032,8 @@ packages: resolution: {integrity: sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==} dev: false - /nan@2.18.0: - resolution: {integrity: sha512-W7tfG7vMOGtD30sHoZSSc/JVYiyDPEyQVso/Zz+/uQd0B0L46gtC+pHha5FFMRpil6fm/AoEcRWyOVi4+E/f8w==} + /nan@2.19.0: + resolution: {integrity: sha512-nO1xXxfh/RWNxfd/XPfbIfFk5vgLsAxUR9y5O0cHMJu/AW9U95JLXqthYHjEp+8gQ5p96K9jUp8nbVOxCdRbtw==} requiresBuild: true dev: false optional: true @@ -10727,6 +10730,10 @@ packages: ansi-styles: 5.2.0 react-is: 17.0.2 + /printable-characters@1.0.42: + resolution: {integrity: sha512-dKp+C4iXWK4vVYZmYSd0KBH5F/h1HoZRsbJ82AVKRO3PEo8L4lBS/vLwhVtpwwuYcoIsVY+1JYKR268yn480uQ==} + dev: false + /process-nextick-args@2.0.1: resolution: {integrity: sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==} dev: false @@ -11752,12 +11759,12 @@ packages: dev: false optional: true - /sqs-consumer@5.8.0(aws-sdk@2.1562.0): + /sqs-consumer@5.8.0(aws-sdk@2.1571.0): resolution: {integrity: sha512-pJReMEtDM9/xzQTffb7dxMD5MKagBfOW65m+ITsbpNk0oZmJ38tTC4LPmj0/7ZcKSOqi2LrpA1b0qGYOwxlHJg==} peerDependencies: aws-sdk: ^2.1271.0 dependencies: - aws-sdk: 2.1562.0 + aws-sdk: 2.1571.0 debug: 4.3.4(supports-color@8.1.1) transitivePeerDependencies: - supports-color @@ -12362,7 +12369,7 @@ packages: requiresBuild: true dependencies: bindings: 1.5.0 - nan: 2.18.0 + nan: 2.19.0 dev: false optional: true @@ -12799,7 +12806,7 @@ packages: resolution: {integrity: sha512-T4rieHaC1EXcES0Kxxj4JWgaUQHDk+qwHcYOCFHfiwKz7tOVPLq7Hjq9dM1WCMhylqMEfP7hMcOIChvotiZegA==} engines: {node: '>=4.0.0'} dependencies: - sax: 1.2.1 + sax: 1.3.0 xmlbuilder: 11.0.1 dev: false diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml index b9c77b731..4f7dddfe3 100644 --- a/pnpm-workspace.yaml +++ b/pnpm-workspace.yaml @@ -1,4 +1,5 @@ packages: - apps/test-app/* - apps/load-tests/* + - apps/performance-tests - packages/* diff --git a/scripts/runBenchmarkTests.js b/scripts/runBenchmarkTests.js deleted file mode 100644 index 5aab2bed3..000000000 --- a/scripts/runBenchmarkTests.js +++ /dev/null @@ -1,103 +0,0 @@ -/*--------------------------------------------------------------------------------------------- - * Copyright (c) Bentley Systems, Incorporated. All rights reserved. - * See LICENSE.md in the project root for license terms and full copyright notice. - *--------------------------------------------------------------------------------------------*/ - -/** - * Purpose of this script is to run performance benchmark tests. This is done through a script because: - * 1. The tests need some initial setup (download required iModels and set up configuration). - * 2. Start a backend process and keep it running until performance tests complete. - */ - -"use strict"; - -const { execSync, spawn } = require("child_process"); -const { Socket } = require("net"); -const path = require("path"); - -// get info about root package -const [{ path: workspaceRootPath }] = JSON.parse(execSync("pnpm list -w --only-projects --json", { encoding: "utf-8" })); - -// on windows child processes are left dangling unless we kill the whole process tree... -if (process.platform === "win32") { - process.on("exit", () => { - execSync(`taskkill /pid ${process.pid} /t /f`, { shell: true }); - }); -} - -// set up benchmark tests -execSync(`npm run benchmark:setup`, { - cwd: path.join(workspaceRootPath, "apps/load-tests/tests"), - shell: true, - stdio: "inherit", -}); - -async function main() { - const BACKEND_PORT = 5001; - const BACKEND_TIMEOUT = 60 * 1000; // 1 minute; - - // ensure 5001 port used by the backend is available - if (!(await waitWithTimeout(async () => isPortAvailable(BACKEND_PORT), BACKEND_TIMEOUT))) { - console.error(`Backend port ${BACKEND_PORT} is not available, aborting.`); - process.exit(1); - } - - // start the backend process - console.log("Starting the backend..."); - const backendProcess = spawn(`npm run start`, { - cwd: path.join(workspaceRootPath, "apps/load-tests/backend"), - shell: true, - stdio: "inherit", - }); - backendProcess.on("error", (err) => { - console.error(`BACKEND ERROR: ${err.message}`); - process.exitCode = 1; - }); - - // wait for the backend to start listening on port 5001 - if (!(await waitWithTimeout(async () => isPortTaken(BACKEND_PORT), BACKEND_TIMEOUT))) { - console.error(`Backend failed to start listening in ${BACKEND_TIMEOUT / 1000} seconds`); - process.exit(1); - } - console.log("Backend is listening, starting the benchmark..."); - - // run the benchmark tests - try { - execSync(`npm run benchmark`, { - cwd: path.join(workspaceRootPath, "apps/load-tests/tests"), - shell: true, - stdio: "inherit", - }); - console.log(`Tests complete`); - } catch (e) { - console.error(`TESTS ERROR: ${err.message}`); - process.exitCode = 1; - } - - // we still have child processes running, so this one won't exit - need to tell it explicitly - process.exit(); -} - -async function waitWithTimeout(predicate, timeout) { - let timer = new Date(); - let value; - while (!(value = await predicate()) && Date.now() - timer < timeout) { - await new Promise((resolve) => setTimeout(resolve, 20)); - } - return value; -} - -async function isPortTaken(port) { - return !(await isPortAvailable(port)); -} -async function isPortAvailable(port) { - const socket = new Socket(); - const result = await new Promise((resolve) => { - socket.once("error", () => resolve(true)); - socket.connect(port, "localhost", () => resolve(false)); - }); - socket.destroy(); - return result; -} - -main();