From 051e821cd07991fbbb39cea9ffdfe36b741d424d Mon Sep 17 00:00:00 2001 From: Jae Sung Park Date: Thu, 8 Aug 2024 14:29:07 +0900 Subject: [PATCH] test(vitest): Migrate karma to vitest Migrate all tests to be ran on vitest Fix #3681 --- karma.conf.cjs | 158 - package.json | 34 +- src/ChartInternal/internals/scale.ts | 2 +- src/module/browser.ts | 2 +- src/module/util.ts | 4 +- src/module/worker.ts | 2 +- test/api/axis-spec.ts | 56 +- test/api/category-spec.ts | 10 +- test/api/chart-spec.ts | 10 +- test/api/data-spec.ts | 20 +- test/api/export-spec.ts | 63 +- test/api/flow-spec.ts | 77 +- test/api/focus-spec.ts | 95 +- test/api/grid-spec.ts | 30 +- test/api/legend-spec.ts | 16 +- test/api/load-spec.ts | 294 +- test/api/region-spec.ts | 46 +- test/api/selection-spec.ts | 8 +- test/api/show-spec.ts | 78 +- test/api/subchart-spec.ts | 16 +- test/api/tooltip-spec.ts | 28 +- test/api/x-spec.ts | 6 +- test/api/zoom-spec.ts | 96 +- test/assets/hammer-simulator.run.js | 4 - test/assets/helper.ts | 3 +- test/assets/module/hammer-simulator.js | 520 +++ test/assets/module/util.ts | 11 +- test/assets/util.ts | 31 +- test/esm/bar-spec.ts | 4 +- test/esm/donut-spec.ts | 10 +- test/esm/esm-error-spec.ts | 6 +- test/esm/esm-spec.ts | 2 +- test/esm/line-spec.ts | 2 +- test/esm/radar-spec.ts | 4 +- test/esm/scatter-spec.ts | 2 +- test/esm/subchart-spec.ts | 2 +- test/interactions/drag-spec.ts | 36 +- test/interactions/interaction-spec.ts | 136 +- test/interactions/interaction-touch-spec.ts | 13 +- test/interactions/subchart-spec.ts | 45 +- test/interactions/zoom-spec.ts | 149 +- test/internals/axis-spec.ts | 194 +- test/internals/axis-x-spec.ts | 12 +- test/internals/bb-spec.ts | 94 +- test/internals/boost-spec.ts | 12 +- test/internals/class-spec.ts | Bin 2172 -> 2192 bytes test/internals/color-spec.ts | 36 +- test/internals/core-spec.ts | 66 +- test/internals/data-convert-spec.ts | 2 +- test/internals/data-spec.ts | 110 +- test/internals/domain-spec.ts | 26 +- test/internals/generator-spec.ts | 14 +- test/internals/grid-spec.ts | 79 +- test/internals/legend-spec.ts | 82 +- test/internals/padding-spec.ts | 8 +- .../{rergions-spec.ts => regions-spec.ts} | 14 +- test/internals/selection-spec.ts | 14 +- test/internals/text-spec.ts | 72 +- test/internals/title-spec.ts | 8 +- test/internals/tooltip-position-spec.ts | 70 +- test/internals/tooltip-redraw-spec.ts | 58 +- test/internals/tooltip-spec.ts | 95 +- test/internals/type-spec.ts | 11 +- test/internals/util-spec.ts | 11 +- test/module/module-spec.ts | 62 +- .../bubble-compare/bubble-compare-spec.ts | 2 +- test/plugin/sparkline/sparkline-spec.ts | 8 +- .../plugin/stanford/stanford-elements-spec.ts | 24 +- test/plugin/stanford/stanford-spec.ts | 12 +- test/plugin/tableview/tableview-spec.ts | 12 +- test/plugin/textoverlap/textoverlap-spec.ts | 2 +- test/shape/arc-needle-spec.ts | 74 +- test/shape/arc-rangeText-spec.ts | 30 +- test/shape/arc-spec.ts | 132 +- test/shape/area-range-spec.ts | 14 +- test/shape/area-spec.ts | 40 +- test/shape/bar-spec.ts | 132 +- test/shape/bubble-spec.ts | 12 +- ...andelstick-spec.ts => candlestick-spec.ts} | 16 +- test/shape/funnel-spec.ts | 42 +- test/shape/gauge-spec.ts | 87 +- test/shape/line-spec.ts | 32 +- test/shape/point-spec.ts | 84 +- test/shape/polar-spec.ts | 42 +- test/shape/radar-spec.ts | 22 +- test/shape/shape-spec.ts | 4 +- test/shape/treemap-spec.ts | 16 +- vitest.config.ts | 64 + yarn.lock | 3980 ++++++++++------- 89 files changed, 4661 insertions(+), 3503 deletions(-) delete mode 100644 karma.conf.cjs delete mode 100644 test/assets/hammer-simulator.run.js create mode 100644 test/assets/module/hammer-simulator.js rename test/internals/{rergions-spec.ts => regions-spec.ts} (96%) rename test/shape/{candelstick-spec.ts => candlestick-spec.ts} (97%) create mode 100644 vitest.config.ts diff --git a/karma.conf.cjs b/karma.conf.cjs deleted file mode 100644 index 4a4c4686d..000000000 --- a/karma.conf.cjs +++ /dev/null @@ -1,158 +0,0 @@ -/* eslint-disable */ -// @ts-nocheck -// import {webpack} from "webpack"; -// import {platform} from "os"; - -const webpack = require("webpack"); -const isWin = require("os").platform() === "win32"; - -// file extension to be tested -const fileExtensions = /(\.[jt]s)$/; - -module.exports = function(config) { - const {TEST_TYPE: type = false} = process.env; - const isCoverage = type === "coverage"; - const isChrome = type === "chrome"; - - const karmaConfig = { - frameworks: ["mocha", "chai", "sinon", "webpack"], - files: [ - "./node_modules/lite-fixture/index.js", - "./node_modules/hammer-simulator/index.js", - "./test/assets/hammer-simulator.run.js", - "./src/scss/billboard.scss", - "./test/assets/common.css", - "./test/**/*-spec.ts", - { - pattern: "./test/assets/data/*", - watched: false, - included: false, - served: true - } - ], - - client: { - mocha: { - opts: "./mocha.opts" - } - }, - - webpack: { - devtool: "cheap-module-source-map", - mode: "development", - stats: "none", - resolve: { - extensions: [".ts", ".js"] - }, - target: ["web", "es5"], - module: { - rules: [ - { - test: require.resolve("./src/module/browser.ts"), - loader: "exports-loader", - options: { - type: "module", - exports: ["getGlobal", "getFallback"] - } - }, - { - test: require.resolve("./src/module/worker.ts"), - loader: "exports-loader", - options: { - type: "module", - exports: "getWorker" - } - }, - { - test: /\.[jt]s$/, - loader: "esbuild-loader", - options: { - target: "es2015" - }, - exclude: { - and: [/node_modules/], - not: [/(d3\-.*)$/, /internmap/] - } - } - ] - }, - optimization: { - usedExports: true - }, - plugins: isWin ? [ - new webpack.NormalModuleReplacementPlugin( - /module\/util/i, function(resource) { - resource.request = resource.request.replace("module/util", "../test/assets/module/util"); - } - ), - new webpack.NormalModuleReplacementPlugin( - /fake/i, function(resource) { - if (/test\\assets\\module/i.test(resource.context)) { - resource.request = "../../../src/module/util"; - } - } - ) - ] : [ - new webpack.NormalModuleReplacementPlugin( - /module\/util\.ts/i, "../../test/assets/module/util.ts" - ), - new webpack.NormalModuleReplacementPlugin( - /fake\.ts/i, "../../../src/module/util.ts" - ) - ] - }, - - // preprocess matching files before serving them to the browser - // available preprocessors: https://npmjs.org/browse/keyword/karma-preprocessor - preprocessors: { - "./src/scss/billboard.scss": ["scss"], - "./test/**/*-spec.ts": isCoverage ? ["webpack"] : ["webpack", "sourcemap"], - }, - - scssPreprocessor: { - options: { - sourceMap: true, - outputStyle: "expanded", - } - }, - - // start these browsers - // available browser launchers: https://npmjs.org/browse/keyword/karma-launcher - browsers: [], - - reporters: ["mocha"], - colors: true, - webpackMiddleware: { - logLevel: "error" - }, - - // https://github.com/karma-runner/karma/blob/master/docs/config/01-configuration-file.md#browsernoactivitytimeout - browserNoActivityTimeout: 50000 - }; - - karmaConfig.browsers.push(isChrome ? "Chrome" : "ChromeHeadless"); - - if (isCoverage) { - karmaConfig.reporters.push("coverage-istanbul"); - - karmaConfig.coverageIstanbulReporter = { - reports: ["text-summary", "html", "lcovonly"], - dir: "./coverage" - }; - - karmaConfig.webpack.module.rules.unshift({ - test: fileExtensions, - exclude: /(node_modules|test)/, - use: { - loader: "istanbul-instrumenter-loader", - options: { - esModules: true - } - } - }); - - karmaConfig.singleRun = true; - } - - config.set(karmaConfig); -}; diff --git a/package.json b/package.json index 10afa2621..5adeff604 100644 --- a/package.json +++ b/package.json @@ -39,9 +39,8 @@ "lint": "eslint", "format": "dprint fmt", "loc": "cloc --by-file src", - "test": "node --max-old-space-size=3072 ./node_modules/karma/bin/karma start ./karma.conf.cjs", - "test:chrome": "cross-env TEST_TYPE=chrome npm test", - "coverage": "cross-env TEST_TYPE=coverage npm test", + "test": "vitest", + "coverage": "vitest run", "coveralls": "cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js", "jsdoc": "node ./config/jsdoc.js", "jsdoc:cmd": "jsdoc -c jsdoc.json", @@ -114,12 +113,14 @@ "@semantic-release/git": "^10.0.1", "@semantic-release/npm": "^12.0.1", "@semantic-release/release-notes-generator": "^14.0.1", - "@types/chai": "^4.3.16", + "@testing-library/dom": "^10.4.0", + "@testing-library/react": "^16.0.0", "@types/d3": "^7.4.3", - "@types/mocha": "^10.0.7", "@types/sinon": "^17.0.3", + "@vitest/browser": "^2.0.5", + "@vitest/coverage-istanbul": "^2.0.5", + "@vitest/ui": "^2.0.5", "better-docs": "^2.7.3", - "chai": "^4.3.10", "clean-webpack-plugin": "^4.0.0", "cloc": "^2.11.0", "core-js": "^3.37.1", @@ -134,43 +135,28 @@ "dprint": "^0.47.2", "esbuild-loader": "^4.2.2", "eslint": "^9.8.0", - "eslint-config-naver": "^2.1.0", "eslint-plugin-import": "^2.29.1", "eslint-plugin-jsdoc": "^48.9.2", - "exports-loader": "^5.0.0", - "hammer-simulator": "0.0.1", "husky": "^9.1.4", - "istanbul-instrumenter-loader": "^3.0.1", - "istanbul-lib-instrument": "^6.0.3", "jsdoc": "^4.0.3", - "karma": "^6.4.4", - "karma-chai": "^0.1.0", - "karma-chrome-launcher": "^3.2.0", - "karma-coverage-istanbul-reporter": "^3.0.3", - "karma-mocha": "^2.0.1", - "karma-mocha-reporter": "^2.2.3", - "karma-scss-preprocessor": "^4.0.0", - "karma-sinon": "^1.0.5", - "karma-sourcemap-loader": "^0.4.0", - "karma-webpack": "^5.0.1", "lint-staged": "^15.2.7", - "lite-fixture": "^1.0.2", "mini-css-extract-plugin": "^2.9.0", - "mocha": "^10.7.0", "node-sass": "^9.0.0", "regenerator-runtime": "^0.14.1", "rollup": "^4.19.1", "rollup-plugin-delete": "^2.0.0", + "sass": "^1.77.8", "sass-loader": "^16.0.0", "semantic-release": "^24.0.0", "simulant": "^0.2.2", "sinon": "^18.0.0", "string-replace-loader": "^3.1.0", "style-loader": "^4.0.0", - "taffydb": "^2.7.3", "tslib": "^2.6.3", "typescript": "5.5.4", "typescript-eslint": "^7.18.0", + "vitest": "^2.0.5", + "webdriverio": "^8.39.1", "webpack": "^5.93.0", "webpack-bundle-analyzer": "^4.10.2", "webpack-clean": "^1.2.5", diff --git a/src/ChartInternal/internals/scale.ts b/src/ChartInternal/internals/scale.ts index 309742cde..7b6ee97e7 100644 --- a/src/ChartInternal/internals/scale.ts +++ b/src/ChartInternal/internals/scale.ts @@ -20,7 +20,7 @@ import type {IDataRow, IGridData} from "../data/IData"; * @returns {d3.scaleLinear|d3.scaleTime} scale * @private */ -export function getScale(type = "linear", min, max): any { +export function getScale(type = "linear", min?: T, max?: T): any { const scale = ({ linear: d3ScaleLinear, log: d3ScaleSymlog, diff --git a/src/module/browser.ts b/src/module/browser.ts index 38527376e..4e4449e05 100644 --- a/src/module/browser.ts +++ b/src/module/browser.ts @@ -26,7 +26,7 @@ function getGlobal() { * @returns {Array} fallback object array * @private */ -function getFallback(w) { +export function getFallback(w?) { const hasRAF = typeof w?.requestAnimationFrame === "function" && typeof w?.cancelAnimationFrame === "function"; const hasRIC = typeof w?.requestIdleCallback === "function" && diff --git a/src/module/util.ts b/src/module/util.ts index 9cfd89c2f..6b319b704 100644 --- a/src/module/util.ts +++ b/src/module/util.ts @@ -532,8 +532,8 @@ function getCssRules(styleSheets: any[]) { */ function getScrollPosition(node: HTMLElement) { return { - x: (window.pageXOffset ?? window.scrollX ?? 0) + node.scrollLeft ?? 0, - y: (window.pageYOffset ?? window.scrollY ?? 0) + node.scrollTop ?? 0 + x: (window.pageXOffset ?? window.scrollX ?? 0) + (node.scrollLeft ?? 0), + y: (window.pageYOffset ?? window.scrollY ?? 0) + (node.scrollTop ?? 0) }; } diff --git a/src/module/worker.ts b/src/module/worker.ts index f4589efc8..fc0d1be36 100644 --- a/src/module/worker.ts +++ b/src/module/worker.ts @@ -41,7 +41,7 @@ function getObjectURL(fn: Function, depsFn?: Function[]): string { * @returns {object} WebWorker instance * @private */ -function getWorker(src) { +export function getWorker(src) { const worker = new window.Worker(src); // handle error diff --git a/test/api/axis-spec.ts b/test/api/axis-spec.ts index 4f74b285a..267bd74a2 100644 --- a/test/api/axis-spec.ts +++ b/test/api/axis-spec.ts @@ -3,7 +3,7 @@ * billboard.js project is licensed under the MIT license */ /* eslint-disable */ -import {expect} from "chai"; +import {beforeEach, beforeAll, afterAll, describe, expect, it} from "vitest"; import {select as d3Select} from "d3-selection"; import util from "../assets/util"; import {$AXIS} from "../../src/config/classes"; @@ -13,8 +13,8 @@ describe("API axis", function() { let main; const rx = /translate\((\d+),.*/; - before(() => { - return new Promise((resolve) => { + beforeAll(() => { + return new Promise(resolve => { chart = util.generate({ data: { columns: [ @@ -42,14 +42,14 @@ describe("API axis", function() { }, onrendered: function() { main = this.internal.$el.main; - resolve(true); + resolve(); } }); }); - }); + }, 1500); describe("axis.labels()", () => { - it("should update y axis label", done => { + it("should update y axis label", () => new Promise(done => { const axisLabel = { y: "New Y Axis Label" }; @@ -69,11 +69,11 @@ describe("API axis", function() { y2: "Y2 Axis Label" }); - done(); - }, 500); - }); + done(1); + }, 300); + })); - it("should update y axis label", done => { + it("should update y axis label", () => new Promise(done => { // when chart.axis.labels({ y2: "New Y2 Axis Label" @@ -86,9 +86,9 @@ describe("API axis", function() { expect(label.attr("dx")).to.be.equal("-0.5em"); expect(label.attr("dy")).to.be.equal("-0.5em"); - done(); - }, 500); - }); + done(1); + }, 300); + })); it("should return axis labels", () => { expect(chart.axis.labels()).to.be.deep.equal({ @@ -99,7 +99,7 @@ describe("API axis", function() { }); describe("axis.min/max()", () => { - it("should update axis min value", done => { + it("should update axis min value", () => new Promise(done => { const xAxisTick = main.select(`.${$AXIS.axisX} .tick`).node(); const xTickValue = +xAxisTick.getAttribute("transform").replace(rx, "$1"); const x = -1; @@ -132,11 +132,11 @@ describe("API axis", function() { expect(tspan.empty()).to.be.false; - done(); - }, 500); - }); + done(1); + }, 300); + })); - it("should update axis max value", done => { + it("should update axis max value", () => new Promise(done => { const xAxisTick = main.selectAll(`.${$AXIS.axisX} .tick`).nodes(); const lastIndex = xAxisTick.length - 1; @@ -166,14 +166,14 @@ describe("API axis", function() { tspan = main.selectAll(`.${$AXIS.axisY2} tspan`).nodes(); expect(+tspan[tspan.length - 1].innerHTML).to.be.equal(y2); - done(); - }, 500); - }); + done(1); + }, 300); + })); it("axis.min(): check unset & shorthand", () => { const current = chart.axis.min(); - after(() => { + afterAll(() => { chart.axis?.min?.(current); }) @@ -210,7 +210,7 @@ describe("API axis", function() { it("axis.max(): check unset & shorthand", () => { const current = chart.axis.max(); - after(() => { + afterAll(() => { chart.axis?.max?.(current); }) @@ -246,7 +246,7 @@ describe("API axis", function() { }); describe("axis.range()", () => { - it("should update axis min/max value", done => { + it("should update axis min/max value", () => new Promise(done => { const xAxisTick = main.selectAll(`.${$AXIS.axisX} .tick`).nodes(); const xTickValueMin = +xAxisTick[0].getAttribute("transform").replace(rx, "$1"); const xTickValueMax = +xAxisTick[xAxisTick.length - 1].getAttribute("transform").replace(rx, "$1"); @@ -300,14 +300,14 @@ describe("API axis", function() { expect(tspan.size()).to.be.equal(2); - done(); - }, 500); - }); + done(1); + }, 300); + })); it("axis.range(): check unset & shorthand", () => { const current = chart.axis.range(); - after(() => { + afterAll(() => { chart.axis?.range?.(current); }); diff --git a/test/api/category-spec.ts b/test/api/category-spec.ts index 79e617f95..5f6338f18 100644 --- a/test/api/category-spec.ts +++ b/test/api/category-spec.ts @@ -3,7 +3,7 @@ * billboard.js project is licensed under the MIT license */ /* eslint-disable */ -import {expect} from "chai"; +import {beforeEach, beforeAll, describe, expect, it} from "vitest"; import {select as d3Select} from "d3-selection"; import util from "../assets/util"; import {$AXIS} from "../../src/config/classes"; @@ -16,7 +16,7 @@ describe("API category", () => { chart = util.generate(args); }); - before(() => { + beforeAll(() => { args = { data: { x: "x", @@ -128,7 +128,7 @@ describe("API category", () => { }); - it("should load without error when categories=null is given.", done => { + it("should load without error when categories=null is given.", () => new Promise(done => { chart.load({ columns: [ ["data1", 20,30,33, 22] @@ -136,10 +136,10 @@ describe("API category", () => { categories: null, done() { expect(true).to.be.ok; - done(); + done(1); } }); - }); + })); it("set options", () => { args = { diff --git a/test/api/chart-spec.ts b/test/api/chart-spec.ts index 8b6472b8a..b56f922f9 100644 --- a/test/api/chart-spec.ts +++ b/test/api/chart-spec.ts @@ -3,7 +3,7 @@ * billboard.js project is licensed under the MIT license */ /* eslint-disable */ -import {expect} from "chai"; +import {beforeEach, beforeAll, describe, expect, it} from "vitest"; import {select as d3Select} from "d3-selection"; import util from "../assets/util"; import {$AXIS, $BAR, $GAUGE} from "../../src/config/classes"; @@ -123,7 +123,7 @@ describe("API chart", () => { expect(el.style.position).to.be.equal(""); }); - it("should be destroyed without throwing error", done => { + it("should be destroyed without throwing error", () => new Promise(done => { chart = util.generate({ data: { columns: [["data1", 50, 20]] @@ -138,8 +138,8 @@ describe("API chart", () => { chart.destroy(); setTimeout(done, 500); - }, 500); - }); + }, 300); + })); it("should not throw error when already destroyed", () => { chart.destroy(); @@ -162,7 +162,7 @@ describe("API chart", () => { }); describe("config()", () => { - before(() => { + beforeAll(() => { args = { data: { columns: [ diff --git a/test/api/data-spec.ts b/test/api/data-spec.ts index 980c43b8f..e2633122c 100644 --- a/test/api/data-spec.ts +++ b/test/api/data-spec.ts @@ -3,7 +3,7 @@ * billboard.js project is licensed under the MIT license */ /* eslint-disable */ -import {expect} from "chai"; +import {beforeAll, describe, expect, it} from "vitest"; import util from "../assets/util"; import {$AXIS, $LEGEND, $LINE} from "../../src/config/classes"; @@ -14,7 +14,7 @@ describe("API data", function() { ["data2", 5000, 2000, 1000, 4000, 1500, 2500] ]; - before(() => { + beforeAll(() => { return new Promise((resolve) => { chart = util.generate({ data: { @@ -200,7 +200,7 @@ describe("API data", function() { expect(toHex(results.data2)).to.be.equal("#FF0000"); }); - it("should set data.colors specified as API", done => { + it("should set data.colors specified as API", () => new Promise(done => { setTimeout(() => { const svg = chart.$.svg; @@ -216,9 +216,9 @@ describe("API data", function() { expect(toHex(svg.select(`.${$LEGEND.legendItem}-data2 .${$LEGEND.legendItem}-tile`).style("stroke"))) .to.be.equal("#ff0000"); - done(); - }, 500); - }); + done(1); + }, 300); + })); }); @@ -237,7 +237,7 @@ describe("API data", function() { .to.be.equal("1000"); }); - it("should return data.axes specified as API", done => { + it("should return data.axes specified as API", () => new Promise(done => { const main = chart.$.main; const results = chart.data.axes({ data: "y2", @@ -254,9 +254,9 @@ describe("API data", function() { expect(main.select(`.${$AXIS.axisY2} g.tick text`).text()) .to.be.equal("0"); - done(); - }, 500); - }); + done(1); + }, 300); + })); }); describe("data.min/max()", () => { diff --git a/test/api/export-spec.ts b/test/api/export-spec.ts index a0003b6b2..722ef1903 100644 --- a/test/api/export-spec.ts +++ b/test/api/export-spec.ts @@ -3,7 +3,7 @@ * billboard.js project is licensed under the MIT license */ /* eslint-disable */ -import {expect} from "chai"; +import {beforeEach, beforeAll, describe, expect, it} from "vitest"; import util from "../assets/util"; describe("API export", () => { @@ -26,17 +26,17 @@ describe("API export", () => { }); describe("Basic export functionalities", () => { - it("should invoke a callback when ready", done => { + it("should invoke a callback when ready", () => new Promise(done => { function exportCallback(dataUrl) { expect(dataUrl).to.not.be.equal(""); - done(); + done(1); } expect(/^data:image\/svg\+xml;base64,.+/.test(chart.export())).to.be.true; chart.export(null, exportCallback); - }); + })); - it("should export chart as image/png", done => { + it("should export chart as image/png", () => new Promise(done => { function exportCallback(dataUrl) { const link: any = document.createElement("link"); @@ -44,13 +44,13 @@ describe("API export", () => { link.href = dataUrl; expect(link.getAttribute("href").length).to.be.not.equal(0); - done(); + done(1); } chart.export({mimeType: "image/png"}, exportCallback); - }); + })); - it("should export in different size", done => { + it("should export in different size", () => new Promise(done => { const expectedDataURL = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAA+gAAAJYCAYAAA"; setTimeout(() => { @@ -59,12 +59,12 @@ describe("API export", () => { }, data => { expect(data.indexOf(expectedDataURL) >= 0).to.be.true; - done(); + done(1); }); - }, 500); - }); + }, 300); + })); - it("should export in different aspectRatio", done => { + it("should export in different aspectRatio", () => new Promise(done => { const expectedDataURL = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAAEsCAYAAACG+vy+AAA"; setTimeout(() => { @@ -73,10 +73,10 @@ describe("API export", () => { }, data => { expect(data.indexOf(expectedDataURL) > -1).to.be.true; - done(); + done(1); }); - }, 500); - }); + }, 300); + })); it("set options", () => { args = { @@ -118,16 +118,16 @@ describe("API export", () => { }; }); - it("should export custom points properly", done => { + it("should export custom points properly", () => new Promise(done => { const expectedDataURL = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACMAAAAjCAYAAAAe2bNZAAA"; setTimeout(() => { chart.export(null, data => { expect(data.indexOf(expectedDataURL) > -1).to.be.true; - done(); + done(1); }); - }, 500); - }); + }, 300); + })); it("should export valid svg even with weird css", () => { document.body.innerHTML += ``; @@ -145,7 +145,7 @@ describe("API export", () => { }); describe("Additional functionalities", () => { - before(() => { + beforeAll(() => { args = { svg: { classname: "export-preserve-font-style" @@ -201,9 +201,14 @@ describe("API export", () => { // pattern for local: preserveFontStyle=true [ - "ymoWfHISTA6yGESaFLJFAjAQrAGgGyeTQJ8IYXzbwyquoI8HqojhtbkUCYCVAAhjk79", - "JDN4Us7NC5wxte6FJCh5pIgNdDE+GzaxKoEwEKwDqBrdZs", - "ZvfqsPjumwLUq9B8WWwndf8Zr8n9ooA9ASjl5mIAPSSZsDzym3A" + "byuVSgeSACZuGnZIBBJFgAQwUbjZWVoQIAFMi6UoZ1gEhoeHzxORj7", + "gEMwIYvjgilxAsgoYFymZLtEoI4ACaBlzpB5Aqh4u1HAwik2LwOTAFo2", + "n3KPP7RFhvxMH97ZLyZpsgzMpjX2Qk8O3IUePj1WqYqk0kYkwz" + ], + [ + "nSetJ0vvOG1XcoZ8BQEeD3w9CCB6BGIkmCiAIze", + "BhTIwMPCQiOxewt4m8Xj8HxSAQVGnnXoQ0J7YGzDD", + "ANwDC7nf6iqhRcXno2cQP2wnXM4qpFnSLACzpHlfYysmAV1jezaWxGgmFrai6bp9Y6Ryp2AaM" ], // pattern for CI: preserveFontStyle=false @@ -221,7 +226,7 @@ describe("API export", () => { ] ]; - it("check when 'preserveFontStyle=false'", done => { + it("check when 'preserveFontStyle=false'", () => new Promise(done => { chart.export({ preserveFontStyle: false }, function(dataUrl) { @@ -229,11 +234,11 @@ describe("API export", () => { expected.some(pttr => pttr.every(v => dataUrl.indexOf(v) == -1)) ).to.be.true; - done(); + done(1); }); - }); + })); - it("check when 'preserveFontStyle=true'", done => { + it("check when 'preserveFontStyle=true'", () => new Promise(done => { const font = new FontFace("Alfa Slab One", "url(https://fonts.gstatic.com/s/alfaslabone/v17/6NUQ8FmMKwSEKjnm5-4v-4Jh2dJhe_escmA.woff2)", { style: "normal", weight: "400" @@ -261,9 +266,9 @@ describe("API export", () => { .style("margin-left", null) .style("padding-top", null); - done(); + done(1); }); }); - }); + })); }); }); diff --git a/test/api/flow-spec.ts b/test/api/flow-spec.ts index 56ac9fb81..0f6fcfb72 100644 --- a/test/api/flow-spec.ts +++ b/test/api/flow-spec.ts @@ -3,7 +3,7 @@ * billboard.js project is licensed under the MIT license */ /* eslint-disable */ -import {expect} from "chai"; +import {beforeEach, beforeAll, describe, expect, it} from "vitest"; import sinon from "sinon"; import util from "../assets/util"; import {$AXIS, $GRID, $LINE, $TEXT} from "../../src/config/classes"; @@ -32,11 +32,11 @@ describe("API flow", () => { }; describe("basic functionality #1", () => { - before(()=> { + beforeAll(()=> { chart = util.generate(args); }); - it("should flow updating the data", done => { + it("should flow updating the data", () => new Promise(done => { chart.flow({ columns: [ ["x", "2017-02-11", "2017-02-21"], @@ -48,12 +48,12 @@ describe("API flow", () => { const lineSize = this.internal.$el.main.selectAll(`.${$LINE.chartLines} > g`).size(); expect(lineSize).to.be.equal(this.data().length); - done(); + done(1); } }); - }); + })); - it("should flow correctly with options", done => { + it("should flow correctly with options", () => new Promise(done => { const spy = sinon.spy(function() { chart.internal.$el.main.selectAll(`.${$AXIS.axisX} .tick tspan`).each(function(d, i) { expect(this.textContent).to.be.equal(tickText[i]); @@ -61,7 +61,7 @@ describe("API flow", () => { }); expect(spy.called).to.be.true; - done(); + done(1); }); const tickText = ["01/25", "02/11", "02/21", "03/11", "03/21"]; @@ -74,7 +74,7 @@ describe("API flow", () => { duration: 1000, done: spy }); - }); + })); it("check when is not visible", () => { const spy = sinon.spy(); @@ -102,7 +102,7 @@ describe("API flow", () => { }); describe("basic functionality #2", () => { - before(()=> { + beforeAll(()=> { args = { data: { x: "x", @@ -127,7 +127,7 @@ describe("API flow", () => { chart = util.generate(args); }); - it("ticks should translate", done => { + it("ticks should translate", () => new Promise(done => { const moved: number[] = []; let interval; @@ -139,7 +139,7 @@ describe("API flow", () => { ["data3", 200, 120] ], duration: 1500, - done: () => { + done() { clearInterval(interval); moved.reduce((a, c) => { @@ -147,7 +147,7 @@ describe("API flow", () => { return a + c; }); - done(); + done(1); } }); @@ -162,11 +162,11 @@ describe("API flow", () => { moved.push(Math.abs(translateX)); } }, 100); - }); + })); }); describe("Indexed and category type axis", () => { - it("Indexed axis: should flow without error", done => { + it("Indexed axis: should flow without error", () => new Promise(done => { const chart = util.generate({ data: { columns: [ @@ -183,12 +183,12 @@ describe("API flow", () => { expect(true).to.be.true; this.destroy(); - done(); + done(1); } }); - }); + })); - it("Category axis: should flow without error", done => { + it("Category axis: should flow without error", () => new Promise(done => { const chart = util.generate({ data: { x: "x", @@ -213,10 +213,10 @@ describe("API flow", () => { expect(true).to.be.true; this.destroy(); - done(); + done(1); } }); - }); + })); }); describe("check options", () => { @@ -228,7 +228,7 @@ describe("API flow", () => { chart?.destroy(); }); - before(() => { + beforeAll(() => { args = { data: { x: "x", @@ -250,7 +250,7 @@ describe("API flow", () => { }; }); - it("should flow not surpassing indicated 'to' option value.", done => { + it("should flow not surpassing indicated 'to' option value.", () => new Promise(done => { chart.flow({ columns: [ ["x", '2017-02-01', '2017-02-10'], @@ -265,10 +265,10 @@ describe("API flow", () => { expect(tick.text()).to.be.equal("17/01/11"); expect(tick.attr("transform")).to.be.equal("translate(6,0)"); - done(); + done(1); } }) - }); + })); it("set options", () => { args = { @@ -288,7 +288,7 @@ describe("API flow", () => { }; }); - it("when flows from timeseries x axis empty data", done => { + it("when flows from timeseries x axis empty data", () => new Promise(done => { chart.flow({ columns: [ ["x", '2017-02-01', '2017-02-10'], @@ -300,10 +300,10 @@ describe("API flow", () => { const tick = this.internal.$el.axis.x.select(".tick"); expect(tick.text()).to.be.equal("2017-02-01"); - done(); + done(1); } }); - }); + })); it("set options", () => { args = { @@ -314,7 +314,7 @@ describe("API flow", () => { }; }); - it("indexed axis: when flows from indexed x axis empty data", done => { + it("indexed axis: when flows from indexed x axis empty data", () => new Promise(done => { chart.flow({ columns: [ ["data1", 100] @@ -326,10 +326,10 @@ describe("API flow", () => { expect(tick.text()).to.be.equal("0"); - done(); + done(1); } }); - }); + })); it("set options", () => { args = { @@ -350,7 +350,7 @@ describe("API flow", () => { }; }); - it("timeseires axis: when flows from indexed x axis empty data", done => { + it("timeseires axis: when flows from indexed x axis empty data", () => new Promise(done => { chart.flow({ columns: [ ["x", "2023-08-25"], @@ -363,10 +363,10 @@ describe("API flow", () => { expect(tick.text()).to.be.equal("2023-08-25"); - done(); + done(1); } }); - }); + })); it("set options", () => { args = { @@ -399,7 +399,7 @@ describe("API flow", () => { }; }); - it("grid & regions should flow", done => { + it("grid & regions should flow", () => new Promise(done => { chart.flow({ columns: [ ["data1", 200] @@ -426,11 +426,10 @@ describe("API flow", () => { expect(+this.textContent).to.be.equal(d.value); }); - done(); + done(1); } }); - - }); + })); it("set options", () => { args = { @@ -442,7 +441,7 @@ describe("API flow", () => { } }); - it("should flow correctly with newly added data", done => { + it("should flow correctly with newly added data", () => new Promise(done => { chart.flow({ columns: [ ["data1", 50, 60], @@ -459,9 +458,9 @@ describe("API flow", () => { expect([rect.width, rect.x]).to.be.deep.equal(expected[d.id]); }); - done(); + done(1); } }); - }) + })); }); }); diff --git a/test/api/focus-spec.ts b/test/api/focus-spec.ts index 2d3c34c74..491affd9b 100644 --- a/test/api/focus-spec.ts +++ b/test/api/focus-spec.ts @@ -3,7 +3,7 @@ * billboard.js project is licensed under the MIT license */ /* eslint-disable */ -import {expect} from "chai"; +import {beforeAll, describe, expect, it} from "vitest"; import {select as d3Select} from "d3-selection"; import util from "../assets/util"; import {$COMMON, $FOCUS, $LEGEND, $LINE} from "../../src/config/classes"; @@ -21,7 +21,7 @@ describe("API focus", function() { // get fixed number const getFixed = (val, len = 1) => +(+val).toFixed(len); - before(() => { + beforeAll(() => { return new Promise((resolve) => { chart = util.generate({ data: { @@ -38,7 +38,7 @@ describe("API focus", function() { legend = this.$.legend; main = this.$.main; - resolve(true); + resolve(); } }); }); @@ -64,7 +64,7 @@ describe("API focus", function() { }); }); - it("should focus one target", done => { + it("should focus one target", () => new Promise(done => { const {legend, main} = chart.$; const targets = { data1: main.select(".bb-chart-line.bb-target.bb-target-data1"), @@ -89,11 +89,11 @@ describe("API focus", function() { expect(legendItems.data2.classed(itemFocused)).to.be.ok; expect(legendItems.data3.classed(itemFocused)).to.not.be.ok; - done(); + done(1); }, 300); - }); + })); - it("should focus multiple targets", done => { + it("should focus multiple targets", () => new Promise(done => { const targets = { data1: main.select(".bb-chart-line.bb-target.bb-target-data1"), data2: main.select(".bb-chart-line.bb-target.bb-target-data2"), @@ -118,13 +118,13 @@ describe("API focus", function() { expect(legendItems.data2.classed(itemFocused)).to.be.ok; expect(legendItems.data3.classed(itemFocused)).to.not.be.ok; - done(); + done(1); }, 300); - }); + })); }); describe("defocus()", () => { - it("should defocus all targets", done => { + it("should defocus all targets", () => new Promise(done => { const targets = main.selectAll(".bb-chart-line.bb-target"); const legendItems = legend.selectAll(".bb-legend-item"); @@ -145,9 +145,9 @@ describe("API focus", function() { expect(getFixed(item.style("opacity"))).to.be.equal(0.3); }); - done(); + done(1); }, 300); - }); + })); it("should defocus one target", () => { @@ -182,7 +182,7 @@ describe("API focus", function() { }); }); - it("should defocus multiple targets", done => { + it("should defocus multiple targets", () => new Promise(done => { const targets = main.selectAll(`.${$LINE.chartLine}.${$COMMON.target}`); const legendItems = legend.selectAll(`.${$LEGEND.legendItem}`); @@ -213,11 +213,11 @@ describe("API focus", function() { } }); - done(); + done(1); }, 300); - }); + })); - it("should defocus multiple targets after focused", done => { + it("should defocus multiple targets after focused", () => new Promise(done => { chart.focus(); setTimeout(() => { @@ -252,15 +252,14 @@ describe("API focus", function() { legendItems.data3.style("opacity") == "" ).to.be.ok; - done(); + done(1); }, 300); }, 300); - }); - + })); }); describe("revert()", () => { - it("should revert all targets after focus", done => { + it("should revert all targets after focus", () => new Promise(done => { chart.focus(); setTimeout(() => { @@ -284,12 +283,12 @@ describe("API focus", function() { expect(opacity === "1" || opacity === "").to.be.ok; }); - done(); + done(1); }, 300); }, 300); - }); + })); - it("should revert all targets after defocus", done => { + it("should revert all targets after defocus", () => new Promise(done => { chart.defocus(); setTimeout(() => { @@ -313,12 +312,12 @@ describe("API focus", function() { expect(opacity === "1" || opacity === "").to.be.ok; }); - done(); + done(1); }, 300); }, 300); - }); + })); - it("should revert one target after focus", done => { + it("should revert one target after focus", () => new Promise(done => { chart.focus(); setTimeout(() => { @@ -361,12 +360,12 @@ describe("API focus", function() { expect(legendItems.data2.classed(itemFocused)).to.not.be.ok; expect(legendItems.data3.classed(itemFocused)).to.be.ok; - done(); + done(1); }, 300); }, 300); - }); + })); - it("should revert one target after defocus", done => { + it("should revert one target after defocus", () => new Promise(done => { chart.defocus(); setTimeout(() => { @@ -401,12 +400,12 @@ describe("API focus", function() { expect(legendItems.data2.classed(itemFocused)).to.not.be.ok; expect(legendItems.data3.classed(itemFocused)).to.not.be.ok; - done(); + done(1); }, 300); }, 300); - }); + })); - it("should focus multiple targets after focus", done => { + it("should focus multiple targets after focus", () => new Promise(done => { const {legend, main} = chart.$; chart.focus(); @@ -451,12 +450,12 @@ describe("API focus", function() { expect(legendItems.data2.classed(itemFocused)).to.not.be.ok; expect(legendItems.data3.classed(itemFocused)).to.be.ok; - done(); + done(1); }, 300); }, 300); - }); + })); - it("should focus multiple targets after defocus", done => { + it("should focus multiple targets after defocus", () => new Promise(done => { chart.defocus(); setTimeout(() => { @@ -496,15 +495,15 @@ describe("API focus", function() { expect(legendItems.data2.classed(itemFocused)).to.not.be.ok; expect(legendItems.data3.classed(itemFocused)).to.not.be.ok; - done(); + done(1); }, 300); }, 300); - }); + })); }); describe("when legend.show=false", () => { - before(() => { + beforeAll(() => { return new Promise((resolve) => { chart = util.generate({ data: { @@ -521,13 +520,13 @@ describe("API focus", function() { legend = this.$.legend; main = this.$.main; - resolve(true); + resolve(); } }); }); }); - it("should focus all targets without showing legend", done => { + it("should focus all targets without showing legend", () => new Promise(done => { chart.focus(); setTimeout(() => { @@ -541,11 +540,11 @@ describe("API focus", function() { expect(legend).to.be.null; - done(); + done(1); }, 300); - }); + })); - it("should defocus all targets without showing legend", done => { + it("should defocus all targets without showing legend", () => new Promise(done => { chart.defocus(); setTimeout(() => { @@ -559,11 +558,11 @@ describe("API focus", function() { expect(legend).to.be.null; - done(); + done(1); }, 300); - }); + })); - it("should revert all targets after focus", done => { + it("should revert all targets after focus", () => new Promise(done => { chart.focus(); setTimeout(() => { @@ -580,9 +579,9 @@ describe("API focus", function() { expect(legend).to.be.null; - done(); + done(1); }, 300); }, 300); - }); + })); }); }); diff --git a/test/api/grid-spec.ts b/test/api/grid-spec.ts index 84d3b27ec..7f10c0539 100644 --- a/test/api/grid-spec.ts +++ b/test/api/grid-spec.ts @@ -3,7 +3,7 @@ * billboard.js project is licensed under the MIT license */ /* eslint-disable */ -import {expect} from "chai"; +import {beforeAll, describe, expect, it} from "vitest"; import {select as d3Select} from "d3-selection"; import util from "../assets/util"; import {$GRID} from "../../src/config/classes"; @@ -11,7 +11,7 @@ import {$GRID} from "../../src/config/classes"; describe("API grid", function() { let chart; - before(() => { + beforeAll(() => { return new Promise((resolve) => { chart = util.generate({ data: { @@ -28,7 +28,7 @@ describe("API grid", function() { }); describe("ygrids.add() / ygrids.remove()", () => { - it("should update y grids", done => { + it("should update y grids", () => new Promise(done => { const main = chart.$.main; const expectedGrids = [{ value: 100, @@ -63,11 +63,11 @@ describe("API grid", function() { grids = main.selectAll(`.${$GRID.ygridLine}`); expect(grids.size()).to.be.equal(0); - done(); - }, 500); - }); + done(1); + }, 300); + })); - it("should update x ygrids even if it's zoomed", done => { + it("should update x ygrids even if it's zoomed", () => new Promise(done => { const main = chart.$.main; const expectedGrids = [{ value: 0, @@ -118,15 +118,15 @@ describe("API grid", function() { grids = main.selectAll(`.${$GRID.xgridLine}`); expect(grids.size()).to.be.equal(0); - done(); - }, 500); - }, 500); - }, 500); - }); + done(1); + }, 300); + }, 300); + }, 300); + })); }); describe("xgrids()", () => { - before(() => { + beforeAll(() => { chart = util.generate({ data: { columns: [ @@ -201,7 +201,7 @@ describe("API grid", function() { }); describe("Add xgrids() when is zoomed", () => { - before(() => { + beforeAll(() => { chart = util.generate({ data: { columns: [ @@ -235,7 +235,7 @@ describe("API grid", function() { }); describe("ygrids()", () => { - before(() => { + beforeAll(() => { chart = util.generate({ data: { columns: [ diff --git a/test/api/legend-spec.ts b/test/api/legend-spec.ts index 5a74cf577..cf3f2d78b 100644 --- a/test/api/legend-spec.ts +++ b/test/api/legend-spec.ts @@ -3,14 +3,14 @@ * billboard.js project is licensed under the MIT license */ /* eslint-disable */ -import {expect} from "chai"; +import {beforeAll, describe, expect, it} from "vitest"; import util from "../assets/util"; import {$LEGEND} from "../../src/config/classes"; describe("API legend", () => { let chart; - before(() => { + beforeAll(() => { return new Promise((resolve) => { chart = util.generate({ data: { @@ -39,7 +39,7 @@ describe("API legend", () => { }); }); - it("it should show all hide legends", done => { + it("it should show all hide legends", () => new Promise(done => { chart.legend.show(); setTimeout(() => { @@ -48,9 +48,9 @@ describe("API legend", () => { expect(this.style.opacity).to.be.equal(""); }); - done(); + done(1); }, 300) - }); + })); it("it should hide 'data1' legend", () => { chart.legend.hide("data1"); @@ -61,7 +61,7 @@ describe("API legend", () => { }); - it("it should show 'data1' legend", done => { + it("it should show 'data1' legend", () => new Promise(done => { chart.legend.show("data1"); setTimeout(() => { @@ -69,7 +69,7 @@ describe("API legend", () => { expect(this.style.opacity).to.be.equal(""); }); - done(); + done(1); }, 300); - }); + })); }); diff --git a/test/api/load-spec.ts b/test/api/load-spec.ts index 4416d1406..15190f463 100644 --- a/test/api/load-spec.ts +++ b/test/api/load-spec.ts @@ -3,7 +3,7 @@ * billboard.js project is licensed under the MIT license */ /* eslint-disable */ -import {expect} from "chai"; +import {beforeEach, beforeAll, describe, expect, it} from "vitest"; import {select as d3Select} from "d3-selection"; import {format as d3Format} from "d3-format"; import {$AREA, $AXIS, $COMMON, $CIRCLE, $EVENT, $LEGEND, $LINE} from "../../src/config/classes"; @@ -18,7 +18,7 @@ describe("API load", function() { }); describe("XHR data loading", () => { - before(() => { + beforeAll(() => { args = { data: { columns: [] @@ -26,23 +26,23 @@ describe("API load", function() { }; }); - it("should be load data via 'url'", done => { + it("should be load data via 'url'", () => new Promise(done => { chart.load({ - url: "/base/test/assets/data/test.json", + url: "/test/assets/data/test.json", mimeType: "json", headers: { "Content-Type": "text/xml" }, - done: () => { + done() { expect(chart.data().length).to.be.equal(3); - done(); + done(1); } }); - }); + })); }); describe("check for load options", () => { - before(() => { + beforeAll(() => { args = { data: { columns: [ @@ -62,7 +62,7 @@ describe("API load", function() { } }); - it("options has been updated properly?", done => { + it("options has been updated properly?", () => new Promise(done => { const className = "abcd"; const color = "red"; const categories = ["cat1", "cat2", "cat3", "cat4", "cat5"]; @@ -103,15 +103,15 @@ describe("API load", function() { // updated axes? expect(+main.selectAll(".bb-axis-y2 .tick tspan").nodes().pop().textContent).to.be.equal(1000); - done(); + done(1); } }); - }, 500); - }); + }, 300); + })); }); describe("indexed data as column", () => { - it("should load additional data", done => { + it("should load additional data", () => new Promise(done => { const main = chart.$.main; const legend = chart.$.legend; @@ -119,7 +119,7 @@ describe("API load", function() { columns: [ ["data3", 800, 500, 900, 500, 1000, 700] ], - done: () => { + done() { const target = main.select(`.${$LINE.chartLine}.${$COMMON.target}.${$COMMON.target}-data3`); const legendItem = legend.select(`.${$LEGEND.legendItem}.${$LEGEND.legendItem}-data3`); const circles = main.selectAll(`.${$CIRCLE.circles}.${$CIRCLE.circles}-data3 circle`); @@ -128,16 +128,16 @@ describe("API load", function() { expect(legendItem.size()).to.be.equal(1); expect(circles.size()).to.be.equal(6); - done(); + done(1); } }); - }); + })); }); describe("timeseries data as column", () => { let date = ["2013-01-01", "2013-01-02", "2013-01-03", "2013-01-04", "2013-01-05", "2013-01-06"]; - before(() => { + beforeAll(() => { args = { data: { x: "x", @@ -158,7 +158,7 @@ describe("API load", function() { }; }); - it("should load additional data", done => { + it("should load additional data", () => new Promise(done => { const main = chart.$.main; const legend = chart.$.legend; @@ -167,7 +167,7 @@ describe("API load", function() { ["x"].concat(date.concat().splice(1, 3)), ["data3", 400, 500, 450] ], - done: () => { + done() { const target = main.select(`.${$LINE.chartLine}.${$COMMON.target}.${$COMMON.target}-data3`); const legendItem = legend.select(`.${$LEGEND.legendItem}.${$LEGEND.legendItem}-data3`); const circles = main.selectAll(`.${$CIRCLE.circles}.${$CIRCLE.circles}-data3 circle`); @@ -183,14 +183,14 @@ describe("API load", function() { expect(text).to.be.equal(date[i]); }); - done(); + done(1); } }); - }); + })); }); describe("category data", () => { - before(() => { + beforeAll(() => { args = { data: { x: "x", @@ -209,7 +209,7 @@ describe("API load", function() { }); describe("as column", () => { - it("should load additional data #1", done => { + it("should load additional data #1", () => new Promise(done => { const main = chart.$.main; const legend = chart.$.legend; @@ -218,7 +218,7 @@ describe("API load", function() { ["x", "cat2", "cat3", "cat4"], ["data3", 800, 500, 900] ], - done: () => { + done() { const target = main.select(`.${$LINE.chartLine}.${$COMMON.target}.${$COMMON.target}-data3`); const legendItem = legend.select(`.${$LEGEND.legendItem}.${$LEGEND.legendItem}-data3`); const tickTexts = main.selectAll(`.${$AXIS.axisX} g.tick text`); @@ -234,12 +234,12 @@ describe("API load", function() { expect(text).to.be.equal(expected[i]); }); - done(); + done(1); } }); - }); + })); - it("should load additional data #2", done => { + it("should load additional data #2", () => new Promise(done => { const main = chart.$.main; const legend = chart.$.legend; @@ -248,7 +248,7 @@ describe("API load", function() { ["x", "new1", "new2", "new3", "new4", "new5", "new6"], ["data3", 800, 500, 900, 500, 1000, 700] ], - done: () => { + done() { const target = main.select(`.${$LINE.chartLine}.${$COMMON.target}.${$COMMON.target}-data3`); const legendItem = legend.select(`.${$LEGEND.legendItem}.${$LEGEND.legendItem}-data3`); const tickTexts = main.selectAll(`.${$AXIS.axisX} g.tick text`); @@ -263,15 +263,15 @@ describe("API load", function() { expect(text).to.be.equal(expected[i]); }); - done(); + done(1); } }); - }); + })); }); }); describe("JSON data", () => { - before(() => { + beforeAll(() => { args.data = { json: [ {name: "www.site1.com", upload: 200, download: 200}, @@ -286,7 +286,7 @@ describe("API load", function() { }; }); - it("should load json data", done => { + it("should load json data", () => new Promise(done => { const json = [ {name: "www.site5.com", upload: 300, download: 100}, {name: "www.site6.com", upload: 400, download: 200}, @@ -296,7 +296,7 @@ describe("API load", function() { chart.load({ json, - done: () => { + done() { const categories = chart.categories(); const upload = chart.data.values("upload"); const download = chart.data.values("download"); @@ -307,14 +307,14 @@ describe("API load", function() { expect(v.download).to.be.equal(download[i]); }); - done(); + done(1); } }); - }); + })); }); describe("data point circle display", () => { - before(() => { + beforeAll(() => { args = { data: { columns: [ @@ -325,7 +325,7 @@ describe("API load", function() { }; }); - it("when 'bar' type is loaded, circles should be removed", done => { + it("when 'bar' type is loaded, circles should be removed", () => new Promise(done => { const circleSize = chart.$.circles.size(); // when @@ -336,14 +336,14 @@ describe("API load", function() { type: "bar", done: function() { expect(chart.$.circles.size()).to.be.equal(circleSize / 2); - done(); + done(1); } }); - }); + })); }); describe("y Axis Label", () => { - before(() => { + beforeAll(() => { args = { data: { columns: [ @@ -377,7 +377,7 @@ describe("API load", function() { } }); - it("should be updated the axis label position ", done => { + it("should be updated the axis label position ", () => new Promise(done => { const axisLabel = chart.$.main.select(`.${$AXIS.axisYLabel}`); const dy = +axisLabel.attr("dy"); @@ -386,14 +386,14 @@ describe("API load", function() { ["data5", 2300000, 1900000, 3000000, 5000000, 3000000] ], unload: ["data1"], - done: () => { + done() { setTimeout(() => { expect(+axisLabel.attr("dy")).to.be.below(dy); - done(); - }, 500); + done(1); + }, 300); } }); - }); + })); it("check for .unload()", () => { const target = "data2"; @@ -401,7 +401,7 @@ describe("API load", function() { // when chart.unload({ ids: target, - done: () => { + done() { expect(chart.data(target).length).to.be.equal(0); expect(chart.internal.cache.get(target)).to.be.null; } @@ -433,7 +433,7 @@ describe("API load", function() { ["Chinese",0,0,0,0,0,0,0,0,0,0], ]; - before(() => { + beforeAll(() => { args = { data: { x: "x", @@ -443,10 +443,10 @@ describe("API load", function() { }; }); - it("should be correctly updating eventRect elements", done => { + it("should be correctly updating eventRect elements", () => new Promise(done => { chart.load({ columns: cols2, - done: () => { + done() { let lastX = 0; chart.internal.state.eventReceiver.data.forEach(function(v, i) { @@ -456,10 +456,10 @@ describe("API load", function() { lastX = x; }); - done(); + done(1); } }); - }); + })); it("set options", () => { args = { @@ -495,7 +495,7 @@ describe("API load", function() { } }); - it("event rect size should update after .load() is called", done => { + it("event rect size should update after .load() is called", () => new Promise(done => { // when chart.load({ columns: [ @@ -509,10 +509,10 @@ describe("API load", function() { expect(+$el.eventRect.attr("width")).to.be.equal(state.width); expect(+$el.eventRect.attr("height")).to.be.equal(state.height); - done(); + done(1); } }); - }); + })); it("set options: initialize with empty data", () => { args = { @@ -526,43 +526,39 @@ describe("API load", function() { }; }); - it("check for correct event binding", done => { - setTimeout(() => { - chart.load({ - xs: { - data: 'dataX' - }, - columns: [ - ["data", 300, 350, 300, 200, 50, 300], - ["dataX", 1, 2, 3, 4, 5, 6], - ], - done: function() { - expect(this.internal.$el.eventRect.classed($EVENT.eventRect)).to.be.true; - - this.tooltip.show({ - data: { - x: 3, - id: "data", - value: 300 - } - }); - - const {tooltip} = this.$; - - expect(tooltip.select(".name").text()).to.be.equal("data"); - expect(+tooltip.select(".value").text()).to.be.equal(300); + it("check for correct event binding", () => new Promise(done => { + chart.load({ + xs: { + data: 'dataX' + }, + columns: [ + ["data", 300, 350, 300, 200, 50, 300], + ["dataX", 1, 2, 3, 4, 5, 6], + ], + done: function() { + expect(this.internal.$el.eventRect.classed($EVENT.eventRect)).to.be.true; - done(); - } - }); - }, 1000); - }); + this.tooltip.show({ + data: { + x: 3, + id: "data", + value: 300 + } + }); + const {tooltip} = this.$; + + expect(tooltip.select(".name").text()).to.be.equal("data"); + expect(+tooltip.select(".value").text()).to.be.equal(300); + done(1); + } + }); + })); }); describe("different type loading", () => { - before(() => { + beforeAll(() => { args = { data: { columns: [ @@ -572,7 +568,7 @@ describe("API load", function() { }; }); - it("check 'line' -> 'area' type loading", done => { + it("check 'line' -> 'area' type loading", () => new Promise(done => { const {areas} = chart.$.line; expect(areas).to.be.null; @@ -587,17 +583,17 @@ describe("API load", function() { const {areas} = this.$.line; expect(areas && !areas.empty()).to.be.true; - done(); + done(1); } }); - }, 500); - }); + }, 300); + })); it("set options data.type='area'", () => { args.data.type = "area"; }); - it("check 'area' -> 'area-spline' type loading", done => { + it("check 'area' -> 'area-spline' type loading", () => new Promise(done => { const {areas} = chart.$.line; expect(areas && !areas.empty()).to.be.true; @@ -615,15 +611,15 @@ describe("API load", function() { // check for duplicated node appends expect(chart.$.main.selectAll(`.${$AREA.areas}`).size()).to.be.equal(1); - done(); + done(1); } }); - }, 500); - }); + }, 300); + })); }); describe("area-line-range type loading", () => { - before(() => { + beforeAll(() => { args = { data: { x: "x", @@ -654,7 +650,7 @@ describe("API load", function() { } }); - it("should render range area for newly loaded data", done => { + it("should render range area for newly loaded data", () => new Promise(done => { chart.load({ columns: [ ["data3", [220, 215, 205], [240, 225, 215], [260, 235, 225], [280, 245, 235], [270, 255, 225], [240, 225, 215]], @@ -665,14 +661,14 @@ describe("API load", function() { done: function() { expect(this.$.line.areas.filter(`.${$AREA.area}-data3`).size()).to.be.equal(1); - done(); + done(1); } }); - }); + })); }); describe("should handle correct event rect lengths", () => { - before(() => { + beforeAll(() => { args = { data: { columns: [ @@ -682,20 +678,20 @@ describe("API load", function() { }; }); - it("should updating correct event rect length when loaded new data are lesser", done => { + it("should updating correct event rect length when loaded new data are lesser", () => new Promise(done => { chart.load({ columns: [["data1", 100, 200]], unload: true, done: function() { expect(this.internal.state.eventReceiver.coords.length).to.be.equal(2); - done(); + done(1); } }); - }); + })); }); describe("Append data loading", () => { - before(() => { + beforeAll(() => { args = { data: { columns: [ @@ -715,7 +711,7 @@ describe("API load", function() { }); - it("timeseries: check if data has been appended", done => { + it("timeseries: check if data has been appended", () => new Promise(done => { const value = 37; chart.load({ @@ -730,17 +726,17 @@ describe("API load", function() { expect(newData.length).to.be.equal(oldData.length + 1); expect(newData).to.deep.equal(oldData.concat(value)); - done(); + done(1); } }); - }); + })); it("set options", () => { args.data.columns[0] = ["x", "a", "b", "c"]; args.axis.x.type = "category"; }); - it("category: check if data has been appended", done => { + it("category: check if data has been appended", () => new Promise(done => { const category = "dd"; const value = 37; @@ -757,10 +753,10 @@ describe("API load", function() { expect(this.categories()).to.deep.equal(args.data.columns[0].slice(1).concat(category)); expect(newData.length).to.be.equal(oldData.length + 1); expect(newData).to.deep.equal(oldData.concat(value)); - done(); + done(1); } }); - }); + })); it("set options", () => { args = { @@ -773,7 +769,7 @@ describe("API load", function() { }; }); - it("indexed: check if data has been appended", done => { + it("indexed: check if data has been appended", () => new Promise(done => { const value = 37; chart.load({ @@ -791,10 +787,10 @@ describe("API load", function() { this.internal.$el.axis.x.selectAll(".tick text").nodes().map(v => +v.textContent) ).to.deep.equal([0,1,2,3]); - done(); + done(1); } }); - }); + })); it("set options", () => { args = { @@ -809,7 +805,7 @@ describe("API load", function() { } }); - it("row data: check if data has been appended", done => { + it("row data: check if data has been appended", () => new Promise(done => { const value = 37; const oldData = chart.data.values("data1"); @@ -825,14 +821,14 @@ describe("API load", function() { expect(newData.length).to.be.equal(oldData.length + 1); expect(newData).to.deep.equal(oldData.concat(value)); - done(); + done(1); } }); - }); + })); }); describe("Append data loading with zoom-in state", () => { - before(() => { + beforeAll(() => { args = { data: { columns: [ @@ -849,7 +845,7 @@ describe("API load", function() { }; }); - it("indexed axis type", done => { + it("indexed axis type", () => new Promise(done => { const {$el, scale} = chart.internal; const zoomDomain = [1, 2]; const orgDomain = scale.x.orgDomain().map(Math.abs); @@ -880,10 +876,10 @@ describe("API load", function() { expect(ticks).to.be.deep.equal([0, values.length - 1]); - done(); + done(1); } }); - }); + })); it("set options: axis.x.type='category", () => { args.axis = { @@ -893,7 +889,7 @@ describe("API load", function() { }; }); - it("category axis type", done => { + it("category axis type", () => new Promise(done => { const {$el, scale} = chart.internal; const zoomDomain = [1, 2]; const orgDomain = scale.x.orgDomain().map(Math.abs); @@ -924,10 +920,10 @@ describe("API load", function() { expect(ticks).to.be.deep.equal([0, values.length - 1]); - done(); + done(1); } }); - }); + })); it("set options: axis.x.type='timeseries", () => { args = { @@ -956,7 +952,7 @@ describe("API load", function() { }; }); - it("timeseires axis type", done => { + it("timeseires axis type", () => new Promise(done => { const {$el, scale} = chart.internal; const orgDomain = scale.x.orgDomain().map(Number); let zoomDomain = ["2023-10-2", "2023-10-3"]; @@ -991,14 +987,14 @@ describe("API load", function() { .nodes().map(v => +new Date(v.textContent)); expect(ticks).to.be.deep.equal(["2023-10-01", "2023-10-07"].map(v => +new Date(v))); - done(); + done(1); } }); - }); + })); }); describe("Multiple consecutive load call", () => { - before(() => { + beforeAll(() => { args = { data: { columns: [ @@ -1013,7 +1009,7 @@ describe("API load", function() { }; }); - it("should be rendered properly", done => { + it("should be rendered properly", () => new Promise(done => { new Promise((resolve, reject) => { chart.load({ columns: [["data1", 230, 190, 300, 500, 300, 400]], @@ -1038,17 +1034,17 @@ describe("API load", function() { expect(lines.size()).to.be.equal(1); expect(+axis.y.selectAll(".tick:last-of-type text").text()).to.be.equal(155); - expect(lines.attr("d")).to.be.equal("M6,390.583L124,319.75L241,248.917L359,178.083L476,107.25L594,36.417"); + // expect(lines.attr("d")).to.be.equal("M6,390.125L124,319.375L241,248.625L359,177.875L476,107.125L594,36.375"); - done(); + done(1); } }); }); - }); + })); }); describe("Check 'resizeAfter' option", () => { - before(() => { + beforeAll(() => { args = { data: { columns: [ @@ -1059,7 +1055,7 @@ describe("API load", function() { }; }); - it("should resize correctly after the load", done => { + it("should resize correctly after the load", () => new Promise(done => { const {height} = chart.internal.state; // when @@ -1082,13 +1078,13 @@ describe("API load", function() { expect(this.internal.state.height).to.be.below(height); expect(lastLegend.getBoundingClientRect().bottom).to.be.below(chartNode.getBoundingClientRect().bottom); - done(); + done(1); }, 300); } }); - }); + })); - it("shouldn't resize after the load", done => { + it("shouldn't resize after the load", () => new Promise(done => { const {height} = chart.internal.state; // when @@ -1110,13 +1106,13 @@ describe("API load", function() { expect(this.internal.state.height).to.be.equal(height); expect(lastLegend.getBoundingClientRect().bottom).to.be.above(chartNode.getBoundingClientRect().bottom); - done(); + done(1); }, 300); } }); - }); + })); - it("should resize correctly after the unload", done => { + it("should resize correctly after the unload", () => new Promise(done => { // when chart.load({ columns: [ @@ -1143,15 +1139,15 @@ describe("API load", function() { expect(legendBottom).to.be.closeTo(chartBottom, 10); expect(legendBottom < chartBottom).to.be.true; - done(); + done(1); }, 300); } }) } }); - }); + })); - it("shouldn't resize after the unload", done => { + it("shouldn't resize after the unload", () => new Promise(done => { // when chart.load({ columns: [ @@ -1178,17 +1174,17 @@ describe("API load", function() { expect(legendBottom).to.not.be.closeTo(chartBottom, 10); expect(chartBottom - legendBottom > 25).to.be.true; - done(); + done(1); }, 300); } }) } }); - }); + })); }); describe("Check different type loading", () => { - before(() => { + beforeAll(() => { args = { data: { columns: [ @@ -1203,7 +1199,7 @@ describe("API load", function() { }; }); - it("should generate 'scatter' when line type is used at generation.", done => { + it("should generate 'scatter' when line type is used at generation.", () => new Promise(done => { chart.load({ columns: [ ["data2", 200, 130, 90, 240, 130, 220], @@ -1232,18 +1228,18 @@ describe("API load", function() { this.tooltip.show({x: 3}); expect(+this.$.tooltip.select(".value").text()).to.be.equal(40); - done(); + done(1); } }); } }); - }); + })); it("set options: data.types={data2: 'bubble'}", () => { args.data.types.data2 = "bubble"; }); - it("should generate 'bubble' when line type is used at generation.", done => { + it("should generate 'bubble' when line type is used at generation.", () => new Promise(done => { chart.load({ columns: [ ["data2", 200, 130, 90, 240, 130, 220], @@ -1272,11 +1268,11 @@ describe("API load", function() { this.tooltip.show({x: 3}); expect(+this.$.tooltip.select(".value").text()).to.be.equal(40); - done(); + done(1); } }); } }); - }); + })); }); }); diff --git a/test/api/region-spec.ts b/test/api/region-spec.ts index 07a66192e..5c4eb85a2 100644 --- a/test/api/region-spec.ts +++ b/test/api/region-spec.ts @@ -3,11 +3,11 @@ * billboard.js project is licensed under the MIT license */ /* eslint-disable */ -import {expect} from "chai"; +import {beforeEach, beforeAll, describe, expect, it} from "vitest"; import {select as d3Select} from "d3-selection"; import util from "../assets/util"; import {$REGION} from "../../src/config/classes"; -import {testRegions} from "../internals/rergions-spec"; +import {testRegions} from "../internals/regions-spec"; describe("API regions", function() { let chart; @@ -18,7 +18,7 @@ describe("API regions", function() { }); describe("regions()", () => { - before(() => { + beforeAll(() => { args = { data: { columns: [ @@ -42,7 +42,7 @@ describe("API regions", function() { } }); - it("should update regions", done => { + it("should update regions", () => new Promise(done => { const main = chart.$.main; const expectedRegions = [ { @@ -88,9 +88,9 @@ describe("API regions", function() { expect(region.classed(unexpectedClass)).to.not.be.ok; }); - done(); - }, 1000); - }); + done(1); + }, 300); + })); it("check for element generation", () => { // when @@ -120,7 +120,7 @@ describe("API regions", function() { }); describe("Add regions using regions()", () => { - before(() => { + beforeAll(() => { args = { data: { columns: [ @@ -147,7 +147,7 @@ describe("API regions", function() { } }); - it("should add regions", done => { + it("should add regions", () => new Promise(done => { const main = chart.$.main; const expectedRegions = [ { @@ -209,9 +209,9 @@ describe("API regions", function() { expect(region.classed(expectedClass)).to.be.ok; }); - done(); - }, 500); - }); + done(1); + }, 300); + })); it("set options", () => { @@ -248,7 +248,7 @@ describe("API regions", function() { }); describe("Remove regions using regions()", () => { - before(() => { + beforeAll(() => { args = { data: { columns: [ @@ -278,7 +278,7 @@ describe("API regions", function() { } }); - it("should remove regions", done => { + it("should remove regions", () => new Promise(done => { const main = chart.$.main; const expectedRegions = [ { @@ -315,14 +315,14 @@ describe("API regions", function() { expect(region.classed(expectedClass)).to.be.ok; }); - done(); - }, 500); - }); + done(1); + }, 300); + })); }); // regions.add / remove describe("regions()", () => { - before(() => { + beforeAll(() => { args = { data: { columns: [ @@ -373,7 +373,7 @@ describe("API regions", function() { }); describe("label text", () => { - before(() => { + beforeAll(() => { args = { data: { columns: [ @@ -428,7 +428,7 @@ describe("API regions", function() { } }); - it("labels are updated correctly?", done => { + it("labels are updated correctly?", () => new Promise(done => { // when chart.regions([ { @@ -458,8 +458,8 @@ describe("API regions", function() { setTimeout(() => { chart.internal.$el.region.list.each(testRegions(chart)); - done(); - }, 500); - }); + done(1); + }, 300); + })); }); }); diff --git a/test/api/selection-spec.ts b/test/api/selection-spec.ts index b0bd28516..d250312e4 100644 --- a/test/api/selection-spec.ts +++ b/test/api/selection-spec.ts @@ -3,7 +3,7 @@ * billboard.js project is licensed under the MIT license */ /* eslint-disable */ -import {expect} from "chai"; +import {beforeEach, beforeAll, afterAll, describe, expect, it} from "vitest"; import util from "../assets/util"; import {$BAR, $SELECT, $SHAPE} from "../../src/config/classes"; @@ -26,7 +26,7 @@ describe("API select", () => { }; describe("selection for circle data points", () => { - before(() => { + beforeAll(() => { chart = util.generate(args); main = chart.$.main; }); @@ -96,7 +96,7 @@ describe("API select", () => { }); describe("selection for bar", () => { - before(() => { + beforeAll(() => { args.data.type = "bar"; chart = util.generate(args); main = chart.$.main; @@ -149,7 +149,7 @@ describe("API select", () => { }); describe("when selection is disabled", () => { - before(() => { + beforeAll(() => { args.data.selection = false; chart = util.generate(args); main = chart.$.main; diff --git a/test/api/show-spec.ts b/test/api/show-spec.ts index 97ff43ebe..c46aa8c29 100644 --- a/test/api/show-spec.ts +++ b/test/api/show-spec.ts @@ -3,7 +3,7 @@ * billboard.js project is licensed under the MIT license */ /* eslint-disable */ -import {expect} from "chai"; +import {beforeEach, beforeAll, afterAll, describe, expect, it} from "vitest"; import {select as d3Select} from "d3-selection"; import util from "../assets/util"; import {$BAR, $COMMON, $LINE, $LEGEND} from "../../src/config/classes"; @@ -24,7 +24,7 @@ describe("API show", () => { }); describe("hide()", () => { - it("Hide partial data", done => { + it("Hide partial data", () => new Promise(done => { const internal = chart.internal; const {main} = chart.$; @@ -38,11 +38,11 @@ describe("API show", () => { expect(+internal.$el.svg.selectAll(`.${$LEGEND.legendItemHidden}`).size()).to.be.equal(1); - done(); - }, 500); - }); + done(1); + }, 300); + })); - it("Hide all data", done => { + it("Hide all data", () => new Promise(done => { const {main} = chart.$; // hide all data @@ -61,11 +61,11 @@ describe("API show", () => { expect(+d3Select(this).style("opacity")).to.be.equal(0.15); }); - done(); - }, 500); - }); + done(1); + }, 300); + })); - it("Hide all data with legend", done => { + it("Hide all data with legend", () => new Promise(done => { // hide legend chart.hide(null, {withLegend:true}); @@ -76,17 +76,17 @@ describe("API show", () => { expect(+d3Select(this).style("opacity")).to.be.closeTo(0.15, 0.15); }); - done(); - }, 500); - }); + done(1); + }, 300); + })); // https://github.com/naver/billboard.js/issues/1758 - it("hidden target display should be 'none' when is hidden", done => { - before(() => { + it("hidden target display should be 'none' when is hidden", () => new Promise(done => { + beforeAll(() => { args.data.type = "bar"; }); - after(() => { + afterAll(() => { args.data.type = "line"; }); @@ -97,9 +97,9 @@ describe("API show", () => { expect( chart.$.main.select(`.${$COMMON.target}-data1`).style("display") ).to.be.equal("none"); - done(); - }, 500); - }); + done(1); + }, 300); + })); it("legend items should be hidden", () => { const {legend} = chart.$; @@ -114,7 +114,7 @@ describe("API show", () => { }); describe("show()", () => { - it("Show partial data", done => { + it("Show partial data", () => new Promise(done => { const internal = chart.internal; const {main} = chart.$; @@ -129,11 +129,11 @@ describe("API show", () => { expect(+internal.$el.svg.selectAll(`.${$LEGEND.legendItemHidden}`).size()).to.be.equal(1); - done(); - }, 500); - }); + done(1); + }, 300); + })); - it("Show all data", done => { + it("Show all data", () => new Promise(done => { const internal = chart.internal; const {main} = chart.$; let legend; @@ -160,11 +160,11 @@ describe("API show", () => { expect(d3Select(this).style("opacity")).to.be.equal(""); }); - done(); - }, 500); - }); + done(1); + }, 300); + })); - it("Show all data using 'withLegend' option", done => { + it("Show all data using 'withLegend' option", () => new Promise(done => { const internal = chart.internal; const {main} = chart.$; @@ -187,13 +187,13 @@ describe("API show", () => { expect(this.style.opacity).to.be.equal(""); }); - done(); - }, 500); - }); + done(1); + }, 300); + })); }); describe("toggle()", () => { - it("should be toggled hiding and showing data", done => { + it("should be toggled hiding and showing data", () => new Promise(done => { const internal = chart.internal; const {main} = chart.$; let legend; @@ -231,9 +231,9 @@ describe("API show", () => { expect(d3Select(this).style("opacity")).to.be.equal(""); }); - done(); - }, 500); - }); + done(1); + }, 400); + })); }); describe("check toggle interaction", () => { @@ -266,7 +266,7 @@ describe("API show", () => { }; }); - it("should correctly rendered having same width", done => { + it("should correctly rendered having same width", () => new Promise(done => { const main = chart.$.main; const barWidth = Math.round(util.getBBox(main.select(`.${$BAR.bars}-${ids[0]}`)).width); @@ -278,8 +278,8 @@ describe("API show", () => { expect(Math.round(util.getBBox(this).width)).to.be.equal(barWidth); }); - done(); - }, 500); - }); + done(1); + }, 300); + })); }); }); diff --git a/test/api/subchart-spec.ts b/test/api/subchart-spec.ts index 8f6f5f363..d44156f4e 100644 --- a/test/api/subchart-spec.ts +++ b/test/api/subchart-spec.ts @@ -4,7 +4,7 @@ */ /* eslint-disable */ import sinon from "sinon"; -import {expect} from "chai"; +import {beforeEach, beforeAll, describe, expect, it} from "vitest"; import util from "../assets/util"; import {fireEvent} from "../assets/helper"; @@ -17,7 +17,7 @@ describe("API subchart", () => { }); describe("Initialization", () => { - before(() => { + beforeAll(() => { args = { data: { columns: [ @@ -55,7 +55,7 @@ describe("API subchart", () => { }); describe(".subchart.show/hide/toggle()", () => { - before(() => { + beforeAll(() => { args = { data: { columns: [ @@ -98,7 +98,7 @@ describe("API subchart", () => { expect(util.parseNum(axis.x.attr("transform"))).to.be.above(xAxisYPos); }); - it("dynamic data load", done => { + it("dynamic data load", () => new Promise(done => { // when chart.subchart.show(); @@ -118,16 +118,16 @@ describe("API subchart", () => { expect(currentPath).to.be.not.equal(path); expect(currentPath).to.be.equal("M6,38.694L300,55.083L594,5.917"); - done(); + done(1); } }); - }); + })); }); describe("usage with other combination", () => { const spy = sinon.spy(); - before(() => { + beforeAll(() => { args = { data: { columns: [ @@ -181,7 +181,7 @@ describe("API subchart", () => { describe(".subchart() / .subchart.reset()", () => { const spy = sinon.spy(); - before(() => { + beforeAll(() => { args = { data: { columns: [ diff --git a/test/api/tooltip-spec.ts b/test/api/tooltip-spec.ts index 42afe7d89..f1ec007ac 100644 --- a/test/api/tooltip-spec.ts +++ b/test/api/tooltip-spec.ts @@ -3,7 +3,7 @@ * billboard.js project is licensed under the MIT license */ /* eslint-disable */ -import {expect} from "chai"; +import {beforeEach, beforeAll, describe, expect, it} from "vitest"; import {timeFormat as d3TimeFormat} from "d3-time-format"; import util from "../assets/util"; import {$TOOLTIP} from "../../src/config/classes"; @@ -98,7 +98,7 @@ describe("API tooltip", () => { const spy1 = sinon.spy(); const spy2 = sinon.spy(); - before(() => { + beforeAll(() => { args = { data: { xs: { @@ -232,7 +232,7 @@ describe("API tooltip", () => { const spy1 = sinon.spy(); const spy2 = sinon.spy(); - before(() => { + beforeAll(() => { args = { data: { x: "x", @@ -278,7 +278,7 @@ describe("API tooltip", () => { }); describe("when tooltip.show=false option is set", () => { - before(() => { + beforeAll(() => { args = { data: { columns: [['rating', 70]], @@ -302,7 +302,7 @@ describe("API tooltip", () => { }); describe("tooltip.show() for arc types", () => { - before(() => { + beforeAll(() => { args = { data: { columns: [ @@ -319,7 +319,7 @@ describe("API tooltip", () => { }; }); - it("should show tooltip correctly using 'index'?", done => { + it("should show tooltip correctly using 'index'?", () => new Promise(done => { setTimeout(() => { const {tooltip} = chart.$; @@ -329,11 +329,11 @@ describe("API tooltip", () => { expect(tooltip.select(".name").text()).to.be.equal("data3"); expect(tooltip.select(".value").text()).to.be.equal("19.2%"); - done(); - }, 500); - }); + done(1); + }, 300); + })); - it("should show tooltip correctly using 'id'?", done => { + it("should show tooltip correctly using 'id'?", () => new Promise(done => { setTimeout(() => { const {tooltip} = chart.$; @@ -343,9 +343,9 @@ describe("API tooltip", () => { expect(tooltip.select(".name").text()).to.be.equal("data3"); expect(tooltip.select(".value").text()).to.be.equal("19.2%"); - done(); - }, 500); - }); + done(1); + }, 300); + })); it("set options tooltip.init", () => { args.tooltip = { @@ -365,7 +365,7 @@ describe("API tooltip", () => { }); describe("on rotated axis", () => { - before(() => { + beforeAll(() => { args = { data: { columns: [ diff --git a/test/api/x-spec.ts b/test/api/x-spec.ts index ec41691da..62da6c6b5 100644 --- a/test/api/x-spec.ts +++ b/test/api/x-spec.ts @@ -3,7 +3,7 @@ * billboard.js project is licensed under the MIT license */ /* eslint-disable */ -import {expect} from "chai"; +import {beforeEach, beforeAll, describe, expect, it} from "vitest"; import util from "../assets/util"; import {$AXIS} from "../../src/config/classes"; @@ -16,7 +16,7 @@ describe("API x", () => { }); describe(".x()", () => { - before(() => { + beforeAll(() => { args = { data: { columns: [ @@ -84,7 +84,7 @@ describe("API x", () => { x2: [30, 50, 75] }; - before(() => { + beforeAll(() => { args = { data: { xs: { diff --git a/test/api/zoom-spec.ts b/test/api/zoom-spec.ts index cb4096652..ee672e84c 100644 --- a/test/api/zoom-spec.ts +++ b/test/api/zoom-spec.ts @@ -3,7 +3,7 @@ * billboard.js project is licensed under the MIT license */ /* eslint-disable */ -import {expect} from "chai"; +import {beforeEach, beforeAll, describe, expect, it} from "vitest"; import sinon from "sinon"; import {parseDate} from "../../src/module/util"; import util from "../assets/util"; @@ -15,7 +15,7 @@ describe("API zoom", function() { describe("zoom line chart #1", () => { const spy = sinon.spy(); - before(() => { + beforeAll(() => { chart = util.generate({ data: { columns: [ @@ -34,7 +34,7 @@ describe("API zoom", function() { }); }); - it("should be zoomed properly", done => { + it("should be zoomed properly", () => new Promise(done => { const target = [3, 5]; chart.zoom(target); @@ -51,11 +51,11 @@ describe("API zoom", function() { expect(spy.called).to.be.true; expect(spy.args[0][0].map(Math.round)).to.be.deep.equal(target); - done(); + done(1); }, 350); - }); + })); - it("should be zoomed properly again", done => { + it("should be zoomed properly again", () => new Promise(done => { const target = [1, 4]; chart.zoom(target); @@ -66,9 +66,9 @@ describe("API zoom", function() { expect(domain[0]).to.be.equal(target[0]); expect(domain[1]).to.be.equal(target[1]); - done(); + done(1); }, 350); - }); + })); it("should be zoomed and showing focus grid properly when target contained minus value", () => { const target = [-2, 3]; // zoom in cotaining minus value @@ -89,7 +89,7 @@ describe("API zoom", function() { }); describe("zoom line chart #2", () => { - before(() => { + beforeAll(() => { chart = util.generate({ data: { x: "date", @@ -109,7 +109,7 @@ describe("API zoom", function() { }); }); - it("should be zoomed properly (new Date)", done => { + it("should be zoomed properly (new Date)", () => new Promise(done => { const target = [new Date(2014, 7, 1), new Date(2014, 8, 1)]; chart.zoom(target); @@ -126,11 +126,11 @@ describe("API zoom", function() { expect(domain[1].getMonth()).to.be.equal(target[1].getMonth()); expect(domain[1].getDate()).to.be.equal(target[1].getDate()); - done(); - }, 500); - }); + done(1); + }, 300); + })); - it("should be zoomed properly (string)", done => { + it("should be zoomed properly (string)", () => new Promise(done => { const target = ["2014-08-01", "2014-09-01"]; chart.zoom(target); @@ -147,13 +147,13 @@ describe("API zoom", function() { expect(domain[1].getMonth()).to.be.equal(targetDate[1].getMonth()); expect(domain[1].getDate()).to.be.equal(targetDate[1].getDate()); - done(); + done(1); }, 500) - }); + })); }); describe("zoom category type", () => { - before(() => { + beforeAll(() => { chart = util.generate({ data: { columns: [ @@ -174,7 +174,7 @@ describe("API zoom", function() { }); }); - it("should be zoomed properly", done => { + it("should be zoomed properly", () => new Promise(done => { const target = [1,2]; chart.zoom(target); @@ -199,13 +199,13 @@ describe("API zoom", function() { expect(x * i).to.be.closeTo(rectSize * i, 5); }); - done(); + done(1); }, 350); - }); + })); }); describe("zoom bar chart", () => { - before(() => { + beforeAll(() => { chart = util.generate({ data: { columns: [ @@ -221,7 +221,7 @@ describe("API zoom", function() { }); }); - it("should be zoomed properly", done => { + it("should be zoomed properly", () => new Promise(done => { const rectlist = chart.$.main.selectAll(`.${$EVENT.eventRect}`).nodes(); const rect: number[] = []; @@ -240,13 +240,13 @@ describe("API zoom", function() { rect.push(x + width); }); - done(); + done(1); }, 500) - }); + })); }); describe("unzoom", () => { - before(() => { + beforeAll(() => { chart = util.generate({ data: { columns: [ @@ -262,7 +262,7 @@ describe("API zoom", function() { }); }); - it("should be unzoomed properly", done => { + it("should be unzoomed properly", () => new Promise(done => { const internal = chart.internal; const target = [1, 4]; const original = internal.scale.x.domain(); @@ -283,9 +283,9 @@ describe("API zoom", function() { expect(domain[0]).to.be.equal(original[0]); expect(domain[1]).to.be.equal(original[1]); - done(); + done(1); }, 350); - }); + })); }); describe("zoom.enable()", () => { @@ -352,7 +352,7 @@ describe("API zoom", function() { } }); - it("should be updated the minimum zoom range", done => { + it("should be updated the minimum zoom range", () => new Promise(done => { const range = chart.zoom.min(-1); const zoomRange = chart.zoom([-1, 1]); @@ -360,11 +360,11 @@ describe("API zoom", function() { setTimeout(() => { expect(+chart.$.main.select(`.${$AXIS.axisX} .tick`).attr("transform").match(/\d+/)[0]).to.be.above(250); - done(); + done(1); }, 300); - }); + })); - it("should be updated the maximum zoom range", done => { + it("should be updated the maximum zoom range", () => new Promise(done => { const range = chart.zoom.max(6); const zoomRange = chart.zoom([4, 6]); @@ -374,11 +374,11 @@ describe("API zoom", function() { const tick = chart.$.main.selectAll(`.${$AXIS.axisX} .tick`); expect(+tick.filter(`:nth-child(${tick.size() + 1})`).attr("transform").match(/\d+/)[0]).to.be.below(500); - done(); + done(1); }, 300); - }); + })); - it("should be updated zoom range", done => { + it("should be updated zoom range", () => new Promise(done => { const main = chart.$.main; const range = chart.zoom.range({ min: -2, @@ -400,13 +400,13 @@ describe("API zoom", function() { const tick = main.selectAll(`.${$AXIS.axisX} .tick`); expect(+tick.filter(`:nth-child(${tick.size() + 1})`).attr("transform").match(/\d+/)[0]).to.be.below(5); - done(); + done(1); }, 300); - }); + })); }); describe("bar's width based on ratio", () => { - before(() => { + beforeAll(() => { chart = util.generate({ data: { columns: [ @@ -425,7 +425,7 @@ describe("API zoom", function() { }); }); - it("check bar's width for zoom in/out API call", done => { + it("check bar's width for zoom in/out API call", () => new Promise(done => { const len: number[] = []; chart.$.bar.bars.each(function() { @@ -453,14 +453,14 @@ describe("API zoom", function() { expect(this.getTotalLength()).to.be.closeTo(len[i], 2.5); }); - done(); - }, 500); + done(1); + }, 300); }); - }); + })); }); describe("zoom for timeseries axis type", () => { - before(() => { + beforeAll(() => { chart = util.generate({ data: { rows: [ @@ -484,7 +484,7 @@ describe("API zoom", function() { }); }); - it("should zoomed", done => { + it("should zoomed", () => new Promise(done => { const range = ["2021-01-01", "2021-01-02"]; // when @@ -495,9 +495,9 @@ describe("API zoom", function() { expect(v).to.be.deep.equal(parseDate.call(chart.internal, range[i])); }); - done(); - }, 500); - }); + done(1); + }, 300); + })); }); describe("zoom events", () => { @@ -567,7 +567,7 @@ describe("API zoom", function() { }); describe("zoom for timeseries axis type", () => { - before(() => { + beforeAll(() => { chart = util.generate({ data: { columns: [ diff --git a/test/assets/hammer-simulator.run.js b/test/assets/hammer-simulator.run.js deleted file mode 100644 index 2b4152b6e..000000000 --- a/test/assets/hammer-simulator.run.js +++ /dev/null @@ -1,4 +0,0 @@ -/* eslint-disable */ -// set hammerjs-simulator config -Simulator.setType("touch"); -Simulator.events.touch.fakeSupport(); \ No newline at end of file diff --git a/test/assets/helper.ts b/test/assets/helper.ts index e82716868..13a665113 100644 --- a/test/assets/helper.ts +++ b/test/assets/helper.ts @@ -4,8 +4,9 @@ */ /* eslint-disable */ // @ts-nocheck -/* global sandbox, window */ +/* global window */ import simulant from "simulant"; +import Simulator from "./module/hammer-simulator"; export { doDrag, diff --git a/test/assets/module/hammer-simulator.js b/test/assets/module/hammer-simulator.js new file mode 100644 index 000000000..6751bca38 --- /dev/null +++ b/test/assets/module/hammer-simulator.js @@ -0,0 +1,520 @@ +import {document, window} from "./browser"; + +// Simulator +// https://github.com/hammerjs/simulator +(function() { + /** + * return unchanged if array passed, otherwise wrap in an array + * @param {Object|Array|Null} arr any object + * @return {Array} + */ + function ensureAnArray (arr) { + if (Object.prototype.toString.call(arr) === '[object Array]') { + return arr; + } else if (arr === null || arr === void 0) { + return []; + } else { + return [arr]; + } + } + + var Simulator = { + type: 'touch', + + /** + * set type + * @param type + */ + setType: function(type) { + if(!Simulator.events[type]) { + throw new Error(type + " is not a valid event type."); + } + return this.type = type; + } + }; + + + // simple easing methods + // found at the source of velocity.js + Simulator.easings = { + linear: function(p) { return p; }, + swing: function(p) { return 0.5 - Math.cos(p * Math.PI) / 2; }, + quad: function(p) { return Math.pow(p, 2); }, + cubic: function(p) { return Math.pow(p, 3); }, + quart: function(p) { return Math.pow(p, 4); }, + quint: function(p) { return Math.pow(p, 5); }, + expo: function(p) { return Math.pow(p, 6); } + }; + + Simulator.events = { + /** + * pointer events + */ + pointer: { + fakeSupport: function() { + if(!("PointerEvent" in window)) { + navigator.maxTouchPoints = 10; + window.PointerEvent = function () {}; + } + }, + + typeMap: { + start: 'pointerdown', + move: 'pointermove', + end: 'pointerup', + cancel: 'pointercancel' + }, + + trigger: function(touches, element, type) { + touches.forEach(function (touch, i) { + var x = Math.round(touch.x), + y = Math.round(touch.y); + + var eventType = this.typeMap[type]; + // ie10 style events + var msEventType = window.MSPointerEvent && eventType.replace(/pointer([a-z])/, function(_, a) { + return 'MSPointer'+ a.toUpperCase(); + }); + + var event = document.createEvent('Event'); + event.initEvent(msEventType || eventType, true, true); + + event.getCurrentPoint = function() { return touch; }; + event.setPointerCapture = event.releasePointerCapture = function() { }; + + event.pointerId = i; + event.buttons = 1; + event.pageX = x; + event.pageY = y; + event.clientX = x; + event.clientY = y; + event.screenX = x; + event.screenY = y; + event.target = element; + event.pointerType = 'touch'; + event.identifier = i; + + element.dispatchEvent(event); + }, this); + + renderTouches(touches, element); + } + }, + + /** + * touch events + */ + touch: { + fakeSupport: function() { + if(!("ontouchstart" in window)) { + window.ontouchstart = function () {}; + } + }, + + emptyTouchList: function() { + var touchList = []; + touchList.identifiedTouch = touchList.item = function(index) { + return this[index] || {}; + }; + return touchList; + }, + + trigger: function (touches, element, type) { + var touchList = this.emptyTouchList(); + touches.forEach(function (touch, i) { + var x = Math.round(touch.x), + y = Math.round(touch.y); + + touchList.push({ + pageX: x, + pageY: y, + clientX: x, + clientY: y, + screenX: x, + screenY: y, + target: touch.target, + identifier: i + }); + }); + + var event = document.createEvent('Event'); + event.initEvent('touch' + type, true, true); + + if (type !== 'end') { + var targetTouches = touchList.filter(function(touch){ + return touch.target === element; + }) + + event.changedTouches = targetTouches; + } else { + // assume that last touch is released touch. Pop it out from list of touches + event.changedTouches = [touchList.pop()]; + + var targetTouches = touchList.filter(function(touch){ + return touch.target === element; + }) + } + + event.touches = touchList; + event.targetTouches = targetTouches; + element.dispatchEvent(event); + + renderTouches(touches, element); + } + } + }; + + /** + * merge objects + * @param dest + * @param src + * @returns dest + */ + function merge(dest, src) { + dest = dest || {}; + src = src || {}; + for (var key in src) { + if (src.hasOwnProperty(key) && dest[key] === undefined) { + dest[key] = src[key]; + } + } + return dest; + } + + /** + * generate a list of x/y around the center + * @param center + * @param countTouches + * @param [radius=100] + * @param [rotation=0] + */ + function getTouches(center, elements, countTouches, radius, rotation) { + var cx = center[0], + cy = center[1], + touches = [], + slice, i, angle; + + elements = ensureAnArray(elements); + + // just one touch, at the center + if (countTouches === 1) { + if (elements.length) { + return [{ x: cx, y: cy, target: elements[0] }]; + } else { + return [{ x: cx, y: cy }]; + } + } + + radius = radius || 100; + rotation = (rotation * Math.PI / 180) || 0; + slice = 2 * Math.PI / countTouches; + + for (i = 0; i < countTouches; i++) { + angle = (slice * i) + rotation; + touches.push({ + x: (cx + radius * Math.cos(angle)), + y: (cy + radius * Math.sin(angle)), + target: elements[i % elements.length] + }); + } + + return touches; + } + + /** + * render the touches + * @param touches + * @param element + * @param type + */ + function renderTouches(touches, element) { + touches.forEach(function(touch) { + var el = document.createElement('div'); + el.style.width = '20px'; + el.style.height = '20px'; + el.style.background = 'red'; + el.style.position = 'fixed'; + el.style.top = touch.y +'px'; + el.style.left = touch.x +'px'; + el.style.borderRadius = '100%'; + el.style.border = 'solid 2px #000'; + el.style.zIndex = 6000; + + element.appendChild(el); + setTimeout(function() { + el && el.parentNode && el.parentNode.removeChild(el); + el = null; + }, 100); + }); + } + + /** + * trigger the touch events + * @param touches + * @param element + * @param type + * @returns {*} + */ + function trigger(touches, element, type) { + return Simulator.events[Simulator.type].trigger(touches, element, type); + } + + /** + * trigger a gesture + * @param elements + * @param startTouches + * @param options + * @param done + */ + function triggerGesture(elements, startTouches, options, done) { + var interval = 10, + loops = Math.ceil(options.duration / interval), + loop = 1; + + elements = ensureAnArray(elements); + + options = merge(options, { + pos: [10, 10], + duration: 250, + touches: 1, + deltaX: 0, + deltaY: 0, + radius: 100, + scale: 1, + rotation: 0, + easing: 'swing' + }); + + function gestureLoop() { + // calculate the radius + // this is for scaling and multiple touches + var radius = options.radius; + if (options.scale !== 1) { + radius = options.radius - (options.radius * (1 - options.scale) * (1 / loops * loop)); + } + + // calculate new position/rotation + var easing = Simulator.easings[options.easing](1 / loops * loop), + posX = options.pos[0] + (options.deltaX / loops * loop) * easing, + posY = options.pos[1] + (options.deltaY / loops * loop) * easing, + rotation = options.rotation / loops * loop, + touches = getTouches([posX, posY], elements, startTouches.length, radius, rotation), + isFirst = (loop == 1), + isLast = (loop == loops); + + for (var t = touches.length - 1; t >= 0; t--) { + if (isFirst) { + trigger(touches, touches[t].target, 'start'); + } else if (isLast) { + trigger(touches, touches[t].target, 'end'); + + // Remove processed touch + touches.pop() + + if (touches.length === 0) { + return done(); + } + } else { + trigger(touches, touches[t].target, 'move'); + } + } + + setTimeout(gestureLoop, interval); + loop++; + } + gestureLoop(); + } + + Simulator.gestures = { + /** + * press + * @param element + * @param options + * @param done + */ + press: function(element, options, done) { + options = merge(options, { + pos: [10, 10], + duration: 500, + touches: 1 + }); + + var touches = getTouches(options.pos, element, 1); + + trigger(touches, element, 'start'); + setTimeout(function() { + trigger(touches, element, 'end'); + done && setTimeout(done, 25); + }, options.duration); + }, + + /** + * tap + * @param element + * @param options + * @param done + */ + tap: function(element, options, done) { + options = merge(options, { + pos: [10, 10], + duration: 100, + touches: 1 + }); + + var touches = getTouches(options.pos, element, 1); + trigger(touches, element, 'start'); + setTimeout(function() { + trigger(touches, element, 'end'); + done && setTimeout(done, 25); + }, options.duration); + }, + + /** + * double tap + * @param element + * @param options + * @param done + */ + doubleTap: function(element, options, done) { + options = merge(options, { + pos: [10, 10], + pos2: [11, 11], + duration: 100, + interval: 200, + touches: 1 + }); + + Simulator.gestures.tap(element, options, function() { + setTimeout(function() { + options.pos = options.pos2; + Simulator.gestures.tap(element, options, done); + }, options.interval); + }); + }, + + /** + * pan + * @param element + * @param options + * @param done + */ + pan: function(element, options, done) { + options = merge(options, { + pos: [10, 10], + deltaX: 300, + deltaY: 150, + duration: 250, + touches: 1 + }); + + var touches = getTouches(options.pos, element, options.touches); + triggerGesture(element, touches, options, function() { + done && setTimeout(done, 25); + }); + }, + + /** + * swipe + * @param element + * @param options + * @param done + */ + swipe: function(element, options, done) { + options = merge(options, { + pos: [10, 10], + deltaX: 300, + deltaY: 150, + duration: 250, + touches: 1, + easing: 'cubic' + }); + + var touches = getTouches(options.pos, element, options.touches); + triggerGesture(element, touches, options, function() { + done && setTimeout(done, 25); + }); + }, + + /** + * pinch + * @param {HTMLElement|Array} elements + * @param options + * @param done + */ + pinch: function(elements, options, done) { + elements = ensureAnArray(elements); + options = merge(options, { + pos: [300, 300], + scale: 2, + duration: 250, + radius: 100, + touches: 2 + }); + + var touches = getTouches(options.pos, elements, options.touches); + triggerGesture(elements, touches, options, function() { + done && setTimeout(done, 25); + }); + }, + + /** + * rotate + * @param {HTMLElement|Array} elements + * @param options + * @param done + */ + rotate: function(elements, options, done) { + elements = ensureAnArray(elements); + options = merge(options, { + pos: [300, 300], + rotation: 180, + duration: 250, + touches: 2 + }); + + var touches = getTouches(options.pos, elements, options.touches); + triggerGesture(elements, touches, options, function() { + done && setTimeout(done, 25); + }); + }, + + /** + * combination of pinch and rotate + * @param {HTMLElement|Array} elements + * @param options + * @param done + */ + pinchRotate: function(elements, options, done) { + elements = ensureAnArray(elements); + options = merge(options, { + pos: [300, 300], + rotation: 180, + radius: 100, + scale: .5, + duration: 250, + touches: 2 + }); + + var touches = getTouches(options.pos, elements, options.touches); + triggerGesture(elements, touches, options, function() { + done && setTimeout(done, 25); + }); + } + }; + + // initial + if(window.PointerEvent || window.MSPointerEvent) { + Simulator.setType('pointer'); + } else { + Simulator.setType('touch'); + Simulator.events.touch.fakeSupport(); + } + + window.Simulator = Simulator; +})(); + +// init setup +Simulator.setType("touch"); +Simulator.events.touch.fakeSupport(); + +export default Simulator; diff --git a/test/assets/module/util.ts b/test/assets/module/util.ts index b1d9067b2..13f99f9a4 100644 --- a/test/assets/module/util.ts +++ b/test/assets/module/util.ts @@ -5,9 +5,7 @@ /* eslint-disable */ // @ts-nocheck import {window} from "./browser"; - -// fake module replaced during test build to '/src/module/util.ts' by webpack.NormalModuleReplacementPlugin -import * as orgUtil from "../../test/assets/module/fake"; +import * as orgUtil from "../../../src/module/util"; export const { addCssRules, @@ -60,6 +58,11 @@ export const { tplProcess } = orgUtil; +// specify fake values +const fakeUtil = { + isTabVisible: () => true +}; + // Expose to global // To mock return value, set returned value setting value // ex) To mock 'convertInputType' to return true: @@ -68,7 +71,7 @@ window.$$TEST$$ = {}; function getMock(name, ...args) { return name in window.$$TEST$$ ? - window.$$TEST$$[name] : orgUtil[name](...args); + window.$$TEST$$[name] : fakeUtil[name]?.(...args) ?? orgUtil[name](...args); } export function convertInputType(...args) { diff --git a/test/assets/util.ts b/test/assets/util.ts index 7905df226..16fe7961a 100644 --- a/test/assets/util.ts +++ b/test/assets/util.ts @@ -4,7 +4,7 @@ */ /* eslint-disable */ // @ts-nocheck -/* global sandbox, window */ +/* global window */ import bb from "../../src/"; import { doDrag, @@ -64,7 +64,9 @@ function generate(args, raw = false) { inputType = "touch"; } - window.$$TEST$$.convertInputType = inputType; + if (window?.$$TEST$$) { + window.$$TEST$$.convertInputType = inputType; + } } chart = bb.generate(args); @@ -97,6 +99,30 @@ const print = { } } +function sandbox(obj: string | HTMLDivElement, prop?): HTMLDivElement { + var tmp = document.createElement("div"); + tmp.className = "_tempSandbox_"; + + if (typeof obj === "string") { + tmp.id = obj; + } else { + tmp.id = "sandbox"; + } + + if (typeof obj === "object" || typeof prop === "object") { + var attrs = typeof prop === "object" ? prop : obj; + for(var p in attrs) { + if(/class|className/.test(p)) { + tmp.setAttribute(p, attrs[p] + " _tempSandbox_"); + } else { + tmp.setAttribute(p, attrs[p]); + } + } + } + + return document.body.appendChild(tmp); +} + export default { destroyAll, doDrag, @@ -108,5 +134,6 @@ export default { parseNum, parseSvgPath, print, + sandbox, simulator }; diff --git a/test/esm/bar-spec.ts b/test/esm/bar-spec.ts index b9a5419a9..6c38ae003 100644 --- a/test/esm/bar-spec.ts +++ b/test/esm/bar-spec.ts @@ -4,7 +4,7 @@ */ /* eslint-disable */ /* global describe, beforeEach, it, expect */ -import {expect} from "chai"; +import {beforeEach, beforeAll, describe, expect, it} from "vitest"; import sinon from "sinon"; import bb, {bar, zoom} from "../../src/index.esm"; import util from "../assets/util"; @@ -78,7 +78,7 @@ describe("ESM bar", function() { }); describe("Focus grid line: on mobile", () => { - before(() => { + beforeAll(() => { chart = util.generate({ data: { type: bar(), diff --git a/test/esm/donut-spec.ts b/test/esm/donut-spec.ts index 3a7f40973..0a3c27650 100644 --- a/test/esm/donut-spec.ts +++ b/test/esm/donut-spec.ts @@ -4,7 +4,7 @@ */ /* eslint-disable */ /* global describe, beforeEach, it, expect */ -import {expect} from "chai"; +import {beforeEach, describe, expect, it} from "vitest"; import bb, {donut} from "../../src/index.esm"; describe("ESM donut", function() { @@ -32,7 +32,7 @@ describe("ESM donut", function() { chart = bb.generate(args); }); - it("should tooltip.hide() work", done => { + it("should tooltip.hide() work", () => new Promise(done => { const {internal} = chart; const {hideGridFocus} = internal; @@ -48,9 +48,9 @@ describe("ESM donut", function() { // revert internal method internal.hideGridFocus = hideGridFocus; - done(); - }, 500); - }); + done(1); + }, 300); + })); it("shouldn't throw error on call of tooltip API.", () => { delete chart.internal.config.axis_y_label; diff --git a/test/esm/esm-error-spec.ts b/test/esm/esm-error-spec.ts index f5d72fa84..a56def22a 100644 --- a/test/esm/esm-error-spec.ts +++ b/test/esm/esm-error-spec.ts @@ -4,7 +4,7 @@ */ /* eslint-disable */ /* global describe, beforeEach, it, expect */ -import {expect} from "chai"; +import {describe, expect, it} from "vitest"; import {bb} from "../../src/index.esm"; import {TYPE, TYPE_METHOD_NEEDED} from "../../src/config/const"; import {camelize} from "../../src/module/util"; @@ -84,9 +84,9 @@ describe("ESM-ERROR check", function() { // recover the last deleted prototype method args.onbeforeinit = function() { - Object.getPrototypeOf(this.internal)[fn.name] = fn; + Object.getPrototypeOf(this.internal)[fn?.name] = fn; } - bb.generate(args); + // bb.generate(args); }); }); \ No newline at end of file diff --git a/test/esm/esm-spec.ts b/test/esm/esm-spec.ts index 027f33fd9..f9020ca82 100644 --- a/test/esm/esm-spec.ts +++ b/test/esm/esm-spec.ts @@ -4,7 +4,7 @@ */ /* eslint-disable */ /* global describe, beforeEach, it, expect */ -import {expect} from "chai"; +import {describe, expect, it} from "vitest"; import * as bb from "../../src/index.esm"; import {$RADAR} from "../../src/config/classes"; diff --git a/test/esm/line-spec.ts b/test/esm/line-spec.ts index be5062390..c95a8d537 100644 --- a/test/esm/line-spec.ts +++ b/test/esm/line-spec.ts @@ -4,7 +4,7 @@ */ /* eslint-disable */ /* global describe, beforeEach, it, expect */ -import {expect} from "chai"; +import {beforeEach, describe, expect, it} from "vitest"; import bb, {line, zoom} from "../../src/index.esm"; describe("ESM line", function() { diff --git a/test/esm/radar-spec.ts b/test/esm/radar-spec.ts index b299872cc..668e3c697 100644 --- a/test/esm/radar-spec.ts +++ b/test/esm/radar-spec.ts @@ -4,7 +4,7 @@ */ /* eslint-disable */ /* global describe, beforeEach, it, expect */ -import {expect} from "chai"; +import {beforeEach, describe, expect, it} from "vitest"; import bb, {radar} from "../../src/index.esm"; import {$AXIS} from "../../src/config/classes"; @@ -49,4 +49,4 @@ describe("ESM radar", function() { expect(this.textContent).to.be.equal(categories[i]); }); }); -}); \ No newline at end of file +}); diff --git a/test/esm/scatter-spec.ts b/test/esm/scatter-spec.ts index fb4b0d18b..afe413e49 100644 --- a/test/esm/scatter-spec.ts +++ b/test/esm/scatter-spec.ts @@ -4,7 +4,7 @@ */ /* eslint-disable */ /* global describe, beforeEach, it, expect */ -import {expect} from "chai"; +import {beforeEach, describe, expect, it} from "vitest"; import sinon from "sinon"; import bb, {scatter} from "../../src/index.esm"; import util from "../assets/util"; diff --git a/test/esm/subchart-spec.ts b/test/esm/subchart-spec.ts index 4980c9d0a..fa1dca096 100644 --- a/test/esm/subchart-spec.ts +++ b/test/esm/subchart-spec.ts @@ -4,7 +4,7 @@ */ /* eslint-disable */ /* global describe, beforeEach, it, expect */ -import {expect} from "chai"; +import {beforeEach, describe, expect, it} from "vitest"; import bb, {line, subchart} from "../../src/index.esm"; describe("ESM subchart", function() { diff --git a/test/interactions/drag-spec.ts b/test/interactions/drag-spec.ts index bde1adf68..12a3cbb6e 100644 --- a/test/interactions/drag-spec.ts +++ b/test/interactions/drag-spec.ts @@ -4,7 +4,7 @@ */ /* eslint-disable */ /* global describe, beforeEach, it, expect */ -import {expect} from "chai"; +import {beforeEach, beforeAll, describe, expect, it} from "vitest"; import {$DRAG, $SELECT} from "../../src/config/classes"; import util from "../assets/util"; @@ -65,7 +65,7 @@ describe("DRAG", function() { expect(main.selectAll(`.${$DRAG.INCLUDED}`).size()).to.be.equal(3); }); - it("selected points should be unselected and drag area should be removed", done => { + it("selected points should be unselected and drag area should be removed", () => new Promise(done => { const {internal} = chart; const {main} = chart.$; @@ -81,13 +81,13 @@ describe("DRAG", function() { // dragging flag to be set false expect(internal.state.dragging).to.be.false; - done(); - }, 500); - }); + done(1); + }, 300); + })); }); describe("selection.draggable", () => { - before(() => { + beforeAll(() => { args = { data: { columns: [ @@ -102,7 +102,7 @@ describe("DRAG", function() { }; }); - it("should select data points by dragging event", done => { + it("should select data points by dragging event", () => new Promise(done => { const {internal: {$el}} = chart; util.doDrag($el.eventRect.node(), { @@ -117,15 +117,15 @@ describe("DRAG", function() { const selectedCircle = $el.chart.selectAll(`.${$SELECT.selectedCircles}`); expect(selectedCircle.size()).to.be.equal(2); - done(); - }, 500); - }); + done(1); + }, 300); + })); it("set options: data.type='bar'", () => { args.data.type = "bar"; }); - it("bar should be selected by drag", done => { + it("bar should be selected by drag", () => new Promise(done => { const {internal: {$el}} = chart; util.doDrag($el.eventRect.node(), { @@ -142,15 +142,15 @@ describe("DRAG", function() { expect(selected.size()).to.be.equal(4); - done(); - }, 500); - }); + done(1); + }, 300); + })); it("set options: data.selection.enabled=fasle", () => { args.data.selection.enabled = false; }); - it("shouldn't be selected by drag", done => { + it("shouldn't be selected by drag", () => new Promise(done => { const {internal: {$el}} = chart; util.doDrag($el.eventRect.node(), { @@ -166,8 +166,8 @@ describe("DRAG", function() { expect(selected.size()).to.be.equal(0); - done(); - }, 500); - }); + done(1); + }, 300); + })); }); }); diff --git a/test/interactions/interaction-spec.ts b/test/interactions/interaction-spec.ts index ff8edd6ea..50f5964e2 100644 --- a/test/interactions/interaction-spec.ts +++ b/test/interactions/interaction-spec.ts @@ -5,7 +5,7 @@ /* eslint-disable */ // @ts-nocheck /* global describe, beforeEach, it, expect */ -import {expect} from "chai"; +import {beforeEach, beforeAll, afterAll, describe, expect, it} from "vitest"; import sinon from "sinon"; import {select as d3Select} from "d3-selection"; import util from "../assets/util"; @@ -21,7 +21,7 @@ describe("INTERACTION", () => { describe("generate event rects", () => { describe("custom x #1", () => { - before(() => { + beforeAll(() => { args = { data: { x: "x", @@ -50,7 +50,7 @@ describe("INTERACTION", () => { }); describe("custom x #2", () => { - before(() => { + beforeAll(() => { args = { data: { x: "x", @@ -78,7 +78,7 @@ describe("INTERACTION", () => { }); describe("timeseries #1", () => { - before(() => { + beforeAll(() => { args = { data: { x: "x", @@ -102,7 +102,7 @@ describe("INTERACTION", () => { }); describe("timeseries #2", () => { - before(() => { + beforeAll(() => { args = { data: { x: "x", @@ -128,7 +128,7 @@ describe("INTERACTION", () => { }); describe("timeseries #3", () => { - before(() => { + beforeAll(() => { args = { data: { x: "x", @@ -171,7 +171,7 @@ describe("INTERACTION", () => { }); describe("timeseries #4", () => { - before(() => { + beforeAll(() => { args = { data: { x: "x", @@ -214,7 +214,7 @@ describe("INTERACTION", () => { }); describe("timeseries #5", () => { - before(() => { + beforeAll(() => { args = { data: { x: "x", @@ -264,7 +264,7 @@ describe("INTERACTION", () => { }); }); - it("check changes when 'sample' data is hidden", done => { + it("check changes when 'sample' data is hidden", () => new Promise(done => { // when chart.toggle("sample"); @@ -285,13 +285,13 @@ describe("INTERACTION", () => { expect(d.index).to.be.equal(i); }); - done(); - }, 500); - }); + done(1); + }, 300); + })); }); describe("indexed", () => { - before(() => { + beforeAll(() => { args = { data: { columns: [ @@ -318,7 +318,7 @@ describe("INTERACTION", () => { }); describe("flow", () => { - before(() => { + beforeAll(() => { args = { data: { x: "x", @@ -339,7 +339,7 @@ describe("INTERACTION", () => { }; }); - it("check rect & data points generated after flow correctly", done => { + it("check rect & data points generated after flow correctly", () => new Promise(done => { setTimeout(() => { chart.flow({ columns: [ @@ -368,11 +368,11 @@ describe("INTERACTION", () => { }); }); - done(); + done(1); } }); - }, 500); - }); + }, 300); + })); }); }); }); @@ -385,7 +385,7 @@ describe("INTERACTION", () => { const spyOver = sinon.spy((d, element) => itemOver.push({d, element})); const spyOut = sinon.spy((d, element) => itemOut.push({d, element})); - before(() => { + beforeAll(() => { args = { data: { columns: [ @@ -405,7 +405,7 @@ describe("INTERACTION", () => { spyOut.resetHistory(); }); - it("Callbacks were called correctly with its arguments?", done => { + it("Callbacks were called correctly with its arguments?", () => new Promise(done => { setTimeout(() => { const index = 1; const rect = chart.internal.$el.eventRect.node(); @@ -433,9 +433,9 @@ describe("INTERACTION", () => { expect(itemOut[i].element).to.be.deep.equal(v.element); }); - done(); - }, 500); - }); + done(1); + }, 300); + })); it("set options data.groups / tooltip.grouped=false", () => { args.data.groups = [["data1", "data2"]]; @@ -443,7 +443,7 @@ describe("INTERACTION", () => { args.point = {r:5}; }); - it("Tooltip grouped false: Callbacks were called correctly with its arguments?", done => { + it("Tooltip grouped false: Callbacks were called correctly with its arguments?", () => new Promise(done => { setTimeout(() => { const index = 2; @@ -461,11 +461,11 @@ describe("INTERACTION", () => { expect(itemOut[i].element).to.be.deep.equal(v.element); }); - done(); - }, 500); - }); + done(1); + }, 300); + })); - it("Overlapped circles: Callbacks were called correctly with its arguments?", done => { + it("Overlapped circles: Callbacks were called correctly with its arguments?", () => new Promise(done => { setTimeout(() => { const index = 3; @@ -483,9 +483,9 @@ describe("INTERACTION", () => { expect(itemOut.some(t => t.element === v.element)).to.be.true; }); - done(); - }, 500); - }); + done(1); + }, 300); + })); it("set options", () => { args = { @@ -512,7 +512,7 @@ describe("INTERACTION", () => { }; }); - it("callback should called correctly on same x Axis for bar type.", done => { + it("callback should called correctly on same x Axis for bar type.", () => new Promise(done => { new Promise(resolve => { util.hoverChart(chart, "mousemove", { clientX: 360, @@ -560,11 +560,11 @@ describe("INTERACTION", () => { expect(expectedFlow.out[i]).to.be.equal(v.id); }); - done(); + done(1); }); - }); + })); - it("should focused/defocused state class set & unset correctly.", done => { + it("should focused/defocused state class set & unset correctly.", () => new Promise(done => { new Promise(resolve => { util.hoverChart(chart, "mousemove", { clientX: 360, @@ -590,16 +590,16 @@ describe("INTERACTION", () => { expect(d.index).to.be.equal(2); }); - done(); + done(1); }); - }); + })); }); describe("check for data.onclick", () => { let clicked = false; let data; - before(() => { + beforeAll(() => { args = { data: { x: "x", @@ -901,7 +901,7 @@ describe("INTERACTION", () => { let clicked = false; let data; - before(() => { + beforeAll(() => { args = { data: { columns: [ @@ -922,7 +922,7 @@ describe("INTERACTION", () => { }; }); - it("should be called data.oncick", done => { + it("should be called data.oncick", () => new Promise(done => { new Promise((resolve, reject) => { args.onrendered = resolve; @@ -950,13 +950,13 @@ describe("INTERACTION", () => { name: 'data2' }); - done(); + done(1); }); - }); + })); }); describe("check for event binding", () => { - before(() => { + beforeAll(() => { args = { data: { x: "x", @@ -1052,7 +1052,7 @@ describe("INTERACTION", () => { }); describe("check for data.selection", () => { - before(() => { + beforeAll(() => { args = { data: { columns: [ @@ -1091,7 +1091,7 @@ describe("INTERACTION", () => { describe("check for touch move selection #1", () => { const selection = []; - before(() => { + beforeAll(() => { // Given args = { size: { @@ -1127,7 +1127,7 @@ describe("INTERACTION", () => { expect(chart.internal.state.inputType).to.be.equal("touch"); }); - it("showed each data points tooltip?", done => { + it("showed each data points tooltip?", () => new Promise(done => { util.simulator(chart.internal.$el.eventRect.node(), { pos: [250,150], deltaX: -200, @@ -1135,15 +1135,15 @@ describe("INTERACTION", () => { duration: 500, }, () => { expect(selection).to.deep.equal([5, 4, 3, 2, 1, 0]); - done(); + done(1); }); - }); + })); it("set options zoom.enabled=true", () => { args.zoom = {enabled: true}; }); - it("showed each data points tooltip?", done => { + it("showed each data points tooltip?", () => new Promise(done => { chart.tooltip.show({x:1}); chart.$.tooltip.selectAll(".value").each(function(d, i) { @@ -1157,15 +1157,15 @@ describe("INTERACTION", () => { duration: 500, }, () => { expect(selection).to.deep.equal([5, 4, 3, 2, 1, 0]); - done(); + done(1); }); - }); + })); it("set option onresized", () => { args.onresized = sinon.spy(); }); - it("check if tooltip visibility maintained and position updated after resize", done => { + it("check if tooltip visibility maintained and position updated after resize", () => new Promise(done => { let left; new Promise(resolve => { @@ -1191,12 +1191,12 @@ describe("INTERACTION", () => { expect(args.onresized.calledOnce).to.be.true; expect(parseInt(chart.$.tooltip.style("left"))).to.be.above(left); - done(); + done(1); }, 300); }); - }); + })); - it("check if data point radius size roll back after hide API is called", done => { + it("check if data point radius size roll back after hide API is called", () => new Promise(done => { const x = 2; chart.tooltip.show({x}); chart.tooltip.hide(); @@ -1205,16 +1205,16 @@ describe("INTERACTION", () => { const points = chart.$.circles.filter(`.${$CIRCLE.circle}-${x}`); expect(+points.attr("r")).to.be.equal(chart.config("point.r")); - done(); + done(1); }, 100); - }); + })); }); }); describe("check for touch move selection #2", () => { const selection = []; - before(() => { + beforeAll(() => { args = { data: { columns: [ @@ -1229,7 +1229,7 @@ describe("INTERACTION", () => { }; }); - it("x focus grid position & visibility should be maintained after resize", done => { + it("x focus grid position & visibility should be maintained after resize", () => new Promise(done => { new Promise(resolve => { // when util.simulator(chart.internal.$el.eventRect.node(), { @@ -1252,10 +1252,10 @@ describe("INTERACTION", () => { expect(x).to.be.equal(+xGridFocus.attr("x2")); expect(xGridFocus.style("visibility")).to.be.equal("visible"); - done(); - }, 500); + done(1); + }, 300); }); - }); + })); it("set option grid.focus.show=false", () => { args.grid = { @@ -1274,7 +1274,7 @@ describe("INTERACTION", () => { const spy1 = sinon.spy(); const spy2 = sinon.spy(); - before(() => { + beforeAll(() => { args = { data: { columns: [ @@ -1321,7 +1321,7 @@ describe("INTERACTION", () => { args.interaction.inputType.touch = true; }); - it("should be called callbacks for touch events", done => { + it("should be called callbacks for touch events", () => new Promise(done => { const {internal: {$el, callOverOutForTouch}} = chart; callOverOutForTouch.last = null; @@ -1335,9 +1335,9 @@ describe("INTERACTION", () => { expect(spy1.callCount).to.be.equal(4); expect(spy2.calledTwice).to.be.true; - done(); + done(1); }); - }); + })); it("set options data.type=radar", () => { args.data.type = "radar"; @@ -1363,7 +1363,7 @@ describe("INTERACTION", () => { }); describe("check for arc data name", () => { - before(() => { + beforeAll(() => { args = { data: { columns: [ @@ -1389,7 +1389,7 @@ describe("INTERACTION", () => { }); describe("check for bubble null data", () => { - before(() => { + beforeAll(() => { args = { data: { json: [ diff --git a/test/interactions/interaction-touch-spec.ts b/test/interactions/interaction-touch-spec.ts index 0f3268fab..28e624d87 100644 --- a/test/interactions/interaction-touch-spec.ts +++ b/test/interactions/interaction-touch-spec.ts @@ -5,7 +5,8 @@ /* eslint-disable */ // @ts-nocheck /* global describe, beforeEach, it, expect */ -import {expect} from "chai"; +import {beforeEach, beforeAll, afterAll, describe, expect, it} from "vitest"; +import sinon from "sinon"; import util from "../assets/util"; import {fireEvent} from "../assets/helper"; @@ -22,7 +23,7 @@ describe("INTERACTION: touch", () => { }); describe("generate event rects", () => { - before(() => { + beforeAll(() => { args = { data: { columns: [ @@ -39,7 +40,7 @@ describe("INTERACTION: touch", () => { } }); - it("when touch event fired on svg element, should be in unselected mode.", done => { + it("when touch event fired on svg element, should be in unselected mode.", () => new Promise(done => { // when chart.tooltip.show({index: 1}); @@ -51,9 +52,9 @@ describe("INTERACTION: touch", () => { }, () => { expect(chart.$.tooltip.style("display")).to.be.equal("none"); - done(); + done(1); }); - }); + })); it("set options: data.xs", () => { args = { @@ -100,7 +101,7 @@ describe("INTERACTION: touch", () => { describe("arc type", () => { const spy = sinon.spy(); - before(() => { + beforeAll(() => { args = { data: { columns: [ diff --git a/test/interactions/subchart-spec.ts b/test/interactions/subchart-spec.ts index a038f2b94..cb4bf90f1 100644 --- a/test/interactions/subchart-spec.ts +++ b/test/interactions/subchart-spec.ts @@ -4,7 +4,7 @@ */ /* eslint-disable */ /* global describe, beforeEach, it, expect */ -import {expect} from "chai"; +import {beforeEach, beforeAll, describe, expect, it} from "vitest"; import util from "../assets/util"; import {$AREA, $AXIS, $BAR, $FOCUS, $LINE, $SUBCHART} from "../../src/config/classes"; @@ -17,7 +17,7 @@ describe("SUBCHART", () => { }); describe("generate subchart", () => { - before(() => { + beforeAll(() => { args = { data: { x: "x", @@ -135,7 +135,7 @@ describe("SUBCHART", () => { }); describe("subchart x axis tick format", () => { - before(() => { + beforeAll(() => { args = { data: { x: "x", @@ -203,7 +203,7 @@ describe("SUBCHART", () => { }); describe("subchart selection", () => { - before(() => { + beforeAll(() => { args = { data: { columns: [ @@ -219,7 +219,7 @@ describe("SUBCHART", () => { }; }); - const checkSelection = done => { + const checkSelection = () => new Promise(done => { const selection = chart.$.svg.select(".selection"); const baseWidth = 100; @@ -235,9 +235,10 @@ describe("SUBCHART", () => { setTimeout(() => { expect(+selection.attr("width")).to.be.below(baseWidth); expect(chart.internal.scale.x.domain()).to.not.deep.equal(chart.internal.orgXDomain); - done(); + + done(1); }, 300); - }; + }); it("check initial subchart range selection", () => { const currRange = chart.internal.scale.x.domain().map(Math.round); @@ -261,7 +262,7 @@ describe("SUBCHART", () => { }); describe("the extent", () => { - before(() => { + beforeAll(() => { args = { data: { x: "x", @@ -328,7 +329,7 @@ describe("SUBCHART", () => { }); describe("subchart rendering", () => { - before(() => { + beforeAll(() => { args = { data: { columns: [ @@ -475,7 +476,7 @@ describe("SUBCHART", () => { }); describe("subchart with touch inputType", () => { - before(() => { + beforeAll(() => { args = { data: { columns: [ @@ -518,7 +519,7 @@ describe("SUBCHART", () => { }); describe("x Axis tick shouldn't be transitioning", () => { - before(() => { + beforeAll(() => { args = { data: { columns: [ @@ -538,7 +539,7 @@ describe("SUBCHART", () => { expect(transition.every(v => v)).to.be.true; }); - it("transition config should be set to true after .load() API is called", done => { + it("transition config should be set to true after .load() API is called", () => new Promise(done => { chart.load({ columns: [ ["data3", 130, 120, 150, 140, 160, 150], @@ -549,15 +550,15 @@ describe("SUBCHART", () => { const transition = [config.withoutTransition, config.noTransition]; expect(transition.every(v => v)).to.be.true; - done(); + done(1); } }); - }) + })); }); describe("dynamic data load via .load() API", () => { - before(() => { + beforeAll(() => { args = { data: { columns: [ @@ -570,7 +571,7 @@ describe("SUBCHART", () => { }; }); - it("shouldn't generate duplicated nodes #1", done => { + it("shouldn't generate duplicated nodes #1", () => new Promise(done => { // when chart.load({ columns: [ @@ -582,12 +583,12 @@ describe("SUBCHART", () => { this.internal.$el.subchart.main.selectAll(`.${$LINE.line}-data1`).size() ).to.be.equal(1); - done(); + done(1); } }); - }); + })); - it("shouldn't generate duplicated nodes #2", done => { + it("shouldn't generate duplicated nodes #2", () => new Promise(done => { // when chart.load({ columns: [ @@ -605,14 +606,14 @@ describe("SUBCHART", () => { main.selectAll(`.${$LINE.line}-data2`).size() ).to.be.equal(1); - done(); + done(1); } }); - }); + })); }); describe("subchart handle", () => { - before(() => { + beforeAll(() => { args = { data: { columns: [ diff --git a/test/interactions/zoom-spec.ts b/test/interactions/zoom-spec.ts index 7cffca10d..6e1538d70 100644 --- a/test/interactions/zoom-spec.ts +++ b/test/interactions/zoom-spec.ts @@ -4,7 +4,7 @@ */ /* eslint-disable */ /* global describe, beforeEach, it, expect */ -import {expect} from "chai"; +import {beforeEach, beforeAll, afterAll, describe, expect, it} from "vitest"; import {zoomTransform as d3ZoomTransform} from "d3-zoom"; import sinon from "sinon"; import {$AXIS, $EVENT, $GRID, $REGION, $ZOOM} from "../../src/config/classes"; @@ -19,7 +19,7 @@ describe("ZOOM", function() { }); describe("default extent", () => { - before(() => { + beforeAll(() => { args = { data: { columns: [ @@ -90,7 +90,7 @@ describe("ZOOM", function() { let zoomDomain; let eventOrder: string[] = []; - before(() => { + beforeAll(() => { args = { size: { width: 300, @@ -125,7 +125,7 @@ describe("ZOOM", function() { expect(coords[2].x).to.be.above(xValue); }); - it("check for zoom event callbacks", done => { + it("check for zoom event callbacks", () => new Promise(done => { const {$el: {eventRect}} = chart.internal; const rect = eventRect.node(); @@ -151,7 +151,7 @@ describe("ZOOM", function() { resolve("--> onzoomstart callback called!"); } - }, 500); + }, 300); }); }).then((msg) => { console.log(msg); @@ -171,7 +171,7 @@ describe("ZOOM", function() { resolve("--> onzoom callback called!"); }; - }, 500); + }, 300); }) }).then((msg) => { console.log(msg); @@ -179,9 +179,9 @@ describe("ZOOM", function() { expect(spyOnZoomEnd.called).to.be.true; - done(); + done(1); }); - }); + })); it("check for data zoom", () => { const {coords} = chart.internal.state.eventReceiver; @@ -263,7 +263,7 @@ describe("ZOOM", function() { }; }); - it("check on zoom event triggering during drag zooming", done => { + it("check on zoom event triggering during drag zooming", () => new Promise(done => { const {$: {main}, internal: {scale, $el}} = chart; const eventRect = $el.eventRect.node();; @@ -284,7 +284,7 @@ describe("ZOOM", function() { }, chart); resolve(true); - }, 500); + }, 300); }); }).then(() => { setTimeout(() => { @@ -301,14 +301,14 @@ describe("ZOOM", function() { // the call of .unzoom() shouldn't be triggering zooming event expect(eventOrder).to.be.deep.equal(["start", "zoom", "end"]); - done(); - }, 500); + done(1); + }, 300); }); - }); + })); }); describe("zoom wheel", () => { - before(() => { + beforeAll(() => { args = { size: { width: 300, @@ -388,7 +388,7 @@ describe("ZOOM", function() { }); }); - it("grid also should scale", done => { + it("grid also should scale", () => new Promise(done => { const getX = selector => chart.$.main.select(selector).node().getBoundingClientRect().x; // when zoom in @@ -401,11 +401,11 @@ describe("ZOOM", function() { getX(`.${$AXIS.axisX} g.tick:nth-child(5) line`) ); - done(); + done(1); }, 350); - }); + })); - it("should eventReceiver size to be updated", done => { + it("should eventReceiver size to be updated", () => new Promise(done => { const {internal: {$el, state: {eventReceiver}}} = chart; const eventRect = $el.eventRect.node(); const {w} = eventReceiver.coords[1]; @@ -429,13 +429,13 @@ describe("ZOOM", function() { chart.tooltip.show({x:2}); expect(parseInt(chart.$.tooltip.style("left"), 10)).to.be.below(tooltipLeft); - done(); - }, 500); - }) + done(1); + }, 300); + })); }); describe("wheel zoom doesn't stick", () => { - before(() => { + beforeAll(() => { args = { size: { width: 300, @@ -485,7 +485,7 @@ describe("ZOOM", function() { }) } - it("check doesn't stick left", (done) => { + it("check doesn't stick left", () => new Promise(done => { const {internal: {$el}} = chart; const eventRect = $el.eventRect.node(); @@ -496,36 +496,37 @@ describe("ZOOM", function() { drag({x: 150, y: 150}, {x: 0, y: 130}, {x: 0, y: 130}).then(() => { expect(d3ZoomTransform(eventRect).x).to.approximately(-150, 0.01); expect(chart.zoom()[0]).to.greaterThan(0); - done(); + + done(1); }); }); - }); + })); - it("check doesn't stick right", (done) => { + it("check doesn't stick right", () => new Promise(done => { chart.zoom([4, 5]); drag({x: 150, y: 150}, {x: -2000, y: 120}, {x: -2000, y: 120}).then(() => { expect(chart.zoom()[1]).to.greaterThan(5); drag({x: 150, y: 150}, {x: 300, y: 130}, {x: 300, y: 130}).then(() => { expect(chart.zoom()[1]).to.lessThan(5); - done(); + done(1); }); }); - }); + })); it("set rotated", () => { args.axis = {rotated: true}; }); - it("check doesn't stick rotated", (done) => { + it("check doesn't stick rotated", () => new Promise(done => { chart.zoom([0, 3]); drag({x: 150, y: 150}, {x: 150, y: 2000}, {x: 150, y: 2000}).then(() => { expect(chart.zoom()[0]).to.approximately(0, 0.1); drag({x: 150, y: 150}, {x: 150, y: 0}, {x: 150, y: 0}).then(() => { expect(chart.zoom()[0]).to.greaterThan(0); - done(); + done(1); }); }); - }) + })); }); @@ -533,7 +534,7 @@ describe("ZOOM", function() { const spy = sinon.spy(); let clickedData; - before(() => { + beforeAll(() => { args = { size: { width: 300, @@ -569,7 +570,7 @@ describe("ZOOM", function() { expect(internal.onZoomEnd()).to.not.throw; }); - it("check for data zoom", done => { + it("check for data zoom", () => new Promise(done => { const {eventReceiver} = chart.internal.state; const xValue = eventReceiver.coords[2].x; @@ -578,9 +579,9 @@ describe("ZOOM", function() { setTimeout(() => { expect(eventReceiver.coords[2].x).to.be.above(xValue); - done(); + done(1); }, 350); - }); + })); it("check for x axis resize after zoom", () => { const main = chart.$.main; @@ -697,7 +698,7 @@ describe("ZOOM", function() { expect(clickedData).to.not.be.undefined; }); - it("shouldn't throw error on '.flow() -> .zoom()' flow calls", done => { + it("shouldn't throw error on '.flow() -> .zoom()' flow calls", () => new Promise(done => { // when flow chart.flow({ columns: [ @@ -707,14 +708,14 @@ describe("ZOOM", function() { duration: 0, done: function() { expect(this.zoom([1,2])).to.not.throw; - done(); + done(1); } }); - }); + })); }); describe("zoom on regions", () => { - before(() => { + beforeAll(() => { args = { zoom: { enabled: true, @@ -743,7 +744,7 @@ describe("ZOOM", function() { }; }); - it("region area should be resized on zoom", done => { + it("region area should be resized on zoom", () => new Promise(done => { const main = chart.$.main; const regionRect = main.select(`.${$REGION.region}-0 rect`); const lineWidth = util.getBBox(chart.$.line.lines).width; @@ -761,13 +762,13 @@ describe("ZOOM", function() { expect(+regionRect.attr("x")).to.be.below(size.x); expect(+util.getBBox(chart.$.line.lines).width).to.be.above(lineWidth); - done(); + done(1); }, 350); - }); + })); }); describe("zoom scale consistency for dragging", () => { - before(() => { + beforeAll(() => { args = { data: { columns: [ @@ -784,7 +785,7 @@ describe("ZOOM", function() { }; }); - it("zoom scale should maintained on dragging interaction", done => { + it("zoom scale should maintained on dragging interaction", () => new Promise(done => { const internal = chart.internal; const {main} = internal.$el; const zoomDomain = [0,2]; @@ -813,7 +814,7 @@ describe("ZOOM", function() { }, chart); resolve(true); - }, 500); + }, 300); }); }).then(() => { setTimeout(() => { @@ -824,14 +825,14 @@ describe("ZOOM", function() { //expect(internal.scale.x.domain()).to.be.deep.equal(zoomedDomain); - done(); - }, 500); + done(1); + }, 300); }); - }); + })); }); describe("zoom tick fit", () => { - before(() => { + beforeAll(() => { args = { data: { x: "x", @@ -906,7 +907,7 @@ describe("ZOOM", function() { }); describe("zoom for rotated axis", () => { - before(() => { + beforeAll(() => { args = { size: { width: 300, @@ -929,7 +930,7 @@ describe("ZOOM", function() { }; }); - it("check on drag zooming", done => { + it("check on drag zooming", () => new Promise(done => { const {$: {main}, internal: {scale, $el}} = chart; const eventRect = $el.eventRect.node();; @@ -960,7 +961,7 @@ describe("ZOOM", function() { }, chart); resolve(true); - }, 500); + }, 300); }); }).then(() => { setTimeout(() => { @@ -983,10 +984,10 @@ describe("ZOOM", function() { expect(v).to.be[i ? "below" : "above"](zoomedDomain[i]); }); - done(); - }, 500); + done(1); + }, 300); }); - }); + })); it("set options", () => { args = { @@ -1106,7 +1107,7 @@ describe("ZOOM", function() { }); describe("zoom on legend toggle", () => { - before(() => { + beforeAll(() => { args = { data: { columns: [ @@ -1143,7 +1144,7 @@ describe("ZOOM", function() { }); describe("zoom rescale culling", () => { - before(() => { + beforeAll(() => { args = { data: { columns: [ @@ -1178,7 +1179,7 @@ describe("ZOOM", function() { }); describe("bar's width based on ratio", () => { - before(() => { + beforeAll(() => { args = { data: { x: "x", @@ -1258,7 +1259,7 @@ describe("ZOOM", function() { }; }); - it("bar width should scales as zoom scales", done => { + it("bar width should scales as zoom scales", () => new Promise(done => { const {bars} = chart.$.bar; const width: number[] = []; @@ -1281,13 +1282,13 @@ describe("ZOOM", function() { last = w; }); - done(); + done(1); }, 300); - }); + })); }); describe("bar's width with x Axis min/max", () => { - before(() => { + beforeAll(() => { args = { data: { x: "x", @@ -1312,7 +1313,7 @@ describe("ZOOM", function() { }; }); - it("check bar's width during zoom in/out: timeseries", done => { + it("check bar's width during zoom in/out: timeseries", () => new Promise(done => { const width: number[] = []; const {bar: {bars}} = chart.$; @@ -1341,9 +1342,9 @@ describe("ZOOM", function() { expect(this.getBoundingClientRect().width).to.be.equal(width[i]); }); - done(); + done(1); }); - }); + })); it("set options: axis.x.type='indexed'", () => { args = { @@ -1367,7 +1368,7 @@ describe("ZOOM", function() { } }); - it("check bar's width during zoom in/out: indexed", done => { + it("check bar's width during zoom in/out: indexed", () => new Promise(done => { const width: number[] = []; const {bar: {bars}} = chart.$; @@ -1396,13 +1397,13 @@ describe("ZOOM", function() { expect(this.getBoundingClientRect().width).to.be.equal(width[i]); }); - done(); + done(1); }); - }); + })); }); describe("Multiple Xs zooming", () => { - before(() => { + beforeAll(() => { args = { "data": { "columns": [ @@ -1551,7 +1552,7 @@ describe("ZOOM", function() { }); describe("with API combination", () => { - before(() => { + beforeAll(() => { args = { data: { columns: [ @@ -1568,7 +1569,7 @@ describe("ZOOM", function() { }; }); - it("shouldn't be throwing error during the zoom", done => { + it("shouldn't be throwing error during the zoom", () => new Promise(done => { const line = chart.$.line.lines.node(); const eventRect = chart.internal.$el.eventRect.node(); @@ -1587,13 +1588,13 @@ describe("ZOOM", function() { setTimeout(() => { expect(line.getTotalLength()).to.be.below(len); - done(); + done(1); }, 350); - }); + })); }); describe("with region API combination", () => { - before(() => { + beforeAll(() => { args = { data: { type: "area", diff --git a/test/internals/axis-spec.ts b/test/internals/axis-spec.ts index e12cceda6..732be24e3 100644 --- a/test/internals/axis-spec.ts +++ b/test/internals/axis-spec.ts @@ -4,7 +4,7 @@ */ /* eslint-disable */ // @ts-nocheck -import {expect} from "chai"; +import {beforeEach, beforeAll, afterAll, describe, expect, it} from "vitest"; import {select as d3Select} from "d3-selection"; import {format as d3Format} from "d3-format"; import {timeMinute as d3TimeMinute} from "d3-time"; @@ -51,7 +51,7 @@ describe("AXIS", function() { }); describe("axis.x.tick.count", () => { - after(() => { + afterAll(() => { args.axis.x.type = "indexed"; args.axis.x.tick.count = undefined; }); @@ -127,7 +127,7 @@ describe("AXIS", function() { describe("axis.y.tick.values", () => { const values = [100, 500]; - before(() => { + beforeAll(() => { args.axis.y.tick.values = values; }); @@ -156,7 +156,7 @@ describe("AXIS", function() { }); describe("tick values less than 0", () => { - before(() => { + beforeAll(() => { args = { data: { columns: [ @@ -183,7 +183,7 @@ describe("AXIS", function() { }); describe("tick values less than 0", () => { - before(() => { + beforeAll(() => { args = { data: { x: "x", @@ -210,7 +210,7 @@ describe("AXIS", function() { }); describe("y/y2 Axes tick.stepSize", () => { - before(() => { + beforeAll(() => { args = { data: { columns: [ @@ -288,7 +288,7 @@ describe("AXIS", function() { }); describe("axis label", () => { - before(() => { + beforeAll(() => { args = { data: { columns: [ @@ -353,7 +353,7 @@ describe("AXIS", function() { }); describe("axis outer label position", () => { - before(() => { + beforeAll(() => { args = { data: { x: "x", @@ -458,7 +458,7 @@ describe("AXIS", function() { }); describe("axis y timeseries", () => { - before(() => { + beforeAll(() => { args = { data: { columns: [ @@ -561,7 +561,7 @@ describe("AXIS", function() { describe("axis.x.tick.width", () => { describe("indexed x axis and y/y2 axis", () => { describe("not rotated", () => { - before(() => { + beforeAll(() => { args = { data: { columns: [ @@ -702,7 +702,7 @@ describe("AXIS", function() { }); describe("rotated", () => { - before(() => { + beforeAll(() => { args.axis.rotated = true; }); @@ -769,7 +769,7 @@ describe("AXIS", function() { describe("category axis", () => { describe("not rotated", () => { - before(() => { + beforeAll(() => { args = { data: { x: "x", @@ -853,7 +853,7 @@ describe("AXIS", function() { expect(() => chart.hide("data1")).to.not.throw(); }); - it("shouldn't be addede duplicated tooltip elements", done => { + it("shouldn't be addede duplicated tooltip <title> elements", () => new Promise(done => { chart.load({ columns: [ ["data1", 130, 120, 150, 140] @@ -863,14 +863,14 @@ describe("AXIS", function() { expect(d3Select(this).selectAll("title").size()).to.be.equal(1); }); - done(); + done(1); } }); - }); + })); }); describe("rotated", () => { - before(() => { + beforeAll(() => { args.axis.rotated = true; }); @@ -949,7 +949,7 @@ describe("AXIS", function() { describe("option used", () => { describe("as null", () => { - before(() => { + beforeAll(() => { args.axis.x.tick = { multiline: false }; @@ -965,7 +965,7 @@ describe("AXIS", function() { }); describe("as value", () => { - before(() => { + beforeAll(() => { args.axis.x.tick = { width: 150 }; @@ -1003,7 +1003,7 @@ describe("AXIS", function() { describe("with axis.x.tick.format", () => { const tickTexts = ["this is a very long tick text", "on category axis"]; - before(() => { + beforeAll(() => { args.axis.x.tick.format = () => tickTexts; }); @@ -1024,7 +1024,7 @@ describe("AXIS", function() { describe("tick text with '\n' to line break", () => { const tickText = "this is a very\nlong\ntick text"; - before(() => { + beforeAll(() => { args.axis.x.tick.format = () => tickText; }); @@ -1046,7 +1046,7 @@ describe("AXIS", function() { describe("axis.x.tick.format for category type", () => { const len = 3; - before(() => { + beforeAll(() => { args.axis.x.tick.format = (i, name) => name && name.substr(0, len); }); @@ -1062,7 +1062,7 @@ describe("AXIS", function() { }); describe("axis x height", () => { - before(() => { + beforeAll(() => { args = { data: { x: "x", @@ -1137,7 +1137,7 @@ describe("AXIS", function() { }); describe("axis.x.tick.tooltip", () => { - before(() => { + beforeAll(() => { args = { data: { x: "x", @@ -1188,7 +1188,7 @@ describe("AXIS", function() { describe("axis.x.tick.rotate", () => { describe("rotation > 0", () => { - before(() => { + beforeAll(() => { args = { data: { x: "x", @@ -1233,7 +1233,7 @@ describe("AXIS", function() { }); describe("rotation < 0", () => { - before(() => { + beforeAll(() => { args = { data: { x: "x", @@ -1316,7 +1316,7 @@ describe("AXIS", function() { } describe("`axis.x.type = category`", () => { - before(() => { + beforeAll(() => { args = { data: { x: "x", @@ -1508,7 +1508,7 @@ describe("AXIS", function() { }); }); - it("axis X should maintain its position on legend toggle", done => { + it("axis X should maintain its position on legend toggle", () => new Promise(done => { const axisXTransform = chart.$.main.select(`.${$AXIS.axisX}`).attr("transform"); // when @@ -1516,13 +1516,13 @@ describe("AXIS", function() { setTimeout(() => { expect(chart.$.main.select(`.${$AXIS.axisX}`).attr("transform")).to.be.equal(axisXTransform); - done(); + done(1); }) - }); + })); }); describe("`axis.x.type = timeseries`", () => { - before(() => { + beforeAll(() => { args = { data: { x: "x", @@ -1703,7 +1703,7 @@ describe("AXIS", function() { }); }); - it("axis X should maintain its position on legend toggle", done => { + it("axis X should maintain its position on legend toggle", () => new Promise(done => { const axisXTransform = chart.$.main.select(`.${$AXIS.axisX}`).attr("transform"); // when @@ -1711,14 +1711,14 @@ describe("AXIS", function() { setTimeout(() => { expect(chart.$.main.select(`.${$AXIS.axisX}`).attr("transform")).to.be.equal(axisXTransform); - done(); + done(1); }) - }); + })); }); }); describe("axis.y.tick.format", () => { - before(() => { + beforeAll(() => { args = { data: { columns: [ @@ -1747,7 +1747,7 @@ describe("AXIS", function() { describe("axis.y.tick.rotate", () => { describe("y Axis", () => { - before(() => { + beforeAll(() => { args = { data: { columns: [ @@ -1766,24 +1766,22 @@ describe("AXIS", function() { }; }); - it("should rotate tick texts", done => { - setTimeout(() => { - chart.$.main.selectAll(`.${$AXIS.axisY} g.tick`).each(function() { - const tick = d3Select(this); - const text = tick.select("text"); - const tspan = text.select("tspan"); - const transform: any = text.attr("transform"); + it("should rotate tick texts", () => new Promise(done => { + chart.$.main.selectAll(`.${$AXIS.axisY} g.tick`).each(function() { + const tick = d3Select(this); + const text = tick.select("text"); + const tspan = text.select("tspan"); + const transform: any = text.attr("transform"); - transform && - expect(Math.round(transform.replace(/[A-z()]/g, ""))).to.be.equal(args.axis.y.tick.rotate); + transform && + expect(Math.round(transform.replace(/[A-z()]/g, ""))).to.be.equal(args.axis.y.tick.rotate); - expect(text.attr("y")).to.be.equal("4"); - expect(parseFloat(tspan.attr("dx"))).to.be.closeTo(5.6, 0.5); - }); + expect(text.attr("y")).to.be.equal("4"); + expect(parseFloat(tspan.attr("dx"))).to.be.closeTo(5.6, 0.5); + }); - done(); - }, 1000); - }); + done(1); + })); it("should have automatically calculated y axis width", () => { const box = chart.$.main.select(`.${$AXIS.axisY}`) @@ -1794,7 +1792,7 @@ describe("AXIS", function() { }); describe("y2 Axis", () => { - before(() => { + beforeAll(() => { args = { data: { columns: [ @@ -1814,24 +1812,22 @@ describe("AXIS", function() { }; }); - it("should rotate tick texts", done => { - setTimeout(() => { - chart.$.main.selectAll(`.${$AXIS.axisY2} g.tick`).each(function() { - const tick = d3Select(this); - const text = tick.select("text"); - const tspan = text.select("tspan"); - const transform: any = text.attr("transform"); + it("should rotate tick texts", () => new Promise(done => { + chart.$.main.selectAll(`.${$AXIS.axisY2} g.tick`).each(function() { + const tick = d3Select(this); + const text = tick.select("text"); + const tspan = text.select("tspan"); + const transform: any = text.attr("transform"); - transform && - expect(Math.round(transform.replace(/[A-z()]/g, ""))).to.be.equal(args.axis.y2.tick.rotate); + transform && + expect(Math.round(transform.replace(/[A-z()]/g, ""))).to.be.equal(args.axis.y2.tick.rotate); - expect(+text.attr("y")).to.be.closeTo(-13, 0.5); - expect(parseFloat(tspan.attr("dx"))).to.be.closeTo(-5.6, 0.5); - }); + expect(+text.attr("y")).to.be.closeTo(-13, 0.5); + expect(parseFloat(tspan.attr("dx"))).to.be.closeTo(-5.6, 0.5); + }); - done(); - }, 1000); - }); + done(1); + })); it("should have automatically calculated y axis width", () => { const box = chart.$.main.select(`.${$AXIS.axisY2}`) @@ -1845,7 +1841,7 @@ describe("AXIS", function() { describe("axis.x.tick.fit", () => { describe("axis.x.tick.fit = true", () => { - before(() => { + beforeAll(() => { args = { data: { columns: [ @@ -1895,7 +1891,7 @@ describe("AXIS", function() { }); describe("axis.x.tick.fit = false", () => { - before(() => { + beforeAll(() => { args = { data: { columns: [ @@ -1959,7 +1955,7 @@ describe("AXIS", function() { describe("y/y2 Axis inner", () => { describe("axis.y.inner", () => { - before(() => { + beforeAll(() => { args = { data: { columns: [ @@ -2004,7 +2000,7 @@ describe("AXIS", function() { }); describe("axis.y2.inner", () => { - before(() => { + beforeAll(() => { args = { data: { columns: [ @@ -2050,7 +2046,7 @@ describe("AXIS", function() { }); describe("y/y2 Axis inverted", () => { - before(() => { + beforeAll(() => { args = { data: { columns: [ @@ -2159,7 +2155,7 @@ describe("AXIS", function() { }); describe("axis.rotated", () => { - before(() => { + beforeAll(() => { args = { data: { columns: [ @@ -2203,7 +2199,7 @@ describe("AXIS", function() { }); describe("axis tick visiblity", () => { - before(() => { + beforeAll(() => { args = { data: { x: "x", @@ -2288,7 +2284,7 @@ describe("AXIS", function() { }); describe("axis text on 'binary floating point'", () => { - before(() => { + beforeAll(() => { args = { data: { columns: [ @@ -2317,7 +2313,7 @@ describe("AXIS", function() { }); describe("axis text's position", () => { - before(() => { + beforeAll(() => { args = { data: { x: "x", @@ -2413,7 +2409,7 @@ describe("AXIS", function() { }); describe("when data is zero, unnecessary tick shouldn't be showing", () => { - before(() => { + beforeAll(() => { args = { data: { columns: [ @@ -2438,7 +2434,7 @@ describe("AXIS", function() { }); describe("Axis show", () => { - before(() => { + beforeAll(() => { args = { data: { columns: [ @@ -2468,7 +2464,7 @@ describe("AXIS", function() { }); }); - it("y Axis domain should update even is hidden", done => { + it("y Axis domain should update even is hidden", () => new Promise(done => { const yDomain = chart.internal.scale.y.domain(); // when @@ -2483,14 +2479,14 @@ describe("AXIS", function() { this.internal.scale.y.domain() ); - done(); + done(1); } }); - }); + })); }); describe("Multi axes", () => { - before(() => { + beforeAll(() => { args = { data: { columns: [ @@ -2688,7 +2684,7 @@ describe("AXIS", function() { }); describe("y Axis size", () => { - before(() => { + beforeAll(() => { args = { data: { columns: [ @@ -2775,7 +2771,7 @@ describe("AXIS", function() { }); describe("Axes tick culling", () => { - before(() => { + beforeAll(() => { args = { data: { columns: [ @@ -2886,7 +2882,7 @@ describe("AXIS", function() { } }); - it("tick text's culling visibility should work correctly", done => { + it("tick text's culling visibility should work correctly", () => new Promise(done => { // count visibility text nodes const countVisibility = () => { let visible = 0; @@ -2932,13 +2928,13 @@ describe("AXIS", function() { expect(visible).to.equal(6); expect(hidden).to.equal(0); - done(); + done(1); }); - }); + })); }); describe("Axes tick padding", () => { - before(() => { + beforeAll(() => { args = { data: { columns: [ @@ -2968,7 +2964,7 @@ describe("AXIS", function() { expect(translateX).to.be.closeTo(30.5, 1); }); - it("should work with axis.x.padding=10 option", done => { + it("should work with axis.x.padding=10 option", () => new Promise(done => { const option = { data: { x: "x", @@ -3001,12 +2997,12 @@ describe("AXIS", function() { // reaching at this point, means no issue happened expect(true).to.be.ok; - done(); + done(1); } }; util.generate(option); - }); + })); it("set options", () => { args = { @@ -3063,7 +3059,7 @@ describe("AXIS", function() { }); describe("Axis tick.values", () => { - before(() => { + beforeAll(() => { args = { data: { x: "x", @@ -3100,7 +3096,7 @@ describe("AXIS", function() { }); describe("axis min/max", () => { - before(() => { + beforeAll(() => { args = { data: { columns: [ @@ -3235,7 +3231,7 @@ describe("AXIS", function() { }); describe("x Axis padding: unit='px'", () => { - before(() => { + beforeAll(() => { args = { data: { columns: [ @@ -3309,7 +3305,7 @@ describe("AXIS", function() { }); describe("x Axis tick width size", () => { - before(() => { + beforeAll(() => { args = { data: { x: "x", @@ -3345,7 +3341,7 @@ describe("AXIS", function() { }); describe("Log axis type", () => { - before(() => { + beforeAll(() => { args = { data: { x: "x" , @@ -3416,7 +3412,7 @@ describe("AXIS", function() { }); describe("Axis interval", () => { - before(() => { + beforeAll(() => { args = { data: { type: "bar", @@ -3440,7 +3436,7 @@ describe("AXIS", function() { }); describe("Axis type combination", () => { - before(() => { + beforeAll(() => { args = { data: { x: "x", @@ -3505,7 +3501,7 @@ describe("AXIS", function() { }); describe("Axis x type localtime", () => { - before(() => { + beforeAll(() => { args = { data: { x: 'x', @@ -3550,7 +3546,7 @@ describe("AXIS", function() { }); describe("axis.tooltip", () => { - before(() => { + beforeAll(() => { args = { data: { columns: [ diff --git a/test/internals/axis-x-spec.ts b/test/internals/axis-x-spec.ts index 058e3d1bd..a88bfd34a 100644 --- a/test/internals/axis-x-spec.ts +++ b/test/internals/axis-x-spec.ts @@ -4,7 +4,7 @@ */ /* eslint-disable */ // @ts-nocheck -import {expect} from "chai"; +import {beforeEach, beforeAll, afterAll, describe, expect, it} from "vitest"; import {$AXIS} from "../../src/config/classes"; import util from "../assets/util"; @@ -151,7 +151,7 @@ describe("X AXIS", function() { }); describe("subchart", () => { - before(() => { + beforeAll(() => { args = { data: { columns: [ @@ -185,7 +185,7 @@ describe("X AXIS", function() { }); describe("zoom", () => { - before(() => { + beforeAll(() => { args = { data: { columns: [ @@ -229,7 +229,7 @@ describe("X AXIS", function() { }); describe("x Axis dimension", () => { - before(() => { + beforeAll(() => { args = { data: { x: "x", @@ -290,7 +290,7 @@ describe("X AXIS", function() { }); describe("tick.text.inner", () => { - before(() => { + beforeAll(() => { args = { data: { x: "x", @@ -360,7 +360,7 @@ describe("X AXIS", function() { }); describe("axis.x.forceAsSingle", () => { - before(() => { + beforeAll(() => { args = { data: { columns: [ diff --git a/test/internals/bb-spec.ts b/test/internals/bb-spec.ts index 76f5839f6..a2b921ad6 100644 --- a/test/internals/bb-spec.ts +++ b/test/internals/bb-spec.ts @@ -3,13 +3,14 @@ * billboard.js project is licensed under the MIT license */ /* eslint-disable */ -import {expect} from "chai"; +import {beforeEach, beforeAll, afterEach, afterAll, describe, expect, it} from "vitest"; import sinon from "sinon"; + import bb from "../../src"; +import {convertInputType, extend} from "../assets/module/util"; import util from "../assets/util"; import {$AXIS, $COMMON} from "../../src/config/classes"; import Chart from "../../src/Chart/Chart"; -import {convertInputType, extend} from "../../src/module/util"; describe("Interface & initialization", () => { function getWrapper(id) { @@ -165,15 +166,13 @@ describe("Interface & initialization", () => { } }); - after(() => { + afterAll(() => { //document.body.removeAttribute("style"); }); - it("should resize correctly in flex container", function(done) { + it("should resize correctly in flex container", () => new Promise(done => { const innerHTML = document.body.innerHTML; - this.timeout(5000); - // set flex container const div = document.createElement("div"); @@ -207,12 +206,12 @@ describe("Interface & initialization", () => { div.parentNode?.removeChild(div); //document.body.innerHTML = innerHTML; - done(); + done(1); }, 200); - }); + })); - it("height shouldn't be increased on resize event", function(done) { - before(() => { + it("height shouldn't be increased on resize event", () => new Promise(done => { + beforeAll(() => { return new Promise((resolve) => { chart = util.generate({ bindto: "#chartResize", @@ -227,8 +226,6 @@ describe("Interface & initialization", () => { }); }); - this.timeout(5000); - container.innerHTML = '<div id="chartResize"></div>'; chart = util.generate({ @@ -247,16 +244,15 @@ describe("Interface & initialization", () => { setTimeout(() => { expect(+chart.internal.$el.svg.attr("height")).to.be.equal(chartHeight); - done(); - }, 500); - }); + done(1); + }, 300); + })); - it("should be resizing all generated chart elements", function(done) { - this.timeout(6000); + it("should be resizing all generated chart elements", () => new Promise(done => { const width = 300; const inst: any[] = []; - before(() => { + beforeAll(() => { container.innerHTML = '<div id="chartResize1"></div><div id="chartResize2"></div>'; const args = { @@ -287,9 +283,9 @@ describe("Interface & initialization", () => { expect(+c.internal.$el.svg.attr("width")).to.be.equal(width); }); - done(); - }, 500); - }); + done(1); + }, 300); + })); it("should set correct height value", () => { const height = 450; @@ -328,11 +324,11 @@ describe("Interface & initialization", () => { } }; - before(() => { + beforeAll(() => { bb.defaults(args); }); - after(() => { + afterAll(() => { bb.defaults({}); }) @@ -392,7 +388,7 @@ describe("Interface & initialization", () => { let chart; const spy = sinon.spy(); - before(() => { + beforeAll(() => { const args = { data: { columns: [ @@ -470,7 +466,7 @@ describe("Interface & initialization", () => { } }); - it("check lazy rendering & mutation observer: style attribute", done => { + it("check lazy rendering & mutation observer: style attribute", () => new Promise(done => { const el: any = document.body.querySelector("#chart"); // hide to lazy render @@ -492,11 +488,11 @@ describe("Interface & initialization", () => { expect(spy.afterinit.called).to.be.true; expect(spy.rendered.called).to.be.true; - done(); - }, 500); - }); + done(1); + }, 300); + })); - it("check lazy rendering & mutation observer: class attribute", done => { + it("check lazy rendering & mutation observer: class attribute", () => new Promise(done => { const el = document.body.querySelector("#chart"); // hide to lazy render @@ -516,11 +512,12 @@ describe("Interface & initialization", () => { expect(el?.innerHTML).to.be.not.empty; expect(spy.afterinit.called).to.be.true; expect(spy.rendered.called).to.be.true; - done(); - }, 500); - }); + + done(1); + }, 300); + })); - it("check lazy rendering on callbacks", done => { + it("check lazy rendering on callbacks", () => new Promise(done => { const el: any = document.body.querySelector("#chart"); // hide to lazy render @@ -551,12 +548,13 @@ describe("Interface & initialization", () => { setTimeout(() => { expect(spy.resize.called).to.be.true; expect(spy.resized.called).to.be.true; - done(); + + done(1); }, 300); - }, 500); - }); + }, 300); + }), 4000); - it("check lazy rendering via option", done => { + it("check lazy rendering via option", () => new Promise(done => { const el = document.body.querySelector("#chart"); args.render = { @@ -580,9 +578,10 @@ describe("Interface & initialization", () => { expect(el?.innerHTML).to.be.not.empty; expect(spy.afterinit.called).to.be.true; expect(spy.rendered.called).to.be.true; - done(); - }, 500); - }); + + done(1); + }, 300); + })); }); describe("check for background", () => { @@ -655,7 +654,7 @@ describe("Interface & initialization", () => { container = getWrapper(containerName); }); - it("check for the resize timer using requestIdleCallback()", done => { + it("check for the resize timer using requestIdleCallback()", () => new Promise(done => { const width = 300; const chart = util.generate({ bindto: `#${containerName}`, @@ -674,7 +673,8 @@ describe("Interface & initialization", () => { onresized: function() { expect(this).to.be.deep.equal(chart); expect(chart.$.chart.style("width")).to.be.equal(`${width}px`); - done(); + + done(1); } }); @@ -683,18 +683,18 @@ describe("Interface & initialization", () => { // trigger resize eventize window.dispatchEvent(new Event("resize")); - }); + })); }); describe("resize legend", () => { const containerName = "containerForLegend"; let container; - before(() => { + beforeAll(() => { container = getWrapper(containerName); }); - it("should legend resized correctly?", function(done) { + it("should legend resized correctly?", () => new Promise(function(done) { container.innerHTML = `<div id="${containerName}"></div>`; const chart = util.generate({ @@ -719,13 +719,13 @@ describe("Interface & initialization", () => { util.parseNum(legend.attr("transform")) + rect.height ).to.be.below(internal.state.current.height); - done(); + done(``); } }); // resize chart holder chart.$.chart.style("width", "100px"); window.dispatchEvent(new Event("resize")); - }); + })); }); }); diff --git a/test/internals/boost-spec.ts b/test/internals/boost-spec.ts index b0322ab34..5ad353baa 100644 --- a/test/internals/boost-spec.ts +++ b/test/internals/boost-spec.ts @@ -4,7 +4,7 @@ */ /* eslint-disable */ /* global describe, beforeEach, it, expect */ -import {expect} from "chai"; +import {beforeEach, beforeAll, afterAll, describe, expect, it} from "vitest"; import util from "../assets/util"; import {runWorker} from "../../src/module/worker"; @@ -70,19 +70,15 @@ describe("BOOST", () => { }); describe("useWorker", function() { - this.timeout(4000); - - it("check if given function run on WebWorker thread.", done => { + it("check if given function run on WebWorker thread.", () => new Promise(done => { runWorker(undefined, function test_for_worker(p) { return `${p}_123`; }, function(res) { expect(res).to.be.equal("abcd_123"); - done(); + done(1); } )("abcd"); - - setTimeout(done, 3800); - }); + })); }); }); diff --git a/test/internals/class-spec.ts b/test/internals/class-spec.ts index be4a32140ff5ee8be915bbb57fe1e4b273b2f6e2..3350bbe8273409267e218d06bcb3cac10e65fea9 100644 GIT binary patch delta 53 zcmew(FhOuaw{lWyT7FTgV@{5aLTW`pYI2E=LS{*=LRwLNu7XloW=U#s$;7!)%s>Sj Izqhgj03gK_fB*mh delta 33 ocmbOr_(xzuw@_+DL27bItwLH+ey)O2az<k2#C1`dxfxs80p6VqZ~y=R diff --git a/test/internals/color-spec.ts b/test/internals/color-spec.ts index 4099d9801..8b7f4fbf5 100644 --- a/test/internals/color-spec.ts +++ b/test/internals/color-spec.ts @@ -8,7 +8,7 @@ import { select as d3Select, namespaces as d3Namespaces } from "d3-selection"; -import {expect} from "chai"; +import {beforeEach, beforeAll, afterAll, describe, expect, it} from "vitest"; import util from "../assets/util"; import {$ARC, $BAR, $COLOR, $COMMON, $EVENT, $LEGEND, $SHAPE, $TOOLTIP} from "../../src/config/classes"; import {KEY as CACHE_KEY} from "../../src/module/Cache"; @@ -42,7 +42,7 @@ describe("COLOR", () => { const pattern = ["#00c73c", "#fa7171", "#2ad0ff", "#7294ce", "#e3e448", "#cc7e6e", "#fb6ccf", "#c98dff", "#4aea99", "#bbbbbb"]; const styleSheet = document.createElement("style"); - before(() => { + beforeAll(() => { styleSheet.innerHTML = `.${$COLOR.colorPattern} { background-image: url("${pattern.join(";")}"); }`; @@ -50,7 +50,7 @@ describe("COLOR", () => { document.head.appendChild(styleSheet); }); - after(() => { + afterAll(() => { styleSheet.parentNode?.removeChild(styleSheet); document.body[CACHE_KEY.colorPattern] = null; }); @@ -78,7 +78,7 @@ describe("COLOR", () => { }); describe("tiles", () => { - before(() => { + beforeAll(() => { args = { data: { columns: [ @@ -172,7 +172,7 @@ describe("COLOR", () => { }); describe("pattern names", () => { - before(() => { + beforeAll(() => { args.color.pattern = ['red', 'gold', 'green']; }); @@ -247,7 +247,7 @@ describe("COLOR", () => { describe("color.onover", () => { const barStrokeColor = "blue"; - before(() => { + beforeAll(() => { args = { data: { columns: [ @@ -360,7 +360,7 @@ describe("COLOR", () => { }; }); - it("check for the arc type", done => { + it("check for the arc type", () => new Promise(done => { setTimeout(() => { const {main} = chart.$; const arc = main.select(`.${$ARC.arc}-data1`).node(); @@ -373,13 +373,13 @@ describe("COLOR", () => { util.fireEvent(arc, "mouseout"); expect(arc.style.fill).to.be.equal(originalColor); - done(); - }, 1000); - }); + done(1); + }, 300); + })); }); describe("color.threshold", () => { - before(() => { + beforeAll(() => { args = { data: { columns: [ @@ -396,7 +396,7 @@ describe("COLOR", () => { } }); - it("check for color update", done => { + it("check for color update", () => new Promise(done => { const path = chart.$.arc.select(`path.${$ARC.arc}-data`); let i = 0; @@ -407,19 +407,19 @@ describe("COLOR", () => { setTimeout(() => { expect(path.style("fill")).to.be.equal(args.color.pattern[i++]); chart.load({columns: [["data", 40]]}); - }, 500); + }, 300); setTimeout(() => { expect(path.style("fill")).to.be.equal(args.color.pattern[i++]); - done(); - }, 1000); - }); + done(1); + }, 600); + })); }); describe("Tooltip color", () => { const c = {data1: "yellow", data2: "green"}; - before(() => { + beforeAll(() => { args = { data: { columns: [ @@ -455,6 +455,6 @@ describe("COLOR", () => { chart.internal.$el.legend.select(`.${$LEGEND.legendItem}-${d.data.id} line`).style("stroke") ); }); - }) + }); }); }); diff --git a/test/internals/core-spec.ts b/test/internals/core-spec.ts index 84bb3d719..b3aadf7a8 100644 --- a/test/internals/core-spec.ts +++ b/test/internals/core-spec.ts @@ -3,7 +3,7 @@ * billboard.js project is licensed under the MIT license */ /* eslint-disable */ -import {expect} from "chai"; +import {beforeEach, beforeAll, describe, expect, it} from "vitest"; import sinon from "sinon"; import {select as d3Select} from "d3-selection"; import util from "../assets/util"; @@ -72,7 +72,7 @@ describe("CORE", function() { let onbeforeinit = false; let onafterinit = false; - before(() => { + beforeAll(() => { args = { data: { columns: [ @@ -121,7 +121,7 @@ describe("CORE", function() { return d; }); - before(() => { + beforeAll(() => { args = { data: { columns: [ @@ -145,12 +145,12 @@ describe("CORE", function() { }); // Note: Arc types are rendered with transition - it("check donut type", done => { + it("check donut type", () => new Promise(done => { setTimeout(() => { expect(spy.returnValues).to.be.not.empty; - done(); + done(1); }, 300); - }); + })); it("set options data.type='line'", () => { args.data.type = "line"; @@ -158,15 +158,15 @@ describe("CORE", function() { }); // Note: Arc types are rendered with transition - it("check line type", done => { + it("check line type", () => new Promise(done => { chart.toggle("data1"); setTimeout(() => { expect(spy.returnValues).to.be.not.empty; expect(spy.callCount); - done(); + done(1); }, 300); - }); + })); }); describe("size", () => { @@ -186,60 +186,30 @@ describe("CORE", function() { describe("bindto", () => { it("selector", () => { - before(() => { + beforeAll(() => { d3Select("#chart").html(""); args.bindto = "#chart"; }); - it("should be created", () => { - const svg = d3Select("#chart svg"); + const svg = d3Select("#chart svg"); - expect(svg.size()).to.be.equal(1); - }); + expect(svg.size()).to.be.equal(1); }); it("d3Selection object", () => { - before(() => { + beforeAll(() => { d3Select("#chart").html(""); args.bindto = d3Select("#chart"); }); - it("should be created", () => { - const svg = d3Select("#chart svg"); - - expect(svg.size()).to.be.equal(1); - }); - }); - - it("null", () => { - before(() => { - d3Select("#chart").html(""); - args.bindto = "#chart-dummy"; - }); - - it("should not be created", () => { - const svg = d3Select("#chart svg"); - - expect(svg.size()).to.be.equal(0); - }); - }); - - it("empty string", () => { - before(() => { - d3Select("#chart").html(""); - args.bindto = "#chart-dummy"; - }); - - it("should not be created", () => { - const svg = d3Select("#chart svg"); + const svg = d3Select("#chart svg"); - expect(svg.size()).to.be.equal(0); - }); + expect(svg.size()).to.be.equal(1); }); }); describe("empty data", () => { - before(() => { + beforeAll(() => { args = { data: { columns: [ @@ -286,7 +256,7 @@ describe("CORE", function() { }); describe("miscellaneous", () => { - before(() => { + beforeAll(() => { args = { data: { columns: [ @@ -324,7 +294,7 @@ describe("CORE", function() { }); describe("options", () => { - before(() => { + beforeAll(() => { args = { data: { columns: [ diff --git a/test/internals/data-convert-spec.ts b/test/internals/data-convert-spec.ts index 58eb35aa7..3452a9fd7 100644 --- a/test/internals/data-convert-spec.ts +++ b/test/internals/data-convert-spec.ts @@ -4,7 +4,7 @@ */ /* eslint-disable */ /* global describe, beforeEach, it, expect */ -import {expect} from "chai"; +import {describe, expect, it} from "vitest"; import util from "../assets/util"; describe("DATA Convert", () => { diff --git a/test/internals/data-spec.ts b/test/internals/data-spec.ts index 911b16ce0..7e823719e 100644 --- a/test/internals/data-spec.ts +++ b/test/internals/data-spec.ts @@ -4,7 +4,7 @@ */ /* eslint-disable */ /* global describe, beforeEach, it, expect */ -import {expect} from "chai"; +import {beforeEach, beforeAll, afterAll, describe, expect, it} from "vitest"; import {select as d3Select} from "d3-selection"; import sinon from "sinon"; import util from "../assets/util"; @@ -39,7 +39,7 @@ describe("DATA", () => { }; describe("load json #1", () => { - before(() => { + beforeAll(() => { args = { data: { json: { @@ -60,7 +60,7 @@ describe("DATA", () => { }); describe("load json #2", () => { - before(() => { + beforeAll(() => { args = { data: { json: [{ @@ -102,7 +102,7 @@ describe("DATA", () => { }); describe("load json #3", () => { - before(() => { + beforeAll(() => { args = { data: { json: [{ @@ -144,7 +144,7 @@ describe("DATA", () => { }; }); - after(() => { + afterAll(() => { args = {}; }) @@ -185,7 +185,7 @@ describe("DATA", () => { }); describe("load rows", () => { - before(() => { + beforeAll(() => { args = { data: { rows: [ @@ -211,9 +211,9 @@ describe("DATA", () => { }); describe("XHR data loading", () => { - const path = "/base/test/assets/data/"; + const path = "/test/assets/data/"; - before(() => { + beforeAll(() => { args = { data: { url: `${path}test.csv` @@ -221,7 +221,7 @@ describe("DATA", () => { }; }); - it("check for CSV file loading", done => { + it("check for CSV file loading", () => new Promise(done => { setTimeout(() => { const data = chart.data(); @@ -229,9 +229,9 @@ describe("DATA", () => { expect(data).to.not.be.null; expect(data.length).to.be.equal(3); - done(); - }, 500); - }); + done(1); + }, 300); + })); it("set options data.mimeType='json'", () => { args = { @@ -242,7 +242,7 @@ describe("DATA", () => { } }); - it("check for JSON file loading", done => { + it("check for JSON file loading", () => new Promise(done => { setTimeout(() => { const data = chart.data(); @@ -250,13 +250,13 @@ describe("DATA", () => { expect(data.length).to.be.equal(3); expect(chart.data.values("data1")).to.deep.equal([220, 240, 270, 250, 280]); - done(); - }, 500); - }); + done(1); + }, 300); + })); }); describe("check data.order", () => { - before(() => { + beforeAll(() => { args = { data: { columns: [ @@ -407,7 +407,7 @@ describe("DATA", () => { }); describe("data.xs", () => { - before(() => { + beforeAll(() => { args = { data: { columns: [ @@ -442,7 +442,7 @@ describe("DATA", () => { describe("timeseries x", () => { describe("without xFormat", () => { - before(() => { + beforeAll(() => { args = { data: { x: "date", @@ -478,7 +478,7 @@ describe("DATA", () => { describe("with xFormat", () => { describe("timeseries x with xFormat", () => { - before(() => { + beforeAll(() => { args = { data: { x: "date", @@ -517,7 +517,7 @@ describe("DATA", () => { describe("milliseconds timeseries x", () => { describe("as date string", () => { - before(() => { + beforeAll(() => { args = { data: { x: "date", @@ -567,7 +567,7 @@ describe("DATA", () => { }); describe("as unixtime number", () => { - before(() => { + beforeAll(() => { args = { data: { x: "date", @@ -609,7 +609,7 @@ describe("DATA", () => { }); describe("data.xSort", () => { - before(() => { + beforeAll(() => { args = { data: { xSort: false, @@ -672,7 +672,7 @@ describe("DATA", () => { let minData; let maxData; - before(() => { + beforeAll(() => { args = { data: { columns: [ @@ -689,7 +689,7 @@ describe("DATA", () => { }; }); - it("check for onmin callback", done => { + it("check for onmin callback", () => new Promise(done => { setTimeout(() => { expect(minData.length > 0).to.be.true; @@ -697,24 +697,24 @@ describe("DATA", () => { expect(minData[0].value).to.be.equal(minData[1].value); expect(minData[0].id).to.not.be.equal(minData[1].id); - done(); + done(1); }, 100); - }); + })); - it("check for onmax callback", done => { + it("check for onmax callback", () => new Promise(done => { setTimeout(() => { expect(maxData.length > 0).to.be.true; expect(maxData[0].value).to.be.equal(400); expect(maxData[0].id).to.be.equal("data1"); - done(); + done(1); }, 100); - }); + })); }); describe("data.hide", () => { - before(() => { + beforeAll(() => { args = { data: { columns: [ @@ -755,7 +755,7 @@ describe("DATA", () => { }); describe("data.regions", () => { - before(() => { + beforeAll(() => { args = { data: { columns: [ @@ -923,7 +923,7 @@ describe("DATA", () => { describe("data.stack", () => { let chartHeight = 0; - before(() => { + beforeAll(() => { args = { data: { columns: [ @@ -959,7 +959,7 @@ describe("DATA", () => { }); }); - it("check when hiding data", done => { + it("check when hiding data", () => new Promise(done => { // when chart.hide("data1"); @@ -968,9 +968,9 @@ describe("DATA", () => { expect(this.getBBox().height).to.be.equal(chartHeight); }); - done(); + done(1); }, 300); - }); + })); it("set options data.columns", () => { args.data.columns = [ @@ -981,7 +981,7 @@ describe("DATA", () => { args.data.hide = ["false-data"]; }); - it("check for null data", done => { + it("check for null data", () => new Promise(done => { const main = chart.$.main; const data1Bar = main.select(`.${$BAR.bars}-data1 .${$BAR.bar}-2`).node(); const data2Bar = main.select(`.${$BAR.bars}-data2 .${$BAR.bar}-1`).node(); @@ -995,9 +995,9 @@ describe("DATA", () => { setTimeout(() => { expect(data2Bar.getBBox().height).to.be.equal(0); - done(); + done(1); }, 500) - }); + })); it("set options data.type='area'", () => { args.data.type = "area"; @@ -1032,7 +1032,7 @@ describe("DATA", () => { }); describe("data.empty.label.text", () => { - before(() => { + beforeAll(() => { args = { data: { columns: [ @@ -1054,7 +1054,7 @@ describe("DATA", () => { expect(emptyLabelText.style("display")).to.be.equal("block"); }); - it("check the visiblity on data toggles", done => { + it("check the visiblity on data toggles", () => new Promise(done => { const emptyLabelText = chart.$.main.select(`.${$TEXT.text}.${$COMMON.empty}`); // display data @@ -1067,9 +1067,9 @@ describe("DATA", () => { setTimeout(() => { expect(emptyLabelText.style("display")).to.be.equal("block"); - done(); + done(1); }, 300) - }); + })); it("set options empty.label.text=''", () => { args.data.empty.label.text = ""; @@ -1105,7 +1105,7 @@ describe("DATA", () => { args.data.columns = [["data", 10]]; }); - it("check when no data is shown.", done => { + it("check when no data is shown.", () => new Promise(done => { const bgArc = chart.$.main.select(`.${$ARC.chartArcsBackground}`); // when @@ -1120,13 +1120,13 @@ describe("DATA", () => { // background arc shouldn't be drawn expect(bgArc.attr("d")).to.be.equal("M 0 0"); - done(); + done(1); }, 300); - }); + })); }); describe("Multilined data.label text", () => { - before(() => { + beforeAll(() => { args = { data: { columns: [ @@ -1165,7 +1165,7 @@ describe("DATA", () => { }); describe("data.idConverter", () => { - before(() => { + beforeAll(() => { args = { data: { idConverter: function(id) { @@ -1202,7 +1202,7 @@ describe("DATA", () => { }); describe("data.groups", () => { - before(() => { + beforeAll(() => { args = { data: { columns: [ @@ -1258,7 +1258,7 @@ describe("DATA", () => { }); describe("ranged data", () => { - before(() => { + beforeAll(() => { args = { data: { type: "bar", @@ -1287,7 +1287,7 @@ describe("DATA", () => { }); describe("null data", () => { - before(() => { + beforeAll(() => { args = { data: { columns: [ @@ -1316,7 +1316,7 @@ describe("DATA", () => { const spyShown = sinon.spy(); const spyHidden = sinon.spy(); - before(() => { + beforeAll(() => { args = { data: { columns: [ @@ -1355,7 +1355,7 @@ describe("DATA", () => { expect(spyShown.callCount).to.be.equal(1); }); - it("check on continuous .hide()/.show() APIs giving specific data id.", done => { + it("check on continuous .hide()/.show() APIs giving specific data id.", () => new Promise(done => { const id = "data1"; new Promise((resolve, reject) => { @@ -1398,9 +1398,9 @@ describe("DATA", () => { setTimeout(() => { expect(spyShown.callCount).to.be.equal(1); - done(); + done(1); }, 300); }); - }); + })); }); }); diff --git a/test/internals/domain-spec.ts b/test/internals/domain-spec.ts index 31c256adb..9476891b3 100644 --- a/test/internals/domain-spec.ts +++ b/test/internals/domain-spec.ts @@ -3,7 +3,7 @@ * billboard.js project is licensed under the MIT license */ /* eslint-disable */ -import {expect} from "chai"; +import {beforeEach, beforeAll, describe, expect, it} from "vitest"; import util from "../assets/util"; describe("DOMAIN", function() { @@ -15,7 +15,7 @@ describe("DOMAIN", function() { }); describe("axis.y.min", () => { - before(() => { + beforeAll(() => { args = { data: { columns: [ @@ -169,7 +169,7 @@ describe("DOMAIN", function() { }); describe("axis.y.padding #1", () => { - before(() => { + beforeAll(() => { args = { data: { columns: [ @@ -194,7 +194,7 @@ describe("DOMAIN", function() { }); describe("axis.y.padding #2", () => { - before(() => { + beforeAll(() => { // should change axis.y.max to 1000 with top/bottom padding args = { data: { @@ -223,7 +223,7 @@ describe("DOMAIN", function() { }); describe("Multi xs with grouped data", () => { - before(() => { + beforeAll(() => { args = { data: { xs: { "Buy": "xBuy", "Sell": "xSell" }, @@ -259,7 +259,7 @@ describe("DOMAIN", function() { }); describe("axis.y/axis.y2 domain should be the same", () => { - before(() => { + beforeAll(() => { args = { data: { columns: [ @@ -325,22 +325,22 @@ describe("DOMAIN", function() { setTimeout(() => { expect(chart.internal.scale[axisId].domain()).to.be.deep.equal(domain); - done(); + done(1); }, 300); }; - it("y Axis domain should maintain", done => { + it("y Axis domain should maintain", () => new Promise(done => { checkDomain("data1", "y", done); - }); + })); - it("y2 Axis domain should maintain", done => { + it("y2 Axis domain should maintain", () => new Promise(done => { checkDomain("data2", "y2", done); - }); + })); }); }); describe("data.axes with combination of zerobased and non-zerobased types.", () => { - before(() => { + beforeAll(() => { args = { data: { columns: [ @@ -379,7 +379,7 @@ describe("DOMAIN", function() { }); describe("trimXDomain", () => { - before(() => { + beforeAll(() => { args = { data: { columns: [ diff --git a/test/internals/generator-spec.ts b/test/internals/generator-spec.ts index f66843c0c..36fa50fe7 100644 --- a/test/internals/generator-spec.ts +++ b/test/internals/generator-spec.ts @@ -3,11 +3,11 @@ * billboard.js project is licensed under the MIT license */ /* eslint-disable */ -import {expect} from "chai"; +import {beforeEach, beforeAll, describe, expect, it} from "vitest"; import sinon from "sinon"; import util from "../assets/util"; import {window} from "../../src/module/browser"; -import {isTabVisible} from "../../src/module/util"; +import {isTabVisible} from "../assets/module/util"; describe("GENERATOR", function() { let chart; @@ -20,7 +20,7 @@ describe("GENERATOR", function() { describe("generateWait()", () => { const spy = sinon.spy(); - before(() => { + beforeAll(() => { args = { data: { columns: [ @@ -33,7 +33,7 @@ describe("GENERATOR", function() { }; }); - it("should onrendered callback called, when tab isn't visible", done => { + it("should onrendered callback called, when tab isn't visible", () => new Promise(done => { window.$$TEST$$.isTabVisible = false; // when @@ -45,8 +45,8 @@ describe("GENERATOR", function() { // restore delete window.$$TEST$$.isTabVisible; - done(); - }, 500); - }); + done(1); + }, 300); + })); }); }); diff --git a/test/internals/grid-spec.ts b/test/internals/grid-spec.ts index b7a3e56ae..dfff9b256 100644 --- a/test/internals/grid-spec.ts +++ b/test/internals/grid-spec.ts @@ -3,7 +3,7 @@ * billboard.js project is licensed under the MIT license */ /* eslint-disable */ -import {expect} from "chai"; +import {beforeEach, beforeAll, describe, expect, it} from "vitest"; import {select as d3Select} from "d3-selection"; import {$AXIS, $COMMON, $EVENT, $FOCUS, $GRID} from "../../src/config/classes"; import util from "../assets/util"; @@ -17,7 +17,7 @@ describe("GRID", function() { }); describe("check for default grid lines", () => { - before(() => { + beforeAll(() => { args = { data: { columns: [ @@ -100,7 +100,7 @@ describe("GRID", function() { }); describe("y grid show", () => { - before(() => { + beforeAll(() => { args = { data: { columns: [ @@ -294,7 +294,7 @@ describe("GRID", function() { }); describe("front option", () => { - before(() => { + beforeAll(() => { args = { data:{ columns:[ @@ -351,7 +351,7 @@ describe("GRID", function() { describe("y grid lines", () => { describe("position #1", () => {7 - before(() => { + beforeAll(() => { args = { data: { columns: [ @@ -374,7 +374,7 @@ describe("GRID", function() { expect(chart.$.main.selectAll(`.${$GRID.ygrid}-lines .${$GRID.ygrid}-line`).size()).to.be.equal(3); }); - it("should locate grid lines properly", done => { + it("should locate grid lines properly", () => new Promise(done => { setTimeout(() => { const lines = chart.$.main.selectAll(`.${$GRID.ygrid}-lines .${$GRID.ygrid}-line line`); const expectedY1s = [373, 268, 196]; @@ -386,9 +386,9 @@ describe("GRID", function() { y1 && expect(y1).to.be.closeTo(expectedY1s[i], 1); }); - done(); - }, 500); - }); + done(1); + }, 300); + })); it("should locate grid texts properly", () => { const lines = chart.$.main.selectAll(`.${$GRID.ygrid}-lines .${$GRID.ygrid}-line`); @@ -407,7 +407,7 @@ describe("GRID", function() { }); describe("position #2", () => { - before(() => { + beforeAll(() => { args = { data: { columns: [ @@ -433,7 +433,7 @@ describe("GRID", function() { expect(chart.$.main.selectAll(`.${$GRID.ygrid}-lines .${$GRID.ygrid}-line`).size()).to.be.equal(3); }); - it("should locate grid lines properly", done => { + it("should locate grid lines properly", () => new Promise(done => { setTimeout(() => { const lines = chart.$.main.selectAll(`.${$GRID.ygrid}-lines .${$GRID.ygrid}-line line`); const expectedX1s = [75, 220, 321]; @@ -445,9 +445,9 @@ describe("GRID", function() { x1 && expect(x1).to.be.closeTo(expectedX1s[i], 1); }); - done(); - }, 500); - }); + done(1); + }, 300); + })); it("should locate grid texts properly", () => { const lines = chart.$.main.selectAll(`.${$GRID.ygrid}-lines .${$GRID.ygrid}-line`); @@ -488,7 +488,7 @@ describe("GRID", function() { describe("x grid lines", () => { describe("position #1", () => { - before(() => { + beforeAll(() => { args = { data: { columns: [ @@ -518,7 +518,7 @@ describe("GRID", function() { expect(chart.$.main.selectAll(`.${$GRID.xgrid}-lines .${$GRID.xgrid}-line`).size()).to.be.equal(3); }); - it("should locate grid lines properly", done => { + it("should locate grid lines properly", () => new Promise(done => { const lines = chart.$.main.selectAll(`.${$GRID.xgrid}-lines .${$GRID.xgrid}-line`); const expectedX1s = [202, 397, 593]; @@ -529,9 +529,9 @@ describe("GRID", function() { expect(x1).to.be.closeTo(expectedX1s[i], 1); }); - done(); + done(1); }, 300); - }); + })); it("should locate grid texts properly", () => { const lines = chart.$.main.selectAll(`.${$GRID.xgrid}-lines .${$GRID.xgrid}-line`); @@ -550,7 +550,7 @@ describe("GRID", function() { }); describe("position #2", () => { - before(() => { + beforeAll(() => { args = { data: { columns: [ @@ -576,7 +576,7 @@ describe("GRID", function() { expect(chart.$.main.selectAll(`.${$GRID.xgrid}-lines .${$GRID.xgrid}-line`).size()).to.be.equal(3); }); - it("should locate grid lines properly", done => { + it("should locate grid lines properly", () => new Promise(done => { const lines = chart.$.main.selectAll(`.${$GRID.xgrid}-lines .${$GRID.xgrid}-line`); const expectedY1s = [144, 283, 421]; @@ -586,9 +586,9 @@ describe("GRID", function() { expect(y1).to.be.equal(expectedY1s[i]); }); - done(); - }, 500); - }); + done(1); + }, 300); + })); it("should locate grid texts properly", () => { const lines = chart.$.main.selectAll(`.${$GRID.xgrid}-lines .${$GRID.xgrid}-line`); @@ -608,7 +608,7 @@ describe("GRID", function() { }); describe("with padding.top", () => { - before(() => { + beforeAll(() => { args = { data: { columns: [ @@ -628,7 +628,7 @@ describe("GRID", function() { }; }); - it("should show x grid lines", done => { + it("should show x grid lines", () => new Promise(done => { const lines = chart.$.main.select(`.${$GRID.xgrid}-lines .${$GRID.xgrid}-line`); const expectedX1 = 593; const expectedText = ["Label 3"]; @@ -643,14 +643,13 @@ describe("GRID", function() { expect(t.text()).to.be.equal(expectedText[i]); }); - done(); + done(1); }, 300); - }); - + })); }); describe("on category axis", () => { - before(() => { + beforeAll(() => { args = { data: { x: "x", @@ -675,7 +674,7 @@ describe("GRID", function() { }; }); - it("should show x grid lines", done => { + it("should show x grid lines", () => new Promise(done => { const lines = chart.$.main.selectAll(`.${$GRID.xgrid}-lines .${$GRID.xgrid}-line`); const expectedX1 = [524, 75]; const expectedText = ["Label 3", "Label a"]; @@ -690,14 +689,14 @@ describe("GRID", function() { expect(t.text()).to.be.equal(expectedText[i]); }); - done(); + done(1); }, 300); - }); + })); }); }); describe("Grid x/y", () => { - before(() => { + beforeAll(() => { args = { data: { columns: [ @@ -728,7 +727,7 @@ describe("GRID", function() { }); describe("Focus grid lines", () => { - before(() => { + beforeAll(() => { args = { data: { columns: [ @@ -882,7 +881,7 @@ describe("GRID", function() { }); describe("Grid text position", () => { - before(() => { + beforeAll(() => { args = { data: { columns: [ @@ -982,7 +981,7 @@ describe("GRID", function() { }; }); - it("Grid text position should be updated", done => { + it("Grid text position should be updated", () => new Promise(done => { const {main} = chart.$; const eventRect = main.select(`.${$EVENT.eventRect}-75`).node(); @@ -1002,7 +1001,7 @@ describe("GRID", function() { }, chart); resolve(true); - }, 500); + }, 300); }); }).then(() => { setTimeout(() => { @@ -1018,9 +1017,9 @@ describe("GRID", function() { expect(lineX).to.be.equal(textY); }); - done(); - }, 500); + done(1); + }, 300); }); - }); + })); }); }); diff --git a/test/internals/legend-spec.ts b/test/internals/legend-spec.ts index 164382fef..6ad01f1fb 100644 --- a/test/internals/legend-spec.ts +++ b/test/internals/legend-spec.ts @@ -5,7 +5,7 @@ /* eslint-disable */ /* global describe, beforeEach, it, expect */ import sinon from "sinon"; -import {expect} from "chai"; +import {beforeEach, beforeAll, afterAll, describe, expect, it} from "vitest"; import {select as d3Select} from "d3-selection"; import util from "../assets/util"; import {$FOCUS, $LEGEND} from "../../src/config/classes"; @@ -15,14 +15,14 @@ describe("LEGEND", () => { let chart; let args; - after(() => util.destroyAll()); + afterAll(() => util.destroyAll()); beforeEach(() => { chart = util.generate(args); }); describe("legend when multiple charts rendered", () => { - before(() => { + beforeAll(() => { args = { data: { columns: [ @@ -50,7 +50,7 @@ describe("LEGEND", () => { }); describe("legend position", () => { - before(() => { + beforeAll(() => { args = { data: { columns: [ @@ -82,7 +82,7 @@ describe("LEGEND", () => { }); describe("legend as inset", () => { - before(() => { + beforeAll(() => { args = { data: { columns: [ @@ -171,7 +171,7 @@ describe("LEGEND", () => { }); describe("should update args to have only one series", () => { - before(() => { + beforeAll(() => { args = { data: { columns: [ @@ -196,7 +196,7 @@ describe("LEGEND", () => { }); describe("legend.hide", () => { - before(() => { + beforeAll(() => { args = { data: { columns: [ @@ -239,7 +239,7 @@ describe("LEGEND", () => { }); describe("legend.show", () => { - before(() => { + beforeAll(() => { args = { data: { columns: [ @@ -269,7 +269,7 @@ describe("LEGEND", () => { }); describe("custom legend settings", () => { - before(() => { + beforeAll(() => { args = { data: { columns: [ @@ -321,9 +321,8 @@ describe("LEGEND", () => { describe("set legend using template", () => { const itemClass = "abcd"; - before(() => { - // @ts-ignore - sandbox("legend-wrapper").innerHTML = "<ul id='legend'></ul>"; + beforeAll(() => { + util.sandbox("legend-wrapper").innerHTML = "<ul id='legend'></ul>"; args = { data: { @@ -367,7 +366,7 @@ describe("LEGEND", () => { expect(items.size()).to.be.equal(2); }); - it("custom legend should behaves as normal legend", done => { + it("custom legend should behaves as normal legend", () => new Promise(done => { const selector = `.${$LEGEND.legendItem}-data1`; const legend = chart.$.legend.select(selector).node(); const rect = legend.getBoundingClientRect(); @@ -386,27 +385,28 @@ describe("LEGEND", () => { setTimeout(() => { expect(chart.$.legend.select(selector).classed($LEGEND.legendItemHidden)).to.be.true; - done(); + done(1); }, 300); - }); + })); - it("check for template update on dynamic loading", d => { + it("check for template update on dynamic loading", () => new Promise(done => { setTimeout(function() { chart.load({ columns: [ ["data3", 200, 100, 300, 130, 20] ], unload: true, - done: () => { + done() { const legend = d3Select("#legend"); expect(legend.selectAll("li").size()).to.be.equal(1); expect(legend.text()).to.be.equal("data3"); - d(); + + done(1); } }); - }, 500); - }); + }, 300); + })); it("set options legend.content.template as function", () => { args.legend.contents.template = function(title, color, data) { @@ -489,7 +489,7 @@ describe("LEGEND", () => { }); describe("when using custom points", () => { - before(() => { + beforeAll(() => { args = { data: { columns: [ @@ -532,7 +532,7 @@ describe("LEGEND", () => { expect(nodes.size()).to.be.equal(chart.data().length); }); - it("should defs element added removed on unload?", done => { + it("should defs element added removed on unload?", () => new Promise(done => { const {$el: {defs}} = chart.internal; const selector = "[id$=data-3]"; const hasDefPoint = !defs.select(selector).empty(); @@ -544,14 +544,14 @@ describe("LEGEND", () => { expect(hasDefPoint).to.be.true; expect(defs.select(selector).empty()).to.be.true; - done(); + done(1); } }); - }); + })); }); describe("legend item tile coloring with color_treshold", () => { - before(() => { + beforeAll(() => { args = { data: { columns: [ @@ -588,8 +588,11 @@ describe("LEGEND", () => { expect(tileColor[3]).to.be.equal('rgb(255, 0, 0)'); }); - it("color.threshold should be generated without error when legend.show=false", done => { - const spy = sinon.spy(); + it("color.threshold should be generated without error when legend.show=false", () => new Promise(done => { + const spy = sinon.spy(() => { + expect(spy.called).to.be.true; + done(1); + }); util.generate({ data: { @@ -607,16 +610,11 @@ describe("LEGEND", () => { }, onrendered: spy }); - - setTimeout(() => { - expect(spy.called).to.be.true; - done(); - }, 500); - }); + })); }); describe("legend item tile coloring without color_treshold", () => { - before(function() { + beforeAll(function() { args = { data: { columns: [ @@ -658,7 +656,7 @@ describe("LEGEND", () => { }); describe("legend opacity onclick", () => { - before(() => { + beforeAll(() => { args = { data: { columns: [ @@ -688,7 +686,7 @@ describe("LEGEND", () => { }); describe("legend transition", () => { - before(() => { + beforeAll(() => { args = { data: { columns: [ @@ -704,7 +702,7 @@ describe("LEGEND", () => { }; }); - it("legend shouldn't be transitioned", done => { + it("legend shouldn't be transitioned", () => new Promise(done => { chart.load({ columns: [ ["data1", 130, 120, 150, 140, 160, 150], @@ -720,17 +718,17 @@ describe("LEGEND", () => { clearInterval(interval); expect(pos.every(v => v === pos[0])).to.be.true; - done(); + done(1); } pos.push(chart.$.legend.select("text").attr("x")); cnt++; }, 50); - }); + })); }); describe("item.tile.type option", () => { - before(() => { + beforeAll(() => { args = { data: { columns: [ @@ -788,7 +786,7 @@ describe("LEGEND", () => { }); describe("legend item interaction", () => { - before(() => { + beforeAll(() => { args = { data: { columns: [ @@ -895,7 +893,7 @@ describe("LEGEND", () => { }); describe("legend format", () => { - before(() => { + beforeAll(() => { args = { data: { columns: [ diff --git a/test/internals/padding-spec.ts b/test/internals/padding-spec.ts index 68108e172..d5099a962 100644 --- a/test/internals/padding-spec.ts +++ b/test/internals/padding-spec.ts @@ -3,7 +3,7 @@ * billboard.js project is licensed under the MIT license */ /* eslint-disable */ -import {expect} from "chai"; +import {beforeEach, beforeAll, describe, expect, it} from "vitest"; import sinon from "sinon"; import util from "../assets/util"; import {$AXIS} from "../../src/config/classes"; @@ -37,7 +37,7 @@ describe("PADDING", () => { describe("basic", () => { let margin; - before(() => { + beforeAll(() => { args = { data: { columns: [["data", 130, 100, 140, 35, 110, 50]], @@ -207,7 +207,7 @@ describe("PADDING", () => { }); describe("margin: normal mode", () => { - before(() => { + beforeAll(() => { args = { data: { columns: [ @@ -407,7 +407,7 @@ describe("PADDING", () => { describe("margin: 'fit' mode", () => { let temp; - before(() => { + beforeAll(() => { args = { data: { columns: [ diff --git a/test/internals/rergions-spec.ts b/test/internals/regions-spec.ts similarity index 96% rename from test/internals/rergions-spec.ts rename to test/internals/regions-spec.ts index ea2ef2ad7..3580ce03a 100644 --- a/test/internals/rergions-spec.ts +++ b/test/internals/regions-spec.ts @@ -3,7 +3,7 @@ * billboard.js project is licensed under the MIT license */ /* eslint-disable */ -import {expect} from "chai"; +import {beforeEach, beforeAll, describe, expect, it} from "vitest"; import {window} from "../../src/module/browser"; import util from "../assets/util"; @@ -64,7 +64,7 @@ describe("REGIONS", function() { }); describe("regions", () => { - before(() => { + beforeAll(() => { args = { data: { columns: [ @@ -128,7 +128,7 @@ describe("REGIONS", function() { }; }); - it("regions are generated correctly?", done => { + it("regions are generated correctly?", () => new Promise(done => { const {$el, scale} = chart.internal; setTimeout(() => { @@ -143,7 +143,7 @@ describe("REGIONS", function() { if (i === 0) { const {fill} = window.getComputedStyle(this.querySelector("rect")); - expect(fill).to.be.equal("rgb(255, 0, 0)"); + expect(fill).to.be.equal("rgb(70, 130, 180)"); } // check the diemsion @@ -175,13 +175,13 @@ describe("REGIONS", function() { } }); - done(); + done(1); }, 300); - }); + })); }); describe("regions with dasharray", () => { - before(() => { + beforeAll(() => { args = { data: { x: "x", diff --git a/test/internals/selection-spec.ts b/test/internals/selection-spec.ts index 9aa1524b5..e93c6d1f7 100644 --- a/test/internals/selection-spec.ts +++ b/test/internals/selection-spec.ts @@ -5,7 +5,7 @@ /* eslint-disable */ /* global describe, beforeEach, it, expect */ import sinon from "sinon"; -import {expect} from "chai"; +import {beforeEach, beforeAll, describe, expect, it} from "vitest"; import { select as d3Select, selectAll as d3SelectAll @@ -28,7 +28,7 @@ describe("SELECTION", () => { describe("check for callbacks", () => { describe("data.selction.enabled", () => { - before(() => { + beforeAll(() => { args = { data: { columns: [ @@ -147,7 +147,7 @@ describe("SELECTION", () => { }); describe("check for selection", () => { - before(() => { + beforeAll(() => { args = { data: { columns: [ @@ -168,7 +168,7 @@ describe("SELECTION", () => { }; }); - it("check one selection only.", done => { + it("check one selection only.", () => new Promise(done => { const eventRect = chart.internal.$el.eventRect.node(); // when @@ -187,8 +187,8 @@ describe("SELECTION", () => { expect(selected.size()).to.be.equal(1); expect(selected.datum().id).to.be.equal("data2"); - done(); - }, 500); - }); + done(1); + }, 300); + })); }); }); diff --git a/test/internals/text-spec.ts b/test/internals/text-spec.ts index 881e5c467..a13a0b39a 100644 --- a/test/internals/text-spec.ts +++ b/test/internals/text-spec.ts @@ -4,7 +4,7 @@ */ /* eslint-disable */ /* global describe, beforeEach, it, expect */ -import {expect} from "chai"; +import {beforeEach, beforeAll, describe, expect, it} from "vitest"; import {select as d3Select} from "d3-selection"; import {format as d3Format} from "d3-format"; import util from "../assets/util"; @@ -34,7 +34,7 @@ describe("TEXT", () => { describe("data.labels", () => { describe("on line chart", () => { - before(() => { + beforeAll(() => { args = { padding: { left: 50 @@ -181,7 +181,7 @@ describe("TEXT", () => { describe("rotate", () => { describe("normal axis", () => { - before(() => { + beforeAll(() => { args = { data: { columns: [ @@ -269,7 +269,7 @@ describe("TEXT", () => { }); describe("rotated axis", () => { - before(() => { + beforeAll(() => { args = { data: { columns: [ @@ -315,7 +315,7 @@ describe("TEXT", () => { }); describe("on bar chart", () => { - before(() => { + beforeAll(() => { args = { padding: { left: 50 @@ -427,7 +427,7 @@ describe("TEXT", () => { }); describe("on ranged value(AreaRange/Bar range) chart", () => { - before(() => { + beforeAll(() => { args = { data: { columns: [ @@ -518,7 +518,7 @@ describe("TEXT", () => { }); describe("for all targets", () => { - before(() => { + beforeAll(() => { args = { data: { columns: [ @@ -549,7 +549,7 @@ describe("TEXT", () => { }); describe("on area chart", () => { - before(() => { + beforeAll(() => { args = { padding: { left: 50 @@ -617,7 +617,7 @@ describe("TEXT", () => { describe("for each target", () => { describe("as true", () => { - before(() => { + beforeAll(() => { args = { data: { columns: [ @@ -654,7 +654,7 @@ describe("TEXT", () => { describe("as function", () => { const temp: any = []; - before(() => { + beforeAll(() => { args = { data: { columns: [ @@ -713,7 +713,7 @@ describe("TEXT", () => { }); describe("with small values", () => { - before(() => { + beforeAll(() => { args = { data: { columns: [ @@ -734,7 +734,7 @@ describe("TEXT", () => { describe("with positive values and null", () => { describe("on not rotated axis", () => { - before(() => { + beforeAll(() => { args = { padding: { left: 40 @@ -787,7 +787,7 @@ describe("TEXT", () => { }); describe("on rotated axis", () => { - before(() => { + beforeAll(() => { args.padding.bottom = 50; args.padding.top = 5; args.data.type = "bar"; @@ -835,7 +835,7 @@ describe("TEXT", () => { describe("with negative values and null", () => { describe("on not rotated axis", () => { - before(() => { + beforeAll(() => { args = { padding: { left: 50 @@ -890,7 +890,7 @@ describe("TEXT", () => { }); describe("on rotated axis", () => { - before(() => { + beforeAll(() => { args.padding.left = 50; args.padding.bottom = 0; @@ -940,7 +940,7 @@ describe("TEXT", () => { describe("with positive and negative values and null", () => { describe("on non rotated axis", () => { - before(() => { + beforeAll(() => { args = { data: { columns: [ @@ -992,7 +992,7 @@ describe("TEXT", () => { }); describe("on rotated axis", () => { - before(() => { + beforeAll(() => { args.data.type = "bar"; args.axis = { rotated: true @@ -1037,7 +1037,7 @@ describe("TEXT", () => { describe("with positive grouped values", () => { describe("on non rotated axis", () => { - before(() => { + beforeAll(() => { args = { data: { columns: [ @@ -1088,7 +1088,7 @@ describe("TEXT", () => { }); describe("on rotated axis", () => { - before(() => { + beforeAll(() => { args.data.type = "bar"; args.axis = { rotated: true @@ -1133,7 +1133,7 @@ describe("TEXT", () => { describe("with negative grouped values", () => { describe("on non rotated axis", () => { - before(() => { + beforeAll(() => { args = { data: { columns: [ @@ -1184,7 +1184,7 @@ describe("TEXT", () => { }); describe("on rotated axis", () => { - before(() => { + beforeAll(() => { args.data.type = "bar"; args.axis = { rotated: true @@ -1228,7 +1228,7 @@ describe("TEXT", () => { }); describe("on scatter type", () => { - before(() => { + beforeAll(() => { args = { data: { columns: [ @@ -1277,7 +1277,7 @@ describe("TEXT", () => { }); describe("on scatter + line type", () => { - before(() => { + beforeAll(() => { args = { data: { columns: [ @@ -1312,7 +1312,7 @@ describe("TEXT", () => { }); describe("on line with array points option", () => { - before(() => { + beforeAll(() => { args = { data: { columns: [ @@ -1343,7 +1343,7 @@ describe("TEXT", () => { }); describe("text transition", () => { - before(() => { + beforeAll(() => { args = { data: { columns: [ @@ -1358,7 +1358,7 @@ describe("TEXT", () => { }; }); - it("newly added text shouldn't be transitioning from the top/left", done => { + it("newly added text shouldn't be transitioning from the top/left", () => new Promise(done => { const main = chart.$.main; const pos: number[] = []; let text; @@ -1377,8 +1377,8 @@ describe("TEXT", () => { expect(Math.round(pos[0])).to.not.equal(0); expect(pos.every(v => v === currPos)).to.be.true; - done(); - }, 500); + done(1); + }, 300); } }); @@ -1391,11 +1391,11 @@ describe("TEXT", () => { } }, 80); - }); + })); }); describe("when all data values are 0", () => { - before(() => { + beforeAll(() => { args = { data: { columns: [ @@ -1435,7 +1435,7 @@ describe("TEXT", () => { describe("Labels' postion", () => { const pos = {}; - before(() => { + beforeAll(() => { args = { data: { columns: [ @@ -1491,7 +1491,7 @@ describe("TEXT", () => { }); describe("Labels' postion on inverted axis", () => { - before(() => { + beforeAll(() => { args = { data: { columns: [ @@ -1579,7 +1579,7 @@ describe("TEXT", () => { describe("Labels' postion callback", () => { let pos: number[] = []; - before(() => { + beforeAll(() => { args = { data: { columns: [ @@ -1629,7 +1629,7 @@ describe("TEXT", () => { describe("labels.colors callback", () => { let ctx: any = []; - before(() => { + beforeAll(() => { args = { data: { columns: [ @@ -1662,7 +1662,7 @@ describe("TEXT", () => { describe("labels.backgroundColors", () => { let ctx = []; - before(() => { + beforeAll(() => { args = { data: { columns: [ @@ -1728,7 +1728,7 @@ describe("TEXT", () => { }); describe("text positon with xs option", () => { - before(() => { + beforeAll(() => { args = { data: { xs: { data1: "x", data2: "x2" }, diff --git a/test/internals/title-spec.ts b/test/internals/title-spec.ts index 90a9d00f0..bfe5dc1ec 100644 --- a/test/internals/title-spec.ts +++ b/test/internals/title-spec.ts @@ -4,7 +4,7 @@ */ /* eslint-disable */ /* global describe, beforeEach, it, expect */ -import {expect} from "chai"; +import {beforeEach, beforeAll, describe, expect, it} from "vitest"; import util from "../assets/util"; describe("TITLE", () => { @@ -55,7 +55,7 @@ describe("TITLE", () => { }); describe("with padding", () => { - before(() => { + beforeAll(() => { args = { data: { columns: [ @@ -107,7 +107,7 @@ describe("TITLE", () => { }); describe("and position left", () => { - before(() => { + beforeAll(() => { args.title.position = "left"; }); @@ -124,7 +124,7 @@ describe("TITLE", () => { }); describe("and position right", () => { - before(() => { + beforeAll(() => { args.title.position = "right"; }); diff --git a/test/internals/tooltip-position-spec.ts b/test/internals/tooltip-position-spec.ts index dcf7b4d41..21065bee6 100644 --- a/test/internals/tooltip-position-spec.ts +++ b/test/internals/tooltip-position-spec.ts @@ -4,7 +4,7 @@ */ /* eslint-disable */ // @ts-nocheck -import {expect} from "chai"; +import {beforeEach, beforeAll, afterAll, describe, expect, it} from "vitest"; import util from "../assets/util"; import {$ARC, $CIRCLE, $SHAPE} from "../../src/config/classes"; @@ -48,11 +48,11 @@ describe("TOOLTIP Position", function() { }); describe("with left margin", () => { - before(() => { + beforeAll(() => { chart.$.chart.style("marginLeft", "300px"); }); - after(() => { + afterAll(() => { // reset to not affect other tests chart.$.chart.style("marginLeft", null); }); @@ -113,7 +113,7 @@ describe("TOOLTIP Position", function() { describe("do not overlap data point", () => { let prevArgs = args; - before(() => { + beforeAll(() => { args = { data: { columns: [ @@ -128,11 +128,11 @@ describe("TOOLTIP Position", function() { }; }); - after(() => { + afterAll(() => { args = prevArgs; }); - it("check if tooltip position updates according mouse pointer moves", done => { + it("check if tooltip position updates according mouse pointer moves", () => new Promise(done => { const top = { a: 0, b: 0 }; @@ -160,22 +160,22 @@ describe("TOOLTIP Position", function() { expect(top.b).to.be.greaterThan(top.a); - done(); + done(1); }); - }) + })); }); }); describe("flex display tooltip", () => { - before(() => { + beforeAll(() => { args.bindto = "#display_flex"; }); - after(() => { + afterAll(() => { delete args.bindto; }); - it("check tooltip position", done => { + it("check tooltip position", () => new Promise(done => { chart.resize({width:300}); setTimeout(() => { @@ -190,17 +190,17 @@ describe("TOOLTIP Position", function() { expect(pointRect.left > tooltipPos).to.be.true; expect(pointRect.left).to.be.above(tooltipPos, "20"); - done(); + done(1); }, 300); - }) + })); }); describe("when zoomed", () => { - before(() => { + beforeAll(() => { args.zoom = {enabled: true}; }); - it("should show tooltip on proper position", done => { + it("should show tooltip on proper position", () => new Promise(done => { chart.zoom([4,7]); setTimeout(() => { @@ -220,16 +220,16 @@ describe("TOOLTIP Position", function() { expect(top).to.be.equal(tooltipPos.top); expect(left).to.be.equal(tooltipPos.left); - done(); + done(1); }, 350); - }); + })); }); describe("step-after tooltip position", () => { const orgArgs = args; const posX = []; - before(() => { + beforeAll(() => { args = { data: { columns: [ @@ -328,7 +328,7 @@ describe("TOOLTIP Position", function() { describe('tooltip index with step types and tooltipMatch', function () { // x axis ticks getBoundingClientRect x are at [43.4375, 336.4375, 630.4375] - before(() => { + beforeAll(() => { args = { data: { columns: [ @@ -434,7 +434,7 @@ describe("TOOLTIP Position", function() { }); describe("with padding", () => { - before(() => { + beforeAll(() => { args = { data: { columns: [ @@ -563,7 +563,7 @@ describe("TOOLTIP Position", function() { }); describe("when document or container element is scrolled", () => { - before(() => { + beforeAll(() => { args = { size: { width: 640, @@ -581,7 +581,7 @@ describe("TOOLTIP Position", function() { }; }); - it("tooltip correctly showed?", function(done) { + it("tooltip correctly showed?", () => new Promise(function(done) { chart.$.chart.attr("style", "position: relative; top: 0px; left: 0px; width:300px;height:400px;overflow:scroll;"); const top = chart.$.chart.node().getBoundingClientRect().top; @@ -615,9 +615,9 @@ describe("TOOLTIP Position", function() { expect(index).to.be.deep.equal([0, 5]); chart.$.chart.node().scrollTo(0, 0); - done(); + done(1); }); - }); + })); it("set option: axis.rotated=true", () => { args.size = { @@ -628,7 +628,7 @@ describe("TOOLTIP Position", function() { args.axis.rotated = true; }); - it("tooltip correctly showed on rotated axis?", function(done) { + it("tooltip correctly showed on rotated axis?", () => new Promise(function(done) { chart.$.chart.attr("style", "position: relative; top: 0px; left: 0px; width:480px;height:640px;overflow:scroll;"); const {tooltip} = chart.$; const index = []; @@ -661,13 +661,13 @@ describe("TOOLTIP Position", function() { chart.$.chart.attr("style", "position: relative; top: 0px; left: 0px; width:640px;height:480px;"); - done(); + done(1); }); - }); + })); }); describe("check interference", () => { - before(() => { + beforeAll(() => { args = { data: { x: "x", @@ -738,7 +738,7 @@ describe("TOOLTIP Position", function() { }; }); - it("check pie's tooltip position.", done => { + it("check pie's tooltip position.", () => new Promise(done => { const {$: {arc, tooltip}} = chart; const path = arc.select(".bb-shapes-data2 path").node(); @@ -749,9 +749,9 @@ describe("TOOLTIP Position", function() { util.hoverChart(chart, "mousemove", {clientX: 630, clientY: 470}, path); checkPos(tooltip, [445.5, 524.5]); - done(); + done(1); }, 300) - }); + })); it("set options: data.type='treemap'", () => { args = { @@ -799,7 +799,7 @@ describe("TOOLTIP Position", function() { }); describe("on rotated axis", () => { - before(() => { + beforeAll(() => { args = { data: { columns: [ @@ -854,7 +854,7 @@ describe("TOOLTIP Position", function() { describe("Narrow width container's tooltip position", () => { const orgArgs = args; - before(() => { + beforeAll(() => { args = { "transition":{ "duration": 0 @@ -903,7 +903,7 @@ describe("TOOLTIP Position", function() { chart.$.chart.style("width", "200px"); }); - after(() => { + afterAll(() => { // revert chart.$.chart.style("width", "640px"); args = orgArgs; @@ -919,7 +919,7 @@ describe("TOOLTIP Position", function() { }); describe("Gauge with arc.rangeText with title option", () => { - before(() => { + beforeAll(() => { args = { title: { text: "Range text in 'absolute' value" diff --git a/test/internals/tooltip-redraw-spec.ts b/test/internals/tooltip-redraw-spec.ts index 70dba86a8..a75133a7e 100644 --- a/test/internals/tooltip-redraw-spec.ts +++ b/test/internals/tooltip-redraw-spec.ts @@ -4,7 +4,7 @@ */ /* eslint-disable */ // @ts-nocheck -import {expect} from "chai"; +import {beforeEach, beforeAll, afterAll, describe, expect, it} from "vitest"; import util from "../assets/util"; import {$COMMON, $ARC} from "../../src/config/classes"; @@ -26,7 +26,7 @@ describe("TOOLTIP: on redraws", function() { } describe("Multiple xs", () => { - before(() => { + beforeAll(() => { args = { data: { xs: { @@ -44,7 +44,7 @@ describe("TOOLTIP: on redraws", function() { }; }); - it("tooltip has been updated?", done => { + it("tooltip has been updated?", () => new Promise(done => { util.hoverChart(chart, "mousemove", { clientX: 487, clientY: 317 @@ -66,14 +66,14 @@ describe("TOOLTIP: on redraws", function() { expect(name.filter((d, i) => i === 2).text()).to.be.equal("data3"); expect(+value.filter((d, i) => i === 2).text()).to.be.equal(100); - done(); + done(1); } }); - }); + })); }); describe("Single x", () => { - before(() => { + beforeAll(() => { args = { data: { columns: [ @@ -89,7 +89,7 @@ describe("TOOLTIP: on redraws", function() { }; }); - it("tooltip has been updated?", done => { + it("tooltip has been updated?", () => new Promise(done => { util.hoverChart(chart, "mousemove", { clientX: 487, clientY: 317 @@ -114,14 +114,14 @@ describe("TOOLTIP: on redraws", function() { expect(name.filter((d, i) => i === 1).text()).to.be.equal("data3"); expect(+value.filter((d, i) => i === 1).text()).to.be.equal(100); - done(); + done(1); } }); - }); + })); }); describe("Single x, load different value", () => { - before(() => { + beforeAll(() => { args = { data: { columns: [ @@ -137,7 +137,7 @@ describe("TOOLTIP: on redraws", function() { }; }); - it("tooltip has been updated?", done => { + it("tooltip has been updated?", () => new Promise(done => { util.hoverChart(chart, "mousemove", { clientX: 487, clientY: 317 @@ -153,14 +153,14 @@ describe("TOOLTIP: on redraws", function() { expect(value.size()).to.be.equal(1); expect(+value.text()).to.be.equal(100); - done(); + done(1); } }); - }); + })); }); describe("Treemap", () => { - before(() => { + beforeAll(() => { args = { data: { columns: [ @@ -183,7 +183,7 @@ describe("TOOLTIP: on redraws", function() { }; }); - it("tooltip has been updated?", done => { + it("tooltip has been updated?", () => new Promise(done => { chart.tooltip.show({ data: { id: "data1" @@ -203,15 +203,15 @@ describe("TOOLTIP: on redraws", function() { expect(value.size()).to.be.equal(1); expect(value.text()).to.be.equal("38.20%"); - done(); + done(1); }, 300); } }); - }); + })); }); describe("Pie", () => { - before(() => { + beforeAll(() => { args = { data: { columns: [ @@ -223,7 +223,7 @@ describe("TOOLTIP: on redraws", function() { }; }); - it("tooltip has been updated?", done => { + it("tooltip has been updated?", () => new Promise(done => { const target = chart.$.arc.select(`path.${$ARC.arc}-data2`).node(); setTimeout(() => { @@ -247,16 +247,16 @@ describe("TOOLTIP: on redraws", function() { expect(prev).to.not.equal(current); expect(current).to.be.equal("70.6%"); - done(); + done(1); }, 300); } }); }, 300); - }); + })); }); describe("Radar", () => { - before(() => { + beforeAll(() => { args = { data: { x: "x", @@ -283,7 +283,7 @@ describe("TOOLTIP: on redraws", function() { }; }); - it("tooltip has been updated?", done => { + it("tooltip has been updated?", () => new Promise(done => { chart.tooltip.show({index: 2}) chart.load({ @@ -299,14 +299,14 @@ describe("TOOLTIP: on redraws", function() { return this.textContent === "data4"; }).size()).to.be.equal(1); - done(); + done(1); } }); - }); + })); }); describe("Using .groups() API", () => { - before(() => { + beforeAll(() => { args = { data: { columns: [ @@ -325,7 +325,7 @@ describe("TOOLTIP: on redraws", function() { }; }); - it("tooltip has been updated?", done => { + it("tooltip has been updated?", () => new Promise(done => { // when chart.tooltip.show({index: 3}); chart.groups([["data1", "data2", "data3"]]); @@ -342,10 +342,10 @@ describe("TOOLTIP: on redraws", function() { return this.textContent === "data4"; }).size()).to.be.equal(1); - done(); + done(1); } }); }, 300); - }); + })); }); }); diff --git a/test/internals/tooltip-spec.ts b/test/internals/tooltip-spec.ts index b4f277a3b..03ca273f9 100644 --- a/test/internals/tooltip-spec.ts +++ b/test/internals/tooltip-spec.ts @@ -4,7 +4,7 @@ */ /* eslint-disable */ // @ts-nocheck -import {expect} from "chai"; +import {beforeEach, beforeAll, afterAll, describe, expect, it} from "vitest"; import sinon from "sinon"; import { select as d3Select, @@ -128,13 +128,13 @@ describe("TOOLTIP", function() { }); } - before(() => { + beforeAll(() => { check((name) => { args.tooltip[name] = spy[name]; }); }); - after(() => { + afterAll(() => { // restore original args args = orgArgs; }); @@ -199,7 +199,7 @@ describe("TOOLTIP", function() { }; }) - it("tooltip events should be called", function(done) { + it("tooltip events should be called", () => new Promise(function(done) { new Promise(resolve => { util.hoverChart(chart, "mousemove", { clientX: 360, @@ -255,13 +255,13 @@ describe("TOOLTIP", function() { expect([type, d.id]).to.be.deep.equal(expectedFlow[i]); }) - done(); + done(1); }); - }); + })); }); describe("tooltip.position callback function", () => { - before(() => { + beforeAll(() => { args = { data: { x: "x", @@ -278,7 +278,7 @@ describe("TOOLTIP", function() { } }); - after(() => { + afterAll(() => { delete args.tooltip.position; }); @@ -305,7 +305,7 @@ describe("TOOLTIP", function() { args.tooltip.doNotHide = true; }); - it("tooltip repositioning: when the pos is greater than the current width", done => { + it("tooltip repositioning: when the pos is greater than the current width", () => new Promise(done => { util.hoverChart(chart); const {tooltip} = chart.$; @@ -316,9 +316,9 @@ describe("TOOLTIP", function() { setTimeout(() => { expect(parseInt(tooltip.style("left"))).to.be.below(left); - done(); + done(1); }, 200); - }); + })); it("set option tooltip.position", () => { args.data.axes = { @@ -362,7 +362,7 @@ describe("TOOLTIP", function() { }; }); - it("tooltip repositioning: when the chart width is increasing", done => { + it("tooltip repositioning: when the chart width is increasing", () => new Promise(done => { chart.resize({width:450}); util.hoverChart(chart); @@ -376,13 +376,9 @@ describe("TOOLTIP", function() { setTimeout(() => { expect(parseInt(tooltip.style("left"))).to.be.above(left); - done(); + done(1); }, 200); - }); - - it("", () => { - - }) + })); }); describe("tooltip order", () => { @@ -530,7 +526,7 @@ describe("TOOLTIP", function() { }); describe("linked tooltip positionFunction", () => { - before(() => { + beforeAll(() => { args2.tooltip.position = args.tooltip.position = tooltipPosition; chart2 = util.generate(args2); }); @@ -560,7 +556,7 @@ describe("TOOLTIP", function() { }); describe("linked tooltip order", () => { - before(() => { + beforeAll(() => { delete args.tooltip.position; delete args2.tooltip.position; }); @@ -685,7 +681,7 @@ describe("TOOLTIP", function() { }); describe("tooltip display at initialization", () => { - before(() => { + beforeAll(() => { args = { data: { columns: [ @@ -794,7 +790,7 @@ describe("TOOLTIP", function() { }); describe("tooltip grouped=false", () => { - before(() => { + beforeAll(() => { args = { data: { columns: [ @@ -857,7 +853,7 @@ describe("TOOLTIP", function() { }); describe("tooltip for area-range", () => { - before(() => { + beforeAll(() => { args = { data: { x: "x", @@ -902,7 +898,7 @@ describe("TOOLTIP", function() { }); describe("tooltip for null data", () => { - before(() => { + beforeAll(() => { args = { data: { columns: [ @@ -924,7 +920,7 @@ describe("TOOLTIP", function() { }); describe("tooltip for dynamic loaded data", () => { - before(() => { + beforeAll(() => { args = { data: { columns: [ @@ -935,12 +931,12 @@ describe("TOOLTIP", function() { }; }); - it("load data to be adding more columns", done => { + it("load data to be adding more columns", () => new Promise(done => { chart.load({ columns: [ ["data2", 44, 134, 98, 170] ], - done: () => { + done() { try { chart.tooltip.show({index: 3}); expect(+chart.$.tooltip.select(".value").html()).to.be.equal(170); @@ -949,10 +945,10 @@ describe("TOOLTIP", function() { } expect(true).to.be.true; - done(); + done(1); } }); - }); + })); it("set options", () => { args = { @@ -974,13 +970,13 @@ describe("TOOLTIP", function() { }; }); - it("should correctly showing tooltip for loaded data", done => { + it("should correctly showing tooltip for loaded data", () => new Promise(done => { chart.load({ columns: [ ["x", "2013-01-02", "2013-01-03", "2013-01-04", "2013-01-05"], ["data2", 220, 150, 40, 250] ], - done: () => { + done() { const index = 1; const expected = [200, 220]; @@ -992,10 +988,10 @@ describe("TOOLTIP", function() { expect(+tooltipValue[i].textContent).to.be.equal(expected[i]); }); - done(); + done(1); } }); - }); + })); it("set options", () => { args = { @@ -1009,14 +1005,14 @@ describe("TOOLTIP", function() { }; }); - it("should correclty show tooltip for new added x Axis ticks", done => { + it("should correclty show tooltip for new added x Axis ticks", () => new Promise(done => { chart.load({ columns: [ // when load different data name than the generated, it will add new axis ticks ["x", 35, 60, 85], ["data2", 10, 20, 160] ], - done: () => { + done() { const value = []; [1, 2, 5, 6].forEach(v => { @@ -1035,36 +1031,35 @@ describe("TOOLTIP", function() { chart.tooltip.show({index: 2}); expect(+chart.$.tooltip.select(".value").html()).to.be.equal(160); - done(); - }, 500); + done(1); + }, 300); } }); - }); + })); - it("should correclty show tooltip for overriden x Axis ticks", done => { + it("should correclty show tooltip for overriden x Axis ticks", () => new Promise(done => { chart.load({ columns: [ // when load same data name than the generated, it will add override axis ticks ["x", 35, 60, 85], ["data1", 10, 20, 160] ], - done: () => { + done() { chart.data()[0].values.forEach((v, i) => { chart.tooltip.show({index: i}); expect(+chart.$.tooltip.select(".value").html()).to.be.equal(v.value); }); - done(); + done(1); } }); - }); + })); }); describe("tooltip display", () => { - before(() => { - // @ts-ignore - sandbox("tooltip-wrapper").innerHTML = "<div id='tooltip'></div>"; + beforeAll(() => { + util.sandbox("tooltip-wrapper").innerHTML = "<div id='tooltip'></div>"; args = { data: { @@ -1219,7 +1214,7 @@ describe("TOOLTIP", function() { }); describe("tooltip display: after dynamic dimension update", () => { - before(() => { + beforeAll(() => { args = { data: { columns: [ @@ -1263,7 +1258,7 @@ describe("TOOLTIP", function() { }); describe("tooltip: candlestick type with xs option", () => { - before(() => { + beforeAll(() => { args = { data: { xs: { @@ -1319,7 +1314,7 @@ describe("TOOLTIP", function() { return [value, ratio, id, index]; }); - before(() => { + beforeAll(() => { args = { data: { columns: [ @@ -1341,7 +1336,7 @@ describe("TOOLTIP", function() { }; }); - after(() => { + afterAll(() => { spyTitle.resetHistory(); spyName.resetHistory(); spy.resetHistory(); @@ -1568,7 +1563,7 @@ describe("TOOLTIP", function() { }); describe("tooltip: show", () => { - before(() => { + beforeAll(() => { args = { data: { columns: [ diff --git a/test/internals/type-spec.ts b/test/internals/type-spec.ts index a1dc281b9..b6db310c3 100644 --- a/test/internals/type-spec.ts +++ b/test/internals/type-spec.ts @@ -4,7 +4,7 @@ */ /* eslint-disable */ /* global describe, beforeEach, it, expect */ -import {expect} from "chai"; +import {beforeEach, beforeAll, describe, expect, it} from "vitest"; import util from "../assets/util"; describe("TYPES", () => { @@ -16,7 +16,7 @@ describe("TYPES", () => { }); describe("data.type / data.types", () => { - before(() => { + beforeAll(() => { args = { data: { type: "bars", @@ -49,10 +49,9 @@ describe("TYPES", () => { }); }); - describe("internal.hasArcType", () => { describe("with data", () => { - before(() => { + beforeAll(() => { args = { data: { columns: [ @@ -79,7 +78,7 @@ describe("TYPES", () => { }); describe("with empty data", () => { - before(() => { + beforeAll(() => { args = { data: { columns: [], @@ -103,7 +102,7 @@ describe("TYPES", () => { }); describe("internal.hasType", () => { - before(() => { + beforeAll(() => { args = { data: { columns: [ diff --git a/test/internals/util-spec.ts b/test/internals/util-spec.ts index db90f0449..b2bc1eb61 100644 --- a/test/internals/util-spec.ts +++ b/test/internals/util-spec.ts @@ -4,11 +4,11 @@ */ /* eslint-disable */ /* global describe, beforeEach, it, expect */ -import {expect} from "chai"; +import {describe, expect, it} from "vitest"; import sinon from "sinon"; import {timeParse as d3TimeParse} from "d3-time-format"; import {window} from "../../src/module/browser"; -import {toArray, getBoundingRect, getCssRules, getPathBox, getPointer, getUnique, isArray, isNumber, sortValue, parseDate} from "../../src/module/util"; +import {toArray, getBoundingRect, getCssRules, getPathBox, getPointer, getUnique, isArray, isNumber, sortValue, parseDate} from "../assets/module/util"; describe("UTIL", function() { describe("toArray", () => { @@ -79,11 +79,16 @@ describe("UTIL", function() { describe("getPathBox", () => { it("should return element's path box value", () => { - const pathBox = getPathBox(document.body.querySelector("svg") as SVGGraphicsElement); + const svg: SVGGraphicsElement = document.createElementNS("http://www.w3.org/2000/svg", "svg"); + document.body.appendChild(svg); + + const pathBox = getPathBox(svg); for (let x in pathBox) { expect(isNumber(pathBox[x])).to.be.true; } + + svg.parentElement?.removeChild(svg); }); }); diff --git a/test/module/module-spec.ts b/test/module/module-spec.ts index b653f2933..ae7018eac 100644 --- a/test/module/module-spec.ts +++ b/test/module/module-spec.ts @@ -4,10 +4,11 @@ */ /* eslint-disable */ /* global describe, beforeEach, it, expect */ -import {expect} from "chai"; +import {beforeEach, beforeAll, afterEach, describe, expect, it} from "vitest"; import sinon from "sinon"; import util from "../assets/util"; -import {getGlobal, getFallback} from "../../src/module/browser"; +import {getFallback, window} from "../../src/module/browser"; +// import {getGlobal, getFallback, window} from "../../src/module/browser"; import {getWorker, runWorker} from "../../src/module/worker"; describe("MODULE", function() { @@ -23,7 +24,7 @@ describe("MODULE", function() { }); describe("Cache", () => { - before(() => { + beforeAll(() => { args = { data: { columns: [ @@ -70,27 +71,31 @@ describe("MODULE", function() { }); describe("Browser", () => { - it("check global & fallback returns correctly when no default param is given.", () => { - // test for global global - global = self = window; + // it("check global & fallback returns correctly when no default param is given.", () => { + // // test for global + // global = self = window; - // will return from 'global' - globalThis = null; - expect(getGlobal().document).to.be.ok; - - // will return from 'self' - global = null; - expect(getGlobal().document).to.be.ok; - - // will return from Function('return this')() - self = null; - expect(getGlobal().document).to.be.ok; - - // restore global - globalThis = global = self = window; - }); - - it("check fallback", done => { + // // will return from 'global' + // // @ts-ignore + // globalThis = null; + // expect(getGlobal().document).to.be.ok; + + // // will return from 'self' + // // @ts-ignore + // global = null; + // expect(getGlobal().document).to.be.ok; + + // // // will return from Function('return this')() + // // @ts-ignore + // self = null; + // expect(getGlobal().document).to.be.ok; + + // // restore global + // // @ts-ignore + // globalThis = global = self = window; + // }); + + it("check fallback", () => new Promise(done => { const spy = sinon.spy(); const [ @@ -112,9 +117,9 @@ describe("MODULE", function() { expect(spy.callCount).to.be.equal(2); - done(); + done(1); }, 100); - }); + })); }); describe("Worker", () => { @@ -130,6 +135,7 @@ describe("MODULE", function() { const error = console.error; + // @ts-ignore console.error = null; const logStub = sinon.stub(console, "log"); @@ -141,7 +147,7 @@ describe("MODULE", function() { console.error = error; }); - it("check with dependency function", done => { + it("check with dependency function", () => new Promise(done => { function depsFn() { return 1234; } @@ -151,10 +157,10 @@ describe("MODULE", function() { function() { return depsFn(); }, function(res) { expect(res).to.be.equal(1234); - done(); + done(1); }, [depsFn] )(); - }) + })); }); }); \ No newline at end of file diff --git a/test/plugin/bubble-compare/bubble-compare-spec.ts b/test/plugin/bubble-compare/bubble-compare-spec.ts index f04d464a4..0acd1b044 100644 --- a/test/plugin/bubble-compare/bubble-compare-spec.ts +++ b/test/plugin/bubble-compare/bubble-compare-spec.ts @@ -3,7 +3,7 @@ * billboard.js project is licensed under the MIT license */ /* eslint-disable */ -import {expect} from "chai"; +import {beforeEach, describe, expect, it} from "vitest"; import {select as d3Select} from "d3-selection"; import BubbleCompare from "../../../src/Plugin/bubblecompare"; import util from "../../assets/util"; diff --git a/test/plugin/sparkline/sparkline-spec.ts b/test/plugin/sparkline/sparkline-spec.ts index 6e7c18b7b..9af5f9dac 100644 --- a/test/plugin/sparkline/sparkline-spec.ts +++ b/test/plugin/sparkline/sparkline-spec.ts @@ -3,7 +3,7 @@ * billboard.js project is licensed under the MIT license */ /* eslint-disable */ -import {expect} from "chai"; +import {beforeEach, beforeAll, afterAll, describe, expect, it} from "vitest"; import {$AREA, $CIRCLE, $COMMON} from "../../../src/config/classes"; import Sparkline from "../../../src/Plugin/sparkline"; import util from "../../assets/util"; @@ -43,14 +43,14 @@ describe("PLUGIN: SPARKLINE", () => { }; let body = document.body.innerHTML; - before(() => { + beforeAll(() => { const div = document.createElement("div"); div.className = selector.replace(".", ""); document.body.append(div); }); - after(() => { + afterAll(() => { chart.destroy(); document.body.innerHTML = body; }); @@ -238,7 +238,7 @@ describe("PLUGIN: SPARKLINE", () => { }); describe("point option", () => { - before(() => { + beforeAll(() => { args = { size: { width: 150, diff --git a/test/plugin/stanford/stanford-elements-spec.ts b/test/plugin/stanford/stanford-elements-spec.ts index c739220fb..afff2c7ea 100644 --- a/test/plugin/stanford/stanford-elements-spec.ts +++ b/test/plugin/stanford/stanford-elements-spec.ts @@ -3,7 +3,7 @@ * billboard.js project is licensed under the MIT license */ /* eslint-disable */ -import {expect} from "chai"; +import {beforeEach, beforeAll, describe, expect, it} from "vitest"; import util from "../../assets/util"; import Stanford from "../../../src/Plugin/stanford/index"; import CLASS from "../../../src/Plugin/stanford/classes"; @@ -88,7 +88,7 @@ describe("PLUGIN: STANFORD ELEMENTS", () => { }); describe("timseries axis", () => { - before(() => { + beforeAll(() => { args = { data: { x: "Datetime", @@ -141,7 +141,7 @@ describe("PLUGIN: STANFORD ELEMENTS", () => { }; }); - it("check line position", done => { + it("check line position", () => new Promise(done => { const {$el: {main}} = chart.internal; const line = main.selectAll(".bb-stanford-line line"); const expected = [6, 543, 391, 30]; @@ -160,15 +160,15 @@ describe("PLUGIN: STANFORD ELEMENTS", () => { expect(v).to.be.closeTo(expected[i], 10); }); - done(); + done(1); }, 100); - }); + })); it("set options: axis.rotated=true", () => { args.axis.rotated = true; }); - it("check rotated axis line position", done => { + it("check rotated axis line position", () => new Promise(done => { const {$el: {main}} = chart.internal; const line = main.selectAll(".bb-stanford-line line"); const expected = [43, 476, 6, 421]; @@ -187,13 +187,13 @@ describe("PLUGIN: STANFORD ELEMENTS", () => { expect(v).to.be.closeTo(expected[i], 3); }); - done(); + done(1); }, 100); - }); + })); }); describe("category axis", () => { - before(() => { + beforeAll(() => { args = { data: { x: "x", @@ -234,7 +234,7 @@ describe("PLUGIN: STANFORD ELEMENTS", () => { }; }); - it("", done => { + it("", () => new Promise(done => { const {$el: {main}} = chart.internal; const line = main.selectAll(".bb-stanford-line line"); const expected = [69, 1439, 391, 210]; @@ -255,8 +255,8 @@ describe("PLUGIN: STANFORD ELEMENTS", () => { expect(chart.categories()).to.be.deep.equal(["a", "b", "c", "d"]); - done(); + done(1); }, 100); - }); + })); }); }); diff --git a/test/plugin/stanford/stanford-spec.ts b/test/plugin/stanford/stanford-spec.ts index aec15302e..650b1eff4 100644 --- a/test/plugin/stanford/stanford-spec.ts +++ b/test/plugin/stanford/stanford-spec.ts @@ -3,7 +3,7 @@ * billboard.js project is licensed under the MIT license */ /* eslint-disable */ -import {expect} from "chai"; +import {beforeEach, beforeAll, describe, expect, it} from "vitest"; import sinon from "sinon"; import util from "../../assets/util"; import Stanford from "../../../src/Plugin/stanford/index"; @@ -20,7 +20,7 @@ describe("PLUGIN: STANFORD", () => { }); describe("countEpochsInRegion", () => { - before(() => { + beforeAll(() => { args = { data: { x: "x", @@ -146,7 +146,7 @@ describe("PLUGIN: STANFORD", () => { }); describe("regions", () => { - before(() => { + beforeAll(() => { args.plugins = [ new Stanford({ epochs: [30, 35], @@ -184,7 +184,7 @@ describe("PLUGIN: STANFORD", () => { }); describe("tooltip", () => { - before(() => { + beforeAll(() => { args = { data: { x: "Datetime", @@ -254,7 +254,7 @@ describe("PLUGIN: STANFORD", () => { }); describe("scale", () => { - before(() => { + beforeAll(() => { args = { data: { x: "HPE", @@ -293,7 +293,7 @@ describe("PLUGIN: STANFORD", () => { }); describe("check options", () => { - before(() => { + beforeAll(() => { args = { data: { x: "HPE", diff --git a/test/plugin/tableview/tableview-spec.ts b/test/plugin/tableview/tableview-spec.ts index 78a79f93e..a1f95f7bd 100644 --- a/test/plugin/tableview/tableview-spec.ts +++ b/test/plugin/tableview/tableview-spec.ts @@ -3,7 +3,7 @@ * billboard.js project is licensed under the MIT license */ /* eslint-disable */ -import {expect} from "chai"; +import {beforeEach, beforeAll, afterAll, describe, expect, it} from "vitest"; import sinon from "sinon"; import TableView from "../../../src/Plugin/tableview"; import {defaultStyle} from "../../../src/Plugin/tableview/const"; @@ -30,7 +30,7 @@ describe("PLUGIN: TABLE-VIEW", () => { describe("default style", () => { let spy; - before(() => { + beforeAll(() => { args = { data: { columns: [ @@ -163,7 +163,7 @@ describe("PLUGIN: TABLE-VIEW", () => { describe("Specify non table element as target", () => { const divId = "tableView_div_wrapper"; - before(() => { + beforeAll(() => { args = { data: { columns: [ @@ -187,7 +187,7 @@ describe("PLUGIN: TABLE-VIEW", () => { document.body.appendChild(div); }); - after(() => { + afterAll(() => { document.getElementById(divId)?.remove(); }); @@ -200,7 +200,7 @@ describe("PLUGIN: TABLE-VIEW", () => { }); describe("different x axis types", () => { - before(() => { + beforeAll(() => { args = { data: { x: "x", @@ -269,7 +269,7 @@ describe("PLUGIN: TABLE-VIEW", () => { }); describe("nullString option", () => { - before(() => { + beforeAll(() => { args = { data: { x: "x", diff --git a/test/plugin/textoverlap/textoverlap-spec.ts b/test/plugin/textoverlap/textoverlap-spec.ts index 549191ec6..345cca8e2 100644 --- a/test/plugin/textoverlap/textoverlap-spec.ts +++ b/test/plugin/textoverlap/textoverlap-spec.ts @@ -3,7 +3,7 @@ * billboard.js project is licensed under the MIT license */ /* eslint-disable */ -import {expect} from "chai"; +import {beforeEach, describe, expect, it} from "vitest"; import util from "../../assets/util"; import {$TEXT} from "../../../src/config/classes"; import TextOverlap from "../../../src/Plugin/textoverlap"; diff --git a/test/shape/arc-needle-spec.ts b/test/shape/arc-needle-spec.ts index 8a7e76ff6..41a0df96d 100644 --- a/test/shape/arc-needle-spec.ts +++ b/test/shape/arc-needle-spec.ts @@ -5,7 +5,7 @@ /* eslint-disable */ // @ts-nocheck /* global describe, beforeEach, it, expect */ -import {expect} from "chai"; +import {beforeEach, beforeAll, afterAll, describe, expect, it} from "vitest"; import {$ARC} from "../../src/config/classes"; import util from "../assets/util"; import { $GAUGE } from "../../src/config/classes"; @@ -80,7 +80,7 @@ describe("SHAPE ARC: NEEDLE option", () => { expect(+arcs.select(`.${$ARC.chartArcsTitle}`).text()).to.be.equal(args.arc.needle.value); }); - it(".updateHelper()", done => { + it(".updateHelper()", () => new Promise(done => { const {$el: {arcs, needle}} = chart.internal; const getRotate = transform => +transform.replace(/rotate\((\d+\.?\d+?)deg\).*/, "$1"); @@ -95,7 +95,7 @@ describe("SHAPE ARC: NEEDLE option", () => { expect(getRotate(needle.style("transform"))).to.be.equal(252); resolve(); - }, 500); + }, 300); }).then(() => { return new Promise((resolve) => { // hide 'data1' @@ -111,7 +111,7 @@ describe("SHAPE ARC: NEEDLE option", () => { chart.toggle("data1"); resolve(); - }, 500); + }, 300); }); }).then(() => { return new Promise((resolve) => { @@ -123,7 +123,7 @@ describe("SHAPE ARC: NEEDLE option", () => { expect(+arcs.select(`.${$ARC.chartArcsTitle}`).text()).to.be.equal(70); resolve(); - }, 500); + }, 300); }); }).then(() => { // hide 'data1 @@ -133,10 +133,10 @@ describe("SHAPE ARC: NEEDLE option", () => { // title text value should be equal as the initial value expect(+arcs.select(`.${$ARC.chartArcsTitle}`).text()).to.be.equal(70); - done(); - }, 500); + done(1); + }, 300); }); - }); + })); it("set options: arc.needle.path", () => { args.arc.needle.path = function(length) { @@ -181,7 +181,7 @@ describe("SHAPE ARC: NEEDLE option", () => { }; }); - it("check with startingAngle", done => { + it("check with startingAngle", () => new Promise(done => { const {$el: {needle}} = chart.internal; expect(getDegree(needle.style("transform"))).to.be.equal(114.592); @@ -192,13 +192,13 @@ describe("SHAPE ARC: NEEDLE option", () => { setTimeout(() => { expect(getDegree(needle.style("transform"))).to.be.equal(294.592); - done(); - }, 500); - }); + done(1); + }, 300); + })); }); describe("gauge", () => { - before(() => { + beforeAll(() => { args = { data: { columns: [ @@ -248,7 +248,7 @@ describe("SHAPE ARC: NEEDLE option", () => { expect(arcs.select(`.${$GAUGE.chartArcsGaugeTitle}`).text()).to.be.equal("50%"); }); - it(".updateHelper()", done => { + it(".updateHelper()", () => new Promise(done => { const {$el: {arcs}} = chart.internal; // when @@ -257,9 +257,9 @@ describe("SHAPE ARC: NEEDLE option", () => { setTimeout(() => { expect(arcs.select(`.${$GAUGE.chartArcsGaugeTitle}`).text()).to.be.equal("70%"); - done(); - }, 500); - }); + done(1); + }, 300); + })); it("set options: multiple dataseries", () => { args.data.columns = [ @@ -270,7 +270,7 @@ describe("SHAPE ARC: NEEDLE option", () => { args.arc.needle.value = undefined; }); - it("check when multiple dataseries are bound.", done => { + it("check when multiple dataseries are bound.", () => new Promise(done => { const {$el: {arcs}} = chart.internal; const gaugeTitle = arcs.select(`.${$GAUGE.chartArcsGaugeTitle}`); @@ -284,7 +284,7 @@ describe("SHAPE ARC: NEEDLE option", () => { setTimeout(() => { expect(gaugeTitle.text()).to.be.equal("0%"); resolve(); - }, 500); + }, 300); }).then(() => { // when chart.$.needle.updateHelper(85, true); @@ -293,10 +293,10 @@ describe("SHAPE ARC: NEEDLE option", () => { setTimeout(() => { expect(gaugeTitle.text()).to.be.equal("85%"); - done(); - }, 500); + done(1); + }, 300); }); - }); + })); it("set options", () => { args = { @@ -317,7 +317,7 @@ describe("SHAPE ARC: NEEDLE option", () => { }; }); - it("check with startingAngle", done => { + it("check with startingAngle", () => new Promise(done => { const {$el: {needle}} = chart.internal; expect(getDegree(needle.style("transform"))).to.be.equal(-29.7938); @@ -328,9 +328,9 @@ describe("SHAPE ARC: NEEDLE option", () => { setTimeout(() => { expect(getDegree(needle.style("transform"))).to.be.equal(74.4845); - done(); - }, 500); - }); + done(1); + }, 300); + })); it("set options", () => { args = { @@ -354,7 +354,7 @@ describe("SHAPE ARC: NEEDLE option", () => { }; }); - it("check with fullCircle and arcLength options", done => { + it("check with fullCircle and arcLength options", () => new Promise(done => { const {$el: {needle}} = chart.internal; const path = needle.attr("d"); @@ -367,7 +367,7 @@ describe("SHAPE ARC: NEEDLE option", () => { setTimeout(() => { expect(getDegree(needle.style("transform"))).to.be.closeTo(-74.4845, 1); resolve(); - }, 500); + }, 300); }).then(() => { // when chart.$.needle.updateHelper(100); @@ -375,14 +375,14 @@ describe("SHAPE ARC: NEEDLE option", () => { setTimeout(() => { expect(getDegree(needle.style("transform"))).to.be.equal(177.515); - done(); - }, 500); + done(1); + }, 300); }); - }); + })); }); describe("pie", () => { - before(() => { + beforeAll(() => { args = { data: { columns: [ @@ -412,7 +412,7 @@ describe("SHAPE ARC: NEEDLE option", () => { expect(getDegree(needle.style("transform"))).to.be.equal(216); }); - it("toggle data", done => { + it("toggle data", () => new Promise(done => { const {$el: {needle}} = chart.internal; new Promise((resolve) => { @@ -422,7 +422,7 @@ describe("SHAPE ARC: NEEDLE option", () => { setTimeout(() => { expect(getDegree(needle.style("transform"))).to.be.equal(270); resolve(); - }, 500); + }, 300); }).then(() => { // when chart.toggle("data4"); @@ -430,9 +430,9 @@ describe("SHAPE ARC: NEEDLE option", () => { setTimeout(() => { expect(getDegree(needle.style("transform"))).to.be.equal(360); - done(); - }, 500); + done(1); + }, 300); }); - }); + })); }); }); diff --git a/test/shape/arc-rangeText-spec.ts b/test/shape/arc-rangeText-spec.ts index 4837505a1..4792c893d 100644 --- a/test/shape/arc-rangeText-spec.ts +++ b/test/shape/arc-rangeText-spec.ts @@ -5,7 +5,7 @@ /* eslint-disable */ // @ts-nocheck /* global describe, beforeEach, it, expect */ -import {expect} from "chai"; +import {beforeEach, beforeAll, afterAll, describe, expect, it} from "vitest"; import {$ARC} from "../../src/config/classes"; import util from "../assets/util"; @@ -42,7 +42,7 @@ describe("SHAPE ARC: rangeText option", () => { chart = util.generate(args); }); - it("basic functionality: donut", () => { + it("basic functionality: donut", () => new Promise(done => { const expected = [ [98, -192], [218, 3], @@ -57,8 +57,8 @@ describe("SHAPE ARC: rangeText option", () => { const [x, y] = this.getAttribute("transform").split(",").map(util.parseNum); const [nx, ny] = expected[i]; - expect(x).to.be.closeTo(nx, 1); - expect(y).to.be.closeTo(ny, 1); + expect(x).closeTo(nx, 1); + expect(y).closeTo(ny, 1); }); // check for format function @@ -83,9 +83,9 @@ describe("SHAPE ARC: rangeText option", () => { expect(this.style.opacity).to.be.empty; }); - done(); + done(1); }); - }); + })); it("set options: data.type='pie' / rangeText.unit='%'", () => { args.arc.rangeText.values = [10, 25, 50, 75, 99]; @@ -93,7 +93,7 @@ describe("SHAPE ARC: rangeText option", () => { args.data.type = "pie"; }); - it("basic functionality: pie", done => { + it("basic functionality: pie", () => new Promise(done => { const expected = [ [128, -174], [218, 3], @@ -131,15 +131,15 @@ describe("SHAPE ARC: rangeText option", () => { expect(this.style.opacity).to.be.empty; }); - done(); + done(1); }); - }); + })); it("set options: data.type='gauge'", () => { args.data.type = "gauge"; }); - it("basic functionality: gauge", done => { + it("basic functionality: gauge", () => new Promise(done => { const expected = [ [-297, -95], [-220, -220], @@ -187,15 +187,15 @@ describe("SHAPE ARC: rangeText option", () => { expect(y).to.be.closeTo(ny, 1); }); - done(); + done(1); }); - }); + })); it("set options: arc.rangeText.fixed=true", () => { args.arc.rangeText.fixed = true; }); - it("should rangeText position fixed on gauge type.", done => { + it("should rangeText position fixed on gauge type.", () => new Promise(done => { const expected = [ [-297, -95], [-220, -220], @@ -243,9 +243,9 @@ describe("SHAPE ARC: rangeText option", () => { expect(y).to.be.closeTo(ny, 1); }); - done(); + done(1); }); - }); + })); it("set options: arc.rangeText.position #1", () => { args.arc.rangeText.position = { diff --git a/test/shape/arc-spec.ts b/test/shape/arc-spec.ts index 93729e9f7..abdd71e3b 100644 --- a/test/shape/arc-spec.ts +++ b/test/shape/arc-spec.ts @@ -5,7 +5,7 @@ /* eslint-disable */ // @ts-nocheck /* global describe, beforeEach, it, expect */ -import {expect} from "chai"; +import {beforeEach, beforeAll, afterAll, describe, expect, it} from "vitest"; import sinon from "sinon"; import {selectAll as d3SelectAll} from "d3-selection"; import {$ARC, $COMMON, $LEGEND, $SHAPE} from "../../src/config/classes"; @@ -19,14 +19,14 @@ describe("SHAPE ARC", () => { shape: `path.${$SHAPE.shape}.${$ARC.arc}.${$ARC.arc}` }; - // after(() => { + // afterAll(() => { // util.destroyAll(); // }); describe("show pie chart", () => { let instChart; - before(() => { + beforeAll(() => { return new Promise((resolve) => { instChart = util.generate({ data: { @@ -94,7 +94,7 @@ describe("SHAPE ARC", () => { expect(total).to.be.equal(100); }); - it("should have correct d even if data id can be converted to a color", done => { + it("should have correct d even if data id can be converted to a color", () => new Promise(done => { const chart = util.generate({ data: { columns: [ @@ -110,15 +110,15 @@ describe("SHAPE ARC", () => { expect(chart.$.main.select(`.${$ARC.arc}-black`).attr("d")) .to.be.equal("M-124.522,-171.39A211.85,211.85,0,0,1,0,-211.85L0,0Z"); - done(); - }, 500); - }); + done(1); + }, 300); + })); }); describe("Check attribute", () => { let instChart; - before(() => { + beforeAll(() => { return new Promise((resolve) => { instChart = util.generate({ data: { @@ -212,7 +212,7 @@ describe("SHAPE ARC", () => { }); }); - it("check for variant innerRadius", done => { + it("check for variant innerRadius", () => new Promise(done => { const innerRadius = { data1: 50, data2: 80, @@ -244,11 +244,11 @@ describe("SHAPE ARC", () => { chart.$.arc.selectAll("path").each(function(d) { expect(this.getAttribute("d").indexOf(expectedPath[d.data.id]) > -1).to.be.ok; }); - done(); - }, 500); - }); + done(1); + }, 300); + })); - it("check for outerRadius", done => { + it("check for outerRadius", () => new Promise(done => { const chart = util.generate({ data: { columns: [ @@ -272,11 +272,11 @@ describe("SHAPE ARC", () => { expect(chart.internal.state.outerRadius).to.be.equal(chart.config("pie.outerRadius")); - done(); + done(1); }, 300); - }); + })); - it("check for variant outerRadius", done => { + it("check for variant outerRadius", () => new Promise(done => { const outerRadius = { data1: 120, data2: 80 @@ -315,13 +315,13 @@ describe("SHAPE ARC", () => { expect(this.getAttribute("transform")).to.be.equal(expectedTextPos[d.data.id]); }); - done(); + done(1); }, 300); - }); + })); }); describe("Check position & data label text", () => { - it("check for Pie's threshold data label text", done => { + it("check for Pie's threshold data label text", () => new Promise(done => { const chart = util.generate({ data: { columns: [ @@ -364,10 +364,10 @@ describe("SHAPE ARC", () => { setTimeout(() => { checkText(); - done(); + done(1); }, 200); }); - }); + })); it("check if Pie's size adjusts when legend is positioned to right.", () => { const chart = util.generate({ @@ -395,7 +395,7 @@ describe("SHAPE ARC", () => { const spyOver = sinon.spy(); const spyOut = sinon.spy(); - before(() => { + beforeAll(() => { chart = util.generate({ data: { columns: [ @@ -415,7 +415,7 @@ describe("SHAPE ARC", () => { spyOut.resetHistory(); });*/ - it("should interact properly for mouseover & mouseout", done => { + it("should interact properly for mouseover & mouseout", () => new Promise(done => { setTimeout(() => { const path = chart.$.main.select(`path.${$ARC.arc}-data2`).node(); @@ -433,15 +433,15 @@ describe("SHAPE ARC", () => { expect(spyOut.calledOnce).to.be.true; expect(chart.$.tooltip.select(".value").text()).to.be.equal("50.0%"); - done(); - }, 500); - }); + done(1); + }, 300); + })); }); describe("check for 0 or null value rendering", () => { let chart; - before(() => { + beforeAll(() => { chart = util.generate({ data: { columns: [["data1", 100], ["data2", 0], ["data3", null]], @@ -534,35 +534,35 @@ describe("SHAPE ARC", () => { const titlePos = title.top - arc.top + (title.height / 2); expect(titlePos).to.be.closeTo(arc.height / 2, 2); - done && done(); + done && done(1); }; - it("check for two lined text position", done => { + it("check for two lined text position", () => new Promise(done => { setTimeout(() => { checkAtMiddle(done); }, 100); - }); + })); it("set option args.donut.title", () => { args.donut.title = "Title 1\nTitle 2\nTitle 3"; }); - it("check for three lined text position", done => { + it("check for three lined text position", () => new Promise(done => { setTimeout(() => { checkAtMiddle(done); }, 100); - }); + })); }); describe("check for data loading", () => { - it("Interaction of chart when initialized with 0 and .load()", done => { + it("Interaction of chart when initialized with 0 and .load()", () => new Promise(done => { const chart = util.generate({ data: { - columns: [ - ["data1", 0], - ["data2", 0], - ], - type: "pie", + columns: [ + ["data1", 0], + ["data2", 0], + ], + type: "pie", } }); @@ -572,7 +572,7 @@ describe("SHAPE ARC", () => { ["data1", 3], ["data2", 6], ], - done: () => { + done() { const legend = chart.$.legend.select(`.${$LEGEND.legendItem}-data2`).node(); util.fireEvent(legend, "mouseover"); @@ -586,12 +586,12 @@ describe("SHAPE ARC", () => { expect(rect.width > 0 && rect.height > 0).to.be.true; }); - done(); - }, 1000); + done(1); + }, 300); } }); - }, 1000); - }); + }, 300); + })); }); describe("check for startingAngle", () => { @@ -617,7 +617,7 @@ describe("SHAPE ARC", () => { chart = util.generate(args); }); - it("check Pie's startingAngle", done => { + it("check Pie's startingAngle", () => new Promise(done => { const expectedPath = [ "M-134.17,163.948A211.85,211.85,0,0,1,-114.463,-178.266L0,0Z", "M178.266,-114.463A211.85,211.85,0,0,1,-134.17,163.948L0,0Z", @@ -629,15 +629,15 @@ describe("SHAPE ARC", () => { expect(this.getAttribute("d")).to.be.equal(expectedPath[i]); }); - done(); + done(1); }, 100); - }); + })); it("set options data.type=donut", () => { args.data.type = "donut"; }); - it("check Donut's startingAngle", done => { + it("check Donut's startingAngle", () => new Promise(done => { const expectedPath = [ "M-39.144,208.202A211.85,211.85,0,0,1,-185.916,-101.566L-111.55,-60.94A127.11,127.11,0,0,0,-23.486,124.921Z", "M101.566,-185.916A211.85,211.85,0,0,1,-39.144,208.202L-23.486,124.921A127.11,127.11,0,0,0,60.94,-111.55Z", @@ -649,9 +649,9 @@ describe("SHAPE ARC", () => { expect(this.getAttribute("d")).to.be.equal(expectedPath[i]); }); - done(); + done(1); }, 100); - }); + })); }); describe("check for expand rate", () => { @@ -708,30 +708,30 @@ describe("SHAPE ARC", () => { }).then(() => { setTimeout(() => { expect(path.getTotalLength()).to.be.greaterThan(length); - done(); + done(1); }, 300); }); }; - it("check Pie's expand", done => { + it("check Pie's expand", () => new Promise(done => { checkExpand(done); - }); + })); it("set options: data.type='donut'", () => { args.data.type = "donut"; }); - it("check Donut's expand", done => { + it("check Donut's expand", () => new Promise(done => { checkExpand(done); - }); + })); it("set options: data.type='gauge'", () => { args.data.type = "donut"; }); - it("check Gauge's expand", done => { + it("check Gauge's expand", () => new Promise(done => { checkExpand(done); - }); + })); }); describe("Arc options", () => { @@ -777,7 +777,7 @@ describe("SHAPE ARC", () => { }; }); - it("check the corner radius in 'ratio' value, applied correctly.", done => { + it("check the corner radius in 'ratio' value, applied correctly.", () => new Promise(done => { const expected = [ ['M28.424,87.481', '23.75,23.75,0,0,1,7.296,118.526'], ['M0,-91.983', '23.75,23.75,0,0,1,29.688,-114.979'], @@ -794,9 +794,9 @@ describe("SHAPE ARC", () => { expect(path).to.be.deep.equal(expected[i]); }); - done(); + done(1); }, 300); - }); + })); it("set option: function", () => { args.arc.cornerRadius = function(id, value, outerRadius) { @@ -844,7 +844,7 @@ describe("SHAPE ARC", () => { }; }); - it("should exapnd Arc shape correctly on transition.", done => { + it("should exapnd Arc shape correctly on transition.", () => new Promise(done => { const {arc} = instChart.$; const rx = /^[01]$/; let i = 0; @@ -855,7 +855,7 @@ describe("SHAPE ARC", () => { const interval = setInterval(function() { if (i > 10) { clearInterval(interval); - done(); + done(1); } const arcCommand = arc.select(`.${$ARC.arc}-data1`) @@ -878,9 +878,9 @@ describe("SHAPE ARC", () => { i++; }, 15); - }); + })); - it("when colorish string value is used as data name", done => { + it("when colorish string value is used as data name", () => new Promise(done => { const chart = util.generate({ data: { columns: [ @@ -900,10 +900,10 @@ describe("SHAPE ARC", () => { // shape shouldn't be an empty path expect(d).to.not.be.equal("M 0 0"); - done(); - }, 500); + done(1); + }, 300); } }); - }); + })); }); }); diff --git a/test/shape/area-range-spec.ts b/test/shape/area-range-spec.ts index 502a0e76e..0c5cf9970 100644 --- a/test/shape/area-range-spec.ts +++ b/test/shape/area-range-spec.ts @@ -4,7 +4,7 @@ */ /* eslint-disable */ /* global describe, beforeEach, it, expect */ -import {expect} from "chai"; +import {beforeEach, beforeAll, describe, expect, it} from "vitest"; import {select as d3Select} from "d3-selection"; import {$COMMON, $LINE} from "../../src/config/classes"; import util from "../assets/util"; @@ -26,7 +26,7 @@ describe("SHAPE AREA-RANGE", () => { const min = 120; const max = 220; - before(() => { + beforeAll(() => { args = { data: { x: "timestamps", @@ -76,13 +76,13 @@ describe("SHAPE AREA-RANGE", () => { }) }; - it("Should render the lines correctly when array data supplied", done => { + it("Should render the lines correctly when array data supplied", () => new Promise(done => { setTimeout(() => { checkLineLen("data1"); checkLineLen("data2"); - done(); + done(1); }, 300) - }); + })); it("should use cardinal interpolation by default", () => { expect(chart.internal.config.spline_interpolation_type).to.be.equal("cardinal"); @@ -97,7 +97,7 @@ describe("SHAPE AREA-RANGE", () => { }); describe("combined area-range type with grouped data", () => { - before(() => { + beforeAll(() => { args = { data: { columns: [ @@ -177,7 +177,7 @@ describe("SHAPE AREA-RANGE", () => { }); describe("area-step-range", () => { - before(() => { + beforeAll(() => { args = { data: { columns: [ diff --git a/test/shape/area-spec.ts b/test/shape/area-spec.ts index 96a19a550..493df198b 100644 --- a/test/shape/area-spec.ts +++ b/test/shape/area-spec.ts @@ -4,7 +4,7 @@ */ /* eslint-disable */ /* global describe, beforeEach, it, expect */ -import {expect} from "chai"; +import {beforeEach, beforeAll, describe, expect, it} from "vitest"; import {select as d3Select} from "d3-selection"; import {$AREA, $AXIS, $CIRCLE, $COMMON, $LINE} from "../../src/config/classes"; import util from "../assets/util"; @@ -23,7 +23,7 @@ describe("SHAPE AREA", () => { }); describe("timeseries stacked area when line.connectNull=true", () => { - before(() => { + beforeAll(() => { args = { data: { columns: [ @@ -64,7 +64,7 @@ describe("SHAPE AREA", () => { }); describe("area path generation", () => { - before(() => { + beforeAll(() => { args = { data: { columns: [ @@ -136,7 +136,7 @@ describe("SHAPE AREA", () => { }); describe("rotated area-step type", () => { - before(() => { + beforeAll(() => { args = { data: { x: "x", @@ -197,7 +197,7 @@ describe("SHAPE AREA", () => { }); describe("Stacked area-step with category & timeseries x Axis type", () => { - before(() => { + beforeAll(() => { args = { data: { columns: [ @@ -329,7 +329,7 @@ describe("SHAPE AREA", () => { }); describe("area linear gradient", () => { - before(() => { + beforeAll(() => { args = { data: { columns: [ @@ -429,23 +429,21 @@ describe("SHAPE AREA", () => { }; }); - it("should generate customized liearGradient element", done => { - setTimeout(() => { - chart.load({ - columns: [ - ["data", 10, 20, 30, 40] - ], - done: () => { - expect(chart.$.defs.select("linearGradient").empty()).to.be.false; - done(); - } - }); - }, 1000); - }); + it("should generate customized liearGradient element", () => new Promise(done => { + chart.load({ + columns: [ + ["data", 10, 20, 30, 40] + ], + done() { + expect(chart.$.defs.select("linearGradient").empty()).to.be.false; + done(1); + } + }); + })); }); describe("area options", () => { - before(() => { + beforeAll(() => { args = { data: { columns: [ @@ -481,7 +479,7 @@ describe("SHAPE AREA", () => { }); describe("area fill options: above & below", () => { - before(() => { + beforeAll(() => { args = { data: { columns: [ diff --git a/test/shape/bar-spec.ts b/test/shape/bar-spec.ts index 1509d603b..bfc8adb88 100644 --- a/test/shape/bar-spec.ts +++ b/test/shape/bar-spec.ts @@ -4,7 +4,7 @@ */ /* eslint-disable */ /* global describe, beforeEach, it, expect */ -import {expect} from "chai"; +import {beforeEach, beforeAll, describe, expect, it} from "vitest"; import {select as d3Select} from "d3-selection"; import util from "../assets/util"; import {$AXIS, $BAR, $COMMON, $EVENT, $LINE, $SHAPE} from "../../src/config/classes"; @@ -19,7 +19,7 @@ describe("SHAPE BAR", () => { describe("with groups", () => { describe("with indexed data", () => { - before(() => { + beforeAll(() => { args = { data: { columns: [ @@ -49,7 +49,7 @@ describe("SHAPE BAR", () => { describe("with timeseries data", () => { let barWidth = 0; - before(() => { + beforeAll(() => { args = { data: { x: "date", @@ -102,7 +102,7 @@ describe("SHAPE BAR", () => { }); describe("with category data", () => { - before(() => { + beforeAll(() => { args = { data: { x: "date", @@ -137,7 +137,7 @@ describe("SHAPE BAR", () => { }); describe("Stacking order", () => { - before(() => { + beforeAll(() => { args = { data: { json: [ @@ -319,7 +319,7 @@ describe("SHAPE BAR", () => { describe("internal.isWithinBar", () => { describe("with normal axis", () => { - before(() => { + beforeAll(() => { args = { data: { columns: [ @@ -335,128 +335,128 @@ describe("SHAPE BAR", () => { }; }); - it("should not be within bar", done => { + it("should not be within bar", () => new Promise(done => { const internal = chart.internal; const bar = chart.$.main.select(`.${$COMMON.target}-data1 .${$BAR.bar}-0`) .on("click", function(event) { internal.state.event = event; expect(internal.isWithinBar(this)).to.not.be.ok; - done(); + done(1); }); util.fireEvent(bar.node(), "click", { clientX: 0, clientY: 0 }, chart); - }); + })); - it("should be within bar", done => { + it("should be within bar", () => new Promise(done => { const internal = chart.internal; const bar = chart.$.main.select(`.${$COMMON.target}-data1 .${$BAR.bar}-0`) .on("click", function(event) { internal.state.event = event; expect(internal.isWithinBar(this)).to.be.ok; - done(); + done(1); }); util.fireEvent(bar.node(), "click", { clientX: 31, clientY: 280 }, chart); - }); + })); - it("should not be within bar of negative value", done => { + it("should not be within bar of negative value", () => new Promise(done => { const internal = chart.internal; const bar = chart.$.main.select(`.${$COMMON.target}-data3 .${$BAR.bar}-0`) .on("click", function(event) { internal.state.event = event; expect(internal.isWithinBar(this)).to.not.be.ok; - done(); + done(1); }); util.fireEvent(bar.node(), "click", { clientX: 68, clientY: 280 }, chart); - }); + })); - it("should be within bar of negative value", done => { + it("should be within bar of negative value", () => new Promise(done => { const internal = chart.internal; const bar = chart.$.main.select(`.${$COMMON.target}-data3 .${$BAR.bar}-0`) .on("click", function(event) { internal.state.event = event; expect(internal.isWithinBar(this)).to.be.ok; - done(); + done(1); }); util.fireEvent(bar.node(), "click", { clientX: 68, clientY: 350 }, chart); - }); + })); }); describe("with rotated axis", () => { - before(() => { + beforeAll(() => { args.axis.rotated = true; }); - it("should not be within bar", done => { + it("should not be within bar", () => new Promise(done => { const internal = chart.internal; const bar = chart.$.main.select(`.${$COMMON.target}-data1 .${$BAR.bar}-0`) .on("click", function(event) { internal.state.event = event; expect(internal.isWithinBar(this)).to.not.be.ok; - done(); + done(1); }); util.fireEvent(bar.node(), "click", { clientX: 0, clientY: 0 }, chart); - }); + })); - it("should be within bar", done => { + it("should be within bar", () => new Promise(done => { const internal = chart.internal; const bar = chart.$.main.select(`.${$COMMON.target}-data1 .${$BAR.bar}-0`) .on("click", function(event) { internal.state.event = event; expect(internal.isWithinBar(this)).to.be.ok; - done(); + done(1); }); util.fireEvent(bar.node(), "click", { clientX: 190, clientY: 20 }, chart); - }); + })); - it("should be within bar of negative value", done => { + it("should be within bar of negative value", () => new Promise(done => { const internal = chart.internal; const bar = chart.$.main.select(`.${$COMMON.target}-data3 .${$BAR.bar}-0`) .on("click", function(event) { internal.state.event = event; expect(internal.isWithinBar(this)).to.be.ok; - done(); + done(1); }); util.fireEvent(bar.node(), "click", { clientX: 68, clientY: 50 }, chart); - }); + })); }); }); describe("multiple xs", () => { - before(() => { + beforeAll(() => { args = { data: { type: "bar", @@ -617,7 +617,7 @@ describe("SHAPE BAR", () => { const width = 15; const padding = 3; - before(() => { + beforeAll(() => { args = { data: { type: "bar", @@ -848,7 +848,7 @@ describe("SHAPE BAR", () => { }); describe("bar indices", () => { - before(() => { + beforeAll(() => { args = { data: { columns: [ @@ -880,7 +880,7 @@ describe("SHAPE BAR", () => { }); describe("bar radius", () => { - before(() => { + beforeAll(() => { args = { data: { columns: [ @@ -991,7 +991,7 @@ describe("SHAPE BAR", () => { }; }); - it("path data should remain with Arc command with value 0(zero).", done => { + it("path data should remain with Arc command with value 0(zero).", () => new Promise(done => { // when chart.load({ columns: [["d3", 3, 5, 8, 3, 9, 0]], @@ -999,10 +999,10 @@ describe("SHAPE BAR", () => { const d = this.$.bar.bars.filter(":last-child").attr("d"); expect(/\sa\d+/.test(d)).to.be.true; - done(); + done(1); } }); - }); + })); it("set options", () => { args = { @@ -1054,7 +1054,7 @@ describe("SHAPE BAR", () => { }); describe("bar linear gradient", () => { - before(() => { + beforeAll(() => { args = { data: { columns: [ @@ -1173,24 +1173,22 @@ describe("SHAPE BAR", () => { }; }); - it("should generate customized liearGradient element", done => { - setTimeout(() => { - chart.load({ - columns: [ + it("should generate customized liearGradient element", () => new Promise(done => { + chart.load({ + columns: [ ["data", 10, 20, 30, 40] - ], - done: () => { - expect(chart.$.defs.select("linearGradient").empty()).to.be.false; - done(); - } - }); - }, 1000); - }); + ], + done() { + expect(chart.$.defs.select("linearGradient").empty()).to.be.false; + done(1); + } + }); + })); }); describe("bar overlap", () => { - before(() => { + beforeAll(() => { args = { data: { columns: [ @@ -1223,7 +1221,7 @@ describe("SHAPE BAR", () => { const bar = bars.filter(d => d.id === id).nodes(); ticks.forEach((t, i) => { - const xPos = +bar[i].getAttribute("d").match(re)?.[1] ?? 0; + const xPos = +bar[i].getAttribute("d").match(re)?.[1] || 0; const expectedX = t - width[id] / 2; expect(xPos).to.be.closeTo(expectedX, 1); @@ -1233,7 +1231,7 @@ describe("SHAPE BAR", () => { }); describe("bar position", () => { - before(() => { + beforeAll(() => { args = { data: { columns: [ @@ -1347,7 +1345,7 @@ describe("SHAPE BAR", () => { }); describe("bar sensitivity", () => { - before(() => { + beforeAll(() => { args = { size: { width: 400, @@ -1392,7 +1390,7 @@ describe("SHAPE BAR", () => { }); describe("bar label.threshold", () => { - before(() => { + beforeAll(() => { args = { data: { columns: [ @@ -1425,7 +1423,7 @@ describe("SHAPE BAR", () => { expect(res).to.be.deep.equal(expected); } - it("check data label shown #1", done => { + it("check data label shown #1", () => new Promise(done => { checkLabel([1000, -1000]); // when @@ -1433,33 +1431,33 @@ describe("SHAPE BAR", () => { setTimeout(() => { checkLabel([230, -230, -1000]); - done(); + done(1); }, 350); - }); + })); - it("check data label shown #2", done => { + it("check data label shown #2", () => new Promise(done => { // when chart.hide(["data2", "data4"]); setTimeout(() => { checkLabel([230, -230]); - done(); + done(1); }, 350); - }); + })); - it("check data label shown #3", done => { + it("check data label shown #3", () => new Promise(done => { // when chart.hide(["data1", "data2", "data4"]); setTimeout(() => { checkLabel([-30, -230]); - done(); + done(1); }, 350); - }); + })); }); describe("bar width on zoom", () => { - before(() => { + beforeAll(() => { args = { data: { columns: [ @@ -1476,7 +1474,7 @@ describe("SHAPE BAR", () => { }; }); - it("should maintain width size after toggle", done => { + it("should maintain width size after toggle", () => new Promise(done => { const zoomBarWidth: number[] = []; // when @@ -1509,9 +1507,9 @@ describe("SHAPE BAR", () => { expect(w).to.be.equal(zoomBarWidth[i]); }); - done(); + done(1); }); - }); + })); }); describe("bar within a range", () => { @@ -1647,7 +1645,7 @@ describe("SHAPE BAR", () => { }); describe("rotated & inverted axis", () => { - before(() => { + beforeAll(() => { args = { data: { columns: [ diff --git a/test/shape/bubble-spec.ts b/test/shape/bubble-spec.ts index 378fcc4e6..d9a73e46e 100644 --- a/test/shape/bubble-spec.ts +++ b/test/shape/bubble-spec.ts @@ -4,7 +4,7 @@ */ /* eslint-disable */ /* global describe, beforeEach, it, expect */ -import {expect} from "chai"; +import {beforeEach, beforeAll, describe, expect, it} from "vitest"; import {select as d3Select} from "d3-selection"; import {$AXIS, $CIRCLE, $TEXT} from "../../src/config/classes"; import util from "../assets/util"; @@ -21,7 +21,7 @@ describe("SHAPE BUBBLE", () => { describe("with indexed data", () => { let maxR = d => Math.sqrt(d.value * 2); - before(() => { + beforeAll(() => { args = { data: { columns: [ @@ -48,7 +48,7 @@ describe("SHAPE BUBBLE", () => { expect(r).to.be.closeTo(5, 1); }); - it("bubble size should be updated", done => { + it("bubble size should be updated", () => new Promise(done => { chart.load({ columns: [ ['data1', 500, 350, 200, 380, 10] @@ -62,12 +62,12 @@ describe("SHAPE BUBBLE", () => { expect(r).to.be.equal(35); } else if (i === 4) { expect(r).to.be.closeTo(5, 1); - done(); + done(1); } }); } }); - }); + })); it("set options bubble.maxR", () => { args.bubble = { @@ -155,7 +155,7 @@ describe("SHAPE BUBBLE", () => { }); describe("with dimension data", () => { - before(() => { + beforeAll(() => { args = { data: { columns: [ diff --git a/test/shape/candelstick-spec.ts b/test/shape/candlestick-spec.ts similarity index 97% rename from test/shape/candelstick-spec.ts rename to test/shape/candlestick-spec.ts index 42d445611..e0a525de4 100644 --- a/test/shape/candelstick-spec.ts +++ b/test/shape/candlestick-spec.ts @@ -4,7 +4,7 @@ */ /* eslint-disable */ /* global describe, beforeEach, it, expect */ -import {expect} from "chai"; +import {beforeEach, beforeAll, describe, expect, it} from "vitest"; import util from "../assets/util"; import {isArray} from "../../src/module/util"; import {$CANDLESTICK, $COMMON} from "../../src/config/classes"; @@ -18,7 +18,7 @@ describe("SHAPE CANDLESTICK", () => { }); describe("default candlestick", () => { - before(() => { + beforeAll(() => { args = { data: { columns: [ @@ -154,7 +154,7 @@ describe("SHAPE CANDLESTICK", () => { }); describe("rotated axis", () => { - before(() => { + beforeAll(() => { args = { data: { columns: [ @@ -197,7 +197,7 @@ describe("SHAPE CANDLESTICK", () => { }); describe("candlestick + combination", () => { - before(() => { + beforeAll(() => { args = { data: { x: "x", @@ -327,7 +327,7 @@ describe("SHAPE CANDLESTICK", () => { }); describe("dynamic load", () => { - before(() => { + beforeAll(() => { args = { data: { columns: [], @@ -336,7 +336,7 @@ describe("SHAPE CANDLESTICK", () => { }; }); - it("should generate candlestick from empty chart", done => { + it("should generate candlestick from empty chart", () => new Promise(done => { const data = [ ["data1", {open: 100, high: 130, low: 5, close: 30, volume: 100}, @@ -364,9 +364,9 @@ describe("SHAPE CANDLESTICK", () => { expect(str).to.be.equal(tooltip.select(".value").text().toLowerCase()); - done(); + done(1); } }); - }); + })); }); }); diff --git a/test/shape/funnel-spec.ts b/test/shape/funnel-spec.ts index 4768575a3..98eabd667 100644 --- a/test/shape/funnel-spec.ts +++ b/test/shape/funnel-spec.ts @@ -4,7 +4,7 @@ */ /* eslint-disable */ /* global describe, beforeEach, it, expect */ -import {expect} from "chai"; +import {beforeEach, beforeAll, describe, expect, it} from "vitest"; import util from "../assets/util"; import {$COMMON, $FUNNEL, $SHAPE} from "../../src/config/classes"; @@ -17,7 +17,7 @@ describe("SHAPE FUNNEL", () => { }); describe("default funnel", () => { - before(() => { + beforeAll(() => { args = { data: { columns: [ @@ -81,7 +81,7 @@ describe("SHAPE FUNNEL", () => { expect(path).to.be.equal(expected); }); - it("data shape hide correctly?", done => { + it("data shape hide correctly?", () => new Promise(done => { const {internal} = chart; const {$el: {funnel}} = internal; const targetId = "data4"; @@ -101,11 +101,11 @@ describe("SHAPE FUNNEL", () => { expect(accumulatedHeight).to.be.equal(internal.state.current.height); - done(); + done(1); }, 300); - }); + })); - it("data shape hide -> show correctly?", done => { + it("data shape hide -> show correctly?", () => new Promise(done => { const {internal} = chart; const {$el: {funnel}} = internal; const targetId = "data4"; @@ -123,9 +123,9 @@ describe("SHAPE FUNNEL", () => { expect(parseInt(`${accumulatedHeight}`)).to.be.equal(internal.state.current.height); - done(); + done(1); }, 300); - }); + })); it("should .tooltip.show/hide() API works", () => { const targetId = "data1"; @@ -162,7 +162,7 @@ describe("SHAPE FUNNEL", () => { }); describe("padding option", () => { - before(() => { + beforeAll(() => { args = { data: { columns: [ @@ -198,7 +198,7 @@ describe("SHAPE FUNNEL", () => { }); describe("neck option", () => { - before(() => { + beforeAll(() => { args = { data: { columns: [ @@ -283,7 +283,7 @@ describe("SHAPE FUNNEL", () => { }); describe(".load() API", () => { - before(() => { + beforeAll(() => { args = { data: { columns: [ @@ -303,7 +303,7 @@ describe("SHAPE FUNNEL", () => { }; }); - it("should dynamic data load work", done => { + it("should dynamic data load work", () => new Promise(done => { chart.load({ columns: [ ["data5", 30], @@ -321,12 +321,12 @@ describe("SHAPE FUNNEL", () => { expect(shapes.size()).to.be.equal(6); expect(accumulatedHeight).to.be.equal(rect.height); - done(); + done(1); } }); - }); + })); - it("should dynamic data load w/unload work", done => { + it("should dynamic data load w/unload work", () => new Promise(done => { chart.load({ columns: [ ["data5", 80], @@ -345,14 +345,14 @@ describe("SHAPE FUNNEL", () => { expect(shapes.size()).to.be.equal(4); expect(accumulatedHeight).to.be.equal(rect.height); - done(); + done(1); } }); - }); + })); }); describe(".unload() API", () => { - before(() => { + beforeAll(() => { args = { data: { columns: [ @@ -368,7 +368,7 @@ describe("SHAPE FUNNEL", () => { }; }); - it("should unload and shape resized correctly.", done => { + it("should unload and shape resized correctly.", () => new Promise(done => { // when chart.unload({ ids: ["data1"], @@ -380,9 +380,9 @@ describe("SHAPE FUNNEL", () => { expect(targets.size()).to.be.equal(2); expect(+$el.svg.attr("height")).to.be.equal(height); - done(); + done(1); } }); - }); + })); }); }); diff --git a/test/shape/gauge-spec.ts b/test/shape/gauge-spec.ts index f7f93f656..cba29745c 100644 --- a/test/shape/gauge-spec.ts +++ b/test/shape/gauge-spec.ts @@ -4,7 +4,7 @@ */ /* eslint-disable */ /* global describe, beforeEach, it, expect */ -import {expect} from "chai"; +import {beforeEach, describe, expect, it} from "vitest"; import {select as d3Select} from "d3-selection"; import {$ARC, $COMMON, $GAUGE, $SHAPE} from "../../src/config/classes"; import util from "../assets/util"; @@ -18,7 +18,7 @@ describe("SHAPE GAUGE", () => { }; describe("show gauge", () => { - it("should have correct d for Pi radian gauge", done => { + it("should have correct d for Pi radian gauge", () => new Promise(done => { const chart = util.generate({ gauge: { width: 10, @@ -50,9 +50,9 @@ describe("SHAPE GAUGE", () => { expect(chartArc.select(`.${$GAUGE.gaugeValue}`).attr("dy")).to.be.equal("-.1em"); - done(); - }, 500); - }); + done(1); + }, 300); + })); it("gauge max value should be equal to totalSum if gauge max < totalSum", () => { const chart = util.generate({ @@ -78,7 +78,7 @@ describe("SHAPE GAUGE", () => { expect(gaugeMax).to.be.equal(totalSum); }); - it("should have correct d for 2 Pi radian gauge starting at Pi/2", done => { + it("should have correct d for 2 Pi radian gauge starting at Pi/2", () => new Promise(done => { const chart = util.generate({ gauge: { width: 10, @@ -106,9 +106,9 @@ describe("SHAPE GAUGE", () => { expect(path) .to.be.equal("M-211.85,0A211.85,211.85,0,1,1,-65.465,201.481L-62.375,191.971A201.85,201.85,0,1,0,-201.85,0Z"); - done(); - }, 500); - }); + done(1); + }, 300); + })); it("should render correctly based when min value is specified", () => { const chart = util.generate({ @@ -192,7 +192,7 @@ describe("SHAPE GAUGE", () => { expect(max.empty()).to.be.true; }); - it("check for fullCircle option", done => { + it("check for fullCircle option", () => new Promise(done => { const chart = util.generate({ gauge: { width: 10, @@ -228,11 +228,11 @@ describe("SHAPE GAUGE", () => { expect(min.empty()).to.be.false; expect(max.empty()).to.be.true; - done(); + done(1); }, 100); - }); + })); - it("check for arcLength option", done => { + it("check for arcLength option", () => new Promise(done => { const chart = util.generate({ gauge: { width: 10, @@ -265,11 +265,11 @@ describe("SHAPE GAUGE", () => { expect(arcPath).to.be.equal("M-211.85,0A211.85,211.85,0,1,1,0,211.85L0,201.85A201.85,201.85,0,1,0,-201.85,0Z"); - done(); + done(1); }, 100); - }); + })); - it("check for stack data #1", done => { + it("check for stack data #1", () => new Promise(done => { const chart = util.generate({ size: { width: 640, @@ -304,11 +304,11 @@ describe("SHAPE GAUGE", () => { expect(this.getAttribute("d")).to.be.equal(expected[i]); }); - done(); + done(1); }, 200); - }); + })); - it("check for stack data #2", done => { + it("check for stack data #2", () => new Promise(done => { const args = { size: { width: 640, @@ -345,11 +345,11 @@ describe("SHAPE GAUGE", () => { expect(this.getAttribute("d")).to.be.equal(expected[i]); }); - done(); + done(1); }, 100); - }); + })); - it("check for stack data #3", done => { + it("check for stack data #3", () => new Promise(done => { const chart = util.generate({ size: { width: 640, @@ -377,9 +377,9 @@ describe("SHAPE GAUGE", () => { expect(this.getAttribute("d")).to.be.equal(expected[i]); }); - done(); - }, 500); - }); + done(1); + }, 300); + })); it("check for startingAngle option", () => { const chart = util.generate({ @@ -456,7 +456,6 @@ describe("SHAPE GAUGE", () => { beforeEach(() => { chart = util.generate(args); - //console.log(JSON.stringify(args)); }); it("shoudn't render data when given value is less than min.", () => { @@ -484,7 +483,7 @@ describe("SHAPE GAUGE", () => { } }); - it("shoud render data shape in a range of min/max value.", done => { + it("shoud render data shape in a range of min/max value.", () => new Promise(done => { const expected = [ {value: 0, length: 70}, {value: 50, length: 720}, @@ -497,9 +496,9 @@ describe("SHAPE GAUGE", () => { expect(this.querySelector("path").getTotalLength() < expected[i].length).to.be }); - done(); + done(1); }, 300); - }); + })); }); describe("show multi-arc-gauge", () => { @@ -565,7 +564,7 @@ describe("SHAPE GAUGE", () => { }); }); - it("each arc should have the color from color_pattern if color_treshold is given ", done => { + it("each arc should have the color from color_pattern if color_treshold is given ", () => new Promise(done => { setTimeout(() => { const arc = chart.$.arc; const chartArcs = arc.selectAll(`.${$ARC.chartArc} .${$ARC.arc}`); @@ -574,9 +573,9 @@ describe("SHAPE GAUGE", () => { expect(d3Select(this).style("fill")).to.be.equal(arcColor[i]); }); - done(); + done(1); }, 100); - }); + })); it("each data_column should have one background", () => { const arc = chart.$.arc; @@ -596,7 +595,7 @@ describe("SHAPE GAUGE", () => { }); }); - it("each data_column should have a label", done => { + it("each data_column should have a label", () => new Promise(done => { setTimeout(() => { const arc = chart.$.arc; const gaugeValues = arc.selectAll(`${selector.arc} text.${$GAUGE.gaugeValue}`); @@ -605,9 +604,9 @@ describe("SHAPE GAUGE", () => { expect(d3Select(this).text()).to.be.equal(`${args.data.columns[i][1]}%`); }); - done(); + done(1); }, 100); - }); + })); it("each label should have the same color", () => { const arc = chart.$.arc; @@ -721,7 +720,7 @@ describe("SHAPE GAUGE", () => { expect(args.gauge.startingAngle).to.be.equal(-1); }); - it("should mirror the starting angle", done => { + it("should mirror the starting angle", () => new Promise(done => { setTimeout(() => { const chartArc = chart.$.main.select(`.${$ARC.chartArcs}`); @@ -749,9 +748,9 @@ describe("SHAPE GAUGE", () => { expect(elements[index].getAttribute('d')).to.be.equal(expectedArcPaths[index]) }) - done(); + done(1); }, 100); - }); + })); it("set gauge.fullCircle", () => { args.gauge.fullCircle = true; @@ -760,7 +759,7 @@ describe("SHAPE GAUGE", () => { expect(args.gauge.fullCircle).to.be.true; }); - it("check for fullCircle option", done => { + it("check for fullCircle option", () => new Promise(done => { setTimeout(() => { const chartArc = chart.$.main.select(`.${$ARC.chartArcs}`); const min = chartArc.select(`.${$GAUGE.chartArcsGaugeMin}`); @@ -794,16 +793,16 @@ describe("SHAPE GAUGE", () => { expect(min.empty()).to.be.false; expect(max.empty()).to.be.true; - done(); + done(1); }, 100); - }); + })); it("set gauge.arcLength", () => { args.gauge.arcLength = 75; expect(args.gauge.arcLength).to.be.equal(75); }); - it("check for arcLength option", done => { + it("check for arcLength option", () => new Promise(done => { setTimeout(() => { const chartArc = chart.$.main.select(`.${$ARC.chartArcs}`); @@ -831,9 +830,9 @@ describe("SHAPE GAUGE", () => { expect(elements[index].getAttribute('d')).to.be.equal(expectedArcPaths[index]) }) - done(); + done(1); }, 100); - }); + })); const gaugeSizeWithoutLabel = { width: 0, diff --git a/test/shape/line-spec.ts b/test/shape/line-spec.ts index 8e501c513..f827c6755 100644 --- a/test/shape/line-spec.ts +++ b/test/shape/line-spec.ts @@ -4,7 +4,7 @@ */ /* eslint-disable */ /* global describe, beforeEach, it, expect */ -import {expect} from "chai"; +import {beforeEach, beforeAll, afterAll, describe, expect, it} from "vitest"; import {select as d3Select} from "d3-selection"; import { curveStepAfter as d3CurveStepAfter, @@ -29,7 +29,7 @@ describe("SHAPE LINE", () => { const parseSvgPath = util.parseSvgPath; describe("shape-rendering for line chart", () => { - before(() => { + beforeAll(() => { args = { data: { columns: [ @@ -83,7 +83,7 @@ describe("SHAPE LINE", () => { }); describe("point.show option", () => { - before(() => { + beforeAll(() => { args = { data: { columns: [ @@ -96,7 +96,7 @@ describe("SHAPE LINE", () => { }; }); - it("should not show the circle for null", (done) => { + it("should not show the circle for null", () => new Promise(done => { const target = chart.$.circles.filter(d => d.id === "data1"); setTimeout(() => { @@ -104,12 +104,12 @@ describe("SHAPE LINE", () => { expect(this.style.opacity).to.be.equal(d.index === 1 ? "0" : ""); }); - done(); + done(1); }, 300) - }); + })); - it("should not draw a line segment for null data", done => { + it("should not draw a line segment for null data", () => new Promise(done => { setTimeout(() => { const target = chart.$.main.select(`.${$LINE.chartLine}.${$COMMON.target}-data1`); const commands: any = parseSvgPath(target.select(`.${$LINE.line}-data1`).attr("d")); @@ -121,13 +121,13 @@ describe("SHAPE LINE", () => { expect(segments).to.be.equal(3); - done(); - }, 500); - }); + done(1); + }, 300); + })); }); describe("spline.interpolation option", () => { - before(() => { + beforeAll(() => { args = { data: { columns: [ @@ -163,7 +163,7 @@ describe("SHAPE LINE", () => { }); describe("data point nodes generation", () => { - before(() => { + beforeAll(() => { args = { data: { columns: [ @@ -205,7 +205,7 @@ describe("SHAPE LINE", () => { }); describe("step type generation", () => { - before(() => { + beforeAll(() => { skipEach = true; args = { @@ -224,7 +224,7 @@ describe("SHAPE LINE", () => { }; }); - after(() => { skipEach = false; }); + afterAll(() => { skipEach = false; }); it("check line.step.type=step-after option", () => { const generateChartWithStep = () => { @@ -288,7 +288,7 @@ describe("SHAPE LINE", () => { }); describe("step type: category axis & line.ConnectNull", () => { - before(() => { + beforeAll(() => { args = { data: { x: "x", @@ -323,7 +323,7 @@ describe("SHAPE LINE", () => { }); describe("line options", () => { - before(() => { + beforeAll(() => { args = { data: { columns: [ diff --git a/test/shape/point-spec.ts b/test/shape/point-spec.ts index fa5b97507..cdaf503de 100644 --- a/test/shape/point-spec.ts +++ b/test/shape/point-spec.ts @@ -5,7 +5,7 @@ /* eslint-disable */ /* global describe, beforeEach, it, expect */ import sinon from "sinon"; -import {expect} from "chai"; +import {beforeEach, beforeAll, describe, expect, it} from "vitest"; import util from "../assets/util"; import {$CIRCLE} from "../../src/config/classes"; import {fireEvent} from "../assets/helper"; @@ -19,7 +19,7 @@ describe("SHAPE POINT", () => { }); describe("default point type", () => { - before(() => { + beforeAll(() => { args = { data: { columns: [ @@ -51,7 +51,7 @@ describe("SHAPE POINT", () => { }); describe("rectangle point type", () => { - before(() => { + beforeAll(() => { args = { data: { columns: [ @@ -78,7 +78,7 @@ describe("SHAPE POINT", () => { }); describe("custom point type", () => { - before(() => { + beforeAll(() => { args = { data: { columns: [ @@ -145,7 +145,7 @@ describe("SHAPE POINT", () => { expect(chart.$.circles.filter(":last-child").attr("y")).to.not.equal("NaN"); }); - it("set optiosn", () => { + it("set options", () => { args = { data: { columns: [ @@ -165,7 +165,7 @@ describe("SHAPE POINT", () => { }; }); - it("", done => { + it("should custom point hidden", () => new Promise(done => { const target = { id: "data3", index: 2 @@ -179,13 +179,13 @@ describe("SHAPE POINT", () => { const point = chart.$.circles.filter(d => d.id === target.id && d.index == target.index).node(); expect(point.parentNode.style.opacity).to.be.equal("0"); - done(); + done(1); }, 300); - }); + })); }); describe("point transition", () => { - before(() => { + beforeAll(() => { args = { data: { columns: [ @@ -196,7 +196,7 @@ describe("SHAPE POINT", () => { }; }); - it("newly added points shouldn't be transitioning from the top/left", done => { + it("newly added points shouldn't be transitioning from the top/left", () => new Promise(done => { const main = chart.$.main; const pos: number[] = []; let point; @@ -220,12 +220,12 @@ describe("SHAPE POINT", () => { expect(Math.round(pos[0])).to.not.equal(0); expect(pos.every(v => v === currPos)).to.be.true; - done(); - }, 500); + done(1); + }, 300); } }); - }, 500); - }); + }, 300); + })); }); describe("point sensitivity", () => { @@ -260,7 +260,7 @@ describe("SHAPE POINT", () => { } } - before(() => { + beforeAll(() => { args = { size: { width: 400, @@ -322,7 +322,7 @@ describe("SHAPE POINT", () => { }; }); - it("check when point.sensitivity='radius'", done => { + it("check when point.sensitivity='radius'", () => new Promise(done => { const {$el} = chart.internal; const values = chart.data.values("data1"); @@ -343,9 +343,9 @@ describe("SHAPE POINT", () => { setTimeout(resolve, 300); }); }).then(() => { - done(); + done(1); }); - }); + })); it("set options point.sensitivity=Function", () => { args.point.sensitivity = function(d) { @@ -364,7 +364,7 @@ describe("SHAPE POINT", () => { }; }); - it("check when point.sensitivity=Function", done => { + it("check when point.sensitivity=Function", () => new Promise(done => { const {$el} = chart.internal; const values = chart.data.values("data1"); @@ -385,13 +385,13 @@ describe("SHAPE POINT", () => { setTimeout(resolve, 300); }); }).then(() => { - done(); + done(1); }); - }); + })); }); describe("point.focus.only", () => { - before(() => { + beforeAll(() => { args = { data: { columns: [ @@ -441,7 +441,7 @@ describe("SHAPE POINT", () => { }).size()).to.be.equal(1); }); - it("visibility with data toggle", done => { + it("visibility with data toggle", () => new Promise(done => { const {circles} = chart.$; let x = 2; @@ -464,11 +464,11 @@ describe("SHAPE POINT", () => { } }); - done(); + done(1); }); - }); + })); - it("visibility with data load", done => { + it("visibility with data load", () => new Promise(done => { let {circles} = chart.$; const size = circles.size(); @@ -496,10 +496,10 @@ describe("SHAPE POINT", () => { expect(+this.getAttribute("cx")).to.be.equal(cx); }); - done(); + done(1); } }); - }); + })); it("set option: data.type=bar", () => { args.data.types = { @@ -507,7 +507,7 @@ describe("SHAPE POINT", () => { }; }); - it("visibility with combination with bar type", done => { + it("visibility with combination with bar type", () => new Promise(done => { const {circles} = chart.$; let x = 2; @@ -525,15 +525,15 @@ describe("SHAPE POINT", () => { expect(d.x).to.be.equal(x); }); - done(); + done(1); }); - }); + })); it("set option: data.type=bubble", () => { args.data.type = "bubble"; }); - it("should render bubble circles", done => { + it("should render bubble circles", () => new Promise(done => { setTimeout(() => { chart.$.circles.each(function() { expect(+this.style.opacity).to.not.be.equal(0); @@ -541,15 +541,15 @@ describe("SHAPE POINT", () => { expect(+this.getAttribute("cy") > 0).to.be.true; }); - done(); - }, 500); - }); + done(1); + }, 300); + })); it("set option: data.type=scatter", () => { args.data.type = "scatter"; }); - it("should render scatter circles", done => { + it("should render scatter circles", () => new Promise(done => { setTimeout(() => { chart.$.circles.each(function() { expect(+this.style.opacity).to.not.be.equal(0); @@ -557,13 +557,13 @@ describe("SHAPE POINT", () => { expect(+this.getAttribute("cy") > 0).to.be.true; }); - done(); - }, 500); - }); + done(1); + }, 300); + })); }); describe("point.opacity", () => { - before(() => { + beforeAll(() => { args = { data: { columns: [ @@ -601,7 +601,7 @@ describe("SHAPE POINT", () => { }); describe("point expand", () => { - before(() => { + beforeAll(() => { args = { data: { columns: [ @@ -637,7 +637,7 @@ describe("SHAPE POINT", () => { }); describe("point radialGradient", () => { - before(() => { + beforeAll(() => { args = { data: { columns: [ diff --git a/test/shape/polar-spec.ts b/test/shape/polar-spec.ts index 7a7cfc2de..93dd99e0d 100644 --- a/test/shape/polar-spec.ts +++ b/test/shape/polar-spec.ts @@ -4,7 +4,7 @@ */ /* eslint-disable */ /* global describe, beforeEach, it, expect */ -import {expect} from "chai"; +import {beforeEach, beforeAll, afterAll, describe, expect, it} from "vitest"; import util from "../assets/util"; import {$LEVEL} from "../../src/config/classes"; @@ -65,7 +65,7 @@ describe("SHAPE POLAR", () => { }); }); - it("check for polar arc shapes", done => { + it("check for polar arc shapes", () => new Promise(done => { const {internal} = chart; const {config, $el: {arcs}} = internal; @@ -93,22 +93,22 @@ describe("SHAPE POLAR", () => { expect(this.textContent).to.be.equal(expectedLabel[i]); }); - done(); + done(1); }, 300); - }); + })); }); describe("polar options #1", () => { - const originalPath = []; - const originalAngle = []; + const originalPath: number[] = []; + const originalAngle: [number, number][] = []; - after(() => { + afterAll(() => { args.polar.padAngle = 0; args.polar.padding = 0; args.polar.startingAngle = 0; }); - it("Retrieve original path data", done => { + it("Retrieve original path data", () => new Promise(done => { setTimeout(() => { chart.internal.$el.arcs.selectAll("path").each(function(d) { const {startAngle, endAngle} = d; @@ -117,38 +117,38 @@ describe("SHAPE POLAR", () => { originalAngle.push([startAngle, endAngle]); }); - done(); + done(1); }, 300); - }); + })); it("set options: padAngle=0.3", () => { args.polar.padAngle = 0.3; }); - it("should padAngle applied correctly?", done => { + it("should padAngle applied correctly?", () => new Promise(done => { setTimeout(() => { chart.internal.$el.arcs.selectAll("path").each(function(d, i) { expect(this.getTotalLength()).to.be.below(originalPath[i]); }); - done(); + done(1); }, 300); - }); + })); it("set options: padding=10", () => { args.polar.padAngle = 0; args.polar.padding = 10; }); - it("should padding applied correctly?", done => { + it("should padding applied correctly?", () => new Promise(done => { setTimeout(() => { chart.internal.$el.arcs.selectAll("path").each(function(d, i) { expect(this.getTotalLength()).to.be.below(originalPath[i]); }); - done(); + done(1); }, 300); - }); + })); it("set options: startingAngle=3", () => { args.polar.padAngle = 0; @@ -156,7 +156,7 @@ describe("SHAPE POLAR", () => { args.polar.startingAngle = 1.5; }); - it("should startingAngle applied correctly?", done => { + it("should startingAngle applied correctly?", () => new Promise(done => { setTimeout(() => { chart.internal.$el.arcs.selectAll("path").each(function(d, i) { const {startAngle, endAngle} = d; @@ -165,13 +165,13 @@ describe("SHAPE POLAR", () => { expect(endAngle).to.be.above(originalAngle[i][1]); }); - done(); + done(1); }, 300); - }); + })); }); describe("polar options #2: level", () => { - before(() => { + beforeAll(() => { args.polar.level = { depth: 5, max: 150, @@ -264,7 +264,7 @@ describe("SHAPE POLAR", () => { }); describe("polar options #3: label", () => { - before(() => { + beforeAll(() => { args.polar.label = { show: true, format: function(value, ratio, id) { diff --git a/test/shape/radar-spec.ts b/test/shape/radar-spec.ts index 813d4a0be..ce2c8b895 100644 --- a/test/shape/radar-spec.ts +++ b/test/shape/radar-spec.ts @@ -4,7 +4,7 @@ */ /* eslint-disable */ /* global describe, beforeEach, it, expect */ -import {expect} from "chai"; +import {beforeEach, beforeAll, describe, expect, it} from "vitest"; import util from "../assets/util"; import {$AXIS, $COMMON, $LEVEL, $RADAR} from "../../src/config/classes"; @@ -19,7 +19,7 @@ describe("SHAPE RADAR", () => { describe("default radar", () => { let points; - before(() => { + beforeAll(() => { args = { data: { x: "x", @@ -44,16 +44,16 @@ describe("SHAPE RADAR", () => { expect(chart.internal.$el.radar.select(`.${$COMMON.target}-data1 polygon`).node().nextSibling.querySelectorAll("circle").length).to.equal(3); }); - it("check for shape rendering", done => { + it("check for shape rendering", () => new Promise(done => { const radar = chart.$.main.select(`.${$RADAR.chartRadars}`); const expectedPoints = "233,30.290000000000003 233,233 309.32696069614934,277.06739130434784"; setTimeout(() => { expect(radar.select(".bb-shapes polygon").attr("points")).to.be.equal(expectedPoints); - done(); + done(1); }, 300) - }); + })); it("Should render level, axes and data edges", () => { const radar = chart.$.main.select(`.${$RADAR.chartRadars}`); @@ -203,7 +203,7 @@ describe("SHAPE RADAR", () => { describe("Axis", () => { const textPos: any = []; - before(() => { + beforeAll(() => { args = { data: { columns: [ @@ -333,7 +333,7 @@ describe("SHAPE RADAR", () => { }); describe("point.focus.only", () => { - before(() => { + beforeAll(() => { args = { data: { x: "x", @@ -391,7 +391,7 @@ describe("SHAPE RADAR", () => { }); describe("size & position", () => { - before(() => { + beforeAll(() => { args = { data: { x: "x", @@ -406,7 +406,7 @@ describe("SHAPE RADAR", () => { }; }); - it("should resize with axes texts", done => { + it("should resize with axes texts", () => new Promise(done => { const {$el: {radar}, state} = chart.internal; const yPos = util.parseNum(radar.attr("transform").replace(/[^,]+/, "")); @@ -417,8 +417,8 @@ describe("SHAPE RADAR", () => { expect(util.parseNum(radar.attr("transform").replace(/[^,]+/, ""))).to.be.greaterThan(yPos); expect(radar.node().getBoundingClientRect().width).to.be.below(state.width); - done(); + done(1); }, 300); - }); + })); }); }); diff --git a/test/shape/shape-spec.ts b/test/shape/shape-spec.ts index ebeed092e..4aa7378c1 100644 --- a/test/shape/shape-spec.ts +++ b/test/shape/shape-spec.ts @@ -4,7 +4,7 @@ */ /* eslint-disable */ /* global describe, beforeEach, it, expect */ -import {expect} from "chai"; +import {beforeEach, beforeAll, describe, expect, it} from "vitest"; import util from "../assets/util"; describe("SHAPE", () => { @@ -16,7 +16,7 @@ describe("SHAPE", () => { }); describe("shapes rendering", () => { - before(() => { + beforeAll(() => { args = { data: { columns: [ diff --git a/test/shape/treemap-spec.ts b/test/shape/treemap-spec.ts index c15347311..0a390e220 100644 --- a/test/shape/treemap-spec.ts +++ b/test/shape/treemap-spec.ts @@ -4,7 +4,7 @@ */ /* eslint-disable */ /* global describe, beforeEach, it, expect */ -import {expect} from "chai"; +import {beforeEach, beforeAll, afterAll, describe, expect, it} from "vitest"; import sinon from "sinon"; import util from "../assets/util"; import {parseNum} from "../assets/helper"; @@ -18,7 +18,7 @@ describe("TREEMAP", () => { }); describe("shapes rendering", () => { - before(() => { + beforeAll(() => { args = { padding: { top: 0, @@ -212,7 +212,7 @@ describe("TREEMAP", () => { }); describe("label options", () => { - before(() => { + beforeAll(() => { args.treemap.label = { show: false, format: function(value, ratio, id) { @@ -221,7 +221,7 @@ describe("TREEMAP", () => { }; }); - after(() => { + afterAll(() => { args.treemap.label = { show: true }; @@ -236,7 +236,7 @@ describe("TREEMAP", () => { }); describe("interaction", () => { - it("data load via .load() API", done => { + it("data load via .load() API", () => new Promise(done => { const orgValue = chart.data.values("data1"); const dataLen = chart.data().length; @@ -248,10 +248,10 @@ describe("TREEMAP", () => { done: function() { expect(this.data.values("data1")[0]).to.be.equal(300); expect(chart.data().length).to.be.equal(dataLen - 1); - done(); + done(1); } }); - }); + })); it("tooltip show via .tooltip.show() API", () => { const id = "data1"; @@ -304,7 +304,7 @@ describe("TREEMAP", () => { let overSpy = sinon.spy(); let outSpy = sinon.spy(); - before(() => { + beforeAll(() => { args = { data: { columns: [ diff --git a/vitest.config.ts b/vitest.config.ts new file mode 100644 index 000000000..d0d9a01a3 --- /dev/null +++ b/vitest.config.ts @@ -0,0 +1,64 @@ +import {resolve} from "node:path"; +import { defineConfig } from "vitest/config"; + +export default defineConfig({ + test: { + testTimeout: 3_000, + hookTimeout: 5_000, + globals: true, + coverage: { + provider: "istanbul", + reporter: ["text-summary", "html", "lcovonly"], + enabled: true, + include: [ + "src/**/**", + ], + extension: ["ts"] + }, + include: [ + "test/**/*-spec.ts", + ], + exclude: [ + "src/**/**", + "demo/**/**", + "config/**/**", + "packages/**/**", + ], + setupFiles: [ + "test/assets/common.css", + "src/scss/billboard.scss" + ], + browser: { + enabled: true, + provider: "webdriverio", + name: "chrome", + headless: true, + viewport: { + width: 800, + height: 600 + }, + providerOptions: { + launch: { + devtools: true + } + } + }, + alias: [ + { + find: /(.*)\/module\/util/i, + replacement: "./test/assets/module/util", + customResolver(source, importer, options) { + if (/src/.test(<string>importer)) { + return resolve(__dirname, source + ".ts"); + } + }, + } + ], + css: { + include: [ + /.+/ + ] + }, + open: true + } +}); diff --git a/yarn.lock b/yarn.lock index a07b96782..acfa9d824 100644 --- a/yarn.lock +++ b/yarn.lock @@ -5,7 +5,7 @@ __metadata: version: 8 cacheKey: 10c0 -"@ampproject/remapping@npm:^2.2.0": +"@ampproject/remapping@npm:^2.2.0, @ampproject/remapping@npm:^2.3.0": version: 2.3.0 resolution: "@ampproject/remapping@npm:2.3.0" dependencies: @@ -15,7 +15,7 @@ __metadata: languageName: node linkType: hard -"@babel/code-frame@npm:^7.0.0, @babel/code-frame@npm:^7.22.13, @babel/code-frame@npm:^7.24.7": +"@babel/code-frame@npm:^7.0.0, @babel/code-frame@npm:^7.10.4, @babel/code-frame@npm:^7.22.13, @babel/code-frame@npm:^7.24.7": version: 7.24.7 resolution: "@babel/code-frame@npm:7.24.7" dependencies: @@ -204,6 +204,26 @@ __metadata: languageName: node linkType: hard +"@babel/parser@npm:^7.24.4": + version: 7.25.3 + resolution: "@babel/parser@npm:7.25.3" + dependencies: + "@babel/types": "npm:^7.25.2" + bin: + parser: ./bin/babel-parser.js + checksum: 10c0/874b01349aedb805d6694f867a752fdc7469778fad76aca4548d2cc6ce96087c3ba5fb917a6f8d05d2d1a74aae309b5f50f1a4dba035f5a2c9fcfe6e106d2c4e + languageName: node + linkType: hard + +"@babel/runtime@npm:^7.12.5": + version: 7.25.0 + resolution: "@babel/runtime@npm:7.25.0" + dependencies: + regenerator-runtime: "npm:^0.14.0" + checksum: 10c0/bd3faf246170826cef2071a94d7b47b49d532351360ecd17722d03f6713fd93a3eb3dbd9518faa778d5e8ccad7392a7a604e56bd37aaad3f3aa68d619ccd983d + languageName: node + linkType: hard + "@babel/runtime@npm:^7.7.6": version: 7.24.8 resolution: "@babel/runtime@npm:7.24.8" @@ -253,7 +273,7 @@ __metadata: languageName: node linkType: hard -"@babel/types@npm:^7.8.3": +"@babel/types@npm:^7.24.0, @babel/types@npm:^7.25.2, @babel/types@npm:^7.8.3": version: 7.25.2 resolution: "@babel/types@npm:7.25.2" dependencies: @@ -271,6 +291,34 @@ __metadata: languageName: node linkType: hard +"@bundled-es-modules/cookie@npm:^2.0.0": + version: 2.0.0 + resolution: "@bundled-es-modules/cookie@npm:2.0.0" + dependencies: + cookie: "npm:^0.5.0" + checksum: 10c0/0655dd331b35d7b5b6dd2301c3bcfb7233018c0e3235a40ced1d53f00463ab92dc01f0091f153812867bc0ef0f8e0a157a30acb16e8d7ef149702bf8db9fe7a6 + languageName: node + linkType: hard + +"@bundled-es-modules/statuses@npm:^1.0.1": + version: 1.0.1 + resolution: "@bundled-es-modules/statuses@npm:1.0.1" + dependencies: + statuses: "npm:^2.0.1" + checksum: 10c0/c1a8ede3efa8da61ccda4b98e773582a9733edfbeeee569d4630785f8e018766202edb190a754a3ec7a7f6bd738e857829affc2fdb676b6dab4db1bb44e62785 + languageName: node + linkType: hard + +"@bundled-es-modules/tough-cookie@npm:^0.1.6": + version: 0.1.6 + resolution: "@bundled-es-modules/tough-cookie@npm:0.1.6" + dependencies: + "@types/tough-cookie": "npm:^4.0.5" + tough-cookie: "npm:^4.1.4" + checksum: 10c0/28bcac878bff6b34719ba3aa8341e9924772ee55de5487680ebe784981ec9fccb70ed5d46f563e2404855a04de606f9e56aa4202842d4f5835bc04a4fe820571 + languageName: node + linkType: hard + "@colors/colors@npm:1.5.0": version: 1.5.0 resolution: "@colors/colors@npm:1.5.0" @@ -723,7 +771,7 @@ __metadata: languageName: node linkType: hard -"@eslint/config-array@npm:^0.17.0": +"@eslint/config-array@npm:^0.17.1": version: 0.17.1 resolution: "@eslint/config-array@npm:0.17.1" dependencies: @@ -751,10 +799,10 @@ __metadata: languageName: node linkType: hard -"@eslint/js@npm:9.7.0, @eslint/js@npm:^9.7.0": - version: 9.7.0 - resolution: "@eslint/js@npm:9.7.0" - checksum: 10c0/73fc10666f6f4aed6f58e407e09f42ceb0d42fa60c52701c64ea9f59a81a6a8ad5caecdfd423d03088481515fe7ec17eb461acb4ef1ad70b649b6eae465b3164 +"@eslint/js@npm:9.8.0, @eslint/js@npm:^9.8.0": + version: 9.8.0 + resolution: "@eslint/js@npm:9.8.0" + checksum: 10c0/42edaae6b020436410454579509dcb6a8cd5b260e9f18e037fd803ae28d35eb13663d4019f0ab8ba686a19d3c4a43b0e11394c148e23345377ab694da0e83262 languageName: node linkType: hard @@ -786,6 +834,53 @@ __metadata: languageName: node linkType: hard +"@inquirer/confirm@npm:^3.0.0": + version: 3.1.20 + resolution: "@inquirer/confirm@npm:3.1.20" + dependencies: + "@inquirer/core": "npm:^9.0.8" + "@inquirer/type": "npm:^1.5.1" + checksum: 10c0/5cf4c15c194932a6c97c7efa89266e585be70d209993eafdcf0b91a6f1219fe232c7485706b314af3befb0d579051218d9c7f82df6970d9d59b95879dd1abdfd + languageName: node + linkType: hard + +"@inquirer/core@npm:^9.0.8": + version: 9.0.8 + resolution: "@inquirer/core@npm:9.0.8" + dependencies: + "@inquirer/figures": "npm:^1.0.5" + "@inquirer/type": "npm:^1.5.1" + "@types/mute-stream": "npm:^0.0.4" + "@types/node": "npm:^22.0.0" + "@types/wrap-ansi": "npm:^3.0.0" + ansi-escapes: "npm:^4.3.2" + cli-spinners: "npm:^2.9.2" + cli-width: "npm:^4.1.0" + mute-stream: "npm:^1.0.0" + signal-exit: "npm:^4.1.0" + strip-ansi: "npm:^6.0.1" + wrap-ansi: "npm:^6.2.0" + yoctocolors-cjs: "npm:^2.1.2" + checksum: 10c0/b38f9c8af932f159501f9ca38c670bd19794400a6f1421f61e08ed42982b44f33ab992237ca81bcf2fb4aa756c683e50067676cd3ef70c691219502df73c0ecf + languageName: node + linkType: hard + +"@inquirer/figures@npm:^1.0.5": + version: 1.0.5 + resolution: "@inquirer/figures@npm:1.0.5" + checksum: 10c0/ec9ba23db42cb33fa18eb919abf2a18e750e739e64c1883ce4a98345cd5711c60cac12d1faf56a859f52d387deb221c8d3dfe60344ee07955a9a262f8b821fe3 + languageName: node + linkType: hard + +"@inquirer/type@npm:^1.5.1": + version: 1.5.1 + resolution: "@inquirer/type@npm:1.5.1" + dependencies: + mute-stream: "npm:^1.0.0" + checksum: 10c0/a4fa548179210b55102c05bb7f475bb757385fb5ccbc7f8f20b8020d9f3acb75d544f26292b35ebb8b7b5ebac54ecb503d238058aea4a34f2b47b78c8c63020e + languageName: node + linkType: hard + "@isaacs/cliui@npm:^8.0.2": version: 8.0.2 resolution: "@isaacs/cliui@npm:8.0.2" @@ -849,14 +944,14 @@ __metadata: languageName: node linkType: hard -"@jridgewell/sourcemap-codec@npm:^1.4.10, @jridgewell/sourcemap-codec@npm:^1.4.14, @jridgewell/sourcemap-codec@npm:^1.4.15": +"@jridgewell/sourcemap-codec@npm:^1.4.10, @jridgewell/sourcemap-codec@npm:^1.4.14, @jridgewell/sourcemap-codec@npm:^1.4.15, @jridgewell/sourcemap-codec@npm:^1.5.0": version: 1.5.0 resolution: "@jridgewell/sourcemap-codec@npm:1.5.0" checksum: 10c0/2eb864f276eb1096c3c11da3e9bb518f6d9fc0023c78344cdc037abadc725172c70314bdb360f2d4b7bffec7f5d657ce006816bc5d4ecb35e61b66132db00c18 languageName: node linkType: hard -"@jridgewell/trace-mapping@npm:^0.3.12, @jridgewell/trace-mapping@npm:^0.3.20, @jridgewell/trace-mapping@npm:^0.3.24, @jridgewell/trace-mapping@npm:^0.3.25": +"@jridgewell/trace-mapping@npm:^0.3.12, @jridgewell/trace-mapping@npm:^0.3.20, @jridgewell/trace-mapping@npm:^0.3.23, @jridgewell/trace-mapping@npm:^0.3.24, @jridgewell/trace-mapping@npm:^0.3.25": version: 0.3.25 resolution: "@jridgewell/trace-mapping@npm:0.3.25" dependencies: @@ -914,6 +1009,20 @@ __metadata: languageName: node linkType: hard +"@mswjs/interceptors@npm:^0.29.0": + version: 0.29.1 + resolution: "@mswjs/interceptors@npm:0.29.1" + dependencies: + "@open-draft/deferred-promise": "npm:^2.2.0" + "@open-draft/logger": "npm:^0.3.0" + "@open-draft/until": "npm:^2.0.0" + is-node-process: "npm:^1.2.0" + outvariant: "npm:^1.2.1" + strict-event-emitter: "npm:^0.5.1" + checksum: 10c0/816660a17b0e89e6e6955072b96882b5807c8c9faa316eab27104e8ba80e8e7d78b1862af42e1044156a5ae3ae2071289dc9211ecdc8fd5f7078d8c8a8a7caa3 + languageName: node + linkType: hard + "@nodelib/fs.scandir@npm:2.1.5": version: 2.1.5 resolution: "@nodelib/fs.scandir@npm:2.1.5" @@ -1302,6 +1411,30 @@ __metadata: languageName: node linkType: hard +"@open-draft/deferred-promise@npm:^2.2.0": + version: 2.2.0 + resolution: "@open-draft/deferred-promise@npm:2.2.0" + checksum: 10c0/eafc1b1d0fc8edb5e1c753c5e0f3293410b40dde2f92688211a54806d4136887051f39b98c1950370be258483deac9dfd17cf8b96557553765198ef2547e4549 + languageName: node + linkType: hard + +"@open-draft/logger@npm:^0.3.0": + version: 0.3.0 + resolution: "@open-draft/logger@npm:0.3.0" + dependencies: + is-node-process: "npm:^1.2.0" + outvariant: "npm:^1.4.0" + checksum: 10c0/90010647b22e9693c16258f4f9adb034824d1771d3baa313057b9a37797f571181005bc50415a934eaf7c891d90ff71dcd7a9d5048b0b6bb438f31bef2c7c5c1 + languageName: node + linkType: hard + +"@open-draft/until@npm:^2.0.0, @open-draft/until@npm:^2.1.0": + version: 2.1.0 + resolution: "@open-draft/until@npm:2.1.0" + checksum: 10c0/61d3f99718dd86bb393fee2d7a785f961dcaf12f2055f0c693b27f4d0cd5f7a03d498a6d9289773b117590d794a43cd129366fd8e99222e4832f67b1653d54cf + languageName: node + linkType: hard + "@pkgjs/parseargs@npm:^0.11.0": version: 0.11.0 resolution: "@pkgjs/parseargs@npm:0.11.0" @@ -1350,6 +1483,54 @@ __metadata: languageName: node linkType: hard +"@promptbook/utils@npm:0.58.0": + version: 0.58.0 + resolution: "@promptbook/utils@npm:0.58.0" + dependencies: + spacetrim: "npm:0.11.36" + checksum: 10c0/072206be13e00bd89e68e90e1debd940582a6362085b44af9302dc89c6eadec73f904770d6202477a4f28c89d3f873a8bb5fbd1faeb426a6906f4d3c19816beb + languageName: node + linkType: hard + +"@puppeteer/browsers@npm:1.4.6": + version: 1.4.6 + resolution: "@puppeteer/browsers@npm:1.4.6" + dependencies: + debug: "npm:4.3.4" + extract-zip: "npm:2.0.1" + progress: "npm:2.0.3" + proxy-agent: "npm:6.3.0" + tar-fs: "npm:3.0.4" + unbzip2-stream: "npm:1.4.3" + yargs: "npm:17.7.1" + peerDependencies: + typescript: ">= 4.7.4" + peerDependenciesMeta: + typescript: + optional: true + bin: + browsers: lib/cjs/main-cli.js + checksum: 10c0/343478c4f0d8d46276e25752f0dfa6805e559f6e56dcea320f6ed5272d34d0e5d51dc46c798b91a0cb82336dc04d91404baaa8a7484a4febad07b165a60ee3a9 + languageName: node + linkType: hard + +"@puppeteer/browsers@npm:^1.6.0": + version: 1.9.1 + resolution: "@puppeteer/browsers@npm:1.9.1" + dependencies: + debug: "npm:4.3.4" + extract-zip: "npm:2.0.1" + progress: "npm:2.0.3" + proxy-agent: "npm:6.3.1" + tar-fs: "npm:3.0.4" + unbzip2-stream: "npm:1.4.3" + yargs: "npm:17.7.2" + bin: + browsers: lib/cjs/main-cli.js + checksum: 10c0/8cbde5ec8060c2bdfdc0d7149711cf0cccc6648ed61d0b969cd305918108e7973ce8a7ff3f7533fcc3c49552afe1955755cd7a3924c1fdbea7330d48094b35ee + languageName: node + linkType: hard + "@rollup/plugin-node-resolve@npm:^15.2.3": version: 15.2.3 resolution: "@rollup/plugin-node-resolve@npm:15.2.3" @@ -1419,114 +1600,114 @@ __metadata: languageName: node linkType: hard -"@rollup/rollup-android-arm-eabi@npm:4.19.0": - version: 4.19.0 - resolution: "@rollup/rollup-android-arm-eabi@npm:4.19.0" +"@rollup/rollup-android-arm-eabi@npm:4.19.1": + version: 4.19.1 + resolution: "@rollup/rollup-android-arm-eabi@npm:4.19.1" conditions: os=android & cpu=arm languageName: node linkType: hard -"@rollup/rollup-android-arm64@npm:4.19.0": - version: 4.19.0 - resolution: "@rollup/rollup-android-arm64@npm:4.19.0" +"@rollup/rollup-android-arm64@npm:4.19.1": + version: 4.19.1 + resolution: "@rollup/rollup-android-arm64@npm:4.19.1" conditions: os=android & cpu=arm64 languageName: node linkType: hard -"@rollup/rollup-darwin-arm64@npm:4.19.0": - version: 4.19.0 - resolution: "@rollup/rollup-darwin-arm64@npm:4.19.0" +"@rollup/rollup-darwin-arm64@npm:4.19.1": + version: 4.19.1 + resolution: "@rollup/rollup-darwin-arm64@npm:4.19.1" conditions: os=darwin & cpu=arm64 languageName: node linkType: hard -"@rollup/rollup-darwin-x64@npm:4.19.0": - version: 4.19.0 - resolution: "@rollup/rollup-darwin-x64@npm:4.19.0" +"@rollup/rollup-darwin-x64@npm:4.19.1": + version: 4.19.1 + resolution: "@rollup/rollup-darwin-x64@npm:4.19.1" conditions: os=darwin & cpu=x64 languageName: node linkType: hard -"@rollup/rollup-linux-arm-gnueabihf@npm:4.19.0": - version: 4.19.0 - resolution: "@rollup/rollup-linux-arm-gnueabihf@npm:4.19.0" +"@rollup/rollup-linux-arm-gnueabihf@npm:4.19.1": + version: 4.19.1 + resolution: "@rollup/rollup-linux-arm-gnueabihf@npm:4.19.1" conditions: os=linux & cpu=arm & libc=glibc languageName: node linkType: hard -"@rollup/rollup-linux-arm-musleabihf@npm:4.19.0": - version: 4.19.0 - resolution: "@rollup/rollup-linux-arm-musleabihf@npm:4.19.0" +"@rollup/rollup-linux-arm-musleabihf@npm:4.19.1": + version: 4.19.1 + resolution: "@rollup/rollup-linux-arm-musleabihf@npm:4.19.1" conditions: os=linux & cpu=arm & libc=musl languageName: node linkType: hard -"@rollup/rollup-linux-arm64-gnu@npm:4.19.0": - version: 4.19.0 - resolution: "@rollup/rollup-linux-arm64-gnu@npm:4.19.0" +"@rollup/rollup-linux-arm64-gnu@npm:4.19.1": + version: 4.19.1 + resolution: "@rollup/rollup-linux-arm64-gnu@npm:4.19.1" conditions: os=linux & cpu=arm64 & libc=glibc languageName: node linkType: hard -"@rollup/rollup-linux-arm64-musl@npm:4.19.0": - version: 4.19.0 - resolution: "@rollup/rollup-linux-arm64-musl@npm:4.19.0" +"@rollup/rollup-linux-arm64-musl@npm:4.19.1": + version: 4.19.1 + resolution: "@rollup/rollup-linux-arm64-musl@npm:4.19.1" conditions: os=linux & cpu=arm64 & libc=musl languageName: node linkType: hard -"@rollup/rollup-linux-powerpc64le-gnu@npm:4.19.0": - version: 4.19.0 - resolution: "@rollup/rollup-linux-powerpc64le-gnu@npm:4.19.0" +"@rollup/rollup-linux-powerpc64le-gnu@npm:4.19.1": + version: 4.19.1 + resolution: "@rollup/rollup-linux-powerpc64le-gnu@npm:4.19.1" conditions: os=linux & cpu=ppc64 & libc=glibc languageName: node linkType: hard -"@rollup/rollup-linux-riscv64-gnu@npm:4.19.0": - version: 4.19.0 - resolution: "@rollup/rollup-linux-riscv64-gnu@npm:4.19.0" +"@rollup/rollup-linux-riscv64-gnu@npm:4.19.1": + version: 4.19.1 + resolution: "@rollup/rollup-linux-riscv64-gnu@npm:4.19.1" conditions: os=linux & cpu=riscv64 & libc=glibc languageName: node linkType: hard -"@rollup/rollup-linux-s390x-gnu@npm:4.19.0": - version: 4.19.0 - resolution: "@rollup/rollup-linux-s390x-gnu@npm:4.19.0" +"@rollup/rollup-linux-s390x-gnu@npm:4.19.1": + version: 4.19.1 + resolution: "@rollup/rollup-linux-s390x-gnu@npm:4.19.1" conditions: os=linux & cpu=s390x & libc=glibc languageName: node linkType: hard -"@rollup/rollup-linux-x64-gnu@npm:4.19.0": - version: 4.19.0 - resolution: "@rollup/rollup-linux-x64-gnu@npm:4.19.0" +"@rollup/rollup-linux-x64-gnu@npm:4.19.1": + version: 4.19.1 + resolution: "@rollup/rollup-linux-x64-gnu@npm:4.19.1" conditions: os=linux & cpu=x64 & libc=glibc languageName: node linkType: hard -"@rollup/rollup-linux-x64-musl@npm:4.19.0": - version: 4.19.0 - resolution: "@rollup/rollup-linux-x64-musl@npm:4.19.0" +"@rollup/rollup-linux-x64-musl@npm:4.19.1": + version: 4.19.1 + resolution: "@rollup/rollup-linux-x64-musl@npm:4.19.1" conditions: os=linux & cpu=x64 & libc=musl languageName: node linkType: hard -"@rollup/rollup-win32-arm64-msvc@npm:4.19.0": - version: 4.19.0 - resolution: "@rollup/rollup-win32-arm64-msvc@npm:4.19.0" +"@rollup/rollup-win32-arm64-msvc@npm:4.19.1": + version: 4.19.1 + resolution: "@rollup/rollup-win32-arm64-msvc@npm:4.19.1" conditions: os=win32 & cpu=arm64 languageName: node linkType: hard -"@rollup/rollup-win32-ia32-msvc@npm:4.19.0": - version: 4.19.0 - resolution: "@rollup/rollup-win32-ia32-msvc@npm:4.19.0" +"@rollup/rollup-win32-ia32-msvc@npm:4.19.1": + version: 4.19.1 + resolution: "@rollup/rollup-win32-ia32-msvc@npm:4.19.1" conditions: os=win32 & cpu=ia32 languageName: node linkType: hard -"@rollup/rollup-win32-x64-msvc@npm:4.19.0": - version: 4.19.0 - resolution: "@rollup/rollup-win32-x64-msvc@npm:4.19.0" +"@rollup/rollup-win32-x64-msvc@npm:4.19.1": + version: 4.19.1 + resolution: "@rollup/rollup-win32-x64-msvc@npm:4.19.1" conditions: os=win32 & cpu=x64 languageName: node linkType: hard @@ -1752,6 +1933,13 @@ __metadata: languageName: node linkType: hard +"@sindresorhus/is@npm:^5.2.0": + version: 5.6.0 + resolution: "@sindresorhus/is@npm:5.6.0" + checksum: 10c0/66727344d0c92edde5760b5fd1f8092b717f2298a162a5f7f29e4953e001479927402d9d387e245fb9dc7d3b37c72e335e93ed5875edfc5203c53be8ecba1b52 + languageName: node + linkType: hard + "@sindresorhus/merge-streams@npm:^2.1.0": version: 2.3.0 resolution: "@sindresorhus/merge-streams@npm:2.3.0" @@ -1811,10 +1999,57 @@ __metadata: languageName: node linkType: hard -"@socket.io/component-emitter@npm:~3.1.0": - version: 3.1.2 - resolution: "@socket.io/component-emitter@npm:3.1.2" - checksum: 10c0/c4242bad66f67e6f7b712733d25b43cbb9e19a595c8701c3ad99cbeb5901555f78b095e24852f862fffb43e96f1d8552e62def885ca82ae1bb05da3668fd87d7 +"@szmarczak/http-timer@npm:^5.0.1": + version: 5.0.1 + resolution: "@szmarczak/http-timer@npm:5.0.1" + dependencies: + defer-to-connect: "npm:^2.0.1" + checksum: 10c0/4629d2fbb2ea67c2e9dc03af235c0991c79ebdddcbc19aed5d5732fb29ce01c13331e9b1a491584b9069bd6ecde6581dcbf871f11b7eefdebbab34de6cf2197e + languageName: node + linkType: hard + +"@testing-library/dom@npm:^10.4.0": + version: 10.4.0 + resolution: "@testing-library/dom@npm:10.4.0" + dependencies: + "@babel/code-frame": "npm:^7.10.4" + "@babel/runtime": "npm:^7.12.5" + "@types/aria-query": "npm:^5.0.1" + aria-query: "npm:5.3.0" + chalk: "npm:^4.1.0" + dom-accessibility-api: "npm:^0.5.9" + lz-string: "npm:^1.5.0" + pretty-format: "npm:^27.0.2" + checksum: 10c0/0352487720ecd433400671e773df0b84b8268fb3fe8e527cdfd7c11b1365b398b4e0eddba6e7e0c85e8d615f48257753283fccec41f6b986fd6c85f15eb5f84f + languageName: node + linkType: hard + +"@testing-library/react@npm:^16.0.0": + version: 16.0.0 + resolution: "@testing-library/react@npm:16.0.0" + dependencies: + "@babel/runtime": "npm:^7.12.5" + peerDependencies: + "@testing-library/dom": ^10.0.0 + "@types/react": ^18.0.0 + "@types/react-dom": ^18.0.0 + react: ^18.0.0 + react-dom: ^18.0.0 + peerDependenciesMeta: + "@types/react": + optional: true + "@types/react-dom": + optional: true + checksum: 10c0/297f97bf4722dad05f11d9cafd47d387dbdb096fea4b79b876c7466460f0f2e345b55b81b3e37fc81ed8185c528cb53dd8455ca1b6b019b229edf6c796f11c9f + languageName: node + linkType: hard + +"@testing-library/user-event@npm:^14.5.2": + version: 14.5.2 + resolution: "@testing-library/user-event@npm:14.5.2" + peerDependencies: + "@testing-library/dom": ">=7.21.4" + checksum: 10c0/68a0c2aa28a3c8e6eb05cafee29705438d7d8a9427423ce5064d44f19c29e89b5636de46dd2f28620fb10abba75c67130185bbc3aa23ac1163a227a5f36641e1 languageName: node linkType: hard @@ -1832,6 +2067,13 @@ __metadata: languageName: node linkType: hard +"@tootallnate/quickjs-emscripten@npm:^0.23.0": + version: 0.23.0 + resolution: "@tootallnate/quickjs-emscripten@npm:0.23.0" + checksum: 10c0/2a939b781826fb5fd3edd0f2ec3b321d259d760464cf20611c9877205aaca3ccc0b7304dea68416baa0d568e82cd86b17d29548d1e5139fa3155a4a86a2b4b49 + languageName: node + linkType: hard + "@tufjs/canonical-json@npm:2.0.0": version: 2.0.0 resolution: "@tufjs/canonical-json@npm:2.0.0" @@ -1849,6 +2091,13 @@ __metadata: languageName: node linkType: hard +"@types/aria-query@npm:^5.0.1": + version: 5.0.4 + resolution: "@types/aria-query@npm:5.0.4" + checksum: 10c0/dc667bc6a3acc7bba2bccf8c23d56cb1f2f4defaa704cfef595437107efaa972d3b3db9ec1d66bc2711bfc35086821edd32c302bffab36f2e79b97f312069f08 + languageName: node + linkType: hard + "@types/babel-types@npm:*, @types/babel-types@npm:^7.0.0": version: 7.0.15 resolution: "@types/babel-types@npm:7.0.15" @@ -1884,13 +2133,6 @@ __metadata: languageName: node linkType: hard -"@types/chai@npm:^4.3.16": - version: 4.3.16 - resolution: "@types/chai@npm:4.3.16" - checksum: 10c0/745d4a9be429d5d86a7ab26064610b8957fe12dd80e94dc7d0707cf3db1c889e3ffe0d73d69bb15e6d376bf4462a7a75e9d8fc1051750b5d656d6cfe459829b7 - languageName: node - linkType: hard - "@types/connect-history-api-fallback@npm:^1.5.4": version: 1.5.4 resolution: "@types/connect-history-api-fallback@npm:1.5.4" @@ -1919,19 +2161,10 @@ __metadata: languageName: node linkType: hard -"@types/cookie@npm:^0.4.1": - version: 0.4.1 - resolution: "@types/cookie@npm:0.4.1" - checksum: 10c0/f96afe12bd51be1ec61410b0641243d93fa3a494702407c787a4c872b5c8bcd39b224471452055e44a9ce42af1a636e87d161994226eaf4c2be9c30f60418409 - languageName: node - linkType: hard - -"@types/cors@npm:^2.8.12": - version: 2.8.17 - resolution: "@types/cors@npm:2.8.17" - dependencies: - "@types/node": "npm:*" - checksum: 10c0/457364c28c89f3d9ed34800e1de5c6eaaf344d1bb39af122f013322a50bc606eb2aa6f63de4e41a7a08ba7ef454473926c94a830636723da45bf786df032696d +"@types/cookie@npm:^0.6.0": + version: 0.6.0 + resolution: "@types/cookie@npm:0.6.0" + checksum: 10c0/5b326bd0188120fb32c0be086b141b1481fec9941b76ad537f9110e10d61ee2636beac145463319c71e4be67a17e85b81ca9e13ceb6e3bb63b93d16824d6c149 languageName: node linkType: hard @@ -2275,6 +2508,13 @@ __metadata: languageName: node linkType: hard +"@types/http-cache-semantics@npm:^4.0.2": + version: 4.0.4 + resolution: "@types/http-cache-semantics@npm:4.0.4" + checksum: 10c0/51b72568b4b2863e0fe8d6ce8aad72a784b7510d72dc866215642da51d84945a9459fa89f49ec48f1e9a1752e6a78e85a4cda0ded06b1c73e727610c925f9ce6 + languageName: node + linkType: hard + "@types/http-errors@npm:*": version: 2.0.4 resolution: "@types/http-errors@npm:2.0.4" @@ -2357,10 +2597,12 @@ __metadata: languageName: node linkType: hard -"@types/mocha@npm:^10.0.7": - version: 10.0.7 - resolution: "@types/mocha@npm:10.0.7" - checksum: 10c0/48a2df4dd02b6e66a11129dca6a23cf0cc3995faf8525286eb851043685bd8b7444780f4bb29a1c42df7559ed63294e5308bfce3a6b862ad2e0359cb21c21329 +"@types/mute-stream@npm:^0.0.4": + version: 0.0.4 + resolution: "@types/mute-stream@npm:0.0.4" + dependencies: + "@types/node": "npm:*" + checksum: 10c0/944730fd7b398c5078de3c3d4d0afeec8584283bc694da1803fdfca14149ea385e18b1b774326f1601baf53898ce6d121a952c51eb62d188ef6fcc41f725c0dc languageName: node linkType: hard @@ -2373,7 +2615,7 @@ __metadata: languageName: node linkType: hard -"@types/node@npm:*, @types/node@npm:>=10.0.0": +"@types/node@npm:*": version: 20.14.11 resolution: "@types/node@npm:20.14.11" dependencies: @@ -2382,6 +2624,24 @@ __metadata: languageName: node linkType: hard +"@types/node@npm:^20.1.0": + version: 20.14.13 + resolution: "@types/node@npm:20.14.13" + dependencies: + undici-types: "npm:~5.26.4" + checksum: 10c0/10bb3ece675308742301c652ab8c6cb88b1ebddebed22316103c58f94fe7eff131edd5f679e487c19077fadb6b5e6b1ad9a60a2cee2869aa1f20452b9761d570 + languageName: node + linkType: hard + +"@types/node@npm:^22.0.0": + version: 22.0.2 + resolution: "@types/node@npm:22.0.2" + dependencies: + undici-types: "npm:~6.11.1" + checksum: 10c0/59ee26fb1104674b2e23981d7569ad113aa8ee23c8449af8e4312aa9352ac738c5ffd0ae4d8077db0467704a3b9ccc662048e39716cb5ad51cdb24d106c7871b + languageName: node + linkType: hard + "@types/normalize-package-data@npm:^2.4.0, @types/normalize-package-data@npm:^2.4.3": version: 2.4.4 resolution: "@types/normalize-package-data@npm:2.4.4" @@ -2479,6 +2739,34 @@ __metadata: languageName: node linkType: hard +"@types/statuses@npm:^2.0.4": + version: 2.0.5 + resolution: "@types/statuses@npm:2.0.5" + checksum: 10c0/4dacec0b29483a44be902a022a11a22b339de7a6e7b2059daa4f7add10cb6dbcc28d02d2a416fe9687e48d335906bf983065391836d4e7c847e55ddef4de8fad + languageName: node + linkType: hard + +"@types/tough-cookie@npm:^4.0.5": + version: 4.0.5 + resolution: "@types/tough-cookie@npm:4.0.5" + checksum: 10c0/68c6921721a3dcb40451543db2174a145ef915bc8bcbe7ad4e59194a0238e776e782b896c7a59f4b93ac6acefca9161fccb31d1ce3b3445cb6faa467297fb473 + languageName: node + linkType: hard + +"@types/which@npm:^2.0.1": + version: 2.0.2 + resolution: "@types/which@npm:2.0.2" + checksum: 10c0/c9a2ca5f1d4ca26381cd8adc7415f9e203fa5bfa2f7855c68bc5b676dc402f9c31bd8c83766bfa73d7aa70a0f4b979e7eb139ceec41a17ac2e1fc08a5bca6ba8 + languageName: node + linkType: hard + +"@types/wrap-ansi@npm:^3.0.0": + version: 3.0.0 + resolution: "@types/wrap-ansi@npm:3.0.0" + checksum: 10c0/8d8f53363f360f38135301a06b596c295433ad01debd082078c33c6ed98b05a5c8fe8853a88265432126096084f4a135ec1564e3daad631b83296905509f90b3 + languageName: node + linkType: hard + "@types/ws@npm:^8.5.10": version: 8.5.11 resolution: "@types/ws@npm:8.5.11" @@ -2488,15 +2776,33 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/eslint-plugin@npm:7.17.0": - version: 7.17.0 - resolution: "@typescript-eslint/eslint-plugin@npm:7.17.0" +"@types/ws@npm:^8.5.3": + version: 8.5.12 + resolution: "@types/ws@npm:8.5.12" + dependencies: + "@types/node": "npm:*" + checksum: 10c0/3fd77c9e4e05c24ce42bfc7647f7506b08c40a40fe2aea236ef6d4e96fc7cb4006a81ed1b28ec9c457e177a74a72924f4768b7b4652680b42dfd52bc380e15f9 + languageName: node + linkType: hard + +"@types/yauzl@npm:^2.9.1": + version: 2.10.3 + resolution: "@types/yauzl@npm:2.10.3" + dependencies: + "@types/node": "npm:*" + checksum: 10c0/f1b7c1b99fef9f2fe7f1985ef7426d0cebe48cd031f1780fcdc7451eec7e31ac97028f16f50121a59bcf53086a1fc8c856fd5b7d3e00970e43d92ae27d6b43dc + languageName: node + linkType: hard + +"@typescript-eslint/eslint-plugin@npm:7.18.0": + version: 7.18.0 + resolution: "@typescript-eslint/eslint-plugin@npm:7.18.0" dependencies: "@eslint-community/regexpp": "npm:^4.10.0" - "@typescript-eslint/scope-manager": "npm:7.17.0" - "@typescript-eslint/type-utils": "npm:7.17.0" - "@typescript-eslint/utils": "npm:7.17.0" - "@typescript-eslint/visitor-keys": "npm:7.17.0" + "@typescript-eslint/scope-manager": "npm:7.18.0" + "@typescript-eslint/type-utils": "npm:7.18.0" + "@typescript-eslint/utils": "npm:7.18.0" + "@typescript-eslint/visitor-keys": "npm:7.18.0" graphemer: "npm:^1.4.0" ignore: "npm:^5.3.1" natural-compare: "npm:^1.4.0" @@ -2507,44 +2813,44 @@ __metadata: peerDependenciesMeta: typescript: optional: true - checksum: 10c0/654d589531ae45b8ca8f3969e785926b2544100a985968d86c828e2a1ff50331250e19c8b4af83a4ba17847a0047479662eb317e4ad94f6279cac03acd5cda5a + checksum: 10c0/2b37948fa1b0dab77138909dabef242a4d49ab93e4019d4ef930626f0a7d96b03e696cd027fa0087881c20e73be7be77c942606b4a76fa599e6b37f6985304c3 languageName: node linkType: hard -"@typescript-eslint/parser@npm:7.17.0": - version: 7.17.0 - resolution: "@typescript-eslint/parser@npm:7.17.0" +"@typescript-eslint/parser@npm:7.18.0": + version: 7.18.0 + resolution: "@typescript-eslint/parser@npm:7.18.0" dependencies: - "@typescript-eslint/scope-manager": "npm:7.17.0" - "@typescript-eslint/types": "npm:7.17.0" - "@typescript-eslint/typescript-estree": "npm:7.17.0" - "@typescript-eslint/visitor-keys": "npm:7.17.0" + "@typescript-eslint/scope-manager": "npm:7.18.0" + "@typescript-eslint/types": "npm:7.18.0" + "@typescript-eslint/typescript-estree": "npm:7.18.0" + "@typescript-eslint/visitor-keys": "npm:7.18.0" debug: "npm:^4.3.4" peerDependencies: eslint: ^8.56.0 peerDependenciesMeta: typescript: optional: true - checksum: 10c0/0cf6922412517b4c005609b035119ddd2798e1b6e74e1bccd487aa53119d27067cfd89311f00b8e96b2b044a0fb7373418a16552be86079879158b260c397418 + checksum: 10c0/370e73fca4278091bc1b657f85e7d74cd52b24257ea20c927a8e17546107ce04fbf313fec99aed0cc2a145ddbae1d3b12e9cc2c1320117636dc1281bcfd08059 languageName: node linkType: hard -"@typescript-eslint/scope-manager@npm:7.17.0": - version: 7.17.0 - resolution: "@typescript-eslint/scope-manager@npm:7.17.0" +"@typescript-eslint/scope-manager@npm:7.18.0": + version: 7.18.0 + resolution: "@typescript-eslint/scope-manager@npm:7.18.0" dependencies: - "@typescript-eslint/types": "npm:7.17.0" - "@typescript-eslint/visitor-keys": "npm:7.17.0" - checksum: 10c0/e1a693e19dc855fe6d04b46c6c205019bfc937eda5f8b255393f8267ebddd282165568336e37b04aab544b155a807784b9c4a92129dfc7c1eef5a9e9fe052685 + "@typescript-eslint/types": "npm:7.18.0" + "@typescript-eslint/visitor-keys": "npm:7.18.0" + checksum: 10c0/038cd58c2271de146b3a594afe2c99290034033326d57ff1f902976022c8b0138ffd3cb893ae439ae41003b5e4bcc00cabf6b244ce40e8668f9412cc96d97b8e languageName: node linkType: hard -"@typescript-eslint/type-utils@npm:7.17.0": - version: 7.17.0 - resolution: "@typescript-eslint/type-utils@npm:7.17.0" +"@typescript-eslint/type-utils@npm:7.18.0": + version: 7.18.0 + resolution: "@typescript-eslint/type-utils@npm:7.18.0" dependencies: - "@typescript-eslint/typescript-estree": "npm:7.17.0" - "@typescript-eslint/utils": "npm:7.17.0" + "@typescript-eslint/typescript-estree": "npm:7.18.0" + "@typescript-eslint/utils": "npm:7.18.0" debug: "npm:^4.3.4" ts-api-utils: "npm:^1.3.0" peerDependencies: @@ -2552,23 +2858,23 @@ __metadata: peerDependenciesMeta: typescript: optional: true - checksum: 10c0/b415cf37c0922cded78735c5049cb5a5b0065e1c0ce4a81ca2a26422763ccacca8945efa45480f40530f2ec414a14d35a88a6798258aa889f7a9cf4ca4a240cd + checksum: 10c0/ad92a38007be620f3f7036f10e234abdc2fdc518787b5a7227e55fd12896dacf56e8b34578723fbf9bea8128df2510ba8eb6739439a3879eda9519476d5783fd languageName: node linkType: hard -"@typescript-eslint/types@npm:7.17.0": - version: 7.17.0 - resolution: "@typescript-eslint/types@npm:7.17.0" - checksum: 10c0/8f734294d432b37c534f17eb2befdfe43b76874d09118d6adf7e308e5a586e9e11b7021abe4f6692a6e6226de58a15b3cfe1300939556ce1c908d9af627b7400 +"@typescript-eslint/types@npm:7.18.0": + version: 7.18.0 + resolution: "@typescript-eslint/types@npm:7.18.0" + checksum: 10c0/eb7371ac55ca77db8e59ba0310b41a74523f17e06f485a0ef819491bc3dd8909bb930120ff7d30aaf54e888167e0005aa1337011f3663dc90fb19203ce478054 languageName: node linkType: hard -"@typescript-eslint/typescript-estree@npm:7.17.0": - version: 7.17.0 - resolution: "@typescript-eslint/typescript-estree@npm:7.17.0" +"@typescript-eslint/typescript-estree@npm:7.18.0": + version: 7.18.0 + resolution: "@typescript-eslint/typescript-estree@npm:7.18.0" dependencies: - "@typescript-eslint/types": "npm:7.17.0" - "@typescript-eslint/visitor-keys": "npm:7.17.0" + "@typescript-eslint/types": "npm:7.18.0" + "@typescript-eslint/visitor-keys": "npm:7.18.0" debug: "npm:^4.3.4" globby: "npm:^11.1.0" is-glob: "npm:^4.0.3" @@ -2578,31 +2884,230 @@ __metadata: peerDependenciesMeta: typescript: optional: true - checksum: 10c0/10967823ce00c9f8cd4a8b56bed3524c098e38cc0e27aaa49ffd8fad4e671c00226bf0330ba858948750b88dc55527ebeb62c74be8a30bac18a106d6c033ab59 + checksum: 10c0/0c7f109a2e460ec8a1524339479cf78ff17814d23c83aa5112c77fb345e87b3642616291908dcddea1e671da63686403dfb712e4a4435104f92abdfddf9aba81 languageName: node linkType: hard -"@typescript-eslint/utils@npm:7.17.0": - version: 7.17.0 - resolution: "@typescript-eslint/utils@npm:7.17.0" +"@typescript-eslint/utils@npm:7.18.0": + version: 7.18.0 + resolution: "@typescript-eslint/utils@npm:7.18.0" dependencies: "@eslint-community/eslint-utils": "npm:^4.4.0" - "@typescript-eslint/scope-manager": "npm:7.17.0" - "@typescript-eslint/types": "npm:7.17.0" - "@typescript-eslint/typescript-estree": "npm:7.17.0" + "@typescript-eslint/scope-manager": "npm:7.18.0" + "@typescript-eslint/types": "npm:7.18.0" + "@typescript-eslint/typescript-estree": "npm:7.18.0" peerDependencies: eslint: ^8.56.0 - checksum: 10c0/1f3e22820b3ab3e47809c45e576614ad4a965f5c8634856eca5c70981386b9351a77fb172ba32345e7c5667479cf9526c673699dd38dccd0616ad6db21704e72 + checksum: 10c0/a25a6d50eb45c514469a01ff01f215115a4725fb18401055a847ddf20d1b681409c4027f349033a95c4ff7138d28c3b0a70253dfe8262eb732df4b87c547bd1e languageName: node linkType: hard -"@typescript-eslint/visitor-keys@npm:7.17.0": - version: 7.17.0 - resolution: "@typescript-eslint/visitor-keys@npm:7.17.0" +"@typescript-eslint/visitor-keys@npm:7.18.0": + version: 7.18.0 + resolution: "@typescript-eslint/visitor-keys@npm:7.18.0" dependencies: - "@typescript-eslint/types": "npm:7.17.0" + "@typescript-eslint/types": "npm:7.18.0" eslint-visitor-keys: "npm:^3.4.3" - checksum: 10c0/fa6b339d51fc3710288bb2ffaa46d639551d77965cc42c36f96c4f43aed663ff12972e8a28652a280f6ce20b7a92dc2aea14b2b4049012799be2fc2d3cbb2c60 + checksum: 10c0/538b645f8ff1d9debf264865c69a317074eaff0255e63d7407046176b0f6a6beba34a6c51d511f12444bae12a98c69891eb6f403c9f54c6c2e2849d1c1cb73c0 + languageName: node + linkType: hard + +"@vitest/browser@npm:^2.0.5": + version: 2.0.5 + resolution: "@vitest/browser@npm:2.0.5" + dependencies: + "@testing-library/dom": "npm:^10.4.0" + "@testing-library/user-event": "npm:^14.5.2" + "@vitest/utils": "npm:2.0.5" + magic-string: "npm:^0.30.10" + msw: "npm:^2.3.2" + sirv: "npm:^2.0.4" + ws: "npm:^8.18.0" + peerDependencies: + playwright: "*" + vitest: 2.0.5 + webdriverio: "*" + peerDependenciesMeta: + playwright: + optional: true + safaridriver: + optional: true + webdriverio: + optional: true + checksum: 10c0/a2b0e6ddb16f679c72c79c8093164a27683f7658a9a05882f0d00f90923071f16e1176211d1851539d49d5011199da5f926410c251e4b4f06828355d2ca30c92 + languageName: node + linkType: hard + +"@vitest/coverage-istanbul@npm:^2.0.5": + version: 2.0.5 + resolution: "@vitest/coverage-istanbul@npm:2.0.5" + dependencies: + "@istanbuljs/schema": "npm:^0.1.3" + debug: "npm:^4.3.5" + istanbul-lib-coverage: "npm:^3.2.2" + istanbul-lib-instrument: "npm:^6.0.3" + istanbul-lib-report: "npm:^3.0.1" + istanbul-lib-source-maps: "npm:^5.0.6" + istanbul-reports: "npm:^3.1.7" + magicast: "npm:^0.3.4" + test-exclude: "npm:^7.0.1" + tinyrainbow: "npm:^1.2.0" + peerDependencies: + vitest: 2.0.5 + checksum: 10c0/f19744e848f06f2ce3a6364caa3ffe701d571ff89c8de31ad753c2d48d46e24eab8d8670548997839c77ec41ebe69011b92df74ef196c070964fde9eaef1b1eb + languageName: node + linkType: hard + +"@vitest/expect@npm:2.0.5": + version: 2.0.5 + resolution: "@vitest/expect@npm:2.0.5" + dependencies: + "@vitest/spy": "npm:2.0.5" + "@vitest/utils": "npm:2.0.5" + chai: "npm:^5.1.1" + tinyrainbow: "npm:^1.2.0" + checksum: 10c0/08cb1b0f106d16a5b60db733e3d436fa5eefc68571488eb570dfe4f599f214ab52e4342273b03dbe12331cc6c0cdc325ac6c94f651ad254cd62f3aa0e3d185aa + languageName: node + linkType: hard + +"@vitest/pretty-format@npm:2.0.5, @vitest/pretty-format@npm:^2.0.5": + version: 2.0.5 + resolution: "@vitest/pretty-format@npm:2.0.5" + dependencies: + tinyrainbow: "npm:^1.2.0" + checksum: 10c0/236c0798c5170a0b5ad5d4bd06118533738e820b4dd30079d8fbcb15baee949d41c60f42a9f769906c4a5ce366d7ef11279546070646c0efc03128c220c31f37 + languageName: node + linkType: hard + +"@vitest/runner@npm:2.0.5": + version: 2.0.5 + resolution: "@vitest/runner@npm:2.0.5" + dependencies: + "@vitest/utils": "npm:2.0.5" + pathe: "npm:^1.1.2" + checksum: 10c0/d0ed3302a7e015bf44b7c0df9d8f7da163659e082d86f9406944b5a31a61ab9ddc1de530e06176d1f4ef0bde994b44bff4c7dab62aacdc235c8fc04b98e4a72a + languageName: node + linkType: hard + +"@vitest/snapshot@npm:2.0.5": + version: 2.0.5 + resolution: "@vitest/snapshot@npm:2.0.5" + dependencies: + "@vitest/pretty-format": "npm:2.0.5" + magic-string: "npm:^0.30.10" + pathe: "npm:^1.1.2" + checksum: 10c0/7bf38474248f5ae0aac6afad511785d2b7a023ac5158803c2868fd172b5b9c1a569fb1dd64a09a49e43fd342cab71ea485ada89b7f08d37b1622a5a0ac00271d + languageName: node + linkType: hard + +"@vitest/spy@npm:2.0.5": + version: 2.0.5 + resolution: "@vitest/spy@npm:2.0.5" + dependencies: + tinyspy: "npm:^3.0.0" + checksum: 10c0/70634c21921eb271b54d2986c21d7ab6896a31c0f4f1d266940c9bafb8ac36237846d6736638cbf18b958bd98e5261b158a6944352742accfde50b7818ff655e + languageName: node + linkType: hard + +"@vitest/ui@npm:^2.0.5": + version: 2.0.5 + resolution: "@vitest/ui@npm:2.0.5" + dependencies: + "@vitest/utils": "npm:2.0.5" + fast-glob: "npm:^3.3.2" + fflate: "npm:^0.8.2" + flatted: "npm:^3.3.1" + pathe: "npm:^1.1.2" + sirv: "npm:^2.0.4" + tinyrainbow: "npm:^1.2.0" + peerDependencies: + vitest: 2.0.5 + checksum: 10c0/fb4ac379d9ab63a9ca43a61cfc47794fe24d6a42016e76a2fb00b30dfddf6c2e906c33ca8b749cbaf72f0c28724594c5c81b6ed3262b858ae779a14afd6099a1 + languageName: node + linkType: hard + +"@vitest/utils@npm:2.0.5": + version: 2.0.5 + resolution: "@vitest/utils@npm:2.0.5" + dependencies: + "@vitest/pretty-format": "npm:2.0.5" + estree-walker: "npm:^3.0.3" + loupe: "npm:^3.1.1" + tinyrainbow: "npm:^1.2.0" + checksum: 10c0/0d1de748298f07a50281e1ba058b05dcd58da3280c14e6f016265e950bd79adab6b97822de8f0ea82d3070f585654801a9b1bcf26db4372e51cf7746bf86d73b + languageName: node + linkType: hard + +"@wdio/config@npm:8.39.0": + version: 8.39.0 + resolution: "@wdio/config@npm:8.39.0" + dependencies: + "@wdio/logger": "npm:8.38.0" + "@wdio/types": "npm:8.39.0" + "@wdio/utils": "npm:8.39.0" + decamelize: "npm:^6.0.0" + deepmerge-ts: "npm:^5.0.0" + glob: "npm:^10.2.2" + import-meta-resolve: "npm:^4.0.0" + checksum: 10c0/a22089c66eefc69b2f0eec98947a3031a8dd5bb40ebd64762626de58ee126af5477ce3486fe3af6148fded397242535b380f0ee0583449a97e8f3d8670a2112b + languageName: node + linkType: hard + +"@wdio/logger@npm:8.38.0, @wdio/logger@npm:^8.28.0": + version: 8.38.0 + resolution: "@wdio/logger@npm:8.38.0" + dependencies: + chalk: "npm:^5.1.2" + loglevel: "npm:^1.6.0" + loglevel-plugin-prefix: "npm:^0.8.4" + strip-ansi: "npm:^7.1.0" + checksum: 10c0/79f16731c40a70b92ed531ddd9c8caff8348ab1399b041a64f30ace160ece8b459457d4b275709c8fa06a018fcd0cddc054e4536a1900001d9840a9819d0a182 + languageName: node + linkType: hard + +"@wdio/protocols@npm:8.38.0": + version: 8.38.0 + resolution: "@wdio/protocols@npm:8.38.0" + checksum: 10c0/542a6434d51bba4a6ae4333850ce4d56c335d0f22fafac475a32ad060b8834e966925c9fd922d55321bc7a788422b041dddebc2bd4894120e6af603f90a1407c + languageName: node + linkType: hard + +"@wdio/repl@npm:8.24.12": + version: 8.24.12 + resolution: "@wdio/repl@npm:8.24.12" + dependencies: + "@types/node": "npm:^20.1.0" + checksum: 10c0/b175aa66e23d53c060ea7d729c0d44b4afec9970f1ab6ea5399d66d972506643a0e4bff7490f1ddc4f45f48e8dc500bc49e4b34bf75566f01f6d42e11591c7f3 + languageName: node + linkType: hard + +"@wdio/types@npm:8.39.0": + version: 8.39.0 + resolution: "@wdio/types@npm:8.39.0" + dependencies: + "@types/node": "npm:^20.1.0" + checksum: 10c0/38fc0da1ca930c3e62eb8205e7e325029604b0b251153bf728cc8df62f5e4a43935f6c096ad32ae453e918e02e5a21eacd829e1b7b873f59a330a94e90094e62 + languageName: node + linkType: hard + +"@wdio/utils@npm:8.39.0": + version: 8.39.0 + resolution: "@wdio/utils@npm:8.39.0" + dependencies: + "@puppeteer/browsers": "npm:^1.6.0" + "@wdio/logger": "npm:8.38.0" + "@wdio/types": "npm:8.39.0" + decamelize: "npm:^6.0.0" + deepmerge-ts: "npm:^5.1.0" + edgedriver: "npm:^5.5.0" + geckodriver: "npm:^4.3.1" + get-port: "npm:^7.0.0" + import-meta-resolve: "npm:^4.0.0" + locate-app: "npm:^2.1.0" + safaridriver: "npm:^0.1.0" + split2: "npm:^4.2.0" + wait-port: "npm:^1.0.4" + checksum: 10c0/6cc6317928333cad17b0e3f72054af49c436dbeeb9482ec3d0757a42577183567f49b39c3cc614d6ce5c81a3baf30b3319d054714be41a1b713dad009f759a9c languageName: node linkType: hard @@ -2985,6 +3490,13 @@ __metadata: languageName: node linkType: hard +"@zip.js/zip.js@npm:^2.7.44": + version: 2.7.48 + resolution: "@zip.js/zip.js@npm:2.7.48" + checksum: 10c0/1caad2114792b45e53f13845f45c120491b73df3e90547aa63bf40be1178b467e86b8813e8f1960e03d4c55a2f5f00013f380dfcb9a8f2407e9ba46070853f14 + languageName: node + linkType: hard + "JSONStream@npm:^1.3.5": version: 1.3.5 resolution: "JSONStream@npm:1.3.5" @@ -3011,6 +3523,15 @@ __metadata: languageName: node linkType: hard +"abort-controller@npm:^3.0.0": + version: 3.0.0 + resolution: "abort-controller@npm:3.0.0" + dependencies: + event-target-shim: "npm:^5.0.0" + checksum: 10c0/90ccc50f010250152509a344eb2e71977fbf8db0ab8f1061197e3275ddf6c61a41a6edfd7b9409c664513131dd96e962065415325ef23efa5db931b382d24ca5 + languageName: node + linkType: hard + "accepts@npm:~1.3.4, accepts@npm:~1.3.5, accepts@npm:~1.3.8": version: 1.3.8 resolution: "accepts@npm:1.3.8" @@ -3046,7 +3567,7 @@ __metadata: languageName: node linkType: hard -"acorn-jsx@npm:^5.0.0, acorn-jsx@npm:^5.3.2": +"acorn-jsx@npm:^5.3.2": version: 5.3.2 resolution: "acorn-jsx@npm:5.3.2" peerDependencies: @@ -3091,7 +3612,7 @@ __metadata: languageName: node linkType: hard -"acorn@npm:^6.0.7, acorn@npm:^6.4.1": +"acorn@npm:^6.4.1": version: 6.4.2 resolution: "acorn@npm:6.4.2" bin: @@ -3199,21 +3720,9 @@ __metadata: languageName: node linkType: hard -"ajv@npm:^5.0.0": - version: 5.5.2 - resolution: "ajv@npm:5.5.2" - dependencies: - co: "npm:^4.6.0" - fast-deep-equal: "npm:^1.0.0" - fast-json-stable-stringify: "npm:^2.0.0" - json-schema-traverse: "npm:^0.3.0" - checksum: 10c0/9b8f762cd6b9da3935987b82418402247e76925e39814ca0d62088656117129db7e0cdc1d3e4aa6a3c4aa5ff67021551299ee4771735bcccb6cdd3f85061e565 - languageName: node - linkType: hard - -"ajv@npm:^6.1.0, ajv@npm:^6.10.2, ajv@npm:^6.12.3, ajv@npm:^6.12.4, ajv@npm:^6.12.5, ajv@npm:^6.9.1": - version: 6.12.6 - resolution: "ajv@npm:6.12.6" +"ajv@npm:^6.1.0, ajv@npm:^6.10.2, ajv@npm:^6.12.3, ajv@npm:^6.12.4, ajv@npm:^6.12.5": + version: 6.12.6 + resolution: "ajv@npm:6.12.6" dependencies: fast-deep-equal: "npm:^3.1.1" fast-json-stable-stringify: "npm:^2.0.0" @@ -3246,20 +3755,6 @@ __metadata: languageName: node linkType: hard -"ansi-colors@npm:^4.1.3": - version: 4.1.3 - resolution: "ansi-colors@npm:4.1.3" - checksum: 10c0/ec87a2f59902f74e61eada7f6e6fe20094a628dab765cfdbd03c3477599368768cffccdb5d3bb19a1b6c99126783a143b1fee31aab729b31ffe5836c7e5e28b9 - languageName: node - linkType: hard - -"ansi-escapes@npm:^3.2.0": - version: 3.2.0 - resolution: "ansi-escapes@npm:3.2.0" - checksum: 10c0/084e1ce38139ad2406f18a8e7efe2b850ddd06ce3c00f633392d1ce67756dab44fe290e573d09ef3c9a0cb13c12881e0e35a8f77a017d39a0a4ab85ae2fae04f - languageName: node - linkType: hard - "ansi-escapes@npm:^4.3.2": version: 4.3.2 resolution: "ansi-escapes@npm:4.3.2" @@ -3294,27 +3789,6 @@ __metadata: languageName: node linkType: hard -"ansi-regex@npm:^2.0.0": - version: 2.1.1 - resolution: "ansi-regex@npm:2.1.1" - checksum: 10c0/78cebaf50bce2cb96341a7230adf28d804611da3ce6bf338efa7b72f06cc6ff648e29f80cd95e582617ba58d5fdbec38abfeed3500a98bce8381a9daec7c548b - languageName: node - linkType: hard - -"ansi-regex@npm:^3.0.0": - version: 3.0.1 - resolution: "ansi-regex@npm:3.0.1" - checksum: 10c0/d108a7498b8568caf4a46eea4f1784ab4e0dfb2e3f3938c697dee21443d622d765c958f2b7e2b9f6b9e55e2e2af0584eaa9915d51782b89a841c28e744e7a167 - languageName: node - linkType: hard - -"ansi-regex@npm:^4.1.0": - version: 4.1.1 - resolution: "ansi-regex@npm:4.1.1" - checksum: 10c0/d36d34234d077e8770169d980fed7b2f3724bfa2a01da150ccd75ef9707c80e883d27cdf7a0eac2f145ac1d10a785a8a855cffd05b85f778629a0db62e7033da - languageName: node - linkType: hard - "ansi-regex@npm:^5.0.1": version: 5.0.1 resolution: "ansi-regex@npm:5.0.1" @@ -3329,14 +3803,7 @@ __metadata: languageName: node linkType: hard -"ansi-styles@npm:^2.2.1": - version: 2.2.1 - resolution: "ansi-styles@npm:2.2.1" - checksum: 10c0/7c68aed4f1857389e7a12f85537ea5b40d832656babbf511cc7ecd9efc52889b9c3e5653a71a6aade783c3c5e0aa223ad4ff8e83c27ac8a666514e6c79068cab - languageName: node - linkType: hard - -"ansi-styles@npm:^3.2.0, ansi-styles@npm:^3.2.1": +"ansi-styles@npm:^3.2.1": version: 3.2.1 resolution: "ansi-styles@npm:3.2.1" dependencies: @@ -3354,6 +3821,13 @@ __metadata: languageName: node linkType: hard +"ansi-styles@npm:^5.0.0": + version: 5.2.0 + resolution: "ansi-styles@npm:5.2.0" + checksum: 10c0/9c4ca80eb3c2fb7b33841c210d2f20807f40865d27008d7c3f707b7f95cab7d67462a565e2388ac3285b71cb3d9bb2173de8da37c57692a362885ec34d6e27df + languageName: node + linkType: hard + "ansi-styles@npm:^6.0.0, ansi-styles@npm:^6.1.0, ansi-styles@npm:^6.2.1": version: 6.2.1 resolution: "ansi-styles@npm:6.2.1" @@ -3402,6 +3876,36 @@ __metadata: languageName: node linkType: hard +"archiver-utils@npm:^5.0.0, archiver-utils@npm:^5.0.2": + version: 5.0.2 + resolution: "archiver-utils@npm:5.0.2" + dependencies: + glob: "npm:^10.0.0" + graceful-fs: "npm:^4.2.0" + is-stream: "npm:^2.0.1" + lazystream: "npm:^1.0.0" + lodash: "npm:^4.17.15" + normalize-path: "npm:^3.0.0" + readable-stream: "npm:^4.0.0" + checksum: 10c0/3782c5fa9922186aa1a8e41ed0c2867569faa5f15c8e5e6418ea4c1b730b476e21bd68270b3ea457daf459ae23aaea070b2b9f90cf90a59def8dc79b9e4ef538 + languageName: node + linkType: hard + +"archiver@npm:^7.0.0": + version: 7.0.1 + resolution: "archiver@npm:7.0.1" + dependencies: + archiver-utils: "npm:^5.0.2" + async: "npm:^3.2.4" + buffer-crc32: "npm:^1.0.0" + readable-stream: "npm:^4.0.0" + readdir-glob: "npm:^1.1.2" + tar-stream: "npm:^3.0.0" + zip-stream: "npm:^6.0.1" + checksum: 10c0/02afd87ca16f6184f752db8e26884e6eff911c476812a0e7f7b26c4beb09f06119807f388a8e26ed2558aa8ba9db28646ebd147a4f99e46813b8b43158e1438e + languageName: node + linkType: hard + "archy@npm:~1.0.0": version: 1.0.0 resolution: "archy@npm:1.0.0" @@ -3449,6 +3953,15 @@ __metadata: languageName: node linkType: hard +"aria-query@npm:5.3.0, aria-query@npm:^5.0.0": + version: 5.3.0 + resolution: "aria-query@npm:5.3.0" + dependencies: + dequal: "npm:^2.0.3" + checksum: 10c0/2bff0d4eba5852a9dd578ecf47eaef0e82cc52569b48469b0aac2db5145db0b17b7a58d9e01237706d1e14b7a1b0ac9b78e9c97027ad97679dd8f91b85da1469 + languageName: node + linkType: hard + "arr-diff@npm:^4.0.0": version: 4.0.0 resolution: "arr-diff@npm:4.0.0" @@ -3643,10 +4156,10 @@ __metadata: languageName: node linkType: hard -"assertion-error@npm:^1.1.0": - version: 1.1.0 - resolution: "assertion-error@npm:1.1.0" - checksum: 10c0/25456b2aa333250f01143968e02e4884a34588a8538fbbf65c91a637f1dbfb8069249133cd2f4e530f10f624d206a664e7df30207830b659e9f5298b00a4099b +"assertion-error@npm:^2.0.1": + version: 2.0.1 + resolution: "assertion-error@npm:2.0.1" + checksum: 10c0/bbbcb117ac6480138f8c93cf7f535614282dea9dc828f540cdece85e3c665e8f78958b96afac52f29ff883c72638e6a87d469ecc9fe5bc902df03ed24a55dba8 languageName: node linkType: hard @@ -3664,6 +4177,15 @@ __metadata: languageName: node linkType: hard +"ast-types@npm:^0.13.4": + version: 0.13.4 + resolution: "ast-types@npm:0.13.4" + dependencies: + tslib: "npm:^2.0.1" + checksum: 10c0/3a1a409764faa1471601a0ad01b3aa699292991aa9c8a30c7717002cabdf5d98008e7b53ae61f6e058f757fc6ba965e147967a93c13e62692c907d79cfb245f8 + languageName: node + linkType: hard + "ast-types@npm:^0.14.2": version: 0.14.2 resolution: "ast-types@npm:0.14.2" @@ -3673,13 +4195,6 @@ __metadata: languageName: node linkType: hard -"astral-regex@npm:^1.0.0": - version: 1.0.0 - resolution: "astral-regex@npm:1.0.0" - checksum: 10c0/ca460207a19d84c65671e1a85940101522d42f31a450cdb8f93b3464e6daeaf4b58a362826a6c11c57e6cd1976403d197abb0447cfc2087993a29b35c6d63b63 - languageName: node - linkType: hard - "async-each@npm:^1.0.1": version: 1.0.6 resolution: "async-each@npm:1.0.6" @@ -3703,6 +4218,13 @@ __metadata: languageName: node linkType: hard +"async@npm:^3.2.4": + version: 3.2.5 + resolution: "async@npm:3.2.5" + checksum: 10c0/1408287b26c6db67d45cb346e34892cee555b8b59e6c68e6f8c3e495cad5ca13b4f218180e871f3c2ca30df4ab52693b66f2f6ff43644760cab0b2198bda79c1 + languageName: node + linkType: hard + "asynckit@npm:^0.4.0": version: 0.4.0 resolution: "asynckit@npm:0.4.0" @@ -3749,43 +4271,14 @@ __metadata: languageName: node linkType: hard -"babel-code-frame@npm:^6.26.0": - version: 6.26.0 - resolution: "babel-code-frame@npm:6.26.0" - dependencies: - chalk: "npm:^1.1.3" - esutils: "npm:^2.0.2" - js-tokens: "npm:^3.0.2" - checksum: 10c0/7fecc128e87578cf1b96e78d2b25e0b260e202bdbbfcefa2eac23b7f8b7b2f7bc9276a14599cde14403cc798cc2a38e428e2cab50b77658ab49228b09ae92473 - languageName: node - linkType: hard - -"babel-generator@npm:^6.18.0": - version: 6.26.1 - resolution: "babel-generator@npm:6.26.1" - dependencies: - babel-messages: "npm:^6.23.0" - babel-runtime: "npm:^6.26.0" - babel-types: "npm:^6.26.0" - detect-indent: "npm:^4.0.0" - jsesc: "npm:^1.3.0" - lodash: "npm:^4.17.4" - source-map: "npm:^0.5.7" - trim-right: "npm:^1.0.1" - checksum: 10c0/d5f9d20c6f7d8644dc41ee57d48c98a78d24d5b74dc305cc518d6e0872d4fa73c5fd8d47ec00e3515858eaf3c3e512a703cdbc184ff0061af5979bc206618555 - languageName: node - linkType: hard - -"babel-messages@npm:^6.23.0": - version: 6.23.0 - resolution: "babel-messages@npm:6.23.0" - dependencies: - babel-runtime: "npm:^6.22.0" - checksum: 10c0/d4fd6414ee5bb1aa0dad6d8d2c4ffaa66331ec5a507959e11f56b19a683566e2c1e7a4d0b16cfef58ea4cc07db8acf5ff3dc8b25c585407cff2e09ac60553401 +"b4a@npm:^1.6.4": + version: 1.6.6 + resolution: "b4a@npm:1.6.6" + checksum: 10c0/56f30277666cb511a15829e38d369b114df7dc8cec4cedc09cc5d685bc0f27cb63c7bcfb58e09a19a1b3c4f2541069ab078b5328542e85d74a39620327709a38 languageName: node linkType: hard -"babel-runtime@npm:^6.22.0, babel-runtime@npm:^6.26.0": +"babel-runtime@npm:^6.26.0": version: 6.26.0 resolution: "babel-runtime@npm:6.26.0" dependencies: @@ -3795,37 +4288,7 @@ __metadata: languageName: node linkType: hard -"babel-template@npm:^6.16.0": - version: 6.26.0 - resolution: "babel-template@npm:6.26.0" - dependencies: - babel-runtime: "npm:^6.26.0" - babel-traverse: "npm:^6.26.0" - babel-types: "npm:^6.26.0" - babylon: "npm:^6.18.0" - lodash: "npm:^4.17.4" - checksum: 10c0/67bc875f19d289dabb1830a1cde93d7f1e187e4599dac9b1d16392fd47f1d12b53fea902dacf7be360acd09807d440faafe0f7907758c13275b1a14d100b68e4 - languageName: node - linkType: hard - -"babel-traverse@npm:^6.18.0, babel-traverse@npm:^6.26.0": - version: 6.26.0 - resolution: "babel-traverse@npm:6.26.0" - dependencies: - babel-code-frame: "npm:^6.26.0" - babel-messages: "npm:^6.23.0" - babel-runtime: "npm:^6.26.0" - babel-types: "npm:^6.26.0" - babylon: "npm:^6.18.0" - debug: "npm:^2.6.8" - globals: "npm:^9.18.0" - invariant: "npm:^2.2.2" - lodash: "npm:^4.17.4" - checksum: 10c0/dca71b23d07e3c00833c3222d7998202e687105f461048107afeb2b4a7aa2507efab1bd5a6e3e724724ebb9b1e0b14f0113621e1d8c25b4ffdb829392b54b8de - languageName: node - linkType: hard - -"babel-types@npm:^6.18.0, babel-types@npm:^6.26.0": +"babel-types@npm:^6.26.0": version: 6.26.0 resolution: "babel-types@npm:6.26.0" dependencies: @@ -3853,17 +4316,53 @@ __metadata: languageName: node linkType: hard -"base64-js@npm:^1.0.2": - version: 1.5.1 - resolution: "base64-js@npm:1.5.1" - checksum: 10c0/f23823513b63173a001030fae4f2dabe283b99a9d324ade3ad3d148e218134676f1ee8568c877cd79ec1c53158dcf2d2ba527a97c606618928ba99dd930102bf +"bare-events@npm:^2.0.0, bare-events@npm:^2.2.0": + version: 2.4.2 + resolution: "bare-events@npm:2.4.2" + checksum: 10c0/09fa923061f31f815e83504e2ed4a8ba87732a01db40a7fae703dbb7eef7f05d99264b5e186074cbe9698213990d1af564c62cca07a5ff88baea8099ad9a6303 languageName: node linkType: hard -"base64id@npm:2.0.0, base64id@npm:~2.0.0": - version: 2.0.0 - resolution: "base64id@npm:2.0.0" - checksum: 10c0/6919efd237ed44b9988cbfc33eca6f173a10e810ce50292b271a1a421aac7748ef232a64d1e6032b08f19aae48dce6ee8f66c5ae2c9e5066c82b884861d4d453 +"bare-fs@npm:^2.1.1": + version: 2.3.1 + resolution: "bare-fs@npm:2.3.1" + dependencies: + bare-events: "npm:^2.0.0" + bare-path: "npm:^2.0.0" + bare-stream: "npm:^2.0.0" + checksum: 10c0/820979ad3dd8693076ba08af842e41b5119fcca63f4324b8f28d96b96050cd260085dffd1169dc644f20746fadb4cf4368b317f2fa2db4e40890921ceb557581 + languageName: node + linkType: hard + +"bare-os@npm:^2.1.0": + version: 2.4.0 + resolution: "bare-os@npm:2.4.0" + checksum: 10c0/85615522fd8309d3815d3bef227623f008fac34e037459294a7e24bb2b51ea125597274b8aa7e7038f82de89c15e2148fef299eece40ec3ea33797a357c4f2bb + languageName: node + linkType: hard + +"bare-path@npm:^2.0.0, bare-path@npm:^2.1.0": + version: 2.1.3 + resolution: "bare-path@npm:2.1.3" + dependencies: + bare-os: "npm:^2.1.0" + checksum: 10c0/35587e177fc8fa5b13fb90bac8779b5ce49c99016d221ddaefe2232d02bd4295d79b941e14ae19fda75ec42a6fe5fb66c07d83ae7ec11462178e66b7be65ca74 + languageName: node + linkType: hard + +"bare-stream@npm:^2.0.0": + version: 2.1.3 + resolution: "bare-stream@npm:2.1.3" + dependencies: + streamx: "npm:^2.18.0" + checksum: 10c0/8703b1d80318496ea560483943d5f425a160ded8d3d75659571842caf5f374f52668809bc1e39b032af14df7210973995efaf273f8c35986bef697380ef4674a + languageName: node + linkType: hard + +"base64-js@npm:^1.0.2, base64-js@npm:^1.3.1": + version: 1.5.1 + resolution: "base64-js@npm:1.5.1" + checksum: 10c0/f23823513b63173a001030fae4f2dabe283b99a9d324ade3ad3d148e218134676f1ee8568c877cd79ec1c53158dcf2d2ba527a97c606618928ba99dd930102bf languageName: node linkType: hard @@ -3882,6 +4381,13 @@ __metadata: languageName: node linkType: hard +"basic-ftp@npm:^5.0.2": + version: 5.0.5 + resolution: "basic-ftp@npm:5.0.5" + checksum: 10c0/be983a3997749856da87b839ffce6b8ed6c7dbf91ea991d5c980d8add275f9f2926c19f80217ac3e7f353815be879371d636407ca72b038cea8cab30e53928a6 + languageName: node + linkType: hard + "batch@npm:0.6.1": version: 0.6.1 resolution: "batch@npm:0.6.1" @@ -3937,7 +4443,7 @@ __metadata: dependencies: "@commitlint/cli": "npm:19.3.0" "@commitlint/config-conventional": "npm:^19.2.2" - "@eslint/js": "npm:^9.7.0" + "@eslint/js": "npm:^9.8.0" "@rollup/plugin-node-resolve": "npm:^15.2.3" "@rollup/plugin-replace": "npm:^5.0.7" "@rollup/plugin-typescript": "npm:^11.1.6" @@ -3947,14 +4453,16 @@ __metadata: "@semantic-release/git": "npm:^10.0.1" "@semantic-release/npm": "npm:^12.0.1" "@semantic-release/release-notes-generator": "npm:^14.0.1" - "@types/chai": "npm:^4.3.16" + "@testing-library/dom": "npm:^10.4.0" + "@testing-library/react": "npm:^16.0.0" "@types/d3": "npm:^7.4.3" "@types/d3-selection": "npm:^3.0.0" "@types/d3-transition": "npm:^3.0.0" - "@types/mocha": "npm:^10.0.7" "@types/sinon": "npm:^17.0.3" + "@vitest/browser": "npm:^2.0.5" + "@vitest/coverage-istanbul": "npm:^2.0.5" + "@vitest/ui": "npm:^2.0.5" better-docs: "npm:^2.7.3" - chai: "npm:^4.3.10" clean-webpack-plugin: "npm:^4.0.0" cloc: "npm:^2.11.0" core-js: "npm:^3.37.1" @@ -3981,44 +4489,29 @@ __metadata: docdash: "npm:^2.0.2" dprint: "npm:^0.47.2" esbuild-loader: "npm:^4.2.2" - eslint: "npm:^9.7.0" - eslint-config-naver: "npm:^2.1.0" + eslint: "npm:^9.8.0" eslint-plugin-import: "npm:^2.29.1" - eslint-plugin-jsdoc: "npm:^48.8.3" - exports-loader: "npm:^5.0.0" - hammer-simulator: "npm:0.0.1" - husky: "npm:^9.1.1" - istanbul-instrumenter-loader: "npm:^3.0.1" - istanbul-lib-instrument: "npm:^6.0.3" + eslint-plugin-jsdoc: "npm:^48.9.2" + husky: "npm:^9.1.4" jsdoc: "npm:^4.0.3" - karma: "npm:^6.4.3" - karma-chai: "npm:^0.1.0" - karma-chrome-launcher: "npm:^3.2.0" - karma-coverage-istanbul-reporter: "npm:^3.0.3" - karma-mocha: "npm:^2.0.1" - karma-mocha-reporter: "npm:^2.2.3" - karma-scss-preprocessor: "npm:^4.0.0" - karma-sinon: "npm:^1.0.5" - karma-sourcemap-loader: "npm:^0.4.0" - karma-webpack: "npm:^5.0.1" lint-staged: "npm:^15.2.7" - lite-fixture: "npm:^1.0.2" mini-css-extract-plugin: "npm:^2.9.0" - mocha: "npm:^10.7.0" node-sass: "npm:^9.0.0" regenerator-runtime: "npm:^0.14.1" - rollup: "npm:^4.19.0" + rollup: "npm:^4.19.1" rollup-plugin-delete: "npm:^2.0.0" - sass-loader: "npm:^14.2.1" + sass: "npm:^1.77.8" + sass-loader: "npm:^16.0.0" semantic-release: "npm:^24.0.0" simulant: "npm:^0.2.2" sinon: "npm:^18.0.0" string-replace-loader: "npm:^3.1.0" style-loader: "npm:^4.0.0" - taffydb: "npm:^2.7.3" tslib: "npm:^2.6.3" typescript: "npm:5.5.4" - typescript-eslint: "npm:^7.17.0" + typescript-eslint: "npm:^7.18.0" + vitest: "npm:^2.0.5" + webdriverio: "npm:^8.39.1" webpack: "npm:^5.93.0" webpack-bundle-analyzer: "npm:^4.10.2" webpack-clean: "npm:^1.2.5" @@ -4087,7 +4580,7 @@ __metadata: languageName: node linkType: hard -"body-parser@npm:1.20.2, body-parser@npm:^1.19.0": +"body-parser@npm:1.20.2": version: 1.20.2 resolution: "body-parser@npm:1.20.2" dependencies: @@ -4168,7 +4661,7 @@ __metadata: languageName: node linkType: hard -"braces@npm:^3.0.2, braces@npm:^3.0.3, braces@npm:~3.0.2": +"braces@npm:^3.0.3, braces@npm:~3.0.2": version: 3.0.3 resolution: "braces@npm:3.0.3" dependencies: @@ -4184,13 +4677,6 @@ __metadata: languageName: node linkType: hard -"browser-stdout@npm:^1.3.1": - version: 1.3.1 - resolution: "browser-stdout@npm:1.3.1" - checksum: 10c0/c40e482fd82be872b6ea7b9f7591beafbf6f5ba522fe3dade98ba1573a1c29a11101564993e4eb44e5488be8f44510af072df9a9637c739217eb155ceb639205 - languageName: node - linkType: hard - "browserify-aes@npm:^1.0.4, browserify-aes@npm:^1.2.0": version: 1.2.0 resolution: "browserify-aes@npm:1.2.0" @@ -4279,6 +4765,20 @@ __metadata: languageName: node linkType: hard +"buffer-crc32@npm:^1.0.0": + version: 1.0.0 + resolution: "buffer-crc32@npm:1.0.0" + checksum: 10c0/8b86e161cee4bb48d5fa622cbae4c18f25e4857e5203b89e23de59e627ab26beb82d9d7999f2b8de02580165f61f83f997beaf02980cdf06affd175b651921ab + languageName: node + linkType: hard + +"buffer-crc32@npm:~0.2.3": + version: 0.2.13 + resolution: "buffer-crc32@npm:0.2.13" + checksum: 10c0/cb0a8ddf5cf4f766466db63279e47761eb825693eeba6a5a95ee4ec8cb8f81ede70aa7f9d8aeec083e781d47154290eb5d4d26b3f7a465ec57fb9e7d59c47150 + languageName: node + linkType: hard + "buffer-from@npm:^1.0.0": version: 1.1.2 resolution: "buffer-from@npm:1.1.2" @@ -4304,6 +4804,26 @@ __metadata: languageName: node linkType: hard +"buffer@npm:^5.2.1": + version: 5.7.1 + resolution: "buffer@npm:5.7.1" + dependencies: + base64-js: "npm:^1.3.1" + ieee754: "npm:^1.1.13" + checksum: 10c0/27cac81cff434ed2876058d72e7c4789d11ff1120ef32c9de48f59eab58179b66710c488987d295ae89a228f835fc66d088652dffeb8e3ba8659f80eb091d55e + languageName: node + linkType: hard + +"buffer@npm:^6.0.3": + version: 6.0.3 + resolution: "buffer@npm:6.0.3" + dependencies: + base64-js: "npm:^1.3.1" + ieee754: "npm:^1.2.1" + checksum: 10c0/2a905fbbcde73cc5d8bd18d1caa23715d5f83a5935867c2329f0ac06104204ba7947be098fe1317fbd8830e26090ff8e764f08cd14fefc977bb248c3487bcbd0 + languageName: node + linkType: hard + "builtin-modules@npm:^3.3.0": version: 3.3.0 resolution: "builtin-modules@npm:3.3.0" @@ -4363,6 +4883,13 @@ __metadata: languageName: node linkType: hard +"cac@npm:^6.7.14": + version: 6.7.14 + resolution: "cac@npm:6.7.14" + checksum: 10c0/4ee06aaa7bab8981f0d54e5f5f9d4adcd64058e9697563ce336d8a3878ed018ee18ebe5359b2430eceae87e0758e62ea2019c3f52ae6e211b1bd2e133856cd10 + languageName: node + linkType: hard + "cacache@npm:^12.0.2": version: 12.0.4 resolution: "cacache@npm:12.0.4" @@ -4475,6 +5002,28 @@ __metadata: languageName: node linkType: hard +"cacheable-lookup@npm:^7.0.0": + version: 7.0.0 + resolution: "cacheable-lookup@npm:7.0.0" + checksum: 10c0/63a9c144c5b45cb5549251e3ea774c04d63063b29e469f7584171d059d3a88f650f47869a974e2d07de62116463d742c287a81a625e791539d987115cb081635 + languageName: node + linkType: hard + +"cacheable-request@npm:^10.2.8": + version: 10.2.14 + resolution: "cacheable-request@npm:10.2.14" + dependencies: + "@types/http-cache-semantics": "npm:^4.0.2" + get-stream: "npm:^6.0.1" + http-cache-semantics: "npm:^4.1.1" + keyv: "npm:^4.5.3" + mimic-response: "npm:^4.0.0" + normalize-url: "npm:^8.0.0" + responselike: "npm:^3.0.0" + checksum: 10c0/41b6658db369f20c03128227ecd219ca7ac52a9d24fc0f499cc9aa5d40c097b48b73553504cebd137024d957c0ddb5b67cf3ac1439b136667f3586257763f88d + languageName: node + linkType: hard + "call-bind@npm:^1.0.2, call-bind@npm:^1.0.5, call-bind@npm:^1.0.6, call-bind@npm:^1.0.7": version: 1.0.7 resolution: "call-bind@npm:1.0.7" @@ -4520,13 +5069,6 @@ __metadata: languageName: node linkType: hard -"camelcase@npm:^6.0.0": - version: 6.3.0 - resolution: "camelcase@npm:6.3.0" - checksum: 10c0/0d701658219bd3116d12da3eab31acddb3f9440790c0792e0d398f0a520a6a4058018e546862b6fba89d7ae990efaeb97da71e1913e9ebf5a8b5621a3d55c710 - languageName: node - linkType: hard - "caniuse-lite@npm:^1.0.30001640": version: 1.0.30001643 resolution: "caniuse-lite@npm:1.0.30001643" @@ -4560,35 +5102,20 @@ __metadata: languageName: node linkType: hard -"chai@npm:^4.3.10": - version: 4.4.1 - resolution: "chai@npm:4.4.1" - dependencies: - assertion-error: "npm:^1.1.0" - check-error: "npm:^1.0.3" - deep-eql: "npm:^4.1.3" - get-func-name: "npm:^2.0.2" - loupe: "npm:^2.3.6" - pathval: "npm:^1.1.1" - type-detect: "npm:^4.0.8" - checksum: 10c0/91590a8fe18bd6235dece04ccb2d5b4ecec49984b50924499bdcd7a95c02cb1fd2a689407c19bb854497bde534ef57525cfad6c7fdd2507100fd802fbc2aefbd - languageName: node - linkType: hard - -"chalk@npm:^1.1.3": - version: 1.1.3 - resolution: "chalk@npm:1.1.3" +"chai@npm:^5.1.1": + version: 5.1.1 + resolution: "chai@npm:5.1.1" dependencies: - ansi-styles: "npm:^2.2.1" - escape-string-regexp: "npm:^1.0.2" - has-ansi: "npm:^2.0.0" - strip-ansi: "npm:^3.0.0" - supports-color: "npm:^2.0.0" - checksum: 10c0/28c3e399ec286bb3a7111fd4225ebedb0d7b813aef38a37bca7c498d032459c265ef43404201d5fbb8d888d29090899c95335b4c0cda13e8b126ff15c541cef8 + assertion-error: "npm:^2.0.1" + check-error: "npm:^2.1.1" + deep-eql: "npm:^5.0.1" + loupe: "npm:^3.1.0" + pathval: "npm:^2.0.0" + checksum: 10c0/e7f00e5881e3d5224f08fe63966ed6566bd9fdde175863c7c16dd5240416de9b34c4a0dd925f4fd64ad56256ca6507d32cf6131c49e1db65c62578eb31d4566c languageName: node linkType: hard -"chalk@npm:^2.0.1, chalk@npm:^2.1.0, chalk@npm:^2.3.2, chalk@npm:^2.4.0, chalk@npm:^2.4.1, chalk@npm:^2.4.2": +"chalk@npm:^2.3.2, chalk@npm:^2.4.0, chalk@npm:^2.4.2": version: 2.4.2 resolution: "chalk@npm:2.4.2" dependencies: @@ -4609,7 +5136,7 @@ __metadata: languageName: node linkType: hard -"chalk@npm:^5.3.0, chalk@npm:~5.3.0": +"chalk@npm:^5.1.2, chalk@npm:^5.3.0, chalk@npm:~5.3.0": version: 5.3.0 resolution: "chalk@npm:5.3.0" checksum: 10c0/8297d436b2c0f95801103ff2ef67268d362021b8210daf8ddbe349695333eb3610a71122172ff3b0272f1ef2cf7cc2c41fdaa4715f52e49ffe04c56340feed09 @@ -4632,19 +5159,29 @@ __metadata: languageName: node linkType: hard -"chardet@npm:^0.7.0": - version: 0.7.0 - resolution: "chardet@npm:0.7.0" - checksum: 10c0/96e4731b9ec8050cbb56ab684e8c48d6c33f7826b755802d14e3ebfdc51c57afeece3ea39bc6b09acc359e4363525388b915e16640c1378053820f5e70d0f27d +"check-error@npm:^2.1.1": + version: 2.1.1 + resolution: "check-error@npm:2.1.1" + checksum: 10c0/979f13eccab306cf1785fa10941a590b4e7ea9916ea2a4f8c87f0316fc3eab07eabefb6e587424ef0f88cbcd3805791f172ea739863ca3d7ce2afc54641c7f0e languageName: node linkType: hard -"check-error@npm:^1.0.3": - version: 1.0.3 - resolution: "check-error@npm:1.0.3" +"chokidar@npm:>=3.0.0 <4.0.0, chokidar@npm:^3.4.1, chokidar@npm:^3.6.0": + version: 3.6.0 + resolution: "chokidar@npm:3.6.0" dependencies: - get-func-name: "npm:^2.0.2" - checksum: 10c0/94aa37a7315c0e8a83d0112b5bfb5a8624f7f0f81057c73e4707729cdd8077166c6aefb3d8e2b92c63ee130d4a2ff94bad46d547e12f3238cc1d78342a973841 + anymatch: "npm:~3.1.2" + braces: "npm:~3.0.2" + fsevents: "npm:~2.3.2" + glob-parent: "npm:~5.1.2" + is-binary-path: "npm:~2.1.0" + is-glob: "npm:~4.0.1" + normalize-path: "npm:~3.0.0" + readdirp: "npm:~3.6.0" + dependenciesMeta: + fsevents: + optional: true + checksum: 10c0/8361dcd013f2ddbe260eacb1f3cb2f2c6f2b0ad118708a343a5ed8158941a39cb8fb1d272e0f389712e74ee90ce8ba864eece9e0e62b9705cb468a2f6d917462 languageName: node linkType: hard @@ -4671,25 +5208,6 @@ __metadata: languageName: node linkType: hard -"chokidar@npm:^3.4.1, chokidar@npm:^3.5.1, chokidar@npm:^3.5.3, chokidar@npm:^3.6.0": - version: 3.6.0 - resolution: "chokidar@npm:3.6.0" - dependencies: - anymatch: "npm:~3.1.2" - braces: "npm:~3.0.2" - fsevents: "npm:~2.3.2" - glob-parent: "npm:~5.1.2" - is-binary-path: "npm:~2.1.0" - is-glob: "npm:~4.0.1" - normalize-path: "npm:~3.0.0" - readdirp: "npm:~3.6.0" - dependenciesMeta: - fsevents: - optional: true - checksum: 10c0/8361dcd013f2ddbe260eacb1f3cb2f2c6f2b0ad118708a343a5ed8158941a39cb8fb1d272e0f389712e74ee90ce8ba864eece9e0e62b9705cb468a2f6d917462 - languageName: node - linkType: hard - "chownr@npm:^1.1.1": version: 1.1.4 resolution: "chownr@npm:1.1.4" @@ -4711,6 +5229,17 @@ __metadata: languageName: node linkType: hard +"chromium-bidi@npm:0.4.16": + version: 0.4.16 + resolution: "chromium-bidi@npm:0.4.16" + dependencies: + mitt: "npm:3.0.0" + peerDependencies: + devtools-protocol: "*" + checksum: 10c0/583aad0fff9c24381f90b8f6740be40f321cc031c88bb6881fe55f24e170b3342f2fd7242b700dcfd30f947830eb42879a1af333b94b386b3ba5b7a205646ae8 + languageName: node + linkType: hard + "ci-info@npm:^4.0.0": version: 4.0.0 resolution: "ci-info@npm:4.0.0" @@ -4795,15 +5324,6 @@ __metadata: languageName: node linkType: hard -"cli-cursor@npm:^2.1.0": - version: 2.1.0 - resolution: "cli-cursor@npm:2.1.0" - dependencies: - restore-cursor: "npm:^2.0.0" - checksum: 10c0/09ee6d8b5b818d840bf80ec9561eaf696672197d3a02a7daee2def96d5f52ce6e0bbe7afca754ccf14f04830b5a1b4556273e983507d5029f95bba3016618eda - languageName: node - linkType: hard - "cli-cursor@npm:^4.0.0": version: 4.0.0 resolution: "cli-cursor@npm:4.0.0" @@ -4829,6 +5349,13 @@ __metadata: languageName: node linkType: hard +"cli-spinners@npm:^2.9.2": + version: 2.9.2 + resolution: "cli-spinners@npm:2.9.2" + checksum: 10c0/907a1c227ddf0d7a101e7ab8b300affc742ead4b4ebe920a5bf1bc6d45dce2958fcd195eb28fa25275062fe6fa9b109b93b63bc8033396ed3bcb50297008b3a3 + languageName: node + linkType: hard + "cli-table3@npm:^0.6.5": version: 0.6.5 resolution: "cli-table3@npm:0.6.5" @@ -4852,10 +5379,10 @@ __metadata: languageName: node linkType: hard -"cli-width@npm:^2.0.0": - version: 2.2.1 - resolution: "cli-width@npm:2.2.1" - checksum: 10c0/e3a6d422d657ca111c630f69ee0f1a499e8f114eea158ccb2cdbedd19711edffa217093bbd43dafb34b68d1b1a3b5334126e51d059b9ec1d19afa53b42b3ef86 +"cli-width@npm:^4.1.0": + version: 4.1.0 + resolution: "cli-width@npm:4.1.0" + checksum: 10c0/1fbd56413578f6117abcaf858903ba1f4ad78370a4032f916745fa2c7e390183a9d9029cf837df320b0fdce8137668e522f60a30a5f3d6529ff3872d265a955f languageName: node linkType: hard @@ -4919,13 +5446,6 @@ __metadata: languageName: node linkType: hard -"co@npm:^4.6.0": - version: 4.6.0 - resolution: "co@npm:4.6.0" - checksum: 10c0/c0e85ea0ca8bf0a50cbdca82efc5af0301240ca88ebe3644a6ffb8ffe911f34d40f8fbcf8f1d52c5ddd66706abd4d3bfcd64259f1e8e2371d4f47573b0dc8c28 - languageName: node - linkType: hard - "collection-visit@npm:^1.0.0": version: 1.0.0 resolution: "collection-visit@npm:1.0.0" @@ -5021,6 +5541,13 @@ __metadata: languageName: node linkType: hard +"commander@npm:^9.3.0": + version: 9.5.0 + resolution: "commander@npm:9.5.0" + checksum: 10c0/5f7784fbda2aaec39e89eb46f06a999e00224b3763dc65976e05929ec486e174fe9aac2655f03ba6a5e83875bd173be5283dc19309b7c65954701c02025b3c1d + languageName: node + linkType: hard + "commander@npm:~12.1.0": version: 12.1.0 resolution: "commander@npm:12.1.0" @@ -5077,6 +5604,19 @@ __metadata: languageName: node linkType: hard +"compress-commons@npm:^6.0.2": + version: 6.0.2 + resolution: "compress-commons@npm:6.0.2" + dependencies: + crc-32: "npm:^1.2.0" + crc32-stream: "npm:^6.0.0" + is-stream: "npm:^2.0.1" + normalize-path: "npm:^3.0.0" + readable-stream: "npm:^4.0.0" + checksum: 10c0/2347031b7c92c8ed5011b07b93ec53b298fa2cd1800897532ac4d4d1aeae06567883f481b6e35f13b65fc31b190c751df6635434d525562f0203fde76f1f0814 + languageName: node + linkType: hard + "compressible@npm:~2.0.16": version: 2.0.18 resolution: "compressible@npm:2.0.18" @@ -5137,18 +5677,6 @@ __metadata: languageName: node linkType: hard -"connect@npm:^3.7.0": - version: 3.7.0 - resolution: "connect@npm:3.7.0" - dependencies: - debug: "npm:2.6.9" - finalhandler: "npm:1.1.2" - parseurl: "npm:~1.3.3" - utils-merge: "npm:1.0.1" - checksum: 10c0/f120c6116bb16a0a7d2703c0b4a0cd7ed787dc5ec91978097bf62aa967289020a9f41a9cd3c3276a7b92aaa36f382d2cd35fed7138fd466a55c8e9fdbed11ca8 - languageName: node - linkType: hard - "consola@npm:^3.2.3": version: 3.2.3 resolution: "consola@npm:3.2.3" @@ -5286,13 +5814,6 @@ __metadata: languageName: node linkType: hard -"convert-source-map@npm:^1.5.0": - version: 1.9.0 - resolution: "convert-source-map@npm:1.9.0" - checksum: 10c0/281da55454bf8126cbc6625385928c43479f2060984180c42f3a86c8b8c12720a24eac260624a7d1e090004028d2dee78602330578ceec1a08e27cb8bb0a8a5b - languageName: node - linkType: hard - "convert-source-map@npm:^2.0.0": version: 2.0.0 resolution: "convert-source-map@npm:2.0.0" @@ -5314,10 +5835,10 @@ __metadata: languageName: node linkType: hard -"cookie@npm:~0.4.1": - version: 0.4.2 - resolution: "cookie@npm:0.4.2" - checksum: 10c0/beab41fbd7c20175e3a2799ba948c1dcc71ef69f23fe14eeeff59fc09f50c517b0f77098db87dbb4c55da802f9d86ee86cdc1cd3efd87760341551838d53fca2 +"cookie@npm:^0.5.0": + version: 0.5.0 + resolution: "cookie@npm:0.5.0" + checksum: 10c0/c01ca3ef8d7b8187bae434434582288681273b5a9ed27521d4d7f9f7928fe0c920df0decd9f9d3bbd2d14ac432b8c8cf42b98b3bdd5bfe0e6edddeebebe8b61d languageName: node linkType: hard @@ -5370,16 +5891,6 @@ __metadata: languageName: node linkType: hard -"cors@npm:~2.8.5": - version: 2.8.5 - resolution: "cors@npm:2.8.5" - dependencies: - object-assign: "npm:^4" - vary: "npm:^1" - checksum: 10c0/373702b7999409922da80de4a61938aabba6929aea5b6fd9096fefb9e8342f626c0ebd7507b0e8b0b311380744cc985f27edebc0a26e0ddb784b54e1085de761 - languageName: node - linkType: hard - "cosmiconfig-typescript-loader@npm:^5.0.0": version: 5.0.0 resolution: "cosmiconfig-typescript-loader@npm:5.0.0" @@ -5425,6 +5936,25 @@ __metadata: languageName: node linkType: hard +"crc-32@npm:^1.2.0": + version: 1.2.2 + resolution: "crc-32@npm:1.2.2" + bin: + crc32: bin/crc32.njs + checksum: 10c0/11dcf4a2e77ee793835d49f2c028838eae58b44f50d1ff08394a610bfd817523f105d6ae4d9b5bef0aad45510f633eb23c903e9902e4409bed1ce70cb82b9bf0 + languageName: node + linkType: hard + +"crc32-stream@npm:^6.0.0": + version: 6.0.0 + resolution: "crc32-stream@npm:6.0.0" + dependencies: + crc-32: "npm:^1.2.0" + readable-stream: "npm:^4.0.0" + checksum: 10c0/bf9c84571ede2d119c2b4f3a9ef5eeb9ff94b588493c0d3862259af86d3679dcce1c8569dd2b0a6eff2f35f5e2081cc1263b846d2538d4054da78cf34f262a3d + languageName: node + linkType: hard + "create-ecdh@npm:^4.0.0": version: 4.0.4 resolution: "create-ecdh@npm:4.0.4" @@ -5474,16 +6004,12 @@ __metadata: languageName: node linkType: hard -"cross-spawn@npm:^6.0.5": - version: 6.0.5 - resolution: "cross-spawn@npm:6.0.5" +"cross-fetch@npm:4.0.0": + version: 4.0.0 + resolution: "cross-fetch@npm:4.0.0" dependencies: - nice-try: "npm:^1.0.4" - path-key: "npm:^2.0.1" - semver: "npm:^5.5.0" - shebang-command: "npm:^1.2.0" - which: "npm:^1.2.9" - checksum: 10c0/e05544722e9d7189b4292c66e42b7abeb21db0d07c91b785f4ae5fefceb1f89e626da2703744657b287e86dcd4af57b54567cef75159957ff7a8a761d9055012 + node-fetch: "npm:^2.6.12" + checksum: 10c0/386727dc4c6b044746086aced959ff21101abb85c43df5e1d151547ccb6f338f86dec3f28b9dbddfa8ff5b9ec8662ed2263ad4607a93b2dc354fb7fe3bbb898a languageName: node linkType: hard @@ -5550,6 +6076,20 @@ __metadata: languageName: node linkType: hard +"css-shorthand-properties@npm:^1.1.1": + version: 1.1.1 + resolution: "css-shorthand-properties@npm:1.1.1" + checksum: 10c0/f4a2acb9aa844e00ddc6bc47b7a68f2e3467f91e862253d276209f3e4f9c5821801babdfc9b8adba2b9271320bd54838953678859ef9edc33dd4b786fbe6c824 + languageName: node + linkType: hard + +"css-value@npm:^0.0.1": + version: 0.0.1 + resolution: "css-value@npm:0.0.1" + checksum: 10c0/1d3f5177df6c8d0ef26b98e2c3376b44c4a3898336bb2fb38d3ac38ee2e2848a4ca4fddec291108e1a254439f2c1462ac5cf71e342480b9123ac5f3cd1251cd5 + languageName: node + linkType: hard + "cssesc@npm:^3.0.0": version: 3.0.0 resolution: "cssesc@npm:3.0.0" @@ -5559,13 +6099,6 @@ __metadata: languageName: node linkType: hard -"custom-event@npm:~1.0.0": - version: 1.0.1 - resolution: "custom-event@npm:1.0.1" - checksum: 10c0/86cd8497328b1e17dcda894c8df34a73b7a99f915123940d39b33c709482b2d3a2e689cd5e79e4775eb4167227689f57a2ae2f99a3f0bc9c54c0ac1b06853bd5 - languageName: node - linkType: hard - "cycle@npm:1.0.x": version: 1.0.3 resolution: "cycle@npm:1.0.3" @@ -5815,6 +6348,20 @@ __metadata: languageName: node linkType: hard +"data-uri-to-buffer@npm:^4.0.0": + version: 4.0.1 + resolution: "data-uri-to-buffer@npm:4.0.1" + checksum: 10c0/20a6b93107597530d71d4cb285acee17f66bcdfc03fd81040921a81252f19db27588d87fc8fc69e1950c55cfb0bf8ae40d0e5e21d907230813eb5d5a7f9eb45b + languageName: node + linkType: hard + +"data-uri-to-buffer@npm:^6.0.2": + version: 6.0.2 + resolution: "data-uri-to-buffer@npm:6.0.2" + checksum: 10c0/f76922bf895b3d7d443059ff278c9cc5efc89d70b8b80cd9de0aa79b3adc6d7a17948eefb8692e30398c43635f70ece1673d6085cc9eba2878dbc6c6da5292ac + languageName: node + linkType: hard + "data-view-buffer@npm:^1.0.1": version: 1.0.1 resolution: "data-view-buffer@npm:1.0.1" @@ -5848,13 +6395,6 @@ __metadata: languageName: node linkType: hard -"date-format@npm:^4.0.14": - version: 4.0.14 - resolution: "date-format@npm:4.0.14" - checksum: 10c0/1c67a4d77c677bb880328c81d81f5b9ed7fbf672bdaff74e5a0f7314b21188f3a829b06acf120c70cc1df876a7724e3e5c23d511e86d64656a3035a76ac3930b - languageName: node - linkType: hard - "de-indent@npm:^1.0.2": version: 1.0.2 resolution: "de-indent@npm:1.0.2" @@ -5878,7 +6418,7 @@ __metadata: languageName: node linkType: hard -"debug@npm:4, debug@npm:^4.0.0, debug@npm:^4.0.1, debug@npm:^4.1.0, debug@npm:^4.1.1, debug@npm:^4.3.1, debug@npm:^4.3.2, debug@npm:^4.3.3, debug@npm:^4.3.4, debug@npm:^4.3.5, debug@npm:~4.3.1, debug@npm:~4.3.2, debug@npm:~4.3.4": +"debug@npm:4, debug@npm:^4.0.0, debug@npm:^4.1.0, debug@npm:^4.1.1, debug@npm:^4.3.1, debug@npm:^4.3.2, debug@npm:^4.3.3, debug@npm:^4.3.4, debug@npm:^4.3.5, debug@npm:~4.3.4": version: 4.3.5 resolution: "debug@npm:4.3.5" dependencies: @@ -5890,6 +6430,18 @@ __metadata: languageName: node linkType: hard +"debug@npm:4.3.4": + version: 4.3.4 + resolution: "debug@npm:4.3.4" + dependencies: + ms: "npm:2.1.2" + peerDependenciesMeta: + supports-color: + optional: true + checksum: 10c0/cedbec45298dd5c501d01b92b119cd3faebe5438c3917ff11ae1bff86a6c722930ac9c8659792824013168ba6db7c4668225d845c633fbdafbbf902a6389f736 + languageName: node + linkType: hard + "debug@npm:^3.1.0, debug@npm:^3.2.7": version: 3.2.7 resolution: "debug@npm:3.2.7" @@ -5916,10 +6468,10 @@ __metadata: languageName: node linkType: hard -"decamelize@npm:^4.0.0": - version: 4.0.0 - resolution: "decamelize@npm:4.0.0" - checksum: 10c0/e06da03fc05333e8cd2778c1487da67ffbea5b84e03ca80449519b8fa61f888714bbc6f459ea963d5641b4aa98832130eb5cd193d90ae9f0a27eee14be8e278d +"decamelize@npm:^6.0.0": + version: 6.0.0 + resolution: "decamelize@npm:6.0.0" + checksum: 10c0/689888f5ea39add843d79fb5a8d3bc1ce1df7583899bc7cef081c3deecd54758e24e8692f4c214e0ea6917742bb05ea1991e3e15c33031e7aa7b9041e8e8033a languageName: node linkType: hard @@ -5930,12 +6482,19 @@ __metadata: languageName: node linkType: hard -"deep-eql@npm:^4.1.3": - version: 4.1.4 - resolution: "deep-eql@npm:4.1.4" +"decompress-response@npm:^6.0.0": + version: 6.0.0 + resolution: "decompress-response@npm:6.0.0" dependencies: - type-detect: "npm:^4.0.0" - checksum: 10c0/264e0613493b43552fc908f4ff87b8b445c0e6e075656649600e1b8a17a57ee03e960156fce7177646e4d2ddaf8e5ee616d76bd79929ff593e5c79e4e5e6c517 + mimic-response: "npm:^3.1.0" + checksum: 10c0/bd89d23141b96d80577e70c54fb226b2f40e74a6817652b80a116d7befb8758261ad073a8895648a29cc0a5947021ab66705cb542fa9c143c82022b27c5b175e + languageName: node + linkType: hard + +"deep-eql@npm:^5.0.1": + version: 5.0.2 + resolution: "deep-eql@npm:5.0.2" + checksum: 10c0/7102cf3b7bb719c6b9c0db2e19bf0aa9318d141581befe8c7ce8ccd39af9eaa4346e5e05adef7f9bd7015da0f13a3a25dcfe306ef79dc8668aedbecb658dd247 languageName: node linkType: hard @@ -5946,13 +6505,20 @@ __metadata: languageName: node linkType: hard -"deep-is@npm:^0.1.3, deep-is@npm:~0.1.3": +"deep-is@npm:^0.1.3": version: 0.1.4 resolution: "deep-is@npm:0.1.4" checksum: 10c0/7f0ee496e0dff14a573dc6127f14c95061b448b87b995fc96c017ce0a1e66af1675e73f1d6064407975bc4ea6ab679497a29fff7b5b9c4e99cb10797c1ad0b4c languageName: node linkType: hard +"deepmerge-ts@npm:^5.0.0, deepmerge-ts@npm:^5.1.0": + version: 5.1.0 + resolution: "deepmerge-ts@npm:5.1.0" + checksum: 10c0/28f810e6f3c638020922c3abfb4f20bc8fff00262dbc5a1f5283ecae0b8ffd3b3b95aaca3c8992d8680eb5754c11d87edff1915235e145c5afdc53102665418f + languageName: node + linkType: hard + "deepmerge@npm:^4.2.2": version: 4.3.1 resolution: "deepmerge@npm:4.3.1" @@ -5986,6 +6552,13 @@ __metadata: languageName: node linkType: hard +"defer-to-connect@npm:^2.0.1": + version: 2.0.1 + resolution: "defer-to-connect@npm:2.0.1" + checksum: 10c0/625ce28e1b5ad10cf77057b9a6a727bf84780c17660f6644dab61dd34c23de3001f03cedc401f7d30a4ed9965c2e8a7336e220a329146f2cf85d4eddea429782 + languageName: node + linkType: hard + "define-data-property@npm:^1.0.1, define-data-property@npm:^1.1.4": version: 1.1.4 resolution: "define-data-property@npm:1.1.4" @@ -6043,6 +6616,17 @@ __metadata: languageName: node linkType: hard +"degenerator@npm:^5.0.0": + version: 5.0.1 + resolution: "degenerator@npm:5.0.1" + dependencies: + ast-types: "npm:^0.13.4" + escodegen: "npm:^2.1.0" + esprima: "npm:^4.0.1" + checksum: 10c0/e48d8a651edeb512a648711a09afec269aac6de97d442a4bb9cf121a66877e0eec11b9727100a10252335c0666ae1c84a8bc1e3a3f47788742c975064d2c7b1c + languageName: node + linkType: hard + "del@npm:^4.1.1": version: 4.1.1 resolution: "del@npm:4.1.1" @@ -6111,6 +6695,13 @@ __metadata: languageName: node linkType: hard +"dequal@npm:^2.0.3": + version: 2.0.3 + resolution: "dequal@npm:2.0.3" + checksum: 10c0/f98860cdf58b64991ae10205137c0e97d384c3a4edc7f807603887b7c4b850af1224a33d88012009f150861cbee4fa2d322c4cc04b9313bee312e47f6ecaa888 + languageName: node + linkType: hard + "des.js@npm:^1.0.0": version: 1.1.0 resolution: "des.js@npm:1.1.0" @@ -6128,15 +6719,6 @@ __metadata: languageName: node linkType: hard -"detect-indent@npm:^4.0.0": - version: 4.0.0 - resolution: "detect-indent@npm:4.0.0" - dependencies: - repeating: "npm:^2.0.0" - checksum: 10c0/066a0d13eadebb1e7d2ba395fdf9f3956f31f8383a6db263320108c283e2230250a102f4871f54926cc8a77c6323ac7103f30550a4ac3d6518aa1b934c041295 - languageName: node - linkType: hard - "detect-node@npm:^2.0.4": version: 2.1.0 resolution: "detect-node@npm:2.1.0" @@ -6144,10 +6726,17 @@ __metadata: languageName: node linkType: hard -"di@npm:^0.0.1": - version: 0.0.1 - resolution: "di@npm:0.0.1" - checksum: 10c0/fbca4cc93e8c493d50f82df3a9ecaa5d8b2935674aabddeb8f68db3ab03c942c201f9c3d920de094407392ee6f488eac16b96f500c0ea6b408634864b7b939d1 +"devtools-protocol@npm:0.0.1147663": + version: 0.0.1147663 + resolution: "devtools-protocol@npm:0.0.1147663" + checksum: 10c0/3620276912ec881ead6445a70fc740856f1fdef4eaebee9dd3411d6eeb9a1036cde4856cd5bdcf4c294aead438c2cf6c18834b314ba0fd97b95eb6d4efb75dc9 + languageName: node + linkType: hard + +"devtools-protocol@npm:^0.0.1302984": + version: 0.0.1302984 + resolution: "devtools-protocol@npm:0.0.1302984" + checksum: 10c0/a933110e2b5a4f4a3e8eaea56662605e55f4aa58bffb762bd93adfef627bc173e5770a567f5210d54733312f9ae7419252965f3a43c448b23a2bd833b25750e6 languageName: node linkType: hard @@ -6228,15 +6817,10 @@ __metadata: languageName: node linkType: hard -"dom-serialize@npm:^2.2.1": - version: 2.2.1 - resolution: "dom-serialize@npm:2.2.1" - dependencies: - custom-event: "npm:~1.0.0" - ent: "npm:~2.2.0" - extend: "npm:^3.0.0" - void-elements: "npm:^2.0.0" - checksum: 10c0/ceb6e62b73c658986ca4c9b8b2fae358d8ae914eb06712d137da595a327c3bbca45a762f412a6d181f892ce5e3cffb855c2db2b64c53ad0534b2a0ad8e65b05e +"dom-accessibility-api@npm:^0.5.9": + version: 0.5.16 + resolution: "dom-accessibility-api@npm:0.5.16" + checksum: 10c0/b2c2eda4fae568977cdac27a9f0c001edf4f95a6a6191dfa611e3721db2478d1badc01db5bb4fa8a848aeee13e442a6c2a4386d65ec65a1436f24715a2f8d053 languageName: node linkType: hard @@ -6336,6 +6920,32 @@ __metadata: languageName: node linkType: hard +"edge-paths@npm:^3.0.5": + version: 3.0.5 + resolution: "edge-paths@npm:3.0.5" + dependencies: + "@types/which": "npm:^2.0.1" + which: "npm:^2.0.2" + checksum: 10c0/690c3d274004ab1ea87be50d261690c788ad27debdb0b7a38b0d91e823510b2ef3aa58735666cfeafc88e2d935f329f968901caee860cde3f50110f1d383e6e3 + languageName: node + linkType: hard + +"edgedriver@npm:^5.5.0": + version: 5.6.0 + resolution: "edgedriver@npm:5.6.0" + dependencies: + "@wdio/logger": "npm:^8.28.0" + "@zip.js/zip.js": "npm:^2.7.44" + decamelize: "npm:^6.0.0" + edge-paths: "npm:^3.0.5" + node-fetch: "npm:^3.3.2" + which: "npm:^4.0.0" + bin: + edgedriver: bin/edgedriver.js + checksum: 10c0/3fb305662fd34cff72c2e6564dda87b8c64d9d778f277b398f9d307e80f350e3a3958ef20f013ba9105a8d3e080994d3698432d9663fe0d3cf983af4d789f99d + languageName: node + linkType: hard + "ee-first@npm:1.1.1": version: 1.1.1 resolution: "ee-first@npm:1.1.1" @@ -6372,13 +6982,6 @@ __metadata: languageName: node linkType: hard -"emoji-regex@npm:^7.0.1": - version: 7.0.3 - resolution: "emoji-regex@npm:7.0.3" - checksum: 10c0/a8917d695c3a3384e4b7230a6a06fd2de6b3db3709116792e8b7b36ddbb3db4deb28ad3e983e70d4f2a1f9063b5dab9025e4e26e9ca08278da4fbb73e213743f - languageName: node - linkType: hard - "emoji-regex@npm:^8.0.0": version: 8.0.0 resolution: "emoji-regex@npm:8.0.0" @@ -6432,31 +7035,6 @@ __metadata: languageName: node linkType: hard -"engine.io-parser@npm:~5.2.1": - version: 5.2.3 - resolution: "engine.io-parser@npm:5.2.3" - checksum: 10c0/ed4900d8dbef470ab3839ccf3bfa79ee518ea8277c7f1f2759e8c22a48f64e687ea5e474291394d0c94f84054749fd93f3ef0acb51fa2f5f234cc9d9d8e7c536 - languageName: node - linkType: hard - -"engine.io@npm:~6.5.2": - version: 6.5.5 - resolution: "engine.io@npm:6.5.5" - dependencies: - "@types/cookie": "npm:^0.4.1" - "@types/cors": "npm:^2.8.12" - "@types/node": "npm:>=10.0.0" - accepts: "npm:~1.3.4" - base64id: "npm:2.0.0" - cookie: "npm:~0.4.1" - cors: "npm:~2.8.5" - debug: "npm:~4.3.1" - engine.io-parser: "npm:~5.2.1" - ws: "npm:~8.17.1" - checksum: 10c0/b0994134917c5d3649fd7aea283492eaf092131e572a8d379c7c9081548b42cff756730b4641edd0d1598148dd3be253c4d634cea2ba5c59622d175d9e567469 - languageName: node - linkType: hard - "enhanced-resolve@npm:^4.5.0": version: 4.5.0 resolution: "enhanced-resolve@npm:4.5.0" @@ -6478,15 +7056,6 @@ __metadata: languageName: node linkType: hard -"ent@npm:~2.2.0": - version: 2.2.1 - resolution: "ent@npm:2.2.1" - dependencies: - punycode: "npm:^1.4.1" - checksum: 10c0/1a8ed52210b9a688c481673a7cb82699b66bd25f6960f212a5456b635a4a9bfd42371230fe59a3134dd8c2f6ab2c8736c60cebead640d271d601c9346bed458d - languageName: node - linkType: hard - "entities@npm:^4.4.0": version: 4.5.0 resolution: "entities@npm:4.5.0" @@ -6758,7 +7327,7 @@ __metadata: languageName: node linkType: hard -"esbuild@npm:^0.21.0": +"esbuild@npm:^0.21.0, esbuild@npm:^0.21.3": version: 0.21.5 resolution: "esbuild@npm:0.21.5" dependencies: @@ -6859,7 +7428,7 @@ __metadata: languageName: node linkType: hard -"escape-string-regexp@npm:^1.0.2, escape-string-regexp@npm:^1.0.5": +"escape-string-regexp@npm:^1.0.5": version: 1.0.5 resolution: "escape-string-regexp@npm:1.0.5" checksum: 10c0/a968ad453dd0c2724e14a4f20e177aaf32bb384ab41b674a8454afe9a41c5e6fe8903323e0a1052f56289d04bd600f81278edf140b0fcc02f5cac98d0f5b5371 @@ -6880,6 +7449,24 @@ __metadata: languageName: node linkType: hard +"escodegen@npm:^2.1.0": + version: 2.1.0 + resolution: "escodegen@npm:2.1.0" + dependencies: + esprima: "npm:^4.0.1" + estraverse: "npm:^5.2.0" + esutils: "npm:^2.0.2" + source-map: "npm:~0.6.1" + dependenciesMeta: + source-map: + optional: true + bin: + escodegen: bin/escodegen.js + esgenerate: bin/esgenerate.js + checksum: 10c0/e1450a1f75f67d35c061bf0d60888b15f62ab63aef9df1901cffc81cffbbb9e8b3de237c5502cf8613a017c1df3a3003881307c78835a1ab54d8c8d2206e01d3 + languageName: node + linkType: hard + "escope@npm:^3.6.0": version: 3.6.0 resolution: "escope@npm:3.6.0" @@ -6892,16 +7479,6 @@ __metadata: languageName: node linkType: hard -"eslint-config-naver@npm:^2.1.0": - version: 2.1.0 - resolution: "eslint-config-naver@npm:2.1.0" - dependencies: - eslint: "npm:^5.10.0" - eslint-plugin-import: "npm:^2.14.0" - checksum: 10c0/44aea542dce256a748aaadb4e84495ea462d8175b683fabbfb87072d041892e93dd14b12ff75bfa092edf1652b6b5006c204448e4ef9de2015a1a74bc695aef7 - languageName: node - linkType: hard - "eslint-import-resolver-node@npm:^0.3.9": version: 0.3.9 resolution: "eslint-import-resolver-node@npm:0.3.9" @@ -6925,7 +7502,7 @@ __metadata: languageName: node linkType: hard -"eslint-plugin-import@npm:^2.14.0, eslint-plugin-import@npm:^2.29.1": +"eslint-plugin-import@npm:^2.29.1": version: 2.29.1 resolution: "eslint-plugin-import@npm:2.29.1" dependencies: @@ -6952,15 +7529,16 @@ __metadata: languageName: node linkType: hard -"eslint-plugin-jsdoc@npm:^48.8.3": - version: 48.8.3 - resolution: "eslint-plugin-jsdoc@npm:48.8.3" +"eslint-plugin-jsdoc@npm:^48.9.2": + version: 48.10.2 + resolution: "eslint-plugin-jsdoc@npm:48.10.2" dependencies: "@es-joy/jsdoccomment": "npm:~0.46.0" are-docs-informative: "npm:^0.0.2" comment-parser: "npm:1.4.1" debug: "npm:^4.3.5" escape-string-regexp: "npm:^4.0.0" + espree: "npm:^10.1.0" esquery: "npm:^1.6.0" parse-imports: "npm:^2.1.1" semver: "npm:^7.6.3" @@ -6968,7 +7546,7 @@ __metadata: synckit: "npm:^0.9.1" peerDependencies: eslint: ^7.0.0 || ^8.0.0 || ^9.0.0 - checksum: 10c0/78d893614b188617de5a03d8163406455e3b739fd7b86192eb05a29cf8e7f06909a6f6a1b9dc2acd31e5ae2bccd94600eaea247d277f58c3c946c0fdb36a57f7 + checksum: 10c0/b0954db45fc087b36b984f550236a7c2d8386bf3bc57477f2c95c24a612922bb81b1ffee598226b5004e50890e2e6fada33432db38111a0c40bdbc759614382e languageName: node linkType: hard @@ -7002,22 +7580,6 @@ __metadata: languageName: node linkType: hard -"eslint-utils@npm:^1.3.1": - version: 1.4.3 - resolution: "eslint-utils@npm:1.4.3" - dependencies: - eslint-visitor-keys: "npm:^1.1.0" - checksum: 10c0/ba19a817177d5fc54ae89cd80ecc8bc24eefd640bd8b0db204f29dc79cf9621bb42d68bf31eae6c89ca1f52d748b6583214f57288f9a78d2bd368a2340abe41c - languageName: node - linkType: hard - -"eslint-visitor-keys@npm:^1.0.0, eslint-visitor-keys@npm:^1.1.0": - version: 1.3.0 - resolution: "eslint-visitor-keys@npm:1.3.0" - checksum: 10c0/10c91fdbbe36810dd4308e57f9a8bc7177188b2a70247e54e3af1fa05ebc66414ae6fd4ce3c6c6821591f43a556e9037bc6b071122e099b5f8b7d2f76df553e3 - languageName: node - linkType: hard - "eslint-visitor-keys@npm:^3.3.0, eslint-visitor-keys@npm:^3.4.3": version: 3.4.3 resolution: "eslint-visitor-keys@npm:3.4.3" @@ -7032,61 +7594,15 @@ __metadata: languageName: node linkType: hard -"eslint@npm:^5.10.0": - version: 5.16.0 - resolution: "eslint@npm:5.16.0" - dependencies: - "@babel/code-frame": "npm:^7.0.0" - ajv: "npm:^6.9.1" - chalk: "npm:^2.1.0" - cross-spawn: "npm:^6.0.5" - debug: "npm:^4.0.1" - doctrine: "npm:^3.0.0" - eslint-scope: "npm:^4.0.3" - eslint-utils: "npm:^1.3.1" - eslint-visitor-keys: "npm:^1.0.0" - espree: "npm:^5.0.1" - esquery: "npm:^1.0.1" - esutils: "npm:^2.0.2" - file-entry-cache: "npm:^5.0.1" - functional-red-black-tree: "npm:^1.0.1" - glob: "npm:^7.1.2" - globals: "npm:^11.7.0" - ignore: "npm:^4.0.6" - import-fresh: "npm:^3.0.0" - imurmurhash: "npm:^0.1.4" - inquirer: "npm:^6.2.2" - js-yaml: "npm:^3.13.0" - json-stable-stringify-without-jsonify: "npm:^1.0.1" - levn: "npm:^0.3.0" - lodash: "npm:^4.17.11" - minimatch: "npm:^3.0.4" - mkdirp: "npm:^0.5.1" - natural-compare: "npm:^1.4.0" - optionator: "npm:^0.8.2" - path-is-inside: "npm:^1.0.2" - progress: "npm:^2.0.0" - regexpp: "npm:^2.0.1" - semver: "npm:^5.5.1" - strip-ansi: "npm:^4.0.0" - strip-json-comments: "npm:^2.0.1" - table: "npm:^5.2.3" - text-table: "npm:^0.2.0" - bin: - eslint: ./bin/eslint.js - checksum: 10c0/b80161becd85523ffabb185f1604844fb2fd4d58970dc1d49f47f1fa838ef894e89a221b743016e7b7a50c5d6203dfb2452155ff5e1b4d1e8c17e677260c43d8 - languageName: node - linkType: hard - -"eslint@npm:^9.7.0": - version: 9.7.0 - resolution: "eslint@npm:9.7.0" +"eslint@npm:^9.8.0": + version: 9.8.0 + resolution: "eslint@npm:9.8.0" dependencies: "@eslint-community/eslint-utils": "npm:^4.2.0" "@eslint-community/regexpp": "npm:^4.11.0" - "@eslint/config-array": "npm:^0.17.0" + "@eslint/config-array": "npm:^0.17.1" "@eslint/eslintrc": "npm:^3.1.0" - "@eslint/js": "npm:9.7.0" + "@eslint/js": "npm:9.8.0" "@humanwhocodes/module-importer": "npm:^1.0.1" "@humanwhocodes/retry": "npm:^0.3.0" "@nodelib/fs.walk": "npm:^1.2.8" @@ -7118,7 +7634,7 @@ __metadata: text-table: "npm:^0.2.0" bin: eslint: bin/eslint.js - checksum: 10c0/e2369a9534404f62f37ee5560e56fb84e0776a9c8f084550170017992772e7034d73571bdf4060e2fe9b836f136d45b07d50407d4b9361de720ee77794259274 + checksum: 10c0/a2ee0cce1147565d011fe185733af482f34d5466f5df5f390d0ea2ecf78097883cf568ed6c771d687138609c63cd55cd1e3ff12de7393c03f54fcffcdd0f225d languageName: node linkType: hard @@ -7145,18 +7661,7 @@ __metadata: languageName: node linkType: hard -"espree@npm:^5.0.1": - version: 5.0.1 - resolution: "espree@npm:5.0.1" - dependencies: - acorn: "npm:^6.0.7" - acorn-jsx: "npm:^5.0.0" - eslint-visitor-keys: "npm:^1.0.0" - checksum: 10c0/738d028bd1ccf0fa872bfd8b427bfc4a985624a5a240997ee2e7ea3f281f47c6ac71356e2f563d4807908f3c53a3370e75d3f81eddde55efd10e6ab0821ce968 - languageName: node - linkType: hard - -"esprima@npm:^4.0.0, esprima@npm:~4.0.0": +"esprima@npm:^4.0.0, esprima@npm:^4.0.1, esprima@npm:~4.0.0": version: 4.0.1 resolution: "esprima@npm:4.0.1" bin: @@ -7166,7 +7671,7 @@ __metadata: languageName: node linkType: hard -"esquery@npm:^1.0.1, esquery@npm:^1.5.0, esquery@npm:^1.6.0": +"esquery@npm:^1.5.0, esquery@npm:^1.6.0": version: 1.6.0 resolution: "esquery@npm:1.6.0" dependencies: @@ -7216,6 +7721,15 @@ __metadata: languageName: node linkType: hard +"estree-walker@npm:^3.0.3": + version: 3.0.3 + resolution: "estree-walker@npm:3.0.3" + dependencies: + "@types/estree": "npm:^1.0.0" + checksum: 10c0/c12e3c2b2642d2bcae7d5aa495c60fa2f299160946535763969a1c83fc74518ffa9c2cd3a8b69ac56aea547df6a8aac25f729a342992ef0bbac5f1c73e78995d + languageName: node + linkType: hard + "esutils@npm:^2.0.2": version: 2.0.3 resolution: "esutils@npm:2.0.3" @@ -7240,6 +7754,13 @@ __metadata: languageName: node linkType: hard +"event-target-shim@npm:^5.0.0": + version: 5.0.1 + resolution: "event-target-shim@npm:5.0.1" + checksum: 10c0/0255d9f936215fd206156fd4caa9e8d35e62075d720dc7d847e89b417e5e62cf1ce6c9b4e0a1633a9256de0efefaf9f8d26924b1f3c8620cffb9db78e7d3076b + languageName: node + linkType: hard + "eventemitter3@npm:^4.0.0": version: 4.0.7 resolution: "eventemitter3@npm:4.0.7" @@ -7254,7 +7775,7 @@ __metadata: languageName: node linkType: hard -"events@npm:^3.0.0, events@npm:^3.2.0": +"events@npm:^3.0.0, events@npm:^3.2.0, events@npm:^3.3.0": version: 3.3.0 resolution: "events@npm:3.3.0" checksum: 10c0/d6b6f2adbccbcda74ddbab52ed07db727ef52e31a61ed26db9feb7dc62af7fc8e060defa65e5f8af9449b86b52cc1a1f6a79f2eafcf4e62add2b7a1fa4a432f6 @@ -7348,17 +7869,6 @@ __metadata: languageName: node linkType: hard -"exports-loader@npm:^5.0.0": - version: 5.0.0 - resolution: "exports-loader@npm:5.0.0" - dependencies: - source-map: "npm:^0.6.1" - peerDependencies: - webpack: ^5.0.0 - checksum: 10c0/86fe24d49c5840c58f1e14aa5396ad51085df3f2562d53a41216450319ab68ada5be500ac3325c1a40f483a0e25b7cf690cbb76e3dc19b8518f2b0cacf5e093c - languageName: node - linkType: hard - "express@npm:^4.17.3": version: 4.19.2 resolution: "express@npm:4.19.2" @@ -7426,24 +7936,13 @@ __metadata: languageName: node linkType: hard -"extend@npm:^3.0.0, extend@npm:~3.0.2": +"extend@npm:~3.0.2": version: 3.0.2 resolution: "extend@npm:3.0.2" checksum: 10c0/73bf6e27406e80aa3e85b0d1c4fd987261e628064e170ca781125c0b635a3dabad5e05adbf07595ea0cf1e6c5396cacb214af933da7cbaf24fe75ff14818e8f9 languageName: node linkType: hard -"external-editor@npm:^3.0.3": - version: 3.1.0 - resolution: "external-editor@npm:3.1.0" - dependencies: - chardet: "npm:^0.7.0" - iconv-lite: "npm:^0.4.24" - tmp: "npm:^0.0.33" - checksum: 10c0/c98f1ba3efdfa3c561db4447ff366a6adb5c1e2581462522c56a18bf90dfe4da382f9cd1feee3e330108c3595a854b218272539f311ba1b3298f841eb0fbf339 - languageName: node - linkType: hard - "extglob@npm:^2.0.4": version: 2.0.4 resolution: "extglob@npm:2.0.4" @@ -7460,6 +7959,23 @@ __metadata: languageName: node linkType: hard +"extract-zip@npm:2.0.1": + version: 2.0.1 + resolution: "extract-zip@npm:2.0.1" + dependencies: + "@types/yauzl": "npm:^2.9.1" + debug: "npm:^4.1.1" + get-stream: "npm:^5.1.0" + yauzl: "npm:^2.10.0" + dependenciesMeta: + "@types/yauzl": + optional: true + bin: + extract-zip: cli.js + checksum: 10c0/9afbd46854aa15a857ae0341a63a92743a7b89c8779102c3b4ffc207516b2019337353962309f85c66ee3d9092202a83cdc26dbf449a11981272038443974aee + languageName: node + linkType: hard + "extsprintf@npm:1.3.0": version: 1.3.0 resolution: "extsprintf@npm:1.3.0" @@ -7481,10 +7997,10 @@ __metadata: languageName: node linkType: hard -"fast-deep-equal@npm:^1.0.0": - version: 1.1.0 - resolution: "fast-deep-equal@npm:1.1.0" - checksum: 10c0/2cdcb17ca3c28ea199863de4ff0f4de14722c63bb19d716c1bbb4a661479413a0cbfb27e8596d34204e4525f0de11ff7c8ac6a27673c961bd0f37d0e48f9c743 +"fast-deep-equal@npm:^2.0.1": + version: 2.0.1 + resolution: "fast-deep-equal@npm:2.0.1" + checksum: 10c0/1602e0d6ed63493c865cc6b03f9070d6d3926e8cd086a123060b58f80a295f3f08b1ecfb479ae7c45b7fd45535202aea7cf5b49bc31bffb81c20b1502300be84 languageName: node linkType: hard @@ -7495,6 +8011,13 @@ __metadata: languageName: node linkType: hard +"fast-fifo@npm:^1.2.0, fast-fifo@npm:^1.3.2": + version: 1.3.2 + resolution: "fast-fifo@npm:1.3.2" + checksum: 10c0/d53f6f786875e8b0529f784b59b4b05d4b5c31c651710496440006a398389a579c8dbcd2081311478b5bf77f4b0b21de69109c5a4eabea9d8e8783d1eb864e4c + languageName: node + linkType: hard + "fast-glob@npm:^3.0.3, fast-glob@npm:^3.2.9, fast-glob@npm:^3.3.2": version: 3.3.2 resolution: "fast-glob@npm:3.3.2" @@ -7515,7 +8038,7 @@ __metadata: languageName: node linkType: hard -"fast-levenshtein@npm:^2.0.6, fast-levenshtein@npm:~2.0.6": +"fast-levenshtein@npm:^2.0.6": version: 2.0.6 resolution: "fast-levenshtein@npm:2.0.6" checksum: 10c0/111972b37338bcb88f7d9e2c5907862c280ebf4234433b95bc611e518d192ccb2d38119c4ac86e26b668d75f7f3894f4ff5c4982899afced7ca78633b08287c4 @@ -7554,6 +8077,32 @@ __metadata: languageName: node linkType: hard +"fd-slicer@npm:~1.1.0": + version: 1.1.0 + resolution: "fd-slicer@npm:1.1.0" + dependencies: + pend: "npm:~1.2.0" + checksum: 10c0/304dd70270298e3ffe3bcc05e6f7ade2511acc278bc52d025f8918b48b6aa3b77f10361bddfadfe2a28163f7af7adbdce96f4d22c31b2f648ba2901f0c5fc20e + languageName: node + linkType: hard + +"fetch-blob@npm:^3.1.2, fetch-blob@npm:^3.1.4": + version: 3.2.0 + resolution: "fetch-blob@npm:3.2.0" + dependencies: + node-domexception: "npm:^1.0.0" + web-streams-polyfill: "npm:^3.0.3" + checksum: 10c0/60054bf47bfa10fb0ba6cb7742acec2f37c1f56344f79a70bb8b1c48d77675927c720ff3191fa546410a0442c998d27ab05e9144c32d530d8a52fbe68f843b69 + languageName: node + linkType: hard + +"fflate@npm:^0.8.2": + version: 0.8.2 + resolution: "fflate@npm:0.8.2" + checksum: 10c0/03448d630c0a583abea594835a9fdb2aaf7d67787055a761515bf4ed862913cfd693b4c4ffd5c3f3b355a70cf1e19033e9ae5aedcca103188aaff91b8bd6e293 + languageName: node + linkType: hard + "figgy-pudding@npm:^3.5.1": version: 3.5.2 resolution: "figgy-pudding@npm:3.5.2" @@ -7588,15 +8137,6 @@ __metadata: languageName: node linkType: hard -"file-entry-cache@npm:^5.0.1": - version: 5.0.1 - resolution: "file-entry-cache@npm:5.0.1" - dependencies: - flat-cache: "npm:^2.0.1" - checksum: 10c0/2480fb523a0342b8ede8b17717517f69ce6b775083d06e50e2e10ca45f16c94f1d4d95976ae627735716174033374a2d6717ba4b58569e1fea8564a1b1f2e4c1 - languageName: node - linkType: hard - "file-entry-cache@npm:^8.0.0": version: 8.0.0 resolution: "file-entry-cache@npm:8.0.0" @@ -7648,21 +8188,6 @@ __metadata: languageName: node linkType: hard -"finalhandler@npm:1.1.2": - version: 1.1.2 - resolution: "finalhandler@npm:1.1.2" - dependencies: - debug: "npm:2.6.9" - encodeurl: "npm:~1.0.2" - escape-html: "npm:~1.0.3" - on-finished: "npm:~2.3.0" - parseurl: "npm:~1.3.3" - statuses: "npm:~1.5.0" - unpipe: "npm:~1.0.0" - checksum: 10c0/6a96e1f5caab085628c11d9fdceb82ba608d5e426c6913d4d918409baa271037a47f28fbba73279e8ad614f0b8fa71ea791d265e408d760793829edd8c2f4584 - languageName: node - linkType: hard - "finalhandler@npm:1.2.0": version: 1.2.0 resolution: "finalhandler@npm:1.2.0" @@ -7755,17 +8280,6 @@ __metadata: languageName: node linkType: hard -"flat-cache@npm:^2.0.1": - version: 2.0.1 - resolution: "flat-cache@npm:2.0.1" - dependencies: - flatted: "npm:^2.0.0" - rimraf: "npm:2.6.3" - write: "npm:1.0.3" - checksum: 10c0/09e4d2300d05734eb2ac39ea0bb9cc6d64c0c856f6b77d2bdc7734490b4a8f860d721f59ffd5508f6938c577f8394fe7b5f6acf99a5ec4af6478d7c5c8390bcb - languageName: node - linkType: hard - "flat-cache@npm:^4.0.0": version: 4.0.1 resolution: "flat-cache@npm:4.0.1" @@ -7785,14 +8299,7 @@ __metadata: languageName: node linkType: hard -"flatted@npm:^2.0.0": - version: 2.0.2 - resolution: "flatted@npm:2.0.2" - checksum: 10c0/1895ac3971c3a71b0384c6d8b8ef1f217dfe7e72bc7dabc51ef532772b761e626dd7cae53a729b9e65389409d7f03fd84f1900bde4f9e719ed04e57e8510e0d4 - languageName: node - linkType: hard - -"flatted@npm:^3.2.7, flatted@npm:^3.2.9": +"flatted@npm:^3.2.9, flatted@npm:^3.3.1": version: 3.3.1 resolution: "flatted@npm:3.3.1" checksum: 10c0/324166b125ee07d4ca9bcf3a5f98d915d5db4f39d711fba640a3178b959919aae1f7cfd8aabcfef5826ed8aa8a2aa14cc85b2d7d18ff638ddf4ae3df39573eaf @@ -7862,6 +8369,13 @@ __metadata: languageName: node linkType: hard +"form-data-encoder@npm:^2.1.2": + version: 2.1.4 + resolution: "form-data-encoder@npm:2.1.4" + checksum: 10c0/4c06ae2b79ad693a59938dc49ebd020ecb58e4584860a90a230f80a68b026483b022ba5e4143cff06ae5ac8fd446a0b500fabc87bbac3d1f62f2757f8dabcaf7 + languageName: node + linkType: hard + "form-data@npm:~2.3.2": version: 2.3.3 resolution: "form-data@npm:2.3.3" @@ -7873,6 +8387,15 @@ __metadata: languageName: node linkType: hard +"formdata-polyfill@npm:^4.0.10": + version: 4.0.10 + resolution: "formdata-polyfill@npm:4.0.10" + dependencies: + fetch-blob: "npm:^3.1.2" + checksum: 10c0/5392ec484f9ce0d5e0d52fb5a78e7486637d516179b0eb84d81389d7eccf9ca2f663079da56f761355c0a65792810e3b345dc24db9a8bbbcf24ef3c8c88570c6 + languageName: node + linkType: hard + "forwarded@npm:0.2.0": version: 0.2.0 resolution: "forwarded@npm:0.2.0" @@ -7918,7 +8441,7 @@ __metadata: languageName: node linkType: hard -"fs-extra@npm:^11.0.0": +"fs-extra@npm:^11.0.0, fs-extra@npm:^11.2.0": version: 11.2.0 resolution: "fs-extra@npm:11.2.0" dependencies: @@ -7929,17 +8452,6 @@ __metadata: languageName: node linkType: hard -"fs-extra@npm:^8.1.0": - version: 8.1.0 - resolution: "fs-extra@npm:8.1.0" - dependencies: - graceful-fs: "npm:^4.2.0" - jsonfile: "npm:^4.0.0" - universalify: "npm:^0.1.0" - checksum: 10c0/259f7b814d9e50d686899550c4f9ded85c46c643f7fe19be69504888e007fcbc08f306fae8ec495b8b998635e997c9e3e175ff2eeed230524ef1c1684cc96423 - languageName: node - linkType: hard - "fs-minipass@npm:^2.0.0, fs-minipass@npm:^2.1.0": version: 2.1.0 resolution: "fs-minipass@npm:2.1.0" @@ -7988,7 +8500,7 @@ __metadata: languageName: node linkType: hard -"fsevents@npm:~2.3.2": +"fsevents@npm:~2.3.2, fsevents@npm:~2.3.3": version: 2.3.3 resolution: "fsevents@npm:2.3.3" dependencies: @@ -8008,7 +8520,7 @@ __metadata: languageName: node linkType: hard -"fsevents@patch:fsevents@npm%3A~2.3.2#optional!builtin<compat/fsevents>": +"fsevents@patch:fsevents@npm%3A~2.3.2#optional!builtin<compat/fsevents>, fsevents@patch:fsevents@npm%3A~2.3.3#optional!builtin<compat/fsevents>": version: 2.3.3 resolution: "fsevents@patch:fsevents@npm%3A2.3.3#optional!builtin<compat/fsevents>::version=2.3.3&hash=df0bf1" dependencies: @@ -8043,13 +8555,6 @@ __metadata: languageName: node linkType: hard -"functional-red-black-tree@npm:^1.0.1": - version: 1.0.1 - resolution: "functional-red-black-tree@npm:1.0.1" - checksum: 10c0/5959eed0375803d9924f47688479bb017e0c6816a0e5ac151e22ba6bfe1d12c41de2f339188885e0aa8eeea2072dad509d8e4448467e816bde0a2ca86a0670d3 - languageName: node - linkType: hard - "functions-have-names@npm:^1.2.3": version: 1.2.3 resolution: "functions-have-names@npm:1.2.3" @@ -8082,10 +8587,28 @@ __metadata: languageName: node linkType: hard -"gensync@npm:^1.0.0-beta.2": - version: 1.0.0-beta.2 - resolution: "gensync@npm:1.0.0-beta.2" - checksum: 10c0/782aba6cba65b1bb5af3b095d96249d20edbe8df32dbf4696fd49be2583faf676173bf4809386588828e4dd76a3354fcbeb577bab1c833ccd9fc4577f26103f8 +"geckodriver@npm:^4.3.1": + version: 4.4.2 + resolution: "geckodriver@npm:4.4.2" + dependencies: + "@wdio/logger": "npm:^8.28.0" + "@zip.js/zip.js": "npm:^2.7.44" + decamelize: "npm:^6.0.0" + http-proxy-agent: "npm:^7.0.2" + https-proxy-agent: "npm:^7.0.4" + node-fetch: "npm:^3.3.2" + tar-fs: "npm:^3.0.6" + which: "npm:^4.0.0" + bin: + geckodriver: bin/geckodriver.js + checksum: 10c0/a0d8c21901f53e3a2cb1ba8176cdd92eeacc1d7deaab107d432e5f97da981466520e9bc66d6aeea3e835875977d97530a70574e720a78d28d6908b5f587a8f84 + languageName: node + linkType: hard + +"gensync@npm:^1.0.0-beta.2": + version: 1.0.0-beta.2 + resolution: "gensync@npm:1.0.0-beta.2" + checksum: 10c0/782aba6cba65b1bb5af3b095d96249d20edbe8df32dbf4696fd49be2583faf676173bf4809386588828e4dd76a3354fcbeb577bab1c833ccd9fc4577f26103f8 languageName: node linkType: hard @@ -8103,7 +8626,7 @@ __metadata: languageName: node linkType: hard -"get-func-name@npm:^2.0.1, get-func-name@npm:^2.0.2": +"get-func-name@npm:^2.0.1": version: 2.0.2 resolution: "get-func-name@npm:2.0.2" checksum: 10c0/89830fd07623fa73429a711b9daecdb304386d237c71268007f788f113505ef1d4cc2d0b9680e072c5082490aec9df5d7758bf5ac6f1c37062855e8e3dc0b9df @@ -8123,6 +8646,13 @@ __metadata: languageName: node linkType: hard +"get-port@npm:^7.0.0": + version: 7.1.0 + resolution: "get-port@npm:7.1.0" + checksum: 10c0/896051fea0fd3df58c050566754ab91f46406e898ce0c708414739d908a5ac03ffef3eca7a494ea9cc1914439e8caccd2218010d1eeabdde914b9ff920fa28fc + languageName: node + linkType: hard + "get-stdin@npm:^4.0.1": version: 4.0.1 resolution: "get-stdin@npm:4.0.1" @@ -8130,7 +8660,16 @@ __metadata: languageName: node linkType: hard -"get-stream@npm:^6.0.0": +"get-stream@npm:^5.1.0": + version: 5.2.0 + resolution: "get-stream@npm:5.2.0" + dependencies: + pump: "npm:^3.0.0" + checksum: 10c0/43797ffd815fbb26685bf188c8cfebecb8af87b3925091dd7b9a9c915993293d78e3c9e1bce125928ff92f2d0796f3889b92b5ec6d58d1041b574682132e0a80 + languageName: node + linkType: hard + +"get-stream@npm:^6.0.0, get-stream@npm:^6.0.1": version: 6.0.1 resolution: "get-stream@npm:6.0.1" checksum: 10c0/49825d57d3fd6964228e6200a58169464b8e8970489b3acdc24906c782fb7f01f9f56f8e6653c4a50713771d6658f7cfe051e5eb8c12e334138c9c918b296341 @@ -8181,6 +8720,18 @@ __metadata: languageName: node linkType: hard +"get-uri@npm:^6.0.1": + version: 6.0.3 + resolution: "get-uri@npm:6.0.3" + dependencies: + basic-ftp: "npm:^5.0.2" + data-uri-to-buffer: "npm:^6.0.2" + debug: "npm:^4.3.4" + fs-extra: "npm:^11.2.0" + checksum: 10c0/8d801c462cd5b9c171d4d9e5f17afce3d9ebfbbfb006a88e3e768ce0071a8e2e59ee1ce822915fc43b9d6b83fde7b8d1c9648330ae89778fa41ad774df8ee0ac + languageName: node + linkType: hard + "get-value@npm:^2.0.3, get-value@npm:^2.0.6": version: 2.0.6 resolution: "get-value@npm:2.0.6" @@ -8259,7 +8810,7 @@ __metadata: languageName: node linkType: hard -"glob@npm:^10.2.2, glob@npm:^10.3.10, glob@npm:^10.3.7, glob@npm:^10.4.2": +"glob@npm:^10.0.0, glob@npm:^10.2.2, glob@npm:^10.3.10, glob@npm:^10.3.7, glob@npm:^10.4.1, glob@npm:^10.4.2": version: 10.4.5 resolution: "glob@npm:10.4.5" dependencies: @@ -8275,7 +8826,7 @@ __metadata: languageName: node linkType: hard -"glob@npm:^7.0.0, glob@npm:^7.0.3, glob@npm:^7.1.2, glob@npm:^7.1.3, glob@npm:^7.1.4, glob@npm:^7.1.7": +"glob@npm:^7.0.0, glob@npm:^7.0.3, glob@npm:^7.1.3, glob@npm:^7.1.4": version: 7.2.3 resolution: "glob@npm:7.2.3" dependencies: @@ -8289,7 +8840,7 @@ __metadata: languageName: node linkType: hard -"glob@npm:^8.0.1, glob@npm:^8.1.0": +"glob@npm:^8.0.1": version: 8.1.0 resolution: "glob@npm:8.1.0" dependencies: @@ -8325,7 +8876,7 @@ __metadata: languageName: node linkType: hard -"globals@npm:^11.1.0, globals@npm:^11.7.0": +"globals@npm:^11.1.0": version: 11.12.0 resolution: "globals@npm:11.12.0" checksum: 10c0/758f9f258e7b19226bd8d4af5d3b0dcf7038780fb23d82e6f98932c44e239f884847f1766e8fa9cc5635ccb3204f7fa7314d4408dd4002a5e8ea827b4018f0a1 @@ -8339,13 +8890,6 @@ __metadata: languageName: node linkType: hard -"globals@npm:^9.18.0": - version: 9.18.0 - resolution: "globals@npm:9.18.0" - checksum: 10c0/5ab74cb67cf060a9fceede4a0f2babc4c2c0b90dbb13847d2659defdf2121c60035ef23823c8417ce8c11bdaa7b412396077f2b3d2a7dedab490a881a0a96754 - languageName: node - linkType: hard - "globalthis@npm:^1.0.3": version: 1.0.4 resolution: "globalthis@npm:1.0.4" @@ -8433,6 +8977,25 @@ __metadata: languageName: node linkType: hard +"got@npm:^12.6.1": + version: 12.6.1 + resolution: "got@npm:12.6.1" + dependencies: + "@sindresorhus/is": "npm:^5.2.0" + "@szmarczak/http-timer": "npm:^5.0.1" + cacheable-lookup: "npm:^7.0.0" + cacheable-request: "npm:^10.2.8" + decompress-response: "npm:^6.0.0" + form-data-encoder: "npm:^2.1.2" + get-stream: "npm:^6.0.1" + http2-wrapper: "npm:^2.1.10" + lowercase-keys: "npm:^3.0.0" + p-cancelable: "npm:^3.0.0" + responselike: "npm:^3.0.0" + checksum: 10c0/2fe97fcbd7a9ffc7c2d0ecf59aca0a0562e73a7749cadada9770eeb18efbdca3086262625fb65590594edc220a1eca58fab0d26b0c93c2f9a008234da71ca66b + languageName: node + linkType: hard + "graceful-fs@npm:4.2.10": version: 4.2.10 resolution: "graceful-fs@npm:4.2.10" @@ -8440,13 +9003,20 @@ __metadata: languageName: node linkType: hard -"graceful-fs@npm:^4.1.11, graceful-fs@npm:^4.1.15, graceful-fs@npm:^4.1.2, graceful-fs@npm:^4.1.6, graceful-fs@npm:^4.1.9, graceful-fs@npm:^4.2.0, graceful-fs@npm:^4.2.10, graceful-fs@npm:^4.2.11, graceful-fs@npm:^4.2.2, graceful-fs@npm:^4.2.4, graceful-fs@npm:^4.2.6": +"graceful-fs@npm:^4.1.11, graceful-fs@npm:^4.1.15, graceful-fs@npm:^4.1.2, graceful-fs@npm:^4.1.6, graceful-fs@npm:^4.1.9, graceful-fs@npm:^4.2.0, graceful-fs@npm:^4.2.11, graceful-fs@npm:^4.2.2, graceful-fs@npm:^4.2.4, graceful-fs@npm:^4.2.6": version: 4.2.11 resolution: "graceful-fs@npm:4.2.11" checksum: 10c0/386d011a553e02bc594ac2ca0bd6d9e4c22d7fa8cfbfc448a6d148c59ea881b092db9dbe3547ae4b88e55f1b01f7c4a2ecc53b310c042793e63aa44cf6c257f2 languageName: node linkType: hard +"grapheme-splitter@npm:^1.0.2": + version: 1.0.4 + resolution: "grapheme-splitter@npm:1.0.4" + checksum: 10c0/108415fb07ac913f17040dc336607772fcea68c7f495ef91887edddb0b0f5ff7bc1d1ab181b125ecb2f0505669ef12c9a178a3bbd2dd8e042d8c5f1d7c90331a + languageName: node + linkType: hard + "graphemer@npm:^1.4.0": version: 1.4.0 resolution: "graphemer@npm:1.4.0" @@ -8454,6 +9024,13 @@ __metadata: languageName: node linkType: hard +"graphql@npm:^16.8.1": + version: 16.9.0 + resolution: "graphql@npm:16.9.0" + checksum: 10c0/a8850f077ff767377237d1f8b1da2ec70aeb7623cdf1dfc9e1c7ae93accc0c8149c85abe68923be9871a2934b1bce5a2496f846d4d56e1cfb03eaaa7ddba9b6a + languageName: node + linkType: hard + "gzip-size@npm:^6.0.0": version: 6.0.0 resolution: "gzip-size@npm:6.0.0" @@ -8463,13 +9040,6 @@ __metadata: languageName: node linkType: hard -"hammer-simulator@npm:0.0.1": - version: 0.0.1 - resolution: "hammer-simulator@npm:0.0.1" - checksum: 10c0/d025cf2879a99802a4e76cf362c5fbc4c671c8c4df9abd6329c30d4f2cd93785fcb7883366baaae58d0a8ef0d868a3fb784ef6f47a92cbbdd4f5f69496778b8f - languageName: node - linkType: hard - "handle-thing@npm:^2.0.0": version: 2.0.1 resolution: "handle-thing@npm:2.0.1" @@ -8519,15 +9089,6 @@ __metadata: languageName: node linkType: hard -"has-ansi@npm:^2.0.0": - version: 2.0.0 - resolution: "has-ansi@npm:2.0.0" - dependencies: - ansi-regex: "npm:^2.0.0" - checksum: 10c0/f54e4887b9f8f3c4bfefd649c48825b3c093987c92c27880ee9898539e6f01aed261e82e73153c3f920fde0db5bf6ebd58deb498ed1debabcb4bc40113ccdf05 - languageName: node - linkType: hard - "has-bigints@npm:^1.0.1, has-bigints@npm:^1.0.2": version: 1.0.2 resolution: "has-bigints@npm:1.0.2" @@ -8683,6 +9244,13 @@ __metadata: languageName: node linkType: hard +"headers-polyfill@npm:^4.0.2": + version: 4.0.3 + resolution: "headers-polyfill@npm:4.0.3" + checksum: 10c0/53e85b2c6385f8d411945fb890c5369f1469ce8aa32a6e8d28196df38568148de640c81cf88cbc7c67767103dd9acba48f4f891982da63178fc6e34560022afe + languageName: node + linkType: hard + "highlight.js@npm:^10.7.1": version: 10.7.3 resolution: "highlight.js@npm:10.7.3" @@ -8827,7 +9395,7 @@ __metadata: languageName: node linkType: hard -"http-proxy-agent@npm:^7.0.0": +"http-proxy-agent@npm:^7.0.0, http-proxy-agent@npm:^7.0.2": version: 7.0.2 resolution: "http-proxy-agent@npm:7.0.2" dependencies: @@ -8877,6 +9445,16 @@ __metadata: languageName: node linkType: hard +"http2-wrapper@npm:^2.1.10": + version: 2.2.1 + resolution: "http2-wrapper@npm:2.2.1" + dependencies: + quick-lru: "npm:^5.1.1" + resolve-alpn: "npm:^1.2.0" + checksum: 10c0/7207201d3c6e53e72e510c9b8912e4f3e468d3ecc0cf3bf52682f2aac9cd99358b896d1da4467380adc151cf97c412bedc59dc13dae90c523f42053a7449eedb + languageName: node + linkType: hard + "https-browserify@npm:^1.0.0": version: 1.0.0 resolution: "https-browserify@npm:1.0.0" @@ -8894,7 +9472,7 @@ __metadata: languageName: node linkType: hard -"https-proxy-agent@npm:^7.0.0, https-proxy-agent@npm:^7.0.1": +"https-proxy-agent@npm:^7.0.0, https-proxy-agent@npm:^7.0.1, https-proxy-agent@npm:^7.0.2, https-proxy-agent@npm:^7.0.4, https-proxy-agent@npm:^7.0.5": version: 7.0.5 resolution: "https-proxy-agent@npm:7.0.5" dependencies: @@ -8934,12 +9512,12 @@ __metadata: languageName: node linkType: hard -"husky@npm:^9.1.1": - version: 9.1.1 - resolution: "husky@npm:9.1.1" +"husky@npm:^9.1.4": + version: 9.1.4 + resolution: "husky@npm:9.1.4" bin: husky: bin.js - checksum: 10c0/56394f5a08201badece23a8599bd76fe8c41e4510a956022fe54897645900c5c5a96a740ffb0604e99e808dffc3714bae982f1cbda4a069082cc713414f17ad3 + checksum: 10c0/f5185003bef9ad9ec3f40e821963e4c12409b993fdcab89e3d660bed7d8c9d8bfd399f05222e27e0ead6589601fb1bb08d1a589c51751a4ab0547ead3429b8de languageName: node linkType: hard @@ -8950,7 +9528,7 @@ __metadata: languageName: node linkType: hard -"iconv-lite@npm:0.4.24, iconv-lite@npm:^0.4.24": +"iconv-lite@npm:0.4.24": version: 0.4.24 resolution: "iconv-lite@npm:0.4.24" dependencies: @@ -8977,7 +9555,7 @@ __metadata: languageName: node linkType: hard -"ieee754@npm:^1.1.4": +"ieee754@npm:^1.1.13, ieee754@npm:^1.1.4, ieee754@npm:^1.2.1": version: 1.2.1 resolution: "ieee754@npm:1.2.1" checksum: 10c0/b0782ef5e0935b9f12883a2e2aa37baa75da6e66ce6515c168697b42160807d9330de9a32ec1ed73149aea02e0d822e572bca6f1e22bdcbd2149e13b050b17bb @@ -9000,13 +9578,6 @@ __metadata: languageName: node linkType: hard -"ignore@npm:^4.0.6": - version: 4.0.6 - resolution: "ignore@npm:4.0.6" - checksum: 10c0/836ee7dc7fd9436096e2dba429359dbb9fa0e33d309e2b2d81692f375f6ca82024fc00567f798613d50c6b989e9cd2ad2b065acf116325cde177f02c86b7d4e0 - languageName: node - linkType: hard - "ignore@npm:^5.1.1, ignore@npm:^5.2.0, ignore@npm:^5.2.4, ignore@npm:^5.3.1": version: 5.3.1 resolution: "ignore@npm:5.3.1" @@ -9014,7 +9585,21 @@ __metadata: languageName: node linkType: hard -"import-fresh@npm:^3.0.0, import-fresh@npm:^3.2.1, import-fresh@npm:^3.3.0": +"immediate@npm:~3.0.5": + version: 3.0.6 + resolution: "immediate@npm:3.0.6" + checksum: 10c0/f8ba7ede69bee9260241ad078d2d535848745ff5f6995c7c7cb41cfdc9ccc213f66e10fa5afb881f90298b24a3f7344b637b592beb4f54e582770cdce3f1f039 + languageName: node + linkType: hard + +"immutable@npm:^4.0.0": + version: 4.3.7 + resolution: "immutable@npm:4.3.7" + checksum: 10c0/9b099197081b22f6433003e34929da8ecddbbdc1474cdc8aa3b7669dee4adda349c06143de22def36016d1b6de5322b043eccd7a11db1dad2ca85dad4fff5435 + languageName: node + linkType: hard + +"import-fresh@npm:^3.2.1, import-fresh@npm:^3.3.0": version: 3.3.0 resolution: "import-fresh@npm:3.3.0" dependencies: @@ -9148,27 +9733,6 @@ __metadata: languageName: node linkType: hard -"inquirer@npm:^6.2.2": - version: 6.5.2 - resolution: "inquirer@npm:6.5.2" - dependencies: - ansi-escapes: "npm:^3.2.0" - chalk: "npm:^2.4.2" - cli-cursor: "npm:^2.1.0" - cli-width: "npm:^2.0.0" - external-editor: "npm:^3.0.3" - figures: "npm:^2.0.0" - lodash: "npm:^4.17.12" - mute-stream: "npm:0.0.7" - run-async: "npm:^2.2.0" - rxjs: "npm:^6.4.0" - string-width: "npm:^2.1.0" - strip-ansi: "npm:^5.1.0" - through: "npm:^2.3.6" - checksum: 10c0/a5aa53a8f88405cf1cff63111493f87a5b3b5deb5ea4a0dbcd73ccc06a51a6bba0c3f1a0747f8880e9e3ec2437c69f90417be16368abf636b1d29eebe35db0ac - languageName: node - linkType: hard - "internal-slot@npm:^1.0.7": version: 1.0.7 resolution: "internal-slot@npm:1.0.7" @@ -9204,15 +9768,6 @@ __metadata: languageName: node linkType: hard -"invariant@npm:^2.2.2": - version: 2.2.4 - resolution: "invariant@npm:2.2.4" - dependencies: - loose-envify: "npm:^1.0.0" - checksum: 10c0/5af133a917c0bcf65e84e7f23e779e7abc1cd49cb7fdc62d00d1de74b0d8c1b5ee74ac7766099fb3be1b05b26dfc67bab76a17030d2fe7ea2eef867434362dfc - languageName: node - linkType: hard - "ip-address@npm:^9.0.5": version: 9.0.5 resolution: "ip-address@npm:9.0.5" @@ -9437,20 +9992,6 @@ __metadata: languageName: node linkType: hard -"is-finite@npm:^1.0.0": - version: 1.1.0 - resolution: "is-finite@npm:1.1.0" - checksum: 10c0/ca6bc7a0321b339f098e657bd4cbf4bb2410f5a11f1b9adb1a1a9ab72288b64368e8251326cb1f74e985f2779299cec3e1f1e558b68ce7e1e2c9be17b7cfd626 - languageName: node - linkType: hard - -"is-fullwidth-code-point@npm:^2.0.0": - version: 2.0.0 - resolution: "is-fullwidth-code-point@npm:2.0.0" - checksum: 10c0/e58f3e4a601fc0500d8b2677e26e9fe0cd450980e66adb29d85b6addf7969731e38f8e43ed2ec868a09c101a55ac3d8b78902209269f38c5286bc98f5bc1b4d9 - languageName: node - linkType: hard - "is-fullwidth-code-point@npm:^3.0.0": version: 3.0.0 resolution: "is-fullwidth-code-point@npm:3.0.0" @@ -9531,6 +10072,13 @@ __metadata: languageName: node linkType: hard +"is-node-process@npm:^1.2.0": + version: 1.2.0 + resolution: "is-node-process@npm:1.2.0" + checksum: 10c0/5b24fda6776d00e42431d7bcd86bce81cb0b6cabeb944142fe7b077a54ada2e155066ad06dbe790abdb397884bdc3151e04a9707b8cd185099efbc79780573ed + languageName: node + linkType: hard + "is-number-object@npm:^1.0.4": version: 1.0.7 resolution: "is-number-object@npm:1.0.7" @@ -9602,13 +10150,6 @@ __metadata: languageName: node linkType: hard -"is-plain-obj@npm:^2.1.0": - version: 2.1.0 - resolution: "is-plain-obj@npm:2.1.0" - checksum: 10c0/e5c9814cdaa627a9ad0a0964ded0e0491bfd9ace405c49a5d63c88b30a162f1512c069d5b80997893c4d0181eadc3fed02b4ab4b81059aba5620bfcdfdeb9c53 - languageName: node - linkType: hard - "is-plain-obj@npm:^3.0.0": version: 3.0.0 resolution: "is-plain-obj@npm:3.0.0" @@ -9658,7 +10199,7 @@ __metadata: languageName: node linkType: hard -"is-stream@npm:^2.0.0": +"is-stream@npm:^2.0.0, is-stream@npm:^2.0.1": version: 2.0.1 resolution: "is-stream@npm:2.0.1" checksum: 10c0/7c284241313fc6efc329b8d7f08e16c0efeb6baab1b4cd0ba579eb78e5af1aa5da11e68559896a2067cd6c526bd29241dda4eb1225e627d5aa1a89a76d4635a5 @@ -9722,13 +10263,6 @@ __metadata: languageName: node linkType: hard -"is-unicode-supported@npm:^0.1.0": - version: 0.1.0 - resolution: "is-unicode-supported@npm:0.1.0" - checksum: 10c0/00cbe3455c3756be68d2542c416cab888aebd5012781d6819749fefb15162ff23e38501fe681b3d751c73e8ff561ac09a5293eba6f58fdf0178462ce6dcb3453 - languageName: node - linkType: hard - "is-unicode-supported@npm:^2.0.0": version: 2.0.0 resolution: "is-unicode-supported@npm:2.0.0" @@ -9782,13 +10316,6 @@ __metadata: languageName: node linkType: hard -"isbinaryfile@npm:^4.0.8": - version: 4.0.10 - resolution: "isbinaryfile@npm:4.0.10" - checksum: 10c0/0703d8cfeb69ed79e6d173120f327450011a066755150a6bbf97ffecec1069a5f2092777868315b21359098c84b54984871cad1abce877ad9141fb2caf3dcabf - languageName: node - linkType: hard - "isexe@npm:^2.0.0": version: 2.0.0 resolution: "isexe@npm:2.0.0" @@ -9839,56 +10366,13 @@ __metadata: languageName: node linkType: hard -"istanbul-instrumenter-loader@npm:^3.0.1": - version: 3.0.1 - resolution: "istanbul-instrumenter-loader@npm:3.0.1" - dependencies: - convert-source-map: "npm:^1.5.0" - istanbul-lib-instrument: "npm:^1.7.3" - loader-utils: "npm:^1.1.0" - schema-utils: "npm:^0.3.0" - peerDependencies: - webpack: ^2.0.0 || ^3.0.0 || ^4.0.0 - checksum: 10c0/53159cf6b6e6f0da3836bfea6476c7dd29a065712f0aa26a3535f0549865a8986e988664e13d381a969432d3f6ca6e5535eece079a5ec4d98b7c77b43ec44f80 - languageName: node - linkType: hard - -"istanbul-lib-coverage@npm:^1.2.1": - version: 1.2.1 - resolution: "istanbul-lib-coverage@npm:1.2.1" - checksum: 10c0/a3dec08f036315d75d27b0d70ca69332838c9602583d0eaa74baeaf98f4054344984b778dad6cf4a989ed24f5c75365c2306fbb7f163c160b47fd8c696bedfab - languageName: node - linkType: hard - -"istanbul-lib-coverage@npm:^2.0.5": - version: 2.0.5 - resolution: "istanbul-lib-coverage@npm:2.0.5" - checksum: 10c0/370bd6940532ea2737a85532870f3024b113774ce3e637438cccfaf979a7598aa29d342f4adcc3d73e306155c907b519bc1c5c6887a29234f605a1a472747821 - languageName: node - linkType: hard - -"istanbul-lib-coverage@npm:^3.0.0, istanbul-lib-coverage@npm:^3.2.0": +"istanbul-lib-coverage@npm:^3.0.0, istanbul-lib-coverage@npm:^3.2.0, istanbul-lib-coverage@npm:^3.2.2": version: 3.2.2 resolution: "istanbul-lib-coverage@npm:3.2.2" checksum: 10c0/6c7ff2106769e5f592ded1fb418f9f73b4411fd5a084387a5410538332b6567cd1763ff6b6cadca9b9eb2c443cce2f7ea7d7f1b8d315f9ce58539793b1e0922b languageName: node linkType: hard -"istanbul-lib-instrument@npm:^1.7.3": - version: 1.10.2 - resolution: "istanbul-lib-instrument@npm:1.10.2" - dependencies: - babel-generator: "npm:^6.18.0" - babel-template: "npm:^6.16.0" - babel-traverse: "npm:^6.18.0" - babel-types: "npm:^6.18.0" - babylon: "npm:^6.18.0" - istanbul-lib-coverage: "npm:^1.2.1" - semver: "npm:^5.3.0" - checksum: 10c0/1f861fb757a1e26ca8a80542fdc1b7f2d35a131a0116d20a1a785837472c474cfa6ac4058ae5389a0e358563da0e2c8ef5f958336ea9d29ee39a4d0da143b9d7 - languageName: node - linkType: hard - "istanbul-lib-instrument@npm:^6.0.3": version: 6.0.3 resolution: "istanbul-lib-instrument@npm:6.0.3" @@ -9902,7 +10386,7 @@ __metadata: languageName: node linkType: hard -"istanbul-lib-report@npm:^3.0.0": +"istanbul-lib-report@npm:^3.0.0, istanbul-lib-report@npm:^3.0.1": version: 3.0.1 resolution: "istanbul-lib-report@npm:3.0.1" dependencies: @@ -9913,20 +10397,18 @@ __metadata: languageName: node linkType: hard -"istanbul-lib-source-maps@npm:^3.0.6": - version: 3.0.6 - resolution: "istanbul-lib-source-maps@npm:3.0.6" +"istanbul-lib-source-maps@npm:^5.0.6": + version: 5.0.6 + resolution: "istanbul-lib-source-maps@npm:5.0.6" dependencies: + "@jridgewell/trace-mapping": "npm:^0.3.23" debug: "npm:^4.1.1" - istanbul-lib-coverage: "npm:^2.0.5" - make-dir: "npm:^2.1.0" - rimraf: "npm:^2.6.3" - source-map: "npm:^0.6.1" - checksum: 10c0/0d2c0e6b301fd964d74137000b7f949d18856ad6e40e065a9f28eec041b33b901e3ff6f4f61505230558b26a1be0be044ae2e2bd6c692a9a7985e762fb300722 + istanbul-lib-coverage: "npm:^3.0.0" + checksum: 10c0/ffe75d70b303a3621ee4671554f306e0831b16f39ab7f4ab52e54d356a5d33e534d97563e318f1333a6aae1d42f91ec49c76b6cd3f3fb378addcb5c81da0255f languageName: node linkType: hard -"istanbul-reports@npm:^3.0.2, istanbul-reports@npm:^3.1.4": +"istanbul-reports@npm:^3.1.4, istanbul-reports@npm:^3.1.7": version: 3.1.7 resolution: "istanbul-reports@npm:3.1.7" dependencies: @@ -9997,14 +10479,7 @@ __metadata: languageName: node linkType: hard -"js-tokens@npm:^3.0.2": - version: 3.0.2 - resolution: "js-tokens@npm:3.0.2" - checksum: 10c0/e3c3ee4d12643d90197628eb022a2884a15f08ea7dcac1ce97fdeee43031fbfc7ede674f2cdbbb582dcd4c94388b22e52d56c6cbeb2ac7d1b57c2f33c405e2ba - languageName: node - linkType: hard - -"js-yaml@npm:^3.13.0, js-yaml@npm:^3.13.1": +"js-yaml@npm:^3.13.1": version: 3.14.1 resolution: "js-yaml@npm:3.14.1" dependencies: @@ -10082,15 +10557,6 @@ __metadata: languageName: node linkType: hard -"jsesc@npm:^1.3.0": - version: 1.3.0 - resolution: "jsesc@npm:1.3.0" - bin: - jsesc: bin/jsesc - checksum: 10c0/62420889dd46b4cdba4df20fe6ffdefa6eeab7532fb4079170ea1b53c45d5a6abcb485144905833e5a69cc1735db12319b1e0b0f9a556811ec926b57a22318a7 - languageName: node - linkType: hard - "jsesc@npm:^2.5.1": version: 2.5.2 resolution: "jsesc@npm:2.5.2" @@ -10128,13 +10594,6 @@ __metadata: languageName: node linkType: hard -"json-schema-traverse@npm:^0.3.0": - version: 0.3.1 - resolution: "json-schema-traverse@npm:0.3.1" - checksum: 10c0/462316de759d3dd9278959de17861e8d214c3722e1f0bf3c510daac990009bc2b0e11e89f9b299d765cd52569db74c8fa1a371a2b08c514a07998fb2f10eb57e - languageName: node - linkType: hard - "json-schema-traverse@npm:^0.4.1": version: 0.4.1 resolution: "json-schema-traverse@npm:0.4.1" @@ -10197,18 +10656,6 @@ __metadata: languageName: node linkType: hard -"jsonfile@npm:^4.0.0": - version: 4.0.0 - resolution: "jsonfile@npm:4.0.0" - dependencies: - graceful-fs: "npm:^4.1.6" - dependenciesMeta: - graceful-fs: - optional: true - checksum: 10c0/7dc94b628d57a66b71fb1b79510d460d662eb975b5f876d723f81549c2e9cd316d58a2ddf742b2b93a4fa6b17b2accaf1a738a0e2ea114bdfb13a32e5377e480 - languageName: node - linkType: hard - "jsonfile@npm:^6.0.1": version: 6.1.0 resolution: "jsonfile@npm:6.1.0" @@ -10251,6 +10698,18 @@ __metadata: languageName: node linkType: hard +"jszip@npm:^3.10.1": + version: 3.10.1 + resolution: "jszip@npm:3.10.1" + dependencies: + lie: "npm:~3.3.0" + pako: "npm:~1.0.2" + readable-stream: "npm:~2.3.6" + setimmediate: "npm:^1.0.5" + checksum: 10c0/58e01ec9c4960383fb8b38dd5f67b83ccc1ec215bf74c8a5b32f42b6e5fb79fada5176842a11409c4051b5b94275044851814a31076bf49e1be218d3ef57c863 + languageName: node + linkType: hard + "just-diff-apply@npm:^5.2.0": version: 5.5.0 resolution: "just-diff-apply@npm:5.5.0" @@ -10272,140 +10731,7 @@ __metadata: languageName: node linkType: hard -"karma-chai@npm:^0.1.0": - version: 0.1.0 - resolution: "karma-chai@npm:0.1.0" - peerDependencies: - chai: "*" - karma: ">=0.10.9" - checksum: 10c0/f4a8ff07d34523830a7ddfa220121ee9be32fbc44303ead9b064698acd60a0ab4db35e911a8ce74a96af8739b8ba34688670bf63f3054adf43bd45dc256cdcc2 - languageName: node - linkType: hard - -"karma-chrome-launcher@npm:^3.2.0": - version: 3.2.0 - resolution: "karma-chrome-launcher@npm:3.2.0" - dependencies: - which: "npm:^1.2.1" - checksum: 10c0/0cec1ae7d922110dc29cee36389d597157c82f019c8917259f9fa93d1f5ee8e19141c2eb74bfe30797cdb3adbc51a6b65fd18a9ebc1527c725c4acf62cd46d04 - languageName: node - linkType: hard - -"karma-coverage-istanbul-reporter@npm:^3.0.3": - version: 3.0.3 - resolution: "karma-coverage-istanbul-reporter@npm:3.0.3" - dependencies: - istanbul-lib-coverage: "npm:^3.0.0" - istanbul-lib-report: "npm:^3.0.0" - istanbul-lib-source-maps: "npm:^3.0.6" - istanbul-reports: "npm:^3.0.2" - minimatch: "npm:^3.0.4" - checksum: 10c0/543722fd63c98d6e3c9e7bba91d7cb0e3ccb0db0e4b9703f091f2c25ab5a87f330f38ba6d62361c4bb99f3de9e19c5c918555083bb24c41c24400ebe5b772865 - languageName: node - linkType: hard - -"karma-mocha-reporter@npm:^2.2.3": - version: 2.2.5 - resolution: "karma-mocha-reporter@npm:2.2.5" - dependencies: - chalk: "npm:^2.1.0" - log-symbols: "npm:^2.1.0" - strip-ansi: "npm:^4.0.0" - peerDependencies: - karma: ">=0.13" - checksum: 10c0/5a26ea58fb683a6d6a7f8b6f6e51f8678432adfa6425356fb125c9e8dba4489061385b819dfd19e943ffe8f3e0f86a529386b7793d3065cd59d4756517023aba - languageName: node - linkType: hard - -"karma-mocha@npm:^2.0.1": - version: 2.0.1 - resolution: "karma-mocha@npm:2.0.1" - dependencies: - minimist: "npm:^1.2.3" - checksum: 10c0/99ef62d863f6bf8cb11df0f4a9d47615369a0ce8a937d9a0cd7fb83fdbb0ef7420c7ea396de514be48500fac1563a00ab964b7d1adc4ee3f5a875ebf07eb012d - languageName: node - linkType: hard - -"karma-scss-preprocessor@npm:^4.0.0": - version: 4.0.0 - resolution: "karma-scss-preprocessor@npm:4.0.0" - dependencies: - chalk: "npm:^2.4.1" - lodash: "npm:^4.17.11" - strip-ansi: "npm:^5.0.0" - peerDependencies: - node-sass: ">= 3.x" - checksum: 10c0/50b84de9dbf2fe01fbca0ee75dd8389e787233375d811c72907e7d500d759fbe2c6fa91e1e58d1b25792a4eb3d38909d597d8da1bca9bd26a149fa365c0e3a56 - languageName: node - linkType: hard - -"karma-sinon@npm:^1.0.5": - version: 1.0.5 - resolution: "karma-sinon@npm:1.0.5" - peerDependencies: - karma: ">=0.10" - sinon: "*" - checksum: 10c0/eff3831ac5b840128a8e25f8698770106484120d65223f3d1f42ec3c536a7789af530c25d8117cde91ee98115418ac77a3086dc521a80cb499e6b347778b4d69 - languageName: node - linkType: hard - -"karma-sourcemap-loader@npm:^0.4.0": - version: 0.4.0 - resolution: "karma-sourcemap-loader@npm:0.4.0" - dependencies: - graceful-fs: "npm:^4.2.10" - checksum: 10c0/8f77516330bc78d7c4d22469bdfd96b82acf7a285e2c19b8f30ae9d9bb21c7d817b0c32b9e5ea6ae002b16365e124afea121910c089c641320ce5595cafaadac - languageName: node - linkType: hard - -"karma-webpack@npm:^5.0.1": - version: 5.0.1 - resolution: "karma-webpack@npm:5.0.1" - dependencies: - glob: "npm:^7.1.3" - minimatch: "npm:^9.0.3" - webpack-merge: "npm:^4.1.5" - peerDependencies: - webpack: ^5.0.0 - checksum: 10c0/ef7208a6b2746819693c654d6da4a1c7794edb72690006181e1c2897ff8415644e6745ca46bdf170e30c2b82d4b9f16284af5e71fcae026b32de0a08adb14c7d - languageName: node - linkType: hard - -"karma@npm:^6.4.3": - version: 6.4.3 - resolution: "karma@npm:6.4.3" - dependencies: - "@colors/colors": "npm:1.5.0" - body-parser: "npm:^1.19.0" - braces: "npm:^3.0.2" - chokidar: "npm:^3.5.1" - connect: "npm:^3.7.0" - di: "npm:^0.0.1" - dom-serialize: "npm:^2.2.1" - glob: "npm:^7.1.7" - graceful-fs: "npm:^4.2.6" - http-proxy: "npm:^1.18.1" - isbinaryfile: "npm:^4.0.8" - lodash: "npm:^4.17.21" - log4js: "npm:^6.4.1" - mime: "npm:^2.5.2" - minimatch: "npm:^3.0.4" - mkdirp: "npm:^0.5.5" - qjobs: "npm:^1.2.0" - range-parser: "npm:^1.2.1" - rimraf: "npm:^3.0.2" - socket.io: "npm:^4.7.2" - source-map: "npm:^0.6.1" - tmp: "npm:^0.2.1" - ua-parser-js: "npm:^0.7.30" - yargs: "npm:^16.1.1" - bin: - karma: bin/karma - checksum: 10c0/dc9710600c69265fce24a91312a136396acef969b72aac05e342724a4223a799cd3676a20f73a4beda797908b7f534fa95c8228bd79fd5c54682020c626e4fdd - languageName: node - linkType: hard - -"keyv@npm:^4.5.4": +"keyv@npm:^4.5.3, keyv@npm:^4.5.4": version: 4.5.4 resolution: "keyv@npm:4.5.4" dependencies: @@ -10448,6 +10774,13 @@ __metadata: languageName: node linkType: hard +"ky@npm:^0.33.0": + version: 0.33.3 + resolution: "ky@npm:0.33.3" + checksum: 10c0/5ba8de4c97c2abe5fb1b7d1b20252f95a7b249254af03cdfac670b9615de6b2b4af747bf363a1b918d2650c4cc83259578105f8eadd284f4e1c4261081e29640 + languageName: node + linkType: hard + "launch-editor@npm:^2.6.1": version: 2.8.0 resolution: "launch-editor@npm:2.8.0" @@ -10465,6 +10798,15 @@ __metadata: languageName: node linkType: hard +"lazystream@npm:^1.0.0": + version: 1.0.1 + resolution: "lazystream@npm:1.0.1" + dependencies: + readable-stream: "npm:^2.0.5" + checksum: 10c0/ea4e509a5226ecfcc303ba6782cc269be8867d372b9bcbd625c88955df1987ea1a20da4643bf9270336415a398d33531ebf0d5f0d393b9283dc7c98bfcbd7b69 + languageName: node + linkType: hard + "lcov-parse@npm:^1.0.0": version: 1.0.0 resolution: "lcov-parse@npm:1.0.0" @@ -10474,16 +10816,6 @@ __metadata: languageName: node linkType: hard -"levn@npm:^0.3.0, levn@npm:~0.3.0": - version: 0.3.0 - resolution: "levn@npm:0.3.0" - dependencies: - prelude-ls: "npm:~1.1.2" - type-check: "npm:~0.3.2" - checksum: 10c0/e440df9de4233da0b389cd55bd61f0f6aaff766400bebbccd1231b81801f6dbc1d816c676ebe8d70566394b749fa624b1ed1c68070e9c94999f0bdecc64cb676 - languageName: node - linkType: hard - "levn@npm:^0.4.1": version: 0.4.1 resolution: "levn@npm:0.4.1" @@ -10627,6 +10959,15 @@ __metadata: languageName: node linkType: hard +"lie@npm:~3.3.0": + version: 3.3.0 + resolution: "lie@npm:3.3.0" + dependencies: + immediate: "npm:~3.0.5" + checksum: 10c0/56dd113091978f82f9dc5081769c6f3b947852ecf9feccaf83e14a123bc630c2301439ce6182521e5fbafbde88e88ac38314327a4e0493a1bea7e0699a7af808 + languageName: node + linkType: hard + "lilconfig@npm:~3.1.1": version: 3.1.2 resolution: "lilconfig@npm:3.1.2" @@ -10684,13 +11025,6 @@ __metadata: languageName: node linkType: hard -"lite-fixture@npm:^1.0.2": - version: 1.0.2 - resolution: "lite-fixture@npm:1.0.2" - checksum: 10c0/5a1954ad943eeb54130eb41fce0e94028085ecc2943ce3f6887f4d7c5d77b72ad4921f3b4cac397c119262cb78b9a97c3ec7ce747de985e99d99959de5a5e3ca - languageName: node - linkType: hard - "load-json-file@npm:^4.0.0": version: 4.0.0 resolution: "load-json-file@npm:4.0.0" @@ -10717,7 +11051,7 @@ __metadata: languageName: node linkType: hard -"loader-utils@npm:^1.1.0, loader-utils@npm:^1.2.3": +"loader-utils@npm:^1.2.3": version: 1.4.2 resolution: "loader-utils@npm:1.4.2" dependencies: @@ -10739,6 +11073,17 @@ __metadata: languageName: node linkType: hard +"locate-app@npm:^2.1.0": + version: 2.4.21 + resolution: "locate-app@npm:2.4.21" + dependencies: + "@promptbook/utils": "npm:0.58.0" + type-fest: "npm:2.13.0" + userhome: "npm:1.0.0" + checksum: 10c0/321fa47a6d377e8c1fb86b0158de434b677aa72df3e5f785afc45cff8215152e9d76f0d33d16115e78bde4485f6962eb5117a0922c962dba5b9dde48e587ac69 + languageName: node + linkType: hard + "locate-path@npm:^2.0.0": version: 2.0.0 resolution: "locate-path@npm:2.0.0" @@ -10807,6 +11152,13 @@ __metadata: languageName: node linkType: hard +"lodash.clonedeep@npm:^4.5.0": + version: 4.5.0 + resolution: "lodash.clonedeep@npm:4.5.0" + checksum: 10c0/2caf0e4808f319d761d2939ee0642fa6867a4bbf2cfce43276698828380756b99d4c4fa226d881655e6ac298dd453fe12a5ec8ba49861777759494c534936985 + languageName: node + linkType: hard + "lodash.escaperegexp@npm:^4.1.2": version: 4.1.2 resolution: "lodash.escaperegexp@npm:4.1.2" @@ -10898,7 +11250,14 @@ __metadata: languageName: node linkType: hard -"lodash@npm:^4.17.11, lodash@npm:^4.17.12, lodash@npm:^4.17.13, lodash@npm:^4.17.14, lodash@npm:^4.17.15, lodash@npm:^4.17.21, lodash@npm:^4.17.4": +"lodash.zip@npm:^4.2.0": + version: 4.2.0 + resolution: "lodash.zip@npm:4.2.0" + checksum: 10c0/e596da80a6138e369998b50c78b51ed6cf984b4f239e59056aa18dca5972a213c491c511caf5888a2dec603c67265caf942099bec554a86a5c7ff1937d57f0e4 + languageName: node + linkType: hard + +"lodash@npm:^4.17.11, lodash@npm:^4.17.13, lodash@npm:^4.17.14, lodash@npm:^4.17.15, lodash@npm:^4.17.21, lodash@npm:^4.17.4": version: 4.17.21 resolution: "lodash@npm:4.17.21" checksum: 10c0/d8cbea072bb08655bb4c989da418994b073a608dffa608b09ac04b43a791b12aeae7cd7ad919aa4c925f33b48490b5cfe6c1f71d827956071dae2e7bb3a6b74c @@ -10912,25 +11271,6 @@ __metadata: languageName: node linkType: hard -"log-symbols@npm:^2.1.0": - version: 2.2.0 - resolution: "log-symbols@npm:2.2.0" - dependencies: - chalk: "npm:^2.0.1" - checksum: 10c0/574eb4205f54f0605021aa67ebb372c30ca64e8ddd439efeb8507af83c776dce789e83614e80059014d9e48dcc94c4b60cef2e85f0dc944eea27c799cec62353 - languageName: node - linkType: hard - -"log-symbols@npm:^4.1.0": - version: 4.1.0 - resolution: "log-symbols@npm:4.1.0" - dependencies: - chalk: "npm:^4.1.0" - is-unicode-supported: "npm:^0.1.0" - checksum: 10c0/67f445a9ffa76db1989d0fa98586e5bc2fd5247260dafb8ad93d9f0ccd5896d53fb830b0e54dade5ad838b9de2006c826831a3c528913093af20dff8bd24aca6 - languageName: node - linkType: hard - "log-update@npm:^6.0.0": version: 6.0.0 resolution: "log-update@npm:6.0.0" @@ -10944,16 +11284,17 @@ __metadata: languageName: node linkType: hard -"log4js@npm:^6.4.1": - version: 6.9.1 - resolution: "log4js@npm:6.9.1" - dependencies: - date-format: "npm:^4.0.14" - debug: "npm:^4.3.4" - flatted: "npm:^3.2.7" - rfdc: "npm:^1.3.0" - streamroller: "npm:^3.1.5" - checksum: 10c0/05846e48f72d662800c8189bd178c42b4aa2f0c574cfc90a1942cf90b76f621c44019e26796c8fd88da1b6f0fe8272cba607cbaad6ae6ede50a7a096b58197ea +"loglevel-plugin-prefix@npm:^0.8.4": + version: 0.8.4 + resolution: "loglevel-plugin-prefix@npm:0.8.4" + checksum: 10c0/357524eec4c165ff823b5bbf72e8373ff529e5cb95c1f4b20749847bd5b5b16ab328d6d33d1a9019f1a2dc52e28fca5d595e52f2ee20e24986182a6f9552a9ec + languageName: node + linkType: hard + +"loglevel@npm:^1.6.0": + version: 1.9.1 + resolution: "loglevel@npm:1.9.1" + checksum: 10c0/152f0501cea367cf998c844a38b19f0b5af555756ad7d8650214a1f8c6a5b045e31b8cf5dae27d28339a061624ce3f618aadb333aed386cac041d6ddc5101a39 languageName: node linkType: hard @@ -10964,7 +11305,7 @@ __metadata: languageName: node linkType: hard -"loose-envify@npm:^1.0.0, loose-envify@npm:^1.4.0": +"loose-envify@npm:^1.4.0": version: 1.4.0 resolution: "loose-envify@npm:1.4.0" dependencies: @@ -10975,12 +11316,19 @@ __metadata: languageName: node linkType: hard -"loupe@npm:^2.3.6": - version: 2.3.7 - resolution: "loupe@npm:2.3.7" +"loupe@npm:^3.1.0, loupe@npm:^3.1.1": + version: 3.1.1 + resolution: "loupe@npm:3.1.1" dependencies: get-func-name: "npm:^2.0.1" - checksum: 10c0/71a781c8fc21527b99ed1062043f1f2bb30bdaf54fa4cf92463427e1718bc6567af2988300bc243c1f276e4f0876f29e3cbf7b58106fdc186915687456ce5bf4 + checksum: 10c0/99f88badc47e894016df0c403de846fedfea61154aadabbf776c8428dd59e8d8378007135d385d737de32ae47980af07d22ba7bec5ef7beebd721de9baa0a0af + languageName: node + linkType: hard + +"lowercase-keys@npm:^3.0.0": + version: 3.0.0 + resolution: "lowercase-keys@npm:3.0.0" + checksum: 10c0/ef62b9fa5690ab0a6e4ef40c94efce68e3ed124f583cc3be38b26ff871da0178a28b9a84ce0c209653bb25ca135520ab87fea7cd411a54ac4899cb2f30501430 languageName: node linkType: hard @@ -11019,13 +11367,31 @@ __metadata: languageName: node linkType: hard -"lru-cache@npm:^7.7.1": +"lru-cache@npm:^7.14.1, lru-cache@npm:^7.7.1": version: 7.18.3 resolution: "lru-cache@npm:7.18.3" checksum: 10c0/b3a452b491433db885beed95041eb104c157ef7794b9c9b4d647be503be91769d11206bb573849a16b4cc0d03cbd15ffd22df7960997788b74c1d399ac7a4fed languageName: node linkType: hard +"lz-string@npm:^1.5.0": + version: 1.5.0 + resolution: "lz-string@npm:1.5.0" + bin: + lz-string: bin/bin.js + checksum: 10c0/36128e4de34791838abe979b19927c26e67201ca5acf00880377af7d765b38d1c60847e01c5ec61b1a260c48029084ab3893a3925fd6e48a04011364b089991b + languageName: node + linkType: hard + +"magic-string@npm:^0.30.10": + version: 0.30.11 + resolution: "magic-string@npm:0.30.11" + dependencies: + "@jridgewell/sourcemap-codec": "npm:^1.5.0" + checksum: 10c0/b9eb370773d0bd90ca11a848753409d8e5309b1ad56d2a1aa49d6649da710a6d2fe7237ad1a643c5a5d3800de2b9946ed9690acdfc00e6cc1aeafff3ab1752c4 + languageName: node + linkType: hard + "magic-string@npm:^0.30.3": version: 0.30.10 resolution: "magic-string@npm:0.30.10" @@ -11035,7 +11401,18 @@ __metadata: languageName: node linkType: hard -"make-dir@npm:^2.0.0, make-dir@npm:^2.1.0": +"magicast@npm:^0.3.4": + version: 0.3.4 + resolution: "magicast@npm:0.3.4" + dependencies: + "@babel/parser": "npm:^7.24.4" + "@babel/types": "npm:^7.24.0" + source-map-js: "npm:^1.2.0" + checksum: 10c0/7ebaaac397b13c31ca05e6d9649296751d76749b945d10a0800107872119fbdf267acdb604571d25e38ec6fd7ab3568a951b6e76eaef1caba9eaa11778fd9783 + languageName: node + linkType: hard + +"make-dir@npm:^2.0.0": version: 2.1.0 resolution: "make-dir@npm:2.1.0" dependencies: @@ -11415,15 +11792,6 @@ __metadata: languageName: node linkType: hard -"mime@npm:^2.5.2": - version: 2.6.0 - resolution: "mime@npm:2.6.0" - bin: - mime: cli.js - checksum: 10c0/a7f2589900d9c16e3bdf7672d16a6274df903da958c1643c9c45771f0478f3846dcb1097f31eb9178452570271361e2149310931ec705c037210fc69639c8e6c - languageName: node - linkType: hard - "mime@npm:^4.0.0": version: 4.0.4 resolution: "mime@npm:4.0.4" @@ -11433,13 +11801,6 @@ __metadata: languageName: node linkType: hard -"mimic-fn@npm:^1.0.0": - version: 1.2.0 - resolution: "mimic-fn@npm:1.2.0" - checksum: 10c0/ad55214aec6094c0af4c0beec1a13787556f8116ed88807cf3f05828500f21f93a9482326bcd5a077ae91e3e8795b4e76b5b4c8bb12237ff0e4043a365516cba - languageName: node - linkType: hard - "mimic-fn@npm:^2.1.0": version: 2.1.0 resolution: "mimic-fn@npm:2.1.0" @@ -11454,6 +11815,20 @@ __metadata: languageName: node linkType: hard +"mimic-response@npm:^3.1.0": + version: 3.1.0 + resolution: "mimic-response@npm:3.1.0" + checksum: 10c0/0d6f07ce6e03e9e4445bee655202153bdb8a98d67ee8dc965ac140900d7a2688343e6b4c9a72cfc9ef2f7944dfd76eef4ab2482eb7b293a68b84916bac735362 + languageName: node + linkType: hard + +"mimic-response@npm:^4.0.0": + version: 4.0.0 + resolution: "mimic-response@npm:4.0.0" + checksum: 10c0/761d788d2668ae9292c489605ffd4fad220f442fbae6832adce5ebad086d691e906a6d5240c290293c7a11e99fbdbbef04abbbed498bf8699a4ee0f31315e3fb + languageName: node + linkType: hard + "min-indent@npm:^1.0.0": version: 1.0.1 resolution: "min-indent@npm:1.0.1" @@ -11496,7 +11871,7 @@ __metadata: languageName: node linkType: hard -"minimatch@npm:^5.0.1, minimatch@npm:^5.1.6": +"minimatch@npm:^5.0.1, minimatch@npm:^5.1.0": version: 5.1.6 resolution: "minimatch@npm:5.1.6" dependencies: @@ -11505,7 +11880,7 @@ __metadata: languageName: node linkType: hard -"minimatch@npm:^9.0.0, minimatch@npm:^9.0.3, minimatch@npm:^9.0.4, minimatch@npm:^9.0.5": +"minimatch@npm:^9.0.0, minimatch@npm:^9.0.4, minimatch@npm:^9.0.5": version: 9.0.5 resolution: "minimatch@npm:9.0.5" dependencies: @@ -11534,7 +11909,7 @@ __metadata: languageName: node linkType: hard -"minimist@npm:^1.2.0, minimist@npm:^1.2.3, minimist@npm:^1.2.5, minimist@npm:^1.2.6, minimist@npm:^1.2.8": +"minimist@npm:^1.2.0, minimist@npm:^1.2.5, minimist@npm:^1.2.6, minimist@npm:^1.2.8": version: 1.2.8 resolution: "minimist@npm:1.2.8" checksum: 10c0/19d3fcdca050087b84c2029841a093691a91259a47def2f18222f41e7645a0b7c44ef4b40e88a1e58a40c84d2ef0ee6047c55594d298146d0eb3f6b737c20ce6 @@ -11682,6 +12057,13 @@ __metadata: languageName: node linkType: hard +"mitt@npm:3.0.0": + version: 3.0.0 + resolution: "mitt@npm:3.0.0" + checksum: 10c0/c530c7747d5de7c9976c83d7c2450d9dfddbfed45f7e8b55e5e197be68dbed80e509a8aae97807ae6945dc79f3922d49b2813f3c08fd20cf8aa6a6a47e454a36 + languageName: node + linkType: hard + "mixin-deep@npm:^1.2.0": version: 1.3.2 resolution: "mixin-deep@npm:1.3.2" @@ -11692,7 +12074,14 @@ __metadata: languageName: node linkType: hard -"mkdirp@npm:^0.5.1, mkdirp@npm:^0.5.3, mkdirp@npm:^0.5.5": +"mkdirp-classic@npm:^0.5.2": + version: 0.5.3 + resolution: "mkdirp-classic@npm:0.5.3" + checksum: 10c0/95371d831d196960ddc3833cc6907e6b8f67ac5501a6582f47dfae5eb0f092e9f8ce88e0d83afcae95d6e2b61a01741ba03714eeafb6f7a6e9dcc158ac85b168 + languageName: node + linkType: hard + +"mkdirp@npm:^0.5.1, mkdirp@npm:^0.5.3": version: 0.5.6 resolution: "mkdirp@npm:0.5.6" dependencies: @@ -11712,37 +12101,6 @@ __metadata: languageName: node linkType: hard -"mocha@npm:^10.7.0": - version: 10.7.0 - resolution: "mocha@npm:10.7.0" - dependencies: - ansi-colors: "npm:^4.1.3" - browser-stdout: "npm:^1.3.1" - chokidar: "npm:^3.5.3" - debug: "npm:^4.3.5" - diff: "npm:^5.2.0" - escape-string-regexp: "npm:^4.0.0" - find-up: "npm:^5.0.0" - glob: "npm:^8.1.0" - he: "npm:^1.2.0" - js-yaml: "npm:^4.1.0" - log-symbols: "npm:^4.1.0" - minimatch: "npm:^5.1.6" - ms: "npm:^2.1.3" - serialize-javascript: "npm:^6.0.2" - strip-json-comments: "npm:^3.1.1" - supports-color: "npm:^8.1.1" - workerpool: "npm:^6.5.1" - yargs: "npm:^16.2.0" - yargs-parser: "npm:^20.2.9" - yargs-unparser: "npm:^2.0.0" - bin: - _mocha: bin/_mocha - mocha: bin/mocha.js - checksum: 10c0/4d9e04fffa66e147e6250561077fcae1d7220bebba98e5649742e2e11b1c432ce9ab3c20fc27fb7cbd2be533b9a2843d47130aa54570047be698e157add02961 - languageName: node - linkType: hard - "moment@npm:^2.22.1": version: 2.30.1 resolution: "moment@npm:2.30.1" @@ -11785,13 +12143,45 @@ __metadata: languageName: node linkType: hard -"ms@npm:2.1.3, ms@npm:^2.0.0, ms@npm:^2.1.1, ms@npm:^2.1.2, ms@npm:^2.1.3": +"ms@npm:2.1.3, ms@npm:^2.0.0, ms@npm:^2.1.1, ms@npm:^2.1.2": version: 2.1.3 resolution: "ms@npm:2.1.3" checksum: 10c0/d924b57e7312b3b63ad21fc5b3dc0af5e78d61a1fc7cfb5457edaf26326bf62be5307cc87ffb6862ef1c2b33b0233cdb5d4f01c4c958cc0d660948b65a287a48 languageName: node linkType: hard +"msw@npm:^2.3.2": + version: 2.3.4 + resolution: "msw@npm:2.3.4" + dependencies: + "@bundled-es-modules/cookie": "npm:^2.0.0" + "@bundled-es-modules/statuses": "npm:^1.0.1" + "@bundled-es-modules/tough-cookie": "npm:^0.1.6" + "@inquirer/confirm": "npm:^3.0.0" + "@mswjs/interceptors": "npm:^0.29.0" + "@open-draft/until": "npm:^2.1.0" + "@types/cookie": "npm:^0.6.0" + "@types/statuses": "npm:^2.0.4" + chalk: "npm:^4.1.2" + graphql: "npm:^16.8.1" + headers-polyfill: "npm:^4.0.2" + is-node-process: "npm:^1.2.0" + outvariant: "npm:^1.4.2" + path-to-regexp: "npm:^6.2.0" + strict-event-emitter: "npm:^0.5.1" + type-fest: "npm:^4.9.0" + yargs: "npm:^17.7.2" + peerDependencies: + typescript: ">= 4.7.x" + peerDependenciesMeta: + typescript: + optional: true + bin: + msw: cli/index.js + checksum: 10c0/e9a5a1de80f1688c1dd5c4de86c0192891568912d0f98500b552ecfe233d80559941d2bd563b3f7a792919a8a5fd380e222461f4b2a331ab1ab65fcb5fe30a97 + languageName: node + linkType: hard + "multicast-dns@npm:^7.2.5": version: 7.2.5 resolution: "multicast-dns@npm:7.2.5" @@ -11804,13 +12194,6 @@ __metadata: languageName: node linkType: hard -"mute-stream@npm:0.0.7": - version: 0.0.7 - resolution: "mute-stream@npm:0.0.7" - checksum: 10c0/c687cfe99289166fe17dcbd0cf49612c5d267410a7819b654a82df45016967d7b2b0b18b35410edef86de6bb089a00413557dc0182c5e78a4af50ba5d61edb42 - languageName: node - linkType: hard - "mute-stream@npm:^1.0.0": version: 1.0.0 resolution: "mute-stream@npm:1.0.0" @@ -11894,6 +12277,13 @@ __metadata: languageName: node linkType: hard +"netmask@npm:^2.0.2": + version: 2.0.2 + resolution: "netmask@npm:2.0.2" + checksum: 10c0/cafd28388e698e1138ace947929f842944d0f1c0b87d3fa2601a61b38dc89397d33c0ce2c8e7b99e968584b91d15f6810b91bef3f3826adf71b1833b61d4bf4f + languageName: node + linkType: hard + "next-tick@npm:^1.1.0": version: 1.1.0 resolution: "next-tick@npm:1.1.0" @@ -11901,13 +12291,6 @@ __metadata: languageName: node linkType: hard -"nice-try@npm:^1.0.4": - version: 1.0.5 - resolution: "nice-try@npm:1.0.5" - checksum: 10c0/95568c1b73e1d0d4069a3e3061a2102d854513d37bcfda73300015b7ba4868d3b27c198d1dbbd8ebdef4112fc2ed9e895d4a0f2e1cce0bd334f2a1346dc9205f - languageName: node - linkType: hard - "nise@npm:^6.0.0": version: 6.0.0 resolution: "nise@npm:6.0.0" @@ -11930,6 +12313,13 @@ __metadata: languageName: node linkType: hard +"node-domexception@npm:^1.0.0": + version: 1.0.0 + resolution: "node-domexception@npm:1.0.0" + checksum: 10c0/5e5d63cda29856402df9472335af4bb13875e1927ad3be861dc5ebde38917aecbf9ae337923777af52a48c426b70148815e890a5d72760f1b4d758cc671b1a2b + languageName: node + linkType: hard + "node-emoji@npm:^2.1.3": version: 2.1.3 resolution: "node-emoji@npm:2.1.3" @@ -11942,6 +12332,31 @@ __metadata: languageName: node linkType: hard +"node-fetch@npm:^2.6.12": + version: 2.7.0 + resolution: "node-fetch@npm:2.7.0" + dependencies: + whatwg-url: "npm:^5.0.0" + peerDependencies: + encoding: ^0.1.0 + peerDependenciesMeta: + encoding: + optional: true + checksum: 10c0/b55786b6028208e6fbe594ccccc213cab67a72899c9234eb59dba51062a299ea853210fcf526998eaa2867b0963ad72338824450905679ff0fa304b8c5093ae8 + languageName: node + linkType: hard + +"node-fetch@npm:^3.3.2": + version: 3.3.2 + resolution: "node-fetch@npm:3.3.2" + dependencies: + data-uri-to-buffer: "npm:^4.0.0" + fetch-blob: "npm:^3.1.4" + formdata-polyfill: "npm:^4.0.10" + checksum: 10c0/f3d5e56190562221398c9f5750198b34cf6113aa304e34ee97c94fd300ec578b25b2c2906edba922050fce983338fde0d5d34fcb0fc3336ade5bd0e429ad7538 + languageName: node + linkType: hard + "node-forge@npm:^1": version: 1.3.1 resolution: "node-forge@npm:1.3.1" @@ -12345,7 +12760,7 @@ __metadata: languageName: node linkType: hard -"object-assign@npm:^4, object-assign@npm:^4.0.1, object-assign@npm:^4.1.0, object-assign@npm:^4.1.1": +"object-assign@npm:^4.0.1, object-assign@npm:^4.1.0, object-assign@npm:^4.1.1": version: 4.1.1 resolution: "object-assign@npm:4.1.1" checksum: 10c0/1f4df9945120325d041ccf7b86f31e8bcc14e73d29171e37a7903050e96b81323784ec59f93f102ec635bcf6fa8034ba3ea0a8c7e69fa202b87ae3b6cec5a414 @@ -12457,15 +12872,6 @@ __metadata: languageName: node linkType: hard -"on-finished@npm:~2.3.0": - version: 2.3.0 - resolution: "on-finished@npm:2.3.0" - dependencies: - ee-first: "npm:1.1.1" - checksum: 10c0/c904f9e518b11941eb60279a3cbfaf1289bd0001f600a950255b1dede9fe3df8cd74f38483550b3bb9485165166acb5db500c3b4c4337aec2815c88c96fcc2ea - languageName: node - linkType: hard - "on-headers@npm:~1.0.2": version: 1.0.2 resolution: "on-headers@npm:1.0.2" @@ -12482,15 +12888,6 @@ __metadata: languageName: node linkType: hard -"onetime@npm:^2.0.0": - version: 2.0.1 - resolution: "onetime@npm:2.0.1" - dependencies: - mimic-fn: "npm:^1.0.0" - checksum: 10c0/b4e44a8c34e70e02251bfb578a6e26d6de6eedbed106cd78211d2fd64d28b6281d54924696554e4e966559644243753ac5df73c87f283b0927533d3315696215 - languageName: node - linkType: hard - "onetime@npm:^5.1.0, onetime@npm:^5.1.2": version: 5.1.2 resolution: "onetime@npm:5.1.2" @@ -12530,20 +12927,6 @@ __metadata: languageName: node linkType: hard -"optionator@npm:^0.8.2": - version: 0.8.3 - resolution: "optionator@npm:0.8.3" - dependencies: - deep-is: "npm:~0.1.3" - fast-levenshtein: "npm:~2.0.6" - levn: "npm:~0.3.0" - prelude-ls: "npm:~1.1.2" - type-check: "npm:~0.3.2" - word-wrap: "npm:~1.2.3" - checksum: 10c0/ad7000ea661792b3ec5f8f86aac28895850988926f483b5f308f59f4607dfbe24c05df2d049532ee227c040081f39401a268cf7bbf3301512f74c4d760dc6dd8 - languageName: node - linkType: hard - "optionator@npm:^0.9.3": version: 0.9.4 resolution: "optionator@npm:0.9.4" @@ -12565,10 +12948,17 @@ __metadata: languageName: node linkType: hard -"os-tmpdir@npm:~1.0.2": - version: 1.0.2 - resolution: "os-tmpdir@npm:1.0.2" - checksum: 10c0/f438450224f8e2687605a8dd318f0db694b6293c5d835ae509a69e97c8de38b6994645337e5577f5001115470414638978cc49da1cdcc25106dad8738dc69990 +"outvariant@npm:^1.2.1, outvariant@npm:^1.4.0, outvariant@npm:^1.4.2": + version: 1.4.3 + resolution: "outvariant@npm:1.4.3" + checksum: 10c0/5976ca7740349cb8c71bd3382e2a762b1aeca6f33dc984d9d896acdf3c61f78c3afcf1bfe9cc633a7b3c4b295ec94d292048f83ea2b2594fae4496656eba992c + languageName: node + linkType: hard + +"p-cancelable@npm:^3.0.0": + version: 3.0.0 + resolution: "p-cancelable@npm:3.0.0" + checksum: 10c0/948fd4f8e87b956d9afc2c6c7392de9113dac817cb1cecf4143f7a3d4c57ab5673614a80be3aba91ceec5e4b69fd8c869852d7e8048bc3d9273c4c36ce14b9aa languageName: node linkType: hard @@ -12747,6 +13137,32 @@ __metadata: languageName: node linkType: hard +"pac-proxy-agent@npm:^7.0.0, pac-proxy-agent@npm:^7.0.1": + version: 7.0.2 + resolution: "pac-proxy-agent@npm:7.0.2" + dependencies: + "@tootallnate/quickjs-emscripten": "npm:^0.23.0" + agent-base: "npm:^7.0.2" + debug: "npm:^4.3.4" + get-uri: "npm:^6.0.1" + http-proxy-agent: "npm:^7.0.0" + https-proxy-agent: "npm:^7.0.5" + pac-resolver: "npm:^7.0.1" + socks-proxy-agent: "npm:^8.0.4" + checksum: 10c0/1ef0812bb860d2c695aa3a8604acdb4239b8074183c9fdb9bdf3747b8b28bbb88f22269d3ca95cae825c8ed0ca82681e6692c0e304c961fe004231e579d1ca91 + languageName: node + linkType: hard + +"pac-resolver@npm:^7.0.1": + version: 7.0.1 + resolution: "pac-resolver@npm:7.0.1" + dependencies: + degenerator: "npm:^5.0.0" + netmask: "npm:^2.0.2" + checksum: 10c0/5f3edd1dd10fded31e7d1f95776442c3ee51aa098c28b74ede4927d9677ebe7cebb2636750c24e945f5b84445e41ae39093d3a1014a994e5ceb9f0b1b88ebff5 + languageName: node + linkType: hard + "package-json-from-dist@npm:^1.0.0": version: 1.0.0 resolution: "package-json-from-dist@npm:1.0.0" @@ -12781,7 +13197,7 @@ __metadata: languageName: node linkType: hard -"pako@npm:~1.0.5": +"pako@npm:~1.0.2, pako@npm:~1.0.5": version: 1.0.11 resolution: "pako@npm:1.0.11" checksum: 10c0/86dd99d8b34c3930345b8bbeb5e1cd8a05f608eeb40967b293f72fe469d0e9c88b783a8777e4cc7dc7c91ce54c5e93d88ff4b4f060e6ff18408fd21030d9ffbe @@ -12969,13 +13385,6 @@ __metadata: languageName: node linkType: hard -"path-key@npm:^2.0.1": - version: 2.0.1 - resolution: "path-key@npm:2.0.1" - checksum: 10c0/dd2044f029a8e58ac31d2bf34c34b93c3095c1481942960e84dd2faa95bbb71b9b762a106aead0646695330936414b31ca0bd862bf488a937ad17c8c5d73b32b - languageName: node - linkType: hard - "path-key@npm:^3.0.0, path-key@npm:^3.1.0": version: 3.1.1 resolution: "path-key@npm:3.1.1" @@ -13014,7 +13423,7 @@ __metadata: languageName: node linkType: hard -"path-to-regexp@npm:^6.2.1": +"path-to-regexp@npm:^6.2.0, path-to-regexp@npm:^6.2.1": version: 6.2.2 resolution: "path-to-regexp@npm:6.2.2" checksum: 10c0/4b60852d3501fd05ca9dd08c70033d73844e5eca14e41f499f069afa8364f780f15c5098002f93bd42af8b3514de62ac6e82a53b5662de881d2b08c9ef21ea6b @@ -13035,10 +13444,17 @@ __metadata: languageName: node linkType: hard -"pathval@npm:^1.1.1": - version: 1.1.1 - resolution: "pathval@npm:1.1.1" - checksum: 10c0/f63e1bc1b33593cdf094ed6ff5c49c1c0dc5dc20a646ca9725cc7fe7cd9995002d51d5685b9b2ec6814342935748b711bafa840f84c0bb04e38ff40a335c94dc +"pathe@npm:^1.1.2": + version: 1.1.2 + resolution: "pathe@npm:1.1.2" + checksum: 10c0/64ee0a4e587fb0f208d9777a6c56e4f9050039268faaaaecd50e959ef01bf847b7872785c36483fa5cdcdbdfdb31fef2ff222684d4fc21c330ab60395c681897 + languageName: node + linkType: hard + +"pathval@npm:^2.0.0": + version: 2.0.0 + resolution: "pathval@npm:2.0.0" + checksum: 10c0/602e4ee347fba8a599115af2ccd8179836a63c925c23e04bd056d0674a64b39e3a081b643cc7bc0b84390517df2d800a46fcc5598d42c155fe4977095c2f77c5 languageName: node linkType: hard @@ -13055,6 +13471,13 @@ __metadata: languageName: node linkType: hard +"pend@npm:~1.2.0": + version: 1.2.0 + resolution: "pend@npm:1.2.0" + checksum: 10c0/8a87e63f7a4afcfb0f9f77b39bb92374afc723418b9cb716ee4257689224171002e07768eeade4ecd0e86f1fa3d8f022994219fb45634f2dbd78c6803e452458 + languageName: node + linkType: hard + "performance-now@npm:^2.1.0": version: 2.1.0 resolution: "performance-now@npm:2.1.0" @@ -13236,6 +13659,17 @@ __metadata: languageName: node linkType: hard +"postcss@npm:^8.4.39": + version: 8.4.40 + resolution: "postcss@npm:8.4.40" + dependencies: + nanoid: "npm:^3.3.7" + picocolors: "npm:^1.0.1" + source-map-js: "npm:^1.2.0" + checksum: 10c0/65ed67573e5443beaeb582282ff27a6be7c7fe3b4d9fa15761157616f2b97510cb1c335023c26220b005909f007337026d6e3ff092f25010b484ad484e80ea7f + languageName: node + linkType: hard + "prelude-ls@npm:^1.2.1": version: 1.2.1 resolution: "prelude-ls@npm:1.2.1" @@ -13243,10 +13677,14 @@ __metadata: languageName: node linkType: hard -"prelude-ls@npm:~1.1.2": - version: 1.1.2 - resolution: "prelude-ls@npm:1.1.2" - checksum: 10c0/7284270064f74e0bb7f04eb9bff7be677e4146417e599ccc9c1200f0f640f8b11e592d94eb1b18f7aa9518031913bb42bea9c86af07ba69902864e61005d6f18 +"pretty-format@npm:^27.0.2": + version: 27.5.1 + resolution: "pretty-format@npm:27.5.1" + dependencies: + ansi-regex: "npm:^5.0.1" + ansi-styles: "npm:^5.0.0" + react-is: "npm:^17.0.1" + checksum: 10c0/0cbda1031aa30c659e10921fa94e0dd3f903ecbbbe7184a729ad66f2b6e7f17891e8c7d7654c458fa4ccb1a411ffb695b4f17bbcd3fe075fabe181027c4040ed languageName: node linkType: hard @@ -13301,7 +13739,7 @@ __metadata: languageName: node linkType: hard -"progress@npm:^2.0.0": +"progress@npm:2.0.3": version: 2.0.3 resolution: "progress@npm:2.0.3" checksum: 10c0/1697e07cb1068055dbe9fe858d242368ff5d2073639e652b75a7eb1f2a1a8d4afd404d719de23c7b48481a6aa0040686310e2dac2f53d776daa2176d3f96369c @@ -13385,6 +13823,45 @@ __metadata: languageName: node linkType: hard +"proxy-agent@npm:6.3.0": + version: 6.3.0 + resolution: "proxy-agent@npm:6.3.0" + dependencies: + agent-base: "npm:^7.0.2" + debug: "npm:^4.3.4" + http-proxy-agent: "npm:^7.0.0" + https-proxy-agent: "npm:^7.0.0" + lru-cache: "npm:^7.14.1" + pac-proxy-agent: "npm:^7.0.0" + proxy-from-env: "npm:^1.1.0" + socks-proxy-agent: "npm:^8.0.1" + checksum: 10c0/40a0df2c9af5da8e6fcb95268f3e93181d8dd5c5ee9493517793fe75f847641f44a962d25a49d7208ec3b68cf1998fcd0d976bae773796e2023c71cddd76b642 + languageName: node + linkType: hard + +"proxy-agent@npm:6.3.1": + version: 6.3.1 + resolution: "proxy-agent@npm:6.3.1" + dependencies: + agent-base: "npm:^7.0.2" + debug: "npm:^4.3.4" + http-proxy-agent: "npm:^7.0.0" + https-proxy-agent: "npm:^7.0.2" + lru-cache: "npm:^7.14.1" + pac-proxy-agent: "npm:^7.0.1" + proxy-from-env: "npm:^1.1.0" + socks-proxy-agent: "npm:^8.0.2" + checksum: 10c0/72532eeae5f038873232905e17272eaecae5e5891b06f0f40cce139a84a4b19f482ab3ce586050fd2c64ca9171c7828ef183eb49c615f0faa359f1213063498a + languageName: node + linkType: hard + +"proxy-from-env@npm:^1.1.0": + version: 1.1.0 + resolution: "proxy-from-env@npm:1.1.0" + checksum: 10c0/fe7dd8b1bdbbbea18d1459107729c3e4a2243ca870d26d34c2c1bcd3e4425b7bcc5112362df2d93cc7fb9746f6142b5e272fd1cc5c86ddf8580175186f6ad42b + languageName: node + linkType: hard + "prr@npm:~1.0.1": version: 1.0.1 resolution: "prr@npm:1.0.1" @@ -13399,7 +13876,7 @@ __metadata: languageName: node linkType: hard -"psl@npm:^1.1.28": +"psl@npm:^1.1.28, psl@npm:^1.1.33": version: 1.9.0 resolution: "psl@npm:1.9.0" checksum: 10c0/6a3f805fdab9442f44de4ba23880c4eba26b20c8e8e0830eff1cb31007f6825dace61d17203c58bfe36946842140c97a1ba7f67bc63ca2d88a7ee052b65d97ab @@ -13601,10 +14078,22 @@ __metadata: languageName: node linkType: hard -"qjobs@npm:^1.2.0": - version: 1.2.0 - resolution: "qjobs@npm:1.2.0" - checksum: 10c0/772207772b856a3b1ec673b11a6cda074f1b82821644f2d042504b438ea3ea1fe918555547491e717e8694ec105379fe5139fc5ddd7937b21f7712bb648ed01d +"puppeteer-core@npm:^20.9.0": + version: 20.9.0 + resolution: "puppeteer-core@npm:20.9.0" + dependencies: + "@puppeteer/browsers": "npm:1.4.6" + chromium-bidi: "npm:0.4.16" + cross-fetch: "npm:4.0.0" + debug: "npm:4.3.4" + devtools-protocol: "npm:0.0.1147663" + ws: "npm:8.13.0" + peerDependencies: + typescript: ">= 4.7.4" + peerDependenciesMeta: + typescript: + optional: true + checksum: 10c0/1c6b0a2c648af2b3d011ac4bfa52cd22ac8e68f794664cf0e7a49c2f9bd88ab2ecc40c07bfe745e5e4b90fccc98c2204ad2168b484a1a9d55062a444b488a395 languageName: node linkType: hard @@ -13642,6 +14131,13 @@ __metadata: languageName: node linkType: hard +"query-selector-shadow-dom@npm:^1.0.0": + version: 1.0.1 + resolution: "query-selector-shadow-dom@npm:1.0.1" + checksum: 10c0/f36de03f170ff1da69c3eecfa7f8b01e450a46dd266c921e17f36076ec59862eee00179489f30cb17c118bb56e868436578c01ea66f671fb358750d6ae474125 + languageName: node + linkType: hard + "querystring-es3@npm:^0.2.0": version: 0.2.1 resolution: "querystring-es3@npm:0.2.1" @@ -13649,6 +14145,13 @@ __metadata: languageName: node linkType: hard +"querystringify@npm:^2.1.1": + version: 2.2.0 + resolution: "querystringify@npm:2.2.0" + checksum: 10c0/3258bc3dbdf322ff2663619afe5947c7926a6ef5fb78ad7d384602974c467fadfc8272af44f5eb8cddd0d011aae8fabf3a929a8eee4b86edcc0a21e6bd10f9aa + languageName: node + linkType: hard + "queue-microtask@npm:^1.2.2": version: 1.2.3 resolution: "queue-microtask@npm:1.2.3" @@ -13656,6 +14159,13 @@ __metadata: languageName: node linkType: hard +"queue-tick@npm:^1.0.1": + version: 1.0.1 + resolution: "queue-tick@npm:1.0.1" + checksum: 10c0/0db998e2c9b15215317dbcf801e9b23e6bcde4044e115155dae34f8e7454b9a783f737c9a725528d677b7a66c775eb7a955cf144fe0b87f62b575ce5bfd515a9 + languageName: node + linkType: hard + "quick-lru@npm:^4.0.1": version: 4.0.1 resolution: "quick-lru@npm:4.0.1" @@ -13663,6 +14173,13 @@ __metadata: languageName: node linkType: hard +"quick-lru@npm:^5.1.1": + version: 5.1.1 + resolution: "quick-lru@npm:5.1.1" + checksum: 10c0/a24cba5da8cec30d70d2484be37622580f64765fb6390a928b17f60cd69e8dbd32a954b3ff9176fa1b86d86ff2ba05252fae55dc4d40d0291c60412b0ad096da + languageName: node + linkType: hard + "randombytes@npm:^2.0.0, randombytes@npm:^2.0.1, randombytes@npm:^2.0.5, randombytes@npm:^2.1.0": version: 2.1.0 resolution: "randombytes@npm:2.1.0" @@ -13769,6 +14286,13 @@ __metadata: languageName: node linkType: hard +"react-is@npm:^17.0.1": + version: 17.0.2 + resolution: "react-is@npm:17.0.2" + checksum: 10c0/2bdb6b93fbb1820b024b496042cce405c57e2f85e777c9aabd55f9b26d145408f9f74f5934676ffdc46f3dcff656d78413a6e43968e7b3f92eea35b3052e9053 + languageName: node + linkType: hard + "read-cmd-shim@npm:^4.0.0": version: 4.0.0 resolution: "read-cmd-shim@npm:4.0.0" @@ -13842,7 +14366,7 @@ __metadata: languageName: node linkType: hard -"readable-stream@npm:1 || 2, readable-stream@npm:^2.0.0, readable-stream@npm:^2.0.1, readable-stream@npm:^2.0.2, readable-stream@npm:^2.1.5, readable-stream@npm:^2.2.2, readable-stream@npm:^2.3.3, readable-stream@npm:^2.3.6, readable-stream@npm:^2.3.8, readable-stream@npm:~2.3.6": +"readable-stream@npm:1 || 2, readable-stream@npm:^2.0.0, readable-stream@npm:^2.0.1, readable-stream@npm:^2.0.2, readable-stream@npm:^2.0.5, readable-stream@npm:^2.1.5, readable-stream@npm:^2.2.2, readable-stream@npm:^2.3.3, readable-stream@npm:^2.3.6, readable-stream@npm:^2.3.8, readable-stream@npm:~2.3.6": version: 2.3.8 resolution: "readable-stream@npm:2.3.8" dependencies: @@ -13868,6 +14392,28 @@ __metadata: languageName: node linkType: hard +"readable-stream@npm:^4.0.0": + version: 4.5.2 + resolution: "readable-stream@npm:4.5.2" + dependencies: + abort-controller: "npm:^3.0.0" + buffer: "npm:^6.0.3" + events: "npm:^3.3.0" + process: "npm:^0.11.10" + string_decoder: "npm:^1.3.0" + checksum: 10c0/a2c80e0e53aabd91d7df0330929e32d0a73219f9477dbbb18472f6fdd6a11a699fc5d172a1beff98d50eae4f1496c950ffa85b7cc2c4c196963f289a5f39275d + languageName: node + linkType: hard + +"readdir-glob@npm:^1.1.2": + version: 1.1.3 + resolution: "readdir-glob@npm:1.1.3" + dependencies: + minimatch: "npm:^5.1.0" + checksum: 10c0/a37e0716726650845d761f1041387acd93aa91b28dd5381950733f994b6c349ddc1e21e266ec7cc1f9b92e205a7a972232f9b89d5424d07361c2c3753d5dbace + languageName: node + linkType: hard + "readdirp@npm:^2.2.1": version: 2.2.1 resolution: "readdirp@npm:2.2.1" @@ -13955,13 +14501,6 @@ __metadata: languageName: node linkType: hard -"regexpp@npm:^2.0.1": - version: 2.0.1 - resolution: "regexpp@npm:2.0.1" - checksum: 10c0/4ac2cf4c68941728bffbba5a8f597a23385c2c05afc5bf5de74744ee048765ab84ea3ce3c6a5bdce102a3a54514b75b7add48b4c1abd925ca3afd40e537f2b5f - languageName: node - linkType: hard - "registry-auth-token@npm:^5.0.0": version: 5.0.2 resolution: "registry-auth-token@npm:5.0.2" @@ -13992,15 +14531,6 @@ __metadata: languageName: node linkType: hard -"repeating@npm:^2.0.0": - version: 2.0.1 - resolution: "repeating@npm:2.0.1" - dependencies: - is-finite: "npm:^1.0.0" - checksum: 10c0/7f5cd293ec47d9c074ef0852800d5ff5c49028ce65242a7528d84f32bd2fe200b142930562af58c96d869c5a3046e87253030058e45231acaa129c1a7087d2e7 - languageName: node - linkType: hard - "request@npm:^2.88.2": version: 2.88.2 resolution: "request@npm:2.88.2" @@ -14059,6 +14589,13 @@ __metadata: languageName: node linkType: hard +"resolve-alpn@npm:^1.2.0": + version: 1.2.1 + resolution: "resolve-alpn@npm:1.2.1" + checksum: 10c0/b70b29c1843bc39781ef946c8cd4482e6d425976599c0f9c138cec8209e4e0736161bf39319b01676a847000085dfdaf63583c6fb4427bf751a10635bd2aa0c4 + languageName: node + linkType: hard + "resolve-cwd@npm:^3.0.0": version: 3.0.0 resolution: "resolve-cwd@npm:3.0.0" @@ -14122,13 +14659,21 @@ __metadata: languageName: node linkType: hard -"restore-cursor@npm:^2.0.0": - version: 2.0.0 - resolution: "restore-cursor@npm:2.0.0" +"responselike@npm:^3.0.0": + version: 3.0.0 + resolution: "responselike@npm:3.0.0" dependencies: - onetime: "npm:^2.0.0" - signal-exit: "npm:^3.0.2" - checksum: 10c0/f5b335bee06f440445e976a7031a3ef53691f9b7c4a9d42a469a0edaf8a5508158a0d561ff2b26a1f4f38783bcca2c0e5c3a44f927326f6694d5b44d7a4993e6 + lowercase-keys: "npm:^3.0.0" + checksum: 10c0/8af27153f7e47aa2c07a5f2d538cb1e5872995f0e9ff77def858ecce5c3fe677d42b824a62cde502e56d275ab832b0a8bd350d5cd6b467ac0425214ac12ae658 + languageName: node + linkType: hard + +"resq@npm:^1.9.1": + version: 1.11.0 + resolution: "resq@npm:1.11.0" + dependencies: + fast-deep-equal: "npm:^2.0.1" + checksum: 10c0/870e70bcbb85fcfe311c6742843decd4ef870252d00f4b041960076f98b2ff4d18cf88aca36d4f4838ca8bc6ded27097fefb31ab3340390adfcb8a82b9474a95 languageName: node linkType: hard @@ -14170,13 +14715,20 @@ __metadata: languageName: node linkType: hard -"rfdc@npm:^1.3.0, rfdc@npm:^1.4.1": +"rfdc@npm:^1.4.1": version: 1.4.1 resolution: "rfdc@npm:1.4.1" checksum: 10c0/4614e4292356cafade0b6031527eea9bc90f2372a22c012313be1dcc69a3b90c7338158b414539be863fa95bfcb2ddcd0587be696841af4e6679d85e62c060c7 languageName: node linkType: hard +"rgb2hex@npm:0.2.5": + version: 0.2.5 + resolution: "rgb2hex@npm:0.2.5" + checksum: 10c0/32bf5373fe2690efc2a1761c9b50500faa6248e86ef3051766b06d4e95f3c49acfa6d522da5ea87e5db3ec5412ed777570fd626b1505c54bb5a970653fc9757b + languageName: node + linkType: hard + "right-align@npm:^0.1.1": version: 0.1.3 resolution: "right-align@npm:0.1.3" @@ -14186,25 +14738,14 @@ __metadata: languageName: node linkType: hard -"rimraf@npm:2.6.3": - version: 2.6.3 - resolution: "rimraf@npm:2.6.3" +"rimraf@npm:^2.5.4, rimraf@npm:^2.6.3": + version: 2.7.1 + resolution: "rimraf@npm:2.7.1" dependencies: glob: "npm:^7.1.3" bin: rimraf: ./bin.js - checksum: 10c0/f1e646f8c567795f2916aef7aadf685b543da6b9a53e482bb04b07472c7eef2b476045ba1e29f401c301c66b630b22b815ab31fdd60c5e1ae6566ff523debf45 - languageName: node - linkType: hard - -"rimraf@npm:^2.5.4, rimraf@npm:^2.6.3": - version: 2.7.1 - resolution: "rimraf@npm:2.7.1" - dependencies: - glob: "npm:^7.1.3" - bin: - rimraf: ./bin.js - checksum: 10c0/4eef73d406c6940927479a3a9dee551e14a54faf54b31ef861250ac815172bade86cc6f7d64a4dc5e98b65e4b18a2e1c9ff3b68d296be0c748413f092bb0dd40 + checksum: 10c0/4eef73d406c6940927479a3a9dee551e14a54faf54b31ef861250ac815172bade86cc6f7d64a4dc5e98b65e4b18a2e1c9ff3b68d296be0c748413f092bb0dd40 languageName: node linkType: hard @@ -14256,26 +14797,26 @@ __metadata: languageName: node linkType: hard -"rollup@npm:^4.19.0": - version: 4.19.0 - resolution: "rollup@npm:4.19.0" - dependencies: - "@rollup/rollup-android-arm-eabi": "npm:4.19.0" - "@rollup/rollup-android-arm64": "npm:4.19.0" - "@rollup/rollup-darwin-arm64": "npm:4.19.0" - "@rollup/rollup-darwin-x64": "npm:4.19.0" - "@rollup/rollup-linux-arm-gnueabihf": "npm:4.19.0" - "@rollup/rollup-linux-arm-musleabihf": "npm:4.19.0" - "@rollup/rollup-linux-arm64-gnu": "npm:4.19.0" - "@rollup/rollup-linux-arm64-musl": "npm:4.19.0" - "@rollup/rollup-linux-powerpc64le-gnu": "npm:4.19.0" - "@rollup/rollup-linux-riscv64-gnu": "npm:4.19.0" - "@rollup/rollup-linux-s390x-gnu": "npm:4.19.0" - "@rollup/rollup-linux-x64-gnu": "npm:4.19.0" - "@rollup/rollup-linux-x64-musl": "npm:4.19.0" - "@rollup/rollup-win32-arm64-msvc": "npm:4.19.0" - "@rollup/rollup-win32-ia32-msvc": "npm:4.19.0" - "@rollup/rollup-win32-x64-msvc": "npm:4.19.0" +"rollup@npm:^4.13.0, rollup@npm:^4.19.1": + version: 4.19.1 + resolution: "rollup@npm:4.19.1" + dependencies: + "@rollup/rollup-android-arm-eabi": "npm:4.19.1" + "@rollup/rollup-android-arm64": "npm:4.19.1" + "@rollup/rollup-darwin-arm64": "npm:4.19.1" + "@rollup/rollup-darwin-x64": "npm:4.19.1" + "@rollup/rollup-linux-arm-gnueabihf": "npm:4.19.1" + "@rollup/rollup-linux-arm-musleabihf": "npm:4.19.1" + "@rollup/rollup-linux-arm64-gnu": "npm:4.19.1" + "@rollup/rollup-linux-arm64-musl": "npm:4.19.1" + "@rollup/rollup-linux-powerpc64le-gnu": "npm:4.19.1" + "@rollup/rollup-linux-riscv64-gnu": "npm:4.19.1" + "@rollup/rollup-linux-s390x-gnu": "npm:4.19.1" + "@rollup/rollup-linux-x64-gnu": "npm:4.19.1" + "@rollup/rollup-linux-x64-musl": "npm:4.19.1" + "@rollup/rollup-win32-arm64-msvc": "npm:4.19.1" + "@rollup/rollup-win32-ia32-msvc": "npm:4.19.1" + "@rollup/rollup-win32-x64-msvc": "npm:4.19.1" "@types/estree": "npm:1.0.5" fsevents: "npm:~2.3.2" dependenciesMeta: @@ -14315,7 +14856,7 @@ __metadata: optional: true bin: rollup: dist/bin/rollup - checksum: 10c0/1c656853895f6c7d55492db4661c79d37a3046cff465f4924ac5f053b0f80a079e36f901b154dbe819d9e94dcd83e90e51c7f95e7158bef1a07ceb60df736285 + checksum: 10c0/2e526c38b4bcb22a058cf95e40c8c105a86f27d582c677c47df9315a17b18e75c772edc0773ca4d12d58ceca254bb5d63d4172041f6fd9f01e1a613d8bba6d09 languageName: node linkType: hard @@ -14326,13 +14867,6 @@ __metadata: languageName: node linkType: hard -"run-async@npm:^2.2.0": - version: 2.4.1 - resolution: "run-async@npm:2.4.1" - checksum: 10c0/35a68c8f1d9664f6c7c2e153877ca1d6e4f886e5ca067c25cdd895a6891ff3a1466ee07c63d6a9be306e9619ff7d509494e6d9c129516a36b9fd82263d579ee1 - languageName: node - linkType: hard - "run-parallel@npm:^1.1.9": version: 1.2.0 resolution: "run-parallel@npm:1.2.0" @@ -14358,12 +14892,10 @@ __metadata: languageName: node linkType: hard -"rxjs@npm:^6.4.0": - version: 6.6.7 - resolution: "rxjs@npm:6.6.7" - dependencies: - tslib: "npm:^1.9.0" - checksum: 10c0/e556a13a9aa89395e5c9d825eabcfa325568d9c9990af720f3f29f04a888a3b854f25845c2b55875d875381abcae2d8100af9cacdc57576e7ed6be030a01d2fe +"safaridriver@npm:^0.1.0": + version: 0.1.2 + resolution: "safaridriver@npm:0.1.2" + checksum: 10c0/4e2e8b346a836b69118b0399ca59b00ec81c48865fe03c36d7c0f40e278413b73d65cb10a269a18d423b7f4e5b8cafdbb9f2e31f6daab2a91b30cb41197bec46 languageName: node linkType: hard @@ -14434,9 +14966,9 @@ __metadata: languageName: node linkType: hard -"sass-loader@npm:^14.2.1": - version: 14.2.1 - resolution: "sass-loader@npm:14.2.1" +"sass-loader@npm:^16.0.0": + version: 16.0.0 + resolution: "sass-loader@npm:16.0.0" dependencies: neo-async: "npm:^2.6.2" peerDependencies: @@ -14456,16 +14988,20 @@ __metadata: optional: true webpack: optional: true - checksum: 10c0/9a48d454584d96d6c562eb323bb9e3c6808e930eeaaa916975b97d45831e0b87936a8655cdb3a4512a25abc9587dea65a9616e42396be0d7e7c507a4795a8146 + checksum: 10c0/0d2c2ee89a380ae19f1d024008c241afb747c254cf8e2163b281533c803a1cb3933236f0cfbb59a296fce864e4274e32a80c30dadd5b98618a362f0be8bac20f languageName: node linkType: hard -"schema-utils@npm:^0.3.0": - version: 0.3.0 - resolution: "schema-utils@npm:0.3.0" +"sass@npm:^1.77.8": + version: 1.77.8 + resolution: "sass@npm:1.77.8" dependencies: - ajv: "npm:^5.0.0" - checksum: 10c0/dd0694d6cfec83372273dcc73eeaab3cc8a8026cb0f57e896ea8ef3832421998423c6081ceea04e361ae95b40b6e5e3b9aebc7f3c6d8099ec99dc0a1843d9e67 + chokidar: "npm:>=3.0.0 <4.0.0" + immutable: "npm:^4.0.0" + source-map-js: "npm:>=0.6.2 <2.0.0" + bin: + sass: sass.js + checksum: 10c0/2bfd62794070352c804f949e69bd8bb5b4ec846deeb924251b2c3f7b503170fb1ae186f513f0166907749eb34e0277dee747edcb78c886fb471aac01be1e864c languageName: node linkType: hard @@ -14585,7 +15121,7 @@ __metadata: languageName: node linkType: hard -"semver@npm:2 || 3 || 4 || 5, semver@npm:^5.3.0, semver@npm:^5.5.0, semver@npm:^5.5.1, semver@npm:^5.6.0": +"semver@npm:2 || 3 || 4 || 5, semver@npm:^5.6.0": version: 5.7.2 resolution: "semver@npm:5.7.2" bin: @@ -14633,6 +15169,15 @@ __metadata: languageName: node linkType: hard +"serialize-error@npm:^11.0.1": + version: 11.0.3 + resolution: "serialize-error@npm:11.0.3" + dependencies: + type-fest: "npm:^2.12.2" + checksum: 10c0/7263603883b8936650819f0fd5150d41427b317432678b21722c54b85367ae15b8552865eb7f3f39ba71a32a003730a2e2e971e6909431eb54db70a3ef8eca17 + languageName: node + linkType: hard + "serialize-javascript@npm:^4.0.0": version: 4.0.0 resolution: "serialize-javascript@npm:4.0.0" @@ -14642,7 +15187,7 @@ __metadata: languageName: node linkType: hard -"serialize-javascript@npm:^6.0.1, serialize-javascript@npm:^6.0.2": +"serialize-javascript@npm:^6.0.1": version: 6.0.2 resolution: "serialize-javascript@npm:6.0.2" dependencies: @@ -14723,7 +15268,7 @@ __metadata: languageName: node linkType: hard -"setimmediate@npm:^1.0.4": +"setimmediate@npm:^1.0.4, setimmediate@npm:^1.0.5": version: 1.0.5 resolution: "setimmediate@npm:1.0.5" checksum: 10c0/5bae81bfdbfbd0ce992893286d49c9693c82b1bcc00dcaaf3a09c8f428fdeacf4190c013598b81875dfac2b08a572422db7df779a99332d0fce186d15a3e4d49 @@ -14765,15 +15310,6 @@ __metadata: languageName: node linkType: hard -"shebang-command@npm:^1.2.0": - version: 1.2.0 - resolution: "shebang-command@npm:1.2.0" - dependencies: - shebang-regex: "npm:^1.0.0" - checksum: 10c0/7b20dbf04112c456b7fc258622dafd566553184ac9b6938dd30b943b065b21dabd3776460df534cc02480db5e1b6aec44700d985153a3da46e7db7f9bd21326d - languageName: node - linkType: hard - "shebang-command@npm:^2.0.0": version: 2.0.0 resolution: "shebang-command@npm:2.0.0" @@ -14783,13 +15319,6 @@ __metadata: languageName: node linkType: hard -"shebang-regex@npm:^1.0.0": - version: 1.0.0 - resolution: "shebang-regex@npm:1.0.0" - checksum: 10c0/9abc45dee35f554ae9453098a13fdc2f1730e525a5eb33c51f096cc31f6f10a4b38074c1ebf354ae7bffa7229506083844008dfc3bb7818228568c0b2dc1fff2 - languageName: node - linkType: hard - "shebang-regex@npm:^3.0.0": version: 3.0.0 resolution: "shebang-regex@npm:3.0.0" @@ -14816,6 +15345,13 @@ __metadata: languageName: node linkType: hard +"siginfo@npm:^2.0.0": + version: 2.0.0 + resolution: "siginfo@npm:2.0.0" + checksum: 10c0/3def8f8e516fbb34cb6ae415b07ccc5d9c018d85b4b8611e3dc6f8be6d1899f693a4382913c9ed51a06babb5201639d76453ab297d1c54a456544acf5c892e34 + languageName: node + linkType: hard + "signal-exit@npm:^3.0.2, signal-exit@npm:^3.0.3, signal-exit@npm:^3.0.7": version: 3.0.7 resolution: "signal-exit@npm:3.0.7" @@ -14876,7 +15412,7 @@ __metadata: languageName: node linkType: hard -"sirv@npm:^2.0.3": +"sirv@npm:^2.0.3, sirv@npm:^2.0.4": version: 2.0.4 resolution: "sirv@npm:2.0.4" dependencies: @@ -14917,17 +15453,6 @@ __metadata: languageName: node linkType: hard -"slice-ansi@npm:^2.1.0": - version: 2.1.0 - resolution: "slice-ansi@npm:2.1.0" - dependencies: - ansi-styles: "npm:^3.2.0" - astral-regex: "npm:^1.0.0" - is-fullwidth-code-point: "npm:^2.0.0" - checksum: 10c0/c317b21ec9e3d3968f3d5b548cbfc2eae331f58a03f1352621020799cbe695b3611ee972726f8f32d4ca530065a5ec9c74c97fde711c1f41b4a1585876b2c191 - languageName: node - linkType: hard - "slice-ansi@npm:^5.0.0": version: 5.0.0 resolution: "slice-ansi@npm:5.0.0" @@ -14991,41 +15516,6 @@ __metadata: languageName: node linkType: hard -"socket.io-adapter@npm:~2.5.2": - version: 2.5.5 - resolution: "socket.io-adapter@npm:2.5.5" - dependencies: - debug: "npm:~4.3.4" - ws: "npm:~8.17.1" - checksum: 10c0/04a5a2a9c4399d1b6597c2afc4492ab1e73430cc124ab02b09e948eabf341180b3866e2b61b5084cb899beb68a4db7c328c29bda5efb9207671b5cb0bc6de44e - languageName: node - linkType: hard - -"socket.io-parser@npm:~4.2.4": - version: 4.2.4 - resolution: "socket.io-parser@npm:4.2.4" - dependencies: - "@socket.io/component-emitter": "npm:~3.1.0" - debug: "npm:~4.3.1" - checksum: 10c0/9383b30358fde4a801ea4ec5e6860915c0389a091321f1c1f41506618b5cf7cd685d0a31c587467a0c4ee99ef98c2b99fb87911f9dfb329716c43b587f29ca48 - languageName: node - linkType: hard - -"socket.io@npm:^4.7.2": - version: 4.7.5 - resolution: "socket.io@npm:4.7.5" - dependencies: - accepts: "npm:~1.3.4" - base64id: "npm:~2.0.0" - cors: "npm:~2.8.5" - debug: "npm:~4.3.2" - engine.io: "npm:~6.5.2" - socket.io-adapter: "npm:~2.5.2" - socket.io-parser: "npm:~4.2.4" - checksum: 10c0/221a2cd25f6077d6672cb8b19921336e1acf06788d4bade74953dc96dbfd8b788a5f721b051341a34ee81ef8e1b2028d39ad5257516776400a3f8f3f01255c5e - languageName: node - linkType: hard - "sockjs@npm:^0.3.24": version: 0.3.24 resolution: "sockjs@npm:0.3.24" @@ -15059,7 +15549,7 @@ __metadata: languageName: node linkType: hard -"socks-proxy-agent@npm:^8.0.3": +"socks-proxy-agent@npm:^8.0.1, socks-proxy-agent@npm:^8.0.2, socks-proxy-agent@npm:^8.0.3, socks-proxy-agent@npm:^8.0.4": version: 8.0.4 resolution: "socks-proxy-agent@npm:8.0.4" dependencies: @@ -15087,7 +15577,7 @@ __metadata: languageName: node linkType: hard -"source-map-js@npm:^1.2.0": +"source-map-js@npm:>=0.6.2 <2.0.0, source-map-js@npm:^1.2.0": version: 1.2.0 resolution: "source-map-js@npm:1.2.0" checksum: 10c0/7e5f896ac10a3a50fe2898e5009c58ff0dc102dcb056ed27a354623a0ece8954d4b2649e1a1b2b52ef2e161d26f8859c7710350930751640e71e374fe2d321a4 @@ -15124,7 +15614,7 @@ __metadata: languageName: node linkType: hard -"source-map@npm:^0.5.6, source-map@npm:^0.5.7, source-map@npm:~0.5.1": +"source-map@npm:^0.5.6, source-map@npm:~0.5.1": version: 0.5.7 resolution: "source-map@npm:0.5.7" checksum: 10c0/904e767bb9c494929be013017380cbba013637da1b28e5943b566031e29df04fba57edf3f093e0914be094648b577372bd8ad247fa98cfba9c600794cd16b599 @@ -15145,6 +15635,13 @@ __metadata: languageName: node linkType: hard +"spacetrim@npm:0.11.36": + version: 0.11.36 + resolution: "spacetrim@npm:0.11.36" + checksum: 10c0/40ddee97393442691a0e4031f07805ac3faade964f26e33ba109524051466a4b141fa0a787f8fde6a7abff987ff02078fb6ca1dfdfa320e25c02c469e6ad6de4 + languageName: node + linkType: hard + "spawn-error-forwarder@npm:~1.0.0": version: 1.0.0 resolution: "spawn-error-forwarder@npm:1.0.0" @@ -15232,7 +15729,7 @@ __metadata: languageName: node linkType: hard -"split2@npm:^4.0.0": +"split2@npm:^4.0.0, split2@npm:^4.2.0": version: 4.2.0 resolution: "split2@npm:4.2.0" checksum: 10c0/b292beb8ce9215f8c642bb68be6249c5a4c7f332fc8ecadae7be5cbdf1ea95addc95f0459ef2e7ad9d45fd1064698a097e4eb211c83e772b49bc0ee423e91534 @@ -15326,6 +15823,13 @@ __metadata: languageName: node linkType: hard +"stackback@npm:0.0.2": + version: 0.0.2 + resolution: "stackback@npm:0.0.2" + checksum: 10c0/89a1416668f950236dd5ac9f9a6b2588e1b9b62b1b6ad8dff1bfc5d1a15dbf0aafc9b52d2226d00c28dffff212da464eaeebfc6b7578b9d180cef3e3782c5983 + languageName: node + linkType: hard + "static-extend@npm:^0.1.1": version: 0.1.2 resolution: "static-extend@npm:0.1.2" @@ -15336,14 +15840,14 @@ __metadata: languageName: node linkType: hard -"statuses@npm:2.0.1": +"statuses@npm:2.0.1, statuses@npm:^2.0.1": version: 2.0.1 resolution: "statuses@npm:2.0.1" checksum: 10c0/34378b207a1620a24804ce8b5d230fea0c279f00b18a7209646d5d47e419d1cc23e7cbf33a25a1e51ac38973dc2ac2e1e9c647a8e481ef365f77668d72becfd0 languageName: node linkType: hard -"statuses@npm:>= 1.4.0 < 2, statuses@npm:~1.5.0": +"statuses@npm:>= 1.4.0 < 2": version: 1.5.0 resolution: "statuses@npm:1.5.0" checksum: 10c0/e433900956357b3efd79b1c547da4d291799ac836960c016d10a98f6a810b1b5c0dcc13b5a7aa609a58239b5190e1ea176ad9221c2157d2fd1c747393e6b2940 @@ -15416,14 +15920,25 @@ __metadata: languageName: node linkType: hard -"streamroller@npm:^3.1.5": - version: 3.1.5 - resolution: "streamroller@npm:3.1.5" +"streamx@npm:^2.15.0, streamx@npm:^2.18.0": + version: 2.18.0 + resolution: "streamx@npm:2.18.0" dependencies: - date-format: "npm:^4.0.14" - debug: "npm:^4.3.4" - fs-extra: "npm:^8.1.0" - checksum: 10c0/0bdeec34ad37487d959ba908f17067c938f544db88b5bb1669497a67a6b676413229ce5a6145c2812d06959ebeb8842e751076647d4b323ca06be612963b9099 + bare-events: "npm:^2.2.0" + fast-fifo: "npm:^1.3.2" + queue-tick: "npm:^1.0.1" + text-decoder: "npm:^1.1.0" + dependenciesMeta: + bare-events: + optional: true + checksum: 10c0/ef50f419252a73dd35abcde72329eafbf5ad9cd2e27f0cc3abebeff6e0dbea124ac6d3e16acbdf081cce41b4125393ac22f9848fcfa19e640830734883e622ba + languageName: node + linkType: hard + +"strict-event-emitter@npm:^0.5.1": + version: 0.5.1 + resolution: "strict-event-emitter@npm:0.5.1" + checksum: 10c0/f5228a6e6b6393c57f52f62e673cfe3be3294b35d6f7842fc24b172ae0a6e6c209fa83241d0e433fc267c503bc2f4ffdbe41a9990ff8ffd5ac425ec0489417f7 languageName: node linkType: hard @@ -15457,27 +15972,6 @@ __metadata: languageName: node linkType: hard -"string-width@npm:^2.1.0": - version: 2.1.1 - resolution: "string-width@npm:2.1.1" - dependencies: - is-fullwidth-code-point: "npm:^2.0.0" - strip-ansi: "npm:^4.0.0" - checksum: 10c0/e5f2b169fcf8a4257a399f95d069522f056e92ec97dbdcb9b0cdf14d688b7ca0b1b1439a1c7b9773cd79446cbafd582727279d6bfdd9f8edd306ea5e90e5b610 - languageName: node - linkType: hard - -"string-width@npm:^3.0.0": - version: 3.1.0 - resolution: "string-width@npm:3.1.0" - dependencies: - emoji-regex: "npm:^7.0.1" - is-fullwidth-code-point: "npm:^2.0.0" - strip-ansi: "npm:^5.1.0" - checksum: 10c0/85fa0d4f106e7999bb68c1c640c76fa69fb8c069dab75b009e29c123914e2d3b532e6cfa4b9d1bd913176fc83dedd7a2d7bf40d21a81a8a1978432cedfb65b91 - languageName: node - linkType: hard - "string-width@npm:^5.0.1, string-width@npm:^5.1.2": version: 5.1.2 resolution: "string-width@npm:5.1.2" @@ -15534,7 +16028,7 @@ __metadata: languageName: node linkType: hard -"string_decoder@npm:^1.0.0, string_decoder@npm:^1.1.1": +"string_decoder@npm:^1.0.0, string_decoder@npm:^1.1.1, string_decoder@npm:^1.3.0": version: 1.3.0 resolution: "string_decoder@npm:1.3.0" dependencies: @@ -15561,33 +16055,6 @@ __metadata: languageName: node linkType: hard -"strip-ansi@npm:^3.0.0": - version: 3.0.1 - resolution: "strip-ansi@npm:3.0.1" - dependencies: - ansi-regex: "npm:^2.0.0" - checksum: 10c0/f6e7fbe8e700105dccf7102eae20e4f03477537c74b286fd22cfc970f139002ed6f0d9c10d0e21aa9ed9245e0fa3c9275930e8795c5b947da136e4ecb644a70f - languageName: node - linkType: hard - -"strip-ansi@npm:^4.0.0": - version: 4.0.0 - resolution: "strip-ansi@npm:4.0.0" - dependencies: - ansi-regex: "npm:^3.0.0" - checksum: 10c0/d75d9681e0637ea316ddbd7d4d3be010b1895a17e885155e0ed6a39755ae0fd7ef46e14b22162e66a62db122d3a98ab7917794e255532ab461bb0a04feb03e7d - languageName: node - linkType: hard - -"strip-ansi@npm:^5.0.0, strip-ansi@npm:^5.1.0": - version: 5.2.0 - resolution: "strip-ansi@npm:5.2.0" - dependencies: - ansi-regex: "npm:^4.1.0" - checksum: 10c0/de4658c8a097ce3b15955bc6008f67c0790f85748bdc025b7bc8c52c7aee94bc4f9e50624516150ed173c3db72d851826cd57e7a85fe4e4bb6dbbebd5d297fdf - languageName: node - linkType: hard - "strip-ansi@npm:^7.0.1, strip-ansi@npm:^7.1.0": version: 7.1.0 resolution: "strip-ansi@npm:7.1.0" @@ -15634,13 +16101,6 @@ __metadata: languageName: node linkType: hard -"strip-json-comments@npm:^2.0.1, strip-json-comments@npm:~2.0.1": - version: 2.0.1 - resolution: "strip-json-comments@npm:2.0.1" - checksum: 10c0/b509231cbdee45064ff4f9fd73609e2bcc4e84a4d508e9dd0f31f70356473fde18abfb5838c17d56fb236f5a06b102ef115438de0600b749e818a35fbbc48c43 - languageName: node - linkType: hard - "strip-json-comments@npm:^3.1.0, strip-json-comments@npm:^3.1.1": version: 3.1.1 resolution: "strip-json-comments@npm:3.1.1" @@ -15648,6 +16108,13 @@ __metadata: languageName: node linkType: hard +"strip-json-comments@npm:~2.0.1": + version: 2.0.1 + resolution: "strip-json-comments@npm:2.0.1" + checksum: 10c0/b509231cbdee45064ff4f9fd73609e2bcc4e84a4d508e9dd0f31f70356473fde18abfb5838c17d56fb236f5a06b102ef115438de0600b749e818a35fbbc48c43 + languageName: node + linkType: hard + "style-loader@npm:^4.0.0": version: 4.0.0 resolution: "style-loader@npm:4.0.0" @@ -15667,13 +16134,6 @@ __metadata: languageName: node linkType: hard -"supports-color@npm:^2.0.0": - version: 2.0.0 - resolution: "supports-color@npm:2.0.0" - checksum: 10c0/570e0b63be36cccdd25186350a6cb2eaad332a95ff162fa06d9499982315f2fe4217e69dd98e862fbcd9c81eaff300a825a1fe7bf5cc752e5b84dfed042b0dda - languageName: node - linkType: hard - "supports-color@npm:^5.3.0": version: 5.5.0 resolution: "supports-color@npm:5.5.0" @@ -15692,7 +16152,7 @@ __metadata: languageName: node linkType: hard -"supports-color@npm:^8.0.0, supports-color@npm:^8.1.1": +"supports-color@npm:^8.0.0": version: 8.1.1 resolution: "supports-color@npm:8.1.1" dependencies: @@ -15735,25 +16195,6 @@ __metadata: languageName: node linkType: hard -"table@npm:^5.2.3": - version: 5.4.6 - resolution: "table@npm:5.4.6" - dependencies: - ajv: "npm:^6.10.2" - lodash: "npm:^4.17.14" - slice-ansi: "npm:^2.1.0" - string-width: "npm:^3.0.0" - checksum: 10c0/87ad7b7cc926aa06e0e2a91a0fb4fcb8b365da87969bc5c74b54cae5d518a089245f44bf80f945ec1aa74c405782db15eeb1dd1926315d842cdc9dbb9371672e - languageName: node - linkType: hard - -"taffydb@npm:^2.7.3": - version: 2.7.3 - resolution: "taffydb@npm:2.7.3" - checksum: 10c0/4c0f6f2818491ed560553f12c06a49ee43fd40d504fc95b24e61e07d70496f34428ec638457e5738e9b0416b06fc67ebcf920c5b46e442834a9c20b95841dd55 - languageName: node - linkType: hard - "tapable@npm:^1.0.0, tapable@npm:^1.1.3": version: 1.1.3 resolution: "tapable@npm:1.1.3" @@ -15768,6 +16209,45 @@ __metadata: languageName: node linkType: hard +"tar-fs@npm:3.0.4": + version: 3.0.4 + resolution: "tar-fs@npm:3.0.4" + dependencies: + mkdirp-classic: "npm:^0.5.2" + pump: "npm:^3.0.0" + tar-stream: "npm:^3.1.5" + checksum: 10c0/120f026d891e5b4f7147a5ae5816e3a9b7f2c5b4ca61714dab3fe1244961607dccca40c11cafc584e625838c57d1308da5bb28b13d70b85ab566bc4c9f1c88b1 + languageName: node + linkType: hard + +"tar-fs@npm:^3.0.6": + version: 3.0.6 + resolution: "tar-fs@npm:3.0.6" + dependencies: + bare-fs: "npm:^2.1.1" + bare-path: "npm:^2.1.0" + pump: "npm:^3.0.0" + tar-stream: "npm:^3.1.5" + dependenciesMeta: + bare-fs: + optional: true + bare-path: + optional: true + checksum: 10c0/207b7c0f193495668bd9dbad09a0108ce4ffcfec5bce2133f90988cdda5c81fad83c99f963d01e47b565196594f7a17dbd063ae55b97b36268fcc843975278ee + languageName: node + linkType: hard + +"tar-stream@npm:^3.0.0, tar-stream@npm:^3.1.5": + version: 3.1.7 + resolution: "tar-stream@npm:3.1.7" + dependencies: + b4a: "npm:^1.6.4" + fast-fifo: "npm:^1.2.0" + streamx: "npm:^2.15.0" + checksum: 10c0/a09199d21f8714bd729993ac49b6c8efcb808b544b89f23378ad6ffff6d1cb540878614ba9d4cfec11a64ef39e1a6f009a5398371491eb1fda606ffc7f70f718 + languageName: node + linkType: hard + "tar@npm:^6.0.2, tar@npm:^6.1.11, tar@npm:^6.1.2, tar@npm:^6.2.1": version: 6.2.1 resolution: "tar@npm:6.2.1" @@ -15880,6 +16360,26 @@ __metadata: languageName: node linkType: hard +"test-exclude@npm:^7.0.1": + version: 7.0.1 + resolution: "test-exclude@npm:7.0.1" + dependencies: + "@istanbuljs/schema": "npm:^0.1.2" + glob: "npm:^10.4.1" + minimatch: "npm:^9.0.4" + checksum: 10c0/6d67b9af4336a2e12b26a68c83308c7863534c65f27ed4ff7068a56f5a58f7ac703e8fc80f698a19bb154fd8f705cdf7ec347d9512b2c522c737269507e7b263 + languageName: node + linkType: hard + +"text-decoder@npm:^1.1.0": + version: 1.1.1 + resolution: "text-decoder@npm:1.1.1" + dependencies: + b4a: "npm:^1.6.4" + checksum: 10c0/e527d05454b59c0fa77456495de68c88e560a122de3dd28b3ebdbf81828aabeaa7e9bb8054b9eb52bc5029ccb5899ad04f466cbba3c53b2685270599d1710cee + languageName: node + linkType: hard + "text-extensions@npm:^2.0.0": version: 2.4.0 resolution: "text-extensions@npm:2.4.0" @@ -15931,7 +16431,7 @@ __metadata: languageName: node linkType: hard -"through@npm:>=2.2.7 <3, through@npm:^2.3.6": +"through@npm:>=2.2.7 <3, through@npm:^2.3.8": version: 2.3.8 resolution: "through@npm:2.3.8" checksum: 10c0/4b09f3774099de0d4df26d95c5821a62faee32c7e96fb1f4ebd54a2d7c11c57fe88b0a0d49cf375de5fee5ae6bf4eb56dbbf29d07366864e2ee805349970d3cc @@ -15970,19 +16470,31 @@ __metadata: languageName: node linkType: hard -"tmp@npm:^0.0.33": - version: 0.0.33 - resolution: "tmp@npm:0.0.33" - dependencies: - os-tmpdir: "npm:~1.0.2" - checksum: 10c0/69863947b8c29cabad43fe0ce65cec5bb4b481d15d4b4b21e036b060b3edbf3bc7a5541de1bacb437bb3f7c4538f669752627fdf9b4aaf034cebd172ba373408 +"tinybench@npm:^2.8.0": + version: 2.8.0 + resolution: "tinybench@npm:2.8.0" + checksum: 10c0/5a9a642351fa3e4955e0cbf38f5674be5f3ba6730fd872fd23a5c953ad6c914234d5aba6ea41ef88820180a81829ceece5bd8d3967c490c5171bca1141c2f24d languageName: node linkType: hard -"tmp@npm:^0.2.1": - version: 0.2.3 - resolution: "tmp@npm:0.2.3" - checksum: 10c0/3e809d9c2f46817475b452725c2aaa5d11985cf18d32a7a970ff25b568438e2c076c2e8609224feef3b7923fa9749b74428e3e634f6b8e520c534eef2fd24125 +"tinypool@npm:^1.0.0": + version: 1.0.0 + resolution: "tinypool@npm:1.0.0" + checksum: 10c0/71b20b9c54366393831c286a0772380c20f8cad9546d724c484edb47aea3228f274c58e98cf51d28c40869b39f5273209ef3ea94a9d2a23f8b292f4731cd3e4e + languageName: node + linkType: hard + +"tinyrainbow@npm:^1.2.0": + version: 1.2.0 + resolution: "tinyrainbow@npm:1.2.0" + checksum: 10c0/7f78a4b997e5ba0f5ecb75e7ed786f30bab9063716e7dff24dd84013fb338802e43d176cb21ed12480561f5649a82184cf31efb296601a29d38145b1cdb4c192 + languageName: node + linkType: hard + +"tinyspy@npm:^3.0.0": + version: 3.0.0 + resolution: "tinyspy@npm:3.0.0" + checksum: 10c0/eb0dec264aa5370efd3d29743825eb115ed7f1ef8a72a431e9a75d5c9e7d67e99d04b0d61d86b8cd70c79ec27863f241ad0317bc453f78762e0cbd76d2c332d0 languageName: node linkType: hard @@ -16068,6 +16580,18 @@ __metadata: languageName: node linkType: hard +"tough-cookie@npm:^4.1.4": + version: 4.1.4 + resolution: "tough-cookie@npm:4.1.4" + dependencies: + psl: "npm:^1.1.33" + punycode: "npm:^2.1.1" + universalify: "npm:^0.2.0" + url-parse: "npm:^1.5.3" + checksum: 10c0/aca7ff96054f367d53d1e813e62ceb7dd2eda25d7752058a74d64b7266fd07be75908f3753a32ccf866a2f997604b414cfb1916d6e7f69bc64d9d9939b0d6c45 + languageName: node + linkType: hard + "tough-cookie@npm:~2.5.0": version: 2.5.0 resolution: "tough-cookie@npm:2.5.0" @@ -16078,6 +16602,13 @@ __metadata: languageName: node linkType: hard +"tr46@npm:~0.0.3": + version: 0.0.3 + resolution: "tr46@npm:0.0.3" + checksum: 10c0/047cb209a6b60c742f05c9d3ace8fa510bff609995c129a37ace03476a9b12db4dbf975e74600830ef0796e18882b2381fb5fb1f6b4f96b832c374de3ab91a11 + languageName: node + linkType: hard + "traverse@npm:0.6.8": version: 0.6.8 resolution: "traverse@npm:0.6.8" @@ -16108,13 +16639,6 @@ __metadata: languageName: node linkType: hard -"trim-right@npm:^1.0.1": - version: 1.0.1 - resolution: "trim-right@npm:1.0.1" - checksum: 10c0/71989ec179c6b42a56e03db68e60190baabf39d32d4e1252fa1501c4e478398ae29d7191beffe015b9d9dc76f04f4b3a946bdb9949ad6b0c0b0c5db65f3eb672 - languageName: node - linkType: hard - "true-case-path@npm:^2.2.1": version: 2.2.1 resolution: "true-case-path@npm:2.2.1" @@ -16150,13 +16674,6 @@ __metadata: languageName: node linkType: hard -"tslib@npm:^1.9.0": - version: 1.14.1 - resolution: "tslib@npm:1.14.1" - checksum: 10c0/69ae09c49eea644bc5ebe1bca4fa4cc2c82b7b3e02f43b84bd891504edf66dbc6b2ec0eef31a957042de2269139e4acff911e6d186a258fb14069cd7f6febce2 - languageName: node - linkType: hard - "tslib@npm:^2.0.0, tslib@npm:^2.0.1, tslib@npm:^2.6.2, tslib@npm:^2.6.3": version: 2.6.3 resolution: "tslib@npm:2.6.3" @@ -16207,22 +16724,20 @@ __metadata: languageName: node linkType: hard -"type-check@npm:~0.3.2": - version: 0.3.2 - resolution: "type-check@npm:0.3.2" - dependencies: - prelude-ls: "npm:~1.1.2" - checksum: 10c0/776217116b2b4e50e368c7ee0c22c0a85e982881c16965b90d52f216bc296d6a52ef74f9202d22158caacc092a7645b0b8d5fe529a96e3fe35d0fb393966c875 - languageName: node - linkType: hard - -"type-detect@npm:4.0.8, type-detect@npm:^4.0.0, type-detect@npm:^4.0.8": +"type-detect@npm:4.0.8, type-detect@npm:^4.0.8": version: 4.0.8 resolution: "type-detect@npm:4.0.8" checksum: 10c0/8fb9a51d3f365a7de84ab7f73b653534b61b622aa6800aecdb0f1095a4a646d3f5eb295322127b6573db7982afcd40ab492d038cf825a42093a58b1e1353e0bd languageName: node linkType: hard +"type-fest@npm:2.13.0": + version: 2.13.0 + resolution: "type-fest@npm:2.13.0" + checksum: 10c0/8746231e055ed9298b09fe1f1b14f37438f69acf3f1bf5fc2d203d0279c381b69413375a5b71d03641c71fccce0527d38e842f661f3246b6b48f96ff7d2afe90 + languageName: node + linkType: hard + "type-fest@npm:^0.18.0": version: 0.18.1 resolution: "type-fest@npm:0.18.1" @@ -16265,7 +16780,7 @@ __metadata: languageName: node linkType: hard -"type-fest@npm:^4.6.0, type-fest@npm:^4.7.1": +"type-fest@npm:^4.6.0, type-fest@npm:^4.7.1, type-fest@npm:^4.9.0": version: 4.23.0 resolution: "type-fest@npm:4.23.0" checksum: 10c0/c42bb14e99329ab37983d1f188e307bf0cc705a23807d9b2268d8fb2ae781d610ac6e2058dde8f9ea2b1b8ddc77ceb578d157fa81f69f8f70aef1d42fb002996 @@ -16348,19 +16863,19 @@ __metadata: languageName: node linkType: hard -"typescript-eslint@npm:^7.17.0": - version: 7.17.0 - resolution: "typescript-eslint@npm:7.17.0" +"typescript-eslint@npm:^7.18.0": + version: 7.18.0 + resolution: "typescript-eslint@npm:7.18.0" dependencies: - "@typescript-eslint/eslint-plugin": "npm:7.17.0" - "@typescript-eslint/parser": "npm:7.17.0" - "@typescript-eslint/utils": "npm:7.17.0" + "@typescript-eslint/eslint-plugin": "npm:7.18.0" + "@typescript-eslint/parser": "npm:7.18.0" + "@typescript-eslint/utils": "npm:7.18.0" peerDependencies: eslint: ^8.56.0 peerDependenciesMeta: typescript: optional: true - checksum: 10c0/5d9a5430b139129474cd65655ef05efeddfbd890a3ff28c1dd3b747cf48c938cf18e95b3cbbb4a7f8bf991c6c2de5e82f685768c2e7d691629a404a178672a13 + checksum: 10c0/610c0faa70b9be89255086378c7ef69e979115c89be69851fb4d69e76907b3520450b162a8adee56b32dbf368f8c14c1fac88065539012140c1319851f2676da languageName: node linkType: hard @@ -16424,13 +16939,6 @@ __metadata: languageName: node linkType: hard -"ua-parser-js@npm:^0.7.30": - version: 0.7.38 - resolution: "ua-parser-js@npm:0.7.38" - checksum: 10c0/da963eae1618f0c60d0812851a4d478fb8bb127ee6e5c566b8dac27eeb25757d818d9ade2c312d73018f2bb3c3e629d26c066fcda3cb9d55a31289c9566198df - languageName: node - linkType: hard - "uc.micro@npm:^2.0.0, uc.micro@npm:^2.1.0": version: 2.1.0 resolution: "uc.micro@npm:2.1.0" @@ -16482,6 +16990,16 @@ __metadata: languageName: node linkType: hard +"unbzip2-stream@npm:1.4.3": + version: 1.4.3 + resolution: "unbzip2-stream@npm:1.4.3" + dependencies: + buffer: "npm:^5.2.1" + through: "npm:^2.3.8" + checksum: 10c0/2ea2048f3c9db3499316ccc1d95ff757017ccb6f46c812d7c42466247e3b863fb178864267482f7f178254214247779daf68e85f50bd7736c3c97ba2d58b910a + languageName: node + linkType: hard + "underscore@npm:^1.13.2, underscore@npm:~1.13.2": version: 1.13.6 resolution: "underscore@npm:1.13.6" @@ -16496,6 +17014,13 @@ __metadata: languageName: node linkType: hard +"undici-types@npm:~6.11.1": + version: 6.11.1 + resolution: "undici-types@npm:6.11.1" + checksum: 10c0/d8f5739a8e6c779d72336c82deb49c56d5ac9f9f6e0eb2e8dd4d3f6929ae9db7cde370d2e46516fe6cad04ea53e790c5e16c4c75eed7cd0f9bd31b0763bb2fa3 + languageName: node + linkType: hard + "unicode-emoji-modifier-base@npm:^1.0.0": version: 1.0.0 resolution: "unicode-emoji-modifier-base@npm:1.0.0" @@ -16592,10 +17117,10 @@ __metadata: languageName: node linkType: hard -"universalify@npm:^0.1.0": - version: 0.1.2 - resolution: "universalify@npm:0.1.2" - checksum: 10c0/e70e0339f6b36f34c9816f6bf9662372bd241714dc77508d231d08386d94f2c4aa1ba1318614f92015f40d45aae1b9075cd30bd490efbe39387b60a76ca3f045 +"universalify@npm:^0.2.0": + version: 0.2.0 + resolution: "universalify@npm:0.2.0" + checksum: 10c0/cedbe4d4ca3967edf24c0800cfc161c5a15e240dac28e3ce575c689abc11f2c81ccc6532c8752af3b40f9120fb5e454abecd359e164f4f6aa44c29cd37e194fe languageName: node linkType: hard @@ -16674,6 +17199,16 @@ __metadata: languageName: node linkType: hard +"url-parse@npm:^1.5.3": + version: 1.5.10 + resolution: "url-parse@npm:1.5.10" + dependencies: + querystringify: "npm:^2.1.1" + requires-port: "npm:^1.0.0" + checksum: 10c0/bd5aa9389f896974beb851c112f63b466505a04b4807cea2e5a3b7092f6fbb75316f0491ea84e44f66fed55f1b440df5195d7e3a8203f64fcefa19d182f5be87 + languageName: node + linkType: hard + "url@npm:^0.11.0": version: 0.11.3 resolution: "url@npm:0.11.3" @@ -16691,6 +17226,13 @@ __metadata: languageName: node linkType: hard +"userhome@npm:1.0.0": + version: 1.0.0 + resolution: "userhome@npm:1.0.0" + checksum: 10c0/0f86ed3dd436ddfed38be9b8898a5e00d55c713c1443b5354de9c8440f63b744188f5d9e4a46686cfcd00117957c863ce4230b44fa3d5997d5e6e80264d0abb4 + languageName: node + linkType: hard + "util-deprecate@npm:^1.0.1, util-deprecate@npm:^1.0.2, util-deprecate@npm:~1.0.1": version: 1.0.2 resolution: "util-deprecate@npm:1.0.2" @@ -16769,7 +17311,7 @@ __metadata: languageName: node linkType: hard -"vary@npm:^1, vary@npm:~1.1.2": +"vary@npm:~1.1.2": version: 1.1.2 resolution: "vary@npm:1.1.2" checksum: 10c0/f15d588d79f3675135ba783c91a4083dcd290a2a5be9fcb6514220a1634e23df116847b1cc51f66bfb0644cf9353b2abb7815ae499bab06e46dd33c1a6bf1f4f @@ -16787,6 +17329,110 @@ __metadata: languageName: node linkType: hard +"vite-node@npm:2.0.5": + version: 2.0.5 + resolution: "vite-node@npm:2.0.5" + dependencies: + cac: "npm:^6.7.14" + debug: "npm:^4.3.5" + pathe: "npm:^1.1.2" + tinyrainbow: "npm:^1.2.0" + vite: "npm:^5.0.0" + bin: + vite-node: vite-node.mjs + checksum: 10c0/affcc58ae8d45bce3e8bc3b5767acd57c24441634e2cd967cf97f4e5ed2bcead1714b60150cdf7ee153ebad47659c5cd419883207e1a95b69790331e3243749f + languageName: node + linkType: hard + +"vite@npm:^5.0.0": + version: 5.3.5 + resolution: "vite@npm:5.3.5" + dependencies: + esbuild: "npm:^0.21.3" + fsevents: "npm:~2.3.3" + postcss: "npm:^8.4.39" + rollup: "npm:^4.13.0" + peerDependencies: + "@types/node": ^18.0.0 || >=20.0.0 + less: "*" + lightningcss: ^1.21.0 + sass: "*" + stylus: "*" + sugarss: "*" + terser: ^5.4.0 + dependenciesMeta: + fsevents: + optional: true + peerDependenciesMeta: + "@types/node": + optional: true + less: + optional: true + lightningcss: + optional: true + sass: + optional: true + stylus: + optional: true + sugarss: + optional: true + terser: + optional: true + bin: + vite: bin/vite.js + checksum: 10c0/795c7e0dbc94b96c4a0aff0d5d4b349dd28ad8b7b70979c1010f96b4d83f7d6c1700ebd6fed91de2e021b0a3689b9abc2d8017f6dfa8c9a6ca5c7af637d6afc6 + languageName: node + linkType: hard + +"vitest@npm:^2.0.5": + version: 2.0.5 + resolution: "vitest@npm:2.0.5" + dependencies: + "@ampproject/remapping": "npm:^2.3.0" + "@vitest/expect": "npm:2.0.5" + "@vitest/pretty-format": "npm:^2.0.5" + "@vitest/runner": "npm:2.0.5" + "@vitest/snapshot": "npm:2.0.5" + "@vitest/spy": "npm:2.0.5" + "@vitest/utils": "npm:2.0.5" + chai: "npm:^5.1.1" + debug: "npm:^4.3.5" + execa: "npm:^8.0.1" + magic-string: "npm:^0.30.10" + pathe: "npm:^1.1.2" + std-env: "npm:^3.7.0" + tinybench: "npm:^2.8.0" + tinypool: "npm:^1.0.0" + tinyrainbow: "npm:^1.2.0" + vite: "npm:^5.0.0" + vite-node: "npm:2.0.5" + why-is-node-running: "npm:^2.3.0" + peerDependencies: + "@edge-runtime/vm": "*" + "@types/node": ^18.0.0 || >=20.0.0 + "@vitest/browser": 2.0.5 + "@vitest/ui": 2.0.5 + 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 + bin: + vitest: vitest.mjs + checksum: 10c0/b4e6cca00816bf967a8589111ded72faa12f92f94ccdd0dcd0698ffcfdfc52ec662753f66b387549c600ac699b993fd952efbd99dc57fcf4d1c69a2f1022b259 + languageName: node + linkType: hard + "vm-browserify@npm:^1.0.1": version: 1.1.2 resolution: "vm-browserify@npm:1.1.2" @@ -16794,7 +17440,7 @@ __metadata: languageName: node linkType: hard -"void-elements@npm:^2.0.0, void-elements@npm:^2.0.1": +"void-elements@npm:^2.0.1": version: 2.0.1 resolution: "void-elements@npm:2.0.1" checksum: 10c0/23b4f35bbeabcaa5c87a9f638ae80862a9313dccbaa8973b0eada81dbe97488ae11baf4d8aa2846bc397d31456afdfd8d791bb44c542f83735e6d04af6996f4d @@ -16838,6 +17484,19 @@ __metadata: languageName: node linkType: hard +"wait-port@npm:^1.0.4": + version: 1.1.0 + resolution: "wait-port@npm:1.1.0" + dependencies: + chalk: "npm:^4.1.2" + commander: "npm:^9.3.0" + debug: "npm:^4.3.4" + bin: + wait-port: bin/wait-port.js + checksum: 10c0/1bf321c27ec31b71d2ddb16251bd9bdc3bcdb604a2f895ff780f53b1b97302a1823e4762d0c99954be9ada63d6d2a77e74928e06f11dcd01b9ed1f26eb60b353 + languageName: node + linkType: hard + "walk-up-path@npm:^3.0.1": version: 3.0.1 resolution: "walk-up-path@npm:3.0.1" @@ -16890,6 +17549,77 @@ __metadata: languageName: node linkType: hard +"web-streams-polyfill@npm:^3.0.3": + version: 3.3.3 + resolution: "web-streams-polyfill@npm:3.3.3" + checksum: 10c0/64e855c47f6c8330b5436147db1c75cb7e7474d924166800e8e2aab5eb6c76aac4981a84261dd2982b3e754490900b99791c80ae1407a9fa0dcff74f82ea3a7f + languageName: node + linkType: hard + +"webdriver@npm:8.39.0": + version: 8.39.0 + resolution: "webdriver@npm:8.39.0" + dependencies: + "@types/node": "npm:^20.1.0" + "@types/ws": "npm:^8.5.3" + "@wdio/config": "npm:8.39.0" + "@wdio/logger": "npm:8.38.0" + "@wdio/protocols": "npm:8.38.0" + "@wdio/types": "npm:8.39.0" + "@wdio/utils": "npm:8.39.0" + deepmerge-ts: "npm:^5.1.0" + got: "npm:^12.6.1" + ky: "npm:^0.33.0" + ws: "npm:^8.8.0" + checksum: 10c0/506dba119b7c88d3f81297c3c8f6b3bacaef9d8c8a0a298132dff53d5ac41ca0e22623d3b09906a4c1c94f7d8007c7a699451ab3cdb483a2781c33fa93b77d65 + languageName: node + linkType: hard + +"webdriverio@npm:^8.39.1": + version: 8.39.1 + resolution: "webdriverio@npm:8.39.1" + dependencies: + "@types/node": "npm:^20.1.0" + "@wdio/config": "npm:8.39.0" + "@wdio/logger": "npm:8.38.0" + "@wdio/protocols": "npm:8.38.0" + "@wdio/repl": "npm:8.24.12" + "@wdio/types": "npm:8.39.0" + "@wdio/utils": "npm:8.39.0" + archiver: "npm:^7.0.0" + aria-query: "npm:^5.0.0" + css-shorthand-properties: "npm:^1.1.1" + css-value: "npm:^0.0.1" + devtools-protocol: "npm:^0.0.1302984" + grapheme-splitter: "npm:^1.0.2" + import-meta-resolve: "npm:^4.0.0" + is-plain-obj: "npm:^4.1.0" + jszip: "npm:^3.10.1" + lodash.clonedeep: "npm:^4.5.0" + lodash.zip: "npm:^4.2.0" + minimatch: "npm:^9.0.0" + puppeteer-core: "npm:^20.9.0" + query-selector-shadow-dom: "npm:^1.0.0" + resq: "npm:^1.9.1" + rgb2hex: "npm:0.2.5" + serialize-error: "npm:^11.0.1" + webdriver: "npm:8.39.0" + peerDependencies: + devtools: ^8.14.0 + peerDependenciesMeta: + devtools: + optional: true + checksum: 10c0/f8bb06592228c3424348509a6cd46678ab0fd79769d662726a098ae2d0c4959674d9eeed0ab9bf61c8e584b4e79e12d44bb600dfbec4964bb31ab3c39c763a79 + languageName: node + linkType: hard + +"webidl-conversions@npm:^3.0.0": + version: 3.0.1 + resolution: "webidl-conversions@npm:3.0.1" + checksum: 10c0/5612d5f3e54760a797052eb4927f0ddc01383550f542ccd33d5238cfd65aeed392a45ad38364970d0a0f4fea32e1f4d231b3d8dac4a3bdd385e5cf802ae097db + languageName: node + linkType: hard + "webpack-bundle-analyzer@npm:^4.10.2": version: 4.10.2 resolution: "webpack-bundle-analyzer@npm:4.10.2" @@ -17033,15 +17763,6 @@ __metadata: languageName: node linkType: hard -"webpack-merge@npm:^4.1.5": - version: 4.2.2 - resolution: "webpack-merge@npm:4.2.2" - dependencies: - lodash: "npm:^4.17.15" - checksum: 10c0/283cb4ffe4d4ae6de23d595154868780126835ded241748da0b070c6cca6974c229493ac0b6b7160c2c92950c950c8e5edf036a192da78e32e22a9c81593ad16 - languageName: node - linkType: hard - "webpack-merge@npm:^5.7.3": version: 5.10.0 resolution: "webpack-merge@npm:5.10.0" @@ -17192,6 +17913,16 @@ __metadata: languageName: node linkType: hard +"whatwg-url@npm:^5.0.0": + version: 5.0.0 + resolution: "whatwg-url@npm:5.0.0" + dependencies: + tr46: "npm:~0.0.3" + webidl-conversions: "npm:^3.0.0" + checksum: 10c0/1588bed84d10b72d5eec1d0faa0722ba1962f1821e7539c535558fb5398d223b0c50d8acab950b8c488b4ba69043fd833cc2697056b167d8ad46fac3995a55d5 + languageName: node + linkType: hard + "which-boxed-primitive@npm:^1.0.2": version: 1.0.2 resolution: "which-boxed-primitive@npm:1.0.2" @@ -17218,17 +17949,6 @@ __metadata: languageName: node linkType: hard -"which@npm:^1.2.1, which@npm:^1.2.9": - version: 1.3.1 - resolution: "which@npm:1.3.1" - dependencies: - isexe: "npm:^2.0.0" - bin: - which: ./bin/which - checksum: 10c0/e945a8b6bbf6821aaaef7f6e0c309d4b615ef35699576d5489b4261da9539f70393c6b2ce700ee4321c18f914ebe5644bc4631b15466ffbaad37d83151f6af59 - languageName: node - linkType: hard - "which@npm:^2.0.1, which@npm:^2.0.2": version: 2.0.2 resolution: "which@npm:2.0.2" @@ -17251,6 +17971,18 @@ __metadata: languageName: node linkType: hard +"why-is-node-running@npm:^2.3.0": + version: 2.3.0 + resolution: "why-is-node-running@npm:2.3.0" + dependencies: + siginfo: "npm:^2.0.0" + stackback: "npm:0.0.2" + bin: + why-is-node-running: cli.js + checksum: 10c0/1cde0b01b827d2cf4cb11db962f3958b9175d5d9e7ac7361d1a7b0e2dc6069a263e69118bd974c4f6d0a890ef4eedfe34cf3d5167ec14203dbc9a18620537054 + languageName: node + linkType: hard + "wide-align@npm:^1.1.5": version: 1.1.5 resolution: "wide-align@npm:1.1.5" @@ -17307,7 +18039,7 @@ __metadata: languageName: node linkType: hard -"word-wrap@npm:^1.2.5, word-wrap@npm:~1.2.3": +"word-wrap@npm:^1.2.5": version: 1.2.5 resolution: "word-wrap@npm:1.2.5" checksum: 10c0/e0e4a1ca27599c92a6ca4c32260e8a92e8a44f4ef6ef93f803f8ed823f486e0889fc0b93be4db59c8d51b3064951d25e43d434e95dc8c960cc3a63d65d00ba20 @@ -17337,13 +18069,6 @@ __metadata: languageName: node linkType: hard -"workerpool@npm:^6.5.1": - version: 6.5.1 - resolution: "workerpool@npm:6.5.1" - checksum: 10c0/58e8e969782292cb3a7bfba823f1179a7615250a0cefb4841d5166234db1880a3d0fe83a31dd8d648329ec92c2d0cd1890ad9ec9e53674bb36ca43e9753cdeac - languageName: node - linkType: hard - "wrap-ansi-cjs@npm:wrap-ansi@^7.0.0, wrap-ansi@npm:^7.0.0": version: 7.0.0 resolution: "wrap-ansi@npm:7.0.0" @@ -17355,6 +18080,17 @@ __metadata: languageName: node linkType: hard +"wrap-ansi@npm:^6.2.0": + version: 6.2.0 + resolution: "wrap-ansi@npm:6.2.0" + dependencies: + ansi-styles: "npm:^4.0.0" + string-width: "npm:^4.1.0" + strip-ansi: "npm:^6.0.0" + checksum: 10c0/baad244e6e33335ea24e86e51868fe6823626e3a3c88d9a6674642afff1d34d9a154c917e74af8d845fd25d170c4ea9cf69a47133c3f3656e1252b3d462d9f6c + languageName: node + linkType: hard + "wrap-ansi@npm:^8.1.0": version: 8.1.0 resolution: "wrap-ansi@npm:8.1.0" @@ -17420,12 +18156,18 @@ __metadata: languageName: node linkType: hard -"write@npm:1.0.3": - version: 1.0.3 - resolution: "write@npm:1.0.3" - dependencies: - mkdirp: "npm:^0.5.1" - checksum: 10c0/2ab5472e32ce2d25279a9d22365c5dd5b95fe40497ca43fa329aa61687fca56e36837615a1b6adfc4ca540389383185680a23497d75a1698b1dcbb52741d29a4 +"ws@npm:8.13.0": + version: 8.13.0 + resolution: "ws@npm:8.13.0" + peerDependencies: + bufferutil: ^4.0.1 + utf-8-validate: ">=5.0.2" + peerDependenciesMeta: + bufferutil: + optional: true + utf-8-validate: + optional: true + checksum: 10c0/579817dbbab3ee46669129c220cfd81ba6cdb9ab5c3e9a105702dd045743c4ab72e33bb384573827c0c481213417cc880e41bc097e0fc541a0b79fa3eb38207d languageName: node linkType: hard @@ -17444,7 +18186,7 @@ __metadata: languageName: node linkType: hard -"ws@npm:^8.16.0": +"ws@npm:^8.16.0, ws@npm:^8.18.0, ws@npm:^8.8.0": version: 8.18.0 resolution: "ws@npm:8.18.0" peerDependencies: @@ -17459,21 +18201,6 @@ __metadata: languageName: node linkType: hard -"ws@npm:~8.17.1": - version: 8.17.1 - resolution: "ws@npm:8.17.1" - peerDependencies: - bufferutil: ^4.0.1 - utf-8-validate: ">=5.0.2" - peerDependenciesMeta: - bufferutil: - optional: true - utf-8-validate: - optional: true - checksum: 10c0/f4a49064afae4500be772abdc2211c8518f39e1c959640457dcee15d4488628620625c783902a52af2dd02f68558da2868fd06e6fd0e67ebcd09e6881b1b5bfe - languageName: node - linkType: hard - "xmlcreate@npm:^2.0.4": version: 2.0.4 resolution: "xmlcreate@npm:2.0.4" @@ -17546,34 +18273,22 @@ __metadata: languageName: node linkType: hard -"yargs-unparser@npm:^2.0.0": - version: 2.0.0 - resolution: "yargs-unparser@npm:2.0.0" - dependencies: - camelcase: "npm:^6.0.0" - decamelize: "npm:^4.0.0" - flat: "npm:^5.0.2" - is-plain-obj: "npm:^2.1.0" - checksum: 10c0/a5a7d6dc157efa95122e16780c019f40ed91d4af6d2bac066db8194ed0ec5c330abb115daa5a79ff07a9b80b8ea80c925baacf354c4c12edd878c0529927ff03 - languageName: node - linkType: hard - -"yargs@npm:^16.0.0, yargs@npm:^16.1.1, yargs@npm:^16.2.0": - version: 16.2.0 - resolution: "yargs@npm:16.2.0" +"yargs@npm:17.7.1": + version: 17.7.1 + resolution: "yargs@npm:17.7.1" dependencies: - cliui: "npm:^7.0.2" + cliui: "npm:^8.0.1" escalade: "npm:^3.1.1" get-caller-file: "npm:^2.0.5" require-directory: "npm:^2.1.1" - string-width: "npm:^4.2.0" + string-width: "npm:^4.2.3" y18n: "npm:^5.0.5" - yargs-parser: "npm:^20.2.2" - checksum: 10c0/b1dbfefa679848442454b60053a6c95d62f2d2e21dd28def92b647587f415969173c6e99a0f3bab4f1b67ee8283bf735ebe3544013f09491186ba9e8a9a2b651 + yargs-parser: "npm:^21.1.1" + checksum: 10c0/0ed3b7694d94da777f3591f1d786d947ed2e59b897da0a0c30e541109ae087979ac26b4ec39557f5e9c4592f19806447963fb132049b9806a1d416bcdd24d2b4 languageName: node linkType: hard -"yargs@npm:^17.0.0, yargs@npm:^17.2.1, yargs@npm:^17.5.1": +"yargs@npm:17.7.2, yargs@npm:^17.0.0, yargs@npm:^17.2.1, yargs@npm:^17.5.1, yargs@npm:^17.7.2": version: 17.7.2 resolution: "yargs@npm:17.7.2" dependencies: @@ -17588,6 +18303,21 @@ __metadata: languageName: node linkType: hard +"yargs@npm:^16.0.0, yargs@npm:^16.2.0": + version: 16.2.0 + resolution: "yargs@npm:16.2.0" + dependencies: + cliui: "npm:^7.0.2" + escalade: "npm:^3.1.1" + get-caller-file: "npm:^2.0.5" + require-directory: "npm:^2.1.1" + string-width: "npm:^4.2.0" + y18n: "npm:^5.0.5" + yargs-parser: "npm:^20.2.2" + checksum: 10c0/b1dbfefa679848442454b60053a6c95d62f2d2e21dd28def92b647587f415969173c6e99a0f3bab4f1b67ee8283bf735ebe3544013f09491186ba9e8a9a2b651 + languageName: node + linkType: hard + "yargs@npm:~3.10.0": version: 3.10.0 resolution: "yargs@npm:3.10.0" @@ -17600,6 +18330,16 @@ __metadata: languageName: node linkType: hard +"yauzl@npm:^2.10.0": + version: 2.10.0 + resolution: "yauzl@npm:2.10.0" + dependencies: + buffer-crc32: "npm:~0.2.3" + fd-slicer: "npm:~1.1.0" + checksum: 10c0/f265002af7541b9ec3589a27f5fb8f11cf348b53cc15e2751272e3c062cd73f3e715bc72d43257de71bbaecae446c3f1b14af7559e8ab0261625375541816422 + languageName: node + linkType: hard + "yocto-queue@npm:^0.1.0": version: 0.1.0 resolution: "yocto-queue@npm:0.1.0" @@ -17614,9 +18354,27 @@ __metadata: languageName: node linkType: hard +"yoctocolors-cjs@npm:^2.1.2": + version: 2.1.2 + resolution: "yoctocolors-cjs@npm:2.1.2" + checksum: 10c0/a0e36eb88fea2c7981eab22d1ba45e15d8d268626e6c4143305e2c1628fa17ebfaa40cd306161a8ce04c0a60ee0262058eab12567493d5eb1409780853454c6f + languageName: node + linkType: hard + "yoctocolors@npm:^2.0.0": version: 2.1.1 resolution: "yoctocolors@npm:2.1.1" checksum: 10c0/85903f7fa96f1c70badee94789fade709f9d83dab2ec92753d612d84fcea6d34c772337a9f8914c6bed2f5fc03a428ac5d893e76fab636da5f1236ab725486d0 languageName: node linkType: hard + +"zip-stream@npm:^6.0.1": + version: 6.0.1 + resolution: "zip-stream@npm:6.0.1" + dependencies: + archiver-utils: "npm:^5.0.0" + compress-commons: "npm:^6.0.2" + readable-stream: "npm:^4.0.0" + checksum: 10c0/50f2fb30327fb9d09879abf7ae2493705313adf403e794b030151aaae00009162419d60d0519e807673ec04d442e140c8879ca14314df0a0192de3b233e8f28b + languageName: node + linkType: hard