From b8eb21c0a70138991706283586527bb4ee596450 Mon Sep 17 00:00:00 2001 From: anmolshres98 Date: Sat, 19 Oct 2024 18:59:36 +0545 Subject: [PATCH 1/7] working migration to vitest --- common/config/rush/pnpm-lock.yaml | 99 +++++++-- core/quantity/package.json | 22 +- core/quantity/src/Formatter/Formatter.ts | 4 +- core/quantity/src/test/BearingAzimuth.test.ts | 66 +++--- .../src/test/CompositeFormats.test.ts | 150 +++++-------- core/quantity/src/test/Formatting.test.ts | 206 ++++++++++-------- core/quantity/src/test/NumericFormat.test.ts | 88 ++++---- core/quantity/src/test/Parsing.test.ts | 92 ++++---- core/quantity/vitest.config.mts | 24 ++ 9 files changed, 407 insertions(+), 344 deletions(-) create mode 100644 core/quantity/vitest.config.mts diff --git a/common/config/rush/pnpm-lock.yaml b/common/config/rush/pnpm-lock.yaml index e311a8526b37..9fb92c9b4ce9 100644 --- a/common/config/rush/pnpm-lock.yaml +++ b/common/config/rush/pnpm-lock.yaml @@ -918,36 +918,22 @@ importers: '@itwin/build-tools': workspace:* '@itwin/core-bentley': workspace:* '@itwin/eslint-plugin': ^4.0.2 - '@types/chai': 4.3.1 - '@types/chai-as-promised': ^7 '@types/glob': ^5.0.35 - '@types/mocha': ^10.0.6 - '@types/sinon': ^17.0.2 - chai: ^4.3.10 - chai-as-promised: ^7.1.1 + '@vitest/coverage-v8': ^2.1.0 eslint: ^8.56.0 - mocha: ^10.2.0 - nyc: ^15.1.0 rimraf: ^3.0.2 - sinon: ^17.0.2 typescript: ~5.3.3 + vitest: ^2.1.0 devDependencies: '@itwin/build-tools': link:../../tools/build '@itwin/core-bentley': link:../bentley '@itwin/eslint-plugin': 4.0.2_xdgzedli73k7lw4xlyzszm74om - '@types/chai': 4.3.1 - '@types/chai-as-promised': 7.1.0 '@types/glob': 5.0.35 - '@types/mocha': 10.0.6 - '@types/sinon': 17.0.2 - chai: 4.3.10 - chai-as-promised: 7.1.1_chai@4.3.10 + '@vitest/coverage-v8': 2.1.0_vitest@2.1.0 eslint: 8.56.0 - mocha: 10.2.0 - nyc: 15.1.0 rimraf: 3.0.2 - sinon: 17.0.2 typescript: 5.3.3 + vitest: 2.1.0 ../../core/telemetry: specifiers: @@ -13388,6 +13374,27 @@ packages: resolution: {integrity: sha512-UfFbxWkl59mjtMX1z5AhWxGu91RdHK67JOHyfgIUA/gk+XD30djG6XJgEpVY65X4W/a04U9urWQnlLjsWwlgKA==} dev: false + /vite-node/2.1.0: + resolution: {integrity: sha512-+ybYqBVUjYyIscoLzMWodus2enQDZOpGhcU6HdOVD6n8WZdk12w1GFL3mbnxLs7hPtRtqs1Wo5YF6/Tsr6fmhg==} + engines: {node: ^18.0.0 || >=20.0.0} + hasBin: true + dependencies: + cac: 6.7.14 + debug: 4.3.6 + pathe: 1.1.2 + vite: 5.4.6 + transitivePeerDependencies: + - '@types/node' + - less + - lightningcss + - sass + - sass-embedded + - stylus + - sugarss + - supports-color + - terser + dev: true + /vite-node/2.1.0_@types+node@18.16.20: resolution: {integrity: sha512-+ybYqBVUjYyIscoLzMWodus2enQDZOpGhcU6HdOVD6n8WZdk12w1GFL3mbnxLs7hPtRtqs1Wo5YF6/Tsr6fmhg==} engines: {node: ^18.0.0 || >=20.0.0} @@ -13518,6 +13525,62 @@ packages: fsevents: 2.3.3 dev: true + /vitest/2.1.0: + resolution: {integrity: sha512-XuuEeyNkqbfr0FtAvd9vFbInSSNY1ykCQTYQ0sj9wPy4hx+1gR7gqVNdW0AX2wrrM1wWlN5fnJDjF9xG6mYRSQ==} + engines: {node: ^18.0.0 || >=20.0.0} + hasBin: true + peerDependencies: + '@edge-runtime/vm': '*' + '@types/node': ^18.0.0 || >=20.0.0 + '@vitest/browser': 2.1.0 + '@vitest/ui': 2.1.0 + happy-dom: '*' + jsdom: '*' + peerDependenciesMeta: + '@edge-runtime/vm': + optional: true + '@types/node': + optional: true + '@vitest/browser': + optional: true + '@vitest/ui': + optional: true + happy-dom: + optional: true + jsdom: + optional: true + dependencies: + '@vitest/expect': 2.1.0 + '@vitest/mocker': 2.1.0_vite@5.4.6 + '@vitest/pretty-format': 2.1.1 + '@vitest/runner': 2.1.0 + '@vitest/snapshot': 2.1.0 + '@vitest/spy': 2.1.0 + '@vitest/utils': 2.1.0 + chai: 5.1.1 + debug: 4.3.6 + magic-string: 0.30.11 + pathe: 1.1.2 + std-env: 3.7.0 + tinybench: 2.9.0 + tinyexec: 0.3.0 + tinypool: 1.0.1 + tinyrainbow: 1.2.0 + vite: 5.4.6 + vite-node: 2.1.0 + why-is-node-running: 2.3.0 + transitivePeerDependencies: + - less + - lightningcss + - msw + - sass + - sass-embedded + - stylus + - sugarss + - supports-color + - terser + dev: true + /vitest/2.1.0_@types+node@18.16.20: resolution: {integrity: sha512-XuuEeyNkqbfr0FtAvd9vFbInSSNY1ykCQTYQ0sj9wPy4hx+1gR7gqVNdW0AX2wrrM1wWlN5fnJDjF9xG6mYRSQ==} engines: {node: ^18.0.0 || >=20.0.0} diff --git a/core/quantity/package.json b/core/quantity/package.json index 72ba4e29de88..d6954c52c432 100644 --- a/core/quantity/package.json +++ b/core/quantity/package.json @@ -18,9 +18,9 @@ "clean": "rimraf lib .rush/temp/package-deps*.json .nyc_output", "extract-api": "betools extract-api --entry=core-quantity", "lint": "eslint -f visualstudio \"./src/**/*.ts\" 1>&2", - "test": "mocha", + "test": "vitest --run", "docs": "betools docs --includes=../../generated-docs/extract --json=../../generated-docs/core/core-quantity/file.json --tsIndexFile=./core-quantity.ts --onlyJson", - "cover": "nyc npm -s test", + "cover": "vitest --run --coverage", "start": "npm run -s lint && npm run -s clean && npm run -s build && npm run -s test & npm run -s cover & npm run -s docs" }, "keywords": [ @@ -36,24 +36,14 @@ "@itwin/build-tools": "workspace:*", "@itwin/core-bentley": "workspace:*", "@itwin/eslint-plugin": "^4.0.2", - "@types/chai": "4.3.1", - "@types/chai-as-promised": "^7", "@types/glob": "^5.0.35", - "@types/mocha": "^10.0.6", - "@types/sinon": "^17.0.2", - "chai": "^4.3.10", - "chai-as-promised": "^7.1.1", + "@vitest/coverage-v8": "^2.1.0", "eslint": "^8.56.0", - "mocha": "^10.2.0", - "nyc": "^15.1.0", "rimraf": "^3.0.2", - "sinon": "^17.0.2", - "typescript": "~5.3.3" + "typescript": "~5.3.3", + "vitest": "^2.1.0" }, "peerDependencies": { "@itwin/core-bentley": "workspace:^4.10.0-dev.27" - }, - "nyc": { - "extends": "./node_modules/@itwin/build-tools/.nycrc" } -} +} \ No newline at end of file diff --git a/core/quantity/src/Formatter/Formatter.ts b/core/quantity/src/Formatter/Formatter.ts index b0a9a8045587..f00e83dd3730 100644 --- a/core/quantity/src/Formatter/Formatter.ts +++ b/core/quantity/src/Formatter/Formatter.ts @@ -210,9 +210,9 @@ export class Formatter { const unitConversion = spec.unitConversions[i].conversion; if (i > 0 && unitConversion.factor < 1.0) - throw new QuantityError(QuantityStatus.InvalidCompositeFormat, `The Format ${spec.format.name} has a invalid unit specification..`); + throw new QuantityError(QuantityStatus.InvalidCompositeFormat, `The Format ${spec.format.name} has a invalid unit specification.`); if (i > 0 && unitConversion.offset !== 0) // offset should only ever be defined for major unit - throw new QuantityError(QuantityStatus.InvalidCompositeFormat, `The Format ${spec.format.name} has a invalid unit specification..`); + throw new QuantityError(QuantityStatus.InvalidCompositeFormat, `The Format ${spec.format.name} has a invalid unit specification.`); let unitValue = 0.0; if (spec.format.type === FormatType.Ratio){ diff --git a/core/quantity/src/test/BearingAzimuth.test.ts b/core/quantity/src/test/BearingAzimuth.test.ts index 486e30f0893f..f47186e17403 100644 --- a/core/quantity/src/test/BearingAzimuth.test.ts +++ b/core/quantity/src/test/BearingAzimuth.test.ts @@ -2,7 +2,7 @@ * Copyright (c) Bentley Systems, Incorporated. All rights reserved. * See LICENSE.md in the project root for license terms and full copyright notice. *--------------------------------------------------------------------------------------------*/ -import { assert, expect } from "chai"; +import { describe, expect, it } from "vitest"; import { Format } from "../Formatter/Format"; import { FormatterSpec } from "../Formatter/FormatterSpec"; import { Formatter } from "../Formatter/Formatter"; @@ -65,18 +65,18 @@ describe("Bearing format tests:", () => { const bearingDMS = new Format("BearingDMS"); await bearingDMS.fromJSON(unitsProvider, bearingDMSJson).catch(() => { }); - assert.isTrue(bearingDMS.hasUnits); + expect(bearingDMS.hasUnits).to.be.true; const bearingDMSWithLabel = new Format("BearingDMSWithLabel"); await bearingDMSWithLabel.fromJSON(unitsProvider, bearingDMSWithLabelJson).catch(() => { }); - assert.isTrue(bearingDMSWithLabel.hasUnits); + expect(bearingDMSWithLabel.hasUnits).to.be.true; const bearingDecimal = new Format("BearingDecimal"); await bearingDecimal.fromJSON(unitsProvider, bearingDecimalJson).catch(() => { }); - assert.isTrue(bearingDecimal.hasUnits); + expect(bearingDecimal.hasUnits).to.be.true; const rad: UnitProps = await unitsProvider.findUnitByName("Units.RAD"); - assert.isTrue(rad.isValid); + expect(rad.isValid).to.be.true; const bearingDMSFormatter = await FormatterSpec.create("RadToBearingDMS", bearingDMS, unitsProvider, rad); const bearingDMSWithLabelFormatter = await FormatterSpec.create("RadToBearingDMSWithLabel", bearingDMSWithLabel, unitsProvider, rad); const bearingDecimalFormatter = await FormatterSpec.create("RadToBearingDecimal", bearingDecimal, unitsProvider, rad); @@ -121,7 +121,7 @@ describe("Bearing format tests:", () => { expect(resultBearingDMS).to.be.eql(entry.dms); const parseBearingDMSResult = Parser.parseQuantityString(resultBearingDMS, bearingDMSParser); if (!Parser.isParsedQuantity(parseBearingDMSResult)) { - assert.fail(`Expected a parsed from bearing DMS input string ${resultBearingDMS}`); + expect.fail(`Expected a parsed from bearing DMS input string ${resultBearingDMS}`); } expect(parseBearingDMSResult.value, `Parsed result for ${entry.input} from formatted ${resultBearingDMS}`).closeTo(normalizedAngle, 0.0001); @@ -129,7 +129,7 @@ describe("Bearing format tests:", () => { expect(resultBearingDMSWithLabel).to.be.eql(entry.dmsWithLabel); const parseBearingDMSWithLabelResult = Parser.parseQuantityString(resultBearingDMSWithLabel, bearingDMSWithLabelParser); if (!Parser.isParsedQuantity(parseBearingDMSWithLabelResult)) { - assert.fail(`Expected a parsed from bearing DMS with label input string ${resultBearingDMSWithLabel}`); + expect.fail(`Expected a parsed from bearing DMS with label input string ${resultBearingDMSWithLabel}`); } expect(parseBearingDMSWithLabelResult.value, `Parsed result for ${normalizedAngle} from formatted ${resultBearingDMSWithLabel}`).closeTo(normalizedAngle, 0.0001); @@ -137,7 +137,7 @@ describe("Bearing format tests:", () => { expect(resultBearingDecimal).to.be.eql(entry.decimal); const parseBearingDecimalResult = Parser.parseQuantityString(resultBearingDecimal, bearingDecimalParser); if (!Parser.isParsedQuantity(parseBearingDecimalResult)) { - assert.fail(`Expected a parsed from bearing decimal input string ${resultBearingDecimal}`); + expect.fail(`Expected a parsed from bearing decimal input string ${resultBearingDecimal}`); } expect(parseBearingDecimalResult.value, `Parsed result for ${normalizedAngle} from formatted ${resultBearingDecimal}`).closeTo(normalizedAngle, 0.0001); } @@ -217,14 +217,14 @@ describe("Azimuth format tests:", () => { const azimuthDMS = new Format("azimuthDMS"); await azimuthDMS.fromJSON(unitsProvider, azimuthDMSJson).catch(() => { }); - assert.isTrue(azimuthDMS.hasUnits); + expect(azimuthDMS.hasUnits).to.be.true; const azimuthDecimal = new Format("azimuthDecimal"); await azimuthDecimal.fromJSON(unitsProvider, azimuthDecimalJson).catch(() => { }); - assert.isTrue(azimuthDecimal.hasUnits); + expect(azimuthDecimal.hasUnits).to.be.true; const rad: UnitProps = await unitsProvider.findUnitByName("Units.RAD"); - assert.isTrue(rad.isValid); + expect(rad.isValid).to.be.true; const azimuthDMSFormatter = await FormatterSpec.create("RadToAzimuthDMS", azimuthDMS, unitsProvider, rad); const azimuthDecimalFormatter = await FormatterSpec.create("RadToAzimuthDecimal", azimuthDecimal, unitsProvider, rad); @@ -295,9 +295,9 @@ describe("Azimuth format tests:", () => { const format = new Format(`azimuthWith${baseInDegrees}Base`); await format.fromJSON(unitsProvider, props); - assert.isTrue(format.hasUnits); + expect(format.hasUnits).to.be.true; const deg: UnitProps = await unitsProvider.findUnitByName("Units.ARC_DEG"); - assert.isTrue(deg.isValid); + expect(deg.isValid).to.be.true; return FormatterSpec.create(`DegreeToAzimuthWith${baseInDegrees}Base`, format, unitsProvider, deg); }; @@ -310,9 +310,9 @@ describe("Azimuth format tests:", () => { const format = new Format(`azimuthWith${baseInDegrees}Base`); await format.fromJSON(unitsProvider, props); - assert.isTrue(format.hasUnits); + expect(format.hasUnits).to.be.true; const deg: UnitProps = await unitsProvider.findUnitByName("Units.ARC_DEG"); - assert.isTrue(deg.isValid); + expect(deg.isValid).to.be.true; return ParserSpec.create(format, unitsProvider, deg); }; @@ -352,7 +352,7 @@ describe("Azimuth format tests:", () => { const parser = await createParser(entry.base, entry.counterClockwise); const parseResult = Parser.parseQuantityString(result, parser); if (!Parser.isParsedQuantity(parseResult)) { - assert.fail("Expected a parsed quantity"); + expect.fail("Expected a parsed quantity"); } expect(parseResult.value, `Parsed result for ${entry.input} with base ${entry.base} ccw: ${entry.counterClockwise}`).closeTo(entry.input, 0.0001); } @@ -382,9 +382,9 @@ describe("Azimuth format tests:", () => { const format = new Format(`azimuth`); await format.fromJSON(unitsProvider, formatJson); - assert.isTrue(format.hasUnits); + expect(format.hasUnits).to.be.true; const minutes: UnitProps = await unitsProvider.findUnitByName("Units.ARC_MINUTE"); - assert.isTrue(minutes.isValid); + expect(minutes.isValid).to.be.true; const formatter = await FormatterSpec.create("Formatter", format, unitsProvider, minutes); const result = Formatter.formatQuantity(5100, formatter); // 85 degrees, angle with a South base expect(result).to.be.eql("265.0°"); @@ -414,14 +414,14 @@ describe("Azimuth format tests:", () => { const format = new Format(`azimuth`); await format.fromJSON(unitsProvider, formatJson); - assert.isTrue(format.hasUnits); + expect(format.hasUnits).to.be.true; const rad: UnitProps = await unitsProvider.findUnitByName("Units.RAD"); - assert.isTrue(rad.isValid); + expect(rad.isValid).to.be.true; const formatter = await FormatterSpec.create("Formatter", format, unitsProvider, rad); const parser = await ParserSpec.create(format, unitsProvider, rad, unitsProvider); const parseResult = Parser.parseQuantityString("265.0°", parser); if (!Parser.isParsedQuantity(parseResult)) { - assert.fail("Expected a parsed quantity"); + expect.fail("Expected a parsed quantity"); } expect(parseResult.value).closeTo(1.4835, 0.0001); const formattedValue = Formatter.formatQuantity(parseResult.value, formatter); @@ -451,8 +451,8 @@ describe("Azimuth and Revolution formatting that throws error:", () => { await testFormatWithAzimuthType.fromJSON(unitsProvider, jsonObj); expect.fail("Expected error was not thrown"); } catch (e: any) { - assert.strictEqual(e.message, "The Format testAzimuthFormat has an invalid 'azimuthBaseUnit' attribute. It should be of type 'string'."); - assert.instanceOf(e, QuantityError); + expect(e.message).toEqual("The Format testAzimuthFormat has an invalid 'azimuthBaseUnit' attribute. It should be of type 'string'."); + expect(e).toBeInstanceOf(QuantityError); } }); @@ -466,8 +466,8 @@ describe("Azimuth and Revolution formatting that throws error:", () => { await testFormatWithAzimuthType.fromJSON(unitsProvider, jsonObj); expect.fail("Expected error was not thrown"); } catch (e: any) { - assert.strictEqual(e.message, "Invalid unit name 'invalidUnit' for azimuthBaseUnit in Format 'testAzimuthFormat'."); - assert.instanceOf(e, QuantityError); + expect(e.message).toEqual("Invalid unit name 'invalidUnit' for azimuthBaseUnit in Format 'testAzimuthFormat'."); + expect(e).toBeInstanceOf(QuantityError); } }); @@ -481,8 +481,8 @@ describe("Azimuth and Revolution formatting that throws error:", () => { await testFormatWithAzimuthType.fromJSON(unitsProvider, jsonObj); expect.fail("Expected error was not thrown"); } catch (e: any) { - assert.strictEqual(e.message, "The Format testAzimuthFormat has an invalid 'revolutionUnit' attribute. It should be of type 'string'."); - assert.instanceOf(e, QuantityError); + expect(e.message).toEqual("The Format testAzimuthFormat has an invalid 'revolutionUnit' attribute. It should be of type 'string'."); + expect(e).toBeInstanceOf(QuantityError); } }); @@ -496,8 +496,8 @@ describe("Azimuth and Revolution formatting that throws error:", () => { await testFormatWithAzimuthType.fromJSON(unitsProvider, jsonObj); expect.fail("Expected error was not thrown"); } catch (e: any) { - assert.strictEqual(e.message, "Invalid unit name 'invalidUnit' for revolutionUnit in Format 'testAzimuthFormat'."); - assert.instanceOf(e, QuantityError); + expect(e.message).toEqual("Invalid unit name 'invalidUnit' for revolutionUnit in Format 'testAzimuthFormat'."); + expect(e).toBeInstanceOf(QuantityError); } }); @@ -510,8 +510,8 @@ describe("Azimuth and Revolution formatting that throws error:", () => { await testFormatWithAzimuthType.fromJSON(unitsProvider, jsonObj); expect.fail("Expected error was not thrown"); } catch (e: any) { - assert.strictEqual(e.message, "The Format testAzimuthFormat is 'Azimuth' or 'Bearing' type therefore the attribute 'revolutionUnit' is required."); - assert.instanceOf(e, QuantityError); + expect(e.message).toEqual("The Format testAzimuthFormat is 'Azimuth' or 'Bearing' type therefore the attribute 'revolutionUnit' is required."); + expect(e).toBeInstanceOf(QuantityError); } }); @@ -523,8 +523,8 @@ describe("Azimuth and Revolution formatting that throws error:", () => { await testFormatWithAzimuthType.fromJSON(unitsProvider, { type: "azimuth" }); expect.fail("Expected error was not thrown"); } catch (e: any) { - assert.strictEqual(e.message, "The Format testAzimuthFormat has an 'azimuthBase' attribute therefore the attribute 'azimuthBaseUnit' is required."); - assert.instanceOf(e, QuantityError); + expect(e.message).toEqual("The Format testAzimuthFormat has an 'azimuthBase' attribute therefore the attribute 'azimuthBaseUnit' is required."); + expect(e).toBeInstanceOf(QuantityError); } }); }); diff --git a/core/quantity/src/test/CompositeFormats.test.ts b/core/quantity/src/test/CompositeFormats.test.ts index 1116292e57b9..e65c20ba8f07 100644 --- a/core/quantity/src/test/CompositeFormats.test.ts +++ b/core/quantity/src/test/CompositeFormats.test.ts @@ -2,7 +2,7 @@ * Copyright (c) Bentley Systems, Incorporated. All rights reserved. * See LICENSE.md in the project root for license terms and full copyright notice. *--------------------------------------------------------------------------------------------*/ -import { assert, expect } from "chai"; +import { describe, expect, it } from "vitest"; import { Format } from "../Formatter/Format"; import { FormatterSpec } from "../Formatter/FormatterSpec"; import { Formatter } from "../Formatter/Formatter"; @@ -35,21 +35,16 @@ describe("Composite Formats tests:", () => { uomSeparator: "", }; - try { - const format = new Format("test"); - await format.fromJSON(unitsProvider, formatData).catch(() => { }); - assert.isTrue(format.hasUnits); + const format = new Format("test"); + await format.fromJSON(unitsProvider, formatData).catch(() => { }); + expect(format.hasUnits).to.be.true; - const testEntry = { magnitude: 12.5416666666667, unit: { name: "Units.FT", label: "ft", contextId: "Units.LENGTH" }, result: "12:6 1/2" }; + const testEntry = { magnitude: 12.5416666666667, unit: { name: "Units.FT", label: "ft", contextId: "Units.LENGTH" }, result: "12:6 1/2" }; - const unit = new BasicUnit(testEntry.unit.name, testEntry.unit.label, testEntry.unit.contextId); - const spec = await FormatterSpec.create("test", format, unitsProvider, unit); + const unit = new BasicUnit(testEntry.unit.name, testEntry.unit.label, testEntry.unit.contextId); + const spec = await FormatterSpec.create("test", format, unitsProvider, unit); - Formatter.formatQuantity(testEntry.magnitude, spec); - assert.isTrue(false); - } catch (err: any) { - assert.strictEqual(err.message, "The Format test has a invalid unit specification.."); - } + expect(() => Formatter.formatQuantity(testEntry.magnitude, spec)).to.throw("The Format test has a invalid unit specification."); }); it("Bad Composite unit with offset", async () => { @@ -76,25 +71,18 @@ describe("Composite Formats tests:", () => { uomSeparator: "", }; - try { - const format = new Format("test"); - await format.fromJSON(unitsProvider, formatData).catch(() => { }); - assert.isTrue(format.hasUnits); + const format = new Format("test"); + await format.fromJSON(unitsProvider, formatData).catch(() => { }); + expect(format.hasUnits).to.be.true; - const testEntry = { - magnitude: 12.5416666666667, unit: { name: "Units.FT", label: "ft", contextId: "Units.LENGTH" }, result: "12:6 1/2", - }; + const testEntry = { + magnitude: 12.5416666666667, unit: { name: "Units.FT", label: "ft", contextId: "Units.LENGTH" }, result: "12:6 1/2", + }; - const unit = new BasicUnit(testEntry.unit.name, testEntry.unit.label, testEntry.unit.contextId); - const spec = await FormatterSpec.create("test", format, unitsProvider, unit); + const unit = new BasicUnit(testEntry.unit.name, testEntry.unit.label, testEntry.unit.contextId); + const spec = await FormatterSpec.create("test", format, unitsProvider, unit); - Formatter.formatQuantity(testEntry.magnitude, spec); - assert.isTrue(false); - } catch (err: any) { - assert.strictEqual(err.message, "The Format test has a invalid unit specification.."); - // eslint-disable-next-line no-console - // console.log(err.message); - } + expect(() => Formatter.formatQuantity(testEntry.magnitude, spec)).toThrow("The Format test has a invalid unit specification."); }); it("Single Composite with label override", async () => { @@ -119,7 +107,7 @@ describe("Composite Formats tests:", () => { const format = new Format("test"); await format.fromJSON(unitsProvider, formatData).catch(() => { }); - assert.isTrue(format.hasUnits); + expect(format.hasUnits).to.be.true; const testQuantityData = [ { magnitude: -12.5416666666667, unit: { name: "Units.FT", label: "ft", contextId: "Units.LENGTH" }, result: "-12.5417'" }, @@ -134,10 +122,8 @@ describe("Composite Formats tests:", () => { const spec = await FormatterSpec.create("test", format, unitsProvider, unit); const formattedValue = Formatter.formatQuantity(testEntry.magnitude, spec); - assert.isTrue(formattedValue.length > 0); - assert.strictEqual(formattedValue, testEntry.result); - // eslint-disable-next-line no-console - // console.log(testEntry.magnitude.toString() + " " + testEntry.unit.label + " => " + formattedValue); + expect(formattedValue.length).toBeGreaterThan(0); + expect(formattedValue).toEqual(testEntry.result); } }); @@ -205,15 +191,15 @@ describe("Composite Formats tests:", () => { const format = new Format("test"); await format.fromJSON(unitsProvider, formatData).catch(() => { }); - assert.isTrue(format.hasUnits, `Test case number ${testEntry.testCaseNum} failed`); - assert.equal(format.hasFormatTraitSet(FormatTraits.KeepSingleZero), testEntry.keepSingleZero, `Test case number ${testEntry.testCaseNum} failed`); - assert.equal(format.hasFormatTraitSet(FormatTraits.KeepDecimalPoint), testEntry.keepDecimalPoint, `Test case number ${testEntry.testCaseNum} failed`); - assert.equal(format.hasFormatTraitSet(FormatTraits.TrailZeroes), testEntry.trailZeroes, `Test case number ${testEntry.testCaseNum} failed`); + expect(format.hasUnits).to.be.true; + expect(format.hasFormatTraitSet(FormatTraits.KeepSingleZero)).toEqual(testEntry.keepSingleZero); + expect(format.hasFormatTraitSet(FormatTraits.KeepDecimalPoint)).toEqual(testEntry.keepDecimalPoint); + expect(format.hasFormatTraitSet(FormatTraits.TrailZeroes)).toEqual(testEntry.trailZeroes); const spec = await FormatterSpec.create("test", format, unitsProvider, new BasicUnit(unit.name, unit.label, unit.contextId)); const formattedValue = Formatter.formatQuantity(testEntry.magnitude, spec); - assert.equal(formattedValue, testEntry.result, `Test case number ${testEntry.testCaseNum} failed`); - assert.isTrue(formattedValue.length > 0, `Test case number ${testEntry.testCaseNum} failed`); + expect(formattedValue).toEqual(testEntry.result); + expect(formattedValue.length).toBeGreaterThan(0); } }); @@ -243,7 +229,7 @@ describe("Composite Formats tests:", () => { const format = new Format("test"); await format.fromJSON(unitsProvider, formatData).catch(() => { }); - assert.isTrue(format.hasUnits); + expect(format.hasUnits).to.be.true; const testQuantityData = [ { magnitude: -12.5416666666667, unit: { name: "Units.FT", label: "ft", contextId: "Units.LENGTH" }, result: "-12'-6 1/2\"" }, @@ -259,10 +245,8 @@ describe("Composite Formats tests:", () => { const spec = await FormatterSpec.create("test", format, unitsProvider, unit); const formattedValue = Formatter.formatQuantity(testEntry.magnitude, spec); - assert.isTrue(formattedValue.length > 0); - assert.strictEqual(formattedValue, testEntry.result); - // eslint-disable-next-line no-console - // console.log(testEntry.magnitude.toString() + " " + testEntry.unit.label + " => " + formattedValue); + expect(formattedValue.length).toBeGreaterThan(0); + expect(formattedValue).toEqual(testEntry.result); } }); @@ -292,7 +276,7 @@ describe("Composite Formats tests:", () => { const format = new Format("test"); await format.fromJSON(unitsProvider, formatData).catch(() => { }); - assert.isTrue(format.hasUnits); + expect(format.hasUnits).to.be.true; const testQuantityData = [ { magnitude: -12.5416666666667, unit: { name: "Units.FT", label: "ft", contextId: "Units.LENGTH" }, result: "-12:6 1/2" }, @@ -308,10 +292,8 @@ describe("Composite Formats tests:", () => { const spec = await FormatterSpec.create("test", format, unitsProvider, unit); const formattedValue = Formatter.formatQuantity(testEntry.magnitude, spec); - assert.isTrue(formattedValue.length > 0); - assert.strictEqual(formattedValue, testEntry.result); - // eslint-disable-next-line no-console - // console.log(testEntry.magnitude.toString() + " " + testEntry.unit.label + " => " + formattedValue); + expect(formattedValue.length).toBeGreaterThan(0); + expect(formattedValue).toEqual(testEntry.result); } }); @@ -337,7 +319,7 @@ describe("Composite Formats tests:", () => { const format = new Format("test"); await format.fromJSON(unitsProvider, formatData).catch(() => { }); - assert.isTrue(format.hasUnits); + expect(format.hasUnits).to.be.true; const testQuantityData = [ { magnitude: -12.5416666666667, unit: { name: "Units.FT", label: "ft", contextId: "Units.LENGTH" }, result: "-150 1/2\"" }, @@ -353,8 +335,8 @@ describe("Composite Formats tests:", () => { const spec = await FormatterSpec.create("test", format, unitsProvider, unit); const formattedValue = Formatter.formatQuantity(testEntry.magnitude, spec); - assert.isTrue(formattedValue.length > 0); - assert.strictEqual(formattedValue, testEntry.result); + expect(formattedValue.length).toBeGreaterThan(0); + expect(formattedValue).toEqual(testEntry.result); // eslint-disable-next-line no-console // console.log(testEntry.magnitude.toString() + " " + testEntry.unit.label + " => " + formattedValue); } @@ -381,7 +363,7 @@ describe("Composite Formats tests:", () => { const format = new Format("test"); await format.fromJSON(unitsProvider, formatData).catch(() => { }); - assert.isTrue(format.hasUnits); + expect(format.hasUnits).to.be.true; const testQuantityData = [ { magnitude: -12.5416666666667, unit: { name: "Units.FT", label: "ft", contextId: "Units.LENGTH" }, result: "-150 1/2 in" }, @@ -396,10 +378,8 @@ describe("Composite Formats tests:", () => { const unit = new BasicUnit(testEntry.unit.name, testEntry.unit.label, testEntry.unit.contextId); const spec = await FormatterSpec.create("test", format, unitsProvider, unit); const formattedValue = Formatter.formatQuantity(testEntry.magnitude, spec); - assert.isTrue(formattedValue.length > 0); - assert.strictEqual(formattedValue, testEntry.result); - // eslint-disable-next-line no-console - // console.log(testEntry.magnitude.toString() + " " + testEntry.unit.label + " => " + formattedValue); + expect(formattedValue.length).toBeGreaterThan(0); + expect(formattedValue).toEqual(testEntry.result); } }); @@ -425,7 +405,7 @@ describe("Composite Formats tests:", () => { const format = new Format("test"); await format.fromJSON(unitsProvider, formatData).catch(() => { }); - assert.isTrue(format.hasUnits); + expect(format.hasUnits).to.be.true; const testQuantityData = [ { magnitude: -12.5416666666667, unit: { name: "Units.FT", label: "ft", contextId: "Units.LENGTH" }, result: "-150.5\"" }, @@ -440,9 +420,7 @@ describe("Composite Formats tests:", () => { const unit = new BasicUnit(testEntry.unit.name, testEntry.unit.label, testEntry.unit.contextId); const spec = await FormatterSpec.create("test", format, unitsProvider, unit); const formattedValue = Formatter.formatQuantity(testEntry.magnitude, spec); - assert.strictEqual(formattedValue, testEntry.result); - // eslint-disable-next-line no-console - // console.log(testEntry.magnitude.toString() + " " + testEntry.unit.label + " => " + formattedValue); + expect(formattedValue).toEqual(testEntry.result); } }); @@ -472,7 +450,7 @@ describe("Composite Formats tests:", () => { const format = new Format("test"); await format.fromJSON(unitsProvider, formatData).catch(() => { }); - assert.isTrue(format.hasUnits); + expect(format.hasUnits).to.be.true; const testQuantityData = [ { magnitude: -1.0, unit: { name: "Units.M", label: "m", contextId: "Units.LENGTH" }, result: "-3'-3 3/8\"" }, @@ -486,10 +464,8 @@ describe("Composite Formats tests:", () => { const unit = new BasicUnit(testEntry.unit.name, testEntry.unit.label, testEntry.unit.contextId); const spec = await FormatterSpec.create("test", format, unitsProvider, unit); const formattedValue = Formatter.formatQuantity(testEntry.magnitude, spec); - assert.isTrue(formattedValue.length > 0); - assert.isTrue(formattedValue === testEntry.result); - // eslint-disable-next-line no-console - // console.log(testEntry.magnitude.toString() + " " + testEntry.unit.label + " => " + formattedValue); + expect(formattedValue.length).toBeGreaterThan(0); + expect(formattedValue).toEqual(testEntry.result); } }); @@ -519,7 +495,7 @@ describe("Composite Formats tests:", () => { const format = new Format("test"); await format.fromJSON(unitsProvider, formatData).catch(() => { }); - assert.isTrue(format.hasUnits); + expect(format.hasUnits).to.be.true; const testQuantityData = [ { magnitude: -1.0, unit: { name: "Units.M", label: "m", contextId: "Units.LENGTH" }, result: "-3'-3.37\"" }, @@ -533,10 +509,8 @@ describe("Composite Formats tests:", () => { const unit = new BasicUnit(testEntry.unit.name, testEntry.unit.label, testEntry.unit.contextId); const spec = await FormatterSpec.create("test", format, unitsProvider, unit); const formattedValue = Formatter.formatQuantity(testEntry.magnitude, spec); - assert.isTrue(formattedValue === testEntry.result); - assert.isTrue(formattedValue.length > 0); - // eslint-disable-next-line no-console - // console.log(testEntry.magnitude.toString() + " " + testEntry.unit.label + " => " + formattedValue); + expect(formattedValue).toEqual(testEntry.result); + expect(formattedValue.length).toBeGreaterThan(0); } }); @@ -562,7 +536,7 @@ describe("Composite Formats tests:", () => { const format = new Format("test"); await format.fromJSON(unitsProvider, formatData).catch(() => { }); - assert.isTrue(format.hasUnits); + expect(format.hasUnits).to.be.true; const testQuantityData = [ { magnitude: 0.5283367223037165, unit: { name: "Units.RAD", label: "rad", contextId: "Units.ANGLE" }, result: "30.27146435�" }, @@ -573,10 +547,8 @@ describe("Composite Formats tests:", () => { const unit = new BasicUnit(testEntry.unit.name, testEntry.unit.label, testEntry.unit.contextId); const spec = await FormatterSpec.create("test", format, unitsProvider, unit); const formattedValue = Formatter.formatQuantity(testEntry.magnitude, spec); - assert.isTrue(formattedValue === testEntry.result); - assert.isTrue(formattedValue.length > 0); - // eslint-disable-next-line no-console - // console.log(testEntry.magnitude.toString() + " " + testEntry.unit.label + " => " + formattedValue); + expect(formattedValue).toEqual(testEntry.result); + expect(formattedValue.length).toBeGreaterThan(0); } }); @@ -602,7 +574,7 @@ describe("Composite Formats tests:", () => { const format = new Format("test"); await format.fromJSON(unitsProvider, formatData).catch(() => { }); - assert.isTrue(format.hasUnits); + expect(format.hasUnits).to.be.true; const testQuantityData = [ { magnitude: 0.5283367223037165, unit: { name: "Units.RAD", label: "rad", contextId: "Units.ANGLE" }, result: "30.0�" }, @@ -613,10 +585,8 @@ describe("Composite Formats tests:", () => { const unit = new BasicUnit(testEntry.unit.name, testEntry.unit.label, testEntry.unit.contextId); const spec = await FormatterSpec.create("test", format, unitsProvider, unit); const formattedValue = Formatter.formatQuantity(testEntry.magnitude, spec); - assert.isTrue(formattedValue === testEntry.result); - assert.isTrue(formattedValue.length > 0); - // eslint-disable-next-line no-console - // console.log(testEntry.magnitude.toString() + " " + testEntry.unit.label + " => " + formattedValue); + expect(formattedValue).toEqual(testEntry.result); + expect(formattedValue.length).toBeGreaterThan(0); } }); @@ -650,7 +620,7 @@ describe("Composite Formats tests:", () => { const format = new Format("test"); await format.fromJSON(unitsProvider, formatData).catch(() => { }); - assert.isTrue(format.hasUnits); + expect(format.hasUnits).to.be.true; const testQuantityData = [ { magnitude: 0.5283367223037165, unit: { name: "Units.RAD", label: "rad", contextId: "Units.ANGLE" }, result: "30�16'17.27166\"" }, @@ -661,10 +631,8 @@ describe("Composite Formats tests:", () => { const unit = new BasicUnit(testEntry.unit.name, testEntry.unit.label, testEntry.unit.contextId); const spec = await FormatterSpec.create("test", format, unitsProvider, unit); const formattedValue = Formatter.formatQuantity(testEntry.magnitude, spec); - assert.isTrue(formattedValue === testEntry.result); - assert.isTrue(formattedValue.length > 0); - // eslint-disable-next-line no-console - // console.log(testEntry.magnitude.toString() + " " + testEntry.unit.label + " => " + formattedValue); + expect(formattedValue).toEqual(testEntry.result); + expect(formattedValue.length).toBeGreaterThan(0); } }); it("Rad to DMS (precision 3)", async () => { @@ -697,7 +665,7 @@ describe("Composite Formats tests:", () => { const format = new Format("test"); await format.fromJSON(unitsProvider, formatData).catch(() => { }); - assert.isTrue(format.hasUnits); + expect(format.hasUnits).to.be.true; const testQuantityData = [ { magnitude: 0.5283367223037165, unit: { name: "Units.RAD", label: "rad", contextId: "Units.ANGLE" }, result: "30�16'17.272\"" }, @@ -714,9 +682,7 @@ describe("Composite Formats tests:", () => { const spec = await FormatterSpec.create("test", format, unitsProvider, unit); const formattedValue = Formatter.formatQuantity(testEntry.magnitude, spec); expect(formattedValue).to.be.eql(testEntry.result); - assert.isTrue(formattedValue.length > 0); - // eslint-disable-next-line no-console - // console.log(testEntry.magnitude.toString() + " " + testEntry.unit.label + " => " + formattedValue); + expect(formattedValue.length).toBeGreaterThan(0); } }); @@ -735,7 +701,7 @@ describe("Composite Formats tests:", () => { uomSeparator: "", }; const format = new Format("test"); - assert.isDefined(format); + expect(format).toBeDefined(); await format.fromJSON(unitsProvider, compositeFormat).catch(() => { }); expect(JSON.stringify(format.toJSON().composite)).to.eql(`{"spacer":"","includeZero":true,"units":[{"name":"Units.KM"},{"name":"Units.M","label":""},{"name":"Units.CM","label":"CM"},{"name":"Units.MM","label":"'"}]}`); diff --git a/core/quantity/src/test/Formatting.test.ts b/core/quantity/src/test/Formatting.test.ts index 215d28361061..2a90ebb3db7a 100644 --- a/core/quantity/src/test/Formatting.test.ts +++ b/core/quantity/src/test/Formatting.test.ts @@ -2,7 +2,7 @@ * Copyright (c) Bentley Systems, Incorporated. All rights reserved. * See LICENSE.md in the project root for license terms and full copyright notice. *--------------------------------------------------------------------------------------------*/ -import { assert, expect } from "chai"; +import { describe, expect, it } from "vitest"; import { QuantityError } from "../Exception"; import { Format } from "../Formatter/Format"; import { DecimalPrecision, FormatTraits, parseFormatTrait } from "../Formatter/FormatEnums"; @@ -22,7 +22,8 @@ describe("Formatting tests:", () => { const testFormat = new Format("test"); await testFormat.fromJSON(unitsProvider, json).catch((err) => { - assert.isTrue(err instanceof QuantityError && err.message === `The Format test has an invalid 'type' attribute.`); + expect(err).toBeInstanceOf(QuantityError); + expect(err.message).toEqual(`The Format test has an invalid 'type' attribute.`); }); }); @@ -37,7 +38,8 @@ describe("Formatting tests:", () => { const testFormat = new Format("test"); await testFormat.fromJSON(unitsProvider, json).catch((err) => { - assert.isTrue(err instanceof QuantityError && err.message === `The Format test does not have the required 'precision' attribute.`); + expect(err).toBeInstanceOf(QuantityError); + expect(err.message).toEqual(`The Format test does not have the required 'precision' attribute.`); }); }); @@ -53,7 +55,8 @@ describe("Formatting tests:", () => { const testFormat = new Format("test"); await testFormat.fromJSON(unitsProvider, json).catch((err) => { - assert.isTrue(err instanceof QuantityError && err.message === `The Format test has an invalid 'precision' attribute. It should be an integer.`); + expect(err).toBeInstanceOf(QuantityError); + expect(err.message).toEqual(`The Format test has an invalid 'precision' attribute. It should be an integer.`); }); }); @@ -69,7 +72,8 @@ describe("Formatting tests:", () => { const testFormat = new Format("test"); await testFormat.fromJSON(unitsProvider, json).catch((err) => { - assert.isTrue(err instanceof QuantityError && err.message === `The Format test has an invalid 'precision' attribute.`); + expect(err).toBeInstanceOf(QuantityError); + expect(err.message).toEqual(`The Format test has an invalid 'precision' attribute.`); }); }); @@ -86,7 +90,8 @@ describe("Formatting tests:", () => { const testFormat = new Format("test"); await testFormat.fromJSON(unitsProvider, json).catch((err) => { - assert.isTrue(err instanceof QuantityError && err.message === `The Format test has an invalid 'showSignOption' attribute.`); + expect(err).toBeInstanceOf(QuantityError); + expect(err.message).toEqual(`The Format test has an invalid 'showSignOption' attribute.`); }); }); @@ -102,7 +107,8 @@ describe("Formatting tests:", () => { const testFormat = new Format("test"); await testFormat.fromJSON(unitsProvider, json).catch((err) => { - assert.isTrue(err instanceof QuantityError && err.message === `The Format test has an invalid 'precision' attribute.`); + expect(err).toBeInstanceOf(QuantityError); + expect(err.message).toEqual(`The Format test has an invalid 'precision' attribute.`); }); }); @@ -118,7 +124,8 @@ describe("Formatting tests:", () => { const testFormat = new Format("test"); await testFormat.fromJSON(unitsProvider, json).catch((err) => { - assert.isTrue(err instanceof QuantityError && err.message === `The Format test has an invalid 'formatTraits' attribute.`); + expect(err).toBeInstanceOf(QuantityError); + expect(err.message).toEqual(`The Format test has an invalid 'formatTraits' attribute.`); }); }); @@ -165,7 +172,8 @@ describe("Formatting tests:", () => { const testFormat = new Format("test"); await testFormat.fromJSON(unitsProvider, json).catch((err) => { - assert.isTrue(err instanceof QuantityError && err.message === `The Format test has an invalid 'minWidth' attribute. It should be a positive integer.`); + expect(err).toBeInstanceOf(QuantityError); + expect(err.message).toEqual(`The Format test has an invalid 'minWidth' attribute. It should be a positive integer.`); }); }); @@ -182,7 +190,7 @@ describe("Formatting tests:", () => { const testFormat = new Format("test"); await testFormat.fromJSON(unitsProvider, json).catch(() => { - assert.isTrue(false); + expect.fail(); }); }); @@ -198,7 +206,8 @@ describe("Formatting tests:", () => { const testFormat = new Format("test"); await testFormat.fromJSON(unitsProvider, json).catch((err) => { - assert.isTrue(err instanceof QuantityError && err.message === `The Format test has an invalid 'decimalSeparator' attribute. It should be an empty or one character string.`); + expect(err).toBeInstanceOf(QuantityError); + expect(err.message).toEqual(`The Format test has an invalid 'decimalSeparator' attribute. It should be an empty or one character string.`); }); }); @@ -214,7 +223,7 @@ describe("Formatting tests:", () => { const testFormat = new Format("test"); await testFormat.fromJSON(unitsProvider, json).catch(() => { - assert.isTrue(false); + expect.fail(); }); }); @@ -230,7 +239,8 @@ describe("Formatting tests:", () => { const testFormat = new Format("test"); await testFormat.fromJSON(unitsProvider, json).catch((err) => { - assert.isTrue(err instanceof QuantityError && err.message === `The Format test has an invalid 'thousandSeparator' attribute. It should be an empty or one character string.`); + expect(err).toBeInstanceOf(QuantityError); + expect(err.message).toEqual(`The Format test has an invalid 'thousandSeparator' attribute. It should be an empty or one character string.`); }); }); @@ -246,7 +256,7 @@ describe("Formatting tests:", () => { const testFormat = new Format("test"); await testFormat.fromJSON(unitsProvider, json).catch(() => { - assert.isTrue(false); + expect.fail(); }); }); @@ -261,7 +271,8 @@ describe("Formatting tests:", () => { const testFormat = new Format("test"); await testFormat.fromJSON(unitsProvider, json).catch((err) => { - assert.isTrue(err instanceof QuantityError && err.message === `The Format test has an invalid 'uomSeparator' attribute. It should be an empty or one character string.`); + expect(err).toBeInstanceOf(QuantityError); + expect(err.message).toEqual(`The Format test has an invalid 'uomSeparator' attribute. It should be an empty or one character string.`); }); }); @@ -276,7 +287,7 @@ describe("Formatting tests:", () => { const testFormat = new Format("test"); await testFormat.fromJSON(unitsProvider, json).catch(() => { - assert.isTrue(false); + expect.fail(); }); }); @@ -293,7 +304,8 @@ describe("Formatting tests:", () => { const testFormat = new Format("test"); await testFormat.fromJSON(unitsProvider, json).catch((err) => { - assert.isTrue(err instanceof QuantityError && err.message === `The Format test has an invalid 'stationSeparator' attribute. It should be an empty or one character string.`); + expect(err).toBeInstanceOf(QuantityError); + expect(err.message).toEqual(`The Format test has an invalid 'stationSeparator' attribute. It should be an empty or one character string.`); }); }); @@ -310,7 +322,7 @@ describe("Formatting tests:", () => { const testFormat = new Format("test"); await testFormat.fromJSON(unitsProvider, json).catch(() => { - assert.isTrue(false); + expect.fail(); }); }); @@ -326,7 +338,8 @@ describe("Formatting tests:", () => { const testFormat = new Format("test"); await testFormat.fromJSON(unitsProvider, json).catch((err) => { - assert.isTrue(err instanceof QuantityError && err.message === `The Format test is 'Scientific' type therefore the attribute 'scientificType' is required.`); + expect(err).toBeInstanceOf(QuantityError); + expect(err.message).toEqual(`The Format test is 'Scientific' type therefore the attribute 'scientificType' is required.`); }); }); @@ -343,7 +356,8 @@ describe("Formatting tests:", () => { const testFormat = new Format("test"); await testFormat.fromJSON(unitsProvider, json).catch((err) => { - assert.isTrue(err instanceof QuantityError && err.message === `The Format test has an invalid 'scientificType' attribute.`); + expect(err).toBeInstanceOf(QuantityError); + expect(err.message).toEqual(`The Format test has an invalid 'scientificType' attribute.`); }); }); @@ -364,7 +378,8 @@ describe("Formatting tests:", () => { const testFormat = new Format("test"); await testFormat.fromJSON(unitsProvider, json).catch((err) => { - assert.isTrue(err instanceof QuantityError && err.message === `The Format test has a Composite with no valid 'units'`); + expect(err).toBeInstanceOf(QuantityError); + expect(err.message).toEqual(`The Format test has a Composite with no valid 'units'`); }); }); @@ -389,7 +404,8 @@ describe("Formatting tests:", () => { const testFormat = new Format("test"); await testFormat.fromJSON(unitsProvider, json).catch((err) => { - assert.isTrue(err instanceof QuantityError && err.message === `Invalid unit name 'Units.F'.`); + expect(err).toBeInstanceOf(QuantityError); + expect(err.message).toEqual(`Invalid unit name 'Units.F'.`); }); }); @@ -419,7 +435,8 @@ describe("Formatting tests:", () => { const testFormat = new Format("test"); await testFormat.fromJSON(unitsProvider, json).catch((err) => { - assert.isTrue(err instanceof QuantityError && err.message === `The unit Units.FT has a duplicate name.`); + expect(err).toBeInstanceOf(QuantityError); + expect(err.message).toEqual(`The unit Units.FT has a duplicate name.`); }); }); @@ -435,7 +452,8 @@ describe("Formatting tests:", () => { const testFormat = new Format("test"); await testFormat.fromJSON(unitsProvider, json).catch((err) => { - assert.isTrue(err instanceof QuantityError && err.message === `The Format test is 'Station' type therefore the attribute 'stationOffsetSize' is required.`); + expect(err).toBeInstanceOf(QuantityError); + expect(err.message).toEqual(`The Format test is 'Station' type therefore the attribute 'stationOffsetSize' is required.`); }); }); @@ -452,7 +470,8 @@ describe("Formatting tests:", () => { const testFormat = new Format("test"); await testFormat.fromJSON(unitsProvider, json).catch((err) => { - assert.isTrue(err instanceof QuantityError && err.message === `The Format test has an invalid 'stationOffsetSize' attribute. It should be a positive integer.`); + expect(err).toBeInstanceOf(QuantityError); + expect(err.message).toEqual(`The Format test has an invalid 'stationOffsetSize' attribute. It should be a positive integer.`); }); }); @@ -482,7 +501,8 @@ describe("Formatting tests:", () => { const testFormat = new Format("test"); await testFormat.fromJSON(unitsProvider, json).catch((err) => { - assert.isTrue(err instanceof QuantityError && err.message === `The Format test has a Composite with an invalid 'spacer' attribute. It should be an empty or one character string.`); + expect(err).toBeInstanceOf(QuantityError); + expect(err.message).toEqual(`The Format test has a Composite with an invalid 'spacer' attribute. It should be an empty or one character string.`); }); }); @@ -498,27 +518,27 @@ describe("Formatting tests:", () => { const testFormat = new Format("test"); await testFormat.fromJSON(unitsProvider, json); - assert.isTrue(testFormat.hasFormatTraitSet(FormatTraits.ApplyRounding)); - assert.isTrue(testFormat.hasFormatTraitSet(FormatTraits.ExponentOnlyNegative)); - assert.isTrue(testFormat.hasFormatTraitSet(FormatTraits.FractionDash)); - assert.isTrue(testFormat.hasFormatTraitSet(FormatTraits.KeepDecimalPoint)); - assert.isTrue(testFormat.hasFormatTraitSet(FormatTraits.KeepSingleZero)); - assert.isTrue(testFormat.hasFormatTraitSet(FormatTraits.PrependUnitLabel)); - assert.isTrue(testFormat.hasFormatTraitSet(FormatTraits.ShowUnitLabel)); - assert.isTrue(testFormat.hasFormatTraitSet(FormatTraits.TrailZeroes)); - assert.isTrue(testFormat.hasFormatTraitSet(FormatTraits.Use1000Separator)); - assert.isTrue(testFormat.hasFormatTraitSet(FormatTraits.ZeroEmpty)); + expect(testFormat.hasFormatTraitSet(FormatTraits.ApplyRounding)).to.be.true; + expect(testFormat.hasFormatTraitSet(FormatTraits.ExponentOnlyNegative)).to.be.true; + expect(testFormat.hasFormatTraitSet(FormatTraits.FractionDash)).to.be.true; + expect(testFormat.hasFormatTraitSet(FormatTraits.KeepDecimalPoint)).to.be.true; + expect(testFormat.hasFormatTraitSet(FormatTraits.KeepSingleZero)).to.be.true; + expect(testFormat.hasFormatTraitSet(FormatTraits.PrependUnitLabel)).to.be.true; + expect(testFormat.hasFormatTraitSet(FormatTraits.ShowUnitLabel)).to.be.true; + expect(testFormat.hasFormatTraitSet(FormatTraits.TrailZeroes)).to.be.true; + expect(testFormat.hasFormatTraitSet(FormatTraits.Use1000Separator)).to.be.true; + expect(testFormat.hasFormatTraitSet(FormatTraits.ZeroEmpty)).to.be.true; const outJson = testFormat.toJSON(); - assert.isTrue(outJson.formatTraits!.length === 10); + expect(outJson.formatTraits!.length).toEqual(10); // ensure we can modify const modifiedFormatProps = { ...outJson, formatTraits: ["keepSingleZero"], precision: 3 }; const modifiedFormat = new Format("modified"); await modifiedFormat.fromJSON(unitsProvider, modifiedFormatProps); - assert.isTrue(modifiedFormat.hasFormatTraitSet(FormatTraits.KeepSingleZero)); - assert.isFalse(modifiedFormat.hasFormatTraitSet(FormatTraits.ShowUnitLabel)); - assert.isTrue(modifiedFormat.precision === DecimalPrecision.Three); + expect(modifiedFormat.hasFormatTraitSet(FormatTraits.KeepSingleZero)).to.be.true; + expect(modifiedFormat.hasFormatTraitSet(FormatTraits.ShowUnitLabel)).to.be.false; + expect(modifiedFormat.precision).toEqual(DecimalPrecision.Three); }); it("Read/Write Empty Format Traits", async () => { @@ -533,19 +553,19 @@ describe("Formatting tests:", () => { const testFormat = new Format("test"); await testFormat.fromJSON(unitsProvider, json); - assert.isFalse(testFormat.hasFormatTraitSet(FormatTraits.ApplyRounding)); - assert.isFalse(testFormat.hasFormatTraitSet(FormatTraits.ExponentOnlyNegative)); - assert.isFalse(testFormat.hasFormatTraitSet(FormatTraits.FractionDash)); - assert.isFalse(testFormat.hasFormatTraitSet(FormatTraits.KeepDecimalPoint)); - assert.isFalse(testFormat.hasFormatTraitSet(FormatTraits.KeepSingleZero)); - assert.isFalse(testFormat.hasFormatTraitSet(FormatTraits.PrependUnitLabel)); - assert.isFalse(testFormat.hasFormatTraitSet(FormatTraits.ShowUnitLabel)); - assert.isFalse(testFormat.hasFormatTraitSet(FormatTraits.TrailZeroes)); - assert.isFalse(testFormat.hasFormatTraitSet(FormatTraits.Use1000Separator)); - assert.isFalse(testFormat.hasFormatTraitSet(FormatTraits.ZeroEmpty)); + expect(testFormat.hasFormatTraitSet(FormatTraits.ApplyRounding)).to.be.false; + expect(testFormat.hasFormatTraitSet(FormatTraits.ExponentOnlyNegative)).to.be.false; + expect(testFormat.hasFormatTraitSet(FormatTraits.FractionDash)).to.be.false; + expect(testFormat.hasFormatTraitSet(FormatTraits.KeepDecimalPoint)).to.be.false; + expect(testFormat.hasFormatTraitSet(FormatTraits.KeepSingleZero)).to.be.false; + expect(testFormat.hasFormatTraitSet(FormatTraits.PrependUnitLabel)).to.be.false; + expect(testFormat.hasFormatTraitSet(FormatTraits.ShowUnitLabel)).to.be.false; + expect(testFormat.hasFormatTraitSet(FormatTraits.TrailZeroes)).to.be.false; + expect(testFormat.hasFormatTraitSet(FormatTraits.Use1000Separator)).to.be.false; + expect(testFormat.hasFormatTraitSet(FormatTraits.ZeroEmpty)).to.be.false; const outJson = testFormat.toJSON(); - assert.isTrue(outJson.formatTraits!.length === 0); + expect(outJson.formatTraits!.length).toEqual(0); }); it("Load Formats from Json", async () => { @@ -726,25 +746,25 @@ describe("Formatting tests:", () => { const format = new Format("test"); await format.fromJSON(unitsProvider, formatData).catch(() => { }); if (formatData.hasOwnProperty("precision")) - assert.isTrue(format.precision === formatData.precision); - assert.isTrue(format.type.toUpperCase() === formatData.type.toUpperCase()); + expect(format.precision).toEqual(formatData.precision); + expect(format.type.toUpperCase()).toEqual(formatData.type.toUpperCase()); if (formatData.hasOwnProperty("uomSeparator")) - assert.isTrue(format.uomSeparator === formatData.uomSeparator); + expect(format.uomSeparator).toEqual(formatData.uomSeparator); for (const traitStr of formatData.formatTraits) { const traitToValidate = parseFormatTrait(traitStr, "format.test"); if (traitToValidate !== undefined) - assert.isTrue(format.hasFormatTraitSet(traitToValidate)); + expect(format.hasFormatTraitSet(traitToValidate)).to.be.true; } if (formatData.hasOwnProperty("composite")) { - assert.isTrue(format.hasUnits === true); - assert.isTrue(format.units!.length === formatData.composite!.units.length); + expect(format.hasUnits).to.be.true; + expect(format.units!.length).toEqual(formatData.composite!.units.length); } const jsonData = format.toJSON(); - assert.isTrue(jsonData.type.toUpperCase() === format.type.toUpperCase()); + expect(jsonData.type.toUpperCase()).toEqual(format.type.toUpperCase()); if (formatData.hasOwnProperty("showSignOption")) { - assert.isTrue(formatData.showSignOption!.toUpperCase() === jsonData.showSignOption!.toUpperCase()); + expect(formatData.showSignOption!.toUpperCase()).toEqual(jsonData.showSignOption!.toUpperCase()); } } }); @@ -765,16 +785,16 @@ describe("Formatting tests:", () => { ], }; - assert.isTrue(Format.isFormatTraitSetInProps(formatProps, FormatTraits.ApplyRounding)); - assert.isTrue(Format.isFormatTraitSetInProps(formatProps, FormatTraits.ExponentOnlyNegative)); - assert.isTrue(Format.isFormatTraitSetInProps(formatProps, FormatTraits.FractionDash)); - assert.isTrue(Format.isFormatTraitSetInProps(formatProps, FormatTraits.KeepDecimalPoint)); - assert.isTrue(Format.isFormatTraitSetInProps(formatProps, FormatTraits.KeepSingleZero)); - assert.isTrue(Format.isFormatTraitSetInProps(formatProps, FormatTraits.PrependUnitLabel)); - assert.isTrue(Format.isFormatTraitSetInProps(formatProps, FormatTraits.ShowUnitLabel)); - assert.isTrue(Format.isFormatTraitSetInProps(formatProps, FormatTraits.TrailZeroes) === false); - assert.isTrue(Format.isFormatTraitSetInProps(formatProps, FormatTraits.Use1000Separator)); - assert.isTrue(Format.isFormatTraitSetInProps(formatProps, FormatTraits.ZeroEmpty)); + expect(Format.isFormatTraitSetInProps(formatProps, FormatTraits.ApplyRounding)).to.be.true; + expect(Format.isFormatTraitSetInProps(formatProps, FormatTraits.ExponentOnlyNegative)).to.be.true; + expect(Format.isFormatTraitSetInProps(formatProps, FormatTraits.FractionDash)).to.be.true; + expect(Format.isFormatTraitSetInProps(formatProps, FormatTraits.KeepDecimalPoint)).to.be.true; + expect(Format.isFormatTraitSetInProps(formatProps, FormatTraits.KeepSingleZero)).to.be.true; + expect(Format.isFormatTraitSetInProps(formatProps, FormatTraits.PrependUnitLabel)).to.be.true; + expect(Format.isFormatTraitSetInProps(formatProps, FormatTraits.ShowUnitLabel)).to.be.true; + expect(Format.isFormatTraitSetInProps(formatProps, FormatTraits.TrailZeroes)).to.be.false; + expect(Format.isFormatTraitSetInProps(formatProps, FormatTraits.Use1000Separator)).to.be.true; + expect(Format.isFormatTraitSetInProps(formatProps, FormatTraits.ZeroEmpty)).to.be.true; }); it("isFormatTraitSetInProps works properly", () => { @@ -785,16 +805,16 @@ describe("Formatting tests:", () => { ], }; - assert.isFalse(Format.isFormatTraitSetInProps(formatProps, FormatTraits.ApplyRounding)); - assert.isFalse(Format.isFormatTraitSetInProps(formatProps, FormatTraits.ExponentOnlyNegative)); - assert.isFalse(Format.isFormatTraitSetInProps(formatProps, FormatTraits.FractionDash)); - assert.isFalse(Format.isFormatTraitSetInProps(formatProps, FormatTraits.KeepDecimalPoint)); - assert.isFalse(Format.isFormatTraitSetInProps(formatProps, FormatTraits.KeepSingleZero)); - assert.isFalse(Format.isFormatTraitSetInProps(formatProps, FormatTraits.PrependUnitLabel)); - assert.isFalse(Format.isFormatTraitSetInProps(formatProps, FormatTraits.ShowUnitLabel)); - assert.isFalse(Format.isFormatTraitSetInProps(formatProps, FormatTraits.Use1000Separator)); - assert.isFalse(Format.isFormatTraitSetInProps(formatProps, FormatTraits.ZeroEmpty)); - assert.isTrue(Format.isFormatTraitSetInProps(formatProps, FormatTraits.TrailZeroes)); + expect(Format.isFormatTraitSetInProps(formatProps, FormatTraits.ApplyRounding)).to.be.false; + expect(Format.isFormatTraitSetInProps(formatProps, FormatTraits.ExponentOnlyNegative)).to.be.false; + expect(Format.isFormatTraitSetInProps(formatProps, FormatTraits.FractionDash)).to.be.false; + expect(Format.isFormatTraitSetInProps(formatProps, FormatTraits.KeepDecimalPoint)).to.be.false; + expect(Format.isFormatTraitSetInProps(formatProps, FormatTraits.KeepSingleZero)).to.be.false; + expect(Format.isFormatTraitSetInProps(formatProps, FormatTraits.PrependUnitLabel)).to.be.false; + expect(Format.isFormatTraitSetInProps(formatProps, FormatTraits.ShowUnitLabel)).to.be.false; + expect(Format.isFormatTraitSetInProps(formatProps, FormatTraits.Use1000Separator)).to.be.false; + expect(Format.isFormatTraitSetInProps(formatProps, FormatTraits.ZeroEmpty)).to.be.false; + expect(Format.isFormatTraitSetInProps(formatProps, FormatTraits.TrailZeroes)).to.be.true; }); it("show old/optional trait format works properly", () => { @@ -803,16 +823,16 @@ describe("Formatting tests:", () => { formatTraits: "trailZeroes,keepSingleZero,zeroEmpty,keepDecimalPoint,applyRounding,fractionDash,showUnitLabel,prependUnitLabel,use1000Separator,exponentOnlyNegative", }; - assert.isTrue(Format.isFormatTraitSetInProps(formatProps, FormatTraits.ApplyRounding)); - assert.isTrue(Format.isFormatTraitSetInProps(formatProps, FormatTraits.ExponentOnlyNegative)); - assert.isTrue(Format.isFormatTraitSetInProps(formatProps, FormatTraits.FractionDash)); - assert.isTrue(Format.isFormatTraitSetInProps(formatProps, FormatTraits.KeepDecimalPoint)); - assert.isTrue(Format.isFormatTraitSetInProps(formatProps, FormatTraits.KeepSingleZero)); - assert.isTrue(Format.isFormatTraitSetInProps(formatProps, FormatTraits.PrependUnitLabel)); - assert.isTrue(Format.isFormatTraitSetInProps(formatProps, FormatTraits.ShowUnitLabel)); - assert.isTrue(Format.isFormatTraitSetInProps(formatProps, FormatTraits.TrailZeroes)); - assert.isTrue(Format.isFormatTraitSetInProps(formatProps, FormatTraits.Use1000Separator)); - assert.isTrue(Format.isFormatTraitSetInProps(formatProps, FormatTraits.ZeroEmpty)); + expect(Format.isFormatTraitSetInProps(formatProps, FormatTraits.ApplyRounding)).to.be.true; + expect(Format.isFormatTraitSetInProps(formatProps, FormatTraits.ExponentOnlyNegative)).to.be.true; + expect(Format.isFormatTraitSetInProps(formatProps, FormatTraits.FractionDash)).to.be.true; + expect(Format.isFormatTraitSetInProps(formatProps, FormatTraits.KeepDecimalPoint)).to.be.true; + expect(Format.isFormatTraitSetInProps(formatProps, FormatTraits.KeepSingleZero)).to.be.true; + expect(Format.isFormatTraitSetInProps(formatProps, FormatTraits.PrependUnitLabel)).to.be.true; + expect(Format.isFormatTraitSetInProps(formatProps, FormatTraits.ShowUnitLabel)).to.be.true; + expect(Format.isFormatTraitSetInProps(formatProps, FormatTraits.TrailZeroes)).to.be.true; + expect(Format.isFormatTraitSetInProps(formatProps, FormatTraits.Use1000Separator)).to.be.true; + expect(Format.isFormatTraitSetInProps(formatProps, FormatTraits.ZeroEmpty)).to.be.true; }); it("deserialization of custom Formats is consistent", async () => { @@ -834,11 +854,11 @@ describe("Formatting tests:", () => { // Assertions // eslint-disable-next-line guard-for-in for (const key in formatProps) { - assert(jsonObj.hasOwnProperty(key), `jsonObj is missing property ${key}`); + expect(jsonObj.hasOwnProperty(key)).to.be.true; const formatPropValue = formatProps[key as keyof FormatProps]; const jsonObjValue = jsonObj[key as keyof FormatProps]; - assert(typeof formatPropValue === typeof jsonObjValue, `Property ${key} types do not match`); + expect(typeof formatPropValue).toEqual(typeof jsonObjValue); if (Array.isArray(formatPropValue) && Array.isArray(jsonObjValue)) { expect(formatPropValue).to.have.members(jsonObjValue, `Property ${key} does not match`); } else { @@ -932,11 +952,11 @@ describe("Formatting tests:", () => { // Assertions // eslint-disable-next-line guard-for-in for (const key in formatProps) { - assert(jsonObj.hasOwnProperty(key), `jsonObj is missing property ${key}`); + expect(jsonObj.hasOwnProperty(key)).to.be.true; const formatPropValue = formatProps[key as keyof FormatProps]; const jsonObjValue = jsonObj[key as keyof FormatProps]; - assert(typeof formatPropValue === typeof jsonObjValue, `Property ${key} types do not match`); + expect(typeof formatPropValue).toEqual(typeof jsonObjValue); if (Array.isArray(formatPropValue) && Array.isArray(jsonObjValue)) { expect(formatPropValue).to.have.members(jsonObjValue, `Property ${key} does not match`); } else { diff --git a/core/quantity/src/test/NumericFormat.test.ts b/core/quantity/src/test/NumericFormat.test.ts index 1187579daf6a..fca5d7a53e96 100644 --- a/core/quantity/src/test/NumericFormat.test.ts +++ b/core/quantity/src/test/NumericFormat.test.ts @@ -2,7 +2,7 @@ * Copyright (c) Bentley Systems, Incorporated. All rights reserved. * See LICENSE.md in the project root for license terms and full copyright notice. *--------------------------------------------------------------------------------------------*/ -import { assert } from "chai"; +import { describe, expect, it } from "vitest"; import { Format } from "../Formatter/Format"; import { FormatterSpec } from "../Formatter/FormatterSpec"; import { Formatter } from "../Formatter/Formatter"; @@ -27,7 +27,7 @@ describe("Numeric Formats tests:", () => { const format = new Format("test"); await format.fromJSON(unitsProvider, formatData).catch(() => { }); - assert.isTrue(!format.hasUnits); + expect(format.hasUnits).to.be.false; const testQuantityData = [ { magnitude: -12.5416666666667, unit: { name: "Units.FT", label: "ft", contextId: "Units.LENGTH" }, result: "-12.5417 ft" }, @@ -45,7 +45,7 @@ describe("Numeric Formats tests:", () => { const spec = await FormatterSpec.create("test", format, unitsProvider, unit); const formattedValue = Formatter.formatQuantity(testEntry.magnitude, spec); - assert.strictEqual(formattedValue, testEntry.result); + expect(formattedValue).toEqual(testEntry.result); // eslint-disable-next-line no-console // console.log(testEntry.magnitude.toString() + " " + testEntry.unit.label + " => " + formattedValue); } @@ -65,7 +65,7 @@ describe("Numeric Formats tests:", () => { const format = new Format("test"); await format.fromJSON(unitsProvider, formatData).catch(() => { }); - assert.isTrue(!format.hasUnits); + expect(format.hasUnits).to.be.false; const testQuantityData = [ { magnitude: -12.5416666666667, unit: { name: "Units.FT", label: "ft", contextId: "Units.LENGTH" }, result: "-12.5417 ft" }, @@ -83,7 +83,7 @@ describe("Numeric Formats tests:", () => { const spec = await FormatterSpec.create("test", format, unitsProvider, unit); const formattedValue = Formatter.formatQuantity(testEntry.magnitude, spec); - assert.strictEqual(formattedValue, testEntry.result); + expect(formattedValue).toEqual(testEntry.result); // eslint-disable-next-line no-console // console.log(testEntry.magnitude.toString() + " " + testEntry.unit.label + " => " + formattedValue); } @@ -103,7 +103,7 @@ describe("Numeric Formats tests:", () => { const format = new Format("test"); await format.fromJSON(unitsProvider, formatData).catch(() => { }); - assert.isTrue(!format.hasUnits); + expect(format.hasUnits).to.be.false; const clonedFormat = format.clone({ showOnlyPrimaryUnit: true, @@ -126,7 +126,7 @@ describe("Numeric Formats tests:", () => { const spec = await FormatterSpec.create("test", clonedFormat, unitsProvider, unit); const formattedValue = Formatter.formatQuantity(testEntry.magnitude, spec); - assert.strictEqual(formattedValue, testEntry.result); + expect(formattedValue).toEqual(testEntry.result); // eslint-disable-next-line no-console // console.log(testEntry.magnitude.toString() + " " + testEntry.unit.label + " => " + formattedValue); } @@ -144,7 +144,7 @@ describe("Numeric Formats tests:", () => { const format = new Format("test"); await format.fromJSON(unitsProvider, formatData).catch(() => { }); - assert.isTrue(!format.hasUnits); + expect(format.hasUnits).to.be.false; const testQuantityData = [ { magnitude: -12.5416666666667, unit: { name: "Units.FT", label: "ft", contextId: "Units.LENGTH" }, result: "-ft 13" }, @@ -159,7 +159,7 @@ describe("Numeric Formats tests:", () => { const unit = new BasicUnit(testEntry.unit.name, testEntry.unit.label, testEntry.unit.contextId); const spec = await FormatterSpec.create("test", format, unitsProvider, unit); const formattedValue = Formatter.formatQuantity(testEntry.magnitude, spec); - assert.strictEqual(formattedValue, testEntry.result); + expect(formattedValue).toEqual(testEntry.result); // eslint-disable-next-line no-console // console.log(testEntry.magnitude.toString() + " " + testEntry.unit.label + " => " + formattedValue); } @@ -178,7 +178,7 @@ describe("Numeric Formats tests:", () => { const format = new Format("test"); await format.fromJSON(unitsProvider, formatData).catch(() => { }); - assert.isTrue(!format.hasUnits); + expect(format.hasUnits).to.be.false; const testQuantityData = [ { magnitude: -12.5416666666667, unit: { name: "Units.FT", label: "ft", contextId: "Units.LENGTH" }, result: "(ft 13)" }, @@ -192,7 +192,7 @@ describe("Numeric Formats tests:", () => { const unit = new BasicUnit(testEntry.unit.name, testEntry.unit.label, testEntry.unit.contextId); const spec = await FormatterSpec.create("test", format, unitsProvider, unit); const formattedValue = Formatter.formatQuantity(testEntry.magnitude, spec); - assert.strictEqual(formattedValue, testEntry.result); + expect(formattedValue).toEqual(testEntry.result); // eslint-disable-next-line no-console // console.log(testEntry.magnitude.toString() + " " + testEntry.unit.label + " => " + formattedValue); } @@ -211,7 +211,7 @@ describe("Numeric Formats tests:", () => { const format = new Format("test"); await format.fromJSON(unitsProvider, formatData).catch(() => { }); - assert.isTrue(!format.hasUnits); + expect(format.hasUnits).to.be.false; const testQuantityData = [ { magnitude: -12.5416666666667, unit: { name: "Units.FT", label: "ft", contextId: "Units.LENGTH" }, result: "-12.542 ft" }, @@ -227,7 +227,7 @@ describe("Numeric Formats tests:", () => { const unit = new BasicUnit(testEntry.unit.name, testEntry.unit.label, testEntry.unit.contextId); const spec = await FormatterSpec.create("test", format, unitsProvider, unit); const formattedValue = Formatter.formatQuantity(testEntry.magnitude, spec); - assert.strictEqual(formattedValue, testEntry.result); + expect(formattedValue).toEqual(testEntry.result); // eslint-disable-next-line no-console // console.log(testEntry.magnitude.toString() + " " + testEntry.unit.label + " => " + formattedValue); } @@ -246,7 +246,7 @@ describe("Numeric Formats tests:", () => { const format = new Format("test"); await format.fromJSON(unitsProvider, formatData).catch(() => { }); - assert.isTrue(!format.hasUnits); + expect(format.hasUnits).to.be.false; const testQuantityData = [ { magnitude: -12.5416666666667, unit: { name: "Units.FT", label: "ft", contextId: "Units.LENGTH" }, result: "12.542 ft" }, @@ -260,7 +260,7 @@ describe("Numeric Formats tests:", () => { const unit = new BasicUnit(testEntry.unit.name, testEntry.unit.label, testEntry.unit.contextId); const spec = await FormatterSpec.create("test", format, unitsProvider, unit); const formattedValue = Formatter.formatQuantity(testEntry.magnitude, spec); - assert.strictEqual(formattedValue, testEntry.result); + expect(formattedValue).toEqual(testEntry.result); // eslint-disable-next-line no-console // console.log(testEntry.magnitude.toString() + " " + testEntry.unit.label + " => " + formattedValue); } @@ -278,7 +278,7 @@ describe("Numeric Formats tests:", () => { const format = new Format("test"); await format.fromJSON(unitsProvider, formatData).catch(() => { }); - assert.isTrue(!format.hasUnits); + expect(format.hasUnits).to.be.false; const testQuantityData = [ { magnitude: -12.5416666666667, unit: { name: "Units.FT", label: "ft", contextId: "Units.LENGTH" }, result: "-13.0 ft" }, @@ -293,7 +293,7 @@ describe("Numeric Formats tests:", () => { const unit = new BasicUnit(testEntry.unit.name, testEntry.unit.label, testEntry.unit.contextId); const spec = await FormatterSpec.create("test", format, unitsProvider, unit); const formattedValue = Formatter.formatQuantity(testEntry.magnitude, spec); - assert.strictEqual(formattedValue, testEntry.result); + expect(formattedValue).toEqual(testEntry.result); // eslint-disable-next-line no-console // console.log(testEntry.magnitude.toString() + " " + testEntry.unit.label + " => " + formattedValue); } @@ -311,7 +311,7 @@ describe("Numeric Formats tests:", () => { const format = new Format("test"); await format.fromJSON(unitsProvider, formatData).catch(() => { }); - assert.isTrue(!format.hasUnits); + expect(format.hasUnits).to.be.false; const testQuantityData = [ { magnitude: -12.5416666666667, unit: { name: "Units.FT", label: "ft", contextId: "Units.LENGTH" }, result: "-12.54 ft" }, @@ -326,7 +326,7 @@ describe("Numeric Formats tests:", () => { const unit = new BasicUnit(testEntry.unit.name, testEntry.unit.label, testEntry.unit.contextId); const spec = await FormatterSpec.create("test", format, unitsProvider, unit); const formattedValue = Formatter.formatQuantity(testEntry.magnitude, spec); - assert.strictEqual(formattedValue, testEntry.result); + expect(formattedValue).toEqual(testEntry.result); // eslint-disable-next-line no-console // console.log(testEntry.magnitude.toString() + " " + testEntry.unit.label + " => " + formattedValue); } @@ -344,7 +344,7 @@ describe("Numeric Formats tests:", () => { const format = new Format("test"); await format.fromJSON(unitsProvider, formatData).catch(() => { }); - assert.isTrue(!format.hasUnits); + expect(format.hasUnits).to.be.false; const testQuantityData = [ { magnitude: -12.5416666666667, unit: { name: "Units.FT", label: "ft", contextId: "Units.LENGTH" }, result: "-12.54 ft" }, @@ -359,7 +359,7 @@ describe("Numeric Formats tests:", () => { const unit = new BasicUnit(testEntry.unit.name, testEntry.unit.label, testEntry.unit.contextId); const spec = await FormatterSpec.create("test", format, unitsProvider, unit); const formattedValue = Formatter.formatQuantity(testEntry.magnitude, spec); - assert.strictEqual(formattedValue, testEntry.result); + expect(formattedValue).toEqual(testEntry.result); } }); @@ -375,7 +375,7 @@ describe("Numeric Formats tests:", () => { const format = new Format("test"); await format.fromJSON(unitsProvider, formatData).catch(() => { }); - assert.isTrue(!format.hasUnits); + expect(format.hasUnits).to.be.false; const testQuantityData = [ { magnitude: -12.5416666666667, unit: { name: "Units.FT", label: "ft", contextId: "Units.LENGTH" }, result: "-12.54 ft" }, @@ -390,7 +390,7 @@ describe("Numeric Formats tests:", () => { const unit = new BasicUnit(testEntry.unit.name, testEntry.unit.label, testEntry.unit.contextId); const spec = await FormatterSpec.create("test", format, unitsProvider, unit); const formattedValue = Formatter.formatQuantity(testEntry.magnitude, spec); - assert.strictEqual(formattedValue, testEntry.result); + expect(formattedValue).toEqual(testEntry.result); // eslint-disable-next-line no-console // console.log(testEntry.magnitude.toString() + " " + testEntry.unit.label + " => " + formattedValue); } @@ -409,7 +409,7 @@ describe("Numeric Formats tests:", () => { const format = new Format("test"); await format.fromJSON(unitsProvider, formatData).catch(() => { }); - assert.isTrue(!format.hasUnits); + expect(format.hasUnits).to.be.false; const testQuantityData = [ { magnitude: -12.541e5, unit: { name: "Units.FT", label: "ft", contextId: "Units.LENGTH" }, result: "-0.1254e7 ft" }, @@ -423,7 +423,7 @@ describe("Numeric Formats tests:", () => { const unit = new BasicUnit(testEntry.unit.name, testEntry.unit.label, testEntry.unit.contextId); const spec = await FormatterSpec.create("test", format, unitsProvider, unit); const formattedValue = Formatter.formatQuantity(testEntry.magnitude, spec); - assert.strictEqual(formattedValue, testEntry.result); + expect(formattedValue).toEqual(testEntry.result); // eslint-disable-next-line no-console // console.log(testEntry.magnitude.toString() + " " + testEntry.unit.label + " => " + formattedValue); } @@ -442,7 +442,7 @@ describe("Numeric Formats tests:", () => { const format = new Format("test"); await format.fromJSON(unitsProvider, formatData).catch(() => { }); - assert.isTrue(!format.hasUnits); + expect(format.hasUnits).to.be.false; const testQuantityData = [ { magnitude: -12.541e5, unit: { name: "Units.FT", label: "ft", contextId: "Units.LENGTH" }, result: "-1.2541e6 ft" }, @@ -456,7 +456,7 @@ describe("Numeric Formats tests:", () => { const unit = new BasicUnit(testEntry.unit.name, testEntry.unit.label, testEntry.unit.contextId); const spec = await FormatterSpec.create("test", format, unitsProvider, unit); const formattedValue = Formatter.formatQuantity(testEntry.magnitude, spec); - assert.strictEqual(formattedValue, testEntry.result); + expect(formattedValue).toEqual(testEntry.result); // eslint-disable-next-line no-console // console.log(testEntry.magnitude.toString() + " " + testEntry.unit.label + " => " + formattedValue); } @@ -474,7 +474,7 @@ describe("Numeric Formats tests:", () => { const format = new Format("test"); await format.fromJSON(unitsProvider, formatData).catch(() => { }); - assert.isTrue(!format.hasUnits); + expect(format.hasUnits).to.be.false; const testQuantityData = [ { magnitude: -1.01e12, unit: { name: "Units.FT", label: "ft", contextId: "Units.LENGTH" }, result: "-1.01e12 ft" }, @@ -485,7 +485,7 @@ describe("Numeric Formats tests:", () => { const unit = new BasicUnit(testEntry.unit.name, testEntry.unit.label, testEntry.unit.contextId); const spec = await FormatterSpec.create("test", format, unitsProvider, unit); const formattedValue = Formatter.formatQuantity(testEntry.magnitude, spec); - assert.strictEqual(formattedValue, testEntry.result); + expect(formattedValue).toEqual(testEntry.result); } }); @@ -501,7 +501,7 @@ describe("Numeric Formats tests:", () => { const format = new Format("test"); await format.fromJSON(unitsProvider, formatData).catch(() => { }); - assert.isTrue(!format.hasUnits); + expect(format.hasUnits).to.be.false; const testQuantityData = [ { magnitude: 123.456, unit: { name: "Units.FT", label: "ft", contextId: "Units.LENGTH" }, result: "1+23.46" }, @@ -515,7 +515,7 @@ describe("Numeric Formats tests:", () => { const unit = new BasicUnit(testEntry.unit.name, testEntry.unit.label, testEntry.unit.contextId); const spec = await FormatterSpec.create("test", format, unitsProvider, unit); const formattedValue = Formatter.formatQuantity(testEntry.magnitude, spec); - assert.strictEqual(formattedValue, testEntry.result); + expect(formattedValue).toEqual(testEntry.result); // eslint-disable-next-line no-console // console.log(testEntry.magnitude.toString() + " " + testEntry.unit.label + " => " + formattedValue); } @@ -534,7 +534,7 @@ describe("Numeric Formats tests:", () => { const format = new Format("test"); await format.fromJSON(unitsProvider, formatData).catch(() => { }); - assert.isTrue(!format.hasUnits); + expect(format.hasUnits).to.be.false; const testQuantityData = [ { magnitude: 123.456, unit: { name: "Units.FT", label: "ft", contextId: "Units.LENGTH" }, result: "0+123.46" }, @@ -548,7 +548,7 @@ describe("Numeric Formats tests:", () => { const unit = new BasicUnit(testEntry.unit.name, testEntry.unit.label, testEntry.unit.contextId); const spec = await FormatterSpec.create("test", format, unitsProvider, unit); const formattedValue = Formatter.formatQuantity(testEntry.magnitude, spec); - assert.strictEqual(formattedValue, testEntry.result); + expect(formattedValue).toEqual(testEntry.result); // eslint-disable-next-line no-console // console.log(testEntry.magnitude.toString() + " " + testEntry.unit.label + " => " + formattedValue); } @@ -567,7 +567,7 @@ describe("Numeric Formats tests:", () => { const format = new Format("test"); await format.fromJSON(unitsProvider, formatData).catch(() => { }); - assert.isTrue(!format.hasUnits); + expect(format.hasUnits).to.be.false; const testQuantityData = [ { magnitude: 123.456, unit: { name: "Units.FT", label: "ft", contextId: "Units.LENGTH" }, result: "0+123.46" }, @@ -581,7 +581,7 @@ describe("Numeric Formats tests:", () => { const unit = new BasicUnit(testEntry.unit.name, testEntry.unit.label, testEntry.unit.contextId); const spec = await FormatterSpec.create("test", format, unitsProvider, unit); const formattedValue = Formatter.formatQuantity(testEntry.magnitude, spec); - assert.strictEqual(formattedValue, testEntry.result); + expect(formattedValue).toEqual(testEntry.result); // eslint-disable-next-line no-console // console.log(testEntry.magnitude.toString() + " " + testEntry.unit.label + " => " + formattedValue); } @@ -599,7 +599,7 @@ describe("Numeric Formats tests:", () => { const format = new Format("test"); await format.fromJSON(unitsProvider, formatData).catch(() => { }); - assert.isTrue(!format.hasUnits); + expect(format.hasUnits).to.be.false; const testQuantityData = [ { magnitude: -12.125, unit: { name: "Units.FT", label: "ft", contextId: "Units.LENGTH" }, result: "-12-1/8 ft" }, @@ -617,7 +617,7 @@ describe("Numeric Formats tests:", () => { const unit = new BasicUnit(testEntry.unit.name, testEntry.unit.label, testEntry.unit.contextId); const spec = await FormatterSpec.create("test", format, unitsProvider, unit); const formattedValue = Formatter.formatQuantity(testEntry.magnitude, spec); - assert.strictEqual(formattedValue, testEntry.result); + expect(formattedValue).toEqual(testEntry.result); // eslint-disable-next-line no-console // console.log(testEntry.magnitude.toString() + " " + testEntry.unit.label + " => " + formattedValue); } @@ -635,7 +635,7 @@ describe("Numeric Formats tests:", () => { const format = new Format("test"); await format.fromJSON(unitsProvider, formatData).catch(() => { }); - assert.isTrue(!format.hasUnits); + expect(format.hasUnits).to.be.false; const clonedFormat = format.clone({ showOnlyPrimaryUnit: true, @@ -659,7 +659,7 @@ describe("Numeric Formats tests:", () => { const unit = new BasicUnit(testEntry.unit.name, testEntry.unit.label, testEntry.unit.contextId); const spec = await FormatterSpec.create("test", clonedFormat, unitsProvider, unit); const formattedValue = Formatter.formatQuantity(testEntry.magnitude, spec); - assert.strictEqual(formattedValue, testEntry.result); + expect(formattedValue).toEqual(testEntry.result); // eslint-disable-next-line no-console // console.log(`${testEntry.magnitude.toString()} ${testEntry.unit.label} => ${formattedValue}`); } @@ -677,7 +677,7 @@ describe("Numeric Formats tests:", () => { const format = new Format("test"); await format.fromJSON(unitsProvider, formatData).catch(() => { }); - assert.isTrue(!format.hasUnits); + expect(format.hasUnits).to.be.false; const clonedFormat = format.clone({ showOnlyPrimaryUnit: true, @@ -701,7 +701,7 @@ describe("Numeric Formats tests:", () => { const unit = new BasicUnit(testEntry.unit.name, testEntry.unit.label, testEntry.unit.contextId); const spec = await FormatterSpec.create("test", clonedFormat, unitsProvider, unit); const formattedValue = Formatter.formatQuantity(testEntry.magnitude, spec); - assert.strictEqual(formattedValue, testEntry.result); + expect(formattedValue).toEqual(testEntry.result); // eslint-disable-next-line no-console // console.log(`${testEntry.magnitude.toString()} ${testEntry.unit.label} => ${formattedValue}`); } @@ -719,7 +719,7 @@ describe("Numeric Formats tests:", () => { const format = new Format("test"); await format.fromJSON(unitsProvider, formatData).catch(() => { }); - assert.isTrue(!format.hasUnits); + expect(format.hasUnits).to.be.false; const primaryUnit: UnitProps = { name: "Units.FT", @@ -740,7 +740,7 @@ describe("Numeric Formats tests:", () => { }, }); - assert.strictEqual(clonedFormat.units?.length, 1); - assert.strictEqual(clonedFormat.units![0][1], "foot"); + expect(clonedFormat.units?.length).toEqual(1); + expect(clonedFormat.units![0][1]).toEqual("foot"); }); }); diff --git a/core/quantity/src/test/Parsing.test.ts b/core/quantity/src/test/Parsing.test.ts index 0ace09cc6587..5e0cac08d018 100644 --- a/core/quantity/src/test/Parsing.test.ts +++ b/core/quantity/src/test/Parsing.test.ts @@ -2,7 +2,7 @@ * Copyright (c) Bentley Systems, Incorporated. All rights reserved. * See LICENSE.md in the project root for license terms and full copyright notice. *--------------------------------------------------------------------------------------------*/ -import { assert, expect } from "chai"; +import { describe, expect, it} from "vitest"; import { Format } from "../Formatter/Format"; import { FormatterSpec } from "../Formatter/FormatterSpec"; import { Formatter } from "../Formatter/Formatter"; @@ -18,16 +18,16 @@ const logTestOutput = false; describe("Parsing tests:", () => { it("Bad unit", async () => { const testUnit: UnitProps = new BadUnit(); - assert.isTrue(testUnit.name.length === 0); - assert.isTrue(testUnit.label.length === 0); - assert.isTrue(testUnit.phenomenon.length === 0); - assert.isTrue(testUnit.isValid === false); + expect(testUnit.name.length).toEqual(0); + expect(testUnit.label.length).toEqual(0); + expect(testUnit.phenomenon.length).toEqual(0); + expect(testUnit.isValid).to.be.false; }); it("Quantity constructor", async () => { const noUnitQty = new Quantity(); - assert.isTrue(noUnitQty.magnitude === 0); - assert.isTrue(noUnitQty.isValid === false); + expect(noUnitQty.magnitude).toEqual(0); + expect(noUnitQty.isValid).to.be.false; }); it("Quantity convert Meters to inches", async () => { @@ -38,8 +38,8 @@ describe("Parsing tests:", () => { const conversion = await unitsProvider.getConversion(meterUnit, inchUnit); const inchesQty = meterQty.convertTo(inchUnit, conversion); - assert.isTrue(meterQty.magnitude === 1.0); - assert.isTrue(inchesQty!.magnitude === meterQty.magnitude * conversion.factor); + expect(meterQty.magnitude).toEqual(1.0); + expect(inchesQty!.magnitude).toEqual(meterQty.magnitude * conversion.factor); }); it("Convert units", async () => { @@ -60,7 +60,7 @@ describe("Parsing tests:", () => { for (const toVal of tstVal.cvtTo) { const toUnit = await unitsProvider.findUnit(toVal.label, fromUnit.phenomenon); const conversionData = await unitsProvider.getConversion(fromUnit, toUnit); - assert.isTrue(Math.fround(conversionData.factor) === toVal.factor); + expect(Math.fround(conversionData.factor)).toEqual(toVal.factor); } } }); @@ -94,10 +94,10 @@ describe("Parsing tests:", () => { let i = 0; for (const test of tests) { const tokens = Parser.parseQuantitySpecification(test.input, format); - assert.isTrue(tokens.length === test.expectedTokens.length); + expect(tokens.length).toEqual(test.expectedTokens.length); for (let j = 0; j < tokens.length; j++) { - assert.isTrue(tokens[j].value === test.expectedTokens[j].value); + expect(tokens[j].value).toEqual(test.expectedTokens[j].value); } i = i + 1; @@ -128,11 +128,11 @@ describe("Parsing tests:", () => { let i = 0; for (const test of tests) { const tokens = Parser.parseQuantitySpecification(test.input, format); - assert.isTrue(tokens.length === test.expectedTokens.length); + expect(tokens.length).toEqual(test.expectedTokens.length); // eslint-disable-next-line @typescript-eslint/prefer-for-of for (let j = 0; j < tokens.length; j++) { - assert.isTrue(tokens[j].value === test.expectedTokens[j].value); + expect(tokens[j].value).toEqual(test.expectedTokens[j].value); } i = i + 1; @@ -156,7 +156,7 @@ describe("Parsing tests:", () => { for (const lookupEntry of expectedLookupResults) { const unit = await unitProvider.findUnit(lookupEntry.label, (lookupEntry.unitContext.length > 0) ? lookupEntry.unitContext : undefined); - assert.isTrue(unit.name === lookupEntry.name); + expect(unit.name).toEqual(lookupEntry.name); } }); @@ -178,7 +178,7 @@ describe("Parsing tests:", () => { for (const toVal of tstVal.cvtTo) { const toUnit = await unitsProvider.findUnit(toVal.label, fromUnit.phenomenon); const conversionData = await unitsProvider.getConversion(fromUnit, toUnit); - assert.isTrue(Math.fround(conversionData.factor) === toVal.factor); + expect(Math.fround(conversionData.factor)).toEqual(toVal.factor); } } }); @@ -220,13 +220,13 @@ describe("Parsing tests:", () => { const unitsProvider = new TestUnitsProvider(); const format = new Format("test"); await format.fromJSON(unitsProvider, formatData).catch(() => { }); - assert.isTrue(format.hasUnits); + expect(format.hasUnits).to.be.true; for (const testEntry of testData) { const quantityProps = await Parser.parseIntoQuantity(testEntry.value, format, unitsProvider); // console.log (`quantityProps=${JSON.stringify(quantityProps)}`); - expect(Math.fround(quantityProps.magnitude)).to.eql(Math.fround(testEntry.quantity.magnitude)); - expect(quantityProps.unit.name).to.eql(testEntry.quantity.unitName); + expect(Math.fround(quantityProps.magnitude)).toEqual(Math.fround(testEntry.quantity.magnitude)); + expect(quantityProps.unit.name).toEqual(testEntry.quantity.unitName); } }); @@ -258,8 +258,8 @@ describe("Parsing tests:", () => { for (const testEntry of testData) { const quantityProps = await Parser.parseIntoQuantity(testEntry.value, format, unitsProvider); // console.log (`quantityProps=${JSON.stringify(quantityProps)}`); - expect(Math.fround(quantityProps.magnitude)).to.eql(Math.fround(testEntry.quantity.magnitude)); - expect(quantityProps.unit.name).to.eql(testEntry.quantity.unitName); + expect(Math.fround(quantityProps.magnitude)).toEqual(Math.fround(testEntry.quantity.magnitude)); + expect(quantityProps.unit.name).toEqual(testEntry.quantity.unitName); } }); @@ -296,12 +296,12 @@ describe("Parsing tests:", () => { const unitsProvider = new TestUnitsProvider(); const format = new Format("test"); await format.fromJSON(unitsProvider, formatData).catch(() => { }); - assert.isTrue(format.hasUnits); + expect(format.hasUnits).to.be.true; for (const testEntry of testData) { const quantityProps = await Parser.parseIntoQuantity(testEntry.value, format, unitsProvider); - assert.isTrue(Math.fround(quantityProps.magnitude) === Math.fround(testEntry.quantity.magnitude)); - assert.isTrue(quantityProps.unit.name === testEntry.quantity.unitName); + expect(Math.fround(quantityProps.magnitude)).toEqual(Math.fround(testEntry.quantity.magnitude)); + expect(quantityProps.unit.name).toEqual(testEntry.quantity.unitName); } }); @@ -337,12 +337,12 @@ describe("Parsing tests:", () => { const format = new Format("test"); await format.fromJSON(unitsProvider, formatData).catch(() => { }); - assert.isTrue(format.hasUnits); + expect(format.hasUnits).to.be.true; for (const testEntry of testData) { const quantityProps = await Parser.parseIntoQuantity(testEntry.value, format, unitsProvider); - assert.isTrue(Math.fround(quantityProps.magnitude) === Math.fround(testEntry.quantity.magnitude)); - assert.isTrue(quantityProps.unit.name === testEntry.quantity.unitName); + expect(Math.fround(quantityProps.magnitude)).toEqual(Math.fround(testEntry.quantity.magnitude)); + expect(quantityProps.unit.name).toEqual(testEntry.quantity.unitName); } }); @@ -383,12 +383,12 @@ describe("Parsing tests:", () => { const unitsProvider = new TestUnitsProvider(); const format = new Format("test"); await format.fromJSON(unitsProvider, formatData).catch(() => { }); - assert.isTrue(format.hasUnits); + expect(format.hasUnits).to.be.true; for (const testEntry of testData) { const quantityProps = await Parser.parseIntoQuantity(testEntry.value, format, unitsProvider); - assert.isTrue(Math.fround(quantityProps.magnitude) === Math.fround(testEntry.quantity.magnitude)); - assert.isTrue(quantityProps.unit.name === testEntry.quantity.unitName); + expect(Math.fround(quantityProps.magnitude)).toEqual(Math.fround(testEntry.quantity.magnitude)); + expect(quantityProps.unit.name).toEqual(testEntry.quantity.unitName); } }); @@ -414,12 +414,12 @@ describe("Parsing tests:", () => { const unitsProvider = new TestUnitsProvider(); const format = new Format("test"); await format.fromJSON(unitsProvider, formatData).catch(() => { }); - assert.isTrue(!format.hasUnits); + expect(format.hasUnits).to.be.false; for (const testEntry of testData) { const quantityProps = await Parser.parseIntoQuantity(testEntry.value, format, unitsProvider); - assert.isTrue(Math.fround(quantityProps.magnitude) === Math.fround(testEntry.quantity.magnitude)); - assert.isTrue(quantityProps.unit.name === testEntry.quantity.unitName); + expect(Math.fround(quantityProps.magnitude)).toEqual(Math.fround(testEntry.quantity.magnitude)); + expect(quantityProps.unit.name).toEqual(testEntry.quantity.unitName); } }); @@ -452,7 +452,7 @@ describe("Parsing tests:", () => { const unitsAndAltLabelsProvider = new TestUnitsProvider(); const format = new Format("test"); await format.fromJSON(unitsAndAltLabelsProvider, formatData).catch(() => { }); - assert.isTrue(format.hasUnits); + expect(format.hasUnits).to.be.true; const persistenceUnit = await unitsAndAltLabelsProvider.findUnitByName("Units.M"); @@ -494,7 +494,7 @@ describe("Parsing tests:", () => { const unitsProvider = new TestUnitsProvider(); const format = new Format("test"); await format.fromJSON(unitsProvider, formatData).catch(() => { }); - assert.isTrue(format.hasUnits); + expect(format.hasUnits).to.be.true; for (const testEntry of testData) { const quantityProps = await Parser.parseIntoQuantity(testEntry.value, format, unitsProvider); @@ -546,8 +546,8 @@ describe("Parsing tests:", () => { for (const testEntry of testData) { const quantityProps = await Parser.parseIntoQuantity(testEntry.value, format, unitsProvider); // console.log (`quantityProps=${JSON.stringify(quantityProps)}`); - expect(Math.fround(quantityProps.magnitude)).to.eql(Math.fround(testEntry.quantity.magnitude)); - expect(quantityProps.unit.name).to.eql(testEntry.quantity.unitName); + expect(Math.fround(quantityProps.magnitude)).toEqual(Math.fround(testEntry.quantity.magnitude)); + expect(quantityProps.unit.name).toEqual(testEntry.quantity.unitName); } }); @@ -591,8 +591,8 @@ describe("Parsing tests:", () => { for (const testEntry of testData) { const quantityProps = await Parser.parseIntoQuantity(testEntry, format, unitsProvider); - expect(quantityProps.isValid).to.eql(false); - expect(quantityProps.magnitude).to.eql(0); + expect(quantityProps.isValid).to.be.false; + expect(quantityProps.magnitude).toEqual(0); } }); @@ -695,7 +695,7 @@ describe("Synchronous Parsing tests:", async () => { else if (Parser.isParseError(parseResult)) console.log(`input=${testEntry.value} error=${parseResult.error}`); // eslint-disable-line no-console } - assert.isTrue(Parser.isParsedQuantity(parseResult)); + expect(Parser.isParsedQuantity(parseResult)).to.be.true; if (Parser.isParsedQuantity(parseResult)) expect(parseResult.value).closeTo(testEntry.magnitude, 0.0001); } @@ -745,9 +745,9 @@ describe("Synchronous Parsing tests:", async () => { else if (Parser.isParseError(parseResult)) console.log(`input=${testEntry} error=${parseResult.error}`); // eslint-disable-line no-console } - assert.isTrue(Parser.isParseError(parseResult)); + expect(Parser.isParseError(parseResult)).to.be.true; if (Parser.isParseError(parseResult)) - expect(parseResult.error).to.eql(ParseError.MathematicOperationFoundButIsNotAllowed); + expect(parseResult.error).toEqual(ParseError.MathematicOperationFoundButIsNotAllowed); } }); @@ -785,7 +785,7 @@ describe("Synchronous Parsing tests:", async () => { else if (Parser.isParseError(parseResult)) console.log(`input=${testEntry.value} error=${parseResult.error}`); // eslint-disable-line no-console } - assert.isTrue(Parser.isParsedQuantity(parseResult)); + expect(Parser.isParsedQuantity(parseResult)).to.be.true; if (Parser.isParsedQuantity(parseResult)) expect(parseResult.value).closeTo(testEntry.magnitude, 0.0001); } @@ -836,7 +836,7 @@ describe("Synchronous Parsing tests:", async () => { else if (Parser.isParseError(parseResult)) console.log(`input=${testEntry.value} error=${parseResult.error}`); // eslint-disable-line no-console } - assert.isTrue(Parser.isParsedQuantity(parseResult)); + expect(Parser.isParsedQuantity(parseResult)).to.be.true; if (Parser.isParsedQuantity(parseResult)) expect(parseResult.value).closeTo(testEntry.magnitude, 0.0001); } @@ -877,7 +877,7 @@ describe("Synchronous Parsing tests:", async () => { for (const testEntry of testData) { const parseResult = Parser.parseQuantityString(testEntry.value, parserSpec); - assert.isTrue(Parser.isParsedQuantity(parseResult)); + expect(Parser.isParsedQuantity(parseResult)).to.be.true; if (Parser.isParsedQuantity(parseResult)) { if (logTestOutput) { // eslint-disable-next-line no-console @@ -911,7 +911,7 @@ describe("Synchronous Parsing tests:", async () => { for (const testEntry of testData) { const parseResult = Parser.parseQuantityString(testEntry.value, angleParserSpec); - assert.isTrue(Parser.isParsedQuantity(parseResult)); + expect(Parser.isParsedQuantity(parseResult)).to.be.true; if (Parser.isParsedQuantity(parseResult)) { if (logTestOutput) { // eslint-disable-next-line no-console diff --git a/core/quantity/vitest.config.mts b/core/quantity/vitest.config.mts new file mode 100644 index 000000000000..7ab32697945d --- /dev/null +++ b/core/quantity/vitest.config.mts @@ -0,0 +1,24 @@ +import { coverageConfigDefaults, defineConfig } from 'vitest/config'; +export default defineConfig({ + test: { + dir: "src", + coverage: { + provider: "v8", + include: [ + "src/**/*" + ], + exclude: [ + ...coverageConfigDefaults.exclude, + "src/test/**/*", + "**/*.d.ts", + "**/*.d.tsx" + ], + reporter: [ + "text-summary", + "lcov", + "cobertura" + ], + reportsDirectory: "./lib/cjs/test/coverage", + } + } +}) From 2467fd3d32a44bd95020a0f870529f8677f4de89 Mon Sep 17 00:00:00 2001 From: anmolshres98 Date: Sat, 19 Oct 2024 19:01:21 +0545 Subject: [PATCH 2/7] stage other test files --- core/quantity/src/test/Quantity.test.ts | 2 +- core/quantity/src/test/Ratio.test.ts | 62 ++++++++++++------------- 2 files changed, 32 insertions(+), 32 deletions(-) diff --git a/core/quantity/src/test/Quantity.test.ts b/core/quantity/src/test/Quantity.test.ts index a631e508d64b..30c8d7a43332 100644 --- a/core/quantity/src/test/Quantity.test.ts +++ b/core/quantity/src/test/Quantity.test.ts @@ -2,7 +2,7 @@ * Copyright (c) Bentley Systems, Incorporated. All rights reserved. * See LICENSE.md in the project root for license terms and full copyright notice. *--------------------------------------------------------------------------------------------*/ -import { expect } from "chai"; +import { describe, expect, it } from "vitest"; import { almostEqual } from "../Quantity"; describe("Quantity", () => { diff --git a/core/quantity/src/test/Ratio.test.ts b/core/quantity/src/test/Ratio.test.ts index c1940b33128d..46a2f00415cb 100644 --- a/core/quantity/src/test/Ratio.test.ts +++ b/core/quantity/src/test/Ratio.test.ts @@ -1,4 +1,4 @@ -import { assert, expect } from "chai"; +import { assert, describe, expect, it } from "vitest"; import { Format } from "../Formatter/Format"; import { Formatter } from "../Formatter/Formatter"; @@ -34,11 +34,11 @@ describe("Ratio format tests", () => { const unitsProvider = new TestUnitsProvider(); const ratioFormat = new Format("Ratio"); - await ratioFormat.fromJSON(unitsProvider, ratioJson).catch(() => {}); - assert.isTrue(ratioFormat.hasUnits); + await ratioFormat.fromJSON(unitsProvider, ratioJson).catch(() => { }); + expect(ratioFormat.hasUnits).to.be.true; const persistenceUnit: UnitProps = await unitsProvider.findUnitByName(persistenceUnitStr); - assert.isTrue(persistenceUnit.isValid); + expect(persistenceUnit.isValid).to.be.true; const ratioFormatterSpec = await FormatterSpec.create(`${ratioType}`, ratioFormat, unitsProvider, persistenceUnit); // persisted unit const ratioParser = await ParserSpec.create(ratioFormat, unitsProvider, persistenceUnit); // persistence unit @@ -132,11 +132,11 @@ describe("Ratio format tests", () => { { magnitude: 3, ratio: "1:0.333", precision: 3 }, { magnitude: 3, ratio: "1:0.3333", precision: 4 }, - { magnitude: 0.667, ratio: "1:1.49925", precision: 5}, - { magnitude: 0.667, ratio: "1:1.4993", precision: 4}, - { magnitude: 0.667, ratio: "1:1.499", precision: 3}, - { magnitude: 0.667, ratio: "1:1.5", precision: 2}, - { magnitude: 0.667, ratio: "1:1.5", precision: 1}, + { magnitude: 0.667, ratio: "1:1.49925", precision: 5 }, + { magnitude: 0.667, ratio: "1:1.4993", precision: 4 }, + { magnitude: 0.667, ratio: "1:1.499", precision: 3 }, + { magnitude: 0.667, ratio: "1:1.5", precision: 2 }, + { magnitude: 0.667, ratio: "1:1.5", precision: 1 }, ]; await testRatioType("OneToN", testData); }); @@ -180,9 +180,9 @@ describe("Ratio format tests", () => { try { await ratioFormat.fromJSON(unitsProvider, ratioJson); expect.fail("Expected error was not thrown"); - } catch (e: any){ - assert.strictEqual(e.message, "The Format Ratio is 'Ratio' type therefore the attribute 'ratioType' is required."); - assert.instanceOf(e, QuantityError); + } catch (e: any) { + expect(e.message).toEqual("The Format Ratio is 'Ratio' type therefore the attribute 'ratioType' is required."); + expect(e).toBeInstanceOf(QuantityError); } }); @@ -203,9 +203,9 @@ describe("Ratio format tests", () => { try { await ratioFormat.fromJSON(unitsProvider, ratioJson); expect.fail("Expected error was not thrown"); - } catch (e: any){ - assert.strictEqual(e.message, "The Format Ratio has an invalid 'ratioType' attribute."); - assert.instanceOf(e, QuantityError); + } catch (e: any) { + expect(e.message).toEqual("The Format Ratio has an invalid 'ratioType' attribute."); + expect(e).toBeInstanceOf(QuantityError); } }); @@ -250,8 +250,8 @@ describe("Ratio format tests", () => { const testData: TestData[] = [ { magnitude: 1.0 / 7, ratio: "143:1000" }, { magnitude: 2.0 / 7, ratio: "143:500" }, // comes down from 286:1000 - { magnitude: 1.0 / 7, ratio: "1429:10000", precision: 4}, - { magnitude: 2.0 / 7, ratio: "2857:10000", precision: 4}, + { magnitude: 1.0 / 7, ratio: "1429:10000", precision: 4 }, + { magnitude: 2.0 / 7, ratio: "2857:10000", precision: 4 }, ]; await testRatioType("useGreatestCommonDivisor", testData); }); @@ -280,17 +280,17 @@ describe("Ratio format tests", () => { assert.fail("Failed to create ratio format from JSON"); } - assert.isTrue(ratioFormat.hasUnits, "Ratio format should have units"); + expect(ratioFormat.hasUnits).to.be.true; const persistenceUnit: UnitProps = await unitsProvider.findUnitByName(persistenceUnitStr); - assert.isTrue(persistenceUnit.isValid, "Persistence unit should be valid"); + expect(persistenceUnit.isValid).to.be.true; const ratioParser = await ParserSpec.create(ratioFormat, unitsProvider, persistenceUnit); for (const entry of testData) { const parserRatioResult = Parser.parseQuantityString(entry.ratio, ratioParser); if (entry.parseError) { // if it is expecting an error - assert.isTrue(Parser.isParseError(parserRatioResult)); + expect(Parser.isParseError(parserRatioResult)).to.be.true; // Check if parserRatioResult has the err property, which signifies a ParseQuantityError if ("error" in parserRatioResult) expect(parserRatioResult.error).to.equal(entry.parseError); @@ -330,10 +330,10 @@ describe("Ratio format tests", () => { { magnitude: 1.0, ratio: "10:0", parseError: ParseError.MathematicOperationFoundButIsNotAllowed }, { magnitude: 1.0, ratio: "", parseError: ParseError.NoValueOrUnitFoundInString }, - { magnitude: 1.0, ratio: "1:", parseError: ParseError.NoValueOrUnitFoundInString}, - { magnitude: 1.0, ratio: "1:A", parseError: ParseError.NoValueOrUnitFoundInString}, + { magnitude: 1.0, ratio: "1:", parseError: ParseError.NoValueOrUnitFoundInString }, + { magnitude: 1.0, ratio: "1:A", parseError: ParseError.NoValueOrUnitFoundInString }, - { magnitude: 1.0, ratio: "1:2:3", parseError: ParseError.UnableToConvertParseTokensToQuantity}, + { magnitude: 1.0, ratio: "1:2:3", parseError: ParseError.UnableToConvertParseTokensToQuantity }, ]; await testRatioParser(testData); }); @@ -392,21 +392,21 @@ describe("Ratio format tests", () => { const unitsProvider = new TestUnitsProvider(); const vphRatioFormat = new Format("VpH"); await vphRatioFormat.fromJSON(unitsProvider, vphRatioFormatJson); - assert.isTrue(vphRatioFormat.hasUnits); + expect(vphRatioFormat.hasUnits).to.be.true; const hvpRatioFormat = new Format("HpV"); await hvpRatioFormat.fromJSON(unitsProvider, hpvRatioFormatJson); - assert.isTrue(hvpRatioFormat.hasUnits); + expect(hvpRatioFormat.hasUnits).to.be.true; const vH: UnitProps = await unitsProvider.findUnitByName("Units.VERTICAL_PER_HORIZONTAL"); - assert.isTrue(vH.isValid); + expect(vH.isValid).to.be.true; const hV: UnitProps = await unitsProvider.findUnitByName("Units.HORIZONTAL_PER_VERTICAL"); - assert.isTrue(hV.isValid); + expect(hV.isValid).to.be.true; - const vphToVphFormatter = await FormatterSpec.create("vph_to_vph_formatter", vphRatioFormat, unitsProvider,vH); - const hpvToVphFormatter = await FormatterSpec.create("hvp_to_vph_formatter", vphRatioFormat, unitsProvider,hV); - const vphToHpvFormatter = await FormatterSpec.create("vph_to_hpv_formatter", hvpRatioFormat, unitsProvider,vH); - const hpvToHpvFormatter = await FormatterSpec.create("hpv_to_hpv_formatter", hvpRatioFormat, unitsProvider,hV); + const vphToVphFormatter = await FormatterSpec.create("vph_to_vph_formatter", vphRatioFormat, unitsProvider, vH); + const hpvToVphFormatter = await FormatterSpec.create("hvp_to_vph_formatter", vphRatioFormat, unitsProvider, hV); + const vphToHpvFormatter = await FormatterSpec.create("vph_to_hpv_formatter", hvpRatioFormat, unitsProvider, vH); + const hpvToHpvFormatter = await FormatterSpec.create("hpv_to_hpv_formatter", hvpRatioFormat, unitsProvider, hV); const vphToVphParser = await ParserSpec.create(vphRatioFormat, unitsProvider, vH); const hpvToVphParser = await ParserSpec.create(vphRatioFormat, unitsProvider, hV); From 4f40055b8411eb14dfac08d227f05e926883ab98 Mon Sep 17 00:00:00 2001 From: anmolshres98 Date: Sat, 19 Oct 2024 20:35:02 +0545 Subject: [PATCH 3/7] rush change --- .../as-vitest-core-quantity_2024-10-19-14-49.json | 10 ++++++++++ common/config/rush/pnpm-lock.yaml | 8 ++++---- 2 files changed, 14 insertions(+), 4 deletions(-) create mode 100644 common/changes/@itwin/core-quantity/as-vitest-core-quantity_2024-10-19-14-49.json diff --git a/common/changes/@itwin/core-quantity/as-vitest-core-quantity_2024-10-19-14-49.json b/common/changes/@itwin/core-quantity/as-vitest-core-quantity_2024-10-19-14-49.json new file mode 100644 index 000000000000..2bb40169d9fe --- /dev/null +++ b/common/changes/@itwin/core-quantity/as-vitest-core-quantity_2024-10-19-14-49.json @@ -0,0 +1,10 @@ +{ + "changes": [ + { + "packageName": "@itwin/core-quantity", + "comment": "", + "type": "none" + } + ], + "packageName": "@itwin/core-quantity" +} \ No newline at end of file diff --git a/common/config/rush/pnpm-lock.yaml b/common/config/rush/pnpm-lock.yaml index 9fb92c9b4ce9..0f08413721c4 100644 --- a/common/config/rush/pnpm-lock.yaml +++ b/common/config/rush/pnpm-lock.yaml @@ -7,7 +7,7 @@ importers: ../../core/backend: specifiers: - '@bentley/imodeljs-native': 4.10.12 + '@bentley/imodeljs-native': 4.10.14 '@itwin/build-tools': workspace:* '@itwin/cloud-agnostic-core': ^2.2.4 '@itwin/core-bentley': workspace:* @@ -58,7 +58,7 @@ importers: webpack: ^5.76.0 ws: ^7.5.10 dependencies: - '@bentley/imodeljs-native': 4.10.12 + '@bentley/imodeljs-native': 4.10.14 '@itwin/cloud-agnostic-core': 2.2.4_scz6qrwecfbbxg4vskopkl3a7u '@itwin/core-telemetry': link:../telemetry '@itwin/object-storage-azure': 2.2.5_scz6qrwecfbbxg4vskopkl3a7u @@ -3679,8 +3679,8 @@ packages: resolution: {integrity: sha512-IIs1wDcY2oZ8tJ3EZRw0U51M+0ZL3MvwoDYYmhUXaa9/UZqpFoOyLBGaxjirQteWXqTIMm3mFvmC+Nbn1ok4Iw==} dev: false - /@bentley/imodeljs-native/4.10.12: - resolution: {integrity: sha512-UhGXMtDAJPYmXrJrphpHOCYsGCACFx0BSaQRKxNrQ2vCDXAHTovf7S1ODv6jd+f+3HnRaDLrudYI8RHIRm5GVA==} + /@bentley/imodeljs-native/4.10.14: + resolution: {integrity: sha512-BWSxjcpkCKFZm4vWN9rXH/hDdR/PxWQW5L4nHEyPRlvhPls6kfV6BE3OaN/yk62d/drN+SKpJmlMzmzYCTakwg==} requiresBuild: true dev: false From ceecd2302354a541f84a1b19f6a91ad2f6ca2835 Mon Sep 17 00:00:00 2001 From: anmolshres98 Date: Wed, 23 Oct 2024 11:07:43 +0545 Subject: [PATCH 4/7] lockfile update --- common/config/rush/pnpm-lock.yaml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/common/config/rush/pnpm-lock.yaml b/common/config/rush/pnpm-lock.yaml index 0d71d8fe72c9..9f0adb71cc5e 100644 --- a/common/config/rush/pnpm-lock.yaml +++ b/common/config/rush/pnpm-lock.yaml @@ -7,7 +7,7 @@ importers: ../../core/backend: specifiers: - '@bentley/imodeljs-native': 4.10.15 + '@bentley/imodeljs-native': 4.10.18 '@itwin/build-tools': workspace:* '@itwin/cloud-agnostic-core': ^2.2.4 '@itwin/core-bentley': workspace:* @@ -58,7 +58,7 @@ importers: webpack: ^5.76.0 ws: ^7.5.10 dependencies: - '@bentley/imodeljs-native': 4.10.15 + '@bentley/imodeljs-native': 4.10.18 '@itwin/cloud-agnostic-core': 2.2.4_scz6qrwecfbbxg4vskopkl3a7u '@itwin/core-telemetry': link:../telemetry '@itwin/object-storage-azure': 2.2.5_scz6qrwecfbbxg4vskopkl3a7u @@ -3673,8 +3673,8 @@ packages: resolution: {integrity: sha512-IIs1wDcY2oZ8tJ3EZRw0U51M+0ZL3MvwoDYYmhUXaa9/UZqpFoOyLBGaxjirQteWXqTIMm3mFvmC+Nbn1ok4Iw==} dev: false - /@bentley/imodeljs-native/4.10.15: - resolution: {integrity: sha512-+yhBN8hNkDlQ0SlFA29mjfEB6UHkeh7oh9sTWyARCxlkWyK7eOvJc+TrUFHcz70sZ0gwbTDtanh91wSt0bfMlg==} + /@bentley/imodeljs-native/4.10.18: + resolution: {integrity: sha512-i+UOZew7nP0s2OfQ8UxxhCPF4sFm6vuLP9r2DmgKaiL8H1TODNl6JbJ18u0vteLvaCUjcOyRZ0TcKmy/32ofuA==} requiresBuild: true dev: false @@ -13789,7 +13789,7 @@ packages: perfect-debounce: 1.0.0 picocolors: 1.0.1 sirv: 2.0.4 - vite: 5.4.6_@types+node@18.16.20 + vite: 5.4.6 transitivePeerDependencies: - rollup - supports-color From ab01ef9a6556f28c8269627a5292a92503134ba4 Mon Sep 17 00:00:00 2001 From: anmolshres98 Date: Wed, 23 Oct 2024 11:07:57 +0545 Subject: [PATCH 5/7] update expect based on suggestion --- core/quantity/src/test/Formatting.test.ts | 20 +++++--------------- 1 file changed, 5 insertions(+), 15 deletions(-) diff --git a/core/quantity/src/test/Formatting.test.ts b/core/quantity/src/test/Formatting.test.ts index 2a90ebb3db7a..10d96a683456 100644 --- a/core/quantity/src/test/Formatting.test.ts +++ b/core/quantity/src/test/Formatting.test.ts @@ -189,9 +189,7 @@ describe("Formatting tests:", () => { }; const testFormat = new Format("test"); - await testFormat.fromJSON(unitsProvider, json).catch(() => { - expect.fail(); - }); + await expect(testFormat.fromJSON(unitsProvider, json)).resolves.not.toThrow(); }); it("Bad decimal separator value", async () => { @@ -222,9 +220,7 @@ describe("Formatting tests:", () => { }; const testFormat = new Format("test"); - await testFormat.fromJSON(unitsProvider, json).catch(() => { - expect.fail(); - }); + await expect(testFormat.fromJSON(unitsProvider, json)).resolves.not.toThrow(); }); it("Bad thousand separator value", async () => { @@ -255,9 +251,7 @@ describe("Formatting tests:", () => { }; const testFormat = new Format("test"); - await testFormat.fromJSON(unitsProvider, json).catch(() => { - expect.fail(); - }); + await expect(testFormat.fromJSON(unitsProvider, json)).resolves.not.toThrow(); }); it("Bad uom separator value", async () => { @@ -286,9 +280,7 @@ describe("Formatting tests:", () => { }; const testFormat = new Format("test"); - await testFormat.fromJSON(unitsProvider, json).catch(() => { - expect.fail(); - }); + await expect(testFormat.fromJSON(unitsProvider, json)).resolves.not.toThrow(); }); it("Bad station separator value", async () => { @@ -321,9 +313,7 @@ describe("Formatting tests:", () => { }; const testFormat = new Format("test"); - await testFormat.fromJSON(unitsProvider, json).catch(() => { - expect.fail(); - }); + await expect(testFormat.fromJSON(unitsProvider, json)).resolves.not.toThrow(); }); it("Scientific type is required", async () => { From 065104c0ed02346cbda6c33de9097547a327e741 Mon Sep 17 00:00:00 2001 From: anmolshres98 Date: Wed, 23 Oct 2024 11:20:11 +0545 Subject: [PATCH 6/7] update launch.json --- .vscode/launch.json | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/.vscode/launch.json b/.vscode/launch.json index 327da8570e18..d518ced211a3 100644 --- a/.vscode/launch.json +++ b/.vscode/launch.json @@ -66,6 +66,23 @@ "smartStep": true, "console": "integratedTerminal", }, + { + "name": "Quantity Tests", + "presentation": { + "group": "0_CoreTests", + "order": 1 + }, + "cwd": "${workspaceFolder}/core/quantity/", + "type": "node", + "request": "launch", + "runtimeExecutable": "pnpm", + "runtimeArgs": [ + "test" + ], + "autoAttachChildProcesses": true, + "smartStep": true, + "console": "integratedTerminal", + }, { "name": "OrbitGT Tests", "presentation": { From 8317950d6d8586b8a2660c4216018d5c2adeae83 Mon Sep 17 00:00:00 2001 From: anmolshres98 Date: Fri, 25 Oct 2024 18:54:10 +0545 Subject: [PATCH 7/7] lockfile update --- common/config/rush/pnpm-lock.yaml | 1683 ++++++++++++----------------- 1 file changed, 716 insertions(+), 967 deletions(-) diff --git a/common/config/rush/pnpm-lock.yaml b/common/config/rush/pnpm-lock.yaml index 9f0adb71cc5e..11dbc9e18193 100644 --- a/common/config/rush/pnpm-lock.yaml +++ b/common/config/rush/pnpm-lock.yaml @@ -7,7 +7,7 @@ importers: ../../core/backend: specifiers: - '@bentley/imodeljs-native': 4.10.18 + '@bentley/imodeljs-native': 4.10.21 '@itwin/build-tools': workspace:* '@itwin/cloud-agnostic-core': ^2.2.4 '@itwin/core-bentley': workspace:* @@ -16,7 +16,7 @@ importers: '@itwin/core-telemetry': workspace:* '@itwin/core-webpack-tools': workspace:* '@itwin/ecsql-common': workspace:* - '@itwin/eslint-plugin': ^4.0.2 + '@itwin/eslint-plugin': 5.0.0-dev.1 '@itwin/object-storage-azure': ^2.2.5 '@itwin/object-storage-core': ^2.2.5 '@opentelemetry/api': 1.0.4 @@ -33,9 +33,9 @@ importers: chai: ^4.3.10 chai-as-promised: ^7.1.1 cpx2: ^3.0.0 - dotenv: ^10.0.0 + dotenv: ^16.4.5 dotenv-expand: ^5.1.0 - eslint: ^8.56.0 + eslint: ^9.13.0 form-data: ^2.5.1 fs-extra: ^8.1.0 internal-tools: workspace:* @@ -44,7 +44,7 @@ importers: linebreak: ^1.1.0 mocha: ^10.2.0 multiparty: ^4.2.1 - node-simctl: ~7.2.1 + node-simctl: ~7.6.1 null-loader: ^4.0.1 nyc: ^15.1.0 reflect-metadata: ^0.1.13 @@ -53,12 +53,11 @@ importers: sinon: ^17.0.2 source-map-loader: ^4.0.0 touch: ^3.1.0 - ts-node: ^10.8.2 - typescript: ~5.3.3 + typescript: ~5.6.2 webpack: ^5.76.0 ws: ^7.5.10 dependencies: - '@bentley/imodeljs-native': 4.10.18 + '@bentley/imodeljs-native': 4.10.21 '@itwin/cloud-agnostic-core': 2.2.4_scz6qrwecfbbxg4vskopkl3a7u '@itwin/core-telemetry': link:../telemetry '@itwin/object-storage-azure': 2.2.5_scz6qrwecfbbxg4vskopkl3a7u @@ -80,7 +79,7 @@ importers: '@itwin/core-geometry': link:../geometry '@itwin/core-webpack-tools': link:../../tools/webpack-core '@itwin/ecsql-common': link:../ecsql/common - '@itwin/eslint-plugin': 4.0.2_xdgzedli73k7lw4xlyzszm74om + '@itwin/eslint-plugin': 5.0.0-dev.1_aji6oyyaiulsuzmkdveqwiygte '@opentelemetry/api': 1.0.4 '@types/chai': 4.3.1 '@types/chai-as-promised': 7.1.0 @@ -95,41 +94,40 @@ importers: chai: 4.3.10 chai-as-promised: 7.1.1_chai@4.3.10 cpx2: 3.0.0 - dotenv: 10.0.0 + dotenv: 16.4.5 dotenv-expand: 5.1.0 - eslint: 8.56.0 + eslint: 9.13.0 internal-tools: link:../../tools/internal mocha: 10.2.0 - node-simctl: 7.2.1 + node-simctl: 7.6.1 null-loader: 4.0.1_webpack@5.76.0 nyc: 15.1.0 rimraf: 3.0.2 sinon: 17.0.2 source-map-loader: 4.0.0_webpack@5.76.0 - ts-node: 10.8.2_zifzk4dbgzfq65cu6hdbkv4dfq - typescript: 5.3.3 + typescript: 5.6.2 webpack: 5.76.0 ../../core/bentley: specifiers: '@itwin/build-tools': workspace:* - '@itwin/eslint-plugin': ^4.0.2 + '@itwin/eslint-plugin': 5.0.0-dev.1 '@opentelemetry/api': 1.0.4 '@types/node': ~18.16.20 '@vitest/coverage-v8': ^2.1.0 - eslint: ^8.56.0 + eslint: ^9.13.0 rimraf: ^3.0.2 - typescript: ~5.3.3 + typescript: ~5.6.2 vitest: ^2.1.0 devDependencies: '@itwin/build-tools': link:../../tools/build - '@itwin/eslint-plugin': 4.0.2_xdgzedli73k7lw4xlyzszm74om + '@itwin/eslint-plugin': 5.0.0-dev.1_aji6oyyaiulsuzmkdveqwiygte '@opentelemetry/api': 1.0.4 '@types/node': 18.16.20 '@vitest/coverage-v8': 2.1.0_vitest@2.1.0 - eslint: 8.56.0 + eslint: 9.13.0 rimraf: 3.0.2 - typescript: 5.3.3 + typescript: 5.6.2 vitest: 2.1.0_@types+node@18.16.20 ../../core/common: @@ -137,18 +135,18 @@ importers: '@itwin/build-tools': workspace:* '@itwin/core-bentley': workspace:* '@itwin/core-geometry': workspace:* - '@itwin/eslint-plugin': ^4.0.2 + '@itwin/eslint-plugin': 5.0.0-dev.1 '@itwin/object-storage-core': ^2.2.5 '@types/chai': 4.3.1 '@types/flatbuffers': ~1.10.0 '@types/node': ~18.16.20 '@vitest/coverage-v8': ^2.1.0 - eslint: ^8.56.0 + eslint: ^9.13.0 flatbuffers: ~1.12.0 js-base64: ^3.6.1 nyc: ^15.1.0 rimraf: ^3.0.2 - typescript: ~5.3.3 + typescript: ~5.6.2 vitest: ^2.1.0 dependencies: flatbuffers: 1.12.0 @@ -157,16 +155,16 @@ importers: '@itwin/build-tools': link:../../tools/build '@itwin/core-bentley': link:../bentley '@itwin/core-geometry': link:../geometry - '@itwin/eslint-plugin': 4.0.2_xdgzedli73k7lw4xlyzszm74om + '@itwin/eslint-plugin': 5.0.0-dev.1_aji6oyyaiulsuzmkdveqwiygte '@itwin/object-storage-core': 2.2.5 '@types/chai': 4.3.1 '@types/flatbuffers': 1.10.0 '@types/node': 18.16.20 '@vitest/coverage-v8': 2.1.0_vitest@2.1.0 - eslint: 8.56.0 + eslint: 9.13.0 nyc: 15.1.0 rimraf: 3.0.2 - typescript: 5.3.3 + typescript: 5.6.2 vitest: 2.1.0_@types+node@18.16.20 ../../core/ecschema-editing: @@ -177,7 +175,7 @@ importers: '@itwin/core-common': workspace:* '@itwin/core-quantity': workspace:* '@itwin/ecschema-metadata': workspace:* - '@itwin/eslint-plugin': ^4.0.2 + '@itwin/eslint-plugin': 5.0.0-dev.1 '@types/benchmark': ^2.1.0 '@types/chai': 4.3.1 '@types/chai-as-promised': ^7 @@ -189,12 +187,12 @@ importers: chai: ^4.3.10 chai-as-promised: ^7.1.1 cpx2: ^3.0.0 - eslint: ^8.56.0 + eslint: ^9.13.0 mocha: ^10.2.0 nyc: ^15.1.0 rimraf: ^3.0.2 sinon: ^17.0.2 - typescript: ~5.3.3 + typescript: ~5.6.2 devDependencies: '@bentley/units-schema': 1.0.8 '@itwin/build-tools': link:../../tools/build @@ -202,7 +200,7 @@ importers: '@itwin/core-common': link:../common '@itwin/core-quantity': link:../quantity '@itwin/ecschema-metadata': link:../ecschema-metadata - '@itwin/eslint-plugin': 4.0.2_xdgzedli73k7lw4xlyzszm74om + '@itwin/eslint-plugin': 5.0.0-dev.1_aji6oyyaiulsuzmkdveqwiygte '@types/benchmark': 2.1.0 '@types/chai': 4.3.1 '@types/chai-as-promised': 7.1.0 @@ -214,12 +212,12 @@ importers: chai: 4.3.10 chai-as-promised: 7.1.1_chai@4.3.10 cpx2: 3.0.0 - eslint: 8.56.0 + eslint: 9.13.0 mocha: 10.2.0 nyc: 15.1.0 rimraf: 3.0.2 sinon: 17.0.2 - typescript: 5.3.3 + typescript: 5.6.2 ../../core/ecschema-locaters: specifiers: @@ -241,7 +239,7 @@ importers: '@bentley/units-schema': ^1.0.8 '@itwin/build-tools': workspace:* '@itwin/ecschema-metadata': workspace:* - '@itwin/eslint-plugin': ^4.0.2 + '@itwin/eslint-plugin': 5.0.0-dev.1 '@types/chai': 4.3.1 '@types/chai-as-promised': ^7 '@types/fs-extra': ^4.0.7 @@ -253,14 +251,14 @@ importers: chai: ^4.3.10 chai-as-promised: ^7.1.1 cpx2: ^3.0.0 - eslint: ^8.56.0 + eslint: ^9.13.0 fs-extra: ^8.1.0 glob: ^10.3.12 mocha: ^10.2.0 nyc: ^15.1.0 rimraf: ^3.0.2 sinon: ^17.0.2 - typescript: ~5.3.3 + typescript: ~5.6.2 dependencies: '@xmldom/xmldom': 0.8.5 fs-extra: 8.1.0 @@ -284,7 +282,7 @@ importers: '@bentley/units-schema': 1.0.8 '@itwin/build-tools': link:../../tools/build '@itwin/ecschema-metadata': link:../ecschema-metadata - '@itwin/eslint-plugin': 4.0.2_xdgzedli73k7lw4xlyzszm74om + '@itwin/eslint-plugin': 5.0.0-dev.1_aji6oyyaiulsuzmkdveqwiygte '@types/chai': 4.3.1 '@types/chai-as-promised': 7.1.0 '@types/fs-extra': 4.0.7 @@ -295,12 +293,12 @@ importers: chai: 4.3.10 chai-as-promised: 7.1.1_chai@4.3.10 cpx2: 3.0.0 - eslint: 8.56.0 + eslint: 9.13.0 mocha: 10.2.0 nyc: 15.1.0 rimraf: 3.0.2 sinon: 17.0.2 - typescript: 5.3.3 + typescript: 5.6.2 ../../core/ecschema-metadata: specifiers: @@ -308,7 +306,7 @@ importers: '@itwin/build-tools': workspace:* '@itwin/core-bentley': workspace:* '@itwin/core-quantity': workspace:* - '@itwin/eslint-plugin': ^4.0.2 + '@itwin/eslint-plugin': 5.0.0-dev.1 '@types/benchmark': ^2.1.0 '@types/chai': 4.3.1 '@types/chai-as-promised': ^7 @@ -320,18 +318,18 @@ importers: chai: ^4.3.10 chai-as-promised: ^7.1.1 cpx2: ^3.0.0 - eslint: ^8.56.0 + eslint: ^9.13.0 mocha: ^10.2.0 nyc: ^15.1.0 rimraf: ^3.0.2 sinon: ^17.0.2 - typescript: ~5.3.3 + typescript: ~5.6.2 devDependencies: '@bentley/units-schema': 1.0.8 '@itwin/build-tools': link:../../tools/build '@itwin/core-bentley': link:../bentley '@itwin/core-quantity': link:../quantity - '@itwin/eslint-plugin': 4.0.2_xdgzedli73k7lw4xlyzszm74om + '@itwin/eslint-plugin': 5.0.0-dev.1_aji6oyyaiulsuzmkdveqwiygte '@types/benchmark': 2.1.0 '@types/chai': 4.3.1 '@types/chai-as-promised': 7.1.0 @@ -343,12 +341,12 @@ importers: chai: 4.3.10 chai-as-promised: 7.1.1_chai@4.3.10 cpx2: 3.0.0 - eslint: 8.56.0 + eslint: 9.13.0 mocha: 10.2.0 nyc: 15.1.0 rimraf: 3.0.2 sinon: 17.0.2 - typescript: 5.3.3 + typescript: 5.6.2 ../../core/ecschema-rpc/common: specifiers: @@ -357,20 +355,20 @@ importers: '@itwin/core-common': workspace:* '@itwin/core-geometry': workspace:* '@itwin/ecschema-metadata': workspace:* - '@itwin/eslint-plugin': ^4.0.2 - eslint: ^8.56.0 + '@itwin/eslint-plugin': 5.0.0-dev.1 + eslint: ^9.13.0 rimraf: ^3.0.2 - typescript: ~5.3.3 + typescript: ~5.6.2 devDependencies: '@itwin/build-tools': link:../../../tools/build '@itwin/core-bentley': link:../../bentley '@itwin/core-common': link:../../common '@itwin/core-geometry': link:../../geometry '@itwin/ecschema-metadata': link:../../ecschema-metadata - '@itwin/eslint-plugin': 4.0.2_xdgzedli73k7lw4xlyzszm74om - eslint: 8.56.0 + '@itwin/eslint-plugin': 5.0.0-dev.1_aji6oyyaiulsuzmkdveqwiygte + eslint: 9.13.0 rimraf: 3.0.2 - typescript: 5.3.3 + typescript: 5.6.2 ../../core/ecschema-rpc/impl: specifiers: @@ -381,10 +379,10 @@ importers: '@itwin/core-geometry': workspace:* '@itwin/ecschema-metadata': workspace:* '@itwin/ecschema-rpcinterface-common': workspace:* - '@itwin/eslint-plugin': ^4.0.2 - eslint: ^8.56.0 + '@itwin/eslint-plugin': 5.0.0-dev.1 + eslint: ^9.13.0 rimraf: ^3.0.2 - typescript: ~5.3.3 + typescript: ~5.6.2 devDependencies: '@itwin/build-tools': link:../../../tools/build '@itwin/core-backend': link:../../backend @@ -393,37 +391,37 @@ importers: '@itwin/core-geometry': link:../../geometry '@itwin/ecschema-metadata': link:../../ecschema-metadata '@itwin/ecschema-rpcinterface-common': link:../common - '@itwin/eslint-plugin': 4.0.2_xdgzedli73k7lw4xlyzszm74om - eslint: 8.56.0 + '@itwin/eslint-plugin': 5.0.0-dev.1_aji6oyyaiulsuzmkdveqwiygte + eslint: 9.13.0 rimraf: 3.0.2 - typescript: 5.3.3 + typescript: 5.6.2 ../../core/ecsql/common: specifiers: '@itwin/build-tools': workspace:* '@itwin/core-bentley': workspace:* - '@itwin/eslint-plugin': ^4.0.2 + '@itwin/eslint-plugin': 5.0.0-dev.1 '@types/chai': 4.3.1 '@types/mocha': ^10.0.6 chai: ^4.3.10 - eslint: ^8.56.0 + eslint: ^9.13.0 mocha: ^10.2.0 nyc: ^15.1.0 rimraf: ^3.0.2 - typescript: ~5.3.3 + typescript: ~5.6.2 dependencies: '@itwin/core-bentley': link:../../bentley devDependencies: '@itwin/build-tools': link:../../../tools/build - '@itwin/eslint-plugin': 4.0.2_xdgzedli73k7lw4xlyzszm74om + '@itwin/eslint-plugin': 5.0.0-dev.1_aji6oyyaiulsuzmkdveqwiygte '@types/chai': 4.3.1 '@types/mocha': 10.0.6 chai: 4.3.10 - eslint: 8.56.0 + eslint: 9.13.0 mocha: 10.2.0 nyc: 15.1.0 rimraf: 3.0.2 - typescript: 5.3.3 + typescript: 5.6.2 ../../core/electron: specifiers: @@ -433,20 +431,20 @@ importers: '@itwin/core-bentley': workspace:* '@itwin/core-common': workspace:* '@itwin/core-frontend': workspace:* - '@itwin/eslint-plugin': ^4.0.2 + '@itwin/eslint-plugin': 5.0.0-dev.1 '@openid/appauth': ^1.2.6 '@types/chai': 4.3.1 '@types/mocha': ^10.0.6 '@types/node': ~18.16.20 chai: ^4.3.10 electron: ^33.0.0 - eslint: ^8.56.0 + eslint: ^9.13.0 glob: ^10.3.12 mocha: ^10.2.0 open: ^7.0.0 rimraf: ^3.0.2 source-map-loader: ^4.0.0 - typescript: ~5.3.3 + typescript: ~5.6.2 username: ^5.1.0 webpack: ^5.76.0 webpack-cli: ^5.0.1 @@ -461,18 +459,18 @@ importers: '@itwin/core-bentley': link:../bentley '@itwin/core-common': link:../common '@itwin/core-frontend': link:../frontend - '@itwin/eslint-plugin': 4.0.2_xdgzedli73k7lw4xlyzszm74om + '@itwin/eslint-plugin': 5.0.0-dev.1_aji6oyyaiulsuzmkdveqwiygte '@types/chai': 4.3.1 '@types/mocha': 10.0.6 '@types/node': 18.16.20 chai: 4.3.10 electron: 33.0.0 - eslint: 8.56.0 + eslint: 9.13.0 glob: 10.3.12 mocha: 10.2.0 rimraf: 3.0.2 source-map-loader: 4.0.0_webpack@5.76.0 - typescript: 5.3.3 + typescript: 5.6.2 webpack: 5.76.0_webpack-cli@5.0.1 webpack-cli: 5.0.1_webpack@5.76.0 @@ -481,7 +479,7 @@ importers: '@itwin/build-tools': workspace:* '@itwin/core-backend': workspace:* '@itwin/core-common': workspace:* - '@itwin/eslint-plugin': ^4.0.2 + '@itwin/eslint-plugin': 5.0.0-dev.1 '@types/body-parser': ^1.17.0 '@types/chai': 4.3.1 '@types/express': ^4.17.20 @@ -491,7 +489,7 @@ importers: '@types/sinon': ^17.0.2 '@types/supertest': ^6.0.2 chai: ^4.3.10 - eslint: ^8.56.0 + eslint: ^9.13.0 express: ^4.20.0 express-ws: ^5.0.2 mocha: ^10.2.0 @@ -499,7 +497,7 @@ importers: rimraf: ^3.0.2 sinon: ^17.0.2 supertest: ^7.0.0 - typescript: ~5.3.3 + typescript: ~5.6.2 dependencies: express: 4.20.0 express-ws: 5.0.2_express@4.20.0 @@ -507,7 +505,7 @@ importers: '@itwin/build-tools': link:../../tools/build '@itwin/core-backend': link:../backend '@itwin/core-common': link:../common - '@itwin/eslint-plugin': 4.0.2_xdgzedli73k7lw4xlyzszm74om + '@itwin/eslint-plugin': 5.0.0-dev.1_aji6oyyaiulsuzmkdveqwiygte '@types/body-parser': 1.17.0 '@types/chai': 4.3.1 '@types/express': 4.17.20 @@ -517,32 +515,32 @@ importers: '@types/sinon': 17.0.2 '@types/supertest': 6.0.2 chai: 4.3.10 - eslint: 8.56.0 + eslint: 9.13.0 mocha: 10.2.0 nyc: 15.1.0 rimraf: 3.0.2 sinon: 17.0.2 supertest: 7.0.0 - typescript: 5.3.3 + typescript: 5.6.2 ../../core/extension: specifiers: '@itwin/build-tools': workspace:* '@itwin/core-common': workspace:* '@itwin/core-frontend': workspace:* - '@itwin/eslint-plugin': ^4.0.2 - eslint: ^8.56.0 + '@itwin/eslint-plugin': 5.0.0-dev.1 + eslint: ^9.13.0 rimraf: ^3.0.2 - typescript: ~5.3.3 + typescript: ~5.6.2 dependencies: '@itwin/core-common': link:../common '@itwin/core-frontend': link:../frontend devDependencies: '@itwin/build-tools': link:../../tools/build - '@itwin/eslint-plugin': 4.0.2_xdgzedli73k7lw4xlyzszm74om - eslint: 8.56.0 + '@itwin/eslint-plugin': 5.0.0-dev.1_aji6oyyaiulsuzmkdveqwiygte + eslint: 9.13.0 rimraf: 3.0.2 - typescript: 5.3.3 + typescript: 5.6.2 ../../core/frontend: specifiers: @@ -556,7 +554,7 @@ importers: '@itwin/core-orbitgt': workspace:* '@itwin/core-quantity': workspace:* '@itwin/core-telemetry': workspace:* - '@itwin/eslint-plugin': ^4.0.2 + '@itwin/eslint-plugin': 5.0.0-dev.1 '@itwin/object-storage-core': ^2.2.5 '@itwin/webgl-compatibility': workspace:* '@loaders.gl/core': ^3.1.6 @@ -567,7 +565,7 @@ importers: babel-loader: ~8.2.5 babel-plugin-istanbul: ~6.1.1 cpx2: ^3.0.0 - eslint: ^8.56.0 + eslint: ^9.13.0 fuse.js: ^3.3.0 glob: ^10.3.12 meshoptimizer: ~0.20.0 @@ -575,7 +573,7 @@ importers: rimraf: ^3.0.2 source-map-loader: ^4.0.0 typemoq: ^2.1.0 - typescript: ~5.3.3 + typescript: ~5.6.2 vite-multiple-assets: ^1.3.1 vite-plugin-static-copy: 1.0.6 vitest: ^2.1.0 @@ -600,20 +598,20 @@ importers: '@itwin/core-geometry': link:../geometry '@itwin/core-orbitgt': link:../orbitgt '@itwin/core-quantity': link:../quantity - '@itwin/eslint-plugin': 4.0.2_xdgzedli73k7lw4xlyzszm74om + '@itwin/eslint-plugin': 5.0.0-dev.1_aji6oyyaiulsuzmkdveqwiygte '@types/chai-as-promised': 7.1.0 - '@vitest/browser': 2.1.0_ngagn3iqlnfmtvqcnqspau7y7u + '@vitest/browser': 2.1.0_bbcqthgmodi4rrojsqljgj3bpm '@vitest/coverage-v8': 2.1.0_qvp2nat4f5x6c53yn4p7pzv3mu babel-loader: 8.2.5_webpack@5.76.0 babel-plugin-istanbul: 6.1.1 cpx2: 3.0.0 - eslint: 8.56.0 + eslint: 9.13.0 glob: 10.3.12 playwright: 1.47.1 rimraf: 3.0.2 source-map-loader: 4.0.0_webpack@5.76.0 typemoq: 2.1.0 - typescript: 5.3.3 + typescript: 5.6.2 vite-multiple-assets: 1.3.1 vite-plugin-static-copy: 1.0.6 vitest: 2.1.0_@vitest+browser@2.1.0 @@ -626,13 +624,13 @@ importers: '@itwin/core-common': workspace:* '@itwin/core-frontend': workspace:* '@itwin/core-geometry': workspace:* - '@itwin/eslint-plugin': ^4.0.2 + '@itwin/eslint-plugin': 5.0.0-dev.1 '@types/file-saver': ^2.0.1 cpx2: ^3.0.0 - eslint: ^8.56.0 + eslint: ^9.13.0 file-saver: ^2.0.2 rimraf: ^3.0.2 - typescript: ~5.3.3 + typescript: ~5.6.2 dependencies: '@itwin/core-bentley': link:../bentley '@itwin/core-common': link:../common @@ -641,38 +639,38 @@ importers: file-saver: 2.0.2 devDependencies: '@itwin/build-tools': link:../../tools/build - '@itwin/eslint-plugin': 4.0.2_xdgzedli73k7lw4xlyzszm74om + '@itwin/eslint-plugin': 5.0.0-dev.1_aji6oyyaiulsuzmkdveqwiygte '@types/file-saver': 2.0.1 cpx2: 3.0.0 - eslint: 8.56.0 + eslint: 9.13.0 rimraf: 3.0.2 - typescript: 5.3.3 + typescript: 5.6.2 ../../core/geometry: specifiers: '@itwin/build-tools': workspace:* '@itwin/core-bentley': workspace:* - '@itwin/eslint-plugin': ^4.0.2 + '@itwin/eslint-plugin': 5.0.0-dev.1 '@types/flatbuffers': ~1.10.0 '@types/node': ~18.16.20 '@vitest/coverage-v8': ^2.1.0 - eslint: ^8.56.0 + eslint: ^9.13.0 flatbuffers: ~1.12.0 rimraf: ^3.0.2 - typescript: ~5.3.3 + typescript: ~5.6.2 vitest: ^2.1.0 dependencies: '@itwin/core-bentley': link:../bentley flatbuffers: 1.12.0 devDependencies: '@itwin/build-tools': link:../../tools/build - '@itwin/eslint-plugin': 4.0.2_xdgzedli73k7lw4xlyzszm74om + '@itwin/eslint-plugin': 5.0.0-dev.1_aji6oyyaiulsuzmkdveqwiygte '@types/flatbuffers': 1.10.0 '@types/node': 18.16.20 '@vitest/coverage-v8': 2.1.0_vitest@2.1.0 - eslint: 8.56.0 + eslint: 9.13.0 rimraf: 3.0.2 - typescript: 5.3.3 + typescript: 5.6.2 vitest: 2.1.0_@types+node@18.16.20 ../../core/hypermodeling: @@ -684,20 +682,20 @@ importers: '@itwin/core-common': workspace:* '@itwin/core-frontend': workspace:* '@itwin/core-geometry': workspace:* - '@itwin/eslint-plugin': ^4.0.2 + '@itwin/eslint-plugin': 5.0.0-dev.1 '@types/chai': 4.3.1 '@types/mocha': ^10.0.6 babel-loader: ~8.2.5 babel-plugin-istanbul: ~6.1.1 chai: ^4.3.10 cpx2: ^3.0.0 - eslint: ^8.56.0 + eslint: ^9.13.0 glob: ^10.3.12 mocha: ^10.2.0 nyc: ^15.1.0 rimraf: ^3.0.2 source-map-loader: ^4.0.0 - typescript: ~5.3.3 + typescript: ~5.6.2 webpack: ^5.76.0 dependencies: '@itwin/appui-abstract': link:../../ui/appui-abstract @@ -708,20 +706,20 @@ importers: '@itwin/core-common': link:../common '@itwin/core-frontend': link:../frontend '@itwin/core-geometry': link:../geometry - '@itwin/eslint-plugin': 4.0.2_xdgzedli73k7lw4xlyzszm74om + '@itwin/eslint-plugin': 5.0.0-dev.1_aji6oyyaiulsuzmkdveqwiygte '@types/chai': 4.3.1 '@types/mocha': 10.0.6 babel-loader: 8.2.5_webpack@5.76.0 babel-plugin-istanbul: 6.1.1 chai: 4.3.10 cpx2: 3.0.0 - eslint: 8.56.0 + eslint: 9.13.0 glob: 10.3.12 mocha: 10.2.0 nyc: 15.1.0 rimraf: 3.0.2 source-map-loader: 4.0.0_webpack@5.76.0 - typescript: 5.3.3 + typescript: 5.6.2 webpack: 5.76.0 ../../core/i18n: @@ -730,22 +728,23 @@ importers: '@itwin/certa': workspace:* '@itwin/core-bentley': workspace:* '@itwin/core-common': workspace:* - '@itwin/eslint-plugin': ^4.0.2 + '@itwin/eslint-plugin': 5.0.0-dev.1 '@types/chai': 4.3.1 '@types/i18next': ^8.4.2 '@types/i18next-browser-languagedetector': ^2.0.1 '@types/mocha': ^10.0.6 + '@types/node': ~18.16.20 babel-loader: ~8.2.5 babel-plugin-istanbul: ~6.1.1 chai: ^4.3.10 - eslint: ^8.56.0 + eslint: ^9.13.0 glob: ^10.3.12 i18next: ^21.9.1 i18next-browser-languagedetector: ^6.1.2 i18next-http-backend: ^1.4.4 rimraf: ^3.0.2 source-map-loader: ^4.0.0 - typescript: ~5.3.3 + typescript: ~5.6.2 webpack: ^5.76.0 webpack-cli: ^5.0.1 dependencies: @@ -757,19 +756,20 @@ importers: '@itwin/certa': link:../../tools/certa '@itwin/core-bentley': link:../bentley '@itwin/core-common': link:../common - '@itwin/eslint-plugin': 4.0.2_xdgzedli73k7lw4xlyzszm74om + '@itwin/eslint-plugin': 5.0.0-dev.1_aji6oyyaiulsuzmkdveqwiygte '@types/chai': 4.3.1 '@types/i18next': 8.4.2 '@types/i18next-browser-languagedetector': 2.0.1 '@types/mocha': 10.0.6 + '@types/node': 18.16.20 babel-loader: 8.2.5_webpack@5.76.0 babel-plugin-istanbul: 6.1.1 chai: 4.3.10 - eslint: 8.56.0 + eslint: 9.13.0 glob: 10.3.12 rimraf: 3.0.2 source-map-loader: 4.0.0_webpack@5.76.0 - typescript: 5.3.3 + typescript: 5.6.2 webpack: 5.76.0_webpack-cli@5.0.1 webpack-cli: 5.0.1_webpack@5.76.0 @@ -781,7 +781,7 @@ importers: '@itwin/core-common': workspace:* '@itwin/core-frontend': workspace:* '@itwin/core-geometry': workspace:* - '@itwin/eslint-plugin': ^4.0.2 + '@itwin/eslint-plugin': 5.0.0-dev.1 '@svgdotjs/svg.js': 3.0.16 '@types/chai': 4.3.1 '@types/mocha': ^10.0.6 @@ -789,13 +789,13 @@ importers: babel-plugin-istanbul: ~6.1.1 chai: ^4.3.10 cpx2: ^3.0.0 - eslint: ^8.56.0 + eslint: ^9.13.0 glob: ^10.3.12 mocha: ^10.2.0 nyc: ^15.1.0 rimraf: ^3.0.2 source-map-loader: ^4.0.0 - typescript: ~5.3.3 + typescript: ~5.6.2 webpack: ^5.76.0 dependencies: '@svgdotjs/svg.js': 3.0.16 @@ -806,20 +806,20 @@ importers: '@itwin/core-common': link:../common '@itwin/core-frontend': link:../frontend '@itwin/core-geometry': link:../geometry - '@itwin/eslint-plugin': 4.0.2_xdgzedli73k7lw4xlyzszm74om + '@itwin/eslint-plugin': 5.0.0-dev.1_aji6oyyaiulsuzmkdveqwiygte '@types/chai': 4.3.1 '@types/mocha': 10.0.6 babel-loader: 8.2.5_webpack@5.76.0 babel-plugin-istanbul: 6.1.1 chai: 4.3.10 cpx2: 3.0.0 - eslint: 8.56.0 + eslint: 9.13.0 glob: 10.3.12 mocha: 10.2.0 nyc: 15.1.0 rimraf: 3.0.2 source-map-loader: 4.0.0_webpack@5.76.0 - typescript: 5.3.3 + typescript: 5.6.2 webpack: 5.76.0 ../../core/mobile: @@ -829,7 +829,7 @@ importers: '@itwin/core-bentley': workspace:* '@itwin/core-common': workspace:* '@itwin/core-frontend': workspace:* - '@itwin/eslint-plugin': ^4.0.2 + '@itwin/eslint-plugin': 5.0.0-dev.1 '@types/chai': 4.3.1 '@types/fs-extra': ^4.0.7 '@types/lodash': ^4.14.202 @@ -839,14 +839,14 @@ importers: '@types/ws': ^7.0.0 chai: ^4.3.10 chai-as-promised: ^7.1.1 - dotenv: ^10.0.0 + dotenv: ^16.4.5 dotenv-expand: ^5.1.0 - eslint: ^8.56.0 + eslint: ^9.13.0 lodash: ^4.17.21 mocha: ^10.2.0 rimraf: ^3.0.2 superagent: ^9.0.1 - typescript: ~5.3.3 + typescript: ~5.6.2 ws: ^7.5.10 dependencies: lodash: 4.17.21 @@ -858,7 +858,7 @@ importers: '@itwin/core-bentley': link:../bentley '@itwin/core-common': link:../common '@itwin/core-frontend': link:../frontend - '@itwin/eslint-plugin': 4.0.2_xdgzedli73k7lw4xlyzszm74om + '@itwin/eslint-plugin': 5.0.0-dev.1_aji6oyyaiulsuzmkdveqwiygte '@types/chai': 4.3.1 '@types/fs-extra': 4.0.7 '@types/lodash': 4.14.202 @@ -868,65 +868,65 @@ importers: '@types/ws': 7.2.0 chai: 4.3.10 chai-as-promised: 7.1.1_chai@4.3.10 - dotenv: 10.0.0 + dotenv: 16.4.5 dotenv-expand: 5.1.0 - eslint: 8.56.0 + eslint: 9.13.0 mocha: 10.2.0 rimraf: 3.0.2 - typescript: 5.3.3 + typescript: 5.6.2 ../../core/orbitgt: specifiers: '@itwin/build-tools': workspace:* '@itwin/core-bentley': workspace:* - '@itwin/eslint-plugin': ^4.0.2 + '@itwin/eslint-plugin': 5.0.0-dev.1 '@types/chai': 4.3.1 '@types/mocha': ^10.0.6 '@types/node': ~18.16.20 chai: ^4.3.10 cpx2: ^3.0.0 debug: ^2.6.9 - eslint: ^8.56.0 + eslint: ^9.13.0 mocha: ^10.2.0 nyc: ^15.1.0 rimraf: ^3.0.2 - typescript: ~5.3.3 + typescript: ~5.6.2 devDependencies: '@itwin/build-tools': link:../../tools/build '@itwin/core-bentley': link:../bentley - '@itwin/eslint-plugin': 4.0.2_xdgzedli73k7lw4xlyzszm74om + '@itwin/eslint-plugin': 5.0.0-dev.1_aji6oyyaiulsuzmkdveqwiygte '@types/chai': 4.3.1 '@types/mocha': 10.0.6 '@types/node': 18.16.20 chai: 4.3.10 cpx2: 3.0.0 debug: 2.6.9 - eslint: 8.56.0 + eslint: 9.13.0 mocha: 10.2.0 nyc: 15.1.0 rimraf: 3.0.2 - typescript: 5.3.3 + typescript: 5.6.2 ../../core/quantity: specifiers: '@itwin/build-tools': workspace:* '@itwin/core-bentley': workspace:* - '@itwin/eslint-plugin': ^4.0.2 + '@itwin/eslint-plugin': 5.0.0-dev.1 '@types/glob': ^5.0.35 '@vitest/coverage-v8': ^2.1.0 - eslint: ^8.56.0 + eslint: ^9.13.0 rimraf: ^3.0.2 - typescript: ~5.3.3 + typescript: ~5.6.2 vitest: ^2.1.0 devDependencies: '@itwin/build-tools': link:../../tools/build '@itwin/core-bentley': link:../bentley - '@itwin/eslint-plugin': 4.0.2_xdgzedli73k7lw4xlyzszm74om + '@itwin/eslint-plugin': 5.0.0-dev.1_aji6oyyaiulsuzmkdveqwiygte '@types/glob': 5.0.35 '@vitest/coverage-v8': 2.1.0_vitest@2.1.0 - eslint: 8.56.0 + eslint: 9.13.0 rimraf: 3.0.2 - typescript: 5.3.3 + typescript: 5.6.2 vitest: 2.1.0 ../../core/telemetry: @@ -935,15 +935,15 @@ importers: '@itwin/certa': workspace:* '@itwin/core-bentley': workspace:* '@itwin/core-common': workspace:* - '@itwin/eslint-plugin': ^4.0.2 + '@itwin/eslint-plugin': 5.0.0-dev.1 '@types/chai': 4.3.1 '@types/mocha': ^10.0.6 chai: ^4.3.10 - eslint: ^8.56.0 + eslint: ^9.13.0 mocha: ^10.2.0 rimraf: ^3.0.2 source-map-loader: ^4.0.0 - typescript: ~5.3.3 + typescript: ~5.6.2 webpack: ^5.76.0 dependencies: '@itwin/core-bentley': link:../bentley @@ -951,15 +951,15 @@ importers: devDependencies: '@itwin/build-tools': link:../../tools/build '@itwin/certa': link:../../tools/certa - '@itwin/eslint-plugin': 4.0.2_xdgzedli73k7lw4xlyzszm74om + '@itwin/eslint-plugin': 5.0.0-dev.1_aji6oyyaiulsuzmkdveqwiygte '@types/chai': 4.3.1 '@types/mocha': 10.0.6 chai: 4.3.10 - eslint: 8.56.0 + eslint: 9.13.0 mocha: 10.2.0 rimraf: 3.0.2 source-map-loader: 4.0.0_webpack@5.76.0 - typescript: 5.3.3 + typescript: 5.6.2 webpack: 5.76.0 ../../core/webgl-compatibility: @@ -967,36 +967,36 @@ importers: '@itwin/build-tools': workspace:* '@itwin/certa': workspace:* '@itwin/core-bentley': workspace:* - '@itwin/eslint-plugin': ^4.0.2 + '@itwin/eslint-plugin': 5.0.0-dev.1 '@types/chai': 4.3.1 '@types/mocha': ^10.0.6 babel-loader: ~8.2.5 babel-plugin-istanbul: ~6.1.1 chai: ^4.3.10 - eslint: ^8.56.0 + eslint: ^9.13.0 glob: ^10.3.12 mocha: ^10.2.0 rimraf: ^3.0.2 source-map-loader: ^4.0.0 - typescript: ~5.3.3 + typescript: ~5.6.2 webpack: ^5.76.0 dependencies: '@itwin/core-bentley': link:../bentley devDependencies: '@itwin/build-tools': link:../../tools/build '@itwin/certa': link:../../tools/certa - '@itwin/eslint-plugin': 4.0.2_xdgzedli73k7lw4xlyzszm74om + '@itwin/eslint-plugin': 5.0.0-dev.1_aji6oyyaiulsuzmkdveqwiygte '@types/chai': 4.3.1 '@types/mocha': 10.0.6 babel-loader: 8.2.5_webpack@5.76.0 babel-plugin-istanbul: 6.1.1 chai: 4.3.10 - eslint: 8.56.0 + eslint: 9.13.0 glob: 10.3.12 mocha: 10.2.0 rimraf: 3.0.2 source-map-loader: 4.0.0_webpack@5.76.0 - typescript: 5.3.3 + typescript: 5.6.2 webpack: 5.76.0 ../../domains/analytical/backend: @@ -1005,7 +1005,7 @@ importers: '@itwin/core-backend': workspace:* '@itwin/core-bentley': workspace:* '@itwin/core-common': workspace:* - '@itwin/eslint-plugin': ^4.0.2 + '@itwin/eslint-plugin': 5.0.0-dev.1 '@types/chai': 4.3.1 '@types/fs-extra': ^4.0.7 '@types/mocha': ^10.0.6 @@ -1013,18 +1013,18 @@ importers: '@types/semver': 7.3.10 chai: ^4.3.10 cpx2: ^3.0.0 - eslint: ^8.56.0 + eslint: ^9.13.0 mocha: ^10.2.0 nyc: ^15.1.0 rimraf: ^3.0.2 semver: ^7.5.2 - typescript: ~5.3.3 + typescript: ~5.6.2 devDependencies: '@itwin/build-tools': link:../../../tools/build '@itwin/core-backend': link:../../../core/backend '@itwin/core-bentley': link:../../../core/bentley '@itwin/core-common': link:../../../core/common - '@itwin/eslint-plugin': 4.0.2_xdgzedli73k7lw4xlyzszm74om + '@itwin/eslint-plugin': 5.0.0-dev.1_aji6oyyaiulsuzmkdveqwiygte '@types/chai': 4.3.1 '@types/fs-extra': 4.0.7 '@types/mocha': 10.0.6 @@ -1032,12 +1032,12 @@ importers: '@types/semver': 7.3.10 chai: 4.3.10 cpx2: 3.0.0 - eslint: 8.56.0 + eslint: 9.13.0 mocha: 10.2.0 nyc: 15.1.0 rimraf: 3.0.2 semver: 7.5.2 - typescript: 5.3.3 + typescript: 5.6.2 ../../domains/linear-referencing/backend: specifiers: @@ -1045,7 +1045,7 @@ importers: '@itwin/core-backend': workspace:* '@itwin/core-bentley': workspace:* '@itwin/core-common': workspace:* - '@itwin/eslint-plugin': ^4.0.2 + '@itwin/eslint-plugin': 5.0.0-dev.1 '@itwin/linear-referencing-common': workspace:* '@types/chai': 4.3.1 '@types/fs-extra': ^4.0.7 @@ -1053,17 +1053,17 @@ importers: '@types/node': ~18.16.20 chai: ^4.3.10 cpx2: ^3.0.0 - eslint: ^8.56.0 + eslint: ^9.13.0 mocha: ^10.2.0 nyc: ^15.1.0 rimraf: ^3.0.2 - typescript: ~5.3.3 + typescript: ~5.6.2 devDependencies: '@itwin/build-tools': link:../../../tools/build '@itwin/core-backend': link:../../../core/backend '@itwin/core-bentley': link:../../../core/bentley '@itwin/core-common': link:../../../core/common - '@itwin/eslint-plugin': 4.0.2_xdgzedli73k7lw4xlyzszm74om + '@itwin/eslint-plugin': 5.0.0-dev.1_aji6oyyaiulsuzmkdveqwiygte '@itwin/linear-referencing-common': link:../common '@types/chai': 4.3.1 '@types/fs-extra': 4.0.7 @@ -1071,41 +1071,41 @@ importers: '@types/node': 18.16.20 chai: 4.3.10 cpx2: 3.0.0 - eslint: 8.56.0 + eslint: 9.13.0 mocha: 10.2.0 nyc: 15.1.0 rimraf: 3.0.2 - typescript: 5.3.3 + typescript: 5.6.2 ../../domains/linear-referencing/common: specifiers: '@itwin/build-tools': workspace:* '@itwin/core-bentley': workspace:* '@itwin/core-common': workspace:* - '@itwin/eslint-plugin': ^4.0.2 + '@itwin/eslint-plugin': 5.0.0-dev.1 '@types/chai': 4.3.1 '@types/fs-extra': ^4.0.7 '@types/mocha': ^10.0.6 chai: ^4.3.10 - eslint: ^8.56.0 + eslint: ^9.13.0 mocha: ^10.2.0 nyc: ^15.1.0 rimraf: ^3.0.2 - typescript: ~5.3.3 + typescript: ~5.6.2 devDependencies: '@itwin/build-tools': link:../../../tools/build '@itwin/core-bentley': link:../../../core/bentley '@itwin/core-common': link:../../../core/common - '@itwin/eslint-plugin': 4.0.2_xdgzedli73k7lw4xlyzszm74om + '@itwin/eslint-plugin': 5.0.0-dev.1_aji6oyyaiulsuzmkdveqwiygte '@types/chai': 4.3.1 '@types/fs-extra': 4.0.7 '@types/mocha': 10.0.6 chai: 4.3.10 - eslint: 8.56.0 + eslint: 9.13.0 mocha: 10.2.0 nyc: 15.1.0 rimraf: 3.0.2 - typescript: 5.3.3 + typescript: 5.6.2 ../../domains/physical-material/backend: specifiers: @@ -1113,33 +1113,33 @@ importers: '@itwin/core-backend': workspace:* '@itwin/core-bentley': workspace:* '@itwin/core-common': workspace:* - '@itwin/eslint-plugin': ^4.0.2 + '@itwin/eslint-plugin': 5.0.0-dev.1 '@types/chai': 4.3.1 '@types/fs-extra': ^4.0.7 '@types/mocha': ^10.0.6 '@types/node': ~18.16.20 chai: ^4.3.10 - eslint: ^8.56.0 + eslint: ^9.13.0 mocha: ^10.2.0 nyc: ^15.1.0 rimraf: ^3.0.2 - typescript: ~5.3.3 + typescript: ~5.6.2 devDependencies: '@itwin/build-tools': link:../../../tools/build '@itwin/core-backend': link:../../../core/backend '@itwin/core-bentley': link:../../../core/bentley '@itwin/core-common': link:../../../core/common - '@itwin/eslint-plugin': 4.0.2_xdgzedli73k7lw4xlyzszm74om + '@itwin/eslint-plugin': 5.0.0-dev.1_aji6oyyaiulsuzmkdveqwiygte '@types/chai': 4.3.1 '@types/fs-extra': 4.0.7 '@types/mocha': 10.0.6 '@types/node': 18.16.20 chai: 4.3.10 - eslint: 8.56.0 + eslint: 9.13.0 mocha: 10.2.0 nyc: 15.1.0 rimraf: 3.0.2 - typescript: 5.3.3 + typescript: 5.6.2 ../../editor/backend: specifiers: @@ -1149,10 +1149,10 @@ importers: '@itwin/core-common': workspace:* '@itwin/core-geometry': workspace:* '@itwin/editor-common': workspace:* - '@itwin/eslint-plugin': ^4.0.2 - eslint: ^8.56.0 + '@itwin/eslint-plugin': 5.0.0-dev.1 + eslint: ^9.13.0 rimraf: ^3.0.2 - typescript: ~5.3.3 + typescript: ~5.6.2 dependencies: '@itwin/editor-common': link:../common devDependencies: @@ -1161,10 +1161,10 @@ importers: '@itwin/core-bentley': link:../../core/bentley '@itwin/core-common': link:../../core/common '@itwin/core-geometry': link:../../core/geometry - '@itwin/eslint-plugin': 4.0.2_xdgzedli73k7lw4xlyzszm74om - eslint: 8.56.0 + '@itwin/eslint-plugin': 5.0.0-dev.1_aji6oyyaiulsuzmkdveqwiygte + eslint: 9.13.0 rimraf: 3.0.2 - typescript: 5.3.3 + typescript: 5.6.2 ../../editor/common: specifiers: @@ -1172,27 +1172,27 @@ importers: '@itwin/core-bentley': workspace:* '@itwin/core-common': workspace:* '@itwin/core-geometry': workspace:* - '@itwin/eslint-plugin': ^4.0.2 + '@itwin/eslint-plugin': 5.0.0-dev.1 '@types/chai': 4.3.1 '@types/mocha': ^10.0.6 chai: ^4.3.10 - eslint: ^8.56.0 + eslint: ^9.13.0 mocha: ^10.2.0 rimraf: ^3.0.2 - typescript: ~5.3.3 + typescript: ~5.6.2 devDependencies: '@itwin/build-tools': link:../../tools/build '@itwin/core-bentley': link:../../core/bentley '@itwin/core-common': link:../../core/common '@itwin/core-geometry': link:../../core/geometry - '@itwin/eslint-plugin': 4.0.2_xdgzedli73k7lw4xlyzszm74om + '@itwin/eslint-plugin': 5.0.0-dev.1_aji6oyyaiulsuzmkdveqwiygte '@types/chai': 4.3.1 '@types/mocha': 10.0.6 chai: 4.3.10 - eslint: 8.56.0 + eslint: 9.13.0 mocha: 10.2.0 rimraf: 3.0.2 - typescript: 5.3.3 + typescript: 5.6.2 ../../editor/frontend: specifiers: @@ -1204,11 +1204,11 @@ importers: '@itwin/core-frontend': workspace:* '@itwin/core-geometry': workspace:* '@itwin/editor-common': workspace:* - '@itwin/eslint-plugin': ^4.0.2 + '@itwin/eslint-plugin': 5.0.0-dev.1 cpx2: ^3.0.0 - eslint: ^8.56.0 + eslint: ^9.13.0 rimraf: ^3.0.2 - typescript: ~5.3.3 + typescript: ~5.6.2 dependencies: '@itwin/editor-common': link:../common devDependencies: @@ -1219,11 +1219,11 @@ importers: '@itwin/core-common': link:../../core/common '@itwin/core-frontend': link:../../core/frontend '@itwin/core-geometry': link:../../core/geometry - '@itwin/eslint-plugin': 4.0.2_xdgzedli73k7lw4xlyzszm74om + '@itwin/eslint-plugin': 5.0.0-dev.1_aji6oyyaiulsuzmkdveqwiygte cpx2: 3.0.0 - eslint: 8.56.0 + eslint: 9.13.0 rimraf: 3.0.2 - typescript: 5.3.3 + typescript: 5.6.2 ../../example-code/app: specifiers: @@ -1234,7 +1234,7 @@ importers: '@itwin/core-electron': workspace:* '@itwin/core-frontend': workspace:* '@itwin/core-geometry': workspace:* - '@itwin/eslint-plugin': ^4.0.2 + '@itwin/eslint-plugin': 5.0.0-dev.1 '@itwin/oidc-signin-tool': ^4.3.5 '@types/chai': 4.3.1 '@types/mocha': ^10.0.6 @@ -1242,10 +1242,10 @@ importers: chai: ^4.3.10 cpx2: ^3.0.0 electron: ^33.0.0 - eslint: ^8.56.0 + eslint: ^9.13.0 mocha: ^10.2.0 rimraf: ^3.0.2 - typescript: ~5.3.3 + typescript: ~5.6.2 dependencies: '@itwin/core-backend': link:../../core/backend '@itwin/core-bentley': link:../../core/bentley @@ -1256,17 +1256,17 @@ importers: electron: 33.0.0 devDependencies: '@itwin/build-tools': link:../../tools/build - '@itwin/eslint-plugin': 4.0.2_xdgzedli73k7lw4xlyzszm74om + '@itwin/eslint-plugin': 5.0.0-dev.1_aji6oyyaiulsuzmkdveqwiygte '@itwin/oidc-signin-tool': 4.3.5_67wltvhdskk2oee2c3z2o4tfly '@types/chai': 4.3.1 '@types/mocha': 10.0.6 '@types/node': 18.16.20 chai: 4.3.10 cpx2: 3.0.0 - eslint: 8.56.0 + eslint: 9.13.0 mocha: 10.2.0 rimraf: 3.0.2 - typescript: 5.3.3 + typescript: 5.6.2 ../../example-code/snippets: specifiers: @@ -1281,7 +1281,7 @@ importers: '@itwin/ecschema-editing': workspace:* '@itwin/ecschema-locaters': workspace:* '@itwin/ecschema-metadata': workspace:* - '@itwin/eslint-plugin': ^4.0.2 + '@itwin/eslint-plugin': 5.0.0-dev.1 '@itwin/imodel-transformer': ^0.4.2 '@itwin/itwins-client': ^1.2.0 '@itwin/oidc-signin-tool': ^4.3.5 @@ -1296,13 +1296,13 @@ importers: chai: ^4.3.10 chai-as-promised: ^7.1.1 cpx2: ^3.0.0 - eslint: ^8.56.0 + eslint: ^9.13.0 fs-extra: ^8.1.0 mkdirp: ^1.0.4 mocha: ^10.2.0 npm-run-all: ^4.1.5 rimraf: ^3.0.2 - typescript: ~5.3.3 + typescript: ~5.6.2 dependencies: '@azure/storage-blob': 12.24.0 '@itwin/core-backend': link:../../core/backend @@ -1322,7 +1322,7 @@ importers: fs-extra: 8.1.0 devDependencies: '@itwin/build-tools': link:../../tools/build - '@itwin/eslint-plugin': 4.0.2_xdgzedli73k7lw4xlyzszm74om + '@itwin/eslint-plugin': 5.0.0-dev.1_aji6oyyaiulsuzmkdveqwiygte '@itwin/oidc-signin-tool': 4.3.5_67wltvhdskk2oee2c3z2o4tfly '@types/chai': 4.3.1 '@types/chai-as-promised': 7.1.0 @@ -1332,12 +1332,12 @@ importers: chai: 4.3.10 chai-as-promised: 7.1.1_chai@4.3.10 cpx2: 3.0.0 - eslint: 8.56.0 + eslint: 9.13.0 mkdirp: 1.0.4 mocha: 10.2.0 npm-run-all: 4.1.5 rimraf: 3.0.2 - typescript: 5.3.3 + typescript: 5.6.2 ../../extensions/frontend-tiles: specifiers: @@ -1347,7 +1347,7 @@ importers: '@itwin/core-common': workspace:* '@itwin/core-frontend': workspace:* '@itwin/core-geometry': workspace:* - '@itwin/eslint-plugin': ^4.0.2 + '@itwin/eslint-plugin': 5.0.0-dev.1 '@types/chai': 4.3.1 '@types/chai-as-promised': ^7 '@types/mocha': ^10.0.6 @@ -1357,13 +1357,13 @@ importers: babel-plugin-istanbul: ~6.1.1 chai: ^4.3.10 chai-as-promised: ^7.1.1 - eslint: ^8.56.0 + eslint: ^9.13.0 glob: ^10.3.12 mocha: ^10.2.0 rimraf: ^3.0.2 sinon: ^17.0.2 source-map-loader: ^4.0.0 - typescript: ~5.3.3 + typescript: ~5.6.2 webpack: ^5.76.0 devDependencies: '@itwin/build-tools': link:../../tools/build @@ -1372,7 +1372,7 @@ importers: '@itwin/core-common': link:../../core/common '@itwin/core-frontend': link:../../core/frontend '@itwin/core-geometry': link:../../core/geometry - '@itwin/eslint-plugin': 4.0.2_xdgzedli73k7lw4xlyzszm74om + '@itwin/eslint-plugin': 5.0.0-dev.1_aji6oyyaiulsuzmkdveqwiygte '@types/chai': 4.3.1 '@types/chai-as-promised': 7.1.0 '@types/mocha': 10.0.6 @@ -1382,13 +1382,13 @@ importers: babel-plugin-istanbul: 6.1.1 chai: 4.3.10 chai-as-promised: 7.1.1_chai@4.3.10 - eslint: 8.56.0 + eslint: 9.13.0 glob: 10.3.12 mocha: 10.2.0 rimraf: 3.0.2 sinon: 17.0.2 source-map-loader: 4.0.0_webpack@5.76.0 - typescript: 5.3.3 + typescript: 5.6.2 webpack: 5.76.0 ../../extensions/map-layers-auth: @@ -1397,13 +1397,13 @@ importers: '@itwin/core-bentley': workspace:* '@itwin/core-common': workspace:* '@itwin/core-frontend': workspace:* - '@itwin/eslint-plugin': ^4.0.2 + '@itwin/eslint-plugin': 5.0.0-dev.1 '@types/chai': 4.3.1 '@types/mocha': ^10.0.6 '@types/sinon': ^17.0.2 '@types/sinon-chai': ^3.2.0 chai: ^4.3.10 - eslint: ^8.56.0 + eslint: ^9.13.0 fetch-mock: ~11.1.3 ignore-styles: ^5.0.1 jsdom: ^19.0.0 @@ -1414,19 +1414,19 @@ importers: sinon: ^17.0.2 sinon-chai: ^3.7.0 source-map-support: ^0.5.6 - typescript: ~5.3.3 + typescript: ~5.6.2 devDependencies: '@itwin/build-tools': link:../../tools/build '@itwin/core-bentley': link:../../core/bentley '@itwin/core-common': link:../../core/common '@itwin/core-frontend': link:../../core/frontend - '@itwin/eslint-plugin': 4.0.2_xdgzedli73k7lw4xlyzszm74om + '@itwin/eslint-plugin': 5.0.0-dev.1_aji6oyyaiulsuzmkdveqwiygte '@types/chai': 4.3.1 '@types/mocha': 10.0.6 '@types/sinon': 17.0.2 '@types/sinon-chai': 3.2.0 chai: 4.3.10 - eslint: 8.56.0 + eslint: 9.13.0 fetch-mock: 11.1.3 ignore-styles: 5.0.1 jsdom: 19.0.0 @@ -1437,7 +1437,7 @@ importers: sinon: 17.0.2 sinon-chai: 3.7.0_chai@4.3.10+sinon@17.0.2 source-map-support: 0.5.6 - typescript: 5.3.3 + typescript: 5.6.2 ../../extensions/map-layers-formats: specifiers: @@ -1447,7 +1447,7 @@ importers: '@itwin/core-common': workspace:* '@itwin/core-frontend': workspace:* '@itwin/core-geometry': workspace:* - '@itwin/eslint-plugin': ^4.0.2 + '@itwin/eslint-plugin': 5.0.0-dev.1 '@types/chai': 4.3.1 '@types/chai-as-promised': ^7 '@types/geojson': ~7946.0.14 @@ -1458,7 +1458,7 @@ importers: chai: ^4.3.10 chai-as-promised: ^7.1.1 cpx2: ^3.0.0 - eslint: ^8.56.0 + eslint: ^9.13.0 fetch-mock: ~11.1.3 flatbush: ~4.4.0 google-protobuf: ~3.20.1 @@ -1472,7 +1472,7 @@ importers: sinon-chai: ^3.7.0 source-map-support: ^0.5.6 typemoq: ^2.1.0 - typescript: ~5.3.3 + typescript: ~5.6.2 dependencies: flatbush: 4.4.0 google-protobuf: 3.20.1 @@ -1483,7 +1483,7 @@ importers: '@itwin/core-common': link:../../core/common '@itwin/core-frontend': link:../../core/frontend '@itwin/core-geometry': link:../../core/geometry - '@itwin/eslint-plugin': 4.0.2_xdgzedli73k7lw4xlyzszm74om + '@itwin/eslint-plugin': 5.0.0-dev.1_aji6oyyaiulsuzmkdveqwiygte '@types/chai': 4.3.1 '@types/chai-as-promised': 7.1.0 '@types/geojson': 7946.0.14 @@ -1494,7 +1494,7 @@ importers: chai: 4.3.10 chai-as-promised: 7.1.1_chai@4.3.10 cpx2: 3.0.0 - eslint: 8.56.0 + eslint: 9.13.0 fetch-mock: 11.1.3 ignore-styles: 5.0.1 jsdom: 19.0.0 @@ -1506,18 +1506,18 @@ importers: sinon-chai: 3.7.0_chai@4.3.10+sinon@17.0.2 source-map-support: 0.5.6 typemoq: 2.1.0 - typescript: 5.3.3 + typescript: 5.6.2 ../../extensions/test-extension: specifiers: '@itwin/build-tools': workspace:* '@itwin/core-extension': workspace:* - '@itwin/eslint-plugin': ^4.0.2 + '@itwin/eslint-plugin': 5.0.0-dev.1 buffer: ^6.0.3 esbuild: ^0.13.8 - eslint: ^8.56.0 + eslint: ^9.13.0 rimraf: ^3.0.2 - typescript: ~5.3.3 + typescript: ~5.6.2 url: ^0.11.0 dependencies: '@itwin/core-extension': link:../../core/extension @@ -1525,11 +1525,11 @@ importers: url: 0.11.0 devDependencies: '@itwin/build-tools': link:../../tools/build - '@itwin/eslint-plugin': 4.0.2_xdgzedli73k7lw4xlyzszm74om + '@itwin/eslint-plugin': 5.0.0-dev.1_aji6oyyaiulsuzmkdveqwiygte esbuild: 0.13.8 - eslint: 8.56.0 + eslint: 9.13.0 rimraf: 3.0.2 - typescript: 5.3.3 + typescript: 5.6.2 ../../full-stack-tests/backend: specifiers: @@ -1557,7 +1557,7 @@ importers: '@itwin/core-common': workspace:* '@itwin/core-geometry': workspace:* '@itwin/ecschema-metadata': workspace:* - '@itwin/eslint-plugin': ^4.0.2 + '@itwin/eslint-plugin': 5.0.0-dev.1 '@itwin/imodels-access-backend': ^5.2.1 '@itwin/imodels-client-authoring': ^5.8.1 '@itwin/itwins-client': ^1.2.0 @@ -1572,9 +1572,9 @@ importers: chai: ^4.3.10 chai-as-promised: ^7.1.1 cpx2: ^3.0.0 - dotenv: ^10.0.0 + dotenv: ^16.4.5 dotenv-expand: ^5.1.0 - eslint: ^8.56.0 + eslint: ^9.13.0 fs-extra: ^8.1.0 internal-tools: workspace:* mkdirp: ^1.0.4 @@ -1583,7 +1583,7 @@ importers: nyc: ^15.1.0 rimraf: ^3.0.2 sinon: ^17.0.2 - typescript: ~5.3.3 + typescript: ~5.6.2 dependencies: '@azure/storage-blob': 12.24.0 '@bentley/aec-units-schema': 1.0.3 @@ -1617,9 +1617,9 @@ importers: chai: 4.3.10 chai-as-promised: 7.1.1_chai@4.3.10 cpx2: 3.0.0 - dotenv: 10.0.0 + dotenv: 16.4.5 dotenv-expand: 5.1.0 - eslint: 8.56.0 + eslint: 9.13.0 fs-extra: 8.1.0 mocha: 10.2.0 nyc: 15.1.0 @@ -1627,7 +1627,7 @@ importers: sinon: 17.0.2 devDependencies: '@itwin/build-tools': link:../../tools/build - '@itwin/eslint-plugin': 4.0.2_xdgzedli73k7lw4xlyzszm74om + '@itwin/eslint-plugin': 5.0.0-dev.1_aji6oyyaiulsuzmkdveqwiygte '@types/chai': 4.3.1 '@types/chai-as-promised': 7.1.0 '@types/fs-extra': 4.0.7 @@ -1636,7 +1636,7 @@ importers: internal-tools: link:../../tools/internal mkdirp: 1.0.4 npm-run-all: 4.1.5 - typescript: 5.3.3 + typescript: 5.6.2 ../../full-stack-tests/core: specifiers: @@ -1659,7 +1659,7 @@ importers: '@itwin/editor-common': workspace:* '@itwin/editor-frontend': workspace:* '@itwin/electron-authorization': ^0.19.5 - '@itwin/eslint-plugin': ^4.0.2 + '@itwin/eslint-plugin': 5.0.0-dev.1 '@itwin/express-server': workspace:* '@itwin/hypermodeling-frontend': workspace:* '@itwin/imodels-access-backend': ^5.2.1 @@ -1685,10 +1685,10 @@ importers: chai: ^4.3.10 chai-as-promised: ^7.1.1 crypto-browserify: 3.12.0 - dotenv: ^10.0.0 + dotenv: ^16.4.5 dotenv-expand: ^5.1.0 electron: ^33.0.0 - eslint: ^8.56.0 + eslint: ^9.13.0 fs-extra: ^8.1.0 glob: ^10.3.12 https-browserify: ^1.0.0 @@ -1705,7 +1705,7 @@ importers: source-map-loader: ^4.0.0 stream-browserify: ^3.0.0 stream-http: ^3.2.0 - typescript: ~5.3.3 + typescript: ~5.6.2 webpack: ^5.76.0 webpack-cli: ^5.0.1 dependencies: @@ -1743,7 +1743,7 @@ importers: devDependencies: '@itwin/build-tools': link:../../tools/build '@itwin/certa': link:../../tools/certa - '@itwin/eslint-plugin': 4.0.2_xdgzedli73k7lw4xlyzszm74om + '@itwin/eslint-plugin': 5.0.0-dev.1_aji6oyyaiulsuzmkdveqwiygte '@itwin/itwins-client': 1.2.0 '@itwin/object-storage-core': 2.2.5 '@itwin/oidc-signin-tool': 4.3.5_67wltvhdskk2oee2c3z2o4tfly @@ -1759,9 +1759,9 @@ importers: babel-plugin-istanbul: 6.1.1 browserify-zlib: 0.2.0 crypto-browserify: 3.12.0 - dotenv: 10.0.0 + dotenv: 16.4.5 dotenv-expand: 5.1.0 - eslint: 8.56.0 + eslint: 9.13.0 glob: 10.3.12 https-browserify: 1.0.0 internal-tools: link:../../tools/internal @@ -1775,7 +1775,7 @@ importers: source-map-loader: 4.0.0_webpack@5.76.0 stream-browserify: 3.0.0 stream-http: 3.2.0 - typescript: 5.3.3 + typescript: 5.6.2 webpack: 5.76.0_webpack-cli@5.0.1 webpack-cli: 5.0.1_webpack@5.76.0 @@ -1792,7 +1792,7 @@ importers: '@itwin/ecschema-metadata': workspace:* '@itwin/ecschema-rpcinterface-common': workspace:* '@itwin/ecschema-rpcinterface-impl': workspace:* - '@itwin/eslint-plugin': ^4.0.2 + '@itwin/eslint-plugin': 5.0.0-dev.1 '@itwin/express-server': workspace:* '@itwin/imodels-access-backend': ^5.2.1 '@itwin/imodels-access-frontend': ^5.2.1 @@ -1811,9 +1811,9 @@ importers: chai: ^4.3.10 chai-as-promised: ^7.1.1 cpx2: ^3.0.0 - dotenv: ^10.0.0 + dotenv: ^16.4.5 dotenv-expand: ^5.1.0 - eslint: ^8.56.0 + eslint: ^9.13.0 glob: ^10.3.12 internal-tools: workspace:* mocha: ^10.2.0 @@ -1824,7 +1824,7 @@ importers: rimraf: ^3.0.2 source-map-loader: ^4.0.0 stream-browserify: ^3.0.0 - typescript: ~5.3.3 + typescript: ~5.6.2 webpack: ^5.76.0 webpack-cli: ^5.0.1 dependencies: @@ -1847,13 +1847,13 @@ importers: '@itwin/presentation-frontend': link:../../presentation/frontend chai: 4.3.10 chai-as-promised: 7.1.1_chai@4.3.10 - dotenv: 10.0.0 + dotenv: 16.4.5 dotenv-expand: 5.1.0 mocha: 10.2.0 openid-client: 4.7.4 devDependencies: '@itwin/core-backend': link:../../core/backend - '@itwin/eslint-plugin': 4.0.2_xdgzedli73k7lw4xlyzszm74om + '@itwin/eslint-plugin': 5.0.0-dev.1_aji6oyyaiulsuzmkdveqwiygte '@itwin/express-server': link:../../core/express-server '@itwin/itwins-client': 1.2.0 '@types/chai': 4.3.1 @@ -1863,7 +1863,7 @@ importers: assert: 2.0.0 browserify-zlib: 0.2.0 cpx2: 3.0.0 - eslint: 8.56.0 + eslint: 9.13.0 glob: 10.3.12 internal-tools: link:../../tools/internal npm-run-all: 4.1.5 @@ -1872,7 +1872,7 @@ importers: rimraf: 3.0.2 source-map-loader: 4.0.0_webpack@5.76.0 stream-browserify: 3.0.0 - typescript: 5.3.3 + typescript: 5.6.2 webpack: 5.76.0_webpack-cli@5.0.1 webpack-cli: 5.0.1_webpack@5.76.0 @@ -1889,7 +1889,7 @@ importers: '@itwin/ecschema-metadata': workspace:* '@itwin/ecschema-rpcinterface-common': workspace:* '@itwin/ecschema-rpcinterface-impl': workspace:* - '@itwin/eslint-plugin': ^4.0.2 + '@itwin/eslint-plugin': 5.0.0-dev.1 '@itwin/presentation-backend': workspace:* '@itwin/presentation-common': workspace:* '@itwin/presentation-frontend': workspace:* @@ -1913,9 +1913,9 @@ importers: cpx2: ^3.0.0 cross-env: ^5.1.4 deep-equal: ^1 - dotenv: ^10.0.0 + dotenv: ^16.4.5 dotenv-expand: ^5.1.0 - eslint: ^8.56.0 + eslint: ^9.13.0 eslint-config-prettier: ^9.1.0 faker: ^4.1.0 fast-sort: ^3.0.2 @@ -1932,7 +1932,7 @@ importers: sinon-chai: ^3.7.0 source-map-support: ^0.5.6 typemoq: ^2.1.0 - typescript: ~5.3.3 + typescript: ~5.6.2 dependencies: '@itwin/core-backend': link:../../core/backend '@itwin/core-bentley': link:../../core/bentley @@ -1976,20 +1976,20 @@ importers: typemoq: 2.1.0 devDependencies: '@itwin/build-tools': link:../../tools/build - '@itwin/eslint-plugin': 4.0.2_xdgzedli73k7lw4xlyzszm74om + '@itwin/eslint-plugin': 5.0.0-dev.1_aji6oyyaiulsuzmkdveqwiygte cache-require-paths: 0.3.0 cross-env: 5.1.4 - dotenv: 10.0.0 + dotenv: 16.4.5 dotenv-expand: 5.1.0 - eslint: 8.56.0 - eslint-config-prettier: 9.1.0_eslint@8.56.0 + eslint: 9.13.0 + eslint-config-prettier: 9.1.0_eslint@9.13.0 i18next-http-backend: 1.4.4 internal-tools: link:../../tools/internal jsdom: 19.0.0 jsdom-global: 3.0.2_jsdom@19.0.0 prettier: 3.2.5 sanitize-filename: 1.6.3 - typescript: 5.3.3 + typescript: 5.6.2 ../../full-stack-tests/rpc: specifiers: @@ -2001,7 +2001,7 @@ importers: '@itwin/core-electron': workspace:* '@itwin/core-frontend': workspace:* '@itwin/core-mobile': workspace:* - '@itwin/eslint-plugin': ^4.0.2 + '@itwin/eslint-plugin': 5.0.0-dev.1 '@itwin/express-server': workspace:* '@types/chai': 4.3.1 '@types/express': ^4.17.20 @@ -2014,7 +2014,7 @@ importers: buffer: ^6.0.3 chai: ^4.3.10 electron: ^33.0.0 - eslint: ^8.56.0 + eslint: ^9.13.0 express: ^4.20.0 glob: ^10.3.12 null-loader: ^4.0.1 @@ -2023,7 +2023,7 @@ importers: source-map-loader: ^4.0.0 spdy: ^4.0.1 stream-browserify: ^3.0.0 - typescript: ~5.3.3 + typescript: ~5.6.2 webpack: ^5.76.0 webpack-cli: ^5.0.1 dependencies: @@ -2041,7 +2041,7 @@ importers: devDependencies: '@itwin/build-tools': link:../../tools/build '@itwin/certa': link:../../tools/certa - '@itwin/eslint-plugin': 4.0.2_xdgzedli73k7lw4xlyzszm74om + '@itwin/eslint-plugin': 5.0.0-dev.1_aji6oyyaiulsuzmkdveqwiygte '@types/chai': 4.3.1 '@types/express': 4.17.20 '@types/mocha': 10.0.6 @@ -2052,13 +2052,13 @@ importers: browserify-zlib: 0.2.0 buffer: 6.0.3 chai: 4.3.10 - eslint: 8.56.0 + eslint: 9.13.0 glob: 10.3.12 null-loader: 4.0.1_webpack@5.76.0 rimraf: 3.0.2 source-map-loader: 4.0.0_webpack@5.76.0 stream-browserify: 3.0.0 - typescript: 5.3.3 + typescript: 5.6.2 webpack: 5.76.0_webpack-cli@5.0.1 webpack-cli: 5.0.1_webpack@5.76.0 @@ -2072,7 +2072,7 @@ importers: '@itwin/core-frontend': workspace:* '@itwin/core-geometry': workspace:* '@itwin/core-quantity': workspace:* - '@itwin/eslint-plugin': ^4.0.2 + '@itwin/eslint-plugin': 5.0.0-dev.1 '@itwin/express-server': workspace:* '@itwin/imodels-access-backend': ^5.2.1 '@itwin/imodels-access-frontend': ^5.2.1 @@ -2094,9 +2094,9 @@ importers: chai: ^4.3.10 chai-as-promised: ^7.1.1 cpx2: ^3.0.0 - dotenv: ^10.0.0 + dotenv: ^16.4.5 dotenv-expand: ^5.1.0 - eslint: ^8.56.0 + eslint: ^9.13.0 glob: ^10.3.12 internal-tools: workspace:* mocha: ^10.2.0 @@ -2107,7 +2107,7 @@ importers: rimraf: ^3.0.2 source-map-loader: ^4.0.0 stream-browserify: ^3.0.0 - typescript: ~5.3.3 + typescript: ~5.6.2 webpack: ^5.76.0 webpack-cli: ^5.0.1 dependencies: @@ -2118,7 +2118,7 @@ importers: '@itwin/core-frontend': link:../../core/frontend '@itwin/core-geometry': link:../../core/geometry '@itwin/core-quantity': link:../../core/quantity - '@itwin/eslint-plugin': 4.0.2_xdgzedli73k7lw4xlyzszm74om + '@itwin/eslint-plugin': 5.0.0-dev.1_aji6oyyaiulsuzmkdveqwiygte '@itwin/imodels-access-backend': 5.2.1_wj555zckjupkhkzyssqqpl4sei '@itwin/imodels-access-frontend': 5.2.1_ueafa4slb6ohrhyf7kbp6egmha '@itwin/imodels-client-authoring': 5.8.1 @@ -2129,7 +2129,7 @@ importers: '@itwin/service-authorization': 1.0.0_67wltvhdskk2oee2c3z2o4tfly chai: 4.3.10 chai-as-promised: 7.1.1_chai@4.3.10 - dotenv: 10.0.0 + dotenv: 16.4.5 dotenv-expand: 5.1.0 mocha: 10.2.0 openid-client: 4.7.4 @@ -2146,7 +2146,7 @@ importers: browserify-zlib: 0.2.0 buffer: 6.0.3 cpx2: 3.0.0 - eslint: 8.56.0 + eslint: 9.13.0 glob: 10.3.12 internal-tools: link:../../tools/internal npm-run-all: 4.1.5 @@ -2155,7 +2155,7 @@ importers: rimraf: 3.0.2 source-map-loader: 4.0.0_webpack@5.76.0 stream-browserify: 3.0.0 - typescript: 5.3.3 + typescript: 5.6.2 webpack: 5.76.0_webpack-cli@5.0.1 webpack-cli: 5.0.1_webpack@5.76.0 @@ -2167,7 +2167,7 @@ importers: '@itwin/core-common': workspace:* '@itwin/core-quantity': workspace:* '@itwin/ecschema-metadata': workspace:* - '@itwin/eslint-plugin': ^4.0.2 + '@itwin/eslint-plugin': 5.0.0-dev.1 '@itwin/presentation-common': workspace:* '@sinonjs/fake-timers': ^11.2.2 '@types/chai': 4.3.1 @@ -2191,7 +2191,7 @@ importers: cpx2: ^3.0.0 cross-env: ^5.1.4 deep-equal: ^1 - eslint: ^8.56.0 + eslint: ^9.13.0 eslint-config-prettier: ^9.1.0 faker: ^4.1.0 mocha: ^10.2.0 @@ -2206,7 +2206,7 @@ importers: sinon-chai: ^3.7.0 source-map-support: ^0.5.6 typemoq: ^2.1.0 - typescript: ~5.3.3 + typescript: ~5.6.2 dependencies: object-hash: 1.3.1 rxjs: 7.8.1 @@ -2219,7 +2219,7 @@ importers: '@itwin/core-common': link:../../core/common '@itwin/core-quantity': link:../../core/quantity '@itwin/ecschema-metadata': link:../../core/ecschema-metadata - '@itwin/eslint-plugin': 4.0.2_xdgzedli73k7lw4xlyzszm74om + '@itwin/eslint-plugin': 5.0.0-dev.1_aji6oyyaiulsuzmkdveqwiygte '@itwin/presentation-common': link:../common '@sinonjs/fake-timers': 11.2.2 '@types/chai': 4.3.1 @@ -2243,8 +2243,8 @@ importers: cpx2: 3.0.0 cross-env: 5.1.4 deep-equal: 1.0.0 - eslint: 8.56.0 - eslint-config-prettier: 9.1.0_eslint@8.56.0 + eslint: 9.13.0 + eslint-config-prettier: 9.1.0_eslint@9.13.0 faker: 4.1.0 mocha: 10.2.0 nyc: 15.1.0 @@ -2254,7 +2254,7 @@ importers: sinon-chai: 3.7.0_chai@4.3.10+sinon@17.0.2 source-map-support: 0.5.6 typemoq: 2.1.0 - typescript: 5.3.3 + typescript: 5.6.2 ../../presentation/common: specifiers: @@ -2263,7 +2263,7 @@ importers: '@itwin/core-common': workspace:* '@itwin/core-quantity': workspace:* '@itwin/ecschema-metadata': workspace:* - '@itwin/eslint-plugin': ^4.0.2 + '@itwin/eslint-plugin': 5.0.0-dev.1 '@types/chai': 4.3.1 '@types/chai-as-promised': ^7 '@types/chai-jest-snapshot': ^1.3.8 @@ -2281,7 +2281,7 @@ importers: cpx2: ^3.0.0 cross-env: ^5.1.4 deep-equal: ^1 - eslint: ^8.56.0 + eslint: ^9.13.0 eslint-config-prettier: ^9.1.0 faker: ^4.1.0 json-schema-faker: 0.5.0-rc16 @@ -2293,7 +2293,7 @@ importers: sinon-chai: ^3.7.0 source-map-support: ^0.5.6 typemoq: ^2.1.0 - typescript: ~5.3.3 + typescript: ~5.6.2 typescript-json-schema: ^0.55.0 yargs: ^17.4.0 devDependencies: @@ -2302,7 +2302,7 @@ importers: '@itwin/core-common': link:../../core/common '@itwin/core-quantity': link:../../core/quantity '@itwin/ecschema-metadata': link:../../core/ecschema-metadata - '@itwin/eslint-plugin': 4.0.2_xdgzedli73k7lw4xlyzszm74om + '@itwin/eslint-plugin': 5.0.0-dev.1_aji6oyyaiulsuzmkdveqwiygte '@types/chai': 4.3.1 '@types/chai-as-promised': 7.1.0 '@types/chai-jest-snapshot': 1.3.8 @@ -2320,8 +2320,8 @@ importers: cpx2: 3.0.0 cross-env: 5.1.4 deep-equal: 1.0.0 - eslint: 8.56.0 - eslint-config-prettier: 9.1.0_eslint@8.56.0 + eslint: 9.13.0 + eslint-config-prettier: 9.1.0_eslint@9.13.0 faker: 4.1.0 json-schema-faker: 0.5.0-rc16 mocha: 10.2.0 @@ -2332,7 +2332,7 @@ importers: sinon-chai: 3.7.0_chai@4.3.10+sinon@17.0.2 source-map-support: 0.5.6 typemoq: 2.1.0 - typescript: 5.3.3 + typescript: 5.6.2 typescript-json-schema: 0.55.0 yargs: 17.4.0 @@ -2345,7 +2345,7 @@ importers: '@itwin/core-i18n': workspace:* '@itwin/core-quantity': workspace:* '@itwin/ecschema-metadata': workspace:* - '@itwin/eslint-plugin': ^4.0.2 + '@itwin/eslint-plugin': 5.0.0-dev.1 '@itwin/presentation-common': workspace:* '@itwin/unified-selection': ^0.1.0 '@types/chai': 4.3.1 @@ -2362,7 +2362,7 @@ importers: cpx2: ^3.0.0 cross-env: ^5.1.4 deep-equal: ^1 - eslint: ^8.56.0 + eslint: ^9.13.0 eslint-config-prettier: ^9.1.0 faker: ^4.1.0 jsdom: ^19.0.0 @@ -2377,7 +2377,7 @@ importers: sinon-chai: ^3.7.0 source-map-support: ^0.5.6 typemoq: ^2.1.0 - typescript: ~5.3.3 + typescript: ~5.6.2 dependencies: '@itwin/unified-selection': 0.1.0 rxjs: 7.8.1 @@ -2390,7 +2390,7 @@ importers: '@itwin/core-i18n': link:../../core/i18n '@itwin/core-quantity': link:../../core/quantity '@itwin/ecschema-metadata': link:../../core/ecschema-metadata - '@itwin/eslint-plugin': 4.0.2_xdgzedli73k7lw4xlyzszm74om + '@itwin/eslint-plugin': 5.0.0-dev.1_aji6oyyaiulsuzmkdveqwiygte '@itwin/presentation-common': link:../common '@types/chai': 4.3.1 '@types/chai-as-promised': 7.1.0 @@ -2406,8 +2406,8 @@ importers: cpx2: 3.0.0 cross-env: 5.1.4 deep-equal: 1.0.0 - eslint: 8.56.0 - eslint-config-prettier: 9.1.0_eslint@8.56.0 + eslint: 9.13.0 + eslint-config-prettier: 9.1.0_eslint@9.13.0 faker: 4.1.0 jsdom: 19.0.0 jsdom-global: 3.0.2_jsdom@19.0.0 @@ -2419,7 +2419,7 @@ importers: sinon-chai: 3.7.0_chai@4.3.10+sinon@17.0.2 source-map-support: 0.5.6 typemoq: 2.1.0 - typescript: 5.3.3 + typescript: 5.6.2 ../../test-apps/display-performance-test-app: specifiers: @@ -2435,7 +2435,7 @@ importers: '@itwin/core-mobile': workspace:* '@itwin/core-quantity': workspace:* '@itwin/electron-authorization': ^0.19.5 - '@itwin/eslint-plugin': ^4.0.2 + '@itwin/eslint-plugin': 5.0.0-dev.1 '@itwin/frontend-tiles': workspace:* '@itwin/hypermodeling-frontend': workspace:* '@itwin/imodels-access-backend': ^5.2.1 @@ -2448,17 +2448,17 @@ importers: '@types/body-parser': ^1.17.0 '@types/express': ^4.17.20 '@types/node': ~18.16.20 - '@typescript-eslint/parser': ~6.21.0 + '@typescript-eslint/parser': ~8.11.0 body-parser: ^1.20.3 browserslist-to-esbuild: ^1.2.0 child_process: ^1.0.2 chrome-launcher: ^0.15.2 cpx2: ^3.0.0 cross-env: ^5.1.4 - dotenv: ^10.0.0 + dotenv: ^16.4.5 dotenv-expand: ^5.1.0 electron: ^33.0.0 - eslint: ^8.56.0 + eslint: ^9.13.0 express: ^4.20.0 internal-tools: workspace:* npm-run-all: ^4.1.5 @@ -2470,7 +2470,7 @@ importers: rollup-plugin-ignore: ^1.0.10 rollup-plugin-visualizer: ^5.9.2 rollup-plugin-webpack-stats: ^0.2.0 - typescript: ~5.3.3 + typescript: ~5.6.2 vite: ^5.4.6 vite-plugin-env-compatible: ^2.0.1 vite-plugin-inspect: ^0.8.4 @@ -2498,21 +2498,21 @@ importers: body-parser: 1.20.3 devDependencies: '@itwin/build-tools': link:../../tools/build - '@itwin/eslint-plugin': 4.0.2_xdgzedli73k7lw4xlyzszm74om + '@itwin/eslint-plugin': 5.0.0-dev.1_aji6oyyaiulsuzmkdveqwiygte '@itwin/perf-tools': link:../../tools/perf-tools '@types/body-parser': 1.17.0 '@types/express': 4.17.20 '@types/node': 18.16.20 - '@typescript-eslint/parser': 6.21.0_xdgzedli73k7lw4xlyzszm74om + '@typescript-eslint/parser': 8.11.0_aji6oyyaiulsuzmkdveqwiygte browserslist-to-esbuild: 1.2.0 child_process: 1.0.2 chrome-launcher: 0.15.2 cpx2: 3.0.0 cross-env: 5.1.4 - dotenv: 10.0.0 + dotenv: 16.4.5 dotenv-expand: 5.1.0 electron: 33.0.0 - eslint: 8.56.0 + eslint: 9.13.0 express: 4.20.0 internal-tools: link:../../tools/internal npm-run-all: 4.1.5 @@ -2524,7 +2524,7 @@ importers: rollup-plugin-ignore: 1.0.10 rollup-plugin-visualizer: 5.9.2 rollup-plugin-webpack-stats: 0.2.0 - typescript: 5.3.3 + typescript: 5.6.2 vite: 5.4.6_@types+node@18.16.20 vite-plugin-env-compatible: 2.0.1 vite-plugin-inspect: 0.8.4_vite@5.4.6 @@ -2553,7 +2553,7 @@ importers: '@itwin/editor-common': workspace:* '@itwin/editor-frontend': workspace:* '@itwin/electron-authorization': ^0.19.5 - '@itwin/eslint-plugin': ^4.0.2 + '@itwin/eslint-plugin': 5.0.0-dev.1 '@itwin/frontend-devtools': workspace:* '@itwin/frontend-tiles': workspace:* '@itwin/hypermodeling-frontend': workspace:* @@ -2568,21 +2568,22 @@ importers: '@types/express': ^4.17.20 '@types/express-ws': ^3.0.3 '@types/fs-extra': ^4.0.7 - '@typescript-eslint/parser': ~6.21.0 + '@types/node': ~18.16.20 + '@typescript-eslint/parser': ~8.11.0 body-parser: ^1.20.3 browserslist-to-esbuild: ^1.2.0 child_process: ^1.0.2 cpx2: ^3.0.0 cross-env: ^5.1.4 - dotenv: ^10.0.0 + dotenv: ^16.4.5 dotenv-expand: ^5.1.0 electron: ^33.0.0 - eslint: ^8.56.0 + eslint: ^9.13.0 express: ^4.20.0 express-ws: ^5.0.2 fs-extra: ^8.1.0 internal-tools: workspace:* - node-simctl: ~7.2.1 + node-simctl: ~7.6.1 npm-run-all: ^4.1.5 null-loader: ^4.0.1 react: ^18.0.0 @@ -2592,8 +2593,7 @@ importers: rollup-plugin-ignore: ^1.0.10 rollup-plugin-visualizer: ^5.9.2 rollup-plugin-webpack-stats: ^0.2.0 - ts-node: ^10.8.2 - typescript: ~5.3.3 + typescript: ~5.6.2 vhacd-js: ^0.0.1 vite: ^5.4.6 vite-plugin-env-compatible: ^2.0.1 @@ -2635,24 +2635,25 @@ importers: '@itwin/backend-webpack-tools': link:../../tools/backend-webpack '@itwin/build-tools': link:../../tools/build '@itwin/core-webpack-tools': link:../../tools/webpack-core - '@itwin/eslint-plugin': 4.0.2_xdgzedli73k7lw4xlyzszm74om + '@itwin/eslint-plugin': 5.0.0-dev.1_aji6oyyaiulsuzmkdveqwiygte '@types/express': 4.17.20 '@types/express-ws': 3.0.3 '@types/fs-extra': 4.0.7 - '@typescript-eslint/parser': 6.21.0_xdgzedli73k7lw4xlyzszm74om + '@types/node': 18.16.20 + '@typescript-eslint/parser': 8.11.0_aji6oyyaiulsuzmkdveqwiygte browserslist-to-esbuild: 1.2.0 child_process: 1.0.2 cpx2: 3.0.0 cross-env: 5.1.4 - dotenv: 10.0.0 + dotenv: 16.4.5 dotenv-expand: 5.1.0 electron: 33.0.0 - eslint: 8.56.0 + eslint: 9.13.0 express: 4.20.0 express-ws: 5.0.2_express@4.20.0 fs-extra: 8.1.0 internal-tools: link:../../tools/internal - node-simctl: 7.2.1 + node-simctl: 7.6.1 npm-run-all: 4.1.5 null-loader: 4.0.1_webpack@5.76.0 react: 18.0.0 @@ -2662,9 +2663,8 @@ importers: rollup-plugin-ignore: 1.0.10 rollup-plugin-visualizer: 5.9.2 rollup-plugin-webpack-stats: 0.2.0 - ts-node: 10.8.2_typescript@5.3.3 - typescript: 5.3.3 - vite: 5.4.6 + typescript: 5.6.2 + vite: 5.4.6_@types+node@18.16.20 vite-plugin-env-compatible: 2.0.1 vite-plugin-inspect: 0.8.4_vite@5.4.6 webpack: 5.76.0 @@ -2676,12 +2676,12 @@ importers: '@itwin/core-bentley': workspace:* '@itwin/core-common': workspace:* '@itwin/core-geometry': workspace:* - '@itwin/eslint-plugin': ^4.0.2 + '@itwin/eslint-plugin': 5.0.0-dev.1 '@types/node': ~18.16.20 '@types/yargs': 17.0.19 - eslint: ^8.56.0 + eslint: ^9.13.0 rimraf: ^3.0.2 - typescript: ~5.3.3 + typescript: ~5.6.2 yargs: ^17.4.0 dependencies: '@itwin/core-backend': link:../../core/backend @@ -2691,12 +2691,12 @@ importers: yargs: 17.4.0 devDependencies: '@itwin/build-tools': link:../../tools/build - '@itwin/eslint-plugin': 4.0.2_xdgzedli73k7lw4xlyzszm74om + '@itwin/eslint-plugin': 5.0.0-dev.1_aji6oyyaiulsuzmkdveqwiygte '@types/node': 18.16.20 '@types/yargs': 17.0.19 - eslint: 8.56.0 + eslint: 9.13.0 rimraf: 3.0.2 - typescript: 5.3.3 + typescript: 5.6.2 ../../test-apps/imjs-importer: specifiers: @@ -2705,16 +2705,16 @@ importers: '@itwin/core-bentley': workspace:* '@itwin/core-common': workspace:* '@itwin/core-geometry': workspace:* - '@itwin/eslint-plugin': ^4.0.2 + '@itwin/eslint-plugin': 5.0.0-dev.1 '@types/chai': 4.3.1 '@types/mocha': ^10.0.6 '@types/node': ~18.16.20 '@types/yargs': 17.0.19 chai: ^4.3.10 - eslint: ^8.56.0 + eslint: ^9.13.0 mocha: ^10.2.0 rimraf: ^3.0.2 - typescript: ~5.3.3 + typescript: ~5.6.2 yargs: ^17.4.0 dependencies: '@itwin/core-backend': link:../../core/backend @@ -2725,15 +2725,15 @@ importers: yargs: 17.4.0 devDependencies: '@itwin/build-tools': link:../../tools/build - '@itwin/eslint-plugin': 4.0.2_xdgzedli73k7lw4xlyzszm74om + '@itwin/eslint-plugin': 5.0.0-dev.1_aji6oyyaiulsuzmkdveqwiygte '@types/chai': 4.3.1 '@types/mocha': 10.0.6 '@types/node': 18.16.20 '@types/yargs': 17.0.19 - eslint: 8.56.0 + eslint: 9.13.0 mocha: 10.2.0 rimraf: 3.0.2 - typescript: 5.3.3 + typescript: 5.6.2 ../../test-apps/imodel-from-geojson: specifiers: @@ -2742,15 +2742,15 @@ importers: '@itwin/core-bentley': workspace:* '@itwin/core-common': workspace:* '@itwin/core-geometry': workspace:* - '@itwin/eslint-plugin': ^4.0.2 + '@itwin/eslint-plugin': 5.0.0-dev.1 '@types/fs-extra': ^4.0.7 '@types/lodash': ^4.14.202 '@types/node': ~18.16.20 '@types/yargs': 17.0.19 - eslint: ^8.56.0 + eslint: ^9.13.0 fs-extra: ^8.1.0 rimraf: ^3.0.2 - typescript: ~5.3.3 + typescript: ~5.6.2 yargs: ^17.4.0 dependencies: '@itwin/core-backend': link:../../core/backend @@ -2761,14 +2761,14 @@ importers: yargs: 17.4.0 devDependencies: '@itwin/build-tools': link:../../tools/build - '@itwin/eslint-plugin': 4.0.2_xdgzedli73k7lw4xlyzszm74om + '@itwin/eslint-plugin': 5.0.0-dev.1_aji6oyyaiulsuzmkdveqwiygte '@types/fs-extra': 4.0.7 '@types/lodash': 4.14.202 '@types/node': 18.16.20 '@types/yargs': 17.0.19 - eslint: 8.56.0 + eslint: 9.13.0 rimraf: 3.0.2 - typescript: 5.3.3 + typescript: 5.6.2 ../../test-apps/imodel-from-orbitgt: specifiers: @@ -2778,13 +2778,13 @@ importers: '@itwin/core-common': workspace:* '@itwin/core-geometry': workspace:* '@itwin/core-orbitgt': workspace:* - '@itwin/eslint-plugin': ^4.0.2 + '@itwin/eslint-plugin': 5.0.0-dev.1 '@types/fs-extra': ^4.0.7 '@types/node': ~18.16.20 '@types/yargs': 17.0.19 - eslint: ^8.56.0 + eslint: ^9.13.0 rimraf: ^3.0.2 - typescript: ~5.3.3 + typescript: ~5.6.2 yargs: ^17.4.0 dependencies: '@itwin/core-backend': link:../../core/backend @@ -2795,13 +2795,13 @@ importers: yargs: 17.4.0 devDependencies: '@itwin/build-tools': link:../../tools/build - '@itwin/eslint-plugin': 4.0.2_xdgzedli73k7lw4xlyzszm74om + '@itwin/eslint-plugin': 5.0.0-dev.1_aji6oyyaiulsuzmkdveqwiygte '@types/fs-extra': 4.0.7 '@types/node': 18.16.20 '@types/yargs': 17.0.19 - eslint: 8.56.0 + eslint: 9.13.0 rimraf: 3.0.2 - typescript: 5.3.3 + typescript: 5.6.2 ../../test-apps/imodel-from-reality-model: specifiers: @@ -2810,15 +2810,15 @@ importers: '@itwin/core-bentley': workspace:* '@itwin/core-common': workspace:* '@itwin/core-geometry': workspace:* - '@itwin/eslint-plugin': ^4.0.2 + '@itwin/eslint-plugin': 5.0.0-dev.1 '@types/fs-extra': ^4.0.7 '@types/lodash': ^4.14.202 '@types/node': ~18.16.20 '@types/yargs': 17.0.19 - eslint: ^8.56.0 + eslint: ^9.13.0 fs-extra: ^8.1.0 rimraf: ^3.0.2 - typescript: ~5.3.3 + typescript: ~5.6.2 yargs: ^17.4.0 dependencies: '@itwin/core-backend': link:../../core/backend @@ -2829,14 +2829,14 @@ importers: yargs: 17.4.0 devDependencies: '@itwin/build-tools': link:../../tools/build - '@itwin/eslint-plugin': 4.0.2_xdgzedli73k7lw4xlyzszm74om + '@itwin/eslint-plugin': 5.0.0-dev.1_aji6oyyaiulsuzmkdveqwiygte '@types/fs-extra': 4.0.7 '@types/lodash': 4.14.202 '@types/node': 18.16.20 '@types/yargs': 17.0.19 - eslint: 8.56.0 + eslint: 9.13.0 rimraf: 3.0.2 - typescript: 5.3.3 + typescript: 5.6.2 ../../tools/backend-webpack: specifiers: @@ -2869,13 +2869,13 @@ importers: ../../tools/build: specifiers: - '@itwin/eslint-plugin': ^4.0.2 - '@microsoft/api-extractor': ~7.47.0 + '@itwin/eslint-plugin': 5.0.0-dev.1 + '@microsoft/api-extractor': ~7.47.10 '@types/node': ~18.16.20 chalk: ^3.0.0 cpx2: ^3.0.0 cross-spawn: ^7.0.1 - eslint: ^8.56.0 + eslint: ^9.13.0 fs-extra: ^8.1.0 glob: ^10.3.12 mocha: ^10.2.0 @@ -2884,11 +2884,11 @@ importers: tree-kill: ^1.2.2 typedoc: ^0.25.8 typedoc-plugin-merge-modules: ^5.1.0 - typescript: ~5.3.3 + typescript: ~5.6.2 wtfnode: ^0.9.1 yargs: ^17.4.0 dependencies: - '@microsoft/api-extractor': 7.47.0_@types+node@18.16.20 + '@microsoft/api-extractor': 7.47.10_@types+node@18.16.20 chalk: 3.0.0 cpx2: 3.0.0 cross-spawn: 7.0.1 @@ -2898,20 +2898,20 @@ importers: mocha-junit-reporter: 2.0.2_mocha@10.2.0 rimraf: 3.0.2 tree-kill: 1.2.2 - typedoc: 0.25.8_typescript@5.3.3 + typedoc: 0.25.8_typescript@5.6.2 typedoc-plugin-merge-modules: 5.1.0_typedoc@0.25.8 - typescript: 5.3.3 + typescript: 5.6.2 wtfnode: 0.9.1 yargs: 17.4.0 devDependencies: - '@itwin/eslint-plugin': 4.0.2_xdgzedli73k7lw4xlyzszm74om + '@itwin/eslint-plugin': 5.0.0-dev.1_aji6oyyaiulsuzmkdveqwiygte '@types/node': 18.16.20 - eslint: 8.56.0 + eslint: 9.13.0 ../../tools/certa: specifiers: '@itwin/build-tools': workspace:* - '@itwin/eslint-plugin': ^4.0.2 + '@itwin/eslint-plugin': 5.0.0-dev.1 '@types/chai': 4.3.1 '@types/detect-port': ~1.1.0 '@types/express': ^4.17.20 @@ -2922,7 +2922,7 @@ importers: canonical-path: ^1.0.0 detect-port: ~1.3.0 electron: ^33.0.0 - eslint: ^8.56.0 + eslint: ^9.13.0 express: ^4.20.0 jsonc-parser: ~2.0.3 lodash: ^4.17.21 @@ -2931,7 +2931,7 @@ importers: playwright: ~1.47.1 rimraf: ^3.0.2 source-map-support: ^0.5.6 - typescript: ~5.3.3 + typescript: ~5.6.2 yargs: ^17.4.0 dependencies: canonical-path: 1.0.0 @@ -2945,7 +2945,7 @@ importers: yargs: 17.4.0 devDependencies: '@itwin/build-tools': link:../build - '@itwin/eslint-plugin': 4.0.2_xdgzedli73k7lw4xlyzszm74om + '@itwin/eslint-plugin': 5.0.0-dev.1_aji6oyyaiulsuzmkdveqwiygte '@types/chai': 4.3.1 '@types/detect-port': 1.1.0 '@types/express': 4.17.20 @@ -2954,10 +2954,10 @@ importers: '@types/node': 18.16.20 '@types/yargs': 17.0.19 electron: 33.0.0 - eslint: 8.56.0 + eslint: 9.13.0 nyc: 15.1.0 rimraf: 3.0.2 - typescript: 5.3.3 + typescript: 5.6.2 ../../tools/ecschema2ts: specifiers: @@ -2968,7 +2968,7 @@ importers: '@itwin/core-geometry': workspace:* '@itwin/ecschema-locaters': workspace:* '@itwin/ecschema-metadata': workspace:* - '@itwin/eslint-plugin': ^4.0.2 + '@itwin/eslint-plugin': 5.0.0-dev.1 '@types/chai': 4.3.1 '@types/chai-string': ^1.4.1 '@types/fs-extra': ^4.0.7 @@ -2980,13 +2980,13 @@ importers: chalk: ^3.0.0 commander: ^2.14.1 cpx2: ^3.0.0 - eslint: ^8.56.0 + eslint: ^9.13.0 fs-extra: ^8.1.0 mocha: ^10.2.0 nyc: ^15.1.0 rimraf: ^3.0.2 source-map-support: ^0.5.6 - typescript: ~5.3.3 + typescript: ~5.6.2 dependencies: '@itwin/core-backend': link:../../core/backend '@itwin/core-bentley': link:../../core/bentley @@ -3001,7 +3001,7 @@ importers: fs-extra: 8.1.0 devDependencies: '@itwin/build-tools': link:../build - '@itwin/eslint-plugin': 4.0.2_xdgzedli73k7lw4xlyzszm74om + '@itwin/eslint-plugin': 5.0.0-dev.1_aji6oyyaiulsuzmkdveqwiygte '@types/chai': 4.3.1 '@types/chai-string': 1.4.1 '@types/fs-extra': 4.0.7 @@ -3009,12 +3009,12 @@ importers: '@types/node': 18.16.20 chai: 4.3.10 cpx2: 3.0.0 - eslint: 8.56.0 + eslint: 9.13.0 mocha: 10.2.0 nyc: 15.1.0 rimraf: 3.0.2 source-map-support: 0.5.6 - typescript: 5.3.3 + typescript: 5.6.2 ../../tools/internal: specifiers: @@ -3032,26 +3032,26 @@ importers: ../../tools/perf-tools: specifiers: '@itwin/build-tools': workspace:* - '@itwin/eslint-plugin': ^4.0.2 + '@itwin/eslint-plugin': 5.0.0-dev.1 '@types/fs-extra': ^4.0.7 - eslint: ^8.56.0 + eslint: ^9.13.0 fs-extra: ^8.1.0 rimraf: ^3.0.2 - typescript: ~5.3.3 + typescript: ~5.6.2 dependencies: fs-extra: 8.1.0 devDependencies: '@itwin/build-tools': link:../build - '@itwin/eslint-plugin': 4.0.2_xdgzedli73k7lw4xlyzszm74om + '@itwin/eslint-plugin': 5.0.0-dev.1_aji6oyyaiulsuzmkdveqwiygte '@types/fs-extra': 4.0.7 - eslint: 8.56.0 + eslint: 9.13.0 rimraf: 3.0.2 - typescript: 5.3.3 + typescript: 5.6.2 ../../tools/webpack-core: specifiers: '@itwin/build-tools': workspace:* - '@itwin/eslint-plugin': ^4.0.2 + '@itwin/eslint-plugin': 5.0.0-dev.1 '@types/chai': 4.3.1 '@types/chai-as-promised': ^7 '@types/chai-jest-snapshot': ^1.3.8 @@ -3065,7 +3065,7 @@ importers: chalk: ^3.0.0 copy-webpack-plugin: ^11.0.0 cpx2: ^3.0.0 - eslint: ^8.56.0 + eslint: ^9.13.0 file-loader: ^6.2.0 findup: 0.1.5 fs-extra: ^8.1.0 @@ -3077,7 +3077,7 @@ importers: resolve: 1.19.0 rimraf: ^3.0.2 source-map-loader: ^4.0.0 - typescript: ~5.3.3 + typescript: ~5.6.2 webpack: ^5.76.0 dependencies: chalk: 3.0.0 @@ -3091,7 +3091,7 @@ importers: source-map-loader: 4.0.0_webpack@5.76.0 devDependencies: '@itwin/build-tools': link:../build - '@itwin/eslint-plugin': 4.0.2_xdgzedli73k7lw4xlyzszm74om + '@itwin/eslint-plugin': 5.0.0-dev.1_aji6oyyaiulsuzmkdveqwiygte '@types/chai': 4.3.1 '@types/chai-as-promised': 7.1.0 '@types/chai-jest-snapshot': 1.3.8 @@ -3103,12 +3103,12 @@ importers: chai-as-promised: 7.1.1_chai@4.3.10 chai-jest-snapshot: 2.0.0_chai@4.3.10 cpx2: 3.0.0 - eslint: 8.56.0 + eslint: 9.13.0 memfs: 3.2.2 mocha: 10.2.0 nyc: 15.1.0 rimraf: 3.0.2 - typescript: 5.3.3 + typescript: 5.6.2 webpack: 5.76.0 ../../ui/appui-abstract: @@ -3116,7 +3116,7 @@ importers: '@itwin/build-tools': workspace:* '@itwin/certa': workspace:* '@itwin/core-bentley': workspace:* - '@itwin/eslint-plugin': ^4.0.2 + '@itwin/eslint-plugin': 5.0.0-dev.1 '@types/chai': 4.3.1 '@types/mocha': ^10.0.6 '@types/sinon': ^17.0.2 @@ -3125,7 +3125,7 @@ importers: babel-plugin-istanbul: ~6.1.1 chai: ^4.3.10 cpx2: ^3.0.0 - eslint: ^8.56.0 + eslint: ^9.13.0 glob: ^10.3.12 ignore-styles: ^5.0.1 mocha: ^10.2.0 @@ -3134,13 +3134,13 @@ importers: sinon: ^17.0.2 sinon-chai: ^3.7.0 source-map-loader: ^4.0.0 - typescript: ~5.3.3 + typescript: ~5.6.2 webpack: ^5.76.0 devDependencies: '@itwin/build-tools': link:../../tools/build '@itwin/certa': link:../../tools/certa '@itwin/core-bentley': link:../../core/bentley - '@itwin/eslint-plugin': 4.0.2_xdgzedli73k7lw4xlyzszm74om + '@itwin/eslint-plugin': 5.0.0-dev.1_aji6oyyaiulsuzmkdveqwiygte '@types/chai': 4.3.1 '@types/mocha': 10.0.6 '@types/sinon': 17.0.2 @@ -3149,7 +3149,7 @@ importers: babel-plugin-istanbul: 6.1.1 chai: 4.3.10 cpx2: 3.0.0 - eslint: 8.56.0 + eslint: 9.13.0 glob: 10.3.12 ignore-styles: 5.0.1 mocha: 10.2.0 @@ -3158,7 +3158,7 @@ importers: sinon: 17.0.2 sinon-chai: 3.7.0_chai@4.3.10+sinon@17.0.2 source-map-loader: 4.0.0_webpack@5.76.0 - typescript: 5.3.3 + typescript: 5.6.2 webpack: 5.76.0 ../../utils/workspace-editor: @@ -3167,16 +3167,16 @@ importers: '@itwin/core-backend': workspace:* '@itwin/core-bentley': workspace:* '@itwin/core-common': workspace:* - '@itwin/eslint-plugin': ^4.0.2 + '@itwin/eslint-plugin': 5.0.0-dev.1 '@types/chai': 4.3.1 '@types/glob': ^5.0.35 '@types/mocha': ^10.0.6 '@types/yargs': 17.0.19 - eslint: ^8.56.0 + eslint: ^9.13.0 glob: ^10.3.12 mocha: ^10.2.0 rimraf: ^3.0.2 - typescript: ~5.3.3 + typescript: ~5.6.2 yargs: ^17.4.0 dependencies: '@itwin/core-backend': link:../../core/backend @@ -3186,15 +3186,15 @@ importers: yargs: 17.4.0 devDependencies: '@itwin/build-tools': link:../../tools/build - '@itwin/eslint-plugin': 4.0.2_xdgzedli73k7lw4xlyzszm74om + '@itwin/eslint-plugin': 5.0.0-dev.1_aji6oyyaiulsuzmkdveqwiygte '@types/chai': 4.3.1 '@types/glob': 5.0.35 '@types/mocha': 10.0.6 '@types/yargs': 17.0.19 - eslint: 8.56.0 + eslint: 9.13.0 mocha: 10.2.0 rimraf: 3.0.2 - typescript: 5.3.3 + typescript: 5.6.2 packages: @@ -3209,6 +3209,16 @@ packages: resolution: {integrity: sha512-+562v9k4aI80m1+VuMHehNJWLOFjBnXn3tdOitzD0il5b7smkSBal4+a3oKiQTbrwMmN/TBUMDvbdoWDehgOww==} dev: true + /@appium/logger/1.6.1: + resolution: {integrity: sha512-3TWpLR1qVQ0usLJ6R49iN4TV9Zs0nog1oL3hakCglwP0g4ZllwwEbp+2b1ovJfX6oOv1wXNREyokq2uxU5gB/Q==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0, npm: '>=8'} + dependencies: + console-control-strings: 1.1.0 + lodash: 4.17.21 + lru-cache: 10.4.3 + set-blocking: 2.0.0 + dev: true + /@azure/abort-controller/1.1.0: resolution: {integrity: sha512-TrRLIoSQVzfAJX9H1JeFjzAoDGcoK1IYX1UImfceTZpsyYfWr09Ss1aHW1y5TrrR3iq6RZLBwJ3E24uwPhwahw==} engines: {node: '>=12.0.0'} @@ -3673,8 +3683,8 @@ packages: resolution: {integrity: sha512-IIs1wDcY2oZ8tJ3EZRw0U51M+0ZL3MvwoDYYmhUXaa9/UZqpFoOyLBGaxjirQteWXqTIMm3mFvmC+Nbn1ok4Iw==} dev: false - /@bentley/imodeljs-native/4.10.18: - resolution: {integrity: sha512-i+UOZew7nP0s2OfQ8UxxhCPF4sFm6vuLP9r2DmgKaiL8H1TODNl6JbJ18u0vteLvaCUjcOyRZ0TcKmy/32ofuA==} + /@bentley/imodeljs-native/4.10.21: + resolution: {integrity: sha512-84sbf2hDtfx+FyGY2lm1q2iO31WDx3nqmsVs7PX6maEe1XS6DNJIXruz5/QDvh3QcqRHDZpKRsAL9HTXI/cYfg==} requiresBuild: true dev: false @@ -3776,13 +3786,13 @@ packages: transitivePeerDependencies: - supports-color - /@es-joy/jsdoccomment/0.46.0: - resolution: {integrity: sha512-C3Axuq1xd/9VqFZpW4YAzOx5O9q/LP46uIQy/iNDpHG3fmPa6TBtvfglMCs3RBiBxAIi0Go97r8+jvTt55XMyQ==} + /@es-joy/jsdoccomment/0.49.0: + resolution: {integrity: sha512-xjZTSFgECpb9Ohuk5yMX5RhUEbfeQcuOp8IF60e+wyzWEF0M5xeSgqsfLtvPEX8BIyOX9saZqzuGPmZ8oWc+5Q==} engines: {node: '>=16'} dependencies: comment-parser: 1.4.1 esquery: 1.6.0 - jsdoc-type-pratt-parser: 4.0.0 + jsdoc-type-pratt-parser: 4.1.0 /@esbuild/aix-ppc64/0.21.5: resolution: {integrity: sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==} @@ -3991,27 +4001,41 @@ packages: dev: true optional: true - /@eslint-community/eslint-utils/4.4.0_eslint@8.56.0: + /@eslint-community/eslint-utils/4.4.0_eslint@9.13.0: resolution: {integrity: sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 dependencies: - eslint: 8.56.0 + eslint: 9.13.0 eslint-visitor-keys: 3.4.3 /@eslint-community/regexpp/4.11.0: resolution: {integrity: sha512-G/M/tIiMrTAxEWRfLfQJMmGNX28IxBg4PBz8XqQhqUHLFI6TL2htpIB1iQCj144V5ee/JaKyT9/WZ0MGZWfA7A==} engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} - /@eslint/eslintrc/2.1.4: - resolution: {integrity: sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + /@eslint/config-array/0.18.0: + resolution: {integrity: sha512-fTxvnS1sRMu3+JjXwJG0j/i4RT9u4qJ+lqS/yCGap4lH4zZGzQ7tu+xZqQmcMZq5OBZDL4QRxQzRjkWcGt8IVw==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + dependencies: + '@eslint/object-schema': 2.1.4 + debug: 4.3.6 + minimatch: 3.1.2 + transitivePeerDependencies: + - supports-color + + /@eslint/core/0.7.0: + resolution: {integrity: sha512-xp5Jirz5DyPYlPiKat8jaq0EmYvDXKKpzTbxXMpT9eqlRJkRKIz9AGMdlvYjih+im+QlhWrpvVjl8IPC/lHlUw==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + /@eslint/eslintrc/3.1.0: + resolution: {integrity: sha512-4Bfj15dVJdoy3RfZmmo86RK1Fwzn6SstsvK9JS+BaVKqC6QQQQyXekNaC+g+LKNgkQ+2VhGAzm6hO40AhMR3zQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} dependencies: ajv: 6.12.6 debug: 4.3.6 - espree: 9.6.1 - globals: 13.24.0 + espree: 10.2.0 + globals: 14.0.0 ignore: 5.3.2 import-fresh: 3.3.0 js-yaml: 4.1.0 @@ -4020,28 +4044,38 @@ packages: transitivePeerDependencies: - supports-color - /@eslint/js/8.56.0: - resolution: {integrity: sha512-gMsVel9D7f2HLkBma9VbtzZRehRogVRfbr++f06nL2vnCGCNlzOD+/MUov/F4p8myyAHspEhVobgjpX64q5m6A==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + /@eslint/js/9.13.0: + resolution: {integrity: sha512-IFLyoY4d72Z5y/6o/BazFBezupzI/taV8sGumxTAVw3lXG9A6md1Dc34T9s1FoD/an9pJH8RHbAxsaEbBed9lA==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + /@eslint/object-schema/2.1.4: + resolution: {integrity: sha512-BsWiH1yFGjXXS2yvrf5LyuoSIIbPrGUWob917o+BTKuZ7qJdxX8aJLRxs1fS9n6r7vESrq1OUqb68dANcFXuQQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - /@humanwhocodes/config-array/0.11.14: - resolution: {integrity: sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==} - engines: {node: '>=10.10.0'} - deprecated: Use @eslint/config-array instead + /@eslint/plugin-kit/0.2.1: + resolution: {integrity: sha512-HFZ4Mp26nbWk9d/BpvP0YNL6W4UoZF0VFcTw/aPPA8RpOxeFQgK+ClABGgAUXs9Y/RGX/l1vOmrqz1MQt9MNuw==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} dependencies: - '@humanwhocodes/object-schema': 2.0.3 - debug: 4.3.6 - minimatch: 3.1.2 - transitivePeerDependencies: - - supports-color + levn: 0.4.1 + + /@humanfs/core/0.19.0: + resolution: {integrity: sha512-2cbWIHbZVEweE853g8jymffCA+NCMiuqeECeBBLm8dg2oFdjuGJhgN4UAbI+6v0CKbbhvtXA4qV8YR5Ji86nmw==} + engines: {node: '>=18.18.0'} + + /@humanfs/node/0.16.5: + resolution: {integrity: sha512-KSPA4umqSG4LHYRodq31VDwKAvaTF4xmVlzM8Aeh4PlU1JQ3IG0wiA8C25d3RQ9nJyM3mBHyI53K06VVL/oFFg==} + engines: {node: '>=18.18.0'} + dependencies: + '@humanfs/core': 0.19.0 + '@humanwhocodes/retry': 0.3.1 /@humanwhocodes/module-importer/1.0.1: resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==} engines: {node: '>=12.22'} - /@humanwhocodes/object-schema/2.0.3: - resolution: {integrity: sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==} - deprecated: Use @eslint/object-schema instead + /@humanwhocodes/retry/0.3.1: + resolution: {integrity: sha512-JBxkERygn7Bv/GbN5Rv8Ul6LVknS+5Bp6RgDC/O8gEBU/yeH5Ui5C/OlWrTb6qct7LjjfT6Re2NxB0ln0yYybA==} + engines: {node: '>=18.18'} /@inquirer/confirm/3.2.0: resolution: {integrity: sha512-oOIwPs0Dvq5220Z8lGL/6LHRTEr9TgLHmiI99Rj1PJ1p1czTys+olrgBqZk4E2qC0YTzeHprxSQmoHioVdJ7Lw==} @@ -4183,26 +4217,26 @@ packages: - debug dev: false - /@itwin/eslint-plugin/4.0.2_xdgzedli73k7lw4xlyzszm74om: - resolution: {integrity: sha512-UDwToOexhFRlS8XQSezvjoRHp8FH9KxfJSb6b1pN2a21g0uhsqxCQDKuOrGwSnJEERIvxMJB0ddH0aYg4dRvJw==} + /@itwin/eslint-plugin/5.0.0-dev.1_aji6oyyaiulsuzmkdveqwiygte: + resolution: {integrity: sha512-n+JbieEX6hrfTR8+tD8RN1yVLdm93ydV0r/kegH5Hkxlg4APdtQ2Z6O9HkVd7WQIsTWDUl0FyrnxEa6BzDbhFw==} engines: {node: ^18.18.0 || >=20.0.0} hasBin: true peerDependencies: - eslint: ^8.56.0 + eslint: ^9.11.1 typescript: ^3.7.0 || ^4.0.0 || ^5.0.0 dependencies: - '@typescript-eslint/eslint-plugin': 7.0.2_dqzt4o5ous35ew6a25fcci52uu - '@typescript-eslint/parser': 7.0.2_xdgzedli73k7lw4xlyzszm74om - eslint: 8.56.0 - eslint-plugin-deprecation: 2.0.0_xdgzedli73k7lw4xlyzszm74om - eslint-plugin-import: 2.29.1_eslint@8.56.0 + '@typescript-eslint/eslint-plugin': 8.11.0_rim7n4kcr5hd64o3wd6nqnbvgi + '@typescript-eslint/parser': 8.11.0_aji6oyyaiulsuzmkdveqwiygte + eslint: 9.13.0 + eslint-formatter-visualstudio: 8.40.0 + eslint-plugin-import: 2.31.0_eslint@9.13.0 eslint-plugin-jam3: 0.2.3 - eslint-plugin-jsdoc: 48.11.0_eslint@8.56.0 - eslint-plugin-jsx-a11y: 6.9.0_eslint@8.56.0 - eslint-plugin-prefer-arrow: 1.2.3_eslint@8.56.0 - eslint-plugin-react: 7.35.0_eslint@8.56.0 - eslint-plugin-react-hooks: 4.6.2_eslint@8.56.0 - typescript: 5.3.3 + eslint-plugin-jsdoc: 50.4.3_eslint@9.13.0 + eslint-plugin-jsx-a11y: 6.10.1_eslint@9.13.0 + eslint-plugin-prefer-arrow: 1.2.3_eslint@9.13.0 + eslint-plugin-react: 7.37.2_eslint@9.13.0 + eslint-plugin-react-hooks: 5.0.0_eslint@9.13.0 + typescript: 5.6.2 workspace-tools: 0.36.4 transitivePeerDependencies: - supports-color @@ -4507,33 +4541,33 @@ packages: '@babel/runtime': 7.25.0 dev: false - /@microsoft/api-extractor-model/7.29.2_@types+node@18.16.20: - resolution: {integrity: sha512-hAYajOjQan3uslhKJRwvvHIdLJ+ZByKqdSsJ/dgHFxPtEbdKpzMDO8zuW4K5gkSMYl5D0LbNwxkhxr51P2zsmw==} + /@microsoft/api-extractor-model/7.29.8_@types+node@18.16.20: + resolution: {integrity: sha512-t3Z/xcO6TRbMcnKGVMs4uMzv/gd5j0NhMiJIGjD4cJMeFJ1Hf8wnLSx37vxlRlL0GWlGJhnFgxvnaL6JlS+73g==} dependencies: '@microsoft/tsdoc': 0.15.0 '@microsoft/tsdoc-config': 0.17.0 - '@rushstack/node-core-library': 5.4.1_@types+node@18.16.20 + '@rushstack/node-core-library': 5.9.0_@types+node@18.16.20 transitivePeerDependencies: - '@types/node' dev: false - /@microsoft/api-extractor/7.47.0_@types+node@18.16.20: - resolution: {integrity: sha512-LT8yvcWNf76EpDC+8/ArTVSYePvuDQ+YbAUrsTcpg3ptiZ93HIcMCozP/JOxDt+rrsFfFHcpfoselKfPyRI0GQ==} + /@microsoft/api-extractor/7.47.10_@types+node@18.16.20: + resolution: {integrity: sha512-Fx5J3E8sC5EUeqaC85NXql3hXJc7/QO3NEr/jeBgVJwacRaHdkl3pKDhkkJ6yo/GWbRCv6QnyakU0QuKg8bMig==} hasBin: true dependencies: - '@microsoft/api-extractor-model': 7.29.2_@types+node@18.16.20 + '@microsoft/api-extractor-model': 7.29.8_@types+node@18.16.20 '@microsoft/tsdoc': 0.15.0 '@microsoft/tsdoc-config': 0.17.0 - '@rushstack/node-core-library': 5.4.1_@types+node@18.16.20 - '@rushstack/rig-package': 0.5.2 - '@rushstack/terminal': 0.13.0_@types+node@18.16.20 - '@rushstack/ts-command-line': 4.22.0_@types+node@18.16.20 + '@rushstack/node-core-library': 5.9.0_@types+node@18.16.20 + '@rushstack/rig-package': 0.5.3 + '@rushstack/terminal': 0.14.2_@types+node@18.16.20 + '@rushstack/ts-command-line': 4.22.8_@types+node@18.16.20 lodash: 4.17.21 minimatch: 3.0.8 resolve: 1.22.8 semver: 7.5.4 source-map: 0.6.1 - typescript: 5.4.2 + typescript: 5.6.2 transitivePeerDependencies: - '@types/node' dev: false @@ -4813,8 +4847,11 @@ packages: dev: true optional: true - /@rushstack/node-core-library/5.4.1_@types+node@18.16.20: - resolution: {integrity: sha512-WNnwdS8r9NZ/2K3u29tNoSRldscFa7SxU0RT+82B6Dy2I4Hl2MeCSKm4EXLXPKeNzLGvJ1cqbUhTLviSF8E6iA==} + /@rtsao/scc/1.1.0: + resolution: {integrity: sha512-zt6OdqaDoOnJ1ZYsCYGt9YmWzDXl4vQdKTyJev62gFhRGKdx7mcT54V9KIjg+d2wi9EXsPvAPKe7i7WjfVWB8g==} + + /@rushstack/node-core-library/5.9.0_@types+node@18.16.20: + resolution: {integrity: sha512-MMsshEWkTbXqxqFxD4gcIUWQOCeBChlGczdZbHfqmNZQFLHB3yWxDFSMHFUdu2/OB9NUk7Awn5qRL+rws4HQNg==} peerDependencies: '@types/node': '*' peerDependenciesMeta: @@ -4832,30 +4869,30 @@ packages: semver: 7.5.4 dev: false - /@rushstack/rig-package/0.5.2: - resolution: {integrity: sha512-mUDecIJeH3yYGZs2a48k+pbhM6JYwWlgjs2Ca5f2n1G2/kgdgP9D/07oglEGf6mRyXEnazhEENeYTSNDRCwdqA==} + /@rushstack/rig-package/0.5.3: + resolution: {integrity: sha512-olzSSjYrvCNxUFZowevC3uz8gvKr3WTpHQ7BkpjtRpA3wK+T0ybep/SRUMfr195gBzJm5gaXw0ZMgjIyHqJUow==} dependencies: resolve: 1.22.8 strip-json-comments: 3.1.1 dev: false - /@rushstack/terminal/0.13.0_@types+node@18.16.20: - resolution: {integrity: sha512-Ou44Q2s81BqJu3dpYedAX54am9vn245F0HzqVrfJCMQk5pGgoKKOBOjkbfZC9QKcGNaECh6pwH2s5noJt7X6ew==} + /@rushstack/terminal/0.14.2_@types+node@18.16.20: + resolution: {integrity: sha512-2fC1wqu1VCExKC0/L+0noVcFQEXEnoBOtCIex1TOjBzEDWcw8KzJjjj7aTP6mLxepG0XIyn9OufeFb6SFsa+sg==} peerDependencies: '@types/node': '*' peerDependenciesMeta: '@types/node': optional: true dependencies: - '@rushstack/node-core-library': 5.4.1_@types+node@18.16.20 + '@rushstack/node-core-library': 5.9.0_@types+node@18.16.20 '@types/node': 18.16.20 supports-color: 8.1.1 dev: false - /@rushstack/ts-command-line/4.22.0_@types+node@18.16.20: - resolution: {integrity: sha512-Qj28t6MO3HRgAZ72FDeFsrpdE6wBWxF3VENgvrXh7JF2qIT+CrXiOJIesW80VFZB9QwObSpkB1ilx794fGQg6g==} + /@rushstack/ts-command-line/4.22.8_@types+node@18.16.20: + resolution: {integrity: sha512-XbFjOoV7qZHJnSuFUHv0pKaFA4ixyCuki+xMjsMfDwfvQjs5MYG0IK5COal3tRnG7KCDe2l/G+9LrzYE/RJhgg==} dependencies: - '@rushstack/terminal': 0.13.0_@types+node@18.16.20 + '@rushstack/terminal': 0.14.2_@types+node@18.16.20 '@types/argparse': 1.0.38 argparse: 1.0.10 string-argv: 0.3.2 @@ -4984,10 +5021,6 @@ packages: resolution: {integrity: sha512-wxT2/LZn4z0NvSfZirxmBx686CU7EXp299KHkIk79acXpQtgeYHrslFzDacPGXifC0Pe3CEaLup07bgY1PnuQw==} dev: true - /@types/bluebird/3.5.42: - resolution: {integrity: sha512-Jhy+MWRlro6UjVi578V/4ZGNfeCOcNCp0YaFNIUGFKlImowqwb1O/22wDVk3FDGMLqxdpOV3qQHD5fPEH4hK6A==} - dev: true - /@types/body-parser/1.17.0: resolution: {integrity: sha512-a2+YeUjPkztKJu5aIF2yArYFQQp8d51wZ7DavSHjFuY1mqVgidGyzEQ41JIVNy82fXj8yPgy2vJmfIywgESW6w==} dependencies: @@ -5077,6 +5110,9 @@ packages: /@types/estree/1.0.5: resolution: {integrity: sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==} + /@types/estree/1.0.6: + resolution: {integrity: sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==} + /@types/events/3.0.3: resolution: {integrity: sha512-trOc4AAUThEz9hapPtSd7wf5tiQKvTtu5b371UxXdTuqzIh0ArcRspRP0i0Viu+LXstIQ1z96t1nsPxT9ol01g==} @@ -5278,9 +5314,6 @@ packages: resolution: {integrity: sha512-zsv3fsC7S84NN6nPK06u79oWgrPVd0NvOyqgghV1haPaFcVxIrP4DLomRwGAXk0ui4HZA7mOcSFL98sMVW9viw==} dev: true - /@types/semver/7.5.8: - resolution: {integrity: sha512-I8EUhyrgfLrcTkzV3TSsGyl1tSuPrEDzr0yd5m90UgNxQkyDXULk3b6MlQqTCpZpNtWe1K0hzclnZkTcLBe2UQ==} - /@types/send/0.17.4: resolution: {integrity: sha512-x2EM6TJOybec7c52BX0ZspPodMsQUd5L6PRwOunVyVUhXiBSKf3AezDL8Dgvgt5o0UfKNfuA0eMLr2wLT4AiBA==} dependencies: @@ -5388,12 +5421,12 @@ packages: '@types/node': 18.16.20 optional: true - /@typescript-eslint/eslint-plugin/7.0.2_dqzt4o5ous35ew6a25fcci52uu: - resolution: {integrity: sha512-/XtVZJtbaphtdrWjr+CJclaCVGPtOdBpFEnvtNf/jRV0IiEemRrL0qABex/nEt8isYcnFacm3nPHYQwL+Wb7qg==} - engines: {node: ^16.0.0 || >=18.0.0} + /@typescript-eslint/eslint-plugin/8.11.0_rim7n4kcr5hd64o3wd6nqnbvgi: + resolution: {integrity: sha512-KhGn2LjW1PJT2A/GfDpiyOfS4a8xHQv2myUagTM5+zsormOmBlYsnQ6pobJ8XxJmh6hnHwa2Mbe3fPrDJoDhbA==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: - '@typescript-eslint/parser': ^7.0.0 - eslint: ^8.56.0 + '@typescript-eslint/parser': ^8.0.0 || ^8.0.0-alpha.0 + eslint: ^8.57.0 || ^9.0.0 typescript: '*' peerDependenciesMeta: '@typescript-eslint/parser': @@ -5402,200 +5435,113 @@ packages: optional: true dependencies: '@eslint-community/regexpp': 4.11.0 - '@typescript-eslint/parser': 7.0.2_xdgzedli73k7lw4xlyzszm74om - '@typescript-eslint/scope-manager': 7.0.2 - '@typescript-eslint/type-utils': 7.0.2_xdgzedli73k7lw4xlyzszm74om - '@typescript-eslint/utils': 7.0.2_xdgzedli73k7lw4xlyzszm74om - '@typescript-eslint/visitor-keys': 7.0.2 - debug: 4.3.6 - eslint: 8.56.0 + '@typescript-eslint/parser': 8.11.0_aji6oyyaiulsuzmkdveqwiygte + '@typescript-eslint/scope-manager': 8.11.0 + '@typescript-eslint/type-utils': 8.11.0_aji6oyyaiulsuzmkdveqwiygte + '@typescript-eslint/utils': 8.11.0_aji6oyyaiulsuzmkdveqwiygte + '@typescript-eslint/visitor-keys': 8.11.0 + eslint: 9.13.0 graphemer: 1.4.0 ignore: 5.3.2 natural-compare: 1.4.0 - semver: 7.6.3 - ts-api-utils: 1.3.0_typescript@5.3.3 - typescript: 5.3.3 - transitivePeerDependencies: - - supports-color - - /@typescript-eslint/parser/6.21.0_xdgzedli73k7lw4xlyzszm74om: - resolution: {integrity: sha512-tbsV1jPne5CkFQCgPBcDOt30ItF7aJoZL997JSF7MhGQqOeT3svWRYxiqlfA5RUdlHN6Fi+EI9bxqbdyAUZjYQ==} - engines: {node: ^16.0.0 || >=18.0.0} - peerDependencies: - eslint: ^7.0.0 || ^8.0.0 - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true - dependencies: - '@typescript-eslint/scope-manager': 6.21.0 - '@typescript-eslint/types': 6.21.0 - '@typescript-eslint/typescript-estree': 6.21.0_typescript@5.3.3 - '@typescript-eslint/visitor-keys': 6.21.0 - debug: 4.3.6 - eslint: 8.56.0 - typescript: 5.3.3 + ts-api-utils: 1.3.0_typescript@5.6.2 + typescript: 5.6.2 transitivePeerDependencies: - supports-color - dev: true - /@typescript-eslint/parser/7.0.2_xdgzedli73k7lw4xlyzszm74om: - resolution: {integrity: sha512-GdwfDglCxSmU+QTS9vhz2Sop46ebNCXpPPvsByK7hu0rFGRHL+AusKQJ7SoN+LbLh6APFpQwHKmDSwN35Z700Q==} - engines: {node: ^16.0.0 || >=18.0.0} + /@typescript-eslint/parser/8.11.0_aji6oyyaiulsuzmkdveqwiygte: + resolution: {integrity: sha512-lmt73NeHdy1Q/2ul295Qy3uninSqi6wQI18XwSpm8w0ZbQXUpjCAWP1Vlv/obudoBiIjJVjlztjQ+d/Md98Yxg==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: - eslint: ^8.56.0 + eslint: ^8.57.0 || ^9.0.0 typescript: '*' peerDependenciesMeta: typescript: optional: true dependencies: - '@typescript-eslint/scope-manager': 7.0.2 - '@typescript-eslint/types': 7.0.2 - '@typescript-eslint/typescript-estree': 7.0.2_typescript@5.3.3 - '@typescript-eslint/visitor-keys': 7.0.2 + '@typescript-eslint/scope-manager': 8.11.0 + '@typescript-eslint/types': 8.11.0 + '@typescript-eslint/typescript-estree': 8.11.0_typescript@5.6.2 + '@typescript-eslint/visitor-keys': 8.11.0 debug: 4.3.6 - eslint: 8.56.0 - typescript: 5.3.3 + eslint: 9.13.0 + typescript: 5.6.2 transitivePeerDependencies: - supports-color - /@typescript-eslint/scope-manager/6.21.0: - resolution: {integrity: sha512-OwLUIWZJry80O99zvqXVEioyniJMa+d2GrqpUTqi5/v5D5rOrppJVBPa0yKCblcigC0/aYAzxxqQ1B+DS2RYsg==} - engines: {node: ^16.0.0 || >=18.0.0} - dependencies: - '@typescript-eslint/types': 6.21.0 - '@typescript-eslint/visitor-keys': 6.21.0 - - /@typescript-eslint/scope-manager/7.0.2: - resolution: {integrity: sha512-l6sa2jF3h+qgN2qUMjVR3uCNGjWw4ahGfzIYsCtFrQJCjhbrDPdiihYT8FnnqFwsWX+20hK592yX9I2rxKTP4g==} - engines: {node: ^16.0.0 || >=18.0.0} + /@typescript-eslint/scope-manager/8.11.0: + resolution: {integrity: sha512-Uholz7tWhXmA4r6epo+vaeV7yjdKy5QFCERMjs1kMVsLRKIrSdM6o21W2He9ftp5PP6aWOVpD5zvrvuHZC0bMQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} dependencies: - '@typescript-eslint/types': 7.0.2 - '@typescript-eslint/visitor-keys': 7.0.2 + '@typescript-eslint/types': 8.11.0 + '@typescript-eslint/visitor-keys': 8.11.0 - /@typescript-eslint/type-utils/7.0.2_xdgzedli73k7lw4xlyzszm74om: - resolution: {integrity: sha512-IKKDcFsKAYlk8Rs4wiFfEwJTQlHcdn8CLwLaxwd6zb8HNiMcQIFX9sWax2k4Cjj7l7mGS5N1zl7RCHOVwHq2VQ==} - engines: {node: ^16.0.0 || >=18.0.0} + /@typescript-eslint/type-utils/8.11.0_aji6oyyaiulsuzmkdveqwiygte: + resolution: {integrity: sha512-ItiMfJS6pQU0NIKAaybBKkuVzo6IdnAhPFZA/2Mba/uBjuPQPet/8+zh5GtLHwmuFRShZx+8lhIs7/QeDHflOg==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: - eslint: ^8.56.0 typescript: '*' peerDependenciesMeta: typescript: optional: true dependencies: - '@typescript-eslint/typescript-estree': 7.0.2_typescript@5.3.3 - '@typescript-eslint/utils': 7.0.2_xdgzedli73k7lw4xlyzszm74om + '@typescript-eslint/typescript-estree': 8.11.0_typescript@5.6.2 + '@typescript-eslint/utils': 8.11.0_aji6oyyaiulsuzmkdveqwiygte debug: 4.3.6 - eslint: 8.56.0 - ts-api-utils: 1.3.0_typescript@5.3.3 - typescript: 5.3.3 + ts-api-utils: 1.3.0_typescript@5.6.2 + typescript: 5.6.2 transitivePeerDependencies: + - eslint - supports-color - /@typescript-eslint/types/6.21.0: - resolution: {integrity: sha512-1kFmZ1rOm5epu9NZEZm1kckCDGj5UJEf7P1kliH4LKu/RkwpsfqqGmY2OOcUs18lSlQBKLDYBOGxRVtrMN5lpg==} - engines: {node: ^16.0.0 || >=18.0.0} - - /@typescript-eslint/types/7.0.2: - resolution: {integrity: sha512-ZzcCQHj4JaXFjdOql6adYV4B/oFOFjPOC9XYwCaZFRvqN8Llfvv4gSxrkQkd2u4Ci62i2c6W6gkDwQJDaRc4nA==} - engines: {node: ^16.0.0 || >=18.0.0} - - /@typescript-eslint/typescript-estree/6.21.0_typescript@5.3.3: - resolution: {integrity: sha512-6npJTkZcO+y2/kr+z0hc4HwNfrrP4kNYh57ek7yCNlrBjWQ1Y0OS7jiZTkgumrvkX5HkEKXFZkkdFNkaW2wmUQ==} - engines: {node: ^16.0.0 || >=18.0.0} - peerDependencies: - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true - dependencies: - '@typescript-eslint/types': 6.21.0 - '@typescript-eslint/visitor-keys': 6.21.0 - debug: 4.3.6 - globby: 11.1.0 - is-glob: 4.0.3 - minimatch: 9.0.3 - semver: 7.6.3 - ts-api-utils: 1.3.0_typescript@5.3.3 - typescript: 5.3.3 - transitivePeerDependencies: - - supports-color + /@typescript-eslint/types/8.11.0: + resolution: {integrity: sha512-tn6sNMHf6EBAYMvmPUaKaVeYvhUsrE6x+bXQTxjQRp360h1giATU0WvgeEys1spbvb5R+VpNOZ+XJmjD8wOUHw==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - /@typescript-eslint/typescript-estree/7.0.2_typescript@5.3.3: - resolution: {integrity: sha512-3AMc8khTcELFWcKcPc0xiLviEvvfzATpdPj/DXuOGIdQIIFybf4DMT1vKRbuAEOFMwhWt7NFLXRkbjsvKZQyvw==} - engines: {node: ^16.0.0 || >=18.0.0} + /@typescript-eslint/typescript-estree/8.11.0_typescript@5.6.2: + resolution: {integrity: sha512-yHC3s1z1RCHoCz5t06gf7jH24rr3vns08XXhfEqzYpd6Hll3z/3g23JRi0jM8A47UFKNc3u/y5KIMx8Ynbjohg==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: typescript: '*' peerDependenciesMeta: typescript: optional: true dependencies: - '@typescript-eslint/types': 7.0.2 - '@typescript-eslint/visitor-keys': 7.0.2 + '@typescript-eslint/types': 8.11.0 + '@typescript-eslint/visitor-keys': 8.11.0 debug: 4.3.6 - globby: 11.1.0 + fast-glob: 3.3.2 is-glob: 4.0.3 - minimatch: 9.0.3 - semver: 7.6.3 - ts-api-utils: 1.3.0_typescript@5.3.3 - typescript: 5.3.3 - transitivePeerDependencies: - - supports-color - - /@typescript-eslint/utils/6.21.0_xdgzedli73k7lw4xlyzszm74om: - resolution: {integrity: sha512-NfWVaC8HP9T8cbKQxHcsJBY5YE1O33+jpMwN45qzWWaPDZgLIbo12toGMWnmhvCpd3sIxkpDw3Wv1B3dYrbDQQ==} - engines: {node: ^16.0.0 || >=18.0.0} - peerDependencies: - eslint: ^7.0.0 || ^8.0.0 - dependencies: - '@eslint-community/eslint-utils': 4.4.0_eslint@8.56.0 - '@types/json-schema': 7.0.15 - '@types/semver': 7.5.8 - '@typescript-eslint/scope-manager': 6.21.0 - '@typescript-eslint/types': 6.21.0 - '@typescript-eslint/typescript-estree': 6.21.0_typescript@5.3.3 - eslint: 8.56.0 + minimatch: 9.0.5 semver: 7.6.3 + ts-api-utils: 1.3.0_typescript@5.6.2 + typescript: 5.6.2 transitivePeerDependencies: - supports-color - - typescript - /@typescript-eslint/utils/7.0.2_xdgzedli73k7lw4xlyzszm74om: - resolution: {integrity: sha512-PZPIONBIB/X684bhT1XlrkjNZJIEevwkKDsdwfiu1WeqBxYEEdIgVDgm8/bbKHVu+6YOpeRqcfImTdImx/4Bsw==} - engines: {node: ^16.0.0 || >=18.0.0} + /@typescript-eslint/utils/8.11.0_aji6oyyaiulsuzmkdveqwiygte: + resolution: {integrity: sha512-CYiX6WZcbXNJV7UNB4PLDIBtSdRmRI/nb0FMyqHPTQD1rMjA0foPLaPUV39C/MxkTd/QKSeX+Gb34PPsDVC35g==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: - eslint: ^8.56.0 + eslint: ^8.57.0 || ^9.0.0 dependencies: - '@eslint-community/eslint-utils': 4.4.0_eslint@8.56.0 - '@types/json-schema': 7.0.15 - '@types/semver': 7.5.8 - '@typescript-eslint/scope-manager': 7.0.2 - '@typescript-eslint/types': 7.0.2 - '@typescript-eslint/typescript-estree': 7.0.2_typescript@5.3.3 - eslint: 8.56.0 - semver: 7.6.3 + '@eslint-community/eslint-utils': 4.4.0_eslint@9.13.0 + '@typescript-eslint/scope-manager': 8.11.0 + '@typescript-eslint/types': 8.11.0 + '@typescript-eslint/typescript-estree': 8.11.0_typescript@5.6.2 + eslint: 9.13.0 transitivePeerDependencies: - supports-color - typescript - /@typescript-eslint/visitor-keys/6.21.0: - resolution: {integrity: sha512-JJtkDduxLi9bivAB+cYOVMtbkqdPOhZ+ZI5LC47MIRrDV4Yn2o+ZnW10Nkmr28xRpSpdJ6Sm42Hjf2+REYXm0A==} - engines: {node: ^16.0.0 || >=18.0.0} - dependencies: - '@typescript-eslint/types': 6.21.0 - eslint-visitor-keys: 3.4.3 - - /@typescript-eslint/visitor-keys/7.0.2: - resolution: {integrity: sha512-8Y+YiBmqPighbm5xA2k4wKTxRzx9EkBu7Rlw+WHqMvRJ3RPz/BMBO9b2ru0LUNmXg120PHUXD5+SWFy2R8DqlQ==} - engines: {node: ^16.0.0 || >=18.0.0} + /@typescript-eslint/visitor-keys/8.11.0: + resolution: {integrity: sha512-EaewX6lxSjRJnc+99+dqzTeoDZUfyrA52d2/HRrkI830kgovWsmIiTfmr0NZorzqic7ga+1bS60lRBUgR3n/Bw==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} dependencies: - '@typescript-eslint/types': 7.0.2 + '@typescript-eslint/types': 8.11.0 eslint-visitor-keys: 3.4.3 - /@ungap/structured-clone/1.2.0: - resolution: {integrity: sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==} - - /@vitest/browser/2.1.0_ngagn3iqlnfmtvqcnqspau7y7u: + /@vitest/browser/2.1.0_bbcqthgmodi4rrojsqljgj3bpm: resolution: {integrity: sha512-A75cB40Uv8Q0dSo1vHsCkiMUZwjFyd/BkqfgiaHvNltjAbZ0XGX+VvMtWd/zne+1lfwg32pv+JVYZP8Oagb+ng==} peerDependencies: playwright: '*' @@ -5615,7 +5561,7 @@ packages: '@vitest/mocker': 2.1.0_msw@2.4.12 '@vitest/utils': 2.1.0 magic-string: 0.30.11 - msw: 2.4.12_typescript@5.3.3 + msw: 2.4.12_typescript@5.6.2 playwright: 1.47.1 sirv: 2.0.4 tinyrainbow: 1.2.0 @@ -5639,7 +5585,7 @@ packages: dependencies: '@ampproject/remapping': 2.3.0 '@bcoe/v8-coverage': 0.2.3 - '@vitest/browser': 2.1.0_ngagn3iqlnfmtvqcnqspau7y7u + '@vitest/browser': 2.1.0_bbcqthgmodi4rrojsqljgj3bpm debug: 4.3.6 istanbul-lib-coverage: 3.2.2 istanbul-lib-report: 3.0.1 @@ -5704,7 +5650,7 @@ packages: '@vitest/spy': 2.1.0 estree-walker: 3.0.3 magic-string: 0.30.11 - msw: 2.4.12_typescript@5.3.3 + msw: 2.4.12_typescript@5.6.2 dev: true /@vitest/mocker/2.1.0_vite@5.4.6: @@ -6028,7 +5974,7 @@ packages: ajv: optional: true dependencies: - ajv: 8.13.0 + ajv: 8.17.1 dev: false /ajv-keywords/3.5.2_ajv@6.12.6: @@ -6159,10 +6105,6 @@ packages: dependencies: default-require-extensions: 3.0.1 - /aproba/2.0.0: - resolution: {integrity: sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ==} - dev: true - /archy/1.0.0: resolution: {integrity: sha512-Xg+9RwCg/0p32teKdGMPTPnVXKD0w3DfHnFTficozsAgsvq2XenPJq/MYpzzQ/v8zrOyJn6Ds39VA4JIDwFfqw==} @@ -6170,12 +6112,6 @@ packages: resolution: {integrity: sha512-ixiS0nLNNG5jNQzgZJNoUpBKdo9yTYZMGJ+QgT2jmjR7G7+QHRCc4v6LQ3NgE7EBJq+o0ams3waJwkrlBom8Ig==} engines: {node: '>=14'} - /are-we-there-yet/4.0.2: - resolution: {integrity: sha512-ncSWAawFhKMJDTdoAeOV+jyW1VCMj5QIAwULIBV0SSR7B/RLPPEQiknKcg/RIIZlUQrxELpsxMiTUoAQ4sIUyg==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - deprecated: This package is no longer supported. - dev: true - /arg/4.1.3: resolution: {integrity: sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==} dev: true @@ -6198,17 +6134,16 @@ packages: mri: 1.1.4 dev: false - /aria-query/5.1.3: - resolution: {integrity: sha512-R5iJ5lkuHybztUfuOAznmboyjWq8O6sqNqtK7CLOqdydi54VNbORp49mb14KbWgG1QD3JFO9hJdZ+y4KutfdOQ==} - dependencies: - deep-equal: 2.2.3 - /aria-query/5.3.0: resolution: {integrity: sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A==} dependencies: dequal: 2.0.3 dev: true + /aria-query/5.3.2: + resolution: {integrity: sha512-COROpnaoap1E2F000S62r6A60uHZnmlvomhfyT2DlTcrY1OrBKn2UhH7qn5wTC9zMvD0AY7csdPSNwKP+7WiQw==} + engines: {node: '>= 0.4'} + /array-buffer-byte-length/1.0.1: resolution: {integrity: sha512-ahC5W1xgou+KTXix4sAO8Ki12Q+jf4i0+tmk3sC+zgcynshkHxzpXdImBehiUYKKKDwvfFiJl1tZt6ewscS1Mg==} engines: {node: '>= 0.4'} @@ -6332,15 +6267,13 @@ packages: resolution: {integrity: sha512-baNZyqaaLhyLVKm/DlvdW051MSgO6b8eVfIezl9E5PqWxFgzLm/wQntEW4zOytVburDEr0JlALEpdOFwvErLsg==} dev: false - /asyncbox/2.9.4: - resolution: {integrity: sha512-TCuA73K6Gvn+5tFGsWf4jc+PsR9RmYXw/AF0mv+CRB3VhHLjqHh/w9gPvYILnV0RcRFfjADHtzZexpxWlsP3Tg==} - engines: {node: '>=10'} + /asyncbox/3.0.0: + resolution: {integrity: sha512-X7U0nedUMKV3nn9c4R0Zgvdvv6cw97tbDlHSZicq1snGPi/oX9DgGmFSURWtxDdnBWd3V0YviKhqAYAVvoWQ/A==} + engines: {node: '>=16'} dependencies: - '@babel/runtime': 7.25.0 - '@types/bluebird': 3.5.42 bluebird: 3.7.2 lodash: 4.17.21 - source-map-support: 0.5.6 + source-map-support: 0.5.21 dev: true /asynckit/0.4.0: @@ -6403,10 +6336,9 @@ packages: transitivePeerDependencies: - debug - /axobject-query/3.1.1: - resolution: {integrity: sha512-goKlv8DZrK9hUh975fnHzhNIO4jUnFCfv/dszV5VwUGDFjI6vQ2VwoyjYjYNEbBE8AH87TduWP5uyDR1D+Iteg==} - dependencies: - deep-equal: 2.2.3 + /axobject-query/4.1.0: + resolution: {integrity: sha512-qIj0G9wZbMGNLjLmg1PT6v2mE9AH2zlnADJD/2tC6E00hgmhUOfEB6greHPAfLRSufHqROIUTkw6E+M3lH0PTQ==} + engines: {node: '>= 0.4'} /azurite/3.31.0: resolution: {integrity: sha512-sH7y0/QBeNlu3Keyq6zXyRoobqgEl+jOIic3NiC9jXeXnKHDxjqdp1Qohi6Q1ES2Up85qx+2LNZZgz5LBSineA==} @@ -7048,11 +6980,6 @@ packages: simple-swizzle: 0.2.2 dev: false - /color-support/1.1.3: - resolution: {integrity: sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==} - hasBin: true - dev: true - /color/3.2.1: resolution: {integrity: sha512-aBl7dZI9ENN6fUGC7mWpMTPNHmWUSNan9tuWN6ahh5ZLNk9baLJOnSMlrQkHcrfFgz2/RigjUVAjdx36VcemKA==} dependencies: @@ -7485,29 +7412,6 @@ packages: /deep-equal/1.0.0: resolution: {integrity: sha512-jAJ/YpGYX9qUM0ZMv7FWuz4JlECyma+QhYzFecyqGweO1MNyyzIi5eRPZTXgaCkra7jjxTt03AEeNp+7e1GJ3A==} - /deep-equal/2.2.3: - resolution: {integrity: sha512-ZIwpnevOurS8bpT4192sqAowWM76JDKSHYzMLty3BZGSswgq6pBaH3DhCSW5xVAZICZyKdOBPjwww5wfgT/6PA==} - engines: {node: '>= 0.4'} - dependencies: - array-buffer-byte-length: 1.0.1 - call-bind: 1.0.7 - es-get-iterator: 1.1.3 - get-intrinsic: 1.2.4 - is-arguments: 1.1.1 - is-array-buffer: 3.0.4 - is-date-object: 1.0.5 - is-regex: 1.1.4 - is-shared-array-buffer: 1.0.3 - isarray: 2.0.5 - object-is: 1.1.6 - object-keys: 1.1.1 - object.assign: 4.1.5 - regexp.prototype.flags: 1.5.2 - side-channel: 1.0.6 - which-boxed-primitive: 1.0.2 - which-collection: 1.0.2 - which-typed-array: 1.1.15 - /deep-extend/0.6.0: resolution: {integrity: sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==} engines: {node: '>=4.0.0'} @@ -7657,12 +7561,6 @@ packages: dependencies: esutils: 2.0.3 - /doctrine/3.0.0: - resolution: {integrity: sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==} - engines: {node: '>=6.0.0'} - dependencies: - esutils: 2.0.3 - /dom-accessibility-api/0.5.16: resolution: {integrity: sha512-X7BJ2yElsnOJ30pZF4uIIDfBEVgF4XEBxL9Bxhy6dnrm5hkzqmsWHGTiHqRiITNhMyFLyAiWndIJP7Z1NTteDg==} dev: true @@ -7696,6 +7594,10 @@ packages: resolution: {integrity: sha512-rlBi9d8jpv9Sf1klPjNfFAuWDjKLwTIJJ/VxtoTwIR6hnZxcEOQCZg2oIL3MWBYw5GpUDKOEnND7LXTbIpQ03Q==} engines: {node: '>=10'} + /dotenv/16.4.5: + resolution: {integrity: sha512-ZmdL2rui+eB2YwhsWzjInR8LldtZHGDoQ1ugH85ppHKwpUHL7j7rN0Ti9NCnGiQbhaZ11FpR+7ao1dNsmduNUg==} + engines: {node: '>=12'} + /dotenv/8.2.0: resolution: {integrity: sha512-8sJ78ElpbDJBHNeBzUbUVLsqKdccaa/BXF1uPTw3GrvQTBgrQrtObr2mUrE38vzYd8cEv+m/JBfDLioYcfXoaw==} engines: {node: '>=8'} @@ -7894,21 +7796,8 @@ packages: resolution: {integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==} engines: {node: '>= 0.4'} - /es-get-iterator/1.1.3: - resolution: {integrity: sha512-sPZmqHBe6JIiTfN5q2pEi//TwxmAFHwj/XEuYjTuse78i8KxaqMTTzxPoFKuzRpDpTJ+0NAbpfenkmH2rePtuw==} - dependencies: - call-bind: 1.0.7 - get-intrinsic: 1.2.4 - has-symbols: 1.0.3 - is-arguments: 1.1.1 - is-map: 2.0.3 - is-set: 2.0.3 - is-string: 1.0.7 - isarray: 2.0.5 - stop-iteration-iterator: 1.0.0 - - /es-iterator-helpers/1.0.19: - resolution: {integrity: sha512-zoMwbCcH5hwUkKJkT8kDIBZSz9I6mVG//+lDCinLCGov4+r7NIy0ld8o03M0cJxl2spVf6ESYVS6/gpIfq1FFw==} + /es-iterator-helpers/1.1.0: + resolution: {integrity: sha512-/SurEfycdyssORP/E+bj4sEu1CWw4EmLDsHynHwSXQ7utgbrMRWW195pTrCjFgFCddf/UkYm3oqKPRq5i8bJbw==} engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.7 @@ -7923,7 +7812,7 @@ packages: has-proto: 1.0.3 has-symbols: 1.0.3 internal-slot: 1.0.7 - iterator.prototype: 1.1.2 + iterator.prototype: 1.1.3 safe-array-concat: 1.1.2 /es-module-lexer/0.9.3: @@ -8202,24 +8091,28 @@ packages: source-map: 0.6.1 dev: true - /eslint-config-prettier/9.1.0_eslint@8.56.0: + /eslint-config-prettier/9.1.0_eslint@9.13.0: resolution: {integrity: sha512-NSWl5BFQWEPi1j4TjVNItzYV7dZXZ+wP6I6ZhrBGpChQhZRUaElihE9uRRkcbRnNb76UMKDF3r+WTmNcGPKsqw==} hasBin: true peerDependencies: eslint: '>=7.0.0' dependencies: - eslint: 8.56.0 + eslint: 9.13.0 dev: true + /eslint-formatter-visualstudio/8.40.0: + resolution: {integrity: sha512-TsbZJpvu0wclOoy5MEhETzxrVWMPDg5sejowvQfbqw9e0ooozbnX/1STGiGaO/fH1JWLQvqQ4qAmai2u/Kep1g==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + /eslint-import-resolver-node/0.3.9: resolution: {integrity: sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==} dependencies: debug: 3.2.7 - is-core-module: 2.15.0 + is-core-module: 2.15.1 resolve: 1.22.8 - /eslint-module-utils/2.8.1_eslint@8.56.0: - resolution: {integrity: sha512-rXDXR3h7cs7dy9RNpUlQf80nX31XWJEyGq1tRMo+6GsO5VmTe4UTwtmonAD4ZkAsrfMVDA2wlGJ3790Ys+D49Q==} + /eslint-module-utils/2.12.0_eslint@9.13.0: + resolution: {integrity: sha512-wALZ0HFoytlyh/1+4wuZ9FJCD/leWHQzzrxJ8+rebyReSLk7LApMyd3WJaLVoN+D5+WIdJyDK1c6JnE65V4Zyg==} engines: {node: '>=4'} peerDependencies: eslint: '*' @@ -8228,45 +8121,33 @@ packages: optional: true dependencies: debug: 3.2.7 - eslint: 8.56.0 + eslint: 9.13.0 - /eslint-plugin-deprecation/2.0.0_xdgzedli73k7lw4xlyzszm74om: - resolution: {integrity: sha512-OAm9Ohzbj11/ZFyICyR5N6LbOIvQMp7ZU2zI7Ej0jIc8kiGUERXPNMfw2QqqHD1ZHtjMub3yPZILovYEYucgoQ==} - peerDependencies: - eslint: ^7.0.0 || ^8.0.0 - typescript: ^4.2.4 || ^5.0.0 - dependencies: - '@typescript-eslint/utils': 6.21.0_xdgzedli73k7lw4xlyzszm74om - eslint: 8.56.0 - tslib: 2.6.3 - tsutils: 3.21.0_typescript@5.3.3 - typescript: 5.3.3 - transitivePeerDependencies: - - supports-color - - /eslint-plugin-import/2.29.1_eslint@8.56.0: - resolution: {integrity: sha512-BbPC0cuExzhiMo4Ff1BTVwHpjjv28C5R+btTOGaCRC7UEz801up0JadwkeSk5Ued6TG34uaczuVuH6qyy5YUxw==} + /eslint-plugin-import/2.31.0_eslint@9.13.0: + resolution: {integrity: sha512-ixmkI62Rbc2/w8Vfxyh1jQRTdRTF52VxwRVHl/ykPAmqG+Nb7/kNn+byLP0LxPgI7zWA16Jt82SybJInmMia3A==} engines: {node: '>=4'} peerDependencies: - eslint: ^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 + eslint: ^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 || ^9 dependencies: + '@rtsao/scc': 1.1.0 array-includes: 3.1.8 array.prototype.findlastindex: 1.2.5 array.prototype.flat: 1.3.2 array.prototype.flatmap: 1.3.2 debug: 3.2.7 doctrine: 2.1.0 - eslint: 8.56.0 + eslint: 9.13.0 eslint-import-resolver-node: 0.3.9 - eslint-module-utils: 2.8.1_eslint@8.56.0 + eslint-module-utils: 2.12.0_eslint@9.13.0 hasown: 2.0.2 - is-core-module: 2.15.0 + is-core-module: 2.15.1 is-glob: 4.0.3 minimatch: 3.1.2 object.fromentries: 2.0.8 object.groupby: 1.0.3 object.values: 1.2.0 semver: 6.3.1 + string.prototype.trimend: 1.0.8 tsconfig-paths: 3.15.0 /eslint-plugin-jam3/0.2.3: @@ -8277,19 +8158,19 @@ packages: has: 1.0.4 requireindex: 1.1.0 - /eslint-plugin-jsdoc/48.11.0_eslint@8.56.0: - resolution: {integrity: sha512-d12JHJDPNo7IFwTOAItCeJY1hcqoIxE0lHA8infQByLilQ9xkqrRa6laWCnsuCrf+8rUnvxXY1XuTbibRBNylA==} + /eslint-plugin-jsdoc/50.4.3_eslint@9.13.0: + resolution: {integrity: sha512-uWtwFxGRv6B8sU63HZM5dAGDhgsatb+LONwmILZJhdRALLOkCX2HFZhdL/Kw2ls8SQMAVEfK+LmnEfxInRN8HA==} engines: {node: '>=18'} peerDependencies: eslint: ^7.0.0 || ^8.0.0 || ^9.0.0 dependencies: - '@es-joy/jsdoccomment': 0.46.0 + '@es-joy/jsdoccomment': 0.49.0 are-docs-informative: 0.0.2 comment-parser: 1.4.1 debug: 4.3.6 escape-string-regexp: 4.0.0 - eslint: 8.56.0 - espree: 10.1.0 + eslint: 9.13.0 + espree: 10.2.0 esquery: 1.6.0 parse-imports: 2.1.1 semver: 7.6.3 @@ -8298,47 +8179,47 @@ packages: transitivePeerDependencies: - supports-color - /eslint-plugin-jsx-a11y/6.9.0_eslint@8.56.0: - resolution: {integrity: sha512-nOFOCaJG2pYqORjK19lqPqxMO/JpvdCZdPtNdxY3kvom3jTvkAbOvQvD8wuD0G8BYR0IGAGYDlzqWJOh/ybn2g==} + /eslint-plugin-jsx-a11y/6.10.1_eslint@9.13.0: + resolution: {integrity: sha512-zHByM9WTUMnfsDTafGXRiqxp6lFtNoSOWBY6FonVRn3A+BUwN1L/tdBXT40BcBJi0cZjOGTXZ0eD/rTG9fEJ0g==} engines: {node: '>=4.0'} peerDependencies: - eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 + eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9 dependencies: - aria-query: 5.1.3 + aria-query: 5.3.2 array-includes: 3.1.8 array.prototype.flatmap: 1.3.2 ast-types-flow: 0.0.8 axe-core: 4.10.0 - axobject-query: 3.1.1 + axobject-query: 4.1.0 damerau-levenshtein: 1.0.8 emoji-regex: 9.2.2 - es-iterator-helpers: 1.0.19 - eslint: 8.56.0 + es-iterator-helpers: 1.1.0 + eslint: 9.13.0 hasown: 2.0.2 jsx-ast-utils: 3.3.5 language-tags: 1.0.9 minimatch: 3.1.2 object.fromentries: 2.0.8 safe-regex-test: 1.0.3 - string.prototype.includes: 2.0.0 + string.prototype.includes: 2.0.1 - /eslint-plugin-prefer-arrow/1.2.3_eslint@8.56.0: + /eslint-plugin-prefer-arrow/1.2.3_eslint@9.13.0: resolution: {integrity: sha512-J9I5PKCOJretVuiZRGvPQxCbllxGAV/viI20JO3LYblAodofBxyMnZAJ+WGeClHgANnSJberTNoFWWjrWKBuXQ==} peerDependencies: eslint: '>=2.0.0' dependencies: - eslint: 8.56.0 + eslint: 9.13.0 - /eslint-plugin-react-hooks/4.6.2_eslint@8.56.0: - resolution: {integrity: sha512-QzliNJq4GinDBcD8gPB5v0wh6g8q3SUi6EFF0x8N/BL9PoVs0atuGc47ozMRyOWAKdwaZ5OnbOEa3WR+dSGKuQ==} + /eslint-plugin-react-hooks/5.0.0_eslint@9.13.0: + resolution: {integrity: sha512-hIOwI+5hYGpJEc4uPRmz2ulCjAGD/N13Lukkh8cLV0i2IRk/bdZDYjgLVHj+U9Z704kLIdIO6iueGvxNur0sgw==} engines: {node: '>=10'} peerDependencies: - eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 + eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 || ^9.0.0 dependencies: - eslint: 8.56.0 + eslint: 9.13.0 - /eslint-plugin-react/7.35.0_eslint@8.56.0: - resolution: {integrity: sha512-v501SSMOWv8gerHkk+IIQBkcGRGrO2nfybfj5pLxuJNFTPxxA3PSryhXTK+9pNbtkggheDdsC0E9Q8CuPk6JKA==} + /eslint-plugin-react/7.37.2_eslint@9.13.0: + resolution: {integrity: sha512-EsTAnj9fLVr/GZleBLFbj/sSuXeWmp1eXIN60ceYnZveqEaUCyW4X+Vh4WTdUhCkW4xutXYqTXCUSyqD4rB75w==} engines: {node: '>=4'} peerDependencies: eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9.7 @@ -8348,8 +8229,8 @@ packages: array.prototype.flatmap: 1.3.2 array.prototype.tosorted: 1.1.4 doctrine: 2.1.0 - es-iterator-helpers: 1.0.19 - eslint: 8.56.0 + es-iterator-helpers: 1.1.0 + eslint: 9.13.0 estraverse: 5.3.0 hasown: 2.0.2 jsx-ast-utils: 3.3.5 @@ -8370,9 +8251,9 @@ packages: esrecurse: 4.3.0 estraverse: 4.3.0 - /eslint-scope/7.2.2: - resolution: {integrity: sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + /eslint-scope/8.1.0: + resolution: {integrity: sha512-14dSvlhaVhKKsa9Fx1l8A17s7ah7Ef7wCakJ10LYk6+GYmP9yDti2oq2SEwcyndt6knfcZyhyxwY3i9yL78EQw==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} dependencies: esrecurse: 4.3.0 estraverse: 5.3.0 @@ -8381,71 +8262,65 @@ packages: resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - /eslint-visitor-keys/4.0.0: - resolution: {integrity: sha512-OtIRv/2GyiF6o/d8K7MYKKbXrOUBIK6SfkIRM4Z0dY3w+LiQ0vy3F57m0Z71bjbyeiWFiHJ8brqnmE6H6/jEuw==} + /eslint-visitor-keys/4.1.0: + resolution: {integrity: sha512-Q7lok0mqMUSf5a/AdAZkA5a/gHcO6snwQClVNNvFKCAVlxXucdU8pKydU5ZVZjBx5xr37vGbFFWtLQYreLzrZg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - /eslint/8.56.0: - resolution: {integrity: sha512-Go19xM6T9puCOWntie1/P997aXxFsOi37JIHRWI514Hc6ZnaHGKY9xFhrU65RT6CcBEzZoGG1e6Nq+DT04ZtZQ==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + /eslint/9.13.0: + resolution: {integrity: sha512-EYZK6SX6zjFHST/HRytOdA/zE72Cq/bfw45LSyuwrdvcclb/gqV8RRQxywOBEWO2+WDpva6UZa4CcDeJKzUCFA==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} hasBin: true + peerDependencies: + jiti: '*' + peerDependenciesMeta: + jiti: + optional: true dependencies: - '@eslint-community/eslint-utils': 4.4.0_eslint@8.56.0 + '@eslint-community/eslint-utils': 4.4.0_eslint@9.13.0 '@eslint-community/regexpp': 4.11.0 - '@eslint/eslintrc': 2.1.4 - '@eslint/js': 8.56.0 - '@humanwhocodes/config-array': 0.11.14 + '@eslint/config-array': 0.18.0 + '@eslint/core': 0.7.0 + '@eslint/eslintrc': 3.1.0 + '@eslint/js': 9.13.0 + '@eslint/plugin-kit': 0.2.1 + '@humanfs/node': 0.16.5 '@humanwhocodes/module-importer': 1.0.1 - '@nodelib/fs.walk': 1.2.8 - '@ungap/structured-clone': 1.2.0 + '@humanwhocodes/retry': 0.3.1 + '@types/estree': 1.0.6 + '@types/json-schema': 7.0.15 ajv: 6.12.6 chalk: 4.1.2 cross-spawn: 7.0.3 debug: 4.3.6 - doctrine: 3.0.0 escape-string-regexp: 4.0.0 - eslint-scope: 7.2.2 - eslint-visitor-keys: 3.4.3 - espree: 9.6.1 + eslint-scope: 8.1.0 + eslint-visitor-keys: 4.1.0 + espree: 10.2.0 esquery: 1.6.0 esutils: 2.0.3 fast-deep-equal: 3.1.3 - file-entry-cache: 6.0.1 + file-entry-cache: 8.0.0 find-up: 5.0.0 glob-parent: 6.0.2 - globals: 13.24.0 - graphemer: 1.4.0 ignore: 5.3.2 imurmurhash: 0.1.4 is-glob: 4.0.3 - is-path-inside: 3.0.3 - js-yaml: 4.1.0 json-stable-stringify-without-jsonify: 1.0.1 - levn: 0.4.1 lodash.merge: 4.6.2 minimatch: 3.1.2 natural-compare: 1.4.0 optionator: 0.9.4 - strip-ansi: 6.0.1 text-table: 0.2.0 transitivePeerDependencies: - supports-color - /espree/10.1.0: - resolution: {integrity: sha512-M1M6CpiE6ffoigIOWYO9UDP8TMUw9kqb21tf+08IgDYjCsOvCuDt4jQcZmoYxx+w7zlKw9/N0KXfto+I8/FrXA==} + /espree/10.2.0: + resolution: {integrity: sha512-upbkBJbckcCNBDBDXEbuhjbP68n+scUd3k/U2EkyM9nw+I/jPiL4cLF/Al06CF96wRltFda16sxDFrxsI1v0/g==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} dependencies: acorn: 8.12.1 acorn-jsx: 5.3.2_acorn@8.12.1 - eslint-visitor-keys: 4.0.0 - - /espree/9.6.1: - resolution: {integrity: sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - dependencies: - acorn: 8.12.1 - acorn-jsx: 5.3.2_acorn@8.12.1 - eslint-visitor-keys: 3.4.3 + eslint-visitor-keys: 4.1.0 /esprima/1.2.2: resolution: {integrity: sha512-+JpPZam9w5DuJ3Q67SqsMGtiHKENSMRVoxvArfJZK01/BfLEObtZ6orJa/MtoGNR/rfMgp5837T41PAmTwAv/A==} @@ -8667,11 +8542,11 @@ packages: hasBin: true dev: false - /file-entry-cache/6.0.1: - resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==} - engines: {node: ^10.12.0 || >=12.0.0} + /file-entry-cache/8.0.0: + resolution: {integrity: sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==} + engines: {node: '>=16.0.0'} dependencies: - flat-cache: 3.2.0 + flat-cache: 4.0.1 /file-loader/6.2.0_webpack@5.76.0: resolution: {integrity: sha512-qo3glqyTa61Ytg4u73GultjHGjdRyig3tG6lPtyX/jOEJvHif9uB0/OCI2Kif6ctF3caQTW2G5gym21oAsI4pw==} @@ -8747,13 +8622,12 @@ packages: commander: 2.1.0 dev: false - /flat-cache/3.2.0: - resolution: {integrity: sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==} - engines: {node: ^10.12.0 || >=12.0.0} + /flat-cache/4.0.1: + resolution: {integrity: sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==} + engines: {node: '>=16'} dependencies: flatted: 3.3.1 keyv: 4.5.4 - rimraf: 3.0.2 /flat/5.0.2: resolution: {integrity: sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==} @@ -8925,21 +8799,6 @@ packages: resolution: {integrity: sha512-ESBRkGLWMuVkapqYCcNO1uqMg5qbCKkgb+VS6wsy17Rix0/cMS9kSOZoYkjH8Ko//pgJ/EEGu0GTjk2mjX2LGQ==} dev: false - /gauge/5.0.2: - resolution: {integrity: sha512-pMaFftXPtiGIHCJHdcUUx9Rby/rFT/Kkt3fIIGCs+9PMDIljSyRiqraTlxNtBReJRDfUefpa263RQ3vnp5G/LQ==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - deprecated: This package is no longer supported. - dependencies: - aproba: 2.0.0 - color-support: 1.1.3 - console-control-strings: 1.1.0 - has-unicode: 2.0.1 - signal-exit: 4.1.0 - string-width: 4.2.3 - strip-ansi: 6.0.1 - wide-align: 1.1.5 - dev: true - /generate-function/2.3.1: resolution: {integrity: sha512-eeB5GfMNeevm/GRYq20ShmsaGcmI81kIX2K9XQx5miC8KdHaC6Jm0qQ8ZNeGOi7wYB8OsdxKs+Y2oVuTFuVwKQ==} dependencies: @@ -9097,11 +8956,9 @@ packages: resolution: {integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==} engines: {node: '>=4'} - /globals/13.24.0: - resolution: {integrity: sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==} - engines: {node: '>=8'} - dependencies: - type-fest: 0.20.2 + /globals/14.0.0: + resolution: {integrity: sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==} + engines: {node: '>=18'} /globalthis/1.0.4: resolution: {integrity: sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==} @@ -9261,10 +9118,6 @@ packages: dependencies: has-symbols: 1.0.3 - /has-unicode/2.0.1: - resolution: {integrity: sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ==} - dev: true - /has-yarn/2.1.0: resolution: {integrity: sha512-UqBRqi4ju7T+TqGNdqAO0PaSVGsDGJUBQvk9eUWNGRY1CFGDzYhLWoM7JQEemnlvVcv/YEmc2wNW8BC24EnUsw==} engines: {node: '>=8'} @@ -9570,6 +9423,7 @@ packages: dependencies: call-bind: 1.0.7 has-tostringtag: 1.0.2 + dev: true /is-array-buffer/3.0.4: resolution: {integrity: sha512-wcjaerHw0ydZwfhiKbXJWLDY8A7yV7KhjQOpb83hGgGfId/aQa4TOvwyzn2PuswW2gPCYEL/nEAiSVpdOj1lXw==} @@ -9630,6 +9484,12 @@ packages: dependencies: hasown: 2.0.2 + /is-core-module/2.15.1: + resolution: {integrity: sha512-z0vtXSwucUJtANQWldhbtbt7BnL0vxiFjIdDLAatwhDYty2bad6s+rijD6Ri4YuYJubLzIJLUidCh09e1djEVQ==} + engines: {node: '>= 0.4'} + dependencies: + hasown: 2.0.2 + /is-data-view/1.0.1: resolution: {integrity: sha512-AHkaJrsUVW6wq6JS8y3JnM/GJF/9cf+k20+iDzlSaJrinEo5+7vRiteOSwBhHRiAyQATN1AmY4hwzxJKPmYf+w==} engines: {node: '>= 0.4'} @@ -9737,6 +9597,7 @@ packages: /is-path-inside/3.0.3: resolution: {integrity: sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==} engines: {node: '>=8'} + dev: false /is-plain-obj/2.1.0: resolution: {integrity: sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==} @@ -9874,6 +9735,11 @@ packages: /isexe/2.0.0: resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} + /isexe/3.1.1: + resolution: {integrity: sha512-LpB/54B+/2J5hqQ7imZHfdU31OlgQqx7ZicVlkm9kzg9/w8GKLEcFfJl/t7DCEDueOyBAD6zCCwTO6Fzs0NoEQ==} + engines: {node: '>=16'} + dev: true + /isobject/3.0.1: resolution: {integrity: sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==} engines: {node: '>=0.10.0'} @@ -9960,8 +9826,9 @@ packages: html-escaper: 2.0.2 istanbul-lib-report: 3.0.1 - /iterator.prototype/1.1.2: - resolution: {integrity: sha512-DR33HMMr8EzwuRL8Y9D3u2BMj8+RqSE850jfGu59kS7tbmPLzGkZmVSfyCFSDxuZiEY6Rzt3T2NA/qU+NwVj1w==} + /iterator.prototype/1.1.3: + resolution: {integrity: sha512-FW5iMbeQ6rBGm/oKgzq2aW4KvAGpxPzYES8N4g4xNXUKpL1mclMvOe+76AcLDTvD+Ze+sOpVhgdAQEKF4L9iGQ==} + engines: {node: '>= 0.4'} dependencies: define-properties: 1.2.1 get-intrinsic: 1.2.4 @@ -10057,8 +9924,8 @@ packages: resolution: {integrity: sha512-SnZNcinB4RIcnEyZqFPdGPVgrg2AcnykiBy0sHVJQKHYeaLUvi3Exj+iaPpLnFVkDPZIV4U0yvgC9/R4uEAZ9g==} dev: false - /jsdoc-type-pratt-parser/4.0.0: - resolution: {integrity: sha512-YtOli5Cmzy3q4dP26GraSOeAhqecewG04hoO8DY56CH4KJ9Fvv5qKWUCCo3HZob7esJQHCv6/+bnTy72xZZaVQ==} + /jsdoc-type-pratt-parser/4.1.0: + resolution: {integrity: sha512-Hicd6JK5Njt2QB6XYFS7ok9e37O8AYk3jTcppG4YVQnYjOemymvTcmc7OWsmq/Qqj5TdRFO5/x/tIPmBeRtGHg==} engines: {node: '>=12.0.0'} /jsdom-global/3.0.2_jsdom@19.0.0: @@ -10723,12 +10590,6 @@ packages: dependencies: brace-expansion: 2.0.1 - /minimatch/9.0.3: - resolution: {integrity: sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==} - engines: {node: '>=16 || 14 >=14.17'} - dependencies: - brace-expansion: 2.0.1 - /minimatch/9.0.5: resolution: {integrity: sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==} engines: {node: '>=16 || 14 >=14.17'} @@ -10834,7 +10695,7 @@ packages: /ms/2.1.3: resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} - /msw/2.4.12_typescript@5.3.3: + /msw/2.4.12_typescript@5.6.2: resolution: {integrity: sha512-upQMKZt0fYIB0Gj6gKc5i/PK4JrICTu3ItfXiju3FTdgQLaqARv7+jugPCsOkrWpTzzjo5iLW+4F6L/mGNukbA==} engines: {node: '>=18'} hasBin: true @@ -10861,7 +10722,7 @@ packages: path-to-regexp: 6.3.0 strict-event-emitter: 0.5.1 type-fest: 4.26.1 - typescript: 5.3.3 + typescript: 5.6.2 yargs: 17.7.2 dev: true @@ -10982,21 +10843,20 @@ packages: /node-releases/2.0.18: resolution: {integrity: sha512-d9VeXT4SJ7ZeOqGX6R5EM022wpL+eWPooLI+5UpWn2jCT1aosUQEhQP214x33Wkwx3JQMvIm+tIoVOdodFS40g==} - /node-simctl/7.2.1: - resolution: {integrity: sha512-P1eEE1e8A9TnieXl5gGHyKslC5au24RW80mBine9rOsfXW2iEeRYUMvG7xFgGupq8FySbhYOJYRXB2Oo5FuN+Q==} + /node-simctl/7.6.1: + resolution: {integrity: sha512-5vJvlPNqgu2iMHiBBkJ2vYtol18638ATpDcKjnSwcOkqXcjADBZh3IW7lLt5idiswFG9KsK1qXVHBhELXfWeyg==} engines: {node: '>=14', npm: '>=8'} dependencies: - '@babel/runtime': 7.25.0 - asyncbox: 2.9.4 + '@appium/logger': 1.6.1 + asyncbox: 3.0.0 bluebird: 3.7.2 lodash: 4.17.21 - npmlog: 7.0.1 rimraf: 5.0.10 - semver: 7.5.2 - source-map-support: 0.5.6 + semver: 7.6.3 + source-map-support: 0.5.21 teen_process: 2.2.0 - uuid: 9.0.1 - which: 3.0.1 + uuid: 10.0.0 + which: 4.0.0 dev: true /nodemon/2.0.4: @@ -11072,17 +10932,6 @@ packages: path-key: 2.0.1 dev: false - /npmlog/7.0.1: - resolution: {integrity: sha512-uJ0YFk/mCQpLBt+bxN88AKd+gyqZvZDbtiNxk6Waqcj2aPRyfVx8ITawkyQynxUagInjdYT1+qj4NfA5KJJUxg==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - deprecated: This package is no longer supported. - dependencies: - are-we-there-yet: 4.0.2 - console-control-strings: 1.1.0 - gauge: 5.0.2 - set-blocking: 2.0.0 - dev: true - /null-loader/4.0.1_webpack@5.76.0: resolution: {integrity: sha512-pxqVbi4U6N26lq+LmgIbB5XATP0VdZKOG25DhHi8btMmJJefGArFyDg1yc4U3hWCJbMqSrw0qyrz1UQX+qYXqg==} engines: {node: '>= 10.13.0'} @@ -11156,13 +11005,6 @@ packages: engines: {node: '>= 0.4'} dev: true - /object-is/1.1.6: - resolution: {integrity: sha512-F8cZ+KfGlSGi09lJT7/Nd6KJZ9ygtvYC0/UYYLI9nmQKLMnydpB9yvbv9K1uSkEu7FU9vYPmVwLg328tX+ot3Q==} - engines: {node: '>= 0.4'} - dependencies: - call-bind: 1.0.7 - define-properties: 1.2.1 - /object-keys/1.1.1: resolution: {integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==} engines: {node: '>= 0.4'} @@ -12052,7 +11894,7 @@ packages: resolution: {integrity: sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==} hasBin: true dependencies: - is-core-module: 2.15.0 + is-core-module: 2.15.1 path-parse: 1.0.7 supports-preserve-symlinks-flag: 1.0.0 @@ -12060,7 +11902,7 @@ packages: resolution: {integrity: sha512-U7WjGVG9sH8tvjW5SmGbQuui75FiyjAX72HX15DwBBwF9dNiQZRQAg9nnPhYy+TUnE0+VcrttuvNI8oSxZcocA==} hasBin: true dependencies: - is-core-module: 2.15.0 + is-core-module: 2.15.1 path-parse: 1.0.7 supports-preserve-symlinks-flag: 1.0.0 @@ -12761,12 +12603,6 @@ packages: resolution: {integrity: sha512-JPbdCEQLj1w5GilpiHAx3qJvFndqybBysA3qUOnznweH4QbNYUsW/ea8QzSrnh0vNsezMMw5bcVool8lM0gwzg==} dev: true - /stop-iteration-iterator/1.0.0: - resolution: {integrity: sha512-iCGQj+0l0HOdZ2AEeBADlsRC+vsnDsZsbdSiH1yNSjcfKM7fdpCMfqAL/dwF5BLiw/XhRft/Wax6zQbhq2BcjQ==} - engines: {node: '>= 0.4'} - dependencies: - internal-slot: 1.0.7 - /stoppable/1.1.0: resolution: {integrity: sha512-KXDYZ9dszj6bzvnEMRYvxgeTHU74QBFL54XKtP3nyMuJ81CFYtABZ3bAzL2EdFUaEwJOBOgENyFj3R7oTzDyyw==} engines: {node: '>=4', npm: '>=6'} @@ -12813,9 +12649,11 @@ packages: emoji-regex: 9.2.2 strip-ansi: 7.1.0 - /string.prototype.includes/2.0.0: - resolution: {integrity: sha512-E34CkBgyeqNDcrbU76cDjL5JLcVrtSdYq0MEh/B10r17pRP4ciHLwTgnuLV8Ay6cgEMLkcBkFCKyFZ43YldYzg==} + /string.prototype.includes/2.0.1: + resolution: {integrity: sha512-o7+c9bW6zpAdJHTtujeePODAhkuicdAryFsfVKwA+wGw89wJ4GTY484WTucM9hLtDEOpOvI+aHnzqnC5lHp4Rg==} + engines: {node: '>= 0.4'} dependencies: + call-bind: 1.0.7 define-properties: 1.2.1 es-abstract: 1.23.3 @@ -13046,7 +12884,7 @@ packages: bluebird: 3.7.2 lodash: 4.17.21 shell-quote: 1.8.1 - source-map-support: 0.5.6 + source-map-support: 0.5.21 dev: true /term-size/2.2.1: @@ -13227,78 +13065,13 @@ packages: utf8-byte-length: 1.0.5 dev: true - /ts-api-utils/1.3.0_typescript@5.3.3: + /ts-api-utils/1.3.0_typescript@5.6.2: resolution: {integrity: sha512-UQMIo7pb8WRomKR1/+MFVLTroIvDVtMX3K6OUir8ynLyzB8Jeriont2bTAtmNPa1ekAgN7YPDyf6V+ygrdU+eQ==} engines: {node: '>=16'} peerDependencies: typescript: '>=4.2.0' dependencies: - typescript: 5.3.3 - - /ts-node/10.8.2_typescript@5.3.3: - resolution: {integrity: sha512-LYdGnoGddf1D6v8REPtIH+5iq/gTDuZqv2/UJUU7tKjuEU8xVZorBM+buCGNjj+pGEud+sOoM4CX3/YzINpENA==} - hasBin: true - peerDependencies: - '@swc/core': '>=1.2.50' - '@swc/wasm': '>=1.2.50' - '@types/node': '*' - typescript: '>=2.7' - peerDependenciesMeta: - '@swc/core': - optional: true - '@swc/wasm': - optional: true - '@types/node': - optional: true - dependencies: - '@cspotcode/source-map-support': 0.8.1 - '@tsconfig/node10': 1.0.11 - '@tsconfig/node12': 1.0.11 - '@tsconfig/node14': 1.0.3 - '@tsconfig/node16': 1.0.4 - acorn: 8.12.1 - acorn-walk: 8.3.3 - arg: 4.1.3 - create-require: 1.1.1 - diff: 4.0.2 - make-error: 1.3.6 - typescript: 5.3.3 - v8-compile-cache-lib: 3.0.1 - yn: 3.1.1 - dev: true - - /ts-node/10.8.2_zifzk4dbgzfq65cu6hdbkv4dfq: - resolution: {integrity: sha512-LYdGnoGddf1D6v8REPtIH+5iq/gTDuZqv2/UJUU7tKjuEU8xVZorBM+buCGNjj+pGEud+sOoM4CX3/YzINpENA==} - hasBin: true - peerDependencies: - '@swc/core': '>=1.2.50' - '@swc/wasm': '>=1.2.50' - '@types/node': '*' - typescript: '>=2.7' - peerDependenciesMeta: - '@swc/core': - optional: true - '@swc/wasm': - optional: true - '@types/node': - optional: true - dependencies: - '@cspotcode/source-map-support': 0.8.1 - '@tsconfig/node10': 1.0.11 - '@tsconfig/node12': 1.0.11 - '@tsconfig/node14': 1.0.3 - '@tsconfig/node16': 1.0.4 - '@types/node': 18.16.20 - acorn: 8.12.1 - acorn-walk: 8.3.3 - arg: 4.1.3 - create-require: 1.1.1 - diff: 4.0.2 - make-error: 1.3.6 - typescript: 5.3.3 - v8-compile-cache-lib: 3.0.1 - yn: 3.1.1 - dev: true + typescript: 5.6.2 /ts-node/10.9.2_xw3dqu73apqmbah5ef2pbs7lnm: resolution: {integrity: sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ==} @@ -13343,19 +13116,11 @@ packages: /tslib/1.14.1: resolution: {integrity: sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==} + dev: false /tslib/2.6.3: resolution: {integrity: sha512-xNvxJEOUiWPGhUuUdQgAJPKOOJfGnIyKySOc09XkKsgdUV/3E2zvwZYdejjmRgPCgcym1juLH3226yA7sEFJKQ==} - /tsutils/3.21.0_typescript@5.3.3: - resolution: {integrity: sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==} - engines: {node: '>= 6'} - peerDependencies: - typescript: '>=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta' - dependencies: - tslib: 1.14.1 - typescript: 5.3.3 - /tunnel/0.0.6: resolution: {integrity: sha512-1h/Lnq9yajKY2PEbBadPXj3VxsDDu844OnaAo52UVmIzIvwwtBPIuNvkjuzBlTWpfJyUbG3ez0KSBibQkj4ojg==} engines: {node: '>=0.6.11 <=0.7.0 || >=0.7.3'} @@ -13387,10 +13152,6 @@ packages: engines: {node: '>=10'} optional: true - /type-fest/0.20.2: - resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==} - engines: {node: '>=10'} - /type-fest/0.21.3: resolution: {integrity: sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==} engines: {node: '>=10'} @@ -13467,10 +13228,10 @@ packages: peerDependencies: typedoc: 0.24.x || 0.25.x dependencies: - typedoc: 0.25.8_typescript@5.3.3 + typedoc: 0.25.8_typescript@5.6.2 dev: false - /typedoc/0.25.8_typescript@5.3.3: + /typedoc/0.25.8_typescript@5.6.2: resolution: {integrity: sha512-mh8oLW66nwmeB9uTa0Bdcjfis+48bAjSH3uqdzSuSawfduROQLlXw//WSNZLYDdhmMVB7YcYZicq6e8T0d271A==} engines: {node: '>= 16'} hasBin: true @@ -13481,7 +13242,7 @@ packages: marked: 4.3.0 minimatch: 9.0.5 shiki: 0.14.7 - typescript: 5.3.3 + typescript: 5.6.2 dev: false /typemoq/2.1.0: @@ -13516,16 +13277,10 @@ packages: hasBin: true dev: true - /typescript/5.3.3: - resolution: {integrity: sha512-pXWcraxM0uxAS+tN0AG/BF2TyqmHO014Z070UsJ+pFvYuRSq8KH8DmWpnbXe0pEPDHXZV3FcAbJkijJ5oNEnWw==} - engines: {node: '>=14.17'} - hasBin: true - - /typescript/5.4.2: - resolution: {integrity: sha512-+2/g0Fds1ERlP6JsakQQDXjZdZMM+rqpamFZJEKh4kwTIn3iDkgKtby0CeNd5ATNZ4Ry1ax15TMx0W2V+miizQ==} + /typescript/5.6.2: + resolution: {integrity: sha512-NW8ByodCSNCwZeghjN3o+JX5OFH0Ojg6sadjEKY4huZ52TqbJTJnDo5+Tw98lSy63NZvi4n+ez5m2u5d4PkZyw==} engines: {node: '>=14.17'} hasBin: true - dev: false /uid-safe/2.1.5: resolution: {integrity: sha512-KPHm4VL5dDXKz01UuEd88Df+KzynaohSL9fBh096KWAxSKZQDI2uBrVqtvRM4rwrIrRRKsdLNML/lnaaVSRioA==} @@ -13676,6 +13431,11 @@ packages: resolution: {integrity: sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==} engines: {node: '>= 0.4.0'} + /uuid/10.0.0: + resolution: {integrity: sha512-8XkAphELsDnEGrDxUOHB3RGvXz6TeuYSGEZBOjtTtPm2lwhGBjLgOzLHB63IUWfBpNucQjND6d3AOudO+H3RWQ==} + hasBin: true + dev: true + /uuid/3.4.0: resolution: {integrity: sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==} deprecated: Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details. @@ -13686,11 +13446,6 @@ packages: resolution: {integrity: sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==} hasBin: true - /uuid/9.0.1: - resolution: {integrity: sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==} - hasBin: true - dev: true - /v8-compile-cache-lib/3.0.1: resolution: {integrity: sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==} dev: true @@ -13789,7 +13544,7 @@ packages: perfect-debounce: 1.0.0 picocolors: 1.0.1 sirv: 2.0.4 - vite: 5.4.6 + vite: 5.4.6_@types+node@18.16.20 transitivePeerDependencies: - rollup - supports-color @@ -14022,7 +13777,7 @@ packages: jsdom: optional: true dependencies: - '@vitest/browser': 2.1.0_ngagn3iqlnfmtvqcnqspau7y7u + '@vitest/browser': 2.1.0_bbcqthgmodi4rrojsqljgj3bpm '@vitest/expect': 2.1.0 '@vitest/mocker': 2.1.0_vite@5.4.6 '@vitest/pretty-format': 2.1.1 @@ -14318,12 +14073,12 @@ packages: dependencies: isexe: 2.0.0 - /which/3.0.1: - resolution: {integrity: sha512-XA1b62dzQzLfaEOSQFTCOd5KFf/1VSzZo7/7TUjnya6u0vGGKzU96UQBZTAThCb2j4/xjBAyii1OhRLJEivHvg==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + /which/4.0.0: + resolution: {integrity: sha512-GlaYyEb07DPxYCKhKzplCWBJtvxZcZMrL+4UkrTSJHHPyZU4mYYTv3qaOe77H7EODLSSopAUFAc6W8U4yqvscg==} + engines: {node: ^16.13.0 || >=18.0.0} hasBin: true dependencies: - isexe: 2.0.0 + isexe: 3.1.1 dev: true /why-is-node-running/2.3.0: @@ -14335,12 +14090,6 @@ packages: stackback: 0.0.2 dev: true - /wide-align/1.1.5: - resolution: {integrity: sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==} - dependencies: - string-width: 4.2.3 - dev: true - /widest-line/3.1.0: resolution: {integrity: sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg==} engines: {node: '>=8'}