From 6baf889bf992419bdcbd2bdd3f8292584c5744a6 Mon Sep 17 00:00:00 2001
From: Mason Hu
Date: Thu, 18 Jan 2024 15:49:30 +0200
Subject: [PATCH 01/24] fix: move useLocation within useNotify hook to cater
for latest react-router-dom limitations
Signed-off-by: Mason Hu
---
.../NotificationProvider.tsx | 26 +++++++++++--------
src/components/NotificationProvider/types.ts | 1 +
2 files changed, 16 insertions(+), 11 deletions(-)
diff --git a/src/components/NotificationProvider/NotificationProvider.tsx b/src/components/NotificationProvider/NotificationProvider.tsx
index fcf73fb13..97cb6664d 100644
--- a/src/components/NotificationProvider/NotificationProvider.tsx
+++ b/src/components/NotificationProvider/NotificationProvider.tsx
@@ -24,13 +24,13 @@ const NotifyContext = createContext({
success: () => undefined,
info: () => undefined,
queue: () => undefined,
+ setDeduplicated: () => undefined,
});
export const NotificationProvider: FC = ({ children }) => {
const [notification, setNotification] = useState(
null
);
- const { state, pathname } = useLocation() as QueuedNotification;
const clear = () => notification !== null && setNotification(null);
@@ -41,15 +41,6 @@ export const NotificationProvider: FC = ({ children }) => {
return value;
};
- useEffect(() => {
- if (state?.queuedNotification) {
- setDeduplicated(state.queuedNotification);
- window.history.replaceState({}, "");
- } else {
- clear();
- }
- }, [state, pathname]);
-
const helper: NotificationHelper = {
notification,
clear,
@@ -58,6 +49,7 @@ export const NotificationProvider: FC = ({ children }) => {
setDeduplicated(failure(title, error, message, actions)),
info: (message, title) => setDeduplicated(info(message, title)),
success: (message) => setDeduplicated(success(message)),
+ setDeduplicated,
};
return (
@@ -66,7 +58,19 @@ export const NotificationProvider: FC = ({ children }) => {
};
export function useNotify() {
- return useContext(NotifyContext);
+ const ctx = useContext(NotifyContext);
+ const { state, pathname } = useLocation() as QueuedNotification;
+
+ useEffect(() => {
+ if (state?.queuedNotification) {
+ ctx.setDeduplicated(state.queuedNotification);
+ window.history.replaceState({}, "");
+ } else {
+ ctx.clear();
+ }
+ }, [state, pathname]);
+
+ return ctx;
}
export const NotificationConsumer: FC = () => {
diff --git a/src/components/NotificationProvider/types.ts b/src/components/NotificationProvider/types.ts
index b0f8d5e47..f45bfc500 100644
--- a/src/components/NotificationProvider/types.ts
+++ b/src/components/NotificationProvider/types.ts
@@ -37,4 +37,5 @@ export interface NotificationHelper {
info: (message: ReactNode, title?: string) => NotificationType;
success: (message: ReactNode) => NotificationType;
queue: (notification: NotificationType) => QueuedNotification;
+ setDeduplicated: (value: NotificationType) => NotificationType;
}
From 9e9ffc5e3487ce14962b0ea261bce73296a10060 Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Thu, 11 Jan 2024 04:45:29 +0000
Subject: [PATCH 02/24] build(deps): bump follow-redirects from 1.15.3 to
1.15.4
Bumps [follow-redirects](https://github.com/follow-redirects/follow-redirects) from 1.15.3 to 1.15.4.
- [Release notes](https://github.com/follow-redirects/follow-redirects/releases)
- [Commits](https://github.com/follow-redirects/follow-redirects/compare/v1.15.3...v1.15.4)
---
updated-dependencies:
- dependency-name: follow-redirects
dependency-type: indirect
...
Signed-off-by: dependabot[bot]
---
yarn.lock | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/yarn.lock b/yarn.lock
index 3764a459f..f34e2ed9c 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -7061,9 +7061,9 @@ flow-parser@0.*:
integrity sha512-RoM3ARqVYvxnwtkM36RjQFzo5Z9p22jUqtuMrN8gzA/8fU6iMLFE3cXkdSFPyfHRXLU8ILH8TCtSFADk1ACPCg==
follow-redirects@^1.14.0:
- version "1.15.3"
- resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.15.3.tgz#fe2f3ef2690afce7e82ed0b44db08165b207123a"
- integrity sha512-1VzOtuEM8pC9SFU1E+8KfTjZyMztRsgEfwQl44z8A25uy13jSzTj6dyK2Df52iV0vgHCfBwLhDWevLn95w5v6Q==
+ version "1.15.4"
+ resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.15.4.tgz#cdc7d308bf6493126b17ea2191ea0ccf3e535adf"
+ integrity sha512-Cr4D/5wlrb0z9dgERpUL3LrmPKVDsETIJhaCMeDfuFYcqa5bldGV6wBsAN6X/vxlXQtFBMrXdXxdL8CbDTGniw==
for-each@^0.3.3:
version "0.3.3"
From b27d6e9d294d2f5e0843cb2860d080afbc4969ed Mon Sep 17 00:00:00 2001
From: Mason Hu
Date: Tue, 12 Dec 2023 12:42:20 +0200
Subject: [PATCH 03/24] feat: improve auto grow functionality for TextArea
Signed-off-by: Mason Hu
---
cypress.config.ts | 1 +
cypress/e2e/textArea.cy.js | 24 ++++++++++++++++++++
src/components/Textarea/Textarea.stories.mdx | 15 ++++++++++++
src/components/Textarea/Textarea.tsx | 22 ++++++++++++++----
4 files changed, 58 insertions(+), 4 deletions(-)
create mode 100644 cypress/e2e/textArea.cy.js
diff --git a/cypress.config.ts b/cypress.config.ts
index c5eb52825..76b9e10fa 100644
--- a/cypress.config.ts
+++ b/cypress.config.ts
@@ -8,4 +8,5 @@ export default defineConfig({
return require("./cypress/plugins/index.js")(on, config);
},
},
+ experimentalStudio: true,
});
diff --git a/cypress/e2e/textArea.cy.js b/cypress/e2e/textArea.cy.js
new file mode 100644
index 000000000..c42881c0f
--- /dev/null
+++ b/cypress/e2e/textArea.cy.js
@@ -0,0 +1,24 @@
+context("TextArea", () => {
+ beforeEach(() => {
+ cy.visitPage("TextArea", "Dynamic-Height");
+ });
+
+ it("should adjust height automatically with text content change", () => {
+ let initialHeight = 0;
+ cy.findByRole("textbox").then(($element) => {
+ initialHeight = $element.height();
+ });
+ cy.findByRole("textbox").focus();
+ cy.findByRole("textbox").type("{Enter}{Enter}{Enter}");
+ cy.findByRole("textbox").then(($element) => {
+ const finalHeight = $element.height();
+ expect(finalHeight).to.be.greaterThan(initialHeight);
+ initialHeight = finalHeight;
+ });
+ cy.findByRole("textbox").clear();
+ cy.findByRole("textbox").then(($element) => {
+ const finalHeight = $element.height();
+ expect(finalHeight).to.be.lessThan(initialHeight);
+ });
+ });
+});
diff --git a/src/components/Textarea/Textarea.stories.mdx b/src/components/Textarea/Textarea.stories.mdx
index 55eb5b5bb..04d790464 100644
--- a/src/components/Textarea/Textarea.stories.mdx
+++ b/src/components/Textarea/Textarea.stories.mdx
@@ -66,3 +66,18 @@ The Textarea component defines a multi-line text input control.
{Template.bind({})}
+
+### Dynamic Height
+
+
diff --git a/src/components/Textarea/Textarea.tsx b/src/components/Textarea/Textarea.tsx
index a114c7ca7..39ec6fd8e 100644
--- a/src/components/Textarea/Textarea.tsx
+++ b/src/components/Textarea/Textarea.tsx
@@ -1,5 +1,5 @@
import classNames from "classnames";
-import React, { useEffect, useRef } from "react";
+import React, { useEffect, useLayoutEffect, useRef, useState } from "react";
import type { TextareaHTMLAttributes, ReactNode } from "react";
import Field from "../Field";
@@ -90,6 +90,7 @@ const Textarea = ({
const validationId = useId();
const helpId = useId();
const hasError = !!error;
+ const [innerValue, setInnervalue] = useState(props.defaultValue);
useEffect(() => {
if (takeFocus) {
@@ -97,6 +98,17 @@ const Textarea = ({
}
}, [takeFocus]);
+ useLayoutEffect(() => {
+ if (grow) {
+ const textArea = textareaRef.current;
+ if (textArea) {
+ textArea.style.height = "0px";
+ const scrollHeight = textArea.scrollHeight;
+ textArea.style.height = `${scrollHeight}px`;
+ }
+ }
+ }, [textareaRef, grow, innerValue, props.value]);
+
return (
{
onKeyUp && onKeyUp(evt);
- if (grow) {
- evt.currentTarget.style.height =
- evt.currentTarget.scrollHeight + "px";
+ }}
+ onChange={(evt) => {
+ if (!props.value) {
+ setInnervalue(evt.target.value);
}
}}
ref={textareaRef}
@@ -139,6 +152,7 @@ const Textarea = ({
style
}
{...props}
+ value={props.value || innerValue}
/>
);
From 0e463ace64d6f1814d6b4a29fce1cb88198d9e52 Mon Sep 17 00:00:00 2001
From: Mason Hu
Date: Wed, 10 Jan 2024 15:14:46 +0200
Subject: [PATCH 04/24] feat: upstream generic pagination component for tables
Signed-off-by: Mason Hu
---
.../TablePagination/TablePagination.scss | 40 ++++
.../TablePagination.stories.mdx | 214 ++++++++++++++++++
.../TablePagination/TablePagination.test.tsx | 90 ++++++++
.../TablePagination/TablePagination.tsx | 180 +++++++++++++++
.../TablePaginationControls.test.tsx | 21 ++
.../TablePaginationControls.tsx | 79 +++++++
.../TablePaginationControls.test.tsx.snap | 35 +++
.../TablePaginationControls/index.ts | 2 +
.../TablePagination.test.tsx.snap | 98 ++++++++
src/components/TablePagination/index.ts | 2 +
src/index.ts | 2 +
11 files changed, 763 insertions(+)
create mode 100644 src/components/TablePagination/TablePagination.scss
create mode 100644 src/components/TablePagination/TablePagination.stories.mdx
create mode 100644 src/components/TablePagination/TablePagination.test.tsx
create mode 100644 src/components/TablePagination/TablePagination.tsx
create mode 100644 src/components/TablePagination/TablePaginationControls/TablePaginationControls.test.tsx
create mode 100644 src/components/TablePagination/TablePaginationControls/TablePaginationControls.tsx
create mode 100644 src/components/TablePagination/TablePaginationControls/__snapshots__/TablePaginationControls.test.tsx.snap
create mode 100644 src/components/TablePagination/TablePaginationControls/index.ts
create mode 100644 src/components/TablePagination/__snapshots__/TablePagination.test.tsx.snap
create mode 100644 src/components/TablePagination/index.ts
diff --git a/src/components/TablePagination/TablePagination.scss b/src/components/TablePagination/TablePagination.scss
new file mode 100644
index 000000000..a7756b72c
--- /dev/null
+++ b/src/components/TablePagination/TablePagination.scss
@@ -0,0 +1,40 @@
+@import "~vanilla-framework/scss/settings";
+
+.pagination {
+ align-items: baseline;
+ display: flex;
+ margin-top: 1.2rem;
+
+ .description {
+ flex-grow: 1;
+ }
+
+ .back {
+ margin: 0 $spv--large;
+
+ .p-icon--chevron-down {
+ rotate: 90deg;
+ }
+ }
+
+ .next {
+ margin: 0 $spv--large;
+
+ .p-icon--chevron-down {
+ rotate: 270deg;
+ }
+ }
+
+ .pagination-input {
+ margin-right: $spv--small;
+ min-width: 0;
+ width: 3rem;
+ }
+
+ .pagination-select {
+ margin-bottom: 0;
+ margin-left: $spv--x-large;
+ min-width: 0;
+ width: 7rem;
+ }
+}
diff --git a/src/components/TablePagination/TablePagination.stories.mdx b/src/components/TablePagination/TablePagination.stories.mdx
new file mode 100644
index 000000000..6679f2546
--- /dev/null
+++ b/src/components/TablePagination/TablePagination.stories.mdx
@@ -0,0 +1,214 @@
+import { ArgsTable, Canvas, Meta, Story } from "@storybook/addon-docs";
+
+import TablePagination from "./TablePagination";
+import MainTable from "../MainTable";
+
+
+
+export const Template = (args) => ;
+
+### TablePagination
+
+This is an HOC [React](https://reactjs.org/) component for applying pagination to input data for direct child components.
+This component is un-opinionated about the structure of the input data and can be used with any child component that displays
+a list of data. However, the styling and behaviour of this component were designed to work nicely with the ```MainTable``` component.
+
+To use this component, simply wrap a child component with it and provide the data that you want to paginate to the ```data``` prop.
+This component will then pass the paged data to all direct child components via a child prop specified by ```dataForwardProp```.
+
+### Props
+
+
+
+### Default
+
+
+
+### Custom page limit
+
+
+
+### Custom display title
+
+
+
+### Render above
+
+
+
+### Render below
+
+
diff --git a/src/components/TablePagination/TablePagination.test.tsx b/src/components/TablePagination/TablePagination.test.tsx
new file mode 100644
index 000000000..6093dbee1
--- /dev/null
+++ b/src/components/TablePagination/TablePagination.test.tsx
@@ -0,0 +1,90 @@
+/* eslint-disable testing-library/no-node-access */
+import React from "react";
+import { render, screen, fireEvent } from "@testing-library/react";
+import TablePagination from "./TablePagination";
+import userEvent from "@testing-library/user-event";
+
+const dummyData = [
+ { id: "row-1" },
+ { id: "row-2" },
+ { id: "row-3" },
+ { id: "row-4" },
+ { id: "row-5" },
+];
+
+describe("", () => {
+ // snapshot tests
+ it("renders table pagination and matches the snapshot", () => {
+ render();
+
+ expect(screen.getByRole("navigation")).toMatchSnapshot();
+ });
+
+ // unit tests
+ it("renders default display title correctly when no pagination takes place", () => {
+ render();
+
+ expect(screen.getByRole("navigation")).toHaveTextContent(
+ "Showing all 5 items"
+ );
+ });
+
+ it("renders default display title correctly when pagination takes place", () => {
+ render();
+
+ expect(screen.getByRole("navigation")).toHaveTextContent(
+ "Showing 1 out of 5 items"
+ );
+ });
+
+ it("has correct per page setting when changed", () => {
+ render();
+
+ expect(screen.getByRole("navigation")).toHaveTextContent("2/page");
+ userEvent.selectOptions(
+ screen.getByRole("combobox", { name: "Items per page" }),
+ "5"
+ );
+ expect(screen.getByRole("navigation")).toHaveTextContent("5/page");
+ });
+
+ it("resets to first page when page size is changed", () => {
+ render();
+
+ expect(screen.getByRole("navigation")).toHaveTextContent("2/page");
+ userEvent.selectOptions(
+ screen.getByRole("combobox", { name: "Items per page" }),
+ "5"
+ );
+ const currentPageInput = screen.getByRole("spinbutton", {
+ name: "Page number",
+ });
+ expect(currentPageInput).toHaveValue(1);
+ });
+
+ it("should paginate correctly in incrementing or decrementing directions", async () => {
+ render();
+ const incButton = screen.getByRole("button", { name: "Next page" });
+ const decButton = screen.getByRole("button", { name: "Previous page" });
+ const currentPageInput = screen.getByRole("spinbutton", {
+ name: "Page number",
+ });
+ const pageSizeSelector = screen.getByRole("combobox", {
+ name: "Items per page",
+ });
+
+ expect(currentPageInput).toHaveValue(1);
+ await userEvent.click(decButton);
+ expect(currentPageInput).toHaveValue(1);
+ await userEvent.click(incButton);
+ expect(currentPageInput).toHaveValue(2);
+ await userEvent.selectOptions(pageSizeSelector, "2");
+ expect(currentPageInput).toHaveValue(1);
+ await fireEvent.change(currentPageInput, { target: { value: 3 } });
+ expect(currentPageInput).toHaveValue(3);
+ await userEvent.click(incButton);
+ expect(currentPageInput).toHaveValue(3);
+ await userEvent.click(decButton);
+ expect(currentPageInput).toHaveValue(2);
+ });
+});
diff --git a/src/components/TablePagination/TablePagination.tsx b/src/components/TablePagination/TablePagination.tsx
new file mode 100644
index 000000000..c6ec1f35d
--- /dev/null
+++ b/src/components/TablePagination/TablePagination.tsx
@@ -0,0 +1,180 @@
+import React, {
+ ChangeEvent,
+ Children,
+ HTMLAttributes,
+ PropsWithChildren,
+ ReactElement,
+ ReactNode,
+ RefObject,
+ cloneElement,
+ useEffect,
+ useRef,
+ useState,
+} from "react";
+import classnames from "classnames";
+import { usePagination } from "hooks";
+import Select from "components/Select";
+import TablePaginationControls from "./TablePaginationControls";
+import "./TablePagination.scss";
+
+/**
+ * Determine if we are working with a small screen.
+ * 'small screen' in this case is relative to the width of the description div
+ */
+const figureSmallScreen = (descriptionRef: RefObject) => {
+ const descriptionElement = descriptionRef.current;
+ if (!descriptionElement) {
+ return true;
+ }
+ return descriptionElement.getBoundingClientRect().width < 230;
+};
+
+/**
+ * Iterate direct react child components and override the value of the prop specified by @param dataForwardProp
+ * for those child components.
+ * @param children - react node children to iterate
+ * @param dataForwardProp - the name of the prop from the children components to override
+ * @param data - actual data to be passed to the prop specified by @param dataForwardProp
+ */
+const renderChildren = (
+ children: ReactNode,
+ dataForwardProp: string,
+ data: unknown[]
+) => {
+ return Children.map(children, (child) => {
+ return cloneElement(child as ReactElement, {
+ [dataForwardProp]: data,
+ });
+ });
+};
+
+const DEFAULT_PAGE_LIMITS = [50, 100, 200];
+const generatePagingOptions = (pageLimits: number[]) => {
+ return pageLimits.map((limit) => ({ value: limit, label: `${limit}/page` }));
+};
+
+export type Props = PropsWithChildren<{
+ /**
+ * list of data elements to be paginated. This component is un-opinionated about
+ * the structure of the data but it should be identical to the data structure
+ * reuiqred by the child table component
+ */
+ data: unknown[];
+ /**
+ * prop name of the child table component that receives paginated data.
+ * default value is set to @constant rows, which is the data prop for the @func MainTable component
+ */
+ dataForwardProp?: string;
+ /**
+ * the name of the item associated to each row within the table.
+ */
+ itemName?: string;
+ /**
+ * custom styling for the pagination container
+ */
+ className?: string;
+ /**
+ * custom description to be displayed by the pagination
+ */
+ description?: ReactNode;
+ /**
+ * custom per page limits express as an array of numbers.
+ */
+ pageLimits?: number[];
+ /**
+ * place the pagination component above or below the table?
+ */
+ position?: "above" | "below";
+}> &
+ HTMLAttributes;
+
+const TablePagination = ({
+ data,
+ className,
+ itemName = "item",
+ description,
+ position = "above",
+ dataForwardProp = "rows",
+ pageLimits = DEFAULT_PAGE_LIMITS,
+ children,
+ ...divProps
+}: Props) => {
+ const descriptionRef = useRef(null);
+ const [isSmallScreen, setSmallScreen] = useState(false);
+ const [pageSize, setPageSize] = useState(() => {
+ return generatePagingOptions(pageLimits)[0].value;
+ });
+ const { paginate, currentPage, pageData, totalItems } = usePagination(data, {
+ itemsPerPage: pageSize,
+ autoResetPage: true,
+ });
+
+ useEffect(() => {
+ const handleResize = () => {
+ setSmallScreen(figureSmallScreen(descriptionRef));
+ };
+ window.addEventListener("resize", handleResize);
+ return () => {
+ window.removeEventListener("resize", handleResize);
+ };
+ }, [isSmallScreen]);
+
+ const handlePageSizeChange = (e: ChangeEvent) => {
+ paginate(1);
+ setPageSize(parseInt(e.target.value));
+ };
+
+ const getDescription = () => {
+ if (description) {
+ return description;
+ }
+
+ const visibleCount = pageData.length;
+
+ if (isSmallScreen) {
+ return `${visibleCount} out of ${totalItems}`;
+ }
+
+ if (visibleCount === totalItems && visibleCount > 1) {
+ return `Showing all ${totalItems} ${itemName}s`;
+ }
+
+ return `Showing ${visibleCount} out of ${totalItems} ${itemName}${
+ totalItems !== 1 ? "s" : ""
+ }`;
+ };
+
+ const totalPages = Math.ceil(data.length / pageSize);
+ const clonedChildren = renderChildren(children, dataForwardProp, pageData);
+ return (
+ <>
+ {position === "below" && clonedChildren}
+
+
+ {getDescription()}
+
+
+
+
+ {position === "above" && clonedChildren}
+ >
+ );
+};
+
+export default TablePagination;
diff --git a/src/components/TablePagination/TablePaginationControls/TablePaginationControls.test.tsx b/src/components/TablePagination/TablePaginationControls/TablePaginationControls.test.tsx
new file mode 100644
index 000000000..5e7edbcfd
--- /dev/null
+++ b/src/components/TablePagination/TablePaginationControls/TablePaginationControls.test.tsx
@@ -0,0 +1,21 @@
+/* eslint-disable testing-library/no-node-access */
+import React from "react";
+import { render, screen } from "@testing-library/react";
+
+import TablePaginationControls from "./TablePaginationControls";
+
+describe("", () => {
+ // snapshot tests
+ it("renders table pagination controls and matches the snapshot", () => {
+ render(
+
+ );
+
+ expect(screen.getAllByRole("button")).toMatchSnapshot();
+ expect(screen.getByRole("spinbutton")).toMatchSnapshot();
+ });
+});
diff --git a/src/components/TablePagination/TablePaginationControls/TablePaginationControls.tsx b/src/components/TablePagination/TablePaginationControls/TablePaginationControls.tsx
new file mode 100644
index 000000000..b7ff267ff
--- /dev/null
+++ b/src/components/TablePagination/TablePaginationControls/TablePaginationControls.tsx
@@ -0,0 +1,79 @@
+import Button from "components/Button";
+import Icon from "components/Icon";
+import Input from "components/Input";
+import React, { ChangeEvent } from "react";
+
+export type Props = {
+ /**
+ * Callback function to handle a change in page number
+ */
+ onPageChange: (pageNumber: number) => void;
+ /**
+ * The current page of the data
+ */
+ currentPage: number;
+ /**
+ * The total number of pages that exists within the data
+ */
+ totalPages: number;
+};
+
+const TablePaginationControls = ({
+ onPageChange,
+ currentPage,
+ totalPages,
+}: Props): JSX.Element => {
+ const handleDecrementPage = (currentPage: number) => {
+ if (currentPage > 1) {
+ onPageChange(currentPage - 1);
+ }
+ };
+
+ const handleIncrementPage = (currentPage: number, totalPages: number) => {
+ if (currentPage < totalPages) {
+ onPageChange(currentPage + 1);
+ }
+ };
+
+ const handleInputPageChange = (e: ChangeEvent) => {
+ const newPage = Math.min(totalPages, Math.max(1, parseInt(e.target.value)));
+ onPageChange(newPage);
+ };
+
+ return (
+ <>
+
+ {" "}
+ of {totalPages}
+
+ >
+ );
+};
+
+export default TablePaginationControls;
diff --git a/src/components/TablePagination/TablePaginationControls/__snapshots__/TablePaginationControls.test.tsx.snap b/src/components/TablePagination/TablePaginationControls/__snapshots__/TablePaginationControls.test.tsx.snap
new file mode 100644
index 000000000..3fc41511a
--- /dev/null
+++ b/src/components/TablePagination/TablePaginationControls/__snapshots__/TablePaginationControls.test.tsx.snap
@@ -0,0 +1,35 @@
+// Jest Snapshot v1, https://goo.gl/fbAQLP
+
+exports[` renders table pagination controls and matches the snapshot 1`] = `
+Array [
+ ,
+ ,
+]
+`;
+
+exports[` renders table pagination controls and matches the snapshot 2`] = `
+
+`;
diff --git a/src/components/TablePagination/TablePaginationControls/index.ts b/src/components/TablePagination/TablePaginationControls/index.ts
new file mode 100644
index 000000000..48aa68113
--- /dev/null
+++ b/src/components/TablePagination/TablePaginationControls/index.ts
@@ -0,0 +1,2 @@
+export { default } from "./TablePaginationControls";
+export type { Props as TablePaginationControlsProps } from "./TablePaginationControls";
diff --git a/src/components/TablePagination/__snapshots__/TablePagination.test.tsx.snap b/src/components/TablePagination/__snapshots__/TablePagination.test.tsx.snap
new file mode 100644
index 000000000..ee4d0a51a
--- /dev/null
+++ b/src/components/TablePagination/__snapshots__/TablePagination.test.tsx.snap
@@ -0,0 +1,98 @@
+// Jest Snapshot v1, https://goo.gl/fbAQLP
+
+exports[` renders table pagination and matches the snapshot 1`] = `
+
+`;
diff --git a/src/components/TablePagination/index.ts b/src/components/TablePagination/index.ts
new file mode 100644
index 000000000..aac664179
--- /dev/null
+++ b/src/components/TablePagination/index.ts
@@ -0,0 +1,2 @@
+export { default } from "./TablePagination";
+export type { Props as TablePaginationProps } from "./TablePagination";
diff --git a/src/index.ts b/src/index.ts
index 44ce5f406..ad41e8f08 100644
--- a/src/index.ts
+++ b/src/index.ts
@@ -64,6 +64,7 @@ export { default as TableRow } from "./components/TableRow";
export { default as Tabs } from "./components/Tabs";
export { default as Textarea } from "./components/Textarea";
export { default as Tooltip } from "./components/Tooltip";
+export { default as TablePagination } from "./components/TablePagination";
export type { AccordionProps } from "./components/Accordion";
export type { ActionButtonProps } from "./components/ActionButton";
@@ -134,6 +135,7 @@ export type { TableRowProps } from "./components/TableRow";
export type { TabsProps } from "./components/Tabs";
export type { TextareaProps } from "./components/Textarea";
export type { TooltipProps } from "./components/Tooltip";
+export type { TablePaginationProps } from "./components/TablePagination";
export {
useOnClickOutside,
From a67dfde968111a64e745f60b75c24bb40eb080ff Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Fri, 1 Dec 2023 06:02:45 +0000
Subject: [PATCH 05/24] build(deps): bump @adobe/css-tools from 4.3.1 to 4.3.2
Bumps [@adobe/css-tools](https://github.com/adobe/css-tools) from 4.3.1 to 4.3.2.
- [Changelog](https://github.com/adobe/css-tools/blob/main/History.md)
- [Commits](https://github.com/adobe/css-tools/commits)
---
updated-dependencies:
- dependency-name: "@adobe/css-tools"
dependency-type: indirect
...
Signed-off-by: dependabot[bot]
---
yarn.lock | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/yarn.lock b/yarn.lock
index f34e2ed9c..6ce2dac98 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -8,9 +8,9 @@
integrity sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==
"@adobe/css-tools@^4.0.1":
- version "4.3.1"
- resolved "https://registry.yarnpkg.com/@adobe/css-tools/-/css-tools-4.3.1.tgz#abfccb8ca78075a2b6187345c26243c1a0842f28"
- integrity sha512-/62yikz7NLScCGAAST5SHdnjaDJQBDq0M2muyRTpf2VQhw6StBg2ALiu73zSJQ4fMVLA+0uBhBHAle7Wg+2kSg==
+ version "4.3.2"
+ resolved "https://registry.yarnpkg.com/@adobe/css-tools/-/css-tools-4.3.2.tgz#a6abc715fb6884851fca9dad37fc34739a04fd11"
+ integrity sha512-DA5a1C0gD/pLOvhv33YMrbf2FK3oUzwNl9oOJqE4XVjuEtt6XIakRcsd7eLiOSPkp1kTRQGICTA8cKra/vFbjw==
"@ampproject/remapping@^2.2.0":
version "2.2.1"
From d483b87b84d4c782c353eace3cc6446ee194d0e5 Mon Sep 17 00:00:00 2001
From: andesol
Date: Mon, 20 Nov 2023 15:42:53 +0100
Subject: [PATCH 06/24] fix(modal): scroll to top when opened
---
src/components/Modal/Modal.tsx | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/components/Modal/Modal.tsx b/src/components/Modal/Modal.tsx
index 78d68bad7..7464fb48f 100644
--- a/src/components/Modal/Modal.tsx
+++ b/src/components/Modal/Modal.tsx
@@ -99,7 +99,7 @@ export const Modal = ({
if (close && focusableModalElements.current.length > 1) {
focusIndex = 1;
}
- focusableModalElements.current[focusIndex]?.focus();
+ focusableModalElements.current[focusIndex]?.focus({ preventScroll: true });
}, [close]);
useEffect(() => {
From a3e1608cbb825c31a59cc6166500f0d7bfa4d6ff Mon Sep 17 00:00:00 2001
From: Peter Makowski
Date: Fri, 1 Dec 2023 16:53:18 +0100
Subject: [PATCH 07/24] docs: fix contextual menu story
---
src/components/ContextualMenu/ContextualMenu.stories.mdx | 1 +
1 file changed, 1 insertion(+)
diff --git a/src/components/ContextualMenu/ContextualMenu.stories.mdx b/src/components/ContextualMenu/ContextualMenu.stories.mdx
index 690f580d0..a8914a119 100644
--- a/src/components/ContextualMenu/ContextualMenu.stories.mdx
+++ b/src/components/ContextualMenu/ContextualMenu.stories.mdx
@@ -1,5 +1,6 @@
import { ArgsTable, Canvas, Meta, Story } from "@storybook/addon-docs";
+import { Button } from "../Button";
import ContextualMenu from "./ContextualMenu";
Date: Fri, 19 Jan 2024 10:47:27 +0000
Subject: [PATCH 08/24] chore(deps): update dependency vanilla-framework to
v4.6.0
---
package.json | 2 +-
yarn.lock | 8 ++++----
2 files changed, 5 insertions(+), 5 deletions(-)
diff --git a/package.json b/package.json
index 8756184e6..db7eff6d0 100644
--- a/package.json
+++ b/package.json
@@ -82,7 +82,7 @@
"ts-jest": "27.1.5",
"tsc-alias": "1.8.8",
"typescript": "4.9.5",
- "vanilla-framework": "4.5.1",
+ "vanilla-framework": "4.6.0",
"wait-on": "5.3.0",
"webpack": "5.89.0"
},
diff --git a/yarn.lock b/yarn.lock
index 6ce2dac98..b4a039028 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -12530,10 +12530,10 @@ validate-npm-package-license@^3.0.1:
spdx-correct "^3.0.0"
spdx-expression-parse "^3.0.0"
-vanilla-framework@4.5.1:
- version "4.5.1"
- resolved "https://registry.yarnpkg.com/vanilla-framework/-/vanilla-framework-4.5.1.tgz#19b55dd4771c304b2bae8af646312916f5f45917"
- integrity sha512-vF7GGZsXcQZnM2522Q2am08to/iM2K+EhsfYPuYsiHvp2kRGxY/rJ8tcjbKftNY859qOqT8yJg0PE+sVmKI5zg==
+vanilla-framework@4.6.0:
+ version "4.6.0"
+ resolved "https://registry.yarnpkg.com/vanilla-framework/-/vanilla-framework-4.6.0.tgz#61b93a2197eed0d869f85e1014dd9e67bacc355e"
+ integrity sha512-pRjJknqsL4CLA+ovLMlg7MhVh9nIcu7Ev81Z62gh3hAzUDIiZOUI2W9+B16XWv4QFmFxEOgQcfVi2cezLun9SQ==
vary@~1.1.2:
version "1.1.2"
From 209177179d40f6a53c70f647f811523baafad5e7 Mon Sep 17 00:00:00 2001
From: Mason Hu
Date: Fri, 19 Jan 2024 13:23:47 +0200
Subject: [PATCH 09/24] chore: release 0.47.2
Signed-off-by: Mason Hu
---
package.json | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/package.json b/package.json
index db7eff6d0..3be03df3d 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
{
"name": "@canonical/react-components",
- "version": "0.47.1",
+ "version": "0.47.2",
"main": "dist/index.js",
"module": "dist/index.js",
"author": "Huw Wilkins ",
From ffd122e2d2c56264b50695bd4514499d7eefc2d1 Mon Sep 17 00:00:00 2001
From: Mason Hu
Date: Fri, 19 Jan 2024 16:46:44 +0200
Subject: [PATCH 10/24] fix: remove invalid syntax for style imports
Signed-off-by: Mason Hu
---
src/components/TablePagination/TablePagination.scss | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/components/TablePagination/TablePagination.scss b/src/components/TablePagination/TablePagination.scss
index a7756b72c..6138a1366 100644
--- a/src/components/TablePagination/TablePagination.scss
+++ b/src/components/TablePagination/TablePagination.scss
@@ -1,4 +1,4 @@
-@import "~vanilla-framework/scss/settings";
+@import "vanilla-framework/scss/settings";
.pagination {
align-items: baseline;
From 0d44c0fcdb2f8cd3cdced239154990cf3037a1d7 Mon Sep 17 00:00:00 2001
From: Aaryan Porwal
Date: Fri, 19 Jan 2024 17:13:08 +0530
Subject: [PATCH 11/24] fix(select,slider,textarea,passwordtoggle): auto
generate id
---
src/components/PasswordToggle/PasswordToggle.stories.mdx | 8 ++++----
src/components/PasswordToggle/PasswordToggle.test.tsx | 2 +-
src/components/PasswordToggle/PasswordToggle.tsx | 6 ++++--
src/components/Select/Select.test.tsx | 4 +++-
src/components/Select/Select.tsx | 6 ++++--
src/components/Slider/Slider.test.tsx | 4 +++-
src/components/Slider/Slider.tsx | 5 ++++-
src/components/Textarea/Textarea.test.tsx | 4 +++-
src/components/Textarea/Textarea.tsx | 6 ++++--
9 files changed, 30 insertions(+), 15 deletions(-)
diff --git a/src/components/PasswordToggle/PasswordToggle.stories.mdx b/src/components/PasswordToggle/PasswordToggle.stories.mdx
index cbcb5361a..8cb309e6e 100644
--- a/src/components/PasswordToggle/PasswordToggle.stories.mdx
+++ b/src/components/PasswordToggle/PasswordToggle.stories.mdx
@@ -54,7 +54,7 @@ It can be used when an input needs to obscure its value, whilst giving the user
@@ -67,7 +67,7 @@ It can be used when an input needs to obscure its value, whilst giving the user
@@ -80,7 +80,7 @@ It can be used when an input needs to obscure its value, whilst giving the user
@@ -92,7 +92,7 @@ It can be used when an input needs to obscure its value, whilst giving the user
diff --git a/src/components/PasswordToggle/PasswordToggle.test.tsx b/src/components/PasswordToggle/PasswordToggle.test.tsx
index 6ebebd600..88fda3560 100644
--- a/src/components/PasswordToggle/PasswordToggle.test.tsx
+++ b/src/components/PasswordToggle/PasswordToggle.test.tsx
@@ -49,7 +49,7 @@ describe("PasswordToggle", () => {
it("can display an error", async () => {
render();
- expect(screen.getByLabelText("password")).toHaveErrorMessage(
+ expect(screen.getByLabelText("password")).toHaveAccessibleErrorMessage(
"Error: Uh oh!"
);
});
diff --git a/src/components/PasswordToggle/PasswordToggle.tsx b/src/components/PasswordToggle/PasswordToggle.tsx
index 0de58497b..dc1350f8c 100644
--- a/src/components/PasswordToggle/PasswordToggle.tsx
+++ b/src/components/PasswordToggle/PasswordToggle.tsx
@@ -89,6 +89,8 @@ const PasswordToggle = React.forwardRef(
const validationId = useId();
const helpId = useId();
const hasError = !!error;
+ const defaultPasswordToggleId = useId();
+ const passwordToggleId = id || defaultPasswordToggleId;
const togglePassword = () => {
if (isPassword) {
@@ -110,7 +112,7 @@ const PasswordToggle = React.forwardRef(
validationId={validationId}
>
-
+
{label}
- ,
- { wrapper: BrowserRouter }
+
);
const clickBtn = async (testId: string) =>
diff --git a/src/components/NotificationProvider/NotificationProvider.tsx b/src/components/NotificationProvider/NotificationProvider.tsx
index 97cb6664d..4bce0070c 100644
--- a/src/components/NotificationProvider/NotificationProvider.tsx
+++ b/src/components/NotificationProvider/NotificationProvider.tsx
@@ -9,10 +9,8 @@ import React, {
import {
NotificationType,
NotificationHelper,
- QueuedNotification,
NotifyProviderProps,
} from "./types";
-import { useLocation } from "react-router-dom";
import isEqual from "lodash/isEqual";
import { info, failure, success, queue } from "./messageBuilder";
import Notification, { DefaultTitles } from "../Notification/Notification";
@@ -27,7 +25,11 @@ const NotifyContext = createContext({
setDeduplicated: () => undefined,
});
-export const NotificationProvider: FC = ({ children }) => {
+export const NotificationProvider: FC = ({
+ children,
+ state,
+ pathname,
+}) => {
const [notification, setNotification] = useState(
null
);
@@ -41,6 +43,15 @@ export const NotificationProvider: FC = ({ children }) => {
return value;
};
+ useEffect(() => {
+ if (state?.queuedNotification) {
+ setDeduplicated(state.queuedNotification);
+ window.history.replaceState({}, "");
+ } else {
+ clear();
+ }
+ }, [state, pathname]);
+
const helper: NotificationHelper = {
notification,
clear,
@@ -58,19 +69,7 @@ export const NotificationProvider: FC = ({ children }) => {
};
export function useNotify() {
- const ctx = useContext(NotifyContext);
- const { state, pathname } = useLocation() as QueuedNotification;
-
- useEffect(() => {
- if (state?.queuedNotification) {
- ctx.setDeduplicated(state.queuedNotification);
- window.history.replaceState({}, "");
- } else {
- ctx.clear();
- }
- }, [state, pathname]);
-
- return ctx;
+ return useContext(NotifyContext);
}
export const NotificationConsumer: FC = () => {
diff --git a/src/components/NotificationProvider/types.ts b/src/components/NotificationProvider/types.ts
index f45bfc500..dcedf7ffc 100644
--- a/src/components/NotificationProvider/types.ts
+++ b/src/components/NotificationProvider/types.ts
@@ -3,6 +3,10 @@ import { ValueOf } from "types";
import { NotificationSeverity } from "../Notification";
export interface NotifyProviderProps {
+ state?: {
+ queuedNotification: NotificationType | null;
+ };
+ pathname?: string;
children: ReactNode;
}
diff --git a/yarn.lock b/yarn.lock
index b4a039028..231b50a4b 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -2687,11 +2687,6 @@
dependencies:
"@babel/runtime" "^7.13.10"
-"@remix-run/router@1.14.1":
- version "1.14.1"
- resolved "https://registry.yarnpkg.com/@remix-run/router/-/router-1.14.1.tgz#6d2dd03d52e604279c38911afc1079d58c50a755"
- integrity sha512-Qg4DMQsfPNAs88rb2xkdk03N3bjK4jgX5fR24eHCTR9q6PrhZQZ4UJBPzCHJkIpTRN1UKxx2DzjZmnC+7Lj0Ow==
-
"@rushstack/eslint-patch@^1.1.0":
version "1.5.1"
resolved "https://registry.yarnpkg.com/@rushstack/eslint-patch/-/eslint-patch-1.5.1.tgz#5f1b518ec5fa54437c0b7c4a821546c64fed6922"
@@ -3754,11 +3749,6 @@
dependencies:
"@types/node" "*"
-"@types/history@^4.7.11":
- version "4.7.11"
- resolved "https://registry.yarnpkg.com/@types/history/-/history-4.7.11.tgz#56588b17ae8f50c53983a524fc3cc47437969d64"
- integrity sha512-qjDJRrmvBMiTx+jyLxvLfJU7UznFuokDv4f3WRuriHKERccVpFU+8XMQUAbDzoiJCsmexxRExQeMwwCdamSKDA==
-
"@types/html-minifier-terser@^6.0.0":
version "6.1.0"
resolved "https://registry.yarnpkg.com/@types/html-minifier-terser/-/html-minifier-terser-6.1.0.tgz#4fc33a00c1d0c16987b1a20cf92d20614c55ac35"
@@ -3932,23 +3922,6 @@
dependencies:
"@types/react" "*"
-"@types/react-router-dom@5.3.3":
- version "5.3.3"
- resolved "https://registry.yarnpkg.com/@types/react-router-dom/-/react-router-dom-5.3.3.tgz#e9d6b4a66fcdbd651a5f106c2656a30088cc1e83"
- integrity sha512-kpqnYK4wcdm5UaWI3fLcELopqLrHgLqNsdpHauzlQktfkHL3npOSwtj1Uz9oKBAzs7lFtVkV8j83voAz2D8fhw==
- dependencies:
- "@types/history" "^4.7.11"
- "@types/react" "*"
- "@types/react-router" "*"
-
-"@types/react-router@*":
- version "5.1.20"
- resolved "https://registry.yarnpkg.com/@types/react-router/-/react-router-5.1.20.tgz#88eccaa122a82405ef3efbcaaa5dcdd9f021387c"
- integrity sha512-jGjmu/ZqS7FjSH6owMcD5qpq19+1RS9DeVRqfl1FeBMxTDQAGwlMWOcs52NDoXaNKyG3d1cYQFMs9rCrb88o9Q==
- dependencies:
- "@types/history" "^4.7.11"
- "@types/react" "*"
-
"@types/react-table@7.7.19":
version "7.7.19"
resolved "https://registry.yarnpkg.com/@types/react-table/-/react-table-7.7.19.tgz#5175cb52a7df9e0234a67bdbdfe592738c92c862"
@@ -10782,21 +10755,6 @@ react-remove-scroll@2.5.5:
use-callback-ref "^1.3.0"
use-sidecar "^1.1.2"
-react-router-dom@6.21.1:
- version "6.21.1"
- resolved "https://registry.yarnpkg.com/react-router-dom/-/react-router-dom-6.21.1.tgz#58b459d2fe1841388c95bb068f85128c45e27349"
- integrity sha512-QCNrtjtDPwHDO+AO21MJd7yIcr41UetYt5jzaB9Y1UYaPTCnVuJq6S748g1dE11OQlCFIQg+RtAA1SEZIyiBeA==
- dependencies:
- "@remix-run/router" "1.14.1"
- react-router "6.21.1"
-
-react-router@6.21.1:
- version "6.21.1"
- resolved "https://registry.yarnpkg.com/react-router/-/react-router-6.21.1.tgz#8db7ee8d7cfc36513c9a66b44e0897208c33be34"
- integrity sha512-W0l13YlMTm1YrpVIOpjCADJqEUpz1vm+CMo47RuFX4Ftegwm6KOYsL5G3eiE52jnJpKvzm6uB/vTKTPKM8dmkA==
- dependencies:
- "@remix-run/router" "1.14.1"
-
react-style-singleton@^2.2.1:
version "2.2.1"
resolved "https://registry.yarnpkg.com/react-style-singleton/-/react-style-singleton-2.2.1.tgz#f99e420492b2d8f34d38308ff660b60d0b1205b4"
From 3bd30b25faf922f30efc2e31e7a83541211e505b Mon Sep 17 00:00:00 2001
From: Mason Hu
Date: Fri, 19 Jan 2024 18:59:44 +0200
Subject: [PATCH 13/24] chore: release 0.47.3
Signed-off-by: Mason Hu
---
package.json | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/package.json b/package.json
index 7b869f925..2208debe0 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
{
"name": "@canonical/react-components",
- "version": "0.47.2",
+ "version": "0.47.3",
"main": "dist/index.js",
"module": "dist/index.js",
"author": "Huw Wilkins ",
From d9573a303f130994f4874f46380821f172d7c36b Mon Sep 17 00:00:00 2001
From: Peter Makowski
Date: Wed, 24 Jan 2024 09:38:43 +0100
Subject: [PATCH 14/24] ci: setup semantic-release and fix cypress tests
(#1024)
- update readme to be more clear and concise
- remove publish-on-release.yml, release-drafter.yml, RELEASE.md as these are now redundant
- publish storybook docs on push to main
- fix cypress tests: remove cypress headless false flag
---
.github/workflows/publish-docs.yml | 5 +-
.github/workflows/publish-on-release.yml | 28 -
.github/workflows/release-drafter.yml | 15 -
.github/workflows/test.yaml | 9 +-
.releaserc | 12 +
PUBLISH-NPM-PACKAGE.md | 65 -
README.md | 7 +-
commitlint.config.js | 1 +
package.json | 8 +-
yarn.lock | 2175 +++++++++++++++++++++-
10 files changed, 2162 insertions(+), 163 deletions(-)
delete mode 100644 .github/workflows/publish-on-release.yml
delete mode 100644 .github/workflows/release-drafter.yml
create mode 100644 .releaserc
delete mode 100644 PUBLISH-NPM-PACKAGE.md
create mode 100644 commitlint.config.js
diff --git a/.github/workflows/publish-docs.yml b/.github/workflows/publish-docs.yml
index 672c43614..8dac5aaaf 100644
--- a/.github/workflows/publish-docs.yml
+++ b/.github/workflows/publish-docs.yml
@@ -1,8 +1,9 @@
name: Publish docs
on:
- workflow_call:
- workflow_dispatch:
+ push:
+ branches:
+ - main
jobs:
build-docs:
diff --git a/.github/workflows/publish-on-release.yml b/.github/workflows/publish-on-release.yml
deleted file mode 100644
index f60d61c82..000000000
--- a/.github/workflows/publish-on-release.yml
+++ /dev/null
@@ -1,28 +0,0 @@
-name: Publish to NPM
-
-on:
- release:
- types: [published]
-
-jobs:
- publish-npm:
- name: Publish to NPM
- runs-on: ubuntu-latest
- steps:
- - uses: actions/checkout@v4
- - uses: actions/setup-node@v3
- with:
- node-version: 18
- registry-url: https://registry.npmjs.org/
- - run: yarn install
- - run: yarn build
- - run: yarn lint
- - run: yarn test
- env:
- CI: true
- - run: npm publish --access public
- env:
- NODE_AUTH_TOKEN: ${{secrets.NPM_TOKEN}}
- publish-docs:
- needs: publish-npm
- uses: ./.github/workflows/publish-docs.yml
diff --git a/.github/workflows/release-drafter.yml b/.github/workflows/release-drafter.yml
deleted file mode 100644
index ae28a3d11..000000000
--- a/.github/workflows/release-drafter.yml
+++ /dev/null
@@ -1,15 +0,0 @@
-name: Release Drafter
-
-on:
- push:
- branches:
- - main
-
-jobs:
- update_release_draft:
- runs-on: ubuntu-latest
- steps:
- - name: Draft release notes
- uses: release-drafter/release-drafter@v5
- env:
- GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
diff --git a/.github/workflows/test.yaml b/.github/workflows/test.yaml
index d899698d4..cd5db2c32 100644
--- a/.github/workflows/test.yaml
+++ b/.github/workflows/test.yaml
@@ -16,7 +16,7 @@ jobs:
- name: Use Node.js
uses: actions/setup-node@v3
with:
- node-version: 16
+ node-version: "lts/*"
- name: Install dependencies
run: yarn install
@@ -37,12 +37,15 @@ jobs:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- - uses: cypress-io/github-action@v5
+ - name: Use Node.js
+ uses: actions/setup-node@v3
+ with:
+ node-version: "lts/*"
+ - uses: cypress-io/github-action@v6
with:
start: yarn docs
wait-on: "http://localhost:9009"
browser: chrome
- headless: true
env: port=9009
- uses: actions/upload-artifact@v3
if: failure()
diff --git a/.releaserc b/.releaserc
new file mode 100644
index 000000000..4ecaae294
--- /dev/null
+++ b/.releaserc
@@ -0,0 +1,12 @@
+{
+ "branches": [
+ "main"
+ ],
+ "plugins": [
+ "@semantic-release/commit-analyzer",
+ "@semantic-release/release-notes-generator",
+ "@semantic-release/changelog",
+ "@semantic-release/npm",
+ "@semantic-release/github"
+ ]
+}
diff --git a/PUBLISH-NPM-PACKAGE.md b/PUBLISH-NPM-PACKAGE.md
deleted file mode 100644
index b95c2c4a9..000000000
--- a/PUBLISH-NPM-PACKAGE.md
+++ /dev/null
@@ -1,65 +0,0 @@
-# Publish NPM package
-
-To publish a new react-components release you will need to [update the version](#update-package-version) in package.json and [create a new
-release](#publish-the-release). Once the release has been created in GitHub the
-package will automatically get built and published to NPM and the docs will get
-redeployed (see
-[publish-on-release.yml](./.github/workflows/publish-on-release.yml) and [publish-docs.yml](./.github/workflows/publish-docs.yml)).
-
-If needed, you can also [manually trigger the action](#manually-update-docs) to build the docs if you need this to happen without doing a release.
-
-### Update package version
-
-_Note: If the version in package.json has already been updated you can skip this step._
-
-To update the package version you can follow these steps:
-
-1. Create a new branch.
-2. Update the package.json version using `yarn version
---new-version ...`
-3. Push your branch and create a PR.
-
-Once the updated version has been merged then move on to [publishing the release](#publish-the-release).
-
-### Publish the release
-
-#### Review release notes
-
-![publish](https://user-images.githubusercontent.com/11927929/221628635-aba4ac9d-a417-47c4-a9f3-256ecac2bd8b.png)
-
-#### Publish
-
-Publish the [latest release on Github](https://github.com/canonical/react-components/releases) with the new version number and add the release notes you created earlier.
-
-#### Publish to NPM
-
-This should happen automatically after publishing the release on GH (thanks to [GH actions workflow](https://github.com/canonical/react-components/blob/main/.github/workflows/publish-on-release.yml)).
-
-In case it fails and you need to publish manually, here are manual steps:
-
-Get a fresh copy of the main branch
-
-```shell
-git clone git@github.com:canonical/react-components.git react-components-release
-```
-
-Build and publish the package.
-
-```shell
-cd react-components-release
-npm publish --access public
-```
-
-You should now see the new version on [NPM](https://www.npmjs.com/package/@canonical/react-components)
-
-### Manually update docs
-
-To rebuild the docs you need to manually trigger the publish action. More
-details in the [GitHub docs](https://docs.github.com/en/actions/using-workflows/manually-running-a-workflow).
-
-1. Go to the [Publish docs](https://github.com/canonical/react-components/actions/workflows/publish-docs.yml) action.
-2. Click the 'Run workflow' button.
-3. Select the `main`` branch.
-4. Click 'Run workflow'.
-
-The action should now run, and the docs should get rebuilt.
diff --git a/README.md b/README.md
index 57be34334..546cdf159 100644
--- a/README.md
+++ b/README.md
@@ -1,13 +1,10 @@
# React components for Vanilla Framework
+![CI](https://github.com/canonical/react-components/workflows/CI/badge.svg?branch=main) ![Cypress chrome headless](https://github.com/canonical/react-components/workflows/Cypress%20chrome%20headless/badge.svg)
This is a collection of components designed to be the way to consume [Vanilla Framework](http://vanillaframework.io) when using React.
-## How to use the components
+ **[Storybook](https://canonical.github.io/react-components/)** contains component docs with usage instructions.
-See the [component docs](https://canonical.github.io/react-components/) for usage instructions.
-
-![CI](https://github.com/canonical/react-components/workflows/CI/badge.svg?branch=main)
-![Cypress chrome headless](https://github.com/canonical/react-components/workflows/Cypress%20chrome%20headless/badge.svg)
## Requirements
diff --git a/commitlint.config.js b/commitlint.config.js
new file mode 100644
index 000000000..5073c20db
--- /dev/null
+++ b/commitlint.config.js
@@ -0,0 +1 @@
+module.exports = { extends: ["@commitlint/config-conventional"] };
diff --git a/package.json b/package.json
index 2208debe0..f1de33aa9 100644
--- a/package.json
+++ b/package.json
@@ -27,6 +27,8 @@
"@babel/preset-typescript": "7.23.3",
"@percy/cli": "1.27.6",
"@percy/storybook": "4.3.7",
+ "@semantic-release/changelog": "6.0.3",
+ "@semantic-release/git": "10.0.1",
"@storybook/addon-a11y": "7.6.7",
"@storybook/addon-essentials": "7.6.7",
"@storybook/addon-interactions": "7.6.7",
@@ -71,6 +73,7 @@
"react-dom": "18.2.0",
"sass": "1.69.7",
"sass-loader": "10.5.1",
+ "semantic-release": "23.0.0",
"storybook": "7.6.7",
"style-loader": "3.3.3",
"stylelint": "15.11.0",
@@ -127,7 +130,6 @@
"lint-package-json": "npmPkgJsonLint .",
"lint": "yarn lint-package-json && yarn lint-js && yarn lint-style",
"percy": "yarn build-docs && percy storybook ./docs",
- "prepublishOnly": "yarn clean && yarn install && yarn build",
"serve": "yarn docs",
"start": "yarn docs",
"test": "jest",
@@ -135,7 +137,9 @@
"unlink-packages": "yarn unlink && cd node_modules/react && yarn unlink && cd ../react-dom && yarn unlink",
"cypress:test": "wait-on http://localhost:${PORT:-9009} && cypress run --env port=${PORT:-9009}",
"cypress:run": "cypress run --env port=${PORT:-9009}",
- "cypress:open": "cypress open --env port=${PORT:-9009}"
+ "cypress:open": "cypress open --env port=${PORT:-9009}",
+ "semantic-release": "semantic-release",
+ "semantic-release-dry-run": "semantic-release --dry-run --no-ci"
},
"eslintConfig": {
"extends": "react-app"
diff --git a/yarn.lock b/yarn.lock
index 231b50a4b..116b30b5d 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -1824,6 +1824,11 @@
wrap-ansi "^8.1.0"
wrap-ansi-cjs "npm:wrap-ansi@^7.0.0"
+"@isaacs/string-locale-compare@^1.1.0":
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/@isaacs/string-locale-compare/-/string-locale-compare-1.1.0.tgz#291c227e93fd407a96ecd59879a35809120e432b"
+ integrity sha512-SQ7Kzhh9+D+ZW9MA0zkYv3VXhIDNx+LzM6EJ+/65I3QY+enU6Itte7E5XX7EWrqLW2FN4n06GWzBnPoC3th2aQ==
+
"@istanbuljs/load-nyc-config@^1.0.0":
version "1.1.0"
resolved "https://registry.yarnpkg.com/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz#fd3db1d59ecf7cf121e80650bb86712f9b55eced"
@@ -2151,6 +2156,264 @@
"@nodelib/fs.scandir" "2.1.5"
fastq "^1.6.0"
+"@npmcli/agent@^2.0.0":
+ version "2.2.0"
+ resolved "https://registry.yarnpkg.com/@npmcli/agent/-/agent-2.2.0.tgz#e81f00fdb2a670750ff7731bbefb47ecbf0ccf44"
+ integrity sha512-2yThA1Es98orMkpSLVqlDZAMPK3jHJhifP2gnNUdk1754uZ8yI5c+ulCoVG+WlntQA6MzhrURMXjSd9Z7dJ2/Q==
+ dependencies:
+ agent-base "^7.1.0"
+ http-proxy-agent "^7.0.0"
+ https-proxy-agent "^7.0.1"
+ lru-cache "^10.0.1"
+ socks-proxy-agent "^8.0.1"
+
+"@npmcli/arborist@^7.2.1":
+ version "7.3.0"
+ resolved "https://registry.yarnpkg.com/@npmcli/arborist/-/arborist-7.3.0.tgz#ca716707053daf63bc320a917bfe317fca7b4dc6"
+ integrity sha512-ZElIE9L14fEYiL4KqgqRHmo8fRKiTSOFU3hVS1mNm0zJE7hu4FHmof+OFsA7fAAXfkNDJrDByvD0o7Le0ISHMw==
+ dependencies:
+ "@isaacs/string-locale-compare" "^1.1.0"
+ "@npmcli/fs" "^3.1.0"
+ "@npmcli/installed-package-contents" "^2.0.2"
+ "@npmcli/map-workspaces" "^3.0.2"
+ "@npmcli/metavuln-calculator" "^7.0.0"
+ "@npmcli/name-from-folder" "^2.0.0"
+ "@npmcli/node-gyp" "^3.0.0"
+ "@npmcli/package-json" "^5.0.0"
+ "@npmcli/query" "^3.0.1"
+ "@npmcli/run-script" "^7.0.2"
+ bin-links "^4.0.1"
+ cacache "^18.0.0"
+ common-ancestor-path "^1.0.1"
+ hosted-git-info "^7.0.1"
+ json-parse-even-better-errors "^3.0.0"
+ json-stringify-nice "^1.1.4"
+ minimatch "^9.0.0"
+ nopt "^7.0.0"
+ npm-install-checks "^6.2.0"
+ npm-package-arg "^11.0.1"
+ npm-pick-manifest "^9.0.0"
+ npm-registry-fetch "^16.0.0"
+ npmlog "^7.0.1"
+ pacote "^17.0.4"
+ parse-conflict-json "^3.0.0"
+ proc-log "^3.0.0"
+ promise-all-reject-late "^1.0.0"
+ promise-call-limit "^1.0.2"
+ read-package-json-fast "^3.0.2"
+ semver "^7.3.7"
+ ssri "^10.0.5"
+ treeverse "^3.0.0"
+ walk-up-path "^3.0.1"
+
+"@npmcli/config@^8.0.2":
+ version "8.1.0"
+ resolved "https://registry.yarnpkg.com/@npmcli/config/-/config-8.1.0.tgz#2c7f6f80d78b9c18d8a70ae7c5fdb481be727bb0"
+ integrity sha512-61LNEybTFaa9Z/f8y6X9s2Blc75aijZK67LxqC5xicBcfkw8M/88nYrRXGXxAUKm6GRlxTZ216dp1UK2+TbaYw==
+ dependencies:
+ "@npmcli/map-workspaces" "^3.0.2"
+ ci-info "^4.0.0"
+ ini "^4.1.0"
+ nopt "^7.0.0"
+ proc-log "^3.0.0"
+ read-package-json-fast "^3.0.2"
+ semver "^7.3.5"
+ walk-up-path "^3.0.1"
+
+"@npmcli/disparity-colors@^3.0.0":
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/@npmcli/disparity-colors/-/disparity-colors-3.0.0.tgz#60ea8c6eb5ba9de2d1950e15b06205b2c3ab7833"
+ integrity sha512-5R/z157/f20Fi0Ou4ZttL51V0xz0EdPEOauFtPCEYOLInDBRCj1/TxOJ5aGTrtShxEshN2d+hXb9ZKSi5RLBcg==
+ dependencies:
+ ansi-styles "^4.3.0"
+
+"@npmcli/fs@^3.1.0":
+ version "3.1.0"
+ resolved "https://registry.yarnpkg.com/@npmcli/fs/-/fs-3.1.0.tgz#233d43a25a91d68c3a863ba0da6a3f00924a173e"
+ integrity sha512-7kZUAaLscfgbwBQRbvdMYaZOWyMEcPTH/tJjnyAWJ/dvvs9Ef+CERx/qJb9GExJpl1qipaDGn7KqHnFGGixd0w==
+ dependencies:
+ semver "^7.3.5"
+
+"@npmcli/git@^5.0.0", "@npmcli/git@^5.0.3":
+ version "5.0.4"
+ resolved "https://registry.yarnpkg.com/@npmcli/git/-/git-5.0.4.tgz#d18c50f99649e6e89e8b427318134f582498700c"
+ integrity sha512-nr6/WezNzuYUppzXRaYu/W4aT5rLxdXqEFupbh6e/ovlYFQ8hpu1UUPV3Ir/YTl+74iXl2ZOMlGzudh9ZPUchQ==
+ dependencies:
+ "@npmcli/promise-spawn" "^7.0.0"
+ lru-cache "^10.0.1"
+ npm-pick-manifest "^9.0.0"
+ proc-log "^3.0.0"
+ promise-inflight "^1.0.1"
+ promise-retry "^2.0.1"
+ semver "^7.3.5"
+ which "^4.0.0"
+
+"@npmcli/installed-package-contents@^2.0.1", "@npmcli/installed-package-contents@^2.0.2":
+ version "2.0.2"
+ resolved "https://registry.yarnpkg.com/@npmcli/installed-package-contents/-/installed-package-contents-2.0.2.tgz#bfd817eccd9e8df200919e73f57f9e3d9e4f9e33"
+ integrity sha512-xACzLPhnfD51GKvTOOuNX2/V4G4mz9/1I2MfDoye9kBM3RYe5g2YbscsaGoTlaWqkxeiapBWyseULVKpSVHtKQ==
+ dependencies:
+ npm-bundled "^3.0.0"
+ npm-normalize-package-bin "^3.0.0"
+
+"@npmcli/map-workspaces@^3.0.2", "@npmcli/map-workspaces@^3.0.4":
+ version "3.0.4"
+ resolved "https://registry.yarnpkg.com/@npmcli/map-workspaces/-/map-workspaces-3.0.4.tgz#15ad7d854292e484f7ba04bc30187a8320dba799"
+ integrity sha512-Z0TbvXkRbacjFFLpVpV0e2mheCh+WzQpcqL+4xp49uNJOxOnIAPZyXtUxZ5Qn3QBTGKA11Exjd9a5411rBrhDg==
+ dependencies:
+ "@npmcli/name-from-folder" "^2.0.0"
+ glob "^10.2.2"
+ minimatch "^9.0.0"
+ read-package-json-fast "^3.0.0"
+
+"@npmcli/metavuln-calculator@^7.0.0":
+ version "7.0.0"
+ resolved "https://registry.yarnpkg.com/@npmcli/metavuln-calculator/-/metavuln-calculator-7.0.0.tgz#fb59245926d7f677db904177f9aca15ac883d6cb"
+ integrity sha512-Pw0tyX02VkpqlIQlG2TeiJNsdrecYeUU0ubZZa9pi3N37GCsxI+en43u4hYFdq+eSx1A9a9vwFAUyqEtKFsbHQ==
+ dependencies:
+ cacache "^18.0.0"
+ json-parse-even-better-errors "^3.0.0"
+ pacote "^17.0.0"
+ semver "^7.3.5"
+
+"@npmcli/name-from-folder@^2.0.0":
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/@npmcli/name-from-folder/-/name-from-folder-2.0.0.tgz#c44d3a7c6d5c184bb6036f4d5995eee298945815"
+ integrity sha512-pwK+BfEBZJbKdNYpHHRTNBwBoqrN/iIMO0AiGvYsp3Hoaq0WbgGSWQR6SCldZovoDpY3yje5lkFUe6gsDgJ2vg==
+
+"@npmcli/node-gyp@^3.0.0":
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/@npmcli/node-gyp/-/node-gyp-3.0.0.tgz#101b2d0490ef1aa20ed460e4c0813f0db560545a"
+ integrity sha512-gp8pRXC2oOxu0DUE1/M3bYtb1b3/DbJ5aM113+XJBgfXdussRAsX0YOrOhdd8WvnAR6auDBvJomGAkLKA5ydxA==
+
+"@npmcli/package-json@^5.0.0":
+ version "5.0.0"
+ resolved "https://registry.yarnpkg.com/@npmcli/package-json/-/package-json-5.0.0.tgz#77d0f8b17096763ccbd8af03b7117ba6e34d6e91"
+ integrity sha512-OI2zdYBLhQ7kpNPaJxiflofYIpkNLi+lnGdzqUOfRmCF3r2l1nadcjtCYMJKv/Utm/ZtlffaUuTiAktPHbc17g==
+ dependencies:
+ "@npmcli/git" "^5.0.0"
+ glob "^10.2.2"
+ hosted-git-info "^7.0.0"
+ json-parse-even-better-errors "^3.0.0"
+ normalize-package-data "^6.0.0"
+ proc-log "^3.0.0"
+ semver "^7.5.3"
+
+"@npmcli/promise-spawn@^7.0.0", "@npmcli/promise-spawn@^7.0.1":
+ version "7.0.1"
+ resolved "https://registry.yarnpkg.com/@npmcli/promise-spawn/-/promise-spawn-7.0.1.tgz#a836de2f42a2245d629cf6fbb8dd6c74c74c55af"
+ integrity sha512-P4KkF9jX3y+7yFUxgcUdDtLy+t4OlDGuEBLNs57AZsfSfg+uV6MLndqGpnl4831ggaEdXwR50XFoZP4VFtHolg==
+ dependencies:
+ which "^4.0.0"
+
+"@npmcli/query@^3.0.1":
+ version "3.0.1"
+ resolved "https://registry.yarnpkg.com/@npmcli/query/-/query-3.0.1.tgz#77d63ceb7d27ed748da3cc8b50d45fc341448ed6"
+ integrity sha512-0jE8iHBogf/+bFDj+ju6/UMLbJ39c8h6nSe6qile+dB7PJ0iV3gNqcb2vtt6WWCBrxv9uAjzUT/8vroluulidA==
+ dependencies:
+ postcss-selector-parser "^6.0.10"
+
+"@npmcli/run-script@^7.0.0", "@npmcli/run-script@^7.0.2", "@npmcli/run-script@^7.0.3":
+ version "7.0.3"
+ resolved "https://registry.yarnpkg.com/@npmcli/run-script/-/run-script-7.0.3.tgz#a803e05c4b58e2a7b3f801a9f2767f22822df457"
+ integrity sha512-ZMWGLHpzMq3rBGIwPyeaoaleaLMvrBrH8nugHxTi5ACkJZXTxXPtVuEH91ifgtss5hUwJQ2VDnzDBWPmz78rvg==
+ dependencies:
+ "@npmcli/node-gyp" "^3.0.0"
+ "@npmcli/promise-spawn" "^7.0.0"
+ node-gyp "^10.0.0"
+ read-package-json-fast "^3.0.0"
+ which "^4.0.0"
+
+"@octokit/auth-token@^4.0.0":
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/@octokit/auth-token/-/auth-token-4.0.0.tgz#40d203ea827b9f17f42a29c6afb93b7745ef80c7"
+ integrity sha512-tY/msAuJo6ARbK6SPIxZrPBms3xPbfwBrulZe0Wtr/DIY9lje2HeV1uoebShn6mx7SjCHif6EjMvoREj+gZ+SA==
+
+"@octokit/core@^5.0.0":
+ version "5.1.0"
+ resolved "https://registry.yarnpkg.com/@octokit/core/-/core-5.1.0.tgz#81dacf0197ed7855e6413f128bd6dd9e121e7d2f"
+ integrity sha512-BDa2VAMLSh3otEiaMJ/3Y36GU4qf6GI+VivQ/P41NC6GHcdxpKlqV0ikSZ5gdQsmS3ojXeRx5vasgNTinF0Q4g==
+ dependencies:
+ "@octokit/auth-token" "^4.0.0"
+ "@octokit/graphql" "^7.0.0"
+ "@octokit/request" "^8.0.2"
+ "@octokit/request-error" "^5.0.0"
+ "@octokit/types" "^12.0.0"
+ before-after-hook "^2.2.0"
+ universal-user-agent "^6.0.0"
+
+"@octokit/endpoint@^9.0.0":
+ version "9.0.4"
+ resolved "https://registry.yarnpkg.com/@octokit/endpoint/-/endpoint-9.0.4.tgz#8afda5ad1ffc3073d08f2b450964c610b821d1ea"
+ integrity sha512-DWPLtr1Kz3tv8L0UvXTDP1fNwM0S+z6EJpRcvH66orY6Eld4XBMCSYsaWp4xIm61jTWxK68BrR7ibO+vSDnZqw==
+ dependencies:
+ "@octokit/types" "^12.0.0"
+ universal-user-agent "^6.0.0"
+
+"@octokit/graphql@^7.0.0":
+ version "7.0.2"
+ resolved "https://registry.yarnpkg.com/@octokit/graphql/-/graphql-7.0.2.tgz#3df14b9968192f9060d94ed9e3aa9780a76e7f99"
+ integrity sha512-OJ2iGMtj5Tg3s6RaXH22cJcxXRi7Y3EBqbHTBRq+PQAqfaS8f/236fUrWhfSn8P4jovyzqucxme7/vWSSZBX2Q==
+ dependencies:
+ "@octokit/request" "^8.0.1"
+ "@octokit/types" "^12.0.0"
+ universal-user-agent "^6.0.0"
+
+"@octokit/openapi-types@^19.1.0":
+ version "19.1.0"
+ resolved "https://registry.yarnpkg.com/@octokit/openapi-types/-/openapi-types-19.1.0.tgz#75ec7e64743870fc73e1ab4bc6ec252ecdd624dc"
+ integrity sha512-6G+ywGClliGQwRsjvqVYpklIfa7oRPA0vyhPQG/1Feh+B+wU0vGH1JiJ5T25d3g1JZYBHzR2qefLi9x8Gt+cpw==
+
+"@octokit/plugin-paginate-rest@^9.0.0":
+ version "9.1.5"
+ resolved "https://registry.yarnpkg.com/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-9.1.5.tgz#1705bcef4dcde1f4015ee58a63dc61b68648f480"
+ integrity sha512-WKTQXxK+bu49qzwv4qKbMMRXej1DU2gq017euWyKVudA6MldaSSQuxtz+vGbhxV4CjxpUxjZu6rM2wfc1FiWVg==
+ dependencies:
+ "@octokit/types" "^12.4.0"
+
+"@octokit/plugin-retry@^6.0.0":
+ version "6.0.1"
+ resolved "https://registry.yarnpkg.com/@octokit/plugin-retry/-/plugin-retry-6.0.1.tgz#3257404f7cc418e1c1f13a7f2012c1db848b7693"
+ integrity sha512-SKs+Tz9oj0g4p28qkZwl/topGcb0k0qPNX/i7vBKmDsjoeqnVfFUquqrE/O9oJY7+oLzdCtkiWSXLpLjvl6uog==
+ dependencies:
+ "@octokit/request-error" "^5.0.0"
+ "@octokit/types" "^12.0.0"
+ bottleneck "^2.15.3"
+
+"@octokit/plugin-throttling@^8.0.0":
+ version "8.1.3"
+ resolved "https://registry.yarnpkg.com/@octokit/plugin-throttling/-/plugin-throttling-8.1.3.tgz#7fb0e001c0cb9383c6be07740b8ec326ed990f6b"
+ integrity sha512-pfyqaqpc0EXh5Cn4HX9lWYsZ4gGbjnSmUILeu4u2gnuM50K/wIk9s1Pxt3lVeVwekmITgN/nJdoh43Ka+vye8A==
+ dependencies:
+ "@octokit/types" "^12.2.0"
+ bottleneck "^2.15.3"
+
+"@octokit/request-error@^5.0.0":
+ version "5.0.1"
+ resolved "https://registry.yarnpkg.com/@octokit/request-error/-/request-error-5.0.1.tgz#277e3ce3b540b41525e07ba24c5ef5e868a72db9"
+ integrity sha512-X7pnyTMV7MgtGmiXBwmO6M5kIPrntOXdyKZLigNfQWSEQzVxR4a4vo49vJjTWX70mPndj8KhfT4Dx+2Ng3vnBQ==
+ dependencies:
+ "@octokit/types" "^12.0.0"
+ deprecation "^2.0.0"
+ once "^1.4.0"
+
+"@octokit/request@^8.0.1", "@octokit/request@^8.0.2":
+ version "8.1.6"
+ resolved "https://registry.yarnpkg.com/@octokit/request/-/request-8.1.6.tgz#a76a859c30421737a3918b40973c2ff369009571"
+ integrity sha512-YhPaGml3ncZC1NfXpP3WZ7iliL1ap6tLkAp6MvbK2fTTPytzVUyUesBBogcdMm86uRYO5rHaM1xIWxigWZ17MQ==
+ dependencies:
+ "@octokit/endpoint" "^9.0.0"
+ "@octokit/request-error" "^5.0.0"
+ "@octokit/types" "^12.0.0"
+ universal-user-agent "^6.0.0"
+
+"@octokit/types@^12.0.0", "@octokit/types@^12.2.0", "@octokit/types@^12.4.0":
+ version "12.4.0"
+ resolved "https://registry.yarnpkg.com/@octokit/types/-/types-12.4.0.tgz#8f97b601e91ce6b9776ed8152217e77a71be7aac"
+ integrity sha512-FLWs/AvZllw/AGVs+nJ+ELCDZZJk+kY0zMen118xhL2zD0s1etIUHm1odgjP7epxYU1ln7SZxEUWYop5bhsdgQ==
+ dependencies:
+ "@octokit/openapi-types" "^19.1.0"
+
"@percy/cli-app@1.27.6":
version "1.27.6"
resolved "https://registry.yarnpkg.com/@percy/cli-app/-/cli-app-1.27.6.tgz#2a5085071585044aeb46fa6c59e675738cfb1e4a"
@@ -2397,6 +2660,27 @@
schema-utils "^3.0.0"
source-map "^0.7.3"
+"@pnpm/config.env-replace@^1.1.0":
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/@pnpm/config.env-replace/-/config.env-replace-1.1.0.tgz#ab29da53df41e8948a00f2433f085f54de8b3a4c"
+ integrity sha512-htyl8TWnKL7K/ESFa1oW2UB5lVDxuF5DpM7tBi6Hu2LNL3mWkIzNLG6N4zoCUP1lCKNxWy/3iu8mS8MvToGd6w==
+
+"@pnpm/network.ca-file@^1.0.1":
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/@pnpm/network.ca-file/-/network.ca-file-1.0.2.tgz#2ab05e09c1af0cdf2fcf5035bea1484e222f7983"
+ integrity sha512-YcPQ8a0jwYU9bTdJDpXjMi7Brhkr1mXsXrUJvjqM2mQDgkRiz8jFaQGOdaLxgjtUfQgZhKy/O3cG/YwmgKaxLA==
+ dependencies:
+ graceful-fs "4.2.10"
+
+"@pnpm/npm-conf@^2.1.0":
+ version "2.2.2"
+ resolved "https://registry.yarnpkg.com/@pnpm/npm-conf/-/npm-conf-2.2.2.tgz#0058baf1c26cbb63a828f0193795401684ac86f0"
+ integrity sha512-UA91GwWPhFExt3IizW6bOeY/pQ0BkuNwKjk9iQW9KqxluGCrg4VenZ0/L+2Y0+ZOtme72EVvg6v0zo3AMQRCeA==
+ dependencies:
+ "@pnpm/config.env-replace" "^1.1.0"
+ "@pnpm/network.ca-file" "^1.0.1"
+ config-chain "^1.1.11"
+
"@radix-ui/number@1.0.1":
version "1.0.1"
resolved "https://registry.yarnpkg.com/@radix-ui/number/-/number-1.0.1.tgz#644161a3557f46ed38a042acf4a770e826021674"
@@ -2692,6 +2976,110 @@
resolved "https://registry.yarnpkg.com/@rushstack/eslint-patch/-/eslint-patch-1.5.1.tgz#5f1b518ec5fa54437c0b7c4a821546c64fed6922"
integrity sha512-6i/8UoL0P5y4leBIGzvkZdS85RDMG9y1ihZzmTZQ5LdHUYmZ7pKFoj8X0236s3lusPs1Fa5HTQUpwI+UfTcmeA==
+"@semantic-release/changelog@6.0.3":
+ version "6.0.3"
+ resolved "https://registry.yarnpkg.com/@semantic-release/changelog/-/changelog-6.0.3.tgz#6195630ecbeccad174461de727d5f975abc23eeb"
+ integrity sha512-dZuR5qByyfe3Y03TpmCvAxCyTnp7r5XwtHRf/8vD9EAn4ZWbavUX8adMtXYzE86EVh0gyLA7lm5yW4IV30XUag==
+ dependencies:
+ "@semantic-release/error" "^3.0.0"
+ aggregate-error "^3.0.0"
+ fs-extra "^11.0.0"
+ lodash "^4.17.4"
+
+"@semantic-release/commit-analyzer@^11.0.0":
+ version "11.1.0"
+ resolved "https://registry.yarnpkg.com/@semantic-release/commit-analyzer/-/commit-analyzer-11.1.0.tgz#dd24663c4e1e7c218f53de73f5c639eb2d5a077e"
+ integrity sha512-cXNTbv3nXR2hlzHjAMgbuiQVtvWHTlwwISt60B+4NZv01y/QRY7p2HcJm8Eh2StzcTJoNnflvKjHH/cjFS7d5g==
+ dependencies:
+ conventional-changelog-angular "^7.0.0"
+ conventional-commits-filter "^4.0.0"
+ conventional-commits-parser "^5.0.0"
+ debug "^4.0.0"
+ import-from-esm "^1.0.3"
+ lodash-es "^4.17.21"
+ micromatch "^4.0.2"
+
+"@semantic-release/error@^3.0.0":
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/@semantic-release/error/-/error-3.0.0.tgz#30a3b97bbb5844d695eb22f9d3aa40f6a92770c2"
+ integrity sha512-5hiM4Un+tpl4cKw3lV4UgzJj+SmfNIDCLLw0TepzQxz9ZGV5ixnqkzIVF+3tp0ZHgcMKE+VNGHJjEeyFG2dcSw==
+
+"@semantic-release/error@^4.0.0":
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/@semantic-release/error/-/error-4.0.0.tgz#692810288239637f74396976a9340fbc0aa9f6f9"
+ integrity sha512-mgdxrHTLOjOddRVYIYDo0fR3/v61GNN1YGkfbrjuIKg/uMgCd+Qzo3UAXJ+woLQQpos4pl5Esuw5A7AoNlzjUQ==
+
+"@semantic-release/git@10.0.1":
+ version "10.0.1"
+ resolved "https://registry.yarnpkg.com/@semantic-release/git/-/git-10.0.1.tgz#c646e55d67fae623875bf3a06a634dd434904498"
+ integrity sha512-eWrx5KguUcU2wUPaO6sfvZI0wPafUKAMNC18aXY4EnNcrZL86dEmpNVnC9uMpGZkmZJ9EfCVJBQx4pV4EMGT1w==
+ dependencies:
+ "@semantic-release/error" "^3.0.0"
+ aggregate-error "^3.0.0"
+ debug "^4.0.0"
+ dir-glob "^3.0.0"
+ execa "^5.0.0"
+ lodash "^4.17.4"
+ micromatch "^4.0.0"
+ p-reduce "^2.0.0"
+
+"@semantic-release/github@^9.0.0":
+ version "9.2.6"
+ resolved "https://registry.yarnpkg.com/@semantic-release/github/-/github-9.2.6.tgz#0b0b00ab3ab0486cd3aecb4ae2f9f9cf2edd8eae"
+ integrity sha512-shi+Lrf6exeNZF+sBhK+P011LSbhmIAoUEgEY6SsxF8irJ+J2stwI5jkyDQ+4gzYyDImzV6LCKdYB9FXnQRWKA==
+ dependencies:
+ "@octokit/core" "^5.0.0"
+ "@octokit/plugin-paginate-rest" "^9.0.0"
+ "@octokit/plugin-retry" "^6.0.0"
+ "@octokit/plugin-throttling" "^8.0.0"
+ "@semantic-release/error" "^4.0.0"
+ aggregate-error "^5.0.0"
+ debug "^4.3.4"
+ dir-glob "^3.0.1"
+ globby "^14.0.0"
+ http-proxy-agent "^7.0.0"
+ https-proxy-agent "^7.0.0"
+ issue-parser "^6.0.0"
+ lodash-es "^4.17.21"
+ mime "^4.0.0"
+ p-filter "^4.0.0"
+ url-join "^5.0.0"
+
+"@semantic-release/npm@^11.0.0":
+ version "11.0.2"
+ resolved "https://registry.yarnpkg.com/@semantic-release/npm/-/npm-11.0.2.tgz#6d50046df286572718484c9a66b2095277e2f650"
+ integrity sha512-owtf3RjyPvRE63iUKZ5/xO4uqjRpVQDUB9+nnXj0xwfIeM9pRl+cG+zGDzdftR4m3f2s4Wyf3SexW+kF5DFtWA==
+ dependencies:
+ "@semantic-release/error" "^4.0.0"
+ aggregate-error "^5.0.0"
+ execa "^8.0.0"
+ fs-extra "^11.0.0"
+ lodash-es "^4.17.21"
+ nerf-dart "^1.0.0"
+ normalize-url "^8.0.0"
+ npm "^10.0.0"
+ rc "^1.2.8"
+ read-pkg "^9.0.0"
+ registry-auth-token "^5.0.0"
+ semver "^7.1.2"
+ tempy "^3.0.0"
+
+"@semantic-release/release-notes-generator@^12.0.0":
+ version "12.1.0"
+ resolved "https://registry.yarnpkg.com/@semantic-release/release-notes-generator/-/release-notes-generator-12.1.0.tgz#7fbe501188c7960db412b96a97c3d6cfb5788d12"
+ integrity sha512-g6M9AjUKAZUZnxaJZnouNBeDNTCUrJ5Ltj+VJ60gJeDaRRahcHsry9HW8yKrnKkKNkx5lbWiEP1FPMqVNQz8Kg==
+ dependencies:
+ conventional-changelog-angular "^7.0.0"
+ conventional-changelog-writer "^7.0.0"
+ conventional-commits-filter "^4.0.0"
+ conventional-commits-parser "^5.0.0"
+ debug "^4.0.0"
+ get-stream "^7.0.0"
+ import-from-esm "^1.0.3"
+ into-stream "^7.0.0"
+ lodash-es "^4.17.21"
+ read-pkg-up "^11.0.0"
+
"@sideway/address@^4.1.3":
version "4.1.4"
resolved "https://registry.yarnpkg.com/@sideway/address/-/address-4.1.4.tgz#03dccebc6ea47fdc226f7d3d1ad512955d4783f0"
@@ -2709,11 +3097,65 @@
resolved "https://registry.yarnpkg.com/@sideway/pinpoint/-/pinpoint-2.0.0.tgz#cff8ffadc372ad29fd3f78277aeb29e632cc70df"
integrity sha512-RNiOoTPkptFtSVzQevY/yWtZwf/RxyVnPy/OcA9HBM3MlGDnBEYL5B41H0MTn0Uec8Hi+2qUtTfG2WWZBmMejQ==
+"@sigstore/bundle@^2.1.1":
+ version "2.1.1"
+ resolved "https://registry.yarnpkg.com/@sigstore/bundle/-/bundle-2.1.1.tgz#7fad9a1728939301607103722ac6f2a083d2f09a"
+ integrity sha512-v3/iS+1nufZdKQ5iAlQKcCsoh0jffQyABvYIxKsZQFWc4ubuGjwZklFHpDgV6O6T7vvV78SW5NHI91HFKEcxKg==
+ dependencies:
+ "@sigstore/protobuf-specs" "^0.2.1"
+
+"@sigstore/core@^0.2.0":
+ version "0.2.0"
+ resolved "https://registry.yarnpkg.com/@sigstore/core/-/core-0.2.0.tgz#2d8ecae2c38a59a52b1dcbd6110014d88de08a80"
+ integrity sha512-THobAPPZR9pDH2CAvDLpkrYedt7BlZnsyxDe+Isq4ZmGfPy5juOFZq487vCU2EgKD7aHSiTfE/i7sN7aEdzQnA==
+
+"@sigstore/protobuf-specs@^0.2.1":
+ version "0.2.1"
+ resolved "https://registry.yarnpkg.com/@sigstore/protobuf-specs/-/protobuf-specs-0.2.1.tgz#be9ef4f3c38052c43bd399d3f792c97ff9e2277b"
+ integrity sha512-XTWVxnWJu+c1oCshMLwnKvz8ZQJJDVOlciMfgpJBQbThVjKTCG8dwyhgLngBD2KN0ap9F/gOV8rFDEx8uh7R2A==
+
+"@sigstore/sign@^2.2.1":
+ version "2.2.1"
+ resolved "https://registry.yarnpkg.com/@sigstore/sign/-/sign-2.2.1.tgz#b37383db1f25ab20cfec980d23ce08e6f99e6caf"
+ integrity sha512-U5sKQEj+faE1MsnLou1f4DQQHeFZay+V9s9768lw48J4pKykPj34rWyI1lsMOGJ3Mae47Ye6q3HAJvgXO21rkQ==
+ dependencies:
+ "@sigstore/bundle" "^2.1.1"
+ "@sigstore/core" "^0.2.0"
+ "@sigstore/protobuf-specs" "^0.2.1"
+ make-fetch-happen "^13.0.0"
+
+"@sigstore/tuf@^2.2.0", "@sigstore/tuf@^2.3.0":
+ version "2.3.0"
+ resolved "https://registry.yarnpkg.com/@sigstore/tuf/-/tuf-2.3.0.tgz#de64925ea10b16f3a7e77535d91eaf22be4dd904"
+ integrity sha512-S98jo9cpJwO1mtQ+2zY7bOdcYyfVYCUaofCG6wWRzk3pxKHVAkSfshkfecto2+LKsx7Ovtqbgb2LS8zTRhxJ9Q==
+ dependencies:
+ "@sigstore/protobuf-specs" "^0.2.1"
+ tuf-js "^2.2.0"
+
+"@sigstore/verify@^0.1.0":
+ version "0.1.0"
+ resolved "https://registry.yarnpkg.com/@sigstore/verify/-/verify-0.1.0.tgz#c017aadb1a516ab4a10651cece29463aa9540bfe"
+ integrity sha512-2UzMNYAa/uaz11NhvgRnIQf4gpLTJ59bhb8ESXaoSS5sxedfS+eLak8bsdMc+qpNQfITUTFoSKFx5h8umlRRiA==
+ dependencies:
+ "@sigstore/bundle" "^2.1.1"
+ "@sigstore/core" "^0.2.0"
+ "@sigstore/protobuf-specs" "^0.2.1"
+
"@sinclair/typebox@^0.27.8":
version "0.27.8"
resolved "https://registry.yarnpkg.com/@sinclair/typebox/-/typebox-0.27.8.tgz#6667fac16c436b5434a387a34dedb013198f6e6e"
integrity sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==
+"@sindresorhus/is@^4.6.0":
+ version "4.6.0"
+ resolved "https://registry.yarnpkg.com/@sindresorhus/is/-/is-4.6.0.tgz#3c7c9c46e678feefe7a2e5bb609d3dbd665ffb3f"
+ integrity sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw==
+
+"@sindresorhus/merge-streams@^1.0.0":
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/@sindresorhus/merge-streams/-/merge-streams-1.0.0.tgz#9cd84cc15bc865a5ca35fcaae198eb899f7b5c90"
+ integrity sha512-rUV5WyJrJLoloD4NDN1V1+LDMDWOa4OTsT4yYJwQNpTU6FWxkxHpL7eu4w+DmiH8x/EAM1otkPE1+LaspIbplw==
+
"@sinonjs/commons@^1.7.0":
version "1.8.6"
resolved "https://registry.yarnpkg.com/@sinonjs/commons/-/commons-1.8.6.tgz#80c516a4dc264c2a69115e7578d62581ff455ed9"
@@ -3576,6 +4018,19 @@
resolved "https://registry.yarnpkg.com/@tootallnate/once/-/once-1.1.2.tgz#ccb91445360179a04e7fe6aff78c00ffc1eeaf82"
integrity sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==
+"@tufjs/canonical-json@2.0.0":
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/@tufjs/canonical-json/-/canonical-json-2.0.0.tgz#a52f61a3d7374833fca945b2549bc30a2dd40d0a"
+ integrity sha512-yVtV8zsdo8qFHe+/3kw81dSLyF7D576A5cCFCi4X7B39tWT7SekaEFUnvnWJHz+9qO7qJTah1JbrDjWKqFtdWA==
+
+"@tufjs/models@2.0.0":
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/@tufjs/models/-/models-2.0.0.tgz#c7ab241cf11dd29deb213d6817dabb8c99ce0863"
+ integrity sha512-c8nj8BaOExmZKO2DXhDfegyhSGcG9E/mPN3U13L+/PsoWm1uaGiHHjxqSHQiasDBQwDA3aHuw9+9spYAP1qvvg==
+ dependencies:
+ "@tufjs/canonical-json" "2.0.0"
+ minimatch "^9.0.3"
+
"@types/aria-query@^5.0.1":
version "5.0.4"
resolved "https://registry.yarnpkg.com/@types/aria-query/-/aria-query-5.0.4.tgz#1a31c3d378850d2778dabb6374d036dcba4ba708"
@@ -3880,7 +4335,7 @@
dependencies:
undici-types "~5.26.4"
-"@types/normalize-package-data@^2.4.0":
+"@types/normalize-package-data@^2.4.0", "@types/normalize-package-data@^2.4.3":
version "2.4.4"
resolved "https://registry.yarnpkg.com/@types/normalize-package-data/-/normalize-package-data-2.4.4.tgz#56e2cc26c397c038fab0e3a917a12d5c5909e901"
integrity sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==
@@ -4290,11 +4745,24 @@
"@types/emscripten" "^1.39.6"
tslib "^1.13.0"
+JSONStream@^1.3.5:
+ version "1.3.5"
+ resolved "https://registry.yarnpkg.com/JSONStream/-/JSONStream-1.3.5.tgz#3208c1f08d3a4d99261ab64f92302bc15e111ca0"
+ integrity sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==
+ dependencies:
+ jsonparse "^1.2.0"
+ through ">=2.2.7 <3"
+
abab@^2.0.3, abab@^2.0.5:
version "2.0.6"
resolved "https://registry.yarnpkg.com/abab/-/abab-2.0.6.tgz#41b80f2c871d19686216b82309231cfd3cb3d291"
integrity sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA==
+abbrev@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-2.0.0.tgz#cf59829b8b4f03f89dda2771cb7f3653828c89bf"
+ integrity sha512-6/mh1E2u2YgEsCHdY0Yx5oW+61gZU+1vXaoiHHrpKeuRNNgFvS+/jrwHiQhB5apAf5oB7UB7E19ol2R2LKH8hQ==
+
accepts@~1.3.5, accepts@~1.3.8:
version "1.3.8"
resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.8.tgz#0bf0be125b67014adcb0b0921e62db7bffe16b2e"
@@ -4353,7 +4821,7 @@ agent-base@6:
dependencies:
debug "4"
-agent-base@^7.0.2:
+agent-base@^7.0.2, agent-base@^7.1.0:
version "7.1.0"
resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-7.1.0.tgz#536802b76bc0b34aa50195eb2442276d613e3434"
integrity sha512-o/zjMZRhJxny7OyEF+Op8X+efiELC7k7yOjMzgfzVqOzXqkBkWI79YoTdOtsuWd5BWhAGAuOY/Xa6xpiaWXiNg==
@@ -4368,6 +4836,14 @@ aggregate-error@^3.0.0:
clean-stack "^2.0.0"
indent-string "^4.0.0"
+aggregate-error@^5.0.0:
+ version "5.0.0"
+ resolved "https://registry.yarnpkg.com/aggregate-error/-/aggregate-error-5.0.0.tgz#ffe15045d7521c51c9d618e3d7f37c13f29b3fd3"
+ integrity sha512-gOsf2YwSlleG6IjRYG2A7k0HmBMEo6qVNk9Bp/EaLgAJT5ngH6PXbqa4ItvnEwCm/velL5jAnQgsHsWnjhGmvw==
+ dependencies:
+ clean-stack "^5.2.0"
+ indent-string "^5.0.0"
+
ajv-errors@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/ajv-errors/-/ajv-errors-1.0.1.tgz#f35986aceb91afadec4102fbd85014950cefa64d"
@@ -4424,6 +4900,13 @@ ansi-escapes@^4.2.1, ansi-escapes@^4.3.0:
dependencies:
type-fest "^0.21.3"
+ansi-escapes@^6.2.0:
+ version "6.2.0"
+ resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-6.2.0.tgz#8a13ce75286f417f1963487d86ba9f90dccf9947"
+ integrity sha512-kzRaCqXnpzWs+3z5ABPQiVke+iq0KXkHo8xiWV4RPTi5Yli0l97BEQuhXV1s7+aSU/fu1kUuxgS4MsQ0fRuygw==
+ dependencies:
+ type-fest "^3.0.0"
+
ansi-html-community@0.0.8, ansi-html-community@^0.0.8:
version "0.0.8"
resolved "https://registry.yarnpkg.com/ansi-html-community/-/ansi-html-community-0.0.8.tgz#69fbc4d6ccbe383f9736934ae34c3f8290f1bf41"
@@ -4441,7 +4924,7 @@ ansi-styles@^3.2.1:
dependencies:
color-convert "^1.9.0"
-ansi-styles@^4.0.0, ansi-styles@^4.1.0:
+ansi-styles@^4.0.0, ansi-styles@^4.1.0, ansi-styles@^4.3.0:
version "4.3.0"
resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937"
integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==
@@ -4458,6 +4941,11 @@ ansi-styles@^6.1.0:
resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-6.2.1.tgz#0e62320cf99c21afff3b3012192546aacbfb05c5"
integrity sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==
+ansicolors@~0.3.2:
+ version "0.3.2"
+ resolved "https://registry.yarnpkg.com/ansicolors/-/ansicolors-0.3.2.tgz#665597de86a9ffe3aa9bfbe6cae5c6ea426b4979"
+ integrity sha512-QXu7BPrP29VllRxH8GwB7x5iX5qWKAAMLqKQGWTeLWVlNHNOpVMJ91dsxQAIWXpjuW5wqvxu3Jd/nRjrJ+0pqg==
+
anymatch@^3.0.3, anymatch@~3.1.2:
version "3.1.3"
resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.3.tgz#790c58b19ba1720a84205b57c618d5ad8524973e"
@@ -4471,11 +4959,26 @@ app-root-dir@^1.0.2:
resolved "https://registry.yarnpkg.com/app-root-dir/-/app-root-dir-1.0.2.tgz#38187ec2dea7577fff033ffcb12172692ff6e118"
integrity sha512-jlpIfsOoNoafl92Sz//64uQHGSyMrD2vYG5d8o2a4qGvyNCvXur7bzIsWtAC/6flI2RYAp3kv8rsfBtaLm7w0g==
+"aproba@^1.0.3 || ^2.0.0", aproba@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/aproba/-/aproba-2.0.0.tgz#52520b8ae5b569215b354efc0caa3fe1e45a8adc"
+ integrity sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ==
+
arch@^2.2.0:
version "2.2.0"
resolved "https://registry.yarnpkg.com/arch/-/arch-2.2.0.tgz#1bc47818f305764f23ab3306b0bfc086c5a29d11"
integrity sha512-Of/R0wqp83cgHozfIYLbBMnej79U/SVGOOyuB3VVFv1NRM/PSFMK12x9KVtiYzJqmnU5WR2qp0Z5rHb7sWGnFQ==
+archy@~1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/archy/-/archy-1.0.0.tgz#f9c8c13757cc1dd7bc379ac77b2c62a5c2868c40"
+ integrity sha512-Xg+9RwCg/0p32teKdGMPTPnVXKD0w3DfHnFTficozsAgsvq2XenPJq/MYpzzQ/v8zrOyJn6Ds39VA4JIDwFfqw==
+
+are-we-there-yet@^4.0.0:
+ version "4.0.2"
+ resolved "https://registry.yarnpkg.com/are-we-there-yet/-/are-we-there-yet-4.0.2.tgz#aed25dd0eae514660d49ac2b2366b175c614785a"
+ integrity sha512-ncSWAawFhKMJDTdoAeOV+jyW1VCMj5QIAwULIBV0SSR7B/RLPPEQiknKcg/RIIZlUQrxELpsxMiTUoAQ4sIUyg==
+
argparse@^1.0.7:
version "1.0.10"
resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911"
@@ -4488,6 +4991,11 @@ argparse@^2.0.1:
resolved "https://registry.yarnpkg.com/argparse/-/argparse-2.0.1.tgz#246f50f3ca78a3240f6c997e8a9bd1eac49e4b38"
integrity sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==
+argv-formatter@~1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/argv-formatter/-/argv-formatter-1.0.0.tgz#a0ca0cbc29a5b73e836eebe1cbf6c5e0e4eb82f9"
+ integrity sha512-F2+Hkm9xFaRg+GkaNnbwXNDV5O6pnCFEmqyhvfC/Ic5LbgOWjJh3L+mN/s91rxVL3znE7DYVpW0GJFT+4YBgWw==
+
aria-hidden@^1.1.1:
version "1.2.3"
resolved "https://registry.yarnpkg.com/aria-hidden/-/aria-hidden-1.2.3.tgz#14aeb7fb692bbb72d69bebfa47279c1fd725e954"
@@ -4522,6 +5030,11 @@ array-flatten@1.1.1:
resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-1.1.1.tgz#9a5f699051b1e7073328f2a008968b64ea2955d2"
integrity sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==
+array-ify@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/array-ify/-/array-ify-1.0.0.tgz#9e528762b4a9066ad163a6962a364418e9626ece"
+ integrity sha512-c5AMf34bKdvPhQ7tBGhqkgKNUzMr4WUs+WDtC2ZUGOUncbxKMTvqxYctiseW3+L4bA8ec+GcZ6/A/FW4m8ukng==
+
array-includes@^3.1.6, array-includes@^3.1.7:
version "3.1.7"
resolved "https://registry.yarnpkg.com/array-includes/-/array-includes-3.1.7.tgz#8cd2e01b26f7a3086cbc87271593fe921c62abda"
@@ -4914,6 +5427,11 @@ bcrypt-pbkdf@^1.0.0:
dependencies:
tweetnacl "^0.14.3"
+before-after-hook@^2.2.0:
+ version "2.2.3"
+ resolved "https://registry.yarnpkg.com/before-after-hook/-/before-after-hook-2.2.3.tgz#c51e809c81a4e354084422b9b26bad88249c517c"
+ integrity sha512-NzUnlZexiaH/46WDhANlyR2bXRopNg4F/zuSA3OpZnllCUgRaOF2znDioDWrmbNVsuZk6l9pMquQB38cfBZwkQ==
+
better-opn@^3.0.2:
version "3.0.2"
resolved "https://registry.yarnpkg.com/better-opn/-/better-opn-3.0.2.tgz#f96f35deaaf8f34144a4102651babcf00d1d8817"
@@ -4931,7 +5449,17 @@ big.js@^5.2.2:
resolved "https://registry.yarnpkg.com/big.js/-/big.js-5.2.2.tgz#65f0af382f578bcdc742bd9c281e9cb2d7768328"
integrity sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==
-binary-extensions@^2.0.0:
+bin-links@^4.0.1:
+ version "4.0.3"
+ resolved "https://registry.yarnpkg.com/bin-links/-/bin-links-4.0.3.tgz#9e4a3c5900830aee3d7f52178b65e01dcdde64a5"
+ integrity sha512-obsRaULtJurnfox/MDwgq6Yo9kzbv1CPTk/1/s7Z/61Lezc8IKkFCOXNeVLXz0456WRzBQmSsDWlai2tIhBsfA==
+ dependencies:
+ cmd-shim "^6.0.0"
+ npm-normalize-package-bin "^3.0.0"
+ read-cmd-shim "^4.0.0"
+ write-file-atomic "^5.0.0"
+
+binary-extensions@^2.0.0, binary-extensions@^2.2.0:
version "2.2.0"
resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.2.0.tgz#75f502eeaf9ffde42fc98829645be4ea76bd9e2d"
integrity sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==
@@ -4978,6 +5506,11 @@ boolbase@^1.0.0:
resolved "https://registry.yarnpkg.com/boolbase/-/boolbase-1.0.0.tgz#68dff5fbe60c51eb37725ea9e3ed310dcc1e776e"
integrity sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==
+bottleneck@^2.15.3:
+ version "2.19.5"
+ resolved "https://registry.yarnpkg.com/bottleneck/-/bottleneck-2.19.5.tgz#5df0b90f59fd47656ebe63c78a98419205cadd91"
+ integrity sha512-VHiNCbI1lKdl44tGrhNfU3lup0Tj/ZBMJB5/2ZbNXRCPuRCO7ed2mgcK4r17y+KB2EfuYuRaVlwNbAeaWGSpbw==
+
bplist-parser@^0.2.0:
version "0.2.0"
resolved "https://registry.yarnpkg.com/bplist-parser/-/bplist-parser-0.2.0.tgz#43a9d183e5bf9d545200ceac3e712f79ebbe8d0e"
@@ -5076,6 +5609,13 @@ buffer@^5.5.0, buffer@^5.6.0:
base64-js "^1.3.1"
ieee754 "^1.1.13"
+builtins@^5.0.0:
+ version "5.0.1"
+ resolved "https://registry.yarnpkg.com/builtins/-/builtins-5.0.1.tgz#87f6db9ab0458be728564fa81d876d8d74552fa9"
+ integrity sha512-qwVpFEHNfhYJIzNRBvd2C1kyo6jz3ZSMPyyuR47OPdiKWlbYnZNyDWuyR175qDnAJLiCo5fBBqPb3RiXgWlkOQ==
+ dependencies:
+ semver "^7.0.0"
+
bytes@3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.0.0.tgz#d32815404d689699f85a4ea4fa8755dd13a96048"
@@ -5086,6 +5626,24 @@ bytes@3.1.2:
resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.1.2.tgz#8b0beeb98605adf1b128fa4386403c009e0221a5"
integrity sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==
+cacache@^18.0.0, cacache@^18.0.2:
+ version "18.0.2"
+ resolved "https://registry.yarnpkg.com/cacache/-/cacache-18.0.2.tgz#fd527ea0f03a603be5c0da5805635f8eef00c60c"
+ integrity sha512-r3NU8h/P+4lVUHfeRw1dtgQYar3DZMm4/cm2bZgOvrFC/su7budSOeqh52VJIC4U4iG1WWwV6vRW0znqBvxNuw==
+ dependencies:
+ "@npmcli/fs" "^3.1.0"
+ fs-minipass "^3.0.0"
+ glob "^10.2.2"
+ lru-cache "^10.0.1"
+ minipass "^7.0.3"
+ minipass-collect "^2.0.1"
+ minipass-flush "^1.0.5"
+ minipass-pipeline "^1.2.4"
+ p-map "^4.0.0"
+ ssri "^10.0.0"
+ tar "^6.1.11"
+ unique-filename "^3.0.0"
+
cachedir@^2.3.0:
version "2.4.0"
resolved "https://registry.yarnpkg.com/cachedir/-/cachedir-2.4.0.tgz#7fef9cf7367233d7c88068fe6e34ed0d355a610d"
@@ -5152,6 +5710,14 @@ caniuse-lite@^1.0.30001565:
resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001572.tgz#1ccf7dc92d2ee2f92ed3a54e11b7b4a3041acfa0"
integrity sha512-1Pbh5FLmn5y4+QhNyJE9j3/7dK44dGB83/ZMjv/qJk86TvDbjk0LosiZo0i0WB0Vx607qMX9jYrn1VLHCkN4rw==
+cardinal@^2.1.1:
+ version "2.1.1"
+ resolved "https://registry.yarnpkg.com/cardinal/-/cardinal-2.1.1.tgz#7cc1055d822d212954d07b085dea251cc7bc5505"
+ integrity sha512-JSr5eOgoEymtYHBjNWyjrMqet9Am2miJhlfKNdqLp6zoeAh0KN5dRAcxlecj5mAJrmQomgiOBj35xHLrFjqBpw==
+ dependencies:
+ ansicolors "~0.3.2"
+ redeyed "~2.1.0"
+
case-sensitive-paths-webpack-plugin@^2.4.0:
version "2.4.0"
resolved "https://registry.yarnpkg.com/case-sensitive-paths-webpack-plugin/-/case-sensitive-paths-webpack-plugin-2.4.0.tgz#db64066c6422eed2e08cc14b986ca43796dbc6d4"
@@ -5192,6 +5758,11 @@ chalk@^4.0.0, chalk@^4.0.2, chalk@^4.1.0, chalk@^4.1.2:
ansi-styles "^4.1.0"
supports-color "^7.1.0"
+chalk@^5.3.0:
+ version "5.3.0"
+ resolved "https://registry.yarnpkg.com/chalk/-/chalk-5.3.0.tgz#67c20a7ebef70e7f3970a01f90fa210cb6860385"
+ integrity sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==
+
char-regex@^1.0.2:
version "1.0.2"
resolved "https://registry.yarnpkg.com/char-regex/-/char-regex-1.0.2.tgz#d744358226217f981ed58f479b1d6bcc29545dcf"
@@ -5242,6 +5813,18 @@ ci-info@^3.2.0:
resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-3.9.0.tgz#4279a62028a7b1f262f3473fc9605f5e218c59b4"
integrity sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==
+ci-info@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-4.0.0.tgz#65466f8b280fc019b9f50a5388115d17a63a44f2"
+ integrity sha512-TdHqgGf9odd8SXNuxtUBVx8Nv+qZOejE6qyqiy5NtbYYQOeFa6zmHkxlPzmaLxWWHsU6nJmB7AETdVPi+2NBUg==
+
+cidr-regex@4.0.3:
+ version "4.0.3"
+ resolved "https://registry.yarnpkg.com/cidr-regex/-/cidr-regex-4.0.3.tgz#07b52c9762d1ff546a50740e92fc2b5b13a6d871"
+ integrity sha512-HOwDIy/rhKeMf6uOzxtv7FAbrz8zPjmVKfSpM+U7/bNBXC5rtOyr758jxcptiSx6ZZn5LOhPJT5WWxPAGDV8dw==
+ dependencies:
+ ip-regex "^5.0.0"
+
cjs-module-lexer@^1.0.0:
version "1.2.3"
resolved "https://registry.yarnpkg.com/cjs-module-lexer/-/cjs-module-lexer-1.2.3.tgz#6c370ab19f8a3394e318fe682686ec0ac684d107"
@@ -5264,6 +5847,21 @@ clean-stack@^2.0.0:
resolved "https://registry.yarnpkg.com/clean-stack/-/clean-stack-2.2.0.tgz#ee8472dbb129e727b31e8a10a427dee9dfe4008b"
integrity sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==
+clean-stack@^5.2.0:
+ version "5.2.0"
+ resolved "https://registry.yarnpkg.com/clean-stack/-/clean-stack-5.2.0.tgz#c7a0c91939c7caace30a3bf254e8a8ac276d1189"
+ integrity sha512-TyUIUJgdFnCISzG5zu3291TAsE77ddchd0bepon1VVQrKLGKFED4iXFEDQ24mIPdPBbyE16PK3F8MYE1CmcBEQ==
+ dependencies:
+ escape-string-regexp "5.0.0"
+
+cli-columns@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/cli-columns/-/cli-columns-4.0.0.tgz#9fe4d65975238d55218c41bd2ed296a7fa555646"
+ integrity sha512-XW2Vg+w+L9on9wtwKpyzluIPCWXjaBahI7mTcYjx+BVIYD9c3yqcv/yKC7CmdCZat4rq2yiE1UMSJC5ivKfMtQ==
+ dependencies:
+ string-width "^4.2.3"
+ strip-ansi "^6.0.1"
+
cli-cursor@^3.1.0:
version "3.1.0"
resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-3.1.0.tgz#264305a7ae490d1d03bf0c9ba7c925d1753af307"
@@ -5276,7 +5874,7 @@ cli-spinners@^2.5.0:
resolved "https://registry.yarnpkg.com/cli-spinners/-/cli-spinners-2.9.1.tgz#9c0b9dad69a6d47cbb4333c14319b060ed395a35"
integrity sha512-jHgecW0pxkonBJdrKsqxgRX9AcG+u/5k0Q7WPDfi8AogLAdwxEkyYYNWwZ5GvVFoFx2uiY1eNcSK00fh+1+FyQ==
-cli-table3@^0.6.1, cli-table3@~0.6.1:
+cli-table3@^0.6.1, cli-table3@^0.6.3, cli-table3@~0.6.1:
version "0.6.3"
resolved "https://registry.yarnpkg.com/cli-table3/-/cli-table3-0.6.3.tgz#61ab765aac156b52f222954ffc607a6f01dbeeb2"
integrity sha512-w5Jac5SykAeZJKntOxJCrm63Eg5/4dhMWIcuTbo9rpE+brgaSZo0RuNJZeOyMgsUdhDeojvgyQLmjI+K50ZGyg==
@@ -5325,6 +5923,11 @@ clone@^1.0.2:
resolved "https://registry.yarnpkg.com/clone/-/clone-1.0.4.tgz#da309cc263df15994c688ca902179ca3c7cd7c7e"
integrity sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==
+cmd-shim@^6.0.0:
+ version "6.0.2"
+ resolved "https://registry.yarnpkg.com/cmd-shim/-/cmd-shim-6.0.2.tgz#435fd9e5c95340e61715e19f90209ed6fcd9e0a4"
+ integrity sha512-+FFYbB0YLaAkhkcrjkyNLYDiOsFSfRjwjY19LXk/psmMx1z00xlCv7hhQoTGXXIKi+YXHL/iiFo8NqMVQX9nOw==
+
co@^4.6.0:
version "4.6.0"
resolved "https://registry.yarnpkg.com/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184"
@@ -5359,6 +5962,11 @@ color-name@~1.1.4:
resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2"
integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==
+color-support@^1.1.3:
+ version "1.1.3"
+ resolved "https://registry.yarnpkg.com/color-support/-/color-support-1.1.3.tgz#93834379a1cc9a0c61f82f52f0d04322251bd5a2"
+ integrity sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==
+
colord@^2.9.3:
version "2.9.3"
resolved "https://registry.yarnpkg.com/colord/-/colord-2.9.3.tgz#4f8ce919de456f1d5c1c368c307fe20f3e59fb43"
@@ -5369,6 +5977,14 @@ colorette@^2.0.10, colorette@^2.0.16, colorette@^2.0.20:
resolved "https://registry.yarnpkg.com/colorette/-/colorette-2.0.20.tgz#9eb793e6833067f7235902fcd3b09917a000a95a"
integrity sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==
+columnify@^1.6.0:
+ version "1.6.0"
+ resolved "https://registry.yarnpkg.com/columnify/-/columnify-1.6.0.tgz#6989531713c9008bb29735e61e37acf5bd553cf3"
+ integrity sha512-lomjuFZKfM6MSAnV9aCZC9sc0qGbmZdfygNv+nCpqVkSKdCxCklLtd16O0EILGkImHw9ZpHkAnHaB+8Zxq5W6Q==
+ dependencies:
+ strip-ansi "^6.0.1"
+ wcwidth "^1.0.0"
+
combined-stream@^1.0.6, combined-stream@^1.0.8, combined-stream@~1.0.6:
version "1.0.8"
resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f"
@@ -5401,6 +6017,11 @@ commander@^9.0.0:
resolved "https://registry.yarnpkg.com/commander/-/commander-9.5.0.tgz#bc08d1eb5cedf7ccb797a96199d41c7bc3e60d30"
integrity sha512-KRs7WVDKg86PWiuAqhDrAQnTXZKraVcCc6vFdL14qrZ/DcWwuRo7VoiYXalXO7S5GKpqYiVEwCbgFDfxNHKJBQ==
+common-ancestor-path@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/common-ancestor-path/-/common-ancestor-path-1.0.1.tgz#4f7d2d1394d91b7abdf51871c62f71eadb0182a7"
+ integrity sha512-L3sHRo1pXXEqX8VU28kfgUY+YGsk09hPqZiZmLacNib6XNTCM8ubYeT7ryXQw8asB1sKgcU5lkB7ONug08aB8w==
+
common-path-prefix@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/common-path-prefix/-/common-path-prefix-3.0.0.tgz#7d007a7e07c58c4b4d5f433131a19141b29f11e0"
@@ -5416,6 +6037,14 @@ commondir@^1.0.1:
resolved "https://registry.yarnpkg.com/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b"
integrity sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==
+compare-func@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/compare-func/-/compare-func-2.0.0.tgz#fb65e75edbddfd2e568554e8b5b05fff7a51fcb3"
+ integrity sha512-zHig5N+tPWARooBnb0Zx1MFcdfpyJrfTJ3Y5L+IFvUm8rM74hHz66z0gw0x4tijh5CorKkKUCnW82R2vmpeCRA==
+ dependencies:
+ array-ify "^1.0.0"
+ dot-prop "^5.1.0"
+
compressible@~2.0.16:
version "2.0.18"
resolved "https://registry.yarnpkg.com/compressible/-/compressible-2.0.18.tgz#af53cca6b070d4c3c0750fbd77286a6d7cc46fba"
@@ -5466,11 +6095,24 @@ concurrently@8.2.2:
tree-kill "^1.2.2"
yargs "^17.7.2"
+config-chain@^1.1.11:
+ version "1.1.13"
+ resolved "https://registry.yarnpkg.com/config-chain/-/config-chain-1.1.13.tgz#fad0795aa6a6cdaff9ed1b68e9dff94372c232f4"
+ integrity sha512-qj+f8APARXHrM0hraqXYb2/bOVSV4PvJQlNZ/DVj0QrmNM2q2euizkeuVckQ57J+W0mRH6Hvi+k50M4Jul2VRQ==
+ dependencies:
+ ini "^1.3.4"
+ proto-list "~1.2.1"
+
confusing-browser-globals@^1.0.11:
version "1.0.11"
resolved "https://registry.yarnpkg.com/confusing-browser-globals/-/confusing-browser-globals-1.0.11.tgz#ae40e9b57cdd3915408a2805ebd3a5585608dc81"
integrity sha512-JsPKdmh8ZkmnHxDk55FZ1TqVLvEQTvoByJZRN9jzI0UjxK/QgAmsphz7PGtqgPieQZ/CQcHWXCR7ATDNhGe+YA==
+console-control-strings@^1.1.0:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/console-control-strings/-/console-control-strings-1.1.0.tgz#3d7cf4464db6446ea644bf4b39507f9851008e8e"
+ integrity sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ==
+
constants-browserify@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/constants-browserify/-/constants-browserify-1.0.0.tgz#c20b96d8c617748aaf1c16021760cd27fcb8cb75"
@@ -5488,6 +6130,40 @@ content-type@~1.0.4:
resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.5.tgz#8b773162656d1d1086784c8f23a54ce6d73d7918"
integrity sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==
+conventional-changelog-angular@^7.0.0:
+ version "7.0.0"
+ resolved "https://registry.yarnpkg.com/conventional-changelog-angular/-/conventional-changelog-angular-7.0.0.tgz#5eec8edbff15aa9b1680a8dcfbd53e2d7eb2ba7a"
+ integrity sha512-ROjNchA9LgfNMTTFSIWPzebCwOGFdgkEq45EnvvrmSLvCtAw0HSmrCs7/ty+wAeYUZyNay0YMUNYFTRL72PkBQ==
+ dependencies:
+ compare-func "^2.0.0"
+
+conventional-changelog-writer@^7.0.0:
+ version "7.0.1"
+ resolved "https://registry.yarnpkg.com/conventional-changelog-writer/-/conventional-changelog-writer-7.0.1.tgz#e64ef74fa8e773cab4124af217f3f02b29eb0a9c"
+ integrity sha512-Uo+R9neH3r/foIvQ0MKcsXkX642hdm9odUp7TqgFS7BsalTcjzRlIfWZrZR1gbxOozKucaKt5KAbjW8J8xRSmA==
+ dependencies:
+ conventional-commits-filter "^4.0.0"
+ handlebars "^4.7.7"
+ json-stringify-safe "^5.0.1"
+ meow "^12.0.1"
+ semver "^7.5.2"
+ split2 "^4.0.0"
+
+conventional-commits-filter@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/conventional-commits-filter/-/conventional-commits-filter-4.0.0.tgz#845d713e48dc7d1520b84ec182e2773c10c7bf7f"
+ integrity sha512-rnpnibcSOdFcdclpFwWa+pPlZJhXE7l+XK04zxhbWrhgpR96h33QLz8hITTXbcYICxVr3HZFtbtUAQ+4LdBo9A==
+
+conventional-commits-parser@^5.0.0:
+ version "5.0.0"
+ resolved "https://registry.yarnpkg.com/conventional-commits-parser/-/conventional-commits-parser-5.0.0.tgz#57f3594b81ad54d40c1b4280f04554df28627d9a"
+ integrity sha512-ZPMl0ZJbw74iS9LuX9YIAiW8pfM5p3yh2o/NbXHbkFuZzY5jvdi5jFycEOkmBW5H5I7nA+D6f3UcsCLP2vvSEA==
+ dependencies:
+ JSONStream "^1.3.5"
+ is-text-path "^2.0.0"
+ meow "^12.0.1"
+ split2 "^4.0.0"
+
convert-source-map@^1.4.0, convert-source-map@^1.6.0:
version "1.9.0"
resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.9.0.tgz#7faae62353fb4213366d0ca98358d22e8368b05f"
@@ -5551,6 +6227,16 @@ cosmiconfig@^8.0.0, cosmiconfig@^8.2.0:
parse-json "^5.2.0"
path-type "^4.0.0"
+cosmiconfig@^9.0.0:
+ version "9.0.0"
+ resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-9.0.0.tgz#34c3fc58287b915f3ae905ab6dc3de258b55ad9d"
+ integrity sha512-itvL5h8RETACmOTFc4UfIyB2RfEHi71Ax6E/PivVxq9NseKbOWpeyHEOIbmAw1rs8Ak0VursQNww7lf7YtUwzg==
+ dependencies:
+ env-paths "^2.2.1"
+ import-fresh "^3.3.0"
+ js-yaml "^4.1.0"
+ parse-json "^5.2.0"
+
cross-spawn@^7.0.0, cross-spawn@^7.0.2, cross-spawn@^7.0.3:
version "7.0.3"
resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6"
@@ -5565,6 +6251,13 @@ crypto-random-string@^2.0.0:
resolved "https://registry.yarnpkg.com/crypto-random-string/-/crypto-random-string-2.0.0.tgz#ef2a7a966ec11083388369baa02ebead229b30d5"
integrity sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==
+crypto-random-string@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/crypto-random-string/-/crypto-random-string-4.0.0.tgz#5a3cc53d7dd86183df5da0312816ceeeb5bb1fc2"
+ integrity sha512-x8dy3RnvYdlUcPOjkEHqozhiwzKNSq7GcPuXFbnyMOCHxX8V3OgIg/pYuabl2sbUPfIJaeAQB7PMOK8DFIdoRA==
+ dependencies:
+ type-fest "^1.0.1"
+
css-functions-list@^3.2.1:
version "3.2.1"
resolved "https://registry.yarnpkg.com/css-functions-list/-/css-functions-list-3.2.1.tgz#2eb205d8ce9f9ce74c5c1d7490b66b77c45ce3ea"
@@ -5810,6 +6503,11 @@ deep-equal@^2.0.5:
which-collection "^1.0.1"
which-typed-array "^1.1.13"
+deep-extend@^0.6.0:
+ version "0.6.0"
+ resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.6.0.tgz#c4fa7c95404a17a9c3e8ca7e1537312b736330ac"
+ integrity sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==
+
deep-is@^0.1.3:
version "0.1.4"
resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.4.tgz#a6f2dce612fadd2ef1f519b73551f17e85199831"
@@ -5887,6 +6585,11 @@ depd@2.0.0:
resolved "https://registry.yarnpkg.com/depd/-/depd-2.0.0.tgz#b696163cc757560d09cf22cc8fad1571b79e76df"
integrity sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==
+deprecation@^2.0.0:
+ version "2.3.1"
+ resolved "https://registry.yarnpkg.com/deprecation/-/deprecation-2.3.1.tgz#6368cbdb40abf3373b525ac87e4a260c3a700919"
+ integrity sha512-xmHIy4F3scKVwMsQ4WnVaS8bHOx0DmVwRywosKhaILI0ywMDWPtBSku2HNxRvF7jtwDRsoEwYQSfbxj8b7RlJQ==
+
dequal@^2.0.0, dequal@^2.0.2, dequal@^2.0.3:
version "2.0.3"
resolved "https://registry.yarnpkg.com/dequal/-/dequal-2.0.3.tgz#2644214f1997d39ed0ee0ece72335490a7ac67be"
@@ -5937,12 +6640,12 @@ diff-sequences@^29.6.3:
resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-29.6.3.tgz#4deaf894d11407c51efc8418012f9e70b84ea921"
integrity sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==
-diff@^5.0.0:
+diff@^5.0.0, diff@^5.1.0:
version "5.1.0"
resolved "https://registry.yarnpkg.com/diff/-/diff-5.1.0.tgz#bc52d298c5ea8df9194800224445ed43ffc87e40"
integrity sha512-D+mk+qE8VC/PAUrlAU34N+VfXev0ghe5ywmpqrawphmVZc1bEfn56uo9qpyGp1p4xpzOHkSW4ztBd6L7Xx4ACw==
-dir-glob@^3.0.1:
+dir-glob@^3.0.0, dir-glob@^3.0.1:
version "3.0.1"
resolved "https://registry.yarnpkg.com/dir-glob/-/dir-glob-3.0.1.tgz#56dbf73d992a4a93ba1584f4534063fd2e41717f"
integrity sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==
@@ -6020,6 +6723,13 @@ dot-case@^3.0.4:
no-case "^3.0.4"
tslib "^2.0.3"
+dot-prop@^5.1.0:
+ version "5.3.0"
+ resolved "https://registry.yarnpkg.com/dot-prop/-/dot-prop-5.3.0.tgz#90ccce708cd9cd82cc4dc8c3ddd9abdd55b20e88"
+ integrity sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==
+ dependencies:
+ is-obj "^2.0.0"
+
dotenv-expand@^10.0.0:
version "10.0.0"
resolved "https://registry.yarnpkg.com/dotenv-expand/-/dotenv-expand-10.0.0.tgz#12605d00fb0af6d0a592e6558585784032e4ef37"
@@ -6030,6 +6740,13 @@ dotenv@^16.0.0:
resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-16.3.1.tgz#369034de7d7e5b120972693352a3bf112172cc3e"
integrity sha512-IPzF4w4/Rd94bA9imS68tZBaYyBWSCE47V1RGuMrB94iyTOIEwRmVL2x/4An+6mETpLrKJ5hQkB8W4kFAadeIQ==
+duplexer2@~0.1.0:
+ version "0.1.4"
+ resolved "https://registry.yarnpkg.com/duplexer2/-/duplexer2-0.1.4.tgz#8b12dab878c0d69e3e7891051662a32fc6bddcc1"
+ integrity sha512-asLFVfWWtJ90ZyOUHMqk7/S2w2guQKxUI2itj3d92ADHhxUSbCMGi1f1cBcJ7xM1To+pE/Khbwo1yuNbMEPKeA==
+ dependencies:
+ readable-stream "^2.0.2"
+
duplexify@^3.5.0, duplexify@^3.6.0:
version "3.7.1"
resolved "https://registry.yarnpkg.com/duplexify/-/duplexify-3.7.1.tgz#2a4df5317f6ccfd91f86d6fd25d8d8a103b88309"
@@ -6085,6 +6802,11 @@ emoji-regex@^9.2.2:
resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-9.2.2.tgz#840c8803b0d8047f4ff0cf963176b32d4ef3ed72"
integrity sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==
+emojilib@^2.4.0:
+ version "2.4.0"
+ resolved "https://registry.yarnpkg.com/emojilib/-/emojilib-2.4.0.tgz#ac518a8bb0d5f76dda57289ccb2fdf9d39ae721e"
+ integrity sha512-5U0rVMU5Y2n2+ykNLQqMoqklN9ICBT/KsvC1Gz6vqHbz2AXXGkG+Pm5rMWk/8Vjrr/mY9985Hi8DYzn1F09Nyw==
+
emojis-list@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/emojis-list/-/emojis-list-3.0.0.tgz#5570662046ad29e2e916e71aae260abdff4f6a78"
@@ -6095,6 +6817,13 @@ encodeurl@~1.0.2:
resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59"
integrity sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==
+encoding@^0.1.13:
+ version "0.1.13"
+ resolved "https://registry.yarnpkg.com/encoding/-/encoding-0.1.13.tgz#56574afdd791f54a8e9b2785c0582a2d26210fa9"
+ integrity sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==
+ dependencies:
+ iconv-lite "^0.6.2"
+
end-of-stream@^1.0.0, end-of-stream@^1.1.0, end-of-stream@^1.4.1:
version "1.4.4"
resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.4.tgz#5ae64a5f45057baf3626ec14da0ca5e4b2431eb0"
@@ -6132,11 +6861,29 @@ entities@^2.0.0:
resolved "https://registry.yarnpkg.com/entities/-/entities-2.2.0.tgz#098dc90ebb83d8dffa089d55256b351d34c4da55"
integrity sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==
+env-ci@^11.0.0:
+ version "11.0.0"
+ resolved "https://registry.yarnpkg.com/env-ci/-/env-ci-11.0.0.tgz#0cbc2c55feb071a3651aaa9fa181a817e696595f"
+ integrity sha512-apikxMgkipkgTvMdRT9MNqWx5VLOci79F4VBd7Op/7OPjjoanjdAvn6fglMCCEf/1bAh8eOiuEVCUs4V3qP3nQ==
+ dependencies:
+ execa "^8.0.0"
+ java-properties "^1.0.2"
+
+env-paths@^2.2.0, env-paths@^2.2.1:
+ version "2.2.1"
+ resolved "https://registry.yarnpkg.com/env-paths/-/env-paths-2.2.1.tgz#420399d416ce1fbe9bc0a07c62fa68d67fd0f8f2"
+ integrity sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==
+
envinfo@^7.7.3:
version "7.11.0"
resolved "https://registry.yarnpkg.com/envinfo/-/envinfo-7.11.0.tgz#c3793f44284a55ff8c82faf1ffd91bc6478ea01f"
integrity sha512-G9/6xF1FPbIw0TtalAMaVPpiq2aDEuKLXM314jPVAO9r2fo2a4BLqMNkmRS7O/xPPZ+COAhGIz3ETvHEV3eUcg==
+err-code@^2.0.2:
+ version "2.0.3"
+ resolved "https://registry.yarnpkg.com/err-code/-/err-code-2.0.3.tgz#23c2f3b756ffdfc608d30e27c9a941024807e7f9"
+ integrity sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA==
+
error-ex@^1.3.1:
version "1.3.2"
resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf"
@@ -6342,6 +7089,11 @@ escape-html@~1.0.3:
resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988"
integrity sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==
+escape-string-regexp@5.0.0, escape-string-regexp@^5.0.0:
+ version "5.0.0"
+ resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz#4683126b500b61762f2dbebace1806e8be31b1c8"
+ integrity sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==
+
escape-string-regexp@^1.0.5:
version "1.0.5"
resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4"
@@ -6357,11 +7109,6 @@ escape-string-regexp@^4.0.0:
resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#14ba83a5d373e3d311e5afca29cf5bfad965bf34"
integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==
-escape-string-regexp@^5.0.0:
- version "5.0.0"
- resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz#4683126b500b61762f2dbebace1806e8be31b1c8"
- integrity sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==
-
escodegen@^2.0.0, escodegen@^2.1.0:
version "2.1.0"
resolved "https://registry.yarnpkg.com/escodegen/-/escodegen-2.1.0.tgz#ba93bbb7a43986d29d6041f99f5262da773e2e17"
@@ -6713,6 +7460,21 @@ execa@^5.0.0, execa@^5.1.1:
signal-exit "^3.0.3"
strip-final-newline "^2.0.0"
+execa@^8.0.0:
+ version "8.0.1"
+ resolved "https://registry.yarnpkg.com/execa/-/execa-8.0.1.tgz#51f6a5943b580f963c3ca9c6321796db8cc39b8c"
+ integrity sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==
+ dependencies:
+ cross-spawn "^7.0.3"
+ get-stream "^8.0.1"
+ human-signals "^5.0.0"
+ is-stream "^3.0.0"
+ merge-stream "^2.0.0"
+ npm-run-path "^5.1.0"
+ onetime "^6.0.0"
+ signal-exit "^4.1.0"
+ strip-final-newline "^3.0.0"
+
executable@^4.1.1:
version "4.1.1"
resolved "https://registry.yarnpkg.com/executable/-/executable-4.1.1.tgz#41532bff361d3e57af4d763b70582db18f5d133c"
@@ -6746,6 +7508,11 @@ expect@^29.0.0:
jest-message-util "^29.7.0"
jest-util "^29.7.0"
+exponential-backoff@^3.1.1:
+ version "3.1.1"
+ resolved "https://registry.yarnpkg.com/exponential-backoff/-/exponential-backoff-3.1.1.tgz#64ac7526fe341ab18a39016cd22c787d01e00bf6"
+ integrity sha512-dX7e/LHVJ6W3DE1MHWi9S1EYzDESENfLrYohG2G++ovZrYOkm4Knwa0mc1cn84xJOR4KEU0WSchhLbd0UklbHw==
+
express@^4.17.3:
version "4.18.2"
resolved "https://registry.yarnpkg.com/express/-/express-4.18.2.tgz#3fabe08296e930c796c19e3c516979386ba9fd59"
@@ -6836,7 +7603,7 @@ fast-diff@^1.1.2:
resolved "https://registry.yarnpkg.com/fast-diff/-/fast-diff-1.3.0.tgz#ece407fa550a64d638536cd727e129c61616e0f0"
integrity sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw==
-fast-glob@^3.2.11, fast-glob@^3.2.9, fast-glob@^3.3.1:
+fast-glob@^3.2.11, fast-glob@^3.2.9, fast-glob@^3.3.1, fast-glob@^3.3.2:
version "3.3.2"
resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.3.2.tgz#a904501e57cfdd2ffcded45e99a54fef55e46129"
integrity sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==
@@ -6893,6 +7660,13 @@ fetch-retry@^5.0.2:
resolved "https://registry.yarnpkg.com/fetch-retry/-/fetch-retry-5.0.6.tgz#17d0bc90423405b7a88b74355bf364acd2a7fa56"
integrity sha512-3yurQZ2hD9VISAhJJP9bpYFNQrHHBXE2JxxjY5aLEcDi46RmAzJE2OC9FAde0yis5ElW0jTTzs0zfg/Cca4XqQ==
+figures@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/figures/-/figures-2.0.0.tgz#3ab1a2d2a62c8bfb431a0c94cb797a2fce27c962"
+ integrity sha512-Oa2M9atig69ZkfwiApY8F2Yy+tzMbazyvqv21R0NsSC8floSOC09BbT1ITWAdoMGQvJ/aZnR1KMwdx9tvHnTNA==
+ dependencies:
+ escape-string-regexp "^1.0.5"
+
figures@^3.2.0:
version "3.2.0"
resolved "https://registry.yarnpkg.com/figures/-/figures-3.2.0.tgz#625c18bd293c604dc4a8ddb2febf0c88341746af"
@@ -6900,6 +7674,13 @@ figures@^3.2.0:
dependencies:
escape-string-regexp "^1.0.5"
+figures@^6.0.0:
+ version "6.0.1"
+ resolved "https://registry.yarnpkg.com/figures/-/figures-6.0.1.tgz#75a2baf3ca8c63e2ea253179e9f1157833587ea4"
+ integrity sha512-0oY/olScYD4IhQ8u//gCPA4F3mlTn2dacYmiDm/mbDQvpmLjV4uH+zhsQ5IyXRyvqkvtUkXkNdGvg5OFJTCsuQ==
+ dependencies:
+ is-unicode-supported "^2.0.0"
+
file-entry-cache@^6.0.1:
version "6.0.1"
resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-6.0.1.tgz#211b2dd9659cb0394b073e7323ac3c933d522027"
@@ -6983,7 +7764,19 @@ find-cache-dir@^4.0.0:
common-path-prefix "^3.0.0"
pkg-dir "^7.0.0"
-find-up@^3.0.0:
+find-up-simple@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/find-up-simple/-/find-up-simple-1.0.0.tgz#21d035fde9fdbd56c8f4d2f63f32fd93a1cfc368"
+ integrity sha512-q7Us7kcjj2VMePAa02hDAF6d+MzsdsAWEwYyOpwUtlerRBkOEPBCRZrAV4XfcSN8fHAgaD0hP7miwoay6DCprw==
+
+find-up@^2.0.0:
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/find-up/-/find-up-2.1.0.tgz#45d1b7e506c717ddd482775a2b77920a3c0c57a7"
+ integrity sha512-NWzkk0jSJtTt08+FBFMvXoeZnOJD+jTtsRmBYbAIzJdX6l7dLgR7CTubCM5/eDdPUBvLCeVasP1brfVR/9/EZQ==
+ dependencies:
+ locate-path "^2.0.0"
+
+find-up@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/find-up/-/find-up-3.0.0.tgz#49169f1d7993430646da61ecc5ae355c21c97b73"
integrity sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==
@@ -7014,6 +7807,13 @@ find-up@^6.3.0:
locate-path "^7.1.0"
path-exists "^5.0.0"
+find-versions@^5.1.0:
+ version "5.1.0"
+ resolved "https://registry.yarnpkg.com/find-versions/-/find-versions-5.1.0.tgz#973f6739ce20f5e439a27eba8542a4b236c8e685"
+ integrity sha512-+iwzCJ7C5v5KgcBuueqVoNiHVoQpwiUK5XFLjf0affFTep+Wcw93tPvmb8tqujDNmzhBDPddnWV/qgWSXgq+Hg==
+ dependencies:
+ semver-regex "^4.0.5"
+
flat-cache@^3.0.4, flat-cache@^3.1.1:
version "3.1.1"
resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-3.1.1.tgz#a02a15fdec25a8f844ff7cc658f03dd99eb4609b"
@@ -7113,6 +7913,14 @@ fresh@0.5.2:
resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7"
integrity sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==
+from2@^2.3.0:
+ version "2.3.0"
+ resolved "https://registry.yarnpkg.com/from2/-/from2-2.3.0.tgz#8bfb5502bde4a4d36cfdeea007fcca21d7e382af"
+ integrity sha512-OMcX/4IC/uqEPVgGeyfN22LJk6AZrMkRZHxcHBMBvHScDGgwTm2GT2Wkgtocyd3JfZffjj2kYUDXXII0Fk9W0g==
+ dependencies:
+ inherits "^2.0.1"
+ readable-stream "^2.0.0"
+
fs-constants@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/fs-constants/-/fs-constants-1.0.0.tgz#6be0de9be998ce16af8afc24497b9ee9b7ccd9ad"
@@ -7136,6 +7944,15 @@ fs-extra@^10.0.0:
jsonfile "^6.0.1"
universalify "^2.0.0"
+fs-extra@^11.0.0:
+ version "11.2.0"
+ resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-11.2.0.tgz#e70e17dfad64232287d01929399e0ea7c86b0e5b"
+ integrity sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw==
+ dependencies:
+ graceful-fs "^4.2.0"
+ jsonfile "^6.0.1"
+ universalify "^2.0.0"
+
fs-extra@^9.1.0:
version "9.1.0"
resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-9.1.0.tgz#5954460c764a8da2094ba3554bf839e6b9a7c86d"
@@ -7153,6 +7970,13 @@ fs-minipass@^2.0.0:
dependencies:
minipass "^3.0.0"
+fs-minipass@^3.0.0, fs-minipass@^3.0.3:
+ version "3.0.3"
+ resolved "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-3.0.3.tgz#79a85981c4dc120065e96f62086bf6f9dc26cc54"
+ integrity sha512-XUBA9XClHbnJWSfBzjkm6RvPsyg3sryZt06BEQoXcF7EK/xpGaQYJgQKDJSUH5SGZ76Y7pFx1QBnXz09rU5Fbw==
+ dependencies:
+ minipass "^7.0.3"
+
fs-monkey@^1.0.4:
version "1.0.5"
resolved "https://registry.yarnpkg.com/fs-monkey/-/fs-monkey-1.0.5.tgz#fe450175f0db0d7ea758102e1d84096acb925788"
@@ -7193,6 +8017,20 @@ functions-have-names@^1.2.3:
resolved "https://registry.yarnpkg.com/functions-have-names/-/functions-have-names-1.2.3.tgz#0404fe4ee2ba2f607f0e0ec3c80bae994133b834"
integrity sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==
+gauge@^5.0.0:
+ version "5.0.1"
+ resolved "https://registry.yarnpkg.com/gauge/-/gauge-5.0.1.tgz#1efc801b8ff076b86ef3e9a7a280a975df572112"
+ integrity sha512-CmykPMJGuNan/3S4kZOpvvPYSNqSHANiWnh9XcMU2pSjtBfF0XzZ2p1bFAxTbnFxyBuPxQYHhzwaoOmUdqzvxQ==
+ dependencies:
+ aproba "^1.0.3 || ^2.0.0"
+ color-support "^1.1.3"
+ console-control-strings "^1.1.0"
+ has-unicode "^2.0.1"
+ signal-exit "^4.0.1"
+ string-width "^4.2.3"
+ strip-ansi "^6.0.1"
+ wide-align "^1.1.5"
+
gensync@^1.0.0-beta.2:
version "1.0.0-beta.2"
resolved "https://registry.yarnpkg.com/gensync/-/gensync-1.0.0-beta.2.tgz#32a6ee76c3d7f52d46b2b1ae5d93fea8580a25e0"
@@ -7245,6 +8083,16 @@ get-stream@^6.0.0:
resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-6.0.1.tgz#a262d8eef67aced57c2852ad6167526a43cbf7b7"
integrity sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==
+get-stream@^7.0.0:
+ version "7.0.1"
+ resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-7.0.1.tgz#1664dfe7d1678540ea6a4da3ae7cd59bf4e4a91e"
+ integrity sha512-3M8C1EOFN6r8AMUhwUAACIoXZJEOufDU5+0gFFN5uNs6XYOralD2Pqkl7m046va6x77FwposWXbAhPPIOus7mQ==
+
+get-stream@^8.0.1:
+ version "8.0.1"
+ resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-8.0.1.tgz#def9dfd71742cd7754a7761ed43749a27d02eca2"
+ integrity sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==
+
get-symbol-description@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/get-symbol-description/-/get-symbol-description-1.0.0.tgz#7fdb81c900101fbd564dd5f1a30af5aadc1e58d6"
@@ -7280,6 +8128,18 @@ giget@^1.0.0:
pathe "^1.1.1"
tar "^6.2.0"
+git-log-parser@^1.2.0:
+ version "1.2.0"
+ resolved "https://registry.yarnpkg.com/git-log-parser/-/git-log-parser-1.2.0.tgz#2e6a4c1b13fc00028207ba795a7ac31667b9fd4a"
+ integrity sha512-rnCVNfkTL8tdNryFuaY0fYiBWEBcgF748O6ZI61rslBvr2o7U65c2/6npCRqH40vuAhtgtDiqLTJjBVdrejCzA==
+ dependencies:
+ argv-formatter "~1.0.0"
+ spawn-error-forwarder "~1.0.0"
+ split2 "~1.0.0"
+ stream-combiner2 "~1.1.1"
+ through2 "~2.0.0"
+ traverse "~0.6.6"
+
github-slugger@^1.0.0:
version "1.5.0"
resolved "https://registry.yarnpkg.com/github-slugger/-/github-slugger-1.5.0.tgz#17891bbc73232051474d68bd867a34625c955f7d"
@@ -7304,7 +8164,7 @@ glob-to-regexp@^0.4.1:
resolved "https://registry.yarnpkg.com/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz#c75297087c851b9a578bd217dd59a92f59fe546e"
integrity sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==
-glob@^10.0.0:
+glob@^10.0.0, glob@^10.2.2, glob@^10.3.10:
version "10.3.10"
resolved "https://registry.yarnpkg.com/glob/-/glob-10.3.10.tgz#0351ebb809fd187fe421ab96af83d3a70715df4b"
integrity sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g==
@@ -7392,6 +8252,18 @@ globby@^11.0.1, globby@^11.0.2, globby@^11.0.4, globby@^11.1.0:
merge2 "^1.4.1"
slash "^3.0.0"
+globby@^14.0.0:
+ version "14.0.0"
+ resolved "https://registry.yarnpkg.com/globby/-/globby-14.0.0.tgz#ea9c062a3614e33f516804e778590fcf055256b9"
+ integrity sha512-/1WM/LNHRAOH9lZta77uGbq0dAEQM+XjNesWwhlERDVenqothRbnzTrL3/LrIoEPPjeUHC3vrS6TwoyxeHs7MQ==
+ dependencies:
+ "@sindresorhus/merge-streams" "^1.0.0"
+ fast-glob "^3.3.2"
+ ignore "^5.2.4"
+ path-type "^5.0.0"
+ slash "^5.1.0"
+ unicorn-magic "^0.1.0"
+
globjoin@^0.1.4:
version "0.1.4"
resolved "https://registry.yarnpkg.com/globjoin/-/globjoin-0.1.4.tgz#2f4494ac8919e3767c5cbb691e9f463324285d43"
@@ -7404,7 +8276,12 @@ gopd@^1.0.1:
dependencies:
get-intrinsic "^1.1.3"
-graceful-fs@^4.1.11, graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.2.0, graceful-fs@^4.2.4, graceful-fs@^4.2.9:
+graceful-fs@4.2.10:
+ version "4.2.10"
+ resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.10.tgz#147d3a006da4ca3ce14728c7aefc287c367d7a6c"
+ integrity sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==
+
+graceful-fs@^4.1.11, graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.2.0, graceful-fs@^4.2.11, graceful-fs@^4.2.4, graceful-fs@^4.2.6, graceful-fs@^4.2.9:
version "4.2.11"
resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.11.tgz#4183e4e8bf08bb6e05bbb2f7d2e0c8f712ca40e3"
integrity sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==
@@ -7482,6 +8359,11 @@ has-tostringtag@^1.0.0:
dependencies:
has-symbols "^1.0.2"
+has-unicode@^2.0.1:
+ version "2.0.1"
+ resolved "https://registry.yarnpkg.com/has-unicode/-/has-unicode-2.0.1.tgz#e0e6fe6a28cf51138855e086d1691e771de2a8b9"
+ integrity sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ==
+
hasown@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/hasown/-/hasown-2.0.0.tgz#f4c513d454a57b7c7e1650778de226b11700546c"
@@ -7494,6 +8376,11 @@ he@^1.2.0:
resolved "https://registry.yarnpkg.com/he/-/he-1.2.0.tgz#84ae65fa7eafb165fddb61566ae14baf05664f0f"
integrity sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==
+hook-std@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/hook-std/-/hook-std-3.0.0.tgz#47038a01981e07ce9d83a6a3b2eb98cad0f7bd58"
+ integrity sha512-jHRQzjSDzMtFy34AGj1DN+vq54WVuhSvKgrHf0OMiFQTwDD4L/qqofVEWjLOBMTn5+lCD3fPg32W9yOfnEJTTw==
+
hosted-git-info@^2.1.4:
version "2.8.9"
resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.8.9.tgz#dffc0bf9a21c02209090f2aa69429e1414daf3f9"
@@ -7506,6 +8393,13 @@ hosted-git-info@^4.0.1:
dependencies:
lru-cache "^6.0.0"
+hosted-git-info@^7.0.0, hosted-git-info@^7.0.1:
+ version "7.0.1"
+ resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-7.0.1.tgz#9985fcb2700467fecf7f33a4d4874e30680b5322"
+ integrity sha512-+K84LB1DYwMHoHSgaOY/Jfhw3ucPmSET5v98Ke/HdNSw4a0UktWzyW1mjhjpuxxTqOOsfWT/7iVshHmVZ4IpOA==
+ dependencies:
+ lru-cache "^10.0.1"
+
html-encoding-sniffer@^2.0.1:
version "2.0.1"
resolved "https://registry.yarnpkg.com/html-encoding-sniffer/-/html-encoding-sniffer-2.0.1.tgz#42a6dc4fd33f00281176e8b23759ca4e4fa185f3"
@@ -7562,6 +8456,11 @@ htmlparser2@^6.1.0:
domutils "^2.5.2"
entities "^2.0.0"
+http-cache-semantics@^4.1.1:
+ version "4.1.1"
+ resolved "https://registry.yarnpkg.com/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz#abe02fcb2985460bf0323be664436ec3476a6d5a"
+ integrity sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==
+
http-errors@2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-2.0.0.tgz#b7774a1486ef73cf7667ac9ae0858c012c57b9d3"
@@ -7582,6 +8481,14 @@ http-proxy-agent@^4.0.1:
agent-base "6"
debug "4"
+http-proxy-agent@^7.0.0:
+ version "7.0.0"
+ resolved "https://registry.yarnpkg.com/http-proxy-agent/-/http-proxy-agent-7.0.0.tgz#e9096c5afd071a3fce56e6252bb321583c124673"
+ integrity sha512-+ZT+iBxVUQ1asugqnD6oWoRiS25AkjNfG085dKJGtGxkdwLQrMKU5wJr2bOOFAXzKcTuqq+7fZlTMgG3SRfIYQ==
+ dependencies:
+ agent-base "^7.1.0"
+ debug "^4.3.4"
+
http-signature@~1.3.6:
version "1.3.6"
resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-1.3.6.tgz#cb6fbfdf86d1c974f343be94e87f7fc128662cf9"
@@ -7607,7 +8514,7 @@ https-proxy-agent@^5.0.0:
agent-base "6"
debug "4"
-https-proxy-agent@^7.0.2:
+https-proxy-agent@^7.0.0, https-proxy-agent@^7.0.1, https-proxy-agent@^7.0.2:
version "7.0.2"
resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-7.0.2.tgz#e2645b846b90e96c6e6f347fb5b2e41f1590b09b"
integrity sha512-NmLNjm6ucYwtcUmL7JQC1ZQ57LmHP4lT15FQ8D61nak1rO6DH+fz5qNK2Ap5UN4ZapYICE3/0KodcLYSPsPbaA==
@@ -7625,6 +8532,11 @@ human-signals@^2.1.0:
resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-2.1.0.tgz#dc91fcba42e4d06e4abaed33b3e7a3c02f514ea0"
integrity sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==
+human-signals@^5.0.0:
+ version "5.0.0"
+ resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-5.0.0.tgz#42665a284f9ae0dade3ba41ebc37eb4b852f3a28"
+ integrity sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==
+
iconv-lite@0.4.24:
version "0.4.24"
resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b"
@@ -7632,6 +8544,13 @@ iconv-lite@0.4.24:
dependencies:
safer-buffer ">= 2.1.2 < 3"
+iconv-lite@^0.6.2:
+ version "0.6.3"
+ resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.6.3.tgz#a52f80bf38da1952eb5c681790719871a1a72501"
+ integrity sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==
+ dependencies:
+ safer-buffer ">= 2.1.2 < 3.0.0"
+
icss-utils@^5.0.0, icss-utils@^5.1.0:
version "5.1.0"
resolved "https://registry.yarnpkg.com/icss-utils/-/icss-utils-5.1.0.tgz#c6be6858abd013d768e98366ae47e25d5887b1ae"
@@ -7642,6 +8561,13 @@ ieee754@^1.1.13:
resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.2.1.tgz#8eb7a10a63fff25d15a57b001586d177d1b0d352"
integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==
+ignore-walk@^6.0.4:
+ version "6.0.4"
+ resolved "https://registry.yarnpkg.com/ignore-walk/-/ignore-walk-6.0.4.tgz#89950be94b4f522225eb63a13c56badb639190e9"
+ integrity sha512-t7sv42WkwFkyKbivUCglsQW5YWMskWtbEf4MNKX5u/CCWHKSPzN4FtBQGsQZgCLbxOzpVlcbWVK5KB3auIOjSw==
+ dependencies:
+ minimatch "^9.0.0"
+
ignore@^5.1.9, ignore@^5.2.0, ignore@^5.2.4:
version "5.2.4"
resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.2.4.tgz#a291c0c6178ff1b960befe47fcdec301674a6324"
@@ -7667,6 +8593,14 @@ import-fresh@^3.2.1, import-fresh@^3.3.0:
parent-module "^1.0.0"
resolve-from "^4.0.0"
+import-from-esm@^1.0.3, import-from-esm@^1.3.1:
+ version "1.3.3"
+ resolved "https://registry.yarnpkg.com/import-from-esm/-/import-from-esm-1.3.3.tgz#eea1c4ad86a54bf425b3b71fca56d50215ccc6b7"
+ integrity sha512-U3Qt/CyfFpTUv6LOP2jRTLYjphH6zg3okMfHbyqRa/W2w6hr8OsJWVggNlR4jxuojQy81TgTJTxgSkyoteRGMQ==
+ dependencies:
+ debug "^4.3.4"
+ import-meta-resolve "^4.0.0"
+
import-lazy@^4.0.0:
version "4.0.0"
resolved "https://registry.yarnpkg.com/import-lazy/-/import-lazy-4.0.0.tgz#e8eb627483a0a43da3c03f3e35548be5cb0cc153"
@@ -7680,6 +8614,11 @@ import-local@^3.0.2:
pkg-dir "^4.2.0"
resolve-cwd "^3.0.0"
+import-meta-resolve@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/import-meta-resolve/-/import-meta-resolve-4.0.0.tgz#0b1195915689f60ab00f830af0f15cc841e8919e"
+ integrity sha512-okYUR7ZQPH+efeuMJGlq4f8ubUgO50kByRPyt/Cy1Io4PSRsPjxME+YlVaCOx+NIToW7hCsZNFJyTPFFKepRSA==
+
imurmurhash@^0.1.4:
version "0.1.4"
resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea"
@@ -7695,6 +8634,11 @@ indent-string@^5.0.0:
resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-5.0.0.tgz#4fd2980fccaf8622d14c64d694f4cf33c81951a5"
integrity sha512-m6FAo/spmsW2Ab2fU35JTYwtOKa2yAwXSwgjSv1TJzh4Mh7mC3lzAOVLBprb72XsTrgkEIsl7YrFNAiDiRhIGg==
+index-to-position@^0.1.2:
+ version "0.1.2"
+ resolved "https://registry.yarnpkg.com/index-to-position/-/index-to-position-0.1.2.tgz#e11bfe995ca4d8eddb1ec43274488f3c201a7f09"
+ integrity sha512-MWDKS3AS1bGCHLBA2VLImJz42f7bJh8wQsTGCzI3j519/CASStoDONUBVz2I/VID0MpiX3SGSnbOD2xUalbE5g==
+
inflight@^1.0.4:
version "1.0.6"
resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9"
@@ -7713,11 +8657,29 @@ ini@2.0.0:
resolved "https://registry.yarnpkg.com/ini/-/ini-2.0.0.tgz#e5fd556ecdd5726be978fa1001862eacb0a94bc5"
integrity sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA==
-ini@^1.3.5:
+ini@^1.3.4, ini@^1.3.5, ini@~1.3.0:
version "1.3.8"
resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.8.tgz#a29da425b48806f34767a4efce397269af28432c"
integrity sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==
+ini@^4.1.0, ini@^4.1.1:
+ version "4.1.1"
+ resolved "https://registry.yarnpkg.com/ini/-/ini-4.1.1.tgz#d95b3d843b1e906e56d6747d5447904ff50ce7a1"
+ integrity sha512-QQnnxNyfvmHFIsj7gkPcYymR8Jdw/o7mp5ZFihxn6h8Ci6fh3Dx4E1gPjpQEpIuPo9XVNY/ZUwh4BPMjGyL01g==
+
+init-package-json@^6.0.0:
+ version "6.0.0"
+ resolved "https://registry.yarnpkg.com/init-package-json/-/init-package-json-6.0.0.tgz#7d4daeaacc72be300c616481e5c155d5048a18b4"
+ integrity sha512-AmXD+Aht5iZGo/y1KUtZSUQ1SltesXHxQuc7qeNz0eUGx/8WgkHeeQLSFdM8l9YpmnnamGIbAxVdAs2xoLRKRQ==
+ dependencies:
+ npm-package-arg "^11.0.0"
+ promzard "^1.0.0"
+ read "^2.0.0"
+ read-package-json "^7.0.0"
+ semver "^7.3.5"
+ validate-npm-package-license "^3.0.4"
+ validate-npm-package-name "^5.0.0"
+
internal-slot@^1.0.4, internal-slot@^1.0.5:
version "1.0.6"
resolved "https://registry.yarnpkg.com/internal-slot/-/internal-slot-1.0.6.tgz#37e756098c4911c5e912b8edbf71ed3aa116f930"
@@ -7727,6 +8689,14 @@ internal-slot@^1.0.4, internal-slot@^1.0.5:
hasown "^2.0.0"
side-channel "^1.0.4"
+into-stream@^7.0.0:
+ version "7.0.0"
+ resolved "https://registry.yarnpkg.com/into-stream/-/into-stream-7.0.0.tgz#d1a211e146be8acfdb84dabcbf00fe8205e72936"
+ integrity sha512-2dYz766i9HprMBasCMvHMuazJ7u4WzhJwo5kb3iPSiW/iRYV6uPari3zHoqZlnuaR7V1bEiNMxikhp37rdBXbw==
+ dependencies:
+ from2 "^2.3.0"
+ p-is-promise "^3.0.0"
+
invariant@^2.2.4:
version "2.2.4"
resolved "https://registry.yarnpkg.com/invariant/-/invariant-2.2.4.tgz#610f3c92c9359ce1db616e538008d23ff35158e6"
@@ -7734,6 +8704,11 @@ invariant@^2.2.4:
dependencies:
loose-envify "^1.0.0"
+ip-regex@^5.0.0:
+ version "5.0.0"
+ resolved "https://registry.yarnpkg.com/ip-regex/-/ip-regex-5.0.0.tgz#cd313b2ae9c80c07bd3851e12bf4fa4dc5480632"
+ integrity sha512-fOCG6lhoKKakwv+C6KdsOnGvgXnmgfmp0myi3bcNwj3qfwPAxRKWEuFhvEFF7ceYIz6+1jRZ+yguLFAmUNPEfw==
+
ip@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/ip/-/ip-2.0.0.tgz#4cf4ab182fee2314c75ede1276f8c80b479936da"
@@ -7822,7 +8797,14 @@ is-ci@^3.0.0:
dependencies:
ci-info "^3.2.0"
-is-core-module@^2.13.0, is-core-module@^2.13.1, is-core-module@^2.5.0:
+is-cidr@^5.0.3:
+ version "5.0.3"
+ resolved "https://registry.yarnpkg.com/is-cidr/-/is-cidr-5.0.3.tgz#fcf817c0146dd4a318f27938af89e98a9b21bdd5"
+ integrity sha512-lKkM0tmz07dAxNsr8Ii9MGreExa9ZR34N9j8mTG5op824kcwBqinZPowNjcVWWc7j+jR8XAMMItOmBkniN0jOA==
+ dependencies:
+ cidr-regex "4.0.3"
+
+is-core-module@^2.13.0, is-core-module@^2.13.1, is-core-module@^2.5.0, is-core-module@^2.8.1:
version "2.13.1"
resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.13.1.tgz#ad0d7532c6fea9da1ebdc82742d74525c6273384"
integrity sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==
@@ -7900,6 +8882,11 @@ is-interactive@^1.0.0:
resolved "https://registry.yarnpkg.com/is-interactive/-/is-interactive-1.0.0.tgz#cea6e6ae5c870a7b0a0004070b7b587e0252912e"
integrity sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==
+is-lambda@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/is-lambda/-/is-lambda-1.0.1.tgz#3d9877899e6a53efc0160504cde15f82e6f061d5"
+ integrity sha512-z7CMFGNrENq5iFB9Bqo64Xk6Y9sg+epq1myIcdHaGnbMTYOxvzsEtdYqQUylB7LxfkvgrrjP32T6Ywciio9UIQ==
+
is-map@^2.0.1, is-map@^2.0.2:
version "2.0.2"
resolved "https://registry.yarnpkg.com/is-map/-/is-map-2.0.2.tgz#00922db8c9bf73e81b7a335827bc2a43f2b91127"
@@ -7930,6 +8917,11 @@ is-number@^7.0.0:
resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b"
integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==
+is-obj@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/is-obj/-/is-obj-2.0.0.tgz#473fb05d973705e3fd9620545018ca8e22ef4982"
+ integrity sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==
+
is-path-cwd@^2.2.0:
version "2.2.0"
resolved "https://registry.yarnpkg.com/is-path-cwd/-/is-path-cwd-2.2.0.tgz#67d43b82664a7b5191fd9119127eb300048a9fdb"
@@ -7997,6 +8989,11 @@ is-stream@^2.0.0:
resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-2.0.1.tgz#fac1e3d53b97ad5a9d0ae9cef2389f5810a5c077"
integrity sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==
+is-stream@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-3.0.0.tgz#e6bfd7aa6bef69f4f472ce9bb681e3e57b4319ac"
+ integrity sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==
+
is-string@^1.0.5, is-string@^1.0.7:
version "1.0.7"
resolved "https://registry.yarnpkg.com/is-string/-/is-string-1.0.7.tgz#0dd12bf2006f255bb58f695110eff7491eebc0fd"
@@ -8011,6 +9008,13 @@ is-symbol@^1.0.2, is-symbol@^1.0.3:
dependencies:
has-symbols "^1.0.2"
+is-text-path@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/is-text-path/-/is-text-path-2.0.0.tgz#b2484e2b720a633feb2e85b67dc193ff72c75636"
+ integrity sha512-+oDTluR6WEjdXEJMnC2z6A4FRwFoYuvShVVEGsS7ewc0UTi2QtAKMDJuL4BDEVt+5T7MjFo12RP8ghOM75oKJw==
+ dependencies:
+ text-extensions "^2.0.0"
+
is-typed-array@^1.1.10, is-typed-array@^1.1.12, is-typed-array@^1.1.3, is-typed-array@^1.1.9:
version "1.1.12"
resolved "https://registry.yarnpkg.com/is-typed-array/-/is-typed-array-1.1.12.tgz#d0bab5686ef4a76f7a73097b95470ab199c57d4a"
@@ -8028,6 +9032,11 @@ is-unicode-supported@^0.1.0:
resolved "https://registry.yarnpkg.com/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz#3f26c76a809593b52bfa2ecb5710ed2779b522a7"
integrity sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==
+is-unicode-supported@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/is-unicode-supported/-/is-unicode-supported-2.0.0.tgz#fdf32df9ae98ff6ab2cedc155a5a6e895701c451"
+ integrity sha512-FRdAyx5lusK1iHG0TWpVtk9+1i+GjrzRffhDg4ovQ7mcidMQ6mj+MhKPmvh7Xwyv5gIS06ns49CA7Sqg7lC22Q==
+
is-weakmap@^2.0.1:
version "2.0.1"
resolved "https://registry.yarnpkg.com/is-weakmap/-/is-weakmap-2.0.1.tgz#5008b59bdc43b698201d18f62b37b2ca243e8cf2"
@@ -8070,6 +9079,11 @@ isexe@^2.0.0:
resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10"
integrity sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==
+isexe@^3.1.1:
+ version "3.1.1"
+ resolved "https://registry.yarnpkg.com/isexe/-/isexe-3.1.1.tgz#4a407e2bd78ddfb14bea0c27c6f7072dde775f0d"
+ integrity sha512-LpB/54B+/2J5hqQ7imZHfdU31OlgQqx7ZicVlkm9kzg9/w8GKLEcFfJl/t7DCEDueOyBAD6zCCwTO6Fzs0NoEQ==
+
isobject@^3.0.1:
version "3.0.1"
resolved "https://registry.yarnpkg.com/isobject/-/isobject-3.0.1.tgz#4e431e92b11a9731636aa1f9c8d1ccbcfdab78df"
@@ -8080,6 +9094,17 @@ isstream@~0.1.2:
resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a"
integrity sha512-Yljz7ffyPbrLpLngrMtZ7NduUgVvi6wG9RJ9IUcyCd59YQ911PBJphODUcbOVbqYfxe1wuYf/LJ8PauMRwsM/g==
+issue-parser@^6.0.0:
+ version "6.0.0"
+ resolved "https://registry.yarnpkg.com/issue-parser/-/issue-parser-6.0.0.tgz#b1edd06315d4f2044a9755daf85fdafde9b4014a"
+ integrity sha512-zKa/Dxq2lGsBIXQ7CUZWTHfvxPC2ej0KfO7fIPqLlHB9J2hJ7rGhZ5rilhuufylr4RXYPzJUeFjKxz305OsNlA==
+ dependencies:
+ lodash.capitalize "^4.2.1"
+ lodash.escaperegexp "^4.1.2"
+ lodash.isplainobject "^4.0.6"
+ lodash.isstring "^4.0.1"
+ lodash.uniqby "^4.7.0"
+
istanbul-lib-coverage@^3.0.0, istanbul-lib-coverage@^3.2.0:
version "3.2.2"
resolved "https://registry.yarnpkg.com/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.2.tgz#2d166c4b0644d43a39f04bf6c2edd1e585f31756"
@@ -8152,6 +9177,11 @@ jake@^10.8.5:
filelist "^1.0.4"
minimatch "^3.1.2"
+java-properties@^1.0.2:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/java-properties/-/java-properties-1.0.2.tgz#ccd1fa73907438a5b5c38982269d0e771fe78211"
+ integrity sha512-qjdpeo2yKlYTH7nFdK0vbZWuTCesk4o63v5iVOlhMQPfuIZQfW/HI35SjfhA+4qpg36rnFSvUK5b1m+ckIblQQ==
+
jest-changed-files@^27.5.1:
version "27.5.1"
resolved "https://registry.yarnpkg.com/jest-changed-files/-/jest-changed-files-27.5.1.tgz#a348aed00ec9bf671cc58a66fcbe7c3dfd6a68f5"
@@ -8753,11 +9783,21 @@ json-buffer@3.0.1:
resolved "https://registry.yarnpkg.com/json-buffer/-/json-buffer-3.0.1.tgz#9338802a30d3b6605fbe0613e094008ca8c05a13"
integrity sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==
+json-parse-better-errors@^1.0.1:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz#bb867cfb3450e69107c131d1c514bab3dc8bcaa9"
+ integrity sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==
+
json-parse-even-better-errors@^2.3.0, json-parse-even-better-errors@^2.3.1:
version "2.3.1"
resolved "https://registry.yarnpkg.com/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz#7c47805a94319928e05777405dc12e1f7a4ee02d"
integrity sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==
+json-parse-even-better-errors@^3.0.0, json-parse-even-better-errors@^3.0.1:
+ version "3.0.1"
+ resolved "https://registry.yarnpkg.com/json-parse-even-better-errors/-/json-parse-even-better-errors-3.0.1.tgz#02bb29fb5da90b5444581749c22cedd3597c6cb0"
+ integrity sha512-aatBvbL26wVUCLmbWdCpeu9iF5wOyWpagiKkInA+kfws3sWdBrTnsvN2CKcyCYyUrc7rebNBlK6+kteg7ksecg==
+
json-schema-traverse@^0.4.1:
version "0.4.1"
resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660"
@@ -8778,7 +9818,12 @@ json-stable-stringify-without-jsonify@^1.0.1:
resolved "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651"
integrity sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==
-json-stringify-safe@~5.0.1:
+json-stringify-nice@^1.1.4:
+ version "1.1.4"
+ resolved "https://registry.yarnpkg.com/json-stringify-nice/-/json-stringify-nice-1.1.4.tgz#2c937962b80181d3f317dd39aa323e14f5a60a67"
+ integrity sha512-5Z5RFW63yxReJ7vANgW6eZFGWaQvnPE3WNmZoOJrSkGju2etKA2L5rrOa1sm877TVTFt57A80BH1bArcmlLfPw==
+
+json-stringify-safe@^5.0.1, json-stringify-safe@~5.0.1:
version "5.0.1"
resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb"
integrity sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==
@@ -8809,6 +9854,11 @@ jsonfile@^6.0.1:
optionalDependencies:
graceful-fs "^4.1.6"
+jsonparse@^1.2.0, jsonparse@^1.3.1:
+ version "1.3.1"
+ resolved "https://registry.yarnpkg.com/jsonparse/-/jsonparse-1.3.1.tgz#3f4dae4a91fac315f71062f8521cc239f1366280"
+ integrity sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg==
+
jsprim@^2.0.2:
version "2.0.2"
resolved "https://registry.yarnpkg.com/jsprim/-/jsprim-2.0.2.tgz#77ca23dbcd4135cd364800d22ff82c2185803d4d"
@@ -8829,6 +9879,16 @@ jsprim@^2.0.2:
object.assign "^4.1.4"
object.values "^1.1.6"
+just-diff-apply@^5.2.0:
+ version "5.5.0"
+ resolved "https://registry.yarnpkg.com/just-diff-apply/-/just-diff-apply-5.5.0.tgz#771c2ca9fa69f3d2b54e7c3f5c1dfcbcc47f9f0f"
+ integrity sha512-OYTthRfSh55WOItVqwpefPtNt2VdKsq5AnAK6apdtR6yCH8pr0CmSr710J0Mf+WdQy7K/OzMy7K2MgAfdQURDw==
+
+just-diff@^6.0.0:
+ version "6.0.2"
+ resolved "https://registry.yarnpkg.com/just-diff/-/just-diff-6.0.2.tgz#03b65908543ac0521caf6d8eb85035f7d27ea285"
+ integrity sha512-S59eriX5u3/QhMNq3v/gm8Kd0w8OS6Tz2FS1NG4blv+z0MuQcBRJyFWjdovM0Rad4/P4aUPFtnkNjMjyMlMSYA==
+
keyv@^4.5.3:
version "4.5.4"
resolved "https://registry.yarnpkg.com/keyv/-/keyv-4.5.4.tgz#a879a99e29452f942439f2a405e3af8b31d4de93"
@@ -8900,6 +9960,119 @@ levn@^0.4.1:
prelude-ls "^1.2.1"
type-check "~0.4.0"
+libnpmaccess@^8.0.1:
+ version "8.0.2"
+ resolved "https://registry.yarnpkg.com/libnpmaccess/-/libnpmaccess-8.0.2.tgz#a13a72fd5b71a1063ea54973fa56d61ec38f718f"
+ integrity sha512-4K+nsg3OYt4rjryP/3D5zGWluLbZaKozwj6YdtvAyxNhLhUrjCoyxHVoL5AkTJcAnjsd6/ATei52QPVvpSX9Ug==
+ dependencies:
+ npm-package-arg "^11.0.1"
+ npm-registry-fetch "^16.0.0"
+
+libnpmdiff@^6.0.3:
+ version "6.0.5"
+ resolved "https://registry.yarnpkg.com/libnpmdiff/-/libnpmdiff-6.0.5.tgz#f4f9a8f7e499582c8f769b6c2e91dd8e3d5de29d"
+ integrity sha512-AplhlY7Ha/lzOcpmVpbQy8P12JSyIpDTgPsBmd4G7+wmLJLIYMclqY4I0lbWcwKua95vxgyp7j1gIYk1DP7ZTw==
+ dependencies:
+ "@npmcli/arborist" "^7.2.1"
+ "@npmcli/disparity-colors" "^3.0.0"
+ "@npmcli/installed-package-contents" "^2.0.2"
+ binary-extensions "^2.2.0"
+ diff "^5.1.0"
+ minimatch "^9.0.0"
+ npm-package-arg "^11.0.1"
+ pacote "^17.0.4"
+ tar "^6.2.0"
+
+libnpmexec@^7.0.4:
+ version "7.0.6"
+ resolved "https://registry.yarnpkg.com/libnpmexec/-/libnpmexec-7.0.6.tgz#9489ff1401135d595285feaa120e88ca395e6207"
+ integrity sha512-TWvtfKyBQ/UiWl54uG7ALuLAGE5s6H6FTQKs7bAH5H19jtEgpxujQz6+iNNVOIMw7Cfw3Oat6RZqL8ZfXmJA9g==
+ dependencies:
+ "@npmcli/arborist" "^7.2.1"
+ "@npmcli/run-script" "^7.0.2"
+ ci-info "^4.0.0"
+ npm-package-arg "^11.0.1"
+ npmlog "^7.0.1"
+ pacote "^17.0.4"
+ proc-log "^3.0.0"
+ read "^2.0.0"
+ read-package-json-fast "^3.0.2"
+ semver "^7.3.7"
+ walk-up-path "^3.0.1"
+
+libnpmfund@^5.0.1:
+ version "5.0.3"
+ resolved "https://registry.yarnpkg.com/libnpmfund/-/libnpmfund-5.0.3.tgz#40235dffb1f610475c864702445020c4b3441199"
+ integrity sha512-Kb/fJZNAOG6uIHkhkUah+HfLYqqyuc3s65cPWiwGz1nta8ta79PaexzstGxvGrMA/JFfjZ0BMOejM6zB1aXA8g==
+ dependencies:
+ "@npmcli/arborist" "^7.2.1"
+
+libnpmhook@^10.0.0:
+ version "10.0.1"
+ resolved "https://registry.yarnpkg.com/libnpmhook/-/libnpmhook-10.0.1.tgz#3cb9516645f0d6891b4a59c72ffe026bdbb9bd6b"
+ integrity sha512-FnXCweDpoAko6mnLPSW8qrRYicjfh+GrvY5PuYHQRPvaW4BFtHDUmK3K3aYx4yD3TeGAKpj4IigrEDfUfWuSkA==
+ dependencies:
+ aproba "^2.0.0"
+ npm-registry-fetch "^16.0.0"
+
+libnpmorg@^6.0.1:
+ version "6.0.2"
+ resolved "https://registry.yarnpkg.com/libnpmorg/-/libnpmorg-6.0.2.tgz#6e5e37ecc5a391082e83c599512689c78e60dc70"
+ integrity sha512-zK4r6cjVsfXf7hWzWGB6R0LBJidVhKaeMWMZL/1eyZS6ixxAxVijfsPacoEnBRCFaXsNjAtwV3b2RCmYU6+usA==
+ dependencies:
+ aproba "^2.0.0"
+ npm-registry-fetch "^16.0.0"
+
+libnpmpack@^6.0.3:
+ version "6.0.5"
+ resolved "https://registry.yarnpkg.com/libnpmpack/-/libnpmpack-6.0.5.tgz#9b6de1ba4ca3e338b915f46bd34883096e6bf9c6"
+ integrity sha512-H6a8EDBwU765ogkcan1VEhjAZFflXgKVijbB7TDnbl2ce0MuJDLnmVzSg30/7zgIj1gNtxenaBigeQFQ1hxP9A==
+ dependencies:
+ "@npmcli/arborist" "^7.2.1"
+ "@npmcli/run-script" "^7.0.2"
+ npm-package-arg "^11.0.1"
+ pacote "^17.0.4"
+
+libnpmpublish@^9.0.2:
+ version "9.0.3"
+ resolved "https://registry.yarnpkg.com/libnpmpublish/-/libnpmpublish-9.0.3.tgz#644ee50543687eee79bcf2a5bd759a2ff6e60a0d"
+ integrity sha512-XoF0QgT1Ph9RMBfTwiwZeRN4Rs5t4w1POaRxaoVoWCMUqysswwlAPu3ZZJDNbh7asXBWXcXTJziDWkInhpbiBg==
+ dependencies:
+ ci-info "^4.0.0"
+ normalize-package-data "^6.0.0"
+ npm-package-arg "^11.0.1"
+ npm-registry-fetch "^16.0.0"
+ proc-log "^3.0.0"
+ semver "^7.3.7"
+ sigstore "^2.1.0"
+ ssri "^10.0.5"
+
+libnpmsearch@^7.0.0:
+ version "7.0.1"
+ resolved "https://registry.yarnpkg.com/libnpmsearch/-/libnpmsearch-7.0.1.tgz#8fa803a8e5837a33ce750a8cc1c70820d728b91d"
+ integrity sha512-XyKi6Y94t6PGd5Lk2Ma3+fgiHWD3KSCvXmHOrcLkAOEP7oUejbNjL0Bb/HUDZXgBj6gP1Qk7pJ6jZPFBc2hmXQ==
+ dependencies:
+ npm-registry-fetch "^16.0.0"
+
+libnpmteam@^6.0.0:
+ version "6.0.1"
+ resolved "https://registry.yarnpkg.com/libnpmteam/-/libnpmteam-6.0.1.tgz#daa1b2e7e4ccef0469bdef661737ca823b53468b"
+ integrity sha512-1YytqVk1gSkKFNMe4kkCKN49y5rlABrRSx5TrYShQtt2Lb4uQaed49dGE7Ue8TJGxbIkHzvyyVtb3PBiGACVqw==
+ dependencies:
+ aproba "^2.0.0"
+ npm-registry-fetch "^16.0.0"
+
+libnpmversion@^5.0.1:
+ version "5.0.2"
+ resolved "https://registry.yarnpkg.com/libnpmversion/-/libnpmversion-5.0.2.tgz#aea7b09bc270c778cbc8be7bf02e4b60566989cf"
+ integrity sha512-6JBnLhd6SYgKRekJ4cotxpURLGbEtKxzw+a8p5o+wNwrveJPMH8yW/HKjeewyHzWmxzzwn9EQ3TkF2onkrwstA==
+ dependencies:
+ "@npmcli/git" "^5.0.3"
+ "@npmcli/run-script" "^7.0.2"
+ json-parse-even-better-errors "^3.0.0"
+ proc-log "^3.0.0"
+ semver "^7.3.7"
+
lines-and-columns@^1.1.6:
version "1.2.4"
resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.2.4.tgz#eca284f75d2965079309dc0ad9255abb2ebc1632"
@@ -8919,6 +10092,16 @@ listr2@^3.8.3:
through "^2.3.8"
wrap-ansi "^7.0.0"
+load-json-file@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-4.0.0.tgz#2f5f45ab91e33216234fd53adab668eb4ec0993b"
+ integrity sha512-Kx8hMakjX03tiGTLAIdJ+lL0htKnXjEZN6hk/tozf/WOuYGdZBJrZ+rCJRbVCugsjB3jMLn9746NsQIf5VjBMw==
+ dependencies:
+ graceful-fs "^4.1.2"
+ parse-json "^4.0.0"
+ pify "^3.0.0"
+ strip-bom "^3.0.0"
+
loader-runner@^4.2.0:
version "4.3.0"
resolved "https://registry.yarnpkg.com/loader-runner/-/loader-runner-4.3.0.tgz#c1b4a163b99f614830353b16755e7149ac2314e1"
@@ -8942,6 +10125,14 @@ loader-utils@^2.0.0, loader-utils@^2.0.4:
emojis-list "^3.0.0"
json5 "^2.1.2"
+locate-path@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-2.0.0.tgz#2b568b265eec944c6d9c0de9c3dbbbca0354cd8e"
+ integrity sha512-NCI2kiDkyR7VeEKm27Kda/iQHyKJe1Bu0FlTbYp3CqJu+9IFe9bLyAjMxf5ZDDbEg+iMPzB5zYyUTSm8wVTKmA==
+ dependencies:
+ p-locate "^2.0.0"
+ path-exists "^3.0.0"
+
locate-path@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-3.0.0.tgz#dbec3b3ab759758071b58fe59fc41871af21400e"
@@ -8971,11 +10162,36 @@ locate-path@^7.1.0:
dependencies:
p-locate "^6.0.0"
+lodash-es@^4.17.21:
+ version "4.17.21"
+ resolved "https://registry.yarnpkg.com/lodash-es/-/lodash-es-4.17.21.tgz#43e626c46e6591b7750beb2b50117390c609e3ee"
+ integrity sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==
+
+lodash.capitalize@^4.2.1:
+ version "4.2.1"
+ resolved "https://registry.yarnpkg.com/lodash.capitalize/-/lodash.capitalize-4.2.1.tgz#f826c9b4e2a8511d84e3aca29db05e1a4f3b72a9"
+ integrity sha512-kZzYOKspf8XVX5AvmQF94gQW0lejFVgb80G85bU4ZWzoJ6C03PQg3coYAUpSTpQWelrZELd3XWgHzw4Ck5kaIw==
+
lodash.debounce@^4.0.8:
version "4.0.8"
resolved "https://registry.yarnpkg.com/lodash.debounce/-/lodash.debounce-4.0.8.tgz#82d79bff30a67c4005ffd5e2515300ad9ca4d7af"
integrity sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==
+lodash.escaperegexp@^4.1.2:
+ version "4.1.2"
+ resolved "https://registry.yarnpkg.com/lodash.escaperegexp/-/lodash.escaperegexp-4.1.2.tgz#64762c48618082518ac3df4ccf5d5886dae20347"
+ integrity sha512-TM9YBvyC84ZxE3rgfefxUWiQKLilstD6k7PTGt6wfbtXF8ixIJLOL3VYyV/z+ZiPLsVxAsKAFVwWlWeb2Y8Yyw==
+
+lodash.isplainobject@^4.0.6:
+ version "4.0.6"
+ resolved "https://registry.yarnpkg.com/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz#7c526a52d89b45c45cc690b88163be0497f550cb"
+ integrity sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==
+
+lodash.isstring@^4.0.1:
+ version "4.0.1"
+ resolved "https://registry.yarnpkg.com/lodash.isstring/-/lodash.isstring-4.0.1.tgz#d527dfb5456eca7cc9bb95d5daeaf88ba54a5451"
+ integrity sha512-0wJxfxH1wgO3GrbuP+dTTk7op+6L41QCXbGINEmD+ny/G/eCqGzxyCsh7159S+mgDDcoarnBw6PC1PS5+wUGgw==
+
lodash.memoize@4.x:
version "4.1.2"
resolved "https://registry.yarnpkg.com/lodash.memoize/-/lodash.memoize-4.1.2.tgz#bcc6c49a42a2840ed997f323eada5ecd182e0bfe"
@@ -8996,7 +10212,12 @@ lodash.truncate@^4.4.2:
resolved "https://registry.yarnpkg.com/lodash.truncate/-/lodash.truncate-4.4.2.tgz#5a350da0b1113b837ecfffd5812cbe58d6eae193"
integrity sha512-jttmRe7bRse52OsWIMDLaXxWqRAmtIUccAQ3garviCqJjafXOfNMO0yMfNpdD6zbGaTU0P5Nz7e7gAT6cKmJRw==
-lodash@^4.17.15, lodash@^4.17.20, lodash@^4.17.21, lodash@^4.7.0:
+lodash.uniqby@^4.7.0:
+ version "4.7.0"
+ resolved "https://registry.yarnpkg.com/lodash.uniqby/-/lodash.uniqby-4.7.0.tgz#d99c07a669e9e6d24e1362dfe266c67616af1302"
+ integrity sha512-e/zcLx6CSbmaEgFHCA7BnoQKyCtKMxnuWrJygbwPs/AIn+IMKl66L8/s+wBUn5LRw2pZx3bUHibiV1b6aTWIww==
+
+lodash@^4.17.15, lodash@^4.17.20, lodash@^4.17.21, lodash@^4.17.4, lodash@^4.7.0:
version "4.17.21"
resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c"
integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==
@@ -9053,6 +10274,11 @@ lower-case@^2.0.2:
dependencies:
tslib "^2.0.3"
+lru-cache@^10.0.1:
+ version "10.1.0"
+ resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-10.1.0.tgz#2098d41c2dc56500e6c88584aa656c84de7d0484"
+ integrity sha512-/1clY/ui8CzjKFyjdvwPWJUYKiFVXG2I2cY0ssG7h4+hwk+XOIX7ZSG9Q7TW8TW3Kp3BUSqgFWBLgL4PJ+Blag==
+
lru-cache@^5.1.1:
version "5.1.1"
resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-5.1.1.tgz#1da27e6710271947695daf6848e847f01d84b920"
@@ -9111,6 +10337,23 @@ make-error@1.x:
resolved "https://registry.yarnpkg.com/make-error/-/make-error-1.3.6.tgz#2eb2e37ea9b67c4891f684a1394799af484cf7a2"
integrity sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==
+make-fetch-happen@^13.0.0:
+ version "13.0.0"
+ resolved "https://registry.yarnpkg.com/make-fetch-happen/-/make-fetch-happen-13.0.0.tgz#705d6f6cbd7faecb8eac2432f551e49475bfedf0"
+ integrity sha512-7ThobcL8brtGo9CavByQrQi+23aIfgYU++wg4B87AIS8Rb2ZBt/MEaDqzA00Xwv/jUjAjYkLHjVolYuTLKda2A==
+ dependencies:
+ "@npmcli/agent" "^2.0.0"
+ cacache "^18.0.0"
+ http-cache-semantics "^4.1.1"
+ is-lambda "^1.0.1"
+ minipass "^7.0.2"
+ minipass-fetch "^3.0.0"
+ minipass-flush "^1.0.5"
+ minipass-pipeline "^1.2.4"
+ negotiator "^0.6.3"
+ promise-retry "^2.0.1"
+ ssri "^10.0.0"
+
makeerror@1.0.12:
version "1.0.12"
resolved "https://registry.yarnpkg.com/makeerror/-/makeerror-1.0.12.tgz#3e5dd2079a82e812e983cc6610c4a2cb0eaa801a"
@@ -9143,6 +10386,23 @@ markdown-to-jsx@^7.1.8:
resolved "https://registry.yarnpkg.com/markdown-to-jsx/-/markdown-to-jsx-7.3.2.tgz#f286b4d112dad3028acc1e77dfe1f653b347e131"
integrity sha512-B+28F5ucp83aQm+OxNrPkS8z0tMKaeHiy0lHJs3LqCyDQFtWuenaIrkaVTgAm1pf1AU85LXltva86hlaT17i8Q==
+marked-terminal@^6.0.0:
+ version "6.2.0"
+ resolved "https://registry.yarnpkg.com/marked-terminal/-/marked-terminal-6.2.0.tgz#82928d7967af486185a64ea927be723aadd4755f"
+ integrity sha512-ubWhwcBFHnXsjYNsu+Wndpg0zhY4CahSpPlA70PlO0rR9r2sZpkyU+rkCsOWH+KMEkx847UpALON+HWgxowFtw==
+ dependencies:
+ ansi-escapes "^6.2.0"
+ cardinal "^2.1.1"
+ chalk "^5.3.0"
+ cli-table3 "^0.6.3"
+ node-emoji "^2.1.3"
+ supports-hyperlinks "^3.0.0"
+
+marked@^11.0.0:
+ version "11.1.1"
+ resolved "https://registry.yarnpkg.com/marked/-/marked-11.1.1.tgz#e1b2407241f744fb1935fac224680874d9aff7a3"
+ integrity sha512-EgxRjgK9axsQuUa/oKMx5DEY8oXpKJfk61rT5iY3aRlgU6QJtUcxU5OAymdhCvWvhYcd9FKmO5eQoX8m9VGJXg==
+
mathml-tag-names@^2.1.3:
version "2.1.3"
resolved "https://registry.yarnpkg.com/mathml-tag-names/-/mathml-tag-names-2.1.3.tgz#4ddadd67308e780cf16a47685878ee27b736a0a3"
@@ -9317,6 +10577,11 @@ meow@^10.1.5:
type-fest "^1.2.2"
yargs-parser "^20.2.9"
+meow@^12.0.1:
+ version "12.1.1"
+ resolved "https://registry.yarnpkg.com/meow/-/meow-12.1.1.tgz#e558dddbab12477b69b2e9a2728c327f191bace6"
+ integrity sha512-BhXM0Au22RwUneMPwSCnyhTOizdWoIEPU9sp0Aqa1PnDMR5Wv2FGXYDjuzJEIX+Eo2Rb8xuYe5jrnm5QowQFkw==
+
meow@^6.1.1:
version "6.1.1"
resolved "https://registry.yarnpkg.com/meow/-/meow-6.1.1.tgz#1ad64c4b76b2a24dfb2f635fddcadf320d251467"
@@ -9627,7 +10892,7 @@ micromark@^3.0.0:
micromark-util-types "^1.0.1"
uvu "^0.5.0"
-micromatch@^4.0.2, micromatch@^4.0.4, micromatch@^4.0.5:
+micromatch@^4.0.0, micromatch@^4.0.2, micromatch@^4.0.4, micromatch@^4.0.5:
version "4.0.5"
resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.5.tgz#bc8999a7cbbf77cdc89f132f6e467051b49090c6"
integrity sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==
@@ -9657,11 +10922,21 @@ mime@^2.0.3:
resolved "https://registry.yarnpkg.com/mime/-/mime-2.6.0.tgz#a2a682a95cd4d0cb1d6257e28f83da7e35800367"
integrity sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg==
+mime@^4.0.0:
+ version "4.0.1"
+ resolved "https://registry.yarnpkg.com/mime/-/mime-4.0.1.tgz#ad7563d1bfe30253ad97dedfae2b1009d01b9470"
+ integrity sha512-5lZ5tyrIfliMXzFtkYyekWbtRXObT9OWa8IwQ5uxTBDHucNNwniRqo0yInflj+iYi5CBa6qxadGzGarDfuEOxA==
+
mimic-fn@^2.1.0:
version "2.1.0"
resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b"
integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==
+mimic-fn@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-4.0.0.tgz#60a90550d5cb0b239cca65d893b1a53b29871ecc"
+ integrity sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==
+
min-indent@^1.0.0, min-indent@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/min-indent/-/min-indent-1.0.1.tgz#a63f681673b30571fbe8bc25686ae746eefa9869"
@@ -9681,7 +10956,7 @@ minimatch@^5.0.1:
dependencies:
brace-expansion "^2.0.1"
-minimatch@^9.0.1:
+minimatch@^9.0.0, minimatch@^9.0.1, minimatch@^9.0.3:
version "9.0.3"
resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-9.0.3.tgz#a6e00c3de44c3a542bfaae70abfc22420a6da825"
integrity sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==
@@ -9702,6 +10977,53 @@ minimist@^1.2.0, minimist@^1.2.5, minimist@^1.2.6, minimist@^1.2.8:
resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.8.tgz#c1a464e7693302e082a075cee0c057741ac4772c"
integrity sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==
+minipass-collect@^2.0.1:
+ version "2.0.1"
+ resolved "https://registry.yarnpkg.com/minipass-collect/-/minipass-collect-2.0.1.tgz#1621bc77e12258a12c60d34e2276ec5c20680863"
+ integrity sha512-D7V8PO9oaz7PWGLbCACuI1qEOsq7UKfLotx/C0Aet43fCUB/wfQ7DYeq2oR/svFJGYDHPr38SHATeaj/ZoKHKw==
+ dependencies:
+ minipass "^7.0.3"
+
+minipass-fetch@^3.0.0:
+ version "3.0.4"
+ resolved "https://registry.yarnpkg.com/minipass-fetch/-/minipass-fetch-3.0.4.tgz#4d4d9b9f34053af6c6e597a64be8e66e42bf45b7"
+ integrity sha512-jHAqnA728uUpIaFm7NWsCnqKT6UqZz7GcI/bDpPATuwYyKwJwW0remxSCxUlKiEty+eopHGa3oc8WxgQ1FFJqg==
+ dependencies:
+ minipass "^7.0.3"
+ minipass-sized "^1.0.3"
+ minizlib "^2.1.2"
+ optionalDependencies:
+ encoding "^0.1.13"
+
+minipass-flush@^1.0.5:
+ version "1.0.5"
+ resolved "https://registry.yarnpkg.com/minipass-flush/-/minipass-flush-1.0.5.tgz#82e7135d7e89a50ffe64610a787953c4c4cbb373"
+ integrity sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw==
+ dependencies:
+ minipass "^3.0.0"
+
+minipass-json-stream@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/minipass-json-stream/-/minipass-json-stream-1.0.1.tgz#7edbb92588fbfc2ff1db2fc10397acb7b6b44aa7"
+ integrity sha512-ODqY18UZt/I8k+b7rl2AENgbWE8IDYam+undIJONvigAz8KR5GWblsFTEfQs0WODsjbSXWlm+JHEv8Gr6Tfdbg==
+ dependencies:
+ jsonparse "^1.3.1"
+ minipass "^3.0.0"
+
+minipass-pipeline@^1.2.4:
+ version "1.2.4"
+ resolved "https://registry.yarnpkg.com/minipass-pipeline/-/minipass-pipeline-1.2.4.tgz#68472f79711c084657c067c5c6ad93cddea8214c"
+ integrity sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A==
+ dependencies:
+ minipass "^3.0.0"
+
+minipass-sized@^1.0.3:
+ version "1.0.3"
+ resolved "https://registry.yarnpkg.com/minipass-sized/-/minipass-sized-1.0.3.tgz#70ee5a7c5052070afacfbc22977ea79def353b70"
+ integrity sha512-MbkQQ2CTiBMlA2Dm/5cY+9SWFEN8pzzOXi6rlM5Xxq0Yqbda5ZQy9sU75a673FE9ZK0Zsbr6Y5iP6u9nktfg2g==
+ dependencies:
+ minipass "^3.0.0"
+
minipass@^3.0.0:
version "3.3.6"
resolved "https://registry.yarnpkg.com/minipass/-/minipass-3.3.6.tgz#7bba384db3a1520d18c9c0e5251c3444e95dd94a"
@@ -9714,12 +11036,12 @@ minipass@^5.0.0:
resolved "https://registry.yarnpkg.com/minipass/-/minipass-5.0.0.tgz#3e9788ffb90b694a5d0ec94479a45b5d8738133d"
integrity sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==
-"minipass@^5.0.0 || ^6.0.2 || ^7.0.0":
+"minipass@^5.0.0 || ^6.0.2 || ^7.0.0", minipass@^7.0.2, minipass@^7.0.3, minipass@^7.0.4:
version "7.0.4"
resolved "https://registry.yarnpkg.com/minipass/-/minipass-7.0.4.tgz#dbce03740f50a4786ba994c1fb908844d27b038c"
integrity sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==
-minizlib@^2.1.1:
+minizlib@^2.1.1, minizlib@^2.1.2:
version "2.1.2"
resolved "https://registry.yarnpkg.com/minizlib/-/minizlib-2.1.2.tgz#e90d3466ba209b932451508a11ce3d3632145931"
integrity sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==
@@ -9759,11 +11081,16 @@ ms@2.1.2:
resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009"
integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==
-ms@2.1.3, ms@^2.1.1:
+ms@2.1.3, ms@^2.1.1, ms@^2.1.2:
version "2.1.3"
resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2"
integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==
+mute-stream@~1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-1.0.0.tgz#e31bd9fe62f0aed23520aa4324ea6671531e013e"
+ integrity sha512-avsJQhyd+680gKXyG/sQc0nXaC6rBkPOfyHYcFb9+hdkqQkR9bdnkJ0AMZhke0oesPqIO+mFFJ+IdBc7mst4IA==
+
mylas@^2.1.9:
version "2.1.13"
resolved "https://registry.yarnpkg.com/mylas/-/mylas-2.1.13.tgz#1e23b37d58fdcc76e15d8a5ed23f9ae9fc0cbdf4"
@@ -9784,7 +11111,7 @@ natural-compare@^1.4.0:
resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7"
integrity sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==
-negotiator@0.6.3:
+negotiator@0.6.3, negotiator@^0.6.3:
version "0.6.3"
resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.3.tgz#58e323a72fedc0d6f9cd4d31fe49f51479590ccd"
integrity sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==
@@ -9794,6 +11121,11 @@ neo-async@^2.5.0, neo-async@^2.6.2:
resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.2.tgz#b4aafb93e3aeb2d8174ca53cf163ab7d7308305f"
integrity sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==
+nerf-dart@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/nerf-dart/-/nerf-dart-1.0.0.tgz#e6dab7febf5ad816ea81cf5c629c5a0ebde72c1a"
+ integrity sha512-EZSPZB70jiVsivaBLYDCyntd5eH8NTSMOn3rB+HxwdmKThGELLdYv8qVIMWvZEFy9w8ZZpW9h9OB32l1rGtj7g==
+
next-tick@^1.1.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/next-tick/-/next-tick-1.1.0.tgz#1836ee30ad56d67ef281b22bd199f709449b35eb"
@@ -9819,6 +11151,16 @@ node-dir@^0.1.17:
dependencies:
minimatch "^3.0.2"
+node-emoji@^2.1.3:
+ version "2.1.3"
+ resolved "https://registry.yarnpkg.com/node-emoji/-/node-emoji-2.1.3.tgz#93cfabb5cc7c3653aa52f29d6ffb7927d8047c06"
+ integrity sha512-E2WEOVsgs7O16zsURJ/eH8BqhF029wGpEOnv7Urwdo2wmQanOACwJQh0devF9D9RhoZru0+9JXIS0dBXIAz+lA==
+ dependencies:
+ "@sindresorhus/is" "^4.6.0"
+ char-regex "^1.0.2"
+ emojilib "^2.4.0"
+ skin-tone "^2.0.0"
+
node-fetch-native@^1.4.0:
version "1.4.1"
resolved "https://registry.yarnpkg.com/node-fetch-native/-/node-fetch-native-1.4.1.tgz#5a336e55b4e1b1e72b9927da09fecd2b374c9be5"
@@ -9831,6 +11173,22 @@ node-fetch@^2.0.0:
dependencies:
whatwg-url "^5.0.0"
+node-gyp@^10.0.0, node-gyp@^10.0.1:
+ version "10.0.1"
+ resolved "https://registry.yarnpkg.com/node-gyp/-/node-gyp-10.0.1.tgz#205514fc19e5830fa991e4a689f9e81af377a966"
+ integrity sha512-gg3/bHehQfZivQVfqIyy8wTdSymF9yTyP4CJifK73imyNMU8AIGQE2pUa7dNWfmMeG9cDVF2eehiRMv0LC1iAg==
+ dependencies:
+ env-paths "^2.2.0"
+ exponential-backoff "^3.1.1"
+ glob "^10.3.10"
+ graceful-fs "^4.2.6"
+ make-fetch-happen "^13.0.0"
+ nopt "^7.0.0"
+ proc-log "^3.0.0"
+ semver "^7.3.5"
+ tar "^6.1.2"
+ which "^4.0.0"
+
node-int64@^0.4.0:
version "0.4.0"
resolved "https://registry.yarnpkg.com/node-int64/-/node-int64-0.4.0.tgz#87a9065cdb355d3182d8f94ce11188b825c68a3b"
@@ -9846,6 +11204,13 @@ node-releases@^2.0.14:
resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.14.tgz#2ffb053bceb8b2be8495ece1ab6ce600c4461b0b"
integrity sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==
+nopt@^7.0.0, nopt@^7.2.0:
+ version "7.2.0"
+ resolved "https://registry.yarnpkg.com/nopt/-/nopt-7.2.0.tgz#067378c68116f602f552876194fd11f1292503d7"
+ integrity sha512-CVDtwCdhYIvnAzFoJ6NJ6dX3oga9/HyciQDnG1vQDjSLMeKLJ4A93ZqYKDrgYSr1FBY5/hMYC+2VCi24pgpkGA==
+ dependencies:
+ abbrev "^2.0.0"
+
normalize-package-data@^2.5.0:
version "2.5.0"
resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.5.0.tgz#e66db1838b200c1dfc233225d12cb36520e234a8"
@@ -9866,11 +11231,60 @@ normalize-package-data@^3.0.2:
semver "^7.3.4"
validate-npm-package-license "^3.0.1"
+normalize-package-data@^6.0.0:
+ version "6.0.0"
+ resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-6.0.0.tgz#68a96b3c11edd462af7189c837b6b1064a484196"
+ integrity sha512-UL7ELRVxYBHBgYEtZCXjxuD5vPxnmvMGq0jp/dGPKKrN7tfsBh2IY7TlJ15WWwdjRWD3RJbnsygUurTK3xkPkg==
+ dependencies:
+ hosted-git-info "^7.0.0"
+ is-core-module "^2.8.1"
+ semver "^7.3.5"
+ validate-npm-package-license "^3.0.4"
+
normalize-path@^3.0.0, normalize-path@~3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65"
integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==
+normalize-url@^8.0.0:
+ version "8.0.0"
+ resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-8.0.0.tgz#593dbd284f743e8dcf6a5ddf8fadff149c82701a"
+ integrity sha512-uVFpKhj5MheNBJRTiMZ9pE/7hD1QTeEvugSJW/OmLzAp78PB5O6adfMNTvmfKhXBkvCzC+rqifWcVYpGFwTjnw==
+
+npm-audit-report@^5.0.0:
+ version "5.0.0"
+ resolved "https://registry.yarnpkg.com/npm-audit-report/-/npm-audit-report-5.0.0.tgz#83ac14aeff249484bde81eff53c3771d5048cf95"
+ integrity sha512-EkXrzat7zERmUhHaoren1YhTxFwsOu5jypE84k6632SXTHcQE1z8V51GC6GVZt8LxkC+tbBcKMUBZAgk8SUSbw==
+
+npm-bundled@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/npm-bundled/-/npm-bundled-3.0.0.tgz#7e8e2f8bb26b794265028491be60321a25a39db7"
+ integrity sha512-Vq0eyEQy+elFpzsKjMss9kxqb9tG3YHg4dsyWuUENuzvSUWe1TCnW/vV9FkhvBk/brEDoDiVd+M1Btosa6ImdQ==
+ dependencies:
+ npm-normalize-package-bin "^3.0.0"
+
+npm-install-checks@^6.0.0, npm-install-checks@^6.2.0, npm-install-checks@^6.3.0:
+ version "6.3.0"
+ resolved "https://registry.yarnpkg.com/npm-install-checks/-/npm-install-checks-6.3.0.tgz#046552d8920e801fa9f919cad569545d60e826fe"
+ integrity sha512-W29RiK/xtpCGqn6f3ixfRYGk+zRyr+Ew9F2E20BfXxT5/euLdA/Nm7fO7OeTGuAmTs30cpgInyJ0cYe708YTZw==
+ dependencies:
+ semver "^7.1.1"
+
+npm-normalize-package-bin@^3.0.0:
+ version "3.0.1"
+ resolved "https://registry.yarnpkg.com/npm-normalize-package-bin/-/npm-normalize-package-bin-3.0.1.tgz#25447e32a9a7de1f51362c61a559233b89947832"
+ integrity sha512-dMxCf+zZ+3zeQZXKxmyuCKlIDPGuv8EF940xbkC4kQVDTtqoh6rJFO+JTKSA6/Rwi0getWmtuy4Itup0AMcaDQ==
+
+npm-package-arg@^11.0.0, npm-package-arg@^11.0.1:
+ version "11.0.1"
+ resolved "https://registry.yarnpkg.com/npm-package-arg/-/npm-package-arg-11.0.1.tgz#f208b0022c29240a1c532a449bdde3f0a4708ebc"
+ integrity sha512-M7s1BD4NxdAvBKUPqqRW957Xwcl/4Zvo8Aj+ANrzvIPzGJZElrH7Z//rSaec2ORcND6FHHLnZeY8qgTpXDMFQQ==
+ dependencies:
+ hosted-git-info "^7.0.0"
+ proc-log "^3.0.0"
+ semver "^7.3.5"
+ validate-npm-package-name "^5.0.0"
+
npm-package-json-lint@5.4.2:
version "5.4.2"
resolved "https://registry.yarnpkg.com/npm-package-json-lint/-/npm-package-json-lint-5.4.2.tgz#f2565b1c71ce7dd8a5a14b29da0d54bd6509aad0"
@@ -9892,6 +11306,44 @@ npm-package-json-lint@5.4.2:
slash "^3.0.0"
strip-json-comments "^3.1.1"
+npm-packlist@^8.0.0:
+ version "8.0.2"
+ resolved "https://registry.yarnpkg.com/npm-packlist/-/npm-packlist-8.0.2.tgz#5b8d1d906d96d21c85ebbeed2cf54147477c8478"
+ integrity sha512-shYrPFIS/JLP4oQmAwDyk5HcyysKW8/JLTEA32S0Z5TzvpaeeX2yMFfoK1fjEBnCBvVyIB/Jj/GBFdm0wsgzbA==
+ dependencies:
+ ignore-walk "^6.0.4"
+
+npm-pick-manifest@^9.0.0:
+ version "9.0.0"
+ resolved "https://registry.yarnpkg.com/npm-pick-manifest/-/npm-pick-manifest-9.0.0.tgz#f87a4c134504a2c7931f2bb8733126e3c3bb7e8f"
+ integrity sha512-VfvRSs/b6n9ol4Qb+bDwNGUXutpy76x6MARw/XssevE0TnctIKcmklJZM5Z7nqs5z5aW+0S63pgCNbpkUNNXBg==
+ dependencies:
+ npm-install-checks "^6.0.0"
+ npm-normalize-package-bin "^3.0.0"
+ npm-package-arg "^11.0.0"
+ semver "^7.3.5"
+
+npm-profile@^9.0.0:
+ version "9.0.0"
+ resolved "https://registry.yarnpkg.com/npm-profile/-/npm-profile-9.0.0.tgz#ffcfa4e3e1b1cb44b17c192f75b44b24b4aae645"
+ integrity sha512-qv43ixsJ7vndzfxD3XsPNu1Njck6dhO7q1efksTo+0DiOQysKSOsIhK/qDD1/xO2o+2jDOA4Rv/zOJ9KQFs9nw==
+ dependencies:
+ npm-registry-fetch "^16.0.0"
+ proc-log "^3.0.0"
+
+npm-registry-fetch@^16.0.0, npm-registry-fetch@^16.1.0:
+ version "16.1.0"
+ resolved "https://registry.yarnpkg.com/npm-registry-fetch/-/npm-registry-fetch-16.1.0.tgz#10227b7b36c97bc1cf2902a24e4f710cfe62803c"
+ integrity sha512-PQCELXKt8Azvxnt5Y85GseQDJJlglTFM9L9U9gkv2y4e9s0k3GVDdOx3YoB6gm2Do0hlkzC39iCGXby+Wve1Bw==
+ dependencies:
+ make-fetch-happen "^13.0.0"
+ minipass "^7.0.2"
+ minipass-fetch "^3.0.0"
+ minipass-json-stream "^1.0.1"
+ minizlib "^2.1.2"
+ npm-package-arg "^11.0.0"
+ proc-log "^3.0.0"
+
npm-run-path@^4.0.0, npm-run-path@^4.0.1:
version "4.0.1"
resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-4.0.1.tgz#b7ecd1e5ed53da8e37a55e1c2269e0b97ed748ea"
@@ -9899,6 +11351,105 @@ npm-run-path@^4.0.0, npm-run-path@^4.0.1:
dependencies:
path-key "^3.0.0"
+npm-run-path@^5.1.0:
+ version "5.2.0"
+ resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-5.2.0.tgz#224cdd22c755560253dd71b83a1ef2f758b2e955"
+ integrity sha512-W4/tgAXFqFA0iL7fk0+uQ3g7wkL8xJmx3XdK0VGb4cHW//eZTtKGvFBBoRKVTpY7n6ze4NL9ly7rgXcHufqXKg==
+ dependencies:
+ path-key "^4.0.0"
+
+npm-user-validate@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/npm-user-validate/-/npm-user-validate-2.0.0.tgz#7b69bbbff6f7992a1d9a8968d52fd6b6db5431b6"
+ integrity sha512-sSWeqAYJ2dUPStJB+AEj0DyLRltr/f6YNcvCA7phkB8/RMLMnVsQ41GMwHo/ERZLYNDsyB2wPm7pZo1mqPOl7Q==
+
+npm@^10.0.0:
+ version "10.3.0"
+ resolved "https://registry.yarnpkg.com/npm/-/npm-10.3.0.tgz#554e1f13e4c09d581ad27cdc4a92f085ab74ce1a"
+ integrity sha512-9u5GFc1UqI2DLlGI7QdjkpIaBs3UhTtY8KoCqYJK24gV/j/tByaI4BA4R7RkOc+ASqZMzFPKt4Pj2Z8JcGo//A==
+ dependencies:
+ "@isaacs/string-locale-compare" "^1.1.0"
+ "@npmcli/arborist" "^7.2.1"
+ "@npmcli/config" "^8.0.2"
+ "@npmcli/fs" "^3.1.0"
+ "@npmcli/map-workspaces" "^3.0.4"
+ "@npmcli/package-json" "^5.0.0"
+ "@npmcli/promise-spawn" "^7.0.1"
+ "@npmcli/run-script" "^7.0.3"
+ "@sigstore/tuf" "^2.2.0"
+ abbrev "^2.0.0"
+ archy "~1.0.0"
+ cacache "^18.0.2"
+ chalk "^5.3.0"
+ ci-info "^4.0.0"
+ cli-columns "^4.0.0"
+ cli-table3 "^0.6.3"
+ columnify "^1.6.0"
+ fastest-levenshtein "^1.0.16"
+ fs-minipass "^3.0.3"
+ glob "^10.3.10"
+ graceful-fs "^4.2.11"
+ hosted-git-info "^7.0.1"
+ ini "^4.1.1"
+ init-package-json "^6.0.0"
+ is-cidr "^5.0.3"
+ json-parse-even-better-errors "^3.0.1"
+ libnpmaccess "^8.0.1"
+ libnpmdiff "^6.0.3"
+ libnpmexec "^7.0.4"
+ libnpmfund "^5.0.1"
+ libnpmhook "^10.0.0"
+ libnpmorg "^6.0.1"
+ libnpmpack "^6.0.3"
+ libnpmpublish "^9.0.2"
+ libnpmsearch "^7.0.0"
+ libnpmteam "^6.0.0"
+ libnpmversion "^5.0.1"
+ make-fetch-happen "^13.0.0"
+ minimatch "^9.0.3"
+ minipass "^7.0.4"
+ minipass-pipeline "^1.2.4"
+ ms "^2.1.2"
+ node-gyp "^10.0.1"
+ nopt "^7.2.0"
+ normalize-package-data "^6.0.0"
+ npm-audit-report "^5.0.0"
+ npm-install-checks "^6.3.0"
+ npm-package-arg "^11.0.1"
+ npm-pick-manifest "^9.0.0"
+ npm-profile "^9.0.0"
+ npm-registry-fetch "^16.1.0"
+ npm-user-validate "^2.0.0"
+ npmlog "^7.0.1"
+ p-map "^4.0.0"
+ pacote "^17.0.5"
+ parse-conflict-json "^3.0.1"
+ proc-log "^3.0.0"
+ qrcode-terminal "^0.12.0"
+ read "^2.1.0"
+ semver "^7.5.4"
+ spdx-expression-parse "^3.0.1"
+ ssri "^10.0.5"
+ strip-ansi "^7.1.0"
+ supports-color "^9.4.0"
+ tar "^6.2.0"
+ text-table "~0.2.0"
+ tiny-relative-date "^1.3.0"
+ treeverse "^3.0.0"
+ validate-npm-package-name "^5.0.0"
+ which "^4.0.0"
+ write-file-atomic "^5.0.1"
+
+npmlog@^7.0.1:
+ version "7.0.1"
+ resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-7.0.1.tgz#7372151a01ccb095c47d8bf1d0771a4ff1f53ac8"
+ integrity sha512-uJ0YFk/mCQpLBt+bxN88AKd+gyqZvZDbtiNxk6Waqcj2aPRyfVx8ITawkyQynxUagInjdYT1+qj4NfA5KJJUxg==
+ dependencies:
+ are-we-there-yet "^4.0.0"
+ console-control-strings "^1.1.0"
+ gauge "^5.0.0"
+ set-blocking "^2.0.0"
+
nth-check@^2.0.1:
version "2.1.1"
resolved "https://registry.yarnpkg.com/nth-check/-/nth-check-2.1.1.tgz#c9eab428effce36cd6b92c924bdb000ef1f1ed1d"
@@ -10020,6 +11571,13 @@ onetime@^5.1.0, onetime@^5.1.2:
dependencies:
mimic-fn "^2.1.0"
+onetime@^6.0.0:
+ version "6.0.0"
+ resolved "https://registry.yarnpkg.com/onetime/-/onetime-6.0.0.tgz#7c24c18ed1fd2e9bca4bd26806a33613c77d34b4"
+ integrity sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==
+ dependencies:
+ mimic-fn "^4.0.0"
+
open@^8.0.4, open@^8.4.0:
version "8.4.2"
resolved "https://registry.yarnpkg.com/open/-/open-8.4.2.tgz#5b5ffe2a8f793dcd2aad73e550cb87b59cb084f9"
@@ -10061,6 +11619,30 @@ ospath@^1.2.2:
resolved "https://registry.yarnpkg.com/ospath/-/ospath-1.2.2.tgz#1276639774a3f8ef2572f7fe4280e0ea4550c07b"
integrity sha512-o6E5qJV5zkAbIDNhGSIlyOhScKXgQrSRMilfph0clDfM0nEnBOlKlH4sWDmG95BW/CvwNz0vmm7dJVtU2KlMiA==
+p-each-series@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/p-each-series/-/p-each-series-3.0.0.tgz#d1aed5e96ef29864c897367a7d2a628fdc960806"
+ integrity sha512-lastgtAdoH9YaLyDa5i5z64q+kzOcQHsQ5SsZJD3q0VEyI8mq872S3geuNbRUQLVAE9siMfgKrpj7MloKFHruw==
+
+p-filter@^4.0.0:
+ version "4.1.0"
+ resolved "https://registry.yarnpkg.com/p-filter/-/p-filter-4.1.0.tgz#fe0aa794e2dfad8ecf595a39a245484fcd09c6e4"
+ integrity sha512-37/tPdZ3oJwHaS3gNJdenCDB3Tz26i9sjhnguBtvN0vYlRIiDNnvTWkuh+0hETV9rLPdJ3rlL3yVOYPIAnM8rw==
+ dependencies:
+ p-map "^7.0.1"
+
+p-is-promise@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/p-is-promise/-/p-is-promise-3.0.0.tgz#58e78c7dfe2e163cf2a04ff869e7c1dba64a5971"
+ integrity sha512-Wo8VsW4IRQSKVXsJCn7TomUaVtyfjVDn3nUP7kE967BQk0CwFpdbZs0X0uk5sW9mkBa9eNM7hCMaG93WUAwxYQ==
+
+p-limit@^1.1.0:
+ version "1.3.0"
+ resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-1.3.0.tgz#b86bd5f0c25690911c7590fcbfc2010d54b3ccb8"
+ integrity sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==
+ dependencies:
+ p-try "^1.0.0"
+
p-limit@^2.0.0, p-limit@^2.2.0:
version "2.3.0"
resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.3.0.tgz#3dd33c647a214fdfffd835933eb086da0dc21db1"
@@ -10082,6 +11664,13 @@ p-limit@^4.0.0:
dependencies:
yocto-queue "^1.0.0"
+p-locate@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-2.0.0.tgz#20a0103b222a70c8fd39cc2e580680f3dde5ec43"
+ integrity sha512-nQja7m7gSKuewoVRen45CtVfODR3crN3goVQ0DDZ9N3yHxgpkuBhZqsaiotSQRrADUrne346peY7kT3TSACykg==
+ dependencies:
+ p-limit "^1.1.0"
+
p-locate@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-3.0.0.tgz#322d69a05c0264b25997d9f40cd8a891ab0064a4"
@@ -10117,11 +11706,55 @@ p-map@^4.0.0:
dependencies:
aggregate-error "^3.0.0"
+p-map@^7.0.1:
+ version "7.0.1"
+ resolved "https://registry.yarnpkg.com/p-map/-/p-map-7.0.1.tgz#1faf994e597160f7851882926bfccabc1d226f80"
+ integrity sha512-2wnaR0XL/FDOj+TgpDuRb2KTjLnu3Fma6b1ZUwGY7LcqenMcvP/YFpjpbPKY6WVGsbuJZRuoUz8iPrt8ORnAFw==
+
+p-reduce@^2.0.0:
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/p-reduce/-/p-reduce-2.1.0.tgz#09408da49507c6c274faa31f28df334bc712b64a"
+ integrity sha512-2USApvnsutq8uoxZBGbbWM0JIYLiEMJ9RlaN7fAzVNb9OZN0SHjjTTfIcb667XynS5Y1VhwDJVDa72TnPzAYWw==
+
+p-reduce@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/p-reduce/-/p-reduce-3.0.0.tgz#f11773794792974bd1f7a14c72934248abff4160"
+ integrity sha512-xsrIUgI0Kn6iyDYm9StOpOeK29XM1aboGji26+QEortiFST1hGZaUQOLhtEbqHErPpGW/aSz6allwK2qcptp0Q==
+
+p-try@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/p-try/-/p-try-1.0.0.tgz#cbc79cdbaf8fd4228e13f621f2b1a237c1b207b3"
+ integrity sha512-U1etNYuMJoIz3ZXSrrySFjsXQTWOx2/jdi86L+2pRvph/qMKL6sbcCYdH23fqsbm8TH2Gn0OybpT4eSFlCVHww==
+
p-try@^2.0.0:
version "2.2.0"
resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6"
integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==
+pacote@^17.0.0, pacote@^17.0.4, pacote@^17.0.5:
+ version "17.0.6"
+ resolved "https://registry.yarnpkg.com/pacote/-/pacote-17.0.6.tgz#874bb59cda5d44ab784d0b6530fcb4a7d9b76a60"
+ integrity sha512-cJKrW21VRE8vVTRskJo78c/RCvwJCn1f4qgfxL4w77SOWrTCRcmfkYHlHtS0gqpgjv3zhXflRtgsrUCX5xwNnQ==
+ dependencies:
+ "@npmcli/git" "^5.0.0"
+ "@npmcli/installed-package-contents" "^2.0.1"
+ "@npmcli/promise-spawn" "^7.0.0"
+ "@npmcli/run-script" "^7.0.0"
+ cacache "^18.0.0"
+ fs-minipass "^3.0.0"
+ minipass "^7.0.2"
+ npm-package-arg "^11.0.0"
+ npm-packlist "^8.0.0"
+ npm-pick-manifest "^9.0.0"
+ npm-registry-fetch "^16.0.0"
+ proc-log "^3.0.0"
+ promise-retry "^2.0.1"
+ read-package-json "^7.0.0"
+ read-package-json-fast "^3.0.0"
+ sigstore "^2.2.0"
+ ssri "^10.0.0"
+ tar "^6.1.11"
+
pako@~0.2.0:
version "0.2.9"
resolved "https://registry.yarnpkg.com/pako/-/pako-0.2.9.tgz#f3f7522f4ef782348da8161bad9ecfd51bf83a75"
@@ -10142,6 +11775,23 @@ parent-module@^1.0.0:
dependencies:
callsites "^3.0.0"
+parse-conflict-json@^3.0.0, parse-conflict-json@^3.0.1:
+ version "3.0.1"
+ resolved "https://registry.yarnpkg.com/parse-conflict-json/-/parse-conflict-json-3.0.1.tgz#67dc55312781e62aa2ddb91452c7606d1969960c"
+ integrity sha512-01TvEktc68vwbJOtWZluyWeVGWjP+bZwXtPDMQVbBKzbJ/vZBif0L69KH1+cHv1SZ6e0FKLvjyHe8mqsIqYOmw==
+ dependencies:
+ json-parse-even-better-errors "^3.0.0"
+ just-diff "^6.0.0"
+ just-diff-apply "^5.2.0"
+
+parse-json@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-4.0.0.tgz#be35f5425be1f7f6c747184f98a788cb99477ee0"
+ integrity sha512-aOIos8bujGN93/8Ox/jPLh7RwVnPEysynVFE+fQZyg6jKELEHwzgKdLRFHUgXJL6kylijVSBC4BvN9OmsB48Rw==
+ dependencies:
+ error-ex "^1.3.1"
+ json-parse-better-errors "^1.0.1"
+
parse-json@^5.0.0, parse-json@^5.2.0:
version "5.2.0"
resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-5.2.0.tgz#c76fc66dee54231c962b22bcc8a72cf2f99753cd"
@@ -10152,6 +11802,15 @@ parse-json@^5.0.0, parse-json@^5.2.0:
json-parse-even-better-errors "^2.3.0"
lines-and-columns "^1.1.6"
+parse-json@^8.0.0:
+ version "8.1.0"
+ resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-8.1.0.tgz#91cdc7728004e955af9cb734de5684733b24a717"
+ integrity sha512-rum1bPifK5SSar35Z6EKZuYPJx85pkNaFrxBK3mwdfSJ1/WKbYrjoW/zTPSjRRamfmVX1ACBIdFAO0VRErW/EA==
+ dependencies:
+ "@babel/code-frame" "^7.22.13"
+ index-to-position "^0.1.2"
+ type-fest "^4.7.1"
+
parse5@6.0.1:
version "6.0.1"
resolved "https://registry.yarnpkg.com/parse5/-/parse5-6.0.1.tgz#e1a1c085c569b3dc08321184f19a39cc27f7c30b"
@@ -10200,6 +11859,11 @@ path-key@^3.0.0, path-key@^3.1.0:
resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375"
integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==
+path-key@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/path-key/-/path-key-4.0.0.tgz#295588dc3aee64154f877adb9d780b81c554bf18"
+ integrity sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==
+
path-parse@^1.0.7:
version "1.0.7"
resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735"
@@ -10228,6 +11892,11 @@ path-type@^4.0.0:
resolved "https://registry.yarnpkg.com/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b"
integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==
+path-type@^5.0.0:
+ version "5.0.0"
+ resolved "https://registry.yarnpkg.com/path-type/-/path-type-5.0.0.tgz#14b01ed7aea7ddf9c7c3f46181d4d04f9c785bb8"
+ integrity sha512-5HviZNaZcfqP95rwpv+1HDgUamezbqdSYTyzjTvwtJSnIH+3vnbmWsItli8OFEndS984VT55M3jduxZbX351gg==
+
pathe@^1.1.1:
version "1.1.1"
resolved "https://registry.yarnpkg.com/pathe/-/pathe-1.1.1.tgz#1dd31d382b974ba69809adc9a7a347e65d84829a"
@@ -10267,6 +11936,11 @@ pify@^2.2.0:
resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c"
integrity sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==
+pify@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/pify/-/pify-3.0.0.tgz#e5a4acd2c101fdf3d9a4d07f0dbc4db49dd28176"
+ integrity sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==
+
pify@^4.0.1:
version "4.0.1"
resolved "https://registry.yarnpkg.com/pify/-/pify-4.0.1.tgz#4b2cd25c50d598735c50292224fd8c6df41e3231"
@@ -10277,6 +11951,14 @@ pirates@^4.0.4, pirates@^4.0.6:
resolved "https://registry.yarnpkg.com/pirates/-/pirates-4.0.6.tgz#3018ae32ecfcff6c29ba2267cbf21166ac1f36b9"
integrity sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==
+pkg-conf@^2.1.0:
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/pkg-conf/-/pkg-conf-2.1.0.tgz#2126514ca6f2abfebd168596df18ba57867f0058"
+ integrity sha512-C+VUP+8jis7EsQZIhDYmS5qlNtjv2yP4SNtjXK9AP1ZcTRlnSfuumaTnRfYZnYgUUYVIKqL0fRvmUGDV2fmp6g==
+ dependencies:
+ find-up "^2.0.0"
+ load-json-file "^4.0.0"
+
pkg-dir@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-3.0.0.tgz#2749020f239ed990881b1f71210d51eb6523bea3"
@@ -10381,6 +12063,14 @@ postcss-scss@^4.0.2:
resolved "https://registry.yarnpkg.com/postcss-scss/-/postcss-scss-4.0.9.tgz#a03c773cd4c9623cb04ce142a52afcec74806685"
integrity sha512-AjKOeiwAitL/MXxQW2DliT28EKukvvbEWx3LBmJIRN8KfBGZbRTxNYW0kSqi1COiTZ57nZ9NW06S6ux//N1c9A==
+postcss-selector-parser@^6.0.10:
+ version "6.0.15"
+ resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.0.15.tgz#11cc2b21eebc0b99ea374ffb9887174855a01535"
+ integrity sha512-rEYkQOMUCEMhsKbK66tbEU9QVIxbhN18YiniAwA7XQYTVBqrBy+P2p5JcdqsHgKM2zWylp8d7J6eszocfds5Sw==
+ dependencies:
+ cssesc "^3.0.0"
+ util-deprecate "^1.0.2"
+
postcss-selector-parser@^6.0.11, postcss-selector-parser@^6.0.13, postcss-selector-parser@^6.0.2, postcss-selector-parser@^6.0.4:
version "6.0.13"
resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.0.13.tgz#d05d8d76b1e8e173257ef9d60b706a8e5e99bf1b"
@@ -10461,6 +12151,11 @@ pretty-hrtime@^1.0.3:
resolved "https://registry.yarnpkg.com/pretty-hrtime/-/pretty-hrtime-1.0.3.tgz#b7e3ea42435a4c9b2759d99e0f201eb195802ee1"
integrity sha512-66hKPCr+72mlfiSjlEB1+45IjXSqvVAIy6mocupoww4tBFE9R9IhwwUGoI4G++Tc9Aq+2rxOt0RFU6gPcrte0A==
+proc-log@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/proc-log/-/proc-log-3.0.0.tgz#fb05ef83ccd64fd7b20bbe9c8c1070fc08338dd8"
+ integrity sha512-++Vn7NS4Xf9NacaU9Xq3URUuqZETPsf8L4j5/ckhaRYsfPeRyzGw+iDjFhV/Jr3uNmTvvddEJFWh5R1gRgUH8A==
+
process-nextick-args@~2.0.0:
version "2.0.1"
resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2"
@@ -10476,6 +12171,29 @@ progress@^2.0.1:
resolved "https://registry.yarnpkg.com/progress/-/progress-2.0.3.tgz#7e8cf8d8f5b8f239c1bc68beb4eb78567d572ef8"
integrity sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==
+promise-all-reject-late@^1.0.0:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/promise-all-reject-late/-/promise-all-reject-late-1.0.1.tgz#f8ebf13483e5ca91ad809ccc2fcf25f26f8643c2"
+ integrity sha512-vuf0Lf0lOxyQREH7GDIOUMLS7kz+gs8i6B+Yi8dC68a2sychGrHTJYghMBD6k7eUcH0H5P73EckCA48xijWqXw==
+
+promise-call-limit@^1.0.2:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/promise-call-limit/-/promise-call-limit-1.0.2.tgz#f64b8dd9ef7693c9c7613e7dfe8d6d24de3031ea"
+ integrity sha512-1vTUnfI2hzui8AEIixbdAJlFY4LFDXqQswy/2eOlThAscXCY4It8FdVuI0fMJGAB2aWGbdQf/gv0skKYXmdrHA==
+
+promise-inflight@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/promise-inflight/-/promise-inflight-1.0.1.tgz#98472870bf228132fcbdd868129bad12c3c029e3"
+ integrity sha512-6zWPyEOFaQBJYcGMHBKTKJ3u6TBsnMFOIZSa6ce1e/ZrrsOlnHRHbabMjLiBYKp+n44X9eUI6VUPaukCXHuG4g==
+
+promise-retry@^2.0.1:
+ version "2.0.1"
+ resolved "https://registry.yarnpkg.com/promise-retry/-/promise-retry-2.0.1.tgz#ff747a13620ab57ba688f5fc67855410c370da22"
+ integrity sha512-y+WKFlBR8BGXnsNlIHFGPZmyDf3DFMoLhaflAnyZgV6rG6xu+JwesTo2Q9R6XwYmtmwAFCkAk3e35jEdoeh/3g==
+ dependencies:
+ err-code "^2.0.2"
+ retry "^0.12.0"
+
prompts@^2.0.1, prompts@^2.4.0:
version "2.4.2"
resolved "https://registry.yarnpkg.com/prompts/-/prompts-2.4.2.tgz#7b57e73b3a48029ad10ebd44f74b01722a4cb069"
@@ -10484,6 +12202,13 @@ prompts@^2.0.1, prompts@^2.4.0:
kleur "^3.0.3"
sisteransi "^1.0.5"
+promzard@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/promzard/-/promzard-1.0.0.tgz#3246f8e6c9895a77c0549cefb65828ac0f6c006b"
+ integrity sha512-KQVDEubSUHGSt5xLakaToDFrSoZhStB8dXLzk2xvwR67gJktrHFvpR63oZgHyK19WKbHFLXJqCPXdVR3aBP8Ig==
+ dependencies:
+ read "^2.0.0"
+
prop-types@15.8.1, prop-types@^15.7.2, prop-types@^15.8.1:
version "15.8.1"
resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.8.1.tgz#67d87bf1a694f48435cf332c24af10214a3140b5"
@@ -10493,6 +12218,11 @@ prop-types@15.8.1, prop-types@^15.7.2, prop-types@^15.8.1:
object-assign "^4.1.1"
react-is "^16.13.1"
+proto-list@~1.2.1:
+ version "1.2.4"
+ resolved "https://registry.yarnpkg.com/proto-list/-/proto-list-1.2.4.tgz#212d5bfe1318306a420f6402b8e26ff39647a849"
+ integrity sha512-vtK/94akxsTMhe0/cbfpR+syPuszcuwhqVjJq26CuNDgFGj682oRBXOP5MJpv2r7JtE8MsiepGIqvvOTBwn2vA==
+
proxy-addr@~2.0.7:
version "2.0.7"
resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-2.0.7.tgz#f19fe69ceab311eeb94b42e70e8c2070f9ba1025"
@@ -10567,6 +12297,11 @@ puppeteer-core@^2.1.1:
rimraf "^2.6.1"
ws "^6.1.0"
+qrcode-terminal@^0.12.0:
+ version "0.12.0"
+ resolved "https://registry.yarnpkg.com/qrcode-terminal/-/qrcode-terminal-0.12.0.tgz#bb5b699ef7f9f0505092a3748be4464fe71b5819"
+ integrity sha512-EXtzRZmC+YGmGlDFbXKxQiMZNwCLEO6BANKXG4iCtSIM0yqc/pappSx3RIKr4r0uh5JsBckOXeKrB3Iz7mdQpQ==
+
qs@6.11.0:
version "6.11.0"
resolved "https://registry.yarnpkg.com/qs/-/qs-6.11.0.tgz#fd0d963446f7a65e1367e01abd85429453f0c37a"
@@ -10647,6 +12382,16 @@ raw-body@2.5.1:
iconv-lite "0.4.24"
unpipe "1.0.0"
+rc@^1.2.8:
+ version "1.2.8"
+ resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.8.tgz#cd924bf5200a075b83c188cd6b9e211b7fc0d3ed"
+ integrity sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==
+ dependencies:
+ deep-extend "^0.6.0"
+ ini "~1.3.0"
+ minimist "^1.2.0"
+ strip-json-comments "~2.0.1"
+
react-colorful@^5.1.2:
version "5.6.1"
resolved "https://registry.yarnpkg.com/react-colorful/-/react-colorful-5.6.1.tgz#7dc2aed2d7c72fac89694e834d179e32f3da563b"
@@ -10783,6 +12528,38 @@ react@18.2.0:
dependencies:
loose-envify "^1.1.0"
+read-cmd-shim@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/read-cmd-shim/-/read-cmd-shim-4.0.0.tgz#640a08b473a49043e394ae0c7a34dd822c73b9bb"
+ integrity sha512-yILWifhaSEEytfXI76kB9xEEiG1AiozaCJZ83A87ytjRiN+jVibXjedjCRNjoZviinhG+4UkalO3mWTd8u5O0Q==
+
+read-package-json-fast@^3.0.0, read-package-json-fast@^3.0.2:
+ version "3.0.2"
+ resolved "https://registry.yarnpkg.com/read-package-json-fast/-/read-package-json-fast-3.0.2.tgz#394908a9725dc7a5f14e70c8e7556dff1d2b1049"
+ integrity sha512-0J+Msgym3vrLOUB3hzQCuZHII0xkNGCtz/HJH9xZshwv9DbDwkw1KaE3gx/e2J5rpEY5rtOy6cyhKOPrkP7FZw==
+ dependencies:
+ json-parse-even-better-errors "^3.0.0"
+ npm-normalize-package-bin "^3.0.0"
+
+read-package-json@^7.0.0:
+ version "7.0.0"
+ resolved "https://registry.yarnpkg.com/read-package-json/-/read-package-json-7.0.0.tgz#d605c9dcf6bc5856da24204aa4e9518ee9714be0"
+ integrity sha512-uL4Z10OKV4p6vbdvIXB+OzhInYtIozl/VxUBPgNkBuUi2DeRonnuspmaVAMcrkmfjKGNmRndyQAbE7/AmzGwFg==
+ dependencies:
+ glob "^10.2.2"
+ json-parse-even-better-errors "^3.0.0"
+ normalize-package-data "^6.0.0"
+ npm-normalize-package-bin "^3.0.0"
+
+read-pkg-up@^11.0.0:
+ version "11.0.0"
+ resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-11.0.0.tgz#8916ffc6af2a7538b43bcc2c6445d4450ffe5a74"
+ integrity sha512-LOVbvF1Q0SZdjClSefZ0Nz5z8u+tIE7mV5NibzmE9VYmDe9CaBbAVtz1veOSZbofrdsilxuDAYnFenukZVp8/Q==
+ dependencies:
+ find-up-simple "^1.0.0"
+ read-pkg "^9.0.0"
+ type-fest "^4.6.0"
+
read-pkg-up@^7.0.1:
version "7.0.1"
resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-7.0.1.tgz#f3a6135758459733ae2b95638056e1854e7ef507"
@@ -10821,7 +12598,25 @@ read-pkg@^6.0.0:
parse-json "^5.2.0"
type-fest "^1.0.1"
-readable-stream@^2.0.0, readable-stream@^2.2.2, readable-stream@~2.3.6:
+read-pkg@^9.0.0:
+ version "9.0.1"
+ resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-9.0.1.tgz#b1b81fb15104f5dbb121b6bbdee9bbc9739f569b"
+ integrity sha512-9viLL4/n1BJUCT1NXVTdS1jtm80yDEgR5T4yCelII49Mbj0v1rZdKqj7zCiYdbB0CuCgdrvHcNogAKTFPBocFA==
+ dependencies:
+ "@types/normalize-package-data" "^2.4.3"
+ normalize-package-data "^6.0.0"
+ parse-json "^8.0.0"
+ type-fest "^4.6.0"
+ unicorn-magic "^0.1.0"
+
+read@^2.0.0, read@^2.1.0:
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/read/-/read-2.1.0.tgz#69409372c54fe3381092bc363a00650b6ac37218"
+ integrity sha512-bvxi1QLJHcaywCAEsAk4DG3nVoqiY2Csps3qzWalhj5hFqRn1d/OixkFXtLO1PrgHUcAP0FNaSY/5GYNfENFFQ==
+ dependencies:
+ mute-stream "~1.0.0"
+
+readable-stream@^2.0.0, readable-stream@^2.0.2, readable-stream@^2.2.2, readable-stream@~2.3.6:
version "2.3.8"
resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.8.tgz#91125e8042bba1b9887f49345f6277027ce8be9b"
integrity sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==
@@ -10877,6 +12672,13 @@ redent@^4.0.0:
indent-string "^5.0.0"
strip-indent "^4.0.0"
+redeyed@~2.1.0:
+ version "2.1.1"
+ resolved "https://registry.yarnpkg.com/redeyed/-/redeyed-2.1.1.tgz#8984b5815d99cb220469c99eeeffe38913e6cc0b"
+ integrity sha512-FNpGGo1DycYAdnrKFxCMmKYgo/mILAqtRYbkdQD8Ep/Hk2PQ5+aEAEx+IU713RTDmuBaH0c8P5ZozurNu5ObRQ==
+ dependencies:
+ esprima "~4.0.0"
+
reflect.getprototypeof@^1.0.4:
version "1.0.4"
resolved "https://registry.yarnpkg.com/reflect.getprototypeof/-/reflect.getprototypeof-1.0.4.tgz#aaccbf41aca3821b87bb71d9dcbc7ad0ba50a3f3"
@@ -10934,6 +12736,13 @@ regexpu-core@^5.3.1:
unicode-match-property-ecmascript "^2.0.0"
unicode-match-property-value-ecmascript "^2.1.0"
+registry-auth-token@^5.0.0:
+ version "5.0.2"
+ resolved "https://registry.yarnpkg.com/registry-auth-token/-/registry-auth-token-5.0.2.tgz#8b026cc507c8552ebbe06724136267e63302f756"
+ integrity sha512-o/3ikDxtXaA59BmZuZrJZDJv8NMDGSj+6j6XaeBmHw8eY1i1qd9+6H+LjVvQXx3HN6aRCGa1cUdJ9RaJZUugnQ==
+ dependencies:
+ "@pnpm/npm-conf" "^2.1.0"
+
regjsparser@^0.9.1:
version "0.9.1"
resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.9.1.tgz#272d05aa10c7c1f67095b1ff0addae8442fc5709"
@@ -11067,6 +12876,11 @@ restore-cursor@^3.1.0:
onetime "^5.1.0"
signal-exit "^3.0.2"
+retry@^0.12.0:
+ version "0.12.0"
+ resolved "https://registry.yarnpkg.com/retry/-/retry-0.12.0.tgz#1b42a6266a21f07421d1b0b54b7dc167b01c013b"
+ integrity sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow==
+
reusify@^1.0.4:
version "1.0.4"
resolved "https://registry.yarnpkg.com/reusify/-/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76"
@@ -11155,7 +12969,7 @@ safe-regex-test@^1.0.0:
get-intrinsic "^1.1.3"
is-regex "^1.1.4"
-"safer-buffer@>= 2.1.2 < 3", safer-buffer@^2.0.2, safer-buffer@^2.1.0, safer-buffer@~2.1.0:
+"safer-buffer@>= 2.1.2 < 3", "safer-buffer@>= 2.1.2 < 3.0.0", safer-buffer@^2.0.2, safer-buffer@^2.1.0, safer-buffer@~2.1.0:
version "2.1.2"
resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a"
integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==
@@ -11213,12 +13027,59 @@ schema-utils@^4.0.0:
ajv-formats "^2.1.1"
ajv-keywords "^5.1.0"
+semantic-release@23.0.0:
+ version "23.0.0"
+ resolved "https://registry.yarnpkg.com/semantic-release/-/semantic-release-23.0.0.tgz#ecb3685116f5ff284824e7c377cf9a3ce80c5428"
+ integrity sha512-Jz7jEWO2igTtske112gC4PPE2whCMVrsgxUPG3/SZI7VE357suIUZFlJd1Yu0g2I6RPc2HxNEfUg7KhmDTjwqg==
+ dependencies:
+ "@semantic-release/commit-analyzer" "^11.0.0"
+ "@semantic-release/error" "^4.0.0"
+ "@semantic-release/github" "^9.0.0"
+ "@semantic-release/npm" "^11.0.0"
+ "@semantic-release/release-notes-generator" "^12.0.0"
+ aggregate-error "^5.0.0"
+ cosmiconfig "^9.0.0"
+ debug "^4.0.0"
+ env-ci "^11.0.0"
+ execa "^8.0.0"
+ figures "^6.0.0"
+ find-versions "^5.1.0"
+ get-stream "^6.0.0"
+ git-log-parser "^1.2.0"
+ hook-std "^3.0.0"
+ hosted-git-info "^7.0.0"
+ import-from-esm "^1.3.1"
+ lodash-es "^4.17.21"
+ marked "^11.0.0"
+ marked-terminal "^6.0.0"
+ micromatch "^4.0.2"
+ p-each-series "^3.0.0"
+ p-reduce "^3.0.0"
+ read-pkg-up "^11.0.0"
+ resolve-from "^5.0.0"
+ semver "^7.3.2"
+ semver-diff "^4.0.0"
+ signale "^1.2.1"
+ yargs "^17.5.1"
+
+semver-diff@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/semver-diff/-/semver-diff-4.0.0.tgz#3afcf5ed6d62259f5c72d0d5d50dffbdc9680df5"
+ integrity sha512-0Ju4+6A8iOnpL/Thra7dZsSlOHYAHIeMxfhWQRI1/VLcT3WDBZKKtQt/QkBOsiIN9ZpuvHE6cGZ0x4glCMmfiA==
+ dependencies:
+ semver "^7.3.5"
+
+semver-regex@^4.0.5:
+ version "4.0.5"
+ resolved "https://registry.yarnpkg.com/semver-regex/-/semver-regex-4.0.5.tgz#fbfa36c7ba70461311f5debcb3928821eb4f9180"
+ integrity sha512-hunMQrEy1T6Jr2uEVjrAIqjwWcQTgOAcIM52C8MY1EZSD3DDNft04XzvYKPqjED65bNVVko0YI38nYeEHCX3yw==
+
"semver@2 || 3 || 4 || 5", semver@^5.6.0:
version "5.7.2"
resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.2.tgz#48d55db737c3287cd4835e17fa13feace1c41ef8"
integrity sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==
-semver@7.x, semver@^7.3.2, semver@^7.3.4, semver@^7.3.5, semver@^7.3.7, semver@^7.3.8, semver@^7.5.3:
+semver@7.x, semver@^7.0.0, semver@^7.1.1, semver@^7.1.2, semver@^7.3.2, semver@^7.3.4, semver@^7.3.5, semver@^7.3.7, semver@^7.3.8, semver@^7.5.2, semver@^7.5.3, semver@^7.5.4:
version "7.5.4"
resolved "https://registry.yarnpkg.com/semver/-/semver-7.5.4.tgz#483986ec4ed38e1c6c48c34894a9182dbff68a6e"
integrity sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==
@@ -11266,6 +13127,11 @@ serve-static@1.15.0:
parseurl "~1.3.3"
send "0.18.0"
+set-blocking@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7"
+ integrity sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==
+
set-function-length@^1.1.1:
version "1.1.1"
resolved "https://registry.yarnpkg.com/set-function-length/-/set-function-length-1.1.1.tgz#4bc39fafb0307224a33e106a7d35ca1218d659ed"
@@ -11328,11 +13194,32 @@ signal-exit@^3.0.2, signal-exit@^3.0.3, signal-exit@^3.0.7:
resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.7.tgz#a9a1767f8af84155114eaabd73f99273c8f59ad9"
integrity sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==
-signal-exit@^4.0.1:
+signal-exit@^4.0.1, signal-exit@^4.1.0:
version "4.1.0"
resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-4.1.0.tgz#952188c1cbd546070e2dd20d0f41c0ae0530cb04"
integrity sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==
+signale@^1.2.1:
+ version "1.4.0"
+ resolved "https://registry.yarnpkg.com/signale/-/signale-1.4.0.tgz#c4be58302fb0262ac00fc3d886a7c113759042f1"
+ integrity sha512-iuh+gPf28RkltuJC7W5MRi6XAjTDCAPC/prJUpQoG4vIP3MJZ+GTydVnodXA7pwvTKb2cA0m9OFZW/cdWy/I/w==
+ dependencies:
+ chalk "^2.3.2"
+ figures "^2.0.0"
+ pkg-conf "^2.1.0"
+
+sigstore@^2.1.0, sigstore@^2.2.0:
+ version "2.2.0"
+ resolved "https://registry.yarnpkg.com/sigstore/-/sigstore-2.2.0.tgz#acba5f73ca2158d2b0507bc52d3592149c3ed20e"
+ integrity sha512-fcU9clHwEss2/M/11FFM8Jwc4PjBgbhXoNskoK5guoK0qGQBSeUbQZRJ+B2fDFIvhyf0gqCaPrel9mszbhAxug==
+ dependencies:
+ "@sigstore/bundle" "^2.1.1"
+ "@sigstore/core" "^0.2.0"
+ "@sigstore/protobuf-specs" "^0.2.1"
+ "@sigstore/sign" "^2.2.1"
+ "@sigstore/tuf" "^2.3.0"
+ "@sigstore/verify" "^0.1.0"
+
simple-update-notifier@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/simple-update-notifier/-/simple-update-notifier-2.0.0.tgz#d70b92bdab7d6d90dfd73931195a30b6e3d7cebb"
@@ -11345,6 +13232,13 @@ sisteransi@^1.0.5:
resolved "https://registry.yarnpkg.com/sisteransi/-/sisteransi-1.0.5.tgz#134d681297756437cc05ca01370d3a7a571075ed"
integrity sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==
+skin-tone@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/skin-tone/-/skin-tone-2.0.0.tgz#4e3933ab45c0d4f4f781745d64b9f4c208e41237"
+ integrity sha512-kUMbT1oBJCpgrnKoSr0o6wPtvRWT9W9UKvGLwfJYO2WuahZRHOpEyL1ckyMGgMWh0UdpmaoFqKKD29WTomNEGA==
+ dependencies:
+ unicode-emoji-modifier-base "^1.0.0"
+
slash@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/slash/-/slash-2.0.0.tgz#de552851a1759df3a8f206535442f5ec4ddeab44"
@@ -11355,6 +13249,11 @@ slash@^3.0.0:
resolved "https://registry.yarnpkg.com/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634"
integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==
+slash@^5.1.0:
+ version "5.1.0"
+ resolved "https://registry.yarnpkg.com/slash/-/slash-5.1.0.tgz#be3adddcdf09ac38eebe8dcdc7b1a57a75b095ce"
+ integrity sha512-ZA6oR3T/pEyuqwMgAKT0/hAv8oAXckzbkmR0UkUosQ+Mc4RxGoJkRmwHgHufaenlyAgE1Mxgpdcrf75y6XcnDg==
+
slice-ansi@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-3.0.0.tgz#31ddc10930a1b7e0b67b08c96c2f49b77a789787"
@@ -11373,6 +13272,28 @@ slice-ansi@^4.0.0:
astral-regex "^2.0.0"
is-fullwidth-code-point "^3.0.0"
+smart-buffer@^4.2.0:
+ version "4.2.0"
+ resolved "https://registry.yarnpkg.com/smart-buffer/-/smart-buffer-4.2.0.tgz#6e1d71fa4f18c05f7d0ff216dd16a481d0e8d9ae"
+ integrity sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==
+
+socks-proxy-agent@^8.0.1:
+ version "8.0.2"
+ resolved "https://registry.yarnpkg.com/socks-proxy-agent/-/socks-proxy-agent-8.0.2.tgz#5acbd7be7baf18c46a3f293a840109a430a640ad"
+ integrity sha512-8zuqoLv1aP/66PHF5TqwJ7Czm3Yv32urJQHrVyhD7mmA6d61Zv8cIXQYPTWwmg6qlupnPvs/QKDmfa4P/qct2g==
+ dependencies:
+ agent-base "^7.0.2"
+ debug "^4.3.4"
+ socks "^2.7.1"
+
+socks@^2.7.1:
+ version "2.7.1"
+ resolved "https://registry.yarnpkg.com/socks/-/socks-2.7.1.tgz#d8e651247178fde79c0663043e07240196857d55"
+ integrity sha512-7maUZy1N7uo6+WVEX6psASxtNlKaNVMlGQKkG/63nEDdLOWNbiUMoLK7X4uYoLhQstau72mLgfEWcXcwsaHbYQ==
+ dependencies:
+ ip "^2.0.0"
+ smart-buffer "^4.2.0"
+
"source-map-js@>=0.6.2 <2.0.0", source-map-js@^1.0.1, source-map-js@^1.0.2:
version "1.0.2"
resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-1.0.2.tgz#adbc361d9c62df380125e7f161f71c826f1e490c"
@@ -11406,6 +13327,11 @@ spawn-command@0.0.2:
resolved "https://registry.yarnpkg.com/spawn-command/-/spawn-command-0.0.2.tgz#9544e1a43ca045f8531aac1a48cb29bdae62338e"
integrity sha512-zC8zGoGkmc8J9ndvml8Xksr1Amk9qBujgbF0JAIWO7kXr43w0h/0GJNM/Vustixu+YE8N/MTrQ7N31FvHUACxQ==
+spawn-error-forwarder@~1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/spawn-error-forwarder/-/spawn-error-forwarder-1.0.0.tgz#1afd94738e999b0346d7b9fc373be55e07577029"
+ integrity sha512-gRjMgK5uFjbCvdibeGJuy3I5OYz6VLoVdsOJdA6wV0WlfQVLFueoqMxwwYD9RODdgb6oUIvlRlsyFSiQkMKu0g==
+
spdx-correct@^3.0.0:
version "3.2.0"
resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-3.2.0.tgz#4f5ab0668f0059e34f9c00dce331784a12de4e9c"
@@ -11419,7 +13345,7 @@ spdx-exceptions@^2.1.0:
resolved "https://registry.yarnpkg.com/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz#3f28ce1a77a00372683eade4a433183527a2163d"
integrity sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==
-spdx-expression-parse@^3.0.0:
+spdx-expression-parse@^3.0.0, spdx-expression-parse@^3.0.1:
version "3.0.1"
resolved "https://registry.yarnpkg.com/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz#cf70f50482eefdc98e3ce0a6833e4a53ceeba679"
integrity sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==
@@ -11432,6 +13358,18 @@ spdx-license-ids@^3.0.0:
resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.16.tgz#a14f64e0954f6e25cc6587bd4f392522db0d998f"
integrity sha512-eWN+LnM3GR6gPu35WxNgbGl8rmY1AEmoMDvL/QD6zYmPWgywxWqJWNdLGT+ke8dKNWrcYgYjPpG5gbTfghP8rw==
+split2@^4.0.0:
+ version "4.2.0"
+ resolved "https://registry.yarnpkg.com/split2/-/split2-4.2.0.tgz#c9c5920904d148bab0b9f67145f245a86aadbfa4"
+ integrity sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg==
+
+split2@~1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/split2/-/split2-1.0.0.tgz#52e2e221d88c75f9a73f90556e263ff96772b314"
+ integrity sha512-NKywug4u4pX/AZBB1FCPzZ6/7O+Xhz1qMVbzTvvKvikjO99oPN87SkK08mEY9P63/5lWjK+wgOOgApnTg5r6qg==
+ dependencies:
+ through2 "~2.0.0"
+
sprintf-js@~1.0.2:
version "1.0.3"
resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c"
@@ -11452,6 +13390,13 @@ sshpk@^1.14.1:
safer-buffer "^2.0.2"
tweetnacl "~0.14.0"
+ssri@^10.0.0, ssri@^10.0.5:
+ version "10.0.5"
+ resolved "https://registry.yarnpkg.com/ssri/-/ssri-10.0.5.tgz#e49efcd6e36385196cb515d3a2ad6c3f0265ef8c"
+ integrity sha512-bSf16tAFkGeRlUNDjXu8FzaMQt6g2HZJrun7mtMbIPOddxt3GLMSz5VWUWcqTJUPfLEaDIepGxv+bYQW49596A==
+ dependencies:
+ minipass "^7.0.3"
+
stack-utils@^2.0.3:
version "2.0.6"
resolved "https://registry.yarnpkg.com/stack-utils/-/stack-utils-2.0.6.tgz#aaf0748169c02fc33c8232abccf933f54a1cc34f"
@@ -11488,6 +13433,14 @@ storybook@7.6.7:
dependencies:
"@storybook/cli" "7.6.7"
+stream-combiner2@~1.1.1:
+ version "1.1.1"
+ resolved "https://registry.yarnpkg.com/stream-combiner2/-/stream-combiner2-1.1.1.tgz#fb4d8a1420ea362764e21ad4780397bebcb41cbe"
+ integrity sha512-3PnJbYgS56AeWgtKF5jtJRT6uFJe56Z0Hc5Ngg/6sI6rIt8iiMBTa9cvdyFfpMQjaVHr8dusbNeFGIIonxOvKw==
+ dependencies:
+ duplexer2 "~0.1.0"
+ readable-stream "^2.0.2"
+
stream-shift@^1.0.0:
version "1.0.1"
resolved "https://registry.yarnpkg.com/stream-shift/-/stream-shift-1.0.1.tgz#d7088281559ab2778424279b0877da3c392d5a3d"
@@ -11506,7 +13459,7 @@ string-natural-compare@^3.0.1:
resolved "https://registry.yarnpkg.com/string-natural-compare/-/string-natural-compare-3.0.1.tgz#7a42d58474454963759e8e8b7ae63d71c1e7fdf4"
integrity sha512-n3sPwynL1nwKi3WJ6AIsClwBMa0zTi54fn2oLU6ndfTSIO05xaznjSf15PcBZU6FNWbmN5Q6cxT4V5hGvB4taw==
-"string-width-cjs@npm:string-width@^4.2.0", string-width@^4, string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3, string-width@^5.0.1, string-width@^5.1.2:
+"string-width-cjs@npm:string-width@^4.2.0", "string-width@^1.0.2 || 2 || 3 || 4", string-width@^4, string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3, string-width@^5.0.1, string-width@^5.1.2:
version "4.2.3"
resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010"
integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==
@@ -11576,7 +13529,7 @@ strip-ansi-cjs@^8.0.0, "strip-ansi-cjs@npm:strip-ansi@^6.0.1":
resolved "https://registry.yarnpkg.com/strip-ansi-cjs/-/strip-ansi-cjs-8.0.0.tgz#76d90a591aa708eb8b5c95c205ad2757ada599d9"
integrity sha512-32gkt3BeWEaDWScWe6w75HZX3dgTwM6SCzYZOJqnQWwGIugHHj5+u/TSzZUbcEsg8v0dpVljHNHcUJ+1dmVRqw==
-strip-ansi@^4.0.0, strip-ansi@^6.0.0, strip-ansi@^6.0.1, strip-ansi@^7.0.1:
+strip-ansi@^4.0.0, strip-ansi@^6.0.0, strip-ansi@^6.0.1, strip-ansi@^7.0.1, strip-ansi@^7.1.0:
version "6.0.1"
resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9"
integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==
@@ -11598,6 +13551,11 @@ strip-final-newline@^2.0.0:
resolved "https://registry.yarnpkg.com/strip-final-newline/-/strip-final-newline-2.0.0.tgz#89b852fb2fcbe936f6f4b3187afb0a12c1ab58ad"
integrity sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==
+strip-final-newline@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/strip-final-newline/-/strip-final-newline-3.0.0.tgz#52894c313fbff318835280aed60ff71ebf12b8fd"
+ integrity sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==
+
strip-indent@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/strip-indent/-/strip-indent-3.0.0.tgz#c32e1cee940b6b3432c771bc2c54bcce73cd3001"
@@ -11617,6 +13575,11 @@ strip-json-comments@^3.0.1, strip-json-comments@^3.1.1:
resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006"
integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==
+strip-json-comments@~2.0.1:
+ version "2.0.1"
+ resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a"
+ integrity sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==
+
style-loader@3.3.3, style-loader@^3.3.1:
version "3.3.3"
resolved "https://registry.yarnpkg.com/style-loader/-/style-loader-3.3.3.tgz#bba8daac19930169c0c9c96706749a597ae3acff"
@@ -11738,6 +13701,11 @@ supports-color@^8.0.0, supports-color@^8.1.1:
dependencies:
has-flag "^4.0.0"
+supports-color@^9.4.0:
+ version "9.4.0"
+ resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-9.4.0.tgz#17bfcf686288f531db3dea3215510621ccb55954"
+ integrity sha512-VL+lNrEoIXww1coLPOmiEmK/0sGigko5COxI09KzHc2VJXJsQ37UaQ+8quuxjDeA7+KnLGTWRyOXSLLR2Wb4jw==
+
supports-hyperlinks@^2.0.0:
version "2.3.0"
resolved "https://registry.yarnpkg.com/supports-hyperlinks/-/supports-hyperlinks-2.3.0.tgz#3943544347c1ff90b15effb03fc14ae45ec10624"
@@ -11816,7 +13784,7 @@ tar-stream@^2.1.4:
inherits "^2.0.3"
readable-stream "^3.1.1"
-tar@^6.2.0:
+tar@^6.1.11, tar@^6.1.2, tar@^6.2.0:
version "6.2.0"
resolved "https://registry.yarnpkg.com/tar/-/tar-6.2.0.tgz#b14ce49a79cb1cd23bc9b016302dea5474493f73"
integrity sha512-/Wo7DcT0u5HUV486xg675HtjNd3BXZ6xDbzsCUZPt5iw8bTQ63bP0Raut3mvro9u+CUyq7YQd8Cx55fsZXxqLQ==
@@ -11840,6 +13808,11 @@ temp-dir@^2.0.0:
resolved "https://registry.yarnpkg.com/temp-dir/-/temp-dir-2.0.0.tgz#bde92b05bdfeb1516e804c9c00ad45177f31321e"
integrity sha512-aoBAniQmmwtcKp/7BzsH8Cxzv8OL736p7v1ihGb5e9DJ9kTwGWHrQrVB5+lfVDzfGrdRzXch+ig7LHaY1JTOrg==
+temp-dir@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/temp-dir/-/temp-dir-3.0.0.tgz#7f147b42ee41234cc6ba3138cd8e8aa2302acffa"
+ integrity sha512-nHc6S/bwIilKHNRgK/3jlhDoIHcp45YgyiwcAk46Tr0LfEqGBVpmiAyuiuxeVE44m3mXnEeVhaipLOEWmH+Njw==
+
temp@^0.8.4:
version "0.8.4"
resolved "https://registry.yarnpkg.com/temp/-/temp-0.8.4.tgz#8c97a33a4770072e0a05f919396c7665a7dd59f2"
@@ -11858,6 +13831,16 @@ tempy@^1.0.1:
type-fest "^0.16.0"
unique-string "^2.0.0"
+tempy@^3.0.0:
+ version "3.1.0"
+ resolved "https://registry.yarnpkg.com/tempy/-/tempy-3.1.0.tgz#00958b6df85db8589cb595465e691852aac038e9"
+ integrity sha512-7jDLIdD2Zp0bDe5r3D2qtkd1QOCacylBuL7oa4udvN6v2pqr4+LcCr67C8DR1zkpaZ8XosF5m1yQSabKAW6f2g==
+ dependencies:
+ is-stream "^3.0.0"
+ temp-dir "^3.0.0"
+ type-fest "^2.12.2"
+ unique-string "^3.0.0"
+
terminal-link@^2.0.0:
version "2.1.1"
resolved "https://registry.yarnpkg.com/terminal-link/-/terminal-link-2.1.1.tgz#14a64a27ab3c0df933ea546fba55f2d078edc994"
@@ -11896,7 +13879,12 @@ test-exclude@^6.0.0:
glob "^7.1.4"
minimatch "^3.0.4"
-text-table@^0.2.0:
+text-extensions@^2.0.0:
+ version "2.4.0"
+ resolved "https://registry.yarnpkg.com/text-extensions/-/text-extensions-2.4.0.tgz#a1cfcc50cf34da41bfd047cc744f804d1680ea34"
+ integrity sha512-te/NtwBwfiNRLf9Ijqx3T0nlqZiQ2XrrtBvu+cLL8ZRrGkO0NHTug8MYFKyoSrv/sHTaSKfilUkizV6XhxMJ3g==
+
+text-table@^0.2.0, text-table@~0.2.0:
version "0.2.0"
resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4"
integrity sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==
@@ -11911,7 +13899,7 @@ throttleit@^1.0.0:
resolved "https://registry.yarnpkg.com/throttleit/-/throttleit-1.0.0.tgz#9e785836daf46743145a5984b6268d828528ac6c"
integrity sha512-rkTVqu6IjfQ/6+uNuuc3sZek4CEYxTJom3IktzgdSxcZqdARuebbA/f4QmAxMQIxqq9ZLEUkSYqvuk1I6VKq4g==
-through2@^2.0.3:
+through2@^2.0.3, through2@~2.0.0:
version "2.0.5"
resolved "https://registry.yarnpkg.com/through2/-/through2-2.0.5.tgz#01c1e39eb31d07cb7d03a96a70823260b23132cd"
integrity sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==
@@ -11919,7 +13907,7 @@ through2@^2.0.3:
readable-stream "~2.3.6"
xtend "~4.0.1"
-through@^2.3.8:
+"through@>=2.2.7 <3", through@^2.3.8:
version "2.3.8"
resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5"
integrity sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==
@@ -11929,6 +13917,11 @@ tiny-invariant@^1.3.1:
resolved "https://registry.yarnpkg.com/tiny-invariant/-/tiny-invariant-1.3.1.tgz#8560808c916ef02ecfd55e66090df23a4b7aa642"
integrity sha512-AD5ih2NlSssTCwsMznbvwMZpJ1cbhkGd2uueNxzv2jDlEeZdU04JQfRnggJQ8DrcVBGjAsCKwFBbDlVNtEMlzw==
+tiny-relative-date@^1.3.0:
+ version "1.3.0"
+ resolved "https://registry.yarnpkg.com/tiny-relative-date/-/tiny-relative-date-1.3.0.tgz#fa08aad501ed730f31cc043181d995c39a935e07"
+ integrity sha512-MOQHpzllWxDCHHaDno30hhLfbouoYlOI8YlMNtvKe1zXbjEVhbcEovQxvZrPvtiYW630GQDoMMarCnjfyfHA+A==
+
tmp@~0.2.1:
version "0.2.1"
resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.2.1.tgz#8457fc3037dcf4719c251367a1af6500ee1ccf14"
@@ -11985,11 +13978,21 @@ tr46@~0.0.3:
resolved "https://registry.yarnpkg.com/tr46/-/tr46-0.0.3.tgz#8184fd347dac9cdc185992f3a6622e14b9d9ab6a"
integrity sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==
+traverse@~0.6.6:
+ version "0.6.8"
+ resolved "https://registry.yarnpkg.com/traverse/-/traverse-0.6.8.tgz#5e5e0c41878b57e4b73ad2f3d1e36a715ea4ab15"
+ integrity sha512-aXJDbk6SnumuaZSANd21XAo15ucCDE38H4fkqiGsc3MhCK+wOlZvLP9cB/TvpHT0mOyWgC4Z8EwRlzqYSUzdsA==
+
tree-kill@^1.2.2:
version "1.2.2"
resolved "https://registry.yarnpkg.com/tree-kill/-/tree-kill-1.2.2.tgz#4ca09a9092c88b73a7cdc5e8a01b507b0790a0cc"
integrity sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==
+treeverse@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/treeverse/-/treeverse-3.0.0.tgz#dd82de9eb602115c6ebd77a574aae67003cb48c8"
+ integrity sha512-gcANaAnd2QDZFmHFEOF4k7uc1J/6a6z3DJMd/QwEyxLoKGiptJRwid582r7QIsFlFMIZ3SnxfS52S4hm2DHkuQ==
+
trim-newlines@^3.0.0:
version "3.0.1"
resolved "https://registry.yarnpkg.com/trim-newlines/-/trim-newlines-3.0.1.tgz#260a5d962d8b752425b32f3a7db0dcacd176c144"
@@ -12073,6 +14076,15 @@ tsutils@^3.21.0:
dependencies:
tslib "^1.8.1"
+tuf-js@^2.2.0:
+ version "2.2.0"
+ resolved "https://registry.yarnpkg.com/tuf-js/-/tuf-js-2.2.0.tgz#4daaa8620ba7545501d04dfa933c98abbcc959b9"
+ integrity sha512-ZSDngmP1z6zw+FIkIBjvOp/II/mIub/O7Pp12j1WNsiCpg5R5wAc//i555bBQsE44O94btLt0xM/Zr2LQjwdCg==
+ dependencies:
+ "@tufjs/models" "2.0.0"
+ debug "^4.3.4"
+ make-fetch-happen "^13.0.0"
+
tunnel-agent@^0.6.0:
version "0.6.0"
resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.6.0.tgz#27a5dea06b36b04a0a9966774b290868f0fc40fd"
@@ -12137,11 +14149,21 @@ type-fest@^1.0.1, type-fest@^1.2.1, type-fest@^1.2.2:
resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-1.4.0.tgz#e9fb813fe3bf1744ec359d55d1affefa76f14be1"
integrity sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA==
-type-fest@^2.19.0, type-fest@~2.19:
+type-fest@^2.12.2, type-fest@^2.19.0, type-fest@~2.19:
version "2.19.0"
resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-2.19.0.tgz#88068015bb33036a598b952e55e9311a60fd3a9b"
integrity sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==
+type-fest@^3.0.0:
+ version "3.13.1"
+ resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-3.13.1.tgz#bb744c1f0678bea7543a2d1ec24e83e68e8c8706"
+ integrity sha512-tLq3bSNx+xSpwvAJnzrK0Ep5CLNWjvFTOp71URMaAEWBfRb9nnJiBoUe0tF8bI4ZFO3omgBR6NvnbzVUT3Ly4g==
+
+type-fest@^4.6.0, type-fest@^4.7.1:
+ version "4.10.0"
+ resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-4.10.0.tgz#30e6d2648fecb67c296d0de31b32d156e501c38d"
+ integrity sha512-NPaKJsb4wyJ16qc8zBQrWswLKv/YirgBFykvUQ1Iajt2wd+twC8E4hFXdlIXqiMl6kWA0zY8tUJ9ELVAdu5h7w==
+
type-is@~1.6.18:
version "1.6.18"
resolved "https://registry.yarnpkg.com/type-is/-/type-is-1.6.18.tgz#4e552cd05df09467dcbc4ef739de89f2cf37c131"
@@ -12241,6 +14263,11 @@ unicode-canonical-property-names-ecmascript@^2.0.0:
resolved "https://registry.yarnpkg.com/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz#301acdc525631670d39f6146e0e77ff6bbdebddc"
integrity sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==
+unicode-emoji-modifier-base@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/unicode-emoji-modifier-base/-/unicode-emoji-modifier-base-1.0.0.tgz#dbbd5b54ba30f287e2a8d5a249da6c0cef369459"
+ integrity sha512-yLSH4py7oFH3oG/9K+XWrz1pSi3dfUrWEnInbxMfArOfc1+33BlGPQtLsOYwvdMy11AwUBetYuaRxSPqgkq+8g==
+
unicode-match-property-ecmascript@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz#54fd16e0ecb167cf04cf1f756bdcc92eba7976c3"
@@ -12259,6 +14286,11 @@ unicode-property-aliases-ecmascript@^2.0.0:
resolved "https://registry.yarnpkg.com/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.1.0.tgz#43d41e3be698bd493ef911077c9b131f827e8ccd"
integrity sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==
+unicorn-magic@^0.1.0:
+ version "0.1.0"
+ resolved "https://registry.yarnpkg.com/unicorn-magic/-/unicorn-magic-0.1.0.tgz#1bb9a51c823aaf9d73a8bfcd3d1a23dde94b0ce4"
+ integrity sha512-lRfVq8fE8gz6QMBuDM6a+LO3IAzTi05H6gCVaUpir2E1Rwpo4ZUog45KpNXKC/Mn3Yb9UDuHumeFTo9iV/D9FQ==
+
unified@^10.0.0:
version "10.1.2"
resolved "https://registry.yarnpkg.com/unified/-/unified-10.1.2.tgz#b1d64e55dafe1f0b98bb6c719881103ecf6c86df"
@@ -12272,6 +14304,20 @@ unified@^10.0.0:
trough "^2.0.0"
vfile "^5.0.0"
+unique-filename@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/unique-filename/-/unique-filename-3.0.0.tgz#48ba7a5a16849f5080d26c760c86cf5cf05770ea"
+ integrity sha512-afXhuC55wkAmZ0P18QsVE6kp8JaxrEokN2HGIoIVv2ijHQd419H0+6EigAFcIzXeMIkcIkNBpB3L/DXB3cTS/g==
+ dependencies:
+ unique-slug "^4.0.0"
+
+unique-slug@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/unique-slug/-/unique-slug-4.0.0.tgz#6bae6bb16be91351badd24cdce741f892a6532e3"
+ integrity sha512-WrcA6AyEfqDX5bWige/4NQfPZMtASNVxdmWR76WESYQVAACSgWcR6e9i0mofqqBxYFtL4oAxPIptY73/0YE1DQ==
+ dependencies:
+ imurmurhash "^0.1.4"
+
unique-string@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/unique-string/-/unique-string-2.0.0.tgz#39c6451f81afb2749de2b233e3f7c5e8843bd89d"
@@ -12279,6 +14325,13 @@ unique-string@^2.0.0:
dependencies:
crypto-random-string "^2.0.0"
+unique-string@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/unique-string/-/unique-string-3.0.0.tgz#84a1c377aff5fd7a8bc6b55d8244b2bd90d75b9a"
+ integrity sha512-VGXBUVwxKMBUznyffQweQABPRRW1vHZAbadFZud4pLFAqRGvv/96vafgjWFqzourzr8YonlQiPgH0YCJfawoGQ==
+ dependencies:
+ crypto-random-string "^4.0.0"
+
unist-util-is@^4.0.0:
version "4.1.0"
resolved "https://registry.yarnpkg.com/unist-util-is/-/unist-util-is-4.1.0.tgz#976e5f462a7a5de73d94b706bac1b90671b57797"
@@ -12332,6 +14385,11 @@ unist-util-visit@^4.0.0:
unist-util-is "^5.0.0"
unist-util-visit-parents "^5.1.1"
+universal-user-agent@^6.0.0:
+ version "6.0.1"
+ resolved "https://registry.yarnpkg.com/universal-user-agent/-/universal-user-agent-6.0.1.tgz#15f20f55da3c930c57bddbf1734c6654d5fd35aa"
+ integrity sha512-yCzhz6FN2wU1NiiQRogkTQszlQSlpWaw8SvVegAc+bDxbzHgh1vX8uIe8OYyMH6DwH+sdTJsgMl36+mSMdRJIQ==
+
universalify@^0.2.0:
version "0.2.0"
resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.2.0.tgz#6451760566fa857534745ab1dde952d1b1761be0"
@@ -12377,6 +14435,11 @@ uri-js@^4.2.2:
dependencies:
punycode "^2.1.0"
+url-join@^5.0.0:
+ version "5.0.0"
+ resolved "https://registry.yarnpkg.com/url-join/-/url-join-5.0.0.tgz#c2f1e5cbd95fa91082a93b58a1f42fecb4bdbcf1"
+ integrity sha512-n2huDr9h9yzd6exQVnH/jU5mr+Pfx08LRXXZhkLLetAMESRj+anQsTAh940iMrIetKAmry9coFuZQ2jY8/p3WA==
+
url-parse@^1.5.3:
version "1.5.10"
resolved "https://registry.yarnpkg.com/url-parse/-/url-parse-1.5.10.tgz#9d3c2f736c1d75dd3bd2be507dcc111f1e2ea9c1"
@@ -12480,7 +14543,7 @@ v8-to-istanbul@^8.1.0:
convert-source-map "^1.6.0"
source-map "^0.7.3"
-validate-npm-package-license@^3.0.1:
+validate-npm-package-license@^3.0.1, validate-npm-package-license@^3.0.4:
version "3.0.4"
resolved "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz#fc91f6b9c7ba15c857f4cb2c5defeec39d4f410a"
integrity sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==
@@ -12488,6 +14551,13 @@ validate-npm-package-license@^3.0.1:
spdx-correct "^3.0.0"
spdx-expression-parse "^3.0.0"
+validate-npm-package-name@^5.0.0:
+ version "5.0.0"
+ resolved "https://registry.yarnpkg.com/validate-npm-package-name/-/validate-npm-package-name-5.0.0.tgz#f16afd48318e6f90a1ec101377fa0384cfc8c713"
+ integrity sha512-YuKoXDAhBYxY7SfOKxHBDoSyENFeW5VvIIQp2TGQuit8gpK6MnWaQelBKxso72DoxTZfZdcP3W90LqpSkgPzLQ==
+ dependencies:
+ builtins "^5.0.0"
+
vanilla-framework@4.6.0:
version "4.6.0"
resolved "https://registry.yarnpkg.com/vanilla-framework/-/vanilla-framework-4.6.0.tgz#61b93a2197eed0d869f85e1014dd9e67bacc355e"
@@ -12550,6 +14620,11 @@ wait-on@5.3.0:
minimist "^1.2.5"
rxjs "^6.6.3"
+walk-up-path@^3.0.1:
+ version "3.0.1"
+ resolved "https://registry.yarnpkg.com/walk-up-path/-/walk-up-path-3.0.1.tgz#c8d78d5375b4966c717eb17ada73dbd41490e886"
+ integrity sha512-9YlCL/ynK3CTlrSRrDxZvUauLzAswPCrsaCgilqFevUYpeEW0/3ScEjaa3kbW/T0ghhkEr7mv+fpjqn1Y1YuTA==
+
walker@^1.0.7, walker@^1.0.8:
version "1.0.8"
resolved "https://registry.yarnpkg.com/walker/-/walker-1.0.8.tgz#bd498db477afe573dc04185f011d3ab8a8d7653f"
@@ -12565,7 +14640,7 @@ watchpack@^2.2.0, watchpack@^2.4.0:
glob-to-regexp "^0.4.1"
graceful-fs "^4.1.2"
-wcwidth@^1.0.1:
+wcwidth@^1.0.0, wcwidth@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/wcwidth/-/wcwidth-1.0.1.tgz#f0b0dcf915bc5ff1528afadb2c0e17b532da2fe8"
integrity sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==
@@ -12750,6 +14825,20 @@ which@^2.0.1, which@^2.0.2:
dependencies:
isexe "^2.0.0"
+which@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/which/-/which-4.0.0.tgz#cd60b5e74503a3fbcfbf6cd6b4138a8bae644c1a"
+ integrity sha512-GlaYyEb07DPxYCKhKzplCWBJtvxZcZMrL+4UkrTSJHHPyZU4mYYTv3qaOe77H7EODLSSopAUFAc6W8U4yqvscg==
+ dependencies:
+ isexe "^3.1.1"
+
+wide-align@^1.1.5:
+ version "1.1.5"
+ resolved "https://registry.yarnpkg.com/wide-align/-/wide-align-1.1.5.tgz#df1d4c206854369ecf3c9a4898f1b23fbd9d15d3"
+ integrity sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==
+ dependencies:
+ string-width "^1.0.2 || 2 || 3 || 4"
+
wordwrap@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-1.0.0.tgz#27584810891456a4171c8d0226441ade90cbcaeb"
@@ -12815,7 +14904,7 @@ write-file-atomic@^4.0.2:
imurmurhash "^0.1.4"
signal-exit "^3.0.7"
-write-file-atomic@^5.0.1:
+write-file-atomic@^5.0.0, write-file-atomic@^5.0.1:
version "5.0.1"
resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-5.0.1.tgz#68df4717c55c6fa4281a7860b4c2ba0a6d2b11e7"
integrity sha512-+QU2zd6OTD8XWIJCbffaiQeH9U73qIqafo1x6V1snCWYGJf6cVE0cDR4D8xRzcEnfI21IFrUPzPGtcPf8AC+Rw==
@@ -12911,7 +15000,7 @@ yargs@^16.2.0:
y18n "^5.0.5"
yargs-parser "^20.2.2"
-yargs@^17.7.2:
+yargs@^17.5.1, yargs@^17.7.2:
version "17.7.2"
resolved "https://registry.yarnpkg.com/yargs/-/yargs-17.7.2.tgz#991df39aca675a192b816e1e0363f9d75d2aa269"
integrity sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==
From ab4e6834cc9cfcaa63c237d51741431e6fd3f013 Mon Sep 17 00:00:00 2001
From: Peter Makowski
Date: Wed, 24 Jan 2024 09:52:30 +0100
Subject: [PATCH 15/24] ci: add release workflow
---
.github/release-drafter.yml | 18 ------------------
.github/workflows/release.yml | 36 +++++++++++++++++++++++++++++++++++
2 files changed, 36 insertions(+), 18 deletions(-)
delete mode 100644 .github/release-drafter.yml
create mode 100644 .github/workflows/release.yml
diff --git a/.github/release-drafter.yml b/.github/release-drafter.yml
deleted file mode 100644
index f2a886a62..000000000
--- a/.github/release-drafter.yml
+++ /dev/null
@@ -1,18 +0,0 @@
-name-template: "v$NEXT_PATCH_VERSION"
-tag-template: "v$NEXT_PATCH_VERSION"
-categories:
- - title: "🚀 Features"
- label: "Feature 🎁"
- - title: "💣 Breaking Change"
- label: "Breaking Change 💣"
- - title: "🐛 Bug Fixes"
- label: "Bug 🐛"
- - title: "📝 Documentation"
- label: "Documentation 📖"
- - title: "🔨 Maintenance"
- label: "Maintenance 🔨"
-change-template: "- $TITLE (#$NUMBER)"
-template: |
- ## v$NEXT_PATCH_VERSION
-
- $CHANGES
diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml
new file mode 100644
index 000000000..1d211a347
--- /dev/null
+++ b/.github/workflows/release.yml
@@ -0,0 +1,36 @@
+name: Release
+on:
+ push:
+ branches:
+ - main
+
+permissions:
+ contents: read # for checkout
+
+jobs:
+ release:
+ name: Release
+ runs-on: ubuntu-latest
+ permissions:
+ contents: write # to be able to publish a GitHub release
+ issues: write # to be able to comment on released issues
+ pull-requests: write # to be able to comment on released pull requests
+ id-token: write # to enable use of OIDC for npm provenance
+ steps:
+ - name: Checkout
+ uses: actions/checkout@v3
+ with:
+ fetch-depth: 0
+ - name: Setup Node.js
+ uses: actions/setup-node@v3
+ with:
+ node-version: "lts/*"
+ - name: Install dependencies
+ run: yarn install
+ - name: Build
+ run: yarn build
+ - name: Release
+ env:
+ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
+ NPM_TOKEN: ${{ secrets.NPM_TOKEN }}
+ run: npx semantic-release
From dfdc3c53072fea72f024226312f09d92edeef268 Mon Sep 17 00:00:00 2001
From: Peter Makowski
Date: Wed, 24 Jan 2024 10:04:09 +0100
Subject: [PATCH 16/24] remove redundant permissions - update actions versions
---
.github/workflows/release.yml | 7 ++-----
1 file changed, 2 insertions(+), 5 deletions(-)
diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml
index 1d211a347..8c101546a 100644
--- a/.github/workflows/release.yml
+++ b/.github/workflows/release.yml
@@ -4,9 +4,6 @@ on:
branches:
- main
-permissions:
- contents: read # for checkout
-
jobs:
release:
name: Release
@@ -18,11 +15,11 @@ jobs:
id-token: write # to enable use of OIDC for npm provenance
steps:
- name: Checkout
- uses: actions/checkout@v3
+ uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Setup Node.js
- uses: actions/setup-node@v3
+ uses: actions/setup-node@v4
with:
node-version: "lts/*"
- name: Install dependencies
From 578fb16ce819cf0562f3d38f59e00af4f68dab31 Mon Sep 17 00:00:00 2001
From: mas-who <151511568+mas-who@users.noreply.github.com>
Date: Wed, 24 Jan 2024 12:19:51 +0200
Subject: [PATCH 17/24] fix: resolve issue with publish doc workflow (#1026)
Signed-off-by: Mason Hu
---
.github/workflows/publish-docs.yml | 10 +++++++---
1 file changed, 7 insertions(+), 3 deletions(-)
diff --git a/.github/workflows/publish-docs.yml b/.github/workflows/publish-docs.yml
index 8dac5aaaf..300dbc4a1 100644
--- a/.github/workflows/publish-docs.yml
+++ b/.github/workflows/publish-docs.yml
@@ -14,13 +14,17 @@ jobs:
uses: actions/checkout@v4
- name: Setup Pages
id: pages
- uses: actions/configure-pages@v3
+ uses: actions/configure-pages@v4
+ - name: Use Node.js
+ uses: actions/setup-node@v4
+ with:
+ node-version: "lts/*"
- name: Install dependencies
run: yarn install
- name: Build Storybook
run: yarn build-docs
- name: Upload artifact
- uses: actions/upload-pages-artifact@v2
+ uses: actions/upload-pages-artifact@v3
with:
path: "./docs"
publish-docs:
@@ -37,4 +41,4 @@ jobs:
steps:
- name: Deploy to GitHub Pages
id: deployment
- uses: actions/deploy-pages@v2
+ uses: actions/deploy-pages@v4
From df90f5ee02b962bae512feea461431a45a65c298 Mon Sep 17 00:00:00 2001
From: Peter Makowski
Date: Wed, 24 Jan 2024 11:58:18 +0100
Subject: [PATCH 18/24] docs: remove cypress badge
Remove separate Cypress badge as cypress is part of a single CI workflow.
---
README.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/README.md b/README.md
index 546cdf159..0156cdd36 100644
--- a/README.md
+++ b/README.md
@@ -1,5 +1,5 @@
# React components for Vanilla Framework
-![CI](https://github.com/canonical/react-components/workflows/CI/badge.svg?branch=main) ![Cypress chrome headless](https://github.com/canonical/react-components/workflows/Cypress%20chrome%20headless/badge.svg)
+![CI](https://github.com/canonical/react-components/workflows/CI/badge.svg?branch=main)
This is a collection of components designed to be the way to consume [Vanilla Framework](http://vanillaframework.io) when using React.
From 1b8389fb408c5e2ec95c3cd0e86e60c918ab9bf4 Mon Sep 17 00:00:00 2001
From: Mason Hu
Date: Tue, 23 Jan 2024 15:47:13 +0200
Subject: [PATCH 19/24] chore(dep): incremental update dependencies flagged by
renovate
- Upgraded wait-on from 5.3.0 -> 7.2.0. Affects cypress testing.
- Upgraded typescript from 4.9.5 -> 5.3.3. Affects build script.
- Upgraded @typescript-eslint/eslint-plugin from 5.62.0 -> 6.19.1. Affects lint-js.
- Upgraded @typescript-eslint/parser from 5.62.0 -> 6.19.1. Affects lint-js.
- Upgraded ts-jest from 27.1.5 -> 29.1.2. Affects tests.
- Upgraded stylelint from 15.11.0 -> 16.2.0. Affects lint-style.
- Upgraded stylelint-config-recommended-scss from 5.0.2 -> 14.0.0. Affects lint-style.
- Upgraded stylelint-order from 5.0.0 -> 6.0.4. Affects lint-style.
- Upgraded stylelint from 2.0.0 -> 5.0.0. Affects lint-style.
- Upgraded prettier from 2.8.8 -> 3.2.4. Affects lint-js.
- Upgraded eslint-config-prettier from 8.10.0 -> 9.1.0. Affects lint-js.
- Upgraded eslint-plugin-prettier from 4.2.1 -> 5.1.3. Affects lint-js.
- Upgraded eslint-plugin-testing-library from 5.11.1 -> 6.2.0. Affects lint-js.
- Upgraded @percy/storybook from 4.3.7 -> 5.0.1. Affects testing.
- Upgraded @testing-library/cypress from 9.0.0 -> 10.0.1. Affects testing.
- Upgraded @testing-library/jest-dom from 5.17.0 -> 6.2.1. Affects testing.
- Upgraded babel-jest from 27.5.1 -> 29.7.0. Affects testing.
- Upgraded cypress from 12.17.4 -> 13.6.3. Affects testing.
- Upgraded jest from 27.5.1 -> 29.7.0. Affects testing.
- Upgraded npm-package-json-lint from 5.4.2 -> 7.1.0. Affects lint.
- Upgraded sass-loader from 10.5.1 -> 14.0.0. Affects build.
- Upgraded @types/jest from 27.5.2 -> 29.5.11. Affects build.
- Upgraded nanoid from 3.3.7 -> 5.0.4. Affects build.
- Added jest-environment-jsdom, this is needed for jest upgrade (jest-environment-jsdom no longer ship with jest since v28)
- use node lts in test github workflow
- updated github action dependencies
- updated Docerfile base node image version to 21
- removed dependency resolution for string-width and strip-ansi and fixed resolution for jackspeak to 2.1.1.
Signed-off-by: Mason Hu
---
.eslintrc.js | 4 +-
.github/workflows/labeler.yaml | 2 +-
.github/workflows/test.yaml | 6 +-
.stylelintrc.json | 2 +-
Dockerfile | 4 +-
package.json | 52 +-
.../ActionButton/ActionButton.test.tsx | 2 +-
.../ContextualMenuDropdown.test.tsx | 2 +-
.../Notification/Notification.test.tsx | 2 +-
.../TablePagination/TablePagination.test.tsx | 10 +-
.../TablePaginationControls.test.tsx.snap | 2 +-
src/components/Tooltip/Tooltip.test.tsx | 2 +-
src/hooks/useThrottle.test.ts | 2 +-
src/hooks/useWindowFitment.test.ts | 4 +-
src/types/react-table-config.d.ts | 4 +-
yarn.lock | 2112 ++++++++---------
16 files changed, 1041 insertions(+), 1171 deletions(-)
diff --git a/.eslintrc.js b/.eslintrc.js
index 97bb37878..cf67b0050 100644
--- a/.eslintrc.js
+++ b/.eslintrc.js
@@ -14,7 +14,7 @@ module.exports = {
sourceType: "module",
},
rules: {
- "prettier/prettier": "error",
+ "prettier/prettier": ["error", { trailingComma: "es5" }],
"react/forbid-component-props": [
"error",
{
@@ -73,7 +73,7 @@ module.exports = {
rules: {
"testing-library/no-node-access": "warn",
"testing-library/no-container": "warn",
- "testing-library/no-render-in-setup": "warn",
+ "testing-library/no-render-in-lifecycle": "warn",
},
},
],
diff --git a/.github/workflows/labeler.yaml b/.github/workflows/labeler.yaml
index c401d32ee..92684f65c 100644
--- a/.github/workflows/labeler.yaml
+++ b/.github/workflows/labeler.yaml
@@ -6,6 +6,6 @@ jobs:
triage:
runs-on: ubuntu-latest
steps:
- - uses: actions/labeler@v4
+ - uses: actions/labeler@v5
with:
repo-token: "${{ secrets.GITHUB_TOKEN }}"
diff --git a/.github/workflows/test.yaml b/.github/workflows/test.yaml
index cd5db2c32..937fa07ac 100644
--- a/.github/workflows/test.yaml
+++ b/.github/workflows/test.yaml
@@ -14,7 +14,7 @@ jobs:
- uses: actions/checkout@v4
- name: Use Node.js
- uses: actions/setup-node@v3
+ uses: actions/setup-node@v4
with:
node-version: "lts/*"
@@ -47,12 +47,12 @@ jobs:
wait-on: "http://localhost:9009"
browser: chrome
env: port=9009
- - uses: actions/upload-artifact@v3
+ - uses: actions/upload-artifact@v4
if: failure()
with:
name: cypress-screenshots
path: cypress/screenshots
- - uses: actions/upload-artifact@v3
+ - uses: actions/upload-artifact@v4
if: failure()
with:
name: cypress-videos
diff --git a/.stylelintrc.json b/.stylelintrc.json
index 3151408ca..1f85f3be4 100644
--- a/.stylelintrc.json
+++ b/.stylelintrc.json
@@ -21,7 +21,7 @@
"scss/at-rule-no-unknown": true,
"scss/at-extend-no-missing-placeholder": true,
- "scss/at-import-no-partial-leading-underscore": true,
+ "scss/load-no-partial-leading-underscore": true,
"scss/at-import-partial-extension": "never",
"order/properties-alphabetical-order": true,
diff --git a/Dockerfile b/Dockerfile
index ddd357c66..c7cd021a2 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -2,7 +2,7 @@
# Build stage: Install yarn dependencies
# ===
-FROM node:18 AS yarn-dependencies
+FROM node:20 AS yarn-dependencies
WORKDIR /srv
ADD package.json .
ADD yarn.lock .
@@ -19,7 +19,7 @@ RUN yarn run build-docs
# Build the production image
# ===
-FROM ubuntu:focal
+FROM ubuntu:jammy
# Set up environment
ENV LANG C.UTF-8
diff --git a/package.json b/package.json
index f1de33aa9..9cd1638f0 100644
--- a/package.json
+++ b/package.json
@@ -26,7 +26,7 @@
"@babel/eslint-parser": "7.23.3",
"@babel/preset-typescript": "7.23.3",
"@percy/cli": "1.27.6",
- "@percy/storybook": "4.3.7",
+ "@percy/storybook": "5.0.1",
"@semantic-release/changelog": "6.0.3",
"@semantic-release/git": "10.0.1",
"@storybook/addon-a11y": "7.6.7",
@@ -38,64 +38,65 @@
"@storybook/blocks": "7.6.7",
"@storybook/react": "7.6.7",
"@storybook/react-webpack5": "7.6.7",
- "@testing-library/cypress": "9.0.0",
+ "@testing-library/cypress": "10.0.1",
"@testing-library/dom": "9.3.3",
- "@testing-library/jest-dom": "5.17.0",
+ "@testing-library/jest-dom": "6.2.1",
"@testing-library/react": "14.1.2",
"@testing-library/user-event": "14.5.2",
- "@typescript-eslint/eslint-plugin": "5.62.0",
- "@typescript-eslint/parser": "5.62.0",
- "babel-jest": "27.5.1",
+ "@typescript-eslint/eslint-plugin": "6.19.1",
+ "@typescript-eslint/parser": "6.19.1",
+ "babel-jest": "29.7.0",
"babel-loader": "9.1.3",
"babel-plugin-module-resolver": "5.0.0",
"babel-plugin-typescript-to-proptypes": "2.1.0",
"concurrently": "8.2.2",
"css-loader": "6.8.1",
- "cypress": "12.17.4",
+ "cypress": "13.6.3",
"deepmerge": "4.3.1",
"eslint": "8.56.0",
- "eslint-config-prettier": "8.10.0",
+ "eslint-config-prettier": "9.1.0",
"eslint-config-react-app": "7.0.1",
"eslint-plugin-cypress": "2.15.1",
"eslint-plugin-flowtype": "8.0.3",
"eslint-plugin-import": "2.29.1",
"eslint-plugin-jsx-a11y": "6.8.0",
- "eslint-plugin-prettier": "4.2.1",
+ "eslint-plugin-prettier": "5.1.3",
"eslint-plugin-react": "7.33.2",
"eslint-plugin-react-hooks": "4.6.0",
"eslint-plugin-storybook": "0.6.15",
- "eslint-plugin-testing-library": "5.11.1",
- "jest": "27.5.1",
- "npm-package-json-lint": "5.4.2",
- "prettier": "2.8.8",
+ "eslint-plugin-testing-library": "6.2.0",
+ "jest": "29.7.0",
+ "npm-package-json-lint": "7.1.0",
+ "prettier": "3.2.4",
"react": "18.2.0",
"react-docgen-typescript-loader": "3.7.2",
"react-dom": "18.2.0",
"sass": "1.69.7",
- "sass-loader": "10.5.1",
+ "sass-loader": "14.0.0",
"semantic-release": "23.0.0",
"storybook": "7.6.7",
"style-loader": "3.3.3",
- "stylelint": "15.11.0",
+ "stylelint": "16.2.0",
"stylelint-config-prettier": "9.0.5",
- "stylelint-config-recommended-scss": "5.0.2",
- "stylelint-order": "5.0.0",
- "stylelint-prettier": "2.0.0",
- "ts-jest": "27.1.5",
+ "stylelint-config-recommended-scss": "14.0.0",
+ "stylelint-order": "6.0.4",
+ "stylelint-prettier": "5.0.0",
+ "ts-jest": "29.1.2",
"tsc-alias": "1.8.8",
- "typescript": "4.9.5",
+ "typescript": "5.3.3",
"vanilla-framework": "4.6.0",
- "wait-on": "5.3.0",
+ "wait-on": "7.2.0",
"webpack": "5.89.0"
},
"dependencies": {
- "@types/jest": "27.5.2",
+ "@types/jest": "29.5.11",
"@types/node": "18.19.4",
"@types/react": "18.2.46",
"@types/react-dom": "18.2.18",
"@types/react-table": "7.7.19",
"classnames": "2.5.1",
- "nanoid": "3.3.7",
+ "jest-environment-jsdom": "29.7.0",
+ "nanoid": "5.0.4",
"prop-types": "15.8.1",
"react-table": "7.8.0",
"react-useportal": "1.0.19"
@@ -104,10 +105,7 @@
"@types/react": "18.2.46",
"@types/react-dom": "18.2.18",
"postcss": "^8.3.11",
- "string-width": "^4",
- "jackspeak": "^2",
- "strip-ansi": "^6.0.0",
- "strip-ansi-cjs": "^8.0.0"
+ "jackspeak": "2.1.1"
},
"peerDependencies": {
"@types/react": "^17.0.2 || ^18.0.0",
diff --git a/src/components/ActionButton/ActionButton.test.tsx b/src/components/ActionButton/ActionButton.test.tsx
index 3f4018057..d4748d474 100644
--- a/src/components/ActionButton/ActionButton.test.tsx
+++ b/src/components/ActionButton/ActionButton.test.tsx
@@ -9,7 +9,7 @@ import ActionButton, {
import { act } from "react-dom/test-utils";
describe("ActionButton", () => {
- jest.useFakeTimers("modern");
+ jest.useFakeTimers();
it("matches loading snapshot", () => {
render(Click me);
diff --git a/src/components/ContextualMenu/ContextualMenuDropdown/ContextualMenuDropdown.test.tsx b/src/components/ContextualMenu/ContextualMenuDropdown/ContextualMenuDropdown.test.tsx
index 101cc7b5a..837b61c9f 100644
--- a/src/components/ContextualMenu/ContextualMenuDropdown/ContextualMenuDropdown.test.tsx
+++ b/src/components/ContextualMenu/ContextualMenuDropdown/ContextualMenuDropdown.test.tsx
@@ -6,7 +6,7 @@ import ContextualMenuDropdown, {
adjustForWindow,
} from "./ContextualMenuDropdown";
-jest.useFakeTimers("modern");
+jest.useFakeTimers();
describe("ContextualMenuDropdown ", () => {
it("renders", () => {
diff --git a/src/components/Notification/Notification.test.tsx b/src/components/Notification/Notification.test.tsx
index a06f32997..424c84450 100644
--- a/src/components/Notification/Notification.test.tsx
+++ b/src/components/Notification/Notification.test.tsx
@@ -6,7 +6,7 @@ import userEvent from "@testing-library/user-event";
describe("Notification", () => {
beforeEach(() => {
- jest.useFakeTimers("modern");
+ jest.useFakeTimers();
});
it("renders", () => {
diff --git a/src/components/TablePagination/TablePagination.test.tsx b/src/components/TablePagination/TablePagination.test.tsx
index 6093dbee1..225b5faf7 100644
--- a/src/components/TablePagination/TablePagination.test.tsx
+++ b/src/components/TablePagination/TablePagination.test.tsx
@@ -37,22 +37,22 @@ describe("", () => {
);
});
- it("has correct per page setting when changed", () => {
+ it("has correct per page setting when changed", async () => {
render();
expect(screen.getByRole("navigation")).toHaveTextContent("2/page");
- userEvent.selectOptions(
+ await userEvent.selectOptions(
screen.getByRole("combobox", { name: "Items per page" }),
"5"
);
expect(screen.getByRole("navigation")).toHaveTextContent("5/page");
});
- it("resets to first page when page size is changed", () => {
+ it("resets to first page when page size is changed", async () => {
render();
expect(screen.getByRole("navigation")).toHaveTextContent("2/page");
- userEvent.selectOptions(
+ await userEvent.selectOptions(
screen.getByRole("combobox", { name: "Items per page" }),
"5"
);
@@ -80,7 +80,7 @@ describe("", () => {
expect(currentPageInput).toHaveValue(2);
await userEvent.selectOptions(pageSizeSelector, "2");
expect(currentPageInput).toHaveValue(1);
- await fireEvent.change(currentPageInput, { target: { value: 3 } });
+ fireEvent.change(currentPageInput, { target: { value: 3 } });
expect(currentPageInput).toHaveValue(3);
await userEvent.click(incButton);
expect(currentPageInput).toHaveValue(3);
diff --git a/src/components/TablePagination/TablePaginationControls/__snapshots__/TablePaginationControls.test.tsx.snap b/src/components/TablePagination/TablePaginationControls/__snapshots__/TablePaginationControls.test.tsx.snap
index 3fc41511a..eb5609f2a 100644
--- a/src/components/TablePagination/TablePaginationControls/__snapshots__/TablePaginationControls.test.tsx.snap
+++ b/src/components/TablePagination/TablePaginationControls/__snapshots__/TablePaginationControls.test.tsx.snap
@@ -1,7 +1,7 @@
// Jest Snapshot v1, https://goo.gl/fbAQLP
exports[` renders table pagination controls and matches the snapshot 1`] = `
-Array [
+[
)}
+
);
diff --git a/src/components/ContextualMenu/ContextualMenuDropdown/ContextualMenuDropdown.tsx b/src/components/ContextualMenu/ContextualMenuDropdown/ContextualMenuDropdown.tsx
index 5c71191f3..5e6420bee 100644
--- a/src/components/ContextualMenu/ContextualMenuDropdown/ContextualMenuDropdown.tsx
+++ b/src/components/ContextualMenu/ContextualMenuDropdown/ContextualMenuDropdown.tsx
@@ -24,6 +24,7 @@ export enum Label {
export type MenuLink = string | ButtonProps | ButtonProps[];
export type Position = "left" | "center" | "right";
+type VerticalPosition = "top" | "bottom";
/**
* The props for the ContextualMenuDropdown component.
@@ -55,6 +56,7 @@ export type Props = {
*/
const getPositionStyle = (
position: Position,
+ verticalPosition: VerticalPosition,
positionCoords: Props["positionCoords"],
constrainPanelWidth: Props["constrainPanelWidth"]
): React.CSSProperties => {
@@ -62,7 +64,10 @@ const getPositionStyle = (
return null;
}
const { height, left, top, width } = positionCoords;
- const topPos = top + height + (window.scrollY || 0);
+ const topPos =
+ verticalPosition === "bottom"
+ ? top + height + (window.scrollY || 0)
+ : top + (window.scrollY || 0);
let leftPos = left;
switch (position) {
@@ -161,6 +166,23 @@ const generateLink = (
);
};
+const getClosestScrollableParent = (
+ node: HTMLElement | null
+): HTMLElement | null => {
+ let currentNode = node;
+ while (currentNode && currentNode !== document.body) {
+ const { overflowY, overflowX } = window.getComputedStyle(currentNode);
+ if (
+ ["auto", "scroll", "overlay"].includes(overflowY) &&
+ ["auto", "scroll", "overlay"].includes(overflowX)
+ ) {
+ return currentNode;
+ }
+ currentNode = currentNode.parentElement;
+ }
+ return document.body;
+};
+
const ContextualMenuDropdown = ({
adjustedPosition,
autoAdjust,
@@ -180,30 +202,74 @@ const ContextualMenuDropdown = ({
...props
}: Props): JSX.Element => {
const dropdown = useRef();
-
+ const [verticalPosition, setVerticalPosition] =
+ useState("bottom");
const [positionStyle, setPositionStyle] = useState(
- getPositionStyle(adjustedPosition, positionCoords, constrainPanelWidth)
+ getPositionStyle(
+ adjustedPosition,
+ verticalPosition,
+ positionCoords,
+ constrainPanelWidth
+ )
);
const [maxHeight, setMaxHeight] = useState();
-
// Update the styles to position the menu.
const updatePositionStyle = useCallback(() => {
setPositionStyle(
- getPositionStyle(adjustedPosition, positionCoords, constrainPanelWidth)
+ getPositionStyle(
+ adjustedPosition,
+ verticalPosition,
+ positionCoords,
+ constrainPanelWidth
+ )
);
- }, [adjustedPosition, positionCoords, constrainPanelWidth]);
+ }, [adjustedPosition, positionCoords, verticalPosition, constrainPanelWidth]);
+
+ const updateVerticalPosition = useCallback(() => {
+ if (!positionNode) {
+ return null;
+ }
+ const scrollableParent = getClosestScrollableParent(positionNode);
+ if (!scrollableParent) {
+ return null;
+ }
+ const scrollableParentRect = scrollableParent.getBoundingClientRect();
+ const rect = positionNode.getBoundingClientRect();
+
+ // Calculate the rect in relation to the scrollableParent
+ const relativeRect = {
+ top: rect.top - scrollableParentRect.top,
+ bottom: rect.bottom - scrollableParentRect.top,
+ height: rect.height,
+ };
+
+ const spaceBelow = scrollableParentRect.height - relativeRect.bottom;
+ const spaceAbove = relativeRect.top;
+ const dropdownHeight = relativeRect.height;
+
+ setVerticalPosition(
+ spaceBelow >= dropdownHeight || spaceBelow > spaceAbove ? "bottom" : "top"
+ );
+ }, [positionNode]);
// Update the position when the window fitment info changes.
const onUpdateWindowFitment = useCallback(
(fitsWindow: WindowFitment) => {
if (autoAdjust) {
setAdjustedPosition(adjustForWindow(position, fitsWindow));
+ updateVerticalPosition();
}
if (scrollOverflow) {
setMaxHeight(fitsWindow.fromBottom.spaceBelow - 16);
}
},
- [autoAdjust, position, scrollOverflow, setAdjustedPosition]
+ [
+ autoAdjust,
+ position,
+ scrollOverflow,
+ setAdjustedPosition,
+ updateVerticalPosition,
+ ]
);
// Handle adjusting the horizontal position and scrolling of the dropdown so that it remains on screen.
@@ -220,6 +286,10 @@ const ContextualMenuDropdown = ({
updatePositionStyle();
}, [adjustedPosition, updatePositionStyle]);
+ useEffect(() => {
+ updateVerticalPosition();
+ }, [updateVerticalPosition]);
+
return (
// Vanilla Framework uses .p-contextual-menu parent modifier classnames to determine the correct position of the .p-contextual-menu__dropdown dropdown (left, center, right).
// Extra span wrapper is required as the dropdown is rendered in a portal.
@@ -237,6 +307,7 @@ const ContextualMenuDropdown = ({
...(scrollOverflow
? { maxHeight, minHeight: "2rem", overflowX: "auto" }
: {}),
+ ...(verticalPosition === "top" ? { bottom: "0" } : {}),
}}
{...props}
>
From d8a13a381d44c8d6c1e8c00f780574aca75b53d6 Mon Sep 17 00:00:00 2001
From: Peter Makowski
Date: Fri, 2 Feb 2024 16:26:33 +0100
Subject: [PATCH 24/24] feat: add multiselect component (#1036)
---
.../MultiSelect/FadeInDown/FadeInDown.scss | 22 ++
.../FadeInDown/FadeInDown.test.tsx | 34 ++
.../MultiSelect/FadeInDown/FadeInDown.tsx | 28 ++
.../MultiSelect/FadeInDown/index.ts | 1 +
src/components/MultiSelect/MultiSelect.scss | 158 +++++++++
.../MultiSelect/MultiSelect.stories.tsx | 72 ++++
.../MultiSelect/MultiSelect.test.tsx | 221 ++++++++++++
src/components/MultiSelect/MultiSelect.tsx | 320 ++++++++++++++++++
src/components/MultiSelect/index.ts | 1 +
src/index.ts | 1 +
10 files changed, 858 insertions(+)
create mode 100644 src/components/MultiSelect/FadeInDown/FadeInDown.scss
create mode 100644 src/components/MultiSelect/FadeInDown/FadeInDown.test.tsx
create mode 100644 src/components/MultiSelect/FadeInDown/FadeInDown.tsx
create mode 100644 src/components/MultiSelect/FadeInDown/index.ts
create mode 100644 src/components/MultiSelect/MultiSelect.scss
create mode 100644 src/components/MultiSelect/MultiSelect.stories.tsx
create mode 100644 src/components/MultiSelect/MultiSelect.test.tsx
create mode 100644 src/components/MultiSelect/MultiSelect.tsx
create mode 100644 src/components/MultiSelect/index.ts
diff --git a/src/components/MultiSelect/FadeInDown/FadeInDown.scss b/src/components/MultiSelect/FadeInDown/FadeInDown.scss
new file mode 100644
index 000000000..41fd629b3
--- /dev/null
+++ b/src/components/MultiSelect/FadeInDown/FadeInDown.scss
@@ -0,0 +1,22 @@
+@import "vanilla-framework";
+
+.fade-in--down {
+ @include vf-transition(#{transform, opacity, visibility}, fast);
+
+ position: relative;
+ z-index: 1;
+
+ &[aria-hidden="true"] {
+ height: 0;
+ opacity: 0;
+ transform: translate3d(0, -0.5rem, 0);
+ visibility: hidden;
+ }
+
+ &[aria-hidden="false"] {
+ height: auto;
+ opacity: 1;
+ transform: translate3d(0, 0, 0);
+ visibility: visible;
+ }
+}
diff --git a/src/components/MultiSelect/FadeInDown/FadeInDown.test.tsx b/src/components/MultiSelect/FadeInDown/FadeInDown.test.tsx
new file mode 100644
index 000000000..73f218756
--- /dev/null
+++ b/src/components/MultiSelect/FadeInDown/FadeInDown.test.tsx
@@ -0,0 +1,34 @@
+import React from "react";
+import { render, screen } from "@testing-library/react";
+
+import { FadeInDown } from "./FadeInDown";
+
+it("renders with correct attributes", () => {
+ render(
+
+ Content
+
+ );
+
+ // eslint-disable-next-line testing-library/no-node-access
+ const element = screen.getByText("Content").parentElement;
+ expect(element).toHaveAttribute("aria-hidden", "false");
+ expect(element).toHaveClass("fade-in--down test-class");
+});
+
+it("hides and reveals children", () => {
+ const { rerender } = render(
+
+ Content
+
+ );
+ expect(screen.getByText("Content")).toBeInTheDocument();
+
+ rerender(
+
+ Test child
+
+ );
+
+ expect(screen.queryByText("Content")).not.toBeInTheDocument();
+});
diff --git a/src/components/MultiSelect/FadeInDown/FadeInDown.tsx b/src/components/MultiSelect/FadeInDown/FadeInDown.tsx
new file mode 100644
index 000000000..707345567
--- /dev/null
+++ b/src/components/MultiSelect/FadeInDown/FadeInDown.tsx
@@ -0,0 +1,28 @@
+import React, { FC, PropsWithChildren } from "react";
+
+import classNames from "classnames";
+import "./FadeInDown.scss";
+
+export interface FadeInDownProps extends PropsWithChildren {
+ isVisible: boolean;
+ className?: string;
+}
+
+/**
+ * EXPERIMENTAL: This component is experimental and should be used internally only.
+ */
+export const FadeInDown: FC = ({
+ children,
+ className,
+ isVisible,
+}) => {
+ return (
+
+ {children}
+
+ );
+};
diff --git a/src/components/MultiSelect/FadeInDown/index.ts b/src/components/MultiSelect/FadeInDown/index.ts
new file mode 100644
index 000000000..104d29a3c
--- /dev/null
+++ b/src/components/MultiSelect/FadeInDown/index.ts
@@ -0,0 +1 @@
+export * from "./FadeInDown";
diff --git a/src/components/MultiSelect/MultiSelect.scss b/src/components/MultiSelect/MultiSelect.scss
new file mode 100644
index 000000000..fbb220267
--- /dev/null
+++ b/src/components/MultiSelect/MultiSelect.scss
@@ -0,0 +1,158 @@
+@use "sass:map";
+@import "vanilla-framework";
+@include vf-base;
+@include vf-p-lists;
+
+$dropdown-max-height: 20rem;
+
+.multi-select {
+ position: relative;
+}
+
+.multi-select .p-form-validation__message {
+ margin-top: 0;
+}
+
+.multi-select__condensed-text {
+ margin-right: $sph--large + $sph--x-small;
+ overflow: hidden;
+ text-overflow: ellipsis;
+ white-space: nowrap;
+}
+
+.multi-select__input {
+ cursor: pointer;
+ position: relative;
+
+ &.items-selected {
+ border-top: 0;
+ box-shadow: none;
+ top: -#{$border-radius};
+ }
+
+ &[disabled],
+ &[disabled="disabled"] {
+ opacity: 1;
+ }
+}
+
+.multi-select__dropdown {
+ @extend %vf-bg--x-light;
+ @extend %vf-has-box-shadow;
+ left: 0;
+ max-height: $dropdown-max-height;
+ overflow: auto;
+
+ padding-top: $spv--small;
+ position: absolute;
+ right: 0;
+ top: calc(100% - #{$input-margin-bottom});
+}
+
+.multi-select__dropdown--side-by-side {
+ display: flex;
+ flex-wrap: wrap;
+}
+
+.multi-select__group {
+ flex: 1 0 auto;
+}
+
+.multi-select__dropdown-list {
+ @extend %vf-list;
+
+ margin-bottom: $sph--x-small;
+}
+
+.multi-select__footer {
+ background: white;
+ border-top: 1px solid $color-mid-light;
+ bottom: 0;
+ display: flex;
+ flex-wrap: wrap;
+ justify-content: space-between;
+ padding: $sph--small $sph--large 0 $sph--large;
+ position: sticky;
+}
+
+.multi-select__dropdown-header {
+ font-size: #{map.get($font-sizes, small)}rem;
+ letter-spacing: #{map.get($font-sizes, small)}px;
+ margin-bottom: 0;
+ padding: $spv--x-small $sph--large;
+ position: relative;
+ text-transform: uppercase;
+}
+
+.multi-select__dropdown-item {
+ padding: 0 $sph--large;
+
+ .p-checkbox {
+ padding-top: $sph--x-small;
+ }
+
+ &,
+ .p-checkbox {
+ width: 100%;
+ }
+}
+
+.multi-select__dropdown-item-description {
+ @extend %small-text;
+
+ color: $color-mid-dark;
+}
+
+.multi-select__dropdown-button {
+ border: 0;
+ margin-bottom: 0;
+ padding-left: $sph--small;
+ padding-right: $sph--small;
+ text-align: left;
+ width: 100%;
+}
+
+.multi-select__selected-list {
+ background-color: $colors--light-theme--background-inputs;
+ border-bottom: 0;
+ margin: 0;
+ overflow: hidden;
+ padding: $spv--x-small $sph--small;
+ text-overflow: ellipsis;
+ white-space: nowrap;
+}
+
+.multi-select__select-button {
+ @extend %vf-input-elements;
+ align-items: center;
+ display: inline-flex;
+ height: 2.5rem;
+ justify-content: space-between;
+ overflow: auto;
+
+ position: relative;
+ z-index: 0;
+
+ &::after {
+ content: "";
+ margin-left: $sph--large;
+ position: absolute;
+ right: $sph--small;
+ top: 50%;
+ transform: translateY(-50%) rotate(-180deg);
+
+ @extend %icon;
+ @include vf-icon-chevron($color-mid-dark);
+ @include vf-transition($property: transform, $duration: fast);
+ }
+
+ &[aria-expanded="true"] {
+ background-color: $colors--light-theme--background-hover;
+ }
+
+ &[aria-expanded="false"] {
+ &::after {
+ transform: translateY(-50%) rotate(0);
+ }
+ }
+}
diff --git a/src/components/MultiSelect/MultiSelect.stories.tsx b/src/components/MultiSelect/MultiSelect.stories.tsx
new file mode 100644
index 000000000..315d74847
--- /dev/null
+++ b/src/components/MultiSelect/MultiSelect.stories.tsx
@@ -0,0 +1,72 @@
+import React from "react";
+import { useState } from "react";
+
+import { Meta } from "@storybook/react";
+
+import { MultiSelect, MultiSelectItem, MultiSelectProps } from "./MultiSelect";
+
+const Template = (props: MultiSelectProps) => {
+ const [selectedItems, setSelectedItems] = useState(
+ props.selectedItems || []
+ );
+ return (
+
+ );
+};
+
+const meta: Meta = {
+ title: "MultiSelect",
+ component: MultiSelect,
+ render: Template,
+ tags: ["autodocs"],
+ parameters: {},
+};
+
+export default meta;
+
+export const CondensedExample = {
+ args: {
+ items: [
+ ...Array.from({ length: 26 }, (_, i) => ({
+ label: `${String.fromCharCode(i + 65)}`,
+ value: `${String.fromCharCode(i + 65)}`,
+ })),
+ ...Array.from({ length: 26 }, (_, i) => ({
+ label: `Item ${i + 1}`,
+ value: i + 1,
+ })),
+ ],
+ selectedItems: [
+ { label: "A", value: "A" },
+ { label: "Item 2", value: 2 },
+ ],
+ variant: "condensed",
+ },
+};
+
+export const SearchExample = {
+ args: {
+ ...CondensedExample.args,
+ variant: "search",
+ items: [
+ ...CondensedExample.args.items.map((item, i) => ({
+ ...item,
+ group: i % 2 === 0 ? "Group 1" : "Group 2",
+ })),
+ ],
+ },
+};
+
+export const WithDisabledItems = {
+ args: {
+ ...CondensedExample.args,
+ disabledItems: [
+ { label: "Item 1", value: 1 },
+ { label: "Item 2", value: 2 },
+ ],
+ },
+};
diff --git a/src/components/MultiSelect/MultiSelect.test.tsx b/src/components/MultiSelect/MultiSelect.test.tsx
new file mode 100644
index 000000000..59f0b7efe
--- /dev/null
+++ b/src/components/MultiSelect/MultiSelect.test.tsx
@@ -0,0 +1,221 @@
+import React from "react";
+import { render, screen, waitFor, within } from "@testing-library/react";
+import { userEvent } from "@testing-library/user-event";
+
+import { MultiSelect } from "./MultiSelect";
+
+const items = [
+ { label: "item one", value: 1 },
+ { label: "item two", value: 2 },
+ { label: "other", value: 3 },
+];
+
+it("shows options when opened", async () => {
+ render();
+
+ items.forEach((item) => {
+ expect(
+ screen.queryByRole("checkbox", { name: item.label })
+ ).not.toBeInTheDocument();
+ });
+
+ await userEvent.click(screen.getByRole("combobox"));
+
+ items.forEach((item) => {
+ expect(
+ screen.getByRole("checkbox", { name: item.label })
+ ).toBeInTheDocument();
+ });
+});
+
+it("opens the dropdown when the combobox is clicked", async () => {
+ render();
+ expect(screen.queryByRole("listbox")).not.toBeInTheDocument();
+ await userEvent.click(screen.getByRole("combobox"));
+ expect(screen.getByRole("listbox")).toBeInTheDocument();
+});
+
+it("can have some options preselected", async () => {
+ render(
+
+ );
+ expect(screen.getByRole("combobox")).toHaveTextContent(items[0].label);
+ expect(
+ screen.queryByRole("checkbox", { name: items[0].label })
+ ).not.toBeInTheDocument();
+ await userEvent.click(screen.getByRole("combobox"));
+ expect(
+ screen.getByRole("checkbox", { name: items[0].label })
+ ).toBeInTheDocument();
+});
+
+it("can select options from the dropdown", async () => {
+ const onItemsUpdate = jest.fn();
+ render();
+ await userEvent.click(screen.getByRole("combobox"));
+ await userEvent.click(screen.getByLabelText(items[0].label));
+ await waitFor(() => expect(onItemsUpdate).toHaveBeenCalledWith([items[0]]));
+});
+
+it("can remove options that have been selected", async () => {
+ const onItemsUpdate = jest.fn();
+ render(
+
+ );
+ await userEvent.click(screen.getByRole("combobox"));
+ expect(screen.getAllByRole("listitem")).toHaveLength(3);
+ await userEvent.click(
+ within(screen.getByRole("listbox")).getByLabelText(items[0].label)
+ );
+ expect(onItemsUpdate).toHaveBeenCalledWith(items.slice(1));
+});
+
+it("can filter option list", async () => {
+ render();
+ await userEvent.click(screen.getByRole("combobox"));
+ expect(screen.getAllByRole("listitem")).toHaveLength(3);
+ await userEvent.type(screen.getByRole("combobox"), "item");
+ await waitFor(() => expect(screen.getAllByRole("listitem")).toHaveLength(2));
+});
+
+it("can display a custom dropdown header and footer", async () => {
+ render(
+ custom header button}
+ dropdownFooter={}
+ items={items}
+ />
+ );
+ await userEvent.click(screen.getByRole("combobox"));
+ expect(
+ screen.getByRole("button", { name: "custom header button" })
+ ).toBeInTheDocument();
+ expect(
+ screen.getByRole("button", { name: "custom footer button" })
+ ).toBeInTheDocument();
+});
+
+it("selects all items and clears selection when respective buttons are clicked", async () => {
+ const onItemsUpdate = jest.fn();
+ render(
+
+ );
+ await userEvent.click(screen.getByRole("combobox"));
+ await userEvent.type(screen.getByRole("combobox"), "item");
+ await userEvent.click(screen.getByRole("button", { name: /select all/i }));
+ expect(onItemsUpdate).toHaveBeenCalledWith(items);
+ await userEvent.click(screen.getByRole("button", { name: "Clear" }));
+ expect(onItemsUpdate).toHaveBeenCalledWith([]);
+});
+
+it("closes the dropdown when clicking outside of the dropdown", async () => {
+ render();
+ await userEvent.click(screen.getByRole("combobox"));
+ expect(screen.getByRole("listbox")).toBeInTheDocument();
+ await userEvent.click(document.body);
+ expect(screen.queryByRole("listbox")).not.toBeInTheDocument();
+});
+
+it("updates text in the input field if something is selected", async () => {
+ render(
+
+ );
+ expect(screen.getByRole("combobox")).toHaveTextContent(items[0].label);
+});
+
+it("can have one or more sections with titles", async () => {
+ const itemsWithGroup = [
+ { label: "item one", value: 1, group: "Group 1" },
+ { label: "item two", value: 2, group: "Group 2" },
+ { label: "other", value: 3, group: "Group 1" },
+ ];
+
+ render();
+ await userEvent.click(screen.getByRole("combobox"));
+
+ itemsWithGroup.forEach((item) => {
+ expect(
+ screen.getByRole("heading", { name: item.group })
+ ).toBeInTheDocument();
+ expect(screen.getByRole("list", { name: item.group })).toBeInTheDocument();
+ });
+});
+
+it("sorts grouped options alphabetically", async () => {
+ const itemsUnsorted = [
+ { label: "item B", value: 2, group: "Group 1" },
+ { label: "item A", value: 1, group: "Group 1" },
+ { label: "other B", value: 3, group: "Group 2" },
+ { label: "other A", value: 4, group: "Group 2" },
+ ];
+
+ render();
+ await userEvent.click(screen.getByRole("combobox"));
+
+ const checkGroupOrder = async (
+ groupName: string,
+ expectedLabels: string[]
+ ) => {
+ const group = screen.getByRole("list", { name: groupName });
+ await waitFor(() =>
+ within(group)
+ .getAllByRole("listitem")
+ .forEach((item, index) =>
+ expect(item).toHaveTextContent(expectedLabels[index])
+ )
+ );
+ };
+
+ checkGroupOrder("Group 1", ["item A", "item B"]);
+ checkGroupOrder("Group 2", ["other A", "other B"]);
+});
+
+it("hides group title when no items match the search query", async () => {
+ const itemsWithGroup = [
+ { label: "item one", value: 1, group: "Group 1" },
+ { label: "item two", value: 2, group: "Group 2" },
+ { label: "other", value: 3, group: "Group 1" },
+ ];
+
+ render();
+ await userEvent.click(screen.getByRole("combobox"));
+ expect(screen.getByRole("heading", { name: "Group 1" })).toBeInTheDocument();
+
+ await userEvent.type(screen.getByRole("combobox"), "item two");
+ expect(
+ screen.queryByRole("heading", { name: "Group 1" })
+ ).not.toBeInTheDocument();
+ expect(screen.getByRole("heading", { name: "Group 2" })).toBeInTheDocument();
+});
+
+it("displays previously selected items at the top of the list in a sorted order", async () => {
+ const items = [
+ { label: "item two", value: 2 },
+ { label: "item one", value: 1 },
+ ];
+ const unSortedSelectedItems = [items[1], items[0]];
+
+ render();
+
+ await userEvent.click(screen.getByRole("combobox"));
+
+ const listItems = screen.getAllByRole("listitem");
+
+ await waitFor(() => {
+ expect(listItems[0]).toHaveTextContent("item one");
+ });
+ expect(listItems[1]).toHaveTextContent("item two");
+});
+
+it("opens and closes the dropdown on click", async () => {
+ render();
+ expect(screen.queryByRole("listbox")).not.toBeInTheDocument();
+ await userEvent.click(screen.getByRole("combobox"));
+ expect(screen.getByRole("listbox")).toBeInTheDocument();
+ await userEvent.click(screen.getByRole("combobox"));
+ expect(screen.queryByRole("listbox")).not.toBeInTheDocument();
+});
diff --git a/src/components/MultiSelect/MultiSelect.tsx b/src/components/MultiSelect/MultiSelect.tsx
new file mode 100644
index 000000000..753e4f322
--- /dev/null
+++ b/src/components/MultiSelect/MultiSelect.tsx
@@ -0,0 +1,320 @@
+import type { ReactNode } from "react";
+import React, { useEffect, useId, useMemo, useState } from "react";
+
+import "./MultiSelect.scss";
+import {
+ Button,
+ CheckboxInput,
+ SearchBox,
+ useClickOutside,
+ useOnEscapePressed,
+} from "../../index";
+
+import { FadeInDown } from "./FadeInDown";
+
+export type MultiSelectItem = {
+ label: string;
+ value: string | number;
+ group?: string;
+};
+
+export type MultiSelectProps = {
+ disabled?: boolean;
+ error?: string;
+ selectedItems?: MultiSelectItem[];
+ help?: string;
+ label?: string | null;
+ onItemsUpdate?: (items: MultiSelectItem[]) => void;
+ placeholder?: string;
+ required?: boolean;
+ items: MultiSelectItem[];
+ disabledItems?: MultiSelectItem[];
+ renderItem?: (item: MultiSelectItem) => ReactNode;
+ dropdownHeader?: ReactNode;
+ dropdownFooter?: ReactNode;
+ variant?: "condensed" | "search";
+};
+
+type ValueSet = Set;
+type GroupFn = (
+ items: Parameters[0]
+) => ReturnType;
+type SortFn = typeof sortAlphabetically;
+type MultiSelectDropdownProps = {
+ isOpen: boolean;
+ items: MultiSelectItem[];
+ selectedItems: MultiSelectItem[];
+ disabledItems: MultiSelectItem[];
+ header?: ReactNode;
+ updateItems: (newItems: MultiSelectItem[]) => void;
+ footer?: ReactNode;
+ groupFn?: GroupFn;
+ sortFn?: SortFn;
+ shouldPinSelectedItems?: boolean;
+} & React.HTMLAttributes;
+
+const sortAlphabetically = (a: MultiSelectItem, b: MultiSelectItem) => {
+ return a.label.localeCompare(b.label, "en", { numeric: true });
+};
+
+const createSortSelectedItems =
+ (previouslySelectedItemValues: ValueSet) =>
+ (a: MultiSelectItem, b: MultiSelectItem) => {
+ if (previouslySelectedItemValues) {
+ const aIsPreviouslySelected = previouslySelectedItemValues.has(a.value);
+ const bIsPreviouslySelected = previouslySelectedItemValues.has(b.value);
+ if (aIsPreviouslySelected && !bIsPreviouslySelected) return -1;
+ if (!aIsPreviouslySelected && bIsPreviouslySelected) return 1;
+ }
+ return 0;
+ };
+
+const getGroupedItems = (items: MultiSelectItem[]) => {
+ const groups = new Map();
+
+ items.forEach((item) => {
+ const group = item.group || "Ungrouped";
+ const groupItems = groups.get(group) || [];
+ groupItems.push(item);
+ groups.set(group, groupItems);
+ });
+
+ return Array.from(groups, ([group, items]) => ({ group, items }));
+};
+
+export const MultiSelectDropdown: React.FC = ({
+ items,
+ selectedItems,
+ disabledItems,
+ header,
+ updateItems,
+ isOpen,
+ footer,
+ sortFn = sortAlphabetically,
+ groupFn = getGroupedItems,
+ ...props
+}: MultiSelectDropdownProps) => {
+ const selectedItemValues = useMemo(
+ () => new Set(selectedItems.map((item) => item.value)),
+ [selectedItems]
+ );
+ const disabledItemValues = useMemo(
+ () => new Set(disabledItems.map((item) => item.value)),
+ [disabledItems]
+ );
+ const [previouslySelectedItemValues, setPreviouslySelectedItemValues] =
+ useState(new Set(selectedItemValues));
+
+ useEffect(() => {
+ if (isOpen) {
+ setPreviouslySelectedItemValues(new Set(selectedItemValues));
+ }
+ // eslint-disable-next-line react-hooks/exhaustive-deps
+ }, [isOpen]);
+
+ const hasGroup = useMemo(() => items.some((item) => item.group), [items]);
+ const groupedItems = useMemo(
+ () => (hasGroup ? groupFn(items) : [{ group: "Ungrouped", items }]),
+ // eslint-disable-next-line react-hooks/exhaustive-deps
+ [items, groupFn]
+ );
+ const handleOnChange = (event: React.ChangeEvent) => {
+ const { checked, value } = event.target;
+ const foundItem = items.find((item) => `${item.value}` === value);
+ if (foundItem) {
+ const newSelectedItems = checked
+ ? [...selectedItems, foundItem]
+ : selectedItems.filter((item) => `${item.value}` !== value) ?? [];
+ updateItems(newSelectedItems);
+ }
+ };
+
+ return (
+
+
+ {header ? header : null}
+ {groupedItems.map(({ group, items }) => (
+
+ {hasGroup ? (
+
{group}
+ ) : null}
+
+ {items
+ .sort(sortFn)
+ .sort(createSortSelectedItems(previouslySelectedItemValues))
+ .map((item) => (
+ -
+
+
+ ))}
+
+
+ ))}
+ {footer ?
{footer}
: null}
+
+
+ );
+};
+
+/**
+ * Component allowing to select multiple items from a list of options.
+ *
+ * `MultiSelectDropdown` displays the dropdown with options which are grouped and sorted alphabetically.
+ * `SearchBox` or `Button` is used to trigger the dropdown depending on the variant.
+ */
+export const MultiSelect: React.FC = ({
+ disabled,
+ selectedItems: externalSelectedItems = [],
+ label,
+ onItemsUpdate,
+ placeholder,
+ required = false,
+ items = [],
+ disabledItems = [],
+ dropdownHeader,
+ dropdownFooter,
+ variant = "search",
+}: MultiSelectProps) => {
+ const wrapperRef = useClickOutside(() => {
+ setIsDropdownOpen(false);
+ setFilter("");
+ });
+ useOnEscapePressed(() => {
+ setIsDropdownOpen(false);
+ setFilter("");
+ });
+ const [isDropdownOpen, setIsDropdownOpen] = useState(false);
+ const [filter, setFilter] = useState("");
+
+ useEffect(() => {
+ if (!isDropdownOpen) {
+ setFilter("");
+ }
+ }, [isDropdownOpen]);
+
+ const [internalSelectedItems, setInternalSelectedItems] = useState<
+ MultiSelectItem[]
+ >([]);
+ const selectedItems = externalSelectedItems || internalSelectedItems;
+
+ const updateItems = (newItems: MultiSelectItem[]) => {
+ const uniqueItems = Array.from(new Set(newItems));
+ setInternalSelectedItems(uniqueItems);
+ onItemsUpdate && onItemsUpdate(uniqueItems);
+ };
+
+ const dropdownId = useId();
+ const inputId = useId();
+ const selectedItemsLabel = selectedItems
+ .filter((selectedItem) =>
+ items.some((item) => item.value === selectedItem.value)
+ )
+ .map((el) => el.label)
+ .join(", ");
+ return (
+
+
+ {variant === "search" ? (
+ {
+ setFilter(value);
+ // reopen if dropdown has been closed via ESC
+ setIsDropdownOpen(true);
+ }}
+ onFocus={() => setIsDropdownOpen(true)}
+ placeholder={placeholder ?? "Search"}
+ required={required}
+ type="text"
+ value={filter}
+ className="multi-select__input"
+ />
+ ) : (
+
+ )}
+ 0
+ ? items.filter((item) =>
+ item.label.toLowerCase().includes(filter.toLowerCase())
+ )
+ : items
+ }
+ selectedItems={selectedItems}
+ disabledItems={disabledItems}
+ header={dropdownHeader}
+ updateItems={updateItems}
+ footer={
+ dropdownFooter ? (
+ dropdownFooter
+ ) : (
+ <>
+
+
+ >
+ )
+ }
+ />
+
+
+ );
+};
diff --git a/src/components/MultiSelect/index.ts b/src/components/MultiSelect/index.ts
new file mode 100644
index 000000000..22ee6bcf1
--- /dev/null
+++ b/src/components/MultiSelect/index.ts
@@ -0,0 +1 @@
+export * from "./MultiSelect";
diff --git a/src/index.ts b/src/index.ts
index ad41e8f08..161c59554 100644
--- a/src/index.ts
+++ b/src/index.ts
@@ -28,6 +28,7 @@ export { default as MainTable } from "./components/MainTable";
export { default as ModularTable } from "./components/ModularTable";
export { default as Navigation } from "./components/Navigation";
export { default as Modal } from "./components/Modal";
+export * from "./components/MultiSelect";
export {
default as Notification,
NotificationSeverity,