From da9a8dfa41c31d694b56703c1c9efc9a62041648 Mon Sep 17 00:00:00 2001 From: Ludmila Fialova Date: Wed, 5 Nov 2025 16:46:28 +0100 Subject: [PATCH 01/25] OO-50008 focus order for Search field fixed --- .../bits/src/lib/search/search.component.html | 26 +++++++++---------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/packages/bits/src/lib/search/search.component.html b/packages/bits/src/lib/search/search.component.html index 867350f40..8793a3c04 100644 --- a/packages/bits/src/lib/search/search.component.html +++ b/packages/bits/src/lib/search/search.component.html @@ -1,5 +1,18 @@
+
-
From fac3ecd5cb7e94eff4bea82c2214b9545d61a441 Mon Sep 17 00:00:00 2001 From: Ludmila Fialova Date: Tue, 11 Nov 2025 22:22:38 +0100 Subject: [PATCH 02/25] OO-52367 Spacebar opens Search popup --- packages/bits/src/lib/popup/popup-toggle.directive.ts | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/packages/bits/src/lib/popup/popup-toggle.directive.ts b/packages/bits/src/lib/popup/popup-toggle.directive.ts index 02f08862d..818c25978 100644 --- a/packages/bits/src/lib/popup/popup-toggle.directive.ts +++ b/packages/bits/src/lib/popup/popup-toggle.directive.ts @@ -48,4 +48,15 @@ export class PopupToggleDirective { this.toggle.emit(event); } } + + @HostListener("keydown", ["$event"]) + public handleKeydown(event: KeyboardEvent): void { + if (this.isDisabled || this.disabled) { + return; + } + if (event.key === " " || event.key === "Enter") { + event.preventDefault(); + this.toggle.emit(event); + } + } } From 384ab71e7a56c7343ba2ca88266280648f9fbe9d Mon Sep 17 00:00:00 2001 From: Ludmila Fialova Date: Thu, 13 Nov 2025 16:38:48 +0100 Subject: [PATCH 03/25] OO-52367 Esc and Space works --- packages/bits/src/lib/search/search.component.ts | 2 ++ 1 file changed, 2 insertions(+) diff --git a/packages/bits/src/lib/search/search.component.ts b/packages/bits/src/lib/search/search.component.ts index 629f99164..6071cfd13 100644 --- a/packages/bits/src/lib/search/search.component.ts +++ b/packages/bits/src/lib/search/search.component.ts @@ -141,6 +141,8 @@ export class SearchComponent implements IFilterPub, OnDestroy { public onKeyup(event: KeyboardEvent): void { if (event.key === "Enter") { this.onSearch(); + } else if (event.key === "Escape" || event.key === "Esc") { + this.onCancel(); } } From 929951ecd91db97d5bd1ab0455b7736281b52a06 Mon Sep 17 00:00:00 2001 From: Ludmila Fialova Date: Mon, 17 Nov 2025 14:59:29 +0100 Subject: [PATCH 04/25] OO-52365 labels and controls --- .../bits/src/lib/search/search.component.html | 26 +++-- .../bits/src/lib/search/search.component.ts | 98 ++++++++++++------- 2 files changed, 81 insertions(+), 43 deletions(-) diff --git a/packages/bits/src/lib/search/search.component.html b/packages/bits/src/lib/search/search.component.html index 8793a3c04..5d38da4a1 100644 --- a/packages/bits/src/lib/search/search.component.html +++ b/packages/bits/src/lib/search/search.component.html @@ -1,23 +1,33 @@
+
diff --git a/packages/bits/src/lib/search/search.component.ts b/packages/bits/src/lib/search/search.component.ts index 88c079042..647005033 100644 --- a/packages/bits/src/lib/search/search.component.ts +++ b/packages/bits/src/lib/search/search.component.ts @@ -36,7 +36,7 @@ import { IFilter, IFilterPub } from "../../services/data-source/public-api"; selector: "nui-search", host: { class: "nui-search", - role: "search", + role: "searchbox", }, templateUrl: "./search.component.html", styleUrls: ["./search.component.less"], From e8b290ccb78d02155f589cfee56d9550e69c31a7 Mon Sep 17 00:00:00 2001 From: Ludmila Fialova Date: Tue, 18 Nov 2025 00:39:59 +0100 Subject: [PATCH 06/25] NUI-6263 Recent searches accessible by Tab key --- .../repeat/repeat-item/repeat-item.component.less | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/packages/bits/src/lib/repeat/repeat-item/repeat-item.component.less b/packages/bits/src/lib/repeat/repeat-item/repeat-item.component.less index d6a199311..0c7724331 100644 --- a/packages/bits/src/lib/repeat/repeat-item/repeat-item.component.less +++ b/packages/bits/src/lib/repeat/repeat-item/repeat-item.component.less @@ -14,12 +14,14 @@ body > nui-repeat-item.cdk-drag-preview .nui-repeat-item { .nui .nui-repeat-item { &:active, - &:focus { + &:focus, + &:focus-within { outline: none; + .setCssVariable(background-color, nui-color-bg-transparent-hover); } &:hover { - .setCssVariable(background-color, nui-color-bg-secondary); + .setCssVariable(background-color, nui-color-bg-transparent-hover); } &__content { @@ -77,8 +79,9 @@ body > nui-repeat-item.cdk-drag-preview .nui-repeat-item { &.nui-repeat-item--clickable { &:not(.nui-repeat-item--selected) { - &:hover { - .setCssVariable(background-color, nui-color-bg-secondary); + &:hover, + &:focus { + .setCssVariable(background-color, nui-color-bg-transparent-hover); } } } @@ -88,7 +91,8 @@ body > nui-repeat-item.cdk-drag-preview .nui-repeat-item { .setCssVariable(color, nui-color-text-default); &.nui-repeat-item--clickable { - &:hover { + &:hover, + &:focus { .setCssVariable(background-color, nui-color-selected-hover); } } From 2431d79f0a386c9f13b15d9d722745b13a592a6b Mon Sep 17 00:00:00 2001 From: Ludmila Fialova Date: Thu, 27 Nov 2025 12:39:55 +0100 Subject: [PATCH 07/25] OO-55517 icon component role --- packages/bits/src/lib/icon/icon.component.ts | 71 +++++++++++++++++++- 1 file changed, 69 insertions(+), 2 deletions(-) diff --git a/packages/bits/src/lib/icon/icon.component.ts b/packages/bits/src/lib/icon/icon.component.ts index 3bb4c4106..f0fddc2c1 100644 --- a/packages/bits/src/lib/icon/icon.component.ts +++ b/packages/bits/src/lib/icon/icon.component.ts @@ -43,8 +43,9 @@ import { IconData, IconStatus } from "./types"; changeDetection: ChangeDetectionStrategy.OnPush, host: { class: "nui-icon-wrapper", - role: "img", - "[attr.aria-label]": "icon + ' icon'", + "[attr.role]": "computedRole", + "[attr.aria-hidden]": "computedAriaHidden", + "[attr.aria-label]": "computedAriaLabel", }, styleUrls: ["./icon.component.less"], encapsulation: ViewEncapsulation.None, @@ -75,6 +76,19 @@ export class IconComponent implements OnChanges { childStatus: IconStatus; @Input() icon: string; + /** + * Marks the icon as purely decorative. Decorative icons are hidden from assistive technologies. + */ + @Input() decorative?: boolean; + /** + * Accessible name for a meaningful icon. Ignored if `decorative` is true or empty. + */ + @Input() ariaLabel?: string; + /** + * Optional explicit role override. Constrained to 'img' | 'presentation' | null. + * If omitted, role is inferred from `decorative` and `ariaLabel`. + */ + @Input() explicitRole?: "img" | "presentation" | null; public resultingSvg: SafeHtml; @@ -155,6 +169,59 @@ export class IconComponent implements OnChanges { } } + // --- Accessibility computed properties --- + private get isDecorative(): boolean { + // Treat undefined as true for backward-compatible default decorative behavior + return this.decorative !== false; + } + + get computedRole(): string | null { + if (this.isDecorative) { + return "presentation"; + } + const label = this.normalizedAriaLabel; + if (this.explicitRole) { + if (this.explicitRole === "img") { + return label ? "img" : null; // avoid img without name + } + if (this.explicitRole === "presentation") { + return "presentation"; + } + } + return label ? "img" : null; + } + + get computedAriaHidden(): string | null { + // Hide if decorative or no semantic role (no label) to keep DOM clean for AT + return this.isDecorative || this.computedRole !== "img" ? "true" : null; + } + + get computedAriaLabel(): string | null { + if (this.computedRole !== "img") { + return null; + } + const base = this.normalizedAriaLabel; + if (!base) { + return null; + } + const statusParts: string[] = []; + if (this.status) { + statusParts.push(this.status.toLowerCase()); + } + if (this.childStatus) { + statusParts.push(this.childStatus.toLowerCase()); + } + return statusParts.length ? `${base} ${statusParts.join(" ")}` : base; + } + + private get normalizedAriaLabel(): string | null { + if (this.isDecorative) { + return null; + } + const trimmed = (this.ariaLabel || "").trim(); + return trimmed.length ? trimmed : null; + } + private generateIcon() { this.iconData = this.iconService.getIconData(this.icon); this.iconFound = !!this.iconData; From 3b4287588d933781ded5cacc4a258907e23ef227 Mon Sep 17 00:00:00 2001 From: Ludmila Fialova Date: Thu, 27 Nov 2025 12:49:27 +0100 Subject: [PATCH 08/25] OO-55517 image component role --- .../bits/src/lib/image/image.component.ts | 49 +++++++++++++++++-- 1 file changed, 46 insertions(+), 3 deletions(-) diff --git a/packages/bits/src/lib/image/image.component.ts b/packages/bits/src/lib/image/image.component.ts index e9b165827..14c9b5cdf 100644 --- a/packages/bits/src/lib/image/image.component.ts +++ b/packages/bits/src/lib/image/image.component.ts @@ -55,8 +55,9 @@ import { UtilService } from "../../services/util.service"; styleUrls: ["./image.component.less"], encapsulation: ViewEncapsulation.None, host: { - role: "img", - "[attr.aria-label]": "hasAlt ? null : description || imageName", + "[attr.role]": "computedRole", + "[attr.aria-hidden]": "computedAriaHidden", + "[attr.aria-label]": "computedAriaLabel", }, standalone: false, }) @@ -100,6 +101,12 @@ export class ImageComponent implements OnInit, AfterViewInit, OnChanges { public imageName: string | null; public hasAlt: boolean; + /** + * Optional ARIA role override. Constrained to 'img' | 'presentation' | null. + * If omitted, role is inferred from presence of alt/label. + */ + @Input() public role?: "img" | "presentation" | null; + constructor( private logger: LoggerService, private utilService: UtilService, @@ -129,13 +136,49 @@ export class ImageComponent implements OnInit, AfterViewInit, OnChanges { } } + // --- Accessibility computed properties --- + public get computedRole(): string | null { + // If explicit role provided, honor it with safeguards + if (this.role) { + if (this.role === "img") { + return this.normalizedLabel ? "img" : null; // avoid img without name + } + if (this.role === "presentation") { + return "presentation"; + } + } + // Infer role: if we have alt (hasAlt) or a label, expose as img; otherwise presentation + if (this.hasAlt || this.normalizedLabel) { + return "img"; + } + return "presentation"; + } + + public get computedAriaHidden(): string | null { + // Hide when not exposed as img + return this.computedRole !== "img" ? "true" : null; + } + + public get computedAriaLabel(): string | null { + // Only provide aria-label when role is img and there's no native alt + if (this.computedRole !== "img" || this.hasAlt) { + return null; + } + return this.normalizedLabel; + } + + private get normalizedLabel(): string | null { + const candidate = (this.description || this.imageName || "").trim(); + return candidate.length ? candidate : null; + } + public ngAfterViewInit(): void { if (this.autoFill) { try { const svg = this.el.nativeElement.querySelector("svg"); svg.setAttribute("width", "100%"); svg.setAttribute("height", "100%"); - } catch (e) { + } catch { console.warn( "Can't apply 'autoFill' to nui-image, because it is only applicable to SVG type of images" ); From 46423db4e33be1a714e6fb2b4836eb5f2a036a9a Mon Sep 17 00:00:00 2001 From: Ludmila Fialova Date: Thu, 27 Nov 2025 13:08:47 +0100 Subject: [PATCH 09/25] OO-55517 computeA11yForGraphic --- .../src/functions/a11y-graphics.util.spec.ts | 96 +++++++++++++++++++ .../bits/src/functions/a11y-graphics.util.ts | 73 ++++++++++++++ packages/bits/src/lib/icon/icon.component.ts | 60 ++++-------- .../bits/src/lib/image/image.component.ts | 42 +++----- 4 files changed, 201 insertions(+), 70 deletions(-) create mode 100644 packages/bits/src/functions/a11y-graphics.util.spec.ts create mode 100644 packages/bits/src/functions/a11y-graphics.util.ts diff --git a/packages/bits/src/functions/a11y-graphics.util.spec.ts b/packages/bits/src/functions/a11y-graphics.util.spec.ts new file mode 100644 index 000000000..a84b9d1f6 --- /dev/null +++ b/packages/bits/src/functions/a11y-graphics.util.spec.ts @@ -0,0 +1,96 @@ +import { + computeA11yForGraphic, + A11yGraphicOptions, +} from "./a11y-graphics.util"; + +/** Helper to reduce repetition */ +function run(opts: A11yGraphicOptions) { + return computeA11yForGraphic(opts); +} + +describe("computeA11yForGraphic", () => { + it("defaults to decorative when decorative undefined", () => { + const r = run({ label: "Server" }); + expect(r.role).toBe("presentation"); + expect(r.ariaHidden).toBe("true"); + expect(r.ariaLabel).toBeNull(); + }); + + it("returns img role and aria-label when decorative=false and label present", () => { + const r = run({ + decorative: false, + label: "Warning", + statusParts: ["critical"], + }); + expect(r.role).toBe("img"); + expect(r.ariaHidden).toBeNull(); + expect(r.ariaLabel).toBe("Warning critical"); + }); + + it("omits aria-label when hasAlt=true even if label present", () => { + const r = run({ decorative: false, label: "Logo", hasAlt: true }); + expect(r.role).toBe("img"); + expect(r.ariaHidden).toBeNull(); + expect(r.ariaLabel).toBeNull(); + }); + + it("explicitRole=img without label yields null role (no empty img)", () => { + const r = run({ decorative: false, explicitRole: "img", label: "" }); + expect(r.role).toBeNull(); + expect(r.ariaHidden).toBe("true"); + expect(r.ariaLabel).toBeNull(); + }); + + it("explicitRole=img with label respected", () => { + const r = run({ + decorative: false, + explicitRole: "img", + label: "Battery", + }); + expect(r.role).toBe("img"); + expect(r.ariaHidden).toBeNull(); + expect(r.ariaLabel).toBe("Battery"); + }); + + it("explicitRole=presentation overrides label", () => { + const r = run({ + decorative: false, + explicitRole: "presentation", + label: "Chart", + }); + expect(r.role).toBe("presentation"); + expect(r.ariaHidden).toBe("true"); + expect(r.ariaLabel).toBeNull(); + }); + + it("infers img when hasAlt true even without label", () => { + const r = run({ decorative: false, hasAlt: true }); + expect(r.role).toBe("img"); + expect(r.ariaHidden).toBeNull(); + expect(r.ariaLabel).toBeNull(); + }); + + it("infers presentation when no alt and no label", () => { + const r = run({ decorative: false }); + expect(r.role).toBe("presentation"); + expect(r.ariaHidden).toBe("true"); + expect(r.ariaLabel).toBeNull(); + }); + + it("statusParts ignored if empty strings", () => { + const r = run({ + decorative: false, + label: "Node", + statusParts: ["", " ", null as any], + }); + expect(r.role).toBe("img"); + expect(r.ariaLabel).toBe("Node"); + }); + + it("decorative=true forces presentation regardless of label", () => { + const r = run({ decorative: true, label: "CPU" }); + expect(r.role).toBe("presentation"); + expect(r.ariaHidden).toBe("true"); + expect(r.ariaLabel).toBeNull(); + }); +}); diff --git a/packages/bits/src/functions/a11y-graphics.util.ts b/packages/bits/src/functions/a11y-graphics.util.ts new file mode 100644 index 000000000..2a8eb14f5 --- /dev/null +++ b/packages/bits/src/functions/a11y-graphics.util.ts @@ -0,0 +1,73 @@ +export interface A11yGraphicOptions { + decorative?: boolean; // undefined treated as true by caller if desired + explicitRole?: "img" | "presentation" | null; + label?: string | null; + hasAlt?: boolean; // true if native exists + statusParts?: string[]; // additional semantic qualifiers (statuses) +} + +export interface A11yGraphicResult { + role: string | null; + ariaHidden: string | null; + ariaLabel: string | null; +} + +/** + * Computes role, aria-hidden, and aria-label for graphics (icons/images) with consistent rules: + * - Decorative defaults to presentation + aria-hidden + * - role="img" only if a non-empty accessible name is available + * - Explicit role overrides are honored but guarded against invalid accessible name cases + */ +export function computeA11yForGraphic( + opts: A11yGraphicOptions +): A11yGraphicResult { + const decorative = opts.decorative !== false; // undefined => decorative + const normalizedLabel = normalizeLabel( + decorative ? null : opts.label ?? null + ); + const statusLabel = buildStatusLabel(normalizedLabel, opts.statusParts); + + let role: string | null = null; + if (decorative) { + role = "presentation"; + } else if (opts.explicitRole) { + if (opts.explicitRole === "img") { + role = normalizedLabel ? "img" : null; + } else if (opts.explicitRole === "presentation") { + role = "presentation"; + } + } else { + // Infer role from presence of alt or label + if (opts.hasAlt || normalizedLabel) { + role = "img"; + } else { + role = "presentation"; + } + } + + const ariaHidden = role !== "img" ? "true" : null; + + // Provide aria-label only if role is img, no native alt, and we have a label + const ariaLabel = role === "img" && !opts.hasAlt ? statusLabel : null; + + return { role, ariaHidden, ariaLabel }; +} + +function normalizeLabel(raw: string | null | undefined): string | null { + if (!raw) { + return null; + } + const trimmed = raw.trim(); + return trimmed.length ? trimmed : null; +} + +function buildStatusLabel( + base: string | null, + parts?: string[] +): string | null { + if (!base) { + return null; + } + const valid = (parts || []).map((p) => p?.trim()).filter((p) => !!p); + return valid.length ? `${base} ${valid.join(" ")}` : base; +} diff --git a/packages/bits/src/lib/icon/icon.component.ts b/packages/bits/src/lib/icon/icon.component.ts index f0fddc2c1..14a4f7b09 100644 --- a/packages/bits/src/lib/icon/icon.component.ts +++ b/packages/bits/src/lib/icon/icon.component.ts @@ -32,6 +32,7 @@ import isNil from "lodash/isNil"; import { IconService } from "./icon.service"; import { IconData, IconStatus } from "./types"; +import { computeA11yForGraphic } from "../../functions/a11y-graphics.util"; /** * ./../examples/index.html#/icon @@ -169,41 +170,8 @@ export class IconComponent implements OnChanges { } } - // --- Accessibility computed properties --- - private get isDecorative(): boolean { - // Treat undefined as true for backward-compatible default decorative behavior - return this.decorative !== false; - } - - get computedRole(): string | null { - if (this.isDecorative) { - return "presentation"; - } - const label = this.normalizedAriaLabel; - if (this.explicitRole) { - if (this.explicitRole === "img") { - return label ? "img" : null; // avoid img without name - } - if (this.explicitRole === "presentation") { - return "presentation"; - } - } - return label ? "img" : null; - } - - get computedAriaHidden(): string | null { - // Hide if decorative or no semantic role (no label) to keep DOM clean for AT - return this.isDecorative || this.computedRole !== "img" ? "true" : null; - } - - get computedAriaLabel(): string | null { - if (this.computedRole !== "img") { - return null; - } - const base = this.normalizedAriaLabel; - if (!base) { - return null; - } + // --- Accessibility via shared util --- + private get a11y() { const statusParts: string[] = []; if (this.status) { statusParts.push(this.status.toLowerCase()); @@ -211,15 +179,23 @@ export class IconComponent implements OnChanges { if (this.childStatus) { statusParts.push(this.childStatus.toLowerCase()); } - return statusParts.length ? `${base} ${statusParts.join(" ")}` : base; + return computeA11yForGraphic({ + decorative: this.decorative, + explicitRole: this.explicitRole, + label: this.ariaLabel || this.icon || null, + hasAlt: false, + statusParts, + }); } - private get normalizedAriaLabel(): string | null { - if (this.isDecorative) { - return null; - } - const trimmed = (this.ariaLabel || "").trim(); - return trimmed.length ? trimmed : null; + get computedRole(): string | null { + return this.a11y.role; + } + get computedAriaHidden(): string | null { + return this.a11y.ariaHidden; + } + get computedAriaLabel(): string | null { + return this.a11y.ariaLabel; } private generateIcon() { diff --git a/packages/bits/src/lib/image/image.component.ts b/packages/bits/src/lib/image/image.component.ts index 14c9b5cdf..b9eabb83b 100644 --- a/packages/bits/src/lib/image/image.component.ts +++ b/packages/bits/src/lib/image/image.component.ts @@ -44,6 +44,7 @@ import { IImagesPresetItem } from "./public-api"; import { imagesPresetToken } from "../../constants/images.constants"; import { LoggerService } from "../../services/log-service"; import { UtilService } from "../../services/util.service"; +import { computeA11yForGraphic } from "../../functions/a11y-graphics.util"; /** * ./../examples/index.html#/image @@ -137,39 +138,24 @@ export class ImageComponent implements OnInit, AfterViewInit, OnChanges { } // --- Accessibility computed properties --- - public get computedRole(): string | null { - // If explicit role provided, honor it with safeguards - if (this.role) { - if (this.role === "img") { - return this.normalizedLabel ? "img" : null; // avoid img without name - } - if (this.role === "presentation") { - return "presentation"; - } - } - // Infer role: if we have alt (hasAlt) or a label, expose as img; otherwise presentation - if (this.hasAlt || this.normalizedLabel) { - return "img"; - } - return "presentation"; + private get a11y() { + return computeA11yForGraphic({ + decorative: false, // images default to semantic unless lacking label/alt + explicitRole: this.role, + label: this.description || this.imageName || null, + hasAlt: this.hasAlt, + statusParts: undefined, + }); } + public get computedRole(): string | null { + return this.a11y.role; + } public get computedAriaHidden(): string | null { - // Hide when not exposed as img - return this.computedRole !== "img" ? "true" : null; + return this.a11y.ariaHidden; } - public get computedAriaLabel(): string | null { - // Only provide aria-label when role is img and there's no native alt - if (this.computedRole !== "img" || this.hasAlt) { - return null; - } - return this.normalizedLabel; - } - - private get normalizedLabel(): string | null { - const candidate = (this.description || this.imageName || "").trim(); - return candidate.length ? candidate : null; + return this.a11y.ariaLabel; } public ngAfterViewInit(): void { From 4e3d011f4ffc0e14b67c68f4ea0682a6fa1d9cf2 Mon Sep 17 00:00:00 2001 From: Ludmila Fialova Date: Wed, 14 Jan 2026 13:36:18 +0100 Subject: [PATCH 10/25] NUI-6263 compute-version-local script --- package.json | 2 +- packages/bits/package.json | 2 +- packages/bits/schematics/package.json | 2 +- packages/charts/package.json | 4 ++-- packages/dashboards/package.json | 8 ++++---- packages/dashboards/schematics/package.json | 2 +- 6 files changed, 10 insertions(+), 10 deletions(-) diff --git a/package.json b/package.json index ff69f3909..ac9f43b73 100644 --- a/package.json +++ b/package.json @@ -127,7 +127,7 @@ "trigger-pipeline-build-ci": "bash scripts/trigger-pipeline-build", "verify-ci": "bash scripts/verify-published" }, - "version": "19.0.0", + "version": "19.0.2-0", "workspaces": [ "packages/*" ] diff --git a/packages/bits/package.json b/packages/bits/package.json index 8ce910555..de6811431 100644 --- a/packages/bits/package.json +++ b/packages/bits/package.json @@ -136,6 +136,6 @@ "visual:watch": "npx watch \"yarn run visual:base\" src demo spec --watch=1" }, "typings": "public_api.d.ts", - "version": "19.0.0", + "version": "19.0.2-0", "packageManager": "yarn@1.22.18" } diff --git a/packages/bits/schematics/package.json b/packages/bits/schematics/package.json index 2e601255a..79f8f850d 100644 --- a/packages/bits/schematics/package.json +++ b/packages/bits/schematics/package.json @@ -1,7 +1,7 @@ { "name": "nova-schematics", "license": "Apache-2.0", - "version": "19.0.0", + "version": "19.0.2-0", "scripts": { "assemble": "run-s build copy:json copy:data test copy:dist", "build": "tsc -p tsconfig.json", diff --git a/packages/charts/package.json b/packages/charts/package.json index 9c2b9bf5c..e612b9e52 100644 --- a/packages/charts/package.json +++ b/packages/charts/package.json @@ -37,7 +37,7 @@ "license": "Apache-2.0", "name": "@nova-ui/charts", "dependencies": { - "@nova-ui/bits": "~19.0.0" + "@nova-ui/bits": "~19.0.2-0" }, "peerDependencies": { "@types/d3": "^5.0.0", @@ -102,5 +102,5 @@ "visual:gui": "yarn run visual:base -c gui", "visual:serve": "yarn run visual:base -c serve" }, - "version": "19.0.0" + "version": "19.0.2-0" } \ No newline at end of file diff --git a/packages/dashboards/package.json b/packages/dashboards/package.json index d872bb7a4..29e2a9891 100644 --- a/packages/dashboards/package.json +++ b/packages/dashboards/package.json @@ -33,8 +33,8 @@ "license": "Apache-2.0", "name": "@nova-ui/dashboards", "dependencies": { - "@nova-ui/bits": "~19.0.0", - "@nova-ui/charts": "~19.0.0" + "@nova-ui/bits": "~19.0.2-0", + "@nova-ui/charts": "~19.0.2-0" }, "devDependencies": { "@apollo/client": "3.7.3", @@ -105,5 +105,5 @@ "visual:gui": "yarn run visual:base -c gui", "visual:serve": "yarn run visual:base -c serve" }, - "version": "19.0.0" -} + "version": "19.0.2-0" +} \ No newline at end of file diff --git a/packages/dashboards/schematics/package.json b/packages/dashboards/schematics/package.json index 22dbe9d8a..af6066a1a 100644 --- a/packages/dashboards/schematics/package.json +++ b/packages/dashboards/schematics/package.json @@ -1,7 +1,7 @@ { "name": "dashboards-schematics", "license": "Apache-2.0", - "version": "19.0.0", + "version": "19.0.2-0", "scripts": { "assemble": "run-s build copy:json copy:data test copy:dist", "build": "tsc -p tsconfig.json", From 995b30796e5d80afc553de6270326fd4b187aaba Mon Sep 17 00:00:00 2001 From: Ludmila Fialova Date: Wed, 14 Jan 2026 16:44:13 +0100 Subject: [PATCH 11/25] NUI-6263 yarn run --cwd packages/bits lint:fix --- .../color-picker-basic.example.component.ts | 4 ++-- .../color-picker-palette.example.component.ts | 5 +++-- .../color-picker-select.example.component.ts | 5 +++-- .../components/demo/color-picker/color-picker.module.ts | 7 ++++--- .../src/lib/color-picker/color-picker.component.spec.ts | 4 ++-- .../bits/src/lib/color-picker/color-picker.component.ts | 7 ++++--- packages/bits/src/lib/color-picker/color-picker.module.ts | 4 ++-- packages/bits/src/lib/color-picker/color.service.ts | 1 + packages/bits/src/lib/image/image.component.ts | 2 +- packages/bits/src/lib/search/search.component.ts | 3 +-- 10 files changed, 23 insertions(+), 19 deletions(-) diff --git a/packages/bits/demo/src/components/demo/color-picker/color-picker-basic/color-picker-basic.example.component.ts b/packages/bits/demo/src/components/demo/color-picker/color-picker-basic/color-picker-basic.example.component.ts index 1495b144a..34fbfb295 100644 --- a/packages/bits/demo/src/components/demo/color-picker/color-picker-basic/color-picker-basic.example.component.ts +++ b/packages/bits/demo/src/components/demo/color-picker/color-picker-basic/color-picker-basic.example.component.ts @@ -18,7 +18,7 @@ // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN // THE SOFTWARE. -import { Component } from "@angular/core"; +import { Component, OnInit } from "@angular/core"; import { FormBuilder, FormControl, @@ -45,7 +45,7 @@ const CHART_PALETTE_CS1: string[] = [ styles: [], standalone: false, }) -export class ColorPickerBasicExampleComponent { +export class ColorPickerBasicExampleComponent implements OnInit { public myForm: FormGroup<{ backgroundColor: FormControl }>; public colors: string[] = CHART_PALETTE_CS1; diff --git a/packages/bits/demo/src/components/demo/color-picker/color-picker-palette/color-picker-palette.example.component.ts b/packages/bits/demo/src/components/demo/color-picker/color-picker-palette/color-picker-palette.example.component.ts index ff4245887..42e72d41e 100644 --- a/packages/bits/demo/src/components/demo/color-picker/color-picker-palette/color-picker-palette.example.component.ts +++ b/packages/bits/demo/src/components/demo/color-picker/color-picker-palette/color-picker-palette.example.component.ts @@ -18,12 +18,13 @@ // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN // THE SOFTWARE. -import { Component } from "@angular/core"; +import { Component, OnInit } from "@angular/core"; import { FormBuilder, FormControl, FormGroup, } from "@angular/forms"; + import { HTML_COLORS, IPaletteColor } from "../../../../../../src/constants/color-picker.constants"; @@ -33,7 +34,7 @@ import { HTML_COLORS, IPaletteColor } from "../../../../../../src/constants/colo styles: [], standalone: false, }) -export class ColorPickerPaletteExampleComponent { +export class ColorPickerPaletteExampleComponent implements OnInit { public myForm: FormGroup<{ backgroundColor: FormControl }>; public colorPalette: IPaletteColor[] = Array.from(HTML_COLORS.entries()) .map(([label, color]) => ({label,color})); diff --git a/packages/bits/demo/src/components/demo/color-picker/color-picker-select/color-picker-select.example.component.ts b/packages/bits/demo/src/components/demo/color-picker/color-picker-select/color-picker-select.example.component.ts index 7ed2ee0f0..1c19aa4a2 100644 --- a/packages/bits/demo/src/components/demo/color-picker/color-picker-select/color-picker-select.example.component.ts +++ b/packages/bits/demo/src/components/demo/color-picker/color-picker-select/color-picker-select.example.component.ts @@ -18,12 +18,13 @@ // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN // THE SOFTWARE. -import { Component } from "@angular/core"; +import { Component, OnInit } from "@angular/core"; import { FormBuilder, FormControl, FormGroup, } from "@angular/forms"; + import { HTML_COLORS, IPaletteColor } from "../../../../../../src/constants/color-picker.constants"; @@ -33,7 +34,7 @@ import { HTML_COLORS, IPaletteColor } from "../../../../../../src/constants/colo styles: [], standalone: false, }) -export class ColorPickerSelectExampleComponent { +export class ColorPickerSelectExampleComponent implements OnInit { public myForm: FormGroup<{ backgroundColor: FormControl }>; public colorPalette: IPaletteColor[] = Array.from(HTML_COLORS.entries()) .map(([label, color]) => ({label,color})); diff --git a/packages/bits/demo/src/components/demo/color-picker/color-picker.module.ts b/packages/bits/demo/src/components/demo/color-picker/color-picker.module.ts index 2192110f3..60b898bf4 100644 --- a/packages/bits/demo/src/components/demo/color-picker/color-picker.module.ts +++ b/packages/bits/demo/src/components/demo/color-picker/color-picker.module.ts @@ -19,8 +19,8 @@ // THE SOFTWARE. import { NgModule } from "@angular/core"; -import { RouterModule } from "@angular/router"; import { FormsModule, ReactiveFormsModule } from "@angular/forms"; +import { RouterModule } from "@angular/router"; import { DEMO_PATH_TOKEN, @@ -30,11 +30,12 @@ import { NuiPopoverModule, SrlcStage, } from "@nova-ui/bits"; -import { getDemoFiles } from "../../../static/demo-files-factory"; + import { ColorPickerBasicExampleComponent } from "./color-picker-basic/color-picker-basic.example.component"; +import { ColorPickerExampleComponent } from "./color-picker-docs/color-picker-docs.example.component"; import { ColorPickerPaletteExampleComponent } from "./color-picker-palette/color-picker-palette.example.component"; import { ColorPickerSelectExampleComponent } from "./color-picker-select/color-picker-select.example.component"; -import { ColorPickerExampleComponent } from "./color-picker-docs/color-picker-docs.example.component"; +import { getDemoFiles } from "../../../static/demo-files-factory"; const routes = [ { diff --git a/packages/bits/src/lib/color-picker/color-picker.component.spec.ts b/packages/bits/src/lib/color-picker/color-picker.component.spec.ts index 919c62bee..cd0c72182 100644 --- a/packages/bits/src/lib/color-picker/color-picker.component.spec.ts +++ b/packages/bits/src/lib/color-picker/color-picker.component.spec.ts @@ -18,6 +18,7 @@ // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN // THE SOFTWARE. +import { Overlay } from "@angular/cdk/overlay"; import { Component, CUSTOM_ELEMENTS_SCHEMA, @@ -26,11 +27,10 @@ import { } from "@angular/core"; import { ComponentFixture, TestBed } from "@angular/core/testing"; import { By } from "@angular/platform-browser"; -import { Overlay } from "@angular/cdk/overlay"; +import { Subject } from "rxjs/internal/Subject"; import { ColorPickerComponent } from "./color-picker.component"; import { ColorService } from "./color.service"; -import { Subject } from "rxjs/internal/Subject"; @Component({ diff --git a/packages/bits/src/lib/color-picker/color-picker.component.ts b/packages/bits/src/lib/color-picker/color-picker.component.ts index baf7d0cf0..f24a75bdf 100644 --- a/packages/bits/src/lib/color-picker/color-picker.component.ts +++ b/packages/bits/src/lib/color-picker/color-picker.component.ts @@ -34,11 +34,12 @@ import { import { ControlValueAccessor, NG_VALUE_ACCESSOR } from "@angular/forms"; import { Subject } from "rxjs"; import { takeUntil, tap } from "rxjs/operators"; -import { ColorService } from "./color.service"; -import { getColorValueByName } from "./../../functions/color.helper"; -import { IPaletteColor } from "./../../constants/color-picker.constants"; + import { getOverlayPositions, IOptionValueObject, IResizeConfig, NuiFormFieldControl, OverlayUtilitiesService } from "../public-api"; import { SelectV2Component } from "../select-v2/select/select-v2.component"; +import { IPaletteColor } from "./../../constants/color-picker.constants"; +import { getColorValueByName } from "./../../functions/color.helper"; +import { ColorService } from "./color.service"; // Left and right paddings of .color-picker-container element const CONTAINER_SIDE_PADDINGS_PX: number = 20; diff --git a/packages/bits/src/lib/color-picker/color-picker.module.ts b/packages/bits/src/lib/color-picker/color-picker.module.ts index 618632001..2d23d42b5 100644 --- a/packages/bits/src/lib/color-picker/color-picker.module.ts +++ b/packages/bits/src/lib/color-picker/color-picker.module.ts @@ -1,9 +1,9 @@ import { NgModule } from "@angular/core"; -import { NuiCommonModule } from "../../common/common.module"; import { ColorPickerComponent } from "./color-picker.component"; -import { NuiSelectV2Module } from "../select-v2/select-v2.module"; +import { NuiCommonModule } from "../../common/common.module"; import { NuiIconModule } from "../icon/icon.module"; +import { NuiSelectV2Module } from "../select-v2/select-v2.module"; /** * @ignore diff --git a/packages/bits/src/lib/color-picker/color.service.ts b/packages/bits/src/lib/color-picker/color.service.ts index 854d0fe26..8789b79b5 100644 --- a/packages/bits/src/lib/color-picker/color.service.ts +++ b/packages/bits/src/lib/color-picker/color.service.ts @@ -20,6 +20,7 @@ import { Injectable } from "@angular/core"; import isNil from "lodash/isNil"; + import { HTML_COLORS } from "./../../constants/color-picker.constants"; diff --git a/packages/bits/src/lib/image/image.component.ts b/packages/bits/src/lib/image/image.component.ts index b9eabb83b..6d70b36de 100644 --- a/packages/bits/src/lib/image/image.component.ts +++ b/packages/bits/src/lib/image/image.component.ts @@ -42,9 +42,9 @@ import _isUndefined from "lodash/isUndefined"; import { IImagesPresetItem } from "./public-api"; import { imagesPresetToken } from "../../constants/images.constants"; +import { computeA11yForGraphic } from "../../functions/a11y-graphics.util"; import { LoggerService } from "../../services/log-service"; import { UtilService } from "../../services/util.service"; -import { computeA11yForGraphic } from "../../functions/a11y-graphics.util"; /** * ./../examples/index.html#/image diff --git a/packages/bits/src/lib/search/search.component.ts b/packages/bits/src/lib/search/search.component.ts index 647005033..d2dcb3ff1 100644 --- a/packages/bits/src/lib/search/search.component.ts +++ b/packages/bits/src/lib/search/search.component.ts @@ -130,8 +130,7 @@ export class SearchComponent implements IFilterPub, OnDestroy, OnInit { } public ngOnInit(): void { this.resolvedInputId = - `nui-search-input-${SearchComponent.nextUniqueId++}` || - this.inputId; + this.inputId || `nui-search-input-${SearchComponent.nextUniqueId++}`; } public getFilters(): IFilter { From 42ed6da7aa9dfbfaf985af8d10c3fe6715912e09 Mon Sep 17 00:00:00 2001 From: Ludmila Fialova Date: Thu, 15 Jan 2026 13:42:42 +0100 Subject: [PATCH 12/25] NUI-6263 ng v17 upgrade of the Image component --- .../bits/src/lib/image/image.component.html | 18 +- .../src/lib/image/image.component.spec.ts | 57 ++--- .../bits/src/lib/image/image.component.ts | 224 ++++++++---------- packages/bits/src/lib/image/image.module.ts | 3 +- .../bits/src/lib/search/search.component.ts | 3 - 5 files changed, 138 insertions(+), 167 deletions(-) diff --git a/packages/bits/src/lib/image/image.component.html b/packages/bits/src/lib/image/image.component.html index 52761a13a..e19e11a3e 100644 --- a/packages/bits/src/lib/image/image.component.html +++ b/packages/bits/src/lib/image/image.component.html @@ -1,12 +1,12 @@
diff --git a/packages/bits/src/lib/image/image.component.spec.ts b/packages/bits/src/lib/image/image.component.spec.ts index 1a6d637ce..509359db5 100644 --- a/packages/bits/src/lib/image/image.component.spec.ts +++ b/packages/bits/src/lib/image/image.component.spec.ts @@ -18,18 +18,23 @@ // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN // THE SOFTWARE. -import { ChangeDetectorRef, ElementRef } from "@angular/core"; -import { TestBed } from "@angular/core/testing"; -import { DomSanitizer, SafeHtml } from "@angular/platform-browser"; +import { ComponentFixture, TestBed } from "@angular/core/testing"; +import { SafeHtml } from "@angular/platform-browser"; import _sample from "lodash/sample"; import { ImageComponent } from "./image.component"; import { IImagesPresetItem } from "./public-api"; +import { imagesPresetToken } from "../../constants/images.constants"; import { LoggerService } from "../../services/log-service"; import { UtilService } from "../../services/util.service"; +function unwrapSafeHtml(safeHtml: SafeHtml): string { + return (safeHtml as { changingThisBreaksApplicationSecurity: string }).changingThisBreaksApplicationSecurity; +} + describe("components >", () => { describe("image >", () => { + let fixture: ComponentFixture; let subject: ImageComponent; const imagesPreset = [ { @@ -45,44 +50,32 @@ describe("components >", () => { code: "test svg", }, ] as Array; - const domSanitizer = { - bypassSecurityTrustHtml: (code: string) => code as SafeHtml, - } as DomSanitizer; - const elRef: ElementRef = new ElementRef(` - -
- -
-
- `); beforeEach(() => { TestBed.configureTestingModule({ - providers: [UtilService, ChangeDetectorRef], + imports: [ImageComponent], + providers: [ + UtilService, + LoggerService, + { provide: imagesPresetToken, useValue: imagesPreset }, + ], }); - const utilService = TestBed.inject(UtilService); - const changeDetector = TestBed.inject(ChangeDetectorRef); - - subject = new ImageComponent( - new LoggerService(), - utilService, - changeDetector, - imagesPreset, - domSanitizer, - elRef - ); + fixture = TestBed.createComponent(ImageComponent); + subject = fixture.componentInstance; }); describe("getImageTemplate", () => { it("returns image code by given image name", () => { const image = _sample(imagesPreset); const imageName = image?.name; - const expectedImageCode = image?.code as SafeHtml; + const expectedImageCode = image?.code as string; - subject.image = imageName; + fixture.componentRef.setInput("image", imageName); + fixture.detectChanges(); - expect(subject.getImageTemplate()).toBe(expectedImageCode); + const result = unwrapSafeHtml(subject.imageTemplate()); + expect(result).toContain(expectedImageCode); }); it("returns default image template if there is no image in the preset", () => { @@ -90,10 +83,12 @@ describe("components >", () => { const description = "Unavailable image"; const expectedImageTemplate = `${description}`; - subject.image = imageName; - subject.description = description; + fixture.componentRef.setInput("image", imageName); + fixture.componentRef.setInput("description", description); + fixture.detectChanges(); - expect(subject.getImageTemplate()).toBe(expectedImageTemplate); + const result = unwrapSafeHtml(subject.imageTemplate()); + expect(result).toContain(expectedImageTemplate); }); }); }); diff --git a/packages/bits/src/lib/image/image.component.ts b/packages/bits/src/lib/image/image.component.ts index 6d70b36de..ef82ed7fc 100644 --- a/packages/bits/src/lib/image/image.component.ts +++ b/packages/bits/src/lib/image/image.component.ts @@ -19,26 +19,18 @@ // THE SOFTWARE. import { - AfterViewInit, ChangeDetectionStrategy, ChangeDetectorRef, Component, ElementRef, - Inject, - Input, - OnChanges, - OnInit, - SimpleChanges, ViewEncapsulation, + afterNextRender, + computed, + effect, + inject, + input, } from "@angular/core"; import { DomSanitizer, SafeHtml } from "@angular/platform-browser"; -import _find from "lodash/find"; -import _has from "lodash/has"; -import _includes from "lodash/includes"; -import _isEqual from "lodash/isEqual"; -import _isNumber from "lodash/isNumber"; -import _isString from "lodash/isString"; -import _isUndefined from "lodash/isUndefined"; import { IImagesPresetItem } from "./public-api"; import { imagesPresetToken } from "../../constants/images.constants"; @@ -51,167 +43,155 @@ import { UtilService } from "../../services/util.service"; */ @Component({ selector: "nui-image", + standalone: true, templateUrl: "./image.component.html", changeDetection: ChangeDetectionStrategy.OnPush, styleUrls: ["./image.component.less"], encapsulation: ViewEncapsulation.None, host: { - "[attr.role]": "computedRole", - "[attr.aria-hidden]": "computedAriaHidden", - "[attr.aria-label]": "computedAriaLabel", + "[attr.role]": "computedRole()", + "[attr.aria-hidden]": "computedAriaHidden()", + "[attr.aria-label]": "computedAriaLabel()", }, standalone: false, }) -export class ImageComponent implements OnInit, AfterViewInit, OnChanges { +export class ImageComponent { /** * Image name from nui image preset or external source */ - @Input() public image: any; + public image = input(); /** * Sets aria-label text or alt for image from external source */ - @Input() public description: string; + public description = input(); /** * Available values are: 'left' and 'right' */ - @Input() public float: string; + public float = input(); /** * Available values are: 'centered', 'small', 'large' */ - @Input() public margin: string; + public margin = input(); /** * 'True' will apply 30% opacity to the image */ - @Input() public isWatermark: boolean; + public isWatermark = input(); /** * Sets the width of the container parent image */ - @Input() public width: string = "auto"; + public width = input("auto"); /** * Sets the height of the container parent image */ - @Input() public height: string = "auto"; + public height = input("auto"); /** * When set to true sets the hardcoded width and height of the svg to 100% to fill the parent container */ - @Input() public autoFill: boolean; - - public imageTemplate: SafeHtml; - public imageName: string | null; - public hasAlt: boolean; - + public autoFill = input(); /** * Optional ARIA role override. Constrained to 'img' | 'presentation' | null. * If omitted, role is inferred from presence of alt/label. */ - @Input() public role?: "img" | "presentation" | null; - - constructor( - private logger: LoggerService, - private utilService: UtilService, - private changeDetector: ChangeDetectorRef, - @Inject(imagesPresetToken) private images: Array, - private domSanitizer: DomSanitizer, - private el: ElementRef - ) {} - - public ngOnInit(): void { - const dimensionImputs: string[] = [this.height, this.width]; - - dimensionImputs.forEach((item) => { - if (!_isUndefined(item) && !this.isImageSizeValid(item)) { - this.logger.error( - "Image size should be specified in 'px', '%', or 'auto" - ); - } - }); - } + public role = input<"img" | "presentation" | null>(); - public ngOnChanges(changes: SimpleChanges): void { - if (changes.image || changes.description) { - this.imageName = - this.image.name || this.getImage(this.image)?.name || null; - this.imageTemplate = this.getImageTemplate(); + public imageName = computed(() => { + const img = this.image(); + if (img && typeof img === "object" && "name" in img) { + return (img as any).name ?? null; } - } - - // --- Accessibility computed properties --- - private get a11y() { - return computeA11yForGraphic({ - decorative: false, // images default to semantic unless lacking label/alt - explicitRole: this.role, - label: this.description || this.imageName || null, - hasAlt: this.hasAlt, + const fromPreset = this.getImage(img as string); + return fromPreset?.name ?? null; + }); + + public hasAlt = computed(() => { + const img = this.image(); + const hasCode = !!(img && typeof img === "object" && typeof (img as any).code === "string"); + return !hasCode; + }); + + public imageTemplate = computed(() => { + const img = this.image(); + let html = ""; + if (img && typeof img === "object" && typeof (img as any).code === "string") { + html = (img as any).code; + } else if (typeof img === "string") { + const fromPreset = this.getImage(img); + if (fromPreset?.code) { + html = fromPreset.code; + } else { + html = `${this.description()}`; + } + } + return this.domSanitizer.bypassSecurityTrustHtml(html); + }); + + private a11y = computed(() => + computeA11yForGraphic({ + decorative: false, + explicitRole: this.role(), + label: this.description() || this.imageName() || null, + hasAlt: this.hasAlt(), statusParts: undefined, + }) + ); + + private logger = inject(LoggerService); + private utilService = inject(UtilService); + private changeDetector = inject(ChangeDetectorRef); + private images = inject>(imagesPresetToken); + private domSanitizer = inject(DomSanitizer); + private el = inject(ElementRef); + + public computedRole = computed(() => this.a11y().role); + public computedAriaHidden = computed(() => this.a11y().ariaHidden); + public computedAriaLabel = computed(() => this.a11y().ariaLabel); + + constructor() { + effect(() => { + const h = this.height(); + const w = this.width(); + [h, w].forEach((item) => { + if (item !== undefined && !this.isImageSizeValid(item)) { + this.logger.error( + "Image size should be specified in 'px', '%', or 'auto" + ); + } + }); }); - } - public get computedRole(): string | null { - return this.a11y.role; - } - public get computedAriaHidden(): string | null { - return this.a11y.ariaHidden; - } - public get computedAriaLabel(): string | null { - return this.a11y.ariaLabel; - } - - public ngAfterViewInit(): void { - if (this.autoFill) { - try { + afterNextRender(() => { + if (this.autoFill()) { const svg = this.el.nativeElement.querySelector("svg"); - svg.setAttribute("width", "100%"); - svg.setAttribute("height", "100%"); - } catch { - console.warn( - "Can't apply 'autoFill' to nui-image, because it is only applicable to SVG type of images" - ); - return; + if (svg) { + svg.setAttribute("width", "100%"); + svg.setAttribute("height", "100%"); + } else { + console.warn( + "Can't apply 'autoFill' to nui-image, because it is only applicable to SVG type of images" + ); + } } - } - - /** - * Fix bug for Safari with wrong alignment of floated SVG images - */ - if (this.float && !this.width && this.utilService.browser?.isSafari()) { - const svg = this.el.nativeElement.querySelector("svg"); - if (!svg) { - return; + // Fix bug for Safari with wrong alignment of floated SVG images + if (this.float() && !this.width() && this.utilService.browser?.isSafari()) { + const svg = this.el.nativeElement.querySelector("svg"); + if (svg) { + (this.el.nativeElement as HTMLElement).style.width = svg.width.baseVal.value + "px"; + this.changeDetector.detectChanges(); + } } - - this.width = svg.width.baseVal.value + "px"; - this.changeDetector.detectChanges(); - } - } - - public getImageTemplate(): SafeHtml { - const image = this.image.code ? this.image : this.getImage(this.image); - let imageHtml: string = ""; - if (_has(image, "code") && _isString(image.code)) { - imageHtml = image.code; - this.hasAlt = false; - } else { - imageHtml = `${this.description}`; - this.hasAlt = true; - } - - return this.domSanitizer.bypassSecurityTrustHtml(imageHtml); + }); } private getImage = (imageName: string): IImagesPresetItem | undefined => - _find(this.images, (img: IImagesPresetItem) => - _isEqual(img.name, imageName) - ); + this.images.find((img) => img.name === imageName); - private isImageSizeValid(input: string): boolean { + private isImageSizeValid(value: string): boolean { return ( - _isNumber(parseFloat(input)) && - (_includes(input, "px") || - _includes(input, "%") || - _includes(input, "auto")) + !isNaN(parseFloat(value)) && + (value.includes("px") || value.includes("%") || value.includes("auto")) ); } } diff --git a/packages/bits/src/lib/image/image.module.ts b/packages/bits/src/lib/image/image.module.ts index 3f90794cd..48b226272 100644 --- a/packages/bits/src/lib/image/image.module.ts +++ b/packages/bits/src/lib/image/image.module.ts @@ -27,8 +27,7 @@ import { NuiCommonModule } from "../../common/common.module"; * @ignore */ @NgModule({ - declarations: [ImageComponent], - imports: [NuiCommonModule], + imports: [NuiCommonModule, ImageComponent], exports: [ImageComponent], providers: [], }) diff --git a/packages/bits/src/lib/search/search.component.ts b/packages/bits/src/lib/search/search.component.ts index d2dcb3ff1..6deefa9ee 100644 --- a/packages/bits/src/lib/search/search.component.ts +++ b/packages/bits/src/lib/search/search.component.ts @@ -176,9 +176,6 @@ export class SearchComponent implements IFilterPub, OnDestroy, OnInit { this.search.emit(this.value); } - /* -------------------------------------------------- - Lifecycle teardown - -------------------------------------------------- */ public ngOnDestroy(): void { this.onDestroy$.next(); this.onDestroy$.complete(); From 278a39ce62f7fe8e447cb1eac94f66bef3f3895e Mon Sep 17 00:00:00 2001 From: Ludmila Fialova Date: Thu, 15 Jan 2026 17:15:28 +0100 Subject: [PATCH 13/25] NUI-6263 ng v17 upgrade of the Search component --- .../bits/src/lib/search/search.component.html | 43 +++---- .../src/lib/search/search.component.spec.ts | 42 +++---- .../bits/src/lib/search/search.component.ts | 109 ++++++++---------- packages/bits/src/lib/search/search.module.ts | 8 +- 4 files changed, 86 insertions(+), 116 deletions(-) diff --git a/packages/bits/src/lib/search/search.component.html b/packages/bits/src/lib/search/search.component.html index ae21512f4..30a1680d9 100644 --- a/packages/bits/src/lib/search/search.component.html +++ b/packages/bits/src/lib/search/search.component.html @@ -1,43 +1,44 @@ -
+
- + @if (value()) { + + } -
+
", () => { const actionMenu = el.querySelectorAll("nui-menu-action"); expect(actionMenu.length).toBe(1); }); + + describe("accessibility >", () => { + it("should have correct aria attributes on toggle button", () => { + const button = fixture.debugElement.query(By.css(".menu-button")); + expect(button.attributes["aria-haspopup"]).toBe("true"); + expect(button.attributes["aria-expanded"]).toBe("false"); + expect(button.attributes["aria-controls"]).toBeFalsy(); + + // Open menu + testComponent.menu.popup.toggleOpened(new FocusEvent("focusin")); + fixture.detectChanges(); + + expect(button.attributes["aria-expanded"]).toBe("true"); + expect(button.attributes["aria-controls"]).toBeTruthy(); + const menuContentId = button.attributes["aria-controls"]; + const content = fixture.debugElement.query(By.css("#" + menuContentId)); + expect(content).toBeTruthy(); + }); + + it("should have correct roles on menu-link", () => { + // Ensure menu items are rendered + testComponent.menu.popup.toggleOpened(new FocusEvent("focusin")); + fixture.detectChanges(); + + const menuLinks = fixture.debugElement.queryAll(By.directive(MenuLinkComponent)); + expect(menuLinks.length).toBeGreaterThan(0); + + menuLinks.forEach(linkDebugEl => { + // Host element should have role="none" + expect(linkDebugEl.attributes["role"]).toBe("none"); + + // Anchor inside should have role="menuitem" + const anchor = linkDebugEl.query(By.css("a")); + expect(anchor.attributes["role"]).toBe("menuitem"); + }); + }); + }); }); }); diff --git a/packages/bits/src/lib/menu/menu/menu.component.ts b/packages/bits/src/lib/menu/menu/menu.component.ts index 47365beab..00445510e 100644 --- a/packages/bits/src/lib/menu/menu/menu.component.ts +++ b/packages/bits/src/lib/menu/menu/menu.component.ts @@ -36,6 +36,7 @@ import { ViewEncapsulation, } from "@angular/core"; import _isEmpty from "lodash/isEmpty"; +import _uniqueId from "lodash/uniqueId"; import { Subject, Subscription } from "rxjs"; import { ButtonSizeType } from "../../../lib/button/public-api"; @@ -118,6 +119,8 @@ export class MenuComponent implements AfterViewInit, OnChanges, OnDestroy { @ViewChild(MenuPopupComponent) menuPopup: MenuPopupComponent; @ViewChild("menuToggle", { read: ElementRef }) menuToggle: ElementRef; + public readonly menuTriggerId = _uniqueId("nui-menu-trigger-"); + private menuKeyControlListeners: Function[] = []; private focusMonitorSubscription: Subscription; constructor( diff --git a/packages/bits/src/lib/popup/popup-toggle.directive.ts b/packages/bits/src/lib/popup/popup-toggle.directive.ts index 818c25978..93249c85e 100644 --- a/packages/bits/src/lib/popup/popup-toggle.directive.ts +++ b/packages/bits/src/lib/popup/popup-toggle.directive.ts @@ -40,6 +40,11 @@ export class PopupToggleDirective { @Output() toggle = new EventEmitter(); + /** + * Whether the toggle should react to keyboard events (Enter/Space) + */ + @Input() toggleOnKey: boolean = true; + constructor(public host: ElementRef) {} @HostListener("click", ["$event"]) @@ -51,7 +56,7 @@ export class PopupToggleDirective { @HostListener("keydown", ["$event"]) public handleKeydown(event: KeyboardEvent): void { - if (this.isDisabled || this.disabled) { + if (this.isDisabled || this.disabled || !this.toggleOnKey || event.defaultPrevented) { return; } if (event.key === " " || event.key === "Enter") { From 9477fd0de573365b48ddb3a7243c5c14008235ed Mon Sep 17 00:00:00 2001 From: Ludmila Fialova Date: Tue, 10 Feb 2026 10:57:28 +0100 Subject: [PATCH 25/25] NUI-6263 menu tests fix --- .../bits/e2e/components/menu/menu.atom.ts | 2 +- .../bits/e2e/components/menu/menu.e2e.spec.ts | 55 +- .../components/combobox-v2/combobox-v2.e2e.ts | 1 + .../spec/components/combobox/combobox.e2e.ts | 48 +- .../components/data-filter/data-filter.e2e.ts | 1 + .../spec/components/popover/popover.e2e.ts | 1 + .../bits/spec/components/table/table.e2e.ts | 4 +- .../spec/components/textbox/textbox.atom.ts | 9 +- .../src/lib/menu/menu-key-control.service.ts | 4 +- .../bits/src/lib/menu/menu/menu.component.ts | 15 +- yarn.lock | 995 ++++++------------ 11 files changed, 403 insertions(+), 732 deletions(-) diff --git a/packages/bits/e2e/components/menu/menu.atom.ts b/packages/bits/e2e/components/menu/menu.atom.ts index 808781b2e..352d33660 100644 --- a/packages/bits/e2e/components/menu/menu.atom.ts +++ b/packages/bits/e2e/components/menu/menu.atom.ts @@ -83,7 +83,7 @@ export class MenuAtom extends Atom { public getMenuItemByIndex(idx: number): MenuItemAtom { const itemLocator = this.getAllMenuItems().nth(idx); - return Atom.findIn(MenuItemAtom, itemLocator); + return new MenuItemAtom(itemLocator); } public async getMenuItems(): Promise { diff --git a/packages/bits/e2e/components/menu/menu.e2e.spec.ts b/packages/bits/e2e/components/menu/menu.e2e.spec.ts index e5b35488b..a32109f3a 100644 --- a/packages/bits/e2e/components/menu/menu.e2e.spec.ts +++ b/packages/bits/e2e/components/menu/menu.e2e.spec.ts @@ -110,20 +110,34 @@ test.describe("USERCONTROL Menu", () => { }); test("should open and close menu by ENTER key if focused on toggle", async () => { - // Focus the toggle first - await Helpers.pressKey("Tab"); - await Helpers.pressKey("Enter"); + const toggle = menu.getMenuButton().getLocator(); + + // Focus on toggle + await toggle.focus(); + await expect(toggle).toBeFocused(); + + // Open + await Helpers.page.keyboard.press("Enter"); await menu.isMenuOpened(); - await Helpers.pressKey("Enter"); + + // Close + await Helpers.page.keyboard.press("Enter"); await menu.isMenuClosed(); }); test("should open and close menu by SPACE key if focused on toggle", async () => { - // Focus the toggle first - await Helpers.pressKey("Tab"); - await Helpers.pressKey("Space"); + const toggle = menu.getMenuButton().getLocator(); + + // Focus on toggle + await toggle.focus(); + await expect(toggle).toBeFocused(); + + // Open + await Helpers.page.keyboard.press("Space"); await menu.isMenuOpened(); - await Helpers.pressKey("Space"); + + // Close + await Helpers.page.keyboard.press("Space"); await menu.isMenuClosed(); }); @@ -133,10 +147,6 @@ test.describe("USERCONTROL Menu", () => { await Helpers.pressKey("ArrowDown"); await Helpers.page.keyboard.up("Shift"); await menu.isMenuOpened(); - await Helpers.page.keyboard.down("Shift"); - await Helpers.pressKey("ArrowDown"); - await Helpers.page.keyboard.up("Shift"); - await menu.isMenuOpened(); }); test("should close menu on ESC key", async () => { @@ -246,17 +256,30 @@ async function assertStartAndEndKeyboardShortcuts( menu: MenuAtom, position: "first" | "last" ) { + const toggle = menu.getMenuButton().getLocator(); for (const key of keys) { + if (await menu.getPopupBox().getLocator().isHidden()) { + await menu.toggleMenu(); + } await menu.isMenuOpened(); + + // Ensure focus is on the toggle button to capture keystrokes + await toggle.focus(); + // Use instance method to get menu items const itemsLocator = menu.getAllMenuItems(); const itemCount = await itemsLocator.count(); const targetIndex = position === "first" ? 0 : itemCount - 1; const targetItem = menu.getMenuItemByIndex(targetIndex); + // Move to start/end using key - await Helpers.pressKey(position === "first" ? "End" : "Home"); - await Helpers.pressKey(key); - // Check if the item is active (assume MenuItemAtom has isActiveItem method) - expect(await targetItem.isActiveItem()).toBe(true); + // We use toggle.press which is more reliable than body.press when focus is known + const resetKey = position === "first" ? "End" : "Home"; + await toggle.press(resetKey); + await toggle.press(key); + + // Check if the item is active + // Use assertion that waits for condition instead of immediate check + await expect(targetItem.getLocator()).toHaveClass(/nui-menu-item--active/); } } diff --git a/packages/bits/spec/components/combobox-v2/combobox-v2.e2e.ts b/packages/bits/spec/components/combobox-v2/combobox-v2.e2e.ts index 2bddcc563..be051526e 100644 --- a/packages/bits/spec/components/combobox-v2/combobox-v2.e2e.ts +++ b/packages/bits/spec/components/combobox-v2/combobox-v2.e2e.ts @@ -184,6 +184,7 @@ describe("USERCONTROL Combobox v2 >", () => { describe("basic actions", () => { beforeEach(async () => { await browser.refresh(); + await comboboxBasic.waitElementVisible(); }); it("should select input text if clicked on toggle button", async () => { diff --git a/packages/bits/spec/components/combobox/combobox.e2e.ts b/packages/bits/spec/components/combobox/combobox.e2e.ts index d24504aba..dd2701c0b 100644 --- a/packages/bits/spec/components/combobox/combobox.e2e.ts +++ b/packages/bits/spec/components/combobox/combobox.e2e.ts @@ -52,17 +52,6 @@ describe("USERCONTROL Combobox >", () => { let comboboxAppendToBody: ComboboxAtom; let comboboxRemoveValueButton: ComboboxAtom; - const applySafeType = async (atom: ComboboxAtom, text: string): Promise => { - await atom.acceptInput(text); - if ((await atom.getInputValue()) !== text) { - await atom.clearText(); - for (const char of text) { // Type character by character to prevent lost spaces - await atom.getInput().sendKeys(char); - await browser.sleep(20); // Small delay to ensure stability in CI - } - } - }; - beforeAll(() => { comboboxBasic = Atom.find(ComboboxAtom, "nui-demo-basic-combobox"); comboboxDisabled = Atom.find( @@ -146,7 +135,7 @@ describe("USERCONTROL Combobox >", () => { it("should change the model after changing the text input", async () => { const inputText = "Some text"; - await applySafeType(comboboxBasic, inputText); + await comboboxBasic.acceptText(inputText); expect(await comboboxBasic.getInputValue()).toEqual(inputText); }); @@ -176,9 +165,10 @@ describe("USERCONTROL Combobox >", () => { await comboboxBasic.toggleMenu(); await comboboxBasic.clearText(); await comboboxBasic.acceptInput(newValue); - // Trigger BLUR (click outside or press TAB) - await browser.actions().sendKeys(protractor.Key.TAB).perform(); - expect(await comboboxBasic.getInputValue()).toEqual(newValue); + const selectedItem = comboboxBasic.getSelectedItem(); + expect( + (await selectedItem.getAttribute("innerText")).trim() + ).toEqual(newValue); }); }); }); @@ -193,14 +183,16 @@ describe("USERCONTROL Combobox >", () => { describe("clear on blur >", () => { it("should clear input on blur if it's value is not in source array", async () => { - await applySafeType(comboClearOnBlur, "Not in a source array"); - await browser.actions().sendKeys(protractor.Key.TAB).perform(); - expect(await comboClearOnBlur.getInputValue()).toEqual(""); + await comboClearOnBlur.acceptInput("Not in a source array"); + await comboboxBasic.toggleMenu(); + expect( + await comboClearOnBlur.getSelectedItems().count() + ).toEqual(0); }); it("should keep input value in input on blur if it's value is in source array", async () => { - await applySafeType(comboClearOnBlur, "Item 1"); - await browser.actions().sendKeys(protractor.Key.TAB).perform(); + await comboClearOnBlur.acceptInput("Item 1"); + await comboboxBasic.toggleMenu(); expect(await comboClearOnBlur.getInputValue()).toEqual( "Item 1" ); @@ -387,7 +379,7 @@ describe("USERCONTROL Combobox >", () => { await comboboxSeparators.waitElementVisible(); await comboboxSeparators.toggleMenu(); expect(await comboboxSeparators.getItemsCount()).toEqual(9); - await applySafeType(comboboxSeparators, "Item 1"); + await comboboxSeparators.acceptText("Item 1"); expect(await comboboxSeparators.getItemsCount()).toEqual(3); }); }); @@ -396,14 +388,12 @@ describe("USERCONTROL Combobox >", () => { it("should highlight appropriate items in dropdown for combobox with a plain list of items", async () => { await comboboxBasic.waitElementVisible(); await comboboxBasic.toggleMenu(); - await applySafeType(comboboxBasic, "Item"); - await comboboxBasic.toggleMenu(); + await comboboxBasic.acceptInput("Item"); expect(await comboboxBasic.getHighlightedItemsCount()).toEqual( 15 ); await comboboxBasic.clearText(); - await applySafeType(comboboxBasic, "Item 1"); - await comboboxBasic.toggleMenu(); + await comboboxBasic.acceptInput("Item 1"); expect(await comboboxBasic.getHighlightedItemsCount()).toEqual( 6 ); @@ -412,14 +402,12 @@ describe("USERCONTROL Combobox >", () => { it("should highlight appropriate items in dropdown for combobox with groups", async () => { await comboboxSeparators.waitElementVisible(); await comboboxSeparators.toggleMenu(); - await applySafeType(comboboxSeparators, "Item"); - await comboboxSeparators.toggleMenu(); + await comboboxSeparators.acceptInput("Item"); expect( await comboboxSeparators.getHighlightedItemsCount() ).toEqual(9); await comboboxSeparators.clearText(); - await applySafeType(comboboxSeparators, "Item 1"); - await comboboxSeparators.toggleMenu(); + await comboboxSeparators.acceptInput("Item 1"); expect( await comboboxSeparators.getHighlightedItemsCount() ).toEqual(3); @@ -439,7 +427,7 @@ describe("USERCONTROL Combobox >", () => { it("should clear value if it's not in source array and re-render dropdown", async () => { await comboboxTypeahead.waitElementVisible(); - await applySafeType(comboboxTypeahead, "Not in a source array"); + await comboboxTypeahead.acceptInput("Not in a source array"); await comboboxWithDisplayValue.toggleMenu(); expect( await comboboxTypeahead.getSelectedItems().count() diff --git a/packages/bits/spec/components/data-filter/data-filter.e2e.ts b/packages/bits/spec/components/data-filter/data-filter.e2e.ts index bcfdd6769..9250990a0 100644 --- a/packages/bits/spec/components/data-filter/data-filter.e2e.ts +++ b/packages/bits/spec/components/data-filter/data-filter.e2e.ts @@ -167,6 +167,7 @@ describe("USERCONTROL data-filter-service >", () => { }); it("search should be applied only to list", async () => { + await basicSearch.waitElementVisible(); await basicSearch.acceptInput("Issue 1"); for ( diff --git a/packages/bits/spec/components/popover/popover.e2e.ts b/packages/bits/spec/components/popover/popover.e2e.ts index ad81e8953..61bf76b61 100644 --- a/packages/bits/spec/components/popover/popover.e2e.ts +++ b/packages/bits/spec/components/popover/popover.e2e.ts @@ -133,6 +133,7 @@ describe("USERCONTROL popover", () => { }); it("should not close popover after click on itself", async () => { + await popoverPreventClosing.waitElementVisible(); await popoverPreventClosing.clickTarget(); await expect(await popoverPreventClosing.isPopoverDisplayed()).toBe( true diff --git a/packages/bits/spec/components/table/table.e2e.ts b/packages/bits/spec/components/table/table.e2e.ts index 034544851..19c1c938f 100644 --- a/packages/bits/spec/components/table/table.e2e.ts +++ b/packages/bits/spec/components/table/table.e2e.ts @@ -219,7 +219,7 @@ describe("USERCONTROL table >", () => { describe("Adding and removing table columns >", () => { beforeEach(async () => { await Helpers.prepareBrowser("table/custom-actions"); - customActionsTable.waitElementVisible(); + await tableColumnsAddRemove.waitElementVisible(); }); const editColumnsButton: ButtonAtom = Atom.find( @@ -482,6 +482,7 @@ describe("USERCONTROL table >", () => { describe("Sticky header >", () => { beforeEach(async () => { await Helpers.prepareBrowser("table/sticky"); + await Helpers.waitElementVisible(element(by.id("nui-demo-table-sticky-header"))); }); it("adjust the virtual scroll viewport height to accommodate the header height", async () => { @@ -753,6 +754,7 @@ describe("USERCONTROL table >", () => { beforeEach(async () => { await Helpers.prepareBrowser("table/custom-actions"); + await tableColumnsAddRemove.waitElementVisible(); }); it("should add new row to the beginning", async () => { diff --git a/packages/bits/spec/components/textbox/textbox.atom.ts b/packages/bits/spec/components/textbox/textbox.atom.ts index 9a8ff7de4..eca0ad5fd 100644 --- a/packages/bits/spec/components/textbox/textbox.atom.ts +++ b/packages/bits/spec/components/textbox/textbox.atom.ts @@ -18,7 +18,7 @@ // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN // THE SOFTWARE. -import { by, ElementFinder, Key } from "protractor"; +import { browser, by, ElementFinder, Key } from "protractor"; import { Atom } from "../../atom"; @@ -41,8 +41,11 @@ export class TextboxAtom extends Atom { public getValue = async (): Promise => this.input.getAttribute("value"); - public acceptText = async (text: string): Promise => - this.input.sendKeys(text); + public acceptText = async (text: string): Promise => { + await browser.actions().mouseMove(this.input).click().perform(); + await browser.actions().sendKeys(text).perform(); + }; + public clearText = async (): Promise => this.input.clear(); diff --git a/packages/bits/src/lib/menu/menu-key-control.service.ts b/packages/bits/src/lib/menu/menu-key-control.service.ts index fcfb9cb4f..1d56a08c1 100644 --- a/packages/bits/src/lib/menu/menu-key-control.service.ts +++ b/packages/bits/src/lib/menu/menu-key-control.service.ts @@ -187,9 +187,11 @@ export class MenuKeyControlService implements OnDestroy { event.code === KEYBOARD_CODE.ENTER || event.code === KEYBOARD_CODE.SPACE; - // prevent closing on enter + // Toggle menu on Enter/Space if no item is active (effectively closing it) if (!this.hasActiveItem() && isActionKey) { event.preventDefault(); + this.popup.toggleOpened(event); + return; } if (this.hasActiveItem() && isActionKey) { diff --git a/packages/bits/src/lib/menu/menu/menu.component.ts b/packages/bits/src/lib/menu/menu/menu.component.ts index 00445510e..61deebdba 100644 --- a/packages/bits/src/lib/menu/menu/menu.component.ts +++ b/packages/bits/src/lib/menu/menu/menu.component.ts @@ -123,6 +123,7 @@ export class MenuComponent implements AfterViewInit, OnChanges, OnDestroy { private menuKeyControlListeners: Function[] = []; private focusMonitorSubscription: Subscription; + private justClosed = false; constructor( private keyControlService: MenuKeyControlService, private renderer: Renderer2, @@ -152,6 +153,13 @@ export class MenuComponent implements AfterViewInit, OnChanges, OnDestroy { "keydown", (event: KeyboardEvent) => { if (!this.popup.popupToggle.disabled) { + if ( + this.popup.isOpen && + (event.code === "Enter" || event.code === "Space") + ) { + this.justClosed = true; + setTimeout(() => (this.justClosed = false), 200); + } this.keyControlService.handleKeydown(event); } } @@ -164,7 +172,12 @@ export class MenuComponent implements AfterViewInit, OnChanges, OnDestroy { this.focusMonitorSubscription = this.focusMonitor .monitor(this.menuToggle) .subscribe((origin: FocusOrigin) => { - if (origin === "keyboard") { + if (origin === "keyboard" && !this.justClosed) { + // Prevent reopening if we are in the middle of closing + if (this.popup.isOpen && !this.popup.visible) { + return; + } + if (!this.popup.popupToggle.disabled) { this.popup.toggleOpened(new FocusEvent("focusin")); } diff --git a/yarn.lock b/yarn.lock index 1303de61e..74850de88 100644 --- a/yarn.lock +++ b/yarn.lock @@ -239,10 +239,10 @@ rxjs "7.8.1" source-map "0.7.4" -"@angular-devkit/core@19.2.13", "@angular-devkit/core@^19.0.0": - version "19.2.13" - resolved "https://registry.yarnpkg.com/@angular-devkit/core/-/core-19.2.13.tgz#6baea0d6156d02ea9078f2b557a69fa1733af55b" - integrity sha512-iq73hE5Uvms1w3uMUSk4i4NDXDMQ863VAifX8LOTadhG6U0xISjNJ11763egVCxQmaKmg7zbG4rda88wHJATzA== +"@angular-devkit/core@19.2.19": + version "19.2.19" + resolved "https://registry.npmjs.org/@angular-devkit/core/-/core-19.2.19.tgz#371b917a0a3f0f14c07a6b99813ba05d5ffe4aea" + integrity sha512-JbLL+4IMLMBgjLZlnPG4lYDfz4zGrJ/s6Aoon321NJKuw1Kb1k5KpFu9dUY0BqLIe8xPQ2UJBpI+xXdK5MXMHQ== dependencies: ajv "8.17.1" ajv-formats "3.0.1" @@ -263,6 +263,18 @@ rxjs "7.8.2" source-map "0.7.6" +"@angular-devkit/core@^19.0.0": + version "19.2.13" + resolved "https://registry.yarnpkg.com/@angular-devkit/core/-/core-19.2.13.tgz#6baea0d6156d02ea9078f2b557a69fa1733af55b" + integrity sha512-iq73hE5Uvms1w3uMUSk4i4NDXDMQ863VAifX8LOTadhG6U0xISjNJ11763egVCxQmaKmg7zbG4rda88wHJATzA== + dependencies: + ajv "8.17.1" + ajv-formats "3.0.1" + jsonc-parser "3.3.1" + picomatch "4.0.2" + rxjs "7.8.1" + source-map "0.7.4" + "@angular-devkit/schematics-cli@20.3.15": version "20.3.15" resolved "https://registry.yarnpkg.com/@angular-devkit/schematics-cli/-/schematics-cli-20.3.15.tgz#40a422b45fa832c56b50a475f1007b90cc2c1029" @@ -301,7 +313,7 @@ resolved "https://registry.yarnpkg.com/@angular-devkit/schematics/-/schematics-19.2.13.tgz#4a0210a280b59927bb539cc47b61a46c50874589" integrity sha512-NhSPz3lI9njEo8eMUlZVGtlXl12UcNZv5lWTBZY/FGWUu6P5ciD/9iJINbc1jiaDH5E/DLEicUNuai0Q91X4Nw== dependencies: - "@angular-devkit/core" "19.2.19" + "@angular-devkit/core" "19.2.13" jsonc-parser "3.3.1" magic-string "0.30.17" ora "5.4.1" @@ -556,7 +568,7 @@ resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.27.1.tgz#200f715e66d52a23b221a9435534a91cc13ad5be" integrity sha512-cjQ7ZlQ0Mv3b47hABuTevyTuYN4i+loJKGeV9flcCgIK37cCXRh+L1bd3iBHlynerhQ7BhCkn2BPbQUL+rGqFg== dependencies: - "@babel/helper-validator-identifier" "^7.28.5" + "@babel/helper-validator-identifier" "^7.27.1" js-tokens "^4.0.0" picocolors "^1.1.1" @@ -569,7 +581,7 @@ js-tokens "^4.0.0" picocolors "^1.1.1" -"@babel/compat-data@^7.22.6", "@babel/compat-data@^7.25.8", "@babel/compat-data@^7.27.2": +"@babel/compat-data@^7.25.8": version "7.27.2" resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.27.2.tgz#4183f9e642fd84e74e3eea7ffa93a412e3b102c9" integrity sha512-TUtMJYRPyUb/9aU8f3K0mjmjf6M9N5Woshn2CS6nqJSeJtTtQcpLUXjGt9vbF8ZGff0El99sWkLgzwW3VXnxZQ== @@ -653,15 +665,15 @@ "@jridgewell/trace-mapping" "^0.3.28" jsesc "^3.0.2" -"@babel/generator@^7.25.7", "@babel/generator@^7.27.1": +"@babel/generator@^7.25.7": version "7.27.1" resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.27.1.tgz#862d4fad858f7208edd487c28b58144036b76230" integrity sha512-UnJfnIpc/+JO0/+KRVQNGU+y5taA5vCbwN8+azkX6beii/ZF+enZJSOKo11ZSzGJjlNfJHfQtmQT8H+9TXPG2w== dependencies: - "@babel/parser" "^7.29.0" - "@babel/types" "^7.29.0" - "@jridgewell/gen-mapping" "^0.3.12" - "@jridgewell/trace-mapping" "^0.3.28" + "@babel/parser" "^7.27.1" + "@babel/types" "^7.27.1" + "@jridgewell/gen-mapping" "^0.3.5" + "@jridgewell/trace-mapping" "^0.3.25" jsesc "^3.0.2" "@babel/generator@^7.28.3", "@babel/generator@^7.29.0": @@ -687,14 +699,14 @@ resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.27.1.tgz#4345d81a9a46a6486e24d069469f13e60445c05d" integrity sha512-WnuuDILl9oOBbKnb4L+DyODx7iC47XfzmNCpTttFsSp6hTG7XZxu60+4IO+2/hPfcGOoKbFiwoI/+zwARbNQow== dependencies: - "@babel/types" "^7.27.3" + "@babel/types" "^7.27.1" -"@babel/helper-compilation-targets@^7.22.6", "@babel/helper-compilation-targets@^7.25.7", "@babel/helper-compilation-targets@^7.27.1", "@babel/helper-compilation-targets@^7.27.2": +"@babel/helper-compilation-targets@^7.25.7", "@babel/helper-compilation-targets@^7.27.1", "@babel/helper-compilation-targets@^7.27.2": version "7.27.2" resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.27.2.tgz#46a0f6efab808d51d29ce96858dd10ce8732733d" integrity sha512-2+1thGUUWWjLTYTHZWK1n8Yga0ijBz1XAhUXcKy81rd5g6yh7hGqMp45v7cadSbEHc9G3OTv45SyneRN3ps4DQ== dependencies: - "@babel/compat-data" "^7.28.6" + "@babel/compat-data" "^7.27.2" "@babel/helper-validator-option" "^7.27.1" browserslist "^4.24.0" lru-cache "^5.1.1" @@ -711,17 +723,17 @@ lru-cache "^5.1.1" semver "^6.3.1" -"@babel/helper-create-class-features-plugin@^7.25.7", "@babel/helper-create-class-features-plugin@^7.27.1": +"@babel/helper-create-class-features-plugin@^7.25.7": version "7.27.1" resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.27.1.tgz#5bee4262a6ea5ddc852d0806199eb17ca3de9281" integrity sha512-QwGAmuvM17btKU5VqXfb+Giw4JcN0hjuufz3DYnpeVDvZLAObloM77bhMXiqry3Iio+Ai4phVRDwl6WU10+r5A== dependencies: - "@babel/helper-annotate-as-pure" "^7.27.3" - "@babel/helper-member-expression-to-functions" "^7.28.5" + "@babel/helper-annotate-as-pure" "^7.27.1" + "@babel/helper-member-expression-to-functions" "^7.27.1" "@babel/helper-optimise-call-expression" "^7.27.1" - "@babel/helper-replace-supers" "^7.28.6" + "@babel/helper-replace-supers" "^7.27.1" "@babel/helper-skip-transparent-expression-wrappers" "^7.27.1" - "@babel/traverse" "^7.28.6" + "@babel/traverse" "^7.27.1" semver "^6.3.1" "@babel/helper-create-class-features-plugin@^7.28.6": @@ -742,8 +754,8 @@ resolved "https://registry.yarnpkg.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.27.1.tgz#05b0882d97ba1d4d03519e4bce615d70afa18c53" integrity sha512-uVDC72XVf8UbrH5qQTc18Agb8emwjTiZrQE11Nv3CuBEZmVvTwwE9CBUEvHku06gQCAyYf8Nv6ja1IN+6LMbxQ== dependencies: - "@babel/helper-annotate-as-pure" "^7.27.3" - regexpu-core "^6.3.1" + "@babel/helper-annotate-as-pure" "^7.27.1" + regexpu-core "^6.2.0" semver "^6.3.1" "@babel/helper-create-regexp-features-plugin@^7.28.5": @@ -755,16 +767,16 @@ regexpu-core "^6.3.1" semver "^6.3.1" -"@babel/helper-define-polyfill-provider@^0.6.2", "@babel/helper-define-polyfill-provider@^0.6.4": +"@babel/helper-define-polyfill-provider@^0.6.2": version "0.6.4" resolved "https://registry.yarnpkg.com/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.6.4.tgz#15e8746368bfa671785f5926ff74b3064c291fab" integrity sha512-jljfR1rGnXXNWnmQg2K3+bvhkxB51Rl32QRaOTuwwjviGrHzIbSc8+x9CpraDtbT7mfyjXObULP4w/adunNwAw== dependencies: - "@babel/helper-compilation-targets" "^7.28.6" - "@babel/helper-plugin-utils" "^7.28.6" - debug "^4.4.3" + "@babel/helper-compilation-targets" "^7.22.6" + "@babel/helper-plugin-utils" "^7.22.5" + debug "^4.1.1" lodash.debounce "^4.0.8" - resolve "^1.22.11" + resolve "^1.14.2" "@babel/helper-define-polyfill-provider@^0.6.5", "@babel/helper-define-polyfill-provider@^0.6.6": version "0.6.6" @@ -782,14 +794,6 @@ resolved "https://registry.yarnpkg.com/@babel/helper-globals/-/helper-globals-7.28.0.tgz#b9430df2aa4e17bc28665eadeae8aa1d985e6674" integrity sha512-+W6cISkXFa1jXsDEdYA8HeevQT/FULhxzR99pxphltZcVaugps53THCeiWA8SguxxpSp3gKPiuYfSWopkLQ4hw== -"@babel/helper-member-expression-to-functions@^7.27.1": - version "7.27.1" - resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.27.1.tgz#ea1211276be93e798ce19037da6f06fbb994fa44" - integrity sha512-E5chM8eWjTp/aNoVpcbfM7mLxu9XGLWYise2eBKGQomAk/Mb4XoxyqXTZbuTohbsl8EKqdlMhnDI2CCLfcs9wA== - dependencies: - "@babel/traverse" "^7.28.5" - "@babel/types" "^7.28.5" - "@babel/helper-member-expression-to-functions@^7.28.5": version "7.28.5" resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.28.5.tgz#f3e07a10be37ed7a63461c63e6929575945a6150" @@ -803,8 +807,8 @@ resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.27.1.tgz#7ef769a323e2655e126673bb6d2d6913bbead204" integrity sha512-0gSFWUPNXNopqtIPQvlD5WgXYI5GY2kP2cCvoT8kczjbfcfuIljTbcWrulD1CIPIX2gt1wghbDy08yE1p+/r3w== dependencies: - "@babel/traverse" "^7.28.6" - "@babel/types" "^7.28.6" + "@babel/traverse" "^7.27.1" + "@babel/types" "^7.27.1" "@babel/helper-module-imports@^7.28.6": version "7.28.6" @@ -819,9 +823,9 @@ resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.27.1.tgz#e1663b8b71d2de948da5c4fb2a20ca4f3ec27a6f" integrity sha512-9yHn519/8KvTU5BjTVEEeIM3w9/2yXNKoD82JifINImhpKkARMJKPP59kLo+BafpdN5zgNeIcS4jsGDmd3l58g== dependencies: - "@babel/helper-module-imports" "^7.28.6" - "@babel/helper-validator-identifier" "^7.28.5" - "@babel/traverse" "^7.28.6" + "@babel/helper-module-imports" "^7.27.1" + "@babel/helper-validator-identifier" "^7.27.1" + "@babel/traverse" "^7.27.1" "@babel/helper-module-transforms@^7.28.3", "@babel/helper-module-transforms@^7.28.6": version "7.28.6" @@ -839,7 +843,7 @@ dependencies: "@babel/types" "^7.27.1" -"@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.18.6", "@babel/helper-plugin-utils@^7.22.5", "@babel/helper-plugin-utils@^7.25.7", "@babel/helper-plugin-utils@^7.27.1": +"@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.18.6", "@babel/helper-plugin-utils@^7.25.7", "@babel/helper-plugin-utils@^7.27.1": version "7.27.1" resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.27.1.tgz#ddb2f876534ff8013e6c2b299bf4d39b3c51d44c" integrity sha512-1gn1Up5YXka3YYAHGKpbideQ5Yjf1tDa9qYcgysz+cNCXukyLl6DjPXhD3VRwSb8c0J9tA4b2+rHEZtc6R0tlw== @@ -859,15 +863,6 @@ "@babel/traverse" "^7.27.1" "@babel/helper-replace-supers@^7.27.1", "@babel/helper-replace-supers@^7.28.6": - version "7.28.6" - resolved "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.28.6.tgz#94aa9a1d7423a00aead3f204f78834ce7d53fe44" - integrity sha512-mq8e+laIk94/yFec3DxSjCRD2Z0TAjhVbEJY3UQrlwVo15Lmt7C2wAUbK4bjnTs4APkwsYLTahXRraQXhb1WCg== - dependencies: - "@babel/helper-member-expression-to-functions" "^7.28.5" - "@babel/helper-optimise-call-expression" "^7.27.1" - "@babel/traverse" "^7.28.6" - -"@babel/helper-replace-supers@^7.28.6": version "7.28.6" resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.28.6.tgz#94aa9a1d7423a00aead3f204f78834ce7d53fe44" integrity sha512-mq8e+laIk94/yFec3DxSjCRD2Z0TAjhVbEJY3UQrlwVo15Lmt7C2wAUbK4bjnTs4APkwsYLTahXRraQXhb1WCg== @@ -896,11 +891,6 @@ resolved "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.27.1.tgz#54da796097ab19ce67ed9f88b47bb2ec49367687" integrity sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA== -"@babel/helper-validator-identifier@^7.28.5": - version "7.28.5" - resolved "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.28.5.tgz#010b6938fab7cb7df74aa2bbc06aa503b8fe5fb4" - integrity sha512-qSs4ifwzKJSV39ucNjsvc6WVHs6b7S03sOh2OcHF9UHfVPqWWALUsNUVzhSBiItjRZoLHx7nIarVjqKVusUZ1Q== - "@babel/helper-validator-identifier@^7.28.5": version "7.28.5" resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.28.5.tgz#010b6938fab7cb7df74aa2bbc06aa503b8fe5fb4" @@ -920,15 +910,15 @@ "@babel/traverse" "^7.28.6" "@babel/types" "^7.28.6" -"@babel/helpers@^7.25.7", "@babel/helpers@^7.27.1": +"@babel/helpers@^7.25.7": version "7.27.1" resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.27.1.tgz#ffc27013038607cdba3288e692c3611c06a18aa4" integrity sha512-FCvFTm0sWV8Fxhpp2McP5/W53GPllQ9QeQ7SiqGWjMf/LVG07lFa5+pgK05IRhVwtvafT22KF+ZSnM9I545CvQ== dependencies: - "@babel/template" "^7.28.6" - "@babel/types" "^7.28.6" + "@babel/template" "^7.27.1" + "@babel/types" "^7.27.1" -"@babel/helpers@^7.28.3": +"@babel/helpers@^7.28.3", "@babel/helpers@^7.28.6": version "7.28.6" resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.28.6.tgz#fca903a313ae675617936e8998b814c415cbf5d7" integrity sha512-xOBvwq86HHdB7WUDTfKfT/Vuxh7gElQ+Sfti2Cy6yIWNW05P8iUslOVcZ4/sKbE+/jQaukQAdz/gf3724kYdqw== @@ -936,12 +926,12 @@ "@babel/template" "^7.28.6" "@babel/types" "^7.28.6" -"@babel/parser@^7.1.0", "@babel/parser@^7.14.7", "@babel/parser@^7.20.7", "@babel/parser@^7.23.9", "@babel/parser@^7.25.8", "@babel/parser@^7.27.1", "@babel/parser@^7.27.2": +"@babel/parser@^7.1.0", "@babel/parser@^7.14.7", "@babel/parser@^7.20.7", "@babel/parser@^7.23.9", "@babel/parser@^7.25.8": version "7.27.2" resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.27.2.tgz#577518bedb17a2ce4212afd052e01f7df0941127" integrity sha512-QYLs8299NA7WM/bZAdp+CviYYkVoYXlDW2rzliy3chxd1PQjej7JORuMJDJXJUb9g0TT+B99EwaVLKmX+sPXWw== dependencies: - "@babel/types" "^7.29.0" + "@babel/types" "^7.27.1" "@babel/parser@^7.28.3", "@babel/parser@^7.28.6", "@babel/parser@^7.29.0": version "7.29.0" @@ -956,7 +946,7 @@ integrity sha512-QPG3C9cCVRQLxAVwmefEmwdTanECuUBMQZ/ym5kiw3XKCGA7qkuQLcjWWHcrD/GKbn/WmJwaezfuuAOcyKlRPA== dependencies: "@babel/helper-plugin-utils" "^7.27.1" - "@babel/traverse" "^7.28.5" + "@babel/traverse" "^7.27.1" "@babel/plugin-bugfix-firefox-class-in-computed-class-key@^7.27.1": version "7.28.5" @@ -994,8 +984,8 @@ resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/-/plugin-bugfix-v8-static-class-fields-redefine-readonly-7.27.1.tgz#bb1c25af34d75115ce229a1de7fa44bf8f955670" integrity sha512-6BpaYGDavZqkI6yT+KSPdpZFfpnd68UKXbcjI9pJ13pvHhPrCKWOOLp+ysvMeA+DxnhuPpgIaRpxRxo5A9t5jw== dependencies: - "@babel/helper-plugin-utils" "^7.28.6" - "@babel/traverse" "^7.28.6" + "@babel/helper-plugin-utils" "^7.27.1" + "@babel/traverse" "^7.27.1" "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@^7.28.3": version "7.28.6" @@ -1015,7 +1005,7 @@ resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.27.1.tgz#88894aefd2b03b5ee6ad1562a7c8e1587496aecd" integrity sha512-UT/Jrhw57xg4ILHLFnzFpPDlMbcdEicaAtjPQpbj9wa8T4r5KVWCimHcL/460g8Ht0DMxDyjsLgiWSkVjnwPFg== dependencies: - "@babel/helper-plugin-utils" "^7.28.6" + "@babel/helper-plugin-utils" "^7.27.1" "@babel/plugin-syntax-import-assertions@^7.27.1": version "7.28.6" @@ -1029,7 +1019,7 @@ resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.27.1.tgz#34c017d54496f9b11b61474e7ea3dfd5563ffe07" integrity sha512-oFT0FrKHgF53f4vOsZGi2Hh3I35PfSmVs4IBFLFj4dnafP+hIWDLg3VyKmUHfLoLHlyxY4C7DGtmHuJgn+IGww== dependencies: - "@babel/helper-plugin-utils" "^7.28.6" + "@babel/helper-plugin-utils" "^7.27.1" "@babel/plugin-syntax-import-attributes@^7.27.1": version "7.28.6" @@ -1067,9 +1057,9 @@ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.27.1.tgz#ca433df983d68e1375398e7ca71bf2a4f6fd89d7" integrity sha512-eST9RrwlpaoJBDHShc+DS2SG4ATTi2MYNb4OxYkf3n+7eb49LWpnS+HSpVfW4x927qQwgk8A2hGNVaajAEw0EA== dependencies: - "@babel/helper-plugin-utils" "^7.28.6" + "@babel/helper-plugin-utils" "^7.27.1" "@babel/helper-remap-async-to-generator" "^7.27.1" - "@babel/traverse" "^7.29.0" + "@babel/traverse" "^7.27.1" "@babel/plugin-transform-async-generator-functions@^7.28.0": version "7.29.0" @@ -1085,8 +1075,8 @@ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.27.1.tgz#9a93893b9379b39466c74474f55af03de78c66e7" integrity sha512-NREkZsZVJS4xmTr8qzE5y8AfIPqsdQfRuUiLRTEzb7Qii8iFWCyDKaUV2c0rCuh4ljDZ98ALHP/PetiBV2nddA== dependencies: - "@babel/helper-module-imports" "^7.28.6" - "@babel/helper-plugin-utils" "^7.28.6" + "@babel/helper-module-imports" "^7.27.1" + "@babel/helper-plugin-utils" "^7.27.1" "@babel/helper-remap-async-to-generator" "^7.27.1" "@babel/plugin-transform-async-to-generator@^7.27.1": @@ -1110,7 +1100,7 @@ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.27.1.tgz#bc0dbe8ac6de5602981ba58ef68c6df8ef9bfbb3" integrity sha512-QEcFlMl9nGTgh1rn2nIeU5bkfb9BAjaQcWbiP4LvKxUot52ABcTkpcyJ7f2Q2U2RuQ84BNLgts3jRme2dTx6Fw== dependencies: - "@babel/helper-plugin-utils" "^7.28.6" + "@babel/helper-plugin-utils" "^7.27.1" "@babel/plugin-transform-block-scoping@^7.28.0": version "7.28.6" @@ -1124,8 +1114,8 @@ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.27.1.tgz#dd40a6a370dfd49d32362ae206ddaf2bb082a925" integrity sha512-D0VcalChDMtuRvJIu3U/fwWjf8ZMykz5iZsg77Nuj821vCKI3zCyRLwRdWbsuJ/uRwZhZ002QtCqIkwC/ZkvbA== dependencies: - "@babel/helper-create-class-features-plugin" "^7.28.6" - "@babel/helper-plugin-utils" "^7.28.6" + "@babel/helper-create-class-features-plugin" "^7.27.1" + "@babel/helper-plugin-utils" "^7.27.1" "@babel/plugin-transform-class-properties@^7.27.1": version "7.28.6" @@ -1140,8 +1130,8 @@ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.27.1.tgz#7e920d5625b25bbccd3061aefbcc05805ed56ce4" integrity sha512-s734HmYU78MVzZ++joYM+NkJusItbdRcbm+AGRgJCt3iA+yux0QpD9cBVdz3tKyrjVYWRl7j0mHSmv4lhV0aoA== dependencies: - "@babel/helper-create-class-features-plugin" "^7.28.6" - "@babel/helper-plugin-utils" "^7.28.6" + "@babel/helper-create-class-features-plugin" "^7.27.1" + "@babel/helper-plugin-utils" "^7.27.1" "@babel/plugin-transform-class-static-block@^7.28.3": version "7.28.6" @@ -1156,12 +1146,12 @@ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.27.1.tgz#03bb04bea2c7b2f711f0db7304a8da46a85cced4" integrity sha512-7iLhfFAubmpeJe/Wo2TVuDrykh/zlWXLzPNdL0Jqn/Xu8R3QQ8h9ff8FQoISZOsw74/HFqFI7NX63HN7QFIHKA== dependencies: - "@babel/helper-annotate-as-pure" "^7.27.3" - "@babel/helper-compilation-targets" "^7.28.6" - "@babel/helper-globals" "^7.28.0" - "@babel/helper-plugin-utils" "^7.28.6" - "@babel/helper-replace-supers" "^7.28.6" - "@babel/traverse" "^7.28.6" + "@babel/helper-annotate-as-pure" "^7.27.1" + "@babel/helper-compilation-targets" "^7.27.1" + "@babel/helper-plugin-utils" "^7.27.1" + "@babel/helper-replace-supers" "^7.27.1" + "@babel/traverse" "^7.27.1" + globals "^11.1.0" "@babel/plugin-transform-classes@^7.28.3": version "7.28.6" @@ -1180,8 +1170,8 @@ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.27.1.tgz#81662e78bf5e734a97982c2b7f0a793288ef3caa" integrity sha512-lj9PGWvMTVksbWiDT2tW68zGS/cyo4AkZ/QTp0sQT0mjPopCmrSkzxeXkznjqBxzDI6TclZhOJbBmbBLjuOZUw== dependencies: - "@babel/helper-plugin-utils" "^7.28.6" - "@babel/template" "^7.28.6" + "@babel/helper-plugin-utils" "^7.27.1" + "@babel/template" "^7.27.1" "@babel/plugin-transform-computed-properties@^7.27.1": version "7.28.6" @@ -1191,13 +1181,12 @@ "@babel/helper-plugin-utils" "^7.28.6" "@babel/template" "^7.28.6" -"@babel/plugin-transform-destructuring@^7.25.7", "@babel/plugin-transform-destructuring@^7.27.1": +"@babel/plugin-transform-destructuring@^7.25.7": version "7.27.1" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.27.1.tgz#d5916ef7089cb254df0418ae524533c1b72ba656" integrity sha512-ttDCqhfvpE9emVkXbPD8vyxxh4TWYACVybGkDj+oReOGwnp066ITEivDlLwe0b1R0+evJ13IXQuLNB5w1fhC5Q== dependencies: "@babel/helper-plugin-utils" "^7.27.1" - "@babel/traverse" "^7.28.5" "@babel/plugin-transform-destructuring@^7.28.0", "@babel/plugin-transform-destructuring@^7.28.5": version "7.28.5" @@ -1212,8 +1201,8 @@ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.27.1.tgz#aa6821de864c528b1fecf286f0a174e38e826f4d" integrity sha512-gEbkDVGRvjj7+T1ivxrfgygpT7GUd4vmODtYpbs0gZATdkX8/iSnOtZSxiZnsgm1YjTgjI6VKBGSJJevkrclzw== dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.28.5" - "@babel/helper-plugin-utils" "^7.28.6" + "@babel/helper-create-regexp-features-plugin" "^7.27.1" + "@babel/helper-plugin-utils" "^7.27.1" "@babel/plugin-transform-dotall-regex@^7.27.1": version "7.28.6" @@ -1235,8 +1224,8 @@ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-duplicate-named-capturing-groups-regex/-/plugin-transform-duplicate-named-capturing-groups-regex-7.27.1.tgz#5043854ca620a94149372e69030ff8cb6a9eb0ec" integrity sha512-hkGcueTEzuhB30B3eJCbCYeCaaEQOmQR0AdvzpD4LoN0GXMWzzGSuRrxR2xTnCrvNbVwK9N6/jQ92GSLfiZWoQ== dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.28.5" - "@babel/helper-plugin-utils" "^7.28.6" + "@babel/helper-create-regexp-features-plugin" "^7.27.1" + "@babel/helper-plugin-utils" "^7.27.1" "@babel/plugin-transform-duplicate-named-capturing-groups-regex@^7.27.1": version "7.29.0" @@ -1266,7 +1255,7 @@ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.27.1.tgz#fc497b12d8277e559747f5a3ed868dd8064f83e1" integrity sha512-uspvXnhHvGKf2r4VVtBpeFnuDWsJLQ6MF6lGJLC89jBR1uoVeqM416AZtTuhTezOfgHicpJQmoD5YUakO/YmXQ== dependencies: - "@babel/helper-plugin-utils" "^7.28.6" + "@babel/helper-plugin-utils" "^7.27.1" "@babel/plugin-transform-exponentiation-operator@^7.27.1": version "7.28.6" @@ -1304,7 +1293,7 @@ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.27.1.tgz#a2e0ce6ef256376bd527f290da023983527a4f4c" integrity sha512-6WVLVJiTjqcQauBhn1LkICsR2H+zm62I3h9faTDKt1qP4jn2o72tSvqMwtGFKGTpojce0gJs+76eZ2uCHRZh0Q== dependencies: - "@babel/helper-plugin-utils" "^7.28.6" + "@babel/helper-plugin-utils" "^7.27.1" "@babel/plugin-transform-json-strings@^7.27.1": version "7.28.6" @@ -1325,7 +1314,7 @@ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.27.1.tgz#890cb20e0270e0e5bebe3f025b434841c32d5baa" integrity sha512-SJvDs5dXxiae4FbSL1aBJlG4wvl594N6YEVVn9e3JGulwioy6z3oPjx/sQBO3Y4NwUu5HNix6KJ3wBZoewcdbw== dependencies: - "@babel/helper-plugin-utils" "^7.28.6" + "@babel/helper-plugin-utils" "^7.27.1" "@babel/plugin-transform-logical-assignment-operators@^7.27.1": version "7.28.6" @@ -1354,8 +1343,8 @@ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.27.1.tgz#8e44ed37c2787ecc23bdc367f49977476614e832" integrity sha512-OJguuwlTYlN0gBZFRPqwOGNWssZjfIUdS7HMYtN8c1KmwpwHFBwTeFZrg9XZa+DFTitWOW5iTAG7tyCUPsCCyw== dependencies: - "@babel/helper-module-transforms" "^7.28.6" - "@babel/helper-plugin-utils" "^7.28.6" + "@babel/helper-module-transforms" "^7.27.1" + "@babel/helper-plugin-utils" "^7.27.1" "@babel/plugin-transform-modules-commonjs@^7.27.1": version "7.28.6" @@ -1370,10 +1359,10 @@ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.27.1.tgz#00e05b61863070d0f3292a00126c16c0e024c4ed" integrity sha512-w5N1XzsRbc0PQStASMksmUeqECuzKuTJer7kFagK8AXgpCMkeDMO5S+aaFb7A51ZYDF7XI34qsTX+fkHiIm5yA== dependencies: - "@babel/helper-module-transforms" "^7.28.6" - "@babel/helper-plugin-utils" "^7.28.6" - "@babel/helper-validator-identifier" "^7.28.5" - "@babel/traverse" "^7.29.0" + "@babel/helper-module-transforms" "^7.27.1" + "@babel/helper-plugin-utils" "^7.27.1" + "@babel/helper-validator-identifier" "^7.27.1" + "@babel/traverse" "^7.27.1" "@babel/plugin-transform-modules-systemjs@^7.27.1": version "7.29.0" @@ -1398,8 +1387,8 @@ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.27.1.tgz#f32b8f7818d8fc0cc46ee20a8ef75f071af976e1" integrity sha512-SstR5JYy8ddZvD6MhV0tM/j16Qds4mIpJTOd1Yu9J9pJjH93bxHECF7pgtc28XvkzTD6Pxcm/0Z73Hvk7kb3Ng== dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.28.5" - "@babel/helper-plugin-utils" "^7.28.6" + "@babel/helper-create-regexp-features-plugin" "^7.27.1" + "@babel/helper-plugin-utils" "^7.27.1" "@babel/plugin-transform-named-capturing-groups-regex@^7.27.1": version "7.29.0" @@ -1421,7 +1410,7 @@ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.27.1.tgz#4f9d3153bf6782d73dd42785a9d22d03197bc91d" integrity sha512-aGZh6xMo6q9vq1JGcw58lZ1Z0+i0xB2x0XaauNIUXd6O1xXc3RwoWEBlsTQrY4KQ9Jf0s5rgD6SiNkaUdJegTA== dependencies: - "@babel/helper-plugin-utils" "^7.28.6" + "@babel/helper-plugin-utils" "^7.27.1" "@babel/plugin-transform-nullish-coalescing-operator@^7.27.1": version "7.28.6" @@ -1435,7 +1424,7 @@ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.27.1.tgz#614e0b15cc800e5997dadd9bd6ea524ed6c819c6" integrity sha512-fdPKAcujuvEChxDBJ5c+0BTaS6revLV7CJL08e4m3de8qJfNIuCc2nc7XJYOjBoTMJeqSmwXJ0ypE14RCjLwaw== dependencies: - "@babel/helper-plugin-utils" "^7.28.6" + "@babel/helper-plugin-utils" "^7.27.1" "@babel/plugin-transform-numeric-separator@^7.27.1": version "7.28.6" @@ -1449,11 +1438,10 @@ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.27.2.tgz#67f9ab822347aa2bcee91e8996763da79bdea973" integrity sha512-AIUHD7xJ1mCrj3uPozvtngY3s0xpv7Nu7DoUSnzNY6Xam1Cy4rUznR//pvMHOhQ4AvbCexhbqXCtpxGHOGOO6g== dependencies: - "@babel/helper-compilation-targets" "^7.28.6" - "@babel/helper-plugin-utils" "^7.28.6" - "@babel/plugin-transform-destructuring" "^7.28.5" - "@babel/plugin-transform-parameters" "^7.27.7" - "@babel/traverse" "^7.28.6" + "@babel/helper-compilation-targets" "^7.27.2" + "@babel/helper-plugin-utils" "^7.27.1" + "@babel/plugin-transform-destructuring" "^7.27.1" + "@babel/plugin-transform-parameters" "^7.27.1" "@babel/plugin-transform-object-rest-spread@^7.28.0": version "7.28.6" @@ -1479,7 +1467,7 @@ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.27.1.tgz#84c7341ebde35ccd36b137e9e45866825072a30c" integrity sha512-txEAEKzYrHEX4xSZN4kJ+OfKXFVSWKB2ZxM9dpcE3wT7smwkNmXo5ORRlVzMVdJbD+Q8ILTgSD7959uj+3Dm3Q== dependencies: - "@babel/helper-plugin-utils" "^7.28.6" + "@babel/helper-plugin-utils" "^7.27.1" "@babel/plugin-transform-optional-catch-binding@^7.27.1": version "7.28.6" @@ -1493,10 +1481,10 @@ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.27.1.tgz#874ce3c4f06b7780592e946026eb76a32830454f" integrity sha512-BQmKPPIuc8EkZgNKsv0X4bPmOoayeu4F1YCwx2/CfmDSXDbp7GnzlUH+/ul5VGfRg1AoFPsrIThlEBj2xb4CAg== dependencies: - "@babel/helper-plugin-utils" "^7.28.6" + "@babel/helper-plugin-utils" "^7.27.1" "@babel/helper-skip-transparent-expression-wrappers" "^7.27.1" -"@babel/plugin-transform-parameters@^7.25.7", "@babel/plugin-transform-parameters@^7.27.1": +"@babel/plugin-transform-parameters@^7.25.7": version "7.27.1" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.27.1.tgz#80334b54b9b1ac5244155a0c8304a187a618d5a7" integrity sha512-018KRk76HWKeZ5l4oTj2zPpSh+NbGdt0st5S6x0pga6HgrjBOJb24mMDHorFopOOd6YHkLgOZ+zaCjZGPO4aKg== @@ -1523,8 +1511,8 @@ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.27.1.tgz#fdacbab1c5ed81ec70dfdbb8b213d65da148b6af" integrity sha512-10FVt+X55AjRAYI9BrdISN9/AQWHqldOeZDUoLyif1Kn05a56xVBXb8ZouL8pZ9jem8QpXaOt8TS7RHUIS+GPA== dependencies: - "@babel/helper-create-class-features-plugin" "^7.28.6" - "@babel/helper-plugin-utils" "^7.28.6" + "@babel/helper-create-class-features-plugin" "^7.27.1" + "@babel/helper-plugin-utils" "^7.27.1" "@babel/plugin-transform-private-methods@^7.27.1": version "7.28.6" @@ -1539,9 +1527,9 @@ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.27.1.tgz#4dbbef283b5b2f01a21e81e299f76e35f900fb11" integrity sha512-5J+IhqTi1XPa0DXF83jYOaARrX+41gOewWbkPyjMNRDqgOCqdffGh8L3f/Ek5utaEBZExjSAzcyjmV9SSAWObQ== dependencies: - "@babel/helper-annotate-as-pure" "^7.27.3" - "@babel/helper-create-class-features-plugin" "^7.28.6" - "@babel/helper-plugin-utils" "^7.28.6" + "@babel/helper-annotate-as-pure" "^7.27.1" + "@babel/helper-create-class-features-plugin" "^7.27.1" + "@babel/helper-plugin-utils" "^7.27.1" "@babel/plugin-transform-private-property-in-object@^7.27.1": version "7.28.6" @@ -1564,7 +1552,7 @@ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.27.1.tgz#0a471df9213416e44cd66bf67176b66f65768401" integrity sha512-B19lbbL7PMrKr52BNPjCqg1IyNUIjTcxKj8uX9zHO+PmWN93s19NDr/f69mIkEp2x9nmDJ08a7lgHaTTzvW7mw== dependencies: - "@babel/helper-plugin-utils" "^7.28.6" + "@babel/helper-plugin-utils" "^7.27.1" "@babel/plugin-transform-regenerator@^7.28.3": version "7.29.0" @@ -1612,7 +1600,7 @@ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.27.1.tgz#1a264d5fc12750918f50e3fe3e24e437178abb08" integrity sha512-kpb3HUqaILBJcRFVhFUs6Trdd4mkrzcGXss+6/mxUd273PfbWqSDHRzMT2234gIg2QYfAjvXLSquP1xECSg09Q== dependencies: - "@babel/helper-plugin-utils" "^7.28.6" + "@babel/helper-plugin-utils" "^7.27.1" "@babel/helper-skip-transparent-expression-wrappers" "^7.27.1" "@babel/plugin-transform-spread@^7.27.1": @@ -1656,8 +1644,8 @@ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.27.1.tgz#bdfe2d3170c78c5691a3c3be934c8c0087525956" integrity sha512-uW20S39PnaTImxp39O5qFlHLS9LJEmANjMG7SxIhap8rCHqu0Ik+tLEPX5DKmHn6CsWQ7j3lix2tFOa5YtL12Q== dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.28.5" - "@babel/helper-plugin-utils" "^7.28.6" + "@babel/helper-create-regexp-features-plugin" "^7.27.1" + "@babel/helper-plugin-utils" "^7.27.1" "@babel/plugin-transform-unicode-property-regex@^7.27.1": version "7.28.6" @@ -1680,8 +1668,8 @@ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.27.1.tgz#6ab706d10f801b5c72da8bb2548561fa04193cd1" integrity sha512-EtkOujbc4cgvb0mlpQefi4NTPBzhSIevblFevACNLUspmrALgmEBdL/XfnyyITfd8fKBZrZys92zOWcik7j9Tw== dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.28.5" - "@babel/helper-plugin-utils" "^7.28.6" + "@babel/helper-create-regexp-features-plugin" "^7.27.1" + "@babel/helper-plugin-utils" "^7.27.1" "@babel/plugin-transform-unicode-sets-regex@^7.27.1": version "7.28.6" @@ -1860,14 +1848,14 @@ resolved "https://registry.npmjs.org/@babel/runtime/-/runtime-7.28.6.tgz#d267a43cb1836dc4d182cce93ae75ba954ef6d2b" integrity sha512-05WQkdpL9COIMz4LjTxGpPNCdlpyimKppYNoJ5Di5EUObifl8t4tuLuUBBZEpoLYOmfvIWrsp9fCl0HoPRVTdA== -"@babel/template@^7.25.7", "@babel/template@^7.27.1": +"@babel/template@^7.25.7": version "7.27.2" resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.27.2.tgz#fa78ceed3c4e7b63ebf6cb39e5852fca45f6809d" integrity sha512-LPDZ85aEJyYSd18/DkjNh4/y1ntkE5KwUHWTiqgRxruuZL2F1yuHligVHLvcHY2vMHXttKFpJn6LwfI7cw7ODw== dependencies: - "@babel/code-frame" "^7.28.6" - "@babel/parser" "^7.28.6" - "@babel/types" "^7.28.6" + "@babel/code-frame" "^7.27.1" + "@babel/parser" "^7.27.2" + "@babel/types" "^7.27.1" "@babel/template@^7.27.2", "@babel/template@^7.28.6": version "7.28.6" @@ -1883,13 +1871,13 @@ resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.27.1.tgz#4db772902b133bbddd1c4f7a7ee47761c1b9f291" integrity sha512-ZCYtZciz1IWJB4U61UPu4KEaqyfj+r5T1Q5mqPo+IBpcG9kHv30Z0aD8LXPgC1trYa6rK0orRyAhqUgk4MjmEg== dependencies: - "@babel/code-frame" "^7.29.0" - "@babel/generator" "^7.29.0" - "@babel/helper-globals" "^7.28.0" - "@babel/parser" "^7.29.0" - "@babel/template" "^7.28.6" - "@babel/types" "^7.29.0" + "@babel/code-frame" "^7.27.1" + "@babel/generator" "^7.27.1" + "@babel/parser" "^7.27.1" + "@babel/template" "^7.27.1" + "@babel/types" "^7.27.1" debug "^4.3.1" + globals "^11.1.0" "@babel/traverse@^7.28.0", "@babel/traverse@^7.28.3", "@babel/traverse@^7.28.5", "@babel/traverse@^7.28.6", "@babel/traverse@^7.29.0": version "7.29.0" @@ -1910,7 +1898,7 @@ integrity sha512-+EzkxvLNfiUeKMgy/3luqfsCWFRXLb7U6wNQTk60tovuckwB15B191tJWvpp4HjiQWdJkCxO3Wbvc6jlk3Xb2Q== dependencies: "@babel/helper-string-parser" "^7.27.1" - "@babel/helper-validator-identifier" "^7.28.5" + "@babel/helper-validator-identifier" "^7.27.1" "@babel/types@^7.27.3", "@babel/types@^7.28.2", "@babel/types@^7.28.5", "@babel/types@^7.28.6", "@babel/types@^7.29.0": version "7.29.0" @@ -2057,10 +2045,10 @@ esquery "^1.6.0" jsdoc-type-pratt-parser "~4.1.0" -"@esbuild/aix-ppc64@0.25.4": - version "0.25.4" - resolved "https://registry.yarnpkg.com/@esbuild/aix-ppc64/-/aix-ppc64-0.25.4.tgz#830d6476cbbca0c005136af07303646b419f1162" - integrity sha512-1VCICWypeQKhVbE9oW/sJaAmjLxhVqacdkvPLEjwlttjfwENRSClS8EjBz0KzRyFSCPDIkuXW34Je/vk7zdB7Q== +"@esbuild/aix-ppc64@0.25.12": + version "0.25.12" + resolved "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.25.12.tgz#80fcbe36130e58b7670511e888b8e88a259ed76c" + integrity sha512-Hhmwd6CInZ3dwpuGTF8fJG6yoWmsToE+vYgD4nytZVxcu1ulHpUQRAB1UJ8+N1Am3Mz4+xOByoQoSZf4D+CpkA== "@esbuild/aix-ppc64@0.25.9": version "0.25.9" @@ -2267,15 +2255,20 @@ resolved "https://registry.yarnpkg.com/@esbuild/openbsd-x64/-/openbsd-x64-0.25.9.tgz#30855c9f8381fac6a0ef5b5f31ac6e7108a66ecf" integrity sha512-1MkgTCuvMGWuqVtAvkpkXFmtL8XhWy+j4jaSO2wxfJtilVCi0ZE37b8uOdMItIHz4I6z1bWWtEX4CJwcKYLcuA== +"@esbuild/openharmony-arm64@0.25.12": + version "0.25.12" + resolved "https://registry.npmjs.org/@esbuild/openharmony-arm64/-/openharmony-arm64-0.25.12.tgz#49e0b768744a3924be0d7fd97dd6ce9b2923d88d" + integrity sha512-rm0YWsqUSRrjncSXGA7Zv78Nbnw4XL6/dzr20cyrQf7ZmRcsovpcRBdhD43Nuk3y7XIoW2OxMVvwuRvk9XdASg== + "@esbuild/openharmony-arm64@0.25.9": version "0.25.9" resolved "https://registry.yarnpkg.com/@esbuild/openharmony-arm64/-/openharmony-arm64-0.25.9.tgz#2f2144af31e67adc2a8e3705c20c2bd97bd88314" integrity sha512-4Xd0xNiMVXKh6Fa7HEJQbrpP3m3DDn43jKxMjxLLRjWnRsfxjORYJlXPO4JNcXtOyfajXorRKY9NkOpTHptErg== -"@esbuild/sunos-x64@0.25.4": - version "0.25.4" - resolved "https://registry.yarnpkg.com/@esbuild/sunos-x64/-/sunos-x64-0.25.4.tgz#cd596fa65a67b3b7adc5ecd52d9f5733832e1abd" - integrity sha512-Mw+tzy4pp6wZEK0+Lwr76pWLjrtjmJyUB23tHKqEDP74R3q95luY/bXqXZeYl4NYlvwOqoRKlInQialgCKy67Q== +"@esbuild/sunos-x64@0.25.12": + version "0.25.12" + resolved "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.25.12.tgz#a6ed7d6778d67e528c81fb165b23f4911b9b13d6" + integrity sha512-3wGSCDyuTHQUzt0nV7bocDy72r2lI33QL3gkDNGkod22EsYl04sMf0qLb8luNKTOmgF/eDEDP5BFNwoBKH441w== "@esbuild/sunos-x64@0.25.9": version "0.25.9" @@ -2312,13 +2305,20 @@ resolved "https://registry.yarnpkg.com/@esbuild/win32-x64/-/win32-x64-0.25.9.tgz#585624dc829cfb6e7c0aa6c3ca7d7e6daa87e34f" integrity sha512-PPOl1mi6lpLNQxnGoyAfschAodRFYXJ+9fs6WHXz7CSWKbOqiMZsubC+BQsVKuul+3vKLuwTHsS2c2y9EoKwxQ== -"@eslint-community/eslint-utils@^4.2.0", "@eslint-community/eslint-utils@^4.4.0", "@eslint-community/eslint-utils@^4.7.0": +"@eslint-community/eslint-utils@^4.2.0", "@eslint-community/eslint-utils@^4.4.0": version "4.7.0" resolved "https://registry.yarnpkg.com/@eslint-community/eslint-utils/-/eslint-utils-4.7.0.tgz#607084630c6c033992a082de6e6fbc1a8b52175a" integrity sha512-dyybb3AcajC7uha6CvhdVRJqaKyn7w2YKqKyAN37NKYgZT36w+iRb0Dymmc5qEJ549c/S31cMMSFd75bteCpCw== dependencies: eslint-visitor-keys "^3.4.3" +"@eslint-community/eslint-utils@^4.9.1": + version "4.9.1" + resolved "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.9.1.tgz#4e90af67bc51ddee6cdef5284edf572ec376b595" + integrity sha512-phrYmNiYppR7znFEdqgfWHXR6NCkZEK7hwWDHZUjit/2/U0r6XvkDl0SYnoM51Hq7FhCGdLDT6zxCCOY1hexsQ== + dependencies: + eslint-visitor-keys "^3.4.3" + "@eslint-community/regexpp@^4.10.0", "@eslint-community/regexpp@^4.12.1": version "4.12.2" resolved "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.12.2.tgz#bccdf615bcf7b6e8db830ec0b8d21c9a25de597b" @@ -2595,18 +2595,6 @@ dependencies: "@isaacs/balanced-match" "^4.0.1" -"@isaacs/cliui@^8.0.2": - version "8.0.2" - resolved "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz#b37667b7bc181c168782259bab42474fbf52b550" - integrity sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA== - dependencies: - string-width "^5.1.2" - string-width-cjs "npm:string-width@^4.2.0" - strip-ansi "^7.0.1" - strip-ansi-cjs "npm:strip-ansi@^6.0.1" - wrap-ansi "^8.1.0" - wrap-ansi-cjs "npm:wrap-ansi@^7.0.0" - "@isaacs/cliui@^9.0.0": version "9.0.0" resolved "https://registry.npmjs.org/@isaacs/cliui/-/cliui-9.0.0.tgz#4d0a3f127058043bf2e7ee169eaf30ed901302f3" @@ -2637,7 +2625,8 @@ resolved "https://registry.yarnpkg.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.8.tgz#4f0e06362e01362f823d348f1872b08f666d8142" integrity sha512-imAbBGkb+ebQyxKgzv5Hu2nmROxoDOXHh80evxdoXNOrvAnVx7zimzc1Oo5h9RlfV4vPXaE2iM5pOFbvOCClWA== dependencies: - "@jridgewell/sourcemap-codec" "^1.5.0" + "@jridgewell/set-array" "^1.2.1" + "@jridgewell/sourcemap-codec" "^1.4.10" "@jridgewell/trace-mapping" "^0.3.24" "@jridgewell/remapping@^2.3.5": @@ -2661,16 +2650,11 @@ "@jridgewell/gen-mapping" "^0.3.5" "@jridgewell/trace-mapping" "^0.3.25" -"@jridgewell/sourcemap-codec@^1.4.10", "@jridgewell/sourcemap-codec@^1.4.14", "@jridgewell/sourcemap-codec@^1.5.0": +"@jridgewell/sourcemap-codec@^1.4.10", "@jridgewell/sourcemap-codec@^1.4.14", "@jridgewell/sourcemap-codec@^1.5.0", "@jridgewell/sourcemap-codec@^1.5.5": version "1.5.5" resolved "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.5.tgz#6912b00d2c631c0d15ce1a7ab57cd657f2a8f8ba" integrity sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og== -"@jridgewell/sourcemap-codec@^1.5.5": - version "1.5.5" - resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.5.tgz#6912b00d2c631c0d15ce1a7ab57cd657f2a8f8ba" - integrity sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og== - "@jridgewell/trace-mapping@0.3.9": version "0.3.9" resolved "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz#6534fd5933a53ba7cbf3a17615e273a0d1273ff9" @@ -2687,15 +2671,12 @@ "@jridgewell/resolve-uri" "^3.1.0" "@jridgewell/sourcemap-codec" "^1.4.14" -"@jridgewell/trace-mapping@^0.3.28": - version "0.3.31" - resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.31.tgz#db15d6781c931f3a251a3dac39501c98a6082fd0" - integrity sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw== - dependencies: - "@jridgewell/resolve-uri" "^3.1.0" - "@jridgewell/sourcemap-codec" "^1.4.14" +"@jsonjoy.com/base64@17.65.0": + version "17.65.0" + resolved "https://registry.npmjs.org/@jsonjoy.com/base64/-/base64-17.65.0.tgz#ba3b023c69ab311e5b706289414a44ee46117824" + integrity sha512-Xrh7Fm/M0QAYpekSgmskdZYnFdSGnsxJ/tHaolA4bNwWdG9i65S8m83Meh7FOxyJyQAdo4d4J97NOomBLEfkDQ== -"@jsonjoy.com/base64@^1.1.1": +"@jsonjoy.com/base64@^1.1.2": version "1.1.2" resolved "https://registry.npmjs.org/@jsonjoy.com/base64/-/base64-1.1.2.tgz#cf8ea9dcb849b81c95f14fc0aaa151c6b54d2578" integrity sha512-q6XAnWQDIMA3+FTiOYajoYqySkO+JSat0ytXGSuRdq9uXE7o92gzuQwQM14xaCRlBLGq3v5miDGC4vkVTn54xA== @@ -3449,11 +3430,6 @@ estree-walker "^2.0.2" picomatch "^4.0.2" -"@rollup/rollup-android-arm-eabi@4.41.0": - version "4.41.0" - resolved "https://registry.yarnpkg.com/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.41.0.tgz#9145b38faf3fbfe3ec557130110e772f797335aa" - integrity sha512-KxN+zCjOYHGwCl4UCtSfZ6jrq/qi88JDUtiEFk8LELEHq2Egfc/FgW+jItZiOLRuQfb/3xJSgFuNPC9jzggX+A== - "@rollup/rollup-android-arm-eabi@4.52.3": version "4.52.3" resolved "https://registry.yarnpkg.com/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.52.3.tgz#7050c2acdc1214a730058e21f613ab0e1fe1ced9" @@ -3464,11 +3440,6 @@ resolved "https://registry.yarnpkg.com/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.57.1.tgz#add5e608d4e7be55bc3ca3d962490b8b1890e088" integrity sha512-A6ehUVSiSaaliTxai040ZpZ2zTevHYbvu/lDoeAteHI8QnaosIzm4qwtezfRg1jOYaUmnzLX1AOD6Z+UJjtifg== -"@rollup/rollup-android-arm64@4.41.0": - version "4.41.0" - resolved "https://registry.yarnpkg.com/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.41.0.tgz#d73d641c59e9d7827e5ce0af9dfbc168b95cce0f" - integrity sha512-yDvqx3lWlcugozax3DItKJI5j05B0d4Kvnjx+5mwiUpWramVvmAByYigMplaoAQ3pvdprGCTCE03eduqE/8mPQ== - "@rollup/rollup-android-arm64@4.52.3": version "4.52.3" resolved "https://registry.yarnpkg.com/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.52.3.tgz#3f5b2afbfcbe9021649701cf6ff0d54b1fb7e4a5" @@ -3479,11 +3450,6 @@ resolved "https://registry.yarnpkg.com/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.57.1.tgz#10bd0382b73592beee6e9800a69401a29da625c4" integrity sha512-dQaAddCY9YgkFHZcFNS/606Exo8vcLHwArFZ7vxXq4rigo2bb494/xKMMwRRQW6ug7Js6yXmBZhSBRuBvCCQ3w== -"@rollup/rollup-darwin-arm64@4.41.0": - version "4.41.0" - resolved "https://registry.yarnpkg.com/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.41.0.tgz#45d9d71d941117c98e7a5e77f60f0bc682d27e82" - integrity sha512-2KOU574vD3gzcPSjxO0eyR5iWlnxxtmW1F5CkNOHmMlueKNCQkxR6+ekgWyVnz6zaZihpUNkGxjsYrkTJKhkaw== - "@rollup/rollup-darwin-arm64@4.52.3": version "4.52.3" resolved "https://registry.yarnpkg.com/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.52.3.tgz#70a1679fb4393ba7bafb730ee56a5278cbcdafb0" @@ -3494,11 +3460,6 @@ resolved "https://registry.yarnpkg.com/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.57.1.tgz#1e99ab04c0b8c619dd7bbde725ba2b87b55bfd81" integrity sha512-crNPrwJOrRxagUYeMn/DZwqN88SDmwaJ8Cvi/TN1HnWBU7GwknckyosC2gd0IqYRsHDEnXf328o9/HC6OkPgOg== -"@rollup/rollup-darwin-x64@4.41.0": - version "4.41.0" - resolved "https://registry.yarnpkg.com/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.41.0.tgz#8d72fb5f81714cb43e90f263fb1674520cce3f2a" - integrity sha512-gE5ACNSxHcEZyP2BA9TuTakfZvULEW4YAOtxl/A/YDbIir/wPKukde0BNPlnBiP88ecaN4BJI2TtAd+HKuZPQQ== - "@rollup/rollup-darwin-x64@4.52.3": version "4.52.3" resolved "https://registry.yarnpkg.com/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.52.3.tgz#ae75aec88fa72069de9bca3a3ec22bf4e6a962bf" @@ -3509,11 +3470,6 @@ resolved "https://registry.yarnpkg.com/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.57.1.tgz#69e741aeb2839d2e8f0da2ce7a33d8bd23632423" integrity sha512-Ji8g8ChVbKrhFtig5QBV7iMaJrGtpHelkB3lsaKzadFBe58gmjfGXAOfI5FV0lYMH8wiqsxKQ1C9B0YTRXVy4w== -"@rollup/rollup-freebsd-arm64@4.41.0": - version "4.41.0" - resolved "https://registry.yarnpkg.com/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.41.0.tgz#a52b58852c9cec9255e382a2f335b08bc8c6111d" - integrity sha512-GSxU6r5HnWij7FoSo7cZg3l5GPg4HFLkzsFFh0N/b16q5buW1NAWuCJ+HMtIdUEi6XF0qH+hN0TEd78laRp7Dg== - "@rollup/rollup-freebsd-arm64@4.52.3": version "4.52.3" resolved "https://registry.yarnpkg.com/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.52.3.tgz#8a2bda997faa1d7e335ce1961ce71d1a76ac6288" @@ -3524,11 +3480,6 @@ resolved "https://registry.yarnpkg.com/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.57.1.tgz#3736c232a999c7bef7131355d83ebdf9651a0839" integrity sha512-R+/WwhsjmwodAcz65guCGFRkMb4gKWTcIeLy60JJQbXrJ97BOXHxnkPFrP+YwFlaS0m+uWJTstrUA9o+UchFug== -"@rollup/rollup-freebsd-x64@4.41.0": - version "4.41.0" - resolved "https://registry.yarnpkg.com/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.41.0.tgz#104511dc64612789ddda41d164ab07cdac84a6c1" - integrity sha512-KGiGKGDg8qLRyOWmk6IeiHJzsN/OYxO6nSbT0Vj4MwjS2XQy/5emsmtoqLAabqrohbgLWJ5GV3s/ljdrIr8Qjg== - "@rollup/rollup-freebsd-x64@4.52.3": version "4.52.3" resolved "https://registry.yarnpkg.com/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.52.3.tgz#fc287bcc39b9a9c0df97336d68fd5f4458f87977" @@ -3539,11 +3490,6 @@ resolved "https://registry.yarnpkg.com/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.57.1.tgz#227dcb8f466684070169942bd3998901c9bfc065" integrity sha512-IEQTCHeiTOnAUC3IDQdzRAGj3jOAYNr9kBguI7MQAAZK3caezRrg0GxAb6Hchg4lxdZEI5Oq3iov/w/hnFWY9Q== -"@rollup/rollup-linux-arm-gnueabihf@4.41.0": - version "4.41.0" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.41.0.tgz#643e3ad19c93903201fde89abd76baaee725e6c2" - integrity sha512-46OzWeqEVQyX3N2/QdiU/CMXYDH/lSHpgfBkuhl3igpZiaB3ZIfSjKuOnybFVBQzjsLwkus2mjaESy8H41SzvA== - "@rollup/rollup-linux-arm-gnueabihf@4.52.3": version "4.52.3" resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.52.3.tgz#5b5a2a55dffaa64d7c7a231e80e491219e33d4f3" @@ -3554,11 +3500,6 @@ resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.57.1.tgz#ba004b30df31b724f99ce66e7128248bea17cb0c" integrity sha512-F8sWbhZ7tyuEfsmOxwc2giKDQzN3+kuBLPwwZGyVkLlKGdV1nvnNwYD0fKQ8+XS6hp9nY7B+ZeK01EBUE7aHaw== -"@rollup/rollup-linux-arm-musleabihf@4.41.0": - version "4.41.0" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.41.0.tgz#fdc6a595aec7b20c5bfdac81412028c56d734e63" - integrity sha512-lfgW3KtQP4YauqdPpcUZHPcqQXmTmH4nYU0cplNeW583CMkAGjtImw4PKli09NFi2iQgChk4e9erkwlfYem6Lg== - "@rollup/rollup-linux-arm-musleabihf@4.52.3": version "4.52.3" resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.52.3.tgz#979eab95003c21837ea0fdd8a721aa3e69fa4aa3" @@ -3569,11 +3510,6 @@ resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.57.1.tgz#6929f3e07be6b6da5991f63c6b68b3e473d0a65a" integrity sha512-rGfNUfn0GIeXtBP1wL5MnzSj98+PZe/AXaGBCRmT0ts80lU5CATYGxXukeTX39XBKsxzFpEeK+Mrp9faXOlmrw== -"@rollup/rollup-linux-arm64-gnu@4.41.0": - version "4.41.0" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.41.0.tgz#c28620bcd385496bdbbc24920b21f9fcca9ecbfa" - integrity sha512-nn8mEyzMbdEJzT7cwxgObuwviMx6kPRxzYiOl6o/o+ChQq23gfdlZcUNnt89lPhhz3BYsZ72rp0rxNqBSfqlqw== - "@rollup/rollup-linux-arm64-gnu@4.52.3": version "4.52.3" resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.52.3.tgz#53b89f1289cbeca5ed9b6ca1602a6fe1a29dd4e2" @@ -3584,11 +3520,6 @@ resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.57.1.tgz#06e89fd4a25d21fe5575d60b6f913c0e65297bfa" integrity sha512-MMtej3YHWeg/0klK2Qodf3yrNzz6CGjo2UntLvk2RSPlhzgLvYEB3frRvbEF2wRKh1Z2fDIg9KRPe1fawv7C+g== -"@rollup/rollup-linux-arm64-musl@4.41.0": - version "4.41.0" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.41.0.tgz#a6b71b1e8fa33bac9f65b6f879e8ed878035d120" - integrity sha512-l+QK99je2zUKGd31Gh+45c4pGDAqZSuWQiuRFCdHYC2CSiO47qUWsCcenrI6p22hvHZrDje9QjwSMAFL3iwXwQ== - "@rollup/rollup-linux-arm64-musl@4.52.3": version "4.52.3" resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.52.3.tgz#3bbcf5e13c09d0c4c55bd9c75ec6a7aeee56fe28" @@ -3614,16 +3545,6 @@ resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-loong64-musl/-/rollup-linux-loong64-musl-4.57.1.tgz#f2450361790de80581d8687ea19142d8a4de5c0f" integrity sha512-xpObYIf+8gprgWaPP32xiN5RVTi/s5FCR+XMXSKmhfoJjrpRAjCuuqQXyxUa/eJTdAE6eJ+KDKaoEqjZQxh3Gw== -"@rollup/rollup-linux-loongarch64-gnu@4.41.0": - version "4.41.0" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-loongarch64-gnu/-/rollup-linux-loongarch64-gnu-4.41.0.tgz#b06374601ce865a1110324b2f06db574d3a1b0e1" - integrity sha512-WbnJaxPv1gPIm6S8O/Wg+wfE/OzGSXlBMbOe4ie+zMyykMOeqmgD1BhPxZQuDqwUN+0T/xOFtL2RUWBspnZj3w== - -"@rollup/rollup-linux-powerpc64le-gnu@4.41.0": - version "4.41.0" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.41.0.tgz#8a2a1f6058c920889c2aff3753a20fead7a8cc26" - integrity sha512-eRDWR5t67/b2g8Q/S8XPi0YdbKcCs4WQ8vklNnUYLaSWF+Cbv2axZsp4jni6/j7eKvMLYCYdcsv8dcU+a6QNFg== - "@rollup/rollup-linux-ppc64-gnu@4.52.3": version "4.52.3" resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-ppc64-gnu/-/rollup-linux-ppc64-gnu-4.52.3.tgz#fe3fdf2ef57dc2d58fedd4f1e0678660772c843a" @@ -3639,11 +3560,6 @@ resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-ppc64-musl/-/rollup-linux-ppc64-musl-4.57.1.tgz#9f32074819eeb1ddbe51f50ea9dcd61a6745ec33" integrity sha512-NOlUuzesGauESAyEYFSe3QTUguL+lvrN1HtwEEsU2rOwdUDeTMJdO5dUYl/2hKf9jWydJrO9OL/XSSf65R5+Xw== -"@rollup/rollup-linux-riscv64-gnu@4.41.0": - version "4.41.0" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.41.0.tgz#8ef6f680d011b95a2f6546c6c31a37a33138035f" - integrity sha512-TWrZb6GF5jsEKG7T1IHwlLMDRy2f3DPqYldmIhnA2DVqvvhY2Ai184vZGgahRrg8k9UBWoSlHv+suRfTN7Ua4A== - "@rollup/rollup-linux-riscv64-gnu@4.52.3": version "4.52.3" resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.52.3.tgz#eebc99e75832891d58532501879ca749b1592f93" @@ -3654,11 +3570,6 @@ resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.57.1.tgz#3fdb9d4b1e29fb6b6a6da9f15654d42eb77b99b2" integrity sha512-ptA88htVp0AwUUqhVghwDIKlvJMD/fmL/wrQj99PRHFRAG6Z5nbWoWG4o81Nt9FT+IuqUQi+L31ZKAFeJ5Is+A== -"@rollup/rollup-linux-riscv64-musl@4.41.0": - version "4.41.0" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.41.0.tgz#9f4884c5955a7cd39b396f6e27aa59b3269988eb" - integrity sha512-ieQljaZKuJpmWvd8gW87ZmSFwid6AxMDk5bhONJ57U8zT77zpZ/TPKkU9HpnnFrM4zsgr4kiGuzbIbZTGi7u9A== - "@rollup/rollup-linux-riscv64-musl@4.52.3": version "4.52.3" resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.52.3.tgz#9a2df234d61763a44601eba17c36844a18f20539" @@ -3669,11 +3580,6 @@ resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.57.1.tgz#1de780d64e6be0e3e8762035c22e0d8ea68df8ed" integrity sha512-S51t7aMMTNdmAMPpBg7OOsTdn4tySRQvklmL3RpDRyknk87+Sp3xaumlatU+ppQ+5raY7sSTcC2beGgvhENfuw== -"@rollup/rollup-linux-s390x-gnu@4.41.0": - version "4.41.0" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.41.0.tgz#5619303cc51994e3df404a497f42c79dc5efd6eb" - integrity sha512-/L3pW48SxrWAlVsKCN0dGLB2bi8Nv8pr5S5ocSM+S0XCn5RCVCXqi8GVtHFsOBBCSeR+u9brV2zno5+mg3S4Aw== - "@rollup/rollup-linux-s390x-gnu@4.52.3": version "4.52.3" resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.52.3.tgz#f0e45ea7e41ee473c85458b1ec8fab9572cc1834" @@ -3684,11 +3590,6 @@ resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.57.1.tgz#1da022ffd2d9e9f0fd8344ea49e113001fbcac64" integrity sha512-Bl00OFnVFkL82FHbEqy3k5CUCKH6OEJL54KCyx2oqsmZnFTR8IoNqBF+mjQVcRCT5sB6yOvK8A37LNm/kPJiZg== -"@rollup/rollup-linux-x64-gnu@4.41.0": - version "4.41.0" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.41.0.tgz#c3e42b66c04e25ad0f2a00beec42ede96ccc8983" - integrity sha512-XMLeKjyH8NsEDCRptf6LO8lJk23o9wvB+dJwcXMaH6ZQbbkHu2dbGIUindbMtRN6ux1xKi16iXWu6q9mu7gDhQ== - "@rollup/rollup-linux-x64-gnu@4.52.3": version "4.52.3" resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.52.3.tgz#ed63dec576799fa5571eee5b2040f65faa82b49b" @@ -3699,11 +3600,6 @@ resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.57.1.tgz#78c16eef9520bd10e1ea7a112593bb58e2842622" integrity sha512-ABca4ceT4N+Tv/GtotnWAeXZUZuM/9AQyCyKYyKnpk4yoA7QIAuBt6Hkgpw8kActYlew2mvckXkvx0FfoInnLg== -"@rollup/rollup-linux-x64-musl@4.41.0": - version "4.41.0" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.41.0.tgz#8d3452de42aa72fc5fc3e5ad1eb0b68030742a25" - integrity sha512-m/P7LycHZTvSQeXhFmgmdqEiTqSV80zn6xHaQ1JSqwCtD1YGtwEK515Qmy9DcB2HK4dOUVypQxvhVSy06cJPEg== - "@rollup/rollup-linux-x64-musl@4.52.3": version "4.52.3" resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.52.3.tgz#755c56ac79b17fbdf0359bce7e2293a11de30ad0" @@ -3729,11 +3625,6 @@ resolved "https://registry.yarnpkg.com/@rollup/rollup-openharmony-arm64/-/rollup-openharmony-arm64-4.57.1.tgz#f09921d0b2a0b60afbf3586d2a7a7f208ba6df17" integrity sha512-4wYoDpNg6o/oPximyc/NG+mYUejZrCU2q+2w6YZqrAs2UcNUChIZXjtafAiiZSUc7On8v5NyNj34Kzj/Ltk6dQ== -"@rollup/rollup-win32-arm64-msvc@4.41.0": - version "4.41.0" - resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.41.0.tgz#3b7bbd9f43f1c380061f306abce6f3f64de20306" - integrity sha512-4yodtcOrFHpbomJGVEqZ8fzD4kfBeCbpsUy5Pqk4RluXOdsWdjLnjhiKy2w3qzcASWd04fp52Xz7JKarVJ5BTg== - "@rollup/rollup-win32-arm64-msvc@4.52.3": version "4.52.3" resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.52.3.tgz#4fb0cd004183da819bec804eba70f1ef6936ccbf" @@ -3744,11 +3635,6 @@ resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.57.1.tgz#08d491717135376e4a99529821c94ecd433d5b36" integrity sha512-O54mtsV/6LW3P8qdTcamQmuC990HDfR71lo44oZMZlXU4tzLrbvTii87Ni9opq60ds0YzuAlEr/GNwuNluZyMQ== -"@rollup/rollup-win32-ia32-msvc@4.41.0": - version "4.41.0" - resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.41.0.tgz#e27ef5c40bbec49fac3d4e4b1618fbe4597b40e5" - integrity sha512-tmazCrAsKzdkXssEc65zIE1oC6xPHwfy9d5Ta25SRCDOZS+I6RypVVShWALNuU9bxIfGA0aqrmzlzoM5wO5SPQ== - "@rollup/rollup-win32-ia32-msvc@4.52.3": version "4.52.3" resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.52.3.tgz#1788ba80313477a31e6214390906201604ee38eb" @@ -3769,11 +3655,6 @@ resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-x64-gnu/-/rollup-win32-x64-gnu-4.57.1.tgz#b9cccef26f5e6fdc013bf3c0911a3c77428509d0" integrity sha512-VMBH2eOOaKGtIJYleXsi2B8CPVADrh+TyNxJ4mWPnKfLB/DBUmzW+5m1xUrcwWoMfSLagIRpjUFeW5CO5hyciQ== -"@rollup/rollup-win32-x64-msvc@4.41.0": - version "4.41.0" - resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.41.0.tgz#b0b595ad4720259bbb81600750d26a655cac06be" - integrity sha512-h1J+Yzjo/X+0EAvR2kIXJDuTuyT7drc+t2ALY0nIcGPbTatNOf0VWdhEA2Z4AAjv6X1NJV7SYo5oCTYRJhSlVA== - "@rollup/rollup-win32-x64-msvc@4.52.3": version "4.52.3" resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.52.3.tgz#3f55b6e8fe809a7d29959d6bc686cce1804581f0" @@ -4275,7 +4156,7 @@ resolved "https://registry.yarnpkg.com/@types/esrecurse/-/esrecurse-4.3.1.tgz#6f636af962fbe6191b830bd676ba5986926bccec" integrity sha512-xJBAbDifo5hpffDBuHl0Y8ywswbiAp/Wi7Y/GtAgSlZyIABppyurxVueOPE8LUQOxdlgi6Zqce7uoEpqNTeiUw== -"@types/estree@*", "@types/estree@1.0.7", "@types/estree@^1.0.0", "@types/estree@^1.0.6": +"@types/estree@*", "@types/estree@^1.0.0", "@types/estree@^1.0.6": version "1.0.7" resolved "https://registry.yarnpkg.com/@types/estree/-/estree-1.0.7.tgz#4158d3105276773d5b7695cd4834b1722e4f37a8" integrity sha512-w28IoSUCJpidD/TGviZwwMJckNESJZXFu7NBZ5YJ4mEUnNraUn9Pm8HSZm/jDF1pDWYKspWE7oVphigUPRakIQ== @@ -4295,7 +4176,7 @@ "@types/range-parser" "*" "@types/send" "*" -"@types/express-serve-static-core@^4.17.21": +"@types/express-serve-static-core@^4.17.21", "@types/express-serve-static-core@^4.17.33": version "4.19.8" resolved "https://registry.yarnpkg.com/@types/express-serve-static-core/-/express-serve-static-core-4.19.8.tgz#99b960322a4d576b239a640ab52ef191989b036f" integrity sha512-02S5fmqeoKzVZCHPZid4b8JH2eM5HzQLZWN2FohQEy/0eXTq8VXZfSN6Pcr3F6N9R/vNrj7cpgbhjie6m/1tCA== @@ -4305,16 +4186,6 @@ "@types/range-parser" "*" "@types/send" "*" -"@types/express-serve-static-core@^4.17.33": - version "4.19.8" - resolved "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.19.8.tgz#99b960322a4d576b239a640ab52ef191989b036f" - integrity sha512-02S5fmqeoKzVZCHPZid4b8JH2eM5HzQLZWN2FohQEy/0eXTq8VXZfSN6Pcr3F6N9R/vNrj7cpgbhjie6m/1tCA== - dependencies: - "@types/node" "*" - "@types/qs" "*" - "@types/range-parser" "*" - "@types/send" "*" - "@types/express@*": version "5.0.6" resolved "https://registry.npmjs.org/@types/express/-/express-5.0.6.tgz#2d724b2c990dcb8c8444063f3580a903f6d500cc" @@ -5123,7 +4994,7 @@ ansi-styles@^4.0.0, ansi-styles@^4.1.0: dependencies: color-convert "^2.0.1" -ansi-styles@^6.0.0, ansi-styles@^6.1.0, ansi-styles@^6.2.1: +ansi-styles@^6.0.0, ansi-styles@^6.2.1: version "6.2.3" resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.3.tgz#c044d5dcc521a076413472597a1acb1f103c4041" integrity sha512-4Dj6M28JB+oAH8kFkTLUo+a2jwOFkuqb3yucU0CANcRRUbxS0cP0nZYCGjcc3BNXwRIsUVmDGgzawme7zvJHvg== @@ -5359,16 +5230,7 @@ babel-loader@10.0.0: dependencies: find-up "^5.0.0" -babel-plugin-polyfill-corejs2@^0.4.10: - version "0.4.15" - resolved "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.15.tgz#808fa349686eea4741807cfaaa2aa3aa57ce120a" - integrity sha512-hR3GwrRwHUfYwGfrisXPIDP3JcYfBrW7wKE7+Au6wDYl7fm/ka1NEII6kORzxNU556JjfidZeBsO10kYvtV1aw== - dependencies: - "@babel/compat-data" "^7.28.6" - "@babel/helper-define-polyfill-provider" "^0.6.6" - semver "^6.3.1" - -babel-plugin-polyfill-corejs2@^0.4.14: +babel-plugin-polyfill-corejs2@^0.4.10, babel-plugin-polyfill-corejs2@^0.4.14: version "0.4.15" resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.15.tgz#808fa349686eea4741807cfaaa2aa3aa57ce120a" integrity sha512-hR3GwrRwHUfYwGfrisXPIDP3JcYfBrW7wKE7+Au6wDYl7fm/ka1NEII6kORzxNU556JjfidZeBsO10kYvtV1aw== @@ -5393,14 +5255,7 @@ babel-plugin-polyfill-corejs3@^0.13.0: "@babel/helper-define-polyfill-provider" "^0.6.5" core-js-compat "^3.43.0" -babel-plugin-polyfill-regenerator@^0.6.1: - version "0.6.6" - resolved "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.6.6.tgz#69f5dd263cab933c42fe5ea05e83443b374bd4bf" - integrity sha512-hYm+XLYRMvupxiQzrvXUj7YyvFFVfv5gI0R71AJzudg1g2AI2vyCPPIFEBjk162/wFzti3inBHo7isWFuEVS/A== - dependencies: - "@babel/helper-define-polyfill-provider" "^0.6.6" - -babel-plugin-polyfill-regenerator@^0.6.5: +babel-plugin-polyfill-regenerator@^0.6.1, babel-plugin-polyfill-regenerator@^0.6.5: version "0.6.6" resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.6.6.tgz#69f5dd263cab933c42fe5ea05e83443b374bd4bf" integrity sha512-hYm+XLYRMvupxiQzrvXUj7YyvFFVfv5gI0R71AJzudg1g2AI2vyCPPIFEBjk162/wFzti3inBHo7isWFuEVS/A== @@ -5595,11 +5450,10 @@ browserslist@^4.21.5, browserslist@^4.22.1, browserslist@^4.23.0, browserslist@^ resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.24.5.tgz#aa0f5b8560fe81fde84c6dcb38f759bafba0e11b" integrity sha512-FDToo4Wo82hIdgc1CQ+NQD0hEhmpPjrZ3hiUgwgOG6IuTdlpr8jdjyG24P6cNP1yJpTLzS5OcGgSw0xmDU1/Tw== dependencies: - baseline-browser-mapping "^2.9.0" - caniuse-lite "^1.0.30001759" - electron-to-chromium "^1.5.263" - node-releases "^2.0.27" - update-browserslist-db "^1.2.0" + caniuse-lite "^1.0.30001716" + electron-to-chromium "^1.5.149" + node-releases "^2.0.19" + update-browserslist-db "^1.1.3" browserslist@^4.28.1: version "4.28.1" @@ -5712,11 +5566,6 @@ caniuse-lite@^1.0.30001702, caniuse-lite@^1.0.30001759: resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001767.tgz#0279c498e862efb067938bba0a0aabafe8d0b730" integrity sha512-34+zUAMhSH+r+9eKmYG+k2Rpt8XttfE4yXAjoZvkAPs15xcYQhyBYdalJ65BzivAvGRMViEjy6oKr/S91loekQ== -caniuse-lite@^1.0.30001716: - version "1.0.30001718" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001718.tgz#dae13a9c80d517c30c6197515a96131c194d8f82" - integrity sha512-AflseV1ahcSunK53NfEs9gFWgOEmzr0f+kaMFA4xiLZlr9Hzt7HxcSpIFcnNCUkz6R6dWKa54rUz3HUmI3nVcw== - caseless@~0.12.0: version "0.12.0" resolved "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc" @@ -6038,22 +5887,17 @@ convert-source-map@^2.0.0: resolved "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz#4b560f649fc4e918dd0ab75cf4961e8bc882d82a" integrity sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg== -cookie-signature@~1.0.6: - version "1.0.7" - resolved "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.7.tgz#ab5dd7ab757c54e60f37ef6550f481c426d10454" - integrity sha512-NXdYc3dLr47pBkpUCHtKSwIOQXLVn8dZEuywboCOJY/osA0wFSLlSawr3KN8qXJEyX66FcONTH8EIlVuK0yyFA== - cookie-signature@^1.2.1: version "1.2.2" resolved "https://registry.yarnpkg.com/cookie-signature/-/cookie-signature-1.2.2.tgz#57c7fc3cc293acab9fec54d73e15690ebe4a1793" integrity sha512-D76uU73ulSXrD1UXF4KE2TMxVVwhsnCgfAyTg9k8P6KGZjlXKrOLe4dJQKI3Bxi5wjesZoFXJWElNWBjPZMbhg== -cookie@0.7.1: - version "0.7.1" - resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.7.1.tgz#2f73c42142d5d5cf71310a74fc4ae61670e5dbc9" - integrity sha512-6DnInpx7SJ2AK3+CTUE/ZM0vWTUboZCegxhC2xiIydHR9jNuTAASBrfEpHhiGOZw/nX51bHt6YQl8jsGo4y/0w== +cookie-signature@~1.0.6: + version "1.0.7" + resolved "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.7.tgz#ab5dd7ab757c54e60f37ef6550f481c426d10454" + integrity sha512-NXdYc3dLr47pBkpUCHtKSwIOQXLVn8dZEuywboCOJY/osA0wFSLlSawr3KN8qXJEyX66FcONTH8EIlVuK0yyFA== -cookie@^0.7.1, cookie@~0.7.2: +cookie@^0.7.1, cookie@~0.7.1, cookie@~0.7.2: version "0.7.2" resolved "https://registry.npmjs.org/cookie/-/cookie-0.7.2.tgz#556369c472a2ba910f2979891b526b3436237ed7" integrity sha512-yki5XnKuf750l50uGTllt6kKILY4nQ1eNIQatoXEByZ5dWgnKqbnqmTrBE5B4N7lrMJKQ2ytWMiTO2o0v6Ew/w== @@ -6094,7 +5938,7 @@ core-js-compat@^3.38.0, core-js-compat@^3.38.1: resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.42.0.tgz#ce19c29706ee5806e26d3cb3c542d4cfc0ed51bb" integrity sha512-bQasjMfyDGyaeWKBIu33lHh9qlSR0MFE/Nmc6nMjf/iU9b3rSMdAYz1Baxrv4lPdGUsTqZudHA4jIGSJy0SWZQ== dependencies: - browserslist "^4.28.1" + browserslist "^4.24.4" core-js-compat@^3.43.0: version "3.48.0" @@ -6118,7 +5962,7 @@ core-util-is@~1.0.0: resolved "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz#a6042d3634c2b27e9328f837b965fac83808db85" integrity sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ== -cors@^2.8.5: +cors@^2.8.5, cors@~2.8.5: version "2.8.6" resolved "https://registry.yarnpkg.com/cors/-/cors-2.8.6.tgz#ff5dd69bd95e547503820d29aba4f8faf8dfec96" integrity sha512-tJtZBBHA6vjIAaF6EnIaq6laBBP9aq/Y3ouVJjEfoHbRBcHBAHYcMh/w8LDrk2PvIMMq8gmopa5D4V8RmbrxGw== @@ -6126,7 +5970,7 @@ cors@^2.8.5: object-assign "^4" vary "^1" -cors@latest, cors@~2.8.5: +cors@latest: version "2.8.6" resolved "https://registry.npmjs.org/cors/-/cors-2.8.6.tgz#ff5dd69bd95e547503820d29aba4f8faf8dfec96" integrity sha512-tJtZBBHA6vjIAaF6EnIaq6laBBP9aq/Y3ouVJjEfoHbRBcHBAHYcMh/w8LDrk2PvIMMq8gmopa5D4V8RmbrxGw== @@ -6542,7 +6386,7 @@ debug@2.6.9: dependencies: ms "2.0.0" -debug@4, debug@^4.1.0, debug@^4.1.1, debug@^4.3.1, debug@^4.3.2, debug@^4.3.4, debug@^4.3.6, debug@^4.4.0, debug@^4.4.1, debug@^4.4.3, debug@~4.4.1: +debug@4, debug@^4.1.0, debug@^4.1.1, debug@^4.3.1, debug@^4.3.2, debug@^4.3.4, debug@^4.3.5, debug@^4.3.6, debug@^4.4.0, debug@^4.4.3, debug@~4.4.1: version "4.4.3" resolved "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz#c6ae432d9bd9662582fce08709b038c58e9e3d6a" integrity sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA== @@ -6563,20 +6407,6 @@ debug@^3.1.0, debug@^3.2.7: dependencies: ms "^2.1.1" -debug@^4.4.3: - version "4.4.3" - resolved "https://registry.yarnpkg.com/debug/-/debug-4.4.3.tgz#c6ae432d9bd9662582fce08709b038c58e9e3d6a" - integrity sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA== - dependencies: - ms "^2.1.3" - -debug@~4.3.1, debug@~4.3.2, debug@~4.3.4: - version "4.3.7" - resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.7.tgz#87945b4151a011d76d95a198d7111c865c360a52" - integrity sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ== - dependencies: - ms "^2.1.3" - decache@^4.6.2: version "4.6.2" resolved "https://registry.npmjs.org/decache/-/decache-4.6.2.tgz#c1df1325a2f36d53922e08f33380f083148199cd" @@ -6761,7 +6591,7 @@ domhandler@^5.0.2, domhandler@^5.0.3: dependencies: domelementtype "^2.3.0" -domutils@^3.0.1, domutils@^3.2.1, domutils@^3.2.2: +domutils@^3.0.1, domutils@^3.2.2: version "3.2.2" resolved "https://registry.npmjs.org/domutils/-/domutils-3.2.2.tgz#edbfe2b668b0c1d97c24baf0f1062b132221bc78" integrity sha512-6kZKyUajlDuqlHKVX1w7gyslj9MPIXzIFiz/rGu35uC1wMi+kMhQwGhl4lt9unC9Vb9INnY9Z3/ZA3+FhASLaw== @@ -6789,11 +6619,6 @@ duplexer@^0.1.1, duplexer@~0.1.1: resolved "https://registry.npmjs.org/duplexer/-/duplexer-0.1.2.tgz#3abe43aef3835f8ae077d136ddce0f276b0400e6" integrity sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg== -eastasianwidth@^0.2.0: - version "0.2.0" - resolved "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz#696ce2ec0aa0e6ea93a397ffcf24aa7840c827cb" - integrity sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA== - ecc-jsbn@~0.1.1: version "0.1.2" resolved "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz#3a83a904e54353287874c564b7549386849a98c9" @@ -6807,11 +6632,6 @@ ee-first@1.1.1: resolved "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" integrity sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow== -electron-to-chromium@^1.5.263: - version "1.5.286" - resolved "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.286.tgz#142be1ab5e1cd5044954db0e5898f60a4960384e" - integrity sha512-9tfDXhJ4RKFNerfjdCcZfufu49vg620741MNs26a9+bhLThdB+plgMeou98CAaHu/WATj2iHOOHTp1hWtABj2A== - electron-to-chromium@^1.5.263: version "1.5.286" resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.5.286.tgz#142be1ab5e1cd5044954db0e5898f60a4960384e" @@ -6832,11 +6652,6 @@ emoji-regex@^8.0.0: resolved "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== -emoji-regex@^9.2.2: - version "9.2.2" - resolved "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz#840c8803b0d8047f4ff0cf963176b32d4ef3ed72" - integrity sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg== - emojis-list@^3.0.0: version "3.0.0" resolved "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz#5570662046ad29e2e916e71aae260abdff4f6a78" @@ -6886,15 +6701,7 @@ engine.io@~6.6.0: engine.io-parser "~5.2.1" ws "~8.18.3" -enhanced-resolve@^5.17.1: - version "5.19.0" - resolved "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.19.0.tgz#6687446a15e969eaa63c2fa2694510e17ae6d97c" - integrity sha512-phv3E1Xl4tQOShqSte26C7Fl84EwUdZsyOuSSk9qtAGyyQs2s3jJzComh+Abf4g187lUUAvH+H26omrqia2aGg== - dependencies: - graceful-fs "^4.2.4" - tapable "^2.3.0" - -enhanced-resolve@^5.17.4: +enhanced-resolve@^5.17.1, enhanced-resolve@^5.17.4: version "5.19.0" resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-5.19.0.tgz#6687446a15e969eaa63c2fa2694510e17ae6d97c" integrity sha512-phv3E1Xl4tQOShqSte26C7Fl84EwUdZsyOuSSk9qtAGyyQs2s3jJzComh+Abf4g187lUUAvH+H26omrqia2aGg== @@ -7650,12 +7457,7 @@ fd-slicer@~1.1.0: dependencies: pend "~1.2.0" -fdir@^6.5.0: - version "6.5.0" - resolved "https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz#ed2ab967a331ade62f18d077dae192684d50d350" - integrity sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg== - -fdir@^6.5.0: +fdir@^6.4.4, fdir@^6.5.0: version "6.5.0" resolved "https://registry.yarnpkg.com/fdir/-/fdir-6.5.0.tgz#ed2ab967a331ade62f18d077dae192684d50d350" integrity sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg== @@ -7700,6 +7502,18 @@ finalhandler@1.1.2: statuses "~1.5.0" unpipe "~1.0.0" +finalhandler@^2.1.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-2.1.1.tgz#a2c517a6559852bcdb06d1f8bd7f51b68fad8099" + integrity sha512-S8KoZgRZN+a5rNwqTxlZZePjT/4cnm0ROV70LedRHZ0p8u9fRID0hJUZQpkKLzro8LfmC8sx23bY6tVNxv8pQA== + dependencies: + debug "^4.4.0" + encodeurl "^2.0.0" + escape-html "^1.0.3" + on-finished "^2.4.1" + parseurl "^1.3.3" + statuses "^2.0.1" + finalhandler@~1.3.1: version "1.3.2" resolved "https://registry.npmjs.org/finalhandler/-/finalhandler-1.3.2.tgz#1ebc2228fc7673aac4a472c310cc05b77d852b88" @@ -7713,18 +7527,6 @@ finalhandler@~1.3.1: statuses "~2.0.2" unpipe "~1.0.0" -finalhandler@^2.1.0: - version "2.1.1" - resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-2.1.1.tgz#a2c517a6559852bcdb06d1f8bd7f51b68fad8099" - integrity sha512-S8KoZgRZN+a5rNwqTxlZZePjT/4cnm0ROV70LedRHZ0p8u9fRID0hJUZQpkKLzro8LfmC8sx23bY6tVNxv8pQA== - dependencies: - debug "^4.4.0" - encodeurl "^2.0.0" - escape-html "^1.0.3" - on-finished "^2.4.1" - parseurl "^1.3.3" - statuses "^2.0.1" - find-cache-directory@^6.0.0: version "6.0.0" resolved "https://registry.yarnpkg.com/find-cache-directory/-/find-cache-directory-6.0.0.tgz#6375d90b238b12c124c5150016b76adfdab3a26e" @@ -7784,7 +7586,7 @@ for-each@^0.3.3, for-each@^0.3.5: dependencies: is-callable "^1.2.7" -foreground-child@^3.1.0, foreground-child@^3.3.1: +foreground-child@^3.3.1: version "3.3.1" resolved "https://registry.npmjs.org/foreground-child/-/foreground-child-3.3.1.tgz#32e8e9ed1b68a3497befb9ac2b6adf92a638576f" integrity sha512-gIXjKqtFuWEgzFRJA9WCQeSJLZDjgJUOMCMzxtvFq/37KojM1BFGufqsCy0r4qSQmYLsZYMeyRqzIWOMup03sw== @@ -8289,7 +8091,7 @@ http-deceiver@^1.2.7: resolved "https://registry.npmjs.org/http-deceiver/-/http-deceiver-1.2.7.tgz#fa7168944ab9a519d337cb0bec7284dc3e723d87" integrity sha512-LmpOGxTfbpgtGVxJrj5k7asXHCgNZp5nLfp+hWc8QQRqtb7fUy6kRY3BO1h9ddF6yIPYUARgxGOwB42DnxIaNw== -http-errors@^2.0.1, http-errors@~2.0.0, http-errors@~2.0.1: +http-errors@^2.0.0, http-errors@^2.0.1, http-errors@~2.0.0, http-errors@~2.0.1: version "2.0.1" resolved "https://registry.npmjs.org/http-errors/-/http-errors-2.0.1.tgz#36d2f65bc909c8790018dd36fb4d93da6caae06b" integrity sha512-4FbRdAX+bSdmo4AUFuS0WNiPz8NgFt+r8ThgNWmlrjQjt1Q7ZR9+zTlce2859x4KSXrwIsaeTqDoKQmtP8pLmQ== @@ -8311,27 +8113,6 @@ http-errors@~1.8.0: statuses ">= 1.5.0 < 2" toidentifier "1.0.1" -http-errors@^2.0.1, http-errors@~2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-2.0.1.tgz#36d2f65bc909c8790018dd36fb4d93da6caae06b" - integrity sha512-4FbRdAX+bSdmo4AUFuS0WNiPz8NgFt+r8ThgNWmlrjQjt1Q7ZR9+zTlce2859x4KSXrwIsaeTqDoKQmtP8pLmQ== - dependencies: - depd "~2.0.0" - inherits "~2.0.4" - setprototypeof "~1.2.0" - statuses "~2.0.2" - toidentifier "~1.0.1" - -http-errors@~1.6.2: - version "1.6.3" - resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.6.3.tgz#8b55680bb4be283a0b5bf4ea2e38580be1d9320d" - integrity sha512-lks+lVC8dgGyh97jxvxeYTWQFvh4uw4yC12gVl63Cg30sjPX4wuGcdkICVXDAESr6OJGjqGA8Iz5mkeN6zlD7A== - dependencies: - depd "~1.1.2" - inherits "2.0.3" - setprototypeof "1.1.0" - statuses ">= 1.4.0 < 2" - http-parser-js@>=0.5.1: version "0.5.10" resolved "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.5.10.tgz#b3277bd6d7ed5588e20ea73bf724fcbe44609075" @@ -8424,7 +8205,7 @@ i18next@^23.16.0: dependencies: "@babel/runtime" "^7.23.2" -iconv-lite@0.4, iconv-lite@0.4.24: +iconv-lite@0.4, iconv-lite@~0.4.24: version "0.4.24" resolved "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA== @@ -8520,11 +8301,6 @@ inherits@2, inherits@2.0.4, inherits@^2.0.1, inherits@^2.0.3, inherits@^2.0.4, i resolved "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== -inherits@2.0.3: - version "2.0.3" - resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" - integrity sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw== - ini@5.0.0: version "5.0.0" resolved "https://registry.npmjs.org/ini/-/ini-5.0.0.tgz#a7a4615339843d9a8ccc2d85c9d81cf93ffbc638" @@ -9010,10 +8786,10 @@ istanbul-reports@^3.0.5: html-escaper "^2.0.0" istanbul-lib-report "^3.0.0" -jackspeak@^4.0.1: - version "4.1.0" - resolved "https://registry.yarnpkg.com/jackspeak/-/jackspeak-4.1.0.tgz#c489c079f2b636dc4cbe9b0312a13ff1282e561b" - integrity sha512-9DDdhb5j6cpeitCbvLO7n7J4IxnbM6hoF6O1g4HQ5TfhvvKN8ywDM7668ZhMHRqVmxqhps/F6syWK2KcPxYlkw== +jackspeak@^4.1.1: + version "4.2.3" + resolved "https://registry.npmjs.org/jackspeak/-/jackspeak-4.2.3.tgz#27ef80f33b93412037c3bea4f8eddf80e1931483" + integrity sha512-ykkVRwrYvFm1nb2AJfKKYPr0emF6IiXDYUaFx4Zn9ZuIH7MrzEZ3sD5RlqGXNRpHtvUHJyOnCEFxOlNDtGo7wg== dependencies: "@isaacs/cliui" "^9.0.0" @@ -9470,12 +9246,7 @@ load-json-file@^4.0.0: pify "^3.0.0" strip-bom "^3.0.0" -loader-runner@^4.2.0: - version "4.3.1" - resolved "https://registry.npmjs.org/loader-runner/-/loader-runner-4.3.1.tgz#6c76ed29b0ccce9af379208299f07f876de737e3" - integrity sha512-IWqP2SCPhyVFTBtRcgMHdzlf9ul25NwaFx4wCEH/KjAXuuHY4yNjvPXsBokp8jCB936PyWRaPKUNh8NvylLp2Q== - -loader-runner@^4.3.1: +loader-runner@^4.2.0, loader-runner@^4.3.1: version "4.3.1" resolved "https://registry.yarnpkg.com/loader-runner/-/loader-runner-4.3.1.tgz#6c76ed29b0ccce9af379208299f07f876de737e3" integrity sha512-IWqP2SCPhyVFTBtRcgMHdzlf9ul25NwaFx4wCEH/KjAXuuHY4yNjvPXsBokp8jCB936PyWRaPKUNh8NvylLp2Q== @@ -9583,12 +9354,7 @@ loose-envify@^1.4.0: dependencies: js-tokens "^3.0.0 || ^4.0.0" -lru-cache@^11.0.0: - version "11.2.5" - resolved "https://registry.npmjs.org/lru-cache/-/lru-cache-11.2.5.tgz#6811ae01652ae5d749948cdd80bcc22218c6744f" - integrity sha512-vFrFJkWtJvJnD5hg+hJvVE8Lh/TcMzKnTgCWmtBipwI5yLX/iX+5UB2tfuyODF5E7k9xEzMdYgGqaSb1c0c5Yw== - -lru-cache@^11.1.0, lru-cache@^11.2.1: +lru-cache@^11.0.0, lru-cache@^11.1.0, lru-cache@^11.2.1: version "11.2.5" resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-11.2.5.tgz#6811ae01652ae5d749948cdd80bcc22218c6744f" integrity sha512-vFrFJkWtJvJnD5hg+hJvVE8Lh/TcMzKnTgCWmtBipwI5yLX/iX+5UB2tfuyODF5E7k9xEzMdYgGqaSb1c0c5Yw== @@ -9719,10 +9485,10 @@ media-typer@^1.1.0: resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-1.1.0.tgz#6ab74b8f2d3320f2064b2a87a38e7931ff3a5561" integrity sha512-aisnrDP4GNe06UcKFnV5bfMNPBUw4jsLGaWwWfnH3v02GnBuXX2MCVn5RbrWo0j3pczUilYblq7fQ7Nw2t5XKw== -memfs@^4.6.0: - version "4.17.2" - resolved "https://registry.yarnpkg.com/memfs/-/memfs-4.17.2.tgz#1f71a6d85c8c53b4f1b388234ed981a690c7e227" - integrity sha512-NgYhCOWgovOXSzvYgUW0LQ7Qy72rWQMGGFJDoWg4G30RHd3z77VbYdtJ4fembJXBy8pMIUA31XNAupobOQlwdg== +memfs@^4.43.1: + version "4.56.10" + resolved "https://registry.npmjs.org/memfs/-/memfs-4.56.10.tgz#eaf2f6556db10f91f1e9ad9f1274fd988c646202" + integrity sha512-eLvzyrwqLHnLYalJP7YZ3wBe79MXktMdfQbvMrVD80K+NhrIukCVBvgP30zTJYEEDh9hZ/ep9z0KOdD7FSHo7w== dependencies: "@jsonjoy.com/fs-core" "4.56.10" "@jsonjoy.com/fs-fsa" "4.56.10" @@ -9739,6 +9505,16 @@ memfs@^4.6.0: tree-dump "^1.0.3" tslib "^2.0.0" +memfs@^4.6.0: + version "4.17.2" + resolved "https://registry.yarnpkg.com/memfs/-/memfs-4.17.2.tgz#1f71a6d85c8c53b4f1b388234ed981a690c7e227" + integrity sha512-NgYhCOWgovOXSzvYgUW0LQ7Qy72rWQMGGFJDoWg4G30RHd3z77VbYdtJ4fembJXBy8pMIUA31XNAupobOQlwdg== + dependencies: + "@jsonjoy.com/json-pack" "^1.0.3" + "@jsonjoy.com/util" "^1.3.0" + tree-dump "^1.0.1" + tslib "^2.0.0" + memorystream@^0.3.1: version "0.3.1" resolved "https://registry.npmjs.org/memorystream/-/memorystream-0.3.1.tgz#86d7090b30ce455d63fbae12dda51a47ddcaf9b2" @@ -9841,13 +9617,6 @@ minimalistic-assert@^1.0.0: resolved "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz#2e194de044626d4a10e7f7fbc00ce73e83e4d5c7" integrity sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A== -minimatch@^10.1.1: - version "10.1.2" - resolved "https://registry.npmjs.org/minimatch/-/minimatch-10.1.2.tgz#6c3f289f9de66d628fa3feb1842804396a43d81c" - integrity sha512-fu656aJ0n2kcXwsnwnv9g24tkU5uSmOlTjd6WyyaKm2Z+h1qmY6bAjrcaIxF/BslFqbZ8UBtbJi7KgQOZD2PTw== - dependencies: - "@isaacs/brace-expansion" "^5.0.1" - minimatch@^10.0.3, minimatch@^10.1.1: version "10.1.1" resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-10.1.1.tgz#e6e61b9b0c1dcab116b5a7d1458e8b6ae9e73a55" @@ -9862,7 +9631,7 @@ minimatch@^3.0.3, minimatch@^3.0.4, minimatch@^3.1.1, minimatch@^3.1.2: dependencies: brace-expansion "^1.1.7" -minimatch@^9.0.4: +minimatch@^9.0.4, minimatch@^9.0.5: version "9.0.5" resolved "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz#d74f9dd6b57d83d8e98cfb82133b03978bc929e5" integrity sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow== @@ -10048,7 +9817,7 @@ mute-stream@^2.0.0: resolved "https://registry.npmjs.org/mute-stream/-/mute-stream-2.0.0.tgz#a5446fc0c512b71c83c44d908d5c7b7b4c493b2b" integrity sha512-WWdIxpyjEn+FhQJQQv9aQAYlHoNVdzIzUySNV1gHUPDSdZJ3yZn7pAAbQcV7B56Mvu881q9FZV+0Vx2xC44VWA== -nanoid@^3.3.11, nanoid@^3.3.8: +nanoid@^3.3.11: version "3.3.11" resolved "https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz#4f4f112cefbe303202f2199838128936266d185b" integrity sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w== @@ -10096,6 +9865,11 @@ neotraverse@^0.6.18: resolved "https://registry.npmjs.org/neotraverse/-/neotraverse-0.6.18.tgz#abcb33dda2e8e713cf6321b29405e822230cdb30" integrity sha512-Z4SmBUweYa09+o6pG+eASabEpP6QkQ70yHj351pQoEXIs8uHbaU2DWVmzBANKgflPa47A50PtB2+NgRpQvr7vA== +netmask@^2.0.2: + version "2.0.2" + resolved "https://registry.npmjs.org/netmask/-/netmask-2.0.2.tgz#8b01a07644065d536383835823bc52004ebac5e7" + integrity sha512-dBpDMdxv9Irdq66304OLfEmQ9tbNRFnFTuZiLo+bD+r332bBmMJ8GBLXklIXXgxd3+v9+KUnZaUR5PJMa75Gsg== + ng-packagr@20.3.2: version "20.3.2" resolved "https://registry.yarnpkg.com/ng-packagr/-/ng-packagr-20.3.2.tgz#4d19856e3188c5187258ed6e1864dffc58fa3629" @@ -10168,11 +9942,6 @@ node-gyp@^12.1.0: tinyglobby "^0.2.12" which "^6.0.0" -node-releases@^2.0.27: - version "2.0.27" - resolved "https://registry.npmjs.org/node-releases/-/node-releases-2.0.27.tgz#eedca519205cf20f650f61d56b070db111231e4e" - integrity sha512-nmh3lCkYZ3grZvqcCH+fjmQ7X+H0OeZgP40OierEaAptX4XofMh5kwNbWh7lBduUzCcV/8kZ+NDLCwm2iorIlA== - node-releases@^2.0.27: version "2.0.27" resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.27.tgz#eedca519205cf20f650f61d56b070db111231e4e" @@ -10419,7 +10188,7 @@ onetime@^7.0.0: dependencies: mimic-function "^5.0.0" -open@10.2.0: +open@10.2.0, open@^10.0.3: version "10.2.0" resolved "https://registry.yarnpkg.com/open/-/open-10.2.0.tgz#b9d855be007620e80b6fb05fac98141fe62db73c" integrity sha512-YgBpdJHPyQ2UE5x+hlSXcnejzAvD0b22U2OuAP+8OnlJT+PjWPxtgmGqKKc+RgTM63U9gN0YzrYc71R2WT/hTA== @@ -10438,16 +10207,6 @@ open@8.4.0: is-docker "^2.1.1" is-wsl "^2.2.0" -open@^10.0.3: - version "10.2.0" - resolved "https://registry.npmjs.org/open/-/open-10.2.0.tgz#b9d855be007620e80b6fb05fac98141fe62db73c" - integrity sha512-YgBpdJHPyQ2UE5x+hlSXcnejzAvD0b22U2OuAP+8OnlJT+PjWPxtgmGqKKc+RgTM63U9gN0YzrYc71R2WT/hTA== - dependencies: - default-browser "^5.2.1" - define-lazy-prop "^3.0.0" - is-inside-container "^1.0.0" - wsl-utils "^0.1.0" - opencollective-postinstall@^2.0.3: version "2.0.3" resolved "https://registry.npmjs.org/opencollective-postinstall/-/opencollective-postinstall-2.0.3.tgz#7a0fff978f6dbfa4d006238fbac98ed4198c3259" @@ -10715,7 +10474,7 @@ parse5@^8.0.0: dependencies: entities "^6.0.0" -parseurl@^1.3.3, parseurl@~1.3.2, parseurl@~1.3.3: +parseurl@^1.3.3, parseurl@~1.3.3: version "1.3.3" resolved "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz#9da19e7bee8d12dff0513ed5b76957793bc2e8d4" integrity sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ== @@ -10773,6 +10532,11 @@ path-to-regexp@^8.0.0: resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-8.3.0.tgz#aa818a6981f99321003a08987d3cec9c3474cd1f" integrity sha512-7jdwVIRtsP8MYpdXSwOS0YdD0Du+qOoF/AEPIt88PcCFrZCzx41oxku1jD88hZBwbNUIEfpqvuhjFaMAqMTWnA== +path-to-regexp@~0.1.12: + version "0.1.12" + resolved "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.12.tgz#d5e1a12e478a976d432ef3c58d534b9923164bb7" + integrity sha512-RA1GjUVMnvYFxuqovrEqZoxxW5NUZqbwKtYz/Tt7nXerk0LbLblQmrsgdeOxV5SFHf0UDggjS/bSeOZwt1pmEQ== + path-type@^3.0.0: version "3.0.0" resolved "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz#cef31dc8e0a1a3bb0d105c0cd97cf3bf47f4e36f" @@ -10802,7 +10566,7 @@ performance-now@^2.1.0: resolved "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b" integrity sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow== -picocolors@^1.0.0, picocolors@^1.1.0, picocolors@^1.1.1: +picocolors@^1.1.0, picocolors@^1.1.1: version "1.1.1" resolved "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz#3d321af3eab939b083c8f929a1d12cda81c26b6b" integrity sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA== @@ -10812,7 +10576,7 @@ picomatch@4.0.2: resolved "https://registry.npmjs.org/picomatch/-/picomatch-4.0.2.tgz#77c742931e8f3b8820946c76cd0c1f13730d1dab" integrity sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg== -picomatch@4.0.3, picomatch@^4.0.3: +picomatch@4.0.3, picomatch@^4.0.2, picomatch@^4.0.3: version "4.0.3" resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-4.0.3.tgz#796c76136d1eead715db1e7bad785dedd695a042" integrity sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q== @@ -10822,11 +10586,6 @@ picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.3.1: resolved "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42" integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== -picomatch@^4.0.2, picomatch@^4.0.3: - version "4.0.3" - resolved "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz#796c76136d1eead715db1e7bad785dedd695a042" - integrity sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q== - pidtree@^0.3.0: version "0.3.1" resolved "https://registry.npmjs.org/pidtree/-/pidtree-0.3.1.tgz#ef09ac2cc0533df1f3250ccf2c4d366b0d12114a" @@ -10982,7 +10741,7 @@ postcss@^8.2.14, postcss@^8.4.33, postcss@^8.4.47, postcss@^8.4.49: resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.5.3.tgz#1463b6f1c7fb16fe258736cba29a2de35237eafb" integrity sha512-dle9A3yYxlBSrt8Fu+IpjGT8SY8hN0mlaA6GY8t0P5PjIOZemULz/E2Bnm/2dcUOena75OTNkHI76uZBNUUq3A== dependencies: - nanoid "^3.3.11" + nanoid "^3.3.8" picocolors "^1.1.1" source-map-js "^1.2.1" @@ -11147,20 +10906,13 @@ qjobs@^1.2.0: resolved "https://registry.npmjs.org/qjobs/-/qjobs-1.2.0.tgz#c45e9c61800bd087ef88d7e256423bdd49e5d071" integrity sha512-8YOJEHtxpySA3fFDyCRxA+UUV+fA+rTWnuWvylOK/NCjhY+b4ocCtmu8TtsWb+mYeU+GCHf/S66KZF/AsteKHg== -qs@~6.14.0: +qs@^6.14.0, qs@^6.14.1, qs@~6.14.0: version "6.14.1" resolved "https://registry.npmjs.org/qs/-/qs-6.14.1.tgz#a41d85b9d3902f31d27861790506294881871159" integrity sha512-4EK3+xJl8Ts67nLYNwqw/dsFVnCf+qR7RgXSK9jEEm9unao3njwMDdmsdvoKBKHzxd7tCYz5e5M+SnMjdtXGQQ== dependencies: side-channel "^1.1.0" -qs@^6.14.0, qs@^6.14.1: - version "6.14.1" - resolved "https://registry.yarnpkg.com/qs/-/qs-6.14.1.tgz#a41d85b9d3902f31d27861790506294881871159" - integrity sha512-4EK3+xJl8Ts67nLYNwqw/dsFVnCf+qR7RgXSK9jEEm9unao3njwMDdmsdvoKBKHzxd7tCYz5e5M+SnMjdtXGQQ== - dependencies: - side-channel "^1.1.0" - qs@~6.5.2: version "6.5.3" resolved "https://registry.npmjs.org/qs/-/qs-6.5.3.tgz#3aeeffc91967ef6e35c0e488ef46fb296ab76aad" @@ -11190,16 +10942,6 @@ range-parser@^1.2.1, range-parser@~1.2.1: resolved "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz#3cf37023d199e1c24d1a55b84800c2f3e6468031" integrity sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg== -raw-body@~2.5.3: - version "2.5.3" - resolved "https://registry.npmjs.org/raw-body/-/raw-body-2.5.3.tgz#11c6650ee770a7de1b494f197927de0c923822e2" - integrity sha512-s4VSOf6yN0rvbRZGxs8Om5CWj6seneMwK3oDb4lWDH0UPhWcxwOWw5+qk24bxq87szX1ydrwylIOp2uG1ojUpA== - dependencies: - bytes "~3.1.2" - http-errors "~2.0.1" - iconv-lite "~0.4.24" - unpipe "~1.0.0" - raw-body@^3.0.0, raw-body@^3.0.1: version "3.0.2" resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-3.0.2.tgz#3e3ada5ae5568f9095d84376fd3a49b8fb000a51" @@ -11210,6 +10952,16 @@ raw-body@^3.0.0, raw-body@^3.0.1: iconv-lite "~0.7.0" unpipe "~1.0.0" +raw-body@~2.5.3: + version "2.5.3" + resolved "https://registry.npmjs.org/raw-body/-/raw-body-2.5.3.tgz#11c6650ee770a7de1b494f197927de0c923822e2" + integrity sha512-s4VSOf6yN0rvbRZGxs8Om5CWj6seneMwK3oDb4lWDH0UPhWcxwOWw5+qk24bxq87szX1ydrwylIOp2uG1ojUpA== + dependencies: + bytes "~3.1.2" + http-errors "~2.0.1" + iconv-lite "~0.4.24" + unpipe "~1.0.0" + raw-loader@4.0.2: version "4.0.2" resolved "https://registry.npmjs.org/raw-loader/-/raw-loader-4.0.2.tgz#1aac6b7d1ad1501e66efdac1522c73e59a584eb6" @@ -11295,13 +11047,6 @@ reflect.getprototypeof@^1.0.6, reflect.getprototypeof@^1.0.9: get-proto "^1.0.1" which-builtin-type "^1.2.1" -regenerate-unicode-properties@^10.2.2: - version "10.2.2" - resolved "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.2.2.tgz#aa113812ba899b630658c7623466be71e1f86f66" - integrity sha512-m03P+zhBeQd1RGnYxrGyDAPpWX/epKirLrp8e3qevZdVkKtnCrjjWczIbYc8+xd6vcTStVlqfycTx1KR4LOr0g== - dependencies: - regenerate "^1.4.2" - regenerate-unicode-properties@^10.2.2: version "10.2.2" resolved "https://registry.yarnpkg.com/regenerate-unicode-properties/-/regenerate-unicode-properties-10.2.2.tgz#aa113812ba899b630658c7623466be71e1f86f66" @@ -11331,18 +11076,6 @@ regexp.prototype.flags@^1.5.4: gopd "^1.2.0" set-function-name "^2.0.2" -regexpu-core@^6.3.1: - version "6.4.0" - resolved "https://registry.npmjs.org/regexpu-core/-/regexpu-core-6.4.0.tgz#3580ce0c4faedef599eccb146612436b62a176e5" - integrity sha512-0ghuzq67LI9bLXpOX/ISfve/Mq33a4aFRzoQYhnnok1JOFpmE/A2TBGkNVenOGEeSBCjIiWcc6MVOG5HEQv0sA== - dependencies: - regenerate "^1.4.2" - regenerate-unicode-properties "^10.2.2" - regjsgen "^0.8.0" - regjsparser "^0.13.0" - unicode-match-property-ecmascript "^2.0.0" - unicode-match-property-value-ecmascript "^2.2.1" - regexpu-core@^6.3.1: version "6.4.0" resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-6.4.0.tgz#3580ce0c4faedef599eccb146612436b62a176e5" @@ -11360,13 +11093,6 @@ regjsgen@^0.8.0: resolved "https://registry.npmjs.org/regjsgen/-/regjsgen-0.8.0.tgz#df23ff26e0c5b300a6470cad160a9d090c3a37ab" integrity sha512-RvwtGe3d7LvWiDQXeQw8p5asZUmfU1G/l6WbUXeHta7Y2PEIvBTwH6E2EfmYUK8pxcxEdEmaomqyp0vZZ7C+3Q== -regjsparser@^0.13.0: - version "0.13.0" - resolved "https://registry.npmjs.org/regjsparser/-/regjsparser-0.13.0.tgz#01f8351335cf7898d43686bc74d2dd71c847ecc0" - integrity sha512-NZQZdC5wOE/H3UT28fVGL+ikOZcEzfMGk/c3iN9UGxzWHMa1op7274oyiUVrAG4B2EuFhus8SvkaYnhvW92p9Q== - dependencies: - jsesc "~3.1.0" - regjsparser@^0.13.0: version "0.13.0" resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.13.0.tgz#01f8351335cf7898d43686bc74d2dd71c847ecc0" @@ -11468,7 +11194,7 @@ resolve@1.22.10: path-parse "^1.0.7" supports-preserve-symlinks-flag "^1.0.0" -resolve@^1.22.11: +resolve@^1.10.0, resolve@^1.11.1, resolve@^1.22.11, resolve@^1.22.4: version "1.22.11" resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.11.tgz#aad857ce1ffb8bfa9b0b1ac29f1156383f68c262" integrity sha512-RfqAvLnMl313r7c9oclB1HhUEAezcpLjz95wFH4LVuhk9JF/r22qmVP9AMmOU4vMX7Q8pN8jwNg/CSpdFnMjTQ== @@ -11572,33 +11298,28 @@ rollup@^4.24.0: resolved "https://registry.yarnpkg.com/rollup/-/rollup-4.41.0.tgz#17476835d2967759e3ffebe5823ed15fc4b7d13e" integrity sha512-HqMFpUbWlf/tvcxBFNKnJyzc7Lk+XO3FGc3pbNBLqEbOz0gPLRgcrlS3UF4MfUrVlstOaP/q0kM6GVvi+LrLRg== dependencies: - "@types/estree" "1.0.8" + "@types/estree" "1.0.7" optionalDependencies: - "@rollup/rollup-android-arm-eabi" "4.57.1" - "@rollup/rollup-android-arm64" "4.57.1" - "@rollup/rollup-darwin-arm64" "4.57.1" - "@rollup/rollup-darwin-x64" "4.57.1" - "@rollup/rollup-freebsd-arm64" "4.57.1" - "@rollup/rollup-freebsd-x64" "4.57.1" - "@rollup/rollup-linux-arm-gnueabihf" "4.57.1" - "@rollup/rollup-linux-arm-musleabihf" "4.57.1" - "@rollup/rollup-linux-arm64-gnu" "4.57.1" - "@rollup/rollup-linux-arm64-musl" "4.57.1" - "@rollup/rollup-linux-loong64-gnu" "4.57.1" - "@rollup/rollup-linux-loong64-musl" "4.57.1" - "@rollup/rollup-linux-ppc64-gnu" "4.57.1" - "@rollup/rollup-linux-ppc64-musl" "4.57.1" - "@rollup/rollup-linux-riscv64-gnu" "4.57.1" - "@rollup/rollup-linux-riscv64-musl" "4.57.1" - "@rollup/rollup-linux-s390x-gnu" "4.57.1" - "@rollup/rollup-linux-x64-gnu" "4.57.1" - "@rollup/rollup-linux-x64-musl" "4.57.1" - "@rollup/rollup-openbsd-x64" "4.57.1" - "@rollup/rollup-openharmony-arm64" "4.57.1" - "@rollup/rollup-win32-arm64-msvc" "4.57.1" - "@rollup/rollup-win32-ia32-msvc" "4.57.1" - "@rollup/rollup-win32-x64-gnu" "4.57.1" - "@rollup/rollup-win32-x64-msvc" "4.57.1" + "@rollup/rollup-android-arm-eabi" "4.41.0" + "@rollup/rollup-android-arm64" "4.41.0" + "@rollup/rollup-darwin-arm64" "4.41.0" + "@rollup/rollup-darwin-x64" "4.41.0" + "@rollup/rollup-freebsd-arm64" "4.41.0" + "@rollup/rollup-freebsd-x64" "4.41.0" + "@rollup/rollup-linux-arm-gnueabihf" "4.41.0" + "@rollup/rollup-linux-arm-musleabihf" "4.41.0" + "@rollup/rollup-linux-arm64-gnu" "4.41.0" + "@rollup/rollup-linux-arm64-musl" "4.41.0" + "@rollup/rollup-linux-loongarch64-gnu" "4.41.0" + "@rollup/rollup-linux-powerpc64le-gnu" "4.41.0" + "@rollup/rollup-linux-riscv64-gnu" "4.41.0" + "@rollup/rollup-linux-riscv64-musl" "4.41.0" + "@rollup/rollup-linux-s390x-gnu" "4.41.0" + "@rollup/rollup-linux-x64-gnu" "4.41.0" + "@rollup/rollup-linux-x64-musl" "4.41.0" + "@rollup/rollup-win32-arm64-msvc" "4.41.0" + "@rollup/rollup-win32-ia32-msvc" "4.41.0" + "@rollup/rollup-win32-x64-msvc" "4.41.0" fsevents "~2.3.2" rollup@^4.43.0: @@ -11777,7 +11498,7 @@ schema-utils@^3.0.0, schema-utils@^3.2.0: ajv "^6.12.5" ajv-keywords "^3.5.2" -schema-utils@^4.0.0, schema-utils@^4.2.0, schema-utils@^4.3.0: +schema-utils@^4.0.0, schema-utils@^4.2.0, schema-utils@^4.3.0, schema-utils@^4.3.3: version "4.3.3" resolved "https://registry.npmjs.org/schema-utils/-/schema-utils-4.3.3.tgz#5b1850912fa31df90716963d45d9121fdfc09f46" integrity sha512-eflK8wEtyOE6+hsaRVPxvUKYCpRgzLqDTb8krvAsRIwOGlHoSgYLgBXoubGgLd2fT41/OUYdb48v4k4WWHQurA== @@ -11787,16 +11508,6 @@ schema-utils@^4.0.0, schema-utils@^4.2.0, schema-utils@^4.3.0: ajv-formats "^2.1.1" ajv-keywords "^5.1.0" -schema-utils@^4.3.3: - version "4.3.3" - resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-4.3.3.tgz#5b1850912fa31df90716963d45d9121fdfc09f46" - integrity sha512-eflK8wEtyOE6+hsaRVPxvUKYCpRgzLqDTb8krvAsRIwOGlHoSgYLgBXoubGgLd2fT41/OUYdb48v4k4WWHQurA== - dependencies: - "@types/json-schema" "^7.0.9" - ajv "^8.9.0" - ajv-formats "^2.1.1" - ajv-keywords "^5.1.0" - select-hose@^2.0.0: version "2.0.0" resolved "https://registry.npmjs.org/select-hose/-/select-hose-2.0.0.tgz#625d8658f865af43ec962bfc376a37359a4994ca" @@ -11850,41 +11561,10 @@ semver@^6.3.0, semver@^6.3.1: resolved "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz#556d2ef8689146e46dcea4bfdd095f3434dffcb4" integrity sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA== -send@0.19.0: - version "0.19.0" - resolved "https://registry.yarnpkg.com/send/-/send-0.19.0.tgz#bbc5a388c8ea6c048967049dbeac0e4a3f09d7f8" - integrity sha512-dW41u5VfLXu8SJh5bwRmyYUbAoSB3c9uQh6L8h/KtsFREPWpbX1lrljJo186Jc4nmci/sGUZ9a0a0J2zgfq2hw== - dependencies: - debug "^4.4.3" - encodeurl "^2.0.0" - escape-html "^1.0.3" - etag "^1.8.1" - fresh "^2.0.0" - http-errors "^2.0.1" - mime-types "^3.0.2" - ms "^2.1.3" - on-finished "^2.4.1" - range-parser "^1.2.1" - statuses "^2.0.2" - -send@~0.19.0, send@~0.19.1: - version "0.19.2" - resolved "https://registry.npmjs.org/send/-/send-0.19.2.tgz#59bc0da1b4ea7ad42736fd642b1c4294e114ff29" - integrity sha512-VMbMxbDeehAxpOtWJXlcUS5E8iXh6QmN+BkRX1GARS3wRaXEEgzCcB10gTQazO42tpNIya8xIyNx8fll1OFPrg== - dependencies: - debug "2.6.9" - depd "2.0.0" - destroy "1.2.0" - encodeurl "~2.0.0" - escape-html "~1.0.3" - etag "~1.8.1" - fresh "~0.5.2" - http-errors "~2.0.1" - mime "1.6.0" - ms "2.1.3" - on-finished "~2.4.1" - range-parser "~1.2.1" - statuses "~2.0.2" +semver@^7.7.3: + version "7.7.4" + resolved "https://registry.npmjs.org/semver/-/semver-7.7.4.tgz#28464e36060e991fa7a11d0279d2d3f3b57a7e8a" + integrity sha512-vFKC2IEtQnVhpT78h1Yp8wzwrf8CM+MzKMHGJZfBtzhZNycRFnXsHk6E5TxIkkMsgNS7mdX3AGB7x2QM2di4lA== send@^1.1.0, send@^1.2.0: version "1.2.1" @@ -11920,6 +11600,25 @@ send@latest: range-parser "^1.2.1" statuses "^2.0.1" +send@~0.19.0, send@~0.19.1: + version "0.19.2" + resolved "https://registry.npmjs.org/send/-/send-0.19.2.tgz#59bc0da1b4ea7ad42736fd642b1c4294e114ff29" + integrity sha512-VMbMxbDeehAxpOtWJXlcUS5E8iXh6QmN+BkRX1GARS3wRaXEEgzCcB10gTQazO42tpNIya8xIyNx8fll1OFPrg== + dependencies: + debug "2.6.9" + depd "2.0.0" + destroy "1.2.0" + encodeurl "~2.0.0" + escape-html "~1.0.3" + etag "~1.8.1" + fresh "~0.5.2" + http-errors "~2.0.1" + mime "1.6.0" + ms "2.1.3" + on-finished "~2.4.1" + range-parser "~1.2.1" + statuses "~2.0.2" + serialize-javascript@^6.0.2: version "6.0.2" resolved "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.2.tgz#defa1e055c83bf6d59ea805d8da862254eb6a6c2" @@ -11940,16 +11639,6 @@ serve-index@^1.9.1: mime-types "~2.1.35" parseurl "~1.3.3" -serve-static@~1.16.2: - version "1.16.3" - resolved "https://registry.npmjs.org/serve-static/-/serve-static-1.16.3.tgz#a97b74d955778583f3862a4f0b841eb4d5d78cf9" - integrity sha512-x0RTqQel6g5SY7Lg6ZreMmsOzncHFU7nhnRWkKgWuMTu5NN0DR5oruckMqRvacAN9d5w6ARnRBXl9xhDCgfMeA== - dependencies: - encodeurl "~2.0.0" - escape-html "~1.0.3" - parseurl "~1.3.3" - send "~0.19.1" - serve-static@^2.2.0: version "2.2.1" resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-2.2.1.tgz#7f186a4a4e5f5b663ad7a4294ff1bf37cf0e98a9" @@ -11960,6 +11649,16 @@ serve-static@^2.2.0: parseurl "^1.3.3" send "^1.2.0" +serve-static@~1.16.2: + version "1.16.3" + resolved "https://registry.npmjs.org/serve-static/-/serve-static-1.16.3.tgz#a97b74d955778583f3862a4f0b841eb4d5d78cf9" + integrity sha512-x0RTqQel6g5SY7Lg6ZreMmsOzncHFU7nhnRWkKgWuMTu5NN0DR5oruckMqRvacAN9d5w6ARnRBXl9xhDCgfMeA== + dependencies: + encodeurl "~2.0.0" + escape-html "~1.0.3" + parseurl "~1.3.3" + send "~0.19.1" + set-blocking@^2.0.0: version "2.0.0" resolved "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" @@ -12001,11 +11700,6 @@ setimmediate@^1.0.5: resolved "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz#290cbb232e306942d7d7ea9b83732ab7856f8285" integrity sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA== -setprototypeof@1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.1.0.tgz#d0bd85536887b6fe7c0d818cb962d9d91c54e656" - integrity sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ== - setprototypeof@1.2.0, setprototypeof@~1.2.0: version "1.2.0" resolved "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz#66c9a24a73f9fc28cbe66b09fed3d33dcaf1b424" @@ -12355,7 +12049,7 @@ start-server-and-test@2.0.11: resolved "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz#161c7dac177659fd9811f43771fa99381478628c" integrity sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA== -statuses@^2.0.2, statuses@~2.0.2: +statuses@^2.0.1, statuses@^2.0.2, statuses@~2.0.1, statuses@~2.0.2: version "2.0.2" resolved "https://registry.yarnpkg.com/statuses/-/statuses-2.0.2.tgz#8f75eecef765b5e1cfcdc080da59409ed424e382" integrity sha512-DvEy55V3DB7uknRo+4iOGT5fP1slR8wQohVdknigZPMpMstaKJQWhwiYBACJE3Ul2pTnATihhBYnRhZQHGBiRw== @@ -12365,6 +12059,14 @@ stdin-discarder@^0.2.2: resolved "https://registry.yarnpkg.com/stdin-discarder/-/stdin-discarder-0.2.2.tgz#390037f44c4ae1a1ae535c5fe38dc3aba8d997be" integrity sha512-UhDfHmA92YAlNnCfhmq0VeNL5bDbiZGg7sZ2IvPsXubGkiNa9EC+tUTsjBRsYUAz87btI6/1wf4XoVvQ3uRnmQ== +stop-iteration-iterator@^1.1.0: + version "1.1.0" + resolved "https://registry.npmjs.org/stop-iteration-iterator/-/stop-iteration-iterator-1.1.0.tgz#f481ff70a548f6124d0312c3aa14cbfa7aa542ad" + integrity sha512-eLoXW/DHyl62zxY4SCaIgnRhuMr6ri4juEYARS8E6sCEqzKpOiE521Ucofdx+KnDZl5xmvGYaaKCk5FEOxJCoQ== + dependencies: + es-errors "^1.3.0" + internal-slot "^1.1.0" + stream-combiner@^0.2.2: version "0.2.2" resolved "https://registry.npmjs.org/stream-combiner/-/stream-combiner-0.2.2.tgz#aec8cbac177b56b6f4fa479ced8c1912cee52858" @@ -12389,15 +12091,6 @@ streamroller@^3.1.5: debug "^4.3.4" fs-extra "^8.1.0" -"string-width-cjs@npm:string-width@^4.2.0": - version "4.2.3" - resolved "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" - integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== - dependencies: - emoji-regex "^8.0.0" - is-fullwidth-code-point "^3.0.0" - strip-ansi "^6.0.1" - string-width@^4.1.0, string-width@^4.2.0: version "4.2.3" resolved "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" @@ -12407,15 +12100,6 @@ string-width@^4.1.0, string-width@^4.2.0: is-fullwidth-code-point "^3.0.0" strip-ansi "^6.0.1" -string-width@^5.0.1, string-width@^5.1.2: - version "5.1.2" - resolved "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz#14f8daec6d81e7221d2a357e668cab73bdbca794" - integrity sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA== - dependencies: - eastasianwidth "^0.2.0" - emoji-regex "^9.2.2" - strip-ansi "^7.0.1" - string-width@^7.0.0, string-width@^7.2.0: version "7.2.0" resolved "https://registry.npmjs.org/string-width/-/string-width-7.2.0.tgz#b5bb8e2165ce275d4d43476dd2700ad9091db6dc" @@ -12486,13 +12170,6 @@ string_decoder@~1.1.1: dependencies: safe-buffer "~5.1.0" -"strip-ansi-cjs@npm:strip-ansi@^6.0.1": - version "6.0.1" - resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" - integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== - dependencies: - ansi-regex "^5.0.1" - strip-ansi@^3.0.0: version "3.0.1" resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf" @@ -12507,7 +12184,7 @@ strip-ansi@^6.0.0, strip-ansi@^6.0.1: dependencies: ansi-regex "^5.0.1" -strip-ansi@^7.0.1, strip-ansi@^7.1.0: +strip-ansi@^7.1.0: version "7.1.2" resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.2.tgz#132875abde678c7ea8d691533f2e7e22bb744dba" integrity sha512-gmBGslpoQJtgnMAvOVqGZpEz9dyoKTCzy2nfz/n8aIFhN/jCE/rCmcxabB6jOOHV+0WNnylOxaxBQPSvcWklhA== @@ -12596,12 +12273,7 @@ tapable@^2.1.1, tapable@^2.2.1, tapable@^2.3.0: resolved "https://registry.npmjs.org/tapable/-/tapable-2.3.0.tgz#7e3ea6d5ca31ba8e078b560f0d83ce9a14aa8be6" integrity sha512-g9ljZiwki/LfxmQADO3dEY1CbpmXT5Hm2fJ+QaGKwSXUylMybePR7/67YW7jOrrvjEgL1Fmz5kzyAjWVWLlucg== -tapable@^2.3.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/tapable/-/tapable-2.3.0.tgz#7e3ea6d5ca31ba8e078b560f0d83ce9a14aa8be6" - integrity sha512-g9ljZiwki/LfxmQADO3dEY1CbpmXT5Hm2fJ+QaGKwSXUylMybePR7/67YW7jOrrvjEgL1Fmz5kzyAjWVWLlucg== - -tar@^7.4.3: +tar@^7.4.3, tar@^7.5.4: version "7.5.7" resolved "https://registry.npmjs.org/tar/-/tar-7.5.7.tgz#adf99774008ba1c89819f15dbd6019c630539405" integrity sha512-fov56fJiRuThVFXD6o6/Q354S7pnWMJIVlDBYijsTNx6jKSE4pvrDTs6lUnmGvNyfJwFQQwWy3owKz1ucIhveQ== @@ -12612,17 +12284,6 @@ tar@^7.4.3: minizlib "^3.1.0" yallist "^5.0.0" -tar@^7.5.4: - version "7.5.7" - resolved "https://registry.yarnpkg.com/tar/-/tar-7.5.7.tgz#adf99774008ba1c89819f15dbd6019c630539405" - integrity sha512-fov56fJiRuThVFXD6o6/Q354S7pnWMJIVlDBYijsTNx6jKSE4pvrDTs6lUnmGvNyfJwFQQwWy3owKz1ucIhveQ== - dependencies: - "@isaacs/fs-minipass" "^4.0.0" - chownr "^3.0.0" - minipass "^7.1.2" - minizlib "^3.1.0" - yallist "^5.0.0" - terser-webpack-plugin@^5.3.10: version "5.3.14" resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-5.3.14.tgz#9031d48e57ab27567f02ace85c7d690db66c3e06" @@ -12701,8 +12362,8 @@ tinyglobby@^0.2.12, tinyglobby@^0.2.9: resolved "https://registry.yarnpkg.com/tinyglobby/-/tinyglobby-0.2.13.tgz#a0e46515ce6cbcd65331537e57484af5a7b2ff7e" integrity sha512-mEwzpUgrLySlveBwEVDMKk5B57bhLPYovRfPAXD5gA/98Opn0rCDj3GtLwFvCvH5RK9uPCExUROW5NjDwvqkxw== dependencies: - fdir "^6.5.0" - picomatch "^4.0.3" + fdir "^6.4.4" + picomatch "^4.0.2" tinyglobby@^0.2.15: version "0.2.15" @@ -12754,7 +12415,7 @@ tree-kill@1.2.2: resolved "https://registry.npmjs.org/tree-kill/-/tree-kill-1.2.2.tgz#4ca09a9092c88b73a7cdc5e8a01b507b0790a0cc" integrity sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A== -ts-api-utils@^2.0.1, ts-api-utils@^2.4.0: +ts-api-utils@^2.0.1, ts-api-utils@^2.1.0, ts-api-utils@^2.4.0: version "2.4.0" resolved "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-2.4.0.tgz#2690579f96d2790253bdcf1ca35d569ad78f9ad8" integrity sha512-3TaVTaAv2gTiMB35i3FiGJaRfwb3Pyn/j3m/bfAvGe8FB7CF6u+LMYqYlDh7reQf7UNvoTvdfAqHGmPGOSsPmA== @@ -12966,11 +12627,6 @@ unicode-match-property-ecmascript@^2.0.0: unicode-canonical-property-names-ecmascript "^2.0.0" unicode-property-aliases-ecmascript "^2.0.0" -unicode-match-property-value-ecmascript@^2.2.1: - version "2.2.1" - resolved "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.2.1.tgz#65a7adfad8574c219890e219285ce4c64ed67eaa" - integrity sha512-JQ84qTuMg4nVkx8ga4A16a1epI9H6uTXAknqxkGF/aFfRLw1xC/Bp24HNLaZhHSkWd3+84t8iXnp1J0kYcZHhg== - unicode-match-property-value-ecmascript@^2.2.1: version "2.2.1" resolved "https://registry.yarnpkg.com/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.2.1.tgz#65a7adfad8574c219890e219285ce4c64ed67eaa" @@ -13047,14 +12703,6 @@ untildify@^4.0.0: resolved "https://registry.npmjs.org/untildify/-/untildify-4.0.0.tgz#2bc947b953652487e4600949fb091e3ae8cd919b" integrity sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw== -update-browserslist-db@^1.2.0: - version "1.2.3" - resolved "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.2.3.tgz#64d76db58713136acbeb4c49114366cc6cc2e80d" - integrity sha512-Js0m9cx+qOgDxo0eMiFGEueWztz+d4+M3rGlmKPT+T4IS/jP4ylw3Nwpu6cpTTP8R1MAC1kF4VbdLt3ARf209w== - dependencies: - escalade "^3.2.0" - picocolors "^1.1.1" - update-browserslist-db@^1.2.0: version "1.2.3" resolved "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.2.3.tgz#64d76db58713136acbeb4c49114366cc6cc2e80d" @@ -13245,6 +12893,18 @@ webpack-dev-middleware@7.4.2: range-parser "^1.2.1" schema-utils "^4.0.0" +webpack-dev-middleware@^7.4.2: + version "7.4.5" + resolved "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-7.4.5.tgz#d4e8720aa29cb03bc158084a94edb4594e3b7ac0" + integrity sha512-uxQ6YqGdE4hgDKNf7hUiPXOdtkXvBJXrfEGYSx7P7LC8hnUYGK70X6xQXUvXeNyBDDcsiQXpG2m3G9vxowaEuA== + dependencies: + colorette "^2.0.10" + memfs "^4.43.1" + mime-types "^3.0.1" + on-finished "^2.4.1" + range-parser "^1.2.1" + schema-utils "^4.0.0" + webpack-dev-server@5.2.2: version "5.2.2" resolved "https://registry.yarnpkg.com/webpack-dev-server/-/webpack-dev-server-5.2.2.tgz#96a143d50c58fef0c79107e61df911728d7ceb39" @@ -13288,16 +12948,11 @@ webpack-merge@6.0.1: flat "^5.0.2" wildcard "^2.0.1" -webpack-sources@^3.0.0, webpack-sources@^3.2.3: +webpack-sources@^3.0.0, webpack-sources@^3.2.3, webpack-sources@^3.3.3: version "3.3.3" resolved "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.3.3.tgz#d4bf7f9909675d7a070ff14d0ef2a4f3c982c723" integrity sha512-yd1RBzSGanHkitROoPFd6qsrxt+oFhg/129YzheDGqeustzX0vTZJZsSsQjVQC4yzBQ56K55XU8gaNCtIzOnTg== -webpack-sources@^3.3.3: - version "3.3.3" - resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-3.3.3.tgz#d4bf7f9909675d7a070ff14d0ef2a4f3c982c723" - integrity sha512-yd1RBzSGanHkitROoPFd6qsrxt+oFhg/129YzheDGqeustzX0vTZJZsSsQjVQC4yzBQ56K55XU8gaNCtIzOnTg== - webpack-subresource-integrity@5.1.0: version "5.1.0" resolved "https://registry.npmjs.org/webpack-subresource-integrity/-/webpack-subresource-integrity-5.1.0.tgz#8b7606b033c6ccac14e684267cb7fb1f5c2a132a" @@ -13480,15 +13135,6 @@ wordwrap@^1.0.0: resolved "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz#27584810891456a4171c8d0226441ade90cbcaeb" integrity sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q== -"wrap-ansi-cjs@npm:wrap-ansi@^7.0.0": - version "7.0.0" - resolved "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" - integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== - dependencies: - ansi-styles "^4.0.0" - string-width "^4.1.0" - strip-ansi "^6.0.0" - wrap-ansi@^6.2.0: version "6.2.0" resolved "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz#e9393ba07102e6c91a3b221478f0257cd2856e53" @@ -13507,15 +13153,6 @@ wrap-ansi@^7.0.0: string-width "^4.1.0" strip-ansi "^6.0.0" -wrap-ansi@^8.1.0: - version "8.1.0" - resolved "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz#56dc22368ee570face1b49819975d9b9a5ead214" - integrity sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ== - dependencies: - ansi-styles "^6.1.0" - string-width "^5.0.1" - strip-ansi "^7.0.1" - wrap-ansi@^9.0.0: version "9.0.2" resolved "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-9.0.2.tgz#956832dea9494306e6d209eb871643bb873d7c98"