From c3ba4994f75f9caaae49bd1f88ff52e65e02c29dbec96dc899b5cf218f64db74 Mon Sep 17 00:00:00 2001 From: Adam Majer Date: Fri, 9 Aug 2024 11:35:58 +0000 Subject: [PATCH] OBS-URL: https://build.opensuse.org/package/show/systemsmanagement:cockpit/cockpit-tukit?expand=0&rev=25 --- 38.patch | 24383 ++++++++++------------------------------------------- 1 file changed, 4641 insertions(+), 19742 deletions(-) diff --git a/38.patch b/38.patch index 76843c6..fb6e9da 100644 --- a/38.patch +++ b/38.patch @@ -10,15542 +10,9 @@ Subject: [PATCH 1/6] switch to biome 3 files changed, 197 insertions(+), 16 deletions(-) create mode 100644 biome.json -diff --git a/biome.json b/biome.json -new file mode 100644 -index 0000000..ca3ad19 ---- /dev/null -+++ b/biome.json -@@ -0,0 +1,25 @@ -+{ -+ "$schema": "./node_modules/rome/configuration_schema.json", -+ "organizeImports": { -+ "enabled": false -+ }, -+ "linter": { -+ "enabled": true, -+ "rules": { -+ "recommended": true, -+ "suspicious": { -+ "noExplicitAny": "off", -+ "noAssignInExpressions": "off", -+ "noShadowRestrictedNames": "off" -+ }, -+ "style": { -+ "noParameterAssign": "off" -+ } -+ }, -+ "ignore": ["pkg/*", "dist", "test/common"] -+ }, -+ "formatter": { -+ "enabled": true, -+ "ignore": ["pkg/*", "dist", "test/common"] -+ } -+} -diff --git a/package-lock.json b/package-lock.json -index c77506f..fe1d149 100644 ---- a/package-lock.json -+++ b/package-lock.json -@@ -19,6 +19,7 @@ - }, - "devDependencies": { - "@babel/preset-typescript": "^7.21.4", -+ "@biomejs/biome": "1.8.3", - "@types/react": "^18.0.37", - "@types/react-dom": "^18.0.11", - "argparse": "^2.0.1", -@@ -548,6 +549,161 @@ - "node": ">=6.9.0" - } - }, -+ "node_modules/@biomejs/biome": { -+ "version": "1.8.3", -+ "resolved": "https://registry.npmjs.org/@biomejs/biome/-/biome-1.8.3.tgz", -+ "integrity": "sha512-/uUV3MV+vyAczO+vKrPdOW0Iaet7UnJMU4bNMinggGJTAnBPjCoLEYcyYtYHNnUNYlv4xZMH6hVIQCAozq8d5w==", -+ "dev": true, -+ "hasInstallScript": true, -+ "bin": { -+ "biome": "bin/biome" -+ }, -+ "engines": { -+ "node": ">=14.21.3" -+ }, -+ "funding": { -+ "type": "opencollective", -+ "url": "https://opencollective.com/biome" -+ }, -+ "optionalDependencies": { -+ "@biomejs/cli-darwin-arm64": "1.8.3", -+ "@biomejs/cli-darwin-x64": "1.8.3", -+ "@biomejs/cli-linux-arm64": "1.8.3", -+ "@biomejs/cli-linux-arm64-musl": "1.8.3", -+ "@biomejs/cli-linux-x64": "1.8.3", -+ "@biomejs/cli-linux-x64-musl": "1.8.3", -+ "@biomejs/cli-win32-arm64": "1.8.3", -+ "@biomejs/cli-win32-x64": "1.8.3" -+ } -+ }, -+ "node_modules/@biomejs/cli-darwin-arm64": { -+ "version": "1.8.3", -+ "resolved": "https://registry.npmjs.org/@biomejs/cli-darwin-arm64/-/cli-darwin-arm64-1.8.3.tgz", -+ "integrity": "sha512-9DYOjclFpKrH/m1Oz75SSExR8VKvNSSsLnVIqdnKexj6NwmiMlKk94Wa1kZEdv6MCOHGHgyyoV57Cw8WzL5n3A==", -+ "cpu": [ -+ "arm64" -+ ], -+ "dev": true, -+ "optional": true, -+ "os": [ -+ "darwin" -+ ], -+ "engines": { -+ "node": ">=14.21.3" -+ } -+ }, -+ "node_modules/@biomejs/cli-darwin-x64": { -+ "version": "1.8.3", -+ "resolved": "https://registry.npmjs.org/@biomejs/cli-darwin-x64/-/cli-darwin-x64-1.8.3.tgz", -+ "integrity": "sha512-UeW44L/AtbmOF7KXLCoM+9PSgPo0IDcyEUfIoOXYeANaNXXf9mLUwV1GeF2OWjyic5zj6CnAJ9uzk2LT3v/wAw==", -+ "cpu": [ -+ "x64" -+ ], -+ "dev": true, -+ "optional": true, -+ "os": [ -+ "darwin" -+ ], -+ "engines": { -+ "node": ">=14.21.3" -+ } -+ }, -+ "node_modules/@biomejs/cli-linux-arm64": { -+ "version": "1.8.3", -+ "resolved": "https://registry.npmjs.org/@biomejs/cli-linux-arm64/-/cli-linux-arm64-1.8.3.tgz", -+ "integrity": "sha512-fed2ji8s+I/m8upWpTJGanqiJ0rnlHOK3DdxsyVLZQ8ClY6qLuPc9uehCREBifRJLl/iJyQpHIRufLDeotsPtw==", -+ "cpu": [ -+ "arm64" -+ ], -+ "dev": true, -+ "optional": true, -+ "os": [ -+ "linux" -+ ], -+ "engines": { -+ "node": ">=14.21.3" -+ } -+ }, -+ "node_modules/@biomejs/cli-linux-arm64-musl": { -+ "version": "1.8.3", -+ "resolved": "https://registry.npmjs.org/@biomejs/cli-linux-arm64-musl/-/cli-linux-arm64-musl-1.8.3.tgz", -+ "integrity": "sha512-9yjUfOFN7wrYsXt/T/gEWfvVxKlnh3yBpnScw98IF+oOeCYb5/b/+K7YNqKROV2i1DlMjg9g/EcN9wvj+NkMuQ==", -+ "cpu": [ -+ "arm64" -+ ], -+ "dev": true, -+ "optional": true, -+ "os": [ -+ "linux" -+ ], -+ "engines": { -+ "node": ">=14.21.3" -+ } -+ }, -+ "node_modules/@biomejs/cli-linux-x64": { -+ "version": "1.8.3", -+ "resolved": "https://registry.npmjs.org/@biomejs/cli-linux-x64/-/cli-linux-x64-1.8.3.tgz", -+ "integrity": "sha512-I8G2QmuE1teISyT8ie1HXsjFRz9L1m5n83U1O6m30Kw+kPMPSKjag6QGUn+sXT8V+XWIZxFFBoTDEDZW2KPDDw==", -+ "cpu": [ -+ "x64" -+ ], -+ "dev": true, -+ "optional": true, -+ "os": [ -+ "linux" -+ ], -+ "engines": { -+ "node": ">=14.21.3" -+ } -+ }, -+ "node_modules/@biomejs/cli-linux-x64-musl": { -+ "version": "1.8.3", -+ "resolved": "https://registry.npmjs.org/@biomejs/cli-linux-x64-musl/-/cli-linux-x64-musl-1.8.3.tgz", -+ "integrity": "sha512-UHrGJX7PrKMKzPGoEsooKC9jXJMa28TUSMjcIlbDnIO4EAavCoVmNQaIuUSH0Ls2mpGMwUIf+aZJv657zfWWjA==", -+ "cpu": [ -+ "x64" -+ ], -+ "dev": true, -+ "optional": true, -+ "os": [ -+ "linux" -+ ], -+ "engines": { -+ "node": ">=14.21.3" -+ } -+ }, -+ "node_modules/@biomejs/cli-win32-arm64": { -+ "version": "1.8.3", -+ "resolved": "https://registry.npmjs.org/@biomejs/cli-win32-arm64/-/cli-win32-arm64-1.8.3.tgz", -+ "integrity": "sha512-J+Hu9WvrBevfy06eU1Na0lpc7uR9tibm9maHynLIoAjLZpQU3IW+OKHUtyL8p6/3pT2Ju5t5emReeIS2SAxhkQ==", -+ "cpu": [ -+ "arm64" -+ ], -+ "dev": true, -+ "optional": true, -+ "os": [ -+ "win32" -+ ], -+ "engines": { -+ "node": ">=14.21.3" -+ } -+ }, -+ "node_modules/@biomejs/cli-win32-x64": { -+ "version": "1.8.3", -+ "resolved": "https://registry.npmjs.org/@biomejs/cli-win32-x64/-/cli-win32-x64-1.8.3.tgz", -+ "integrity": "sha512-/PJ59vA1pnQeKahemaQf4Nyj7IKUvGQSc3Ze1uIGi+Wvr1xF7rGobSrAAG01T/gUDG21vkDsZYM03NAmPiVkqg==", -+ "cpu": [ -+ "x64" -+ ], -+ "dev": true, -+ "optional": true, -+ "os": [ -+ "win32" -+ ], -+ "engines": { -+ "node": ">=14.21.3" -+ } -+ }, - "node_modules/@esbuild/android-arm": { - "version": "0.18.17", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.18.17.tgz", -@@ -1604,12 +1760,12 @@ - } - }, - "node_modules/braces": { -- "version": "3.0.2", -- "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", -- "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", -+ "version": "3.0.3", -+ "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", -+ "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", - "dev": true, - "dependencies": { -- "fill-range": "^7.0.1" -+ "fill-range": "^7.1.1" - }, - "engines": { - "node": ">=8" -@@ -2290,9 +2446,9 @@ - } - }, - "node_modules/fill-range": { -- "version": "7.0.1", -- "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", -- "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", -+ "version": "7.1.1", -+ "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", -+ "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", - "dev": true, - "dependencies": { - "to-regex-range": "^5.0.1" -@@ -4812,9 +4968,9 @@ - "dev": true - }, - "node_modules/ws": { -- "version": "7.5.9", -- "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.9.tgz", -- "integrity": "sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q==", -+ "version": "7.5.10", -+ "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.10.tgz", -+ "integrity": "sha512-+dbF1tHwZpXcbOJdVOkzLDxZP1ailvSxM6ZweXTegylPny803bFhA+vqBYw4s31NSAk4S2Qz+AKXK9a4wkdjcQ==", - "dev": true, - "engines": { - "node": ">=8.3.0" -diff --git a/package.json b/package.json -index 90a47a2..b3d3af6 100644 ---- a/package.json -+++ b/package.json -@@ -9,26 +9,26 @@ - "scripts": { - "watch": "ESBUILD_WATCH='true' ./build.js", - "build": "tsc -noEmit && ./build.js", -- "lint": "rome check .", -- "format": "rome format . --write", -+ "lint": "biome check .", -+ "format": "biome format . --write", - "postinstall": "patch-package" - }, - "devDependencies": { - "@babel/preset-typescript": "^7.21.4", -+ "@biomejs/biome": "1.8.3", - "@types/react": "^18.0.37", - "@types/react-dom": "^18.0.11", - "argparse": "^2.0.1", - "chrome-remote-interface": "^0.32.1", -+ "esbuild": "^0.18.6", - "esbuild-plugin-copy": "^2.1.1", - "esbuild-plugin-replace": "^1.3.0", - "esbuild-sass-plugin": "^2.10.0", -- "esbuild": "^0.18.6", -+ "gettext-parser": "7.0.1", - "htmlparser": "^1.7.7", - "jed": "^1.1.1", - "patch-package": "^7.0.2", - "qunit": "^2.9.3", -- "gettext-parser": "7.0.1", -- "rome": "^12.0.0", - "sass": "^1.61.0", - "sizzle": "^2.3.3", - "ts-loader": "^9.4.2", -@@ -48,4 +48,4 @@ - "react-dom": "18.2.0", - "react-xml-parser": "^1.1.8" - } --} -+} -\ No newline at end of file - -From 0f9ce4701334cdb25366011ae92ac0661139f7cc Mon Sep 17 00:00:00 2001 -From: Luna -Date: Mon, 22 Jul 2024 15:06:54 +0530 -Subject: [PATCH 2/6] fix biome lint and run formatter - ---- - biome.json | 8 ++- - package.json | 100 ++++++++++++++++---------------- - rome.json | 25 -------- - src/app.tsx | 26 +++++---- - src/components/SnapshotItem.tsx | 7 ++- - src/components/StatusPanel.tsx | 12 ++-- - src/components/UpdatesItem.tsx | 11 ++-- - src/components/UpdatesPanel.tsx | 22 +++---- - src/index.ts | 2 +- - src/status.ts | 6 +- - src/tukit.ts | 53 +++++++++-------- - src/update.tsx | 2 +- - src/utils.tsx | 5 +- - tsconfig.json | 59 +++++++------------ - types/cockpit.d.ts | 8 +-- - types/notifications.d.ts | 2 +- - webpack.config.js | 12 ++-- - 17 files changed, 165 insertions(+), 195 deletions(-) - delete mode 100644 rome.json - -diff --git a/biome.json b/biome.json -index ca3ad19..7fbfe99 100644 ---- a/biome.json -+++ b/biome.json -@@ -1,5 +1,5 @@ - { -- "$schema": "./node_modules/rome/configuration_schema.json", -+ "$schema": "./node_modules/@biomejs/biome/configuration_schema.json", - "organizeImports": { - "enabled": false - }, -@@ -14,6 +14,12 @@ - }, - "style": { - "noParameterAssign": "off" -+ }, -+ "complexity": { -+ "noBannedTypes": "off" -+ }, -+ "correctness": { -+ "useExhaustiveDependencies": "off" - } - }, - "ignore": ["pkg/*", "dist", "test/common"] -diff --git a/package.json b/package.json -index b3d3af6..62afd37 100644 ---- a/package.json -+++ b/package.json -@@ -1,51 +1,51 @@ - { -- "name": "tukit", -- "description": "Cockpit module for Transactional Update", -- "type": "module", -- "main": "index.js", -- "repository": "https://github.com/openSUSE/cockpit-tukit", -- "author": "", -- "license": "LGPL-2.1", -- "scripts": { -- "watch": "ESBUILD_WATCH='true' ./build.js", -- "build": "tsc -noEmit && ./build.js", -- "lint": "biome check .", -- "format": "biome format . --write", -- "postinstall": "patch-package" -- }, -- "devDependencies": { -- "@babel/preset-typescript": "^7.21.4", -- "@biomejs/biome": "1.8.3", -- "@types/react": "^18.0.37", -- "@types/react-dom": "^18.0.11", -- "argparse": "^2.0.1", -- "chrome-remote-interface": "^0.32.1", -- "esbuild": "^0.18.6", -- "esbuild-plugin-copy": "^2.1.1", -- "esbuild-plugin-replace": "^1.3.0", -- "esbuild-sass-plugin": "^2.10.0", -- "gettext-parser": "7.0.1", -- "htmlparser": "^1.7.7", -- "jed": "^1.1.1", -- "patch-package": "^7.0.2", -- "qunit": "^2.9.3", -- "sass": "^1.61.0", -- "sizzle": "^2.3.3", -- "ts-loader": "^9.4.2", -- "typescript": "^5.0.4" -- }, -- "peerDependencies": { -- "date-fns": "^2.30.0", -- "deep-equal": "^2.2.2" -- }, -- "dependencies": { -- "@patternfly/patternfly": "5.0.0-alpha.64", -- "@patternfly/react-core": "5.0.0-alpha.115", -- "@patternfly/react-icons": "5.0.0-alpha.19", -- "@patternfly/react-styles": "5.0.0-alpha.16", -- "glob": "^10.3.3", -- "react": "18.2.0", -- "react-dom": "18.2.0", -- "react-xml-parser": "^1.1.8" -- } --} -\ No newline at end of file -+ "name": "tukit", -+ "description": "Cockpit module for Transactional Update", -+ "type": "module", -+ "main": "index.js", -+ "repository": "https://github.com/openSUSE/cockpit-tukit", -+ "author": "", -+ "license": "LGPL-2.1", -+ "scripts": { -+ "watch": "ESBUILD_WATCH='true' ./build.js", -+ "build": "tsc -noEmit && ./build.js", -+ "lint": "biome check .", -+ "format": "biome format . --write", -+ "postinstall": "patch-package" -+ }, -+ "devDependencies": { -+ "@babel/preset-typescript": "^7.21.4", -+ "@biomejs/biome": "1.8.3", -+ "@types/react": "^18.0.37", -+ "@types/react-dom": "^18.0.11", -+ "argparse": "^2.0.1", -+ "chrome-remote-interface": "^0.32.1", -+ "esbuild": "^0.18.6", -+ "esbuild-plugin-copy": "^2.1.1", -+ "esbuild-plugin-replace": "^1.3.0", -+ "esbuild-sass-plugin": "^2.10.0", -+ "gettext-parser": "7.0.1", -+ "htmlparser": "^1.7.7", -+ "jed": "^1.1.1", -+ "patch-package": "^7.0.2", -+ "qunit": "^2.9.3", -+ "sass": "^1.61.0", -+ "sizzle": "^2.3.3", -+ "ts-loader": "^9.4.2", -+ "typescript": "^5.0.4" -+ }, -+ "peerDependencies": { -+ "date-fns": "^2.30.0", -+ "deep-equal": "^2.2.2" -+ }, -+ "dependencies": { -+ "@patternfly/patternfly": "5.0.0-alpha.64", -+ "@patternfly/react-core": "5.0.0-alpha.115", -+ "@patternfly/react-icons": "5.0.0-alpha.19", -+ "@patternfly/react-styles": "5.0.0-alpha.16", -+ "glob": "^10.3.3", -+ "react": "18.2.0", -+ "react-dom": "18.2.0", -+ "react-xml-parser": "^1.1.8" -+ } -+} -diff --git a/rome.json b/rome.json -deleted file mode 100644 -index ca3ad19..0000000 ---- a/rome.json -+++ /dev/null -@@ -1,25 +0,0 @@ --{ -- "$schema": "./node_modules/rome/configuration_schema.json", -- "organizeImports": { -- "enabled": false -- }, -- "linter": { -- "enabled": true, -- "rules": { -- "recommended": true, -- "suspicious": { -- "noExplicitAny": "off", -- "noAssignInExpressions": "off", -- "noShadowRestrictedNames": "off" -- }, -- "style": { -- "noParameterAssign": "off" -- } -- }, -- "ignore": ["pkg/*", "dist", "test/common"] -- }, -- "formatter": { -- "enabled": true, -- "ignore": ["pkg/*", "dist", "test/common"] -- } --} -diff --git a/src/app.tsx b/src/app.tsx -index b8b8aa5..c3d0a84 100644 ---- a/src/app.tsx -+++ b/src/app.tsx -@@ -46,9 +46,14 @@ import UpdatesItem from "./components/UpdatesItem"; - import StatusPanel from "./components/StatusPanel"; - import UpdatesPanel from "./components/UpdatesPanel"; - --import { Snapshot, createSnapshot, snapshotsProxy, tukitdProxy } from "./tukit"; --import { Status, mostSevereStatus } from "./status"; --import { Update } from "./update"; -+import { -+ type Snapshot, -+ createSnapshot, -+ snapshotsProxy, -+ tukitdProxy, -+} from "./tukit"; -+import { type Status, mostSevereStatus } from "./status"; -+import type { Update } from "./update"; - - const _ = cockpit.gettext; - -@@ -76,8 +81,7 @@ const Application = () => { - }; - - useEffect(() => { -- if (superuser.allowed) -- getSnapshots(); -+ if (superuser.allowed) getSnapshots(); - // TODO: FIX! - // eslint-disable-next-line react-hooks/exhaustive-deps - }, [snapshotsDirty, superuser.allowed]); -@@ -156,7 +160,9 @@ const Application = () => { - icon={ExclamationCircleIcon} - /> - -- {_("Administrative access is required to access updates and snapshots.")} -+ {_( -+ "Administrative access is required to access updates and snapshots.", -+ )} - - - ); -@@ -182,10 +188,10 @@ const Application = () => { - snaps.sort((a, b) => b.number - a.number); - // mark old snapshots - let active: Snapshot | null = null; -- snaps.forEach((s) => { -- if (active) s.old = true; -- if (s.active) active = s; -- }); -+ for (const snap of snaps) { -+ if (active) snap.old = true; -+ if (snap.active) active = snap; -+ } - setSnapshots(snaps); - } catch (e) { - // service problems are reported in serviceProblem() -diff --git a/src/components/SnapshotItem.tsx b/src/components/SnapshotItem.tsx -index 8e728a0..4000496 100644 ---- a/src/components/SnapshotItem.tsx -+++ b/src/components/SnapshotItem.tsx -@@ -20,7 +20,8 @@ - - import cockpit from "cockpit"; - import * as timeformat from "timeformat"; --import React, { useState } from "react"; -+import type React from "react"; -+import { useState } from "react"; - import { - Badge, - Button, -@@ -35,13 +36,13 @@ import { - DropdownItem, - Label, - Tooltip, -- MenuToggleElement, -+ type MenuToggleElement, - MenuToggle, - DropdownList, - } from "@patternfly/react-core"; - import { DropdownPosition } from "@patternfly/react-core/deprecated"; - import { CheckCircleIcon, EllipsisVIcon } from "@patternfly/react-icons"; --import { Snapshot } from "@/tukit"; -+import type { Snapshot } from "@/tukit"; - - const _ = cockpit.gettext; - -diff --git a/src/components/StatusPanel.tsx b/src/components/StatusPanel.tsx -index a2efff3..6c4cf69 100644 ---- a/src/components/StatusPanel.tsx -+++ b/src/components/StatusPanel.tsx -@@ -37,9 +37,9 @@ import { - } from "@patternfly/react-icons"; - - import "./StatusPanel.scss"; --import { Update } from "@/update"; -+import type { Update } from "@/update"; - import type { Status } from "@/status"; --import { Snapshot } from "@/tukit"; -+import type { Snapshot } from "@/tukit"; - - const _ = cockpit.gettext; - -@@ -120,10 +120,10 @@ const StatusPanel = ({ - const i = s.details?.icon || s.type; - const c = `tukit-status-${i}`; - if (i === "error") return ; -- else if (i === "warning") return ; -- else if (i === "check") return ; -- else if (i === "pending") return ; -- else return ; -+ if (i === "warning") return ; -+ if (i === "check") return ; -+ if (i === "pending") return ; -+ return ; - }; - return ( - -diff --git a/src/components/UpdatesItem.tsx b/src/components/UpdatesItem.tsx -index 7d48610..1aa159c 100644 ---- a/src/components/UpdatesItem.tsx -+++ b/src/components/UpdatesItem.tsx -@@ -19,7 +19,8 @@ - */ - - import cockpit from "cockpit"; --import React, { useState } from "react"; -+import type React from "react"; -+import { useState } from "react"; - import { - Button, - DataList, -@@ -37,7 +38,7 @@ import { - ModalVariant, - Tooltip, - DropdownList, -- MenuToggleElement, -+ type MenuToggleElement, - MenuToggle, - } from "@patternfly/react-core"; - import { DropdownPosition } from "@patternfly/react-core/deprecated"; -@@ -49,7 +50,7 @@ import { - EllipsisVIcon, - } from "@patternfly/react-icons"; - import { transactionsProxy } from "../tukit"; --import { Update, categoryProps, severityProps } from "../update"; -+import { type Update, categoryProps, severityProps } from "../update"; - import { linkify } from "../utils"; - - import "./UpdatesItem.scss"; -@@ -116,8 +117,8 @@ const UpdateDetails = ({ u }: { u: Update }) => { - const UpdateItem = ({ u }: { u: Update }) => { - const icon = () => { - if (u.kind === "package") return ; -- else if (u.kind === "patch") return ; -- else return ; -+ if (u.kind === "patch") return ; -+ return ; - }; - const updateCells = (u: Update) => { - // package -diff --git a/src/components/UpdatesPanel.tsx b/src/components/UpdatesPanel.tsx -index 5781bf6..79ed5f1 100644 ---- a/src/components/UpdatesPanel.tsx -+++ b/src/components/UpdatesPanel.tsx -@@ -20,7 +20,7 @@ - import cockpit from "cockpit"; - import * as timeformat from "timeformat"; - import React, { useState, useEffect } from "react"; --import XMLParser, { XMLElement } from "react-xml-parser"; -+import XMLParser, { type XMLElement } from "react-xml-parser"; - import { - Button, - Card, -@@ -34,10 +34,10 @@ import { - kindPrio, - categoryPrio, - severityPrio, -- KindValues, -- CategoryValues, -- SeverityValues, -- Update, -+ type KindValues, -+ type CategoryValues, -+ type SeverityValues, -+ type Update, - } from "../update"; - import { decodeHTMLEntities } from "../utils"; - -@@ -50,12 +50,12 @@ const flattenXMLData = (data: XMLElement, prefix = ""): Update => { - // NOTE: this will make {"": value} for root item - if (data.value) values[prefix] = data.value; - if (prefix !== "") prefix = `${prefix}_`; -- Object.keys(data.attributes).forEach((a) => { -- values[`${prefix}${a}`] = data.attributes[a]; -- }); -- data.children.forEach((c) => { -- Object.assign(values, flattenXMLData(c, `${prefix}${c.name}`)); -- }); -+ for (const key of Object.keys(data.attributes)) { -+ values[`${prefix}${key}`] = data.attributes[key]; -+ } -+ for (const child of data.children) { -+ Object.assign(values, flattenXMLData(child, `${prefix}${child.name}`)); -+ } - return values as Update; - }; - -diff --git a/src/index.ts b/src/index.ts -index f5da17a..f8955b1 100644 ---- a/src/index.ts -+++ b/src/index.ts -@@ -33,7 +33,7 @@ import "./app.scss"; - /* - console.log(foo("foo")) - */ --document.addEventListener("DOMContentLoaded", function () { -+document.addEventListener("DOMContentLoaded", () => { - const container = document.getElementById("app"); - if (container) { - const root = createRoot(container); -diff --git a/src/status.ts b/src/status.ts -index bdebe35..eb9486c 100644 ---- a/src/status.ts -+++ b/src/status.ts -@@ -37,8 +37,8 @@ export type Status = { - export const mostSevereStatus = (statuses: Status[]): Status | null => { - if (statuses.length === 0) return null; - let ret = statuses[0]; -- statuses.forEach((s) => { -- if (statusSeverity[s.type] > statusSeverity[ret.type]) ret = s; -- }); -+ for (const status of statuses) { -+ if (statusSeverity[status.type] > statusSeverity[ret.type]) ret = status; -+ } - return ret; - }; -diff --git a/src/tukit.ts b/src/tukit.ts -index 57c58f1..4aab7b2 100644 ---- a/src/tukit.ts -+++ b/src/tukit.ts -@@ -18,8 +18,8 @@ - * find current contact information at www.suse.com. - */ - --import cockpit, { DbusClient, Proxy } from "cockpit"; --import { ServiceProxy, proxy as serviceProxy } from "service"; -+import cockpit, { type DbusClient, type Proxy } from "cockpit"; -+import { type ServiceProxy, proxy as serviceProxy } from "service"; - import { stringToBool } from "./utils"; - - let _dbusClient: DbusClient; -@@ -36,8 +36,8 @@ const dbusClient = (): DbusClient => { - type SnapshotRecordKeys = T extends `${infer K},${infer Rest}` - ? K | SnapshotRecordKeys - : T extends `${infer K}` -- ? K -- : never; -+ ? K -+ : never; - - export type SnapshotRecord = { - [k in SnapshotRecordKeys]: string; -@@ -79,21 +79,20 @@ const createSnapshot = (snap: SnapIn): Snapshot => { - if (Array.isArray(snap)) { - const [number, dflt, active, date, description] = snap; - return { -- number: parseInt(number), -+ number: Number.parseInt(number), - default: stringToBool(dflt), - active: stringToBool(active), - date: new Date(`${date}Z`), // dates are UTC but have no marking - description, - }; -- } else { -- return { -- number: parseInt(snap.number), -- default: stringToBool(snap.default), -- active: stringToBool(snap.active), -- date: new Date(`${snap.date}Z`), // dates are UTC but have no marking -- description: snap.description, -- }; - } -+ return { -+ number: Number.parseInt(snap.number), -+ default: stringToBool(snap.default), -+ active: stringToBool(snap.active), -+ date: new Date(`${snap.date}Z`), // dates are UTC but have no marking -+ description: snap.description, -+ }; - }; - - type TransactionEvent = "TransactionOpened" | "CommandExecuted" | "Error"; -@@ -102,20 +101,20 @@ type TransactionEventCallback = - T extends "TransactionOpened" - ? (event: CustomEvent, snapshot: string) => void - : T extends "Error" -- ? ( -- event: CustomEvent, -- snapshot: string, -- returncode: number, -- output: string, -- ) => void -- : T extends "CommandExecuted" -- ? ( -- event: CustomEvent, -- snapshot: string, -- returncode: number, -- output: string, -- ) => void -- : never; -+ ? ( -+ event: CustomEvent, -+ snapshot: string, -+ returncode: number, -+ output: string, -+ ) => void -+ : T extends "CommandExecuted" -+ ? ( -+ event: CustomEvent, -+ snapshot: string, -+ returncode: number, -+ output: string, -+ ) => void -+ : never; - - // https://kubic.opensuse.org/documentation/man-pages/transactional-update.conf.5.html#REBOOT_METHOD - type TransactionReboot = -diff --git a/src/update.tsx b/src/update.tsx -index 19afa86..8ee8ebf 100644 ---- a/src/update.tsx -+++ b/src/update.tsx -@@ -73,7 +73,7 @@ const prioProps = (p: keyof typeof prioLabelColor) => { - typeof prioLabelColor - >, - icon_disabled: prioIcon[p], -- variant: "outline" as "outline", -+ variant: "outline" as const, - }; - }; - -diff --git a/src/utils.tsx b/src/utils.tsx -index be04309..b879d03 100644 ---- a/src/utils.tsx -+++ b/src/utils.tsx -@@ -17,7 +17,7 @@ - * To contact SUSE LLC about this file by physical or electronic mail, you may - * find current contact information at www.suse.com. - */ --import React, { Key } from "react"; -+import React, { type Key } from "react"; - - export const stringToBool = (s: string) => { - return ["yes", "true", "1"].includes(s.toLowerCase()); -@@ -27,8 +27,7 @@ export const stringToBool = (s: string) => { - // numeric ones. - // see: https://github.com/openSUSE/libzypp/blob/master/zypp-core/parser/xml/XmlEscape.cc - export const decodeHTMLEntities = (s: string | null): string | null => { -- if (!s) -- return null; -+ if (!s) return null; - - const entities = { lt: "<", gt: ">", amp: "&", apos: "'", quot: '"' }; - return s -diff --git a/tsconfig.json b/tsconfig.json -index 11160c8..eb645a3 100644 ---- a/tsconfig.json -+++ b/tsconfig.json -@@ -1,39 +1,24 @@ - { -- "compilerOptions": { -- "target": "es6", -- "module": "es6", -- "strict": true, -- "importHelpers": true, -- "moduleResolution": "node", -- "experimentalDecorators": true, -- "esModuleInterop": true, -- "allowSyntheticDefaultImports": true, -- "sourceMap": true, -- "skipLibCheck": true, -- "baseUrl": ".", -- "jsx": "react", -- "allowJs": true, -- "paths": { -- "@/*": [ -- "src/*" -- ], -- "*": ["types/*"] -- }, -- "lib": [ -- "dom", -- "dom.iterable", -- "ES2021.String", -- "ES2021" -- ] -- }, -- "include": [ -- "src/*.ts", -- "src/*.tsx", -- "src/**/*.ts", -- "src/**/*.tsx" -- ], -- "exclude": [ -- "node_modules", -- "types" -- ] -+ "compilerOptions": { -+ "target": "es6", -+ "module": "es6", -+ "strict": true, -+ "importHelpers": true, -+ "moduleResolution": "node", -+ "experimentalDecorators": true, -+ "esModuleInterop": true, -+ "allowSyntheticDefaultImports": true, -+ "sourceMap": true, -+ "skipLibCheck": true, -+ "baseUrl": ".", -+ "jsx": "react", -+ "allowJs": true, -+ "paths": { -+ "@/*": ["src/*"], -+ "*": ["types/*"] -+ }, -+ "lib": ["dom", "dom.iterable", "ES2021.String", "ES2021"] -+ }, -+ "include": ["src/*.ts", "src/*.tsx", "src/**/*.ts", "src/**/*.tsx"], -+ "exclude": ["node_modules", "types"] - } -diff --git a/types/cockpit.d.ts b/types/cockpit.d.ts -index 5ecd9a3..c497028 100644 ---- a/types/cockpit.d.ts -+++ b/types/cockpit.d.ts -@@ -1,9 +1,7 @@ - // https://github.com/cockpit-project/cockpit/pull/13214 - - declare module "cockpit" { -- interface Func1 { -- (arg: T): R; -- } -+ type Func1 = (arg: T) => R; - - type DbusOptions = { - bus: "session" | "user" | "system" | "none"; -@@ -73,8 +71,8 @@ declare module "cockpit" { - type DBusEventCallback = T extends "close" - ? (event: CustomEvent, options: { problem?: string }) => void - : T extends "owner" -- ? (event: CustomEvent, owner?: string | null) => void -- : never; -+ ? (event: CustomEvent, owner?: string | null) => void -+ : never; - - interface DbusClient { - wait: (callback: () => void) => Promise; -diff --git a/types/notifications.d.ts b/types/notifications.d.ts -index b147491..fe2b558 100644 ---- a/types/notifications.d.ts -+++ b/types/notifications.d.ts -@@ -1,5 +1,5 @@ - // TODO: reorganise code so `Status` is part of notifications module --import { Status } from "@/status"; -+import type { Status } from "@/status"; - - declare module "notifications" { - class PageStatus { -diff --git a/webpack.config.js b/webpack.config.js -index 0b7f77b..8831788 100644 ---- a/webpack.config.js -+++ b/webpack.config.js -@@ -1,5 +1,5 @@ --const fs = require("fs"); --const path = require("path"); -+const fs = require("node:fs"); -+const path = require("node:path"); - - const copy = require("copy-webpack-plugin"); - const extract = require("mini-css-extract-plugin"); -@@ -82,10 +82,10 @@ module.exports = { - test: /\.(js|ts|jsx|tsx)$/, - }, - /* { -- test: /\.(js|ts|jsx|tsx)$/, -- use: 'ts-loader', -- exclude:/node_modules/, -- }, */ -+ test: /\.(js|ts|jsx|tsx)$/, -+ use: 'ts-loader', -+ exclude:/node_modules/, -+ }, */ - /* HACK: remove unwanted fonts from PatternFly's css */ - { - test: /patternfly-4-cockpit.scss$/, - -From f520b4f52c91c2bbfa111f639575b2faa7169c43 Mon Sep 17 00:00:00 2001 -From: Luna -Date: Mon, 22 Jul 2024 17:11:05 +0530 -Subject: [PATCH 3/6] add ci - ---- - .github/workflows/pull.yaml | 25 +++++++++++++++++++++++++ - 1 file changed, 25 insertions(+) - create mode 100644 .github/workflows/pull.yaml - -diff --git a/.github/workflows/pull.yaml b/.github/workflows/pull.yaml -new file mode 100644 -index 0000000..8f0e06a ---- /dev/null -+++ b/.github/workflows/pull.yaml -@@ -0,0 +1,25 @@ -+name: Pull Request -+on: -+ pull_request: -+ types: -+ - opened -+ - edited -+ - synchronize -+ - reopened -+jobs: -+ checks: -+ runs-on: ubuntu-latest -+ container: -+ image: registry.opensuse.org/opensuse/bci/nodejs:latest -+ steps: -+ - uses: actions/checkout@v4 -+ - uses: actions/setup-node@v4 -+ with: -+ node-version: 20 -+ cache: npm -+ - name: install deps -+ run: npm ci && zypper install -y cockpit-devel make -+ - name: build -+ run: make && npm run build -+ - name: lint & format check -+ run: npm run ci - -From a0c4001c975f46ed382eb9aa5a0fe6f7fed2fe36 Mon Sep 17 00:00:00 2001 -From: Luna -Date: Tue, 23 Jul 2024 11:36:39 +0530 -Subject: [PATCH 4/6] add upstream eslint and stylelint config - ---- - .babelrc.json | 34 +- - .eslintignore | 2 + - .eslintrc.json | 75 + - .github/workflows/pull.yaml | 2 + - .stylelintrc.json | 33 + - biome.json | 59 +- - build.js | 187 +- - package-lock.json | 7199 ++++++++++++----- - package.json | 118 +- - .../cockpit-tukit.spec.in | 0 - patches/glob+10.3.3.patch | 11 - - patches/glob+11.0.0.patch | 11 + - src/app.tsx | 422 +- - src/components/SnapshotItem.tsx | 374 +- - src/components/StatusPanel.tsx | 218 +- - src/components/UpdatesItem.tsx | 632 +- - src/components/UpdatesPanel.tsx | 293 +- - src/index.ts | 14 +- - src/manifest.json | 32 +- - src/status.ts | 28 +- - src/tukit.ts | 202 +- - src/update.tsx | 52 +- - src/utils.tsx | 52 +- - tsconfig.json | 44 +- - types/cockpit.d.ts | 216 +- - types/hooks.d.ts | 2 +- - types/notifications.d.ts | 12 +- - types/react-xml-parser.d.ts | 28 +- - types/service.d.ts | 30 +- - types/superuser.d.ts | 10 +- - types/timeformat.d.ts | 24 +- - webpack.config.js | 154 - - 32 files changed, 6931 insertions(+), 3639 deletions(-) - create mode 100644 .eslintignore - create mode 100644 .eslintrc.json - create mode 100644 .stylelintrc.json - rename cockpit-tukit.spec.in => packaging/cockpit-tukit.spec.in (100%) - delete mode 100644 patches/glob+10.3.3.patch - create mode 100644 patches/glob+11.0.0.patch - delete mode 100644 webpack.config.js - -diff --git a/.babelrc.json b/.babelrc.json -index 66be253..f1f58f5 100644 ---- a/.babelrc.json -+++ b/.babelrc.json -@@ -1,19 +1,19 @@ - { -- "presets": [ -- [ -- "@babel/env", -- { -- "targets": { -- "chrome": "57", -- "firefox": "52", -- "safari": "10.3", -- "edge": "16", -- "opera": "44" -- } -- } -- ], -- "@babel/preset-react", -- "@babel/preset-typescript" -- ], -- "plugins": ["@babel/plugin-transform-runtime"] -+ "presets": [ -+ [ -+ "@babel/env", -+ { -+ "targets": { -+ "chrome": "57", -+ "firefox": "52", -+ "safari": "10.3", -+ "edge": "16", -+ "opera": "44" -+ } -+ } -+ ], -+ "@babel/preset-react", -+ "@babel/preset-typescript" -+ ], -+ "plugins": ["@babel/plugin-transform-runtime"] - } -diff --git a/.eslintignore b/.eslintignore -new file mode 100644 -index 0000000..fe0174d ---- /dev/null -+++ b/.eslintignore -@@ -0,0 +1,2 @@ -+node_modules/* -+pkg/lib/* -\ No newline at end of file -diff --git a/.eslintrc.json b/.eslintrc.json -new file mode 100644 -index 0000000..e91fb76 ---- /dev/null -+++ b/.eslintrc.json -@@ -0,0 +1,75 @@ -+{ -+ "root": true, -+ "env": { -+ "browser": true, -+ "es6": true -+ }, -+ "extends": [ -+ "eslint:recommended", -+ "standard", -+ "standard-jsx", -+ "standard-react" -+ ], -+ "parserOptions": { -+ "ecmaVersion": 2022, -+ "sourceType": "module" -+ }, -+ "plugins": ["react", "react-hooks"], -+ "rules": { -+ "indent": [ -+ "error", -+ 4, -+ { -+ "ObjectExpression": "first", -+ "CallExpression": { "arguments": "first" }, -+ "MemberExpression": 2, -+ "ignoredNodes": ["JSXAttribute"] -+ } -+ ], -+ "newline-per-chained-call": ["error", { "ignoreChainWithDepth": 2 }], -+ "no-var": "error", -+ "lines-between-class-members": [ -+ "error", -+ "always", -+ { "exceptAfterSingleLine": true } -+ ], -+ "prefer-promise-reject-errors": ["error", { "allowEmptyReject": true }], -+ "react/jsx-indent": ["error", 4], -+ "semi": ["error", "always", { "omitLastInOneLineBlock": true }], -+ -+ "react-hooks/rules-of-hooks": "error", -+ "react-hooks/exhaustive-deps": "error", -+ -+ "camelcase": "off", -+ "comma-dangle": "off", -+ "curly": "off", -+ "jsx-quotes": "off", -+ "key-spacing": "off", -+ "no-console": "off", -+ "quotes": "off", -+ "react/jsx-curly-spacing": "off", -+ "react/jsx-indent-props": "off", -+ "react/jsx-no-useless-fragment": "error", -+ "react/prop-types": "off", -+ "space-before-function-paren": "off", -+ "standard/no-callback-literal": "off" -+ }, -+ "globals": { -+ "require": "readonly", -+ "module": "readonly" -+ }, -+ "overrides": [ -+ { -+ "files": ["**/*.ts", "**/*.tsx"], -+ "plugins": ["@typescript-eslint"], -+ "extends": [ -+ "eslint:recommended", -+ "plugin:@typescript-eslint/recommended" -+ ], -+ "parser": "@typescript-eslint/parser", -+ "parserOptions": { -+ "project": ["./tsconfig.json"] -+ } -+ } -+ ] -+} -diff --git a/.github/workflows/pull.yaml b/.github/workflows/pull.yaml -index 8f0e06a..10f042e 100644 ---- a/.github/workflows/pull.yaml -+++ b/.github/workflows/pull.yaml -@@ -19,6 +19,8 @@ jobs: - cache: npm - - name: install deps - run: npm ci && zypper install -y cockpit-devel make -+ - name: git workaround -+ run: git config --global --add safe.directory /__w/cockpit-tukit/cockpit-tukit - - name: build - run: make && npm run build - - name: lint & format check -diff --git a/.stylelintrc.json b/.stylelintrc.json -new file mode 100644 -index 0000000..03c3585 ---- /dev/null -+++ b/.stylelintrc.json -@@ -0,0 +1,33 @@ -+{ -+ "extends": "stylelint-config-standard-scss", -+ "rules": { -+ "at-rule-empty-line-before": null, -+ "declaration-empty-line-before": null, -+ "custom-property-empty-line-before": null, -+ "comment-empty-line-before": null, -+ "scss/double-slash-comment-empty-line-before": null, -+ "scss/dollar-variable-colon-space-after": null, -+ "custom-property-pattern": null, -+ "declaration-block-no-duplicate-properties": null, -+ "declaration-block-no-redundant-longhand-properties": null, -+ "declaration-block-no-shorthand-property-overrides": null, -+ "declaration-block-single-line-max-declarations": null, -+ "font-family-no-duplicate-names": null, -+ "function-url-quotes": null, -+ "keyframes-name-pattern": null, -+ "no-descending-specificity": null, -+ "no-duplicate-selectors": null, -+ "scss/at-extend-no-missing-placeholder": null, -+ "scss/at-import-partial-extension": null, -+ "scss/at-import-no-partial-leading-underscore": null, -+ "scss/load-no-partial-leading-underscore": true, -+ "scss/at-mixin-pattern": null, -+ "scss/comment-no-empty": null, -+ "scss/dollar-variable-pattern": null, -+ "scss/double-slash-comment-whitespace-inside": null, -+ "scss/no-global-function-names": null, -+ "scss/operator-no-unspaced": null, -+ "selector-class-pattern": null, -+ "selector-id-pattern": null -+ } -+} -diff --git a/biome.json b/biome.json -index 7fbfe99..287a0f0 100644 ---- a/biome.json -+++ b/biome.json -@@ -1,31 +1,32 @@ - { -- "$schema": "./node_modules/@biomejs/biome/configuration_schema.json", -- "organizeImports": { -- "enabled": false -- }, -- "linter": { -- "enabled": true, -- "rules": { -- "recommended": true, -- "suspicious": { -- "noExplicitAny": "off", -- "noAssignInExpressions": "off", -- "noShadowRestrictedNames": "off" -- }, -- "style": { -- "noParameterAssign": "off" -- }, -- "complexity": { -- "noBannedTypes": "off" -- }, -- "correctness": { -- "useExhaustiveDependencies": "off" -- } -- }, -- "ignore": ["pkg/*", "dist", "test/common"] -- }, -- "formatter": { -- "enabled": true, -- "ignore": ["pkg/*", "dist", "test/common"] -- } -+ "$schema": "./node_modules/@biomejs/biome/configuration_schema.json", -+ "organizeImports": { -+ "enabled": false -+ }, -+ "linter": { -+ "enabled": true, -+ "rules": { -+ "recommended": true, -+ "suspicious": { -+ "noExplicitAny": "off", -+ "noAssignInExpressions": "off", -+ "noShadowRestrictedNames": "off" -+ }, -+ "style": { -+ "noParameterAssign": "off" -+ }, -+ "complexity": { -+ "noBannedTypes": "off" -+ }, -+ "correctness": { -+ "useExhaustiveDependencies": "off" -+ } -+ }, -+ "ignore": ["pkg/*", "dist", "test/common"] -+ }, -+ "formatter": { -+ "enabled": true, -+ "ignore": ["pkg/*", "dist", "test/common"], -+ "indentStyle": "space" -+ } - } -diff --git a/build.js b/build.js -index 924cab7..80df00f 100755 ---- a/build.js -+++ b/build.js -@@ -2,6 +2,8 @@ - - import fs from "node:fs"; - import path from "node:path"; -+import process from "node:process"; -+import os from "node:os"; - - import copy from "esbuild-plugin-copy"; - -@@ -11,10 +13,27 @@ import { cockpitPoEsbuildPlugin } from "./pkg/lib/cockpit-po-plugin.js"; - import { cockpitRsyncEsbuildPlugin } from "./pkg/lib/cockpit-rsync-plugin.js"; - import { esbuildStylesPlugins } from "./pkg/lib/esbuild-common.js"; - -+const production = process.env.NODE_ENV === "production"; - const esbuild = (await import("esbuild")).default; - --const production = process.env.NODE_ENV === "production"; --const watchMode = process.env.ESBUILD_WATCH === "true"; -+const parser = (await import("argparse")).default.ArgumentParser(); -+parser.add_argument("-r", "--rsync", { -+ help: "rsync bundles to ssh target after build", -+ metavar: "HOST", -+}); -+parser.add_argument("-w", "--watch", { -+ action: "store_true", -+ help: "Enable watch mode", -+ default: process.env.ESBUILD_WATCH === "true", -+}); -+parser.add_argument("-m", "--metafile", { -+ help: "Enable bundle size information file", -+ metavar: "FILE", -+}); -+const args = parser.parse_args(); -+ -+if (args.rsync) process.env.RSYNC = args.rsync; -+ - // List of directories to use when using import statements - const nodePaths = ["pkg/lib"]; - const outdir = "dist"; -@@ -23,103 +42,105 @@ const outdir = "dist"; - const packageJson = JSON.parse(fs.readFileSync("package.json")); - - function notifyEndPlugin() { -- return { -- name: "notify-end", -- setup(build) { -- let startTime; -- -- build.onStart(() => { -- startTime = new Date(); -- }); -- -- build.onEnd(() => { -- const endTime = new Date(); -- const timeStamp = endTime.toTimeString().split(" ")[0]; -- console.log( -- `${timeStamp}: Build finished in ${endTime - startTime} ms`, -- ); -- }); -- }, -- }; -+ return { -+ name: "notify-end", -+ setup(build) { -+ let startTime; -+ -+ build.onStart(() => { -+ startTime = new Date(); -+ }); -+ -+ build.onEnd(() => { -+ const endTime = new Date(); -+ const timeStamp = endTime.toTimeString().split(" ")[0]; -+ console.log( -+ `${timeStamp}: Build finished in ${endTime - startTime} ms`, -+ ); -+ }); -+ }, -+ }; - } - --const cwd = process.cwd(); -- - // similar to fs.watch(), but recursively watches all subdirectories - function watch_dirs(dir, on_change) { -- const callback = (ev, dir, fname) => { -- // only listen for "change" events, as renames are noisy -- // ignore hidden files -- const isHidden = /^\./.test(fname); -- if (ev !== "change" || isHidden) { -- return; -- } -- on_change(path.join(dir, fname)); -- }; -- -- fs.watch(dir, {}, (ev, path) => callback(ev, dir, path)); -- -- // watch all subdirectories in dir -- const d = fs.opendirSync(dir); -- let dirent; -- -- while ((dirent = d.readSync()) !== null) { -- if (dirent.isDirectory()) -- watch_dirs(path.join(dir, dirent.name), on_change); -- } -- d.closeSync(); -+ const callback = (ev, dir, fname) => { -+ // only listen for "change" events, as renames are noisy -+ // ignore hidden files -+ const isHidden = /^\./.test(fname); -+ if (ev !== "change" || isHidden) { -+ return; -+ } -+ on_change(path.join(dir, fname)); -+ }; -+ -+ fs.watch(dir, {}, (ev, path) => callback(ev, dir, path)); -+ -+ // watch all subdirectories in dir -+ const d = fs.opendirSync(dir); -+ let dirent; -+ -+ while ((dirent = d.readSync()) !== null) { -+ if (dirent.isDirectory()) -+ watch_dirs(path.join(dir, dirent.name), on_change); -+ } -+ d.closeSync(); - } - - const context = await esbuild.context({ -- ...(!production ? { sourcemap: "linked" } : {}), -- bundle: true, -- entryPoints: ["./src/index.ts"], -- external: ["*.woff", "*.woff2", "*.jpg", "*.svg", "../../assets*"], // Allow external font files which live in ../../static/fonts -- legalComments: "external", // Move all legal comments to a .LEGAL.txt file -- loader: { ".ts": "tsx" }, -- minify: production, -- nodePaths, -- outdir, -- target: ["es2020"], -- plugins: [ -- cleanPlugin(), -- // Esbuild will only copy assets that are explicitly imported and used -- // in the code. This is a problem for index.html and manifest.json which are not imported -- copy({ -- assets: [ -- { from: ["./src/manifest.json"], to: ["./manifest.json"] }, -- { from: ["./src/index.html"], to: ["./index.html"] }, -- ], -- }), -- ...esbuildStylesPlugins, -- cockpitPoEsbuildPlugin(), -- ...(production ? [cockpitCompressPlugin()] : []), -- cockpitRsyncEsbuildPlugin({ dest: packageJson.name }), -- notifyEndPlugin(), -- ], -+ ...(!production ? { sourcemap: "linked" } : {}), -+ bundle: true, -+ entryPoints: ["./src/index.js"], -+ external: ["*.woff", "*.woff2", "*.jpg", "*.svg", "../../assets*"], // Allow external font files which live in ../../static/fonts -+ legalComments: "external", // Move all legal comments to a .LEGAL.txt file -+ loader: { ".js": "jsx" }, -+ metafile: !!args.metafile, -+ minify: production, -+ nodePaths, -+ outdir, -+ target: ["es2020"], -+ plugins: [ -+ cleanPlugin(), -+ // Esbuild will only copy assets that are explicitly imported and used -+ // in the code. This is a problem for index.html and manifest.json which are not imported -+ copy({ -+ assets: [ -+ { from: ["./src/manifest.json"], to: ["./manifest.json"] }, -+ { from: ["./src/index.html"], to: ["./index.html"] }, -+ ], -+ }), -+ ...esbuildStylesPlugins, -+ cockpitPoEsbuildPlugin(), -+ ...(production ? [cockpitCompressPlugin()] : []), -+ cockpitRsyncEsbuildPlugin({ dest: packageJson.name }), -+ notifyEndPlugin(), -+ ], - }); - - try { -- await context.rebuild(); -+ const result = await context.rebuild(); -+ if (args.metafile) { -+ fs.writeFileSync(args.metafile, JSON.stringify(result.metafile)); -+ } - } catch (e) { -- if (!watchMode) process.exit(1); -- // ignore errors in watch mode -+ if (!args.watch) process.exit(1); -+ // ignore errors in watch mode - } - --if (watchMode) { -- const on_change = async (path) => { -- console.log("change detected:", path); -- await context.cancel(); -+if (args.watch) { -+ const on_change = async (path) => { -+ console.log("change detected:", path); -+ await context.cancel(); - -- try { -- await context.rebuild(); -- } catch (e) {} // ignore in watch mode -- }; -+ try { -+ await context.rebuild(); -+ } catch (e) {} // ignore in watch mode -+ }; - -- watch_dirs("src", on_change); -+ watch_dirs("src", on_change); - -- // wait forever until Control-C -- await new Promise(() => {}); -+ // wait forever until Control-C -+ await new Promise(() => {}); - } - - context.dispose(); -diff --git a/package-lock.json b/package-lock.json -index fe1d149..edceb9a 100644 ---- a/package-lock.json -+++ b/package-lock.json -@@ -8,36 +8,50 @@ - "hasInstallScript": true, - "license": "LGPL-2.1", - "dependencies": { -- "@patternfly/patternfly": "5.0.0-alpha.64", -- "@patternfly/react-core": "5.0.0-alpha.115", -- "@patternfly/react-icons": "5.0.0-alpha.19", -- "@patternfly/react-styles": "5.0.0-alpha.16", -- "glob": "^10.3.3", -- "react": "18.2.0", -- "react-dom": "18.2.0", -+ "@patternfly/patternfly": "5.3.1", -+ "@patternfly/react-core": "5.3.4", -+ "@patternfly/react-icons": "5.3.2", -+ "@patternfly/react-styles": "5.3.1", -+ "glob": "^11.0.0", -+ "react": "18.3.1", -+ "react-dom": "18.3.1", - "react-xml-parser": "^1.1.8" - }, - "devDependencies": { - "@babel/preset-typescript": "^7.21.4", - "@biomejs/biome": "1.8.3", -- "@types/react": "^18.0.37", -- "@types/react-dom": "^18.0.11", -+ "@types/react": "^18.3.3", -+ "@types/react-dom": "^18.3.0", -+ "@typescript-eslint/eslint-plugin": "7.17.0", - "argparse": "^2.0.1", -- "chrome-remote-interface": "^0.32.1", -- "esbuild": "^0.18.6", -+ "chrome-remote-interface": "^0.33.0", -+ "esbuild": "^0.23.0", - "esbuild-plugin-copy": "^2.1.1", -- "esbuild-plugin-replace": "^1.3.0", -- "esbuild-sass-plugin": "^2.10.0", -- "gettext-parser": "7.0.1", -+ "esbuild-plugin-replace": "^1.4.0", -+ "esbuild-sass-plugin": "^3.3.1", -+ "eslint": "^8.57.0", -+ "eslint-config-standard": "^17.1.0", -+ "eslint-config-standard-jsx": "^11.0.0", -+ "eslint-config-standard-react": "^13.0.0", -+ "eslint-plugin-import": "^2.29.1", -+ "eslint-plugin-node": "^11.1.0", -+ "eslint-plugin-promise": "^6.6.0", -+ "eslint-plugin-react": "^7.35.0", -+ "eslint-plugin-react-hooks": "^4.6.2", -+ "gettext-parser": "8.0.0", - "htmlparser": "^1.7.7", - "jed": "^1.1.1", - "patch-package": "^7.0.2", -- "qunit": "^2.9.3", -- "rome": "^12.0.0", -- "sass": "^1.61.0", -+ "qunit": "^2.21.1", -+ "sass": "^1.77.8", - "sizzle": "^2.3.3", -+ "stylelint": "16.7.0", -+ "stylelint-config-recommended-scss": "14.0.0", -+ "stylelint-config-standard": "36.0.1", -+ "stylelint-config-standard-scss": "13.1.0", -+ "stylelint-formatter-pretty": "4.0.0", - "ts-loader": "^9.4.2", -- "typescript": "^5.0.4" -+ "typescript": "5.5.3" - }, - "peerDependencies": { - "date-fns": "^2.30.0", -@@ -576,70 +590,6 @@ - "@biomejs/cli-win32-x64": "1.8.3" - } - }, -- "node_modules/@biomejs/cli-darwin-arm64": { -- "version": "1.8.3", -- "resolved": "https://registry.npmjs.org/@biomejs/cli-darwin-arm64/-/cli-darwin-arm64-1.8.3.tgz", -- "integrity": "sha512-9DYOjclFpKrH/m1Oz75SSExR8VKvNSSsLnVIqdnKexj6NwmiMlKk94Wa1kZEdv6MCOHGHgyyoV57Cw8WzL5n3A==", -- "cpu": [ -- "arm64" -- ], -- "dev": true, -- "optional": true, -- "os": [ -- "darwin" -- ], -- "engines": { -- "node": ">=14.21.3" -- } -- }, -- "node_modules/@biomejs/cli-darwin-x64": { -- "version": "1.8.3", -- "resolved": "https://registry.npmjs.org/@biomejs/cli-darwin-x64/-/cli-darwin-x64-1.8.3.tgz", -- "integrity": "sha512-UeW44L/AtbmOF7KXLCoM+9PSgPo0IDcyEUfIoOXYeANaNXXf9mLUwV1GeF2OWjyic5zj6CnAJ9uzk2LT3v/wAw==", -- "cpu": [ -- "x64" -- ], -- "dev": true, -- "optional": true, -- "os": [ -- "darwin" -- ], -- "engines": { -- "node": ">=14.21.3" -- } -- }, -- "node_modules/@biomejs/cli-linux-arm64": { -- "version": "1.8.3", -- "resolved": "https://registry.npmjs.org/@biomejs/cli-linux-arm64/-/cli-linux-arm64-1.8.3.tgz", -- "integrity": "sha512-fed2ji8s+I/m8upWpTJGanqiJ0rnlHOK3DdxsyVLZQ8ClY6qLuPc9uehCREBifRJLl/iJyQpHIRufLDeotsPtw==", -- "cpu": [ -- "arm64" -- ], -- "dev": true, -- "optional": true, -- "os": [ -- "linux" -- ], -- "engines": { -- "node": ">=14.21.3" -- } -- }, -- "node_modules/@biomejs/cli-linux-arm64-musl": { -- "version": "1.8.3", -- "resolved": "https://registry.npmjs.org/@biomejs/cli-linux-arm64-musl/-/cli-linux-arm64-musl-1.8.3.tgz", -- "integrity": "sha512-9yjUfOFN7wrYsXt/T/gEWfvVxKlnh3yBpnScw98IF+oOeCYb5/b/+K7YNqKROV2i1DlMjg9g/EcN9wvj+NkMuQ==", -- "cpu": [ -- "arm64" -- ], -- "dev": true, -- "optional": true, -- "os": [ -- "linux" -- ], -- "engines": { -- "node": ">=14.21.3" -- } -- }, - "node_modules/@biomejs/cli-linux-x64": { - "version": "1.8.3", - "resolved": "https://registry.npmjs.org/@biomejs/cli-linux-x64/-/cli-linux-x64-1.8.3.tgz", -@@ -672,389 +622,274 @@ - "node": ">=14.21.3" - } - }, -- "node_modules/@biomejs/cli-win32-arm64": { -- "version": "1.8.3", -- "resolved": "https://registry.npmjs.org/@biomejs/cli-win32-arm64/-/cli-win32-arm64-1.8.3.tgz", -- "integrity": "sha512-J+Hu9WvrBevfy06eU1Na0lpc7uR9tibm9maHynLIoAjLZpQU3IW+OKHUtyL8p6/3pT2Ju5t5emReeIS2SAxhkQ==", -- "cpu": [ -- "arm64" -- ], -+ "node_modules/@bufbuild/protobuf": { -+ "version": "1.10.0", -+ "resolved": "https://registry.npmjs.org/@bufbuild/protobuf/-/protobuf-1.10.0.tgz", -+ "integrity": "sha512-QDdVFLoN93Zjg36NoQPZfsVH9tZew7wKDKyV5qRdj8ntT4wQCOradQjRaTdwMhWUYsgKsvCINKKm87FdEk96Ag==", - "dev": true, -- "optional": true, -- "os": [ -- "win32" -- ], -- "engines": { -- "node": ">=14.21.3" -- } -+ "peer": true - }, -- "node_modules/@biomejs/cli-win32-x64": { -- "version": "1.8.3", -- "resolved": "https://registry.npmjs.org/@biomejs/cli-win32-x64/-/cli-win32-x64-1.8.3.tgz", -- "integrity": "sha512-/PJ59vA1pnQeKahemaQf4Nyj7IKUvGQSc3Ze1uIGi+Wvr1xF7rGobSrAAG01T/gUDG21vkDsZYM03NAmPiVkqg==", -- "cpu": [ -- "x64" -- ], -+ "node_modules/@csstools/css-parser-algorithms": { -+ "version": "2.7.1", -+ "resolved": "https://registry.npmjs.org/@csstools/css-parser-algorithms/-/css-parser-algorithms-2.7.1.tgz", -+ "integrity": "sha512-2SJS42gxmACHgikc1WGesXLIT8d/q2l0UFM7TaEeIzdFCE/FPMtTiizcPGGJtlPo2xuQzY09OhrLTzRxqJqwGw==", - "dev": true, -- "optional": true, -- "os": [ -- "win32" -+ "funding": [ -+ { -+ "type": "github", -+ "url": "https://github.com/sponsors/csstools" -+ }, -+ { -+ "type": "opencollective", -+ "url": "https://opencollective.com/csstools" -+ } - ], - "engines": { -- "node": ">=14.21.3" -+ "node": "^14 || ^16 || >=18" -+ }, -+ "peerDependencies": { -+ "@csstools/css-tokenizer": "^2.4.1" - } - }, -- "node_modules/@esbuild/android-arm": { -- "version": "0.18.17", -- "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.18.17.tgz", -- "integrity": "sha512-wHsmJG/dnL3OkpAcwbgoBTTMHVi4Uyou3F5mf58ZtmUyIKfcdA7TROav/6tCzET4A3QW2Q2FC+eFneMU+iyOxg==", -- "cpu": [ -- "arm" -- ], -+ "node_modules/@csstools/css-tokenizer": { -+ "version": "2.4.1", -+ "resolved": "https://registry.npmjs.org/@csstools/css-tokenizer/-/css-tokenizer-2.4.1.tgz", -+ "integrity": "sha512-eQ9DIktFJBhGjioABJRtUucoWR2mwllurfnM8LuNGAqX3ViZXaUchqk+1s7jjtkFiT9ySdACsFEA3etErkALUg==", - "dev": true, -- "optional": true, -- "os": [ -- "android" -+ "funding": [ -+ { -+ "type": "github", -+ "url": "https://github.com/sponsors/csstools" -+ }, -+ { -+ "type": "opencollective", -+ "url": "https://opencollective.com/csstools" -+ } - ], - "engines": { -- "node": ">=12" -+ "node": "^14 || ^16 || >=18" - } - }, -- "node_modules/@esbuild/android-arm64": { -- "version": "0.18.17", -- "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.18.17.tgz", -- "integrity": "sha512-9np+YYdNDed5+Jgr1TdWBsozZ85U1Oa3xW0c7TWqH0y2aGghXtZsuT8nYRbzOMcl0bXZXjOGbksoTtVOlWrRZg==", -- "cpu": [ -- "arm64" -- ], -+ "node_modules/@csstools/media-query-list-parser": { -+ "version": "2.1.13", -+ "resolved": "https://registry.npmjs.org/@csstools/media-query-list-parser/-/media-query-list-parser-2.1.13.tgz", -+ "integrity": "sha512-XaHr+16KRU9Gf8XLi3q8kDlI18d5vzKSKCY510Vrtc9iNR0NJzbY9hhTmwhzYZj/ZwGL4VmB3TA9hJW0Um2qFA==", - "dev": true, -- "optional": true, -- "os": [ -- "android" -+ "funding": [ -+ { -+ "type": "github", -+ "url": "https://github.com/sponsors/csstools" -+ }, -+ { -+ "type": "opencollective", -+ "url": "https://opencollective.com/csstools" -+ } - ], - "engines": { -- "node": ">=12" -+ "node": "^14 || ^16 || >=18" -+ }, -+ "peerDependencies": { -+ "@csstools/css-parser-algorithms": "^2.7.1", -+ "@csstools/css-tokenizer": "^2.4.1" - } - }, -- "node_modules/@esbuild/android-x64": { -- "version": "0.18.17", -- "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.18.17.tgz", -- "integrity": "sha512-O+FeWB/+xya0aLg23hHEM2E3hbfwZzjqumKMSIqcHbNvDa+dza2D0yLuymRBQQnC34CWrsJUXyH2MG5VnLd6uw==", -- "cpu": [ -- "x64" -- ], -+ "node_modules/@csstools/selector-specificity": { -+ "version": "3.1.1", -+ "resolved": "https://registry.npmjs.org/@csstools/selector-specificity/-/selector-specificity-3.1.1.tgz", -+ "integrity": "sha512-a7cxGcJ2wIlMFLlh8z2ONm+715QkPHiyJcxwQlKOz/03GPw1COpfhcmC9wm4xlZfp//jWHNNMwzjtqHXVWU9KA==", - "dev": true, -- "optional": true, -- "os": [ -- "android" -+ "funding": [ -+ { -+ "type": "github", -+ "url": "https://github.com/sponsors/csstools" -+ }, -+ { -+ "type": "opencollective", -+ "url": "https://opencollective.com/csstools" -+ } - ], - "engines": { -- "node": ">=12" -+ "node": "^14 || ^16 || >=18" -+ }, -+ "peerDependencies": { -+ "postcss-selector-parser": "^6.0.13" - } - }, -- "node_modules/@esbuild/darwin-arm64": { -- "version": "0.18.17", -- "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.18.17.tgz", -- "integrity": "sha512-M9uJ9VSB1oli2BE/dJs3zVr9kcCBBsE883prage1NWz6pBS++1oNn/7soPNS3+1DGj0FrkSvnED4Bmlu1VAE9g==", -- "cpu": [ -- "arm64" -- ], -+ "node_modules/@dual-bundle/import-meta-resolve": { -+ "version": "4.1.0", -+ "resolved": "https://registry.npmjs.org/@dual-bundle/import-meta-resolve/-/import-meta-resolve-4.1.0.tgz", -+ "integrity": "sha512-+nxncfwHM5SgAtrVzgpzJOI1ol0PkumhVo469KCf9lUi21IGcY90G98VuHm9VRrUypmAzawAHO9bs6hqeADaVg==", - "dev": true, -- "optional": true, -- "os": [ -- "darwin" -- ], -- "engines": { -- "node": ">=12" -+ "funding": { -+ "type": "github", -+ "url": "https://github.com/sponsors/wooorm" - } - }, -- "node_modules/@esbuild/darwin-x64": { -- "version": "0.18.17", -- "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.18.17.tgz", -- "integrity": "sha512-XDre+J5YeIJDMfp3n0279DFNrGCXlxOuGsWIkRb1NThMZ0BsrWXoTg23Jer7fEXQ9Ye5QjrvXpxnhzl3bHtk0g==", -+ "node_modules/@esbuild/linux-x64": { -+ "version": "0.23.0", -+ "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.23.0.tgz", -+ "integrity": "sha512-a3pMQhUEJkITgAw6e0bWA+F+vFtCciMjW/LPtoj99MhVt+Mfb6bbL9hu2wmTZgNd994qTAEw+U/r6k3qHWWaOQ==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ -- "darwin" -+ "linux" - ], - "engines": { -- "node": ">=12" -+ "node": ">=18" - } - }, -- "node_modules/@esbuild/freebsd-arm64": { -- "version": "0.18.17", -- "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.18.17.tgz", -- "integrity": "sha512-cjTzGa3QlNfERa0+ptykyxs5A6FEUQQF0MuilYXYBGdBxD3vxJcKnzDlhDCa1VAJCmAxed6mYhA2KaJIbtiNuQ==", -- "cpu": [ -- "arm64" -- ], -+ "node_modules/@eslint-community/eslint-utils": { -+ "version": "4.4.0", -+ "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz", -+ "integrity": "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==", - "dev": true, -- "optional": true, -- "os": [ -- "freebsd" -- ], -+ "dependencies": { -+ "eslint-visitor-keys": "^3.3.0" -+ }, - "engines": { -- "node": ">=12" -+ "node": "^12.22.0 || ^14.17.0 || >=16.0.0" -+ }, -+ "peerDependencies": { -+ "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" - } - }, -- "node_modules/@esbuild/freebsd-x64": { -- "version": "0.18.17", -- "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.18.17.tgz", -- "integrity": "sha512-sOxEvR8d7V7Kw8QqzxWc7bFfnWnGdaFBut1dRUYtu+EIRXefBc/eIsiUiShnW0hM3FmQ5Zf27suDuHsKgZ5QrA==", -- "cpu": [ -- "x64" -- ], -+ "node_modules/@eslint-community/regexpp": { -+ "version": "4.11.0", -+ "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.11.0.tgz", -+ "integrity": "sha512-G/M/tIiMrTAxEWRfLfQJMmGNX28IxBg4PBz8XqQhqUHLFI6TL2htpIB1iQCj144V5ee/JaKyT9/WZ0MGZWfA7A==", - "dev": true, -- "optional": true, -- "os": [ -- "freebsd" -- ], - "engines": { -- "node": ">=12" -+ "node": "^12.0.0 || ^14.0.0 || >=16.0.0" - } - }, -- "node_modules/@esbuild/linux-arm": { -- "version": "0.18.17", -- "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.18.17.tgz", -- "integrity": "sha512-2d3Lw6wkwgSLC2fIvXKoMNGVaeY8qdN0IC3rfuVxJp89CRfA3e3VqWifGDfuakPmp90+ZirmTfye1n4ncjv2lg==", -- "cpu": [ -- "arm" -- ], -+ "node_modules/@eslint/eslintrc": { -+ "version": "2.1.4", -+ "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.4.tgz", -+ "integrity": "sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==", - "dev": true, -- "optional": true, -- "os": [ -- "linux" -- ], -+ "dependencies": { -+ "ajv": "^6.12.4", -+ "debug": "^4.3.2", -+ "espree": "^9.6.0", -+ "globals": "^13.19.0", -+ "ignore": "^5.2.0", -+ "import-fresh": "^3.2.1", -+ "js-yaml": "^4.1.0", -+ "minimatch": "^3.1.2", -+ "strip-json-comments": "^3.1.1" -+ }, - "engines": { -- "node": ">=12" -+ "node": "^12.22.0 || ^14.17.0 || >=16.0.0" -+ }, -+ "funding": { -+ "url": "https://opencollective.com/eslint" - } - }, -- "node_modules/@esbuild/linux-arm64": { -- "version": "0.18.17", -- "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.18.17.tgz", -- "integrity": "sha512-c9w3tE7qA3CYWjT+M3BMbwMt+0JYOp3vCMKgVBrCl1nwjAlOMYzEo+gG7QaZ9AtqZFj5MbUc885wuBBmu6aADQ==", -- "cpu": [ -- "arm64" -- ], -+ "node_modules/@eslint/eslintrc/node_modules/brace-expansion": { -+ "version": "1.1.11", -+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", -+ "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dev": true, -- "optional": true, -- "os": [ -- "linux" -- ], -- "engines": { -- "node": ">=12" -+ "dependencies": { -+ "balanced-match": "^1.0.0", -+ "concat-map": "0.0.1" - } - }, -- "node_modules/@esbuild/linux-ia32": { -- "version": "0.18.17", -- "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.18.17.tgz", -- "integrity": "sha512-1DS9F966pn5pPnqXYz16dQqWIB0dmDfAQZd6jSSpiT9eX1NzKh07J6VKR3AoXXXEk6CqZMojiVDSZi1SlmKVdg==", -- "cpu": [ -- "ia32" -- ], -+ "node_modules/@eslint/eslintrc/node_modules/globals": { -+ "version": "13.24.0", -+ "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", -+ "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", - "dev": true, -- "optional": true, -- "os": [ -- "linux" -- ], -+ "dependencies": { -+ "type-fest": "^0.20.2" -+ }, - "engines": { -- "node": ">=12" -+ "node": ">=8" -+ }, -+ "funding": { -+ "url": "https://github.com/sponsors/sindresorhus" - } - }, -- "node_modules/@esbuild/linux-loong64": { -- "version": "0.18.17", -- "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.18.17.tgz", -- "integrity": "sha512-EvLsxCk6ZF0fpCB6w6eOI2Fc8KW5N6sHlIovNe8uOFObL2O+Mr0bflPHyHwLT6rwMg9r77WOAWb2FqCQrVnwFg==", -- "cpu": [ -- "loong64" -- ], -+ "node_modules/@eslint/eslintrc/node_modules/minimatch": { -+ "version": "3.1.2", -+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", -+ "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dev": true, -- "optional": true, -- "os": [ -- "linux" -- ], -+ "dependencies": { -+ "brace-expansion": "^1.1.7" -+ }, - "engines": { -- "node": ">=12" -+ "node": "*" - } - }, -- "node_modules/@esbuild/linux-mips64el": { -- "version": "0.18.17", -- "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.18.17.tgz", -- "integrity": "sha512-e0bIdHA5p6l+lwqTE36NAW5hHtw2tNRmHlGBygZC14QObsA3bD4C6sXLJjvnDIjSKhW1/0S3eDy+QmX/uZWEYQ==", -- "cpu": [ -- "mips64el" -- ], -+ "node_modules/@eslint/js": { -+ "version": "8.57.0", -+ "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.57.0.tgz", -+ "integrity": "sha512-Ys+3g2TaW7gADOJzPt83SJtCDhMjndcDMFVQ/Tj9iA1BfJzFKD9mAUXT3OenpuPHbI6P/myECxRJrofUsDx/5g==", - "dev": true, -- "optional": true, -- "os": [ -- "linux" -- ], - "engines": { -- "node": ">=12" -+ "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - } - }, -- "node_modules/@esbuild/linux-ppc64": { -- "version": "0.18.17", -- "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.18.17.tgz", -- "integrity": "sha512-BAAilJ0M5O2uMxHYGjFKn4nJKF6fNCdP1E0o5t5fvMYYzeIqy2JdAP88Az5LHt9qBoUa4tDaRpfWt21ep5/WqQ==", -- "cpu": [ -- "ppc64" -- ], -+ "node_modules/@humanwhocodes/config-array": { -+ "version": "0.11.14", -+ "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.14.tgz", -+ "integrity": "sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==", -+ "deprecated": "Use @eslint/config-array instead", - "dev": true, -- "optional": true, -- "os": [ -- "linux" -- ], -+ "dependencies": { -+ "@humanwhocodes/object-schema": "^2.0.2", -+ "debug": "^4.3.1", -+ "minimatch": "^3.0.5" -+ }, - "engines": { -- "node": ">=12" -+ "node": ">=10.10.0" - } - }, -- "node_modules/@esbuild/linux-riscv64": { -- "version": "0.18.17", -- "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.18.17.tgz", -- "integrity": "sha512-Wh/HW2MPnC3b8BqRSIme/9Zhab36PPH+3zam5pqGRH4pE+4xTrVLx2+XdGp6fVS3L2x+DrsIcsbMleex8fbE6g==", -- "cpu": [ -- "riscv64" -- ], -+ "node_modules/@humanwhocodes/config-array/node_modules/brace-expansion": { -+ "version": "1.1.11", -+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", -+ "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dev": true, -- "optional": true, -- "os": [ -- "linux" -- ], -- "engines": { -- "node": ">=12" -+ "dependencies": { -+ "balanced-match": "^1.0.0", -+ "concat-map": "0.0.1" - } - }, -- "node_modules/@esbuild/linux-s390x": { -- "version": "0.18.17", -- "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.18.17.tgz", -- "integrity": "sha512-j/34jAl3ul3PNcK3pfI0NSlBANduT2UO5kZ7FCaK33XFv3chDhICLY8wJJWIhiQ+YNdQ9dxqQctRg2bvrMlYgg==", -- "cpu": [ -- "s390x" -- ], -+ "node_modules/@humanwhocodes/config-array/node_modules/minimatch": { -+ "version": "3.1.2", -+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", -+ "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dev": true, -- "optional": true, -- "os": [ -- "linux" -- ], -+ "dependencies": { -+ "brace-expansion": "^1.1.7" -+ }, - "engines": { -- "node": ">=12" -+ "node": "*" - } - }, -- "node_modules/@esbuild/linux-x64": { -- "version": "0.18.17", -- "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.18.17.tgz", -- "integrity": "sha512-QM50vJ/y+8I60qEmFxMoxIx4de03pGo2HwxdBeFd4nMh364X6TIBZ6VQ5UQmPbQWUVWHWws5MmJXlHAXvJEmpQ==", -- "cpu": [ -- "x64" -- ], -+ "node_modules/@humanwhocodes/module-importer": { -+ "version": "1.0.1", -+ "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", -+ "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", - "dev": true, -- "optional": true, -- "os": [ -- "linux" -- ], - "engines": { -- "node": ">=12" -- } -- }, -- "node_modules/@esbuild/netbsd-x64": { -- "version": "0.18.17", -- "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.18.17.tgz", -- "integrity": "sha512-/jGlhWR7Sj9JPZHzXyyMZ1RFMkNPjC6QIAan0sDOtIo2TYk3tZn5UDrkE0XgsTQCxWTTOcMPf9p6Rh2hXtl5TQ==", -- "cpu": [ -- "x64" -- ], -- "dev": true, -- "optional": true, -- "os": [ -- "netbsd" -- ], -- "engines": { -- "node": ">=12" -- } -- }, -- "node_modules/@esbuild/openbsd-x64": { -- "version": "0.18.17", -- "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.18.17.tgz", -- "integrity": "sha512-rSEeYaGgyGGf4qZM2NonMhMOP/5EHp4u9ehFiBrg7stH6BYEEjlkVREuDEcQ0LfIl53OXLxNbfuIj7mr5m29TA==", -- "cpu": [ -- "x64" -- ], -- "dev": true, -- "optional": true, -- "os": [ -- "openbsd" -- ], -- "engines": { -- "node": ">=12" -- } -- }, -- "node_modules/@esbuild/sunos-x64": { -- "version": "0.18.17", -- "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.18.17.tgz", -- "integrity": "sha512-Y7ZBbkLqlSgn4+zot4KUNYst0bFoO68tRgI6mY2FIM+b7ZbyNVtNbDP5y8qlu4/knZZ73fgJDlXID+ohY5zt5g==", -- "cpu": [ -- "x64" -- ], -- "dev": true, -- "optional": true, -- "os": [ -- "sunos" -- ], -- "engines": { -- "node": ">=12" -- } -- }, -- "node_modules/@esbuild/win32-arm64": { -- "version": "0.18.17", -- "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.18.17.tgz", -- "integrity": "sha512-bwPmTJsEQcbZk26oYpc4c/8PvTY3J5/QK8jM19DVlEsAB41M39aWovWoHtNm78sd6ip6prilxeHosPADXtEJFw==", -- "cpu": [ -- "arm64" -- ], -- "dev": true, -- "optional": true, -- "os": [ -- "win32" -- ], -- "engines": { -- "node": ">=12" -- } -- }, -- "node_modules/@esbuild/win32-ia32": { -- "version": "0.18.17", -- "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.18.17.tgz", -- "integrity": "sha512-H/XaPtPKli2MhW+3CQueo6Ni3Avggi6hP/YvgkEe1aSaxw+AeO8MFjq8DlgfTd9Iz4Yih3QCZI6YLMoyccnPRg==", -- "cpu": [ -- "ia32" -- ], -- "dev": true, -- "optional": true, -- "os": [ -- "win32" -- ], -- "engines": { -- "node": ">=12" -+ "node": ">=12.22" -+ }, -+ "funding": { -+ "type": "github", -+ "url": "https://github.com/sponsors/nzakas" - } - }, -- "node_modules/@esbuild/win32-x64": { -- "version": "0.18.17", -- "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.18.17.tgz", -- "integrity": "sha512-fGEb8f2BSA3CW7riJVurug65ACLuQAzKq0SSqkY2b2yHHH0MzDfbLyKIGzHwOI/gkHcxM/leuSW6D5w/LMNitA==", -- "cpu": [ -- "x64" -- ], -- "dev": true, -- "optional": true, -- "os": [ -- "win32" -- ], -- "engines": { -- "node": ">=12" -- } -+ "node_modules/@humanwhocodes/object-schema": { -+ "version": "2.0.3", -+ "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.3.tgz", -+ "integrity": "sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==", -+ "deprecated": "Use @eslint/object-schema instead", -+ "dev": true - }, - "node_modules/@isaacs/cliui": { - "version": "8.0.2", -@@ -1179,19 +1014,19 @@ - } - }, - "node_modules/@patternfly/patternfly": { -- "version": "5.0.0-alpha.64", -- "resolved": "https://registry.npmjs.org/@patternfly/patternfly/-/patternfly-5.0.0-alpha.64.tgz", -- "integrity": "sha512-VJOCpS/WyhjkKqoaCo3usQxoXAj90p81NDHDE3/4/xTUYb53xNNXDJ1YwkPkG0RDvs6DaS9U/hEmu1AbCa9VEw==" -+ "version": "5.3.1", -+ "resolved": "https://registry.npmjs.org/@patternfly/patternfly/-/patternfly-5.3.1.tgz", -+ "integrity": "sha512-KYIr9pKRTzHZNGuDuaa5j5CaZyLltvotPFGG1BiJalBDBGSOyk0BZCgHLowm4txKZXrLhorEuuv9XLrMQL8eoA==" - }, - "node_modules/@patternfly/react-core": { -- "version": "5.0.0-alpha.115", -- "resolved": "https://registry.npmjs.org/@patternfly/react-core/-/react-core-5.0.0-alpha.115.tgz", -- "integrity": "sha512-hkpu7KbUeMGukuF34QxOuTHUd5EnVuhH5VZ0S9IaOrgRiXnK/xZsf5YQPj/2TL4lx8QOPiOOzDzvxLgpNSYaBQ==", -- "dependencies": { -- "@patternfly/react-icons": "^5.0.0-alpha.19", -- "@patternfly/react-styles": "^5.0.0-alpha.16", -- "@patternfly/react-tokens": "^5.0.0-alpha.14", -- "focus-trap": "7.4.2", -+ "version": "5.3.4", -+ "resolved": "https://registry.npmjs.org/@patternfly/react-core/-/react-core-5.3.4.tgz", -+ "integrity": "sha512-zr2yeilIoFp8MFOo0vNgI8XuM+P2466zHvy4smyRNRH2/but2WObqx7Wu4ftd/eBMYdNqmTeuXe6JeqqRqnPMQ==", -+ "dependencies": { -+ "@patternfly/react-icons": "^5.3.2", -+ "@patternfly/react-styles": "^5.3.1", -+ "@patternfly/react-tokens": "^5.3.1", -+ "focus-trap": "7.5.2", - "react-dropzone": "^14.2.3", - "tslib": "^2.5.0" - }, -@@ -1201,23 +1036,23 @@ - } - }, - "node_modules/@patternfly/react-icons": { -- "version": "5.0.0-alpha.19", -- "resolved": "https://registry.npmjs.org/@patternfly/react-icons/-/react-icons-5.0.0-alpha.19.tgz", -- "integrity": "sha512-jyVSK6f9ueIO+pI2K2njI/4qdQR9WK953IUJtQ6PtNhLHKsAHOnqwHjBUrqxWOBZ+ty5MpqHPoB9Yd34i8vcxg==", -+ "version": "5.3.2", -+ "resolved": "https://registry.npmjs.org/@patternfly/react-icons/-/react-icons-5.3.2.tgz", -+ "integrity": "sha512-GEygYbl0H4zD8nZuTQy2dayKIrV2bMMeWKSOEZ16Y3EYNgYVUOUnN+J0naAEuEGH39Xb1DE9n+XUbE1PC4CxPA==", - "peerDependencies": { - "react": "^17 || ^18", - "react-dom": "^17 || ^18" - } - }, - "node_modules/@patternfly/react-styles": { -- "version": "5.0.0-alpha.16", -- "resolved": "https://registry.npmjs.org/@patternfly/react-styles/-/react-styles-5.0.0-alpha.16.tgz", -- "integrity": "sha512-RxU8sSKY0tM40xZwk+BR5vWotP+LZOH2vqdNFEIT7a1+1Kr9qSm5ktq34gnzK0nyWUaH08qL9da4HVo3/O+R4A==" -+ "version": "5.3.1", -+ "resolved": "https://registry.npmjs.org/@patternfly/react-styles/-/react-styles-5.3.1.tgz", -+ "integrity": "sha512-H6uBoFH3bJjD6PP75qZ4k+2TtF59vxf9sIVerPpwrGJcRgBZbvbMZCniSC3+S2LQ8DgXLnDvieq78jJzHz0hiA==" - }, - "node_modules/@patternfly/react-tokens": { -- "version": "5.0.0-prerelease.9", -- "resolved": "https://registry.npmjs.org/@patternfly/react-tokens/-/react-tokens-5.0.0-prerelease.9.tgz", -- "integrity": "sha512-x3kJolPS95LJSiS2n3T9KL6MNjtuM9qKKzbqK1nkiftAytubcoQ9O7ikEjDYiILHpupo5lG5H9Cr50kAwu1rsA==" -+ "version": "5.3.1", -+ "resolved": "https://registry.npmjs.org/@patternfly/react-tokens/-/react-tokens-5.3.1.tgz", -+ "integrity": "sha512-VYK0uVP2/2RJ7ZshJCCLeq0Boih5I1bv+9Z/Bg6h12dCkLs85XsxAX9Ve+BGIo5DF54/mzcRHE1RKYap4ISXuw==" - }, - "node_modules/@pkgjs/parseargs": { - "version": "0.11.0", -@@ -1228,84 +1063,6 @@ - "node": ">=14" - } - }, -- "node_modules/@rometools/cli-darwin-arm64": { -- "version": "12.1.3", -- "resolved": "https://registry.npmjs.org/@rometools/cli-darwin-arm64/-/cli-darwin-arm64-12.1.3.tgz", -- "integrity": "sha512-AmFTUDYjBuEGQp/Wwps+2cqUr+qhR7gyXAUnkL5psCuNCz3807TrUq/ecOoct5MIavGJTH6R4aaSL6+f+VlBEg==", -- "cpu": [ -- "arm64" -- ], -- "dev": true, -- "optional": true, -- "os": [ -- "darwin" -- ] -- }, -- "node_modules/@rometools/cli-darwin-x64": { -- "version": "12.1.3", -- "resolved": "https://registry.npmjs.org/@rometools/cli-darwin-x64/-/cli-darwin-x64-12.1.3.tgz", -- "integrity": "sha512-k8MbWna8q4LRlb005N2X+JS1UQ+s3ZLBBvwk4fP8TBxlAJXUz17jLLu/Fi+7DTTEmMhM84TWj4FDKW+rNar28g==", -- "cpu": [ -- "x64" -- ], -- "dev": true, -- "optional": true, -- "os": [ -- "darwin" -- ] -- }, -- "node_modules/@rometools/cli-linux-arm64": { -- "version": "12.1.3", -- "resolved": "https://registry.npmjs.org/@rometools/cli-linux-arm64/-/cli-linux-arm64-12.1.3.tgz", -- "integrity": "sha512-X/uLhJ2/FNA3nu5TiyeNPqiD3OZoFfNfRvw6a3ut0jEREPvEn72NI7WPijH/gxSz55znfQ7UQ6iM4DZumUknJg==", -- "cpu": [ -- "arm64" -- ], -- "dev": true, -- "optional": true, -- "os": [ -- "linux" -- ] -- }, -- "node_modules/@rometools/cli-linux-x64": { -- "version": "12.1.3", -- "resolved": "https://registry.npmjs.org/@rometools/cli-linux-x64/-/cli-linux-x64-12.1.3.tgz", -- "integrity": "sha512-csP17q1eWiUXx9z6Jr/JJPibkplyKIwiWPYNzvPCGE8pHlKhwZj3YHRuu7Dm/4EOqx0XFIuqqWZUYm9bkIC8xg==", -- "cpu": [ -- "x64" -- ], -- "dev": true, -- "optional": true, -- "os": [ -- "linux" -- ] -- }, -- "node_modules/@rometools/cli-win32-arm64": { -- "version": "12.1.3", -- "resolved": "https://registry.npmjs.org/@rometools/cli-win32-arm64/-/cli-win32-arm64-12.1.3.tgz", -- "integrity": "sha512-RymHWeod57EBOJY4P636CgUwYA6BQdkQjh56XKk4pLEHO6X1bFyMet2XL7KlHw5qOTalzuzf5jJqUs+vf3jdXQ==", -- "cpu": [ -- "arm64" -- ], -- "dev": true, -- "optional": true, -- "os": [ -- "win32" -- ] -- }, -- "node_modules/@rometools/cli-win32-x64": { -- "version": "12.1.3", -- "resolved": "https://registry.npmjs.org/@rometools/cli-win32-x64/-/cli-win32-x64-12.1.3.tgz", -- "integrity": "sha512-yHSKYidqJMV9nADqg78GYA+cZ0hS1twANAjiFibQdXj9aGzD+s/IzIFEIi/U/OBLvWYg/SCw0QVozi2vTlKFDQ==", -- "cpu": [ -- "x64" -- ], -- "dev": true, -- "optional": true, -- "os": [ -- "win32" -- ] -- }, - "node_modules/@types/eslint": { - "version": "8.44.1", - "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.44.1.tgz", -@@ -1342,6 +1099,12 @@ - "dev": true, - "peer": true - }, -+ "node_modules/@types/json5": { -+ "version": "0.0.29", -+ "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", -+ "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==", -+ "dev": true -+ }, - "node_modules/@types/node": { - "version": "20.4.5", - "resolved": "https://registry.npmjs.org/@types/node/-/node-20.4.5.tgz", -@@ -1356,29 +1119,226 @@ - "dev": true - }, - "node_modules/@types/react": { -- "version": "18.2.17", -- "resolved": "https://registry.npmjs.org/@types/react/-/react-18.2.17.tgz", -- "integrity": "sha512-u+e7OlgPPh+aryjOm5UJMX32OvB2E3QASOAqVMY6Ahs90djagxwv2ya0IctglNbNTexC12qCSMZG47KPfy1hAA==", -+ "version": "18.3.3", -+ "resolved": "https://registry.npmjs.org/@types/react/-/react-18.3.3.tgz", -+ "integrity": "sha512-hti/R0pS0q1/xx+TsI73XIqk26eBsISZ2R0wUijXIngRK9R/e7Xw/cXVxQK7R5JjW+SV4zGcn5hXjudkN/pLIw==", - "dev": true, - "dependencies": { - "@types/prop-types": "*", -- "@types/scheduler": "*", - "csstype": "^3.0.2" - } - }, - "node_modules/@types/react-dom": { -- "version": "18.2.7", -- "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.2.7.tgz", -- "integrity": "sha512-GRaAEriuT4zp9N4p1i8BDBYmEyfo+xQ3yHjJU4eiK5NDa1RmUZG+unZABUTK4/Ox/M+GaHwb6Ow8rUITrtjszA==", -+ "version": "18.3.0", -+ "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.3.0.tgz", -+ "integrity": "sha512-EhwApuTmMBmXuFOikhQLIBUn6uFg81SwLMOAUgodJF14SOBOCMdU04gDoYi0WOJJHD144TL32z4yDqCW3dnkQg==", - "dev": true, - "dependencies": { - "@types/react": "*" - } - }, -- "node_modules/@types/scheduler": { -- "version": "0.16.3", -- "resolved": "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.3.tgz", -- "integrity": "sha512-5cJ8CB4yAx7BH1oMvdU0Jh9lrEXyPkar6F9G/ERswkCuvP4KQZfZkSjcMbAICCpQTN4OuZn8tz0HiKv9TGZgrQ==", -+ "node_modules/@typescript-eslint/eslint-plugin": { -+ "version": "7.17.0", -+ "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-7.17.0.tgz", -+ "integrity": "sha512-pyiDhEuLM3PuANxH7uNYan1AaFs5XE0zw1hq69JBvGvE7gSuEoQl1ydtEe/XQeoC3GQxLXyOVa5kNOATgM638A==", -+ "dev": true, -+ "dependencies": { -+ "@eslint-community/regexpp": "^4.10.0", -+ "@typescript-eslint/scope-manager": "7.17.0", -+ "@typescript-eslint/type-utils": "7.17.0", -+ "@typescript-eslint/utils": "7.17.0", -+ "@typescript-eslint/visitor-keys": "7.17.0", -+ "graphemer": "^1.4.0", -+ "ignore": "^5.3.1", -+ "natural-compare": "^1.4.0", -+ "ts-api-utils": "^1.3.0" -+ }, -+ "engines": { -+ "node": "^18.18.0 || >=20.0.0" -+ }, -+ "funding": { -+ "type": "opencollective", -+ "url": "https://opencollective.com/typescript-eslint" -+ }, -+ "peerDependencies": { -+ "@typescript-eslint/parser": "^7.0.0", -+ "eslint": "^8.56.0" -+ }, -+ "peerDependenciesMeta": { -+ "typescript": { -+ "optional": true -+ } -+ } -+ }, -+ "node_modules/@typescript-eslint/parser": { -+ "version": "7.17.0", -+ "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-7.17.0.tgz", -+ "integrity": "sha512-puiYfGeg5Ydop8eusb/Hy1k7QmOU6X3nvsqCgzrB2K4qMavK//21+PzNE8qeECgNOIoertJPUC1SpegHDI515A==", -+ "dev": true, -+ "peer": true, -+ "dependencies": { -+ "@typescript-eslint/scope-manager": "7.17.0", -+ "@typescript-eslint/types": "7.17.0", -+ "@typescript-eslint/typescript-estree": "7.17.0", -+ "@typescript-eslint/visitor-keys": "7.17.0", -+ "debug": "^4.3.4" -+ }, -+ "engines": { -+ "node": "^18.18.0 || >=20.0.0" -+ }, -+ "funding": { -+ "type": "opencollective", -+ "url": "https://opencollective.com/typescript-eslint" -+ }, -+ "peerDependencies": { -+ "eslint": "^8.56.0" -+ }, -+ "peerDependenciesMeta": { -+ "typescript": { -+ "optional": true -+ } -+ } -+ }, -+ "node_modules/@typescript-eslint/scope-manager": { -+ "version": "7.17.0", -+ "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-7.17.0.tgz", -+ "integrity": "sha512-0P2jTTqyxWp9HiKLu/Vemr2Rg1Xb5B7uHItdVZ6iAenXmPo4SZ86yOPCJwMqpCyaMiEHTNqizHfsbmCFT1x9SA==", -+ "dev": true, -+ "dependencies": { -+ "@typescript-eslint/types": "7.17.0", -+ "@typescript-eslint/visitor-keys": "7.17.0" -+ }, -+ "engines": { -+ "node": "^18.18.0 || >=20.0.0" -+ }, -+ "funding": { -+ "type": "opencollective", -+ "url": "https://opencollective.com/typescript-eslint" -+ } -+ }, -+ "node_modules/@typescript-eslint/type-utils": { -+ "version": "7.17.0", -+ "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-7.17.0.tgz", -+ "integrity": "sha512-XD3aaBt+orgkM/7Cei0XNEm1vwUxQ958AOLALzPlbPqb8C1G8PZK85tND7Jpe69Wualri81PLU+Zc48GVKIMMA==", -+ "dev": true, -+ "dependencies": { -+ "@typescript-eslint/typescript-estree": "7.17.0", -+ "@typescript-eslint/utils": "7.17.0", -+ "debug": "^4.3.4", -+ "ts-api-utils": "^1.3.0" -+ }, -+ "engines": { -+ "node": "^18.18.0 || >=20.0.0" -+ }, -+ "funding": { -+ "type": "opencollective", -+ "url": "https://opencollective.com/typescript-eslint" -+ }, -+ "peerDependencies": { -+ "eslint": "^8.56.0" -+ }, -+ "peerDependenciesMeta": { -+ "typescript": { -+ "optional": true -+ } -+ } -+ }, -+ "node_modules/@typescript-eslint/types": { -+ "version": "7.17.0", -+ "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-7.17.0.tgz", -+ "integrity": "sha512-a29Ir0EbyKTKHnZWbNsrc/gqfIBqYPwj3F2M+jWE/9bqfEHg0AMtXzkbUkOG6QgEScxh2+Pz9OXe11jHDnHR7A==", -+ "dev": true, -+ "engines": { -+ "node": "^18.18.0 || >=20.0.0" -+ }, -+ "funding": { -+ "type": "opencollective", -+ "url": "https://opencollective.com/typescript-eslint" -+ } -+ }, -+ "node_modules/@typescript-eslint/typescript-estree": { -+ "version": "7.17.0", -+ "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-7.17.0.tgz", -+ "integrity": "sha512-72I3TGq93t2GoSBWI093wmKo0n6/b7O4j9o8U+f65TVD0FS6bI2180X5eGEr8MA8PhKMvYe9myZJquUT2JkCZw==", -+ "dev": true, -+ "dependencies": { -+ "@typescript-eslint/types": "7.17.0", -+ "@typescript-eslint/visitor-keys": "7.17.0", -+ "debug": "^4.3.4", -+ "globby": "^11.1.0", -+ "is-glob": "^4.0.3", -+ "minimatch": "^9.0.4", -+ "semver": "^7.6.0", -+ "ts-api-utils": "^1.3.0" -+ }, -+ "engines": { -+ "node": "^18.18.0 || >=20.0.0" -+ }, -+ "funding": { -+ "type": "opencollective", -+ "url": "https://opencollective.com/typescript-eslint" -+ }, -+ "peerDependenciesMeta": { -+ "typescript": { -+ "optional": true -+ } -+ } -+ }, -+ "node_modules/@typescript-eslint/typescript-estree/node_modules/semver": { -+ "version": "7.6.3", -+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", -+ "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", -+ "dev": true, -+ "bin": { -+ "semver": "bin/semver.js" -+ }, -+ "engines": { -+ "node": ">=10" -+ } -+ }, -+ "node_modules/@typescript-eslint/utils": { -+ "version": "7.17.0", -+ "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-7.17.0.tgz", -+ "integrity": "sha512-r+JFlm5NdB+JXc7aWWZ3fKSm1gn0pkswEwIYsrGPdsT2GjsRATAKXiNtp3vgAAO1xZhX8alIOEQnNMl3kbTgJw==", -+ "dev": true, -+ "dependencies": { -+ "@eslint-community/eslint-utils": "^4.4.0", -+ "@typescript-eslint/scope-manager": "7.17.0", -+ "@typescript-eslint/types": "7.17.0", -+ "@typescript-eslint/typescript-estree": "7.17.0" -+ }, -+ "engines": { -+ "node": "^18.18.0 || >=20.0.0" -+ }, -+ "funding": { -+ "type": "opencollective", -+ "url": "https://opencollective.com/typescript-eslint" -+ }, -+ "peerDependencies": { -+ "eslint": "^8.56.0" -+ } -+ }, -+ "node_modules/@typescript-eslint/visitor-keys": { -+ "version": "7.17.0", -+ "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-7.17.0.tgz", -+ "integrity": "sha512-RVGC9UhPOCsfCdI9pU++K4nD7to+jTcMIbXTSOcrLqUEW6gF2pU1UUbYJKc9cvcRSK1UDeMJ7pdMxf4bhMpV/A==", -+ "dev": true, -+ "dependencies": { -+ "@typescript-eslint/types": "7.17.0", -+ "eslint-visitor-keys": "^3.4.3" -+ }, -+ "engines": { -+ "node": "^18.18.0 || >=20.0.0" -+ }, -+ "funding": { -+ "type": "opencollective", -+ "url": "https://opencollective.com/typescript-eslint" -+ } -+ }, -+ "node_modules/@ungap/structured-clone": { -+ "version": "1.2.0", -+ "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.2.0.tgz", -+ "integrity": "sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==", - "dev": true - }, - "node_modules/@webassemblyjs/ast": { -@@ -1579,7 +1539,6 @@ - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.10.0.tgz", - "integrity": "sha512-F0SAmZ8iUtS//m8DmCTA0jlh6TDKkHQyK6xc6V4KDTyZKA9dnvX9/3sRTVQrWm79glUAZbnmmNcdYwUIHWVybw==", - "dev": true, -- "peer": true, - "bin": { - "acorn": "bin/acorn" - }, -@@ -1597,12 +1556,20 @@ - "acorn": "^8" - } - }, -+ "node_modules/acorn-jsx": { -+ "version": "5.3.2", -+ "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", -+ "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", -+ "dev": true, -+ "peerDependencies": { -+ "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" -+ } -+ }, - "node_modules/ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "dev": true, -- "peer": true, - "dependencies": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", -@@ -1624,6 +1591,18 @@ - "ajv": "^6.9.1" - } - }, -+ "node_modules/ansi-escapes": { -+ "version": "6.2.1", -+ "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-6.2.1.tgz", -+ "integrity": "sha512-4nJ3yixlEthEJ9Rk4vPcdBRkZvQZlYyu8j4/Mqz5sgIkddmEnH2Yj2ZrnP9S3tQOvSNRUIgVNF/1yPpRAGNRig==", -+ "dev": true, -+ "engines": { -+ "node": ">=14.16" -+ }, -+ "funding": { -+ "url": "https://github.com/sponsors/sindresorhus" -+ } -+ }, - "node_modules/ansi-regex": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", -@@ -1667,13 +1646,35 @@ - "dev": true - }, - "node_modules/array-buffer-byte-length": { -- "version": "1.0.0", -- "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.0.tgz", -- "integrity": "sha512-LPuwb2P+NrQw3XhxGc36+XSvuBPopovXYTR9Ew++Du9Yb/bx5AzBfrIsBoj0EZUifjQU+sHL21sseZ3jerWO/A==", -- "peer": true, -+ "version": "1.0.1", -+ "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.1.tgz", -+ "integrity": "sha512-ahC5W1xgou+KTXix4sAO8Ki12Q+jf4i0+tmk3sC+zgcynshkHxzpXdImBehiUYKKKDwvfFiJl1tZt6ewscS1Mg==", - "dependencies": { -- "call-bind": "^1.0.2", -- "is-array-buffer": "^3.0.1" -+ "call-bind": "^1.0.5", -+ "is-array-buffer": "^3.0.4" -+ }, -+ "engines": { -+ "node": ">= 0.4" -+ }, -+ "funding": { -+ "url": "https://github.com/sponsors/ljharb" -+ } -+ }, -+ "node_modules/array-includes": { -+ "version": "3.1.8", -+ "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.8.tgz", -+ "integrity": "sha512-itaWrbYbqpGXkGhZPGUulwnhVf5Hpy1xiCFsGqyIGglbBxmG5vSjxQen3/WGOjPpNEv1RtBLKxbmVXm8HpJStQ==", -+ "dev": true, -+ "dependencies": { -+ "call-bind": "^1.0.7", -+ "define-properties": "^1.2.1", -+ "es-abstract": "^1.23.2", -+ "es-object-atoms": "^1.0.0", -+ "get-intrinsic": "^1.2.4", -+ "is-string": "^1.0.7" -+ }, -+ "engines": { -+ "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" -@@ -1688,10 +1689,133 @@ - "node": ">=8" - } - }, -- "node_modules/at-least-node": { -- "version": "1.0.0", -- "resolved": "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz", -- "integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==", -+ "node_modules/array.prototype.findlast": { -+ "version": "1.2.5", -+ "resolved": "https://registry.npmjs.org/array.prototype.findlast/-/array.prototype.findlast-1.2.5.tgz", -+ "integrity": "sha512-CVvd6FHg1Z3POpBLxO6E6zr+rSKEQ9L6rZHAaY7lLfhKsWYUBBOuMs0e9o24oopj6H+geRCX0YJ+TJLBK2eHyQ==", -+ "dev": true, -+ "dependencies": { -+ "call-bind": "^1.0.7", -+ "define-properties": "^1.2.1", -+ "es-abstract": "^1.23.2", -+ "es-errors": "^1.3.0", -+ "es-object-atoms": "^1.0.0", -+ "es-shim-unscopables": "^1.0.2" -+ }, -+ "engines": { -+ "node": ">= 0.4" -+ }, -+ "funding": { -+ "url": "https://github.com/sponsors/ljharb" -+ } -+ }, -+ "node_modules/array.prototype.findlastindex": { -+ "version": "1.2.5", -+ "resolved": "https://registry.npmjs.org/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.5.tgz", -+ "integrity": "sha512-zfETvRFA8o7EiNn++N5f/kaCw221hrpGsDmcpndVupkPzEc1Wuf3VgC0qby1BbHs7f5DVYjgtEU2LLh5bqeGfQ==", -+ "dev": true, -+ "dependencies": { -+ "call-bind": "^1.0.7", -+ "define-properties": "^1.2.1", -+ "es-abstract": "^1.23.2", -+ "es-errors": "^1.3.0", -+ "es-object-atoms": "^1.0.0", -+ "es-shim-unscopables": "^1.0.2" -+ }, -+ "engines": { -+ "node": ">= 0.4" -+ }, -+ "funding": { -+ "url": "https://github.com/sponsors/ljharb" -+ } -+ }, -+ "node_modules/array.prototype.flat": { -+ "version": "1.3.2", -+ "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.2.tgz", -+ "integrity": "sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA==", -+ "dev": true, -+ "dependencies": { -+ "call-bind": "^1.0.2", -+ "define-properties": "^1.2.0", -+ "es-abstract": "^1.22.1", -+ "es-shim-unscopables": "^1.0.0" -+ }, -+ "engines": { -+ "node": ">= 0.4" -+ }, -+ "funding": { -+ "url": "https://github.com/sponsors/ljharb" -+ } -+ }, -+ "node_modules/array.prototype.flatmap": { -+ "version": "1.3.2", -+ "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.2.tgz", -+ "integrity": "sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ==", -+ "dev": true, -+ "dependencies": { -+ "call-bind": "^1.0.2", -+ "define-properties": "^1.2.0", -+ "es-abstract": "^1.22.1", -+ "es-shim-unscopables": "^1.0.0" -+ }, -+ "engines": { -+ "node": ">= 0.4" -+ }, -+ "funding": { -+ "url": "https://github.com/sponsors/ljharb" -+ } -+ }, -+ "node_modules/array.prototype.tosorted": { -+ "version": "1.1.4", -+ "resolved": "https://registry.npmjs.org/array.prototype.tosorted/-/array.prototype.tosorted-1.1.4.tgz", -+ "integrity": "sha512-p6Fx8B7b7ZhL/gmUsAy0D15WhvDccw3mnGNbZpi3pmeJdxtWsj2jEaI4Y6oo3XiHfzuSgPwKc04MYt6KgvC/wA==", -+ "dev": true, -+ "dependencies": { -+ "call-bind": "^1.0.7", -+ "define-properties": "^1.2.1", -+ "es-abstract": "^1.23.3", -+ "es-errors": "^1.3.0", -+ "es-shim-unscopables": "^1.0.2" -+ }, -+ "engines": { -+ "node": ">= 0.4" -+ } -+ }, -+ "node_modules/arraybuffer.prototype.slice": { -+ "version": "1.0.3", -+ "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.3.tgz", -+ "integrity": "sha512-bMxMKAjg13EBSVscxTaYA4mRc5t1UAXa2kXiGTNfZ079HIWXEkKmkgFrh/nJqamaLSrXO5H4WFFkPEaLJWbs3A==", -+ "dev": true, -+ "dependencies": { -+ "array-buffer-byte-length": "^1.0.1", -+ "call-bind": "^1.0.5", -+ "define-properties": "^1.2.1", -+ "es-abstract": "^1.22.3", -+ "es-errors": "^1.2.1", -+ "get-intrinsic": "^1.2.3", -+ "is-array-buffer": "^3.0.4", -+ "is-shared-array-buffer": "^1.0.2" -+ }, -+ "engines": { -+ "node": ">= 0.4" -+ }, -+ "funding": { -+ "url": "https://github.com/sponsors/ljharb" -+ } -+ }, -+ "node_modules/astral-regex": { -+ "version": "2.0.0", -+ "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz", -+ "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==", -+ "dev": true, -+ "engines": { -+ "node": ">=8" -+ } -+ }, -+ "node_modules/at-least-node": { -+ "version": "1.0.0", -+ "resolved": "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz", -+ "integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==", - "dev": true, - "engines": { - "node": ">= 4.0.0" -@@ -1706,10 +1830,12 @@ - } - }, - "node_modules/available-typed-arrays": { -- "version": "1.0.5", -- "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz", -- "integrity": "sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==", -- "peer": true, -+ "version": "1.0.7", -+ "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz", -+ "integrity": "sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==", -+ "dependencies": { -+ "possible-typed-array-names": "^1.0.0" -+ }, - "engines": { - "node": ">= 0.4" - }, -@@ -1828,6 +1954,13 @@ - "ieee754": "^1.2.1" - } - }, -+ "node_modules/buffer-builder": { -+ "version": "0.2.0", -+ "resolved": "https://registry.npmjs.org/buffer-builder/-/buffer-builder-0.2.0.tgz", -+ "integrity": "sha512-7VPMEPuYznPSoR21NE1zvd2Xna6c/CloiZCfcMXR1Jny6PjX0N4Nsa38zcBFo/FMK+BlA+FLKbJCQ0i2yxp+Xg==", -+ "dev": true, -+ "peer": true -+ }, - "node_modules/buffer-from": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", -@@ -1835,19 +1968,69 @@ - "dev": true, - "peer": true - }, -- "node_modules/call-bind": { -- "version": "1.0.2", -- "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", -- "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", -+ "node_modules/builtin-modules": { -+ "version": "3.3.0", -+ "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-3.3.0.tgz", -+ "integrity": "sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==", -+ "dev": true, -+ "peer": true, -+ "engines": { -+ "node": ">=6" -+ }, -+ "funding": { -+ "url": "https://github.com/sponsors/sindresorhus" -+ } -+ }, -+ "node_modules/builtins": { -+ "version": "5.1.0", -+ "resolved": "https://registry.npmjs.org/builtins/-/builtins-5.1.0.tgz", -+ "integrity": "sha512-SW9lzGTLvWTP1AY8xeAMZimqDrIaSdLQUcVr9DMef51niJ022Ri87SwRRKYm4A6iHfkPaiVUu/Duw2Wc4J7kKg==", -+ "dev": true, -+ "peer": true, -+ "dependencies": { -+ "semver": "^7.0.0" -+ } -+ }, -+ "node_modules/builtins/node_modules/semver": { -+ "version": "7.6.3", -+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", -+ "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", -+ "dev": true, - "peer": true, -+ "bin": { -+ "semver": "bin/semver.js" -+ }, -+ "engines": { -+ "node": ">=10" -+ } -+ }, -+ "node_modules/call-bind": { -+ "version": "1.0.7", -+ "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.7.tgz", -+ "integrity": "sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==", - "dependencies": { -- "function-bind": "^1.1.1", -- "get-intrinsic": "^1.0.2" -+ "es-define-property": "^1.0.0", -+ "es-errors": "^1.3.0", -+ "function-bind": "^1.1.2", -+ "get-intrinsic": "^1.2.4", -+ "set-function-length": "^1.2.1" -+ }, -+ "engines": { -+ "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, -+ "node_modules/callsites": { -+ "version": "3.1.0", -+ "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", -+ "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", -+ "dev": true, -+ "engines": { -+ "node": ">=6" -+ } -+ }, - "node_modules/caniuse-lite": { - "version": "1.0.30001517", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001517.tgz", -@@ -1911,9 +2094,9 @@ - } - }, - "node_modules/chrome-remote-interface": { -- "version": "0.32.2", -- "resolved": "https://registry.npmjs.org/chrome-remote-interface/-/chrome-remote-interface-0.32.2.tgz", -- "integrity": "sha512-3UbFKtEmqApehPQnqdblcggx7KveQphEMKQmdJZsOguE9ylw2N2/9Z7arO7xS55+DBJ/hyP8RrayLt4MMdJvQg==", -+ "version": "0.33.2", -+ "resolved": "https://registry.npmjs.org/chrome-remote-interface/-/chrome-remote-interface-0.33.2.tgz", -+ "integrity": "sha512-wvm9cOeBTrb218EC+6DteGt92iXr2iY0+XJP30f15JVDhqvWvJEVACh9GvUm8b9Yd8bxQivaLSb8k7mgrbyomQ==", - "dev": true, - "dependencies": { - "commander": "2.11.x", -@@ -1963,6 +2146,12 @@ - "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", - "dev": true - }, -+ "node_modules/colord": { -+ "version": "2.9.3", -+ "resolved": "https://registry.npmjs.org/colord/-/colord-2.9.3.tgz", -+ "integrity": "sha512-jeC1axXpnb0/2nn/Y1LPuLdgXBLH7aDcHu4KEKfqw3CUhX7ZpfBSlPKyqXE6btIgEzfWtrX3/tyBCaCvXvMkOw==", -+ "dev": true -+ }, - "node_modules/commander": { - "version": "2.11.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.11.0.tgz", -@@ -1991,6 +2180,32 @@ - "dev": true, - "peer": true - }, -+ "node_modules/cosmiconfig": { -+ "version": "9.0.0", -+ "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-9.0.0.tgz", -+ "integrity": "sha512-itvL5h8RETACmOTFc4UfIyB2RfEHi71Ax6E/PivVxq9NseKbOWpeyHEOIbmAw1rs8Ak0VursQNww7lf7YtUwzg==", -+ "dev": true, -+ "dependencies": { -+ "env-paths": "^2.2.1", -+ "import-fresh": "^3.3.0", -+ "js-yaml": "^4.1.0", -+ "parse-json": "^5.2.0" -+ }, -+ "engines": { -+ "node": ">=14" -+ }, -+ "funding": { -+ "url": "https://github.com/sponsors/d-fischer" -+ }, -+ "peerDependencies": { -+ "typescript": ">=4.9.5" -+ }, -+ "peerDependenciesMeta": { -+ "typescript": { -+ "optional": true -+ } -+ } -+ }, - "node_modules/cross-spawn": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", -@@ -2004,12 +2219,97 @@ - "node": ">= 8" - } - }, -+ "node_modules/css-functions-list": { -+ "version": "3.2.2", -+ "resolved": "https://registry.npmjs.org/css-functions-list/-/css-functions-list-3.2.2.tgz", -+ "integrity": "sha512-c+N0v6wbKVxTu5gOBBFkr9BEdBWaqqjQeiJ8QvSRIJOf+UxlJh930m8e6/WNeODIK0mYLFkoONrnj16i2EcvfQ==", -+ "dev": true, -+ "engines": { -+ "node": ">=12 || >=16" -+ } -+ }, -+ "node_modules/css-tree": { -+ "version": "2.3.1", -+ "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-2.3.1.tgz", -+ "integrity": "sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw==", -+ "dev": true, -+ "dependencies": { -+ "mdn-data": "2.0.30", -+ "source-map-js": "^1.0.1" -+ }, -+ "engines": { -+ "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0" -+ } -+ }, -+ "node_modules/cssesc": { -+ "version": "3.0.0", -+ "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", -+ "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", -+ "dev": true, -+ "bin": { -+ "cssesc": "bin/cssesc" -+ }, -+ "engines": { -+ "node": ">=4" -+ } -+ }, - "node_modules/csstype": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.2.tgz", - "integrity": "sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ==", - "dev": true - }, -+ "node_modules/data-view-buffer": { -+ "version": "1.0.1", -+ "resolved": "https://registry.npmjs.org/data-view-buffer/-/data-view-buffer-1.0.1.tgz", -+ "integrity": "sha512-0lht7OugA5x3iJLOWFhWK/5ehONdprk0ISXqVFn/NFrDu+cuc8iADFrGQz5BnRK7LLU3JmkbXSxaqX+/mXYtUA==", -+ "dev": true, -+ "dependencies": { -+ "call-bind": "^1.0.6", -+ "es-errors": "^1.3.0", -+ "is-data-view": "^1.0.1" -+ }, -+ "engines": { -+ "node": ">= 0.4" -+ }, -+ "funding": { -+ "url": "https://github.com/sponsors/ljharb" -+ } -+ }, -+ "node_modules/data-view-byte-length": { -+ "version": "1.0.1", -+ "resolved": "https://registry.npmjs.org/data-view-byte-length/-/data-view-byte-length-1.0.1.tgz", -+ "integrity": "sha512-4J7wRJD3ABAzr8wP+OcIcqq2dlUKp4DVflx++hs5h5ZKydWMI6/D/fAot+yh6g2tHh8fLFTvNOaVN357NvSrOQ==", -+ "dev": true, -+ "dependencies": { -+ "call-bind": "^1.0.7", -+ "es-errors": "^1.3.0", -+ "is-data-view": "^1.0.1" -+ }, -+ "engines": { -+ "node": ">= 0.4" -+ }, -+ "funding": { -+ "url": "https://github.com/sponsors/ljharb" -+ } -+ }, -+ "node_modules/data-view-byte-offset": { -+ "version": "1.0.0", -+ "resolved": "https://registry.npmjs.org/data-view-byte-offset/-/data-view-byte-offset-1.0.0.tgz", -+ "integrity": "sha512-t/Ygsytq+R995EJ5PZlD4Cu56sWa8InXySaViRzw9apusqsOO2bQP+SbYzAhR0pFKoB+43lYy8rWban9JSuXnA==", -+ "dev": true, -+ "dependencies": { -+ "call-bind": "^1.0.6", -+ "es-errors": "^1.3.0", -+ "is-data-view": "^1.0.1" -+ }, -+ "engines": { -+ "node": ">= 0.4" -+ }, -+ "funding": { -+ "url": "https://github.com/sponsors/ljharb" -+ } -+ }, - "node_modules/date-fns": { - "version": "2.30.0", - "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-2.30.0.tgz", -@@ -2027,11 +2327,10 @@ - } - }, - "node_modules/debug": { -- "version": "4.3.4", -- "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", -- "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", -+ "version": "4.3.5", -+ "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.5.tgz", -+ "integrity": "sha512-pt0bNEmneDIvdL1Xsd9oDQ/wrQRkXDT4AUWlNZNPKvW5x/jyO9VFXkJUP07vQ2upmw5PlaITaPKc31jK13V+jg==", - "dev": true, -- "peer": true, - "dependencies": { - "ms": "2.1.2" - }, -@@ -2073,12 +2372,34 @@ - "url": "https://github.com/sponsors/ljharb" - } - }, -+ "node_modules/deep-is": { -+ "version": "0.1.4", -+ "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", -+ "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", -+ "dev": true -+ }, -+ "node_modules/define-data-property": { -+ "version": "1.1.4", -+ "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz", -+ "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", -+ "dependencies": { -+ "es-define-property": "^1.0.0", -+ "es-errors": "^1.3.0", -+ "gopd": "^1.0.1" -+ }, -+ "engines": { -+ "node": ">= 0.4" -+ }, -+ "funding": { -+ "url": "https://github.com/sponsors/ljharb" -+ } -+ }, - "node_modules/define-properties": { -- "version": "1.2.0", -- "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.0.tgz", -- "integrity": "sha512-xvqAVKGfT1+UAvPwKTVw/njhdQ8ZhXK4lI0bCIuCMrp2up9nPnaDftrLtmpTazqd1o+UY4zgzU+avtMbDP+ldA==", -- "peer": true, -+ "version": "1.2.1", -+ "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz", -+ "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==", - "dependencies": { -+ "define-data-property": "^1.0.1", - "has-property-descriptors": "^1.0.0", - "object-keys": "^1.1.1" - }, -@@ -2101,6 +2422,18 @@ - "node": ">=8" - } - }, -+ "node_modules/doctrine": { -+ "version": "3.0.0", -+ "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", -+ "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", -+ "dev": true, -+ "dependencies": { -+ "esutils": "^2.0.2" -+ }, -+ "engines": { -+ "node": ">=6.0.0" -+ } -+ }, - "node_modules/eastasianwidth": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", -@@ -2140,6 +2473,103 @@ - "node": ">=10.13.0" - } - }, -+ "node_modules/env-paths": { -+ "version": "2.2.1", -+ "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz", -+ "integrity": "sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==", -+ "dev": true, -+ "engines": { -+ "node": ">=6" -+ } -+ }, -+ "node_modules/error-ex": { -+ "version": "1.3.2", -+ "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", -+ "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", -+ "dev": true, -+ "dependencies": { -+ "is-arrayish": "^0.2.1" -+ } -+ }, -+ "node_modules/es-abstract": { -+ "version": "1.23.3", -+ "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.23.3.tgz", -+ "integrity": "sha512-e+HfNH61Bj1X9/jLc5v1owaLYuHdeHHSQlkhCBiTK8rBvKaULl/beGMxwrMXjpYrv4pz22BlY570vVePA2ho4A==", -+ "dev": true, -+ "dependencies": { -+ "array-buffer-byte-length": "^1.0.1", -+ "arraybuffer.prototype.slice": "^1.0.3", -+ "available-typed-arrays": "^1.0.7", -+ "call-bind": "^1.0.7", -+ "data-view-buffer": "^1.0.1", -+ "data-view-byte-length": "^1.0.1", -+ "data-view-byte-offset": "^1.0.0", -+ "es-define-property": "^1.0.0", -+ "es-errors": "^1.3.0", -+ "es-object-atoms": "^1.0.0", -+ "es-set-tostringtag": "^2.0.3", -+ "es-to-primitive": "^1.2.1", -+ "function.prototype.name": "^1.1.6", -+ "get-intrinsic": "^1.2.4", -+ "get-symbol-description": "^1.0.2", -+ "globalthis": "^1.0.3", -+ "gopd": "^1.0.1", -+ "has-property-descriptors": "^1.0.2", -+ "has-proto": "^1.0.3", -+ "has-symbols": "^1.0.3", -+ "hasown": "^2.0.2", -+ "internal-slot": "^1.0.7", -+ "is-array-buffer": "^3.0.4", -+ "is-callable": "^1.2.7", -+ "is-data-view": "^1.0.1", -+ "is-negative-zero": "^2.0.3", -+ "is-regex": "^1.1.4", -+ "is-shared-array-buffer": "^1.0.3", -+ "is-string": "^1.0.7", -+ "is-typed-array": "^1.1.13", -+ "is-weakref": "^1.0.2", -+ "object-inspect": "^1.13.1", -+ "object-keys": "^1.1.1", -+ "object.assign": "^4.1.5", -+ "regexp.prototype.flags": "^1.5.2", -+ "safe-array-concat": "^1.1.2", -+ "safe-regex-test": "^1.0.3", -+ "string.prototype.trim": "^1.2.9", -+ "string.prototype.trimend": "^1.0.8", -+ "string.prototype.trimstart": "^1.0.8", -+ "typed-array-buffer": "^1.0.2", -+ "typed-array-byte-length": "^1.0.1", -+ "typed-array-byte-offset": "^1.0.2", -+ "typed-array-length": "^1.0.6", -+ "unbox-primitive": "^1.0.2", -+ "which-typed-array": "^1.1.15" -+ }, -+ "engines": { -+ "node": ">= 0.4" -+ }, -+ "funding": { -+ "url": "https://github.com/sponsors/ljharb" -+ } -+ }, -+ "node_modules/es-define-property": { -+ "version": "1.0.0", -+ "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.0.tgz", -+ "integrity": "sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==", -+ "dependencies": { -+ "get-intrinsic": "^1.2.4" -+ }, -+ "engines": { -+ "node": ">= 0.4" -+ } -+ }, -+ "node_modules/es-errors": { -+ "version": "1.3.0", -+ "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", -+ "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", -+ "engines": { -+ "node": ">= 0.4" -+ } -+ }, - "node_modules/es-get-iterator": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/es-get-iterator/-/es-get-iterator-1.1.3.tgz", -@@ -2160,6 +2590,31 @@ - "url": "https://github.com/sponsors/ljharb" - } - }, -+ "node_modules/es-iterator-helpers": { -+ "version": "1.0.19", -+ "resolved": "https://registry.npmjs.org/es-iterator-helpers/-/es-iterator-helpers-1.0.19.tgz", -+ "integrity": "sha512-zoMwbCcH5hwUkKJkT8kDIBZSz9I6mVG//+lDCinLCGov4+r7NIy0ld8o03M0cJxl2spVf6ESYVS6/gpIfq1FFw==", -+ "dev": true, -+ "dependencies": { -+ "call-bind": "^1.0.7", -+ "define-properties": "^1.2.1", -+ "es-abstract": "^1.23.3", -+ "es-errors": "^1.3.0", -+ "es-set-tostringtag": "^2.0.3", -+ "function-bind": "^1.1.2", -+ "get-intrinsic": "^1.2.4", -+ "globalthis": "^1.0.3", -+ "has-property-descriptors": "^1.0.2", -+ "has-proto": "^1.0.3", -+ "has-symbols": "^1.0.3", -+ "internal-slot": "^1.0.7", -+ "iterator.prototype": "^1.1.2", -+ "safe-array-concat": "^1.1.2" -+ }, -+ "engines": { -+ "node": ">= 0.4" -+ } -+ }, - "node_modules/es-module-lexer": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.3.0.tgz", -@@ -2167,41 +2622,95 @@ - "dev": true, - "peer": true - }, -+ "node_modules/es-object-atoms": { -+ "version": "1.0.0", -+ "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.0.0.tgz", -+ "integrity": "sha512-MZ4iQ6JwHOBQjahnjwaC1ZtIBH+2ohjamzAO3oaHcXYup7qxjF2fixyH+Q71voWHeOkI2q/TnJao/KfXYIZWbw==", -+ "dev": true, -+ "dependencies": { -+ "es-errors": "^1.3.0" -+ }, -+ "engines": { -+ "node": ">= 0.4" -+ } -+ }, -+ "node_modules/es-set-tostringtag": { -+ "version": "2.0.3", -+ "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.3.tgz", -+ "integrity": "sha512-3T8uNMC3OQTHkFUsFq8r/BwAXLHvU/9O9mE0fBc/MY5iq/8H7ncvO947LmYA6ldWw9Uh8Yhf25zu6n7nML5QWQ==", -+ "dev": true, -+ "dependencies": { -+ "get-intrinsic": "^1.2.4", -+ "has-tostringtag": "^1.0.2", -+ "hasown": "^2.0.1" -+ }, -+ "engines": { -+ "node": ">= 0.4" -+ } -+ }, -+ "node_modules/es-shim-unscopables": { -+ "version": "1.0.2", -+ "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.0.2.tgz", -+ "integrity": "sha512-J3yBRXCzDu4ULnQwxyToo/OjdMx6akgVC7K6few0a7F/0wLtmKKN7I73AH5T2836UuXRqN7Qg+IIUw/+YJksRw==", -+ "dev": true, -+ "dependencies": { -+ "hasown": "^2.0.0" -+ } -+ }, -+ "node_modules/es-to-primitive": { -+ "version": "1.2.1", -+ "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", -+ "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", -+ "dev": true, -+ "dependencies": { -+ "is-callable": "^1.1.4", -+ "is-date-object": "^1.0.1", -+ "is-symbol": "^1.0.2" -+ }, -+ "engines": { -+ "node": ">= 0.4" -+ }, -+ "funding": { -+ "url": "https://github.com/sponsors/ljharb" -+ } -+ }, - "node_modules/esbuild": { -- "version": "0.18.17", -- "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.18.17.tgz", -- "integrity": "sha512-1GJtYnUxsJreHYA0Y+iQz2UEykonY66HNWOb0yXYZi9/kNrORUEHVg87eQsCtqh59PEJ5YVZJO98JHznMJSWjg==", -+ "version": "0.23.0", -+ "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.23.0.tgz", -+ "integrity": "sha512-1lvV17H2bMYda/WaFb2jLPeHU3zml2k4/yagNMG8Q/YtfMjCwEUZa2eXXMgZTVSL5q1n4H7sQ0X6CdJDqqeCFA==", - "dev": true, - "hasInstallScript": true, - "bin": { - "esbuild": "bin/esbuild" - }, - "engines": { -- "node": ">=12" -+ "node": ">=18" - }, - "optionalDependencies": { -- "@esbuild/android-arm": "0.18.17", -- "@esbuild/android-arm64": "0.18.17", -- "@esbuild/android-x64": "0.18.17", -- "@esbuild/darwin-arm64": "0.18.17", -- "@esbuild/darwin-x64": "0.18.17", -- "@esbuild/freebsd-arm64": "0.18.17", -- "@esbuild/freebsd-x64": "0.18.17", -- "@esbuild/linux-arm": "0.18.17", -- "@esbuild/linux-arm64": "0.18.17", -- "@esbuild/linux-ia32": "0.18.17", -- "@esbuild/linux-loong64": "0.18.17", -- "@esbuild/linux-mips64el": "0.18.17", -- "@esbuild/linux-ppc64": "0.18.17", -- "@esbuild/linux-riscv64": "0.18.17", -- "@esbuild/linux-s390x": "0.18.17", -- "@esbuild/linux-x64": "0.18.17", -- "@esbuild/netbsd-x64": "0.18.17", -- "@esbuild/openbsd-x64": "0.18.17", -- "@esbuild/sunos-x64": "0.18.17", -- "@esbuild/win32-arm64": "0.18.17", -- "@esbuild/win32-ia32": "0.18.17", -- "@esbuild/win32-x64": "0.18.17" -+ "@esbuild/aix-ppc64": "0.23.0", -+ "@esbuild/android-arm": "0.23.0", -+ "@esbuild/android-arm64": "0.23.0", -+ "@esbuild/android-x64": "0.23.0", -+ "@esbuild/darwin-arm64": "0.23.0", -+ "@esbuild/darwin-x64": "0.23.0", -+ "@esbuild/freebsd-arm64": "0.23.0", -+ "@esbuild/freebsd-x64": "0.23.0", -+ "@esbuild/linux-arm": "0.23.0", -+ "@esbuild/linux-arm64": "0.23.0", -+ "@esbuild/linux-ia32": "0.23.0", -+ "@esbuild/linux-loong64": "0.23.0", -+ "@esbuild/linux-mips64el": "0.23.0", -+ "@esbuild/linux-ppc64": "0.23.0", -+ "@esbuild/linux-riscv64": "0.23.0", -+ "@esbuild/linux-s390x": "0.23.0", -+ "@esbuild/linux-x64": "0.23.0", -+ "@esbuild/netbsd-x64": "0.23.0", -+ "@esbuild/openbsd-arm64": "0.23.0", -+ "@esbuild/openbsd-x64": "0.23.0", -+ "@esbuild/sunos-x64": "0.23.0", -+ "@esbuild/win32-arm64": "0.23.0", -+ "@esbuild/win32-ia32": "0.23.0", -+ "@esbuild/win32-x64": "0.23.0" - } - }, - "node_modules/esbuild-plugin-copy": { -@@ -2299,16 +2808,18 @@ - } - }, - "node_modules/esbuild-sass-plugin": { -- "version": "2.10.0", -- "resolved": "https://registry.npmjs.org/esbuild-sass-plugin/-/esbuild-sass-plugin-2.10.0.tgz", -- "integrity": "sha512-STv849QGT8g77RRFmroSt4VBVKjv+dypKcO4aWz8IP4G5JbRH0KC0+B8ODuzlUNu9R5MbkGcev/62RDP/JcZ2Q==", -+ "version": "3.3.1", -+ "resolved": "https://registry.npmjs.org/esbuild-sass-plugin/-/esbuild-sass-plugin-3.3.1.tgz", -+ "integrity": "sha512-SnO1ls+d52n6j8gRRpjexXI8MsHEaumS0IdDHaYM29Y6gakzZYMls6i9ql9+AWMSQk/eryndmUpXEgT34QrX1A==", - "dev": true, - "dependencies": { -- "resolve": "^1.22.2", -- "sass": "^1.63.0" -+ "resolve": "^1.22.8", -+ "safe-identifier": "^0.4.2", -+ "sass": "^1.71.1" - }, - "peerDependencies": { -- "esbuild": "^0.18.0" -+ "esbuild": ">=0.20.1", -+ "sass-embedded": "^1.71.1" - } - }, - "node_modules/escalade": { -@@ -2330,1156 +2841,1474 @@ - "node": ">=0.8.0" - } - }, -- "node_modules/eslint-scope": { -- "version": "5.1.1", -- "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", -- "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", -- "dev": true, -- "peer": true, -- "dependencies": { -- "esrecurse": "^4.3.0", -- "estraverse": "^4.1.1" -+ "node_modules/eslint": { -+ "version": "8.57.0", -+ "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.57.0.tgz", -+ "integrity": "sha512-dZ6+mexnaTIbSBZWgou51U6OmzIhYM2VcNdtiTtI7qPNZm35Akpr0f6vtw3w1Kmn5PYo+tZVfh13WrhpS6oLqQ==", -+ "dev": true, -+ "dependencies": { -+ "@eslint-community/eslint-utils": "^4.2.0", -+ "@eslint-community/regexpp": "^4.6.1", -+ "@eslint/eslintrc": "^2.1.4", -+ "@eslint/js": "8.57.0", -+ "@humanwhocodes/config-array": "^0.11.14", -+ "@humanwhocodes/module-importer": "^1.0.1", -+ "@nodelib/fs.walk": "^1.2.8", -+ "@ungap/structured-clone": "^1.2.0", -+ "ajv": "^6.12.4", -+ "chalk": "^4.0.0", -+ "cross-spawn": "^7.0.2", -+ "debug": "^4.3.2", -+ "doctrine": "^3.0.0", -+ "escape-string-regexp": "^4.0.0", -+ "eslint-scope": "^7.2.2", -+ "eslint-visitor-keys": "^3.4.3", -+ "espree": "^9.6.1", -+ "esquery": "^1.4.2", -+ "esutils": "^2.0.2", -+ "fast-deep-equal": "^3.1.3", -+ "file-entry-cache": "^6.0.1", -+ "find-up": "^5.0.0", -+ "glob-parent": "^6.0.2", -+ "globals": "^13.19.0", -+ "graphemer": "^1.4.0", -+ "ignore": "^5.2.0", -+ "imurmurhash": "^0.1.4", -+ "is-glob": "^4.0.0", -+ "is-path-inside": "^3.0.3", -+ "js-yaml": "^4.1.0", -+ "json-stable-stringify-without-jsonify": "^1.0.1", -+ "levn": "^0.4.1", -+ "lodash.merge": "^4.6.2", -+ "minimatch": "^3.1.2", -+ "natural-compare": "^1.4.0", -+ "optionator": "^0.9.3", -+ "strip-ansi": "^6.0.1", -+ "text-table": "^0.2.0" -+ }, -+ "bin": { -+ "eslint": "bin/eslint.js" - }, - "engines": { -- "node": ">=8.0.0" -+ "node": "^12.22.0 || ^14.17.0 || >=16.0.0" -+ }, -+ "funding": { -+ "url": "https://opencollective.com/eslint" - } - }, -- "node_modules/esrecurse": { -- "version": "4.3.0", -- "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", -- "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", -+ "node_modules/eslint-compat-utils": { -+ "version": "0.5.1", -+ "resolved": "https://registry.npmjs.org/eslint-compat-utils/-/eslint-compat-utils-0.5.1.tgz", -+ "integrity": "sha512-3z3vFexKIEnjHE3zCMRo6fn/e44U7T1khUjg+Hp0ZQMCigh28rALD0nPFBcGZuiLC5rLZa2ubQHDRln09JfU2Q==", - "dev": true, - "peer": true, - "dependencies": { -- "estraverse": "^5.2.0" -+ "semver": "^7.5.4" - }, - "engines": { -- "node": ">=4.0" -+ "node": ">=12" -+ }, -+ "peerDependencies": { -+ "eslint": ">=6.0.0" - } - }, -- "node_modules/esrecurse/node_modules/estraverse": { -- "version": "5.3.0", -- "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", -- "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", -+ "node_modules/eslint-compat-utils/node_modules/semver": { -+ "version": "7.6.3", -+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", -+ "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", - "dev": true, - "peer": true, -+ "bin": { -+ "semver": "bin/semver.js" -+ }, - "engines": { -- "node": ">=4.0" -+ "node": ">=10" - } - }, -- "node_modules/estraverse": { -- "version": "4.3.0", -- "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", -- "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", -+ "node_modules/eslint-config-standard": { -+ "version": "17.1.0", -+ "resolved": "https://registry.npmjs.org/eslint-config-standard/-/eslint-config-standard-17.1.0.tgz", -+ "integrity": "sha512-IwHwmaBNtDK4zDHQukFDW5u/aTb8+meQWZvNFWkiGmbWjD6bqyuSSBxxXKkCftCUzc1zwCH2m/baCNDLGmuO5Q==", - "dev": true, -- "peer": true, -+ "funding": [ -+ { -+ "type": "github", -+ "url": "https://github.com/sponsors/feross" -+ }, -+ { -+ "type": "patreon", -+ "url": "https://www.patreon.com/feross" -+ }, -+ { -+ "type": "consulting", -+ "url": "https://feross.org/support" -+ } -+ ], - "engines": { -- "node": ">=4.0" -+ "node": ">=12.0.0" -+ }, -+ "peerDependencies": { -+ "eslint": "^8.0.1", -+ "eslint-plugin-import": "^2.25.2", -+ "eslint-plugin-n": "^15.0.0 || ^16.0.0 ", -+ "eslint-plugin-promise": "^6.0.0" - } - }, -- "node_modules/event-target-shim": { -- "version": "5.0.1", -- "resolved": "https://registry.npmjs.org/event-target-shim/-/event-target-shim-5.0.1.tgz", -- "integrity": "sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==", -+ "node_modules/eslint-config-standard-jsx": { -+ "version": "11.0.0", -+ "resolved": "https://registry.npmjs.org/eslint-config-standard-jsx/-/eslint-config-standard-jsx-11.0.0.tgz", -+ "integrity": "sha512-+1EV/R0JxEK1L0NGolAr8Iktm3Rgotx3BKwgaX+eAuSX8D952LULKtjgZD3F+e6SvibONnhLwoTi9DPxN5LvvQ==", - "dev": true, -- "engines": { -- "node": ">=6" -+ "funding": [ -+ { -+ "type": "github", -+ "url": "https://github.com/sponsors/feross" -+ }, -+ { -+ "type": "patreon", -+ "url": "https://www.patreon.com/feross" -+ }, -+ { -+ "type": "consulting", -+ "url": "https://feross.org/support" -+ } -+ ], -+ "peerDependencies": { -+ "eslint": "^8.8.0", -+ "eslint-plugin-react": "^7.28.0" - } - }, -- "node_modules/events": { -- "version": "3.3.0", -- "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", -- "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", -+ "node_modules/eslint-config-standard-react": { -+ "version": "13.0.0", -+ "resolved": "https://registry.npmjs.org/eslint-config-standard-react/-/eslint-config-standard-react-13.0.0.tgz", -+ "integrity": "sha512-HrVPGj8UncHfV+BsdJTuJpVsomn6AIrke3Af2Fh4XFvQQDU+iO6N2ZL+UsC+scExft4fU3uf7fJwj7PKWnXJDA==", - "dev": true, -- "engines": { -- "node": ">=0.8.x" -+ "funding": [ -+ { -+ "type": "github", -+ "url": "https://github.com/sponsors/feross" -+ }, -+ { -+ "type": "patreon", -+ "url": "https://www.patreon.com/feross" -+ }, -+ { -+ "type": "consulting", -+ "url": "https://feross.org/support" -+ } -+ ], -+ "peerDependencies": { -+ "eslint": "^8.8.0", -+ "eslint-plugin-react": "^7.28.0", -+ "eslint-plugin-react-hooks": "^4.6.0" - } - }, -- "node_modules/fast-deep-equal": { -- "version": "3.1.3", -- "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", -- "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", -+ "node_modules/eslint-import-resolver-node": { -+ "version": "0.3.9", -+ "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.9.tgz", -+ "integrity": "sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==", - "dev": true, -- "peer": true -+ "dependencies": { -+ "debug": "^3.2.7", -+ "is-core-module": "^2.13.0", -+ "resolve": "^1.22.4" -+ } - }, -- "node_modules/fast-glob": { -- "version": "3.3.1", -- "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.1.tgz", -- "integrity": "sha512-kNFPyjhh5cKjrUltxs+wFx+ZkbRaxxmZ+X0ZU31SOsxCEtP9VPgtq2teZw1DebupL5GmDaNQ6yKMMVcM41iqDg==", -+ "node_modules/eslint-import-resolver-node/node_modules/debug": { -+ "version": "3.2.7", -+ "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", -+ "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", - "dev": true, - "dependencies": { -- "@nodelib/fs.stat": "^2.0.2", -- "@nodelib/fs.walk": "^1.2.3", -- "glob-parent": "^5.1.2", -- "merge2": "^1.3.0", -- "micromatch": "^4.0.4" -- }, -- "engines": { -- "node": ">=8.6.0" -+ "ms": "^2.1.1" - } - }, -- "node_modules/fast-json-stable-stringify": { -- "version": "2.1.0", -- "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", -- "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", -+ "node_modules/eslint-module-utils": { -+ "version": "2.8.1", -+ "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.8.1.tgz", -+ "integrity": "sha512-rXDXR3h7cs7dy9RNpUlQf80nX31XWJEyGq1tRMo+6GsO5VmTe4UTwtmonAD4ZkAsrfMVDA2wlGJ3790Ys+D49Q==", - "dev": true, -- "peer": true -+ "dependencies": { -+ "debug": "^3.2.7" -+ }, -+ "engines": { -+ "node": ">=4" -+ }, -+ "peerDependenciesMeta": { -+ "eslint": { -+ "optional": true -+ } -+ } - }, -- "node_modules/fastq": { -- "version": "1.15.0", -- "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.15.0.tgz", -- "integrity": "sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==", -+ "node_modules/eslint-module-utils/node_modules/debug": { -+ "version": "3.2.7", -+ "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", -+ "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", - "dev": true, - "dependencies": { -- "reusify": "^1.0.4" -+ "ms": "^2.1.1" - } - }, -- "node_modules/file-selector": { -- "version": "0.6.0", -- "resolved": "https://registry.npmjs.org/file-selector/-/file-selector-0.6.0.tgz", -- "integrity": "sha512-QlZ5yJC0VxHxQQsQhXvBaC7VRJ2uaxTf+Tfpu4Z/OcVQJVpZO+DGU0rkoVW5ce2SccxugvpBJoMvUs59iILYdw==", -+ "node_modules/eslint-plugin-es": { -+ "version": "3.0.1", -+ "resolved": "https://registry.npmjs.org/eslint-plugin-es/-/eslint-plugin-es-3.0.1.tgz", -+ "integrity": "sha512-GUmAsJaN4Fc7Gbtl8uOBlayo2DqhwWvEzykMHSCZHU3XdJ+NSzzZcVhXh3VxX5icqQ+oQdIEawXX8xkR3mIFmQ==", -+ "dev": true, - "dependencies": { -- "tslib": "^2.4.0" -+ "eslint-utils": "^2.0.0", -+ "regexpp": "^3.0.0" - }, - "engines": { -- "node": ">= 12" -+ "node": ">=8.10.0" -+ }, -+ "funding": { -+ "url": "https://github.com/sponsors/mysticatea" -+ }, -+ "peerDependencies": { -+ "eslint": ">=4.19.1" - } - }, -- "node_modules/fill-range": { -- "version": "7.1.1", -- "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", -- "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", -+ "node_modules/eslint-plugin-es-x": { -+ "version": "7.8.0", -+ "resolved": "https://registry.npmjs.org/eslint-plugin-es-x/-/eslint-plugin-es-x-7.8.0.tgz", -+ "integrity": "sha512-7Ds8+wAAoV3T+LAKeu39Y5BzXCrGKrcISfgKEqTS4BDN8SFEDQd0S43jiQ8vIa3wUKD07qitZdfzlenSi8/0qQ==", - "dev": true, -+ "funding": [ -+ "https://github.com/sponsors/ota-meshi", -+ "https://opencollective.com/eslint" -+ ], -+ "peer": true, - "dependencies": { -- "to-regex-range": "^5.0.1" -+ "@eslint-community/eslint-utils": "^4.1.2", -+ "@eslint-community/regexpp": "^4.11.0", -+ "eslint-compat-utils": "^0.5.1" - }, - "engines": { -- "node": ">=8" -+ "node": "^14.18.0 || >=16.0.0" -+ }, -+ "peerDependencies": { -+ "eslint": ">=8" -+ } -+ }, -+ "node_modules/eslint-plugin-import": { -+ "version": "2.29.1", -+ "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.29.1.tgz", -+ "integrity": "sha512-BbPC0cuExzhiMo4Ff1BTVwHpjjv28C5R+btTOGaCRC7UEz801up0JadwkeSk5Ued6TG34uaczuVuH6qyy5YUxw==", -+ "dev": true, -+ "dependencies": { -+ "array-includes": "^3.1.7", -+ "array.prototype.findlastindex": "^1.2.3", -+ "array.prototype.flat": "^1.3.2", -+ "array.prototype.flatmap": "^1.3.2", -+ "debug": "^3.2.7", -+ "doctrine": "^2.1.0", -+ "eslint-import-resolver-node": "^0.3.9", -+ "eslint-module-utils": "^2.8.0", -+ "hasown": "^2.0.0", -+ "is-core-module": "^2.13.1", -+ "is-glob": "^4.0.3", -+ "minimatch": "^3.1.2", -+ "object.fromentries": "^2.0.7", -+ "object.groupby": "^1.0.1", -+ "object.values": "^1.1.7", -+ "semver": "^6.3.1", -+ "tsconfig-paths": "^3.15.0" -+ }, -+ "engines": { -+ "node": ">=4" -+ }, -+ "peerDependencies": { -+ "eslint": "^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8" - } - }, -- "node_modules/find-yarn-workspace-root": { -- "version": "2.0.0", -- "resolved": "https://registry.npmjs.org/find-yarn-workspace-root/-/find-yarn-workspace-root-2.0.0.tgz", -- "integrity": "sha512-1IMnbjt4KzsQfnhnzNd8wUEgXZ44IzZaZmnLYx7D5FZlaHt2gW20Cri8Q+E/t5tIj4+epTBub+2Zxu/vNILzqQ==", -+ "node_modules/eslint-plugin-import/node_modules/brace-expansion": { -+ "version": "1.1.11", -+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", -+ "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dev": true, - "dependencies": { -- "micromatch": "^4.0.2" -+ "balanced-match": "^1.0.0", -+ "concat-map": "0.0.1" - } - }, -- "node_modules/focus-trap": { -- "version": "7.4.2", -- "resolved": "https://registry.npmjs.org/focus-trap/-/focus-trap-7.4.2.tgz", -- "integrity": "sha512-KMjf+H5uDWPkwSQVqE5r/+vOkP5zBWwVBoWPIZxU3gfg+M8IT+Y8s+vXQqZvHEIXyHPKHrSm6m4G4ceF98OZ8w==", -+ "node_modules/eslint-plugin-import/node_modules/debug": { -+ "version": "3.2.7", -+ "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", -+ "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", -+ "dev": true, - "dependencies": { -- "tabbable": "^6.1.2" -+ "ms": "^2.1.1" - } - }, -- "node_modules/for-each": { -- "version": "0.3.3", -- "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", -- "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", -- "peer": true, -+ "node_modules/eslint-plugin-import/node_modules/doctrine": { -+ "version": "2.1.0", -+ "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", -+ "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", -+ "dev": true, - "dependencies": { -- "is-callable": "^1.1.3" -+ "esutils": "^2.0.2" -+ }, -+ "engines": { -+ "node": ">=0.10.0" - } - }, -- "node_modules/foreground-child": { -- "version": "3.1.1", -- "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.1.1.tgz", -- "integrity": "sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==", -+ "node_modules/eslint-plugin-import/node_modules/minimatch": { -+ "version": "3.1.2", -+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", -+ "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", -+ "dev": true, - "dependencies": { -- "cross-spawn": "^7.0.0", -- "signal-exit": "^4.0.1" -+ "brace-expansion": "^1.1.7" - }, - "engines": { -- "node": ">=14" -- }, -- "funding": { -- "url": "https://github.com/sponsors/isaacs" -+ "node": "*" - } - }, -- "node_modules/fs-extra": { -- "version": "10.1.0", -- "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", -- "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", -+ "node_modules/eslint-plugin-n": { -+ "version": "16.6.2", -+ "resolved": "https://registry.npmjs.org/eslint-plugin-n/-/eslint-plugin-n-16.6.2.tgz", -+ "integrity": "sha512-6TyDmZ1HXoFQXnhCTUjVFULReoBPOAjpuiKELMkeP40yffI/1ZRO+d9ug/VC6fqISo2WkuIBk3cvuRPALaWlOQ==", - "dev": true, -+ "peer": true, - "dependencies": { -- "graceful-fs": "^4.2.0", -- "jsonfile": "^6.0.1", -- "universalify": "^2.0.0" -+ "@eslint-community/eslint-utils": "^4.4.0", -+ "builtins": "^5.0.1", -+ "eslint-plugin-es-x": "^7.5.0", -+ "get-tsconfig": "^4.7.0", -+ "globals": "^13.24.0", -+ "ignore": "^5.2.4", -+ "is-builtin-module": "^3.2.1", -+ "is-core-module": "^2.12.1", -+ "minimatch": "^3.1.2", -+ "resolve": "^1.22.2", -+ "semver": "^7.5.3" - }, - "engines": { -- "node": ">=12" -+ "node": ">=16.0.0" -+ }, -+ "funding": { -+ "url": "https://github.com/sponsors/mysticatea" -+ }, -+ "peerDependencies": { -+ "eslint": ">=7.0.0" - } - }, -- "node_modules/fs.realpath": { -- "version": "1.0.0", -- "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", -- "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", -- "dev": true -- }, -- "node_modules/fsevents": { -- "version": "2.3.2", -- "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", -- "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", -+ "node_modules/eslint-plugin-n/node_modules/brace-expansion": { -+ "version": "1.1.11", -+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", -+ "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dev": true, -- "hasInstallScript": true, -- "optional": true, -- "os": [ -- "darwin" -- ], -- "engines": { -- "node": "^8.16.0 || ^10.6.0 || >=11.0.0" -- } -- }, -- "node_modules/function-bind": { -- "version": "1.1.1", -- "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", -- "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" -- }, -- "node_modules/functions-have-names": { -- "version": "1.2.3", -- "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", -- "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", - "peer": true, -- "funding": { -- "url": "https://github.com/sponsors/ljharb" -+ "dependencies": { -+ "balanced-match": "^1.0.0", -+ "concat-map": "0.0.1" - } - }, -- "node_modules/gensync": { -- "version": "1.0.0-beta.2", -- "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", -- "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", -+ "node_modules/eslint-plugin-n/node_modules/globals": { -+ "version": "13.24.0", -+ "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", -+ "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", - "dev": true, - "peer": true, -+ "dependencies": { -+ "type-fest": "^0.20.2" -+ }, - "engines": { -- "node": ">=6.9.0" -+ "node": ">=8" -+ }, -+ "funding": { -+ "url": "https://github.com/sponsors/sindresorhus" - } - }, -- "node_modules/get-intrinsic": { -- "version": "1.2.1", -- "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.1.tgz", -- "integrity": "sha512-2DcsyfABl+gVHEfCOaTrWgyt+tb6MSEGmKq+kI5HwLbIYgjgmMcV8KQ41uaKz1xxUcn9tJtgFbQUEVcEbd0FYw==", -+ "node_modules/eslint-plugin-n/node_modules/minimatch": { -+ "version": "3.1.2", -+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", -+ "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", -+ "dev": true, - "peer": true, - "dependencies": { -- "function-bind": "^1.1.1", -- "has": "^1.0.3", -- "has-proto": "^1.0.1", -- "has-symbols": "^1.0.3" -+ "brace-expansion": "^1.1.7" - }, -- "funding": { -- "url": "https://github.com/sponsors/ljharb" -+ "engines": { -+ "node": "*" - } - }, -- "node_modules/gettext-parser": { -- "version": "7.0.1", -- "resolved": "https://registry.npmjs.org/gettext-parser/-/gettext-parser-7.0.1.tgz", -- "integrity": "sha512-LU+ieGH3L9HmKEArTlX816/iiAlyA0fx/n/QSeQpkAaH/+jxMk/5UtDkAzcVvW+KlY25/U+IE6dnfkJ8ynt8pQ==", -+ "node_modules/eslint-plugin-n/node_modules/semver": { -+ "version": "7.6.3", -+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", -+ "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", - "dev": true, -- "dependencies": { -- "content-type": "^1.0.5", -- "encoding": "^0.1.13", -- "readable-stream": "^4.3.0", -- "safe-buffer": "^5.2.1" -+ "peer": true, -+ "bin": { -+ "semver": "bin/semver.js" -+ }, -+ "engines": { -+ "node": ">=10" - } - }, -- "node_modules/glob": { -- "version": "10.3.3", -- "resolved": "https://registry.npmjs.org/glob/-/glob-10.3.3.tgz", -- "integrity": "sha512-92vPiMb/iqpmEgsOoIDvTjc50wf9CCCvMzsi6W0JLPeUKE8TWP1a73PgqSrqy7iAZxaSD1YdzU7QZR5LF51MJw==", -+ "node_modules/eslint-plugin-node": { -+ "version": "11.1.0", -+ "resolved": "https://registry.npmjs.org/eslint-plugin-node/-/eslint-plugin-node-11.1.0.tgz", -+ "integrity": "sha512-oUwtPJ1W0SKD0Tr+wqu92c5xuCeQqB3hSCHasn/ZgjFdA9iDGNkNf2Zi9ztY7X+hNuMib23LNGRm6+uN+KLE3g==", -+ "dev": true, - "dependencies": { -- "foreground-child": "^3.1.0", -- "jackspeak": "^2.0.3", -- "minimatch": "^9.0.1", -- "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0", -- "path-scurry": "^1.10.1" -- }, -- "bin": { -- "glob": "dist/cjs/src/bin.js" -+ "eslint-plugin-es": "^3.0.0", -+ "eslint-utils": "^2.0.0", -+ "ignore": "^5.1.1", -+ "minimatch": "^3.0.4", -+ "resolve": "^1.10.1", -+ "semver": "^6.1.0" - }, - "engines": { -- "node": ">=16 || 14 >=14.17" -+ "node": ">=8.10.0" - }, -- "funding": { -- "url": "https://github.com/sponsors/isaacs" -+ "peerDependencies": { -+ "eslint": ">=5.16.0" - } - }, -- "node_modules/glob-parent": { -- "version": "5.1.2", -- "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", -- "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", -+ "node_modules/eslint-plugin-node/node_modules/brace-expansion": { -+ "version": "1.1.11", -+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", -+ "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dev": true, - "dependencies": { -- "is-glob": "^4.0.1" -- }, -- "engines": { -- "node": ">= 6" -+ "balanced-match": "^1.0.0", -+ "concat-map": "0.0.1" - } - }, -- "node_modules/glob-to-regexp": { -- "version": "0.4.1", -- "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz", -- "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==", -+ "node_modules/eslint-plugin-node/node_modules/minimatch": { -+ "version": "3.1.2", -+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", -+ "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dev": true, -- "peer": true -+ "dependencies": { -+ "brace-expansion": "^1.1.7" -+ }, -+ "engines": { -+ "node": "*" -+ } - }, -- "node_modules/globals": { -- "version": "11.12.0", -- "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", -- "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", -+ "node_modules/eslint-plugin-promise": { -+ "version": "6.6.0", -+ "resolved": "https://registry.npmjs.org/eslint-plugin-promise/-/eslint-plugin-promise-6.6.0.tgz", -+ "integrity": "sha512-57Zzfw8G6+Gq7axm2Pdo3gW/Rx3h9Yywgn61uE/3elTCOePEHVrn2i5CdfBwA1BLK0Q0WqctICIUSqXZW/VprQ==", - "dev": true, -- "peer": true, -+ "engines": { -+ "node": "^12.22.0 || ^14.17.0 || >=16.0.0" -+ }, -+ "funding": { -+ "url": "https://opencollective.com/eslint" -+ }, -+ "peerDependencies": { -+ "eslint": "^7.0.0 || ^8.0.0 || ^9.0.0" -+ } -+ }, -+ "node_modules/eslint-plugin-react": { -+ "version": "7.35.0", -+ "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.35.0.tgz", -+ "integrity": "sha512-v501SSMOWv8gerHkk+IIQBkcGRGrO2nfybfj5pLxuJNFTPxxA3PSryhXTK+9pNbtkggheDdsC0E9Q8CuPk6JKA==", -+ "dev": true, -+ "dependencies": { -+ "array-includes": "^3.1.8", -+ "array.prototype.findlast": "^1.2.5", -+ "array.prototype.flatmap": "^1.3.2", -+ "array.prototype.tosorted": "^1.1.4", -+ "doctrine": "^2.1.0", -+ "es-iterator-helpers": "^1.0.19", -+ "estraverse": "^5.3.0", -+ "hasown": "^2.0.2", -+ "jsx-ast-utils": "^2.4.1 || ^3.0.0", -+ "minimatch": "^3.1.2", -+ "object.entries": "^1.1.8", -+ "object.fromentries": "^2.0.8", -+ "object.values": "^1.2.0", -+ "prop-types": "^15.8.1", -+ "resolve": "^2.0.0-next.5", -+ "semver": "^6.3.1", -+ "string.prototype.matchall": "^4.0.11", -+ "string.prototype.repeat": "^1.0.0" -+ }, - "engines": { - "node": ">=4" -+ }, -+ "peerDependencies": { -+ "eslint": "^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9.7" - } - }, -- "node_modules/globalyzer": { -- "version": "0.1.0", -- "resolved": "https://registry.npmjs.org/globalyzer/-/globalyzer-0.1.0.tgz", -- "integrity": "sha512-40oNTM9UfG6aBmuKxk/giHn5nQ8RVz/SS4Ir6zgzOv9/qC3kKZ9v4etGTcJbEl/NyVQH7FGU7d+X1egr57Md2Q==", -- "dev": true -- }, -- "node_modules/globby": { -- "version": "11.1.0", -- "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", -- "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", -+ "node_modules/eslint-plugin-react-hooks": { -+ "version": "4.6.2", -+ "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.6.2.tgz", -+ "integrity": "sha512-QzliNJq4GinDBcD8gPB5v0wh6g8q3SUi6EFF0x8N/BL9PoVs0atuGc47ozMRyOWAKdwaZ5OnbOEa3WR+dSGKuQ==", - "dev": true, -- "dependencies": { -- "array-union": "^2.1.0", -- "dir-glob": "^3.0.1", -- "fast-glob": "^3.2.9", -- "ignore": "^5.2.0", -- "merge2": "^1.4.1", -- "slash": "^3.0.0" -- }, - "engines": { - "node": ">=10" - }, -- "funding": { -- "url": "https://github.com/sponsors/sindresorhus" -+ "peerDependencies": { -+ "eslint": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0" - } - }, -- "node_modules/globrex": { -- "version": "0.1.2", -- "resolved": "https://registry.npmjs.org/globrex/-/globrex-0.1.2.tgz", -- "integrity": "sha512-uHJgbwAMwNFf5mLst7IWLNg14x1CkeqglJb/K3doi4dw6q2IvAAmM/Y81kevy83wP+Sst+nutFTYOGg3d1lsxg==", -- "dev": true -- }, -- "node_modules/gopd": { -- "version": "1.0.1", -- "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", -- "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", -- "peer": true, -+ "node_modules/eslint-plugin-react/node_modules/brace-expansion": { -+ "version": "1.1.11", -+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", -+ "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", -+ "dev": true, - "dependencies": { -- "get-intrinsic": "^1.1.3" -- }, -- "funding": { -- "url": "https://github.com/sponsors/ljharb" -+ "balanced-match": "^1.0.0", -+ "concat-map": "0.0.1" - } - }, -- "node_modules/graceful-fs": { -- "version": "4.2.11", -- "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", -- "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", -- "dev": true -- }, -- "node_modules/has": { -- "version": "1.0.3", -- "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", -- "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", -+ "node_modules/eslint-plugin-react/node_modules/doctrine": { -+ "version": "2.1.0", -+ "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", -+ "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", -+ "dev": true, - "dependencies": { -- "function-bind": "^1.1.1" -+ "esutils": "^2.0.2" - }, - "engines": { -- "node": ">= 0.4.0" -- } -- }, -- "node_modules/has-bigints": { -- "version": "1.0.2", -- "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz", -- "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==", -- "peer": true, -- "funding": { -- "url": "https://github.com/sponsors/ljharb" -+ "node": ">=0.10.0" - } - }, -- "node_modules/has-flag": { -- "version": "3.0.0", -- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", -- "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", -+ "node_modules/eslint-plugin-react/node_modules/estraverse": { -+ "version": "5.3.0", -+ "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", -+ "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "dev": true, - "engines": { -- "node": ">=4" -+ "node": ">=4.0" - } - }, -- "node_modules/has-property-descriptors": { -- "version": "1.0.0", -- "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz", -- "integrity": "sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==", -- "peer": true, -+ "node_modules/eslint-plugin-react/node_modules/minimatch": { -+ "version": "3.1.2", -+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", -+ "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", -+ "dev": true, - "dependencies": { -- "get-intrinsic": "^1.1.1" -+ "brace-expansion": "^1.1.7" - }, -- "funding": { -- "url": "https://github.com/sponsors/ljharb" -+ "engines": { -+ "node": "*" - } - }, -- "node_modules/has-proto": { -- "version": "1.0.1", -- "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.1.tgz", -- "integrity": "sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==", -- "peer": true, -- "engines": { -- "node": ">= 0.4" -+ "node_modules/eslint-plugin-react/node_modules/resolve": { -+ "version": "2.0.0-next.5", -+ "resolved": "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.5.tgz", -+ "integrity": "sha512-U7WjGVG9sH8tvjW5SmGbQuui75FiyjAX72HX15DwBBwF9dNiQZRQAg9nnPhYy+TUnE0+VcrttuvNI8oSxZcocA==", -+ "dev": true, -+ "dependencies": { -+ "is-core-module": "^2.13.0", -+ "path-parse": "^1.0.7", -+ "supports-preserve-symlinks-flag": "^1.0.0" -+ }, -+ "bin": { -+ "resolve": "bin/resolve" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, -- "node_modules/has-symbols": { -- "version": "1.0.3", -- "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", -- "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", -+ "node_modules/eslint-scope": { -+ "version": "5.1.1", -+ "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", -+ "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", -+ "dev": true, - "peer": true, -- "engines": { -- "node": ">= 0.4" -+ "dependencies": { -+ "esrecurse": "^4.3.0", -+ "estraverse": "^4.1.1" - }, -- "funding": { -- "url": "https://github.com/sponsors/ljharb" -+ "engines": { -+ "node": ">=8.0.0" - } - }, -- "node_modules/has-tostringtag": { -- "version": "1.0.0", -- "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz", -- "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", -- "peer": true, -+ "node_modules/eslint-utils": { -+ "version": "2.1.0", -+ "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.1.0.tgz", -+ "integrity": "sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==", -+ "dev": true, - "dependencies": { -- "has-symbols": "^1.0.2" -+ "eslint-visitor-keys": "^1.1.0" - }, - "engines": { -- "node": ">= 0.4" -+ "node": ">=6" - }, - "funding": { -- "url": "https://github.com/sponsors/ljharb" -+ "url": "https://github.com/sponsors/mysticatea" - } - }, -- "node_modules/htmlparser": { -- "version": "1.7.7", -- "resolved": "https://registry.npmjs.org/htmlparser/-/htmlparser-1.7.7.tgz", -- "integrity": "sha512-zpK66ifkT0fauyFh2Mulrq4AqGTucxGtOhZ8OjkbSfcCpkqQEI8qRkY0tSQSJNAQ4HUZkgWaU4fK4EH6SVH9PQ==", -+ "node_modules/eslint-utils/node_modules/eslint-visitor-keys": { -+ "version": "1.3.0", -+ "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", -+ "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", - "dev": true, - "engines": { -- "node": ">=0.1.33" -+ "node": ">=4" - } - }, -- "node_modules/iconv-lite": { -- "version": "0.6.3", -- "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", -- "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", -+ "node_modules/eslint-visitor-keys": { -+ "version": "3.4.3", -+ "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", -+ "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", - "dev": true, -- "dependencies": { -- "safer-buffer": ">= 2.1.2 < 3.0.0" -+ "engines": { -+ "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, -+ "funding": { -+ "url": "https://opencollective.com/eslint" -+ } -+ }, -+ "node_modules/eslint/node_modules/ansi-regex": { -+ "version": "5.0.1", -+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", -+ "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", -+ "dev": true, - "engines": { -- "node": ">=0.10.0" -+ "node": ">=8" - } - }, -- "node_modules/ieee754": { -- "version": "1.2.1", -- "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", -- "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", -- "dev": true, -- "funding": [ -- { -- "type": "github", -- "url": "https://github.com/sponsors/feross" -- }, -- { -- "type": "patreon", -- "url": "https://www.patreon.com/feross" -- }, -- { -- "type": "consulting", -- "url": "https://feross.org/support" -- } -- ] -- }, -- "node_modules/ignore": { -- "version": "5.2.4", -- "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.4.tgz", -- "integrity": "sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==", -+ "node_modules/eslint/node_modules/ansi-styles": { -+ "version": "4.3.0", -+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", -+ "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, -+ "dependencies": { -+ "color-convert": "^2.0.1" -+ }, - "engines": { -- "node": ">= 4" -+ "node": ">=8" -+ }, -+ "funding": { -+ "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, -- "node_modules/immutable": { -- "version": "4.3.1", -- "resolved": "https://registry.npmjs.org/immutable/-/immutable-4.3.1.tgz", -- "integrity": "sha512-lj9cnmB/kVS0QHsJnYKD1uo3o39nrbKxszjnqS9Fr6NB7bZzW45U6WSGBPKXDL/CvDKqDNPA4r3DoDQ8GTxo2A==", -- "dev": true -- }, -- "node_modules/inflight": { -- "version": "1.0.6", -- "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", -- "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", -+ "node_modules/eslint/node_modules/brace-expansion": { -+ "version": "1.1.11", -+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", -+ "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dev": true, - "dependencies": { -- "once": "^1.3.0", -- "wrappy": "1" -+ "balanced-match": "^1.0.0", -+ "concat-map": "0.0.1" - } - }, -- "node_modules/inherits": { -- "version": "2.0.4", -- "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", -- "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", -- "dev": true -- }, -- "node_modules/internal-slot": { -- "version": "1.0.5", -- "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.5.tgz", -- "integrity": "sha512-Y+R5hJrzs52QCG2laLn4udYVnxsfny9CpOhNhUvk/SSSVyF6T27FzRbF0sroPidSu3X8oEAkOn2K804mjpt6UQ==", -- "peer": true, -+ "node_modules/eslint/node_modules/chalk": { -+ "version": "4.1.2", -+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", -+ "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", -+ "dev": true, - "dependencies": { -- "get-intrinsic": "^1.2.0", -- "has": "^1.0.3", -- "side-channel": "^1.0.4" -+ "ansi-styles": "^4.1.0", -+ "supports-color": "^7.1.0" - }, - "engines": { -- "node": ">= 0.4" -+ "node": ">=10" -+ }, -+ "funding": { -+ "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, -- "node_modules/is-arguments": { -- "version": "1.1.1", -- "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.1.tgz", -- "integrity": "sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==", -- "peer": true, -+ "node_modules/eslint/node_modules/color-convert": { -+ "version": "2.0.1", -+ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", -+ "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", -+ "dev": true, - "dependencies": { -- "call-bind": "^1.0.2", -- "has-tostringtag": "^1.0.0" -+ "color-name": "~1.1.4" - }, - "engines": { -- "node": ">= 0.4" -- }, -- "funding": { -- "url": "https://github.com/sponsors/ljharb" -+ "node": ">=7.0.0" - } - }, -- "node_modules/is-array-buffer": { -- "version": "3.0.2", -- "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.2.tgz", -- "integrity": "sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w==", -- "peer": true, -- "dependencies": { -- "call-bind": "^1.0.2", -- "get-intrinsic": "^1.2.0", -- "is-typed-array": "^1.1.10" -+ "node_modules/eslint/node_modules/color-name": { -+ "version": "1.1.4", -+ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", -+ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", -+ "dev": true -+ }, -+ "node_modules/eslint/node_modules/escape-string-regexp": { -+ "version": "4.0.0", -+ "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", -+ "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", -+ "dev": true, -+ "engines": { -+ "node": ">=10" - }, - "funding": { -- "url": "https://github.com/sponsors/ljharb" -+ "url": "https://github.com/sponsors/sindresorhus" - } - }, -- "node_modules/is-bigint": { -- "version": "1.0.4", -- "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", -- "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", -- "peer": true, -+ "node_modules/eslint/node_modules/eslint-scope": { -+ "version": "7.2.2", -+ "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz", -+ "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==", -+ "dev": true, - "dependencies": { -- "has-bigints": "^1.0.1" -+ "esrecurse": "^4.3.0", -+ "estraverse": "^5.2.0" -+ }, -+ "engines": { -+ "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { -- "url": "https://github.com/sponsors/ljharb" -+ "url": "https://opencollective.com/eslint" - } - }, -- "node_modules/is-binary-path": { -- "version": "2.1.0", -- "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", -- "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", -+ "node_modules/eslint/node_modules/estraverse": { -+ "version": "5.3.0", -+ "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", -+ "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", -+ "dev": true, -+ "engines": { -+ "node": ">=4.0" -+ } -+ }, -+ "node_modules/eslint/node_modules/glob-parent": { -+ "version": "6.0.2", -+ "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", -+ "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", - "dev": true, - "dependencies": { -- "binary-extensions": "^2.0.0" -+ "is-glob": "^4.0.3" - }, - "engines": { -- "node": ">=8" -+ "node": ">=10.13.0" - } - }, -- "node_modules/is-boolean-object": { -- "version": "1.1.2", -- "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", -- "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", -- "peer": true, -+ "node_modules/eslint/node_modules/globals": { -+ "version": "13.24.0", -+ "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", -+ "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", -+ "dev": true, - "dependencies": { -- "call-bind": "^1.0.2", -- "has-tostringtag": "^1.0.0" -+ "type-fest": "^0.20.2" - }, - "engines": { -- "node": ">= 0.4" -+ "node": ">=8" - }, - "funding": { -- "url": "https://github.com/sponsors/ljharb" -+ "url": "https://github.com/sponsors/sindresorhus" - } - }, -- "node_modules/is-callable": { -- "version": "1.2.7", -- "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", -- "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", -- "peer": true, -+ "node_modules/eslint/node_modules/has-flag": { -+ "version": "4.0.0", -+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", -+ "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", -+ "dev": true, - "engines": { -- "node": ">= 0.4" -- }, -- "funding": { -- "url": "https://github.com/sponsors/ljharb" -+ "node": ">=8" - } - }, -- "node_modules/is-core-module": { -- "version": "2.12.1", -- "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.12.1.tgz", -- "integrity": "sha512-Q4ZuBAe2FUsKtyQJoQHlvP8OvBERxO3jEmy1I7hcRXcJBGGHFh/aJBswbXuS9sgrDH2QUO8ilkwNPHvHMd8clg==", -+ "node_modules/eslint/node_modules/minimatch": { -+ "version": "3.1.2", -+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", -+ "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dev": true, - "dependencies": { -- "has": "^1.0.3" -+ "brace-expansion": "^1.1.7" - }, -- "funding": { -- "url": "https://github.com/sponsors/ljharb" -+ "engines": { -+ "node": "*" - } - }, -- "node_modules/is-date-object": { -- "version": "1.0.5", -- "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", -- "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", -- "peer": true, -+ "node_modules/eslint/node_modules/strip-ansi": { -+ "version": "6.0.1", -+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", -+ "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", -+ "dev": true, - "dependencies": { -- "has-tostringtag": "^1.0.0" -+ "ansi-regex": "^5.0.1" - }, - "engines": { -- "node": ">= 0.4" -- }, -- "funding": { -- "url": "https://github.com/sponsors/ljharb" -+ "node": ">=8" - } - }, -- "node_modules/is-docker": { -- "version": "2.2.1", -- "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz", -- "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==", -+ "node_modules/eslint/node_modules/supports-color": { -+ "version": "7.2.0", -+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", -+ "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, -- "bin": { -- "is-docker": "cli.js" -+ "dependencies": { -+ "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" -+ } -+ }, -+ "node_modules/espree": { -+ "version": "9.6.1", -+ "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz", -+ "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==", -+ "dev": true, -+ "dependencies": { -+ "acorn": "^8.9.0", -+ "acorn-jsx": "^5.3.2", -+ "eslint-visitor-keys": "^3.4.1" -+ }, -+ "engines": { -+ "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { -- "url": "https://github.com/sponsors/sindresorhus" -+ "url": "https://opencollective.com/eslint" - } - }, -- "node_modules/is-extglob": { -- "version": "2.1.1", -- "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", -- "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", -+ "node_modules/esquery": { -+ "version": "1.6.0", -+ "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.6.0.tgz", -+ "integrity": "sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==", - "dev": true, -+ "dependencies": { -+ "estraverse": "^5.1.0" -+ }, - "engines": { -- "node": ">=0.10.0" -+ "node": ">=0.10" - } - }, -- "node_modules/is-fullwidth-code-point": { -- "version": "3.0.0", -- "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", -- "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", -+ "node_modules/esquery/node_modules/estraverse": { -+ "version": "5.3.0", -+ "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", -+ "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", -+ "dev": true, - "engines": { -- "node": ">=8" -+ "node": ">=4.0" - } - }, -- "node_modules/is-glob": { -- "version": "4.0.3", -- "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", -- "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", -+ "node_modules/esrecurse": { -+ "version": "4.3.0", -+ "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", -+ "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", - "dev": true, - "dependencies": { -- "is-extglob": "^2.1.1" -+ "estraverse": "^5.2.0" - }, - "engines": { -- "node": ">=0.10.0" -+ "node": ">=4.0" - } - }, -- "node_modules/is-map": { -- "version": "2.0.2", -- "resolved": "https://registry.npmjs.org/is-map/-/is-map-2.0.2.tgz", -- "integrity": "sha512-cOZFQQozTha1f4MxLFzlgKYPTyj26picdZTx82hbc/Xf4K/tZOOXSCkMvU4pKioRXGDLJRn0GM7Upe7kR721yg==", -- "peer": true, -- "funding": { -- "url": "https://github.com/sponsors/ljharb" -+ "node_modules/esrecurse/node_modules/estraverse": { -+ "version": "5.3.0", -+ "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", -+ "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", -+ "dev": true, -+ "engines": { -+ "node": ">=4.0" - } - }, -- "node_modules/is-number": { -- "version": "7.0.0", -- "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", -- "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", -+ "node_modules/estraverse": { -+ "version": "4.3.0", -+ "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", -+ "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", - "dev": true, -+ "peer": true, - "engines": { -- "node": ">=0.12.0" -+ "node": ">=4.0" - } - }, -- "node_modules/is-number-object": { -- "version": "1.0.7", -- "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz", -- "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==", -- "peer": true, -- "dependencies": { -- "has-tostringtag": "^1.0.0" -- }, -+ "node_modules/esutils": { -+ "version": "2.0.3", -+ "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", -+ "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", -+ "dev": true, - "engines": { -- "node": ">= 0.4" -- }, -- "funding": { -- "url": "https://github.com/sponsors/ljharb" -+ "node": ">=0.10.0" - } - }, -- "node_modules/is-regex": { -- "version": "1.1.4", -- "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", -- "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", -- "peer": true, -- "dependencies": { -- "call-bind": "^1.0.2", -- "has-tostringtag": "^1.0.0" -- }, -+ "node_modules/event-target-shim": { -+ "version": "5.0.1", -+ "resolved": "https://registry.npmjs.org/event-target-shim/-/event-target-shim-5.0.1.tgz", -+ "integrity": "sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==", -+ "dev": true, - "engines": { -- "node": ">= 0.4" -- }, -- "funding": { -- "url": "https://github.com/sponsors/ljharb" -+ "node": ">=6" - } - }, -- "node_modules/is-set": { -- "version": "2.0.2", -- "resolved": "https://registry.npmjs.org/is-set/-/is-set-2.0.2.tgz", -- "integrity": "sha512-+2cnTEZeY5z/iXGbLhPrOAaK/Mau5k5eXq9j14CpRTftq0pAJu2MwVRSZhyZWBzx3o6X795Lz6Bpb6R0GKf37g==", -- "peer": true, -- "funding": { -- "url": "https://github.com/sponsors/ljharb" -+ "node_modules/events": { -+ "version": "3.3.0", -+ "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", -+ "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", -+ "dev": true, -+ "engines": { -+ "node": ">=0.8.x" - } - }, -- "node_modules/is-shared-array-buffer": { -- "version": "1.0.2", -- "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz", -- "integrity": "sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==", -- "peer": true, -+ "node_modules/fast-deep-equal": { -+ "version": "3.1.3", -+ "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", -+ "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", -+ "dev": true -+ }, -+ "node_modules/fast-glob": { -+ "version": "3.3.2", -+ "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz", -+ "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==", -+ "dev": true, - "dependencies": { -- "call-bind": "^1.0.2" -+ "@nodelib/fs.stat": "^2.0.2", -+ "@nodelib/fs.walk": "^1.2.3", -+ "glob-parent": "^5.1.2", -+ "merge2": "^1.3.0", -+ "micromatch": "^4.0.4" - }, -- "funding": { -- "url": "https://github.com/sponsors/ljharb" -+ "engines": { -+ "node": ">=8.6.0" - } - }, -- "node_modules/is-string": { -- "version": "1.0.7", -- "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", -- "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", -- "peer": true, -- "dependencies": { -- "has-tostringtag": "^1.0.0" -- }, -+ "node_modules/fast-json-stable-stringify": { -+ "version": "2.1.0", -+ "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", -+ "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", -+ "dev": true -+ }, -+ "node_modules/fast-levenshtein": { -+ "version": "2.0.6", -+ "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", -+ "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", -+ "dev": true -+ }, -+ "node_modules/fast-uri": { -+ "version": "3.0.1", -+ "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.0.1.tgz", -+ "integrity": "sha512-MWipKbbYiYI0UC7cl8m/i/IWTqfC8YXsqjzybjddLsFjStroQzsHXkc73JutMvBiXmOvapk+axIl79ig5t55Bw==", -+ "dev": true -+ }, -+ "node_modules/fastest-levenshtein": { -+ "version": "1.0.16", -+ "resolved": "https://registry.npmjs.org/fastest-levenshtein/-/fastest-levenshtein-1.0.16.tgz", -+ "integrity": "sha512-eRnCtTTtGZFpQCwhJiUOuxPQWRXVKYDn0b2PeHfXL6/Zi53SLAzAHfVhVWK2AryC/WH05kGfxhFIPvTF0SXQzg==", -+ "dev": true, - "engines": { -- "node": ">= 0.4" -- }, -- "funding": { -- "url": "https://github.com/sponsors/ljharb" -+ "node": ">= 4.9.1" - } - }, -- "node_modules/is-symbol": { -- "version": "1.0.4", -- "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", -- "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", -- "peer": true, -+ "node_modules/fastq": { -+ "version": "1.15.0", -+ "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.15.0.tgz", -+ "integrity": "sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==", -+ "dev": true, - "dependencies": { -- "has-symbols": "^1.0.2" -- }, -- "engines": { -- "node": ">= 0.4" -- }, -- "funding": { -- "url": "https://github.com/sponsors/ljharb" -+ "reusify": "^1.0.4" - } - }, -- "node_modules/is-typed-array": { -- "version": "1.1.12", -- "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.12.tgz", -- "integrity": "sha512-Z14TF2JNG8Lss5/HMqt0//T9JeHXttXy5pH/DBU4vi98ozO2btxzq9MwYDZYnKwU8nRsz/+GVFVRDq3DkVuSPg==", -- "peer": true, -+ "node_modules/file-entry-cache": { -+ "version": "6.0.1", -+ "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", -+ "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", -+ "dev": true, - "dependencies": { -- "which-typed-array": "^1.1.11" -+ "flat-cache": "^3.0.4" - }, - "engines": { -- "node": ">= 0.4" -- }, -- "funding": { -- "url": "https://github.com/sponsors/ljharb" -- } -- }, -- "node_modules/is-weakmap": { -- "version": "2.0.1", -- "resolved": "https://registry.npmjs.org/is-weakmap/-/is-weakmap-2.0.1.tgz", -- "integrity": "sha512-NSBR4kH5oVj1Uwvv970ruUkCV7O1mzgVFO4/rev2cLRda9Tm9HrL70ZPut4rOHgY0FNrUu9BCbXA2sdQ+x0chA==", -- "peer": true, -- "funding": { -- "url": "https://github.com/sponsors/ljharb" -+ "node": "^10.12.0 || >=12.0.0" - } - }, -- "node_modules/is-weakset": { -- "version": "2.0.2", -- "resolved": "https://registry.npmjs.org/is-weakset/-/is-weakset-2.0.2.tgz", -- "integrity": "sha512-t2yVvttHkQktwnNNmBQ98AhENLdPUTDTE21uPqAQ0ARwQfGeQKRVS0NNurH7bTf7RrvcVn1OOge45CnBeHCSmg==", -- "peer": true, -+ "node_modules/file-selector": { -+ "version": "0.6.0", -+ "resolved": "https://registry.npmjs.org/file-selector/-/file-selector-0.6.0.tgz", -+ "integrity": "sha512-QlZ5yJC0VxHxQQsQhXvBaC7VRJ2uaxTf+Tfpu4Z/OcVQJVpZO+DGU0rkoVW5ce2SccxugvpBJoMvUs59iILYdw==", - "dependencies": { -- "call-bind": "^1.0.2", -- "get-intrinsic": "^1.1.1" -+ "tslib": "^2.4.0" - }, -- "funding": { -- "url": "https://github.com/sponsors/ljharb" -+ "engines": { -+ "node": ">= 12" - } - }, -- "node_modules/is-wsl": { -- "version": "2.2.0", -- "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", -- "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", -+ "node_modules/fill-range": { -+ "version": "7.1.1", -+ "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", -+ "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", - "dev": true, - "dependencies": { -- "is-docker": "^2.0.0" -+ "to-regex-range": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, -- "node_modules/isarray": { -- "version": "2.0.5", -- "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", -- "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", -- "peer": true -- }, -- "node_modules/isexe": { -- "version": "2.0.0", -- "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", -- "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==" -- }, -- "node_modules/jackspeak": { -- "version": "2.2.2", -- "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-2.2.2.tgz", -- "integrity": "sha512-mgNtVv4vUuaKA97yxUHoA3+FkuhtxkjdXEWOyB/N76fjy0FjezEt34oy3epBtvCvS+7DyKwqCFWx/oJLV5+kCg==", -+ "node_modules/find-up": { -+ "version": "5.0.0", -+ "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", -+ "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", -+ "dev": true, - "dependencies": { -- "@isaacs/cliui": "^8.0.2" -+ "locate-path": "^6.0.0", -+ "path-exists": "^4.0.0" - }, - "engines": { -- "node": ">=14" -+ "node": ">=10" - }, - "funding": { -- "url": "https://github.com/sponsors/isaacs" -- }, -- "optionalDependencies": { -- "@pkgjs/parseargs": "^0.11.0" -+ "url": "https://github.com/sponsors/sindresorhus" - } - }, -- "node_modules/jed": { -- "version": "1.1.1", -- "resolved": "https://registry.npmjs.org/jed/-/jed-1.1.1.tgz", -- "integrity": "sha512-z35ZSEcXHxLW4yumw0dF6L464NT36vmx3wxJw8MDpraBcWuNVgUPZgPJKcu1HekNgwlMFNqol7i/IpSbjhqwqA==", -- "dev": true -+ "node_modules/find-yarn-workspace-root": { -+ "version": "2.0.0", -+ "resolved": "https://registry.npmjs.org/find-yarn-workspace-root/-/find-yarn-workspace-root-2.0.0.tgz", -+ "integrity": "sha512-1IMnbjt4KzsQfnhnzNd8wUEgXZ44IzZaZmnLYx7D5FZlaHt2gW20Cri8Q+E/t5tIj4+epTBub+2Zxu/vNILzqQ==", -+ "dev": true, -+ "dependencies": { -+ "micromatch": "^4.0.2" -+ } - }, -- "node_modules/jest-worker": { -- "version": "27.5.1", -- "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz", -- "integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==", -+ "node_modules/flat-cache": { -+ "version": "3.2.0", -+ "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.2.0.tgz", -+ "integrity": "sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==", - "dev": true, -- "peer": true, - "dependencies": { -- "@types/node": "*", -- "merge-stream": "^2.0.0", -- "supports-color": "^8.0.0" -+ "flatted": "^3.2.9", -+ "keyv": "^4.5.3", -+ "rimraf": "^3.0.2" - }, - "engines": { -- "node": ">= 10.13.0" -+ "node": "^10.12.0 || >=12.0.0" - } - }, -- "node_modules/jest-worker/node_modules/has-flag": { -- "version": "4.0.0", -- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", -- "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", -+ "node_modules/flat-cache/node_modules/brace-expansion": { -+ "version": "1.1.11", -+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", -+ "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dev": true, -- "peer": true, -- "engines": { -- "node": ">=8" -+ "dependencies": { -+ "balanced-match": "^1.0.0", -+ "concat-map": "0.0.1" - } - }, -- "node_modules/jest-worker/node_modules/supports-color": { -- "version": "8.1.1", -- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", -- "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", -+ "node_modules/flat-cache/node_modules/glob": { -+ "version": "7.2.3", -+ "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", -+ "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", -+ "deprecated": "Glob versions prior to v9 are no longer supported", - "dev": true, -- "peer": true, - "dependencies": { -- "has-flag": "^4.0.0" -+ "fs.realpath": "^1.0.0", -+ "inflight": "^1.0.4", -+ "inherits": "2", -+ "minimatch": "^3.1.1", -+ "once": "^1.3.0", -+ "path-is-absolute": "^1.0.0" - }, - "engines": { -- "node": ">=10" -+ "node": "*" - }, - "funding": { -- "url": "https://github.com/chalk/supports-color?sponsor=1" -+ "url": "https://github.com/sponsors/isaacs" - } - }, -- "node_modules/js-tokens": { -- "version": "4.0.0", -- "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", -- "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" -- }, -- "node_modules/jsesc": { -- "version": "2.5.2", -- "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", -- "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", -+ "node_modules/flat-cache/node_modules/minimatch": { -+ "version": "3.1.2", -+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", -+ "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dev": true, -- "peer": true, -- "bin": { -- "jsesc": "bin/jsesc" -+ "dependencies": { -+ "brace-expansion": "^1.1.7" - }, - "engines": { -- "node": ">=4" -+ "node": "*" - } - }, -- "node_modules/json-parse-even-better-errors": { -- "version": "2.3.1", -- "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", -- "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", -+ "node_modules/flat-cache/node_modules/rimraf": { -+ "version": "3.0.2", -+ "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", -+ "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", -+ "deprecated": "Rimraf versions prior to v4 are no longer supported", - "dev": true, -- "peer": true -- }, -- "node_modules/json-schema-traverse": { -- "version": "0.4.1", -- "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", -- "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", -- "dev": true, -- "peer": true -- }, -- "node_modules/json5": { -- "version": "2.2.3", -- "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", -- "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", -- "dev": true, -- "peer": true, -+ "dependencies": { -+ "glob": "^7.1.3" -+ }, - "bin": { -- "json5": "lib/cli.js" -+ "rimraf": "bin.js" - }, -- "engines": { -- "node": ">=6" -+ "funding": { -+ "url": "https://github.com/sponsors/isaacs" - } - }, -- "node_modules/jsonfile": { -- "version": "6.1.0", -- "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", -- "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", -- "dev": true, -+ "node_modules/flatted": { -+ "version": "3.3.1", -+ "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.1.tgz", -+ "integrity": "sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==", -+ "dev": true -+ }, -+ "node_modules/focus-trap": { -+ "version": "7.5.2", -+ "resolved": "https://registry.npmjs.org/focus-trap/-/focus-trap-7.5.2.tgz", -+ "integrity": "sha512-p6vGNNWLDGwJCiEjkSK6oERj/hEyI9ITsSwIUICBoKLlWiTWXJRfQibCwcoi50rTZdbi87qDtUlMCmQwsGSgPw==", - "dependencies": { -- "universalify": "^2.0.0" -- }, -- "optionalDependencies": { -- "graceful-fs": "^4.1.6" -+ "tabbable": "^6.2.0" - } - }, -- "node_modules/klaw-sync": { -- "version": "6.0.0", -- "resolved": "https://registry.npmjs.org/klaw-sync/-/klaw-sync-6.0.0.tgz", -- "integrity": "sha512-nIeuVSzdCCs6TDPTqI8w1Yre34sSq7AkZ4B3sfOBbI2CgVSB4Du4aLQijFU2+lhAFCwt9+42Hel6lQNIv6AntQ==", -- "dev": true, -+ "node_modules/for-each": { -+ "version": "0.3.3", -+ "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", -+ "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", - "dependencies": { -- "graceful-fs": "^4.1.11" -+ "is-callable": "^1.1.3" - } - }, -- "node_modules/loader-runner": { -- "version": "4.3.0", -- "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.3.0.tgz", -- "integrity": "sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==", -- "dev": true, -- "peer": true, -+ "node_modules/foreground-child": { -+ "version": "3.2.1", -+ "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.2.1.tgz", -+ "integrity": "sha512-PXUUyLqrR2XCWICfv6ukppP96sdFwWbNEnfEMt7jNsISjMsvaLNinAHNDYyvkyU+SZG2BTSbT5NjG+vZslfGTA==", -+ "dependencies": { -+ "cross-spawn": "^7.0.0", -+ "signal-exit": "^4.0.1" -+ }, - "engines": { -- "node": ">=6.11.5" -+ "node": ">=14" -+ }, -+ "funding": { -+ "url": "https://github.com/sponsors/isaacs" - } - }, -- "node_modules/loose-envify": { -- "version": "1.4.0", -- "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", -- "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", -+ "node_modules/fs-extra": { -+ "version": "10.1.0", -+ "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", -+ "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", -+ "dev": true, - "dependencies": { -- "js-tokens": "^3.0.0 || ^4.0.0" -+ "graceful-fs": "^4.2.0", -+ "jsonfile": "^6.0.1", -+ "universalify": "^2.0.0" - }, -- "bin": { -- "loose-envify": "cli.js" -+ "engines": { -+ "node": ">=12" - } - }, -- "node_modules/lru-cache": { -- "version": "5.1.1", -- "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", -- "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", -- "dev": true, -- "peer": true, -- "dependencies": { -- "yallist": "^3.0.2" -+ "node_modules/fs.realpath": { -+ "version": "1.0.0", -+ "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", -+ "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", -+ "dev": true -+ }, -+ "node_modules/function-bind": { -+ "version": "1.1.2", -+ "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", -+ "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", -+ "funding": { -+ "url": "https://github.com/sponsors/ljharb" - } - }, -- "node_modules/magic-string": { -- "version": "0.25.9", -- "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.9.tgz", -- "integrity": "sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==", -+ "node_modules/function.prototype.name": { -+ "version": "1.1.6", -+ "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.6.tgz", -+ "integrity": "sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==", - "dev": true, - "dependencies": { -- "sourcemap-codec": "^1.4.8" -+ "call-bind": "^1.0.2", -+ "define-properties": "^1.2.0", -+ "es-abstract": "^1.22.1", -+ "functions-have-names": "^1.2.3" -+ }, -+ "engines": { -+ "node": ">= 0.4" -+ }, -+ "funding": { -+ "url": "https://github.com/sponsors/ljharb" - } - }, -- "node_modules/merge-stream": { -- "version": "2.0.0", -- "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", -- "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", -- "dev": true, -- "peer": true -+ "node_modules/functions-have-names": { -+ "version": "1.2.3", -+ "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", -+ "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", -+ "funding": { -+ "url": "https://github.com/sponsors/ljharb" -+ } - }, -- "node_modules/merge2": { -- "version": "1.4.1", -- "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", -- "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", -+ "node_modules/gensync": { -+ "version": "1.0.0-beta.2", -+ "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", -+ "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", - "dev": true, -+ "peer": true, - "engines": { -- "node": ">= 8" -+ "node": ">=6.9.0" - } - }, -- "node_modules/micromatch": { -- "version": "4.0.5", -- "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", -- "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", -+ "node_modules/get-east-asian-width": { -+ "version": "1.2.0", -+ "resolved": "https://registry.npmjs.org/get-east-asian-width/-/get-east-asian-width-1.2.0.tgz", -+ "integrity": "sha512-2nk+7SIVb14QrgXFHcm84tD4bKQz0RxPuMT8Ag5KPOq7J5fEmAg0UbXdTOSHqNuHSU28k55qnceesxXRZGzKWA==", - "dev": true, -+ "engines": { -+ "node": ">=18" -+ }, -+ "funding": { -+ "url": "https://github.com/sponsors/sindresorhus" -+ } -+ }, -+ "node_modules/get-intrinsic": { -+ "version": "1.2.4", -+ "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.4.tgz", -+ "integrity": "sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==", - "dependencies": { -- "braces": "^3.0.2", -- "picomatch": "^2.3.1" -+ "es-errors": "^1.3.0", -+ "function-bind": "^1.1.2", -+ "has-proto": "^1.0.1", -+ "has-symbols": "^1.0.3", -+ "hasown": "^2.0.0" - }, - "engines": { -- "node": ">=8.6" -+ "node": ">= 0.4" -+ }, -+ "funding": { -+ "url": "https://github.com/sponsors/ljharb" - } - }, -- "node_modules/mime-db": { -- "version": "1.52.0", -- "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", -- "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", -+ "node_modules/get-symbol-description": { -+ "version": "1.0.2", -+ "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.2.tgz", -+ "integrity": "sha512-g0QYk1dZBxGwk+Ngc+ltRH2IBp2f7zBkBMBJZCDerh6EhlhSR6+9irMCuT/09zD6qkarHUSn529sK/yL4S27mg==", - "dev": true, -- "peer": true, -+ "dependencies": { -+ "call-bind": "^1.0.5", -+ "es-errors": "^1.3.0", -+ "get-intrinsic": "^1.2.4" -+ }, - "engines": { -- "node": ">= 0.6" -+ "node": ">= 0.4" -+ }, -+ "funding": { -+ "url": "https://github.com/sponsors/ljharb" - } - }, -- "node_modules/mime-types": { -- "version": "2.1.35", -- "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", -- "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", -+ "node_modules/get-tsconfig": { -+ "version": "4.7.6", -+ "resolved": "https://registry.npmjs.org/get-tsconfig/-/get-tsconfig-4.7.6.tgz", -+ "integrity": "sha512-ZAqrLlu18NbDdRaHq+AKXzAmqIUPswPWKUchfytdAjiRFnCe5ojG2bstg6mRiZabkKfCoL/e98pbBELIV/YCeA==", - "dev": true, - "peer": true, - "dependencies": { -- "mime-db": "1.52.0" -+ "resolve-pkg-maps": "^1.0.0" -+ }, -+ "funding": { -+ "url": "https://github.com/privatenumber/get-tsconfig?sponsor=1" -+ } -+ }, -+ "node_modules/gettext-parser": { -+ "version": "8.0.0", -+ "resolved": "https://registry.npmjs.org/gettext-parser/-/gettext-parser-8.0.0.tgz", -+ "integrity": "sha512-eFmhDi2xQ+2reMRY2AbJ2oa10uFOl1oyGbAKdCZiNOk94NJHi7aN0OBELSC9v35ZAPQdr+uRBi93/Gu4SlBdrA==", -+ "dev": true, -+ "dependencies": { -+ "content-type": "^1.0.5", -+ "encoding": "^0.1.13", -+ "readable-stream": "^4.5.2", -+ "safe-buffer": "^5.2.1" - }, - "engines": { -- "node": ">= 0.6" -+ "node": ">=18" - } - }, -- "node_modules/minimatch": { -- "version": "9.0.3", -- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz", -- "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", -+ "node_modules/glob": { -+ "version": "11.0.0", -+ "resolved": "https://registry.npmjs.org/glob/-/glob-11.0.0.tgz", -+ "integrity": "sha512-9UiX/Bl6J2yaBbxKoEBRm4Cipxgok8kQYcOPEhScPwebu2I0HoQOuYdIO6S3hLuWoZgpDpwQZMzTFxgpkyT76g==", - "dependencies": { -- "brace-expansion": "^2.0.1" -+ "foreground-child": "^3.1.0", -+ "jackspeak": "^4.0.1", -+ "minimatch": "^10.0.0", -+ "minipass": "^7.1.2", -+ "package-json-from-dist": "^1.0.0", -+ "path-scurry": "^2.0.0" -+ }, -+ "bin": { -+ "glob": "dist/esm/bin.mjs" - }, - "engines": { -- "node": ">=16 || 14 >=14.17" -+ "node": "20 || >=22" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, -- "node_modules/minimist": { -- "version": "1.2.8", -- "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", -- "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", -+ "node_modules/glob-parent": { -+ "version": "5.1.2", -+ "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", -+ "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "dev": true, -- "funding": { -- "url": "https://github.com/sponsors/ljharb" -- } -- }, -- "node_modules/minipass": { -- "version": "7.0.2", -- "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.0.2.tgz", -- "integrity": "sha512-eL79dXrE1q9dBbDCLg7xfn/vl7MS4F1gvJAgjJrQli/jbQWdUttuVawphqpffoIYfRdq78LHx6GP4bU/EQ2ATA==", -+ "dependencies": { -+ "is-glob": "^4.0.1" -+ }, - "engines": { -- "node": ">=16 || 14 >=14.17" -+ "node": ">= 6" - } - }, -- "node_modules/ms": { -- "version": "2.1.2", -- "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", -- "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", -- "dev": true, -- "peer": true -- }, -- "node_modules/neo-async": { -- "version": "2.6.2", -- "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", -- "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", -+ "node_modules/glob-to-regexp": { -+ "version": "0.4.1", -+ "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz", -+ "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==", - "dev": true, - "peer": true - }, -- "node_modules/node-releases": { -- "version": "2.0.13", -- "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.13.tgz", -- "integrity": "sha512-uYr7J37ae/ORWdZeQ1xxMJe3NtdmqMC/JZK+geofDrkLUApKRHPd18/TxtBOJ4A0/+uUIliorNrfYV6s1b02eQ==", -- "dev": true, -- "peer": true -+ "node_modules/glob/node_modules/minimatch": { -+ "version": "10.0.1", -+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.0.1.tgz", -+ "integrity": "sha512-ethXTt3SGGR+95gudmqJ1eNhRO7eGEGIgYA9vnPatK4/etz2MEVDno5GMCibdMTuBMyElzIlgxMna3K94XDIDQ==", -+ "dependencies": { -+ "brace-expansion": "^2.0.1" -+ }, -+ "engines": { -+ "node": "20 || >=22" -+ }, -+ "funding": { -+ "url": "https://github.com/sponsors/isaacs" -+ } - }, -- "node_modules/node-watch": { -- "version": "0.7.3", -- "resolved": "https://registry.npmjs.org/node-watch/-/node-watch-0.7.3.tgz", -- "integrity": "sha512-3l4E8uMPY1HdMMryPRUAl+oIHtXtyiTlIiESNSVSNxcPfzAFzeTbXFQkZfAwBbo0B1qMSG8nUABx+Gd+YrbKrQ==", -+ "node_modules/global-modules": { -+ "version": "2.0.0", -+ "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-2.0.0.tgz", -+ "integrity": "sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A==", - "dev": true, -+ "dependencies": { -+ "global-prefix": "^3.0.0" -+ }, - "engines": { - "node": ">=6" - } - }, -- "node_modules/normalize-path": { -+ "node_modules/global-prefix": { - "version": "3.0.0", -- "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", -- "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", -+ "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-3.0.0.tgz", -+ "integrity": "sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg==", - "dev": true, -+ "dependencies": { -+ "ini": "^1.3.5", -+ "kind-of": "^6.0.2", -+ "which": "^1.3.1" -+ }, - "engines": { -- "node": ">=0.10.0" -+ "node": ">=6" - } - }, -- "node_modules/object-assign": { -- "version": "4.1.1", -- "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", -- "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", -- "engines": { -- "node": ">=0.10.0" -- } -+ "node_modules/global-prefix/node_modules/which": { -+ "version": "1.3.1", -+ "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", -+ "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", -+ "dev": true, -+ "dependencies": { -+ "isexe": "^2.0.0" -+ }, -+ "bin": { -+ "which": "bin/which" -+ } - }, -- "node_modules/object-inspect": { -- "version": "1.12.3", -- "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.3.tgz", -- "integrity": "sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g==", -+ "node_modules/globals": { -+ "version": "11.12.0", -+ "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", -+ "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", -+ "dev": true, - "peer": true, -+ "engines": { -+ "node": ">=4" -+ } -+ }, -+ "node_modules/globalthis": { -+ "version": "1.0.4", -+ "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.4.tgz", -+ "integrity": "sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==", -+ "dev": true, -+ "dependencies": { -+ "define-properties": "^1.2.1", -+ "gopd": "^1.0.1" -+ }, -+ "engines": { -+ "node": ">= 0.4" -+ }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, -- "node_modules/object-is": { -- "version": "1.1.5", -- "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.1.5.tgz", -- "integrity": "sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw==", -- "peer": true, -+ "node_modules/globalyzer": { -+ "version": "0.1.0", -+ "resolved": "https://registry.npmjs.org/globalyzer/-/globalyzer-0.1.0.tgz", -+ "integrity": "sha512-40oNTM9UfG6aBmuKxk/giHn5nQ8RVz/SS4Ir6zgzOv9/qC3kKZ9v4etGTcJbEl/NyVQH7FGU7d+X1egr57Md2Q==", -+ "dev": true -+ }, -+ "node_modules/globby": { -+ "version": "11.1.0", -+ "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", -+ "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", -+ "dev": true, - "dependencies": { -- "call-bind": "^1.0.2", -- "define-properties": "^1.1.3" -+ "array-union": "^2.1.0", -+ "dir-glob": "^3.0.1", -+ "fast-glob": "^3.2.9", -+ "ignore": "^5.2.0", -+ "merge2": "^1.4.1", -+ "slash": "^3.0.0" -+ }, -+ "engines": { -+ "node": ">=10" -+ }, -+ "funding": { -+ "url": "https://github.com/sponsors/sindresorhus" -+ } -+ }, -+ "node_modules/globjoin": { -+ "version": "0.1.4", -+ "resolved": "https://registry.npmjs.org/globjoin/-/globjoin-0.1.4.tgz", -+ "integrity": "sha512-xYfnw62CKG8nLkZBfWbhWwDw02CHty86jfPcc2cr3ZfeuK9ysoVPPEUxf21bAD/rWAgk52SuBrLJlefNy8mvFg==", -+ "dev": true -+ }, -+ "node_modules/globrex": { -+ "version": "0.1.2", -+ "resolved": "https://registry.npmjs.org/globrex/-/globrex-0.1.2.tgz", -+ "integrity": "sha512-uHJgbwAMwNFf5mLst7IWLNg14x1CkeqglJb/K3doi4dw6q2IvAAmM/Y81kevy83wP+Sst+nutFTYOGg3d1lsxg==", -+ "dev": true -+ }, -+ "node_modules/gopd": { -+ "version": "1.0.1", -+ "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", -+ "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", -+ "dependencies": { -+ "get-intrinsic": "^1.1.3" -+ }, -+ "funding": { -+ "url": "https://github.com/sponsors/ljharb" -+ } -+ }, -+ "node_modules/graceful-fs": { -+ "version": "4.2.11", -+ "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", -+ "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", -+ "dev": true -+ }, -+ "node_modules/graphemer": { -+ "version": "1.4.0", -+ "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", -+ "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==", -+ "dev": true -+ }, -+ "node_modules/has-bigints": { -+ "version": "1.0.2", -+ "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz", -+ "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==", -+ "funding": { -+ "url": "https://github.com/sponsors/ljharb" -+ } -+ }, -+ "node_modules/has-flag": { -+ "version": "3.0.0", -+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", -+ "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", -+ "dev": true, -+ "engines": { -+ "node": ">=4" -+ } -+ }, -+ "node_modules/has-property-descriptors": { -+ "version": "1.0.2", -+ "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", -+ "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", -+ "dependencies": { -+ "es-define-property": "^1.0.0" - }, -+ "funding": { -+ "url": "https://github.com/sponsors/ljharb" -+ } -+ }, -+ "node_modules/has-proto": { -+ "version": "1.0.3", -+ "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.3.tgz", -+ "integrity": "sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==", - "engines": { - "node": ">= 0.4" - }, -@@ -3487,25 +4316,23 @@ - "url": "https://github.com/sponsors/ljharb" - } - }, -- "node_modules/object-keys": { -- "version": "1.1.1", -- "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", -- "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", -- "peer": true, -+ "node_modules/has-symbols": { -+ "version": "1.0.3", -+ "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", -+ "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", - "engines": { - "node": ">= 0.4" -+ }, -+ "funding": { -+ "url": "https://github.com/sponsors/ljharb" - } - }, -- "node_modules/object.assign": { -- "version": "4.1.4", -- "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.4.tgz", -- "integrity": "sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==", -- "peer": true, -+ "node_modules/has-tostringtag": { -+ "version": "1.0.2", -+ "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz", -+ "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==", - "dependencies": { -- "call-bind": "^1.0.2", -- "define-properties": "^1.1.4", -- "has-symbols": "^1.0.3", -- "object-keys": "^1.1.1" -+ "has-symbols": "^1.0.3" - }, - "engines": { - "node": ">= 0.4" -@@ -3514,447 +4341,2566 @@ - "url": "https://github.com/sponsors/ljharb" - } - }, -- "node_modules/once": { -- "version": "1.4.0", -- "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", -- "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", -+ "node_modules/hasown": { -+ "version": "2.0.2", -+ "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", -+ "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", -+ "dependencies": { -+ "function-bind": "^1.1.2" -+ }, -+ "engines": { -+ "node": ">= 0.4" -+ } -+ }, -+ "node_modules/html-tags": { -+ "version": "3.3.1", -+ "resolved": "https://registry.npmjs.org/html-tags/-/html-tags-3.3.1.tgz", -+ "integrity": "sha512-ztqyC3kLto0e9WbNp0aeP+M3kTt+nbaIveGmUxAtZa+8iFgKLUOD4YKM5j+f3QD89bra7UeumolZHKuOXnTmeQ==", -+ "dev": true, -+ "engines": { -+ "node": ">=8" -+ }, -+ "funding": { -+ "url": "https://github.com/sponsors/sindresorhus" -+ } -+ }, -+ "node_modules/htmlparser": { -+ "version": "1.7.7", -+ "resolved": "https://registry.npmjs.org/htmlparser/-/htmlparser-1.7.7.tgz", -+ "integrity": "sha512-zpK66ifkT0fauyFh2Mulrq4AqGTucxGtOhZ8OjkbSfcCpkqQEI8qRkY0tSQSJNAQ4HUZkgWaU4fK4EH6SVH9PQ==", -+ "dev": true, -+ "engines": { -+ "node": ">=0.1.33" -+ } -+ }, -+ "node_modules/iconv-lite": { -+ "version": "0.6.3", -+ "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", -+ "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", - "dev": true, - "dependencies": { -- "wrappy": "1" -+ "safer-buffer": ">= 2.1.2 < 3.0.0" -+ }, -+ "engines": { -+ "node": ">=0.10.0" - } - }, -- "node_modules/open": { -- "version": "7.4.2", -- "resolved": "https://registry.npmjs.org/open/-/open-7.4.2.tgz", -- "integrity": "sha512-MVHddDVweXZF3awtlAS+6pgKLlm/JgxZ90+/NBurBoQctVOOB/zDdVjcyPzQ+0laDGbsWgrRkflI65sQeOgT9Q==", -+ "node_modules/ieee754": { -+ "version": "1.2.1", -+ "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", -+ "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", -+ "dev": true, -+ "funding": [ -+ { -+ "type": "github", -+ "url": "https://github.com/sponsors/feross" -+ }, -+ { -+ "type": "patreon", -+ "url": "https://www.patreon.com/feross" -+ }, -+ { -+ "type": "consulting", -+ "url": "https://feross.org/support" -+ } -+ ] -+ }, -+ "node_modules/ignore": { -+ "version": "5.3.1", -+ "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.1.tgz", -+ "integrity": "sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==", -+ "dev": true, -+ "engines": { -+ "node": ">= 4" -+ } -+ }, -+ "node_modules/immutable": { -+ "version": "4.3.1", -+ "resolved": "https://registry.npmjs.org/immutable/-/immutable-4.3.1.tgz", -+ "integrity": "sha512-lj9cnmB/kVS0QHsJnYKD1uo3o39nrbKxszjnqS9Fr6NB7bZzW45U6WSGBPKXDL/CvDKqDNPA4r3DoDQ8GTxo2A==", -+ "dev": true -+ }, -+ "node_modules/import-fresh": { -+ "version": "3.3.0", -+ "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", -+ "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", - "dev": true, - "dependencies": { -- "is-docker": "^2.0.0", -- "is-wsl": "^2.1.1" -+ "parent-module": "^1.0.0", -+ "resolve-from": "^4.0.0" - }, - "engines": { -- "node": ">=8" -+ "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, -- "node_modules/os-tmpdir": { -- "version": "1.0.2", -- "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", -- "integrity": "sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==", -+ "node_modules/imurmurhash": { -+ "version": "0.1.4", -+ "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", -+ "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", - "dev": true, - "engines": { -- "node": ">=0.10.0" -+ "node": ">=0.8.19" - } - }, -- "node_modules/patch-package": { -- "version": "7.0.2", -- "resolved": "https://registry.npmjs.org/patch-package/-/patch-package-7.0.2.tgz", -- "integrity": "sha512-PMYfL8LXxGIRmxXLqlEaBxzKPu7/SdP13ld6GSfAUJUZRmBDPp8chZs0dpzaAFn9TSPnFiMwkC6PJt6pBiAl8Q==", -+ "node_modules/inflight": { -+ "version": "1.0.6", -+ "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", -+ "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", - "dev": true, - "dependencies": { -- "@yarnpkg/lockfile": "^1.1.0", -- "chalk": "^4.1.2", -- "ci-info": "^3.7.0", -- "cross-spawn": "^7.0.3", -- "find-yarn-workspace-root": "^2.0.0", -- "fs-extra": "^9.0.0", -- "klaw-sync": "^6.0.0", -- "minimist": "^1.2.6", -- "open": "^7.4.2", -- "rimraf": "^2.6.3", -- "semver": "^7.5.3", -- "slash": "^2.0.0", -- "tmp": "^0.0.33", -- "yaml": "^2.2.2" -+ "once": "^1.3.0", -+ "wrappy": "1" -+ } -+ }, -+ "node_modules/inherits": { -+ "version": "2.0.4", -+ "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", -+ "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", -+ "dev": true -+ }, -+ "node_modules/ini": { -+ "version": "1.3.8", -+ "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", -+ "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", -+ "dev": true -+ }, -+ "node_modules/internal-slot": { -+ "version": "1.0.7", -+ "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.7.tgz", -+ "integrity": "sha512-NGnrKwXzSms2qUUih/ILZ5JBqNTSa1+ZmP6flaIp6KmSElgE9qdndzS3cqjrDovwFdmwsGsLdeFgB6suw+1e9g==", -+ "dependencies": { -+ "es-errors": "^1.3.0", -+ "hasown": "^2.0.0", -+ "side-channel": "^1.0.4" - }, -+ "engines": { -+ "node": ">= 0.4" -+ } -+ }, -+ "node_modules/irregular-plurals": { -+ "version": "3.5.0", -+ "resolved": "https://registry.npmjs.org/irregular-plurals/-/irregular-plurals-3.5.0.tgz", -+ "integrity": "sha512-1ANGLZ+Nkv1ptFb2pa8oG8Lem4krflKuX/gINiHJHjJUKaJHk/SXk5x6K3J+39/p0h1RQ2saROclJJ+QLvETCQ==", -+ "dev": true, -+ "engines": { -+ "node": ">=8" -+ } -+ }, -+ "node_modules/is-arguments": { -+ "version": "1.1.1", -+ "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.1.tgz", -+ "integrity": "sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==", -+ "peer": true, -+ "dependencies": { -+ "call-bind": "^1.0.2", -+ "has-tostringtag": "^1.0.0" -+ }, -+ "engines": { -+ "node": ">= 0.4" -+ }, -+ "funding": { -+ "url": "https://github.com/sponsors/ljharb" -+ } -+ }, -+ "node_modules/is-array-buffer": { -+ "version": "3.0.4", -+ "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.4.tgz", -+ "integrity": "sha512-wcjaerHw0ydZwfhiKbXJWLDY8A7yV7KhjQOpb83hGgGfId/aQa4TOvwyzn2PuswW2gPCYEL/nEAiSVpdOj1lXw==", -+ "dependencies": { -+ "call-bind": "^1.0.2", -+ "get-intrinsic": "^1.2.1" -+ }, -+ "engines": { -+ "node": ">= 0.4" -+ }, -+ "funding": { -+ "url": "https://github.com/sponsors/ljharb" -+ } -+ }, -+ "node_modules/is-arrayish": { -+ "version": "0.2.1", -+ "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", -+ "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", -+ "dev": true -+ }, -+ "node_modules/is-async-function": { -+ "version": "2.0.0", -+ "resolved": "https://registry.npmjs.org/is-async-function/-/is-async-function-2.0.0.tgz", -+ "integrity": "sha512-Y1JXKrfykRJGdlDwdKlLpLyMIiWqWvuSd17TvZk68PLAOGOoF4Xyav1z0Xhoi+gCYjZVeC5SI+hYFOfvXmGRCA==", -+ "dev": true, -+ "dependencies": { -+ "has-tostringtag": "^1.0.0" -+ }, -+ "engines": { -+ "node": ">= 0.4" -+ }, -+ "funding": { -+ "url": "https://github.com/sponsors/ljharb" -+ } -+ }, -+ "node_modules/is-bigint": { -+ "version": "1.0.4", -+ "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", -+ "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", -+ "dependencies": { -+ "has-bigints": "^1.0.1" -+ }, -+ "funding": { -+ "url": "https://github.com/sponsors/ljharb" -+ } -+ }, -+ "node_modules/is-binary-path": { -+ "version": "2.1.0", -+ "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", -+ "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", -+ "dev": true, -+ "dependencies": { -+ "binary-extensions": "^2.0.0" -+ }, -+ "engines": { -+ "node": ">=8" -+ } -+ }, -+ "node_modules/is-boolean-object": { -+ "version": "1.1.2", -+ "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", -+ "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", -+ "dependencies": { -+ "call-bind": "^1.0.2", -+ "has-tostringtag": "^1.0.0" -+ }, -+ "engines": { -+ "node": ">= 0.4" -+ }, -+ "funding": { -+ "url": "https://github.com/sponsors/ljharb" -+ } -+ }, -+ "node_modules/is-builtin-module": { -+ "version": "3.2.1", -+ "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-3.2.1.tgz", -+ "integrity": "sha512-BSLE3HnV2syZ0FK0iMA/yUGplUeMmNz4AW5fnTunbCIqZi4vG3WjJT9FHMy5D69xmAYBHXQhJdALdpwVxV501A==", -+ "dev": true, -+ "peer": true, -+ "dependencies": { -+ "builtin-modules": "^3.3.0" -+ }, -+ "engines": { -+ "node": ">=6" -+ }, -+ "funding": { -+ "url": "https://github.com/sponsors/sindresorhus" -+ } -+ }, -+ "node_modules/is-callable": { -+ "version": "1.2.7", -+ "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", -+ "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", -+ "engines": { -+ "node": ">= 0.4" -+ }, -+ "funding": { -+ "url": "https://github.com/sponsors/ljharb" -+ } -+ }, -+ "node_modules/is-core-module": { -+ "version": "2.15.0", -+ "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.15.0.tgz", -+ "integrity": "sha512-Dd+Lb2/zvk9SKy1TGCt1wFJFo/MWBPMX5x7KcvLajWTGuomczdQX61PvY5yK6SVACwpoexWo81IfFyoKY2QnTA==", -+ "dev": true, -+ "dependencies": { -+ "hasown": "^2.0.2" -+ }, -+ "engines": { -+ "node": ">= 0.4" -+ }, -+ "funding": { -+ "url": "https://github.com/sponsors/ljharb" -+ } -+ }, -+ "node_modules/is-data-view": { -+ "version": "1.0.1", -+ "resolved": "https://registry.npmjs.org/is-data-view/-/is-data-view-1.0.1.tgz", -+ "integrity": "sha512-AHkaJrsUVW6wq6JS8y3JnM/GJF/9cf+k20+iDzlSaJrinEo5+7vRiteOSwBhHRiAyQATN1AmY4hwzxJKPmYf+w==", -+ "dev": true, -+ "dependencies": { -+ "is-typed-array": "^1.1.13" -+ }, -+ "engines": { -+ "node": ">= 0.4" -+ }, -+ "funding": { -+ "url": "https://github.com/sponsors/ljharb" -+ } -+ }, -+ "node_modules/is-date-object": { -+ "version": "1.0.5", -+ "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", -+ "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", -+ "dependencies": { -+ "has-tostringtag": "^1.0.0" -+ }, -+ "engines": { -+ "node": ">= 0.4" -+ }, -+ "funding": { -+ "url": "https://github.com/sponsors/ljharb" -+ } -+ }, -+ "node_modules/is-docker": { -+ "version": "2.2.1", -+ "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz", -+ "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==", -+ "dev": true, -+ "bin": { -+ "is-docker": "cli.js" -+ }, -+ "engines": { -+ "node": ">=8" -+ }, -+ "funding": { -+ "url": "https://github.com/sponsors/sindresorhus" -+ } -+ }, -+ "node_modules/is-extglob": { -+ "version": "2.1.1", -+ "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", -+ "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", -+ "dev": true, -+ "engines": { -+ "node": ">=0.10.0" -+ } -+ }, -+ "node_modules/is-finalizationregistry": { -+ "version": "1.0.2", -+ "resolved": "https://registry.npmjs.org/is-finalizationregistry/-/is-finalizationregistry-1.0.2.tgz", -+ "integrity": "sha512-0by5vtUJs8iFQb5TYUHHPudOR+qXYIMKtiUzvLIZITZUjknFmziyBJuLhVRc+Ds0dREFlskDNJKYIdIzu/9pfw==", -+ "dev": true, -+ "dependencies": { -+ "call-bind": "^1.0.2" -+ }, -+ "funding": { -+ "url": "https://github.com/sponsors/ljharb" -+ } -+ }, -+ "node_modules/is-fullwidth-code-point": { -+ "version": "3.0.0", -+ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", -+ "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", -+ "engines": { -+ "node": ">=8" -+ } -+ }, -+ "node_modules/is-generator-function": { -+ "version": "1.0.10", -+ "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.0.10.tgz", -+ "integrity": "sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==", -+ "dev": true, -+ "dependencies": { -+ "has-tostringtag": "^1.0.0" -+ }, -+ "engines": { -+ "node": ">= 0.4" -+ }, -+ "funding": { -+ "url": "https://github.com/sponsors/ljharb" -+ } -+ }, -+ "node_modules/is-glob": { -+ "version": "4.0.3", -+ "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", -+ "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", -+ "dev": true, -+ "dependencies": { -+ "is-extglob": "^2.1.1" -+ }, -+ "engines": { -+ "node": ">=0.10.0" -+ } -+ }, -+ "node_modules/is-map": { -+ "version": "2.0.2", -+ "resolved": "https://registry.npmjs.org/is-map/-/is-map-2.0.2.tgz", -+ "integrity": "sha512-cOZFQQozTha1f4MxLFzlgKYPTyj26picdZTx82hbc/Xf4K/tZOOXSCkMvU4pKioRXGDLJRn0GM7Upe7kR721yg==", -+ "funding": { -+ "url": "https://github.com/sponsors/ljharb" -+ } -+ }, -+ "node_modules/is-negative-zero": { -+ "version": "2.0.3", -+ "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.3.tgz", -+ "integrity": "sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==", -+ "dev": true, -+ "engines": { -+ "node": ">= 0.4" -+ }, -+ "funding": { -+ "url": "https://github.com/sponsors/ljharb" -+ } -+ }, -+ "node_modules/is-number": { -+ "version": "7.0.0", -+ "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", -+ "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", -+ "dev": true, -+ "engines": { -+ "node": ">=0.12.0" -+ } -+ }, -+ "node_modules/is-number-object": { -+ "version": "1.0.7", -+ "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz", -+ "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==", -+ "dependencies": { -+ "has-tostringtag": "^1.0.0" -+ }, -+ "engines": { -+ "node": ">= 0.4" -+ }, -+ "funding": { -+ "url": "https://github.com/sponsors/ljharb" -+ } -+ }, -+ "node_modules/is-path-inside": { -+ "version": "3.0.3", -+ "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", -+ "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", -+ "dev": true, -+ "engines": { -+ "node": ">=8" -+ } -+ }, -+ "node_modules/is-plain-object": { -+ "version": "5.0.0", -+ "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-5.0.0.tgz", -+ "integrity": "sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==", -+ "dev": true, -+ "engines": { -+ "node": ">=0.10.0" -+ } -+ }, -+ "node_modules/is-regex": { -+ "version": "1.1.4", -+ "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", -+ "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", -+ "dependencies": { -+ "call-bind": "^1.0.2", -+ "has-tostringtag": "^1.0.0" -+ }, -+ "engines": { -+ "node": ">= 0.4" -+ }, -+ "funding": { -+ "url": "https://github.com/sponsors/ljharb" -+ } -+ }, -+ "node_modules/is-set": { -+ "version": "2.0.2", -+ "resolved": "https://registry.npmjs.org/is-set/-/is-set-2.0.2.tgz", -+ "integrity": "sha512-+2cnTEZeY5z/iXGbLhPrOAaK/Mau5k5eXq9j14CpRTftq0pAJu2MwVRSZhyZWBzx3o6X795Lz6Bpb6R0GKf37g==", -+ "funding": { -+ "url": "https://github.com/sponsors/ljharb" -+ } -+ }, -+ "node_modules/is-shared-array-buffer": { -+ "version": "1.0.3", -+ "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.3.tgz", -+ "integrity": "sha512-nA2hv5XIhLR3uVzDDfCIknerhx8XUKnstuOERPNNIinXG7v9u+ohXF67vxm4TPTEPU6lm61ZkwP3c9PCB97rhg==", -+ "dependencies": { -+ "call-bind": "^1.0.7" -+ }, -+ "engines": { -+ "node": ">= 0.4" -+ }, -+ "funding": { -+ "url": "https://github.com/sponsors/ljharb" -+ } -+ }, -+ "node_modules/is-string": { -+ "version": "1.0.7", -+ "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", -+ "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", -+ "dependencies": { -+ "has-tostringtag": "^1.0.0" -+ }, -+ "engines": { -+ "node": ">= 0.4" -+ }, -+ "funding": { -+ "url": "https://github.com/sponsors/ljharb" -+ } -+ }, -+ "node_modules/is-symbol": { -+ "version": "1.0.4", -+ "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", -+ "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", -+ "dependencies": { -+ "has-symbols": "^1.0.2" -+ }, -+ "engines": { -+ "node": ">= 0.4" -+ }, -+ "funding": { -+ "url": "https://github.com/sponsors/ljharb" -+ } -+ }, -+ "node_modules/is-typed-array": { -+ "version": "1.1.13", -+ "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.13.tgz", -+ "integrity": "sha512-uZ25/bUAlUY5fR4OKT4rZQEBrzQWYV9ZJYGGsUmEJ6thodVJ1HX64ePQ6Z0qPWP+m+Uq6e9UugrE38jeYsDSMw==", -+ "dev": true, -+ "dependencies": { -+ "which-typed-array": "^1.1.14" -+ }, -+ "engines": { -+ "node": ">= 0.4" -+ }, -+ "funding": { -+ "url": "https://github.com/sponsors/ljharb" -+ } -+ }, -+ "node_modules/is-unicode-supported": { -+ "version": "1.3.0", -+ "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-1.3.0.tgz", -+ "integrity": "sha512-43r2mRvz+8JRIKnWJ+3j8JtjRKZ6GmjzfaE/qiBJnikNnYv/6bagRJ1kUhNk8R5EX/GkobD+r+sfxCPJsiKBLQ==", -+ "dev": true, -+ "engines": { -+ "node": ">=12" -+ }, -+ "funding": { -+ "url": "https://github.com/sponsors/sindresorhus" -+ } -+ }, -+ "node_modules/is-weakmap": { -+ "version": "2.0.1", -+ "resolved": "https://registry.npmjs.org/is-weakmap/-/is-weakmap-2.0.1.tgz", -+ "integrity": "sha512-NSBR4kH5oVj1Uwvv970ruUkCV7O1mzgVFO4/rev2cLRda9Tm9HrL70ZPut4rOHgY0FNrUu9BCbXA2sdQ+x0chA==", -+ "funding": { -+ "url": "https://github.com/sponsors/ljharb" -+ } -+ }, -+ "node_modules/is-weakref": { -+ "version": "1.0.2", -+ "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz", -+ "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==", -+ "dev": true, -+ "dependencies": { -+ "call-bind": "^1.0.2" -+ }, -+ "funding": { -+ "url": "https://github.com/sponsors/ljharb" -+ } -+ }, -+ "node_modules/is-weakset": { -+ "version": "2.0.2", -+ "resolved": "https://registry.npmjs.org/is-weakset/-/is-weakset-2.0.2.tgz", -+ "integrity": "sha512-t2yVvttHkQktwnNNmBQ98AhENLdPUTDTE21uPqAQ0ARwQfGeQKRVS0NNurH7bTf7RrvcVn1OOge45CnBeHCSmg==", -+ "dependencies": { -+ "call-bind": "^1.0.2", -+ "get-intrinsic": "^1.1.1" -+ }, -+ "funding": { -+ "url": "https://github.com/sponsors/ljharb" -+ } -+ }, -+ "node_modules/is-wsl": { -+ "version": "2.2.0", -+ "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", -+ "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", -+ "dev": true, -+ "dependencies": { -+ "is-docker": "^2.0.0" -+ }, -+ "engines": { -+ "node": ">=8" -+ } -+ }, -+ "node_modules/isarray": { -+ "version": "2.0.5", -+ "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", -+ "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==" -+ }, -+ "node_modules/isexe": { -+ "version": "2.0.0", -+ "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", -+ "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==" -+ }, -+ "node_modules/iterator.prototype": { -+ "version": "1.1.2", -+ "resolved": "https://registry.npmjs.org/iterator.prototype/-/iterator.prototype-1.1.2.tgz", -+ "integrity": "sha512-DR33HMMr8EzwuRL8Y9D3u2BMj8+RqSE850jfGu59kS7tbmPLzGkZmVSfyCFSDxuZiEY6Rzt3T2NA/qU+NwVj1w==", -+ "dev": true, -+ "dependencies": { -+ "define-properties": "^1.2.1", -+ "get-intrinsic": "^1.2.1", -+ "has-symbols": "^1.0.3", -+ "reflect.getprototypeof": "^1.0.4", -+ "set-function-name": "^2.0.1" -+ } -+ }, -+ "node_modules/jackspeak": { -+ "version": "4.0.1", -+ "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-4.0.1.tgz", -+ "integrity": "sha512-cub8rahkh0Q/bw1+GxP7aeSe29hHHn2V4m29nnDlvCdlgU+3UGxkZp7Z53jLUdpX3jdTO0nJZUDl3xvbWc2Xog==", -+ "dependencies": { -+ "@isaacs/cliui": "^8.0.2" -+ }, -+ "engines": { -+ "node": "20 || >=22" -+ }, -+ "funding": { -+ "url": "https://github.com/sponsors/isaacs" -+ }, -+ "optionalDependencies": { -+ "@pkgjs/parseargs": "^0.11.0" -+ } -+ }, -+ "node_modules/jed": { -+ "version": "1.1.1", -+ "resolved": "https://registry.npmjs.org/jed/-/jed-1.1.1.tgz", -+ "integrity": "sha512-z35ZSEcXHxLW4yumw0dF6L464NT36vmx3wxJw8MDpraBcWuNVgUPZgPJKcu1HekNgwlMFNqol7i/IpSbjhqwqA==", -+ "dev": true -+ }, -+ "node_modules/jest-worker": { -+ "version": "27.5.1", -+ "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz", -+ "integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==", -+ "dev": true, -+ "peer": true, -+ "dependencies": { -+ "@types/node": "*", -+ "merge-stream": "^2.0.0", -+ "supports-color": "^8.0.0" -+ }, -+ "engines": { -+ "node": ">= 10.13.0" -+ } -+ }, -+ "node_modules/jest-worker/node_modules/has-flag": { -+ "version": "4.0.0", -+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", -+ "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", -+ "dev": true, -+ "peer": true, -+ "engines": { -+ "node": ">=8" -+ } -+ }, -+ "node_modules/jest-worker/node_modules/supports-color": { -+ "version": "8.1.1", -+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", -+ "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", -+ "dev": true, -+ "peer": true, -+ "dependencies": { -+ "has-flag": "^4.0.0" -+ }, -+ "engines": { -+ "node": ">=10" -+ }, -+ "funding": { -+ "url": "https://github.com/chalk/supports-color?sponsor=1" -+ } -+ }, -+ "node_modules/js-tokens": { -+ "version": "4.0.0", -+ "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", -+ "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" -+ }, -+ "node_modules/js-yaml": { -+ "version": "4.1.0", -+ "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", -+ "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", -+ "dev": true, -+ "dependencies": { -+ "argparse": "^2.0.1" -+ }, -+ "bin": { -+ "js-yaml": "bin/js-yaml.js" -+ } -+ }, -+ "node_modules/jsesc": { -+ "version": "2.5.2", -+ "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", -+ "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", -+ "dev": true, -+ "peer": true, -+ "bin": { -+ "jsesc": "bin/jsesc" -+ }, -+ "engines": { -+ "node": ">=4" -+ } -+ }, -+ "node_modules/json-buffer": { -+ "version": "3.0.1", -+ "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", -+ "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", -+ "dev": true -+ }, -+ "node_modules/json-parse-even-better-errors": { -+ "version": "2.3.1", -+ "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", -+ "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", -+ "dev": true -+ }, -+ "node_modules/json-schema-traverse": { -+ "version": "0.4.1", -+ "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", -+ "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", -+ "dev": true -+ }, -+ "node_modules/json-stable-stringify-without-jsonify": { -+ "version": "1.0.1", -+ "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", -+ "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", -+ "dev": true -+ }, -+ "node_modules/json5": { -+ "version": "2.2.3", -+ "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", -+ "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", -+ "dev": true, -+ "peer": true, -+ "bin": { -+ "json5": "lib/cli.js" -+ }, -+ "engines": { -+ "node": ">=6" -+ } -+ }, -+ "node_modules/jsonfile": { -+ "version": "6.1.0", -+ "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", -+ "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", -+ "dev": true, -+ "dependencies": { -+ "universalify": "^2.0.0" -+ }, -+ "optionalDependencies": { -+ "graceful-fs": "^4.1.6" -+ } -+ }, -+ "node_modules/jsx-ast-utils": { -+ "version": "3.3.5", -+ "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.3.5.tgz", -+ "integrity": "sha512-ZZow9HBI5O6EPgSJLUb8n2NKgmVWTwCvHGwFuJlMjvLFqlGG6pjirPhtdsseaLZjSibD8eegzmYpUZwoIlj2cQ==", -+ "dev": true, -+ "dependencies": { -+ "array-includes": "^3.1.6", -+ "array.prototype.flat": "^1.3.1", -+ "object.assign": "^4.1.4", -+ "object.values": "^1.1.6" -+ }, -+ "engines": { -+ "node": ">=4.0" -+ } -+ }, -+ "node_modules/keyv": { -+ "version": "4.5.4", -+ "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", -+ "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", -+ "dev": true, -+ "dependencies": { -+ "json-buffer": "3.0.1" -+ } -+ }, -+ "node_modules/kind-of": { -+ "version": "6.0.3", -+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", -+ "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", -+ "dev": true, -+ "engines": { -+ "node": ">=0.10.0" -+ } -+ }, -+ "node_modules/klaw-sync": { -+ "version": "6.0.0", -+ "resolved": "https://registry.npmjs.org/klaw-sync/-/klaw-sync-6.0.0.tgz", -+ "integrity": "sha512-nIeuVSzdCCs6TDPTqI8w1Yre34sSq7AkZ4B3sfOBbI2CgVSB4Du4aLQijFU2+lhAFCwt9+42Hel6lQNIv6AntQ==", -+ "dev": true, -+ "dependencies": { -+ "graceful-fs": "^4.1.11" -+ } -+ }, -+ "node_modules/known-css-properties": { -+ "version": "0.34.0", -+ "resolved": "https://registry.npmjs.org/known-css-properties/-/known-css-properties-0.34.0.tgz", -+ "integrity": "sha512-tBECoUqNFbyAY4RrbqsBQqDFpGXAEbdD5QKr8kACx3+rnArmuuR22nKQWKazvp07N9yjTyDZaw/20UIH8tL9DQ==", -+ "dev": true -+ }, -+ "node_modules/levn": { -+ "version": "0.4.1", -+ "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", -+ "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", -+ "dev": true, -+ "dependencies": { -+ "prelude-ls": "^1.2.1", -+ "type-check": "~0.4.0" -+ }, -+ "engines": { -+ "node": ">= 0.8.0" -+ } -+ }, -+ "node_modules/lines-and-columns": { -+ "version": "1.2.4", -+ "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", -+ "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", -+ "dev": true -+ }, -+ "node_modules/loader-runner": { -+ "version": "4.3.0", -+ "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.3.0.tgz", -+ "integrity": "sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==", -+ "dev": true, -+ "peer": true, -+ "engines": { -+ "node": ">=6.11.5" -+ } -+ }, -+ "node_modules/locate-path": { -+ "version": "6.0.0", -+ "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", -+ "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", -+ "dev": true, -+ "dependencies": { -+ "p-locate": "^5.0.0" -+ }, -+ "engines": { -+ "node": ">=10" -+ }, -+ "funding": { -+ "url": "https://github.com/sponsors/sindresorhus" -+ } -+ }, -+ "node_modules/lodash.merge": { -+ "version": "4.6.2", -+ "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", -+ "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", -+ "dev": true -+ }, -+ "node_modules/lodash.truncate": { -+ "version": "4.4.2", -+ "resolved": "https://registry.npmjs.org/lodash.truncate/-/lodash.truncate-4.4.2.tgz", -+ "integrity": "sha512-jttmRe7bRse52OsWIMDLaXxWqRAmtIUccAQ3garviCqJjafXOfNMO0yMfNpdD6zbGaTU0P5Nz7e7gAT6cKmJRw==", -+ "dev": true -+ }, -+ "node_modules/log-symbols": { -+ "version": "6.0.0", -+ "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-6.0.0.tgz", -+ "integrity": "sha512-i24m8rpwhmPIS4zscNzK6MSEhk0DUWa/8iYQWxhffV8jkI4Phvs3F+quL5xvS0gdQR0FyTCMMH33Y78dDTzzIw==", -+ "dev": true, -+ "dependencies": { -+ "chalk": "^5.3.0", -+ "is-unicode-supported": "^1.3.0" -+ }, -+ "engines": { -+ "node": ">=18" -+ }, -+ "funding": { -+ "url": "https://github.com/sponsors/sindresorhus" -+ } -+ }, -+ "node_modules/log-symbols/node_modules/chalk": { -+ "version": "5.3.0", -+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.3.0.tgz", -+ "integrity": "sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==", -+ "dev": true, -+ "engines": { -+ "node": "^12.17.0 || ^14.13 || >=16.0.0" -+ }, -+ "funding": { -+ "url": "https://github.com/chalk/chalk?sponsor=1" -+ } -+ }, -+ "node_modules/loose-envify": { -+ "version": "1.4.0", -+ "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", -+ "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", -+ "dependencies": { -+ "js-tokens": "^3.0.0 || ^4.0.0" -+ }, -+ "bin": { -+ "loose-envify": "cli.js" -+ } -+ }, -+ "node_modules/lru-cache": { -+ "version": "5.1.1", -+ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", -+ "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", -+ "dev": true, -+ "peer": true, -+ "dependencies": { -+ "yallist": "^3.0.2" -+ } -+ }, -+ "node_modules/magic-string": { -+ "version": "0.25.9", -+ "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.9.tgz", -+ "integrity": "sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==", -+ "dev": true, -+ "dependencies": { -+ "sourcemap-codec": "^1.4.8" -+ } -+ }, -+ "node_modules/mathml-tag-names": { -+ "version": "2.1.3", -+ "resolved": "https://registry.npmjs.org/mathml-tag-names/-/mathml-tag-names-2.1.3.tgz", -+ "integrity": "sha512-APMBEanjybaPzUrfqU0IMU5I0AswKMH7k8OTLs0vvV4KZpExkTkY87nR/zpbuTPj+gARop7aGUbl11pnDfW6xg==", -+ "dev": true, -+ "funding": { -+ "type": "github", -+ "url": "https://github.com/sponsors/wooorm" -+ } -+ }, -+ "node_modules/mdn-data": { -+ "version": "2.0.30", -+ "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.30.tgz", -+ "integrity": "sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA==", -+ "dev": true -+ }, -+ "node_modules/meow": { -+ "version": "13.2.0", -+ "resolved": "https://registry.npmjs.org/meow/-/meow-13.2.0.tgz", -+ "integrity": "sha512-pxQJQzB6djGPXh08dacEloMFopsOqGVRKFPYvPOt9XDZ1HasbgDZA74CJGreSU4G3Ak7EFJGoiH2auq+yXISgA==", -+ "dev": true, -+ "engines": { -+ "node": ">=18" -+ }, -+ "funding": { -+ "url": "https://github.com/sponsors/sindresorhus" -+ } -+ }, -+ "node_modules/merge-stream": { -+ "version": "2.0.0", -+ "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", -+ "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", -+ "dev": true, -+ "peer": true -+ }, -+ "node_modules/merge2": { -+ "version": "1.4.1", -+ "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", -+ "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", -+ "dev": true, -+ "engines": { -+ "node": ">= 8" -+ } -+ }, -+ "node_modules/micromatch": { -+ "version": "4.0.7", -+ "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.7.tgz", -+ "integrity": "sha512-LPP/3KorzCwBxfeUuZmaR6bG2kdeHSbe0P2tY3FLRU4vYrjYz5hI4QZwV0njUx3jeuKe67YukQ1LSPZBKDqO/Q==", -+ "dev": true, -+ "dependencies": { -+ "braces": "^3.0.3", -+ "picomatch": "^2.3.1" -+ }, -+ "engines": { -+ "node": ">=8.6" -+ } -+ }, -+ "node_modules/mime-db": { -+ "version": "1.52.0", -+ "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", -+ "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", -+ "dev": true, -+ "peer": true, -+ "engines": { -+ "node": ">= 0.6" -+ } -+ }, -+ "node_modules/mime-types": { -+ "version": "2.1.35", -+ "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", -+ "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", -+ "dev": true, -+ "peer": true, -+ "dependencies": { -+ "mime-db": "1.52.0" -+ }, -+ "engines": { -+ "node": ">= 0.6" -+ } -+ }, -+ "node_modules/minimatch": { -+ "version": "9.0.5", -+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", -+ "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", -+ "dev": true, -+ "dependencies": { -+ "brace-expansion": "^2.0.1" -+ }, -+ "engines": { -+ "node": ">=16 || 14 >=14.17" -+ }, -+ "funding": { -+ "url": "https://github.com/sponsors/isaacs" -+ } -+ }, -+ "node_modules/minimist": { -+ "version": "1.2.8", -+ "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", -+ "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", -+ "dev": true, -+ "funding": { -+ "url": "https://github.com/sponsors/ljharb" -+ } -+ }, -+ "node_modules/minipass": { -+ "version": "7.1.2", -+ "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", -+ "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", -+ "engines": { -+ "node": ">=16 || 14 >=14.17" -+ } -+ }, -+ "node_modules/ms": { -+ "version": "2.1.2", -+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", -+ "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", -+ "dev": true -+ }, -+ "node_modules/nanoid": { -+ "version": "3.3.7", -+ "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz", -+ "integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==", -+ "dev": true, -+ "funding": [ -+ { -+ "type": "github", -+ "url": "https://github.com/sponsors/ai" -+ } -+ ], -+ "bin": { -+ "nanoid": "bin/nanoid.cjs" -+ }, -+ "engines": { -+ "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" -+ } -+ }, -+ "node_modules/natural-compare": { -+ "version": "1.4.0", -+ "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", -+ "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", -+ "dev": true -+ }, -+ "node_modules/neo-async": { -+ "version": "2.6.2", -+ "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", -+ "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", -+ "dev": true, -+ "peer": true -+ }, -+ "node_modules/node-releases": { -+ "version": "2.0.13", -+ "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.13.tgz", -+ "integrity": "sha512-uYr7J37ae/ORWdZeQ1xxMJe3NtdmqMC/JZK+geofDrkLUApKRHPd18/TxtBOJ4A0/+uUIliorNrfYV6s1b02eQ==", -+ "dev": true, -+ "peer": true -+ }, -+ "node_modules/node-watch": { -+ "version": "0.7.3", -+ "resolved": "https://registry.npmjs.org/node-watch/-/node-watch-0.7.3.tgz", -+ "integrity": "sha512-3l4E8uMPY1HdMMryPRUAl+oIHtXtyiTlIiESNSVSNxcPfzAFzeTbXFQkZfAwBbo0B1qMSG8nUABx+Gd+YrbKrQ==", -+ "dev": true, -+ "engines": { -+ "node": ">=6" -+ } -+ }, -+ "node_modules/normalize-path": { -+ "version": "3.0.0", -+ "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", -+ "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", -+ "dev": true, -+ "engines": { -+ "node": ">=0.10.0" -+ } -+ }, -+ "node_modules/object-assign": { -+ "version": "4.1.1", -+ "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", -+ "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", -+ "engines": { -+ "node": ">=0.10.0" -+ } -+ }, -+ "node_modules/object-inspect": { -+ "version": "1.13.2", -+ "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.2.tgz", -+ "integrity": "sha512-IRZSRuzJiynemAXPYtPe5BoI/RESNYR7TYm50MC5Mqbd3Jmw5y790sErYw3V6SryFJD64b74qQQs9wn5Bg/k3g==", -+ "engines": { -+ "node": ">= 0.4" -+ }, -+ "funding": { -+ "url": "https://github.com/sponsors/ljharb" -+ } -+ }, -+ "node_modules/object-is": { -+ "version": "1.1.5", -+ "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.1.5.tgz", -+ "integrity": "sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw==", -+ "peer": true, -+ "dependencies": { -+ "call-bind": "^1.0.2", -+ "define-properties": "^1.1.3" -+ }, -+ "engines": { -+ "node": ">= 0.4" -+ }, -+ "funding": { -+ "url": "https://github.com/sponsors/ljharb" -+ } -+ }, -+ "node_modules/object-keys": { -+ "version": "1.1.1", -+ "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", -+ "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", -+ "engines": { -+ "node": ">= 0.4" -+ } -+ }, -+ "node_modules/object.assign": { -+ "version": "4.1.5", -+ "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.5.tgz", -+ "integrity": "sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==", -+ "dependencies": { -+ "call-bind": "^1.0.5", -+ "define-properties": "^1.2.1", -+ "has-symbols": "^1.0.3", -+ "object-keys": "^1.1.1" -+ }, -+ "engines": { -+ "node": ">= 0.4" -+ }, -+ "funding": { -+ "url": "https://github.com/sponsors/ljharb" -+ } -+ }, -+ "node_modules/object.entries": { -+ "version": "1.1.8", -+ "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.8.tgz", -+ "integrity": "sha512-cmopxi8VwRIAw/fkijJohSfpef5PdN0pMQJN6VC/ZKvn0LIknWD8KtgY6KlQdEc4tIjcQ3HxSMmnvtzIscdaYQ==", -+ "dev": true, -+ "dependencies": { -+ "call-bind": "^1.0.7", -+ "define-properties": "^1.2.1", -+ "es-object-atoms": "^1.0.0" -+ }, -+ "engines": { -+ "node": ">= 0.4" -+ } -+ }, -+ "node_modules/object.fromentries": { -+ "version": "2.0.8", -+ "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.8.tgz", -+ "integrity": "sha512-k6E21FzySsSK5a21KRADBd/NGneRegFO5pLHfdQLpRDETUNJueLXs3WCzyQ3tFRDYgbq3KHGXfTbi2bs8WQ6rQ==", -+ "dev": true, -+ "dependencies": { -+ "call-bind": "^1.0.7", -+ "define-properties": "^1.2.1", -+ "es-abstract": "^1.23.2", -+ "es-object-atoms": "^1.0.0" -+ }, -+ "engines": { -+ "node": ">= 0.4" -+ }, -+ "funding": { -+ "url": "https://github.com/sponsors/ljharb" -+ } -+ }, -+ "node_modules/object.groupby": { -+ "version": "1.0.3", -+ "resolved": "https://registry.npmjs.org/object.groupby/-/object.groupby-1.0.3.tgz", -+ "integrity": "sha512-+Lhy3TQTuzXI5hevh8sBGqbmurHbbIjAi0Z4S63nthVLmLxfbj4T54a4CfZrXIrt9iP4mVAPYMo/v99taj3wjQ==", -+ "dev": true, -+ "dependencies": { -+ "call-bind": "^1.0.7", -+ "define-properties": "^1.2.1", -+ "es-abstract": "^1.23.2" -+ }, -+ "engines": { -+ "node": ">= 0.4" -+ } -+ }, -+ "node_modules/object.values": { -+ "version": "1.2.0", -+ "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.2.0.tgz", -+ "integrity": "sha512-yBYjY9QX2hnRmZHAjG/f13MzmBzxzYgQhFrke06TTyKY5zSTEqkOeukBzIdVA3j3ulu8Qa3MbVFShV7T2RmGtQ==", -+ "dev": true, -+ "dependencies": { -+ "call-bind": "^1.0.7", -+ "define-properties": "^1.2.1", -+ "es-object-atoms": "^1.0.0" -+ }, -+ "engines": { -+ "node": ">= 0.4" -+ }, -+ "funding": { -+ "url": "https://github.com/sponsors/ljharb" -+ } -+ }, -+ "node_modules/once": { -+ "version": "1.4.0", -+ "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", -+ "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", -+ "dev": true, -+ "dependencies": { -+ "wrappy": "1" -+ } -+ }, -+ "node_modules/open": { -+ "version": "7.4.2", -+ "resolved": "https://registry.npmjs.org/open/-/open-7.4.2.tgz", -+ "integrity": "sha512-MVHddDVweXZF3awtlAS+6pgKLlm/JgxZ90+/NBurBoQctVOOB/zDdVjcyPzQ+0laDGbsWgrRkflI65sQeOgT9Q==", -+ "dev": true, -+ "dependencies": { -+ "is-docker": "^2.0.0", -+ "is-wsl": "^2.1.1" -+ }, -+ "engines": { -+ "node": ">=8" -+ }, -+ "funding": { -+ "url": "https://github.com/sponsors/sindresorhus" -+ } -+ }, -+ "node_modules/optionator": { -+ "version": "0.9.4", -+ "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.4.tgz", -+ "integrity": "sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==", -+ "dev": true, -+ "dependencies": { -+ "deep-is": "^0.1.3", -+ "fast-levenshtein": "^2.0.6", -+ "levn": "^0.4.1", -+ "prelude-ls": "^1.2.1", -+ "type-check": "^0.4.0", -+ "word-wrap": "^1.2.5" -+ }, -+ "engines": { -+ "node": ">= 0.8.0" -+ } -+ }, -+ "node_modules/os-tmpdir": { -+ "version": "1.0.2", -+ "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", -+ "integrity": "sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==", -+ "dev": true, -+ "engines": { -+ "node": ">=0.10.0" -+ } -+ }, -+ "node_modules/p-limit": { -+ "version": "3.1.0", -+ "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", -+ "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", -+ "dev": true, -+ "dependencies": { -+ "yocto-queue": "^0.1.0" -+ }, -+ "engines": { -+ "node": ">=10" -+ }, -+ "funding": { -+ "url": "https://github.com/sponsors/sindresorhus" -+ } -+ }, -+ "node_modules/p-locate": { -+ "version": "5.0.0", -+ "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", -+ "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", -+ "dev": true, -+ "dependencies": { -+ "p-limit": "^3.0.2" -+ }, -+ "engines": { -+ "node": ">=10" -+ }, -+ "funding": { -+ "url": "https://github.com/sponsors/sindresorhus" -+ } -+ }, -+ "node_modules/package-json-from-dist": { -+ "version": "1.0.0", -+ "resolved": "https://registry.npmjs.org/package-json-from-dist/-/package-json-from-dist-1.0.0.tgz", -+ "integrity": "sha512-dATvCeZN/8wQsGywez1mzHtTlP22H8OEfPrVMLNr4/eGa+ijtLn/6M5f0dY8UKNrC2O9UCU6SSoG3qRKnt7STw==" -+ }, -+ "node_modules/parent-module": { -+ "version": "1.0.1", -+ "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", -+ "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", -+ "dev": true, -+ "dependencies": { -+ "callsites": "^3.0.0" -+ }, -+ "engines": { -+ "node": ">=6" -+ } -+ }, -+ "node_modules/parse-json": { -+ "version": "5.2.0", -+ "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", -+ "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", -+ "dev": true, -+ "dependencies": { -+ "@babel/code-frame": "^7.0.0", -+ "error-ex": "^1.3.1", -+ "json-parse-even-better-errors": "^2.3.0", -+ "lines-and-columns": "^1.1.6" -+ }, -+ "engines": { -+ "node": ">=8" -+ }, -+ "funding": { -+ "url": "https://github.com/sponsors/sindresorhus" -+ } -+ }, -+ "node_modules/patch-package": { -+ "version": "7.0.2", -+ "resolved": "https://registry.npmjs.org/patch-package/-/patch-package-7.0.2.tgz", -+ "integrity": "sha512-PMYfL8LXxGIRmxXLqlEaBxzKPu7/SdP13ld6GSfAUJUZRmBDPp8chZs0dpzaAFn9TSPnFiMwkC6PJt6pBiAl8Q==", -+ "dev": true, -+ "dependencies": { -+ "@yarnpkg/lockfile": "^1.1.0", -+ "chalk": "^4.1.2", -+ "ci-info": "^3.7.0", -+ "cross-spawn": "^7.0.3", -+ "find-yarn-workspace-root": "^2.0.0", -+ "fs-extra": "^9.0.0", -+ "klaw-sync": "^6.0.0", -+ "minimist": "^1.2.6", -+ "open": "^7.4.2", -+ "rimraf": "^2.6.3", -+ "semver": "^7.5.3", -+ "slash": "^2.0.0", -+ "tmp": "^0.0.33", -+ "yaml": "^2.2.2" -+ }, -+ "bin": { -+ "patch-package": "index.js" -+ }, -+ "engines": { -+ "node": ">=14", -+ "npm": ">5" -+ } -+ }, -+ "node_modules/patch-package/node_modules/ansi-styles": { -+ "version": "4.3.0", -+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", -+ "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", -+ "dev": true, -+ "dependencies": { -+ "color-convert": "^2.0.1" -+ }, -+ "engines": { -+ "node": ">=8" -+ }, -+ "funding": { -+ "url": "https://github.com/chalk/ansi-styles?sponsor=1" -+ } -+ }, -+ "node_modules/patch-package/node_modules/chalk": { -+ "version": "4.1.2", -+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", -+ "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", -+ "dev": true, -+ "dependencies": { -+ "ansi-styles": "^4.1.0", -+ "supports-color": "^7.1.0" -+ }, -+ "engines": { -+ "node": ">=10" -+ }, -+ "funding": { -+ "url": "https://github.com/chalk/chalk?sponsor=1" -+ } -+ }, -+ "node_modules/patch-package/node_modules/color-convert": { -+ "version": "2.0.1", -+ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", -+ "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", -+ "dev": true, -+ "dependencies": { -+ "color-name": "~1.1.4" -+ }, -+ "engines": { -+ "node": ">=7.0.0" -+ } -+ }, -+ "node_modules/patch-package/node_modules/color-name": { -+ "version": "1.1.4", -+ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", -+ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", -+ "dev": true -+ }, -+ "node_modules/patch-package/node_modules/fs-extra": { -+ "version": "9.1.0", -+ "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", -+ "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", -+ "dev": true, -+ "dependencies": { -+ "at-least-node": "^1.0.0", -+ "graceful-fs": "^4.2.0", -+ "jsonfile": "^6.0.1", -+ "universalify": "^2.0.0" -+ }, -+ "engines": { -+ "node": ">=10" -+ } -+ }, -+ "node_modules/patch-package/node_modules/has-flag": { -+ "version": "4.0.0", -+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", -+ "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", -+ "dev": true, -+ "engines": { -+ "node": ">=8" -+ } -+ }, -+ "node_modules/patch-package/node_modules/lru-cache": { -+ "version": "6.0.0", -+ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", -+ "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", -+ "dev": true, -+ "dependencies": { -+ "yallist": "^4.0.0" -+ }, -+ "engines": { -+ "node": ">=10" -+ } -+ }, -+ "node_modules/patch-package/node_modules/semver": { -+ "version": "7.5.4", -+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", -+ "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", -+ "dev": true, -+ "dependencies": { -+ "lru-cache": "^6.0.0" -+ }, -+ "bin": { -+ "semver": "bin/semver.js" -+ }, -+ "engines": { -+ "node": ">=10" -+ } -+ }, -+ "node_modules/patch-package/node_modules/slash": { -+ "version": "2.0.0", -+ "resolved": "https://registry.npmjs.org/slash/-/slash-2.0.0.tgz", -+ "integrity": "sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A==", -+ "dev": true, -+ "engines": { -+ "node": ">=6" -+ } -+ }, -+ "node_modules/patch-package/node_modules/supports-color": { -+ "version": "7.2.0", -+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", -+ "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", -+ "dev": true, -+ "dependencies": { -+ "has-flag": "^4.0.0" -+ }, -+ "engines": { -+ "node": ">=8" -+ } -+ }, -+ "node_modules/patch-package/node_modules/yallist": { -+ "version": "4.0.0", -+ "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", -+ "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", -+ "dev": true -+ }, -+ "node_modules/path-exists": { -+ "version": "4.0.0", -+ "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", -+ "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", -+ "dev": true, -+ "engines": { -+ "node": ">=8" -+ } -+ }, -+ "node_modules/path-is-absolute": { -+ "version": "1.0.1", -+ "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", -+ "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", -+ "dev": true, -+ "engines": { -+ "node": ">=0.10.0" -+ } -+ }, -+ "node_modules/path-key": { -+ "version": "3.1.1", -+ "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", -+ "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", -+ "engines": { -+ "node": ">=8" -+ } -+ }, -+ "node_modules/path-parse": { -+ "version": "1.0.7", -+ "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", -+ "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", -+ "dev": true -+ }, -+ "node_modules/path-scurry": { -+ "version": "2.0.0", -+ "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-2.0.0.tgz", -+ "integrity": "sha512-ypGJsmGtdXUOeM5u93TyeIEfEhM6s+ljAhrk5vAvSx8uyY/02OvrZnA0YNGUrPXfpJMgI1ODd3nwz8Npx4O4cg==", -+ "dependencies": { -+ "lru-cache": "^11.0.0", -+ "minipass": "^7.1.2" -+ }, -+ "engines": { -+ "node": "20 || >=22" -+ }, -+ "funding": { -+ "url": "https://github.com/sponsors/isaacs" -+ } -+ }, -+ "node_modules/path-scurry/node_modules/lru-cache": { -+ "version": "11.0.0", -+ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.0.0.tgz", -+ "integrity": "sha512-Qv32eSV1RSCfhY3fpPE2GNZ8jgM9X7rdAfemLWqTUxwiyIC4jJ6Sy0fZ8H+oLWevO6i4/bizg7c8d8i6bxrzbA==", -+ "engines": { -+ "node": "20 || >=22" -+ } -+ }, -+ "node_modules/path-type": { -+ "version": "4.0.0", -+ "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", -+ "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", -+ "dev": true, -+ "engines": { -+ "node": ">=8" -+ } -+ }, -+ "node_modules/picocolors": { -+ "version": "1.0.1", -+ "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.1.tgz", -+ "integrity": "sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew==", -+ "dev": true -+ }, -+ "node_modules/picomatch": { -+ "version": "2.3.1", -+ "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", -+ "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", -+ "dev": true, -+ "engines": { -+ "node": ">=8.6" -+ }, -+ "funding": { -+ "url": "https://github.com/sponsors/jonschlinkert" -+ } -+ }, -+ "node_modules/plur": { -+ "version": "5.1.0", -+ "resolved": "https://registry.npmjs.org/plur/-/plur-5.1.0.tgz", -+ "integrity": "sha512-VP/72JeXqak2KiOzjgKtQen5y3IZHn+9GOuLDafPv0eXa47xq0At93XahYBs26MsifCQ4enGKwbjBTKgb9QJXg==", -+ "dev": true, -+ "dependencies": { -+ "irregular-plurals": "^3.3.0" -+ }, -+ "engines": { -+ "node": "^12.20.0 || ^14.13.1 || >=16.0.0" -+ }, -+ "funding": { -+ "url": "https://github.com/sponsors/sindresorhus" -+ } -+ }, -+ "node_modules/possible-typed-array-names": { -+ "version": "1.0.0", -+ "resolved": "https://registry.npmjs.org/possible-typed-array-names/-/possible-typed-array-names-1.0.0.tgz", -+ "integrity": "sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q==", -+ "engines": { -+ "node": ">= 0.4" -+ } -+ }, -+ "node_modules/postcss": { -+ "version": "8.4.39", -+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.39.tgz", -+ "integrity": "sha512-0vzE+lAiG7hZl1/9I8yzKLx3aR9Xbof3fBHKunvMfOCYAtMhrsnccJY2iTURb9EZd5+pLuiNV9/c/GZJOHsgIw==", -+ "dev": true, -+ "funding": [ -+ { -+ "type": "opencollective", -+ "url": "https://opencollective.com/postcss/" -+ }, -+ { -+ "type": "tidelift", -+ "url": "https://tidelift.com/funding/github/npm/postcss" -+ }, -+ { -+ "type": "github", -+ "url": "https://github.com/sponsors/ai" -+ } -+ ], -+ "dependencies": { -+ "nanoid": "^3.3.7", -+ "picocolors": "^1.0.1", -+ "source-map-js": "^1.2.0" -+ }, -+ "engines": { -+ "node": "^10 || ^12 || >=14" -+ } -+ }, -+ "node_modules/postcss-media-query-parser": { -+ "version": "0.2.3", -+ "resolved": "https://registry.npmjs.org/postcss-media-query-parser/-/postcss-media-query-parser-0.2.3.tgz", -+ "integrity": "sha512-3sOlxmbKcSHMjlUXQZKQ06jOswE7oVkXPxmZdoB1r5l0q6gTFTQSHxNxOrCccElbW7dxNytifNEo8qidX2Vsig==", -+ "dev": true -+ }, -+ "node_modules/postcss-resolve-nested-selector": { -+ "version": "0.1.1", -+ "resolved": "https://registry.npmjs.org/postcss-resolve-nested-selector/-/postcss-resolve-nested-selector-0.1.1.tgz", -+ "integrity": "sha512-HvExULSwLqHLgUy1rl3ANIqCsvMS0WHss2UOsXhXnQaZ9VCc2oBvIpXrl00IUFT5ZDITME0o6oiXeiHr2SAIfw==", -+ "dev": true -+ }, -+ "node_modules/postcss-safe-parser": { -+ "version": "7.0.0", -+ "resolved": "https://registry.npmjs.org/postcss-safe-parser/-/postcss-safe-parser-7.0.0.tgz", -+ "integrity": "sha512-ovehqRNVCpuFzbXoTb4qLtyzK3xn3t/CUBxOs8LsnQjQrShaB4lKiHoVqY8ANaC0hBMHq5QVWk77rwGklFUDrg==", -+ "dev": true, -+ "funding": [ -+ { -+ "type": "opencollective", -+ "url": "https://opencollective.com/postcss/" -+ }, -+ { -+ "type": "tidelift", -+ "url": "https://tidelift.com/funding/github/npm/postcss-safe-parser" -+ }, -+ { -+ "type": "github", -+ "url": "https://github.com/sponsors/ai" -+ } -+ ], -+ "engines": { -+ "node": ">=18.0" -+ }, -+ "peerDependencies": { -+ "postcss": "^8.4.31" -+ } -+ }, -+ "node_modules/postcss-scss": { -+ "version": "4.0.9", -+ "resolved": "https://registry.npmjs.org/postcss-scss/-/postcss-scss-4.0.9.tgz", -+ "integrity": "sha512-AjKOeiwAitL/MXxQW2DliT28EKukvvbEWx3LBmJIRN8KfBGZbRTxNYW0kSqi1COiTZ57nZ9NW06S6ux//N1c9A==", -+ "dev": true, -+ "funding": [ -+ { -+ "type": "opencollective", -+ "url": "https://opencollective.com/postcss/" -+ }, -+ { -+ "type": "tidelift", -+ "url": "https://tidelift.com/funding/github/npm/postcss-scss" -+ }, -+ { -+ "type": "github", -+ "url": "https://github.com/sponsors/ai" -+ } -+ ], -+ "engines": { -+ "node": ">=12.0" -+ }, -+ "peerDependencies": { -+ "postcss": "^8.4.29" -+ } -+ }, -+ "node_modules/postcss-selector-parser": { -+ "version": "6.1.1", -+ "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.1.1.tgz", -+ "integrity": "sha512-b4dlw/9V8A71rLIDsSwVmak9z2DuBUB7CA1/wSdelNEzqsjoSPeADTWNO09lpH49Diy3/JIZ2bSPB1dI3LJCHg==", -+ "dev": true, -+ "dependencies": { -+ "cssesc": "^3.0.0", -+ "util-deprecate": "^1.0.2" -+ }, -+ "engines": { -+ "node": ">=4" -+ } -+ }, -+ "node_modules/postcss-value-parser": { -+ "version": "4.2.0", -+ "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", -+ "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==", -+ "dev": true -+ }, -+ "node_modules/prelude-ls": { -+ "version": "1.2.1", -+ "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", -+ "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", -+ "dev": true, -+ "engines": { -+ "node": ">= 0.8.0" -+ } -+ }, -+ "node_modules/process": { -+ "version": "0.11.10", -+ "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", -+ "integrity": "sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==", -+ "dev": true, -+ "engines": { -+ "node": ">= 0.6.0" -+ } -+ }, -+ "node_modules/prop-types": { -+ "version": "15.8.1", -+ "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz", -+ "integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==", -+ "dependencies": { -+ "loose-envify": "^1.4.0", -+ "object-assign": "^4.1.1", -+ "react-is": "^16.13.1" -+ } -+ }, -+ "node_modules/punycode": { -+ "version": "2.3.0", -+ "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.0.tgz", -+ "integrity": "sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==", -+ "dev": true, -+ "engines": { -+ "node": ">=6" -+ } -+ }, -+ "node_modules/queue-microtask": { -+ "version": "1.2.3", -+ "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", -+ "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", -+ "dev": true, -+ "funding": [ -+ { -+ "type": "github", -+ "url": "https://github.com/sponsors/feross" -+ }, -+ { -+ "type": "patreon", -+ "url": "https://www.patreon.com/feross" -+ }, -+ { -+ "type": "consulting", -+ "url": "https://feross.org/support" -+ } -+ ] -+ }, -+ "node_modules/qunit": { -+ "version": "2.21.1", -+ "resolved": "https://registry.npmjs.org/qunit/-/qunit-2.21.1.tgz", -+ "integrity": "sha512-SMA8IBZamI9MyVB4dShGpn6+X6plO8mIyfZTQ815XBvv/nVMeUj+yxsw8SgZVnrMlrAvTziJkmjOhaDwkNMHWQ==", -+ "dev": true, -+ "dependencies": { -+ "commander": "7.2.0", -+ "node-watch": "0.7.3", -+ "tiny-glob": "0.2.9" -+ }, -+ "bin": { -+ "qunit": "bin/qunit.js" -+ }, -+ "engines": { -+ "node": ">=10" -+ } -+ }, -+ "node_modules/qunit/node_modules/commander": { -+ "version": "7.2.0", -+ "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", -+ "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", -+ "dev": true, -+ "engines": { -+ "node": ">= 10" -+ } -+ }, -+ "node_modules/randombytes": { -+ "version": "2.1.0", -+ "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", -+ "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", -+ "dev": true, -+ "peer": true, -+ "dependencies": { -+ "safe-buffer": "^5.1.0" -+ } -+ }, -+ "node_modules/react": { -+ "version": "18.3.1", -+ "resolved": "https://registry.npmjs.org/react/-/react-18.3.1.tgz", -+ "integrity": "sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==", -+ "dependencies": { -+ "loose-envify": "^1.1.0" -+ }, -+ "engines": { -+ "node": ">=0.10.0" -+ } -+ }, -+ "node_modules/react-dom": { -+ "version": "18.3.1", -+ "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.3.1.tgz", -+ "integrity": "sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==", -+ "dependencies": { -+ "loose-envify": "^1.1.0", -+ "scheduler": "^0.23.2" -+ }, -+ "peerDependencies": { -+ "react": "^18.3.1" -+ } -+ }, -+ "node_modules/react-dropzone": { -+ "version": "14.2.3", -+ "resolved": "https://registry.npmjs.org/react-dropzone/-/react-dropzone-14.2.3.tgz", -+ "integrity": "sha512-O3om8I+PkFKbxCukfIR3QAGftYXDZfOE2N1mr/7qebQJHs7U+/RSL/9xomJNpRg9kM5h9soQSdf0Gc7OHF5Fug==", -+ "dependencies": { -+ "attr-accept": "^2.2.2", -+ "file-selector": "^0.6.0", -+ "prop-types": "^15.8.1" -+ }, -+ "engines": { -+ "node": ">= 10.13" -+ }, -+ "peerDependencies": { -+ "react": ">= 16.8 || 18.0.0" -+ } -+ }, -+ "node_modules/react-is": { -+ "version": "16.13.1", -+ "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", -+ "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==" -+ }, -+ "node_modules/react-xml-parser": { -+ "version": "1.1.8", -+ "resolved": "https://registry.npmjs.org/react-xml-parser/-/react-xml-parser-1.1.8.tgz", -+ "integrity": "sha512-yX9k9LNCRzzNnFWoyo9cWEjtor6n6VD0Uh7z1ww5rIP6h5vdhJKEmowsm9RumEJMRdr7akcT4mMBScpsz573qQ==" -+ }, -+ "node_modules/readable-stream": { -+ "version": "4.5.2", -+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-4.5.2.tgz", -+ "integrity": "sha512-yjavECdqeZ3GLXNgRXgeQEdz9fvDDkNKyHnbHRFtOr7/LcfgBcmct7t/ET+HaCTqfh06OzoAxrkN/IfjJBVe+g==", -+ "dev": true, -+ "dependencies": { -+ "abort-controller": "^3.0.0", -+ "buffer": "^6.0.3", -+ "events": "^3.3.0", -+ "process": "^0.11.10", -+ "string_decoder": "^1.3.0" -+ }, -+ "engines": { -+ "node": "^12.22.0 || ^14.17.0 || >=16.0.0" -+ } -+ }, -+ "node_modules/readdirp": { -+ "version": "3.6.0", -+ "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", -+ "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", -+ "dev": true, -+ "dependencies": { -+ "picomatch": "^2.2.1" -+ }, -+ "engines": { -+ "node": ">=8.10.0" -+ } -+ }, -+ "node_modules/reflect.getprototypeof": { -+ "version": "1.0.6", -+ "resolved": "https://registry.npmjs.org/reflect.getprototypeof/-/reflect.getprototypeof-1.0.6.tgz", -+ "integrity": "sha512-fmfw4XgoDke3kdI6h4xcUz1dG8uaiv5q9gcEwLS4Pnth2kxT+GZ7YehS1JTMGBQmtV7Y4GFGbs2re2NqhdozUg==", -+ "dev": true, -+ "dependencies": { -+ "call-bind": "^1.0.7", -+ "define-properties": "^1.2.1", -+ "es-abstract": "^1.23.1", -+ "es-errors": "^1.3.0", -+ "get-intrinsic": "^1.2.4", -+ "globalthis": "^1.0.3", -+ "which-builtin-type": "^1.1.3" -+ }, -+ "engines": { -+ "node": ">= 0.4" -+ }, -+ "funding": { -+ "url": "https://github.com/sponsors/ljharb" -+ } -+ }, -+ "node_modules/regenerator-runtime": { -+ "version": "0.13.11", -+ "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz", -+ "integrity": "sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==", -+ "peer": true -+ }, -+ "node_modules/regexp.prototype.flags": { -+ "version": "1.5.2", -+ "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.2.tgz", -+ "integrity": "sha512-NcDiDkTLuPR+++OCKB0nWafEmhg/Da8aUPLPMQbK+bxKKCm1/S5he+AqYa4PlMCVBalb4/yxIRub6qkEx5yJbw==", -+ "dependencies": { -+ "call-bind": "^1.0.6", -+ "define-properties": "^1.2.1", -+ "es-errors": "^1.3.0", -+ "set-function-name": "^2.0.1" -+ }, -+ "engines": { -+ "node": ">= 0.4" -+ }, -+ "funding": { -+ "url": "https://github.com/sponsors/ljharb" -+ } -+ }, -+ "node_modules/regexpp": { -+ "version": "3.2.0", -+ "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz", -+ "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==", -+ "dev": true, -+ "engines": { -+ "node": ">=8" -+ }, -+ "funding": { -+ "url": "https://github.com/sponsors/mysticatea" -+ } -+ }, -+ "node_modules/require-from-string": { -+ "version": "2.0.2", -+ "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", -+ "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", -+ "dev": true, -+ "engines": { -+ "node": ">=0.10.0" -+ } -+ }, -+ "node_modules/resolve": { -+ "version": "1.22.8", -+ "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", -+ "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", -+ "dev": true, -+ "dependencies": { -+ "is-core-module": "^2.13.0", -+ "path-parse": "^1.0.7", -+ "supports-preserve-symlinks-flag": "^1.0.0" -+ }, -+ "bin": { -+ "resolve": "bin/resolve" -+ }, -+ "funding": { -+ "url": "https://github.com/sponsors/ljharb" -+ } -+ }, -+ "node_modules/resolve-from": { -+ "version": "4.0.0", -+ "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", -+ "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", -+ "dev": true, -+ "engines": { -+ "node": ">=4" -+ } -+ }, -+ "node_modules/resolve-pkg-maps": { -+ "version": "1.0.0", -+ "resolved": "https://registry.npmjs.org/resolve-pkg-maps/-/resolve-pkg-maps-1.0.0.tgz", -+ "integrity": "sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==", -+ "dev": true, -+ "peer": true, -+ "funding": { -+ "url": "https://github.com/privatenumber/resolve-pkg-maps?sponsor=1" -+ } -+ }, -+ "node_modules/reusify": { -+ "version": "1.0.4", -+ "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", -+ "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", -+ "dev": true, -+ "engines": { -+ "iojs": ">=1.0.0", -+ "node": ">=0.10.0" -+ } -+ }, -+ "node_modules/rimraf": { -+ "version": "2.7.1", -+ "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", -+ "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", -+ "dev": true, -+ "dependencies": { -+ "glob": "^7.1.3" -+ }, -+ "bin": { -+ "rimraf": "bin.js" -+ } -+ }, -+ "node_modules/rimraf/node_modules/brace-expansion": { -+ "version": "1.1.11", -+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", -+ "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", -+ "dev": true, -+ "dependencies": { -+ "balanced-match": "^1.0.0", -+ "concat-map": "0.0.1" -+ } -+ }, -+ "node_modules/rimraf/node_modules/glob": { -+ "version": "7.2.3", -+ "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", -+ "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", -+ "dev": true, -+ "dependencies": { -+ "fs.realpath": "^1.0.0", -+ "inflight": "^1.0.4", -+ "inherits": "2", -+ "minimatch": "^3.1.1", -+ "once": "^1.3.0", -+ "path-is-absolute": "^1.0.0" -+ }, -+ "engines": { -+ "node": "*" -+ }, -+ "funding": { -+ "url": "https://github.com/sponsors/isaacs" -+ } -+ }, -+ "node_modules/rimraf/node_modules/minimatch": { -+ "version": "3.1.2", -+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", -+ "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", -+ "dev": true, -+ "dependencies": { -+ "brace-expansion": "^1.1.7" -+ }, -+ "engines": { -+ "node": "*" -+ } -+ }, -+ "node_modules/run-parallel": { -+ "version": "1.2.0", -+ "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", -+ "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", -+ "dev": true, -+ "funding": [ -+ { -+ "type": "github", -+ "url": "https://github.com/sponsors/feross" -+ }, -+ { -+ "type": "patreon", -+ "url": "https://www.patreon.com/feross" -+ }, -+ { -+ "type": "consulting", -+ "url": "https://feross.org/support" -+ } -+ ], -+ "dependencies": { -+ "queue-microtask": "^1.2.2" -+ } -+ }, -+ "node_modules/rxjs": { -+ "version": "7.8.1", -+ "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.1.tgz", -+ "integrity": "sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==", -+ "dev": true, -+ "peer": true, -+ "dependencies": { -+ "tslib": "^2.1.0" -+ } -+ }, -+ "node_modules/safe-array-concat": { -+ "version": "1.1.2", -+ "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.1.2.tgz", -+ "integrity": "sha512-vj6RsCsWBCf19jIeHEfkRMw8DPiBb+DMXklQ/1SGDHOMlHdPUkZXFQ2YdplS23zESTijAcurb1aSgJA3AgMu1Q==", -+ "dev": true, -+ "dependencies": { -+ "call-bind": "^1.0.7", -+ "get-intrinsic": "^1.2.4", -+ "has-symbols": "^1.0.3", -+ "isarray": "^2.0.5" -+ }, -+ "engines": { -+ "node": ">=0.4" -+ }, -+ "funding": { -+ "url": "https://github.com/sponsors/ljharb" -+ } -+ }, -+ "node_modules/safe-buffer": { -+ "version": "5.2.1", -+ "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", -+ "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", -+ "dev": true, -+ "funding": [ -+ { -+ "type": "github", -+ "url": "https://github.com/sponsors/feross" -+ }, -+ { -+ "type": "patreon", -+ "url": "https://www.patreon.com/feross" -+ }, -+ { -+ "type": "consulting", -+ "url": "https://feross.org/support" -+ } -+ ] -+ }, -+ "node_modules/safe-identifier": { -+ "version": "0.4.2", -+ "resolved": "https://registry.npmjs.org/safe-identifier/-/safe-identifier-0.4.2.tgz", -+ "integrity": "sha512-6pNbSMW6OhAi9j+N8V+U715yBQsaWJ7eyEUaOrawX+isg5ZxhUlV1NipNtgaKHmFGiABwt+ZF04Ii+3Xjkg+8w==", -+ "dev": true -+ }, -+ "node_modules/safe-regex-test": { -+ "version": "1.0.3", -+ "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.3.tgz", -+ "integrity": "sha512-CdASjNJPvRa7roO6Ra/gLYBTzYzzPyyBXxIMdGW3USQLyjWEls2RgW5UBTXaQVp+OrpeCK3bLem8smtmheoRuw==", -+ "dev": true, -+ "dependencies": { -+ "call-bind": "^1.0.6", -+ "es-errors": "^1.3.0", -+ "is-regex": "^1.1.4" -+ }, -+ "engines": { -+ "node": ">= 0.4" -+ }, -+ "funding": { -+ "url": "https://github.com/sponsors/ljharb" -+ } -+ }, -+ "node_modules/safer-buffer": { -+ "version": "2.1.2", -+ "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", -+ "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", -+ "dev": true -+ }, -+ "node_modules/sass": { -+ "version": "1.77.8", -+ "resolved": "https://registry.npmjs.org/sass/-/sass-1.77.8.tgz", -+ "integrity": "sha512-4UHg6prsrycW20fqLGPShtEvo/WyHRVRHwOP4DzkUrObWoWI05QBSfzU71TVB7PFaL104TwNaHpjlWXAZbQiNQ==", -+ "dev": true, -+ "dependencies": { -+ "chokidar": ">=3.0.0 <4.0.0", -+ "immutable": "^4.0.0", -+ "source-map-js": ">=0.6.2 <2.0.0" -+ }, -+ "bin": { -+ "sass": "sass.js" -+ }, -+ "engines": { -+ "node": ">=14.0.0" -+ } -+ }, -+ "node_modules/sass-embedded": { -+ "version": "1.77.8", -+ "resolved": "https://registry.npmjs.org/sass-embedded/-/sass-embedded-1.77.8.tgz", -+ "integrity": "sha512-WGXA6jcaoBo5Uhw0HX/s6z/sl3zyYQ7ZOnLOJzqwpctFcFmU4L07zn51e2VSkXXFpQZFAdMZNqOGz/7h/fvcRA==", -+ "dev": true, -+ "peer": true, -+ "dependencies": { -+ "@bufbuild/protobuf": "^1.0.0", -+ "buffer-builder": "^0.2.0", -+ "immutable": "^4.0.0", -+ "rxjs": "^7.4.0", -+ "supports-color": "^8.1.1", -+ "varint": "^6.0.0" -+ }, -+ "engines": { -+ "node": ">=16.0.0" -+ }, -+ "optionalDependencies": { -+ "sass-embedded-android-arm": "1.77.8", -+ "sass-embedded-android-arm64": "1.77.8", -+ "sass-embedded-android-ia32": "1.77.8", -+ "sass-embedded-android-x64": "1.77.8", -+ "sass-embedded-darwin-arm64": "1.77.8", -+ "sass-embedded-darwin-x64": "1.77.8", -+ "sass-embedded-linux-arm": "1.77.8", -+ "sass-embedded-linux-arm64": "1.77.8", -+ "sass-embedded-linux-ia32": "1.77.8", -+ "sass-embedded-linux-musl-arm": "1.77.8", -+ "sass-embedded-linux-musl-arm64": "1.77.8", -+ "sass-embedded-linux-musl-ia32": "1.77.8", -+ "sass-embedded-linux-musl-x64": "1.77.8", -+ "sass-embedded-linux-x64": "1.77.8", -+ "sass-embedded-win32-arm64": "1.77.8", -+ "sass-embedded-win32-ia32": "1.77.8", -+ "sass-embedded-win32-x64": "1.77.8" -+ } -+ }, -+ "node_modules/sass-embedded-linux-musl-x64": { -+ "version": "1.77.8", -+ "resolved": "https://registry.npmjs.org/sass-embedded-linux-musl-x64/-/sass-embedded-linux-musl-x64-1.77.8.tgz", -+ "integrity": "sha512-2NtRpMXHeFo9kaYxuZ+Ewwo39CE7BTS2JDfXkTjZTZqd8H+8KC53eBh516YQnn2oiqxSiKxm7a6pxbxGZGwXOQ==", -+ "cpu": [ -+ "x64" -+ ], -+ "dev": true, -+ "optional": true, -+ "os": [ -+ "linux" -+ ], -+ "peer": true, -+ "engines": { -+ "node": ">=14.0.0" -+ } -+ }, -+ "node_modules/sass-embedded-linux-x64": { -+ "version": "1.77.8", -+ "resolved": "https://registry.npmjs.org/sass-embedded-linux-x64/-/sass-embedded-linux-x64-1.77.8.tgz", -+ "integrity": "sha512-ND5qZLWUCpOn7LJfOf0gLSZUWhNIysY+7NZK1Ctq+pM6tpJky3JM5I1jSMplNxv5H3o8p80n0gSm+fcjsEFfjQ==", -+ "cpu": [ -+ "x64" -+ ], -+ "dev": true, -+ "optional": true, -+ "os": [ -+ "linux" -+ ], -+ "peer": true, - "bin": { -- "patch-package": "index.js" -+ "sass": "dart-sass/sass" - }, - "engines": { -- "node": ">=14", -- "npm": ">5" -+ "node": ">=14.0.0" - } - }, -- "node_modules/patch-package/node_modules/ansi-styles": { -- "version": "4.3.0", -- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", -- "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", -+ "node_modules/sass-embedded/node_modules/has-flag": { -+ "version": "4.0.0", -+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", -+ "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, -- "dependencies": { -- "color-convert": "^2.0.1" -- }, -+ "peer": true, - "engines": { - "node": ">=8" -- }, -- "funding": { -- "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, -- "node_modules/patch-package/node_modules/chalk": { -- "version": "4.1.2", -- "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", -- "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", -+ "node_modules/sass-embedded/node_modules/supports-color": { -+ "version": "8.1.1", -+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", -+ "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", - "dev": true, -+ "peer": true, - "dependencies": { -- "ansi-styles": "^4.1.0", -- "supports-color": "^7.1.0" -+ "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { -- "url": "https://github.com/chalk/chalk?sponsor=1" -+ "url": "https://github.com/chalk/supports-color?sponsor=1" - } - }, -- "node_modules/patch-package/node_modules/color-convert": { -- "version": "2.0.1", -- "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", -- "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", -- "dev": true, -+ "node_modules/scheduler": { -+ "version": "0.23.2", -+ "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.2.tgz", -+ "integrity": "sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==", - "dependencies": { -- "color-name": "~1.1.4" -- }, -- "engines": { -- "node": ">=7.0.0" -+ "loose-envify": "^1.1.0" - } - }, -- "node_modules/patch-package/node_modules/color-name": { -- "version": "1.1.4", -- "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", -- "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", -- "dev": true -- }, -- "node_modules/patch-package/node_modules/fs-extra": { -- "version": "9.1.0", -- "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", -- "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", -+ "node_modules/schema-utils": { -+ "version": "3.3.0", -+ "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz", -+ "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==", - "dev": true, -+ "peer": true, - "dependencies": { -- "at-least-node": "^1.0.0", -- "graceful-fs": "^4.2.0", -- "jsonfile": "^6.0.1", -- "universalify": "^2.0.0" -+ "@types/json-schema": "^7.0.8", -+ "ajv": "^6.12.5", -+ "ajv-keywords": "^3.5.2" - }, - "engines": { -- "node": ">=10" -+ "node": ">= 10.13.0" -+ }, -+ "funding": { -+ "type": "opencollective", -+ "url": "https://opencollective.com/webpack" - } - }, -- "node_modules/patch-package/node_modules/has-flag": { -- "version": "4.0.0", -- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", -- "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", -+ "node_modules/semver": { -+ "version": "6.3.1", -+ "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", -+ "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "dev": true, -- "engines": { -- "node": ">=8" -+ "bin": { -+ "semver": "bin/semver.js" - } - }, -- "node_modules/patch-package/node_modules/lru-cache": { -- "version": "6.0.0", -- "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", -- "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", -+ "node_modules/serialize-javascript": { -+ "version": "6.0.1", -+ "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.1.tgz", -+ "integrity": "sha512-owoXEFjWRllis8/M1Q+Cw5k8ZH40e3zhp/ovX+Xr/vi1qj6QesbyXXViFbpNvWvPNAD62SutwEXavefrLJWj7w==", - "dev": true, -+ "peer": true, - "dependencies": { -- "yallist": "^4.0.0" -- }, -- "engines": { -- "node": ">=10" -+ "randombytes": "^2.1.0" - } - }, -- "node_modules/patch-package/node_modules/semver": { -- "version": "7.5.4", -- "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", -- "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", -- "dev": true, -+ "node_modules/set-function-length": { -+ "version": "1.2.2", -+ "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz", -+ "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==", - "dependencies": { -- "lru-cache": "^6.0.0" -- }, -- "bin": { -- "semver": "bin/semver.js" -+ "define-data-property": "^1.1.4", -+ "es-errors": "^1.3.0", -+ "function-bind": "^1.1.2", -+ "get-intrinsic": "^1.2.4", -+ "gopd": "^1.0.1", -+ "has-property-descriptors": "^1.0.2" - }, - "engines": { -- "node": ">=10" -+ "node": ">= 0.4" - } - }, -- "node_modules/patch-package/node_modules/slash": { -- "version": "2.0.0", -- "resolved": "https://registry.npmjs.org/slash/-/slash-2.0.0.tgz", -- "integrity": "sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A==", -- "dev": true, -+ "node_modules/set-function-name": { -+ "version": "2.0.2", -+ "resolved": "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.2.tgz", -+ "integrity": "sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==", -+ "dependencies": { -+ "define-data-property": "^1.1.4", -+ "es-errors": "^1.3.0", -+ "functions-have-names": "^1.2.3", -+ "has-property-descriptors": "^1.0.2" -+ }, - "engines": { -- "node": ">=6" -+ "node": ">= 0.4" - } - }, -- "node_modules/patch-package/node_modules/supports-color": { -- "version": "7.2.0", -- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", -- "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", -- "dev": true, -+ "node_modules/shebang-command": { -+ "version": "2.0.0", -+ "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", -+ "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", - "dependencies": { -- "has-flag": "^4.0.0" -+ "shebang-regex": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, -- "node_modules/patch-package/node_modules/yallist": { -- "version": "4.0.0", -- "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", -- "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", -- "dev": true -- }, -- "node_modules/path-is-absolute": { -- "version": "1.0.1", -- "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", -- "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", -- "dev": true, -- "engines": { -- "node": ">=0.10.0" -- } -- }, -- "node_modules/path-key": { -- "version": "3.1.1", -- "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", -- "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", -+ "node_modules/shebang-regex": { -+ "version": "3.0.0", -+ "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", -+ "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", - "engines": { - "node": ">=8" - } - }, -- "node_modules/path-parse": { -- "version": "1.0.7", -- "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", -- "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", -- "dev": true -- }, -- "node_modules/path-scurry": { -- "version": "1.10.1", -- "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.10.1.tgz", -- "integrity": "sha512-MkhCqzzBEpPvxxQ71Md0b1Kk51W01lrYvlMzSUaIzNsODdd7mqhiimSZlr+VegAz5Z6Vzt9Xg2ttE//XBhH3EQ==", -+ "node_modules/side-channel": { -+ "version": "1.0.6", -+ "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.6.tgz", -+ "integrity": "sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==", - "dependencies": { -- "lru-cache": "^9.1.1 || ^10.0.0", -- "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" -+ "call-bind": "^1.0.7", -+ "es-errors": "^1.3.0", -+ "get-intrinsic": "^1.2.4", -+ "object-inspect": "^1.13.1" - }, - "engines": { -- "node": ">=16 || 14 >=14.17" -+ "node": ">= 0.4" - }, - "funding": { -- "url": "https://github.com/sponsors/isaacs" -+ "url": "https://github.com/sponsors/ljharb" - } - }, -- "node_modules/path-scurry/node_modules/lru-cache": { -- "version": "10.0.0", -- "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.0.0.tgz", -- "integrity": "sha512-svTf/fzsKHffP42sujkO/Rjs37BCIsQVRCeNYIm9WN8rgT7ffoUnRtZCqU+6BqcSBdv8gwJeTz8knJpgACeQMw==", -+ "node_modules/signal-exit": { -+ "version": "4.0.2", -+ "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.0.2.tgz", -+ "integrity": "sha512-MY2/qGx4enyjprQnFaZsHib3Yadh3IXyV2C321GY0pjGfVBu4un0uDJkwgdxqO+Rdx8JMT8IfJIRwbYVz3Ob3Q==", - "engines": { -- "node": "14 || >=16.14" -+ "node": ">=14" -+ }, -+ "funding": { -+ "url": "https://github.com/sponsors/isaacs" - } - }, -- "node_modules/path-type": { -- "version": "4.0.0", -- "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", -- "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", -+ "node_modules/sizzle": { -+ "version": "2.3.10", -+ "resolved": "https://registry.npmjs.org/sizzle/-/sizzle-2.3.10.tgz", -+ "integrity": "sha512-kPGev+SiByuzi/YPDTqCwdKLWCaN9+14ve86yH0gP6Efue04xjLYWJrcLC6y1buFyIVXkwHNXPsOTEd1MYVPbQ==", -+ "dev": true -+ }, -+ "node_modules/slash": { -+ "version": "3.0.0", -+ "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", -+ "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", - "dev": true, - "engines": { - "node": ">=8" - } - }, -- "node_modules/picocolors": { -- "version": "1.0.0", -- "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", -- "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", -- "dev": true, -- "peer": true -- }, -- "node_modules/picomatch": { -- "version": "2.3.1", -- "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", -- "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", -+ "node_modules/slice-ansi": { -+ "version": "4.0.0", -+ "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz", -+ "integrity": "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==", - "dev": true, -+ "dependencies": { -+ "ansi-styles": "^4.0.0", -+ "astral-regex": "^2.0.0", -+ "is-fullwidth-code-point": "^3.0.0" -+ }, - "engines": { -- "node": ">=8.6" -+ "node": ">=10" - }, - "funding": { -- "url": "https://github.com/sponsors/jonschlinkert" -+ "url": "https://github.com/chalk/slice-ansi?sponsor=1" - } - }, -- "node_modules/process": { -- "version": "0.11.10", -- "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", -- "integrity": "sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==", -+ "node_modules/slice-ansi/node_modules/ansi-styles": { -+ "version": "4.3.0", -+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", -+ "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, -- "engines": { -- "node": ">= 0.6.0" -- } -- }, -- "node_modules/prop-types": { -- "version": "15.8.1", -- "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz", -- "integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==", - "dependencies": { -- "loose-envify": "^1.4.0", -- "object-assign": "^4.1.1", -- "react-is": "^16.13.1" -- } -- }, -- "node_modules/punycode": { -- "version": "2.3.0", -- "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.0.tgz", -- "integrity": "sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==", -- "dev": true, -- "peer": true, -- "engines": { -- "node": ">=6" -- } -- }, -- "node_modules/queue-microtask": { -- "version": "1.2.3", -- "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", -- "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", -- "dev": true, -- "funding": [ -- { -- "type": "github", -- "url": "https://github.com/sponsors/feross" -- }, -- { -- "type": "patreon", -- "url": "https://www.patreon.com/feross" -- }, -- { -- "type": "consulting", -- "url": "https://feross.org/support" -- } -- ] -+ "color-convert": "^2.0.1" -+ }, -+ "engines": { -+ "node": ">=8" -+ }, -+ "funding": { -+ "url": "https://github.com/chalk/ansi-styles?sponsor=1" -+ } - }, -- "node_modules/qunit": { -- "version": "2.19.4", -- "resolved": "https://registry.npmjs.org/qunit/-/qunit-2.19.4.tgz", -- "integrity": "sha512-aqUzzUeCqlleWYKlpgfdHHw9C6KxkB9H3wNfiBg5yHqQMzy0xw/pbCRHYFkjl8MsP/t8qkTQE+JTYL71azgiew==", -+ "node_modules/slice-ansi/node_modules/color-convert": { -+ "version": "2.0.1", -+ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", -+ "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { -- "commander": "7.2.0", -- "node-watch": "0.7.3", -- "tiny-glob": "0.2.9" -- }, -- "bin": { -- "qunit": "bin/qunit.js" -+ "color-name": "~1.1.4" - }, - "engines": { -- "node": ">=10" -+ "node": ">=7.0.0" - } - }, -- "node_modules/qunit/node_modules/commander": { -- "version": "7.2.0", -- "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", -- "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", -+ "node_modules/slice-ansi/node_modules/color-name": { -+ "version": "1.1.4", -+ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", -+ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", -+ "dev": true -+ }, -+ "node_modules/source-map": { -+ "version": "0.6.1", -+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", -+ "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true, -+ "peer": true, - "engines": { -- "node": ">= 10" -+ "node": ">=0.10.0" - } - }, -- "node_modules/randombytes": { -- "version": "2.1.0", -- "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", -- "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", -+ "node_modules/source-map-js": { -+ "version": "1.2.0", -+ "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.0.tgz", -+ "integrity": "sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==", -+ "dev": true, -+ "engines": { -+ "node": ">=0.10.0" -+ } -+ }, -+ "node_modules/source-map-support": { -+ "version": "0.5.21", -+ "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", -+ "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", - "dev": true, - "peer": true, - "dependencies": { -- "safe-buffer": "^5.1.0" -+ "buffer-from": "^1.0.0", -+ "source-map": "^0.6.0" - } - }, -- "node_modules/react": { -- "version": "18.2.0", -- "resolved": "https://registry.npmjs.org/react/-/react-18.2.0.tgz", -- "integrity": "sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ==", -+ "node_modules/sourcemap-codec": { -+ "version": "1.4.8", -+ "resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz", -+ "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==", -+ "deprecated": "Please use @jridgewell/sourcemap-codec instead", -+ "dev": true -+ }, -+ "node_modules/stop-iteration-iterator": { -+ "version": "1.0.0", -+ "resolved": "https://registry.npmjs.org/stop-iteration-iterator/-/stop-iteration-iterator-1.0.0.tgz", -+ "integrity": "sha512-iCGQj+0l0HOdZ2AEeBADlsRC+vsnDsZsbdSiH1yNSjcfKM7fdpCMfqAL/dwF5BLiw/XhRft/Wax6zQbhq2BcjQ==", -+ "peer": true, - "dependencies": { -- "loose-envify": "^1.1.0" -+ "internal-slot": "^1.0.4" - }, - "engines": { -- "node": ">=0.10.0" -+ "node": ">= 0.4" - } - }, -- "node_modules/react-dom": { -- "version": "18.2.0", -- "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.2.0.tgz", -- "integrity": "sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g==", -+ "node_modules/string_decoder": { -+ "version": "1.3.0", -+ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", -+ "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", -+ "dev": true, - "dependencies": { -- "loose-envify": "^1.1.0", -- "scheduler": "^0.23.0" -- }, -- "peerDependencies": { -- "react": "^18.2.0" -+ "safe-buffer": "~5.2.0" - } - }, -- "node_modules/react-dropzone": { -- "version": "14.2.3", -- "resolved": "https://registry.npmjs.org/react-dropzone/-/react-dropzone-14.2.3.tgz", -- "integrity": "sha512-O3om8I+PkFKbxCukfIR3QAGftYXDZfOE2N1mr/7qebQJHs7U+/RSL/9xomJNpRg9kM5h9soQSdf0Gc7OHF5Fug==", -+ "node_modules/string-width": { -+ "version": "5.1.2", -+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", -+ "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", - "dependencies": { -- "attr-accept": "^2.2.2", -- "file-selector": "^0.6.0", -- "prop-types": "^15.8.1" -+ "eastasianwidth": "^0.2.0", -+ "emoji-regex": "^9.2.2", -+ "strip-ansi": "^7.0.1" - }, - "engines": { -- "node": ">= 10.13" -+ "node": ">=12" - }, -- "peerDependencies": { -- "react": ">= 16.8 || 18.0.0" -+ "funding": { -+ "url": "https://github.com/sponsors/sindresorhus" - } - }, -- "node_modules/react-is": { -- "version": "16.13.1", -- "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", -- "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==" -- }, -- "node_modules/react-xml-parser": { -- "version": "1.1.8", -- "resolved": "https://registry.npmjs.org/react-xml-parser/-/react-xml-parser-1.1.8.tgz", -- "integrity": "sha512-yX9k9LNCRzzNnFWoyo9cWEjtor6n6VD0Uh7z1ww5rIP6h5vdhJKEmowsm9RumEJMRdr7akcT4mMBScpsz573qQ==" -- }, -- "node_modules/readable-stream": { -- "version": "4.5.2", -- "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-4.5.2.tgz", -- "integrity": "sha512-yjavECdqeZ3GLXNgRXgeQEdz9fvDDkNKyHnbHRFtOr7/LcfgBcmct7t/ET+HaCTqfh06OzoAxrkN/IfjJBVe+g==", -- "dev": true, -+ "node_modules/string-width-cjs": { -+ "name": "string-width", -+ "version": "4.2.3", -+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", -+ "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dependencies": { -- "abort-controller": "^3.0.0", -- "buffer": "^6.0.3", -- "events": "^3.3.0", -- "process": "^0.11.10", -- "string_decoder": "^1.3.0" -+ "emoji-regex": "^8.0.0", -+ "is-fullwidth-code-point": "^3.0.0", -+ "strip-ansi": "^6.0.1" - }, - "engines": { -- "node": "^12.22.0 || ^14.17.0 || >=16.0.0" -+ "node": ">=8" - } - }, -- "node_modules/readdirp": { -- "version": "3.6.0", -- "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", -- "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", -- "dev": true, -+ "node_modules/string-width-cjs/node_modules/ansi-regex": { -+ "version": "5.0.1", -+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", -+ "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", -+ "engines": { -+ "node": ">=8" -+ } -+ }, -+ "node_modules/string-width-cjs/node_modules/emoji-regex": { -+ "version": "8.0.0", -+ "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", -+ "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" -+ }, -+ "node_modules/string-width-cjs/node_modules/strip-ansi": { -+ "version": "6.0.1", -+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", -+ "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dependencies": { -- "picomatch": "^2.2.1" -+ "ansi-regex": "^5.0.1" - }, - "engines": { -- "node": ">=8.10.0" -+ "node": ">=8" - } - }, -- "node_modules/regenerator-runtime": { -- "version": "0.13.11", -- "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz", -- "integrity": "sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==", -- "peer": true -- }, -- "node_modules/regexp.prototype.flags": { -- "version": "1.5.0", -- "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.0.tgz", -- "integrity": "sha512-0SutC3pNudRKgquxGoRGIz946MZVHqbNfPjBdxeOhBrdgDKlRoXmYLQN9xRbrR09ZXWeGAdPuif7egofn6v5LA==", -- "peer": true, -+ "node_modules/string.prototype.matchall": { -+ "version": "4.0.11", -+ "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.11.tgz", -+ "integrity": "sha512-NUdh0aDavY2og7IbBPenWqR9exH+E26Sv8e0/eTe1tltDGZL+GtBkDAnnyBtmekfK6/Dq3MkcGtzXFEd1LQrtg==", -+ "dev": true, - "dependencies": { -- "call-bind": "^1.0.2", -- "define-properties": "^1.2.0", -- "functions-have-names": "^1.2.3" -+ "call-bind": "^1.0.7", -+ "define-properties": "^1.2.1", -+ "es-abstract": "^1.23.2", -+ "es-errors": "^1.3.0", -+ "es-object-atoms": "^1.0.0", -+ "get-intrinsic": "^1.2.4", -+ "gopd": "^1.0.1", -+ "has-symbols": "^1.0.3", -+ "internal-slot": "^1.0.7", -+ "regexp.prototype.flags": "^1.5.2", -+ "set-function-name": "^2.0.2", -+ "side-channel": "^1.0.6" - }, - "engines": { - "node": ">= 0.4" -@@ -3963,384 +6909,421 @@ - "url": "https://github.com/sponsors/ljharb" - } - }, -- "node_modules/resolve": { -- "version": "1.22.2", -- "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.2.tgz", -- "integrity": "sha512-Sb+mjNHOULsBv818T40qSPeRiuWLyaGMa5ewydRLFimneixmVy2zdivRl+AF6jaYPC8ERxGDmFSiqui6SfPd+g==", -+ "node_modules/string.prototype.repeat": { -+ "version": "1.0.0", -+ "resolved": "https://registry.npmjs.org/string.prototype.repeat/-/string.prototype.repeat-1.0.0.tgz", -+ "integrity": "sha512-0u/TldDbKD8bFCQ/4f5+mNRrXwZ8hg2w7ZR8wa16e8z9XpePWl3eGEcUD0OXpEH/VJH/2G3gjUtR3ZOiBe2S/w==", - "dev": true, - "dependencies": { -- "is-core-module": "^2.11.0", -- "path-parse": "^1.0.7", -- "supports-preserve-symlinks-flag": "^1.0.0" -- }, -- "bin": { -- "resolve": "bin/resolve" -- }, -- "funding": { -- "url": "https://github.com/sponsors/ljharb" -+ "define-properties": "^1.1.3", -+ "es-abstract": "^1.17.5" - } - }, -- "node_modules/reusify": { -- "version": "1.0.4", -- "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", -- "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", -+ "node_modules/string.prototype.trim": { -+ "version": "1.2.9", -+ "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.9.tgz", -+ "integrity": "sha512-klHuCNxiMZ8MlsOihJhJEBJAiMVqU3Z2nEXWfWnIqjN0gEFS9J9+IxKozWWtQGcgoa1WUZzLjKPTr4ZHNFTFxw==", - "dev": true, -+ "dependencies": { -+ "call-bind": "^1.0.7", -+ "define-properties": "^1.2.1", -+ "es-abstract": "^1.23.0", -+ "es-object-atoms": "^1.0.0" -+ }, - "engines": { -- "iojs": ">=1.0.0", -- "node": ">=0.10.0" -+ "node": ">= 0.4" -+ }, -+ "funding": { -+ "url": "https://github.com/sponsors/ljharb" - } - }, -- "node_modules/rimraf": { -- "version": "2.7.1", -- "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", -- "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", -+ "node_modules/string.prototype.trimend": { -+ "version": "1.0.8", -+ "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.8.tgz", -+ "integrity": "sha512-p73uL5VCHCO2BZZ6krwwQE3kCzM7NKmis8S//xEC6fQonchbum4eP6kR4DLEjQFO3Wnj3Fuo8NM0kOSjVdHjZQ==", - "dev": true, - "dependencies": { -- "glob": "^7.1.3" -+ "call-bind": "^1.0.7", -+ "define-properties": "^1.2.1", -+ "es-object-atoms": "^1.0.0" - }, -- "bin": { -- "rimraf": "bin.js" -+ "funding": { -+ "url": "https://github.com/sponsors/ljharb" - } - }, -- "node_modules/rimraf/node_modules/brace-expansion": { -- "version": "1.1.11", -- "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", -- "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", -+ "node_modules/string.prototype.trimstart": { -+ "version": "1.0.8", -+ "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.8.tgz", -+ "integrity": "sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==", - "dev": true, - "dependencies": { -- "balanced-match": "^1.0.0", -- "concat-map": "0.0.1" -+ "call-bind": "^1.0.7", -+ "define-properties": "^1.2.1", -+ "es-object-atoms": "^1.0.0" -+ }, -+ "engines": { -+ "node": ">= 0.4" -+ }, -+ "funding": { -+ "url": "https://github.com/sponsors/ljharb" - } - }, -- "node_modules/rimraf/node_modules/glob": { -- "version": "7.2.3", -- "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", -- "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", -- "dev": true, -+ "node_modules/strip-ansi": { -+ "version": "7.1.0", -+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", -+ "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", - "dependencies": { -- "fs.realpath": "^1.0.0", -- "inflight": "^1.0.4", -- "inherits": "2", -- "minimatch": "^3.1.1", -- "once": "^1.3.0", -- "path-is-absolute": "^1.0.0" -+ "ansi-regex": "^6.0.1" - }, - "engines": { -- "node": "*" -+ "node": ">=12" - }, - "funding": { -- "url": "https://github.com/sponsors/isaacs" -+ "url": "https://github.com/chalk/strip-ansi?sponsor=1" - } - }, -- "node_modules/rimraf/node_modules/minimatch": { -- "version": "3.1.2", -- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", -- "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", -+ "node_modules/strip-ansi-cjs": { -+ "name": "strip-ansi", -+ "version": "6.0.1", -+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", -+ "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", -+ "dependencies": { -+ "ansi-regex": "^5.0.1" -+ }, -+ "engines": { -+ "node": ">=8" -+ } -+ }, -+ "node_modules/strip-ansi-cjs/node_modules/ansi-regex": { -+ "version": "5.0.1", -+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", -+ "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", -+ "engines": { -+ "node": ">=8" -+ } -+ }, -+ "node_modules/strip-bom": { -+ "version": "3.0.0", -+ "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", -+ "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", - "dev": true, -- "dependencies": { -- "brace-expansion": "^1.1.7" -- }, - "engines": { -- "node": "*" -+ "node": ">=4" - } - }, -- "node_modules/rome": { -- "version": "12.1.3", -- "resolved": "https://registry.npmjs.org/rome/-/rome-12.1.3.tgz", -- "integrity": "sha512-e+ff72hxDpe/t5/Us7YRBVw3PBET7SeczTQNn6tvrWdrCaAw3qOukQQ+tDCkyFtS4yGsnhjrJbm43ctNbz27Yg==", -+ "node_modules/strip-json-comments": { -+ "version": "3.1.1", -+ "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", -+ "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", - "dev": true, -- "hasInstallScript": true, -- "bin": { -- "rome": "bin/rome" -- }, - "engines": { -- "node": ">=14.*" -+ "node": ">=8" - }, -- "optionalDependencies": { -- "@rometools/cli-darwin-arm64": "12.1.3", -- "@rometools/cli-darwin-x64": "12.1.3", -- "@rometools/cli-linux-arm64": "12.1.3", -- "@rometools/cli-linux-x64": "12.1.3", -- "@rometools/cli-win32-arm64": "12.1.3", -- "@rometools/cli-win32-x64": "12.1.3" -+ "funding": { -+ "url": "https://github.com/sponsors/sindresorhus" - } - }, -- "node_modules/run-parallel": { -- "version": "1.2.0", -- "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", -- "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", -+ "node_modules/stylelint": { -+ "version": "16.7.0", -+ "resolved": "https://registry.npmjs.org/stylelint/-/stylelint-16.7.0.tgz", -+ "integrity": "sha512-Q1ATiXlz+wYr37a7TGsfvqYn2nSR3T/isw3IWlZQzFzCNoACHuGBb6xBplZXz56/uDRJHIygxjh7jbV/8isewA==", - "dev": true, - "funding": [ - { -- "type": "github", -- "url": "https://github.com/sponsors/feross" -- }, -- { -- "type": "patreon", -- "url": "https://www.patreon.com/feross" -+ "type": "opencollective", -+ "url": "https://opencollective.com/stylelint" - }, - { -- "type": "consulting", -- "url": "https://feross.org/support" -+ "type": "github", -+ "url": "https://github.com/sponsors/stylelint" - } - ], - "dependencies": { -- "queue-microtask": "^1.2.2" -+ "@csstools/css-parser-algorithms": "^2.7.1", -+ "@csstools/css-tokenizer": "^2.4.1", -+ "@csstools/media-query-list-parser": "^2.1.13", -+ "@csstools/selector-specificity": "^3.1.1", -+ "@dual-bundle/import-meta-resolve": "^4.1.0", -+ "balanced-match": "^2.0.0", -+ "colord": "^2.9.3", -+ "cosmiconfig": "^9.0.0", -+ "css-functions-list": "^3.2.2", -+ "css-tree": "^2.3.1", -+ "debug": "^4.3.5", -+ "fast-glob": "^3.3.2", -+ "fastest-levenshtein": "^1.0.16", -+ "file-entry-cache": "^9.0.0", -+ "global-modules": "^2.0.0", -+ "globby": "^11.1.0", -+ "globjoin": "^0.1.4", -+ "html-tags": "^3.3.1", -+ "ignore": "^5.3.1", -+ "imurmurhash": "^0.1.4", -+ "is-plain-object": "^5.0.0", -+ "known-css-properties": "^0.34.0", -+ "mathml-tag-names": "^2.1.3", -+ "meow": "^13.2.0", -+ "micromatch": "^4.0.7", -+ "normalize-path": "^3.0.0", -+ "picocolors": "^1.0.1", -+ "postcss": "^8.4.39", -+ "postcss-resolve-nested-selector": "^0.1.1", -+ "postcss-safe-parser": "^7.0.0", -+ "postcss-selector-parser": "^6.1.0", -+ "postcss-value-parser": "^4.2.0", -+ "resolve-from": "^5.0.0", -+ "string-width": "^4.2.3", -+ "strip-ansi": "^7.1.0", -+ "supports-hyperlinks": "^3.0.0", -+ "svg-tags": "^1.0.0", -+ "table": "^6.8.2", -+ "write-file-atomic": "^5.0.1" -+ }, -+ "bin": { -+ "stylelint": "bin/stylelint.mjs" -+ }, -+ "engines": { -+ "node": ">=18.12.0" - } - }, -- "node_modules/safe-buffer": { -- "version": "5.2.1", -- "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", -- "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", -+ "node_modules/stylelint-config-recommended": { -+ "version": "14.0.1", -+ "resolved": "https://registry.npmjs.org/stylelint-config-recommended/-/stylelint-config-recommended-14.0.1.tgz", -+ "integrity": "sha512-bLvc1WOz/14aPImu/cufKAZYfXs/A/owZfSMZ4N+16WGXLoX5lOir53M6odBxvhgmgdxCVnNySJmZKx73T93cg==", - "dev": true, - "funding": [ - { -- "type": "github", -- "url": "https://github.com/sponsors/feross" -- }, -- { -- "type": "patreon", -- "url": "https://www.patreon.com/feross" -+ "type": "opencollective", -+ "url": "https://opencollective.com/stylelint" - }, - { -- "type": "consulting", -- "url": "https://feross.org/support" -+ "type": "github", -+ "url": "https://github.com/sponsors/stylelint" - } -- ] -- }, -- "node_modules/safer-buffer": { -- "version": "2.1.2", -- "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", -- "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", -- "dev": true -+ ], -+ "engines": { -+ "node": ">=18.12.0" -+ }, -+ "peerDependencies": { -+ "stylelint": "^16.1.0" -+ } - }, -- "node_modules/sass": { -- "version": "1.64.1", -- "resolved": "https://registry.npmjs.org/sass/-/sass-1.64.1.tgz", -- "integrity": "sha512-16rRACSOFEE8VN7SCgBu1MpYCyN7urj9At898tyzdXFhC+a+yOX5dXwAR7L8/IdPJ1NB8OYoXmD55DM30B2kEQ==", -+ "node_modules/stylelint-config-recommended-scss": { -+ "version": "14.0.0", -+ "resolved": "https://registry.npmjs.org/stylelint-config-recommended-scss/-/stylelint-config-recommended-scss-14.0.0.tgz", -+ "integrity": "sha512-HDvpoOAQ1RpF+sPbDOT2Q2/YrBDEJDnUymmVmZ7mMCeNiFSdhRdyGEimBkz06wsN+HaFwUh249gDR+I9JR7Onw==", - "dev": true, - "dependencies": { -- "chokidar": ">=3.0.0 <4.0.0", -- "immutable": "^4.0.0", -- "source-map-js": ">=0.6.2 <2.0.0" -- }, -- "bin": { -- "sass": "sass.js" -+ "postcss-scss": "^4.0.9", -+ "stylelint-config-recommended": "^14.0.0", -+ "stylelint-scss": "^6.0.0" - }, - "engines": { -- "node": ">=14.0.0" -- } -- }, -- "node_modules/scheduler": { -- "version": "0.23.0", -- "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.0.tgz", -- "integrity": "sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw==", -- "dependencies": { -- "loose-envify": "^1.1.0" -+ "node": ">=18.12.0" -+ }, -+ "peerDependencies": { -+ "postcss": "^8.3.3", -+ "stylelint": "^16.0.2" -+ }, -+ "peerDependenciesMeta": { -+ "postcss": { -+ "optional": true -+ } - } - }, -- "node_modules/schema-utils": { -- "version": "3.3.0", -- "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz", -- "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==", -+ "node_modules/stylelint-config-standard": { -+ "version": "36.0.1", -+ "resolved": "https://registry.npmjs.org/stylelint-config-standard/-/stylelint-config-standard-36.0.1.tgz", -+ "integrity": "sha512-8aX8mTzJ6cuO8mmD5yon61CWuIM4UD8Q5aBcWKGSf6kg+EC3uhB+iOywpTK4ca6ZL7B49en8yanOFtUW0qNzyw==", - "dev": true, -- "peer": true, -+ "funding": [ -+ { -+ "type": "opencollective", -+ "url": "https://opencollective.com/stylelint" -+ }, -+ { -+ "type": "github", -+ "url": "https://github.com/sponsors/stylelint" -+ } -+ ], - "dependencies": { -- "@types/json-schema": "^7.0.8", -- "ajv": "^6.12.5", -- "ajv-keywords": "^3.5.2" -+ "stylelint-config-recommended": "^14.0.1" - }, - "engines": { -- "node": ">= 10.13.0" -+ "node": ">=18.12.0" - }, -- "funding": { -- "type": "opencollective", -- "url": "https://opencollective.com/webpack" -- } -- }, -- "node_modules/semver": { -- "version": "6.3.1", -- "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", -- "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", -- "dev": true, -- "bin": { -- "semver": "bin/semver.js" -+ "peerDependencies": { -+ "stylelint": "^16.1.0" - } - }, -- "node_modules/serialize-javascript": { -- "version": "6.0.1", -- "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.1.tgz", -- "integrity": "sha512-owoXEFjWRllis8/M1Q+Cw5k8ZH40e3zhp/ovX+Xr/vi1qj6QesbyXXViFbpNvWvPNAD62SutwEXavefrLJWj7w==", -+ "node_modules/stylelint-config-standard-scss": { -+ "version": "13.1.0", -+ "resolved": "https://registry.npmjs.org/stylelint-config-standard-scss/-/stylelint-config-standard-scss-13.1.0.tgz", -+ "integrity": "sha512-Eo5w7/XvwGHWkeGLtdm2FZLOMYoZl1omP2/jgFCXyl2x5yNz7/8vv4Tj6slHvMSSUNTaGoam/GAZ0ZhukvalfA==", - "dev": true, -- "peer": true, -- "dependencies": { -- "randombytes": "^2.1.0" -- } -- }, -- "node_modules/shebang-command": { -- "version": "2.0.0", -- "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", -- "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", - "dependencies": { -- "shebang-regex": "^3.0.0" -+ "stylelint-config-recommended-scss": "^14.0.0", -+ "stylelint-config-standard": "^36.0.0" - }, - "engines": { -- "node": ">=8" -- } -- }, -- "node_modules/shebang-regex": { -- "version": "3.0.0", -- "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", -- "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", -- "engines": { -- "node": ">=8" -+ "node": ">=18.12.0" -+ }, -+ "peerDependencies": { -+ "postcss": "^8.3.3", -+ "stylelint": "^16.3.1" -+ }, -+ "peerDependenciesMeta": { -+ "postcss": { -+ "optional": true -+ } - } - }, -- "node_modules/side-channel": { -- "version": "1.0.4", -- "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", -- "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", -- "peer": true, -+ "node_modules/stylelint-formatter-pretty": { -+ "version": "4.0.0", -+ "resolved": "https://registry.npmjs.org/stylelint-formatter-pretty/-/stylelint-formatter-pretty-4.0.0.tgz", -+ "integrity": "sha512-tVuAEhvdTcLzlupqPEPhpBoszX3hB6AnI/OSqEIZOxRatHDHSlu/MaU13MUDzEPOgdoFfDzsVqhp4j2DltaIvg==", -+ "dev": true, -+ "funding": [ -+ { -+ "type": "kofi", -+ "url": "https://ko-fi.com/mrcgrtz" -+ }, -+ { -+ "type": "liberapay", -+ "url": "https://liberapay.com/mrcgrtz/" -+ } -+ ], - "dependencies": { -- "call-bind": "^1.0.0", -- "get-intrinsic": "^1.0.2", -- "object-inspect": "^1.9.0" -+ "ansi-escapes": "^6.2.0", -+ "log-symbols": "^6.0.0", -+ "picocolors": "^1.0.0", -+ "plur": "^5.1.0", -+ "string-width": "^7.0.0", -+ "supports-hyperlinks": "^3.0.0" - }, -- "funding": { -- "url": "https://github.com/sponsors/ljharb" -- } -- }, -- "node_modules/signal-exit": { -- "version": "4.0.2", -- "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.0.2.tgz", -- "integrity": "sha512-MY2/qGx4enyjprQnFaZsHib3Yadh3IXyV2C321GY0pjGfVBu4un0uDJkwgdxqO+Rdx8JMT8IfJIRwbYVz3Ob3Q==", - "engines": { -- "node": ">=14" -+ "node": ">=18.12.0" - }, -- "funding": { -- "url": "https://github.com/sponsors/isaacs" -+ "peerDependencies": { -+ "stylelint": ">=16.0.0" - } - }, -- "node_modules/sizzle": { -- "version": "2.3.10", -- "resolved": "https://registry.npmjs.org/sizzle/-/sizzle-2.3.10.tgz", -- "integrity": "sha512-kPGev+SiByuzi/YPDTqCwdKLWCaN9+14ve86yH0gP6Efue04xjLYWJrcLC6y1buFyIVXkwHNXPsOTEd1MYVPbQ==", -+ "node_modules/stylelint-formatter-pretty/node_modules/emoji-regex": { -+ "version": "10.3.0", -+ "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-10.3.0.tgz", -+ "integrity": "sha512-QpLs9D9v9kArv4lfDEgg1X/gN5XLnf/A6l9cs8SPZLRZR3ZkY9+kwIQTxm+fsSej5UMYGE8fdoaZVIBlqG0XTw==", - "dev": true - }, -- "node_modules/slash": { -- "version": "3.0.0", -- "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", -- "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", -+ "node_modules/stylelint-formatter-pretty/node_modules/string-width": { -+ "version": "7.2.0", -+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-7.2.0.tgz", -+ "integrity": "sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ==", - "dev": true, -+ "dependencies": { -+ "emoji-regex": "^10.3.0", -+ "get-east-asian-width": "^1.0.0", -+ "strip-ansi": "^7.1.0" -+ }, - "engines": { -- "node": ">=8" -+ "node": ">=18" -+ }, -+ "funding": { -+ "url": "https://github.com/sponsors/sindresorhus" - } - }, -- "node_modules/source-map": { -- "version": "0.6.1", -- "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", -- "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", -+ "node_modules/stylelint-scss": { -+ "version": "6.4.1", -+ "resolved": "https://registry.npmjs.org/stylelint-scss/-/stylelint-scss-6.4.1.tgz", -+ "integrity": "sha512-+clI2bQC2FPOt06ZwUlXZZ95IO2C5bKTP0GLN1LNQPVvISfSNcgMKv/VTwym1mK9vnqhHbOk8lO4rj4nY7L9pw==", - "dev": true, -- "peer": true, -+ "dependencies": { -+ "known-css-properties": "^0.34.0", -+ "postcss-media-query-parser": "^0.2.3", -+ "postcss-resolve-nested-selector": "^0.1.1", -+ "postcss-selector-parser": "^6.1.0", -+ "postcss-value-parser": "^4.2.0" -+ }, - "engines": { -- "node": ">=0.10.0" -+ "node": ">=18.12.0" -+ }, -+ "peerDependencies": { -+ "stylelint": "^16.0.2" - } - }, -- "node_modules/source-map-js": { -- "version": "1.0.2", -- "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", -- "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==", -+ "node_modules/stylelint/node_modules/ansi-regex": { -+ "version": "5.0.1", -+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", -+ "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true, - "engines": { -- "node": ">=0.10.0" -+ "node": ">=8" - } - }, -- "node_modules/source-map-support": { -- "version": "0.5.21", -- "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", -- "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", -- "dev": true, -- "peer": true, -- "dependencies": { -- "buffer-from": "^1.0.0", -- "source-map": "^0.6.0" -- } -+ "node_modules/stylelint/node_modules/balanced-match": { -+ "version": "2.0.0", -+ "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-2.0.0.tgz", -+ "integrity": "sha512-1ugUSr8BHXRnK23KfuYS+gVMC3LB8QGH9W1iGtDPsNWoQbgtXSExkBu2aDR4epiGWZOjZsj6lDl/N/AqqTC3UA==", -+ "dev": true - }, -- "node_modules/sourcemap-codec": { -- "version": "1.4.8", -- "resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz", -- "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==", -- "deprecated": "Please use @jridgewell/sourcemap-codec instead", -+ "node_modules/stylelint/node_modules/emoji-regex": { -+ "version": "8.0.0", -+ "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", -+ "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true - }, -- "node_modules/stop-iteration-iterator": { -- "version": "1.0.0", -- "resolved": "https://registry.npmjs.org/stop-iteration-iterator/-/stop-iteration-iterator-1.0.0.tgz", -- "integrity": "sha512-iCGQj+0l0HOdZ2AEeBADlsRC+vsnDsZsbdSiH1yNSjcfKM7fdpCMfqAL/dwF5BLiw/XhRft/Wax6zQbhq2BcjQ==", -- "peer": true, -+ "node_modules/stylelint/node_modules/file-entry-cache": { -+ "version": "9.0.0", -+ "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-9.0.0.tgz", -+ "integrity": "sha512-6MgEugi8p2tiUhqO7GnPsmbCCzj0YRCwwaTbpGRyKZesjRSzkqkAE9fPp7V2yMs5hwfgbQLgdvSSkGNg1s5Uvw==", -+ "dev": true, - "dependencies": { -- "internal-slot": "^1.0.4" -+ "flat-cache": "^5.0.0" - }, - "engines": { -- "node": ">= 0.4" -+ "node": ">=18" - } - }, -- "node_modules/string_decoder": { -- "version": "1.3.0", -- "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", -- "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", -+ "node_modules/stylelint/node_modules/flat-cache": { -+ "version": "5.0.0", -+ "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-5.0.0.tgz", -+ "integrity": "sha512-JrqFmyUl2PnPi1OvLyTVHnQvwQ0S+e6lGSwu8OkAZlSaNIZciTY2H/cOOROxsBA1m/LZNHDsqAgDZt6akWcjsQ==", - "dev": true, - "dependencies": { -- "safe-buffer": "~5.2.0" -+ "flatted": "^3.3.1", -+ "keyv": "^4.5.4" -+ }, -+ "engines": { -+ "node": ">=18" - } - }, -- "node_modules/string-width": { -- "version": "5.1.2", -- "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", -- "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", -- "dependencies": { -- "eastasianwidth": "^0.2.0", -- "emoji-regex": "^9.2.2", -- "strip-ansi": "^7.0.1" -- }, -+ "node_modules/stylelint/node_modules/resolve-from": { -+ "version": "5.0.0", -+ "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", -+ "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", -+ "dev": true, - "engines": { -- "node": ">=12" -- }, -- "funding": { -- "url": "https://github.com/sponsors/sindresorhus" -+ "node": ">=8" - } - }, -- "node_modules/string-width-cjs": { -- "name": "string-width", -+ "node_modules/stylelint/node_modules/string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", -+ "dev": true, - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" -- }, -- "engines": { -- "node": ">=8" -- } -- }, -- "node_modules/string-width-cjs/node_modules/ansi-regex": { -- "version": "5.0.1", -- "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", -- "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", -+ }, - "engines": { - "node": ">=8" - } - }, -- "node_modules/string-width-cjs/node_modules/emoji-regex": { -- "version": "8.0.0", -- "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", -- "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" -- }, -- "node_modules/string-width-cjs/node_modules/strip-ansi": { -+ "node_modules/stylelint/node_modules/string-width/node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", -+ "dev": true, - "dependencies": { - "ansi-regex": "^5.0.1" - }, -@@ -4348,50 +7331,50 @@ - "node": ">=8" - } - }, -- "node_modules/strip-ansi": { -- "version": "7.1.0", -- "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", -- "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", -+ "node_modules/supports-color": { -+ "version": "5.5.0", -+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", -+ "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", -+ "dev": true, - "dependencies": { -- "ansi-regex": "^6.0.1" -+ "has-flag": "^3.0.0" - }, - "engines": { -- "node": ">=12" -- }, -- "funding": { -- "url": "https://github.com/chalk/strip-ansi?sponsor=1" -+ "node": ">=4" - } - }, -- "node_modules/strip-ansi-cjs": { -- "name": "strip-ansi", -- "version": "6.0.1", -- "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", -- "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", -+ "node_modules/supports-hyperlinks": { -+ "version": "3.0.0", -+ "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-3.0.0.tgz", -+ "integrity": "sha512-QBDPHyPQDRTy9ku4URNGY5Lah8PAaXs6tAAwp55sL5WCsSW7GIfdf6W5ixfziW+t7wh3GVvHyHHyQ1ESsoRvaA==", -+ "dev": true, - "dependencies": { -- "ansi-regex": "^5.0.1" -+ "has-flag": "^4.0.0", -+ "supports-color": "^7.0.0" - }, - "engines": { -- "node": ">=8" -+ "node": ">=14.18" - } - }, -- "node_modules/strip-ansi-cjs/node_modules/ansi-regex": { -- "version": "5.0.1", -- "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", -- "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", -+ "node_modules/supports-hyperlinks/node_modules/has-flag": { -+ "version": "4.0.0", -+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", -+ "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", -+ "dev": true, - "engines": { - "node": ">=8" - } - }, -- "node_modules/supports-color": { -- "version": "5.5.0", -- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", -- "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", -+ "node_modules/supports-hyperlinks/node_modules/supports-color": { -+ "version": "7.2.0", -+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", -+ "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { -- "has-flag": "^3.0.0" -+ "has-flag": "^4.0.0" - }, - "engines": { -- "node": ">=4" -+ "node": ">=8" - } - }, - "node_modules/supports-preserve-symlinks-flag": { -@@ -4406,11 +7389,96 @@ - "url": "https://github.com/sponsors/ljharb" - } - }, -+ "node_modules/svg-tags": { -+ "version": "1.0.0", -+ "resolved": "https://registry.npmjs.org/svg-tags/-/svg-tags-1.0.0.tgz", -+ "integrity": "sha512-ovssysQTa+luh7A5Weu3Rta6FJlFBBbInjOh722LIt6klpU2/HtdUbszju/G4devcvk8PGt7FCLv5wftu3THUA==", -+ "dev": true -+ }, - "node_modules/tabbable": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/tabbable/-/tabbable-6.2.0.tgz", - "integrity": "sha512-Cat63mxsVJlzYvN51JmVXIgNoUokrIaT2zLclCXjRd8boZ0004U4KCs/sToJ75C6sdlByWxpYnb5Boif1VSFew==" - }, -+ "node_modules/table": { -+ "version": "6.8.2", -+ "resolved": "https://registry.npmjs.org/table/-/table-6.8.2.tgz", -+ "integrity": "sha512-w2sfv80nrAh2VCbqR5AK27wswXhqcck2AhfnNW76beQXskGZ1V12GwS//yYVa3d3fcvAip2OUnbDAjW2k3v9fA==", -+ "dev": true, -+ "dependencies": { -+ "ajv": "^8.0.1", -+ "lodash.truncate": "^4.4.2", -+ "slice-ansi": "^4.0.0", -+ "string-width": "^4.2.3", -+ "strip-ansi": "^6.0.1" -+ }, -+ "engines": { -+ "node": ">=10.0.0" -+ } -+ }, -+ "node_modules/table/node_modules/ajv": { -+ "version": "8.17.1", -+ "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz", -+ "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==", -+ "dev": true, -+ "dependencies": { -+ "fast-deep-equal": "^3.1.3", -+ "fast-uri": "^3.0.1", -+ "json-schema-traverse": "^1.0.0", -+ "require-from-string": "^2.0.2" -+ }, -+ "funding": { -+ "type": "github", -+ "url": "https://github.com/sponsors/epoberezkin" -+ } -+ }, -+ "node_modules/table/node_modules/ansi-regex": { -+ "version": "5.0.1", -+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", -+ "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", -+ "dev": true, -+ "engines": { -+ "node": ">=8" -+ } -+ }, -+ "node_modules/table/node_modules/emoji-regex": { -+ "version": "8.0.0", -+ "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", -+ "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", -+ "dev": true -+ }, -+ "node_modules/table/node_modules/json-schema-traverse": { -+ "version": "1.0.0", -+ "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", -+ "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", -+ "dev": true -+ }, -+ "node_modules/table/node_modules/string-width": { -+ "version": "4.2.3", -+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", -+ "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", -+ "dev": true, -+ "dependencies": { -+ "emoji-regex": "^8.0.0", -+ "is-fullwidth-code-point": "^3.0.0", -+ "strip-ansi": "^6.0.1" -+ }, -+ "engines": { -+ "node": ">=8" -+ } -+ }, -+ "node_modules/table/node_modules/strip-ansi": { -+ "version": "6.0.1", -+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", -+ "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", -+ "dev": true, -+ "dependencies": { -+ "ansi-regex": "^5.0.1" -+ }, -+ "engines": { -+ "node": ">=8" -+ } -+ }, - "node_modules/tapable": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz", -@@ -4481,6 +7549,12 @@ - "dev": true, - "peer": true - }, -+ "node_modules/text-table": { -+ "version": "0.2.0", -+ "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", -+ "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", -+ "dev": true -+ }, - "node_modules/tiny-glob": { - "version": "0.2.9", - "resolved": "https://registry.npmjs.org/tiny-glob/-/tiny-glob-0.2.9.tgz", -@@ -4524,6 +7598,18 @@ - "node": ">=8.0" - } - }, -+ "node_modules/ts-api-utils": { -+ "version": "1.3.0", -+ "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-1.3.0.tgz", -+ "integrity": "sha512-UQMIo7pb8WRomKR1/+MFVLTroIvDVtMX3K6OUir8ynLyzB8Jeriont2bTAtmNPa1ekAgN7YPDyf6V+ygrdU+eQ==", -+ "dev": true, -+ "engines": { -+ "node": ">=16" -+ }, -+ "peerDependencies": { -+ "typescript": ">=4.2.0" -+ } -+ }, - "node_modules/ts-loader": { - "version": "9.4.4", - "resolved": "https://registry.npmjs.org/ts-loader/-/ts-loader-9.4.4.tgz", -@@ -4646,15 +7732,136 @@ - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - }, -+ "node_modules/tsconfig-paths": { -+ "version": "3.15.0", -+ "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.15.0.tgz", -+ "integrity": "sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg==", -+ "dev": true, -+ "dependencies": { -+ "@types/json5": "^0.0.29", -+ "json5": "^1.0.2", -+ "minimist": "^1.2.6", -+ "strip-bom": "^3.0.0" -+ } -+ }, -+ "node_modules/tsconfig-paths/node_modules/json5": { -+ "version": "1.0.2", -+ "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz", -+ "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==", -+ "dev": true, -+ "dependencies": { -+ "minimist": "^1.2.0" -+ }, -+ "bin": { -+ "json5": "lib/cli.js" -+ } -+ }, - "node_modules/tslib": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.1.tgz", - "integrity": "sha512-t0hLfiEKfMUoqhG+U1oid7Pva4bbDPHYfJNiB7BiIjRkj1pyC++4N3huJfqY6aRH6VTB0rvtzQwjM4K6qpfOig==" - }, -+ "node_modules/type-check": { -+ "version": "0.4.0", -+ "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", -+ "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", -+ "dev": true, -+ "dependencies": { -+ "prelude-ls": "^1.2.1" -+ }, -+ "engines": { -+ "node": ">= 0.8.0" -+ } -+ }, -+ "node_modules/type-fest": { -+ "version": "0.20.2", -+ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", -+ "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", -+ "dev": true, -+ "engines": { -+ "node": ">=10" -+ }, -+ "funding": { -+ "url": "https://github.com/sponsors/sindresorhus" -+ } -+ }, -+ "node_modules/typed-array-buffer": { -+ "version": "1.0.2", -+ "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.2.tgz", -+ "integrity": "sha512-gEymJYKZtKXzzBzM4jqa9w6Q1Jjm7x2d+sh19AdsD4wqnMPDYyvwpsIc2Q/835kHuo3BEQ7CjelGhfTsoBb2MQ==", -+ "dev": true, -+ "dependencies": { -+ "call-bind": "^1.0.7", -+ "es-errors": "^1.3.0", -+ "is-typed-array": "^1.1.13" -+ }, -+ "engines": { -+ "node": ">= 0.4" -+ } -+ }, -+ "node_modules/typed-array-byte-length": { -+ "version": "1.0.1", -+ "resolved": "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.1.tgz", -+ "integrity": "sha512-3iMJ9q0ao7WE9tWcaYKIptkNBuOIcZCCT0d4MRvuuH88fEoEH62IuQe0OtraD3ebQEoTRk8XCBoknUNc1Y67pw==", -+ "dev": true, -+ "dependencies": { -+ "call-bind": "^1.0.7", -+ "for-each": "^0.3.3", -+ "gopd": "^1.0.1", -+ "has-proto": "^1.0.3", -+ "is-typed-array": "^1.1.13" -+ }, -+ "engines": { -+ "node": ">= 0.4" -+ }, -+ "funding": { -+ "url": "https://github.com/sponsors/ljharb" -+ } -+ }, -+ "node_modules/typed-array-byte-offset": { -+ "version": "1.0.2", -+ "resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.2.tgz", -+ "integrity": "sha512-Ous0vodHa56FviZucS2E63zkgtgrACj7omjwd/8lTEMEPFFyjfixMZ1ZXenpgCFBBt4EC1J2XsyVS2gkG0eTFA==", -+ "dev": true, -+ "dependencies": { -+ "available-typed-arrays": "^1.0.7", -+ "call-bind": "^1.0.7", -+ "for-each": "^0.3.3", -+ "gopd": "^1.0.1", -+ "has-proto": "^1.0.3", -+ "is-typed-array": "^1.1.13" -+ }, -+ "engines": { -+ "node": ">= 0.4" -+ }, -+ "funding": { -+ "url": "https://github.com/sponsors/ljharb" -+ } -+ }, -+ "node_modules/typed-array-length": { -+ "version": "1.0.6", -+ "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.6.tgz", -+ "integrity": "sha512-/OxDN6OtAk5KBpGb28T+HZc2M+ADtvRxXrKKbUwtsLgdoxgX13hyy7ek6bFRl5+aBs2yZzB0c4CnQfAtVypW/g==", -+ "dev": true, -+ "dependencies": { -+ "call-bind": "^1.0.7", -+ "for-each": "^0.3.3", -+ "gopd": "^1.0.1", -+ "has-proto": "^1.0.3", -+ "is-typed-array": "^1.1.13", -+ "possible-typed-array-names": "^1.0.0" -+ }, -+ "engines": { -+ "node": ">= 0.4" -+ }, -+ "funding": { -+ "url": "https://github.com/sponsors/ljharb" -+ } -+ }, - "node_modules/typescript": { -- "version": "5.1.6", -- "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.1.6.tgz", -- "integrity": "sha512-zaWCozRZ6DLEWAWFrVDz1H6FVXzUSfTy5FUMWsQlU8Ym5JP9eO4xkTIROFCQvhQf61z6O/G6ugw3SgAnvvm+HA==", -+ "version": "5.5.3", -+ "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.5.3.tgz", -+ "integrity": "sha512-/hreyEujaB0w76zKo6717l3L0o/qEUtRgdvUBvlkhoWeOVMjMuHNHk0BRBzikzuGDqNmPQbg5ifMEqsHLiIUcQ==", - "dev": true, - "bin": { - "tsc": "bin/tsc", -@@ -4664,6 +7871,21 @@ - "node": ">=14.17" - } - }, -+ "node_modules/unbox-primitive": { -+ "version": "1.0.2", -+ "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz", -+ "integrity": "sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==", -+ "dev": true, -+ "dependencies": { -+ "call-bind": "^1.0.2", -+ "has-bigints": "^1.0.2", -+ "has-symbols": "^1.0.3", -+ "which-boxed-primitive": "^1.0.2" -+ }, -+ "funding": { -+ "url": "https://github.com/sponsors/ljharb" -+ } -+ }, - "node_modules/universalify": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", -@@ -4709,11 +7931,23 @@ - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", - "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", - "dev": true, -- "peer": true, - "dependencies": { - "punycode": "^2.1.0" - } - }, -+ "node_modules/util-deprecate": { -+ "version": "1.0.2", -+ "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", -+ "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", -+ "dev": true -+ }, -+ "node_modules/varint": { -+ "version": "6.0.0", -+ "resolved": "https://registry.npmjs.org/varint/-/varint-6.0.0.tgz", -+ "integrity": "sha512-cXEIW6cfr15lFv563k4GuVuW/fiwjknytD37jIOLSdSWuOI6WnO/oKwmP2FQTU2l01LP8/M5TSAJpzUaGe3uWg==", -+ "dev": true, -+ "peer": true -+ }, - "node_modules/watchpack": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.4.0.tgz", -@@ -4804,7 +8038,6 @@ - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", - "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", -- "peer": true, - "dependencies": { - "is-bigint": "^1.0.1", - "is-boolean-object": "^1.1.0", -@@ -4816,11 +8049,36 @@ - "url": "https://github.com/sponsors/ljharb" - } - }, -+ "node_modules/which-builtin-type": { -+ "version": "1.1.3", -+ "resolved": "https://registry.npmjs.org/which-builtin-type/-/which-builtin-type-1.1.3.tgz", -+ "integrity": "sha512-YmjsSMDBYsM1CaFiayOVT06+KJeXf0o5M/CAd4o1lTadFAtacTUM49zoYxr/oroopFDfhvN6iEcBxUyc3gvKmw==", -+ "dev": true, -+ "dependencies": { -+ "function.prototype.name": "^1.1.5", -+ "has-tostringtag": "^1.0.0", -+ "is-async-function": "^2.0.0", -+ "is-date-object": "^1.0.5", -+ "is-finalizationregistry": "^1.0.2", -+ "is-generator-function": "^1.0.10", -+ "is-regex": "^1.1.4", -+ "is-weakref": "^1.0.2", -+ "isarray": "^2.0.5", -+ "which-boxed-primitive": "^1.0.2", -+ "which-collection": "^1.0.1", -+ "which-typed-array": "^1.1.9" -+ }, -+ "engines": { -+ "node": ">= 0.4" -+ }, -+ "funding": { -+ "url": "https://github.com/sponsors/ljharb" -+ } -+ }, - "node_modules/which-collection": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/which-collection/-/which-collection-1.0.1.tgz", - "integrity": "sha512-W8xeTUwaln8i3K/cY1nGXzdnVZlidBcagyNFtBdD5kxnb4TvGKR7FfSIS3mYpwWS1QUCutfKz8IY8RjftB0+1A==", -- "peer": true, - "dependencies": { - "is-map": "^2.0.1", - "is-set": "^2.0.1", -@@ -4832,16 +8090,15 @@ - } - }, - "node_modules/which-typed-array": { -- "version": "1.1.11", -- "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.11.tgz", -- "integrity": "sha512-qe9UWWpkeG5yzZ0tNYxDmd7vo58HDBc39mZ0xWWpolAGADdFOzkfamWLDxkOWcvHQKVmdTyQdLD4NOfjLWTKew==", -- "peer": true, -+ "version": "1.1.15", -+ "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.15.tgz", -+ "integrity": "sha512-oV0jmFtUky6CXfkqehVvBP/LSWJ2sy4vWMioiENyJLePrBO/yKyV9OyJySfAKosh+RYkIl5zJCNZ8/4JncrpdA==", - "dependencies": { -- "available-typed-arrays": "^1.0.5", -- "call-bind": "^1.0.2", -+ "available-typed-arrays": "^1.0.7", -+ "call-bind": "^1.0.7", - "for-each": "^0.3.3", - "gopd": "^1.0.1", -- "has-tostringtag": "^1.0.0" -+ "has-tostringtag": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" -@@ -4850,6 +8107,15 @@ - "url": "https://github.com/sponsors/ljharb" - } - }, -+ "node_modules/word-wrap": { -+ "version": "1.2.5", -+ "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz", -+ "integrity": "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==", -+ "dev": true, -+ "engines": { -+ "node": ">=0.10.0" -+ } -+ }, - "node_modules/wrap-ansi": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", -@@ -4967,6 +8233,19 @@ - "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", - "dev": true - }, -+ "node_modules/write-file-atomic": { -+ "version": "5.0.1", -+ "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-5.0.1.tgz", -+ "integrity": "sha512-+QU2zd6OTD8XWIJCbffaiQeH9U73qIqafo1x6V1snCWYGJf6cVE0cDR4D8xRzcEnfI21IFrUPzPGtcPf8AC+Rw==", -+ "dev": true, -+ "dependencies": { -+ "imurmurhash": "^0.1.4", -+ "signal-exit": "^4.0.1" -+ }, -+ "engines": { -+ "node": "^14.17.0 || ^16.13.0 || >=18.0.0" -+ } -+ }, - "node_modules/ws": { - "version": "7.5.10", - "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.10.tgz", -@@ -5003,6 +8282,18 @@ - "engines": { - "node": ">= 14" - } -+ }, -+ "node_modules/yocto-queue": { -+ "version": "0.1.0", -+ "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", -+ "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", -+ "dev": true, -+ "engines": { -+ "node": ">=10" -+ }, -+ "funding": { -+ "url": "https://github.com/sponsors/sindresorhus" -+ } - } - } - } -diff --git a/package.json b/package.json -index 62afd37..8aa4749 100644 ---- a/package.json -+++ b/package.json -@@ -1,51 +1,71 @@ - { -- "name": "tukit", -- "description": "Cockpit module for Transactional Update", -- "type": "module", -- "main": "index.js", -- "repository": "https://github.com/openSUSE/cockpit-tukit", -- "author": "", -- "license": "LGPL-2.1", -- "scripts": { -- "watch": "ESBUILD_WATCH='true' ./build.js", -- "build": "tsc -noEmit && ./build.js", -- "lint": "biome check .", -- "format": "biome format . --write", -- "postinstall": "patch-package" -- }, -- "devDependencies": { -- "@babel/preset-typescript": "^7.21.4", -- "@biomejs/biome": "1.8.3", -- "@types/react": "^18.0.37", -- "@types/react-dom": "^18.0.11", -- "argparse": "^2.0.1", -- "chrome-remote-interface": "^0.32.1", -- "esbuild": "^0.18.6", -- "esbuild-plugin-copy": "^2.1.1", -- "esbuild-plugin-replace": "^1.3.0", -- "esbuild-sass-plugin": "^2.10.0", -- "gettext-parser": "7.0.1", -- "htmlparser": "^1.7.7", -- "jed": "^1.1.1", -- "patch-package": "^7.0.2", -- "qunit": "^2.9.3", -- "sass": "^1.61.0", -- "sizzle": "^2.3.3", -- "ts-loader": "^9.4.2", -- "typescript": "^5.0.4" -- }, -- "peerDependencies": { -- "date-fns": "^2.30.0", -- "deep-equal": "^2.2.2" -- }, -- "dependencies": { -- "@patternfly/patternfly": "5.0.0-alpha.64", -- "@patternfly/react-core": "5.0.0-alpha.115", -- "@patternfly/react-icons": "5.0.0-alpha.19", -- "@patternfly/react-styles": "5.0.0-alpha.16", -- "glob": "^10.3.3", -- "react": "18.2.0", -- "react-dom": "18.2.0", -- "react-xml-parser": "^1.1.8" -- } -+ "name": "tukit", -+ "description": "Cockpit module for Transactional Update", -+ "type": "module", -+ "main": "index.js", -+ "repository": "https://github.com/openSUSE/cockpit-tukit", -+ "author": "", -+ "license": "LGPL-2.1", -+ "scripts": { -+ "watch": "ESBUILD_WATCH='true' ./build.js", -+ "build": "tsc -noEmit && ./build.js", -+ "eslint": "eslint src/", -+ "eslint:fix": "eslint --fix src/", -+ "stylelint": "stylelint src/*{.css,scss}", -+ "stylelint:fix": "stylelint --fix src/*{.css,scss}", -+ "lint": "biome check .", -+ "format": "biome format . --write", -+ "ci": "biome ci && npm run eslint && npm run stylelint", -+ "postinstall": "patch-package" -+ }, -+ "devDependencies": { -+ "@babel/preset-typescript": "^7.21.4", -+ "@biomejs/biome": "1.8.3", -+ "@types/react": "^18.3.3", -+ "@types/react-dom": "^18.3.0", -+ "@typescript-eslint/eslint-plugin": "7.17.0", -+ "argparse": "^2.0.1", -+ "chrome-remote-interface": "^0.33.0", -+ "esbuild": "^0.23.0", -+ "esbuild-plugin-copy": "^2.1.1", -+ "esbuild-plugin-replace": "^1.4.0", -+ "esbuild-sass-plugin": "^3.3.1", -+ "eslint": "^8.57.0", -+ "eslint-config-standard": "^17.1.0", -+ "eslint-config-standard-jsx": "^11.0.0", -+ "eslint-config-standard-react": "^13.0.0", -+ "eslint-plugin-import": "^2.29.1", -+ "eslint-plugin-node": "^11.1.0", -+ "eslint-plugin-promise": "^6.6.0", -+ "eslint-plugin-react": "^7.35.0", -+ "eslint-plugin-react-hooks": "^4.6.2", -+ "gettext-parser": "8.0.0", -+ "htmlparser": "^1.7.7", -+ "jed": "^1.1.1", -+ "patch-package": "^7.0.2", -+ "qunit": "^2.21.1", -+ "sass": "^1.77.8", -+ "sizzle": "^2.3.3", -+ "stylelint": "16.7.0", -+ "stylelint-config-recommended-scss": "14.0.0", -+ "stylelint-config-standard": "36.0.1", -+ "stylelint-config-standard-scss": "13.1.0", -+ "stylelint-formatter-pretty": "4.0.0", -+ "ts-loader": "^9.4.2", -+ "typescript": "5.5.3" -+ }, -+ "peerDependencies": { -+ "date-fns": "^2.30.0", -+ "deep-equal": "^2.2.2" -+ }, -+ "dependencies": { -+ "@patternfly/patternfly": "5.3.1", -+ "@patternfly/react-core": "5.3.4", -+ "@patternfly/react-icons": "5.3.2", -+ "@patternfly/react-styles": "5.3.1", -+ "glob": "^11.0.0", -+ "react": "18.3.1", -+ "react-dom": "18.3.1", -+ "react-xml-parser": "^1.1.8" -+ } - } -diff --git a/cockpit-tukit.spec.in b/packaging/cockpit-tukit.spec.in -similarity index 100% -rename from cockpit-tukit.spec.in -rename to packaging/cockpit-tukit.spec.in -diff --git a/patches/glob+10.3.3.patch b/patches/glob+10.3.3.patch -deleted file mode 100644 -index 1fcc64d..0000000 ---- a/patches/glob+10.3.3.patch -+++ /dev/null -@@ -1,11 +0,0 @@ --diff --git a/node_modules/glob/dist/mjs/index.js b/node_modules/glob/dist/mjs/index.js --index 7b27011..76b7c27 100644 ----- a/node_modules/glob/dist/mjs/index.js --+++ b/node_modules/glob/dist/mjs/index.js --@@ -53,4 +53,5 @@ export const glob = Object.assign(glob_, { -- unescape, -- }); -- glob.glob = glob; --+export {glob as default}; -- //# sourceMappingURL=index.js.map --\ No newline at end of file -diff --git a/patches/glob+11.0.0.patch b/patches/glob+11.0.0.patch -new file mode 100644 -index 0000000..b4b9e9c ---- /dev/null -+++ b/patches/glob+11.0.0.patch -@@ -0,0 +1,11 @@ -+diff --git a/node_modules/glob/dist/esm/index.js b/node_modules/glob/dist/esm/index.js -+index e15c1f9..0eda344 100644 -+--- a/node_modules/glob/dist/esm/index.js -++++ b/node_modules/glob/dist/esm/index.js -+@@ -52,4 +52,5 @@ export const glob = Object.assign(glob_, { -+ unescape, -+ }); -+ glob.glob = glob; -++export { glob as default }; -+ //# sourceMappingURL=index.js.map -+\ No newline at end of file -diff --git a/src/app.tsx b/src/app.tsx -index c3d0a84..e0090d3 100644 ---- a/src/app.tsx -+++ b/src/app.tsx -@@ -25,19 +25,19 @@ import "cockpit-dark-theme"; - import { page_status } from "notifications"; - import React, { useState, useEffect } from "react"; - import { -- Button, -- Card, -- CardBody, -- CardTitle, -- DataList, -- EmptyState, -- EmptyStateBody, -- EmptyStateIcon, -- Gallery, -- Page, -- PageSection, -- Spinner, -- Title, -+ Button, -+ Card, -+ CardBody, -+ CardTitle, -+ DataList, -+ EmptyState, -+ EmptyStateBody, -+ EmptyStateIcon, -+ Gallery, -+ Page, -+ PageSection, -+ Spinner, -+ Title, - } from "@patternfly/react-core"; - import { ExclamationCircleIcon, RedoIcon } from "@patternfly/react-icons"; - -@@ -47,10 +47,10 @@ import StatusPanel from "./components/StatusPanel"; - import UpdatesPanel from "./components/UpdatesPanel"; - - import { -- type Snapshot, -- createSnapshot, -- snapshotsProxy, -- tukitdProxy, -+ type Snapshot, -+ createSnapshot, -+ snapshotsProxy, -+ tukitdProxy, - } from "./tukit"; - import { type Status, mostSevereStatus } from "./status"; - import type { Update } from "./update"; -@@ -60,213 +60,213 @@ const _ = cockpit.gettext; - superuser.reload_page_on_change(); - - const Application = () => { -- const [status, setStatus] = useState([]); -+ const [status, setStatus] = useState([]); - -- const [snapshots, setSnapshots] = useState([]); -- const [snapshotsWaiting, setSnapshotsWaiting] = useState(null); -- const [snapshotsDirty, setSnapshotsDirty] = useState(true); -+ const [snapshots, setSnapshots] = useState([]); -+ const [snapshotsWaiting, setSnapshotsWaiting] = useState(null); -+ const [snapshotsDirty, setSnapshotsDirty] = useState(true); - -- const [updates, setUpdates] = useState([]); -- const [updatesWaiting, setUpdatesWaiting] = useState(null); -- const [updatesError, setUpdatesError] = useState(null); -- const [updatesDirty, setUpdatesDirty] = useState(true); -+ const [updates, setUpdates] = useState([]); -+ const [updatesWaiting, setUpdatesWaiting] = useState(null); -+ const [updatesError, setUpdatesError] = useState(null); -+ const [updatesDirty, setUpdatesDirty] = useState(true); - -- const [serviceReady, setServiceReady] = useState(false); -+ const [serviceReady, setServiceReady] = useState(false); - -- useEvent(superuser, "changed"); -+ useEvent(superuser, "changed"); - -- const setDirty = (v: boolean) => { -- setSnapshotsDirty(v); -- setUpdatesDirty(v); -- }; -+ const setDirty = (v: boolean) => { -+ setSnapshotsDirty(v); -+ setUpdatesDirty(v); -+ }; - -- useEffect(() => { -- if (superuser.allowed) getSnapshots(); -- // TODO: FIX! -- // eslint-disable-next-line react-hooks/exhaustive-deps -- }, [snapshotsDirty, superuser.allowed]); -+ useEffect(() => { -+ if (superuser.allowed) getSnapshots(); -+ // TODO: FIX! -+ // eslint-disable-next-line react-hooks/exhaustive-deps -+ }, [snapshotsDirty, superuser.allowed]); - -- // forward status to Cockpit -- useEffect(() => { -- if (status.length > 0) { -- // page_status can show only one status -- // use most important one -- page_status.set_own(mostSevereStatus(status)); -- } else { -- page_status.set_own(null); -- } -- }, [status]); -+ // forward status to Cockpit -+ useEffect(() => { -+ if (status.length > 0) { -+ // page_status can show only one status -+ // use most important one -+ page_status.set_own(mostSevereStatus(status)); -+ } else { -+ page_status.set_own(null); -+ } -+ }, [status]); - -- const showServiceDetails = () => { -- cockpit.jump("/system/services#/tukitd.service", cockpit.transport.host); -- }; -+ const showServiceDetails = () => { -+ cockpit.jump("/system/services#/tukitd.service", cockpit.transport.host); -+ }; - -- const loading = () => { -- return ( -- -- -- {_("Loading...")} -- -- ); -- }; -+ const loading = () => { -+ return ( -+ -+ -+ {_("Loading...")} -+ -+ ); -+ }; - -- const serviceProblem = () => { -- // service proxy not ready yet? -- if (!serviceReady) { -- tukitdProxy().wait(() => { -- setServiceReady(true); -- }); -- return loading(); -- } -- if (!tukitdProxy().exists) { -- return ( -- -- -- -- {_("Transactional update service not installed")} -- -- -- {_("Please ensure package tukitd is installed.")} -- -- -- ); -- } -- if (tukitdProxy().state !== "running") { -- return ( -- -- -- -- {_("Transactional update service not running")} -- -- -- -- -- -- ); -- } -- if (!superuser.allowed) { -- return ( -- -- -- -- {_( -- "Administrative access is required to access updates and snapshots.", -- )} -- -- -- ); -- } -- return false; -- }; -+ const serviceProblem = () => { -+ // service proxy not ready yet? -+ if (!serviceReady) { -+ tukitdProxy().wait(() => { -+ setServiceReady(true); -+ }); -+ return loading(); -+ } -+ if (!tukitdProxy().exists) { -+ return ( -+ -+ -+ -+ {_("Transactional update service not installed")} -+ -+ -+ {_("Please ensure package tukitd is installed.")} -+ -+ -+ ); -+ } -+ if (tukitdProxy().state !== "running") { -+ return ( -+ -+ -+ -+ {_("Transactional update service not running")} -+ -+ -+ -+ -+ -+ ); -+ } -+ if (!superuser.allowed) { -+ return ( -+ -+ -+ -+ {_( -+ "Administrative access is required to access updates and snapshots.", -+ )} -+ -+ -+ ); -+ } -+ return false; -+ }; - -- const getSnapshots = () => { -- if (!snapshotsDirty) { -- return; -- } -- setSnapshotsDirty(false); -+ const getSnapshots = () => { -+ if (!snapshotsDirty) { -+ return; -+ } -+ setSnapshotsDirty(false); - -- setSnapshotsWaiting(_("Fetching snapshots...")); -- const proxy = snapshotsProxy(); -- proxy.wait(async () => { -- try { -- const snaps = ( -- await proxy.List("number,default,active,date,description") -- ).map((snap) => createSnapshot(snap)); -- // remove "current" snapshot -- snaps.shift(); -- snaps.sort((a, b) => b.number - a.number); -- // mark old snapshots -- let active: Snapshot | null = null; -- for (const snap of snaps) { -- if (active) snap.old = true; -- if (snap.active) active = snap; -- } -- setSnapshots(snaps); -- } catch (e) { -- // service problems are reported in serviceProblem() -- if (serviceReady && tukitdProxy().state === "running") { -- alert(`ERROR ${e}`); -- } -- } -- setSnapshotsWaiting(null); -- }); -- }; -+ setSnapshotsWaiting(_("Fetching snapshots...")); -+ const proxy = snapshotsProxy(); -+ proxy.wait(async () => { -+ try { -+ const snaps = ( -+ await proxy.List("number,default,active,date,description") -+ ).map((snap) => createSnapshot(snap)); -+ // remove "current" snapshot -+ snaps.shift(); -+ snaps.sort((a, b) => b.number - a.number); -+ // mark old snapshots -+ let active: Snapshot | null = null; -+ for (const snap of snaps) { -+ if (active) snap.old = true; -+ if (snap.active) active = snap; -+ } -+ setSnapshots(snaps); -+ } catch (e) { -+ // service problems are reported in serviceProblem() -+ if (serviceReady && tukitdProxy().state === "running") { -+ alert(`ERROR ${e}`); -+ } -+ } -+ setSnapshotsWaiting(null); -+ }); -+ }; - -- return ( -- -- -- -- -- -- -- -- {_("Snapshots & Updates")} -- -- -- -- {serviceProblem() || (snapshotsWaiting && loading()) || ( -- -- {updates.length > 0 && ( -- -- )} -- {snapshots.map((item) => ( -- -- ))} -- -- )} -- -- -- -- -- -- ); -+ return ( -+ -+ -+ -+ -+ -+ -+ -+ {_("Snapshots & Updates")} -+ -+ -+ -+ {serviceProblem() || (snapshotsWaiting && loading()) || ( -+ -+ {updates.length > 0 && ( -+ -+ )} -+ {snapshots.map((item) => ( -+ -+ ))} -+ -+ )} -+ -+ -+ -+ -+ -+ ); - }; - - export default Application; -diff --git a/src/components/SnapshotItem.tsx b/src/components/SnapshotItem.tsx -index 4000496..014eb2c 100644 ---- a/src/components/SnapshotItem.tsx -+++ b/src/components/SnapshotItem.tsx -@@ -20,25 +20,25 @@ - - import cockpit from "cockpit"; - import * as timeformat from "timeformat"; --import type React from "react"; --import { useState } from "react"; -+// biome-ignore lint/style/useImportType: this is not used as a type -+import React, { useState } from "react"; - import { -- Badge, -- Button, -- DataListItem, -- DataListToggle, -- DataListItemRow, -- DataListItemCells, -- DataListCell, -- DataListAction, -- DataListContent, -- Dropdown, -- DropdownItem, -- Label, -- Tooltip, -- type MenuToggleElement, -- MenuToggle, -- DropdownList, -+ Badge, -+ Button, -+ DataListItem, -+ DataListToggle, -+ DataListItemRow, -+ DataListItemCells, -+ DataListCell, -+ DataListAction, -+ DataListContent, -+ Dropdown, -+ DropdownItem, -+ Label, -+ Tooltip, -+ type MenuToggleElement, -+ MenuToggle, -+ DropdownList, - } from "@patternfly/react-core"; - import { DropdownPosition } from "@patternfly/react-core/deprecated"; - import { CheckCircleIcon, EllipsisVIcon } from "@patternfly/react-icons"; -@@ -47,180 +47,180 @@ import type { Snapshot } from "@/tukit"; - const _ = cockpit.gettext; - - type SnapshotItemProps = { -- item: Snapshot; -- waiting: string | null; -- setWaiting: (waiting: string | null) => void; -- setDirty: (dirty: boolean) => void; -+ item: Snapshot; -+ waiting: string | null; -+ setWaiting: (waiting: string | null) => void; -+ setDirty: (dirty: boolean) => void; - }; - - const SnapshotItem = ({ -- item, -- setDirty, -- setWaiting, -- waiting, -+ item, -+ setDirty, -+ setWaiting, -+ waiting, - }: SnapshotItemProps) => { -- const [expanded, setExpanded] = useState(false); -- const [menuOpen, setMenuOpen] = useState(false); -+ const [expanded, setExpanded] = useState(false); -+ const [menuOpen, setMenuOpen] = useState(false); - -- const rollback = async (snap: Snapshot, msg: string, reboot: boolean) => { -- setWaiting(msg); -- try { -- let script = `transactional-update rollback ${snap.number}`; -- if (reboot) { -- script = `${script} && reboot`; -- } -- const out = await cockpit.script(script, { -- superuser: "require", -- err: "message", -- }); -- console.log(`rollback output: ${out}`); -- setDirty(true); -- } catch (e) { -- console.log(`rollback error: ${e}`); -- // TODO: better error handling -- alert(e); -- } -- setWaiting(null); -- }; -- const rollbackAndReboot = (snap: Snapshot) => { -- rollback(snap, _("Rolling back..."), true); -- }; -- const rollbackOnly = (snap: Snapshot) => { -- rollback(snap, _("Rolling back..."), false); -- }; -- const activateAndReboot = (snap: Snapshot) => { -- rollback(snap, _("Activating..."), true); -- }; -- const activateOnly = (snap: Snapshot) => { -- rollback(snap, _("Activating..."), false); -- }; -- const actions = (item: Snapshot): JSX.Element[] | undefined => { -- if (item.old) { -- return [ -- { -- rollbackOnly(item); -- }} -- > -- {_("Rollback without Reboot")} -- , -- ]; -- } -- if (!item.active && !item.old) { -- return [ -- { -- activateOnly(item); -- }} -- > -- {_("Activate without Reboot")} -- , -- ]; -- } -- return undefined; -- }; -- return ( -- -- -- { -- setExpanded(!expanded); -- }} -- isExpanded={expanded} -- /> -- -- #{item.number} -- , -- -- {item.description} -- , -- -- -- {timeformat.distanceToNow(item.date, false)} -- -- , -- -- {item.active && ( -- -- )} -- {item.default && } -- , -- -- {!item.active && !item.old && ( -- -- )} -- {item.old && ( -- -- )} -- , -- ]} -- /> -- -- {actions(item) && ( -- ) => ( -- { -- setMenuOpen(!menuOpen); -- }} -- isExpanded={menuOpen} -- > -- -- -- )} -- popperProps={{ -- position: DropdownPosition.right, -- }} -- > -- {actions(item)} -- -- )} -- -- -- -- More details about selected snapshot More details about selected -- snapshot More details about selected snapshot More details about -- selected snapshot -- -- -- ); -+ const rollback = async (snap: Snapshot, msg: string, reboot: boolean) => { -+ setWaiting(msg); -+ try { -+ let script = `transactional-update rollback ${snap.number}`; -+ if (reboot) { -+ script = `${script} && reboot`; -+ } -+ const out = await cockpit.script(script, { -+ superuser: "require", -+ err: "message", -+ }); -+ console.log(`rollback output: ${out}`); -+ setDirty(true); -+ } catch (e) { -+ console.log(`rollback error: ${e}`); -+ // TODO: better error handling -+ alert(e); -+ } -+ setWaiting(null); -+ }; -+ const rollbackAndReboot = (snap: Snapshot) => { -+ rollback(snap, _("Rolling back..."), true); -+ }; -+ const rollbackOnly = (snap: Snapshot) => { -+ rollback(snap, _("Rolling back..."), false); -+ }; -+ const activateAndReboot = (snap: Snapshot) => { -+ rollback(snap, _("Activating..."), true); -+ }; -+ const activateOnly = (snap: Snapshot) => { -+ rollback(snap, _("Activating..."), false); -+ }; -+ const actions = (item: Snapshot): JSX.Element[] | undefined => { -+ if (item.old) { -+ return [ -+ { -+ rollbackOnly(item); -+ }} -+ > -+ {_("Rollback without Reboot")} -+ , -+ ]; -+ } -+ if (!item.active && !item.old) { -+ return [ -+ { -+ activateOnly(item); -+ }} -+ > -+ {_("Activate without Reboot")} -+ , -+ ]; -+ } -+ return undefined; -+ }; -+ return ( -+ -+ -+ { -+ setExpanded(!expanded); -+ }} -+ isExpanded={expanded} -+ /> -+ -+ #{item.number} -+ , -+ -+ {item.description} -+ , -+ -+ -+ {timeformat.distanceToNow(item.date, false)} -+ -+ , -+ -+ {item.active && ( -+ -+ )} -+ {item.default && } -+ , -+ -+ {!item.active && !item.old && ( -+ -+ )} -+ {item.old && ( -+ -+ )} -+ , -+ ]} -+ /> -+ -+ {actions(item) && ( -+ ) => ( -+ { -+ setMenuOpen(!menuOpen); -+ }} -+ isExpanded={menuOpen} -+ > -+ -+ -+ )} -+ popperProps={{ -+ position: DropdownPosition.right, -+ }} -+ > -+ {actions(item)} -+ -+ )} -+ -+ -+ -+ More details about selected snapshot More details about selected -+ snapshot More details about selected snapshot More details about -+ selected snapshot -+ -+ -+ ); - }; - - export default SnapshotItem; -diff --git a/src/components/StatusPanel.tsx b/src/components/StatusPanel.tsx -index 6c4cf69..1836fa6 100644 ---- a/src/components/StatusPanel.tsx -+++ b/src/components/StatusPanel.tsx -@@ -21,19 +21,19 @@ - import cockpit from "cockpit"; - import React, { useEffect } from "react"; - import { -- Card, -- CardBody, -- CardTitle, -- List, -- ListItem, -- Tooltip, -+ Card, -+ CardBody, -+ CardTitle, -+ List, -+ ListItem, -+ Tooltip, - } from "@patternfly/react-core"; - import { -- CheckCircleIcon, -- ExclamationCircleIcon, -- ExclamationTriangleIcon, -- InfoCircleIcon, -- PendingIcon, -+ CheckCircleIcon, -+ ExclamationCircleIcon, -+ ExclamationTriangleIcon, -+ InfoCircleIcon, -+ PendingIcon, - } from "@patternfly/react-icons"; - - import "./StatusPanel.scss"; -@@ -44,109 +44,109 @@ import type { Snapshot } from "@/tukit"; - const _ = cockpit.gettext; - - type StatusPanelProps = { -- updates: Update[]; -- waiting: string | null | boolean; -- status: Status[]; -- setStatus: (status: Status[]) => void; -- updatesError: string | null; -- snapshots: Snapshot[]; -+ updates: Update[]; -+ waiting: string | null | boolean; -+ status: Status[]; -+ setStatus: (status: Status[]) => void; -+ updatesError: string | null; -+ snapshots: Snapshot[]; - }; - - const StatusPanel = ({ -- waiting, -- status, -- setStatus, -- updates, -- updatesError, -- snapshots, -+ waiting, -+ status, -+ setStatus, -+ updates, -+ updatesError, -+ snapshots, - }: StatusPanelProps) => { -- // update page status -- useEffect(() => { -- if (waiting) { -- setStatus([ -- { -- type: "", -- key: "wait", -- title: waiting, -- details: { icon: "pending" }, -- }, -- ]); -- return; -- } -- const s: Status[] = []; -- if (updatesError) { -- s.push({ -- key: "updates-error", -- type: "error", -- title: updatesError, -- }); -- } -- if (snapshots.length > 0 && !snapshots[0].active) { -- s.push({ -- key: "new-snapshot", -- type: "info", -- title: cockpit.format( -- _("New snapshot #$1 available: $0"), -- snapshots[0].description, -- snapshots[0].number, -- ), -- }); -- } -- if (updates.length > 0) { -- const security_updates = updates.filter((u) => u.category === "security"); -- const [t, msg] = -- security_updates.length > 0 -- ? (["warning", _("Security updates available")] as const) -- : (["info", _("Updates available")] as const); -- s.push({ -- key: "updates", -- type: t, -- title: msg, -- }); -- } -- // no status? it's good! -- if (s.length === 0) { -- s.push({ -- type: "", -- key: "system-ok", -- title: _("System is up to date"), -- details: { icon: "check" }, -- }); -- } -- setStatus(s); -- }, [waiting, snapshots, updates, updatesError, setStatus]); -+ // update page status -+ useEffect(() => { -+ if (waiting) { -+ setStatus([ -+ { -+ type: "", -+ key: "wait", -+ title: waiting, -+ details: { icon: "pending" }, -+ }, -+ ]); -+ return; -+ } -+ const s: Status[] = []; -+ if (updatesError) { -+ s.push({ -+ key: "updates-error", -+ type: "error", -+ title: updatesError, -+ }); -+ } -+ if (snapshots.length > 0 && !snapshots[0].active) { -+ s.push({ -+ key: "new-snapshot", -+ type: "info", -+ title: cockpit.format( -+ _("New snapshot #$1 available: $0"), -+ snapshots[0].description, -+ snapshots[0].number, -+ ), -+ }); -+ } -+ if (updates.length > 0) { -+ const security_updates = updates.filter((u) => u.category === "security"); -+ const [t, msg] = -+ security_updates.length > 0 -+ ? (["warning", _("Security updates available")] as const) -+ : (["info", _("Updates available")] as const); -+ s.push({ -+ key: "updates", -+ type: t, -+ title: msg, -+ }); -+ } -+ // no status? it's good! -+ if (s.length === 0) { -+ s.push({ -+ type: "", -+ key: "system-ok", -+ title: _("System is up to date"), -+ details: { icon: "check" }, -+ }); -+ } -+ setStatus(s); -+ }, [waiting, snapshots, updates, updatesError, setStatus]); - -- const icon = (s: Status) => { -- const i = s.details?.icon || s.type; -- const c = `tukit-status-${i}`; -- if (i === "error") return ; -- if (i === "warning") return ; -- if (i === "check") return ; -- if (i === "pending") return ; -- return ; -- }; -- return ( -- -- {_("Status")} -- -- -- {status.map((s) => ( -- -- -- {s.title} -- -- -- ))} -- -- -- -- ); -+ const icon = (s: Status) => { -+ const i = s.details?.icon || s.type; -+ const c = `tukit-status-${i}`; -+ if (i === "error") return ; -+ if (i === "warning") return ; -+ if (i === "check") return ; -+ if (i === "pending") return ; -+ return ; -+ }; -+ return ( -+ -+ {_("Status")} -+ -+ -+ {status.map((s) => ( -+ -+ -+ {s.title} -+ -+ -+ ))} -+ -+ -+ -+ ); - }; - - export default StatusPanel; -diff --git a/src/components/UpdatesItem.tsx b/src/components/UpdatesItem.tsx -index 1aa159c..9e1b856 100644 ---- a/src/components/UpdatesItem.tsx -+++ b/src/components/UpdatesItem.tsx -@@ -19,35 +19,35 @@ - */ - - import cockpit from "cockpit"; --import type React from "react"; --import { useState } from "react"; -+// biome-ignore lint/style/useImportType: this is not used as a type -+import React, { useState } from "react"; - import { -- Button, -- DataList, -- DataListItem, -- DataListToggle, -- DataListItemRow, -- DataListItemCells, -- DataListCell, -- DataListAction, -- DataListContent, -- Dropdown, -- DropdownItem, -- Label, -- Modal, -- ModalVariant, -- Tooltip, -- DropdownList, -- type MenuToggleElement, -- MenuToggle, -+ Button, -+ DataList, -+ DataListItem, -+ DataListToggle, -+ DataListItemRow, -+ DataListItemCells, -+ DataListCell, -+ DataListAction, -+ DataListContent, -+ Dropdown, -+ DropdownItem, -+ Label, -+ Modal, -+ ModalVariant, -+ Tooltip, -+ DropdownList, -+ type MenuToggleElement, -+ MenuToggle, - } from "@patternfly/react-core"; - import { DropdownPosition } from "@patternfly/react-core/deprecated"; - import { -- BugIcon, -- ExclamationTriangleIcon, -- InfoCircleIcon, -- PackageIcon, -- EllipsisVIcon, -+ BugIcon, -+ ExclamationTriangleIcon, -+ InfoCircleIcon, -+ PackageIcon, -+ EllipsisVIcon, - } from "@patternfly/react-icons"; - import { transactionsProxy } from "../tukit"; - import { type Update, categoryProps, severityProps } from "../update"; -@@ -58,313 +58,313 @@ import "./UpdatesItem.scss"; - const _ = cockpit.gettext; - - const UpdateDetails = ({ u }: { u: Update }) => { -- const [dialogVisible, setDialogVisible] = useState(false); -- return ( -- <> -- -- {dialogVisible && ( -- setDialogVisible(false)} -- actions={[ -- , -- ]} -- > -- -- {Object.entries(u).map(([k, v]) => ( -- -- -- -- {k} -- , -- -- -- {v ? linkify(v) : ""} -- -- , -- ]} -- /> -- -- -- ))} -- -- -- )} -- -- ); -+ const [dialogVisible, setDialogVisible] = useState(false); -+ return ( -+ <> -+ -+ {dialogVisible && ( -+ setDialogVisible(false)} -+ actions={[ -+ , -+ ]} -+ > -+ -+ {Object.entries(u).map(([k, v]) => ( -+ -+ -+ -+ {k} -+ , -+ -+ -+ {v ? linkify(v) : ""} -+ -+ , -+ ]} -+ /> -+ -+ -+ ))} -+ -+ -+ )} -+ -+ ); - }; - - const UpdateItem = ({ u }: { u: Update }) => { -- const icon = () => { -- if (u.kind === "package") return ; -- if (u.kind === "patch") return ; -- return ; -- }; -- const updateCells = (u: Update) => { -- // package -- if (u.kind === "package") -- return [ -- -- -- {u.name} -- -- , -- -- -- {u.edition} -- -- , -- -- -- {u["edition-old"]} -- -- , -- ]; -- // patch -- return [ -- -- -- {u.name} -- -- , -- -- {u.summary} -- , -- -- -- -- , -- ]; -- }; -- return ( -- -- -- -- {icon()} -- , -- ...updateCells(u), -- ]} -- /> -- -- -- -- -- -- ); -+ const icon = () => { -+ if (u.kind === "package") return ; -+ if (u.kind === "patch") return ; -+ return ; -+ }; -+ const updateCells = (u: Update) => { -+ // package -+ if (u.kind === "package") -+ return [ -+ -+ -+ {u.name} -+ -+ , -+ -+ -+ {u.edition} -+ -+ , -+ -+ -+ {u["edition-old"]} -+ -+ , -+ ]; -+ // patch -+ return [ -+ -+ -+ {u.name} -+ -+ , -+ -+ {u.summary} -+ , -+ -+ -+ -+ , -+ ]; -+ }; -+ return ( -+ -+ -+ -+ {icon()} -+ , -+ ...updateCells(u), -+ ]} -+ /> -+ -+ -+ -+ -+ -+ ); - }; - - type UpdatesItemProps = { -- updates: Update[]; -- waiting: string | null | boolean; -- setWaiting: (waiting: string | null) => void; -- setError: (error: string | null) => void; -- setDirty: (dirty: boolean) => void; -+ updates: Update[]; -+ waiting: string | null | boolean; -+ setWaiting: (waiting: string | null) => void; -+ setError: (error: string | null) => void; -+ setDirty: (dirty: boolean) => void; - }; - - const UpdatesItem = ({ -- updates, -- setError, -- setDirty, -- setWaiting, -- waiting, -+ updates, -+ setError, -+ setDirty, -+ setWaiting, -+ waiting, - }: UpdatesItemProps) => { -- const [expanded, setExpanded] = useState(false); -- const [menuOpen, setMenuOpen] = useState(false); -+ const [expanded, setExpanded] = useState(false); -+ const [menuOpen, setMenuOpen] = useState(false); - -- const update = async (reboot: boolean) => { -- setWaiting(_("Installing updates...")); -- const proxy = transactionsProxy(); -+ const update = async (reboot: boolean) => { -+ setWaiting(_("Installing updates...")); -+ const proxy = transactionsProxy(); - -- function finishedHandler( -- ev: CustomEvent, -- snapID: string, -- exitcode: number, -- output: string, -- ) { -- console.log("command finished"); -- console.log(`exit ${exitcode}`); -- console.log(`output: ${output}`); -- setWaiting(null); -- setDirty(true); -- // run once (no {once: true} support in cockpit's event_mixin) -- proxy.removeEventListener("CommandExecuted", finishedHandler); -- } -+ function finishedHandler( -+ ev: CustomEvent, -+ snapID: string, -+ exitcode: number, -+ output: string, -+ ) { -+ console.log("command finished"); -+ console.log(`exit ${exitcode}`); -+ console.log(`output: ${output}`); -+ setWaiting(null); -+ setDirty(true); -+ // run once (no {once: true} support in cockpit's event_mixin) -+ proxy.removeEventListener("CommandExecuted", finishedHandler); -+ } - -- function errorHandler( -- ev: CustomEvent, -- snapID: string, -- exitcode: number, -- output: string, -- ) { -- console.log(`exit ${exitcode}`); -- console.log(`output: ${output}`); -- setError( -- cockpit.format( -- _("Error installing updates: command exited with code $0"), -- exitcode, -- ), -- ); -- setWaiting(null); -- // don't reload to not loose the error status -- // setDirty(true); -- // run once (no {once: true} support in cockpit's event_mixin) -- proxy.removeEventListener("Error", errorHandler); -- } -+ function errorHandler( -+ ev: CustomEvent, -+ snapID: string, -+ exitcode: number, -+ output: string, -+ ) { -+ console.log(`exit ${exitcode}`); -+ console.log(`output: ${output}`); -+ setError( -+ cockpit.format( -+ _("Error installing updates: command exited with code $0"), -+ exitcode, -+ ), -+ ); -+ setWaiting(null); -+ // don't reload to not loose the error status -+ // setDirty(true); -+ // run once (no {once: true} support in cockpit's event_mixin) -+ proxy.removeEventListener("Error", errorHandler); -+ } - -- proxy.wait(async () => { -- try { -- // You can find the "CommandExecuted" | "Error" events and `ExecuteAndReboot` function from here: -- // https://github.com/openSUSE/transactional-update/blob/master/dbus/org.opensuse.tukit.Transaction.xml -- proxy.addEventListener("CommandExecuted", finishedHandler); -- proxy.addEventListener("Error", errorHandler); -- const cmd = "zypper --non-interactive up"; -- const rebootMethod = reboot ? "systemd" : "none"; -- // base: default, active or number of base snapshot -- // reboot: auto, rebootmgr, systemd, kured, kexec, none -- const snapID = await proxy.ExecuteAndReboot( -- "default", -- cmd, -- rebootMethod, -- ); -- console.log(`new snapshot: ${snapID}`); -- } catch (_e) { -- const e = _e as Error; -- setWaiting(null); -- // this is "early" error returned directly from method -- setError(e.toString()); -- } -- }); -- }; -+ proxy.wait(async () => { -+ try { -+ // You can find the "CommandExecuted" | "Error" events and `ExecuteAndReboot` function from here: -+ // https://github.com/openSUSE/transactional-update/blob/master/dbus/org.opensuse.tukit.Transaction.xml -+ proxy.addEventListener("CommandExecuted", finishedHandler); -+ proxy.addEventListener("Error", errorHandler); -+ const cmd = "zypper --non-interactive up"; -+ const rebootMethod = reboot ? "systemd" : "none"; -+ // base: default, active or number of base snapshot -+ // reboot: auto, rebootmgr, systemd, kured, kexec, none -+ const snapID = await proxy.ExecuteAndReboot( -+ "default", -+ cmd, -+ rebootMethod, -+ ); -+ console.log(`new snapshot: ${snapID}`); -+ } catch (_e) { -+ const e = _e as Error; -+ setWaiting(null); -+ // this is "early" error returned directly from method -+ setError(e.toString()); -+ } -+ }); -+ }; - -- const updateAndReboot = () => { -- update(true); -- }; -- const updateOnly = () => { -- update(false); -- }; -+ const updateAndReboot = () => { -+ update(true); -+ }; -+ const updateOnly = () => { -+ update(false); -+ }; - -- return ( -- -- -- { -- setExpanded(!expanded); -- }} -- isExpanded={expanded} -- /> -- -- -- , -- -- -- {cockpit.format(_("Available updates ($0)"), updates.length)} -- -- , -- -- -- , -- ]} -- /> -- -- ) => ( -- { -- setMenuOpen(!menuOpen); -- }} -- isExpanded={menuOpen} -- > -- -- -- )} -- popperProps={{ -- position: DropdownPosition.right, -- }} -- > -- -- { -- updateOnly(); -- }} -- > -- {_("Update without Reboot")} -- -- -- -- -- -- -- -- {updates.map((u: Update) => ( -- -- ))} -- -- -- -- ); -+ return ( -+ -+ -+ { -+ setExpanded(!expanded); -+ }} -+ isExpanded={expanded} -+ /> -+ -+ -+ , -+ -+ -+ {cockpit.format(_("Available updates ($0)"), updates.length)} -+ -+ , -+ -+ -+ , -+ ]} -+ /> -+ -+ ) => ( -+ { -+ setMenuOpen(!menuOpen); -+ }} -+ isExpanded={menuOpen} -+ > -+ -+ -+ )} -+ popperProps={{ -+ position: DropdownPosition.right, -+ }} -+ > -+ -+ { -+ updateOnly(); -+ }} -+ > -+ {_("Update without Reboot")} -+ -+ -+ -+ -+ -+ -+ -+ {updates.map((u: Update) => ( -+ -+ ))} -+ -+ -+ -+ ); - }; - - export default UpdatesItem; -diff --git a/src/components/UpdatesPanel.tsx b/src/components/UpdatesPanel.tsx -index 79ed5f1..9654933 100644 ---- a/src/components/UpdatesPanel.tsx -+++ b/src/components/UpdatesPanel.tsx -@@ -22,22 +22,22 @@ import * as timeformat from "timeformat"; - import React, { useState, useEffect } from "react"; - import XMLParser, { type XMLElement } from "react-xml-parser"; - import { -- Button, -- Card, -- CardBody, -- CardTitle, -- Flex, -- FlexItem, -- Text, -+ Button, -+ Card, -+ CardBody, -+ CardTitle, -+ Flex, -+ FlexItem, -+ Text, - } from "@patternfly/react-core"; - import { -- kindPrio, -- categoryPrio, -- severityPrio, -- type KindValues, -- type CategoryValues, -- type SeverityValues, -- type Update, -+ kindPrio, -+ categoryPrio, -+ severityPrio, -+ type KindValues, -+ type CategoryValues, -+ type SeverityValues, -+ type Update, - } from "../update"; - import { decodeHTMLEntities } from "../utils"; - -@@ -45,148 +45,149 @@ const _ = cockpit.gettext; - - // simplify structure of XMLParser return values - const flattenXMLData = (data: XMLElement, prefix = ""): Update => { -- // TODO: safer parsing to make sure we actually have a valid Update object -- const values: any = {}; -- // NOTE: this will make {"": value} for root item -- if (data.value) values[prefix] = data.value; -- if (prefix !== "") prefix = `${prefix}_`; -- for (const key of Object.keys(data.attributes)) { -- values[`${prefix}${key}`] = data.attributes[key]; -- } -- for (const child of data.children) { -- Object.assign(values, flattenXMLData(child, `${prefix}${child.name}`)); -- } -- return values as Update; -+ // TODO: safer parsing to make sure we actually have a valid Update object -+ // eslint-disable-next-line @typescript-eslint/no-explicit-any -+ const values: any = {}; -+ // NOTE: this will make {"": value} for root item -+ if (data.value) values[prefix] = data.value; -+ if (prefix !== "") prefix = `${prefix}_`; -+ for (const key of Object.keys(data.attributes)) { -+ values[`${prefix}${key}`] = data.attributes[key]; -+ } -+ for (const child of data.children) { -+ Object.assign(values, flattenXMLData(child, `${prefix}${child.name}`)); -+ } -+ return values as Update; - }; - - type UpdatesPanelProps = { -- dirty: boolean; -- adminAccess: boolean; -- waiting: string | null; -- setUpdates: (updates: Update[]) => void; -- setError: (error: string | null) => void; -- setWaiting: (waiting: string | null) => void; -- setDirty: (dirty: boolean) => void; -+ dirty: boolean; -+ adminAccess: boolean; -+ waiting: string | null; -+ setUpdates: (updates: Update[]) => void; -+ setError: (error: string | null) => void; -+ setWaiting: (waiting: string | null) => void; -+ setDirty: (dirty: boolean) => void; - }; - - const UpdatesPanel = ({ -- adminAccess, -- setUpdates, -- setError, -- dirty, -- setDirty, -- waiting, -- setWaiting, -+ adminAccess, -+ setUpdates, -+ setError, -+ dirty, -+ setDirty, -+ waiting, -+ setWaiting, - }: UpdatesPanelProps) => { -- const [lastCheck, setLastCheck] = useState(); -+ const [lastCheck, setLastCheck] = useState(); - -- const getUpdates = async (arg: string) => { -- const cmd = ["zypper", "-q", "--xmlout", arg]; -- let out: string = await cockpit.spawn(cmd, { -- superuser: "require", -- err: "message", // TODO: check if it works as expected -- }); -- // convert line breaks in descriptions to not loose them during -- // xml parsing -- out = out.replaceAll(/[^<]+<\/description>/g, (d) => -- d -- // only keep newlines followed by space (indent) or bullet char -- .replaceAll(/\n([-* ])/g, (_, fc) => ` ${fc}`) -- // escape percentage sign to avoid URI decoding problems in XMLParser -- .replaceAll(/%/g, "%25"), -- ); -- const xml = new XMLParser().parseFromString(out); -- return xml -- .getElementsByTagName("update") -- .map((e) => flattenXMLData(e)) -- .map((u) => { -- return { -- ...u, -- description: decodeHTMLEntities(u.description), -- }; -- }); -- }; -- const updateKey = ( -- u: Update, -- ): [KindValues, CategoryValues, SeverityValues, string] => { -- return [ -- kindPrio[u.kind], -- categoryPrio[u.category], -- severityPrio[u.severity], -- u.name, -- ]; -- }; -- const updateCmp = (a: Update, b: Update) => { -- const ak = updateKey(a); -- const bk = updateKey(b); -- if (ak > bk) return 1; -- if (ak < bk) return -1; -- return 0; -- }; -- const checkUpdates = async () => { -- if (!dirty) { -- return; -- } -- setDirty(false); -+ const getUpdates = async (arg: string) => { -+ const cmd = ["zypper", "-q", "--xmlout", arg]; -+ let out: string = await cockpit.spawn(cmd, { -+ superuser: "require", -+ err: "message", // TODO: check if it works as expected -+ }); -+ // convert line breaks in descriptions to not loose them during -+ // xml parsing -+ out = out.replaceAll(/[^<]+<\/description>/g, (d) => -+ d -+ // only keep newlines followed by space (indent) or bullet char -+ .replaceAll(/\n([-* ])/g, (_, fc) => ` ${fc}`) -+ // escape percentage sign to avoid URI decoding problems in XMLParser -+ .replaceAll(/%/g, "%25"), -+ ); -+ const xml = new XMLParser().parseFromString(out); -+ return xml -+ .getElementsByTagName("update") -+ .map((e) => flattenXMLData(e)) -+ .map((u) => { -+ return { -+ ...u, -+ description: decodeHTMLEntities(u.description), -+ }; -+ }); -+ }; -+ const updateKey = ( -+ u: Update, -+ ): [KindValues, CategoryValues, SeverityValues, string] => { -+ return [ -+ kindPrio[u.kind], -+ categoryPrio[u.category], -+ severityPrio[u.severity], -+ u.name, -+ ]; -+ }; -+ const updateCmp = (a: Update, b: Update) => { -+ const ak = updateKey(a); -+ const bk = updateKey(b); -+ if (ak > bk) return 1; -+ if (ak < bk) return -1; -+ return 0; -+ }; -+ const checkUpdates = async () => { -+ if (!dirty) { -+ return; -+ } -+ setDirty(false); - -- setError(null); -- setWaiting(_("Checking for updates...")); -- try { -- const refcmd = ["zypper", "ref"]; -- await cockpit.spawn(refcmd, { superuser: true, err: "message" }); -- const updates = Array.prototype.concat( -- await getUpdates("list-updates"), -- await getUpdates("list-patches"), -- ); -- updates.sort(updateCmp); -- setUpdates(updates); -- setLastCheck(new Date()); -- } catch (_e) { -- const e: Error = _e as Error; -- setError( -- cockpit.format(_("Error checking for updates: $0"), e.toString()), -- ); -- } -- setWaiting(null); -- }; -+ setError(null); -+ setWaiting(_("Checking for updates...")); -+ try { -+ const refcmd = ["zypper", "ref"]; -+ await cockpit.spawn(refcmd, { superuser: true, err: "message" }); -+ const updates = Array.prototype.concat( -+ await getUpdates("list-updates"), -+ await getUpdates("list-patches"), -+ ); -+ updates.sort(updateCmp); -+ setUpdates(updates); -+ setLastCheck(new Date()); -+ } catch (_e) { -+ const e: Error = _e as Error; -+ setError( -+ cockpit.format(_("Error checking for updates: $0"), e.toString()), -+ ); -+ } -+ setWaiting(null); -+ }; - -- useEffect(() => { -- // auto-check updates on initial load -- checkUpdates(); -- // TODO: FIX! -- // eslint-disable-next-line react-hooks/exhaustive-deps -- }, [dirty]); -- return ( -- -- {_("Updates")} -- -- -- -- {lastCheck && ( -- -- {cockpit.format( -- _("Last Checked: $0"), -- timeformat.dateTime(lastCheck), -- )} -- -- )} -- -- -- -- -- -- -- -- ); -+ useEffect(() => { -+ // auto-check updates on initial load -+ checkUpdates(); -+ // TODO: FIX! -+ // eslint-disable-next-line react-hooks/exhaustive-deps -+ }, [dirty]); -+ return ( -+ -+ {_("Updates")} -+ -+ -+ -+ {lastCheck && ( -+ -+ {cockpit.format( -+ _("Last Checked: $0"), -+ timeformat.dateTime(lastCheck), -+ )} -+ -+ )} -+ -+ -+ -+ -+ -+ -+ -+ ); - }; - - export default UpdatesPanel; -diff --git a/src/index.ts b/src/index.ts -index f8955b1..af745ed 100644 ---- a/src/index.ts -+++ b/src/index.ts -@@ -15,7 +15,7 @@ - * along with Cockpit; If not, see . - */ - --import "../pkg/lib/patternfly/patternfly-5-cockpit.scss"; -+import "patternfly/patternfly-5-cockpit.scss"; - - import React from "react"; - import { createRoot } from "react-dom/client"; -@@ -28,15 +28,15 @@ import Application from "./app"; - * out of the dist/index.js and since it will maintain the order of the imported CSS, - * the overrides will be correctly in the end of our stylesheet. - */ --import "../pkg/lib/patternfly/patternfly-5-overrides.scss"; -+import "patternfly/patternfly-5-overrides.scss"; - import "./app.scss"; - /* - console.log(foo("foo")) - */ - document.addEventListener("DOMContentLoaded", () => { -- const container = document.getElementById("app"); -- if (container) { -- const root = createRoot(container); -- root.render(React.createElement(Application, {})); -- } -+ const container = document.getElementById("app"); -+ if (container) { -+ const root = createRoot(container); -+ root.render(React.createElement(Application, {})); -+ } - }); -diff --git a/src/manifest.json b/src/manifest.json -index 9857830..522ba2b 100644 ---- a/src/manifest.json -+++ b/src/manifest.json -@@ -1,18 +1,18 @@ - { -- "name": "updates", -- "requires": { -- "cockpit": "251" -- }, -- "tools": { -- "index": { -- "label": "Software Updates", -- "docs": [ -- { -- "label": "Transactional Update", -- "url": "https://documentation.suse.com/sle-micro/html/SLE-Micro-all/article-administration-slemicro.html#sec-transactional-udate" -- } -- ] -- } -- }, -- "preload": ["index"] -+ "name": "updates", -+ "requires": { -+ "cockpit": "251" -+ }, -+ "tools": { -+ "index": { -+ "label": "Software Updates", -+ "docs": [ -+ { -+ "label": "Transactional Update", -+ "url": "https://documentation.suse.com/sle-micro/html/SLE-Micro-all/article-administration-slemicro.html#sec-transactional-udate" -+ } -+ ] -+ } -+ }, -+ "preload": ["index"] - } -diff --git a/src/status.ts b/src/status.ts -index eb9486c..316daa9 100644 ---- a/src/status.ts -+++ b/src/status.ts -@@ -19,26 +19,26 @@ - */ - - const statusSeverity = { -- "": -1, -- info: 0, -- warning: 1, -- error: 2, -+ "": -1, -+ info: 0, -+ warning: 1, -+ error: 2, - } as const; - - type StatusSeverity = keyof typeof statusSeverity; - - export type Status = { -- key: "wait" | "updates" | "updates-error" | "new-snapshot" | "system-ok"; -- title: string | null | boolean; -- type: StatusSeverity; -- details?: { icon: string }; -+ key: "wait" | "updates" | "updates-error" | "new-snapshot" | "system-ok"; -+ title: string | null | boolean; -+ type: StatusSeverity; -+ details?: { icon: string }; - }; - - export const mostSevereStatus = (statuses: Status[]): Status | null => { -- if (statuses.length === 0) return null; -- let ret = statuses[0]; -- for (const status of statuses) { -- if (statusSeverity[status.type] > statusSeverity[ret.type]) ret = status; -- } -- return ret; -+ if (statuses.length === 0) return null; -+ let ret = statuses[0]; -+ for (const status of statuses) { -+ if (statusSeverity[status.type] > statusSeverity[ret.type]) ret = status; -+ } -+ return ret; - }; -diff --git a/src/tukit.ts b/src/tukit.ts -index 4aab7b2..c5a1e8f 100644 ---- a/src/tukit.ts -+++ b/src/tukit.ts -@@ -24,146 +24,146 @@ import { stringToBool } from "./utils"; - - let _dbusClient: DbusClient; - const dbusClient = (): DbusClient => { -- if (!_dbusClient) { -- _dbusClient = cockpit.dbus("org.opensuse.tukit", { -- bus: "system", -- superuser: "try", -- }); -- } -- return _dbusClient; -+ if (!_dbusClient) { -+ _dbusClient = cockpit.dbus("org.opensuse.tukit", { -+ bus: "system", -+ superuser: "try", -+ }); -+ } -+ return _dbusClient; - }; - - type SnapshotRecordKeys = T extends `${infer K},${infer Rest}` -- ? K | SnapshotRecordKeys -- : T extends `${infer K}` -- ? K -- : never; -+ ? K | SnapshotRecordKeys -+ : T extends `${infer K}` -+ ? K -+ : never; - - export type SnapshotRecord = { -- [k in SnapshotRecordKeys]: string; -+ [k in SnapshotRecordKeys]: string; - }; - - type SnapshotMethods = { -- List: (args: T) => SnapshotRecord[]; -+ List: (args: T) => SnapshotRecord[]; - }; - - let _snapshotProxy: Proxy; - const snapshotsProxy = () => { -- if (!_snapshotProxy) { -- _snapshotProxy = dbusClient().proxy( -- "org.opensuse.tukit.Snapshot", -- "/org/opensuse/tukit/Snapshot", -- ); -- } -- return _snapshotProxy; -+ if (!_snapshotProxy) { -+ _snapshotProxy = dbusClient().proxy( -+ "org.opensuse.tukit.Snapshot", -+ "/org/opensuse/tukit/Snapshot", -+ ); -+ } -+ return _snapshotProxy; - }; - - type SnapIn = { -- number: string; -- default: string; -- active: string; -- date: string; -- description: string; -+ number: string; -+ default: string; -+ active: string; -+ date: string; -+ description: string; - }; - - export type Snapshot = { -- number: number; -- default: boolean; -- active: boolean; -- date: Date; -- description: string; -- old?: boolean; -+ number: number; -+ default: boolean; -+ active: boolean; -+ date: Date; -+ description: string; -+ old?: boolean; - }; - - const createSnapshot = (snap: SnapIn): Snapshot => { -- if (Array.isArray(snap)) { -- const [number, dflt, active, date, description] = snap; -- return { -- number: Number.parseInt(number), -- default: stringToBool(dflt), -- active: stringToBool(active), -- date: new Date(`${date}Z`), // dates are UTC but have no marking -- description, -- }; -- } -- return { -- number: Number.parseInt(snap.number), -- default: stringToBool(snap.default), -- active: stringToBool(snap.active), -- date: new Date(`${snap.date}Z`), // dates are UTC but have no marking -- description: snap.description, -- }; -+ if (Array.isArray(snap)) { -+ const [number, dflt, active, date, description] = snap; -+ return { -+ number: Number.parseInt(number), -+ default: stringToBool(dflt), -+ active: stringToBool(active), -+ date: new Date(`${date}Z`), // dates are UTC but have no marking -+ description, -+ }; -+ } -+ return { -+ number: Number.parseInt(snap.number), -+ default: stringToBool(snap.default), -+ active: stringToBool(snap.active), -+ date: new Date(`${snap.date}Z`), // dates are UTC but have no marking -+ description: snap.description, -+ }; - }; - - type TransactionEvent = "TransactionOpened" | "CommandExecuted" | "Error"; - - type TransactionEventCallback = -- T extends "TransactionOpened" -- ? (event: CustomEvent, snapshot: string) => void -- : T extends "Error" -- ? ( -- event: CustomEvent, -- snapshot: string, -- returncode: number, -- output: string, -- ) => void -- : T extends "CommandExecuted" -- ? ( -- event: CustomEvent, -- snapshot: string, -- returncode: number, -- output: string, -- ) => void -- : never; -+ T extends "TransactionOpened" -+ ? (event: CustomEvent, snapshot: string) => void -+ : T extends "Error" -+ ? ( -+ event: CustomEvent, -+ snapshot: string, -+ returncode: number, -+ output: string, -+ ) => void -+ : T extends "CommandExecuted" -+ ? ( -+ event: CustomEvent, -+ snapshot: string, -+ returncode: number, -+ output: string, -+ ) => void -+ : never; - - // https://kubic.opensuse.org/documentation/man-pages/transactional-update.conf.5.html#REBOOT_METHOD - type TransactionReboot = -- | "auto" -- | "cured" -- | "rebootmgr" -- | "systemd" -- | "kexec" -- | "notify" -- | "none"; -+ | "auto" -+ | "cured" -+ | "rebootmgr" -+ | "systemd" -+ | "kexec" -+ | "notify" -+ | "none"; - type TransactionsMethods = { -- addEventListener: ( -- event: T, -- callback: TransactionEventCallback, -- ) => void; -- removeEventListener: ( -- event: T, -- callback: TransactionEventCallback, -- ) => void; -- ExecuteAndReboot: ( -- base: "default" | "base" | string, -- command: string, -- rebootmethod: TransactionReboot, -- ) => Promise; -+ addEventListener: ( -+ event: T, -+ callback: TransactionEventCallback, -+ ) => void; -+ removeEventListener: ( -+ event: T, -+ callback: TransactionEventCallback, -+ ) => void; -+ ExecuteAndReboot: ( -+ base: "default" | "base" | string, -+ command: string, -+ rebootmethod: TransactionReboot, -+ ) => Promise; - }; - - let _transactionsProxy: Proxy; - const transactionsProxy = () => { -- if (!_transactionsProxy) { -- _transactionsProxy = dbusClient().proxy( -- "org.opensuse.tukit.Transaction", -- "/org/opensuse/tukit/Transaction", -- ); -- } -- return _transactionsProxy; -+ if (!_transactionsProxy) { -+ _transactionsProxy = dbusClient().proxy( -+ "org.opensuse.tukit.Transaction", -+ "/org/opensuse/tukit/Transaction", -+ ); -+ } -+ return _transactionsProxy; - }; - - let _tukitdProxy: ServiceProxy; - const tukitdProxy = () => { -- if (!_tukitdProxy) { -- _tukitdProxy = serviceProxy("tukitd"); -- } -- return _tukitdProxy; -+ if (!_tukitdProxy) { -+ _tukitdProxy = serviceProxy("tukitd"); -+ } -+ return _tukitdProxy; - }; - - export { -- dbusClient, -- snapshotsProxy, -- createSnapshot, -- transactionsProxy, -- tukitdProxy, -+ dbusClient, -+ snapshotsProxy, -+ createSnapshot, -+ transactionsProxy, -+ tukitdProxy, - }; -diff --git a/src/update.tsx b/src/update.tsx -index 8ee8ebf..d43cc82 100644 ---- a/src/update.tsx -+++ b/src/update.tsx -@@ -20,9 +20,9 @@ - - import React from "react"; - import { -- ExclamationCircleIcon, -- ExclamationTriangleIcon, -- InfoCircleIcon, -+ ExclamationCircleIcon, -+ ExclamationTriangleIcon, -+ InfoCircleIcon, - } from "@patternfly/react-icons"; - - type ConstValues = T[keyof T]; -@@ -31,9 +31,9 @@ export const kindPrio = { patch: 0, package: 1 } as const; - export type KindKeys = keyof typeof kindPrio; - export type KindValues = ConstValues; - export const categoryPrio = { -- security: 0, -- recommended: 1, -- feature: 2, -+ security: 0, -+ recommended: 1, -+ feature: 2, - } as const; - export type CategoryKeys = keyof typeof categoryPrio; - export type CategoryValues = ConstValues; -@@ -42,14 +42,14 @@ export type SeverityKeys = keyof typeof severityPrio; - export type SeverityValues = ConstValues; - - export type Update = { -- kind: KindKeys; -- category: CategoryKeys; -- severity: SeverityKeys; -- name: string; -- description: string | null; -- edition: string; -- "edition-old": string; -- summary: string; -+ kind: KindKeys; -+ category: CategoryKeys; -+ severity: SeverityKeys; -+ name: string; -+ description: string | null; -+ edition: string; -+ "edition-old": string; -+ summary: string; - }; - - const prioLabelColor = { 0: "red", 1: "blue", 2: "auto" } as const; -@@ -61,23 +61,23 @@ type Undefined = T extends E ? undefined : T; - type FAKE_LABEL_TYPE2 = Undefined; - - const prioIcon = { -- 0: , -- 1: , -- 2: , -+ 0: , -+ 1: , -+ 2: , - } as const; - - // remove _disabled to enable props - const prioProps = (p: keyof typeof prioLabelColor) => { -- return { -- color: prioLabelColor[p] as unknown as FAKE_LABEL_TYPE2< -- typeof prioLabelColor -- >, -- icon_disabled: prioIcon[p], -- variant: "outline" as const, -- }; -+ return { -+ color: prioLabelColor[p] as unknown as FAKE_LABEL_TYPE2< -+ typeof prioLabelColor -+ >, -+ icon_disabled: prioIcon[p], -+ variant: "outline" as const, -+ }; - }; - - export const categoryProps = (u: { category: CategoryKeys }) => -- prioProps(categoryPrio[u.category]); -+ prioProps(categoryPrio[u.category]); - export const severityProps = (u: { severity: SeverityKeys }) => -- prioProps(severityPrio[u.severity]); -+ prioProps(severityPrio[u.severity]); -diff --git a/src/utils.tsx b/src/utils.tsx -index b879d03..d9eb242 100644 ---- a/src/utils.tsx -+++ b/src/utils.tsx -@@ -20,43 +20,43 @@ - import React, { type Key } from "react"; - - export const stringToBool = (s: string) => { -- return ["yes", "true", "1"].includes(s.toLowerCase()); -+ return ["yes", "true", "1"].includes(s.toLowerCase()); - }; - - // decode selected named html entities found in zypper's xml output and generic - // numeric ones. - // see: https://github.com/openSUSE/libzypp/blob/master/zypp-core/parser/xml/XmlEscape.cc - export const decodeHTMLEntities = (s: string | null): string | null => { -- if (!s) return null; -+ if (!s) return null; - -- const entities = { lt: "<", gt: ">", amp: "&", apos: "'", quot: '"' }; -- return s -- .replaceAll(/&#(\d+);/g, (_, num) => String.fromCharCode(num)) -- .replaceAll( -- /&([a-z]+);/g, -- (m, e: keyof typeof entities) => entities[e] || m, -- ); -+ const entities = { lt: "<", gt: ">", amp: "&", apos: "'", quot: '"' }; -+ return s -+ .replaceAll(/&#(\d+);/g, (_, num) => String.fromCharCode(num)) -+ .replaceAll( -+ /&([a-z]+);/g, -+ (m, e: keyof typeof entities) => entities[e] || m, -+ ); - }; - - const tagURLPrefix = { -- bsc: "https://bugzilla.suse.com/show_bug.cgi?id=", -- boo: "https://bugzilla.opensuse.org/show_bug.cgi?id=", -+ bsc: "https://bugzilla.suse.com/show_bug.cgi?id=", -+ boo: "https://bugzilla.opensuse.org/show_bug.cgi?id=", - }; - // convert tagged items found in text to clickable links - export const linkify = (s: string) => { -- const parts = s.split(/((?:bsc|boo)#\d+)/); -- return parts.map((p) => { -- const m = p.match(/(bsc|boo)#(\d+)/); -- if (m === null) return p; -- return ( -- -- {m[0]} -- -- ); -- }); -+ const parts = s.split(/((?:bsc|boo)#\d+)/); -+ return parts.map((p) => { -+ const m = p.match(/(bsc|boo)#(\d+)/); -+ if (m === null) return p; -+ return ( -+ -+ {m[0]} -+ -+ ); -+ }); - }; -diff --git a/tsconfig.json b/tsconfig.json -index eb645a3..59efb8d 100644 ---- a/tsconfig.json -+++ b/tsconfig.json -@@ -1,24 +1,24 @@ - { -- "compilerOptions": { -- "target": "es6", -- "module": "es6", -- "strict": true, -- "importHelpers": true, -- "moduleResolution": "node", -- "experimentalDecorators": true, -- "esModuleInterop": true, -- "allowSyntheticDefaultImports": true, -- "sourceMap": true, -- "skipLibCheck": true, -- "baseUrl": ".", -- "jsx": "react", -- "allowJs": true, -- "paths": { -- "@/*": ["src/*"], -- "*": ["types/*"] -- }, -- "lib": ["dom", "dom.iterable", "ES2021.String", "ES2021"] -- }, -- "include": ["src/*.ts", "src/*.tsx", "src/**/*.ts", "src/**/*.tsx"], -- "exclude": ["node_modules", "types"] -+ "compilerOptions": { -+ "target": "es6", -+ "module": "es6", -+ "strict": true, -+ "importHelpers": true, -+ "moduleResolution": "node", -+ "experimentalDecorators": true, -+ "esModuleInterop": true, -+ "allowSyntheticDefaultImports": true, -+ "sourceMap": true, -+ "skipLibCheck": true, -+ "baseUrl": ".", -+ "jsx": "react", -+ "allowJs": true, -+ "paths": { -+ "@/*": ["src/*"], -+ "*": ["types/*"] -+ }, -+ "lib": ["dom", "dom.iterable", "ES2021.String", "ES2021"] -+ }, -+ "include": ["src/*.ts", "src/*.tsx", "src/**/*.ts", "src/**/*.tsx"], -+ "exclude": ["node_modules", "types"] - } -diff --git a/types/cockpit.d.ts b/types/cockpit.d.ts -index c497028..1c8e98c 100644 ---- a/types/cockpit.d.ts -+++ b/types/cockpit.d.ts -@@ -1,112 +1,112 @@ - // https://github.com/cockpit-project/cockpit/pull/13214 - - declare module "cockpit" { -- type Func1 = (arg: T) => R; -- -- type DbusOptions = { -- bus: "session" | "user" | "system" | "none"; -- address?: string; -- superuser?: "require" | "try"; -- track?: boolean; -- }; -- -- type Fail = { -- message: string; -- problem?: string; -- }; -- -- type SpawnFail = Fail & { -- exit_status?: number; -- exit_signal?: number; -- }; -- -- type ErrorConfig = "message" | "out" | "ignore" | "pty"; -- -- /** -- * https://github.com/cockpit-project/cockpit/blob/main/src/bridge/cockpitrouter.c#L615-L621 -- * @deprecated boolean is tecnically valid but it's not well documented -- */ -- type SuperUserBool = boolean; -- type Superuser = "require" | "try" | SuperUserBool; -- type ProblemCodes = -- | "access-denied" -- | "authentication-failed" -- | "internal-error" -- | "no-cockpit" -- | "no-session" -- | "not-found" -- | "terminated" -- | "timeout" -- | "unknown-hostkey" -- | "no-forwarding"; -- -- type SpawnConfig = { -- err?: ErrorConfig; -- binary?: boolean; -- directory?: string; -- host?: string; -- environ?: string[]; -- pty?: boolean; -- batch?: boolean; -- latency?: number; -- superuser?: Superuser; -- }; -- -- type ProxyMethods any>> = { -- [k in keyof T]: T[k]; -- }; -- -- type Proxy any> = {}> = -- ProxyMethods & { -- client: DbusClient; -- path: string; -- iface: string; -- valid: boolean; -- data: Object; -- wait: (callback: () => void) => Promise; -- }; -- -- type DbusEvent = "close" | "owner"; -- -- type DBusEventCallback = T extends "close" -- ? (event: CustomEvent, options: { problem?: string }) => void -- : T extends "owner" -- ? (event: CustomEvent, owner?: string | null) => void -- : never; -- -- interface DbusClient { -- wait: (callback: () => void) => Promise; -- close(problem?: string): void; -- proxy any> = {}>( -- interface?: string, -- path?: string, -- ): Proxy; -- proxies(interface?: string[], path?: string[]): Proxy[]; -- addEventListener( -- event: T, -- callback: DBusEventCallback, -- ): void; -- options: DbusOptions; -- unique_name: string; -- } -- -- interface ClosableWithProblem { -- close(problem?: ProblemCodes): void; -- } -- -- interface SpawnPromise extends Promise, ClosableWithProblem { -- stream(callback: Func1): SpawnPromise; -- input(data?: string | Uint8Array, stream?: boolean): SpawnPromise; -- } -- -- function gettext(text: string): string; -- function gettext(context: string, text: string): string; -- function format(template: string, args: string | Object): string; -- function format(template: string, ...args: string[] | Object[]): string; -- function dbus(name: string, options?: DbusOptions): DbusClient; -- function jump(todo: string, host?: string | null): void; -- function script(execute: string, args: SpawnConfig): SpawnPromise; -- function spawn(args: string | string[], options?: SpawnConfig): SpawnPromise; -- -- const transport: { host?: string | null }; -+ type Func1 = (arg: T) => R; -+ -+ type DbusOptions = { -+ bus: "session" | "user" | "system" | "none"; -+ address?: string; -+ superuser?: "require" | "try"; -+ track?: boolean; -+ }; -+ -+ type Fail = { -+ message: string; -+ problem?: string; -+ }; -+ -+ type SpawnFail = Fail & { -+ exit_status?: number; -+ exit_signal?: number; -+ }; -+ -+ type ErrorConfig = "message" | "out" | "ignore" | "pty"; -+ -+ /** -+ * https://github.com/cockpit-project/cockpit/blob/main/src/bridge/cockpitrouter.c#L615-L621 -+ * @deprecated boolean is tecnically valid but it's not well documented -+ */ -+ type SuperUserBool = boolean; -+ type Superuser = "require" | "try" | SuperUserBool; -+ type ProblemCodes = -+ | "access-denied" -+ | "authentication-failed" -+ | "internal-error" -+ | "no-cockpit" -+ | "no-session" -+ | "not-found" -+ | "terminated" -+ | "timeout" -+ | "unknown-hostkey" -+ | "no-forwarding"; -+ -+ type SpawnConfig = { -+ err?: ErrorConfig; -+ binary?: boolean; -+ directory?: string; -+ host?: string; -+ environ?: string[]; -+ pty?: boolean; -+ batch?: boolean; -+ latency?: number; -+ superuser?: Superuser; -+ }; -+ -+ type ProxyMethods any>> = { -+ [k in keyof T]: T[k]; -+ }; -+ -+ type Proxy any> = {}> = -+ ProxyMethods & { -+ client: DbusClient; -+ path: string; -+ iface: string; -+ valid: boolean; -+ data: Object; -+ wait: (callback: () => void) => Promise; -+ }; -+ -+ type DbusEvent = "close" | "owner"; -+ -+ type DBusEventCallback = T extends "close" -+ ? (event: CustomEvent, options: { problem?: string }) => void -+ : T extends "owner" -+ ? (event: CustomEvent, owner?: string | null) => void -+ : never; -+ -+ interface DbusClient { -+ wait: (callback: () => void) => Promise; -+ close(problem?: string): void; -+ proxy any> = {}>( -+ interface?: string, -+ path?: string, -+ ): Proxy; -+ proxies(interface?: string[], path?: string[]): Proxy[]; -+ addEventListener( -+ event: T, -+ callback: DBusEventCallback, -+ ): void; -+ options: DbusOptions; -+ unique_name: string; -+ } -+ -+ interface ClosableWithProblem { -+ close(problem?: ProblemCodes): void; -+ } -+ -+ interface SpawnPromise extends Promise, ClosableWithProblem { -+ stream(callback: Func1): SpawnPromise; -+ input(data?: string | Uint8Array, stream?: boolean): SpawnPromise; -+ } -+ -+ function gettext(text: string): string; -+ function gettext(context: string, text: string): string; -+ function format(template: string, args: string | Object): string; -+ function format(template: string, ...args: string[] | Object[]): string; -+ function dbus(name: string, options?: DbusOptions): DbusClient; -+ function jump(todo: string, host?: string | null): void; -+ function script(execute: string, args: SpawnConfig): SpawnPromise; -+ function spawn(args: string | string[], options?: SpawnConfig): SpawnPromise; -+ -+ const transport: { host?: string | null }; - } -diff --git a/types/hooks.d.ts b/types/hooks.d.ts -index a656971..b38d4f7 100644 ---- a/types/hooks.d.ts -+++ b/types/hooks.d.ts -@@ -1,5 +1,5 @@ - import type { Superuser } from "superuser"; - - declare module "hooks" { -- function useEvent(obj: Superuser, event: "changed"): void; -+ function useEvent(obj: Superuser, event: "changed"): void; - } -diff --git a/types/notifications.d.ts b/types/notifications.d.ts -index fe2b558..8bc69a8 100644 ---- a/types/notifications.d.ts -+++ b/types/notifications.d.ts -@@ -2,11 +2,11 @@ - import type { Status } from "@/status"; - - declare module "notifications" { -- class PageStatus { -- constructor(); -- get(page: string, host: string): string | null; -- set_own(status: Status | null): void; -- } -+ class PageStatus { -+ constructor(); -+ get(page: string, host: string): string | null; -+ set_own(status: Status | null): void; -+ } - -- const page_status: PageStatus; -+ const page_status: PageStatus; - } -diff --git a/types/react-xml-parser.d.ts b/types/react-xml-parser.d.ts -index 8fd59ab..b502cc3 100644 ---- a/types/react-xml-parser.d.ts -+++ b/types/react-xml-parser.d.ts -@@ -1,19 +1,19 @@ - // Copied and modified from https://github.com/matanshiloah/xml-parser/pull/42 - - declare module "react-xml-parser" { -- interface XMLElement { -- name: string; -- attributes: { -- [name: string]: string; -- }; -- value: string; -- children: XMLElement[]; -- } -+ interface XMLElement { -+ name: string; -+ attributes: { -+ [name: string]: string; -+ }; -+ value: string; -+ children: XMLElement[]; -+ } - -- export default class XMLParser { -- constructor(); -- public parseFromString(string: string): XMLParser; -- public toString(xml: XMLElement): string; -- public getElementsByTagName(tagName: string): XMLElement[]; -- } -+ export default class XMLParser { -+ constructor(); -+ public parseFromString(string: string): XMLParser; -+ public toString(xml: XMLElement): string; -+ public getElementsByTagName(tagName: string): XMLElement[]; -+ } - } -diff --git a/types/service.d.ts b/types/service.d.ts -index f3a2975..88b452e 100644 ---- a/types/service.d.ts -+++ b/types/service.d.ts -@@ -1,18 +1,18 @@ - declare module "service" { -- type ServiceProxy = { -- exists: boolean | null; -- state: -- | "starting" -- | "running" -- | "stopping" -- | "stopped" -- | "failed" -- | null -- | undefined; -- enabled: boolean | null | undefined; -- wait: (callback: () => void) => Promise; -+ type ServiceProxy = { -+ exists: boolean | null; -+ state: -+ | "starting" -+ | "running" -+ | "stopping" -+ | "stopped" -+ | "failed" -+ | null -+ | undefined; -+ enabled: boolean | null | undefined; -+ wait: (callback: () => void) => Promise; - -- /* -+ /* - start: start, - stop: stop, - restart: restart, -@@ -22,7 +22,7 @@ declare module "service" { - disable: disable, - - getRunJournal: getRunJournal, */ -- }; -+ }; - -- function proxy(name: string, kind?: string): ServiceProxy; -+ function proxy(name: string, kind?: string): ServiceProxy; - } -diff --git a/types/superuser.d.ts b/types/superuser.d.ts -index ff13f07..a31dfa6 100644 ---- a/types/superuser.d.ts -+++ b/types/superuser.d.ts -@@ -1,8 +1,8 @@ - declare module "superuser" { -- type Superuser = { -- allowed: boolean | null; -- reload_page_on_change(): void; -- }; -+ type Superuser = { -+ allowed: boolean | null; -+ reload_page_on_change(): void; -+ }; - -- const superuser: Superuser; -+ const superuser: Superuser; - } -diff --git a/types/timeformat.d.ts b/types/timeformat.d.ts -index 9f0a6d4..b0fb400 100644 ---- a/types/timeformat.d.ts -+++ b/types/timeformat.d.ts -@@ -1,14 +1,14 @@ - declare module "timeformat" { -- function dateFormatLang(): string; -- function formatter(options?: Intl.DateTimeFormatOptions | undefined): string; -- function time(t: Date | number): string; -- function timeSeconds(t: Date | number): string; -- function date(t: Date | number): string; -- function dateShort(t: Date | number): string; -- function dateTime(t: Date | number): string; -- function dateTimeSeconds(t: Date | number): string; -- function dateTimeNoYear(t: Date | number): string; -- function weekdayDate(t: Date | number): string; -- function dateShortFormat(): string; -- function distanceToNow(t: Date | number, addSuffix?: boolean): string; -+ function dateFormatLang(): string; -+ function formatter(options?: Intl.DateTimeFormatOptions | undefined): string; -+ function time(t: Date | number): string; -+ function timeSeconds(t: Date | number): string; -+ function date(t: Date | number): string; -+ function dateShort(t: Date | number): string; -+ function dateTime(t: Date | number): string; -+ function dateTimeSeconds(t: Date | number): string; -+ function dateTimeNoYear(t: Date | number): string; -+ function weekdayDate(t: Date | number): string; -+ function dateShortFormat(): string; -+ function distanceToNow(t: Date | number, addSuffix?: boolean): string; - } -diff --git a/webpack.config.js b/webpack.config.js -deleted file mode 100644 -index 8831788..0000000 ---- a/webpack.config.js -+++ /dev/null -@@ -1,154 +0,0 @@ --const fs = require("node:fs"); --const path = require("node:path"); -- --const copy = require("copy-webpack-plugin"); --const extract = require("mini-css-extract-plugin"); --const TerserJSPlugin = require("terser-webpack-plugin"); --const CssMinimizerPlugin = require("css-minimizer-webpack-plugin"); --const CompressionPlugin = require("compression-webpack-plugin"); --const CockpitPoPlugin = require("./src/lib/cockpit-po-plugin"); --const CockpitRsyncPlugin = require("./src/lib/cockpit-rsync-plugin"); -- --/* A standard nodejs and webpack pattern */ --const production = process.env.NODE_ENV === "production"; -- --// Obtain package name from package.json --const packageJson = JSON.parse(fs.readFileSync("package.json")); -- --// Non-JS files which are copied verbatim to dist/ --const copy_files = ["./src/index.html", "./src/manifest.json"]; -- --const plugins = [ -- new copy({ patterns: copy_files }), -- new extract({ filename: "[name].css" }), -- -- new CockpitPoPlugin(), -- new CockpitRsyncPlugin({ dest: packageJson.name }), --]; -- --/* Only minimize when in production mode */ --if (production) { -- plugins.unshift( -- new CompressionPlugin({ -- test: /\.(js|html|css)$/, -- deleteOriginalAssets: true, -- }), -- ); --} -- --module.exports = { -- mode: production ? "production" : "development", -- resolve: { -- // extensions:['.ts','.tsx'], -- extensions: ["*", ".js", ".jsx", ".tsx", ".ts"], -- modules: ["node_modules", path.resolve(__dirname, "src/lib")], -- alias: { "font-awesome": "font-awesome-sass/assets/stylesheets" }, -- }, -- resolveLoader: { -- modules: ["node_modules", path.resolve(__dirname, "src/lib")], -- }, -- watchOptions: { -- ignored: /node_modules/, -- }, -- entry: { -- index: "./src/index.ts", -- }, -- // cockpit.js gets included via