From 8ee64bb1d2809bf6d64142467694b8f1b458e202 Mon Sep 17 00:00:00 2001 From: Robert Kibet Date: Thu, 28 Sep 2023 16:03:38 +0300 Subject: [PATCH 01/24] fix: `rangeslider` ensure fixed decimal points --- packages/rangeslider/src/components/Handle.ts | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/packages/rangeslider/src/components/Handle.ts b/packages/rangeslider/src/components/Handle.ts index ff6aaa3b3..466abfd92 100644 --- a/packages/rangeslider/src/components/Handle.ts +++ b/packages/rangeslider/src/components/Handle.ts @@ -82,7 +82,7 @@ export class Handle { setHandleStyles(element); setHandleA11Y(element, inputElement); - this.setValue(startValue); + this.setValue(inputElement?.value ? parseFloat(inputElement.value) : startValue); this.destroy = this.listenEvents(); } @@ -204,7 +204,7 @@ export class Handle { if (!inputElement) return; - setFormFieldValue(inputElement, `${currentValue}`); + setFormFieldValue(inputElement, `${Number(currentValue?.toFixed(2))}`); this.updatingInput = false; } @@ -222,11 +222,15 @@ export class Handle { public setConstraints(minValue: number, maxValue: number): void { const { element } = this; - element.setAttribute(ARIA_VALUEMIN_KEY, `${minValue}`); - element.setAttribute(ARIA_VALUEMAX_KEY, `${maxValue}`); + // TODO: should we use an attribute to set number of decimals to show? + const minValFixed = Number(minValue.toFixed(2)); + const maxValFixed = Number(maxValue.toFixed(2)); - this.minValue = minValue; - this.maxValue = maxValue; + element.setAttribute(ARIA_VALUEMIN_KEY, `${minValFixed}`); + element.setAttribute(ARIA_VALUEMAX_KEY, `${maxValFixed}`); + + this.minValue = minValFixed; + this.maxValue = maxValFixed; } /** From 3f043f16562f1c0653f0116c173d9332ecaad935 Mon Sep 17 00:00:00 2001 From: Robert Kibet Date: Thu, 28 Sep 2023 16:31:50 +0300 Subject: [PATCH 02/24] fix: `numbercount` use animation frame instead of settimeout and ensure it stops at the right end value --- packages/numbercount/src/actions/animate.ts | 38 ++++++++++----------- 1 file changed, 19 insertions(+), 19 deletions(-) diff --git a/packages/numbercount/src/actions/animate.ts b/packages/numbercount/src/actions/animate.ts index 0a3cca789..6b370c012 100644 --- a/packages/numbercount/src/actions/animate.ts +++ b/packages/numbercount/src/actions/animate.ts @@ -2,11 +2,11 @@ import { valueToString } from '../utils/helpers'; /** * Animates a number element. - * @param numberElement - * @param start - * @param end - * @param duration - * @param locale + * @param {Element} numberElement - The element where the number will be displayed. + * @param {number} start - The starting number. + * @param {number} end - The ending number. + * @param {number} duration - The duration of the animation in milliseconds. + * @param {string | true | null} locale - The locale for formatting the number. */ export const animateNumberCount = ( numberElement: Element, @@ -14,24 +14,24 @@ export const animateNumberCount = ( end: number, duration: number, locale?: string | true | null -) => { - const increment = (end - start) / duration; +): void => { + let startTime: number | null = null; + const step = (timestamp: number) => { + if (startTime === null) startTime = timestamp; + const elapsed = timestamp - startTime; - let value = start; + const progress = Math.min(elapsed / duration, 1); + const value = start + (end - start) * progress; - const animate = () => { - if (value < end) { - const newValue = value + increment; - const flooredValue = Math.floor(newValue); + numberElement.textContent = valueToString(Math.floor(value), locale); - numberElement.textContent = valueToString(flooredValue, locale); - value = newValue; - } else { - numberElement.textContent = valueToString(end, locale); + if (progress < 1) { + requestAnimationFrame(step); + return; } + + numberElement.textContent = valueToString(end, locale); }; - for (let i = 0; i <= duration; i++) { - setTimeout(animate, i); - } + requestAnimationFrame(step); }; From 5001224676e92c520f07949aeb655f5b7bfd417d Mon Sep 17 00:00:00 2001 From: Robert Kibet Date: Thu, 28 Sep 2023 18:34:35 +0300 Subject: [PATCH 03/24] fix: `readtime` default to 1 minute and show value using locale --- packages/readtime/src/factory.ts | 10 ++++-- packages/readtime/src/utils/constants.ts | 9 +++++ packages/utils/src/helpers/numbers.ts | 42 ++++++++++++++++++++++++ 3 files changed, 58 insertions(+), 3 deletions(-) diff --git a/packages/readtime/src/factory.ts b/packages/readtime/src/factory.ts index 255c6ceb7..416c7ce7f 100644 --- a/packages/readtime/src/factory.ts +++ b/packages/readtime/src/factory.ts @@ -1,6 +1,6 @@ -import { parseNumericAttribute } from '@finsweet/attributes-utils'; +import { formatNumberToLocale, parseNumericAttribute } from '@finsweet/attributes-utils'; -import { DEFAULT_DECIMALS, DEFAULT_WPM } from './utils/constants'; +import { DEFAULT_DECIMALS, DEFAULT_LOCALE, DEFAULT_WPM } from './utils/constants'; import { getAttribute, getInstanceIndex, queryElement } from './utils/selectors'; /** @@ -15,10 +15,14 @@ export const initReadTime = (timeElement: Element) => { const wpm = parseNumericAttribute(getAttribute(timeElement, 'wpm'), DEFAULT_WPM); const decimals = parseNumericAttribute(getAttribute(timeElement, 'decimals'), DEFAULT_DECIMALS); + const locale = getAttribute(timeElement, 'locale') || DEFAULT_LOCALE; const wordsCount = contentsElement.innerText.match(/[\w\d\’\'-]+/gi)?.length ?? 0; const readTime = wordsCount / wpm; - timeElement.textContent = !decimals && readTime < 0.5 ? '1' : readTime.toFixed(decimals); + // default to 1 if read time is less than 0.5 + const approximatedValue = readTime < 0.5 ? 1 : readTime; + + timeElement.textContent = formatNumberToLocale(approximatedValue, locale, decimals, true); }; diff --git a/packages/readtime/src/utils/constants.ts b/packages/readtime/src/utils/constants.ts index 6e97d7c4b..5ee2457dc 100644 --- a/packages/readtime/src/utils/constants.ts +++ b/packages/readtime/src/utils/constants.ts @@ -28,7 +28,16 @@ export const SETTINGS = { decimals: { key: 'decimals', }, + + /** + * Defines the locale used to format the time output. + * Defaults to {@link DEFAULT_LOCALE}. + */ + locale: { + key: 'locale', + }, } as const satisfies AttributeSettings; export const DEFAULT_WPM = 265; export const DEFAULT_DECIMALS = 0; +export const DEFAULT_LOCALE = 'auto'; diff --git a/packages/utils/src/helpers/numbers.ts b/packages/utils/src/helpers/numbers.ts index 23e04d0ff..7a4af8b33 100644 --- a/packages/utils/src/helpers/numbers.ts +++ b/packages/utils/src/helpers/numbers.ts @@ -80,3 +80,45 @@ export const adjustValueToStep = (value: number, step: number, precision?: numbe return setDecimalPrecision(floor, precision); }; + +/** + * Format number to international locale string or fallback to default browser locale. + * @param {number} number - Number to format. + * @param {string} [locale] - Locale to format number to. + * @param {number} [decimals] - Number of decimal places. + * @param {boolean} [isTimeInMinutes] - Whether the number represents time in minutes. + * @returns {string} Formatted number as a string. + */ +export const formatNumberToLocale = ( + number: number, + locale: string, + decimals?: number, + isTimeInMinutes?: boolean +): string => { + let language: string = locale; + + if (locale === 'auto') { + language = navigator.language; + } + + const options: Intl.NumberFormatOptions = {}; + if (decimals !== undefined) { + options.minimumFractionDigits = decimals; + options.maximumFractionDigits = decimals; + } + + const formatter = new Intl.NumberFormat(language, options); + + if (isTimeInMinutes) { + // format the number as a time duration in minutes + + return number.toLocaleString(language, { + ...options, + style: 'unit', + unit: 'minute', // TODO: support other units + unitDisplay: 'long', + }); + } + + return formatter.format(number); +}; From 5aea58828d6c836e1cf3a579c77bf2b16f0bf9fd Mon Sep 17 00:00:00 2001 From: Robert Kibet Date: Fri, 29 Sep 2023 11:29:28 +0300 Subject: [PATCH 04/24] fix: `cmsfilter` ensure `fs-cmsfilter-highlight` works correctly --- packages/cmsfilter/src/actions/highlight.ts | 6 +-- packages/cmsfilter/src/utils/highlightText.ts | 47 +++++++++++++++++++ 2 files changed, 50 insertions(+), 3 deletions(-) create mode 100644 packages/cmsfilter/src/utils/highlightText.ts diff --git a/packages/cmsfilter/src/actions/highlight.ts b/packages/cmsfilter/src/actions/highlight.ts index 8a720dbaa..2327ff127 100644 --- a/packages/cmsfilter/src/actions/highlight.ts +++ b/packages/cmsfilter/src/actions/highlight.ts @@ -1,5 +1,7 @@ import type { CMSItem } from '@finsweet/attributes-cmscore'; +import { highlightText } from '../utils/highlightText'; + /** * Adds/removes highlighting to the maching prop elements of a specific `CMSItem`. * @@ -28,9 +30,7 @@ export const toggleHighlight = ({ props }: CMSItem) => { const { filterValue, highlightCSSClass } = existingHighlightData; - const regex = new RegExp(filterValue || propValue, 'gi'); - - element.innerHTML = originalHTML.replace(regex, `$&`); + element.innerHTML = highlightText(originalHTML, filterValue || propValue, highlightCSSClass); } } }; diff --git a/packages/cmsfilter/src/utils/highlightText.ts b/packages/cmsfilter/src/utils/highlightText.ts new file mode 100644 index 000000000..b1b406d04 --- /dev/null +++ b/packages/cmsfilter/src/utils/highlightText.ts @@ -0,0 +1,47 @@ +/** + * Highlights a target string within an HTML string by wrapping it in a span element with a given class. + * @param {string} htmlString - The HTML string to search within. + * @param {string} target - The string to highlight. + * @param {string} wrapperClass - The class to add to the span that wraps the highlighted text. + * @returns {string} - The modified HTML string with highlighted text. + */ +export const highlightText = (htmlString: string, target: string, wrapperClass: string): string => { + // Create a DOM parser to convert the HTML string to a DOM object + const parser = new DOMParser(); + const doc = parser.parseFromString(htmlString, 'text/html'); + + /** + * Recursively traverse the DOM tree to find and highlight text nodes that contain the target string. + * @param {Node} node - The current node to check. + */ + const traverseAndHighlight = (node: Node) => { + let next: Node | null = null; + const childNodesArray = Array.from(node.childNodes); + + for (const child of childNodesArray) { + next = child.nextSibling; + + if (child.nodeType === Node.TEXT_NODE) { + const textContent = child.nodeValue || ''; + const regex = new RegExp(target.replace(/[-\/\\^$*+?.()|[\]{}]/g, '\\$&'), 'gi'); + + if (regex.test(textContent)) { + const newNode = document.createElement('span'); + + newNode.innerHTML = textContent.replace(regex, (match) => `${match}`); + + child.replaceWith(...Array.from(newNode.childNodes)); + } + } else if (child.nodeType === Node.ELEMENT_NODE && (child as Element).classList.contains(wrapperClass)) { + // Skip nodes that already have the wrapper class to avoid nesting + continue; + } else { + traverseAndHighlight(child); + } + } + }; + + traverseAndHighlight(doc.body); + + return doc.body.innerHTML; +}; From a1a829057f4ab0e35f7130d017e1470f40d718ba Mon Sep 17 00:00:00 2001 From: Robert Kibet Date: Fri, 29 Sep 2023 16:39:29 +0300 Subject: [PATCH 05/24] feat: `socialshare` add copy to clipboard --- packages/socialshare/package.json | 3 +- packages/socialshare/src/actions/collect.ts | 121 +++++++++++++++----- packages/socialshare/src/actions/index.ts | 3 + packages/socialshare/src/actions/share.ts | 68 ++++++++--- packages/socialshare/src/actions/trigger.ts | 16 ++- packages/socialshare/src/factory.ts | 41 +++++-- packages/socialshare/src/init.ts | 4 +- packages/socialshare/src/utils/constants.ts | 6 + packages/socialshare/src/utils/index.ts | 5 + packages/socialshare/src/utils/stores.ts | 1 + packages/socialshare/src/utils/types.ts | 2 + pnpm-lock.yaml | 5 +- 12 files changed, 216 insertions(+), 59 deletions(-) create mode 100644 packages/socialshare/src/actions/index.ts create mode 100644 packages/socialshare/src/utils/index.ts diff --git a/packages/socialshare/package.json b/packages/socialshare/package.json index 3184e46e8..7937e4b01 100644 --- a/packages/socialshare/package.json +++ b/packages/socialshare/package.json @@ -17,7 +17,8 @@ } }, "dependencies": { - "@finsweet/attributes-utils": "workspace:*" + "@finsweet/attributes-utils": "workspace:*", + "clipboard": "^2.0.11" }, "devDependencies": { "@finsweet/attributes-cmscore": "workspace:*" diff --git a/packages/socialshare/src/actions/collect.ts b/packages/socialshare/src/actions/collect.ts index 1b67ed031..ce5ee7675 100644 --- a/packages/socialshare/src/actions/collect.ts +++ b/packages/socialshare/src/actions/collect.ts @@ -1,18 +1,52 @@ -import { getAttribute, getSettingSelector, queryElement } from '../utils/selectors'; -import { DEFAULT_HEIGHT_SETTING_KEY, DEFAULT_WIDTH_SETTING_KEY, SETTINGS } from './../utils/constants'; -import type { - FacebookSocialShare, - PinterestSocialShare, - SocialShare, - SocialShareTypes, - TwitterSocialShare, -} from './../utils/types'; - -export function collectFacebookData( +import { + DEFAULT_HEIGHT_SETTING_KEY, + DEFAULT_WIDTH_SETTING_KEY, + type FacebookSocialShare, + getAttribute, + getSettingSelector, + type PinterestSocialShare, + queryElement, + SETTINGS, + type SocialShare, + type SocialShareStoreData, + type SocialShareTypes, + type TwitterSocialShare, +} from './../utils'; + +/** + * Collects data for the copy action of the Social Share feature. + * @param trigger - The HTML element that triggered the action. + * @param instanceIndex - The index of the Social Share instance, if multiple instances are present on the page. + * @param scope - The HTML element that contains the Social Share instance, if multiple instances are present on the page. + * @returns An object containing the collected data for the copy action. + */ +export const collectCopyData = ( trigger: HTMLElement, instanceIndex: number | undefined, scope: HTMLElement | undefined -): FacebookSocialShare { +): SocialShareStoreData => { + const socialData = collectSocialData(trigger, 'copy', instanceIndex, scope); + + return { + ...socialData, + shareUrl: new URL(window.location.href), + type: 'copy', + trigger, + }; +}; + +/** + * Collects Facebook social share data. + * @param trigger - The element that triggered the social share. + * @param instanceIndex - The index of the social share instance. + * @param scope - The scope of the social share. + * @returns An object containing the collected Facebook social share data. + */ +export const collectFacebookData = ( + trigger: HTMLElement, + instanceIndex: number | undefined, + scope: HTMLElement | undefined +): FacebookSocialShare => { const socialData = collectSocialData(trigger, 'facebook', instanceIndex, scope); const hashtagsElement = queryElement('facebook-hashtags', { instanceIndex, scope }); @@ -23,13 +57,20 @@ export function collectFacebookData( type: 'facebook', hashtags: hashtagsText, }; -} - -export function collectTwitterData( +}; + +/** + * Collects Twitter data from a given trigger element, instance index, and scope. + * @param trigger - The element that triggered the action. + * @param instanceIndex - The index of the instance. + * @param scope - The scope of the element. + * @returns An object containing the collected Twitter data. + */ +export const collectTwitterData = ( trigger: HTMLElement, instanceIndex: number | undefined, scope: HTMLElement | undefined -): TwitterSocialShare { +): TwitterSocialShare => { const socialData = collectSocialData(trigger, 'twitter', instanceIndex, scope); const hashtagsElement = queryElement('twitter-hashtags', { instanceIndex, scope }); @@ -45,13 +86,20 @@ export function collectTwitterData( hashtags: hashtagsText, username: userNameText, }; -} - -export function collectPinterestData( +}; + +/** + * Collects Pinterest social share data. + * @param trigger - The element that triggered the social share. + * @param instanceIndex - The index of the instance, if multiple instances are present. + * @param scope - The scope of the social share. + * @returns An object containing the collected Pinterest social share data. + */ +export const collectPinterestData = ( trigger: HTMLElement, instanceIndex: number | undefined, scope: HTMLElement | undefined -): PinterestSocialShare { +): PinterestSocialShare => { const socialData = collectSocialData(trigger, 'pinterest', instanceIndex, scope); const imageElement = queryElement('pinterest-image', { instanceIndex, scope }); @@ -67,15 +115,24 @@ export function collectPinterestData( image: imageSrc, description: descriptionText, }; -} - -export function collectSocialData( +}; + +/** + * Collects social share data from the given social share button element. + * @param socialShareButton - The social share button element. + * @param elementKey - The key of the social share element. + * @param instanceIndex - The index of the social share instance. + * @param scope - The scope of the social share element. + * @returns The collected social share data. + */ +export const collectSocialData = ( socialShareButton: HTMLElement, elementKey: SocialShareTypes, instanceIndex: number | undefined, scope: HTMLElement | undefined -): SocialShare { +): SocialShare => { const width = collectSize(socialShareButton, 'width', DEFAULT_WIDTH_SETTING_KEY); + const height = collectSize(socialShareButton, 'height', DEFAULT_HEIGHT_SETTING_KEY); const contentElement = queryElement('content', { instanceIndex, scope }); @@ -91,9 +148,16 @@ export function collectSocialData( height, type: elementKey, }; -} - -export function collectSize(button: HTMLElement, settingKey: keyof typeof SETTINGS, defaultValue: number): number { +}; + +/** + * Collects the size of a button element based on a specified setting key. + * @param button - The button element to collect the size from. + * @param settingKey - The key of the setting to use for collecting the size. + * @param defaultValue - The default value to use if the size cannot be collected. + * @returns The size of the button element, or the default value if the size cannot be collected. + */ +export const collectSize = (button: HTMLElement, settingKey: keyof typeof SETTINGS, defaultValue: number): number => { const buttonWidth = getAttribute(button, settingKey); if (buttonWidth) { @@ -102,6 +166,7 @@ export function collectSize(button: HTMLElement, settingKey: keyof typeof SETTIN } const closestElementWidth = button.closest(getSettingSelector(settingKey)); + if (!closestElementWidth) { return defaultValue; } @@ -113,4 +178,4 @@ export function collectSize(button: HTMLElement, settingKey: keyof typeof SETTIN const value = parseInt(closestWidth); return isNaN(value) ? defaultValue : value; -} +}; diff --git a/packages/socialshare/src/actions/index.ts b/packages/socialshare/src/actions/index.ts new file mode 100644 index 000000000..4e0463e55 --- /dev/null +++ b/packages/socialshare/src/actions/index.ts @@ -0,0 +1,3 @@ +export * from './collect'; +export * from './share'; +export * from './trigger'; diff --git a/packages/socialshare/src/actions/share.ts b/packages/socialshare/src/actions/share.ts index 5ccc43078..8196491d6 100644 --- a/packages/socialshare/src/actions/share.ts +++ b/packages/socialshare/src/actions/share.ts @@ -1,3 +1,5 @@ +import ClipboardJS from 'clipboard'; + import { SOCIAL_SHARE_PLATFORMS } from '../utils/constants'; import type { FacebookSocialShare, @@ -8,11 +10,32 @@ import type { TwitterSocialShare, } from './../utils/types'; -export function createFacebookShare({ type, url, hashtags, content, width, height }: FacebookSocialShare) { +/** + * Creates a social share link for copying the URL to the clipboard. + */ +export const createCopyInstance = ({ shareUrl, trigger }: SocialShareStoreData) => { + if (!trigger) return; + + const clipboard = new ClipboardJS(trigger, { + text: () => shareUrl.href, + }); + + clipboard.on('error', (e) => { + console.error('Failed to copy text to clipboard', e.text); + }); +}; + +/** + * Creates a Facebook share link with the given parameters. + */ +export const createFacebookShare = ({ type, url, hashtags, content, width, height }: FacebookSocialShare) => { return createSocialShare(type, { u: url, hashtag: hashtags, quote: content }, width, height); -} +}; -export function createTwitterShare({ type, content, username, hashtags, url, width, height }: TwitterSocialShare) { +/** + * Creates a Twitter share object with the specified properties. + */ +export const createTwitterShare = ({ type, content, username, hashtags, url, width, height }: TwitterSocialShare) => { return createSocialShare( type, { @@ -24,9 +47,12 @@ export function createTwitterShare({ type, content, username, hashtags, url, wid width, height ); -} +}; -export function createPinterestShare({ type, url, image, description, width, height }: PinterestSocialShare) { +/** + * Creates a Pinterest share object with the specified parameters. + */ +export const createPinterestShare = ({ type, url, image, description, width, height }: PinterestSocialShare) => { return createSocialShare( type, { @@ -37,13 +63,19 @@ export function createPinterestShare({ type, url, image, description, width, hei width, height ); -} +}; -export function createLinkedinShare({ type, url, width, height }: SocialShare) { +/** + * Creates a LinkedIn share object with the specified parameters. + */ +export const createLinkedinShare = ({ type, url, width, height }: SocialShare) => { return createSocialShare(type, { url: url }, width, height); -} +}; -export function createRedditShare({ type, url, content, width, height }: SocialShare) { +/** + * Creates a Reddit share object with the given parameters. + */ +export const createRedditShare = ({ type, url, content, width, height }: SocialShare) => { return createSocialShare( type, { @@ -53,9 +85,12 @@ export function createRedditShare({ type, url, content, width, height }: SocialS width, height ); -} +}; -export function createTelegramShare({ type, content, url, width, height }: SocialShare) { +/** + * Creates a Telegram share object with the specified parameters. + */ +export const createTelegramShare = ({ type, content, url, width, height }: SocialShare) => { return createSocialShare( type, { @@ -65,14 +100,17 @@ export function createTelegramShare({ type, content, url, width, height }: Socia width, height ); -} +}; -function createSocialShare( +/** + * Creates a social share object with the given parameters. + */ +const createSocialShare = ( type: SocialShareTypes, params: { [key: string]: string | null }, width: number, height: number -): SocialShareStoreData { +): SocialShareStoreData => { const urlSocialMedia = SOCIAL_SHARE_PLATFORMS[type]; const shareUrl = new URL(urlSocialMedia); @@ -88,4 +126,4 @@ function createSocialShare( type, shareUrl, }; -} +}; diff --git a/packages/socialshare/src/actions/trigger.ts b/packages/socialshare/src/actions/trigger.ts index a0cecdb6c..94908463e 100644 --- a/packages/socialshare/src/actions/trigger.ts +++ b/packages/socialshare/src/actions/trigger.ts @@ -1,9 +1,12 @@ import { addListener, isElement } from '@finsweet/attributes-utils'; -import { SOCIAL_SHARE_PLATFORMS } from '../utils/constants'; -import { getElementSelector } from '../utils/selectors'; -import { stores } from '../utils/stores'; -import type { SocialShareStoreData, SocialShareTypes } from '../utils/types'; +import { + getElementSelector, + SOCIAL_SHARE_PLATFORMS, + type SocialShareStoreData, + type SocialShareTypes, + stores, +} from '../utils'; /** * Listens for trigger clicks on the document. @@ -22,6 +25,7 @@ export const listenTriggerClicks = () => { if (!trigger) continue; const socialShareData = stores[platform].get(trigger); + if (socialShareData) triggerSocialShare(socialShareData); break; } @@ -34,7 +38,9 @@ export const listenTriggerClicks = () => { * Triggers a social share. * @param storeData */ -const triggerSocialShare = ({ width, height, shareUrl }: SocialShareStoreData) => { +const triggerSocialShare = ({ width, height, shareUrl, type }: SocialShareStoreData) => { + if (type === 'copy') return; + const left = window.innerWidth / 2 - width / 2 + window.screenX; const top = window.innerHeight / 2 - height / 2 + window.screenY; const popParams = `scrollbars=no, width=${width}, height=${height}, top=${top}, left=${left}`; diff --git a/packages/socialshare/src/factory.ts b/packages/socialshare/src/factory.ts index e0975e20a..7118bf532 100644 --- a/packages/socialshare/src/factory.ts +++ b/packages/socialshare/src/factory.ts @@ -1,17 +1,28 @@ -import { collectFacebookData, collectPinterestData, collectSocialData, collectTwitterData } from './actions/collect'; +import { isNotEmpty } from '@finsweet/attributes-utils'; + import { + collectCopyData, + collectFacebookData, + collectPinterestData, + collectSocialData, + collectTwitterData, + createCopyInstance, createFacebookShare, createLinkedinShare, createPinterestShare, createRedditShare, createTelegramShare, createTwitterShare, -} from './actions/share'; -import { SOCIAL_SHARE_PLATFORMS } from './utils/constants'; -import { getCMSItemWrapper } from './utils/dom'; -import { getAttribute, getInstanceIndex, queryAllElements } from './utils/selectors'; -import { stores } from './utils/stores'; -import type { SocialShareTypes } from './utils/types'; +} from './actions'; +import { + getAttribute, + getCMSItemWrapper, + getInstanceIndex, + queryAllElements, + SOCIAL_SHARE_PLATFORMS, + type SocialShareTypes, + stores, +} from './utils'; /** * Creates a social share instance for all matching elements under a scope. @@ -39,6 +50,22 @@ export const createSocialShareInstances = (scope?: HTMLElement) => { * Holds an instance creator for each platform. */ const creators: Record void> = { + /** + * Copy creator + * @param trigger + */ + copy(trigger) { + if (stores.copy.has(trigger)) return; + + const instanceIndex = getInstanceIndex(trigger); + + const cmsListItem = getCMSItemWrapper(trigger); + + const copyUrl = collectCopyData(trigger, instanceIndex, cmsListItem); + + createCopyInstance(copyUrl); + }, + /** * Facebook creator. * @param trigger diff --git a/packages/socialshare/src/init.ts b/packages/socialshare/src/init.ts index de05a0ad5..43a90dfc4 100644 --- a/packages/socialshare/src/init.ts +++ b/packages/socialshare/src/init.ts @@ -1,9 +1,9 @@ import type { CMSList } from '@finsweet/attributes-cmscore'; import { type FsAttributeInit, waitAttributeLoaded, waitWebflowReady } from '@finsweet/attributes-utils'; -import { listenTriggerClicks } from './actions/trigger'; +import { listenTriggerClicks } from './actions'; import { createSocialShareInstances } from './factory'; -import { stores } from './utils/stores'; +import { stores } from './utils'; /** * Inits the attribute. diff --git a/packages/socialshare/src/utils/constants.ts b/packages/socialshare/src/utils/constants.ts index e5ee8a4a3..ccca8dc82 100644 --- a/packages/socialshare/src/utils/constants.ts +++ b/packages/socialshare/src/utils/constants.ts @@ -1,6 +1,11 @@ import { type AttributeElements, type AttributeSettings } from '@finsweet/attributes-utils'; export const ELEMENTS = [ + /** + * Defines a Copy URL button + */ + 'copy', + /** * Defines a Facebook social button */ @@ -94,4 +99,5 @@ export const SOCIAL_SHARE_PLATFORMS = { reddit: 'https://www.reddit.com/submit', linkedin: 'https://www.linkedin.com//sharing/share-offsite', telegram: 'https://t.me/share', + copy: window.location.href, } as const; diff --git a/packages/socialshare/src/utils/index.ts b/packages/socialshare/src/utils/index.ts new file mode 100644 index 000000000..3c2384bfb --- /dev/null +++ b/packages/socialshare/src/utils/index.ts @@ -0,0 +1,5 @@ +export * from './constants'; +export * from './dom'; +export * from './selectors'; +export * from './stores'; +export * from './types'; diff --git a/packages/socialshare/src/utils/stores.ts b/packages/socialshare/src/utils/stores.ts index 8e041c2b0..71b9d8613 100644 --- a/packages/socialshare/src/utils/stores.ts +++ b/packages/socialshare/src/utils/stores.ts @@ -7,4 +7,5 @@ export const stores: Record = { telegram: new Map(), linkedin: new Map(), reddit: new Map(), + copy: new Map(), }; diff --git a/packages/socialshare/src/utils/types.ts b/packages/socialshare/src/utils/types.ts index d457da294..b07140a2a 100644 --- a/packages/socialshare/src/utils/types.ts +++ b/packages/socialshare/src/utils/types.ts @@ -29,6 +29,8 @@ export interface PinterestSocialShare extends SocialShare { export type SocialShareStoreData = Pick & { shareUrl: URL; + trigger?: HTMLElement; + clipboard?: ClipboardJS; }; export type SocialShareStore = Map; diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 6d081eff7..000fab4db 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -1,4 +1,4 @@ -lockfileVersion: '6.0' +lockfileVersion: '6.1' settings: autoInstallPeers: true @@ -586,6 +586,9 @@ importers: '@finsweet/attributes-utils': specifier: workspace:* version: link:../utils + clipboard: + specifier: ^2.0.11 + version: 2.0.11 devDependencies: '@finsweet/attributes-cmscore': specifier: workspace:* From 7ddd71f642fe196a3fb3989c9cc195f0f3078c7a Mon Sep 17 00:00:00 2001 From: Robert Kibet Date: Fri, 29 Sep 2023 19:05:50 +0300 Subject: [PATCH 06/24] tests: `socialshare` update tests --- packages/attributes/tests/socialshare.spec.ts | 91 ++++++++++++------- 1 file changed, 57 insertions(+), 34 deletions(-) diff --git a/packages/attributes/tests/socialshare.spec.ts b/packages/attributes/tests/socialshare.spec.ts index 46d9f860a..e75872819 100644 --- a/packages/attributes/tests/socialshare.spec.ts +++ b/packages/attributes/tests/socialshare.spec.ts @@ -1,54 +1,77 @@ -import { test } from '@playwright/test'; +import { expect, type Locator, type Page, test } from '@playwright/test'; import { waitAttributeLoaded } from './utils'; test.beforeEach(async ({ page }) => { - await page.goto('http://fs-attributes.webflow.io/socialshare'); + await page.goto('http://fs-attributes.webflow.io/socialshare-v2'); + + await waitAttributeLoaded(page, 'socialshare'); + + await page.waitForLoadState('domcontentloaded'); }); test.describe('socialshare', () => { - test('Triggers share correctly', async ({ page, context }) => { - await waitAttributeLoaded(page, 'socialshare'); + test('Triggers copy URL correctly', async ({ page }) => { + const inputEl = page.getByTestId('input'); + const currentUrl = await page.url(); + + const options = ['copy']; + + for (const option of options) { + const elements = await page.locator(`[fs-socialshare-element="${option}"]`).all(); + + for (const element of elements) { + expect(element).toBeTruthy(); + + if (option === 'copy') { + await element.click(); + + // focus on the input element to paste + await inputEl.focus(); + + // Simulate paste event using keyboard press + const isMac = await page.evaluate(() => window.navigator.platform.toString().toLowerCase() === 'macintel'); + const modifier = isMac ? 'Meta' : 'Control'; + await page.keyboard.press(`${modifier}+KeyC`); + await page.keyboard.press(`${modifier}+KeyV`); + + await page.waitForTimeout(100); + // Retrieve the input value and check against page url + const inputValue = await inputEl.evaluate((input) => (input as HTMLInputElement).value); + await expect(inputValue).toEqual(currentUrl); + + // clear the input field + await inputEl.fill(''); + + continue; + } + } + } + }); + + test('Triggers share to social media correctly', async ({ page }) => { const facebook1 = page.getByTestId('facebook-1'); const twitter1 = page.getByTestId('twitter-1'); const linkedin1 = page.getByTestId('linkedin-1'); const pinterest1 = page.getByTestId('pinterest-1'); const telegram1 = page.getByTestId('telegram-1'); const reddit1 = page.getByTestId('reddit-1'); - const twitter4 = page.getByTestId('twitter-4').first(); - const pinterest4 = page.getByTestId('pinterest-4').first(); - - await facebook1.click(); - await page.context().waitForEvent('page', (p) => p.url().includes('facebook')); - await context.pages()[1].close(); - - await twitter1.click(); - await page.context().waitForEvent('page', (p) => p.url().includes('twitter')); - await context.pages()[1].close(); - - await linkedin1.click(); - await page.context().waitForEvent('page', (p) => p.url().includes('linkedin')); - await context.pages()[1].close(); - - await pinterest1.click(); - await page.context().waitForEvent('page', (p) => p.url().includes('pinterest')); - await context.pages()[1].close(); - await telegram1.click(); - await page.context().waitForEvent('page', (p) => p.url().includes('t.me')); - await context.pages()[1].close(); + const triggersValidPopup = async (text: string, element: Locator) => { + await element.click(); - await reddit1.click(); - await page.context().waitForEvent('page', (p) => p.url().includes('reddit')); - await context.pages()[1].close(); + const context = await page.context(); - await twitter4.click(); - await page.context().waitForEvent('page', (p) => p.url().includes('twitter')); - await context.pages()[1].close(); + await context.waitForEvent('page', (p) => p.url().includes(text)); + await context.pages()[1].close(); + }; - await pinterest4.click(); - await page.context().waitForEvent('page', (p) => p.url().includes('pinterest')); - await context.pages()[1].close(); + await triggersValidPopup('facebook', facebook1); + await triggersValidPopup('twitter', twitter1); + await triggersValidPopup('linkedin', linkedin1); + await triggersValidPopup('pinterest', pinterest1); + await triggersValidPopup('t.me', telegram1); + await triggersValidPopup('reddit', reddit1); }); }); From b551adc17c4cdbed402f09ef9f1a55a9eebabc65 Mon Sep 17 00:00:00 2001 From: Robert Kibet Date: Wed, 25 Oct 2023 12:53:49 +0300 Subject: [PATCH 07/24] test: readtime --- packages/attributes/tests/readtime.spec.ts | 37 ++++++++++++++++++---- 1 file changed, 31 insertions(+), 6 deletions(-) diff --git a/packages/attributes/tests/readtime.spec.ts b/packages/attributes/tests/readtime.spec.ts index f86c903a1..b532a3fa2 100644 --- a/packages/attributes/tests/readtime.spec.ts +++ b/packages/attributes/tests/readtime.spec.ts @@ -1,19 +1,44 @@ +import { formatNumberToLocale, parseNumericAttribute } from '@finsweet/attributes-utils'; import { expect, test } from '@playwright/test'; import { waitAttributeLoaded } from './utils'; -test.beforeEach(async ({ page }) => { +const DEFAULT_WPM = 265; +const DEFAULT_DECIMALS = 0; +const DEFAULT_LOCALE = 'auto'; + +test.beforeEach(async ({ page, browser }) => { + // set locale to es-ES + await browser.newContext({ + locale: 'es-ES', + }); + await page.goto('http://fs-attributes.webflow.io/readtime'); }); test.describe('readtime', () => { - test('Displays the read time', async ({ page }) => { + test('Displays the read time for each instance', async ({ page }) => { await waitAttributeLoaded(page, 'readtime'); - const timeElement = page.locator('[fs-readtime-element="time"]'); - await expect(timeElement).toHaveText('4.2'); + const elements = await page.locator('[fs-readtime-element="time"][fs-readtime-instance]').all(); + + for (const element of elements) { + const readtime = await element.textContent(); + + expect(readtime).toBeTruthy(); + + expect(readtime?.length).toBeGreaterThan(2); + } + }); + + test('Displays the read time in locality', async ({ page }) => { + await waitAttributeLoaded(page, 'readtime'); + + // test es-ES locale + const element = await page.locator('[fs-readtime-element="time"][fs-readtime-locale="es-ES"]'); + + const readtime = await element.textContent(); - const timeElement2 = page.locator('[fs-readtime-element="time-2"]'); - await expect(timeElement2).toHaveText('1.0'); + expect(readtime).toBe('1,0 minuto'); }); }); From 88067813df77c67452af474ec09b31268d5c6063 Mon Sep 17 00:00:00 2001 From: Robert Kibet Date: Wed, 25 Oct 2023 13:40:28 +0300 Subject: [PATCH 08/24] test: autovideo --- packages/attributes/tests/autovideo.spec.ts | 26 +++++++++++++-------- 1 file changed, 16 insertions(+), 10 deletions(-) diff --git a/packages/attributes/tests/autovideo.spec.ts b/packages/attributes/tests/autovideo.spec.ts index a354271a4..6772a7d30 100644 --- a/packages/attributes/tests/autovideo.spec.ts +++ b/packages/attributes/tests/autovideo.spec.ts @@ -1,20 +1,26 @@ -import { test } from '@playwright/test'; +import { expect, test } from '@playwright/test'; import { waitAttributeLoaded } from './utils'; -test.beforeEach(async ({}) => { - // await page.goto('http://fs-attributes.webflow.io/autovideo'); +test.beforeEach(async ({ page }) => { + await page.goto('http://fs-attributes.webflow.io/autovideo'); }); test.describe('autovideo', () => { test('Videos are played/paused based on the viewport', async ({ page }) => { await waitAttributeLoaded(page, 'autovideo'); - // const video = page.locator('video').first(); - // await video.scrollIntoViewIfNeeded(); - // const pausedState = await video.evaluate((e) => e.paused); - // expect(pausedState).toBe(false); - // await page.evaluate(() => window.scrollTo(0, document.body.scrollHeight)); - // const pausedState2 = await video.evaluate((e) => e.paused); - // expect(pausedState2).toBe(true); + + const video = page.locator('video').first(); + await video.scrollIntoViewIfNeeded(); + + const pausedState = await video.evaluate((e) => e.paused); + + expect(pausedState).toBe(false); + + await page.evaluate(() => window.scrollTo(0, document.body.scrollHeight)); + + const pausedState2 = await video.evaluate((e) => e.paused); + + expect(pausedState2).toBe(true); }); }); From f5379b1ab06225c43fb7e30f8937aff27fcb9981 Mon Sep 17 00:00:00 2001 From: Robert Kibet Date: Thu, 26 Oct 2023 15:38:42 +0300 Subject: [PATCH 09/24] fix: modal v2 tests and update playwright with comment - there seems to be an issue with webkit browsers tests, need to investigate --- package.json | 2 +- packages/attributes/tests/modal.spec.ts | 38 ++++++++++++++++--------- pnpm-lock.yaml | 27 +++++++++++------- 3 files changed, 42 insertions(+), 25 deletions(-) diff --git a/package.json b/package.json index 5e31826e1..4867b5a6d 100644 --- a/package.json +++ b/package.json @@ -19,7 +19,7 @@ "@changesets/cli": "^2.26.1", "@finsweet/eslint-config": "^2.0.5", "@finsweet/tsconfig": "^1.3.2", - "@playwright/test": "^1.35.0", + "@playwright/test": "^1.39.0", "@typescript-eslint/eslint-plugin": "^5.59.11", "@typescript-eslint/parser": "^5.59.11", "@webflow/designer-extension-typings": "^0.1.5", diff --git a/packages/attributes/tests/modal.spec.ts b/packages/attributes/tests/modal.spec.ts index dd503e6ed..5b0b5630a 100644 --- a/packages/attributes/tests/modal.spec.ts +++ b/packages/attributes/tests/modal.spec.ts @@ -3,32 +3,42 @@ import { expect, test } from '@playwright/test'; import { waitAttributeLoaded } from './utils'; test.beforeEach(async ({ page }) => { - await page.goto('http://fs-attributes.webflow.io/modal'); + await page.goto('https://fs-attributes.webflow.io/modal'); + page.on('console', (msg) => console.log('PAGE LOG:', msg.text())); }); test.describe('modal', () => { - test('Modal opens + settings work', async ({ page }) => { + test('Modal opens + settings work', async ({ page, browserName }) => { + if (browserName === 'webkit') { + // todo: seems to be a bug in webkit, tests fails with this error: Target closed + // found something similar: https://github.com/microsoft/playwright/issues/27615 + // fails on my Windows PC + // todo: investigate on other OS + return; + } + await waitAttributeLoaded(page, 'modal'); - const modal1 = page.locator('[fs-modal-element="modal-1"]'); - const modal5 = page.locator('[fs-modal-element="modal-5"]'); - const openTrigger1 = page.locator('[fs-modal-element="open-1"]'); - const openTrigger5 = page.locator('[fs-modal-element="open-5"]'); - const closeTrigger1 = page.locator('[fs-modal-element="close-1"]'); + const modal1 = await page.locator('[fs-modal-element="modal"][fs-modal-instance="one"]'); + const openTrigger1 = await page.locator('[fs-modal-element="open"][fs-modal-instance="one"]'); + const closeTrigger1 = await page.locator('[fs-modal-element="close"][fs-modal-instance="one"]').all(); + + const modal4 = await page.locator('[fs-modal-element="modal"][fs-modal-instance="five"]'); + const openTrigger4 = await page.locator('[fs-modal-element="open"][fs-modal-instance="five"]'); // Opens - await openTrigger1.first().click(); - await page.waitForTimeout(300); + await openTrigger1.click(); + await page.waitForTimeout(1000); await expect(modal1).toHaveCSS('display', 'flex'); // Closes - await closeTrigger1.nth(1).click({ force: true }); - await page.waitForTimeout(300); + await closeTrigger1[1].click(); + await page.waitForTimeout(1000); await expect(modal1).toHaveCSS('display', 'none'); // Opens with custom display property - await openTrigger5.first().click(); - await page.waitForTimeout(300); - await expect(modal5).toHaveCSS('display', 'block'); + await openTrigger4.click(); + await page.waitForTimeout(1000); + await expect(modal4).toHaveCSS('display', 'block'); }); }); diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 1259d8f1e..a93739fde 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -26,8 +26,8 @@ importers: specifier: ^1.3.2 version: 1.3.2(typescript@5.1.3) '@playwright/test': - specifier: ^1.35.0 - version: 1.35.0 + specifier: ^1.39.0 + version: 1.39.0 '@typescript-eslint/eslint-plugin': specifier: ^5.59.11 version: 5.59.11(@typescript-eslint/parser@5.59.11)(eslint@8.42.0)(typescript@5.1.3) @@ -1496,15 +1496,12 @@ packages: fastq: 1.15.0 dev: true - /@playwright/test@1.35.0: - resolution: {integrity: sha512-6qXdd5edCBynOwsz1YcNfgX8tNWeuS9fxy5o59D0rvHXxRtjXRebB4gE4vFVfEMXl/z8zTnAzfOs7aQDEs8G4Q==} + /@playwright/test@1.39.0: + resolution: {integrity: sha512-3u1iFqgzl7zr004bGPYiN/5EZpRUSFddQBra8Rqll5N0/vfpqlP9I9EXqAoGacuAbX6c9Ulg/Cjqglp5VkK6UQ==} engines: {node: '>=16'} hasBin: true dependencies: - '@types/node': 18.16.1 - playwright-core: 1.35.0 - optionalDependencies: - fsevents: 2.3.2 + playwright: 1.39.0 dev: true /@types/body-scroll-lock@3.1.0: @@ -3270,12 +3267,22 @@ packages: find-up: 4.1.0 dev: true - /playwright-core@1.35.0: - resolution: {integrity: sha512-muMXyPmIx/2DPrCHOD1H1ePT01o7OdKxKj2ebmCAYvqhUy+Y1bpal7B0rdoxros7YrXI294JT/DWw2LqyiqTPA==} + /playwright-core@1.39.0: + resolution: {integrity: sha512-+k4pdZgs1qiM+OUkSjx96YiKsXsmb59evFoqv8SKO067qBA+Z2s/dCzJij/ZhdQcs2zlTAgRKfeiiLm8PQ2qvw==} engines: {node: '>=16'} hasBin: true dev: true + /playwright@1.39.0: + resolution: {integrity: sha512-naE5QT11uC/Oiq0BwZ50gDmy8c8WLPRTEWuSSFVG2egBka/1qMoSqYQcROMT9zLwJ86oPofcTH2jBY/5wWOgIw==} + engines: {node: '>=16'} + hasBin: true + dependencies: + playwright-core: 1.39.0 + optionalDependencies: + fsevents: 2.3.2 + dev: true + /preferred-pm@3.0.3: resolution: {integrity: sha512-+wZgbxNES/KlJs9q40F/1sfOd/j7f1O9JaHcW5Dsn3aUUOZg3L2bjpVUcKV2jvtElYfoTuQiNeMfQJ4kwUAhCQ==} engines: {node: '>=10'} From ee0c81950de43ffe1c9f98072b91b90293c0579e Mon Sep 17 00:00:00 2001 From: Robert Kibet Date: Thu, 26 Oct 2023 15:53:14 +0300 Subject: [PATCH 10/24] test: mirrorinput --- packages/attributes/tests/mirrorinput.spec.ts | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/packages/attributes/tests/mirrorinput.spec.ts b/packages/attributes/tests/mirrorinput.spec.ts index b3d17d789..994fbc01b 100644 --- a/packages/attributes/tests/mirrorinput.spec.ts +++ b/packages/attributes/tests/mirrorinput.spec.ts @@ -7,10 +7,14 @@ test.beforeEach(async ({ page }) => { }); const getTriggerLocators = (page: Page) => - [1, 2, 3, 4, 5].map((id) => page.locator(`[fs-mirrorinput-element="trigger-${id}"]`)); + ['one', 'two', 'three', 'four', 'five'].map((id) => + page.locator(`[fs-mirrorinput-element="trigger"][fs-mirrorinput-instance="${id}"]`) + ); const getTargetLocators = (page: Page) => - [1, 2, 3, 4, 5].map((id) => page.locator(`[fs-mirrorinput-element="target-${id}"]`)); + ['one', 'two', 'three', 'four', 'five'].map((id) => + page.locator(`[fs-mirrorinput-element="target"][fs-mirrorinput-instance="${id}"]`) + ); test.describe('mirrorinput', () => { test("Mirrors each trigger's input", async ({ page }) => { From 32a0f6a89e00ece6bb7dbb7ea85f561a70f6e1f9 Mon Sep 17 00:00:00 2001 From: Robert Kibet Date: Thu, 26 Oct 2023 15:59:11 +0300 Subject: [PATCH 11/24] tests: mirrorclick add instance to selector --- packages/attributes/tests/mirrorclick.spec.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/attributes/tests/mirrorclick.spec.ts b/packages/attributes/tests/mirrorclick.spec.ts index bd6dd3c3c..4cc3d407d 100644 --- a/packages/attributes/tests/mirrorclick.spec.ts +++ b/packages/attributes/tests/mirrorclick.spec.ts @@ -14,7 +14,7 @@ test.describe('mirrorclick', () => { await expect(dots.first()).toHaveClass(/w-active/); - const richArrorMirrorButton = page.locator('[fs-mirrorclick-element="trigger-2"]'); + const richArrorMirrorButton = page.locator('[fs-mirrorclick-element="trigger"][fs-mirrorclick-instance="2"]'); await richArrorMirrorButton.click(); await expect(dots.nth(1)).toHaveClass(/w-active/); From e7eeb6014295be8328b6922c6a0b8dc4b85b5de1 Mon Sep 17 00:00:00 2001 From: Robert Kibet Date: Thu, 26 Oct 2023 16:20:52 +0300 Subject: [PATCH 12/24] tests: inputcounter add instance --- packages/attributes/tests/inputcounter.spec.ts | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/packages/attributes/tests/inputcounter.spec.ts b/packages/attributes/tests/inputcounter.spec.ts index 3349c4c7a..9ae0b1206 100644 --- a/packages/attributes/tests/inputcounter.spec.ts +++ b/packages/attributes/tests/inputcounter.spec.ts @@ -10,11 +10,11 @@ test.describe('inputcounter', () => { test('Initial + step, min, max + increment, decrement, reset', async ({ page }) => { await waitAttributeLoaded(page, 'inputcounter'); - const input = page.getByTestId('input'); - const incrementButton = page.getByTestId('increment'); - const decrementButton = page.getByTestId('decrement'); - const resetBtn = page.getByTestId('reset'); - const clearBtn = page.getByTestId('clear'); + const input = page.locator('[fs-inputcounter-element="input"][fs-inputcounter-instance="4"]'); + const incrementButton = page.locator('[fs-inputcounter-element="increment"][fs-inputcounter-instance="4"]'); + const decrementButton = page.locator('[fs-inputcounter-element="decrement"][fs-inputcounter-instance="4"]'); + const resetBtn = page.locator('[fs-inputcounter-element="reset"][fs-inputcounter-instance="4"]'); + const clearBtn = page.locator('[fs-inputcounter-element="clear"][fs-inputcounter-instance="4"]'); let resetButton; From 6bb864a5fc8d742b7f3c4902cf395a56db5e0fdc Mon Sep 17 00:00:00 2001 From: Robert Kibet Date: Thu, 26 Oct 2023 16:29:06 +0300 Subject: [PATCH 13/24] tests: countitems add instance selector --- packages/attributes/tests/countitems.spec.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/attributes/tests/countitems.spec.ts b/packages/attributes/tests/countitems.spec.ts index 8a21bf8a5..88c789f64 100644 --- a/packages/attributes/tests/countitems.spec.ts +++ b/packages/attributes/tests/countitems.spec.ts @@ -10,8 +10,8 @@ test.describe('countitems', () => { test('Displays the items count', async ({ page }) => { await waitAttributeLoaded(page, 'countitems'); - const value1 = page.getByTestId('value-1'); - const value2 = page.getByTestId('value-2'); + const value1 = page.locator('[fs-countitems-element="value"][fs-countitems-instance="one"]'); + const value2 = page.locator('[fs-countitems-element="value"][fs-countitems-instance="two"]'); await expect(value1).toHaveText('35'); await expect(value2).toHaveText('6'); From bb6e75dacd28d8568d1c80a7b513f861a8cd7a13 Mon Sep 17 00:00:00 2001 From: Robert Kibet Date: Thu, 26 Oct 2023 16:41:42 +0300 Subject: [PATCH 14/24] tests: displayvalues add instance selectors --- packages/attributes/tests/displayvalues.spec.ts | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/packages/attributes/tests/displayvalues.spec.ts b/packages/attributes/tests/displayvalues.spec.ts index d4c4f5867..10101e672 100644 --- a/packages/attributes/tests/displayvalues.spec.ts +++ b/packages/attributes/tests/displayvalues.spec.ts @@ -7,10 +7,14 @@ test.beforeEach(async ({ page }) => { }); const getSourceLocators = (page: Page) => - [1, 2, 3, 4, 5, 6].map((id) => page.locator(`[fs-displayvalues-element="source-${id}"]`)); + [1, 2, 3, 4, 5, 6].map((id) => + page.locator(`[fs-displayvalues-element="source"][fs-displayvalues-instance="${id}"]`) + ); const getTargetLocators = (page: Page) => - [1, 2, 3, 4, 5, 6].map((id) => page.locator(`[fs-displayvalues-element="target-${id}"]`)); + [1, 2, 3, 4, 5, 6].map((id) => + page.locator(`[fs-displayvalues-element="target"][fs-displayvalues-instance="${id}"]`) + ); test.describe('displayvalues', () => { test("Displays each element's value", async ({ page }) => { From 8b9895401bdf1c8a2a46f8dfc4808fba6ed4ec6c Mon Sep 17 00:00:00 2001 From: Robert Kibet Date: Thu, 26 Oct 2023 17:13:36 +0300 Subject: [PATCH 15/24] tests: toc using selectors, added a todo for webkit --- packages/attributes/tests/toc.spec.ts | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/packages/attributes/tests/toc.spec.ts b/packages/attributes/tests/toc.spec.ts index 6a5ec1d38..ca7020b39 100644 --- a/packages/attributes/tests/toc.spec.ts +++ b/packages/attributes/tests/toc.spec.ts @@ -7,20 +7,24 @@ test.beforeEach(async ({ page }) => { }); test.describe('toc', () => { - test('Creates the TOC correctly', async ({ page }) => { + test('Creates the TOC correctly', async ({ page, browserName }) => { + if (browserName === 'webkit') { + // todo: webkit seems to have a bug with the toc attribute, fails with a timeout error + return; + } await waitAttributeLoaded(page, 'toc'); - const tocWrapper1 = page.getByTestId('toc-wrapper-1'); - const contents1 = page.getByTestId('contents-1'); + const tocWrapper1 = page.locator('[fs-toc-element="table"][fs-toc-instance="one"]'); + const contents1 = page.locator('[fs-toc-element="contents"][fs-toc-instance="one"]'); const h2ID = '#the-best-part-about-h2-elements'; const h23ID = '#h3-is-one-number-lower-than-h2-2'; const h235ID = '#im-an-incorrectly-placed-h5'; // Splits the contents correctly and adds an ID to each section - const h2Wrapper = contents1.locator(h2ID); - const h23Wrapper = h2Wrapper.locator(h23ID); - const h235Wrapper = h2Wrapper.locator(h235ID); + const h2Wrapper = await contents1.locator(h2ID); + const h23Wrapper = await h2Wrapper.locator(h23ID); + const h235Wrapper = await h2Wrapper.locator(h235ID); await expect(h2Wrapper).toBeVisible(); await expect(h23Wrapper).toBeVisible(); From a8da41428f25f2c5f90111c762a73d24052268af Mon Sep 17 00:00:00 2001 From: Robert Kibet Date: Mon, 30 Oct 2023 11:54:46 +0300 Subject: [PATCH 16/24] tests: `a11y` Tab key has issues in webkit, removed for now and attached refs to the git issue --- packages/attributes/tests/a11y.spec.ts | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/packages/attributes/tests/a11y.spec.ts b/packages/attributes/tests/a11y.spec.ts index 962be8139..bc34e1fc4 100644 --- a/packages/attributes/tests/a11y.spec.ts +++ b/packages/attributes/tests/a11y.spec.ts @@ -35,7 +35,15 @@ test.describe('aria-controls', () => { await expect(header).not.toHaveAttribute('aria-expanded', /(.*?)/); }); - test('Traps focus in dialogs', async ({ page }) => { + test('Traps focus in dialogs', async ({ page, browserName }) => { + if (browserName === 'webkit') { + // Seems like Tab is a browser setting that needs to be enabled first? https://github.com/microsoft/playwright/issues/2114#issue-612491788 + // another related issue: https://github.com/microsoft/playwright/issues/5609 + // suggested approach is page.keyboard.press('Alt+Tab'); but that doesn't seem to work either :( + + return; + } + await waitAttributeLoaded(page, 'a11y'); const modal = page.getByTestId('modal'); From 216a53babe45b1d5a8a1525cb826556c06fc466b Mon Sep 17 00:00:00 2001 From: Robert Kibet Date: Mon, 30 Oct 2023 14:06:12 +0300 Subject: [PATCH 17/24] tests: `inputactive` remove mising test selector --- packages/attributes/tests/inputactive.spec.ts | 9 --------- 1 file changed, 9 deletions(-) diff --git a/packages/attributes/tests/inputactive.spec.ts b/packages/attributes/tests/inputactive.spec.ts index 339dff4c5..d13b95d32 100644 --- a/packages/attributes/tests/inputactive.spec.ts +++ b/packages/attributes/tests/inputactive.spec.ts @@ -12,8 +12,6 @@ test.describe('inputactive', () => { const checkbox1 = page.getByTestId('checkbox-1-1'); const checkbox2 = page.getByTestId('checkbox-2-1'); - const checkbox31 = page.getByTestId('checkbox-3-1'); - const checkbox32 = page.getByTestId('checkbox-3-2'); const radio11 = page.getByTestId('radio-1-1'); const radio12 = page.getByTestId('radio-1-2'); const radio21 = page.getByTestId('radio-2-1'); @@ -33,13 +31,6 @@ test.describe('inputactive', () => { await checkbox2.click(); await expect(checkbox2).toHaveClass(/is-cool/); - await checkbox31.click(); - await expect(checkbox31).toHaveClass(/is-cool/); - - // Checkboxes (individual) - await checkbox32.click(); - await expect(checkbox32).toHaveClass(/is-cooler/); - // Radios (default) await expect(radio11).not.toHaveClass(/is-active-inputactive/); await radio11.click(); From 79989f4e2e6a66041a5ce46e66fae7d4e268758d Mon Sep 17 00:00:00 2001 From: Robert Kibet Date: Mon, 30 Oct 2023 14:43:15 +0300 Subject: [PATCH 18/24] fix: cleanup lint issues --- packages/attributes/tests/combobox.spec.ts | 2 ++ packages/attributes/tests/readtime.spec.ts | 5 ----- packages/attributes/tests/socialshare.spec.ts | 4 ++-- packages/cmsfilter/src/utils/highlightText.ts | 4 ++-- packages/socialshare/src/actions/collect.ts | 2 +- packages/socialshare/src/factory.ts | 2 -- packages/utils/src/helpers/selectors.ts | 1 - 7 files changed, 7 insertions(+), 13 deletions(-) diff --git a/packages/attributes/tests/combobox.spec.ts b/packages/attributes/tests/combobox.spec.ts index 00fcb2ac4..877fc7331 100644 --- a/packages/attributes/tests/combobox.spec.ts +++ b/packages/attributes/tests/combobox.spec.ts @@ -150,6 +150,8 @@ test.describe('combobox', () => { await comboboxInput.press('ArrowDown'); await expect(comboboxNav).toHaveClass(/w--open/); + await page.waitForTimeout(1000); + const firstOption = comboboxOptions.nth(0); const activeElement = await page.evaluate(() => document.activeElement?.getAttribute('id')); diff --git a/packages/attributes/tests/readtime.spec.ts b/packages/attributes/tests/readtime.spec.ts index b532a3fa2..1d8848fd7 100644 --- a/packages/attributes/tests/readtime.spec.ts +++ b/packages/attributes/tests/readtime.spec.ts @@ -1,12 +1,7 @@ -import { formatNumberToLocale, parseNumericAttribute } from '@finsweet/attributes-utils'; import { expect, test } from '@playwright/test'; import { waitAttributeLoaded } from './utils'; -const DEFAULT_WPM = 265; -const DEFAULT_DECIMALS = 0; -const DEFAULT_LOCALE = 'auto'; - test.beforeEach(async ({ page, browser }) => { // set locale to es-ES await browser.newContext({ diff --git a/packages/attributes/tests/socialshare.spec.ts b/packages/attributes/tests/socialshare.spec.ts index e75872819..624595728 100644 --- a/packages/attributes/tests/socialshare.spec.ts +++ b/packages/attributes/tests/socialshare.spec.ts @@ -1,9 +1,9 @@ -import { expect, type Locator, type Page, test } from '@playwright/test'; +import { expect, type Locator, test } from '@playwright/test'; import { waitAttributeLoaded } from './utils'; test.beforeEach(async ({ page }) => { - await page.goto('http://fs-attributes.webflow.io/socialshare-v2'); + await page.goto('http://fs-attributes.webflow.io/socialshare'); await waitAttributeLoaded(page, 'socialshare'); diff --git a/packages/cmsfilter/src/utils/highlightText.ts b/packages/cmsfilter/src/utils/highlightText.ts index b1b406d04..214eaaae9 100644 --- a/packages/cmsfilter/src/utils/highlightText.ts +++ b/packages/cmsfilter/src/utils/highlightText.ts @@ -15,11 +15,11 @@ export const highlightText = (htmlString: string, target: string, wrapperClass: * @param {Node} node - The current node to check. */ const traverseAndHighlight = (node: Node) => { - let next: Node | null = null; + // let next: Node | null = null; const childNodesArray = Array.from(node.childNodes); for (const child of childNodesArray) { - next = child.nextSibling; + // next = child.nextSibling; if (child.nodeType === Node.TEXT_NODE) { const textContent = child.nodeValue || ''; diff --git a/packages/socialshare/src/actions/collect.ts b/packages/socialshare/src/actions/collect.ts index be3a3e53a..9df7aa92a 100644 --- a/packages/socialshare/src/actions/collect.ts +++ b/packages/socialshare/src/actions/collect.ts @@ -44,7 +44,7 @@ export const collectCopyData = ( */ export const collectFacebookData = ( trigger: HTMLElement, - instanceIndex: number | undefined, + instanceIndex: string | undefined, scope: HTMLElement | undefined ): FacebookSocialShare => { const socialData = collectSocialData(trigger, 'facebook', instanceIndex, scope); diff --git a/packages/socialshare/src/factory.ts b/packages/socialshare/src/factory.ts index 7118bf532..f518d19a1 100644 --- a/packages/socialshare/src/factory.ts +++ b/packages/socialshare/src/factory.ts @@ -1,5 +1,3 @@ -import { isNotEmpty } from '@finsweet/attributes-utils'; - import { collectCopyData, collectFacebookData, diff --git a/packages/utils/src/helpers/selectors.ts b/packages/utils/src/helpers/selectors.ts index e185020a1..fd170b857 100644 --- a/packages/utils/src/helpers/selectors.ts +++ b/packages/utils/src/helpers/selectors.ts @@ -1,5 +1,4 @@ import type { AttributeElements, AttributeSettings, FsAttributeKey } from '../types'; -import { isNumber } from './guards'; /** * @returns Selector helpers for the defined Attribute Elements and Settings. From a6d92acc28121b0e928dea5bd75e39769d9ec828 Mon Sep 17 00:00:00 2001 From: Robert Kibet Date: Mon, 30 Oct 2023 15:59:39 +0300 Subject: [PATCH 19/24] tests: cmssort add instances --- packages/attributes/tests/cmssort.spec.ts | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/packages/attributes/tests/cmssort.spec.ts b/packages/attributes/tests/cmssort.spec.ts index 2d180bbc1..53cd18af2 100644 --- a/packages/attributes/tests/cmssort.spec.ts +++ b/packages/attributes/tests/cmssort.spec.ts @@ -12,8 +12,10 @@ test.describe('cmssort', () => { await waitAttributeLoaded(page, 'cmssort'); // HTML Select Dropdown - const trigger1 = page.locator('[fs-cmssort-element="trigger"]'); - const list1 = page.locator('[fs-cmssort-element="list"]'); + // need to pick the first index since locator will resolve to multiple elements of the same attribute + // the first should not have any instance hence index 0 + const trigger1 = (await page.locator('[fs-cmssort-element="trigger"]').all())[0]; + const list1 = (await page.locator('[fs-cmssort-element="list"]').all())[0]; const listItems1 = list1.locator('.w-dyn-item'); await expect(listItems1.first()).toHaveText(/Project 35/); @@ -51,11 +53,11 @@ test.describe('cmssort', () => { await expect(listItems1.first()).toHaveText(/Project 33/); // Buttons - const triggers2 = page.locator('[fs-cmssort-element="trigger-2"]'); + const triggers2 = page.locator('[fs-cmssort-element="trigger"][fs-cmssort-instance="2"]'); const nameTrigger = triggers2.nth(0); const yearTrigger = triggers2.nth(1); const numberTrigger = triggers2.nth(3); - const list2 = page.locator('[fs-cmssort-element="list-2"]'); + const list2 = page.locator('[fs-cmssort-element="list"][fs-cmssort-instance="2"]'); const listItems2 = list2.locator('.w-dyn-item'); await expect(listItems2.first()).toHaveText(/Project 35/); From e0600d15dc8712dd34f0874d1e1185c078310129 Mon Sep 17 00:00:00 2001 From: Robert Kibet Date: Fri, 19 Jan 2024 13:36:13 +0300 Subject: [PATCH 20/24] fix numbercount: resolve when duration is zero and fix socialshare tests --- packages/attributes/tests/socialshare.spec.ts | 37 +++++++------------ packages/numbercount/src/actions/animate.ts | 18 ++++----- 2 files changed, 22 insertions(+), 33 deletions(-) diff --git a/packages/attributes/tests/socialshare.spec.ts b/packages/attributes/tests/socialshare.spec.ts index 624595728..f0e0a978d 100644 --- a/packages/attributes/tests/socialshare.spec.ts +++ b/packages/attributes/tests/socialshare.spec.ts @@ -1,4 +1,4 @@ -import { expect, type Locator, test } from '@playwright/test'; +import { expect, test } from '@playwright/test'; import { waitAttributeLoaded } from './utils'; @@ -6,14 +6,12 @@ test.beforeEach(async ({ page }) => { await page.goto('http://fs-attributes.webflow.io/socialshare'); await waitAttributeLoaded(page, 'socialshare'); - - await page.waitForLoadState('domcontentloaded'); }); test.describe('socialshare', () => { test('Triggers copy URL correctly', async ({ page }) => { const inputEl = page.getByTestId('input'); - const currentUrl = await page.url(); + const currentUrl = page.url(); const options = ['copy']; @@ -35,8 +33,6 @@ test.describe('socialshare', () => { await page.keyboard.press(`${modifier}+KeyC`); await page.keyboard.press(`${modifier}+KeyV`); - await page.waitForTimeout(100); - // Retrieve the input value and check against page url const inputValue = await inputEl.evaluate((input) => (input as HTMLInputElement).value); await expect(inputValue).toEqual(currentUrl); @@ -50,28 +46,21 @@ test.describe('socialshare', () => { } }); - test('Triggers share to social media correctly', async ({ page }) => { - const facebook1 = page.getByTestId('facebook-1'); - const twitter1 = page.getByTestId('twitter-1'); - const linkedin1 = page.getByTestId('linkedin-1'); - const pinterest1 = page.getByTestId('pinterest-1'); - const telegram1 = page.getByTestId('telegram-1'); - const reddit1 = page.getByTestId('reddit-1'); + test('Triggers share to social media correctly', async ({ page, context }) => { + const socialMediaSites = ['facebook', 'twitter', 'linkedin', 'pinterest', 't.me', 'reddit']; - const triggersValidPopup = async (text: string, element: Locator) => { - await element.click(); + const triggersValidPopups = async (sites: string[]) => { + for (const site of sites) { + const identifier = site === 't.me' ? 'telegram' : site; - const context = await page.context(); + const element = page.getByTestId(`${identifier}-1`); + await element.click(); - await context.waitForEvent('page', (p) => p.url().includes(text)); - await context.pages()[1].close(); + await context.waitForEvent('page', (p) => p.url().includes(site)); + await context.pages()[1].close(); + } }; - await triggersValidPopup('facebook', facebook1); - await triggersValidPopup('twitter', twitter1); - await triggersValidPopup('linkedin', linkedin1); - await triggersValidPopup('pinterest', pinterest1); - await triggersValidPopup('t.me', telegram1); - await triggersValidPopup('reddit', reddit1); + await triggersValidPopups(socialMediaSites); }); }); diff --git a/packages/numbercount/src/actions/animate.ts b/packages/numbercount/src/actions/animate.ts index ed1bcc6fc..7763d9d9a 100644 --- a/packages/numbercount/src/actions/animate.ts +++ b/packages/numbercount/src/actions/animate.ts @@ -2,11 +2,11 @@ import { valueToString } from '../utils/helpers'; /** * Animates a number element. - * @param {Element} numberElement - The element where the number will be displayed. + * @param {HTMLElement} numberElement - The element where the number will be displayed. * @param {number} start - The starting number. * @param {number} end - The ending number. * @param {number} duration - The duration of the animation in milliseconds. - * @param {string | true | null} locale - The locale for formatting the number. + * @param {string} locale - The locale for formatting the number. */ export const animateNumberCount = ( numberElement: Element, @@ -14,13 +14,16 @@ export const animateNumberCount = ( end: number, duration: number, locale?: string | true | null -) => { - let startTime: number | null = null; +): void => { + if (duration <= 0) { + // Handle cases where duration is zero or negative to prevent infinite loop. + numberElement.textContent = valueToString(end, locale); + return; + } + let startTime: number | null = null; const step = (timestamp: number) => { if (startTime === null) startTime = timestamp; - - // Calculate the elapsed time since the animation started. const elapsed = timestamp - startTime; const progress = Math.min(elapsed / duration, 1); @@ -28,14 +31,11 @@ export const animateNumberCount = ( numberElement.textContent = valueToString(Math.floor(value), locale); - // If the animation is not yet complete, request the next frame. if (progress < 1) { requestAnimationFrame(step); - return; } - // If the progress is 1 (animation complete), set the final value. numberElement.textContent = valueToString(end, locale); }; From e510560a812df27a753e1df12255e52055d9a12b Mon Sep 17 00:00:00 2001 From: Robert Kibet Date: Fri, 19 Jan 2024 13:36:53 +0300 Subject: [PATCH 21/24] tests: fix cmsload (legacy) add instances --- packages/attributes/tests/cmsload.spec.ts | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/packages/attributes/tests/cmsload.spec.ts b/packages/attributes/tests/cmsload.spec.ts index fc403d82c..91a40c93e 100644 --- a/packages/attributes/tests/cmsload.spec.ts +++ b/packages/attributes/tests/cmsload.spec.ts @@ -11,7 +11,7 @@ test.describe('cmsload', () => { await waitAttributeLoaded(page, 'cmsload'); // Pagination mode - const collectionWrapper1 = page.locator('[fs-cmsload-element="list-1"]'); + const collectionWrapper1 = page.locator('[fs-cmsload-element="list"][fs-cmsload-instance="1"]'); const collectionItems1 = collectionWrapper1.locator('.w-dyn-item'); const paginationPrevious1 = collectionWrapper1.locator('.w-pagination-previous'); const paginationNext1 = collectionWrapper1.locator('.w-pagination-next'); @@ -47,7 +47,7 @@ test.describe('cmsload', () => { await expect(paginationNext1).toBeHidden(); // Load Under mode - const collectionWrapper2 = page.locator('[fs-cmsload-element="list-2"]'); + const collectionWrapper2 = page.locator('[fs-cmsload-element="list"][fs-cmsload-instance="2"]'); const collectionItems2 = collectionWrapper2.locator('.w-dyn-item'); const paginationNext2 = collectionWrapper2.locator('.w-pagination-next'); @@ -60,7 +60,7 @@ test.describe('cmsload', () => { expect(await collectionItems2.count()).toBe(4); // Infinite mode - const collectionWrapper3 = page.locator('[fs-cmsload-element="list-3"]'); + const collectionWrapper3 = page.locator('[fs-cmsload-element="list"][fs-cmsload-instance="3"]'); const collectionItems3 = collectionWrapper3.locator('.w-dyn-item'); expect(await collectionItems3.count()).toBe(6); @@ -77,7 +77,7 @@ test.describe('cmsload', () => { // expect(await collectionItems3.count()).toBeGreaterThan(6); // Render All mode - const collectionWrapper4 = page.locator('[fs-cmsload-element="list-4"]'); + const collectionWrapper4 = page.locator('[fs-cmsload-element="list"][fs-cmsload-instance="4"]'); const collectionItems4 = collectionWrapper4.locator('.w-dyn-item'); expect(await collectionItems4.count()).toBe(35); From 831f38b73687f5318c8c00345dca8d41ef819f1f Mon Sep 17 00:00:00 2001 From: Robert Kibet Date: Fri, 19 Jan 2024 15:01:20 +0300 Subject: [PATCH 22/24] fix: lint issues --- packages/attributes/tests/nativesearch.spec.ts | 2 +- packages/calevent/src/actions/collect.ts | 8 ++++---- packages/calevent/src/utils/html.ts | 4 ++-- packages/nativesearch/src/actions/search.ts | 2 -- 4 files changed, 7 insertions(+), 9 deletions(-) diff --git a/packages/attributes/tests/nativesearch.spec.ts b/packages/attributes/tests/nativesearch.spec.ts index 60cb52494..02324a42c 100644 --- a/packages/attributes/tests/nativesearch.spec.ts +++ b/packages/attributes/tests/nativesearch.spec.ts @@ -1,4 +1,4 @@ -import { expect, type Request, type Response, test } from '@playwright/test'; +import { expect, type Response, test } from '@playwright/test'; import { waitAttributeLoaded } from './utils'; diff --git a/packages/calevent/src/actions/collect.ts b/packages/calevent/src/actions/collect.ts index b43dceaf8..35c0f991c 100644 --- a/packages/calevent/src/actions/collect.ts +++ b/packages/calevent/src/actions/collect.ts @@ -36,7 +36,7 @@ function formatTimes( */ function makeEvent( element: HTMLElement, - instanceIndex: number | undefined, + instanceIndex: string | undefined, scope: HTMLElement | undefined ): CalendarEvent { const title = getElementTextContent('title', instanceIndex, scope) ?? ''; @@ -65,7 +65,7 @@ function makeEvent( */ export function collectGoogleData( trigger: HTMLElement, - instanceIndex: number | undefined, + instanceIndex: string | undefined, scope: HTMLElement | undefined ): Google { const eventDetails = makeEvent(trigger, instanceIndex, scope); @@ -105,7 +105,7 @@ export function collectGoogleData( */ export function collectOutlookData( trigger: HTMLElement, - instanceIndex: number | undefined, + instanceIndex: string | undefined, scope: HTMLElement | undefined ): Outlook { const eventDetails = makeEvent(trigger, instanceIndex, scope); @@ -136,7 +136,7 @@ export function collectOutlookData( */ export function collectIcsData( trigger: HTMLElement, - instanceIndex: number | undefined, + instanceIndex: string | undefined, scope: HTMLElement | undefined ): Record[] { const eventDetails = makeEvent(trigger, instanceIndex, scope); diff --git a/packages/calevent/src/utils/html.ts b/packages/calevent/src/utils/html.ts index c8e482357..31689944c 100644 --- a/packages/calevent/src/utils/html.ts +++ b/packages/calevent/src/utils/html.ts @@ -23,7 +23,7 @@ export function minifyHTML(html: string) { */ export function getElementTextContent( attributeElement: (typeof ELEMENTS)[number], - instanceIndex: number | undefined, + instanceIndex: string | undefined, scope: HTMLElement | undefined ): string | undefined { const element = queryElement(attributeElement, { instanceIndex, scope }); @@ -39,7 +39,7 @@ export function getElementTextContent( */ export function getElementHTMLContent( attributeElement: (typeof ELEMENTS)[number], - instanceIndex: number | undefined, + instanceIndex: string | undefined, scope: HTMLElement | undefined ): string | undefined { const element = queryElement(attributeElement, { instanceIndex, scope }); diff --git a/packages/nativesearch/src/actions/search.ts b/packages/nativesearch/src/actions/search.ts index ae131d243..036f4d92c 100644 --- a/packages/nativesearch/src/actions/search.ts +++ b/packages/nativesearch/src/actions/search.ts @@ -1,5 +1,3 @@ -import { isNotEmpty } from '@finsweet/attributes-utils'; - /** * Search for a query i.e. /search?query=hello * @param query The search query From 687f6cfc5c11121d66201ea2f7b73c48340b9540 Mon Sep 17 00:00:00 2001 From: Robert Kibet Date: Fri, 19 Jan 2024 15:17:49 +0300 Subject: [PATCH 23/24] fix: address v1 fix for https://github.com/finsweet/attributes/issues/477 - v1 pull request: https://github.com/finsweet/attributes/pull/511 --- packages/toc/src/actions/collect.ts | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/packages/toc/src/actions/collect.ts b/packages/toc/src/actions/collect.ts index 6824db7bd..d0b596415 100644 --- a/packages/toc/src/actions/collect.ts +++ b/packages/toc/src/actions/collect.ts @@ -65,11 +65,9 @@ export const collectHeadingsData = ({ children }: HTMLElement) => { // Group all lower elements under the wrapper const nextHeading = headingsData.find((headingData) => headingData.level <= level); - const { length } = children; - const j = i + 1; + const childrenSlice = Array.from(children).slice(i + 1); - for (let k = j; k <= length; k++) { - const element = children[j]; + for (const element of childrenSlice) { if (element === nextHeading?.headingWrapper) break; headingWrapper.append(element); From 19410aab0fdf8c1d6d34ae8e4a826c4cfcb9adbc Mon Sep 17 00:00:00 2001 From: Robert Kibet Date: Fri, 22 Mar 2024 13:01:59 +0300 Subject: [PATCH 24/24] fix: lint issues and update lock file --- .changeset/nine-lemons-breathe.md | 5 + packages/socialshare/src/actions/share.ts | 2 +- pnpm-lock.yaml | 1900 ++++++++------------- 3 files changed, 728 insertions(+), 1179 deletions(-) create mode 100644 .changeset/nine-lemons-breathe.md diff --git a/.changeset/nine-lemons-breathe.md b/.changeset/nine-lemons-breathe.md new file mode 100644 index 000000000..66acaec9a --- /dev/null +++ b/.changeset/nine-lemons-breathe.md @@ -0,0 +1,5 @@ +--- +'@finsweet/attributes-socialshare': patch +--- + +fix: lint issues and udpate lock file diff --git a/packages/socialshare/src/actions/share.ts b/packages/socialshare/src/actions/share.ts index f3445e8be..28a5f8a79 100644 --- a/packages/socialshare/src/actions/share.ts +++ b/packages/socialshare/src/actions/share.ts @@ -47,7 +47,7 @@ export function createXShare({ type, content, username, hashtags, url, width, he width, height ); -}; +} /** * Creates a Pinterest share object with the specified parameters. diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index e0e3019d7..cea95146c 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -10,6 +10,7 @@ patchedDependencies: path: patches/body-scroll-lock@4.0.0-beta.0.patch importers: + .: devDependencies: '@changesets/changelog-git': @@ -502,10 +503,6 @@ importers: clipboard: specifier: ^2.0.11 version: 2.0.11 - devDependencies: - '@finsweet/attributes-cmscore': - specifier: workspace:* - version: link:../cmscore packages/starrating: dependencies: @@ -557,24 +554,22 @@ importers: version: 1.4.5 packages: + /@babel/code-frame@7.21.4: - resolution: - { integrity: sha512-LYvhNKfwWSPpocw8GI7gpK2nq3HSDuEPC/uSYaALSJu9xjsalaaYFOq0Pwt5KmVqwEbZlDu81aLXwBOmD/Fv9g== } - engines: { node: '>=6.9.0' } + resolution: {integrity: sha512-LYvhNKfwWSPpocw8GI7gpK2nq3HSDuEPC/uSYaALSJu9xjsalaaYFOq0Pwt5KmVqwEbZlDu81aLXwBOmD/Fv9g==} + engines: {node: '>=6.9.0'} dependencies: '@babel/highlight': 7.18.6 dev: true /@babel/helper-validator-identifier@7.19.1: - resolution: - { integrity: sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w== } - engines: { node: '>=6.9.0' } + resolution: {integrity: sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w==} + engines: {node: '>=6.9.0'} dev: true /@babel/highlight@7.18.6: - resolution: - { integrity: sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g== } - engines: { node: '>=6.9.0' } + resolution: {integrity: sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==} + engines: {node: '>=6.9.0'} dependencies: '@babel/helper-validator-identifier': 7.19.1 chalk: 2.4.2 @@ -582,16 +577,14 @@ packages: dev: true /@babel/runtime@7.21.0: - resolution: - { integrity: sha512-xwII0//EObnq89Ji5AKYQaRYiW/nZ3llSv29d49IuxPhKbtJoLP+9QUUZ4nVragQVtaVGeZrpB+ZtG/Pdy/POw== } - engines: { node: '>=6.9.0' } + resolution: {integrity: sha512-xwII0//EObnq89Ji5AKYQaRYiW/nZ3llSv29d49IuxPhKbtJoLP+9QUUZ4nVragQVtaVGeZrpB+ZtG/Pdy/POw==} + engines: {node: '>=6.9.0'} dependencies: regenerator-runtime: 0.13.11 dev: true /@changesets/apply-release-plan@7.0.0: - resolution: - { integrity: sha512-vfi69JR416qC9hWmFGSxj7N6wA5J222XNBmezSVATPWDVPIF7gkd4d8CpbEbXmRWbVrkoli3oerGS6dcL/BGsQ== } + resolution: {integrity: sha512-vfi69JR416qC9hWmFGSxj7N6wA5J222XNBmezSVATPWDVPIF7gkd4d8CpbEbXmRWbVrkoli3oerGS6dcL/BGsQ==} dependencies: '@babel/runtime': 7.21.0 '@changesets/config': 3.0.0 @@ -609,8 +602,7 @@ packages: dev: true /@changesets/assemble-release-plan@6.0.0: - resolution: - { integrity: sha512-4QG7NuisAjisbW4hkLCmGW2lRYdPrKzro+fCtZaILX+3zdUELSvYjpL4GTv0E4aM9Mef3PuIQp89VmHJ4y2bfw== } + resolution: {integrity: sha512-4QG7NuisAjisbW4hkLCmGW2lRYdPrKzro+fCtZaILX+3zdUELSvYjpL4GTv0E4aM9Mef3PuIQp89VmHJ4y2bfw==} dependencies: '@babel/runtime': 7.21.0 '@changesets/errors': 0.2.0 @@ -621,15 +613,13 @@ packages: dev: true /@changesets/changelog-git@0.2.0: - resolution: - { integrity: sha512-bHOx97iFI4OClIT35Lok3sJAwM31VbUM++gnMBV16fdbtBhgYu4dxsphBF/0AZZsyAHMrnM0yFcj5gZM1py6uQ== } + resolution: {integrity: sha512-bHOx97iFI4OClIT35Lok3sJAwM31VbUM++gnMBV16fdbtBhgYu4dxsphBF/0AZZsyAHMrnM0yFcj5gZM1py6uQ==} dependencies: '@changesets/types': 6.0.0 dev: true /@changesets/cli@2.27.1: - resolution: - { integrity: sha512-iJ91xlvRnnrJnELTp4eJJEOPjgpF3NOh4qeQehM6Ugiz9gJPRZ2t+TsXun6E3AMN4hScZKjqVXl0TX+C7AB3ZQ== } + resolution: {integrity: sha512-iJ91xlvRnnrJnELTp4eJJEOPjgpF3NOh4qeQehM6Ugiz9gJPRZ2t+TsXun6E3AMN4hScZKjqVXl0TX+C7AB3ZQ==} hasBin: true dependencies: '@babel/runtime': 7.21.0 @@ -667,8 +657,7 @@ packages: dev: true /@changesets/config@3.0.0: - resolution: - { integrity: sha512-o/rwLNnAo/+j9Yvw9mkBQOZySDYyOr/q+wptRLcAVGlU6djOeP9v1nlalbL9MFsobuBVQbZCTp+dIzdq+CLQUA== } + resolution: {integrity: sha512-o/rwLNnAo/+j9Yvw9mkBQOZySDYyOr/q+wptRLcAVGlU6djOeP9v1nlalbL9MFsobuBVQbZCTp+dIzdq+CLQUA==} dependencies: '@changesets/errors': 0.2.0 '@changesets/get-dependents-graph': 2.0.0 @@ -680,15 +669,13 @@ packages: dev: true /@changesets/errors@0.2.0: - resolution: - { integrity: sha512-6BLOQUscTpZeGljvyQXlWOItQyU71kCdGz7Pi8H8zdw6BI0g3m43iL4xKUVPWtG+qrrL9DTjpdn8eYuCQSRpow== } + resolution: {integrity: sha512-6BLOQUscTpZeGljvyQXlWOItQyU71kCdGz7Pi8H8zdw6BI0g3m43iL4xKUVPWtG+qrrL9DTjpdn8eYuCQSRpow==} dependencies: extendable-error: 0.1.7 dev: true /@changesets/get-dependents-graph@2.0.0: - resolution: - { integrity: sha512-cafUXponivK4vBgZ3yLu944mTvam06XEn2IZGjjKc0antpenkYANXiiE6GExV/yKdsCnE8dXVZ25yGqLYZmScA== } + resolution: {integrity: sha512-cafUXponivK4vBgZ3yLu944mTvam06XEn2IZGjjKc0antpenkYANXiiE6GExV/yKdsCnE8dXVZ25yGqLYZmScA==} dependencies: '@changesets/types': 6.0.0 '@manypkg/get-packages': 1.1.3 @@ -698,8 +685,7 @@ packages: dev: true /@changesets/get-release-plan@4.0.0: - resolution: - { integrity: sha512-9L9xCUeD/Tb6L/oKmpm8nyzsOzhdNBBbt/ZNcjynbHC07WW4E1eX8NMGC5g5SbM5z/V+MOrYsJ4lRW41GCbg3w== } + resolution: {integrity: sha512-9L9xCUeD/Tb6L/oKmpm8nyzsOzhdNBBbt/ZNcjynbHC07WW4E1eX8NMGC5g5SbM5z/V+MOrYsJ4lRW41GCbg3w==} dependencies: '@babel/runtime': 7.21.0 '@changesets/assemble-release-plan': 6.0.0 @@ -711,13 +697,11 @@ packages: dev: true /@changesets/get-version-range-type@0.4.0: - resolution: - { integrity: sha512-hwawtob9DryoGTpixy1D3ZXbGgJu1Rhr+ySH2PvTLHvkZuQ7sRT4oQwMh0hbqZH1weAooedEjRsbrWcGLCeyVQ== } + resolution: {integrity: sha512-hwawtob9DryoGTpixy1D3ZXbGgJu1Rhr+ySH2PvTLHvkZuQ7sRT4oQwMh0hbqZH1weAooedEjRsbrWcGLCeyVQ==} dev: true /@changesets/git@3.0.0: - resolution: - { integrity: sha512-vvhnZDHe2eiBNRFHEgMiGd2CT+164dfYyrJDhwwxTVD/OW0FUD6G7+4DIx1dNwkwjHyzisxGAU96q0sVNBns0w== } + resolution: {integrity: sha512-vvhnZDHe2eiBNRFHEgMiGd2CT+164dfYyrJDhwwxTVD/OW0FUD6G7+4DIx1dNwkwjHyzisxGAU96q0sVNBns0w==} dependencies: '@babel/runtime': 7.21.0 '@changesets/errors': 0.2.0 @@ -729,23 +713,20 @@ packages: dev: true /@changesets/logger@0.1.0: - resolution: - { integrity: sha512-pBrJm4CQm9VqFVwWnSqKEfsS2ESnwqwH+xR7jETxIErZcfd1u2zBSqrHbRHR7xjhSgep9x2PSKFKY//FAshA3g== } + resolution: {integrity: sha512-pBrJm4CQm9VqFVwWnSqKEfsS2ESnwqwH+xR7jETxIErZcfd1u2zBSqrHbRHR7xjhSgep9x2PSKFKY//FAshA3g==} dependencies: chalk: 2.4.2 dev: true /@changesets/parse@0.4.0: - resolution: - { integrity: sha512-TS/9KG2CdGXS27S+QxbZXgr8uPsP4yNJYb4BC2/NeFUj80Rni3TeD2qwWmabymxmrLo7JEsytXH1FbpKTbvivw== } + resolution: {integrity: sha512-TS/9KG2CdGXS27S+QxbZXgr8uPsP4yNJYb4BC2/NeFUj80Rni3TeD2qwWmabymxmrLo7JEsytXH1FbpKTbvivw==} dependencies: '@changesets/types': 6.0.0 js-yaml: 3.14.1 dev: true /@changesets/pre@2.0.0: - resolution: - { integrity: sha512-HLTNYX/A4jZxc+Sq8D1AMBsv+1qD6rmmJtjsCJa/9MSRybdxh0mjbTvE6JYZQ/ZiQ0mMlDOlGPXTm9KLTU3jyw== } + resolution: {integrity: sha512-HLTNYX/A4jZxc+Sq8D1AMBsv+1qD6rmmJtjsCJa/9MSRybdxh0mjbTvE6JYZQ/ZiQ0mMlDOlGPXTm9KLTU3jyw==} dependencies: '@babel/runtime': 7.21.0 '@changesets/errors': 0.2.0 @@ -755,8 +736,7 @@ packages: dev: true /@changesets/read@0.6.0: - resolution: - { integrity: sha512-ZypqX8+/im1Fm98K4YcZtmLKgjs1kDQ5zHpc2U1qdtNBmZZfo/IBiG162RoP0CUF05tvp2y4IspH11PLnPxuuw== } + resolution: {integrity: sha512-ZypqX8+/im1Fm98K4YcZtmLKgjs1kDQ5zHpc2U1qdtNBmZZfo/IBiG162RoP0CUF05tvp2y4IspH11PLnPxuuw==} dependencies: '@babel/runtime': 7.21.0 '@changesets/git': 3.0.0 @@ -769,18 +749,15 @@ packages: dev: true /@changesets/types@4.1.0: - resolution: - { integrity: sha512-LDQvVDv5Kb50ny2s25Fhm3d9QSZimsoUGBsUioj6MC3qbMUCuC8GPIvk/M6IvXx3lYhAs0lwWUQLb+VIEUCECw== } + resolution: {integrity: sha512-LDQvVDv5Kb50ny2s25Fhm3d9QSZimsoUGBsUioj6MC3qbMUCuC8GPIvk/M6IvXx3lYhAs0lwWUQLb+VIEUCECw==} dev: true /@changesets/types@6.0.0: - resolution: - { integrity: sha512-b1UkfNulgKoWfqyHtzKS5fOZYSJO+77adgL7DLRDr+/7jhChN+QcHnbjiQVOz/U+Ts3PGNySq7diAItzDgugfQ== } + resolution: {integrity: sha512-b1UkfNulgKoWfqyHtzKS5fOZYSJO+77adgL7DLRDr+/7jhChN+QcHnbjiQVOz/U+Ts3PGNySq7diAItzDgugfQ==} dev: true /@changesets/write@0.3.0: - resolution: - { integrity: sha512-slGLb21fxZVUYbyea+94uFiD6ntQW0M2hIKNznFizDhZPDgn2c/fv1UzzlW43RVzh1BEDuIqW6hzlJ1OflNmcw== } + resolution: {integrity: sha512-slGLb21fxZVUYbyea+94uFiD6ntQW0M2hIKNznFizDhZPDgn2c/fv1UzzlW43RVzh1BEDuIqW6hzlJ1OflNmcw==} dependencies: '@babel/runtime': 7.21.0 '@changesets/types': 6.0.0 @@ -790,9 +767,8 @@ packages: dev: true /@esbuild/aix-ppc64@0.19.12: - resolution: - { integrity: sha512-bmoCYyWdEL3wDQIVbcyzRyeKLgk2WtWLTWz1ZIAZF/EGbNOwSA6ew3PftJ1PqMiOOGu0OyFMzG53L0zqIpPeNA== } - engines: { node: '>=12' } + resolution: {integrity: sha512-bmoCYyWdEL3wDQIVbcyzRyeKLgk2WtWLTWz1ZIAZF/EGbNOwSA6ew3PftJ1PqMiOOGu0OyFMzG53L0zqIpPeNA==} + engines: {node: '>=12'} cpu: [ppc64] os: [aix] requiresBuild: true @@ -800,9 +776,8 @@ packages: optional: true /@esbuild/android-arm64@0.18.2: - resolution: - { integrity: sha512-1Y2pb0hLdmji8I0zBwNsYSDN7zJSQqufgLOuOsrrod00WEAgKywQR5MB/E046Is/YTP4bgcPS4BioaSDBaLaTg== } - engines: { node: '>=12' } + resolution: {integrity: sha512-1Y2pb0hLdmji8I0zBwNsYSDN7zJSQqufgLOuOsrrod00WEAgKywQR5MB/E046Is/YTP4bgcPS4BioaSDBaLaTg==} + engines: {node: '>=12'} cpu: [arm64] os: [android] requiresBuild: true @@ -810,9 +785,8 @@ packages: optional: true /@esbuild/android-arm64@0.19.12: - resolution: - { integrity: sha512-P0UVNGIienjZv3f5zq0DP3Nt2IE/3plFzuaS96vihvD0Hd6H/q4WXUGpCxD/E8YrSXfNyRPbpTq+T8ZQioSuPA== } - engines: { node: '>=12' } + resolution: {integrity: sha512-P0UVNGIienjZv3f5zq0DP3Nt2IE/3plFzuaS96vihvD0Hd6H/q4WXUGpCxD/E8YrSXfNyRPbpTq+T8ZQioSuPA==} + engines: {node: '>=12'} cpu: [arm64] os: [android] requiresBuild: true @@ -820,9 +794,8 @@ packages: optional: true /@esbuild/android-arm@0.18.2: - resolution: - { integrity: sha512-YAnQBHlY0IvYtvY0avnXjI8ywW23emEjk5XExqbFmypath+Snq9MgY1IS47rnqBKVSqnl0ElDt221ZgaeRrkXg== } - engines: { node: '>=12' } + resolution: {integrity: sha512-YAnQBHlY0IvYtvY0avnXjI8ywW23emEjk5XExqbFmypath+Snq9MgY1IS47rnqBKVSqnl0ElDt221ZgaeRrkXg==} + engines: {node: '>=12'} cpu: [arm] os: [android] requiresBuild: true @@ -830,9 +803,8 @@ packages: optional: true /@esbuild/android-arm@0.19.12: - resolution: - { integrity: sha512-qg/Lj1mu3CdQlDEEiWrlC4eaPZ1KztwGJ9B6J+/6G+/4ewxJg7gqj8eVYWvao1bXrqGiW2rsBZFSX3q2lcW05w== } - engines: { node: '>=12' } + resolution: {integrity: sha512-qg/Lj1mu3CdQlDEEiWrlC4eaPZ1KztwGJ9B6J+/6G+/4ewxJg7gqj8eVYWvao1bXrqGiW2rsBZFSX3q2lcW05w==} + engines: {node: '>=12'} cpu: [arm] os: [android] requiresBuild: true @@ -840,9 +812,8 @@ packages: optional: true /@esbuild/android-x64@0.18.2: - resolution: - { integrity: sha512-P047Mh3pj8uYVE3A/B3QDX6nG8dKbHLJ+48R6Y0CRXCJ5PkXJxdHOTaS8SYs6eSR3FFU6/YQ5TishQXVHX7F5A== } - engines: { node: '>=12' } + resolution: {integrity: sha512-P047Mh3pj8uYVE3A/B3QDX6nG8dKbHLJ+48R6Y0CRXCJ5PkXJxdHOTaS8SYs6eSR3FFU6/YQ5TishQXVHX7F5A==} + engines: {node: '>=12'} cpu: [x64] os: [android] requiresBuild: true @@ -850,9 +821,8 @@ packages: optional: true /@esbuild/android-x64@0.19.12: - resolution: - { integrity: sha512-3k7ZoUW6Q6YqhdhIaq/WZ7HwBpnFBlW905Fa4s4qWJyiNOgT1dOqDiVAQFwBH7gBRZr17gLrlFCRzF6jFh7Kew== } - engines: { node: '>=12' } + resolution: {integrity: sha512-3k7ZoUW6Q6YqhdhIaq/WZ7HwBpnFBlW905Fa4s4qWJyiNOgT1dOqDiVAQFwBH7gBRZr17gLrlFCRzF6jFh7Kew==} + engines: {node: '>=12'} cpu: [x64] os: [android] requiresBuild: true @@ -860,9 +830,8 @@ packages: optional: true /@esbuild/darwin-arm64@0.18.2: - resolution: - { integrity: sha512-a3Rkqd0tGVYMEKNy9SstWEdeBmM60l8FVD5o4rmwHr3xO1LbLqtCJSrWGbnf37hevo6m437mURVmpEHOmkXeTA== } - engines: { node: '>=12' } + resolution: {integrity: sha512-a3Rkqd0tGVYMEKNy9SstWEdeBmM60l8FVD5o4rmwHr3xO1LbLqtCJSrWGbnf37hevo6m437mURVmpEHOmkXeTA==} + engines: {node: '>=12'} cpu: [arm64] os: [darwin] requiresBuild: true @@ -870,9 +839,8 @@ packages: optional: true /@esbuild/darwin-arm64@0.19.12: - resolution: - { integrity: sha512-B6IeSgZgtEzGC42jsI+YYu9Z3HKRxp8ZT3cqhvliEHovq8HSX2YX8lNocDn79gCKJXOSaEot9MVYky7AKjCs8g== } - engines: { node: '>=12' } + resolution: {integrity: sha512-B6IeSgZgtEzGC42jsI+YYu9Z3HKRxp8ZT3cqhvliEHovq8HSX2YX8lNocDn79gCKJXOSaEot9MVYky7AKjCs8g==} + engines: {node: '>=12'} cpu: [arm64] os: [darwin] requiresBuild: true @@ -880,9 +848,8 @@ packages: optional: true /@esbuild/darwin-x64@0.18.2: - resolution: - { integrity: sha512-cvH58adz9L10JNsIcgtkWNS/1eutjRTi3rtWz1s3ZhR64BpdmkxJBAXE/UjqybyNAWLhaN8mPJdlYI2f+tQA7g== } - engines: { node: '>=12' } + resolution: {integrity: sha512-cvH58adz9L10JNsIcgtkWNS/1eutjRTi3rtWz1s3ZhR64BpdmkxJBAXE/UjqybyNAWLhaN8mPJdlYI2f+tQA7g==} + engines: {node: '>=12'} cpu: [x64] os: [darwin] requiresBuild: true @@ -890,9 +857,8 @@ packages: optional: true /@esbuild/darwin-x64@0.19.12: - resolution: - { integrity: sha512-hKoVkKzFiToTgn+41qGhsUJXFlIjxI/jSYeZf3ugemDYZldIXIxhvwN6erJGlX4t5h417iFuheZ7l+YVn05N3A== } - engines: { node: '>=12' } + resolution: {integrity: sha512-hKoVkKzFiToTgn+41qGhsUJXFlIjxI/jSYeZf3ugemDYZldIXIxhvwN6erJGlX4t5h417iFuheZ7l+YVn05N3A==} + engines: {node: '>=12'} cpu: [x64] os: [darwin] requiresBuild: true @@ -900,9 +866,8 @@ packages: optional: true /@esbuild/freebsd-arm64@0.18.2: - resolution: - { integrity: sha512-68rGMGUdgmq+c5IvseCMqY4yaa2CAY/DIILMBA6bEU1caISF7fXnV69B1uU4s3ERuVDcasVVwiAFyNxCtkS6Zg== } - engines: { node: '>=12' } + resolution: {integrity: sha512-68rGMGUdgmq+c5IvseCMqY4yaa2CAY/DIILMBA6bEU1caISF7fXnV69B1uU4s3ERuVDcasVVwiAFyNxCtkS6Zg==} + engines: {node: '>=12'} cpu: [arm64] os: [freebsd] requiresBuild: true @@ -910,9 +875,8 @@ packages: optional: true /@esbuild/freebsd-arm64@0.19.12: - resolution: - { integrity: sha512-4aRvFIXmwAcDBw9AueDQ2YnGmz5L6obe5kmPT8Vd+/+x/JMVKCgdcRwH6APrbpNXsPz+K653Qg8HB/oXvXVukA== } - engines: { node: '>=12' } + resolution: {integrity: sha512-4aRvFIXmwAcDBw9AueDQ2YnGmz5L6obe5kmPT8Vd+/+x/JMVKCgdcRwH6APrbpNXsPz+K653Qg8HB/oXvXVukA==} + engines: {node: '>=12'} cpu: [arm64] os: [freebsd] requiresBuild: true @@ -920,9 +884,8 @@ packages: optional: true /@esbuild/freebsd-x64@0.18.2: - resolution: - { integrity: sha512-ZSR9On/rXoYuAtrXo5hYKy7OuZwKZyFh2rr6L3TX4UeR1tWLf84aLyAFt7e0tlRbh4zNgqFx+ePWmsSHw7L9Bw== } - engines: { node: '>=12' } + resolution: {integrity: sha512-ZSR9On/rXoYuAtrXo5hYKy7OuZwKZyFh2rr6L3TX4UeR1tWLf84aLyAFt7e0tlRbh4zNgqFx+ePWmsSHw7L9Bw==} + engines: {node: '>=12'} cpu: [x64] os: [freebsd] requiresBuild: true @@ -930,9 +893,8 @@ packages: optional: true /@esbuild/freebsd-x64@0.19.12: - resolution: - { integrity: sha512-EYoXZ4d8xtBoVN7CEwWY2IN4ho76xjYXqSXMNccFSx2lgqOG/1TBPW0yPx1bJZk94qu3tX0fycJeeQsKovA8gg== } - engines: { node: '>=12' } + resolution: {integrity: sha512-EYoXZ4d8xtBoVN7CEwWY2IN4ho76xjYXqSXMNccFSx2lgqOG/1TBPW0yPx1bJZk94qu3tX0fycJeeQsKovA8gg==} + engines: {node: '>=12'} cpu: [x64] os: [freebsd] requiresBuild: true @@ -940,9 +902,8 @@ packages: optional: true /@esbuild/linux-arm64@0.18.2: - resolution: - { integrity: sha512-DFKavAzbu/n9HXWuetxmYN10XnfzW7FgOgpcrGD8eXaiu77KdgB+OVWA83x9FtDYtsoFpfdlDuVFAQFfrhu77A== } - engines: { node: '>=12' } + resolution: {integrity: sha512-DFKavAzbu/n9HXWuetxmYN10XnfzW7FgOgpcrGD8eXaiu77KdgB+OVWA83x9FtDYtsoFpfdlDuVFAQFfrhu77A==} + engines: {node: '>=12'} cpu: [arm64] os: [linux] requiresBuild: true @@ -950,9 +911,8 @@ packages: optional: true /@esbuild/linux-arm64@0.19.12: - resolution: - { integrity: sha512-EoTjyYyLuVPfdPLsGVVVC8a0p1BFFvtpQDB/YLEhaXyf/5bczaGeN15QkR+O4S5LeJ92Tqotve7i1jn35qwvdA== } - engines: { node: '>=12' } + resolution: {integrity: sha512-EoTjyYyLuVPfdPLsGVVVC8a0p1BFFvtpQDB/YLEhaXyf/5bczaGeN15QkR+O4S5LeJ92Tqotve7i1jn35qwvdA==} + engines: {node: '>=12'} cpu: [arm64] os: [linux] requiresBuild: true @@ -960,9 +920,8 @@ packages: optional: true /@esbuild/linux-arm@0.18.2: - resolution: - { integrity: sha512-jAbA75qJ70T5AOdmw9X8675ppeRfj7j57sOypoZ4mQlfQ/LKF8eoeLzTYVo8+aqLKqeIIl0vQ4hKOB0FyG98Zg== } - engines: { node: '>=12' } + resolution: {integrity: sha512-jAbA75qJ70T5AOdmw9X8675ppeRfj7j57sOypoZ4mQlfQ/LKF8eoeLzTYVo8+aqLKqeIIl0vQ4hKOB0FyG98Zg==} + engines: {node: '>=12'} cpu: [arm] os: [linux] requiresBuild: true @@ -970,9 +929,8 @@ packages: optional: true /@esbuild/linux-arm@0.19.12: - resolution: - { integrity: sha512-J5jPms//KhSNv+LO1S1TX1UWp1ucM6N6XuL6ITdKWElCu8wXP72l9MM0zDTzzeikVyqFE6U8YAV9/tFyj0ti+w== } - engines: { node: '>=12' } + resolution: {integrity: sha512-J5jPms//KhSNv+LO1S1TX1UWp1ucM6N6XuL6ITdKWElCu8wXP72l9MM0zDTzzeikVyqFE6U8YAV9/tFyj0ti+w==} + engines: {node: '>=12'} cpu: [arm] os: [linux] requiresBuild: true @@ -980,9 +938,8 @@ packages: optional: true /@esbuild/linux-ia32@0.18.2: - resolution: - { integrity: sha512-VEaK3Z+vJyDwwPsP0sovaEw1foDzrMs7XQNYEIFkOwMjSe2BipKRKUUyrznil0p8qqsK7U8W+T7oNqZpgdnD2Q== } - engines: { node: '>=12' } + resolution: {integrity: sha512-VEaK3Z+vJyDwwPsP0sovaEw1foDzrMs7XQNYEIFkOwMjSe2BipKRKUUyrznil0p8qqsK7U8W+T7oNqZpgdnD2Q==} + engines: {node: '>=12'} cpu: [ia32] os: [linux] requiresBuild: true @@ -990,9 +947,8 @@ packages: optional: true /@esbuild/linux-ia32@0.19.12: - resolution: - { integrity: sha512-Thsa42rrP1+UIGaWz47uydHSBOgTUnwBwNq59khgIwktK6x60Hivfbux9iNR0eHCHzOLjLMLfUMLCypBkZXMHA== } - engines: { node: '>=12' } + resolution: {integrity: sha512-Thsa42rrP1+UIGaWz47uydHSBOgTUnwBwNq59khgIwktK6x60Hivfbux9iNR0eHCHzOLjLMLfUMLCypBkZXMHA==} + engines: {node: '>=12'} cpu: [ia32] os: [linux] requiresBuild: true @@ -1000,9 +956,8 @@ packages: optional: true /@esbuild/linux-loong64@0.18.2: - resolution: - { integrity: sha512-Af1uZdB0oeJo4PW67l9aw94oakSamFxhC6ltC2eDkndozd9QygVNMTF7s7uxTLjo+BJqyVqG9wjmLCYF1o4NmA== } - engines: { node: '>=12' } + resolution: {integrity: sha512-Af1uZdB0oeJo4PW67l9aw94oakSamFxhC6ltC2eDkndozd9QygVNMTF7s7uxTLjo+BJqyVqG9wjmLCYF1o4NmA==} + engines: {node: '>=12'} cpu: [loong64] os: [linux] requiresBuild: true @@ -1010,9 +965,8 @@ packages: optional: true /@esbuild/linux-loong64@0.19.12: - resolution: - { integrity: sha512-LiXdXA0s3IqRRjm6rV6XaWATScKAXjI4R4LoDlvO7+yQqFdlr1Bax62sRwkVvRIrwXxvtYEHHI4dm50jAXkuAA== } - engines: { node: '>=12' } + resolution: {integrity: sha512-LiXdXA0s3IqRRjm6rV6XaWATScKAXjI4R4LoDlvO7+yQqFdlr1Bax62sRwkVvRIrwXxvtYEHHI4dm50jAXkuAA==} + engines: {node: '>=12'} cpu: [loong64] os: [linux] requiresBuild: true @@ -1020,9 +974,8 @@ packages: optional: true /@esbuild/linux-mips64el@0.18.2: - resolution: - { integrity: sha512-WcTbt61+9dREuOFKXac4Qg+3OuRhLxPL9lmkI2P7fGuq/fWS2qq+AvGGVLMyk+OtXGDjyQolcEDeYlRoOmjRYQ== } - engines: { node: '>=12' } + resolution: {integrity: sha512-WcTbt61+9dREuOFKXac4Qg+3OuRhLxPL9lmkI2P7fGuq/fWS2qq+AvGGVLMyk+OtXGDjyQolcEDeYlRoOmjRYQ==} + engines: {node: '>=12'} cpu: [mips64el] os: [linux] requiresBuild: true @@ -1030,9 +983,8 @@ packages: optional: true /@esbuild/linux-mips64el@0.19.12: - resolution: - { integrity: sha512-fEnAuj5VGTanfJ07ff0gOA6IPsvrVHLVb6Lyd1g2/ed67oU1eFzL0r9WL7ZzscD+/N6i3dWumGE1Un4f7Amf+w== } - engines: { node: '>=12' } + resolution: {integrity: sha512-fEnAuj5VGTanfJ07ff0gOA6IPsvrVHLVb6Lyd1g2/ed67oU1eFzL0r9WL7ZzscD+/N6i3dWumGE1Un4f7Amf+w==} + engines: {node: '>=12'} cpu: [mips64el] os: [linux] requiresBuild: true @@ -1040,9 +992,8 @@ packages: optional: true /@esbuild/linux-ppc64@0.18.2: - resolution: - { integrity: sha512-Ov+VHayvCPb52axma6+xm8QDawRjwHscPXedHg4U92DxlhKQ0H+6onRiC3J9kKI50p8pKKypprpCWrRrXjZN7Q== } - engines: { node: '>=12' } + resolution: {integrity: sha512-Ov+VHayvCPb52axma6+xm8QDawRjwHscPXedHg4U92DxlhKQ0H+6onRiC3J9kKI50p8pKKypprpCWrRrXjZN7Q==} + engines: {node: '>=12'} cpu: [ppc64] os: [linux] requiresBuild: true @@ -1050,9 +1001,8 @@ packages: optional: true /@esbuild/linux-ppc64@0.19.12: - resolution: - { integrity: sha512-nYJA2/QPimDQOh1rKWedNOe3Gfc8PabU7HT3iXWtNUbRzXS9+vgB0Fjaqr//XNbd82mCxHzik2qotuI89cfixg== } - engines: { node: '>=12' } + resolution: {integrity: sha512-nYJA2/QPimDQOh1rKWedNOe3Gfc8PabU7HT3iXWtNUbRzXS9+vgB0Fjaqr//XNbd82mCxHzik2qotuI89cfixg==} + engines: {node: '>=12'} cpu: [ppc64] os: [linux] requiresBuild: true @@ -1060,9 +1010,8 @@ packages: optional: true /@esbuild/linux-riscv64@0.18.2: - resolution: - { integrity: sha512-qW37zzKKN9C5l5LnVDriOK0eZRzQeixhtrfd5C78PAsTE15GeHU9G0oyT/u/IkNjEBjXWpTZOOHKNbjhrvuL9g== } - engines: { node: '>=12' } + resolution: {integrity: sha512-qW37zzKKN9C5l5LnVDriOK0eZRzQeixhtrfd5C78PAsTE15GeHU9G0oyT/u/IkNjEBjXWpTZOOHKNbjhrvuL9g==} + engines: {node: '>=12'} cpu: [riscv64] os: [linux] requiresBuild: true @@ -1070,9 +1019,8 @@ packages: optional: true /@esbuild/linux-riscv64@0.19.12: - resolution: - { integrity: sha512-2MueBrlPQCw5dVJJpQdUYgeqIzDQgw3QtiAHUC4RBz9FXPrskyyU3VI1hw7C0BSKB9OduwSJ79FTCqtGMWqJHg== } - engines: { node: '>=12' } + resolution: {integrity: sha512-2MueBrlPQCw5dVJJpQdUYgeqIzDQgw3QtiAHUC4RBz9FXPrskyyU3VI1hw7C0BSKB9OduwSJ79FTCqtGMWqJHg==} + engines: {node: '>=12'} cpu: [riscv64] os: [linux] requiresBuild: true @@ -1080,9 +1028,8 @@ packages: optional: true /@esbuild/linux-s390x@0.18.2: - resolution: - { integrity: sha512-izzEFMRO8LaQIlX22+fTgP5I7Os3T51mtAWsRNpZ5pMfQIa9PqtgFAoRcb10DV+/YkH/TMMxQIlevUvDS6E4vw== } - engines: { node: '>=12' } + resolution: {integrity: sha512-izzEFMRO8LaQIlX22+fTgP5I7Os3T51mtAWsRNpZ5pMfQIa9PqtgFAoRcb10DV+/YkH/TMMxQIlevUvDS6E4vw==} + engines: {node: '>=12'} cpu: [s390x] os: [linux] requiresBuild: true @@ -1090,9 +1037,8 @@ packages: optional: true /@esbuild/linux-s390x@0.19.12: - resolution: - { integrity: sha512-+Pil1Nv3Umes4m3AZKqA2anfhJiVmNCYkPchwFJNEJN5QxmTs1uzyy4TvmDrCRNT2ApwSari7ZIgrPeUx4UZDg== } - engines: { node: '>=12' } + resolution: {integrity: sha512-+Pil1Nv3Umes4m3AZKqA2anfhJiVmNCYkPchwFJNEJN5QxmTs1uzyy4TvmDrCRNT2ApwSari7ZIgrPeUx4UZDg==} + engines: {node: '>=12'} cpu: [s390x] os: [linux] requiresBuild: true @@ -1100,9 +1046,8 @@ packages: optional: true /@esbuild/linux-x64@0.18.2: - resolution: - { integrity: sha512-y5yqQ1ww4FfI9bQ1ZP/0k1rcgA6Ql2/AgzvqpowN0Q5tXDZkCavPdJbFXKrqA43vd1UTXt+AutTHYJ7km6e2Eg== } - engines: { node: '>=12' } + resolution: {integrity: sha512-y5yqQ1ww4FfI9bQ1ZP/0k1rcgA6Ql2/AgzvqpowN0Q5tXDZkCavPdJbFXKrqA43vd1UTXt+AutTHYJ7km6e2Eg==} + engines: {node: '>=12'} cpu: [x64] os: [linux] requiresBuild: true @@ -1110,9 +1055,8 @@ packages: optional: true /@esbuild/linux-x64@0.19.12: - resolution: - { integrity: sha512-B71g1QpxfwBvNrfyJdVDexenDIt1CiDN1TIXLbhOw0KhJzE78KIFGX6OJ9MrtC0oOqMWf+0xop4qEU8JrJTwCg== } - engines: { node: '>=12' } + resolution: {integrity: sha512-B71g1QpxfwBvNrfyJdVDexenDIt1CiDN1TIXLbhOw0KhJzE78KIFGX6OJ9MrtC0oOqMWf+0xop4qEU8JrJTwCg==} + engines: {node: '>=12'} cpu: [x64] os: [linux] requiresBuild: true @@ -1120,9 +1064,8 @@ packages: optional: true /@esbuild/netbsd-x64@0.18.2: - resolution: - { integrity: sha512-usNjpKFf83X4o60gdMD47NCblaSZ6DARf31/FyCzxOgnF80mJ+RhDs9RTqgyfH8KyduO5mjgInw9+ct286ayYA== } - engines: { node: '>=12' } + resolution: {integrity: sha512-usNjpKFf83X4o60gdMD47NCblaSZ6DARf31/FyCzxOgnF80mJ+RhDs9RTqgyfH8KyduO5mjgInw9+ct286ayYA==} + engines: {node: '>=12'} cpu: [x64] os: [netbsd] requiresBuild: true @@ -1130,9 +1073,8 @@ packages: optional: true /@esbuild/netbsd-x64@0.19.12: - resolution: - { integrity: sha512-3ltjQ7n1owJgFbuC61Oj++XhtzmymoCihNFgT84UAmJnxJfm4sYCiSLTXZtE00VWYpPMYc+ZQmB6xbSdVh0JWA== } - engines: { node: '>=12' } + resolution: {integrity: sha512-3ltjQ7n1owJgFbuC61Oj++XhtzmymoCihNFgT84UAmJnxJfm4sYCiSLTXZtE00VWYpPMYc+ZQmB6xbSdVh0JWA==} + engines: {node: '>=12'} cpu: [x64] os: [netbsd] requiresBuild: true @@ -1140,9 +1082,8 @@ packages: optional: true /@esbuild/openbsd-x64@0.18.2: - resolution: - { integrity: sha512-6urzy1+VwcPuhG+5jwHA8lD9E87E5+ey3qKw2EhRS+qUmMxLvfwP8szWC2JHVGZDPEDge6fgn0pBj+y9rxDLwQ== } - engines: { node: '>=12' } + resolution: {integrity: sha512-6urzy1+VwcPuhG+5jwHA8lD9E87E5+ey3qKw2EhRS+qUmMxLvfwP8szWC2JHVGZDPEDge6fgn0pBj+y9rxDLwQ==} + engines: {node: '>=12'} cpu: [x64] os: [openbsd] requiresBuild: true @@ -1150,9 +1091,8 @@ packages: optional: true /@esbuild/openbsd-x64@0.19.12: - resolution: - { integrity: sha512-RbrfTB9SWsr0kWmb9srfF+L933uMDdu9BIzdA7os2t0TXhCRjrQyCeOt6wVxr79CKD4c+p+YhCj31HBkYcXebw== } - engines: { node: '>=12' } + resolution: {integrity: sha512-RbrfTB9SWsr0kWmb9srfF+L933uMDdu9BIzdA7os2t0TXhCRjrQyCeOt6wVxr79CKD4c+p+YhCj31HBkYcXebw==} + engines: {node: '>=12'} cpu: [x64] os: [openbsd] requiresBuild: true @@ -1160,9 +1100,8 @@ packages: optional: true /@esbuild/sunos-x64@0.18.2: - resolution: - { integrity: sha512-SMZPTACsvpKYAIl9o8nhnmMn6/lp62iMeV/2EBMtj+sW6dXwW9b0cLjihkBv4PG1CCRlwWKPZo43imqZxC95ZA== } - engines: { node: '>=12' } + resolution: {integrity: sha512-SMZPTACsvpKYAIl9o8nhnmMn6/lp62iMeV/2EBMtj+sW6dXwW9b0cLjihkBv4PG1CCRlwWKPZo43imqZxC95ZA==} + engines: {node: '>=12'} cpu: [x64] os: [sunos] requiresBuild: true @@ -1170,9 +1109,8 @@ packages: optional: true /@esbuild/sunos-x64@0.19.12: - resolution: - { integrity: sha512-HKjJwRrW8uWtCQnQOz9qcU3mUZhTUQvi56Q8DPTLLB+DawoiQdjsYq+j+D3s9I8VFtDr+F9CjgXKKC4ss89IeA== } - engines: { node: '>=12' } + resolution: {integrity: sha512-HKjJwRrW8uWtCQnQOz9qcU3mUZhTUQvi56Q8DPTLLB+DawoiQdjsYq+j+D3s9I8VFtDr+F9CjgXKKC4ss89IeA==} + engines: {node: '>=12'} cpu: [x64] os: [sunos] requiresBuild: true @@ -1180,9 +1118,8 @@ packages: optional: true /@esbuild/win32-arm64@0.18.2: - resolution: - { integrity: sha512-H2zzjPdzSDNwUnZdZf9/xfm0CYqHFXuenCMAx+tRzIRqWUT6MmZ9/q7722KnAZ6uPpq0RLs7EjCIIfmt6CaRGg== } - engines: { node: '>=12' } + resolution: {integrity: sha512-H2zzjPdzSDNwUnZdZf9/xfm0CYqHFXuenCMAx+tRzIRqWUT6MmZ9/q7722KnAZ6uPpq0RLs7EjCIIfmt6CaRGg==} + engines: {node: '>=12'} cpu: [arm64] os: [win32] requiresBuild: true @@ -1190,9 +1127,8 @@ packages: optional: true /@esbuild/win32-arm64@0.19.12: - resolution: - { integrity: sha512-URgtR1dJnmGvX864pn1B2YUYNzjmXkuJOIqG2HdU62MVS4EHpU2946OZoTMnRUHklGtJdJZ33QfzdjGACXhn1A== } - engines: { node: '>=12' } + resolution: {integrity: sha512-URgtR1dJnmGvX864pn1B2YUYNzjmXkuJOIqG2HdU62MVS4EHpU2946OZoTMnRUHklGtJdJZ33QfzdjGACXhn1A==} + engines: {node: '>=12'} cpu: [arm64] os: [win32] requiresBuild: true @@ -1200,9 +1136,8 @@ packages: optional: true /@esbuild/win32-ia32@0.18.2: - resolution: - { integrity: sha512-lfyjTN+FrKgvNvrH7nOLtaz58J/8coZOo4LQwgBMP4D7ZOurhvluXS3GjePLzq9GbWnJDZdKCKbMKhZPPcdJJA== } - engines: { node: '>=12' } + resolution: {integrity: sha512-lfyjTN+FrKgvNvrH7nOLtaz58J/8coZOo4LQwgBMP4D7ZOurhvluXS3GjePLzq9GbWnJDZdKCKbMKhZPPcdJJA==} + engines: {node: '>=12'} cpu: [ia32] os: [win32] requiresBuild: true @@ -1210,9 +1145,8 @@ packages: optional: true /@esbuild/win32-ia32@0.19.12: - resolution: - { integrity: sha512-+ZOE6pUkMOJfmxmBZElNOx72NKpIa/HFOMGzu8fqzQJ5kgf6aTGrcJaFsNiVMH4JKpMipyK+7k0n2UXN7a8YKQ== } - engines: { node: '>=12' } + resolution: {integrity: sha512-+ZOE6pUkMOJfmxmBZElNOx72NKpIa/HFOMGzu8fqzQJ5kgf6aTGrcJaFsNiVMH4JKpMipyK+7k0n2UXN7a8YKQ==} + engines: {node: '>=12'} cpu: [ia32] os: [win32] requiresBuild: true @@ -1220,9 +1154,8 @@ packages: optional: true /@esbuild/win32-x64@0.18.2: - resolution: - { integrity: sha512-Q4nIjqWXjxkELwd7kVepsJxbQ/6ERNsHpjz1j+IKjwSYw+g06U0RQOy5xh848AHvgr9itnGLa3cT2G5t0dBFsw== } - engines: { node: '>=12' } + resolution: {integrity: sha512-Q4nIjqWXjxkELwd7kVepsJxbQ/6ERNsHpjz1j+IKjwSYw+g06U0RQOy5xh848AHvgr9itnGLa3cT2G5t0dBFsw==} + engines: {node: '>=12'} cpu: [x64] os: [win32] requiresBuild: true @@ -1230,9 +1163,8 @@ packages: optional: true /@esbuild/win32-x64@0.19.12: - resolution: - { integrity: sha512-T1QyPSDCyMXaO3pzBkF96E8xMkiRYbUEZADd29SyPGabqxMViNoii+NcK7eWJAEoU6RZyEm5lVSIjTmcdoB9HA== } - engines: { node: '>=12' } + resolution: {integrity: sha512-T1QyPSDCyMXaO3pzBkF96E8xMkiRYbUEZADd29SyPGabqxMViNoii+NcK7eWJAEoU6RZyEm5lVSIjTmcdoB9HA==} + engines: {node: '>=12'} cpu: [x64] os: [win32] requiresBuild: true @@ -1240,9 +1172,8 @@ packages: optional: true /@eslint-community/eslint-utils@4.4.0(eslint@8.42.0): - resolution: - { integrity: sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA== } - engines: { node: ^12.22.0 || ^14.17.0 || >=16.0.0 } + resolution: {integrity: sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 dependencies: @@ -1251,15 +1182,13 @@ packages: dev: true /@eslint-community/regexpp@4.5.1: - resolution: - { integrity: sha512-Z5ba73P98O1KUYCCJTUeVpja9RcGoMdncZ6T49FCUl2lN38JtCJ+3WgIDBv0AuY4WChU5PmtJmOCTlN6FZTFKQ== } - engines: { node: ^12.0.0 || ^14.0.0 || >=16.0.0 } + resolution: {integrity: sha512-Z5ba73P98O1KUYCCJTUeVpja9RcGoMdncZ6T49FCUl2lN38JtCJ+3WgIDBv0AuY4WChU5PmtJmOCTlN6FZTFKQ==} + engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} dev: true /@eslint/eslintrc@2.0.3: - resolution: - { integrity: sha512-+5gy6OQfk+xx3q0d6jGZZC3f3KzAkXc/IanVxd1is/VIIziRqqt3ongQz0FiTUXqTk0c7aDB3OaFuKnuSoJicQ== } - engines: { node: ^12.22.0 || ^14.17.0 || >=16.0.0 } + resolution: {integrity: sha512-+5gy6OQfk+xx3q0d6jGZZC3f3KzAkXc/IanVxd1is/VIIziRqqt3ongQz0FiTUXqTk0c7aDB3OaFuKnuSoJicQ==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: ajv: 6.12.6 debug: 4.3.4 @@ -1275,14 +1204,12 @@ packages: dev: true /@eslint/js@8.42.0: - resolution: - { integrity: sha512-6SWlXpWU5AvId8Ac7zjzmIOqMOba/JWY8XZ4A7q7Gn1Vlfg/SFFIlrtHXt9nPn4op9ZPAkl91Jao+QQv3r/ukw== } - engines: { node: ^12.22.0 || ^14.17.0 || >=16.0.0 } + resolution: {integrity: sha512-6SWlXpWU5AvId8Ac7zjzmIOqMOba/JWY8XZ4A7q7Gn1Vlfg/SFFIlrtHXt9nPn4op9ZPAkl91Jao+QQv3r/ukw==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dev: true /@finsweet/eslint-config@2.0.5(@typescript-eslint/eslint-plugin@5.59.11)(@typescript-eslint/parser@5.59.11)(eslint-config-prettier@8.8.0)(eslint-plugin-prettier@4.2.1)(eslint-plugin-simple-import-sort@10.0.0)(eslint@8.42.0)(prettier@2.8.8)(typescript@5.1.3): - resolution: - { integrity: sha512-twlHPSSS1CuIXOSCnIWETqOXD3OiLmouPR/Qc5Io0xDecMXqy1K8rB87X5SLkgDGGSxPv09R/oKAAtWl6Lbkqw== } + resolution: {integrity: sha512-twlHPSSS1CuIXOSCnIWETqOXD3OiLmouPR/Qc5Io0xDecMXqy1K8rB87X5SLkgDGGSxPv09R/oKAAtWl6Lbkqw==} peerDependencies: '@typescript-eslint/eslint-plugin': ^5.59.9 '@typescript-eslint/parser': ^5.59.9 @@ -1304,8 +1231,7 @@ packages: dev: true /@finsweet/tsconfig@1.3.2(typescript@5.1.3): - resolution: - { integrity: sha512-rH+e8AZ+3sY93tkhStjQNQsnWTV+u3r+MKJamCPjUpAjsG0/UWrkPtSZ92xquyHoEnEa7PJFQxc4buN7NnjRzg== } + resolution: {integrity: sha512-rH+e8AZ+3sY93tkhStjQNQsnWTV+u3r+MKJamCPjUpAjsG0/UWrkPtSZ92xquyHoEnEa7PJFQxc4buN7NnjRzg==} peerDependencies: typescript: ^5.1.3 dependencies: @@ -1313,9 +1239,8 @@ packages: dev: true /@humanwhocodes/config-array@0.11.10: - resolution: - { integrity: sha512-KVVjQmNUepDVGXNuoRRdmmEjruj0KfiGSbS8LVc12LMsWDQzRXJ0qdhN8L8uUigKpfEHRhlaQFY0ib1tnUbNeQ== } - engines: { node: '>=10.10.0' } + resolution: {integrity: sha512-KVVjQmNUepDVGXNuoRRdmmEjruj0KfiGSbS8LVc12LMsWDQzRXJ0qdhN8L8uUigKpfEHRhlaQFY0ib1tnUbNeQ==} + engines: {node: '>=10.10.0'} dependencies: '@humanwhocodes/object-schema': 1.2.1 debug: 4.3.4 @@ -1325,19 +1250,16 @@ packages: dev: true /@humanwhocodes/module-importer@1.0.1: - resolution: - { integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA== } - engines: { node: '>=12.22' } + resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==} + engines: {node: '>=12.22'} dev: true /@humanwhocodes/object-schema@1.2.1: - resolution: - { integrity: sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA== } + resolution: {integrity: sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==} dev: true /@manypkg/find-root@1.1.0: - resolution: - { integrity: sha512-mki5uBvhHzO8kYYix/WRy2WX8S3B5wdVSc9D6KcU5lQNglP2yt58/VfLuAK49glRXChosY8ap2oJ1qgma3GUVA== } + resolution: {integrity: sha512-mki5uBvhHzO8kYYix/WRy2WX8S3B5wdVSc9D6KcU5lQNglP2yt58/VfLuAK49glRXChosY8ap2oJ1qgma3GUVA==} dependencies: '@babel/runtime': 7.21.0 '@types/node': 12.20.55 @@ -1346,8 +1268,7 @@ packages: dev: true /@manypkg/get-packages@1.1.3: - resolution: - { integrity: sha512-fo+QhuU3qE/2TQMQmbVMqaQ6EWbMhi4ABWP+O4AM1NqPBuy0OrApV5LO6BrrgnhtAHS2NH6RrVk9OL181tTi8A== } + resolution: {integrity: sha512-fo+QhuU3qE/2TQMQmbVMqaQ6EWbMhi4ABWP+O4AM1NqPBuy0OrApV5LO6BrrgnhtAHS2NH6RrVk9OL181tTi8A==} dependencies: '@babel/runtime': 7.21.0 '@changesets/types': 4.1.0 @@ -1358,8 +1279,7 @@ packages: dev: true /@motionone/animation@10.15.1: - resolution: - { integrity: sha512-mZcJxLjHor+bhcPuIFErMDNyrdb2vJur8lSfMCsuCB4UyV8ILZLvK+t+pg56erv8ud9xQGK/1OGPt10agPrCyQ== } + resolution: {integrity: sha512-mZcJxLjHor+bhcPuIFErMDNyrdb2vJur8lSfMCsuCB4UyV8ILZLvK+t+pg56erv8ud9xQGK/1OGPt10agPrCyQ==} dependencies: '@motionone/easing': 10.15.1 '@motionone/types': 10.15.1 @@ -1367,8 +1287,7 @@ packages: tslib: 2.5.0 /@motionone/dom@10.16.2: - resolution: - { integrity: sha512-bnuHdNbge1FutZXv+k7xub9oPWcF0hsu8y1HTH/qg6av58YI0VufZ3ngfC7p2xhMJMnoh0LXFma2EGTgPeCkeg== } + resolution: {integrity: sha512-bnuHdNbge1FutZXv+k7xub9oPWcF0hsu8y1HTH/qg6av58YI0VufZ3ngfC7p2xhMJMnoh0LXFma2EGTgPeCkeg==} dependencies: '@motionone/animation': 10.15.1 '@motionone/generators': 10.15.1 @@ -1378,142 +1297,116 @@ packages: tslib: 2.5.0 /@motionone/easing@10.15.1: - resolution: - { integrity: sha512-6hIHBSV+ZVehf9dcKZLT7p5PEKHGhDwky2k8RKkmOvUoYP3S+dXsKupyZpqx5apjd9f+php4vXk4LuS+ADsrWw== } + resolution: {integrity: sha512-6hIHBSV+ZVehf9dcKZLT7p5PEKHGhDwky2k8RKkmOvUoYP3S+dXsKupyZpqx5apjd9f+php4vXk4LuS+ADsrWw==} dependencies: '@motionone/utils': 10.15.1 tslib: 2.5.0 /@motionone/generators@10.15.1: - resolution: - { integrity: sha512-67HLsvHJbw6cIbLA/o+gsm7h+6D4Sn7AUrB/GPxvujse1cGZ38F5H7DzoH7PhX+sjvtDnt2IhFYF2Zp1QTMKWQ== } + resolution: {integrity: sha512-67HLsvHJbw6cIbLA/o+gsm7h+6D4Sn7AUrB/GPxvujse1cGZ38F5H7DzoH7PhX+sjvtDnt2IhFYF2Zp1QTMKWQ==} dependencies: '@motionone/types': 10.15.1 '@motionone/utils': 10.15.1 tslib: 2.5.0 /@motionone/svelte@10.16.2: - resolution: - { integrity: sha512-38xsroKrfK+aHYhuQlE6eFcGy0EwrB43Q7RGjF73j/kRUTcLNu/LAaKiLLsN5lyqVzCgTBVt4TMT/ShWbTbc5Q== } + resolution: {integrity: sha512-38xsroKrfK+aHYhuQlE6eFcGy0EwrB43Q7RGjF73j/kRUTcLNu/LAaKiLLsN5lyqVzCgTBVt4TMT/ShWbTbc5Q==} dependencies: '@motionone/dom': 10.16.2 tslib: 2.5.0 dev: false /@motionone/types@10.15.1: - resolution: - { integrity: sha512-iIUd/EgUsRZGrvW0jqdst8st7zKTzS9EsKkP+6c6n4MPZoQHwiHuVtTQLD6Kp0bsBLhNzKIBlHXponn/SDT4hA== } + resolution: {integrity: sha512-iIUd/EgUsRZGrvW0jqdst8st7zKTzS9EsKkP+6c6n4MPZoQHwiHuVtTQLD6Kp0bsBLhNzKIBlHXponn/SDT4hA==} /@motionone/utils@10.15.1: - resolution: - { integrity: sha512-p0YncgU+iklvYr/Dq4NobTRdAPv9PveRDUXabPEeOjBLSO/1FNB2phNTZxOxpi1/GZwYpAoECEa0Wam+nsmhSw== } + resolution: {integrity: sha512-p0YncgU+iklvYr/Dq4NobTRdAPv9PveRDUXabPEeOjBLSO/1FNB2phNTZxOxpi1/GZwYpAoECEa0Wam+nsmhSw==} dependencies: '@motionone/types': 10.15.1 hey-listen: 1.0.8 tslib: 2.5.0 /@motionone/vue@10.16.2: - resolution: - { integrity: sha512-7/dEK/nWQXOkJ70bqb2KyNfSWbNvWqKKq1C8juj+0Mg/AorgD8O5wE3naddK0G+aXuNMqRuc4jlsYHHWHtIzVw== } + resolution: {integrity: sha512-7/dEK/nWQXOkJ70bqb2KyNfSWbNvWqKKq1C8juj+0Mg/AorgD8O5wE3naddK0G+aXuNMqRuc4jlsYHHWHtIzVw==} dependencies: '@motionone/dom': 10.16.2 tslib: 2.5.0 dev: false /@nodelib/fs.scandir@2.1.5: - resolution: - { integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g== } - engines: { node: '>= 8' } + resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} + engines: {node: '>= 8'} dependencies: '@nodelib/fs.stat': 2.0.5 run-parallel: 1.2.0 dev: true /@nodelib/fs.stat@2.0.5: - resolution: - { integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A== } - engines: { node: '>= 8' } + resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==} + engines: {node: '>= 8'} dev: true /@nodelib/fs.walk@1.2.8: - resolution: - { integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg== } - engines: { node: '>= 8' } + resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} + engines: {node: '>= 8'} dependencies: '@nodelib/fs.scandir': 2.1.5 fastq: 1.15.0 dev: true /@playwright/test@1.39.0: - resolution: - { integrity: sha512-3u1iFqgzl7zr004bGPYiN/5EZpRUSFddQBra8Rqll5N0/vfpqlP9I9EXqAoGacuAbX6c9Ulg/Cjqglp5VkK6UQ== } - engines: { node: '>=16' } + resolution: {integrity: sha512-3u1iFqgzl7zr004bGPYiN/5EZpRUSFddQBra8Rqll5N0/vfpqlP9I9EXqAoGacuAbX6c9Ulg/Cjqglp5VkK6UQ==} + engines: {node: '>=16'} hasBin: true dependencies: playwright: 1.39.0 dev: true /@types/body-scroll-lock@3.1.0: - resolution: - { integrity: sha512-3owAC4iJub5WPqRhxd8INarF2bWeQq1yQHBgYhN0XLBJMpd5ED10RrJ3aKiAwlTyL5wK7RkBD4SZUQz2AAAMdA== } + resolution: {integrity: sha512-3owAC4iJub5WPqRhxd8INarF2bWeQq1yQHBgYhN0XLBJMpd5ED10RrJ3aKiAwlTyL5wK7RkBD4SZUQz2AAAMdA==} dev: true /@types/dompurify@3.0.2: - resolution: - { integrity: sha512-YBL4ziFebbbfQfH5mlC+QTJsvh0oJUrWbmxKMyEdL7emlHJqGR2Qb34TEFKj+VCayBvjKy3xczMFNhugThUsfQ== } + resolution: {integrity: sha512-YBL4ziFebbbfQfH5mlC+QTJsvh0oJUrWbmxKMyEdL7emlHJqGR2Qb34TEFKj+VCayBvjKy3xczMFNhugThUsfQ==} dependencies: '@types/trusted-types': 2.0.2 dev: true /@types/js-cookie@3.0.3: - resolution: - { integrity: sha512-Xe7IImK09HP1sv2M/aI+48a20VX+TdRJucfq4vfRVy6nWN8PYPOEnlMRSgxJAgYQIXJVL8dZ4/ilAM7dWNaOww== } + resolution: {integrity: sha512-Xe7IImK09HP1sv2M/aI+48a20VX+TdRJucfq4vfRVy6nWN8PYPOEnlMRSgxJAgYQIXJVL8dZ4/ilAM7dWNaOww==} dev: true /@types/json-schema@7.0.12: - resolution: - { integrity: sha512-Hr5Jfhc9eYOQNPYO5WLDq/n4jqijdHNlDXjuAQkkt+mWdQR+XJToOHrsD4cPaMXpn6KO7y2+wM8AZEs8VpBLVA== } + resolution: {integrity: sha512-Hr5Jfhc9eYOQNPYO5WLDq/n4jqijdHNlDXjuAQkkt+mWdQR+XJToOHrsD4cPaMXpn6KO7y2+wM8AZEs8VpBLVA==} dev: true /@types/minimist@1.2.2: - resolution: - { integrity: sha512-jhuKLIRrhvCPLqwPcx6INqmKeiA5EWrsCOPhrlFSrbrmU4ZMPjj5Ul/oLCMDO98XRUIwVm78xICz4EPCektzeQ== } + resolution: {integrity: sha512-jhuKLIRrhvCPLqwPcx6INqmKeiA5EWrsCOPhrlFSrbrmU4ZMPjj5Ul/oLCMDO98XRUIwVm78xICz4EPCektzeQ==} dev: true /@types/node@12.20.55: - resolution: - { integrity: sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ== } + resolution: {integrity: sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ==} dev: true /@types/node@18.16.1: - resolution: - { integrity: sha512-DZxSZWXxFfOlx7k7Rv4LAyiMroaxa3Ly/7OOzZO8cBNho0YzAi4qlbrx8W27JGqG57IgR/6J7r+nOJWw6kcvZA== } - dev: true - - /@types/node@20.4.2: - resolution: - { integrity: sha512-Dd0BYtWgnWJKwO1jkmTrzofjK2QXXcai0dmtzvIBhcA+RsG5h8R3xlyta0kGOZRNfL9GuRtb1knmPEhQrePCEw== } + resolution: {integrity: sha512-DZxSZWXxFfOlx7k7Rv4LAyiMroaxa3Ly/7OOzZO8cBNho0YzAi4qlbrx8W27JGqG57IgR/6J7r+nOJWw6kcvZA==} dev: true /@types/normalize-package-data@2.4.1: - resolution: - { integrity: sha512-Gj7cI7z+98M282Tqmp2K5EIsoouUEzbBJhQQzDE3jSIRk6r9gsz0oUokqIUR4u1R3dMHo0pDHM7sNOHyhulypw== } + resolution: {integrity: sha512-Gj7cI7z+98M282Tqmp2K5EIsoouUEzbBJhQQzDE3jSIRk6r9gsz0oUokqIUR4u1R3dMHo0pDHM7sNOHyhulypw==} dev: true /@types/semver@7.5.0: - resolution: - { integrity: sha512-G8hZ6XJiHnuhQKR7ZmysCeJWE08o8T0AXtk5darsCaTVsYZhhgUrq53jizaR2FvsoeCwJhlmwTjkXBY5Pn/ZHw== } + resolution: {integrity: sha512-G8hZ6XJiHnuhQKR7ZmysCeJWE08o8T0AXtk5darsCaTVsYZhhgUrq53jizaR2FvsoeCwJhlmwTjkXBY5Pn/ZHw==} dev: true /@types/trusted-types@2.0.2: - resolution: - { integrity: sha512-F5DIZ36YVLE+PN+Zwws4kJogq47hNgX3Nx6WyDJ3kcplxyke3XIzB8uK5n/Lpm1HBsbGzd6nmGehL8cPekP+Tg== } + resolution: {integrity: sha512-F5DIZ36YVLE+PN+Zwws4kJogq47hNgX3Nx6WyDJ3kcplxyke3XIzB8uK5n/Lpm1HBsbGzd6nmGehL8cPekP+Tg==} dev: true /@typescript-eslint/eslint-plugin@5.59.11(@typescript-eslint/parser@5.59.11)(eslint@8.42.0)(typescript@5.1.3): - resolution: - { integrity: sha512-XxuOfTkCUiOSyBWIvHlUraLw/JT/6Io1365RO6ZuI88STKMavJZPNMU0lFcUTeQXEhHiv64CbxYxBNoDVSmghg== } - engines: { node: ^12.22.0 || ^14.17.0 || >=16.0.0 } + resolution: {integrity: sha512-XxuOfTkCUiOSyBWIvHlUraLw/JT/6Io1365RO6ZuI88STKMavJZPNMU0lFcUTeQXEhHiv64CbxYxBNoDVSmghg==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: '@typescript-eslint/parser': ^5.0.0 eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 @@ -1540,9 +1433,8 @@ packages: dev: true /@typescript-eslint/parser@5.59.11(eslint@8.42.0)(typescript@5.1.3): - resolution: - { integrity: sha512-s9ZF3M+Nym6CAZEkJJeO2TFHHDsKAM3ecNkLuH4i4s8/RCPnF5JRip2GyviYkeEAcwGMJxkqG9h2dAsnA1nZpA== } - engines: { node: ^12.22.0 || ^14.17.0 || >=16.0.0 } + resolution: {integrity: sha512-s9ZF3M+Nym6CAZEkJJeO2TFHHDsKAM3ecNkLuH4i4s8/RCPnF5JRip2GyviYkeEAcwGMJxkqG9h2dAsnA1nZpA==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 typescript: '*' @@ -1561,18 +1453,16 @@ packages: dev: true /@typescript-eslint/scope-manager@5.59.11: - resolution: - { integrity: sha512-dHFOsxoLFtrIcSj5h0QoBT/89hxQONwmn3FOQ0GOQcLOOXm+MIrS8zEAhs4tWl5MraxCY3ZJpaXQQdFMc2Tu+Q== } - engines: { node: ^12.22.0 || ^14.17.0 || >=16.0.0 } + resolution: {integrity: sha512-dHFOsxoLFtrIcSj5h0QoBT/89hxQONwmn3FOQ0GOQcLOOXm+MIrS8zEAhs4tWl5MraxCY3ZJpaXQQdFMc2Tu+Q==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: '@typescript-eslint/types': 5.59.11 '@typescript-eslint/visitor-keys': 5.59.11 dev: true /@typescript-eslint/type-utils@5.59.11(eslint@8.42.0)(typescript@5.1.3): - resolution: - { integrity: sha512-LZqVY8hMiVRF2a7/swmkStMYSoXMFlzL6sXV6U/2gL5cwnLWQgLEG8tjWPpaE4rMIdZ6VKWwcffPlo1jPfk43g== } - engines: { node: ^12.22.0 || ^14.17.0 || >=16.0.0 } + resolution: {integrity: sha512-LZqVY8hMiVRF2a7/swmkStMYSoXMFlzL6sXV6U/2gL5cwnLWQgLEG8tjWPpaE4rMIdZ6VKWwcffPlo1jPfk43g==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: '*' typescript: '*' @@ -1591,15 +1481,13 @@ packages: dev: true /@typescript-eslint/types@5.59.11: - resolution: - { integrity: sha512-epoN6R6tkvBYSc+cllrz+c2sOFWkbisJZWkOE+y3xHtvYaOE6Wk6B8e114McRJwFRjGvYdJwLXQH5c9osME/AA== } - engines: { node: ^12.22.0 || ^14.17.0 || >=16.0.0 } + resolution: {integrity: sha512-epoN6R6tkvBYSc+cllrz+c2sOFWkbisJZWkOE+y3xHtvYaOE6Wk6B8e114McRJwFRjGvYdJwLXQH5c9osME/AA==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dev: true /@typescript-eslint/typescript-estree@5.59.11(typescript@5.1.3): - resolution: - { integrity: sha512-YupOpot5hJO0maupJXixi6l5ETdrITxeo5eBOeuV7RSKgYdU3G5cxO49/9WRnJq9EMrB7AuTSLH/bqOsXi7wPA== } - engines: { node: ^12.22.0 || ^14.17.0 || >=16.0.0 } + resolution: {integrity: sha512-YupOpot5hJO0maupJXixi6l5ETdrITxeo5eBOeuV7RSKgYdU3G5cxO49/9WRnJq9EMrB7AuTSLH/bqOsXi7wPA==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: typescript: '*' peerDependenciesMeta: @@ -1619,9 +1507,8 @@ packages: dev: true /@typescript-eslint/utils@5.59.11(eslint@8.42.0)(typescript@5.1.3): - resolution: - { integrity: sha512-didu2rHSOMUdJThLk4aZ1Or8IcO3HzCw/ZvEjTTIfjIrcdd5cvSIwwDy2AOlE7htSNp7QIZ10fLMyRCveesMLg== } - engines: { node: ^12.22.0 || ^14.17.0 || >=16.0.0 } + resolution: {integrity: sha512-didu2rHSOMUdJThLk4aZ1Or8IcO3HzCw/ZvEjTTIfjIrcdd5cvSIwwDy2AOlE7htSNp7QIZ10fLMyRCveesMLg==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 dependencies: @@ -1640,22 +1527,19 @@ packages: dev: true /@typescript-eslint/visitor-keys@5.59.11: - resolution: - { integrity: sha512-KGYniTGG3AMTuKF9QBD7EIrvufkB6O6uX3knP73xbKLMpH+QRPcgnCxjWXSHjMRuOxFLovljqQgQpR0c7GvjoA== } - engines: { node: ^12.22.0 || ^14.17.0 || >=16.0.0 } + resolution: {integrity: sha512-KGYniTGG3AMTuKF9QBD7EIrvufkB6O6uX3knP73xbKLMpH+QRPcgnCxjWXSHjMRuOxFLovljqQgQpR0c7GvjoA==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: '@typescript-eslint/types': 5.59.11 eslint-visitor-keys: 3.4.1 dev: true /@webflow/designer-extension-typings@0.1.5: - resolution: - { integrity: sha512-jZsi3tjzqngU7ihEQRapokpxwtDhqsAhVMjkKUg/EOk7bfl7gBp6d5pQa7/Rt4VDfVOePVgTjXaU0vwtEJ4ZNg== } + resolution: {integrity: sha512-jZsi3tjzqngU7ihEQRapokpxwtDhqsAhVMjkKUg/EOk7bfl7gBp6d5pQa7/Rt4VDfVOePVgTjXaU0vwtEJ4ZNg==} dev: true /acorn-jsx@5.3.2(acorn@8.8.2): - resolution: - { integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ== } + resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} peerDependencies: acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 dependencies: @@ -1663,15 +1547,13 @@ packages: dev: true /acorn@8.8.2: - resolution: - { integrity: sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw== } - engines: { node: '>=0.4.0' } + resolution: {integrity: sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw==} + engines: {node: '>=0.4.0'} hasBin: true dev: true /ajv@6.12.6: - resolution: - { integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g== } + resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==} dependencies: fast-deep-equal: 3.1.3 fast-json-stable-stringify: 2.1.0 @@ -1680,63 +1562,54 @@ packages: dev: true /ansi-colors@4.1.3: - resolution: - { integrity: sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw== } - engines: { node: '>=6' } + resolution: {integrity: sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==} + engines: {node: '>=6'} dev: true /ansi-regex@5.0.1: - resolution: - { integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ== } - engines: { node: '>=8' } + resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} + engines: {node: '>=8'} dev: true /ansi-styles@3.2.1: - resolution: - { integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA== } - engines: { node: '>=4' } + resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==} + engines: {node: '>=4'} dependencies: color-convert: 1.9.3 dev: true /ansi-styles@4.3.0: - resolution: - { integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== } - engines: { node: '>=8' } + resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} + engines: {node: '>=8'} dependencies: color-convert: 2.0.1 dev: true /argparse@1.0.10: - resolution: - { integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg== } + resolution: {integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==} dependencies: sprintf-js: 1.0.3 dev: true /argparse@2.0.1: - resolution: - { integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q== } + resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} dev: true /array-buffer-byte-length@1.0.0: - resolution: - { integrity: sha512-LPuwb2P+NrQw3XhxGc36+XSvuBPopovXYTR9Ew++Du9Yb/bx5AzBfrIsBoj0EZUifjQU+sHL21sseZ3jerWO/A== } + resolution: {integrity: sha512-LPuwb2P+NrQw3XhxGc36+XSvuBPopovXYTR9Ew++Du9Yb/bx5AzBfrIsBoj0EZUifjQU+sHL21sseZ3jerWO/A==} dependencies: call-bind: 1.0.2 is-array-buffer: 3.0.2 dev: true /array-union@2.1.0: - resolution: - { integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw== } - engines: { node: '>=8' } + resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==} + engines: {node: '>=8'} dev: true /array.prototype.flat@1.3.1: - resolution: - { integrity: sha512-roTU0KWIOmJ4DRLmwKd19Otg0/mT3qPNt0Qb3GWW8iObuZXxrjB/pzn0R3hqpRSWg4HCwqx+0vwOnWnvlOyeIA== } - engines: { node: '>= 0.4' } + resolution: {integrity: sha512-roTU0KWIOmJ4DRLmwKd19Otg0/mT3qPNt0Qb3GWW8iObuZXxrjB/pzn0R3hqpRSWg4HCwqx+0vwOnWnvlOyeIA==} + engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.2 define-properties: 1.2.0 @@ -1745,89 +1618,76 @@ packages: dev: true /arrify@1.0.1: - resolution: - { integrity: sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA== } - engines: { node: '>=0.10.0' } + resolution: {integrity: sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA==} + engines: {node: '>=0.10.0'} dev: true /available-typed-arrays@1.0.5: - resolution: - { integrity: sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw== } - engines: { node: '>= 0.4' } + resolution: {integrity: sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==} + engines: {node: '>= 0.4'} dev: true /balanced-match@1.0.2: - resolution: - { integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== } + resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} dev: true /base64-js@1.5.1: - resolution: - { integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA== } + resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==} dev: false /beerslider@1.0.3: - resolution: - { integrity: sha512-1XsuTxbspcAR1rxKOJa3qYX3XW9Kf6d+QRUJtDSxsj+yLVSoBRK8ThqpgxhGaxFeBKklrCc0v0UWpifACT7Dbw== } + resolution: {integrity: sha512-1XsuTxbspcAR1rxKOJa3qYX3XW9Kf6d+QRUJtDSxsj+yLVSoBRK8ThqpgxhGaxFeBKklrCc0v0UWpifACT7Dbw==} dependencies: core-js: 3.36.1 dev: false /better-path-resolve@1.0.0: - resolution: - { integrity: sha512-pbnl5XzGBdrFU/wT4jqmJVPn2B6UHPBOhzMQkY/SPUPB6QtUXtmBHBIwCbXJol93mOpGMnQyP/+BB19q04xj7g== } - engines: { node: '>=4' } + resolution: {integrity: sha512-pbnl5XzGBdrFU/wT4jqmJVPn2B6UHPBOhzMQkY/SPUPB6QtUXtmBHBIwCbXJol93mOpGMnQyP/+BB19q04xj7g==} + engines: {node: '>=4'} dependencies: is-windows: 1.0.2 dev: true /body-scroll-lock@4.0.0-beta.0(patch_hash=okec7jrxvk2nysywuuwlnnfvtu): - resolution: - { integrity: sha512-a7tP5+0Mw3YlUJcGAKUqIBkYYGlYxk2fnCasq/FUph1hadxlTRjF+gAcZksxANnaMnALjxEddmSi/H3OR8ugcQ== } + resolution: {integrity: sha512-a7tP5+0Mw3YlUJcGAKUqIBkYYGlYxk2fnCasq/FUph1hadxlTRjF+gAcZksxANnaMnALjxEddmSi/H3OR8ugcQ==} dev: false patched: true /brace-expansion@1.1.11: - resolution: - { integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== } + resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} dependencies: balanced-match: 1.0.2 concat-map: 0.0.1 dev: true /braces@3.0.2: - resolution: - { integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A== } - engines: { node: '>=8' } + resolution: {integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==} + engines: {node: '>=8'} dependencies: fill-range: 7.0.1 dev: true /breakword@1.0.5: - resolution: - { integrity: sha512-ex5W9DoOQ/LUEU3PMdLs9ua/CYZl1678NUkKOdUSi8Aw5F1idieaiRURCBFJCwVcrD1J8Iy3vfWSloaMwO2qFg== } + resolution: {integrity: sha512-ex5W9DoOQ/LUEU3PMdLs9ua/CYZl1678NUkKOdUSi8Aw5F1idieaiRURCBFJCwVcrD1J8Iy3vfWSloaMwO2qFg==} dependencies: wcwidth: 1.0.1 dev: true /call-bind@1.0.2: - resolution: - { integrity: sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA== } + resolution: {integrity: sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==} dependencies: function-bind: 1.1.1 get-intrinsic: 1.2.0 dev: true /callsites@3.1.0: - resolution: - { integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ== } - engines: { node: '>=6' } + resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} + engines: {node: '>=6'} dev: true /camelcase-keys@6.2.2: - resolution: - { integrity: sha512-YrwaA0vEKazPBkn0ipTiMpSajYDSe+KjQfrjhcBMxJt/znbvlHd8Pw/Vamaz5EB4Wfhs3SUR3Z9mwRu/P3s3Yg== } - engines: { node: '>=8' } + resolution: {integrity: sha512-YrwaA0vEKazPBkn0ipTiMpSajYDSe+KjQfrjhcBMxJt/znbvlHd8Pw/Vamaz5EB4Wfhs3SUR3Z9mwRu/P3s3Yg==} + engines: {node: '>=8'} dependencies: camelcase: 5.3.1 map-obj: 4.3.0 @@ -1835,15 +1695,13 @@ packages: dev: true /camelcase@5.3.1: - resolution: - { integrity: sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg== } - engines: { node: '>=6' } + resolution: {integrity: sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==} + engines: {node: '>=6'} dev: true /chalk@2.4.2: - resolution: - { integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== } - engines: { node: '>=4' } + resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==} + engines: {node: '>=4'} dependencies: ansi-styles: 3.2.1 escape-string-regexp: 1.0.5 @@ -1851,28 +1709,24 @@ packages: dev: true /chalk@4.1.2: - resolution: - { integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== } - engines: { node: '>=10' } + resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} + engines: {node: '>=10'} dependencies: ansi-styles: 4.3.0 supports-color: 7.2.0 dev: true /chardet@0.7.0: - resolution: - { integrity: sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA== } + resolution: {integrity: sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==} dev: true /ci-info@3.8.0: - resolution: - { integrity: sha512-eXTggHWSooYhq49F2opQhuHWgzucfF2YgODK4e1566GQs5BIfP30B0oenwBJHfWxAs2fyPB1s7Mg949zLf61Yw== } - engines: { node: '>=8' } + resolution: {integrity: sha512-eXTggHWSooYhq49F2opQhuHWgzucfF2YgODK4e1566GQs5BIfP30B0oenwBJHfWxAs2fyPB1s7Mg949zLf61Yw==} + engines: {node: '>=8'} dev: true /clipboard@2.0.11: - resolution: - { integrity: sha512-C+0bbOqkezLIsmWSvlsXS0Q0bmkugu7jcfMIACB+RDEntIzQIkdr148we28AfSloQLRdZlYL/QYyrq05j/3Faw== } + resolution: {integrity: sha512-C+0bbOqkezLIsmWSvlsXS0Q0bmkugu7jcfMIACB+RDEntIzQIkdr148we28AfSloQLRdZlYL/QYyrq05j/3Faw==} dependencies: good-listener: 1.2.2 select: 1.1.2 @@ -1880,8 +1734,7 @@ packages: dev: false /cliui@6.0.0: - resolution: - { integrity: sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ== } + resolution: {integrity: sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==} dependencies: string-width: 4.2.3 strip-ansi: 6.0.1 @@ -1889,9 +1742,8 @@ packages: dev: true /cliui@8.0.1: - resolution: - { integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ== } - engines: { node: '>=12' } + resolution: {integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==} + engines: {node: '>=12'} dependencies: string-width: 4.2.3 strip-ansi: 6.0.1 @@ -1899,58 +1751,50 @@ packages: dev: true /clone@1.0.4: - resolution: - { integrity: sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg== } - engines: { node: '>=0.8' } + resolution: {integrity: sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==} + engines: {node: '>=0.8'} dev: true /color-convert@1.9.3: - resolution: - { integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== } + resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==} dependencies: color-name: 1.1.3 dev: true /color-convert@2.0.1: - resolution: - { integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== } - engines: { node: '>=7.0.0' } + resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} + engines: {node: '>=7.0.0'} dependencies: color-name: 1.1.4 dev: true /color-name@1.1.3: - resolution: - { integrity: sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw== } + resolution: {integrity: sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==} dev: true /color-name@1.1.4: - resolution: - { integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== } + resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} dev: true /concat-map@0.0.1: - resolution: { integrity: sha1-2Klr13/Wjfd5OnMDajug1UBdR3s= } + resolution: {integrity: sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=} dev: true /core-js@3.36.1: - resolution: - { integrity: sha512-BTvUrwxVBezj5SZ3f10ImnX2oRByMxql3EimVqMysepbC9EeMUOpLwdy6Eoili2x6E4kf+ZUB5k/+Jv55alPfA== } + resolution: {integrity: sha512-BTvUrwxVBezj5SZ3f10ImnX2oRByMxql3EimVqMysepbC9EeMUOpLwdy6Eoili2x6E4kf+ZUB5k/+Jv55alPfA==} requiresBuild: true dev: false /cross-env@7.0.3: - resolution: - { integrity: sha512-+/HKd6EgcQCJGh2PSjZuUitQBQynKor4wrFbRg4DtAgS1aWO+gU52xpH7M9ScGgXSYmAVS9bIJ8EzuaGw0oNAw== } - engines: { node: '>=10.14', npm: '>=6', yarn: '>=1' } + resolution: {integrity: sha512-+/HKd6EgcQCJGh2PSjZuUitQBQynKor4wrFbRg4DtAgS1aWO+gU52xpH7M9ScGgXSYmAVS9bIJ8EzuaGw0oNAw==} + engines: {node: '>=10.14', npm: '>=6', yarn: '>=1'} hasBin: true dependencies: cross-spawn: 7.0.3 dev: true /cross-spawn@5.1.0: - resolution: - { integrity: sha512-pTgQJ5KC0d2hcY8eyL1IzlBPYjTkyH72XRZPnLyKus2mBfNjQs3klqbJU2VILqZryAZUt9JOb3h/mWMy23/f5A== } + resolution: {integrity: sha512-pTgQJ5KC0d2hcY8eyL1IzlBPYjTkyH72XRZPnLyKus2mBfNjQs3klqbJU2VILqZryAZUt9JOb3h/mWMy23/f5A==} dependencies: lru-cache: 4.1.5 shebang-command: 1.2.0 @@ -1958,9 +1802,8 @@ packages: dev: true /cross-spawn@7.0.3: - resolution: - { integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w== } - engines: { node: '>= 8' } + resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==} + engines: {node: '>= 8'} dependencies: path-key: 3.1.1 shebang-command: 2.0.0 @@ -1968,24 +1811,20 @@ packages: dev: true /csv-generate@3.4.3: - resolution: - { integrity: sha512-w/T+rqR0vwvHqWs/1ZyMDWtHHSJaN06klRqJXBEpDJaM/+dZkso0OKh1VcuuYvK3XM53KysVNq8Ko/epCK8wOw== } + resolution: {integrity: sha512-w/T+rqR0vwvHqWs/1ZyMDWtHHSJaN06klRqJXBEpDJaM/+dZkso0OKh1VcuuYvK3XM53KysVNq8Ko/epCK8wOw==} dev: true /csv-parse@4.16.3: - resolution: - { integrity: sha512-cO1I/zmz4w2dcKHVvpCr7JVRu8/FymG5OEpmvsZYlccYolPBLoVGKUHgNoc4ZGkFeFlWGEDmMyBM+TTqRdW/wg== } + resolution: {integrity: sha512-cO1I/zmz4w2dcKHVvpCr7JVRu8/FymG5OEpmvsZYlccYolPBLoVGKUHgNoc4ZGkFeFlWGEDmMyBM+TTqRdW/wg==} dev: true /csv-stringify@5.6.5: - resolution: - { integrity: sha512-PjiQ659aQ+fUTQqSrd1XEDnOr52jh30RBurfzkscaE2tPaFsDH5wOAHJiw8XAHphRknCwMUE9KRayc4K/NbO8A== } + resolution: {integrity: sha512-PjiQ659aQ+fUTQqSrd1XEDnOr52jh30RBurfzkscaE2tPaFsDH5wOAHJiw8XAHphRknCwMUE9KRayc4K/NbO8A==} dev: true /csv@5.5.3: - resolution: - { integrity: sha512-QTaY0XjjhTQOdguARF0lGKm5/mEq9PD9/VhZZegHDIBq2tQwgNpHc3dneD4mGo2iJs+fTKv5Bp0fZ+BRuY3Z0g== } - engines: { node: '>= 0.1.90' } + resolution: {integrity: sha512-QTaY0XjjhTQOdguARF0lGKm5/mEq9PD9/VhZZegHDIBq2tQwgNpHc3dneD4mGo2iJs+fTKv5Bp0fZ+BRuY3Z0g==} + engines: {node: '>= 0.1.90'} dependencies: csv-generate: 3.4.3 csv-parse: 4.16.3 @@ -1994,14 +1833,12 @@ packages: dev: true /dayjs@1.11.10: - resolution: - { integrity: sha512-vjAczensTgRcqDERK0SR2XMwsF/tSvnvlv6VcF2GIhg6Sx4yOIt/irsr1RDJsKiIyBzJDpCoXiWWq28MqH2cnQ== } + resolution: {integrity: sha512-vjAczensTgRcqDERK0SR2XMwsF/tSvnvlv6VcF2GIhg6Sx4yOIt/irsr1RDJsKiIyBzJDpCoXiWWq28MqH2cnQ==} dev: false /debug@4.3.4: - resolution: - { integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ== } - engines: { node: '>=6.0' } + resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==} + engines: {node: '>=6.0'} peerDependencies: supports-color: '*' peerDependenciesMeta: @@ -2012,103 +1849,88 @@ packages: dev: true /decamelize-keys@1.1.1: - resolution: - { integrity: sha512-WiPxgEirIV0/eIOMcnFBA3/IJZAZqKnwAwWyvvdi4lsr1WCN22nhdf/3db3DoZcUjTV2SqfzIwNyp6y2xs3nmg== } - engines: { node: '>=0.10.0' } + resolution: {integrity: sha512-WiPxgEirIV0/eIOMcnFBA3/IJZAZqKnwAwWyvvdi4lsr1WCN22nhdf/3db3DoZcUjTV2SqfzIwNyp6y2xs3nmg==} + engines: {node: '>=0.10.0'} dependencies: decamelize: 1.2.0 map-obj: 1.0.1 dev: true /decamelize@1.2.0: - resolution: - { integrity: sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA== } - engines: { node: '>=0.10.0' } + resolution: {integrity: sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==} + engines: {node: '>=0.10.0'} dev: true /deep-is@0.1.4: - resolution: - { integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ== } + resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==} dev: true /defaults@1.0.4: - resolution: - { integrity: sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A== } + resolution: {integrity: sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==} dependencies: clone: 1.0.4 dev: true /define-properties@1.2.0: - resolution: - { integrity: sha512-xvqAVKGfT1+UAvPwKTVw/njhdQ8ZhXK4lI0bCIuCMrp2up9nPnaDftrLtmpTazqd1o+UY4zgzU+avtMbDP+ldA== } - engines: { node: '>= 0.4' } + resolution: {integrity: sha512-xvqAVKGfT1+UAvPwKTVw/njhdQ8ZhXK4lI0bCIuCMrp2up9nPnaDftrLtmpTazqd1o+UY4zgzU+avtMbDP+ldA==} + engines: {node: '>= 0.4'} dependencies: has-property-descriptors: 1.0.0 object-keys: 1.1.1 dev: true /delegate@3.2.0: - resolution: - { integrity: sha512-IofjkYBZaZivn0V8nnsMJGBr4jVLxHDheKSW88PyxS5QC4Vo9ZbZVvhzlSxY87fVq3STR6r+4cGepyHkcWOQSw== } + resolution: {integrity: sha512-IofjkYBZaZivn0V8nnsMJGBr4jVLxHDheKSW88PyxS5QC4Vo9ZbZVvhzlSxY87fVq3STR6r+4cGepyHkcWOQSw==} dev: false /detect-indent@6.1.0: - resolution: - { integrity: sha512-reYkTUJAZb9gUuZ2RvVCNhVHdg62RHnJ7WJl8ftMi4diZ6NWlciOzQN88pUhSELEwflJht4oQDv0F0BMlwaYtA== } - engines: { node: '>=8' } + resolution: {integrity: sha512-reYkTUJAZb9gUuZ2RvVCNhVHdg62RHnJ7WJl8ftMi4diZ6NWlciOzQN88pUhSELEwflJht4oQDv0F0BMlwaYtA==} + engines: {node: '>=8'} dev: true /dir-glob@3.0.1: - resolution: - { integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA== } - engines: { node: '>=8' } + resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==} + engines: {node: '>=8'} dependencies: path-type: 4.0.0 dev: true /doctrine@3.0.0: - resolution: - { integrity: sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w== } - engines: { node: '>=6.0.0' } + resolution: {integrity: sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==} + engines: {node: '>=6.0.0'} dependencies: esutils: 2.0.3 dev: true /dompurify@3.0.3: - resolution: - { integrity: sha512-axQ9zieHLnAnHh0sfAamKYiqXMJAVwu+LM/alQ7WDagoWessyWvMSFyW65CqF3owufNu8HBcE4cM2Vflu7YWcQ== } + resolution: {integrity: sha512-axQ9zieHLnAnHh0sfAamKYiqXMJAVwu+LM/alQ7WDagoWessyWvMSFyW65CqF3owufNu8HBcE4cM2Vflu7YWcQ==} dev: false /emittery@1.0.1: - resolution: - { integrity: sha512-2ID6FdrMD9KDLldGesP6317G78K7km/kMcwItRtVFva7I/cSEOIaLpewaUb+YLXVwdAp3Ctfxh/V5zIl1sj7dQ== } - engines: { node: '>=14.16' } + resolution: {integrity: sha512-2ID6FdrMD9KDLldGesP6317G78K7km/kMcwItRtVFva7I/cSEOIaLpewaUb+YLXVwdAp3Ctfxh/V5zIl1sj7dQ==} + engines: {node: '>=14.16'} dev: false /emoji-regex@8.0.0: - resolution: - { integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== } + resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} dev: true /enquirer@2.3.6: - resolution: - { integrity: sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg== } - engines: { node: '>=8.6' } + resolution: {integrity: sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==} + engines: {node: '>=8.6'} dependencies: ansi-colors: 4.1.3 dev: true /error-ex@1.3.2: - resolution: - { integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g== } + resolution: {integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==} dependencies: is-arrayish: 0.2.1 dev: true /es-abstract@1.21.2: - resolution: - { integrity: sha512-y/B5POM2iBnIxCiernH1G7rC9qQoM77lLIMQLuob0zhp8C56Po81+2Nj0WFKnd0pNReDTnkYryc+zhOzpEIROg== } - engines: { node: '>= 0.4' } + resolution: {integrity: sha512-y/B5POM2iBnIxCiernH1G7rC9qQoM77lLIMQLuob0zhp8C56Po81+2Nj0WFKnd0pNReDTnkYryc+zhOzpEIROg==} + engines: {node: '>= 0.4'} dependencies: array-buffer-byte-length: 1.0.0 available-typed-arrays: 1.0.5 @@ -2147,9 +1969,8 @@ packages: dev: true /es-set-tostringtag@2.0.1: - resolution: - { integrity: sha512-g3OMbtlwY3QewlqAiMLI47KywjWZoEytKr8pf6iTC8uJq5bIAH52Z9pnQ8pVL6whrCto53JZDuUIsifGeLorTg== } - engines: { node: '>= 0.4' } + resolution: {integrity: sha512-g3OMbtlwY3QewlqAiMLI47KywjWZoEytKr8pf6iTC8uJq5bIAH52Z9pnQ8pVL6whrCto53JZDuUIsifGeLorTg==} + engines: {node: '>= 0.4'} dependencies: get-intrinsic: 1.2.0 has: 1.0.3 @@ -2157,16 +1978,14 @@ packages: dev: true /es-shim-unscopables@1.0.0: - resolution: - { integrity: sha512-Jm6GPcCdC30eMLbZ2x8z2WuRwAws3zTBBKuusffYVUrNj/GVSUAZ+xKMaUpfNDR5IbyNA5LJbaecoUVbmUcB1w== } + resolution: {integrity: sha512-Jm6GPcCdC30eMLbZ2x8z2WuRwAws3zTBBKuusffYVUrNj/GVSUAZ+xKMaUpfNDR5IbyNA5LJbaecoUVbmUcB1w==} dependencies: has: 1.0.3 dev: true /es-to-primitive@1.2.1: - resolution: - { integrity: sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA== } - engines: { node: '>= 0.4' } + resolution: {integrity: sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==} + engines: {node: '>= 0.4'} dependencies: is-callable: 1.2.7 is-date-object: 1.0.5 @@ -2174,9 +1993,8 @@ packages: dev: true /esbuild@0.18.2: - resolution: - { integrity: sha512-1P4sK9gXVcjvrrUjE94Hbo9goU+T6U1sdzLf+JJ+3uI6GEb4e4n3Wrqto9hZHUWabblpT2ifmC61LhZnLyTNFw== } - engines: { node: '>=12' } + resolution: {integrity: sha512-1P4sK9gXVcjvrrUjE94Hbo9goU+T6U1sdzLf+JJ+3uI6GEb4e4n3Wrqto9hZHUWabblpT2ifmC61LhZnLyTNFw==} + engines: {node: '>=12'} hasBin: true requiresBuild: true optionalDependencies: @@ -2205,9 +2023,8 @@ packages: dev: true /esbuild@0.19.12: - resolution: - { integrity: sha512-aARqgq8roFBj054KvQr5f1sFu0D65G+miZRCuJyJ0G13Zwx7vRar5Zhn2tkQNzIXcBrNVsv/8stehpj+GAjgbg== } - engines: { node: '>=12' } + resolution: {integrity: sha512-aARqgq8roFBj054KvQr5f1sFu0D65G+miZRCuJyJ0G13Zwx7vRar5Zhn2tkQNzIXcBrNVsv/8stehpj+GAjgbg==} + engines: {node: '>=12'} hasBin: true requiresBuild: true optionalDependencies: @@ -2237,25 +2054,21 @@ packages: dev: true /escalade@3.1.1: - resolution: - { integrity: sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw== } - engines: { node: '>=6' } + resolution: {integrity: sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==} + engines: {node: '>=6'} dev: true /escape-string-regexp@1.0.5: - resolution: - { integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg== } - engines: { node: '>=0.8.0' } + resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==} + engines: {node: '>=0.8.0'} dev: true /escape-string-regexp@4.0.0: - resolution: - { integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== } - engines: { node: '>=10' } + resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} + engines: {node: '>=10'} /eslint-config-prettier@8.8.0(eslint@8.42.0): - resolution: - { integrity: sha512-wLbQiFre3tdGgpDv67NQKnJuTlcUVYHas3k+DZCc2U2BadthoEY4B7hLPvAxaqdyOGCzuLfii2fqGph10va7oA== } + resolution: {integrity: sha512-wLbQiFre3tdGgpDv67NQKnJuTlcUVYHas3k+DZCc2U2BadthoEY4B7hLPvAxaqdyOGCzuLfii2fqGph10va7oA==} hasBin: true peerDependencies: eslint: '>=7.0.0' @@ -2264,9 +2077,8 @@ packages: dev: true /eslint-plugin-prettier@4.2.1(eslint-config-prettier@8.8.0)(eslint@8.42.0)(prettier@2.8.8): - resolution: - { integrity: sha512-f/0rXLXUt0oFYs8ra4w49wYZBG5GKZpAYsJSm6rnYL5uVDjd+zowwMwVZHnAjf4edNrKpCDYfXDgmRE/Ak7QyQ== } - engines: { node: '>=12.0.0' } + resolution: {integrity: sha512-f/0rXLXUt0oFYs8ra4w49wYZBG5GKZpAYsJSm6rnYL5uVDjd+zowwMwVZHnAjf4edNrKpCDYfXDgmRE/Ak7QyQ==} + engines: {node: '>=12.0.0'} peerDependencies: eslint: '>=7.28.0' eslint-config-prettier: '*' @@ -2282,8 +2094,7 @@ packages: dev: true /eslint-plugin-simple-import-sort@10.0.0(eslint@8.42.0): - resolution: - { integrity: sha512-AeTvO9UCMSNzIHRkg8S6c3RPy5YEwKWSQPx3DYghLedo2ZQxowPFLGDN1AZ2evfg6r6mjBSZSLxLFsWSu3acsw== } + resolution: {integrity: sha512-AeTvO9UCMSNzIHRkg8S6c3RPy5YEwKWSQPx3DYghLedo2ZQxowPFLGDN1AZ2evfg6r6mjBSZSLxLFsWSu3acsw==} peerDependencies: eslint: '>=5.0.0' dependencies: @@ -2291,33 +2102,29 @@ packages: dev: true /eslint-scope@5.1.1: - resolution: - { integrity: sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw== } - engines: { node: '>=8.0.0' } + resolution: {integrity: sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==} + engines: {node: '>=8.0.0'} dependencies: esrecurse: 4.3.0 estraverse: 4.3.0 dev: true /eslint-scope@7.2.0: - resolution: - { integrity: sha512-DYj5deGlHBfMt15J7rdtyKNq/Nqlv5KfU4iodrQ019XESsRnwXH9KAE0y3cwtUHDo2ob7CypAnCqefh6vioWRw== } - engines: { node: ^12.22.0 || ^14.17.0 || >=16.0.0 } + resolution: {integrity: sha512-DYj5deGlHBfMt15J7rdtyKNq/Nqlv5KfU4iodrQ019XESsRnwXH9KAE0y3cwtUHDo2ob7CypAnCqefh6vioWRw==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: esrecurse: 4.3.0 estraverse: 5.3.0 dev: true /eslint-visitor-keys@3.4.1: - resolution: - { integrity: sha512-pZnmmLwYzf+kWaM/Qgrvpen51upAktaaiI01nsJD/Yr3lMOdNtq0cxkrrg16w64VtisN6okbs7Q8AfGqj4c9fA== } - engines: { node: ^12.22.0 || ^14.17.0 || >=16.0.0 } + resolution: {integrity: sha512-pZnmmLwYzf+kWaM/Qgrvpen51upAktaaiI01nsJD/Yr3lMOdNtq0cxkrrg16w64VtisN6okbs7Q8AfGqj4c9fA==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dev: true /eslint@8.42.0: - resolution: - { integrity: sha512-ulg9Ms6E1WPf67PHaEY4/6E2tEn5/f7FXGzr3t9cBMugOmf1INYvuUwwh1aXQN4MfJ6a5K2iNwP3w4AColvI9A== } - engines: { node: ^12.22.0 || ^14.17.0 || >=16.0.0 } + resolution: {integrity: sha512-ulg9Ms6E1WPf67PHaEY4/6E2tEn5/f7FXGzr3t9cBMugOmf1INYvuUwwh1aXQN4MfJ6a5K2iNwP3w4AColvI9A==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} hasBin: true dependencies: '@eslint-community/eslint-utils': 4.4.0(eslint@8.42.0) @@ -2364,9 +2171,8 @@ packages: dev: true /espree@9.5.2: - resolution: - { integrity: sha512-7OASN1Wma5fum5SrNhFMAMJxOUAbhyfQ8dQ//PJaJbNw0URTPWqIghHWt1MmAANKhHZIYOHruW4Kw4ruUWOdGw== } - engines: { node: ^12.22.0 || ^14.17.0 || >=16.0.0 } + resolution: {integrity: sha512-7OASN1Wma5fum5SrNhFMAMJxOUAbhyfQ8dQ//PJaJbNw0URTPWqIghHWt1MmAANKhHZIYOHruW4Kw4ruUWOdGw==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: acorn: 8.8.2 acorn-jsx: 5.3.2(acorn@8.8.2) @@ -2374,55 +2180,47 @@ packages: dev: true /esprima@4.0.1: - resolution: - { integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== } - engines: { node: '>=4' } + resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==} + engines: {node: '>=4'} hasBin: true dev: true /esquery@1.5.0: - resolution: - { integrity: sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg== } - engines: { node: '>=0.10' } + resolution: {integrity: sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==} + engines: {node: '>=0.10'} dependencies: estraverse: 5.3.0 dev: true /esrecurse@4.3.0: - resolution: - { integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag== } - engines: { node: '>=4.0' } + resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==} + engines: {node: '>=4.0'} dependencies: estraverse: 5.3.0 dev: true /estraverse@4.3.0: - resolution: - { integrity: sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw== } - engines: { node: '>=4.0' } + resolution: {integrity: sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==} + engines: {node: '>=4.0'} dev: true /estraverse@5.3.0: - resolution: - { integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA== } - engines: { node: '>=4.0' } + resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==} + engines: {node: '>=4.0'} dev: true /esutils@2.0.3: - resolution: - { integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g== } - engines: { node: '>=0.10.0' } + resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} + engines: {node: '>=0.10.0'} dev: true /extendable-error@0.1.7: - resolution: - { integrity: sha512-UOiS2in6/Q0FK0R0q6UY9vYpQ21mr/Qn1KOnte7vsACuNJf514WvCCUHSRCPcgjPT2bAhNIJdlE6bVap1GKmeg== } + resolution: {integrity: sha512-UOiS2in6/Q0FK0R0q6UY9vYpQ21mr/Qn1KOnte7vsACuNJf514WvCCUHSRCPcgjPT2bAhNIJdlE6bVap1GKmeg==} dev: true /external-editor@3.1.0: - resolution: - { integrity: sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew== } - engines: { node: '>=4' } + resolution: {integrity: sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==} + engines: {node: '>=4'} dependencies: chardet: 0.7.0 iconv-lite: 0.4.24 @@ -2430,24 +2228,20 @@ packages: dev: true /fast-deep-equal@2.0.1: - resolution: - { integrity: sha512-bCK/2Z4zLidyB4ReuIsvALH6w31YfAQDmXMqMx6FyfHqvBxtjC0eRumeSu4Bs3XtXwpyIywtSTrVT99BxY1f9w== } + resolution: {integrity: sha512-bCK/2Z4zLidyB4ReuIsvALH6w31YfAQDmXMqMx6FyfHqvBxtjC0eRumeSu4Bs3XtXwpyIywtSTrVT99BxY1f9w==} dev: false /fast-deep-equal@3.1.3: - resolution: - { integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== } + resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} dev: true /fast-diff@1.2.0: - resolution: - { integrity: sha512-xJuoT5+L99XlZ8twedaRf6Ax2TgQVxvgZOYoPKqZufmJib0tL2tegPBOZb1pVNgIhlqDlA0eO0c3wBvQcmzx4w== } + resolution: {integrity: sha512-xJuoT5+L99XlZ8twedaRf6Ax2TgQVxvgZOYoPKqZufmJib0tL2tegPBOZb1pVNgIhlqDlA0eO0c3wBvQcmzx4w==} dev: true /fast-glob@3.2.12: - resolution: - { integrity: sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w== } - engines: { node: '>=8.6.0' } + resolution: {integrity: sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==} + engines: {node: '>=8.6.0'} dependencies: '@nodelib/fs.stat': 2.0.5 '@nodelib/fs.walk': 1.2.8 @@ -2457,96 +2251,83 @@ packages: dev: true /fast-json-stable-stringify@2.1.0: - resolution: - { integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== } + resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} dev: true /fast-levenshtein@2.0.6: - resolution: - { integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw== } + resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==} dev: true /fastq@1.15.0: - resolution: - { integrity: sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw== } + resolution: {integrity: sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==} dependencies: reusify: 1.0.4 dev: true /file-entry-cache@6.0.1: - resolution: - { integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg== } - engines: { node: ^10.12.0 || >=12.0.0 } + resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==} + engines: {node: ^10.12.0 || >=12.0.0} dependencies: flat-cache: 3.0.4 dev: true /fill-range@7.0.1: - resolution: - { integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ== } - engines: { node: '>=8' } + resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==} + engines: {node: '>=8'} dependencies: to-regex-range: 5.0.1 dev: true /find-up@4.1.0: - resolution: - { integrity: sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw== } - engines: { node: '>=8' } + resolution: {integrity: sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==} + engines: {node: '>=8'} dependencies: locate-path: 5.0.0 path-exists: 4.0.0 dev: true /find-up@5.0.0: - resolution: - { integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng== } - engines: { node: '>=10' } + resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==} + engines: {node: '>=10'} dependencies: locate-path: 6.0.0 path-exists: 4.0.0 dev: true /find-yarn-workspace-root2@1.2.16: - resolution: - { integrity: sha512-hr6hb1w8ePMpPVUK39S4RlwJzi+xPLuVuG8XlwXU3KD5Yn3qgBWVfy3AzNlDhWvE1EORCE65/Qm26rFQt3VLVA== } + resolution: {integrity: sha512-hr6hb1w8ePMpPVUK39S4RlwJzi+xPLuVuG8XlwXU3KD5Yn3qgBWVfy3AzNlDhWvE1EORCE65/Qm26rFQt3VLVA==} dependencies: micromatch: 4.0.5 pkg-dir: 4.2.0 dev: true /flat-cache@3.0.4: - resolution: - { integrity: sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg== } - engines: { node: ^10.12.0 || >=12.0.0 } + resolution: {integrity: sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==} + engines: {node: ^10.12.0 || >=12.0.0} dependencies: flatted: 3.2.7 rimraf: 3.0.2 dev: true /flatted@3.2.7: - resolution: - { integrity: sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ== } + resolution: {integrity: sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==} dev: true /focus-trap@7.4.3: - resolution: - { integrity: sha512-BgSSbK4GPnS2VbtZ50VtOv1Sti6DIkj3+LkVjiWMNjLeAp1SH1UlLx3ULu/DCu4vq5R4/uvTm+zrvsMsuYmGLg== } + resolution: {integrity: sha512-BgSSbK4GPnS2VbtZ50VtOv1Sti6DIkj3+LkVjiWMNjLeAp1SH1UlLx3ULu/DCu4vq5R4/uvTm+zrvsMsuYmGLg==} dependencies: tabbable: 6.1.2 dev: false /for-each@0.3.3: - resolution: - { integrity: sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw== } + resolution: {integrity: sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==} dependencies: is-callable: 1.2.7 dev: true /fs-extra@7.0.1: - resolution: - { integrity: sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw== } - engines: { node: '>=6 <7 || >=8' } + resolution: {integrity: sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==} + engines: {node: '>=6 <7 || >=8'} dependencies: graceful-fs: 4.2.11 jsonfile: 4.0.0 @@ -2554,9 +2335,8 @@ packages: dev: true /fs-extra@8.1.0: - resolution: - { integrity: sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g== } - engines: { node: '>=6 <7 || >=8' } + resolution: {integrity: sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==} + engines: {node: '>=6 <7 || >=8'} dependencies: graceful-fs: 4.2.11 jsonfile: 4.0.0 @@ -2564,37 +2344,32 @@ packages: dev: true /fs.realpath@1.0.0: - resolution: - { integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw== } + resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} dev: true /fsevents@2.3.2: - resolution: - { integrity: sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA== } - engines: { node: ^8.16.0 || ^10.6.0 || >=11.0.0 } + resolution: {integrity: sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==} + engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} os: [darwin] requiresBuild: true dev: true optional: true /fsevents@2.3.3: - resolution: - { integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw== } - engines: { node: ^8.16.0 || ^10.6.0 || >=11.0.0 } + resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} + engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} os: [darwin] requiresBuild: true dev: true optional: true /function-bind@1.1.1: - resolution: - { integrity: sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== } + resolution: {integrity: sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==} dev: true /function.prototype.name@1.1.5: - resolution: - { integrity: sha512-uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA== } - engines: { node: '>= 0.4' } + resolution: {integrity: sha512-uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA==} + engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.2 define-properties: 1.2.0 @@ -2603,19 +2378,16 @@ packages: dev: true /functions-have-names@1.2.3: - resolution: - { integrity: sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ== } + resolution: {integrity: sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==} dev: true /get-caller-file@2.0.5: - resolution: - { integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== } - engines: { node: 6.* || 8.* || >= 10.* } + resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} + engines: {node: 6.* || 8.* || >= 10.*} dev: true /get-intrinsic@1.2.0: - resolution: - { integrity: sha512-L049y6nFOuom5wGyRc3/gdTLO94dySVKRACj1RmJZBQXlbTMhtNIgkWkUHq+jYmZvKf14EW1EoJnnjbmoHij0Q== } + resolution: {integrity: sha512-L049y6nFOuom5wGyRc3/gdTLO94dySVKRACj1RmJZBQXlbTMhtNIgkWkUHq+jYmZvKf14EW1EoJnnjbmoHij0Q==} dependencies: function-bind: 1.1.1 has: 1.0.3 @@ -2623,40 +2395,35 @@ packages: dev: true /get-symbol-description@1.0.0: - resolution: - { integrity: sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw== } - engines: { node: '>= 0.4' } + resolution: {integrity: sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==} + engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.2 get-intrinsic: 1.2.0 dev: true /get-tsconfig@4.7.2: - resolution: - { integrity: sha512-wuMsz4leaj5hbGgg4IvDU0bqJagpftG5l5cXIAvo8uZrqn0NJqwtfupTN00VnkQJPcIRrxYrm1Ue24btpCha2A== } + resolution: {integrity: sha512-wuMsz4leaj5hbGgg4IvDU0bqJagpftG5l5cXIAvo8uZrqn0NJqwtfupTN00VnkQJPcIRrxYrm1Ue24btpCha2A==} dependencies: resolve-pkg-maps: 1.0.0 dev: true /glob-parent@5.1.2: - resolution: - { integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== } - engines: { node: '>= 6' } + resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} + engines: {node: '>= 6'} dependencies: is-glob: 4.0.3 dev: true /glob-parent@6.0.2: - resolution: - { integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A== } - engines: { node: '>=10.13.0' } + resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==} + engines: {node: '>=10.13.0'} dependencies: is-glob: 4.0.3 dev: true /glob@7.2.3: - resolution: - { integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q== } + resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} dependencies: fs.realpath: 1.0.0 inflight: 1.0.6 @@ -2667,25 +2434,22 @@ packages: dev: true /globals@13.20.0: - resolution: - { integrity: sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ== } - engines: { node: '>=8' } + resolution: {integrity: sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ==} + engines: {node: '>=8'} dependencies: type-fest: 0.20.2 dev: true /globalthis@1.0.3: - resolution: - { integrity: sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA== } - engines: { node: '>= 0.4' } + resolution: {integrity: sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==} + engines: {node: '>= 0.4'} dependencies: define-properties: 1.2.0 dev: true /globby@11.1.0: - resolution: - { integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g== } - engines: { node: '>=10' } + resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==} + engines: {node: '>=10'} dependencies: array-union: 2.1.0 dir-glob: 3.0.1 @@ -2696,169 +2460,142 @@ packages: dev: true /good-listener@1.2.2: - resolution: - { integrity: sha512-goW1b+d9q/HIwbVYZzZ6SsTr4IgE+WA44A0GmPIQstuOrgsFcT7VEJ48nmr9GaRtNu0XTKacFLGnBPAM6Afouw== } + resolution: {integrity: sha512-goW1b+d9q/HIwbVYZzZ6SsTr4IgE+WA44A0GmPIQstuOrgsFcT7VEJ48nmr9GaRtNu0XTKacFLGnBPAM6Afouw==} dependencies: delegate: 3.2.0 dev: false /gopd@1.0.1: - resolution: - { integrity: sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA== } + resolution: {integrity: sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==} dependencies: get-intrinsic: 1.2.0 dev: true /graceful-fs@4.2.11: - resolution: - { integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ== } + resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} dev: true /grapheme-splitter@1.0.4: - resolution: - { integrity: sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ== } + resolution: {integrity: sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==} dev: true /graphemer@1.4.0: - resolution: - { integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag== } + resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==} dev: true /hard-rejection@2.1.0: - resolution: - { integrity: sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA== } - engines: { node: '>=6' } + resolution: {integrity: sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA==} + engines: {node: '>=6'} dev: true /has-bigints@1.0.2: - resolution: - { integrity: sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ== } + resolution: {integrity: sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==} dev: true /has-flag@3.0.0: - resolution: - { integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw== } - engines: { node: '>=4' } + resolution: {integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==} + engines: {node: '>=4'} dev: true /has-flag@4.0.0: - resolution: - { integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== } - engines: { node: '>=8' } + resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} + engines: {node: '>=8'} dev: true /has-property-descriptors@1.0.0: - resolution: - { integrity: sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ== } + resolution: {integrity: sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==} dependencies: get-intrinsic: 1.2.0 dev: true /has-proto@1.0.1: - resolution: - { integrity: sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg== } - engines: { node: '>= 0.4' } + resolution: {integrity: sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==} + engines: {node: '>= 0.4'} dev: true /has-symbols@1.0.3: - resolution: - { integrity: sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A== } - engines: { node: '>= 0.4' } + resolution: {integrity: sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==} + engines: {node: '>= 0.4'} dev: true /has-tostringtag@1.0.0: - resolution: - { integrity: sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ== } - engines: { node: '>= 0.4' } + resolution: {integrity: sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==} + engines: {node: '>= 0.4'} dependencies: has-symbols: 1.0.3 dev: true /has@1.0.3: - resolution: - { integrity: sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw== } - engines: { node: '>= 0.4.0' } + resolution: {integrity: sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==} + engines: {node: '>= 0.4.0'} dependencies: function-bind: 1.1.1 dev: true /hey-listen@1.0.8: - resolution: - { integrity: sha512-COpmrF2NOg4TBWUJ5UVyaCU2A88wEMkUPK4hNqyCkqHbxT92BbvfjoSozkAIIm6XhicGlJHhFdullInrdhwU8Q== } + resolution: {integrity: sha512-COpmrF2NOg4TBWUJ5UVyaCU2A88wEMkUPK4hNqyCkqHbxT92BbvfjoSozkAIIm6XhicGlJHhFdullInrdhwU8Q==} /highlight.js@11.8.0: - resolution: - { integrity: sha512-MedQhoqVdr0U6SSnWPzfiadUcDHfN/Wzq25AkXiQv9oiOO/sG0S7XkvpFIqWBl9Yq1UYyYOOVORs5UW2XlPyzg== } - engines: { node: '>=12.0.0' } + resolution: {integrity: sha512-MedQhoqVdr0U6SSnWPzfiadUcDHfN/Wzq25AkXiQv9oiOO/sG0S7XkvpFIqWBl9Yq1UYyYOOVORs5UW2XlPyzg==} + engines: {node: '>=12.0.0'} dev: false /hls.js@1.4.5: - resolution: - { integrity: sha512-xb7IiSM9apU3tJWb5rdSStobXPNJJykHTwSy7JnLF5y/kLJXWjoR/fEpNBlwYxkKcDiiSfO9SQI8yFravZJxIg== } + resolution: {integrity: sha512-xb7IiSM9apU3tJWb5rdSStobXPNJJykHTwSy7JnLF5y/kLJXWjoR/fEpNBlwYxkKcDiiSfO9SQI8yFravZJxIg==} dev: false /hosted-git-info@2.8.9: - resolution: - { integrity: sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw== } + resolution: {integrity: sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==} dev: true /human-id@1.0.2: - resolution: - { integrity: sha512-UNopramDEhHJD+VR+ehk8rOslwSfByxPIZyJRfV739NDhN5LF1fa1MqnzKm2lGTQRjNrjK19Q5fhkgIfjlVUKw== } + resolution: {integrity: sha512-UNopramDEhHJD+VR+ehk8rOslwSfByxPIZyJRfV739NDhN5LF1fa1MqnzKm2lGTQRjNrjK19Q5fhkgIfjlVUKw==} dev: true /iconv-lite@0.4.24: - resolution: - { integrity: sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA== } - engines: { node: '>=0.10.0' } + resolution: {integrity: sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==} + engines: {node: '>=0.10.0'} dependencies: safer-buffer: 2.1.2 dev: true /ignore@5.2.4: - resolution: - { integrity: sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ== } - engines: { node: '>= 4' } + resolution: {integrity: sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==} + engines: {node: '>= 4'} dev: true /import-fresh@3.3.0: - resolution: - { integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw== } - engines: { node: '>=6' } + resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==} + engines: {node: '>=6'} dependencies: parent-module: 1.0.1 resolve-from: 4.0.0 dev: true /imurmurhash@0.1.4: - resolution: - { integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA== } - engines: { node: '>=0.8.19' } + resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==} + engines: {node: '>=0.8.19'} dev: true /indent-string@4.0.0: - resolution: - { integrity: sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg== } - engines: { node: '>=8' } + resolution: {integrity: sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==} + engines: {node: '>=8'} dev: true /inflight@1.0.6: - resolution: - { integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA== } + resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==} dependencies: once: 1.4.0 wrappy: 1.0.2 dev: true /inherits@2.0.4: - resolution: - { integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== } + resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} dev: true /internal-slot@1.0.5: - resolution: - { integrity: sha512-Y+R5hJrzs52QCG2laLn4udYVnxsfny9CpOhNhUvk/SSSVyF6T27FzRbF0sroPidSu3X8oEAkOn2K804mjpt6UQ== } - engines: { node: '>= 0.4' } + resolution: {integrity: sha512-Y+R5hJrzs52QCG2laLn4udYVnxsfny9CpOhNhUvk/SSSVyF6T27FzRbF0sroPidSu3X8oEAkOn2K804mjpt6UQ==} + engines: {node: '>= 0.4'} dependencies: get-intrinsic: 1.2.0 has: 1.0.3 @@ -2866,8 +2603,7 @@ packages: dev: true /is-array-buffer@3.0.2: - resolution: - { integrity: sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w== } + resolution: {integrity: sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w==} dependencies: call-bind: 1.0.2 get-intrinsic: 1.2.0 @@ -2875,143 +2611,123 @@ packages: dev: true /is-arrayish@0.2.1: - resolution: - { integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg== } + resolution: {integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==} dev: true /is-bigint@1.0.4: - resolution: - { integrity: sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg== } + resolution: {integrity: sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==} dependencies: has-bigints: 1.0.2 dev: true /is-boolean-object@1.1.2: - resolution: - { integrity: sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA== } - engines: { node: '>= 0.4' } + resolution: {integrity: sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==} + engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.2 has-tostringtag: 1.0.0 dev: true /is-callable@1.2.7: - resolution: - { integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA== } - engines: { node: '>= 0.4' } + resolution: {integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==} + engines: {node: '>= 0.4'} dev: true /is-core-module@2.12.0: - resolution: - { integrity: sha512-RECHCBCd/viahWmwj6enj19sKbHfJrddi/6cBDsNTKbNq0f7VeaUkBo60BqzvPqo/W54ChS62Z5qyun7cfOMqQ== } + resolution: {integrity: sha512-RECHCBCd/viahWmwj6enj19sKbHfJrddi/6cBDsNTKbNq0f7VeaUkBo60BqzvPqo/W54ChS62Z5qyun7cfOMqQ==} dependencies: has: 1.0.3 dev: true /is-date-object@1.0.5: - resolution: - { integrity: sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ== } - engines: { node: '>= 0.4' } + resolution: {integrity: sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==} + engines: {node: '>= 0.4'} dependencies: has-tostringtag: 1.0.0 dev: true /is-extglob@2.1.1: - resolution: - { integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ== } - engines: { node: '>=0.10.0' } + resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} + engines: {node: '>=0.10.0'} dev: true /is-fullwidth-code-point@3.0.0: - resolution: - { integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== } - engines: { node: '>=8' } + resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} + engines: {node: '>=8'} dev: true /is-glob@4.0.3: - resolution: - { integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg== } - engines: { node: '>=0.10.0' } + resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} + engines: {node: '>=0.10.0'} dependencies: is-extglob: 2.1.1 dev: true /is-negative-zero@2.0.2: - resolution: - { integrity: sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA== } - engines: { node: '>= 0.4' } + resolution: {integrity: sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==} + engines: {node: '>= 0.4'} dev: true /is-number-object@1.0.7: - resolution: - { integrity: sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ== } - engines: { node: '>= 0.4' } + resolution: {integrity: sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==} + engines: {node: '>= 0.4'} dependencies: has-tostringtag: 1.0.0 dev: true /is-number@7.0.0: - resolution: - { integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== } - engines: { node: '>=0.12.0' } + resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} + engines: {node: '>=0.12.0'} dev: true /is-path-inside@3.0.3: - resolution: - { integrity: sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ== } - engines: { node: '>=8' } + resolution: {integrity: sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==} + engines: {node: '>=8'} dev: true /is-plain-obj@1.1.0: - resolution: - { integrity: sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg== } - engines: { node: '>=0.10.0' } + resolution: {integrity: sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg==} + engines: {node: '>=0.10.0'} dev: true /is-regex@1.1.4: - resolution: - { integrity: sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg== } - engines: { node: '>= 0.4' } + resolution: {integrity: sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==} + engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.2 has-tostringtag: 1.0.0 dev: true /is-shared-array-buffer@1.0.2: - resolution: - { integrity: sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA== } + resolution: {integrity: sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==} dependencies: call-bind: 1.0.2 dev: true /is-string@1.0.7: - resolution: - { integrity: sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg== } - engines: { node: '>= 0.4' } + resolution: {integrity: sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==} + engines: {node: '>= 0.4'} dependencies: has-tostringtag: 1.0.0 dev: true /is-subdir@1.2.0: - resolution: - { integrity: sha512-2AT6j+gXe/1ueqbW6fLZJiIw3F8iXGJtt0yDrZaBhAZEG1raiTxKWU+IPqMCzQAXOUCKdA4UDMgacKH25XG2Cw== } - engines: { node: '>=4' } + resolution: {integrity: sha512-2AT6j+gXe/1ueqbW6fLZJiIw3F8iXGJtt0yDrZaBhAZEG1raiTxKWU+IPqMCzQAXOUCKdA4UDMgacKH25XG2Cw==} + engines: {node: '>=4'} dependencies: better-path-resolve: 1.0.0 dev: true /is-symbol@1.0.4: - resolution: - { integrity: sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg== } - engines: { node: '>= 0.4' } + resolution: {integrity: sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==} + engines: {node: '>= 0.4'} dependencies: has-symbols: 1.0.3 dev: true /is-typed-array@1.1.10: - resolution: - { integrity: sha512-PJqgEHiWZvMpaFZ3uTc8kHPM4+4ADTlDniuQL7cU/UDA0Ql7F70yGfHph3cLNe+c9toaigv+DFzTJKhc2CtO6A== } - engines: { node: '>= 0.4' } + resolution: {integrity: sha512-PJqgEHiWZvMpaFZ3uTc8kHPM4+4ADTlDniuQL7cU/UDA0Ql7F70yGfHph3cLNe+c9toaigv+DFzTJKhc2CtO6A==} + engines: {node: '>= 0.4'} dependencies: available-typed-arrays: 1.0.5 call-bind: 1.0.2 @@ -3021,37 +2737,31 @@ packages: dev: true /is-weakref@1.0.2: - resolution: - { integrity: sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ== } + resolution: {integrity: sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==} dependencies: call-bind: 1.0.2 dev: true /is-windows@1.0.2: - resolution: - { integrity: sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA== } - engines: { node: '>=0.10.0' } + resolution: {integrity: sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==} + engines: {node: '>=0.10.0'} dev: true /isexe@2.0.0: - resolution: - { integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw== } + resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} dev: true /js-cookie@3.0.5: - resolution: - { integrity: sha512-cEiJEAEoIbWfCZYKWhVwFuvPX1gETRYPw6LlaTKoxD3s2AkXzkCjnp6h0V77ozyqj0jakteJ4YqDJT830+lVGw== } - engines: { node: '>=14' } + resolution: {integrity: sha512-cEiJEAEoIbWfCZYKWhVwFuvPX1gETRYPw6LlaTKoxD3s2AkXzkCjnp6h0V77ozyqj0jakteJ4YqDJT830+lVGw==} + engines: {node: '>=14'} dev: false /js-tokens@4.0.0: - resolution: - { integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== } + resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} dev: true /js-yaml@3.14.1: - resolution: - { integrity: sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g== } + resolution: {integrity: sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==} hasBin: true dependencies: argparse: 1.0.10 @@ -3059,68 +2769,57 @@ packages: dev: true /js-yaml@4.1.0: - resolution: - { integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA== } + resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==} hasBin: true dependencies: argparse: 2.0.1 dev: true /json-parse-even-better-errors@2.3.1: - resolution: - { integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w== } + resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==} dev: true /json-schema-traverse@0.4.1: - resolution: - { integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg== } + resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==} dev: true /json-stable-stringify-without-jsonify@1.0.1: - resolution: - { integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw== } + resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==} dev: true /jsonfile@4.0.0: - resolution: - { integrity: sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg== } + resolution: {integrity: sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==} optionalDependencies: graceful-fs: 4.2.11 dev: true /just-debounce@1.1.0: - resolution: - { integrity: sha512-qpcRocdkUmf+UTNBYx5w6dexX5J31AKK1OmPwH630a83DdVVUIngk55RSAiIGpQyoH0dlr872VHfPjnQnK1qDQ== } + resolution: {integrity: sha512-qpcRocdkUmf+UTNBYx5w6dexX5J31AKK1OmPwH630a83DdVVUIngk55RSAiIGpQyoH0dlr872VHfPjnQnK1qDQ==} dev: false /just-throttle@4.2.0: - resolution: - { integrity: sha512-/iAZv1953JcExpvsywaPKjSzfTiCLqeguUTE6+VmK15mOcwxBx7/FHrVvS4WEErMR03TRazH8kcBSHqMagYIYg== } + resolution: {integrity: sha512-/iAZv1953JcExpvsywaPKjSzfTiCLqeguUTE6+VmK15mOcwxBx7/FHrVvS4WEErMR03TRazH8kcBSHqMagYIYg==} dev: false /kind-of@6.0.3: - resolution: - { integrity: sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw== } - engines: { node: '>=0.10.0' } + resolution: {integrity: sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==} + engines: {node: '>=0.10.0'} dev: true /kleur@4.1.5: - resolution: - { integrity: sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ== } - engines: { node: '>=6' } + resolution: {integrity: sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==} + engines: {node: '>=6'} dev: true /launchdarkly-js-client-sdk@2.23.0: - resolution: - { integrity: sha512-dLzwD0oHV/RwT0bhrPwGaeujQWZ7PNY2ATf6JiT0DnILYQ3CSJdXkRFtxQlQEiIlZqzeJhdogWcJAXuUuUxivA== } + resolution: {integrity: sha512-dLzwD0oHV/RwT0bhrPwGaeujQWZ7PNY2ATf6JiT0DnILYQ3CSJdXkRFtxQlQEiIlZqzeJhdogWcJAXuUuUxivA==} dependencies: escape-string-regexp: 4.0.0 launchdarkly-js-sdk-common: 3.7.0 dev: false /launchdarkly-js-sdk-common@3.7.0: - resolution: - { integrity: sha512-sfRXKGh8obOIGMKssbofDeSLQic1mgQJaPcwo+Sbqq6VEVXZgJgw7x1209lareMJsDwYdI5GCyxNHn4d8H2i1w== } + resolution: {integrity: sha512-sfRXKGh8obOIGMKssbofDeSLQic1mgQJaPcwo+Sbqq6VEVXZgJgw7x1209lareMJsDwYdI5GCyxNHn4d8H2i1w==} dependencies: base64-js: 1.5.1 fast-deep-equal: 2.0.1 @@ -3128,23 +2827,20 @@ packages: dev: false /levn@0.4.1: - resolution: - { integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ== } - engines: { node: '>= 0.8.0' } + resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==} + engines: {node: '>= 0.8.0'} dependencies: prelude-ls: 1.2.1 type-check: 0.4.0 dev: true /lines-and-columns@1.2.4: - resolution: - { integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg== } + resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} dev: true /load-yaml-file@0.2.0: - resolution: - { integrity: sha512-OfCBkGEw4nN6JLtgRidPX6QxjBQGQf72q3si2uvqyFEMbycSFFHwAZeXx6cJgFM9wmLrf9zBwCP3Ivqa+LLZPw== } - engines: { node: '>=6' } + resolution: {integrity: sha512-OfCBkGEw4nN6JLtgRidPX6QxjBQGQf72q3si2uvqyFEMbycSFFHwAZeXx6cJgFM9wmLrf9zBwCP3Ivqa+LLZPw==} + engines: {node: '>=6'} dependencies: graceful-fs: 4.2.11 js-yaml: 3.14.1 @@ -3153,63 +2849,54 @@ packages: dev: true /locate-path@5.0.0: - resolution: - { integrity: sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g== } - engines: { node: '>=8' } + resolution: {integrity: sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==} + engines: {node: '>=8'} dependencies: p-locate: 4.1.0 dev: true /locate-path@6.0.0: - resolution: - { integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw== } - engines: { node: '>=10' } + resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==} + engines: {node: '>=10'} dependencies: p-locate: 5.0.0 dev: true /lodash.merge@4.6.2: - resolution: - { integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ== } + resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==} dev: true /lodash.startcase@4.4.0: - resolution: - { integrity: sha512-+WKqsK294HMSc2jEbNgpHpd0JfIBhp7rEV4aqXWqFr6AlXov+SlcgB1Fv01y2kGe3Gc8nMW7VA0SrGuSkRfIEg== } + resolution: {integrity: sha512-+WKqsK294HMSc2jEbNgpHpd0JfIBhp7rEV4aqXWqFr6AlXov+SlcgB1Fv01y2kGe3Gc8nMW7VA0SrGuSkRfIEg==} dev: true /lru-cache@4.1.5: - resolution: - { integrity: sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g== } + resolution: {integrity: sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==} dependencies: pseudomap: 1.0.2 yallist: 2.1.2 dev: true /lru-cache@6.0.0: - resolution: - { integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA== } - engines: { node: '>=10' } + resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==} + engines: {node: '>=10'} dependencies: yallist: 4.0.0 dev: true /map-obj@1.0.1: - resolution: - { integrity: sha512-7N/q3lyZ+LVCp7PzuxrJr4KMbBE2hW7BT7YNia330OFxIf4d3r5zVpicP2650l7CPN6RM9zOJRl3NGpqSiw3Eg== } - engines: { node: '>=0.10.0' } + resolution: {integrity: sha512-7N/q3lyZ+LVCp7PzuxrJr4KMbBE2hW7BT7YNia330OFxIf4d3r5zVpicP2650l7CPN6RM9zOJRl3NGpqSiw3Eg==} + engines: {node: '>=0.10.0'} dev: true /map-obj@4.3.0: - resolution: - { integrity: sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ== } - engines: { node: '>=8' } + resolution: {integrity: sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ==} + engines: {node: '>=8'} dev: true /meow@6.1.1: - resolution: - { integrity: sha512-3YffViIt2QWgTy6Pale5QpopX/IvU3LPL03jOTqp6pGj3VjesdO/U8CuHMKpnQr4shCNCM5fd5XFFvIIl6JBHg== } - engines: { node: '>=8' } + resolution: {integrity: sha512-3YffViIt2QWgTy6Pale5QpopX/IvU3LPL03jOTqp6pGj3VjesdO/U8CuHMKpnQr4shCNCM5fd5XFFvIIl6JBHg==} + engines: {node: '>=8'} dependencies: '@types/minimist': 1.2.2 camelcase-keys: 6.2.2 @@ -3225,37 +2912,32 @@ packages: dev: true /merge2@1.4.1: - resolution: - { integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg== } - engines: { node: '>= 8' } + resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} + engines: {node: '>= 8'} dev: true /micromatch@4.0.5: - resolution: - { integrity: sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA== } - engines: { node: '>=8.6' } + resolution: {integrity: sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==} + engines: {node: '>=8.6'} dependencies: braces: 3.0.2 picomatch: 2.3.1 dev: true /min-indent@1.0.1: - resolution: - { integrity: sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg== } - engines: { node: '>=4' } + resolution: {integrity: sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==} + engines: {node: '>=4'} dev: true /minimatch@3.1.2: - resolution: - { integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw== } + resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} dependencies: brace-expansion: 1.1.11 dev: true /minimist-options@4.1.0: - resolution: - { integrity: sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A== } - engines: { node: '>= 6' } + resolution: {integrity: sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A==} + engines: {node: '>= 6'} dependencies: arrify: 1.0.1 is-plain-obj: 1.1.0 @@ -3263,14 +2945,12 @@ packages: dev: true /mixme@0.5.9: - resolution: - { integrity: sha512-VC5fg6ySUscaWUpI4gxCBTQMH2RdUpNrk+MsbpCYtIvf9SBJdiUey4qE7BXviJsJR4nDQxCZ+3yaYNW3guz/Pw== } - engines: { node: '>= 8.0.0' } + resolution: {integrity: sha512-VC5fg6ySUscaWUpI4gxCBTQMH2RdUpNrk+MsbpCYtIvf9SBJdiUey4qE7BXviJsJR4nDQxCZ+3yaYNW3guz/Pw==} + engines: {node: '>= 8.0.0'} dev: true /motion@10.16.2: - resolution: - { integrity: sha512-p+PurYqfUdcJZvtnmAqu5fJgV2kR0uLFQuBKtLeFVTrYEVllI99tiOTSefVNYuip9ELTEkepIIDftNdze76NAQ== } + resolution: {integrity: sha512-p+PurYqfUdcJZvtnmAqu5fJgV2kR0uLFQuBKtLeFVTrYEVllI99tiOTSefVNYuip9ELTEkepIIDftNdze76NAQ==} dependencies: '@motionone/animation': 10.15.1 '@motionone/dom': 10.16.2 @@ -3281,36 +2961,30 @@ packages: dev: false /ms@2.1.2: - resolution: - { integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== } + resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} dev: true /nanoid@4.0.2: - resolution: - { integrity: sha512-7ZtY5KTCNheRGfEFxnedV5zFiORN1+Y1N6zvPTnHQd8ENUvfaDBeuJDZb2bN/oXwXxu3qkTXDzy57W5vAmDTBw== } - engines: { node: ^14 || ^16 || >=18 } + resolution: {integrity: sha512-7ZtY5KTCNheRGfEFxnedV5zFiORN1+Y1N6zvPTnHQd8ENUvfaDBeuJDZb2bN/oXwXxu3qkTXDzy57W5vAmDTBw==} + engines: {node: ^14 || ^16 || >=18} hasBin: true dev: false /nanostores@0.9.3: - resolution: - { integrity: sha512-KobZjcVyNndNrb5DAjfs0WG0lRcZu5Q1BOrfTOxokFLi25zFrWPjg+joXC6kuDqNfSt9fQwppyjUBkRPtsL+8w== } - engines: { node: ^16.0.0 || ^18.0.0 || >=20.0.0 } + resolution: {integrity: sha512-KobZjcVyNndNrb5DAjfs0WG0lRcZu5Q1BOrfTOxokFLi25zFrWPjg+joXC6kuDqNfSt9fQwppyjUBkRPtsL+8w==} + engines: {node: ^16.0.0 || ^18.0.0 || >=20.0.0} dev: false /natural-compare-lite@1.4.0: - resolution: - { integrity: sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g== } + resolution: {integrity: sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g==} dev: true /natural-compare@1.4.0: - resolution: - { integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw== } + resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} dev: true /normalize-package-data@2.5.0: - resolution: - { integrity: sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA== } + resolution: {integrity: sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==} dependencies: hosted-git-info: 2.8.9 resolve: 1.22.2 @@ -3319,20 +2993,17 @@ packages: dev: true /object-inspect@1.12.3: - resolution: - { integrity: sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g== } + resolution: {integrity: sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g==} dev: true /object-keys@1.1.1: - resolution: - { integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA== } - engines: { node: '>= 0.4' } + resolution: {integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==} + engines: {node: '>= 0.4'} dev: true /object.assign@4.1.4: - resolution: - { integrity: sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ== } - engines: { node: '>= 0.4' } + resolution: {integrity: sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==} + engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.2 define-properties: 1.2.0 @@ -3341,16 +3012,14 @@ packages: dev: true /once@1.4.0: - resolution: - { integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w== } + resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} dependencies: wrappy: 1.0.2 dev: true /optionator@0.9.1: - resolution: - { integrity: sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw== } - engines: { node: '>= 0.8.0' } + resolution: {integrity: sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==} + engines: {node: '>= 0.8.0'} dependencies: deep-is: 0.1.4 fast-levenshtein: 2.0.6 @@ -3361,80 +3030,69 @@ packages: dev: true /os-tmpdir@1.0.2: - resolution: - { integrity: sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g== } - engines: { node: '>=0.10.0' } + resolution: {integrity: sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==} + engines: {node: '>=0.10.0'} dev: true /outdent@0.5.0: - resolution: - { integrity: sha512-/jHxFIzoMXdqPzTaCpFzAAWhpkSjZPF4Vsn6jAfNpmbH/ymsmd7Qc6VE9BGn0L6YMj6uwpQLxCECpus4ukKS9Q== } + resolution: {integrity: sha512-/jHxFIzoMXdqPzTaCpFzAAWhpkSjZPF4Vsn6jAfNpmbH/ymsmd7Qc6VE9BGn0L6YMj6uwpQLxCECpus4ukKS9Q==} dev: true /p-filter@2.1.0: - resolution: - { integrity: sha512-ZBxxZ5sL2HghephhpGAQdoskxplTwr7ICaehZwLIlfL6acuVgZPm8yBNuRAFBGEqtD/hmUeq9eqLg2ys9Xr/yw== } - engines: { node: '>=8' } + resolution: {integrity: sha512-ZBxxZ5sL2HghephhpGAQdoskxplTwr7ICaehZwLIlfL6acuVgZPm8yBNuRAFBGEqtD/hmUeq9eqLg2ys9Xr/yw==} + engines: {node: '>=8'} dependencies: p-map: 2.1.0 dev: true /p-limit@2.3.0: - resolution: - { integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w== } - engines: { node: '>=6' } + resolution: {integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==} + engines: {node: '>=6'} dependencies: p-try: 2.2.0 dev: true /p-limit@3.1.0: - resolution: - { integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ== } - engines: { node: '>=10' } + resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==} + engines: {node: '>=10'} dependencies: yocto-queue: 0.1.0 dev: true /p-locate@4.1.0: - resolution: - { integrity: sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A== } - engines: { node: '>=8' } + resolution: {integrity: sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==} + engines: {node: '>=8'} dependencies: p-limit: 2.3.0 dev: true /p-locate@5.0.0: - resolution: - { integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw== } - engines: { node: '>=10' } + resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==} + engines: {node: '>=10'} dependencies: p-limit: 3.1.0 dev: true /p-map@2.1.0: - resolution: - { integrity: sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw== } - engines: { node: '>=6' } + resolution: {integrity: sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==} + engines: {node: '>=6'} dev: true /p-try@2.2.0: - resolution: - { integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ== } - engines: { node: '>=6' } + resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==} + engines: {node: '>=6'} dev: true /parent-module@1.0.1: - resolution: - { integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g== } - engines: { node: '>=6' } + resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} + engines: {node: '>=6'} dependencies: callsites: 3.1.0 dev: true /parse-json@5.2.0: - resolution: - { integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg== } - engines: { node: '>=8' } + resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==} + engines: {node: '>=8'} dependencies: '@babel/code-frame': 7.21.4 error-ex: 1.3.2 @@ -3443,65 +3101,55 @@ packages: dev: true /path-exists@4.0.0: - resolution: - { integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w== } - engines: { node: '>=8' } + resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} + engines: {node: '>=8'} dev: true /path-is-absolute@1.0.1: - resolution: - { integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg== } - engines: { node: '>=0.10.0' } + resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==} + engines: {node: '>=0.10.0'} dev: true /path-key@3.1.1: - resolution: - { integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== } - engines: { node: '>=8' } + resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} + engines: {node: '>=8'} dev: true /path-parse@1.0.7: - resolution: - { integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== } + resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} dev: true /path-type@4.0.0: - resolution: - { integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw== } - engines: { node: '>=8' } + resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} + engines: {node: '>=8'} dev: true /picomatch@2.3.1: - resolution: - { integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== } - engines: { node: '>=8.6' } + resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} + engines: {node: '>=8.6'} dev: true /pify@4.0.1: - resolution: - { integrity: sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g== } - engines: { node: '>=6' } + resolution: {integrity: sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==} + engines: {node: '>=6'} dev: true /pkg-dir@4.2.0: - resolution: - { integrity: sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ== } - engines: { node: '>=8' } + resolution: {integrity: sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==} + engines: {node: '>=8'} dependencies: find-up: 4.1.0 dev: true /playwright-core@1.39.0: - resolution: - { integrity: sha512-+k4pdZgs1qiM+OUkSjx96YiKsXsmb59evFoqv8SKO067qBA+Z2s/dCzJij/ZhdQcs2zlTAgRKfeiiLm8PQ2qvw== } - engines: { node: '>=16' } + resolution: {integrity: sha512-+k4pdZgs1qiM+OUkSjx96YiKsXsmb59evFoqv8SKO067qBA+Z2s/dCzJij/ZhdQcs2zlTAgRKfeiiLm8PQ2qvw==} + engines: {node: '>=16'} hasBin: true dev: true /playwright@1.39.0: - resolution: - { integrity: sha512-naE5QT11uC/Oiq0BwZ50gDmy8c8WLPRTEWuSSFVG2egBka/1qMoSqYQcROMT9zLwJ86oPofcTH2jBY/5wWOgIw== } - engines: { node: '>=16' } + resolution: {integrity: sha512-naE5QT11uC/Oiq0BwZ50gDmy8c8WLPRTEWuSSFVG2egBka/1qMoSqYQcROMT9zLwJ86oPofcTH2jBY/5wWOgIw==} + engines: {node: '>=16'} hasBin: true dependencies: playwright-core: 1.39.0 @@ -3510,9 +3158,8 @@ packages: dev: true /preferred-pm@3.0.3: - resolution: - { integrity: sha512-+wZgbxNES/KlJs9q40F/1sfOd/j7f1O9JaHcW5Dsn3aUUOZg3L2bjpVUcKV2jvtElYfoTuQiNeMfQJ4kwUAhCQ== } - engines: { node: '>=10' } + resolution: {integrity: sha512-+wZgbxNES/KlJs9q40F/1sfOd/j7f1O9JaHcW5Dsn3aUUOZg3L2bjpVUcKV2jvtElYfoTuQiNeMfQJ4kwUAhCQ==} + engines: {node: '>=10'} dependencies: find-up: 5.0.0 find-yarn-workspace-root2: 1.2.16 @@ -3521,52 +3168,44 @@ packages: dev: true /prelude-ls@1.2.1: - resolution: - { integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g== } - engines: { node: '>= 0.8.0' } + resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} + engines: {node: '>= 0.8.0'} dev: true /prettier-linter-helpers@1.0.0: - resolution: - { integrity: sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w== } - engines: { node: '>=6.0.0' } + resolution: {integrity: sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==} + engines: {node: '>=6.0.0'} dependencies: fast-diff: 1.2.0 dev: true /prettier@2.8.8: - resolution: - { integrity: sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q== } - engines: { node: '>=10.13.0' } + resolution: {integrity: sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==} + engines: {node: '>=10.13.0'} hasBin: true dev: true /pseudomap@1.0.2: - resolution: - { integrity: sha512-b/YwNhb8lk1Zz2+bXXpS/LK9OisiZZ1SNsSLxN1x2OXVEhW2Ckr/7mWE5vrC1ZTiJlD9g19jWszTmJsB+oEpFQ== } + resolution: {integrity: sha512-b/YwNhb8lk1Zz2+bXXpS/LK9OisiZZ1SNsSLxN1x2OXVEhW2Ckr/7mWE5vrC1ZTiJlD9g19jWszTmJsB+oEpFQ==} dev: true /punycode@2.3.0: - resolution: - { integrity: sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA== } - engines: { node: '>=6' } + resolution: {integrity: sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==} + engines: {node: '>=6'} dev: true /queue-microtask@1.2.3: - resolution: - { integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A== } + resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} dev: true /quick-lru@4.0.1: - resolution: - { integrity: sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g== } - engines: { node: '>=8' } + resolution: {integrity: sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g==} + engines: {node: '>=8'} dev: true /read-pkg-up@7.0.1: - resolution: - { integrity: sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg== } - engines: { node: '>=8' } + resolution: {integrity: sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==} + engines: {node: '>=8'} dependencies: find-up: 4.1.0 read-pkg: 5.2.0 @@ -3574,9 +3213,8 @@ packages: dev: true /read-pkg@5.2.0: - resolution: - { integrity: sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg== } - engines: { node: '>=8' } + resolution: {integrity: sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==} + engines: {node: '>=8'} dependencies: '@types/normalize-package-data': 2.4.1 normalize-package-data: 2.5.0 @@ -3585,9 +3223,8 @@ packages: dev: true /read-yaml-file@1.1.0: - resolution: - { integrity: sha512-VIMnQi/Z4HT2Fxuwg5KrY174U1VdUIASQVWXXyqtNRtxSr9IYkn1rsI6Tb6HsrHCmB7gVpNwX6JxPTHcH6IoTA== } - engines: { node: '>=6' } + resolution: {integrity: sha512-VIMnQi/Z4HT2Fxuwg5KrY174U1VdUIASQVWXXyqtNRtxSr9IYkn1rsI6Tb6HsrHCmB7gVpNwX6JxPTHcH6IoTA==} + engines: {node: '>=6'} dependencies: graceful-fs: 4.2.11 js-yaml: 3.14.1 @@ -3596,23 +3233,20 @@ packages: dev: true /redent@3.0.0: - resolution: - { integrity: sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg== } - engines: { node: '>=8' } + resolution: {integrity: sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==} + engines: {node: '>=8'} dependencies: indent-string: 4.0.0 strip-indent: 3.0.0 dev: true /regenerator-runtime@0.13.11: - resolution: - { integrity: sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg== } + resolution: {integrity: sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==} dev: true /regexp.prototype.flags@1.4.3: - resolution: - { integrity: sha512-fjggEOO3slI6Wvgjwflkc4NFRCTZAu5CnNfBd5qOMYhWdn67nJBBu34/TkD++eeFmd8C9r9jfXJ27+nSiRkSUA== } - engines: { node: '>= 0.4' } + resolution: {integrity: sha512-fjggEOO3slI6Wvgjwflkc4NFRCTZAu5CnNfBd5qOMYhWdn67nJBBu34/TkD++eeFmd8C9r9jfXJ27+nSiRkSUA==} + engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.2 define-properties: 1.2.0 @@ -3620,36 +3254,30 @@ packages: dev: true /require-directory@2.1.1: - resolution: - { integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q== } - engines: { node: '>=0.10.0' } + resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==} + engines: {node: '>=0.10.0'} dev: true /require-main-filename@2.0.0: - resolution: - { integrity: sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg== } + resolution: {integrity: sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==} dev: true /resolve-from@4.0.0: - resolution: - { integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g== } - engines: { node: '>=4' } + resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} + engines: {node: '>=4'} dev: true /resolve-from@5.0.0: - resolution: - { integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw== } - engines: { node: '>=8' } + resolution: {integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==} + engines: {node: '>=8'} dev: true /resolve-pkg-maps@1.0.0: - resolution: - { integrity: sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw== } + resolution: {integrity: sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==} dev: true /resolve@1.22.2: - resolution: - { integrity: sha512-Sb+mjNHOULsBv818T40qSPeRiuWLyaGMa5ewydRLFimneixmVy2zdivRl+AF6jaYPC8ERxGDmFSiqui6SfPd+g== } + resolution: {integrity: sha512-Sb+mjNHOULsBv818T40qSPeRiuWLyaGMa5ewydRLFimneixmVy2zdivRl+AF6jaYPC8ERxGDmFSiqui6SfPd+g==} hasBin: true dependencies: is-core-module: 2.12.0 @@ -3658,29 +3286,25 @@ packages: dev: true /reusify@1.0.4: - resolution: - { integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw== } - engines: { iojs: '>=1.0.0', node: '>=0.10.0' } + resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} + engines: {iojs: '>=1.0.0', node: '>=0.10.0'} dev: true /rimraf@3.0.2: - resolution: - { integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA== } + resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==} hasBin: true dependencies: glob: 7.2.3 dev: true /run-parallel@1.2.0: - resolution: - { integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA== } + resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} dependencies: queue-microtask: 1.2.3 dev: true /safe-regex-test@1.0.0: - resolution: - { integrity: sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA== } + resolution: {integrity: sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA==} dependencies: call-bind: 1.0.2 get-intrinsic: 1.2.0 @@ -3688,75 +3312,64 @@ packages: dev: true /safer-buffer@2.1.2: - resolution: - { integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== } + resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} dev: true /select@1.1.2: - resolution: - { integrity: sha512-OwpTSOfy6xSs1+pwcNrv0RBMOzI39Lp3qQKUTPVVPRjCdNa5JH/oPRiqsesIskK8TVgmRiHwO4KXlV2Li9dANA== } + resolution: {integrity: sha512-OwpTSOfy6xSs1+pwcNrv0RBMOzI39Lp3qQKUTPVVPRjCdNa5JH/oPRiqsesIskK8TVgmRiHwO4KXlV2Li9dANA==} dev: false /semver@5.7.1: - resolution: - { integrity: sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== } + resolution: {integrity: sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==} hasBin: true dev: true /semver@7.5.1: - resolution: - { integrity: sha512-Wvss5ivl8TMRZXXESstBA4uR5iXgEN/VC5/sOcuXdVLzcdkz4HWetIoRfG5gb5X+ij/G9rw9YoGn3QoQ8OCSpw== } - engines: { node: '>=10' } + resolution: {integrity: sha512-Wvss5ivl8TMRZXXESstBA4uR5iXgEN/VC5/sOcuXdVLzcdkz4HWetIoRfG5gb5X+ij/G9rw9YoGn3QoQ8OCSpw==} + engines: {node: '>=10'} hasBin: true dependencies: lru-cache: 6.0.0 dev: true /semver@7.6.0: - resolution: - { integrity: sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg== } - engines: { node: '>=10' } + resolution: {integrity: sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==} + engines: {node: '>=10'} hasBin: true dependencies: lru-cache: 6.0.0 dev: true /set-blocking@2.0.0: - resolution: - { integrity: sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw== } + resolution: {integrity: sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==} dev: true /shebang-command@1.2.0: - resolution: - { integrity: sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg== } - engines: { node: '>=0.10.0' } + resolution: {integrity: sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg==} + engines: {node: '>=0.10.0'} dependencies: shebang-regex: 1.0.0 dev: true /shebang-command@2.0.0: - resolution: - { integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA== } - engines: { node: '>=8' } + resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} + engines: {node: '>=8'} dependencies: shebang-regex: 3.0.0 dev: true /shebang-regex@1.0.0: - resolution: - { integrity: sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ== } - engines: { node: '>=0.10.0' } + resolution: {integrity: sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ==} + engines: {node: '>=0.10.0'} dev: true /shebang-regex@3.0.0: - resolution: - { integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== } - engines: { node: '>=8' } + resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} + engines: {node: '>=8'} dev: true /side-channel@1.0.4: - resolution: - { integrity: sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw== } + resolution: {integrity: sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==} dependencies: call-bind: 1.0.2 get-intrinsic: 1.2.0 @@ -3764,26 +3377,22 @@ packages: dev: true /signal-exit@3.0.7: - resolution: - { integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ== } + resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==} dev: true /slash@3.0.0: - resolution: - { integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q== } - engines: { node: '>=8' } + resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} + engines: {node: '>=8'} dev: true /slugify@1.6.6: - resolution: - { integrity: sha512-h+z7HKHYXj6wJU+AnS/+IH8Uh9fdcX1Lrhg1/VMdf9PwoBQXFcXiAdsy2tSK0P6gKwJLXp02r90ahUCqHk9rrw== } - engines: { node: '>=8.0.0' } + resolution: {integrity: sha512-h+z7HKHYXj6wJU+AnS/+IH8Uh9fdcX1Lrhg1/VMdf9PwoBQXFcXiAdsy2tSK0P6gKwJLXp02r90ahUCqHk9rrw==} + engines: {node: '>=8.0.0'} dev: false /smartwrap@2.0.2: - resolution: - { integrity: sha512-vCsKNQxb7PnCNd2wY1WClWifAc2lwqsG8OaswpJkVJsvMGcnEntdTCDajZCkk93Ay1U3t/9puJmb525Rg5MZBA== } - engines: { node: '>=6' } + resolution: {integrity: sha512-vCsKNQxb7PnCNd2wY1WClWifAc2lwqsG8OaswpJkVJsvMGcnEntdTCDajZCkk93Ay1U3t/9puJmb525Rg5MZBA==} + engines: {node: '>=6'} hasBin: true dependencies: array.prototype.flat: 1.3.1 @@ -3795,55 +3404,47 @@ packages: dev: true /spawndamnit@2.0.0: - resolution: - { integrity: sha512-j4JKEcncSjFlqIwU5L/rp2N5SIPsdxaRsIv678+TZxZ0SRDJTm8JrxJMjE/XuiEZNEir3S8l0Fa3Ke339WI4qA== } + resolution: {integrity: sha512-j4JKEcncSjFlqIwU5L/rp2N5SIPsdxaRsIv678+TZxZ0SRDJTm8JrxJMjE/XuiEZNEir3S8l0Fa3Ke339WI4qA==} dependencies: cross-spawn: 5.1.0 signal-exit: 3.0.7 dev: true /spdx-correct@3.2.0: - resolution: - { integrity: sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA== } + resolution: {integrity: sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==} dependencies: spdx-expression-parse: 3.0.1 spdx-license-ids: 3.0.13 dev: true /spdx-exceptions@2.3.0: - resolution: - { integrity: sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A== } + resolution: {integrity: sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==} dev: true /spdx-expression-parse@3.0.1: - resolution: - { integrity: sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q== } + resolution: {integrity: sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==} dependencies: spdx-exceptions: 2.3.0 spdx-license-ids: 3.0.13 dev: true /spdx-license-ids@3.0.13: - resolution: - { integrity: sha512-XkD+zwiqXHikFZm4AX/7JSCXA98U5Db4AFd5XUg/+9UNtnH75+Z9KxtpYiJZx36mUDVOwH83pl7yvCer6ewM3w== } + resolution: {integrity: sha512-XkD+zwiqXHikFZm4AX/7JSCXA98U5Db4AFd5XUg/+9UNtnH75+Z9KxtpYiJZx36mUDVOwH83pl7yvCer6ewM3w==} dev: true /sprintf-js@1.0.3: - resolution: - { integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g== } + resolution: {integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==} dev: true /stream-transform@2.1.3: - resolution: - { integrity: sha512-9GHUiM5hMiCi6Y03jD2ARC1ettBXkQBoQAe7nJsPknnI0ow10aXjTnew8QtYQmLjzn974BnmWEAJgCY6ZP1DeQ== } + resolution: {integrity: sha512-9GHUiM5hMiCi6Y03jD2ARC1ettBXkQBoQAe7nJsPknnI0ow10aXjTnew8QtYQmLjzn974BnmWEAJgCY6ZP1DeQ==} dependencies: mixme: 0.5.9 dev: true /string-width@4.2.3: - resolution: - { integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== } - engines: { node: '>=8' } + resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} + engines: {node: '>=8'} dependencies: emoji-regex: 8.0.0 is-fullwidth-code-point: 3.0.0 @@ -3851,9 +3452,8 @@ packages: dev: true /string.prototype.trim@1.2.7: - resolution: - { integrity: sha512-p6TmeT1T3411M8Cgg9wBTMRtY2q9+PNy9EV1i2lIXUN/btt763oIfxwN3RR8VU6wHX8j/1CFy0L+YuThm6bgOg== } - engines: { node: '>= 0.4' } + resolution: {integrity: sha512-p6TmeT1T3411M8Cgg9wBTMRtY2q9+PNy9EV1i2lIXUN/btt763oIfxwN3RR8VU6wHX8j/1CFy0L+YuThm6bgOg==} + engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.2 define-properties: 1.2.0 @@ -3861,8 +3461,7 @@ packages: dev: true /string.prototype.trimend@1.0.6: - resolution: - { integrity: sha512-JySq+4mrPf9EsDBEDYMOb/lM7XQLulwg5R/m1r0PXEFqrV0qHvl58sdTilSXtKOflCsK2E8jxf+GKC0T07RWwQ== } + resolution: {integrity: sha512-JySq+4mrPf9EsDBEDYMOb/lM7XQLulwg5R/m1r0PXEFqrV0qHvl58sdTilSXtKOflCsK2E8jxf+GKC0T07RWwQ==} dependencies: call-bind: 1.0.2 define-properties: 1.2.0 @@ -3870,8 +3469,7 @@ packages: dev: true /string.prototype.trimstart@1.0.6: - resolution: - { integrity: sha512-omqjMDaY92pbn5HOX7f9IccLA+U1tA9GvtU4JrodiXFfYB7jPzzHpRzpglLAjtUV6bB557zwClJezTqnAiYnQA== } + resolution: {integrity: sha512-omqjMDaY92pbn5HOX7f9IccLA+U1tA9GvtU4JrodiXFfYB7jPzzHpRzpglLAjtUV6bB557zwClJezTqnAiYnQA==} dependencies: call-bind: 1.0.2 define-properties: 1.2.0 @@ -3879,123 +3477,104 @@ packages: dev: true /strip-ansi@6.0.1: - resolution: - { integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== } - engines: { node: '>=8' } + resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} + engines: {node: '>=8'} dependencies: ansi-regex: 5.0.1 dev: true /strip-bom@3.0.0: - resolution: - { integrity: sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA== } - engines: { node: '>=4' } + resolution: {integrity: sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==} + engines: {node: '>=4'} dev: true /strip-indent@3.0.0: - resolution: - { integrity: sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ== } - engines: { node: '>=8' } + resolution: {integrity: sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==} + engines: {node: '>=8'} dependencies: min-indent: 1.0.1 dev: true /strip-json-comments@3.1.1: - resolution: - { integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig== } - engines: { node: '>=8' } + resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} + engines: {node: '>=8'} dev: true /superstruct@1.0.3: - resolution: - { integrity: sha512-8iTn3oSS8nRGn+C2pgXSKPI3jmpm6FExNazNpjvqS6ZUJQCej3PUXEKM8NjHBOs54ExM+LPW/FBRhymrdcCiSg== } - engines: { node: '>=14.0.0' } + resolution: {integrity: sha512-8iTn3oSS8nRGn+C2pgXSKPI3jmpm6FExNazNpjvqS6ZUJQCej3PUXEKM8NjHBOs54ExM+LPW/FBRhymrdcCiSg==} + engines: {node: '>=14.0.0'} dev: false /supports-color@5.5.0: - resolution: - { integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== } - engines: { node: '>=4' } + resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==} + engines: {node: '>=4'} dependencies: has-flag: 3.0.0 dev: true /supports-color@7.2.0: - resolution: - { integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw== } - engines: { node: '>=8' } + resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} + engines: {node: '>=8'} dependencies: has-flag: 4.0.0 dev: true /supports-preserve-symlinks-flag@1.0.0: - resolution: - { integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w== } - engines: { node: '>= 0.4' } + resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} + engines: {node: '>= 0.4'} dev: true /swiper@10.0.2: - resolution: - { integrity: sha512-b/3L+Z+88vWXt4d32tup9w+otQEHCwW/qas+C7WKimv5GGGMi3HHeLNp2fPt8BeaP9Th17itujmjKXONben6AA== } - engines: { node: '>= 4.7.0' } + resolution: {integrity: sha512-b/3L+Z+88vWXt4d32tup9w+otQEHCwW/qas+C7WKimv5GGGMi3HHeLNp2fPt8BeaP9Th17itujmjKXONben6AA==} + engines: {node: '>= 4.7.0'} dev: false /tabbable@6.1.2: - resolution: - { integrity: sha512-qCN98uP7i9z0fIS4amQ5zbGBOq+OSigYeGvPy7NDk8Y9yncqDZ9pRPgfsc2PJIVM9RrJj7GIfuRgmjoUU9zTHQ== } + resolution: {integrity: sha512-qCN98uP7i9z0fIS4amQ5zbGBOq+OSigYeGvPy7NDk8Y9yncqDZ9pRPgfsc2PJIVM9RrJj7GIfuRgmjoUU9zTHQ==} dev: false /term-size@2.2.1: - resolution: - { integrity: sha512-wK0Ri4fOGjv/XPy8SBHZChl8CM7uMc5VML7SqiQ0zG7+J5Vr+RMQDoHa2CNT6KHUnTGIXH34UDMkPzAUyapBZg== } - engines: { node: '>=8' } + resolution: {integrity: sha512-wK0Ri4fOGjv/XPy8SBHZChl8CM7uMc5VML7SqiQ0zG7+J5Vr+RMQDoHa2CNT6KHUnTGIXH34UDMkPzAUyapBZg==} + engines: {node: '>=8'} dev: true /text-table@0.2.0: - resolution: - { integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw== } + resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==} dev: true /tiny-emitter@2.1.0: - resolution: - { integrity: sha512-NB6Dk1A9xgQPMoGqC5CVXn123gWyte215ONT5Pp5a0yt4nlEoO1ZWeCwpncaekPHXO60i47ihFnZPiRPjRMq4Q== } + resolution: {integrity: sha512-NB6Dk1A9xgQPMoGqC5CVXn123gWyte215ONT5Pp5a0yt4nlEoO1ZWeCwpncaekPHXO60i47ihFnZPiRPjRMq4Q==} dev: false /tmp@0.0.33: - resolution: - { integrity: sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw== } - engines: { node: '>=0.6.0' } + resolution: {integrity: sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==} + engines: {node: '>=0.6.0'} dependencies: os-tmpdir: 1.0.2 dev: true /to-regex-range@5.0.1: - resolution: - { integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ== } - engines: { node: '>=8.0' } + resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} + engines: {node: '>=8.0'} dependencies: is-number: 7.0.0 dev: true /trim-newlines@3.0.1: - resolution: - { integrity: sha512-c1PTsA3tYrIsLGkJkzHF+w9F2EyxfXGo4UyJc4pFL++FMjnq0HJS69T3M7d//gKrFKwy429bouPescbjecU+Zw== } - engines: { node: '>=8' } + resolution: {integrity: sha512-c1PTsA3tYrIsLGkJkzHF+w9F2EyxfXGo4UyJc4pFL++FMjnq0HJS69T3M7d//gKrFKwy429bouPescbjecU+Zw==} + engines: {node: '>=8'} dev: true /tslib@1.14.1: - resolution: - { integrity: sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== } + resolution: {integrity: sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==} dev: true /tslib@2.5.0: - resolution: - { integrity: sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg== } + resolution: {integrity: sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg==} /tsutils@3.21.0(typescript@5.1.3): - resolution: - { integrity: sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA== } - engines: { node: '>= 6' } + resolution: {integrity: sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==} + engines: {node: '>= 6'} peerDependencies: typescript: '>=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta' dependencies: @@ -4004,9 +3583,8 @@ packages: dev: true /tsx@4.7.1: - resolution: - { integrity: sha512-8d6VuibXHtlN5E3zFkgY8u4DX7Y3Z27zvvPKVmLon/D4AjuKzarkUBTLDBgj9iTQ0hg5xM7c/mYiRVM+HETf0g== } - engines: { node: '>=18.0.0' } + resolution: {integrity: sha512-8d6VuibXHtlN5E3zFkgY8u4DX7Y3Z27zvvPKVmLon/D4AjuKzarkUBTLDBgj9iTQ0hg5xM7c/mYiRVM+HETf0g==} + engines: {node: '>=18.0.0'} hasBin: true dependencies: esbuild: 0.19.12 @@ -4016,9 +3594,8 @@ packages: dev: true /tty-table@4.2.1: - resolution: - { integrity: sha512-xz0uKo+KakCQ+Dxj1D/tKn2FSyreSYWzdkL/BYhgN6oMW808g8QRMuh1atAV9fjTPbWBjfbkKQpI/5rEcnAc7g== } - engines: { node: '>=8.0.0' } + resolution: {integrity: sha512-xz0uKo+KakCQ+Dxj1D/tKn2FSyreSYWzdkL/BYhgN6oMW808g8QRMuh1atAV9fjTPbWBjfbkKQpI/5rEcnAc7g==} + engines: {node: '>=8.0.0'} hasBin: true dependencies: chalk: 4.1.2 @@ -4031,40 +3608,34 @@ packages: dev: true /type-check@0.4.0: - resolution: - { integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew== } - engines: { node: '>= 0.8.0' } + resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} + engines: {node: '>= 0.8.0'} dependencies: prelude-ls: 1.2.1 dev: true /type-fest@0.13.1: - resolution: - { integrity: sha512-34R7HTnG0XIJcBSn5XhDd7nNFPRcXYRZrBB2O2jdKqYODldSzBAqzsWoZYYvduky73toYS/ESqxPvkDf/F0XMg== } - engines: { node: '>=10' } + resolution: {integrity: sha512-34R7HTnG0XIJcBSn5XhDd7nNFPRcXYRZrBB2O2jdKqYODldSzBAqzsWoZYYvduky73toYS/ESqxPvkDf/F0XMg==} + engines: {node: '>=10'} dev: true /type-fest@0.20.2: - resolution: - { integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ== } - engines: { node: '>=10' } + resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==} + engines: {node: '>=10'} dev: true /type-fest@0.6.0: - resolution: - { integrity: sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg== } - engines: { node: '>=8' } + resolution: {integrity: sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==} + engines: {node: '>=8'} dev: true /type-fest@0.8.1: - resolution: - { integrity: sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA== } - engines: { node: '>=8' } + resolution: {integrity: sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==} + engines: {node: '>=8'} dev: true /typed-array-length@1.0.4: - resolution: - { integrity: sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng== } + resolution: {integrity: sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng==} dependencies: call-bind: 1.0.2 for-each: 0.3.3 @@ -4072,20 +3643,17 @@ packages: dev: true /typed.js@2.1.0: - resolution: - { integrity: sha512-bDuXEf7YcaKN4g08NMTUM6G90XU25CK3bh6U0THC/Mod/QPKlEt9g/EjvbYB8x2Qwr2p6J6I3NrsoYaVnY6wsQ== } + resolution: {integrity: sha512-bDuXEf7YcaKN4g08NMTUM6G90XU25CK3bh6U0THC/Mod/QPKlEt9g/EjvbYB8x2Qwr2p6J6I3NrsoYaVnY6wsQ==} dev: false /typescript@5.1.3: - resolution: - { integrity: sha512-XH627E9vkeqhlZFQuL+UsyAXEnibT0kWR2FWONlr4sTjvxyJYnyefgrkyECLzM5NenmKzRAy2rR/OlYLA1HkZw== } - engines: { node: '>=14.17' } + resolution: {integrity: sha512-XH627E9vkeqhlZFQuL+UsyAXEnibT0kWR2FWONlr4sTjvxyJYnyefgrkyECLzM5NenmKzRAy2rR/OlYLA1HkZw==} + engines: {node: '>=14.17'} hasBin: true dev: true /unbox-primitive@1.0.2: - resolution: - { integrity: sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw== } + resolution: {integrity: sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==} dependencies: call-bind: 1.0.2 has-bigints: 1.0.2 @@ -4094,43 +3662,37 @@ packages: dev: true /universalify@0.1.2: - resolution: - { integrity: sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg== } - engines: { node: '>= 4.0.0' } + resolution: {integrity: sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==} + engines: {node: '>= 4.0.0'} dev: true /uri-js@4.4.1: - resolution: - { integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg== } + resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} dependencies: punycode: 2.3.0 dev: true /uuid@3.4.0: - resolution: - { integrity: sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A== } + resolution: {integrity: sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==} deprecated: Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details. hasBin: true dev: false /validate-npm-package-license@3.0.4: - resolution: - { integrity: sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew== } + resolution: {integrity: sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==} dependencies: spdx-correct: 3.2.0 spdx-expression-parse: 3.0.1 dev: true /wcwidth@1.0.1: - resolution: - { integrity: sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg== } + resolution: {integrity: sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==} dependencies: defaults: 1.0.4 dev: true /which-boxed-primitive@1.0.2: - resolution: - { integrity: sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg== } + resolution: {integrity: sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==} dependencies: is-bigint: 1.0.4 is-boolean-object: 1.1.2 @@ -4140,23 +3702,20 @@ packages: dev: true /which-module@2.0.0: - resolution: - { integrity: sha512-B+enWhmw6cjfVC7kS8Pj9pCrKSc5txArRyaYGe088shv/FGWH+0Rjx/xPgtsWfsUtS27FkP697E4DDhgrgoc0Q== } + resolution: {integrity: sha512-B+enWhmw6cjfVC7kS8Pj9pCrKSc5txArRyaYGe088shv/FGWH+0Rjx/xPgtsWfsUtS27FkP697E4DDhgrgoc0Q==} dev: true /which-pm@2.0.0: - resolution: - { integrity: sha512-Lhs9Pmyph0p5n5Z3mVnN0yWcbQYUAD7rbQUiMsQxOJ3T57k7RFe35SUwWMf7dsbDZks1uOmw4AecB/JMDj3v/w== } - engines: { node: '>=8.15' } + resolution: {integrity: sha512-Lhs9Pmyph0p5n5Z3mVnN0yWcbQYUAD7rbQUiMsQxOJ3T57k7RFe35SUwWMf7dsbDZks1uOmw4AecB/JMDj3v/w==} + engines: {node: '>=8.15'} dependencies: load-yaml-file: 0.2.0 path-exists: 4.0.0 dev: true /which-typed-array@1.1.9: - resolution: - { integrity: sha512-w9c4xkx6mPidwp7180ckYWfMmvxpjlZuIudNtDf4N/tTAUB8VJbX25qZoAsrtGuYNnGw3pa0AXgbGKRB8/EceA== } - engines: { node: '>= 0.4' } + resolution: {integrity: sha512-w9c4xkx6mPidwp7180ckYWfMmvxpjlZuIudNtDf4N/tTAUB8VJbX25qZoAsrtGuYNnGw3pa0AXgbGKRB8/EceA==} + engines: {node: '>= 0.4'} dependencies: available-typed-arrays: 1.0.5 call-bind: 1.0.2 @@ -4167,32 +3726,28 @@ packages: dev: true /which@1.3.1: - resolution: - { integrity: sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ== } + resolution: {integrity: sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==} hasBin: true dependencies: isexe: 2.0.0 dev: true /which@2.0.2: - resolution: - { integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA== } - engines: { node: '>= 8' } + resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} + engines: {node: '>= 8'} hasBin: true dependencies: isexe: 2.0.0 dev: true /word-wrap@1.2.3: - resolution: - { integrity: sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ== } - engines: { node: '>=0.10.0' } + resolution: {integrity: sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==} + engines: {node: '>=0.10.0'} dev: true /wrap-ansi@6.2.0: - resolution: - { integrity: sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA== } - engines: { node: '>=8' } + resolution: {integrity: sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==} + engines: {node: '>=8'} dependencies: ansi-styles: 4.3.0 string-width: 4.2.3 @@ -4200,9 +3755,8 @@ packages: dev: true /wrap-ansi@7.0.0: - resolution: - { integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== } - engines: { node: '>=10' } + resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} + engines: {node: '>=10'} dependencies: ansi-styles: 4.3.0 string-width: 4.2.3 @@ -4210,50 +3764,42 @@ packages: dev: true /wrappy@1.0.2: - resolution: - { integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ== } + resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} dev: true /y18n@4.0.3: - resolution: - { integrity: sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ== } + resolution: {integrity: sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==} dev: true /y18n@5.0.8: - resolution: - { integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA== } - engines: { node: '>=10' } + resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==} + engines: {node: '>=10'} dev: true /yallist@2.1.2: - resolution: - { integrity: sha512-ncTzHV7NvsQZkYe1DW7cbDLm0YpzHmZF5r/iyP3ZnQtMiJ+pjzisCiMNI+Sj+xQF5pXhSHxSB3uDbsBTzY/c2A== } + resolution: {integrity: sha512-ncTzHV7NvsQZkYe1DW7cbDLm0YpzHmZF5r/iyP3ZnQtMiJ+pjzisCiMNI+Sj+xQF5pXhSHxSB3uDbsBTzY/c2A==} dev: true /yallist@4.0.0: - resolution: - { integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== } + resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==} dev: true /yargs-parser@18.1.3: - resolution: - { integrity: sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ== } - engines: { node: '>=6' } + resolution: {integrity: sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==} + engines: {node: '>=6'} dependencies: camelcase: 5.3.1 decamelize: 1.2.0 dev: true /yargs-parser@21.1.1: - resolution: - { integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw== } - engines: { node: '>=12' } + resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==} + engines: {node: '>=12'} dev: true /yargs@15.4.1: - resolution: - { integrity: sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A== } - engines: { node: '>=8' } + resolution: {integrity: sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==} + engines: {node: '>=8'} dependencies: cliui: 6.0.0 decamelize: 1.2.0 @@ -4269,9 +3815,8 @@ packages: dev: true /yargs@17.7.1: - resolution: - { integrity: sha512-cwiTb08Xuv5fqF4AovYacTFNxk62th7LKJ6BL9IGUpTJrWoU7/7WdQGTP2SjKf1dUNBGzDd28p/Yfs/GI6JrLw== } - engines: { node: '>=12' } + resolution: {integrity: sha512-cwiTb08Xuv5fqF4AovYacTFNxk62th7LKJ6BL9IGUpTJrWoU7/7WdQGTP2SjKf1dUNBGzDd28p/Yfs/GI6JrLw==} + engines: {node: '>=12'} dependencies: cliui: 8.0.1 escalade: 3.1.1 @@ -4283,7 +3828,6 @@ packages: dev: true /yocto-queue@0.1.0: - resolution: - { integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q== } - engines: { node: '>=10' } + resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} + engines: {node: '>=10'} dev: true