diff --git a/templates/demo-store-neue/README.md b/templates/demo-store-neue/README.md
new file mode 100644
index 0000000000..d38f8ee583
--- /dev/null
+++ b/templates/demo-store-neue/README.md
@@ -0,0 +1,36 @@
+# Hydrogen Demo Store
+
+Hydrogen is a React framework and SDK that you can use to build fast and dynamic Shopify custom storefronts.
+
+[Check out the docs](https://shopify.dev/custom-storefronts/hydrogen)
+
+[Run this template on StackBlitz](https://stackblitz.com/github/Shopify/hydrogen/tree/stackblitz/templates/demo-store)
+
+## Getting started
+
+**Requirements:**
+
+- Node.js version 16.5.0 or higher
+- Yarn
+
+```bash
+yarn
+yarn dev
+```
+
+Remember to update `hydrogen.config.js` with your shop's domain and Storefront API token!
+
+## Building for production
+
+```bash
+yarn build
+```
+
+## Previewing a production build
+
+To run a local preview of your Hydrogen app in an environment similar to Oxygen, build your Hydrogen app and then run `yarn preview`:
+
+```bash
+yarn build
+yarn preview
+```
diff --git a/templates/demo-store-neue/hydrogen.config.js b/templates/demo-store-neue/hydrogen.config.js
new file mode 100644
index 0000000000..b5a0904989
--- /dev/null
+++ b/templates/demo-store-neue/hydrogen.config.js
@@ -0,0 +1,25 @@
+import {defineConfig} from '@shopify/hydrogen/config';
+import {
+ CookieSessionStorage,
+ PerformanceMetricsServerAnalyticsConnector,
+ ShopifyServerAnalyticsConnector,
+} from '@shopify/hydrogen';
+
+export default defineConfig({
+ shopify: {
+ storeDomain: 'hydrogen-preview.myshopify.com',
+ storefrontToken: '3b580e70970c4528da70c98e097c2fa0',
+ storefrontApiVersion: 'unstable',
+ },
+ session: CookieSessionStorage('__session', {
+ path: '/',
+ httpOnly: true,
+ secure: process.env.NODE_ENV === 'production',
+ sameSite: 'strict',
+ maxAge: 60 * 60 * 24 * 30,
+ }),
+ serverAnalyticsConnectors: [
+ PerformanceMetricsServerAnalyticsConnector,
+ ShopifyServerAnalyticsConnector,
+ ],
+});
diff --git a/templates/demo-store-neue/index.html b/templates/demo-store-neue/index.html
new file mode 100644
index 0000000000..43fa974ecc
--- /dev/null
+++ b/templates/demo-store-neue/index.html
@@ -0,0 +1,19 @@
+
+
+
+
+
+
+
+
+ Hydrogen Demo Store
+
+
+
+
+
+
+
+
+
+
diff --git a/templates/demo-store-neue/jsconfig.json b/templates/demo-store-neue/jsconfig.json
new file mode 100644
index 0000000000..e451b27fc6
--- /dev/null
+++ b/templates/demo-store-neue/jsconfig.json
@@ -0,0 +1,7 @@
+{
+ "compilerOptions": {
+ "paths": {
+ "~/*": ["./src/*"]
+ }
+ }
+}
diff --git a/templates/demo-store-neue/package.json b/templates/demo-store-neue/package.json
new file mode 100644
index 0000000000..e5a5b965be
--- /dev/null
+++ b/templates/demo-store-neue/package.json
@@ -0,0 +1,49 @@
+{
+ "name": "demo-store-neue",
+ "description": "Hello world template for @shopify/hydrogen",
+ "version": "0.0.0",
+ "license": "MIT",
+ "private": true,
+ "scripts": {
+ "dev": "shopify hydrogen dev",
+ "build": "shopify hydrogen build",
+ "preview": "shopify hydrogen preview",
+ "lint": "eslint --ext .js,.jsx,.ts,.tsx src"
+ },
+ "devDependencies": {
+ "@shopify/cli": "^3.0.11",
+ "@shopify/cli-hydrogen": "^3.0.11",
+ "@shopify/prettier-config": "^1.1.2",
+ "@tailwindcss/forms": "^0.5.2",
+ "@tailwindcss/typography": "^0.5.2",
+ "eslint": "^8.16.0",
+ "eslint-plugin-hydrogen": "^0.12.2",
+ "postcss": "^8.4.14",
+ "postcss-import": "^14.1.0",
+ "postcss-preset-env": "^7.6.0",
+ "prettier": "^2.3.2",
+ "tailwindcss": "^3.0.24",
+ "vite": "^2.9.0"
+ },
+ "prettier": "@shopify/prettier-config",
+ "dependencies": {
+ "@headlessui/react": "^1.6.3",
+ "@heroicons/react": "^1.0.6",
+ "@shopify/hydrogen": "^0.23.0",
+ "clsx": "^1.1.1",
+ "eslint-plugin-react": "^7.29.3",
+ "eslint-plugin-react-hooks": "^4.2.0",
+ "graphql-tag": "^2.12.6",
+ "install": "^0.13.0",
+ "npm": "^8.12.1",
+ "react": "^18.1.0",
+ "react-dom": "^18.1.0",
+ "react-use": "^17.4.0",
+ "title": "^3.4.4",
+ "ts-node": "^10.8.0",
+ "turbo": "^1.2.8",
+ "typescript": "^4.7.2",
+ "typographic-base": "^1.0.4",
+ "vite": "^2.9.0"
+ }
+}
diff --git a/templates/demo-store-neue/postcss.config.js b/templates/demo-store-neue/postcss.config.js
new file mode 100644
index 0000000000..0a37ff00bc
--- /dev/null
+++ b/templates/demo-store-neue/postcss.config.js
@@ -0,0 +1,10 @@
+module.exports = {
+ plugins: {
+ 'postcss-import': {},
+ 'tailwindcss/nesting': {},
+ tailwindcss: {},
+ 'postcss-preset-env': {
+ features: {'nesting-rules': false},
+ },
+ },
+};
diff --git a/templates/demo-store-neue/src/App.server.jsx b/templates/demo-store-neue/src/App.server.jsx
new file mode 100644
index 0000000000..c7e6ad311a
--- /dev/null
+++ b/templates/demo-store-neue/src/App.server.jsx
@@ -0,0 +1,33 @@
+import renderHydrogen from '@shopify/hydrogen/entry-server';
+import {
+ Route,
+ Router,
+ FileRoutes,
+ ShopifyProvider,
+ CartProvider,
+ ShopifyAnalytics,
+ PerformanceMetrics,
+ PerformanceMetricsDebug,
+} from '@shopify/hydrogen';
+import {Suspense} from 'react';
+import {NotFound} from './components/pages';
+
+function App({routes}) {
+ return (
+
+
+
+
+
+ } />
+
+
+
+ {import.meta.env.DEV && }
+
+
+
+ );
+}
+
+export default renderHydrogen(App);
diff --git a/templates/demo-store-neue/src/assets/favicon.svg b/templates/demo-store-neue/src/assets/favicon.svg
new file mode 100644
index 0000000000..f6c649733d
--- /dev/null
+++ b/templates/demo-store-neue/src/assets/favicon.svg
@@ -0,0 +1,28 @@
+
+
+
+
+
diff --git a/templates/demo-store-neue/src/components/AccountIcon.jsx b/templates/demo-store-neue/src/components/AccountIcon.jsx
new file mode 100644
index 0000000000..ee1902442e
--- /dev/null
+++ b/templates/demo-store-neue/src/components/AccountIcon.jsx
@@ -0,0 +1,21 @@
+/**
+ * A shared component that specifies the icon to represent an account
+ */
+export default function AccountIcon() {
+ return (
+
+
+
+
+ );
+}
diff --git a/templates/demo-store-neue/src/components/LogoutButton.client.jsx b/templates/demo-store-neue/src/components/LogoutButton.client.jsx
new file mode 100644
index 0000000000..788622798a
--- /dev/null
+++ b/templates/demo-store-neue/src/components/LogoutButton.client.jsx
@@ -0,0 +1,14 @@
+import {useCallback} from 'react';
+
+export default function LogoutButton(props) {
+ const logout = useCallback(() => {
+ fetch('/account/logout', {method: 'POST'}).then(
+ () => (window.location.href = '/'),
+ );
+ }, []);
+ return (
+
+ Sign out
+
+ );
+}
diff --git a/templates/demo-store-neue/src/components/blocks/CountrySelector.client.jsx b/templates/demo-store-neue/src/components/blocks/CountrySelector.client.jsx
new file mode 100644
index 0000000000..797307f129
--- /dev/null
+++ b/templates/demo-store-neue/src/components/blocks/CountrySelector.client.jsx
@@ -0,0 +1,105 @@
+import {useCallback, useState, Suspense} from 'react';
+import {useCountry, fetchSync} from '@shopify/hydrogen';
+import {Listbox} from '@headlessui/react';
+import {IconChevronDown} from '~/components/elements';
+
+/**
+ * A client component that selects the appropriate country to display for products on a website
+ */
+export default function CountrySelector() {
+ const [listboxOpen, setListboxOpen] = useState(false);
+ const [selectedCountry] = useCountry();
+
+ const setCountry = useCallback(({isoCode, name}) => {
+ fetch(`/api/countries`, {
+ body: JSON.stringify({isoCode, name}),
+ method: 'POST',
+ }).then(() => {
+ window.location.reload();
+ });
+ }, []);
+
+ return (
+
+
+ {({open}) => {
+ setTimeout(() => setListboxOpen(open));
+ return (
+ <>
+
+ {selectedCountry.name}
+
+
+
+
+
+ {listboxOpen && (
+ Loading…
}>
+ {
+ return (
+ `w-full cursor-pointer py-2 flex justify-start items-center text-left cursor-pointer` +
+ `rounded ${active ? '' : null}`
+ );
+ }}
+ />
+
+ )}
+
+
+ >
+ );
+ }}
+
+
+ );
+}
+
+export function Countries({selectedCountry, getClassName}) {
+ // TODO: We should have this handled inside this component, no?
+ const countries = fetchSync('/api/countries').json();
+
+ return countries.map((country) => {
+ const isSelected = country.isoCode === selectedCountry.isoCode;
+ return (
+
+ {({active}) => (
+
+ {country.name}
+ {isSelected ? (
+
+
+
+ ) : null}
+
+ )}
+
+ );
+ });
+}
+
+export function CheckIcon() {
+ return (
+
+
+
+ );
+}
diff --git a/templates/demo-store-neue/src/components/blocks/MoneyPrice.client.jsx b/templates/demo-store-neue/src/components/blocks/MoneyPrice.client.jsx
new file mode 100644
index 0000000000..9678911410
--- /dev/null
+++ b/templates/demo-store-neue/src/components/blocks/MoneyPrice.client.jsx
@@ -0,0 +1,15 @@
+import {useMoney} from '@shopify/hydrogen';
+
+/**
+ * A client component that defines the currency code, currency symbol, and amount of a product
+ */
+export default function MoneyPrice({money}) {
+ const {currencyCode, currencyNarrowSymbol, amount} = useMoney(money);
+ return (
+
+ {currencyCode}
+ {currencyNarrowSymbol}
+ {amount}
+
+ );
+}
diff --git a/templates/demo-store-neue/src/components/blocks/OrderCard.client.jsx b/templates/demo-store-neue/src/components/blocks/OrderCard.client.jsx
new file mode 100644
index 0000000000..d17de57e24
--- /dev/null
+++ b/templates/demo-store-neue/src/components/blocks/OrderCard.client.jsx
@@ -0,0 +1,109 @@
+import {Image, Link, flattenConnection} from '@shopify/hydrogen';
+import {Text} from '~/components/elements';
+
+function fulfillmentStatus(status) {
+ let text = status;
+ switch (status) {
+ case 'FULFILLED':
+ text = 'Fulfilled';
+ break;
+ case 'IN_PROGRESS':
+ text = 'In Progress';
+ break;
+ case 'ON_HOLD':
+ text = 'On Hold';
+ break;
+ case 'OPEN':
+ text = 'Open';
+ break;
+ case 'PARTIALLY_FULFILLED':
+ text = 'Partially Fulfilled';
+ break;
+ case 'PENDING_FULFILLMENT':
+ text = 'Pending';
+ break;
+ case 'RESTOCKED':
+ text = 'Restocked';
+ break;
+ case 'SCHEDULED':
+ text = 'Scheduled';
+ break;
+ case 'UNFULFILLED':
+ text = 'Unfulfilled';
+ break;
+ default:
+ text = status;
+ }
+ return text;
+}
+
+export default function OrderCard(props) {
+ const {order} = props;
+ const lineItems =
+ order?.lineItems?.edges.length > 0
+ ? flattenConnection(order.lineItems)
+ : [];
+ return (
+
+
+
+
+
+
+ {lineItems[0].title}{' '}
+ {lineItems.length > 1 && `+ ${lineItems.length - 1} more`}
+
+
+ Order ID
+
+
+ Order No. {order.orderNumber}
+
+
+ Order Date
+
+
+ {new Date(order.processedAt).toDateString()}
+
+
+ Fulfillment Status
+
+
+
+ {fulfillmentStatus(order.fulfillmentStatus)}
+
+
+
+
+
+
+
+
+
+
+ View Order Details
+
+
+
+
+ );
+}
diff --git a/templates/demo-store-neue/src/components/blocks/ProductCard.jsx b/templates/demo-store-neue/src/components/blocks/ProductCard.jsx
new file mode 100644
index 0000000000..6b1b0206be
--- /dev/null
+++ b/templates/demo-store-neue/src/components/blocks/ProductCard.jsx
@@ -0,0 +1,80 @@
+import {Image, Link, Money, useMoney} from '@shopify/hydrogen';
+import clsx from 'clsx';
+import {Text} from '~/components/elements';
+import {isDiscounted, isNewArrival} from '~/lib/utils';
+import {product as mockProduct} from '~/lib/placeholders';
+
+export default function ProductCard({product, label, className}) {
+ let cardLabel;
+
+ const cardData = product?.variants ? product : mockProduct;
+
+ const {
+ image,
+ priceV2: price,
+ compareAtPriceV2: compareAtPrice,
+ } = cardData?.variants?.nodes[0];
+
+ if (label) {
+ cardLabel = label;
+ } else if (price.amount > compareAtPrice?.amount) {
+ cardLabel = 'Sale';
+ } else if (isNewArrival(product.publishedAt)) {
+ cardLabel = 'New';
+ }
+
+ const styles = clsx('grid gap-6', className);
+
+ return (
+
+
+
+
+ {cardLabel}
+
+ {image && (
+
+ )}
+
+
+
+ {product.title}
+
+
+
+
+ {isDiscounted(price, compareAtPrice) && (
+
+ )}
+
+
+
+
+
+ );
+}
+
+//
+function CompareAtPrice({data, className}) {
+ const {currencyNarrowSymbol, withoutTrailingZerosAndCurrency} =
+ useMoney(data);
+
+ const styles = clsx('strike', className);
+
+ return (
+
+ {currencyNarrowSymbol}
+ {withoutTrailingZerosAndCurrency}
+
+ );
+}
diff --git a/templates/demo-store-neue/src/components/blocks/index.jsx b/templates/demo-store-neue/src/components/blocks/index.jsx
new file mode 100644
index 0000000000..0a4c07d0ca
--- /dev/null
+++ b/templates/demo-store-neue/src/components/blocks/index.jsx
@@ -0,0 +1,4 @@
+// TODO: Search, Product Card, Filters
+
+export {default as ProductCard} from './ProductCard';
+export {default as CountrySelector} from './CountrySelector.client';
diff --git a/templates/demo-store-neue/src/components/elements/Button.jsx b/templates/demo-store-neue/src/components/elements/Button.jsx
new file mode 100644
index 0000000000..0e72be7f08
--- /dev/null
+++ b/templates/demo-store-neue/src/components/elements/Button.jsx
@@ -0,0 +1,38 @@
+import {Link} from '@shopify/hydrogen';
+import clsx from 'clsx';
+import {missingClass} from '~/lib/utils';
+
+export default function Button({
+ as = 'button',
+ variant = 'primary',
+ width = 'auto',
+ className = '',
+ children,
+ ...passthroughProps
+}) {
+ const Component = passthroughProps.to ? Link : as;
+
+ const variants = {
+ primary: 'bg-primary text-contrast',
+ secondary: 'border-primary/10 bg-contrast text-primary',
+ shop: '',
+ };
+
+ const widths = {
+ auto: 'w-auto',
+ full: 'w-full',
+ };
+
+ const styles = clsx(
+ 'border inline-block rounded font-medium text-center py-3 px-6 max-w-xl leading-none',
+ missingClass(className, 'bg-') && variants[variant],
+ missingClass(className, 'w-') && widths[width],
+ className,
+ );
+
+ return (
+
+ {children}
+
+ );
+}
diff --git a/templates/demo-store-neue/src/components/elements/Grid.jsx b/templates/demo-store-neue/src/components/elements/Grid.jsx
new file mode 100644
index 0000000000..4f6d08e49c
--- /dev/null
+++ b/templates/demo-store-neue/src/components/elements/Grid.jsx
@@ -0,0 +1,36 @@
+import clsx from 'clsx';
+
+export default function Grid({
+ as = 'div',
+ gap = 'default',
+ layout = 'default',
+ items = 4,
+ flow = 'row',
+ children,
+ className,
+}) {
+ const Component = as;
+
+ const layouts = {
+ default: `grid-cols-1 md:grid-cols-2 ${items >= 3 && 'md:grid-cols-3'} ${
+ items >= 4 && 'lg:grid-cols-4'
+ }`,
+ products: `grid-cols-2 ${items >= 3 && 'md:grid-cols-3'} ${
+ items >= 4 && 'lg:grid-cols-4'
+ }`,
+ auto: 'auto-cols-auto',
+ };
+
+ const gaps = {
+ default: 'grid gap-2 gap-y-6 md:gap-4 lg:gap-6',
+ };
+
+ const flows = {
+ row: 'grid-flow-row',
+ col: 'grid-flow-col',
+ };
+
+ const styles = clsx(flow[flow], gaps[gap], layouts[layout], className);
+
+ return {children} ;
+}
diff --git a/templates/demo-store-neue/src/components/elements/Heading.jsx b/templates/demo-store-neue/src/components/elements/Heading.jsx
new file mode 100644
index 0000000000..e1ed2a190c
--- /dev/null
+++ b/templates/demo-store-neue/src/components/elements/Heading.jsx
@@ -0,0 +1,39 @@
+import clsx from 'clsx';
+import {missingClass, formatText} from '~/lib/utils';
+
+export default function Heading({
+ as = 'h2',
+ size = 'heading',
+ width = 'default',
+ format,
+ className = '',
+ children,
+}) {
+ const Component = as;
+
+ const sizes = {
+ display: 'font-bold text-display',
+ heading: 'font-bold text-heading',
+ lead: 'font-bold text-lead',
+ copy: 'font-medium text-copy',
+ };
+
+ const widths = {
+ default: 'max-w-prose',
+ narrow: 'max-w-prose-narrow',
+ wide: 'max-w-prose-wide',
+ };
+
+ const styles = clsx(
+ missingClass(className, 'whitespace-') && 'whitespace-pre-wrap',
+ missingClass(className, 'max-w-') && widths[width],
+ missingClass(className, 'font-') && sizes[size],
+ className,
+ );
+
+ return (
+
+ {format ? formatText(children) : children}
+
+ );
+}
diff --git a/templates/demo-store-neue/src/components/elements/Icon.jsx b/templates/demo-store-neue/src/components/elements/Icon.jsx
new file mode 100644
index 0000000000..3c71cc035e
--- /dev/null
+++ b/templates/demo-store-neue/src/components/elements/Icon.jsx
@@ -0,0 +1,190 @@
+function Icon({children, className = 'w-5 h-5'}) {
+ return (
+
+ {children}
+
+ );
+}
+
+export function IconMenu() {
+ return (
+
+ Menu
+
+
+
+
+ );
+}
+export function IconClose() {
+ return (
+
+ Close
+
+
+
+ );
+}
+export function IconArrow({direction = 'right'}) {
+ let rotate;
+
+ switch (direction) {
+ case 'right':
+ rotate = 'rotate-0';
+ break;
+ case 'left':
+ rotate = 'rotate-180';
+ break;
+ case 'up':
+ rotate = '-rotate-90';
+ break;
+ case 'down':
+ rotate = 'rotate-90';
+ break;
+ default:
+ rotate = 'rotate-0';
+ }
+
+ return (
+
+ Arrow
+
+
+ );
+}
+
+export function IconCaret({direction = 'down'}) {
+ let rotate;
+
+ switch (direction) {
+ case 'down':
+ rotate = 'rotate-0';
+ break;
+ case 'up':
+ rotate = 'rotate-180';
+ break;
+ case 'left':
+ rotate = '-rotate-90';
+ break;
+ case 'right':
+ rotate = 'rotate-90';
+ break;
+ default:
+ rotate = 'rotate-0';
+ }
+
+ return (
+
+ Caret
+
+
+ );
+}
+
+export function IconSelect() {
+ return (
+
+ Select
+
+
+
+ );
+}
+
+export function IconBag() {
+ return (
+
+ Bag
+
+
+ );
+}
+
+export function IconAccount() {
+ return (
+
+ Account
+
+
+ );
+}
+
+export function IconHelp() {
+ return (
+
+ Help
+
+
+ );
+}
+
+export function IconSearch() {
+ return (
+
+ Search
+
+
+ );
+}
+
+export function IconChevronDown() {
+ return (
+
+ Chevron Down
+
+
+ );
+}
diff --git a/templates/demo-store-neue/src/components/elements/Input.jsx b/templates/demo-store-neue/src/components/elements/Input.jsx
new file mode 100644
index 0000000000..720eed6821
--- /dev/null
+++ b/templates/demo-store-neue/src/components/elements/Input.jsx
@@ -0,0 +1,14 @@
+import clsx from 'clsx';
+
+export default function Input({type, variant, className = '', ...props}) {
+ const variants = {
+ search:
+ 'bg-transparent px-0 py-2 text-heading w-full focus:ring-0 border-x-0 border-t-0 transition border-b-2 border-primary/10 focus:border-primary/90',
+ minisearch:
+ 'bg-transparent hidden md:inline-block text-left lg:text-right border-b transition border-transparent -mb-px border-x-0 border-t-0 appearance-none px-0 py-1 focus:ring-transparent placeholder:opacity-20 placeholder:text-inherit',
+ };
+
+ const styles = clsx(variants[variant], className);
+
+ return ;
+}
diff --git a/templates/demo-store-neue/src/components/elements/LogoutButton.client.jsx b/templates/demo-store-neue/src/components/elements/LogoutButton.client.jsx
new file mode 100644
index 0000000000..cb6a97be70
--- /dev/null
+++ b/templates/demo-store-neue/src/components/elements/LogoutButton.client.jsx
@@ -0,0 +1,14 @@
+import {useCallback} from 'react';
+
+export default function LogoutButton(props) {
+ const logout = useCallback(() => {
+ fetch('/account/logout', {method: 'POST'}).then(
+ () => (window.location.href = '/'),
+ );
+ }, []);
+ return (
+
+ Logout
+
+ );
+}
diff --git a/templates/demo-store-neue/src/components/elements/Skeleton.jsx b/templates/demo-store-neue/src/components/elements/Skeleton.jsx
new file mode 100644
index 0000000000..388a5e2f5f
--- /dev/null
+++ b/templates/demo-store-neue/src/components/elements/Skeleton.jsx
@@ -0,0 +1,10 @@
+/**
+ * A shared component and Suspense call that's used in `App.server.jsx` to let your app wait for code to load while declaring a loading state
+ */
+export default function LoadingFallback({width, height, children}) {
+ return (
+
+ {children}
+
+ );
+}
diff --git a/templates/demo-store-neue/src/components/elements/Text.jsx b/templates/demo-store-neue/src/components/elements/Text.jsx
new file mode 100644
index 0000000000..cf357974cc
--- /dev/null
+++ b/templates/demo-store-neue/src/components/elements/Text.jsx
@@ -0,0 +1,48 @@
+import clsx from 'clsx';
+import {missingClass, formatText} from '~/lib/utils';
+
+export default function Text({
+ as = 'span',
+ size = 'copy',
+ width = 'default',
+ color = 'default',
+ className,
+ format,
+ children,
+}) {
+ const Component = as;
+
+ const colors = {
+ default: 'inherit',
+ primary: 'text-primary/90',
+ subtle: 'text-primary/50',
+ notice: 'text-notice',
+ contrast: 'text-contrast/90',
+ };
+
+ const sizes = {
+ lead: 'text-lead font-medium',
+ copy: 'text-copy',
+ fine: 'text-fine subpixel-antialiased',
+ };
+
+ const widths = {
+ default: 'max-w-prose',
+ narrow: 'max-w-prose-narrow',
+ wide: 'max-w-prose-wide',
+ };
+
+ const styles = clsx(
+ missingClass(className, 'max-w-') && widths[width],
+ missingClass(className, 'whitespace-') && 'whitespace-pre-wrap',
+ missingClass(className, 'text-') && colors[color],
+ sizes[size],
+ className,
+ );
+
+ return (
+
+ {format ? formatText(children) : children}
+
+ );
+}
diff --git a/templates/demo-store-neue/src/components/elements/index.jsx b/templates/demo-store-neue/src/components/elements/index.jsx
new file mode 100644
index 0000000000..c4b3e12c43
--- /dev/null
+++ b/templates/demo-store-neue/src/components/elements/index.jsx
@@ -0,0 +1,7 @@
+export * from './Icon';
+export {default as Input} from './Input';
+export {default as Skeleton} from './Skeleton';
+export {default as Button} from './Button';
+export {default as Text} from './Text';
+export {default as Heading} from './Heading';
+export {default as Grid} from './Grid';
diff --git a/templates/demo-store-neue/src/components/layouts/DefaultLayout.server.jsx b/templates/demo-store-neue/src/components/layouts/DefaultLayout.server.jsx
new file mode 100644
index 0000000000..fcf916bf65
--- /dev/null
+++ b/templates/demo-store-neue/src/components/layouts/DefaultLayout.server.jsx
@@ -0,0 +1,55 @@
+import {
+ useShop,
+ useShopQuery,
+ LocalizationProvider,
+ CacheHours,
+ gql,
+} from '@shopify/hydrogen';
+
+import {Suspense} from 'react';
+// TODO: Change back to import {Header, Footer} from '~/components/sections'
+import Header from '../sections/Header.client';
+import Footer from '../sections/Footer.client';
+
+/**
+ * A server component that defines a structure and organization of a page that can be used in different parts of the Hydrogen app
+ */
+export default function Layout({children}) {
+ const {languageCode} = useShop();
+
+ const {data} = useShopQuery({
+ query: QUERY,
+ variables: {
+ language: languageCode,
+ },
+ cache: CacheHours(),
+ preload: '*',
+ });
+
+ return (
+
+
+
+
+
+
+
+ {children}
+
+
+
+
+ );
+}
+
+const QUERY = gql`
+ query layoutContent($language: LanguageCode) @inContext(language: $language) {
+ shop {
+ name
+ }
+ }
+`;
diff --git a/templates/demo-store-neue/src/components/layouts/index.jsx b/templates/demo-store-neue/src/components/layouts/index.jsx
new file mode 100644
index 0000000000..8204ff375e
--- /dev/null
+++ b/templates/demo-store-neue/src/components/layouts/index.jsx
@@ -0,0 +1 @@
+export {default as DefaultLayout} from './DefaultLayout.server';
diff --git a/templates/demo-store-neue/src/components/pages/AccountDetails.server.jsx b/templates/demo-store-neue/src/components/pages/AccountDetails.server.jsx
new file mode 100644
index 0000000000..0936a3f16c
--- /dev/null
+++ b/templates/demo-store-neue/src/components/pages/AccountDetails.server.jsx
@@ -0,0 +1,177 @@
+import {
+ Seo,
+ useShopQuery,
+ useShop,
+ useSession,
+ NoStore,
+ flattenConnection,
+ gql,
+} from '@shopify/hydrogen';
+
+import {
+ FeaturedCollections,
+ PageHeader,
+ ProductSwimlane,
+ Locations,
+} from '~/components/sections';
+import {Text, Button} from '~/components/elements';
+
+import Layout from '../layouts/DefaultLayout.server';
+import LogoutButton from '../elements/LogoutButton.client';
+import OrderCard from '../blocks/OrderCard.client';
+
+import {LOCATION_CARD_FIELDS, PRODUCT_CARD_FIELDS} from '~/lib/fragments';
+
+function EmptyOrders(props) {
+ const {heading} = props;
+ return (
+
+
+ Logout
+
+
+ You haven't made any orders yet.
+
+
+ Start shopping
+
+
+ );
+}
+
+function OrderHistory(props) {
+ const {orders, heading} = props;
+ return (
+
+
+
+ Logout
+
+
+
+
Order History
+
+ {orders.map((order) => (
+
+ ))}
+
+
+
+ );
+}
+
+export default function AccountDetails({customerAccessToken}) {
+ const {languageCode} = useShop();
+ const {countryCode = 'US'} = useSession();
+ const {data} = useShopQuery({
+ query: QUERY,
+ variables: {
+ customerAccessToken,
+ language: languageCode,
+ country: countryCode,
+ },
+ preload: true,
+ cache: NoStore(),
+ });
+
+ const customer = data && data.customer;
+
+ const orders =
+ customer?.orders?.edges.length > 0
+ ? flattenConnection(customer.orders)
+ : [];
+
+ const heading = customer
+ ? `Welcome${customer.firstName ? `, ${customer.firstName}` : ``}`
+ : 'Account Details';
+
+ const {featuredCollections, featuredProducts, locations} = data;
+
+ return (
+
+
+ {orders.length ? (
+
+ ) : (
+
+ )}
+
+
+
+
+ );
+}
+
+const QUERY = gql`
+ ${LOCATION_CARD_FIELDS}
+ ${PRODUCT_CARD_FIELDS}
+ query CustomerDetails(
+ $customerAccessToken: String!
+ $country: CountryCode
+ $language: LanguageCode
+ ) @inContext(country: $country, language: $language) {
+ customer(customerAccessToken: $customerAccessToken) {
+ firstName
+ email
+ orders(first: 25, sortKey: PROCESSED_AT, reverse: true) {
+ edges {
+ node {
+ id
+ orderNumber
+ processedAt
+ financialStatus
+ fulfillmentStatus
+ currentTotalPrice {
+ amount
+ currencyCode
+ }
+ lineItems(first: 30) {
+ edges {
+ node {
+ variant {
+ image {
+ url
+ height
+ width
+ altText
+ }
+ }
+ title
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ locations: contentEntries(first: 3, type: "stores") {
+ nodes {
+ ...LocationCardFields
+ }
+ }
+ featuredProducts: products(first: 12) {
+ nodes {
+ ...ProductCardFields
+ }
+ }
+ featuredCollections: collections(first: 3, sortKey: UPDATED_AT) {
+ nodes {
+ id
+ title
+ handle
+ image {
+ altText
+ width
+ height
+ url
+ }
+ }
+ }
+ }
+`;
diff --git a/templates/demo-store-neue/src/components/pages/NotFound.server.jsx b/templates/demo-store-neue/src/components/pages/NotFound.server.jsx
new file mode 100644
index 0000000000..1d8a09b44f
--- /dev/null
+++ b/templates/demo-store-neue/src/components/pages/NotFound.server.jsx
@@ -0,0 +1,78 @@
+import {useShopQuery, useShop, useSession, gql} from '@shopify/hydrogen';
+import {DefaultLayout as Layout} from '~/components/layouts';
+import {
+ PageHeader,
+ FeaturedCollections,
+ ProductSwimlane,
+ Locations,
+} from '~/components/sections';
+import {Text, Button} from '~/components/elements';
+
+import {PRODUCT_CARD_FIELDS, LOCATION_CARD_FIELDS} from '~/lib/fragments';
+
+export default function NotFound({type = 'page'}) {
+ const {languageCode} = useShop();
+ const {countryCode = 'US'} = useSession();
+
+ const {data} = useShopQuery({
+ query: QUERY,
+ variables: {
+ language: languageCode,
+ country: countryCode,
+ },
+ preload: true,
+ });
+
+ const heading = `We’ve lost this ${type}`;
+ const description = `We couldn’t find the ${type} you’re looking for. Try checking the URL or heading back to the home page.`;
+ const {featuredCollections, featuredProducts, locations} = data;
+ return (
+
+
+
+ {description}
+
+
+ Take me to the home page
+
+
+
+
+
+
+ );
+}
+
+const QUERY = gql`
+ ${PRODUCT_CARD_FIELDS}
+ ${LOCATION_CARD_FIELDS}
+ query homepage($country: CountryCode, $language: LanguageCode)
+ @inContext(country: $country, language: $language) {
+ featuredCollections: collections(first: 3, sortKey: UPDATED_AT) {
+ nodes {
+ id
+ title
+ handle
+ image {
+ altText
+ width
+ height
+ url
+ }
+ }
+ }
+ featuredProducts: products(first: 12) {
+ nodes {
+ ...ProductCardFields
+ }
+ }
+ locations: contentEntries(first: 3, type: "stores") {
+ nodes {
+ ...LocationCardFields
+ }
+ }
+ }
+`;
diff --git a/templates/demo-store-neue/src/components/pages/Shell.jsx b/templates/demo-store-neue/src/components/pages/Shell.jsx
new file mode 100644
index 0000000000..29edb2eecb
--- /dev/null
+++ b/templates/demo-store-neue/src/components/pages/Shell.jsx
@@ -0,0 +1,12 @@
+import {DefaultLayout as Layout} from '~/components/layouts';
+import {PageHeader, Section} from '~/components/sections';
+import {Heading, Text, Button} from '~/components/elements';
+
+export default function TemplateName() {
+ return (
+
+ {/* Header */}
+
+
+ );
+}
diff --git a/templates/demo-store-neue/src/components/pages/index.jsx b/templates/demo-store-neue/src/components/pages/index.jsx
new file mode 100644
index 0000000000..5372ade861
--- /dev/null
+++ b/templates/demo-store-neue/src/components/pages/index.jsx
@@ -0,0 +1,2 @@
+export {default as NotFound} from './NotFound.server';
+export {default as AccountDetails} from './AccountDetails.server';
diff --git a/templates/demo-store-neue/src/components/sections/AccountActivateForm.client.jsx b/templates/demo-store-neue/src/components/sections/AccountActivateForm.client.jsx
new file mode 100644
index 0000000000..a65ef9f8ef
--- /dev/null
+++ b/templates/demo-store-neue/src/components/sections/AccountActivateForm.client.jsx
@@ -0,0 +1,166 @@
+import React from 'react';
+import {useNavigate} from '@shopify/hydrogen/client';
+
+export default function AccountActivateForm({id, activationToken}) {
+ const navigate = useNavigate();
+
+ const [submitError, setSubmitError] = React.useState(null);
+
+ const [password, setPassword] = React.useState('');
+ const [passwordError, setPasswordError] = React.useState(null);
+
+ const [passwordConfirm, setPasswordConfirm] = React.useState('');
+ const [passwordConfirmError, setPasswordConfirmError] = React.useState(null);
+
+ function passwordValidation(form) {
+ setPasswordError(null);
+ setPasswordConfirmError(null);
+
+ let hasError = false;
+
+ if (!form.password.validity.valid) {
+ hasError = true;
+ setPasswordError(
+ form.password.validity.valueMissing
+ ? 'Please enter a password'
+ : 'Passwords must be at least 6 characters',
+ );
+ }
+
+ if (!form.passwordConfirm.validity.valid) {
+ hasError = true;
+ setPasswordConfirmError(
+ form.password.validity.valueMissing
+ ? 'Please re-enter a password'
+ : 'Passwords must be at least 6 characters',
+ );
+ }
+
+ if (password !== passwordConfirm) {
+ hasError = true;
+ setPasswordConfirmError('The two passwords entered did not match.');
+ }
+
+ return hasError;
+ }
+
+ async function onSubmit(event) {
+ event.preventDefault();
+
+ if (passwordValidation(event.target)) {
+ return;
+ }
+
+ const response = await callActivateApi({
+ id,
+ activationToken,
+ password,
+ });
+
+ if (response.error) {
+ setSubmitError(response.error);
+ return;
+ }
+
+ navigate('/account');
+ }
+
+ return (
+
+
+
Activate Account.
+
Create your password to activate your account.
+
+
+
+ );
+}
+
+function callActivateApi({id, activationToken, password}) {
+ return fetch(`/account/activate`, {
+ method: 'POST',
+ headers: {
+ Accept: 'application/json',
+ 'Content-Type': 'application/json',
+ },
+ body: JSON.stringify({id, activationToken, password}),
+ })
+ .then((res) => {
+ if (res.ok) {
+ return {};
+ } else {
+ return res.json();
+ }
+ })
+ .catch((error) => {
+ return {
+ error: error.toString(),
+ };
+ });
+}
diff --git a/templates/demo-store-neue/src/components/sections/AccountCreateForm.client.jsx b/templates/demo-store-neue/src/components/sections/AccountCreateForm.client.jsx
new file mode 100644
index 0000000000..44aae28568
--- /dev/null
+++ b/templates/demo-store-neue/src/components/sections/AccountCreateForm.client.jsx
@@ -0,0 +1,174 @@
+import React from 'react';
+import {useNavigate, Link} from '@shopify/hydrogen/client';
+import {callLoginApi} from './LoginForm.client';
+
+export default function AccountCreateForm() {
+ const navigate = useNavigate();
+
+ const [submitError, setSubmitError] = React.useState(null);
+
+ const [email, setEmail] = React.useState('');
+ const [emailError, setEmailError] = React.useState(null);
+
+ const [password, setPassword] = React.useState('');
+ const [passwordError, setPasswordError] = React.useState(null);
+
+ function emailValidation(email) {
+ if (email.validity.valid) return null;
+
+ return email.validity.valueMissing
+ ? 'Please enter an email'
+ : 'Please enter a valid email';
+ }
+
+ function passwordValidation(password) {
+ if (password.validity.valid) return null;
+
+ if (password.validity.valueMissing) {
+ return 'Please enter a password';
+ }
+
+ return 'Password must be at least 6 characters';
+ }
+
+ async function onSubmit(event) {
+ event.preventDefault();
+
+ setEmailError(null);
+ setPasswordError(null);
+ setSubmitError(null);
+
+ const newEmailError = emailValidation(event.target.email);
+ if (newEmailError) {
+ setEmailError(newEmailError);
+ }
+
+ const newPasswordError = passwordValidation(event.target.password);
+ if (newPasswordError) {
+ setPasswordError(newPasswordError);
+ }
+
+ if (newEmailError || newPasswordError) {
+ return;
+ }
+
+ const accountCreateResponse = await callAccountCreateApi({
+ email,
+ password,
+ });
+
+ if (accountCreateResponse.error) {
+ setSubmitError(accountCreateResponse.error);
+ return;
+ }
+
+ // this can be avoided if customerCreate mutation returns customerAccessToken
+ await callLoginApi({
+ email,
+ password,
+ });
+
+ navigate('/account');
+ }
+
+ return (
+
+ );
+}
+
+function callAccountCreateApi({email, password, firstName, lastName}) {
+ return fetch(`/account/register`, {
+ method: 'POST',
+ headers: {
+ Accept: 'application/json',
+ 'Content-Type': 'application/json',
+ },
+ body: JSON.stringify({email, password, firstName, lastName}),
+ })
+ .then((res) => {
+ if (res.status === 200) {
+ return {};
+ } else {
+ return res.json();
+ }
+ })
+ .catch((error) => {
+ return {
+ error: error.toString(),
+ };
+ });
+}
diff --git a/templates/demo-store-neue/src/components/sections/AccountRecoverForm.client.jsx b/templates/demo-store-neue/src/components/sections/AccountRecoverForm.client.jsx
new file mode 100644
index 0000000000..97cbc1fc91
--- /dev/null
+++ b/templates/demo-store-neue/src/components/sections/AccountRecoverForm.client.jsx
@@ -0,0 +1,124 @@
+import React from 'react';
+
+export default function AccountRecoverForm() {
+ const [submitSuccess, setSubmitSuccess] = React.useState(false);
+ const [submitError, setSubmitError] = React.useState(null);
+
+ const [email, setEmail] = React.useState('');
+ const [emailError, setEmailError] = React.useState(null);
+
+ function emailValidation(email) {
+ if (email.validity.valid) return null;
+
+ return email.validity.valueMissing
+ ? 'Please enter an email'
+ : 'Please enter a valid email';
+ }
+
+ async function onSubmit(event) {
+ event.preventDefault();
+
+ setEmailError(null);
+ setSubmitError(null);
+
+ const newEmailError = emailValidation(event.target.email);
+
+ if (newEmailError) {
+ setEmailError(newEmailError);
+ return;
+ }
+
+ await callAccountRecoverApi({
+ email,
+ });
+
+ setEmail('');
+ setSubmitSuccess(true);
+ }
+
+ return (
+
+
+ {submitSuccess ? (
+ <>
+
Request Sent.
+
+ If that email address is in our system, you will receive an email
+ with instructions about how to reset your password in a few
+ minutes.
+
+ >
+ ) : (
+ <>
+
Forgot Password.
+
+ Enter the email address associated with your account to recieve a
+ link to reset your password.
+
+ >
+ )}
+
+
+
+ );
+}
+
+function callAccountRecoverApi({email, password, firstName, lastName}) {
+ return fetch(`/account/recover`, {
+ method: 'POST',
+ headers: {
+ Accept: 'application/json',
+ 'Content-Type': 'application/json',
+ },
+ body: JSON.stringify({email, password, firstName, lastName}),
+ })
+ .then((res) => {
+ if (res.status === 200) {
+ return {};
+ } else {
+ return res.json();
+ }
+ })
+ .catch((error) => {
+ return {
+ error: error.toString(),
+ };
+ });
+}
diff --git a/templates/demo-store-neue/src/components/sections/CartDetails.client.jsx b/templates/demo-store-neue/src/components/sections/CartDetails.client.jsx
new file mode 100644
index 0000000000..9624be5f84
--- /dev/null
+++ b/templates/demo-store-neue/src/components/sections/CartDetails.client.jsx
@@ -0,0 +1,189 @@
+import {
+ useCart,
+ useCartLine,
+ CartLineProvider,
+ CartShopPayButton,
+ CartLineQuantityAdjustButton,
+ CartLinePrice,
+ CartLineQuantity,
+ Image,
+ Link,
+ Money,
+} from '@shopify/hydrogen';
+
+import {Button, Heading, IconClose, Text} from '../elements';
+
+export default function CartDetails() {
+ const {lines, checkoutUrl, estimatedCost} = useCart();
+
+ return (
+
+ );
+}
+
+function CartLineItem({line}) {
+ const {linesRemove} = useCart();
+ const {id: lineId, quantity, merchandise} = useCartLine();
+
+ return (
+
+
+
+
+
+
+
+
+
+ {merchandise.product.title}
+
+
+
+ {merchandise.selectedOptions.map((option) => (
+
+ {option.name}: {option.value}
+
+ ))}
+
+
+
+
+
+
+
+
+
+ Quantity, {quantity}
+
+
+
+ −
+
+
+
+ +
+
+
+
+
+ linesRemove(lineId)}
+ >
+ Remove
+
+
+
+
+
+
+
+
+ );
+}
diff --git a/templates/demo-store-neue/src/components/sections/FeaturedCollections.jsx b/templates/demo-store-neue/src/components/sections/FeaturedCollections.jsx
new file mode 100644
index 0000000000..ccae29d5b5
--- /dev/null
+++ b/templates/demo-store-neue/src/components/sections/FeaturedCollections.jsx
@@ -0,0 +1,34 @@
+import Section from './Section';
+import {Link, Image} from '@shopify/hydrogen';
+import {Heading, Grid} from '~/components/elements';
+
+// TODO: This should be consolidated with Locations into a more generic presentational component
+
+export default function FeaturedCollections({
+ data,
+ title = 'Collections',
+ passthroughProps,
+}) {
+ return (
+
+
+ {data.map((collection) => (
+
+
+ {collection?.image && (
+
+ )}
+ {collection.title}
+
+
+ ))}
+
+
+ );
+}
diff --git a/templates/demo-store-neue/src/components/sections/Footer.client.jsx b/templates/demo-store-neue/src/components/sections/Footer.client.jsx
new file mode 100644
index 0000000000..f5fbed71ea
--- /dev/null
+++ b/templates/demo-store-neue/src/components/sections/Footer.client.jsx
@@ -0,0 +1,65 @@
+import {Link} from '@shopify/hydrogen';
+import {CountrySelector} from '~/components/blocks';
+import {Heading} from '../elements';
+import {footer as mockData} from '~/lib/placeholders';
+import Section from './Section';
+import {Disclosure} from '@headlessui/react';
+
+/**
+ * A server component that specifies the content of the footer on the website
+ */
+
+export default function Footer({menus = mockData}) {
+ const styles = {
+ footer:
+ 'grid items-start w-full grid-flow-row grid-cols-1 gap-6 py-8 px-4 md:px-8 lg:px-12 border-b md:gap-8 lg:gap-12 md:grid-cols-2 lg:grid-cols-4 bg-primary dark:bg-contrast dark:text-primary text-contrast',
+ section: 'grid gap-4',
+ nav: 'grid gap-2 pb-6',
+ };
+
+ return (
+
+ {menus.map((menu) => (
+
+
+ {({open}) => (
+ <>
+
+
+ {menu.title}
+
+
+
+
+
+ {menu.links.map((link) => (
+
+ {link.title}
+
+ ))}
+
+
+
+ >
+ )}
+
+
+ ))}
+
+
+ © {new Date().getFullYear()} / Shopify, Inc. Hydrogen is an MIT
+ Licensed Open Source project. This website is carbon neutral.
+
+
+ );
+}
diff --git a/templates/demo-store-neue/src/components/sections/Header.client.jsx b/templates/demo-store-neue/src/components/sections/Header.client.jsx
new file mode 100644
index 0000000000..79a8b4678e
--- /dev/null
+++ b/templates/demo-store-neue/src/components/sections/Header.client.jsx
@@ -0,0 +1,160 @@
+import {Link, useUrl, useCart} from '@shopify/hydrogen';
+
+import {
+ IconSearch,
+ IconHelp,
+ IconAccount,
+ IconBag,
+ IconMenu,
+ Input,
+ Heading,
+} from '~/components/elements';
+
+/**
+ * A client component that specifies the content of the header on the website
+ */
+export default function Header({title}) {
+ const {pathname} = useUrl();
+
+ const home = pathname === '/';
+
+ return (
+ <>
+
+
+ >
+ );
+}
+
+function MobileHeader({title, home}) {
+ const {totalQuantity} = useCart();
+
+ const styles = {
+ button: 'relative flex items-center justify-center w-8 h-8',
+ container: `${
+ home
+ ? 'bg-primary/80 dark:bg-contrast/60 text-contrast dark:text-primary shadow-darkHeader'
+ : 'bg-contrast/80 text-primary'
+ } lg:hidden flex items-center h-12 md:h-16 sticky backdrop-blur-lg z-40 top-0 justify-between w-full leading-none gap-4 px-4 md:px-8`,
+ };
+
+ return (
+
+
+
+
+
+
+
+
+
+
+ {title}
+
+
+
+
+
+
+
+
+
+
+
+
+
+ );
+}
+
+function DesktopHeader({title, home}) {
+ const {totalQuantity} = useCart();
+
+ const styles = {
+ button: 'relative flex items-center justify-center w-8 h-8',
+ container: `${
+ home
+ ? 'bg-primary/80 dark:bg-contrast/60 text-contrast dark:text-primary shadow-darkHeader'
+ : 'bg-contrast/80 text-primary'
+ } hidden lg:flex items-center sticky backdrop-blur-lg z-40 top-0 justify-between w-full leading-none gap-8 px-12 py-8`,
+ };
+
+ return (
+
+ {/* TODO: Have dynamic component for Mobile vs. Desktop headers */}
+
+
+ {title}
+
+
+ {/* TODO: Replace with Navigation API */}
+ Collections
+ Products
+ Locations
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ );
+}
+
+function CartBadge({dark, quantity}) {
+ if (quantity < 1) {
+ return null;
+ }
+ return (
+
+ {quantity}
+
+ );
+}
diff --git a/templates/demo-store-neue/src/components/sections/Hero.jsx b/templates/demo-store-neue/src/components/sections/Hero.jsx
new file mode 100644
index 0000000000..675265d1b9
--- /dev/null
+++ b/templates/demo-store-neue/src/components/sections/Hero.jsx
@@ -0,0 +1,78 @@
+import {Image, Video, Link} from '@shopify/hydrogen';
+import {Heading, Text} from '../elements';
+import {hero as mockData} from '~/lib/placeholders';
+
+export default function Hero({data = mockData, height, top}) {
+ const {title, byline, cta, url, spread, spread_secondary, text_color} = data;
+
+ return (
+
+
+
+ {spread?.reference && (
+
+
+
+ )}
+ {spread_secondary?.reference && (
+
+
+
+ )}
+
+
+
+ {title.value}
+
+ {byline && (
+
+ {byline.value}
+
+ )}
+ {cta.value}
+
+
+
+ );
+}
+
+function SpreadMedia({data}) {
+ if (data.mediaContentType === 'VIDEO') {
+ return (
+
+ );
+ }
+
+ if (data.mediaContentType === 'IMAGE') {
+ return (
+
+ );
+ }
+
+ return null;
+}
diff --git a/templates/demo-store-neue/src/components/sections/Locations.jsx b/templates/demo-store-neue/src/components/sections/Locations.jsx
new file mode 100644
index 0000000000..2734edf9cf
--- /dev/null
+++ b/templates/demo-store-neue/src/components/sections/Locations.jsx
@@ -0,0 +1,34 @@
+import {Link, Image} from '@shopify/hydrogen';
+import {Grid} from '~/components/elements';
+import Section from './Section';
+
+// TODO: This should be consolidated with FeaturedCollections into a more generic presentational component
+
+export default function Locations({title = 'Locations', data}) {
+ return (
+
+
+ {data && data.map((location, i) => )}
+
+
+ );
+}
+
+// TODO: Abstract this duplicate (also found in /routes/locations/index.server.jsx)
+function Card({to, data}) {
+ return (
+
+
+
+
+ {data.title.value}
+
+ );
+}
diff --git a/templates/demo-store-neue/src/components/sections/LoginForm.client.jsx b/templates/demo-store-neue/src/components/sections/LoginForm.client.jsx
new file mode 100644
index 0000000000..bc7c05ea08
--- /dev/null
+++ b/templates/demo-store-neue/src/components/sections/LoginForm.client.jsx
@@ -0,0 +1,248 @@
+import React from 'react';
+import {useNavigate, Link} from '@shopify/hydrogen/client';
+
+export default function LoginForm({shopName}) {
+ const navigate = useNavigate();
+ const [hasSubmitError, setHasSubmitError] = React.useState(false);
+ const [showEmailField, setShowEmailField] = React.useState(true);
+
+ const [email, setEmail] = React.useState('');
+ const [emailError, setEmailError] = React.useState(null);
+
+ const [password, setPassword] = React.useState('');
+ const [passwordError, setPasswordError] = React.useState(null);
+
+ function onSubmit(event) {
+ event.preventDefault();
+
+ setEmailError(null);
+ setHasSubmitError(false);
+ setPasswordError(null);
+
+ if (showEmailField) {
+ checkEmail(event);
+ } else {
+ checkPassword(event);
+ }
+ }
+
+ function checkEmail(event) {
+ if (event.target.email.validity.valid) {
+ setShowEmailField(false);
+ } else {
+ setEmailError('Please enter a valid email');
+ }
+ }
+
+ async function checkPassword(event) {
+ const validity = event.target.password.validity;
+ if (validity.valid) {
+ const response = await callLoginApi({
+ email,
+ password,
+ });
+
+ if (response.error) {
+ setHasSubmitError(true);
+ resetForm();
+ } else {
+ navigate('/account');
+ }
+ } else {
+ setPasswordError(
+ validity.valueMissing
+ ? 'Please enter a password'
+ : 'Passwords must be at least 6 characters',
+ );
+ }
+ }
+
+ function resetForm() {
+ setShowEmailField(true);
+ setEmail('');
+ setEmailError(null);
+ setPassword('');
+ setPasswordError(null);
+ }
+
+ return (
+
+ );
+}
+
+export function callLoginApi({email, password}) {
+ return fetch(`/account/login`, {
+ method: 'POST',
+ headers: {
+ Accept: 'application/json',
+ 'Content-Type': 'application/json',
+ },
+ body: JSON.stringify({email, password}),
+ })
+ .then((res) => {
+ if (res.ok) {
+ return {};
+ } else {
+ return res.json();
+ }
+ })
+ .catch((error) => {
+ return {
+ error: error.toString(),
+ };
+ });
+}
+
+function EmailField({email, setEmail, emailError, shopName}) {
+ return (
+ <>
+
+
{
+ setEmail(event.target.value);
+ }}
+ />
+ {!emailError ? (
+ ''
+ ) : (
+
{emailError}
+ )}
+
+
+
+ Next
+
+
+
+
+ New to {shopName}?
+
+ Create an account
+
+
+
+ >
+ );
+}
+
+function ValidEmail({email, resetForm}) {
+ return (
+
+
+
+
+ Change email
+
+
+
+ );
+}
+
+function PasswordField({password, setPassword, passwordError}) {
+ return (
+ <>
+
+
{
+ setPassword(event.target.value);
+ }}
+ />
+ {!passwordError ? (
+ ''
+ ) : (
+
{passwordError}
+ )}
+
+
+
+ Sign in
+
+
+
+
+
+ Forgot password
+
+
+ >
+ );
+}
diff --git a/templates/demo-store-neue/src/components/sections/PageHeader.jsx b/templates/demo-store-neue/src/components/sections/PageHeader.jsx
new file mode 100644
index 0000000000..158c3e9641
--- /dev/null
+++ b/templates/demo-store-neue/src/components/sections/PageHeader.jsx
@@ -0,0 +1,25 @@
+import clsx from 'clsx';
+import {Heading} from '../elements';
+export default function PageHeader({
+ heading,
+ variant = 'default',
+ className,
+ children,
+}) {
+ const variants = {
+ default: 'grid w-full gap-8 p-4 py-8 md:p-8 lg:p-12 justify-items-start',
+ allCollections:
+ 'flex justify-between items-baseline gap-8 p-4 md:p-8 lg:p-12',
+ };
+ const styles = clsx(variants[variant], className);
+ return (
+
+ {heading && (
+
+ {heading}
+
+ )}
+ {children}
+
+ );
+}
diff --git a/templates/demo-store-neue/src/components/sections/PasswordResetForm.client.jsx b/templates/demo-store-neue/src/components/sections/PasswordResetForm.client.jsx
new file mode 100644
index 0000000000..37513aa16c
--- /dev/null
+++ b/templates/demo-store-neue/src/components/sections/PasswordResetForm.client.jsx
@@ -0,0 +1,166 @@
+import React from 'react';
+import {useNavigate} from '@shopify/hydrogen/client';
+
+export default function PasswordResetForm({id, resetToken}) {
+ const navigate = useNavigate();
+
+ const [submitError, setSubmitError] = React.useState(null);
+
+ const [password, setPassword] = React.useState('');
+ const [passwordError, setPasswordError] = React.useState(null);
+
+ const [passwordConfirm, setPasswordConfirm] = React.useState('');
+ const [passwordConfirmError, setPasswordConfirmError] = React.useState(null);
+
+ function passwordValidation(form) {
+ setPasswordError(null);
+ setPasswordConfirmError(null);
+
+ let hasError = false;
+
+ if (!form.password.validity.valid) {
+ hasError = true;
+ setPasswordError(
+ form.password.validity.valueMissing
+ ? 'Please enter a password'
+ : 'Passwords must be at least 6 characters',
+ );
+ }
+
+ if (!form.passwordConfirm.validity.valid) {
+ hasError = true;
+ setPasswordConfirmError(
+ form.password.validity.valueMissing
+ ? 'Please re-enter a password'
+ : 'Passwords must be at least 6 characters',
+ );
+ }
+
+ if (password !== passwordConfirm) {
+ hasError = true;
+ setPasswordConfirmError('The two password entered did not match.');
+ }
+
+ return hasError;
+ }
+
+ async function onSubmit(event) {
+ event.preventDefault();
+
+ if (passwordValidation(event.target)) {
+ return;
+ }
+
+ const response = await callPasswordResetApi({
+ id,
+ resetToken,
+ password,
+ });
+
+ if (response.error) {
+ setSubmitError(response.error);
+ return;
+ }
+
+ navigate('/account');
+ }
+
+ return (
+
+
+
Reset Password.
+
Enter a new password for your account.
+
+
+
+ );
+}
+
+function callPasswordResetApi({id, resetToken, password}) {
+ return fetch(`/account/reset`, {
+ method: 'POST',
+ headers: {
+ Accept: 'application/json',
+ 'Content-Type': 'application/json',
+ },
+ body: JSON.stringify({id, resetToken, password}),
+ })
+ .then((res) => {
+ if (res.ok) {
+ return {};
+ } else {
+ return res.json();
+ }
+ })
+ .catch((error) => {
+ return {
+ error: error.toString(),
+ };
+ });
+}
diff --git a/templates/demo-store-neue/src/components/sections/ProductGrid.client.jsx b/templates/demo-store-neue/src/components/sections/ProductGrid.client.jsx
new file mode 100644
index 0000000000..d695334f84
--- /dev/null
+++ b/templates/demo-store-neue/src/components/sections/ProductGrid.client.jsx
@@ -0,0 +1,75 @@
+import {useState, useRef, useEffect, useCallback} from 'react';
+import {flattenConnection} from '@shopify/hydrogen';
+
+import {Grid} from '~/components/elements';
+import {ProductCard} from '~/components/blocks';
+
+export default function ProductGrid({data}) {
+ const nextButtonRef = useRef(null);
+ const initialProducts = data.collection.products.nodes;
+ const {hasNextPage, endCursor} = data.collection.products.pageInfo;
+
+ const [products, setProducts] = useState(initialProducts);
+ const [cursor, setCursor] = useState(endCursor);
+ const [nextPage, setNextPage] = useState(hasNextPage);
+ const [pending, setPending] = useState(false);
+
+ const fetchProducts = async () => {
+ setPending(true);
+ // TODO: Update this logic to use Hydrogen hooks (URL, fetchSync) where appropriate.
+ const url = new URL(window.location.href);
+ url.searchParams.set('cursor', cursor);
+
+ const response = await fetch(url, {method: 'POST'});
+ const json = await response.json();
+ const newProducts = flattenConnection(json.data.collection.products);
+ const {endCursor, hasNextPage} = json.data.collection.products.pageInfo;
+
+ setProducts([...products, ...newProducts]);
+ setCursor(endCursor);
+ setNextPage(hasNextPage);
+ setPending(false);
+ };
+
+ const handleIntersect = useCallback((entries) => {
+ entries.forEach((entry) => {
+ if (entry.isIntersecting) {
+ fetchProducts();
+ }
+ });
+ }, []);
+
+ useEffect(() => {
+ const observer = new IntersectionObserver(handleIntersect, {
+ threshold: 0.1,
+ rootMargin: '100px',
+ });
+
+ if (nextButtonRef.current) observer.observe(nextButtonRef.current);
+
+ return () => {
+ if (nextButtonRef.current) observer.unobserve(nextButtonRef.current);
+ };
+ }, [nextButtonRef, cursor, handleIntersect]);
+
+ return (
+ <>
+
+ {products.map((product) => (
+
+ ))}
+
+
+ {nextPage && (
+
+ {pending ? 'Loading...' : 'Load more products'}
+
+ )}
+ >
+ );
+}
diff --git a/templates/demo-store-neue/src/components/sections/ProductSwimlane.jsx b/templates/demo-store-neue/src/components/sections/ProductSwimlane.jsx
new file mode 100644
index 0000000000..ee1a15ef11
--- /dev/null
+++ b/templates/demo-store-neue/src/components/sections/ProductSwimlane.jsx
@@ -0,0 +1,98 @@
+import {gql, useShopQuery} from '@shopify/hydrogen';
+import Section from './Section';
+import {ProductCard} from '~/components/blocks';
+import {PRODUCT_CARD_FIELDS} from '~/lib/fragments';
+
+const mockProducts = new Array(12).fill('');
+
+export default function ProductSwimlane({
+ title = 'Featured Products',
+ data = mockProducts,
+ count = 12,
+ ...passthroughProps
+}) {
+ const products = (data, count) => {
+ // If the data is already provided, there's no need to query it, so we'll just return the data
+ if (typeof data === 'object') {
+ return data;
+ }
+
+ // If the data provided is a productId, we will query the productRecommendations API.
+ // To make sure we have enough products for the swimlane, we'll combine the results with our top selling products.
+ if (typeof data === 'string') {
+ const {data: products} = useShopQuery({
+ query: RECOMMENDED_PRODUCTS,
+ variables: {
+ count: count,
+ productId: data,
+ },
+ });
+
+ const mergedProducts = products.recommended
+ .concat(products.additional.nodes)
+ .filter(
+ (value, index, array) =>
+ array.findIndex((value2) => value2.id === value.id) === index,
+ );
+
+ const originalProduct = mergedProducts
+ .map((item) => item.id)
+ .indexOf(data);
+
+ mergedProducts.splice(originalProduct, 1);
+
+ return mergedProducts;
+ }
+
+ // If no data is provided, we'll go and query the top products
+ const {
+ data: {products},
+ } = useShopQuery({
+ query: TOP_PRODUCTS,
+ variables: {
+ count: count,
+ },
+ });
+
+ return products.nodes;
+ };
+
+ return (
+
+
+ {products(data, count).map((product) => (
+
+ ))}
+
+
+ );
+}
+
+const RECOMMENDED_PRODUCTS = gql`
+ ${PRODUCT_CARD_FIELDS}
+ query productRecommendations($productId: ID!, $count: Int) {
+ recommended: productRecommendations(productId: $productId) {
+ ...ProductCardFields
+ }
+ additional: products(first: $count, sortKey: BEST_SELLING) {
+ nodes {
+ ...ProductCardFields
+ }
+ }
+ }
+`;
+
+const TOP_PRODUCTS = gql`
+ ${PRODUCT_CARD_FIELDS}
+ query topProducts($count: Int) {
+ products(first: $count, sortKey: BEST_SELLING) {
+ nodes {
+ ...ProductCardFields
+ }
+ }
+ }
+`;
diff --git a/templates/demo-store-neue/src/components/sections/Section.jsx b/templates/demo-store-neue/src/components/sections/Section.jsx
new file mode 100644
index 0000000000..b1762187ab
--- /dev/null
+++ b/templates/demo-store-neue/src/components/sections/Section.jsx
@@ -0,0 +1,45 @@
+import clsx from 'clsx';
+import {Heading} from '~/components/elements';
+import {missingClass} from '~/lib/utils';
+
+export default function Section({
+ as = 'section',
+ heading,
+ children,
+ className,
+ divider,
+ padding = 'all',
+}) {
+ const Component = as;
+
+ const paddings = {
+ x: 'px-4 md:px-8 lg:px-12',
+ y: 'py-6 md:py-8 lg:py-12',
+ swimlane: 'pt-4 md:pt-8 lg:pt-12 md:pb-4 lg:pb-8',
+ all: 'p-4 py-6 md:p-8 lg:p-12',
+ };
+
+ const dividers = {
+ top: 'border-t border-light',
+ bottom: 'border-b border-light',
+ both: 'border-y border-light',
+ };
+
+ const styles = clsx(
+ 'w-full grid gap-4 md:gap-8',
+ missingClass(className, 'p[xy]?-') && paddings[padding],
+ dividers[divider],
+ className,
+ );
+
+ return (
+
+ {heading && (
+
+ {heading}
+
+ )}
+ {children}
+
+ );
+}
diff --git a/templates/demo-store-neue/src/components/sections/index.jsx b/templates/demo-store-neue/src/components/sections/index.jsx
new file mode 100644
index 0000000000..e08491a623
--- /dev/null
+++ b/templates/demo-store-neue/src/components/sections/index.jsx
@@ -0,0 +1,18 @@
+export {default as Hero} from './Hero';
+
+// TODO: Combine these two as a more generic component
+export {default as FeaturedCollections} from './FeaturedCollections';
+export {default as Locations} from './Locations';
+
+// TODO: Abstract Swimlane as a generic presentational component
+export {default as ProductSwimlane} from './ProductSwimlane';
+export {default as Header} from './Header.client';
+export {default as Footer} from './Footer.client';
+export {default as Section} from './Section';
+export {default as PageHeader} from './PageHeader';
+export {default as ProductGrid} from './ProductGrid.client';
+
+// Account Sections
+export {default as AccountCreateForm} from './AccountCreateForm.client';
+export {default as LoginForm} from './LoginForm.client';
+export {default as AccountActivateForm} from './AccountActivateForm.client';
diff --git a/templates/demo-store-neue/src/components/sections/products/ProductForm.client.jsx b/templates/demo-store-neue/src/components/sections/products/ProductForm.client.jsx
new file mode 100644
index 0000000000..07a5962825
--- /dev/null
+++ b/templates/demo-store-neue/src/components/sections/products/ProductForm.client.jsx
@@ -0,0 +1,128 @@
+import {useEffect, useState} from 'react';
+import {
+ useProductOptions,
+ isBrowser,
+ useUrl,
+ AddToCartButton,
+ ShopPayButton,
+} from '@shopify/hydrogen';
+import {Heading, Text, Button} from '~/components/elements';
+
+export default function ProductForm() {
+ const {pathname, search} = useUrl();
+ const [params, setParams] = useState(new URLSearchParams(search));
+
+ const {options, setSelectedOption, selectedOptions, selectedVariant} =
+ useProductOptions();
+
+ const isOutOfStock = !selectedVariant?.availableForSale || false;
+
+ useEffect(() => {
+ options.map(({name, values}) => {
+ if (params) {
+ const currentValue = params.get(name.toLowerCase()) || null;
+ if (currentValue) {
+ const matchedValue = values.filter(
+ (value) => encodeURIComponent(value.toLowerCase()) === currentValue,
+ );
+ setSelectedOption(name, matchedValue[0]);
+ } else {
+ setParams(
+ params.set(
+ encodeURIComponent(name.toLowerCase()),
+ encodeURIComponent(selectedOptions[name].toLowerCase()),
+ ),
+ );
+ window.history.replaceState(
+ null,
+ '',
+ `${pathname}?${params.toString()}`,
+ );
+ }
+ }
+ });
+ }, []);
+
+ function handleChange(name, value) {
+ setSelectedOption(name, value);
+ params.set(
+ encodeURIComponent(name.toLowerCase()),
+ encodeURIComponent(value.toLowerCase()),
+ );
+ if (isBrowser()) {
+ window.history.replaceState(null, '', `${pathname}?${params.toString()}`);
+ }
+ }
+
+ return (
+
+ );
+}
diff --git a/templates/demo-store-neue/src/components/sections/products/ProductGallery.client.jsx b/templates/demo-store-neue/src/components/sections/products/ProductGallery.client.jsx
new file mode 100644
index 0000000000..b7bb081d54
--- /dev/null
+++ b/templates/demo-store-neue/src/components/sections/products/ProductGallery.client.jsx
@@ -0,0 +1,53 @@
+import {MediaFile} from '@shopify/hydrogen/client';
+
+/**
+ * A client component that defines a media gallery for hosting images, 3D models, and videos of products
+ */
+export default function Gallery({media, className}) {
+ if (!media.length) {
+ return null;
+ }
+
+ return (
+
+ {media.map((med, i) => {
+ let extraProps = {};
+
+ if (med.mediaContentType === 'MODEL_3D') {
+ extraProps = {
+ interactionPromptThreshold: '0',
+ ar: true,
+ loading: 'eager',
+ disableZoom: true,
+ };
+ }
+
+ const data = {
+ ...med,
+ alt: med.alt || 'Product image',
+ };
+
+ return (
+
+
+
+ );
+ })}
+
+ );
+}
diff --git a/templates/demo-store-neue/src/components/sections/products/ProductInfo.client.jsx b/templates/demo-store-neue/src/components/sections/products/ProductInfo.client.jsx
new file mode 100644
index 0000000000..0d457bfe34
--- /dev/null
+++ b/templates/demo-store-neue/src/components/sections/products/ProductInfo.client.jsx
@@ -0,0 +1,23 @@
+import {productInfo} from '~/lib/placeholders';
+import {Text} from '~/components/elements';
+import {Disclosure} from '@headlessui/react';
+
+export default function ProductInfo({data = productInfo}) {
+ return (
+
+ {data.map((section) => (
+
+
+
+ {section.title}
+
+
+
+
+ {section.content}
+
+
+ ))}
+
+ );
+}
diff --git a/templates/demo-store-neue/src/components/sections/products/index.jsx b/templates/demo-store-neue/src/components/sections/products/index.jsx
new file mode 100644
index 0000000000..64f414d4d0
--- /dev/null
+++ b/templates/demo-store-neue/src/components/sections/products/index.jsx
@@ -0,0 +1,3 @@
+export {default as ProductForm} from './ProductForm.client';
+export {default as ProductGallery} from './ProductGallery.client';
+export {default as ProductInfo} from './ProductInfo.client';
diff --git a/templates/demo-store-neue/src/lib/fragments.js b/templates/demo-store-neue/src/lib/fragments.js
new file mode 100644
index 0000000000..079bb8d563
--- /dev/null
+++ b/templates/demo-store-neue/src/lib/fragments.js
@@ -0,0 +1,100 @@
+import {gql} from '@shopify/hydrogen';
+
+export const MEDIA_FIELDS = gql`
+ fragment MediaFields on Media {
+ mediaContentType
+ alt
+ previewImage {
+ url
+ }
+ ... on MediaImage {
+ id
+ image {
+ url
+ width
+ height
+ }
+ }
+ ... on Video {
+ id
+ sources {
+ mimeType
+ url
+ }
+ }
+ ... on Model3d {
+ id
+ sources {
+ mimeType
+ url
+ }
+ }
+ ... on ExternalVideo {
+ id
+ embedUrl
+ host
+ }
+ }
+`;
+
+export const PRODUCT_CARD_FIELDS = gql`
+ fragment ProductCardFields on Product {
+ id
+ title
+ publishedAt
+ handle
+ variants(first: 1) {
+ nodes {
+ id
+ image {
+ url
+ altText
+ width
+ height
+ }
+ priceV2 {
+ amount
+ currencyCode
+ }
+ compareAtPriceV2 {
+ amount
+ currencyCode
+ }
+ }
+ }
+ }
+`;
+
+export const LOCATION_CARD_FIELDS = gql`
+ fragment LocationCardFields on ContentEntry {
+ id
+ handle
+ featured_image: field(key: "featured_image") {
+ reference {
+ ... on MediaImage {
+ image {
+ url
+ width
+ height
+ altText
+ }
+ }
+ }
+ }
+ title: field(key: "title") {
+ value
+ }
+ address: field(key: "address") {
+ value
+ }
+ hours: field(key: "hours") {
+ value
+ }
+ email: field(key: "email") {
+ value
+ }
+ phone: field(key: "phone") {
+ value
+ }
+ }
+`;
diff --git a/templates/demo-store-neue/src/lib/placeholders.js b/templates/demo-store-neue/src/lib/placeholders.js
new file mode 100644
index 0000000000..799fd58df5
--- /dev/null
+++ b/templates/demo-store-neue/src/lib/placeholders.js
@@ -0,0 +1,226 @@
+export const hero = {
+ title: {
+ value: 'The Freestyle Collection',
+ },
+ byline: {
+ value:
+ 'Light, short and flexible, designed for tricks in terrain parks and halfpipes for all levels of experience.',
+ },
+ cta: {
+ value: 'Shop Now →',
+ },
+ url: {
+ value: '/collections/freestyle-collection',
+ },
+ spread: {
+ reference: {
+ image: {
+ url: 'https://cdn.shopify.com/s/files/1/0551/4566/0472/files/spread-01.jpg?v=1654019522',
+ width: 1512,
+ height: 1968,
+ },
+ },
+ },
+ spread_secondary: {
+ reference: {
+ image: {
+ url: 'https://cdn.shopify.com/s/files/1/0551/4566/0472/files/spread-02.jpg?v=1654019521',
+ width: 1512,
+ height: 1968,
+ },
+ },
+ },
+ text_color: {
+ value: 'Contrast',
+ },
+};
+
+export const product = {
+ label: 'Limited Edition' /* Metafield */,
+ id: 'gid://shopify/Product/6730850828344',
+ title: 'The Hydrogen',
+ publishedAt: '2021-06-17T18:33:17Z',
+ handle: 'snowboard',
+ description:
+ "Description Our flagship board, ideal for technical terrain and those who dare to go where the chairlift can't take you. The Hydrogen excels in the backcountry making riding out of bounds as easy as resort groomers. New for 2021, the Hydrogen Snowboard has Oxygen Pack inserts giving you more float on the deepest days. Care Guide Clean well after use Wax regularly Specs Weight: 5 lb Length: 4 ft Width: 1 ft Manufactured on: 8/2/2021, 3:30:00 PM Manufactured by: Shopify",
+ priceRange: {
+ minVariantPrice: {
+ amount: '775.0',
+ currencyCode: 'CAD',
+ },
+ maxVariantPrice: {
+ amount: '775.0',
+ currencyCode: 'CAD',
+ },
+ },
+ options: [
+ {
+ name: 'Color',
+ values: ['Morning', 'Evening', 'Night'],
+ },
+ {
+ name: 'Size',
+ values: ['154', '158', '160'],
+ },
+ ],
+ variants: {
+ nodes: [
+ {
+ id: 'gid://shopify/ProductVariant/41007289630776',
+ image: {
+ url: 'https://cdn.shopify.com/s/files/1/0551/4566/0472/products/hydrogen-morning.jpg?v=1636146509',
+ altText: 'The Hydrogen snowboard, color Morning',
+ width: 1200,
+ height: 1504,
+ },
+ priceV2: {
+ amount: '775.0',
+ currencyCode: 'CAD',
+ },
+ compareAtPriceV2: {
+ amount: '840.0',
+ currencyCode: 'CAD',
+ },
+ },
+ ],
+ },
+};
+
+export const location = {
+ contentEntry: {
+ id: 'gid://shopify/contentEntry/7176248',
+ featured_image: {
+ reference: {
+ image: {
+ url: 'https://cdn.shopify.com/s/files/1/0551/4566/0472/files/kotn-toronto.jpg?v=1653965858',
+ width: 4400,
+ height: 2927,
+ },
+ },
+ },
+ title: {
+ value: 'Toronto',
+ },
+ address: {
+ value: '754 Queen St W\nToronto, ON\nM4M 3N8',
+ },
+ hours: {
+ value: '["Monday-Saturday: 11am-6pm","Sunday: 12pm-6pm"]',
+ },
+ email: {
+ value: 'toronto@snowdevil.com',
+ },
+ phone: {
+ value: '416-363-5656',
+ },
+ },
+};
+
+export const productInfo = [
+ {
+ title: 'Description',
+ content:
+ 'We threw snow tires on our core classics... Good for all year round! Named after my favorite football match of the year. Just like any of our joints, dress them up or down...',
+ },
+ {
+ title: 'Size and Fit',
+ content:
+ 'We threw snow tires on our core classics... Good for all year round! Named after my favorite football match of the year. Just like any of our joints, dress them up or down...',
+ },
+ {
+ title: 'Delivery and Returns',
+ content:
+ 'We threw snow tires on our core classics... Good for all year round! Named after my favorite football match of the year. Just like any of our joints, dress them up or down...',
+ },
+];
+
+export const footer = [
+ {
+ id: 1,
+ title: 'Community',
+ links: [
+ {
+ id: 1,
+ url: 'https://discord.gg/ppSbThrFaS',
+ title: 'Discord',
+ },
+ {
+ id: 2,
+ url: 'https://github.com/Shopify/hydrogen',
+ title: 'Github',
+ },
+ {
+ id: 3,
+ url: 'https://twitter.com/shopifydevs',
+ title: 'Twitter',
+ },
+ {
+ id: 4,
+ url: '/',
+ title: 'Forums',
+ },
+ {
+ id: 5,
+ url: '/',
+ title: 'Support',
+ },
+ ],
+ },
+ {
+ id: 2,
+ title: 'Learning',
+ links: [
+ {
+ id: 6,
+ url: 'https://shopify.dev/custom-storefronts/hydrogen',
+ title: 'End-to-end Tutorial',
+ },
+ {
+ id: 7,
+ url: 'https://shopify.dev/custom-storefronts/hydrogen',
+ title: 'Documentation',
+ },
+ {
+ id: 8,
+ url: '/',
+ title: 'A Book on Hydrogen',
+ },
+ {
+ id: 9,
+ url: 'https://youtube.com',
+ title: 'Popular Youtube Series',
+ },
+ {
+ id: 10,
+ url: 'https://github.com/Shopify/awesome-hydrogen',
+ title: 'Awesome Repo',
+ },
+ ],
+ },
+ {
+ id: 3,
+ title: 'More from Shopify',
+ links: [
+ {
+ id: 1,
+ title: 'Content & Metafields',
+ url: '/',
+ },
+ {
+ id: 2,
+ title: 'Shop Pay',
+ url: '/',
+ },
+ {
+ id: 3,
+ title: 'Audiences',
+ url: '/',
+ },
+ {
+ id: 4,
+ title: 'Markets',
+ url: '/',
+ },
+ ],
+ },
+];
diff --git a/templates/demo-store-neue/src/lib/utils.js b/templates/demo-store-neue/src/lib/utils.js
new file mode 100644
index 0000000000..97f2476cef
--- /dev/null
+++ b/templates/demo-store-neue/src/lib/utils.js
@@ -0,0 +1,57 @@
+import typographicBase from 'typographic-base';
+
+export function missingClass(string, prefix) {
+ if (!string) {
+ return true;
+ }
+
+ const regex = new RegExp(` ?${prefix}`, 'g');
+ return string.match(regex) === null;
+}
+
+export function formatText(input) {
+ if (!input) {
+ return;
+ }
+
+ if (typeof input !== 'string') {
+ return input;
+ }
+
+ return typographicBase(input, {locale: 'en-us'}).replace(
+ /\s([^\s<]+)\s*$/g,
+ '\u00A0$1',
+ );
+}
+
+export function formatPhoneNumber(phoneNumberString) {
+ var cleaned = ('' + phoneNumberString).replace(/\D/g, '');
+ var match = cleaned.match(/^(1|)?(\d{3})(\d{3})(\d{4})$/);
+ if (match) {
+ var intlCode = match[1] ? '+1 ' : '';
+ return [intlCode, '(', match[2], ') ', match[3], '-', match[4]].join('');
+ }
+ return null;
+}
+
+export function isRangedPricing(priceRange) {
+ return priceRange.minVariantPrice.amount < priceRange.maxVariantPrice.amount;
+}
+
+export function isNewArrival(date, daysOld = 30) {
+ return new Date(date) > new Date().setDate(new Date().getDate() - daysOld);
+}
+
+export function isDiscounted(price, compareAtPrice) {
+ if (compareAtPrice?.amount > price?.amount) {
+ return true;
+ }
+ return false;
+}
+
+export function getApiErrorMessage(field, data, errors) {
+ if (errors?.length) return errors[0].message ?? errors[0];
+ if (data?.[field]?.customerUserErrors?.length)
+ return data[field].customerUserErrors[0].message;
+ return null;
+}
diff --git a/templates/demo-store-neue/src/routes/account/activate.server.jsx b/templates/demo-store-neue/src/routes/account/activate.server.jsx
new file mode 100644
index 0000000000..c257e669c8
--- /dev/null
+++ b/templates/demo-store-neue/src/routes/account/activate.server.jsx
@@ -0,0 +1,65 @@
+import {NoStore, gql} from '@shopify/hydrogen';
+import {getApiErrorMessage} from '~/lib/utils';
+
+/**
+ * This API route is used by the form on `/account/activate/[id]/[activationToken]`
+ * complete the reset of the user's password.
+ */
+export async function api(request, {session, queryShop}) {
+ const jsonBody = await request.json();
+
+ if (!jsonBody?.id || !jsonBody?.password || !jsonBody?.activationToken) {
+ return new Response(
+ JSON.stringify({error: 'Incorrect password or activation token.'}),
+ {
+ status: 400,
+ },
+ );
+ }
+
+ const {data, errors} = await queryShop({
+ query: ACTIVATE,
+ variables: {
+ id: `gid://shopify/Customer/${jsonBody.id}`,
+ input: {
+ password: jsonBody.password,
+ activationToken: jsonBody.activationToken,
+ },
+ },
+ cache: NoStore(),
+ });
+
+ if (data?.customerActivate?.customerAccessToken?.accessToken) {
+ await session.set(
+ 'customerAccessToken',
+ data.customerActivate.customerAccessToken.accessToken,
+ );
+
+ return new Response(null, {
+ status: 200,
+ });
+ } else {
+ return new Response(
+ JSON.stringify({
+ error: getApiErrorMessage('customerActivate', data, errors),
+ }),
+ {status: 401},
+ );
+ }
+}
+
+const ACTIVATE = gql`
+ mutation customerActivate($id: ID!, $input: CustomerActivateInput!) {
+ customerActivate(id: $id, input: $input) {
+ customerAccessToken {
+ accessToken
+ expiresAt
+ }
+ customerUserErrors {
+ code
+ field
+ message
+ }
+ }
+ }
+`;
diff --git a/templates/demo-store-neue/src/routes/account/activate/[id]/[activationToken].server.jsx b/templates/demo-store-neue/src/routes/account/activate/[id]/[activationToken].server.jsx
new file mode 100644
index 0000000000..9438d194a5
--- /dev/null
+++ b/templates/demo-store-neue/src/routes/account/activate/[id]/[activationToken].server.jsx
@@ -0,0 +1,19 @@
+import {useRouteParams, Seo} from '@shopify/hydrogen';
+
+import {DefaultLayout as Layout} from '~/components/layouts';
+import {AccountActivateForm} from '~/components/sections';
+
+/**
+ * This page shows a form for the user to activate an account.
+ * It should only be accessed by a link emailed to the user.
+ */
+export default function Reset() {
+ const {id, activationToken} = useRouteParams();
+
+ return (
+
+
+
+
+ );
+}
diff --git a/templates/demo-store-neue/src/routes/account/address.server.jsx b/templates/demo-store-neue/src/routes/account/address.server.jsx
new file mode 100644
index 0000000000..f076a786c7
--- /dev/null
+++ b/templates/demo-store-neue/src/routes/account/address.server.jsx
@@ -0,0 +1,94 @@
+import {NoStore, gql} from '@shopify/hydrogen';
+import {setDefaultAddress} from './address/[addressId].server';
+import {getApiErrorMessage} from '~/lib/utils';
+
+export async function api(request, {session, queryShop}) {
+ if (request.method !== 'POST')
+ return new Response(null, {
+ status: 405,
+ headers: {
+ Allow: 'POST',
+ },
+ });
+
+ const {customerAccessToken} = await session.get();
+
+ if (!customerAccessToken) return new Response(null, {status: 401});
+
+ const {
+ firstName,
+ lastName,
+ company,
+ address1,
+ address2,
+ country,
+ province,
+ city,
+ phone,
+ isDefaultAddress,
+ } = await request.json();
+
+ const address = {};
+
+ if (firstName) address.firstName = firstName;
+ if (lastName) address.lastName = lastName;
+ if (company) address.company = company;
+ if (address1) address.address1 = address1;
+ if (address2) address.address2 = address2;
+ if (country) address.country = country;
+ if (province) address.province = province;
+ if (city) address.city = city;
+ if (phone) address.phone = phone;
+
+ const {data, errors} = await queryShop({
+ query: CREATE_ADDRESS,
+ variables: {
+ address,
+ customerAccessToken,
+ },
+ cache: NoStore(),
+ });
+
+ const error = getApiErrorMessage('customerAddressCreate', data, errors);
+
+ if (error) return new Response(JSON.stringify({error}), {status: 400});
+
+ if (isDefaultAddress) {
+ const {data: defaultDataResponse, errors} = await setDefaultAddress(
+ queryShop,
+ data.customerAddressCreate.customerAddress.id,
+ customerAccessToken,
+ );
+
+ const error = getApiErrorMessage(
+ 'customerDefaultAddressUpdate',
+ defaultDataResponse,
+ errors,
+ );
+
+ if (error) return new Response(JSON.stringify({error}), {status: 400});
+ }
+
+ return new Response(null);
+}
+
+const CREATE_ADDRESS = gql`
+ mutation customerAddressCreate(
+ $address: MailingAddressInput!
+ $customerAccessToken: String!
+ ) {
+ customerAddressCreate(
+ address: $address
+ customerAccessToken: $customerAccessToken
+ ) {
+ customerAddress {
+ id
+ }
+ customerUserErrors {
+ code
+ field
+ message
+ }
+ }
+ }
+`;
diff --git a/templates/demo-store-neue/src/routes/account/address/[addressId].server.jsx b/templates/demo-store-neue/src/routes/account/address/[addressId].server.jsx
new file mode 100644
index 0000000000..b1a88e1dc6
--- /dev/null
+++ b/templates/demo-store-neue/src/routes/account/address/[addressId].server.jsx
@@ -0,0 +1,158 @@
+import {NoStore, gql} from '@shopify/hydrogen';
+import {getApiErrorMessage} from '~/lib/utils';
+
+export async function api(request, {params, session, queryShop}) {
+ const {customerAccessToken} = await session.get();
+
+ if (!customerAccessToken) return new Response(null, {status: 401});
+
+ if (request.method === 'PATCH')
+ return updateAddress(customerAccessToken, request, params, queryShop);
+ if (request.method === 'DELETE')
+ return deleteAddress(customerAccessToken, params, queryShop);
+
+ return new Response(null, {
+ status: 405,
+ headers: {
+ Allow: 'PATCH,DELETE',
+ },
+ });
+}
+
+async function deleteAddress(customerAccessToken, params, queryShop) {
+ const {data, errors} = await queryShop({
+ query: DELETE_ADDRESS,
+ variables: {
+ customerAccessToken,
+ id: decodeURIComponent(params.addressId),
+ },
+ cache: NoStore(),
+ });
+
+ const error = getApiErrorMessage('customerAddressDelete', data, errors);
+
+ if (error) return new Response(JSON.stringify({error}), {status: 400});
+
+ return new Response(null);
+}
+
+async function updateAddress(customerAccessToken, request, params, queryShop) {
+ const {
+ firstName,
+ lastName,
+ company,
+ address1,
+ address2,
+ country,
+ province,
+ city,
+ phone,
+ isDefaultAddress,
+ } = await request.json();
+
+ const address = {};
+
+ if (firstName) address.firstName = firstName;
+ if (lastName) address.lastName = lastName;
+ if (company) address.company = company;
+ if (address1) address.address1 = address1;
+ if (address2) address.address2 = address2;
+ if (country) address.country = country;
+ if (province) address.province = province;
+ if (city) address.city = city;
+ if (phone) address.phone = phone;
+
+ const {data, errors} = await queryShop({
+ query: UPDATE_ADDRESS,
+ variables: {
+ address,
+ customerAccessToken,
+ id: decodeURIComponent(params.addressId),
+ },
+ cache: NoStore(),
+ });
+
+ const error = getApiErrorMessage('customerAddressUpdate', data, errors);
+
+ if (error) return new Response(JSON.stringify({error}), {status: 400});
+
+ if (isDefaultAddress) {
+ const {data, errors} = await setDefaultAddress(
+ queryShop,
+ decodeURIComponent(params.addressId),
+ customerAccessToken,
+ );
+
+ const error = getApiErrorMessage(
+ 'customerDefaultAddressUpdate',
+ data,
+ errors,
+ );
+
+ if (error) return new Response(JSON.stringify({error}), {status: 400});
+ }
+
+ return new Response(null);
+}
+
+export function setDefaultAddress(queryShop, addressId, customerAccessToken) {
+ return queryShop({
+ query: UPDATE_DEFAULT_ADDRESS,
+ variables: {
+ customerAccessToken,
+ addressId,
+ },
+ cache: NoStore(),
+ });
+}
+
+const UPDATE_ADDRESS = gql`
+ mutation customerAddressUpdate(
+ $address: MailingAddressInput!
+ $customerAccessToken: String!
+ $id: ID!
+ ) {
+ customerAddressUpdate(
+ address: $address
+ customerAccessToken: $customerAccessToken
+ id: $id
+ ) {
+ customerUserErrors {
+ code
+ field
+ message
+ }
+ }
+ }
+`;
+
+const UPDATE_DEFAULT_ADDRESS = gql`
+ mutation customerDefaultAddressUpdate(
+ $addressId: ID!
+ $customerAccessToken: String!
+ ) {
+ customerDefaultAddressUpdate(
+ addressId: $addressId
+ customerAccessToken: $customerAccessToken
+ ) {
+ customerUserErrors {
+ code
+ field
+ message
+ }
+ }
+ }
+`;
+
+const DELETE_ADDRESS = gql`
+ mutation customerAddressDelete($customerAccessToken: String!, $id: ID!) {
+ customerAddressDelete(customerAccessToken: $customerAccessToken, id: $id) {
+ customerUserErrors {
+ code
+ field
+ message
+ }
+ deletedCustomerAddressId
+ }
+ }
+`;
diff --git a/templates/demo-store-neue/src/routes/account/index.server.jsx b/templates/demo-store-neue/src/routes/account/index.server.jsx
new file mode 100644
index 0000000000..19e3ea2a44
--- /dev/null
+++ b/templates/demo-store-neue/src/routes/account/index.server.jsx
@@ -0,0 +1,245 @@
+import {
+ Seo,
+ useSession,
+ NoStore,
+ useShopQuery,
+ flattenConnection,
+ gql,
+} from '@shopify/hydrogen';
+
+import {AccountDetails} from '~/components/pages';
+import {DefaultLayout as Layout} from '~/components/layouts';
+import {getApiErrorMessage} from '~/lib/utils';
+
+export default function Account({response, editingAccount, editingAddress}) {
+ response.cache(NoStore());
+
+ const {customerAccessToken} = useSession();
+
+ if (!customerAccessToken) return response.redirect('/account/login');
+
+ const {data} = useShopQuery({
+ query: QUERY,
+ variables: {
+ customerAccessToken,
+ withAddressDetails: !!editingAddress,
+ },
+ cache: NoStore(),
+ });
+
+ const customer = data.customer;
+
+ if (!customer) return response.redirect('/account/login');
+
+ const addresses = flattenConnection(customer.addresses).map((address) => ({
+ ...address,
+ id: address.id.substring(0, address.id.lastIndexOf('?')),
+ originalId: address.id,
+ }));
+
+ const defaultAddress = customer?.defaultAddress?.id?.substring(
+ 0,
+ customer.defaultAddress.id.lastIndexOf('?'),
+ );
+
+ if (editingAccount)
+ return (
+
+
+ {/* */}
+
+ );
+
+ if (editingAddress) {
+ const addressToEdit = addresses.find(
+ (address) => address.id === editingAddress,
+ );
+
+ return (
+
+
+ {/* */}
+
+ );
+ }
+
+ return (
+
+ );
+}
+
+export async function api(request, {session, queryShop}) {
+ if (request.method !== 'PATCH')
+ return new Response(null, {
+ status: 405,
+ headers: {
+ Allow: 'PATCH',
+ },
+ });
+
+ const {customerAccessToken} = await session.get();
+
+ if (!customerAccessToken) return new Response(null, {status: 401});
+
+ const {email, phone, firstName, lastName, newPassword} = await request.json();
+
+ const customer = {};
+
+ if (email) customer.email = email;
+ if (phone) customer.phone = phone;
+ if (firstName) customer.firstName = firstName;
+ if (lastName) customer.lastName = lastName;
+ if (newPassword) customer.password = newPassword;
+
+ const {data, errors} = await queryShop({
+ query: MUTATION,
+ variables: {
+ customer,
+ customerAccessToken,
+ },
+ cache: NoStore(),
+ });
+
+ const error = getApiErrorMessage('customerUpdate', data, errors);
+
+ if (error) return new Response(JSON.stringify({error}), {status: 400});
+
+ return new Response(null);
+}
+
+function AuthenticatedAccount({customer, addresses, defaultAddress}) {
+ const orders =
+ customer?.orders?.edges.length > 0
+ ? flattenConnection(customer.orders)
+ : [];
+
+ const pageHeader = customer?.firstName
+ ? `Hi ${customer.firstName}.`
+ : 'Welcome to your account.';
+
+ return (
+
+
+
+
+
{pageHeader}
+ {customer?.firstName ? (
+
Welcome to your account.
+ ) : null}
+
+
+
+
+ {/*
*/}
+
+ {/*
*/}
+
+
+
+ );
+}
+
+const QUERY = gql`
+ query CustomerDetails(
+ $customerAccessToken: String!
+ $withAddressDetails: Boolean!
+ ) {
+ customer(customerAccessToken: $customerAccessToken) {
+ firstName
+ lastName
+ phone
+ email
+
+ defaultAddress {
+ id
+ formatted
+ }
+
+ addresses(first: 6) {
+ edges {
+ node {
+ id
+ formatted
+ firstName @include(if: $withAddressDetails)
+ lastName @include(if: $withAddressDetails)
+ company @include(if: $withAddressDetails)
+ address1 @include(if: $withAddressDetails)
+ address2 @include(if: $withAddressDetails)
+ country @include(if: $withAddressDetails)
+ province @include(if: $withAddressDetails)
+ city @include(if: $withAddressDetails)
+ phone @include(if: $withAddressDetails)
+ }
+ }
+ }
+
+ orders(first: 250) {
+ edges {
+ node {
+ id
+ orderNumber
+ processedAt
+ financialStatus
+ fulfillmentStatus
+ currentTotalPrice {
+ amount
+ currencyCode
+ }
+ lineItems(first: 2) {
+ edges {
+ node {
+ variant {
+ image {
+ url
+ altText
+ height
+ width
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+`;
+
+const MUTATION = gql`
+ mutation customerUpdate(
+ $customer: CustomerUpdateInput!
+ $customerAccessToken: String!
+ ) {
+ customerUpdate(
+ customer: $customer
+ customerAccessToken: $customerAccessToken
+ ) {
+ customerUserErrors {
+ code
+ field
+ message
+ }
+ }
+ }
+`;
diff --git a/templates/demo-store-neue/src/routes/account/login-multipass.server.jsx b/templates/demo-store-neue/src/routes/account/login-multipass.server.jsx
new file mode 100644
index 0000000000..ed15686e83
--- /dev/null
+++ b/templates/demo-store-neue/src/routes/account/login-multipass.server.jsx
@@ -0,0 +1,83 @@
+// import Multipassify from 'multipassify';
+import {NoStore, gql} from '@shopify/hydrogen';
+import shopifyConfig from '../../../hydrogen.config';
+
+export async function api(request, {session, queryShop}) {
+ const searchParams = new URL(request.url).searchParams;
+
+ const returnURL = searchParams.get('returnurl');
+ const failURL = searchParams.get('failurl');
+
+ const multipassSecret = shopifyConfig.multipassSecret;
+
+ // TODO: get customer email from session
+ const customerEmail = 'some@email.com';
+
+ const multipassToken = encodeCustomerData(multipassSecret, customerEmail);
+
+ const {data, error} = await queryShop({
+ query: LOGIN,
+ variables: {
+ multipassToken,
+ },
+ cache: NoStore(),
+ });
+
+ if (
+ data &&
+ data.customerAccessTokenCreateWithMultipass &&
+ data.customerAccessTokenCreateWithMultipass.customerAccessToken !== null
+ ) {
+ await session.set(
+ 'customerAccessToken',
+ data.customerAccessTokenCreateWithMultipass.customerAccessToken,
+ );
+
+ return new Response(null, {
+ headers: {
+ Location: returnURL,
+ },
+ status: 301,
+ });
+ } else {
+ return new Response(
+ JSON.stringify({
+ error: data
+ ? data.customerAccessTokenCreateWithMultipass.customerUserErrors
+ : error,
+ }),
+ {
+ headers: {
+ Location: failURL,
+ },
+ status: 301,
+ },
+ );
+ }
+}
+
+function encodeCustomerData(multipassSecret, customerEmail) {
+ return multipassSecret + customerEmail;
+ //TODO: this lib uses cryto that only works in NodeJS
+ // const multipassify = new Multipassify(multipassSecret);
+
+ // return multipassify.encode({
+ // email: customerEmail,
+ // });
+}
+
+const LOGIN = gql`
+ mutation customerAccessTokenCreateWithMultipass($multipassToken: String!) {
+ customerAccessTokenCreateWithMultipass(multipassToken: $multipassToken) {
+ customerAccessToken {
+ accessToken
+ expiresAt
+ }
+ customerUserErrors {
+ code
+ field
+ message
+ }
+ }
+ }
+`;
diff --git a/templates/demo-store-neue/src/routes/account/login.server.jsx b/templates/demo-store-neue/src/routes/account/login.server.jsx
new file mode 100644
index 0000000000..dcf59c2e66
--- /dev/null
+++ b/templates/demo-store-neue/src/routes/account/login.server.jsx
@@ -0,0 +1,96 @@
+import {useShopQuery, CacheDays, NoStore, Seo, gql} from '@shopify/hydrogen';
+
+import {DefaultLayout as Layout} from '~/components/layouts';
+import {LoginForm} from '~/components/sections';
+
+export default function Login({response}) {
+ response.cache(NoStore());
+
+ const {
+ data: {
+ shop: {name},
+ },
+ } = useShopQuery({
+ query: QUERY,
+ cache: CacheDays(),
+ preload: '*',
+ });
+
+ return (
+
+
+
+
+ );
+}
+
+const QUERY = gql`
+ query shopInfo {
+ shop {
+ name
+ }
+ }
+`;
+
+export async function api(request, {session, queryShop}) {
+ const jsonBody = await request.json();
+
+ if (
+ !jsonBody.email ||
+ jsonBody.email === '' ||
+ !jsonBody.password ||
+ jsonBody.password === ''
+ ) {
+ return new Response(
+ JSON.stringify({error: 'Incorrect email or password.'}),
+ {status: 400},
+ );
+ }
+
+ const {data, error} = await queryShop({
+ query: LOGIN,
+ variables: {
+ input: {
+ email: jsonBody.email,
+ password: jsonBody.password,
+ },
+ },
+ cache: NoStore(),
+ });
+
+ if (
+ data?.customerAccessTokenCreate?.customerAccessToken?.accessToken !== null
+ ) {
+ await session.set(
+ 'customerAccessToken',
+ data.customerAccessTokenCreate.customerAccessToken.accessToken,
+ );
+
+ return new Response(null, {
+ status: 200,
+ });
+ } else {
+ return new Response(
+ JSON.stringify({
+ error: data?.customerAccessTokenCreate?.customerUserErrors ?? error,
+ }),
+ {status: 401},
+ );
+ }
+}
+
+const LOGIN = gql`
+ mutation customerAccessTokenCreate($input: CustomerAccessTokenCreateInput!) {
+ customerAccessTokenCreate(input: $input) {
+ customerUserErrors {
+ code
+ field
+ message
+ }
+ customerAccessToken {
+ accessToken
+ expiresAt
+ }
+ }
+ }
+`;
diff --git a/templates/demo-store-neue/src/routes/account/logout.server.js b/templates/demo-store-neue/src/routes/account/logout.server.js
new file mode 100644
index 0000000000..8127f46d94
--- /dev/null
+++ b/templates/demo-store-neue/src/routes/account/logout.server.js
@@ -0,0 +1,13 @@
+export async function api(request, {session}) {
+ if (request.method !== 'POST')
+ return new Response('Post required to logout', {
+ status: 405,
+ headers: {
+ Allow: 'POST',
+ },
+ });
+
+ await session.set('customerAccessToken', null);
+
+ return new Response();
+}
diff --git a/templates/demo-store-neue/src/routes/account/orders/[id].server.jsx b/templates/demo-store-neue/src/routes/account/orders/[id].server.jsx
new file mode 100644
index 0000000000..5110651360
--- /dev/null
+++ b/templates/demo-store-neue/src/routes/account/orders/[id].server.jsx
@@ -0,0 +1,212 @@
+import {
+ useShopQuery,
+ useRouteParams,
+ NoStore,
+ Seo,
+ useSession,
+ flattenConnection,
+ Image,
+ Money,
+ Link,
+ gql,
+} from '@shopify/hydrogen';
+import {DefaultLayout as Layout} from '~/components/layouts';
+
+export default function OrderDetails({response}) {
+ const {orderId} = useRouteParams();
+
+ response.cache(NoStore());
+
+ const {customerAccessToken} = useSession();
+
+ if (!customerAccessToken) return response.redirect('/account/login');
+
+ const {data} = useShopQuery({
+ query: QUERY,
+ variables: {
+ orderId: decodeURIComponent(orderId),
+ },
+ cache: NoStore(),
+ });
+
+ const order = data.node;
+
+ return (
+
+
+
+
+
{'< Back'}
+
Order detail.
+
+
+ {ORDER_STATUS[order.fulfillmentStatus]}
+
+
+
+ {flattenConnection(order.lineItems).map(({variant}) => (
+
+
+
+
+ {variant.title}
+
+
+
+
+ {variant.selectedOptions.map((option) => (
+
+ {option.name}: {option.value}
+
+ ))}
+
+
+ ))}
+
+
+ Subtotal
+
+
+
+ Shipping
+
+
+
+ Tax
+
+
+
+ Total
+
+
+
+
Date
+
{order.processedAt}
+
+
+
+ Shipping method
+
+
Standard Shipping
+
+
+
+ Order number
+
+
{order.orderNumber}
+
+
+
+ Shipping address
+
+
+
{order.shippingAddress.name}
+
{order.shippingAddress.steet1}
+
{order.shippingAddress.steet2}
+
+ {order.shippingAddress.city}, {order.shippingAddress.province},{' '}
+ {order.shippingAddress.zip}
+
+
{order.shippingAddress.countryCodeV2}
+
{order.shippingAddress.phone}
+
+
+
+
+ Billing address
+
+
Same as shipping address
+
+
+
+ );
+}
+
+const QUERY = gql`
+ query OrderDetails($orderId: ID!) {
+ node(id: $orderId) {
+ id
+ ... on Order {
+ id
+ orderNumber
+ processedAt
+ financialStatus
+ fulfillmentStatus
+ currentTotalPrice {
+ amount
+ currencyCode
+ }
+ currentTotalTax {
+ amount
+ currencyCode
+ }
+ currentSubtotalPrice {
+ amount
+ currencyCode
+ }
+ totalShippingPriceV2 {
+ amount
+ currencyCode
+ }
+ shippingAddress {
+ name
+ address1
+ address2
+ province
+ zip
+ city
+ countryCodeV2
+ phone
+ }
+ lineItems(first: 2) {
+ edges {
+ node {
+ variant {
+ id
+ title
+ priceV2 {
+ currencyCode
+ amount
+ }
+ selectedOptions {
+ name
+ value
+ }
+ image {
+ url
+ altText
+ height
+ width
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+`;
+
+export const ORDER_STATUS = {
+ ATTEMPTED_DELIVERY: 'Attempted delivery',
+ CANCELED: 'Canceled',
+ CONFIRMED: 'Confirmed',
+ DELIVERED: 'Delivered',
+ FAILURE: 'Failure',
+ FULFILLED: 'Fulfilled',
+ IN_TRANSIT: 'In transit',
+ LABEL_PRINTED: 'Label printed',
+ LABEL_PURCHASED: 'Label purchased',
+ LABEL_VOIDED: 'Label voided',
+ MARKED_AS_FULFILLED: 'Marked as fulfilled',
+ NOT_DELIVERED: 'Not delivered',
+ OUT_FOR_DELIVERY: 'Out for delivery',
+ PICKED_UP: 'Displayed as Picked up',
+ READY_FOR_PICKUP: 'Ready for pickup',
+ SUBMITTED: 'Submitted',
+ UNFULFILLED: 'Not yet shipped!',
+};
diff --git a/templates/demo-store-neue/src/routes/account/orders/index.server.jsx b/templates/demo-store-neue/src/routes/account/orders/index.server.jsx
new file mode 100644
index 0000000000..b2d3380c97
--- /dev/null
+++ b/templates/demo-store-neue/src/routes/account/orders/index.server.jsx
@@ -0,0 +1,3 @@
+export default function AccountOrders() {
+ return Orders
;
+}
diff --git a/templates/demo-store-neue/src/routes/account/recover.server.jsx b/templates/demo-store-neue/src/routes/account/recover.server.jsx
new file mode 100644
index 0000000000..ff8e6a4286
--- /dev/null
+++ b/templates/demo-store-neue/src/routes/account/recover.server.jsx
@@ -0,0 +1,57 @@
+import {NoStore, Seo, gql} from '@shopify/hydrogen';
+
+import Layout from '../../components/layouts/DefaultLayout.server';
+import AccountRecoverForm from '../../components/sections/AccountRecoverForm.client';
+
+/**
+ * A form for the user to fill out to _initiate_ a password reset.
+ * If the form succeeds, an email will be sent to the user with a link
+ * to reset their password. Clicking the link leads the user to the
+ * page `/account/reset/[resetToken]`.
+ */
+export default function Recover({response}) {
+ response.cache(NoStore());
+
+ return (
+
+
+
+
+ );
+}
+
+export async function api(request, {queryShop}) {
+ const jsonBody = await request.json();
+
+ if (!jsonBody.email || jsonBody.email === '') {
+ return new Response(JSON.stringify({error: 'Email required'}), {
+ status: 400,
+ });
+ }
+
+ await queryShop({
+ query: MUTATION,
+ variables: {
+ email: jsonBody.email,
+ },
+ cache: NoStore(),
+ });
+
+ // Ignore errors, we don't want to tell the user if the email was
+ // valid or not, thereby allowing them to determine who uses the site
+ return new Response(null, {
+ status: 200,
+ });
+}
+
+const MUTATION = gql`
+ mutation customerRecover($email: String!) {
+ customerRecover(email: $email) {
+ customerUserErrors {
+ code
+ field
+ message
+ }
+ }
+ }
+`;
diff --git a/templates/demo-store-neue/src/routes/account/register.server.jsx b/templates/demo-store-neue/src/routes/account/register.server.jsx
new file mode 100644
index 0000000000..55ab7b804b
--- /dev/null
+++ b/templates/demo-store-neue/src/routes/account/register.server.jsx
@@ -0,0 +1,81 @@
+import {NoStore, Seo, gql} from '@shopify/hydrogen';
+
+import {DefaultLayout as Layout} from '~/components/layouts';
+import {AccountCreateForm} from '~/components/sections';
+import {getApiErrorMessage} from '~/lib/utils';
+
+export default function Register({response}) {
+ response.cache(NoStore());
+
+ return (
+
+
+
+
+ );
+}
+
+export async function api(request, {queryShop}) {
+ const jsonBody = await request.json();
+
+ if (
+ !jsonBody.email ||
+ jsonBody.email === '' ||
+ !jsonBody.password ||
+ jsonBody.password === ''
+ ) {
+ return new Response(
+ JSON.stringify({error: 'Email and password are required'}),
+ {status: 400},
+ );
+ }
+
+ const {data, errors} = await queryShop({
+ query: MUTATION,
+ variables: {
+ input: {
+ email: jsonBody.email,
+ password: jsonBody.password,
+ firstName: jsonBody.firstName,
+ lastName: jsonBody.lastName,
+ },
+ },
+ cache: NoStore(),
+ });
+
+ const errorMessage = getApiErrorMessage('customerCreate', data, errors);
+
+ if (
+ !errorMessage &&
+ data &&
+ data.customerCreate &&
+ data.customerCreate.customer &&
+ data.customerCreate.customer.id
+ ) {
+ return new Response(null, {
+ status: 200,
+ });
+ } else {
+ return new Response(
+ JSON.stringify({
+ error: errorMessage ?? 'Unknown error',
+ }),
+ {status: 401},
+ );
+ }
+}
+
+const MUTATION = gql`
+ mutation customerCreate($input: CustomerCreateInput!) {
+ customerCreate(input: $input) {
+ customer {
+ id
+ }
+ customerUserErrors {
+ code
+ field
+ message
+ }
+ }
+ }
+`;
diff --git a/templates/demo-store-neue/src/routes/account/reset.server.jsx b/templates/demo-store-neue/src/routes/account/reset.server.jsx
new file mode 100644
index 0000000000..f2d1e24906
--- /dev/null
+++ b/templates/demo-store-neue/src/routes/account/reset.server.jsx
@@ -0,0 +1,72 @@
+import {NoStore, gql} from '@shopify/hydrogen';
+import {getApiErrorMessage} from '~/lib/utils';
+
+/**
+ * This API route is used by the form on `/account/reset/[id]/[resetToken]`
+ * complete the reset of the user's password.
+ */
+export async function api(request, {session, queryShop}) {
+ const jsonBody = await request.json();
+
+ if (
+ !jsonBody.id ||
+ jsonBody.id === '' ||
+ !jsonBody.password ||
+ jsonBody.password === '' ||
+ !jsonBody.resetToken ||
+ jsonBody.resetToken === ''
+ ) {
+ return new Response(
+ JSON.stringify({error: 'Incorrect password or reset token.'}),
+ {
+ status: 400,
+ },
+ );
+ }
+
+ const {data, errors} = await queryShop({
+ query: MUTATION,
+ variables: {
+ id: `gid://shopify/Customer/${jsonBody.id}`,
+ input: {
+ password: jsonBody.password,
+ resetToken: jsonBody.resetToken,
+ },
+ },
+ cache: NoStore(),
+ });
+
+ if (data?.customerReset?.customerAccessToken?.accessToken !== null) {
+ await session.set(
+ 'customerAccessToken',
+ data.customerReset.customerAccessToken.accessToken,
+ );
+
+ return new Response(null, {
+ status: 200,
+ });
+ } else {
+ return new Response(
+ JSON.stringify({
+ error: getApiErrorMessage('customerReset', data, errors),
+ }),
+ {status: 401},
+ );
+ }
+}
+
+const MUTATION = gql`
+ mutation customerReset($id: ID!, $input: CustomerResetInput!) {
+ customerReset(id: $id, input: $input) {
+ customerAccessToken {
+ accessToken
+ expiresAt
+ }
+ customerUserErrors {
+ code
+ field
+ message
+ }
+ }
+ }
+`;
diff --git a/templates/demo-store-neue/src/routes/account/reset/[id]/[resetToken].server.jsx b/templates/demo-store-neue/src/routes/account/reset/[id]/[resetToken].server.jsx
new file mode 100644
index 0000000000..2a749fdbb9
--- /dev/null
+++ b/templates/demo-store-neue/src/routes/account/reset/[id]/[resetToken].server.jsx
@@ -0,0 +1,20 @@
+import {useRouteParams, Seo} from '@shopify/hydrogen';
+
+import Layout from '../../../../components/layouts/DefaultLayout.server';
+import PasswordResetForm from '../../../../components/sections/PasswordResetForm.client';
+
+/**
+ * This page shows a form for the user to enter a new password.
+ * It should only be accessed by a link emailed to the user after
+ * they initiate a password reset from `/account/recover`.
+ */
+export default function Reset() {
+ const {id, resetToken} = useRouteParams();
+
+ return (
+
+
+
+
+ );
+}
diff --git a/templates/demo-store-neue/src/routes/account/reset/[id]/index.server.js b/templates/demo-store-neue/src/routes/account/reset/[id]/index.server.js
new file mode 100644
index 0000000000..675cffa9df
--- /dev/null
+++ b/templates/demo-store-neue/src/routes/account/reset/[id]/index.server.js
@@ -0,0 +1,75 @@
+import {NoStore, gql} from '@shopify/hydrogen';
+
+/**
+ * This API route is used by the form on `/account/reset/[resetToken]`
+ * complete the reset of the user's password.
+ */
+export async function api(request, {session, queryShop}) {
+ const jsonBody = await request.json();
+
+ if (
+ !jsonBody.id ||
+ jsonBody.id === '' ||
+ !jsonBody.password ||
+ jsonBody.password === '' ||
+ !jsonBody.resetToken ||
+ jsonBody.resetToken === ''
+ ) {
+ return new Response(
+ JSON.stringify({error: 'Incorrect password or reset token.'}),
+ {
+ status: 400,
+ },
+ );
+ }
+
+ const {data, error} = await queryShop({
+ query: LOGIN,
+ variables: {
+ id: `gid://shopify/Customer/${jsonBody.id}`,
+ input: {
+ password: jsonBody.password,
+ resetToken: jsonBody.resetToken,
+ },
+ },
+ cache: NoStore(),
+ });
+
+ if (
+ data &&
+ data.customerReset &&
+ data.customerReset.customerAccessToken !== null
+ ) {
+ await session.set(
+ 'customerAccessToken',
+ data.customerReset.customerAccessToken,
+ );
+
+ return new Response(null, {
+ status: 200,
+ });
+ } else {
+ return new Response(
+ JSON.stringify({
+ error: data ? data.customerReset.customerUserErrors : error,
+ }),
+ {status: 401},
+ );
+ }
+}
+
+const LOGIN = gql`
+ mutation customerReset($id: ID!, $input: CustomerResetInput!) {
+ customerReset(id: $id, input: $input) {
+ customerAccessToken {
+ accessToken
+ expiresAt
+ }
+ customerUserErrors {
+ code
+ field
+ message
+ }
+ }
+ }
+`;
diff --git a/templates/demo-store-neue/src/routes/account/reset_password.server.jsx b/templates/demo-store-neue/src/routes/account/reset_password.server.jsx
new file mode 100644
index 0000000000..efdac90eac
--- /dev/null
+++ b/templates/demo-store-neue/src/routes/account/reset_password.server.jsx
@@ -0,0 +1,3 @@
+export default function AccountResetPassword() {
+ return Reset Password
;
+}
diff --git a/templates/demo-store-neue/src/routes/api/countries.server.jsx b/templates/demo-store-neue/src/routes/api/countries.server.jsx
new file mode 100644
index 0000000000..35a8a3ead8
--- /dev/null
+++ b/templates/demo-store-neue/src/routes/api/countries.server.jsx
@@ -0,0 +1,34 @@
+export async function api(request, {queryShop, session}) {
+ if (request.method === 'POST') {
+ const {isoCode, name} = await request.json();
+
+ await session.set('countryCode', isoCode);
+ await session.set('countryName', name);
+
+ return 'success';
+ }
+
+ const {
+ data: {
+ localization: {availableCountries},
+ },
+ } = await queryShop({
+ query: QUERY,
+ });
+
+ return availableCountries.sort((a, b) => a.name.localeCompare(b.name));
+}
+
+const QUERY = `
+ query Localization {
+ localization {
+ availableCountries {
+ isoCode
+ name
+ currency {
+ isoCode
+ }
+ }
+ }
+ }
+`;
diff --git a/templates/demo-store-neue/src/routes/api/redirects.server.jsx b/templates/demo-store-neue/src/routes/api/redirects.server.jsx
new file mode 100644
index 0000000000..3991a746ee
--- /dev/null
+++ b/templates/demo-store-neue/src/routes/api/redirects.server.jsx
@@ -0,0 +1 @@
+//TODO: API calls to handle Admin Redirects
diff --git a/templates/demo-store-neue/src/routes/cart.server.jsx b/templates/demo-store-neue/src/routes/cart.server.jsx
new file mode 100644
index 0000000000..a6a137bc3d
--- /dev/null
+++ b/templates/demo-store-neue/src/routes/cart.server.jsx
@@ -0,0 +1,14 @@
+import {DefaultLayout as Layout} from '~/components/layouts';
+import {PageHeader, Section} from '~/components/sections';
+import CartDetails from '~/components/sections/CartDetails.client';
+
+export default function Cart() {
+ return (
+
+
+
+
+ );
+}
diff --git a/templates/demo-store-neue/src/routes/collections/[handle].server.jsx b/templates/demo-store-neue/src/routes/collections/[handle].server.jsx
new file mode 100644
index 0000000000..36cc26ff97
--- /dev/null
+++ b/templates/demo-store-neue/src/routes/collections/[handle].server.jsx
@@ -0,0 +1,136 @@
+import {
+ useSession,
+ useShop,
+ useShopQuery,
+ Seo,
+ useServerAnalytics,
+ ShopifyAnalyticsConstants,
+ gql,
+} from '@shopify/hydrogen';
+
+import {DefaultLayout as Layout} from '~/components/layouts';
+import {NotFound} from '~/components/pages';
+import {ProductGrid, PageHeader, Section} from '~/components/sections';
+import {Text} from '~/components/elements';
+
+import {PRODUCT_CARD_FIELDS} from '~/lib/fragments';
+
+const pageBy = 12;
+
+export default function Collection({params}) {
+ const {languageCode} = useShop();
+ const {countryCode = 'US'} = useSession();
+
+ const {handle} = params;
+
+ const {data} = useShopQuery({
+ query: QUERY,
+ variables: {
+ handle,
+ country: countryCode,
+ language: languageCode,
+ pageBy,
+ },
+ preload: true,
+ });
+
+ useServerAnalytics(
+ data?.collection
+ ? {
+ shopify: {
+ pageType: ShopifyAnalyticsConstants.pageType.collection,
+ resourceId: data.collection.id,
+ },
+ }
+ : null,
+ );
+
+ if (data?.collection == null) {
+ return ;
+ }
+
+ const collection = data.collection;
+ const products = data.collection.products.nodes;
+
+ return (
+
+
+
+
+
+
+ {collection.description}
+
+
+
+ {/* TODO: This will only get the amount on the page, not the total amount. I don't think you actually can grab the total number of products in a collection today. */}
+ {products.length}
+ {/* TODO: Convert to Filter dropdown */}
+
+ Filters
+
+
+
+
+
+
+ );
+}
+
+export async function api(request, {params, queryShop}) {
+ if (request.method !== 'POST') {
+ return new Response(405, {Allow: 'POST'});
+ }
+
+ const cursor = new URL(request.url).searchParams.get('cursor');
+ const {handle} = params;
+
+ return await queryShop({
+ query: QUERY,
+ variables: {
+ handle,
+ cursor,
+ pageBy,
+ },
+ });
+}
+
+const QUERY = gql`
+ ${PRODUCT_CARD_FIELDS}
+ query CollectionDetails(
+ $handle: String!
+ $country: CountryCode
+ $language: LanguageCode
+ $pageBy: Int!
+ $cursor: String
+ ) @inContext(country: $country, language: $language) {
+ collection(handle: $handle) {
+ id
+ title
+ descriptionHtml
+ description
+ seo {
+ description
+ title
+ }
+ image {
+ id
+ url
+ width
+ height
+ altText
+ }
+ products(first: $pageBy, after: $cursor) {
+ nodes {
+ ...ProductCardFields
+ }
+ pageInfo {
+ hasNextPage
+ endCursor
+ }
+ }
+ }
+ }
+`;
diff --git a/templates/demo-store-neue/src/routes/collections/all.server.jsx b/templates/demo-store-neue/src/routes/collections/all.server.jsx
new file mode 100644
index 0000000000..cfbf44fa85
--- /dev/null
+++ b/templates/demo-store-neue/src/routes/collections/all.server.jsx
@@ -0,0 +1,3 @@
+export default function Redirect({response}) {
+ return response.redirect('/products');
+}
diff --git a/templates/demo-store-neue/src/routes/collections/index.server.jsx b/templates/demo-store-neue/src/routes/collections/index.server.jsx
new file mode 100644
index 0000000000..e0ba7d9e70
--- /dev/null
+++ b/templates/demo-store-neue/src/routes/collections/index.server.jsx
@@ -0,0 +1,87 @@
+import {
+ useShopQuery,
+ useSession,
+ useShop,
+ Image,
+ Link,
+ gql,
+} from '@shopify/hydrogen';
+import {DefaultLayout as Layout} from '~/components/layouts';
+import {PageHeader, Section} from '~/components/sections';
+import {Heading, Grid} from '~/components/elements';
+
+export default function Collections() {
+ const {languageCode} = useShop();
+ const {countryCode = 'US'} = useSession();
+
+ const {data} = useShopQuery({
+ query: QUERY,
+ variables: {
+ pageBy: 12,
+ country: countryCode,
+ language: languageCode,
+ },
+ preload: true,
+ });
+
+ const collections = data.collections.nodes;
+
+ return (
+
+
+
+
+ {collections.map((collection) => (
+
+ ))}
+
+
+
+ );
+}
+
+function Card({data}) {
+ return (
+
+ {data?.image && (
+
+
+
+ )}
+
+ {data.title}
+
+
+ );
+}
+
+const QUERY = gql`
+ query Collections(
+ $country: CountryCode
+ $language: LanguageCode
+ $pageBy: Int!
+ ) @inContext(country: $country, language: $language) {
+ collections(first: $pageBy) {
+ nodes {
+ id
+ title
+ description
+ handle
+ seo {
+ description
+ title
+ }
+ image {
+ id
+ url
+ width
+ height
+ altText
+ }
+ }
+ }
+ }
+`;
diff --git a/templates/demo-store-neue/src/routes/index.server.jsx b/templates/demo-store-neue/src/routes/index.server.jsx
new file mode 100644
index 0000000000..49b7c12b9b
--- /dev/null
+++ b/templates/demo-store-neue/src/routes/index.server.jsx
@@ -0,0 +1,166 @@
+import {
+ useSession,
+ useShopQuery,
+ useShop,
+ Seo,
+ CacheDays,
+ useServerAnalytics,
+ ShopifyAnalyticsConstants,
+ gql,
+} from '@shopify/hydrogen';
+
+import {Suspense} from 'react';
+
+import {DefaultLayout as Layout} from '~/components/layouts';
+
+import {
+ Hero,
+ FeaturedCollections,
+ ProductSwimlane,
+ Locations,
+} from '~/components/sections';
+
+import {
+ LOCATION_CARD_FIELDS,
+ MEDIA_FIELDS,
+ PRODUCT_CARD_FIELDS,
+} from '~/lib/fragments';
+
+export default function Homepage() {
+ const {languageCode} = useShop();
+ const {countryCode = 'US'} = useSession();
+
+ const {data} = useShopQuery({
+ query: QUERY,
+ variables: {
+ language: languageCode,
+ country: countryCode,
+ },
+ preload: true,
+ });
+
+ // TODO: Make Hero Banners match to collections if these don't
+ // const heroBanners = data?.heroBanners?.nodes;
+
+ const {heroBanners, featuredCollections, featuredProducts, locations} = data;
+
+ useServerAnalytics({
+ shopify: {
+ pageType: ShopifyAnalyticsConstants.pageType.home,
+ },
+ });
+
+ return (
+
+
+
+
+ {heroBanners?.nodes[0] && (
+
+ )}
+
+ {heroBanners?.nodes[1] && }
+
+
+
+ );
+}
+
+function SeoForHomepage() {
+ const {
+ data: {
+ shop: {title, description},
+ },
+ } = useShopQuery({
+ query: SEO_QUERY,
+ cache: CacheDays(),
+ preload: true,
+ });
+
+ // TODO: SEO for Homepage doesn't have the titleTemplate prop and so it presents poorly. The SEO Component as a whole should get another look at.
+ return (
+
+ );
+}
+
+const SEO_QUERY = gql`
+ query homeShopInfo {
+ shop {
+ description
+ }
+ }
+`;
+
+const QUERY = gql`
+ ${MEDIA_FIELDS}
+ ${PRODUCT_CARD_FIELDS}
+ ${LOCATION_CARD_FIELDS}
+ query homepage($country: CountryCode, $language: LanguageCode)
+ @inContext(country: $country, language: $language) {
+ heroBanners: contentEntries(type: "hero_banners", first: 2) {
+ nodes {
+ title: field(key: "title") {
+ value
+ }
+ byline: field(key: "byline") {
+ value
+ }
+ cta: field(key: "cta") {
+ value
+ }
+ url: field(key: "url") {
+ value
+ }
+ spread: field(key: "spread") {
+ reference {
+ ...MediaFields
+ }
+ }
+ spread_secondary: field(key: "spread_secondary") {
+ reference {
+ ...MediaFields
+ }
+ }
+ text_color: field(key: "text_color") {
+ value
+ }
+ }
+ }
+ featuredCollections: collections(first: 3, sortKey: UPDATED_AT) {
+ nodes {
+ id
+ title
+ handle
+ image {
+ altText
+ width
+ height
+ url
+ }
+ }
+ }
+ featuredProducts: products(first: 12) {
+ nodes {
+ ...ProductCardFields
+ }
+ }
+ locations: contentEntries(first: 3, type: "stores") {
+ nodes {
+ ...LocationCardFields
+ }
+ }
+ }
+`;
diff --git a/templates/demo-store-neue/src/routes/journal/[handle].server.jsx b/templates/demo-store-neue/src/routes/journal/[handle].server.jsx
new file mode 100644
index 0000000000..4894e0936a
--- /dev/null
+++ b/templates/demo-store-neue/src/routes/journal/[handle].server.jsx
@@ -0,0 +1,4 @@
+// Individual posts, blog handle = journal
+export default function Post() {
+ return Post
;
+}
diff --git a/templates/demo-store-neue/src/routes/journal/index.server.jsx b/templates/demo-store-neue/src/routes/journal/index.server.jsx
new file mode 100644
index 0000000000..d3ad212731
--- /dev/null
+++ b/templates/demo-store-neue/src/routes/journal/index.server.jsx
@@ -0,0 +1,4 @@
+// Index of posts from the blog with the handle `journal`, if it doesn't exist, fallback to 404 page.
+export default function Posts() {
+ return Posts
;
+}
diff --git a/templates/demo-store-neue/src/routes/locations/[handle].server.jsx b/templates/demo-store-neue/src/routes/locations/[handle].server.jsx
new file mode 100644
index 0000000000..95351ebb40
--- /dev/null
+++ b/templates/demo-store-neue/src/routes/locations/[handle].server.jsx
@@ -0,0 +1,162 @@
+import {useShopQuery, useRouteParams, Seo, gql, Image} from '@shopify/hydrogen';
+
+import {DefaultLayout as Layout} from '~/components/layouts';
+import {NotFound} from '~/components/pages';
+import {PageHeader, Section} from '~/components/sections';
+import {Text, Heading} from '~/components/elements';
+import {formatPhoneNumber} from '~/lib/utils';
+
+export default function Location() {
+ const {handle} = useRouteParams();
+
+ const {data} = useShopQuery({
+ query: QUERY,
+ variables: {
+ handle,
+ },
+ preload: true,
+ });
+
+ if (data?.contentEntry == null) {
+ return ;
+ }
+
+ const {featured_image, title, description, address, hours, email, phone} =
+ data.contentEntry;
+
+ const directions_link = `https://www.google.com/maps/dir/?api=1&destination=${address?.value?.replace(
+ /(\r\n|\n|\r)/gm,
+ '',
+ )}`;
+
+ return (
+
+ {title?.value && (
+
+
+
+ {title.value}
+
+ {description?.value && {description.value} }
+
+
+
+
+ {(phone?.value || email?.value) && (
+
+ )}
+ {hours?.value && (
+
+
+ Hours
+
+
+ {JSON.parse(hours.value).map((hour) => (
+
+ {hour}
+
+ ))}
+
+
+ )}
+
+
+
+ Address
+
+ {address?.value && (
+
',
+ ),
+ }}
+ />
+ )}
+ {directions_link && (
+
+
+ Get directions
+
+
+ )}
+
+
+
+
+ )}
+
+
+ );
+}
+
+const QUERY = gql`
+ query store($handle: String!) {
+ contentEntry(byHandle: {type: "stores", handle: $handle}) {
+ id
+ featured_image: field(key: "featured_image") {
+ reference {
+ ... on MediaImage {
+ image {
+ url
+ width
+ height
+ }
+ }
+ }
+ }
+ title: field(key: "title") {
+ value
+ }
+ description: field(key: "description") {
+ value
+ }
+ address: field(key: "address") {
+ value
+ }
+ hours: field(key: "hours") {
+ id
+ value
+ }
+ email: field(key: "email") {
+ value
+ }
+ phone: field(key: "phone") {
+ value
+ }
+ }
+ }
+`;
diff --git a/templates/demo-store-neue/src/routes/locations/index.server.jsx b/templates/demo-store-neue/src/routes/locations/index.server.jsx
new file mode 100644
index 0000000000..b5a2709c1f
--- /dev/null
+++ b/templates/demo-store-neue/src/routes/locations/index.server.jsx
@@ -0,0 +1,55 @@
+import {useShopQuery, Image, Link, gql} from '@shopify/hydrogen';
+import {DefaultLayout as Layout} from '~/components/layouts';
+import {PageHeader, Section} from '~/components/sections';
+import {Grid} from '~/components/elements';
+import {LOCATION_CARD_FIELDS} from '~/lib/fragments';
+
+export default function Locations() {
+ const {data} = useShopQuery({
+ query: QUERY,
+ variables: {
+ pageBy: 12,
+ },
+ preload: true,
+ });
+
+ const locations = data.stores.nodes;
+
+ return (
+
+
+
+
+ {locations.map((location) => (
+
+ ))}
+
+
+
+ );
+}
+
+function Card({to, data}) {
+ return (
+
+
+
+
+ {data.title.value}
+
+ );
+}
+
+const QUERY = gql`
+ ${LOCATION_CARD_FIELDS}
+ query Locations($pageBy: Int) {
+ stores: contentEntries(first: $pageBy, type: "stores") {
+ nodes {
+ ...LocationCardFields
+ }
+ }
+ }
+`;
diff --git a/templates/demo-store-neue/src/routes/pages/[handle].server.jsx b/templates/demo-store-neue/src/routes/pages/[handle].server.jsx
new file mode 100644
index 0000000000..de98a135a3
--- /dev/null
+++ b/templates/demo-store-neue/src/routes/pages/[handle].server.jsx
@@ -0,0 +1,61 @@
+import {
+ useShop,
+ useShopQuery,
+ Seo,
+ useServerAnalytics,
+ ShopifyAnalyticsConstants,
+ gql,
+} from '@shopify/hydrogen';
+
+import {DefaultLayout as Layout} from '~/components/layouts';
+import {NotFound} from '~/components/pages';
+
+export default function Page({params}) {
+ const {languageCode} = useShop();
+
+ const {handle} = params;
+ const {data} = useShopQuery({
+ query: QUERY,
+ variables: {language: languageCode, handle},
+ });
+
+ useServerAnalytics(
+ data.pageByHandle
+ ? {
+ shopify: {
+ pageType: ShopifyAnalyticsConstants.pageType.page,
+ resourceId: data.pageByHandle.id,
+ },
+ }
+ : null,
+ );
+
+ if (!data.pageByHandle) {
+ return ;
+ }
+
+ const page = data.pageByHandle;
+
+ return (
+
+
+ {page.title}
+
+
+ );
+}
+
+const QUERY = gql`
+ query PageDetails($language: LanguageCode, $handle: String!)
+ @inContext(language: $language) {
+ pageByHandle(handle: $handle) {
+ id
+ title
+ body
+ seo {
+ description
+ title
+ }
+ }
+ }
+`;
diff --git a/templates/demo-store-neue/src/routes/password.server.jsx b/templates/demo-store-neue/src/routes/password.server.jsx
new file mode 100644
index 0000000000..a92f9380ef
--- /dev/null
+++ b/templates/demo-store-neue/src/routes/password.server.jsx
@@ -0,0 +1,4 @@
+// TODO: Only if API is exposed from /admin/online_store/preferences
+export default function Password() {
+ return Password Page
;
+}
diff --git a/templates/demo-store-neue/src/routes/policies/[handle].server.jsx b/templates/demo-store-neue/src/routes/policies/[handle].server.jsx
new file mode 100644
index 0000000000..7dc4b7c6d4
--- /dev/null
+++ b/templates/demo-store-neue/src/routes/policies/[handle].server.jsx
@@ -0,0 +1,4 @@
+// TODO: Query for Store Policies: Terms, Privacy, Shipping, COVID
+export default function Policy() {
+ return Policy
;
+}
diff --git a/templates/demo-store-neue/src/routes/products/[handle].server.jsx b/templates/demo-store-neue/src/routes/products/[handle].server.jsx
new file mode 100644
index 0000000000..b7de46b154
--- /dev/null
+++ b/templates/demo-store-neue/src/routes/products/[handle].server.jsx
@@ -0,0 +1,137 @@
+import {
+ useSession,
+ useShop,
+ useShopQuery,
+ Seo,
+ useRouteParams,
+ useServerAnalytics,
+ ShopifyAnalyticsConstants,
+ gql,
+ ProductOptionsProvider,
+} from '@shopify/hydrogen';
+
+import {DefaultLayout as Layout} from '~/components/layouts';
+import {Section, ProductSwimlane} from '~/components/sections';
+import {Heading, Text} from '~/components/elements';
+import {
+ ProductGallery,
+ ProductForm,
+ ProductInfo,
+} from '~/components/sections/products';
+import {NotFound} from '~/components/pages';
+import {MEDIA_FIELDS} from '~/lib/fragments';
+
+export default function Product() {
+ const {handle} = useRouteParams();
+ const {countryCode = 'US'} = useSession();
+ const {languageCode} = useShop();
+
+ const {
+ data: {product},
+ } = useShopQuery({
+ query: QUERY,
+ variables: {
+ country: countryCode,
+ language: languageCode,
+ handle,
+ },
+ preload: true,
+ });
+
+ useServerAnalytics(
+ product
+ ? {
+ shopify: {
+ pageType: ShopifyAnalyticsConstants.pageType.product,
+ resourceId: product.id,
+ },
+ }
+ : null,
+ );
+
+ if (!product) {
+ return ;
+ }
+
+ return (
+
+
+
+
+
+
+ {product.title}
+ {product.vendor && (
+
+ {product.vendor}
+
+ )}
+
+
+
+
+
+
+
+
+ );
+}
+
+const QUERY = gql`
+ ${MEDIA_FIELDS}
+ query Product(
+ $country: CountryCode
+ $language: LanguageCode
+ $handle: String!
+ ) @inContext(country: $country, language: $language) {
+ product(handle: $handle) {
+ id
+ title
+ vendor
+ description
+ media(first: 14) {
+ nodes {
+ ...MediaFields
+ }
+ }
+ variants(first: 100) {
+ nodes {
+ availableForSale
+ compareAtPriceV2 {
+ amount
+ currencyCode
+ }
+ selectedOptions {
+ name
+ value
+ }
+ id
+ image {
+ id
+ url
+ altText
+ width
+ height
+ }
+ priceV2 {
+ amount
+ currencyCode
+ }
+ sku
+ title
+ unitPrice {
+ amount
+ currencyCode
+ }
+ }
+ }
+ seo {
+ description
+ title
+ }
+ }
+ }
+`;
diff --git a/templates/demo-store-neue/src/routes/products/index.server.jsx b/templates/demo-store-neue/src/routes/products/index.server.jsx
new file mode 100644
index 0000000000..5a082bd2dd
--- /dev/null
+++ b/templates/demo-store-neue/src/routes/products/index.server.jsx
@@ -0,0 +1,74 @@
+import {useSession, useShop, useShopQuery, Seo, gql} from '@shopify/hydrogen';
+
+import {DefaultLayout as Layout} from '~/components/layouts';
+import {PageHeader, Section} from '~/components/sections';
+import {Button, Grid, Text} from '~/components/elements';
+import {ProductCard} from '~/components/blocks';
+
+import {PRODUCT_CARD_FIELDS} from '~/lib/fragments';
+
+export default function AllProducts({pageBy = 12}) {
+ const {languageCode} = useShop();
+ const {countryCode = 'US'} = useSession();
+
+ const {data} = useShopQuery({
+ query: QUERY,
+ variables: {
+ country: countryCode,
+ language: languageCode,
+ pageBy,
+ },
+ preload: true,
+ });
+
+ const products = data.products.nodes;
+ const hasNextPage = data.products.pageInfo.hasNextPage;
+
+ return (
+
+
+
+
+
+ {/* TODO: This will only get the amount on the page, not the total amount. I don't think you actually can grab the total number of products in a collection today. */}
+ {products.length}
+ {/* TODO: Convert to Filter dropdown */}
+
+ Filters
+
+
+
+
+
+
+
+ {products.map((product) => (
+
+ ))}
+
+
+ {hasNextPage && Load More }
+
+ );
+}
+
+const QUERY = gql`
+ ${PRODUCT_CARD_FIELDS}
+ query CollectionDetails(
+ $country: CountryCode
+ $language: LanguageCode
+ $pageBy: Int!
+ $cursor: String
+ ) @inContext(country: $country, language: $language) {
+ products(first: $pageBy, after: $cursor) {
+ nodes {
+ ...ProductCardFields
+ }
+ pageInfo {
+ hasNextPage
+ startCursor
+ endCursor
+ }
+ }
+ }
+`;
diff --git a/templates/demo-store-neue/src/routes/search.server.jsx b/templates/demo-store-neue/src/routes/search.server.jsx
new file mode 100644
index 0000000000..65727207d4
--- /dev/null
+++ b/templates/demo-store-neue/src/routes/search.server.jsx
@@ -0,0 +1,140 @@
+import {
+ useShop,
+ useUrl,
+ useSession,
+ useShopQuery,
+ gql,
+} from '@shopify/hydrogen';
+import {DefaultLayout as Layout} from '~/components/layouts';
+import {
+ FeaturedCollections,
+ PageHeader,
+ ProductSwimlane,
+ Section,
+} from '~/components/sections';
+import {Heading, Text, Button, Input, Grid} from '~/components/elements';
+import {ProductCard} from '~/components/blocks';
+
+import {PRODUCT_CARD_FIELDS} from '~/lib/fragments';
+
+export default function Search({pageBy = 12, params}) {
+ const {languageCode} = useShop();
+ const {countryCode = 'US'} = useSession();
+
+ const {handle} = params;
+ const {searchParams} = useUrl();
+
+ const query = searchParams.get('q');
+
+ const {data} = useShopQuery({
+ query: QUERY,
+ variables: {
+ handle,
+ country: countryCode,
+ language: languageCode,
+ pageBy,
+ query,
+ },
+ preload: true,
+ });
+
+ const results = data?.products?.nodes;
+
+ if (!query || results.length === 0) {
+ return (
+
+ {results.length === 0 && (
+
+ No results, try something else.
+
+ )}
+
+
+
+ );
+ }
+
+ return (
+
+
+
+ {results.map((product) => (
+
+ ))}
+
+
+
+ );
+}
+
+function SearchPage({query, children}) {
+ return (
+
+
+
+ Search
+
+
+
+ {children}
+
+ );
+}
+
+const QUERY = gql`
+ ${PRODUCT_CARD_FIELDS}
+ query search(
+ $query: String
+ $country: CountryCode
+ $language: LanguageCode
+ $pageBy: Int!
+ $after: String
+ ) @inContext(country: $country, language: $language) {
+ products(first: $pageBy, sortKey: RELEVANCE, query: $query, after: $after) {
+ nodes {
+ ...ProductCardFields
+ }
+ pageInfo {
+ startCursor
+ endCursor
+ hasNextPage
+ hasPreviousPage
+ }
+ }
+ featuredCollections: collections(first: 3, sortKey: UPDATED_AT) {
+ nodes {
+ id
+ title
+ handle
+ image {
+ altText
+ width
+ height
+ url
+ }
+ }
+ }
+ featuredProducts: products(first: 12) {
+ nodes {
+ ...ProductCardFields
+ }
+ }
+ }
+`;
diff --git a/templates/demo-store-neue/src/styles/index.css b/templates/demo-store-neue/src/styles/index.css
new file mode 100644
index 0000000000..80156d634e
--- /dev/null
+++ b/templates/demo-store-neue/src/styles/index.css
@@ -0,0 +1,100 @@
+@tailwind base;
+@tailwind components;
+@tailwind utilities;
+
+/* Tokens */
+:root {
+ --color-primary: 20 20 20; /* Text, buttons, etc. */
+ --color-contrast: 255 255 255; /* Backgrounds, borders, etc. */
+ --color-accent: 191 72 0; /* Labels like "On sale" */
+ --height-nav: 3.25rem;
+ --font-size-fine: 0.75rem; /* text-xs */
+ --font-size-copy: 0.875rem; /* text-sm */
+ --font-size-lead: 1rem; /* text-base */
+ --font-size-heading: 2rem; /* text-2xl */
+ --font-size-display: 3rem; /* text-4xl */
+ --color-shop-pay: #5a31f4;
+
+ @media (min-width: 32em) {
+ }
+ @media (min-width: 48em) {
+ --height-nav: 6rem;
+ --font-size-copy: 1rem; /* text-base */
+ --font-size-lead: 1.125rem; /* text-lg */
+ --font-size-heading: 2.25rem; /* text-4xl */
+ --font-size-display: 3.75rem; /* text-6xl */
+ }
+ @media (min-width: 64em) {
+ }
+ @media (min-width: 80em) {
+ }
+ @media (min-width: 96em) {
+ }
+}
+
+@media (prefers-color-scheme: dark) {
+ :root {
+ --color-primary: 250 250 250;
+ --color-contrast: 32 33 36;
+ --color-accent: 89 167 37;
+ }
+}
+
+@layer base {
+ * {
+ font-variant-ligatures: none;
+ }
+
+ body {
+ @apply text-base antialiased font-sans text-primary/90 bg-contrast border-primary/10;
+ }
+
+ html {
+ scroll-padding-top: 10rem;
+ }
+
+ model-viewer::part(default-progress-mask) {
+ display: none;
+ }
+
+ model-viewer::part(default-progress-bar) {
+ display: none;
+ }
+
+ input[type='search']::-webkit-search-decoration,
+ input[type='search']::-webkit-search-cancel-button,
+ input[type='search']::-webkit-search-results-button,
+ input[type='search']::-webkit-search-results-decoration {
+ -webkit-appearance: none;
+ }
+}
+
+@layer utilities {
+ .absolute-center {
+ @apply absolute top-1/2 left-1/2 -translate-x-1/2 -translate-y-1/2;
+ }
+
+ .strike {
+ position: relative;
+ &::before {
+ content: '';
+ display: block;
+ position: absolute;
+ width: 108%;
+ height: 1.5px;
+ left: -4%;
+ top: 50%;
+ transform: translateY(-50%);
+ background: rgb(var(--color-primary));
+ box-shadow: 0.5px 0.5px 0px 0.5px rgb(var(--color-contrast));
+ }
+ }
+
+ .card-image {
+ @apply relative rounded overflow-clip;
+ &::before {
+ content: ' ';
+ @apply absolute block top-0 left-0 w-full h-full shadow-border rounded;
+ }
+ }
+}
diff --git a/templates/demo-store-neue/tailwind.config.js b/templates/demo-store-neue/tailwind.config.js
new file mode 100644
index 0000000000..c8646fec6b
--- /dev/null
+++ b/templates/demo-store-neue/tailwind.config.js
@@ -0,0 +1,60 @@
+function withOpacityValue(variable) {
+ return ({opacityValue}) => {
+ if (opacityValue === undefined) {
+ return `rgb(var(${variable}))`;
+ }
+ return `rgb(var(${variable}) / ${opacityValue})`;
+ };
+}
+
+module.exports = {
+ content: ['./index.html', './src/**/*.{js,jsx,ts,tsx}'],
+ theme: {
+ extend: {
+ colors: {
+ primary: withOpacityValue('--color-primary'),
+ contrast: withOpacityValue('--color-contrast'),
+ notice: withOpacityValue('--color-accent'),
+ shopPay: 'var(--color-shop-pay)',
+ },
+ borderColor: {
+ lightest: 'rgb(var(--color-primary) / 0.02)',
+ lighter: 'rgb(var(--color-primary) / 0.04)',
+ light: 'rgb(var(--color-primary) / 0.08)',
+ DEFAULT: 'rgb(var(--color-primary) / 0.16)',
+ dark: 'rgb(var(--color-primary) / 0.32)',
+ darker: 'rgb(var(--color-primary) / 0.64)',
+ darkest: 'rgb(var(--color-primary) / 0.98)',
+ },
+ screens: {
+ sm: '32em',
+ md: '48em',
+ lg: '64em',
+ xl: '80em',
+ '2xl': '96em',
+ },
+ spacing: {
+ nav: 'var(--height-nav)',
+ },
+ fontFamily: {
+ sans: ['Helvetica Neue', 'ui-sans-serif', 'system-ui', 'sans-serif'],
+ },
+ fontSize: {
+ display: ['var(--font-size-display)', '1.1'],
+ heading: ['var(--font-size-heading)', '1.25'],
+ lead: ['var(--font-size-lead)', '1.333'],
+ copy: ['var(--font-size-copy)', '1.5'],
+ fine: ['var(--font-size-fine)', '1.333'],
+ },
+ maxWidth: {
+ 'prose-narrow': '45ch',
+ 'prose-wide': '80ch',
+ },
+ boxShadow: {
+ border: 'inset 0px 0px 0px 1px rgb(var(--color-primary) / 0.08)',
+ darkHeader: 'inset 0px -1px 0px 0px rgba(21, 21, 21, 0.4)',
+ },
+ },
+ },
+ plugins: [require('@tailwindcss/forms'), require('@tailwindcss/typography')],
+};
diff --git a/templates/demo-store-neue/vite.config.js b/templates/demo-store-neue/vite.config.js
new file mode 100644
index 0000000000..57ee796d3d
--- /dev/null
+++ b/templates/demo-store-neue/vite.config.js
@@ -0,0 +1,9 @@
+import {defineConfig} from 'vite';
+import hydrogen from '@shopify/hydrogen/plugin';
+
+export default defineConfig({
+ plugins: [hydrogen()],
+ resolve: {
+ alias: [{find: /^~\/(.*)/, replacement: '/src/$1'}],
+ },
+});
diff --git a/yarn.lock b/yarn.lock
index d8bfad68b8..83cb341129 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -519,7 +519,7 @@
core-js-pure "^3.20.2"
regenerator-runtime "^0.13.4"
-"@babel/runtime@^7.0.0", "@babel/runtime@^7.10.2", "@babel/runtime@^7.10.4", "@babel/runtime@^7.12.5", "@babel/runtime@^7.16.3", "@babel/runtime@^7.5.5", "@babel/runtime@^7.7.6", "@babel/runtime@^7.9.2":
+"@babel/runtime@^7.0.0", "@babel/runtime@^7.1.2", "@babel/runtime@^7.10.2", "@babel/runtime@^7.10.4", "@babel/runtime@^7.12.5", "@babel/runtime@^7.16.3", "@babel/runtime@^7.5.5", "@babel/runtime@^7.7.6", "@babel/runtime@^7.9.2":
version "7.18.3"
resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.18.3.tgz#c7b654b57f6f63cf7f8b418ac9ca04408c4579f4"
integrity sha512-38Y8f7YUhce/K7RMwTp7m0uCumpv9hZkitCbBClqQIow1qSbCvGkcegKOXpEWCQLfWmevgRiWokZ1GkpfhbZug==
@@ -571,10 +571,17 @@
dependencies:
"@bugsnag/core" "^7.16.1"
-"@bugsnag/core@^7.16.1":
- version "7.16.1"
- resolved "https://registry.yarnpkg.com/@bugsnag/core/-/core-7.16.1.tgz#0376b5c4dd7b44f57eb503775857d974e4b5afc9"
- integrity sha512-zuBnL7B329VldItRqhXYrp1hjmjZnltJwNXMysi9WtY4t29WKk5LVwgWb1mPM9clJ0FoObZ7kvvQMUTKh3ezFQ==
+"@bugsnag/browser@^7.16.7":
+ version "7.16.7"
+ resolved "https://registry.yarnpkg.com/@bugsnag/browser/-/browser-7.16.7.tgz#d9f450e439f30bc8da6e21453ba37ff92ed8f637"
+ integrity sha512-s8uDZXEqaike6nSLtQ0+VgCyW2c4N4Y/WuoZid3a1rp79DHrgcPkt7tcezosdRb4VDm6WE07A384hAss/76FzA==
+ dependencies:
+ "@bugsnag/core" "^7.16.7"
+
+"@bugsnag/core@^7.16.1", "@bugsnag/core@^7.16.7":
+ version "7.16.7"
+ resolved "https://registry.yarnpkg.com/@bugsnag/core/-/core-7.16.7.tgz#abcea13146678c0b243d1ca717d86ed97518962c"
+ integrity sha512-F6x/VNH4qb414TIH2sKbRdlf3IyBhFhAK3vmOADOpR4rpcYCXXNPtI8Ir3urna2Doa2GxdBNw1ZR96kCsgyHlg==
dependencies:
"@bugsnag/cuid" "^3.0.0"
"@bugsnag/safe-json-stringify" "^6.0.0"
@@ -595,12 +602,20 @@
"@bugsnag/browser" "^7.16.5"
"@bugsnag/node" "^7.16.2"
-"@bugsnag/node@^7.16.2":
- version "7.16.2"
- resolved "https://registry.yarnpkg.com/@bugsnag/node/-/node-7.16.2.tgz#8ac1b41786306d8917fb9fe222ada74fe0c4c6d5"
- integrity sha512-V5pND701cIYGzjjTwt0tuvAU1YyPB9h7vo5F/DzrDHRPmCINA/oVbc0Twco87knc2VPe8ntGFqTicTY65iOWzg==
+"@bugsnag/js@^7.16.7":
+ version "7.16.7"
+ resolved "https://registry.yarnpkg.com/@bugsnag/js/-/js-7.16.7.tgz#cd223f06b09dce80e0f05c2b224b18e6f796262c"
+ integrity sha512-i4MDIKhnPUMSpx5+XmKxrvFGAY6qZXcdBu+nplr2TrPymkJ+NNEpLyR6dijeqy5ehXaUnogN4RBfFeS9Btu1pw==
dependencies:
- "@bugsnag/core" "^7.16.1"
+ "@bugsnag/browser" "^7.16.7"
+ "@bugsnag/node" "^7.16.7"
+
+"@bugsnag/node@^7.16.2", "@bugsnag/node@^7.16.7":
+ version "7.16.7"
+ resolved "https://registry.yarnpkg.com/@bugsnag/node/-/node-7.16.7.tgz#7aad6c6ecc6d86c73bff89b5fb1ccca0d0cef2dd"
+ integrity sha512-oWR4V8/F6XX/eT4xw6JlronljjUxkxv4vaY17TY/RyfOyz8qf9hwJ7dbydHqKEkJJgjsWVW/4HBwWo5YRQ/5Tg==
+ dependencies:
+ "@bugsnag/core" "^7.16.7"
byline "^5.0.0"
error-stack-parser "^2.0.2"
iserror "^0.0.2"
@@ -847,6 +862,11 @@
exec-sh "^0.3.2"
minimist "^1.2.0"
+"@colors/colors@1.5.0":
+ version "1.5.0"
+ resolved "https://registry.yarnpkg.com/@colors/colors/-/colors-1.5.0.tgz#bb504579c1cae923e6576a4f5da43d25f97bdbd9"
+ integrity sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==
+
"@cspotcode/source-map-support@^0.8.0":
version "0.8.1"
resolved "https://registry.yarnpkg.com/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz#00629c35a688e05a88b1cda684fb9d5e73f000a1"
@@ -854,6 +874,98 @@
dependencies:
"@jridgewell/trace-mapping" "0.3.9"
+"@csstools/postcss-cascade-layers@^1.0.2":
+ version "1.0.3"
+ resolved "https://registry.yarnpkg.com/@csstools/postcss-cascade-layers/-/postcss-cascade-layers-1.0.3.tgz#71ee4a3f00f947788097f8d67310b2e4a336aa51"
+ integrity sha512-fvXP0+dcllGtRKAjA5n5tBr57xWQalKky09hSiXAZ9qqjHn0sDuQV2Jz0Y5zHRQ6iGrAjJZOf2+xQj3yuXfLwA==
+ dependencies:
+ "@csstools/selector-specificity" "^2.0.0"
+ postcss-selector-parser "^6.0.10"
+
+"@csstools/postcss-color-function@^1.1.0":
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/@csstools/postcss-color-function/-/postcss-color-function-1.1.0.tgz#229966327747f58fbe586de35daa139db3ce1e5d"
+ integrity sha512-5D5ND/mZWcQoSfYnSPsXtuiFxhzmhxt6pcjrFLJyldj+p0ZN2vvRpYNX+lahFTtMhAYOa2WmkdGINr0yP0CvGA==
+ dependencies:
+ "@csstools/postcss-progressive-custom-properties" "^1.1.0"
+ postcss-value-parser "^4.2.0"
+
+"@csstools/postcss-font-format-keywords@^1.0.0":
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/@csstools/postcss-font-format-keywords/-/postcss-font-format-keywords-1.0.0.tgz#7e7df948a83a0dfb7eb150a96e2390ac642356a1"
+ integrity sha512-oO0cZt8do8FdVBX8INftvIA4lUrKUSCcWUf9IwH9IPWOgKT22oAZFXeHLoDK7nhB2SmkNycp5brxfNMRLIhd6Q==
+ dependencies:
+ postcss-value-parser "^4.2.0"
+
+"@csstools/postcss-hwb-function@^1.0.1":
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/@csstools/postcss-hwb-function/-/postcss-hwb-function-1.0.1.tgz#5224db711ed09a965f85c80c18144ac1c2702fce"
+ integrity sha512-AMZwWyHbbNLBsDADWmoXT9A5yl5dsGEBeJSJRUJt8Y9n8Ziu7Wstt4MC8jtPW7xjcLecyfJwtnUTNSmOzcnWeg==
+ dependencies:
+ postcss-value-parser "^4.2.0"
+
+"@csstools/postcss-ic-unit@^1.0.0":
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/@csstools/postcss-ic-unit/-/postcss-ic-unit-1.0.0.tgz#f484db59fc94f35a21b6d680d23b0ec69b286b7f"
+ integrity sha512-i4yps1mBp2ijrx7E96RXrQXQQHm6F4ym1TOD0D69/sjDjZvQ22tqiEvaNw7pFZTUO5b9vWRHzbHzP9+UKuw+bA==
+ dependencies:
+ "@csstools/postcss-progressive-custom-properties" "^1.1.0"
+ postcss-value-parser "^4.2.0"
+
+"@csstools/postcss-is-pseudo-class@^2.0.4":
+ version "2.0.5"
+ resolved "https://registry.yarnpkg.com/@csstools/postcss-is-pseudo-class/-/postcss-is-pseudo-class-2.0.5.tgz#60fea78776fc3916ad66d568064aa31029b9f772"
+ integrity sha512-Ek+UFI4UP2hB9u0N1cJd6KgSF1rL0J3PT4is0oSStuus8+WzbGGPyJNMOKQ0w/tyPjxiCnOI4RdSMZt3nks64g==
+ dependencies:
+ "@csstools/selector-specificity" "^2.0.0"
+ postcss-selector-parser "^6.0.10"
+
+"@csstools/postcss-normalize-display-values@^1.0.0":
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/@csstools/postcss-normalize-display-values/-/postcss-normalize-display-values-1.0.0.tgz#ce698f688c28517447aedf15a9037987e3d2dc97"
+ integrity sha512-bX+nx5V8XTJEmGtpWTO6kywdS725t71YSLlxWt78XoHUbELWgoCXeOFymRJmL3SU1TLlKSIi7v52EWqe60vJTQ==
+ dependencies:
+ postcss-value-parser "^4.2.0"
+
+"@csstools/postcss-oklab-function@^1.1.0":
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/@csstools/postcss-oklab-function/-/postcss-oklab-function-1.1.0.tgz#e9a269487a292e0930760948e923e1d46b638ee6"
+ integrity sha512-e/Q5HopQzmnQgqimG9v3w2IG4VRABsBq3itOcn4bnm+j4enTgQZ0nWsaH/m9GV2otWGQ0nwccYL5vmLKyvP1ww==
+ dependencies:
+ "@csstools/postcss-progressive-custom-properties" "^1.1.0"
+ postcss-value-parser "^4.2.0"
+
+"@csstools/postcss-progressive-custom-properties@^1.1.0", "@csstools/postcss-progressive-custom-properties@^1.3.0":
+ version "1.3.0"
+ resolved "https://registry.yarnpkg.com/@csstools/postcss-progressive-custom-properties/-/postcss-progressive-custom-properties-1.3.0.tgz#542292558384361776b45c85226b9a3a34f276fa"
+ integrity sha512-ASA9W1aIy5ygskZYuWams4BzafD12ULvSypmaLJT2jvQ8G0M3I8PRQhC0h7mG0Z3LI05+agZjqSR9+K9yaQQjA==
+ dependencies:
+ postcss-value-parser "^4.2.0"
+
+"@csstools/postcss-stepped-value-functions@^1.0.0":
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/@csstools/postcss-stepped-value-functions/-/postcss-stepped-value-functions-1.0.0.tgz#f8ffc05e163ba7bcbefc5fdcaf264ce9fd408c16"
+ integrity sha512-q8c4bs1GumAiRenmFjASBcWSLKrbzHzWl6C2HcaAxAXIiL2rUlUWbqQZUjwVG5tied0rld19j/Mm90K3qI26vw==
+ dependencies:
+ postcss-value-parser "^4.2.0"
+
+"@csstools/postcss-trigonometric-functions@^1.0.1":
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/@csstools/postcss-trigonometric-functions/-/postcss-trigonometric-functions-1.0.1.tgz#e36e61f445614193dbf6d3a8408709b0cf184a6f"
+ integrity sha512-G78CY/+GePc6dDCTUbwI6TTFQ5fs3N9POHhI6v0QzteGpf6ylARiJUNz9HrRKi4eVYBNXjae1W2766iUEFxHlw==
+ dependencies:
+ postcss-value-parser "^4.2.0"
+
+"@csstools/postcss-unset-value@^1.0.1":
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/@csstools/postcss-unset-value/-/postcss-unset-value-1.0.1.tgz#2cc020785db5ec82cc9444afe4cdae2a65445f89"
+ integrity sha512-f1G1WGDXEU/RN1TWAxBPQgQudtLnLQPyiWdtypkPC+mVYNKFKH/HYXSxH4MVNqwF8M0eDsoiU7HumJHCg/L/jg==
+
+"@csstools/selector-specificity@^2.0.0":
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/@csstools/selector-specificity/-/selector-specificity-2.0.0.tgz#65b12f12db55188422070e34687bf3af09870922"
+ integrity sha512-rZ6vufeY/UjAgtyiJ4WvfF6XP6HizIyOfbZOg0RnecIwjrvH8Am3nN1BpKnnPZunYAkUcPPXDhwbxOtGop8cfQ==
+
"@endemolshinegroup/cosmiconfig-typescript-loader@3.0.2":
version "3.0.2"
resolved "https://registry.yarnpkg.com/@endemolshinegroup/cosmiconfig-typescript-loader/-/cosmiconfig-typescript-loader-3.0.2.tgz#eea4635828dde372838b0909693ebd9aafeec22d"
@@ -884,6 +996,11 @@
resolved "https://registry.yarnpkg.com/@faker-js/faker/-/faker-6.3.1.tgz#1ae963dd40405450a2945408cba553e1afa3e0fb"
integrity sha512-8YXBE2ZcU/pImVOHX7MWrSR/X5up7t6rPWZlk34RwZEcdr3ua6X+32pSd6XuOQRN+vbuvYNfA6iey8NbrjuMFQ==
+"@gar/promisify@^1.0.1", "@gar/promisify@^1.1.3":
+ version "1.1.3"
+ resolved "https://registry.yarnpkg.com/@gar/promisify/-/promisify-1.1.3.tgz#555193ab2e3bb3b6adc3d551c9c030d9e860daf6"
+ integrity sha512-k2Ty1JcVojjJFwrg/ThKi2ujJ7XNLYaFGNB/bWT9wGR+oSMJHMa5w+CUq6p/pVrKeNNgA7pCqEcjSnHVoqJQFw==
+
"@graphql-codegen/add@^3.1.1":
version "3.1.1"
resolved "https://registry.yarnpkg.com/@graphql-codegen/add/-/add-3.1.1.tgz#e161ff1c7cdf74ce20b32f75f640f9592b9a18ca"
@@ -1329,6 +1446,16 @@
resolved "https://registry.yarnpkg.com/@headlessui/react/-/react-1.6.3.tgz#6e52477ea3aee7d99f153b98c1b41765ed77db3d"
integrity sha512-WNu/ypGzl0JmJ+sD34KtdycEu2n7EZjKFx2rq6fivsszPdoEyOVZ/GYQMJ437dfAJI0/ZxoRYfrOVduZHjlokQ==
+"@headlessui/react@^1.6.3":
+ version "1.6.4"
+ resolved "https://registry.yarnpkg.com/@headlessui/react/-/react-1.6.4.tgz#c73084e23386bef5fb86cd16da3352c3a844bb4c"
+ integrity sha512-0yqz1scwbFtwljmbbKjXsSGl5ABEYNICVHZnMCWo0UtOZodo2Tpu94uOVgCRjRZ77l2WcTi2S0uidINDvG7lsA==
+
+"@heroicons/react@^1.0.6":
+ version "1.0.6"
+ resolved "https://registry.yarnpkg.com/@heroicons/react/-/react-1.0.6.tgz#35dd26987228b39ef2316db3b1245c42eb19e324"
+ integrity sha512-JJCXydOFWMDpCP4q13iEplA503MQO3xLoZiKum+955ZCtHINWnx26CUxVxxFQu/uLb4LW3ge15ZpzIkXKkJ8oQ==
+
"@humanwhocodes/config-array@^0.9.2":
version "0.9.5"
resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.9.5.tgz#2cbaf9a89460da24b5ca6531b8bbfc23e1df50c7"
@@ -1348,6 +1475,11 @@
resolved "https://registry.yarnpkg.com/@iarna/toml/-/toml-2.2.5.tgz#b32366c89b43c6f8cefbdefac778b9c828e3ba8c"
integrity sha512-trnsAYxU3xnS1gPHPyU961coFyLkh4gAD/0zQ5mymY4yOZ+CYvsPqUbOFSw0aDM4y0tV7tiFxL/1XfXPNC6IPg==
+"@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"
@@ -1790,57 +1922,58 @@
integrity sha512-6Wci+Tp3CgPt/B9B0a3J4s3yMgLNSku6w5TV6mN+61C71UqsRBv2FUibBf3tPGlNxebgPHMEUzKpb1ggE8KCKw==
"@miniflare/cache@^2.3.0":
- version "2.4.0"
- resolved "https://registry.yarnpkg.com/@miniflare/cache/-/cache-2.4.0.tgz#1b02e0519ef9306af51a366ec0e1c9189c676fd3"
- integrity sha512-tMDXlUVlThgFubJmlxZoKmLK8kBxDmuMbVMt7csHpXegzkuo2TmIsDqBE/C3CRiJ5xeCQgpD6iZtKBu5Zn5fRA==
+ version "2.5.0"
+ resolved "https://registry.yarnpkg.com/@miniflare/cache/-/cache-2.5.0.tgz#2292ca0459942177ae5bf4d51286fefaed17967d"
+ integrity sha512-tJuDbWwzYsk4pJvPPJzdlfdGFqNnn1IN3JVrGDCq8UwOXm0K8hFiSwq2nMjjT+Z/9X2FfimgaXOx81zjPL+FjQ==
dependencies:
- "@miniflare/core" "2.4.0"
- "@miniflare/shared" "2.4.0"
+ "@miniflare/core" "2.5.0"
+ "@miniflare/shared" "2.5.0"
http-cache-semantics "^4.1.0"
- undici "4.13.0"
+ undici "5.3.0"
-"@miniflare/core@2.4.0", "@miniflare/core@^2.3.0":
- version "2.4.0"
- resolved "https://registry.yarnpkg.com/@miniflare/core/-/core-2.4.0.tgz#11a454aae60f87cf6523c259b3384698dac19403"
- integrity sha512-vYl8xaWTFzxtkbzx3IkT4Py0OAFdfmFnVo627O1HKHWVGlkjVr8UKtxBpIR+f5pq/HCMzzqA1HM9FXO0dQfy3A==
+"@miniflare/core@2.5.0", "@miniflare/core@^2.3.0":
+ version "2.5.0"
+ resolved "https://registry.yarnpkg.com/@miniflare/core/-/core-2.5.0.tgz#c5cab53fbae4f0c37f2d185b2f64fcc19565e3c0"
+ integrity sha512-BtMRi17DiimcpmDjQiIU6mIYSo/h21lVGC082n5G3JTF7AcGFAs7N2Fz2YLiYuc3zYc6qJx/NIjDoOqL2gfp3A==
dependencies:
"@iarna/toml" "^2.2.5"
- "@miniflare/shared" "2.4.0"
- "@miniflare/watcher" "2.4.0"
- busboy "^0.3.1"
+ "@miniflare/shared" "2.5.0"
+ "@miniflare/watcher" "2.5.0"
+ busboy "^1.6.0"
dotenv "^10.0.0"
kleur "^4.1.4"
set-cookie-parser "^2.4.8"
- undici "4.13.0"
+ undici "5.3.0"
+ urlpattern-polyfill "^4.0.3"
"@miniflare/runner-vm@^2.3.0":
- version "2.4.0"
- resolved "https://registry.yarnpkg.com/@miniflare/runner-vm/-/runner-vm-2.4.0.tgz#79d1286dab7e93d3acfec3c1f99a08c0a675a61c"
- integrity sha512-7sdwBYzXQTwYeR3tTvQ+vJfzc7BXwqR8AUPK9l5gvCtg+Geq9sMslr5SikIJpgcvbYqKDjvC9DQEPJ3sqr9cSQ==
+ version "2.5.0"
+ resolved "https://registry.yarnpkg.com/@miniflare/runner-vm/-/runner-vm-2.5.0.tgz#7f025e130c5d307fa79ed6f8354c8d921136fc0e"
+ integrity sha512-0n85cOBq91D7roqsIqJESDnj0oRi+xNVjDfd5uDIT1dW1qo5asA5Mwx6ntzCJB1BcB4khNatUIwpO3ZT+kT/YQ==
dependencies:
- "@miniflare/shared" "2.4.0"
+ "@miniflare/shared" "2.5.0"
-"@miniflare/shared@2.4.0", "@miniflare/shared@^2.3.0":
- version "2.4.0"
- resolved "https://registry.yarnpkg.com/@miniflare/shared/-/shared-2.4.0.tgz#dde0c1fd1c668969720b282901a6fe60cf4e1447"
- integrity sha512-lPQFzBUVGNQ93gQ/dliToWnO0OqAgsD3/902Pd/IixVSRwRj3BTnYv2dHMUKZcODBPrhnbqZeqcPWdBLzEx8uw==
+"@miniflare/shared@2.5.0", "@miniflare/shared@^2.3.0":
+ version "2.5.0"
+ resolved "https://registry.yarnpkg.com/@miniflare/shared/-/shared-2.5.0.tgz#eaf47da30e800213d4888969f8783e0ca9bb9a36"
+ integrity sha512-2oPxhnCGg8DNoo0NzUdc2BylGGeHQQvFJ6mDODjxbSXybeQC0+Ul5Ujv/FyU9W/eTbUEWNqKBycINyuXqSnJ/w==
dependencies:
ignore "^5.1.8"
kleur "^4.1.4"
"@miniflare/storage-memory@^2.3.0":
- version "2.4.0"
- resolved "https://registry.yarnpkg.com/@miniflare/storage-memory/-/storage-memory-2.4.0.tgz#af3214bd17bc08e93f8f5750bf666c0152f5353e"
- integrity sha512-mhWwgHhDNtEa7y1bYbdVucV0lqUmzagYXUSppAdSGS5JPyJMyw3HseqRNTk6gC/vKlvEYlFf3ugWcREGCedr9A==
+ version "2.5.0"
+ resolved "https://registry.yarnpkg.com/@miniflare/storage-memory/-/storage-memory-2.5.0.tgz#b49db62730fec2d6b9d17238a5f64c4406120872"
+ integrity sha512-cydVKLY0cZe2Sah0jV3s9MK3gmYLrQQcpCdMHMBEUz+nRfjfnuzs4WXzzUXCWwNT+WFC0V2WvDp2sMt+lVsmsA==
dependencies:
- "@miniflare/shared" "2.4.0"
+ "@miniflare/shared" "2.5.0"
-"@miniflare/watcher@2.4.0":
- version "2.4.0"
- resolved "https://registry.yarnpkg.com/@miniflare/watcher/-/watcher-2.4.0.tgz#3ac422d53461ef7ad0b335d4d58f925c6584a7f2"
- integrity sha512-gDQRUxwOjmctvowyd4Hcdy3fjxz3ERKzirp6TvA3AWUohKZk3IhwGlaA8aCwbdP+ELYQlG5wK44AfLSGi956fg==
+"@miniflare/watcher@2.5.0":
+ version "2.5.0"
+ resolved "https://registry.yarnpkg.com/@miniflare/watcher/-/watcher-2.5.0.tgz#eec9e3418d7bc6355ad7bf45938fadff3e809263"
+ integrity sha512-6ECE7po8NBxLmr2M00f7TWLEp1dMaAm3swf4D3ZU2xy3IqSBZE3QbOBuczYEYUIk7F+kXgaREISQg4e5QdECXQ==
dependencies:
- "@miniflare/shared" "2.4.0"
+ "@miniflare/shared" "2.5.0"
"@mrbbot/node-fetch@^4.6.0":
version "4.6.0"
@@ -1891,6 +2024,181 @@
"@nodelib/fs.scandir" "2.1.5"
fastq "^1.6.0"
+"@npmcli/arborist@^5.0.0", "@npmcli/arborist@^5.0.4":
+ version "5.2.1"
+ resolved "https://registry.yarnpkg.com/@npmcli/arborist/-/arborist-5.2.1.tgz#4f38187cb694946f551a825df17e6efd565b8946"
+ integrity sha512-DNyTHov3lU7PtCGHABzrPqQOUiBdiYzZ5dLv3D0RD5I9KbmhTLcZI/rv3ddZY0K9vpDE/R+R48b+cU/dUkL0Tw==
+ dependencies:
+ "@isaacs/string-locale-compare" "^1.1.0"
+ "@npmcli/installed-package-contents" "^1.0.7"
+ "@npmcli/map-workspaces" "^2.0.3"
+ "@npmcli/metavuln-calculator" "^3.0.1"
+ "@npmcli/move-file" "^2.0.0"
+ "@npmcli/name-from-folder" "^1.0.1"
+ "@npmcli/node-gyp" "^2.0.0"
+ "@npmcli/package-json" "^2.0.0"
+ "@npmcli/run-script" "^3.0.0"
+ bin-links "^3.0.0"
+ cacache "^16.0.6"
+ common-ancestor-path "^1.0.1"
+ json-parse-even-better-errors "^2.3.1"
+ json-stringify-nice "^1.1.4"
+ mkdirp "^1.0.4"
+ mkdirp-infer-owner "^2.0.0"
+ nopt "^5.0.0"
+ npm-install-checks "^5.0.0"
+ npm-package-arg "^9.0.0"
+ npm-pick-manifest "^7.0.0"
+ npm-registry-fetch "^13.0.0"
+ npmlog "^6.0.2"
+ pacote "^13.0.5"
+ parse-conflict-json "^2.0.1"
+ proc-log "^2.0.0"
+ promise-all-reject-late "^1.0.0"
+ promise-call-limit "^1.0.1"
+ read-package-json-fast "^2.0.2"
+ readdir-scoped-modules "^1.1.0"
+ rimraf "^3.0.2"
+ semver "^7.3.7"
+ ssri "^9.0.0"
+ treeverse "^2.0.0"
+ walk-up-path "^1.0.0"
+
+"@npmcli/ci-detect@^2.0.0":
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/@npmcli/ci-detect/-/ci-detect-2.0.0.tgz#e63c91bcd4185ac1e85720a34fc48e164ece5b89"
+ integrity sha512-8yQtQ9ArHh/TzdUDKQwEvwCgpDuhSWTDAbiKMl3854PcT+Dk4UmWaiawuFTLy9n5twzXOBXVflWe+90/ffXQrA==
+
+"@npmcli/config@^4.1.0":
+ version "4.1.0"
+ resolved "https://registry.yarnpkg.com/@npmcli/config/-/config-4.1.0.tgz#5c92e5ded2a44baf76b94926646329c3b39e79b8"
+ integrity sha512-cPQmIQ2Q0vuOfrenrA3isikdMFMAHgzlXV+EmvZ8f2JeJsU5xTU2bG7ipXECiMvPF9nM+QDnMLuIg8QLw9H4xg==
+ dependencies:
+ "@npmcli/map-workspaces" "^2.0.2"
+ ini "^3.0.0"
+ mkdirp-infer-owner "^2.0.0"
+ nopt "^5.0.0"
+ proc-log "^2.0.0"
+ read-package-json-fast "^2.0.3"
+ semver "^7.3.5"
+ walk-up-path "^1.0.0"
+
+"@npmcli/disparity-colors@^2.0.0":
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/@npmcli/disparity-colors/-/disparity-colors-2.0.0.tgz#cb518166ee21573b96241a3613fef70acb2a60ba"
+ integrity sha512-FFXGrIjhvd2qSZ8iS0yDvbI7nbjdyT2VNO7wotosjYZM2p2r8PN3B7Om3M5NO9KqW/OVzfzLB3L0V5Vo5QXC7A==
+ dependencies:
+ ansi-styles "^4.3.0"
+
+"@npmcli/fs@^1.0.0":
+ version "1.1.1"
+ resolved "https://registry.yarnpkg.com/@npmcli/fs/-/fs-1.1.1.tgz#72f719fe935e687c56a4faecf3c03d06ba593257"
+ integrity sha512-8KG5RD0GVP4ydEzRn/I4BNDuxDtqVbOdm8675T49OIG/NGhaK0pjPX7ZcDlvKYbA+ulvVK3ztfcF4uBdOxuJbQ==
+ dependencies:
+ "@gar/promisify" "^1.0.1"
+ semver "^7.3.5"
+
+"@npmcli/fs@^2.1.0":
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/@npmcli/fs/-/fs-2.1.0.tgz#f2a21c28386e299d1a9fae8051d35ad180e33109"
+ integrity sha512-DmfBvNXGaetMxj9LTp8NAN9vEidXURrf5ZTslQzEAi/6GbW+4yjaLFQc6Tue5cpZ9Frlk4OBo/Snf1Bh/S7qTQ==
+ dependencies:
+ "@gar/promisify" "^1.1.3"
+ semver "^7.3.5"
+
+"@npmcli/git@^3.0.0":
+ version "3.0.1"
+ resolved "https://registry.yarnpkg.com/@npmcli/git/-/git-3.0.1.tgz#049b99b1381a2ddf7dc56ba3e91eaf76ca803a8d"
+ integrity sha512-UU85F/T+F1oVn3IsB/L6k9zXIMpXBuUBE25QDH0SsURwT6IOBqkC7M16uqo2vVZIyji3X1K4XH9luip7YekH1A==
+ dependencies:
+ "@npmcli/promise-spawn" "^3.0.0"
+ lru-cache "^7.4.4"
+ mkdirp "^1.0.4"
+ npm-pick-manifest "^7.0.0"
+ proc-log "^2.0.0"
+ promise-inflight "^1.0.1"
+ promise-retry "^2.0.1"
+ semver "^7.3.5"
+ which "^2.0.2"
+
+"@npmcli/installed-package-contents@^1.0.7":
+ version "1.0.7"
+ resolved "https://registry.yarnpkg.com/@npmcli/installed-package-contents/-/installed-package-contents-1.0.7.tgz#ab7408c6147911b970a8abe261ce512232a3f4fa"
+ integrity sha512-9rufe0wnJusCQoLpV9ZPKIVP55itrM5BxOXs10DmdbRfgWtHy1LDyskbwRnBghuB0PrF7pNPOqREVtpz4HqzKw==
+ dependencies:
+ npm-bundled "^1.1.1"
+ npm-normalize-package-bin "^1.0.1"
+
+"@npmcli/map-workspaces@^2.0.2", "@npmcli/map-workspaces@^2.0.3":
+ version "2.0.3"
+ resolved "https://registry.yarnpkg.com/@npmcli/map-workspaces/-/map-workspaces-2.0.3.tgz#2d3c75119ee53246e9aa75bc469a55281cd5f08f"
+ integrity sha512-X6suAun5QyupNM8iHkNPh0AHdRC2rb1W+MTdMvvA/2ixgmqZwlq5cGUBgmKHUHT2LgrkKJMAXbfAoTxOigpK8Q==
+ dependencies:
+ "@npmcli/name-from-folder" "^1.0.1"
+ glob "^8.0.1"
+ minimatch "^5.0.1"
+ read-package-json-fast "^2.0.3"
+
+"@npmcli/metavuln-calculator@^3.0.1":
+ version "3.1.0"
+ resolved "https://registry.yarnpkg.com/@npmcli/metavuln-calculator/-/metavuln-calculator-3.1.0.tgz#b1c2f0991c4f2d992b1615a54d4358c05efc3702"
+ integrity sha512-Q5fbQqGDlYqk7kWrbg6E2j/mtqQjZop0ZE6735wYA1tYNHguIDjAuWs+kFb5rJCkLIlXllfapvsyotYKiZOTBA==
+ dependencies:
+ cacache "^16.0.0"
+ json-parse-even-better-errors "^2.3.1"
+ pacote "^13.0.3"
+ semver "^7.3.5"
+
+"@npmcli/move-file@^1.0.1":
+ version "1.1.2"
+ resolved "https://registry.yarnpkg.com/@npmcli/move-file/-/move-file-1.1.2.tgz#1a82c3e372f7cae9253eb66d72543d6b8685c674"
+ integrity sha512-1SUf/Cg2GzGDyaf15aR9St9TWlb+XvbZXWpDx8YKs7MLzMH/BCeopv+y9vzrzgkfykCGuWOlSu3mZhj2+FQcrg==
+ dependencies:
+ mkdirp "^1.0.4"
+ rimraf "^3.0.2"
+
+"@npmcli/move-file@^2.0.0":
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/@npmcli/move-file/-/move-file-2.0.0.tgz#417f585016081a0184cef3e38902cd917a9bbd02"
+ integrity sha512-UR6D5f4KEGWJV6BGPH3Qb2EtgH+t+1XQ1Tt85c7qicN6cezzuHPdZwwAxqZr4JLtnQu0LZsTza/5gmNmSl8XLg==
+ dependencies:
+ mkdirp "^1.0.4"
+ rimraf "^3.0.2"
+
+"@npmcli/name-from-folder@^1.0.1":
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/@npmcli/name-from-folder/-/name-from-folder-1.0.1.tgz#77ecd0a4fcb772ba6fe927e2e2e155fbec2e6b1a"
+ integrity sha512-qq3oEfcLFwNfEYOQ8HLimRGKlD8WSeGEdtUa7hmzpR8Sa7haL1KVQrvgO6wqMjhWFFVjgtrh1gIxDz+P8sjUaA==
+
+"@npmcli/node-gyp@^2.0.0":
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/@npmcli/node-gyp/-/node-gyp-2.0.0.tgz#8c20e53e34e9078d18815c1d2dda6f2420d75e35"
+ integrity sha512-doNI35wIe3bBaEgrlPfdJPaCpUR89pJWep4Hq3aRdh6gKazIVWfs0jHttvSSoq47ZXgC7h73kDsUl8AoIQUB+A==
+
+"@npmcli/package-json@^2.0.0":
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/@npmcli/package-json/-/package-json-2.0.0.tgz#3bbcf4677e21055adbe673d9f08c9f9cde942e4a"
+ integrity sha512-42jnZ6yl16GzjWSH7vtrmWyJDGVa/LXPdpN2rcUWolFjc9ON2N3uz0qdBbQACfmhuJZ2lbKYtmK5qx68ZPLHMA==
+ dependencies:
+ json-parse-even-better-errors "^2.3.1"
+
+"@npmcli/promise-spawn@^3.0.0":
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/@npmcli/promise-spawn/-/promise-spawn-3.0.0.tgz#53283b5f18f855c6925f23c24e67c911501ef573"
+ integrity sha512-s9SgS+p3a9Eohe68cSI3fi+hpcZUmXq5P7w0kMlAsWVtR7XbK3ptkZqKT2cK1zLDObJ3sR+8P59sJE0w/KTL1g==
+ dependencies:
+ infer-owner "^1.0.4"
+
+"@npmcli/run-script@^3.0.0", "@npmcli/run-script@^3.0.1":
+ version "3.0.3"
+ resolved "https://registry.yarnpkg.com/@npmcli/run-script/-/run-script-3.0.3.tgz#66afa6e0c4c3484056195f295fa6c1d1a45ddf58"
+ integrity sha512-ZXL6qgC5NjwfZJ2nET+ZSLEz/PJgJ/5CU90C2S66dZY4Jw73DasS4ZCXuy/KHWYP0imjJ4VtA+Gebb5BxxKp9Q==
+ dependencies:
+ "@npmcli/node-gyp" "^2.0.0"
+ "@npmcli/promise-spawn" "^3.0.0"
+ node-gyp "^8.4.1"
+ read-package-json-fast "^2.0.3"
+
"@oclif/color@^1.0.1":
version "1.0.1"
resolved "https://registry.yarnpkg.com/@oclif/color/-/color-1.0.1.tgz#20ab9205e0924c6388918a88874e1f4b32df9970"
@@ -1972,7 +2280,7 @@
widest-line "^3.1.0"
wrap-ansi "^7.0.0"
-"@oclif/core@^1.2.0", "@oclif/core@^1.3.6":
+"@oclif/core@1.9.0", "@oclif/core@^1.2.0", "@oclif/core@^1.3.6":
version "1.9.0"
resolved "https://registry.yarnpkg.com/@oclif/core/-/core-1.9.0.tgz#bb2a7820a9176f28921f449c0f577d39c15e74d0"
integrity sha512-duvlaRQf4JM+mKuwwos1DNa/Q9x6tnF3khV5RU0fy5hhETF7THlTmxioKlIvKMyQDVpySqtZXZ0OKHeCi2EWuQ==
@@ -2106,6 +2414,17 @@
prettier "^2.6.1"
vite "^2.9.6"
+"@shopify/cli-hydrogen@^3.0.11":
+ version "3.0.11"
+ resolved "https://registry.yarnpkg.com/@shopify/cli-hydrogen/-/cli-hydrogen-3.0.11.tgz#9a9a758dc38ecc1769a5a01e67276e94c7d0ff6b"
+ integrity sha512-Dwd8X58eHAbL2e/AKjN1YzQCwxSKYjEN5t9waGk+/4asnB49qThWaNt1l1ByTiIMpoQ7J95PR4RY528zxPK5QA==
+ dependencies:
+ "@oclif/core" "1.9.0"
+ "@shopify/mini-oxygen" "^0.0.5"
+ "@types/prettier" "^2.6.3"
+ prettier "^2.6.1"
+ vite "^2.9.9"
+
"@shopify/cli-hydrogen@latest":
version "2.0.14"
resolved "https://registry.yarnpkg.com/@shopify/cli-hydrogen/-/cli-hydrogen-2.0.14.tgz#906830af47d16dcff18907c1c4ecaa546358ab02"
@@ -2141,6 +2460,18 @@
source-map-support "^0.5.21"
stacktracey "^2.1.8"
+"@shopify/cli-kit@3.0.11":
+ version "3.0.11"
+ resolved "https://registry.yarnpkg.com/@shopify/cli-kit/-/cli-kit-3.0.11.tgz#a70680d4672a3a966c097896a1cc5f06cdcc5780"
+ integrity sha512-o6iBpeI5Q9SXFMzlRuiIXfvv34KgzLIt+S08Ky9PinYiIJCUE/glePy2BAKysYPHhOeG7LYHLN1FuEayeA/fgA==
+ dependencies:
+ "@oclif/core" "1.9.0"
+ envfile "^6.17.0"
+ keytar "^7.9.0"
+ open "^8.4.0"
+ source-map-support "^0.5.21"
+ stacktracey "^2.1.8"
+
"@shopify/cli@2.0.10":
version "2.0.10"
resolved "https://registry.yarnpkg.com/@shopify/cli/-/cli-2.0.10.tgz#554f36764abcae40f1dc3344e37594669ba7605c"
@@ -2153,6 +2484,18 @@
"@shopify/cli-kit" "2.0.10"
"@shopify/plugin-ngrok" "^0.2.4"
+"@shopify/cli@^3.0.11":
+ version "3.0.11"
+ resolved "https://registry.yarnpkg.com/@shopify/cli/-/cli-3.0.11.tgz#c7ebd267ee131641153947d9364eb85640d90589"
+ integrity sha512-/TI1ASpaBdqCEVjSa9gnEvY0Io0Vba8K+23MTdPzsSwtA38UyKiN5BKSyl5XJXtJtT8LxjYSEMWxAJ/N8pM8Ug==
+ dependencies:
+ "@bugsnag/js" "^7.16.7"
+ "@oclif/core" "1.9.0"
+ "@oclif/plugin-help" "^5.1.12"
+ "@oclif/plugin-plugins" "^2.1.0"
+ "@shopify/cli-kit" "3.0.11"
+ "@shopify/plugin-ngrok" "^0.2.6"
+
"@shopify/cli@latest":
version "2.0.14"
resolved "https://registry.yarnpkg.com/@shopify/cli/-/cli-2.0.14.tgz#d4b06bca7878ca5a56e9a8088fe216fcb700b0cd"
@@ -2183,13 +2526,13 @@
semiver "^1.1.0"
typescript "^4.6.3"
-"@shopify/plugin-ngrok@^0.2.4":
- version "0.2.5"
- resolved "https://registry.yarnpkg.com/@shopify/plugin-ngrok/-/plugin-ngrok-0.2.5.tgz#c59410637f9216f0295cc161ce56cfa6375ad5ed"
- integrity sha512-UEoVYZWwDEIVoTkAeJjCSE7OjKGClpPSMwdcCfhCd9y7VIJ8MAk00xVnXSNyHh7JzAnWlPtZUd/ObqfF6EUhpw==
+"@shopify/plugin-ngrok@^0.2.4", "@shopify/plugin-ngrok@^0.2.6":
+ version "0.2.7"
+ resolved "https://registry.yarnpkg.com/@shopify/plugin-ngrok/-/plugin-ngrok-0.2.7.tgz#c287357d21232d5917bb8810f2b62b9ae113d453"
+ integrity sha512-O+lkVvFxArEPfmoR5gHSFw1w2H034opx67/trBjInZY7n1m2feXCJ9n9vnV4dA0cXcRpiQRAfKWhLzNXirP/ig==
dependencies:
"@oclif/core" "1.3.6"
- ngrok "^4.3.1"
+ ngrok "https://github.com/Shopify/ngrok#0d1b1621b998c28ab2bc50f45a897799c6def417"
"@shopify/prettier-config@^1.1.2":
version "1.1.2"
@@ -2255,6 +2598,13 @@
dependencies:
defer-to-connect "^2.0.0"
+"@tailwindcss/forms@^0.5.2":
+ version "0.5.2"
+ resolved "https://registry.yarnpkg.com/@tailwindcss/forms/-/forms-0.5.2.tgz#4ef45f9916dcb37838cbe7fecdcc4ba7a7c2ab59"
+ integrity sha512-pSrFeJB6Bg1Mrg9CdQW3+hqZXAKsBrSG9MAfFLKy1pVA4Mb4W7C0k7mEhlmS2Dfo/otxrQOET7NJiJ9RrS563w==
+ dependencies:
+ mini-svg-data-uri "^1.2.3"
+
"@tailwindcss/typography@^0.5.2":
version "0.5.2"
resolved "https://registry.yarnpkg.com/@tailwindcss/typography/-/typography-0.5.2.tgz#24b069dab24d7a2467d01aca0dd432cb4b29f0ee"
@@ -2503,7 +2853,7 @@
dependencies:
"@types/istanbul-lib-report" "*"
-"@types/jest@*", "@types/jest@^27.5.1":
+"@types/jest@*":
version "27.5.1"
resolved "https://registry.yarnpkg.com/@types/jest/-/jest-27.5.1.tgz#2c8b6dc6ff85c33bcd07d0b62cb3d19ddfdb3ab9"
integrity sha512-fUy7YRpT+rHXto1YlL+J9rs0uLGyiqVt3ZOTQR+4ROc47yNl8WLdVLgUloBRhOxP1PZvguHl44T3H0wAWxahYQ==
@@ -2519,6 +2869,19 @@
jest-diff "^26.0.0"
pretty-format "^26.0.0"
+"@types/jest@^27.5.1":
+ version "27.5.2"
+ resolved "https://registry.yarnpkg.com/@types/jest/-/jest-27.5.2.tgz#ec49d29d926500ffb9fd22b84262e862049c026c"
+ integrity sha512-mpT8LJJ4CMeeahobofYWIjFo0xonRS/HfxnVEPMPFSQdGUt1uHCnoPT7Zhb+sjDU2wz0oKV0OLUR0WzrHNgfeA==
+ dependencies:
+ jest-matcher-utils "^27.0.0"
+ pretty-format "^27.0.0"
+
+"@types/js-cookie@^2.2.6":
+ version "2.2.7"
+ resolved "https://registry.yarnpkg.com/@types/js-cookie/-/js-cookie-2.2.7.tgz#226a9e31680835a6188e887f3988e60c04d3f6a3"
+ integrity sha512-aLkWa0C0vO5b4Sr798E26QgOkss68Un0bLjs7u9qxzPT5CG+8DuNTffWES58YzJs3hrVAOs1wonycqEBqNJubA==
+
"@types/js-yaml@^4.0.0":
version "4.0.5"
resolved "https://registry.yarnpkg.com/@types/js-yaml/-/js-yaml-4.0.5.tgz#738dd390a6ecc5442f35e7f03fa1431353f7e138"
@@ -2621,6 +2984,11 @@
resolved "https://registry.yarnpkg.com/@types/prettier/-/prettier-2.6.1.tgz#76e72d8a775eef7ce649c63c8acae1a0824bbaed"
integrity sha512-XFjFHmaLVifrAKaZ+EKghFHtHSUonyw8P2Qmy2/+osBnrKbH9UYtlK10zg8/kCt47MFilll/DEDKy3DHfJ0URw==
+"@types/prettier@^2.6.3":
+ version "2.6.3"
+ resolved "https://registry.yarnpkg.com/@types/prettier/-/prettier-2.6.3.tgz#68ada76827b0010d0db071f739314fa429943d0a"
+ integrity sha512-ymZk3LEC/fsut+/Q5qejp6R9O1rMxz3XaRHDV6kX8MrGAhOSPqVARbDi+EZvInBpw+BnCX3TD240byVkOfQsHg==
+
"@types/prop-types@*":
version "15.7.5"
resolved "https://registry.yarnpkg.com/@types/prop-types/-/prop-types-15.7.5.tgz#5f19d2b85a98e9558036f6a3cacc8819420f05cf"
@@ -2639,9 +3007,9 @@
"@types/react" "*"
"@types/react@*", "@types/react@^18.0.9":
- version "18.0.9"
- resolved "https://registry.yarnpkg.com/@types/react/-/react-18.0.9.tgz#d6712a38bd6cd83469603e7359511126f122e878"
- integrity sha512-9bjbg1hJHUm4De19L1cHiW0Jvx3geel6Qczhjd0qY5VKVE2X5+x77YxAepuCwVh4vrgZJdgEJw48zrhRIeF4Nw==
+ version "18.0.12"
+ resolved "https://registry.yarnpkg.com/@types/react/-/react-18.0.12.tgz#cdaa209d0a542b3fcf69cf31a03976ec4cdd8840"
+ integrity sha512-duF1OTASSBQtcigUvhuiTB1Ya3OvSy+xORCiEf20H0P0lzx+/KeVsA99U5UjLXSbyo1DRJDlLKqTeM1ngosqtg==
dependencies:
"@types/prop-types" "*"
"@types/scheduler" "*"
@@ -2881,6 +3249,11 @@
resolved "https://registry.yarnpkg.com/@wessberg/stringutil/-/stringutil-1.0.19.tgz#baadcb6f4471fe2d46462a7d7a8294e4b45b29ad"
integrity sha512-9AZHVXWlpN8Cn9k5BC/O0Dzb9E9xfEMXzYrNunwvkUTvuK7xgQPVRZpLo+jWCOZ5r8oBa8NIrHuPEu1hzbb6bg==
+"@xobotyi/scrollbar-width@^1.9.5":
+ version "1.9.5"
+ resolved "https://registry.yarnpkg.com/@xobotyi/scrollbar-width/-/scrollbar-width-1.9.5.tgz#80224a6919272f405b87913ca13b92929bdf3c4d"
+ integrity sha512-N8tkAACJx2ww8vFMneJmaAgmjAG1tnVBZJRLRcx061tmsLRZHSEZSLuGWnwPtunsSLvSqXQ2wfp7Mgqg1I+2dQ==
+
JSV@^4.0.x:
version "4.0.2"
resolved "https://registry.yarnpkg.com/JSV/-/JSV-4.0.2.tgz#d077f6825571f82132f9dffaed587b4029feff57"
@@ -2891,6 +3264,11 @@ abab@^2.0.3, abab@^2.0.5:
resolved "https://registry.yarnpkg.com/abab/-/abab-2.0.6.tgz#41b80f2c871d19686216b82309231cfd3cb3d291"
integrity sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA==
+abbrev@1, abbrev@~1.1.1:
+ version "1.1.1"
+ resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.1.tgz#f8f2c887ad10bf67f634f005b6987fed3179aac8"
+ integrity sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==
+
abort-controller@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/abort-controller/-/abort-controller-3.0.0.tgz#eaf54d53b62bae4138e809ca225c8439a6efb392"
@@ -2919,7 +3297,7 @@ acorn-jsx@^5.3.2:
resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.3.2.tgz#7ed5bb55908b3b2f1bc55c6af1653bada7f07937"
integrity sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==
-acorn-node@^1.6.1:
+acorn-node@^1.8.2:
version "1.8.2"
resolved "https://registry.yarnpkg.com/acorn-node/-/acorn-node-1.8.2.tgz#114c95d64539e53dede23de8b9d96df7c7ae2af8"
integrity sha512-8mt+fslDufLYntIoPAaIMUe/lrbrehIiwmR3t2k9LljIzoigEPF27eLk2hy8zSGzmR/ogr7zbRKINMo1u0yh5A==
@@ -2948,13 +3326,22 @@ acorn@^8.2.4, acorn@^8.4.1, acorn@^8.7.1:
resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.7.1.tgz#0197122c843d1bf6d0a5e83220a788f278f63c30"
integrity sha512-Xx54uLJQZ19lKygFXOWsscKUbsBZW0CPykPhVQdhIeIwrbPmJzqeASDInc8nKBnp/JT6igTs82qPXz069H8I/A==
-agent-base@6:
+agent-base@6, agent-base@^6.0.2:
version "6.0.2"
resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-6.0.2.tgz#49fff58577cfee3f37176feab4c22e00f86d7f77"
integrity sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==
dependencies:
debug "4"
+agentkeepalive@^4.1.3, agentkeepalive@^4.2.1:
+ version "4.2.1"
+ resolved "https://registry.yarnpkg.com/agentkeepalive/-/agentkeepalive-4.2.1.tgz#a7975cbb9f83b367f06c90cc51ff28fe7d499717"
+ integrity sha512-Zn4cw2NEqd+9fiSVWMscnjyQ1a8Yfoc5oBajLeo5w+YBHgDUcEBY2hS4YpTz6iN5f/2zQiktcuM6tS8x1p9dpA==
+ dependencies:
+ debug "^4.1.0"
+ depd "^1.1.2"
+ humanize-ms "^1.2.1"
+
aggregate-error@^3.0.0:
version "3.1.0"
resolved "https://registry.yarnpkg.com/aggregate-error/-/aggregate-error-3.1.0.tgz#92670ff50f5359bdb7a3e0d40d0ec30c5737687a"
@@ -3054,7 +3441,7 @@ ansi-styles@^2.2.1:
resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe"
integrity sha512-kmCevFghRiWM7HB5zTPULl4r9bVFSWjz62MhqizDGUrq2NWuNMQyuv4tHHoKJHs69M/MF64lEcHdYIocrdWQYA==
-ansi-styles@^3.2.1:
+ansi-styles@^3.1.0, ansi-styles@^3.2.1:
version "3.2.1"
resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d"
integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==
@@ -3109,6 +3496,29 @@ aproba@^1.0.3:
resolved "https://registry.yarnpkg.com/aproba/-/aproba-1.2.0.tgz#6802e6264efd18c790a1b0d517f0f2627bf2c94a"
integrity sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==
+"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.1.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@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/are-we-there-yet/-/are-we-there-yet-3.0.0.tgz#ba20bd6b553e31d62fc8c31bd23d22b95734390d"
+ integrity sha512-0GWpv50YSOcLXaN6/FAKY3vfRbllXWV2xvfA/oKJF8pzFhWXPV+yjhJXDBbjscDYowv7Yw1A3uigpzn5iEGTyw==
+ dependencies:
+ delegates "^1.0.0"
+ readable-stream "^3.6.0"
+
are-we-there-yet@~1.1.2:
version "1.1.7"
resolved "https://registry.yarnpkg.com/are-we-there-yet/-/are-we-there-yet-1.1.7.tgz#b15474a932adab4ff8a50d9adfa7e4e926f21146"
@@ -3117,15 +3527,20 @@ are-we-there-yet@~1.1.2:
delegates "^1.0.0"
readable-stream "^2.0.6"
+arg@1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/arg/-/arg-1.0.0.tgz#444d885a4e25b121640b55155ef7cd03975d6050"
+ integrity sha512-Wk7TEzl1KqvTGs/uyhmHO/3XLd3t1UeU4IstvPXVzGPM522cTjqjNZ99esCkcL52sjqjo8e8CTBcWhkxvGzoAw==
+
arg@^4.1.0:
version "4.1.3"
resolved "https://registry.yarnpkg.com/arg/-/arg-4.1.3.tgz#269fc7ad5b8e42cb63c896d5666017261c144089"
integrity sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==
arg@^5.0.1:
- version "5.0.1"
- resolved "https://registry.yarnpkg.com/arg/-/arg-5.0.1.tgz#eb0c9a8f77786cad2af8ff2b862899842d7b6adb"
- integrity sha512-e0hDa9H2Z9AwFkk2qDlwhoMYE4eToKarchkQHovNdLTCYMHZHeRjI71crOh+dio4K6u1IcwubQqo79Ga4CyAQA==
+ version "5.0.2"
+ resolved "https://registry.yarnpkg.com/arg/-/arg-5.0.2.tgz#c81433cc427c92c4dcf4865142dbca6f15acd59c"
+ integrity sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==
argparse@^1.0.7:
version "1.0.10"
@@ -3237,7 +3652,7 @@ as-table@^1.0.36:
dependencies:
printable-characters "^1.0.42"
-asap@~2.0.3, asap@~2.0.6:
+asap@^2.0.0, asap@~2.0.3, asap@~2.0.6:
version "2.0.6"
resolved "https://registry.yarnpkg.com/asap/-/asap-2.0.6.tgz#e50347611d7e690943208bbdafebcbc2fb866d46"
integrity sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==
@@ -3272,9 +3687,9 @@ astral-regex@^2.0.0:
integrity sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==
async@^3.2.3:
- version "3.2.3"
- resolved "https://registry.yarnpkg.com/async/-/async-3.2.3.tgz#ac53dafd3f4720ee9e8a160628f18ea91df196c9"
- integrity sha512-spZRyzKL5l5BZQrr/6m/SqFdBN0q3OCI0f9rjfBzCMBIP4p75P620rR3gTmaksNOhmzgdxcaxdNfMy6anrbM0g==
+ version "3.2.4"
+ resolved "https://registry.yarnpkg.com/async/-/async-3.2.4.tgz#2d22e00f8cddeb5fde5dd33522b56d1cf569a81c"
+ integrity sha512-iAB+JbDEGXhyIUavoDl9WP/Jj106Kz9DEn1DPgYw5ruDn0e3Wgi3sKFm55sASdGBNOQB8F59d9qQ7deqrHA8wQ==
asynckit@^0.4.0:
version "0.4.0"
@@ -3296,7 +3711,7 @@ auto-bind@~4.0.0:
resolved "https://registry.yarnpkg.com/auto-bind/-/auto-bind-4.0.0.tgz#e3589fc6c2da8f7ca43ba9f84fa52a744fc997fb"
integrity sha512-Hdw8qdNiqdJ8LqT0iK0sVzkFbzg6fhnQqqfWhBDxcHZvU75+B+ayzTy8x+k5Ix0Y92XOhOUlx74ps+bA6BeYMQ==
-autoprefixer@^10.4.2:
+autoprefixer@^10.4.2, autoprefixer@^10.4.7:
version "10.4.7"
resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-10.4.7.tgz#1db8d195f41a52ca5069b7593be167618edbbedf"
integrity sha512-ypHju4Y2Oav95SipEcCcI5J7CGPuvz8oat7sUtYj3ClK44bldfvtvcxK6IEK++7rqB7YchDGzweZIBG+SD0ZAA==
@@ -3511,7 +3926,19 @@ 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@^3.0.0:
+ version "3.0.1"
+ resolved "https://registry.yarnpkg.com/bin-links/-/bin-links-3.0.1.tgz#cc70ffb481988b22c527d3e6e454787876987a49"
+ integrity sha512-9vx+ypzVhASvHTS6K+YSGf7nwQdANoz7v6MTC0aCtYnOEZ87YvMf81aY737EZnGZdpbRM3sfWjO9oWkKmuIvyQ==
+ dependencies:
+ cmd-shim "^5.0.0"
+ mkdirp-infer-owner "^2.0.0"
+ npm-normalize-package-bin "^1.0.0"
+ read-cmd-shim "^3.0.0"
+ rimraf "^3.0.0"
+ write-file-atomic "^4.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==
@@ -3668,6 +4095,13 @@ buffer@^5.5.0, buffer@^5.7.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"
+
busboy@^0.3.1:
version "0.3.1"
resolved "https://registry.yarnpkg.com/busboy/-/busboy-0.3.1.tgz#170899274c5bf38aae27d5c62b71268cd585fd1b"
@@ -3715,6 +4149,54 @@ c8@^7.11.0:
yargs "^16.2.0"
yargs-parser "^20.2.9"
+cacache@^15.2.0:
+ version "15.3.0"
+ resolved "https://registry.yarnpkg.com/cacache/-/cacache-15.3.0.tgz#dc85380fb2f556fe3dda4c719bfa0ec875a7f1eb"
+ integrity sha512-VVdYzXEn+cnbXpFgWs5hTT7OScegHVmLhJIR8Ufqk3iFD6A6j5iSX1KuBTfNEv4tdJWE2PzA6IVFtcLC7fN9wQ==
+ dependencies:
+ "@npmcli/fs" "^1.0.0"
+ "@npmcli/move-file" "^1.0.1"
+ chownr "^2.0.0"
+ fs-minipass "^2.0.0"
+ glob "^7.1.4"
+ infer-owner "^1.0.4"
+ lru-cache "^6.0.0"
+ minipass "^3.1.1"
+ minipass-collect "^1.0.2"
+ minipass-flush "^1.0.5"
+ minipass-pipeline "^1.2.2"
+ mkdirp "^1.0.3"
+ p-map "^4.0.0"
+ promise-inflight "^1.0.1"
+ rimraf "^3.0.2"
+ ssri "^8.0.1"
+ tar "^6.0.2"
+ unique-filename "^1.1.1"
+
+cacache@^16.0.0, cacache@^16.0.6, cacache@^16.1.0:
+ version "16.1.1"
+ resolved "https://registry.yarnpkg.com/cacache/-/cacache-16.1.1.tgz#4e79fb91d3efffe0630d5ad32db55cc1b870669c"
+ integrity sha512-VDKN+LHyCQXaaYZ7rA/qtkURU+/yYhviUdvqEv2LT6QPZU8jpyzEkEVAcKlKLt5dJ5BRp11ym8lo3NKLluEPLg==
+ dependencies:
+ "@npmcli/fs" "^2.1.0"
+ "@npmcli/move-file" "^2.0.0"
+ chownr "^2.0.0"
+ fs-minipass "^2.1.0"
+ glob "^8.0.1"
+ infer-owner "^1.0.4"
+ lru-cache "^7.7.1"
+ minipass "^3.1.6"
+ minipass-collect "^1.0.2"
+ minipass-flush "^1.0.5"
+ minipass-pipeline "^1.2.4"
+ mkdirp "^1.0.4"
+ p-map "^4.0.0"
+ promise-inflight "^1.0.1"
+ rimraf "^3.0.2"
+ ssri "^9.0.0"
+ tar "^6.1.11"
+ unique-filename "^1.1.1"
+
cache-base@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/cache-base/-/cache-base-1.0.1.tgz#0a7f46416831c8b662ee36fe4e7c59d76f666ab2"
@@ -3873,6 +4355,15 @@ chai@^4.3.6:
pathval "^1.1.1"
type-detect "^4.0.5"
+chalk@2.3.0:
+ version "2.3.0"
+ resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.3.0.tgz#b5ea48efc9c1793dccc9b4767c93914d3f2d52ba"
+ integrity sha512-Az5zJR2CBujap2rqXGaJKaPHyJ0IrUimvYNX+ncCy8PJP4ltOGTrHUIo097ZaL2zMeKYpiCdqDvS6zdrTFok3Q==
+ dependencies:
+ ansi-styles "^3.1.0"
+ escape-string-regexp "^1.0.5"
+ supports-color "^4.0.0"
+
chalk@^1.0.0, chalk@^1.1.3:
version "1.1.3"
resolved "https://registry.yarnpkg.com/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98"
@@ -4007,6 +4498,11 @@ chownr@^1.1.1:
resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.1.4.tgz#6fc9d7b42d32a583596337666e7d08084da2cc6b"
integrity sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==
+chownr@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/chownr/-/chownr-2.0.0.tgz#15bfbe53d2eab4cf70f18a8cd68ebe5b3cb1dece"
+ integrity sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==
+
ci-info@^1.5.0:
version "1.6.0"
resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-1.6.0.tgz#2ca20dbb9ceb32d4524a683303313f0304b1e497"
@@ -4022,6 +4518,13 @@ ci-info@^3.1.0, ci-info@^3.2.0:
resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-3.3.1.tgz#58331f6f472a25fe3a50a351ae3052936c2c7f32"
integrity sha512-SXgeMX9VwDe7iFFaEWkA5AstuER9YKqy4EhHqr4DVqkwmD9rpVimkMKWHdjn30Ja45txyjhSn63lVX69eVCckg==
+cidr-regex@^3.1.1:
+ version "3.1.1"
+ resolved "https://registry.yarnpkg.com/cidr-regex/-/cidr-regex-3.1.1.tgz#ba1972c57c66f61875f18fd7dd487469770b571d"
+ integrity sha512-RBqYd32aDwbCMFJRL6wHOlDNYJsPNTt8vC82ErHF5vKt8QQzxm1FrkW8s/R5pVrXMf17sba09Uoy91PKiddAsw==
+ dependencies:
+ ip-regex "^4.1.0"
+
cjs-module-lexer@^0.6.0:
version "0.6.0"
resolved "https://registry.yarnpkg.com/cjs-module-lexer/-/cjs-module-lexer-0.6.0.tgz#4186fcca0eae175970aee870b9fe2d6cf8d5655f"
@@ -4081,6 +4584,14 @@ cli-boxes@^2.2.0:
resolved "https://registry.yarnpkg.com/cli-boxes/-/cli-boxes-2.2.1.tgz#ddd5035d25094fce220e9cab40a45840a440318f"
integrity sha512-y4coMcylgSCdVinjiDBuR8PCC2bLjyGTwEmPb9NHR/QaNU6EUOXcTY/s6VjGMD6ENSEaeQYHCY0GNGS5jfMwPw==
+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@^2.0.0, cli-cursor@^2.1.0:
version "2.1.0"
resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-2.1.0.tgz#b35dac376479facc3e94747d41d0d0f5238ffcb5"
@@ -4107,6 +4618,15 @@ cli-spinners@^2.5.0:
resolved "https://registry.yarnpkg.com/cli-spinners/-/cli-spinners-2.6.1.tgz#adc954ebe281c37a6319bfa401e6dd2488ffb70d"
integrity sha512-x/5fWmGMnbKQAaNwN+UZlV79qBLM9JFnJuJ03gIi5whrob0xV0ofNVHy9DhwGdsMJQc2OKv0oGmLzvaqvAVv+g==
+cli-table3@^0.6.2:
+ version "0.6.2"
+ resolved "https://registry.yarnpkg.com/cli-table3/-/cli-table3-0.6.2.tgz#aaf5df9d8b5bf12634dc8b3040806a0c07120d2a"
+ integrity sha512-QyavHCaIC80cMivimWu4aWHilIpiDpfm3hGmqAmXVL1UsnbLuBSMd21hTX6VY4ZSDSM73ESLeF8TOYId3rBTbw==
+ dependencies:
+ string-width "^4.2.0"
+ optionalDependencies:
+ "@colors/colors" "1.5.0"
+
cli-truncate@^0.2.1:
version "0.2.1"
resolved "https://registry.yarnpkg.com/cli-truncate/-/cli-truncate-0.2.1.tgz#9f15cfbb0705005369216c626ac7d05ab90dd574"
@@ -4128,6 +4648,14 @@ cli-width@^3.0.0:
resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-3.0.0.tgz#a2f48437a2caa9a22436e794bf071ec9e61cedf6"
integrity sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw==
+clipboardy@1.2.2:
+ version "1.2.2"
+ resolved "https://registry.yarnpkg.com/clipboardy/-/clipboardy-1.2.2.tgz#2ce320b9ed9be1514f79878b53ff9765420903e2"
+ integrity sha512-16KrBOV7bHmHdxcQiCvfUFYVFyEah4FI8vYT1Fr7CGSA4G+xBWMEfUEQJS1hxeHGtI9ju1Bzs9uXSbj5HZKArw==
+ dependencies:
+ arch "^2.1.0"
+ execa "^0.8.0"
+
cliui@^6.0.0:
version "6.0.0"
resolved "https://registry.yarnpkg.com/cliui/-/cliui-6.0.0.tgz#511d702c0c4e41ca156d7d0e96021f23e13225b1"
@@ -4158,11 +4686,23 @@ clone@^1.0.2:
resolved "https://registry.yarnpkg.com/clone/-/clone-1.0.4.tgz#da309cc263df15994c688ca902179ca3c7cd7c7e"
integrity sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==
+clsx@^1.1.1:
+ version "1.1.1"
+ resolved "https://registry.yarnpkg.com/clsx/-/clsx-1.1.1.tgz#98b3134f9abbdf23b2663491ace13c5c03a73188"
+ integrity sha512-6/bPho624p3S2pMyvP5kKBPXnI3ufHLObBFCfgx+LkeR5lg2XYy2hqZqUf45ypD8COn2bhgGJSUE+l5dhNBieA==
+
cluster-key-slot@^1.1.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/cluster-key-slot/-/cluster-key-slot-1.1.0.tgz#30474b2a981fb12172695833052bc0d01336d10d"
integrity sha512-2Nii8p3RwAPiFwsnZvukotvow2rIHM+yQ6ZcBXGHdniadkYGZYiGmkHJIbZPIV9nfv7m/U1IPMVVcAhoWFeklw==
+cmd-shim@^5.0.0:
+ version "5.0.0"
+ resolved "https://registry.yarnpkg.com/cmd-shim/-/cmd-shim-5.0.0.tgz#8d0aaa1a6b0708630694c4dbde070ed94c707724"
+ integrity sha512-qkCtZ59BidfEwHltnJwkyVZn+XQojdAySM1D1gSeh11Z4pW1Kpolkyo53L5noc0nrxmIvyFwTmJRo4xs7FFLPw==
+ dependencies:
+ mkdirp-infer-owner "^2.0.0"
+
co@^4.6.0:
version "4.6.0"
resolved "https://registry.yarnpkg.com/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184"
@@ -4215,10 +4755,23 @@ color-name@^1.1.4, 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==
+
colorette@^2.0.16:
- version "2.0.16"
- resolved "https://registry.yarnpkg.com/colorette/-/colorette-2.0.16.tgz#713b9af84fdb000139f04546bd4a93f62a5085da"
- integrity sha512-hUewv7oMjCp+wkBv5Rm0v87eJhq4woh5rSR+42YSQJKecCqgIqNkZ6lAlQms/BwHPJA5NKMRlpxPRv0n8HQW6g==
+ version "2.0.17"
+ resolved "https://registry.yarnpkg.com/colorette/-/colorette-2.0.17.tgz#5dd4c0d15e2984b7433cb4a9f2ead45063b80c47"
+ integrity sha512-hJo+3Bkn0NCHybn9Tu35fIeoOKGOk5OCC32y4Hz2It+qlCO2Q3DeQ1hRn/tDDMQKRYUEzqsl7jbF6dYKjlE60g==
+
+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:
version "1.0.8"
@@ -4242,6 +4795,11 @@ commander@^9.2.0:
resolved "https://registry.yarnpkg.com/commander/-/commander-9.2.0.tgz#6e21014b2ed90d8b7c9647230d8b7a94a4a419a9"
integrity sha512-e2i4wANQiSXgnrBlIatyHtP1odfUp0BbV5Y5nEGbxtIrStkEOAAzCUirvLBNXHLr7kwLvJl6V+4V3XV9x7Wd9w==
+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-tags@1.8.2, common-tags@^1.8.0:
version "1.8.2"
resolved "https://registry.yarnpkg.com/common-tags/-/common-tags-1.8.2.tgz#94ebb3c076d26032745fd54face7f688ef5ac9c6"
@@ -4339,7 +4897,7 @@ connect@^3.7.0:
parseurl "~1.3.3"
utils-merge "1.0.1"
-console-control-strings@^1.0.0, console-control-strings@~1.1.0:
+console-control-strings@^1.0.0, console-control-strings@^1.1.0, 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==
@@ -4375,6 +4933,13 @@ copy-descriptor@^0.1.0:
resolved "https://registry.yarnpkg.com/copy-descriptor/-/copy-descriptor-0.1.1.tgz#676f6eb3c39997c2ee1ac3a924fd6124748f578d"
integrity sha512-XgZ0pFcakEUlbwQEVNg3+QAis1FyTL3Qel9FYy8pSkQqoG3PNoT0bOCQtOXcOkur21r2Eq2kI+IE+gsmAEVlYw==
+copy-to-clipboard@^3.3.1:
+ version "3.3.1"
+ resolved "https://registry.yarnpkg.com/copy-to-clipboard/-/copy-to-clipboard-3.3.1.tgz#115aa1a9998ffab6196f93076ad6da3b913662ae"
+ integrity sha512-i13qo6kIHTTpCm8/Wup+0b1mVWETvu2kIMzKoK8FpkLkFxlt0znUAHcMzox+T8sPlqtZXq3CulEjQHsYiGFJUw==
+ dependencies:
+ toggle-selection "^1.0.6"
+
core-js-pure@^3.20.2:
version "3.22.7"
resolved "https://registry.yarnpkg.com/core-js-pure/-/core-js-pure-3.22.7.tgz#f58489d9b309fa7b26486a0f70d4ec19a418084e"
@@ -4541,20 +5106,60 @@ 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==
-css.escape@^1.5.1:
- version "1.5.1"
- resolved "https://registry.yarnpkg.com/css.escape/-/css.escape-1.5.1.tgz#42e27d4fa04ae32f931a4b4d4191fa9cddee97cb"
- integrity sha512-YUifsXXuknHlUsmlgyY0PKzgPOr7/FjCePfHNt0jxm83wHZi44VDMQ7/fGNkjY3/jV1MC+1CmZbaHzugyeRtpg==
-
-css@^3.0.0:
- version "3.0.0"
- resolved "https://registry.yarnpkg.com/css/-/css-3.0.0.tgz#4447a4d58fdd03367c516ca9f64ae365cee4aa5d"
- integrity sha512-DG9pFfwOrzc+hawpmqX/dHYHJG+Bsdb0klhyi1sDneOgGOXy9wQIC8hzyVp1e4NRYDBdxcylvywPkkXCHAzTyQ==
+css-blank-pseudo@^3.0.3:
+ version "3.0.3"
+ resolved "https://registry.yarnpkg.com/css-blank-pseudo/-/css-blank-pseudo-3.0.3.tgz#36523b01c12a25d812df343a32c322d2a2324561"
+ integrity sha512-VS90XWtsHGqoM0t4KpH053c4ehxZ2E6HtGI7x68YFV0pTo/QmkV/YFA+NnlvK8guxZVNWGQhVNJGC39Q8XF4OQ==
+ dependencies:
+ postcss-selector-parser "^6.0.9"
+
+css-has-pseudo@^3.0.4:
+ version "3.0.4"
+ resolved "https://registry.yarnpkg.com/css-has-pseudo/-/css-has-pseudo-3.0.4.tgz#57f6be91ca242d5c9020ee3e51bbb5b89fc7af73"
+ integrity sha512-Vse0xpR1K9MNlp2j5w1pgWIJtm1a8qS0JwS9goFYcImjlHEmywP9VUF05aGBXzGpDJF86QXk4L0ypBmwPhGArw==
+ dependencies:
+ postcss-selector-parser "^6.0.9"
+
+css-in-js-utils@^2.0.0:
+ version "2.0.1"
+ resolved "https://registry.yarnpkg.com/css-in-js-utils/-/css-in-js-utils-2.0.1.tgz#3b472b398787291b47cfe3e44fecfdd9e914ba99"
+ integrity sha512-PJF0SpJT+WdbVVt0AOYp9C8GnuruRlL/UFW7932nLWmFLQTaWEzTBQEx7/hn4BuV+WON75iAViSUJLiU3PKbpA==
+ dependencies:
+ hyphenate-style-name "^1.0.2"
+ isobject "^3.0.1"
+
+css-prefers-color-scheme@^6.0.3:
+ version "6.0.3"
+ resolved "https://registry.yarnpkg.com/css-prefers-color-scheme/-/css-prefers-color-scheme-6.0.3.tgz#ca8a22e5992c10a5b9d315155e7caee625903349"
+ integrity sha512-4BqMbZksRkJQx2zAjrokiGMd07RqOa2IxIrrN10lyBe9xhn9DEvjUK79J6jkeiv9D9hQFXKb6g1jwU62jziJZA==
+
+css-tree@^1.1.2:
+ version "1.1.3"
+ resolved "https://registry.yarnpkg.com/css-tree/-/css-tree-1.1.3.tgz#eb4870fb6fd7707327ec95c2ff2ab09b5e8db91d"
+ integrity sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q==
+ dependencies:
+ mdn-data "2.0.14"
+ source-map "^0.6.1"
+
+css.escape@^1.5.1:
+ version "1.5.1"
+ resolved "https://registry.yarnpkg.com/css.escape/-/css.escape-1.5.1.tgz#42e27d4fa04ae32f931a4b4d4191fa9cddee97cb"
+ integrity sha512-YUifsXXuknHlUsmlgyY0PKzgPOr7/FjCePfHNt0jxm83wHZi44VDMQ7/fGNkjY3/jV1MC+1CmZbaHzugyeRtpg==
+
+css@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/css/-/css-3.0.0.tgz#4447a4d58fdd03367c516ca9f64ae365cee4aa5d"
+ integrity sha512-DG9pFfwOrzc+hawpmqX/dHYHJG+Bsdb0klhyi1sDneOgGOXy9wQIC8hzyVp1e4NRYDBdxcylvywPkkXCHAzTyQ==
dependencies:
inherits "^2.0.4"
source-map "^0.6.1"
source-map-resolve "^0.6.0"
+cssdb@^6.6.3:
+ version "6.6.3"
+ resolved "https://registry.yarnpkg.com/cssdb/-/cssdb-6.6.3.tgz#1f331a2fab30c18d9f087301e6122a878bb1e505"
+ integrity sha512-7GDvDSmE+20+WcSMhP17Q1EVWUrLlbxxpMDqG731n8P99JhnQZHR9YvtjPvEHfjFUjvQJvdpKCjlKOX+xe4UVA==
+
cssesc@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/cssesc/-/cssesc-3.0.0.tgz#37741919903b868565e1c09ea747445cd18983ee"
@@ -4577,7 +5182,7 @@ cssstyle@^2.3.0:
dependencies:
cssom "~0.3.6"
-csstype@^3.0.2:
+csstype@^3.0.2, csstype@^3.0.6:
version "3.1.0"
resolved "https://registry.yarnpkg.com/csstype/-/csstype-3.1.0.tgz#4ddcac3718d787cf9df0d1b7d15033925c8f29f2"
integrity sha512-uX1KG+x9h5hIJsaKR9xHUeUraxf8IODOwq9JLNPq6BwB04a/xgpq3rcx47l5BZu5zBPlgD342tdke3Hom/nJRA==
@@ -4665,10 +5270,15 @@ debug@4, debug@^4.0.0, debug@^4.1.0, debug@^4.1.1, debug@^4.2.0, debug@^4.3.1, d
dependencies:
ms "2.1.2"
+debuglog@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/debuglog/-/debuglog-1.0.1.tgz#aa24ffb9ac3df9a2351837cfb2d279360cd78492"
+ integrity sha512-syBZ+rnAK3EgMsH2aYEOLUW7mZSY9Gb+0wUMCFsZvcmiz+HigA0LOcq/HoQqVuGG+EKykunc7QG2bzrponfaSw==
+
decamelize-keys@^1.1.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/decamelize-keys/-/decamelize-keys-1.1.0.tgz#d171a87933252807eb3cb61dc1c1445d078df2d9"
- integrity sha1-0XGoeTMlKAfrPLYdwcFEXQeN8tk=
+ integrity sha512-ocLWuYzRPoS9bfiSdDd3cxvrzovVMZnRDVEzAs+hWIVXGDbHxWMECij2OBuyB/An0FFW/nLuq6Kv1i/YC5Qfzg==
dependencies:
decamelize "^1.1.0"
map-obj "^1.0.0"
@@ -4676,7 +5286,7 @@ decamelize-keys@^1.1.0:
decamelize@^1.1.0, decamelize@^1.2.0:
version "1.2.0"
resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290"
- integrity sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=
+ integrity sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==
decamelize@^5.0.0:
version "5.0.1"
@@ -4691,12 +5301,12 @@ decimal.js@^10.2.1:
decode-uri-component@^0.2.0:
version "0.2.0"
resolved "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.0.tgz#eb3913333458775cb84cd1a1fae062106bb87545"
- integrity sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=
+ integrity sha512-hjf+xovcEn31w/EUYdTXQh/8smFL/dzYjohQGEIgjyNavaJfBY2p5F527Bo1VPATxv0VYTUC2bOcXvqFwk78Og==
decompress-response@^3.3.0:
version "3.3.0"
resolved "https://registry.yarnpkg.com/decompress-response/-/decompress-response-3.3.0.tgz#80a4dd323748384bfa248083622aedec982adff3"
- integrity sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M=
+ integrity sha512-BzRPQuY1ip+qDonAOz42gRm/pg9F768C+npV/4JOsxRC2sq+Rlk+Q4ZCAsOhnIaMrgarILY+RMUIvMmmX1qAEA==
dependencies:
mimic-response "^1.0.0"
@@ -4710,7 +5320,7 @@ decompress-response@^6.0.0:
dedent@^0.7.0:
version "0.7.0"
resolved "https://registry.yarnpkg.com/dedent/-/dedent-0.7.0.tgz#2495ddbaf6eb874abb0e1be9df22d2e5a544326c"
- integrity sha1-JJXduvbrh0q7Dhvp3yLS5aVEMmw=
+ integrity sha512-Q6fKUPqnAHAyhiUgFU7BUzLiv0kd8saH9al7tnu5Q/okj6dnupxyTgFIBjVzJATdfIAm9NAsvXNzjaKa+bxVyA==
deep-eql@^3.0.1:
version "3.0.1"
@@ -4737,7 +5347,7 @@ deepmerge@^4.2.2:
defaults@^1.0.3:
version "1.0.3"
resolved "https://registry.yarnpkg.com/defaults/-/defaults-1.0.3.tgz#c656051e9817d9ff08ed881477f3fe4019f3ef7d"
- integrity sha1-xlYFHpgX2f8I7YgUd/P+QBnz730=
+ integrity sha512-s82itHOnYrN0Ib8r+z7laQz3sdE+4FP3d9Q7VLO7U+KRT+CR0GsWuyHxzdAY82I7cXv0G/twrqomTJLOssO5HA==
dependencies:
clone "^1.0.2"
@@ -4767,14 +5377,14 @@ define-properties@^1.1.3, define-properties@^1.1.4:
define-property@^0.2.5:
version "0.2.5"
resolved "https://registry.yarnpkg.com/define-property/-/define-property-0.2.5.tgz#c35b1ef918ec3c990f9a5bc57be04aacec5c8116"
- integrity sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=
+ integrity sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==
dependencies:
is-descriptor "^0.1.0"
define-property@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/define-property/-/define-property-1.0.0.tgz#769ebaaf3f4a63aad3af9e8d304c9bbe79bfb0e6"
- integrity sha1-dp66rz9KY6rTr56NMEybvnm/sOY=
+ integrity sha512-cZTYKFWspt9jZsMscWo8sc/5lbPC9Q0N5nBLgb+Yd915iL3udB1uFgS3B8YCx66UVHq018DAVFoee7x+gxggeA==
dependencies:
is-descriptor "^1.0.0"
@@ -4789,17 +5399,17 @@ define-property@^2.0.2:
defined@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/defined/-/defined-1.0.0.tgz#c98d9bcef75674188e110969151199e39b1fa693"
- integrity sha1-yY2bzvdWdBiOEQlpFRGZ45sfppM=
+ integrity sha512-Y2caI5+ZwS5c3RiNDJ6u53VhQHv+hHKwhkI1iHvceKUHw9Df6EK2zRLfjejRgMuCuxK7PfSWIMwWecceVvThjQ==
delayed-stream@~1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619"
- integrity sha1-3zrhmayt+31ECqrgsp4icrJOxhk=
+ integrity sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==
delegates@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/delegates/-/delegates-1.0.0.tgz#84c6e159b81904fdca59a0ef44cd870d31250f9a"
- integrity sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=
+ integrity sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ==
denque@^1.1.0:
version "1.5.1"
@@ -4811,6 +5421,11 @@ depd@2.0.0:
resolved "https://registry.yarnpkg.com/depd/-/depd-2.0.0.tgz#b696163cc757560d09cf22cc8fad1571b79e76df"
integrity sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==
+depd@^1.1.2:
+ version "1.1.2"
+ resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9"
+ integrity sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==
+
dependency-graph@^0.11.0:
version "0.11.0"
resolved "https://registry.yarnpkg.com/dependency-graph/-/dependency-graph-0.11.0.tgz#ac0ce7ed68a54da22165a85e97a01d53f5eb2e27"
@@ -4837,13 +5452,21 @@ detect-newline@^3.0.0:
integrity sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==
detective@^5.2.0:
- version "5.2.0"
- resolved "https://registry.yarnpkg.com/detective/-/detective-5.2.0.tgz#feb2a77e85b904ecdea459ad897cc90a99bd2a7b"
- integrity sha512-6SsIx+nUUbuK0EthKjv0zrdnajCCXVYGmbYYiYjFVpzcjwEs/JMDZ8tPRG29J/HhN56t3GJp2cGSWDRjjot8Pg==
+ version "5.2.1"
+ resolved "https://registry.yarnpkg.com/detective/-/detective-5.2.1.tgz#6af01eeda11015acb0e73f933242b70f24f91034"
+ integrity sha512-v9XE1zRnz1wRtgurGu0Bs8uHKFSTdteYZNbIPFVhUZ39L/S79ppMpdmVOZAnoz1jfEFodc48n6MX483Xo3t1yw==
dependencies:
- acorn-node "^1.6.1"
+ acorn-node "^1.8.2"
defined "^1.0.0"
- minimist "^1.1.1"
+ minimist "^1.2.6"
+
+dezalgo@^1.0.0:
+ version "1.0.4"
+ resolved "https://registry.yarnpkg.com/dezalgo/-/dezalgo-1.0.4.tgz#751235260469084c132157dfa857f386d4c33d81"
+ integrity sha512-rXSP0bf+5n0Qonsb+SVVfNfIsimO4HEtmnIpPHY8Q1UCzKlQrDMfdobr8nJOOsRgWCyMRqeSBQzmWUMq7zvVig==
+ dependencies:
+ asap "^2.0.0"
+ wrappy "1"
dicer@0.3.0:
version "0.3.0"
@@ -4872,6 +5495,11 @@ diff@^4.0.1:
resolved "https://registry.yarnpkg.com/diff/-/diff-4.0.2.tgz#60f3aecb89d5fae520c11aa19efc2bb982aade7d"
integrity sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==
+diff@^5.0.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@^2.2.2:
version "2.2.2"
resolved "https://registry.yarnpkg.com/dir-glob/-/dir-glob-2.2.2.tgz#fa09f0694153c8918b18ba0deafae94769fc50c4"
@@ -4955,7 +5583,7 @@ dset@^3.1.0:
duplexer3@^0.1.4:
version "0.1.4"
resolved "https://registry.yarnpkg.com/duplexer3/-/duplexer3-0.1.4.tgz#ee01dd1cac0ed3cbc7fdbea37dc0a8f1ce002ce2"
- integrity sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI=
+ integrity sha512-CEj8FwwNA4cVH2uFCoHUrmojhYh1vmCdOaneKJXwkeY1i9jnlslVo9dx+hQ5Hl9GnH/Bwy/IjxAyOePyPKYnzA==
duplexer@~0.1.1:
version "0.1.2"
@@ -4972,7 +5600,7 @@ ecdsa-sig-formatter@1.0.11:
ee-first@1.1.1:
version "1.1.1"
resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d"
- integrity sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=
+ integrity sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==
ejs@^3.1.6:
version "3.1.8"
@@ -4989,7 +5617,7 @@ electron-to-chromium@^1.4.118:
elegant-spinner@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/elegant-spinner/-/elegant-spinner-1.0.1.tgz#db043521c95d7e303fd8f345bedc3349cfb0729e"
- integrity sha1-2wQ1IcldfjA/2PNFvtwzSc+wcp4=
+ integrity sha512-B+ZM+RXvRqQaAmkMlO/oSe5nMUOaUnyfGYCEHoR8wrXsZR2mA0XVibsxV1bvTwxdRWah1PkQqso2EzhILGHtEQ==
emittery@^0.7.1:
version "0.7.2"
@@ -5019,7 +5647,14 @@ emojis-list@^3.0.0:
encodeurl@~1.0.2:
version "1.0.2"
resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59"
- integrity sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=
+ integrity sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==
+
+encoding@^0.1.12, 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.1.0, end-of-stream@^1.4.1:
version "1.4.4"
@@ -5035,7 +5670,7 @@ enquirer@^2.3.0, enquirer@^2.3.6:
dependencies:
ansi-colors "^4.1.1"
-env-paths@^2.2.1:
+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==
@@ -5045,6 +5680,11 @@ envfile@^6.17.0:
resolved "https://registry.yarnpkg.com/envfile/-/envfile-6.17.0.tgz#f3063a1811ae4ec2cbc33e8f099add3beae960f6"
integrity sha512-RnhtVw3auDZeeh5VtaNrbE7s6Kq8BoRtGIzcbMpMsJ+wIpRgs5jiDG4gQjW+vfws5QPlizE57/fUU0Tj6Nrs8A==
+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"
@@ -5052,12 +5692,12 @@ error-ex@^1.3.1:
dependencies:
is-arrayish "^0.2.1"
-error-stack-parser@^2.0.2, error-stack-parser@^2.0.3:
- version "2.0.7"
- resolved "https://registry.yarnpkg.com/error-stack-parser/-/error-stack-parser-2.0.7.tgz#b0c6e2ce27d0495cf78ad98715e0cad1219abb57"
- integrity sha512-chLOW0ZGRf4s8raLrDxa5sdkvPec5YdvwbFnqJme4rk0rFajP8mPtrDL1+I+CwrQDCjswDA5sREX7jYQDQs9vA==
+error-stack-parser@^2.0.2, error-stack-parser@^2.0.3, error-stack-parser@^2.0.6:
+ version "2.1.4"
+ resolved "https://registry.yarnpkg.com/error-stack-parser/-/error-stack-parser-2.1.4.tgz#229cb01cdbfa84440bfa91876285b94680188286"
+ integrity sha512-Sk5V6wVazPhq5MhpO+AUxJn5x7XSXGl1R93Vn7i+zS15KDVxQijejNCrz8340/2bgLBjR9GtEG8ZVKONDjcqGQ==
dependencies:
- stackframe "^1.1.1"
+ stackframe "^1.3.4"
es-abstract@^1.19.0, es-abstract@^1.19.1, es-abstract@^1.19.2, es-abstract@^1.19.5:
version "1.20.1"
@@ -5248,7 +5888,7 @@ escape-goat@^2.0.0:
escape-html@~1.0.3:
version "1.0.3"
resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988"
- integrity sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=
+ integrity sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==
escape-string-regexp@4.0.0, escape-string-regexp@^4.0.0:
version "4.0.0"
@@ -5263,7 +5903,7 @@ escape-string-regexp@5.0.0:
escape-string-regexp@^1.0.2, 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"
- integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=
+ integrity sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==
escape-string-regexp@^2.0.0:
version "2.0.0"
@@ -5517,12 +6157,12 @@ esutils@^2.0.2:
etag@~1.8.1:
version "1.8.1"
resolved "https://registry.yarnpkg.com/etag/-/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887"
- integrity sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=
+ integrity sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==
event-stream@~3.1.5:
version "3.1.7"
resolved "https://registry.yarnpkg.com/event-stream/-/event-stream-3.1.7.tgz#b4c540012d0fe1498420f3d8946008db6393c37a"
- integrity sha1-tMVAAS0P4UmEIPPYlGAI22OTw3o=
+ integrity sha512-ddACn1VEffD+nvbofs8gs/0qJZC9gtEGLG+WykE//rinSpYLSaTsnN96eVQV+gHdUhV/nVtxUNKC3OjrApuEMw==
dependencies:
duplexer "~0.1.1"
from "~0"
@@ -5550,7 +6190,7 @@ exec-sh@^0.3.2:
execa@^0.8.0:
version "0.8.0"
resolved "https://registry.yarnpkg.com/execa/-/execa-0.8.0.tgz#d8d76bbc1b55217ed190fd6dd49d3c774ecfc8da"
- integrity sha1-2NdrvBtVIX7RkP1t1J08d07PyNo=
+ integrity sha512-zDWS+Rb1E8BlqqhALSt9kUhss8Qq4nN3iof3gsOdyINksElaPyNBtKUMTR62qhvgVWR0CqCX7sdnKe4MnUbFEA==
dependencies:
cross-spawn "^5.0.1"
get-stream "^3.0.0"
@@ -5606,12 +6246,12 @@ execa@^5.0.0:
exit@^0.1.2:
version "0.1.2"
resolved "https://registry.yarnpkg.com/exit/-/exit-0.1.2.tgz#0632638f8d877cc82107d30a0fff1a17cba1cd0c"
- integrity sha1-BjJjj42HfMghB9MKD/8aF8uhzQw=
+ integrity sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==
expand-brackets@^2.1.4:
version "2.1.4"
resolved "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-2.1.4.tgz#b77735e315ce30f6b6eff0f83b04151a22449622"
- integrity sha1-t3c14xXOMPa27/D4OwQVGiJEliI=
+ integrity sha512-w/ozOKR9Obk3qoWeY/WDi6MFta9AoMR+zud60mdnbniMcBxRuFJyDt2LdX/14A1UABeqk+Uk+LDfUpvoGKppZA==
dependencies:
debug "^2.3.3"
define-property "^0.2.5"
@@ -5651,14 +6291,14 @@ expect@^27.5.1:
extend-shallow@^2.0.1:
version "2.0.1"
resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-2.0.1.tgz#51af7d614ad9a9f610ea1bafbb989d6b1c56890f"
- integrity sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=
+ integrity sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==
dependencies:
is-extendable "^0.1.0"
extend-shallow@^3.0.0, extend-shallow@^3.0.2:
version "3.0.2"
resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-3.0.2.tgz#26a71aaf073b39fb2127172746131c2704028db8"
- integrity sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=
+ integrity sha512-BwY5b5Ql4+qZoefgMj2NUmx+tehVTH/Kf4k1ZEtOHNFcm2wSxMRo992l6X3TIgni2eZVTZ85xMOjF31fwZAj6Q==
dependencies:
assign-symbols "^1.0.0"
is-extendable "^1.0.1"
@@ -5763,7 +6403,22 @@ fast-json-stable-stringify@2.x, fast-json-stable-stringify@^2.0.0:
fast-levenshtein@^2.0.6, fast-levenshtein@~2.0.6:
version "2.0.6"
resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917"
- integrity sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=
+ integrity sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==
+
+fast-shallow-equal@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/fast-shallow-equal/-/fast-shallow-equal-1.0.0.tgz#d4dcaf6472440dcefa6f88b98e3251e27f25628b"
+ integrity sha512-HPtaa38cPgWvaCFmRNhlc6NG7pv6NUHqjPgVAkWGoB9mQMwYB27/K0CvOM5Czy+qpT3e8XJ6Q4aPAnzpNpzNaw==
+
+fastest-levenshtein@^1.0.12:
+ version "1.0.12"
+ resolved "https://registry.yarnpkg.com/fastest-levenshtein/-/fastest-levenshtein-1.0.12.tgz#9990f7d3a88cc5a9ffd1f1745745251700d497e2"
+ integrity sha512-On2N+BpYJ15xIC974QNVuYGMOlEVt4s0EOI3wwMqOmK1fdDY+FN/zltPV8vosq4ad4c/gJ1KHScUn/6AWIgiow==
+
+fastest-stable-stringify@^2.0.2:
+ version "2.0.2"
+ resolved "https://registry.yarnpkg.com/fastest-stable-stringify/-/fastest-stable-stringify-2.0.2.tgz#3757a6774f6ec8de40c4e86ec28ea02417214c76"
+ integrity sha512-bijHueCGd0LqqNK9b5oCMHc0MluJAx0cwqASgbWMvkO01lCYgIhacVRLcaDz3QnyYIRNJRDwMb41VuT6pHJ91Q==
fastq@^1.6.0:
version "1.13.0"
@@ -5807,7 +6462,7 @@ fbjs@^3.0.0:
fd-slicer@~1.1.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/fd-slicer/-/fd-slicer-1.1.0.tgz#25c7c89cb1f9077f8891bbe61d8f390eae256f1e"
- integrity sha1-JcfInLH5B3+IkbvmHY85Dq4lbx4=
+ integrity sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==
dependencies:
pend "~1.2.0"
@@ -5819,7 +6474,7 @@ figgy-pudding@^3.5.1:
figures@^1.7.0:
version "1.7.0"
resolved "https://registry.yarnpkg.com/figures/-/figures-1.7.0.tgz#cbe1e3affcf1cd44b80cadfed28dc793a9701d2e"
- integrity sha1-y+Hjr/zxzUS4DK3+0o3Hk6lwHS4=
+ integrity sha512-UxKlfCRuCBxSXU4C6t9scbDyWZ4VlaFFdojKtzJuSkuOBQ5CNFum+zZXFwHjo+CxBC1t6zlYPgHIgFjL8ggoEQ==
dependencies:
escape-string-regexp "^1.0.5"
object-assign "^4.1.0"
@@ -5827,7 +6482,7 @@ figures@^1.7.0:
figures@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/figures/-/figures-2.0.0.tgz#3ab1a2d2a62c8bfb431a0c94cb797a2fce27c962"
- integrity sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI=
+ integrity sha512-Oa2M9atig69ZkfwiApY8F2Yy+tzMbazyvqv21R0NsSC8floSOC09BbT1ITWAdoMGQvJ/aZnR1KMwdx9tvHnTNA==
dependencies:
escape-string-regexp "^1.0.5"
@@ -5855,7 +6510,7 @@ filelist@^1.0.1:
fill-range@^4.0.0:
version "4.0.0"
resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-4.0.0.tgz#d544811d428f98eb06a63dc402d2403c328c38f7"
- integrity sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=
+ integrity sha512-VcpLTWqWDiTerugjj8e3+esbg+skS3M9e54UuR3iCeIDMXCLTsAH8hTSzDQU/X6/6t3eYkOKoZSef2PlU6U1XQ==
dependencies:
extend-shallow "^2.0.1"
is-number "^3.0.0"
@@ -5938,7 +6593,7 @@ flatted@^3.1.0:
for-in@^1.0.2:
version "1.0.2"
resolved "https://registry.yarnpkg.com/for-in/-/for-in-1.0.2.tgz#81068d295a8142ec0ac726c6e2200c30fb6d5e80"
- integrity sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=
+ integrity sha512-7EwmXrOjyL+ChxMhmG5lnW9MPt1aIeZEwKhQzoBUdTV0N3zuwWDZYVJatDvZ2OyzPUvdIAZDsCetk3coyMfcnQ==
foreground-child@^2.0.0:
version "2.0.0"
@@ -5974,7 +6629,7 @@ form-data@^3.0.0:
format@^0.2.0:
version "0.2.2"
resolved "https://registry.yarnpkg.com/format/-/format-0.2.2.tgz#d6170107e9efdc4ed30c9dc39016df942b5cb58b"
- integrity sha1-1hcBB+nv3E7TDJ3DkBbflCtctYs=
+ integrity sha512-wzsgA6WOq+09wrU1tsJ09udeR/YZRaeArL9e1wPbFg3GG2yDnC2ldKpxs4xunpFF9DgqCqOIra3bc1HWrJ37Ww==
formdata-node@^2.4.0, formdata-node@^2.5.0:
version "2.5.0"
@@ -5999,19 +6654,19 @@ fraction.js@^4.2.0:
fragment-cache@^0.2.1:
version "0.2.1"
resolved "https://registry.yarnpkg.com/fragment-cache/-/fragment-cache-0.2.1.tgz#4290fad27f13e89be7f33799c6bc5a0abfff0d19"
- integrity sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=
+ integrity sha512-GMBAbW9antB8iZRHLoGw0b3HANt57diZYFO/HL1JGIC1MjKrdmhxvrJbupnVvpys0zsz7yBApXdQyfepKly2kA==
dependencies:
map-cache "^0.2.2"
fresh@0.5.2:
version "0.5.2"
resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7"
- integrity sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=
+ integrity sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==
from@~0:
version "0.1.7"
resolved "https://registry.yarnpkg.com/from/-/from-0.1.7.tgz#83c60afc58b9c56997007ed1a768b3ab303a44fe"
- integrity sha1-g8YK/Fi5xWmXAH7Rp2izqzA6RP4=
+ integrity sha512-twe20eF1OxVxp/ML/kq2p1uc6KvFK/+vs8WjEbeKmV2He22MKm7YF2ANIt+EOqhJ5L3K/SuuPhk0hWQDjOM23g==
fs-constants@^1.0.0:
version "1.0.0"
@@ -6055,10 +6710,17 @@ fs-extra@^9.0, fs-extra@^9.1.0:
jsonfile "^6.0.1"
universalify "^2.0.0"
+fs-minipass@^2.0.0, fs-minipass@^2.1.0:
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-2.1.0.tgz#7f5036fdbf12c63c169190cbe4199c852271f9fb"
+ integrity sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==
+ dependencies:
+ minipass "^3.0.0"
+
fs.realpath@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f"
- integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8=
+ integrity sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==
fsevents@^2.1.2, fsevents@^2.3.2, fsevents@~2.3.2:
version "2.3.2"
@@ -6083,17 +6745,31 @@ function.prototype.name@^1.1.5:
functional-red-black-tree@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz#1b0ab3bd553b2a0d6399d29c0e3ea0b252078327"
- integrity sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=
+ integrity sha512-dsKNQNdj6xA3T+QlADDA7mOSlX0qiMINjn0cgr+eGHGsbSHzTabcIogz2+p/iqP1Xs6EP/sS2SbqH+brGTbq0g==
functions-have-names@^1.2.2:
version "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@^4.0.3:
+ version "4.0.4"
+ resolved "https://registry.yarnpkg.com/gauge/-/gauge-4.0.4.tgz#52ff0652f2bbf607a989793d53b751bef2328dce"
+ integrity sha512-f9m+BEN5jkg6a0fZjleidjN51VE1X+mPFQ2DJ0uv1V39oCLCbsGe6yjbBnp7eK7z/+GAon99a3nHuqbuuthyPg==
+ 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 "^3.0.7"
+ string-width "^4.2.3"
+ strip-ansi "^6.0.1"
+ wide-align "^1.1.5"
+
gauge@~2.7.3:
version "2.7.4"
resolved "https://registry.yarnpkg.com/gauge/-/gauge-2.7.4.tgz#2c03405c7538c39d7eb37b317022e325fb018bf7"
- integrity sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=
+ integrity sha512-14x4kjc6lkD3ltw589k0NrPD6cCNTD6CWoVUNpB85+DrtONoZn+Rug6xZU5RvSC4+TZPxA5AnBibQYAvZn41Hg==
dependencies:
aproba "^1.0.3"
console-control-strings "^1.0.0"
@@ -6117,7 +6793,7 @@ get-caller-file@^2.0.1, get-caller-file@^2.0.5:
get-func-name@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/get-func-name/-/get-func-name-2.0.0.tgz#ead774abee72e20409433a066366023dd6887a41"
- integrity sha1-6td0q+5y4gQJQzoGY2YCPdaIekE=
+ integrity sha512-Hm0ixYtaSZ/V7C8FJrtZIuBBI+iSgL+1Aq82zSu8VQNB4S3Gk8e7Qs3VwBDJAhmRZcFqkl3tQu36g/Foh5I5ig==
get-intrinsic@^1.0.2, get-intrinsic@^1.1.0, get-intrinsic@^1.1.1:
version "1.1.1"
@@ -6141,7 +6817,7 @@ get-package-type@^0.1.0:
get-port@^3.1.0:
version "3.2.0"
resolved "https://registry.yarnpkg.com/get-port/-/get-port-3.2.0.tgz#dd7ce7de187c06c8bf353796ac71e099f0980ebc"
- integrity sha1-3Xzn3hh8Bsi/NTeWrHHgmfCYDrw=
+ integrity sha512-x5UJKlgeUiNT8nyo/AcnwLnZuZNcSjSw0kogRB+Whd1fjjFq4B1hySFxSFWWSn4mIBzg3sRNUDFYc4g5gjPoLg==
get-source@^2.0.12:
version "2.0.12"
@@ -6154,7 +6830,7 @@ get-source@^2.0.12:
get-stream@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-3.0.0.tgz#8e943d1358dc37555054ecbe2edb05aa174ede14"
- integrity sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=
+ integrity sha512-GlhdIUuVakc8SJ6kK0zAFbiGzRFzNnY4jUuEbV9UROo4Y+0Ny4fjvcZFVTeDA4odpFyOQzaw6hXukJSq/f28sQ==
get-stream@^4.0.0, get-stream@^4.1.0:
version "4.1.0"
@@ -6186,7 +6862,7 @@ get-symbol-description@^1.0.0:
get-value@^2.0.3, get-value@^2.0.6:
version "2.0.6"
resolved "https://registry.yarnpkg.com/get-value/-/get-value-2.0.6.tgz#dc15ca1c672387ca76bd37ac0a395ba2042a2c28"
- integrity sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=
+ integrity sha512-Ln0UQDlxH1BapMu3GPtf7CuYNwRZf2gwCuPqbyG6pB8WfmFpzqcy4xtAaAMUhnNqjMKTiCPZG2oMT3YSx8U2NA==
git-diff-tree@^1.0.0:
version "1.1.0"
@@ -6209,12 +6885,12 @@ git-spawned-stream@1.0.1:
github-from-package@0.0.0:
version "0.0.0"
resolved "https://registry.yarnpkg.com/github-from-package/-/github-from-package-0.0.0.tgz#97fb5d96bfde8973313f20e8288ef9a167fa64ce"
- integrity sha1-l/tdlr/eiXMxPyDoKI75oWf6ZM4=
+ integrity sha512-SyHy3T1v2NUXn29OsWdxmK6RwHD+vkj3v8en8AOBZ1wBQ/hCAQ5bAQTD02kW4W9tUp/3Qh6J8r9EvntiyCmOOw==
glob-parent@^3.1.0:
version "3.1.0"
resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-3.1.0.tgz#9e6af6299d8d3bd2bd40430832bd113df906c5ae"
- integrity sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=
+ integrity sha512-E8Ak/2+dZY6fnzlR7+ueWvhsH1SjHr4jjss4YS/h4py44jY9MhK/VFdaZJAWDz6BbL21KeteKxFSFpq8OS5gVA==
dependencies:
is-glob "^3.1.0"
path-dirname "^1.0.0"
@@ -6236,7 +6912,7 @@ glob-parent@^6.0.1, glob-parent@^6.0.2:
glob-to-regexp@^0.3.0:
version "0.3.0"
resolved "https://registry.yarnpkg.com/glob-to-regexp/-/glob-to-regexp-0.3.0.tgz#8c5a1494d2066c570cc3bfe4496175acc4d502ab"
- integrity sha1-jFoUlNIGbFcMw7/kSWF1rMTVAqs=
+ integrity sha512-Iozmtbqv0noj0uDDqoL0zNq0VBEfK2YFoMAZoxJe4cwphvLR+JskfF30QhXHOR4m3KrE6NLRYw+U9MRXvifyig==
glob@^7.0.3, glob@^7.1.1, glob@^7.1.2, glob@^7.1.3, glob@^7.1.4, glob@^7.1.6, glob@^7.2.0:
version "7.2.3"
@@ -6250,6 +6926,17 @@ glob@^7.0.3, glob@^7.1.1, glob@^7.1.2, glob@^7.1.3, glob@^7.1.4, glob@^7.1.6, gl
once "^1.3.0"
path-is-absolute "^1.0.0"
+glob@^8.0.1:
+ version "8.0.3"
+ resolved "https://registry.yarnpkg.com/glob/-/glob-8.0.3.tgz#415c6eb2deed9e502c68fa44a272e6da6eeca42e"
+ integrity sha512-ull455NHSHI/Y1FqGaaYFaLGkNMMJbavMrEGFXG/PGrg6y7sutWHUHrz6gy6WEBH6akM1M414dWKCNs+IhKdiQ==
+ dependencies:
+ fs.realpath "^1.0.0"
+ inflight "^1.0.4"
+ inherits "2"
+ minimatch "^5.0.1"
+ once "^1.3.0"
+
global-dirs@^2.0.1:
version "2.1.0"
resolved "https://registry.yarnpkg.com/global-dirs/-/global-dirs-2.1.0.tgz#e9046a49c806ff04d6c1825e196c8f0091e8df4d"
@@ -6340,7 +7027,7 @@ got@^9.6.0:
to-readable-stream "^1.0.0"
url-parse-lax "^3.0.0"
-graceful-fs@^4.1.15, graceful-fs@^4.1.2, graceful-fs@^4.1.5, graceful-fs@^4.1.6, graceful-fs@^4.2.0, graceful-fs@^4.2.4, graceful-fs@^4.2.9:
+graceful-fs@^4.1.15, graceful-fs@^4.1.2, graceful-fs@^4.1.5, graceful-fs@^4.1.6, graceful-fs@^4.2.0, graceful-fs@^4.2.10, graceful-fs@^4.2.4, graceful-fs@^4.2.6, graceful-fs@^4.2.9:
version "4.2.10"
resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.10.tgz#147d3a006da4ca3ce14728c7aefc287c367d7a6c"
integrity sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==
@@ -6401,7 +7088,7 @@ graphql@*, graphql@^16.3.0:
growly@^1.3.0:
version "1.3.0"
resolved "https://registry.yarnpkg.com/growly/-/growly-1.3.0.tgz#f10748cbe76af964b7c96c93c6bcc28af120c081"
- integrity sha1-8QdIy+dq+WS3yWyTxrzCivEgwIE=
+ integrity sha512-+xGQY0YyAWCnqy7Cd++hc2JqMYzlm0dG30Jd0beaA64sROr8C4nt8Yc9V5Ro3avlSUDTN0ulqP/VBKi1/lLygw==
happy-dom@^2.55.0:
version "2.55.0"
@@ -6424,7 +7111,7 @@ hard-rejection@^2.1.0:
has-ansi@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/has-ansi/-/has-ansi-2.0.0.tgz#34f5049ce1ecdf2b0649af3ef24e45ed35416d91"
- integrity sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=
+ integrity sha512-C8vBJ8DwUCx19vhm7urhTuUsr4/IyP6l4VzNQDv+ryHQObW3TTTp9yB68WpYgRe2bbaGuZ/se74IqFeVnMnLZg==
dependencies:
ansi-regex "^2.0.0"
@@ -6436,12 +7123,17 @@ has-bigints@^1.0.1, has-bigints@^1.0.2:
has-color@~0.1.0:
version "0.1.7"
resolved "https://registry.yarnpkg.com/has-color/-/has-color-0.1.7.tgz#67144a5260c34fc3cca677d041daf52fe7b78b2f"
- integrity sha1-ZxRKUmDDT8PMpnfQQdr1L+e3iy8=
+ integrity sha512-kaNz5OTAYYmt646Hkqw50/qyxP2vFnTVu5AQ1Zmk22Kk5+4Qx6BpO8+u7IKsML5fOsFk0ZT0AcCJNYwcvaLBvw==
+
+has-flag@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-2.0.0.tgz#e8207af1cc7b30d446cc70b734b5e8be18f88d51"
+ integrity sha512-P+1n3MnwjR/Epg9BBo1KT8qbye2g2Ou4sFumihwt6I4tsUX7jnLcX4BTOSKg/B1ZrIYMN9FcEnG4x5a7NB8Eng==
has-flag@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd"
- integrity sha1-tdRU3CGZriJWmfNGfloH87lVuv0=
+ integrity sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==
has-flag@^4.0.0:
version "4.0.0"
@@ -6451,7 +7143,7 @@ has-flag@^4.0.0:
has-glob@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/has-glob/-/has-glob-1.0.0.tgz#9aaa9eedbffb1ba3990a7b0010fb678ee0081207"
- integrity sha1-mqqe7b/7G6OZCnsAEPtnjuAIEgc=
+ integrity sha512-D+8A457fBShSEI3tFCj65PAbT++5sKiFtdCdOam0gnfBgw9D277OERk+HM9qYJXmdVLZ/znez10SqHN0BBQ50g==
dependencies:
is-glob "^3.0.0"
@@ -6474,15 +7166,15 @@ has-tostringtag@^1.0.0:
dependencies:
has-symbols "^1.0.2"
-has-unicode@^2.0.0:
+has-unicode@^2.0.0, has-unicode@^2.0.1:
version "2.0.1"
resolved "https://registry.yarnpkg.com/has-unicode/-/has-unicode-2.0.1.tgz#e0e6fe6a28cf51138855e086d1691e771de2a8b9"
- integrity sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=
+ integrity sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ==
has-value@^0.3.1:
version "0.3.1"
resolved "https://registry.yarnpkg.com/has-value/-/has-value-0.3.1.tgz#7b1f58bada62ca827ec0a2078025654845995e1f"
- integrity sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=
+ integrity sha512-gpG936j8/MzaeID5Yif+577c17TxaDmhuyVgSwtnL/q8UUTySg8Mecb+8Cf1otgLoD7DDH75axp86ER7LFsf3Q==
dependencies:
get-value "^2.0.3"
has-values "^0.1.4"
@@ -6491,7 +7183,7 @@ has-value@^0.3.1:
has-value@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/has-value/-/has-value-1.0.0.tgz#18b281da585b1c5c51def24c930ed29a0be6b177"
- integrity sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=
+ integrity sha512-IBXk4GTsLYdQ7Rvt+GRBrFSVEkmuOUy4re0Xjd9kJSUQpnTrWR4/y9RpfexN9vkAPMFuQoeWKwqzPozRTlasGw==
dependencies:
get-value "^2.0.6"
has-values "^1.0.0"
@@ -6500,12 +7192,12 @@ has-value@^1.0.0:
has-values@^0.1.4:
version "0.1.4"
resolved "https://registry.yarnpkg.com/has-values/-/has-values-0.1.4.tgz#6d61de95d91dfca9b9a02089ad384bff8f62b771"
- integrity sha1-bWHeldkd/Km5oCCJrThL/49it3E=
+ integrity sha512-J8S0cEdWuQbqD9//tlZxiMuMNmxB8PlEwvYwuxsTmR1G5RXUePEX/SJn7aD0GMLieuZYSwNH0cQuJGwnYunXRQ==
has-values@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/has-values/-/has-values-1.0.0.tgz#95b0b63fec2146619a6fe57fe75628d5a39efe4f"
- integrity sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=
+ integrity sha512-ODYZC64uqzmtfGMEAX/FvZiRyWLpAC3vYnNunURUnkGVTS+mI0smVsWaPydRBsE3g+ok7h960jChO8mFcWlHaQ==
dependencies:
is-number "^3.0.0"
kind-of "^4.0.0"
@@ -6646,6 +7338,13 @@ hosted-git-info@^4.0.1:
dependencies:
lru-cache "^6.0.0"
+hosted-git-info@^5.0.0:
+ version "5.0.0"
+ resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-5.0.0.tgz#df7a06678b4ebd722139786303db80fdf302ea56"
+ integrity sha512-rRnjWu0Bxj+nIfUOkz0695C0H6tRrN5iYIzYejb0tDEefe2AekHu/U5Kn9pEie5vsJqpNQU02az7TGSH3qpz4Q==
+ dependencies:
+ lru-cache "^7.5.1"
+
hpagent@^0.1.2:
version "0.1.2"
resolved "https://registry.yarnpkg.com/hpagent/-/hpagent-0.1.2.tgz#cab39c66d4df2d4377dbd212295d878deb9bdaa9"
@@ -6762,11 +7461,23 @@ 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==
+humanize-ms@^1.2.1:
+ version "1.2.1"
+ resolved "https://registry.yarnpkg.com/humanize-ms/-/humanize-ms-1.2.1.tgz#c46e3159a293f6b896da29316d8b6fe8bb79bbed"
+ integrity sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ==
+ dependencies:
+ ms "^2.0.0"
+
hyperlinker@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/hyperlinker/-/hyperlinker-1.0.0.tgz#23dc9e38a206b208ee49bc2d6c8ef47027df0c0e"
integrity sha512-Ty8UblRWFEcfSuIaajM34LdPXIhbs1ajEX/BBPv24J+enSVaEVY63xQ6lTO9VRYS5LAoghIG0IDJ+p+IPzKUQQ==
+hyphenate-style-name@^1.0.2:
+ version "1.0.4"
+ resolved "https://registry.yarnpkg.com/hyphenate-style-name/-/hyphenate-style-name-1.0.4.tgz#691879af8e220aea5750e8827db4ef62a54e361d"
+ integrity sha512-ygGZLjmXfPHj+ZWh6LwbC37l43MhfztxetbFCoYTM2VjkIUpeHgSNn7QIyVFj7YQ1Wl9Cbw5sholVJPzWvC2MQ==
+
iconv-lite@0.4.24, iconv-lite@^0.4.24:
version "0.4.24"
resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b"
@@ -6774,7 +7485,7 @@ iconv-lite@0.4.24, iconv-lite@^0.4.24:
dependencies:
safer-buffer ">= 2.1.2 < 3"
-iconv-lite@0.6.3:
+iconv-lite@0.6.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==
@@ -6786,6 +7497,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@^5.0.1:
+ version "5.0.1"
+ resolved "https://registry.yarnpkg.com/ignore-walk/-/ignore-walk-5.0.1.tgz#5f199e23e1288f518d90358d461387788a154776"
+ integrity sha512-yemi4pMf51WKT7khInJqAvsIGzoqYXblnsz0ql8tM+yi1EKYTY1evX4NAbJrLL/Aanr2HyZeluqU+Oi7MGHokw==
+ dependencies:
+ minimatch "^5.0.1"
+
ignore@^4.0.3:
version "4.0.6"
resolved "https://registry.yarnpkg.com/ignore/-/ignore-4.0.6.tgz#750e3db5862087b4737ebac8207ffd1ef27b25fc"
@@ -6817,7 +7535,7 @@ import-from@4.0.0:
import-lazy@^2.1.0:
version "2.1.0"
resolved "https://registry.yarnpkg.com/import-lazy/-/import-lazy-2.1.0.tgz#05698e3d45c88e8d7e9d92cb0584e77f096f3e43"
- integrity sha1-BWmOPUXIjo1+nZLLBYTnfwlvPkM=
+ integrity sha512-m7ZEHgtw69qOGw+jwxXkHlrlIPdTGkyh66zXZ1ajZbxkDBNjSY/LGbmjc7h0s2ELsUDTAhFr55TrPSSqJGPG0A==
import-local@^3.0.2:
version "3.1.0"
@@ -6830,12 +7548,12 @@ import-local@^3.0.2:
imurmurhash@^0.1.4:
version "0.1.4"
resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea"
- integrity sha1-khi5srkoojixPcT7a21XbyMUU+o=
+ integrity sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==
indent-string@^3.0.0:
version "3.2.0"
resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-3.2.0.tgz#4a5fd6d27cc332f37e5419a504dbb837105c9289"
- integrity sha1-Sl/W0nzDMvN+VBmlBNu4NxBckok=
+ integrity sha512-BYqTHXTGUIvg7t1r4sJNKcbDZkL92nkXA8YtRpbjFHRHGDL/NtUeiBJMeE60kIFN/Mg8ESaWQvftaYMGJzQZCQ==
indent-string@^4.0.0:
version "4.0.0"
@@ -6847,10 +7565,15 @@ indent-string@^5.0.0:
resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-5.0.0.tgz#4fd2980fccaf8622d14c64d694f4cf33c81951a5"
integrity sha512-m6FAo/spmsW2Ab2fU35JTYwtOKa2yAwXSwgjSv1TJzh4Mh7mC3lzAOVLBprb72XsTrgkEIsl7YrFNAiDiRhIGg==
+infer-owner@^1.0.4:
+ version "1.0.4"
+ resolved "https://registry.yarnpkg.com/infer-owner/-/infer-owner-1.0.4.tgz#c4cefcaa8e51051c2a40ba2ce8a3d27295af9467"
+ integrity sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A==
+
inflight@^1.0.4:
version "1.0.6"
resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9"
- integrity sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=
+ integrity sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==
dependencies:
once "^1.3.0"
wrappy "1"
@@ -6870,6 +7593,31 @@ ini@^1.3.5, ini@~1.3.0:
resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.8.tgz#a29da425b48806f34767a4efce397269af28432c"
integrity sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==
+ini@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/ini/-/ini-3.0.0.tgz#2f6de95006923aa75feed8894f5686165adc08f1"
+ integrity sha512-TxYQaeNW/N8ymDvwAxPyRbhMBtnEwuvaTYpOQkFx1nSeusgezHniEc/l35Vo4iCq/mMiTJbpD7oYxN98hFlfmw==
+
+init-package-json@^3.0.2:
+ version "3.0.2"
+ resolved "https://registry.yarnpkg.com/init-package-json/-/init-package-json-3.0.2.tgz#f5bc9bac93f2bdc005778bc2271be642fecfcd69"
+ integrity sha512-YhlQPEjNFqlGdzrBfDNRLhvoSgX7iQRgSxgsNknRQ9ITXFT7UMfVMWhBTOh2Y+25lRnGrv5Xz8yZwQ3ACR6T3A==
+ dependencies:
+ npm-package-arg "^9.0.1"
+ promzard "^0.3.0"
+ read "^1.0.7"
+ read-package-json "^5.0.0"
+ semver "^7.3.5"
+ validate-npm-package-license "^3.0.4"
+ validate-npm-package-name "^4.0.0"
+
+inline-style-prefixer@^6.0.0:
+ version "6.0.1"
+ resolved "https://registry.yarnpkg.com/inline-style-prefixer/-/inline-style-prefixer-6.0.1.tgz#c5c0e43ba8831707afc5f5bbfd97edf45c1fa7ae"
+ integrity sha512-AsqazZ8KcRzJ9YPN1wMH2aNM7lkWQ8tSPrW5uDk1ziYwiAPWSZnUsC7lfZq+BDqLqz0B4Pho5wscWcJzVvRzDQ==
+ dependencies:
+ css-in-js-utils "^2.0.0"
+
inquirer@^8.0.0, inquirer@^8.2.1:
version "8.2.4"
resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-8.2.4.tgz#ddbfe86ca2f67649a67daa6f1051c128f684f0b4"
@@ -6891,6 +7639,11 @@ inquirer@^8.0.0, inquirer@^8.2.1:
through "^2.3.6"
wrap-ansi "^7.0.0"
+install@^0.13.0:
+ version "0.13.0"
+ resolved "https://registry.yarnpkg.com/install/-/install-0.13.0.tgz#6af6e9da9dd0987de2ab420f78e60d9c17260776"
+ integrity sha512-zDml/jzr2PKU9I8J/xyZBQn8rPCAY//UOYNmR01XwNwyfhEWObo2SWfSl1+0tm1u6PhxLwDnfsT/6jB7OUxqFA==
+
internal-slot@^1.0.3:
version "1.0.3"
resolved "https://registry.yarnpkg.com/internal-slot/-/internal-slot-1.0.3.tgz#7347e307deeea2faac2ac6205d4bc7d34967f59c"
@@ -6924,6 +7677,16 @@ ioredis@^4.27.6:
redis-parser "^3.0.0"
standard-as-callback "^2.1.0"
+ip-regex@^4.1.0:
+ version "4.3.0"
+ resolved "https://registry.yarnpkg.com/ip-regex/-/ip-regex-4.3.0.tgz#687275ab0f57fa76978ff8f4dddc8a23d5990db5"
+ integrity sha512-B9ZWJxHHOHUhUjCPrMpLD4xEq35bUTClHM1S6CBU5ixQnkZmwipwgc96vAd7AAGM9TGHvJR+Uss+/Ak6UphK+Q==
+
+ip@^1.1.5:
+ version "1.1.8"
+ resolved "https://registry.yarnpkg.com/ip/-/ip-1.1.8.tgz#ae05948f6b075435ed3307acce04629da8cdbf48"
+ integrity sha512-PuExPYUiu6qMBQb4l06ecm6T6ujzhmh+MeJcW9wa89PoAz5pvd4zPgN5WJV104mb6S2T1AwNIAaB70JNrLQWhg==
+
is-absolute@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/is-absolute/-/is-absolute-1.0.0.tgz#395e1ae84b11f26ad1795e73c17378e48a301576"
@@ -6935,7 +7698,7 @@ is-absolute@^1.0.0:
is-accessor-descriptor@^0.1.6:
version "0.1.6"
resolved "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz#a9e12cb3ae8d876727eeef3843f8a0897b5c98d6"
- integrity sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=
+ integrity sha512-e1BM1qnDbMRG3ll2U9dSK0UMHuWOs3pY3AtcFsmvwPtKL3MML/Q86i+GilLfvqEs4GW+ExB91tQ3Ig9noDIZ+A==
dependencies:
kind-of "^3.0.2"
@@ -6954,7 +7717,7 @@ is-alphabetical@^1.0.0:
is-alphanumeric@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/is-alphanumeric/-/is-alphanumeric-1.0.0.tgz#4a9cef71daf4c001c1d81d63d140cf53fd6889f4"
- integrity sha1-Spzvcdr0wAHB2B1j0UDPU/1oifQ=
+ integrity sha512-ZmRL7++ZkcMOfDuWZuMJyIVLr2keE1o/DeNWh1EmgqGhUcV+9BIVsx0BcSBOHTZqzjs4+dISzr2KAeBEWGgXeA==
is-alphanumerical@^1.0.0:
version "1.0.4"
@@ -6967,7 +7730,7 @@ is-alphanumerical@^1.0.0:
is-arrayish@^0.2.1:
version "0.2.1"
resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d"
- integrity sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=
+ integrity sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==
is-bigint@^1.0.1:
version "1.0.4"
@@ -7027,6 +7790,13 @@ is-ci@^3.0.1:
dependencies:
ci-info "^3.2.0"
+is-cidr@^4.0.2:
+ version "4.0.2"
+ resolved "https://registry.yarnpkg.com/is-cidr/-/is-cidr-4.0.2.tgz#94c7585e4c6c77ceabf920f8cde51b8c0fda8814"
+ integrity sha512-z4a1ENUajDbEl/Q6/pVBpTR1nBjjEE1X7qb7bmWYanNnPoKAvUCPFKeXV6Fe4mgTkWKBqiHIcwsI3SndiO5FeA==
+ dependencies:
+ cidr-regex "^3.1.1"
+
is-core-module@^2.1.0, is-core-module@^2.2.0, is-core-module@^2.5.0, is-core-module@^2.8.1:
version "2.9.0"
resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.9.0.tgz#e1c34429cd51c6dd9e09e0799e396e27b19a9c69"
@@ -7037,7 +7807,7 @@ is-core-module@^2.1.0, is-core-module@^2.2.0, is-core-module@^2.5.0, is-core-mod
is-data-descriptor@^0.1.4:
version "0.1.4"
resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz#0b5ee648388e2c860282e793f1856fec3f301b56"
- integrity sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=
+ integrity sha512-+w9D5ulSoBNlmw9OHn3U2v51SyoCd0he+bB3xMl62oijhrspxowjU+AIcDY0N3iEJbUEkB15IlMASQsxYigvXg==
dependencies:
kind-of "^3.0.2"
@@ -7086,12 +7856,12 @@ is-docker@^2.0.0, is-docker@^2.1.1:
is-empty@^1.0.0:
version "1.2.0"
resolved "https://registry.yarnpkg.com/is-empty/-/is-empty-1.2.0.tgz#de9bb5b278738a05a0b09a57e1fb4d4a341a9f6b"
- integrity sha1-3pu1snhzigWgsJpX4ftNSjQan2s=
+ integrity sha512-F2FnH/otLNJv0J6wc73A5Xo7oHLNnqplYqZhUu01tD54DIPvxIRSTSLkrUB/M0nHO4vo1O9PDfN4KoTxCzLh/w==
is-extendable@^0.1.0, is-extendable@^0.1.1:
version "0.1.1"
resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-0.1.1.tgz#62b110e289a471418e3ec36a617d472e301dfc89"
- integrity sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=
+ integrity sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==
is-extendable@^1.0.1:
version "1.0.1"
@@ -7103,19 +7873,19 @@ is-extendable@^1.0.1:
is-extglob@^2.1.0, is-extglob@^2.1.1:
version "2.1.1"
resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2"
- integrity sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=
+ integrity sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==
is-fullwidth-code-point@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz#ef9e31386f031a7f0d643af82fde50c457ef00cb"
- integrity sha1-754xOG8DGn8NZDr4L95QxFfvAMs=
+ integrity sha512-1pqUqRjkhPJ9miNq9SwMfdvi6lBJcd6eFxvfaivQhaH3SgisfiuudvFntdKOmxuee/77l+FPjKrQjWvmPjWrRw==
dependencies:
number-is-nan "^1.0.0"
is-fullwidth-code-point@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f"
- integrity sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=
+ integrity sha512-VHskAKYM8RfSFXwee5t5cbN5PZeq1Wrh6qd5bkyiXIf6UQcN6w/A0eXM9r6t8d+GYOh+o6ZhiEnb88LN/Y8m2w==
is-fullwidth-code-point@^3.0.0:
version "3.0.0"
@@ -7137,7 +7907,7 @@ is-glob@4.0.3, is-glob@^4.0.0, is-glob@^4.0.1, is-glob@^4.0.3, is-glob@~4.0.1:
is-glob@^3.0.0, is-glob@^3.1.0:
version "3.1.0"
resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-3.1.0.tgz#7ba5ae24217804ac70707b96922567486cc3e84a"
- integrity sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=
+ integrity sha512-UFpDDrPgM6qpnFNI+rh/p3bUaq9hKLZN8bMUWzxmcnZVS3omf4IPK+BrewlnWjO1WmUsMYuSjKh4UJuV4+Lqmw==
dependencies:
is-extglob "^2.1.0"
@@ -7159,6 +7929,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-lower-case@^2.0.2:
version "2.0.2"
resolved "https://registry.yarnpkg.com/is-lower-case/-/is-lower-case-2.0.2.tgz#1c0884d3012c841556243483aa5d522f47396d2a"
@@ -7186,7 +7961,7 @@ is-number-object@^1.0.4:
is-number@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/is-number/-/is-number-3.0.0.tgz#24fd6201a4782cf50561c810276afc7d12d71195"
- integrity sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=
+ integrity sha512-4cboCqIpliH+mAvFNegjZQ4kgKc3ZUhQVr3HvWbSh5q3WH2v82ct+T2Y1hdU5Gdtorx/cLifQjqCbL7bpznLTg==
dependencies:
kind-of "^3.0.2"
@@ -7198,7 +7973,7 @@ is-number@^7.0.0:
is-obj@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/is-obj/-/is-obj-1.0.1.tgz#3e4729ac1f5fde025cd7d83a896dab9f4f67db0f"
- integrity sha1-PkcprB9f3gJc19g6iW2rn09n2w8=
+ integrity sha512-l4RyHgRqGN4Y3+9JHVrNqO+tN0rV5My76uW5/nuO4K1b6vw5G8d/cmFjP9tRfEsdhZNt0IFdZuK/c2Vr4Nb+Qg==
is-obj@^2.0.0:
version "2.0.0"
@@ -7220,7 +7995,7 @@ is-path-inside@^3.0.1:
is-plain-obj@^1.1.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-1.1.0.tgz#71a50c8429dfca773c92a390a4a03b39fcd51d3e"
- integrity sha1-caUMhCnfync8kqOQpKA7OfzVHT4=
+ integrity sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg==
is-plain-obj@^2.0.0:
version "2.1.0"
@@ -7255,7 +8030,7 @@ is-regex@^1.1.4:
is-regexp@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/is-regexp/-/is-regexp-1.0.0.tgz#fd2d883545c46bac5a633e7b9a09e87fa2cb5069"
- integrity sha1-/S2INUXEa6xaYz57mgnof6LLUGk=
+ integrity sha512-7zjFAPO4/gwyQAAgRRmqeEeyIICSdmCqa3tsVHMdBzaXXRiqopZL4Cyghg/XulGWrtABTpbnYYzzIRffLkP4oA==
is-relative@^1.0.0:
version "1.0.0"
@@ -7279,7 +8054,7 @@ is-shared-array-buffer@^1.0.2:
is-stream@^1.1.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44"
- integrity sha1-EtSj3U5o4Lec6428hBc66A2RykQ=
+ integrity sha512-uQPm8kcs47jx38atAcWTVxyltQYoPT68y9aWYdV6yWXSyW8mzSat0TL6CiWdZeCdF3KrAvpVtnHbTv4RN+rqdQ==
is-stream@^2.0.0:
version "2.0.1"
@@ -7310,7 +8085,7 @@ is-symbol@^1.0.2, is-symbol@^1.0.3:
is-typedarray@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a"
- integrity sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=
+ integrity sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==
is-unc-path@^1.0.0:
version "1.0.0"
@@ -7368,34 +8143,34 @@ is-yarn-global@^0.3.0:
isarray@0.0.1:
version "0.0.1"
resolved "https://registry.yarnpkg.com/isarray/-/isarray-0.0.1.tgz#8a18acfca9a8f4177e09abfc6038939b05d1eedf"
- integrity sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=
+ integrity sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==
isarray@1.0.0, isarray@~1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11"
- integrity sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=
+ integrity sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==
iserror@0.0.2, iserror@^0.0.2:
version "0.0.2"
resolved "https://registry.yarnpkg.com/iserror/-/iserror-0.0.2.tgz#bd53451fe2f668b9f2402c1966787aaa2c7c0bf5"
- integrity sha1-vVNFH+L2aLnyQCwZZnh6qix8C/U=
+ integrity sha512-oKGGrFVaWwETimP3SiWwjDeY27ovZoyZPHtxblC4hCq9fXxed/jasx+ATWFFjCVSRZng8VTMsN1nDnGo6zMBSw==
isexe@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10"
- integrity sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=
+ integrity sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==
isobject@^2.0.0:
version "2.1.0"
resolved "https://registry.yarnpkg.com/isobject/-/isobject-2.1.0.tgz#f065561096a3f1da2ef46272f815c840d87e0c89"
- integrity sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=
+ integrity sha512-+OUdGJlgjOBZDfxnDjYYG6zp487z0JGNQq3cYQYg5f5hKR+syHMsaztzGeml/4kGG55CSpKSpWTY+jYGgsHLgA==
dependencies:
isarray "1.0.0"
isobject@^3.0.0, isobject@^3.0.1:
version "3.0.1"
resolved "https://registry.yarnpkg.com/isobject/-/isobject-3.0.1.tgz#4e431e92b11a9731636aa1f9c8d1ccbcfdab78df"
- integrity sha1-TkMekrEalzFjaqH5yNHMvP2reN8=
+ integrity sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==
isomorphic-fetch@^3.0.0:
version "3.0.0"
@@ -8248,7 +9023,12 @@ jest@^27.0.0:
jju@~1.4.0:
version "1.4.0"
resolved "https://registry.yarnpkg.com/jju/-/jju-1.4.0.tgz#a3abe2718af241a2b2904f84a625970f389ae32a"
- integrity sha1-o6vicYryQaKykE+EpiWXDzia4yo=
+ integrity sha512-8wb9Yw966OSxApiCt0K3yNJL8pnNeIv+OEq2YMidz4FKP6nonSRoOXc80iXY4JaN2FC11B9qsNmDsm+ZOfMROA==
+
+js-cookie@^2.2.1:
+ version "2.2.1"
+ resolved "https://registry.yarnpkg.com/js-cookie/-/js-cookie-2.2.1.tgz#69e106dc5d5806894562902aa5baec3744e9b2b8"
+ integrity sha512-HvdH2LzI/EAZcUwA8+0nKNtWHqS+ZmijLA30RwZA0bo7ToCckjK5MkGhjED9KoRcXO6BaGI3I9UIzSA1FKFPOQ==
"js-tokens@^3.0.0 || ^4.0.0", js-tokens@^4.0.0:
version "4.0.0"
@@ -8311,7 +9091,7 @@ jsesc@^2.5.1:
json-buffer@3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/json-buffer/-/json-buffer-3.0.0.tgz#5b1f397afc75d677bde8bcfc0e47e1f9a3d9a898"
- integrity sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg=
+ integrity sha512-CuUqjv0FUZIdXkHPI8MezCnFCdaTAacej1TZYulLoAg1h/PhwkdXFN4V/gzY4g+fMBCOV2xF+rp7t2XD2ns/NQ==
json-buffer@3.0.1, json-buffer@~3.0.1:
version "3.0.1"
@@ -8323,7 +9103,7 @@ json-parse-better-errors@^1.0.1:
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.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==
@@ -8336,19 +9116,24 @@ json-schema-traverse@^0.4.1:
json-stable-stringify-without-jsonify@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651"
- integrity sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=
+ integrity sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==
json-stable-stringify@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz#9a759d39c5f2ff503fd5300646ed445f88c4f9af"
- integrity sha1-mnWdOcXy/1A/1TAGRu1EX4jE+a8=
+ integrity sha512-i/J297TW6xyj7sDFa7AmBPkQvLIxWr2kKPWI26tXydnZrzVAocNqn5DMNT1Mzk0vit1V5UkRM7C1KdVNp7Lmcg==
dependencies:
jsonify "~0.0.0"
+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-to-pretty-yaml@^1.2.2:
version "1.2.2"
resolved "https://registry.yarnpkg.com/json-to-pretty-yaml/-/json-to-pretty-yaml-1.2.2.tgz#f4cd0bd0a5e8fe1df25aaf5ba118b099fd992d5b"
- integrity sha1-9M0L0KXo/h3yWq9boRiwmf2ZLVs=
+ integrity sha512-rvm6hunfCcqegwYaG5T4yKJWxc9FXFgBVrcTZ4XfSVRwa5HA/Xs+vB/Eo9treYYHCeNM0nrSUr82V/M31Urc7A==
dependencies:
remedial "^1.0.7"
remove-trailing-spaces "^1.0.6"
@@ -8361,7 +9146,7 @@ json5@2.x, json5@^2.1.2, json5@^2.2.1:
jsonfile@^4.0.0:
version "4.0.0"
resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-4.0.0.tgz#8771aae0799b64076b76640fca058f9c10e33ecb"
- integrity sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=
+ integrity sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==
optionalDependencies:
graceful-fs "^4.1.6"
@@ -8377,7 +9162,7 @@ jsonfile@^6.0.1:
jsonify@~0.0.0:
version "0.0.0"
resolved "https://registry.yarnpkg.com/jsonify/-/jsonify-0.0.0.tgz#2c74b6ee41d93ca51b7b5aaee8f503631d252a73"
- integrity sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM=
+ integrity sha512-trvBk1ki43VZptdBI5rIlG4YOzyeH/WefQt5rj1grasPn4iiZWKet8nkgc4GlsAylaztn0qZfUYOiTsASJFdNA==
jsonlint@^1.6.3:
version "1.6.3"
@@ -8387,6 +9172,11 @@ jsonlint@^1.6.3:
JSV "^4.0.x"
nomnom "^1.5.x"
+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==
+
jsonwebtoken@^8.5.1:
version "8.5.1"
resolved "https://registry.yarnpkg.com/jsonwebtoken/-/jsonwebtoken-8.5.1.tgz#00e71e0b8df54c2121a1f26137df2280673bcc0d"
@@ -8421,6 +9211,16 @@ junk@^4.0.0:
resolved "https://registry.yarnpkg.com/junk/-/junk-4.0.0.tgz#9b1104ddf5281cd24ffa3c8a7443d19ce192b37f"
integrity sha512-ojtSU++zLJ3jQG9bAYjg94w+/DOJtRyD7nPaerMFrBhmdVmiV5/exYH5t4uHga4G/95nT6hr1OJoKIFbYbrW5w==
+just-diff-apply@^5.2.0:
+ version "5.3.1"
+ resolved "https://registry.yarnpkg.com/just-diff-apply/-/just-diff-apply-5.3.1.tgz#30f40809ffed55ad76dccf73fa9b85a76964c867"
+ integrity sha512-dgFenZnMsc1xGNqgdtgnh7DK+Oy352CE3VZLbzcbQpsBs9iI2K3M0IRrdgREZ72eItTjbl0suRyvKRdVQa9GbA==
+
+just-diff@^5.0.1:
+ version "5.0.3"
+ resolved "https://registry.yarnpkg.com/just-diff/-/just-diff-5.0.3.tgz#4c9c514dec5526b25ab977590e3c39a0cf271554"
+ integrity sha512-a8p80xcpJ6sdurk5PxDKb4mav9MeKjA3zFKZpCWBIfvg8mznfnmb13MKZvlrwJ+Lhis0wM3uGAzE0ArhFHvIcg==
+
jwa@^1.4.1:
version "1.4.1"
resolved "https://registry.yarnpkg.com/jwa/-/jwa-1.4.1.tgz#743c32985cb9e98655530d53641b66c8645b039a"
@@ -8464,14 +9264,14 @@ keyv@^4.0.0:
kind-of@^3.0.2, kind-of@^3.0.3, kind-of@^3.2.0:
version "3.2.2"
resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-3.2.2.tgz#31ea21a734bab9bbb0f32466d893aea51e4a3c64"
- integrity sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=
+ integrity sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==
dependencies:
is-buffer "^1.1.5"
kind-of@^4.0.0:
version "4.0.0"
resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-4.0.0.tgz#20813df3d712928b207378691a45066fae72dd57"
- integrity sha1-IIE989cSkosgc3hpGkUGb65y3Vc=
+ integrity sha512-24XsCxmEbRwEDbz/qz3stgin8TTzZ1ESR56OMCN0ujYg+vRutNSiOj9bHH9u85DKgXguraugV5sFuvbD4FW/hw==
dependencies:
is-buffer "^1.1.5"
@@ -8508,7 +9308,7 @@ language-subtag-registry@~0.3.2:
language-tags@^1.0.5:
version "1.0.5"
resolved "https://registry.yarnpkg.com/language-tags/-/language-tags-1.0.5.tgz#d321dbc4da30ba8bf3024e040fa5c14661f9193a"
- integrity sha1-0yHbxNowuovzAk4ED6XBRmH5GTo=
+ integrity sha512-qJhlO9cGXi6hBGKoxEG/sKZDAHD5Hnu9Hs4WbOY3pCWXDhw0N8x1NenNzm2EnNLkLkk7J2SdxAkDSbb6ftT+UQ==
dependencies:
language-subtag-registry "~0.3.2"
@@ -8535,11 +9335,21 @@ levn@^0.4.1:
levn@~0.3.0:
version "0.3.0"
resolved "https://registry.yarnpkg.com/levn/-/levn-0.3.0.tgz#3b09924edf9f083c0490fdd4c0bc4421e04764ee"
- integrity sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=
+ integrity sha512-0OO4y2iOHix2W6ujICbKIaEQXvFQHue65vUG3pb5EUomzPI90z9hsA1VsO/dbIIpC53J8gxM9Q4Oho0jrCM/yA==
dependencies:
prelude-ls "~1.1.2"
type-check "~0.3.2"
+libnpmaccess@^6.0.2:
+ version "6.0.3"
+ resolved "https://registry.yarnpkg.com/libnpmaccess/-/libnpmaccess-6.0.3.tgz#473cc3e4aadb2bc713419d92e45d23b070d8cded"
+ integrity sha512-4tkfUZprwvih2VUZYMozL7EMKgQ5q9VW2NtRyxWtQWlkLTAWHRklcAvBN49CVqEkhUw7vTX2fNgB5LzgUucgYg==
+ dependencies:
+ aproba "^2.0.0"
+ minipass "^3.1.1"
+ npm-package-arg "^9.0.1"
+ npm-registry-fetch "^13.0.0"
+
libnpmconfig@^1.0.0:
version "1.2.1"
resolved "https://registry.yarnpkg.com/libnpmconfig/-/libnpmconfig-1.2.1.tgz#c0c2f793a74e67d4825e5039e7a02a0044dfcbc0"
@@ -8549,6 +9359,107 @@ libnpmconfig@^1.0.0:
find-up "^3.0.0"
ini "^1.3.5"
+libnpmdiff@^4.0.2:
+ version "4.0.3"
+ resolved "https://registry.yarnpkg.com/libnpmdiff/-/libnpmdiff-4.0.3.tgz#ad3997330c887c1098ac42682f1e5ad014d49cec"
+ integrity sha512-AiwBtXtH7HjfmT7FbTf9LFzJB347RrIA4I+IewMfhq8vYXaUveHwJMVNgMM2H/o2J+7Hf12JCBoOF5bTwlmGyw==
+ dependencies:
+ "@npmcli/disparity-colors" "^2.0.0"
+ "@npmcli/installed-package-contents" "^1.0.7"
+ binary-extensions "^2.2.0"
+ diff "^5.0.0"
+ minimatch "^5.0.1"
+ npm-package-arg "^9.0.1"
+ pacote "^13.0.5"
+ tar "^6.1.0"
+
+libnpmexec@^4.0.2:
+ version "4.0.6"
+ resolved "https://registry.yarnpkg.com/libnpmexec/-/libnpmexec-4.0.6.tgz#600beffd6f265cf92a096a7f336f330bc0019e82"
+ integrity sha512-v1jAPJyFFex6R0YHYXuudR4liQ3tYJ7vVZ6eThOex4+WzQEnoShLVfK3MLyFbjdGNO85wCHcVWVpXaBOVnVa/w==
+ dependencies:
+ "@npmcli/arborist" "^5.0.0"
+ "@npmcli/ci-detect" "^2.0.0"
+ "@npmcli/run-script" "^3.0.0"
+ chalk "^4.1.0"
+ mkdirp-infer-owner "^2.0.0"
+ npm-package-arg "^9.0.1"
+ npmlog "^6.0.2"
+ pacote "^13.0.5"
+ proc-log "^2.0.0"
+ read "^1.0.7"
+ read-package-json-fast "^2.0.2"
+ walk-up-path "^1.0.0"
+
+libnpmfund@^3.0.1:
+ version "3.0.2"
+ resolved "https://registry.yarnpkg.com/libnpmfund/-/libnpmfund-3.0.2.tgz#7da0827950f0db2cce0acb0dc7652d1834a8b239"
+ integrity sha512-wmFMP/93Wjy+jDg5LaSldDgAhSgCyA64JUUmp806Kae7y3YP9Qv5m1vUhPxT4yebxgB2v/I6G1/RUcNb1y0kVg==
+ dependencies:
+ "@npmcli/arborist" "^5.0.0"
+
+libnpmhook@^8.0.2:
+ version "8.0.3"
+ resolved "https://registry.yarnpkg.com/libnpmhook/-/libnpmhook-8.0.3.tgz#9628518a63455d21dafda312ee46175275707ff5"
+ integrity sha512-TEdNI1mC5zS+w/juCgxrwwQnpbq9lY76NDOS0N37pn6pWIUxB1Yq8mwy6MUEXR1TgH4HurSQyKT6I6Kp9Wjm4A==
+ dependencies:
+ aproba "^2.0.0"
+ npm-registry-fetch "^13.0.0"
+
+libnpmorg@^4.0.2:
+ version "4.0.3"
+ resolved "https://registry.yarnpkg.com/libnpmorg/-/libnpmorg-4.0.3.tgz#a85cbdb3665ad4f7c7279d239a4581ec2eeef5a6"
+ integrity sha512-r4CpmCEF+e5PbFMBi64xSXmqn0uGgV4T7NWpGL4/A6KT/DTtIxALILQZq+l0ZdN1xm4RjOvqSDR22oT4il8rAQ==
+ dependencies:
+ aproba "^2.0.0"
+ npm-registry-fetch "^13.0.0"
+
+libnpmpack@^4.0.2:
+ version "4.1.0"
+ resolved "https://registry.yarnpkg.com/libnpmpack/-/libnpmpack-4.1.0.tgz#93a170b67bc52e15edc7b1f2e09b2c36e532b897"
+ integrity sha512-BHwojfEbJvVVJXivZjOCe3Y0IzQ47p6c/bfebrpzazuFNRoS9XOsbkncRbl3f23+u9b51eplzwaPh/5xSOAWHg==
+ dependencies:
+ "@npmcli/run-script" "^3.0.0"
+ npm-package-arg "^9.0.1"
+ pacote "^13.5.0"
+
+libnpmpublish@^6.0.2:
+ version "6.0.4"
+ resolved "https://registry.yarnpkg.com/libnpmpublish/-/libnpmpublish-6.0.4.tgz#adb41ec6b0c307d6f603746a4d929dcefb8f1a0b"
+ integrity sha512-lvAEYW8mB8QblL6Q/PI/wMzKNvIrF7Kpujf/4fGS/32a2i3jzUXi04TNyIBcK6dQJ34IgywfaKGh+Jq4HYPFmg==
+ dependencies:
+ normalize-package-data "^4.0.0"
+ npm-package-arg "^9.0.1"
+ npm-registry-fetch "^13.0.0"
+ semver "^7.3.7"
+ ssri "^9.0.0"
+
+libnpmsearch@^5.0.2:
+ version "5.0.3"
+ resolved "https://registry.yarnpkg.com/libnpmsearch/-/libnpmsearch-5.0.3.tgz#ed502a4c2c70ea36723180455fae1357546b2184"
+ integrity sha512-Ofq76qKAPhxbiyzPf/5LPjJln26VTKwU9hIU0ACxQ6tNtBJ1CHmI7iITrdp7vNezhZc0FlkXwrIpqXjhBJZgLQ==
+ dependencies:
+ npm-registry-fetch "^13.0.0"
+
+libnpmteam@^4.0.2:
+ version "4.0.3"
+ resolved "https://registry.yarnpkg.com/libnpmteam/-/libnpmteam-4.0.3.tgz#9335fbbd032b3770f5c9b7ffc6203f47d1ed144a"
+ integrity sha512-LsYYLz4TlTpcqkusInY5MhKjiHFaCx1GV0LmydXJ/QMh+3IWBJpUhes4ynTZuFoJKkDIFjxyMU09ul+RZixgdg==
+ dependencies:
+ aproba "^2.0.0"
+ npm-registry-fetch "^13.0.0"
+
+libnpmversion@^3.0.1:
+ version "3.0.4"
+ resolved "https://registry.yarnpkg.com/libnpmversion/-/libnpmversion-3.0.4.tgz#a30f563416ea1e2dd69878b4a9edf4eb4a070ef8"
+ integrity sha512-q5hvZlso0SMLgKm4AMtleRWtq4pERprebEGV6OwKi24efgAOgNDP98+jNUX2mIR2wp9eAa6ybkNNWu4yMaCsVw==
+ dependencies:
+ "@npmcli/git" "^3.0.0"
+ "@npmcli/run-script" "^3.0.0"
+ json-parse-even-better-errors "^2.3.1"
+ proc-log "^2.0.0"
+ semver "^7.3.7"
+
lilconfig@^2.0.5:
version "2.0.5"
resolved "https://registry.yarnpkg.com/lilconfig/-/lilconfig-2.0.5.tgz#19e57fd06ccc3848fd1891655b5a447092225b25"
@@ -8557,7 +9468,7 @@ lilconfig@^2.0.5:
limit-spawn@0.0.3:
version "0.0.3"
resolved "https://registry.yarnpkg.com/limit-spawn/-/limit-spawn-0.0.3.tgz#cc09c24467a0f0a1ed10a5196dba597cad3f65dc"
- integrity sha1-zAnCRGeg8KHtEKUZbbpZfK0/Zdw=
+ integrity sha512-2vJ6FDCit0ohq77qdbIdk5JqGs/98W1fGEgozoAMq/oybKPdgLuB8bHH/wWgvCdQzEJpm6Sxh0abG/PtxFr7XA==
lines-and-columns@^1.1.6:
version "1.2.4"
@@ -8588,7 +9499,7 @@ lint-staged@^10.5.4:
listr-silent-renderer@^1.1.1:
version "1.1.1"
resolved "https://registry.yarnpkg.com/listr-silent-renderer/-/listr-silent-renderer-1.1.1.tgz#924b5a3757153770bf1a8e3fbf74b8bbf3f9242e"
- integrity sha1-kktaN1cVN3C/Go4/v3S4u/P5JC4=
+ integrity sha512-L26cIFm7/oZeSNVhWB6faeorXhMg4HNlb/dS/7jHhr708jxlXrtrBWo4YUxZQkc6dGoxEAe6J/D3juTRBUzjtA==
listr-update-renderer@^0.5.0:
version "0.5.0"
@@ -8646,7 +9557,7 @@ listr@^0.14.3:
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 sha1-L19Fq5HjMhYjT9U62rZo607AmTs=
+ integrity sha512-Kx8hMakjX03tiGTLAIdJ+lL0htKnXjEZN6hk/tozf/WOuYGdZBJrZ+rCJRbVCugsjB3jMLn9746NsQIf5VjBMw==
dependencies:
graceful-fs "^4.1.2"
parse-json "^4.0.0"
@@ -8721,72 +9632,72 @@ locate-path@^6.0.0:
lodash.castarray@^4.4.0:
version "4.4.0"
resolved "https://registry.yarnpkg.com/lodash.castarray/-/lodash.castarray-4.4.0.tgz#c02513515e309daddd4c24c60cfddcf5976d9115"
- integrity sha1-wCUTUV4wna3dTCTGDP3c9ZdtkRU=
+ integrity sha512-aVx8ztPv7/2ULbArGJ2Y42bG1mEQ5mGjpdvrbJcJFU3TbYybe+QlLS4pst9zV52ymy2in1KpFPiZnAOATxD4+Q==
lodash.clonedeep@^4.5.0:
version "4.5.0"
resolved "https://registry.yarnpkg.com/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz#e23f3f9c4f8fbdde872529c1071857a086e5ccef"
- integrity sha1-4j8/nE+Pvd6HJSnBBxhXoIblzO8=
+ integrity sha512-H5ZhCF25riFd9uB5UCkVKo61m3S/xZk1x4wA6yp/L3RFP6Z/eHH1ymQcGLo7J3GMPfm0V/7m1tryHuGVxpqEBQ==
lodash.defaults@^4.2.0:
version "4.2.0"
resolved "https://registry.yarnpkg.com/lodash.defaults/-/lodash.defaults-4.2.0.tgz#d09178716ffea4dde9e5fb7b37f6f0802274580c"
- integrity sha1-0JF4cW/+pN3p5ft7N/bwgCJ0WAw=
+ integrity sha512-qjxPLHd3r5DnsdGacqOMU6pb/avJzdh9tFX2ymgoZE27BmjXrNy/y4LoaiTeAb+O3gL8AfpJGtqfX/ae2leYYQ==
lodash.difference@^4.5.0:
version "4.5.0"
resolved "https://registry.yarnpkg.com/lodash.difference/-/lodash.difference-4.5.0.tgz#9ccb4e505d486b91651345772885a2df27fd017c"
- integrity sha1-nMtOUF1Ia5FlE0V3KIWi3yf9AXw=
+ integrity sha512-dS2j+W26TQ7taQBGN8Lbbq04ssV3emRw4NY58WErlTO29pIqS0HmoT5aJ9+TUQ1N3G+JOZSji4eugsWwGp9yPA==
lodash.flatten@^4.4.0:
version "4.4.0"
resolved "https://registry.yarnpkg.com/lodash.flatten/-/lodash.flatten-4.4.0.tgz#f31c22225a9632d2bbf8e4addbef240aa765a61f"
- integrity sha1-8xwiIlqWMtK7+OSt2+8kCqdlph8=
+ integrity sha512-C5N2Z3DgnnKr0LOpv/hKCgKdb7ZZwafIrsesve6lmzvZIRZRGaZ/l6Q8+2W7NaT+ZwO3fFlSCzCzrDCFdJfZ4g==
lodash.get@^4:
version "4.4.2"
resolved "https://registry.yarnpkg.com/lodash.get/-/lodash.get-4.4.2.tgz#2d177f652fa31e939b4438d5341499dfa3825e99"
- integrity sha1-LRd/ZS+jHpObRDjVNBSZ36OCXpk=
+ integrity sha512-z+Uw/vLuy6gQe8cfaFWD7p0wVv8fJl3mbzXh33RS+0oW2wvUqiRXiQ69gLWSLpgB5/6sU+r6BlQR0MBILadqTQ==
lodash.includes@^4.3.0:
version "4.3.0"
resolved "https://registry.yarnpkg.com/lodash.includes/-/lodash.includes-4.3.0.tgz#60bb98a87cb923c68ca1e51325483314849f553f"
- integrity sha1-YLuYqHy5I8aMoeUTJUgzFISfVT8=
+ integrity sha512-W3Bx6mdkRTGtlJISOvVD/lbqjTlPPUDTMnlXZFnVwi9NKJ6tiAk6LVdlhZMm17VZisqhKcgzpO5Wz91PCt5b0w==
lodash.intersection@^4.4.0:
version "4.4.0"
resolved "https://registry.yarnpkg.com/lodash.intersection/-/lodash.intersection-4.4.0.tgz#0a11ba631d0e95c23c7f2f4cbb9a692ed178e705"
- integrity sha1-ChG6Yx0OlcI8fy9Mu5ppLtF45wU=
+ integrity sha512-N+L0cCfnqMv6mxXtSPeKt+IavbOBBSiAEkKyLasZ8BVcP9YXQgxLO12oPR8OyURwKV8l5vJKiE1M8aS70heuMg==
lodash.isarguments@^3.1.0:
version "3.1.0"
resolved "https://registry.yarnpkg.com/lodash.isarguments/-/lodash.isarguments-3.1.0.tgz#2f573d85c6a24289ff00663b491c1d338ff3458a"
- integrity sha1-L1c9hcaiQon/AGY7SRwdM4/zRYo=
+ integrity sha512-chi4NHZlZqZD18a0imDHnZPrDeBbTtVN7GXMwuGdRH9qotxAjYs3aVLKc7zNOG9eddR5Ksd8rvFEBc9SsggPpg==
lodash.isboolean@^3.0.3:
version "3.0.3"
resolved "https://registry.yarnpkg.com/lodash.isboolean/-/lodash.isboolean-3.0.3.tgz#6c2e171db2a257cd96802fd43b01b20d5f5870f6"
- integrity sha1-bC4XHbKiV82WgC/UOwGyDV9YcPY=
+ integrity sha512-Bz5mupy2SVbPHURB98VAcw+aHh4vRV5IPNhILUCsOzRmsTmSQ17jIuqopAentWoehktxGd9e/hbIXq980/1QJg==
lodash.isinteger@^4.0.4:
version "4.0.4"
resolved "https://registry.yarnpkg.com/lodash.isinteger/-/lodash.isinteger-4.0.4.tgz#619c0af3d03f8b04c31f5882840b77b11cd68343"
- integrity sha1-YZwK89A/iwTDH1iChAt3sRzWg0M=
+ integrity sha512-DBwtEWN2caHQ9/imiNeEA5ys1JoRtRfY3d7V9wkqtbycnAmTvRRmbHKDV4a0EYc678/dia0jrte4tjYwVBaZUA==
lodash.isnumber@^3.0.3:
version "3.0.3"
resolved "https://registry.yarnpkg.com/lodash.isnumber/-/lodash.isnumber-3.0.3.tgz#3ce76810c5928d03352301ac287317f11c0b1ffc"
- integrity sha1-POdoEMWSjQM1IwGsKHMX8RwLH/w=
+ integrity sha512-QYqzpfwO3/CWf3XP+Z+tkQsfaLL/EnUlXWVkIk5FUPc4sBdTehEqZONuyRt2P67PXAk+NXmTBcc97zw9t1FQrw==
lodash.isplainobject@^4.0.6:
version "4.0.6"
resolved "https://registry.yarnpkg.com/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz#7c526a52d89b45c45cc690b88163be0497f550cb"
- integrity sha1-fFJqUtibRcRcxpC4gWO+BJf1UMs=
+ 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 sha1-1SfftUVuynzJu5XV2ur4i6VKVFE=
+ integrity sha512-0wJxfxH1wgO3GrbuP+dTTk7op+6L41QCXbGINEmD+ny/G/eCqGzxyCsh7159S+mgDDcoarnBw6PC1PS5+wUGgw==
lodash.memoize@4.x:
version "4.1.2"
@@ -8801,12 +9712,12 @@ lodash.merge@^4.6.2:
lodash.once@^4.0.0:
version "4.1.1"
resolved "https://registry.yarnpkg.com/lodash.once/-/lodash.once-4.1.1.tgz#0dd3971213c7c56df880977d504c88fb471a97ac"
- integrity sha1-DdOXEhPHxW34gJd9UEyI+0cal6w=
+ integrity sha512-Sb487aTOCr9drQVL8pIxOzVhafOjZN9UU54hiN8PU3uAiSV7lx1yYNpbNmex2PK6dSJoNTSJUUswT651yww3Mg==
lodash.startcase@^4.4.0:
version "4.4.0"
resolved "https://registry.yarnpkg.com/lodash.startcase/-/lodash.startcase-4.4.0.tgz#9436e34ed26093ed7ffae1936144350915d9add8"
- integrity sha1-lDbjTtJgk+1/+uGTYUQ1CRXZrdg=
+ integrity sha512-+WKqsK294HMSc2jEbNgpHpd0JfIBhp7rEV4aqXWqFr6AlXov+SlcgB1Fv01y2kGe3Gc8nMW7VA0SrGuSkRfIEg==
lodash@4.x, lodash@^4.17.15, lodash@^4.17.20, lodash@^4.17.21, lodash@^4.7.0, lodash@~4.17.0:
version "4.17.21"
@@ -8816,7 +9727,7 @@ lodash@4.x, lodash@^4.17.15, lodash@^4.17.20, lodash@^4.17.21, lodash@^4.7.0, lo
log-symbols@^1.0.2:
version "1.0.2"
resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-1.0.2.tgz#376ff7b58ea3086a0f09facc74617eca501e1a18"
- integrity sha1-N2/3tY6jCGoPCfrMdGF+ylAeGhg=
+ integrity sha512-mmPrW0Fh2fxOzdBbFv4g1m6pR72haFLPJ2G5SJEELf1y+iaQrDG6cWCPjy54RHYbZAt7X+ls690Kw62AdWXBzQ==
dependencies:
chalk "^1.0.0"
@@ -8831,7 +9742,7 @@ log-symbols@^4.0.0, log-symbols@^4.1.0:
log-update@^2.3.0:
version "2.3.0"
resolved "https://registry.yarnpkg.com/log-update/-/log-update-2.3.0.tgz#88328fd7d1ce7938b29283746f0b1bc126b24708"
- integrity sha1-iDKP19HOeTiykoN0bwsbwSayRwg=
+ integrity sha512-vlP11XfFGyeNQlmEn9tJ66rEW1coA/79m5z6BCkudjbAGE83uhAcGYrBFwfs3AdLiLzGRusRPAbSPK9xZteCmg==
dependencies:
ansi-escapes "^3.0.0"
cli-cursor "^2.0.0"
@@ -8905,10 +9816,15 @@ lru-cache@^6.0.0:
dependencies:
yallist "^4.0.0"
+lru-cache@^7.4.4, lru-cache@^7.5.1, lru-cache@^7.7.1:
+ version "7.10.1"
+ resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-7.10.1.tgz#db577f42a94c168f676b638d15da8fb073448cab"
+ integrity sha512-BQuhQxPuRl79J5zSXRP+uNzPOyZw2oFI9JLRQ80XswSvg21KMKNtQza9eF42rfI/3Z40RvzBdXgziEkudzjo8A==
+
lz-string@^1.4.4:
version "1.4.4"
resolved "https://registry.yarnpkg.com/lz-string/-/lz-string-1.4.4.tgz#c0d8eaf36059f705796e1e344811cf4c498d3a26"
- integrity sha1-wNjq82BZ9wV5bh40SBHPTEmNOiY=
+ integrity sha512-0ckx7ZHRPqb0oUm8zNr+90mtf9DQB60H1wMCjBtfi62Kl3a7JbHob6gA2bC+xRvZoOL+1hzUK8jeuEIQE8svEQ==
magic-string@^0.26.1:
version "0.26.2"
@@ -8929,6 +9845,50 @@ make-error@1.x, make-error@^1, make-error@^1.1.1:
resolved "https://registry.yarnpkg.com/make-error/-/make-error-1.3.6.tgz#2eb2e37ea9b67c4891f684a1394799af484cf7a2"
integrity sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==
+make-fetch-happen@^10.0.3, make-fetch-happen@^10.0.6, make-fetch-happen@^10.1.6:
+ version "10.1.7"
+ resolved "https://registry.yarnpkg.com/make-fetch-happen/-/make-fetch-happen-10.1.7.tgz#b1402cb3c9fad92b380ff3a863cdae5414a42f76"
+ integrity sha512-J/2xa2+7zlIUKqfyXDCXFpH3ypxO4k3rgkZHPSZkyUYcBT/hM80M3oyKLM/9dVriZFiGeGGS2Ei+0v2zfhqj3Q==
+ dependencies:
+ agentkeepalive "^4.2.1"
+ cacache "^16.1.0"
+ http-cache-semantics "^4.1.0"
+ http-proxy-agent "^5.0.0"
+ https-proxy-agent "^5.0.0"
+ is-lambda "^1.0.1"
+ lru-cache "^7.7.1"
+ minipass "^3.1.6"
+ minipass-collect "^1.0.2"
+ minipass-fetch "^2.0.3"
+ minipass-flush "^1.0.5"
+ minipass-pipeline "^1.2.4"
+ negotiator "^0.6.3"
+ promise-retry "^2.0.1"
+ socks-proxy-agent "^7.0.0"
+ ssri "^9.0.0"
+
+make-fetch-happen@^9.1.0:
+ version "9.1.0"
+ resolved "https://registry.yarnpkg.com/make-fetch-happen/-/make-fetch-happen-9.1.0.tgz#53085a09e7971433e6765f7971bf63f4e05cb968"
+ integrity sha512-+zopwDy7DNknmwPQplem5lAZX/eCOzSvSNNcSKm5eVwTkOBzoktEfXsa9L23J/GIRhxRsaxzkPEhrJEpE2F4Gg==
+ dependencies:
+ agentkeepalive "^4.1.3"
+ cacache "^15.2.0"
+ http-cache-semantics "^4.1.0"
+ http-proxy-agent "^4.0.1"
+ https-proxy-agent "^5.0.0"
+ is-lambda "^1.0.1"
+ lru-cache "^6.0.0"
+ minipass "^3.1.3"
+ minipass-collect "^1.0.2"
+ minipass-fetch "^1.3.2"
+ minipass-flush "^1.0.5"
+ minipass-pipeline "^1.2.4"
+ negotiator "^0.6.2"
+ promise-retry "^2.0.1"
+ socks-proxy-agent "^6.0.0"
+ ssri "^8.0.0"
+
makeerror@1.0.12:
version "1.0.12"
resolved "https://registry.yarnpkg.com/makeerror/-/makeerror-1.0.12.tgz#3e5dd2079a82e812e983cc6610c4a2cb0eaa801a"
@@ -8939,12 +9899,12 @@ makeerror@1.0.12:
map-cache@^0.2.0, map-cache@^0.2.2:
version "0.2.2"
resolved "https://registry.yarnpkg.com/map-cache/-/map-cache-0.2.2.tgz#c32abd0bd6525d9b051645bb4f26ac5dc98a0dbf"
- integrity sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=
+ integrity sha512-8y/eV9QQZCiyn1SprXSrCmqJN0yNRATe+PO8ztwqrvrbdRLA3eYJF0yaR0YayLWkMbsQSKWS9N2gPcGEc4UsZg==
map-obj@^1.0.0:
version "1.0.1"
resolved "https://registry.yarnpkg.com/map-obj/-/map-obj-1.0.1.tgz#d933ceb9205d82bdcf4886f6742bdc2b4dea146d"
- integrity sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0=
+ integrity sha512-7N/q3lyZ+LVCp7PzuxrJr4KMbBE2hW7BT7YNia330OFxIf4d3r5zVpicP2650l7CPN6RM9zOJRl3NGpqSiw3Eg==
map-obj@^4.0.0, map-obj@^4.1.0:
version "4.3.0"
@@ -8954,12 +9914,12 @@ map-obj@^4.0.0, map-obj@^4.1.0:
map-stream@~0.1.0:
version "0.1.0"
resolved "https://registry.yarnpkg.com/map-stream/-/map-stream-0.1.0.tgz#e56aa94c4c8055a16404a0674b78f215f7c8e194"
- integrity sha1-5WqpTEyAVaFkBKBnS3jyFffI4ZQ=
+ integrity sha512-CkYQrPYZfWnu/DAmVCpTSX/xHpKZ80eKh2lAkyA6AJTef6bW+6JpbQZN5rofum7da+SyN1bi5ctTm+lTfcCW3g==
map-visit@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/map-visit/-/map-visit-1.0.0.tgz#ecdca8f13144e660f1b5bd41f12f3479d98dfb8f"
- integrity sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=
+ integrity sha512-4y7uGv8bd2WdM9vpQsiQNo41Ln1NvhvDRuVt0k2JZQ+ezN2uaQes7lZeZ+QQUHOLQAtDaBJ+7wCbi+ab/KFs+w==
dependencies:
object-visit "^1.0.0"
@@ -8997,15 +9957,20 @@ mdast-util-to-nlcst@^4.0.0:
unist-util-position "^3.0.0"
vfile-location "^3.1.0"
+mdn-data@2.0.14:
+ version "2.0.14"
+ resolved "https://registry.yarnpkg.com/mdn-data/-/mdn-data-2.0.14.tgz#7113fc4281917d63ce29b43446f701e68c25ba50"
+ integrity sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==
+
media-typer@0.3.0:
version "0.3.0"
resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748"
- integrity sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=
+ integrity sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==
memorystream@^0.3.1:
version "0.3.1"
resolved "https://registry.yarnpkg.com/memorystream/-/memorystream-0.3.1.tgz#86d7090b30ce455d63fbae12dda51a47ddcaf9b2"
- integrity sha1-htcJCzDORV1j+64S3aUaR93K+bI=
+ integrity sha512-S3UwM3yj5mtUSEfP41UZmt/0SCoVYUcU1rkXv+BQ5Ig8ndL4sPoJNBUJERafdPb5jjHJGuMgytgKvKIf58XNBw==
meow@^10.1.2:
version "10.1.2"
@@ -9160,6 +10125,11 @@ min-indent@^1.0.0, min-indent@^1.0.1:
resolved "https://registry.yarnpkg.com/min-indent/-/min-indent-1.0.1.tgz#a63f681673b30571fbe8bc25686ae746eefa9869"
integrity sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==
+mini-svg-data-uri@^1.2.3:
+ version "1.4.4"
+ resolved "https://registry.yarnpkg.com/mini-svg-data-uri/-/mini-svg-data-uri-1.4.4.tgz#8ab0aabcdf8c29ad5693ca595af19dd2ead09939"
+ integrity sha512-r9deDe9p5FJUPZAk3A59wGH7Ii9YrjjWw0jmw/liSbHl2CHiyXj6FcDXDu2K3TjVAXqiJdaw3xxwlZZr9E6nHg==
+
miniflare@^1.3.3:
version "1.4.1"
resolved "https://registry.yarnpkg.com/miniflare/-/miniflare-1.4.1.tgz#96f13652350a36cdc633ed61232df023cd095ffc"
@@ -9228,6 +10198,79 @@ minimist@^1.1.1, minimist@^1.2.0, minimist@^1.2.3, minimist@^1.2.6:
resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.6.tgz#8637a5b759ea0d6e98702cfb3a9283323c93af44"
integrity sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==
+minipass-collect@^1.0.2:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/minipass-collect/-/minipass-collect-1.0.2.tgz#22b813bf745dc6edba2576b940022ad6edc8c617"
+ integrity sha512-6T6lH0H8OG9kITm/Jm6tdooIbogG9e0tLgpY6mphXSm/A9u8Nq1ryBG+Qspiub9LjWlBPsPS3tWQ/Botq4FdxA==
+ dependencies:
+ minipass "^3.0.0"
+
+minipass-fetch@^1.3.2:
+ version "1.4.1"
+ resolved "https://registry.yarnpkg.com/minipass-fetch/-/minipass-fetch-1.4.1.tgz#d75e0091daac1b0ffd7e9d41629faff7d0c1f1b6"
+ integrity sha512-CGH1eblLq26Y15+Azk7ey4xh0J/XfJfrCox5LDJiKqI2Q2iwOLOKrlmIaODiSQS8d18jalF6y2K2ePUm0CmShw==
+ dependencies:
+ minipass "^3.1.0"
+ minipass-sized "^1.0.3"
+ minizlib "^2.0.0"
+ optionalDependencies:
+ encoding "^0.1.12"
+
+minipass-fetch@^2.0.3:
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/minipass-fetch/-/minipass-fetch-2.1.0.tgz#ca1754a5f857a3be99a9271277246ac0b44c3ff8"
+ integrity sha512-H9U4UVBGXEyyWJnqYDCLp1PwD8XIkJ4akNHp1aGVI+2Ym7wQMlxDKi4IB4JbmyU+pl9pEs/cVrK6cOuvmbK4Sg==
+ dependencies:
+ minipass "^3.1.6"
+ 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.2, 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, minipass@^3.1.0, minipass@^3.1.1, minipass@^3.1.3, minipass@^3.1.6:
+ version "3.1.6"
+ resolved "https://registry.yarnpkg.com/minipass/-/minipass-3.1.6.tgz#3b8150aa688a711a1521af5e8779c1d3bb4f45ee"
+ integrity sha512-rty5kpw9/z8SX9dmxblFA6edItUmwJgMeYDZRrwlIVN27i8gysGbznJwUggw2V/FVqFSDdWy040ZPS811DYAqQ==
+ dependencies:
+ yallist "^4.0.0"
+
+minizlib@^2.0.0, 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==
+ dependencies:
+ minipass "^3.0.0"
+ yallist "^4.0.0"
+
mixin-deep@^1.2.0:
version "1.3.2"
resolved "https://registry.yarnpkg.com/mixin-deep/-/mixin-deep-1.3.2.tgz#1120b43dc359a785dce65b55b82e257ccf479566"
@@ -9246,7 +10289,16 @@ mkdirp-classic@^0.5.2, mkdirp-classic@^0.5.3:
resolved "https://registry.yarnpkg.com/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz#fa10c9115cc6d8865be221ba47ee9bed78601113"
integrity sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==
-mkdirp@1.x, mkdirp@^1.0.4:
+mkdirp-infer-owner@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/mkdirp-infer-owner/-/mkdirp-infer-owner-2.0.0.tgz#55d3b368e7d89065c38f32fd38e638f0ab61d316"
+ integrity sha512-sdqtiFt3lkOaYvTXSRIUjkIdPTcxgv5+fgqYE/5qgwdw12cOrAuzzgzvVExIkH/ul1oeHN3bCLOWSG3XOqbKKw==
+ dependencies:
+ chownr "^2.0.0"
+ infer-owner "^1.0.4"
+ mkdirp "^1.0.3"
+
+mkdirp@1.x, mkdirp@^1.0.3, mkdirp@^1.0.4:
version "1.0.4"
resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-1.0.4.tgz#3eb5ed62622756d79a5f0e2a221dfebad75c2f7e"
integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==
@@ -9266,7 +10318,7 @@ 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.0.0, 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==
@@ -9276,11 +10328,25 @@ mustache@^4.2.0:
resolved "https://registry.yarnpkg.com/mustache/-/mustache-4.2.0.tgz#e5892324d60a12ec9c2a73359edca52972bf6f64"
integrity sha512-71ippSywq5Yb7/tVYyGbkBggbU8H3u5Rz56fH60jGFgr8uHwxs+aSKeqmluIVzM0m0kB7xQjKS6qPfd0b2ZoqQ==
-mute-stream@0.0.8:
+mute-stream@0.0.8, mute-stream@~0.0.4:
version "0.0.8"
resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.8.tgz#1630c42b2251ff81e2a283de96a5497ea92e5e0d"
integrity sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==
+nano-css@^5.3.1:
+ version "5.3.5"
+ resolved "https://registry.yarnpkg.com/nano-css/-/nano-css-5.3.5.tgz#3075ea29ffdeb0c7cb6d25edb21d8f7fa8e8fe8e"
+ integrity sha512-vSB9X12bbNu4ALBu7nigJgRViZ6ja3OU7CeuiV1zMIbXOdmkLahgtPmh3GBOlDxbKY0CitqlPdOReGlBLSp+yg==
+ dependencies:
+ css-tree "^1.1.2"
+ csstype "^3.0.6"
+ fastest-stable-stringify "^2.0.2"
+ inline-style-prefixer "^6.0.0"
+ rtl-css-js "^1.14.0"
+ sourcemap-codec "^1.4.8"
+ stacktrace-js "^2.0.2"
+ stylis "^4.0.6"
+
nanoid@^3.3.4:
version "3.3.4"
resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.4.tgz#730b67e3cd09e2deacf03c027c81c9d9dbc5e8ab"
@@ -9311,14 +10377,14 @@ napi-build-utils@^1.0.1:
natural-compare@^1.4.0:
version "1.4.0"
resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7"
- integrity sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=
+ integrity sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==
natural-orderby@^2.0.3:
version "2.0.3"
resolved "https://registry.yarnpkg.com/natural-orderby/-/natural-orderby-2.0.3.tgz#8623bc518ba162f8ff1cdb8941d74deb0fdcc016"
integrity sha512-p7KTHxU0CUrcOXe62Zfrb5Z13nLvPhSWR/so3kFulUQU0sgUll2Z0LwpsLN351eOOD+hRGu/F1g+6xDfPeD++Q==
-negotiator@0.6.3:
+negotiator@0.6.3, negotiator@^0.6.2, 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==
@@ -9328,10 +10394,9 @@ nested-error-stacks@^2.0.0, nested-error-stacks@^2.1.0:
resolved "https://registry.yarnpkg.com/nested-error-stacks/-/nested-error-stacks-2.1.1.tgz#26c8a3cee6cc05fbcf1e333cd2fc3e003326c0b5"
integrity sha512-9iN1ka/9zmX1ZvLV9ewJYEk9h7RyRRtqdK0woXcqohu8EWIerfPUjYJPg0ULy0UqP7cslmdGc8xKDJcojlKiaw==
-ngrok@^4.3.1:
+"ngrok@https://github.com/Shopify/ngrok#0d1b1621b998c28ab2bc50f45a897799c6def417":
version "4.3.1"
- resolved "https://registry.yarnpkg.com/ngrok/-/ngrok-4.3.1.tgz#d9e77b6d647bb1f49659601f89b31efac8478523"
- integrity sha512-s0joO2liKYiGTVARyzL8hfLIXAZT03GDK3oJqsZK6d61Es+HCx77j8E9ysUbtkMEyvBgYmIMr8taQNsvQt4/DQ==
+ resolved "https://github.com/Shopify/ngrok#0d1b1621b998c28ab2bc50f45a897799c6def417"
dependencies:
"@types/node" "^8.10.50"
extract-zip "^2.0.1"
@@ -9420,10 +10485,42 @@ node-forge@^0.10.0:
resolved "https://registry.yarnpkg.com/node-forge/-/node-forge-0.10.0.tgz#32dea2afb3e9926f02ee5ce8794902691a676bf3"
integrity sha512-PPmu8eEeG9saEUvI97fm4OYxXVB6bFvyNTyiUOBichBpFG8A1Ljw3bY62+5oOjDEMHRnd0Y7HQ+x7uzxOzC6JA==
+node-gyp@^8.4.1:
+ version "8.4.1"
+ resolved "https://registry.yarnpkg.com/node-gyp/-/node-gyp-8.4.1.tgz#3d49308fc31f768180957d6b5746845fbd429937"
+ integrity sha512-olTJRgUtAb/hOXG0E93wZDs5YiJlgbXxTwQAFHyNlRsXQnYzUaF2aGgujZbw+hR8aF4ZG/rST57bWMWD16jr9w==
+ dependencies:
+ env-paths "^2.2.0"
+ glob "^7.1.4"
+ graceful-fs "^4.2.6"
+ make-fetch-happen "^9.1.0"
+ nopt "^5.0.0"
+ npmlog "^6.0.0"
+ rimraf "^3.0.2"
+ semver "^7.3.5"
+ tar "^6.1.2"
+ which "^2.0.2"
+
+node-gyp@^9.0.0:
+ version "9.0.0"
+ resolved "https://registry.yarnpkg.com/node-gyp/-/node-gyp-9.0.0.tgz#e1da2067427f3eb5bb56820cb62bc6b1e4bd2089"
+ integrity sha512-Ma6p4s+XCTPxCuAMrOA/IJRmVy16R8Sdhtwl4PrCr7IBlj4cPawF0vg/l7nOT1jPbuNS7lIRJpBSvVsXwEZuzw==
+ dependencies:
+ env-paths "^2.2.0"
+ glob "^7.1.4"
+ graceful-fs "^4.2.6"
+ make-fetch-happen "^10.0.3"
+ nopt "^5.0.0"
+ npmlog "^6.0.0"
+ rimraf "^3.0.2"
+ semver "^7.3.5"
+ tar "^6.1.2"
+ which "^2.0.2"
+
node-int64@^0.4.0:
version "0.4.0"
resolved "https://registry.yarnpkg.com/node-int64/-/node-int64-0.4.0.tgz#87a9065cdb355d3182d8f94ce11188b825c68a3b"
- integrity sha1-h6kGXNs1XTGC2PlM4RGIuCXGijs=
+ integrity sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==
node-notifier@^8.0.0:
version "8.0.2"
@@ -9445,11 +10542,18 @@ node-releases@^2.0.3:
nomnom@^1.5.x:
version "1.8.1"
resolved "https://registry.yarnpkg.com/nomnom/-/nomnom-1.8.1.tgz#2151f722472ba79e50a76fc125bb8c8f2e4dc2a7"
- integrity sha1-IVH3Ikcrp55Qp2/BJbuMjy5Nwqc=
+ integrity sha512-5s0JxqhDx9/rksG2BTMVN1enjWSvPidpoSgViZU4ZXULyTe+7jxcCRLB6f42Z0l1xYJpleCBtSyY6Lwg3uu5CQ==
dependencies:
chalk "~0.4.0"
underscore "~1.6.0"
+nopt@^5.0.0:
+ version "5.0.0"
+ resolved "https://registry.yarnpkg.com/nopt/-/nopt-5.0.0.tgz#530942bb58a512fccafe53fe210f13a25355dc88"
+ integrity sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ==
+ dependencies:
+ abbrev "1"
+
normalize-package-data@^2.3.2, 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"
@@ -9470,15 +10574,25 @@ normalize-package-data@^3.0.2:
semver "^7.3.4"
validate-npm-package-license "^3.0.1"
+normalize-package-data@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-4.0.0.tgz#1122d5359af21d4cd08718b92b058a658594177c"
+ integrity sha512-m+GL22VXJKkKbw62ZaBBjv8u6IE3UI4Mh5QakIqs3fWiKe0Xyi6L97hakwZK41/LD4R/2ly71Bayx0NLMwLA/g==
+ dependencies:
+ hosted-git-info "^5.0.0"
+ is-core-module "^2.8.1"
+ semver "^7.3.5"
+ validate-npm-package-license "^3.0.4"
+
normalize-path@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-1.0.0.tgz#32d0e472f91ff345701c15a8311018d3b0a90379"
- integrity sha1-MtDkcvkf80VwHBWoMRAY07CpA3k=
+ integrity sha512-7WyT0w8jhpDStXRq5836AMmihQwq2nrUVQrgjvUo/p/NZf9uy/MeJ246lBJVmWuYXMlJuG9BNZHF0hWjfTbQUA==
normalize-path@^2.1.1:
version "2.1.1"
resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-2.1.1.tgz#1ab28b556e198363a8c1a6f7e6fa20137fe6aed9"
- integrity sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=
+ integrity sha512-3pKJwH184Xo/lnH6oyP1q2pMd7HcypqqmRs91/6/i2CGtWwIKGCkOOMTm/zXbgTEWHw1uNpNi/igc3ePOYHb6w==
dependencies:
remove-trailing-separator "^1.0.1"
@@ -9490,7 +10604,7 @@ normalize-path@^3.0.0, normalize-path@~3.0.0:
normalize-range@^0.1.2:
version "0.1.2"
resolved "https://registry.yarnpkg.com/normalize-range/-/normalize-range-0.1.2.tgz#2d10c06bdfd312ea9777695a4d28439456b75942"
- integrity sha1-LRDAa9/TEuqXd2laTShDlFa3WUI=
+ integrity sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==
normalize-url@^4.1.0:
version "4.5.1"
@@ -9502,6 +10616,82 @@ normalize-url@^6.0.1:
resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-6.1.0.tgz#40d0885b535deffe3f3147bec877d05fe4c5668a"
integrity sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==
+npm-audit-report@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/npm-audit-report/-/npm-audit-report-3.0.0.tgz#1bf3e531208b5f77347c8d00c3d9badf5be30cd6"
+ integrity sha512-tWQzfbwz1sc4244Bx2BVELw0EmZlCsCF0X93RDcmmwhonCsPMoEviYsi+32R+mdRvOWXolPce9zo64n2xgPESw==
+ dependencies:
+ chalk "^4.0.0"
+
+npm-bundled@^1.1.1, npm-bundled@^1.1.2:
+ version "1.1.2"
+ resolved "https://registry.yarnpkg.com/npm-bundled/-/npm-bundled-1.1.2.tgz#944c78789bd739035b70baa2ca5cc32b8d860bc1"
+ integrity sha512-x5DHup0SuyQcmL3s7Rx/YQ8sbw/Hzg0rj48eN0dV7hf5cmQq5PXIeioroH3raV1QC1yh3uTYuMThvEQF3iKgGQ==
+ dependencies:
+ npm-normalize-package-bin "^1.0.1"
+
+npm-install-checks@^5.0.0:
+ version "5.0.0"
+ resolved "https://registry.yarnpkg.com/npm-install-checks/-/npm-install-checks-5.0.0.tgz#5ff27d209a4e3542b8ac6b0c1db6063506248234"
+ integrity sha512-65lUsMI8ztHCxFz5ckCEC44DRvEGdZX5usQFriauxHEwt7upv1FKaQEmAtU0YnOAdwuNWCmk64xYiQABNrEyLA==
+ dependencies:
+ semver "^7.1.1"
+
+npm-normalize-package-bin@^1.0.0, npm-normalize-package-bin@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/npm-normalize-package-bin/-/npm-normalize-package-bin-1.0.1.tgz#6e79a41f23fd235c0623218228da7d9c23b8f6e2"
+ integrity sha512-EPfafl6JL5/rU+ot6P3gRSCpPDW5VmIzX959Ob1+ySFUuuYHWHekXpwdUZcKP5C+DS4GEtdJluwBjnsNDl+fSA==
+
+npm-package-arg@^9.0.0, npm-package-arg@^9.0.1, npm-package-arg@^9.0.2:
+ version "9.0.2"
+ resolved "https://registry.yarnpkg.com/npm-package-arg/-/npm-package-arg-9.0.2.tgz#f3ef7b1b3b02e82564af2d5228b4c36567dcd389"
+ integrity sha512-v/miORuX8cndiOheW8p2moNuPJ7QhcFh9WGlTorruG8hXSA23vMTEp5hTCmDxic0nD8KHhj/NQgFuySD3GYY3g==
+ dependencies:
+ hosted-git-info "^5.0.0"
+ semver "^7.3.5"
+ validate-npm-package-name "^4.0.0"
+
+npm-packlist@^5.1.0:
+ version "5.1.0"
+ resolved "https://registry.yarnpkg.com/npm-packlist/-/npm-packlist-5.1.0.tgz#f3fd52903a021009913a133732022132eb355ce7"
+ integrity sha512-a04sqF6FbkyOAFA19AA0e94gS7Et5T2/IMj3VOT9nOF2RaRdVPQ1Q17Fb/HaDRFs+gbC7HOmhVZ29adpWgmDZg==
+ dependencies:
+ glob "^8.0.1"
+ ignore-walk "^5.0.1"
+ npm-bundled "^1.1.2"
+ npm-normalize-package-bin "^1.0.1"
+
+npm-pick-manifest@^7.0.0, npm-pick-manifest@^7.0.1:
+ version "7.0.1"
+ resolved "https://registry.yarnpkg.com/npm-pick-manifest/-/npm-pick-manifest-7.0.1.tgz#76dda30a7cd6b99be822217a935c2f5eacdaca4c"
+ integrity sha512-IA8+tuv8KujbsbLQvselW2XQgmXWS47t3CB0ZrzsRZ82DbDfkcFunOaPm4X7qNuhMfq+FmV7hQT4iFVpHqV7mg==
+ dependencies:
+ npm-install-checks "^5.0.0"
+ npm-normalize-package-bin "^1.0.1"
+ npm-package-arg "^9.0.0"
+ semver "^7.3.5"
+
+npm-profile@^6.0.3:
+ version "6.0.3"
+ resolved "https://registry.yarnpkg.com/npm-profile/-/npm-profile-6.0.3.tgz#f4a11ce09467f00fa0832db7f27992e55fdfc94b"
+ integrity sha512-TVeHhnol2Iemud+Sr70/uqax5LnLJ9y361w+m5+Z7WYV2B1t6FhRDxDu72+yYYTvsgshkhnXEqbPjuD87kYXfA==
+ dependencies:
+ npm-registry-fetch "^13.0.1"
+ proc-log "^2.0.0"
+
+npm-registry-fetch@^13.0.0, npm-registry-fetch@^13.0.1, npm-registry-fetch@^13.1.1:
+ version "13.1.1"
+ resolved "https://registry.yarnpkg.com/npm-registry-fetch/-/npm-registry-fetch-13.1.1.tgz#26dc4b26d0a545886e807748032ba2aefaaae96b"
+ integrity sha512-5p8rwe6wQPLJ8dMqeTnA57Dp9Ox6GH9H60xkyJup07FmVlu3Mk7pf/kIIpl9gaN5bM8NM+UUx3emUWvDNTt39w==
+ dependencies:
+ make-fetch-happen "^10.0.6"
+ minipass "^3.1.6"
+ minipass-fetch "^2.0.3"
+ minipass-json-stream "^1.0.1"
+ minizlib "^2.1.2"
+ npm-package-arg "^9.0.1"
+ proc-log "^2.0.0"
+
npm-run-all@^4.1.5:
version "4.1.5"
resolved "https://registry.yarnpkg.com/npm-run-all/-/npm-run-all-4.1.5.tgz#04476202a15ee0e2e214080861bff12a51d98fba"
@@ -9520,7 +10710,7 @@ npm-run-all@^4.1.5:
npm-run-path@^2.0.0:
version "2.0.2"
resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-2.0.2.tgz#35a9232dfa35d7067b4cb2ddf2357b1871536c5f"
- integrity sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=
+ integrity sha512-lJxZYlT4DW/bRUtFh1MQIWqmLwQfAxnqWG4HhEdjMlkrJYnJn0Jrr2u3mgxqaWsdiBc76TYkTG/mhrnYTuzfHw==
dependencies:
path-key "^2.0.0"
@@ -9531,6 +10721,87 @@ npm-run-path@^4.0.0, npm-run-path@^4.0.1:
dependencies:
path-key "^3.0.0"
+npm-user-validate@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/npm-user-validate/-/npm-user-validate-1.0.1.tgz#31428fc5475fe8416023f178c0ab47935ad8c561"
+ integrity sha512-uQwcd/tY+h1jnEaze6cdX/LrhWhoBxfSknxentoqmIuStxUExxjWd3ULMLFPiFUrZKbOVMowH6Jq2FRWfmhcEw==
+
+npm@^8.12.1:
+ version "8.12.1"
+ resolved "https://registry.yarnpkg.com/npm/-/npm-8.12.1.tgz#624064fa7a8e0730223f6b2effe087e7127d567b"
+ integrity sha512-0yOlhfgu1UzP6UijnaFuIS2bES2H9D90EA5OVsf2iOZw7VBrjntXKEwKfCaFA6vMVWkCP8qnPwCxxPdnDVwlNw==
+ dependencies:
+ "@isaacs/string-locale-compare" "^1.1.0"
+ "@npmcli/arborist" "^5.0.4"
+ "@npmcli/ci-detect" "^2.0.0"
+ "@npmcli/config" "^4.1.0"
+ "@npmcli/fs" "^2.1.0"
+ "@npmcli/map-workspaces" "^2.0.3"
+ "@npmcli/package-json" "^2.0.0"
+ "@npmcli/run-script" "^3.0.1"
+ abbrev "~1.1.1"
+ archy "~1.0.0"
+ cacache "^16.1.0"
+ chalk "^4.1.2"
+ chownr "^2.0.0"
+ cli-columns "^4.0.0"
+ cli-table3 "^0.6.2"
+ columnify "^1.6.0"
+ fastest-levenshtein "^1.0.12"
+ glob "^8.0.1"
+ graceful-fs "^4.2.10"
+ hosted-git-info "^5.0.0"
+ ini "^3.0.0"
+ init-package-json "^3.0.2"
+ is-cidr "^4.0.2"
+ json-parse-even-better-errors "^2.3.1"
+ libnpmaccess "^6.0.2"
+ libnpmdiff "^4.0.2"
+ libnpmexec "^4.0.2"
+ libnpmfund "^3.0.1"
+ libnpmhook "^8.0.2"
+ libnpmorg "^4.0.2"
+ libnpmpack "^4.0.2"
+ libnpmpublish "^6.0.2"
+ libnpmsearch "^5.0.2"
+ libnpmteam "^4.0.2"
+ libnpmversion "^3.0.1"
+ make-fetch-happen "^10.1.6"
+ minipass "^3.1.6"
+ minipass-pipeline "^1.2.4"
+ mkdirp "^1.0.4"
+ mkdirp-infer-owner "^2.0.0"
+ ms "^2.1.2"
+ node-gyp "^9.0.0"
+ nopt "^5.0.0"
+ npm-audit-report "^3.0.0"
+ npm-install-checks "^5.0.0"
+ npm-package-arg "^9.0.2"
+ npm-pick-manifest "^7.0.1"
+ npm-profile "^6.0.3"
+ npm-registry-fetch "^13.1.1"
+ npm-user-validate "^1.0.1"
+ npmlog "^6.0.2"
+ opener "^1.5.2"
+ pacote "^13.6.0"
+ parse-conflict-json "^2.0.2"
+ proc-log "^2.0.1"
+ qrcode-terminal "^0.12.0"
+ read "~1.0.7"
+ read-package-json "^5.0.1"
+ read-package-json-fast "^2.0.3"
+ readdir-scoped-modules "^1.1.0"
+ rimraf "^3.0.2"
+ semver "^7.3.7"
+ ssri "^9.0.1"
+ tar "^6.1.11"
+ text-table "~0.2.0"
+ tiny-relative-date "^1.3.0"
+ treeverse "^2.0.0"
+ validate-npm-package-name "^4.0.0"
+ which "^2.0.2"
+ write-file-atomic "^4.0.1"
+
npmlog@^4.0.1:
version "4.1.2"
resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-4.1.2.tgz#08a7f2a8bf734604779a9efa4ad5cc717abb954b"
@@ -9541,6 +10812,16 @@ npmlog@^4.0.1:
gauge "~2.7.3"
set-blocking "~2.0.0"
+npmlog@^6.0.0, npmlog@^6.0.2:
+ version "6.0.2"
+ resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-6.0.2.tgz#c8166017a42f2dea92d6453168dd865186a70830"
+ integrity sha512-/vBvz5Jfr9dT/aFWd0FIRf+T/Q2WBsLENygUaFUqstqsycmZAP/t5BvFJTK0viFmSUxiUKTUplWy5vt+rvKIxg==
+ dependencies:
+ are-we-there-yet "^3.0.0"
+ console-control-strings "^1.1.0"
+ gauge "^4.0.3"
+ set-blocking "^2.0.0"
+
nullthrows@^1.1.1:
version "1.1.1"
resolved "https://registry.yarnpkg.com/nullthrows/-/nullthrows-1.1.1.tgz#7818258843856ae971eae4208ad7d7eb19a431b1"
@@ -9549,7 +10830,7 @@ nullthrows@^1.1.1:
number-is-nan@^1.0.0:
version "1.0.1"
resolved "https://registry.yarnpkg.com/number-is-nan/-/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d"
- integrity sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=
+ integrity sha512-4jbtZXNAsfZbAHiiqjLPBiCl16dES1zI4Hpzzxw61Tk+loF+sBDBKx1ICKKKwIqQ7M0mFn1TmkN7euSncWgHiQ==
nwsapi@^2.2.0:
version "2.2.0"
@@ -9559,12 +10840,12 @@ nwsapi@^2.2.0:
object-assign@^4.1.0, object-assign@^4.1.1:
version "4.1.1"
resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863"
- integrity sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=
+ integrity sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==
object-copy@^0.1.0:
version "0.1.0"
resolved "https://registry.yarnpkg.com/object-copy/-/object-copy-0.1.0.tgz#7e7d858b781bd7c991a41ba975ed3812754e998c"
- integrity sha1-fn2Fi3gb18mRpBupde04EnVOmYw=
+ integrity sha512-79LYn6VAb63zgtmAteVOWo9Vdj71ZVBy3Pbse+VqxDpEP83XuujMrGqHIwAXJ5I/aM0zU7dIyIAhifVTPrNItQ==
dependencies:
copy-descriptor "^0.1.0"
define-property "^0.2.5"
@@ -9588,7 +10869,7 @@ object-keys@^1.0.9, object-keys@^1.1.1:
object-keys@~0.4.0:
version "0.4.0"
resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-0.4.0.tgz#28a6aae7428dd2c3a92f3d95f21335dd204e0336"
- integrity sha1-KKaq50KN0sOpLz2V8hM13SBOAzY=
+ integrity sha512-ncrLw+X55z7bkl5PnUvHwFK9FcGuFYo9gtjws2XtSzL+aZ8tm830P60WJ0dSmFVaSalWieW5MD7kEdnXda9yJw==
object-treeify@^1.1.33, object-treeify@^1.1.4:
version "1.1.33"
@@ -9598,7 +10879,7 @@ object-treeify@^1.1.33, object-treeify@^1.1.4:
object-visit@^1.0.0:
version "1.0.1"
resolved "https://registry.yarnpkg.com/object-visit/-/object-visit-1.0.1.tgz#f79c4493af0c5377b59fe39d395e41042dd045bb"
- integrity sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=
+ integrity sha512-GBaMwwAVK9qbQN3Scdo0OyvgPW7l3lnaVMj84uTOZlswkX0KpF6fyDBJhtTthf7pymztoN36/KEr1DyhF96zEA==
dependencies:
isobject "^3.0.0"
@@ -9641,7 +10922,7 @@ object.hasown@^1.1.1:
object.pick@^1.3.0:
version "1.3.0"
resolved "https://registry.yarnpkg.com/object.pick/-/object.pick-1.3.0.tgz#87a10ac4c1694bd2e1cbf53591a66141fb5dd747"
- integrity sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=
+ integrity sha512-tqa/UMy/CCoYmj+H5qc07qvSL9dqcs/WZENZ1JbtWBlATP+iVOe778gE6MSijnyCnORzDuX6hU+LA4SZ09YjFQ==
dependencies:
isobject "^3.0.1"
@@ -9664,7 +10945,7 @@ on-finished@2.4.1:
on-finished@~2.3.0:
version "2.3.0"
resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.3.0.tgz#20f1336481b083cd75337992a16971aa2d906947"
- integrity sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=
+ integrity sha512-ikqdkGAAyf/X/gPhXGvfgAytDZtDbr+bkNUJ0N9h5MI/dmdgCs3l6hoHrcUv41sRKew3jIwrp4qQDXiK99Utww==
dependencies:
ee-first "1.1.1"
@@ -9676,14 +10957,14 @@ on-headers@~1.0.2:
once@^1.3.0, once@^1.3.1, once@^1.3.3, once@^1.4.0:
version "1.4.0"
resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1"
- integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E=
+ integrity sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==
dependencies:
wrappy "1"
onetime@^2.0.0:
version "2.0.1"
resolved "https://registry.yarnpkg.com/onetime/-/onetime-2.0.1.tgz#067428230fd67443b2794b22bba528b6867962d4"
- integrity sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=
+ integrity sha512-oyyPpiMaKARvvcgip+JV+7zci5L8D1W9RZIz2l1o08AM3pfspitVWnPt3mzHcBPp12oYMTy0pqrFs/C+m3EwsQ==
dependencies:
mimic-fn "^1.0.0"
@@ -9708,6 +10989,11 @@ opencollective-postinstall@^2.0.0:
resolved "https://registry.yarnpkg.com/opencollective-postinstall/-/opencollective-postinstall-2.0.3.tgz#7a0fff978f6dbfa4d006238fbac98ed4198c3259"
integrity sha512-8AV/sCtuzUeTo8gQK5qDZzARrulB3egtLzFgteqB2tcT4Mw7B8Kt7JcDHmltjz6FOAHsvTevk70gZEbhM4ZS9Q==
+opener@^1.5.2:
+ version "1.5.2"
+ resolved "https://registry.yarnpkg.com/opener/-/opener-1.5.2.tgz#5d37e1f35077b9dcac4301372271afdeb2a13598"
+ integrity sha512-ur5UIdyw5Y7yEj9wLzhqXiy6GZ3Mwx0yGI+5sMn2r0N0v3cKJvUmFH5yPP+WXh9e0xfyzyJX95D8l088DNFj7A==
+
optionator@^0.8.1:
version "0.8.3"
resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.8.3.tgz#84fa1d036fe9d3c7e21d99884b601167ec8fb495"
@@ -9750,7 +11036,7 @@ ora@^5.4.1:
os-tmpdir@~1.0.2:
version "1.0.2"
resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274"
- integrity sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=
+ integrity sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==
outdent@^0.5.0:
version "0.5.0"
@@ -9803,7 +11089,7 @@ p-filter@^3.0.0:
p-finally@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae"
- integrity sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=
+ integrity sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow==
p-limit@3.1.0, p-limit@^3.0.2:
version "3.1.0"
@@ -9888,6 +11174,33 @@ package-json@^6.3.0:
registry-url "^5.0.0"
semver "^6.2.0"
+pacote@^13.0.3, pacote@^13.0.5, pacote@^13.5.0, pacote@^13.6.0:
+ version "13.6.0"
+ resolved "https://registry.yarnpkg.com/pacote/-/pacote-13.6.0.tgz#79ea3d3ae5a2b29e2994dcf18d75494e8d888032"
+ integrity sha512-zHmuCwG4+QKnj47LFlW3LmArwKoglx2k5xtADiMCivVWPgNRP5QyLDGOIjGjwOe61lhl1rO63m/VxT16pEHLWg==
+ dependencies:
+ "@npmcli/git" "^3.0.0"
+ "@npmcli/installed-package-contents" "^1.0.7"
+ "@npmcli/promise-spawn" "^3.0.0"
+ "@npmcli/run-script" "^3.0.1"
+ cacache "^16.0.0"
+ chownr "^2.0.0"
+ fs-minipass "^2.1.0"
+ infer-owner "^1.0.4"
+ minipass "^3.1.6"
+ mkdirp "^1.0.4"
+ npm-package-arg "^9.0.0"
+ npm-packlist "^5.1.0"
+ npm-pick-manifest "^7.0.0"
+ npm-registry-fetch "^13.0.1"
+ proc-log "^2.0.0"
+ promise-retry "^2.0.1"
+ read-package-json "^5.0.0"
+ read-package-json-fast "^2.0.3"
+ rimraf "^3.0.2"
+ ssri "^9.0.0"
+ tar "^6.1.11"
+
param-case@^3.0.4:
version "3.0.4"
resolved "https://registry.yarnpkg.com/param-case/-/param-case-3.0.4.tgz#7d17fe4aa12bde34d4a77d91acfb6219caad01c5"
@@ -9906,7 +11219,16 @@ parent-module@^1.0.0:
parse-cache-control@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/parse-cache-control/-/parse-cache-control-1.0.1.tgz#8eeab3e54fa56920fe16ba38f77fa21aacc2d74e"
- integrity sha1-juqz5U+laSD+Fro493+iGqzC104=
+ integrity sha512-60zvsJReQPX5/QP0Kzfd/VrpjScIQ7SHBW6bFCYfEP+fp0Eppr1SHhIO5nd1PjZtvclzSzES9D/p5nFJurwfWg==
+
+parse-conflict-json@^2.0.1, parse-conflict-json@^2.0.2:
+ version "2.0.2"
+ resolved "https://registry.yarnpkg.com/parse-conflict-json/-/parse-conflict-json-2.0.2.tgz#3d05bc8ffe07d39600dc6436c6aefe382033d323"
+ integrity sha512-jDbRGb00TAPFsKWCpZZOT93SxVP9nONOSgES3AevqRq/CHvavEBvKAjxX9p5Y5F0RZLxH9Ufd9+RwtCsa+lFDA==
+ dependencies:
+ json-parse-even-better-errors "^2.3.1"
+ just-diff "^5.0.1"
+ just-diff-apply "^5.2.0"
parse-english@^4.0.0:
version "4.2.0"
@@ -9933,7 +11255,7 @@ parse-entities@^2.0.0:
parse-filepath@^1.0.2:
version "1.0.2"
resolved "https://registry.yarnpkg.com/parse-filepath/-/parse-filepath-1.0.2.tgz#a632127f53aaf3d15876f5872f3ffac763d6c891"
- integrity sha1-pjISf1Oq89FYdvWHLz/6x2PWyJE=
+ integrity sha512-FwdRXKCohSVeXqwtYonZTXtbGJKrn+HNyWDYVcp5yuJlesTwNH4rsmRZ+GrKAPJ5bLpRxESMeS+Rl0VCHRvB2Q==
dependencies:
is-absolute "^1.0.0"
map-cache "^0.2.0"
@@ -9942,7 +11264,7 @@ parse-filepath@^1.0.2:
parse-json@^4.0.0:
version "4.0.0"
resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-4.0.0.tgz#be35f5425be1f7f6c747184f98a788cb99477ee0"
- integrity sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=
+ integrity sha512-aOIos8bujGN93/8Ox/jPLh7RwVnPEysynVFE+fQZyg6jKELEHwzgKdLRFHUgXJL6kylijVSBC4BvN9OmsB48Rw==
dependencies:
error-ex "^1.3.1"
json-parse-better-errors "^1.0.1"
@@ -9987,7 +11309,7 @@ pascal-case@^3.1.2:
pascalcase@^0.1.1:
version "0.1.1"
resolved "https://registry.yarnpkg.com/pascalcase/-/pascalcase-0.1.1.tgz#b363e55e8006ca6fe21784d2db22bd15d7917f14"
- integrity sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=
+ integrity sha512-XHXfu/yOQRy9vYOtUDVMN60OEJjW013GoObG1o+xwQTpB9eYJX/BjXMsdW13ZDPruFhYYn0AG22w0xgQMwl3Nw==
password-prompt@^1.1.2:
version "1.1.2"
@@ -10008,12 +11330,12 @@ path-case@^3.0.4:
path-dirname@^1.0.0:
version "1.0.2"
resolved "https://registry.yarnpkg.com/path-dirname/-/path-dirname-1.0.2.tgz#cc33d24d525e099a5388c0336c6e32b9160609e0"
- integrity sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA=
+ integrity sha512-ALzNPpyNq9AqXMBjeymIjFDAkAFH06mHJH/cSBHAgU0s4vfpBn6b2nf8tiRLvagKD8RbTpq2FKTBg7cl9l3c7Q==
path-exists@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515"
- integrity sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=
+ integrity sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==
path-exists@^4.0.0:
version "4.0.0"
@@ -10023,12 +11345,12 @@ path-exists@^4.0.0:
path-is-absolute@^1.0.0:
version "1.0.1"
resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f"
- integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18=
+ integrity sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==
path-key@^2.0.0, path-key@^2.0.1:
version "2.0.1"
resolved "https://registry.yarnpkg.com/path-key/-/path-key-2.0.1.tgz#411cadb574c5a140d3a4b1910d40d80cc9f40b40"
- integrity sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=
+ integrity sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw==
path-key@^3.0.0, path-key@^3.1.0:
version "3.1.1"
@@ -10043,12 +11365,12 @@ path-parse@^1.0.6, path-parse@^1.0.7:
path-root-regex@^0.1.0:
version "0.1.2"
resolved "https://registry.yarnpkg.com/path-root-regex/-/path-root-regex-0.1.2.tgz#bfccdc8df5b12dc52c8b43ec38d18d72c04ba96d"
- integrity sha1-v8zcjfWxLcUsi0PsONGNcsBLqW0=
+ integrity sha512-4GlJ6rZDhQZFE0DPVKh0e9jmZ5egZfxTkp7bcRDuPlJXbAwhxcl2dINPUAsjLdejqaLsCeg8axcLjIbvBjN4pQ==
path-root@^0.1.1:
version "0.1.1"
resolved "https://registry.yarnpkg.com/path-root/-/path-root-0.1.1.tgz#9a4a6814cac1c0cd73360a95f32083c8ea4745b7"
- integrity sha1-mkpoFMrBwM1zNgqV8yCDyOpHRbc=
+ integrity sha512-QLcPegTHF11axjfojBIoDygmS2E3Lf+8+jI6wOVmNVenrKSo3mFdSGiIgdSHenczw3wPtlVMQaFVwGmM7BJdtg==
dependencies:
path-root-regex "^0.1.0"
@@ -10077,14 +11399,14 @@ pathval@^1.1.1:
pause-stream@0.0.11:
version "0.0.11"
resolved "https://registry.yarnpkg.com/pause-stream/-/pause-stream-0.0.11.tgz#fe5a34b0cbce12b5aa6a2b403ee2e73b602f1445"
- integrity sha1-/lo0sMvOErWqaitAPuLnO2AvFEU=
+ integrity sha512-e3FBlXLmN/D1S+zHzanP4E/4Z60oFAa3O051qt1pxa7DEJWKAyil6upYVXCWadEnuoqa4Pkc9oUx9zsxYeRv8A==
dependencies:
through "~2.3"
pend@~1.2.0:
version "1.2.0"
resolved "https://registry.yarnpkg.com/pend/-/pend-1.2.0.tgz#7a57eb550a6783f9115331fcf4663d5c8e007a50"
- integrity sha1-elfrVQpng/kRUzH89GY9XI4AelA=
+ integrity sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==
picocolors@^1.0.0:
version "1.0.0"
@@ -10101,10 +11423,15 @@ pidtree@^0.3.0:
resolved "https://registry.yarnpkg.com/pidtree/-/pidtree-0.3.1.tgz#ef09ac2cc0533df1f3250ccf2c4d366b0d12114a"
integrity sha512-qQbW94hLHEqCg7nhby4yRC7G2+jYHY4Rguc2bjw7Uug4GIJuu1tvf2uHaZv5Q8zdt+WKJ6qK1FOI6amaWUo5FA==
+pify@^2.3.0:
+ version "2.3.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 sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=
+ integrity sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==
pify@^4.0.1:
version "4.0.1"
@@ -10157,7 +11484,130 @@ pluralize@^8.0.0:
posix-character-classes@^0.1.0:
version "0.1.1"
resolved "https://registry.yarnpkg.com/posix-character-classes/-/posix-character-classes-0.1.1.tgz#01eac0fe3b5af71a2a6c02feabb8c1fef7e00eab"
- integrity sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=
+ integrity sha512-xTgYBc3fuo7Yt7JbiuFxSYGToMoz8fLoE6TC9Wx1P/u+LfeThMOAqmuyECnlBaaJb+u1m9hHiXUEtwW4OzfUJg==
+
+postcss-attribute-case-insensitive@^5.0.1:
+ version "5.0.1"
+ resolved "https://registry.yarnpkg.com/postcss-attribute-case-insensitive/-/postcss-attribute-case-insensitive-5.0.1.tgz#86d323c77ab8896ed90500071c2c8329fba64fda"
+ integrity sha512-wrt2VndqSLJpyBRNz9OmJcgnhI9MaongeWgapdBuUMu2a/KNJ8SENesG4SdiTnQwGO9b1VKbTWYAfCPeokLqZQ==
+ dependencies:
+ postcss-selector-parser "^6.0.10"
+
+postcss-clamp@^4.1.0:
+ version "4.1.0"
+ resolved "https://registry.yarnpkg.com/postcss-clamp/-/postcss-clamp-4.1.0.tgz#7263e95abadd8c2ba1bd911b0b5a5c9c93e02363"
+ integrity sha512-ry4b1Llo/9zz+PKC+030KUnPITTJAHeOwjfAyyB60eT0AorGLdzp52s31OsPRHRf8NchkgFoG2y6fCfn1IV1Ow==
+ dependencies:
+ postcss-value-parser "^4.2.0"
+
+postcss-color-functional-notation@^4.2.3:
+ version "4.2.3"
+ resolved "https://registry.yarnpkg.com/postcss-color-functional-notation/-/postcss-color-functional-notation-4.2.3.tgz#23c9d73c76113b75473edcf66f443c6f1872bd0f"
+ integrity sha512-5fbr6FzFzjwHXKsVnkmEYrJYG8VNNzvD1tAXaPPWR97S6rhKI5uh2yOfV5TAzhDkZoq4h+chxEplFDc8GeyFtw==
+ dependencies:
+ postcss-value-parser "^4.2.0"
+
+postcss-color-hex-alpha@^8.0.3:
+ version "8.0.3"
+ resolved "https://registry.yarnpkg.com/postcss-color-hex-alpha/-/postcss-color-hex-alpha-8.0.3.tgz#61a0fd151d28b128aa6a8a21a2dad24eebb34d52"
+ integrity sha512-fESawWJCrBV035DcbKRPAVmy21LpoyiXdPTuHUfWJ14ZRjY7Y7PA6P4g8z6LQGYhU1WAxkTxjIjurXzoe68Glw==
+ dependencies:
+ postcss-value-parser "^4.2.0"
+
+postcss-color-rebeccapurple@^7.0.2:
+ version "7.0.2"
+ resolved "https://registry.yarnpkg.com/postcss-color-rebeccapurple/-/postcss-color-rebeccapurple-7.0.2.tgz#5d397039424a58a9ca628762eb0b88a61a66e079"
+ integrity sha512-SFc3MaocHaQ6k3oZaFwH8io6MdypkUtEy/eXzXEB1vEQlO3S3oDc/FSZA8AsS04Z25RirQhlDlHLh3dn7XewWw==
+ dependencies:
+ postcss-value-parser "^4.2.0"
+
+postcss-custom-media@^8.0.1:
+ version "8.0.2"
+ resolved "https://registry.yarnpkg.com/postcss-custom-media/-/postcss-custom-media-8.0.2.tgz#c8f9637edf45fef761b014c024cee013f80529ea"
+ integrity sha512-7yi25vDAoHAkbhAzX9dHx2yc6ntS4jQvejrNcC+csQJAXjj15e7VcWfMgLqBNAbOvqi5uIa9huOVwdHbf+sKqg==
+ dependencies:
+ postcss-value-parser "^4.2.0"
+
+postcss-custom-properties@^12.1.7:
+ version "12.1.7"
+ resolved "https://registry.yarnpkg.com/postcss-custom-properties/-/postcss-custom-properties-12.1.7.tgz#ca470fd4bbac5a87fd868636dafc084bc2a78b41"
+ integrity sha512-N/hYP5gSoFhaqxi2DPCmvto/ZcRDVjE3T1LiAMzc/bg53hvhcHOLpXOHb526LzBBp5ZlAUhkuot/bfpmpgStJg==
+ dependencies:
+ postcss-value-parser "^4.2.0"
+
+postcss-custom-selectors@^6.0.2:
+ version "6.0.3"
+ resolved "https://registry.yarnpkg.com/postcss-custom-selectors/-/postcss-custom-selectors-6.0.3.tgz#1ab4684d65f30fed175520f82d223db0337239d9"
+ integrity sha512-fgVkmyiWDwmD3JbpCmB45SvvlCD6z9CG6Ie6Iere22W5aHea6oWa7EM2bpnv2Fj3I94L3VbtvX9KqwSi5aFzSg==
+ dependencies:
+ postcss-selector-parser "^6.0.4"
+
+postcss-dir-pseudo-class@^6.0.4:
+ version "6.0.4"
+ resolved "https://registry.yarnpkg.com/postcss-dir-pseudo-class/-/postcss-dir-pseudo-class-6.0.4.tgz#9afe49ea631f0cb36fa0076e7c2feb4e7e3f049c"
+ integrity sha512-I8epwGy5ftdzNWEYok9VjW9whC4xnelAtbajGv4adql4FIF09rnrxnA9Y8xSHN47y7gqFIv10C5+ImsLeJpKBw==
+ dependencies:
+ postcss-selector-parser "^6.0.9"
+
+postcss-double-position-gradients@^3.1.1:
+ version "3.1.1"
+ resolved "https://registry.yarnpkg.com/postcss-double-position-gradients/-/postcss-double-position-gradients-3.1.1.tgz#a12cfdb7d11fa1a99ccecc747f0c19718fb37152"
+ integrity sha512-jM+CGkTs4FcG53sMPjrrGE0rIvLDdCrqMzgDC5fLI7JHDO7o6QG8C5TQBtExb13hdBdoH9C2QVbG4jo2y9lErQ==
+ dependencies:
+ "@csstools/postcss-progressive-custom-properties" "^1.1.0"
+ postcss-value-parser "^4.2.0"
+
+postcss-env-function@^4.0.6:
+ version "4.0.6"
+ resolved "https://registry.yarnpkg.com/postcss-env-function/-/postcss-env-function-4.0.6.tgz#7b2d24c812f540ed6eda4c81f6090416722a8e7a"
+ integrity sha512-kpA6FsLra+NqcFnL81TnsU+Z7orGtDTxcOhl6pwXeEq1yFPpRMkCDpHhrz8CFQDr/Wfm0jLiNQ1OsGGPjlqPwA==
+ dependencies:
+ postcss-value-parser "^4.2.0"
+
+postcss-focus-visible@^6.0.4:
+ version "6.0.4"
+ resolved "https://registry.yarnpkg.com/postcss-focus-visible/-/postcss-focus-visible-6.0.4.tgz#50c9ea9afa0ee657fb75635fabad25e18d76bf9e"
+ integrity sha512-QcKuUU/dgNsstIK6HELFRT5Y3lbrMLEOwG+A4s5cA+fx3A3y/JTq3X9LaOj3OC3ALH0XqyrgQIgey/MIZ8Wczw==
+ dependencies:
+ postcss-selector-parser "^6.0.9"
+
+postcss-focus-within@^5.0.4:
+ version "5.0.4"
+ resolved "https://registry.yarnpkg.com/postcss-focus-within/-/postcss-focus-within-5.0.4.tgz#5b1d2ec603195f3344b716c0b75f61e44e8d2e20"
+ integrity sha512-vvjDN++C0mu8jz4af5d52CB184ogg/sSxAFS+oUJQq2SuCe7T5U2iIsVJtsCp2d6R4j0jr5+q3rPkBVZkXD9fQ==
+ dependencies:
+ postcss-selector-parser "^6.0.9"
+
+postcss-font-variant@^5.0.0:
+ version "5.0.0"
+ resolved "https://registry.yarnpkg.com/postcss-font-variant/-/postcss-font-variant-5.0.0.tgz#efd59b4b7ea8bb06127f2d031bfbb7f24d32fa66"
+ integrity sha512-1fmkBaCALD72CK2a9i468mA/+tr9/1cBxRRMXOUaZqO43oWPR5imcyPjXwuv7PXbCid4ndlP5zWhidQVVa3hmA==
+
+postcss-gap-properties@^3.0.3:
+ version "3.0.3"
+ resolved "https://registry.yarnpkg.com/postcss-gap-properties/-/postcss-gap-properties-3.0.3.tgz#6401bb2f67d9cf255d677042928a70a915e6ba60"
+ integrity sha512-rPPZRLPmEKgLk/KlXMqRaNkYTUpE7YC+bOIQFN5xcu1Vp11Y4faIXv6/Jpft6FMnl6YRxZqDZG0qQOW80stzxQ==
+
+postcss-image-set-function@^4.0.6:
+ version "4.0.6"
+ resolved "https://registry.yarnpkg.com/postcss-image-set-function/-/postcss-image-set-function-4.0.6.tgz#bcff2794efae778c09441498f40e0c77374870a9"
+ integrity sha512-KfdC6vg53GC+vPd2+HYzsZ6obmPqOk6HY09kttU19+Gj1nC3S3XBVEXDHxkhxTohgZqzbUb94bKXvKDnYWBm/A==
+ dependencies:
+ postcss-value-parser "^4.2.0"
+
+postcss-import@^14.1.0:
+ version "14.1.0"
+ resolved "https://registry.yarnpkg.com/postcss-import/-/postcss-import-14.1.0.tgz#a7333ffe32f0b8795303ee9e40215dac922781f0"
+ integrity sha512-flwI+Vgm4SElObFVPpTIT7SU7R3qk2L7PyduMcokiaVKuWv9d/U+Gm/QAd8NDLuykTWTkcrjOeD2Pp1rMeBTGw==
+ dependencies:
+ postcss-value-parser "^4.0.0"
+ read-cache "^1.0.0"
+ resolve "^1.1.7"
+
+postcss-initial@^4.0.1:
+ version "4.0.1"
+ resolved "https://registry.yarnpkg.com/postcss-initial/-/postcss-initial-4.0.1.tgz#529f735f72c5724a0fb30527df6fb7ac54d7de42"
+ integrity sha512-0ueD7rPqX8Pn1xJIjay0AZeIuDoF+V+VvMt/uOnn+4ezUKhZM/NokDeP6DwMNyIoYByuN/94IQnt5FEkaN59xQ==
postcss-js@^4.0.0:
version "4.0.0"
@@ -10166,6 +11616,14 @@ postcss-js@^4.0.0:
dependencies:
camelcase-css "^2.0.1"
+postcss-lab-function@^4.2.0:
+ version "4.2.0"
+ resolved "https://registry.yarnpkg.com/postcss-lab-function/-/postcss-lab-function-4.2.0.tgz#e054e662c6480202f5760887ec1ae0d153357123"
+ integrity sha512-Zb1EO9DGYfa3CP8LhINHCcTTCTLI+R3t7AX2mKsDzdgVQ/GkCpHOTgOr6HBHslP7XDdVbqgHW5vvRPMdVANQ8w==
+ dependencies:
+ "@csstools/postcss-progressive-custom-properties" "^1.1.0"
+ postcss-value-parser "^4.2.0"
+
postcss-load-config@^3.1.4:
version "3.1.4"
resolved "https://registry.yarnpkg.com/postcss-load-config/-/postcss-load-config-3.1.4.tgz#1ab2571faf84bb078877e1d07905eabe9ebda855"
@@ -10174,6 +11632,16 @@ postcss-load-config@^3.1.4:
lilconfig "^2.0.5"
yaml "^1.10.2"
+postcss-logical@^5.0.4:
+ version "5.0.4"
+ resolved "https://registry.yarnpkg.com/postcss-logical/-/postcss-logical-5.0.4.tgz#ec75b1ee54421acc04d5921576b7d8db6b0e6f73"
+ integrity sha512-RHXxplCeLh9VjinvMrZONq7im4wjWGlRJAqmAVLXyZaXwfDWP73/oq4NdIp+OZwhQUMj0zjqDfM5Fj7qby+B4g==
+
+postcss-media-minmax@^5.0.0:
+ version "5.0.0"
+ resolved "https://registry.yarnpkg.com/postcss-media-minmax/-/postcss-media-minmax-5.0.0.tgz#7140bddec173e2d6d657edbd8554a55794e2a5b5"
+ integrity sha512-yDUvFf9QdFZTuCUg0g0uNSHVlJ5X1lSzDZjPSFaiCWvjgsvu8vEVxtahPrLMinIDEEGnx6cBe6iqdx5YWz08wQ==
+
postcss-nested@5.0.6:
version "5.0.6"
resolved "https://registry.yarnpkg.com/postcss-nested/-/postcss-nested-5.0.6.tgz#466343f7fc8d3d46af3e7dba3fcd47d052a945bc"
@@ -10181,7 +11649,109 @@ postcss-nested@5.0.6:
dependencies:
postcss-selector-parser "^6.0.6"
-postcss-selector-parser@^6.0.10, postcss-selector-parser@^6.0.6:
+postcss-nesting@^10.1.7:
+ version "10.1.8"
+ resolved "https://registry.yarnpkg.com/postcss-nesting/-/postcss-nesting-10.1.8.tgz#1675542cfedc3dc9621993f3abfdafa260c3a460"
+ integrity sha512-txdb3/idHYsBbNDFo1PFY0ExCgH5nfWi8G5lO49e6iuU42TydbODTzJgF5UuL5bhgeSlnAtDgfFTDG0Cl1zaSQ==
+ dependencies:
+ "@csstools/selector-specificity" "^2.0.0"
+ postcss-selector-parser "^6.0.10"
+
+postcss-opacity-percentage@^1.1.2:
+ version "1.1.2"
+ resolved "https://registry.yarnpkg.com/postcss-opacity-percentage/-/postcss-opacity-percentage-1.1.2.tgz#bd698bb3670a0a27f6d657cc16744b3ebf3b1145"
+ integrity sha512-lyUfF7miG+yewZ8EAk9XUBIlrHyUE6fijnesuz+Mj5zrIHIEw6KcIZSOk/elVMqzLvREmXB83Zi/5QpNRYd47w==
+
+postcss-overflow-shorthand@^3.0.3:
+ version "3.0.3"
+ resolved "https://registry.yarnpkg.com/postcss-overflow-shorthand/-/postcss-overflow-shorthand-3.0.3.tgz#ebcfc0483a15bbf1b27fdd9b3c10125372f4cbc2"
+ integrity sha512-CxZwoWup9KXzQeeIxtgOciQ00tDtnylYIlJBBODqkgS/PU2jISuWOL/mYLHmZb9ZhZiCaNKsCRiLp22dZUtNsg==
+
+postcss-page-break@^3.0.4:
+ version "3.0.4"
+ resolved "https://registry.yarnpkg.com/postcss-page-break/-/postcss-page-break-3.0.4.tgz#7fbf741c233621622b68d435babfb70dd8c1ee5f"
+ integrity sha512-1JGu8oCjVXLa9q9rFTo4MbeeA5FMe00/9C7lN4va606Rdb+HkxXtXsmEDrIraQ11fGz/WvKWa8gMuCKkrXpTsQ==
+
+postcss-place@^7.0.4:
+ version "7.0.4"
+ resolved "https://registry.yarnpkg.com/postcss-place/-/postcss-place-7.0.4.tgz#eb026650b7f769ae57ca4f938c1addd6be2f62c9"
+ integrity sha512-MrgKeiiu5OC/TETQO45kV3npRjOFxEHthsqGtkh3I1rPbZSbXGD/lZVi9j13cYh+NA8PIAPyk6sGjT9QbRyvSg==
+ dependencies:
+ postcss-value-parser "^4.2.0"
+
+postcss-preset-env@^7.6.0:
+ version "7.7.1"
+ resolved "https://registry.yarnpkg.com/postcss-preset-env/-/postcss-preset-env-7.7.1.tgz#ca416c15fd63fd44abe5dcd2890a34b0a664d2c8"
+ integrity sha512-1sx6+Nl1wMVJzaYLVaz4OAR6JodIN/Z1upmVqLwSPCLT6XyxrEoePgNMHPH08kseLe3z06i9Vfkt/32BYEKDeA==
+ dependencies:
+ "@csstools/postcss-cascade-layers" "^1.0.2"
+ "@csstools/postcss-color-function" "^1.1.0"
+ "@csstools/postcss-font-format-keywords" "^1.0.0"
+ "@csstools/postcss-hwb-function" "^1.0.1"
+ "@csstools/postcss-ic-unit" "^1.0.0"
+ "@csstools/postcss-is-pseudo-class" "^2.0.4"
+ "@csstools/postcss-normalize-display-values" "^1.0.0"
+ "@csstools/postcss-oklab-function" "^1.1.0"
+ "@csstools/postcss-progressive-custom-properties" "^1.3.0"
+ "@csstools/postcss-stepped-value-functions" "^1.0.0"
+ "@csstools/postcss-trigonometric-functions" "^1.0.1"
+ "@csstools/postcss-unset-value" "^1.0.1"
+ autoprefixer "^10.4.7"
+ browserslist "^4.20.3"
+ css-blank-pseudo "^3.0.3"
+ css-has-pseudo "^3.0.4"
+ css-prefers-color-scheme "^6.0.3"
+ cssdb "^6.6.3"
+ postcss-attribute-case-insensitive "^5.0.1"
+ postcss-clamp "^4.1.0"
+ postcss-color-functional-notation "^4.2.3"
+ postcss-color-hex-alpha "^8.0.3"
+ postcss-color-rebeccapurple "^7.0.2"
+ postcss-custom-media "^8.0.1"
+ postcss-custom-properties "^12.1.7"
+ postcss-custom-selectors "^6.0.2"
+ postcss-dir-pseudo-class "^6.0.4"
+ postcss-double-position-gradients "^3.1.1"
+ postcss-env-function "^4.0.6"
+ postcss-focus-visible "^6.0.4"
+ postcss-focus-within "^5.0.4"
+ postcss-font-variant "^5.0.0"
+ postcss-gap-properties "^3.0.3"
+ postcss-image-set-function "^4.0.6"
+ postcss-initial "^4.0.1"
+ postcss-lab-function "^4.2.0"
+ postcss-logical "^5.0.4"
+ postcss-media-minmax "^5.0.0"
+ postcss-nesting "^10.1.7"
+ postcss-opacity-percentage "^1.1.2"
+ postcss-overflow-shorthand "^3.0.3"
+ postcss-page-break "^3.0.4"
+ postcss-place "^7.0.4"
+ postcss-pseudo-class-any-link "^7.1.4"
+ postcss-replace-overflow-wrap "^4.0.0"
+ postcss-selector-not "^6.0.0"
+ postcss-value-parser "^4.2.0"
+
+postcss-pseudo-class-any-link@^7.1.4:
+ version "7.1.4"
+ resolved "https://registry.yarnpkg.com/postcss-pseudo-class-any-link/-/postcss-pseudo-class-any-link-7.1.4.tgz#ac72aac4fe11fc4a0a368691f8fd5fe89e95aba4"
+ integrity sha512-JxRcLXm96u14N3RzFavPIE9cRPuOqLDuzKeBsqi4oRk4vt8n0A7I0plFs/VXTg7U2n7g/XkQi0OwqTO3VWBfEg==
+ dependencies:
+ postcss-selector-parser "^6.0.10"
+
+postcss-replace-overflow-wrap@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/postcss-replace-overflow-wrap/-/postcss-replace-overflow-wrap-4.0.0.tgz#d2df6bed10b477bf9c52fab28c568b4b29ca4319"
+ integrity sha512-KmF7SBPphT4gPPcKZc7aDkweHiKEEO8cla/GjcBK+ckKxiZslIu3C4GCRW3DNfL0o7yW7kMQu9xlZ1kXRXLXtw==
+
+postcss-selector-not@^6.0.0:
+ version "6.0.0"
+ resolved "https://registry.yarnpkg.com/postcss-selector-not/-/postcss-selector-not-6.0.0.tgz#d100f273d345917246762300411b4d2e24905047"
+ integrity sha512-i/HI/VNd3V9e1WOLCwJsf9nePBRXqcGtVibcJ9FsVo0agfDEfsLSlFt94aYjY35wUNcdG0KrvdyjEr7It50wLQ==
+ dependencies:
+ postcss-selector-parser "^6.0.10"
+
+postcss-selector-parser@^6.0.10, postcss-selector-parser@^6.0.4, postcss-selector-parser@^6.0.6, postcss-selector-parser@^6.0.9:
version "6.0.10"
resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.0.10.tgz#79b61e2c0d1bfc2602d549e11d0876256f8df88d"
integrity sha512-IQ7TZdoaqbT+LCpShg46jnZVlhWD2w6iQYAcYXfHARZ7X1t/UGhhceQDs5X0cGqKvYlHNOuv7Oa1xmb0oQuA3w==
@@ -10189,12 +11759,12 @@ postcss-selector-parser@^6.0.10, postcss-selector-parser@^6.0.6:
cssesc "^3.0.0"
util-deprecate "^1.0.2"
-postcss-value-parser@^4.2.0:
+postcss-value-parser@^4.0.0, postcss-value-parser@^4.2.0:
version "4.2.0"
resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz#723c09920836ba6d3e5af019f92bc0971c02e514"
integrity sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==
-postcss@^8, postcss@^8.4.12, postcss@^8.4.13, postcss@^8.4.5:
+postcss@^8, postcss@^8.4.12, postcss@^8.4.13, postcss@^8.4.14, postcss@^8.4.5:
version "8.4.14"
resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.14.tgz#ee9274d5622b4858c1007a74d76e42e56fd21caf"
integrity sha512-E398TUmfAYFPBSdzgeieK2Y1+1cpdxJx8yXbK/m57nRhKSmk1GB2tO4lbLBtlkfPQTDKfe4Xqv1ASWPpayPEig==
@@ -10240,12 +11810,12 @@ prelude-ls@^1.2.1:
prelude-ls@~1.1.2:
version "1.1.2"
resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54"
- integrity sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=
+ integrity sha512-ESF23V4SKG6lVSGZgYNpbsiaAkdab6ZgOxe52p7+Kid3W3u3bxR4Vfd/o21dmN7jSt0IwgZ4v5MUd26FEtXE9w==
prepend-http@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/prepend-http/-/prepend-http-2.0.0.tgz#e92434bfa5ea8c19f41cdfd401d741a3c819d897"
- integrity sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc=
+ integrity sha512-ravE6m9Atw9Z/jjttRUZ+clIXogdghyZAuWJ3qEzjT+jI/dL1ifAqhZeC5VHzQp1MSt1+jxKkFNemj/iO7tVUA==
prettier-linter-helpers@^1.0.0:
version "1.0.0"
@@ -10286,18 +11856,46 @@ pretty-format@^27.0.0, pretty-format@^27.0.2, pretty-format@^27.5.1:
printable-characters@^1.0.42:
version "1.0.42"
resolved "https://registry.yarnpkg.com/printable-characters/-/printable-characters-1.0.42.tgz#3f18e977a9bd8eb37fcc4ff5659d7be90868b3d8"
- integrity sha1-Pxjpd6m9jrN/zE/1ZZ176Qhos9g=
+ integrity sha512-dKp+C4iXWK4vVYZmYSd0KBH5F/h1HoZRsbJ82AVKRO3PEo8L4lBS/vLwhVtpwwuYcoIsVY+1JYKR268yn480uQ==
+
+proc-log@^2.0.0, proc-log@^2.0.1:
+ version "2.0.1"
+ resolved "https://registry.yarnpkg.com/proc-log/-/proc-log-2.0.1.tgz#8f3f69a1f608de27878f91f5c688b225391cb685"
+ integrity sha512-Kcmo2FhfDTXdcbfDH76N7uBYHINxc/8GW7UAVuVP9I+Va3uHSerrnKV6dLooga/gh7GlgzuCCr/eoldnL1muGw==
process-nextick-args@~1.0.6:
version "1.0.7"
resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-1.0.7.tgz#150e20b756590ad3f91093f25a4f2ad8bff30ba3"
- integrity sha1-FQ4gt1ZZCtP5EJPyWk8q2L/zC6M=
+ integrity sha512-yN0WQmuCX63LP/TMvAg31nvT6m4vDqJEiiv2CAZqWOGNWutc9DfDk1NPYYmKUFmaVM2UwDowH4u5AHWYP/jxKw==
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"
integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==
+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.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/promise-call-limit/-/promise-call-limit-1.0.1.tgz#4bdee03aeb85674385ca934da7114e9bcd3c6e24"
+ integrity sha512-3+hgaa19jzCGLuSCbieeRsu5C2joKfYn8pY6JAuXFRVfF4IO+L7UPpFWNTeWT9pM7uhskvbPPd/oEOktCn317Q==
+
+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"
+
promise@^7.1.1:
version "7.3.1"
resolved "https://registry.yarnpkg.com/promise/-/promise-7.3.1.tgz#064b72602b18f90f29192b8b1bc418ffd1ebd3bf"
@@ -10320,6 +11918,13 @@ prompts@^2.0.1:
kleur "^3.0.3"
sisteransi "^1.0.5"
+promzard@^0.3.0:
+ version "0.3.0"
+ resolved "https://registry.yarnpkg.com/promzard/-/promzard-0.3.0.tgz#26a5d6ee8c7dee4cb12208305acfb93ba382a9ee"
+ integrity sha512-JZeYqd7UAcHCwI+sTOeUDYkvEU+1bQ7iE0UT1MgB/tERkAPkesW46MrpIySzODi+owTjZtiF8Ay5j9m60KmMBw==
+ dependencies:
+ read "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"
@@ -10339,7 +11944,7 @@ property-information@^5.0.0:
pseudomap@^1.0.2:
version "1.0.2"
resolved "https://registry.yarnpkg.com/pseudomap/-/pseudomap-1.0.2.tgz#f052a28da70e618917ef0a8ac34c1ae5a68286b3"
- integrity sha1-8FKijacOYYkX7wqKw0wa5aaChrM=
+ integrity sha512-b/YwNhb8lk1Zz2+bXXpS/LK9OisiZZ1SNsSLxN1x2OXVEhW2Ckr/7mWE5vrC1ZTiJlD9g19jWszTmJsB+oEpFQ==
psl@^1.1.33:
version "1.8.0"
@@ -10349,7 +11954,7 @@ psl@^1.1.33:
pump-chain@1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/pump-chain/-/pump-chain-1.0.0.tgz#7d57d8d9ad8181ea808f5413c4f2bc1e786a5e37"
- integrity sha1-fVfY2a2BgeqAj1QTxPK8HnhqXjc=
+ integrity sha512-Gqkf1pfKMsowLBtWkhEJNxL5eU9EN1zs/bmWC/mKKODH3j6Xtxe4NH3873UeNzVCjDYWvi/BEXAmbviqRhm6pw==
dependencies:
bubble-stream-error "^1.0.0"
pump "^1.0.1"
@@ -10395,13 +12000,25 @@ pvutils@^1.1.3:
resolved "https://registry.yarnpkg.com/pvutils/-/pvutils-1.1.3.tgz#f35fc1d27e7cd3dfbd39c0826d173e806a03f5a3"
integrity sha512-pMpnA0qRdFp32b1sJl1wOJNxZLQ2cbQx+k6tjNtZ8CpvVhNqEPRgivZ2WOUev2YMajecdH7ctUPDvEe87nariQ==
-qs@6.10.3, qs@^6.4.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.10.3:
version "6.10.3"
resolved "https://registry.yarnpkg.com/qs/-/qs-6.10.3.tgz#d6cde1b2ffca87b5aa57889816c5f81535e22e8e"
integrity sha512-wr7M2E0OFRfIfJZjKGieI8lBKb7fRCH4Fv5KNPEs7gJ8jadvotdsS08PzOKR7opXhZ/Xkjtt3WF9g38drmyRqQ==
dependencies:
side-channel "^1.0.4"
+qs@^6.4.0:
+ version "6.10.5"
+ resolved "https://registry.yarnpkg.com/qs/-/qs-6.10.5.tgz#974715920a80ff6a262264acd2c7e6c2a53282b4"
+ integrity sha512-O5RlPh0VFtR78y79rgcgKK4wbAI0C5zGVLztOIdpWX6ep368q5Hv6XRxDvXuZ9q3C6v+e3n8UfZZJw7IIG27eQ==
+ dependencies:
+ side-channel "^1.0.4"
+
queue-microtask@^1.2.2:
version "1.2.3"
resolved "https://registry.yarnpkg.com/queue-microtask/-/queue-microtask-1.2.3.tgz#4929228bbc724dfac43e0efb058caf7b6cfb6243"
@@ -10510,6 +12127,31 @@ react-refresh@^0.13.0:
resolved "https://registry.yarnpkg.com/react-refresh/-/react-refresh-0.13.0.tgz#cbd01a4482a177a5da8d44c9755ebb1f26d5a1c1"
integrity sha512-XP8A9BT0CpRBD+NYLLeIhld/RqG9+gktUjW1FkE+Vm7OCinbG1SshcK5tb9ls4kzvjZr9mOQc7HYgBngEyPAXg==
+react-universal-interface@^0.6.2:
+ version "0.6.2"
+ resolved "https://registry.yarnpkg.com/react-universal-interface/-/react-universal-interface-0.6.2.tgz#5e8d438a01729a4dbbcbeeceb0b86be146fe2b3b"
+ integrity sha512-dg8yXdcQmvgR13RIlZbTRQOoUrDciFVoSBZILwjE2LFISxZZ8loVJKAkuzswl5js8BHda79bIb2b84ehU8IjXw==
+
+react-use@^17.4.0:
+ version "17.4.0"
+ resolved "https://registry.yarnpkg.com/react-use/-/react-use-17.4.0.tgz#cefef258b0a6c534a5c8021c2528ac6e1a4cdc6d"
+ integrity sha512-TgbNTCA33Wl7xzIJegn1HndB4qTS9u03QUwyNycUnXaweZkE4Kq2SB+Yoxx8qbshkZGYBDvUXbXWRUmQDcZZ/Q==
+ dependencies:
+ "@types/js-cookie" "^2.2.6"
+ "@xobotyi/scrollbar-width" "^1.9.5"
+ copy-to-clipboard "^3.3.1"
+ fast-deep-equal "^3.1.3"
+ fast-shallow-equal "^1.0.0"
+ js-cookie "^2.2.1"
+ nano-css "^5.3.1"
+ react-universal-interface "^0.6.2"
+ resize-observer-polyfill "^1.5.1"
+ screenfull "^5.1.0"
+ set-harmonic-interval "^1.0.1"
+ throttle-debounce "^3.0.1"
+ ts-easing "^0.2.0"
+ tslib "^2.1.0"
+
react@^18.1.0:
version "18.1.0"
resolved "https://registry.yarnpkg.com/react/-/react-18.1.0.tgz#6f8620382decb17fdc5cc223a115e2adbf104890"
@@ -10517,6 +12159,36 @@ react@^18.1.0:
dependencies:
loose-envify "^1.1.0"
+read-cache@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/read-cache/-/read-cache-1.0.0.tgz#e664ef31161166c9751cdbe8dbcf86b5fb58f774"
+ integrity sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==
+ dependencies:
+ pify "^2.3.0"
+
+read-cmd-shim@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/read-cmd-shim/-/read-cmd-shim-3.0.0.tgz#62b8c638225c61e6cc607f8f4b779f3b8238f155"
+ integrity sha512-KQDVjGqhZk92PPNRj9ZEXEuqg8bUobSKRw+q0YQ3TKI5xkce7bUJobL4Z/OtiEbAAv70yEpYIXp4iQ9L8oPVog==
+
+read-package-json-fast@^2.0.2, read-package-json-fast@^2.0.3:
+ version "2.0.3"
+ resolved "https://registry.yarnpkg.com/read-package-json-fast/-/read-package-json-fast-2.0.3.tgz#323ca529630da82cb34b36cc0b996693c98c2b83"
+ integrity sha512-W/BKtbL+dUjTuRL2vziuYhp76s5HZ9qQhd/dKfWIZveD0O40453QNyZhC0e63lqZrAQ4jiOapVoeJ7JrszenQQ==
+ dependencies:
+ json-parse-even-better-errors "^2.3.0"
+ npm-normalize-package-bin "^1.0.1"
+
+read-package-json@^5.0.0, read-package-json@^5.0.1:
+ version "5.0.1"
+ resolved "https://registry.yarnpkg.com/read-package-json/-/read-package-json-5.0.1.tgz#1ed685d95ce258954596b13e2e0e76c7d0ab4c26"
+ integrity sha512-MALHuNgYWdGW3gKzuNMuYtcSSZbGQm94fAp16xt8VsYTLBjUSc55bLMKe6gzpWue0Tfi6CBgwCSdDAqutGDhMg==
+ dependencies:
+ glob "^8.0.1"
+ json-parse-even-better-errors "^2.3.1"
+ normalize-package-data "^4.0.0"
+ npm-normalize-package-bin "^1.0.1"
+
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"
@@ -10538,7 +12210,7 @@ read-pkg-up@^8.0.0:
read-pkg@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-3.0.0.tgz#9cbc686978fee65d16c00e2b19c237fcf6e38389"
- integrity sha1-nLxoaXj+5l0WwA4rGcI3/Pbjg4k=
+ integrity sha512-BLq/cCO9two+lBgiTYNqD6GdtK8s4NpaWrl6/rCO9w0TUS8oJl7cmToOZfRYllKTISY6nt1U7jQ53brmKqY6BA==
dependencies:
load-json-file "^4.0.0"
normalize-package-data "^2.3.2"
@@ -10574,6 +12246,13 @@ read-yaml-file@^1.1.0:
pify "^4.0.1"
strip-bom "^3.0.0"
+read@1, read@^1.0.7, read@~1.0.7:
+ version "1.0.7"
+ resolved "https://registry.yarnpkg.com/read/-/read-1.0.7.tgz#b3da19bd052431a97671d44a42634adf710b40c4"
+ integrity sha512-rSOKNYUmaxy0om1BNjMN4ezNT6VKK+2xF4GBhc81mkH7L60i6dp8qPYrkndNLT3QPphoII3maL9PVC9XmhHwVQ==
+ dependencies:
+ mute-stream "~0.0.4"
+
readable-stream@^2.0.6, readable-stream@^2.2.2:
version "2.3.7"
resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.7.tgz#1eca1cf711aef814c04f62252a36a62f6cb23b57"
@@ -10587,7 +12266,7 @@ readable-stream@^2.0.6, readable-stream@^2.2.2:
string_decoder "~1.1.1"
util-deprecate "~1.0.1"
-readable-stream@^3.0.2, readable-stream@^3.1.1, readable-stream@^3.4.0:
+readable-stream@^3.0.2, readable-stream@^3.1.1, readable-stream@^3.4.0, readable-stream@^3.6.0:
version "3.6.0"
resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.0.tgz#337bbda3adc0706bd3e024426a286d4b4b2c9198"
integrity sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==
@@ -10599,7 +12278,7 @@ readable-stream@^3.0.2, readable-stream@^3.1.1, readable-stream@^3.4.0:
readable-stream@~1.0.17:
version "1.0.34"
resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-1.0.34.tgz#125820e34bc842d2f2aaafafe4c2916ee32c157c"
- integrity sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=
+ integrity sha512-ok1qVCJuRkNmvebYikljxJA/UEsKwLl2nI1OmaqAu4/UE+h0wKCHok4XkL/gvi39OacXvw59RJUOFUkDib2rHg==
dependencies:
core-util-is "~1.0.0"
inherits "~2.0.1"
@@ -10609,7 +12288,7 @@ readable-stream@~1.0.17:
readable-stream@~2.0.0:
version "2.0.6"
resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.0.6.tgz#8f90341e68a53ccc928788dacfcd11b36eb9b78e"
- integrity sha1-j5A0HmilPMySh4jaz80Rs265t44=
+ integrity sha512-TXcFfb63BQe1+ySzsHZI/5v1aJPCShfqvWJ64ayNImXMsN1Cd0YGk/wm8KB7/OeessgPc9QvS9Zou8QTkFzsLw==
dependencies:
core-util-is "~1.0.0"
inherits "~2.0.1"
@@ -10618,6 +12297,16 @@ readable-stream@~2.0.0:
string_decoder "~0.10.x"
util-deprecate "~1.0.1"
+readdir-scoped-modules@^1.1.0:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/readdir-scoped-modules/-/readdir-scoped-modules-1.1.0.tgz#8d45407b4f870a0dcaebc0e28670d18e74514309"
+ integrity sha512-asaikDeqAQg7JifRsZn1NJZXo9E+VwlyCfbkZhwyISinqk5zNS6266HS5kah6P0SaQKGF6SkNnZVHUzHFYxYDw==
+ dependencies:
+ debuglog "^1.0.1"
+ dezalgo "^1.0.0"
+ graceful-fs "^4.1.2"
+ once "^1.3.0"
+
readdirp@~3.6.0:
version "3.6.0"
resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.6.0.tgz#74a370bd857116e245b29cc97340cd431a02a6c7"
@@ -10644,7 +12333,7 @@ redent@^4.0.0:
redeyed@~2.1.0:
version "2.1.1"
resolved "https://registry.yarnpkg.com/redeyed/-/redeyed-2.1.1.tgz#8984b5815d99cb220469c99eeeffe38913e6cc0b"
- integrity sha1-iYS1gV2ZyyIEacme7v/jiRPmzAs=
+ integrity sha512-FNpGGo1DycYAdnrKFxCMmKYgo/mILAqtRYbkdQD8Ep/Hk2PQ5+aEAEx+IU713RTDmuBaH0c8P5ZozurNu5ObRQ==
dependencies:
esprima "~4.0.0"
@@ -10656,12 +12345,12 @@ redis-commands@1.7.0:
redis-errors@^1.0.0, redis-errors@^1.2.0:
version "1.2.0"
resolved "https://registry.yarnpkg.com/redis-errors/-/redis-errors-1.2.0.tgz#eb62d2adb15e4eaf4610c04afe1529384250abad"
- integrity sha1-62LSrbFeTq9GEMBK/hUpOEJQq60=
+ integrity sha512-1qny3OExCf0UvUV/5wpYKf2YwPcOqXzkwKKSmKHiE6ZMQs5heeE/c8eXK+PNllPvmjgAbfnsbpkGZWy8cBpn9w==
redis-parser@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/redis-parser/-/redis-parser-3.0.0.tgz#b66d828cdcafe6b4b8a428a7def4c6bcac31c8b4"
- integrity sha1-tm2CjNyv5rS4pCin3vTGvKwxyLQ=
+ integrity sha512-DJnGAeenTdpMEH6uAJRK/uiyEIH9WVsUmoLwzudwGJUwZPp80PDBWPHXSAGNPwNvIXAbe7MSUB1zQFugFml66A==
dependencies:
redis-errors "^1.0.0"
@@ -10841,7 +12530,7 @@ remedial@^1.0.7:
remove-trailing-separator@^1.0.1:
version "1.1.0"
resolved "https://registry.yarnpkg.com/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz#c24bce2a283adad5bc3f58e0d48249b92379d8ef"
- integrity sha1-wkvOKig62tW8P1jg1IJJuSN52O8=
+ integrity sha512-/hS+Y0u3aOfIETiaiirUFwDBDzmXPvO+jAfKTitUngIPzdKc6Z0LoFjM/CK5PL4C+eKwHohlHAb6H0VFfmmUsw==
remove-trailing-spaces@^1.0.6:
version "1.0.8"
@@ -10856,17 +12545,17 @@ repeat-element@^1.1.2:
repeat-string@^1.0.0, repeat-string@^1.5.0, repeat-string@^1.5.4, repeat-string@^1.6.1:
version "1.6.1"
resolved "https://registry.yarnpkg.com/repeat-string/-/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637"
- integrity sha1-jcrkcOHIirwtYA//Sndihtp15jc=
+ integrity sha512-PV0dzCYDNfRi1jCDbJzpW7jNNDRuCOG/jI5ctQcGKt/clZD+YcPS3yIlWuTJMmESC8aevCFmWJy5wjAFgNqN6w==
replaceall@^0.1.6:
version "0.1.6"
resolved "https://registry.yarnpkg.com/replaceall/-/replaceall-0.1.6.tgz#81d81ac7aeb72d7f5c4942adf2697a3220688d8e"
- integrity sha1-gdgax663LX9cSUKt8ml6MiBojY4=
+ integrity sha512-sL26E4+8Kec7bwpRjHlQvbNZcpnGroT3PA7ywsgH6GjzxAg4IGNlNalLoRC/JmTed7cMhyDbi44pWw1kMhDxlw==
require-directory@^2.1.1:
version "2.1.1"
resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42"
- integrity sha1-jGStX9MNqxyXbiNE/+f3kqam30I=
+ integrity sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==
require-main-filename@^2.0.0:
version "2.0.0"
@@ -10876,7 +12565,12 @@ require-main-filename@^2.0.0:
reserved-words@^0.1.2:
version "0.1.2"
resolved "https://registry.yarnpkg.com/reserved-words/-/reserved-words-0.1.2.tgz#00a0940f98cd501aeaaac316411d9adc52b31ab1"
- integrity sha1-AKCUD5jNUBrqqsMWQR2a3FKzGrE=
+ integrity sha512-0S5SrIUJ9LfpbVl4Yzij6VipUdafHrOTzvmfazSw/jeZrZtQK303OPZW+obtkaw7jQlTQppy0UvZWm9872PbRw==
+
+resize-observer-polyfill@^1.5.1:
+ version "1.5.1"
+ resolved "https://registry.yarnpkg.com/resize-observer-polyfill/-/resize-observer-polyfill-1.5.1.tgz#0e9020dd3d21024458d4ebd27e23e40269810464"
+ integrity sha512-LwZrotdHOo12nQuZlHEmtuXdqGoOD0OhaxopaNFxWzInpEgaLWoVuAMbTzixuosCx2nEG58ngzW3vxdWoxIgdg==
resolve-alpn@^1.0.0:
version "1.2.1"
@@ -10903,14 +12597,14 @@ resolve-from@^4.0.0:
resolve-url@^0.2.1:
version "0.2.1"
resolved "https://registry.yarnpkg.com/resolve-url/-/resolve-url-0.2.1.tgz#2c637fe77c893afd2a663fe21aa9080068e2052a"
- integrity sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=
+ integrity sha512-ZuF55hVUQaaczgOIwqWzkEcEidmlD/xl44x1UZnhOXcYuFN2S6+rcxpG+C1N3So0wvNI3DmJICUFfu2SxhBmvg==
resolve.exports@^1.1.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/resolve.exports/-/resolve.exports-1.1.0.tgz#5ce842b94b05146c0e03076985d1d0e7e48c90c9"
integrity sha512-J1l+Zxxp4XK3LUDZ9m60LRJF/mAe4z6a4xyabPHk7pvK5t35dACV32iIjJDFeWZFfZlO29w6SZ67knR0tHzJtQ==
-resolve@^1.10.0, resolve@^1.10.1, resolve@^1.18.1, resolve@^1.20.0, resolve@^1.22.0:
+resolve@^1.1.7, resolve@^1.10.0, resolve@^1.10.1, resolve@^1.18.1, resolve@^1.20.0, resolve@^1.22.0:
version "1.22.0"
resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.0.tgz#5e0b8c67c15df57a89bdbabe603a002f21731198"
integrity sha512-Hhtrw0nLeSrFQ7phPp4OOcVjLPIeMnRlr5mcnVuMe7M/7eBn98A3hmFRLoFo3DLZkivSYwhRUJTyPyWAk56WLw==
@@ -10938,7 +12632,7 @@ resolve@~1.19.0:
responselike@^1.0.2:
version "1.0.2"
resolved "https://registry.yarnpkg.com/responselike/-/responselike-1.0.2.tgz#918720ef3b631c5642be068f15ade5a46f4ba1e7"
- integrity sha1-kYcg7ztjHFZCvgaPFa3lpG9Loec=
+ integrity sha512-/Fpe5guzJk1gPqdJLJR5u7eG/gNY4nImjbRDaVWVMRhne55TCmj2i9Q+54PBRfatRC8v/rIiv9BN0pMd9OV5EQ==
dependencies:
lowercase-keys "^1.0.0"
@@ -10952,7 +12646,7 @@ responselike@^2.0.0:
restore-cursor@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-2.0.0.tgz#9f7ee287f82fd326d4fd162923d62129eee0dfaf"
- integrity sha1-n37ih/gv0ybU/RYpI9YhKe7g368=
+ integrity sha512-6IzJLuGi4+R14vwagDHX+JrXmPVtPpn4mffDJ1UdR7/Edm87fl6yi8mMBIVvFtJaNTUvjughmW4hwLhRG7gC1Q==
dependencies:
onetime "^2.0.0"
signal-exit "^3.0.2"
@@ -11004,6 +12698,11 @@ retext-profanities@~6.1.0:
pluralize "^8.0.0"
quotation "^1.0.0"
+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"
@@ -11033,6 +12732,13 @@ rsvp@^4.8.4:
resolved "https://registry.yarnpkg.com/rsvp/-/rsvp-4.8.5.tgz#c8f155311d167f68f21e168df71ec5b083113734"
integrity sha512-nfMOlASu9OnRJo1mbEk2cz0D56a1MBNrJ7orjRZQG10XDyuvwksKbuXNp6qa+kbn839HwjwhBzhFmdsaEAfauA==
+rtl-css-js@^1.14.0:
+ version "1.15.0"
+ resolved "https://registry.yarnpkg.com/rtl-css-js/-/rtl-css-js-1.15.0.tgz#680ed816e570a9ebccba9e1cd0f202c6a8bb2dc0"
+ integrity sha512-99Cu4wNNIhrI10xxUaABHsdDqzalrSRTie4GeCmbGVuehm4oj+fIy8fTzB+16pmKe8Bv9rl+hxIBez6KxExTew==
+ dependencies:
+ "@babel/runtime" "^7.1.2"
+
run-async@^2.4.0:
version "2.4.1"
resolved "https://registry.yarnpkg.com/run-async/-/run-async-2.4.1.tgz#8440eccf99ea3e70bd409d49aab88e10c189a455"
@@ -11072,7 +12778,7 @@ safe-buffer@^5.0.1, safe-buffer@~5.2.0:
safe-regex@^1.1.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/safe-regex/-/safe-regex-1.1.0.tgz#40a3669f3b077d1e943d44629e157dd48023bf2e"
- integrity sha1-QKNmnzsHfR6UPURinhV91IAjvy4=
+ integrity sha512-aJXcif4xnaNUzvUuC5gcb46oTS7zvg4jpMTnuqtrEPlR3vFr4pxtdTwaF1Qs3Enjn9HK+ZlwQui+a7z0SywIzg==
dependencies:
ret "~0.1.10"
@@ -11143,6 +12849,11 @@ schema-utils@^3.0.0:
ajv "^6.12.5"
ajv-keywords "^3.5.2"
+screenfull@^5.1.0:
+ version "5.2.0"
+ resolved "https://registry.yarnpkg.com/screenfull/-/screenfull-5.2.0.tgz#6533d524d30621fc1283b9692146f3f13a93d1ba"
+ integrity sha512-9BakfsO2aUQN2K9Fdbj87RJIEZ82Q9IGim7FqM5OsebfoFC6ZHXgDq/KvniuLTPdeM8wY2o6Dj3WQ7KeQCj3cA==
+
scuid@^1.1.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/scuid/-/scuid-1.1.0.tgz#d3f9f920956e737a60f72d0e4ad280bf324d5dab"
@@ -11163,7 +12874,7 @@ semiver@^1.1.0:
semver-compare@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/semver-compare/-/semver-compare-1.0.0.tgz#0dee216a1c941ab37e9efb1788f6afc5ff5537fc"
- integrity sha1-De4hahyUGrN+nvsXiPavxf9VN/w=
+ integrity sha512-YM3/ITh2MJ5MtzaM429anh+x2jiLVjqILF4m4oyQB18W7Ggea7BfqdH/wGMK7dDiMghv/6WG7znWMwUDzJiXow==
semver-diff@^3.1.1:
version "3.1.1"
@@ -11177,7 +12888,7 @@ semver-diff@^3.1.1:
resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7"
integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==
-semver@7.x, semver@^7.3.2, semver@^7.3.4, semver@^7.3.5, semver@^7.3.7:
+semver@7.x, semver@^7.0.0, semver@^7.1.1, semver@^7.3.2, semver@^7.3.4, semver@^7.3.5, semver@^7.3.7:
version "7.3.7"
resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.7.tgz#12c5b649afdbf9049707796e22a4028814ce523f"
integrity sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==
@@ -11232,16 +12943,16 @@ set-blocking@^2.0.0, set-blocking@~2.0.0:
resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7"
integrity sha1-BF+XgtARrppoA93TgrJDkrPYkPc=
-set-cookie-parser@^2.4.8:
- version "2.4.8"
- resolved "https://registry.yarnpkg.com/set-cookie-parser/-/set-cookie-parser-2.4.8.tgz#d0da0ed388bc8f24e706a391f9c9e252a13c58b2"
- integrity sha512-edRH8mBKEWNVIVMKejNnuJxleqYE/ZSdcT8/Nem9/mmosx12pctd80s2Oy00KNZzrogMZS5mauK2/ymL1bvlvg==
-
-set-cookie-parser@^2.5.0:
+set-cookie-parser@^2.4.8, set-cookie-parser@^2.5.0:
version "2.5.0"
resolved "https://registry.yarnpkg.com/set-cookie-parser/-/set-cookie-parser-2.5.0.tgz#96b59525e1362c94335c3c761100bb6e8f2da4b0"
integrity sha512-cHMAtSXilfyBePduZEBVPTCftTQWz6ehWJD5YNUg4mqvRosrrjKbo4WS8JkB0/RxonMoohHm7cOGH60mDkRQ9w==
+set-harmonic-interval@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/set-harmonic-interval/-/set-harmonic-interval-1.0.1.tgz#e1773705539cdfb80ce1c3d99e7f298bb3995249"
+ integrity sha512-AhICkFV84tBP1aWqPwLZqFvAwqEoVA9kxNMniGEUvzOlm4vLmOFLiTT3UZ6bziJTy4bOVpzWGTfSCbmaayGx8g==
+
set-value@^2.0.0, set-value@^2.0.1:
version "2.0.1"
resolved "https://registry.yarnpkg.com/set-value/-/set-value-2.0.1.tgz#a18d40530e6f07de4228c7defe4227af8cad005b"
@@ -11310,7 +13021,7 @@ side-channel@^1.0.4:
get-intrinsic "^1.0.2"
object-inspect "^1.9.0"
-signal-exit@^3.0.0, signal-exit@^3.0.2, signal-exit@^3.0.3:
+signal-exit@^3.0.0, signal-exit@^3.0.2, signal-exit@^3.0.3, signal-exit@^3.0.7:
version "3.0.7"
resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.7.tgz#a9a1767f8af84155114eaabd73f99273c8f59ad9"
integrity sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==
@@ -11400,6 +13111,11 @@ sliced@^1.0.1:
resolved "https://registry.yarnpkg.com/sliced/-/sliced-1.0.1.tgz#0b3a662b5d04c3177b1926bea82b03f837a2ef41"
integrity sha1-CzpmK10Ewxd7GSa+qCsD+Dei70E=
+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==
+
smartwrap@^1.2.3:
version "1.2.5"
resolved "https://registry.yarnpkg.com/smartwrap/-/smartwrap-1.2.5.tgz#45ee3e09ac234e5f7f17c16e916f511834f3cd23"
@@ -11449,6 +13165,32 @@ snapdragon@^0.8.1:
source-map-resolve "^0.5.0"
use "^3.1.0"
+socks-proxy-agent@^6.0.0:
+ version "6.2.1"
+ resolved "https://registry.yarnpkg.com/socks-proxy-agent/-/socks-proxy-agent-6.2.1.tgz#2687a31f9d7185e38d530bef1944fe1f1496d6ce"
+ integrity sha512-a6KW9G+6B3nWZ1yB8G7pJwL3ggLy1uTzKAgCb7ttblwqdz9fMGJUuTy3uFzEP48FAs9FLILlmzDlE2JJhVQaXQ==
+ dependencies:
+ agent-base "^6.0.2"
+ debug "^4.3.3"
+ socks "^2.6.2"
+
+socks-proxy-agent@^7.0.0:
+ version "7.0.0"
+ resolved "https://registry.yarnpkg.com/socks-proxy-agent/-/socks-proxy-agent-7.0.0.tgz#dc069ecf34436621acb41e3efa66ca1b5fed15b6"
+ integrity sha512-Fgl0YPZ902wEsAyiQ+idGd1A7rSFx/ayC1CQVMw5P+EQx2V0SgpGtf6OKFhVjPflPUl9YMmEOnmfjCdMUsygww==
+ dependencies:
+ agent-base "^6.0.2"
+ debug "^4.3.3"
+ socks "^2.6.2"
+
+socks@^2.6.2:
+ version "2.6.2"
+ resolved "https://registry.yarnpkg.com/socks/-/socks-2.6.2.tgz#ec042d7960073d40d94268ff3bb727dc685f111a"
+ integrity sha512-zDZhHhZRY9PxRruRMR7kMhnf3I8hDs4S3f9RecfnGxvcBHQcKcIH/oUcEWffsfl1XxdYlA7nnlGbbTvPz9D8gA==
+ dependencies:
+ ip "^1.1.5"
+ smart-buffer "^4.2.0"
+
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"
@@ -11486,6 +13228,11 @@ source-map-url@^0.4.0:
resolved "https://registry.yarnpkg.com/source-map-url/-/source-map-url-0.4.1.tgz#0af66605a745a5a2f91cf1bbf8a7afbc283dec56"
integrity sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw==
+source-map@0.5.6:
+ version "0.5.6"
+ resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.6.tgz#75ce38f52bf0733c5a7f0c118d81334a2bb5f412"
+ integrity sha1-dc449SvwczxafwwRjYEzSiu19BI=
+
source-map@^0.5.6:
version "0.5.7"
resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc"
@@ -11497,9 +13244,9 @@ source-map@^0.6.0, source-map@^0.6.1, source-map@~0.6.1:
integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==
source-map@^0.7.3:
- version "0.7.3"
- resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.7.3.tgz#5302f8169031735226544092e64981f751750383"
- integrity sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==
+ version "0.7.4"
+ resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.7.4.tgz#a9bbe705c9d8846f4e08ff6765acf0f1b0898656"
+ integrity sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==
sourcemap-codec@^1.4.8:
version "1.4.8"
@@ -11588,12 +13335,26 @@ sprintf-js@~1.0.2:
resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c"
integrity sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=
-stack-generator@^2.0.3:
- version "2.0.5"
- resolved "https://registry.yarnpkg.com/stack-generator/-/stack-generator-2.0.5.tgz#fb00e5b4ee97de603e0773ea78ce944d81596c36"
- integrity sha512-/t1ebrbHkrLrDuNMdeAcsvynWgoH/i4o8EGGfX7dEYDoTXOYVAkEpFdtshlvabzc6JlJ8Kf9YdFEoz7JkzGN9Q==
+ssri@^8.0.0, ssri@^8.0.1:
+ version "8.0.1"
+ resolved "https://registry.yarnpkg.com/ssri/-/ssri-8.0.1.tgz#638e4e439e2ffbd2cd289776d5ca457c4f51a2af"
+ integrity sha512-97qShzy1AiyxvPNIkLWoGua7xoQzzPjQ0HAH4B0rWKo7SZ6USuPcrUiAFrws0UH8RrbWmgq3LMTObhPIHbbBeQ==
+ dependencies:
+ minipass "^3.1.1"
+
+ssri@^9.0.0, ssri@^9.0.1:
+ version "9.0.1"
+ resolved "https://registry.yarnpkg.com/ssri/-/ssri-9.0.1.tgz#544d4c357a8d7b71a19700074b6883fcb4eae057"
+ integrity sha512-o57Wcn66jMQvfHG1FlYbWeZWW/dHZhJXjpIcTfXldXEk5nz5lStPo3mK0OJQfGR3RbZUlbISexbljkJzuEj/8Q==
+ dependencies:
+ minipass "^3.1.1"
+
+stack-generator@^2.0.3, stack-generator@^2.0.5:
+ version "2.0.10"
+ resolved "https://registry.yarnpkg.com/stack-generator/-/stack-generator-2.0.10.tgz#8ae171e985ed62287d4f1ed55a1633b3fb53bb4d"
+ integrity sha512-mwnua/hkqM6pF4k8SnmZ2zfETsRUpWXREfA/goT8SLCV4iOFa4bzOX2nDipWAZFPTjLvQB82f5yaodMVhK0yJQ==
dependencies:
- stackframe "^1.1.1"
+ stackframe "^1.3.4"
stack-trace@0.0.10:
version "0.0.10"
@@ -11607,10 +13368,27 @@ stack-utils@^2.0.2, stack-utils@^2.0.3:
dependencies:
escape-string-regexp "^2.0.0"
-stackframe@^1.1.1:
- version "1.2.1"
- resolved "https://registry.yarnpkg.com/stackframe/-/stackframe-1.2.1.tgz#1033a3473ee67f08e2f2fc8eba6aef4f845124e1"
- integrity sha512-h88QkzREN/hy8eRdyNhhsO7RSJ5oyTqxxmmn0dzBIMUclZsjpfmrsg81vp8mjjAs2vAZ72nyWxRUwSwmh0e4xg==
+stackframe@^1.3.4:
+ version "1.3.4"
+ resolved "https://registry.yarnpkg.com/stackframe/-/stackframe-1.3.4.tgz#b881a004c8c149a5e8efef37d51b16e412943310"
+ integrity sha512-oeVtt7eWQS+Na6F//S4kJ2K2VbRlS9D43mAlMyVpVWovy9o+jfgH8O9agzANzaiLjclA0oYzUXEM4PurhSUChw==
+
+stacktrace-gps@^3.0.4:
+ version "3.1.2"
+ resolved "https://registry.yarnpkg.com/stacktrace-gps/-/stacktrace-gps-3.1.2.tgz#0c40b24a9b119b20da4525c398795338966a2fb0"
+ integrity sha512-GcUgbO4Jsqqg6RxfyTHFiPxdPqF+3LFmQhm7MgCuYQOYuWyqxo5pwRPz5d/u6/WYJdEnWfK4r+jGbyD8TSggXQ==
+ dependencies:
+ source-map "0.5.6"
+ stackframe "^1.3.4"
+
+stacktrace-js@^2.0.2:
+ version "2.0.2"
+ resolved "https://registry.yarnpkg.com/stacktrace-js/-/stacktrace-js-2.0.2.tgz#4ca93ea9f494752d55709a081d400fdaebee897b"
+ integrity sha512-Je5vBeY4S1r/RnLydLl0TBTi3F2qdfWmYsGvtfZgEI+SCprPppaIhQf5nGcal4gI4cGpCV/duLcAzT1np6sQqg==
+ dependencies:
+ error-stack-parser "^2.0.6"
+ stack-generator "^2.0.5"
+ stacktrace-gps "^3.0.4"
stacktracey@^2.1.8:
version "2.1.8"
@@ -11869,11 +13647,23 @@ strip-json-comments@~2.0.1:
resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a"
integrity sha1-PFMZQukIwml8DsNEhYwobHygpgo=
+stylis@^4.0.6:
+ version "4.1.1"
+ resolved "https://registry.yarnpkg.com/stylis/-/stylis-4.1.1.tgz#e46c6a9bbf7c58db1e65bb730be157311ae1fe12"
+ integrity sha512-lVrM/bNdhVX2OgBFNa2YJ9Lxj7kPzylieHd3TNjuGE0Re9JB7joL5VUKOVH1kdNNJTgGPpT8hmwIAPLaSyEVFQ==
+
supports-color@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7"
integrity sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=
+supports-color@^4.0.0:
+ version "4.5.0"
+ resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-4.5.0.tgz#be7a0de484dec5c5cddf8b3d59125044912f635b"
+ integrity sha1-vnoN5ITexcXN34s9WRJQRJEvY1s=
+ dependencies:
+ has-flag "^2.0.0"
+
supports-color@^5.3.0:
version "5.5.0"
resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f"
@@ -11956,7 +13746,7 @@ sync-rpc@^1.2.1:
dependencies:
get-port "^3.1.0"
-tailwindcss@^3.0.0:
+tailwindcss@^3.0.0, tailwindcss@^3.0.24:
version "3.0.24"
resolved "https://registry.yarnpkg.com/tailwindcss/-/tailwindcss-3.0.24.tgz#22e31e801a44a78a1d9a81ecc52e13b69d85704d"
integrity sha512-H3uMmZNWzG6aqmg9q07ZIRNIawoiEcNFKDfL+YzOPuPsXuDXxJxB9icqzLgdzKNwjG3SAro2h9SYav8ewXNgig==
@@ -12004,6 +13794,18 @@ tar-stream@^2.1.4:
inherits "^2.0.3"
readable-stream "^3.1.1"
+tar@^6.0.2, tar@^6.1.0, tar@^6.1.11, tar@^6.1.2:
+ version "6.1.11"
+ resolved "https://registry.yarnpkg.com/tar/-/tar-6.1.11.tgz#6760a38f003afa1b2ffd0ffe9e9abbd0eab3d621"
+ integrity sha512-an/KZQzQUkZCkuoAA64hM92X0Urb6VpRhAFllDzz44U2mcD5scmT3zBc4VgVpkugF580+DQn8eAFSyoQt0tznA==
+ dependencies:
+ chownr "^2.0.0"
+ fs-minipass "^2.0.0"
+ minipass "^3.0.0"
+ minizlib "^2.1.1"
+ mkdirp "^1.0.3"
+ yallist "^4.0.0"
+
term-size@^2.1.0:
version "2.2.1"
resolved "https://registry.yarnpkg.com/term-size/-/term-size-2.2.1.tgz#2a6a54840432c2fb6320fea0f415531e90189f54"
@@ -12026,11 +13828,16 @@ test-exclude@^6.0.0:
glob "^7.1.4"
minimatch "^3.0.4"
-text-table@^0.2.0:
+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 sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=
+textr@^0.3.0:
+ version "0.3.0"
+ resolved "https://registry.yarnpkg.com/textr/-/textr-0.3.0.tgz#717361286962ac8df36b7a2619fb773a15b9b7f7"
+ integrity sha1-cXNhKGlirI3za3omGft3OhW5t/c=
+
then-request@^6.0.0:
version "6.0.2"
resolved "https://registry.yarnpkg.com/then-request/-/then-request-6.0.2.tgz#ec18dd8b5ca43aaee5cb92f7e4c1630e950d4f0c"
@@ -12058,6 +13865,11 @@ throat@^6.0.1:
resolved "https://registry.yarnpkg.com/throat/-/throat-6.0.1.tgz#d514fedad95740c12c2d7fc70ea863eb51ade375"
integrity sha512-8hmiGIJMDlwjg7dlJ4yKGLK8EsYqKgPWbG3b4wjJddKNwc7N7Dpn08Df4szr/sZdMVeOstrdYSsqzX6BYbcB+w==
+throttle-debounce@^3.0.1:
+ version "3.0.1"
+ resolved "https://registry.yarnpkg.com/throttle-debounce/-/throttle-debounce-3.0.1.tgz#32f94d84dfa894f786c9a1f290e7a645b6a19abb"
+ integrity sha512-dTEWWNu6JmeVXY0ZYoPuH5cRIwc0MeGbJwah9KUNYSJwommQpCzTySTpEe8Gs1J23aeWEuAobe4Ag7EHVt/LOg==
+
through2@2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/through2/-/through2-2.0.0.tgz#f41a1c31df5e129e4314446f66eca05cd6a30480"
@@ -12079,6 +13891,11 @@ through@2, through@^2.3.6, through@^2.3.8, through@~2.3, through@~2.3.1:
resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5"
integrity sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=
+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==
+
tinypool@^0.1.2, tinypool@^0.1.3:
version "0.1.3"
resolved "https://registry.yarnpkg.com/tinypool/-/tinypool-0.1.3.tgz#b5570b364a1775fd403de5e7660b325308fee26b"
@@ -12096,6 +13913,21 @@ title-case@^3.0.3:
dependencies:
tslib "^2.0.3"
+title@^3.4.4:
+ version "3.4.4"
+ resolved "https://registry.yarnpkg.com/title/-/title-3.4.4.tgz#5c0ab11fd69643bc05dc006bba52aaf5c1630f5e"
+ integrity sha512-ViLJMyg5TFwWQ7Aqrs3e0IPINA99++cOLzQFIuBw6rKPhn8Cz7J7sdsag0BQPCf4ip7bHY1/docykbQe2R4N6Q==
+ dependencies:
+ arg "1.0.0"
+ chalk "2.3.0"
+ clipboardy "1.2.2"
+ titleize "1.0.0"
+
+titleize@1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/titleize/-/titleize-1.0.0.tgz#7d350722061830ba6617631e0cfd3ea08398d95a"
+ integrity sha1-fTUHIgYYMLpmF2MeDP0+oIOY2Vo=
+
tmp@^0.0.33:
version "0.0.33"
resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.33.tgz#6d34335889768d21b2bcda0aa277ced3b1bfadf9"
@@ -12158,6 +13990,11 @@ to-vfile@^6.0.0:
is-buffer "^2.0.0"
vfile "^4.0.0"
+toggle-selection@^1.0.6:
+ version "1.0.6"
+ resolved "https://registry.yarnpkg.com/toggle-selection/-/toggle-selection-1.0.6.tgz#6e45b1263f2017fa0acc7d89d78b15b8bf77da32"
+ integrity sha1-bkWxJj8gF/oKzH2J14sVuL932jI=
+
toidentifier@1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/toidentifier/-/toidentifier-1.0.1.tgz#3be34321a88a820ed1bd80dfaa33e479fbb8dd35"
@@ -12194,6 +14031,11 @@ tr46@~0.0.3:
resolved "https://registry.yarnpkg.com/tr46/-/tr46-0.0.3.tgz#8184fd347dac9cdc185992f3a6622e14b9d9ab6a"
integrity sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o=
+treeverse@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/treeverse/-/treeverse-2.0.0.tgz#036dcef04bc3fd79a9b79a68d4da03e882d8a9ca"
+ integrity sha512-N5gJCkLu1aXccpOTtqV6ddSEi6ZmGkh3hjmbu1IjcavJK4qyOVQmi0myQKM7z5jVGmD68SJoliaVrMmVObhj6A==
+
trim-newlines@^3.0.0:
version "3.0.1"
resolved "https://registry.yarnpkg.com/trim-newlines/-/trim-newlines-3.0.1.tgz#260a5d962d8b752425b32f3a7db0dcacd176c144"
@@ -12226,6 +14068,11 @@ truncate-utf8-bytes@^1.0.0:
dependencies:
utf8-byte-length "^1.0.1"
+ts-easing@^0.2.0:
+ version "0.2.0"
+ resolved "https://registry.yarnpkg.com/ts-easing/-/ts-easing-0.2.0.tgz#c8a8a35025105566588d87dbda05dd7fbfa5a4ec"
+ integrity sha512-Z86EW+fFFh/IFB1fqQ3/+7Zpf9t2ebOAxNI/V6Wo7r5gqiqtxmgTlQ1qbqQcjLKYeSHPTsEmvlJUDg/EuL0uHQ==
+
ts-jest@^26.5.4:
version "26.5.6"
resolved "https://registry.yarnpkg.com/ts-jest/-/ts-jest-26.5.6.tgz#c32e0746425274e1dfe333f43cd3c800e014ec35"
@@ -12262,9 +14109,9 @@ ts-log@^2.2.3:
integrity sha512-DEQrfv6l7IvN2jlzc/VTdZJYsWUnQNCsueYjMkC/iXoEoi5fNan6MjeDqkvhfzbmHgdz9UxDUluX3V5HdjTydQ==
ts-node@^10.8.0:
- version "10.8.0"
- resolved "https://registry.yarnpkg.com/ts-node/-/ts-node-10.8.0.tgz#3ceb5ac3e67ae8025c1950626aafbdecb55d82ce"
- integrity sha512-/fNd5Qh+zTt8Vt1KbYZjRHCE9sI5i7nqfD/dzBBRDeVXZXS6kToW6R7tTU6Nd4XavFs0mAVCg29Q//ML7WsZYA==
+ version "10.8.1"
+ resolved "https://registry.yarnpkg.com/ts-node/-/ts-node-10.8.1.tgz#ea2bd3459011b52699d7e88daa55a45a1af4f066"
+ integrity sha512-Wwsnao4DQoJsN034wePSg5nZiw4YKXf56mPIAeD6wVmiv+RytNSWqc2f3fKvcUoV+Yn2+yocD71VOfQHbmVX4g==
dependencies:
"@cspotcode/source-map-support" "^0.8.0"
"@tsconfig/node10" "^1.0.7"
@@ -12515,6 +14362,105 @@ typeson@^6.0.0, typeson@^6.1.0:
resolved "https://registry.yarnpkg.com/typeson/-/typeson-6.1.0.tgz#5b2a53705a5f58ff4d6f82f965917cabd0d7448b"
integrity sha512-6FTtyGr8ldU0pfbvW/eOZrEtEkczHRUtduBnA90Jh9kMPCiFNnXIon3vF41N0S4tV1HHQt4Hk1j4srpESziCaA==
+typographic-apostrophes-for-possessive-plurals@^1.0.5:
+ version "1.0.5"
+ resolved "https://registry.yarnpkg.com/typographic-apostrophes-for-possessive-plurals/-/typographic-apostrophes-for-possessive-plurals-1.0.5.tgz#ca31b6f3d27ba800d6902d62fba29b548f639b99"
+ integrity sha1-yjG289J7qADWkC1i+6KbVI9jm5k=
+
+typographic-apostrophes@^1.1.1:
+ version "1.1.1"
+ resolved "https://registry.yarnpkg.com/typographic-apostrophes/-/typographic-apostrophes-1.1.1.tgz#bc6905eb949048a736fa8399f8b90aafa8894787"
+ integrity sha1-vGkF65SQSKc2+oOZ+LkKr6iJR4c=
+
+typographic-arrows@^1.0.0:
+ version "1.0.3"
+ resolved "https://registry.yarnpkg.com/typographic-arrows/-/typographic-arrows-1.0.3.tgz#fdd4692ce660024b42fd1605100c34337380c925"
+ integrity sha1-/dRpLOZgAktC/RYFEAw0M3OAySU=
+
+typographic-base@^1.0.4:
+ version "1.0.4"
+ resolved "https://registry.yarnpkg.com/typographic-base/-/typographic-base-1.0.4.tgz#8bb74e8e3262401915c5bd2d6b5d520bd2d15697"
+ integrity sha1-i7dOjjJiQBkVxb0ta11SC9LRVpc=
+ dependencies:
+ textr "^0.3.0"
+ typographic-apostrophes "^1.1.1"
+ typographic-apostrophes-for-possessive-plurals "^1.0.5"
+ typographic-arrows "^1.0.0"
+ typographic-copyright "^1.0.1"
+ typographic-currency "^1.1.0"
+ typographic-ellipses "^1.0.11"
+ typographic-em-dashes "^1.0.2"
+ typographic-en-dashes "^1.0.1"
+ typographic-math-symbols "^1.1.5"
+ typographic-quotes "^1.2.1"
+ typographic-registered-trademark "^1.0.1"
+ typographic-single-spaces "^1.0.2"
+ typographic-trademark "^1.0.1"
+
+typographic-copyright@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/typographic-copyright/-/typographic-copyright-1.0.1.tgz#4c4a0b6d7dba271c29b741f204002f4c6d4b00c0"
+ integrity sha1-TEoLbX26Jxwpt0HyBAAvTG1LAMA=
+
+typographic-currency-db@1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/typographic-currency-db/-/typographic-currency-db-1.0.0.tgz#32f8a6daf0c91209a641360fdaa69ce54fed0c67"
+ integrity sha1-Mvim2vDJEgmmQTYP2qac5U/tDGc=
+
+typographic-currency@^1.1.0:
+ version "1.1.2"
+ resolved "https://registry.yarnpkg.com/typographic-currency/-/typographic-currency-1.1.2.tgz#cec5f4763c13c608b0494d85f70f42d69026da40"
+ integrity sha1-zsX0djwTxgiwSU2F9w9C1pAm2kA=
+ dependencies:
+ typographic-currency-db "1.0.0"
+
+typographic-ellipses@^1.0.11:
+ version "1.0.11"
+ resolved "https://registry.yarnpkg.com/typographic-ellipses/-/typographic-ellipses-1.0.11.tgz#a69143b4b8c5611dd3a669b7c3052603e8a69487"
+ integrity sha1-ppFDtLjFYR3Tpmm3wwUmA+imlIc=
+
+typographic-em-dashes@^1.0.2:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/typographic-em-dashes/-/typographic-em-dashes-1.0.2.tgz#754cafb1b0be64713ed2f0d3f32d7d9a64feb1a5"
+ integrity sha1-dUyvsbC+ZHE+0vDT8y19mmT+saU=
+
+typographic-en-dashes@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/typographic-en-dashes/-/typographic-en-dashes-1.0.1.tgz#a37739fdc43ed38c351bbf70a80c2503ccb022e0"
+ integrity sha1-o3c5/cQ+04w1G79wqAwlA8ywIuA=
+
+typographic-math-symbols@^1.1.5:
+ version "1.1.5"
+ resolved "https://registry.yarnpkg.com/typographic-math-symbols/-/typographic-math-symbols-1.1.5.tgz#56f756c6e5cb3d6d3ab2172e49d91e823028de4e"
+ integrity sha1-VvdWxuXLPW06shcuSdkegjAo3k4=
+
+typographic-quotes-l10n-db@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/typographic-quotes-l10n-db/-/typographic-quotes-l10n-db-1.0.0.tgz#1304d2fa95ac71fec3efd8327834ee49b013b254"
+ integrity sha1-EwTS+pWscf7D79gyeDTuSbATslQ=
+
+typographic-quotes@^1.2.1:
+ version "1.2.2"
+ resolved "https://registry.yarnpkg.com/typographic-quotes/-/typographic-quotes-1.2.2.tgz#906e28dba2b13062d29b57f10ac931472080e062"
+ integrity sha1-kG4o26KxMGLSm1fxCskxRyCA4GI=
+ dependencies:
+ typographic-quotes-l10n-db "^1.0.0"
+
+typographic-registered-trademark@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/typographic-registered-trademark/-/typographic-registered-trademark-1.0.1.tgz#1830b693bf782cfc23560ec80d61a2672a98c8dd"
+ integrity sha1-GDC2k794LPwjVg7IDWGiZyqYyN0=
+
+typographic-single-spaces@^1.0.2:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/typographic-single-spaces/-/typographic-single-spaces-1.0.2.tgz#82c3115437db6ddb2e17aef55494dd907e941f7f"
+ integrity sha1-gsMRVDfbbdsuF671VJTdkH6UH38=
+
+typographic-trademark@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/typographic-trademark/-/typographic-trademark-1.0.1.tgz#573165bc6f50307e6ec758832677483377844580"
+ integrity sha1-VzFlvG9QMH5ux1iDJndIM3eERYA=
+
tz-offset@0.0.1:
version "0.0.1"
resolved "https://registry.yarnpkg.com/tz-offset/-/tz-offset-0.0.1.tgz#fef920257024d3583ed9072a767721a18bdb8a76"
@@ -12550,12 +14496,7 @@ underscore@~1.6.0:
resolved "https://registry.yarnpkg.com/underscore/-/underscore-1.6.0.tgz#8b38b10cacdef63337b8b24e4ff86d45aea529a8"
integrity sha1-izixDKze9jM3uLJOT/htRa6lKag=
-undici@4.13.0:
- version "4.13.0"
- resolved "https://registry.yarnpkg.com/undici/-/undici-4.13.0.tgz#7d10fe150c3241a6b3b0eba80eff59c9fb40f359"
- integrity sha512-8lk8S/f2V0VUNGf2scU2b+KI2JSzEQLdCyRNRF3XmHu+5jectlSDaPSBCXAHFaUlt1rzngzOBVDgJS9/Gue/KA==
-
-undici@^5.1.0:
+undici@5.3.0, undici@^5.1.0:
version "5.3.0"
resolved "https://registry.yarnpkg.com/undici/-/undici-5.3.0.tgz#869d47bafa7f72ccaf8738258f0283bf3dd179ca"
integrity sha512-8LxC/xmR2GCE4q1heE1sJxVnnf5S6yQ2dObvMFBBWkB8aQlaqNuWovgRFWRMB7KUdLPGZfOTTmUeeLEJYX56iQ==
@@ -12629,6 +14570,20 @@ union-value@^1.0.0:
is-extendable "^0.1.1"
set-value "^2.0.1"
+unique-filename@^1.1.1:
+ version "1.1.1"
+ resolved "https://registry.yarnpkg.com/unique-filename/-/unique-filename-1.1.1.tgz#1d69769369ada0583103a1e6ae87681b56573230"
+ integrity sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ==
+ dependencies:
+ unique-slug "^2.0.0"
+
+unique-slug@^2.0.0:
+ version "2.0.2"
+ resolved "https://registry.yarnpkg.com/unique-slug/-/unique-slug-2.0.2.tgz#baabce91083fc64e945b0f3ad613e264f7cd4e6c"
+ integrity sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w==
+ 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"
@@ -12778,6 +14733,11 @@ url-parse-lax@^3.0.0:
dependencies:
prepend-http "^2.0.0"
+urlpattern-polyfill@^4.0.3:
+ version "4.0.3"
+ resolved "https://registry.yarnpkg.com/urlpattern-polyfill/-/urlpattern-polyfill-4.0.3.tgz#c1fa7a73eb4e6c6a1ffb41b24cf31974f7392d3b"
+ integrity sha512-DOE84vZT2fEcl9gqCUTcnAw5ZY5Id55ikUcziSUntuEFL3pRvavg5kwDmTEUJkeCHInTlV/HexFomgYnzO5kdQ==
+
use@^3.1.0:
version "3.1.1"
resolved "https://registry.yarnpkg.com/use/-/use-3.1.1.tgz#d50c8cac79a19fbc20f2911f56eb973f4e10070f"
@@ -12845,7 +14805,7 @@ valid-url@^1.0.9:
resolved "https://registry.yarnpkg.com/valid-url/-/valid-url-1.0.9.tgz#1c14479b40f1397a75782f115e4086447433a200"
integrity sha1-HBRHm0DxOXp1eC8RXkCGRHQzogA=
-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==
@@ -12853,6 +14813,13 @@ validate-npm-package-license@^3.0.1:
spdx-correct "^3.0.0"
spdx-expression-parse "^3.0.0"
+validate-npm-package-name@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/validate-npm-package-name/-/validate-npm-package-name-4.0.0.tgz#fe8f1c50ac20afdb86f177da85b3600f0ac0d747"
+ integrity sha512-mzR0L8ZDktZjpX4OB46KT+56MAhl4EIazWP/+G/HPGuvfdaqg4YsCdtOm6U9+LOFyYDoh4dpnpxZRB9MQQns5Q==
+ dependencies:
+ builtins "^5.0.0"
+
value-or-promise@1.0.11, value-or-promise@^1.0.11:
version "1.0.11"
resolved "https://registry.yarnpkg.com/value-or-promise/-/value-or-promise-1.0.11.tgz#3e90299af31dd014fe843fe309cefa7c1d94b140"
@@ -12926,7 +14893,7 @@ vite-plugin-inspect@^0.3.6:
sirv "^2.0.2"
ufo "^0.7.10"
-vite@^2.9.0, vite@^2.9.5, vite@^2.9.6, vite@^2.9.8:
+vite@^2.9.0, vite@^2.9.5, vite@^2.9.6:
version "2.9.9"
resolved "https://registry.yarnpkg.com/vite/-/vite-2.9.9.tgz#8b558987db5e60fedec2f4b003b73164cb081c5e"
integrity sha512-ffaam+NgHfbEmfw/Vuh6BHKKlI/XIAhxE5QSS7gFLIngxg171mg1P3a4LSRME0z2ZU1ScxoKzphkipcYwSD5Ew==
@@ -12938,10 +14905,22 @@ vite@^2.9.0, vite@^2.9.5, vite@^2.9.6, vite@^2.9.8:
optionalDependencies:
fsevents "~2.3.2"
+vite@^2.9.9:
+ version "2.9.10"
+ resolved "https://registry.yarnpkg.com/vite/-/vite-2.9.10.tgz#f574d96655622c2e0fbc662edd0ed199c60fe91a"
+ integrity sha512-TwZRuSMYjpTurLqXspct+HZE7ONiW9d+wSWgvADGxhDPPyoIcNywY+RX4ng+QpK30DCa1l/oZgi2PLZDibhzbQ==
+ dependencies:
+ esbuild "^0.14.27"
+ postcss "^8.4.13"
+ resolve "^1.22.0"
+ rollup "^2.59.0"
+ optionalDependencies:
+ fsevents "~2.3.2"
+
vitest@^0.12.9:
- version "0.12.9"
- resolved "https://registry.yarnpkg.com/vitest/-/vitest-0.12.9.tgz#f184694da00476be1a1ead117892001292da08c6"
- integrity sha512-1NtyUANS72Qw5PwYvoztk067NX4fSiis2xQxhByOWS33eL2er/yupHyLxlBCOkF2ANe0dLFRvT1GVb+nczL5aw==
+ version "0.12.10"
+ resolved "https://registry.yarnpkg.com/vitest/-/vitest-0.12.10.tgz#c40204dce19eb713af6dfa2b75301940cb1259f0"
+ integrity sha512-TVoI6fM7rZ1zIMDjcviY8Dg5XIaPqBwDweaI3oUwvWqUz68cbM49CIHNMkF+UVoSjl94wXiBRdNhsT4ekgWuGA==
dependencies:
"@types/chai" "^4.3.1"
"@types/chai-subset" "^1.3.3"
@@ -12950,7 +14929,7 @@ vitest@^0.12.9:
local-pkg "^0.4.1"
tinypool "^0.1.3"
tinyspy "^0.3.2"
- vite "^2.9.8"
+ vite "^2.9.9"
vitest@^0.9.4:
version "0.9.4"
@@ -12979,6 +14958,11 @@ w3c-xmlserializer@^2.0.0:
dependencies:
xml-name-validator "^3.0.0"
+walk-up-path@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/walk-up-path/-/walk-up-path-1.0.0.tgz#d4745e893dd5fd0dbb58dd0a4c6a33d9c9fec53e"
+ integrity sha512-hwj/qMDUEjCU5h0xr90KGCf0tg0/LgJbmOWgrWKYlcJZM7XvquvUJZ0G/HMGr7F7OQMOUuPHWP9JpriinkAlkg==
+
walker@^1.0.7, walker@~1.0.5:
version "1.0.8"
resolved "https://registry.yarnpkg.com/walker/-/walker-1.0.8.tgz#bd498db477afe573dc04185f011d3ab8a8d7653f"
@@ -12986,7 +14970,7 @@ walker@^1.0.7, walker@~1.0.5:
dependencies:
makeerror "1.0.12"
-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 sha1-8LDc+RW8X/FSivrbLA4XtTLaL+g=
@@ -13123,7 +15107,7 @@ which@^2.0.1, which@^2.0.2:
dependencies:
isexe "^2.0.0"
-wide-align@^1.1.0:
+wide-align@^1.1.0, 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==
@@ -13190,6 +15174,14 @@ write-file-atomic@^3.0.0:
signal-exit "^3.0.2"
typedarray-to-buffer "^3.1.5"
+write-file-atomic@^4.0.0, write-file-atomic@^4.0.1:
+ version "4.0.1"
+ resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-4.0.1.tgz#9faa33a964c1c85ff6f849b80b42a88c2c537c8f"
+ integrity sha512-nSKUxgAbyioruk6hU87QzVbY279oYT6uiwgDoujth2ju4mJ+TZau7SQBhtbTmUyuNYTuXnSyRn66FV0+eCgcrQ==
+ dependencies:
+ imurmurhash "^0.1.4"
+ signal-exit "^3.0.7"
+
ws@^7.4.6, ws@^7.5.0:
version "7.5.8"
resolved "https://registry.yarnpkg.com/ws/-/ws-7.5.8.tgz#ac2729881ab9e7cbaf8787fe3469a48c5c7f636a"