From ba2e44c13b72f50a75d466a2caa7361ed73e8f21 Mon Sep 17 00:00:00 2001 From: elehmandevelopment Date: Thu, 14 Mar 2024 20:29:35 -0600 Subject: [PATCH 01/60] feat: instantiate subscriptions --- src/applications/application.ts | 2 + src/components/popup/WalletHeader.tsx | 5 +- src/popup.tsx | 2 + src/routes/popup/subscriptions.tsx | 57 +++++++++++++ src/subscriptions/allowance.ts | 0 src/subscriptions/payments.ts | 0 src/subscriptions/subscription.ts | 118 ++++++++++++++++++++++++++ 7 files changed, 183 insertions(+), 1 deletion(-) create mode 100644 src/routes/popup/subscriptions.tsx create mode 100644 src/subscriptions/allowance.ts create mode 100644 src/subscriptions/payments.ts create mode 100644 src/subscriptions/subscription.ts diff --git a/src/applications/application.ts b/src/applications/application.ts index 4b3a3dd65..096e8b2d8 100644 --- a/src/applications/application.ts +++ b/src/applications/application.ts @@ -4,6 +4,7 @@ import { useStorage } from "@plasmohq/storage/hook"; import { ExtensionStorage } from "~utils/storage"; import type { Storage } from "@plasmohq/storage"; import { defaultGateway, Gateway } from "~gateways/gateway"; +import type { SubscriptionData } from "~subscriptions/subscription"; export const PREFIX = "app_"; export const defaultBundler = "https://turbo.ardrive.io"; @@ -192,4 +193,5 @@ export interface InitAppParams extends AppInfo { allowance?: Allowance; blocked?: boolean; bundler?: string; + subscriptionData?: SubscriptionData; } diff --git a/src/components/popup/WalletHeader.tsx b/src/components/popup/WalletHeader.tsx index 99aff3c93..7da4d10c0 100644 --- a/src/components/popup/WalletHeader.tsx +++ b/src/components/popup/WalletHeader.tsx @@ -41,7 +41,7 @@ import browser from "webextension-polyfill"; import styled from "styled-components"; import copy from "copy-to-clipboard"; import { type Gateway } from "~gateways/gateway"; -import { Bell03 } from "@untitled-ui/icons-react"; +import { Bell03, CreditCard01 } from "@untitled-ui/icons-react"; import { svgie } from "~utils/svgies"; import { useHistory } from "~utils/hash_router"; @@ -232,6 +232,9 @@ export default function WalletHeader() { + + push("/subscriptions")} /> + + {(params: { id: string }) => ( diff --git a/src/routes/popup/subscriptions.tsx b/src/routes/popup/subscriptions.tsx new file mode 100644 index 000000000..72e084cd1 --- /dev/null +++ b/src/routes/popup/subscriptions.tsx @@ -0,0 +1,57 @@ +import Subscription, { + type SubscriptionData +} from "~subscriptions/subscription"; +import HeadV2 from "~components/popup/HeadV2"; +import { useEffect, useState } from "react"; +import { getActiveAddress } from "~wallets"; +import { ExtensionStorage } from "~utils/storage"; + +export default function Subscriptions() { + const [subData, setSubData] = useState(null); + + useEffect(() => { + async function getSubData() { + const address = await getActiveAddress(); + + // await ExtensionStorage.set(`subscriptions_${address}`, + // { + // "applicationName": "ArDrive Turbo", + // "arweaveAccountAddress": "JNC6vBhjHY1EPwV3pEeNmrsgFMxH5d38_LHsZ7jful8", + // "nextPaymentDue": "03-08-2025", + // "recurringPaymentFrequency": "Annually", + // "subscriptionEndDate": "03-08-2025", + // "subscriptionFeeAmount": 25, + // "subscriptionName": "Turbo Subscription", + // "subscriptionStartData": "03-08-2024", + // "subscriptionStatus": "Active" + // } + // ); + + try { + const sub = new Subscription(address); + const data = await sub.getSubscriptionData(); + + console.log("data: ", data); + setSubData(data); + } catch (error) { + console.error("Error fetching subscription data:", error); + } + } + getSubData(); + }, []); + + return ( +
+ + {subData ? ( + <> +
App: {subData.applicationName}
+
Subscription: {subData.subscriptionName}
+
Fee: {subData.subscriptionFeeAmount} AR
+ + ) : ( +
No notifications found
+ )} +
+ ); +} diff --git a/src/subscriptions/allowance.ts b/src/subscriptions/allowance.ts new file mode 100644 index 000000000..e69de29bb diff --git a/src/subscriptions/payments.ts b/src/subscriptions/payments.ts new file mode 100644 index 000000000..e69de29bb diff --git a/src/subscriptions/subscription.ts b/src/subscriptions/subscription.ts new file mode 100644 index 000000000..10538f889 --- /dev/null +++ b/src/subscriptions/subscription.ts @@ -0,0 +1,118 @@ +import Application, { type InitAppParams } from "~applications/application"; +import { ExtensionStorage } from "~utils/storage"; +import type { Storage } from "@plasmohq/storage"; + +export default class Subscription { + activeAddress: string; + application: Application; + applicationUrl: string; + #storage: Storage; + + constructor(activeAddress: string, applicationUrl?: string) { + this.activeAddress = activeAddress; + this.application = new Application(applicationUrl); + this.applicationUrl = applicationUrl; + this.#storage = ExtensionStorage; + } + + // get subscription data from storage + async getSubscriptionData(): Promise { + const subscriptionData = await this.#storage.get( + `subscriptions_${this.activeAddress}` + ); + return subscriptionData; + } + + // handle subscription signup + async signUpSubscription(subscriptionData: SubscriptionData): Promise { + // validate subscription data + const requiredFields: (keyof SubscriptionData)[] = [ + "arweaveAccountAddress", + "applicationName", + "subscriptionName", + "subscriptionFeeAmount", + "subscriptionStatus", + "recurringPaymentFrequency", + "nextPaymentDue", + "subscriptionStartData", + "subscriptionEndDate" + ]; + for (const field of requiredFields) { + if (!subscriptionData[field]) { + throw new Error(`Missing required field: ${field}`); + } + } + + // retrieve existing subscriptions + let existingSubscriptions: SubscriptionData[] = + await this.getSubscriptionData(); + + // append the new subsciption + existingSubscriptions.push(subscriptionData); + + // store subscription data + await this.#storage.set( + `subscriptions_${this.activeAddress}`, + existingSubscriptions + ); + } + + // // fetch / add subscription data from app + // async fetchAppSubscriptionData(): Promise { + + // // check if app is connected + // const hasConnection: boolean = await this.application.isConnected(); + // if (!hasConnection) { + // throw new Error ("Not connected to an Arweave Application"); + // } + + // // call application hook() to get app data + // const [appData] = this.application.hook(); + + // // TODO check + // if (appData && appData.subscriptionData) { + // return appData.subscriptionData; + // } else { + // console.error("Error fetching subscription data") + // return null; + // } + // } +} + +/** + * Params to add a subscription + * & + * Subscription info submitted by the dApp + */ +export interface SubscriptionData { + arweaveAccountAddress: string; + applicationIcon?: string; + applicationName: string; + subscriptionName: string; + subscriptionFeeAmount: number; + subscriptionStatus: SubscriptionStatus; + recurringPaymentFrequency: RecurringPaymentFrequency; + nextPaymentDue: Date; + subscriptionStartData: Date; + subscriptionEndDate: Date; +} + +/** + * Enum for subscription status + */ +export enum SubscriptionStatus { + ACTIVE = "Active", + EXPIRED = "Expired", + CANCELED = "Canceled", + AWAITING_PAYMENT = "Awaiting-Payment" +} + +/** + * Enum for recurring payment frequency + */ +export enum RecurringPaymentFrequency { + ANNUALLY = "Annually", + QUARTERLY = "Quarterly", + MONTHLY = "Monthly", + WEEKLY = "Weekly" +} From 8deb856cec8d65cda0584bdb9fc72c7d7df585ce Mon Sep 17 00:00:00 2001 From: elehmandevelopment Date: Fri, 15 Mar 2024 11:33:05 -0600 Subject: [PATCH 02/60] feat: subscription allowance setting --- assets/_locales/en/messages.json | 8 ++++++++ src/settings/index.ts | 9 +++++++++ 2 files changed, 17 insertions(+) diff --git a/assets/_locales/en/messages.json b/assets/_locales/en/messages.json index 23b246dbc..ef724687b 100644 --- a/assets/_locales/en/messages.json +++ b/assets/_locales/en/messages.json @@ -1705,5 +1705,13 @@ "token_imported": { "message": "Token Succesfully Added", "description": "token added" + }, + "subscription_allowance": { + "message": "Subscription Allowance", + "description": "subscription settings title" + }, + "subscription_description": { + "message": "Manage auto withdrawal allowance", + "description": "subscription setting description" } } diff --git a/src/settings/index.ts b/src/settings/index.ts index 3de88adea..a2447f29c 100644 --- a/src/settings/index.ts +++ b/src/settings/index.ts @@ -12,11 +12,20 @@ import { SunIcon } from "@iconicicons/react"; import Setting from "./setting"; +import { CreditCard02 } from "@untitled-ui/icons-react"; export const PREFIX = "setting_"; /** All settings */ const settings: Setting[] = [ + new Setting({ + name: "subscription_allowance", + displayName: "subscription_allowance", + icon: CreditCard02, + description: "subscription_description", + type: "number", + defaultValue: 0 + }), new Setting({ name: "fee_multiplier", displayName: "setting_fee_multiplier", From e8952301f5080c01efee2122c4a5194d6cae1fca Mon Sep 17 00:00:00 2001 From: elehmandevelopment Date: Fri, 15 Mar 2024 11:58:36 -0600 Subject: [PATCH 03/60] ci: subscription allowance hook --- src/subscriptions/allowance.ts | 0 src/subscriptions/subscription.ts | 8 ++++++++ 2 files changed, 8 insertions(+) delete mode 100644 src/subscriptions/allowance.ts diff --git a/src/subscriptions/allowance.ts b/src/subscriptions/allowance.ts deleted file mode 100644 index e69de29bb..000000000 diff --git a/src/subscriptions/subscription.ts b/src/subscriptions/subscription.ts index 10538f889..08b1a5bdd 100644 --- a/src/subscriptions/subscription.ts +++ b/src/subscriptions/subscription.ts @@ -23,6 +23,14 @@ export default class Subscription { return subscriptionData; } + // get subscription auto withdrawal allowance + async getAutoAllowance(): Promise { + const subscriptionAllowance = await this.#storage.get( + "setting_subscription_allowance" + ); + return subscriptionAllowance; + } + // handle subscription signup async signUpSubscription(subscriptionData: SubscriptionData): Promise { // validate subscription data From 40848322cf1036a790b496e7a63ddea448c46961 Mon Sep 17 00:00:00 2001 From: elehmandevelopment Date: Fri, 15 Mar 2024 13:18:14 -0600 Subject: [PATCH 04/60] ci: injected subscription event --- src/api/modules/subscription/index.ts | 11 +++++++++ src/injected.ts | 14 +++++++++++ src/subscriptions/subscription.ts | 35 +++++++++++++-------------- src/utils/events.ts | 2 ++ 4 files changed, 44 insertions(+), 18 deletions(-) create mode 100644 src/api/modules/subscription/index.ts diff --git a/src/api/modules/subscription/index.ts b/src/api/modules/subscription/index.ts new file mode 100644 index 000000000..c32ef7b9f --- /dev/null +++ b/src/api/modules/subscription/index.ts @@ -0,0 +1,11 @@ +import type { PermissionType } from "~applications/permissions"; +import type { ModuleProperties } from "~api/module"; + +const permissions: PermissionType[] = ["ACCESS_ADDRESS"]; + +const subsciption: ModuleProperties = { + functionName: "subscription", + permissions +}; + +export default subsciption; diff --git a/src/injected.ts b/src/injected.ts index 423b71e19..c801c0bfa 100644 --- a/src/injected.ts +++ b/src/injected.ts @@ -109,4 +109,18 @@ window.addEventListener( } ); +/** Handle app subscriptions */ +window.addEventListener( + "message", + ( + e: MessageEvent<{ + type: "subscription"; + event: Event; + }> + ) => { + if (e.data.type !== "subscription") return; + events.emit(e.data.event.subsciption, e.data.event.value); + } +); + export {}; diff --git a/src/subscriptions/subscription.ts b/src/subscriptions/subscription.ts index 08b1a5bdd..4ea96791f 100644 --- a/src/subscriptions/subscription.ts +++ b/src/subscriptions/subscription.ts @@ -65,26 +65,25 @@ export default class Subscription { ); } - // // fetch / add subscription data from app - // async fetchAppSubscriptionData(): Promise { - - // // check if app is connected - // const hasConnection: boolean = await this.application.isConnected(); - // if (!hasConnection) { - // throw new Error ("Not connected to an Arweave Application"); - // } + // fetch / add subscription data from app + async fetchAppSubscriptionData(): Promise { + // check if app is connected + const hasConnection: boolean = await this.application.isConnected(); + if (!hasConnection) { + throw new Error("Not connected to an Arweave Application"); + } - // // call application hook() to get app data - // const [appData] = this.application.hook(); + // call application hook() to get app data + const [appData] = this.application.hook(); - // // TODO check - // if (appData && appData.subscriptionData) { - // return appData.subscriptionData; - // } else { - // console.error("Error fetching subscription data") - // return null; - // } - // } + // TODO check + if (appData && appData.subscriptionData) { + return appData.subscriptionData; + } else { + console.error("Error fetching subscription data"); + return null; + } + } } /** diff --git a/src/utils/events.ts b/src/utils/events.ts index 731551c91..d9775beab 100644 --- a/src/utils/events.ts +++ b/src/utils/events.ts @@ -2,6 +2,7 @@ import type { PermissionType } from "~applications/permissions"; import { ExtensionStorage } from "./storage"; import { Gateway } from "~gateways/gateway"; import type { EventType } from "mitt"; +import type { SubscriptionData } from "~subscriptions/subscription"; interface SecurityEvent { type: string; @@ -32,4 +33,5 @@ export interface InjectedEvents extends Record { addresses: string[]; permissions: PermissionType[]; gateway: Gateway; + subscription: SubscriptionData[]; } From e045f1a5d92f10bc9940b90438c1b59153ec80e4 Mon Sep 17 00:00:00 2001 From: elehmandevelopment Date: Fri, 15 Mar 2024 14:53:38 -0600 Subject: [PATCH 05/60] ci: subscription foreground module --- .../subscription/subscription.background.ts | 0 .../subscription/subscription.foreground.ts | 49 +++++++++++++++++++ src/injected.ts | 14 ------ src/subscriptions/subscription.ts | 34 ++++++------- 4 files changed, 66 insertions(+), 31 deletions(-) create mode 100644 src/api/modules/subscription/subscription.background.ts create mode 100644 src/api/modules/subscription/subscription.foreground.ts diff --git a/src/api/modules/subscription/subscription.background.ts b/src/api/modules/subscription/subscription.background.ts new file mode 100644 index 000000000..e69de29bb diff --git a/src/api/modules/subscription/subscription.foreground.ts b/src/api/modules/subscription/subscription.foreground.ts new file mode 100644 index 000000000..38671a186 --- /dev/null +++ b/src/api/modules/subscription/subscription.foreground.ts @@ -0,0 +1,49 @@ +import type { SubscriptionData } from "~subscriptions/subscription"; +import type { ModuleFunction } from "~api/module"; + +const foreground: ModuleFunction = ( + arweaveAccountAddress, + applicationName, + subscriptionName, + subscriptionFeeAmount, + subscriptionStatus, + recurringPaymentFrequency, + nextPaymentDue, + subscriptionStartDate, + subscriptionEndDate, + applicationIcon? +) => { + // Validate required fields + const requiredFields: (keyof SubscriptionData)[] = [ + "arweaveAccountAddress", + "applicationName", + "subscriptionName", + "subscriptionFeeAmount", + "subscriptionStatus", + "recurringPaymentFrequency", + "nextPaymentDue", + "subscriptionStartDate", + "subscriptionEndDate" + ]; + + for (const field of requiredFields) { + if (typeof eval(field) === "undefined") { + throw new Error(`Missing required field: ${field}`); + } + } + + return [ + arweaveAccountAddress, + applicationName, + subscriptionName, + subscriptionFeeAmount, + subscriptionStatus, + recurringPaymentFrequency, + nextPaymentDue, + subscriptionStartDate, + subscriptionEndDate, + applicationIcon + ]; +}; + +export default foreground; diff --git a/src/injected.ts b/src/injected.ts index c801c0bfa..423b71e19 100644 --- a/src/injected.ts +++ b/src/injected.ts @@ -109,18 +109,4 @@ window.addEventListener( } ); -/** Handle app subscriptions */ -window.addEventListener( - "message", - ( - e: MessageEvent<{ - type: "subscription"; - event: Event; - }> - ) => { - if (e.data.type !== "subscription") return; - events.emit(e.data.event.subsciption, e.data.event.value); - } -); - export {}; diff --git a/src/subscriptions/subscription.ts b/src/subscriptions/subscription.ts index 4ea96791f..9c32edad3 100644 --- a/src/subscriptions/subscription.ts +++ b/src/subscriptions/subscription.ts @@ -66,24 +66,24 @@ export default class Subscription { } // fetch / add subscription data from app - async fetchAppSubscriptionData(): Promise { - // check if app is connected - const hasConnection: boolean = await this.application.isConnected(); - if (!hasConnection) { - throw new Error("Not connected to an Arweave Application"); - } + // async fetchAppSubscriptionData(): Promise { + // // check if app is connected + // const hasConnection: boolean = await this.application.isConnected(); + // if (!hasConnection) { + // throw new Error("Not connected to an Arweave Application"); + // } - // call application hook() to get app data - const [appData] = this.application.hook(); + // // call application hook() to get app data + // const [appData] = this.application.hook(); - // TODO check - if (appData && appData.subscriptionData) { - return appData.subscriptionData; - } else { - console.error("Error fetching subscription data"); - return null; - } - } + // // TODO check + // if (appData && appData.subscriptionData) { + // return appData.subscriptionData; + // } else { + // console.error("Error fetching subscription data"); + // return null; + // } + // } } /** @@ -100,7 +100,7 @@ export interface SubscriptionData { subscriptionStatus: SubscriptionStatus; recurringPaymentFrequency: RecurringPaymentFrequency; nextPaymentDue: Date; - subscriptionStartData: Date; + subscriptionStartDate: Date; subscriptionEndDate: Date; } From b485e80b32d38ca84cb7d978128394ad259aea27 Mon Sep 17 00:00:00 2001 From: elehmandevelopment Date: Fri, 15 Mar 2024 18:28:33 -0600 Subject: [PATCH 06/60] feat: subscription flow --- src/api/modules/connect/auth.ts | 3 +- .../subscription/subscription.background.ts | 51 +++++++++++++++ src/applications/application.ts | 2 - src/subscriptions/index.ts | 18 ++++++ src/subscriptions/subscription.ts | 28 ++------ src/utils/assertions.ts | 64 +++++++++++++++++++ src/utils/events.ts | 2 - 7 files changed, 141 insertions(+), 27 deletions(-) create mode 100644 src/subscriptions/index.ts diff --git a/src/api/modules/connect/auth.ts b/src/api/modules/connect/auth.ts index d4ce5893c..2df92ca60 100644 --- a/src/api/modules/connect/auth.ts +++ b/src/api/modules/connect/auth.ts @@ -10,7 +10,8 @@ export type AuthType = | "unlock" | "token" | "sign" - | "signature"; + | "signature" + | "subscription"; export interface AuthData { // type of auth to request from the user diff --git a/src/api/modules/subscription/subscription.background.ts b/src/api/modules/subscription/subscription.background.ts index e69de29bb..acddcc972 100644 --- a/src/api/modules/subscription/subscription.background.ts +++ b/src/api/modules/subscription/subscription.background.ts @@ -0,0 +1,51 @@ +import { + isAddress, + isPermission, + isAppInfo, + isSubscriptionType +} from "~utils/assertions"; +import type { ModuleFunction } from "~api/background"; +import authenticate from "../connect/auth"; +import { getSubscriptionData } from "~subscriptions"; +import { + RecurringPaymentFrequency, + type SubscriptionData +} from "~subscriptions/subscription"; + +const background: ModuleFunction = async ( + appData, + subscriptionData: SubscriptionData, + type?: unknown +) => { + // validate input + isAddress(subscriptionData.arweaveAccountAddress); + + if (type) isSubscriptionType(type); + + // check if subsciption exists + const subscriptions = await getSubscriptionData(); + + if ( + subscriptions.find( + (subscription) => + subscription.arweaveAccountAddress === + subscriptionData.arweaveAccountAddress + ) + ) { + throw new Error("Token already added"); + } + + await authenticate({ + type: "subscription", + url: appData.appURL, + arweaveAccountAddress: subscriptionData.arweaveAccountAddress, + applicationName: subscriptionData.applicationName, + subscriptionName: subscriptionData.subscriptionName, + subscriptionFeeAmount: subscriptionData.subscriptionFeeAmount, + subsciptionStatus: subscriptionData.subscriptionStatus, + recurringPaymentFrequency: subscriptionData.recurringPaymentFrequency, + nextPaymentDue: subscriptionData.nextPaymentDue, + subscriptionStartDate: subscriptionData.subscriptionStartDate, + subscriptionEndDate: subscriptionData.subscriptionEndDate + }); +}; diff --git a/src/applications/application.ts b/src/applications/application.ts index 096e8b2d8..4b3a3dd65 100644 --- a/src/applications/application.ts +++ b/src/applications/application.ts @@ -4,7 +4,6 @@ import { useStorage } from "@plasmohq/storage/hook"; import { ExtensionStorage } from "~utils/storage"; import type { Storage } from "@plasmohq/storage"; import { defaultGateway, Gateway } from "~gateways/gateway"; -import type { SubscriptionData } from "~subscriptions/subscription"; export const PREFIX = "app_"; export const defaultBundler = "https://turbo.ardrive.io"; @@ -193,5 +192,4 @@ export interface InitAppParams extends AppInfo { allowance?: Allowance; blocked?: boolean; bundler?: string; - subscriptionData?: SubscriptionData; } diff --git a/src/subscriptions/index.ts b/src/subscriptions/index.ts new file mode 100644 index 000000000..469760c50 --- /dev/null +++ b/src/subscriptions/index.ts @@ -0,0 +1,18 @@ +import type { SubscriptionData } from "./subscription"; +import { ExtensionStorage } from "~utils/storage"; + +// get subscription data from storage +export async function getSubscriptionData(): Promise { + const subscriptionData = await ExtensionStorage.get( + `subscriptions_${this.activeAddress}` + ); + return subscriptionData; +} + +// get subscription auto withdrawal allowance +export async function getAutoAllowance(): Promise { + const subscriptionAllowance = await ExtensionStorage.get( + "setting_subscription_allowance" + ); + return subscriptionAllowance; +} diff --git a/src/subscriptions/subscription.ts b/src/subscriptions/subscription.ts index 9c32edad3..156ddc008 100644 --- a/src/subscriptions/subscription.ts +++ b/src/subscriptions/subscription.ts @@ -1,6 +1,7 @@ import Application, { type InitAppParams } from "~applications/application"; import { ExtensionStorage } from "~utils/storage"; import type { Storage } from "@plasmohq/storage"; +import { getSubscriptionData } from "~subscriptions"; export default class Subscription { activeAddress: string; @@ -15,22 +16,6 @@ export default class Subscription { this.#storage = ExtensionStorage; } - // get subscription data from storage - async getSubscriptionData(): Promise { - const subscriptionData = await this.#storage.get( - `subscriptions_${this.activeAddress}` - ); - return subscriptionData; - } - - // get subscription auto withdrawal allowance - async getAutoAllowance(): Promise { - const subscriptionAllowance = await this.#storage.get( - "setting_subscription_allowance" - ); - return subscriptionAllowance; - } - // handle subscription signup async signUpSubscription(subscriptionData: SubscriptionData): Promise { // validate subscription data @@ -42,7 +27,7 @@ export default class Subscription { "subscriptionStatus", "recurringPaymentFrequency", "nextPaymentDue", - "subscriptionStartData", + "subscriptionStartDate", "subscriptionEndDate" ]; for (const field of requiredFields) { @@ -52,8 +37,7 @@ export default class Subscription { } // retrieve existing subscriptions - let existingSubscriptions: SubscriptionData[] = - await this.getSubscriptionData(); + let existingSubscriptions: SubscriptionData[] = await getSubscriptionData(); // append the new subsciption existingSubscriptions.push(subscriptionData); @@ -99,9 +83,9 @@ export interface SubscriptionData { subscriptionFeeAmount: number; subscriptionStatus: SubscriptionStatus; recurringPaymentFrequency: RecurringPaymentFrequency; - nextPaymentDue: Date; - subscriptionStartDate: Date; - subscriptionEndDate: Date; + nextPaymentDue: Date | string; + subscriptionStartDate: Date | string; + subscriptionEndDate: Date | string; } /** diff --git a/src/utils/assertions.ts b/src/utils/assertions.ts index 2aed24c82..7e4846ceb 100644 --- a/src/utils/assertions.ts +++ b/src/utils/assertions.ts @@ -33,6 +33,7 @@ import { isExactly } from "typed-assert"; import { Gateway } from "~gateways/gateway"; +import type { SubscriptionData } from "~subscriptions/subscription"; export function isGateway(input: unknown): asserts input is Gateway { isRecordWithKeys( @@ -49,6 +50,69 @@ export function isGateway(input: unknown): asserts input is Gateway { ); } +export function isSubscriptionType( + input: unknown +): asserts input is SubscriptionData[] { + isArray(input, "Input should be an array"); + + for (const item of input) { + isInstanceOf(item, Object, "Each item in the array should be an object."); + + const { + arweaveAccountAddress, + applicationName, + subscriptionName, + subscriptionFeeAmount, + subscriptionStatus, + recurringPaymentFrequency, + nextPaymentDue, + subscriptionStartDate, + subscriptionEndDate, + applicationIcon + } = item as SubscriptionData; + + isString( + arweaveAccountAddress, + "arweaveAccountAddress should be a string." + ); + isString(applicationName, "applicationName should be a string."); + isString(subscriptionName, "subscriptionName should be a string."); + isNumber( + subscriptionFeeAmount, + "subscriptionFeeAmount should be a number." + ); + isOneOf( + subscriptionStatus, + Object.values(subscriptionStatus), + "Invalid subscriptionStatus." + ); + isOneOf( + recurringPaymentFrequency, + Object.values(recurringPaymentFrequency), + "Invalid recurringPaymentFrequency." + ); + isOneOf( + nextPaymentDue, + Object.values(nextPaymentDue), + "Invalid nextPaymentDue." + ); + isOneOf( + subscriptionStartDate, + Object.values(subscriptionStartDate), + "Invalid subscriptionStartDate." + ); + isOneOf( + subscriptionEndDate, + Object.values(subscriptionEndDate), + "Invalid subscriptionEndDate" + ); + + if (applicationIcon !== undefined) { + isString(applicationIcon, "applicationIcon should be a string."); + } + } +} + export function isTokenType(input: unknown): asserts input is TokenType { isString(input, "Token type should be a string."); isOneOf( diff --git a/src/utils/events.ts b/src/utils/events.ts index d9775beab..731551c91 100644 --- a/src/utils/events.ts +++ b/src/utils/events.ts @@ -2,7 +2,6 @@ import type { PermissionType } from "~applications/permissions"; import { ExtensionStorage } from "./storage"; import { Gateway } from "~gateways/gateway"; import type { EventType } from "mitt"; -import type { SubscriptionData } from "~subscriptions/subscription"; interface SecurityEvent { type: string; @@ -33,5 +32,4 @@ export interface InjectedEvents extends Record { addresses: string[]; permissions: PermissionType[]; gateway: Gateway; - subscription: SubscriptionData[]; } From 004cd86e37ad34e37190fad0232394b7d6ec7726 Mon Sep 17 00:00:00 2001 From: elehmandevelopment Date: Fri, 15 Mar 2024 18:35:28 -0600 Subject: [PATCH 07/60] ci: subscription class --- src/subscriptions/subscription.ts | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/subscriptions/subscription.ts b/src/subscriptions/subscription.ts index 156ddc008..102a87299 100644 --- a/src/subscriptions/subscription.ts +++ b/src/subscriptions/subscription.ts @@ -49,6 +49,9 @@ export default class Subscription { ); } + // TODO loadTokenLogo ? + + // TODO check for subscriptionData from application // fetch / add subscription data from app // async fetchAppSubscriptionData(): Promise { // // check if app is connected From 119ea6668db2e66b776070438dc58c8262008e34 Mon Sep 17 00:00:00 2001 From: elehmandevelopment Date: Sun, 17 Mar 2024 15:30:45 -0600 Subject: [PATCH 08/60] ci: add subscription module to foreground --- src/api/foreground.ts | 5 ++++- src/api/modules/subscription/index.ts | 4 ++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/src/api/foreground.ts b/src/api/foreground.ts index dfad1260e..eac7e96a8 100644 --- a/src/api/foreground.ts +++ b/src/api/foreground.ts @@ -47,6 +47,8 @@ import signMessageModule from "./modules/sign_message"; import signMessage, { finalizer as signMessageFinalizer } from "./modules/sign_message/sign_message.foreground"; +import subscriptionModule from "./modules/subscription"; +import subscription from "./modules/subscription/subscription.foreground"; import privateHashModule from "./modules/private_hash"; import privateHash, { finalizer as privateHashFinalizer @@ -90,7 +92,8 @@ const modules: ForegroundModule[] = [ ...signDataItemModule, function: signDataItem, finalizer: signDataItemFinalizer - } + }, + { ...subscriptionModule, function: subscription } ]; export default modules; diff --git a/src/api/modules/subscription/index.ts b/src/api/modules/subscription/index.ts index c32ef7b9f..9abd067d1 100644 --- a/src/api/modules/subscription/index.ts +++ b/src/api/modules/subscription/index.ts @@ -3,9 +3,9 @@ import type { ModuleProperties } from "~api/module"; const permissions: PermissionType[] = ["ACCESS_ADDRESS"]; -const subsciption: ModuleProperties = { +const subsciptionModule: ModuleProperties = { functionName: "subscription", permissions }; -export default subsciption; +export default subsciptionModule; From a5dab2b21f8b7b595133f60036fc295fdd70ba56 Mon Sep 17 00:00:00 2001 From: nicholas ma Date: Tue, 19 Mar 2024 10:19:53 -0700 Subject: [PATCH 09/60] feat: connect subscription data from application wip --- assets/_locales/en/messages.json | 8 ++ src/api/background.ts | 5 +- .../subscription/subscription.background.ts | 7 +- .../subscription/subscription.foreground.ts | 22 ++-- src/routes/auth/subscription.tsx | 108 ++++++++++++++++++ src/subscriptions/index.ts | 6 +- src/tabs/auth.tsx | 2 + 7 files changed, 143 insertions(+), 15 deletions(-) create mode 100644 src/routes/auth/subscription.tsx diff --git a/assets/_locales/en/messages.json b/assets/_locales/en/messages.json index ef724687b..572ef010b 100644 --- a/assets/_locales/en/messages.json +++ b/assets/_locales/en/messages.json @@ -1710,6 +1710,14 @@ "message": "Subscription Allowance", "description": "subscription settings title" }, + "subscription_title": { + "message": "Subscription", + "description": "subscription title" + }, + "subscribe_description": { + "message": "APPNAME wants to set up a Period subscription", + "description": "subscribe description" + }, "subscription_description": { "message": "Manage auto withdrawal allowance", "description": "subscription setting description" diff --git a/src/api/background.ts b/src/api/background.ts index 3d83f063b..5f2b1ebcb 100644 --- a/src/api/background.ts +++ b/src/api/background.ts @@ -39,6 +39,8 @@ import verifyMessageModule from "./modules/verify_message"; import verifyMessage from "./modules/verify_message/verify_message.background"; import signDataItemModule from "./modules/sign_data_item"; import signDataItem from "./modules/sign_data_item/sign_data_item.background"; +import subscriptionModule from "./modules/subscription"; +import subscription from "./modules/subscription/subscription.background"; /** Background modules */ const modules: BackgroundModule[] = [ @@ -60,7 +62,8 @@ const modules: BackgroundModule[] = [ { ...signMessageModule, function: signMessage }, { ...privateHashModule, function: privateHash }, { ...verifyMessageModule, function: verifyMessage }, - { ...signDataItemModule, function: signDataItem } + { ...signDataItemModule, function: signDataItem }, + { ...subscriptionModule, function: subscription } ]; export default modules; diff --git a/src/api/modules/subscription/subscription.background.ts b/src/api/modules/subscription/subscription.background.ts index acddcc972..d31fb35e7 100644 --- a/src/api/modules/subscription/subscription.background.ts +++ b/src/api/modules/subscription/subscription.background.ts @@ -4,6 +4,7 @@ import { isAppInfo, isSubscriptionType } from "~utils/assertions"; +import { getActiveAddress } from "~wallets"; import type { ModuleFunction } from "~api/background"; import authenticate from "../connect/auth"; import { getSubscriptionData } from "~subscriptions"; @@ -21,9 +22,9 @@ const background: ModuleFunction = async ( isAddress(subscriptionData.arweaveAccountAddress); if (type) isSubscriptionType(type); - + const address = await getActiveAddress(); // check if subsciption exists - const subscriptions = await getSubscriptionData(); + const subscriptions = await getSubscriptionData(address); if ( subscriptions.find( @@ -49,3 +50,5 @@ const background: ModuleFunction = async ( subscriptionEndDate: subscriptionData.subscriptionEndDate }); }; + +export default background; diff --git a/src/api/modules/subscription/subscription.foreground.ts b/src/api/modules/subscription/subscription.foreground.ts index 38671a186..061423378 100644 --- a/src/api/modules/subscription/subscription.foreground.ts +++ b/src/api/modules/subscription/subscription.foreground.ts @@ -33,16 +33,18 @@ const foreground: ModuleFunction = ( } return [ - arweaveAccountAddress, - applicationName, - subscriptionName, - subscriptionFeeAmount, - subscriptionStatus, - recurringPaymentFrequency, - nextPaymentDue, - subscriptionStartDate, - subscriptionEndDate, - applicationIcon + { + arweaveAccountAddress, + applicationName, + subscriptionName, + subscriptionFeeAmount, + subscriptionStatus, + recurringPaymentFrequency, + nextPaymentDue, + subscriptionStartDate, + subscriptionEndDate, + applicationIcon + } ]; }; diff --git a/src/routes/auth/subscription.tsx b/src/routes/auth/subscription.tsx new file mode 100644 index 000000000..cb7962beb --- /dev/null +++ b/src/routes/auth/subscription.tsx @@ -0,0 +1,108 @@ +import { replyToAuthRequest, useAuthParams, useAuthUtils } from "~utils/auth"; +import { + Button, + Card, + ListItem, + Section, + Spacer, + Text +} from "@arconnect/components"; +import { useEffect, useMemo, useState } from "react"; +import Wrapper from "~components/auth/Wrapper"; +import browser from "webextension-polyfill"; +import Head from "~components/popup/Head"; +import styled from "styled-components"; +import HeadV2 from "~components/popup/HeadV2"; + +export default function Subscription() { + // connect params + const params = useAuthParams(); + + // get auth utils + const { closeWindow, cancel } = useAuthUtils("signature", params?.authID); + + // listen for enter to reset + // useEffect(() => { + // const listener = async (e: KeyboardEvent) => { + // if (e.key !== "Enter") return; + // await sign(); + // }; + + // window.addEventListener("keydown", listener); + + // return () => window.removeEventListener("keydown", listener); + // }, [params?.authID]); + + // sign message + // async function sign() { + // // send response + // await replyToAuthRequest("signature", params?.authID); + + // // close the window + // closeWindow(); + // } + + // message decode type + + return ( + +
+ + +
+ + {browser.i18n.getMessage("subscribe_description")} + +
+ + + Application address: YSykB4NhJHA7jk4 + +
+
+ + + + + + +
+
+ ); +} + +const MessageHeader = styled.div` + display: flex; + align-items: center; + justify-content: space-between; + + p, + select { + font-size: 0.95rem; + } +`; + +const EncodingSelect = styled.select` + font-weight: 500; + color: rgb(${(props) => props.theme.secondaryText}); + outline: none; + border: none; + padding: 0; + margin: 0; + background-color: transparent; +`; + +const MessageText = styled(Text).attrs({ + noMargin: true +})` + font-size: 0.9rem; +`; diff --git a/src/subscriptions/index.ts b/src/subscriptions/index.ts index 469760c50..4187333b6 100644 --- a/src/subscriptions/index.ts +++ b/src/subscriptions/index.ts @@ -2,9 +2,11 @@ import type { SubscriptionData } from "./subscription"; import { ExtensionStorage } from "~utils/storage"; // get subscription data from storage -export async function getSubscriptionData(): Promise { +export async function getSubscriptionData( + activeAddress: string +): Promise { const subscriptionData = await ExtensionStorage.get( - `subscriptions_${this.activeAddress}` + `subscriptions_${activeAddress}` ); return subscriptionData; } diff --git a/src/tabs/auth.tsx b/src/tabs/auth.tsx index 2ea1618db..58fc7dc15 100644 --- a/src/tabs/auth.tsx +++ b/src/tabs/auth.tsx @@ -14,6 +14,7 @@ import Connect from "~routes/auth/connect"; import Unlock from "~routes/auth/unlock"; import Token from "~routes/auth/token"; import Sign from "~routes/auth/sign"; +import Subscription from "~routes/auth/subscription"; export default function Auth() { const theme = useTheme(); @@ -34,6 +35,7 @@ export default function Auth() { + From d6f22089805c9d6aedb9eaab241fabe681d4581f Mon Sep 17 00:00:00 2001 From: nicholas ma Date: Mon, 18 Mar 2024 16:12:50 -0700 Subject: [PATCH 10/60] style: basic ui done for sub list --- src/components/popup/home/AppIcon.tsx | 2 +- src/routes/popup/subscriptions.tsx | 252 ++++++++++++++++++++++++-- 2 files changed, 234 insertions(+), 20 deletions(-) diff --git a/src/components/popup/home/AppIcon.tsx b/src/components/popup/home/AppIcon.tsx index ad87612f1..1fd754632 100644 --- a/src/components/popup/home/AppIcon.tsx +++ b/src/components/popup/home/AppIcon.tsx @@ -9,7 +9,7 @@ export const NoAppIcon = styled(GlobeIcon)` color: #fff; `; -const AppIcon = styled(Squircle)<{ color?: string }>` +export const AppIcon = styled(Squircle)<{ color?: string }>` color: ${(props) => props.color ? props.color : "rgb(" + props.theme.theme + ")"}; width: 3rem; diff --git a/src/routes/popup/subscriptions.tsx b/src/routes/popup/subscriptions.tsx index 72e084cd1..7a71fc728 100644 --- a/src/routes/popup/subscriptions.tsx +++ b/src/routes/popup/subscriptions.tsx @@ -5,6 +5,10 @@ import HeadV2 from "~components/popup/HeadV2"; import { useEffect, useState } from "react"; import { getActiveAddress } from "~wallets"; import { ExtensionStorage } from "~utils/storage"; +import styled from "styled-components"; +import Squircle from "~components/Squircle"; +import { getSubscriptionData } from "~subscriptions"; +import dayjs from "dayjs"; export default function Subscriptions() { const [subData, setSubData] = useState(null); @@ -13,23 +17,60 @@ export default function Subscriptions() { async function getSubData() { const address = await getActiveAddress(); - // await ExtensionStorage.set(`subscriptions_${address}`, - // { - // "applicationName": "ArDrive Turbo", - // "arweaveAccountAddress": "JNC6vBhjHY1EPwV3pEeNmrsgFMxH5d38_LHsZ7jful8", - // "nextPaymentDue": "03-08-2025", - // "recurringPaymentFrequency": "Annually", - // "subscriptionEndDate": "03-08-2025", - // "subscriptionFeeAmount": 25, - // "subscriptionName": "Turbo Subscription", - // "subscriptionStartData": "03-08-2024", - // "subscriptionStatus": "Active" - // } - // ); + await ExtensionStorage.set(`subscriptions_${address}`, [ + { + applicationName: "ArDrive", + applicationIcon: "tN4vheZxrAIjqCfbs3MDdWTXg8a_57JUNyoqA4uwr1k", + arweaveAccountAddress: "JNC6vBhjHY1EPwV3pEeNmrsgFMxH5d38_LHsZ7jful8", + nextPaymentDue: "03-08-2025", + recurringPaymentFrequency: "Annually", + subscriptionEndDate: "03-08-2025", + subscriptionFeeAmount: 25, + subscriptionName: "Turbo Subscription", + subscriptionStartData: "03-08-2024", + subscriptionStatus: "Awaiting payment" + }, + { + applicationName: "PermaSwap Pro", + applicationIcon: "tN4vheZxrAIjqCfbs3MDdWTXg8a_57JUNyoqA4uwr1k", + arweaveAccountAddress: "JNC6vBhjHY1EPwV3pEeNmrsgFMxH5d38_LHsZ7jful8", + nextPaymentDue: "", + recurringPaymentFrequency: "Quarterly", + subscriptionEndDate: "03-08-2025", + subscriptionFeeAmount: 25, + subscriptionName: "PermaSwap Pro Subscription", + subscriptionStartData: "03-08-2024", + subscriptionStatus: "Cancelled" + }, + { + applicationName: "BARK Pro", + applicationIcon: "tN4vheZxrAIjqCfbs3MDdWTXg8a_57JUNyoqA4uwr1k", + arweaveAccountAddress: "JNC6vBhjHY1EPwV3pEeNmrsgFMxH5d38_LHsZ7jful8", + nextPaymentDue: "03-08-2025", + recurringPaymentFrequency: "Weekly", + subscriptionEndDate: "03-08-2025", + subscriptionFeeAmount: 25, + subscriptionName: "Turbo Subscription", + subscriptionStartData: "03-08-2024", + subscriptionStatus: "Active" + }, + { + applicationName: "Coinbase One", + applicationIcon: "tN4vheZxrAIjqCfbs3MDdWTXg8a_57JUNyoqA4uwr1k", + arweaveAccountAddress: "JNC6vBhjHY1EPwV3pEeNmrsgFMxH5d38_LHsZ7jful8", + nextPaymentDue: "", + recurringPaymentFrequency: "Monthly", + subscriptionEndDate: "03-08-2025", + subscriptionFeeAmount: 25, + subscriptionName: "Turbo Subscription", + subscriptionStartData: "03-08-2024", + subscriptionStatus: "Expired" + } + ]); try { const sub = new Subscription(address); - const data = await sub.getSubscriptionData(); + const data = await getSubscriptionData(address); console.log("data: ", data); setSubData(data); @@ -44,14 +85,187 @@ export default function Subscriptions() {
{subData ? ( - <> -
App: {subData.applicationName}
-
Subscription: {subData.subscriptionName}
-
Fee: {subData.subscriptionFeeAmount} AR
- + + {subData.map((sub) => { + return ( + + ); + })} + ) : (
No notifications found
)}
); } + +const SubscriptionListItem = ({ + title, + expiration, + status, + frequency, + amount, + icon +}) => { + let period: string = ""; + let color: string = ""; + switch (status) { + case "Active": + color = "#14D110"; + break; + case "Cancelled": + color = "#FF1A1A"; + break; + case "Awaiting payment": + color = "#CFB111"; + break; + default: + color = "#A3A3A3"; + } + + switch (frequency) { + case "Weekly": + period = "week"; + break; + case "Monthly": + period = "month"; + break; + case "Annually": + period = "year"; + break; + case "Quarterly": + period = "quarter"; + break; + default: + period = ""; + } + return ( + + + + + + <h2>{title}</h2> + <h3> + Next payment date:{" "} + {expiration ? ( + <span>{dayjs(expiration).format("MMM DD, YYYY")} </span> + ) : ( + "--" + )} + </h3> + + + + {status} + +
+ {amount} AR/{period} +
+
+
+
+
+ ); +}; + +const StatusCircle = ({ color }: { color: string }) => ( + + + +); + +const Title = styled.div` + h3 { + color: #a3a3a3; + + span { + color: white; + } + } +`; + +const SubscriptionList = styled.div` + display: flex; + flex-direction: column; + border: 1px solid #333333; + border-radius: 10px; + margin: 0 15px; +`; + +const ListItem = styled.div` + padding: 10px 0; + margin: 0 10px; + + &:not(:last-child) { + border-bottom: 1px solid rgb(${(props) => props.theme.cardBorder}); + } +`; + +const Content = styled.div` + cursor: pointer; + display: flex; + gap: 0.75rem; + align-items: center; + h2 { + margin: 0; + padding: 0; + font-weight: 500; + font-size: 1rem; + } + h3 { + margin: 0; + padding: 0; + font-weight: 500; + font-size: 10px; + } +`; + +const ListDetails = styled.div` + display: flex; + height: 100%; + justify-content: space-between; + width: 100%; +`; + +const SubscriptionInformation = styled.div` + display: flex; + flex-direction: column; + justify-content: space-between; + height: 36px; + text-align: right; +`; + +const Status = styled.p<{ color: string }>` + margin: 0; + color: ${(props) => props.color}; + font-size: 10px; +`; + +const Image = styled.img` + width: 16px; + padding: 0 8px; + border: 1px solid rgb(${(props) => props.theme.cardBorder}); + border-radius: 2px; +`; + +const AppIcon = styled(Squircle)<{ color?: string }>` + color: ${(props) => + props.color ? props.color : "rgb(" + props.theme.theme + ")"}; + width: 2rem; + height: 2rem; + cursor: pointer; +`; From 881af29daac3d31c0eb159cf6977a239e03f6790 Mon Sep 17 00:00:00 2001 From: nicholas ma Date: Tue, 19 Mar 2024 17:00:12 -0700 Subject: [PATCH 11/60] feat: added subscription details page --- src/popup.tsx | 8 +- .../subscriptions/subscriptionDetails.tsx | 267 ++++++++++++++++++ .../{ => subscriptions}/subscriptions.tsx | 26 +- 3 files changed, 292 insertions(+), 9 deletions(-) create mode 100644 src/routes/popup/subscriptions/subscriptionDetails.tsx rename src/routes/popup/{ => subscriptions}/subscriptions.tsx (92%) diff --git a/src/popup.tsx b/src/popup.tsx index 9f1c5b897..3b242e934 100644 --- a/src/popup.tsx +++ b/src/popup.tsx @@ -20,7 +20,7 @@ import SendAuth from "~routes/popup/send/auth"; import Explore from "~routes/popup/explore"; import Unlock from "~routes/popup/unlock"; import Notifications from "~routes/popup/notifications"; -import Subscriptions from "~routes/popup/subscriptions"; +import Subscriptions from "~routes/popup/subscriptions/subscriptions"; import Tokens from "~routes/popup/tokens"; import Asset from "~routes/popup/token/[id]"; import Collectibles from "~routes/popup/collectibles"; @@ -30,6 +30,7 @@ import Recipient from "~routes/popup/send/recipient"; import Confirm from "~routes/popup/send/confirm"; import { NavigationBar } from "~components/popup/Navigation"; import MessageNotification from "~routes/popup/notification/[id]"; +import SubscriptionDetails from "~routes/popup/subscriptions/subscriptionDetails"; export default function Popup() { const theme = useTheme(); @@ -73,6 +74,11 @@ export default function Popup() { + + {(params: { id: string }) => ( + + )} + {(params: { id: string }) => ( diff --git a/src/routes/popup/subscriptions/subscriptionDetails.tsx b/src/routes/popup/subscriptions/subscriptionDetails.tsx new file mode 100644 index 000000000..68b275456 --- /dev/null +++ b/src/routes/popup/subscriptions/subscriptionDetails.tsx @@ -0,0 +1,267 @@ +import Subscription, { + type SubscriptionData +} from "~subscriptions/subscription"; +import HeadV2 from "~components/popup/HeadV2"; +import { useEffect, useState } from "react"; +import { getActiveAddress } from "~wallets"; +import { ExtensionStorage } from "~utils/storage"; +import styled from "styled-components"; +import Squircle from "~components/Squircle"; +import { getSubscriptionData } from "~subscriptions"; +import dayjs from "dayjs"; +import { ButtonV2, Input, InputV2, ListItem } from "@arconnect/components"; +import { AppIcon, Content, Title } from "./subscriptions"; + +interface Props { + id?: string; +} + +export default function SubscriptionDetails({ id }: Props) { + const [subData, setSubData] = useState(null); + + useEffect(() => { + async function getSubData() { + const address = await getActiveAddress(); + + try { + const sub = new Subscription(address); + const data = await getSubscriptionData(address); + // finding like this for now + const subscription = data.find( + (subscription) => subscription.arweaveAccountAddress === id + ); + setSubData(subscription); + } catch (error) { + console.error("Error fetching subscription data:", error); + } + } + getSubData(); + }, []); + + return ( + <> + + {subData && ( + +
+ + + + + <h2>{subData.applicationName}</h2> + <h3 style={{ fontSize: "12px" }}> + Status:{" "} + <span style={{ color: "greenyellow" }}> + {subData.subscriptionStatus} + </span> + </h3> + + + + + Application address: YSykB4NhJHA7jk4 + + +
Recurring payment amount
+ +

25 AR

+ + Subscription: Yearly + + + + $625.00 USD + + Next payment: Mar 8, 2025 + + +
+
+
+ + + Start + + + End + + + + Mar 8, 2024 + Mar 8, 2025 + +
+ {/* Toggle */} + + Auto-renewal + + + + + + Automatic Payment Threshold + + + {/* */} + +
+
+ + Manage Subscription + + + Cancel Subscription + +
+
+ )} + + ); +} + +const SubscriptionText = styled.div<{ fontSize?: string; color?: string }>` + font-size: ${(props) => props.fontSize || "16px"}; + font-weight: 500; + color: ${(props) => props.color || "#a3a3a3"}; + + span { + color: #ffffff; + } +`; + +const Threshold = styled.div` + display: flex; + flex-direction: column; + gap: 12px; +`; + +const Body = styled.div` + display: flex; + justify-content: space-between; + align-items: flex-end; +`; + +const PaymentDetails = styled.div` + h3 { + margin: 0; + font-size: 32px; + font-weight: 600; + } + h6 { + margin: 0; + font-weight: 500; + font-size: 10px; + } +`; + +const Main = styled.div` + display: flex; + flex-direction: column; + gap: 18px; +`; + +const Wrapper = styled.div` + display: flex; + flex-direction: column; + height: calc(100vh - 100px); + justify-content: space-between; + padding: 15px; +`; + +export const SubscriptionListItem = styled.div` + display: flex; +`; + +const ToggleSwitch = () => { + const [checked, setChecked] = useState(false); + + const handleChange = () => { + setChecked(!checked); + }; + + return ( + + + + + ); +}; +const SwitchWrapper = styled.label` + position: relative; + display: inline-block; + width: 44px; // Total width of the switch + height: 22px; // Total height of the switch +`; + +const Slider = styled.span` + position: absolute; + cursor: pointer; + top: 0; + left: 0; + right: 0; + bottom: 0; + background-color: #ccc; + transition: 0.4s; + border-radius: 22px; + + &:before { + position: absolute; + content: ""; + height: 18px; + width: 18px; + left: 2px; + bottom: 2px; + background-color: white; + transition: 0.4s; + border-radius: 50%; + } +`; + +const Checkbox = styled.input` + opacity: 0; + width: 0; + height: 0; + + &:checked + ${Slider} { + background-color: #8e7bea; + } + + &:checked + ${Slider}:before { + // The translateX value should match the width of the switch minus the circle diameter and margins + transform: translateX(22px); // Adjusted to fit the new size + } +`; + +const InfoCircle = () => ( + + + + + + + + + + +); diff --git a/src/routes/popup/subscriptions.tsx b/src/routes/popup/subscriptions/subscriptions.tsx similarity index 92% rename from src/routes/popup/subscriptions.tsx rename to src/routes/popup/subscriptions/subscriptions.tsx index 7a71fc728..8dbc0c64a 100644 --- a/src/routes/popup/subscriptions.tsx +++ b/src/routes/popup/subscriptions/subscriptions.tsx @@ -9,6 +9,7 @@ import styled from "styled-components"; import Squircle from "~components/Squircle"; import { getSubscriptionData } from "~subscriptions"; import dayjs from "dayjs"; +import { useHistory } from "~utils/hash_router"; export default function Subscriptions() { const [subData, setSubData] = useState(null); @@ -95,6 +96,7 @@ export default function Subscriptions() { status={sub.subscriptionStatus} frequency={sub.recurringPaymentFrequency} amount={sub.subscriptionFeeAmount} + id={sub.arweaveAccountAddress} /> ); })} @@ -112,6 +114,8 @@ const SubscriptionListItem = ({ status, frequency, amount, + id, + icon }) => { let period: string = ""; @@ -146,8 +150,10 @@ const SubscriptionListItem = ({ default: period = ""; } + + const [push] = useHistory(); return ( - + push(`/subscriptions/${id}`)}> @@ -188,7 +194,7 @@ const StatusCircle = ({ color }: { color: string }) => ( ); -const Title = styled.div` +export const Title = styled.div` h3 { color: #a3a3a3; @@ -215,7 +221,7 @@ const ListItem = styled.div` } `; -const Content = styled.div` +export const Content = styled.div` cursor: pointer; display: flex; gap: 0.75rem; @@ -262,10 +268,14 @@ const Image = styled.img` border-radius: 2px; `; -const AppIcon = styled(Squircle)<{ color?: string }>` - color: ${(props) => - props.color ? props.color : "rgb(" + props.theme.theme + ")"}; - width: 2rem; - height: 2rem; +type SquircleProps = { + color?: string; + customSize?: string; +}; + +export const AppIcon = styled(Squircle)` + color: ${(props) => props.color || `rgb(${props.theme.theme})`}; + width: ${(props) => props.customSize || "2rem"}; + height: ${(props) => props.customSize || "2rem"}; cursor: pointer; `; From 5a1b9bb1551e1e6cdbd3afbb6d3a365877dc0d7b Mon Sep 17 00:00:00 2001 From: nicholas ma Date: Tue, 19 Mar 2024 17:53:22 -0700 Subject: [PATCH 12/60] feat: added connect popup ui --- .../subscription/subscription.background.ts | 18 +- src/routes/auth/subscription.tsx | 159 +++++++++++++----- .../subscriptions/subscriptionDetails.tsx | 17 +- 3 files changed, 133 insertions(+), 61 deletions(-) diff --git a/src/api/modules/subscription/subscription.background.ts b/src/api/modules/subscription/subscription.background.ts index d31fb35e7..b640bfb87 100644 --- a/src/api/modules/subscription/subscription.background.ts +++ b/src/api/modules/subscription/subscription.background.ts @@ -26,15 +26,15 @@ const background: ModuleFunction = async ( // check if subsciption exists const subscriptions = await getSubscriptionData(address); - if ( - subscriptions.find( - (subscription) => - subscription.arweaveAccountAddress === - subscriptionData.arweaveAccountAddress - ) - ) { - throw new Error("Token already added"); - } + // if ( + // subscriptions.find( + // (subscription) => + // subscription.arweaveAccountAddress === + // subscriptionData.arweaveAccountAddress + // ) + // ) { + // throw new Error("Token already added"); + // } await authenticate({ type: "subscription", diff --git a/src/routes/auth/subscription.tsx b/src/routes/auth/subscription.tsx index cb7962beb..4b3e9ac6d 100644 --- a/src/routes/auth/subscription.tsx +++ b/src/routes/auth/subscription.tsx @@ -1,25 +1,31 @@ import { replyToAuthRequest, useAuthParams, useAuthUtils } from "~utils/auth"; -import { - Button, - Card, - ListItem, - Section, - Spacer, - Text -} from "@arconnect/components"; -import { useEffect, useMemo, useState } from "react"; -import Wrapper from "~components/auth/Wrapper"; -import browser from "webextension-polyfill"; -import Head from "~components/popup/Head"; +import { ButtonV2, InputV2, Text } from "@arconnect/components"; + import styled from "styled-components"; import HeadV2 from "~components/popup/HeadV2"; +import { + Body, + InfoCircle, + Main, + PaymentDetails, + SubscriptionListItem, + SubscriptionText, + Threshold, + ToggleSwitch +} from "~routes/popup/subscriptions/subscriptionDetails"; +import { + AppIcon, + Content, + Title +} from "~routes/popup/subscriptions/subscriptions"; +import dayjs from "dayjs"; export default function Subscription() { // connect params const params = useAuthParams(); // get auth utils - const { closeWindow, cancel } = useAuthUtils("signature", params?.authID); + const { closeWindow, cancel } = useAuthUtils("subscription", params?.authID); // listen for enter to reset // useEffect(() => { @@ -45,41 +51,104 @@ export default function Subscription() { // message decode type return ( - -
- - -
- - {browser.i18n.getMessage("subscribe_description")} - -
- - - Application address: YSykB4NhJHA7jk4 - -
-
- - - - - - -
-
+ <> + + {console.log("params", params)} + {params && ( + +
+ + + + + <h2>{params.applicationName}</h2> + <h3 style={{ fontSize: "12px" }}> + Status:{" "} + <span style={{ color: "greenyellow" }}>Pending</span> + </h3> + + + + + Application address: {params.arweaveAccountAddress} + + +
Recurring payment amount
+ +

{params.subscriptionFeeAmount} AR

+ + Subscription: {params.recurringPaymentFrequency} + + + + $625.00 USD + + Next payment:{" "} + {dayjs(params.nextPaymentDue).format("MMM DD, YYYY")} + + +
+
+
+ + + Start + + + End + + + + Mar 8, 2024 + Mar 8, 2025 + +
+ {/* Toggle */} + + Auto-renewal + + + + + + Automatic Payment Threshold + + + + +
+
+ + Confirm Subscription + + + Cancel + +
+
+ )} + ); } +const Wrapper = styled.div` + display: flex; + flex-direction: column; + height: calc(100vh - 100px); + justify-content: space-between; + padding: 15px; +`; + const MessageHeader = styled.div` display: flex; align-items: center; diff --git a/src/routes/popup/subscriptions/subscriptionDetails.tsx b/src/routes/popup/subscriptions/subscriptionDetails.tsx index 68b275456..9c4395992 100644 --- a/src/routes/popup/subscriptions/subscriptionDetails.tsx +++ b/src/routes/popup/subscriptions/subscriptionDetails.tsx @@ -128,7 +128,10 @@ export default function SubscriptionDetails({ id }: Props) { ); } -const SubscriptionText = styled.div<{ fontSize?: string; color?: string }>` +export const SubscriptionText = styled.div<{ + fontSize?: string; + color?: string; +}>` font-size: ${(props) => props.fontSize || "16px"}; font-weight: 500; color: ${(props) => props.color || "#a3a3a3"}; @@ -138,19 +141,19 @@ const SubscriptionText = styled.div<{ fontSize?: string; color?: string }>` } `; -const Threshold = styled.div` +export const Threshold = styled.div` display: flex; flex-direction: column; gap: 12px; `; -const Body = styled.div` +export const Body = styled.div` display: flex; justify-content: space-between; align-items: flex-end; `; -const PaymentDetails = styled.div` +export const PaymentDetails = styled.div` h3 { margin: 0; font-size: 32px; @@ -163,7 +166,7 @@ const PaymentDetails = styled.div` } `; -const Main = styled.div` +export const Main = styled.div` display: flex; flex-direction: column; gap: 18px; @@ -181,7 +184,7 @@ export const SubscriptionListItem = styled.div` display: flex; `; -const ToggleSwitch = () => { +export const ToggleSwitch = () => { const [checked, setChecked] = useState(false); const handleChange = () => { @@ -241,7 +244,7 @@ const Checkbox = styled.input` } `; -const InfoCircle = () => ( +export const InfoCircle = () => ( Date: Wed, 20 Mar 2024 15:18:09 -0700 Subject: [PATCH 13/60] feat: now saves to extension storage --- .../subscription/subscription.background.ts | 3 +- .../subscription/subscription.foreground.ts | 27 +---- src/components/dashboard/list/BaseElement.tsx | 12 +- src/routes/auth/subscription.tsx | 107 +++++++++--------- .../subscriptions/subscriptionDetails.tsx | 15 ++- .../popup/subscriptions/subscriptions.tsx | 59 ++-------- src/subscriptions/index.ts | 23 ++++ 7 files changed, 112 insertions(+), 134 deletions(-) diff --git a/src/api/modules/subscription/subscription.background.ts b/src/api/modules/subscription/subscription.background.ts index b640bfb87..70470e360 100644 --- a/src/api/modules/subscription/subscription.background.ts +++ b/src/api/modules/subscription/subscription.background.ts @@ -47,7 +47,8 @@ const background: ModuleFunction = async ( recurringPaymentFrequency: subscriptionData.recurringPaymentFrequency, nextPaymentDue: subscriptionData.nextPaymentDue, subscriptionStartDate: subscriptionData.subscriptionStartDate, - subscriptionEndDate: subscriptionData.subscriptionEndDate + subscriptionEndDate: subscriptionData.subscriptionEndDate, + applicationIcon: subscriptionData?.applicationIcon }); }; diff --git a/src/api/modules/subscription/subscription.foreground.ts b/src/api/modules/subscription/subscription.foreground.ts index 061423378..e4c81b2a2 100644 --- a/src/api/modules/subscription/subscription.foreground.ts +++ b/src/api/modules/subscription/subscription.foreground.ts @@ -1,18 +1,7 @@ import type { SubscriptionData } from "~subscriptions/subscription"; import type { ModuleFunction } from "~api/module"; -const foreground: ModuleFunction = ( - arweaveAccountAddress, - applicationName, - subscriptionName, - subscriptionFeeAmount, - subscriptionStatus, - recurringPaymentFrequency, - nextPaymentDue, - subscriptionStartDate, - subscriptionEndDate, - applicationIcon? -) => { +const foreground: ModuleFunction = (data) => { // Validate required fields const requiredFields: (keyof SubscriptionData)[] = [ "arweaveAccountAddress", @@ -27,23 +16,15 @@ const foreground: ModuleFunction = ( ]; for (const field of requiredFields) { - if (typeof eval(field) === "undefined") { + if (data[field] === undefined) { throw new Error(`Missing required field: ${field}`); } } return [ { - arweaveAccountAddress, - applicationName, - subscriptionName, - subscriptionFeeAmount, - subscriptionStatus, - recurringPaymentFrequency, - nextPaymentDue, - subscriptionStartDate, - subscriptionEndDate, - applicationIcon + ...data, + applicationIcon: data.applicationIcon } ]; }; diff --git a/src/components/dashboard/list/BaseElement.tsx b/src/components/dashboard/list/BaseElement.tsx index dba7a2de0..a4c71f34d 100644 --- a/src/components/dashboard/list/BaseElement.tsx +++ b/src/components/dashboard/list/BaseElement.tsx @@ -73,12 +73,16 @@ const ContentWrapper = styled.div` gap: ${setting_element_padding}; `; -const SettingIconWrapper = styled(Squircle)` +export const SettingIconWrapper = styled(Squircle)<{ + bg?: string; + customSize?: string; +}>` position: relative; flex-shrink: 0; - width: 2.6rem; - height: 2.6rem; - color: rgb(${(props) => props.theme.theme}); + width: ${(props) => props.customSize || "2.6rem"}; + height: ${(props) => props.customSize || "2.6rem"}; + + color: rgb(${(props) => props.bg || props.theme.theme}); `; export const SettingIcon = styled(SettingsIcon)` diff --git a/src/routes/auth/subscription.tsx b/src/routes/auth/subscription.tsx index 4b3e9ac6d..8017cb150 100644 --- a/src/routes/auth/subscription.tsx +++ b/src/routes/auth/subscription.tsx @@ -1,6 +1,6 @@ import { replyToAuthRequest, useAuthParams, useAuthUtils } from "~utils/auth"; -import { ButtonV2, InputV2, Text } from "@arconnect/components"; - +import { ButtonV2, InputV2, Text, useToasts } from "@arconnect/components"; +import browser from "webextension-polyfill"; import styled from "styled-components"; import HeadV2 from "~components/popup/HeadV2"; import { @@ -19,47 +19,79 @@ import { Title } from "~routes/popup/subscriptions/subscriptions"; import dayjs from "dayjs"; +import { addSubscription } from "~subscriptions"; +import { getActiveAddress } from "~wallets"; +import type { + RecurringPaymentFrequency, + SubscriptionData, + SubscriptionStatus +} from "~subscriptions/subscription"; +import Squircle from "~components/Squircle"; +import { + SettingIconWrapper, + SettingImage +} from "~components/dashboard/list/BaseElement"; export default function Subscription() { // connect params const params = useAuthParams(); + const { setToast } = useToasts(); // get auth utils const { closeWindow, cancel } = useAuthUtils("subscription", params?.authID); - // listen for enter to reset - // useEffect(() => { - // const listener = async (e: KeyboardEvent) => { - // if (e.key !== "Enter") return; - // await sign(); - // }; - - // window.addEventListener("keydown", listener); - - // return () => window.removeEventListener("keydown", listener); - // }, [params?.authID]); + async function done() { + // add subscription to storage + try { + const { authID, ...subscriptionParams } = params; + const activeAddress = await getActiveAddress(); + const subscriptionData: SubscriptionData = { + arweaveAccountAddress: subscriptionParams.arweaveAccountAddress, + applicationName: subscriptionParams.applicationName, + subscriptionName: subscriptionParams.subscriptionName, + subscriptionFeeAmount: subscriptionParams.subscriptionFeeAmount, + subscriptionStatus: + subscriptionParams.subsciptionStatus as SubscriptionStatus, + recurringPaymentFrequency: + subscriptionParams.recurringPaymentFrequency as RecurringPaymentFrequency, + nextPaymentDue: new Date(subscriptionParams.nextPaymentDue), + subscriptionStartDate: new Date( + subscriptionParams.subscriptionStartDate + ), + subscriptionEndDate: new Date(subscriptionParams.subscriptionEndDate), + applicationIcon: subscriptionParams.applicationIcon + }; - // sign message - // async function sign() { - // // send response - // await replyToAuthRequest("signature", params?.authID); + await addSubscription(activeAddress, subscriptionData); - // // close the window - // closeWindow(); - // } + // reply to request + await replyToAuthRequest("subscription", params.authID); - // message decode type + closeWindow(); + } catch (e) { + console.log("Failed to subscribe"); + setToast({ + type: "error", + //todo update message + content: browser.i18n.getMessage("token_add_failure"), + duration: 2200 + }); + } + } return ( <> - {console.log("params", params)} {params && (
- + + {params.applicationIcon && ( + + )} +

{params.applicationName}

@@ -124,7 +156,7 @@ export default function Subscription() { gap: "8px" }} > - + Confirm Subscription props.theme.secondaryText}); - outline: none; - border: none; - padding: 0; - margin: 0; - background-color: transparent; -`; - -const MessageText = styled(Text).attrs({ - noMargin: true -})` - font-size: 0.9rem; -`; diff --git a/src/routes/popup/subscriptions/subscriptionDetails.tsx b/src/routes/popup/subscriptions/subscriptionDetails.tsx index 9c4395992..61aedf9fb 100644 --- a/src/routes/popup/subscriptions/subscriptionDetails.tsx +++ b/src/routes/popup/subscriptions/subscriptionDetails.tsx @@ -11,6 +11,11 @@ import { getSubscriptionData } from "~subscriptions"; import dayjs from "dayjs"; import { ButtonV2, Input, InputV2, ListItem } from "@arconnect/components"; import { AppIcon, Content, Title } from "./subscriptions"; +import { + SettingIconWrapper, + SettingImage +} from "~components/dashboard/list/BaseElement"; +import { formatAddress } from "~utils/format"; interface Props { id?: string; @@ -24,7 +29,6 @@ export default function SubscriptionDetails({ id }: Props) { const address = await getActiveAddress(); try { - const sub = new Subscription(address); const data = await getSubscriptionData(address); // finding like this for now const subscription = data.find( @@ -46,7 +50,11 @@ export default function SubscriptionDetails({ id }: Props) {
- + + {subData.applicationIcon && ( + + )} + <h2>{subData.applicationName}</h2> <h3 style={{ fontSize: "12px" }}> @@ -59,7 +67,8 @@ export default function SubscriptionDetails({ id }: Props) { </Content> </SubscriptionListItem> <SubscriptionText> - Application address: <span>YSykB4NhJHA7jk4</span> + Application address:{" "} + <span>{formatAddress(subData.arweaveAccountAddress, 8)}</span> </SubscriptionText> <PaymentDetails> <h6>Recurring payment amount</h6> diff --git a/src/routes/popup/subscriptions/subscriptions.tsx b/src/routes/popup/subscriptions/subscriptions.tsx index 8dbc0c64a..71a20450e 100644 --- a/src/routes/popup/subscriptions/subscriptions.tsx +++ b/src/routes/popup/subscriptions/subscriptions.tsx @@ -10,6 +10,10 @@ import Squircle from "~components/Squircle"; import { getSubscriptionData } from "~subscriptions"; import dayjs from "dayjs"; import { useHistory } from "~utils/hash_router"; +import { + SettingIconWrapper, + SettingImage +} from "~components/dashboard/list/BaseElement"; export default function Subscriptions() { const [subData, setSubData] = useState<SubscriptionData[] | null>(null); @@ -18,57 +22,6 @@ export default function Subscriptions() { async function getSubData() { const address = await getActiveAddress(); - await ExtensionStorage.set(`subscriptions_${address}`, [ - { - applicationName: "ArDrive", - applicationIcon: "tN4vheZxrAIjqCfbs3MDdWTXg8a_57JUNyoqA4uwr1k", - arweaveAccountAddress: "JNC6vBhjHY1EPwV3pEeNmrsgFMxH5d38_LHsZ7jful8", - nextPaymentDue: "03-08-2025", - recurringPaymentFrequency: "Annually", - subscriptionEndDate: "03-08-2025", - subscriptionFeeAmount: 25, - subscriptionName: "Turbo Subscription", - subscriptionStartData: "03-08-2024", - subscriptionStatus: "Awaiting payment" - }, - { - applicationName: "PermaSwap Pro", - applicationIcon: "tN4vheZxrAIjqCfbs3MDdWTXg8a_57JUNyoqA4uwr1k", - arweaveAccountAddress: "JNC6vBhjHY1EPwV3pEeNmrsgFMxH5d38_LHsZ7jful8", - nextPaymentDue: "", - recurringPaymentFrequency: "Quarterly", - subscriptionEndDate: "03-08-2025", - subscriptionFeeAmount: 25, - subscriptionName: "PermaSwap Pro Subscription", - subscriptionStartData: "03-08-2024", - subscriptionStatus: "Cancelled" - }, - { - applicationName: "BARK Pro", - applicationIcon: "tN4vheZxrAIjqCfbs3MDdWTXg8a_57JUNyoqA4uwr1k", - arweaveAccountAddress: "JNC6vBhjHY1EPwV3pEeNmrsgFMxH5d38_LHsZ7jful8", - nextPaymentDue: "03-08-2025", - recurringPaymentFrequency: "Weekly", - subscriptionEndDate: "03-08-2025", - subscriptionFeeAmount: 25, - subscriptionName: "Turbo Subscription", - subscriptionStartData: "03-08-2024", - subscriptionStatus: "Active" - }, - { - applicationName: "Coinbase One", - applicationIcon: "tN4vheZxrAIjqCfbs3MDdWTXg8a_57JUNyoqA4uwr1k", - arweaveAccountAddress: "JNC6vBhjHY1EPwV3pEeNmrsgFMxH5d38_LHsZ7jful8", - nextPaymentDue: "", - recurringPaymentFrequency: "Monthly", - subscriptionEndDate: "03-08-2025", - subscriptionFeeAmount: 25, - subscriptionName: "Turbo Subscription", - subscriptionStartData: "03-08-2024", - subscriptionStatus: "Expired" - } - ]); - try { const sub = new Subscription(address); const data = await getSubscriptionData(address); @@ -155,7 +108,9 @@ const SubscriptionListItem = ({ return ( <ListItem onClick={() => push(`/subscriptions/${id}`)}> <Content> - <AppIcon color="white"></AppIcon> + <SettingIconWrapper bg="255, 255, 255" customSize="2rem"> + {icon && <SettingImage src={icon} />} + </SettingIconWrapper> <ListDetails> <Title> <h2>{title}</h2> diff --git a/src/subscriptions/index.ts b/src/subscriptions/index.ts index 4187333b6..5c6646b1f 100644 --- a/src/subscriptions/index.ts +++ b/src/subscriptions/index.ts @@ -11,6 +11,29 @@ export async function getSubscriptionData( return subscriptionData; } +export async function addSubscription( + activeAddress: string, + newSubscription: SubscriptionData +) { + // get existing subs + try { + const subscriptions = await getSubscriptionData(activeAddress); + if (subscriptions) { + subscriptions.push(newSubscription); + await ExtensionStorage.set( + `subscriptions_${activeAddress}`, + subscriptions + ); + } else { + await ExtensionStorage.set(`subscriptions_${activeAddress}`, [ + newSubscription + ]); + } + } catch (err) { + console.error("error saving subscription"); + } +} + // get subscription auto withdrawal allowance export async function getAutoAllowance(): Promise<Number> { const subscriptionAllowance = await ExtensionStorage.get<Number>( From 2fcd082d095251f07a1f6d49dcf4f78c857bddc5 Mon Sep 17 00:00:00 2001 From: nicholas ma <nicholas.maa@gmail.com> Date: Wed, 20 Mar 2024 16:10:19 -0700 Subject: [PATCH 14/60] feat: added light mode ui --- src/routes/auth/subscription.tsx | 44 +++++++++++---- .../subscriptions/subscriptionDetails.tsx | 53 +++++++++++++++---- .../popup/subscriptions/subscriptions.tsx | 18 +++++-- 3 files changed, 89 insertions(+), 26 deletions(-) diff --git a/src/routes/auth/subscription.tsx b/src/routes/auth/subscription.tsx index 8017cb150..0b9c95273 100644 --- a/src/routes/auth/subscription.tsx +++ b/src/routes/auth/subscription.tsx @@ -31,6 +31,8 @@ import { SettingIconWrapper, SettingImage } from "~components/dashboard/list/BaseElement"; +import { useTheme } from "~utils/theme"; +import { formatAddress } from "~utils/format"; export default function Subscription() { // connect params @@ -39,7 +41,7 @@ export default function Subscription() { // get auth utils const { closeWindow, cancel } = useAuthUtils("subscription", params?.authID); - + const theme = useTheme(); async function done() { // add subscription to storage try { @@ -87,7 +89,10 @@ export default function Subscription() { <Main> <SubscriptionListItem> <Content> - <SettingIconWrapper bg="255, 255, 255" customSize="2.625rem"> + <SettingIconWrapper + bg={theme === "light" ? "235,235,235" : "255, 255, 255"} + customSize="2.625rem" + > {params.applicationIcon && ( <SettingImage src={params.applicationIcon} /> )} @@ -101,20 +106,27 @@ export default function Subscription() { - - Application address: {params.arweaveAccountAddress} + + Application address:{" "} + {formatAddress(params.arweaveAccountAddress, 8)}
Recurring payment amount

{params.subscriptionFeeAmount} AR

- + Subscription: {params.recurringPaymentFrequency} $625.00 USD - + Next payment:{" "} {dayjs(params.nextPaymentDue).format("MMM DD, YYYY")} @@ -123,10 +135,16 @@ export default function Subscription() {
- + Start - + End @@ -137,12 +155,18 @@ export default function Subscription() {
{/* Toggle */} - Auto-renewal + + Auto-renewal + - + Automatic Payment Threshold diff --git a/src/routes/popup/subscriptions/subscriptionDetails.tsx b/src/routes/popup/subscriptions/subscriptionDetails.tsx index 61aedf9fb..ebf73273a 100644 --- a/src/routes/popup/subscriptions/subscriptionDetails.tsx +++ b/src/routes/popup/subscriptions/subscriptionDetails.tsx @@ -9,19 +9,27 @@ import styled from "styled-components"; import Squircle from "~components/Squircle"; import { getSubscriptionData } from "~subscriptions"; import dayjs from "dayjs"; -import { ButtonV2, Input, InputV2, ListItem } from "@arconnect/components"; +import { + ButtonV2, + Input, + InputV2, + ListItem, + type DisplayTheme +} from "@arconnect/components"; import { AppIcon, Content, Title } from "./subscriptions"; import { SettingIconWrapper, SettingImage } from "~components/dashboard/list/BaseElement"; import { formatAddress } from "~utils/format"; +import { useTheme } from "~utils/theme"; interface Props { id?: string; } export default function SubscriptionDetails({ id }: Props) { + const theme = useTheme(); const [subData, setSubData] = useState(null); useEffect(() => { @@ -50,7 +58,10 @@ export default function SubscriptionDetails({ id }: Props) {
- + {subData.applicationIcon && ( )} @@ -66,7 +77,7 @@ export default function SubscriptionDetails({ id }: Props) { - + Application address:{" "} {formatAddress(subData.arweaveAccountAddress, 8)} @@ -74,13 +85,19 @@ export default function SubscriptionDetails({ id }: Props) {
Recurring payment amount

25 AR

- + Subscription: Yearly $625.00 USD - + Next payment: Mar 8, 2025 @@ -88,10 +105,16 @@ export default function SubscriptionDetails({ id }: Props) {
- + Start - + End @@ -107,11 +130,13 @@ export default function SubscriptionDetails({ id }: Props) { - + Automatic Payment Threshold - {/* */} +
` font-size: ${(props) => props.fontSize || "16px"}; font-weight: 500; - color: ${(props) => props.color || "#a3a3a3"}; + color: ${(props) => + props.color + ? props.color + : props.displayTheme === "dark" + ? "#a3a3a3" + : "#757575"}; span { - color: #ffffff; + color: ${(props) => props.color || "#ffffff"}; } `; diff --git a/src/routes/popup/subscriptions/subscriptions.tsx b/src/routes/popup/subscriptions/subscriptions.tsx index 71a20450e..8b323bbbf 100644 --- a/src/routes/popup/subscriptions/subscriptions.tsx +++ b/src/routes/popup/subscriptions/subscriptions.tsx @@ -14,6 +14,8 @@ import { SettingIconWrapper, SettingImage } from "~components/dashboard/list/BaseElement"; +import { useTheme } from "~utils/theme"; +import type { DisplayTheme } from "@arconnect/components"; export default function Subscriptions() { const [subData, setSubData] = useState(null); @@ -103,16 +105,19 @@ const SubscriptionListItem = ({ default: period = ""; } - + const theme = useTheme(); const [push] = useHistory(); return ( push(`/subscriptions/${id}`)}> - + {icon && } - + <Title displayTheme={theme}> <h2>{title}</h2> <h3> Next payment date:{" "} @@ -149,12 +154,15 @@ const StatusCircle = ({ color }: { color: string }) => ( </svg> ); -export const Title = styled.div` +export const Title = styled.div<{ displayTheme?: DisplayTheme }>` h3 { - color: #a3a3a3; + color: ${(props) => + props.displayTheme === "dark" ? "#a3a3a3" : "#757575"}; span { color: white; + color: ${(props) => + props.displayTheme === "dark" ? "white" : "#191919"}; } } `; From 594eac3793bec7abc60a5be5ecee1f3098e436b7 Mon Sep 17 00:00:00 2001 From: nicholas ma <nicholas.maa@gmail.com> Date: Thu, 21 Mar 2024 17:09:31 -0700 Subject: [PATCH 15/60] fix: added functionality to remove/edit subscriptions --- assets/_locales/en/messages.json | 16 +++ .../subscription/subscription.background.ts | 20 +-- .../subscription/subscription.foreground.ts | 2 +- src/routes/auth/subscription.tsx | 46 +++++-- .../subscriptions/subscriptionDetails.tsx | 127 +++++++++++++++--- .../popup/subscriptions/subscriptions.tsx | 46 ++++--- src/subscriptions/index.ts | 52 ++++++- src/subscriptions/subscription.ts | 2 + 8 files changed, 246 insertions(+), 65 deletions(-) diff --git a/assets/_locales/en/messages.json b/assets/_locales/en/messages.json index 572ef010b..d1676ac47 100644 --- a/assets/_locales/en/messages.json +++ b/assets/_locales/en/messages.json @@ -1721,5 +1721,21 @@ "subscription_description": { "message": "Manage auto withdrawal allowance", "description": "subscription setting description" + }, + "subscription_cancelled": { + "message": "Subscription Cancelled", + "description": "The subscription has been successfully cancelled." + }, + "subscription_cancelled_error": { + "message": "Subscription Cancellation Error", + "description": "There was an error cancelling the subscription. Please try again." + }, + "subscription_deleted": { + "message": "Subscription Deleted", + "description": "The subscription has been successfully deleted." + }, + "subscription_delete_error": { + "message": "Subscription Deletion Error", + "description": "There was an error deleting the subscription. Please try again." } } diff --git a/src/api/modules/subscription/subscription.background.ts b/src/api/modules/subscription/subscription.background.ts index 70470e360..a582bf0ad 100644 --- a/src/api/modules/subscription/subscription.background.ts +++ b/src/api/modules/subscription/subscription.background.ts @@ -26,15 +26,15 @@ const background: ModuleFunction<void> = async ( // check if subsciption exists const subscriptions = await getSubscriptionData(address); - // if ( - // subscriptions.find( - // (subscription) => - // subscription.arweaveAccountAddress === - // subscriptionData.arweaveAccountAddress - // ) - // ) { - // throw new Error("Token already added"); - // } + if ( + subscriptions.find( + (subscription) => + subscription.arweaveAccountAddress === + subscriptionData.arweaveAccountAddress + ) + ) { + throw new Error("Account is already subscribed"); + } await authenticate({ type: "subscription", @@ -42,8 +42,8 @@ const background: ModuleFunction<void> = async ( arweaveAccountAddress: subscriptionData.arweaveAccountAddress, applicationName: subscriptionData.applicationName, subscriptionName: subscriptionData.subscriptionName, + subscriptionManagementUrl: subscriptionData.subscriptionManagementUrl, subscriptionFeeAmount: subscriptionData.subscriptionFeeAmount, - subsciptionStatus: subscriptionData.subscriptionStatus, recurringPaymentFrequency: subscriptionData.recurringPaymentFrequency, nextPaymentDue: subscriptionData.nextPaymentDue, subscriptionStartDate: subscriptionData.subscriptionStartDate, diff --git a/src/api/modules/subscription/subscription.foreground.ts b/src/api/modules/subscription/subscription.foreground.ts index e4c81b2a2..d1e640691 100644 --- a/src/api/modules/subscription/subscription.foreground.ts +++ b/src/api/modules/subscription/subscription.foreground.ts @@ -8,9 +8,9 @@ const foreground: ModuleFunction<SubscriptionData[]> = (data) => { "applicationName", "subscriptionName", "subscriptionFeeAmount", - "subscriptionStatus", "recurringPaymentFrequency", "nextPaymentDue", + "subscriptionManagementUrl", "subscriptionStartDate", "subscriptionEndDate" ]; diff --git a/src/routes/auth/subscription.tsx b/src/routes/auth/subscription.tsx index 0b9c95273..af4104a87 100644 --- a/src/routes/auth/subscription.tsx +++ b/src/routes/auth/subscription.tsx @@ -13,47 +13,64 @@ import { Threshold, ToggleSwitch } from "~routes/popup/subscriptions/subscriptionDetails"; -import { - AppIcon, - Content, - Title -} from "~routes/popup/subscriptions/subscriptions"; +import { Content, Title } from "~routes/popup/subscriptions/subscriptions"; import dayjs from "dayjs"; import { addSubscription } from "~subscriptions"; import { getActiveAddress } from "~wallets"; -import type { - RecurringPaymentFrequency, - SubscriptionData, +import { + type RecurringPaymentFrequency, + type SubscriptionData, SubscriptionStatus } from "~subscriptions/subscription"; -import Squircle from "~components/Squircle"; import { SettingIconWrapper, SettingImage } from "~components/dashboard/list/BaseElement"; import { useTheme } from "~utils/theme"; import { formatAddress } from "~utils/format"; +import { useEffect, useState } from "react"; +import { getPrice } from "~lib/coingecko"; +import useSetting from "~settings/hook"; export default function Subscription() { // connect params const params = useAuthParams(); const { setToast } = useToasts(); + const [currency] = useSetting<string>("currency"); // get auth utils const { closeWindow, cancel } = useAuthUtils("subscription", params?.authID); const theme = useTheme(); + const [price, setPrice] = useState<number | null>(); + + useEffect(() => { + async function fetchArPrice() { + const arPrice = await getPrice("arweave", currency); + if (arPrice) { + setPrice(arPrice * params.subscriptionFeeAmount); + } + } + + fetchArPrice(); + }, [currency, params]); + async function done() { // add subscription to storage try { const { authID, ...subscriptionParams } = params; const activeAddress = await getActiveAddress(); + const paymentHistory = ["testtxn"]; + + // process payment + // append txid to payment history array const subscriptionData: SubscriptionData = { arweaveAccountAddress: subscriptionParams.arweaveAccountAddress, applicationName: subscriptionParams.applicationName, subscriptionName: subscriptionParams.subscriptionName, subscriptionFeeAmount: subscriptionParams.subscriptionFeeAmount, - subscriptionStatus: - subscriptionParams.subsciptionStatus as SubscriptionStatus, + subscriptionManagementUrl: subscriptionParams.subscriptionManagementUrl, + subscriptionStatus: SubscriptionStatus.ACTIVE, + paymentHistory: paymentHistory, recurringPaymentFrequency: subscriptionParams.recurringPaymentFrequency as RecurringPaymentFrequency, nextPaymentDue: new Date(subscriptionParams.nextPaymentDue), @@ -100,8 +117,7 @@ export default function Subscription() { <Title> <h2>{params.applicationName}</h2> <h3 style={{ fontSize: "12px" }}> - Status:{" "} - <span style={{ color: "greenyellow" }}>Pending</span> + Status: <span style={{ color: "#CFB111" }}>Pending</span> </h3> @@ -122,7 +138,9 @@ export default function Subscription() { - $625.00 USD + + ${price ? price.toFixed(2) : "--.--"} {currency} + (null); + const [, goBack] = useHistory(); + const { setToast } = useToasts(); + const [price, setPrice] = useState(); + const [currency] = useSetting("currency"); + const [color, setColor] = useState(""); + + const cancel = async () => { + const address = await getActiveAddress(); + if (subData.subscriptionStatus !== SubscriptionStatus.CANCELED) { + try { + await updateSubscription( + address, + subData.arweaveAccountAddress, + SubscriptionStatus.CANCELED + ); + setToast({ + type: "success", + content: browser.i18n.getMessage("subscription_cancelled"), + duration: 5000 + }); + } catch { + setToast({ + type: "error", + content: browser.i18n.getMessage("subscription_cancelled_error"), + duration: 5000 + }); + } + } else { + try { + await deleteSubscription(address, subData.arweaveAccountAddress); + setToast({ + type: "success", + content: browser.i18n.getMessage("subscription_deleted"), + duration: 5000 + }); + } catch (err) { + setToast({ + type: "error", + content: browser.i18n.getMessage("subcription_delete_error"), + duration: 5000 + }); + } + } + goBack(); + // redirect to subscription page + }; useEffect(() => { async function getSubData() { @@ -43,6 +98,11 @@ export default function SubscriptionDetails({ id }: Props) { (subscription) => subscription.arweaveAccountAddress === id ); setSubData(subscription); + setColor(getColorByStatus(subscription.subscriptionStatus)); + const arPrice = await getPrice("arweave", currency); + if (arPrice) { + setPrice(arPrice * subscription.subscriptionFeeAmount); + } } catch (error) { console.error("Error fetching subscription data:", error); } @@ -52,12 +112,12 @@ export default function SubscriptionDetails({ id }: Props) { return ( <> - + {subData && (
- + {subData.applicationName}

Status:{" "} - - {subData.subscriptionStatus} - + {subData.subscriptionStatus}

- + Application address:{" "}
{formatAddress(subData.arweaveAccountAddress, 8)}
Recurring payment amount
-

25 AR

+

{subData.subscriptionFeeAmount} AR

- Subscription: Yearly + Subscription: {subData.recurringPaymentFrequency} - $625.00 USD + + ${price ? price.toFixed(2) : "--.--"} {currency} + - Mar 8, 2024 - Mar 8, 2025 + + {dayjs(subData.subscriptionStartDate).format("MMM DD, YYYY")} + + + {dayjs(subData.subscriptionEndDate).format("MMM DD, YYYY")} + {/* Toggle */} - Auto-renewal + + Auto-renewal + @@ -133,7 +204,12 @@ export default function SubscriptionDetails({ id }: Props) { - Automatic Payment Threshold + Automatic Payment Threshold{" "} + + + @@ -146,14 +222,23 @@ export default function SubscriptionDetails({ id }: Props) { gap: "8px" }} > - + + browser.tabs.create({ url: subData.subscriptionManagementUrl }) + } + > Manage Subscription await cancel()} > - Cancel Subscription + {subData.subscriptionStatus !== SubscriptionStatus.CANCELED + ? "Cancel Subscription" + : "Remove Subscription"} diff --git a/src/routes/popup/subscriptions/subscriptions.tsx b/src/routes/popup/subscriptions/subscriptions.tsx index 8b323bbbf..478006615 100644 --- a/src/routes/popup/subscriptions/subscriptions.tsx +++ b/src/routes/popup/subscriptions/subscriptions.tsx @@ -1,4 +1,5 @@ import Subscription, { + SubscriptionStatus, type SubscriptionData } from "~subscriptions/subscription"; import HeadV2 from "~components/popup/HeadV2"; @@ -7,7 +8,7 @@ import { getActiveAddress } from "~wallets"; import { ExtensionStorage } from "~utils/storage"; import styled from "styled-components"; import Squircle from "~components/Squircle"; -import { getSubscriptionData } from "~subscriptions"; +import { getSubscriptionData, updateSubscription } from "~subscriptions"; import dayjs from "dayjs"; import { useHistory } from "~utils/hash_router"; import { @@ -25,10 +26,19 @@ export default function Subscriptions() { const address = await getActiveAddress(); try { - const sub = new Subscription(address); const data = await getSubscriptionData(address); - - console.log("data: ", data); + // updates status if it's past due + data.forEach(async (subscription) => { + const nextPaymentDue = new Date(subscription.nextPaymentDue); + const now = new Date(); + if (nextPaymentDue < now) { + await updateSubscription( + address, + subscription.arweaveAccountAddress, + SubscriptionStatus.AWAITING_PAYMENT + ); + } + }); setSubData(data); } catch (error) { console.error("Error fetching subscription data:", error); @@ -74,20 +84,7 @@ const SubscriptionListItem = ({ icon }) => { let period: string = ""; - let color: string = ""; - switch (status) { - case "Active": - color = "#14D110"; - break; - case "Cancelled": - color = "#FF1A1A"; - break; - case "Awaiting payment": - color = "#CFB111"; - break; - default: - color = "#A3A3A3"; - } + const color: string = getColorByStatus(status as SubscriptionStatus); switch (frequency) { case "Weekly": @@ -142,6 +139,19 @@ const SubscriptionListItem = ({ ); }; +export const getColorByStatus = (status: SubscriptionStatus): string => { + switch (status) { + case SubscriptionStatus.ACTIVE: + return "#14D110"; + case SubscriptionStatus.CANCELED: + return "#FF1A1A"; + case SubscriptionStatus.AWAITING_PAYMENT: + return "#CFB111"; + default: + return "#A3A3A3"; + } +}; + const StatusCircle = ({ color }: { color: string }) => ( subscription.arweaveAccountAddress === deleteId + ); + + if (subscriptionIndex !== -1) { + subscriptions.splice(subscriptionIndex, 1); + + await ExtensionStorage.set( + `subscriptions_${activeAddress}`, + subscriptions + ); + } else { + console.log("No subscription found with the given ID"); + } + } catch (err) { + console.log("Error deleting subscription:", err); + } +} + +export async function updateSubscription( + activeAddress: string, + updateId: string, + newStatus: SubscriptionStatus +) { + try { + const subscriptions = await getSubscriptionData(activeAddress); + const subscriptionIndex = subscriptions.findIndex( + (subscription) => subscription.arweaveAccountAddress === updateId + ); + if (subscriptionIndex !== -1) { + subscriptions[subscriptionIndex].subscriptionStatus = newStatus; + + await ExtensionStorage.set( + `subscriptions_${activeAddress}`, + subscriptions + ); + } else { + console.log("No subscription found with the given ID"); + } + } catch (err) { + console.log("err", err); + } +} + export async function addSubscription( activeAddress: string, newSubscription: SubscriptionData diff --git a/src/subscriptions/subscription.ts b/src/subscriptions/subscription.ts index 102a87299..34d3d59a5 100644 --- a/src/subscriptions/subscription.ts +++ b/src/subscriptions/subscription.ts @@ -87,8 +87,10 @@ export interface SubscriptionData { subscriptionStatus: SubscriptionStatus; recurringPaymentFrequency: RecurringPaymentFrequency; nextPaymentDue: Date | string; + subscriptionManagementUrl: string; subscriptionStartDate: Date | string; subscriptionEndDate: Date | string; + paymentHistory?: string[]; } /** From d5363f69cc6c60d07aa3bf82b39fb748b619175c Mon Sep 17 00:00:00 2001 From: nicholas ma Date: Fri, 22 Mar 2024 13:30:57 -0700 Subject: [PATCH 16/60] fix: added no notifications screen --- .../popup/subscriptions/subscriptions.tsx | 28 ++++++++++++++++++- 1 file changed, 27 insertions(+), 1 deletion(-) diff --git a/src/routes/popup/subscriptions/subscriptions.tsx b/src/routes/popup/subscriptions/subscriptions.tsx index 478006615..b91d93178 100644 --- a/src/routes/popup/subscriptions/subscriptions.tsx +++ b/src/routes/popup/subscriptions/subscriptions.tsx @@ -20,6 +20,7 @@ import type { DisplayTheme } from "@arconnect/components"; export default function Subscriptions() { const [subData, setSubData] = useState(null); + const theme = useTheme(); useEffect(() => { async function getSubData() { @@ -67,7 +68,10 @@ export default function Subscriptions() { })} ) : ( -
No notifications found
+ +
No subscriptions yet
+ Your future subscriptions will be available here +
)} ); @@ -185,6 +189,28 @@ const SubscriptionList = styled.div` margin: 0 15px; `; +const NoSubscriptionWrapper = styled.div<{ displayTheme?: DisplayTheme }>` + display: flex; + flex-direction: column; + align-items: center; + justify-content: center; + height: calc(100vh - 65px); + text-align: center; + gap: 10px; + padding: 0 85px; + + div { + font-size: 20px; + font-weight: 500; + } + span { + font-size: 16px; + font-weight: 400; + color: ${(props) => + props.displayTheme === "dark" ? "#a3a3a3" : "#757575"}; + } +`; + const ListItem = styled.div` padding: 10px 0; margin: 0 10px; From aa142814446f1a33eb907b363b24fb71019c4cda Mon Sep 17 00:00:00 2001 From: nicholas ma Date: Fri, 22 Mar 2024 13:34:38 -0700 Subject: [PATCH 17/60] fix: fixed issue with subs being undefined --- src/api/modules/subscription/subscription.background.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/src/api/modules/subscription/subscription.background.ts b/src/api/modules/subscription/subscription.background.ts index a582bf0ad..18a05aa2f 100644 --- a/src/api/modules/subscription/subscription.background.ts +++ b/src/api/modules/subscription/subscription.background.ts @@ -27,6 +27,7 @@ const background: ModuleFunction = async ( const subscriptions = await getSubscriptionData(address); if ( + subscriptions && subscriptions.find( (subscription) => subscription.arweaveAccountAddress === From 2b0b28673cc782425365841f440b3f81ef17b64e Mon Sep 17 00:00:00 2001 From: nicholas ma Date: Mon, 25 Mar 2024 16:10:41 -0700 Subject: [PATCH 18/60] fix: update status for 2 days past due --- .../popup/subscriptions/subscriptions.tsx | 35 ++++++++++++++----- 1 file changed, 27 insertions(+), 8 deletions(-) diff --git a/src/routes/popup/subscriptions/subscriptions.tsx b/src/routes/popup/subscriptions/subscriptions.tsx index b91d93178..0e00d2550 100644 --- a/src/routes/popup/subscriptions/subscriptions.tsx +++ b/src/routes/popup/subscriptions/subscriptions.tsx @@ -30,14 +30,33 @@ export default function Subscriptions() { const data = await getSubscriptionData(address); // updates status if it's past due data.forEach(async (subscription) => { - const nextPaymentDue = new Date(subscription.nextPaymentDue); - const now = new Date(); - if (nextPaymentDue < now) { - await updateSubscription( - address, - subscription.arweaveAccountAddress, + if ( + subscription.subscriptionStatus === SubscriptionStatus.ACTIVE || + subscription.subscriptionStatus === SubscriptionStatus.AWAITING_PAYMENT - ); + ) { + const nextPaymentDue = new Date(subscription.nextPaymentDue); + const now = new Date(); + if (nextPaymentDue < now) { + const daysPastDue = Math.floor( + (now.getTime() - nextPaymentDue.getTime()) / + (1000 * 60 * 60 * 24) + ); + + if (daysPastDue >= 2) { + await updateSubscription( + address, + subscription.arweaveAccountAddress, + SubscriptionStatus.EXPIRED + ); + } else { + await updateSubscription( + address, + subscription.arweaveAccountAddress, + SubscriptionStatus.AWAITING_PAYMENT + ); + } + } } }); setSubData(data); @@ -51,7 +70,7 @@ export default function Subscriptions() { return (
- {subData ? ( + {subData && subData.length > 0 ? ( {subData.map((sub) => { return ( From 130b07bf988697a81455757147b24c95e5fb3340 Mon Sep 17 00:00:00 2001 From: nicholas ma Date: Tue, 26 Mar 2024 16:40:04 -0700 Subject: [PATCH 19/60] fix: added sub payment option to notifications and added analytics --- src/routes/auth/subscription.tsx | 9 +++++ src/routes/popup/notifications.tsx | 38 +++++++++++++++++-- .../subscriptions/subscriptionDetails.tsx | 8 +++- .../popup/subscriptions/subscriptions.tsx | 5 +++ src/utils/analytics.ts | 7 +++- src/utils/notifications.ts | 3 +- 6 files changed, 62 insertions(+), 8 deletions(-) diff --git a/src/routes/auth/subscription.tsx b/src/routes/auth/subscription.tsx index af4104a87..95dc7f46e 100644 --- a/src/routes/auth/subscription.tsx +++ b/src/routes/auth/subscription.tsx @@ -31,6 +31,7 @@ import { formatAddress } from "~utils/format"; import { useEffect, useState } from "react"; import { getPrice } from "~lib/coingecko"; import useSetting from "~settings/hook"; +import { EventType, trackEvent } from "~utils/analytics"; export default function Subscription() { // connect params @@ -83,6 +84,14 @@ export default function Subscription() { await addSubscription(activeAddress, subscriptionData); + // segment + await trackEvent(EventType.SUBSCRIBED, { + applicationName: subscriptionData.applicationName, + arweaveAccountAddress: subscriptionData.arweaveAccountAddress, + recurringPaymentFrequency: subscriptionData.recurringPaymentFrequency, + subscriptionFeeAmount: subscriptionData.subscriptionFeeAmount + }); + // reply to request await replyToAuthRequest("subscription", params.authID); diff --git a/src/routes/popup/notifications.tsx b/src/routes/popup/notifications.tsx index 0951ca6d7..c9207d5d6 100644 --- a/src/routes/popup/notifications.tsx +++ b/src/routes/popup/notifications.tsx @@ -5,7 +5,6 @@ import { fetchTokenByProcessId, mergeAndSortNotifications } from "~utils/notifications"; -import { getTokenInfo } from "~tokens/aoTokens/router"; import aoLogo from "url:/assets/ecosystem/ao-logo.svg"; import { useHistory } from "~utils/hash_router"; import { Loading } from "@arconnect/components"; @@ -17,10 +16,18 @@ import { useAo } from "~tokens/aoTokens/ao"; import styled from "styled-components"; import { balanceToFractioned, formatTokenBalance } from "~tokens/currency"; import type { Transaction } from "~notifications/api"; +import { ExtensionStorage } from "~utils/storage"; +import { getActiveAddress } from "~wallets"; +import { + SubscriptionStatus, + type SubscriptionData +} from "~subscriptions/subscription"; export default function Notifications() { const [notifications, setNotifications] = useState([]); const [formattedTxMsgs, setFormattedTxMsgs] = useState([]); + const [subscriptions, setSubscriptions] = useState([]); + const [loading, setLoading] = useState(false); const [empty, setEmpty] = useState(false); @@ -31,8 +38,20 @@ export default function Notifications() { (async () => { try { setLoading(true); - const n = await fetchNotifications(); - if (!n) { + const address = await getActiveAddress(); + const n = await fetchNotifications(address); + const subs = ( + (await ExtensionStorage.get( + `subscriptions_${address}` + )) || [] + ).filter( + (subscription) => + subscription.subscriptionStatus === + SubscriptionStatus.AWAITING_PAYMENT + ); + + setSubscriptions(subs); + if (!n && subs.length === 0) { setEmpty(true); } const sortedNotifications = mergeAndSortNotifications( @@ -174,6 +193,19 @@ export default function Notifications() { Send transactions to get started. )} + {subscriptions.map((subscription) => ( + + {"Subscription"} + {`${subscription.applicationName} Awaiting Payment`} + + push(`/subscriptions/${subscription.arweaveAccountAddress}`) + } + > + Pay Subscription + + + ))} {!loading && !empty && notifications.map((notification, index) => ( diff --git a/src/routes/popup/subscriptions/subscriptionDetails.tsx b/src/routes/popup/subscriptions/subscriptionDetails.tsx index 519b38204..5ce2e591f 100644 --- a/src/routes/popup/subscriptions/subscriptionDetails.tsx +++ b/src/routes/popup/subscriptions/subscriptionDetails.tsx @@ -32,6 +32,7 @@ import { useTheme } from "~utils/theme"; import { useHistory } from "~utils/hash_router"; import { getPrice } from "~lib/coingecko"; import useSetting from "~settings/hook"; +import { PageType, trackPage } from "~utils/analytics"; interface Props { id?: string; @@ -107,6 +108,10 @@ export default function SubscriptionDetails({ id }: Props) { console.error("Error fetching subscription data:", error); } } + + // segment + trackPage(PageType.SUBSCRIPTIONS_MANAGEMENT); + getSubData(); }, []); @@ -161,7 +166,8 @@ export default function SubscriptionDetails({ id }: Props) { fontSize="14px" color={theme === "light" ? "#191919" : "#ffffff"} > - Next payment: Mar 8, 2025 + Next payment:{" "} + {dayjs(subData.nextPaymentDue).format("MMM DD, YYYY")} diff --git a/src/routes/popup/subscriptions/subscriptions.tsx b/src/routes/popup/subscriptions/subscriptions.tsx index 0e00d2550..f861d2221 100644 --- a/src/routes/popup/subscriptions/subscriptions.tsx +++ b/src/routes/popup/subscriptions/subscriptions.tsx @@ -17,6 +17,7 @@ import { } from "~components/dashboard/list/BaseElement"; import { useTheme } from "~utils/theme"; import type { DisplayTheme } from "@arconnect/components"; +import { PageType, trackPage } from "~utils/analytics"; export default function Subscriptions() { const [subData, setSubData] = useState(null); @@ -64,6 +65,10 @@ export default function Subscriptions() { console.error("Error fetching subscription data:", error); } } + + // Segment + trackPage(PageType.SUBSCRIPTIONS); + getSubData(); }, []); diff --git a/src/utils/analytics.ts b/src/utils/analytics.ts index 05de02b03..56ef3ab42 100644 --- a/src/utils/analytics.ts +++ b/src/utils/analytics.ts @@ -31,7 +31,8 @@ export enum EventType { ADD_CONTACT = "ADD_CONTACT", REMOVE_CONTACT = "REMOVE_CONTACT", SEND_ALLOWANCE_CHANGE = "SEND_ALLOWANCE_CHANGE", - TX_SENT = "TX_SENT" + TX_SENT = "TX_SENT", + SUBSCRIBED = "SUBSCRIBED" } export enum PageType { @@ -53,7 +54,9 @@ export enum PageType { SETUP_CONNECT = "SETUP_CONNECT", ONRAMP_PURCHASE = "ONRAMP_PURCHASE", ONRAMP_CONFIRM_PURCHASE = "ONRAMP_CONFIRM_PURCHASE", - ONRAMP_PURCHASE_PENDING = "ONRAMP_PURCHASE_PENDING" + ONRAMP_PURCHASE_PENDING = "ONRAMP_PURCHASE_PENDING", + SUBSCRIPTIONS = "SUBSCRIPTIONS", + SUBSCRIPTIONS_MANAGEMENT = "SUBSCRIPTIONS_MANAGEMENT" } export const trackPage = async (title: PageType) => { diff --git a/src/utils/notifications.ts b/src/utils/notifications.ts index f415d3f08..fe8283447 100644 --- a/src/utils/notifications.ts +++ b/src/utils/notifications.ts @@ -5,8 +5,7 @@ import type { Transaction } from "~notifications/api"; import type { Token } from "~tokens/token"; import type { TokenInfo } from "~tokens/aoTokens/ao"; -export const fetchNotifications = async () => { - const address = await getActiveAddress(); +export const fetchNotifications = async (address: string) => { const n = await ExtensionStorage.get(`notifications_${address}`); if (!n) return false; const notifications = JSON.parse(n); From 98ff9cd4693dd3bbcaf75a40ce57e8b4845530e1 Mon Sep 17 00:00:00 2001 From: elehmandevelopment Date: Thu, 21 Mar 2024 13:44:59 -0600 Subject: [PATCH 20/60] ci: clean up subscription class --- src/subscriptions/subscription.ts | 56 ------------------------------- 1 file changed, 56 deletions(-) diff --git a/src/subscriptions/subscription.ts b/src/subscriptions/subscription.ts index 34d3d59a5..c39575ebf 100644 --- a/src/subscriptions/subscription.ts +++ b/src/subscriptions/subscription.ts @@ -15,62 +15,6 @@ export default class Subscription { this.applicationUrl = applicationUrl; this.#storage = ExtensionStorage; } - - // handle subscription signup - async signUpSubscription(subscriptionData: SubscriptionData): Promise { - // validate subscription data - const requiredFields: (keyof SubscriptionData)[] = [ - "arweaveAccountAddress", - "applicationName", - "subscriptionName", - "subscriptionFeeAmount", - "subscriptionStatus", - "recurringPaymentFrequency", - "nextPaymentDue", - "subscriptionStartDate", - "subscriptionEndDate" - ]; - for (const field of requiredFields) { - if (!subscriptionData[field]) { - throw new Error(`Missing required field: ${field}`); - } - } - - // retrieve existing subscriptions - let existingSubscriptions: SubscriptionData[] = await getSubscriptionData(); - - // append the new subsciption - existingSubscriptions.push(subscriptionData); - - // store subscription data - await this.#storage.set( - `subscriptions_${this.activeAddress}`, - existingSubscriptions - ); - } - - // TODO loadTokenLogo ? - - // TODO check for subscriptionData from application - // fetch / add subscription data from app - // async fetchAppSubscriptionData(): Promise { - // // check if app is connected - // const hasConnection: boolean = await this.application.isConnected(); - // if (!hasConnection) { - // throw new Error("Not connected to an Arweave Application"); - // } - - // // call application hook() to get app data - // const [appData] = this.application.hook(); - - // // TODO check - // if (appData && appData.subscriptionData) { - // return appData.subscriptionData; - // } else { - // console.error("Error fetching subscription data"); - // return null; - // } - // } } /** From 3397965c309f1b3bbc7420ac3a57bb083ea57f54 Mon Sep 17 00:00:00 2001 From: elehmandevelopment Date: Fri, 22 Mar 2024 19:07:11 -0600 Subject: [PATCH 21/60] ci: handle subscriptions --- src/background.ts | 6 ++- src/subscriptions/api.ts | 24 +++++++++++ src/subscriptions/payments.ts | 79 +++++++++++++++++++++++++++++++++++ 3 files changed, 108 insertions(+), 1 deletion(-) create mode 100644 src/subscriptions/api.ts diff --git a/src/background.ts b/src/background.ts index d1a8e3740..87c891a91 100644 --- a/src/background.ts +++ b/src/background.ts @@ -14,6 +14,7 @@ import { onInstalled } from "~utils/runtime"; import browser from "webextension-polyfill"; import { syncLabels } from "~wallets"; import { trackBalance } from "~utils/analytics"; +import { subscriptionsHandler } from "~subscriptions/api"; // watch for API calls onMessage("api_call", handleApiCalls); @@ -28,9 +29,12 @@ browser.tabs.onActivated.addListener(({ tabId }) => handleTabUpdate(tabId)); // handle fee alarm (send fees asyncronously) browser.alarms.onAlarm.addListener(handleFeeAlarm); -// handle norifications +// handle notifications browser.alarms.onAlarm.addListener(notificationsHandler); +// handle subscriptions +// browser.alarms.onAlarm.addListener(subscriptionsHandler) + browser.alarms.onAlarm.addListener(trackBalance); // handle alarm for updating gateways diff --git a/src/subscriptions/api.ts b/src/subscriptions/api.ts new file mode 100644 index 000000000..1b0403f0d --- /dev/null +++ b/src/subscriptions/api.ts @@ -0,0 +1,24 @@ +import type { SubscriptionData } from "./subscription"; +import { handleSubscriptionPayment } from "./payments"; +import { getSubscriptionData } from "~subscriptions"; +import { ExtensionStorage } from "~utils/storage"; +import { getActiveAddress } from "~wallets"; + +/** + * + fetch subscription auto withdrawal allowance < + * + process dates of subscriptions + * + map through subsciptions + * + activate payments under withdrawal allowance limit + * + notify user of manual payments + */ +export async function subscriptionsHandler() { + const activeAddress = await getActiveAddress(); + const subscriptionData: SubscriptionData[] = await getSubscriptionData( + activeAddress + ); + + // Iterate through subscription data to find payments due + for (const subsciption of subscriptionData) { + await handleSubscriptionPayment(subsciption); + } +} diff --git a/src/subscriptions/payments.ts b/src/subscriptions/payments.ts index e69de29bb..6e1fb48ce 100644 --- a/src/subscriptions/payments.ts +++ b/src/subscriptions/payments.ts @@ -0,0 +1,79 @@ +import type { SubscriptionData } from "./subscription"; +import { ExtensionStorage } from "~utils/storage"; +import { getActiveAddress } from "~wallets"; + +export async function handleSubscriptionPayment(data: SubscriptionData[]) { + const address = await getActiveAddress(); + const autoAllowance: number = await ExtensionStorage.get( + "setting_subscription_allowance" + ); + + // @ts-ignore + const subscriptionFee = data.subscriptionFeeAmount; + + if (subscriptionFee >= autoAllowance) { + const currentDate = new Date(); + // @ts-ignore + const paymentDueDate = new Date(data.nextPaymentDue); + const daysUntilDue = Math.floor( + (paymentDueDate.getTime() - currentDate.getTime()) / (1000 * 3600 * 24) + ); + + let scheduleMessage: string; + + if (paymentDueDate <= currentDate) { + scheduleMessage = `Payment worth ${subscriptionFee} is due now`; + } else if (daysUntilDue === 2) { + scheduleMessage = `Payment worth ${subscriptionFee} is due in 2 days`; + } else if (daysUntilDue === 1) { + scheduleMessage = `Payment worth ${subscriptionFee} is due in 1 day`; + } else { + return false; + } + + const subscriptionNotification = { + type: "Subscription", + // @ts-ignore + message: scheduleMessage, + date: currentDate + }; + + let notificationsObject: { [key: string]: any } = {}; + const existingNotifications = await ExtensionStorage.get( + `notifications_${address}` + ); + if (existingNotifications) { + notificationsObject = JSON.parse(existingNotifications); + } + + // Ensure that subscriptionNotifications type exists + if (!notificationsObject.subscriptionNotifications) { + notificationsObject.subscriptionNotifications = []; + } + + // Check if the subscriptionNotification already exists in the array + const exists = notificationsObject.subscriptionNotifications.some( + (notification: any) => { + return ( + JSON.stringify(notification) === + JSON.stringify(subscriptionNotification) + ); + } + ); + + if (!exists) { + // Append the new notification to the existing array + notificationsObject.subscriptionNotifications.push( + subscriptionNotification + ); + + // Save the updated notifications object back to storage + await ExtensionStorage.set( + `notifications_${address}`, + JSON.stringify(notificationsObject) + ); + } + } else { + // Initiate automatic subscription payment + } +} From a09f7c50be3bfcbe62a2c0d769a4a6f29e2d55c2 Mon Sep 17 00:00:00 2001 From: elehmandevelopment Date: Sat, 23 Mar 2024 09:40:43 -0600 Subject: [PATCH 22/60] ci: handle subscription payments --- src/subscriptions/payments.ts | 53 ++++++++++++++++++++++++++++++++++- 1 file changed, 52 insertions(+), 1 deletion(-) diff --git a/src/subscriptions/payments.ts b/src/subscriptions/payments.ts index 6e1fb48ce..022cd7fa5 100644 --- a/src/subscriptions/payments.ts +++ b/src/subscriptions/payments.ts @@ -1,6 +1,15 @@ +import { + ExtensionStorage, + TRANSFER_TX_STORAGE, + type RawStoredTransfer, + TempTransactionStorage +} from "~utils/storage"; import type { SubscriptionData } from "./subscription"; -import { ExtensionStorage } from "~utils/storage"; +import { findGateway } from "~gateways/wayfinder"; +import SendAuth from "~routes/popup/send/auth"; import { getActiveAddress } from "~wallets"; +import browser from "webextension-polyfill"; +import Arweave from "arweave"; export async function handleSubscriptionPayment(data: SubscriptionData[]) { const address = await getActiveAddress(); @@ -12,6 +21,7 @@ export async function handleSubscriptionPayment(data: SubscriptionData[]) { const subscriptionFee = data.subscriptionFeeAmount; if (subscriptionFee >= autoAllowance) { + // Subscription fee exceeds allowance, handle notification logic const currentDate = new Date(); // @ts-ignore const paymentDueDate = new Date(data.nextPaymentDue); @@ -74,6 +84,47 @@ export async function handleSubscriptionPayment(data: SubscriptionData[]) { ); } } else { + // Subscription fee is less than allowance amount // Initiate automatic subscription payment + async function send(target: string) { + try { + // create tx + const gateway = await findGateway({}); + const arweave = new Arweave(gateway); + + // save tx json into session + // to be signed and submitted + const storedTx: Partial = { + type: "native", + gateway: gateway + }; + + // @ts-ignore + const paymentQuantity = data.subscriptionFeeAmount; + + const tx = await arweave.createTransaction({ + target, + quantity: paymentQuantity.toString(), + data: "ArConnect Subscription Payment" + }); + + tx.addTag("Content-Type", "text/plain"); + tx.addTag("Type", "Transfer"); + tx.addTag("Client", "ArConnect"); + tx.addTag("Client-Version", browser.runtime.getManifest().version); + + storedTx.transaction = tx.toJSON(); + + await TempTransactionStorage.set(TRANSFER_TX_STORAGE, storedTx); + } catch (error) { + console.log("Error sending automated transaction"); + } + } + + try { + // @ts-ignore + const recipientAddress = data.arweaveAccountAddress; + send(recipientAddress); + } catch (error) {} } } From 6a0addad946c1d7076557478e805c7baeed64c59 Mon Sep 17 00:00:00 2001 From: elehmandevelopment Date: Sat, 23 Mar 2024 10:13:04 -0600 Subject: [PATCH 23/60] ci: subscription payments --- src/subscriptions/payments.ts | 126 +++++++++++++++++++++++++++++++++- 1 file changed, 123 insertions(+), 3 deletions(-) diff --git a/src/subscriptions/payments.ts b/src/subscriptions/payments.ts index 022cd7fa5..abab24524 100644 --- a/src/subscriptions/payments.ts +++ b/src/subscriptions/payments.ts @@ -4,12 +4,19 @@ import { type RawStoredTransfer, TempTransactionStorage } from "~utils/storage"; +import { + defaultGateway, + fallbackGateway, + type Gateway +} from "~gateways/gateway"; +import type Transaction from "arweave/web/lib/transaction"; +import { EventType, trackEvent } from "~utils/analytics"; import type { SubscriptionData } from "./subscription"; import { findGateway } from "~gateways/wayfinder"; -import SendAuth from "~routes/popup/send/auth"; -import { getActiveAddress } from "~wallets"; +import { getActiveAddress, getActiveKeyfile } from "~wallets"; import browser from "webextension-polyfill"; import Arweave from "arweave"; +import { freeDecryptedWallet } from "~wallets/encryption"; export async function handleSubscriptionPayment(data: SubscriptionData[]) { const address = await getActiveAddress(); @@ -125,6 +132,119 @@ export async function handleSubscriptionPayment(data: SubscriptionData[]) { // @ts-ignore const recipientAddress = data.arweaveAccountAddress; send(recipientAddress); - } catch (error) {} + + // get transaction from session storage + async function getTransaction() { + // get raw tx + const raw = await TempTransactionStorage.get( + TRANSFER_TX_STORAGE + ); + const gateway = raw?.gateway || defaultGateway; + + if (!raw) return undefined; + + // gateway from raw tx + const arweave = new Arweave(gateway); + + return { + type: raw.type, + gateway, + transaction: arweave.transactions.fromRaw(raw.transaction) + }; + } + + async function submitTx( + transaction: Transaction, + arweave: Arweave, + type: "native" + ) { + // cache tx + localStorage.setItem( + "latest_tx", + JSON.stringify({ + quantity: { ar: arweave.ar.winstonToAr(transaction.quantity) }, + owner: { + address: await arweave.wallets.ownerToAddress(transaction.owner) + }, + recipient: transaction.target, + fee: { ar: transaction.reward }, + data: { size: transaction.data_size }, + // @ts-expect-error + tags: (transaction.get("tags") as Tag[]).map((tag) => ({ + name: tag.get("name", { string: true, decode: true }), + value: tag.get("value", { string: true, decode: true }) + })) + }) + ); + + const timeoutPromise = new Promise((_, reject) => { + setTimeout(() => { + reject( + new Error("Timeout: Posting to Arweave took more than 10 seconds") + ); + }, 10000); + }); + + try { + await Promise.race([ + arweave.transactions.post(transaction), + timeoutPromise + ]); + } catch (err) { + // SEGMENT + await trackEvent(EventType.TRANSACTION_INCOMPLETE, {}); + throw new Error("Error posting subscription tx to Arweave"); + } + } + + async function sendLocal() { + // Retrieve latest tx amount details from localStorage + const latestTxQty = await ExtensionStorage.get("last_send_qty"); + if (!latestTxQty) { + throw new Error("Error: no send quantity found"); + } + + const transactionAmount = Number(latestTxQty); + + // get tx and gateway + let { type, gateway, transaction } = await getTransaction(); + const arweave = new Arweave(gateway); + + //! SEE HERE + const decryptedWallet = await getActiveKeyfile(); + + // Process transaction without user signing + try { + // Decrypt wallet without user signing + const keyfile = decryptedWallet.keyfile; + + // Set owner + transaction.setOwner(keyfile.n); + + // Sign the transaction + await arweave.transactions.sign(transaction, keyfile); + + try { + // Post the transaction + await submitTx(transaction, arweave, type); + } catch (e) { + // FALLBACK IF ISP BLOCKS ARWEAVE.NET OR IF WAYFINDER FAILS + gateway = fallbackGateway; + const fallbackArweave = new Arweave(gateway); + await fallbackArweave.transactions.sign(transaction, keyfile); + await submitTx(transaction, fallbackArweave, type); + await trackEvent(EventType.FALLBACK, {}); + } + + // remove wallet from memory + freeDecryptedWallet(keyfile); + } catch (e) { + console.log(e, "failed subscription tx"); + } + } + } catch (error) { + console.log(error); + throw new Error("Error making auto subscription payment"); + } } } From 0fc748f36438d9b09759c20a92a158d4ea02bbb8 Mon Sep 17 00:00:00 2001 From: elehmandevelopment Date: Sun, 24 Mar 2024 21:56:09 -0600 Subject: [PATCH 24/60] ci: handle fee > max balance --- src/background.ts | 2 +- src/subscriptions/payments.ts | 54 ++++++++++++++++++++++++++--------- 2 files changed, 41 insertions(+), 15 deletions(-) diff --git a/src/background.ts b/src/background.ts index 87c891a91..088a1972c 100644 --- a/src/background.ts +++ b/src/background.ts @@ -33,7 +33,7 @@ browser.alarms.onAlarm.addListener(handleFeeAlarm); browser.alarms.onAlarm.addListener(notificationsHandler); // handle subscriptions -// browser.alarms.onAlarm.addListener(subscriptionsHandler) +browser.alarms.onAlarm.addListener(subscriptionsHandler); browser.alarms.onAlarm.addListener(trackBalance); diff --git a/src/subscriptions/payments.ts b/src/subscriptions/payments.ts index abab24524..94a6f14ab 100644 --- a/src/subscriptions/payments.ts +++ b/src/subscriptions/payments.ts @@ -17,27 +17,31 @@ import { getActiveAddress, getActiveKeyfile } from "~wallets"; import browser from "webextension-polyfill"; import Arweave from "arweave"; import { freeDecryptedWallet } from "~wallets/encryption"; +import { useBalance } from "~wallets/hooks"; export async function handleSubscriptionPayment(data: SubscriptionData[]) { const address = await getActiveAddress(); + const balance = useBalance(); const autoAllowance: number = await ExtensionStorage.get( "setting_subscription_allowance" ); - // @ts-ignore const subscriptionFee = data.subscriptionFeeAmount; + const currentDate = new Date(); + // @ts-ignore + const paymentDueDate = new Date(data.nextPaymentDue); + const daysUntilDue = Math.floor( + (paymentDueDate.getTime() - currentDate.getTime()) / (1000 * 3600 * 24) + ); + + let scheduleMessage: string; + let notificationsObject: { [key: string]: any } = {}; + const existingNotifications = await ExtensionStorage.get( + `notifications_${address}` + ); if (subscriptionFee >= autoAllowance) { // Subscription fee exceeds allowance, handle notification logic - const currentDate = new Date(); - // @ts-ignore - const paymentDueDate = new Date(data.nextPaymentDue); - const daysUntilDue = Math.floor( - (paymentDueDate.getTime() - currentDate.getTime()) / (1000 * 3600 * 24) - ); - - let scheduleMessage: string; - if (paymentDueDate <= currentDate) { scheduleMessage = `Payment worth ${subscriptionFee} is due now`; } else if (daysUntilDue === 2) { @@ -55,10 +59,6 @@ export async function handleSubscriptionPayment(data: SubscriptionData[]) { date: currentDate }; - let notificationsObject: { [key: string]: any } = {}; - const existingNotifications = await ExtensionStorage.get( - `notifications_${address}` - ); if (existingNotifications) { notificationsObject = JSON.parse(existingNotifications); } @@ -91,6 +91,25 @@ export async function handleSubscriptionPayment(data: SubscriptionData[]) { ); } } else { + // Check if the subscription fee exceeds the user's balance + if (subscriptionFee > balance) { + // CHATGPT: Add new notification message to the subscriptionNotifications array + scheduleMessage = `Automatic subsciption payment failed.`; + notificationsObject.subscriptionNotifications.push({ + type: "Subscription", + message: scheduleMessage, + date: currentDate + }); + + // Save the updated notifications object back to storage + await ExtensionStorage.set( + `notifications_${address}`, + JSON.stringify(notificationsObject) + ); + + throw new Error("Subscription fee amount exceeds wallet balance"); + } + // Subscription fee is less than allowance amount // Initiate automatic subscription payment async function send(target: string) { @@ -197,6 +216,11 @@ export async function handleSubscriptionPayment(data: SubscriptionData[]) { } } + /** + * Local wallet functionalities + */ + + // local wallet sign & send async function sendLocal() { // Retrieve latest tx amount details from localStorage const latestTxQty = await ExtensionStorage.get("last_send_qty"); @@ -242,6 +266,8 @@ export async function handleSubscriptionPayment(data: SubscriptionData[]) { console.log(e, "failed subscription tx"); } } + + sendLocal(); } catch (error) { console.log(error); throw new Error("Error making auto subscription payment"); From 3ce8c0ed69b4d3bcb7e702d67df7f34cd472318f Mon Sep 17 00:00:00 2001 From: elehmandevelopment Date: Mon, 25 Mar 2024 16:55:05 -0600 Subject: [PATCH 25/60] ci: subscription payments --- src/subscriptions/payments.ts | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/src/subscriptions/payments.ts b/src/subscriptions/payments.ts index 94a6f14ab..300d4d4fb 100644 --- a/src/subscriptions/payments.ts +++ b/src/subscriptions/payments.ts @@ -237,11 +237,11 @@ export async function handleSubscriptionPayment(data: SubscriptionData[]) { //! SEE HERE const decryptedWallet = await getActiveKeyfile(); + // Decrypt wallet & sign for user + const keyfile = decryptedWallet.keyfile; + // Process transaction without user signing try { - // Decrypt wallet without user signing - const keyfile = decryptedWallet.keyfile; - // Set owner transaction.setOwner(keyfile.n); @@ -264,11 +264,17 @@ export async function handleSubscriptionPayment(data: SubscriptionData[]) { freeDecryptedWallet(keyfile); } catch (e) { console.log(e, "failed subscription tx"); + freeDecryptedWallet(keyfile); } } sendLocal(); } catch (error) { + const decryptedWallet = await getActiveKeyfile(); + + // Decrypt wallet & sign for user + const keyfile = decryptedWallet.keyfile; + freeDecryptedWallet(keyfile); console.log(error); throw new Error("Error making auto subscription payment"); } From 3230b244051fd9511d3c10f7662157a84cefd9ee Mon Sep 17 00:00:00 2001 From: elehmandevelopment Date: Tue, 26 Mar 2024 17:46:34 -0600 Subject: [PATCH 26/60] feat: subscription payment manual transaction page --- src/background.ts | 2 +- src/popup.tsx | 5 ++ src/routes/popup/send/confirm.tsx | 9 ++- .../subscriptions/subscriptionDetails.tsx | 77 +++++++++++++++++-- .../subscriptions/subscriptionPayment.tsx | 13 ++++ 5 files changed, 95 insertions(+), 11 deletions(-) create mode 100644 src/routes/popup/subscriptions/subscriptionPayment.tsx diff --git a/src/background.ts b/src/background.ts index 088a1972c..6dc3d3bc8 100644 --- a/src/background.ts +++ b/src/background.ts @@ -33,7 +33,7 @@ browser.alarms.onAlarm.addListener(handleFeeAlarm); browser.alarms.onAlarm.addListener(notificationsHandler); // handle subscriptions -browser.alarms.onAlarm.addListener(subscriptionsHandler); +// browser.alarms.onAlarm.addListener(subscriptionsHandler); browser.alarms.onAlarm.addListener(trackBalance); diff --git a/src/popup.tsx b/src/popup.tsx index 3b242e934..2aa61e9b6 100644 --- a/src/popup.tsx +++ b/src/popup.tsx @@ -31,6 +31,7 @@ import Confirm from "~routes/popup/send/confirm"; import { NavigationBar } from "~components/popup/Navigation"; import MessageNotification from "~routes/popup/notification/[id]"; import SubscriptionDetails from "~routes/popup/subscriptions/subscriptionDetails"; +import SubscriptionPayment from "~routes/popup/subscriptions/subscriptionPayment"; export default function Popup() { const theme = useTheme(); @@ -79,6 +80,10 @@ export default function Popup() { )} + {(params: { id: string }) => ( diff --git a/src/routes/popup/send/confirm.tsx b/src/routes/popup/send/confirm.tsx index eb0cd93f5..6cbbda48a 100644 --- a/src/routes/popup/send/confirm.tsx +++ b/src/routes/popup/send/confirm.tsx @@ -56,8 +56,9 @@ import Progress from "~components/Progress"; interface Props { tokenID: string; - qty: number; + qty?: number; recipient?: string; + subscription?: boolean; } function formatNumber(amount: number, decimalPlaces: number = 2): string { @@ -69,7 +70,7 @@ function formatNumber(amount: number, decimalPlaces: number = 2): string { return rounded; } -export default function Confirm({ tokenID, qty }: Props) { +export default function Confirm({ tokenID, qty, subscription }: Props) { // TODO: Need to get Token information const [token, setToken] = useState(); const [amount, setAmount] = useState(""); @@ -603,7 +604,9 @@ export default function Confirm({ tokenID, qty }: Props) { return ( - + diff --git a/src/routes/popup/subscriptions/subscriptionDetails.tsx b/src/routes/popup/subscriptions/subscriptionDetails.tsx index 5ce2e591f..4d1817cb3 100644 --- a/src/routes/popup/subscriptions/subscriptionDetails.tsx +++ b/src/routes/popup/subscriptions/subscriptionDetails.tsx @@ -23,6 +23,7 @@ import { useToasts } from "@arconnect/components"; import { AppIcon, Content, Title, getColorByStatus } from "./subscriptions"; +import { CreditCardUpload } from "@untitled-ui/icons-react"; import { SettingIconWrapper, SettingImage @@ -33,6 +34,11 @@ import { useHistory } from "~utils/hash_router"; import { getPrice } from "~lib/coingecko"; import useSetting from "~settings/hook"; import { PageType, trackPage } from "~utils/analytics"; +import { formatTokenBalance, fractionedToBalance } from "~tokens/currency"; +import { arPlaceholder } from "../send"; +import { TempTransactionStorage } from "~utils/storage"; +import { findGateway } from "~gateways/wayfinder"; +import Arweave from "arweave"; interface Props { id?: string; @@ -41,11 +47,12 @@ interface Props { export default function SubscriptionDetails({ id }: Props) { const theme = useTheme(); const [subData, setSubData] = useState(null); - const [, goBack] = useHistory(); + const [push, goBack] = useHistory(); const { setToast } = useToasts(); const [price, setPrice] = useState(); const [currency] = useSetting("currency"); const [color, setColor] = useState(""); + // network fee const cancel = async () => { const address = await getActiveAddress(); @@ -115,6 +122,35 @@ export default function SubscriptionDetails({ id }: Props) { getSubData(); }, []); + // prepare tx to send + async function send() { + const byte = new TextEncoder().encode( + `Subscription payment to ${subData.applicationName}` + ).length; + + // get network fee + const gateway = await findGateway({}); + const arweave = new Arweave(gateway); + const txPrice = await arweave.transactions.getPrice(byte, "dummyTarget"); + + const networkFee = arweave.ar.winstonToAr(txPrice); + + await TempTransactionStorage.set("send", { + networkFee, + qty: formatTokenBalance(subData.subscriptionFeeAmount), + token: arPlaceholder, + recipient: { address: subData.arweaveAccountAddress }, + estimatedFiat: price, //! HERE + estimatedNetworkFee: formatTokenBalance(networkFee), + message: `Subscription payment to ${subData.applicationName}`, + qtyMode: "token", + isAo: false + }); + + // continue to confirmation page + push("/subscriptions/payment"); + } + return ( <> @@ -131,12 +167,22 @@ export default function SubscriptionDetails({ id }: Props) { )} - - <h2>{subData.applicationName}</h2> - <h3 style={{ fontSize: "12px" }}> - Status:{" "} - <span style={{ color }}>{subData.subscriptionStatus}</span> - </h3> + <Title style={{ display: "flex", alignItems: "flex-end" }}> + <div> + <h2>{subData.applicationName}</h2> + <h3 style={{ fontSize: "12px", display: "flex" }}> + Status:{" "} + <span style={{ color }}> + {subData.subscriptionStatus} + </span> + <PayNowButton onClick={() => send()}> + Pay now <PaymentIcon /> + </PayNowButton> + </h3> + </div> + {/* {subData.subscriptionStatus === SubscriptionStatus.AWAITING_PAYMENT && ( + + )} */} @@ -297,6 +343,23 @@ export const PaymentDetails = styled.div` } `; +export const PayNowButton = styled.div` + display: flex; + align-items: flex-end; + line-height: 16px; + font-size: 12px; + color: ${(props) => props.theme.primary}; + margin-left: 12px; + gap: 4px; + cursor: pointer; +`; + +export const PaymentIcon = styled(CreditCardUpload)` + width: 16px; + height: 16px; + color: ${(props) => props.theme.primary}; +`; + export const Main = styled.div` display: flex; flex-direction: column; diff --git a/src/routes/popup/subscriptions/subscriptionPayment.tsx b/src/routes/popup/subscriptions/subscriptionPayment.tsx new file mode 100644 index 000000000..ad6960836 --- /dev/null +++ b/src/routes/popup/subscriptions/subscriptionPayment.tsx @@ -0,0 +1,13 @@ +import Confirm from "../send/confirm"; + +export default function SubscriptionPayment() { + return ( + <> + + + ); +} + +interface Props { + recipient: string; +} From eb33b2f42b85abc587b8a0ee389fc837d32b08c1 Mon Sep 17 00:00:00 2001 From: elehmandevelopment Date: Tue, 26 Mar 2024 18:01:56 -0600 Subject: [PATCH 27/60] fix: send qty --- src/routes/popup/subscriptions/subscriptionDetails.tsx | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/routes/popup/subscriptions/subscriptionDetails.tsx b/src/routes/popup/subscriptions/subscriptionDetails.tsx index 4d1817cb3..47dde779e 100644 --- a/src/routes/popup/subscriptions/subscriptionDetails.tsx +++ b/src/routes/popup/subscriptions/subscriptionDetails.tsx @@ -36,7 +36,7 @@ import useSetting from "~settings/hook"; import { PageType, trackPage } from "~utils/analytics"; import { formatTokenBalance, fractionedToBalance } from "~tokens/currency"; import { arPlaceholder } from "../send"; -import { TempTransactionStorage } from "~utils/storage"; +import { ExtensionStorage, TempTransactionStorage } from "~utils/storage"; import { findGateway } from "~gateways/wayfinder"; import Arweave from "arweave"; @@ -135,6 +135,11 @@ export default function SubscriptionDetails({ id }: Props) { const networkFee = arweave.ar.winstonToAr(txPrice); + await ExtensionStorage.set( + "last_send_qty", + formatTokenBalance(subData.subscriptionFeeAmount) + ); + await TempTransactionStorage.set("send", { networkFee, qty: formatTokenBalance(subData.subscriptionFeeAmount), From 5731a0e0bf3915f7deb95b47b635781dc2755daa Mon Sep 17 00:00:00 2001 From: elehmandevelopment Date: Tue, 26 Mar 2024 19:27:34 -0600 Subject: [PATCH 28/60] ci: update status on pay now --- src/routes/popup/send/confirm.tsx | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/routes/popup/send/confirm.tsx b/src/routes/popup/send/confirm.tsx index 6cbbda48a..286f84410 100644 --- a/src/routes/popup/send/confirm.tsx +++ b/src/routes/popup/send/confirm.tsx @@ -53,6 +53,8 @@ import { UR } from "@ngraveio/bc-ur"; import { decodeSignature, transactionToUR } from "~wallets/hardware/keystone"; import { useScanner } from "@arconnect/keystone-sdk"; import Progress from "~components/Progress"; +import { updateSubscription } from "~subscriptions"; +import { SubscriptionStatus } from "~subscriptions/subscription"; interface Props { tokenID: string; @@ -363,6 +365,12 @@ export default function Confirm({ tokenID, qty, subscription }: Props) { try { await submitTx(convertedTransaction, arweave, type); + subscription && + (await updateSubscription( + activeAddress, + recipient.address, + SubscriptionStatus.ACTIVE + )); } catch (e) { if (!uToken) { gateway = fallbackGateway; From 28b9b342192d8fdb05f57889a67760276c998ea1 Mon Sep 17 00:00:00 2001 From: elehmandevelopment Date: Tue, 26 Mar 2024 20:31:21 -0600 Subject: [PATCH 29/60] ci: handle subscription nextPaymentDue --- src/background.ts | 2 +- src/subscriptions/api.ts | 2 +- src/subscriptions/index.ts | 63 +++++++++++++++++++++++++++++++++----- 3 files changed, 57 insertions(+), 10 deletions(-) diff --git a/src/background.ts b/src/background.ts index 6dc3d3bc8..4010246a9 100644 --- a/src/background.ts +++ b/src/background.ts @@ -27,7 +27,7 @@ browser.tabs.onUpdated.addListener((tabId) => handleTabUpdate(tabId)); browser.tabs.onActivated.addListener(({ tabId }) => handleTabUpdate(tabId)); // handle fee alarm (send fees asyncronously) -browser.alarms.onAlarm.addListener(handleFeeAlarm); +// browser.alarms.onAlarm.addListener(handleFeeAlarm); // handle notifications browser.alarms.onAlarm.addListener(notificationsHandler); diff --git a/src/subscriptions/api.ts b/src/subscriptions/api.ts index 1b0403f0d..9a1d09c83 100644 --- a/src/subscriptions/api.ts +++ b/src/subscriptions/api.ts @@ -5,7 +5,7 @@ import { ExtensionStorage } from "~utils/storage"; import { getActiveAddress } from "~wallets"; /** - * + fetch subscription auto withdrawal allowance < + * + fetch subscription auto withdrawal allowance * + process dates of subscriptions * + map through subsciptions * + activate payments under withdrawal allowance limit diff --git a/src/subscriptions/index.ts b/src/subscriptions/index.ts index 38391ad56..64ae4bffd 100644 --- a/src/subscriptions/index.ts +++ b/src/subscriptions/index.ts @@ -1,14 +1,23 @@ -import type { SubscriptionData, SubscriptionStatus } from "./subscription"; +import { + RecurringPaymentFrequency, + type SubscriptionData, + type SubscriptionStatus +} from "./subscription"; import { ExtensionStorage } from "~utils/storage"; // get subscription data from storage export async function getSubscriptionData( activeAddress: string ): Promise { - const subscriptionData = await ExtensionStorage.get( - `subscriptions_${activeAddress}` - ); - return subscriptionData; + try { + const subscriptionData = await ExtensionStorage.get( + `subscriptions_${activeAddress}` + ); + return subscriptionData || []; + } catch (err) { + console.log("Error getting subscription data:", err); + return []; + } } export async function deleteSubscription( @@ -36,10 +45,40 @@ export async function deleteSubscription( } } +export function calculateNextPaymentDate( + currentNextPaymentDue: Date | string, + recurringPaymentFrequency: RecurringPaymentFrequency +) { + const currentDate = + typeof currentNextPaymentDue === "string" + ? new Date(currentNextPaymentDue) + : currentNextPaymentDue; + + switch (recurringPaymentFrequency) { + case RecurringPaymentFrequency.ANNUALLY: + currentDate.setFullYear(currentDate.getFullYear() + 1); + break; + case RecurringPaymentFrequency.QUARTERLY: + currentDate.setMonth(currentDate.getMonth() + 3); + break; + case RecurringPaymentFrequency.MONTHLY: + currentDate.setMonth(currentDate.getMonth() + 1); + break; + case RecurringPaymentFrequency.WEEKLY: + currentDate.setDate(currentDate.getDate() + 7); + break; + default: + console.error("Invalid recurring payment frequency"); + } + + return currentDate; +} + export async function updateSubscription( activeAddress: string, updateId: string, - newStatus: SubscriptionStatus + newStatus: SubscriptionStatus, + nextPaymentDue?: Date | string ) { try { const subscriptions = await getSubscriptionData(activeAddress); @@ -47,6 +86,14 @@ export async function updateSubscription( (subscription) => subscription.arweaveAccountAddress === updateId ); if (subscriptionIndex !== -1) { + const recurringPaymentFrequency = + subscriptions[subscriptionIndex].recurringPaymentFrequency; + if (nextPaymentDue !== undefined) { + // update nextPaymentDue + subscriptions[subscriptionIndex].nextPaymentDue = + calculateNextPaymentDate(nextPaymentDue, recurringPaymentFrequency); + } + // update status subscriptions[subscriptionIndex].subscriptionStatus = newStatus; await ExtensionStorage.set( @@ -85,8 +132,8 @@ export async function addSubscription( } // get subscription auto withdrawal allowance -export async function getAutoAllowance(): Promise { - const subscriptionAllowance = await ExtensionStorage.get( +export async function getAutoAllowance(): Promise { + const subscriptionAllowance = await ExtensionStorage.get( "setting_subscription_allowance" ); return subscriptionAllowance; From 89884fc5311469cfa97dc40ecc1a842c3de6601c Mon Sep 17 00:00:00 2001 From: elehmandevelopment Date: Wed, 27 Mar 2024 12:13:43 -0600 Subject: [PATCH 30/60] ci: subscription payments --- src/routes/auth/subscription.tsx | 2 + .../subscriptions/subscriptionPayment.tsx | 4 - src/subscriptions/api.ts | 2 + src/subscriptions/payments.ts | 139 ++++-------------- 4 files changed, 33 insertions(+), 114 deletions(-) diff --git a/src/routes/auth/subscription.tsx b/src/routes/auth/subscription.tsx index 95dc7f46e..fa1a7988e 100644 --- a/src/routes/auth/subscription.tsx +++ b/src/routes/auth/subscription.tsx @@ -55,6 +55,8 @@ export default function Subscription() { fetchArPrice(); }, [currency, params]); + // TODO TRIGGER PAYMENT WHEN ADDING NEW SUBSCRIPTION + async function done() { // add subscription to storage try { diff --git a/src/routes/popup/subscriptions/subscriptionPayment.tsx b/src/routes/popup/subscriptions/subscriptionPayment.tsx index ad6960836..04bb008ee 100644 --- a/src/routes/popup/subscriptions/subscriptionPayment.tsx +++ b/src/routes/popup/subscriptions/subscriptionPayment.tsx @@ -7,7 +7,3 @@ export default function SubscriptionPayment() { ); } - -interface Props { - recipient: string; -} diff --git a/src/subscriptions/api.ts b/src/subscriptions/api.ts index 9a1d09c83..b4b39f786 100644 --- a/src/subscriptions/api.ts +++ b/src/subscriptions/api.ts @@ -17,6 +17,8 @@ export async function subscriptionsHandler() { activeAddress ); + // TODO: Find nextPaymentDue here + // Iterate through subscription data to find payments due for (const subsciption of subscriptionData) { await handleSubscriptionPayment(subsciption); diff --git a/src/subscriptions/payments.ts b/src/subscriptions/payments.ts index 300d4d4fb..44d0478b6 100644 --- a/src/subscriptions/payments.ts +++ b/src/subscriptions/payments.ts @@ -4,120 +4,48 @@ import { type RawStoredTransfer, TempTransactionStorage } from "~utils/storage"; -import { - defaultGateway, - fallbackGateway, - type Gateway -} from "~gateways/gateway"; +import { defaultGateway, fallbackGateway } from "~gateways/gateway"; import type Transaction from "arweave/web/lib/transaction"; import { EventType, trackEvent } from "~utils/analytics"; import type { SubscriptionData } from "./subscription"; import { findGateway } from "~gateways/wayfinder"; -import { getActiveAddress, getActiveKeyfile } from "~wallets"; +import { getActiveKeyfile } from "~wallets"; import browser from "webextension-polyfill"; import Arweave from "arweave"; import { freeDecryptedWallet } from "~wallets/encryption"; -import { useBalance } from "~wallets/hooks"; +import { fractionedToBalance } from "~tokens/currency"; +import { arPlaceholder } from "~routes/popup/send"; -export async function handleSubscriptionPayment(data: SubscriptionData[]) { - const address = await getActiveAddress(); - const balance = useBalance(); +export async function handleSubscriptionPayment(data: SubscriptionData) { const autoAllowance: number = await ExtensionStorage.get( "setting_subscription_allowance" ); - // @ts-ignore const subscriptionFee = data.subscriptionFeeAmount; - const currentDate = new Date(); - // @ts-ignore - const paymentDueDate = new Date(data.nextPaymentDue); - const daysUntilDue = Math.floor( - (paymentDueDate.getTime() - currentDate.getTime()) / (1000 * 3600 * 24) - ); - - let scheduleMessage: string; - let notificationsObject: { [key: string]: any } = {}; - const existingNotifications = await ExtensionStorage.get( - `notifications_${address}` - ); if (subscriptionFee >= autoAllowance) { - // Subscription fee exceeds allowance, handle notification logic - if (paymentDueDate <= currentDate) { - scheduleMessage = `Payment worth ${subscriptionFee} is due now`; - } else if (daysUntilDue === 2) { - scheduleMessage = `Payment worth ${subscriptionFee} is due in 2 days`; - } else if (daysUntilDue === 1) { - scheduleMessage = `Payment worth ${subscriptionFee} is due in 1 day`; - } else { - return false; - } - - const subscriptionNotification = { - type: "Subscription", - // @ts-ignore - message: scheduleMessage, - date: currentDate - }; - - if (existingNotifications) { - notificationsObject = JSON.parse(existingNotifications); - } - - // Ensure that subscriptionNotifications type exists - if (!notificationsObject.subscriptionNotifications) { - notificationsObject.subscriptionNotifications = []; - } - - // Check if the subscriptionNotification already exists in the array - const exists = notificationsObject.subscriptionNotifications.some( - (notification: any) => { - return ( - JSON.stringify(notification) === - JSON.stringify(subscriptionNotification) - ); - } - ); - - if (!exists) { - // Append the new notification to the existing array - notificationsObject.subscriptionNotifications.push( - subscriptionNotification - ); - - // Save the updated notifications object back to storage - await ExtensionStorage.set( - `notifications_${address}`, - JSON.stringify(notificationsObject) - ); - } + // TODO update status here + throw new Error("Subscription fee exceeds or is equal to user allowance"); } else { - // Check if the subscription fee exceeds the user's balance - if (subscriptionFee > balance) { - // CHATGPT: Add new notification message to the subscriptionNotifications array - scheduleMessage = `Automatic subsciption payment failed.`; - notificationsObject.subscriptionNotifications.push({ - type: "Subscription", - message: scheduleMessage, - date: currentDate - }); - - // Save the updated notifications object back to storage - await ExtensionStorage.set( - `notifications_${address}`, - JSON.stringify(notificationsObject) - ); - - throw new Error("Subscription fee amount exceeds wallet balance"); - } - // Subscription fee is less than allowance amount // Initiate automatic subscription payment async function send(target: string) { try { + // grab address + const activeAddress = await ExtensionStorage.get("active_address"); + // create tx const gateway = await findGateway({}); const arweave = new Arweave(gateway); + const winstonBalance = await arweave.wallets.getBalance(activeAddress); + + const balance = Number(arweave.ar.winstonToAr(winstonBalance)); + + // Check if the subscription fee exceeds the user's balance + if (subscriptionFee > balance) { + throw new Error("Subscription fee amount exceeds wallet balance"); + } + // save tx json into session // to be signed and submitted const storedTx: Partial = { @@ -125,32 +53,33 @@ export async function handleSubscriptionPayment(data: SubscriptionData[]) { gateway: gateway }; - // @ts-ignore - const paymentQuantity = data.subscriptionFeeAmount; + // convert to winston + const paymentQuantity = fractionedToBalance( + Number(data.subscriptionFeeAmount), + arPlaceholder + ).toString(); const tx = await arweave.createTransaction({ target, - quantity: paymentQuantity.toString(), - data: "ArConnect Subscription Payment" + quantity: paymentQuantity, + data: undefined }); - tx.addTag("Content-Type", "text/plain"); + tx.addTag("Subscription-Name", data.subscriptionName); + tx.addTag("App-Name", data.applicationName); tx.addTag("Type", "Transfer"); tx.addTag("Client", "ArConnect"); tx.addTag("Client-Version", browser.runtime.getManifest().version); storedTx.transaction = tx.toJSON(); - - await TempTransactionStorage.set(TRANSFER_TX_STORAGE, storedTx); } catch (error) { console.log("Error sending automated transaction"); } } try { - // @ts-ignore const recipientAddress = data.arweaveAccountAddress; - send(recipientAddress); + await send(recipientAddress); // get transaction from session storage async function getTransaction() { @@ -222,19 +151,10 @@ export async function handleSubscriptionPayment(data: SubscriptionData[]) { // local wallet sign & send async function sendLocal() { - // Retrieve latest tx amount details from localStorage - const latestTxQty = await ExtensionStorage.get("last_send_qty"); - if (!latestTxQty) { - throw new Error("Error: no send quantity found"); - } - - const transactionAmount = Number(latestTxQty); - // get tx and gateway let { type, gateway, transaction } = await getTransaction(); const arweave = new Arweave(gateway); - //! SEE HERE const decryptedWallet = await getActiveKeyfile(); // Decrypt wallet & sign for user @@ -259,7 +179,6 @@ export async function handleSubscriptionPayment(data: SubscriptionData[]) { await submitTx(transaction, fallbackArweave, type); await trackEvent(EventType.FALLBACK, {}); } - // remove wallet from memory freeDecryptedWallet(keyfile); } catch (e) { From 02ea28465d11aa0394c1625f738b34ede61d0b2c Mon Sep 17 00:00:00 2001 From: nicholas ma Date: Wed, 27 Mar 2024 16:56:30 -0700 Subject: [PATCH 31/60] feat: added automated payments --- src/background.ts | 2 +- src/routes/auth/subscription.tsx | 16 +++- .../subscriptions/subscriptionDetails.tsx | 2 + src/subscriptions/api.ts | 24 +++-- src/subscriptions/index.ts | 22 ++--- src/subscriptions/payments.ts | 90 ++++++++++++++++++- 6 files changed, 130 insertions(+), 26 deletions(-) diff --git a/src/background.ts b/src/background.ts index 4010246a9..26be1b205 100644 --- a/src/background.ts +++ b/src/background.ts @@ -33,7 +33,7 @@ browser.tabs.onActivated.addListener(({ tabId }) => handleTabUpdate(tabId)); browser.alarms.onAlarm.addListener(notificationsHandler); // handle subscriptions -// browser.alarms.onAlarm.addListener(subscriptionsHandler); +browser.alarms.onAlarm.addListener(subscriptionsHandler); browser.alarms.onAlarm.addListener(trackBalance); diff --git a/src/routes/auth/subscription.tsx b/src/routes/auth/subscription.tsx index fa1a7988e..8c5c72aec 100644 --- a/src/routes/auth/subscription.tsx +++ b/src/routes/auth/subscription.tsx @@ -32,6 +32,7 @@ import { useEffect, useState } from "react"; import { getPrice } from "~lib/coingecko"; import useSetting from "~settings/hook"; import { EventType, trackEvent } from "~utils/analytics"; +import { handleSubscriptionPayment } from "~subscriptions/payments"; export default function Subscription() { // connect params @@ -62,7 +63,6 @@ export default function Subscription() { try { const { authID, ...subscriptionParams } = params; const activeAddress = await getActiveAddress(); - const paymentHistory = ["testtxn"]; // process payment // append txid to payment history array @@ -73,10 +73,13 @@ export default function Subscription() { subscriptionFeeAmount: subscriptionParams.subscriptionFeeAmount, subscriptionManagementUrl: subscriptionParams.subscriptionManagementUrl, subscriptionStatus: SubscriptionStatus.ACTIVE, - paymentHistory: paymentHistory, recurringPaymentFrequency: subscriptionParams.recurringPaymentFrequency as RecurringPaymentFrequency, + + // TODO: this should be default set to now, and let `handleSubPayment` update to the following period nextPaymentDue: new Date(subscriptionParams.nextPaymentDue), + + // TODO: this should be default started to now subscriptionStartDate: new Date( subscriptionParams.subscriptionStartDate ), @@ -84,7 +87,12 @@ export default function Subscription() { applicationIcon: subscriptionParams.applicationIcon }; - await addSubscription(activeAddress, subscriptionData); + const updated = await handleSubscriptionPayment(subscriptionData); + if (updated) { + await addSubscription(activeAddress, updated); + } else { + throw new Error(); + } // segment await trackEvent(EventType.SUBSCRIBED, { @@ -102,7 +110,7 @@ export default function Subscription() { console.log("Failed to subscribe"); setToast({ type: "error", - //todo update message + //TODO: update message content: browser.i18n.getMessage("token_add_failure"), duration: 2200 }); diff --git a/src/routes/popup/subscriptions/subscriptionDetails.tsx b/src/routes/popup/subscriptions/subscriptionDetails.tsx index 47dde779e..62298e935 100644 --- a/src/routes/popup/subscriptions/subscriptionDetails.tsx +++ b/src/routes/popup/subscriptions/subscriptionDetails.tsx @@ -91,6 +91,8 @@ export default function SubscriptionDetails({ id }: Props) { }); } } + + browser.alarms.clear(`subscription-alarm-${subData.arweaveAccountAddress}`); goBack(); // redirect to subscription page }; diff --git a/src/subscriptions/api.ts b/src/subscriptions/api.ts index b4b39f786..2c431a96a 100644 --- a/src/subscriptions/api.ts +++ b/src/subscriptions/api.ts @@ -1,8 +1,9 @@ import type { SubscriptionData } from "./subscription"; -import { handleSubscriptionPayment } from "./payments"; -import { getSubscriptionData } from "~subscriptions"; +import { addSubscription, getSubscriptionData } from "~subscriptions"; import { ExtensionStorage } from "~utils/storage"; import { getActiveAddress } from "~wallets"; +import { handleSubscriptionPayment } from "./payments"; +import type { Alarms } from "webextension-polyfill"; /** * + fetch subscription auto withdrawal allowance @@ -11,16 +12,25 @@ import { getActiveAddress } from "~wallets"; * + activate payments under withdrawal allowance limit * + notify user of manual payments */ -export async function subscriptionsHandler() { + +export async function subscriptionsHandler(alarmInfo?: Alarms.Alarm) { + if (alarmInfo && !alarmInfo.name.startsWith("subscription-alarm-")) return; + + const prefixLength = "subscription-alarm-".length; + const subAddress = alarmInfo.name.substring(prefixLength); + const activeAddress = await getActiveAddress(); + const subscriptionData: SubscriptionData[] = await getSubscriptionData( activeAddress ); - // TODO: Find nextPaymentDue here + const matchingSubscription = subscriptionData.find( + (sub) => sub.arweaveAccountAddress === subAddress + ); - // Iterate through subscription data to find payments due - for (const subsciption of subscriptionData) { - await handleSubscriptionPayment(subsciption); + if (matchingSubscription) { + const updated = await handleSubscriptionPayment(matchingSubscription); + await addSubscription(activeAddress, updated); } } diff --git a/src/subscriptions/index.ts b/src/subscriptions/index.ts index 64ae4bffd..ae03f3811 100644 --- a/src/subscriptions/index.ts +++ b/src/subscriptions/index.ts @@ -114,20 +114,20 @@ export async function addSubscription( ) { // get existing subs try { - const subscriptions = await getSubscriptionData(activeAddress); - if (subscriptions) { - subscriptions.push(newSubscription); - await ExtensionStorage.set( - `subscriptions_${activeAddress}`, - subscriptions - ); + const subscriptions = (await getSubscriptionData(activeAddress)) || []; + const existingIndex = subscriptions.findIndex( + (sub) => + sub.arweaveAccountAddress === newSubscription.arweaveAccountAddress + ); + + if (existingIndex !== -1) { + subscriptions[existingIndex] = newSubscription; } else { - await ExtensionStorage.set(`subscriptions_${activeAddress}`, [ - newSubscription - ]); + subscriptions.push(newSubscription); } + await ExtensionStorage.set(`subscriptions_${activeAddress}`, subscriptions); } catch (err) { - console.error("error saving subscription"); + console.error("error saving subscription", err); } } diff --git a/src/subscriptions/payments.ts b/src/subscriptions/payments.ts index 44d0478b6..a16f288ea 100644 --- a/src/subscriptions/payments.ts +++ b/src/subscriptions/payments.ts @@ -7,7 +7,7 @@ import { import { defaultGateway, fallbackGateway } from "~gateways/gateway"; import type Transaction from "arweave/web/lib/transaction"; import { EventType, trackEvent } from "~utils/analytics"; -import type { SubscriptionData } from "./subscription"; +import { SubscriptionStatus, type SubscriptionData } from "./subscription"; import { findGateway } from "~gateways/wayfinder"; import { getActiveKeyfile } from "~wallets"; import browser from "webextension-polyfill"; @@ -15,15 +15,29 @@ import Arweave from "arweave"; import { freeDecryptedWallet } from "~wallets/encryption"; import { fractionedToBalance } from "~tokens/currency"; import { arPlaceholder } from "~routes/popup/send"; +import { + calculateNextPaymentDate, + updateSubscription as statusUpdateSubscription +} from "~subscriptions"; -export async function handleSubscriptionPayment(data: SubscriptionData) { +export async function handleSubscriptionPayment( + data: SubscriptionData +): Promise { const autoAllowance: number = await ExtensionStorage.get( "setting_subscription_allowance" ); + const activeAddress = await ExtensionStorage.get("active_address"); + const subscriptionFee = data.subscriptionFeeAmount; if (subscriptionFee >= autoAllowance) { // TODO update status here + + await statusUpdateSubscription( + activeAddress, + data.arweaveAccountAddress, + SubscriptionStatus.AWAITING_PAYMENT + ); throw new Error("Subscription fee exceeds or is equal to user allowance"); } else { // Subscription fee is less than allowance amount @@ -31,7 +45,6 @@ export async function handleSubscriptionPayment(data: SubscriptionData) { async function send(target: string) { try { // grab address - const activeAddress = await ExtensionStorage.get("active_address"); // create tx const gateway = await findGateway({}); @@ -138,6 +151,8 @@ export async function handleSubscriptionPayment(data: SubscriptionData) { arweave.transactions.post(transaction), timeoutPromise ]); + const updatedSub = updateSubscription(data, transaction.id); + return updatedSub; } catch (err) { // SEGMENT await trackEvent(EventType.TRANSACTION_INCOMPLETE, {}); @@ -199,3 +214,72 @@ export async function handleSubscriptionPayment(data: SubscriptionData) { } } } + +// export async function handleSubscriptionPayment(data: SubscriptionData) { +// const prepared = await prepare( +// data.arweaveAccountAddress, +// data.subscriptionFeeAmount +// ); +// if (prepared) { +// let { gateway, transaction, type } = prepared; +// const arweave = new Arweave(gateway); +// const convertedTransaction = arweave.transactions.fromRaw(transaction); +// const decryptedWallet = await getActiveKeyfile(); +// isLocalWallet(decryptedWallet); +// const keyfile = decryptedWallet.keyfile; +// convertedTransaction.setOwner(keyfile.n); +// await arweave.transactions.sign(convertedTransaction, keyfile); +// try { +// await arweave.transactions.post(convertedTransaction); +// const updatedSub = updateSubscription(data, convertedTransaction.id); +// return updatedSub; +// } catch (err) { +// console.log("err", err); +// } +// } +// } + +export function updateSubscription( + data: SubscriptionData, + updatedTxnId: string +) { + const nextPaymentDue = calculateNextPaymentDate( + data.nextPaymentDue, + data.recurringPaymentFrequency + ); + + if (new Date(data.subscriptionEndDate) <= nextPaymentDue) { + browser.alarms.clear(`subscription-alarm-${data.arweaveAccountAddress}`); + } else { + browser.alarms.create(`subscription-alarm-${data.arweaveAccountAddress}`, { + when: nextPaymentDue.getTime() + }); + } + + if (!data.paymentHistory) { + data.paymentHistory = []; + } + data.paymentHistory.push(updatedTxnId); + data.nextPaymentDue = nextPaymentDue; + + return data; +} + +// const prepare = async (target: string, amount: Number) => { +// let gateway = await findGateway({}); +// let arweave = new Arweave(gateway); + +// const storedTx: Partial = { +// type: "native", +// gateway: gateway +// }; +// const tx = await arweave.createTransaction({ +// target, +// quantity: fractionedToBalance(Number(amount), arPlaceholder).toString() +// }); +// tx.addTag("Type", "Transfer"); +// tx.addTag("Client", "ArConnect"); +// tx.addTag("Client-Version", browser.runtime.getManifest().version); +// storedTx.transaction = tx.toJSON(); +// return storedTx; +// }; From ba2da00db3fa71471b56d30b695947a192ab5ac2 Mon Sep 17 00:00:00 2001 From: nicholas ma Date: Wed, 27 Mar 2024 18:38:52 -0700 Subject: [PATCH 32/60] fix: adjusted payment fn --- src/subscriptions/payments.ts | 461 +++++++++++++++++----------------- 1 file changed, 231 insertions(+), 230 deletions(-) diff --git a/src/subscriptions/payments.ts b/src/subscriptions/payments.ts index a16f288ea..1981f2bef 100644 --- a/src/subscriptions/payments.ts +++ b/src/subscriptions/payments.ts @@ -19,226 +19,227 @@ import { calculateNextPaymentDate, updateSubscription as statusUpdateSubscription } from "~subscriptions"; +import { isLocalWallet } from "~utils/assertions"; -export async function handleSubscriptionPayment( - data: SubscriptionData -): Promise { - const autoAllowance: number = await ExtensionStorage.get( - "setting_subscription_allowance" - ); - const activeAddress = await ExtensionStorage.get("active_address"); - - const subscriptionFee = data.subscriptionFeeAmount; - - if (subscriptionFee >= autoAllowance) { - // TODO update status here +// export async function handleSubscriptionPayment( +// data: SubscriptionData +// ): Promise { +// const autoAllowance: number = await ExtensionStorage.get( +// "setting_subscription_allowance" +// ); +// const activeAddress = await ExtensionStorage.get("active_address"); + +// const subscriptionFee = data.subscriptionFeeAmount; + +// if (subscriptionFee >= autoAllowance) { +// // TODO update status here + +// await statusUpdateSubscription( +// activeAddress, +// data.arweaveAccountAddress, +// SubscriptionStatus.AWAITING_PAYMENT +// ); +// throw new Error("Subscription fee exceeds or is equal to user allowance"); +// } else { +// // Subscription fee is less than allowance amount +// // Initiate automatic subscription payment +// async function send(target: string) { +// try { +// // grab address + +// // create tx +// const gateway = await findGateway({}); +// const arweave = new Arweave(gateway); + +// const winstonBalance = await arweave.wallets.getBalance(activeAddress); + +// const balance = Number(arweave.ar.winstonToAr(winstonBalance)); + +// // Check if the subscription fee exceeds the user's balance +// if (subscriptionFee > balance) { +// throw new Error("Subscription fee amount exceeds wallet balance"); +// } + +// // save tx json into session +// // to be signed and submitted +// const storedTx: Partial = { +// type: "native", +// gateway: gateway +// }; + +// // convert to winston +// const paymentQuantity = fractionedToBalance( +// Number(data.subscriptionFeeAmount), +// arPlaceholder +// ).toString(); + +// const tx = await arweave.createTransaction({ +// target, +// quantity: paymentQuantity, +// data: undefined +// }); + +// tx.addTag("Subscription-Name", data.subscriptionName); +// tx.addTag("App-Name", data.applicationName); +// tx.addTag("Type", "Transfer"); +// tx.addTag("Client", "ArConnect"); +// tx.addTag("Client-Version", browser.runtime.getManifest().version); + +// storedTx.transaction = tx.toJSON(); +// } catch (error) { +// console.log("Error sending automated transaction"); +// } +// } - await statusUpdateSubscription( - activeAddress, - data.arweaveAccountAddress, - SubscriptionStatus.AWAITING_PAYMENT - ); - throw new Error("Subscription fee exceeds or is equal to user allowance"); - } else { - // Subscription fee is less than allowance amount - // Initiate automatic subscription payment - async function send(target: string) { - try { - // grab address - - // create tx - const gateway = await findGateway({}); - const arweave = new Arweave(gateway); - - const winstonBalance = await arweave.wallets.getBalance(activeAddress); - - const balance = Number(arweave.ar.winstonToAr(winstonBalance)); - - // Check if the subscription fee exceeds the user's balance - if (subscriptionFee > balance) { - throw new Error("Subscription fee amount exceeds wallet balance"); - } - - // save tx json into session - // to be signed and submitted - const storedTx: Partial = { - type: "native", - gateway: gateway - }; - - // convert to winston - const paymentQuantity = fractionedToBalance( - Number(data.subscriptionFeeAmount), - arPlaceholder - ).toString(); - - const tx = await arweave.createTransaction({ - target, - quantity: paymentQuantity, - data: undefined - }); - - tx.addTag("Subscription-Name", data.subscriptionName); - tx.addTag("App-Name", data.applicationName); - tx.addTag("Type", "Transfer"); - tx.addTag("Client", "ArConnect"); - tx.addTag("Client-Version", browser.runtime.getManifest().version); - - storedTx.transaction = tx.toJSON(); - } catch (error) { - console.log("Error sending automated transaction"); - } - } +// try { +// const recipientAddress = data.arweaveAccountAddress; +// await send(recipientAddress); + +// // get transaction from session storage +// async function getTransaction() { +// // get raw tx +// const raw = await TempTransactionStorage.get( +// TRANSFER_TX_STORAGE +// ); +// const gateway = raw?.gateway || defaultGateway; + +// if (!raw) return undefined; + +// // gateway from raw tx +// const arweave = new Arweave(gateway); + +// return { +// type: raw.type, +// gateway, +// transaction: arweave.transactions.fromRaw(raw.transaction) +// }; +// } + +// async function submitTx( +// transaction: Transaction, +// arweave: Arweave, +// type: "native" +// ) { +// // cache tx +// localStorage.setItem( +// "latest_tx", +// JSON.stringify({ +// quantity: { ar: arweave.ar.winstonToAr(transaction.quantity) }, +// owner: { +// address: await arweave.wallets.ownerToAddress(transaction.owner) +// }, +// recipient: transaction.target, +// fee: { ar: transaction.reward }, +// data: { size: transaction.data_size }, +// // @ts-expect-error +// tags: (transaction.get("tags") as Tag[]).map((tag) => ({ +// name: tag.get("name", { string: true, decode: true }), +// value: tag.get("value", { string: true, decode: true }) +// })) +// }) +// ); + +// const timeoutPromise = new Promise((_, reject) => { +// setTimeout(() => { +// reject( +// new Error("Timeout: Posting to Arweave took more than 10 seconds") +// ); +// }, 10000); +// }); + +// try { +// await Promise.race([ +// arweave.transactions.post(transaction), +// timeoutPromise +// ]); +// const updatedSub = updateSubscription(data, transaction.id); +// return updatedSub; +// } catch (err) { +// // SEGMENT +// await trackEvent(EventType.TRANSACTION_INCOMPLETE, {}); +// throw new Error("Error posting subscription tx to Arweave"); +// } +// } + +// /** +// * Local wallet functionalities +// */ + +// // local wallet sign & send +// async function sendLocal() { +// // get tx and gateway +// let { type, gateway, transaction } = await getTransaction(); +// const arweave = new Arweave(gateway); + +// const decryptedWallet = await getActiveKeyfile(); + +// // Decrypt wallet & sign for user +// const keyfile = decryptedWallet.keyfile; + +// // Process transaction without user signing +// try { +// // Set owner +// transaction.setOwner(keyfile.n); + +// // Sign the transaction +// await arweave.transactions.sign(transaction, keyfile); + +// try { +// // Post the transaction +// await submitTx(transaction, arweave, type); +// } catch (e) { +// // FALLBACK IF ISP BLOCKS ARWEAVE.NET OR IF WAYFINDER FAILS +// gateway = fallbackGateway; +// const fallbackArweave = new Arweave(gateway); +// await fallbackArweave.transactions.sign(transaction, keyfile); +// await submitTx(transaction, fallbackArweave, type); +// await trackEvent(EventType.FALLBACK, {}); +// } +// // remove wallet from memory +// freeDecryptedWallet(keyfile); +// } catch (e) { +// console.log(e, "failed subscription tx"); +// freeDecryptedWallet(keyfile); +// } +// } + +// sendLocal(); +// } catch (error) { +// const decryptedWallet = await getActiveKeyfile(); + +// // Decrypt wallet & sign for user +// const keyfile = decryptedWallet.keyfile; +// freeDecryptedWallet(keyfile); +// console.log(error); +// throw new Error("Error making auto subscription payment"); +// } +// } +// } +export async function handleSubscriptionPayment(data: SubscriptionData) { + const prepared = await prepare( + data.arweaveAccountAddress, + data.subscriptionFeeAmount + ); + if (prepared) { + let { gateway, transaction, type } = prepared; + const arweave = new Arweave(gateway); + const convertedTransaction = arweave.transactions.fromRaw(transaction); + const decryptedWallet = await getActiveKeyfile(); + isLocalWallet(decryptedWallet); + const keyfile = decryptedWallet.keyfile; + convertedTransaction.setOwner(keyfile.n); + await arweave.transactions.sign(convertedTransaction, keyfile); try { - const recipientAddress = data.arweaveAccountAddress; - await send(recipientAddress); - - // get transaction from session storage - async function getTransaction() { - // get raw tx - const raw = await TempTransactionStorage.get( - TRANSFER_TX_STORAGE - ); - const gateway = raw?.gateway || defaultGateway; - - if (!raw) return undefined; - - // gateway from raw tx - const arweave = new Arweave(gateway); - - return { - type: raw.type, - gateway, - transaction: arweave.transactions.fromRaw(raw.transaction) - }; - } - - async function submitTx( - transaction: Transaction, - arweave: Arweave, - type: "native" - ) { - // cache tx - localStorage.setItem( - "latest_tx", - JSON.stringify({ - quantity: { ar: arweave.ar.winstonToAr(transaction.quantity) }, - owner: { - address: await arweave.wallets.ownerToAddress(transaction.owner) - }, - recipient: transaction.target, - fee: { ar: transaction.reward }, - data: { size: transaction.data_size }, - // @ts-expect-error - tags: (transaction.get("tags") as Tag[]).map((tag) => ({ - name: tag.get("name", { string: true, decode: true }), - value: tag.get("value", { string: true, decode: true }) - })) - }) - ); - - const timeoutPromise = new Promise((_, reject) => { - setTimeout(() => { - reject( - new Error("Timeout: Posting to Arweave took more than 10 seconds") - ); - }, 10000); - }); - - try { - await Promise.race([ - arweave.transactions.post(transaction), - timeoutPromise - ]); - const updatedSub = updateSubscription(data, transaction.id); - return updatedSub; - } catch (err) { - // SEGMENT - await trackEvent(EventType.TRANSACTION_INCOMPLETE, {}); - throw new Error("Error posting subscription tx to Arweave"); - } - } - - /** - * Local wallet functionalities - */ - - // local wallet sign & send - async function sendLocal() { - // get tx and gateway - let { type, gateway, transaction } = await getTransaction(); - const arweave = new Arweave(gateway); - - const decryptedWallet = await getActiveKeyfile(); - - // Decrypt wallet & sign for user - const keyfile = decryptedWallet.keyfile; - - // Process transaction without user signing - try { - // Set owner - transaction.setOwner(keyfile.n); - - // Sign the transaction - await arweave.transactions.sign(transaction, keyfile); - - try { - // Post the transaction - await submitTx(transaction, arweave, type); - } catch (e) { - // FALLBACK IF ISP BLOCKS ARWEAVE.NET OR IF WAYFINDER FAILS - gateway = fallbackGateway; - const fallbackArweave = new Arweave(gateway); - await fallbackArweave.transactions.sign(transaction, keyfile); - await submitTx(transaction, fallbackArweave, type); - await trackEvent(EventType.FALLBACK, {}); - } - // remove wallet from memory - freeDecryptedWallet(keyfile); - } catch (e) { - console.log(e, "failed subscription tx"); - freeDecryptedWallet(keyfile); - } - } - - sendLocal(); - } catch (error) { - const decryptedWallet = await getActiveKeyfile(); - - // Decrypt wallet & sign for user - const keyfile = decryptedWallet.keyfile; - freeDecryptedWallet(keyfile); - console.log(error); - throw new Error("Error making auto subscription payment"); + await arweave.transactions.post(convertedTransaction); + const updatedSub = updateSubscription(data, convertedTransaction.id); + return updatedSub; + } catch (err) { + console.log("err", err); } } } -// export async function handleSubscriptionPayment(data: SubscriptionData) { -// const prepared = await prepare( -// data.arweaveAccountAddress, -// data.subscriptionFeeAmount -// ); -// if (prepared) { -// let { gateway, transaction, type } = prepared; -// const arweave = new Arweave(gateway); -// const convertedTransaction = arweave.transactions.fromRaw(transaction); -// const decryptedWallet = await getActiveKeyfile(); -// isLocalWallet(decryptedWallet); -// const keyfile = decryptedWallet.keyfile; -// convertedTransaction.setOwner(keyfile.n); -// await arweave.transactions.sign(convertedTransaction, keyfile); -// try { -// await arweave.transactions.post(convertedTransaction); -// const updatedSub = updateSubscription(data, convertedTransaction.id); -// return updatedSub; -// } catch (err) { -// console.log("err", err); -// } -// } -// } - export function updateSubscription( data: SubscriptionData, updatedTxnId: string @@ -265,21 +266,21 @@ export function updateSubscription( return data; } -// const prepare = async (target: string, amount: Number) => { -// let gateway = await findGateway({}); -// let arweave = new Arweave(gateway); - -// const storedTx: Partial = { -// type: "native", -// gateway: gateway -// }; -// const tx = await arweave.createTransaction({ -// target, -// quantity: fractionedToBalance(Number(amount), arPlaceholder).toString() -// }); -// tx.addTag("Type", "Transfer"); -// tx.addTag("Client", "ArConnect"); -// tx.addTag("Client-Version", browser.runtime.getManifest().version); -// storedTx.transaction = tx.toJSON(); -// return storedTx; -// }; +const prepare = async (target: string, amount: Number) => { + let gateway = await findGateway({}); + let arweave = new Arweave(gateway); + + const storedTx: Partial = { + type: "native", + gateway: gateway + }; + const tx = await arweave.createTransaction({ + target, + quantity: fractionedToBalance(Number(amount), arPlaceholder).toString() + }); + tx.addTag("Type", "Transfer"); + tx.addTag("Client", "ArConnect"); + tx.addTag("Client-Version", browser.runtime.getManifest().version); + storedTx.transaction = tx.toJSON(); + return storedTx; +}; From bcd01b9da84779d358f557ff899fe0e26f1a495e Mon Sep 17 00:00:00 2001 From: nicholas ma Date: Thu, 28 Mar 2024 10:38:40 -0700 Subject: [PATCH 33/60] fix: reverted send fn --- src/subscriptions/payments.ts | 474 +++++++++++++++++----------------- 1 file changed, 243 insertions(+), 231 deletions(-) diff --git a/src/subscriptions/payments.ts b/src/subscriptions/payments.ts index 1981f2bef..b5009db17 100644 --- a/src/subscriptions/payments.ts +++ b/src/subscriptions/payments.ts @@ -19,227 +19,239 @@ import { calculateNextPaymentDate, updateSubscription as statusUpdateSubscription } from "~subscriptions"; -import { isLocalWallet } from "~utils/assertions"; -// export async function handleSubscriptionPayment( -// data: SubscriptionData -// ): Promise { -// const autoAllowance: number = await ExtensionStorage.get( -// "setting_subscription_allowance" -// ); -// const activeAddress = await ExtensionStorage.get("active_address"); - -// const subscriptionFee = data.subscriptionFeeAmount; - -// if (subscriptionFee >= autoAllowance) { -// // TODO update status here - -// await statusUpdateSubscription( -// activeAddress, -// data.arweaveAccountAddress, -// SubscriptionStatus.AWAITING_PAYMENT -// ); -// throw new Error("Subscription fee exceeds or is equal to user allowance"); -// } else { -// // Subscription fee is less than allowance amount -// // Initiate automatic subscription payment -// async function send(target: string) { -// try { -// // grab address - -// // create tx -// const gateway = await findGateway({}); -// const arweave = new Arweave(gateway); - -// const winstonBalance = await arweave.wallets.getBalance(activeAddress); - -// const balance = Number(arweave.ar.winstonToAr(winstonBalance)); - -// // Check if the subscription fee exceeds the user's balance -// if (subscriptionFee > balance) { -// throw new Error("Subscription fee amount exceeds wallet balance"); -// } - -// // save tx json into session -// // to be signed and submitted -// const storedTx: Partial = { -// type: "native", -// gateway: gateway -// }; - -// // convert to winston -// const paymentQuantity = fractionedToBalance( -// Number(data.subscriptionFeeAmount), -// arPlaceholder -// ).toString(); - -// const tx = await arweave.createTransaction({ -// target, -// quantity: paymentQuantity, -// data: undefined -// }); - -// tx.addTag("Subscription-Name", data.subscriptionName); -// tx.addTag("App-Name", data.applicationName); -// tx.addTag("Type", "Transfer"); -// tx.addTag("Client", "ArConnect"); -// tx.addTag("Client-Version", browser.runtime.getManifest().version); - -// storedTx.transaction = tx.toJSON(); -// } catch (error) { -// console.log("Error sending automated transaction"); -// } -// } +export async function handleSubscriptionPayment( + data: SubscriptionData +): Promise { + const autoAllowance: number = await ExtensionStorage.get( + "setting_subscription_allowance" + ); + const activeAddress = await ExtensionStorage.get("active_address"); -// try { -// const recipientAddress = data.arweaveAccountAddress; -// await send(recipientAddress); - -// // get transaction from session storage -// async function getTransaction() { -// // get raw tx -// const raw = await TempTransactionStorage.get( -// TRANSFER_TX_STORAGE -// ); -// const gateway = raw?.gateway || defaultGateway; - -// if (!raw) return undefined; - -// // gateway from raw tx -// const arweave = new Arweave(gateway); - -// return { -// type: raw.type, -// gateway, -// transaction: arweave.transactions.fromRaw(raw.transaction) -// }; -// } - -// async function submitTx( -// transaction: Transaction, -// arweave: Arweave, -// type: "native" -// ) { -// // cache tx -// localStorage.setItem( -// "latest_tx", -// JSON.stringify({ -// quantity: { ar: arweave.ar.winstonToAr(transaction.quantity) }, -// owner: { -// address: await arweave.wallets.ownerToAddress(transaction.owner) -// }, -// recipient: transaction.target, -// fee: { ar: transaction.reward }, -// data: { size: transaction.data_size }, -// // @ts-expect-error -// tags: (transaction.get("tags") as Tag[]).map((tag) => ({ -// name: tag.get("name", { string: true, decode: true }), -// value: tag.get("value", { string: true, decode: true }) -// })) -// }) -// ); - -// const timeoutPromise = new Promise((_, reject) => { -// setTimeout(() => { -// reject( -// new Error("Timeout: Posting to Arweave took more than 10 seconds") -// ); -// }, 10000); -// }); - -// try { -// await Promise.race([ -// arweave.transactions.post(transaction), -// timeoutPromise -// ]); -// const updatedSub = updateSubscription(data, transaction.id); -// return updatedSub; -// } catch (err) { -// // SEGMENT -// await trackEvent(EventType.TRANSACTION_INCOMPLETE, {}); -// throw new Error("Error posting subscription tx to Arweave"); -// } -// } - -// /** -// * Local wallet functionalities -// */ - -// // local wallet sign & send -// async function sendLocal() { -// // get tx and gateway -// let { type, gateway, transaction } = await getTransaction(); -// const arweave = new Arweave(gateway); - -// const decryptedWallet = await getActiveKeyfile(); - -// // Decrypt wallet & sign for user -// const keyfile = decryptedWallet.keyfile; - -// // Process transaction without user signing -// try { -// // Set owner -// transaction.setOwner(keyfile.n); - -// // Sign the transaction -// await arweave.transactions.sign(transaction, keyfile); - -// try { -// // Post the transaction -// await submitTx(transaction, arweave, type); -// } catch (e) { -// // FALLBACK IF ISP BLOCKS ARWEAVE.NET OR IF WAYFINDER FAILS -// gateway = fallbackGateway; -// const fallbackArweave = new Arweave(gateway); -// await fallbackArweave.transactions.sign(transaction, keyfile); -// await submitTx(transaction, fallbackArweave, type); -// await trackEvent(EventType.FALLBACK, {}); -// } -// // remove wallet from memory -// freeDecryptedWallet(keyfile); -// } catch (e) { -// console.log(e, "failed subscription tx"); -// freeDecryptedWallet(keyfile); -// } -// } - -// sendLocal(); -// } catch (error) { -// const decryptedWallet = await getActiveKeyfile(); - -// // Decrypt wallet & sign for user -// const keyfile = decryptedWallet.keyfile; -// freeDecryptedWallet(keyfile); -// console.log(error); -// throw new Error("Error making auto subscription payment"); -// } -// } -// } + const subscriptionFee = data.subscriptionFeeAmount; + + if (subscriptionFee >= autoAllowance) { + // TODO update status here + + await statusUpdateSubscription( + activeAddress, + data.arweaveAccountAddress, + SubscriptionStatus.AWAITING_PAYMENT + ); + throw new Error("Subscription fee exceeds or is equal to user allowance"); + } else { + // Subscription fee is less than allowance amount + // Initiate automatic subscription payment + async function send(target: string) { + try { + // grab address + + // create tx + const gateway = await findGateway({}); + const arweave = new Arweave(gateway); + + const winstonBalance = await arweave.wallets.getBalance(activeAddress); + + const balance = Number(arweave.ar.winstonToAr(winstonBalance)); + + // Check if the subscription fee exceeds the user's balance + if (subscriptionFee > balance) { + throw new Error("Subscription fee amount exceeds wallet balance"); + } + + // save tx json into session + // to be signed and submitted + const storedTx: Partial = { + type: "native", + gateway: gateway + }; + + // convert to winston + const paymentQuantity = fractionedToBalance( + Number(data.subscriptionFeeAmount), + arPlaceholder + ).toString(); + + const tx = await arweave.createTransaction({ + target, + quantity: paymentQuantity, + data: undefined + }); + + console.log("created tx:", tx); + + tx.addTag("Subscription-Name", data.subscriptionName); + tx.addTag("App-Name", data.applicationName); + tx.addTag("Type", "Transfer"); + tx.addTag("Client", "ArConnect"); + tx.addTag("Client-Version", browser.runtime.getManifest().version); + + storedTx.transaction = tx.toJSON(); + + await TempTransactionStorage.set(TRANSFER_TX_STORAGE, storedTx); + } catch (error) { + console.log("Error sending automated transaction"); + } + } -export async function handleSubscriptionPayment(data: SubscriptionData) { - const prepared = await prepare( - data.arweaveAccountAddress, - data.subscriptionFeeAmount - ); - if (prepared) { - let { gateway, transaction, type } = prepared; - const arweave = new Arweave(gateway); - const convertedTransaction = arweave.transactions.fromRaw(transaction); - const decryptedWallet = await getActiveKeyfile(); - isLocalWallet(decryptedWallet); - const keyfile = decryptedWallet.keyfile; - convertedTransaction.setOwner(keyfile.n); - await arweave.transactions.sign(convertedTransaction, keyfile); try { - await arweave.transactions.post(convertedTransaction); - const updatedSub = updateSubscription(data, convertedTransaction.id); - return updatedSub; - } catch (err) { - console.log("err", err); + const recipientAddress = data.arweaveAccountAddress; + await send(recipientAddress); + + // get transaction from session storage + async function getTransaction() { + // get raw tx + const raw = await TempTransactionStorage.get( + TRANSFER_TX_STORAGE + ); + const gateway = raw?.gateway || defaultGateway; + + if (!raw) return undefined; + + // gateway from raw tx + const arweave = new Arweave(gateway); + + return { + type: raw.type, + gateway, + transaction: arweave.transactions.fromRaw(raw.transaction) + }; + } + + async function submitTx( + transaction: Transaction, + arweave: Arweave, + type: "native" + ) { + // cache tx + localStorage.setItem( + "latest_tx", + JSON.stringify({ + quantity: { ar: arweave.ar.winstonToAr(transaction.quantity) }, + owner: { + address: await arweave.wallets.ownerToAddress(transaction.owner) + }, + recipient: transaction.target, + fee: { ar: transaction.reward }, + data: { size: transaction.data_size }, + // @ts-expect-error + tags: (transaction.get("tags") as Tag[]).map((tag) => ({ + name: tag.get("name", { string: true, decode: true }), + value: tag.get("value", { string: true, decode: true }) + })) + }) + ); + + const timeoutPromise = new Promise((_, reject) => { + setTimeout(() => { + reject( + new Error("Timeout: Posting to Arweave took more than 10 seconds") + ); + }, 10000); + }); + + try { + console.log("Enter Promise.race"); + await Promise.race([ + arweave.transactions.post(transaction), + timeoutPromise + ]); + const updatedSub = updateSubscription(data, transaction.id); + console.log("updated sub:", updatedSub); + return updatedSub; + } catch (err) { + // SEGMENT + await trackEvent(EventType.TRANSACTION_INCOMPLETE, {}); + throw new Error("Error posting subscription tx to Arweave"); + } + } + + /** + * Local wallet functionalities + */ + + // local wallet sign & send + async function sendLocal() { + // get tx and gateway + let { type, gateway, transaction } = await getTransaction(); + const arweave = new Arweave(gateway); + + const decryptedWallet = await getActiveKeyfile(); + + // Decrypt wallet & sign for user + const keyfile = decryptedWallet.keyfile; + + // Process transaction without user signing + try { + // Set owner + transaction.setOwner(keyfile.n); + + // Sign the transaction + await arweave.transactions.sign(transaction, keyfile); + + try { + // Post the transaction + const submitted = await submitTx(transaction, arweave, type); + console.log( + "After submitTx: Transaction successfully posted", + submitted + ); + return submitted; + } catch (e) { + console.log("entered fallback gateway"); + // FALLBACK IF ISP BLOCKS ARWEAVE.NET OR IF WAYFINDER FAILS + gateway = fallbackGateway; + const fallbackArweave = new Arweave(gateway); + await fallbackArweave.transactions.sign(transaction, keyfile); + await submitTx(transaction, fallbackArweave, type); + await trackEvent(EventType.FALLBACK, {}); + } + console.log("free from memory"); + // remove wallet from memory + freeDecryptedWallet(keyfile); + } catch (e) { + console.log(e, "failed subscription tx"); + freeDecryptedWallet(keyfile); + } + } + + return sendLocal(); + } catch (error) { + const decryptedWallet = await getActiveKeyfile(); + + // Decrypt wallet & sign for user + const keyfile = decryptedWallet.keyfile; + freeDecryptedWallet(keyfile); + console.log(error); + throw new Error("Error making auto subscription payment"); } } } +// export async function handleSubscriptionPayment(data: SubscriptionData) { +// const prepared = await prepare( +// data.arweaveAccountAddress, +// data.subscriptionFeeAmount +// ); +// if (prepared) { +// let { gateway, transaction, type } = prepared; +// const arweave = new Arweave(gateway); +// const convertedTransaction = arweave.transactions.fromRaw(transaction); +// const decryptedWallet = await getActiveKeyfile(); +// isLocalWallet(decryptedWallet); +// const keyfile = decryptedWallet.keyfile; +// convertedTransaction.setOwner(keyfile.n); +// await arweave.transactions.sign(convertedTransaction, keyfile); +// try { +// await arweave.transactions.post(convertedTransaction); +// const updatedSub = updateSubscription(data, convertedTransaction.id); +// return updatedSub; +// } catch (err) { +// console.log("err", err); +// } +// } +// } + export function updateSubscription( data: SubscriptionData, updatedTxnId: string @@ -266,21 +278,21 @@ export function updateSubscription( return data; } -const prepare = async (target: string, amount: Number) => { - let gateway = await findGateway({}); - let arweave = new Arweave(gateway); - - const storedTx: Partial = { - type: "native", - gateway: gateway - }; - const tx = await arweave.createTransaction({ - target, - quantity: fractionedToBalance(Number(amount), arPlaceholder).toString() - }); - tx.addTag("Type", "Transfer"); - tx.addTag("Client", "ArConnect"); - tx.addTag("Client-Version", browser.runtime.getManifest().version); - storedTx.transaction = tx.toJSON(); - return storedTx; -}; +// const prepare = async (target: string, amount: Number) => { +// let gateway = await findGateway({}); +// let arweave = new Arweave(gateway); + +// const storedTx: Partial = { +// type: "native", +// gateway: gateway +// }; +// const tx = await arweave.createTransaction({ +// target, +// quantity: fractionedToBalance(Number(amount), arPlaceholder).toString() +// }); +// tx.addTag("Type", "Transfer"); +// tx.addTag("Client", "ArConnect"); +// tx.addTag("Client-Version", browser.runtime.getManifest().version); +// storedTx.transaction = tx.toJSON(); +// return storedTx; +// }; From 258576a6211d7347bec2f1a8dc87f472a2a16f66 Mon Sep 17 00:00:00 2001 From: elehmandevelopment Date: Thu, 28 Mar 2024 13:52:16 -0600 Subject: [PATCH 34/60] fix: add types --- src/subscriptions/payments.ts | 32 +++++++++++++++++++++----------- 1 file changed, 21 insertions(+), 11 deletions(-) diff --git a/src/subscriptions/payments.ts b/src/subscriptions/payments.ts index b5009db17..b1bcc4cf2 100644 --- a/src/subscriptions/payments.ts +++ b/src/subscriptions/payments.ts @@ -4,7 +4,11 @@ import { type RawStoredTransfer, TempTransactionStorage } from "~utils/storage"; -import { defaultGateway, fallbackGateway } from "~gateways/gateway"; +import { + defaultGateway, + fallbackGateway, + type Gateway +} from "~gateways/gateway"; import type Transaction from "arweave/web/lib/transaction"; import { EventType, trackEvent } from "~utils/analytics"; import { SubscriptionStatus, type SubscriptionData } from "./subscription"; @@ -19,16 +23,17 @@ import { calculateNextPaymentDate, updateSubscription as statusUpdateSubscription } from "~subscriptions"; +import type { Tag } from "arweave/web/lib/transaction"; export async function handleSubscriptionPayment( data: SubscriptionData -): Promise { +): Promise { const autoAllowance: number = await ExtensionStorage.get( "setting_subscription_allowance" ); - const activeAddress = await ExtensionStorage.get("active_address"); + const activeAddress: string = await ExtensionStorage.get("active_address"); - const subscriptionFee = data.subscriptionFeeAmount; + const subscriptionFee: number = data.subscriptionFeeAmount; if (subscriptionFee >= autoAllowance) { // TODO update status here @@ -42,7 +47,7 @@ export async function handleSubscriptionPayment( } else { // Subscription fee is less than allowance amount // Initiate automatic subscription payment - async function send(target: string) { + async function send(target: string): Promise { try { // grab address @@ -99,7 +104,14 @@ export async function handleSubscriptionPayment( await send(recipientAddress); // get transaction from session storage - async function getTransaction() { + async function getTransaction(): Promise< + | { + transaction: Transaction; + gateway: Gateway; + type: string; + } + | undefined + > { // get raw tx const raw = await TempTransactionStorage.get( TRANSFER_TX_STORAGE @@ -122,7 +134,7 @@ export async function handleSubscriptionPayment( transaction: Transaction, arweave: Arweave, type: "native" - ) { + ): Promise { // cache tx localStorage.setItem( "latest_tx", @@ -151,13 +163,11 @@ export async function handleSubscriptionPayment( }); try { - console.log("Enter Promise.race"); await Promise.race([ arweave.transactions.post(transaction), timeoutPromise ]); const updatedSub = updateSubscription(data, transaction.id); - console.log("updated sub:", updatedSub); return updatedSub; } catch (err) { // SEGMENT @@ -171,7 +181,7 @@ export async function handleSubscriptionPayment( */ // local wallet sign & send - async function sendLocal() { + async function sendLocal(): Promise { // get tx and gateway let { type, gateway, transaction } = await getTransaction(); const arweave = new Arweave(gateway); @@ -255,7 +265,7 @@ export async function handleSubscriptionPayment( export function updateSubscription( data: SubscriptionData, updatedTxnId: string -) { +): SubscriptionData { const nextPaymentDue = calculateNextPaymentDate( data.nextPaymentDue, data.recurringPaymentFrequency From c973d580f412ca9ee7ca47681df9e41ce962095d Mon Sep 17 00:00:00 2001 From: nicholas ma Date: Thu, 28 Mar 2024 14:30:33 -0700 Subject: [PATCH 35/60] refactor: types, broke up send fn --- src/subscriptions/payments.ts | 351 ++++++++++++---------------------- 1 file changed, 126 insertions(+), 225 deletions(-) diff --git a/src/subscriptions/payments.ts b/src/subscriptions/payments.ts index b1bcc4cf2..cca235303 100644 --- a/src/subscriptions/payments.ts +++ b/src/subscriptions/payments.ts @@ -1,14 +1,5 @@ -import { - ExtensionStorage, - TRANSFER_TX_STORAGE, - type RawStoredTransfer, - TempTransactionStorage -} from "~utils/storage"; -import { - defaultGateway, - fallbackGateway, - type Gateway -} from "~gateways/gateway"; +import { ExtensionStorage, type RawStoredTransfer } from "~utils/storage"; +import { fallbackGateway } from "~gateways/gateway"; import type Transaction from "arweave/web/lib/transaction"; import { EventType, trackEvent } from "~utils/analytics"; import { SubscriptionStatus, type SubscriptionData } from "./subscription"; @@ -23,7 +14,7 @@ import { calculateNextPaymentDate, updateSubscription as statusUpdateSubscription } from "~subscriptions"; -import type { Tag } from "arweave/web/lib/transaction"; +import { isLocalWallet } from "~utils/assertions"; export async function handleSubscriptionPayment( data: SubscriptionData @@ -45,222 +36,151 @@ export async function handleSubscriptionPayment( ); throw new Error("Subscription fee exceeds or is equal to user allowance"); } else { - // Subscription fee is less than allowance amount - // Initiate automatic subscription payment - async function send(target: string): Promise { - try { - // grab address - - // create tx - const gateway = await findGateway({}); - const arweave = new Arweave(gateway); - - const winstonBalance = await arweave.wallets.getBalance(activeAddress); - - const balance = Number(arweave.ar.winstonToAr(winstonBalance)); - - // Check if the subscription fee exceeds the user's balance - if (subscriptionFee > balance) { - throw new Error("Subscription fee amount exceeds wallet balance"); - } - - // save tx json into session - // to be signed and submitted - const storedTx: Partial = { - type: "native", - gateway: gateway - }; - - // convert to winston - const paymentQuantity = fractionedToBalance( - Number(data.subscriptionFeeAmount), - arPlaceholder - ).toString(); - - const tx = await arweave.createTransaction({ - target, - quantity: paymentQuantity, - data: undefined - }); - - console.log("created tx:", tx); - - tx.addTag("Subscription-Name", data.subscriptionName); - tx.addTag("App-Name", data.applicationName); - tx.addTag("Type", "Transfer"); - tx.addTag("Client", "ArConnect"); - tx.addTag("Client-Version", browser.runtime.getManifest().version); - - storedTx.transaction = tx.toJSON(); - - await TempTransactionStorage.set(TRANSFER_TX_STORAGE, storedTx); - } catch (error) { - console.log("Error sending automated transaction"); - } - } - try { const recipientAddress = data.arweaveAccountAddress; - await send(recipientAddress); + const prepared = await prepare(recipientAddress, data, activeAddress); + return send(prepared, data); + } catch (error) { + console.log(error); + throw new Error("Error making auto subscription payment"); + } + } +} - // get transaction from session storage - async function getTransaction(): Promise< - | { - transaction: Transaction; - gateway: Gateway; - type: string; - } - | undefined - > { - // get raw tx - const raw = await TempTransactionStorage.get( - TRANSFER_TX_STORAGE - ); - const gateway = raw?.gateway || defaultGateway; +const prepare = async ( + target: string, + data: SubscriptionData, + activeAddress: string +): Promise => { + try { + // grab address - if (!raw) return undefined; + // create tx + const gateway = await findGateway({}); + const arweave = new Arweave(gateway); - // gateway from raw tx - const arweave = new Arweave(gateway); + const winstonBalance = await arweave.wallets.getBalance(activeAddress); - return { - type: raw.type, - gateway, - transaction: arweave.transactions.fromRaw(raw.transaction) - }; - } + const balance = Number(arweave.ar.winstonToAr(winstonBalance)); - async function submitTx( - transaction: Transaction, - arweave: Arweave, - type: "native" - ): Promise { - // cache tx - localStorage.setItem( - "latest_tx", - JSON.stringify({ - quantity: { ar: arweave.ar.winstonToAr(transaction.quantity) }, - owner: { - address: await arweave.wallets.ownerToAddress(transaction.owner) - }, - recipient: transaction.target, - fee: { ar: transaction.reward }, - data: { size: transaction.data_size }, - // @ts-expect-error - tags: (transaction.get("tags") as Tag[]).map((tag) => ({ - name: tag.get("name", { string: true, decode: true }), - value: tag.get("value", { string: true, decode: true }) - })) - }) - ); + // Check if the subscription fee exceeds the user's balance + if (data.subscriptionFeeAmount > balance) { + throw new Error("Subscription fee amount exceeds wallet balance"); + } - const timeoutPromise = new Promise((_, reject) => { - setTimeout(() => { - reject( - new Error("Timeout: Posting to Arweave took more than 10 seconds") - ); - }, 10000); - }); + // save tx json into session + // to be signed and submitted + const formattedTxn: RawStoredTransfer = { + type: "native", + gateway: gateway, + transaction: {} as ReturnType + }; + + // convert to winston + const paymentQuantity = fractionedToBalance( + Number(data.subscriptionFeeAmount), + arPlaceholder + ).toString(); + + const tx = await arweave.createTransaction({ + target, + quantity: paymentQuantity, + data: undefined + }); - try { - await Promise.race([ - arweave.transactions.post(transaction), - timeoutPromise - ]); - const updatedSub = updateSubscription(data, transaction.id); - return updatedSub; - } catch (err) { - // SEGMENT - await trackEvent(EventType.TRANSACTION_INCOMPLETE, {}); - throw new Error("Error posting subscription tx to Arweave"); - } - } + console.log("created tx:", tx); - /** - * Local wallet functionalities - */ + tx.addTag("Subscription-Name", data.subscriptionName); + tx.addTag("App-Name", data.applicationName); + tx.addTag("Type", "Transfer"); + tx.addTag("Client", "ArConnect"); + tx.addTag("Client-Version", browser.runtime.getManifest().version); - // local wallet sign & send - async function sendLocal(): Promise { - // get tx and gateway - let { type, gateway, transaction } = await getTransaction(); - const arweave = new Arweave(gateway); + formattedTxn.transaction = tx.toJSON(); - const decryptedWallet = await getActiveKeyfile(); + return formattedTxn; + } catch (error) { + console.log("Error sending automated transaction"); + } +}; - // Decrypt wallet & sign for user - const keyfile = decryptedWallet.keyfile; +const send = async ( + formattedTxn: RawStoredTransfer, + subscriptionData: SubscriptionData +): Promise => { + // get tx and gateway + let { type, gateway, transaction } = formattedTxn; + const arweave = new Arweave(gateway); + const unRaw = arweave.transactions.fromRaw(transaction); - // Process transaction without user signing - try { - // Set owner - transaction.setOwner(keyfile.n); + const decryptedWallet = await getActiveKeyfile(); - // Sign the transaction - await arweave.transactions.sign(transaction, keyfile); + isLocalWallet(decryptedWallet); + // Decrypt wallet & sign for user + const keyfile = decryptedWallet.keyfile; - try { - // Post the transaction - const submitted = await submitTx(transaction, arweave, type); - console.log( - "After submitTx: Transaction successfully posted", - submitted - ); - return submitted; - } catch (e) { - console.log("entered fallback gateway"); - // FALLBACK IF ISP BLOCKS ARWEAVE.NET OR IF WAYFINDER FAILS - gateway = fallbackGateway; - const fallbackArweave = new Arweave(gateway); - await fallbackArweave.transactions.sign(transaction, keyfile); - await submitTx(transaction, fallbackArweave, type); - await trackEvent(EventType.FALLBACK, {}); - } - console.log("free from memory"); - // remove wallet from memory - freeDecryptedWallet(keyfile); - } catch (e) { - console.log(e, "failed subscription tx"); - freeDecryptedWallet(keyfile); - } - } + // Process transaction without user signing + try { + // Set owner + unRaw.setOwner(keyfile.n); - return sendLocal(); - } catch (error) { - const decryptedWallet = await getActiveKeyfile(); + // Sign the transaction + await arweave.transactions.sign(unRaw, keyfile); - // Decrypt wallet & sign for user - const keyfile = decryptedWallet.keyfile; + try { + // Post the transaction + const submitted = await submitTx(unRaw, arweave, subscriptionData); + console.log("After submitTx: Transaction successfully posted", submitted); + console.log("free from memory"); freeDecryptedWallet(keyfile); - console.log(error); - throw new Error("Error making auto subscription payment"); + return submitted; + } catch (e) { + console.log("entered fallback gateway"); + // FALLBACK IF ISP BLOCKS ARWEAVE.NET OR IF WAYFINDER FAILS + gateway = fallbackGateway; + const fallbackArweave = new Arweave(gateway); + await fallbackArweave.transactions.sign(unRaw, keyfile); + const submitted = await submitTx( + unRaw, + fallbackArweave, + subscriptionData + ); + freeDecryptedWallet(keyfile); + await trackEvent(EventType.FALLBACK, {}); + return submitted; } + } catch (e) { + console.log(e, "failed subscription tx"); + freeDecryptedWallet(keyfile); } -} +}; -// export async function handleSubscriptionPayment(data: SubscriptionData) { -// const prepared = await prepare( -// data.arweaveAccountAddress, -// data.subscriptionFeeAmount -// ); -// if (prepared) { -// let { gateway, transaction, type } = prepared; -// const arweave = new Arweave(gateway); -// const convertedTransaction = arweave.transactions.fromRaw(transaction); -// const decryptedWallet = await getActiveKeyfile(); -// isLocalWallet(decryptedWallet); -// const keyfile = decryptedWallet.keyfile; -// convertedTransaction.setOwner(keyfile.n); -// await arweave.transactions.sign(convertedTransaction, keyfile); -// try { -// await arweave.transactions.post(convertedTransaction); -// const updatedSub = updateSubscription(data, convertedTransaction.id); -// return updatedSub; -// } catch (err) { -// console.log("err", err); -// } -// } -// } +const submitTx = async ( + transaction: Transaction, + arweave: Arweave, + data: SubscriptionData +): Promise => { + const timeoutPromise = new Promise((_, reject) => { + setTimeout(() => { + reject( + new Error("Timeout: Posting to Arweave took more than 10 seconds") + ); + }, 10000); + }); + + try { + await Promise.race([ + arweave.transactions.post(transaction), + timeoutPromise + ]); + const updatedSub = updateSubscription(data, transaction.id); + return updatedSub; + } catch (err) { + // SEGMENT + await trackEvent(EventType.TRANSACTION_INCOMPLETE, {}); + throw new Error("Error posting subscription tx to Arweave"); + } +}; export function updateSubscription( data: SubscriptionData, @@ -287,22 +207,3 @@ export function updateSubscription( return data; } - -// const prepare = async (target: string, amount: Number) => { -// let gateway = await findGateway({}); -// let arweave = new Arweave(gateway); - -// const storedTx: Partial = { -// type: "native", -// gateway: gateway -// }; -// const tx = await arweave.createTransaction({ -// target, -// quantity: fractionedToBalance(Number(amount), arPlaceholder).toString() -// }); -// tx.addTag("Type", "Transfer"); -// tx.addTag("Client", "ArConnect"); -// tx.addTag("Client-Version", browser.runtime.getManifest().version); -// storedTx.transaction = tx.toJSON(); -// return storedTx; -// }; From 6bce504538a2cbf1e3c9487946745d3c647740cb Mon Sep 17 00:00:00 2001 From: nicholas ma Date: Wed, 10 Apr 2024 16:13:30 -0700 Subject: [PATCH 36/60] fix: misc assertion fixes, updated base --- .../subscription/subscription.background.ts | 2 +- .../subscription/subscription.foreground.ts | 11 +- src/components/popup/WalletHeader.tsx | 7 ++ src/routes/auth/subscription.tsx | 6 +- src/subscriptions/subscription.ts | 4 +- src/utils/assertions.ts | 104 ++++++++---------- 6 files changed, 66 insertions(+), 68 deletions(-) diff --git a/src/api/modules/subscription/subscription.background.ts b/src/api/modules/subscription/subscription.background.ts index 18a05aa2f..35289022b 100644 --- a/src/api/modules/subscription/subscription.background.ts +++ b/src/api/modules/subscription/subscription.background.ts @@ -21,7 +21,7 @@ const background: ModuleFunction = async ( // validate input isAddress(subscriptionData.arweaveAccountAddress); - if (type) isSubscriptionType(type); + isSubscriptionType(subscriptionData); const address = await getActiveAddress(); // check if subsciption exists const subscriptions = await getSubscriptionData(address); diff --git a/src/api/modules/subscription/subscription.foreground.ts b/src/api/modules/subscription/subscription.foreground.ts index d1e640691..c1f5da519 100644 --- a/src/api/modules/subscription/subscription.foreground.ts +++ b/src/api/modules/subscription/subscription.foreground.ts @@ -9,9 +9,7 @@ const foreground: ModuleFunction = (data) => { "subscriptionName", "subscriptionFeeAmount", "recurringPaymentFrequency", - "nextPaymentDue", "subscriptionManagementUrl", - "subscriptionStartDate", "subscriptionEndDate" ]; @@ -21,6 +19,15 @@ const foreground: ModuleFunction = (data) => { } } + // optional fields + const allFields = [...requiredFields, "applicationIcon"]; + + Object.keys(data).forEach((key) => { + if (!allFields.includes(key as keyof SubscriptionData)) { + throw new Error(`Unexpected extra field: ${key}`); + } + }); + return [ { ...data, diff --git a/src/components/popup/WalletHeader.tsx b/src/components/popup/WalletHeader.tsx index 41cd95b76..c806d0fce 100644 --- a/src/components/popup/WalletHeader.tsx +++ b/src/components/popup/WalletHeader.tsx @@ -438,6 +438,13 @@ export default function WalletHeader() { window.location.href.split("#")[0] + "?expanded=true" ); } + }, + { + icon: , + title: "Subscriptions", + route: () => { + push("/subscriptions"); + } } ]} /> diff --git a/src/routes/auth/subscription.tsx b/src/routes/auth/subscription.tsx index 8c5c72aec..e8de18234 100644 --- a/src/routes/auth/subscription.tsx +++ b/src/routes/auth/subscription.tsx @@ -77,12 +77,10 @@ export default function Subscription() { subscriptionParams.recurringPaymentFrequency as RecurringPaymentFrequency, // TODO: this should be default set to now, and let `handleSubPayment` update to the following period - nextPaymentDue: new Date(subscriptionParams.nextPaymentDue), + nextPaymentDue: new Date(), // TODO: this should be default started to now - subscriptionStartDate: new Date( - subscriptionParams.subscriptionStartDate - ), + subscriptionStartDate: new Date(), subscriptionEndDate: new Date(subscriptionParams.subscriptionEndDate), applicationIcon: subscriptionParams.applicationIcon }; diff --git a/src/subscriptions/subscription.ts b/src/subscriptions/subscription.ts index c39575ebf..4b7c34604 100644 --- a/src/subscriptions/subscription.ts +++ b/src/subscriptions/subscription.ts @@ -28,11 +28,11 @@ export interface SubscriptionData { applicationName: string; subscriptionName: string; subscriptionFeeAmount: number; - subscriptionStatus: SubscriptionStatus; + subscriptionStatus?: SubscriptionStatus; recurringPaymentFrequency: RecurringPaymentFrequency; nextPaymentDue: Date | string; subscriptionManagementUrl: string; - subscriptionStartDate: Date | string; + subscriptionStartDate?: Date | string; subscriptionEndDate: Date | string; paymentHistory?: string[]; } diff --git a/src/utils/assertions.ts b/src/utils/assertions.ts index 7e4846ceb..40e2b8e44 100644 --- a/src/utils/assertions.ts +++ b/src/utils/assertions.ts @@ -32,8 +32,11 @@ import { isNotNull, isExactly } from "typed-assert"; -import { Gateway } from "~gateways/gateway"; -import type { SubscriptionData } from "~subscriptions/subscription"; +import type { Gateway } from "~gateways/gateway"; +import { + RecurringPaymentFrequency, + type SubscriptionData +} from "~subscriptions/subscription"; export function isGateway(input: unknown): asserts input is Gateway { isRecordWithKeys( @@ -52,64 +55,47 @@ export function isGateway(input: unknown): asserts input is Gateway { export function isSubscriptionType( input: unknown -): asserts input is SubscriptionData[] { - isArray(input, "Input should be an array"); - - for (const item of input) { - isInstanceOf(item, Object, "Each item in the array should be an object."); - - const { - arweaveAccountAddress, - applicationName, - subscriptionName, - subscriptionFeeAmount, - subscriptionStatus, - recurringPaymentFrequency, - nextPaymentDue, - subscriptionStartDate, - subscriptionEndDate, - applicationIcon - } = item as SubscriptionData; - - isString( - arweaveAccountAddress, - "arweaveAccountAddress should be a string." - ); - isString(applicationName, "applicationName should be a string."); - isString(subscriptionName, "subscriptionName should be a string."); - isNumber( - subscriptionFeeAmount, - "subscriptionFeeAmount should be a number." - ); - isOneOf( - subscriptionStatus, - Object.values(subscriptionStatus), - "Invalid subscriptionStatus." - ); - isOneOf( - recurringPaymentFrequency, - Object.values(recurringPaymentFrequency), - "Invalid recurringPaymentFrequency." - ); - isOneOf( - nextPaymentDue, - Object.values(nextPaymentDue), - "Invalid nextPaymentDue." - ); - isOneOf( - subscriptionStartDate, - Object.values(subscriptionStartDate), - "Invalid subscriptionStartDate." - ); - isOneOf( - subscriptionEndDate, - Object.values(subscriptionEndDate), - "Invalid subscriptionEndDate" - ); +): asserts input is SubscriptionData { + isInstanceOf(input, Object, "Input should be an object."); + + const { + arweaveAccountAddress, + applicationName, + subscriptionName, + subscriptionFeeAmount, + recurringPaymentFrequency, + subscriptionEndDate, + applicationIcon + } = input as SubscriptionData; + + isString(arweaveAccountAddress, "arweaveAccountAddress should be a string."); + isString(applicationName, "applicationName should be a string."); + isString(subscriptionName, "subscriptionName should be a string."); + isNumber(subscriptionFeeAmount, "subscriptionFeeAmount should be a number."); + isOneOf( + recurringPaymentFrequency, + Object.values(RecurringPaymentFrequency), + "Invalid recurringPaymentFrequency." + ); + + validateDate(subscriptionEndDate, "Invalid subscriptionEndDate date."); + + if (applicationIcon !== undefined) { + isString(applicationIcon, "applicationIcon should be a string."); + } +} + +function validateDate(date: string | Date, errorMessage: string): void { + let dateString: string; + + if (date instanceof Date) { + dateString = date.toISOString(); + } else { + dateString = date; + } - if (applicationIcon !== undefined) { - isString(applicationIcon, "applicationIcon should be a string."); - } + if (!dateString || isNaN(Date.parse(dateString))) { + throw new Error(errorMessage); } } From 432b88a2890e020962520e87e17e97941269c378 Mon Sep 17 00:00:00 2001 From: elehmandevelopment Date: Thu, 11 Apr 2024 11:24:25 -0600 Subject: [PATCH 37/60] fix: subscription tooltip --- .../subscriptions/subscriptionDetails.tsx | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/src/routes/popup/subscriptions/subscriptionDetails.tsx b/src/routes/popup/subscriptions/subscriptionDetails.tsx index 62298e935..9986b2485 100644 --- a/src/routes/popup/subscriptions/subscriptionDetails.tsx +++ b/src/routes/popup/subscriptions/subscriptionDetails.tsx @@ -263,10 +263,8 @@ export default function SubscriptionDetails({ id }: Props) { - Automatic Payment Threshold{" "} - + Allowance{" "} + @@ -306,11 +304,23 @@ export default function SubscriptionDetails({ id }: Props) { ); } +const InfoText: React.ReactNode = ( +
+ Set the amount you
+ want ArConnect to
+ automatically transfer
+ to missed payments +
+); + export const SubscriptionText = styled.div<{ displayTheme?: DisplayTheme; fontSize?: string; color?: string; }>` + display: flex; + align-items: center; + gap: 4px; font-size: ${(props) => props.fontSize || "16px"}; font-weight: 500; color: ${(props) => From 9133d33ebc5b6ae3ef475144239c5e0ece8ac49d Mon Sep 17 00:00:00 2001 From: elehmandevelopment Date: Thu, 11 Apr 2024 11:28:56 -0600 Subject: [PATCH 38/60] fix: add info tooltips to subscriptions --- src/routes/auth/subscription.tsx | 14 ++++++++++++-- .../popup/subscriptions/subscriptionDetails.tsx | 2 +- 2 files changed, 13 insertions(+), 3 deletions(-) diff --git a/src/routes/auth/subscription.tsx b/src/routes/auth/subscription.tsx index e8de18234..ec1ec9c23 100644 --- a/src/routes/auth/subscription.tsx +++ b/src/routes/auth/subscription.tsx @@ -1,11 +1,18 @@ import { replyToAuthRequest, useAuthParams, useAuthUtils } from "~utils/auth"; -import { ButtonV2, InputV2, Text, useToasts } from "@arconnect/components"; +import { + ButtonV2, + InputV2, + Text, + TooltipV2, + useToasts +} from "@arconnect/components"; import browser from "webextension-polyfill"; import styled from "styled-components"; import HeadV2 from "~components/popup/HeadV2"; import { Body, InfoCircle, + InfoText, Main, PaymentDetails, SubscriptionListItem, @@ -202,7 +209,10 @@ export default function Subscription() { - Automatic Payment Threshold + Allowance{" "} + + + diff --git a/src/routes/popup/subscriptions/subscriptionDetails.tsx b/src/routes/popup/subscriptions/subscriptionDetails.tsx index 9986b2485..ddf0ab681 100644 --- a/src/routes/popup/subscriptions/subscriptionDetails.tsx +++ b/src/routes/popup/subscriptions/subscriptionDetails.tsx @@ -304,7 +304,7 @@ export default function SubscriptionDetails({ id }: Props) { ); } -const InfoText: React.ReactNode = ( +export const InfoText: React.ReactNode = (
Set the amount you
want ArConnect to
From ea46e34460aff8f2ddd4145f4a6f4e78dc39e0c8 Mon Sep 17 00:00:00 2001 From: nicholas ma Date: Thu, 2 May 2024 10:06:33 -0700 Subject: [PATCH 39/60] fix: update packages --- package.json | 13 +- yarn.lock | 5572 ++++++++++++++++++++++++-------------------------- 2 files changed, 2732 insertions(+), 2853 deletions(-) diff --git a/package.json b/package.json index 3caa85d1f..a100ae788 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "arconnect", "displayName": "ArConnect", - "version": "1.7.1", + "version": "1.8.0", "description": "__MSG_extensionDescription__", "author": "th8ta", "packageManager": "yarn@1.22.18", @@ -47,7 +47,7 @@ ] }, "dependencies": { - "@arconnect/components": "^0.3.6", + "@arconnect/components": "^0.3.7", "@arconnect/keystone-sdk": "^0.0.5", "@arconnect/warp-dre": "^0.0.1", "@arconnect/webext-bridge": "^5.0.6", @@ -59,7 +59,8 @@ "@plasmohq/storage": "^1.7.2", "@segment/analytics-next": "^1.53.2", "@untitled-ui/icons-react": "^0.1.1", - "ar-gql": "^0.0.6", + "ao-tokens": "^0.0.3", + "ar-gql": "1.2.9", "arbundles": "^0.9.5", "arweave": "^1.13.0", "axios": "^1.1.3", @@ -107,7 +108,7 @@ "https-browserify": "^1.0.0", "husky": "^8.0.0", "path-browserify": "^1.0.1", - "plasmo": "^0.82.0", + "plasmo": "0.86.1", "prettier": "^2.2.1", "querystring-es3": "^0.2.1", "semantic-release": "^23.0.0", @@ -120,8 +121,10 @@ }, "resolutions": { "arbundles/arweave": "^1.13.0", + "**/axios": ">=0.28.0", + "**/msgpackr": ">=1.10.1", "human-crypto-keys/node-forge": "^1.3.1", "human-crypto-keys/crypto-key-composer/node-forge": "^1.3.1", - "@parcel/runtime-js": "2.8.3" + "@parcel/runtime-js": "^2.8.3" } } diff --git a/yarn.lock b/yarn.lock index b3e6acd01..a35e326af 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3,26 +3,21 @@ "@ampproject/remapping@^2.2.0", "@ampproject/remapping@^2.2.1": - version "2.2.1" - resolved "https://registry.yarnpkg.com/@ampproject/remapping/-/remapping-2.2.1.tgz#99e8e11851128b8702cd57c33684f1d0f260b630" - integrity sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg== + version "2.3.0" + resolved "https://registry.yarnpkg.com/@ampproject/remapping/-/remapping-2.3.0.tgz#ed441b6fa600072520ce18b43d2c8cc8caecc7f4" + integrity sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw== dependencies: - "@jridgewell/gen-mapping" "^0.3.0" - "@jridgewell/trace-mapping" "^0.3.9" - -"@apocentre/alias-sampling@^0.5.3": - version "0.5.3" - resolved "https://registry.yarnpkg.com/@apocentre/alias-sampling/-/alias-sampling-0.5.3.tgz#897ff181b48ad7b2bcb4ecf29400214888244f08" - integrity sha512-7UDWIIF9hIeJqfKXkNIzkVandlwLf1FWTSdrb9iXvOP8oF544JRXQjCbiTmCv2c9n44n/FIWtehhBfNuAx2CZA== + "@jridgewell/gen-mapping" "^0.3.5" + "@jridgewell/trace-mapping" "^0.3.24" -"@arconnect/components@^0.3.6": - version "0.3.6" - resolved "https://registry.yarnpkg.com/@arconnect/components/-/components-0.3.6.tgz#19ac4c35386f212fbb8729146d073cafe0ecad51" - integrity sha512-3xLPkApb5wc8pXSv9v/W9J2NtukO9dXtF6p6IdKrR/0m4ozeY5CFbBjE/eylPGsCaBLUaKdJZ7k7fj94AdxZww== +"@arconnect/components@^0.3.7": + version "0.3.7" + resolved "https://registry.yarnpkg.com/@arconnect/components/-/components-0.3.7.tgz#1f4b077885304e3e438e0fe2dd1d51ba88cec212" + integrity sha512-vNrWcmk+MoAeRVfSRagq1txL5sRcx863Zlm+Li7sxwgwkw6xqCRvGl8pso+KVcEObBHcNdZQ6E44pE680ttGSQ== dependencies: "@iconicicons/react" "^1.5.1" axios "^1.6.7" - framer-motion "^10.5.0" + framer-motion "^7.5.3" nanoid "^4.0.1" uuid "^9.0.1" @@ -51,87 +46,80 @@ tiny-uid "^1.1.1" webextension-polyfill "^0.9.0" -"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.22.5.tgz#234d98e1551960604f1246e6475891a570ad5658" - integrity sha512-Xmwn266vad+6DAqEB2A6V/CcZVp62BbwVmcOJc2RPuwih1kw02TjQvWVWlcKGbBPd+8/0V5DEkOcizRGYsspYQ== - dependencies: - "@babel/highlight" "^7.22.5" - -"@babel/code-frame@^7.22.13": - version "7.23.5" - resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.23.5.tgz#9009b69a8c602293476ad598ff53e4562e15c244" - integrity sha512-CgH3s1a96LipHCmSUmYFPwY7MNx8C3avkq7i4Wl3cfa662ldtUe4VM1TPXX70pfmrlWTb6jLqTYrZyT2ZTJBgA== +"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.22.13", "@babel/code-frame@^7.23.5", "@babel/code-frame@^7.24.2": + version "7.24.2" + resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.24.2.tgz#718b4b19841809a58b29b68cde80bc5e1aa6d9ae" + integrity sha512-y5+tLQyV8pg3fsiln67BVLD1P13Eg4lh5RW9mF0zUuvLrv9uIQ4MCL+CRT+FTsBlBjcIan6PGsLcBN0m3ClUyQ== dependencies: - "@babel/highlight" "^7.23.4" - chalk "^2.4.2" + "@babel/highlight" "^7.24.2" + picocolors "^1.0.0" -"@babel/compat-data@^7.22.9": - version "7.22.9" - resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.22.9.tgz#71cdb00a1ce3a329ce4cbec3a44f9fef35669730" - integrity sha512-5UamI7xkUcJ3i9qVDS+KFDEK8/7oJ55/sJMB1Ge7IEapr7KfdfV/HErR+koZwOfd+SgtFKOKRhRakdg++DcJpQ== +"@babel/compat-data@^7.23.5": + version "7.24.4" + resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.24.4.tgz#6f102372e9094f25d908ca0d34fc74c74606059a" + integrity sha512-vg8Gih2MLK+kOkHJp4gBEIkyaIi00jgWot2D9QOmmfLC8jINSOzmCLta6Bvz/JSBCqnegV0L80jhxkol5GWNfQ== "@babel/core@^7.19.6": - version "7.22.9" - resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.22.9.tgz#bd96492c68822198f33e8a256061da3cf391f58f" - integrity sha512-G2EgeufBcYw27U4hhoIwFcgc1XU7TlXJ3mv04oOv1WCuo900U/anZSPzEqNjwdjgffkk2Gs0AN0dW1CKVLcG7w== + version "7.24.5" + resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.24.5.tgz#15ab5b98e101972d171aeef92ac70d8d6718f06a" + integrity sha512-tVQRucExLQ02Boi4vdPp49svNGcfL2GhdTCT9aldhXgCJVAI21EtRfBettiuLUwce/7r6bFdgs6JFkcdTiFttA== dependencies: "@ampproject/remapping" "^2.2.0" - "@babel/code-frame" "^7.22.5" - "@babel/generator" "^7.22.9" - "@babel/helper-compilation-targets" "^7.22.9" - "@babel/helper-module-transforms" "^7.22.9" - "@babel/helpers" "^7.22.6" - "@babel/parser" "^7.22.7" - "@babel/template" "^7.22.5" - "@babel/traverse" "^7.22.8" - "@babel/types" "^7.22.5" - convert-source-map "^1.7.0" + "@babel/code-frame" "^7.24.2" + "@babel/generator" "^7.24.5" + "@babel/helper-compilation-targets" "^7.23.6" + "@babel/helper-module-transforms" "^7.24.5" + "@babel/helpers" "^7.24.5" + "@babel/parser" "^7.24.5" + "@babel/template" "^7.24.0" + "@babel/traverse" "^7.24.5" + "@babel/types" "^7.24.5" + convert-source-map "^2.0.0" debug "^4.1.0" gensync "^1.0.0-beta.2" - json5 "^2.2.2" + json5 "^2.2.3" semver "^6.3.1" -"@babel/generator@^7.22.7", "@babel/generator@^7.22.9": - version "7.22.9" - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.22.9.tgz#572ecfa7a31002fa1de2a9d91621fd895da8493d" - integrity sha512-KtLMbmicyuK2Ak/FTCJVbDnkN1SlT8/kceFTiuDiiRUUSMnHMidxSCdG4ndkTOHHpoomWe/4xkvHkEOncwjYIw== +"@babel/generator@^7.24.5": + version "7.24.5" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.24.5.tgz#e5afc068f932f05616b66713e28d0f04e99daeb3" + integrity sha512-x32i4hEXvr+iI0NEoEfDKzlemF8AmtOP8CcrRaEcpzysWuoEb1KknpcvMsHKPONoKZiDuItklgWhB18xEhr9PA== dependencies: - "@babel/types" "^7.22.5" - "@jridgewell/gen-mapping" "^0.3.2" - "@jridgewell/trace-mapping" "^0.3.17" + "@babel/types" "^7.24.5" + "@jridgewell/gen-mapping" "^0.3.5" + "@jridgewell/trace-mapping" "^0.3.25" jsesc "^2.5.1" -"@babel/helper-annotate-as-pure@^7.16.0": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.18.6.tgz#eaa49f6f80d5a33f9a5dd2276e6d6e451be0a6bb" - integrity sha512-duORpUiYrEpzKIop6iNbjnwKLAKnJ47csTyRACyEmWj0QdUrm5aqNJGHSSEQSUAvNW0ojX0dOmK9dZduvkfeXA== +"@babel/helper-annotate-as-pure@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.22.5.tgz#e7f06737b197d580a01edf75d97e2c8be99d3882" + integrity sha512-LvBTxu8bQSQkcyKOU+a1btnNFQ1dMAd0R6PyW3arXes06F6QLWLIrd681bxRPIXlrMGR3XYnW9JyML7dP3qgxg== dependencies: - "@babel/types" "^7.18.6" + "@babel/types" "^7.22.5" -"@babel/helper-compilation-targets@^7.22.9": - version "7.22.9" - resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.22.9.tgz#f9d0a7aaaa7cd32a3f31c9316a69f5a9bcacb892" - integrity sha512-7qYrNM6HjpnPHJbopxmb8hSPoZ0gsX8IvUS32JGVoy+pU9e5N0nLr1VjJoR6kA4d9dmGLxNYOjeB8sUDal2WMw== +"@babel/helper-compilation-targets@^7.23.6": + version "7.23.6" + resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.23.6.tgz#4d79069b16cbcf1461289eccfbbd81501ae39991" + integrity sha512-9JB548GZoQVmzrFgp8o7KxdgkTGm6xs9DW0o/Pim72UDjzr5ObUQ6ZzYPqA+g9OTS2bBQoctLJrky0RDCAWRgQ== dependencies: - "@babel/compat-data" "^7.22.9" - "@babel/helper-validator-option" "^7.22.5" - browserslist "^4.21.9" + "@babel/compat-data" "^7.23.5" + "@babel/helper-validator-option" "^7.23.5" + browserslist "^4.22.2" lru-cache "^5.1.1" semver "^6.3.1" -"@babel/helper-environment-visitor@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.5.tgz#f06dd41b7c1f44e1f8da6c4055b41ab3a09a7e98" - integrity sha512-XGmhECfVA/5sAt+H+xpSg0mfrHq6FzNr9Oxh7PSEBBRUb/mL7Kz3NICXb194rCqAEdxkhPT1a88teizAFyvk8Q== +"@babel/helper-environment-visitor@^7.22.20": + version "7.22.20" + resolved "https://registry.yarnpkg.com/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz#96159db61d34a29dba454c959f5ae4a649ba9167" + integrity sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA== -"@babel/helper-function-name@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.22.5.tgz#ede300828905bb15e582c037162f99d5183af1be" - integrity sha512-wtHSq6jMRE3uF2otvfuD3DIvVhOsSNshQl0Qrd7qC9oQJzHvOL4qQXlQn2916+CXGywIjpGuIkoyZRRxHPiNQQ== +"@babel/helper-function-name@^7.23.0": + version "7.23.0" + resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.23.0.tgz#1f9a3cdbd5b2698a670c30d2735f9af95ed52759" + integrity sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw== dependencies: - "@babel/template" "^7.22.5" - "@babel/types" "^7.22.5" + "@babel/template" "^7.22.15" + "@babel/types" "^7.23.0" "@babel/helper-hoist-variables@^7.22.5": version "7.22.5" @@ -140,136 +128,128 @@ dependencies: "@babel/types" "^7.22.5" -"@babel/helper-module-imports@^7.0.0", "@babel/helper-module-imports@^7.16.0", "@babel/helper-module-imports@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.22.5.tgz#1a8f4c9f4027d23f520bd76b364d44434a72660c" - integrity sha512-8Dl6+HD/cKifutF5qGd/8ZJi84QeAKh+CEe1sBzz8UayBBGg1dAIJrdHOcOM5b2MpzWL2yuotJTtGjETq0qjXg== +"@babel/helper-module-imports@^7.0.0", "@babel/helper-module-imports@^7.22.5", "@babel/helper-module-imports@^7.24.3": + version "7.24.3" + resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.24.3.tgz#6ac476e6d168c7c23ff3ba3cf4f7841d46ac8128" + integrity sha512-viKb0F9f2s0BCS22QSF308z/+1YWKV/76mwt61NBzS5izMzDPwdq1pTrzf+Li3npBWX9KdQbkeCt1jSAM7lZqg== dependencies: - "@babel/types" "^7.22.5" + "@babel/types" "^7.24.0" -"@babel/helper-module-transforms@^7.22.9": - version "7.22.9" - resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.22.9.tgz#92dfcb1fbbb2bc62529024f72d942a8c97142129" - integrity sha512-t+WA2Xn5K+rTeGtC8jCsdAH52bjggG5TKRuRrAGNM/mjIbO4GxvlLMFOEz9wXY5I2XQ60PMFsAG2WIcG82dQMQ== +"@babel/helper-module-transforms@^7.24.5": + version "7.24.5" + resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.24.5.tgz#ea6c5e33f7b262a0ae762fd5986355c45f54a545" + integrity sha512-9GxeY8c2d2mdQUP1Dye0ks3VDyIMS98kt/llQ2nUId8IsWqTF0l1LkSX0/uP7l7MCDrzXS009Hyhe2gzTiGW8A== dependencies: - "@babel/helper-environment-visitor" "^7.22.5" - "@babel/helper-module-imports" "^7.22.5" - "@babel/helper-simple-access" "^7.22.5" - "@babel/helper-split-export-declaration" "^7.22.6" - "@babel/helper-validator-identifier" "^7.22.5" + "@babel/helper-environment-visitor" "^7.22.20" + "@babel/helper-module-imports" "^7.24.3" + "@babel/helper-simple-access" "^7.24.5" + "@babel/helper-split-export-declaration" "^7.24.5" + "@babel/helper-validator-identifier" "^7.24.5" -"@babel/helper-simple-access@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.22.5.tgz#4938357dc7d782b80ed6dbb03a0fba3d22b1d5de" - integrity sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w== - dependencies: - "@babel/types" "^7.22.5" +"@babel/helper-plugin-utils@^7.24.0": + version "7.24.5" + resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.5.tgz#a924607dd254a65695e5bd209b98b902b3b2f11a" + integrity sha512-xjNLDopRzW2o6ba0gKbkZq5YWEBaK3PCyTOY1K2P/O07LGMhMqlMXPxwN4S5/RhWuCobT8z0jrlKGlYmeR1OhQ== -"@babel/helper-split-export-declaration@^7.22.6": - version "7.22.6" - resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.6.tgz#322c61b7310c0997fe4c323955667f18fcefb91c" - integrity sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g== +"@babel/helper-simple-access@^7.24.5": + version "7.24.5" + resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.24.5.tgz#50da5b72f58c16b07fbd992810be6049478e85ba" + integrity sha512-uH3Hmf5q5n7n8mz7arjUlDOCbttY/DW4DYhE6FUsjKJ/oYC1kQQUvwEQWxRwUpX9qQKRXeqLwWxrqilMrf32sQ== dependencies: - "@babel/types" "^7.22.5" - -"@babel/helper-string-parser@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.22.5.tgz#533f36457a25814cf1df6488523ad547d784a99f" - integrity sha512-mM4COjgZox8U+JcXQwPijIZLElkgEpO5rsERVDJTc2qfCDfERyob6k5WegS14SX18IIjv+XD+GrqNumY5JRCDw== + "@babel/types" "^7.24.5" -"@babel/helper-validator-identifier@^7.22.20": - version "7.22.20" - resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz#c4ae002c61d2879e724581d96665583dbc1dc0e0" - integrity sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A== +"@babel/helper-split-export-declaration@^7.24.5": + version "7.24.5" + resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.24.5.tgz#b9a67f06a46b0b339323617c8c6213b9055a78b6" + integrity sha512-5CHncttXohrHk8GWOFCcCl4oRD9fKosWlIRgWm4ql9VYioKm52Mk2xsmoohvm7f3JoiLSM5ZgJuRaf5QZZYd3Q== + dependencies: + "@babel/types" "^7.24.5" -"@babel/helper-validator-identifier@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.5.tgz#9544ef6a33999343c8740fa51350f30eeaaaf193" - integrity sha512-aJXu+6lErq8ltp+JhkJUfk1MTGyuA4v7f3pA+BJ5HLfNC6nAQ0Cpi9uOquUj8Hehg0aUiHzWQbOVJGao6ztBAQ== +"@babel/helper-string-parser@^7.24.1": + version "7.24.1" + resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.24.1.tgz#f99c36d3593db9540705d0739a1f10b5e20c696e" + integrity sha512-2ofRCjnnA9y+wk8b9IAREroeUP02KHp431N2mhKniy2yKIDKpbrHv9eXwm8cBeWQYcJmzv5qKCu65P47eCF7CQ== -"@babel/helper-validator-option@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.22.5.tgz#de52000a15a177413c8234fa3a8af4ee8102d0ac" - integrity sha512-R3oB6xlIVKUnxNUxbmgq7pKjxpru24zlimpE8WK47fACIlM0II/Hm1RS8IaOI7NgCr6LNS+jl5l75m20npAziw== +"@babel/helper-validator-identifier@^7.24.5": + version "7.24.5" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.24.5.tgz#918b1a7fa23056603506370089bd990d8720db62" + integrity sha512-3q93SSKX2TWCG30M2G2kwaKeTYgEUp5Snjuj8qm729SObL6nbtUldAi37qbxkD5gg3xnBio+f9nqpSepGZMvxA== -"@babel/helpers@^7.22.6": - version "7.22.6" - resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.22.6.tgz#8e61d3395a4f0c5a8060f309fb008200969b5ecd" - integrity sha512-YjDs6y/fVOYFV8hAf1rxd1QvR9wJe1pDBZ2AREKq/SDayfPzgk0PBnVuTCE5X1acEpMMNOVUqoe+OwiZGJ+OaA== - dependencies: - "@babel/template" "^7.22.5" - "@babel/traverse" "^7.22.6" - "@babel/types" "^7.22.5" +"@babel/helper-validator-option@^7.23.5": + version "7.23.5" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.23.5.tgz#907a3fbd4523426285365d1206c423c4c5520307" + integrity sha512-85ttAOMLsr53VgXkTbkx8oA6YTfT4q7/HzXSLEYmjcSTJPMPQtvq1BD79Byep5xMUYbGRzEpDsjUf3dyp54IKw== -"@babel/highlight@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.22.5.tgz#aa6c05c5407a67ebce408162b7ede789b4d22031" - integrity sha512-BSKlD1hgnedS5XRnGOljZawtag7H1yPfQp0tdNJCHoH6AZ+Pcm9VvkrK59/Yy593Ypg0zMxH2BxD1VPYUQ7UIw== +"@babel/helpers@^7.24.5": + version "7.24.5" + resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.24.5.tgz#fedeb87eeafa62b621160402181ad8585a22a40a" + integrity sha512-CiQmBMMpMQHwM5m01YnrM6imUG1ebgYJ+fAIW4FZe6m4qHTPaRHti+R8cggAwkdz4oXhtO4/K9JWlh+8hIfR2Q== dependencies: - "@babel/helper-validator-identifier" "^7.22.5" - chalk "^2.0.0" - js-tokens "^4.0.0" + "@babel/template" "^7.24.0" + "@babel/traverse" "^7.24.5" + "@babel/types" "^7.24.5" -"@babel/highlight@^7.23.4": - version "7.23.4" - resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.23.4.tgz#edaadf4d8232e1a961432db785091207ead0621b" - integrity sha512-acGdbYSfp2WheJoJm/EBBBLh/ID8KDc64ISZ9DYtBmC8/Q204PZJLHyzeB5qMzJ5trcOkybd78M4x2KWsUq++A== +"@babel/highlight@^7.24.2": + version "7.24.5" + resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.24.5.tgz#bc0613f98e1dd0720e99b2a9ee3760194a704b6e" + integrity sha512-8lLmua6AVh/8SLJRRVD6V8p73Hir9w5mJrhE+IPpILG31KKlI9iz5zmBYKcWPS59qSfgP9RaSBQSHHE81WKuEw== dependencies: - "@babel/helper-validator-identifier" "^7.22.20" + "@babel/helper-validator-identifier" "^7.24.5" chalk "^2.4.2" js-tokens "^4.0.0" + picocolors "^1.0.0" -"@babel/parser@^7.20.15", "@babel/parser@^7.21.3", "@babel/parser@^7.22.5", "@babel/parser@^7.22.7": - version "7.22.7" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.22.7.tgz#df8cf085ce92ddbdbf668a7f186ce848c9036cae" - integrity sha512-7NF8pOkHP5o2vpmGgNGcfAeCvOYhGLyA3Z4eBQkT1RJlWu47n63bCs93QfJ2hIAFCil7L5P2IWhs1oToVgrL0Q== +"@babel/parser@^7.20.15", "@babel/parser@^7.21.3", "@babel/parser@^7.24.0", "@babel/parser@^7.24.5": + version "7.24.5" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.24.5.tgz#4a4d5ab4315579e5398a82dcf636ca80c3392790" + integrity sha512-EOv5IK8arwh3LI47dz1b0tKUb/1uhHAnHJOrjgtQMIpu1uXd9mlFrJg9IUgGUgZ41Ch0K8REPTYpO7B76b4vJg== -"@babel/runtime@^7.18.3": - version "7.22.6" - resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.22.6.tgz#57d64b9ae3cff1d67eb067ae117dac087f5bd438" - integrity sha512-wDb5pWm4WDdF6LFUde3Jl8WzPA+3ZbxYqkC6xAXuD3irdEHN1k0NfTRrJD8ZD378SJ61miMLCqIOXYhd8x+AJQ== +"@babel/plugin-syntax-jsx@^7.22.5": + version "7.24.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.24.1.tgz#3f6ca04b8c841811dbc3c5c5f837934e0d626c10" + integrity sha512-2eCtxZXf+kbkMIsXS4poTvT4Yu5rXiRa+9xGVT56raghjmBTKMpFNc9R4IDiB4emao9eO22Ox7CxuJG7BgExqA== dependencies: - regenerator-runtime "^0.13.11" + "@babel/helper-plugin-utils" "^7.24.0" -"@babel/runtime@^7.20.1", "@babel/runtime@^7.5.5": - version "7.23.9" - resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.23.9.tgz#47791a15e4603bb5f905bc0753801cf21d6345f7" - integrity sha512-0CX6F+BI2s9dkUqr08KFrAIZgNFj75rdBU/DjCyYLIaV/quFjkk6T+EJ2LkZHyZTbEV4L5p97mNkUsHl2wLFAw== +"@babel/runtime@^7.18.3", "@babel/runtime@^7.20.1", "@babel/runtime@^7.5.5": + version "7.24.5" + resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.24.5.tgz#230946857c053a36ccc66e1dd03b17dd0c4ed02c" + integrity sha512-Nms86NXrsaeU9vbBJKni6gXiEXZ4CVpYVzEjDH9Sb8vmZ3UljyA1GSOJl/6LGPO8EHLuSF9H+IxNXHPX8QHJ4g== dependencies: regenerator-runtime "^0.14.0" -"@babel/template@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.22.5.tgz#0c8c4d944509875849bd0344ff0050756eefc6ec" - integrity sha512-X7yV7eiwAxdj9k94NEylvbVHLiVG1nvzCV2EAowhxLTwODV1jl9UzZ48leOC0sH7OnuHrIkllaBgneUykIcZaw== +"@babel/template@^7.22.15", "@babel/template@^7.24.0": + version "7.24.0" + resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.24.0.tgz#c6a524aa93a4a05d66aaf31654258fae69d87d50" + integrity sha512-Bkf2q8lMB0AFpX0NFEqSbx1OkTHf0f+0j82mkw+ZpzBnkk7e9Ql0891vlfgi+kHwOk8tQjiQHpqh4LaSa0fKEA== dependencies: - "@babel/code-frame" "^7.22.5" - "@babel/parser" "^7.22.5" - "@babel/types" "^7.22.5" + "@babel/code-frame" "^7.23.5" + "@babel/parser" "^7.24.0" + "@babel/types" "^7.24.0" -"@babel/traverse@^7.22.6", "@babel/traverse@^7.22.8", "@babel/traverse@^7.4.5": - version "7.22.8" - resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.22.8.tgz#4d4451d31bc34efeae01eac222b514a77aa4000e" - integrity sha512-y6LPR+wpM2I3qJrsheCTwhIinzkETbplIgPBbwvqPKc+uljeA5gP+3nP8irdYt1mjQaDnlIcG+dw8OjAco4GXw== +"@babel/traverse@^7.24.5", "@babel/traverse@^7.4.5": + version "7.24.5" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.24.5.tgz#972aa0bc45f16983bf64aa1f877b2dd0eea7e6f8" + integrity sha512-7aaBLeDQ4zYcUFDUD41lJc1fG8+5IU9DaNSJAgal866FGvmD5EbWQgnEC6kO1gGLsX0esNkfnJSndbTXA3r7UA== dependencies: - "@babel/code-frame" "^7.22.5" - "@babel/generator" "^7.22.7" - "@babel/helper-environment-visitor" "^7.22.5" - "@babel/helper-function-name" "^7.22.5" + "@babel/code-frame" "^7.24.2" + "@babel/generator" "^7.24.5" + "@babel/helper-environment-visitor" "^7.22.20" + "@babel/helper-function-name" "^7.23.0" "@babel/helper-hoist-variables" "^7.22.5" - "@babel/helper-split-export-declaration" "^7.22.6" - "@babel/parser" "^7.22.7" - "@babel/types" "^7.22.5" - debug "^4.1.0" + "@babel/helper-split-export-declaration" "^7.24.5" + "@babel/parser" "^7.24.5" + "@babel/types" "^7.24.5" + debug "^4.3.1" globals "^11.1.0" -"@babel/types@^7.18.6", "@babel/types@^7.20.0", "@babel/types@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.22.5.tgz#cd93eeaab025880a3a47ec881f4b096a5b786fbe" - integrity sha512-zo3MIHGOkPOfoRXitsgHLjEXmlDaD/5KU1Uzuc9GNiZPhSqVxVRtxuPaSBZDsYZ9qV88AjtMtWW7ww98loJ9KA== +"@babel/types@^7.20.0", "@babel/types@^7.22.5", "@babel/types@^7.23.0", "@babel/types@^7.24.0", "@babel/types@^7.24.5": + version "7.24.5" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.24.5.tgz#7661930afc638a5383eb0c4aee59b74f38db84d7" + integrity sha512-6mQNsaLeXTw0nxYUYu+NSa4Hx4BlF1x1x8/PMFbiR+GBSr+2DkECc69b8hgy2frEodNcvPffeH8YfWd3LI6jhQ== dependencies: - "@babel/helper-string-parser" "^7.22.5" - "@babel/helper-validator-identifier" "^7.22.5" + "@babel/helper-string-parser" "^7.24.1" + "@babel/helper-validator-identifier" "^7.24.5" to-fast-properties "^2.0.0" "@changesets/apply-release-plan@^7.0.0": @@ -484,21 +464,21 @@ "@emotion/memoize" "0.7.4" "@emotion/is-prop-valid@^1.1.0": - version "1.2.0" - resolved "https://registry.yarnpkg.com/@emotion/is-prop-valid/-/is-prop-valid-1.2.0.tgz#7f2d35c97891669f7e276eb71c83376a5dc44c83" - integrity sha512-3aDpDprjM0AwaxGE09bOPkNxHpBd+kA6jty3RnaEXdweX1DF1U3VQpPYb0g1IStAuK7SVQ1cy+bNBBKp4W3Fjg== + version "1.2.2" + resolved "https://registry.yarnpkg.com/@emotion/is-prop-valid/-/is-prop-valid-1.2.2.tgz#d4175076679c6a26faa92b03bb786f9e52612337" + integrity sha512-uNsoYd37AFmaCdXlg6EYD1KaPOaRWRByMCYzbKUX4+hhMfrxdVSelShywL4JVaAeM/eHUOSprYBQls+/neX3pw== dependencies: - "@emotion/memoize" "^0.8.0" + "@emotion/memoize" "^0.8.1" "@emotion/memoize@0.7.4": version "0.7.4" resolved "https://registry.yarnpkg.com/@emotion/memoize/-/memoize-0.7.4.tgz#19bf0f5af19149111c40d98bb0cf82119f5d9eeb" integrity sha512-Ja/Vfqe3HpuzRsG1oBtWTHk2PGZ7GR+2Vz5iYGelAw8dx32K0y7PjVuxK6z1nMpZOqAFsRUPCkK1YjJ56qJlgw== -"@emotion/memoize@^0.8.0": - version "0.8.0" - resolved "https://registry.yarnpkg.com/@emotion/memoize/-/memoize-0.8.0.tgz#f580f9beb67176fa57aae70b08ed510e1b18980f" - integrity sha512-G/YwXTkv7Den9mXDO7AhLWkE3q+I92B+VqAE+dYG4NGPaHZGvt3G8Q0p9vmE+sq7rTGphUbAvmQ9YpbfMQGGlA== +"@emotion/memoize@^0.8.1": + version "0.8.1" + resolved "https://registry.yarnpkg.com/@emotion/memoize/-/memoize-0.8.1.tgz#c1ddb040429c6d21d38cc945fe75c818cfb68e17" + integrity sha512-W2P2c/VRW1/1tLox0mVUalvnWXxavmv/Oum2aPsRcoDJuob75FC3Y8FbpfLwUegRcxINtGUMPq0tFCvYNTBXNA== "@emotion/stylis@^0.8.4": version "0.8.5" @@ -510,115 +490,115 @@ resolved "https://registry.yarnpkg.com/@emotion/unitless/-/unitless-0.7.5.tgz#77211291c1900a700b8a78cfafda3160d76949ed" integrity sha512-OWORNpfjMsSSUBVrRBVGECkhWcULOAJz9ZW8uK9qgxD+87M7jHRcvh/A96XXNhXTLmKcoYSQtBEX7lHMO7YRwg== -"@esbuild/android-arm64@0.18.16": - version "0.18.16" - resolved "https://registry.yarnpkg.com/@esbuild/android-arm64/-/android-arm64-0.18.16.tgz#34f562abc0015933aabd41b3d50d8d3359e30155" - integrity sha512-wsCqSPqLz+6Ov+OM4EthU43DyYVVyfn15S4j1bJzylDpc1r1jZFFfJQNfDuT8SlgwuqpmpJXK4uPlHGw6ve7eA== - -"@esbuild/android-arm@0.18.16": - version "0.18.16" - resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.18.16.tgz#ef6f9aa59a79a9b9330a2e73f7eb402c6630c267" - integrity sha512-gCHjjQmA8L0soklKbLKA6pgsLk1byULuHe94lkZDzcO3/Ta+bbeewJioEn1Fr7kgy9NWNFy/C+MrBwC6I/WCug== - -"@esbuild/android-x64@0.18.16": - version "0.18.16" - resolved "https://registry.yarnpkg.com/@esbuild/android-x64/-/android-x64-0.18.16.tgz#ed7444cb17542932c67b15e20528686853239cfd" - integrity sha512-ldsTXolyA3eTQ1//4DS+E15xl0H/3DTRJaRL0/0PgkqDsI0fV/FlOtD+h0u/AUJr+eOTlZv4aC9gvfppo3C4sw== - -"@esbuild/darwin-arm64@0.18.16": - version "0.18.16" - resolved "https://registry.yarnpkg.com/@esbuild/darwin-arm64/-/darwin-arm64-0.18.16.tgz#3c5a083e6e08a50f478fa243939989d86be1c6bf" - integrity sha512-aBxruWCII+OtluORR/KvisEw0ALuw/qDQWvkoosA+c/ngC/Kwk0lLaZ+B++LLS481/VdydB2u6tYpWxUfnLAIw== - -"@esbuild/darwin-x64@0.18.16": - version "0.18.16" - resolved "https://registry.yarnpkg.com/@esbuild/darwin-x64/-/darwin-x64-0.18.16.tgz#a8f3b61bee2807131cbe28eb164ad2b0333b59f5" - integrity sha512-6w4Dbue280+rp3LnkgmriS1icOUZDyPuZo/9VsuMUTns7SYEiOaJ7Ca1cbhu9KVObAWfmdjUl4gwy9TIgiO5eA== - -"@esbuild/freebsd-arm64@0.18.16": - version "0.18.16" - resolved "https://registry.yarnpkg.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.18.16.tgz#9bdbb3f0e5f0842b21c9b8602e70c106174ac24c" - integrity sha512-x35fCebhe9s979DGKbVAwXUOcTmCIE32AIqB9CB1GralMIvxdnMLAw5CnID17ipEw9/3MvDsusj/cspYt2ZLNQ== - -"@esbuild/freebsd-x64@0.18.16": - version "0.18.16" - resolved "https://registry.yarnpkg.com/@esbuild/freebsd-x64/-/freebsd-x64-0.18.16.tgz#24f73956436495cc7a5a4bf06be6b661aea6a2c1" - integrity sha512-YM98f+PeNXF3GbxIJlUsj+McUWG1irguBHkszCIwfr3BXtXZsXo0vqybjUDFfu9a8Wr7uUD/YSmHib+EeGAFlg== - -"@esbuild/linux-arm64@0.18.16": - version "0.18.16" - resolved "https://registry.yarnpkg.com/@esbuild/linux-arm64/-/linux-arm64-0.18.16.tgz#244569757f9cbd912f5a595a8ad8144f8c915f13" - integrity sha512-XIqhNUxJiuy+zsR77+H5Z2f7s4YRlriSJKtvx99nJuG5ATuJPjmZ9n0ANgnGlPCpXGSReFpgcJ7O3SMtzIFeiQ== - -"@esbuild/linux-arm@0.18.16": - version "0.18.16" - resolved "https://registry.yarnpkg.com/@esbuild/linux-arm/-/linux-arm-0.18.16.tgz#d63923c63af534032cc5ea0b2a0b3de10f8357f5" - integrity sha512-b5ABb+5Ha2C9JkeZXV+b+OruR1tJ33ePmv9ZwMeETSEKlmu/WJ45XTTG+l6a2KDsQtJJ66qo/hbSGBtk0XVLHw== - -"@esbuild/linux-ia32@0.18.16": - version "0.18.16" - resolved "https://registry.yarnpkg.com/@esbuild/linux-ia32/-/linux-ia32-0.18.16.tgz#a8825ccea6309f0bccfc5d87b43163ba804c2f20" - integrity sha512-no+pfEpwnRvIyH+txbBAWtjxPU9grslmTBfsmDndj7bnBmr55rOo/PfQmRfz7Qg9isswt1FP5hBbWb23fRWnow== - -"@esbuild/linux-loong64@0.18.16": - version "0.18.16" - resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.18.16.tgz#f530e820fc3c61cf2206155b994aeab53b6d25be" - integrity sha512-Zbnczs9ZXjmo0oZSS0zbNlJbcwKXa/fcNhYQjahDs4Xg18UumpXG/lwM2lcSvHS3mTrRyCYZvJbmzYc4laRI1g== - -"@esbuild/linux-mips64el@0.18.16": - version "0.18.16" - resolved "https://registry.yarnpkg.com/@esbuild/linux-mips64el/-/linux-mips64el-0.18.16.tgz#2d47ace539257896865d243641bd6716684a1e82" - integrity sha512-YMF7hih1HVR/hQVa/ot4UVffc5ZlrzEb3k2ip0nZr1w6fnYypll9td2qcoMLvd3o8j3y6EbJM3MyIcXIVzXvQQ== - -"@esbuild/linux-ppc64@0.18.16": - version "0.18.16" - resolved "https://registry.yarnpkg.com/@esbuild/linux-ppc64/-/linux-ppc64-0.18.16.tgz#d6913e7e9be9e242a6a20402800141bdbe7009f7" - integrity sha512-Wkz++LZ29lDwUyTSEnzDaaP5OveOgTU69q9IyIw9WqLRxM4BjTBjz9un4G6TOvehWpf/J3gYVFN96TjGHrbcNQ== - -"@esbuild/linux-riscv64@0.18.16": - version "0.18.16" - resolved "https://registry.yarnpkg.com/@esbuild/linux-riscv64/-/linux-riscv64-0.18.16.tgz#8f33b627389c8234fe61f4636c134f17fb1d9b09" - integrity sha512-LFMKZ30tk78/mUv1ygvIP+568bwf4oN6reG/uczXnz6SvFn4e2QUFpUpZY9iSJT6Qpgstrhef/nMykIXZtZWGQ== - -"@esbuild/linux-s390x@0.18.16": - version "0.18.16" - resolved "https://registry.yarnpkg.com/@esbuild/linux-s390x/-/linux-s390x-0.18.16.tgz#4d44c030f78962cf410f604f92fcc1505e4afdde" - integrity sha512-3ZC0BgyYHYKfZo3AV2/66TD/I9tlSBaW7eWTEIkrQQKfJIifKMMttXl9FrAg+UT0SGYsCRLI35Gwdmm96vlOjg== - -"@esbuild/linux-x64@0.18.16": - version "0.18.16" - resolved "https://registry.yarnpkg.com/@esbuild/linux-x64/-/linux-x64-0.18.16.tgz#8846d00e16b1e93eb488c8b4dd51c946adfc236f" - integrity sha512-xu86B3647DihHJHv/wx3NCz2Dg1gjQ8bbf9cVYZzWKY+gsvxYmn/lnVlqDRazObc3UMwoHpUhNYaZset4X8IPA== - -"@esbuild/netbsd-x64@0.18.16": - version "0.18.16" - resolved "https://registry.yarnpkg.com/@esbuild/netbsd-x64/-/netbsd-x64-0.18.16.tgz#6514a86bd07744f3100d2813ea2fb6520d53e72e" - integrity sha512-uVAgpimx9Ffw3xowtg/7qQPwHFx94yCje+DoBx+LNm2ePDpQXHrzE+Sb0Si2VBObYz+LcRps15cq+95YM7gkUw== - -"@esbuild/openbsd-x64@0.18.16": - version "0.18.16" - resolved "https://registry.yarnpkg.com/@esbuild/openbsd-x64/-/openbsd-x64-0.18.16.tgz#ae67ce766d58aab6c0e6037f1a76f15df4a2a5fe" - integrity sha512-6OjCQM9wf7z8/MBi6BOWaTL2AS/SZudsZtBziXMtNI8r/U41AxS9x7jn0ATOwVy08OotwkPqGRMkpPR2wcTJXA== - -"@esbuild/sunos-x64@0.18.16": - version "0.18.16" - resolved "https://registry.yarnpkg.com/@esbuild/sunos-x64/-/sunos-x64-0.18.16.tgz#998efe8a58374b7351ac710455051639a6ce6a05" - integrity sha512-ZoNkruFYJp9d1LbUYCh8awgQDvB9uOMZqlQ+gGEZR7v6C+N6u7vPr86c+Chih8niBR81Q/bHOSKGBK3brJyvkQ== - -"@esbuild/win32-arm64@0.18.16": - version "0.18.16" - resolved "https://registry.yarnpkg.com/@esbuild/win32-arm64/-/win32-arm64-0.18.16.tgz#8de33682243508eef8d4de1816df2c05adad2b21" - integrity sha512-+j4anzQ9hrs+iqO+/wa8UE6TVkKua1pXUb0XWFOx0FiAj6R9INJ+WE//1/Xo6FG1vB5EpH3ko+XcgwiDXTxcdw== - -"@esbuild/win32-ia32@0.18.16": - version "0.18.16" - resolved "https://registry.yarnpkg.com/@esbuild/win32-ia32/-/win32-ia32-0.18.16.tgz#95c9f4274fb3ef9e449d464ffe3e3b7fa091503b" - integrity sha512-5PFPmq3sSKTp9cT9dzvI67WNfRZGvEVctcZa1KGjDDu4n3H8k59Inbk0du1fz0KrAbKKNpJbdFXQMDUz7BG4rQ== - -"@esbuild/win32-x64@0.18.16": - version "0.18.16" - resolved "https://registry.yarnpkg.com/@esbuild/win32-x64/-/win32-x64-0.18.16.tgz#5be58d31d0120c68af8e38b702e6937ce764cd68" - integrity sha512-sCIVrrtcWN5Ua7jYXNG1xD199IalrbfV2+0k/2Zf2OyV2FtnQnMgdzgpRAbi4AWlKJj1jkX+M+fEGPQj6BQB4w== +"@esbuild/android-arm64@0.18.20": + version "0.18.20" + resolved "https://registry.yarnpkg.com/@esbuild/android-arm64/-/android-arm64-0.18.20.tgz#984b4f9c8d0377443cc2dfcef266d02244593622" + integrity sha512-Nz4rJcchGDtENV0eMKUNa6L12zz2zBDXuhj/Vjh18zGqB44Bi7MBMSXjgunJgjRhCmKOjnPuZp4Mb6OKqtMHLQ== + +"@esbuild/android-arm@0.18.20": + version "0.18.20" + resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.18.20.tgz#fedb265bc3a589c84cc11f810804f234947c3682" + integrity sha512-fyi7TDI/ijKKNZTUJAQqiG5T7YjJXgnzkURqmGj13C6dCqckZBLdl4h7bkhHt/t0WP+zO9/zwroDvANaOqO5Sw== + +"@esbuild/android-x64@0.18.20": + version "0.18.20" + resolved "https://registry.yarnpkg.com/@esbuild/android-x64/-/android-x64-0.18.20.tgz#35cf419c4cfc8babe8893d296cd990e9e9f756f2" + integrity sha512-8GDdlePJA8D6zlZYJV/jnrRAi6rOiNaCC/JclcXpB+KIuvfBN4owLtgzY2bsxnx666XjJx2kDPUmnTtR8qKQUg== + +"@esbuild/darwin-arm64@0.18.20": + version "0.18.20" + resolved "https://registry.yarnpkg.com/@esbuild/darwin-arm64/-/darwin-arm64-0.18.20.tgz#08172cbeccf95fbc383399a7f39cfbddaeb0d7c1" + integrity sha512-bxRHW5kHU38zS2lPTPOyuyTm+S+eobPUnTNkdJEfAddYgEcll4xkT8DB9d2008DtTbl7uJag2HuE5NZAZgnNEA== + +"@esbuild/darwin-x64@0.18.20": + version "0.18.20" + resolved "https://registry.yarnpkg.com/@esbuild/darwin-x64/-/darwin-x64-0.18.20.tgz#d70d5790d8bf475556b67d0f8b7c5bdff053d85d" + integrity sha512-pc5gxlMDxzm513qPGbCbDukOdsGtKhfxD1zJKXjCCcU7ju50O7MeAZ8c4krSJcOIJGFR+qx21yMMVYwiQvyTyQ== + +"@esbuild/freebsd-arm64@0.18.20": + version "0.18.20" + resolved "https://registry.yarnpkg.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.18.20.tgz#98755cd12707f93f210e2494d6a4b51b96977f54" + integrity sha512-yqDQHy4QHevpMAaxhhIwYPMv1NECwOvIpGCZkECn8w2WFHXjEwrBn3CeNIYsibZ/iZEUemj++M26W3cNR5h+Tw== + +"@esbuild/freebsd-x64@0.18.20": + version "0.18.20" + resolved "https://registry.yarnpkg.com/@esbuild/freebsd-x64/-/freebsd-x64-0.18.20.tgz#c1eb2bff03915f87c29cece4c1a7fa1f423b066e" + integrity sha512-tgWRPPuQsd3RmBZwarGVHZQvtzfEBOreNuxEMKFcd5DaDn2PbBxfwLcj4+aenoh7ctXcbXmOQIn8HI6mCSw5MQ== + +"@esbuild/linux-arm64@0.18.20": + version "0.18.20" + resolved "https://registry.yarnpkg.com/@esbuild/linux-arm64/-/linux-arm64-0.18.20.tgz#bad4238bd8f4fc25b5a021280c770ab5fc3a02a0" + integrity sha512-2YbscF+UL7SQAVIpnWvYwM+3LskyDmPhe31pE7/aoTMFKKzIc9lLbyGUpmmb8a8AixOL61sQ/mFh3jEjHYFvdA== + +"@esbuild/linux-arm@0.18.20": + version "0.18.20" + resolved "https://registry.yarnpkg.com/@esbuild/linux-arm/-/linux-arm-0.18.20.tgz#3e617c61f33508a27150ee417543c8ab5acc73b0" + integrity sha512-/5bHkMWnq1EgKr1V+Ybz3s1hWXok7mDFUMQ4cG10AfW3wL02PSZi5kFpYKrptDsgb2WAJIvRcDm+qIvXf/apvg== + +"@esbuild/linux-ia32@0.18.20": + version "0.18.20" + resolved "https://registry.yarnpkg.com/@esbuild/linux-ia32/-/linux-ia32-0.18.20.tgz#699391cccba9aee6019b7f9892eb99219f1570a7" + integrity sha512-P4etWwq6IsReT0E1KHU40bOnzMHoH73aXp96Fs8TIT6z9Hu8G6+0SHSw9i2isWrD2nbx2qo5yUqACgdfVGx7TA== + +"@esbuild/linux-loong64@0.18.20": + version "0.18.20" + resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.18.20.tgz#e6fccb7aac178dd2ffb9860465ac89d7f23b977d" + integrity sha512-nXW8nqBTrOpDLPgPY9uV+/1DjxoQ7DoB2N8eocyq8I9XuqJ7BiAMDMf9n1xZM9TgW0J8zrquIb/A7s3BJv7rjg== + +"@esbuild/linux-mips64el@0.18.20": + version "0.18.20" + resolved "https://registry.yarnpkg.com/@esbuild/linux-mips64el/-/linux-mips64el-0.18.20.tgz#eeff3a937de9c2310de30622a957ad1bd9183231" + integrity sha512-d5NeaXZcHp8PzYy5VnXV3VSd2D328Zb+9dEq5HE6bw6+N86JVPExrA6O68OPwobntbNJ0pzCpUFZTo3w0GyetQ== + +"@esbuild/linux-ppc64@0.18.20": + version "0.18.20" + resolved "https://registry.yarnpkg.com/@esbuild/linux-ppc64/-/linux-ppc64-0.18.20.tgz#2f7156bde20b01527993e6881435ad79ba9599fb" + integrity sha512-WHPyeScRNcmANnLQkq6AfyXRFr5D6N2sKgkFo2FqguP44Nw2eyDlbTdZwd9GYk98DZG9QItIiTlFLHJHjxP3FA== + +"@esbuild/linux-riscv64@0.18.20": + version "0.18.20" + resolved "https://registry.yarnpkg.com/@esbuild/linux-riscv64/-/linux-riscv64-0.18.20.tgz#6628389f210123d8b4743045af8caa7d4ddfc7a6" + integrity sha512-WSxo6h5ecI5XH34KC7w5veNnKkju3zBRLEQNY7mv5mtBmrP/MjNBCAlsM2u5hDBlS3NGcTQpoBvRzqBcRtpq1A== + +"@esbuild/linux-s390x@0.18.20": + version "0.18.20" + resolved "https://registry.yarnpkg.com/@esbuild/linux-s390x/-/linux-s390x-0.18.20.tgz#255e81fb289b101026131858ab99fba63dcf0071" + integrity sha512-+8231GMs3mAEth6Ja1iK0a1sQ3ohfcpzpRLH8uuc5/KVDFneH6jtAJLFGafpzpMRO6DzJ6AvXKze9LfFMrIHVQ== + +"@esbuild/linux-x64@0.18.20": + version "0.18.20" + resolved "https://registry.yarnpkg.com/@esbuild/linux-x64/-/linux-x64-0.18.20.tgz#c7690b3417af318a9b6f96df3031a8865176d338" + integrity sha512-UYqiqemphJcNsFEskc73jQ7B9jgwjWrSayxawS6UVFZGWrAAtkzjxSqnoclCXxWtfwLdzU+vTpcNYhpn43uP1w== + +"@esbuild/netbsd-x64@0.18.20": + version "0.18.20" + resolved "https://registry.yarnpkg.com/@esbuild/netbsd-x64/-/netbsd-x64-0.18.20.tgz#30e8cd8a3dded63975e2df2438ca109601ebe0d1" + integrity sha512-iO1c++VP6xUBUmltHZoMtCUdPlnPGdBom6IrO4gyKPFFVBKioIImVooR5I83nTew5UOYrk3gIJhbZh8X44y06A== + +"@esbuild/openbsd-x64@0.18.20": + version "0.18.20" + resolved "https://registry.yarnpkg.com/@esbuild/openbsd-x64/-/openbsd-x64-0.18.20.tgz#7812af31b205055874c8082ea9cf9ab0da6217ae" + integrity sha512-e5e4YSsuQfX4cxcygw/UCPIEP6wbIL+se3sxPdCiMbFLBWu0eiZOJ7WoD+ptCLrmjZBK1Wk7I6D/I3NglUGOxg== + +"@esbuild/sunos-x64@0.18.20": + version "0.18.20" + resolved "https://registry.yarnpkg.com/@esbuild/sunos-x64/-/sunos-x64-0.18.20.tgz#d5c275c3b4e73c9b0ecd38d1ca62c020f887ab9d" + integrity sha512-kDbFRFp0YpTQVVrqUd5FTYmWo45zGaXe0X8E1G/LKFC0v8x0vWrhOWSLITcCn63lmZIxfOMXtCfti/RxN/0wnQ== + +"@esbuild/win32-arm64@0.18.20": + version "0.18.20" + resolved "https://registry.yarnpkg.com/@esbuild/win32-arm64/-/win32-arm64-0.18.20.tgz#73bc7f5a9f8a77805f357fab97f290d0e4820ac9" + integrity sha512-ddYFR6ItYgoaq4v4JmQQaAI5s7npztfV4Ag6NrhiaW0RrnOXqBkgwZLofVTlq1daVTQNhtI5oieTvkRPfZrePg== + +"@esbuild/win32-ia32@0.18.20": + version "0.18.20" + resolved "https://registry.yarnpkg.com/@esbuild/win32-ia32/-/win32-ia32-0.18.20.tgz#ec93cbf0ef1085cc12e71e0d661d20569ff42102" + integrity sha512-Wv7QBi3ID/rROT08SABTS7eV4hX26sVduqDOTe1MvGMjNd3EjOz4b7zeexIR62GTIEKrfJXKL9LFxTYgkyeu7g== + +"@esbuild/win32-x64@0.18.20": + version "0.18.20" + resolved "https://registry.yarnpkg.com/@esbuild/win32-x64/-/win32-x64-0.18.20.tgz#786c5f41f043b07afb1af37683d7c33668858f6d" + integrity sha512-kTdfRcSiDfQca/y9QIkng02avJ+NCaQvrMejlsB3RRv5sE9rRoeBPISaZpKxHELzRxZyLvNts1P27W3wV+8geQ== "@ethersproject/abstract-provider@^5.7.0": version "5.7.0" @@ -759,9 +739,9 @@ integrity sha512-0odtFdXu/XHtjQXJYA3u9G0G8btm0ND5Cu8M7i5vhEcE8/HmF4Lbdqanwyv4uQTr2tx6b7fQRmgLrsnpQlmnig== "@ethersproject/networks@^5.7.0": - version "5.7.0" - resolved "https://registry.yarnpkg.com/@ethersproject/networks/-/networks-5.7.0.tgz#df72a392f1a63a57f87210515695a31a245845ad" - integrity sha512-MG6oHSQHd4ebvJrleEQQ4HhVu8Ichr0RDYEfHzsVAVjHNM+w36x9wp9r+hf1JstMXtseXDtkiVoARAG6M959AA== + version "5.7.1" + resolved "https://registry.yarnpkg.com/@ethersproject/networks/-/networks-5.7.1.tgz#118e1a981d757d45ccea6bb58d9fd3d9db14ead6" + integrity sha512-n/MufjFYv3yFcUyfhnXotyDlNdFb7onmkSy8aQERi2PjNcnWQ66xXxa3XlS8nCcA8aJKJjIIMNJTC7tu80GwpQ== dependencies: "@ethersproject/logger" "^5.7.0" @@ -889,9 +869,9 @@ "@ethersproject/wordlists" "^5.7.0" "@ethersproject/web@^5.7.0": - version "5.7.0" - resolved "https://registry.yarnpkg.com/@ethersproject/web/-/web-5.7.0.tgz#40850c05260edad8b54827923bbad23d96aac0bc" - integrity sha512-ApHcbbj+muRASVDSCl/tgxaH2LBkRMEYfLOLVa0COipx0+nlu0QKet7U2lEg0vdkh8XRSLf2nd1f1Uk9SrVSGA== + version "5.7.1" + resolved "https://registry.yarnpkg.com/@ethersproject/web/-/web-5.7.1.tgz#de1f285b373149bee5928f4eb7bcb87ee5fbb4ae" + integrity sha512-Gueu8lSvyjBWL4cYsWsjh6MtMwM0+H4HvqFPZfB6dV8ctbP9zFAO73VG1cMWae0FLPCtz0peKPpZY8/ugJJX2w== dependencies: "@ethersproject/base64" "^5.7.0" "@ethersproject/bytes" "^5.7.0" @@ -918,16 +898,11 @@ cross-spawn "^7.0.3" "@fastify/busboy@^2.0.0": - version "2.1.0" - resolved "https://registry.yarnpkg.com/@fastify/busboy/-/busboy-2.1.0.tgz#0709e9f4cb252351c609c6e6d8d6779a8d25edff" - integrity sha512-+KpH+QxZU7O4675t3mnkQKcZZg56u+K/Ct2K+N2AZYNVK8kyeo/bI18tI8aPm3tvNNRyTWfj6s5tnGNlcbQRsA== - -"@iconicicons/react@^1.5.0": - version "1.5.0" - resolved "https://registry.yarnpkg.com/@iconicicons/react/-/react-1.5.0.tgz#906c1c8d5114be2c6bd9e4b31be3eb1123801a7d" - integrity sha512-WEPtx5uYyz1zSpRSrdpBIY6Wdq2T46vHWedIJQDoSnFZ+BsL1Sk2Sggp0nShetUm7yImtINiPD3To5okGoDprQ== + version "2.1.1" + resolved "https://registry.yarnpkg.com/@fastify/busboy/-/busboy-2.1.1.tgz#b9da6a878a371829a0502c9b6c1c143ef6663f4d" + integrity sha512-vBZP4NlzfOlerQTnba4aqZoMhE/a9HY7HRqoOPaETQcSQuWEIyZMHGfVu6w9wGtGK5fED5qRs2DteVCjOH60sA== -"@iconicicons/react@^1.5.1": +"@iconicicons/react@^1.5.0", "@iconicicons/react@^1.5.1": version "1.5.1" resolved "https://registry.yarnpkg.com/@iconicicons/react/-/react-1.5.1.tgz#1ddb561dc51b5b65f8e8f98fdbc019327e658662" integrity sha512-/Y23Y5NBBK7h/1/R8vTdHM0zwX9Yhk8L58QRhpD1Zu8heXDOz89Lqhzb8VQ1DAdYnd0vjfcGcQaUSgZQVbnlOw== @@ -949,72 +924,56 @@ resolved "https://registry.yarnpkg.com/@isaacs/string-locale-compare/-/string-locale-compare-1.1.0.tgz#291c227e93fd407a96ecd59879a35809120e432b" integrity sha512-SQ7Kzhh9+D+ZW9MA0zkYv3VXhIDNx+LzM6EJ+/65I3QY+enU6Itte7E5XX7EWrqLW2FN4n06GWzBnPoC3th2aQ== -"@jridgewell/gen-mapping@^0.3.0", "@jridgewell/gen-mapping@^0.3.2": - version "0.3.2" - resolved "https://registry.yarnpkg.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz#c1aedc61e853f2bb9f5dfe6d4442d3b565b253b9" - integrity sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A== +"@jridgewell/gen-mapping@^0.3.2", "@jridgewell/gen-mapping@^0.3.5": + version "0.3.5" + resolved "https://registry.yarnpkg.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz#dcce6aff74bdf6dad1a95802b69b04a2fcb1fb36" + integrity sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg== dependencies: - "@jridgewell/set-array" "^1.0.1" + "@jridgewell/set-array" "^1.2.1" "@jridgewell/sourcemap-codec" "^1.4.10" - "@jridgewell/trace-mapping" "^0.3.9" - -"@jridgewell/resolve-uri@3.1.0", "@jridgewell/resolve-uri@^3.0.3": - version "3.1.0" - resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz#2203b118c157721addfe69d47b70465463066d78" - integrity sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w== + "@jridgewell/trace-mapping" "^0.3.24" -"@jridgewell/set-array@^1.0.1": - version "1.1.2" - resolved "https://registry.yarnpkg.com/@jridgewell/set-array/-/set-array-1.1.2.tgz#7c6cf998d6d20b914c0a55a91ae928ff25965e72" - integrity sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw== +"@jridgewell/resolve-uri@^3.1.0": + version "3.1.2" + resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz#7a0ee601f60f99a20c7c7c5ff0c80388c1189bd6" + integrity sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw== -"@jridgewell/sourcemap-codec@1.4.14", "@jridgewell/sourcemap-codec@^1.4.10": - version "1.4.14" - resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz#add4c98d341472a289190b424efbdb096991bb24" - integrity sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw== +"@jridgewell/set-array@^1.2.1": + version "1.2.1" + resolved "https://registry.yarnpkg.com/@jridgewell/set-array/-/set-array-1.2.1.tgz#558fb6472ed16a4c850b889530e6b36438c49280" + integrity sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A== -"@jridgewell/sourcemap-codec@^1.4.14", "@jridgewell/sourcemap-codec@^1.4.15": +"@jridgewell/sourcemap-codec@^1.4.10", "@jridgewell/sourcemap-codec@^1.4.14", "@jridgewell/sourcemap-codec@^1.4.15": version "1.4.15" resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz#d7c6e6755c78567a951e04ab52ef0fd26de59f32" integrity sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg== -"@jridgewell/trace-mapping@^0.3.17": - version "0.3.17" - resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.17.tgz#793041277af9073b0951a7fe0f0d8c4c98c36985" - integrity sha512-MCNzAp77qzKca9+W/+I0+sEpaUnZoeasnghNeVc41VZCEKaCH73Vq3BZZ/SzWIgrqE4H4ceI+p+b6C0mHf9T4g== - dependencies: - "@jridgewell/resolve-uri" "3.1.0" - "@jridgewell/sourcemap-codec" "1.4.14" - -"@jridgewell/trace-mapping@^0.3.18": - version "0.3.18" - resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.18.tgz#25783b2086daf6ff1dcb53c9249ae480e4dd4cd6" - integrity sha512-w+niJYzMHdd7USdiH2U6869nqhD2nbfZXND5Yp93qIbEmnDNk7PD48o+YchRVpzMU7M6jVCbenTR7PA1FLQ9pA== +"@jridgewell/trace-mapping@^0.3.18", "@jridgewell/trace-mapping@^0.3.24", "@jridgewell/trace-mapping@^0.3.25": + version "0.3.25" + resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz#15f190e98895f3fc23276ee14bc76b675c2e50f0" + integrity sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ== dependencies: - "@jridgewell/resolve-uri" "3.1.0" - "@jridgewell/sourcemap-codec" "1.4.14" + "@jridgewell/resolve-uri" "^3.1.0" + "@jridgewell/sourcemap-codec" "^1.4.14" -"@jridgewell/trace-mapping@^0.3.9": - version "0.3.15" - resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.15.tgz#aba35c48a38d3fd84b37e66c9c0423f9744f9774" - integrity sha512-oWZNOULl+UbhsgB51uuZzglikfIKSUBO/M9W2OfEjn7cmqoAiCgmv9lyACTUacZwBz0ITnJ2NqjU8Tx0DHL88g== - dependencies: - "@jridgewell/resolve-uri" "^3.0.3" - "@jridgewell/sourcemap-codec" "^1.4.10" +"@keystonehq/alias-sampling@^0.1.1": + version "0.1.2" + resolved "https://registry.yarnpkg.com/@keystonehq/alias-sampling/-/alias-sampling-0.1.2.tgz#63af931ffe6500aef4c0d87775a5b279189abf8d" + integrity sha512-5ukLB3bcgltgaFfQfYKYwHDUbwHicekYo53fSEa7xhVkAEqsA74kxdIwoBIURmGUtXe3EVIRm4SYlgcrt2Ri0w== "@keystonehq/arweave-keyring@^0.1.1-alpha.0": - version "0.1.1-alpha.0" - resolved "https://registry.yarnpkg.com/@keystonehq/arweave-keyring/-/arweave-keyring-0.1.1-alpha.0.tgz#87d74b9f337c7096e109d37707c342020a931d23" - integrity sha512-7S8DONzMRaIY0hlJBOrmdr8NPwMLmZOcILWToW8jlrvtcBlZMjww8DKzRiLnGhmLQ7/FvIUSxpYdK6Af33uvJg== + version "0.1.6" + resolved "https://registry.yarnpkg.com/@keystonehq/arweave-keyring/-/arweave-keyring-0.1.6.tgz#71fc0c751ed493ce02137c10db3476cccaa98947" + integrity sha512-uBYlLtAZAU0mJFwaQ1fiVxMjdQ0CzjvDVqeDSt1h5L4OHFIZPHf/BPeo1EJlyMWtXDIQV9JuLhHeZDOOyzsFRA== dependencies: - "@keystonehq/bc-ur-registry-arweave" "^0.1.1-alpha.0" + "@keystonehq/bc-ur-registry-arweave" "^0.1.6" "@keystonehq/sdk" "^0.14.1-alpha.2" uuid "^8.3.2" -"@keystonehq/bc-ur-registry-arweave@^0.1.1-alpha.0": - version "0.1.1-alpha.0" - resolved "https://registry.yarnpkg.com/@keystonehq/bc-ur-registry-arweave/-/bc-ur-registry-arweave-0.1.1-alpha.0.tgz#fbbadb83e6b20727923307c842e26ebcaf50df3d" - integrity sha512-2Kui9ErOscEaETgGHC1v10V0vjlzJdsrrXi9z+JjbhkgSmtOuCFRw6XzBk3oNPQP7LRjoFEa6buxWSprQiL87w== +"@keystonehq/bc-ur-registry-arweave@^0.1.1-alpha.0", "@keystonehq/bc-ur-registry-arweave@^0.1.6": + version "0.1.6" + resolved "https://registry.yarnpkg.com/@keystonehq/bc-ur-registry-arweave/-/bc-ur-registry-arweave-0.1.6.tgz#b93315acada744582adf26dea361b96e41306c58" + integrity sha512-v3ZchIClnejXlGPoUpbDKScjQzmuApJae5EATpmxYei/2wfMyTdNVeQSrLQKcGvRb0cmh5jixbzT2moXeQpAbg== dependencies: "@keystonehq/bc-ur-registry" "0.5.4" uuid "^8.3.2" @@ -1045,6 +1004,11 @@ resolved "https://registry.yarnpkg.com/@lezer/common/-/common-0.15.12.tgz#2f21aec551dd5fd7d24eb069f90f54d5bc6ee5e9" integrity sha512-edfwCxNLnzq5pBA/yaIhwJ3U3Kz8VAUOTRg0hhxaizaI1N+qxV7EXDv/kLCkLeq2RzSFvxexlaj5Mzfn2kY0Ig== +"@lezer/common@^1.0.0": + version "1.2.1" + resolved "https://registry.yarnpkg.com/@lezer/common/-/common-1.2.1.tgz#198b278b7869668e1bebbe687586e12a42731049" + integrity sha512-yemX0ZD2xS/73llMZIK6KplkjIjf2EvAHcinDi/TfJ9hS25G0388+ClHt6/3but0oOxinTcQHJLDXh6w1crzFQ== + "@lezer/lr@^0.15.4": version "0.15.8" resolved "https://registry.yarnpkg.com/@lezer/lr/-/lr-0.15.8.tgz#1564a911e62b0a0f75ca63794a6aa8c5dc63db21" @@ -1052,66 +1016,80 @@ dependencies: "@lezer/common" "^0.15.0" -"@lmdb/lmdb-darwin-arm64@2.5.2": - version "2.5.2" - resolved "https://registry.yarnpkg.com/@lmdb/lmdb-darwin-arm64/-/lmdb-darwin-arm64-2.5.2.tgz#bc66fa43286b5c082e8fee0eacc17995806b6fbe" - integrity sha512-+F8ioQIUN68B4UFiIBYu0QQvgb9FmlKw2ctQMSBfW2QBrZIxz9vD9jCGqTCPqZBRbPHAS/vG1zSXnKqnS2ch/A== +"@lezer/lr@^1.0.0": + version "1.4.0" + resolved "https://registry.yarnpkg.com/@lezer/lr/-/lr-1.4.0.tgz#ed52a75dbbfbb0d1eb63710ea84c35ee647cb67e" + integrity sha512-Wst46p51km8gH0ZUmeNrtpRYmdlRHUpN1DQd3GFAyKANi8WVz8c2jHYTf1CVScFaCjQw1iO3ZZdqGDxQPRErTg== + dependencies: + "@lezer/common" "^1.0.0" + +"@ljharb/through@^2.3.11": + version "2.3.13" + resolved "https://registry.yarnpkg.com/@ljharb/through/-/through-2.3.13.tgz#b7e4766e0b65aa82e529be945ab078de79874edc" + integrity sha512-/gKJun8NNiWGZJkGzI/Ragc53cOdcLNdzjLaIa+GEjguQs0ulsurx8WN0jijdK9yPqDvziX995sMRLyLt1uZMQ== + dependencies: + call-bind "^1.0.7" "@lmdb/lmdb-darwin-arm64@2.7.11": version "2.7.11" resolved "https://registry.yarnpkg.com/@lmdb/lmdb-darwin-arm64/-/lmdb-darwin-arm64-2.7.11.tgz#b717e72f023d4215d14e4c57433c711a53c782cf" integrity sha512-r6+vYq2vKzE+vgj/rNVRMwAevq0+ZR9IeMFIqcSga+wMtMdXQ27KqQ7uS99/yXASg29bos7yHP3yk4x6Iio0lw== -"@lmdb/lmdb-darwin-x64@2.5.2": - version "2.5.2" - resolved "https://registry.yarnpkg.com/@lmdb/lmdb-darwin-x64/-/lmdb-darwin-x64-2.5.2.tgz#89d8390041bce6bab24a82a20392be22faf54ffc" - integrity sha512-KvPH56KRLLx4KSfKBx0m1r7GGGUMXm0jrKmNE7plbHlesZMuPJICtn07HYgQhj1LNsK7Yqwuvnqh1QxhJnF1EA== +"@lmdb/lmdb-darwin-arm64@2.8.5": + version "2.8.5" + resolved "https://registry.yarnpkg.com/@lmdb/lmdb-darwin-arm64/-/lmdb-darwin-arm64-2.8.5.tgz#895d8cb16a9d709ce5fedd8b60022903b875e08e" + integrity sha512-KPDeVScZgA1oq0CiPBcOa3kHIqU+pTOwRFDIhxvmf8CTNvqdZQYp5cCKW0bUk69VygB2PuTiINFWbY78aR2pQw== "@lmdb/lmdb-darwin-x64@2.7.11": version "2.7.11" resolved "https://registry.yarnpkg.com/@lmdb/lmdb-darwin-x64/-/lmdb-darwin-x64-2.7.11.tgz#b42898b0742b4a82b8224b742b2d174c449cd170" integrity sha512-jhj1aB4K8ycRL1HOQT5OtzlqOq70jxUQEWRN9Gqh3TIDN30dxXtiHi6EWF516tzw6v2+3QqhDMJh8O6DtTGG8Q== -"@lmdb/lmdb-linux-arm64@2.5.2": - version "2.5.2" - resolved "https://registry.yarnpkg.com/@lmdb/lmdb-linux-arm64/-/lmdb-linux-arm64-2.5.2.tgz#14fe4c96c2bb1285f93797f45915fa35ee047268" - integrity sha512-aLl89VHL/wjhievEOlPocoefUyWdvzVrcQ/MHQYZm2JfV1jUsrbr/ZfkPPUFvZBf+VSE+Q0clWs9l29PCX1hTQ== +"@lmdb/lmdb-darwin-x64@2.8.5": + version "2.8.5" + resolved "https://registry.yarnpkg.com/@lmdb/lmdb-darwin-x64/-/lmdb-darwin-x64-2.8.5.tgz#ca243534c8b37d5516c557e4624256d18dd63184" + integrity sha512-w/sLhN4T7MW1nB3R/U8WK5BgQLz904wh+/SmA2jD8NnF7BLLoUgflCNxOeSPOWp8geP6nP/+VjWzZVip7rZ1ug== "@lmdb/lmdb-linux-arm64@2.7.11": version "2.7.11" resolved "https://registry.yarnpkg.com/@lmdb/lmdb-linux-arm64/-/lmdb-linux-arm64-2.7.11.tgz#a8dc8e386d27006cfccbf2a8598290b63d03a9ec" integrity sha512-7xGEfPPbmVJWcY2Nzqo11B9Nfxs+BAsiiaY/OcT4aaTDdykKeCjvKMQJA3KXCtZ1AtiC9ljyGLi+BfUwdulY5A== -"@lmdb/lmdb-linux-arm@2.5.2": - version "2.5.2" - resolved "https://registry.yarnpkg.com/@lmdb/lmdb-linux-arm/-/lmdb-linux-arm-2.5.2.tgz#05bde4573ab10cf21827339fe687148f2590cfa1" - integrity sha512-5kQAP21hAkfW5Bl+e0P57dV4dGYnkNIpR7f/GAh6QHlgXx+vp/teVj4PGRZaKAvt0GX6++N6hF8NnGElLDuIDw== +"@lmdb/lmdb-linux-arm64@2.8.5": + version "2.8.5" + resolved "https://registry.yarnpkg.com/@lmdb/lmdb-linux-arm64/-/lmdb-linux-arm64-2.8.5.tgz#b44a8023057e21512eefb9f6120096843b531c1e" + integrity sha512-vtbZRHH5UDlL01TT5jB576Zox3+hdyogvpcbvVJlmU5PdL3c5V7cj1EODdh1CHPksRl+cws/58ugEHi8bcj4Ww== "@lmdb/lmdb-linux-arm@2.7.11": version "2.7.11" resolved "https://registry.yarnpkg.com/@lmdb/lmdb-linux-arm/-/lmdb-linux-arm-2.7.11.tgz#2103f48af28336efccaac008fe882dfce33e4ac5" integrity sha512-dHfLFVSrw/v5X5lkwp0Vl7+NFpEeEYKfMG2DpdFJnnG1RgHQZngZxCaBagFoaJGykRpd2DYF1AeuXBFrAUAXfw== -"@lmdb/lmdb-linux-x64@2.5.2": - version "2.5.2" - resolved "https://registry.yarnpkg.com/@lmdb/lmdb-linux-x64/-/lmdb-linux-x64-2.5.2.tgz#d2f85afd857d2c33d2caa5b057944574edafcfee" - integrity sha512-xUdUfwDJLGjOUPH3BuPBt0NlIrR7f/QHKgu3GZIXswMMIihAekj2i97oI0iWG5Bok/b+OBjHPfa8IU9velnP/Q== +"@lmdb/lmdb-linux-arm@2.8.5": + version "2.8.5" + resolved "https://registry.yarnpkg.com/@lmdb/lmdb-linux-arm/-/lmdb-linux-arm-2.8.5.tgz#17bd54740779c3e4324e78e8f747c21416a84b3d" + integrity sha512-c0TGMbm2M55pwTDIfkDLB6BpIsgxV4PjYck2HiOX+cy/JWiBXz32lYbarPqejKs9Flm7YVAKSILUducU9g2RVg== "@lmdb/lmdb-linux-x64@2.7.11": version "2.7.11" resolved "https://registry.yarnpkg.com/@lmdb/lmdb-linux-x64/-/lmdb-linux-x64-2.7.11.tgz#d21ac368022a662610540f2ba8bb6ff0b96a9940" integrity sha512-vUKI3JrREMQsXX8q0Eq5zX2FlYCKWMmLiCyyJNfZK0Uyf14RBg9VtB3ObQ41b4swYh2EWaltasWVe93Y8+KDng== -"@lmdb/lmdb-win32-x64@2.5.2": - version "2.5.2" - resolved "https://registry.yarnpkg.com/@lmdb/lmdb-win32-x64/-/lmdb-win32-x64-2.5.2.tgz#28f643fbc0bec30b07fbe95b137879b6b4d1c9c5" - integrity sha512-zrBczSbXKxEyK2ijtbRdICDygRqWSRPpZMN5dD1T8VMEW5RIhIbwFWw2phDRXuBQdVDpSjalCIUMWMV2h3JaZA== +"@lmdb/lmdb-linux-x64@2.8.5": + version "2.8.5" + resolved "https://registry.yarnpkg.com/@lmdb/lmdb-linux-x64/-/lmdb-linux-x64-2.8.5.tgz#6c61835b6cc58efdf79dbd5e8c72a38300a90302" + integrity sha512-Xkc8IUx9aEhP0zvgeKy7IQ3ReX2N8N1L0WPcQwnZweWmOuKfwpS3GRIYqLtK5za/w3E60zhFfNdS+3pBZPytqQ== "@lmdb/lmdb-win32-x64@2.7.11": version "2.7.11" resolved "https://registry.yarnpkg.com/@lmdb/lmdb-win32-x64/-/lmdb-win32-x64-2.7.11.tgz#af2cb4ae6d3a92ecdeb1503b73079417525476d2" integrity sha512-BJwkHlSUgtB+Ei52Ai32M1AOMerSlzyIGA/KC4dAGL+GGwVMdwG8HGCOA2TxP3KjhbgDPMYkv7bt/NmOmRIFng== +"@lmdb/lmdb-win32-x64@2.8.5": + version "2.8.5" + resolved "https://registry.yarnpkg.com/@lmdb/lmdb-win32-x64/-/lmdb-win32-x64-2.8.5.tgz#8233e8762440b0f4632c47a09b1b6f23de8b934c" + integrity sha512-4wvrf5BgnR8RpogHhtpCPJMKBmvyZPhhUtEwMJbXh0ni2BucpfF07jlmyM11zRqQ2XIq6PbC2j7W7UCCcm1rRQ== + "@lordvlad/asn1.js@^5.1.1": version "5.1.1" resolved "https://registry.yarnpkg.com/@lordvlad/asn1.js/-/asn1.js-5.1.1.tgz#468d5ff5f9045e0951a7d0e89a33e5f26a252df3" @@ -1155,7 +1133,7 @@ globby "^11.0.0" read-yaml-file "^1.1.0" -"@mischnic/json-sourcemap@0.1.0", "@mischnic/json-sourcemap@^0.1.0": +"@mischnic/json-sourcemap@0.1.0": version "0.1.0" resolved "https://registry.yarnpkg.com/@mischnic/json-sourcemap/-/json-sourcemap-0.1.0.tgz#38af657be4108140a548638267d02a2ea3336507" integrity sha512-dQb3QnfNqmQNYA4nFSN/uLaByIic58gOXq4Y4XqLOWmOrw73KmJPt/HLyG0wvn1bnR6mBKs/Uwvkh+Hns1T0XA== @@ -1164,56 +1142,65 @@ "@lezer/lr" "^0.15.4" json5 "^2.2.1" -"@motionone/animation@^10.13.1": - version "10.14.0" - resolved "https://registry.yarnpkg.com/@motionone/animation/-/animation-10.14.0.tgz#2f2a3517183bb58d82e389aac777fe0850079de6" - integrity sha512-h+1sdyBP8vbxEBW5gPFDnj+m2DCqdlAuf2g6Iafb1lcMnqjsRXWlPw1AXgvUMXmreyhqmPbJqoNfIKdytampRQ== +"@mischnic/json-sourcemap@^0.1.0": + version "0.1.1" + resolved "https://registry.yarnpkg.com/@mischnic/json-sourcemap/-/json-sourcemap-0.1.1.tgz#0ef9b015a8f575dd9a8720d9a6b4dbc988425906" + integrity sha512-iA7+tyVqfrATAIsIRWQG+a7ZLLD0VaOCKV2Wd/v4mqIU3J9c4jx9p7S0nw1XH3gJCKNBOOwACOPYYSUu9pgT+w== dependencies: - "@motionone/easing" "^10.14.0" - "@motionone/types" "^10.14.0" - "@motionone/utils" "^10.14.0" + "@lezer/common" "^1.0.0" + "@lezer/lr" "^1.0.0" + json5 "^2.2.1" + +"@motionone/animation@^10.17.0": + version "10.17.0" + resolved "https://registry.yarnpkg.com/@motionone/animation/-/animation-10.17.0.tgz#7633c6f684b5fee2b61c405881b8c24662c68fca" + integrity sha512-ANfIN9+iq1kGgsZxs+Nz96uiNcPLGTXwfNo2Xz/fcJXniPYpaz/Uyrfa+7I5BPLxCP82sh7quVDudf1GABqHbg== + dependencies: + "@motionone/easing" "^10.17.0" + "@motionone/types" "^10.17.0" + "@motionone/utils" "^10.17.0" tslib "^2.3.1" -"@motionone/dom@10.13.1": - version "10.13.1" - resolved "https://registry.yarnpkg.com/@motionone/dom/-/dom-10.13.1.tgz#fc29ea5d12538f21b211b3168e502cfc07a24882" - integrity sha512-zjfX+AGMIt/fIqd/SL1Lj93S6AiJsEA3oc5M9VkUr+Gz+juRmYN1vfvZd6MvEkSqEjwPQgcjN7rGZHrDB9APfQ== +"@motionone/dom@^10.15.3": + version "10.17.0" + resolved "https://registry.yarnpkg.com/@motionone/dom/-/dom-10.17.0.tgz#519dd78aab0750a94614c69a82da5290cd617383" + integrity sha512-cMm33swRlCX/qOPHWGbIlCl0K9Uwi6X5RiL8Ma6OrlJ/TP7Q+Np5GE4xcZkFptysFjMTi4zcZzpnNQGQ5D6M0Q== dependencies: - "@motionone/animation" "^10.13.1" - "@motionone/generators" "^10.13.1" - "@motionone/types" "^10.13.0" - "@motionone/utils" "^10.13.1" + "@motionone/animation" "^10.17.0" + "@motionone/generators" "^10.17.0" + "@motionone/types" "^10.17.0" + "@motionone/utils" "^10.17.0" hey-listen "^1.0.8" tslib "^2.3.1" -"@motionone/easing@^10.14.0": - version "10.14.0" - resolved "https://registry.yarnpkg.com/@motionone/easing/-/easing-10.14.0.tgz#d8154b7f71491414f3cdee23bd3838d763fffd00" - integrity sha512-2vUBdH9uWTlRbuErhcsMmt1jvMTTqvGmn9fHq8FleFDXBlHFs5jZzHJT9iw+4kR1h6a4SZQuCf72b9ji92qNYA== +"@motionone/easing@^10.17.0": + version "10.17.0" + resolved "https://registry.yarnpkg.com/@motionone/easing/-/easing-10.17.0.tgz#d66cecf7e3ee30104ad00389fb3f0b2282d81aa9" + integrity sha512-Bxe2wSuLu/qxqW4rBFS5m9tMLOw+QBh8v5A7Z5k4Ul4sTj5jAOfZG5R0bn5ywmk+Fs92Ij1feZ5pmC4TeXA8Tg== dependencies: - "@motionone/utils" "^10.14.0" + "@motionone/utils" "^10.17.0" tslib "^2.3.1" -"@motionone/generators@^10.13.1": - version "10.14.0" - resolved "https://registry.yarnpkg.com/@motionone/generators/-/generators-10.14.0.tgz#e05d9dd56da78a4b92db99185848a0f3db62242d" - integrity sha512-6kRHezoFfIjFN7pPpaxmkdZXD36tQNcyJe3nwVqwJ+ZfC0e3rFmszR8kp9DEVFs9QL/akWjuGPSLBI1tvz+Vjg== +"@motionone/generators@^10.17.0": + version "10.17.0" + resolved "https://registry.yarnpkg.com/@motionone/generators/-/generators-10.17.0.tgz#878d292539c41434c13310d5f863a87a94e6e689" + integrity sha512-T6Uo5bDHrZWhIfxG/2Aut7qyWQyJIWehk6OB4qNvr/jwA/SRmixwbd7SOrxZi1z5rH3LIeFFBKK1xHnSbGPZSQ== dependencies: - "@motionone/types" "^10.14.0" - "@motionone/utils" "^10.14.0" + "@motionone/types" "^10.17.0" + "@motionone/utils" "^10.17.0" tslib "^2.3.1" -"@motionone/types@^10.13.0", "@motionone/types@^10.14.0": - version "10.14.0" - resolved "https://registry.yarnpkg.com/@motionone/types/-/types-10.14.0.tgz#148c34f3270b175397e49c3058b33fab405c21e3" - integrity sha512-3bNWyYBHtVd27KncnJLhksMFQ5o2MSdk1cA/IZqsHtA9DnRM1SYgN01CTcJ8Iw8pCXF5Ocp34tyAjY7WRpOJJQ== +"@motionone/types@^10.17.0": + version "10.17.0" + resolved "https://registry.yarnpkg.com/@motionone/types/-/types-10.17.0.tgz#179571ce98851bac78e19a1c3974767227f08ba3" + integrity sha512-EgeeqOZVdRUTEHq95Z3t8Rsirc7chN5xFAPMYFobx8TPubkEfRSm5xihmMUkbaR2ErKJTUw3347QDPTHIW12IA== -"@motionone/utils@^10.13.1", "@motionone/utils@^10.14.0": - version "10.14.0" - resolved "https://registry.yarnpkg.com/@motionone/utils/-/utils-10.14.0.tgz#a19a3464ed35b08506747b062d035c7bc9bbe708" - integrity sha512-sLWBLPzRqkxmOTRzSaD3LFQXCPHvDzyHJ1a3VP9PRzBxyVd2pv51/gMOsdAcxQ9n+MIeGJnxzXBYplUHKj4jkw== +"@motionone/utils@^10.17.0": + version "10.17.0" + resolved "https://registry.yarnpkg.com/@motionone/utils/-/utils-10.17.0.tgz#cc0ba8acdc6848ff48d8c1f2d0d3e7602f4f942e" + integrity sha512-bGwrki4896apMWIj9yp5rAS2m0xyhxblg6gTB/leWDPt+pb410W8lYWsxyurX+DH+gO1zsQsfx2su/c1/LtTpg== dependencies: - "@motionone/types" "^10.14.0" + "@motionone/types" "^10.17.0" hey-listen "^1.0.8" tslib "^2.3.1" @@ -1248,11 +1235,11 @@ integrity sha512-O+6Gs8UeDbyFpbSh2CPEz/UOrrdWPTBYNblZK5CxxLisYt4kGX3Sc+czffFonyjiGSq3jWLwJS/CCJc7tBr4sQ== "@ngraveio/bc-ur@^1.0.0", "@ngraveio/bc-ur@^1.1.5", "@ngraveio/bc-ur@^1.1.6": - version "1.1.6" - resolved "https://registry.yarnpkg.com/@ngraveio/bc-ur/-/bc-ur-1.1.6.tgz#8f8c75fff22f6a5e4dfbc5a6b540d7fe8f42cd39" - integrity sha512-G+2XgjXde2IOcEQeCwR250aS43/Swi7gw0FuETgJy2c3HqF8f88SXDMsIGgJlZ8jXd0GeHR4aX0MfjXf523UZg== + version "1.1.13" + resolved "https://registry.yarnpkg.com/@ngraveio/bc-ur/-/bc-ur-1.1.13.tgz#27719fd3e745ccdbe97a7950905edcd1fed4844b" + integrity sha512-j73akJMV4+vLR2yQ4AphPIT5HZmxVjn/LxpL7YHoINnXoH6ccc90Zzck6/n6a3bCXOVZwBxq+YHwbAKRV+P8Zg== dependencies: - "@apocentre/alias-sampling" "^0.5.3" + "@keystonehq/alias-sampling" "^0.1.1" assert "^2.0.0" bignumber.js "^9.0.1" cbor-sync "^1.0.4" @@ -1261,9 +1248,14 @@ sha.js "^2.4.11" "@noble/ed25519@^1.6.1": - version "1.7.0" - resolved "https://registry.yarnpkg.com/@noble/ed25519/-/ed25519-1.7.0.tgz#583ac38340a479314b9e348d4572101ed9492f9d" - integrity sha512-LeAxFK0+181zQOhOUuKE8Jnd3duzYhDNd3iCLxpmzA5K+e4I1FdbrK3Ot0ZHBwZMeRD/6EojyUfTbpHZ+hkQHg== + version "1.7.3" + resolved "https://registry.yarnpkg.com/@noble/ed25519/-/ed25519-1.7.3.tgz#57e1677bf6885354b466c38e2b620c62f45a7123" + integrity sha512-iR8GBkDt0Q3GyaVcIu7mSsVIqnFbkbRzGLWlvhwunacoLwt4J3swfKhfaM6rN6WY+TBGoYT1GtT1mIh2/jGbRQ== + +"@noble/hashes@^1.2.0": + version "1.4.0" + resolved "https://registry.yarnpkg.com/@noble/hashes/-/hashes-1.4.0.tgz#45814aa329f30e4fe0ba49426f49dfccdd066426" + integrity sha512-V1JJ1WTRUqHHrOSh597hURcMqVKVGL/ea3kv0gSnEdsEZ0/+VyPghM1lMNGc00z7CIQorSvbKpuJkxvuHbvdbg== "@nodelib/fs.scandir@2.1.5": version "2.1.5" @@ -1287,49 +1279,50 @@ fastq "^1.6.0" "@npmcli/agent@^2.0.0": - version "2.2.0" - resolved "https://registry.yarnpkg.com/@npmcli/agent/-/agent-2.2.0.tgz#e81f00fdb2a670750ff7731bbefb47ecbf0ccf44" - integrity sha512-2yThA1Es98orMkpSLVqlDZAMPK3jHJhifP2gnNUdk1754uZ8yI5c+ulCoVG+WlntQA6MzhrURMXjSd9Z7dJ2/Q== + version "2.2.2" + resolved "https://registry.yarnpkg.com/@npmcli/agent/-/agent-2.2.2.tgz#967604918e62f620a648c7975461c9c9e74fc5d5" + integrity sha512-OrcNPXdpSl9UX7qPVRWbmWMCSXrcDa2M9DvrbOTj7ao1S4PlqVFYv9/yLKMkrJKZ/V5A/kDBC690or307i26Og== dependencies: agent-base "^7.1.0" http-proxy-agent "^7.0.0" https-proxy-agent "^7.0.1" lru-cache "^10.0.1" - socks-proxy-agent "^8.0.1" + socks-proxy-agent "^8.0.3" "@npmcli/arborist@^7.2.1": - version "7.3.0" - resolved "https://registry.yarnpkg.com/@npmcli/arborist/-/arborist-7.3.0.tgz#ca716707053daf63bc320a917bfe317fca7b4dc6" - integrity sha512-ZElIE9L14fEYiL4KqgqRHmo8fRKiTSOFU3hVS1mNm0zJE7hu4FHmof+OFsA7fAAXfkNDJrDByvD0o7Le0ISHMw== + version "7.5.1" + resolved "https://registry.yarnpkg.com/@npmcli/arborist/-/arborist-7.5.1.tgz#7075f8d0e34e92dee1292b0f055bc31725a54b56" + integrity sha512-rjGX1tzn9HVQHv5lIP2wANvJmG5+/aFiVFoTBSzneOaSuBUJOnFRha2DE+cIRRekuGllmYff2/XcXnOWrZOJ/w== dependencies: "@isaacs/string-locale-compare" "^1.1.0" "@npmcli/fs" "^3.1.0" - "@npmcli/installed-package-contents" "^2.0.2" + "@npmcli/installed-package-contents" "^2.1.0" "@npmcli/map-workspaces" "^3.0.2" - "@npmcli/metavuln-calculator" "^7.0.0" + "@npmcli/metavuln-calculator" "^7.1.0" "@npmcli/name-from-folder" "^2.0.0" "@npmcli/node-gyp" "^3.0.0" - "@npmcli/package-json" "^5.0.0" - "@npmcli/query" "^3.0.1" - "@npmcli/run-script" "^7.0.2" + "@npmcli/package-json" "^5.1.0" + "@npmcli/query" "^3.1.0" + "@npmcli/redact" "^2.0.0" + "@npmcli/run-script" "^8.1.0" bin-links "^4.0.1" cacache "^18.0.0" common-ancestor-path "^1.0.1" hosted-git-info "^7.0.1" json-parse-even-better-errors "^3.0.0" json-stringify-nice "^1.1.4" - minimatch "^9.0.0" + minimatch "^9.0.4" nopt "^7.0.0" npm-install-checks "^6.2.0" - npm-package-arg "^11.0.1" + npm-package-arg "^11.0.2" npm-pick-manifest "^9.0.0" - npm-registry-fetch "^16.0.0" - npmlog "^7.0.1" - pacote "^17.0.4" + npm-registry-fetch "^17.0.0" + pacote "^18.0.1" parse-conflict-json "^3.0.0" - proc-log "^3.0.0" + proc-log "^4.2.0" + proggy "^2.0.0" promise-all-reject-late "^1.0.0" - promise-call-limit "^1.0.2" + promise-call-limit "^3.0.1" read-package-json-fast "^3.0.2" semver "^7.3.7" ssri "^10.0.5" @@ -1337,26 +1330,19 @@ walk-up-path "^3.0.1" "@npmcli/config@^8.0.2": - version "8.1.0" - resolved "https://registry.yarnpkg.com/@npmcli/config/-/config-8.1.0.tgz#2c7f6f80d78b9c18d8a70ae7c5fdb481be727bb0" - integrity sha512-61LNEybTFaa9Z/f8y6X9s2Blc75aijZK67LxqC5xicBcfkw8M/88nYrRXGXxAUKm6GRlxTZ216dp1UK2+TbaYw== + version "8.3.1" + resolved "https://registry.yarnpkg.com/@npmcli/config/-/config-8.3.1.tgz#14814f52f4fb0293e45bfb1d3e6877c1d1cc514b" + integrity sha512-lEY3TnkVrNUwI0vCDTFlKTbxK9DxZ83JmXXcQI7kp7pyg7zj/a36xSDmcikXvUbtV2PQpmUwmV0HDAB94NcgNA== dependencies: "@npmcli/map-workspaces" "^3.0.2" ci-info "^4.0.0" - ini "^4.1.0" + ini "^4.1.2" nopt "^7.0.0" - proc-log "^3.0.0" + proc-log "^4.2.0" read-package-json-fast "^3.0.2" semver "^7.3.5" walk-up-path "^3.0.1" -"@npmcli/disparity-colors@^3.0.0": - version "3.0.0" - resolved "https://registry.yarnpkg.com/@npmcli/disparity-colors/-/disparity-colors-3.0.0.tgz#60ea8c6eb5ba9de2d1950e15b06205b2c3ab7833" - integrity sha512-5R/z157/f20Fi0Ou4ZttL51V0xz0EdPEOauFtPCEYOLInDBRCj1/TxOJ5aGTrtShxEshN2d+hXb9ZKSi5RLBcg== - dependencies: - ansi-styles "^4.3.0" - "@npmcli/fs@^3.1.0": version "3.1.0" resolved "https://registry.yarnpkg.com/@npmcli/fs/-/fs-3.1.0.tgz#233d43a25a91d68c3a863ba0da6a3f00924a173e" @@ -1364,46 +1350,47 @@ dependencies: semver "^7.3.5" -"@npmcli/git@^5.0.0", "@npmcli/git@^5.0.3": - version "5.0.4" - resolved "https://registry.yarnpkg.com/@npmcli/git/-/git-5.0.4.tgz#d18c50f99649e6e89e8b427318134f582498700c" - integrity sha512-nr6/WezNzuYUppzXRaYu/W4aT5rLxdXqEFupbh6e/ovlYFQ8hpu1UUPV3Ir/YTl+74iXl2ZOMlGzudh9ZPUchQ== +"@npmcli/git@^5.0.0", "@npmcli/git@^5.0.6": + version "5.0.6" + resolved "https://registry.yarnpkg.com/@npmcli/git/-/git-5.0.6.tgz#d7b24eb2cff98754c8868faab40405abfa1abe28" + integrity sha512-4x/182sKXmQkf0EtXxT26GEsaOATpD7WVtza5hrYivWZeo6QefC6xq9KAXrnjtFKBZ4rZwR7aX/zClYYXgtwLw== dependencies: "@npmcli/promise-spawn" "^7.0.0" lru-cache "^10.0.1" npm-pick-manifest "^9.0.0" - proc-log "^3.0.0" + proc-log "^4.0.0" promise-inflight "^1.0.1" promise-retry "^2.0.1" semver "^7.3.5" which "^4.0.0" -"@npmcli/installed-package-contents@^2.0.1", "@npmcli/installed-package-contents@^2.0.2": - version "2.0.2" - resolved "https://registry.yarnpkg.com/@npmcli/installed-package-contents/-/installed-package-contents-2.0.2.tgz#bfd817eccd9e8df200919e73f57f9e3d9e4f9e33" - integrity sha512-xACzLPhnfD51GKvTOOuNX2/V4G4mz9/1I2MfDoye9kBM3RYe5g2YbscsaGoTlaWqkxeiapBWyseULVKpSVHtKQ== +"@npmcli/installed-package-contents@^2.0.1", "@npmcli/installed-package-contents@^2.1.0": + version "2.1.0" + resolved "https://registry.yarnpkg.com/@npmcli/installed-package-contents/-/installed-package-contents-2.1.0.tgz#63048e5f6e40947a3a88dcbcb4fd9b76fdd37c17" + integrity sha512-c8UuGLeZpm69BryRykLuKRyKFZYJsZSCT4aVY5ds4omyZqJ172ApzgfKJ5eV/r3HgLdUYgFVe54KSFVjKoe27w== dependencies: npm-bundled "^3.0.0" npm-normalize-package-bin "^3.0.0" -"@npmcli/map-workspaces@^3.0.2", "@npmcli/map-workspaces@^3.0.4": - version "3.0.4" - resolved "https://registry.yarnpkg.com/@npmcli/map-workspaces/-/map-workspaces-3.0.4.tgz#15ad7d854292e484f7ba04bc30187a8320dba799" - integrity sha512-Z0TbvXkRbacjFFLpVpV0e2mheCh+WzQpcqL+4xp49uNJOxOnIAPZyXtUxZ5Qn3QBTGKA11Exjd9a5411rBrhDg== +"@npmcli/map-workspaces@^3.0.2", "@npmcli/map-workspaces@^3.0.6": + version "3.0.6" + resolved "https://registry.yarnpkg.com/@npmcli/map-workspaces/-/map-workspaces-3.0.6.tgz#27dc06c20c35ef01e45a08909cab9cb3da08cea6" + integrity sha512-tkYs0OYnzQm6iIRdfy+LcLBjcKuQCeE5YLb8KnrIlutJfheNaPvPpgoFEyEFgbjzl5PLZ3IA/BWAwRU0eHuQDA== dependencies: "@npmcli/name-from-folder" "^2.0.0" glob "^10.2.2" minimatch "^9.0.0" read-package-json-fast "^3.0.0" -"@npmcli/metavuln-calculator@^7.0.0": - version "7.0.0" - resolved "https://registry.yarnpkg.com/@npmcli/metavuln-calculator/-/metavuln-calculator-7.0.0.tgz#fb59245926d7f677db904177f9aca15ac883d6cb" - integrity sha512-Pw0tyX02VkpqlIQlG2TeiJNsdrecYeUU0ubZZa9pi3N37GCsxI+en43u4hYFdq+eSx1A9a9vwFAUyqEtKFsbHQ== +"@npmcli/metavuln-calculator@^7.1.0": + version "7.1.0" + resolved "https://registry.yarnpkg.com/@npmcli/metavuln-calculator/-/metavuln-calculator-7.1.0.tgz#70aad00623d47297cd2c950a686ef4220e4a9040" + integrity sha512-D4VZzVLZ4Mw+oUCWyQ6qzlm5SGlrLnhKtZscDwQXFFc1FUPvw69Ibo2E5ZpJAmjFSYkA5UlCievWmREW0JLC3w== dependencies: cacache "^18.0.0" json-parse-even-better-errors "^3.0.0" - pacote "^17.0.0" + pacote "^18.0.0" + proc-log "^4.1.0" semver "^7.3.5" "@npmcli/name-from-folder@^2.0.0": @@ -1416,17 +1403,17 @@ resolved "https://registry.yarnpkg.com/@npmcli/node-gyp/-/node-gyp-3.0.0.tgz#101b2d0490ef1aa20ed460e4c0813f0db560545a" integrity sha512-gp8pRXC2oOxu0DUE1/M3bYtb1b3/DbJ5aM113+XJBgfXdussRAsX0YOrOhdd8WvnAR6auDBvJomGAkLKA5ydxA== -"@npmcli/package-json@^5.0.0": - version "5.0.0" - resolved "https://registry.yarnpkg.com/@npmcli/package-json/-/package-json-5.0.0.tgz#77d0f8b17096763ccbd8af03b7117ba6e34d6e91" - integrity sha512-OI2zdYBLhQ7kpNPaJxiflofYIpkNLi+lnGdzqUOfRmCF3r2l1nadcjtCYMJKv/Utm/ZtlffaUuTiAktPHbc17g== +"@npmcli/package-json@^5.0.0", "@npmcli/package-json@^5.1.0": + version "5.1.0" + resolved "https://registry.yarnpkg.com/@npmcli/package-json/-/package-json-5.1.0.tgz#10d117b5fb175acc14c70901a151c52deffc843e" + integrity sha512-1aL4TuVrLS9sf8quCLerU3H9J4vtCtgu8VauYozrmEyU57i/EdKleCnsQ7vpnABIH6c9mnTxcH5sFkO3BlV8wQ== dependencies: "@npmcli/git" "^5.0.0" glob "^10.2.2" hosted-git-info "^7.0.0" json-parse-even-better-errors "^3.0.0" normalize-package-data "^6.0.0" - proc-log "^3.0.0" + proc-log "^4.0.0" semver "^7.5.3" "@npmcli/promise-spawn@^7.0.0", "@npmcli/promise-spawn@^7.0.1": @@ -1436,22 +1423,28 @@ dependencies: which "^4.0.0" -"@npmcli/query@^3.0.1": - version "3.0.1" - resolved "https://registry.yarnpkg.com/@npmcli/query/-/query-3.0.1.tgz#77d63ceb7d27ed748da3cc8b50d45fc341448ed6" - integrity sha512-0jE8iHBogf/+bFDj+ju6/UMLbJ39c8h6nSe6qile+dB7PJ0iV3gNqcb2vtt6WWCBrxv9uAjzUT/8vroluulidA== +"@npmcli/query@^3.1.0": + version "3.1.0" + resolved "https://registry.yarnpkg.com/@npmcli/query/-/query-3.1.0.tgz#bc202c59e122a06cf8acab91c795edda2cdad42c" + integrity sha512-C/iR0tk7KSKGldibYIB9x8GtO/0Bd0I2mhOaDb8ucQL/bQVTmGoeREaFj64Z5+iCBRf3dQfed0CjJL7I8iTkiQ== dependencies: postcss-selector-parser "^6.0.10" -"@npmcli/run-script@^7.0.0", "@npmcli/run-script@^7.0.2", "@npmcli/run-script@^7.0.3": - version "7.0.4" - resolved "https://registry.yarnpkg.com/@npmcli/run-script/-/run-script-7.0.4.tgz#9f29aaf4bfcf57f7de2a9e28d1ef091d14b2e6eb" - integrity sha512-9ApYM/3+rBt9V80aYg6tZfzj3UWdiYyCt7gJUD1VJKvWF5nwKDSICXbYIQbspFTq6TOpbsEtIC0LArB8d9PFmg== +"@npmcli/redact@^2.0.0": + version "2.0.0" + resolved "https://registry.yarnpkg.com/@npmcli/redact/-/redact-2.0.0.tgz#72f9689e87bd0ce419c35e75b8470ce8ac9e14f0" + integrity sha512-SEjCPAVHWYUIQR+Yn03kJmrJjZDtJLYpj300m3HV9OTRZNpC5YpbMsM3eTkECyT4aWj8lDr9WeY6TWefpubtYQ== + +"@npmcli/run-script@^8.0.0", "@npmcli/run-script@^8.1.0": + version "8.1.0" + resolved "https://registry.yarnpkg.com/@npmcli/run-script/-/run-script-8.1.0.tgz#a563e5e29b1ca4e648a6b1bbbfe7220b4bfe39fc" + integrity sha512-y7efHHwghQfk28G2z3tlZ67pLG0XdfYbcVG26r7YIXALRsrVQcTq4/tdenSmdOrEsNahIYA/eh8aEVROWGFUDg== dependencies: "@npmcli/node-gyp" "^3.0.0" "@npmcli/package-json" "^5.0.0" "@npmcli/promise-spawn" "^7.0.0" node-gyp "^10.0.0" + proc-log "^4.0.0" which "^4.0.0" "@octokit/auth-token@^4.0.0": @@ -1459,47 +1452,94 @@ resolved "https://registry.yarnpkg.com/@octokit/auth-token/-/auth-token-4.0.0.tgz#40d203ea827b9f17f42a29c6afb93b7745ef80c7" integrity sha512-tY/msAuJo6ARbK6SPIxZrPBms3xPbfwBrulZe0Wtr/DIY9lje2HeV1uoebShn6mx7SjCHif6EjMvoREj+gZ+SA== +"@octokit/auth-token@^5.0.0": + version "5.1.1" + resolved "https://registry.yarnpkg.com/@octokit/auth-token/-/auth-token-5.1.1.tgz#3bbfe905111332a17f72d80bd0b51a3e2fa2cf07" + integrity sha512-rh3G3wDO8J9wSjfI436JUKzHIxq8NaiL0tVeB2aXmG6p/9859aUOAjA9pmSPNGGZxfwmaJ9ozOJImuNVJdpvbA== + "@octokit/core@^5.0.0": - version "5.1.0" - resolved "https://registry.yarnpkg.com/@octokit/core/-/core-5.1.0.tgz#81dacf0197ed7855e6413f128bd6dd9e121e7d2f" - integrity sha512-BDa2VAMLSh3otEiaMJ/3Y36GU4qf6GI+VivQ/P41NC6GHcdxpKlqV0ikSZ5gdQsmS3ojXeRx5vasgNTinF0Q4g== + version "5.2.0" + resolved "https://registry.yarnpkg.com/@octokit/core/-/core-5.2.0.tgz#ddbeaefc6b44a39834e1bb2e58a49a117672a7ea" + integrity sha512-1LFfa/qnMQvEOAdzlQymH0ulepxbxnCYAKJZfMci/5XJyIHWgEYnDmgnKakbTh7CH2tFQ5O60oYDvns4i9RAIg== dependencies: "@octokit/auth-token" "^4.0.0" - "@octokit/graphql" "^7.0.0" - "@octokit/request" "^8.0.2" - "@octokit/request-error" "^5.0.0" - "@octokit/types" "^12.0.0" + "@octokit/graphql" "^7.1.0" + "@octokit/request" "^8.3.1" + "@octokit/request-error" "^5.1.0" + "@octokit/types" "^13.0.0" before-after-hook "^2.2.0" universal-user-agent "^6.0.0" -"@octokit/endpoint@^9.0.0": - version "9.0.4" - resolved "https://registry.yarnpkg.com/@octokit/endpoint/-/endpoint-9.0.4.tgz#8afda5ad1ffc3073d08f2b450964c610b821d1ea" - integrity sha512-DWPLtr1Kz3tv8L0UvXTDP1fNwM0S+z6EJpRcvH66orY6Eld4XBMCSYsaWp4xIm61jTWxK68BrR7ibO+vSDnZqw== - dependencies: - "@octokit/types" "^12.0.0" +"@octokit/core@^6.0.0": + version "6.1.2" + resolved "https://registry.yarnpkg.com/@octokit/core/-/core-6.1.2.tgz#20442d0a97c411612da206411e356014d1d1bd17" + integrity sha512-hEb7Ma4cGJGEUNOAVmyfdB/3WirWMg5hDuNFVejGEDFqupeOysLc2sG6HJxY2etBp5YQu5Wtxwi020jS9xlUwg== + dependencies: + "@octokit/auth-token" "^5.0.0" + "@octokit/graphql" "^8.0.0" + "@octokit/request" "^9.0.0" + "@octokit/request-error" "^6.0.1" + "@octokit/types" "^13.0.0" + before-after-hook "^3.0.2" + universal-user-agent "^7.0.0" + +"@octokit/endpoint@^10.0.0": + version "10.1.1" + resolved "https://registry.yarnpkg.com/@octokit/endpoint/-/endpoint-10.1.1.tgz#1a9694e7aef6aa9d854dc78dd062945945869bcc" + integrity sha512-JYjh5rMOwXMJyUpj028cu0Gbp7qe/ihxfJMLc8VZBMMqSwLgOxDI1911gV4Enl1QSavAQNJcwmwBF9M0VvLh6Q== + dependencies: + "@octokit/types" "^13.0.0" + universal-user-agent "^7.0.2" + +"@octokit/endpoint@^9.0.1": + version "9.0.5" + resolved "https://registry.yarnpkg.com/@octokit/endpoint/-/endpoint-9.0.5.tgz#e6c0ee684e307614c02fc6ac12274c50da465c44" + integrity sha512-ekqR4/+PCLkEBF6qgj8WqJfvDq65RH85OAgrtnVp1mSxaXF03u2xW/hUdweGS5654IlC0wkNYC18Z50tSYTAFw== + dependencies: + "@octokit/types" "^13.1.0" universal-user-agent "^6.0.0" -"@octokit/graphql@^7.0.0": - version "7.0.2" - resolved "https://registry.yarnpkg.com/@octokit/graphql/-/graphql-7.0.2.tgz#3df14b9968192f9060d94ed9e3aa9780a76e7f99" - integrity sha512-OJ2iGMtj5Tg3s6RaXH22cJcxXRi7Y3EBqbHTBRq+PQAqfaS8f/236fUrWhfSn8P4jovyzqucxme7/vWSSZBX2Q== +"@octokit/graphql@^7.1.0": + version "7.1.0" + resolved "https://registry.yarnpkg.com/@octokit/graphql/-/graphql-7.1.0.tgz#9bc1c5de92f026648131f04101cab949eeffe4e0" + integrity sha512-r+oZUH7aMFui1ypZnAvZmn0KSqAUgE1/tUXIWaqUCa1758ts/Jio84GZuzsvUkme98kv0WFY8//n0J1Z+vsIsQ== dependencies: - "@octokit/request" "^8.0.1" - "@octokit/types" "^12.0.0" + "@octokit/request" "^8.3.0" + "@octokit/types" "^13.0.0" universal-user-agent "^6.0.0" -"@octokit/openapi-types@^19.1.0": - version "19.1.0" - resolved "https://registry.yarnpkg.com/@octokit/openapi-types/-/openapi-types-19.1.0.tgz#75ec7e64743870fc73e1ab4bc6ec252ecdd624dc" - integrity sha512-6G+ywGClliGQwRsjvqVYpklIfa7oRPA0vyhPQG/1Feh+B+wU0vGH1JiJ5T25d3g1JZYBHzR2qefLi9x8Gt+cpw== +"@octokit/graphql@^8.0.0": + version "8.1.1" + resolved "https://registry.yarnpkg.com/@octokit/graphql/-/graphql-8.1.1.tgz#3cacab5f2e55d91c733e3bf481d3a3f8a5f639c4" + integrity sha512-ukiRmuHTi6ebQx/HFRCXKbDlOh/7xEV6QUXaE7MJEKGNAncGI/STSbOkl12qVXZrfZdpXctx5O9X1AIaebiDBg== + dependencies: + "@octokit/request" "^9.0.0" + "@octokit/types" "^13.0.0" + universal-user-agent "^7.0.0" + +"@octokit/openapi-types@^20.0.0": + version "20.0.0" + resolved "https://registry.yarnpkg.com/@octokit/openapi-types/-/openapi-types-20.0.0.tgz#9ec2daa0090eeb865ee147636e0c00f73790c6e5" + integrity sha512-EtqRBEjp1dL/15V7WiX5LJMIxxkdiGJnabzYx5Apx4FkQIFgAfKumXeYAqqJCj1s+BMX4cPFIFC4OLCR6stlnA== + +"@octokit/openapi-types@^22.2.0": + version "22.2.0" + resolved "https://registry.yarnpkg.com/@octokit/openapi-types/-/openapi-types-22.2.0.tgz#75aa7dcd440821d99def6a60b5f014207ae4968e" + integrity sha512-QBhVjcUa9W7Wwhm6DBFu6ZZ+1/t/oYxqc2tp81Pi41YNuJinbFRx8B133qVOrAaBbF7D/m0Et6f9/pZt9Rc+tg== + +"@octokit/plugin-paginate-rest@^11.0.0": + version "11.3.0" + resolved "https://registry.yarnpkg.com/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-11.3.0.tgz#f8511b5df06b83e662c54f249a11a0da2213c6c3" + integrity sha512-n4znWfRinnUQF6TPyxs7EctSAA3yVSP4qlJP2YgI3g9d4Ae2n5F3XDOjbUluKRxPU3rfsgpOboI4O4VtPc6Ilg== + dependencies: + "@octokit/types" "^13.5.0" "@octokit/plugin-paginate-rest@^9.0.0": - version "9.1.5" - resolved "https://registry.yarnpkg.com/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-9.1.5.tgz#1705bcef4dcde1f4015ee58a63dc61b68648f480" - integrity sha512-WKTQXxK+bu49qzwv4qKbMMRXej1DU2gq017euWyKVudA6MldaSSQuxtz+vGbhxV4CjxpUxjZu6rM2wfc1FiWVg== + version "9.2.1" + resolved "https://registry.yarnpkg.com/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-9.2.1.tgz#2e2a2f0f52c9a4b1da1a3aa17dabe3c459b9e401" + integrity sha512-wfGhE/TAkXZRLjksFXuDZdmGnJQHvtU/joFQdweXUgzo1XwvBCD4o4+75NtFfjfLK5IwLf9vHTfSiU3sLRYpRw== dependencies: - "@octokit/types" "^12.4.0" + "@octokit/types" "^12.6.0" "@octokit/plugin-retry@^6.0.0": version "6.0.1" @@ -1510,39 +1550,80 @@ "@octokit/types" "^12.0.0" bottleneck "^2.15.3" +"@octokit/plugin-retry@^7.0.0": + version "7.1.1" + resolved "https://registry.yarnpkg.com/@octokit/plugin-retry/-/plugin-retry-7.1.1.tgz#a84483e4afdd068dd71da81abe206a9e442c1288" + integrity sha512-G9Ue+x2odcb8E1XIPhaFBnTTIrrUDfXN05iFXiqhR+SeeeDMMILcAnysOsxUpEWcQp2e5Ft397FCXTcPkiPkLw== + dependencies: + "@octokit/request-error" "^6.0.0" + "@octokit/types" "^13.0.0" + bottleneck "^2.15.3" + "@octokit/plugin-throttling@^8.0.0": - version "8.1.3" - resolved "https://registry.yarnpkg.com/@octokit/plugin-throttling/-/plugin-throttling-8.1.3.tgz#7fb0e001c0cb9383c6be07740b8ec326ed990f6b" - integrity sha512-pfyqaqpc0EXh5Cn4HX9lWYsZ4gGbjnSmUILeu4u2gnuM50K/wIk9s1Pxt3lVeVwekmITgN/nJdoh43Ka+vye8A== + version "8.2.0" + resolved "https://registry.yarnpkg.com/@octokit/plugin-throttling/-/plugin-throttling-8.2.0.tgz#9ec3ea2e37b92fac63f06911d0c8141b46dc4941" + integrity sha512-nOpWtLayKFpgqmgD0y3GqXafMFuKcA4tRPZIfu7BArd2lEZeb1988nhWhwx4aZWmjDmUfdgVf7W+Tt4AmvRmMQ== dependencies: "@octokit/types" "^12.2.0" bottleneck "^2.15.3" -"@octokit/request-error@^5.0.0": - version "5.0.1" - resolved "https://registry.yarnpkg.com/@octokit/request-error/-/request-error-5.0.1.tgz#277e3ce3b540b41525e07ba24c5ef5e868a72db9" - integrity sha512-X7pnyTMV7MgtGmiXBwmO6M5kIPrntOXdyKZLigNfQWSEQzVxR4a4vo49vJjTWX70mPndj8KhfT4Dx+2Ng3vnBQ== +"@octokit/plugin-throttling@^9.0.0": + version "9.3.0" + resolved "https://registry.yarnpkg.com/@octokit/plugin-throttling/-/plugin-throttling-9.3.0.tgz#2700963c6f7e0f62de2158a6d67d1b47c19af3d4" + integrity sha512-B5YTToSRTzNSeEyssnrT7WwGhpIdbpV9NKIs3KyTWHX6PhpYn7gqF/+lL3BvsASBM3Sg5BAUYk7KZx5p/Ec77w== dependencies: - "@octokit/types" "^12.0.0" + "@octokit/types" "^13.0.0" + bottleneck "^2.15.3" + +"@octokit/request-error@^5.0.0", "@octokit/request-error@^5.1.0": + version "5.1.0" + resolved "https://registry.yarnpkg.com/@octokit/request-error/-/request-error-5.1.0.tgz#ee4138538d08c81a60be3f320cd71063064a3b30" + integrity sha512-GETXfE05J0+7H2STzekpKObFe765O5dlAKUTLNGeH+x47z7JjXHfsHKo5z21D/o/IOZTUEI6nyWyR+bZVP/n5Q== + dependencies: + "@octokit/types" "^13.1.0" deprecation "^2.0.0" once "^1.4.0" -"@octokit/request@^8.0.1", "@octokit/request@^8.0.2": - version "8.1.6" - resolved "https://registry.yarnpkg.com/@octokit/request/-/request-8.1.6.tgz#a76a859c30421737a3918b40973c2ff369009571" - integrity sha512-YhPaGml3ncZC1NfXpP3WZ7iliL1ap6tLkAp6MvbK2fTTPytzVUyUesBBogcdMm86uRYO5rHaM1xIWxigWZ17MQ== +"@octokit/request-error@^6.0.0", "@octokit/request-error@^6.0.1": + version "6.1.1" + resolved "https://registry.yarnpkg.com/@octokit/request-error/-/request-error-6.1.1.tgz#bed1b5f52ce7fefb1077a92bf42124ff36f73f2c" + integrity sha512-1mw1gqT3fR/WFvnoVpY/zUM2o/XkMs/2AszUUG9I69xn0JFLv6PGkPhNk5lbfvROs79wiS0bqiJNxfCZcRJJdg== + dependencies: + "@octokit/types" "^13.0.0" + +"@octokit/request@^8.3.0", "@octokit/request@^8.3.1": + version "8.4.0" + resolved "https://registry.yarnpkg.com/@octokit/request/-/request-8.4.0.tgz#7f4b7b1daa3d1f48c0977ad8fffa2c18adef8974" + integrity sha512-9Bb014e+m2TgBeEJGEbdplMVWwPmL1FPtggHQRkV+WVsMggPtEkLKPlcVYm/o8xKLkpJ7B+6N8WfQMtDLX2Dpw== dependencies: - "@octokit/endpoint" "^9.0.0" - "@octokit/request-error" "^5.0.0" - "@octokit/types" "^12.0.0" + "@octokit/endpoint" "^9.0.1" + "@octokit/request-error" "^5.1.0" + "@octokit/types" "^13.1.0" universal-user-agent "^6.0.0" -"@octokit/types@^12.0.0", "@octokit/types@^12.2.0", "@octokit/types@^12.4.0": - version "12.4.0" - resolved "https://registry.yarnpkg.com/@octokit/types/-/types-12.4.0.tgz#8f97b601e91ce6b9776ed8152217e77a71be7aac" - integrity sha512-FLWs/AvZllw/AGVs+nJ+ELCDZZJk+kY0zMen118xhL2zD0s1etIUHm1odgjP7epxYU1ln7SZxEUWYop5bhsdgQ== +"@octokit/request@^9.0.0": + version "9.1.1" + resolved "https://registry.yarnpkg.com/@octokit/request/-/request-9.1.1.tgz#e836eb69c0fb4b59b6437af7716ca348a1232a52" + integrity sha512-pyAguc0p+f+GbQho0uNetNQMmLG1e80WjkIaqqgUkihqUp0boRU6nKItXO4VWnr+nbZiLGEyy4TeKRwqaLvYgw== + dependencies: + "@octokit/endpoint" "^10.0.0" + "@octokit/request-error" "^6.0.1" + "@octokit/types" "^13.1.0" + universal-user-agent "^7.0.2" + +"@octokit/types@^12.0.0", "@octokit/types@^12.2.0", "@octokit/types@^12.6.0": + version "12.6.0" + resolved "https://registry.yarnpkg.com/@octokit/types/-/types-12.6.0.tgz#8100fb9eeedfe083aae66473bd97b15b62aedcb2" + integrity sha512-1rhSOfRa6H9w4YwK0yrf5faDaDTb+yLyBUKOCV4xtCDB5VmIPqd/v9yr9o6SAzOAlRxMiRiCic6JVM1/kunVkw== dependencies: - "@octokit/openapi-types" "^19.1.0" + "@octokit/openapi-types" "^20.0.0" + +"@octokit/types@^13.0.0", "@octokit/types@^13.1.0", "@octokit/types@^13.5.0": + version "13.5.0" + resolved "https://registry.yarnpkg.com/@octokit/types/-/types-13.5.0.tgz#4796e56b7b267ebc7c921dcec262b3d5bfb18883" + integrity sha512-HdqWTf5Z3qwDVlzCrP8UJquMwunpDiMPt5er+QjGzL4hqr/vBVY/MauQgS1xWxCDT1oMx1EULyqxncdCY/NVSQ== + dependencies: + "@octokit/openapi-types" "^22.2.0" "@parcel/bundler-default@2.9.3": version "2.9.3" @@ -1556,15 +1637,15 @@ "@parcel/utils" "2.9.3" nullthrows "^1.1.1" -"@parcel/cache@2.8.3": - version "2.8.3" - resolved "https://registry.yarnpkg.com/@parcel/cache/-/cache-2.8.3.tgz#169e130cf59913c0ed9fadce1a450e68f710e16f" - integrity sha512-k7xv5vSQrJLdXuglo+Hv3yF4BCSs1tQ/8Vbd6CHTkOhf7LcGg6CPtLw053R/KdMpd/4GPn0QrAsOLdATm1ELtQ== +"@parcel/cache@2.12.0": + version "2.12.0" + resolved "https://registry.yarnpkg.com/@parcel/cache/-/cache-2.12.0.tgz#b8fd2ea2bc7a2353a9b20344cc191bfb4f8284f3" + integrity sha512-FX5ZpTEkxvq/yvWklRHDESVRz+c7sLTXgFuzz6uEnBcXV38j6dMSikflNpHA6q/L4GKkCqRywm9R6XQwhwIMyw== dependencies: - "@parcel/fs" "2.8.3" - "@parcel/logger" "2.8.3" - "@parcel/utils" "2.8.3" - lmdb "2.5.2" + "@parcel/fs" "2.12.0" + "@parcel/logger" "2.12.0" + "@parcel/utils" "2.12.0" + lmdb "2.8.5" "@parcel/cache@2.9.3": version "2.9.3" @@ -1576,10 +1657,10 @@ "@parcel/utils" "2.9.3" lmdb "2.7.11" -"@parcel/codeframe@2.8.3": - version "2.8.3" - resolved "https://registry.yarnpkg.com/@parcel/codeframe/-/codeframe-2.8.3.tgz#84fb529ef70def7f5bc64f6c59b18d24826f5fcc" - integrity sha512-FE7sY53D6n/+2Pgg6M9iuEC6F5fvmyBkRE4d9VdnOoxhTXtkEqpqYgX7RJ12FAQwNlxKq4suBJQMgQHMF2Kjeg== +"@parcel/codeframe@2.12.0": + version "2.12.0" + resolved "https://registry.yarnpkg.com/@parcel/codeframe/-/codeframe-2.12.0.tgz#9ea75bd7ae6c5f7fadf42a5e64657cf88fdcb29e" + integrity sha512-v2VmneILFiHZJTxPiR7GEF1wey1/IXPdZMcUlNXBiPZyWDfcuNgGGVQkx/xW561rULLIvDPharOMdxz5oHOKQg== dependencies: chalk "^4.1.0" @@ -1664,10 +1745,10 @@ nullthrows "^1.1.1" semver "^7.5.2" -"@parcel/diagnostic@2.8.3": - version "2.8.3" - resolved "https://registry.yarnpkg.com/@parcel/diagnostic/-/diagnostic-2.8.3.tgz#d560276d5d2804b48beafa1feaf3fc6b2ac5e39d" - integrity sha512-u7wSzuMhLGWZjVNYJZq/SOViS3uFG0xwIcqXw12w54Uozd6BH8JlhVtVyAsq9kqnn7YFkw6pXHqAo5Tzh4FqsQ== +"@parcel/diagnostic@2.12.0": + version "2.12.0" + resolved "https://registry.yarnpkg.com/@parcel/diagnostic/-/diagnostic-2.12.0.tgz#b38057d819ea2edc32018a1d51df434f07840be9" + integrity sha512-8f1NOsSFK+F4AwFCKynyIu9Kr/uWHC+SywAv4oS6Bv3Acig0gtwUjugk0C9UaB8ztBZiW5TQZhw+uPZn9T/lJA== dependencies: "@mischnic/json-sourcemap" "^0.1.0" nullthrows "^1.1.1" @@ -1680,38 +1761,31 @@ "@mischnic/json-sourcemap" "^0.1.0" nullthrows "^1.1.1" -"@parcel/events@2.8.3": - version "2.8.3" - resolved "https://registry.yarnpkg.com/@parcel/events/-/events-2.8.3.tgz#205f8d874e6ecc2cbdb941bf8d54bae669e571af" - integrity sha512-hoIS4tAxWp8FJk3628bsgKxEvR7bq2scCVYHSqZ4fTi/s0+VymEATrRCUqf+12e5H47uw1/ZjoqrGtBI02pz4w== +"@parcel/events@2.12.0": + version "2.12.0" + resolved "https://registry.yarnpkg.com/@parcel/events/-/events-2.12.0.tgz#ef67e3fbb96806b3531a37bcf95e8fbb3818ffa2" + integrity sha512-nmAAEIKLjW1kB2cUbCYSmZOGbnGj8wCzhqnK727zCCWaA25ogzAtt657GPOeFyqW77KyosU728Tl63Fc8hphIA== "@parcel/events@2.9.3": version "2.9.3" resolved "https://registry.yarnpkg.com/@parcel/events/-/events-2.9.3.tgz#b71253384c21f53fd3cced983cd2b287f7330e89" integrity sha512-K0Scx+Bx9f9p1vuShMzNwIgiaZUkxEnexaKYHYemJrM7pMAqxIuIqhnvwurRCsZOVLUJPDDNJ626cWTc5vIq+A== -"@parcel/fs-search@2.8.3": - version "2.8.3" - resolved "https://registry.yarnpkg.com/@parcel/fs-search/-/fs-search-2.8.3.tgz#1c7d812c110b808758f44c56e61dfffdb09e9451" - integrity sha512-DJBT2N8knfN7Na6PP2mett3spQLTqxFrvl0gv+TJRp61T8Ljc4VuUTb0hqBj+belaASIp3Q+e8+SgaFQu7wLiQ== - dependencies: - detect-libc "^1.0.3" - "@parcel/fs-search@2.9.3": version "2.9.3" resolved "https://registry.yarnpkg.com/@parcel/fs-search/-/fs-search-2.9.3.tgz#4993d68478b15db404149a271bb0084382dd2040" integrity sha512-nsNz3bsOpwS+jphcd+XjZL3F3PDq9lik0O8HPm5f6LYkqKWT+u/kgQzA8OkAHCR3q96LGiHxUywHPEBc27vI4Q== -"@parcel/fs@2.8.3": - version "2.8.3" - resolved "https://registry.yarnpkg.com/@parcel/fs/-/fs-2.8.3.tgz#80536afe877fc8a2bd26be5576b9ba27bb4c5754" - integrity sha512-y+i+oXbT7lP0e0pJZi/YSm1vg0LDsbycFuHZIL80pNwdEppUAtibfJZCp606B7HOjMAlNZOBo48e3hPG3d8jgQ== +"@parcel/fs@2.12.0": + version "2.12.0" + resolved "https://registry.yarnpkg.com/@parcel/fs/-/fs-2.12.0.tgz#8c9029353888311ba2e9e2198dbe6c7c1da635c0" + integrity sha512-NnFkuvou1YBtPOhTdZr44WN7I60cGyly2wpHzqRl62yhObyi1KvW0SjwOMa0QGNcBOIzp4G0CapoZ93hD0RG5Q== dependencies: - "@parcel/fs-search" "2.8.3" - "@parcel/types" "2.8.3" - "@parcel/utils" "2.8.3" + "@parcel/rust" "2.12.0" + "@parcel/types" "2.12.0" + "@parcel/utils" "2.12.0" "@parcel/watcher" "^2.0.7" - "@parcel/workers" "2.8.3" + "@parcel/workers" "2.12.0" "@parcel/fs@2.9.3": version "2.9.3" @@ -1731,14 +1805,6 @@ dependencies: nullthrows "^1.1.1" -"@parcel/hash@2.8.3": - version "2.8.3" - resolved "https://registry.yarnpkg.com/@parcel/hash/-/hash-2.8.3.tgz#bc2499a27395169616cad2a99e19e69b9098f6e9" - integrity sha512-FVItqzjWmnyP4ZsVgX+G00+6U2IzOvqDtdwQIWisCcVoXJFCqZJDy6oa2qDDFz96xCCCynjRjPdQx2jYBCpfYw== - dependencies: - detect-libc "^1.0.3" - xxhash-wasm "^0.4.2" - "@parcel/hash@2.9.3": version "2.9.3" resolved "https://registry.yarnpkg.com/@parcel/hash/-/hash-2.9.3.tgz#bc7727939b1211b0a5d67fd00a9a55b8393c644a" @@ -1746,13 +1812,13 @@ dependencies: xxhash-wasm "^0.4.2" -"@parcel/logger@2.8.3": - version "2.8.3" - resolved "https://registry.yarnpkg.com/@parcel/logger/-/logger-2.8.3.tgz#e14e4debafb3ca9e87c07c06780f9afc38b2712c" - integrity sha512-Kpxd3O/Vs7nYJIzkdmB6Bvp3l/85ydIxaZaPfGSGTYOfaffSOTkhcW9l6WemsxUrlts4za6CaEWcc4DOvaMOPA== +"@parcel/logger@2.12.0": + version "2.12.0" + resolved "https://registry.yarnpkg.com/@parcel/logger/-/logger-2.12.0.tgz#0b866b7aee8a0a462596a80cd46bd8b29c318758" + integrity sha512-cJ7Paqa7/9VJ7C+KwgJlwMqTQBOjjn71FbKk0G07hydUEBISU2aDfmc/52o60ErL9l+vXB26zTrIBanbxS8rVg== dependencies: - "@parcel/diagnostic" "2.8.3" - "@parcel/events" "2.8.3" + "@parcel/diagnostic" "2.12.0" + "@parcel/events" "2.12.0" "@parcel/logger@2.9.3": version "2.9.3" @@ -1762,10 +1828,10 @@ "@parcel/diagnostic" "2.9.3" "@parcel/events" "2.9.3" -"@parcel/markdown-ansi@2.8.3": - version "2.8.3" - resolved "https://registry.yarnpkg.com/@parcel/markdown-ansi/-/markdown-ansi-2.8.3.tgz#1337d421bb1133ad178f386a8e1b746631bba4a1" - integrity sha512-4v+pjyoh9f5zuU/gJlNvNFGEAb6J90sOBwpKJYJhdWXLZMNFCVzSigxrYO+vCsi8G4rl6/B2c0LcwIMjGPHmFQ== +"@parcel/markdown-ansi@2.12.0": + version "2.12.0" + resolved "https://registry.yarnpkg.com/@parcel/markdown-ansi/-/markdown-ansi-2.12.0.tgz#a4301321fa784a28ba817e65e41432fe8b3b3192" + integrity sha512-WZz3rzL8k0H3WR4qTHX6Ic8DlEs17keO9gtD4MNGyMNQbqQEvQ61lWJaIH0nAtgEetu0SOITiVqdZrb8zx/M7w== dependencies: chalk "^4.1.0" @@ -1797,6 +1863,19 @@ nullthrows "^1.1.1" semver "^7.5.2" +"@parcel/node-resolver-core@3.3.0": + version "3.3.0" + resolved "https://registry.yarnpkg.com/@parcel/node-resolver-core/-/node-resolver-core-3.3.0.tgz#f40d80de800baa7cf230406b7122c8711ac4cdc8" + integrity sha512-rhPW9DYPEIqQBSlYzz3S0AjXxjN6Ub2yS6tzzsW/4S3Gpsgk/uEq4ZfxPvoPf/6TgZndVxmKwpmxaKtGMmf3cA== + dependencies: + "@mischnic/json-sourcemap" "^0.1.0" + "@parcel/diagnostic" "2.12.0" + "@parcel/fs" "2.12.0" + "@parcel/rust" "2.12.0" + "@parcel/utils" "2.12.0" + nullthrows "^1.1.1" + semver "^7.5.2" + "@parcel/optimizer-css@2.9.3": version "2.9.3" resolved "https://registry.yarnpkg.com/@parcel/optimizer-css/-/optimizer-css-2.9.3.tgz#76f2f77adde9dee7498611f6be3078d0bde0396d" @@ -1863,18 +1942,20 @@ "@swc/core" "^1.3.36" nullthrows "^1.1.1" -"@parcel/package-manager@2.8.3": - version "2.8.3" - resolved "https://registry.yarnpkg.com/@parcel/package-manager/-/package-manager-2.8.3.tgz#ddd0d62feae3cf0fb6cc0537791b3a16296ad458" - integrity sha512-tIpY5pD2lH53p9hpi++GsODy6V3khSTX4pLEGuMpeSYbHthnOViobqIlFLsjni+QA1pfc8NNNIQwSNdGjYflVA== - dependencies: - "@parcel/diagnostic" "2.8.3" - "@parcel/fs" "2.8.3" - "@parcel/logger" "2.8.3" - "@parcel/types" "2.8.3" - "@parcel/utils" "2.8.3" - "@parcel/workers" "2.8.3" - semver "^5.7.1" +"@parcel/package-manager@2.12.0": + version "2.12.0" + resolved "https://registry.yarnpkg.com/@parcel/package-manager/-/package-manager-2.12.0.tgz#7e1eb5f652544e045f7240fa6cf92e5ff1627624" + integrity sha512-0nvAezcjPx9FT+hIL+LS1jb0aohwLZXct7jAh7i0MLMtehOi0z1Sau+QpgMlA9rfEZZ1LIeFdnZZwqSy7Ccspw== + dependencies: + "@parcel/diagnostic" "2.12.0" + "@parcel/fs" "2.12.0" + "@parcel/logger" "2.12.0" + "@parcel/node-resolver-core" "3.3.0" + "@parcel/types" "2.12.0" + "@parcel/utils" "2.12.0" + "@parcel/workers" "2.12.0" + "@swc/core" "^1.3.36" + semver "^7.5.2" "@parcel/package-manager@2.9.3": version "2.9.3" @@ -1942,12 +2023,12 @@ "@parcel/utils" "2.9.3" posthtml "^0.16.4" -"@parcel/plugin@2.8.3": - version "2.8.3" - resolved "https://registry.yarnpkg.com/@parcel/plugin/-/plugin-2.8.3.tgz#7bb30a5775eaa6473c27f002a0a3ee7308d6d669" - integrity sha512-jZ6mnsS4D9X9GaNnvrixDQwlUQJCohDX2hGyM0U0bY2NWU8Km97SjtoCpWjq+XBCx/gpC4g58+fk9VQeZq2vlw== +"@parcel/plugin@2.12.0": + version "2.12.0" + resolved "https://registry.yarnpkg.com/@parcel/plugin/-/plugin-2.12.0.tgz#3db4237e8977ef5b5378b65eaffb809d2026431a" + integrity sha512-nc/uRA8DiMoe4neBbzV6kDndh/58a4wQuGKw5oEoIwBCHUvE2W8ZFSu7ollSXUGRzfacTt4NdY8TwS73ScWZ+g== dependencies: - "@parcel/types" "2.8.3" + "@parcel/types" "2.12.0" "@parcel/plugin@2.9.3": version "2.9.3" @@ -1956,6 +2037,15 @@ dependencies: "@parcel/types" "2.9.3" +"@parcel/profiler@2.12.0": + version "2.12.0" + resolved "https://registry.yarnpkg.com/@parcel/profiler/-/profiler-2.12.0.tgz#8541ca5d27500aebc843b1de081734442e5ee054" + integrity sha512-q53fvl5LDcFYzMUtSusUBZSjQrKjMlLEBgKeQHFwkimwR1mgoseaDBDuNz0XvmzDzF1UelJ02TUKCGacU8W2qA== + dependencies: + "@parcel/diagnostic" "2.12.0" + "@parcel/events" "2.12.0" + chrome-trace-event "^1.0.2" + "@parcel/profiler@2.9.3": version "2.9.3" resolved "https://registry.yarnpkg.com/@parcel/profiler/-/profiler-2.9.3.tgz#6575ed6dc4275c0161dce74bd719961236673ce1" @@ -1996,13 +2086,14 @@ "@parcel/plugin" "2.9.3" "@parcel/utils" "2.9.3" -"@parcel/runtime-js@2.8.3", "@parcel/runtime-js@2.9.3": - version "2.8.3" - resolved "https://registry.yarnpkg.com/@parcel/runtime-js/-/runtime-js-2.8.3.tgz#0baa4c8fbf77eabce05d01ccc186614968ffc0cd" - integrity sha512-IRja0vNKwvMtPgIqkBQh0QtRn0XcxNC8HU1jrgWGRckzu10qJWO+5ULgtOeR4pv9krffmMPqywGXw6l/gvJKYQ== +"@parcel/runtime-js@2.8.3", "@parcel/runtime-js@2.9.3", "@parcel/runtime-js@^2.8.3": + version "2.12.0" + resolved "https://registry.yarnpkg.com/@parcel/runtime-js/-/runtime-js-2.12.0.tgz#da6f7da041cb157556822ad60fefcdbc790dda9c" + integrity sha512-sBerP32Z1crX5PfLNGDSXSdqzlllM++GVnVQVeM7DgMKS8JIFG3VLi28YkX+dYYGtPypm01JoIHCkvwiZEcQJg== dependencies: - "@parcel/plugin" "2.8.3" - "@parcel/utils" "2.8.3" + "@parcel/diagnostic" "2.12.0" + "@parcel/plugin" "2.12.0" + "@parcel/utils" "2.12.0" nullthrows "^1.1.1" "@parcel/runtime-react-refresh@2.9.3": @@ -2024,6 +2115,11 @@ "@parcel/utils" "2.9.3" nullthrows "^1.1.1" +"@parcel/rust@2.12.0": + version "2.12.0" + resolved "https://registry.yarnpkg.com/@parcel/rust/-/rust-2.12.0.tgz#135df4dd8c63d97720379777c5bb4a2680a201cd" + integrity sha512-005cldMdFZFDPOjbDVEXcINQ3wT4vrxvSavRWI3Az0e3E18exO/x/mW9f648KtXugOXMAqCEqhFHcXECL9nmMw== + "@parcel/source-map@2.1.1", "@parcel/source-map@^2.1.1": version "2.1.1" resolved "https://registry.yarnpkg.com/@parcel/source-map/-/source-map-2.1.1.tgz#fb193b82dba6dd62cc7a76b326f57bb35000a782" @@ -2215,17 +2311,17 @@ dependencies: "@parcel/plugin" "2.9.3" -"@parcel/types@2.8.3": - version "2.8.3" - resolved "https://registry.yarnpkg.com/@parcel/types/-/types-2.8.3.tgz#3306bc5391b6913bd619914894b8cd84a24b30fa" - integrity sha512-FECA1FB7+0UpITKU0D6TgGBpGxYpVSMNEENZbSJxFSajNy3wrko+zwBKQmFOLOiPcEtnGikxNs+jkFWbPlUAtw== +"@parcel/types@2.12.0": + version "2.12.0" + resolved "https://registry.yarnpkg.com/@parcel/types/-/types-2.12.0.tgz#caf0af00ee0c7228b350eca5f4d3a5b85ce457ad" + integrity sha512-8zAFiYNCwNTQcglIObyNwKfRYQK5ELlL13GuBOrSMxueUiI5ylgsGbTS1N7J3dAGZixHO8KhHGv5a71FILn9rQ== dependencies: - "@parcel/cache" "2.8.3" - "@parcel/diagnostic" "2.8.3" - "@parcel/fs" "2.8.3" - "@parcel/package-manager" "2.8.3" + "@parcel/cache" "2.12.0" + "@parcel/diagnostic" "2.12.0" + "@parcel/fs" "2.12.0" + "@parcel/package-manager" "2.12.0" "@parcel/source-map" "^2.1.1" - "@parcel/workers" "2.8.3" + "@parcel/workers" "2.12.0" utility-types "^3.10.0" "@parcel/types@2.9.3": @@ -2241,18 +2337,19 @@ "@parcel/workers" "2.9.3" utility-types "^3.10.0" -"@parcel/utils@2.8.3": - version "2.8.3" - resolved "https://registry.yarnpkg.com/@parcel/utils/-/utils-2.8.3.tgz#0d56c9e8e22c119590a5e044a0e01031965da40e" - integrity sha512-IhVrmNiJ+LOKHcCivG5dnuLGjhPYxQ/IzbnF2DKNQXWBTsYlHkJZpmz7THoeLtLliGmSOZ3ZCsbR8/tJJKmxjA== - dependencies: - "@parcel/codeframe" "2.8.3" - "@parcel/diagnostic" "2.8.3" - "@parcel/hash" "2.8.3" - "@parcel/logger" "2.8.3" - "@parcel/markdown-ansi" "2.8.3" +"@parcel/utils@2.12.0": + version "2.12.0" + resolved "https://registry.yarnpkg.com/@parcel/utils/-/utils-2.12.0.tgz#ac900726e7cb12a9e6392081fa05b756183f65fd" + integrity sha512-z1JhLuZ8QmDaYoEIuUCVZlhcFrS7LMfHrb2OCRui5SQFntRWBH2fNM6H/fXXUkT9SkxcuFP2DUA6/m4+Gkz72g== + dependencies: + "@parcel/codeframe" "2.12.0" + "@parcel/diagnostic" "2.12.0" + "@parcel/logger" "2.12.0" + "@parcel/markdown-ansi" "2.12.0" + "@parcel/rust" "2.12.0" "@parcel/source-map" "^2.1.1" chalk "^4.1.0" + nullthrows "^1.1.1" "@parcel/utils@2.9.3": version "2.9.3" @@ -2273,60 +2370,110 @@ resolved "https://registry.yarnpkg.com/@parcel/watcher-android-arm64/-/watcher-android-arm64-2.2.0.tgz#3d1a71f251ba829ab884dfe119cc4f4c49c7222b" integrity sha512-nU2wh00CTQT9rr1TIKTjdQ9lAGYpmz6XuKw0nAwAN+S2A5YiD55BK1u+E5WMCT8YOIDe/n6gaj4o/Bi9294SSQ== +"@parcel/watcher-android-arm64@2.4.1": + version "2.4.1" + resolved "https://registry.yarnpkg.com/@parcel/watcher-android-arm64/-/watcher-android-arm64-2.4.1.tgz#c2c19a3c442313ff007d2d7a9c2c1dd3e1c9ca84" + integrity sha512-LOi/WTbbh3aTn2RYddrO8pnapixAziFl6SMxHM69r3tvdSm94JtCenaKgk1GRg5FJ5wpMCpHeW+7yqPlvZv7kg== + "@parcel/watcher-darwin-arm64@2.2.0": version "2.2.0" resolved "https://registry.yarnpkg.com/@parcel/watcher-darwin-arm64/-/watcher-darwin-arm64-2.2.0.tgz#9ed47d9e4146d53a39f62577a993426d6ddec2d2" integrity sha512-cJl0UZDcodciy3TDMomoK/Huxpjlkkim3SyMgWzjovHGOZKNce9guLz2dzuFwfObBFCjfznbFMIvAZ5syXotYw== +"@parcel/watcher-darwin-arm64@2.4.1": + version "2.4.1" + resolved "https://registry.yarnpkg.com/@parcel/watcher-darwin-arm64/-/watcher-darwin-arm64-2.4.1.tgz#c817c7a3b4f3a79c1535bfe54a1c2818d9ffdc34" + integrity sha512-ln41eihm5YXIY043vBrrHfn94SIBlqOWmoROhsMVTSXGh0QahKGy77tfEywQ7v3NywyxBBkGIfrWRHm0hsKtzA== + "@parcel/watcher-darwin-x64@2.2.0": version "2.2.0" resolved "https://registry.yarnpkg.com/@parcel/watcher-darwin-x64/-/watcher-darwin-x64-2.2.0.tgz#9b553e61f4a01a0947b1c005619db7b7c9a286d1" integrity sha512-QI77zxaGrCV1StKcoRYfsUfmUmvPMPfQrubkBBy5XujV2fwaLgZivQOTQMBgp5K2+E19u1ufpspKXAPqSzpbyg== +"@parcel/watcher-darwin-x64@2.4.1": + version "2.4.1" + resolved "https://registry.yarnpkg.com/@parcel/watcher-darwin-x64/-/watcher-darwin-x64-2.4.1.tgz#1a3f69d9323eae4f1c61a5f480a59c478d2cb020" + integrity sha512-yrw81BRLjjtHyDu7J61oPuSoeYWR3lDElcPGJyOvIXmor6DEo7/G2u1o7I38cwlcoBHQFULqF6nesIX3tsEXMg== + +"@parcel/watcher-freebsd-x64@2.4.1": + version "2.4.1" + resolved "https://registry.yarnpkg.com/@parcel/watcher-freebsd-x64/-/watcher-freebsd-x64-2.4.1.tgz#0d67fef1609f90ba6a8a662bc76a55fc93706fc8" + integrity sha512-TJa3Pex/gX3CWIx/Co8k+ykNdDCLx+TuZj3f3h7eOjgpdKM+Mnix37RYsYU4LHhiYJz3DK5nFCCra81p6g050w== + "@parcel/watcher-linux-arm-glibc@2.2.0": version "2.2.0" resolved "https://registry.yarnpkg.com/@parcel/watcher-linux-arm-glibc/-/watcher-linux-arm-glibc-2.2.0.tgz#2644f6292b862c52d636978da8711bf2f7b14b24" integrity sha512-I2GPBcAXazPzabCmfsa3HRRW+MGlqxYd8g8RIueJU+a4o5nyNZDz0CR1cu0INT0QSQXEZV7w6UE8Hz9CF8u3Pg== +"@parcel/watcher-linux-arm-glibc@2.4.1": + version "2.4.1" + resolved "https://registry.yarnpkg.com/@parcel/watcher-linux-arm-glibc/-/watcher-linux-arm-glibc-2.4.1.tgz#ce5b340da5829b8e546bd00f752ae5292e1c702d" + integrity sha512-4rVYDlsMEYfa537BRXxJ5UF4ddNwnr2/1O4MHM5PjI9cvV2qymvhwZSFgXqbS8YoTk5i/JR0L0JDs69BUn45YA== + "@parcel/watcher-linux-arm64-glibc@2.2.0": version "2.2.0" resolved "https://registry.yarnpkg.com/@parcel/watcher-linux-arm64-glibc/-/watcher-linux-arm64-glibc-2.2.0.tgz#b82c1715a20e6725c89b2697a208d2ae488d22da" integrity sha512-St5mlfp+2lS9AmgixUqfwJa/DwVmTCJxC1HcOubUTz6YFOKIlkHCeUa1Bxi4E/tR/HSez8+heXHL8HQkJ4Bd8g== +"@parcel/watcher-linux-arm64-glibc@2.4.1": + version "2.4.1" + resolved "https://registry.yarnpkg.com/@parcel/watcher-linux-arm64-glibc/-/watcher-linux-arm64-glibc-2.4.1.tgz#6d7c00dde6d40608f9554e73998db11b2b1ff7c7" + integrity sha512-BJ7mH985OADVLpbrzCLgrJ3TOpiZggE9FMblfO65PlOCdG++xJpKUJ0Aol74ZUIYfb8WsRlUdgrZxKkz3zXWYA== + "@parcel/watcher-linux-arm64-musl@2.2.0": version "2.2.0" resolved "https://registry.yarnpkg.com/@parcel/watcher-linux-arm64-musl/-/watcher-linux-arm64-musl-2.2.0.tgz#45511adc69c4c89b10965f0dd1519e56a00f512f" integrity sha512-jS+qfhhoOBVWwMLP65MaG8xdInMK30pPW8wqTCg2AAuVJh5xepMbzkhHJ4zURqHiyY3EiIRuYu4ONJKCxt8iqA== +"@parcel/watcher-linux-arm64-musl@2.4.1": + version "2.4.1" + resolved "https://registry.yarnpkg.com/@parcel/watcher-linux-arm64-musl/-/watcher-linux-arm64-musl-2.4.1.tgz#bd39bc71015f08a4a31a47cd89c236b9d6a7f635" + integrity sha512-p4Xb7JGq3MLgAfYhslU2SjoV9G0kI0Xry0kuxeG/41UfpjHGOhv7UoUDAz/jb1u2elbhazy4rRBL8PegPJFBhA== + "@parcel/watcher-linux-x64-glibc@2.2.0": version "2.2.0" resolved "https://registry.yarnpkg.com/@parcel/watcher-linux-x64-glibc/-/watcher-linux-x64-glibc-2.2.0.tgz#f6e878bf40874b1ce9530ec87e5c2e644e9ad5ac" integrity sha512-xJvJ7R2wJdi47WZBFS691RDOWvP1j/IAs3EXaWVhDI8FFITbWrWaln7KoNcR0Y3T+ZwimFY/cfb0PNht1q895g== +"@parcel/watcher-linux-x64-glibc@2.4.1": + version "2.4.1" + resolved "https://registry.yarnpkg.com/@parcel/watcher-linux-x64-glibc/-/watcher-linux-x64-glibc-2.4.1.tgz#0ce29966b082fb6cdd3de44f2f74057eef2c9e39" + integrity sha512-s9O3fByZ/2pyYDPoLM6zt92yu6P4E39a03zvO0qCHOTjxmt3GHRMLuRZEWhWLASTMSrrnVNWdVI/+pUElJBBBg== + "@parcel/watcher-linux-x64-musl@2.2.0": version "2.2.0" resolved "https://registry.yarnpkg.com/@parcel/watcher-linux-x64-musl/-/watcher-linux-x64-musl-2.2.0.tgz#4a1b7a8f65b42f50b1819185ef56ed3c9e251425" integrity sha512-D+NMpgr23a+RI5mu8ZPKWy7AqjBOkURFDgP5iIXXEf/K3hm0jJ3ogzi0Ed2237B/CdYREimCgXyeiAlE/FtwyA== +"@parcel/watcher-linux-x64-musl@2.4.1": + version "2.4.1" + resolved "https://registry.yarnpkg.com/@parcel/watcher-linux-x64-musl/-/watcher-linux-x64-musl-2.4.1.tgz#d2ebbf60e407170bb647cd6e447f4f2bab19ad16" + integrity sha512-L2nZTYR1myLNST0O632g0Dx9LyMNHrn6TOt76sYxWLdff3cB22/GZX2UPtJnaqQPdCRoszoY5rcOj4oMTtp5fQ== + "@parcel/watcher-win32-arm64@2.2.0": version "2.2.0" resolved "https://registry.yarnpkg.com/@parcel/watcher-win32-arm64/-/watcher-win32-arm64-2.2.0.tgz#4cdbaf8c1097038e838d12f897ac8595b18dfb1f" integrity sha512-z225cPn3aygJsyVUOWwfyW+fY0Tvk7N3XCOl66qUPFxpbuXeZuiuuJemmtm8vxyqa3Ur7peU/qJxrpC64aeI7Q== +"@parcel/watcher-win32-arm64@2.4.1": + version "2.4.1" + resolved "https://registry.yarnpkg.com/@parcel/watcher-win32-arm64/-/watcher-win32-arm64-2.4.1.tgz#eb4deef37e80f0b5e2f215dd6d7a6d40a85f8adc" + integrity sha512-Uq2BPp5GWhrq/lcuItCHoqxjULU1QYEcyjSO5jqqOK8RNFDBQnenMMx4gAl3v8GiWa59E9+uDM7yZ6LxwUIfRg== + +"@parcel/watcher-win32-ia32@2.4.1": + version "2.4.1" + resolved "https://registry.yarnpkg.com/@parcel/watcher-win32-ia32/-/watcher-win32-ia32-2.4.1.tgz#94fbd4b497be39fd5c8c71ba05436927842c9df7" + integrity sha512-maNRit5QQV2kgHFSYwftmPBxiuK5u4DXjbXx7q6eKjq5dsLXZ4FJiVvlcw35QXzk0KrUecJmuVFbj4uV9oYrcw== + "@parcel/watcher-win32-x64@2.2.0": version "2.2.0" resolved "https://registry.yarnpkg.com/@parcel/watcher-win32-x64/-/watcher-win32-x64-2.2.0.tgz#f2fcc255b7cadfd0afa7c51cde36413632075bcc" integrity sha512-JqGW0RJ61BkKx+yYzIURt9s53P7xMVbv0uxYPzAXLBINGaFmkIKSuUPyBVfy8TMbvp93lvF4SPBNDzVRJfvgOw== -"@parcel/watcher@2.1.0", "@parcel/watcher@^2.0.7": - version "2.1.0" - resolved "https://registry.yarnpkg.com/@parcel/watcher/-/watcher-2.1.0.tgz#5f32969362db4893922c526a842d8af7a8538545" - integrity sha512-8s8yYjd19pDSsBpbkOHnT6Z2+UJSuLQx61pCFM0s5wSRvKCEMDjd/cHY3/GI1szHIWbpXpsJdg3V6ISGGx9xDw== - dependencies: - is-glob "^4.0.3" - micromatch "^4.0.5" - node-addon-api "^3.2.1" - node-gyp-build "^4.3.0" +"@parcel/watcher-win32-x64@2.4.1": + version "2.4.1" + resolved "https://registry.yarnpkg.com/@parcel/watcher-win32-x64/-/watcher-win32-x64-2.4.1.tgz#4bf920912f67cae5f2d264f58df81abfea68dadf" + integrity sha512-+DvS92F9ezicfswqrvIRM2njcYJbd5mb9CUgtrHCHmvn7pPPa+nMDRu1o1bYYz/l5IB2NVGNJWiH7h1E58IF2A== "@parcel/watcher@2.2.0": version "2.2.0" @@ -2349,16 +2496,39 @@ "@parcel/watcher-win32-arm64" "2.2.0" "@parcel/watcher-win32-x64" "2.2.0" -"@parcel/workers@2.8.3": - version "2.8.3" - resolved "https://registry.yarnpkg.com/@parcel/workers/-/workers-2.8.3.tgz#255450ccf4db234082407e4ddda5fd575f08c235" - integrity sha512-+AxBnKgjqVpUHBcHLWIHcjYgKIvHIpZjN33mG5LG9XXvrZiqdWvouEzqEXlVLq5VzzVbKIQQcmsvRy138YErkg== +"@parcel/watcher@^2.0.7": + version "2.4.1" + resolved "https://registry.yarnpkg.com/@parcel/watcher/-/watcher-2.4.1.tgz#a50275151a1bb110879c6123589dba90c19f1bf8" + integrity sha512-HNjmfLQEVRZmHRET336f20H/8kOozUGwk7yajvsonjNxbj2wBTK1WsQuHkD5yYh9RxFGL2EyDHryOihOwUoKDA== dependencies: - "@parcel/diagnostic" "2.8.3" - "@parcel/logger" "2.8.3" - "@parcel/types" "2.8.3" - "@parcel/utils" "2.8.3" - chrome-trace-event "^1.0.2" + detect-libc "^1.0.3" + is-glob "^4.0.3" + micromatch "^4.0.5" + node-addon-api "^7.0.0" + optionalDependencies: + "@parcel/watcher-android-arm64" "2.4.1" + "@parcel/watcher-darwin-arm64" "2.4.1" + "@parcel/watcher-darwin-x64" "2.4.1" + "@parcel/watcher-freebsd-x64" "2.4.1" + "@parcel/watcher-linux-arm-glibc" "2.4.1" + "@parcel/watcher-linux-arm64-glibc" "2.4.1" + "@parcel/watcher-linux-arm64-musl" "2.4.1" + "@parcel/watcher-linux-x64-glibc" "2.4.1" + "@parcel/watcher-linux-x64-musl" "2.4.1" + "@parcel/watcher-win32-arm64" "2.4.1" + "@parcel/watcher-win32-ia32" "2.4.1" + "@parcel/watcher-win32-x64" "2.4.1" + +"@parcel/workers@2.12.0": + version "2.12.0" + resolved "https://registry.yarnpkg.com/@parcel/workers/-/workers-2.12.0.tgz#773182b5006741102de8ae36d18a5a9e3320ebd1" + integrity sha512-zv5We5Jmb+ZWXlU6A+AufyjY4oZckkxsZ8J4dvyWL0W8IQvGO1JB4FGeryyttzQv3RM3OxcN/BpTGPiDG6keBw== + dependencies: + "@parcel/diagnostic" "2.12.0" + "@parcel/logger" "2.12.0" + "@parcel/profiler" "2.12.0" + "@parcel/types" "2.12.0" + "@parcel/utils" "2.12.0" nullthrows "^1.1.1" "@parcel/workers@2.9.3": @@ -2374,12 +2544,13 @@ nullthrows "^1.1.1" "@permaweb/ao-scheduler-utils@~0.0.7": - version "0.0.10" - resolved "https://registry.yarnpkg.com/@permaweb/ao-scheduler-utils/-/ao-scheduler-utils-0.0.10.tgz#cdf59f9591ede3cef83149b6f23ee64d60663411" - integrity sha512-PuPx7b+m3VLoxIE0/Xu5d0bxkQPeWULug6V1QQ/lIIOl+NdAT7QvQC9mHLi1E08BVQh9oZToATg51l7rRF0Bhg== + version "0.0.19" + resolved "https://registry.yarnpkg.com/@permaweb/ao-scheduler-utils/-/ao-scheduler-utils-0.0.19.tgz#69d35c19583624ace3f500f53b4b4d73fca883e1" + integrity sha512-xwIe9FqQ1UZxEYWvSGJDONz0xr4vDq2Ny1NeRUiO0dKYoonShN+oI1ULgrHocKOjOPNEgRX70vMCKGLe+3x70A== dependencies: - lru-cache "^10.1.0" - ramda "^0.29.1" + lru-cache "^10.2.2" + ramda "^0.30.0" + zod "^3.23.5" "@permaweb/aoconnect@^0.0.43": version "0.0.43" @@ -2431,10 +2602,10 @@ dependencies: "@parcel/plugin" "2.9.3" -"@plasmohq/parcel-config@0.39.0": - version "0.39.0" - resolved "https://registry.yarnpkg.com/@plasmohq/parcel-config/-/parcel-config-0.39.0.tgz#8b2ea5afb1ac69b9f32dec43397ab2b1b691cf75" - integrity sha512-Pg5/f4QpB/KdtAyFNlzDdi/zjOEeHk9GnH6Ydoz0qqVcOmaxfTNMoMcdacD6GuB4u27PJsSMwq2jF2YTg7L3aw== +"@plasmohq/parcel-config@0.40.6": + version "0.40.6" + resolved "https://registry.yarnpkg.com/@plasmohq/parcel-config/-/parcel-config-0.40.6.tgz#28de897e3ea7d9522d6963caa65bc03138ad6386" + integrity sha512-vHziUFcOa1pGsnEMsbmKNHh/KoiZQV6Fc1Ocw5nzXJv52wKBdF3MMpqAVphyBjhMLDyXUpI72ntNXhGBVVKo0g== dependencies: "@parcel/compressor-raw" "2.9.3" "@parcel/config-default" "2.9.3" @@ -2442,7 +2613,7 @@ "@parcel/optimizer-data-url" "2.9.3" "@parcel/reporter-bundle-buddy" "2.9.3" "@parcel/resolver-default" "2.9.3" - "@parcel/runtime-js" "2.9.3" + "@parcel/runtime-js" "2.8.3" "@parcel/runtime-service-worker" "2.9.3" "@parcel/source-map" "2.1.1" "@parcel/transformer-babel" "2.9.3" @@ -2461,21 +2632,21 @@ "@plasmohq/parcel-compressor-utf8" "0.0.6" "@plasmohq/parcel-namer-manifest" "0.3.12" "@plasmohq/parcel-optimizer-encapsulate" "0.0.7" - "@plasmohq/parcel-optimizer-es" "0.3.5" + "@plasmohq/parcel-optimizer-es" "0.4.0" "@plasmohq/parcel-packager" "0.6.14" - "@plasmohq/parcel-resolver" "0.13.1" - "@plasmohq/parcel-resolver-post" "0.4.0" - "@plasmohq/parcel-runtime" "0.21.1" + "@plasmohq/parcel-resolver" "0.14.0" + "@plasmohq/parcel-resolver-post" "0.4.4" + "@plasmohq/parcel-runtime" "0.23.1" "@plasmohq/parcel-transformer-inject-env" "0.2.11" - "@plasmohq/parcel-transformer-inline-css" "0.3.8" - "@plasmohq/parcel-transformer-manifest" "0.17.7" - "@plasmohq/parcel-transformer-svelte" "0.5.2" + "@plasmohq/parcel-transformer-inline-css" "0.3.11" + "@plasmohq/parcel-transformer-manifest" "0.18.0" + "@plasmohq/parcel-transformer-svelte" "0.6.0" "@plasmohq/parcel-transformer-vue" "0.5.0" -"@plasmohq/parcel-core@0.1.6": - version "0.1.6" - resolved "https://registry.yarnpkg.com/@plasmohq/parcel-core/-/parcel-core-0.1.6.tgz#b200698d81e92574313302880159eb6606a32955" - integrity sha512-x6lbPIKHeTL8e1VdJ6J7lDlymPs1Yt0abDfe0y/UAdILG6ZH3zQIwdPE/D99cP9+DPfF9S0AbRKVoCIc9qAVwg== +"@plasmohq/parcel-core@0.1.8": + version "0.1.8" + resolved "https://registry.yarnpkg.com/@plasmohq/parcel-core/-/parcel-core-0.1.8.tgz#d532ff3e9d6745fd01293a8b677382c3d39c9a6f" + integrity sha512-kMWuazvf925ZAn2yHzzrb4Zsje1titFmvi/C5cXrI0TH58eT7n6GUiRXiOYP4JgGDHs/pEygx3WPuyWVTNF2HQ== dependencies: "@parcel/cache" "2.9.3" "@parcel/core" "2.9.3" @@ -2490,7 +2661,7 @@ "@parcel/source-map" "2.1.1" "@parcel/types" "2.9.3" "@parcel/utils" "2.9.3" - "@parcel/watcher" "2.1.0" + "@parcel/watcher" "2.2.0" "@parcel/workers" "2.9.3" abortcontroller-polyfill "1.7.5" nullthrows "1.1.1" @@ -2515,16 +2686,16 @@ "@parcel/source-map" "2.1.1" "@parcel/types" "2.9.3" -"@plasmohq/parcel-optimizer-es@0.3.5": - version "0.3.5" - resolved "https://registry.yarnpkg.com/@plasmohq/parcel-optimizer-es/-/parcel-optimizer-es-0.3.5.tgz#028e99bffd907dd927065b9d611e809e7ad42976" - integrity sha512-JrpFR/QCNp06ZkaDlN+ZoxkDWbTuqx4OPZl4tH6gO2OuqgLNBHIKK+wmrwTrTF9JGDhpHeJIS2gsWBWJGQo8Mg== +"@plasmohq/parcel-optimizer-es@0.4.0": + version "0.4.0" + resolved "https://registry.yarnpkg.com/@plasmohq/parcel-optimizer-es/-/parcel-optimizer-es-0.4.0.tgz#7a1ff796c642bbde7e82996d37433e190c6d0425" + integrity sha512-Iz1cTuw38wEbSQ36/dVKh5MyRA12/Ecrx90pqaIkoqA9ZSZuxuWWa7rPa3bVMFkzi28BpVHW1z9EnhVN4188kQ== dependencies: "@parcel/core" "2.9.3" "@parcel/plugin" "2.9.3" "@parcel/source-map" "2.1.1" "@parcel/utils" "2.9.3" - "@swc/core" "1.3.66" + "@swc/core" "1.3.82" nullthrows "1.1.1" "@plasmohq/parcel-packager@0.6.14": @@ -2538,36 +2709,36 @@ "@parcel/utils" "2.9.3" nullthrows "1.1.1" -"@plasmohq/parcel-resolver-post@0.4.0": - version "0.4.0" - resolved "https://registry.yarnpkg.com/@plasmohq/parcel-resolver-post/-/parcel-resolver-post-0.4.0.tgz#096715ba6294d4019cd0716d2709c820e1def702" - integrity sha512-OxaOap00t3NBk4oiGZsiGJdcxPMc3S52/b1WuVgCKw+UODQj5ODMYcgX/c5ieb+VwmSjDY1eBdaL/U1FE6K57w== +"@plasmohq/parcel-resolver-post@0.4.4": + version "0.4.4" + resolved "https://registry.yarnpkg.com/@plasmohq/parcel-resolver-post/-/parcel-resolver-post-0.4.4.tgz#501a722b347497de893080ffb0c19956d62c281e" + integrity sha512-n39U5z2aGAfCDFydpvEDXx0MWtqYwh0+aX4QS49/IsmZMM1Ra+GnHs/gfeJz0jtN83EytlbwSoDcXRkORx9rIQ== dependencies: "@parcel/core" "2.9.3" "@parcel/hash" "2.9.3" "@parcel/plugin" "2.9.3" "@parcel/types" "2.9.3" "@parcel/utils" "2.9.3" - tsup "7.1.0" - typescript "5.1.6" + tsup "7.2.0" + typescript "5.2.2" -"@plasmohq/parcel-resolver@0.13.1": - version "0.13.1" - resolved "https://registry.yarnpkg.com/@plasmohq/parcel-resolver/-/parcel-resolver-0.13.1.tgz#7c205e2a60228954f309bc8009ee47b618431cac" - integrity sha512-IuKr3Ue1+2fsyJPQuHh4Yh36L3FI/2I27X6hC+NHlX/1j9fVYiFk89dTSPNhvAdGN/hwsMjQ/jCiKZGW1157xg== +"@plasmohq/parcel-resolver@0.14.0": + version "0.14.0" + resolved "https://registry.yarnpkg.com/@plasmohq/parcel-resolver/-/parcel-resolver-0.14.0.tgz#5d985854c4df202dba434164a5940bc3c3484a7e" + integrity sha512-OPGFiv2SxDEJl9sNPKfjkQ3QaqKOzSDx8E85Bq9FCOKCj+EWTPfoeUOAuMkHY/ArcvDBhWAo3Zu66f2U7iPEGQ== dependencies: "@parcel/core" "2.9.3" "@parcel/hash" "2.9.3" "@parcel/plugin" "2.9.3" "@parcel/types" "2.9.3" - fast-glob "3.2.12" + fast-glob "3.3.2" fs-extra "11.1.1" got "13.0.0" -"@plasmohq/parcel-runtime@0.21.1": - version "0.21.1" - resolved "https://registry.yarnpkg.com/@plasmohq/parcel-runtime/-/parcel-runtime-0.21.1.tgz#df6abd9ce368b9fcd4c6c8299953c52f86a8dc97" - integrity sha512-Y2O9ZUh2O+TTpT41COLX1LJ1lbqqSQd5jrkZVEAkdSeCRcVpjtqZf/pz3+mdKZpethvxM9O8uU8TIWPhzL3ihA== +"@plasmohq/parcel-runtime@0.23.1": + version "0.23.1" + resolved "https://registry.yarnpkg.com/@plasmohq/parcel-runtime/-/parcel-runtime-0.23.1.tgz#465a31a6cb5fcd9e058855f96220af2192a2b052" + integrity sha512-EiBjAJcJjVFarUmiIqywKd+MHGIThWTkcZe5IYfR7ecaJRNhhZF1B/gPgoAwv1nLcxfvRIC2CF9z9frwQvrOYQ== dependencies: "@parcel/core" "2.9.3" "@parcel/plugin" "2.9.3" @@ -2582,21 +2753,21 @@ "@parcel/plugin" "2.9.3" "@parcel/types" "2.9.3" -"@plasmohq/parcel-transformer-inline-css@0.3.8": - version "0.3.8" - resolved "https://registry.yarnpkg.com/@plasmohq/parcel-transformer-inline-css/-/parcel-transformer-inline-css-0.3.8.tgz#648b292baa5a534e17eea2a2e32d0dbf2d999b55" - integrity sha512-a2DRyIL/cMP5qWni4EzGjhxhIxXSx/M7GsVZZUY/uPDbyWktupRZTfWrs0YCtBn+VCq2WuiHNyvkn30Kj7p/nw== +"@plasmohq/parcel-transformer-inline-css@0.3.11": + version "0.3.11" + resolved "https://registry.yarnpkg.com/@plasmohq/parcel-transformer-inline-css/-/parcel-transformer-inline-css-0.3.11.tgz#dc492d9f5ee76c2f31a87e5d9198eed1d2db86ac" + integrity sha512-EUSwEowFNSgC/F1q/V4H4NXJ23wwLzlmRI6lvIr6S0mIuG/FCga+lAV3IZ+yAuXqUM2VexX6JyYYpNVidrMSxw== dependencies: "@parcel/core" "2.9.3" "@parcel/plugin" "2.9.3" "@parcel/utils" "2.9.3" - browserslist "4.21.9" - lightningcss "1.21.1" + browserslist "4.22.1" + lightningcss "1.21.8" -"@plasmohq/parcel-transformer-manifest@0.17.7": - version "0.17.7" - resolved "https://registry.yarnpkg.com/@plasmohq/parcel-transformer-manifest/-/parcel-transformer-manifest-0.17.7.tgz#1d4f23a46c598e2d6c08f743b0860d89ede08752" - integrity sha512-lnszdDYmt7NwDetGhA0hNxn7RhsaOeks4qlEVyKYgbdf3wBeauEixs8I7pieKvZeYP7fmTyX8JQ15x3VSefkwQ== +"@plasmohq/parcel-transformer-manifest@0.18.0": + version "0.18.0" + resolved "https://registry.yarnpkg.com/@plasmohq/parcel-transformer-manifest/-/parcel-transformer-manifest-0.18.0.tgz#882ee29c84403f8797251e83831bdcda984479bb" + integrity sha512-6X6ubo37Ic7u1y3MjY+vt23Gb3ULtOsH1MbKw3jZMiG8nLGXqXRfiHSyNxJWAdpk7N7ASE8dHnZ+5g3E57bldA== dependencies: "@mischnic/json-sourcemap" "0.1.0" "@parcel/core" "2.9.3" @@ -2606,20 +2777,20 @@ "@parcel/types" "2.9.3" "@parcel/utils" "2.9.3" content-security-policy-parser "0.4.1" - json-schema-to-ts "2.9.1" + json-schema-to-ts "2.9.2" nullthrows "1.1.1" -"@plasmohq/parcel-transformer-svelte@0.5.2": - version "0.5.2" - resolved "https://registry.yarnpkg.com/@plasmohq/parcel-transformer-svelte/-/parcel-transformer-svelte-0.5.2.tgz#8f3bbfad7f6fd86232178c6af09f87c5833570c5" - integrity sha512-kZevkKYgYB7KZqi1+8k5ELqrSNKakqBwuTLnIT0BOx/8VKTJ6fwkzW0SR1OFsDJIACRFbMLO77u+erwHkodBEA== +"@plasmohq/parcel-transformer-svelte@0.6.0": + version "0.6.0" + resolved "https://registry.yarnpkg.com/@plasmohq/parcel-transformer-svelte/-/parcel-transformer-svelte-0.6.0.tgz#dad25dfb771d2b888694468d0e08b287723ba63c" + integrity sha512-5lZW6NBtzhJaCyjpKaZF1/YzY9CF+kbfNknvASJB/Cf6uJPJlrgdxoWiVJ8IWMs3DyLgAnJXTdIU+uwjwXP1wg== dependencies: "@parcel/core" "2.9.3" "@parcel/diagnostic" "2.9.3" "@parcel/plugin" "2.9.3" "@parcel/source-map" "2.1.1" "@parcel/utils" "2.9.3" - svelte "4.0.1" + svelte "4.2.2" "@plasmohq/parcel-transformer-vue@0.5.0": version "0.5.0" @@ -2639,9 +2810,9 @@ vue "3.3.4" "@plasmohq/storage@^1.7.2": - version "1.7.2" - resolved "https://registry.yarnpkg.com/@plasmohq/storage/-/storage-1.7.2.tgz#1be1594fdc048ed31d23dea84033f8e16af6d7f5" - integrity sha512-N8hliSa3XJftAA5gZASKVVMbZ+jxTlNIehRTNT7rIgYhm+PNGXa1xZkuAlv+JDFIUuYMI84/xvVqivKedld73Q== + version "1.10.0" + resolved "https://registry.yarnpkg.com/@plasmohq/storage/-/storage-1.10.0.tgz#c5f672b82c6fb24e8dd6f5e91d8ea52ed8272539" + integrity sha512-qvxD7M/k5BNcluyFHyabm21500tRJs1itUkO4bFad0SeaSFtSmAFtNzYCpQ9ormqJAk2j9xkd5DfWHcuCSQmog== dependencies: pify "6.1.0" @@ -2651,20 +2822,12 @@ integrity sha512-htyl8TWnKL7K/ESFa1oW2UB5lVDxuF5DpM7tBi6Hu2LNL3mWkIzNLG6N4zoCUP1lCKNxWy/3iu8mS8MvToGd6w== "@pnpm/network.ca-file@^1.0.1": - version "1.0.1" - resolved "https://registry.yarnpkg.com/@pnpm/network.ca-file/-/network.ca-file-1.0.1.tgz#16f88d057c68cd5419c1ef3dfa281296ea80b047" - integrity sha512-gkINruT2KUhZLTaiHxwCOh1O4NVnFT0wLjWFBHmTz9vpKag/C/noIMJXBxFe4F0mYpUVX2puLwAieLYFg2NvoA== + version "1.0.2" + resolved "https://registry.yarnpkg.com/@pnpm/network.ca-file/-/network.ca-file-1.0.2.tgz#2ab05e09c1af0cdf2fcf5035bea1484e222f7983" + integrity sha512-YcPQ8a0jwYU9bTdJDpXjMi7Brhkr1mXsXrUJvjqM2mQDgkRiz8jFaQGOdaLxgjtUfQgZhKy/O3cG/YwmgKaxLA== dependencies: graceful-fs "4.2.10" -"@pnpm/npm-conf@^1.0.4": - version "1.0.5" - resolved "https://registry.yarnpkg.com/@pnpm/npm-conf/-/npm-conf-1.0.5.tgz#3475541fb71d7b6ce68acaaa3392eae9fedf3276" - integrity sha512-hD8ml183638O3R6/Txrh0L8VzGOrFXgRtRDG4qQC4tONdZ5Z1M+tlUUDUvrjYdmK6G+JTBTeaCLMna11cXzi8A== - dependencies: - "@pnpm/network.ca-file" "^1.0.1" - config-chain "^1.1.11" - "@pnpm/npm-conf@^2.1.0": version "2.2.2" resolved "https://registry.yarnpkg.com/@pnpm/npm-conf/-/npm-conf-2.2.2.tgz#0058baf1c26cbb63a828f0193795401684ac86f0" @@ -2680,35 +2843,43 @@ integrity sha512-CzS0U8IFfXNK7QaJFE4pjbxDGfPjbXBEsEaCn9FN15F+ouSAEUQkva3Gl66hrkBZOGexKFEWMwUHIDKpZ2hfVg== "@randlabs/myalgo-connect@^1.1.2": - version "1.3.1" - resolved "https://registry.yarnpkg.com/@randlabs/myalgo-connect/-/myalgo-connect-1.3.1.tgz#203c3c92caac718e75a6d0fe75063f938accd8d5" - integrity sha512-/s+DB5Q1QMnGyPRysPQYor5CNJfQ93uVCSlgO4wEn2HRN1/NOBbi2blyEUhOZWsfNDpM/0zRuBBA8gHcnemXDg== + version "1.4.2" + resolved "https://registry.yarnpkg.com/@randlabs/myalgo-connect/-/myalgo-connect-1.4.2.tgz#ce3ad97b3889ea21da75852187511d3f6be0fa05" + integrity sha512-K9hEyUi7G8tqOp7kWIALJLVbGCByhilcy6123WfcorxWwiE1sbQupPyIU5f3YdQK6wMjBsyTWiLW52ZBMp7sXA== dependencies: "@randlabs/communication-bridge" "1.0.1" -"@segment/analytics-core@1.3.0": - version "1.3.0" - resolved "https://registry.yarnpkg.com/@segment/analytics-core/-/analytics-core-1.3.0.tgz#677d1087af44d31266ddf60f72f93b5d5693c933" - integrity sha512-ujScWZH49NK1hYlp2/EMw45nOPEh+pmTydAnR6gSkRNucZD4fuinvpPL03rmFCw8ibaMuKLAdgPJfQ0gkLKZ5A== +"@segment/analytics-core@1.6.0": + version "1.6.0" + resolved "https://registry.yarnpkg.com/@segment/analytics-core/-/analytics-core-1.6.0.tgz#f59cdc45a4408a09fdae77910f5a0b43833e8af8" + integrity sha512-bn9X++IScUfpT7aJGjKU/yJAu/Ko2sYD6HsKA70Z2560E89x30pqgqboVKY8kootvQnT4UKCJiUr5NDMgjmWdQ== dependencies: "@lukeed/uuid" "^2.0.0" + "@segment/analytics-generic-utils" "1.2.0" dset "^3.1.2" tslib "^2.4.1" +"@segment/analytics-generic-utils@1.2.0": + version "1.2.0" + resolved "https://registry.yarnpkg.com/@segment/analytics-generic-utils/-/analytics-generic-utils-1.2.0.tgz#9232162d6dbcd18501813fdff18035ce48fd24bf" + integrity sha512-DfnW6mW3YQOLlDQQdR89k4EqfHb0g/3XvBXkovH1FstUN93eL1kfW9CsDcVQyH3bAC5ZsFyjA/o/1Q2j0QeoWw== + dependencies: + tslib "^2.4.1" + "@segment/analytics-next@^1.53.2": - version "1.53.2" - resolved "https://registry.yarnpkg.com/@segment/analytics-next/-/analytics-next-1.53.2.tgz#807034c1a18475a2d08e6b2f4df0583f3bd15f12" - integrity sha512-Slq9353wH0roLLpt+bKELGPuzaBRwV1SsIN2nMkYep35yudiAok4tLcKw895IogI3UllVmeve6i0l3YKmnwmHg== + version "1.69.0" + resolved "https://registry.yarnpkg.com/@segment/analytics-next/-/analytics-next-1.69.0.tgz#7d66805d2cb9b09888846e6ec4cf22d3c90fd175" + integrity sha512-Uk7l0umdRMtUJSW2WDSG9lUia4OaiFbCIQSFoIHge6sNrCENEDCr/cN8aW0pyRXZ62hFbezuXwTdeTgvFMrTBg== dependencies: "@lukeed/uuid" "^2.0.0" - "@segment/analytics-core" "1.3.0" + "@segment/analytics-core" "1.6.0" + "@segment/analytics-generic-utils" "1.2.0" "@segment/analytics.js-video-plugins" "^0.2.1" "@segment/facade" "^3.4.9" "@segment/tsub" "^2.0.0" dset "^3.1.2" js-cookie "3.0.1" node-fetch "^2.6.7" - spark-md5 "^3.0.1" tslib "^2.4.1" unfetch "^4.1.0" @@ -2751,10 +2922,10 @@ dset "^3.1.1" tiny-hashes "^1.0.1" -"@semantic-release/commit-analyzer@^11.0.0": - version "11.1.0" - resolved "https://registry.yarnpkg.com/@semantic-release/commit-analyzer/-/commit-analyzer-11.1.0.tgz#dd24663c4e1e7c218f53de73f5c639eb2d5a077e" - integrity sha512-cXNTbv3nXR2hlzHjAMgbuiQVtvWHTlwwISt60B+4NZv01y/QRY7p2HcJm8Eh2StzcTJoNnflvKjHH/cjFS7d5g== +"@semantic-release/commit-analyzer@^12.0.0": + version "12.0.0" + resolved "https://registry.yarnpkg.com/@semantic-release/commit-analyzer/-/commit-analyzer-12.0.0.tgz#7219b05ab79a4303c99fc9cd0413d68881599270" + integrity sha512-qG+md5gdes+xa8zP7lIo1fWE17zRdO8yMCaxh9lyL65TQleoSv8WHHOqRURfghTytUh+NpkSyBprQ5hrkxOKVQ== dependencies: conventional-changelog-angular "^7.0.0" conventional-commits-filter "^4.0.0" @@ -2788,7 +2959,29 @@ micromatch "^4.0.0" p-reduce "^2.0.0" -"@semantic-release/github@^9.0.0", "@semantic-release/github@^9.2.6": +"@semantic-release/github@^10.0.0": + version "10.0.3" + resolved "https://registry.yarnpkg.com/@semantic-release/github/-/github-10.0.3.tgz#62cee761bdfa17a007cdb86f66ffb729ae95ca50" + integrity sha512-nSJQboKrG4xBn7hHpRMrK8lt5DgqJg50ZMz9UbrsfTxuRk55XVoQEadbGZ2L9M0xZAC6hkuwkDhQJKqfPU35Fw== + dependencies: + "@octokit/core" "^6.0.0" + "@octokit/plugin-paginate-rest" "^11.0.0" + "@octokit/plugin-retry" "^7.0.0" + "@octokit/plugin-throttling" "^9.0.0" + "@semantic-release/error" "^4.0.0" + aggregate-error "^5.0.0" + debug "^4.3.4" + dir-glob "^3.0.1" + globby "^14.0.0" + http-proxy-agent "^7.0.0" + https-proxy-agent "^7.0.0" + issue-parser "^7.0.0" + lodash-es "^4.17.21" + mime "^4.0.0" + p-filter "^4.0.0" + url-join "^5.0.0" + +"@semantic-release/github@^9.2.6": version "9.2.6" resolved "https://registry.yarnpkg.com/@semantic-release/github/-/github-9.2.6.tgz#0b0b00ab3ab0486cd3aecb4ae2f9f9cf2edd8eae" integrity sha512-shi+Lrf6exeNZF+sBhK+P011LSbhmIAoUEgEY6SsxF8irJ+J2stwI5jkyDQ+4gzYyDImzV6LCKdYB9FXnQRWKA== @@ -2810,10 +3003,10 @@ p-filter "^4.0.0" url-join "^5.0.0" -"@semantic-release/npm@^11.0.0": - version "11.0.2" - resolved "https://registry.yarnpkg.com/@semantic-release/npm/-/npm-11.0.2.tgz#6d50046df286572718484c9a66b2095277e2f650" - integrity sha512-owtf3RjyPvRE63iUKZ5/xO4uqjRpVQDUB9+nnXj0xwfIeM9pRl+cG+zGDzdftR4m3f2s4Wyf3SexW+kF5DFtWA== +"@semantic-release/npm@^12.0.0": + version "12.0.0" + resolved "https://registry.yarnpkg.com/@semantic-release/npm/-/npm-12.0.0.tgz#2c3721aa3e242ad07ae6eb7a951934eeb0f0e5bb" + integrity sha512-72TVYQCH9NvVsO/y13eF8vE4bNnfls518+4KcFwJUKi7AtA/ZXoNgSg9gTTfw5eMZMkiH0izUrpGXgZE/cSQhA== dependencies: "@semantic-release/error" "^4.0.0" aggregate-error "^5.0.0" @@ -2822,17 +3015,17 @@ lodash-es "^4.17.21" nerf-dart "^1.0.0" normalize-url "^8.0.0" - npm "^10.0.0" + npm "^10.5.0" rc "^1.2.8" read-pkg "^9.0.0" registry-auth-token "^5.0.0" semver "^7.1.2" tempy "^3.0.0" -"@semantic-release/release-notes-generator@^12.0.0": - version "12.1.0" - resolved "https://registry.yarnpkg.com/@semantic-release/release-notes-generator/-/release-notes-generator-12.1.0.tgz#7fbe501188c7960db412b96a97c3d6cfb5788d12" - integrity sha512-g6M9AjUKAZUZnxaJZnouNBeDNTCUrJ5Ltj+VJ60gJeDaRRahcHsry9HW8yKrnKkKNkx5lbWiEP1FPMqVNQz8Kg== +"@semantic-release/release-notes-generator@^13.0.0": + version "13.0.0" + resolved "https://registry.yarnpkg.com/@semantic-release/release-notes-generator/-/release-notes-generator-13.0.0.tgz#9fb312c234742e2716c09d669d5d786a4daad465" + integrity sha512-LEeZWb340keMYuREMyxrODPXJJ0JOL8D/mCl74B4LdzbxhtXV2LrPN2QBEcGJrlQhoqLO0RhxQb6masHytKw+A== dependencies: conventional-changelog-angular "^7.0.0" conventional-changelog-writer "^7.0.0" @@ -2845,49 +3038,49 @@ lodash-es "^4.17.21" read-pkg-up "^11.0.0" -"@sigstore/bundle@^2.1.1": - version "2.1.1" - resolved "https://registry.yarnpkg.com/@sigstore/bundle/-/bundle-2.1.1.tgz#7fad9a1728939301607103722ac6f2a083d2f09a" - integrity sha512-v3/iS+1nufZdKQ5iAlQKcCsoh0jffQyABvYIxKsZQFWc4ubuGjwZklFHpDgV6O6T7vvV78SW5NHI91HFKEcxKg== +"@sigstore/bundle@^2.3.0", "@sigstore/bundle@^2.3.1": + version "2.3.1" + resolved "https://registry.yarnpkg.com/@sigstore/bundle/-/bundle-2.3.1.tgz#f6cdc67c8400e58ca27f0ef495b27a9327512073" + integrity sha512-eqV17lO3EIFqCWK3969Rz+J8MYrRZKw9IBHpSo6DEcEX2c+uzDFOgHE9f2MnyDpfs48LFO4hXmk9KhQ74JzU1g== dependencies: - "@sigstore/protobuf-specs" "^0.2.1" + "@sigstore/protobuf-specs" "^0.3.1" -"@sigstore/core@^0.2.0": - version "0.2.0" - resolved "https://registry.yarnpkg.com/@sigstore/core/-/core-0.2.0.tgz#2d8ecae2c38a59a52b1dcbd6110014d88de08a80" - integrity sha512-THobAPPZR9pDH2CAvDLpkrYedt7BlZnsyxDe+Isq4ZmGfPy5juOFZq487vCU2EgKD7aHSiTfE/i7sN7aEdzQnA== +"@sigstore/core@^1.0.0", "@sigstore/core@^1.1.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@sigstore/core/-/core-1.1.0.tgz#5583d8f7ffe599fa0a89f2bf289301a5af262380" + integrity sha512-JzBqdVIyqm2FRQCulY6nbQzMpJJpSiJ8XXWMhtOX9eKgaXXpfNOF53lzQEjIydlStnd/eFtuC1dW4VYdD93oRg== -"@sigstore/protobuf-specs@^0.2.1": - version "0.2.1" - resolved "https://registry.yarnpkg.com/@sigstore/protobuf-specs/-/protobuf-specs-0.2.1.tgz#be9ef4f3c38052c43bd399d3f792c97ff9e2277b" - integrity sha512-XTWVxnWJu+c1oCshMLwnKvz8ZQJJDVOlciMfgpJBQbThVjKTCG8dwyhgLngBD2KN0ap9F/gOV8rFDEx8uh7R2A== +"@sigstore/protobuf-specs@^0.3.0", "@sigstore/protobuf-specs@^0.3.1": + version "0.3.1" + resolved "https://registry.yarnpkg.com/@sigstore/protobuf-specs/-/protobuf-specs-0.3.1.tgz#7095819fa7c5743efde48a858c37b30fab190a09" + integrity sha512-aIL8Z9NsMr3C64jyQzE0XlkEyBLpgEJJFDHLVVStkFV5Q3Il/r/YtY6NJWKQ4cy4AE7spP1IX5Jq7VCAxHHMfQ== -"@sigstore/sign@^2.2.1": - version "2.2.1" - resolved "https://registry.yarnpkg.com/@sigstore/sign/-/sign-2.2.1.tgz#b37383db1f25ab20cfec980d23ce08e6f99e6caf" - integrity sha512-U5sKQEj+faE1MsnLou1f4DQQHeFZay+V9s9768lw48J4pKykPj34rWyI1lsMOGJ3Mae47Ye6q3HAJvgXO21rkQ== +"@sigstore/sign@^2.3.0": + version "2.3.0" + resolved "https://registry.yarnpkg.com/@sigstore/sign/-/sign-2.3.0.tgz#c35e10a3d707e0c69a29bd9f93fa2bdc6275817c" + integrity sha512-tsAyV6FC3R3pHmKS880IXcDJuiFJiKITO1jxR1qbplcsBkZLBmjrEw5GbC7ikD6f5RU1hr7WnmxB/2kKc1qUWQ== dependencies: - "@sigstore/bundle" "^2.1.1" - "@sigstore/core" "^0.2.0" - "@sigstore/protobuf-specs" "^0.2.1" + "@sigstore/bundle" "^2.3.0" + "@sigstore/core" "^1.0.0" + "@sigstore/protobuf-specs" "^0.3.1" make-fetch-happen "^13.0.0" -"@sigstore/tuf@^2.2.0", "@sigstore/tuf@^2.3.0": - version "2.3.0" - resolved "https://registry.yarnpkg.com/@sigstore/tuf/-/tuf-2.3.0.tgz#de64925ea10b16f3a7e77535d91eaf22be4dd904" - integrity sha512-S98jo9cpJwO1mtQ+2zY7bOdcYyfVYCUaofCG6wWRzk3pxKHVAkSfshkfecto2+LKsx7Ovtqbgb2LS8zTRhxJ9Q== +"@sigstore/tuf@^2.3.1", "@sigstore/tuf@^2.3.2": + version "2.3.2" + resolved "https://registry.yarnpkg.com/@sigstore/tuf/-/tuf-2.3.2.tgz#e9c5bffc2a5f3434f87195902d7f9cd7f48c70fa" + integrity sha512-mwbY1VrEGU4CO55t+Kl6I7WZzIl+ysSzEYdA1Nv/FTrl2bkeaPXo5PnWZAVfcY2zSdhOpsUTJW67/M2zHXGn5w== dependencies: - "@sigstore/protobuf-specs" "^0.2.1" + "@sigstore/protobuf-specs" "^0.3.0" tuf-js "^2.2.0" -"@sigstore/verify@^0.1.0": - version "0.1.0" - resolved "https://registry.yarnpkg.com/@sigstore/verify/-/verify-0.1.0.tgz#c017aadb1a516ab4a10651cece29463aa9540bfe" - integrity sha512-2UzMNYAa/uaz11NhvgRnIQf4gpLTJ59bhb8ESXaoSS5sxedfS+eLak8bsdMc+qpNQfITUTFoSKFx5h8umlRRiA== +"@sigstore/verify@^1.2.0": + version "1.2.0" + resolved "https://registry.yarnpkg.com/@sigstore/verify/-/verify-1.2.0.tgz#48549186305d8a5e471a3a304cf4cb3e0c99dde7" + integrity sha512-hQF60nc9yab+Csi4AyoAmilGNfpXT+EXdBgFkP9OgPwIBPwyqVf7JAWPtmqrrrneTmAT6ojv7OlH1f6Ix5BG4Q== dependencies: - "@sigstore/bundle" "^2.1.1" - "@sigstore/core" "^0.2.0" - "@sigstore/protobuf-specs" "^0.2.1" + "@sigstore/bundle" "^2.3.1" + "@sigstore/core" "^1.1.0" + "@sigstore/protobuf-specs" "^0.3.1" "@sindresorhus/is@^4.6.0": version "4.6.0" @@ -2895,14 +3088,14 @@ integrity sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw== "@sindresorhus/is@^5.2.0": - version "5.3.0" - resolved "https://registry.yarnpkg.com/@sindresorhus/is/-/is-5.3.0.tgz#0ec9264cf54a527671d990eb874e030b55b70dcc" - integrity sha512-CX6t4SYQ37lzxicAqsBtxA3OseeoVrh9cSJ5PFYam0GksYlupRfy1A+Q4aYD3zvcfECLc0zO2u+ZnR2UYKvCrw== + version "5.6.0" + resolved "https://registry.yarnpkg.com/@sindresorhus/is/-/is-5.6.0.tgz#41dd6093d34652cddb5d5bdeee04eafc33826668" + integrity sha512-TV7t8GKYaJWsn00tFDqBw8+Uqmr8A0fRU1tvTQhyZzGv0sJCGRQL3JGMI3ucuKo3XIZdUP+Lx7/gh2t3lewy7g== -"@sindresorhus/merge-streams@^1.0.0": - version "1.0.0" - resolved "https://registry.yarnpkg.com/@sindresorhus/merge-streams/-/merge-streams-1.0.0.tgz#9cd84cc15bc865a5ca35fcaae198eb899f7b5c90" - integrity sha512-rUV5WyJrJLoloD4NDN1V1+LDMDWOa4OTsT4yYJwQNpTU6FWxkxHpL7eu4w+DmiH8x/EAM1otkPE1+LaspIbplw== +"@sindresorhus/merge-streams@^2.1.0": + version "2.3.0" + resolved "https://registry.yarnpkg.com/@sindresorhus/merge-streams/-/merge-streams-2.3.0.tgz#719df7fb41766bc143369eaa0dd56d8dc87c9958" + integrity sha512-LtoMMhxAlorcGhmFYI+LhPgbPZCkgP6ra1YL604EeF6U98pLlQ3iWIGMdWSC+vWmPBWBNgmDBAhnAobLROJmwg== "@stdlib/array-float32@^0.0.x": version "0.0.6" @@ -3844,145 +4037,162 @@ deepmerge "^4.2.2" svgo "^2.8.0" -"@swc/core-darwin-arm64@1.3.66": - version "1.3.66" - resolved "https://registry.yarnpkg.com/@swc/core-darwin-arm64/-/core-darwin-arm64-1.3.66.tgz#b34a396479ca8fc82876d6dfb28c78a51010e6ce" - integrity sha512-UijJsvuLy73vxeVYEy7urIHksXS+3BdvJ9s9AY+bRMSQW483NO7RLp8g4FdTyJbRaN0BH15SQnY0dcjQBkVuHw== - -"@swc/core-darwin-arm64@1.3.70": - version "1.3.70" - resolved "https://registry.yarnpkg.com/@swc/core-darwin-arm64/-/core-darwin-arm64-1.3.70.tgz#056ac6899e22cb7f7be21388d4d938ca5123a72b" - integrity sha512-31+mcl0dgdRHvZRjhLOK9V6B+qJ7nxDZYINr9pBlqGWxknz37Vld5KK19Kpr79r0dXUZvaaelLjCnJk9dA2PcQ== - -"@swc/core-darwin-x64@1.3.66": - version "1.3.66" - resolved "https://registry.yarnpkg.com/@swc/core-darwin-x64/-/core-darwin-x64-1.3.66.tgz#b778e434d29652eae6da6ee7ed335605f7cfd866" - integrity sha512-xGsHKvViQnwTNLF30Y/5OqWdnN6RsiyUI8awZXfz1sHcXCEaLe+v+WLQ+/E8sgw0YUkYVHzzfV/sAN2CezJK5Q== - -"@swc/core-darwin-x64@1.3.70": - version "1.3.70" - resolved "https://registry.yarnpkg.com/@swc/core-darwin-x64/-/core-darwin-x64-1.3.70.tgz#3945814de6fadbee5b46cb2a3422353acb420c5c" - integrity sha512-GMFJ65E18zQC80t0os+TZvI+8lbRuitncWVge/RXmXbVLPRcdykP4EJ87cqzcG5Ah0z18/E0T+ixD6jHRisrYQ== - -"@swc/core-linux-arm-gnueabihf@1.3.66": - version "1.3.66" - resolved "https://registry.yarnpkg.com/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.3.66.tgz#a7ab556dc9fc770069fea292ff5551161df83a70" - integrity sha512-gNbLcSIV2pq90BkMSpzvK4xPXOl8GEF3YR4NaqF0CYSzQsVXXTTqMuX/r26xNYudBKzH0345S1MpoRk2qricnA== - -"@swc/core-linux-arm-gnueabihf@1.3.70": - version "1.3.70" - resolved "https://registry.yarnpkg.com/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.3.70.tgz#7960e54ede1af75a7ef99ee53febf37fea6269a8" - integrity sha512-wjhCwS8LCiAq2VedF1b4Bryyw68xZnfMED4pLRazAl8BaUlDFANfRBORNunxlfHQj4V3x39IaiLgCZRHMdzXBg== - -"@swc/core-linux-arm64-gnu@1.3.66": - version "1.3.66" - resolved "https://registry.yarnpkg.com/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.3.66.tgz#00591f5fd0d9f1d1ed565329936451eb6d0d5433" - integrity sha512-cJSQ0oplyWbJqy4rzVcnBYLAi6z1QT3QCcR7iAey0aAmCvfRBZJfXlyjggMjn4iosuadkauwCZR1xYNhBDRn7w== - -"@swc/core-linux-arm64-gnu@1.3.70": - version "1.3.70" - resolved "https://registry.yarnpkg.com/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.3.70.tgz#df9654e5040bbeb1619739756a7f50100e38ace8" - integrity sha512-9D/Rx67cAOnMiexvCqARxvhj7coRajTp5HlJHuf+rfwMqI2hLhpO9/pBMQxBUAWxODO/ksQ/OF+GJRjmtWw/2A== - -"@swc/core-linux-arm64-musl@1.3.66": - version "1.3.66" - resolved "https://registry.yarnpkg.com/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.3.66.tgz#dd8e5e7b1154b5a42a32d57914e0de2cef6686ff" - integrity sha512-GDQZpcB9aGxG9PTA2shdIkoMZlGK5omJ8NR49uoBTtLBVYiGeXAwV0U1Uaw8kXEZj9i7wZDkvjzjSaNH3evRsg== - -"@swc/core-linux-arm64-musl@1.3.70": - version "1.3.70" - resolved "https://registry.yarnpkg.com/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.3.70.tgz#2c2aab5a136c7eb409ddc9cdc4f947a68fd74493" - integrity sha512-gkjxBio7XD+1GlQVVyPP/qeFkLu83VhRHXaUrkNYpr5UZG9zZurBERT9nkS6Y+ouYh+Q9xmw57aIyd2KvD2zqQ== - -"@swc/core-linux-x64-gnu@1.3.66": - version "1.3.66" - resolved "https://registry.yarnpkg.com/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.3.66.tgz#35de4b88e3f256e7923503a8031569c733859b68" - integrity sha512-lg8E4O/Pd9KfK0lajdinVMuGME8dSv7V9arhEpmlfGE2eXSDCWqDn5Htk5QVBstt9lt1lsRhWHJ/YYc2eQY30Q== - -"@swc/core-linux-x64-gnu@1.3.70": - version "1.3.70" - resolved "https://registry.yarnpkg.com/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.3.70.tgz#774351532b154ed36a5c6d14b647e7a8ab510028" - integrity sha512-/nCly+V4xfMVwfEUoLLAukxUSot/RcSzsf6GdsGTjFcrp5sZIntAjokYRytm3VT1c2TK321AfBorsi9R5w8Y7Q== - -"@swc/core-linux-x64-musl@1.3.66": - version "1.3.66" - resolved "https://registry.yarnpkg.com/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.3.66.tgz#623de62c638a31cda5d44014b981290e3f79f6de" - integrity sha512-lo8ZcAO/zL2pZWH+LZIyge8u2MklaeuT6+FpVVpBFktMVdYXbaVtzpvWbgRFBZHvL3SRDF+u8jxjtkXhvGUpTw== - -"@swc/core-linux-x64-musl@1.3.70": - version "1.3.70" - resolved "https://registry.yarnpkg.com/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.3.70.tgz#c0b1b4ad5f4ef187eaa093589a4933ecb6836546" - integrity sha512-HoOsPJbt361KGKaivAK0qIiYARkhzlxeAfvF5NlnKxkIMOZpQ46Lwj3tR0VWohKbrhS+cYKFlVuDi5XnDkx0XA== - -"@swc/core-win32-arm64-msvc@1.3.66": - version "1.3.66" - resolved "https://registry.yarnpkg.com/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.3.66.tgz#49a432f43a314666e681a98801d7b2d303e5ef75" - integrity sha512-cQoVwBuJY5WkHbfpCOlndNwYr1ZThatRjQQvKy540NUIeAEk9Fa6ozlDBtU75UdaWKtUG6YQ/bWz+KTemheVxw== - -"@swc/core-win32-arm64-msvc@1.3.70": - version "1.3.70" - resolved "https://registry.yarnpkg.com/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.3.70.tgz#8640267ce3959db0e7e682103677a5e0500b5ea7" - integrity sha512-hm4IBK/IaRil+aj1cWU6f0GyAdHpw/Jr5nyFYLM2c/tt7w2t5hgb8NjzM2iM84lOClrig1fG6edj2vCF1dFzNQ== - -"@swc/core-win32-ia32-msvc@1.3.66": - version "1.3.66" - resolved "https://registry.yarnpkg.com/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.3.66.tgz#80c8af627b46de67fbac05908025e764194669ad" - integrity sha512-y/FrAIINK4UBeUQQknGlWXEyjo+MBvjF7WkUf2KP7sNr9EHHy8+dXohAGd5Anz0eJrqOM1ZXR/GEjxRp7bGQ1Q== - -"@swc/core-win32-ia32-msvc@1.3.70": - version "1.3.70" - resolved "https://registry.yarnpkg.com/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.3.70.tgz#f95d5656622f5a963bc0125da9fda84cf40faa8d" - integrity sha512-5cgKUKIT/9Fp5fCA+zIjYCQ4dSvjFYOeWGZR3QiTXGkC4bGa1Ji9SEPyeIAX0iruUnKjYaZB9RvHK2tNn7RLrQ== - -"@swc/core-win32-x64-msvc@1.3.66": - version "1.3.66" - resolved "https://registry.yarnpkg.com/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.3.66.tgz#7984da6bf1f1a5410c2e6514dc2814abb2e6c91a" - integrity sha512-yI64ACzS14qFLrfyO12qW+f/UROTotzDeEbuyJAaPD2IZexoT1cICznI3sBmIfrSt33mVuW8eF5m3AG/NUImzw== - -"@swc/core-win32-x64-msvc@1.3.70": - version "1.3.70" - resolved "https://registry.yarnpkg.com/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.3.70.tgz#5b3acddb96fdf60df089b837061915cb4be94eaa" - integrity sha512-LE8lW46+TQBzVkn2mHBlk8DIElPIZ2dO5P8AbJiARNBAnlqQWu67l9gWM89UiZ2l33J2cI37pHzON3tKnT8f9g== - -"@swc/core@1.3.66": - version "1.3.66" - resolved "https://registry.yarnpkg.com/@swc/core/-/core-1.3.66.tgz#d07e4c9cd49205881171ee1ffd04f824ecea2f25" - integrity sha512-Hpf91kH5ly7fHkWnApwryTQryT+TO4kMMPH3WyciUSQOWLE3UuQz1PtETHQQk7PZ/b1QF0qQurJrgfBr5bSKUA== +"@swc/core-darwin-arm64@1.3.82": + version "1.3.82" + resolved "https://registry.yarnpkg.com/@swc/core-darwin-arm64/-/core-darwin-arm64-1.3.82.tgz#bbf9874747b51053d8a59ea26c3e235c326f24a3" + integrity sha512-JfsyDW34gVKD3uE0OUpUqYvAD3yseEaicnFP6pB292THtLJb0IKBBnK50vV/RzEJtc1bR3g1kNfxo2PeurZTrA== + +"@swc/core-darwin-arm64@1.4.17": + version "1.4.17" + resolved "https://registry.yarnpkg.com/@swc/core-darwin-arm64/-/core-darwin-arm64-1.4.17.tgz#e62fa7f247bdd1c0c50a3f99722da4dd098c7c67" + integrity sha512-HVl+W4LezoqHBAYg2JCqR+s9ife9yPfgWSj37iIawLWzOmuuJ7jVdIB7Ee2B75bEisSEKyxRlTl6Y1Oq3owBgw== + +"@swc/core-darwin-x64@1.3.82": + version "1.3.82" + resolved "https://registry.yarnpkg.com/@swc/core-darwin-x64/-/core-darwin-x64-1.3.82.tgz#145cdde16678e0d793620035783e5b413a16ac43" + integrity sha512-ogQWgNMq7qTpITjcP3dnzkFNj7bh6SwMr859GvtOTrE75H7L7jDWxESfH4f8foB/LGxBKiDNmxKhitCuAsZK4A== + +"@swc/core-darwin-x64@1.4.17": + version "1.4.17" + resolved "https://registry.yarnpkg.com/@swc/core-darwin-x64/-/core-darwin-x64-1.4.17.tgz#1145cbb7575e317204ed3a7d0274bd26fe9ffab6" + integrity sha512-WYRO9Fdzq4S/he8zjW5I95G1zcvyd9yyD3Tgi4/ic84P5XDlSMpBDpBLbr/dCPjmSg7aUXxNQqKqGkl6dQxYlA== + +"@swc/core-linux-arm-gnueabihf@1.3.82": + version "1.3.82" + resolved "https://registry.yarnpkg.com/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.3.82.tgz#0c2f32c5793f2ac8e8ccf416aec84d016c30ef7b" + integrity sha512-7TMXG1lXlNhD0kUiEqs+YlGV4irAdBa2quuy+XI3oJf2fBK6dQfEq4xBy65B3khrorzQS3O0oDGQ+cmdpHExHA== + +"@swc/core-linux-arm-gnueabihf@1.4.17": + version "1.4.17" + resolved "https://registry.yarnpkg.com/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.4.17.tgz#7145b3ada5cf9b748eaacbc9a7c7037ba0fb26bb" + integrity sha512-cgbvpWOvtMH0XFjvwppUCR+Y+nf6QPaGu6AQ5hqCP+5Lv2zO5PG0RfasC4zBIjF53xgwEaaWmGP5/361P30X8Q== + +"@swc/core-linux-arm64-gnu@1.3.82": + version "1.3.82" + resolved "https://registry.yarnpkg.com/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.3.82.tgz#2313d4901fa0ebdd2a0f189909073e1e8a07f1d6" + integrity sha512-26JkOujbzcItPAmIbD5vHJxQVy5ihcSu3YHTKwope1h28sApZdtE7S3e2G3gsZRTIdsCQkXUtAQeqHxGWWR3pw== + +"@swc/core-linux-arm64-gnu@1.4.17": + version "1.4.17" + resolved "https://registry.yarnpkg.com/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.4.17.tgz#5c0833ef132af17bd3cbdf2253f35b57c0cf62bb" + integrity sha512-l7zHgaIY24cF9dyQ/FOWbmZDsEj2a9gRFbmgx2u19e3FzOPuOnaopFj0fRYXXKCmtdx+anD750iBIYnTR+pq/Q== + +"@swc/core-linux-arm64-musl@1.3.82": + version "1.3.82" + resolved "https://registry.yarnpkg.com/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.3.82.tgz#6e96cf6e52e647fecf27511d766bea90e96f8a2f" + integrity sha512-8Izj9tuuMpoc3cqiPBRtwqpO1BZ/+sfZVsEhLxrbOFlcSb8LnKyMle1g3JMMUwI4EU75RGVIzZMn8A6GOKdJbA== + +"@swc/core-linux-arm64-musl@1.4.17": + version "1.4.17" + resolved "https://registry.yarnpkg.com/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.4.17.tgz#5bfe81eb23c905f04b669a7d2b060a147a263483" + integrity sha512-qhH4gr9gAlVk8MBtzXbzTP3BJyqbAfUOATGkyUtohh85fPXQYuzVlbExix3FZXTwFHNidGHY8C+ocscI7uDaYw== + +"@swc/core-linux-x64-gnu@1.3.82": + version "1.3.82" + resolved "https://registry.yarnpkg.com/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.3.82.tgz#6275c10d7c8c0768550bc7934c9dd8cde4881d92" + integrity sha512-0GSrIBScQwTaPv46T2qB7XnDYxndRCpwH4HMjh6FN+I+lfPUhTSJKW8AonqrqT1TbpFIgvzQs7EnTsD7AnSCow== + +"@swc/core-linux-x64-gnu@1.4.17": + version "1.4.17" + resolved "https://registry.yarnpkg.com/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.4.17.tgz#a0c19bc9635e86ebd1c7f8e9e026503d1a1bf83d" + integrity sha512-vRDFATL1oN5oZMImkwbgSHEkp8xG1ofEASBypze01W1Tqto8t+yo6gsp69wzCZBlxldsvPpvFZW55Jq0Rn+UnA== + +"@swc/core-linux-x64-musl@1.3.82": + version "1.3.82" + resolved "https://registry.yarnpkg.com/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.3.82.tgz#edb98c30bd0de42bf1a63469937630d942c71988" + integrity sha512-KJUnaaepDKNzrEbwz4jv0iC3/t9x0NSoe06fnkAlhh2+NFKWKKJhVCOBTrpds8n7eylBDIXUlK34XQafjVMUdg== + +"@swc/core-linux-x64-musl@1.4.17": + version "1.4.17" + resolved "https://registry.yarnpkg.com/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.4.17.tgz#2179b9536235a3b02a46997ddb1c178dfadf1667" + integrity sha512-zQNPXAXn3nmPqv54JVEN8k2JMEcMTQ6veVuU0p5O+A7KscJq+AGle/7ZQXzpXSfUCXlLMX4wvd+rwfGhh3J4cw== + +"@swc/core-win32-arm64-msvc@1.3.82": + version "1.3.82" + resolved "https://registry.yarnpkg.com/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.3.82.tgz#0a8e9b361aac37d01f684c8a3d3e94e5f8c3b14f" + integrity sha512-TR3MHKhDYIyGyFcyl2d/p1ftceXcubAhX5wRSOdtOyr5+K/v3jbyCCqN7bbqO5o43wQVCwwR/drHleYyDZvg8Q== + +"@swc/core-win32-arm64-msvc@1.4.17": + version "1.4.17" + resolved "https://registry.yarnpkg.com/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.4.17.tgz#3004a431c836c6b16b4660ea2425dde467a8ee36" + integrity sha512-z86n7EhOwyzxwm+DLE5NoLkxCTme2lq7QZlDjbQyfCxOt6isWz8rkW5QowTX8w9Rdmk34ncrjSLvnHOeLY17+w== + +"@swc/core-win32-ia32-msvc@1.3.82": + version "1.3.82" + resolved "https://registry.yarnpkg.com/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.3.82.tgz#096854ff764282766271f1354ee1214358a8bf01" + integrity sha512-ZX4HzVVt6hs84YUg70UvyBJnBOIspmQQM0iXSzBvOikk3zRoN7BnDwQH4GScvevCEBuou60+i4I6d5kHLOfh8Q== + +"@swc/core-win32-ia32-msvc@1.4.17": + version "1.4.17" + resolved "https://registry.yarnpkg.com/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.4.17.tgz#59155485d5307fb2a267e5acb215e0f440b6f48f" + integrity sha512-JBwuSTJIgiJJX6wtr4wmXbfvOswHFj223AumUrK544QV69k60FJ9q2adPW9Csk+a8wm1hLxq4HKa2K334UHJ/g== + +"@swc/core-win32-x64-msvc@1.3.82": + version "1.3.82" + resolved "https://registry.yarnpkg.com/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.3.82.tgz#1181070bff4a13a7fcc7f1020eef1571f8c1257a" + integrity sha512-4mJMnex21kbQoaHeAmHnVwQN9/XAfPszJ6n9HI7SVH+aAHnbBIR0M59/b50/CJMjTj5niUGk7EwQ3nhVNOG32g== + +"@swc/core-win32-x64-msvc@1.4.17": + version "1.4.17" + resolved "https://registry.yarnpkg.com/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.4.17.tgz#b98f25fc277fb0e319f25f9fd00a82023662716b" + integrity sha512-jFkOnGQamtVDBm3MF5Kq1lgW8vx4Rm1UvJWRUfg+0gx7Uc3Jp3QMFeMNw/rDNQYRDYPG3yunCC+2463ycd5+dg== + +"@swc/core@1.3.82": + version "1.3.82" + resolved "https://registry.yarnpkg.com/@swc/core/-/core-1.3.82.tgz#8f6c53db3c23a1769b6c5085fbcb3b1df9548a40" + integrity sha512-jpC1a18HMH67018Ij2jh+hT7JBFu7ZKcQVfrZ8K6JuEY+kjXmbea07P9MbQUZbAe0FB+xi3CqEVCP73MebodJQ== + dependencies: + "@swc/types" "^0.1.4" optionalDependencies: - "@swc/core-darwin-arm64" "1.3.66" - "@swc/core-darwin-x64" "1.3.66" - "@swc/core-linux-arm-gnueabihf" "1.3.66" - "@swc/core-linux-arm64-gnu" "1.3.66" - "@swc/core-linux-arm64-musl" "1.3.66" - "@swc/core-linux-x64-gnu" "1.3.66" - "@swc/core-linux-x64-musl" "1.3.66" - "@swc/core-win32-arm64-msvc" "1.3.66" - "@swc/core-win32-ia32-msvc" "1.3.66" - "@swc/core-win32-x64-msvc" "1.3.66" + "@swc/core-darwin-arm64" "1.3.82" + "@swc/core-darwin-x64" "1.3.82" + "@swc/core-linux-arm-gnueabihf" "1.3.82" + "@swc/core-linux-arm64-gnu" "1.3.82" + "@swc/core-linux-arm64-musl" "1.3.82" + "@swc/core-linux-x64-gnu" "1.3.82" + "@swc/core-linux-x64-musl" "1.3.82" + "@swc/core-win32-arm64-msvc" "1.3.82" + "@swc/core-win32-ia32-msvc" "1.3.82" + "@swc/core-win32-x64-msvc" "1.3.82" "@swc/core@^1.3.36": - version "1.3.70" - resolved "https://registry.yarnpkg.com/@swc/core/-/core-1.3.70.tgz#f5ddc6fe6add7a99f5b94d2214ad0d8527d11479" - integrity sha512-LWVWlEDLlOD25PvA2NEz41UzdwXnlDyBiZbe69s3zM0DfCPwZXLUm79uSqH9ItsOjTrXSL5/1+XUL6C/BZwChA== + version "1.4.17" + resolved "https://registry.yarnpkg.com/@swc/core/-/core-1.4.17.tgz#3ea4180fa5c54282b284006a6de1263ef1cf887f" + integrity sha512-tq+mdWvodMBNBBZbwFIMTVGYHe9N7zvEaycVVjfvAx20k1XozHbHhRv+9pEVFJjwRxLdXmtvFZd3QZHRAOpoNQ== + dependencies: + "@swc/counter" "^0.1.2" + "@swc/types" "^0.1.5" optionalDependencies: - "@swc/core-darwin-arm64" "1.3.70" - "@swc/core-darwin-x64" "1.3.70" - "@swc/core-linux-arm-gnueabihf" "1.3.70" - "@swc/core-linux-arm64-gnu" "1.3.70" - "@swc/core-linux-arm64-musl" "1.3.70" - "@swc/core-linux-x64-gnu" "1.3.70" - "@swc/core-linux-x64-musl" "1.3.70" - "@swc/core-win32-arm64-msvc" "1.3.70" - "@swc/core-win32-ia32-msvc" "1.3.70" - "@swc/core-win32-x64-msvc" "1.3.70" + "@swc/core-darwin-arm64" "1.4.17" + "@swc/core-darwin-x64" "1.4.17" + "@swc/core-linux-arm-gnueabihf" "1.4.17" + "@swc/core-linux-arm64-gnu" "1.4.17" + "@swc/core-linux-arm64-musl" "1.4.17" + "@swc/core-linux-x64-gnu" "1.4.17" + "@swc/core-linux-x64-musl" "1.4.17" + "@swc/core-win32-arm64-msvc" "1.4.17" + "@swc/core-win32-ia32-msvc" "1.4.17" + "@swc/core-win32-x64-msvc" "1.4.17" + +"@swc/counter@^0.1.2", "@swc/counter@^0.1.3": + version "0.1.3" + resolved "https://registry.yarnpkg.com/@swc/counter/-/counter-0.1.3.tgz#cc7463bd02949611c6329596fccd2b0ec782b0e9" + integrity sha512-e2BR4lsJkkRlKZ/qCHPw9ZaSxc0MVUd7gtbtaB7aMvHeJVYe8sOB8DBZkP2DtISHGSku9sCK6T6cnY0CtXrOCQ== "@swc/helpers@^0.5.0": - version "0.5.1" - resolved "https://registry.yarnpkg.com/@swc/helpers/-/helpers-0.5.1.tgz#e9031491aa3f26bfcc974a67f48bd456c8a5357a" - integrity sha512-sJ902EfIzn1Fa+qYmjdQqh8tPsoxyBz+8yBKC2HKUxyezKJFwPGOn7pv4WY6QuQW//ySQi5lJjA/ZT9sNWWNTg== + version "0.5.11" + resolved "https://registry.yarnpkg.com/@swc/helpers/-/helpers-0.5.11.tgz#5bab8c660a6e23c13b2d23fcd1ee44a2db1b0cb7" + integrity sha512-YNlnKRWF2sVojTpIyzwou9XoTNbzbzONwRhOoniEioF1AtaitTvVZblaQRrAzChWQ1bLYyYSWzM18y4WwgzJ+A== dependencies: tslib "^2.4.0" +"@swc/types@^0.1.4", "@swc/types@^0.1.5": + version "0.1.6" + resolved "https://registry.yarnpkg.com/@swc/types/-/types-0.1.6.tgz#2f13f748995b247d146de2784d3eb7195410faba" + integrity sha512-/JLo/l2JsT/LRd80C3HfbmVpxOAJ11FO2RCEslFrgzLltoP9j8XIbsyDcfCt2WWyX+CM96rBoNM+IToAkFOugg== + dependencies: + "@swc/counter" "^0.1.3" + "@szmarczak/http-timer@^5.0.1": version "5.0.1" resolved "https://registry.yarnpkg.com/@szmarczak/http-timer/-/http-timer-5.0.1.tgz#c7c1bf1141cdd4751b0399c8fc7b8b664cd5be3a" @@ -4016,50 +4226,50 @@ "@types/filesystem" "*" "@types/har-format" "*" -"@types/estree@*", "@types/estree@^1.0.0": - version "1.0.1" - resolved "https://registry.yarnpkg.com/@types/estree/-/estree-1.0.1.tgz#aa22750962f3bf0e79d753d3cc067f010c95f194" - integrity sha512-LG4opVs2ANWZ1TJoKc937iMmNstM/d0ae1vNbnBvBhqCSezgVUOzcLCqbI5elV8Vy6WKwKjaqR+zO9VKirBBCA== +"@types/estree@*", "@types/estree@^1.0.0", "@types/estree@^1.0.1": + version "1.0.5" + resolved "https://registry.yarnpkg.com/@types/estree/-/estree-1.0.5.tgz#a6ce3e556e00fd9895dd872dd172ad0d4bd687f4" + integrity sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw== "@types/filesystem@*": - version "0.0.32" - resolved "https://registry.yarnpkg.com/@types/filesystem/-/filesystem-0.0.32.tgz#307df7cc084a2293c3c1a31151b178063e0a8edf" - integrity sha512-Yuf4jR5YYMR2DVgwuCiP11s0xuVRyPKmz8vo6HBY3CGdeMj8af93CFZX+T82+VD1+UqHOxTq31lO7MI7lepBtQ== + version "0.0.36" + resolved "https://registry.yarnpkg.com/@types/filesystem/-/filesystem-0.0.36.tgz#7227c2d76bfed1b21819db310816c7821d303857" + integrity sha512-vPDXOZuannb9FZdxgHnqSwAG/jvdGM8Wq+6N4D/d80z+D4HWH+bItqsZaVRQykAn6WEVeEkLm2oQigyHtgb0RA== dependencies: "@types/filewriter" "*" "@types/filewriter@*": - version "0.0.29" - resolved "https://registry.yarnpkg.com/@types/filewriter/-/filewriter-0.0.29.tgz#a48795ecadf957f6c0d10e0c34af86c098fa5bee" - integrity sha512-BsPXH/irW0ht0Ji6iw/jJaK8Lj3FJemon2gvEqHKpCdDCeemHa+rI3WBGq5z7cDMZgoLjY40oninGxqk+8NzNQ== + version "0.0.33" + resolved "https://registry.yarnpkg.com/@types/filewriter/-/filewriter-0.0.33.tgz#d9d611db9d9cd99ae4e458de420eeb64ad604ea8" + integrity sha512-xFU8ZXTw4gd358lb2jw25nxY9QAgqn2+bKKjKOYfNCzN4DKCFetK7sPtrlpg66Ywe3vWY9FNxprZawAh9wfJ3g== "@types/har-format@*": - version "1.2.8" - resolved "https://registry.yarnpkg.com/@types/har-format/-/har-format-1.2.8.tgz#e6908b76d4c88be3db642846bb8b455f0bfb1c4e" - integrity sha512-OP6L9VuZNdskgNN3zFQQ54ceYD8OLq5IbqO4VK91ORLfOm7WdT/CiT/pHEBSQEqCInJ2y3O6iCm/zGtPElpgJQ== + version "1.2.15" + resolved "https://registry.yarnpkg.com/@types/har-format/-/har-format-1.2.15.tgz#f352493638c2f89d706438a19a9eb300b493b506" + integrity sha512-RpQH4rXLuvTXKR0zqHq3go0RVXYv/YVqv4TnPH95VbwUxZdQlK1EtcMvQvMpDngHbt13Csh9Z4qT9AbkiQH5BA== "@types/hoist-non-react-statics@*": - version "3.3.1" - resolved "https://registry.yarnpkg.com/@types/hoist-non-react-statics/-/hoist-non-react-statics-3.3.1.tgz#1124aafe5118cb591977aeb1ceaaed1070eb039f" - integrity sha512-iMIqiko6ooLrTh1joXodJK5X9xeEALT1kM5G3ZLhD3hszxBdIEd5C75U834D9mLcINgD4OyZf5uQXjkuYydWvA== + version "3.3.5" + resolved "https://registry.yarnpkg.com/@types/hoist-non-react-statics/-/hoist-non-react-statics-3.3.5.tgz#dab7867ef789d87e2b4b0003c9d65c49cc44a494" + integrity sha512-SbcrWzkKBw2cdwRTwQAswfpB9g9LJWfjtUeW/jvNwbhC8cpmmNYVePa+ncbUe0rGTQ7G3Ff6mYUN2VMfLVr+Sg== dependencies: "@types/react" "*" hoist-non-react-statics "^3.3.0" -"@types/http-cache-semantics@^4.0.1": - version "4.0.1" - resolved "https://registry.yarnpkg.com/@types/http-cache-semantics/-/http-cache-semantics-4.0.1.tgz#0ea7b61496902b95890dc4c3a116b60cb8dae812" - integrity sha512-SZs7ekbP8CN0txVG2xVRH6EgKmEm31BOxA07vkFaETzZz1xh+cbt8BcI0slpymvwhx5dlFnQG2rTlPVQn+iRPQ== +"@types/http-cache-semantics@^4.0.2": + version "4.0.4" + resolved "https://registry.yarnpkg.com/@types/http-cache-semantics/-/http-cache-semantics-4.0.4.tgz#b979ebad3919799c979b17c72621c0bc0a31c6c4" + integrity sha512-1m0bIFVc7eJWyve9S0RnuRgcQqF/Xd5QsUZAZeQFr1Q3/p9JWoQQEqmVy+DPTNpGXwhgIetAoYF8JSc33q29QA== "@types/human-crypto-keys@^0.1.0": - version "0.1.0" - resolved "https://registry.yarnpkg.com/@types/human-crypto-keys/-/human-crypto-keys-0.1.0.tgz#5b93ca4ba701fec24a166eb48e43465a6b5dc268" - integrity sha512-5gHgkmAKb8eE/RbT3OMvtqS7AXQTsd42sYPCVobNSoakix01JyDbOJ58OGiKHmBroOZ3Kis8ZgyGUKzhgddpKQ== + version "0.1.3" + resolved "https://registry.yarnpkg.com/@types/human-crypto-keys/-/human-crypto-keys-0.1.3.tgz#afa590474d883b9ef15a9b5b3bd27ef5a2b143bb" + integrity sha512-UAnZ9KblBGNE9zoCUKNqhcbgzCCRWzcfRj1JamUDGqLOap++cdUEVzcMv39DR2zNSx+piGO1tY8BQhsz5Al/xg== "@types/json-schema@^7.0.9": - version "7.0.12" - resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.12.tgz#d70faba7039d5fca54c83c7dbab41051d2b6f6cb" - integrity sha512-Hr5Jfhc9eYOQNPYO5WLDq/n4jqijdHNlDXjuAQkkt+mWdQR+XJToOHrsD4cPaMXpn6KO7y2+wM8AZEs8VpBLVA== + version "7.0.15" + resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.15.tgz#596a1747233694d50f6ad8a7869fcb6f56cf5841" + integrity sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA== "@types/minimist@^1.2.0": version "1.2.5" @@ -4082,47 +4292,41 @@ integrity sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA== "@types/parse-json@^4.0.0": - version "4.0.0" - resolved "https://registry.yarnpkg.com/@types/parse-json/-/parse-json-4.0.0.tgz#2f8bb441434d163b35fb8ffdccd7138927ffb8c0" - integrity sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA== + version "4.0.2" + resolved "https://registry.yarnpkg.com/@types/parse-json/-/parse-json-4.0.2.tgz#5950e50960793055845e956c427fc2b0d70c5239" + integrity sha512-dISoDXWWQwUquiKsyZ4Ng+HX2KsPL7LyHKHQwgGFEA3IaKac4Obd+h2a/a6waisAoepJlBcx9paWqjA8/HVjCw== "@types/prop-types@*": - version "15.7.5" - resolved "https://registry.yarnpkg.com/@types/prop-types/-/prop-types-15.7.5.tgz#5f19d2b85a98e9558036f6a3cacc8819420f05cf" - integrity sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w== + version "15.7.12" + resolved "https://registry.yarnpkg.com/@types/prop-types/-/prop-types-15.7.12.tgz#12bb1e2be27293c1406acb6af1c3f3a1481d98c6" + integrity sha512-5zvhXYtRNRluoE/jAp4GVsSduVUzNWKkOZrCDBWYtE7biZywwdC2AcEzg+cSMLFRfVgeAFqpfNabiPjxFddV1Q== "@types/react-dom@^18.0.6": - version "18.0.6" - resolved "https://registry.yarnpkg.com/@types/react-dom/-/react-dom-18.0.6.tgz#36652900024842b74607a17786b6662dd1e103a1" - integrity sha512-/5OFZgfIPSwy+YuIBP/FgJnQnsxhZhjjrnxudMddeblOouIodEQ75X14Rr4wGSG/bknL+Omy9iWlLo1u/9GzAA== + version "18.3.0" + resolved "https://registry.yarnpkg.com/@types/react-dom/-/react-dom-18.3.0.tgz#0cbc818755d87066ab6ca74fbedb2547d74a82b0" + integrity sha512-EhwApuTmMBmXuFOikhQLIBUn6uFg81SwLMOAUgodJF14SOBOCMdU04gDoYi0WOJJHD144TL32z4yDqCW3dnkQg== dependencies: "@types/react" "*" "@types/react-qr-reader@^2.1.4": - version "2.1.4" - resolved "https://registry.yarnpkg.com/@types/react-qr-reader/-/react-qr-reader-2.1.4.tgz#a36f0b83b4402e26c4217d0e8af6b5e2887fc749" - integrity sha512-2Hq+UNfsO2TVqxbFlOE0gGhQr/+C4wdgNDaaLV8K93mK/Z7Vw2D3YbMlnJAaSzM45fUtYJs0vc48wV04+OEkiA== + version "2.1.7" + resolved "https://registry.yarnpkg.com/@types/react-qr-reader/-/react-qr-reader-2.1.7.tgz#1472a47ddbc0f96ddd246309f35826f01113837e" + integrity sha512-6K6DQeqP7c2oohcfvBpExlOawVsB2/C+7ZZL/fkCkNzYYAKDJnNHnuP3F5ChMl0mpoYEdqkqkllxqfM0VslEiw== dependencies: "@types/react" "*" "@types/react@*", "@types/react@^18.0.18": - version "18.0.18" - resolved "https://registry.yarnpkg.com/@types/react/-/react-18.0.18.tgz#9f16f33d57bc5d9dca848d12c3572110ff9429ac" - integrity sha512-6hI08umYs6NaiHFEEGioXnxJ+oEhY3eRz8VCUaudZmGdtvPviCJB8mgaMxaDWAdPSYd4eFavrPk2QIolwbLYrg== + version "18.3.1" + resolved "https://registry.yarnpkg.com/@types/react/-/react-18.3.1.tgz#fed43985caa834a2084d002e4771e15dfcbdbe8e" + integrity sha512-V0kuGBX3+prX+DQ/7r2qsv1NsdfnCLnTgnRJ1pYnxykBhGMz+qj+box5lq7XsO5mtZsBqpjwwTu/7wszPfMBcw== dependencies: "@types/prop-types" "*" - "@types/scheduler" "*" csstype "^3.0.2" -"@types/scheduler@*": - version "0.16.2" - resolved "https://registry.yarnpkg.com/@types/scheduler/-/scheduler-0.16.2.tgz#1a62f89525723dde24ba1b01b092bf5df8ad4d39" - integrity sha512-hppQEBDmlwhFAXKJX2KnWLYu5yMfi91yazPb2l+lbJiwW+wdo1gNeRA+3RgNSO39WYX2euey41KEwnqesU2Jew== - "@types/semver@^7.5.0": - version "7.5.6" - resolved "https://registry.yarnpkg.com/@types/semver/-/semver-7.5.6.tgz#c65b2bfce1bec346582c07724e3f8c1017a20339" - integrity sha512-dn1l8LaMea/IjDoHNd9J52uBbInB796CDffS6VdIxvqYCPSG0V0DzHp76GpaWnlhg88uYyPbXCDIowa86ybd5A== + version "7.5.8" + resolved "https://registry.yarnpkg.com/@types/semver/-/semver-7.5.8.tgz#8268a8c57a3e4abd25c165ecd36237db7948a55e" + integrity sha512-I8EUhyrgfLrcTkzV3TSsGyl1tSuPrEDzr0yd5m90UgNxQkyDXULk3b6MlQqTCpZpNtWe1K0hzclnZkTcLBe2UQ== "@types/serviceworker@^0.0.55": version "0.0.55" @@ -4130,9 +4334,9 @@ integrity sha512-mW20RocPKnbNi58oH1r7QNMCpcFglIeymK4t8ceou3ly/ymdPgsQCP7i0uRPl/zj2BSU8oRxJD8bFJnnbn/V3A== "@types/styled-components@^5.1.26": - version "5.1.26" - resolved "https://registry.yarnpkg.com/@types/styled-components/-/styled-components-5.1.26.tgz#5627e6812ee96d755028a98dae61d28e57c233af" - integrity sha512-KuKJ9Z6xb93uJiIyxo/+ksS7yLjS1KzG6iv5i78dhVg/X3u5t1H7juRWqVmodIdz6wGVaIApo1u01kmFRdJHVw== + version "5.1.34" + resolved "https://registry.yarnpkg.com/@types/styled-components/-/styled-components-5.1.34.tgz#4107df8ef8a7eaba4fa6b05f78f93fba4daf0300" + integrity sha512-mmiVvwpYklFIv9E8qfxuPyIt/OuyIrn6gMOAMOFUO3WJfSrSE+sGUoa4PiZj77Ut7bKZpaa6o1fBKS/4TOEvnA== dependencies: "@types/hoist-non-react-statics" "*" "@types/react" "*" @@ -4266,10 +4470,10 @@ abortcontroller-polyfill@1.7.5, abortcontroller-polyfill@^1.1.9: resolved "https://registry.yarnpkg.com/abortcontroller-polyfill/-/abortcontroller-polyfill-1.7.5.tgz#6738495f4e901fbb57b6c0611d0c75f76c485bed" integrity sha512-JMJ5soJWP18htbbxJjG7bG6yuI6pRhgJ0scHHTfkUjf6wjP912xZWvM+A4sJK3gqd9E8fcPbDnOefbA9Th/FIQ== -abstract-level@^1.0.0, abstract-level@^1.0.2: - version "1.0.3" - resolved "https://registry.yarnpkg.com/abstract-level/-/abstract-level-1.0.3.tgz#78a67d3d84da55ee15201486ab44c09560070741" - integrity sha512-t6jv+xHy+VYwc4xqZMn2Pa9DjcdzvzZmQGRjTFc8spIbRGHgBrEKbPq+rYXc7CCo0lxgYvSgKVg9qZAhpVQSjA== +abstract-level@^1.0.0, abstract-level@^1.0.2, abstract-level@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/abstract-level/-/abstract-level-1.0.4.tgz#3ad8d684c51cc9cbc9cf9612a7100b716c414b57" + integrity sha512-eUP/6pbXBkMbXFdx4IH2fVgvB7M0JvR7/lIL33zcs0IBcwjdzSSl31TOJsaCzmKSSDF9h8QYSOJux4Nd4YJqFg== dependencies: buffer "^6.0.3" catering "^2.1.0" @@ -4279,20 +4483,20 @@ abstract-level@^1.0.0, abstract-level@^1.0.2: module-error "^1.0.1" queue-microtask "^1.2.3" -acorn@^8.8.2, acorn@^8.9.0: - version "8.10.0" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.10.0.tgz#8be5b3907a67221a81ab23c7889c4c5526b62ec5" - integrity sha512-F0SAmZ8iUtS//m8DmCTA0jlh6TDKkHQyK6xc6V4KDTyZKA9dnvX9/3sRTVQrWm79glUAZbnmmNcdYwUIHWVybw== +acorn@^8.10.0, acorn@^8.9.0: + version "8.11.3" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.11.3.tgz#71e0b14e13a4ec160724b38fb7b0f233b1b81d7a" + integrity sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg== aes-js@3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/aes-js/-/aes-js-3.0.0.tgz#e21df10ad6c2053295bcbb8dab40b09dbea87e4d" integrity sha512-H7wUZRn8WpTq9jocdxQ2c8x2sKo9ZVmzfRE13GiNJXfp7NcKYEdvl3vspKjXox6RIG2VtaRe4JFvxG4rqp2Zuw== -agent-base@^7.0.2, agent-base@^7.1.0: - version "7.1.0" - resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-7.1.0.tgz#536802b76bc0b34aa50195eb2442276d613e3434" - integrity sha512-o/zjMZRhJxny7OyEF+Op8X+efiELC7k7yOjMzgfzVqOzXqkBkWI79YoTdOtsuWd5BWhAGAuOY/Xa6xpiaWXiNg== +agent-base@^7.0.2, agent-base@^7.1.0, agent-base@^7.1.1: + version "7.1.1" + resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-7.1.1.tgz#bdbded7dfb096b751a2a087eeeb9664725b2e317" + integrity sha512-H0TSyFNDMomMNJQBn8wFV5YC/2eJ+VXECwOadZJT554xP6cODZHPX3H9QMQECxvrgiSOP1pHjy1sMWQVYJOUOA== dependencies: debug "^4.3.4" @@ -4318,22 +4522,20 @@ algo-msgpack-with-bigint@^2.1.1: integrity sha512-F1tGh056XczEaEAqu7s+hlZUDWwOBT70Eq0lfMpBP2YguSQVyxRbprLq5rELXKQOyOaixTWYhMeMQMzP0U5FoQ== algosdk@^1.13.1: - version "1.20.0" - resolved "https://registry.yarnpkg.com/algosdk/-/algosdk-1.20.0.tgz#e699fa3b5c658b6cc87cf4bfbfd1b0c72727e7e6" - integrity sha512-KKfSIIdQTgdj3rKaYGLu3n16KC5obx0n+6XvlwAhyGxqG1K5bCJ9F1zbblhCE9aKEv+buNR23Lw6hXGQ54PA1A== + version "1.24.1" + resolved "https://registry.yarnpkg.com/algosdk/-/algosdk-1.24.1.tgz#afc4102457ae0c38a32de6b84f4d713aedfc9e89" + integrity sha512-9moZxdqeJ6GdE4N6fA/GlUP4LrbLZMYcYkt141J4Ss68OfEgH9qW0wBuZ3ZOKEx/xjc5bg7mLP2Gjg7nwrkmww== dependencies: algo-msgpack-with-bigint "^2.1.1" buffer "^6.0.2" + cross-fetch "^3.1.5" hi-base32 "^0.5.1" js-sha256 "^0.9.0" js-sha3 "^0.8.0" js-sha512 "^0.8.0" json-bigint "^1.0.0" - superagent "^6.1.0" tweetnacl "^1.0.3" vlq "^2.0.4" - optionalDependencies: - fsevents "2.1.2" ansi-colors@^4.1.1, ansi-colors@^4.1.3: version "4.1.3" @@ -4348,11 +4550,9 @@ ansi-escapes@^4.3.2: type-fest "^0.21.3" ansi-escapes@^6.2.0: - version "6.2.0" - resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-6.2.0.tgz#8a13ce75286f417f1963487d86ba9f90dccf9947" - integrity sha512-kzRaCqXnpzWs+3z5ABPQiVke+iq0KXkHo8xiWV4RPTi5Yli0l97BEQuhXV1s7+aSU/fu1kUuxgS4MsQ0fRuygw== - dependencies: - type-fest "^3.0.0" + version "6.2.1" + resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-6.2.1.tgz#76c54ce9b081dad39acec4b5d53377913825fb0f" + integrity sha512-4nJ3yixlEthEJ9Rk4vPcdBRkZvQZlYyu8j4/Mqz5sgIkddmEnH2Yj2ZrnP9S3tQOvSNRUIgVNF/1yPpRAGNRig== ansi-regex@^5.0.1: version "5.0.1" @@ -4371,7 +4571,7 @@ ansi-styles@^3.2.1: dependencies: color-convert "^1.9.0" -ansi-styles@^4.0.0, ansi-styles@^4.1.0, ansi-styles@^4.3.0: +ansi-styles@^4.0.0, ansi-styles@^4.1.0: version "4.3.0" resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937" integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== @@ -4383,11 +4583,6 @@ ansi-styles@^6.1.0: resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-6.2.1.tgz#0e62320cf99c21afff3b3012192546aacbfb05c5" integrity sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug== -ansicolors@~0.3.2: - version "0.3.2" - resolved "https://registry.yarnpkg.com/ansicolors/-/ansicolors-0.3.2.tgz#665597de86a9ffe3aa9bfbe6cae5c6ea426b4979" - integrity sha512-QXu7BPrP29VllRxH8GwB7x5iX5qWKAAMLqKQGWTeLWVlNHNOpVMJ91dsxQAIWXpjuW5wqvxu3Jd/nRjrJ+0pqg== - any-promise@^1.0.0: version "1.3.0" resolved "https://registry.yarnpkg.com/any-promise/-/any-promise-1.3.0.tgz#abc6afeedcea52e809cdc0376aed3ce39635d17f" @@ -4401,11 +4596,21 @@ anymatch@~3.1.2: normalize-path "^3.0.0" picomatch "^2.0.4" -"aproba@^1.0.3 || ^2.0.0", aproba@^2.0.0: +ao-tokens@^0.0.3: + version "0.0.3" + resolved "https://registry.yarnpkg.com/ao-tokens/-/ao-tokens-0.0.3.tgz#55f3e74a1931d842f59d9c6f947eab302434c0b4" + integrity sha512-M8Wzq9VIRYNVKhgcu+UaiKDe/jftmoPbZXGLZtoBKEv4XKdbBBcSapHwYk7Lx2k4Kyz2zTacfDv1SvGGO+PFyQ== + +aproba@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/aproba/-/aproba-2.0.0.tgz#52520b8ae5b569215b354efc0caa3fe1e45a8adc" integrity sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ== +ar-gql@1.2.9: + version "1.2.9" + resolved "https://registry.yarnpkg.com/ar-gql/-/ar-gql-1.2.9.tgz#423583dbebef7e8c838b7634d9d3ffb6d972aa3c" + integrity sha512-LZu4Mt92oFTA+JJ0PdiowJEFS2t6FhKWeYRBo9LTqx9shrIMGRb3iP5SvPbqLREXSSBriJOyyM3tgQ4wDYKr/w== + ar-gql@^0.0.6: version "0.0.6" resolved "https://registry.yarnpkg.com/ar-gql/-/ar-gql-0.0.6.tgz#ebb313195c092f27a997440a2835060feaf8df81" @@ -4414,9 +4619,9 @@ ar-gql@^0.0.6: axios "^0.21.1" arbundles@^0.9.5: - version "0.9.5" - resolved "https://registry.yarnpkg.com/arbundles/-/arbundles-0.9.5.tgz#6e0c0f484e42103ff04387aa0cde38d000dc877b" - integrity sha512-R1TEEKzVyUUW+J5nL/CyDBO4nTBaIaGLlmSuyOzN/rst0GKxuIOyHdPLj+k/LZmIH4YNGZN4CV2Y7UwT3QPnrg== + version "0.9.11" + resolved "https://registry.yarnpkg.com/arbundles/-/arbundles-0.9.11.tgz#4dbccecc20876b38f01ba4b80abe8ee761c3e1e9" + integrity sha512-y42MaiPWzW7MVHd+b/xWvv2Uj0nthAk3SIxRO5r5uw7427KRNYjld293sNyhzK52CHkdaiQIPDdfinmjrxNRYQ== dependencies: "@ethersproject/bytes" "^5.7.0" "@ethersproject/hash" "^5.7.0" @@ -4429,7 +4634,7 @@ arbundles@^0.9.5: base64url "^3.0.1" bs58 "^4.0.1" keccak "^3.0.2" - secp256k1 "^4.0.2" + secp256k1 "^5.0.0" optionalDependencies: "@randlabs/myalgo-connect" "^1.1.2" algosdk "^1.13.1" @@ -4453,16 +4658,32 @@ archiver-utils@^2.1.0: normalize-path "^3.0.0" readable-stream "^2.0.0" +archiver-utils@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/archiver-utils/-/archiver-utils-3.0.4.tgz#a0d201f1cf8fce7af3b5a05aea0a337329e96ec7" + integrity sha512-KVgf4XQVrTjhyWmx6cte4RxonPLR9onExufI1jhvw/MQ4BB6IsZD5gT8Lq+u/+pRkWna/6JoHpiQioaqFP5Rzw== + dependencies: + glob "^7.2.3" + graceful-fs "^4.2.0" + lazystream "^1.0.0" + lodash.defaults "^4.2.0" + lodash.difference "^4.5.0" + lodash.flatten "^4.4.0" + lodash.isplainobject "^4.0.6" + lodash.union "^4.6.0" + normalize-path "^3.0.0" + readable-stream "^3.6.0" + archiver@^5.3.0: - version "5.3.1" - resolved "https://registry.yarnpkg.com/archiver/-/archiver-5.3.1.tgz#21e92811d6f09ecfce649fbefefe8c79e57cbbb6" - integrity sha512-8KyabkmbYrH+9ibcTScQ1xCJC/CGcugdVIwB+53f5sZziXgwUh3iXlAlANMxcZyDEfTHMe6+Z5FofV8nopXP7w== + version "5.3.2" + resolved "https://registry.yarnpkg.com/archiver/-/archiver-5.3.2.tgz#99991d5957e53bd0303a392979276ac4ddccf3b0" + integrity sha512-+25nxyyznAXF7Nef3y0EbBeqmGZgeN/BxHX29Rs39djAfaFalmQ89SE6CWyDCHzGL0yt/ycBtNOmGTW0FyGWNw== dependencies: archiver-utils "^2.1.0" - async "^3.2.3" + async "^3.2.4" buffer-crc32 "^0.2.1" readable-stream "^3.6.0" - readdir-glob "^1.0.0" + readdir-glob "^1.1.2" tar-stream "^2.2.0" zip-stream "^4.1.0" @@ -4478,11 +4699,6 @@ arconnect@^0.4.2: dependencies: arweave "^1.10.13" -are-we-there-yet@^4.0.0: - version "4.0.2" - resolved "https://registry.yarnpkg.com/are-we-there-yet/-/are-we-there-yet-4.0.2.tgz#aed25dd0eae514660d49ac2b2366b175c614785a" - integrity sha512-ncSWAawFhKMJDTdoAeOV+jyW1VCMj5QIAwULIBV0SSR7B/RLPPEQiknKcg/RIIZlUQrxELpsxMiTUoAQ4sIUyg== - argparse@^1.0.7: version "1.0.10" resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911" @@ -4507,7 +4723,7 @@ aria-query@^5.3.0: dependencies: dequal "^2.0.3" -array-buffer-byte-length@^1.0.0, array-buffer-byte-length@^1.0.1: +array-buffer-byte-length@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/array-buffer-byte-length/-/array-buffer-byte-length-1.0.1.tgz#1e5583ec16763540a27ae52eed99ff899223568f" integrity sha512-ahC5W1xgou+KTXix4sAO8Ki12Q+jf4i0+tmk3sC+zgcynshkHxzpXdImBehiUYKKKDwvfFiJl1tZt6ewscS1Mg== @@ -4535,7 +4751,7 @@ array.prototype.flat@^1.2.3: es-abstract "^1.22.1" es-shim-unscopables "^1.0.0" -arraybuffer.prototype.slice@^1.0.2: +arraybuffer.prototype.slice@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.3.tgz#097972f4255e41bc3425e37dc3f6421cf9aefde6" integrity sha512-bMxMKAjg13EBSVscxTaYA4mRc5t1UAXa2kXiGTNfZ079HIWXEkKmkgFrh/nJqamaLSrXO5H4WFFkPEaLJWbs3A== @@ -4563,24 +4779,42 @@ arweave-multihost@^0.1.0: axios "^0.21.1" arweave-stream-tx@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/arweave-stream-tx/-/arweave-stream-tx-1.1.0.tgz#288fbaee30f6aa5cadb0b7cd2efd5b34147e867f" - integrity sha512-1BEYGFSP+FP1ACfclTjSjSTWx5PV/7a+0TwGZu+MlkmnnZTQ3hCOr5Md2Pi/T6dc69Fj+BRezSckiIhKFwTc3g== + version "1.2.2" + resolved "https://registry.yarnpkg.com/arweave-stream-tx/-/arweave-stream-tx-1.2.2.tgz#2d5c66554301baacd02586a152fbb198b422112f" + integrity sha512-bNt9rj0hbAEzoUZEF2s6WJbIz8nasZlZpxIw03Xm8fzb9gRiiZlZGW3lxQLjfc9Z0VRUWDzwtqoYeEoB/JDToQ== dependencies: exponential-backoff "^3.1.0" - stream-chunker "^1.2.8" -arweave@1.13.7, arweave@=1.11.8, arweave@^1.10.13, arweave@^1.10.15, arweave@^1.10.16, arweave@^1.13.0, arweave@^1.13.7: - version "1.13.7" - resolved "https://registry.yarnpkg.com/arweave/-/arweave-1.13.7.tgz#cda8534c833baec372a7052c61f53b4e39a886d7" - integrity sha512-Hv+x2bSI6UyBHpuVbUDMMpMje1ETfpJWj52kKfz44O0IqDRi/LukOkkDUptup1p6OT6KP1/DdpnUnsNHoskFeA== +arweave@1.14.4: + version "1.14.4" + resolved "https://registry.yarnpkg.com/arweave/-/arweave-1.14.4.tgz#5ba22136aa0e7fd9495258a3931fb770c9d6bf21" + integrity sha512-tmqU9fug8XAmFETYwgUhLaD3WKav5DaM4p1vgJpEj/Px2ORPPMikwnSySlFymmL2qgRh2ZBcZsg11+RXPPGLsA== + dependencies: + arconnect "^0.4.2" + asn1.js "^5.4.1" + base64-js "^1.5.1" + bignumber.js "^9.0.2" + +arweave@=1.11.8, arweave@^1.10.13, arweave@^1.10.15, arweave@^1.10.16, arweave@^1.13.0, arweave@^1.13.7: + version "1.15.0" + resolved "https://registry.yarnpkg.com/arweave/-/arweave-1.15.0.tgz#56203c13badf28a0e420ca700d966e89a53c711b" + integrity sha512-sYfq2yJwkJLthRADsfHygNP+L7fTCyprTjOLYnpP8zaqwywddoNO3UpTk6XGjEiyyU3WfxoFLRLpzx+llZx1WA== dependencies: arconnect "^0.4.2" asn1.js "^5.4.1" base64-js "^1.5.1" bignumber.js "^9.0.2" -asn1.js@^5.2.0, asn1.js@^5.4.1: +asn1.js@^4.10.1: + version "4.10.1" + resolved "https://registry.yarnpkg.com/asn1.js/-/asn1.js-4.10.1.tgz#b9c2bf5805f1e64aadeed6df3a2bfafb5a73f5a0" + integrity sha512-p32cOF5q0Zqs9uBiONKYLm6BClCoBCM5O9JfeUSlnQLBTxYdTK+pW+nXflm8UkKd2UYlEbYz5qEi0JuZR9ckSw== + dependencies: + bn.js "^4.0.0" + inherits "^2.0.1" + minimalistic-assert "^1.0.0" + +asn1.js@^5.4.1: version "5.4.1" resolved "https://registry.yarnpkg.com/asn1.js/-/asn1.js-5.4.1.tgz#11a980b84ebb91781ce35b0fdc2ee294e3783f07" integrity sha512-+I//4cYPccV8LdmBLiX8CYvf9Sp3vQsrqu2QNXRcrbiWvcx/UdlFiqUJJzxRQxgsZmvhXhn4cSKeSmoFjVdupA== @@ -4591,64 +4825,46 @@ asn1.js@^5.2.0, asn1.js@^5.4.1: safer-buffer "^2.1.0" assert@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/assert/-/assert-2.0.0.tgz#95fc1c616d48713510680f2eaf2d10dd22e02d32" - integrity sha512-se5Cd+js9dXJnu6Ag2JFc00t+HmHOen+8Q+L7O9zI0PqQXr20uk2J0XQqMxZEeo5U50o8Nvmmx7dZrl+Ufr35A== + version "2.1.0" + resolved "https://registry.yarnpkg.com/assert/-/assert-2.1.0.tgz#6d92a238d05dc02e7427c881fb8be81c8448b2dd" + integrity sha512-eLHpSK/Y4nhMJ07gDaAzoX/XAKS8PSaojml3M0DM4JpV1LAi5JOJ/p6H/XWrl8L+DzVEvVCW1z3vWAaB9oTsQw== dependencies: - es6-object-assign "^1.1.0" - is-nan "^1.2.1" - object-is "^1.0.1" - util "^0.12.0" + call-bind "^1.0.2" + is-nan "^1.3.2" + object-is "^1.1.5" + object.assign "^4.1.4" + util "^0.12.5" async-mutex@^0.4.0: - version "0.4.0" - resolved "https://registry.yarnpkg.com/async-mutex/-/async-mutex-0.4.0.tgz#ae8048cd4d04ace94347507504b3cf15e631c25f" - integrity sha512-eJFZ1YhRR8UN8eBLoNzcDPcy/jqjsg6I1AP+KvWQX80BqOSW1oJPJXDylPUEeMr2ZQvHgnQ//Lp6f3RQ1zI7HA== + version "0.4.1" + resolved "https://registry.yarnpkg.com/async-mutex/-/async-mutex-0.4.1.tgz#bccf55b96f2baf8df90ed798cb5544a1f6ee4c2c" + integrity sha512-WfoBo4E/TbCX1G95XTjbWTE3X2XLG0m1Xbv2cwOtuPdyH9CZvnaA5nCt1ucjaKEgW2A5IF71hxrRhr83Je5xjA== dependencies: tslib "^2.4.0" -async@^3.2.3: - version "3.2.4" - resolved "https://registry.yarnpkg.com/async/-/async-3.2.4.tgz#2d22e00f8cddeb5fde5dd33522b56d1cf569a81c" - integrity sha512-iAB+JbDEGXhyIUavoDl9WP/Jj106Kz9DEn1DPgYw5ruDn0e3Wgi3sKFm55sASdGBNOQB8F59d9qQ7deqrHA8wQ== +async@^3.2.4: + version "3.2.5" + resolved "https://registry.yarnpkg.com/async/-/async-3.2.5.tgz#ebd52a8fdaf7a2289a24df399f8d8485c8a46b66" + integrity sha512-baNZyqaaLhyLVKm/DlvdW051MSgO6b8eVfIezl9E5PqWxFgzLm/wQntEW4zOytVburDEr0JlALEpdOFwvErLsg== asynckit@^0.4.0: version "0.4.0" resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" integrity sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q== -available-typed-arrays@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz#92f95616501069d07d10edb2fc37d3e1c65123b7" - integrity sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw== - -available-typed-arrays@^1.0.6: - version "1.0.6" - resolved "https://registry.yarnpkg.com/available-typed-arrays/-/available-typed-arrays-1.0.6.tgz#ac812d8ce5a6b976d738e1c45f08d0b00bc7d725" - integrity sha512-j1QzY8iPNPG4o4xmO3ptzpRxTciqD3MgEHtifP/YnJpIo58Xu+ne4BejlbkuaLfXn/nz6HFiw29bLpj2PNMdGg== - -axios@^0.21.1: - version "0.21.4" - resolved "https://registry.yarnpkg.com/axios/-/axios-0.21.4.tgz#c67b90dc0568e5c1cf2b0b858c43ba28e2eda575" - integrity sha512-ut5vewkiu8jjGBdqpM44XxjuCjq9LAKeHVmoVfHVzy8eHgxxq8SbAVQNovDA8mVi05kP0Ea/n/UzcSHcTJQfNg== - dependencies: - follow-redirects "^1.14.0" - -axios@^1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/axios/-/axios-1.1.3.tgz#8274250dada2edf53814ed7db644b9c2866c1e35" - integrity sha512-00tXVRwKx/FZr/IDVFt4C+f9FYairX517WoGCL6dpOntqLkZofjhu43F/Xl44UOpqa+9sLFDrG/XAnFsUYgkDA== +available-typed-arrays@^1.0.7: + version "1.0.7" + resolved "https://registry.yarnpkg.com/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz#a5cc375d6a03c2efc87a553f3e0b1522def14846" + integrity sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ== dependencies: - follow-redirects "^1.15.0" - form-data "^4.0.0" - proxy-from-env "^1.1.0" + possible-typed-array-names "^1.0.0" -axios@^1.6.7: - version "1.6.7" - resolved "https://registry.yarnpkg.com/axios/-/axios-1.6.7.tgz#7b48c2e27c96f9c68a2f8f31e2ab19f59b06b0a7" - integrity sha512-/hDJGff6/c7u0hDkvkGxR/oy6CbCs8ziCsC7SqmhjfozqiJGc8Z11wrv9z9lYfY4K8l+H9TpjcMDX0xOZmx+RA== +axios@>=0.28.0, axios@^0.21.1, axios@^1.1.3, axios@^1.6.7: + version "1.6.8" + resolved "https://registry.yarnpkg.com/axios/-/axios-1.6.8.tgz#66d294951f5d988a00e87a0ffb955316a619ea66" + integrity sha512-v/ZHtJDU39mDpyBoFVkETcd/uNdxrWRrg3bKpOKzXFA6Bvqopts6ALSMU3y6ijYxbw2B+wPrIv46egTzJXCLGQ== dependencies: - follow-redirects "^1.15.4" + follow-redirects "^1.15.6" form-data "^4.0.0" proxy-from-env "^1.1.0" @@ -4660,31 +4876,59 @@ axobject-query@^3.2.1: dequal "^2.0.3" b4a@^1.6.4: - version "1.6.4" - resolved "https://registry.yarnpkg.com/b4a/-/b4a-1.6.4.tgz#ef1c1422cae5ce6535ec191baeed7567443f36c9" - integrity sha512-fpWrvyVHEKyeEvbKZTVOeZF3VSKKWtJxFIxX/jaVPf+cLbGUSitjb49pHLqPV2BUNNZ0LcoeEGfE/YCpyDYHIw== + version "1.6.6" + resolved "https://registry.yarnpkg.com/b4a/-/b4a-1.6.6.tgz#a4cc349a3851987c3c4ac2d7785c18744f6da9ba" + integrity sha512-5Tk1HLk6b6ctmjIkAcU/Ujv/1WqiDl0F0JdRCR80VsOcUlHcu7pWeWRlOqQLHfDEsVx9YH/aif5AG4ehoCtTmg== "babel-plugin-styled-components@>= 1.12.0": - version "2.0.7" - resolved "https://registry.yarnpkg.com/babel-plugin-styled-components/-/babel-plugin-styled-components-2.0.7.tgz#c81ef34b713f9da2b7d3f5550df0d1e19e798086" - integrity sha512-i7YhvPgVqRKfoQ66toiZ06jPNA3p6ierpfUuEWxNF+fV27Uv5gxBkf8KZLHUCc1nFA9j6+80pYoIpqCeyW3/bA== + version "2.1.4" + resolved "https://registry.yarnpkg.com/babel-plugin-styled-components/-/babel-plugin-styled-components-2.1.4.tgz#9a1f37c7f32ef927b4b008b529feb4a2c82b1092" + integrity sha512-Xgp9g+A/cG47sUyRwwYxGM4bR/jDRg5N6it/8+HxCnbT5XNKSKDT9xm4oag/osgqjC2It/vH0yXsomOG6k558g== dependencies: - "@babel/helper-annotate-as-pure" "^7.16.0" - "@babel/helper-module-imports" "^7.16.0" - babel-plugin-syntax-jsx "^6.18.0" - lodash "^4.17.11" - picomatch "^2.3.0" - -babel-plugin-syntax-jsx@^6.18.0: - version "6.18.0" - resolved "https://registry.yarnpkg.com/babel-plugin-syntax-jsx/-/babel-plugin-syntax-jsx-6.18.0.tgz#0af32a9a6e13ca7a3fd5069e62d7b0f58d0d8946" - integrity sha512-qrPaCSo9c8RHNRHIotaufGbuOBN8rtdC4QrrFFc43vyWCCz7Kl7GL1PGaXtMGQZUXrkCjNEgxDfmAuAabr/rlw== + "@babel/helper-annotate-as-pure" "^7.22.5" + "@babel/helper-module-imports" "^7.22.5" + "@babel/plugin-syntax-jsx" "^7.22.5" + lodash "^4.17.21" + picomatch "^2.3.1" balanced-match@^1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== +bare-events@^2.0.0, bare-events@^2.2.0: + version "2.2.2" + resolved "https://registry.yarnpkg.com/bare-events/-/bare-events-2.2.2.tgz#a98a41841f98b2efe7ecc5c5468814469b018078" + integrity sha512-h7z00dWdG0PYOQEvChhOSWvOfkIKsdZGkWr083FgN/HyoQuebSew/cgirYqh9SCuy/hRvxc5Vy6Fw8xAmYHLkQ== + +bare-fs@^2.1.1: + version "2.3.0" + resolved "https://registry.yarnpkg.com/bare-fs/-/bare-fs-2.3.0.tgz#0872f8e33cf291c9fd527d827154f156a298d402" + integrity sha512-TNFqa1B4N99pds2a5NYHR15o0ZpdNKbAeKTE/+G6ED/UeOavv8RY3dr/Fu99HW3zU3pXpo2kDNO8Sjsm2esfOw== + dependencies: + bare-events "^2.0.0" + bare-path "^2.0.0" + bare-stream "^1.0.0" + +bare-os@^2.1.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/bare-os/-/bare-os-2.3.0.tgz#718e680b139effff0624a7421c098e7a2c2d63da" + integrity sha512-oPb8oMM1xZbhRQBngTgpcQ5gXw6kjOaRsSWsIeNyRxGed2w/ARyP7ScBYpWR1qfX2E5rS3gBw6OWcSQo+s+kUg== + +bare-path@^2.0.0, bare-path@^2.1.0: + version "2.1.2" + resolved "https://registry.yarnpkg.com/bare-path/-/bare-path-2.1.2.tgz#7a0940d34ebe65f7e179fa61ed8d49d9dc151d67" + integrity sha512-o7KSt4prEphWUHa3QUwCxUI00R86VdjiuxmJK0iNVDHYPGo+HsDaVCnqCmPbf/MiW1ok8F4p3m8RTHlWk8K2ig== + dependencies: + bare-os "^2.1.0" + +bare-stream@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/bare-stream/-/bare-stream-1.0.0.tgz#25c3e56198d922187320c3f8c52d75c4051178b4" + integrity sha512-KhNUoDL40iP4gFaLSsoGE479t0jHijfYdIcxRn/XtezA2BaUD0NRf/JGRpsMq6dMNM+SrCrB0YSSo/5wBY4rOQ== + dependencies: + streamx "^2.16.1" + base-x@^3.0.2, base-x@^3.0.8: version "3.0.9" resolved "https://registry.yarnpkg.com/base-x/-/base-x-3.0.9.tgz#6349aaabb58526332de9f60995e548a53fe21320" @@ -4712,6 +4956,11 @@ before-after-hook@^2.2.0: resolved "https://registry.yarnpkg.com/before-after-hook/-/before-after-hook-2.2.3.tgz#c51e809c81a4e354084422b9b26bad88249c517c" integrity sha512-NzUnlZexiaH/46WDhANlyR2bXRopNg4F/zuSA3OpZnllCUgRaOF2znDioDWrmbNVsuZk6l9pMquQB38cfBZwkQ== +before-after-hook@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/before-after-hook/-/before-after-hook-3.0.2.tgz#d5665a5fa8b62294a5aa0a499f933f4a1016195d" + integrity sha512-Nik3Sc0ncrMK4UUdXQmAnRtzmNQTAAXmXIopizwZ1W1t8QmfJj+zL4OA2I7XPTPW5z5TDqv4hRo/JzouDJnX3A== + better-path-resolve@1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/better-path-resolve/-/better-path-resolve-1.0.0.tgz#13a35a1104cdd48a7b74bf8758f96a1ee613f99d" @@ -4719,11 +4968,16 @@ better-path-resolve@1.0.0: dependencies: is-windows "^1.0.0" -bignumber.js@9.1.1, bignumber.js@^9.0.0, bignumber.js@^9.0.1, bignumber.js@^9.0.2: +bignumber.js@9.1.1: version "9.1.1" resolved "https://registry.yarnpkg.com/bignumber.js/-/bignumber.js-9.1.1.tgz#c4df7dc496bd849d4c9464344c1aa74228b4dac6" integrity sha512-pHm4LsMJ6lzgNGVfZHjMoO8sdoRhOzOH4MLmY65Jg70bpxCKu5iOHNJyfF6OyvYw7t8Fpf35RuzUyqnQsj8Vig== +bignumber.js@^9.0.0, bignumber.js@^9.0.1, bignumber.js@^9.0.2: + version "9.1.2" + resolved "https://registry.yarnpkg.com/bignumber.js/-/bignumber.js-9.1.2.tgz#b7c4242259c008903b13707983b5f4bbd31eda0c" + integrity sha512-2/mKyZH9K85bzOEfhXDBFZTGd1CTs+5IHpeFQo9luiBG7hghdC851Pj2WAhb6E3R6b9tZj/XKhbg4fum+Kepug== + bin-links@^4.0.1: version "4.0.3" resolved "https://registry.yarnpkg.com/bin-links/-/bin-links-4.0.3.tgz#9e4a3c5900830aee3d7f52178b65e01dcdde64a5" @@ -4734,10 +4988,10 @@ bin-links@^4.0.1: read-cmd-shim "^4.0.0" write-file-atomic "^5.0.0" -binary-extensions@^2.0.0, binary-extensions@^2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.2.0.tgz#75f502eeaf9ffde42fc98829645be4ea76bd9e2d" - integrity sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA== +binary-extensions@^2.0.0, binary-extensions@^2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.3.0.tgz#f6e14a97858d327252200242d4ccfe522c445522" + integrity sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw== bip39-web-crypto@^4.0.1: version "4.0.1" @@ -4747,14 +5001,11 @@ bip39-web-crypto@^4.0.1: "@types/node" "11.11.6" bip39@^3.0.2: - version "3.0.4" - resolved "https://registry.yarnpkg.com/bip39/-/bip39-3.0.4.tgz#5b11fed966840b5e1b8539f0f54ab6392969b2a0" - integrity sha512-YZKQlb752TrUWqHWj7XAwCSjYEgGAk+/Aas3V7NyjQeZYsztO8JnQUaCWhcnL4T+jL8nvB8typ2jRPzTlgugNw== + version "3.1.0" + resolved "https://registry.yarnpkg.com/bip39/-/bip39-3.1.0.tgz#c55a418deaf48826a6ceb34ac55b3ee1577e18a3" + integrity sha512-c9kiwdk45Do5GL0vJMe7tS95VjCii65mYAH7DfWl3uW8AVzXKQVUm64i3hzVybBDMp9r7j9iNxR85+ul8MdN/A== dependencies: - "@types/node" "11.11.6" - create-hash "^1.1.0" - pbkdf2 "^3.0.9" - randombytes "^2.0.1" + "@noble/hashes" "^1.2.0" bl@^4.0.3, bl@^4.1.0: version "4.1.0" @@ -4775,7 +5026,7 @@ bn.js@^4.0.0, bn.js@^4.1.0, bn.js@^4.11.6, bn.js@^4.11.9: resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.12.0.tgz#775b3f278efbb9718eec7361f483fb36fbbfea88" integrity sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA== -bn.js@^5.0.0, bn.js@^5.1.1, bn.js@^5.2.1: +bn.js@^5.0.0, bn.js@^5.2.1: version "5.2.1" resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-5.2.1.tgz#0bc527a6a0d18d0aa8d5b0538ce4a77dccfa7b70" integrity sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ== @@ -4834,7 +5085,7 @@ browser-level@^1.0.1: module-error "^1.0.2" run-parallel-limit "^1.1.0" -browserify-aes@^1.0.0, browserify-aes@^1.0.4: +browserify-aes@^1.0.4, browserify-aes@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/browserify-aes/-/browserify-aes-1.2.0.tgz#326734642f403dabc3003209853bb70ad428ef48" integrity sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA== @@ -4865,7 +5116,7 @@ browserify-des@^1.0.0: inherits "^2.0.1" safe-buffer "^5.1.2" -browserify-rsa@^4.0.0, browserify-rsa@^4.0.1: +browserify-rsa@^4.0.0, browserify-rsa@^4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/browserify-rsa/-/browserify-rsa-4.1.0.tgz#b2fd06b5b75ae297f7ce2dc651f918f5be158c8d" integrity sha512-AdEER0Hkspgno2aR97SAf6vi0y0k8NuOpGnVH3O99rcA5Q6sh8QxcngtHuJ6uXwnfAXNM4Gn1Gb7/MV1+Ymbog== @@ -4874,19 +5125,20 @@ browserify-rsa@^4.0.0, browserify-rsa@^4.0.1: randombytes "^2.0.1" browserify-sign@^4.0.0: - version "4.2.1" - resolved "https://registry.yarnpkg.com/browserify-sign/-/browserify-sign-4.2.1.tgz#eaf4add46dd54be3bb3b36c0cf15abbeba7956c3" - integrity sha512-/vrA5fguVAKKAVTNJjgSm1tRQDHUU6DbwO9IROu/0WAzC8PKhucDSh18J0RMvVeHAn5puMd+QHC2erPRNf8lmg== + version "4.2.3" + resolved "https://registry.yarnpkg.com/browserify-sign/-/browserify-sign-4.2.3.tgz#7afe4c01ec7ee59a89a558a4b75bd85ae62d4208" + integrity sha512-JWCZW6SKhfhjJxO8Tyiiy+XYB7cqd2S5/+WeYHsKdNKFlCBhKbblba1A/HN/90YwtxKc8tCErjffZl++UNmGiw== dependencies: - bn.js "^5.1.1" - browserify-rsa "^4.0.1" + bn.js "^5.2.1" + browserify-rsa "^4.1.0" create-hash "^1.2.0" create-hmac "^1.1.7" - elliptic "^6.5.3" + elliptic "^6.5.5" + hash-base "~3.0" inherits "^2.0.4" - parse-asn1 "^5.1.5" - readable-stream "^3.6.0" - safe-buffer "^5.2.0" + parse-asn1 "^5.1.7" + readable-stream "^2.3.8" + safe-buffer "^5.2.1" browserify-zlib@^0.2.0: version "0.2.0" @@ -4895,15 +5147,25 @@ browserify-zlib@^0.2.0: dependencies: pako "~1.0.5" -browserslist@4.21.9, browserslist@^4.21.9, browserslist@^4.6.6: - version "4.21.9" - resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.21.9.tgz#e11bdd3c313d7e2a9e87e8b4b0c7872b13897635" - integrity sha512-M0MFoZzbUrRU4KNfCrDLnvyE7gub+peetoTid3TBIqtunaDJyXlwhakT+/VkvSXcfIzFfK/nkCs4nmyTmxdNSg== +browserslist@4.22.1: + version "4.22.1" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.22.1.tgz#ba91958d1a59b87dab6fed8dfbcb3da5e2e9c619" + integrity sha512-FEVc202+2iuClEhZhrWy6ZiAcRLvNMyYcxZ8raemul1DYVOVdFsbqckWLdsixQZCpJlwe77Z3UTalE7jsjnKfQ== + dependencies: + caniuse-lite "^1.0.30001541" + electron-to-chromium "^1.4.535" + node-releases "^2.0.13" + update-browserslist-db "^1.0.13" + +browserslist@^4.22.2, browserslist@^4.6.6: + version "4.23.0" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.23.0.tgz#8f3acc2bbe73af7213399430890f86c63a5674ab" + integrity sha512-QW8HiM1shhT2GuzkvklfjcKDiWFXHOeFCIA/huJPwHsslwcydgk7X+z2zXpEijP98UCY7HbubZt5J2Zgvf0CaQ== dependencies: - caniuse-lite "^1.0.30001503" - electron-to-chromium "^1.4.431" - node-releases "^2.0.12" - update-browserslist-db "^1.0.11" + caniuse-lite "^1.0.30001587" + electron-to-chromium "^1.4.668" + node-releases "^2.0.14" + update-browserslist-db "^1.0.13" bs58@^4.0.0, bs58@^4.0.1: version "4.0.1" @@ -4967,26 +5229,19 @@ builtin-status-codes@^3.0.0: integrity sha512-HpGFw18DgFWlncDfjTa2rcQ4W88O1mC8e8yZ2AvQY5KDaktSTwo+KRf6nHK6FRI5FyRyb/5T6+TSxfP7QyGsmQ== builtins@^5.0.0: - version "5.0.1" - resolved "https://registry.yarnpkg.com/builtins/-/builtins-5.0.1.tgz#87f6db9ab0458be728564fa81d876d8d74552fa9" - integrity sha512-qwVpFEHNfhYJIzNRBvd2C1kyo6jz3ZSMPyyuR47OPdiKWlbYnZNyDWuyR175qDnAJLiCo5fBBqPb3RiXgWlkOQ== + version "5.1.0" + resolved "https://registry.yarnpkg.com/builtins/-/builtins-5.1.0.tgz#6d85eeb360c4ebc166c3fdef922a15aa7316a5e8" + integrity sha512-SW9lzGTLvWTP1AY8xeAMZimqDrIaSdLQUcVr9DMef51niJ022Ri87SwRRKYm4A6iHfkPaiVUu/Duw2Wc4J7kKg== dependencies: semver "^7.0.0" bundle-require@^4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/bundle-require/-/bundle-require-4.0.1.tgz#2cc1ad76428043d15e0e7f30990ee3d5404aa2e3" - integrity sha512-9NQkRHlNdNpDBGmLpngF3EFDcwodhMUuLz9PaWYciVcQF9SE4LFjM2DB/xV1Li5JiuDMv7ZUWuC3rGbqR0MAXQ== + version "4.1.0" + resolved "https://registry.yarnpkg.com/bundle-require/-/bundle-require-4.1.0.tgz#3d5fcd19d5160d4cbac5e95ed5a394d1ecd40ce6" + integrity sha512-FeArRFM+ziGkRViKRnSTbHZc35dgmR9yNog05Kn0+ItI59pOAISGvnnIwW1WgFZQW59IxD9QpJnUPkdIPfZuXg== dependencies: load-tsconfig "^0.2.3" -busboy@^1.6.0: - version "1.6.0" - resolved "https://registry.yarnpkg.com/busboy/-/busboy-1.6.0.tgz#966ea36a9502e43cdb9146962523b92f531f6893" - integrity sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA== - dependencies: - streamsearch "^1.1.0" - cac@^6.7.12: version "6.7.14" resolved "https://registry.yarnpkg.com/cac/-/cac-6.7.14.tgz#804e1e6f506ee363cb0e3ccbb09cad5dd9870959" @@ -5016,49 +5271,34 @@ cacheable-lookup@^7.0.0: integrity sha512-+qJyx4xiKra8mZrcwhjMRMUhD5NR1R8esPkzIYxX96JiecFoxAXFuz/GpR3+ev4PE1WamHip78wV0vcmPQtp8w== cacheable-request@^10.2.8: - version "10.2.9" - resolved "https://registry.yarnpkg.com/cacheable-request/-/cacheable-request-10.2.9.tgz#6375833d2b99921d8870df9fdc26cb703c56f356" - integrity sha512-CaAMr53AS1Tb9evO1BIWFnZjSr8A4pbXofpsNVWPMDZZj3ZQKHwsQG9BrTqQ4x5ZYJXz1T2b8LLtTZODxSpzbg== + version "10.2.14" + resolved "https://registry.yarnpkg.com/cacheable-request/-/cacheable-request-10.2.14.tgz#eb915b665fda41b79652782df3f553449c406b9d" + integrity sha512-zkDT5WAF4hSSoUgyfg5tFIxz8XQK+25W/TLVojJTMKBaxevLBBtLxgqguAuVQB8PVW79FVjHcU+GJ9tVbDZ9mQ== dependencies: - "@types/http-cache-semantics" "^4.0.1" + "@types/http-cache-semantics" "^4.0.2" get-stream "^6.0.1" http-cache-semantics "^4.1.1" - keyv "^4.5.2" + keyv "^4.5.3" mimic-response "^4.0.0" normalize-url "^8.0.0" responselike "^3.0.0" -call-bind@^1.0.0, call-bind@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.2.tgz#b1d4e89e688119c3c9a903ad30abb2f6a919be3c" - integrity sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA== - dependencies: - function-bind "^1.1.1" - get-intrinsic "^1.0.2" - -call-bind@^1.0.5, call-bind@^1.0.6: - version "1.0.6" - resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.6.tgz#6c46675fc7a5e9de82d75a233d586c8b7ac0d931" - integrity sha512-Mj50FLHtlsoVfRfnHaZvyrooHcrlceNZdL/QBvJJVd9Ta55qCQK0gs4ss2oZDeV9zFCs6ewzYgVE5yfVmfFpVg== +call-bind@^1.0.0, call-bind@^1.0.2, call-bind@^1.0.5, call-bind@^1.0.6, call-bind@^1.0.7: + version "1.0.7" + resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.7.tgz#06016599c40c56498c18769d2730be242b6fa3b9" + integrity sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w== dependencies: + es-define-property "^1.0.0" es-errors "^1.3.0" function-bind "^1.1.2" - get-intrinsic "^1.2.3" - set-function-length "^1.2.0" + get-intrinsic "^1.2.4" + set-function-length "^1.2.1" callsites@^3.0.0: version "3.1.0" resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73" integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ== -camel-case@^4.1.2: - version "4.1.2" - resolved "https://registry.yarnpkg.com/camel-case/-/camel-case-4.1.2.tgz#9728072a954f805228225a6deea6b38461e1bd5a" - integrity sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw== - dependencies: - pascal-case "^3.1.2" - tslib "^2.0.3" - camelcase-keys@^6.2.2: version "6.2.2" resolved "https://registry.yarnpkg.com/camelcase-keys/-/camelcase-keys-6.2.2.tgz#5e755d6ba51aa223ec7d3d52f25778210f9dc3c0" @@ -5083,27 +5323,10 @@ camelize@^1.0.0: resolved "https://registry.yarnpkg.com/camelize/-/camelize-1.0.1.tgz#89b7e16884056331a35d6b5ad064332c91daa6c3" integrity sha512-dU+Tx2fsypxTgtLoE36npi3UqcjSSMNYfkqgmoEhtZrraP5VWq0K7FkWVTYa8eMPtnU/G2txVsfdCJTn9uzpuQ== -caniuse-lite@^1.0.30001503: - version "1.0.30001591" - resolved "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001591.tgz" - integrity sha512-PCzRMei/vXjJyL5mJtzNiUCKP59dm8Apqc3PH8gJkMnMXZGox93RbE76jHsmLwmIo6/3nsYIpJtx0O7u5PqFuQ== - -capital-case@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/capital-case/-/capital-case-1.0.4.tgz#9d130292353c9249f6b00fa5852bee38a717e669" - integrity sha512-ds37W8CytHgwnhGGTi88pcPyR15qoNkOpYwmMMfnWqqWgESapLqvDx6huFjQ5vqWSn2Z06173XNA7LtMOeUh1A== - dependencies: - no-case "^3.0.4" - tslib "^2.0.3" - upper-case-first "^2.0.2" - -cardinal@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/cardinal/-/cardinal-2.1.1.tgz#7cc1055d822d212954d07b085dea251cc7bc5505" - integrity sha512-JSr5eOgoEymtYHBjNWyjrMqet9Am2miJhlfKNdqLp6zoeAh0KN5dRAcxlecj5mAJrmQomgiOBj35xHLrFjqBpw== - dependencies: - ansicolors "~0.3.2" - redeyed "~2.1.0" +caniuse-lite@^1.0.30001541, caniuse-lite@^1.0.30001587: + version "1.0.30001615" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001615.tgz#7c2c8772db681b6dee74d81d6550db68f2d28842" + integrity sha512-1IpazM5G3r38meiae0bHRnPhz+CBQ3ZLqbQMtrg+AsTPKAXgW38JNsXkyZ+v8waCsDmPq87lmfun5Q2AGysNEQ== catering@^2.1.0, catering@^2.1.1: version "2.1.1" @@ -5120,7 +5343,7 @@ chalk@5.3.0, chalk@^5.3.0: resolved "https://registry.yarnpkg.com/chalk/-/chalk-5.3.0.tgz#67c20a7ebef70e7f3970a01f90fa210cb6860385" integrity sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w== -chalk@^2.0.0, chalk@^2.1.0, chalk@^2.3.2, chalk@^2.4.2: +chalk@^2.1.0, chalk@^2.3.2, chalk@^2.4.2: version "2.4.2" resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== @@ -5129,7 +5352,7 @@ chalk@^2.0.0, chalk@^2.1.0, chalk@^2.3.2, chalk@^2.4.2: escape-string-regexp "^1.0.5" supports-color "^5.3.0" -chalk@^4.1.0, chalk@^4.1.2: +chalk@^4.0.0, chalk@^4.1.0, chalk@^4.1.2: version "4.1.2" resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01" integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== @@ -5137,23 +5360,10 @@ chalk@^4.1.0, chalk@^4.1.2: ansi-styles "^4.1.0" supports-color "^7.1.0" -change-case@4.1.2: - version "4.1.2" - resolved "https://registry.yarnpkg.com/change-case/-/change-case-4.1.2.tgz#fedfc5f136045e2398c0410ee441f95704641e12" - integrity sha512-bSxY2ws9OtviILG1EiY5K7NNxkqg/JnRnFxLtKQ96JaviiIxi7djMrSd0ECT9AC+lttClmYwKw53BWpOMblo7A== - dependencies: - camel-case "^4.1.2" - capital-case "^1.0.4" - constant-case "^3.0.4" - dot-case "^3.0.4" - header-case "^2.0.4" - no-case "^3.0.4" - param-case "^3.0.4" - pascal-case "^3.1.2" - path-case "^3.0.4" - sentence-case "^3.0.4" - snake-case "^3.0.4" - tslib "^2.0.3" +change-case@5.1.2: + version "5.1.2" + resolved "https://registry.yarnpkg.com/change-case/-/change-case-5.1.2.tgz#1a1feb43f88b7595c6e8db44b5a27b24fa8a9ebd" + integrity sha512-CAtbGEDulyjzs05RXy3uKcwqeztz/dMEuAc1Xu9NQBsbrhuGMneL0u9Dj5SoutLKBFYun8txxYIwhjtLNfUmCA== char-regex@^1.0.2: version "1.0.2" @@ -5166,14 +5376,14 @@ chardet@^0.7.0: integrity sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA== check-password-strength@^2.0.7: - version "2.0.7" - resolved "https://registry.yarnpkg.com/check-password-strength/-/check-password-strength-2.0.7.tgz#d8fd6c1a274267c7ddd9cd15c71a3cfb6ad35baa" - integrity sha512-VyklBkB6dOKnCIh63zdVr7QKVMN9/npwUqNAXxWrz8HabVZH/n/d+lyNm1O/vbXFJlT/Hytb5ouYKYGkoeZirQ== + version "2.0.10" + resolved "https://registry.yarnpkg.com/check-password-strength/-/check-password-strength-2.0.10.tgz#d716d767944f43aa83665cdf96a2c28e18b2a7b6" + integrity sha512-HRM5ICPmtnNtLnTv2QrfVkq1IxI9z3bzYpDJ1k5ixwD9HtJGHuv265R6JmHOV6r8wLhQMlULnIUVpkrC2yaiCw== "chokidar@>=3.0.0 <4.0.0", chokidar@^3.5.1: - version "3.5.3" - resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.3.tgz#1cf37c8707b932bd1af1ae22c0432e2acd1903bd" - integrity sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw== + version "3.6.0" + resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.6.0.tgz#197c6cc669ef2a8dc5e7b4d97ee4e092c3eb0d5b" + integrity sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw== dependencies: anymatch "~3.1.2" braces "~3.0.2" @@ -5210,10 +5420,10 @@ ci-info@^4.0.0: resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-4.0.0.tgz#65466f8b280fc019b9f50a5388115d17a63a44f2" integrity sha512-TdHqgGf9odd8SXNuxtUBVx8Nv+qZOejE6qyqiy5NtbYYQOeFa6zmHkxlPzmaLxWWHsU6nJmB7AETdVPi+2NBUg== -cidr-regex@4.0.3: - version "4.0.3" - resolved "https://registry.yarnpkg.com/cidr-regex/-/cidr-regex-4.0.3.tgz#07b52c9762d1ff546a50740e92fc2b5b13a6d871" - integrity sha512-HOwDIy/rhKeMf6uOzxtv7FAbrz8zPjmVKfSpM+U7/bNBXC5rtOyr758jxcptiSx6ZZn5LOhPJT5WWxPAGDV8dw== +cidr-regex@^4.0.4: + version "4.0.5" + resolved "https://registry.yarnpkg.com/cidr-regex/-/cidr-regex-4.0.5.tgz#c90181992feb60ce28b8cc7590970ab94ab1060a" + integrity sha512-gljhROSwEnEvC+2lKqfkv1dU2v46h8Cwob19LlfGeGRMDLuwFD5+3D6+/vaa9/QrVLDASiSQ2OYQwzzjQ5I57A== dependencies: ip-regex "^5.0.0" @@ -5226,14 +5436,14 @@ cipher-base@^1.0.0, cipher-base@^1.0.1, cipher-base@^1.0.3: safe-buffer "^5.0.1" classic-level@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/classic-level/-/classic-level-1.2.0.tgz#2d52bdec8e7a27f534e67fdeb890abef3e643c27" - integrity sha512-qw5B31ANxSluWz9xBzklRWTUAJ1SXIdaVKTVS7HcTGKOAmExx65Wo5BUICW+YGORe2FOUaDghoI9ZDxj82QcFg== + version "1.4.1" + resolved "https://registry.yarnpkg.com/classic-level/-/classic-level-1.4.1.tgz#169ecf9f9c6200ad42a98c8576af449c1badbaee" + integrity sha512-qGx/KJl3bvtOHrGau2WklEZuXhS3zme+jf+fsu6Ej7W7IP/C49v7KNlWIsT1jZu0YnfzSIYDGcEWpCa1wKGWXQ== dependencies: abstract-level "^1.0.2" catering "^2.1.0" module-error "^1.0.1" - napi-macros "~2.0.0" + napi-macros "^2.2.2" node-gyp-build "^4.3.0" clean-stack@^2.0.0: @@ -5263,24 +5473,36 @@ cli-cursor@^3.1.0: dependencies: restore-cursor "^3.1.0" +cli-highlight@^2.1.11: + version "2.1.11" + resolved "https://registry.yarnpkg.com/cli-highlight/-/cli-highlight-2.1.11.tgz#49736fa452f0aaf4fae580e30acb26828d2dc1bf" + integrity sha512-9KDcoEVwyUXrjcJNvHD0NFc/hiwe/WPVYIleQh2O1N2Zro5gWJZ/K+3DGn8w8P/F6FxOgzyC5bxDyHIgCSPhGg== + dependencies: + chalk "^4.0.0" + highlight.js "^10.7.1" + mz "^2.4.0" + parse5 "^5.1.1" + parse5-htmlparser2-tree-adapter "^6.0.0" + yargs "^16.0.0" + cli-spinners@^2.5.0: - version "2.9.0" - resolved "https://registry.yarnpkg.com/cli-spinners/-/cli-spinners-2.9.0.tgz#5881d0ad96381e117bbe07ad91f2008fe6ffd8db" - integrity sha512-4/aL9X3Wh0yiMQlE+eeRhWP6vclO3QRtw1JHKIT0FFUs5FjpFmESqtMvYZ0+lbzBw900b95mS0hohy+qn2VK/g== + version "2.9.2" + resolved "https://registry.yarnpkg.com/cli-spinners/-/cli-spinners-2.9.2.tgz#1773a8f4b9c4d6ac31563df53b3fc1d79462fe41" + integrity sha512-ywqV+5MmyL4E7ybXgKys4DugZbX0FC6LnwrhjuykIjnK9k8OQacQ7axGKnjDXWNhns0xot3bZI5h55H8yo9cJg== cli-table3@^0.6.3: - version "0.6.3" - resolved "https://registry.yarnpkg.com/cli-table3/-/cli-table3-0.6.3.tgz#61ab765aac156b52f222954ffc607a6f01dbeeb2" - integrity sha512-w5Jac5SykAeZJKntOxJCrm63Eg5/4dhMWIcuTbo9rpE+brgaSZo0RuNJZeOyMgsUdhDeojvgyQLmjI+K50ZGyg== + version "0.6.4" + resolved "https://registry.yarnpkg.com/cli-table3/-/cli-table3-0.6.4.tgz#d1c536b8a3f2e7bec58f67ac9e5769b1b30088b0" + integrity sha512-Lm3L0p+/npIQWNIiyF/nAn7T5dnOwR3xNTHXYEBFBFVPXzCVNZ5lqEC/1eo/EVfpDsQ1I+TX4ORPQgp+UI0CRw== dependencies: string-width "^4.2.0" optionalDependencies: "@colors/colors" "1.5.0" -cli-width@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-4.0.0.tgz#a5622f6a3b0a9e3e711a25f099bf2399f608caf6" - integrity sha512-ZksGS2xpa/bYkNzN3BAw1wEjsLV/ZKOf/CCrJ/QOBsxx6fOARIkwTutxp1XIOIohi6HKmOFjMoK/XaqDVUpEEw== +cli-width@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-4.1.0.tgz#42daac41d3c254ef38ad8ac037672130173691c5" + integrity sha512-ouuZd4/dm2Sw5Gmqy6bGyNNNe1qt9RpmxveLSO7KcgsTnU7RXfsw+/bukWGo1abgBiMAic068rclZsO4IWmmxQ== cliui@^6.0.0: version "6.0.0" @@ -5291,6 +5513,15 @@ cliui@^6.0.0: strip-ansi "^6.0.0" wrap-ansi "^6.2.0" +cliui@^7.0.2: + version "7.0.4" + resolved "https://registry.yarnpkg.com/cliui/-/cliui-7.0.4.tgz#a0265ee655476fc807aea9df3df8df7783808b4f" + integrity sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ== + dependencies: + string-width "^4.2.0" + strip-ansi "^6.0.0" + wrap-ansi "^7.0.0" + cliui@^8.0.1: version "8.0.1" resolved "https://registry.yarnpkg.com/cliui/-/cliui-8.0.1.tgz#0c04b075db02cbfe60dc8e6cf2f5486b1a3608aa" @@ -5325,13 +5556,13 @@ cmd-shim@^6.0.0: integrity sha512-+FFYbB0YLaAkhkcrjkyNLYDiOsFSfRjwjY19LXk/psmMx1z00xlCv7hhQoTGXXIKi+YXHL/iiFo8NqMVQX9nOw== code-red@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/code-red/-/code-red-1.0.3.tgz#bbd3b0a27dc53c9af13f6756120a9dbcdd68a5f2" - integrity sha512-kVwJELqiILQyG5aeuyKFbdsI1fmQy1Cmf7dQ8eGmVuJoaRVdwey7WaMknr2ZFeVSYSKT0rExsa8EGw0aoI/1QQ== + version "1.0.4" + resolved "https://registry.yarnpkg.com/code-red/-/code-red-1.0.4.tgz#59ba5c9d1d320a4ef795bc10a28bd42bfebe3e35" + integrity sha512-7qJWqItLA8/VPVlKJlFXU+NBlo/qyfs39aJcuMT/2ere32ZqvF5OSxgdM5xOfJJ7O429gg2HM47y8v9P+9wrNw== dependencies: - "@jridgewell/sourcemap-codec" "^1.4.14" - "@types/estree" "^1.0.0" - acorn "^8.8.2" + "@jridgewell/sourcemap-codec" "^1.4.15" + "@types/estree" "^1.0.1" + acorn "^8.10.0" estree-walker "^3.0.3" periscopic "^3.1.0" @@ -5367,11 +5598,6 @@ color-string@^1.9.0: color-name "^1.0.0" simple-swizzle "^0.2.2" -color-support@^1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/color-support/-/color-support-1.1.3.tgz#93834379a1cc9a0c61f82f52f0d04322251bd5a2" - integrity sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg== - color@^4.2.3: version "4.2.3" resolved "https://registry.yarnpkg.com/color/-/color-4.2.3.tgz#d781ecb5e57224ee43ea9627560107c0e0c6463a" @@ -5380,14 +5606,6 @@ color@^4.2.3: color-convert "^2.0.1" color-string "^1.9.0" -columnify@^1.6.0: - version "1.6.0" - resolved "https://registry.yarnpkg.com/columnify/-/columnify-1.6.0.tgz#6989531713c9008bb29735e61e37acf5bd553cf3" - integrity sha512-lomjuFZKfM6MSAnV9aCZC9sc0qGbmZdfygNv+nCpqVkSKdCxCklLtd16O0EILGkImHw9ZpHkAnHaB+8Zxq5W6Q== - dependencies: - strip-ansi "^6.0.1" - wcwidth "^1.0.0" - combined-stream@^1.0.8: version "1.0.8" resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f" @@ -5418,15 +5636,10 @@ compare-func@^2.0.0: array-ify "^1.0.0" dot-prop "^5.1.0" -component-emitter@^1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.3.0.tgz#16e4070fba8ae29b679f2215853ee181ab2eabc0" - integrity sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg== - -compress-commons@^4.1.0: - version "4.1.1" - resolved "https://registry.yarnpkg.com/compress-commons/-/compress-commons-4.1.1.tgz#df2a09a7ed17447642bad10a85cc9a19e5c42a7d" - integrity sha512-QLdDLCKNV2dtoTorqgxngQCMA+gWXkM/Nwu7FpeBhk/RdkzimqC3jueb/FDmaZeXh+uby1jkBqE3xArsLBE5wQ== +compress-commons@^4.1.2: + version "4.1.2" + resolved "https://registry.yarnpkg.com/compress-commons/-/compress-commons-4.1.2.tgz#6542e59cb63e1f46a8b21b0e06f9a32e4c8b06df" + integrity sha512-D3uMHtGc/fcO1Gt1/L7i1e33VOvD4A9hfQLP+6ewd+BvG/gQ84Yh4oftEhAdjSMgBgwGL+jsppT7JYNpo6MHHg== dependencies: buffer-crc32 "^0.2.13" crc32-stream "^4.0.2" @@ -5446,20 +5659,6 @@ config-chain@^1.1.11: ini "^1.3.4" proto-list "~1.2.1" -console-control-strings@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/console-control-strings/-/console-control-strings-1.1.0.tgz#3d7cf4464db6446ea644bf4b39507f9851008e8e" - integrity sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ== - -constant-case@^3.0.4: - version "3.0.4" - resolved "https://registry.yarnpkg.com/constant-case/-/constant-case-3.0.4.tgz#3b84a9aeaf4cf31ec45e6bf5de91bdfb0589faf1" - integrity sha512-I2hSBi7Vvs7BEuJDr5dDHfzb/Ruj3FyvFyh7KLilAjNQw3Be+xgqUBA2W6scVEcL0hL1dwPRtIqEPVUCKkSsyQ== - dependencies: - no-case "^3.0.4" - tslib "^2.0.3" - upper-case "^2.0.2" - constants-browserify@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/constants-browserify/-/constants-browserify-1.0.0.tgz#c20b96d8c617748aaf1c16021760cd27fcb8cb75" @@ -5504,15 +5703,15 @@ conventional-commits-parser@^5.0.0: meow "^12.0.1" split2 "^4.0.0" -convert-source-map@^1.7.0: - version "1.9.0" - resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.9.0.tgz#7faae62353fb4213366d0ca98358d22e8368b05f" - integrity sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A== +convert-hrtime@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/convert-hrtime/-/convert-hrtime-5.0.0.tgz#f2131236d4598b95de856926a67100a0a97e9fa3" + integrity sha512-lOETlkIeYSJWcbbcvjRKGxVMXJR+8+OQb/mTPbA4ObPMytYIsUbuOE0Jzy60hjARYszq1id0j8KgVhC+WGZVTg== -cookiejar@^2.1.2: - version "2.1.4" - resolved "https://registry.yarnpkg.com/cookiejar/-/cookiejar-2.1.4.tgz#ee669c1fea2cf42dc31585469d193fef0d65771b" - integrity sha512-LDx6oHrK+PhzLKJU9j5S7/Y3jM/mUHvD/DeI1WQmJn652iPC5Y4TBzC9l+5OMOXlyTTA+SmVUPm0HQUwpD5Jqw== +convert-source-map@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-2.0.0.tgz#4b560f649fc4e918dd0ab75cf4961e8bc882d82a" + integrity sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg== copy-anything@^2.0.1: version "2.0.6" @@ -5522,9 +5721,9 @@ copy-anything@^2.0.1: is-what "^3.14.1" copy-to-clipboard@^3.3.2: - version "3.3.2" - resolved "https://registry.yarnpkg.com/copy-to-clipboard/-/copy-to-clipboard-3.3.2.tgz#5b263ec2366224b100181dded7ce0579b340c107" - integrity sha512-Vme1Z6RUDzrb6xAI7EZlVZ5uvOk2F//GaxKUxajDqm9LhOVM1inxNAD2vy+UZDYsd0uyA9s7b3/FVZPSxqrCfg== + version "3.3.3" + resolved "https://registry.yarnpkg.com/copy-to-clipboard/-/copy-to-clipboard-3.3.3.tgz#55ac43a1db8ae639a4bd99511c148cdd1b83a1b0" + integrity sha512-2KV8NhB5JqC3ky0r9PMCAZKbUHSwtEo4CwCs0KXgruG43gX5PMqDEBbVU4OUzw2MuAWUfsuFmWvEKG5QRfSnJA== dependencies: toggle-selection "^1.0.6" @@ -5544,16 +5743,6 @@ cosmiconfig@^7.0.1: path-type "^4.0.0" yaml "^1.10.0" -cosmiconfig@^8.0.0: - version "8.2.0" - resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-8.2.0.tgz#f7d17c56a590856cd1e7cee98734dca272b0d8fd" - integrity sha512-3rTMnFJA1tCOPwRxtgF4wd7Ab2qvDbL8jX+3smjIbS4HlZBagTlpERbdN7iAbWlrfxE3M8c27kTwTawQ7st+OQ== - dependencies: - import-fresh "^3.2.1" - js-yaml "^4.1.0" - parse-json "^5.0.0" - path-type "^4.0.0" - cosmiconfig@^9.0.0: version "9.0.0" resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-9.0.0.tgz#34c3fc58287b915f3ae905ab6dc3de258b55ad9d" @@ -5570,9 +5759,9 @@ crc-32@^1.2.0: integrity sha512-ROmzCKrTnOwybPcJApAA6WBWij23HVfGVNKqqrZpuyZOHqK2CwHSvpGuyt/UNNvaIjEd8X5IFGp4Mh+Ie1IHJQ== crc32-stream@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/crc32-stream/-/crc32-stream-4.0.2.tgz#c922ad22b38395abe9d3870f02fa8134ed709007" - integrity sha512-DxFZ/Hk473b/muq1VJ///PMNLj0ZMnzye9thBpmjpJKCc5eMgB95aK8zCGrGfQ90cWo561Te6HK9D+j4KPdM6w== + version "4.0.3" + resolved "https://registry.yarnpkg.com/crc32-stream/-/crc32-stream-4.0.3.tgz#85dd677eb78fa7cad1ba17cc506a597d41fc6f33" + integrity sha512-NT7w2JVU7DFroFdYkeq8cywxrgjPHWkdX1wjpRQXPX5Asews3tA+Ght6lddQO5Mkumffp3X7GEqku3epj2toIw== dependencies: crc-32 "^1.2.0" readable-stream "^3.4.0" @@ -5615,6 +5804,13 @@ create-hmac@^1.1.0, create-hmac@^1.1.4, create-hmac@^1.1.7: safe-buffer "^5.0.1" sha.js "^2.4.8" +cross-fetch@^3.1.5: + version "3.1.8" + resolved "https://registry.yarnpkg.com/cross-fetch/-/cross-fetch-3.1.8.tgz#0327eba65fd68a7d119f8fb2bf9334a1a7956f82" + integrity sha512-cvA+JwZoU0Xq+h6WkMvAUqPEYy92Obet6UdKLfW60qn99ftItKjB5T+BkyWOFWe2pUyfQ+IJHmpOTznqk1M6Kg== + dependencies: + node-fetch "^2.6.12" + cross-spawn@^5.1.0: version "5.1.0" resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-5.1.0.tgz#e8bd0efee58fcff6f8f94510a0a554bbfa235449" @@ -5687,9 +5883,9 @@ css-select@^4.1.3: nth-check "^2.0.1" css-to-react-native@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/css-to-react-native/-/css-to-react-native-3.0.0.tgz#62dbe678072a824a689bcfee011fc96e02a7d756" - integrity sha512-Ro1yETZA813eoyUp2GDBhG2j+YggidUmzO1/v9eYBKR2EHVEniE2MI/NqpTQ954BMpTPZFsGNPm46qFB9dpaPQ== + version "3.2.0" + resolved "https://registry.yarnpkg.com/css-to-react-native/-/css-to-react-native-3.2.0.tgz#cdd8099f71024e149e4f6fe17a7d46ecd55f1e32" + integrity sha512-e8RKaLXMOFii+02mOlqwjbD00KSEKqblnpO9e++1aXS1fPQOpS1YoqdVHBqPjHNoxeF2mimzVqawm2KCbEdtHQ== dependencies: camelize "^1.0.0" css-color-keywords "^1.0.0" @@ -5728,15 +5924,10 @@ csso@^4.2.0: dependencies: css-tree "^1.1.2" -csstype@^3.0.2: - version "3.1.0" - resolved "https://registry.yarnpkg.com/csstype/-/csstype-3.1.0.tgz#4ddcac3718d787cf9df0d1b7d15033925c8f29f2" - integrity sha512-uX1KG+x9h5hIJsaKR9xHUeUraxf8IODOwq9JLNPq6BwB04a/xgpq3rcx47l5BZu5zBPlgD342tdke3Hom/nJRA== - -csstype@^3.1.1: - version "3.1.2" - resolved "https://registry.yarnpkg.com/csstype/-/csstype-3.1.2.tgz#1d4bf9d572f11c14031f0436e1c10bc1f571f50b" - integrity sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ== +csstype@^3.0.2, csstype@^3.1.1: + version "3.1.3" + resolved "https://registry.yarnpkg.com/csstype/-/csstype-3.1.3.tgz#d80ff294d114fb0e6ac500fbf85b60137d7eff81" + integrity sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw== csv-generate@^3.4.3: version "3.4.3" @@ -5763,12 +5954,39 @@ csv@^5.5.3: csv-stringify "^5.6.5" stream-transform "^2.1.3" +data-view-buffer@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/data-view-buffer/-/data-view-buffer-1.0.1.tgz#8ea6326efec17a2e42620696e671d7d5a8bc66b2" + integrity sha512-0lht7OugA5x3iJLOWFhWK/5ehONdprk0ISXqVFn/NFrDu+cuc8iADFrGQz5BnRK7LLU3JmkbXSxaqX+/mXYtUA== + dependencies: + call-bind "^1.0.6" + es-errors "^1.3.0" + is-data-view "^1.0.1" + +data-view-byte-length@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/data-view-byte-length/-/data-view-byte-length-1.0.1.tgz#90721ca95ff280677eb793749fce1011347669e2" + integrity sha512-4J7wRJD3ABAzr8wP+OcIcqq2dlUKp4DVflx++hs5h5ZKydWMI6/D/fAot+yh6g2tHh8fLFTvNOaVN357NvSrOQ== + dependencies: + call-bind "^1.0.7" + es-errors "^1.3.0" + is-data-view "^1.0.1" + +data-view-byte-offset@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/data-view-byte-offset/-/data-view-byte-offset-1.0.0.tgz#5e0bbfb4828ed2d1b9b400cd8a7d119bca0ff18a" + integrity sha512-t/Ygsytq+R995EJ5PZlD4Cu56sWa8InXySaViRzw9apusqsOO2bQP+SbYzAhR0pFKoB+43lYy8rWban9JSuXnA== + dependencies: + call-bind "^1.0.6" + es-errors "^1.3.0" + is-data-view "^1.0.1" + dayjs@^1.11.6: - version "1.11.6" - resolved "https://registry.yarnpkg.com/dayjs/-/dayjs-1.11.6.tgz#2e79a226314ec3ec904e3ee1dd5a4f5e5b1c7afb" - integrity sha512-zZbY5giJAinCG+7AGaw0wIhNZ6J8AhWuSXKvuc1KAyMiRsvGQWqh4L+MomvhdAYjN+lqvVCMq1I41e3YHvXkyQ== + version "1.11.11" + resolved "https://registry.yarnpkg.com/dayjs/-/dayjs-1.11.11.tgz#dfe0e9d54c5f8b68ccf8ca5f72ac603e7e5ed59e" + integrity sha512-okzr3f11N6WuqYtZSvm+F776mB41wRZMhKP+hc34YdW+KmtYYK9iqvHSwo2k9FEH3fhGXvOPV6yz2IcSrfRUDg== -debug@4, debug@^4.0.0, debug@^4.1.0, debug@^4.1.1, debug@^4.3.1, debug@^4.3.4: +debug@4, debug@^4.0.0, debug@^4.1.0, debug@^4.3.1, debug@^4.3.4: version "4.3.4" resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.4.tgz#1319f6579357f2338d3337d2cdd4914bb5dcc865" integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ== @@ -5782,13 +6000,6 @@ debug@^2.6.9: dependencies: ms "2.0.0" -debug@^3.2.6: - version "3.2.7" - resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.7.tgz#72580b7e9145fb39b6676f9c5e5fb100b934179a" - integrity sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ== - dependencies: - ms "^2.1.1" - decamelize-keys@^1.1.0: version "1.1.1" resolved "https://registry.yarnpkg.com/decamelize-keys/-/decamelize-keys-1.1.1.tgz#04a2d523b2f18d80d0158a43b895d56dff8d19d8" @@ -5845,25 +6056,16 @@ defer-to-connect@^2.0.1: resolved "https://registry.yarnpkg.com/defer-to-connect/-/defer-to-connect-2.0.1.tgz#8016bdb4143e4632b77a3449c6236277de520587" integrity sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg== -define-data-property@^1.0.1, define-data-property@^1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/define-data-property/-/define-data-property-1.1.2.tgz#f3c33b4f0102360cd7c0f5f28700f5678510b63a" - integrity sha512-SRtsSqsDbgpJBbW3pABMCOt6rQyeM8s8RiyeSN8jYG8sYmt/kGJejbydttUsnDs1tadr19tvhT4ShwMyoqAm4g== +define-data-property@^1.0.1, define-data-property@^1.1.4: + version "1.1.4" + resolved "https://registry.yarnpkg.com/define-data-property/-/define-data-property-1.1.4.tgz#894dc141bb7d3060ae4366f6a0107e68fbe48c5e" + integrity sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A== dependencies: + es-define-property "^1.0.0" es-errors "^1.3.0" - get-intrinsic "^1.2.2" gopd "^1.0.1" - has-property-descriptors "^1.0.1" -define-properties@^1.1.3, define-properties@^1.1.4: - version "1.1.4" - resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.4.tgz#0b14d7bd7fbeb2f3572c3a7eda80ea5d57fb05b1" - integrity sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA== - dependencies: - has-property-descriptors "^1.0.0" - object-keys "^1.1.1" - -define-properties@^1.2.0, define-properties@^1.2.1: +define-properties@^1.1.3, define-properties@^1.2.0, define-properties@^1.2.1: version "1.2.1" resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.2.1.tgz#10781cc616eb951a80a034bafcaa7377f6af2b6c" integrity sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg== @@ -5888,9 +6090,9 @@ dequal@^2.0.3: integrity sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA== des.js@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/des.js/-/des.js-1.0.1.tgz#5382142e1bdc53f85d86d53e5f4aa7deb91e0843" - integrity sha512-Q0I4pfFrv2VPd34/vfLrFOoRmlYj3OV50i7fskps1jZWK1kApMWWT9G6RRUeYedLcBDIhnSDaUvJMb3AhUlaEA== + version "1.1.0" + resolved "https://registry.yarnpkg.com/des.js/-/des.js-1.1.0.tgz#1d37f5766f3bbff4ee9638e871a8768c173b81da" + integrity sha512-r17GxjhUCjSRy8aiJpr8/UadFIzMzJGexI3Nmz4ADi9LYSFx4gTBp80+NaX/YsXWWLhpZ7v/v/ubEc/bCNfKwg== dependencies: inherits "^2.0.1" minimalistic-assert "^1.0.0" @@ -5905,15 +6107,15 @@ detect-libc@^1.0.3: resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-1.0.3.tgz#fa137c4bd698edf55cd5cd02ac559f91a4c4ba9b" integrity sha512-pGjwhsmsp4kL2RTz08wcOlGN83otlqHeD/Z5T8GXZB+/YcpQ/dgo+lbU8ZsGxV0HIvqqxo9l7mqYwyYMD9bKDg== -detect-libc@^2.0.0, detect-libc@^2.0.1: - version "2.0.2" - resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-2.0.2.tgz#8ccf2ba9315350e1241b88d0ac3b0e1fbd99605d" - integrity sha512-UX6sGumvvqSaXgdKGUsgZWqcUyIXZ/vZTrlRT/iobiKhGL0zL4d3osHj3uqllWJK+i+sixDS/3COVEOFbupFyw== +detect-libc@^2.0.0, detect-libc@^2.0.1, detect-libc@^2.0.2: + version "2.0.3" + resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-2.0.3.tgz#f0cd503b40f9939b894697d19ad50895e30cf700" + integrity sha512-bwy0MGW55bG41VqxxypOsdSdGqLwXPI/focwgTYCFMbdUiBAxLg9CFzG08sz2aqzknwiX7Hkl0bQENjg8iLByw== diff@^5.1.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/diff/-/diff-5.1.0.tgz#bc52d298c5ea8df9194800224445ed43ffc87e40" - integrity sha512-D+mk+qE8VC/PAUrlAU34N+VfXev0ghe5ywmpqrawphmVZc1bEfn56uo9qpyGp1p4xpzOHkSW4ztBd6L7Xx4ACw== + version "5.2.0" + resolved "https://registry.yarnpkg.com/diff/-/diff-5.2.0.tgz#26ded047cd1179b78b9537d5ef725503ce1ae531" + integrity sha512-uIFDxqpRZGZ6ThOk84hEfqWoHx2devRFvpTZcTHur85vImfaxUbTW9Ryh4CpCuDnToOP1CEtXKIgytHBPVff5A== diffie-hellman@^5.0.0: version "5.0.3" @@ -5966,14 +6168,6 @@ domutils@^2.8.0: domelementtype "^2.2.0" domhandler "^4.2.0" -dot-case@^3.0.4: - version "3.0.4" - resolved "https://registry.yarnpkg.com/dot-case/-/dot-case-3.0.4.tgz#9b2b670d00a431667a8a75ba29cd1b98809ce751" - integrity sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w== - dependencies: - no-case "^3.0.4" - tslib "^2.0.3" - dot-prop@^5.1.0: version "5.3.0" resolved "https://registry.yarnpkg.com/dot-prop/-/dot-prop-5.3.0.tgz#90ccce708cd9cd82cc4dc8c3ddd9abdd55b20e88" @@ -6002,9 +6196,9 @@ dotenv@^7.0.0: integrity sha512-M3NhsLbV1i6HuGzBUH8vXrtxOk+tWmzWKDMbAVSUp3Zsjm7ywFeuwrUXhmhQyRK1q5B5GGy7hcXPbj3bnfZg2g== dset@^3.1.1, dset@^3.1.2: - version "3.1.2" - resolved "https://registry.yarnpkg.com/dset/-/dset-3.1.2.tgz#89c436ca6450398396dc6538ea00abc0c54cd45a" - integrity sha512-g/M9sqy3oHe477Ar4voQxWtaPIFw1jTdKZuomOjhCcBx9nHUNn0pu6NopuFFrTh/TRZIKEj+76vLWFu9BNKk+Q== + version "3.1.3" + resolved "https://registry.yarnpkg.com/dset/-/dset-3.1.3.tgz#c194147f159841148e8e34ca41f638556d9542d2" + integrity sha512-20TuZZHCEZ2O71q9/+8BwKwZ0QtD9D8ObhrihJPr+vLLYlSuAU3/zL4cSlgbfeoGHTjCSJBa7NGcrF9/Bx/WJQ== duplexer2@~0.1.0: version "0.1.4" @@ -6018,12 +6212,12 @@ eastasianwidth@^0.2.0: resolved "https://registry.yarnpkg.com/eastasianwidth/-/eastasianwidth-0.2.0.tgz#696ce2ec0aa0e6ea93a397ffcf24aa7840c827cb" integrity sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA== -electron-to-chromium@^1.4.431: - version "1.4.468" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.468.tgz#3cbf64ad67d9f12bfe69fefe5eb1935ec4f6ab7a" - integrity sha512-6M1qyhaJOt7rQtNti1lBA0GwclPH+oKCmsra/hkcWs5INLxfXXD/dtdnaKUYQu/pjOBP/8Osoe4mAcNvvzoFag== +electron-to-chromium@^1.4.535, electron-to-chromium@^1.4.668: + version "1.4.754" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.754.tgz#20a9f3cc80e0fb6a804b86605e55da16918a58b0" + integrity sha512-7Kr5jUdns5rL/M9wFFmMZAgFDuL2YOnanFH4OI4iFzUqyh3XOL7nAGbSlSMZdzKMIyyTpNSbqZsWG9odwLeKvA== -elliptic@6.5.4, elliptic@^6.5.3, elliptic@^6.5.4: +elliptic@6.5.4: version "6.5.4" resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.5.4.tgz#da37cebd31e79a1367e941b592ed1fbebd58abbb" integrity sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ== @@ -6036,6 +6230,19 @@ elliptic@6.5.4, elliptic@^6.5.3, elliptic@^6.5.4: minimalistic-assert "^1.0.1" minimalistic-crypto-utils "^1.0.1" +elliptic@^6.5.3, elliptic@^6.5.4, elliptic@^6.5.5: + version "6.5.5" + resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.5.5.tgz#c715e09f78b6923977610d4c2346d6ce22e6dded" + integrity sha512-7EjbcmUm17NQFu4Pmgmq2olYMj8nwMnpcddByChSUjArp8F5DQWcIcpriwO4ZToLNAJig0yiyjswfyGNje/ixw== + dependencies: + bn.js "^4.11.9" + brorand "^1.1.0" + hash.js "^1.0.0" + hmac-drbg "^1.0.1" + inherits "^2.0.4" + minimalistic-assert "^1.0.1" + minimalistic-crypto-utils "^1.0.1" + emoji-regex@^8.0.0: version "8.0.0" resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" @@ -6120,93 +6327,85 @@ error-ex@^1.3.1: dependencies: is-arrayish "^0.2.1" -es-abstract@^1.19.0, es-abstract@^1.19.5, es-abstract@^1.20.0: - version "1.20.2" - resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.20.2.tgz#8495a07bc56d342a3b8ea3ab01bd986700c2ccb3" - integrity sha512-XxXQuVNrySBNlEkTYJoDNFe5+s2yIOpzq80sUHEdPdQr0S5nTLz4ZPPPswNIpKseDDUS5yghX1gfLIHQZ1iNuQ== +es-abstract@^1.22.1, es-abstract@^1.22.3, es-abstract@^1.23.0: + version "1.23.3" + resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.23.3.tgz#8f0c5a35cd215312573c5a27c87dfd6c881a0aa0" + integrity sha512-e+HfNH61Bj1X9/jLc5v1owaLYuHdeHHSQlkhCBiTK8rBvKaULl/beGMxwrMXjpYrv4pz22BlY570vVePA2ho4A== dependencies: - call-bind "^1.0.2" - es-to-primitive "^1.2.1" - function-bind "^1.1.1" - function.prototype.name "^1.1.5" - get-intrinsic "^1.1.2" - get-symbol-description "^1.0.0" - has "^1.0.3" - has-property-descriptors "^1.0.0" - has-symbols "^1.0.3" - internal-slot "^1.0.3" - is-callable "^1.2.4" - is-negative-zero "^2.0.2" - is-regex "^1.1.4" - is-shared-array-buffer "^1.0.2" - is-string "^1.0.7" - is-weakref "^1.0.2" - object-inspect "^1.12.2" - object-keys "^1.1.1" - object.assign "^4.1.4" - regexp.prototype.flags "^1.4.3" - string.prototype.trimend "^1.0.5" - string.prototype.trimstart "^1.0.5" - unbox-primitive "^1.0.2" - -es-abstract@^1.22.1, es-abstract@^1.22.3: - version "1.22.3" - resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.22.3.tgz#48e79f5573198de6dee3589195727f4f74bc4f32" - integrity sha512-eiiY8HQeYfYH2Con2berK+To6GrK2RxbPawDkGq4UiCQQfZHb6wX9qQqkbpPqaxQFcl8d9QzZqo0tGE0VcrdwA== - dependencies: - array-buffer-byte-length "^1.0.0" - arraybuffer.prototype.slice "^1.0.2" - available-typed-arrays "^1.0.5" - call-bind "^1.0.5" - es-set-tostringtag "^2.0.1" + array-buffer-byte-length "^1.0.1" + arraybuffer.prototype.slice "^1.0.3" + available-typed-arrays "^1.0.7" + call-bind "^1.0.7" + data-view-buffer "^1.0.1" + data-view-byte-length "^1.0.1" + data-view-byte-offset "^1.0.0" + es-define-property "^1.0.0" + es-errors "^1.3.0" + es-object-atoms "^1.0.0" + es-set-tostringtag "^2.0.3" es-to-primitive "^1.2.1" function.prototype.name "^1.1.6" - get-intrinsic "^1.2.2" - get-symbol-description "^1.0.0" + get-intrinsic "^1.2.4" + get-symbol-description "^1.0.2" globalthis "^1.0.3" gopd "^1.0.1" - has-property-descriptors "^1.0.0" - has-proto "^1.0.1" + has-property-descriptors "^1.0.2" + has-proto "^1.0.3" has-symbols "^1.0.3" - hasown "^2.0.0" - internal-slot "^1.0.5" - is-array-buffer "^3.0.2" + hasown "^2.0.2" + internal-slot "^1.0.7" + is-array-buffer "^3.0.4" is-callable "^1.2.7" - is-negative-zero "^2.0.2" + is-data-view "^1.0.1" + is-negative-zero "^2.0.3" is-regex "^1.1.4" - is-shared-array-buffer "^1.0.2" + is-shared-array-buffer "^1.0.3" is-string "^1.0.7" - is-typed-array "^1.1.12" + is-typed-array "^1.1.13" is-weakref "^1.0.2" object-inspect "^1.13.1" object-keys "^1.1.1" - object.assign "^4.1.4" - regexp.prototype.flags "^1.5.1" - safe-array-concat "^1.0.1" - safe-regex-test "^1.0.0" - string.prototype.trim "^1.2.8" - string.prototype.trimend "^1.0.7" - string.prototype.trimstart "^1.0.7" - typed-array-buffer "^1.0.0" - typed-array-byte-length "^1.0.0" - typed-array-byte-offset "^1.0.0" - typed-array-length "^1.0.4" + object.assign "^4.1.5" + regexp.prototype.flags "^1.5.2" + safe-array-concat "^1.1.2" + safe-regex-test "^1.0.3" + string.prototype.trim "^1.2.9" + string.prototype.trimend "^1.0.8" + string.prototype.trimstart "^1.0.8" + typed-array-buffer "^1.0.2" + typed-array-byte-length "^1.0.1" + typed-array-byte-offset "^1.0.2" + typed-array-length "^1.0.6" unbox-primitive "^1.0.2" - which-typed-array "^1.1.13" + which-typed-array "^1.1.15" + +es-define-property@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/es-define-property/-/es-define-property-1.0.0.tgz#c7faefbdff8b2696cf5f46921edfb77cc4ba3845" + integrity sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ== + dependencies: + get-intrinsic "^1.2.4" es-errors@^1.2.1, es-errors@^1.3.0: version "1.3.0" resolved "https://registry.yarnpkg.com/es-errors/-/es-errors-1.3.0.tgz#05f75a25dab98e4fb1dcd5e1472c0546d5057c8f" integrity sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw== -es-set-tostringtag@^2.0.1: - version "2.0.2" - resolved "https://registry.yarnpkg.com/es-set-tostringtag/-/es-set-tostringtag-2.0.2.tgz#11f7cc9f63376930a5f20be4915834f4bc74f9c9" - integrity sha512-BuDyupZt65P9D2D2vA/zqcI3G5xRsklm5N3xCwuiy+/vKy8i0ifdsQP1sLgO4tZDSCaQUSnmC48khknGMV3D2Q== +es-object-atoms@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/es-object-atoms/-/es-object-atoms-1.0.0.tgz#ddb55cd47ac2e240701260bc2a8e31ecb643d941" + integrity sha512-MZ4iQ6JwHOBQjahnjwaC1ZtIBH+2ohjamzAO3oaHcXYup7qxjF2fixyH+Q71voWHeOkI2q/TnJao/KfXYIZWbw== dependencies: - get-intrinsic "^1.2.2" - has-tostringtag "^1.0.0" - hasown "^2.0.0" + es-errors "^1.3.0" + +es-set-tostringtag@^2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/es-set-tostringtag/-/es-set-tostringtag-2.0.3.tgz#8bb60f0a440c2e4281962428438d58545af39777" + integrity sha512-3T8uNMC3OQTHkFUsFq8r/BwAXLHvU/9O9mE0fBc/MY5iq/8H7ncvO947LmYA6ldWw9Uh8Yhf25zu6n7nML5QWQ== + dependencies: + get-intrinsic "^1.2.4" + has-tostringtag "^1.0.2" + hasown "^2.0.1" es-shim-unscopables@^1.0.0: version "1.0.2" @@ -6229,43 +6428,38 @@ es6-error@^4.1.1: resolved "https://registry.yarnpkg.com/es6-error/-/es6-error-4.1.1.tgz#9e3af407459deed47e9a91f9b885a84eb05c561d" integrity sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg== -es6-object-assign@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/es6-object-assign/-/es6-object-assign-1.1.0.tgz#c2c3582656247c39ea107cb1e6652b6f9f24523c" - integrity sha512-MEl9uirslVwqQU369iHNWZXsI8yaZYGg/D65aOgZkeyFJwHYSxilf7rQzXKI7DdDuBPrBXbfk3sl9hJhmd5AUw== - esbuild@^0.18.2: - version "0.18.16" - resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.18.16.tgz#bbeb058c556152bcbff4e8168e7c93020ccf09c3" - integrity sha512-1xLsOXrDqwdHxyXb/x/SOyg59jpf/SH7YMvU5RNSU7z3TInaASNJWNFJ6iRvLvLETZMasF3d1DdZLg7sgRimRQ== + version "0.18.20" + resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.18.20.tgz#4709f5a34801b43b799ab7d6d82f7284a9b7a7a6" + integrity sha512-ceqxoedUrcayh7Y7ZX6NdbbDzGROiyVBgC4PriJThBKSVPWnnFHZAkfI1lJT8QFkOwH4qOS2SJkS4wvpGl8BpA== optionalDependencies: - "@esbuild/android-arm" "0.18.16" - "@esbuild/android-arm64" "0.18.16" - "@esbuild/android-x64" "0.18.16" - "@esbuild/darwin-arm64" "0.18.16" - "@esbuild/darwin-x64" "0.18.16" - "@esbuild/freebsd-arm64" "0.18.16" - "@esbuild/freebsd-x64" "0.18.16" - "@esbuild/linux-arm" "0.18.16" - "@esbuild/linux-arm64" "0.18.16" - "@esbuild/linux-ia32" "0.18.16" - "@esbuild/linux-loong64" "0.18.16" - "@esbuild/linux-mips64el" "0.18.16" - "@esbuild/linux-ppc64" "0.18.16" - "@esbuild/linux-riscv64" "0.18.16" - "@esbuild/linux-s390x" "0.18.16" - "@esbuild/linux-x64" "0.18.16" - "@esbuild/netbsd-x64" "0.18.16" - "@esbuild/openbsd-x64" "0.18.16" - "@esbuild/sunos-x64" "0.18.16" - "@esbuild/win32-arm64" "0.18.16" - "@esbuild/win32-ia32" "0.18.16" - "@esbuild/win32-x64" "0.18.16" - -escalade@^3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.1.tgz#d8cfdc7000965c5a0174b4a82eaa5c0552742e40" - integrity sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw== + "@esbuild/android-arm" "0.18.20" + "@esbuild/android-arm64" "0.18.20" + "@esbuild/android-x64" "0.18.20" + "@esbuild/darwin-arm64" "0.18.20" + "@esbuild/darwin-x64" "0.18.20" + "@esbuild/freebsd-arm64" "0.18.20" + "@esbuild/freebsd-x64" "0.18.20" + "@esbuild/linux-arm" "0.18.20" + "@esbuild/linux-arm64" "0.18.20" + "@esbuild/linux-ia32" "0.18.20" + "@esbuild/linux-loong64" "0.18.20" + "@esbuild/linux-mips64el" "0.18.20" + "@esbuild/linux-ppc64" "0.18.20" + "@esbuild/linux-riscv64" "0.18.20" + "@esbuild/linux-s390x" "0.18.20" + "@esbuild/linux-x64" "0.18.20" + "@esbuild/netbsd-x64" "0.18.20" + "@esbuild/openbsd-x64" "0.18.20" + "@esbuild/sunos-x64" "0.18.20" + "@esbuild/win32-arm64" "0.18.20" + "@esbuild/win32-ia32" "0.18.20" + "@esbuild/win32-x64" "0.18.20" + +escalade@^3.1.1, escalade@^3.1.2: + version "3.1.2" + resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.2.tgz#54076e9ab29ea5bf3d8f1ed62acffbb88272df27" + integrity sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA== escape-string-regexp@5.0.0, escape-string-regexp@^5.0.0: version "5.0.0" @@ -6282,7 +6476,7 @@ escape-string-regexp@^2.0.0: resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz#a30304e99daa32e23b2fd20f51babd07cffca344" integrity sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w== -esprima@^4.0.0, esprima@~4.0.0: +esprima@^4.0.0: version "4.0.1" resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71" integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== @@ -6352,12 +6546,7 @@ expand-template@^2.0.3: resolved "https://registry.yarnpkg.com/expand-template/-/expand-template-2.0.3.tgz#6e14b3fcee0f3a6340ecb57d2e8918692052a47c" integrity sha512-XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg== -exponential-backoff@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/exponential-backoff/-/exponential-backoff-3.1.0.tgz#9409c7e579131f8bd4b32d7d8094a911040f2e68" - integrity sha512-oBuz5SYz5zzyuHINoe9ooePwSu0xApKWgeNzok4hZ5YKXFh9zrQBEM15CXqoZkJJPuI2ArvqjPQd8UKJA753XA== - -exponential-backoff@^3.1.1: +exponential-backoff@^3.1.0, exponential-backoff@^3.1.1: version "3.1.1" resolved "https://registry.yarnpkg.com/exponential-backoff/-/exponential-backoff-3.1.1.tgz#64ac7526fe341ab18a39016cd22c787d01e00bf6" integrity sha512-dX7e/LHVJ6W3DE1MHWi9S1EYzDESENfLrYohG2G++ovZrYOkm4Knwa0mc1cn84xJOR4KEU0WSchhLbd0UklbHw== @@ -6367,7 +6556,7 @@ extendable-error@^0.1.5: resolved "https://registry.yarnpkg.com/extendable-error/-/extendable-error-0.1.7.tgz#60b9adf206264ac920058a7395685ae4670c2b96" integrity sha512-UOiS2in6/Q0FK0R0q6UY9vYpQ21mr/Qn1KOnte7vsACuNJf514WvCCUHSRCPcgjPT2bAhNIJdlE6bVap1GKmeg== -external-editor@^3.0.3, external-editor@^3.1.0: +external-editor@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/external-editor/-/external-editor-3.1.0.tgz#cb03f740befae03ea4d283caed2741a83f335495" integrity sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew== @@ -6377,38 +6566,16 @@ external-editor@^3.0.3, external-editor@^3.1.0: tmp "^0.0.33" fast-copy@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/fast-copy/-/fast-copy-3.0.1.tgz#9e89ef498b8c04c1cd76b33b8e14271658a732aa" - integrity sha512-Knr7NOtK3HWRYGtHoJrjkaWepqT8thIVGAwt0p0aUs1zqkAzXZV4vo9fFNwyb5fcqK1GKYFYxldQdIDVKhUAfA== + version "3.0.2" + resolved "https://registry.yarnpkg.com/fast-copy/-/fast-copy-3.0.2.tgz#59c68f59ccbcac82050ba992e0d5c389097c9d35" + integrity sha512-dl0O9Vhju8IrcLndv2eU4ldt1ftXMqqfgN4H1cpmGV7P6jeB9FwpN9a2c8DPGE1Ys88rNUJVYDHq73CGAGOPfQ== fast-fifo@^1.1.0, fast-fifo@^1.2.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/fast-fifo/-/fast-fifo-1.3.0.tgz#03e381bcbfb29932d7c3afde6e15e83e05ab4d8b" - integrity sha512-IgfweLvEpwyA4WgiQe9Nx6VV2QkML2NkvZnk1oKnIzXgXdWxuhF7zw4DvLTPZJn6PIUneiAXPF24QmoEqHTjyw== - -fast-glob@3.2.12, fast-glob@^3.2.9: - version "3.2.12" - resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.2.12.tgz#7f39ec99c2e6ab030337142da9e0c18f37afae80" - integrity sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w== - dependencies: - "@nodelib/fs.stat" "^2.0.2" - "@nodelib/fs.walk" "^1.2.3" - glob-parent "^5.1.2" - merge2 "^1.3.0" - micromatch "^4.0.4" - -fast-glob@3.3.0: - version "3.3.0" - resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.3.0.tgz#7c40cb491e1e2ed5664749e87bfb516dbe8727c0" - integrity sha512-ChDuvbOypPuNjO8yIDf36x7BlZX1smcUMTTcyoIjycexOxd6DFsKsg21qVBzEmr3G7fUKIRy2/psii+CIUt7FA== - dependencies: - "@nodelib/fs.stat" "^2.0.2" - "@nodelib/fs.walk" "^1.2.3" - glob-parent "^5.1.2" - merge2 "^1.3.0" - micromatch "^4.0.4" + version "1.3.2" + resolved "https://registry.yarnpkg.com/fast-fifo/-/fast-fifo-1.3.2.tgz#286e31de96eb96d38a97899815740ba2a4f3640c" + integrity sha512-/d9sfos4yxzpwkDkuN7k2SqFKtYNmCTzgfEpz82x34IM9/zc8KGxQoXg1liNC/izpRM/MBdt44Nmx41ZWqk+FQ== -fast-glob@^3.3.2: +fast-glob@3.3.2, fast-glob@^3.2.9, fast-glob@^3.3.2: version "3.3.2" resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.3.2.tgz#a904501e57cfdd2ffcded45e99a54fef55e46129" integrity sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow== @@ -6419,27 +6586,22 @@ fast-glob@^3.3.2: merge2 "^1.3.0" micromatch "^4.0.4" -fast-safe-stringify@^2.0.7: - version "2.1.1" - resolved "https://registry.yarnpkg.com/fast-safe-stringify/-/fast-safe-stringify-2.1.1.tgz#c406a83b6e70d9e35ce3b30a81141df30aeba884" - integrity sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA== - fastest-levenshtein@^1.0.16: version "1.0.16" resolved "https://registry.yarnpkg.com/fastest-levenshtein/-/fastest-levenshtein-1.0.16.tgz#210e61b6ff181de91ea9b3d1b84fdedd47e034e5" integrity sha512-eRnCtTTtGZFpQCwhJiUOuxPQWRXVKYDn0b2PeHfXL6/Zi53SLAzAHfVhVWK2AryC/WH05kGfxhFIPvTF0SXQzg== fastq@^1.6.0: - version "1.15.0" - resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.15.0.tgz#d04d07c6a2a68fe4599fea8d2e103a937fae6b3a" - integrity sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw== + version "1.17.1" + resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.17.1.tgz#2a523f07a4e7b1e81a42b91b8bf2254107753b47" + integrity sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w== dependencies: reusify "^1.0.4" -fflate@0.8.0: - version "0.8.0" - resolved "https://registry.yarnpkg.com/fflate/-/fflate-0.8.0.tgz#f93ad1dcbe695a25ae378cf2386624969a7cda32" - integrity sha512-FAdS4qMuFjsJj6XHbBaZeXOgaypXp8iw/Tpyuq/w3XA41jjLHT8NPA+n7czH/DDhdncq0nAyDZmPeWXh2qmdIg== +fflate@0.8.1: + version "0.8.1" + resolved "https://registry.yarnpkg.com/fflate/-/fflate-0.8.1.tgz#1ed92270674d2ad3c73f077cd0acf26486dae6c9" + integrity sha512-/exOvEuc+/iaUm105QIiOt4LpBdMTWsXxqR0HDF35vx3fmaKzw7354gTilCh5rkzEt8WYyG//ku3h3nRmd7CHQ== figures@^2.0.0: version "2.0.0" @@ -6457,9 +6619,9 @@ figures@^5.0.0: is-unicode-supported "^1.2.0" figures@^6.0.0: - version "6.0.1" - resolved "https://registry.yarnpkg.com/figures/-/figures-6.0.1.tgz#75a2baf3ca8c63e2ea253179e9f1157833587ea4" - integrity sha512-0oY/olScYD4IhQ8u//gCPA4F3mlTn2dacYmiDm/mbDQvpmLjV4uH+zhsQ5IyXRyvqkvtUkXkNdGvg5OFJTCsuQ== + version "6.1.0" + resolved "https://registry.yarnpkg.com/figures/-/figures-6.1.0.tgz#935479f51865fa7479f6fa94fc6fc7ac14e62c4a" + integrity sha512-d+l3qxjSesT4V7v2fh+QnmFnUWv9lSpjarhShNTgBOfA0ttejbQUAlHLitbjkoRiDulW0OPoQPYIGhIC8ohejg== dependencies: is-unicode-supported "^2.0.0" @@ -6498,12 +6660,13 @@ find-up@^5.0.0: locate-path "^6.0.0" path-exists "^4.0.0" -find-versions@^5.1.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/find-versions/-/find-versions-5.1.0.tgz#973f6739ce20f5e439a27eba8542a4b236c8e685" - integrity sha512-+iwzCJ7C5v5KgcBuueqVoNiHVoQpwiUK5XFLjf0affFTep+Wcw93tPvmb8tqujDNmzhBDPddnWV/qgWSXgq+Hg== +find-versions@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/find-versions/-/find-versions-6.0.0.tgz#fda285d3bb7c0c098f09e0727c54d31735f0c7d1" + integrity sha512-2kCCtc+JvcZ86IGAz3Z2Y0A1baIz9fL31pH/0S1IqZr9Iwnjq8izfPtrCyQKO6TLMPELLsQMre7VDqeIKCsHkA== dependencies: semver-regex "^4.0.5" + super-regex "^1.0.0" find-yarn-workspace-root2@1.2.16: version "1.2.16" @@ -6513,20 +6676,10 @@ find-yarn-workspace-root2@1.2.16: micromatch "^4.0.2" pkg-dir "^4.2.0" -follow-redirects@^1.14.0: - version "1.15.1" - resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.15.1.tgz#0ca6a452306c9b276e4d3127483e29575e207ad5" - integrity sha512-yLAMQs+k0b2m7cVxpS1VKJVvoz7SS9Td1zss3XRwXj+ZDH00RJgnuLx7E44wx02kQLrdM3aOOy+FpzS7+8OizA== - -follow-redirects@^1.15.0: - version "1.15.2" - resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.15.2.tgz#b460864144ba63f2681096f274c4e57026da2c13" - integrity sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA== - -follow-redirects@^1.15.4: - version "1.15.5" - resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.15.5.tgz#54d4d6d062c0fa7d9d17feb008461550e3ba8020" - integrity sha512-vSFWUON1B+yAw1VN4xMfxgn5fTUiaOzAJCKBwIIgT/+7CuGy9+r+5gITvP62j3RmaD5Ph65UaERdOSRGUzZtgw== +follow-redirects@^1.15.6: + version "1.15.6" + resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.15.6.tgz#7f815c0cda4249c74ff09e95ef97c23b5fd0399b" + integrity sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA== for-each@^0.3.3: version "0.3.3" @@ -6544,18 +6697,9 @@ foreground-child@^3.1.0: signal-exit "^4.0.1" form-data-encoder@^2.1.2: - version "2.1.2" - resolved "https://registry.yarnpkg.com/form-data-encoder/-/form-data-encoder-2.1.2.tgz#5996b7c236e8c418d08316055a2235226c5e4061" - integrity sha512-FCaIOVTRA9E0siY6FeXid7D5yrCqpsErplUkE2a1BEiKj1BE9z6FbKB4ntDTwC4NVLie9p+4E9nX4mWwEOT05A== - -form-data@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/form-data/-/form-data-3.0.1.tgz#ebd53791b78356a99af9a300d4282c4d5eb9755f" - integrity sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg== - dependencies: - asynckit "^0.4.0" - combined-stream "^1.0.8" - mime-types "^2.1.12" + version "2.1.4" + resolved "https://registry.yarnpkg.com/form-data-encoder/-/form-data-encoder-2.1.4.tgz#261ea35d2a70d48d30ec7a9603130fa5515e9cd5" + integrity sha512-yDYSgNMraqvnxiEXO4hi88+YZxaHC6QKzb5N84iRCTDeRO7ZALpir/lVmf/uXUhnwUr2O4HU8s/n6x+yNjQkHw== form-data@^4.0.0: version "4.0.0" @@ -6566,41 +6710,17 @@ form-data@^4.0.0: combined-stream "^1.0.8" mime-types "^2.1.12" -formidable@^1.2.2: - version "1.2.6" - resolved "https://registry.yarnpkg.com/formidable/-/formidable-1.2.6.tgz#d2a51d60162bbc9b4a055d8457a7c75315d1a168" - integrity sha512-KcpbcpuLNOwrEjnbpMC0gS+X8ciDoZE1kkqzat4a8vrprf+s9pKNQ/QIwWfbfs4ltgmFl3MD177SNTkve3BwGQ== - -framer-motion@^10.5.0: - version "10.18.0" - resolved "https://registry.yarnpkg.com/framer-motion/-/framer-motion-10.18.0.tgz#1f4fc51403996ea7170af885bd44a7079d255950" - integrity sha512-oGlDh1Q1XqYPksuTD/usb0I70hq95OUzmL9+6Zd+Hs4XV0oaISBa/UUMSjYiq6m8EUF32132mOJ8xVZS+I0S6w== - dependencies: - tslib "^2.4.0" - optionalDependencies: - "@emotion/is-prop-valid" "^0.8.2" - framer-motion@^7.5.3: - version "7.5.3" - resolved "https://registry.yarnpkg.com/framer-motion/-/framer-motion-7.5.3.tgz#a1de7d6c4abbf7333619d4a6c8df74c12240be43" - integrity sha512-VvANga9Z7bYtKMAsM/je81FwJDHfThOYywN04xVQ4OGdMVY09Bowx/q7nZd6XtytLuv6byc6GT1mYwag+SQ/nw== + version "7.10.3" + resolved "https://registry.yarnpkg.com/framer-motion/-/framer-motion-7.10.3.tgz#8b23f50bbc1ee8c830c869c5398e457d5272feb5" + integrity sha512-k2ccYeZNSpPg//HTaqrU+4pRq9f9ZpaaN7rr0+Rx5zA4wZLbk547wtDzge2db1sB+1mnJ6r59P4xb+aEIi/W+w== dependencies: - "@motionone/dom" "10.13.1" - framesync "6.1.2" + "@motionone/dom" "^10.15.3" hey-listen "^1.0.8" - popmotion "11.0.5" - style-value-types "5.1.2" tslib "2.4.0" optionalDependencies: "@emotion/is-prop-valid" "^0.8.2" -framesync@6.1.2: - version "6.1.2" - resolved "https://registry.yarnpkg.com/framesync/-/framesync-6.1.2.tgz#755eff2fb5b8f3b4d2b266dd18121b300aefea27" - integrity sha512-jBTqhX6KaQVDyus8muwZbBeGGP0XgujBRbQ7gM7BRdS3CadCZIHiawyzYLnafYcvZIh5j8WE7cxZKFn7dXhu9g== - dependencies: - tslib "2.4.0" - from2@^2.3.0: version "2.3.0" resolved "https://registry.yarnpkg.com/from2/-/from2-2.3.0.tgz#8bfb5502bde4a4d36cfdeea007fcca21d7e382af" @@ -6669,35 +6789,20 @@ fs.realpath@^1.0.0: resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" integrity sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw== -fsevents@2.1.2: - version "2.1.2" - resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.1.2.tgz#4c0a1fb34bc68e543b4b82a9ec392bfbda840805" - integrity sha512-R4wDiBwZ0KzpgOWetKDug1FZcYhqYnUYKtfZYt4mD5SBz76q0KR4Q9o7GIPamsVPGmW3EYPPJ0dOOjvx32ldZA== - fsevents@~2.3.2: - version "2.3.2" - resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.2.tgz#8a526f78b8fdf4623b709e0b975c52c24c02fd1a" - integrity sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA== - -function-bind@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" - integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== + version "2.3.3" + resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.3.tgz#cac6407785d03675a2a5e1a5305c697b347d90d6" + integrity sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw== function-bind@^1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.2.tgz#2c02d864d97f3ea6c8830c464cbd11ab6eab7a1c" integrity sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA== -function.prototype.name@^1.1.5: - version "1.1.5" - resolved "https://registry.yarnpkg.com/function.prototype.name/-/function.prototype.name-1.1.5.tgz#cce0505fe1ffb80503e6f9e46cc64e46a12a9621" - integrity sha512-uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA== - dependencies: - call-bind "^1.0.2" - define-properties "^1.1.3" - es-abstract "^1.19.0" - functions-have-names "^1.2.2" +function-timeout@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/function-timeout/-/function-timeout-1.0.1.tgz#fd379f96501e536617a89ae080d44539ed805f63" + integrity sha512-6yPMImFFuaMPNaTMTBuolA8EanHJWF5Vju0NHpObRURT105J6x1Mf2a7J4P7Sqk2xDxv24N5L0RatEhTBhNmdA== function.prototype.name@^1.1.6: version "1.1.6" @@ -6714,25 +6819,11 @@ functional-red-black-tree@^1.0.1: resolved "https://registry.yarnpkg.com/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz#1b0ab3bd553b2a0d6399d29c0e3ea0b252078327" integrity sha512-dsKNQNdj6xA3T+QlADDA7mOSlX0qiMINjn0cgr+eGHGsbSHzTabcIogz2+p/iqP1Xs6EP/sS2SbqH+brGTbq0g== -functions-have-names@^1.2.2, functions-have-names@^1.2.3: +functions-have-names@^1.2.3: version "1.2.3" resolved "https://registry.yarnpkg.com/functions-have-names/-/functions-have-names-1.2.3.tgz#0404fe4ee2ba2f607f0e0ec3c80bae994133b834" integrity sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ== -gauge@^5.0.0: - version "5.0.1" - resolved "https://registry.yarnpkg.com/gauge/-/gauge-5.0.1.tgz#1efc801b8ff076b86ef3e9a7a280a975df572112" - integrity sha512-CmykPMJGuNan/3S4kZOpvvPYSNqSHANiWnh9XcMU2pSjtBfF0XzZ2p1bFAxTbnFxyBuPxQYHhzwaoOmUdqzvxQ== - dependencies: - aproba "^1.0.3 || ^2.0.0" - color-support "^1.1.3" - console-control-strings "^1.1.0" - has-unicode "^2.0.1" - signal-exit "^4.0.1" - string-width "^4.2.3" - strip-ansi "^6.0.1" - wide-align "^1.1.5" - gensync@^1.0.0-beta.2: version "1.0.0-beta.2" resolved "https://registry.yarnpkg.com/gensync/-/gensync-1.0.0-beta.2.tgz#32a6ee76c3d7f52d46b2b1ae5d93fea8580a25e0" @@ -6743,16 +6834,7 @@ get-caller-file@^2.0.1, get-caller-file@^2.0.5: resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== -get-intrinsic@^1.0.2, get-intrinsic@^1.1.0, get-intrinsic@^1.1.1, get-intrinsic@^1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.1.2.tgz#336975123e05ad0b7ba41f152ee4aadbea6cf598" - integrity sha512-Jfm3OyCxHh9DJyc28qGk+JmfkpO41A4XkneDSujN9MDXrm4oDKdHvndhZ2dN94+ERNfkYJWDclW6k2L/ZGHjXA== - dependencies: - function-bind "^1.1.1" - has "^1.0.3" - has-symbols "^1.0.3" - -get-intrinsic@^1.1.3, get-intrinsic@^1.2.1, get-intrinsic@^1.2.2, get-intrinsic@^1.2.3: +get-intrinsic@^1.1.3, get-intrinsic@^1.2.1, get-intrinsic@^1.2.3, get-intrinsic@^1.2.4: version "1.2.4" resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.2.4.tgz#e385f5a4b5227d449c3eabbad05494ef0abbeadd" integrity sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ== @@ -6783,13 +6865,14 @@ get-stream@^8.0.1: resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-8.0.1.tgz#def9dfd71742cd7754a7761ed43749a27d02eca2" integrity sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA== -get-symbol-description@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/get-symbol-description/-/get-symbol-description-1.0.0.tgz#7fdb81c900101fbd564dd5f1a30af5aadc1e58d6" - integrity sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw== +get-symbol-description@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/get-symbol-description/-/get-symbol-description-1.0.2.tgz#533744d5aa20aca4e079c8e5daf7fd44202821f5" + integrity sha512-g0QYk1dZBxGwk+Ngc+ltRH2IBp2f7zBkBMBJZCDerh6EhlhSR6+9irMCuT/09zD6qkarHUSn529sK/yL4S27mg== dependencies: - call-bind "^1.0.2" - get-intrinsic "^1.1.1" + call-bind "^1.0.5" + es-errors "^1.3.0" + get-intrinsic "^1.2.4" git-log-parser@^1.2.0: version "1.2.0" @@ -6815,30 +6898,18 @@ glob-parent@^5.1.2, glob-parent@~5.1.2: dependencies: is-glob "^4.0.1" -glob@7.1.6: - version "7.1.6" - resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.6.tgz#141f33b81a7c2492e125594307480c46679278a6" - integrity sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA== - dependencies: - fs.realpath "^1.0.0" - inflight "^1.0.4" - inherits "2" - minimatch "^3.0.4" - once "^1.3.0" - path-is-absolute "^1.0.0" - -glob@^10.2.2, glob@^10.3.10: - version "10.3.10" - resolved "https://registry.yarnpkg.com/glob/-/glob-10.3.10.tgz#0351ebb809fd187fe421ab96af83d3a70715df4b" - integrity sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g== +glob@^10.2.2, glob@^10.3.10, glob@^10.3.12: + version "10.3.12" + resolved "https://registry.yarnpkg.com/glob/-/glob-10.3.12.tgz#3a65c363c2e9998d220338e88a5f6ac97302960b" + integrity sha512-TCNv8vJ+xz4QiqTpfOJA7HvYv+tNIRHKfUWw/q+v2jdgN4ebz+KY9tGx5J4rHP0o84mNP+ApH66HRX8us3Khqg== dependencies: foreground-child "^3.1.0" - jackspeak "^2.3.5" + jackspeak "^2.3.6" minimatch "^9.0.1" - minipass "^5.0.0 || ^6.0.2 || ^7.0.0" - path-scurry "^1.10.1" + minipass "^7.0.4" + path-scurry "^1.10.2" -glob@^7.1.3, glob@^7.1.4: +glob@^7.1.4, glob@^7.2.3: version "7.2.3" resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.3.tgz#b8df0fb802bbfa8e89bd1d938b4e16578ed44f2b" integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q== @@ -6856,18 +6927,19 @@ globals@^11.1.0: integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA== globals@^13.2.0: - version "13.20.0" - resolved "https://registry.yarnpkg.com/globals/-/globals-13.20.0.tgz#ea276a1e508ffd4f1612888f9d1bad1e2717bf82" - integrity sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ== + version "13.24.0" + resolved "https://registry.yarnpkg.com/globals/-/globals-13.24.0.tgz#8432a19d78ce0c1e833949c36adb345400bb1171" + integrity sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ== dependencies: type-fest "^0.20.2" globalthis@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/globalthis/-/globalthis-1.0.3.tgz#5852882a52b80dc301b0660273e1ed082f0b6ccf" - integrity sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA== + version "1.0.4" + resolved "https://registry.yarnpkg.com/globalthis/-/globalthis-1.0.4.tgz#7430ed3a975d97bfb59bcce41f5cabbafa651236" + integrity sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ== dependencies: - define-properties "^1.1.3" + define-properties "^1.2.1" + gopd "^1.0.1" globby@^11.0.0, globby@^11.0.3: version "11.1.0" @@ -6882,11 +6954,11 @@ globby@^11.0.0, globby@^11.0.3: slash "^3.0.0" globby@^14.0.0: - version "14.0.0" - resolved "https://registry.yarnpkg.com/globby/-/globby-14.0.0.tgz#ea9c062a3614e33f516804e778590fcf055256b9" - integrity sha512-/1WM/LNHRAOH9lZta77uGbq0dAEQM+XjNesWwhlERDVenqothRbnzTrL3/LrIoEPPjeUHC3vrS6TwoyxeHs7MQ== + version "14.0.1" + resolved "https://registry.yarnpkg.com/globby/-/globby-14.0.1.tgz#a1b44841aa7f4c6d8af2bc39951109d77301959b" + integrity sha512-jOMLD2Z7MAhyG8aJpNOpmziMOP4rPLcc95oQPKXBazW82z+CEgPFBQvEpRUa1KeIMUJo4Wsm+q6uzO/Q/4BksQ== dependencies: - "@sindresorhus/merge-streams" "^1.0.0" + "@sindresorhus/merge-streams" "^2.1.0" fast-glob "^3.3.2" ignore "^5.2.4" path-type "^5.0.0" @@ -6918,9 +6990,9 @@ got@13.0.0: responselike "^3.0.0" got@^12.1.0: - version "12.6.0" - resolved "https://registry.yarnpkg.com/got/-/got-12.6.0.tgz#8d382ee5de4432c086e83c133efdd474484f6ac7" - integrity sha512-WTcaQ963xV97MN3x0/CbAriXFZcXCfgxVp91I+Ze6pawQOa7SgzwSx2zIJJsX+kTajMnVs0xcFD1TxZKFqhdnQ== + version "12.6.1" + resolved "https://registry.yarnpkg.com/got/-/got-12.6.1.tgz#8869560d1383353204b5a9435f782df9c091f549" + integrity sha512-mThBblvlAF1d4O5oqyvN+ZxLAYwIJK7bpMxgYqPD9okW0C3qm5FFn7k811QrcuEBwaogR3ngOFoCfs6mRv7teQ== dependencies: "@sindresorhus/is" "^5.2.0" "@szmarczak/http-timer" "^5.0.1" @@ -6934,12 +7006,12 @@ got@^12.1.0: p-cancelable "^3.0.0" responselike "^3.0.0" -graceful-fs@4.2.10, graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.2.0: +graceful-fs@4.2.10: version "4.2.10" resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.10.tgz#147d3a006da4ca3ce14728c7aefc287c367d7a6c" integrity sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA== -graceful-fs@^4.1.5, graceful-fs@^4.2.11, graceful-fs@^4.2.6: +graceful-fs@^4.1.2, graceful-fs@^4.1.5, graceful-fs@^4.1.6, graceful-fs@^4.2.0, graceful-fs@^4.2.11, graceful-fs@^4.2.6: version "4.2.11" resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.11.tgz#4183e4e8bf08bb6e05bbb2f7d2e0c8f712ca40e3" integrity sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ== @@ -6993,56 +7065,30 @@ has-flag@^4.0.0: resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== -has-property-descriptors@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz#610708600606d36961ed04c196193b6a607fa861" - integrity sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ== - dependencies: - get-intrinsic "^1.1.1" - -has-property-descriptors@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/has-property-descriptors/-/has-property-descriptors-1.0.1.tgz#52ba30b6c5ec87fd89fa574bc1c39125c6f65340" - integrity sha512-VsX8eaIewvas0xnvinAe9bw4WfIeODpGYikiWYLH+dma0Jw6KHYqWiWfhQlgOVK8D6PvjubK5Uc4P0iIhIcNVg== +has-property-descriptors@^1.0.0, has-property-descriptors@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz#963ed7d071dc7bf5f084c5bfbe0d1b6222586854" + integrity sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg== dependencies: - get-intrinsic "^1.2.2" + es-define-property "^1.0.0" -has-proto@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/has-proto/-/has-proto-1.0.1.tgz#1885c1305538958aff469fef37937c22795408e0" - integrity sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg== +has-proto@^1.0.1, has-proto@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/has-proto/-/has-proto-1.0.3.tgz#b31ddfe9b0e6e9914536a6ab286426d0214f77fd" + integrity sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q== has-symbols@^1.0.2, has-symbols@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.3.tgz#bb7b2c4349251dce87b125f7bdf874aa7c8b39f8" integrity sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A== -has-tostringtag@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/has-tostringtag/-/has-tostringtag-1.0.0.tgz#7e133818a7d394734f941e73c3d3f9291e658b25" - integrity sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ== - dependencies: - has-symbols "^1.0.2" - -has-tostringtag@^1.0.1: +has-tostringtag@^1.0.0, has-tostringtag@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/has-tostringtag/-/has-tostringtag-1.0.2.tgz#2cdc42d40bef2e5b4eeab7c01a73c54ce7ab5abc" integrity sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw== dependencies: has-symbols "^1.0.3" -has-unicode@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/has-unicode/-/has-unicode-2.0.1.tgz#e0e6fe6a28cf51138855e086d1691e771de2a8b9" - integrity sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ== - -has@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796" - integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw== - dependencies: - function-bind "^1.1.1" - hash-base@^3.0.0: version "3.1.0" resolved "https://registry.yarnpkg.com/hash-base/-/hash-base-3.1.0.tgz#55c381d9e06e1d2997a883b4a3fddfe7f0d3af33" @@ -7052,6 +7098,14 @@ hash-base@^3.0.0: readable-stream "^3.6.0" safe-buffer "^5.2.0" +hash-base@~3.0: + version "3.0.4" + resolved "https://registry.yarnpkg.com/hash-base/-/hash-base-3.0.4.tgz#5fc8686847ecd73499403319a6b0a3f3f6ae4918" + integrity sha512-EeeoJKjTyt868liAlVmcv2ZsUfGHlE3Q+BICOXcZiwN3osr5Q/zFGYmTJpoIzuaSTAwndFy+GqhEwlU4L3j4Ow== + dependencies: + inherits "^2.0.1" + safe-buffer "^5.0.1" + hash.js@1.1.7, hash.js@^1.0.0, hash.js@^1.0.3, hash.js@^1.1.7: version "1.1.7" resolved "https://registry.yarnpkg.com/hash.js/-/hash.js-1.1.7.tgz#0babca538e8d4ee4a0f8988d68866537a003cf42" @@ -7060,21 +7114,13 @@ hash.js@1.1.7, hash.js@^1.0.0, hash.js@^1.0.3, hash.js@^1.1.7: inherits "^2.0.3" minimalistic-assert "^1.0.1" -hasown@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/hasown/-/hasown-2.0.0.tgz#f4c513d454a57b7c7e1650778de226b11700546c" - integrity sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA== +hasown@^2.0.0, hasown@^2.0.1, hasown@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/hasown/-/hasown-2.0.2.tgz#003eaf91be7adc372e84ec59dc37252cedb80003" + integrity sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ== dependencies: function-bind "^1.1.2" -header-case@^2.0.4: - version "2.0.4" - resolved "https://registry.yarnpkg.com/header-case/-/header-case-2.0.4.tgz#5a42e63b55177349cf405beb8d775acabb92c063" - integrity sha512-H/vuk5TEEVZwrR0lp2zed9OCo1uAILMlx0JEMgC26rzyJJ3N1v6XkwHHXJQdR2doSjcGPM6OKPYoJgf0plJ11Q== - dependencies: - capital-case "^1.0.4" - tslib "^2.0.3" - hey-listen@^1.0.8: version "1.0.8" resolved "https://registry.yarnpkg.com/hey-listen/-/hey-listen-1.0.8.tgz#8e59561ff724908de1aa924ed6ecc84a56a9aa68" @@ -7085,6 +7131,11 @@ hi-base32@^0.5.1: resolved "https://registry.yarnpkg.com/hi-base32/-/hi-base32-0.5.1.tgz#1279f2ddae2673219ea5870c2121d2a33132857e" integrity sha512-EmBBpvdYh/4XxsnUybsPag6VikPYnN30td+vQk+GI3qpahVEG9+gTkG0aXVxTjBqQ5T6ijbWIu77O+C5WFWsnA== +highlight.js@^10.7.1: + version "10.7.3" + resolved "https://registry.yarnpkg.com/highlight.js/-/highlight.js-10.7.3.tgz#697272e3991356e40c3cac566a74eef681756531" + integrity sha512-tzcUFauisWKNHaRkN4Wjl/ZA07gENAjFl3J/c480dprkGTg5EQstgaNFqBfUqCq54kZRIEcreTsAgF/m2quD7A== + hmac-drbg@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/hmac-drbg/-/hmac-drbg-1.0.1.tgz#d2745701025a6c775a6c545793ed502fc0c649a1" @@ -7119,11 +7170,11 @@ hosted-git-info@^7.0.0, hosted-git-info@^7.0.1: lru-cache "^10.0.1" htmlnano@^2.0.0: - version "2.0.4" - resolved "https://registry.yarnpkg.com/htmlnano/-/htmlnano-2.0.4.tgz#315108063ed0bb6a16ccb53ad1b601f02d3fe721" - integrity sha512-WGCkyGFwjKW1GeCBsPYacMvaMnZtFJ0zIRnC2NCddkA+IOEhTqskXrS7lep+3yYZw/nQ3dW1UAX4yA/GJyR8BA== + version "2.1.1" + resolved "https://registry.yarnpkg.com/htmlnano/-/htmlnano-2.1.1.tgz#9ba84e145cd8b7cd4c783d9ab8ff46a80e79b59b" + integrity sha512-kAERyg/LuNZYmdqgCdYvugyLWNFAm8MWXpQMz1pLpetmCbFwoMxvkSoaAMlFrOC4OKTWI4KlZGT/RsNxg4ghOw== dependencies: - cosmiconfig "^8.0.0" + cosmiconfig "^9.0.0" posthtml "^0.16.5" timsort "^0.3.0" @@ -7143,17 +7194,17 @@ http-cache-semantics@^4.1.1: integrity sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ== http-proxy-agent@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/http-proxy-agent/-/http-proxy-agent-7.0.0.tgz#e9096c5afd071a3fce56e6252bb321583c124673" - integrity sha512-+ZT+iBxVUQ1asugqnD6oWoRiS25AkjNfG085dKJGtGxkdwLQrMKU5wJr2bOOFAXzKcTuqq+7fZlTMgG3SRfIYQ== + version "7.0.2" + resolved "https://registry.yarnpkg.com/http-proxy-agent/-/http-proxy-agent-7.0.2.tgz#9a8b1f246866c028509486585f62b8f2c18c270e" + integrity sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig== dependencies: agent-base "^7.1.0" debug "^4.3.4" http2-wrapper@^2.1.10: - version "2.1.11" - resolved "https://registry.yarnpkg.com/http2-wrapper/-/http2-wrapper-2.1.11.tgz#d7c980c7ffb85be3859b6a96c800b2951ae257ef" - integrity sha512-aNAk5JzLturWEUiuhAN73Jcbq96R7rTitAoXV54FYMatvihnpD2+6PUgU4ce3D/m5VDbw+F5CsyKSF176ptitQ== + version "2.2.1" + resolved "https://registry.yarnpkg.com/http2-wrapper/-/http2-wrapper-2.2.1.tgz#310968153dcdedb160d8b72114363ef5fce1f64a" + integrity sha512-V5nVw1PAOgfI3Lmeaj2Exmeg7fenjhRUgz1lPSezy1CuhPYbgQtbQj4jZfEAEMlaL+vupsvhjqCyjzob0yxsmQ== dependencies: quick-lru "^5.1.1" resolve-alpn "^1.2.0" @@ -7164,9 +7215,9 @@ https-browserify@^1.0.0: integrity sha512-J+FkSdyD+0mA0N+81tMotaRMfSL9SGi+xpD3T6YApKsc3bGSXJlfXri3VyFOeYkfLRQisDk1W+jIFFKBeUBbBg== https-proxy-agent@^7.0.0, https-proxy-agent@^7.0.1: - version "7.0.2" - resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-7.0.2.tgz#e2645b846b90e96c6e6f347fb5b2e41f1590b09b" - integrity sha512-NmLNjm6ucYwtcUmL7JQC1ZQ57LmHP4lT15FQ8D61nak1rO6DH+fz5qNK2Ap5UN4ZapYICE3/0KodcLYSPsPbaA== + version "7.0.4" + resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-7.0.4.tgz#8e97b841a029ad8ddc8731f26595bad868cb4168" + integrity sha512-wlwpilI7YdjSkWaQ/7omYBMTliDcmCN8OLihO6I9B86g06lMyAoqgoDpV0XqoaPOKj+0DIdAvnsWfyAAhmimcg== dependencies: agent-base "^7.0.2" debug "4" @@ -7199,9 +7250,9 @@ human-signals@^5.0.0: integrity sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ== husky@^8.0.0: - version "8.0.1" - resolved "https://registry.yarnpkg.com/husky/-/husky-8.0.1.tgz#511cb3e57de3e3190514ae49ed50f6bc3f50b3e9" - integrity sha512-xs7/chUH/CKdOCs7Zy0Aev9e/dKOMZf3K1Az1nar3tzlv0jfqnYtu235bstsWTmXOR0EfINrPa97yy4Lz6RiKw== + version "8.0.3" + resolved "https://registry.yarnpkg.com/husky/-/husky-8.0.3.tgz#4936d7212e46d1dea28fef29bb3a108872cd9184" + integrity sha512-+dQSyqPh4x1hlO1swXBiNb2HzTDN1I2IGLQx1GrBuiqFJfoMrnZWwVmatvSiO+Iz8fBUnf+lekwNo4c2LlXItg== hyper-async@^1.1.2: version "1.1.2" @@ -7234,15 +7285,15 @@ ignore-walk@^6.0.4: dependencies: minimatch "^9.0.0" -ignore@5.2.4, ignore@^5.2.0: +ignore@5.2.4: version "5.2.4" resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.2.4.tgz#a291c0c6178ff1b960befe47fcdec301674a6324" integrity sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ== -ignore@^5.2.4: - version "5.3.0" - resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.3.0.tgz#67418ae40d34d6999c95ff56016759c718c82f78" - integrity sha512-g7dmpshy+gD7mh88OC9NwSGTKoc3kyLAZQRU1mt53Aw/vnvfXnbC+F/7F7QoYVKbV+KNvJx8wArewKy1vXMtlg== +ignore@^5.2.0, ignore@^5.2.4: + version "5.3.1" + resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.3.1.tgz#5073e554cd42c5b33b394375f538b8593e34d4ef" + integrity sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw== image-size@~0.5.0: version "0.5.5" @@ -7250,9 +7301,9 @@ image-size@~0.5.0: integrity sha512-6TDAlDPZxUFCv+fuOkIoXT/V/f3Qbq8e37p+YOiYrUv3v9cc3/6x78VdfPgFVaB9dZYeLUfKgHRebpkm/oP2VQ== immutable@^4.0.0: - version "4.3.1" - resolved "https://registry.yarnpkg.com/immutable/-/immutable-4.3.1.tgz#17988b356097ab0719e2f741d56f3ec6c317f9dc" - integrity sha512-lj9cnmB/kVS0QHsJnYKD1uo3o39nrbKxszjnqS9Fr6NB7bZzW45U6WSGBPKXDL/CvDKqDNPA4r3DoDQ8GTxo2A== + version "4.3.5" + resolved "https://registry.yarnpkg.com/immutable/-/immutable-4.3.5.tgz#f8b436e66d59f99760dc577f5c99a4fd2a5cc5a0" + integrity sha512-8eabxkth9gZatlwl5TBuJnCsoTADlL6ftEr7A4qgdaTsPyreilDSnUk57SO+jfKcNtxPa22U5KK6DSeAYhpBJw== import-fresh@^3.2.1, import-fresh@^3.3.0: version "3.3.0" @@ -7263,17 +7314,17 @@ import-fresh@^3.2.1, import-fresh@^3.3.0: resolve-from "^4.0.0" import-from-esm@^1.0.3, import-from-esm@^1.3.1: - version "1.3.3" - resolved "https://registry.yarnpkg.com/import-from-esm/-/import-from-esm-1.3.3.tgz#eea1c4ad86a54bf425b3b71fca56d50215ccc6b7" - integrity sha512-U3Qt/CyfFpTUv6LOP2jRTLYjphH6zg3okMfHbyqRa/W2w6hr8OsJWVggNlR4jxuojQy81TgTJTxgSkyoteRGMQ== + version "1.3.4" + resolved "https://registry.yarnpkg.com/import-from-esm/-/import-from-esm-1.3.4.tgz#39e97c84085e308fe66cf872a667046b45449df0" + integrity sha512-7EyUlPFC0HOlBDpUFGfYstsU7XHxZJKAAMzCT8wZ0hMW7b+hG51LIKTDcsgtz8Pu6YC0HqRVbX+rVUtsGMUKvg== dependencies: debug "^4.3.4" import-meta-resolve "^4.0.0" import-meta-resolve@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/import-meta-resolve/-/import-meta-resolve-4.0.0.tgz#0b1195915689f60ab00f830af0f15cc841e8919e" - integrity sha512-okYUR7ZQPH+efeuMJGlq4f8ubUgO50kByRPyt/Cy1Io4PSRsPjxME+YlVaCOx+NIToW7hCsZNFJyTPFFKepRSA== + version "4.1.0" + resolved "https://registry.yarnpkg.com/import-meta-resolve/-/import-meta-resolve-4.1.0.tgz#f9db8bead9fafa61adb811db77a2bf22c5399706" + integrity sha512-I6fiaX09Xivtk+THaMfAwnA3MVA5Big1WHF1Dfx9hFuvNIWpXnorlkzhcQf6ehrqQiiZECRt1poOAkPmer3ruw== imurmurhash@^0.1.4: version "0.1.4" @@ -7313,34 +7364,35 @@ ini@^1.3.4, ini@~1.3.0: resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.8.tgz#a29da425b48806f34767a4efce397269af28432c" integrity sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew== -ini@^4.1.0, ini@^4.1.1: - version "4.1.1" - resolved "https://registry.yarnpkg.com/ini/-/ini-4.1.1.tgz#d95b3d843b1e906e56d6747d5447904ff50ce7a1" - integrity sha512-QQnnxNyfvmHFIsj7gkPcYymR8Jdw/o7mp5ZFihxn6h8Ci6fh3Dx4E1gPjpQEpIuPo9XVNY/ZUwh4BPMjGyL01g== +ini@^4.1.2: + version "4.1.2" + resolved "https://registry.yarnpkg.com/ini/-/ini-4.1.2.tgz#7f646dbd9caea595e61f88ef60bfff8b01f8130a" + integrity sha512-AMB1mvwR1pyBFY/nSevUX6y8nJWS63/SzUKD3JyQn97s4xgIdgQPT75IRouIiBAN4yLQBUShNYVW0+UG25daCw== -init-package-json@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/init-package-json/-/init-package-json-6.0.0.tgz#7d4daeaacc72be300c616481e5c155d5048a18b4" - integrity sha512-AmXD+Aht5iZGo/y1KUtZSUQ1SltesXHxQuc7qeNz0eUGx/8WgkHeeQLSFdM8l9YpmnnamGIbAxVdAs2xoLRKRQ== +init-package-json@^6.0.2: + version "6.0.2" + resolved "https://registry.yarnpkg.com/init-package-json/-/init-package-json-6.0.2.tgz#0d780b752dd1dd83b8649945df38a07df4f990a6" + integrity sha512-ZQ9bxt6PkqIH6fPU69HPheOMoUqIqVqwZj0qlCBfoSCG4lplQhVM/qB3RS4f0RALK3WZZSrNQxNtCZgphuf3IA== dependencies: + "@npmcli/package-json" "^5.0.0" npm-package-arg "^11.0.0" promzard "^1.0.0" - read "^2.0.0" - read-package-json "^7.0.0" + read "^3.0.1" semver "^7.3.5" validate-npm-package-license "^3.0.4" validate-npm-package-name "^5.0.0" -inquirer@9.2.8: - version "9.2.8" - resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-9.2.8.tgz#35481704912c5a15985c380fd5493a8e6651b14e" - integrity sha512-SJ0fVfgIzZL1AD6WvFhivlh5/3hN6WeAvpvPrpPXH/8MOcQHeXhinmSm5CDJNRC2Q+sLh9YJ5k8F8/5APMXSfw== +inquirer@9.2.12: + version "9.2.12" + resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-9.2.12.tgz#0348e9311765b7c93fce143bb1c0ef1ae879b1d7" + integrity sha512-mg3Fh9g2zfuVWJn6lhST0O7x4n03k7G8Tx5nvikJkbq8/CK47WDVm+UznF0G6s5Zi0KcyUisr6DU8T67N5U+1Q== dependencies: + "@ljharb/through" "^2.3.11" ansi-escapes "^4.3.2" chalk "^5.3.0" cli-cursor "^3.1.0" - cli-width "^4.0.0" - external-editor "^3.0.3" + cli-width "^4.1.0" + external-editor "^3.1.0" figures "^5.0.0" lodash "^4.17.21" mute-stream "1.0.0" @@ -7349,19 +7401,9 @@ inquirer@9.2.8: rxjs "^7.8.1" string-width "^4.2.3" strip-ansi "^6.0.1" - through "^2.3.6" - wrap-ansi "^6.0.1" - -internal-slot@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/internal-slot/-/internal-slot-1.0.3.tgz#7347e307deeea2faac2ac6205d4bc7d34967f59c" - integrity sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA== - dependencies: - get-intrinsic "^1.1.0" - has "^1.0.3" - side-channel "^1.0.4" + wrap-ansi "^6.2.0" -internal-slot@^1.0.5: +internal-slot@^1.0.7: version "1.0.7" resolved "https://registry.yarnpkg.com/internal-slot/-/internal-slot-1.0.7.tgz#c06dcca3ed874249881007b0a5523b172a190802" integrity sha512-NGnrKwXzSms2qUUih/ILZ5JBqNTSa1+ZmP6flaIp6KmSElgE9qdndzS3cqjrDovwFdmwsGsLdeFgB6suw+1e9g== @@ -7378,16 +7420,19 @@ into-stream@^7.0.0: from2 "^2.3.0" p-is-promise "^3.0.0" +ip-address@^9.0.5: + version "9.0.5" + resolved "https://registry.yarnpkg.com/ip-address/-/ip-address-9.0.5.tgz#117a960819b08780c3bd1f14ef3c1cc1d3f3ea5a" + integrity sha512-zHtQzGojZXTwZTHQqra+ETKd4Sn3vgi7uBmlPoXVWZqYvuKmtI0l/VZTjqGmJY9x88GGOaZ9+G9ES8hC4T4X8g== + dependencies: + jsbn "1.1.0" + sprintf-js "^1.1.3" + ip-regex@^5.0.0: version "5.0.0" resolved "https://registry.yarnpkg.com/ip-regex/-/ip-regex-5.0.0.tgz#cd313b2ae9c80c07bd3851e12bf4fa4dc5480632" integrity sha512-fOCG6lhoKKakwv+C6KdsOnGvgXnmgfmp0myi3bcNwj3qfwPAxRKWEuFhvEFF7ceYIz6+1jRZ+yguLFAmUNPEfw== -ip@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/ip/-/ip-2.0.0.tgz#4cf4ab182fee2314c75ede1276f8c80b479936da" - integrity sha512-WKa+XuLG1A1R0UWhl2+1XQSi+fZWMsYKffMZTTYsiZaUD8k2yDAj5atimTUD2TZkyCkNEeYE5NhFZmupOGtjYQ== - is-arguments@^1.0.4: version "1.1.1" resolved "https://registry.yarnpkg.com/is-arguments/-/is-arguments-1.1.1.tgz#15b3f88fda01f2a97fec84ca761a560f123efa9b" @@ -7396,7 +7441,7 @@ is-arguments@^1.0.4: call-bind "^1.0.2" has-tostringtag "^1.0.0" -is-array-buffer@^3.0.2, is-array-buffer@^3.0.4: +is-array-buffer@^3.0.4: version "3.0.4" resolved "https://registry.yarnpkg.com/is-array-buffer/-/is-array-buffer-3.0.4.tgz#7a1f92b3d61edd2bc65d24f130530ea93d7fae98" integrity sha512-wcjaerHw0ydZwfhiKbXJWLDY8A7yV7KhjQOpb83hGgGfId/aQa4TOvwyzn2PuswW2gPCYEL/nEAiSVpdOj1lXw== @@ -7441,29 +7486,17 @@ is-buffer@^2.0.5: resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-2.0.5.tgz#ebc252e400d22ff8d77fa09888821a24a658c191" integrity sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ== -is-callable@^1.1.3, is-callable@^1.1.4, is-callable@^1.2.4: - version "1.2.4" - resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.4.tgz#47301d58dd0259407865547853df6d61fe471945" - integrity sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w== - -is-callable@^1.2.7: +is-callable@^1.1.3, is-callable@^1.1.4, is-callable@^1.2.7: version "1.2.7" resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.7.tgz#3bc2a85ea742d9e36205dcacdd72ca1fdc51b055" integrity sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA== -is-cidr@^5.0.3: - version "5.0.3" - resolved "https://registry.yarnpkg.com/is-cidr/-/is-cidr-5.0.3.tgz#fcf817c0146dd4a318f27938af89e98a9b21bdd5" - integrity sha512-lKkM0tmz07dAxNsr8Ii9MGreExa9ZR34N9j8mTG5op824kcwBqinZPowNjcVWWc7j+jR8XAMMItOmBkniN0jOA== - dependencies: - cidr-regex "4.0.3" - -is-core-module@^2.11.0: - version "2.12.1" - resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.12.1.tgz#0c0b6885b6f80011c71541ce15c8d66cf5a4f9fd" - integrity sha512-Q4ZuBAe2FUsKtyQJoQHlvP8OvBERxO3jEmy1I7hcRXcJBGGHFh/aJBswbXuS9sgrDH2QUO8ilkwNPHvHMd8clg== +is-cidr@^5.0.5: + version "5.0.5" + resolved "https://registry.yarnpkg.com/is-cidr/-/is-cidr-5.0.5.tgz#6898e3e84a320cecaa505654b33463399baf9e8e" + integrity sha512-zDlCvz2v8dBpumuGD4/fc7wzFKY6UYOvFW29JWSstdJoByGN3TKwS0tFA9VWc7DM01VOVOn/DaR84D8Mihp9Rg== dependencies: - has "^1.0.3" + cidr-regex "^4.0.4" is-core-module@^2.13.0, is-core-module@^2.8.1: version "2.13.1" @@ -7472,6 +7505,13 @@ is-core-module@^2.13.0, is-core-module@^2.8.1: dependencies: hasown "^2.0.0" +is-data-view@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-data-view/-/is-data-view-1.0.1.tgz#4b4d3a511b70f3dc26d42c03ca9ca515d847759f" + integrity sha512-AHkaJrsUVW6wq6JS8y3JnM/GJF/9cf+k20+iDzlSaJrinEo5+7vRiteOSwBhHRiAyQATN1AmY4hwzxJKPmYf+w== + dependencies: + is-typed-array "^1.1.13" + is-date-object@^1.0.1: version "1.0.5" resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.5.tgz#0841d5536e724c25597bf6ea62e1bd38298df31f" @@ -7518,7 +7558,7 @@ is-lambda@^1.0.1: resolved "https://registry.yarnpkg.com/is-lambda/-/is-lambda-1.0.1.tgz#3d9877899e6a53efc0160504cde15f82e6f061d5" integrity sha512-z7CMFGNrENq5iFB9Bqo64Xk6Y9sg+epq1myIcdHaGnbMTYOxvzsEtdYqQUylB7LxfkvgrrjP32T6Ywciio9UIQ== -is-nan@^1.2.1: +is-nan@^1.3.2: version "1.3.2" resolved "https://registry.yarnpkg.com/is-nan/-/is-nan-1.3.2.tgz#043a54adea31748b55b6cd4e09aadafa69bd9e1d" integrity sha512-E+zBKpQ2t6MEo1VsonYmluk9NxGrbzpeeLC2xIViuO2EjU2xsXsBPwTr3Ykv9l08UYEVEdWeRZNouaZqF6RN0w== @@ -7526,10 +7566,10 @@ is-nan@^1.2.1: call-bind "^1.0.0" define-properties "^1.1.3" -is-negative-zero@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/is-negative-zero/-/is-negative-zero-2.0.2.tgz#7bf6f03a28003b8b3965de3ac26f664d765f3150" - integrity sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA== +is-negative-zero@^2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/is-negative-zero/-/is-negative-zero-2.0.3.tgz#ced903a027aca6381b777a5743069d7376a49747" + integrity sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw== is-number-object@^1.0.4: version "1.0.7" @@ -7566,9 +7606,9 @@ is-plain-object@^2.0.1, is-plain-object@^2.0.4: isobject "^3.0.1" is-reference@^3.0.0, is-reference@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/is-reference/-/is-reference-3.0.1.tgz#d400f4260f7e55733955e60d361d827eb4d3b831" - integrity sha512-baJJdQLiYaJdvFbJqXrcGv3WU3QCzBlUcI5QhbesIm6/xPsvmO+2CDoi/GMOFBQEQm+PXkwOPrp9KK5ozZsp2w== + version "3.0.2" + resolved "https://registry.yarnpkg.com/is-reference/-/is-reference-3.0.2.tgz#154747a01f45cd962404ee89d43837af2cba247c" + integrity sha512-v3rht/LgVcsdZa3O2Nqs+NMowLOxeOm7Ay9+/ARQ2F+qEoANRcqrjAZKGN0v8ymUetZGgkp26LTnGT7H0Qo9Pg== dependencies: "@types/estree" "*" @@ -7580,12 +7620,12 @@ is-regex@^1.1.4: call-bind "^1.0.2" has-tostringtag "^1.0.0" -is-shared-array-buffer@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz#8f259c573b60b6a32d4058a1a07430c0a7344c79" - integrity sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA== +is-shared-array-buffer@^1.0.2, is-shared-array-buffer@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/is-shared-array-buffer/-/is-shared-array-buffer-1.0.3.tgz#1237f1cba059cdb62431d378dcc37d9680181688" + integrity sha512-nA2hv5XIhLR3uVzDDfCIknerhx8XUKnstuOERPNNIinXG7v9u+ohXF67vxm4TPTEPU6lm61ZkwP3c9PCB97rhg== dependencies: - call-bind "^1.0.2" + call-bind "^1.0.7" is-stream@^2.0.0: version "2.0.1" @@ -7625,24 +7665,13 @@ is-text-path@^2.0.0: dependencies: text-extensions "^2.0.0" -is-typed-array@^1.1.10, is-typed-array@^1.1.12, is-typed-array@^1.1.13: +is-typed-array@^1.1.13, is-typed-array@^1.1.3: version "1.1.13" resolved "https://registry.yarnpkg.com/is-typed-array/-/is-typed-array-1.1.13.tgz#d6c5ca56df62334959322d7d7dd1cca50debe229" integrity sha512-uZ25/bUAlUY5fR4OKT4rZQEBrzQWYV9ZJYGGsUmEJ6thodVJ1HX64ePQ6Z0qPWP+m+Uq6e9UugrE38jeYsDSMw== dependencies: which-typed-array "^1.1.14" -is-typed-array@^1.1.3, is-typed-array@^1.1.9: - version "1.1.9" - resolved "https://registry.yarnpkg.com/is-typed-array/-/is-typed-array-1.1.9.tgz#246d77d2871e7d9f5aeb1d54b9f52c71329ece67" - integrity sha512-kfrlnTTn8pZkfpJMUgYD7YZ3qzeJgWUn8XfVYBARc4wnmNOmLbmuuaAs3q5fvB0UJOn6yHAKaGTPM7d6ezoD/A== - dependencies: - available-typed-arrays "^1.0.5" - call-bind "^1.0.2" - es-abstract "^1.20.0" - for-each "^0.3.3" - has-tostringtag "^1.0.0" - is-unicode-supported@^0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz#3f26c76a809593b52bfa2ecb5710ed2779b522a7" @@ -7716,7 +7745,18 @@ issue-parser@^6.0.0: lodash.isstring "^4.0.1" lodash.uniqby "^4.7.0" -jackspeak@^2.3.5: +issue-parser@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/issue-parser/-/issue-parser-7.0.0.tgz#27b832c5f5967da897e08ca1949d188e98873b1a" + integrity sha512-jgAw78HO3gs9UrKqJNQvfDj9Ouy8Mhu40fbEJ8yXff4MW8+/Fcn9iFjyWUQ6SKbX8ipPk3X5A3AyfYHRu6uVLw== + dependencies: + lodash.capitalize "^4.2.1" + lodash.escaperegexp "^4.1.2" + lodash.isplainobject "^4.0.6" + lodash.isstring "^4.0.1" + lodash.uniqby "^4.7.0" + +jackspeak@^2.3.6: version "2.3.6" resolved "https://registry.yarnpkg.com/jackspeak/-/jackspeak-2.3.6.tgz#647ecc472238aee4b06ac0e461acc21a8c505ca8" integrity sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ== @@ -7785,6 +7825,11 @@ jsbi@^3.1.5: resolved "https://registry.yarnpkg.com/jsbi/-/jsbi-3.2.5.tgz#b37bb90e0e5c2814c1c2a1bcd8c729888a2e37d6" integrity sha512-aBE4n43IPvjaddScbvWRA2YlTzKEynHzu7MqOyTipdHucf/VxS63ViCjxYRg86M8Rxwbt/GfzHl1kKERkt45fQ== +jsbn@1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-1.1.0.tgz#b01307cb29b618a1ed26ec79e911f803c4da0040" + integrity sha512-4bYVV3aAMtDTTu4+xsDYa6sy9GyJ69/amsu9sYF2zqjiEoZA5xJi3BrfX3uY+/IekIu7MwdObdbDWpoZdBv3/A== + jsesc@^2.5.1: version "2.5.2" resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-2.5.2.tgz#80564d2e483dacf6e8ef209650a67df3f0c283a4" @@ -7817,10 +7862,10 @@ json-parse-even-better-errors@^3.0.0, json-parse-even-better-errors@^3.0.1: resolved "https://registry.yarnpkg.com/json-parse-even-better-errors/-/json-parse-even-better-errors-3.0.1.tgz#02bb29fb5da90b5444581749c22cedd3597c6cb0" integrity sha512-aatBvbL26wVUCLmbWdCpeu9iF5wOyWpagiKkInA+kfws3sWdBrTnsvN2CKcyCYyUrc7rebNBlK6+kteg7ksecg== -json-schema-to-ts@2.9.1: - version "2.9.1" - resolved "https://registry.yarnpkg.com/json-schema-to-ts/-/json-schema-to-ts-2.9.1.tgz#0e055b787587477abdb7e880c874efad3dba7779" - integrity sha512-8MNpRGERlCUWYeJwsWkMrJ0MWzBz49dfqpG+n9viiIlP4othaahbiaNQZuBzmPxRLUhOv1QJMCzW5WE8nHFGIQ== +json-schema-to-ts@2.9.2: + version "2.9.2" + resolved "https://registry.yarnpkg.com/json-schema-to-ts/-/json-schema-to-ts-2.9.2.tgz#a054bc6410f13c7a2fc51aeabac52292e885b98d" + integrity sha512-h9WqLkTVpBbiaPb5OmeUpz/FBLS/kvIJw4oRCPiEisIu2WjMh+aai0QIY2LoOhRFx5r92taGLcerIrzxKBAP6g== dependencies: "@babel/runtime" "^7.18.3" "@types/json-schema" "^7.0.9" @@ -7836,7 +7881,7 @@ json-stringify-safe@^5.0.1: resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" integrity sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA== -json5@2.2.3, json5@^2.2.0, json5@^2.2.1, json5@^2.2.2: +json5@2.2.3, json5@^2.2.0, json5@^2.2.1, json5@^2.2.3: version "2.2.3" resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.3.tgz#78cd6f1a19bdc12b73db5ad0c61efd66c1e29283" integrity sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg== @@ -7878,18 +7923,18 @@ just-diff@^6.0.0: integrity sha512-S59eriX5u3/QhMNq3v/gm8Kd0w8OS6Tz2FS1NG4blv+z0MuQcBRJyFWjdovM0Rad4/P4aUPFtnkNjMjyMlMSYA== keccak@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/keccak/-/keccak-3.0.2.tgz#4c2c6e8c54e04f2670ee49fa734eb9da152206e0" - integrity sha512-PyKKjkH53wDMLGrvmRGSNWgmSxZOUqbnXwKL9tmgbFYA1iAYqW21kfR7mZXV0MlESiefxQQE9X9fTa3X+2MPDQ== + version "3.0.4" + resolved "https://registry.yarnpkg.com/keccak/-/keccak-3.0.4.tgz#edc09b89e633c0549da444432ecf062ffadee86d" + integrity sha512-3vKuW0jV8J3XNTzvfyicFR5qvxrSAGl7KIhvgOu5cmWwM7tZRj3fMbj/pfIf4be7aznbc+prBWGjywox/g2Y6Q== dependencies: node-addon-api "^2.0.0" node-gyp-build "^4.2.0" readable-stream "^3.6.0" -keyv@^4.5.2: - version "4.5.2" - resolved "https://registry.yarnpkg.com/keyv/-/keyv-4.5.2.tgz#0e310ce73bf7851ec702f2eaf46ec4e3805cce56" - integrity sha512-5MHbFaKn8cNSmVW7BYnijeAVlE4cYA/SVkifVgrh7yotnfhKmjuXpDKjrABLnT0SfHWV21P8ow07OGfRrNDg8g== +keyv@^4.5.3: + version "4.5.4" + resolved "https://registry.yarnpkg.com/keyv/-/keyv-4.5.4.tgz#a879a99e29452f942439f2a405e3af8b31d4de93" + integrity sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw== dependencies: json-buffer "3.0.1" @@ -7919,9 +7964,9 @@ leb128@0.0.4, leb128@^0.0.4: buffer-pipe "0.0.0" less@^4.1.1: - version "4.1.3" - resolved "https://registry.yarnpkg.com/less/-/less-4.1.3.tgz#175be9ddcbf9b250173e0a00b4d6920a5b770246" - integrity sha512-w16Xk/Ta9Hhyei0Gpz9m7VS8F28nieJaL/VyShID7cYvP6IL5oHeL6p4TXSDJqZE/lNv0oJ2pGVjJsRkfwm5FA== + version "4.2.0" + resolved "https://registry.yarnpkg.com/less/-/less-4.2.0.tgz#cbefbfaa14a4cd388e2099b2b51f956e1465c450" + integrity sha512-P3b3HJDBtSzsXUl0im2L7gTO5Ubg8mEN6G8qoTS77iXxXX4Hvu4Qj540PZDvQ8V6DmX6iXo98k7Md0Cm1PrLaA== dependencies: copy-anything "^2.0.1" parse-node-version "^1.0.1" @@ -7949,266 +7994,259 @@ level-transcoder@^1.0.1: module-error "^1.0.1" level@^8.0.0: - version "8.0.0" - resolved "https://registry.yarnpkg.com/level/-/level-8.0.0.tgz#41b4c515dabe28212a3e881b61c161ffead14394" - integrity sha512-ypf0jjAk2BWI33yzEaaotpq7fkOPALKAgDBxggO6Q9HGX2MRXn0wbP1Jn/tJv1gtL867+YOjOB49WaUF3UoJNQ== + version "8.0.1" + resolved "https://registry.yarnpkg.com/level/-/level-8.0.1.tgz#737161db1bc317193aca4e7b6f436e7e1df64379" + integrity sha512-oPBGkheysuw7DmzFQYyFe8NAia5jFLAgEnkgWnK3OXAuJr8qFT+xBQIwokAZPME2bhPFzS8hlYcL16m8UZrtwQ== dependencies: + abstract-level "^1.0.4" browser-level "^1.0.1" classic-level "^1.2.0" libnpmaccess@^8.0.1: - version "8.0.2" - resolved "https://registry.yarnpkg.com/libnpmaccess/-/libnpmaccess-8.0.2.tgz#a13a72fd5b71a1063ea54973fa56d61ec38f718f" - integrity sha512-4K+nsg3OYt4rjryP/3D5zGWluLbZaKozwj6YdtvAyxNhLhUrjCoyxHVoL5AkTJcAnjsd6/ATei52QPVvpSX9Ug== + version "8.0.5" + resolved "https://registry.yarnpkg.com/libnpmaccess/-/libnpmaccess-8.0.5.tgz#ef14fecab8385669e91d6be27971ae448064211f" + integrity sha512-E6dwnlk39LNlveG++BZmPA63aOnfQ+VL59Dp5S9Tp8ifkl66iFQtGgZ183JkX6BUI4URlYdtt+EJxxTpkV+m4g== dependencies: - npm-package-arg "^11.0.1" - npm-registry-fetch "^16.0.0" + npm-package-arg "^11.0.2" + npm-registry-fetch "^17.0.0" libnpmdiff@^6.0.3: - version "6.0.5" - resolved "https://registry.yarnpkg.com/libnpmdiff/-/libnpmdiff-6.0.5.tgz#f4f9a8f7e499582c8f769b6c2e91dd8e3d5de29d" - integrity sha512-AplhlY7Ha/lzOcpmVpbQy8P12JSyIpDTgPsBmd4G7+wmLJLIYMclqY4I0lbWcwKua95vxgyp7j1gIYk1DP7ZTw== + version "6.1.1" + resolved "https://registry.yarnpkg.com/libnpmdiff/-/libnpmdiff-6.1.1.tgz#7d19707bbfef9a5e30f11445a03044d545138f59" + integrity sha512-oMIRnApo1tI/nD0fWjf9DAudrkAI+7G2go1y9gd0MKLmlMnZ6Tp44T6vvWgH2iTLzSax745l0zr2twfzSUutZg== dependencies: "@npmcli/arborist" "^7.2.1" - "@npmcli/disparity-colors" "^3.0.0" - "@npmcli/installed-package-contents" "^2.0.2" - binary-extensions "^2.2.0" + "@npmcli/installed-package-contents" "^2.1.0" + binary-extensions "^2.3.0" diff "^5.1.0" - minimatch "^9.0.0" - npm-package-arg "^11.0.1" - pacote "^17.0.4" - tar "^6.2.0" + minimatch "^9.0.4" + npm-package-arg "^11.0.2" + pacote "^18.0.1" + tar "^6.2.1" -libnpmexec@^7.0.4: - version "7.0.6" - resolved "https://registry.yarnpkg.com/libnpmexec/-/libnpmexec-7.0.6.tgz#9489ff1401135d595285feaa120e88ca395e6207" - integrity sha512-TWvtfKyBQ/UiWl54uG7ALuLAGE5s6H6FTQKs7bAH5H19jtEgpxujQz6+iNNVOIMw7Cfw3Oat6RZqL8ZfXmJA9g== +libnpmexec@^8.0.0: + version "8.1.0" + resolved "https://registry.yarnpkg.com/libnpmexec/-/libnpmexec-8.1.0.tgz#9273575a385827918cd2a75559800a7048f5f69b" + integrity sha512-ZU2J7bcr9VGjld4g+mRTcIsZWwnuqiENxifcXLCXhh7uvjpRn67zV9+RLhVfYcAZkibDKnYCczNCVNhuPx4PKg== dependencies: "@npmcli/arborist" "^7.2.1" - "@npmcli/run-script" "^7.0.2" + "@npmcli/run-script" "^8.1.0" ci-info "^4.0.0" - npm-package-arg "^11.0.1" - npmlog "^7.0.1" - pacote "^17.0.4" - proc-log "^3.0.0" - read "^2.0.0" + npm-package-arg "^11.0.2" + pacote "^18.0.1" + proc-log "^4.2.0" + read "^3.0.1" read-package-json-fast "^3.0.2" semver "^7.3.7" walk-up-path "^3.0.1" libnpmfund@^5.0.1: - version "5.0.3" - resolved "https://registry.yarnpkg.com/libnpmfund/-/libnpmfund-5.0.3.tgz#40235dffb1f610475c864702445020c4b3441199" - integrity sha512-Kb/fJZNAOG6uIHkhkUah+HfLYqqyuc3s65cPWiwGz1nta8ta79PaexzstGxvGrMA/JFfjZ0BMOejM6zB1aXA8g== + version "5.0.9" + resolved "https://registry.yarnpkg.com/libnpmfund/-/libnpmfund-5.0.9.tgz#af650c139bc5023ae7171bbeb8d694e4b77b6791" + integrity sha512-OkzHaMutdBx5KLaIo11oOUrnd3wq0rID82pZL+tle9e4YkLU8Vz2t/hiLDo4w9I3sTETqcGD3U9DKFK0xZu+8g== dependencies: "@npmcli/arborist" "^7.2.1" libnpmhook@^10.0.0: - version "10.0.1" - resolved "https://registry.yarnpkg.com/libnpmhook/-/libnpmhook-10.0.1.tgz#3cb9516645f0d6891b4a59c72ffe026bdbb9bd6b" - integrity sha512-FnXCweDpoAko6mnLPSW8qrRYicjfh+GrvY5PuYHQRPvaW4BFtHDUmK3K3aYx4yD3TeGAKpj4IigrEDfUfWuSkA== + version "10.0.4" + resolved "https://registry.yarnpkg.com/libnpmhook/-/libnpmhook-10.0.4.tgz#88f7325fcaec0eb33cb11574f0264df059146a2a" + integrity sha512-es/OEs25sjld/rZacdPLyT8gV637LezZBgwWBUoXgSQ3mPj+fV6flfgWt9se9l7qtK4D+YaTMKRlXxAdU5S/Cg== dependencies: aproba "^2.0.0" - npm-registry-fetch "^16.0.0" + npm-registry-fetch "^17.0.0" libnpmorg@^6.0.1: - version "6.0.2" - resolved "https://registry.yarnpkg.com/libnpmorg/-/libnpmorg-6.0.2.tgz#6e5e37ecc5a391082e83c599512689c78e60dc70" - integrity sha512-zK4r6cjVsfXf7hWzWGB6R0LBJidVhKaeMWMZL/1eyZS6ixxAxVijfsPacoEnBRCFaXsNjAtwV3b2RCmYU6+usA== + version "6.0.5" + resolved "https://registry.yarnpkg.com/libnpmorg/-/libnpmorg-6.0.5.tgz#98a7cc2a75eabf4b445b25028b758629f54c76c5" + integrity sha512-VPyye2JYLZXGnnGU1guOgtzwp08KI2dzcNEYfdjBbaMYm98HwmkWyXjfXcXQm+p06FRCmBDrVwXk3FaSLopcYw== dependencies: aproba "^2.0.0" - npm-registry-fetch "^16.0.0" + npm-registry-fetch "^17.0.0" -libnpmpack@^6.0.3: - version "6.0.5" - resolved "https://registry.yarnpkg.com/libnpmpack/-/libnpmpack-6.0.5.tgz#9b6de1ba4ca3e338b915f46bd34883096e6bf9c6" - integrity sha512-H6a8EDBwU765ogkcan1VEhjAZFflXgKVijbB7TDnbl2ce0MuJDLnmVzSg30/7zgIj1gNtxenaBigeQFQ1hxP9A== +libnpmpack@^7.0.0: + version "7.0.1" + resolved "https://registry.yarnpkg.com/libnpmpack/-/libnpmpack-7.0.1.tgz#1aa358df9c9b88b9c2730161e6abeaec98cf98d2" + integrity sha512-/Q2eVsJG3/5wivozBote/wpIHZvDAXHY7N5FFKKJMitZ1kZeF2lUZuBdCjNAatuzcfOSO1kcp13EIFXWiN9v9w== dependencies: "@npmcli/arborist" "^7.2.1" - "@npmcli/run-script" "^7.0.2" - npm-package-arg "^11.0.1" - pacote "^17.0.4" + "@npmcli/run-script" "^8.1.0" + npm-package-arg "^11.0.2" + pacote "^18.0.1" libnpmpublish@^9.0.2: - version "9.0.3" - resolved "https://registry.yarnpkg.com/libnpmpublish/-/libnpmpublish-9.0.3.tgz#644ee50543687eee79bcf2a5bd759a2ff6e60a0d" - integrity sha512-XoF0QgT1Ph9RMBfTwiwZeRN4Rs5t4w1POaRxaoVoWCMUqysswwlAPu3ZZJDNbh7asXBWXcXTJziDWkInhpbiBg== + version "9.0.7" + resolved "https://registry.yarnpkg.com/libnpmpublish/-/libnpmpublish-9.0.7.tgz#cbb49224be3ed0bc463fa16520601c9fe6bf6cb4" + integrity sha512-RGqpwlV6kaeTGDtcDSdBVjglW6HBMdJCLwWusGdfWUx94+QDJoH5dK+xeSyvZ/FcczX7aTHE9ZOoA0/y+ybfyA== dependencies: ci-info "^4.0.0" normalize-package-data "^6.0.0" - npm-package-arg "^11.0.1" - npm-registry-fetch "^16.0.0" - proc-log "^3.0.0" + npm-package-arg "^11.0.2" + npm-registry-fetch "^17.0.0" + proc-log "^4.2.0" semver "^7.3.7" - sigstore "^2.1.0" + sigstore "^2.2.0" ssri "^10.0.5" libnpmsearch@^7.0.0: - version "7.0.1" - resolved "https://registry.yarnpkg.com/libnpmsearch/-/libnpmsearch-7.0.1.tgz#8fa803a8e5837a33ce750a8cc1c70820d728b91d" - integrity sha512-XyKi6Y94t6PGd5Lk2Ma3+fgiHWD3KSCvXmHOrcLkAOEP7oUejbNjL0Bb/HUDZXgBj6gP1Qk7pJ6jZPFBc2hmXQ== + version "7.0.4" + resolved "https://registry.yarnpkg.com/libnpmsearch/-/libnpmsearch-7.0.4.tgz#d3ce8d351007b1eec9b8157ccf41d61a5640cd04" + integrity sha512-CdVupvMB61WrY07noIb7uVzO/NegsFIyPakyY7j0LE1RXNhbuCA3xBLIZZouDOb8Lg89HBOwYDhI8pdEaimq5g== dependencies: - npm-registry-fetch "^16.0.0" + npm-registry-fetch "^17.0.0" libnpmteam@^6.0.0: - version "6.0.1" - resolved "https://registry.yarnpkg.com/libnpmteam/-/libnpmteam-6.0.1.tgz#daa1b2e7e4ccef0469bdef661737ca823b53468b" - integrity sha512-1YytqVk1gSkKFNMe4kkCKN49y5rlABrRSx5TrYShQtt2Lb4uQaed49dGE7Ue8TJGxbIkHzvyyVtb3PBiGACVqw== + version "6.0.4" + resolved "https://registry.yarnpkg.com/libnpmteam/-/libnpmteam-6.0.4.tgz#8725a1d83acdec22c45598c75695d63ea5fc0508" + integrity sha512-HwOxPhuYsp9SjB/2YaeubzNJsSxobl8vqJvlli+gCAFGgBEcZLBSg/8FXkKsaZmim13Yd18Rz4DUhQUSuOwD5g== dependencies: aproba "^2.0.0" - npm-registry-fetch "^16.0.0" + npm-registry-fetch "^17.0.0" -libnpmversion@^5.0.1: - version "5.0.2" - resolved "https://registry.yarnpkg.com/libnpmversion/-/libnpmversion-5.0.2.tgz#aea7b09bc270c778cbc8be7bf02e4b60566989cf" - integrity sha512-6JBnLhd6SYgKRekJ4cotxpURLGbEtKxzw+a8p5o+wNwrveJPMH8yW/HKjeewyHzWmxzzwn9EQ3TkF2onkrwstA== +libnpmversion@^6.0.0: + version "6.0.1" + resolved "https://registry.yarnpkg.com/libnpmversion/-/libnpmversion-6.0.1.tgz#9f2edc1fd402cd46114eefdecdee94dc0c6f6972" + integrity sha512-uKnItKLfd9YNEP7NhPTytNY1atY1kZ+rAa+FkfExMBUtZa4beeBR10kcHx8ZaGVHtCyaQo64uiVlxUdQ5QwkTg== dependencies: - "@npmcli/git" "^5.0.3" - "@npmcli/run-script" "^7.0.2" + "@npmcli/git" "^5.0.6" + "@npmcli/run-script" "^8.1.0" json-parse-even-better-errors "^3.0.0" - proc-log "^3.0.0" + proc-log "^4.2.0" semver "^7.3.7" -lightningcss-darwin-arm64@1.21.1: - version "1.21.1" - resolved "https://registry.yarnpkg.com/lightningcss-darwin-arm64/-/lightningcss-darwin-arm64-1.21.1.tgz#595b45510a3637c4b85be513dd029bade6abf0e7" - integrity sha512-dljpsZ15RN4AxI958n9qO7sAv29FRuUMCB10CSDBGmDOW+oDDbNLs1k5/7MlYg5FXnZqznUSTtHBFHFyo1Rs2Q== - -lightningcss-darwin-arm64@1.21.5: - version "1.21.5" - resolved "https://registry.yarnpkg.com/lightningcss-darwin-arm64/-/lightningcss-darwin-arm64-1.21.5.tgz#d4d2a235da382311779afd44936f05f0d470bf12" - integrity sha512-z05hyLX85WY0UfhkFUOrWEFqD69lpVAmgl3aDzMKlIZJGygbhbegqb4PV8qfUrKKNBauut/qVNPKZglhTaDDxA== - -lightningcss-darwin-x64@1.21.1: - version "1.21.1" - resolved "https://registry.yarnpkg.com/lightningcss-darwin-x64/-/lightningcss-darwin-x64-1.21.1.tgz#d8ca5997794b7d8bec8e7390da848c2cb865ac33" - integrity sha512-e/dAKKOcLe2F/A5a89gh03ABxZHn4yjGapGimCFxnCpg68iIdtoPrJTFAyxPV3Jty4djLYRlitoIWNidOK35zA== - -lightningcss-darwin-x64@1.21.5: - version "1.21.5" - resolved "https://registry.yarnpkg.com/lightningcss-darwin-x64/-/lightningcss-darwin-x64-1.21.5.tgz#b9b2306809306635afee8a9981f93e7668ecb8e8" - integrity sha512-MSJhmej/U9MrdPxDk7+FWhO8+UqVoZUHG4VvKT5RQ4RJtqtANTiWiI97LvoVNMtdMnHaKs1Pkji6wHUFxjJsHQ== - -lightningcss-linux-arm-gnueabihf@1.21.1: - version "1.21.1" - resolved "https://registry.yarnpkg.com/lightningcss-linux-arm-gnueabihf/-/lightningcss-linux-arm-gnueabihf-1.21.1.tgz#7581480a3ad4a5f5b80e7a1b1db787ec086267e0" - integrity sha512-Ak12ti7D4Q9Tk3tX9fktCJVe+spP12/dOcebw67DBeZ3EQ4meIGTkFpl2ryZK8Z7kbIJNUsscVsz3zXW21/25A== - -lightningcss-linux-arm-gnueabihf@1.21.5: - version "1.21.5" - resolved "https://registry.yarnpkg.com/lightningcss-linux-arm-gnueabihf/-/lightningcss-linux-arm-gnueabihf-1.21.5.tgz#dcc78522f5297d18fbbe142a509bee3305f90907" - integrity sha512-xN6+5/JsMrbZHL1lPl+MiNJ3Xza12ueBKPepiyDCFQzlhFRTj7D0LG+cfNTzPBTO8KcYQynLpl1iBB8LGp3Xtw== - -lightningcss-linux-arm64-gnu@1.21.1: - version "1.21.1" - resolved "https://registry.yarnpkg.com/lightningcss-linux-arm64-gnu/-/lightningcss-linux-arm64-gnu-1.21.1.tgz#1744af42b0a610661aaa17cdd5eb2e3ec65eda3d" - integrity sha512-ggCX0iyG/h2C1MfDfmfhB0zpEUTTP+kG9XBbwHRFKrQsmb3b7WC5QiyVuGYkzoGiHy1JNuyi27qR9cNVLCR8FQ== - -lightningcss-linux-arm64-gnu@1.21.5: - version "1.21.5" - resolved "https://registry.yarnpkg.com/lightningcss-linux-arm64-gnu/-/lightningcss-linux-arm64-gnu-1.21.5.tgz#1aa64cf3c4013a82012cd15b1ef0f97d08bc9bfd" - integrity sha512-KfzFNhC4XTbmG3ma/xcTs/IhCwieW89XALIusKmnV0N618ZDXEB0XjWOYQRCXeK9mfqPdbTBpurEHV/XZtkniQ== - -lightningcss-linux-arm64-musl@1.21.1: - version "1.21.1" - resolved "https://registry.yarnpkg.com/lightningcss-linux-arm64-musl/-/lightningcss-linux-arm64-musl-1.21.1.tgz#b59848d392542210e1caa7a1abff16c7d0adb1cc" - integrity sha512-vGaVLju7Zhus/sl5Oz/1YbV7L/Mr/bfjHbThj/DJcFggZPj1wfSeWc6gAAISqK3bIAUMVlcUEm2UnIDGj0tsOQ== - -lightningcss-linux-arm64-musl@1.21.5: - version "1.21.5" - resolved "https://registry.yarnpkg.com/lightningcss-linux-arm64-musl/-/lightningcss-linux-arm64-musl-1.21.5.tgz#6dd43b3436432efdadb58949fb3821d4206044e9" - integrity sha512-bc0GytQO5Mn9QM6szaZ+31fQHNdidgpM1sSCwzPItz8hg3wOvKl8039rU0veMJV3ZgC9z0ypNRceLrSHeRHmXw== - -lightningcss-linux-x64-gnu@1.21.1: - version "1.21.1" - resolved "https://registry.yarnpkg.com/lightningcss-linux-x64-gnu/-/lightningcss-linux-x64-gnu-1.21.1.tgz#111a5ac18b99c5ea1478cc0684cfcc651c35ccb6" - integrity sha512-W6b+ndCCO/SeIT4s7kJhkJGXZVz96uwb7eY61SwCAibs5HirzRMrIyuMY3JKcRESg9/jysHo4YWrr1icbzWiXw== - -lightningcss-linux-x64-gnu@1.21.5: - version "1.21.5" - resolved "https://registry.yarnpkg.com/lightningcss-linux-x64-gnu/-/lightningcss-linux-x64-gnu-1.21.5.tgz#7af13989f720fbd434bcc9e629ca3e5797acb979" - integrity sha512-JwMbgypPQgc2kW2av3OwzZ8cbrEuIiDiXPJdXRE6aVxu67yHauJawQLqJKTGUhiAhy6iLDG8Wg0a3/ziL+m+Kw== - -lightningcss-linux-x64-musl@1.21.1: - version "1.21.1" - resolved "https://registry.yarnpkg.com/lightningcss-linux-x64-musl/-/lightningcss-linux-x64-musl-1.21.1.tgz#6ed62f9e0f2dc9361edaa722836bdf495e28e2de" - integrity sha512-eA2ygIg/IbjglRq/QRCDTgnR8mtmXJ65t/1C1QUUvvexWfr0iiTKJj3iozgUKZmupfomrPIhF3Qya0el9PqjUA== - -lightningcss-linux-x64-musl@1.21.5: - version "1.21.5" - resolved "https://registry.yarnpkg.com/lightningcss-linux-x64-musl/-/lightningcss-linux-x64-musl-1.21.5.tgz#cde2e9e1958cc7782264622983a2433312526b55" - integrity sha512-Ib8b6IQ/OR/VrPU6YBgy4T3QnuHY7DUa95O+nz+cwrTkMSN6fuHcTcIaz4t8TJ6HI5pl3uxUOZjmtls2pyQWow== - -lightningcss-win32-x64-msvc@1.21.1: - version "1.21.1" - resolved "https://registry.yarnpkg.com/lightningcss-win32-x64-msvc/-/lightningcss-win32-x64-msvc-1.21.1.tgz#b79b91887b522007f2ee30d37727e1540172ddb3" - integrity sha512-2PKZvhrMxr7TjceUkkAtNQtDOEozcbp8GdcOKCrhNmrQ1OT8Mm5p4sMp7bzT0QytT7W5EuhIteWQFW/qI64Wtw== - -lightningcss-win32-x64-msvc@1.21.5: - version "1.21.5" - resolved "https://registry.yarnpkg.com/lightningcss-win32-x64-msvc/-/lightningcss-win32-x64-msvc-1.21.5.tgz#f75d25f7db9853d98c9253025eb8854335b31051" - integrity sha512-A8cSi8lUpBeVmoF+DqqW7cd0FemDbCuKr490IXdjyeI+KL8adpSKUs8tcqO0OXPh1EoDqK7JNkD/dELmd4Iz5g== - -lightningcss@1.21.1: - version "1.21.1" - resolved "https://registry.yarnpkg.com/lightningcss/-/lightningcss-1.21.1.tgz#4d1f87a08db839009af1a24fd7cc13bd24a5acb5" - integrity sha512-TKkVZzKnJVtGLI+8QMXLH2JdNcxjodA06So+uXA5qelvuReKvPyCJBX/6ZznADA76zNijmDc3OhjxvTBmNtCoA== +lightningcss-darwin-arm64@1.21.8: + version "1.21.8" + resolved "https://registry.yarnpkg.com/lightningcss-darwin-arm64/-/lightningcss-darwin-arm64-1.21.8.tgz#b4ea8d5133236bff361623ce8c30639a1b024240" + integrity sha512-BOMoGfcgkk2f4ltzsJqmkjiqRtlZUK+UdwhR+P6VgIsnpQBV3G01mlL6GzYxYqxq+6/3/n/D+4oy2NeknmADZw== + +lightningcss-darwin-arm64@1.24.1: + version "1.24.1" + resolved "https://registry.yarnpkg.com/lightningcss-darwin-arm64/-/lightningcss-darwin-arm64-1.24.1.tgz#551735defa1e092ecf91244ca081f65f10ebd5f0" + integrity sha512-1jQ12jBy+AE/73uGQWGSafK5GoWgmSiIQOGhSEXiFJSZxzV+OXIx+a9h2EYHxdJfX864M+2TAxWPWb0Vv+8y4w== + +lightningcss-darwin-x64@1.21.8: + version "1.21.8" + resolved "https://registry.yarnpkg.com/lightningcss-darwin-x64/-/lightningcss-darwin-x64-1.21.8.tgz#81f4671cf9c245bb25a6536c01ddac76973fd283" + integrity sha512-YhF64mcVDPKKufL4aNFBnVH7uvzE0bW3YUsPXdP4yUcT/8IXChypOZ/PE1pmt2RlbmsyVuuIIeZU4zTyZe5Amw== + +lightningcss-darwin-x64@1.24.1: + version "1.24.1" + resolved "https://registry.yarnpkg.com/lightningcss-darwin-x64/-/lightningcss-darwin-x64-1.24.1.tgz#5acb1338ac0aae38e405efd854ed97ba11509eea" + integrity sha512-R4R1d7VVdq2mG4igMU+Di8GPf0b64ZLnYVkubYnGG0Qxq1KaXQtAzcLI43EkpnoWvB/kUg8JKCWH4S13NfiLcQ== + +lightningcss-freebsd-x64@1.21.8: + version "1.21.8" + resolved "https://registry.yarnpkg.com/lightningcss-freebsd-x64/-/lightningcss-freebsd-x64-1.21.8.tgz#d1b18c5a1b894e1332b23870afdbe23d07f22614" + integrity sha512-CV6A/vTG2Ryd3YpChEgfWWv4TXCAETo9TcHSNx0IP0dnKcnDEiAko4PIKhCqZL11IGdN1ZLBCVPw+vw5ZYwzfA== + +lightningcss-freebsd-x64@1.24.1: + version "1.24.1" + resolved "https://registry.yarnpkg.com/lightningcss-freebsd-x64/-/lightningcss-freebsd-x64-1.24.1.tgz#ff692c41ed0bbf37ab5a239db4c2fc04c11195e6" + integrity sha512-z6NberUUw5ALES6Ixn2shmjRRrM1cmEn1ZQPiM5IrZ6xHHL5a1lPin9pRv+w6eWfcrEo+qGG6R9XfJrpuY3e4g== + +lightningcss-linux-arm-gnueabihf@1.21.8: + version "1.21.8" + resolved "https://registry.yarnpkg.com/lightningcss-linux-arm-gnueabihf/-/lightningcss-linux-arm-gnueabihf-1.21.8.tgz#523366a683d3545d3a36c133079ff6af0a3d95c0" + integrity sha512-9PMbqh8n/Xq0F4/j2NR/hHM2HRDiFXFSF0iOvV67pNWKJkHIO6mR8jBw/88Aro5Ye/ILsX5OuWsxIVJDFv0NXA== + +lightningcss-linux-arm-gnueabihf@1.24.1: + version "1.24.1" + resolved "https://registry.yarnpkg.com/lightningcss-linux-arm-gnueabihf/-/lightningcss-linux-arm-gnueabihf-1.24.1.tgz#ba41556f4422a6a889553ad897898a314386153e" + integrity sha512-NLQLnBQW/0sSg74qLNI8F8QKQXkNg4/ukSTa+XhtkO7v3BnK19TS1MfCbDHt+TTdSgNEBv0tubRuapcKho2EWw== + +lightningcss-linux-arm64-gnu@1.21.8: + version "1.21.8" + resolved "https://registry.yarnpkg.com/lightningcss-linux-arm64-gnu/-/lightningcss-linux-arm64-gnu-1.21.8.tgz#6a74eff0680dd0759591962a3b92353f9b2bf49a" + integrity sha512-JTM/TuMMllkzaXV7/eDjG4IJKLlCl+RfYZwtsVmC82gc0QX0O37csGAcY2OGleiuA4DnEo/Qea5WoFfZUNC6zg== + +lightningcss-linux-arm64-gnu@1.24.1: + version "1.24.1" + resolved "https://registry.yarnpkg.com/lightningcss-linux-arm64-gnu/-/lightningcss-linux-arm64-gnu-1.24.1.tgz#6b569b6078634233bc470c4179dd67e535f22d73" + integrity sha512-AQxWU8c9E9JAjAi4Qw9CvX2tDIPjgzCTrZCSXKELfs4mCwzxRkHh2RCxX8sFK19RyJoJAjA/Kw8+LMNRHS5qEg== + +lightningcss-linux-arm64-musl@1.21.8: + version "1.21.8" + resolved "https://registry.yarnpkg.com/lightningcss-linux-arm64-musl/-/lightningcss-linux-arm64-musl-1.21.8.tgz#98c74b70d99e08efb3cc6dacd0c57d516a15c2e7" + integrity sha512-01gWShXrgoIb8urzShpn1RWtZuaSyKSzF2hfO+flzlTPoACqcO3rgcu/3af4Cw54e8vKzL5hPRo4kROmgaOMLg== + +lightningcss-linux-arm64-musl@1.24.1: + version "1.24.1" + resolved "https://registry.yarnpkg.com/lightningcss-linux-arm64-musl/-/lightningcss-linux-arm64-musl-1.24.1.tgz#644abd32c09c87228bfb5dda21e8d3f75da6f731" + integrity sha512-JCgH/SrNrhqsguUA0uJUM1PvN5+dVuzPIlXcoWDHSv2OU/BWlj2dUYr3XNzEw748SmNZPfl2NjQrAdzaPOn1lA== + +lightningcss-linux-x64-gnu@1.21.8: + version "1.21.8" + resolved "https://registry.yarnpkg.com/lightningcss-linux-x64-gnu/-/lightningcss-linux-x64-gnu-1.21.8.tgz#96c691c0852eaae9b6a15d238b7bdd9fbfc3cc85" + integrity sha512-yVB5vYJjJb/Aku0V9QaGYIntvK/1TJOlNB9GmkNpXX5bSSP2pYW4lWW97jxFMHO908M0zjEt1qyOLMyqojHL+Q== + +lightningcss-linux-x64-gnu@1.24.1: + version "1.24.1" + resolved "https://registry.yarnpkg.com/lightningcss-linux-x64-gnu/-/lightningcss-linux-x64-gnu-1.24.1.tgz#0633f2daa2b6a2806abd497337346c2941865eec" + integrity sha512-TYdEsC63bHV0h47aNRGN3RiK7aIeco3/keN4NkoSQ5T8xk09KHuBdySltWAvKLgT8JvR+ayzq8ZHnL1wKWY0rw== + +lightningcss-linux-x64-musl@1.21.8: + version "1.21.8" + resolved "https://registry.yarnpkg.com/lightningcss-linux-x64-musl/-/lightningcss-linux-x64-musl-1.21.8.tgz#19787f71eeabdcec34af6e74509a2902548d45f9" + integrity sha512-TYi+KNtBVK0+FZvxTX/d5XJb+tw3Jq+2Rr9hW359wp1afsi1Vkg+uVGgbn+m2dipa5XwpCseQq81ylMlXuyfPw== + +lightningcss-linux-x64-musl@1.24.1: + version "1.24.1" + resolved "https://registry.yarnpkg.com/lightningcss-linux-x64-musl/-/lightningcss-linux-x64-musl-1.24.1.tgz#6ed1714737e4af2249ed10f431bc8137bd6cc4c7" + integrity sha512-HLfzVik3RToot6pQ2Rgc3JhfZkGi01hFetHt40HrUMoeKitLoqUUT5owM6yTZPTytTUW9ukLBJ1pc3XNMSvlLw== + +lightningcss-win32-x64-msvc@1.21.8: + version "1.21.8" + resolved "https://registry.yarnpkg.com/lightningcss-win32-x64-msvc/-/lightningcss-win32-x64-msvc-1.21.8.tgz#eb10b607b464bd19c966de0065c95ff47e6acb1b" + integrity sha512-mww+kqbPx0/C44l2LEloECtRUuOFDjq9ftp+EHTPiCp2t+avy0sh8MaFwGsrKkj2XfZhaRhi4CPVKBoqF1Qlwg== + +lightningcss-win32-x64-msvc@1.24.1: + version "1.24.1" + resolved "https://registry.yarnpkg.com/lightningcss-win32-x64-msvc/-/lightningcss-win32-x64-msvc-1.24.1.tgz#bd6b562d902e0f92904ac3754c722d9e63e00480" + integrity sha512-joEupPjYJ7PjZtDsS5lzALtlAudAbgIBMGJPNeFe5HfdmJXFd13ECmEM+5rXNxYVMRHua2w8132R6ab5Z6K9Ow== + +lightningcss@1.21.8: + version "1.21.8" + resolved "https://registry.yarnpkg.com/lightningcss/-/lightningcss-1.21.8.tgz#a02e4a8979208ffb61d7c6deebb75c4abce0b5d6" + integrity sha512-jEqaL7m/ZckZJjlMAfycr1Kpz7f93k6n7KGF5SJjuPSm6DWI6h3ayLZmgRHgy1OfrwoCed6h4C/gHYPOd1OFMA== dependencies: detect-libc "^1.0.3" optionalDependencies: - lightningcss-darwin-arm64 "1.21.1" - lightningcss-darwin-x64 "1.21.1" - lightningcss-linux-arm-gnueabihf "1.21.1" - lightningcss-linux-arm64-gnu "1.21.1" - lightningcss-linux-arm64-musl "1.21.1" - lightningcss-linux-x64-gnu "1.21.1" - lightningcss-linux-x64-musl "1.21.1" - lightningcss-win32-x64-msvc "1.21.1" + lightningcss-darwin-arm64 "1.21.8" + lightningcss-darwin-x64 "1.21.8" + lightningcss-freebsd-x64 "1.21.8" + lightningcss-linux-arm-gnueabihf "1.21.8" + lightningcss-linux-arm64-gnu "1.21.8" + lightningcss-linux-arm64-musl "1.21.8" + lightningcss-linux-x64-gnu "1.21.8" + lightningcss-linux-x64-musl "1.21.8" + lightningcss-win32-x64-msvc "1.21.8" lightningcss@^1.16.1: - version "1.21.5" - resolved "https://registry.yarnpkg.com/lightningcss/-/lightningcss-1.21.5.tgz#1a175329048912f6480c1703ff2957aad0dcedb4" - integrity sha512-/pEUPeih2EwIx9n4T82aOG6CInN83tl/mWlw6B5gWLf36UplQi1L+5p3FUHsdt4fXVfOkkh9KIaM3owoq7ss8A== + version "1.24.1" + resolved "https://registry.yarnpkg.com/lightningcss/-/lightningcss-1.24.1.tgz#8b86a5ee6e6ae9e035ff92892bd047b8d687581e" + integrity sha512-kUpHOLiH5GB0ERSv4pxqlL0RYKnOXtgGtVe7shDGfhS0AZ4D1ouKFYAcLcZhql8aMspDNzaUCumGHZ78tb2fTg== dependencies: detect-libc "^1.0.3" optionalDependencies: - lightningcss-darwin-arm64 "1.21.5" - lightningcss-darwin-x64 "1.21.5" - lightningcss-linux-arm-gnueabihf "1.21.5" - lightningcss-linux-arm64-gnu "1.21.5" - lightningcss-linux-arm64-musl "1.21.5" - lightningcss-linux-x64-gnu "1.21.5" - lightningcss-linux-x64-musl "1.21.5" - lightningcss-win32-x64-msvc "1.21.5" - -lilconfig@^2.0.5: - version "2.1.0" - resolved "https://registry.yarnpkg.com/lilconfig/-/lilconfig-2.1.0.tgz#78e23ac89ebb7e1bfbf25b18043de756548e7f52" - integrity sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ== + lightningcss-darwin-arm64 "1.24.1" + lightningcss-darwin-x64 "1.24.1" + lightningcss-freebsd-x64 "1.24.1" + lightningcss-linux-arm-gnueabihf "1.24.1" + lightningcss-linux-arm64-gnu "1.24.1" + lightningcss-linux-arm64-musl "1.24.1" + lightningcss-linux-x64-gnu "1.24.1" + lightningcss-linux-x64-musl "1.24.1" + lightningcss-win32-x64-msvc "1.24.1" + +lilconfig@^3.0.0: + version "3.1.1" + resolved "https://registry.yarnpkg.com/lilconfig/-/lilconfig-3.1.1.tgz#9d8a246fa753106cfc205fd2d77042faca56e5e3" + integrity sha512-O18pf7nyvHTckunPWCV1XUNXU1piu01y2b7ATJ0ppkUkk8ocqVWBrYjJBCwHDjD/ZWcfyrA0P4gKhzWGi5EINQ== lines-and-columns@^1.1.6: version "1.2.4" resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.2.4.tgz#eca284f75d2965079309dc0ad9255abb2ebc1632" integrity sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg== -lmdb@2.5.2: - version "2.5.2" - resolved "https://registry.yarnpkg.com/lmdb/-/lmdb-2.5.2.tgz#37e28a9fb43405f4dc48c44cec0e13a14c4a6ff1" - integrity sha512-V5V5Xa2Hp9i2XsbDALkBTeHXnBXh/lEmk9p22zdr7jtuOIY9TGhjK6vAvTpOOx9IKU4hJkRWZxn/HsvR1ELLtA== - dependencies: - msgpackr "^1.5.4" - node-addon-api "^4.3.0" - node-gyp-build-optional-packages "5.0.3" - ordered-binary "^1.2.4" - weak-lru-cache "^1.2.2" - optionalDependencies: - "@lmdb/lmdb-darwin-arm64" "2.5.2" - "@lmdb/lmdb-darwin-x64" "2.5.2" - "@lmdb/lmdb-linux-arm" "2.5.2" - "@lmdb/lmdb-linux-arm64" "2.5.2" - "@lmdb/lmdb-linux-x64" "2.5.2" - "@lmdb/lmdb-win32-x64" "2.5.2" - lmdb@2.7.11: version "2.7.11" resolved "https://registry.yarnpkg.com/lmdb/-/lmdb-2.7.11.tgz#a24b6d36b5c7ed9889cc2d9e103fdd3f5e144d7e" @@ -8227,6 +8265,24 @@ lmdb@2.7.11: "@lmdb/lmdb-linux-x64" "2.7.11" "@lmdb/lmdb-win32-x64" "2.7.11" +lmdb@2.8.5: + version "2.8.5" + resolved "https://registry.yarnpkg.com/lmdb/-/lmdb-2.8.5.tgz#ce191110c755c0951caa062722e300c703973837" + integrity sha512-9bMdFfc80S+vSldBmG3HOuLVHnxRdNTlpzR6QDnzqCQtCzGUEAGTzBKYMeIM+I/sU4oZfgbcbS7X7F65/z/oxQ== + dependencies: + msgpackr "^1.9.5" + node-addon-api "^6.1.0" + node-gyp-build-optional-packages "5.1.1" + ordered-binary "^1.4.1" + weak-lru-cache "^1.2.2" + optionalDependencies: + "@lmdb/lmdb-darwin-arm64" "2.8.5" + "@lmdb/lmdb-darwin-x64" "2.8.5" + "@lmdb/lmdb-linux-arm" "2.8.5" + "@lmdb/lmdb-linux-arm64" "2.8.5" + "@lmdb/lmdb-linux-x64" "2.8.5" + "@lmdb/lmdb-win32-x64" "2.8.5" + load-json-file@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-4.0.0.tgz#2f5f45ab91e33216234fd53adab668eb4ec0993b" @@ -8339,7 +8395,7 @@ lodash.uniqby@^4.7.0: resolved "https://registry.yarnpkg.com/lodash.uniqby/-/lodash.uniqby-4.7.0.tgz#d99c07a669e9e6d24e1362dfe266c67616af1302" integrity sha512-e/zcLx6CSbmaEgFHCA7BnoQKyCtKMxnuWrJygbwPs/AIn+IMKl66L8/s+wBUn5LRw2pZx3bUHibiV1b6aTWIww== -lodash@^4.17.11, lodash@^4.17.21, lodash@^4.17.4: +lodash@^4.17.21, lodash@^4.17.4: version "4.17.21" resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== @@ -8359,27 +8415,15 @@ loose-envify@^1.0.0, loose-envify@^1.1.0, loose-envify@^1.4.0: dependencies: js-tokens "^3.0.0 || ^4.0.0" -lower-case@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/lower-case/-/lower-case-2.0.2.tgz#6fa237c63dbdc4a82ca0fd882e4722dc5e634e28" - integrity sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg== - dependencies: - tslib "^2.0.3" - lowercase-keys@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-3.0.0.tgz#c5e7d442e37ead247ae9db117a9d0a467c89d4f2" integrity sha512-ozCC6gdQ+glXOQsveKD0YsDy8DSQFjDTz4zyzEHNV5+JP5D62LmfDZ6o1cycFx9ouG940M5dE8C8CTewdj2YWQ== -lru-cache@^10.0.1, "lru-cache@^9.1.1 || ^10.0.0": - version "10.1.0" - resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-10.1.0.tgz#2098d41c2dc56500e6c88584aa656c84de7d0484" - integrity sha512-/1clY/ui8CzjKFyjdvwPWJUYKiFVXG2I2cY0ssG7h4+hwk+XOIX7ZSG9Q7TW8TW3Kp3BUSqgFWBLgL4PJ+Blag== - -lru-cache@^10.1.0: - version "10.2.0" - resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-10.2.0.tgz#0bd445ca57363465900f4d1f9bd8db343a4d95c3" - integrity sha512-2bIM8x+VAf6JT4bKAljS1qUWgMsqZRPGJS6FSahIMPVvctcNhyVp7AJu7quxOW9jwkryBReKZY5tY5JYv2n/7Q== +lru-cache@^10.0.1, lru-cache@^10.2.0, lru-cache@^10.2.2: + version "10.2.2" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-10.2.2.tgz#48206bc114c1252940c41b25b41af5b545aca878" + integrity sha512-9hp3Vp2/hFQUiIwKo8XCeFVnrg8Pk3TYNPIR7tJADKi5YfcF7vEaK7avFHTlSy3kOKYaJQaalfEo6YuXdceBOQ== lru-cache@^4.0.1: version "4.1.5" @@ -8403,10 +8447,10 @@ lru-cache@^6.0.0: dependencies: yallist "^4.0.0" -magic-string@^0.30.0: - version "0.30.1" - resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.30.1.tgz#ce5cd4b0a81a5d032bd69aab4522299b2166284d" - integrity sha512-mbVKXPmS0z0G4XqFDCTllmDQ6coZzn94aMlb0o/A4HEHJCKcanlDZwYJgwnkmgD3jyWhUgj9VsPrfd972yPffA== +magic-string@^0.30.0, magic-string@^0.30.4: + version "0.30.10" + resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.30.10.tgz#123d9c41a0cb5640c892b041d4cfb3bd0aa4b39e" + integrity sha512-iIRwTIf0QKV3UAnYK4PU8uiEc4SRh5jX0mwpIwETPpHdhVM4f53RSwS/vXvN1JhGX+Cs7B8qIq3d6AH49O5fAQ== dependencies: "@jridgewell/sourcemap-codec" "^1.4.15" @@ -8418,10 +8462,10 @@ make-dir@^2.1.0: pify "^4.0.1" semver "^5.6.0" -make-fetch-happen@^13.0.0: - version "13.0.0" - resolved "https://registry.yarnpkg.com/make-fetch-happen/-/make-fetch-happen-13.0.0.tgz#705d6f6cbd7faecb8eac2432f551e49475bfedf0" - integrity sha512-7ThobcL8brtGo9CavByQrQi+23aIfgYU++wg4B87AIS8Rb2ZBt/MEaDqzA00Xwv/jUjAjYkLHjVolYuTLKda2A== +make-fetch-happen@^13.0.0, make-fetch-happen@^13.0.1: + version "13.0.1" + resolved "https://registry.yarnpkg.com/make-fetch-happen/-/make-fetch-happen-13.0.1.tgz#273ba2f78f45e1f3a6dca91cede87d9fa4821e36" + integrity sha512-cKTUFc/rbKUd/9meOvgrpJ2WrNzymt6jfRDdwg5UCnVzv9dTpEj9JS5m3wtziXVCjluIXyL8pcaukYqezIzZQA== dependencies: "@npmcli/agent" "^2.0.0" cacache "^18.0.0" @@ -8432,6 +8476,7 @@ make-fetch-happen@^13.0.0: minipass-flush "^1.0.5" minipass-pipeline "^1.2.4" negotiator "^0.6.3" + proc-log "^4.2.0" promise-retry "^2.0.1" ssri "^10.0.0" @@ -8445,22 +8490,22 @@ map-obj@^4.0.0: resolved "https://registry.yarnpkg.com/map-obj/-/map-obj-4.3.0.tgz#9304f906e93faae70880da102a9f1df0ea8bb05a" integrity sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ== -marked-terminal@^6.0.0: - version "6.2.0" - resolved "https://registry.yarnpkg.com/marked-terminal/-/marked-terminal-6.2.0.tgz#82928d7967af486185a64ea927be723aadd4755f" - integrity sha512-ubWhwcBFHnXsjYNsu+Wndpg0zhY4CahSpPlA70PlO0rR9r2sZpkyU+rkCsOWH+KMEkx847UpALON+HWgxowFtw== +marked-terminal@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/marked-terminal/-/marked-terminal-7.0.0.tgz#78f5060a8454adb6f0b878fff2c60763502e23fb" + integrity sha512-sNEx8nn9Ktcm6pL0TnRz8tnXq/mSS0Q1FRSwJOAqw4lAB4l49UeDf85Gm1n9RPFm5qurCPjwi1StAQT2XExhZw== dependencies: ansi-escapes "^6.2.0" - cardinal "^2.1.1" chalk "^5.3.0" + cli-highlight "^2.1.11" cli-table3 "^0.6.3" node-emoji "^2.1.3" supports-hyperlinks "^3.0.0" -marked@^11.0.0: - version "11.1.1" - resolved "https://registry.yarnpkg.com/marked/-/marked-11.1.1.tgz#e1b2407241f744fb1935fac224680874d9aff7a3" - integrity sha512-EgxRjgK9axsQuUa/oKMx5DEY8oXpKJfk61rT5iY3aRlgU6QJtUcxU5OAymdhCvWvhYcd9FKmO5eQoX8m9VGJXg== +marked@^12.0.0: + version "12.0.2" + resolved "https://registry.yarnpkg.com/marked/-/marked-12.0.2.tgz#b31578fe608b599944c69807b00f18edab84647e" + integrity sha512-qXUm7e/YKFoqFPYPa3Ukg9xlI5cyAtGmyEIzMfW//m6kXwCy2Ps9DYf5ioijFKQ8qyuscrHoY04iJGctu2Kg0Q== matcher@^2.0.0: version "2.1.0" @@ -8529,11 +8574,6 @@ merge2@^1.3.0, merge2@^1.4.1: resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae" integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg== -methods@^1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee" - integrity sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w== - micromatch@^4.0.0, micromatch@^4.0.2, micromatch@^4.0.4, micromatch@^4.0.5: version "4.0.5" resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.5.tgz#bc8999a7cbbf77cdc89f132f6e467051b49090c6" @@ -8567,15 +8607,15 @@ mime@^1.4.1: resolved "https://registry.yarnpkg.com/mime/-/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1" integrity sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg== -mime@^2.4.4, mime@^2.4.6: +mime@^2.4.4: version "2.6.0" resolved "https://registry.yarnpkg.com/mime/-/mime-2.6.0.tgz#a2a682a95cd4d0cb1d6257e28f83da7e35800367" integrity sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg== mime@^4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/mime/-/mime-4.0.1.tgz#ad7563d1bfe30253ad97dedfae2b1009d01b9470" - integrity sha512-5lZ5tyrIfliMXzFtkYyekWbtRXObT9OWa8IwQ5uxTBDHucNNwniRqo0yInflj+iYi5CBa6qxadGzGarDfuEOxA== + version "4.0.3" + resolved "https://registry.yarnpkg.com/mime/-/mime-4.0.3.tgz#cd4a1aa052fc980dfc34f111fe1be9e8b878c5d2" + integrity sha512-KgUb15Oorc0NEKPbvfa0wRU+PItIEZmiv+pyAO2i0oTIVTJhlzMclU7w4RXWQrSOVH5ax/p/CkIO7KI4OyFJTQ== mimic-fn@^2.1.0: version "2.1.0" @@ -8612,7 +8652,7 @@ minimalistic-crypto-utils@^1.0.1: resolved "https://registry.yarnpkg.com/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz#f6c00c1c0b082246e5c4d99dfb8c7c083b2b582a" integrity sha512-JIYlbt6g8i5jKfJ3xz7rF0LXmv2TkDxBLUkiBeZ7bAx4GnnNMr8xFpGnOxn6GhTEHx3SjRrZEoU+j04prX1ktg== -minimatch@^3.0.4, minimatch@^3.1.1: +minimatch@^3.1.1: version "3.1.2" resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b" integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw== @@ -8620,16 +8660,16 @@ minimatch@^3.0.4, minimatch@^3.1.1: brace-expansion "^1.1.7" minimatch@^5.1.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-5.1.0.tgz#1717b464f4971b144f6aabe8f2d0b8e4511e09c7" - integrity sha512-9TPBGGak4nHfGZsPBohm9AWg6NoT7QTCehS3BIJABslyZbzxfV78QM2Y6+i741OPZIafFAaiiEMh5OyIrJPgtg== + version "5.1.6" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-5.1.6.tgz#1cfcb8cf5522ea69952cd2af95ae09477f122a96" + integrity sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g== dependencies: brace-expansion "^2.0.1" -minimatch@^9.0.0, minimatch@^9.0.1, minimatch@^9.0.3: - version "9.0.3" - resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-9.0.3.tgz#a6e00c3de44c3a542bfaae70abfc22420a6da825" - integrity sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg== +minimatch@^9.0.0, minimatch@^9.0.1, minimatch@^9.0.3, minimatch@^9.0.4: + version "9.0.4" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-9.0.4.tgz#8e49c731d1749cbec05050ee5145147b32496a51" + integrity sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw== dependencies: brace-expansion "^2.0.1" @@ -8642,12 +8682,7 @@ minimist-options@^4.0.2: is-plain-obj "^1.1.0" kind-of "^6.0.3" -minimist@^1.2.0, minimist@^1.2.3: - version "1.2.6" - resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.6.tgz#8637a5b759ea0d6e98702cfb3a9283323c93af44" - integrity sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q== - -minimist@^1.2.5: +minimist@^1.2.0, minimist@^1.2.3, minimist@^1.2.5: version "1.2.8" resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.8.tgz#c1a464e7693302e082a075cee0c057741ac4772c" integrity sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA== @@ -8725,9 +8760,9 @@ minizlib@^2.1.1, minizlib@^2.1.2: yallist "^4.0.0" mitt@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/mitt/-/mitt-3.0.0.tgz#69ef9bd5c80ff6f57473e8d89326d01c414be0bd" - integrity sha512-7dX2/10ITVyqh4aOSVI9gdape+t9l2/8QxHrFmUXu4EEUpdlxl6RudZUPZoc+zuY2hk1j7XxVroIVIan/pD/SQ== + version "3.0.1" + resolved "https://registry.yarnpkg.com/mitt/-/mitt-3.0.1.tgz#ea36cf0cc30403601ae074c8f77b7092cdab36d1" + integrity sha512-vKivATfr97l2/QBCYAkXYDbrIWPM2IIKEl7YPhjCvKlG3kE2gm+uBo6nEXK3M5/Ffh/FLpKExzOQ3JJoJGFKBw== mixme@^0.5.1: version "0.5.10" @@ -8759,7 +8794,7 @@ ms@2.0.0: resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" integrity sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A== -ms@2.1.2, ms@^2.1.1: +ms@2.1.2: version "2.1.2" resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== @@ -8769,7 +8804,7 @@ ms@^2.1.2: resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== -msgpackr-extract@^3.0.1, msgpackr-extract@^3.0.2: +msgpackr-extract@^3.0.2: version "3.0.2" resolved "https://registry.yarnpkg.com/msgpackr-extract/-/msgpackr-extract-3.0.2.tgz#e05ec1bb4453ddf020551bcd5daaf0092a2c279d" integrity sha512-SdzXp4kD/Qf8agZ9+iTu6eql0m3kWm1A2y1hkpTeVNENutaB0BwHlSvAIaMxwntmRUAUjon2V4L8Z/njd0Ct8A== @@ -8783,17 +8818,10 @@ msgpackr-extract@^3.0.1, msgpackr-extract@^3.0.2: "@msgpackr-extract/msgpackr-extract-linux-x64" "3.0.2" "@msgpackr-extract/msgpackr-extract-win32-x64" "3.0.2" -msgpackr@1.8.5: - version "1.8.5" - resolved "https://registry.yarnpkg.com/msgpackr/-/msgpackr-1.8.5.tgz#8cadfb935357680648f33699d0e833c9179dbfeb" - integrity sha512-mpPs3qqTug6ahbblkThoUY2DQdNXcm4IapwOS3Vm/87vmpzLVelvp9h3It1y9l1VPpiFLV11vfOXnmeEwiIXwg== - optionalDependencies: - msgpackr-extract "^3.0.1" - -msgpackr@^1.5.4: - version "1.9.5" - resolved "https://registry.yarnpkg.com/msgpackr/-/msgpackr-1.9.5.tgz#ac548c5f4546db895e84e46d39d813be961dc527" - integrity sha512-/IJ3cFSN6Ci3eG2wLhbFEL6GT63yEaoN/R5My2QkV6zro+OJaVRLPlwvxY7EtHYSmDlQpk8stvOQTL2qJFkDRg== +msgpackr@1.8.5, msgpackr@>=1.10.1, msgpackr@^1.5.4, msgpackr@^1.9.5: + version "1.10.1" + resolved "https://registry.yarnpkg.com/msgpackr/-/msgpackr-1.10.1.tgz#51953bb4ce4f3494f0c4af3f484f01cfbb306555" + integrity sha512-r5VRLv9qouXuLiIBrLpl2d5ZvPt8svdQTl5/vMvE4nzDMyEX4sgW5yWhuBBj5UmgwOTWj8CIdSXn5sAfsHAWIQ== optionalDependencies: msgpackr-extract "^3.0.2" @@ -8805,12 +8833,12 @@ multistream@^4.1.0: once "^1.4.0" readable-stream "^3.6.0" -mute-stream@1.0.0, mute-stream@~1.0.0: +mute-stream@1.0.0, mute-stream@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-1.0.0.tgz#e31bd9fe62f0aed23520aa4324ea6671531e013e" integrity sha512-avsJQhyd+680gKXyG/sQc0nXaC6rBkPOfyHYcFb9+hdkqQkR9bdnkJ0AMZhke0oesPqIO+mFFJ+IdBc7mst4IA== -mz@^2.7.0: +mz@^2.4.0, mz@^2.7.0: version "2.7.0" resolved "https://registry.yarnpkg.com/mz/-/mz-2.7.0.tgz#95008057a56cafadc2bc63dde7f9ff6955948e32" integrity sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q== @@ -8824,17 +8852,12 @@ nanoevents@^6.0.2: resolved "https://registry.yarnpkg.com/nanoevents/-/nanoevents-6.0.2.tgz#3824031c7beab754b04ae5a17936c0fc7b6a183c" integrity sha512-FRS2otuFcPPYDPYViNWQ42+1iZqbXydinkRHTHFxrF4a1CpBfmydR9zkI44WSXAXCyPrkcGtPk5CnpW6Y3lFKQ== -nanoid@^3.3.6: - version "3.3.6" - resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.6.tgz#443380c856d6e9f9824267d960b4236ad583ea4c" - integrity sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA== +nanoid@^3.3.7: + version "3.3.7" + resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.7.tgz#d0c301a691bc8d54efa0a2226ccf3fe2fd656bd8" + integrity sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g== -nanoid@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-4.0.0.tgz#6e144dee117609232c3f415c34b0e550e64999a5" - integrity sha512-IgBP8piMxe/gf73RTQx7hmnhwz0aaEXYakvqZyE302IXW3HyVNhdNGC+O2MwMAVhLEnvXlvKtGbtJf6wvHihCg== - -nanoid@^4.0.1: +nanoid@^4.0.0, nanoid@^4.0.1: version "4.0.2" resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-4.0.2.tgz#140b3c5003959adbebf521c170f282c5e7f9fb9e" integrity sha512-7ZtY5KTCNheRGfEFxnedV5zFiORN1+Y1N6zvPTnHQd8ENUvfaDBeuJDZb2bN/oXwXxu3qkTXDzy57W5vAmDTBw== @@ -8844,17 +8867,16 @@ napi-build-utils@^1.0.1: resolved "https://registry.yarnpkg.com/napi-build-utils/-/napi-build-utils-1.0.2.tgz#b1fddc0b2c46e380a0b7a76f984dd47c41a13806" integrity sha512-ONmRUqK7zj7DWX0D9ADe03wbwOBZxNAfF20PlGfCWQcD3+/MakShIHrMqx9YwPTfxDdF1zLeL+RGZiR9kGMLdg== -napi-macros@~2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/napi-macros/-/napi-macros-2.0.0.tgz#2b6bae421e7b96eb687aa6c77a7858640670001b" - integrity sha512-A0xLykHtARfueITVDernsAWdtIMbOJgKgcluwENp3AlsKN/PloyO10HtmoqnFAQAcxPkgZN7wdfPfEd0zNGxbg== +napi-macros@^2.2.2: + version "2.2.2" + resolved "https://registry.yarnpkg.com/napi-macros/-/napi-macros-2.2.2.tgz#817fef20c3e0e40a963fbf7b37d1600bd0201044" + integrity sha512-hmEVtAGYzVQpCKdbQea4skABsdXW4RUh5t5mJ2zzqowJS2OyXZTU1KhDVFhx+NlWZ4ap9mqR9TcDO3LTTttd+g== needle@^3.1.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/needle/-/needle-3.2.0.tgz#07d240ebcabfd65c76c03afae7f6defe6469df44" - integrity sha512-oUvzXnyLiVyVGoianLijF9O/RecZUf7TkBfimjGrLM4eQhXyeJwM6GeAWccwfQ9aa4gMCZKqhAOuLaMIcQxajQ== + version "3.3.1" + resolved "https://registry.yarnpkg.com/needle/-/needle-3.3.1.tgz#63f75aec580c2e77e209f3f324e2cdf3d29bd049" + integrity sha512-6k0YULvhpw+RoLNiQCRKOl09Rv1dPLr8hHnVjHqdolKwDrdNyk+Hmrthi4lIGPPz3r39dLx0hsF5s40sZ3Us4Q== dependencies: - debug "^3.2.6" iconv-lite "^0.6.3" sax "^1.2.4" @@ -8880,18 +8902,10 @@ new-date@^1.0.3: dependencies: "@segment/isodate" "1.0.3" -no-case@^3.0.4: - version "3.0.4" - resolved "https://registry.yarnpkg.com/no-case/-/no-case-3.0.4.tgz#d361fd5c9800f558551a8369fc0dcd4662b6124d" - integrity sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg== - dependencies: - lower-case "^2.0.2" - tslib "^2.0.3" - node-abi@^3.3.0: - version "3.45.0" - resolved "https://registry.yarnpkg.com/node-abi/-/node-abi-3.45.0.tgz#f568f163a3bfca5aacfce1fbeee1fa2cc98441f5" - integrity sha512-iwXuFrMAcFVi/ZoZiqq8BzAdsLw9kxDfTC0HMyjXfSL/6CSDAGD5UmR7azrAgWV1zKYq7dUUMj4owusBWKLsiQ== + version "3.62.0" + resolved "https://registry.yarnpkg.com/node-abi/-/node-abi-3.62.0.tgz#017958ed120f89a3a14a7253da810f5d724e3f36" + integrity sha512-CPMcGa+y33xuL1E0TcNIu4YyaZCxnnvkVaEXrsosR3FxN+fV8xvb7Mzpb7IgKler10qeMkE6+Dp8qJhpzdq35g== dependencies: semver "^7.3.5" @@ -8900,25 +8914,25 @@ node-addon-api@^2.0.0: resolved "https://registry.yarnpkg.com/node-addon-api/-/node-addon-api-2.0.2.tgz#432cfa82962ce494b132e9d72a15b29f71ff5d32" integrity sha512-Ntyt4AIXyaLIuMHF6IOoTakB3K+RWxwtsHNRxllEoA6vPwP9o4866g6YWDLUdnucilZhmkxiHwHr11gAENw+QA== -node-addon-api@^3.2.1: - version "3.2.1" - resolved "https://registry.yarnpkg.com/node-addon-api/-/node-addon-api-3.2.1.tgz#81325e0a2117789c0128dab65e7e38f07ceba161" - integrity sha512-mmcei9JghVNDYydghQmeDX8KoAm0FAiYyIcUt/N4nhyAipB17pllZQDOJD2fotxABnt4Mdz+dKTO7eftLg4d0A== - node-addon-api@^4.3.0: version "4.3.0" resolved "https://registry.yarnpkg.com/node-addon-api/-/node-addon-api-4.3.0.tgz#52a1a0b475193e0928e98e0426a0d1254782b77f" integrity sha512-73sE9+3UaLYYFmDsFZnqCInzPyh3MqIwZO9cw58yIqAZhONrrabrYyYe3TuIqtIiOuTXVhsGau8hcrhhwSsDIQ== +node-addon-api@^5.0.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/node-addon-api/-/node-addon-api-5.1.0.tgz#49da1ca055e109a23d537e9de43c09cca21eb762" + integrity sha512-eh0GgfEkpnoWDq+VY8OyvYhFEzBk6jIYbRKdIlyTiAXIVJ8PyBaKb0rp7oDtoddbdoHWhq8wwr+XZ81F1rpNdA== + node-addon-api@^6.1.0: version "6.1.0" resolved "https://registry.yarnpkg.com/node-addon-api/-/node-addon-api-6.1.0.tgz#ac8470034e58e67d0c6f1204a18ae6995d9c0d76" integrity sha512-+eawOlIgy680F0kBzPUNFhMZGtJ1YmqM6l4+Crf4IkImjYrO/mqPwRMh352g23uIaQKFItcQ64I7KMaJxHgAVA== node-addon-api@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/node-addon-api/-/node-addon-api-7.0.0.tgz#8136add2f510997b3b94814f4af1cce0b0e3962e" - integrity sha512-vgbBJTS4m5/KkE16t5Ly0WW9hz46swAstv0hYYwMtbG7AznRhNyfLRe8HZAiWIpcHzoO7HxhLuBQj9rJ/Ho0ZA== + version "7.1.0" + resolved "https://registry.yarnpkg.com/node-addon-api/-/node-addon-api-7.1.0.tgz#71f609369379c08e251c558527a107107b5e0fdb" + integrity sha512-mNcltoe1R8o7STTegSOHdnJNN7s5EUvhoS7ShnTHDyOSd+8H+UdWODq6qSv67PjC8Zc5JRT8+oLAMCr0SIXw7g== node-emoji@^2.1.3: version "2.1.3" @@ -8930,10 +8944,10 @@ node-emoji@^2.1.3: emojilib "^2.4.0" skin-tone "^2.0.0" -node-fetch@^2.6.7: - version "2.6.12" - resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.12.tgz#02eb8e22074018e3d5a83016649d04df0e348fba" - integrity sha512-C/fGU2E8ToujUivIO0H+tpQ6HWo4eEmchoPIoXtxCrVghxdKq+QOHqEZW7tuP3KlV3bC8FRMO5nMCC7Zm1VP6g== +node-fetch@^2.6.12, node-fetch@^2.6.7: + version "2.7.0" + resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.7.0.tgz#d0f0fa6e3e2dc1d27efcd8ad99d550bda94d187d" + integrity sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A== dependencies: whatwg-url "^5.0.0" @@ -8942,11 +8956,6 @@ node-forge@^0.8.1, node-forge@^0.8.2, node-forge@^1.3.1: resolved "https://registry.yarnpkg.com/node-forge/-/node-forge-1.3.1.tgz#be8da2af243b2417d5f646a770663a92b7e9ded3" integrity sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA== -node-gyp-build-optional-packages@5.0.3: - version "5.0.3" - resolved "https://registry.yarnpkg.com/node-gyp-build-optional-packages/-/node-gyp-build-optional-packages-5.0.3.tgz#92a89d400352c44ad3975010368072b41ad66c17" - integrity sha512-k75jcVzk5wnnc/FMxsf4udAoTEUv2jY3ycfdSd3yWu6Cnd1oee6/CfZJApyscA4FJOmdoixWwiwOyf16RzD5JA== - node-gyp-build-optional-packages@5.0.6: version "5.0.6" resolved "https://registry.yarnpkg.com/node-gyp-build-optional-packages/-/node-gyp-build-optional-packages-5.0.6.tgz#2949f5cc7dace3ac470fa2ff1a37456907120a1d" @@ -8957,15 +8966,22 @@ node-gyp-build-optional-packages@5.0.7: resolved "https://registry.yarnpkg.com/node-gyp-build-optional-packages/-/node-gyp-build-optional-packages-5.0.7.tgz#5d2632bbde0ab2f6e22f1bbac2199b07244ae0b3" integrity sha512-YlCCc6Wffkx0kHkmam79GKvDQ6x+QZkMjFGrIMxgFNILFvGSbCp2fCBC55pGTT9gVaz8Na5CLmxt/urtzRv36w== +node-gyp-build-optional-packages@5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/node-gyp-build-optional-packages/-/node-gyp-build-optional-packages-5.1.1.tgz#52b143b9dd77b7669073cbfe39e3f4118bfc603c" + integrity sha512-+P72GAjVAbTxjjwUmwjVrqrdZROD4nf8KgpBoDxqXXTiYZZt/ud60dE5yvCSr9lRO8e8yv6kgJIC0K0PfZFVQw== + dependencies: + detect-libc "^2.0.1" + node-gyp-build@^4.2.0, node-gyp-build@^4.3.0: - version "4.5.0" - resolved "https://registry.yarnpkg.com/node-gyp-build/-/node-gyp-build-4.5.0.tgz#7a64eefa0b21112f89f58379da128ac177f20e40" - integrity sha512-2iGbaQBV+ITgCz76ZEjmhUKAKVf7xfY1sRl4UiKQspfZMH2h06SyhNsnSVy50cwkFQDGLyif6m/6uFXHkOZ6rg== + version "4.8.1" + resolved "https://registry.yarnpkg.com/node-gyp-build/-/node-gyp-build-4.8.1.tgz#976d3ad905e71b76086f4f0b0d3637fe79b6cda5" + integrity sha512-OSs33Z9yWr148JZcbZd5WiAXhh/n9z8TxQcdMhIOlpN9AhWpLfvVFO73+m77bBABQMaY9XSvIa+qk0jlI7Gcaw== -node-gyp@^10.0.0, node-gyp@^10.0.1: - version "10.0.1" - resolved "https://registry.yarnpkg.com/node-gyp/-/node-gyp-10.0.1.tgz#205514fc19e5830fa991e4a689f9e81af377a966" - integrity sha512-gg3/bHehQfZivQVfqIyy8wTdSymF9yTyP4CJifK73imyNMU8AIGQE2pUa7dNWfmMeG9cDVF2eehiRMv0LC1iAg== +node-gyp@^10.0.0, node-gyp@^10.1.0: + version "10.1.0" + resolved "https://registry.yarnpkg.com/node-gyp/-/node-gyp-10.1.0.tgz#75e6f223f2acb4026866c26a2ead6aab75a8ca7e" + integrity sha512-B4J5M1cABxPc5PwfjhbV5hoy2DP9p8lFXASnEN6hugXOa61416tnTZ29x9sSwAd0o99XNIcpvDDy1swAExsVKA== dependencies: env-paths "^2.2.0" exponential-backoff "^3.1.1" @@ -8983,10 +8999,10 @@ node-object-hash@3.0.0: resolved "https://registry.yarnpkg.com/node-object-hash/-/node-object-hash-3.0.0.tgz#52526f6f42cef098e5cac1d74b96a7137d5c5226" integrity sha512-jLF6tlyletktvSAawuPmH1SReP0YfZQ+tBrDiTCK+Ai7eXPMS9odi5xW/iKC7ZhrWJJ0Z5xYcW/x+1fVMn1Qvw== -node-releases@^2.0.12: - version "2.0.13" - resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.13.tgz#d5ed1627c23e3461e819b02e57b75e4899b1c81d" - integrity sha512-uYr7J37ae/ORWdZeQ1xxMJe3NtdmqMC/JZK+geofDrkLUApKRHPd18/TxtBOJ4A0/+uUIliorNrfYV6s1b02eQ== +node-releases@^2.0.13, node-releases@^2.0.14: + version "2.0.14" + resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.14.tgz#2ffb053bceb8b2be8495ece1ab6ce600c4461b0b" + integrity sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw== nopt@^7.0.0, nopt@^7.2.0: version "7.2.0" @@ -9021,9 +9037,9 @@ normalize-path@^3.0.0, normalize-path@~3.0.0: integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== normalize-url@^8.0.0: - version "8.0.0" - resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-8.0.0.tgz#593dbd284f743e8dcf6a5ddf8fadff149c82701a" - integrity sha512-uVFpKhj5MheNBJRTiMZ9pE/7hD1QTeEvugSJW/OmLzAp78PB5O6adfMNTvmfKhXBkvCzC+rqifWcVYpGFwTjnw== + version "8.0.1" + resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-8.0.1.tgz#9b7d96af9836577c58f5883e939365fa15623a4a" + integrity sha512-IO9QvjUMWxPQQhs60oOu10CRkWCiZzSUkzbXGGV9pviYl1fXYcvkzQ5jV9z8Y6un8ARoVRl4EtC6v6jNqbaJ/w== npm-audit-report@^5.0.0: version "5.0.0" @@ -9049,13 +9065,13 @@ npm-normalize-package-bin@^3.0.0: resolved "https://registry.yarnpkg.com/npm-normalize-package-bin/-/npm-normalize-package-bin-3.0.1.tgz#25447e32a9a7de1f51362c61a559233b89947832" integrity sha512-dMxCf+zZ+3zeQZXKxmyuCKlIDPGuv8EF940xbkC4kQVDTtqoh6rJFO+JTKSA6/Rwi0getWmtuy4Itup0AMcaDQ== -npm-package-arg@^11.0.0, npm-package-arg@^11.0.1: - version "11.0.1" - resolved "https://registry.yarnpkg.com/npm-package-arg/-/npm-package-arg-11.0.1.tgz#f208b0022c29240a1c532a449bdde3f0a4708ebc" - integrity sha512-M7s1BD4NxdAvBKUPqqRW957Xwcl/4Zvo8Aj+ANrzvIPzGJZElrH7Z//rSaec2ORcND6FHHLnZeY8qgTpXDMFQQ== +npm-package-arg@^11.0.0, npm-package-arg@^11.0.2: + version "11.0.2" + resolved "https://registry.yarnpkg.com/npm-package-arg/-/npm-package-arg-11.0.2.tgz#1ef8006c4a9e9204ddde403035f7ff7d718251ca" + integrity sha512-IGN0IAwmhDJwy13Wc8k+4PEbTPhpJnMtfR53ZbOyjkvmEcLS4nCwp6mvMWjS5sUjeiW3mpx6cHmuhKEu9XmcQw== dependencies: hosted-git-info "^7.0.0" - proc-log "^3.0.0" + proc-log "^4.0.0" semver "^7.3.5" validate-npm-package-name "^5.0.0" @@ -9076,26 +9092,27 @@ npm-pick-manifest@^9.0.0: npm-package-arg "^11.0.0" semver "^7.3.5" -npm-profile@^9.0.0: - version "9.0.0" - resolved "https://registry.yarnpkg.com/npm-profile/-/npm-profile-9.0.0.tgz#ffcfa4e3e1b1cb44b17c192f75b44b24b4aae645" - integrity sha512-qv43ixsJ7vndzfxD3XsPNu1Njck6dhO7q1efksTo+0DiOQysKSOsIhK/qDD1/xO2o+2jDOA4Rv/zOJ9KQFs9nw== +npm-profile@^9.0.2: + version "9.0.2" + resolved "https://registry.yarnpkg.com/npm-profile/-/npm-profile-9.0.2.tgz#848328529932828fd3a33dcbf0d5fbe36d1e3eb6" + integrity sha512-4S/fd/PNyGgjaGolsdUJFsnfEb+AxJzrrZC3I9qbTYZJ3PJy8T46tIWXA4pBoaeiGh2M2GRvK1K/xMQe1Xgbvw== dependencies: - npm-registry-fetch "^16.0.0" - proc-log "^3.0.0" + npm-registry-fetch "^17.0.0" + proc-log "^4.0.0" -npm-registry-fetch@^16.0.0, npm-registry-fetch@^16.1.0: - version "16.1.0" - resolved "https://registry.yarnpkg.com/npm-registry-fetch/-/npm-registry-fetch-16.1.0.tgz#10227b7b36c97bc1cf2902a24e4f710cfe62803c" - integrity sha512-PQCELXKt8Azvxnt5Y85GseQDJJlglTFM9L9U9gkv2y4e9s0k3GVDdOx3YoB6gm2Do0hlkzC39iCGXby+Wve1Bw== +npm-registry-fetch@^17.0.0: + version "17.0.1" + resolved "https://registry.yarnpkg.com/npm-registry-fetch/-/npm-registry-fetch-17.0.1.tgz#c13cfd4c022713f09d23af5fba8b6ec59a17609e" + integrity sha512-fLu9MTdZTlJAHUek/VLklE6EpIiP3VZpTiuN7OOMCt2Sd67NCpSEetMaxHHEZiZxllp8ZLsUpvbEszqTFEc+wA== dependencies: + "@npmcli/redact" "^2.0.0" make-fetch-happen "^13.0.0" minipass "^7.0.2" minipass-fetch "^3.0.0" minipass-json-stream "^1.0.1" minizlib "^2.1.2" npm-package-arg "^11.0.0" - proc-log "^3.0.0" + proc-log "^4.0.0" npm-run-path@^4.0.1: version "4.0.1" @@ -9105,9 +9122,9 @@ npm-run-path@^4.0.1: path-key "^3.0.0" npm-run-path@^5.1.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-5.2.0.tgz#224cdd22c755560253dd71b83a1ef2f758b2e955" - integrity sha512-W4/tgAXFqFA0iL7fk0+uQ3g7wkL8xJmx3XdK0VGb4cHW//eZTtKGvFBBoRKVTpY7n6ze4NL9ly7rgXcHufqXKg== + version "5.3.0" + resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-5.3.0.tgz#e23353d0ebb9317f174e93417e4a4d82d0249e9f" + integrity sha512-ppwTtiJZq0O/ai0z7yfudtBpWIoxM8yE6nHi1X47eFR2EWORqfbu6CnPlNsjeN683eT0qG6H/Pyf9fCcvjnnnQ== dependencies: path-key "^4.0.0" @@ -9116,76 +9133,73 @@ npm-user-validate@^2.0.0: resolved "https://registry.yarnpkg.com/npm-user-validate/-/npm-user-validate-2.0.0.tgz#7b69bbbff6f7992a1d9a8968d52fd6b6db5431b6" integrity sha512-sSWeqAYJ2dUPStJB+AEj0DyLRltr/f6YNcvCA7phkB8/RMLMnVsQ41GMwHo/ERZLYNDsyB2wPm7pZo1mqPOl7Q== -npm@^10.0.0: - version "10.3.0" - resolved "https://registry.yarnpkg.com/npm/-/npm-10.3.0.tgz#554e1f13e4c09d581ad27cdc4a92f085ab74ce1a" - integrity sha512-9u5GFc1UqI2DLlGI7QdjkpIaBs3UhTtY8KoCqYJK24gV/j/tByaI4BA4R7RkOc+ASqZMzFPKt4Pj2Z8JcGo//A== +npm@^10.5.0: + version "10.7.0" + resolved "https://registry.yarnpkg.com/npm/-/npm-10.7.0.tgz#c87e0bbb7a53422670e423d0198120760f67c3b7" + integrity sha512-FXylyYSXNjgXx3l82BT8RSQvCoGIQ3h8YdRFGKNvo3Pv/bKscK4pdWkx/onwTpHDqGw+oeLf4Rxln9WVyxAxlQ== dependencies: "@isaacs/string-locale-compare" "^1.1.0" "@npmcli/arborist" "^7.2.1" "@npmcli/config" "^8.0.2" "@npmcli/fs" "^3.1.0" - "@npmcli/map-workspaces" "^3.0.4" - "@npmcli/package-json" "^5.0.0" + "@npmcli/map-workspaces" "^3.0.6" + "@npmcli/package-json" "^5.1.0" "@npmcli/promise-spawn" "^7.0.1" - "@npmcli/run-script" "^7.0.3" - "@sigstore/tuf" "^2.2.0" + "@npmcli/redact" "^2.0.0" + "@npmcli/run-script" "^8.1.0" + "@sigstore/tuf" "^2.3.2" abbrev "^2.0.0" archy "~1.0.0" cacache "^18.0.2" chalk "^5.3.0" ci-info "^4.0.0" cli-columns "^4.0.0" - cli-table3 "^0.6.3" - columnify "^1.6.0" fastest-levenshtein "^1.0.16" fs-minipass "^3.0.3" - glob "^10.3.10" + glob "^10.3.12" graceful-fs "^4.2.11" hosted-git-info "^7.0.1" - ini "^4.1.1" - init-package-json "^6.0.0" - is-cidr "^5.0.3" + ini "^4.1.2" + init-package-json "^6.0.2" + is-cidr "^5.0.5" json-parse-even-better-errors "^3.0.1" libnpmaccess "^8.0.1" libnpmdiff "^6.0.3" - libnpmexec "^7.0.4" + libnpmexec "^8.0.0" libnpmfund "^5.0.1" libnpmhook "^10.0.0" libnpmorg "^6.0.1" - libnpmpack "^6.0.3" + libnpmpack "^7.0.0" libnpmpublish "^9.0.2" libnpmsearch "^7.0.0" libnpmteam "^6.0.0" - libnpmversion "^5.0.1" - make-fetch-happen "^13.0.0" - minimatch "^9.0.3" + libnpmversion "^6.0.0" + make-fetch-happen "^13.0.1" + minimatch "^9.0.4" minipass "^7.0.4" minipass-pipeline "^1.2.4" ms "^2.1.2" - node-gyp "^10.0.1" + node-gyp "^10.1.0" nopt "^7.2.0" normalize-package-data "^6.0.0" npm-audit-report "^5.0.0" npm-install-checks "^6.3.0" - npm-package-arg "^11.0.1" + npm-package-arg "^11.0.2" npm-pick-manifest "^9.0.0" - npm-profile "^9.0.0" - npm-registry-fetch "^16.1.0" + npm-profile "^9.0.2" + npm-registry-fetch "^17.0.0" npm-user-validate "^2.0.0" - npmlog "^7.0.1" p-map "^4.0.0" - pacote "^17.0.5" + pacote "^18.0.3" parse-conflict-json "^3.0.1" - proc-log "^3.0.0" + proc-log "^4.2.0" qrcode-terminal "^0.12.0" - read "^2.1.0" - semver "^7.5.4" - spdx-expression-parse "^3.0.1" + read "^3.0.1" + semver "^7.6.0" + spdx-expression-parse "^4.0.0" ssri "^10.0.5" - strip-ansi "^7.1.0" supports-color "^9.4.0" - tar "^6.2.0" + tar "^6.2.1" text-table "~0.2.0" tiny-relative-date "^1.3.0" treeverse "^3.0.0" @@ -9193,16 +9207,6 @@ npm@^10.0.0: which "^4.0.0" write-file-atomic "^5.0.1" -npmlog@^7.0.1: - version "7.0.1" - resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-7.0.1.tgz#7372151a01ccb095c47d8bf1d0771a4ff1f53ac8" - integrity sha512-uJ0YFk/mCQpLBt+bxN88AKd+gyqZvZDbtiNxk6Waqcj2aPRyfVx8ITawkyQynxUagInjdYT1+qj4NfA5KJJUxg== - dependencies: - are-we-there-yet "^4.0.0" - console-control-strings "^1.1.0" - gauge "^5.0.0" - set-blocking "^2.0.0" - nth-check@^2.0.1: version "2.1.1" resolved "https://registry.yarnpkg.com/nth-check/-/nth-check-2.1.1.tgz#c9eab428effce36cd6b92c924bdb000ef1f1ed1d" @@ -9225,36 +9229,31 @@ object-assign@^4.0.1, object-assign@^4.1.1: resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" integrity sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg== -object-inspect@^1.12.2, object-inspect@^1.9.0: - version "1.12.2" - resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.12.2.tgz#c0641f26394532f28ab8d796ab954e43c009a8ea" - integrity sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ== - object-inspect@^1.13.1: version "1.13.1" resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.13.1.tgz#b96c6109324ccfef6b12216a956ca4dc2ff94bc2" integrity sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ== -object-is@^1.0.1: - version "1.1.5" - resolved "https://registry.yarnpkg.com/object-is/-/object-is-1.1.5.tgz#b9deeaa5fc7f1846a0faecdceec138e5778f53ac" - integrity sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw== +object-is@^1.1.5: + version "1.1.6" + resolved "https://registry.yarnpkg.com/object-is/-/object-is-1.1.6.tgz#1a6a53aed2dd8f7e6775ff870bea58545956ab07" + integrity sha512-F8cZ+KfGlSGi09lJT7/Nd6KJZ9ygtvYC0/UYYLI9nmQKLMnydpB9yvbv9K1uSkEu7FU9vYPmVwLg328tX+ot3Q== dependencies: - call-bind "^1.0.2" - define-properties "^1.1.3" + call-bind "^1.0.7" + define-properties "^1.2.1" object-keys@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e" integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA== -object.assign@^4.1.4: - version "4.1.4" - resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.4.tgz#9673c7c7c351ab8c4d0b516f4343ebf4dfb7799f" - integrity sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ== +object.assign@^4.1.4, object.assign@^4.1.5: + version "4.1.5" + resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.5.tgz#3a833f9ab7fdb80fc9e8d2300c803d216d8fdbb0" + integrity sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ== dependencies: - call-bind "^1.0.2" - define-properties "^1.1.4" + call-bind "^1.0.5" + define-properties "^1.2.1" has-symbols "^1.0.3" object-keys "^1.1.1" @@ -9294,10 +9293,10 @@ ora@^5.4.1: strip-ansi "^6.0.0" wcwidth "^1.0.1" -ordered-binary@^1.2.4, ordered-binary@^1.4.0: - version "1.4.1" - resolved "https://registry.yarnpkg.com/ordered-binary/-/ordered-binary-1.4.1.tgz#205cb6efd6c27fa0ef4eced994a023e081cdc911" - integrity sha512-9LtiGlPy982CsgxZvJGNNp2/NnrgEr6EAyN3iIEP3/8vd3YLgAZQHbQ75ZrkfBRGrNg37Dk3U6tuVb+B4Xfslg== +ordered-binary@^1.4.0, ordered-binary@^1.4.1: + version "1.5.1" + resolved "https://registry.yarnpkg.com/ordered-binary/-/ordered-binary-1.5.1.tgz#94ccbf14181711081ee23931db0dc3f58aaa0df6" + integrity sha512-5VyHfHY3cd0iza71JepYG50My+YUbrFtGoUz2ooEydPyPM7Aai/JW098juLr+RG6+rDJuzNNTsEQu2DZa1A41A== os-tmpdir@~1.0.2: version "1.0.2" @@ -9393,9 +9392,9 @@ p-map@^4.0.0: aggregate-error "^3.0.0" p-map@^7.0.1: - version "7.0.1" - resolved "https://registry.yarnpkg.com/p-map/-/p-map-7.0.1.tgz#1faf994e597160f7851882926bfccabc1d226f80" - integrity sha512-2wnaR0XL/FDOj+TgpDuRb2KTjLnu3Fma6b1ZUwGY7LcqenMcvP/YFpjpbPKY6WVGsbuJZRuoUz8iPrt8ORnAFw== + version "7.0.2" + resolved "https://registry.yarnpkg.com/p-map/-/p-map-7.0.2.tgz#7c5119fada4755660f70199a66aa3fe2f85a1fe8" + integrity sha512-z4cYYMMdKHzw4O5UkWJImbZynVIo0lSGTXc7bzB1e/rrDqkgGUNysK/o4bTr+0+xKvvLoTyGqYC4Fgljy9qe1Q== p-reduce@^2.0.0: version "2.1.0" @@ -9427,48 +9426,39 @@ package-json@8.1.1: registry-url "^6.0.0" semver "^7.3.7" -pacote@^17.0.0, pacote@^17.0.4, pacote@^17.0.5: - version "17.0.6" - resolved "https://registry.yarnpkg.com/pacote/-/pacote-17.0.6.tgz#874bb59cda5d44ab784d0b6530fcb4a7d9b76a60" - integrity sha512-cJKrW21VRE8vVTRskJo78c/RCvwJCn1f4qgfxL4w77SOWrTCRcmfkYHlHtS0gqpgjv3zhXflRtgsrUCX5xwNnQ== +pacote@^18.0.0, pacote@^18.0.1, pacote@^18.0.3: + version "18.0.3" + resolved "https://registry.yarnpkg.com/pacote/-/pacote-18.0.3.tgz#72a2bafc603935d2a1b0bf7c17034fdcc0a58001" + integrity sha512-GFCGn27RSf2xa5DHShI7DzI8dCf5F0+9N+fbSpItZvi9ykSouPRXMKzfl2jF35Zoi9QysNF/aqeqQyU2tOJBbA== dependencies: "@npmcli/git" "^5.0.0" "@npmcli/installed-package-contents" "^2.0.1" + "@npmcli/package-json" "^5.1.0" "@npmcli/promise-spawn" "^7.0.0" - "@npmcli/run-script" "^7.0.0" + "@npmcli/run-script" "^8.0.0" cacache "^18.0.0" fs-minipass "^3.0.0" minipass "^7.0.2" npm-package-arg "^11.0.0" npm-packlist "^8.0.0" npm-pick-manifest "^9.0.0" - npm-registry-fetch "^16.0.0" - proc-log "^3.0.0" + npm-registry-fetch "^17.0.0" + proc-log "^4.0.0" promise-retry "^2.0.1" - read-package-json "^7.0.0" - read-package-json-fast "^3.0.0" sigstore "^2.2.0" ssri "^10.0.0" tar "^6.1.11" pako@^2.0.3: - version "2.0.4" - resolved "https://registry.yarnpkg.com/pako/-/pako-2.0.4.tgz#6cebc4bbb0b6c73b0d5b8d7e8476e2b2fbea576d" - integrity sha512-v8tweI900AUkZN6heMU/4Uy4cXRc2AYNRggVmTR+dEncawDJgCdLMximOVA2p4qO57WMynangsfGRb5WD6L1Bg== + version "2.1.0" + resolved "https://registry.yarnpkg.com/pako/-/pako-2.1.0.tgz#266cc37f98c7d883545d11335c00fbd4062c9a86" + integrity sha512-w+eufiZ1WuJYgPXbV/PO3NCMEc3xqylkKHzp8bxp1uW4qaSNQUkwmLLEc3kKsfz8lpV1F8Ht3U1Cm+9Srog2ug== pako@~1.0.5: version "1.0.11" resolved "https://registry.yarnpkg.com/pako/-/pako-1.0.11.tgz#6c9599d340d54dfd3946380252a35705a6b992bf" integrity sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw== -param-case@^3.0.4: - version "3.0.4" - resolved "https://registry.yarnpkg.com/param-case/-/param-case-3.0.4.tgz#7d17fe4aa12bde34d4a77d91acfb6219caad01c5" - integrity sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A== - dependencies: - dot-case "^3.0.4" - tslib "^2.0.3" - parent-module@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/parent-module/-/parent-module-1.0.1.tgz#691d2709e78c79fae3a156622452d00762caaaa2" @@ -9476,16 +9466,17 @@ parent-module@^1.0.0: dependencies: callsites "^3.0.0" -parse-asn1@^5.0.0, parse-asn1@^5.1.5: - version "5.1.6" - resolved "https://registry.yarnpkg.com/parse-asn1/-/parse-asn1-5.1.6.tgz#385080a3ec13cb62a62d39409cb3e88844cdaed4" - integrity sha512-RnZRo1EPU6JBnra2vGHj0yhp6ebyjBZpmUCLHWiFhxlzvBCCpAuZ7elsBp1PVAbQN0/04VD/19rfzlBSwLstMw== +parse-asn1@^5.0.0, parse-asn1@^5.1.7: + version "5.1.7" + resolved "https://registry.yarnpkg.com/parse-asn1/-/parse-asn1-5.1.7.tgz#73cdaaa822125f9647165625eb45f8a051d2df06" + integrity sha512-CTM5kuWR3sx9IFamcl5ErfPl6ea/N8IYwiJ+vpeB2g+1iknv7zBl5uPwbMbRVznRVbrNY6lGuDoE5b30grmbqg== dependencies: - asn1.js "^5.2.0" - browserify-aes "^1.0.0" - evp_bytestokey "^1.0.0" - pbkdf2 "^3.0.3" - safe-buffer "^5.1.1" + asn1.js "^4.10.1" + browserify-aes "^1.2.0" + evp_bytestokey "^1.0.3" + hash-base "~3.0" + pbkdf2 "^3.1.2" + safe-buffer "^5.2.1" parse-conflict-json@^3.0.0, parse-conflict-json@^3.0.1: version "3.0.1" @@ -9528,27 +9519,28 @@ parse-node-version@^1.0.1: resolved "https://registry.yarnpkg.com/parse-node-version/-/parse-node-version-1.0.1.tgz#e2b5dbede00e7fa9bc363607f53327e8b073189b" integrity sha512-3YHlOa/JgH6Mnpr05jP9eDG254US9ek25LyIxZlDItp2iJtwyaXQb57lBYLdT3MowkUFYEV2XXNAYIPlESvJlA== -pascal-case@^3.1.2: - version "3.1.2" - resolved "https://registry.yarnpkg.com/pascal-case/-/pascal-case-3.1.2.tgz#b48e0ef2b98e205e7c1dae747d0b1508237660eb" - integrity sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g== +parse5-htmlparser2-tree-adapter@^6.0.0: + version "6.0.1" + resolved "https://registry.yarnpkg.com/parse5-htmlparser2-tree-adapter/-/parse5-htmlparser2-tree-adapter-6.0.1.tgz#2cdf9ad823321140370d4dbf5d3e92c7c8ddc6e6" + integrity sha512-qPuWvbLgvDGilKc5BoicRovlT4MtYT6JfJyBOMDsKoiT+GiuP5qyrPCnR9HcPECIJJmZh5jRndyNThnhhb/vlA== dependencies: - no-case "^3.0.4" - tslib "^2.0.3" + parse5 "^6.0.1" + +parse5@^5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/parse5/-/parse5-5.1.1.tgz#f68e4e5ba1852ac2cadc00f4555fff6c2abb6178" + integrity sha512-ugq4DFI0Ptb+WWjAdOK16+u/nHfiIrcE+sh8kZMaM0WllQKLI9rOUq6c2b7cwPkXdzfQESqvoqK6ug7U/Yyzug== + +parse5@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/parse5/-/parse5-6.0.1.tgz#e1a1c085c569b3dc08321184f19a39cc27f7c30b" + integrity sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw== path-browserify@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/path-browserify/-/path-browserify-1.0.1.tgz#d98454a9c3753d5790860f16f68867b9e46be1fd" integrity sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g== -path-case@^3.0.4: - version "3.0.4" - resolved "https://registry.yarnpkg.com/path-case/-/path-case-3.0.4.tgz#9168645334eb942658375c56f80b4c0cb5f82c6f" - integrity sha512-qO4qCFjXqVTrcbPt/hQfhTQ+VhFsqNKOPtytgNKkKxSoEp3XPUQ8ObFuePylOIok5gjn69ry8XiULxCwot3Wfg== - dependencies: - dot-case "^3.0.4" - tslib "^2.0.3" - path-exists@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515" @@ -9579,18 +9571,18 @@ path-parse@^1.0.7: resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735" integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== -path-scurry@^1.10.1: - version "1.10.1" - resolved "https://registry.yarnpkg.com/path-scurry/-/path-scurry-1.10.1.tgz#9ba6bf5aa8500fe9fd67df4f0d9483b2b0bfc698" - integrity sha512-MkhCqzzBEpPvxxQ71Md0b1Kk51W01lrYvlMzSUaIzNsODdd7mqhiimSZlr+VegAz5Z6Vzt9Xg2ttE//XBhH3EQ== +path-scurry@^1.10.2: + version "1.10.2" + resolved "https://registry.yarnpkg.com/path-scurry/-/path-scurry-1.10.2.tgz#8f6357eb1239d5fa1da8b9f70e9c080675458ba7" + integrity sha512-7xTavNy5RQXnsjANvVvMkEjvloOinkAjv/Z6Ildz9v2RinZ4SBKTWFOVRbaF8p0vpHnyjV/UwNDdKuUv6M5qcA== dependencies: - lru-cache "^9.1.1 || ^10.0.0" + lru-cache "^10.2.0" minipass "^5.0.0 || ^6.0.2 || ^7.0.0" path-to-regexp@^6.2.1: - version "6.2.1" - resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-6.2.1.tgz#d54934d6798eb9e5ef14e7af7962c945906918e5" - integrity sha512-JLyh7xT1kizaEvcaXOQwOc2/Yhw6KZOvPf1S8401UyLk86CU79LN3vl7ztXGm/pZ+YjoyAJ4rxmHwbkBXJX+yw== + version "6.2.2" + resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-6.2.2.tgz#324377a83e5049cbecadc5554d6a63a9a4866b36" + integrity sha512-GQX3SSMokngb36+whdpRXE+3f9V8UzyAorlYvOGx87ufGHehNTn5lCxrKtLyZ4Yl/wEKnNnr98ZzOwwDZV5ogw== path-type@^4.0.0: version "4.0.0" @@ -9602,7 +9594,7 @@ path-type@^5.0.0: resolved "https://registry.yarnpkg.com/path-type/-/path-type-5.0.0.tgz#14b01ed7aea7ddf9c7c3f46181d4d04f9c785bb8" integrity sha512-5HviZNaZcfqP95rwpv+1HDgUamezbqdSYTyzjTvwtJSnIH+3vnbmWsItli8OFEndS984VT55M3jduxZbX351gg== -pbkdf2@^3.0.3, pbkdf2@^3.0.9: +pbkdf2@^3.0.3, pbkdf2@^3.1.2: version "3.1.2" resolved "https://registry.yarnpkg.com/pbkdf2/-/pbkdf2-3.1.2.tgz#dd822aa0887580e52f1a039dc3eda108efae3075" integrity sha512-iuh7L6jA7JEGu2WxDwtQP1ddOpaJNC4KlDEFfdQajSGgGPNi4OyDc2R7QnbY2bR9QjBVGwgvTdNJZoE7RaxUMA== @@ -9627,7 +9619,7 @@ picocolors@^1.0.0: resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.0.0.tgz#cb5bdc74ff3f51892236eaf79d68bc44564ab81c" integrity sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ== -picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.3.0, picomatch@^2.3.1: +picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.3.1: version "2.3.1" resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42" integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== @@ -9667,10 +9659,10 @@ pkg-dir@^4.2.0: dependencies: find-up "^4.0.0" -plasmo@^0.82.0: - version "0.82.0" - resolved "https://registry.yarnpkg.com/plasmo/-/plasmo-0.82.0.tgz#8ff8b8d3b495663396f669afc095350d00791969" - integrity sha512-LorWjQx6uaQVqkibSidRHrVlcbSWosPAH+BWbKM2KvqMetDcBiApA4D4c4v3Y8a0KdKwNJxBc5La7AhTyaFotw== +plasmo@0.86.1: + version "0.86.1" + resolved "https://registry.yarnpkg.com/plasmo/-/plasmo-0.86.1.tgz#f2d0fa5bf4f393b51eed8be0b08aa50472088bc1" + integrity sha512-6qDWnQ8TVGLmGIWWOoXR0upCuNW6LnlrLEQ0b0EMRoApomps9q77908hNKJWbDlz5rqXOhcpecaVTQ0mx8lzCw== dependencies: "@expo/spawn-async" "1.7.2" "@parcel/core" "2.9.3" @@ -9678,20 +9670,20 @@ plasmo@^0.82.0: "@parcel/package-manager" "2.9.3" "@parcel/watcher" "2.2.0" "@plasmohq/init" "0.7.0" - "@plasmohq/parcel-config" "0.39.0" - "@plasmohq/parcel-core" "0.1.6" + "@plasmohq/parcel-config" "0.40.6" + "@plasmohq/parcel-core" "0.1.8" buffer "6.0.3" chalk "5.3.0" - change-case "4.1.2" + change-case "5.1.2" dotenv "16.3.1" dotenv-expand "10.0.0" events "3.3.0" - fast-glob "3.3.0" - fflate "0.8.0" + fast-glob "3.3.2" + fflate "0.8.1" get-port "7.0.0" got "13.0.0" ignore "5.2.4" - inquirer "9.2.8" + inquirer "9.2.12" is-path-inside "4.0.0" json5 "2.2.3" mnemonic-id "3.2.7" @@ -9699,32 +9691,27 @@ plasmo@^0.82.0: package-json "8.1.1" process "0.11.10" semver "7.5.4" - sharp "0.32.3" + sharp "0.32.6" tempy "3.1.0" - typescript "5.1.6" + typescript "5.2.2" -popmotion@11.0.5: - version "11.0.5" - resolved "https://registry.yarnpkg.com/popmotion/-/popmotion-11.0.5.tgz#8e3e014421a0ffa30ecd722564fd2558954e1f7d" - integrity sha512-la8gPM1WYeFznb/JqF4GiTkRRPZsfaj2+kCxqQgr2MJylMmIKUwBfWW8Wa5fml/8gmtlD5yI01MP1QCZPWmppA== - dependencies: - framesync "6.1.2" - hey-listen "^1.0.8" - style-value-types "5.1.2" - tslib "2.4.0" +possible-typed-array-names@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/possible-typed-array-names/-/possible-typed-array-names-1.0.0.tgz#89bb63c6fada2c3e90adc4a647beeeb39cc7bf8f" + integrity sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q== postcss-load-config@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/postcss-load-config/-/postcss-load-config-4.0.1.tgz#152383f481c2758274404e4962743191d73875bd" - integrity sha512-vEJIc8RdiBRu3oRAI0ymerOn+7rPuMvRXslTvZUKZonDHFIczxztIyJ1urxM1x9JXEikvpWWTUUqal5j/8QgvA== + version "4.0.2" + resolved "https://registry.yarnpkg.com/postcss-load-config/-/postcss-load-config-4.0.2.tgz#7159dcf626118d33e299f485d6afe4aff7c4a3e3" + integrity sha512-bSVhyJGL00wMVoPUzAVAnbEoWyqRxkjv64tUl427SKnPrENtq6hJwUojroMz2VB+Q1edmi4IfrAPpami5VVgMQ== dependencies: - lilconfig "^2.0.5" - yaml "^2.1.1" + lilconfig "^3.0.0" + yaml "^2.3.4" postcss-selector-parser@^6.0.10: - version "6.0.15" - resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.0.15.tgz#11cc2b21eebc0b99ea374ffb9887174855a01535" - integrity sha512-rEYkQOMUCEMhsKbK66tbEU9QVIxbhN18YiniAwA7XQYTVBqrBy+P2p5JcdqsHgKM2zWylp8d7J6eszocfds5Sw== + version "6.0.16" + resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.0.16.tgz#3b88b9f5c5abd989ef4e2fc9ec8eedd34b20fb04" + integrity sha512-A0RVJrX+IUkVZbW3ClroRWurercFhieevHB38sr2+l9eUClMqome3LmEmnhlNy+5Mr2EYN6B2Kaw9wYdd+VHiw== dependencies: cssesc "^3.0.0" util-deprecate "^1.0.2" @@ -9735,13 +9722,13 @@ postcss-value-parser@^4.0.2, postcss-value-parser@^4.2.0: integrity sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ== postcss@^8.1.10: - version "8.4.27" - resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.27.tgz#234d7e4b72e34ba5a92c29636734349e0d9c3057" - integrity sha512-gY/ACJtJPSmUFPDCHtX78+01fHa64FaU4zaaWfuh1MhGJISufJAH4cun6k/8fwsHYeK4UQmENQK+tRLCFJE8JQ== + version "8.4.38" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.38.tgz#b387d533baf2054288e337066d81c6bee9db9e0e" + integrity sha512-Wglpdk03BSfXkHoQa3b/oulrotAkwrlLDRSOb9D0bN86FdRyE9lppSp33aHNPgBa0JKCoB+drFLZkQoRRYae5A== dependencies: - nanoid "^3.3.6" + nanoid "^3.3.7" picocolors "^1.0.0" - source-map-js "^1.0.2" + source-map-js "^1.2.0" posthtml-parser@^0.10.1: version "0.10.2" @@ -9773,9 +9760,9 @@ posthtml@^0.16.4, posthtml@^0.16.5: posthtml-render "^3.0.0" prebuild-install@^7.1.1: - version "7.1.1" - resolved "https://registry.yarnpkg.com/prebuild-install/-/prebuild-install-7.1.1.tgz#de97d5b34a70a0c81334fd24641f2a1702352e45" - integrity sha512-jAXscXWMcCK8GgCoHOfIr0ODh5ai8mj63L2nWrjuAgXE6tDyYGnx4/8o/rCgU+B4JSyZBKbeZqzhtwtC3ovxjw== + version "7.1.2" + resolved "https://registry.yarnpkg.com/prebuild-install/-/prebuild-install-7.1.2.tgz#a5fd9986f5a6251fbc47e1e5c65de71e68c0a056" + integrity sha512-UnNke3IQb6sgarcZIDU3gbMeTp/9SSU1DAIkil7PrqG1vZlBtY5msYccSKSHDqa3hNg436IXK+SNImReuA1wEQ== dependencies: detect-libc "^2.0.0" expand-template "^2.0.3" @@ -9791,35 +9778,35 @@ prebuild-install@^7.1.1: tunnel-agent "^0.6.0" preferred-pm@^3.0.0: - version "3.1.2" - resolved "https://registry.yarnpkg.com/preferred-pm/-/preferred-pm-3.1.2.tgz#aedb70550734a574dffcbf2ce82642bd1753bdd6" - integrity sha512-nk7dKrcW8hfCZ4H6klWcdRknBOXWzNQByJ0oJyX97BOupsYD+FzLS4hflgEu/uPUEHZCuRfMxzCBsuWd7OzT8Q== + version "3.1.3" + resolved "https://registry.yarnpkg.com/preferred-pm/-/preferred-pm-3.1.3.tgz#4125ea5154603136c3b6444e5f5c94ecf90e4916" + integrity sha512-MkXsENfftWSRpzCzImcp4FRsCc3y1opwB73CfCNWyzMqArju2CrlMHlqB7VexKiPEOjGMbttv1r9fSCn5S610w== dependencies: find-up "^5.0.0" find-yarn-workspace-root2 "1.2.16" path-exists "^4.0.0" which-pm "2.0.0" -prettier@^2.2.1: - version "2.7.1" - resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.7.1.tgz#e235806850d057f97bb08368a4f7d899f7760c64" - integrity sha512-ujppO+MkdPqoVINuDFDRLClm7D78qbDt0/NR+wp5FqEZOoTNAjPHWj17QRhu7geIHJfcNhRk1XVQmF8Bp3ye+g== - -prettier@^2.7.1: +prettier@^2.2.1, prettier@^2.7.1: version "2.8.8" resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.8.8.tgz#e8c5d7e98a4305ffe3de2e1fc4aca1a71c28b1da" integrity sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q== pretty-bytes@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/pretty-bytes/-/pretty-bytes-6.0.0.tgz#928be2ad1f51a2e336add8ba764739f9776a8140" - integrity sha512-6UqkYefdogmzqAZWzJ7laYeJnaXDy2/J+ZqiiMtS7t7OfpXWTlaeGMwX8U6EFvPV/YWWEKRkS8hKS4k60WHTOg== + version "6.1.1" + resolved "https://registry.yarnpkg.com/pretty-bytes/-/pretty-bytes-6.1.1.tgz#38cd6bb46f47afbf667c202cfc754bffd2016a3b" + integrity sha512-mQUvGU6aUFQ+rNvTIAcZuWGRT9a6f6Yrg9bHs4ImKF+HZCEK+plBvnAZYSIQztknZF2qnzNtr6F8s0+IuptdlQ== proc-log@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/proc-log/-/proc-log-3.0.0.tgz#fb05ef83ccd64fd7b20bbe9c8c1070fc08338dd8" integrity sha512-++Vn7NS4Xf9NacaU9Xq3URUuqZETPsf8L4j5/ckhaRYsfPeRyzGw+iDjFhV/Jr3uNmTvvddEJFWh5R1gRgUH8A== +proc-log@^4.0.0, proc-log@^4.1.0, proc-log@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/proc-log/-/proc-log-4.2.0.tgz#b6f461e4026e75fdfe228b265e9f7a00779d7034" + integrity sha512-g8+OnU/L2v+wyiVK+D5fA34J7EH8jZ8DDlvwhRCMxmMj7UCBvxiO1mGeN+36JXIKF4zevU4kRBd8lVgG9vLelA== + process-nextick-args@~2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2" @@ -9830,15 +9817,20 @@ process@0.11.10: resolved "https://registry.yarnpkg.com/process/-/process-0.11.10.tgz#7332300e840161bda3e69a1d1d91a7d4bc16f182" integrity sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A== +proggy@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/proggy/-/proggy-2.0.0.tgz#154bb0e41d3125b518ef6c79782455c2c47d94e1" + integrity sha512-69agxLtnI8xBs9gUGqEnK26UfiexpHy+KUpBQWabiytQjnn5wFY8rklAi7GRfABIuPNnQ/ik48+LGLkYYJcy4A== + promise-all-reject-late@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/promise-all-reject-late/-/promise-all-reject-late-1.0.1.tgz#f8ebf13483e5ca91ad809ccc2fcf25f26f8643c2" integrity sha512-vuf0Lf0lOxyQREH7GDIOUMLS7kz+gs8i6B+Yi8dC68a2sychGrHTJYghMBD6k7eUcH0H5P73EckCA48xijWqXw== -promise-call-limit@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/promise-call-limit/-/promise-call-limit-1.0.2.tgz#f64b8dd9ef7693c9c7613e7dfe8d6d24de3031ea" - integrity sha512-1vTUnfI2hzui8AEIixbdAJlFY4LFDXqQswy/2eOlThAscXCY4It8FdVuI0fMJGAB2aWGbdQf/gv0skKYXmdrHA== +promise-call-limit@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/promise-call-limit/-/promise-call-limit-3.0.1.tgz#3570f7a3f2aaaf8e703623a552cd74749688cf19" + integrity sha512-utl+0x8gIDasV5X+PI5qWEPqH6fJS0pFtQ/4gZ95xfEFb/89dmh+/b895TbFDBLiafBvxD/PGTKfvxl4kH/pQg== promise-inflight@^1.0.1: version "1.0.1" @@ -9854,11 +9846,11 @@ promise-retry@^2.0.1: retry "^0.12.0" promzard@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/promzard/-/promzard-1.0.0.tgz#3246f8e6c9895a77c0549cefb65828ac0f6c006b" - integrity sha512-KQVDEubSUHGSt5xLakaToDFrSoZhStB8dXLzk2xvwR67gJktrHFvpR63oZgHyK19WKbHFLXJqCPXdVR3aBP8Ig== + version "1.0.1" + resolved "https://registry.yarnpkg.com/promzard/-/promzard-1.0.1.tgz#3b77251a24f988c0886f5649d4f642bcdd53e558" + integrity sha512-ulDF77aULEHUoJkN5XZgRV5loHXBaqd9eorMvLNLvi2gXMuRAtwH6Gh4zsMHQY1kTt7tyv/YZwZW5C2gtj8F2A== dependencies: - read "^2.0.0" + read "^3.0.1" prop-types@^15.6.0, prop-types@^15.7.2: version "15.8.1" @@ -9909,15 +9901,15 @@ pump@^3.0.0: end-of-stream "^1.1.0" once "^1.3.1" -punycode@1.3.2: - version "1.3.2" - resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.3.2.tgz#9653a036fb7c1ee42342f2325cceefea3926c48d" - integrity sha512-RofWgt/7fL5wP1Y7fxE7/EmTLzQVnB0ycyibJ0OOHIlJqTNzglYFxVwETOcIoJqJmpDXJ9xImDv+Fq34F/d4Dw== +punycode@^1.4.1: + version "1.4.1" + resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e" + integrity sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ== punycode@^2.1.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.3.0.tgz#f67fa67c94da8f4d0cfff981aee4118064199b8f" - integrity sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA== + version "2.3.1" + resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.3.1.tgz#027422e2faec0b25e1549c3e1bd8309b9133b6e5" + integrity sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg== qr.js@0.0.0: version "0.0.0" @@ -9943,23 +9935,18 @@ qrcode.react@^1.0.1: prop-types "^15.6.0" qr.js "0.0.0" -qs@^6.9.4: - version "6.11.0" - resolved "https://registry.yarnpkg.com/qs/-/qs-6.11.0.tgz#fd0d963446f7a65e1367e01abd85429453f0c37a" - integrity sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q== +qs@^6.11.2: + version "6.12.1" + resolved "https://registry.yarnpkg.com/qs/-/qs-6.12.1.tgz#39422111ca7cbdb70425541cba20c7d7b216599a" + integrity sha512-zWmv4RSuB9r2mYQw3zxQuHWeU+42aKi1wWig/j4ele4ygELZ7PEO6MM7rim9oAQH2A5MWfsAVf/jPvTPgCbvUQ== dependencies: - side-channel "^1.0.4" + side-channel "^1.0.6" querystring-es3@^0.2.1: version "0.2.1" resolved "https://registry.yarnpkg.com/querystring-es3/-/querystring-es3-0.2.1.tgz#9ec61f79049875707d69414596fd907a4d711e73" integrity sha512-773xhDQnZBMFobEiztv8LIl70ch5MSF/jUQVlhwFyBILqq96anmoctVIYz+ZRp0qbCKATTn6ev02M3r7Ga5vqA== -querystring@0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/querystring/-/querystring-0.2.0.tgz#b209849203bb25df820da756e747005878521620" - integrity sha512-X/xY82scca2tau62i9mDyU9K+I+djTMUsvwf7xnUX5GLvVzgJybOJf4Y6o9Zx3oJK/LSXg5tTZBjwzqVPaPO2g== - queue-microtask@^1.2.2, queue-microtask@^1.2.3: version "1.2.3" resolved "https://registry.yarnpkg.com/queue-microtask/-/queue-microtask-1.2.3.tgz#4929228bbc724dfac43e0efb058caf7b6cfb6243" @@ -9985,6 +9972,11 @@ ramda@^0.29.1: resolved "https://registry.yarnpkg.com/ramda/-/ramda-0.29.1.tgz#408a6165b9555b7ba2fc62555804b6c5a2eca196" integrity sha512-OfxIeWzd4xdUNxlWhgFazxsA/nl3mS4/jGZI5n00uWOoSSFRhC1b6gl6xvmzUamgmqELraWp0J/qqVlXYPDPyA== +ramda@^0.30.0: + version "0.30.0" + resolved "https://registry.yarnpkg.com/ramda/-/ramda-0.30.0.tgz#3cc4f0ddddfa6334dad2f371bd72c33237d92cd0" + integrity sha512-13Y0iMhIQuAm/wNGBL/9HEqIfRGmNmjKnTPlKWfA9f7dnDkr8d45wQ+S7+ZLh/Pq9PdcGxkqKUEA7ySu1QSd9Q== + randombytes@^2.0.0, randombytes@^2.0.1, randombytes@^2.0.5: version "2.1.0" resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.1.0.tgz#df6f84372f0270dc65cdf6291349ab7a473d4f2a" @@ -10024,9 +10016,9 @@ react-error-overlay@6.0.9: integrity sha512-nQTTcUu+ATDbrSD1BZHr5kgSD4oF8OFjxun8uAaL8RwPBacGBNPf/yAuVVdx17N8XNzRDMrZ9XcKZHCjPW+9ew== react-fast-marquee@^1.3.5: - version "1.3.5" - resolved "https://registry.yarnpkg.com/react-fast-marquee/-/react-fast-marquee-1.3.5.tgz#e53995027102fbec92da90606d7ca89703db9903" - integrity sha512-eOqLoz4iVVBvi2wN/web8hd2XX9y2Z6CYR7g++7nTVHlTOXBtqyARQJ9rYNpbp179hAzloMx0yBFAo8LpNYmKQ== + version "1.6.4" + resolved "https://registry.yarnpkg.com/react-fast-marquee/-/react-fast-marquee-1.6.4.tgz#ac0bed0faee63e4d97e9b8cd03f3bea9f242fab3" + integrity sha512-LAgvhRmHdqaUQ8R5jCUwzEGFUIjnCCt3T3W8X7j7wF6DWe0SATlpP0JX1V0pp2qX3DYUezmn1Iz5AtRFdL2EWQ== react-is@^16.13.1, react-is@^16.7.0: version "16.13.1" @@ -10087,15 +10079,14 @@ read-package-json-fast@^3.0.0, read-package-json-fast@^3.0.2: json-parse-even-better-errors "^3.0.0" npm-normalize-package-bin "^3.0.0" -read-package-json@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/read-package-json/-/read-package-json-7.0.0.tgz#d605c9dcf6bc5856da24204aa4e9518ee9714be0" - integrity sha512-uL4Z10OKV4p6vbdvIXB+OzhInYtIozl/VxUBPgNkBuUi2DeRonnuspmaVAMcrkmfjKGNmRndyQAbE7/AmzGwFg== +read-package-up@^11.0.0: + version "11.0.0" + resolved "https://registry.yarnpkg.com/read-package-up/-/read-package-up-11.0.0.tgz#71fb879fdaac0e16891e6e666df22de24a48d5ba" + integrity sha512-MbgfoNPANMdb4oRBNg5eqLbB2t2r+o5Ua1pNt8BqGp4I0FJZhuVSOj3PaBPni4azWuSzEdNn2evevzVmEk1ohQ== dependencies: - glob "^10.2.2" - json-parse-even-better-errors "^3.0.0" - normalize-package-data "^6.0.0" - npm-normalize-package-bin "^3.0.0" + find-up-simple "^1.0.0" + read-pkg "^9.0.0" + type-fest "^4.6.0" read-pkg-up@^11.0.0: version "11.0.0" @@ -10146,27 +10137,14 @@ read-yaml-file@^1.1.0: pify "^4.0.1" strip-bom "^3.0.0" -read@^2.0.0, read@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/read/-/read-2.1.0.tgz#69409372c54fe3381092bc363a00650b6ac37218" - integrity sha512-bvxi1QLJHcaywCAEsAk4DG3nVoqiY2Csps3qzWalhj5hFqRn1d/OixkFXtLO1PrgHUcAP0FNaSY/5GYNfENFFQ== - dependencies: - mute-stream "~1.0.0" - -readable-stream@^2.0.0, readable-stream@^2.0.5, readable-stream@~2.3.6: - version "2.3.7" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.7.tgz#1eca1cf711aef814c04f62252a36a62f6cb23b57" - integrity sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw== +read@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/read/-/read-3.0.1.tgz#926808f0f7c83fa95f1ef33c0e2c09dbb28fd192" + integrity sha512-SLBrDU/Srs/9EoWhU5GdbAoxG1GzpQHo/6qiGItaoLJ1thmYpcNIM1qISEUvyHBzfGlWIyd6p2DNi1oV1VmAuw== dependencies: - core-util-is "~1.0.0" - inherits "~2.0.3" - isarray "~1.0.0" - process-nextick-args "~2.0.0" - safe-buffer "~5.1.1" - string_decoder "~1.1.1" - util-deprecate "~1.0.1" + mute-stream "^1.0.0" -readable-stream@^2.0.2: +readable-stream@^2.0.0, readable-stream@^2.0.2, readable-stream@^2.0.5, readable-stream@^2.3.8, readable-stream@~2.3.6: version "2.3.8" resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.8.tgz#91125e8042bba1b9887f49345f6277027ce8be9b" integrity sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA== @@ -10180,18 +10158,18 @@ readable-stream@^2.0.2: util-deprecate "~1.0.1" readable-stream@^3.1.1, readable-stream@^3.4.0, readable-stream@^3.5.0, readable-stream@^3.6.0: - version "3.6.0" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.0.tgz#337bbda3adc0706bd3e024426a286d4b4b2c9198" - integrity sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA== + version "3.6.2" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.2.tgz#56a9b36ea965c00c5a93ef31eb111a0f11056967" + integrity sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA== dependencies: inherits "^2.0.3" string_decoder "^1.1.1" util-deprecate "^1.0.1" -readdir-glob@^1.0.0: - version "1.1.2" - resolved "https://registry.yarnpkg.com/readdir-glob/-/readdir-glob-1.1.2.tgz#b185789b8e6a43491635b6953295c5c5e3fd224c" - integrity sha512-6RLVvwJtVwEDfPdn6X6Ille4/lxGl0ATOY4FN/B9nxQcgOazvvI0nodiD19ScKq0PvA/29VpaOQML36o5IzZWA== +readdir-glob@^1.1.2: + version "1.1.3" + resolved "https://registry.yarnpkg.com/readdir-glob/-/readdir-glob-1.1.3.tgz#c3d831f51f5e7bfa62fa2ffbe4b508c640f09584" + integrity sha512-v05I2k7xN8zXvPD9N+z/uhXPaj0sUFCe2rcWZIpBsqxfP7xXFQ0tipAd/wjj1YxWyWtUS5IDJpOG82JKt2EAVA== dependencies: minimatch "^5.1.0" @@ -10210,13 +10188,6 @@ redent@^3.0.0: indent-string "^4.0.0" strip-indent "^3.0.0" -redeyed@~2.1.0: - version "2.1.1" - resolved "https://registry.yarnpkg.com/redeyed/-/redeyed-2.1.1.tgz#8984b5815d99cb220469c99eeeffe38913e6cc0b" - integrity sha512-FNpGGo1DycYAdnrKFxCMmKYgo/mILAqtRYbkdQD8Ep/Hk2PQ5+aEAEx+IU713RTDmuBaH0c8P5ZozurNu5ObRQ== - dependencies: - esprima "~4.0.0" - redstone-api@^0.4.11: version "0.4.11" resolved "https://registry.yarnpkg.com/redstone-api/-/redstone-api-0.4.11.tgz#103530e7a23138bb24332ce4d893eb72e61109bd" @@ -10230,7 +10201,7 @@ redstone-api@^0.4.11: lodash "^4.17.21" pako "^2.0.3" -regenerator-runtime@^0.13.11, regenerator-runtime@^0.13.7: +regenerator-runtime@^0.13.7: version "0.13.11" resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz#f6dca3e7ceec20590d07ada785636a90cdca17f9" integrity sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg== @@ -10240,38 +10211,23 @@ regenerator-runtime@^0.14.0: resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz#356ade10263f685dda125100cd862c1db895327f" integrity sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw== -regexp.prototype.flags@^1.4.3: - version "1.4.3" - resolved "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.4.3.tgz#87cab30f80f66660181a3bb7bf5981a872b367ac" - integrity sha512-fjggEOO3slI6Wvgjwflkc4NFRCTZAu5CnNfBd5qOMYhWdn67nJBBu34/TkD++eeFmd8C9r9jfXJ27+nSiRkSUA== - dependencies: - call-bind "^1.0.2" - define-properties "^1.1.3" - functions-have-names "^1.2.2" - -regexp.prototype.flags@^1.5.1: - version "1.5.1" - resolved "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.5.1.tgz#90ce989138db209f81492edd734183ce99f9677e" - integrity sha512-sy6TXMN+hnP/wMy+ISxg3krXx7BAtWVO4UouuCN/ziM9UEne0euamVNafDfvC83bRNr95y0V5iijeDQFUNpvrg== +regexp.prototype.flags@^1.5.2: + version "1.5.2" + resolved "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.5.2.tgz#138f644a3350f981a858c44f6bb1a61ff59be334" + integrity sha512-NcDiDkTLuPR+++OCKB0nWafEmhg/Da8aUPLPMQbK+bxKKCm1/S5he+AqYa4PlMCVBalb4/yxIRub6qkEx5yJbw== dependencies: - call-bind "^1.0.2" - define-properties "^1.2.0" - set-function-name "^2.0.0" + call-bind "^1.0.6" + define-properties "^1.2.1" + es-errors "^1.3.0" + set-function-name "^2.0.1" -registry-auth-token@^5.0.0: +registry-auth-token@^5.0.0, registry-auth-token@^5.0.1: version "5.0.2" resolved "https://registry.yarnpkg.com/registry-auth-token/-/registry-auth-token-5.0.2.tgz#8b026cc507c8552ebbe06724136267e63302f756" integrity sha512-o/3ikDxtXaA59BmZuZrJZDJv8NMDGSj+6j6XaeBmHw8eY1i1qd9+6H+LjVvQXx3HN6aRCGa1cUdJ9RaJZUugnQ== dependencies: "@pnpm/npm-conf" "^2.1.0" -registry-auth-token@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/registry-auth-token/-/registry-auth-token-5.0.1.tgz#5e6cd106e6c251135a046650c58476fc03e92833" - integrity sha512-UfxVOj8seK1yaIOiieV4FIP01vfBDLsY0H9sQzi9EbbUdJiuuBjJgLa1DpImXMNPnVkBD4eVxTEXcrZA6kfpJA== - dependencies: - "@pnpm/npm-conf" "^1.0.4" - registry-url@^6.0.0: version "6.0.1" resolved "https://registry.yarnpkg.com/registry-url/-/registry-url-6.0.1.tgz#056d9343680f2f64400032b1e199faa692286c58" @@ -10304,16 +10260,7 @@ resolve-from@^5.0.0: resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-5.0.0.tgz#c35225843df8f776df21c57557bc087e9dfdfc69" integrity sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw== -resolve@^1.1.7: - version "1.22.2" - resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.2.tgz#0ed0943d4e301867955766c9f3e1ae6d01c6845f" - integrity sha512-Sb+mjNHOULsBv818T40qSPeRiuWLyaGMa5ewydRLFimneixmVy2zdivRl+AF6jaYPC8ERxGDmFSiqui6SfPd+g== - dependencies: - is-core-module "^2.11.0" - path-parse "^1.0.7" - supports-preserve-symlinks-flag "^1.0.0" - -resolve@^1.10.0: +resolve@^1.1.7, resolve@^1.10.0: version "1.22.8" resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.8.tgz#b6c87a9f2aa06dfab52e3d70ac8cde321fa5a48d" integrity sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw== @@ -10347,13 +10294,6 @@ reusify@^1.0.4: resolved "https://registry.yarnpkg.com/reusify/-/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76" integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw== -rimraf@^3.0.0: - version "3.0.2" - resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a" - integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA== - dependencies: - glob "^7.1.3" - ripemd160@^2.0.0, ripemd160@^2.0.1: version "2.0.2" resolved "https://registry.yarnpkg.com/ripemd160/-/ripemd160-2.0.2.tgz#a1c1a6f624751577ba5d07914cbc92850585890c" @@ -10363,9 +10303,9 @@ ripemd160@^2.0.0, ripemd160@^2.0.1: inherits "^2.0.1" rollup@^3.2.5: - version "3.26.3" - resolved "https://registry.yarnpkg.com/rollup/-/rollup-3.26.3.tgz#bbc8818cadd0aebca348dbb3d68d296d220967b8" - integrity sha512-7Tin0C8l86TkpcMtXvQu6saWH93nhG3dGQ1/+l5V2TDMceTxO7kDiK6GzbfLWNNxqJXm591PcEZUozZm51ogwQ== + version "3.29.4" + resolved "https://registry.yarnpkg.com/rollup/-/rollup-3.29.4.tgz#4d70c0f9834146df8705bfb69a9a19c9e1109981" + integrity sha512-oWzmBZwvYrU0iJHtDmhsm662rC15FRXmcjCk1xD771dFDx5jJ02ufAQQTn0etB2emNk4J9EZg/yWKpsn9BWGRw== optionalDependencies: fsevents "~2.3.2" @@ -10417,17 +10357,17 @@ rxjs@^7.8.1: dependencies: tslib "^2.1.0" -safe-array-concat@^1.0.1: - version "1.1.0" - resolved "https://registry.yarnpkg.com/safe-array-concat/-/safe-array-concat-1.1.0.tgz#8d0cae9cb806d6d1c06e08ab13d847293ebe0692" - integrity sha512-ZdQ0Jeb9Ofti4hbt5lX3T2JcAamT9hfzYU1MNB+z/jaEbB6wfFfPIR/zEORmZqobkCCJhSjodobH6WHNmJ97dg== +safe-array-concat@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/safe-array-concat/-/safe-array-concat-1.1.2.tgz#81d77ee0c4e8b863635227c721278dd524c20edb" + integrity sha512-vj6RsCsWBCf19jIeHEfkRMw8DPiBb+DMXklQ/1SGDHOMlHdPUkZXFQ2YdplS23zESTijAcurb1aSgJA3AgMu1Q== dependencies: - call-bind "^1.0.5" - get-intrinsic "^1.2.2" + call-bind "^1.0.7" + get-intrinsic "^1.2.4" has-symbols "^1.0.3" isarray "^2.0.5" -safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.1, safe-buffer@^5.1.2, safe-buffer@^5.2.0, safe-buffer@~5.2.0: +safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.1, safe-buffer@^5.1.2, safe-buffer@^5.2.0, safe-buffer@^5.2.1, safe-buffer@~5.2.0: version "5.2.1" resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== @@ -10437,7 +10377,7 @@ safe-buffer@~5.1.0, safe-buffer@~5.1.1: resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== -safe-regex-test@^1.0.0: +safe-regex-test@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/safe-regex-test/-/safe-regex-test-1.0.3.tgz#a5b4c0f06e0ab50ea2c395c14d8371232924c377" integrity sha512-CdASjNJPvRa7roO6Ra/gLYBTzYzzPyyBXxIMdGW3USQLyjWEls2RgW5UBTXaQVp+OrpeCK3bLem8smtmheoRuw== @@ -10457,23 +10397,23 @@ safe-stable-stringify@2.4.1: integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== sass@^1.38.0: - version "1.64.1" - resolved "https://registry.yarnpkg.com/sass/-/sass-1.64.1.tgz#6a46f6d68e0fa5ad90aa59ce025673ddaa8441cf" - integrity sha512-16rRACSOFEE8VN7SCgBu1MpYCyN7urj9At898tyzdXFhC+a+yOX5dXwAR7L8/IdPJ1NB8OYoXmD55DM30B2kEQ== + version "1.76.0" + resolved "https://registry.yarnpkg.com/sass/-/sass-1.76.0.tgz#fe15909500735ac154f0dc7386d656b62b03987d" + integrity sha512-nc3LeqvF2FNW5xGF1zxZifdW3ffIz5aBb7I7tSvOoNu7z1RQ6pFt9MBuiPtjgaI62YWrM/txjWlOCFiGtf2xpw== dependencies: chokidar ">=3.0.0 <4.0.0" immutable "^4.0.0" source-map-js ">=0.6.2 <2.0.0" sax@>=0.6.0, sax@^1.2.4: - version "1.2.4" - resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9" - integrity sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw== + version "1.3.0" + resolved "https://registry.yarnpkg.com/sax/-/sax-1.3.0.tgz#a5dbe77db3be05c9d1ee7785dbd3ea9de51593d0" + integrity sha512-0s+oAmw9zLl1V1cS9BtZN7JAd0cW5e0QH4W3LWEK6a4LaLEA2OTpGYWDY+6XasBLtz6wkm3u1xRw95mRuJ59WA== scheduler@^0.23.0: - version "0.23.0" - resolved "https://registry.yarnpkg.com/scheduler/-/scheduler-0.23.0.tgz#ba8041afc3d30eb206a487b6b384002e4e61fdfe" - integrity sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw== + version "0.23.2" + resolved "https://registry.yarnpkg.com/scheduler/-/scheduler-0.23.2.tgz#414ba64a3b282892e944cf2108ecc078d115cdc3" + integrity sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ== dependencies: loose-envify "^1.1.0" @@ -10487,44 +10427,44 @@ sdp@^2.12.0, sdp@^2.6.0: resolved "https://registry.yarnpkg.com/sdp/-/sdp-2.12.0.tgz#338a106af7560c86e4523f858349680350d53b22" integrity sha512-jhXqQAQVM+8Xj5EjJGVweuEzgtGWb3tmEEpl3CLP3cStInSbVHSg0QWOGQzNq8pSID4JkpeV2mPqlMDLrm0/Vw== -secp256k1@^4.0.2: - version "4.0.3" - resolved "https://registry.yarnpkg.com/secp256k1/-/secp256k1-4.0.3.tgz#c4559ecd1b8d3c1827ed2d1b94190d69ce267303" - integrity sha512-NLZVf+ROMxwtEj3Xa562qgv2BK5e2WNmXPiOdVIPLgs6lyTzMvBq0aWTYMI5XCP9jZMVKOcqZLw/Wc4vDkuxhA== +secp256k1@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/secp256k1/-/secp256k1-5.0.0.tgz#be6f0c8c7722e2481e9773336d351de8cddd12f7" + integrity sha512-TKWX8xvoGHrxVdqbYeZM9w+izTF4b9z3NhSaDkdn81btvuh+ivbIMGT/zQvDtTFWhRlThpoz6LEYTr7n8A5GcA== dependencies: elliptic "^6.5.4" - node-addon-api "^2.0.0" + node-addon-api "^5.0.0" node-gyp-build "^4.2.0" semantic-release@^23.0.0: - version "23.0.0" - resolved "https://registry.yarnpkg.com/semantic-release/-/semantic-release-23.0.0.tgz#ecb3685116f5ff284824e7c377cf9a3ce80c5428" - integrity sha512-Jz7jEWO2igTtske112gC4PPE2whCMVrsgxUPG3/SZI7VE357suIUZFlJd1Yu0g2I6RPc2HxNEfUg7KhmDTjwqg== + version "23.0.8" + resolved "https://registry.yarnpkg.com/semantic-release/-/semantic-release-23.0.8.tgz#4a7d0b6de75d983082583502a257cc5646165800" + integrity sha512-yZkuWcTTfh5h/DrR4Q4QvJSARJdb6wjwn/sN0qKMYEkvwaVFek8YWfrgtL8oWaRdl0fLte0Y1wWMzLbwoaII1g== dependencies: - "@semantic-release/commit-analyzer" "^11.0.0" + "@semantic-release/commit-analyzer" "^12.0.0" "@semantic-release/error" "^4.0.0" - "@semantic-release/github" "^9.0.0" - "@semantic-release/npm" "^11.0.0" - "@semantic-release/release-notes-generator" "^12.0.0" + "@semantic-release/github" "^10.0.0" + "@semantic-release/npm" "^12.0.0" + "@semantic-release/release-notes-generator" "^13.0.0" aggregate-error "^5.0.0" cosmiconfig "^9.0.0" debug "^4.0.0" env-ci "^11.0.0" execa "^8.0.0" figures "^6.0.0" - find-versions "^5.1.0" + find-versions "^6.0.0" get-stream "^6.0.0" git-log-parser "^1.2.0" hook-std "^3.0.0" hosted-git-info "^7.0.0" import-from-esm "^1.3.1" lodash-es "^4.17.21" - marked "^11.0.0" - marked-terminal "^6.0.0" + marked "^12.0.0" + marked-terminal "^7.0.0" micromatch "^4.0.2" p-each-series "^3.0.0" p-reduce "^3.0.0" - read-pkg-up "^11.0.0" + read-package-up "^11.0.0" resolve-from "^5.0.0" semver "^7.3.2" semver-diff "^4.0.0" @@ -10543,12 +10483,12 @@ semver-regex@^4.0.5: resolved "https://registry.yarnpkg.com/semver-regex/-/semver-regex-4.0.5.tgz#fbfa36c7ba70461311f5debcb3928821eb4f9180" integrity sha512-hunMQrEy1T6Jr2uEVjrAIqjwWcQTgOAcIM52C8MY1EZSD3DDNft04XzvYKPqjED65bNVVko0YI38nYeEHCX3yw== -"semver@2 || 3 || 4 || 5", semver@^5.6.0, semver@^5.7.1: +"semver@2 || 3 || 4 || 5", semver@^5.6.0: version "5.7.2" resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.2.tgz#48d55db737c3287cd4835e17fa13feace1c41ef8" integrity sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g== -semver@7.5.4, semver@^7.0.0, semver@^7.1.1, semver@^7.1.2, semver@^7.3.2, semver@^7.3.5, semver@^7.3.7, semver@^7.5.2, semver@^7.5.3, semver@^7.5.4: +semver@7.5.4: version "7.5.4" resolved "https://registry.yarnpkg.com/semver/-/semver-7.5.4.tgz#483986ec4ed38e1c6c48c34894a9182dbff68a6e" integrity sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA== @@ -10560,14 +10500,12 @@ semver@^6.3.1: resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.1.tgz#556d2ef8689146e46dcea4bfdd095f3434dffcb4" integrity sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA== -sentence-case@^3.0.4: - version "3.0.4" - resolved "https://registry.yarnpkg.com/sentence-case/-/sentence-case-3.0.4.tgz#3645a7b8c117c787fde8702056225bb62a45131f" - integrity sha512-8LS0JInaQMCRoQ7YUytAo/xUu5W2XnQxV2HI/6uM6U7CITS1RqPElr30V6uIqyMKM9lJGRVFy5/4CuzcixNYSg== +semver@^7.0.0, semver@^7.1.1, semver@^7.1.2, semver@^7.3.2, semver@^7.3.5, semver@^7.3.7, semver@^7.5.2, semver@^7.5.3, semver@^7.5.4, semver@^7.6.0: + version "7.6.0" + resolved "https://registry.yarnpkg.com/semver/-/semver-7.6.0.tgz#1a46a4db4bffcccd97b743b5005c8325f23d4e2d" + integrity sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg== dependencies: - no-case "^3.0.4" - tslib "^2.0.3" - upper-case-first "^2.0.2" + lru-cache "^6.0.0" serialize-error@^9.0.0: version "9.1.1" @@ -10581,26 +10519,27 @@ set-blocking@^2.0.0: resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" integrity sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw== -set-function-length@^1.2.0: - version "1.2.1" - resolved "https://registry.yarnpkg.com/set-function-length/-/set-function-length-1.2.1.tgz#47cc5945f2c771e2cf261c6737cf9684a2a5e425" - integrity sha512-j4t6ccc+VsKwYHso+kElc5neZpjtq9EnRICFZtWyBsLojhmeF/ZBd/elqm22WJh/BziDe/SBiOeAt0m2mfLD0g== +set-function-length@^1.2.1: + version "1.2.2" + resolved "https://registry.yarnpkg.com/set-function-length/-/set-function-length-1.2.2.tgz#aac72314198eaed975cf77b2c3b6b880695e5449" + integrity sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg== dependencies: - define-data-property "^1.1.2" + define-data-property "^1.1.4" es-errors "^1.3.0" function-bind "^1.1.2" - get-intrinsic "^1.2.3" + get-intrinsic "^1.2.4" gopd "^1.0.1" - has-property-descriptors "^1.0.1" + has-property-descriptors "^1.0.2" -set-function-name@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/set-function-name/-/set-function-name-2.0.1.tgz#12ce38b7954310b9f61faa12701620a0c882793a" - integrity sha512-tMNCiqYVkXIZgc2Hnoy2IvC/f8ezc5koaRFkCjrpWzGpCd3qbZXPzVy9MAZzK1ch/X0jvSkojys3oqJN0qCmdA== +set-function-name@^2.0.1: + version "2.0.2" + resolved "https://registry.yarnpkg.com/set-function-name/-/set-function-name-2.0.2.tgz#16a705c5a0dc2f5e638ca96d8a8cd4e1c2b90985" + integrity sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ== dependencies: - define-data-property "^1.0.1" + define-data-property "^1.1.4" + es-errors "^1.3.0" functions-have-names "^1.2.3" - has-property-descriptors "^1.0.0" + has-property-descriptors "^1.0.2" setimmediate@^1.0.4: version "1.0.5" @@ -10627,13 +10566,13 @@ shallowequal@^1.1.0: resolved "https://registry.yarnpkg.com/shallowequal/-/shallowequal-1.1.0.tgz#188d521de95b9087404fd4dcb68b13df0ae4e7f8" integrity sha512-y0m1JoUZSlPAjXVtPPW70aZWfIL/dSP7AFkRnniLCrK/8MDKog3TySTBmckD+RObVxH0v4Tox67+F14PdED2oQ== -sharp@0.32.3: - version "0.32.3" - resolved "https://registry.yarnpkg.com/sharp/-/sharp-0.32.3.tgz#fd6f5227c5a6cb2a020836617243effe68ceb731" - integrity sha512-i1gFPiNqyqxC4ouVvCKj5G8WfPIMeeSxpKcMrjic6NY4e8zktW7bIdqHPc3FCG+pNKU/XCEabKA57hhvZi8UmQ== +sharp@0.32.6: + version "0.32.6" + resolved "https://registry.yarnpkg.com/sharp/-/sharp-0.32.6.tgz#6ad30c0b7cd910df65d5f355f774aa4fce45732a" + integrity sha512-KyLTWwgcR9Oe4d9HwCwNM2l7+J0dUQwn/yf7S0EnTtb0eVS4RxO0eUSvxPtzT4F3SY+C4K6fqdv/DO27sJ/v/w== dependencies: color "^4.2.3" - detect-libc "^2.0.1" + detect-libc "^2.0.2" node-addon-api "^6.1.0" prebuild-install "^7.1.1" semver "^7.5.4" @@ -10665,14 +10604,15 @@ shebang-regex@^3.0.0: resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172" integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== -side-channel@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.0.4.tgz#efce5c8fdc104ee751b25c58d4290011fa5ea2cf" - integrity sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw== +side-channel@^1.0.4, side-channel@^1.0.6: + version "1.0.6" + resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.0.6.tgz#abd25fb7cd24baf45466406b1096b7831c9215f2" + integrity sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA== dependencies: - call-bind "^1.0.0" - get-intrinsic "^1.0.2" - object-inspect "^1.9.0" + call-bind "^1.0.7" + es-errors "^1.3.0" + get-intrinsic "^1.2.4" + object-inspect "^1.13.1" signal-exit@^3.0.2, signal-exit@^3.0.3: version "3.0.7" @@ -10693,17 +10633,17 @@ signale@^1.2.1: figures "^2.0.0" pkg-conf "^2.1.0" -sigstore@^2.1.0, sigstore@^2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/sigstore/-/sigstore-2.2.0.tgz#acba5f73ca2158d2b0507bc52d3592149c3ed20e" - integrity sha512-fcU9clHwEss2/M/11FFM8Jwc4PjBgbhXoNskoK5guoK0qGQBSeUbQZRJ+B2fDFIvhyf0gqCaPrel9mszbhAxug== +sigstore@^2.2.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/sigstore/-/sigstore-2.3.0.tgz#c56b32818d4dc989f6ea3c0897f4d9bff5d14bed" + integrity sha512-q+o8L2ebiWD1AxD17eglf1pFrl9jtW7FHa0ygqY6EKvibK8JHyq9Z26v9MZXeDiw+RbfOJ9j2v70M10Hd6E06A== dependencies: - "@sigstore/bundle" "^2.1.1" - "@sigstore/core" "^0.2.0" - "@sigstore/protobuf-specs" "^0.2.1" - "@sigstore/sign" "^2.2.1" - "@sigstore/tuf" "^2.3.0" - "@sigstore/verify" "^0.1.0" + "@sigstore/bundle" "^2.3.1" + "@sigstore/core" "^1.0.0" + "@sigstore/protobuf-specs" "^0.3.1" + "@sigstore/sign" "^2.3.0" + "@sigstore/tuf" "^2.3.1" + "@sigstore/verify" "^1.2.0" simple-concat@^1.0.0: version "1.0.1" @@ -10760,35 +10700,27 @@ smartwrap@^2.0.2: wcwidth "^1.0.1" yargs "^15.1.0" -snake-case@^3.0.4: - version "3.0.4" - resolved "https://registry.yarnpkg.com/snake-case/-/snake-case-3.0.4.tgz#4f2bbd568e9935abdfd593f34c691dadb49c452c" - integrity sha512-LAOh4z89bGQvl9pFfNF8V146i7o7/CqFPbqzYgP+yYzDIDeS9HaNFtXABamRW+AQzEVODcvE79ljJ+8a9YSdMg== - dependencies: - dot-case "^3.0.4" - tslib "^2.0.3" - -socks-proxy-agent@^8.0.1: - version "8.0.2" - resolved "https://registry.yarnpkg.com/socks-proxy-agent/-/socks-proxy-agent-8.0.2.tgz#5acbd7be7baf18c46a3f293a840109a430a640ad" - integrity sha512-8zuqoLv1aP/66PHF5TqwJ7Czm3Yv32urJQHrVyhD7mmA6d61Zv8cIXQYPTWwmg6qlupnPvs/QKDmfa4P/qct2g== +socks-proxy-agent@^8.0.3: + version "8.0.3" + resolved "https://registry.yarnpkg.com/socks-proxy-agent/-/socks-proxy-agent-8.0.3.tgz#6b2da3d77364fde6292e810b496cb70440b9b89d" + integrity sha512-VNegTZKhuGq5vSD6XNKlbqWhyt/40CgoEw8XxD6dhnm8Jq9IEa3nIa4HwnM8XOqU0CdB0BwWVXusqiFXfHB3+A== dependencies: - agent-base "^7.0.2" + agent-base "^7.1.1" debug "^4.3.4" socks "^2.7.1" socks@^2.7.1: - version "2.7.1" - resolved "https://registry.yarnpkg.com/socks/-/socks-2.7.1.tgz#d8e651247178fde79c0663043e07240196857d55" - integrity sha512-7maUZy1N7uo6+WVEX6psASxtNlKaNVMlGQKkG/63nEDdLOWNbiUMoLK7X4uYoLhQstau72mLgfEWcXcwsaHbYQ== + version "2.8.3" + resolved "https://registry.yarnpkg.com/socks/-/socks-2.8.3.tgz#1ebd0f09c52ba95a09750afe3f3f9f724a800cb5" + integrity sha512-l5x7VUUWbjVFbafGLxPWkYsHIhEvmF85tbIeFZWc8ZPtoMyybuEhL7Jye/ooC4/d48FgOjSJXgsF/AJPYCW8Zw== dependencies: - ip "^2.0.0" + ip-address "^9.0.5" smart-buffer "^4.2.0" -"source-map-js@>=0.6.2 <2.0.0", source-map-js@^1.0.1, source-map-js@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-1.0.2.tgz#adbc361d9c62df380125e7f161f71c826f1e490c" - integrity sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw== +"source-map-js@>=0.6.2 <2.0.0", source-map-js@^1.0.1, source-map-js@^1.0.2, source-map-js@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-1.2.0.tgz#16b809c162517b5b8c3e7dcd315a2a5c2612b2af" + integrity sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg== source-map@0.8.0-beta.0: version "0.8.0-beta.0" @@ -10802,11 +10734,6 @@ source-map@^0.6.1, source-map@~0.6.0: resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== -spark-md5@^3.0.1: - version "3.0.2" - resolved "https://registry.yarnpkg.com/spark-md5/-/spark-md5-3.0.2.tgz#7952c4a30784347abcee73268e473b9c0167e3fc" - integrity sha512-wcFzz9cDfbuqe0FZzfi2or1sgyIrsDwmPwfZC4hiNidPdPINjeUwNfv5kldczoEAcjl9Y1L3SM7Uz2PUEQzxQw== - spawn-error-forwarder@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/spawn-error-forwarder/-/spawn-error-forwarder-1.0.0.tgz#1afd94738e999b0346d7b9fc373be55e07577029" @@ -10829,11 +10756,11 @@ spdx-correct@^3.0.0: spdx-license-ids "^3.0.0" spdx-exceptions@^2.1.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz#3f28ce1a77a00372683eade4a433183527a2163d" - integrity sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A== + version "2.5.0" + resolved "https://registry.yarnpkg.com/spdx-exceptions/-/spdx-exceptions-2.5.0.tgz#5d607d27fc806f66d7b64a766650fa890f04ed66" + integrity sha512-PiU42r+xO4UbUS1buo3LPJkjlO7430Xn5SVAhdpzzsPHsjbYVflnnFdATgabnLude+Cqu25p6N+g2lw/PFsa4w== -spdx-expression-parse@^3.0.0, spdx-expression-parse@^3.0.1: +spdx-expression-parse@^3.0.0: version "3.0.1" resolved "https://registry.yarnpkg.com/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz#cf70f50482eefdc98e3ce0a6833e4a53ceeba679" integrity sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q== @@ -10841,10 +10768,18 @@ spdx-expression-parse@^3.0.0, spdx-expression-parse@^3.0.1: spdx-exceptions "^2.1.0" spdx-license-ids "^3.0.0" +spdx-expression-parse@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/spdx-expression-parse/-/spdx-expression-parse-4.0.0.tgz#a23af9f3132115465dac215c099303e4ceac5794" + integrity sha512-Clya5JIij/7C6bRR22+tnGXbc4VKlibKSVj2iHvVeX5iMW7s1SIQlqu699JkODJJIhh/pUu8L0/VLh8xflD+LQ== + dependencies: + spdx-exceptions "^2.1.0" + spdx-license-ids "^3.0.0" + spdx-license-ids@^3.0.0: - version "3.0.16" - resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.16.tgz#a14f64e0954f6e25cc6587bd4f392522db0d998f" - integrity sha512-eWN+LnM3GR6gPu35WxNgbGl8rmY1AEmoMDvL/QD6zYmPWgywxWqJWNdLGT+ke8dKNWrcYgYjPpG5gbTfghP8rw== + version "3.0.17" + resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.17.tgz#887da8aa73218e51a1d917502d79863161a93f9c" + integrity sha512-sh8PWc/ftMqAAdFiBu6Fy6JUOYjqDJBJvIhpfDMyHrr0Rbp5liZqd4TjtQ/RgfLjKFZb+LMx5hpml5qOWy0qvg== split2@^4.0.0: version "4.2.0" @@ -10858,6 +10793,11 @@ split2@~1.0.0: dependencies: through2 "~2.0.0" +sprintf-js@^1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.1.3.tgz#4914b903a2f8b685d17fdf78a70e917e872e444a" + integrity sha512-Oo+0REFV59/rz3gfJNKQiBlwfHaSESl1pcGyABQsnnIfWOFt6JNj5gCog2U6MLZ//IGYD+nA8nI+mTShREReaA== + sprintf-js@~1.0.2: version "1.0.3" resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" @@ -10893,13 +10833,6 @@ stream-buffers@^3.0.2: resolved "https://registry.yarnpkg.com/stream-buffers/-/stream-buffers-3.0.2.tgz#5249005a8d5c2d00b3a32e6e0a6ea209dc4f3521" integrity sha512-DQi1h8VEBA/lURbSwFtEHnSTb9s2/pwLEaFuNhXwy1Dx3Sa0lOuYT2yNUr4/j2fs8oCAMANtrZ5OrPZtyVs3MQ== -stream-chunker@^1.2.8: - version "1.2.8" - resolved "https://registry.yarnpkg.com/stream-chunker/-/stream-chunker-1.2.8.tgz#eb3af2c8aee5256cde76f0a1fea86348336d04f7" - integrity sha512-1j0PRZxgxJ8pPRyLlFu6Eer2imfhx1f++644xu/ZGRReDanv4frTSTWwNidtZOHJKwi86ue2KOWHFyikkQWN8w== - dependencies: - through2 "~2.0.0" - stream-combiner2@~1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/stream-combiner2/-/stream-combiner2-1.1.1.tgz#fb4d8a1420ea362764e21ad4780397bebcb41cbe" @@ -10925,20 +10858,17 @@ stream-transform@^2.1.3: dependencies: mixme "^0.5.1" -streamsearch@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/streamsearch/-/streamsearch-1.1.0.tgz#404dd1e2247ca94af554e841a8ef0eaa238da764" - integrity sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg== - -streamx@^2.15.0: - version "2.15.0" - resolved "https://registry.yarnpkg.com/streamx/-/streamx-2.15.0.tgz#f58c92e6f726b5390dcabd6dd9094d29a854d698" - integrity sha512-HcxY6ncGjjklGs1xsP1aR71INYcsXFJet5CU1CHqihQ2J5nOsbd4OjgjHO42w/4QNv9gZb3BueV+Vxok5pLEXg== +streamx@^2.15.0, streamx@^2.16.1: + version "2.16.1" + resolved "https://registry.yarnpkg.com/streamx/-/streamx-2.16.1.tgz#2b311bd34832f08aa6bb4d6a80297c9caef89614" + integrity sha512-m9QYj6WygWyWa3H1YY69amr4nVgy61xfjys7xO7kviL5rfIEc2naf+ewFiOA+aEJD7y0JO3h2GoiUv4TDwEGzQ== dependencies: fast-fifo "^1.1.0" queue-tick "^1.0.1" + optionalDependencies: + bare-events "^2.2.0" -"string-width-cjs@npm:string-width@^4.2.0", "string-width@^1.0.2 || 2 || 3 || 4", string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3: +"string-width-cjs@npm:string-width@^4.2.0", string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3: version "4.2.3" resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== @@ -10956,50 +10886,33 @@ string-width@^5.0.1, string-width@^5.1.2: emoji-regex "^9.2.2" strip-ansi "^7.0.1" -string.prototype.trim@^1.2.8: - version "1.2.8" - resolved "https://registry.yarnpkg.com/string.prototype.trim/-/string.prototype.trim-1.2.8.tgz#f9ac6f8af4bd55ddfa8895e6aea92a96395393bd" - integrity sha512-lfjY4HcixfQXOfaqCvcBuOIapyaroTXhbkfJN3gcB1OtyupngWK4sEET9Knd0cXd28kTUqu/kHoV4HKSJdnjiQ== - dependencies: - call-bind "^1.0.2" - define-properties "^1.2.0" - es-abstract "^1.22.1" - -string.prototype.trimend@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/string.prototype.trimend/-/string.prototype.trimend-1.0.5.tgz#914a65baaab25fbdd4ee291ca7dde57e869cb8d0" - integrity sha512-I7RGvmjV4pJ7O3kdf+LXFpVfdNOxtCW/2C8f6jNiW4+PQchwxkCDzlk1/7p+Wl4bqFIZeF47qAHXLuHHWKAxog== - dependencies: - call-bind "^1.0.2" - define-properties "^1.1.4" - es-abstract "^1.19.5" - -string.prototype.trimend@^1.0.7: - version "1.0.7" - resolved "https://registry.yarnpkg.com/string.prototype.trimend/-/string.prototype.trimend-1.0.7.tgz#1bb3afc5008661d73e2dc015cd4853732d6c471e" - integrity sha512-Ni79DqeB72ZFq1uH/L6zJ+DKZTkOtPIHovb3YZHQViE+HDouuU4mBrLOLDn5Dde3RF8qw5qVETEjhu9locMLvA== +string.prototype.trim@^1.2.9: + version "1.2.9" + resolved "https://registry.yarnpkg.com/string.prototype.trim/-/string.prototype.trim-1.2.9.tgz#b6fa326d72d2c78b6df02f7759c73f8f6274faa4" + integrity sha512-klHuCNxiMZ8MlsOihJhJEBJAiMVqU3Z2nEXWfWnIqjN0gEFS9J9+IxKozWWtQGcgoa1WUZzLjKPTr4ZHNFTFxw== dependencies: - call-bind "^1.0.2" - define-properties "^1.2.0" - es-abstract "^1.22.1" + call-bind "^1.0.7" + define-properties "^1.2.1" + es-abstract "^1.23.0" + es-object-atoms "^1.0.0" -string.prototype.trimstart@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.5.tgz#5466d93ba58cfa2134839f81d7f42437e8c01fef" - integrity sha512-THx16TJCGlsN0o6dl2o6ncWUsdgnLRSA23rRE5pyGBw/mLr3Ej/R2LaqCtgP8VNMGZsvMWnf9ooZPyY2bHvUFg== +string.prototype.trimend@^1.0.8: + version "1.0.8" + resolved "https://registry.yarnpkg.com/string.prototype.trimend/-/string.prototype.trimend-1.0.8.tgz#3651b8513719e8a9f48de7f2f77640b26652b229" + integrity sha512-p73uL5VCHCO2BZZ6krwwQE3kCzM7NKmis8S//xEC6fQonchbum4eP6kR4DLEjQFO3Wnj3Fuo8NM0kOSjVdHjZQ== dependencies: - call-bind "^1.0.2" - define-properties "^1.1.4" - es-abstract "^1.19.5" + call-bind "^1.0.7" + define-properties "^1.2.1" + es-object-atoms "^1.0.0" -string.prototype.trimstart@^1.0.7: - version "1.0.7" - resolved "https://registry.yarnpkg.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.7.tgz#d4cdb44b83a4737ffbac2d406e405d43d0184298" - integrity sha512-NGhtDFu3jCEm7B4Fy0DpLewdJQOZcQ0rGbwQ/+stjnrp2i+rlKeCvos9hOIeCmqwratM47OBxY7uFZzjxHXmrg== +string.prototype.trimstart@^1.0.8: + version "1.0.8" + resolved "https://registry.yarnpkg.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.8.tgz#7ee834dda8c7c17eff3118472bb35bfedaa34dde" + integrity sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg== dependencies: - call-bind "^1.0.2" - define-properties "^1.2.0" - es-abstract "^1.22.1" + call-bind "^1.0.7" + define-properties "^1.2.1" + es-object-atoms "^1.0.0" string_decoder@^1.1.1: version "1.3.0" @@ -11022,7 +10935,7 @@ string_decoder@~1.1.1: dependencies: ansi-regex "^5.0.1" -strip-ansi@^7.0.1, strip-ansi@^7.1.0: +strip-ansi@^7.0.1: version "7.1.0" resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-7.1.0.tgz#d5b6568ca689d8561370b0707685d22434faff45" integrity sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ== @@ -11056,18 +10969,10 @@ strip-json-comments@~2.0.1: resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a" integrity sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ== -style-value-types@5.1.2: - version "5.1.2" - resolved "https://registry.yarnpkg.com/style-value-types/-/style-value-types-5.1.2.tgz#6be66b237bd546048a764883528072ed95713b62" - integrity sha512-Vs9fNreYF9j6W2VvuDTP7kepALi7sk0xtk2Tu8Yxi9UoajJdEVpNpCov0HsLTqXvNGKX+Uv09pkozVITi1jf3Q== - dependencies: - hey-listen "^1.0.8" - tslib "2.4.0" - styled-components@^5.3.6: - version "5.3.6" - resolved "https://registry.yarnpkg.com/styled-components/-/styled-components-5.3.6.tgz#27753c8c27c650bee9358e343fc927966bfd00d1" - integrity sha512-hGTZquGAaTqhGWldX7hhfzjnIYBZ0IXQXkCYdvF1Sq3DsUaLx6+NTHC5Jj1ooM2F68sBiVz3lvhfwQs/S3l6qg== + version "5.3.11" + resolved "https://registry.yarnpkg.com/styled-components/-/styled-components-5.3.11.tgz#9fda7bf1108e39bf3f3e612fcc18170dedcd57a8" + integrity sha512-uuzIIfnVkagcVHv9nE0VPlHPSCmXIUGKfJ42LNjxCCTDTL5sgnJ8Z7GZBq0EnLYGln77tPpEpExt2+qa+cZqSw== dependencies: "@babel/helper-module-imports" "^7.0.0" "@babel/traverse" "^7.4.5" @@ -11081,34 +10986,25 @@ styled-components@^5.3.6: supports-color "^5.5.0" sucrase@^3.20.3: - version "3.34.0" - resolved "https://registry.yarnpkg.com/sucrase/-/sucrase-3.34.0.tgz#1e0e2d8fcf07f8b9c3569067d92fbd8690fb576f" - integrity sha512-70/LQEZ07TEcxiU2dz51FKaE6hCTWC6vr7FOk3Gr0U60C3shtAN+H+BFr9XlYe5xqf3RA8nrc+VIwzCfnxuXJw== + version "3.35.0" + resolved "https://registry.yarnpkg.com/sucrase/-/sucrase-3.35.0.tgz#57f17a3d7e19b36d8995f06679d121be914ae263" + integrity sha512-8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaSRUc/QPoQ0GA== dependencies: "@jridgewell/gen-mapping" "^0.3.2" commander "^4.0.0" - glob "7.1.6" + glob "^10.3.10" lines-and-columns "^1.1.6" mz "^2.7.0" pirates "^4.0.1" ts-interface-checker "^0.1.9" -superagent@^6.1.0: - version "6.1.0" - resolved "https://registry.yarnpkg.com/superagent/-/superagent-6.1.0.tgz#09f08807bc41108ef164cfb4be293cebd480f4a6" - integrity sha512-OUDHEssirmplo3F+1HWKUrUjvnQuA+nZI6i/JJBdXb5eq9IyEQwPyPpqND+SSsxf6TygpBEkUjISVRN4/VOpeg== - dependencies: - component-emitter "^1.3.0" - cookiejar "^2.1.2" - debug "^4.1.1" - fast-safe-stringify "^2.0.7" - form-data "^3.0.0" - formidable "^1.2.2" - methods "^1.1.2" - mime "^2.4.6" - qs "^6.9.4" - readable-stream "^3.6.0" - semver "^7.3.2" +super-regex@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/super-regex/-/super-regex-1.0.0.tgz#dd90d944a925a1083e7d8570919b21cb76e3d925" + integrity sha512-CY8u7DtbvucKuquCmOFEKhr9Besln7n9uN8eFbwcoGYWXOMW07u2o8njWaiXt11ylS3qoGF55pILjRmPlbodyg== + dependencies: + function-timeout "^1.0.1" + time-span "^5.1.0" supports-color@^5.3.0, supports-color@^5.5.0: version "5.5.0" @@ -11142,10 +11038,10 @@ supports-preserve-symlinks-flag@^1.0.0: resolved "https://registry.yarnpkg.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz#6eda4bd344a3c94aea376d4cc31bc77311039e09" integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w== -svelte@4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/svelte/-/svelte-4.0.1.tgz#5c01f5f7cb05ac21ffe3a741e0c942972dc47c05" - integrity sha512-7n2u7A5cu8xCY6MBiXh/Mg6Lh3+Mw2qXlTDBYhzvCvmSM4L4gc4MVo540UtGcjqBiA48E1VDW+EUpBr7iuBlPg== +svelte@4.2.2: + version "4.2.2" + resolved "https://registry.yarnpkg.com/svelte/-/svelte-4.2.2.tgz#07d42eefc1bce46e48d2056c5f11dc4cc1e06555" + integrity sha512-My2tytF2e2NnHSpn2M7/3VdXT4JdTglYVUuSuK/mXL2XtulPYbeBfl8Dm1QiaKRn0zoULRnL+EtfZHHP0k4H3A== dependencies: "@ampproject/remapping" "^2.2.1" "@jridgewell/sourcemap-codec" "^1.4.15" @@ -11158,7 +11054,7 @@ svelte@4.0.1: estree-walker "^3.0.3" is-reference "^3.0.1" locate-character "^3.0.0" - magic-string "^0.30.0" + magic-string "^0.30.4" periscopic "^3.1.0" svg-parser@^2.0.4: @@ -11190,13 +11086,15 @@ tar-fs@^2.0.0: tar-stream "^2.1.4" tar-fs@^3.0.4: - version "3.0.4" - resolved "https://registry.yarnpkg.com/tar-fs/-/tar-fs-3.0.4.tgz#a21dc60a2d5d9f55e0089ccd78124f1d3771dbbf" - integrity sha512-5AFQU8b9qLfZCX9zp2duONhPmZv0hGYiBPJsyUdqMjzq/mqVpy/rEUSeHk1+YitmxugaptgBh5oDGU3VsAJq4w== + version "3.0.6" + resolved "https://registry.yarnpkg.com/tar-fs/-/tar-fs-3.0.6.tgz#eaccd3a67d5672f09ca8e8f9c3d2b89fa173f217" + integrity sha512-iokBDQQkUyeXhgPYaZxmczGPhnhXZ0CmrqI+MOb/WFGS9DW5wnfrLgtjUJBvz50vQ3qfRwJ62QVoCFu8mPVu5w== dependencies: - mkdirp-classic "^0.5.2" pump "^3.0.0" tar-stream "^3.1.5" + optionalDependencies: + bare-fs "^2.1.1" + bare-path "^2.1.0" tar-stream@^2.1.4, tar-stream@^2.2.0: version "2.2.0" @@ -11210,18 +11108,18 @@ tar-stream@^2.1.4, tar-stream@^2.2.0: readable-stream "^3.1.1" tar-stream@^3.1.5: - version "3.1.6" - resolved "https://registry.yarnpkg.com/tar-stream/-/tar-stream-3.1.6.tgz#6520607b55a06f4a2e2e04db360ba7d338cc5bab" - integrity sha512-B/UyjYwPpMBv+PaFSWAmtYjwdrlEaZQEhMIBFNC5oEG8lpiW8XjcSdmEaClj28ArfKScKHs2nshz3k2le6crsg== + version "3.1.7" + resolved "https://registry.yarnpkg.com/tar-stream/-/tar-stream-3.1.7.tgz#24b3fb5eabada19fe7338ed6d26e5f7c482e792b" + integrity sha512-qJj60CXt7IU1Ffyc3NJMjh6EkuCFej46zUqJ4J7pqYlThyd9bO0XBTmcOIhSzZJVWfsLks0+nle/j538YAW9RQ== dependencies: b4a "^1.6.4" fast-fifo "^1.2.0" streamx "^2.15.0" -tar@^6.1.11, tar@^6.1.2, tar@^6.2.0: - version "6.2.0" - resolved "https://registry.yarnpkg.com/tar/-/tar-6.2.0.tgz#b14ce49a79cb1cd23bc9b016302dea5474493f73" - integrity sha512-/Wo7DcT0u5HUV486xg675HtjNd3BXZ6xDbzsCUZPt5iw8bTQ63bP0Raut3mvro9u+CUyq7YQd8Cx55fsZXxqLQ== +tar@^6.1.11, tar@^6.1.2, tar@^6.2.1: + version "6.2.1" + resolved "https://registry.yarnpkg.com/tar/-/tar-6.2.1.tgz#717549c541bc3c2af15751bea94b1dd068d4b03a" + integrity sha512-DZ4yORTwrbTj/7MZYq2w+/ZFdI6OZ/f9SFHR+71gIVUZhOQPHzVCLpvRnPgyaMpfWxxk/4ONva3GQSyNIKRv6A== dependencies: chownr "^2.0.0" fs-minipass "^2.0.0" @@ -11282,11 +11180,18 @@ through2@~2.0.0: readable-stream "~2.3.6" xtend "~4.0.1" -"through@>=2.2.7 <3", through@^2.3.6: +"through@>=2.2.7 <3": version "2.3.8" resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" integrity sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg== +time-span@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/time-span/-/time-span-5.1.0.tgz#80c76cf5a0ca28e0842d3f10a4e99034ce94b90d" + integrity sha512-75voc/9G4rDIJleOo4jPvN4/YC4GRZrY8yy1uU4lwrB3XEQbWve8zXoO5No4eFrGcTAMYyoY67p8jRQdtA1HbA== + dependencies: + convert-hrtime "^5.0.0" + timers-browserify@^2.0.12: version "2.0.12" resolved "https://registry.yarnpkg.com/timers-browserify/-/timers-browserify-2.0.12.tgz#44a45c11fbf407f34f97bccd1577c652361b00ee" @@ -11329,11 +11234,9 @@ tmp@^0.0.33: os-tmpdir "~1.0.2" tmp@^0.2.0: - version "0.2.1" - resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.2.1.tgz#8457fc3037dcf4719c251367a1af6500ee1ccf14" - integrity sha512-76SUhtfqR2Ijn+xllcI5P1oyannHNHByD80W1q447gU3mp9G9PSpGdWmjUOHRDPiHYacIk66W7ubDTuPF3BEtQ== - dependencies: - rimraf "^3.0.0" + version "0.2.3" + resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.2.3.tgz#eb783cc22bc1e8bebd0671476d46ea4eb32a79ae" + integrity sha512-nZD7m9iCPC5g0pYmcaxogYKggSfLsdxl8of3Q/oIbqCqLLIO9IAF0GWjX1z9NZRHPiXv8Wex4yDCaZsgEw0Y8w== to-fast-properties@^2.0.0: version "2.0.0" @@ -11365,9 +11268,13 @@ tr46@~0.0.3: integrity sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw== traverse@~0.6.6: - version "0.6.8" - resolved "https://registry.yarnpkg.com/traverse/-/traverse-0.6.8.tgz#5e5e0c41878b57e4b73ad2f3d1e36a715ea4ab15" - integrity sha512-aXJDbk6SnumuaZSANd21XAo15ucCDE38H4fkqiGsc3MhCK+wOlZvLP9cB/TvpHT0mOyWgC4Z8EwRlzqYSUzdsA== + version "0.6.9" + resolved "https://registry.yarnpkg.com/traverse/-/traverse-0.6.9.tgz#76cfdbacf06382d460b76f8b735a44a6209d8b81" + integrity sha512-7bBrcF+/LQzSgFmT0X5YclVqQxtv7TDJ1f8Wj7ibBu/U6BMLeOpUxuZjV7rMc44UtKxlnMFigdhFAIszSX1DMg== + dependencies: + gopd "^1.0.1" + typedarray.prototype.slice "^1.0.3" + which-typed-array "^1.1.15" tree-kill@^1.2.2: version "1.2.2" @@ -11385,16 +11292,16 @@ trim-newlines@^3.0.0: integrity sha512-c1PTsA3tYrIsLGkJkzHF+w9F2EyxfXGo4UyJc4pFL++FMjnq0HJS69T3M7d//gKrFKwy429bouPescbjecU+Zw== ts-algebra@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/ts-algebra/-/ts-algebra-1.2.0.tgz#f91c481207a770f0d14d055c376cbee040afdfc9" - integrity sha512-kMuJJd8B2N/swCvIvn1hIFcIOrLGbWl9m/J6O3kHx9VRaevh00nvgjPiEGaRee7DRaAczMYR2uwWvXU22VFltw== + version "1.2.2" + resolved "https://registry.yarnpkg.com/ts-algebra/-/ts-algebra-1.2.2.tgz#b75d301c28cd4126cd344760a47b43e48e2872e0" + integrity sha512-kloPhf1hq3JbCPOTYoOWDKxebWjNb2o/LKnNfkWhxVVisFFmMJPPdJeGoGmM+iRLyoXAR61e08Pb+vUXINg8aA== ts-interface-checker@^0.1.9: version "0.1.13" resolved "https://registry.yarnpkg.com/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz#784fd3d679722bc103b1b4b8030bcddb5db2a699" integrity sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA== -tslib@2.4.0, tslib@^2.0.3, tslib@^2.1.0, tslib@^2.3.0, tslib@^2.3.1: +tslib@2.4.0: version "2.4.0" resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.4.0.tgz#7cecaa7f073ce680a05847aa77be941098f36dc3" integrity sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ== @@ -11404,20 +11311,15 @@ tslib@^1.9.0: resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00" integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== -tslib@^2.4.0: +tslib@^2.1.0, tslib@^2.3.0, tslib@^2.3.1, tslib@^2.4.0, tslib@^2.4.1: version "2.6.2" resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.6.2.tgz#703ac29425e7b37cd6fd456e92404d46d1f3e4ae" integrity sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q== -tslib@^2.4.1: - version "2.6.1" - resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.6.1.tgz#fd8c9a0ff42590b25703c0acb3de3d3f4ede0410" - integrity sha512-t0hLfiEKfMUoqhG+U1oid7Pva4bbDPHYfJNiB7BiIjRkj1pyC++4N3huJfqY6aRH6VTB0rvtzQwjM4K6qpfOig== - -tsup@7.1.0: - version "7.1.0" - resolved "https://registry.yarnpkg.com/tsup/-/tsup-7.1.0.tgz#11369762b68032da118a714a38d5a1d26ac45293" - integrity sha512-mazl/GRAk70j8S43/AbSYXGgvRP54oQeX8Un4iZxzATHt0roW0t6HYDVZIXMw0ZQIpvr1nFMniIVnN5186lW7w== +tsup@7.2.0: + version "7.2.0" + resolved "https://registry.yarnpkg.com/tsup/-/tsup-7.2.0.tgz#bb24c0d5e436477900c712e42adc67200607303c" + integrity sha512-vDHlczXbgUvY3rWvqFEbSqmC1L7woozbzngMqTtL2PGBODTtWlRwGDDawhvWzr5c1QjKe4OAKqJGfE1xeXUvtQ== dependencies: bundle-require "^4.0.0" cac "^6.7.12" @@ -11503,74 +11405,81 @@ type-fest@^2.12.2, type-fest@^2.5.3: resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-2.19.0.tgz#88068015bb33036a598b952e55e9311a60fd3a9b" integrity sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA== -type-fest@^3.0.0: - version "3.13.1" - resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-3.13.1.tgz#bb744c1f0678bea7543a2d1ec24e83e68e8c8706" - integrity sha512-tLq3bSNx+xSpwvAJnzrK0Ep5CLNWjvFTOp71URMaAEWBfRb9nnJiBoUe0tF8bI4ZFO3omgBR6NvnbzVUT3Ly4g== - type-fest@^4.6.0, type-fest@^4.7.1: - version "4.10.0" - resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-4.10.0.tgz#30e6d2648fecb67c296d0de31b32d156e501c38d" - integrity sha512-NPaKJsb4wyJ16qc8zBQrWswLKv/YirgBFykvUQ1Iajt2wd+twC8E4hFXdlIXqiMl6kWA0zY8tUJ9ELVAdu5h7w== + version "4.18.1" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-4.18.1.tgz#47e8d4e493cf7ed6c643bad698d5810d72cbdf79" + integrity sha512-qXhgeNsX15bM63h5aapNFcQid9jRF/l3ojDoDFmekDQEUufZ9U4ErVt6SjDxnHp48Ltrw616R8yNc3giJ3KvVQ== -typed-array-buffer@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/typed-array-buffer/-/typed-array-buffer-1.0.1.tgz#0608ffe6bca71bf15a45bff0ca2604107a1325f5" - integrity sha512-RSqu1UEuSlrBhHTWC8O9FnPjOduNs4M7rJ4pRKoEjtx1zUNOPN2sSXHLDX+Y2WPbHIxbvg4JFo2DNAEfPIKWoQ== +typed-array-buffer@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/typed-array-buffer/-/typed-array-buffer-1.0.2.tgz#1867c5d83b20fcb5ccf32649e5e2fc7424474ff3" + integrity sha512-gEymJYKZtKXzzBzM4jqa9w6Q1Jjm7x2d+sh19AdsD4wqnMPDYyvwpsIc2Q/835kHuo3BEQ7CjelGhfTsoBb2MQ== dependencies: - call-bind "^1.0.6" + call-bind "^1.0.7" es-errors "^1.3.0" is-typed-array "^1.1.13" -typed-array-byte-length@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/typed-array-byte-length/-/typed-array-byte-length-1.0.0.tgz#d787a24a995711611fb2b87a4052799517b230d0" - integrity sha512-Or/+kvLxNpeQ9DtSydonMxCx+9ZXOswtwJn17SNLvhptaXYDJvkFFP5zbfU/uLmvnBJlI4yrnXRxpdWH/M5tNA== +typed-array-byte-length@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/typed-array-byte-length/-/typed-array-byte-length-1.0.1.tgz#d92972d3cff99a3fa2e765a28fcdc0f1d89dec67" + integrity sha512-3iMJ9q0ao7WE9tWcaYKIptkNBuOIcZCCT0d4MRvuuH88fEoEH62IuQe0OtraD3ebQEoTRk8XCBoknUNc1Y67pw== dependencies: - call-bind "^1.0.2" + call-bind "^1.0.7" for-each "^0.3.3" - has-proto "^1.0.1" - is-typed-array "^1.1.10" + gopd "^1.0.1" + has-proto "^1.0.3" + is-typed-array "^1.1.13" -typed-array-byte-offset@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/typed-array-byte-offset/-/typed-array-byte-offset-1.0.0.tgz#cbbe89b51fdef9cd6aaf07ad4707340abbc4ea0b" - integrity sha512-RD97prjEt9EL8YgAgpOkf3O4IF9lhJFr9g0htQkm0rchFp/Vx7LW5Q8fSXXub7BXAODyUQohRMyOc3faCPd0hg== +typed-array-byte-offset@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/typed-array-byte-offset/-/typed-array-byte-offset-1.0.2.tgz#f9ec1acb9259f395093e4567eb3c28a580d02063" + integrity sha512-Ous0vodHa56FviZucS2E63zkgtgrACj7omjwd/8lTEMEPFFyjfixMZ1ZXenpgCFBBt4EC1J2XsyVS2gkG0eTFA== dependencies: - available-typed-arrays "^1.0.5" - call-bind "^1.0.2" + available-typed-arrays "^1.0.7" + call-bind "^1.0.7" for-each "^0.3.3" - has-proto "^1.0.1" - is-typed-array "^1.1.10" + gopd "^1.0.1" + has-proto "^1.0.3" + is-typed-array "^1.1.13" -typed-array-length@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/typed-array-length/-/typed-array-length-1.0.4.tgz#89d83785e5c4098bec72e08b319651f0eac9c1bb" - integrity sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng== +typed-array-length@^1.0.6: + version "1.0.6" + resolved "https://registry.yarnpkg.com/typed-array-length/-/typed-array-length-1.0.6.tgz#57155207c76e64a3457482dfdc1c9d1d3c4c73a3" + integrity sha512-/OxDN6OtAk5KBpGb28T+HZc2M+ADtvRxXrKKbUwtsLgdoxgX13hyy7ek6bFRl5+aBs2yZzB0c4CnQfAtVypW/g== dependencies: - call-bind "^1.0.2" + call-bind "^1.0.7" for-each "^0.3.3" - is-typed-array "^1.1.9" + gopd "^1.0.1" + has-proto "^1.0.3" + is-typed-array "^1.1.13" + possible-typed-array-names "^1.0.0" typed-assert@^1.0.9: version "1.0.9" resolved "https://registry.yarnpkg.com/typed-assert/-/typed-assert-1.0.9.tgz#8af9d4f93432c4970ec717e3006f33f135b06213" integrity sha512-KNNZtayBCtmnNmbo5mG47p1XsCyrx6iVqomjcZnec/1Y5GGARaxPs6r49RnSPeUP3YjNYiU9sQHAtY4BBvnZwg== -typescript@5.1.6: - version "5.1.6" - resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.1.6.tgz#02f8ac202b6dad2c0dd5e0913745b47a37998274" - integrity sha512-zaWCozRZ6DLEWAWFrVDz1H6FVXzUSfTy5FUMWsQlU8Ym5JP9eO4xkTIROFCQvhQf61z6O/G6ugw3SgAnvvm+HA== +typedarray.prototype.slice@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/typedarray.prototype.slice/-/typedarray.prototype.slice-1.0.3.tgz#bce2f685d3279f543239e4d595e0d021731d2d1a" + integrity sha512-8WbVAQAUlENo1q3c3zZYuy5k9VzBQvp8AX9WOtbvyWlLM1v5JaSRmjubLjzHF4JFtptjH/5c/i95yaElvcjC0A== + dependencies: + call-bind "^1.0.7" + define-properties "^1.2.1" + es-abstract "^1.23.0" + es-errors "^1.3.0" + typed-array-buffer "^1.0.2" + typed-array-byte-offset "^1.0.2" -typescript@^4.6.2: - version "4.9.4" - resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.9.4.tgz#a2a3d2756c079abda241d75f149df9d561091e78" - integrity sha512-Uz+dTXYzxXXbsFpM86Wh3dKCxrQqUcVMxwU54orwlJjOpO3ao8L7j5lH+dWfTwgCwIuM9GQ2kvVotzYJMXTBZg== +typescript@5.2.2: + version "5.2.2" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.2.2.tgz#5ebb5e5a5b75f085f22bc3f8460fba308310fa78" + integrity sha512-mI4WrpHsbCIcwT9cF4FZvr80QUeKvsUsUvKDoR+X/7XHQH98xYD8YHZg7ANtz2GtZt/CBq2QJ0thkGJMHfqc1w== -typescript@^4.8.2: - version "4.8.2" - resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.8.2.tgz#e3b33d5ccfb5914e4eeab6699cf208adee3fd790" - integrity sha512-C0I1UsrrDHo2fYI5oaCGbSejwX4ch+9Y5jTQELvovfmFkK3HHSZJB8MSJcWLmCUBzQBchCrZ9rMRV6GuNrvGtw== +typescript@^4.6.2, typescript@^4.8.2: + version "4.9.5" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.9.5.tgz#095979f9bcc0d09da324d58d03ce8f8374cbe65a" + integrity sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g== uglify-js@^3.1.4: version "3.17.4" @@ -11587,20 +11496,13 @@ unbox-primitive@^1.0.2: has-symbols "^1.0.3" which-boxed-primitive "^1.0.2" -undici@^5.19.1: - version "5.28.3" - resolved "https://registry.yarnpkg.com/undici/-/undici-5.28.3.tgz#a731e0eff2c3fcfd41c1169a869062be222d1e5b" - integrity sha512-3ItfzbrhDlINjaP0duwnNsKpDQk3acHI3gVJ1z4fmwMK31k5G9OVIAMLSIaP6w4FaGkaAkN6zaQO9LUvZ1t7VA== +undici@^5.19.1, undici@^5.8.0: + version "5.28.4" + resolved "https://registry.yarnpkg.com/undici/-/undici-5.28.4.tgz#6b280408edb6a1a604a9b20340f45b422e373068" + integrity sha512-72RFADWFqKmUb2hmmvNODKL3p9hcB6Gt2DOQMis1SEBaV6a4MH8soBvzg+95CYhCKPFedut2JY9bMfrDl9D23g== dependencies: "@fastify/busboy" "^2.0.0" -undici@^5.8.0: - version "5.22.1" - resolved "https://registry.yarnpkg.com/undici/-/undici-5.22.1.tgz#877d512effef2ac8be65e695f3586922e1a57d7b" - integrity sha512-Ji2IJhFXZY0x/0tVBXeQwgPlLWw13GVzpsWPQ3rV50IFMMof2I55PZZxtm4P6iNq+L5znYN9nSTAq0ZyE6lSJw== - dependencies: - busboy "^1.6.0" - unfetch@^3.1.1: version "3.1.2" resolved "https://registry.yarnpkg.com/unfetch/-/unfetch-3.1.2.tgz#dc271ef77a2800768f7b459673c5604b5101ef77" @@ -11647,64 +11549,60 @@ universal-user-agent@^6.0.0: resolved "https://registry.yarnpkg.com/universal-user-agent/-/universal-user-agent-6.0.1.tgz#15f20f55da3c930c57bddbf1734c6654d5fd35aa" integrity sha512-yCzhz6FN2wU1NiiQRogkTQszlQSlpWaw8SvVegAc+bDxbzHgh1vX8uIe8OYyMH6DwH+sdTJsgMl36+mSMdRJIQ== +universal-user-agent@^7.0.0, universal-user-agent@^7.0.2: + version "7.0.2" + resolved "https://registry.yarnpkg.com/universal-user-agent/-/universal-user-agent-7.0.2.tgz#52e7d0e9b3dc4df06cc33cb2b9fd79041a54827e" + integrity sha512-0JCqzSKnStlRRQfCdowvqy3cy0Dvtlb8xecj/H8JFZuCze4rwjPZQOgvFvn0Ws/usCHQFGpyr+pB9adaGwXn4Q== + universalify@^0.1.0: version "0.1.2" resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.1.2.tgz#b646f69be3942dabcecc9d6639c80dc105efaa66" integrity sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg== universalify@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/universalify/-/universalify-2.0.0.tgz#75a4984efedc4b08975c5aeb73f530d02df25717" - integrity sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ== + version "2.0.1" + resolved "https://registry.yarnpkg.com/universalify/-/universalify-2.0.1.tgz#168efc2180964e6386d061e094df61afe239b18d" + integrity sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw== unzipit@^1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/unzipit/-/unzipit-1.4.0.tgz#69fc6eef47730897e39b15e54f972d60a1a92441" - integrity sha512-hjoB8j1igXJgmxqaAvqkIW+faKTpG9cPK6QvkBhNCyd8OPWqODXTBVqTEmZbz62K5J/dX4Xa8lTa0NRikQwSjQ== + version "1.4.3" + resolved "https://registry.yarnpkg.com/unzipit/-/unzipit-1.4.3.tgz#738298a6b235892bf7ce7db82cff813d4ca664ac" + integrity sha512-gsq2PdJIWWGhx5kcdWStvNWit9FVdTewm4SEG7gFskWs+XCVaULt9+BwuoBtJiRE8eo3L1IPAOrbByNLtLtIlg== dependencies: uzip-module "^1.0.2" -update-browserslist-db@^1.0.11: - version "1.0.11" - resolved "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.0.11.tgz#9a2a641ad2907ae7b3616506f4b977851db5b940" - integrity sha512-dCwEFf0/oT85M1fHBg4F0jtLwJrutGoHSQXCh7u4o2t1drG+c0a9Flnqww6XUKSfQMPpJBRjU8d4RXB09qtvaA== +update-browserslist-db@^1.0.13: + version "1.0.14" + resolved "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.0.14.tgz#46a9367c323f8ade9a9dddb7f3ae7814b3a0b31c" + integrity sha512-JixKH8GR2pWYshIPUg/NujK3JO7JiqEEUiNArE86NQyrgUuZeTlZQN3xuS/yiV5Kb48ev9K6RqNkaJjXsdg7Jw== dependencies: - escalade "^3.1.1" + escalade "^3.1.2" picocolors "^1.0.0" -upper-case-first@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/upper-case-first/-/upper-case-first-2.0.2.tgz#992c3273f882abd19d1e02894cc147117f844324" - integrity sha512-514ppYHBaKwfJRK/pNC6c/OxfGa0obSnAl106u97Ed0I625Nin96KAjttZF6ZL3e1XLtphxnqrOi9iWgm+u+bg== - dependencies: - tslib "^2.0.3" - -upper-case@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/upper-case/-/upper-case-2.0.2.tgz#d89810823faab1df1549b7d97a76f8662bae6f7a" - integrity sha512-KgdgDGJt2TpuwBUIjgG6lzw2GWFRCW9Qkfkiv0DxqHHLYJHmtmdUIKcZd8rHgFSjopVTlw6ggzCm1b8MFQwikg== - dependencies: - tslib "^2.0.3" - url-join@^5.0.0: version "5.0.0" resolved "https://registry.yarnpkg.com/url-join/-/url-join-5.0.0.tgz#c2f1e5cbd95fa91082a93b58a1f42fecb4bdbcf1" integrity sha512-n2huDr9h9yzd6exQVnH/jU5mr+Pfx08LRXXZhkLLetAMESRj+anQsTAh940iMrIetKAmry9coFuZQ2jY8/p3WA== url@^0.11.0: - version "0.11.0" - resolved "https://registry.yarnpkg.com/url/-/url-0.11.0.tgz#3838e97cfc60521eb73c525a8e55bfdd9e2e28f1" - integrity sha512-kbailJa29QrtXnxgq+DdCEGlbTeYM2eJUxsz6vjZavrCYPMIFHMKQmSKYAIuUK2i7hgPm28a8piX5NTUtM/LKQ== + version "0.11.3" + resolved "https://registry.yarnpkg.com/url/-/url-0.11.3.tgz#6f495f4b935de40ce4a0a52faee8954244f3d3ad" + integrity sha512-6hxOLGfZASQK/cijlZnZJTq8OXAkt/3YGfQX45vvMYXpZoo8NdWZcY73K108Jf759lS1Bv/8wXnHDTSz17dSRw== dependencies: - punycode "1.3.2" - querystring "0.2.0" + punycode "^1.4.1" + qs "^6.11.2" + +use-sync-external-store@^1.0.0: + version "1.2.2" + resolved "https://registry.yarnpkg.com/use-sync-external-store/-/use-sync-external-store-1.2.2.tgz#c3b6390f3a30eba13200d2302dcdf1e7b57b2ef9" + integrity sha512-PElTlVMwpblvbNqQ82d2n6RjStvdSoNe9FG28kNfz3WiXilJm4DdNkEzRhCZuIDwY8U08WVihhGR5iRqAwfDiw== util-deprecate@^1.0.1, util-deprecate@^1.0.2, util-deprecate@~1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" integrity sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw== -util@^0.12.0: +util@^0.12.5: version "0.12.5" resolved "https://registry.yarnpkg.com/util/-/util-0.12.5.tgz#5f17a6059b73db61a875668781a1c2b136bd6fbc" integrity sha512-kZf/K6hEIrWHI6XqOFUiiMa+79wE/D8Q+NCNAWclkyg3b4d2k7s0QGepNjiABc+aR3N1PAyHL7p6UcLY6LmrnA== @@ -11716,21 +11614,16 @@ util@^0.12.0: which-typed-array "^1.1.2" utility-types@^3.10.0: - version "3.10.0" - resolved "https://registry.yarnpkg.com/utility-types/-/utility-types-3.10.0.tgz#ea4148f9a741015f05ed74fd615e1d20e6bed82b" - integrity sha512-O11mqxmi7wMKCo6HKFt5AhO4BwY3VV68YU07tgxfz8zJTIxr4BpsezN49Ffwy9j3ZpwwJp4fkRwjRzq3uWE6Rg== + version "3.11.0" + resolved "https://registry.yarnpkg.com/utility-types/-/utility-types-3.11.0.tgz#607c40edb4f258915e901ea7995607fdf319424c" + integrity sha512-6Z7Ma2aVEWisaL6TvBCy7P8rm2LQoPv6dJ7ecIaIixHcwfbJ0x7mWdbcwlIM5IGQxPZSFYeqRCqlOOeKoJYMkw== uuid@^8.3.2: version "8.3.2" resolved "https://registry.yarnpkg.com/uuid/-/uuid-8.3.2.tgz#80d5b5ced271bb9af6c445f21a1a04c606cefbe2" integrity sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg== -uuid@^9.0.0: - version "9.0.0" - resolved "https://registry.yarnpkg.com/uuid/-/uuid-9.0.0.tgz#592f550650024a38ceb0c562f2f6aa435761efb5" - integrity sha512-MXcSTerfPa4uqyzStbRoTgt5XIe3x5+42+q1sDuy3R5MDk66URdLMOZe5aPX/SQd+kuYAh0FdP/pO28IkQyTeg== - -uuid@^9.0.1: +uuid@^9.0.0, uuid@^9.0.1: version "9.0.1" resolved "https://registry.yarnpkg.com/uuid/-/uuid-9.0.1.tgz#e188d4c8853cc722220392c424cd637f32293f30" integrity sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA== @@ -11788,16 +11681,6 @@ warning@^4.0.3: dependencies: loose-envify "^1.0.0" -warp-arbundles@1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/warp-arbundles/-/warp-arbundles-1.0.1.tgz#c816ee44aacd90e0214b1b7db8028c6d5b468770" - integrity sha512-bWyF8PoS5D2M8yk7YAT/DFi4pzoPxfXaS1o9eEelcD5SU42PW/wVxwzrvn6pLaHFIK5Zys15V2eGd+8X1Ty62Q== - dependencies: - arweave "^1.13.7" - base64url "^3.0.1" - buffer "^6.0.3" - warp-isomorphic "^1.0.4" - warp-arbundles@^1.0.4: version "1.0.4" resolved "https://registry.yarnpkg.com/warp-arbundles/-/warp-arbundles-1.0.4.tgz#10c0cd662ab41b0dabad9159c7110f43425cc5cc" @@ -11809,12 +11692,12 @@ warp-arbundles@^1.0.4: warp-isomorphic "^1.0.7" warp-contracts@^1.2.13: - version "1.4.14" - resolved "https://registry.yarnpkg.com/warp-contracts/-/warp-contracts-1.4.14.tgz#0a14428229736f568cdd54723dfa903dfe86ccfc" - integrity sha512-5tJzD1biarpXLJRxneEB7thWCqRdZXYhPr77XJxY9oveLANryibYJSEtUbrycHcLurSAQ+Vyd2qd5JHq8TAC4A== + version "1.4.41" + resolved "https://registry.yarnpkg.com/warp-contracts/-/warp-contracts-1.4.41.tgz#49d9678002acef546a8350ed81e505178f84cefe" + integrity sha512-nrdLGGBzxujiWkZCDxSOfIvdnKmL+XCoF+amNdFLo22RVmYbsmIW4D0BQPDK9I/wZtlZLGZHFne9xa7bl2whJg== dependencies: archiver "^5.3.0" - arweave "1.13.7" + arweave "1.14.4" async-mutex "^0.4.0" bignumber.js "9.1.1" events "3.3.0" @@ -11824,8 +11707,8 @@ warp-contracts@^1.2.13: safe-stable-stringify "2.4.1" stream-buffers "^3.0.2" unzipit "^1.4.0" - warp-arbundles "1.0.1" - warp-isomorphic "1.0.4" + warp-arbundles "^1.0.4" + warp-isomorphic "^1.0.7" warp-wasm-metering "1.0.1" warp-isomorphic@1.0.0: @@ -11836,14 +11719,6 @@ warp-isomorphic@1.0.0: buffer "^6.0.3" undici "^5.8.0" -warp-isomorphic@1.0.4, warp-isomorphic@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/warp-isomorphic/-/warp-isomorphic-1.0.4.tgz#1017eba260e0f0228b33b94b9e36a1afe54e09d8" - integrity sha512-W77IoLjq/eu5bY1uRrlmVt5lLDoIHeZ0ozJ/j67FTnxvZRXu887biEnom1nx8q1UgOKyJh8eQYFQaE2FLlKhFg== - dependencies: - buffer "^6.0.3" - undici "^5.8.0" - warp-isomorphic@^1.0.7: version "1.0.7" resolved "https://registry.yarnpkg.com/warp-isomorphic/-/warp-isomorphic-1.0.7.tgz#abf1ee7bce44bec7c6b97547859e614876869aa7" @@ -11869,7 +11744,7 @@ warp-wasm-metering@1.0.1: leb128 "^0.0.4" warp-wasm-json-toolkit "1.0.2" -wcwidth@^1.0.0, wcwidth@^1.0.1: +wcwidth@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/wcwidth/-/wcwidth-1.0.1.tgz#f0b0dcf915bc5ff1528afadb2c0e17b532da2fe8" integrity sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg== @@ -11950,28 +11825,16 @@ which-pm@2.0.0: load-yaml-file "^0.2.0" path-exists "^4.0.0" -which-typed-array@^1.1.13, which-typed-array@^1.1.14: - version "1.1.14" - resolved "https://registry.yarnpkg.com/which-typed-array/-/which-typed-array-1.1.14.tgz#1f78a111aee1e131ca66164d8bdc3ab062c95a06" - integrity sha512-VnXFiIW8yNn9kIHN88xvZ4yOWchftKDsRJ8fEPacX/wl1lOvBrhsJ/OeJCXq7B0AaijRuqgzSKalJoPk+D8MPg== +which-typed-array@^1.1.14, which-typed-array@^1.1.15, which-typed-array@^1.1.2: + version "1.1.15" + resolved "https://registry.yarnpkg.com/which-typed-array/-/which-typed-array-1.1.15.tgz#264859e9b11a649b388bfaaf4f767df1f779b38d" + integrity sha512-oV0jmFtUky6CXfkqehVvBP/LSWJ2sy4vWMioiENyJLePrBO/yKyV9OyJySfAKosh+RYkIl5zJCNZ8/4JncrpdA== dependencies: - available-typed-arrays "^1.0.6" - call-bind "^1.0.5" + available-typed-arrays "^1.0.7" + call-bind "^1.0.7" for-each "^0.3.3" gopd "^1.0.1" - has-tostringtag "^1.0.1" - -which-typed-array@^1.1.2: - version "1.1.8" - resolved "https://registry.yarnpkg.com/which-typed-array/-/which-typed-array-1.1.8.tgz#0cfd53401a6f334d90ed1125754a42ed663eb01f" - integrity sha512-Jn4e5PItbcAHyLoRDwvPj1ypu27DJbtdYXUa5zsinrUx77Uvfb0cXwwnGMTn7cjUfhhqgVQnVJCwF+7cgU7tpw== - dependencies: - available-typed-arrays "^1.0.5" - call-bind "^1.0.2" - es-abstract "^1.20.0" - for-each "^0.3.3" - has-tostringtag "^1.0.0" - is-typed-array "^1.1.9" + has-tostringtag "^1.0.2" which@^1.2.9: version "1.3.1" @@ -11994,22 +11857,17 @@ which@^4.0.0: dependencies: isexe "^3.1.1" -wide-align@^1.1.5: - version "1.1.5" - resolved "https://registry.yarnpkg.com/wide-align/-/wide-align-1.1.5.tgz#df1d4c206854369ecf3c9a4898f1b23fbd9d15d3" - integrity sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg== - dependencies: - string-width "^1.0.2 || 2 || 3 || 4" - wordwrap@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-1.0.0.tgz#27584810891456a4171c8d0226441ade90cbcaeb" integrity sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q== wouter@^2.8.0-alpha.2: - version "2.8.0-alpha.2" - resolved "https://registry.yarnpkg.com/wouter/-/wouter-2.8.0-alpha.2.tgz#d57dfbd23b964b8bd848f2ed3eb2b38cf3c00e00" - integrity sha512-aPsL5m5rW9RiceClOmGj6t5gn9Ut2TJVr98UDi1u9MIRNYiYVflg6vFIjdDYJ4IAyH0JdnkSgGwfo0LQS3k2zg== + version "2.12.1" + resolved "https://registry.yarnpkg.com/wouter/-/wouter-2.12.1.tgz#11d913324c6320b679873783acb15ea3523b8521" + integrity sha512-G7a6JMSLSNcu6o8gdOfIzqxuo8Qx1qs+9rpVnlurH69angsSFPZP5gESNuVNeJct/MGpQg191pDo4HUjTx7IIQ== + dependencies: + use-sync-external-store "^1.0.0" "wrap-ansi-cjs@npm:wrap-ansi@^7.0.0", wrap-ansi@^7.0.0: version "7.0.0" @@ -12020,7 +11878,7 @@ wouter@^2.8.0-alpha.2: string-width "^4.1.0" strip-ansi "^6.0.0" -wrap-ansi@^6.0.1, wrap-ansi@^6.2.0: +wrap-ansi@^6.2.0: version "6.2.0" resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-6.2.0.tgz#e9393ba07102e6c91a3b221478f0257cd2856e53" integrity sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA== @@ -12109,10 +11967,10 @@ yaml@^1.10.0: resolved "https://registry.yarnpkg.com/yaml/-/yaml-1.10.2.tgz#2301c5ffbf12b467de8da2333a459e29e7920e4b" integrity sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg== -yaml@^2.1.1: - version "2.3.1" - resolved "https://registry.yarnpkg.com/yaml/-/yaml-2.3.1.tgz#02fe0975d23cd441242aa7204e09fc28ac2ac33b" - integrity sha512-2eHWfjaoXgTBC2jNM1LRef62VQa0umtvRiDSk6HSzW7RvS5YtkabJrwYLLEKWBc8a5U2PTSCs+dJjUTJdlHsWQ== +yaml@^2.3.4: + version "2.4.2" + resolved "https://registry.yarnpkg.com/yaml/-/yaml-2.4.2.tgz#7a2b30f2243a5fc299e1f14ca58d475ed4bc5362" + integrity sha512-B3VqDZ+JAg1nZpaEmWtTXUlBneoGx6CPM9b0TENK6aoSu5t73dItudwdgmi6tHlIZZId4dZ9skcAQ2UbcyAeVA== yargs-parser@^18.1.2, yargs-parser@^18.1.3: version "18.1.3" @@ -12122,6 +11980,11 @@ yargs-parser@^18.1.2, yargs-parser@^18.1.3: camelcase "^5.0.0" decamelize "^1.2.0" +yargs-parser@^20.2.2: + version "20.2.9" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.9.tgz#2eb7dc3b0289718fc295f362753845c41a0c94ee" + integrity sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w== + yargs-parser@^21.1.1: version "21.1.1" resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-21.1.1.tgz#9096bceebf990d21bb31fa9516e0ede294a77d35" @@ -12144,6 +12007,19 @@ yargs@^15.1.0: y18n "^4.0.0" yargs-parser "^18.1.2" +yargs@^16.0.0: + version "16.2.0" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-16.2.0.tgz#1c82bf0f6b6a66eafce7ef30e376f49a12477f66" + integrity sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw== + dependencies: + cliui "^7.0.2" + escalade "^3.1.1" + get-caller-file "^2.0.5" + require-directory "^2.1.1" + string-width "^4.2.0" + y18n "^5.0.5" + yargs-parser "^20.2.2" + yargs@^17.5.1, yargs@^17.7.1: version "17.7.2" resolved "https://registry.yarnpkg.com/yargs/-/yargs-17.7.2.tgz#991df39aca675a192b816e1e0363f9d75d2aa269" @@ -12163,15 +12039,15 @@ yocto-queue@^0.1.0: integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q== zip-stream@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/zip-stream/-/zip-stream-4.1.0.tgz#51dd326571544e36aa3f756430b313576dc8fc79" - integrity sha512-zshzwQW7gG7hjpBlgeQP9RuyPGNxvJdzR8SUM3QhxCnLjWN2E7j3dOvpeDcQoETfHx0urRS7EtmVToql7YpU4A== + version "4.1.1" + resolved "https://registry.yarnpkg.com/zip-stream/-/zip-stream-4.1.1.tgz#1337fe974dbaffd2fa9a1ba09662a66932bd7135" + integrity sha512-9qv4rlDiopXg4E69k+vMHjNN63YFMe9sZMrdlvKnCjlCRWeCBswPPMPUfx+ipsAWq1LXHe70RcbaHdJJpS6hyQ== dependencies: - archiver-utils "^2.1.0" - compress-commons "^4.1.0" + archiver-utils "^3.0.4" + compress-commons "^4.1.2" readable-stream "^3.6.0" -zod@^3.22.4: - version "3.22.4" - resolved "https://registry.yarnpkg.com/zod/-/zod-3.22.4.tgz#f31c3a9386f61b1f228af56faa9255e845cf3fff" - integrity sha512-iC+8Io04lddc+mVqQ9AZ7OQ2MrUKGN+oIQyq1vemgt46jwCwLfhq7/pwnBnNXXXZb8VTVLKwp9EDkx+ryxIWmg== +zod@^3.22.4, zod@^3.23.5: + version "3.23.5" + resolved "https://registry.yarnpkg.com/zod/-/zod-3.23.5.tgz#c7b7617d017d4a2f21852f533258d26a9a5ae09f" + integrity sha512-fkwiq0VIQTksNNA131rDOsVJcns0pfVUjHzLrNBiF/O/Xxb5lQyEXkhZWcJ7npWsYlvs+h0jFWXXy4X46Em1JA== From 9e34137462bad82d95f5692fbbdcdc4734b8a3b6 Mon Sep 17 00:00:00 2001 From: nicholas ma Date: Thu, 2 May 2024 10:12:22 -0700 Subject: [PATCH 40/60] fix: typo in noopener noreferrer --- src/components/popup/asset/Thumbnail.tsx | 2 +- src/routes/popup/token/[id].tsx | 2 +- src/routes/popup/tokens.tsx | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/components/popup/asset/Thumbnail.tsx b/src/components/popup/asset/Thumbnail.tsx index 34fc41dad..06e6b1f8a 100644 --- a/src/components/popup/asset/Thumbnail.tsx +++ b/src/components/popup/asset/Thumbnail.tsx @@ -21,7 +21,7 @@ export default function Thumbnail({ src }: Props) { e.stopPropagation()} > diff --git a/src/routes/popup/token/[id].tsx b/src/routes/popup/token/[id].tsx index fad1cd7aa..369d3148d 100644 --- a/src/routes/popup/token/[id].tsx +++ b/src/routes/popup/token/[id].tsx @@ -520,7 +520,7 @@ const Description = styled(Text).attrs({ export const Link = styled.a.attrs({ target: "_blank", - rel: "noopen noreferer" + rel: "noopener noreferrer" })` display: flex; align-items: center; diff --git a/src/routes/popup/tokens.tsx b/src/routes/popup/tokens.tsx index 00e4f98df..253777397 100644 --- a/src/routes/popup/tokens.tsx +++ b/src/routes/popup/tokens.tsx @@ -67,7 +67,7 @@ const TokensList = styled(Section)` `; const ManageButton = styled.a.attrs({ - rel: "noopener noreferer", + rel: "noopener noreferrer", target: "_blank" })` display: flex; From 793cec22495b1cf900cb26f7a1b29eb5c2154fef Mon Sep 17 00:00:00 2001 From: nicholas ma Date: Thu, 2 May 2024 10:27:57 -0700 Subject: [PATCH 41/60] fix: removed ao-tokens --- package.json | 1 - yarn.lock | 5 ----- 2 files changed, 6 deletions(-) diff --git a/package.json b/package.json index a100ae788..253c962f4 100644 --- a/package.json +++ b/package.json @@ -59,7 +59,6 @@ "@plasmohq/storage": "^1.7.2", "@segment/analytics-next": "^1.53.2", "@untitled-ui/icons-react": "^0.1.1", - "ao-tokens": "^0.0.3", "ar-gql": "1.2.9", "arbundles": "^0.9.5", "arweave": "^1.13.0", diff --git a/yarn.lock b/yarn.lock index a35e326af..188531616 100644 --- a/yarn.lock +++ b/yarn.lock @@ -4596,11 +4596,6 @@ anymatch@~3.1.2: normalize-path "^3.0.0" picomatch "^2.0.4" -ao-tokens@^0.0.3: - version "0.0.3" - resolved "https://registry.yarnpkg.com/ao-tokens/-/ao-tokens-0.0.3.tgz#55f3e74a1931d842f59d9c6f947eab302434c0b4" - integrity sha512-M8Wzq9VIRYNVKhgcu+UaiKDe/jftmoPbZXGLZtoBKEv4XKdbBBcSapHwYk7Lx2k4Kyz2zTacfDv1SvGGO+PFyQ== - aproba@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/aproba/-/aproba-2.0.0.tgz#52520b8ae5b569215b354efc0caa3fe1e45a8adc" From c69e7b3ae9d5f1f5331146a0cb3713edfeb72063 Mon Sep 17 00:00:00 2001 From: nicholas ma Date: Mon, 13 May 2024 15:52:55 -0700 Subject: [PATCH 42/60] fix: added auto renewal toggle, cancelled sub if missed by over a week --- package.json | 2 +- src/routes/auth/subscription.tsx | 11 +- .../subscriptions/subscriptionDetails.tsx | 44 +- src/subscriptions/index.ts | 20 + src/subscriptions/payments.ts | 27 +- src/subscriptions/subscription.ts | 1 + src/utils/analytics.ts | 1 + yarn.lock | 885 +++++++++--------- 8 files changed, 535 insertions(+), 456 deletions(-) diff --git a/package.json b/package.json index d13845107..2e38c3686 100644 --- a/package.json +++ b/package.json @@ -125,6 +125,6 @@ "**/msgpackr": ">=1.10.1", "human-crypto-keys/node-forge": "^1.3.1", "human-crypto-keys/crypto-key-composer/node-forge": "^1.3.1", - "@parcel/runtime-js": "^2.8.3" + "@parcel/runtime-js": "2.8.3" } } diff --git a/src/routes/auth/subscription.tsx b/src/routes/auth/subscription.tsx index ec1ec9c23..d790d77d2 100644 --- a/src/routes/auth/subscription.tsx +++ b/src/routes/auth/subscription.tsx @@ -47,6 +47,8 @@ export default function Subscription() { const { setToast } = useToasts(); const [currency] = useSetting("currency"); + const [checked, setChecked] = useState(false); + // get auth utils const { closeWindow, cancel } = useAuthUtils("subscription", params?.authID); const theme = useTheme(); @@ -89,10 +91,11 @@ export default function Subscription() { // TODO: this should be default started to now subscriptionStartDate: new Date(), subscriptionEndDate: new Date(subscriptionParams.subscriptionEndDate), - applicationIcon: subscriptionParams.applicationIcon + applicationIcon: subscriptionParams.applicationIcon, + applicationAutoRenewal: checked }; - const updated = await handleSubscriptionPayment(subscriptionData); + const updated = await handleSubscriptionPayment(subscriptionData, true); if (updated) { await addSubscription(activeAddress, updated); } else { @@ -112,7 +115,7 @@ export default function Subscription() { closeWindow(); } catch (e) { - console.log("Failed to subscribe"); + console.log(e, "Failed to subscribe"); setToast({ type: "error", //TODO: update message @@ -202,7 +205,7 @@ export default function Subscription() { > Auto-renewal - + diff --git a/src/routes/popup/subscriptions/subscriptionDetails.tsx b/src/routes/popup/subscriptions/subscriptionDetails.tsx index ddf0ab681..9ac7347d9 100644 --- a/src/routes/popup/subscriptions/subscriptionDetails.tsx +++ b/src/routes/popup/subscriptions/subscriptionDetails.tsx @@ -3,13 +3,14 @@ import { type SubscriptionData } from "~subscriptions/subscription"; import HeadV2 from "~components/popup/HeadV2"; -import { useEffect, useState } from "react"; +import { useEffect, useState, type Dispatch, type SetStateAction } from "react"; import { getActiveAddress } from "~wallets"; import browser from "webextension-polyfill"; import styled from "styled-components"; import { deleteSubscription, getSubscriptionData, + updateAutoRenewal, updateSubscription } from "~subscriptions"; import dayjs from "dayjs"; @@ -47,6 +48,7 @@ interface Props { export default function SubscriptionDetails({ id }: Props) { const theme = useTheme(); const [subData, setSubData] = useState(null); + const [checked, setChecked] = useState(false); const [push, goBack] = useHistory(); const { setToast } = useToasts(); const [price, setPrice] = useState(); @@ -108,6 +110,7 @@ export default function SubscriptionDetails({ id }: Props) { (subscription) => subscription.arweaveAccountAddress === id ); setSubData(subscription); + setChecked(subscription.applicationAutoRenewal); setColor(getColorByStatus(subscription.subscriptionStatus)); const arPrice = await getPrice("arweave", currency); if (arPrice) { @@ -124,6 +127,24 @@ export default function SubscriptionDetails({ id }: Props) { getSubData(); }, []); + // update auto renewal + useEffect(() => { + const update = async () => { + try { + const address = await getActiveAddress(); + + await updateAutoRenewal( + checked, + address, + subData.arweaveAccountAddress + ); + } catch (err) { + console.log("err", err); + } + }; + update(); + }, [checked]); + // prepare tx to send async function send() { const byte = new TextEncoder().encode( @@ -182,14 +203,12 @@ export default function SubscriptionDetails({ id }: Props) { {subData.subscriptionStatus} - send()}> + {/* TODO: Needs Refactor */} + {/* send()}> Pay now - + */}
- {/* {subData.subscriptionStatus === SubscriptionStatus.AWAITING_PAYMENT && ( - - )} */} @@ -256,7 +275,7 @@ export default function SubscriptionDetails({ id }: Props) { > Auto-renewal - + @@ -395,8 +414,14 @@ export const SubscriptionListItem = styled.div` display: flex; `; -export const ToggleSwitch = () => { - const [checked, setChecked] = useState(false); +export const ToggleSwitch = ({ + checked, + setChecked +}: { + checked: boolean; + setChecked: Dispatch>; +}) => { + // const [checked, setChecked] = useState(false); const handleChange = () => { setChecked(!checked); @@ -409,6 +434,7 @@ export const ToggleSwitch = () => { ); }; + const SwitchWrapper = styled.label` position: relative; display: inline-block; diff --git a/src/subscriptions/index.ts b/src/subscriptions/index.ts index ae03f3811..bc3ef9e20 100644 --- a/src/subscriptions/index.ts +++ b/src/subscriptions/index.ts @@ -74,6 +74,26 @@ export function calculateNextPaymentDate( return currentDate; } +export async function updateAutoRenewal( + autoRenewal: boolean, + activeAddress: string, + updateId: string +) { + try { + const subscriptions = await getSubscriptionData(activeAddress); + const subscriptionIndex = subscriptions.findIndex( + (subscription) => subscription.arweaveAccountAddress === updateId + ); + if (subscriptionIndex !== -1) { + subscriptions[subscriptionIndex].applicationAutoRenewal = autoRenewal; + await ExtensionStorage.set( + `subscriptions_${activeAddress}`, + subscriptions + ); + } + } catch (err) {} +} + export async function updateSubscription( activeAddress: string, updateId: string, diff --git a/src/subscriptions/payments.ts b/src/subscriptions/payments.ts index cca235303..0f24d628b 100644 --- a/src/subscriptions/payments.ts +++ b/src/subscriptions/payments.ts @@ -17,7 +17,8 @@ import { import { isLocalWallet } from "~utils/assertions"; export async function handleSubscriptionPayment( - data: SubscriptionData + data: SubscriptionData, + initialPayment?: boolean ): Promise { const autoAllowance: number = await ExtensionStorage.get( "setting_subscription_allowance" @@ -26,6 +27,30 @@ export async function handleSubscriptionPayment( const subscriptionFee: number = data.subscriptionFeeAmount; + // don't charge if auto-renewal is off + if (!data.applicationAutoRenewal && !initialPayment) { + await statusUpdateSubscription( + activeAddress, + data.arweaveAccountAddress, + SubscriptionStatus.AWAITING_PAYMENT + ); + throw new Error("Auto-renewal not enabled."); + } + + // disable if payment is past due by a week + const now = new Date(); + const nextPaymentDue = new Date(data.nextPaymentDue); + const oneWeek = 7 * 24 * 60 * 60 * 1000; + + if (now.getTime() > nextPaymentDue.getTime() + oneWeek) { + await statusUpdateSubscription( + activeAddress, + data.arweaveAccountAddress, + SubscriptionStatus.CANCELED + ); + throw new Error("Payment is overdue by more than a week."); + } + if (subscriptionFee >= autoAllowance) { // TODO update status here diff --git a/src/subscriptions/subscription.ts b/src/subscriptions/subscription.ts index 4b7c34604..b4ca2f6a2 100644 --- a/src/subscriptions/subscription.ts +++ b/src/subscriptions/subscription.ts @@ -28,6 +28,7 @@ export interface SubscriptionData { applicationName: string; subscriptionName: string; subscriptionFeeAmount: number; + applicationAutoRenewal: boolean; subscriptionStatus?: SubscriptionStatus; recurringPaymentFrequency: RecurringPaymentFrequency; nextPaymentDue: Date | string; diff --git a/src/utils/analytics.ts b/src/utils/analytics.ts index 7898bd3c8..083e15874 100644 --- a/src/utils/analytics.ts +++ b/src/utils/analytics.ts @@ -52,6 +52,7 @@ export enum PageType { SETUP_PIN = "SETUP_PIN", SETUP_EXPLORE = "SETUP_EXPLORE", SETUP_CONNECT = "SETUP_CONNECT", + SUBSCRIPTIONS_MANAGEMENT = "SUBSCRIPTIONS_MANAGEMENT", TRANSAK_PURCHASE = "TRANSAK_PURCHASE", TRANSAK_CONFIRM_PURCHASE = "TRANSAK_CONFIRM_PURCHASE", TRANSAK_PURCHASE_PENDING = "TRANSAK_PURCHASE_PENDING" diff --git a/yarn.lock b/yarn.lock index 7def07220..4b9f4dd70 100644 --- a/yarn.lock +++ b/yarn.lock @@ -10,10 +10,10 @@ "@jridgewell/gen-mapping" "^0.3.5" "@jridgewell/trace-mapping" "^0.3.24" -"@arconnect/components@^0.3.6": - version "0.3.6" - resolved "https://registry.yarnpkg.com/@arconnect/components/-/components-0.3.6.tgz#19ac4c35386f212fbb8729146d073cafe0ecad51" - integrity sha512-3xLPkApb5wc8pXSv9v/W9J2NtukO9dXtF6p6IdKrR/0m4ozeY5CFbBjE/eylPGsCaBLUaKdJZ7k7fj94AdxZww== +"@arconnect/components@^0.3.8": + version "0.3.8" + resolved "https://registry.yarnpkg.com/@arconnect/components/-/components-0.3.8.tgz#aa230bb0908b5b4b5ec9701b8b78810ab9388dc7" + integrity sha512-k7YKaMO37It+IYGQA3DYqriOeKlIJnII9wc7Sl+3V7dsUZ3rNEk+qXIFVbcO/vMZM/Z6AR9MEUwbTFufu8MV8Q== dependencies: "@iconicicons/react" "^1.5.1" axios "^1.6.7" @@ -1030,66 +1030,66 @@ dependencies: call-bind "^1.0.7" +"@lmdb/lmdb-darwin-arm64@2.5.2": + version "2.5.2" + resolved "https://registry.yarnpkg.com/@lmdb/lmdb-darwin-arm64/-/lmdb-darwin-arm64-2.5.2.tgz#bc66fa43286b5c082e8fee0eacc17995806b6fbe" + integrity sha512-+F8ioQIUN68B4UFiIBYu0QQvgb9FmlKw2ctQMSBfW2QBrZIxz9vD9jCGqTCPqZBRbPHAS/vG1zSXnKqnS2ch/A== + "@lmdb/lmdb-darwin-arm64@2.7.11": version "2.7.11" resolved "https://registry.yarnpkg.com/@lmdb/lmdb-darwin-arm64/-/lmdb-darwin-arm64-2.7.11.tgz#b717e72f023d4215d14e4c57433c711a53c782cf" integrity sha512-r6+vYq2vKzE+vgj/rNVRMwAevq0+ZR9IeMFIqcSga+wMtMdXQ27KqQ7uS99/yXASg29bos7yHP3yk4x6Iio0lw== -"@lmdb/lmdb-darwin-arm64@2.8.5": - version "2.8.5" - resolved "https://registry.yarnpkg.com/@lmdb/lmdb-darwin-arm64/-/lmdb-darwin-arm64-2.8.5.tgz#895d8cb16a9d709ce5fedd8b60022903b875e08e" - integrity sha512-KPDeVScZgA1oq0CiPBcOa3kHIqU+pTOwRFDIhxvmf8CTNvqdZQYp5cCKW0bUk69VygB2PuTiINFWbY78aR2pQw== +"@lmdb/lmdb-darwin-x64@2.5.2": + version "2.5.2" + resolved "https://registry.yarnpkg.com/@lmdb/lmdb-darwin-x64/-/lmdb-darwin-x64-2.5.2.tgz#89d8390041bce6bab24a82a20392be22faf54ffc" + integrity sha512-KvPH56KRLLx4KSfKBx0m1r7GGGUMXm0jrKmNE7plbHlesZMuPJICtn07HYgQhj1LNsK7Yqwuvnqh1QxhJnF1EA== "@lmdb/lmdb-darwin-x64@2.7.11": version "2.7.11" resolved "https://registry.yarnpkg.com/@lmdb/lmdb-darwin-x64/-/lmdb-darwin-x64-2.7.11.tgz#b42898b0742b4a82b8224b742b2d174c449cd170" integrity sha512-jhj1aB4K8ycRL1HOQT5OtzlqOq70jxUQEWRN9Gqh3TIDN30dxXtiHi6EWF516tzw6v2+3QqhDMJh8O6DtTGG8Q== -"@lmdb/lmdb-darwin-x64@2.8.5": - version "2.8.5" - resolved "https://registry.yarnpkg.com/@lmdb/lmdb-darwin-x64/-/lmdb-darwin-x64-2.8.5.tgz#ca243534c8b37d5516c557e4624256d18dd63184" - integrity sha512-w/sLhN4T7MW1nB3R/U8WK5BgQLz904wh+/SmA2jD8NnF7BLLoUgflCNxOeSPOWp8geP6nP/+VjWzZVip7rZ1ug== +"@lmdb/lmdb-linux-arm64@2.5.2": + version "2.5.2" + resolved "https://registry.yarnpkg.com/@lmdb/lmdb-linux-arm64/-/lmdb-linux-arm64-2.5.2.tgz#14fe4c96c2bb1285f93797f45915fa35ee047268" + integrity sha512-aLl89VHL/wjhievEOlPocoefUyWdvzVrcQ/MHQYZm2JfV1jUsrbr/ZfkPPUFvZBf+VSE+Q0clWs9l29PCX1hTQ== "@lmdb/lmdb-linux-arm64@2.7.11": version "2.7.11" resolved "https://registry.yarnpkg.com/@lmdb/lmdb-linux-arm64/-/lmdb-linux-arm64-2.7.11.tgz#a8dc8e386d27006cfccbf2a8598290b63d03a9ec" integrity sha512-7xGEfPPbmVJWcY2Nzqo11B9Nfxs+BAsiiaY/OcT4aaTDdykKeCjvKMQJA3KXCtZ1AtiC9ljyGLi+BfUwdulY5A== -"@lmdb/lmdb-linux-arm64@2.8.5": - version "2.8.5" - resolved "https://registry.yarnpkg.com/@lmdb/lmdb-linux-arm64/-/lmdb-linux-arm64-2.8.5.tgz#b44a8023057e21512eefb9f6120096843b531c1e" - integrity sha512-vtbZRHH5UDlL01TT5jB576Zox3+hdyogvpcbvVJlmU5PdL3c5V7cj1EODdh1CHPksRl+cws/58ugEHi8bcj4Ww== +"@lmdb/lmdb-linux-arm@2.5.2": + version "2.5.2" + resolved "https://registry.yarnpkg.com/@lmdb/lmdb-linux-arm/-/lmdb-linux-arm-2.5.2.tgz#05bde4573ab10cf21827339fe687148f2590cfa1" + integrity sha512-5kQAP21hAkfW5Bl+e0P57dV4dGYnkNIpR7f/GAh6QHlgXx+vp/teVj4PGRZaKAvt0GX6++N6hF8NnGElLDuIDw== "@lmdb/lmdb-linux-arm@2.7.11": version "2.7.11" resolved "https://registry.yarnpkg.com/@lmdb/lmdb-linux-arm/-/lmdb-linux-arm-2.7.11.tgz#2103f48af28336efccaac008fe882dfce33e4ac5" integrity sha512-dHfLFVSrw/v5X5lkwp0Vl7+NFpEeEYKfMG2DpdFJnnG1RgHQZngZxCaBagFoaJGykRpd2DYF1AeuXBFrAUAXfw== -"@lmdb/lmdb-linux-arm@2.8.5": - version "2.8.5" - resolved "https://registry.yarnpkg.com/@lmdb/lmdb-linux-arm/-/lmdb-linux-arm-2.8.5.tgz#17bd54740779c3e4324e78e8f747c21416a84b3d" - integrity sha512-c0TGMbm2M55pwTDIfkDLB6BpIsgxV4PjYck2HiOX+cy/JWiBXz32lYbarPqejKs9Flm7YVAKSILUducU9g2RVg== +"@lmdb/lmdb-linux-x64@2.5.2": + version "2.5.2" + resolved "https://registry.yarnpkg.com/@lmdb/lmdb-linux-x64/-/lmdb-linux-x64-2.5.2.tgz#d2f85afd857d2c33d2caa5b057944574edafcfee" + integrity sha512-xUdUfwDJLGjOUPH3BuPBt0NlIrR7f/QHKgu3GZIXswMMIihAekj2i97oI0iWG5Bok/b+OBjHPfa8IU9velnP/Q== "@lmdb/lmdb-linux-x64@2.7.11": version "2.7.11" resolved "https://registry.yarnpkg.com/@lmdb/lmdb-linux-x64/-/lmdb-linux-x64-2.7.11.tgz#d21ac368022a662610540f2ba8bb6ff0b96a9940" integrity sha512-vUKI3JrREMQsXX8q0Eq5zX2FlYCKWMmLiCyyJNfZK0Uyf14RBg9VtB3ObQ41b4swYh2EWaltasWVe93Y8+KDng== -"@lmdb/lmdb-linux-x64@2.8.5": - version "2.8.5" - resolved "https://registry.yarnpkg.com/@lmdb/lmdb-linux-x64/-/lmdb-linux-x64-2.8.5.tgz#6c61835b6cc58efdf79dbd5e8c72a38300a90302" - integrity sha512-Xkc8IUx9aEhP0zvgeKy7IQ3ReX2N8N1L0WPcQwnZweWmOuKfwpS3GRIYqLtK5za/w3E60zhFfNdS+3pBZPytqQ== +"@lmdb/lmdb-win32-x64@2.5.2": + version "2.5.2" + resolved "https://registry.yarnpkg.com/@lmdb/lmdb-win32-x64/-/lmdb-win32-x64-2.5.2.tgz#28f643fbc0bec30b07fbe95b137879b6b4d1c9c5" + integrity sha512-zrBczSbXKxEyK2ijtbRdICDygRqWSRPpZMN5dD1T8VMEW5RIhIbwFWw2phDRXuBQdVDpSjalCIUMWMV2h3JaZA== "@lmdb/lmdb-win32-x64@2.7.11": version "2.7.11" resolved "https://registry.yarnpkg.com/@lmdb/lmdb-win32-x64/-/lmdb-win32-x64-2.7.11.tgz#af2cb4ae6d3a92ecdeb1503b73079417525476d2" integrity sha512-BJwkHlSUgtB+Ei52Ai32M1AOMerSlzyIGA/KC4dAGL+GGwVMdwG8HGCOA2TxP3KjhbgDPMYkv7bt/NmOmRIFng== -"@lmdb/lmdb-win32-x64@2.8.5": - version "2.8.5" - resolved "https://registry.yarnpkg.com/@lmdb/lmdb-win32-x64/-/lmdb-win32-x64-2.8.5.tgz#8233e8762440b0f4632c47a09b1b6f23de8b934c" - integrity sha512-4wvrf5BgnR8RpogHhtpCPJMKBmvyZPhhUtEwMJbXh0ni2BucpfF07jlmyM11zRqQ2XIq6PbC2j7W7UCCcm1rRQ== - "@lordvlad/asn1.js@^5.1.1": version "5.1.1" resolved "https://registry.yarnpkg.com/@lordvlad/asn1.js/-/asn1.js-5.1.1.tgz#468d5ff5f9045e0951a7d0e89a33e5f26a252df3" @@ -1447,11 +1447,6 @@ proc-log "^4.0.0" which "^4.0.0" -"@octokit/auth-token@^4.0.0": - version "4.0.0" - resolved "https://registry.yarnpkg.com/@octokit/auth-token/-/auth-token-4.0.0.tgz#40d203ea827b9f17f42a29c6afb93b7745ef80c7" - integrity sha512-tY/msAuJo6ARbK6SPIxZrPBms3xPbfwBrulZe0Wtr/DIY9lje2HeV1uoebShn6mx7SjCHif6EjMvoREj+gZ+SA== - "@octokit/auth-token@^5.0.0": version "5.1.1" resolved "https://registry.yarnpkg.com/@octokit/auth-token/-/auth-token-5.1.1.tgz#3bbfe905111332a17f72d80bd0b51a3e2fa2cf07" @@ -1461,6 +1456,7 @@ version "5.2.0" resolved "https://registry.yarnpkg.com/@octokit/core/-/core-5.2.0.tgz#ddbeaefc6b44a39834e1bb2e58a49a117672a7ea" integrity sha512-1LFfa/qnMQvEOAdzlQymH0ulepxbxnCYAKJZfMci/5XJyIHWgEYnDmgnKakbTh7CH2tFQ5O60oYDvns4i9RAIg== + dependencies: "@octokit/auth-token" "^4.0.0" "@octokit/graphql" "^7.1.0" "@octokit/request" "^8.3.1" @@ -1490,23 +1486,6 @@ "@octokit/types" "^13.0.0" universal-user-agent "^7.0.2" -"@octokit/endpoint@^9.0.1": - version "9.0.5" - resolved "https://registry.yarnpkg.com/@octokit/endpoint/-/endpoint-9.0.5.tgz#e6c0ee684e307614c02fc6ac12274c50da465c44" - integrity sha512-ekqR4/+PCLkEBF6qgj8WqJfvDq65RH85OAgrtnVp1mSxaXF03u2xW/hUdweGS5654IlC0wkNYC18Z50tSYTAFw== - dependencies: - "@octokit/types" "^13.1.0" - universal-user-agent "^6.0.0" - -"@octokit/graphql@^7.1.0": - version "7.1.0" - resolved "https://registry.yarnpkg.com/@octokit/graphql/-/graphql-7.1.0.tgz#9bc1c5de92f026648131f04101cab949eeffe4e0" - integrity sha512-r+oZUH7aMFui1ypZnAvZmn0KSqAUgE1/tUXIWaqUCa1758ts/Jio84GZuzsvUkme98kv0WFY8//n0J1Z+vsIsQ== - dependencies: - "@octokit/request" "^8.3.0" - "@octokit/types" "^13.0.0" - universal-user-agent "^6.0.0" - "@octokit/graphql@^8.0.0": version "8.1.1" resolved "https://registry.yarnpkg.com/@octokit/graphql/-/graphql-8.1.1.tgz#3cacab5f2e55d91c733e3bf481d3a3f8a5f639c4" @@ -1574,7 +1553,7 @@ "@octokit/types" "^13.0.0" bottleneck "^2.15.3" -"@octokit/request-error@^5.0.0", "@octokit/request-error@^5.1.0": +"@octokit/request-error@^5.0.0": version "5.1.0" resolved "https://registry.yarnpkg.com/@octokit/request-error/-/request-error-5.1.0.tgz#ee4138538d08c81a60be3f320cd71063064a3b30" integrity sha512-GETXfE05J0+7H2STzekpKObFe765O5dlAKUTLNGeH+x47z7JjXHfsHKo5z21D/o/IOZTUEI6nyWyR+bZVP/n5Q== @@ -1590,16 +1569,6 @@ dependencies: "@octokit/types" "^13.0.0" -"@octokit/request@^8.3.0", "@octokit/request@^8.3.1": - version "8.4.0" - resolved "https://registry.yarnpkg.com/@octokit/request/-/request-8.4.0.tgz#7f4b7b1daa3d1f48c0977ad8fffa2c18adef8974" - integrity sha512-9Bb014e+m2TgBeEJGEbdplMVWwPmL1FPtggHQRkV+WVsMggPtEkLKPlcVYm/o8xKLkpJ7B+6N8WfQMtDLX2Dpw== - dependencies: - "@octokit/endpoint" "^9.0.1" - "@octokit/request-error" "^5.1.0" - "@octokit/types" "^13.1.0" - universal-user-agent "^6.0.0" - "@octokit/request@^9.0.0": version "9.1.1" resolved "https://registry.yarnpkg.com/@octokit/request/-/request-9.1.1.tgz#e836eb69c0fb4b59b6437af7716ca348a1232a52" @@ -1636,15 +1605,15 @@ "@parcel/utils" "2.9.3" nullthrows "^1.1.1" -"@parcel/cache@2.12.0": - version "2.12.0" - resolved "https://registry.yarnpkg.com/@parcel/cache/-/cache-2.12.0.tgz#b8fd2ea2bc7a2353a9b20344cc191bfb4f8284f3" - integrity sha512-FX5ZpTEkxvq/yvWklRHDESVRz+c7sLTXgFuzz6uEnBcXV38j6dMSikflNpHA6q/L4GKkCqRywm9R6XQwhwIMyw== +"@parcel/cache@2.8.3": + version "2.8.3" + resolved "https://registry.yarnpkg.com/@parcel/cache/-/cache-2.8.3.tgz#169e130cf59913c0ed9fadce1a450e68f710e16f" + integrity sha512-k7xv5vSQrJLdXuglo+Hv3yF4BCSs1tQ/8Vbd6CHTkOhf7LcGg6CPtLw053R/KdMpd/4GPn0QrAsOLdATm1ELtQ== dependencies: - "@parcel/fs" "2.12.0" - "@parcel/logger" "2.12.0" - "@parcel/utils" "2.12.0" - lmdb "2.8.5" + "@parcel/fs" "2.8.3" + "@parcel/logger" "2.8.3" + "@parcel/utils" "2.8.3" + lmdb "2.5.2" "@parcel/cache@2.9.3": version "2.9.3" @@ -1656,10 +1625,10 @@ "@parcel/utils" "2.9.3" lmdb "2.7.11" -"@parcel/codeframe@2.12.0": - version "2.12.0" - resolved "https://registry.yarnpkg.com/@parcel/codeframe/-/codeframe-2.12.0.tgz#9ea75bd7ae6c5f7fadf42a5e64657cf88fdcb29e" - integrity sha512-v2VmneILFiHZJTxPiR7GEF1wey1/IXPdZMcUlNXBiPZyWDfcuNgGGVQkx/xW561rULLIvDPharOMdxz5oHOKQg== +"@parcel/codeframe@2.8.3": + version "2.8.3" + resolved "https://registry.yarnpkg.com/@parcel/codeframe/-/codeframe-2.8.3.tgz#84fb529ef70def7f5bc64f6c59b18d24826f5fcc" + integrity sha512-FE7sY53D6n/+2Pgg6M9iuEC6F5fvmyBkRE4d9VdnOoxhTXtkEqpqYgX7RJ12FAQwNlxKq4suBJQMgQHMF2Kjeg== dependencies: chalk "^4.1.0" @@ -1744,10 +1713,10 @@ nullthrows "^1.1.1" semver "^7.5.2" -"@parcel/diagnostic@2.12.0": - version "2.12.0" - resolved "https://registry.yarnpkg.com/@parcel/diagnostic/-/diagnostic-2.12.0.tgz#b38057d819ea2edc32018a1d51df434f07840be9" - integrity sha512-8f1NOsSFK+F4AwFCKynyIu9Kr/uWHC+SywAv4oS6Bv3Acig0gtwUjugk0C9UaB8ztBZiW5TQZhw+uPZn9T/lJA== +"@parcel/diagnostic@2.8.3": + version "2.8.3" + resolved "https://registry.yarnpkg.com/@parcel/diagnostic/-/diagnostic-2.8.3.tgz#d560276d5d2804b48beafa1feaf3fc6b2ac5e39d" + integrity sha512-u7wSzuMhLGWZjVNYJZq/SOViS3uFG0xwIcqXw12w54Uozd6BH8JlhVtVyAsq9kqnn7YFkw6pXHqAo5Tzh4FqsQ== dependencies: "@mischnic/json-sourcemap" "^0.1.0" nullthrows "^1.1.1" @@ -1760,31 +1729,38 @@ "@mischnic/json-sourcemap" "^0.1.0" nullthrows "^1.1.1" -"@parcel/events@2.12.0": - version "2.12.0" - resolved "https://registry.yarnpkg.com/@parcel/events/-/events-2.12.0.tgz#ef67e3fbb96806b3531a37bcf95e8fbb3818ffa2" - integrity sha512-nmAAEIKLjW1kB2cUbCYSmZOGbnGj8wCzhqnK727zCCWaA25ogzAtt657GPOeFyqW77KyosU728Tl63Fc8hphIA== +"@parcel/events@2.8.3": + version "2.8.3" + resolved "https://registry.yarnpkg.com/@parcel/events/-/events-2.8.3.tgz#205f8d874e6ecc2cbdb941bf8d54bae669e571af" + integrity sha512-hoIS4tAxWp8FJk3628bsgKxEvR7bq2scCVYHSqZ4fTi/s0+VymEATrRCUqf+12e5H47uw1/ZjoqrGtBI02pz4w== "@parcel/events@2.9.3": version "2.9.3" resolved "https://registry.yarnpkg.com/@parcel/events/-/events-2.9.3.tgz#b71253384c21f53fd3cced983cd2b287f7330e89" integrity sha512-K0Scx+Bx9f9p1vuShMzNwIgiaZUkxEnexaKYHYemJrM7pMAqxIuIqhnvwurRCsZOVLUJPDDNJ626cWTc5vIq+A== +"@parcel/fs-search@2.8.3": + version "2.8.3" + resolved "https://registry.yarnpkg.com/@parcel/fs-search/-/fs-search-2.8.3.tgz#1c7d812c110b808758f44c56e61dfffdb09e9451" + integrity sha512-DJBT2N8knfN7Na6PP2mett3spQLTqxFrvl0gv+TJRp61T8Ljc4VuUTb0hqBj+belaASIp3Q+e8+SgaFQu7wLiQ== + dependencies: + detect-libc "^1.0.3" + "@parcel/fs-search@2.9.3": version "2.9.3" resolved "https://registry.yarnpkg.com/@parcel/fs-search/-/fs-search-2.9.3.tgz#4993d68478b15db404149a271bb0084382dd2040" integrity sha512-nsNz3bsOpwS+jphcd+XjZL3F3PDq9lik0O8HPm5f6LYkqKWT+u/kgQzA8OkAHCR3q96LGiHxUywHPEBc27vI4Q== -"@parcel/fs@2.12.0": - version "2.12.0" - resolved "https://registry.yarnpkg.com/@parcel/fs/-/fs-2.12.0.tgz#8c9029353888311ba2e9e2198dbe6c7c1da635c0" - integrity sha512-NnFkuvou1YBtPOhTdZr44WN7I60cGyly2wpHzqRl62yhObyi1KvW0SjwOMa0QGNcBOIzp4G0CapoZ93hD0RG5Q== +"@parcel/fs@2.8.3": + version "2.8.3" + resolved "https://registry.yarnpkg.com/@parcel/fs/-/fs-2.8.3.tgz#80536afe877fc8a2bd26be5576b9ba27bb4c5754" + integrity sha512-y+i+oXbT7lP0e0pJZi/YSm1vg0LDsbycFuHZIL80pNwdEppUAtibfJZCp606B7HOjMAlNZOBo48e3hPG3d8jgQ== dependencies: - "@parcel/rust" "2.12.0" - "@parcel/types" "2.12.0" - "@parcel/utils" "2.12.0" + "@parcel/fs-search" "2.8.3" + "@parcel/types" "2.8.3" + "@parcel/utils" "2.8.3" "@parcel/watcher" "^2.0.7" - "@parcel/workers" "2.12.0" + "@parcel/workers" "2.8.3" "@parcel/fs@2.9.3": version "2.9.3" @@ -1804,6 +1780,14 @@ dependencies: nullthrows "^1.1.1" +"@parcel/hash@2.8.3": + version "2.8.3" + resolved "https://registry.yarnpkg.com/@parcel/hash/-/hash-2.8.3.tgz#bc2499a27395169616cad2a99e19e69b9098f6e9" + integrity sha512-FVItqzjWmnyP4ZsVgX+G00+6U2IzOvqDtdwQIWisCcVoXJFCqZJDy6oa2qDDFz96xCCCynjRjPdQx2jYBCpfYw== + dependencies: + detect-libc "^1.0.3" + xxhash-wasm "^0.4.2" + "@parcel/hash@2.9.3": version "2.9.3" resolved "https://registry.yarnpkg.com/@parcel/hash/-/hash-2.9.3.tgz#bc7727939b1211b0a5d67fd00a9a55b8393c644a" @@ -1811,13 +1795,13 @@ dependencies: xxhash-wasm "^0.4.2" -"@parcel/logger@2.12.0": - version "2.12.0" - resolved "https://registry.yarnpkg.com/@parcel/logger/-/logger-2.12.0.tgz#0b866b7aee8a0a462596a80cd46bd8b29c318758" - integrity sha512-cJ7Paqa7/9VJ7C+KwgJlwMqTQBOjjn71FbKk0G07hydUEBISU2aDfmc/52o60ErL9l+vXB26zTrIBanbxS8rVg== +"@parcel/logger@2.8.3": + version "2.8.3" + resolved "https://registry.yarnpkg.com/@parcel/logger/-/logger-2.8.3.tgz#e14e4debafb3ca9e87c07c06780f9afc38b2712c" + integrity sha512-Kpxd3O/Vs7nYJIzkdmB6Bvp3l/85ydIxaZaPfGSGTYOfaffSOTkhcW9l6WemsxUrlts4za6CaEWcc4DOvaMOPA== dependencies: - "@parcel/diagnostic" "2.12.0" - "@parcel/events" "2.12.0" + "@parcel/diagnostic" "2.8.3" + "@parcel/events" "2.8.3" "@parcel/logger@2.9.3": version "2.9.3" @@ -1827,10 +1811,10 @@ "@parcel/diagnostic" "2.9.3" "@parcel/events" "2.9.3" -"@parcel/markdown-ansi@2.12.0": - version "2.12.0" - resolved "https://registry.yarnpkg.com/@parcel/markdown-ansi/-/markdown-ansi-2.12.0.tgz#a4301321fa784a28ba817e65e41432fe8b3b3192" - integrity sha512-WZz3rzL8k0H3WR4qTHX6Ic8DlEs17keO9gtD4MNGyMNQbqQEvQ61lWJaIH0nAtgEetu0SOITiVqdZrb8zx/M7w== +"@parcel/markdown-ansi@2.8.3": + version "2.8.3" + resolved "https://registry.yarnpkg.com/@parcel/markdown-ansi/-/markdown-ansi-2.8.3.tgz#1337d421bb1133ad178f386a8e1b746631bba4a1" + integrity sha512-4v+pjyoh9f5zuU/gJlNvNFGEAb6J90sOBwpKJYJhdWXLZMNFCVzSigxrYO+vCsi8G4rl6/B2c0LcwIMjGPHmFQ== dependencies: chalk "^4.1.0" @@ -1862,19 +1846,6 @@ nullthrows "^1.1.1" semver "^7.5.2" -"@parcel/node-resolver-core@3.3.0": - version "3.3.0" - resolved "https://registry.yarnpkg.com/@parcel/node-resolver-core/-/node-resolver-core-3.3.0.tgz#f40d80de800baa7cf230406b7122c8711ac4cdc8" - integrity sha512-rhPW9DYPEIqQBSlYzz3S0AjXxjN6Ub2yS6tzzsW/4S3Gpsgk/uEq4ZfxPvoPf/6TgZndVxmKwpmxaKtGMmf3cA== - dependencies: - "@mischnic/json-sourcemap" "^0.1.0" - "@parcel/diagnostic" "2.12.0" - "@parcel/fs" "2.12.0" - "@parcel/rust" "2.12.0" - "@parcel/utils" "2.12.0" - nullthrows "^1.1.1" - semver "^7.5.2" - "@parcel/optimizer-css@2.9.3": version "2.9.3" resolved "https://registry.yarnpkg.com/@parcel/optimizer-css/-/optimizer-css-2.9.3.tgz#76f2f77adde9dee7498611f6be3078d0bde0396d" @@ -1941,20 +1912,18 @@ "@swc/core" "^1.3.36" nullthrows "^1.1.1" -"@parcel/package-manager@2.12.0": - version "2.12.0" - resolved "https://registry.yarnpkg.com/@parcel/package-manager/-/package-manager-2.12.0.tgz#7e1eb5f652544e045f7240fa6cf92e5ff1627624" - integrity sha512-0nvAezcjPx9FT+hIL+LS1jb0aohwLZXct7jAh7i0MLMtehOi0z1Sau+QpgMlA9rfEZZ1LIeFdnZZwqSy7Ccspw== - dependencies: - "@parcel/diagnostic" "2.12.0" - "@parcel/fs" "2.12.0" - "@parcel/logger" "2.12.0" - "@parcel/node-resolver-core" "3.3.0" - "@parcel/types" "2.12.0" - "@parcel/utils" "2.12.0" - "@parcel/workers" "2.12.0" - "@swc/core" "^1.3.36" - semver "^7.5.2" +"@parcel/package-manager@2.8.3": + version "2.8.3" + resolved "https://registry.yarnpkg.com/@parcel/package-manager/-/package-manager-2.8.3.tgz#ddd0d62feae3cf0fb6cc0537791b3a16296ad458" + integrity sha512-tIpY5pD2lH53p9hpi++GsODy6V3khSTX4pLEGuMpeSYbHthnOViobqIlFLsjni+QA1pfc8NNNIQwSNdGjYflVA== + dependencies: + "@parcel/diagnostic" "2.8.3" + "@parcel/fs" "2.8.3" + "@parcel/logger" "2.8.3" + "@parcel/types" "2.8.3" + "@parcel/utils" "2.8.3" + "@parcel/workers" "2.8.3" + semver "^5.7.1" "@parcel/package-manager@2.9.3": version "2.9.3" @@ -2022,12 +1991,12 @@ "@parcel/utils" "2.9.3" posthtml "^0.16.4" -"@parcel/plugin@2.12.0": - version "2.12.0" - resolved "https://registry.yarnpkg.com/@parcel/plugin/-/plugin-2.12.0.tgz#3db4237e8977ef5b5378b65eaffb809d2026431a" - integrity sha512-nc/uRA8DiMoe4neBbzV6kDndh/58a4wQuGKw5oEoIwBCHUvE2W8ZFSu7ollSXUGRzfacTt4NdY8TwS73ScWZ+g== +"@parcel/plugin@2.8.3": + version "2.8.3" + resolved "https://registry.yarnpkg.com/@parcel/plugin/-/plugin-2.8.3.tgz#7bb30a5775eaa6473c27f002a0a3ee7308d6d669" + integrity sha512-jZ6mnsS4D9X9GaNnvrixDQwlUQJCohDX2hGyM0U0bY2NWU8Km97SjtoCpWjq+XBCx/gpC4g58+fk9VQeZq2vlw== dependencies: - "@parcel/types" "2.12.0" + "@parcel/types" "2.8.3" "@parcel/plugin@2.9.3": version "2.9.3" @@ -2036,15 +2005,6 @@ dependencies: "@parcel/types" "2.9.3" -"@parcel/profiler@2.12.0": - version "2.12.0" - resolved "https://registry.yarnpkg.com/@parcel/profiler/-/profiler-2.12.0.tgz#8541ca5d27500aebc843b1de081734442e5ee054" - integrity sha512-q53fvl5LDcFYzMUtSusUBZSjQrKjMlLEBgKeQHFwkimwR1mgoseaDBDuNz0XvmzDzF1UelJ02TUKCGacU8W2qA== - dependencies: - "@parcel/diagnostic" "2.12.0" - "@parcel/events" "2.12.0" - chrome-trace-event "^1.0.2" - "@parcel/profiler@2.9.3": version "2.9.3" resolved "https://registry.yarnpkg.com/@parcel/profiler/-/profiler-2.9.3.tgz#6575ed6dc4275c0161dce74bd719961236673ce1" @@ -2085,14 +2045,13 @@ "@parcel/plugin" "2.9.3" "@parcel/utils" "2.9.3" -"@parcel/runtime-js@2.8.3", "@parcel/runtime-js@2.9.3", "@parcel/runtime-js@^2.8.3": - version "2.12.0" - resolved "https://registry.yarnpkg.com/@parcel/runtime-js/-/runtime-js-2.12.0.tgz#da6f7da041cb157556822ad60fefcdbc790dda9c" - integrity sha512-sBerP32Z1crX5PfLNGDSXSdqzlllM++GVnVQVeM7DgMKS8JIFG3VLi28YkX+dYYGtPypm01JoIHCkvwiZEcQJg== +"@parcel/runtime-js@2.8.3", "@parcel/runtime-js@2.9.3": + version "2.8.3" + resolved "https://registry.yarnpkg.com/@parcel/runtime-js/-/runtime-js-2.8.3.tgz#0baa4c8fbf77eabce05d01ccc186614968ffc0cd" + integrity sha512-IRja0vNKwvMtPgIqkBQh0QtRn0XcxNC8HU1jrgWGRckzu10qJWO+5ULgtOeR4pv9krffmMPqywGXw6l/gvJKYQ== dependencies: - "@parcel/diagnostic" "2.12.0" - "@parcel/plugin" "2.12.0" - "@parcel/utils" "2.12.0" + "@parcel/plugin" "2.8.3" + "@parcel/utils" "2.8.3" nullthrows "^1.1.1" "@parcel/runtime-react-refresh@2.9.3": @@ -2114,11 +2073,6 @@ "@parcel/utils" "2.9.3" nullthrows "^1.1.1" -"@parcel/rust@2.12.0": - version "2.12.0" - resolved "https://registry.yarnpkg.com/@parcel/rust/-/rust-2.12.0.tgz#135df4dd8c63d97720379777c5bb4a2680a201cd" - integrity sha512-005cldMdFZFDPOjbDVEXcINQ3wT4vrxvSavRWI3Az0e3E18exO/x/mW9f648KtXugOXMAqCEqhFHcXECL9nmMw== - "@parcel/source-map@2.1.1", "@parcel/source-map@^2.1.1": version "2.1.1" resolved "https://registry.yarnpkg.com/@parcel/source-map/-/source-map-2.1.1.tgz#fb193b82dba6dd62cc7a76b326f57bb35000a782" @@ -2310,17 +2264,17 @@ dependencies: "@parcel/plugin" "2.9.3" -"@parcel/types@2.12.0": - version "2.12.0" - resolved "https://registry.yarnpkg.com/@parcel/types/-/types-2.12.0.tgz#caf0af00ee0c7228b350eca5f4d3a5b85ce457ad" - integrity sha512-8zAFiYNCwNTQcglIObyNwKfRYQK5ELlL13GuBOrSMxueUiI5ylgsGbTS1N7J3dAGZixHO8KhHGv5a71FILn9rQ== +"@parcel/types@2.8.3": + version "2.8.3" + resolved "https://registry.yarnpkg.com/@parcel/types/-/types-2.8.3.tgz#3306bc5391b6913bd619914894b8cd84a24b30fa" + integrity sha512-FECA1FB7+0UpITKU0D6TgGBpGxYpVSMNEENZbSJxFSajNy3wrko+zwBKQmFOLOiPcEtnGikxNs+jkFWbPlUAtw== dependencies: - "@parcel/cache" "2.12.0" - "@parcel/diagnostic" "2.12.0" - "@parcel/fs" "2.12.0" - "@parcel/package-manager" "2.12.0" + "@parcel/cache" "2.8.3" + "@parcel/diagnostic" "2.8.3" + "@parcel/fs" "2.8.3" + "@parcel/package-manager" "2.8.3" "@parcel/source-map" "^2.1.1" - "@parcel/workers" "2.12.0" + "@parcel/workers" "2.8.3" utility-types "^3.10.0" "@parcel/types@2.9.3": @@ -2336,19 +2290,18 @@ "@parcel/workers" "2.9.3" utility-types "^3.10.0" -"@parcel/utils@2.12.0": - version "2.12.0" - resolved "https://registry.yarnpkg.com/@parcel/utils/-/utils-2.12.0.tgz#ac900726e7cb12a9e6392081fa05b756183f65fd" - integrity sha512-z1JhLuZ8QmDaYoEIuUCVZlhcFrS7LMfHrb2OCRui5SQFntRWBH2fNM6H/fXXUkT9SkxcuFP2DUA6/m4+Gkz72g== - dependencies: - "@parcel/codeframe" "2.12.0" - "@parcel/diagnostic" "2.12.0" - "@parcel/logger" "2.12.0" - "@parcel/markdown-ansi" "2.12.0" - "@parcel/rust" "2.12.0" +"@parcel/utils@2.8.3": + version "2.8.3" + resolved "https://registry.yarnpkg.com/@parcel/utils/-/utils-2.8.3.tgz#0d56c9e8e22c119590a5e044a0e01031965da40e" + integrity sha512-IhVrmNiJ+LOKHcCivG5dnuLGjhPYxQ/IzbnF2DKNQXWBTsYlHkJZpmz7THoeLtLliGmSOZ3ZCsbR8/tJJKmxjA== + dependencies: + "@parcel/codeframe" "2.8.3" + "@parcel/diagnostic" "2.8.3" + "@parcel/hash" "2.8.3" + "@parcel/logger" "2.8.3" + "@parcel/markdown-ansi" "2.8.3" "@parcel/source-map" "^2.1.1" chalk "^4.1.0" - nullthrows "^1.1.1" "@parcel/utils@2.9.3": version "2.9.3" @@ -2518,16 +2471,16 @@ "@parcel/watcher-win32-ia32" "2.4.1" "@parcel/watcher-win32-x64" "2.4.1" -"@parcel/workers@2.12.0": - version "2.12.0" - resolved "https://registry.yarnpkg.com/@parcel/workers/-/workers-2.12.0.tgz#773182b5006741102de8ae36d18a5a9e3320ebd1" - integrity sha512-zv5We5Jmb+ZWXlU6A+AufyjY4oZckkxsZ8J4dvyWL0W8IQvGO1JB4FGeryyttzQv3RM3OxcN/BpTGPiDG6keBw== - dependencies: - "@parcel/diagnostic" "2.12.0" - "@parcel/logger" "2.12.0" - "@parcel/profiler" "2.12.0" - "@parcel/types" "2.12.0" - "@parcel/utils" "2.12.0" +"@parcel/workers@2.8.3": + version "2.8.3" + resolved "https://registry.yarnpkg.com/@parcel/workers/-/workers-2.8.3.tgz#255450ccf4db234082407e4ddda5fd575f08c235" + integrity sha512-+AxBnKgjqVpUHBcHLWIHcjYgKIvHIpZjN33mG5LG9XXvrZiqdWvouEzqEXlVLq5VzzVbKIQQcmsvRy138YErkg== + dependencies: + "@parcel/diagnostic" "2.8.3" + "@parcel/logger" "2.8.3" + "@parcel/types" "2.8.3" + "@parcel/utils" "2.8.3" + chrome-trace-event "^1.0.2" nullthrows "^1.1.1" "@parcel/workers@2.9.3": @@ -2848,6 +2801,11 @@ dependencies: "@randlabs/communication-bridge" "1.0.1" +"@sec-ant/readable-stream@^0.4.1": + version "0.4.1" + resolved "https://registry.yarnpkg.com/@sec-ant/readable-stream/-/readable-stream-0.4.1.tgz#60de891bb126abfdc5410fdc6166aca065f10a0c" + integrity sha512-831qok9r2t8AlxLko40y2ebgSDhenenCatLVeW/uBtnHPyhHOvG0C7TvfgecV+wHzIm5KUICgzmVpWS+IMEAeg== + "@segment/analytics-core@1.6.0": version "1.6.0" resolved "https://registry.yarnpkg.com/@segment/analytics-core/-/analytics-core-1.6.0.tgz#f59cdc45a4408a09fdae77910f5a0b43833e8af8" @@ -2869,6 +2827,7 @@ version "1.69.0" resolved "https://registry.yarnpkg.com/@segment/analytics-next/-/analytics-next-1.69.0.tgz#7d66805d2cb9b09888846e6ec4cf22d3c90fd175" integrity sha512-Uk7l0umdRMtUJSW2WDSG9lUia4OaiFbCIQSFoIHge6sNrCENEDCr/cN8aW0pyRXZ62hFbezuXwTdeTgvFMrTBg== + dependencies: "@lukeed/uuid" "^2.0.0" "@segment/analytics-core" "1.6.0" "@segment/analytics-generic-utils" "1.2.0" @@ -3002,13 +2961,13 @@ url-join "^5.0.0" "@semantic-release/npm@^12.0.0": - version "12.0.0" - resolved "https://registry.yarnpkg.com/@semantic-release/npm/-/npm-12.0.0.tgz#2c3721aa3e242ad07ae6eb7a951934eeb0f0e5bb" - integrity sha512-72TVYQCH9NvVsO/y13eF8vE4bNnfls518+4KcFwJUKi7AtA/ZXoNgSg9gTTfw5eMZMkiH0izUrpGXgZE/cSQhA== + version "12.0.1" + resolved "https://registry.yarnpkg.com/@semantic-release/npm/-/npm-12.0.1.tgz#ffb47906de95f8dade8fe0480df0a08dbe1b80c9" + integrity sha512-/6nntGSUGK2aTOI0rHPwY3ZjgY9FkXmEHbW9Kr+62NVOsyqpKKeP0lrCH+tphv+EsNdJNmqqwijTEnVWUMQ2Nw== dependencies: "@semantic-release/error" "^4.0.0" aggregate-error "^5.0.0" - execa "^8.0.0" + execa "^9.0.0" fs-extra "^11.0.0" lodash-es "^4.17.21" nerf-dart "^1.0.0" @@ -3049,27 +3008,29 @@ integrity sha512-JzBqdVIyqm2FRQCulY6nbQzMpJJpSiJ8XXWMhtOX9eKgaXXpfNOF53lzQEjIydlStnd/eFtuC1dW4VYdD93oRg== "@sigstore/protobuf-specs@^0.3.0", "@sigstore/protobuf-specs@^0.3.1": - version "0.3.1" - resolved "https://registry.yarnpkg.com/@sigstore/protobuf-specs/-/protobuf-specs-0.3.1.tgz#7095819fa7c5743efde48a858c37b30fab190a09" - integrity sha512-aIL8Z9NsMr3C64jyQzE0XlkEyBLpgEJJFDHLVVStkFV5Q3Il/r/YtY6NJWKQ4cy4AE7spP1IX5Jq7VCAxHHMfQ== + version "0.3.2" + resolved "https://registry.yarnpkg.com/@sigstore/protobuf-specs/-/protobuf-specs-0.3.2.tgz#5becf88e494a920f548d0163e2978f81b44b7d6f" + integrity sha512-c6B0ehIWxMI8wiS/bj6rHMPqeFvngFV7cDU/MY+B16P9Z3Mp9k8L93eYZ7BYzSickzuqAQqAq0V956b3Ju6mLw== "@sigstore/sign@^2.3.0": - version "2.3.0" - resolved "https://registry.yarnpkg.com/@sigstore/sign/-/sign-2.3.0.tgz#c35e10a3d707e0c69a29bd9f93fa2bdc6275817c" - integrity sha512-tsAyV6FC3R3pHmKS880IXcDJuiFJiKITO1jxR1qbplcsBkZLBmjrEw5GbC7ikD6f5RU1hr7WnmxB/2kKc1qUWQ== + version "2.3.1" + resolved "https://registry.yarnpkg.com/@sigstore/sign/-/sign-2.3.1.tgz#4fc4e6faee5689b5e9d42e97f1207273b7dd7b7f" + integrity sha512-YZ71wKIOweC8ViUeZXboz0iPLqMkskxuoeN/D1CEpAyZvEepbX9oRMIoO6a/DxUqO1VEaqmcmmqzSiqtOsvSmw== dependencies: "@sigstore/bundle" "^2.3.0" "@sigstore/core" "^1.0.0" "@sigstore/protobuf-specs" "^0.3.1" - make-fetch-happen "^13.0.0" + make-fetch-happen "^13.0.1" + proc-log "^4.2.0" + promise-retry "^2.0.1" "@sigstore/tuf@^2.3.1", "@sigstore/tuf@^2.3.2": - version "2.3.2" - resolved "https://registry.yarnpkg.com/@sigstore/tuf/-/tuf-2.3.2.tgz#e9c5bffc2a5f3434f87195902d7f9cd7f48c70fa" - integrity sha512-mwbY1VrEGU4CO55t+Kl6I7WZzIl+ysSzEYdA1Nv/FTrl2bkeaPXo5PnWZAVfcY2zSdhOpsUTJW67/M2zHXGn5w== + version "2.3.3" + resolved "https://registry.yarnpkg.com/@sigstore/tuf/-/tuf-2.3.3.tgz#be416424d5133b61f1adcc75df72136bf1dfe1ff" + integrity sha512-agQhHNkIddXFslkudjV88vTXiAMEyUtso3at6ZHUNJ1agZb7Ze6VW/PddHipdWBu1t+8OWLW5X5yZOPiOnaWJQ== dependencies: "@sigstore/protobuf-specs" "^0.3.0" - tuf-js "^2.2.0" + tuf-js "^2.2.1" "@sigstore/verify@^1.2.0": version "1.2.0" @@ -3095,6 +3056,11 @@ resolved "https://registry.yarnpkg.com/@sindresorhus/merge-streams/-/merge-streams-2.3.0.tgz#719df7fb41766bc143369eaa0dd56d8dc87c9958" integrity sha512-LtoMMhxAlorcGhmFYI+LhPgbPZCkgP6ra1YL604EeF6U98pLlQ3iWIGMdWSC+vWmPBWBNgmDBAhnAobLROJmwg== +"@sindresorhus/merge-streams@^4.0.0": + version "4.0.0" + resolved "https://registry.yarnpkg.com/@sindresorhus/merge-streams/-/merge-streams-4.0.0.tgz#abb11d99aeb6d27f1b563c38147a72d50058e339" + integrity sha512-tlqY9xq5ukxTUZBmoOp+m61cqwQD5pHJtFY3Mn8CA8ps6yghLH/Hw8UPdqg4OLmFW3IFlcXnQNmo/dh8HzXYIQ== + "@stdlib/array-float32@^0.0.x": version "0.0.6" resolved "https://registry.yarnpkg.com/@stdlib/array-float32/-/array-float32-0.0.6.tgz#7a1c89db3c911183ec249fa32455abd9328cfa27" @@ -4040,100 +4006,100 @@ resolved "https://registry.yarnpkg.com/@swc/core-darwin-arm64/-/core-darwin-arm64-1.3.82.tgz#bbf9874747b51053d8a59ea26c3e235c326f24a3" integrity sha512-JfsyDW34gVKD3uE0OUpUqYvAD3yseEaicnFP6pB292THtLJb0IKBBnK50vV/RzEJtc1bR3g1kNfxo2PeurZTrA== -"@swc/core-darwin-arm64@1.4.17": - version "1.4.17" - resolved "https://registry.yarnpkg.com/@swc/core-darwin-arm64/-/core-darwin-arm64-1.4.17.tgz#e62fa7f247bdd1c0c50a3f99722da4dd098c7c67" - integrity sha512-HVl+W4LezoqHBAYg2JCqR+s9ife9yPfgWSj37iIawLWzOmuuJ7jVdIB7Ee2B75bEisSEKyxRlTl6Y1Oq3owBgw== +"@swc/core-darwin-arm64@1.5.5": + version "1.5.5" + resolved "https://registry.yarnpkg.com/@swc/core-darwin-arm64/-/core-darwin-arm64-1.5.5.tgz#65b40093f622ec811713d2e2ebcdf8a39ae2e91d" + integrity sha512-Ol5ZwZYdTOZsv2NwjcT/qVVALKzVFeh+IJ4GNarr3P99+38Dkwi81OqCI1o/WaDXQYKAQC/V+CzMbkEuJJfq9Q== "@swc/core-darwin-x64@1.3.82": version "1.3.82" resolved "https://registry.yarnpkg.com/@swc/core-darwin-x64/-/core-darwin-x64-1.3.82.tgz#145cdde16678e0d793620035783e5b413a16ac43" integrity sha512-ogQWgNMq7qTpITjcP3dnzkFNj7bh6SwMr859GvtOTrE75H7L7jDWxESfH4f8foB/LGxBKiDNmxKhitCuAsZK4A== -"@swc/core-darwin-x64@1.4.17": - version "1.4.17" - resolved "https://registry.yarnpkg.com/@swc/core-darwin-x64/-/core-darwin-x64-1.4.17.tgz#1145cbb7575e317204ed3a7d0274bd26fe9ffab6" - integrity sha512-WYRO9Fdzq4S/he8zjW5I95G1zcvyd9yyD3Tgi4/ic84P5XDlSMpBDpBLbr/dCPjmSg7aUXxNQqKqGkl6dQxYlA== +"@swc/core-darwin-x64@1.5.5": + version "1.5.5" + resolved "https://registry.yarnpkg.com/@swc/core-darwin-x64/-/core-darwin-x64-1.5.5.tgz#4e16d5fb55d8f3fa7d95df85e9cfbb5d57a7ac9e" + integrity sha512-XHWpKBIPKYLgh5/lV2PYjO84lkzf5JR51kjiloyz2Pa9HIV8tHoAP8bYdJwm4nUp2I7KcEh3pPH0AVu5LpxMKw== "@swc/core-linux-arm-gnueabihf@1.3.82": version "1.3.82" resolved "https://registry.yarnpkg.com/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.3.82.tgz#0c2f32c5793f2ac8e8ccf416aec84d016c30ef7b" integrity sha512-7TMXG1lXlNhD0kUiEqs+YlGV4irAdBa2quuy+XI3oJf2fBK6dQfEq4xBy65B3khrorzQS3O0oDGQ+cmdpHExHA== -"@swc/core-linux-arm-gnueabihf@1.4.17": - version "1.4.17" - resolved "https://registry.yarnpkg.com/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.4.17.tgz#7145b3ada5cf9b748eaacbc9a7c7037ba0fb26bb" - integrity sha512-cgbvpWOvtMH0XFjvwppUCR+Y+nf6QPaGu6AQ5hqCP+5Lv2zO5PG0RfasC4zBIjF53xgwEaaWmGP5/361P30X8Q== +"@swc/core-linux-arm-gnueabihf@1.5.5": + version "1.5.5" + resolved "https://registry.yarnpkg.com/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.5.5.tgz#ab3fbac59b7c527fa5da115a96f3c87e07737686" + integrity sha512-vtoWNCWAe+CNSqtqIwFnIH48qgPPlUZKoQ4EVFeMM+7/kDi6SeNxoh5TierJs5bKAWxD49VkPvRoWFCk6V62mA== "@swc/core-linux-arm64-gnu@1.3.82": version "1.3.82" resolved "https://registry.yarnpkg.com/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.3.82.tgz#2313d4901fa0ebdd2a0f189909073e1e8a07f1d6" integrity sha512-26JkOujbzcItPAmIbD5vHJxQVy5ihcSu3YHTKwope1h28sApZdtE7S3e2G3gsZRTIdsCQkXUtAQeqHxGWWR3pw== -"@swc/core-linux-arm64-gnu@1.4.17": - version "1.4.17" - resolved "https://registry.yarnpkg.com/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.4.17.tgz#5c0833ef132af17bd3cbdf2253f35b57c0cf62bb" - integrity sha512-l7zHgaIY24cF9dyQ/FOWbmZDsEj2a9gRFbmgx2u19e3FzOPuOnaopFj0fRYXXKCmtdx+anD750iBIYnTR+pq/Q== +"@swc/core-linux-arm64-gnu@1.5.5": + version "1.5.5" + resolved "https://registry.yarnpkg.com/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.5.5.tgz#fcfb1d97f8e8ac6bd495aaaa0d15f8dfdb33b76b" + integrity sha512-L4l7M78U6h/rCAxId+y5Vu+1KfDRF6dJZtitFcaT293guiUQFwJv8gLxI4Jh5wFtZ0fYd0QaCuvh2Ip79CzGMg== "@swc/core-linux-arm64-musl@1.3.82": version "1.3.82" resolved "https://registry.yarnpkg.com/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.3.82.tgz#6e96cf6e52e647fecf27511d766bea90e96f8a2f" integrity sha512-8Izj9tuuMpoc3cqiPBRtwqpO1BZ/+sfZVsEhLxrbOFlcSb8LnKyMle1g3JMMUwI4EU75RGVIzZMn8A6GOKdJbA== -"@swc/core-linux-arm64-musl@1.4.17": - version "1.4.17" - resolved "https://registry.yarnpkg.com/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.4.17.tgz#5bfe81eb23c905f04b669a7d2b060a147a263483" - integrity sha512-qhH4gr9gAlVk8MBtzXbzTP3BJyqbAfUOATGkyUtohh85fPXQYuzVlbExix3FZXTwFHNidGHY8C+ocscI7uDaYw== +"@swc/core-linux-arm64-musl@1.5.5": + version "1.5.5" + resolved "https://registry.yarnpkg.com/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.5.5.tgz#e8678d350500b3784bb125bef4eb97db1e388442" + integrity sha512-DkzJc13ukXa7oJpyn24BjIgsiOybYrc+IxjsQyfNlDrrs1QXP4elStcpkD02SsIuSyHjZV8Hw2HFBMQB3OHPrA== "@swc/core-linux-x64-gnu@1.3.82": version "1.3.82" resolved "https://registry.yarnpkg.com/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.3.82.tgz#6275c10d7c8c0768550bc7934c9dd8cde4881d92" integrity sha512-0GSrIBScQwTaPv46T2qB7XnDYxndRCpwH4HMjh6FN+I+lfPUhTSJKW8AonqrqT1TbpFIgvzQs7EnTsD7AnSCow== -"@swc/core-linux-x64-gnu@1.4.17": - version "1.4.17" - resolved "https://registry.yarnpkg.com/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.4.17.tgz#a0c19bc9635e86ebd1c7f8e9e026503d1a1bf83d" - integrity sha512-vRDFATL1oN5oZMImkwbgSHEkp8xG1ofEASBypze01W1Tqto8t+yo6gsp69wzCZBlxldsvPpvFZW55Jq0Rn+UnA== +"@swc/core-linux-x64-gnu@1.5.5": + version "1.5.5" + resolved "https://registry.yarnpkg.com/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.5.5.tgz#e68406379d55447217a4ac1a79ffc7ce1e251b29" + integrity sha512-kj4ZwWJGeBEUzHrRQP2VudN+kkkYH7OI1dPVDc6kWQx5X4329JeKOas4qY0l7gDVjBbRwN9IbbPI6TIn2KfAug== "@swc/core-linux-x64-musl@1.3.82": version "1.3.82" resolved "https://registry.yarnpkg.com/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.3.82.tgz#edb98c30bd0de42bf1a63469937630d942c71988" integrity sha512-KJUnaaepDKNzrEbwz4jv0iC3/t9x0NSoe06fnkAlhh2+NFKWKKJhVCOBTrpds8n7eylBDIXUlK34XQafjVMUdg== -"@swc/core-linux-x64-musl@1.4.17": - version "1.4.17" - resolved "https://registry.yarnpkg.com/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.4.17.tgz#2179b9536235a3b02a46997ddb1c178dfadf1667" - integrity sha512-zQNPXAXn3nmPqv54JVEN8k2JMEcMTQ6veVuU0p5O+A7KscJq+AGle/7ZQXzpXSfUCXlLMX4wvd+rwfGhh3J4cw== +"@swc/core-linux-x64-musl@1.5.5": + version "1.5.5" + resolved "https://registry.yarnpkg.com/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.5.5.tgz#40e439aeb265c3cc63526c51f4e89f6492092159" + integrity sha512-6pTorCs4mYhPhYtC4jNOnhGgjNd3DZcRoZ9P0tzXXP69aCbYjvlgNH/NRvAROp9AaVFeZ7a7PmCWb6+Rbe7NKg== "@swc/core-win32-arm64-msvc@1.3.82": version "1.3.82" resolved "https://registry.yarnpkg.com/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.3.82.tgz#0a8e9b361aac37d01f684c8a3d3e94e5f8c3b14f" integrity sha512-TR3MHKhDYIyGyFcyl2d/p1ftceXcubAhX5wRSOdtOyr5+K/v3jbyCCqN7bbqO5o43wQVCwwR/drHleYyDZvg8Q== -"@swc/core-win32-arm64-msvc@1.4.17": - version "1.4.17" - resolved "https://registry.yarnpkg.com/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.4.17.tgz#3004a431c836c6b16b4660ea2425dde467a8ee36" - integrity sha512-z86n7EhOwyzxwm+DLE5NoLkxCTme2lq7QZlDjbQyfCxOt6isWz8rkW5QowTX8w9Rdmk34ncrjSLvnHOeLY17+w== +"@swc/core-win32-arm64-msvc@1.5.5": + version "1.5.5" + resolved "https://registry.yarnpkg.com/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.5.5.tgz#efdd773a9e7ecc49bb246362a45dfc389f1fbfe0" + integrity sha512-o0/9pstmEjwZyrY/bA+mymF0zH7E+GT/XCVqdKeWW9Wn3gTTyWa5MZnrFgI2THQ+AXwdglMB/Zo76ARQPaz/+A== "@swc/core-win32-ia32-msvc@1.3.82": version "1.3.82" resolved "https://registry.yarnpkg.com/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.3.82.tgz#096854ff764282766271f1354ee1214358a8bf01" integrity sha512-ZX4HzVVt6hs84YUg70UvyBJnBOIspmQQM0iXSzBvOikk3zRoN7BnDwQH4GScvevCEBuou60+i4I6d5kHLOfh8Q== -"@swc/core-win32-ia32-msvc@1.4.17": - version "1.4.17" - resolved "https://registry.yarnpkg.com/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.4.17.tgz#59155485d5307fb2a267e5acb215e0f440b6f48f" - integrity sha512-JBwuSTJIgiJJX6wtr4wmXbfvOswHFj223AumUrK544QV69k60FJ9q2adPW9Csk+a8wm1hLxq4HKa2K334UHJ/g== +"@swc/core-win32-ia32-msvc@1.5.5": + version "1.5.5" + resolved "https://registry.yarnpkg.com/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.5.5.tgz#02082adef99bfa0101c6c94b04be636e39ed567f" + integrity sha512-B+nypUwsmCuaH6RtKWgiPCb+ENjxstJPPJeMJvBqlJqyCaIkZzN4M07Ozi3xVv1VG21SRkd6G3xIqRoalrNc0Q== "@swc/core-win32-x64-msvc@1.3.82": version "1.3.82" resolved "https://registry.yarnpkg.com/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.3.82.tgz#1181070bff4a13a7fcc7f1020eef1571f8c1257a" integrity sha512-4mJMnex21kbQoaHeAmHnVwQN9/XAfPszJ6n9HI7SVH+aAHnbBIR0M59/b50/CJMjTj5niUGk7EwQ3nhVNOG32g== -"@swc/core-win32-x64-msvc@1.4.17": - version "1.4.17" - resolved "https://registry.yarnpkg.com/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.4.17.tgz#b98f25fc277fb0e319f25f9fd00a82023662716b" - integrity sha512-jFkOnGQamtVDBm3MF5Kq1lgW8vx4Rm1UvJWRUfg+0gx7Uc3Jp3QMFeMNw/rDNQYRDYPG3yunCC+2463ycd5+dg== +"@swc/core-win32-x64-msvc@1.5.5": + version "1.5.5" + resolved "https://registry.yarnpkg.com/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.5.5.tgz#699217ea438eb3b533b73d982659891d9aae7379" + integrity sha512-ry83ki9ZX0Q+GWGnqc2J618Z+FvKE8Ajn42F8EYi8Wj0q6Jz3mj+pJzgzakk2INm2ldEZ+FaRPipn4ozsZDcBg== "@swc/core@1.3.82": version "1.3.82" @@ -4154,23 +4120,23 @@ "@swc/core-win32-x64-msvc" "1.3.82" "@swc/core@^1.3.36": - version "1.4.17" - resolved "https://registry.yarnpkg.com/@swc/core/-/core-1.4.17.tgz#3ea4180fa5c54282b284006a6de1263ef1cf887f" - integrity sha512-tq+mdWvodMBNBBZbwFIMTVGYHe9N7zvEaycVVjfvAx20k1XozHbHhRv+9pEVFJjwRxLdXmtvFZd3QZHRAOpoNQ== + version "1.5.5" + resolved "https://registry.yarnpkg.com/@swc/core/-/core-1.5.5.tgz#e7b7ae4323d15ba990a0ffde135a849ffddec69d" + integrity sha512-M8O22EEgdSONLd+7KRrXj8pn+RdAZZ7ISnPjE9KCQQlI0kkFNEquWR+uFdlFxQfwlyCe/Zb6uGXGDvtcov4IMg== dependencies: "@swc/counter" "^0.1.2" "@swc/types" "^0.1.5" optionalDependencies: - "@swc/core-darwin-arm64" "1.4.17" - "@swc/core-darwin-x64" "1.4.17" - "@swc/core-linux-arm-gnueabihf" "1.4.17" - "@swc/core-linux-arm64-gnu" "1.4.17" - "@swc/core-linux-arm64-musl" "1.4.17" - "@swc/core-linux-x64-gnu" "1.4.17" - "@swc/core-linux-x64-musl" "1.4.17" - "@swc/core-win32-arm64-msvc" "1.4.17" - "@swc/core-win32-ia32-msvc" "1.4.17" - "@swc/core-win32-x64-msvc" "1.4.17" + "@swc/core-darwin-arm64" "1.5.5" + "@swc/core-darwin-x64" "1.5.5" + "@swc/core-linux-arm-gnueabihf" "1.5.5" + "@swc/core-linux-arm64-gnu" "1.5.5" + "@swc/core-linux-arm64-musl" "1.5.5" + "@swc/core-linux-x64-gnu" "1.5.5" + "@swc/core-linux-x64-musl" "1.5.5" + "@swc/core-win32-arm64-msvc" "1.5.5" + "@swc/core-win32-ia32-msvc" "1.5.5" + "@swc/core-win32-x64-msvc" "1.5.5" "@swc/counter@^0.1.2", "@swc/counter@^0.1.3": version "0.1.3" @@ -4208,13 +4174,13 @@ resolved "https://registry.yarnpkg.com/@tufjs/canonical-json/-/canonical-json-2.0.0.tgz#a52f61a3d7374833fca945b2549bc30a2dd40d0a" integrity sha512-yVtV8zsdo8qFHe+/3kw81dSLyF7D576A5cCFCi4X7B39tWT7SekaEFUnvnWJHz+9qO7qJTah1JbrDjWKqFtdWA== -"@tufjs/models@2.0.0": - version "2.0.0" - resolved "https://registry.yarnpkg.com/@tufjs/models/-/models-2.0.0.tgz#c7ab241cf11dd29deb213d6817dabb8c99ce0863" - integrity sha512-c8nj8BaOExmZKO2DXhDfegyhSGcG9E/mPN3U13L+/PsoWm1uaGiHHjxqSHQiasDBQwDA3aHuw9+9spYAP1qvvg== +"@tufjs/models@2.0.1": + version "2.0.1" + resolved "https://registry.yarnpkg.com/@tufjs/models/-/models-2.0.1.tgz#e429714e753b6c2469af3212e7f320a6973c2812" + integrity sha512-92F7/SFyufn4DXsha9+QfKnN03JGqtMFMXgSHbZOo8JG59WkTni7UzAouNQDf7AuP9OAMxVOPQcqG3sB7w+kkg== dependencies: "@tufjs/canonical-json" "2.0.0" - minimatch "^9.0.3" + minimatch "^9.0.4" "@types/chrome@^0.0.196": version "0.0.196" @@ -4314,9 +4280,9 @@ "@types/react" "*" "@types/react@*", "@types/react@^18.0.18": - version "18.3.1" - resolved "https://registry.yarnpkg.com/@types/react/-/react-18.3.1.tgz#fed43985caa834a2084d002e4771e15dfcbdbe8e" - integrity sha512-V0kuGBX3+prX+DQ/7r2qsv1NsdfnCLnTgnRJ1pYnxykBhGMz+qj+box5lq7XsO5mtZsBqpjwwTu/7wszPfMBcw== + version "18.3.2" + resolved "https://registry.yarnpkg.com/@types/react/-/react-18.3.2.tgz#462ae4904973bc212fa910424d901e3d137dbfcd" + integrity sha512-Btgg89dAnqD4vV7R3hlwOxgqobUQKgx3MmrQRi0yYbs/P0ym8XozIAlkqVilPqHQwXs4e9Tf63rrCgl58BcO4w== dependencies: "@types/prop-types" "*" csstype "^3.0.2" @@ -4594,7 +4560,12 @@ anymatch@~3.1.2: normalize-path "^3.0.0" picomatch "^2.0.4" -"aproba@^1.0.3 || ^2.0.0", aproba@^2.0.0: +ao-tokens@^0.0.3: + version "0.0.3" + resolved "https://registry.yarnpkg.com/ao-tokens/-/ao-tokens-0.0.3.tgz#55f3e74a1931d842f59d9c6f947eab302434c0b4" + integrity sha512-M8Wzq9VIRYNVKhgcu+UaiKDe/jftmoPbZXGLZtoBKEv4XKdbBBcSapHwYk7Lx2k4Kyz2zTacfDv1SvGGO+PFyQ== + +aproba@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/aproba/-/aproba-2.0.0.tgz#52520b8ae5b569215b354efc0caa3fe1e45a8adc" integrity sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ== @@ -4789,9 +4760,9 @@ arweave@1.14.4: bignumber.js "^9.0.2" arweave@=1.11.8, arweave@^1.10.13, arweave@^1.10.15, arweave@^1.10.16, arweave@^1.13.0, arweave@^1.13.7: - version "1.15.0" - resolved "https://registry.yarnpkg.com/arweave/-/arweave-1.15.0.tgz#56203c13badf28a0e420ca700d966e89a53c711b" - integrity sha512-sYfq2yJwkJLthRADsfHygNP+L7fTCyprTjOLYnpP8zaqwywddoNO3UpTk6XGjEiyyU3WfxoFLRLpzx+llZx1WA== + version "1.15.1" + resolved "https://registry.yarnpkg.com/arweave/-/arweave-1.15.1.tgz#c6183136b20980c81a8cb77ce6fd9fb333e1a174" + integrity sha512-rT7FOwqdudd5npqp4xOYdDT2035LtpcqePjwirh4wjRiEtVsz1FZkRiM2Yj+fOAwYzOm/hNG0GDOipDSaiEGGQ== dependencies: arconnect "^0.4.2" asn1.js "^5.4.1" @@ -4852,7 +4823,7 @@ available-typed-arrays@^1.0.7: dependencies: possible-typed-array-names "^1.0.0" -axios@>=0.28.0, axios@^0.21.1, axios@^1.1.3, axios@^1.6.7: +axios@>=0.28.0, axios@^0.21.1, axios@^1.1.3, axios@^1.6.0, axios@^1.6.7: version "1.6.8" resolved "https://registry.yarnpkg.com/axios/-/axios-1.6.8.tgz#66d294951f5d988a00e87a0ffb955316a619ea66" integrity sha512-v/ZHtJDU39mDpyBoFVkETcd/uNdxrWRrg3bKpOKzXFA6Bvqopts6ALSMU3y6ijYxbw2B+wPrIv46egTzJXCLGQ== @@ -4944,11 +4915,6 @@ bech32@1.1.4: resolved "https://registry.yarnpkg.com/bech32/-/bech32-1.1.4.tgz#e38c9f37bf179b8eb16ae3a772b40c356d4832e9" integrity sha512-s0IrSOzLlbvX7yp4WBfPITzpAU8sqQcpsmwXDiKwrG4r491vwCO/XpejasRNl0piBMe/DvP4Tz0mIS/X1DPJBQ== -before-after-hook@^2.2.0: - version "2.2.3" - resolved "https://registry.yarnpkg.com/before-after-hook/-/before-after-hook-2.2.3.tgz#c51e809c81a4e354084422b9b26bad88249c517c" - integrity sha512-NzUnlZexiaH/46WDhANlyR2bXRopNg4F/zuSA3OpZnllCUgRaOF2znDioDWrmbNVsuZk6l9pMquQB38cfBZwkQ== - before-after-hook@^3.0.2: version "3.0.2" resolved "https://registry.yarnpkg.com/before-after-hook/-/before-after-hook-3.0.2.tgz#d5665a5fa8b62294a5aa0a499f933f4a1016195d" @@ -4972,9 +4938,9 @@ bignumber.js@^9.0.0, bignumber.js@^9.0.1, bignumber.js@^9.0.2: integrity sha512-2/mKyZH9K85bzOEfhXDBFZTGd1CTs+5IHpeFQo9luiBG7hghdC851Pj2WAhb6E3R6b9tZj/XKhbg4fum+Kepug== bin-links@^4.0.1: - version "4.0.3" - resolved "https://registry.yarnpkg.com/bin-links/-/bin-links-4.0.3.tgz#9e4a3c5900830aee3d7f52178b65e01dcdde64a5" - integrity sha512-obsRaULtJurnfox/MDwgq6Yo9kzbv1CPTk/1/s7Z/61Lezc8IKkFCOXNeVLXz0456WRzBQmSsDWlai2tIhBsfA== + version "4.0.4" + resolved "https://registry.yarnpkg.com/bin-links/-/bin-links-4.0.4.tgz#c3565832b8e287c85f109a02a17027d152a58a63" + integrity sha512-cMtq4W5ZsEwcutJrVId+a/tjt8GSbS+h0oNkdl6+6rBuEv8Ot33Bevj5KPm40t309zuhVic8NjpuL42QCiJWWA== dependencies: cmd-shim "^6.0.0" npm-normalize-package-bin "^3.0.0" @@ -5221,13 +5187,6 @@ builtin-status-codes@^3.0.0: resolved "https://registry.yarnpkg.com/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz#85982878e21b98e1c66425e03d0174788f569ee8" integrity sha512-HpGFw18DgFWlncDfjTa2rcQ4W88O1mC8e8yZ2AvQY5KDaktSTwo+KRf6nHK6FRI5FyRyb/5T6+TSxfP7QyGsmQ== -builtins@^5.0.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/builtins/-/builtins-5.1.0.tgz#6d85eeb360c4ebc166c3fdef922a15aa7316a5e8" - integrity sha512-SW9lzGTLvWTP1AY8xeAMZimqDrIaSdLQUcVr9DMef51niJ022Ri87SwRRKYm4A6iHfkPaiVUu/Duw2Wc4J7kKg== - dependencies: - semver "^7.0.0" - bundle-require@^4.0.0: version "4.1.0" resolved "https://registry.yarnpkg.com/bundle-require/-/bundle-require-4.1.0.tgz#3d5fcd19d5160d4cbac5e95ed5a394d1ecd40ce6" @@ -5241,9 +5200,9 @@ cac@^6.7.12: integrity sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ== cacache@^18.0.0, cacache@^18.0.2: - version "18.0.2" - resolved "https://registry.yarnpkg.com/cacache/-/cacache-18.0.2.tgz#fd527ea0f03a603be5c0da5805635f8eef00c60c" - integrity sha512-r3NU8h/P+4lVUHfeRw1dtgQYar3DZMm4/cm2bZgOvrFC/su7budSOeqh52VJIC4U4iG1WWwV6vRW0znqBvxNuw== + version "18.0.3" + resolved "https://registry.yarnpkg.com/cacache/-/cacache-18.0.3.tgz#864e2c18414e1e141ae8763f31e46c2cb96d1b21" + integrity sha512-qXCd4rh6I07cnDqh8V48/94Tc/WSfj+o3Gn6NZ0aZovS255bUx8O13uKxRFd2eWG0xgsco7+YItQNPaa5E85hg== dependencies: "@npmcli/fs" "^3.1.0" fs-minipass "^3.0.0" @@ -5317,9 +5276,9 @@ camelize@^1.0.0: integrity sha512-dU+Tx2fsypxTgtLoE36npi3UqcjSSMNYfkqgmoEhtZrraP5VWq0K7FkWVTYa8eMPtnU/G2txVsfdCJTn9uzpuQ== caniuse-lite@^1.0.30001541, caniuse-lite@^1.0.30001587: - version "1.0.30001615" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001615.tgz#7c2c8772db681b6dee74d81d6550db68f2d28842" - integrity sha512-1IpazM5G3r38meiae0bHRnPhz+CBQ3ZLqbQMtrg+AsTPKAXgW38JNsXkyZ+v8waCsDmPq87lmfun5Q2AGysNEQ== + version "1.0.30001617" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001617.tgz#809bc25f3f5027ceb33142a7d6c40759d7a901eb" + integrity sha512-mLyjzNI9I+Pix8zwcrpxEbGlfqOkF9kM3ptzmKNw5tizSyYwMe+nGLTqMK9cO+0E+Bh6TsBxNAaHWEM8xwSsmA== catering@^2.1.0, catering@^2.1.1: version "2.1.1" @@ -5484,9 +5443,9 @@ cli-spinners@^2.5.0: integrity sha512-ywqV+5MmyL4E7ybXgKys4DugZbX0FC6LnwrhjuykIjnK9k8OQacQ7axGKnjDXWNhns0xot3bZI5h55H8yo9cJg== cli-table3@^0.6.3: - version "0.6.4" - resolved "https://registry.yarnpkg.com/cli-table3/-/cli-table3-0.6.4.tgz#d1c536b8a3f2e7bec58f67ac9e5769b1b30088b0" - integrity sha512-Lm3L0p+/npIQWNIiyF/nAn7T5dnOwR3xNTHXYEBFBFVPXzCVNZ5lqEC/1eo/EVfpDsQ1I+TX4ORPQgp+UI0CRw== + version "0.6.5" + resolved "https://registry.yarnpkg.com/cli-table3/-/cli-table3-0.6.5.tgz#013b91351762739c16a9567c21a04632e449bf2f" + integrity sha512-+W/5efTR7y5HRD7gACw9yQjqMVvEMLBHmboM/kPWam+H+Hmyrgjh6YncVKK122YZkXrLudzTuAukUw9FnMf7IQ== dependencies: string-width "^4.2.0" optionalDependencies: @@ -5544,9 +5503,9 @@ clone@^2.1.1: integrity sha512-3Pe/CF1Nn94hyhIYpjtiLhdCoEoz0DqQ+988E9gmeEdQZlojxnOb74wctFyuwWQHzqyf9X7C7MG8juUpqBJT8w== cmd-shim@^6.0.0: - version "6.0.2" - resolved "https://registry.yarnpkg.com/cmd-shim/-/cmd-shim-6.0.2.tgz#435fd9e5c95340e61715e19f90209ed6fcd9e0a4" - integrity sha512-+FFYbB0YLaAkhkcrjkyNLYDiOsFSfRjwjY19LXk/psmMx1z00xlCv7hhQoTGXXIKi+YXHL/iiFo8NqMVQX9nOw== + version "6.0.3" + resolved "https://registry.yarnpkg.com/cmd-shim/-/cmd-shim-6.0.3.tgz#c491e9656594ba17ac83c4bd931590a9d6e26033" + integrity sha512-FMabTRlc5t5zjdenF6mS0MBeFZm0XqHqeOkcskKFb/LYCcRQ5fVgLOHVc4Lq9CqABd9zhjwPjMBCJvMCziSVtA== code-red@^1.0.3: version "1.0.4" @@ -5879,6 +5838,7 @@ css-to-react-native@^3.0.0: version "3.2.0" resolved "https://registry.yarnpkg.com/css-to-react-native/-/css-to-react-native-3.2.0.tgz#cdd8099f71024e149e4f6fe17a7d46ecd55f1e32" integrity sha512-e8RKaLXMOFii+02mOlqwjbD00KSEKqblnpO9e++1aXS1fPQOpS1YoqdVHBqPjHNoxeF2mimzVqawm2KCbEdtHQ== + dependencies: camelize "^1.0.0" css-color-keywords "^1.0.0" postcss-value-parser "^4.0.2" @@ -6099,7 +6059,7 @@ detect-libc@^1.0.3: resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-1.0.3.tgz#fa137c4bd698edf55cd5cd02ac559f91a4c4ba9b" integrity sha512-pGjwhsmsp4kL2RTz08wcOlGN83otlqHeD/Z5T8GXZB+/YcpQ/dgo+lbU8ZsGxV0HIvqqxo9l7mqYwyYMD9bKDg== -detect-libc@^2.0.0, detect-libc@^2.0.1, detect-libc@^2.0.2: +detect-libc@^2.0.0, detect-libc@^2.0.2: version "2.0.3" resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-2.0.3.tgz#f0cd503b40f9939b894697d19ad50895e30cf700" integrity sha512-bwy0MGW55bG41VqxxypOsdSdGqLwXPI/focwgTYCFMbdUiBAxLg9CFzG08sz2aqzknwiX7Hkl0bQENjg8iLByw== @@ -6205,9 +6165,9 @@ eastasianwidth@^0.2.0: integrity sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA== electron-to-chromium@^1.4.535, electron-to-chromium@^1.4.668: - version "1.4.754" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.754.tgz#20a9f3cc80e0fb6a804b86605e55da16918a58b0" - integrity sha512-7Kr5jUdns5rL/M9wFFmMZAgFDuL2YOnanFH4OI4iFzUqyh3XOL7nAGbSlSMZdzKMIyyTpNSbqZsWG9odwLeKvA== + version "1.4.764" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.764.tgz#6e817e9d767434eb48a85cc9915566485c5ba2c3" + integrity sha512-ZXbPV46Y4dNCA+k7YHB+BYlzcoMtZ1yH6V0tQ1ul0wmA7RiwJfS29LSdRlE1myWBXRzEgm/Lz6tryj5WVQiLmg== elliptic@6.5.4: version "6.5.4" @@ -6528,6 +6488,24 @@ execa@^8.0.0: signal-exit "^4.1.0" strip-final-newline "^3.0.0" +execa@^9.0.0: + version "9.1.0" + resolved "https://registry.yarnpkg.com/execa/-/execa-9.1.0.tgz#c42845d2b079642b8e07d9de81db13cdb91e7a9b" + integrity sha512-lSgHc4Elo2m6bUDhc3Hl/VxvUDJdQWI40RZ4KMY9bKRc+hgMOT7II/JjbNDhI8VnMtrCb7U/fhpJIkLORZozWw== + dependencies: + "@sindresorhus/merge-streams" "^4.0.0" + cross-spawn "^7.0.3" + figures "^6.1.0" + get-stream "^9.0.0" + human-signals "^7.0.0" + is-plain-obj "^4.1.0" + is-stream "^4.0.1" + npm-run-path "^5.2.0" + pretty-ms "^9.0.0" + signal-exit "^4.1.0" + strip-final-newline "^4.0.0" + yoctocolors "^2.0.0" + exenv@^1.2.0: version "1.2.2" resolved "https://registry.yarnpkg.com/exenv/-/exenv-1.2.2.tgz#2ae78e85d9894158670b03d47bec1f03bd91bb9d" @@ -6610,7 +6588,7 @@ figures@^5.0.0: escape-string-regexp "^5.0.0" is-unicode-supported "^1.2.0" -figures@^6.0.0: +figures@^6.0.0, figures@^6.1.0: version "6.1.0" resolved "https://registry.yarnpkg.com/figures/-/figures-6.1.0.tgz#935479f51865fa7479f6fa94fc6fc7ac14e62c4a" integrity sha512-d+l3qxjSesT4V7v2fh+QnmFnUWv9lSpjarhShNTgBOfA0ttejbQUAlHLitbjkoRiDulW0OPoQPYIGhIC8ohejg== @@ -6702,20 +6680,6 @@ form-data@^4.0.0: combined-stream "^1.0.8" mime-types "^2.1.12" -formidable@^1.2.2: - version "1.2.6" - resolved "https://registry.yarnpkg.com/formidable/-/formidable-1.2.6.tgz#d2a51d60162bbc9b4a055d8457a7c75315d1a168" - integrity sha512-KcpbcpuLNOwrEjnbpMC0gS+X8ciDoZE1kkqzat4a8vrprf+s9pKNQ/QIwWfbfs4ltgmFl3MD177SNTkve3BwGQ== - -framer-motion@^10.5.0: - version "10.18.0" - resolved "https://registry.yarnpkg.com/framer-motion/-/framer-motion-10.18.0.tgz#1f4fc51403996ea7170af885bd44a7079d255950" - integrity sha512-oGlDh1Q1XqYPksuTD/usb0I70hq95OUzmL9+6Zd+Hs4XV0oaISBa/UUMSjYiq6m8EUF32132mOJ8xVZS+I0S6w== - dependencies: - tslib "^2.4.0" - optionalDependencies: - "@emotion/is-prop-valid" "^0.8.2" - framer-motion@^7.5.3: version "7.10.3" resolved "https://registry.yarnpkg.com/framer-motion/-/framer-motion-7.10.3.tgz#8b23f50bbc1ee8c830c869c5398e457d5272feb5" @@ -6871,6 +6835,14 @@ get-stream@^8.0.1: resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-8.0.1.tgz#def9dfd71742cd7754a7761ed43749a27d02eca2" integrity sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA== +get-stream@^9.0.0: + version "9.0.1" + resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-9.0.1.tgz#95157d21df8eb90d1647102b63039b1df60ebd27" + integrity sha512-kVCxPF3vQM/N0B1PmoqVUqgHP+EeVjmZSQn+1oCRPxd2P21P2F19lIgbR3HBosbB1PUhOAoctJnfEn2GbN2eZA== + dependencies: + "@sec-ant/readable-stream" "^0.4.1" + is-stream "^4.0.1" + get-symbol-description@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/get-symbol-description/-/get-symbol-description-1.0.2.tgz#533744d5aa20aca4e079c8e5daf7fd44202821f5" @@ -6905,15 +6877,15 @@ glob-parent@^5.1.2, glob-parent@~5.1.2: is-glob "^4.0.1" glob@^10.2.2, glob@^10.3.10, glob@^10.3.12: - version "10.3.12" - resolved "https://registry.yarnpkg.com/glob/-/glob-10.3.12.tgz#3a65c363c2e9998d220338e88a5f6ac97302960b" - integrity sha512-TCNv8vJ+xz4QiqTpfOJA7HvYv+tNIRHKfUWw/q+v2jdgN4ebz+KY9tGx5J4rHP0o84mNP+ApH66HRX8us3Khqg== + version "10.3.15" + resolved "https://registry.yarnpkg.com/glob/-/glob-10.3.15.tgz#e72bc61bc3038c90605f5dd48543dc67aaf3b50d" + integrity sha512-0c6RlJt1TICLyvJYIApxb8GsXoai0KUP7AxKKAtsYXdgJR1mGEUa7DgwShbdk1nly0PYoZj01xd4hzbq3fsjpw== dependencies: foreground-child "^3.1.0" jackspeak "^2.3.6" minimatch "^9.0.1" minipass "^7.0.4" - path-scurry "^1.10.2" + path-scurry "^1.11.0" glob@^7.1.4, glob@^7.2.3: version "7.2.3" @@ -6936,6 +6908,7 @@ globals@^13.2.0: version "13.24.0" resolved "https://registry.yarnpkg.com/globals/-/globals-13.24.0.tgz#8432a19d78ce0c1e833949c36adb345400bb1171" integrity sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ== + dependencies: type-fest "^0.20.2" globalthis@^1.0.3: @@ -7168,9 +7141,9 @@ hosted-git-info@^2.1.4: integrity sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw== hosted-git-info@^7.0.0, hosted-git-info@^7.0.1: - version "7.0.1" - resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-7.0.1.tgz#9985fcb2700467fecf7f33a4d4874e30680b5322" - integrity sha512-+K84LB1DYwMHoHSgaOY/Jfhw3ucPmSET5v98Ke/HdNSw4a0UktWzyW1mjhjpuxxTqOOsfWT/7iVshHmVZ4IpOA== + version "7.0.2" + resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-7.0.2.tgz#9b751acac097757667f30114607ef7b661ff4f17" + integrity sha512-puUZAUKT5m8Zzvs72XWy3HtvVbTWljRE66cP60bxJzAqf2DgICo7lYTY2IHUmLnNpjYvw5bvmoHvPc0QO2a62w== dependencies: lru-cache "^10.0.1" @@ -7254,6 +7227,11 @@ human-signals@^5.0.0: resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-5.0.0.tgz#42665a284f9ae0dade3ba41ebc37eb4b852f3a28" integrity sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ== +human-signals@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-7.0.0.tgz#93e58e0c19cfec1dded4af10cd4969f5ab75f6c8" + integrity sha512-74kytxOUSvNbjrT9KisAbaTZ/eJwD/LrbM/kh5j0IhPuJzwuA19dWvniFGwBzN9rVjg+O/e+F310PjObDXS+9Q== + husky@^8.0.0: version "8.0.3" resolved "https://registry.yarnpkg.com/husky/-/husky-8.0.3.tgz#4936d7212e46d1dea28fef29bb3a108872cd9184" @@ -7284,9 +7262,9 @@ ieee754@^1.1.13, ieee754@^1.2.1: integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA== ignore-walk@^6.0.4: - version "6.0.4" - resolved "https://registry.yarnpkg.com/ignore-walk/-/ignore-walk-6.0.4.tgz#89950be94b4f522225eb63a13c56badb639190e9" - integrity sha512-t7sv42WkwFkyKbivUCglsQW5YWMskWtbEf4MNKX5u/CCWHKSPzN4FtBQGsQZgCLbxOzpVlcbWVK5KB3auIOjSw== + version "6.0.5" + resolved "https://registry.yarnpkg.com/ignore-walk/-/ignore-walk-6.0.5.tgz#ef8d61eab7da169078723d1f82833b36e200b0dd" + integrity sha512-VuuG0wCnjhnylG1ABXT3dAuIpTNDs/G8jlpmwXY03fXoXy/8ZK8/T+hMzt8L4WnrLCJgdybqgPagnF/f97cg3A== dependencies: minimatch "^9.0.0" @@ -7306,9 +7284,9 @@ image-size@~0.5.0: integrity sha512-6TDAlDPZxUFCv+fuOkIoXT/V/f3Qbq8e37p+YOiYrUv3v9cc3/6x78VdfPgFVaB9dZYeLUfKgHRebpkm/oP2VQ== immutable@^4.0.0: - version "4.3.5" - resolved "https://registry.yarnpkg.com/immutable/-/immutable-4.3.5.tgz#f8b436e66d59f99760dc577f5c99a4fd2a5cc5a0" - integrity sha512-8eabxkth9gZatlwl5TBuJnCsoTADlL6ftEr7A4qgdaTsPyreilDSnUk57SO+jfKcNtxPa22U5KK6DSeAYhpBJw== + version "4.3.6" + resolved "https://registry.yarnpkg.com/immutable/-/immutable-4.3.6.tgz#6a05f7858213238e587fb83586ffa3b4b27f0447" + integrity sha512-Ju0+lEMyzMVZarkTn/gqRpdqd5dOPaz1mCZ0SH3JV6iFw81PldE/PEB1hWVEA288HPt4WXW8O7AWxB10M+03QQ== import-fresh@^3.2.1, import-fresh@^3.3.0: version "3.3.0" @@ -7375,9 +7353,9 @@ ini@^4.1.2: integrity sha512-AMB1mvwR1pyBFY/nSevUX6y8nJWS63/SzUKD3JyQn97s4xgIdgQPT75IRouIiBAN4yLQBUShNYVW0+UG25daCw== init-package-json@^6.0.2: - version "6.0.2" - resolved "https://registry.yarnpkg.com/init-package-json/-/init-package-json-6.0.2.tgz#0d780b752dd1dd83b8649945df38a07df4f990a6" - integrity sha512-ZQ9bxt6PkqIH6fPU69HPheOMoUqIqVqwZj0qlCBfoSCG4lplQhVM/qB3RS4f0RALK3WZZSrNQxNtCZgphuf3IA== + version "6.0.3" + resolved "https://registry.yarnpkg.com/init-package-json/-/init-package-json-6.0.3.tgz#2552fba75b6eed2495dc97f44183e2e5a5bcf8b0" + integrity sha512-Zfeb5ol+H+eqJWHTaGca9BovufyGeIfr4zaaBorPmJBMrJ+KBnN+kQx2ZtXdsotUTgldHmHQV44xvUWOUA7E2w== dependencies: "@npmcli/package-json" "^5.0.0" npm-package-arg "^11.0.0" @@ -7603,6 +7581,11 @@ is-plain-obj@^1.1.0: resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-1.1.0.tgz#71a50c8429dfca773c92a390a4a03b39fcd51d3e" integrity sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg== +is-plain-obj@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-4.1.0.tgz#d65025edec3657ce032fd7db63c97883eaed71f0" + integrity sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg== + is-plain-object@^2.0.1, is-plain-object@^2.0.4: version "2.0.4" resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-2.0.4.tgz#2c163b3fafb1b606d9d17928f05c2a1c38e07677" @@ -7642,6 +7625,11 @@ is-stream@^3.0.0: resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-3.0.0.tgz#e6bfd7aa6bef69f4f472ce9bb681e3e57b4319ac" integrity sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA== +is-stream@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-4.0.1.tgz#375cf891e16d2e4baec250b85926cffc14720d9b" + integrity sha512-Dnz92NInDqYckGEUJv689RbRiTSEHCQ7wOVeALbkOz999YpqT46yMRIGtSNl2iCL1waAZSx40+h59NV/EwzV/A== + is-string@^1.0.5, is-string@^1.0.7: version "1.0.7" resolved "https://registry.yarnpkg.com/is-string/-/is-string-1.0.7.tgz#0dd12bf2006f255bb58f695110eff7491eebc0fd" @@ -7863,9 +7851,9 @@ json-parse-even-better-errors@^2.3.0: integrity sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w== json-parse-even-better-errors@^3.0.0, json-parse-even-better-errors@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/json-parse-even-better-errors/-/json-parse-even-better-errors-3.0.1.tgz#02bb29fb5da90b5444581749c22cedd3597c6cb0" - integrity sha512-aatBvbL26wVUCLmbWdCpeu9iF5wOyWpagiKkInA+kfws3sWdBrTnsvN2CKcyCYyUrc7rebNBlK6+kteg7ksecg== + version "3.0.2" + resolved "https://registry.yarnpkg.com/json-parse-even-better-errors/-/json-parse-even-better-errors-3.0.2.tgz#b43d35e89c0f3be6b5fbbe9dc6c82467b30c28da" + integrity sha512-fi0NG4bPjCHunUJffmLd0gxssIgkNmArMvis4iNah6Owg1MCJjWhEcDLmsK6iGkJq3tHwbDkTlce70/tmXN4cQ== json-schema-to-ts@2.9.2: version "2.9.2" @@ -8212,6 +8200,7 @@ lightningcss@1.21.8: version "1.21.8" resolved "https://registry.yarnpkg.com/lightningcss/-/lightningcss-1.21.8.tgz#a02e4a8979208ffb61d7c6deebb75c4abce0b5d6" integrity sha512-jEqaL7m/ZckZJjlMAfycr1Kpz7f93k6n7KGF5SJjuPSm6DWI6h3ayLZmgRHgy1OfrwoCed6h4C/gHYPOd1OFMA== + dependencies: detect-libc "^1.0.3" optionalDependencies: lightningcss-darwin-arm64 "1.21.8" @@ -8251,6 +8240,24 @@ lines-and-columns@^1.1.6: resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.2.4.tgz#eca284f75d2965079309dc0ad9255abb2ebc1632" integrity sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg== +lmdb@2.5.2: + version "2.5.2" + resolved "https://registry.yarnpkg.com/lmdb/-/lmdb-2.5.2.tgz#37e28a9fb43405f4dc48c44cec0e13a14c4a6ff1" + integrity sha512-V5V5Xa2Hp9i2XsbDALkBTeHXnBXh/lEmk9p22zdr7jtuOIY9TGhjK6vAvTpOOx9IKU4hJkRWZxn/HsvR1ELLtA== + dependencies: + msgpackr "^1.5.4" + node-addon-api "^4.3.0" + node-gyp-build-optional-packages "5.0.3" + ordered-binary "^1.2.4" + weak-lru-cache "^1.2.2" + optionalDependencies: + "@lmdb/lmdb-darwin-arm64" "2.5.2" + "@lmdb/lmdb-darwin-x64" "2.5.2" + "@lmdb/lmdb-linux-arm" "2.5.2" + "@lmdb/lmdb-linux-arm64" "2.5.2" + "@lmdb/lmdb-linux-x64" "2.5.2" + "@lmdb/lmdb-win32-x64" "2.5.2" + lmdb@2.7.11: version "2.7.11" resolved "https://registry.yarnpkg.com/lmdb/-/lmdb-2.7.11.tgz#a24b6d36b5c7ed9889cc2d9e103fdd3f5e144d7e" @@ -8269,24 +8276,6 @@ lmdb@2.7.11: "@lmdb/lmdb-linux-x64" "2.7.11" "@lmdb/lmdb-win32-x64" "2.7.11" -lmdb@2.8.5: - version "2.8.5" - resolved "https://registry.yarnpkg.com/lmdb/-/lmdb-2.8.5.tgz#ce191110c755c0951caa062722e300c703973837" - integrity sha512-9bMdFfc80S+vSldBmG3HOuLVHnxRdNTlpzR6QDnzqCQtCzGUEAGTzBKYMeIM+I/sU4oZfgbcbS7X7F65/z/oxQ== - dependencies: - msgpackr "^1.9.5" - node-addon-api "^6.1.0" - node-gyp-build-optional-packages "5.1.1" - ordered-binary "^1.4.1" - weak-lru-cache "^1.2.2" - optionalDependencies: - "@lmdb/lmdb-darwin-arm64" "2.8.5" - "@lmdb/lmdb-darwin-x64" "2.8.5" - "@lmdb/lmdb-linux-arm" "2.8.5" - "@lmdb/lmdb-linux-arm64" "2.8.5" - "@lmdb/lmdb-linux-x64" "2.8.5" - "@lmdb/lmdb-win32-x64" "2.8.5" - load-json-file@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-4.0.0.tgz#2f5f45ab91e33216234fd53adab668eb4ec0993b" @@ -8667,9 +8656,10 @@ minimatch@^5.1.0: version "5.1.6" resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-5.1.6.tgz#1cfcb8cf5522ea69952cd2af95ae09477f122a96" integrity sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g== + dependencies: brace-expansion "^2.0.1" -minimatch@^9.0.0, minimatch@^9.0.1, minimatch@^9.0.3, minimatch@^9.0.4: +minimatch@^9.0.0, minimatch@^9.0.1, minimatch@^9.0.4: version "9.0.4" resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-9.0.4.tgz#8e49c731d1749cbec05050ee5145147b32496a51" integrity sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw== @@ -8698,9 +8688,9 @@ minipass-collect@^2.0.1: minipass "^7.0.3" minipass-fetch@^3.0.0: - version "3.0.4" - resolved "https://registry.yarnpkg.com/minipass-fetch/-/minipass-fetch-3.0.4.tgz#4d4d9b9f34053af6c6e597a64be8e66e42bf45b7" - integrity sha512-jHAqnA728uUpIaFm7NWsCnqKT6UqZz7GcI/bDpPATuwYyKwJwW0remxSCxUlKiEty+eopHGa3oc8WxgQ1FFJqg== + version "3.0.5" + resolved "https://registry.yarnpkg.com/minipass-fetch/-/minipass-fetch-3.0.5.tgz#f0f97e40580affc4a35cc4a1349f05ae36cb1e4c" + integrity sha512-2N8elDQAtSnFV0Dk7gt15KHsS0Fyz6CbYZ360h0WTYV1Ty46li3rAXVOQj1THMNLdmrD9Vt5pBPtWtVkpwGBqg== dependencies: minipass "^7.0.3" minipass-sized "^1.0.3" @@ -8750,9 +8740,9 @@ minipass@^5.0.0: integrity sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ== "minipass@^5.0.0 || ^6.0.2 || ^7.0.0", minipass@^7.0.2, minipass@^7.0.3, minipass@^7.0.4: - version "7.0.4" - resolved "https://registry.yarnpkg.com/minipass/-/minipass-7.0.4.tgz#dbce03740f50a4786ba994c1fb908844d27b038c" - integrity sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ== + version "7.1.1" + resolved "https://registry.yarnpkg.com/minipass/-/minipass-7.1.1.tgz#f7f85aff59aa22f110b20e27692465cf3bf89481" + integrity sha512-UZ7eQ+h8ywIRAW1hIEl2AqdwzJucU/Kp59+8kkZeSvafXhZjul247BvIJjEVFVeON6d7lM46XX1HXCduKAS8VA== minizlib@^2.1.1, minizlib@^2.1.2: version "2.1.2" @@ -8821,10 +8811,10 @@ msgpackr-extract@^3.0.2: "@msgpackr-extract/msgpackr-extract-linux-x64" "3.0.2" "@msgpackr-extract/msgpackr-extract-win32-x64" "3.0.2" -msgpackr@1.8.5, msgpackr@>=1.10.1, msgpackr@^1.5.4, msgpackr@^1.9.5: - version "1.10.1" - resolved "https://registry.yarnpkg.com/msgpackr/-/msgpackr-1.10.1.tgz#51953bb4ce4f3494f0c4af3f484f01cfbb306555" - integrity sha512-r5VRLv9qouXuLiIBrLpl2d5ZvPt8svdQTl5/vMvE4nzDMyEX4sgW5yWhuBBj5UmgwOTWj8CIdSXn5sAfsHAWIQ== +msgpackr@1.8.5, msgpackr@>=1.10.1, msgpackr@^1.5.4: + version "1.10.2" + resolved "https://registry.yarnpkg.com/msgpackr/-/msgpackr-1.10.2.tgz#a73de4767f76659e8c69cf9c80fdfce83937a44a" + integrity sha512-L60rsPynBvNE+8BWipKKZ9jHcSGbtyJYIwjRq0VrIvQ08cRjntGXJYW/tmciZ2IHWIY8WEW32Qa2xbh5+SKBZA== optionalDependencies: msgpackr-extract "^3.0.2" @@ -8959,6 +8949,11 @@ node-forge@^0.8.1, node-forge@^0.8.2, node-forge@^1.3.1: resolved "https://registry.yarnpkg.com/node-forge/-/node-forge-1.3.1.tgz#be8da2af243b2417d5f646a770663a92b7e9ded3" integrity sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA== +node-gyp-build-optional-packages@5.0.3: + version "5.0.3" + resolved "https://registry.yarnpkg.com/node-gyp-build-optional-packages/-/node-gyp-build-optional-packages-5.0.3.tgz#92a89d400352c44ad3975010368072b41ad66c17" + integrity sha512-k75jcVzk5wnnc/FMxsf4udAoTEUv2jY3ycfdSd3yWu6Cnd1oee6/CfZJApyscA4FJOmdoixWwiwOyf16RzD5JA== + node-gyp-build-optional-packages@5.0.6: version "5.0.6" resolved "https://registry.yarnpkg.com/node-gyp-build-optional-packages/-/node-gyp-build-optional-packages-5.0.6.tgz#2949f5cc7dace3ac470fa2ff1a37456907120a1d" @@ -8969,13 +8964,6 @@ node-gyp-build-optional-packages@5.0.7: resolved "https://registry.yarnpkg.com/node-gyp-build-optional-packages/-/node-gyp-build-optional-packages-5.0.7.tgz#5d2632bbde0ab2f6e22f1bbac2199b07244ae0b3" integrity sha512-YlCCc6Wffkx0kHkmam79GKvDQ6x+QZkMjFGrIMxgFNILFvGSbCp2fCBC55pGTT9gVaz8Na5CLmxt/urtzRv36w== -node-gyp-build-optional-packages@5.1.1: - version "5.1.1" - resolved "https://registry.yarnpkg.com/node-gyp-build-optional-packages/-/node-gyp-build-optional-packages-5.1.1.tgz#52b143b9dd77b7669073cbfe39e3f4118bfc603c" - integrity sha512-+P72GAjVAbTxjjwUmwjVrqrdZROD4nf8KgpBoDxqXXTiYZZt/ud60dE5yvCSr9lRO8e8yv6kgJIC0K0PfZFVQw== - dependencies: - detect-libc "^2.0.1" - node-gyp-build@^4.2.0, node-gyp-build@^4.3.0: version "4.8.1" resolved "https://registry.yarnpkg.com/node-gyp-build/-/node-gyp-build-4.8.1.tgz#976d3ad905e71b76086f4f0b0d3637fe79b6cda5" @@ -9008,9 +8996,9 @@ node-releases@^2.0.13, node-releases@^2.0.14: integrity sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw== nopt@^7.0.0, nopt@^7.2.0: - version "7.2.0" - resolved "https://registry.yarnpkg.com/nopt/-/nopt-7.2.0.tgz#067378c68116f602f552876194fd11f1292503d7" - integrity sha512-CVDtwCdhYIvnAzFoJ6NJ6dX3oga9/HyciQDnG1vQDjSLMeKLJ4A93ZqYKDrgYSr1FBY5/hMYC+2VCi24pgpkGA== + version "7.2.1" + resolved "https://registry.yarnpkg.com/nopt/-/nopt-7.2.1.tgz#1cac0eab9b8e97c9093338446eddd40b2c8ca1e7" + integrity sha512-taM24ViiimT/XntxbPyJQzCG+p4EKOpgD3mxFwW38mGjVUrfERQOeY4EDHjdnptttfHuHQXFx+lTP08Q+mLa/w== dependencies: abbrev "^2.0.0" @@ -9025,9 +9013,9 @@ normalize-package-data@^2.5.0: validate-npm-package-license "^3.0.1" normalize-package-data@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-6.0.0.tgz#68a96b3c11edd462af7189c837b6b1064a484196" - integrity sha512-UL7ELRVxYBHBgYEtZCXjxuD5vPxnmvMGq0jp/dGPKKrN7tfsBh2IY7TlJ15WWwdjRWD3RJbnsygUurTK3xkPkg== + version "6.0.1" + resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-6.0.1.tgz#fa69e9452210f0fabf4d79ee08d0c2870c51ed88" + integrity sha512-6rvCfeRW+OEZagAB4lMLSNuTNYZWLVtKccK79VSTf//yTY5VOCgcpH80O+bZK8Neps7pUnd5G+QlMg1yV/2iZQ== dependencies: hosted-git-info "^7.0.0" is-core-module "^2.8.1" @@ -9043,15 +9031,16 @@ normalize-url@^8.0.0: version "8.0.1" resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-8.0.1.tgz#9b7d96af9836577c58f5883e939365fa15623a4a" integrity sha512-IO9QvjUMWxPQQhs60oOu10CRkWCiZzSUkzbXGGV9pviYl1fXYcvkzQ5jV9z8Y6un8ARoVRl4EtC6v6jNqbaJ/w== + npm-audit-report@^5.0.0: version "5.0.0" resolved "https://registry.yarnpkg.com/npm-audit-report/-/npm-audit-report-5.0.0.tgz#83ac14aeff249484bde81eff53c3771d5048cf95" integrity sha512-EkXrzat7zERmUhHaoren1YhTxFwsOu5jypE84k6632SXTHcQE1z8V51GC6GVZt8LxkC+tbBcKMUBZAgk8SUSbw== npm-bundled@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/npm-bundled/-/npm-bundled-3.0.0.tgz#7e8e2f8bb26b794265028491be60321a25a39db7" - integrity sha512-Vq0eyEQy+elFpzsKjMss9kxqb9tG3YHg4dsyWuUENuzvSUWe1TCnW/vV9FkhvBk/brEDoDiVd+M1Btosa6ImdQ== + version "3.0.1" + resolved "https://registry.yarnpkg.com/npm-bundled/-/npm-bundled-3.0.1.tgz#cca73e15560237696254b10170d8f86dad62da25" + integrity sha512-+AvaheE/ww1JEwRHOrn4WHNzOxGtVp+adrg2AeZS/7KuxGUYFuBta98wYpfHBbJp6Tg6j1NKSEVHNcfZzJHQwQ== dependencies: npm-normalize-package-bin "^3.0.0" @@ -9085,9 +9074,9 @@ npm-packlist@^8.0.0: ignore-walk "^6.0.4" npm-pick-manifest@^9.0.0: - version "9.0.0" - resolved "https://registry.yarnpkg.com/npm-pick-manifest/-/npm-pick-manifest-9.0.0.tgz#f87a4c134504a2c7931f2bb8733126e3c3bb7e8f" - integrity sha512-VfvRSs/b6n9ol4Qb+bDwNGUXutpy76x6MARw/XssevE0TnctIKcmklJZM5Z7nqs5z5aW+0S63pgCNbpkUNNXBg== + version "9.0.1" + resolved "https://registry.yarnpkg.com/npm-pick-manifest/-/npm-pick-manifest-9.0.1.tgz#c90658bd726fe5bca9d2869f3e99359b8fcda046" + integrity sha512-Udm1f0l2nXb3wxDpKjfohwgdFUSV50UVwzEIpDXVsbDMXVIEF81a/i0UhuQbhrPMMmdiq3+YMFLFIRVLs3hxQw== dependencies: npm-install-checks "^6.0.0" npm-normalize-package-bin "^3.0.0" @@ -9123,7 +9112,7 @@ npm-run-path@^4.0.1: dependencies: path-key "^3.0.0" -npm-run-path@^5.1.0: +npm-run-path@^5.1.0, npm-run-path@^5.2.0: version "5.3.0" resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-5.3.0.tgz#e23353d0ebb9317f174e93417e4a4d82d0249e9f" integrity sha512-ppwTtiJZq0O/ai0z7yfudtBpWIoxM8yE6nHi1X47eFR2EWORqfbu6CnPlNsjeN683eT0qG6H/Pyf9fCcvjnnnQ== @@ -9131,9 +9120,9 @@ npm-run-path@^5.1.0: path-key "^4.0.0" npm-user-validate@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/npm-user-validate/-/npm-user-validate-2.0.0.tgz#7b69bbbff6f7992a1d9a8968d52fd6b6db5431b6" - integrity sha512-sSWeqAYJ2dUPStJB+AEj0DyLRltr/f6YNcvCA7phkB8/RMLMnVsQ41GMwHo/ERZLYNDsyB2wPm7pZo1mqPOl7Q== + version "2.0.1" + resolved "https://registry.yarnpkg.com/npm-user-validate/-/npm-user-validate-2.0.1.tgz#097afbf0a2351e2a8f478f1ba07960b368f2a25c" + integrity sha512-d17PKaF2h8LSGFl5j4b1gHOJt1fgH7YUcCm1kNSJvaLWWKXlBsuUvx0bBEkr0qhsVA9XP5LtRZ83hdlhm2QkgA== npm@^10.5.0: version "10.7.0" @@ -9295,7 +9284,7 @@ ora@^5.4.1: strip-ansi "^6.0.0" wcwidth "^1.0.1" -ordered-binary@^1.4.0, ordered-binary@^1.4.1: +ordered-binary@^1.2.4, ordered-binary@^1.4.0: version "1.5.1" resolved "https://registry.yarnpkg.com/ordered-binary/-/ordered-binary-1.5.1.tgz#94ccbf14181711081ee23931db0dc3f58aaa0df6" integrity sha512-5VyHfHY3cd0iza71JepYG50My+YUbrFtGoUz2ooEydPyPM7Aai/JW098juLr+RG6+rDJuzNNTsEQu2DZa1A41A== @@ -9429,9 +9418,9 @@ package-json@8.1.1: semver "^7.3.7" pacote@^18.0.0, pacote@^18.0.1, pacote@^18.0.3: - version "18.0.3" - resolved "https://registry.yarnpkg.com/pacote/-/pacote-18.0.3.tgz#72a2bafc603935d2a1b0bf7c17034fdcc0a58001" - integrity sha512-GFCGn27RSf2xa5DHShI7DzI8dCf5F0+9N+fbSpItZvi9ykSouPRXMKzfl2jF35Zoi9QysNF/aqeqQyU2tOJBbA== + version "18.0.6" + resolved "https://registry.yarnpkg.com/pacote/-/pacote-18.0.6.tgz#ac28495e24f4cf802ef911d792335e378e86fac7" + integrity sha512-+eK3G27SMwsB8kLIuj4h1FUhHtwiEUo21Tw8wNjmvdlpOEr613edv+8FUsTj/4F/VN5ywGE19X18N7CC2EJk6A== dependencies: "@npmcli/git" "^5.0.0" "@npmcli/installed-package-contents" "^2.0.1" @@ -9516,6 +9505,11 @@ parse-json@^8.0.0: index-to-position "^0.1.2" type-fest "^4.7.1" +parse-ms@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/parse-ms/-/parse-ms-4.0.0.tgz#c0c058edd47c2a590151a718990533fd62803df4" + integrity sha512-TXfryirbmq34y8QBwgqCVLi+8oA3oWx2eAnSn62ITyEhEYaWRlVZ2DvMM9eZbMs/RfxPu/PK/aBLyGj4IrqMHw== + parse-node-version@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/parse-node-version/-/parse-node-version-1.0.1.tgz#e2b5dbede00e7fa9bc363607f53327e8b073189b" @@ -9573,10 +9567,10 @@ path-parse@^1.0.7: resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735" integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== -path-scurry@^1.10.2: - version "1.10.2" - resolved "https://registry.yarnpkg.com/path-scurry/-/path-scurry-1.10.2.tgz#8f6357eb1239d5fa1da8b9f70e9c080675458ba7" - integrity sha512-7xTavNy5RQXnsjANvVvMkEjvloOinkAjv/Z6Ildz9v2RinZ4SBKTWFOVRbaF8p0vpHnyjV/UwNDdKuUv6M5qcA== +path-scurry@^1.11.0: + version "1.11.1" + resolved "https://registry.yarnpkg.com/path-scurry/-/path-scurry-1.11.1.tgz#7960a668888594a0720b12a911d1a742ab9f11d2" + integrity sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA== dependencies: lru-cache "^10.2.0" minipass "^5.0.0 || ^6.0.2 || ^7.0.0" @@ -9799,6 +9793,13 @@ pretty-bytes@^6.0.0: resolved "https://registry.yarnpkg.com/pretty-bytes/-/pretty-bytes-6.1.1.tgz#38cd6bb46f47afbf667c202cfc754bffd2016a3b" integrity sha512-mQUvGU6aUFQ+rNvTIAcZuWGRT9a6f6Yrg9bHs4ImKF+HZCEK+plBvnAZYSIQztknZF2qnzNtr6F8s0+IuptdlQ== +pretty-ms@^9.0.0: + version "9.0.0" + resolved "https://registry.yarnpkg.com/pretty-ms/-/pretty-ms-9.0.0.tgz#53c57f81171c53be7ce3fd20bdd4265422bc5929" + integrity sha512-E9e9HJ9R9NasGOgPaPE8VMeiPKAyWR5jcFpNnwIejslIhWqdqOrb2wShBsncMPUb+BcCd2OPYfh7p2W6oemTng== + dependencies: + parse-ms "^4.0.0" + proc-log@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/proc-log/-/proc-log-3.0.0.tgz#fb05ef83ccd64fd7b20bbe9c8c1070fc08338dd8" @@ -9848,9 +9849,9 @@ promise-retry@^2.0.1: retry "^0.12.0" promzard@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/promzard/-/promzard-1.0.1.tgz#3b77251a24f988c0886f5649d4f642bcdd53e558" - integrity sha512-ulDF77aULEHUoJkN5XZgRV5loHXBaqd9eorMvLNLvi2gXMuRAtwH6Gh4zsMHQY1kTt7tyv/YZwZW5C2gtj8F2A== + version "1.0.2" + resolved "https://registry.yarnpkg.com/promzard/-/promzard-1.0.2.tgz#2226e7c6508b1da3471008ae17066a7c3251e660" + integrity sha512-2FPputGL+mP3jJ3UZg/Dl9YOkovB7DX0oOr+ck5QbZ5MtORtds8k/BZdn+02peDLI8/YWbmzx34k5fA+fHvCVQ== dependencies: read "^3.0.1" @@ -10163,6 +10164,7 @@ readable-stream@^3.1.1, readable-stream@^3.4.0, readable-stream@^3.5.0, readable version "3.6.2" resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.2.tgz#56a9b36ea965c00c5a93ef31eb111a0f11056967" integrity sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA== + dependencies: inherits "^2.0.3" string_decoder "^1.1.1" util-deprecate "^1.0.1" @@ -10190,14 +10192,14 @@ redent@^3.0.0: strip-indent "^3.0.0" redstone-api@^0.4.11: - version "0.4.11" - resolved "https://registry.yarnpkg.com/redstone-api/-/redstone-api-0.4.11.tgz#103530e7a23138bb24332ce4d893eb72e61109bd" - integrity sha512-X0gj7UU5aLQPmNjdnhBUCvi6tkj5SpQJ7heT6+TIPx7Od707n4oqKHoJa41V8QOGjudbxaM1BIv6+2+hp0wFGQ== + version "0.4.12" + resolved "https://registry.yarnpkg.com/redstone-api/-/redstone-api-0.4.12.tgz#b634f710e13e95ba64d9cc8b3be7f004707a3e96" + integrity sha512-AR1zb7Pv4uXdfmJXj8rMl96x09krXUFgYDQaBXo5tn34e/VrE1VMja3DLR0W81izEjr8KcG9b9SHjIy5a1peWw== dependencies: ar-gql "^0.0.6" arweave "^1.10.16" arweave-multihost "^0.1.0" - axios "^0.21.1" + axios "^1.6.0" deep-sort-object "^1.0.2" lodash "^4.17.21" pako "^2.0.3" @@ -10398,9 +10400,9 @@ safe-stable-stringify@2.4.1: integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== sass@^1.38.0: - version "1.76.0" - resolved "https://registry.yarnpkg.com/sass/-/sass-1.76.0.tgz#fe15909500735ac154f0dc7386d656b62b03987d" - integrity sha512-nc3LeqvF2FNW5xGF1zxZifdW3ffIz5aBb7I7tSvOoNu7z1RQ6pFt9MBuiPtjgaI62YWrM/txjWlOCFiGtf2xpw== + version "1.77.1" + resolved "https://registry.yarnpkg.com/sass/-/sass-1.77.1.tgz#018cdfb206afd14724030c02e9fefd8f30a76cd0" + integrity sha512-OMEyfirt9XEfyvocduUIOlUSkWOXS/LAt6oblR/ISXCTukyavjex+zQNm51pPCOiFKY1QpWvEH1EeCkgyV3I6w== dependencies: chokidar ">=3.0.0 <4.0.0" immutable "^4.0.0" @@ -10438,9 +10440,9 @@ secp256k1@^5.0.0: node-gyp-build "^4.2.0" semantic-release@^23.0.0: - version "23.0.8" - resolved "https://registry.yarnpkg.com/semantic-release/-/semantic-release-23.0.8.tgz#4a7d0b6de75d983082583502a257cc5646165800" - integrity sha512-yZkuWcTTfh5h/DrR4Q4QvJSARJdb6wjwn/sN0qKMYEkvwaVFek8YWfrgtL8oWaRdl0fLte0Y1wWMzLbwoaII1g== + version "23.1.1" + resolved "https://registry.yarnpkg.com/semantic-release/-/semantic-release-23.1.1.tgz#5c1a058748f4001f1c730716134a70b9e8e5b311" + integrity sha512-qqJDBhbtHsjUEMsojWKGuL5lQFCJuPtiXKEIlFKyTzDDGTAE/oyvznaP8GeOr5PvcqBJ6LQz4JCENWPLeehSpA== dependencies: "@semantic-release/commit-analyzer" "^12.0.0" "@semantic-release/error" "^4.0.0" @@ -10451,7 +10453,7 @@ semantic-release@^23.0.0: cosmiconfig "^9.0.0" debug "^4.0.0" env-ci "^11.0.0" - execa "^8.0.0" + execa "^9.0.0" figures "^6.0.0" find-versions "^6.0.0" get-stream "^6.0.0" @@ -10484,7 +10486,7 @@ semver-regex@^4.0.5: resolved "https://registry.yarnpkg.com/semver-regex/-/semver-regex-4.0.5.tgz#fbfa36c7ba70461311f5debcb3928821eb4f9180" integrity sha512-hunMQrEy1T6Jr2uEVjrAIqjwWcQTgOAcIM52C8MY1EZSD3DDNft04XzvYKPqjED65bNVVko0YI38nYeEHCX3yw== -"semver@2 || 3 || 4 || 5", semver@^5.6.0: +"semver@2 || 3 || 4 || 5", semver@^5.6.0, semver@^5.7.1: version "5.7.2" resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.2.tgz#48d55db737c3287cd4835e17fa13feace1c41ef8" integrity sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g== @@ -10501,12 +10503,10 @@ semver@^6.3.1: resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.1.tgz#556d2ef8689146e46dcea4bfdd095f3434dffcb4" integrity sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA== -semver@^7.0.0, semver@^7.1.1, semver@^7.1.2, semver@^7.3.2, semver@^7.3.5, semver@^7.3.7, semver@^7.5.2, semver@^7.5.3, semver@^7.5.4, semver@^7.6.0: - version "7.6.0" - resolved "https://registry.yarnpkg.com/semver/-/semver-7.6.0.tgz#1a46a4db4bffcccd97b743b5005c8325f23d4e2d" - integrity sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg== - dependencies: - lru-cache "^6.0.0" +semver@^7.1.1, semver@^7.1.2, semver@^7.3.2, semver@^7.3.5, semver@^7.3.7, semver@^7.5.2, semver@^7.5.3, semver@^7.5.4, semver@^7.6.0: + version "7.6.2" + resolved "https://registry.yarnpkg.com/semver/-/semver-7.6.2.tgz#1e3b34759f896e8f14d6134732ce798aeb0c6e13" + integrity sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w== serialize-error@^9.0.0: version "9.1.1" @@ -10810,9 +10810,9 @@ srcset@4: integrity sha512-wvLeHgcVHKO8Sc/H/5lkGreJQVeYMm9rlmt8PuR1xE31rIuXhuzznUUqAt8MqLhB3MqJdFzlNAfpcWnxiFUcPw== ssri@^10.0.0, ssri@^10.0.5: - version "10.0.5" - resolved "https://registry.yarnpkg.com/ssri/-/ssri-10.0.5.tgz#e49efcd6e36385196cb515d3a2ad6c3f0265ef8c" - integrity sha512-bSf16tAFkGeRlUNDjXu8FzaMQt6g2HZJrun7mtMbIPOddxt3GLMSz5VWUWcqTJUPfLEaDIepGxv+bYQW49596A== + version "10.0.6" + resolved "https://registry.yarnpkg.com/ssri/-/ssri-10.0.6.tgz#a8aade2de60ba2bce8688e3fa349bad05c7dc1e5" + integrity sha512-MGrFH9Z4NP9Iyhqn16sDtBpRRNJ0Y2hNa6D65h736fVSaPCHr4DM4sWUNvVaSuC+0OBGhwsrydQwmgfg5LncqQ== dependencies: minipass "^7.0.3" @@ -10958,6 +10958,11 @@ strip-final-newline@^3.0.0: resolved "https://registry.yarnpkg.com/strip-final-newline/-/strip-final-newline-3.0.0.tgz#52894c313fbff318835280aed60ff71ebf12b8fd" integrity sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw== +strip-final-newline@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/strip-final-newline/-/strip-final-newline-4.0.0.tgz#35a369ec2ac43df356e3edd5dcebb6429aa1fa5c" + integrity sha512-aulFJcD6YK8V1G7iRB5tigAP4TsHBZZrOV8pjV++zdUwmeV8uzbY7yn6h9MswN62adStNZFuCIx4haBnRuMDaw== + strip-indent@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/strip-indent/-/strip-indent-3.0.0.tgz#c32e1cee940b6b3432c771bc2c54bcce73cd3001" @@ -11350,14 +11355,14 @@ tty-table@^4.1.5: wcwidth "^1.0.1" yargs "^17.7.1" -tuf-js@^2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/tuf-js/-/tuf-js-2.2.0.tgz#4daaa8620ba7545501d04dfa933c98abbcc959b9" - integrity sha512-ZSDngmP1z6zw+FIkIBjvOp/II/mIub/O7Pp12j1WNsiCpg5R5wAc//i555bBQsE44O94btLt0xM/Zr2LQjwdCg== +tuf-js@^2.2.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/tuf-js/-/tuf-js-2.2.1.tgz#fdd8794b644af1a75c7aaa2b197ddffeb2911b56" + integrity sha512-GwIJau9XaA8nLVbUXsN3IlFi7WmQ48gBUrl3FTkkL/XLu/POhBzfmX9hd33FNMX1qAsfl6ozO1iMmW9NC8YniA== dependencies: - "@tufjs/models" "2.0.0" + "@tufjs/models" "2.0.1" debug "^4.3.4" - make-fetch-happen "^13.0.0" + make-fetch-happen "^13.0.1" tunnel-agent@^0.6.0: version "0.6.0" @@ -11407,9 +11412,9 @@ type-fest@^2.12.2, type-fest@^2.5.3: integrity sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA== type-fest@^4.6.0, type-fest@^4.7.1: - version "4.18.1" - resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-4.18.1.tgz#47e8d4e493cf7ed6c643bad698d5810d72cbdf79" - integrity sha512-qXhgeNsX15bM63h5aapNFcQid9jRF/l3ojDoDFmekDQEUufZ9U4ErVt6SjDxnHp48Ltrw616R8yNc3giJ3KvVQ== + version "4.18.2" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-4.18.2.tgz#8d765c42e7280a11f4d04fb77a00dacc417c8b05" + integrity sha512-+suCYpfJLAe4OXS6+PPXjW3urOS4IoP9waSiLuXfLgqZODKw/aWwASvzqE886wA0kQgGy0mIWyhd87VpqIy6Xg== typed-array-buffer@^1.0.2: version "1.0.2" @@ -11545,11 +11550,6 @@ unique-string@^3.0.0: dependencies: crypto-random-string "^4.0.0" -universal-user-agent@^6.0.0: - version "6.0.1" - resolved "https://registry.yarnpkg.com/universal-user-agent/-/universal-user-agent-6.0.1.tgz#15f20f55da3c930c57bddbf1734c6654d5fd35aa" - integrity sha512-yCzhz6FN2wU1NiiQRogkTQszlQSlpWaw8SvVegAc+bDxbzHgh1vX8uIe8OYyMH6DwH+sdTJsgMl36+mSMdRJIQ== - universal-user-agent@^7.0.0, universal-user-agent@^7.0.2: version "7.0.2" resolved "https://registry.yarnpkg.com/universal-user-agent/-/universal-user-agent-7.0.2.tgz#52e7d0e9b3dc4df06cc33cb2b9fd79041a54827e" @@ -11573,9 +11573,9 @@ unzipit@^1.4.0: uzip-module "^1.0.2" update-browserslist-db@^1.0.13: - version "1.0.14" - resolved "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.0.14.tgz#46a9367c323f8ade9a9dddb7f3ae7814b3a0b31c" - integrity sha512-JixKH8GR2pWYshIPUg/NujK3JO7JiqEEUiNArE86NQyrgUuZeTlZQN3xuS/yiV5Kb48ev9K6RqNkaJjXsdg7Jw== + version "1.0.15" + resolved "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.0.15.tgz#60ed9f8cba4a728b7ecf7356f641a31e3a691d97" + integrity sha512-K9HWH62x3/EalU1U6sjSZiylm9C8tgq2mSvshZpqc7QE69RaA2qjhkW2HlNA0tFpEbtyFz7HTqbSdN4MSwUodA== dependencies: escalade "^3.1.2" picocolors "^1.0.0" @@ -11643,11 +11643,9 @@ validate-npm-package-license@^3.0.1, validate-npm-package-license@^3.0.4: spdx-expression-parse "^3.0.0" validate-npm-package-name@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/validate-npm-package-name/-/validate-npm-package-name-5.0.0.tgz#f16afd48318e6f90a1ec101377fa0384cfc8c713" - integrity sha512-YuKoXDAhBYxY7SfOKxHBDoSyENFeW5VvIIQp2TGQuit8gpK6MnWaQelBKxso72DoxTZfZdcP3W90LqpSkgPzLQ== - dependencies: - builtins "^5.0.0" + version "5.0.1" + resolved "https://registry.yarnpkg.com/validate-npm-package-name/-/validate-npm-package-name-5.0.1.tgz#a316573e9b49f3ccd90dbb6eb52b3f06c6d604e8" + integrity sha512-OljLrQ9SQdOUqTaQxqL5dEfZWrXExyyWsozYlAWFawPVNuD83igl7uJD2RTkNMbniIYgt8l81eCJGIdQF7avLQ== vlq@^2.0.4: version "2.0.4" @@ -11693,9 +11691,9 @@ warp-arbundles@^1.0.4: warp-isomorphic "^1.0.7" warp-contracts@^1.2.13: - version "1.4.41" - resolved "https://registry.yarnpkg.com/warp-contracts/-/warp-contracts-1.4.41.tgz#49d9678002acef546a8350ed81e505178f84cefe" - integrity sha512-nrdLGGBzxujiWkZCDxSOfIvdnKmL+XCoF+amNdFLo22RVmYbsmIW4D0BQPDK9I/wZtlZLGZHFne9xa7bl2whJg== + version "1.4.44" + resolved "https://registry.yarnpkg.com/warp-contracts/-/warp-contracts-1.4.44.tgz#77c85abd507c447623991939d439f1f28d055e4b" + integrity sha512-aMPIPqFdpln4pfv3/LQ/LIoI4ErspsVKN1zyyrfEPIGkK5DGMKJyXXf0P3KOJ+1eSPWtwOekX+Bt0Dfna7JdGA== dependencies: archiver "^5.3.0" arweave "1.14.4" @@ -12039,6 +12037,11 @@ yocto-queue@^0.1.0: resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b" integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q== +yoctocolors@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/yoctocolors/-/yoctocolors-2.0.0.tgz#f6cd83f1fd0b211594810a6de413202d6d177075" + integrity sha512-esbDnt0Z1zI1KgvOZU90hJbL6BkoUbrP9yy7ArNZ6TmxBxydMJTYMf9FZjmwwcA8ZgEQzriQ3hwZ0NYXhlFo8Q== + zip-stream@^4.1.0: version "4.1.1" resolved "https://registry.yarnpkg.com/zip-stream/-/zip-stream-4.1.1.tgz#1337fe974dbaffd2fa9a1ba09662a66932bd7135" @@ -12049,6 +12052,6 @@ zip-stream@^4.1.0: readable-stream "^3.6.0" zod@^3.22.4, zod@^3.23.5: - version "3.23.5" - resolved "https://registry.yarnpkg.com/zod/-/zod-3.23.5.tgz#c7b7617d017d4a2f21852f533258d26a9a5ae09f" - integrity sha512-fkwiq0VIQTksNNA131rDOsVJcns0pfVUjHzLrNBiF/O/Xxb5lQyEXkhZWcJ7npWsYlvs+h0jFWXXy4X46Em1JA== + version "3.23.8" + resolved "https://registry.yarnpkg.com/zod/-/zod-3.23.8.tgz#e37b957b5d52079769fb8097099b592f0ef4067d" + integrity sha512-XBx9AXhXktjUqnepgTiE5flcKIYWi/rme0Eaj+5Y0lftuGBq+jyRu/md4WnuxqgP1ubdpNCsYEYPxrzVHD8d6g== From 9d6ce19a8d0754f8bbf75a587226f033bb412ff7 Mon Sep 17 00:00:00 2001 From: nicholas ma Date: Tue, 14 May 2024 17:45:47 -0700 Subject: [PATCH 43/60] feat: added functioning pay now screen with limited information --- src/popup.tsx | 9 +- src/routes/popup/send/confirm.tsx | 8 +- .../subscriptions/subscriptionDetails.tsx | 16 +- .../subscriptions/subscriptionPayment.tsx | 157 +++++++++++++++++- src/subscriptions/index.ts | 6 +- src/subscriptions/payments.ts | 42 +++-- src/subscriptions/subscription.ts | 2 + 7 files changed, 206 insertions(+), 34 deletions(-) diff --git a/src/popup.tsx b/src/popup.tsx index 2d60b5a12..3f46fda72 100644 --- a/src/popup.tsx +++ b/src/popup.tsx @@ -84,10 +84,11 @@ export default function Popup() { )}
- + + {(params: { id: string }) => ( + + )} + {(params: { id: string }) => ( diff --git a/src/routes/popup/send/confirm.tsx b/src/routes/popup/send/confirm.tsx index be26e4703..e332de310 100644 --- a/src/routes/popup/send/confirm.tsx +++ b/src/routes/popup/send/confirm.tsx @@ -775,7 +775,7 @@ type BodySectionProps = { alternate?: boolean; }; -function BodySection({ +export function BodySection({ title, subtitle, value, @@ -819,7 +819,7 @@ const Wrapper = styled.div` position: relative; `; -const ConfirmWrapper = styled.div` +export const ConfirmWrapper = styled.div` display: flex; justify-content: space-between; height: 100%; @@ -828,7 +828,7 @@ const ConfirmWrapper = styled.div` overflow: hidden; `; -const Address = styled.div` +export const Address = styled.div` display: flex; background-color: rgba(171, 154, 255, 0.15); border: 1px solid rgba(171, 154, 255, 0.17); @@ -836,7 +836,7 @@ const Address = styled.div` border-radius: 10px; `; -const AddressWrapper = styled.div` +export const AddressWrapper = styled.div` display: flex; font-size: 16px; color: ${(props) => props.theme.theme}; diff --git a/src/routes/popup/subscriptions/subscriptionDetails.tsx b/src/routes/popup/subscriptions/subscriptionDetails.tsx index 9ac7347d9..7bed21c7a 100644 --- a/src/routes/popup/subscriptions/subscriptionDetails.tsx +++ b/src/routes/popup/subscriptions/subscriptionDetails.tsx @@ -176,7 +176,7 @@ export default function SubscriptionDetails({ id }: Props) { }); // continue to confirmation page - push("/subscriptions/payment"); + push(`/subscriptions/${subData.arweaveAccountAddress}/payment`); } return ( @@ -204,9 +204,12 @@ export default function SubscriptionDetails({ id }: Props) { {subData.subscriptionStatus} {/* TODO: Needs Refactor */} - {/* send()}> - Pay now - */} + {subData.subscriptionStatus === + SubscriptionStatus.AWAITING_PAYMENT && ( + send()}> + Pay now + + )}
@@ -277,7 +280,8 @@ export default function SubscriptionDetails({ id }: Props) {
- + {/* TODO: temporarily disabling threshold */} + {/* - + */}
(null); + const [push, goBack] = useHistory(); + const { setToast } = useToasts(); + const [activeAddress] = useStorage({ + key: "active_address", + instance: ExtensionStorage + }); + + const handlePayment = async (subscription: SubscriptionData) => { + try { + const now = new Date(); + const nextPaymentDue = new Date(subscription.nextPaymentDue); + const oneWeek = 7 * 24 * 60 * 60 * 1000; + + if (now.getTime() > nextPaymentDue.getTime() + oneWeek) { + throw new Error("Payment is paying for more than a week past due."); + } + const prepared = await prepare( + subscription.arweaveAccountAddress, + subscription, + activeAddress + ); + try { + const submitted = await send(prepared, subscription, true); + + await updateSubscription( + activeAddress, + submitted.arweaveAccountAddress, + SubscriptionStatus.ACTIVE, + submitted.nextPaymentDue + ); + setToast({ + type: "success", + content: "Subscription paid", + duration: 5000 + }); + goBack(); + } catch (e) { + console.log("e", e); + setToast({ + type: "error", + content: "Issue processing payment", + duration: 5000 + }); + } + return; + } catch (e) { + console.log("err", e); + } + }; + + useEffect(() => { + async function getSubData() { + try { + const address = await getActiveAddress(); + const data = await getSubscriptionData(address); + // finding like this for now + const subscription = data.find( + (subscription) => subscription.arweaveAccountAddress === id + ); + setSubData(subscription); + } catch (error) { + console.error("Error fetching subscription data:", error); + } + } + + // segment + + getSubData(); + }, []); return ( - <> - - + + + + {subData && + subData.subscriptionStatus === SubscriptionStatus.AWAITING_PAYMENT ? ( + +
+ +
+ + ({activeAddress && formatAddress(activeAddress, 5)}) + +
+ +
+ + ({subData && formatAddress(subData.arweaveAccountAddress, 5)}) + +
+
+
+ +
+
+
+ await handlePayment(subData)} + > + Pay Subscription + + + Cancel Subscription + +
+ + ) : ( +
No Subscription to pay for
+ )} +
); } + +const Body = styled.div` + padding: 15px; + display: flex; + flex-direction: column; + justify-content: space-between; + height: 100%; +`; + +const Wrapper = styled.div` + display: flex; + flex-direction: column; + justify-content: space-between; + height: 100vh; +`; diff --git a/src/subscriptions/index.ts b/src/subscriptions/index.ts index bc3ef9e20..183f1897a 100644 --- a/src/subscriptions/index.ts +++ b/src/subscriptions/index.ts @@ -67,6 +67,9 @@ export function calculateNextPaymentDate( case RecurringPaymentFrequency.WEEKLY: currentDate.setDate(currentDate.getDate() + 7); break; + case RecurringPaymentFrequency.EVERY_5_MINUTES: + currentDate.setMinutes(currentDate.getMinutes() + 5); + break; default: console.error("Invalid recurring payment frequency"); } @@ -110,8 +113,7 @@ export async function updateSubscription( subscriptions[subscriptionIndex].recurringPaymentFrequency; if (nextPaymentDue !== undefined) { // update nextPaymentDue - subscriptions[subscriptionIndex].nextPaymentDue = - calculateNextPaymentDate(nextPaymentDue, recurringPaymentFrequency); + subscriptions[subscriptionIndex].nextPaymentDue = nextPaymentDue; } // update status subscriptions[subscriptionIndex].subscriptionStatus = newStatus; diff --git a/src/subscriptions/payments.ts b/src/subscriptions/payments.ts index 0f24d628b..7c8f0ff77 100644 --- a/src/subscriptions/payments.ts +++ b/src/subscriptions/payments.ts @@ -72,7 +72,7 @@ export async function handleSubscriptionPayment( } } -const prepare = async ( +export const prepare = async ( target: string, data: SubscriptionData, activeAddress: string @@ -113,7 +113,7 @@ const prepare = async ( data: undefined }); - console.log("created tx:", tx); + // console.log("created tx:", tx); tx.addTag("Subscription-Name", data.subscriptionName); tx.addTag("App-Name", data.applicationName); @@ -129,9 +129,10 @@ const prepare = async ( } }; -const send = async ( +export const send = async ( formattedTxn: RawStoredTransfer, - subscriptionData: SubscriptionData + subscriptionData: SubscriptionData, + manualPayment: boolean = false ): Promise => { // get tx and gateway let { type, gateway, transaction } = formattedTxn; @@ -154,7 +155,12 @@ const send = async ( try { // Post the transaction - const submitted = await submitTx(unRaw, arweave, subscriptionData); + const submitted = await submitTx( + unRaw, + arweave, + subscriptionData, + manualPayment + ); console.log("After submitTx: Transaction successfully posted", submitted); console.log("free from memory"); freeDecryptedWallet(keyfile); @@ -168,7 +174,8 @@ const send = async ( const submitted = await submitTx( unRaw, fallbackArweave, - subscriptionData + subscriptionData, + manualPayment ); freeDecryptedWallet(keyfile); await trackEvent(EventType.FALLBACK, {}); @@ -183,7 +190,8 @@ const send = async ( const submitTx = async ( transaction: Transaction, arweave: Arweave, - data: SubscriptionData + data: SubscriptionData, + manualPayment: boolean = false ): Promise => { const timeoutPromise = new Promise((_, reject) => { setTimeout(() => { @@ -198,7 +206,7 @@ const submitTx = async ( arweave.transactions.post(transaction), timeoutPromise ]); - const updatedSub = updateSubscription(data, transaction.id); + const updatedSub = updateSubscription(data, transaction.id, manualPayment); return updatedSub; } catch (err) { // SEGMENT @@ -209,12 +217,20 @@ const submitTx = async ( export function updateSubscription( data: SubscriptionData, - updatedTxnId: string + updatedTxnId: string, + manualPayment: boolean = false ): SubscriptionData { - const nextPaymentDue = calculateNextPaymentDate( - data.nextPaymentDue, - data.recurringPaymentFrequency - ); + let nextPaymentDue; + if (manualPayment) { + nextPaymentDue = calculateNextPaymentDate( + new Date(), + data.recurringPaymentFrequency + ); + } else + nextPaymentDue = calculateNextPaymentDate( + data.nextPaymentDue, + data.recurringPaymentFrequency + ); if (new Date(data.subscriptionEndDate) <= nextPaymentDue) { browser.alarms.clear(`subscription-alarm-${data.arweaveAccountAddress}`); diff --git a/src/subscriptions/subscription.ts b/src/subscriptions/subscription.ts index b4ca2f6a2..9c66ed88b 100644 --- a/src/subscriptions/subscription.ts +++ b/src/subscriptions/subscription.ts @@ -52,6 +52,8 @@ export enum SubscriptionStatus { * Enum for recurring payment frequency */ export enum RecurringPaymentFrequency { + HOURLY = "Hourly", + EVERY_5_MINUTES = "5 minutes", ANNUALLY = "Annually", QUARTERLY = "Quarterly", MONTHLY = "Monthly", From d9633ecf27e0c8af85ac595cefd5157463e7a5b9 Mon Sep 17 00:00:00 2001 From: nicholas ma Date: Tue, 14 May 2024 18:17:18 -0700 Subject: [PATCH 44/60] fix: disable allowance for time being --- src/routes/auth/subscription.tsx | 5 ++- .../subscriptions/subscriptionDetails.tsx | 42 ++++--------------- .../subscriptions/subscriptionPayment.tsx | 24 +++++++++++ src/settings/index.ts | 16 +++---- src/subscriptions/payments.ts | 36 ++++++++-------- src/subscriptions/subscription.ts | 1 - 6 files changed, 59 insertions(+), 65 deletions(-) diff --git a/src/routes/auth/subscription.tsx b/src/routes/auth/subscription.tsx index d790d77d2..7f0319133 100644 --- a/src/routes/auth/subscription.tsx +++ b/src/routes/auth/subscription.tsx @@ -207,7 +207,8 @@ export default function Subscription() { - + {/* TODO: Temporarily Disabling */} + {/* - + */}
@@ -206,7 +172,13 @@ export default function SubscriptionDetails({ id }: Props) { {/* TODO: Needs Refactor */} {subData.subscriptionStatus === SubscriptionStatus.AWAITING_PAYMENT && ( - send()}> + + push( + `/subscriptions/${subData.arweaveAccountAddress}/payment` + ) + } + > Pay now )} diff --git a/src/routes/popup/subscriptions/subscriptionPayment.tsx b/src/routes/popup/subscriptions/subscriptionPayment.tsx index f5e470906..d38ff134c 100644 --- a/src/routes/popup/subscriptions/subscriptionPayment.tsx +++ b/src/routes/popup/subscriptions/subscriptionPayment.tsx @@ -3,6 +3,7 @@ import { Address, AddressWrapper, BodySection } from "../send/confirm"; import styled from "styled-components"; import { prepare, send } from "~subscriptions/payments"; import { useEffect, useState } from "react"; +import browser from "webextension-polyfill"; import { getActiveAddress } from "~wallets"; import { getSubscriptionData, updateSubscription } from "~subscriptions"; import { formatAddress } from "~utils/format"; @@ -25,6 +26,28 @@ export default function SubscriptionPayment({ id }: { id: string }) { instance: ExtensionStorage }); + const cancel = async () => { + try { + await updateSubscription( + activeAddress, + subData.arweaveAccountAddress, + SubscriptionStatus.CANCELED + ); + setToast({ + type: "success", + content: browser.i18n.getMessage("subscription_cancelled"), + duration: 5000 + }); + goBack(); + } catch { + setToast({ + type: "error", + content: browser.i18n.getMessage("subscription_cancelled_error"), + duration: 5000 + }); + } + }; + const handlePayment = async (subscription: SubscriptionData) => { try { const now = new Date(); @@ -128,6 +151,7 @@ export default function SubscriptionPayment({ id }: { id: string }) { await cancel()} > Cancel Subscription diff --git a/src/settings/index.ts b/src/settings/index.ts index a2447f29c..c20be39ce 100644 --- a/src/settings/index.ts +++ b/src/settings/index.ts @@ -18,14 +18,14 @@ export const PREFIX = "setting_"; /** All settings */ const settings: Setting[] = [ - new Setting({ - name: "subscription_allowance", - displayName: "subscription_allowance", - icon: CreditCard02, - description: "subscription_description", - type: "number", - defaultValue: 0 - }), + // new Setting({ + // name: "subscription_allowance", + // displayName: "subscription_allowance", + // icon: CreditCard02, + // description: "subscription_description", + // type: "number", + // defaultValue: 0 + // }), new Setting({ name: "fee_multiplier", displayName: "setting_fee_multiplier", diff --git a/src/subscriptions/payments.ts b/src/subscriptions/payments.ts index 7c8f0ff77..3957e7019 100644 --- a/src/subscriptions/payments.ts +++ b/src/subscriptions/payments.ts @@ -50,25 +50,23 @@ export async function handleSubscriptionPayment( ); throw new Error("Payment is overdue by more than a week."); } - - if (subscriptionFee >= autoAllowance) { - // TODO update status here - - await statusUpdateSubscription( - activeAddress, - data.arweaveAccountAddress, - SubscriptionStatus.AWAITING_PAYMENT - ); - throw new Error("Subscription fee exceeds or is equal to user allowance"); - } else { - try { - const recipientAddress = data.arweaveAccountAddress; - const prepared = await prepare(recipientAddress, data, activeAddress); - return send(prepared, data); - } catch (error) { - console.log(error); - throw new Error("Error making auto subscription payment"); - } + //Disable allowance for now + // if (subscriptionFee >= autoAllowance) { + // await statusUpdateSubscription( + // activeAddress, + // data.arweaveAccountAddress, + // SubscriptionStatus.AWAITING_PAYMENT + // ); + // throw new Error("Subscription fee exceeds or is equal to user allowance"); + // } else { + // } + try { + const recipientAddress = data.arweaveAccountAddress; + const prepared = await prepare(recipientAddress, data, activeAddress); + return send(prepared, data); + } catch (error) { + console.log(error); + throw new Error("Error making auto subscription payment"); } } diff --git a/src/subscriptions/subscription.ts b/src/subscriptions/subscription.ts index 9c66ed88b..0aef3308d 100644 --- a/src/subscriptions/subscription.ts +++ b/src/subscriptions/subscription.ts @@ -1,7 +1,6 @@ import Application, { type InitAppParams } from "~applications/application"; import { ExtensionStorage } from "~utils/storage"; import type { Storage } from "@plasmohq/storage"; -import { getSubscriptionData } from "~subscriptions"; export default class Subscription { activeAddress: string; From 7c86c7a63a8f03ec0f7b0785980b3bd8df321604 Mon Sep 17 00:00:00 2001 From: nicholas ma Date: Wed, 15 May 2024 15:35:04 -0700 Subject: [PATCH 45/60] fix: added all txns page, fixed misc issues --- src/popup.tsx | 6 + .../subscriptions/subscriptionDetails.tsx | 32 ++--- .../subscriptions/subscriptionManagement.tsx | 120 ++++++++++++++++++ .../subscriptions/subscriptionPayment.tsx | 19 ++- src/subscriptions/index.ts | 30 +++-- src/subscriptions/payments.ts | 79 ++++++++---- src/subscriptions/subscription.ts | 10 +- 7 files changed, 234 insertions(+), 62 deletions(-) create mode 100644 src/routes/popup/subscriptions/subscriptionManagement.tsx diff --git a/src/popup.tsx b/src/popup.tsx index 3f46fda72..ecb2bc3e1 100644 --- a/src/popup.tsx +++ b/src/popup.tsx @@ -32,6 +32,7 @@ import { NavigationBar } from "~components/popup/Navigation"; import MessageNotification from "~routes/popup/notification/[id]"; import SubscriptionDetails from "~routes/popup/subscriptions/subscriptionDetails"; import SubscriptionPayment from "~routes/popup/subscriptions/subscriptionPayment"; +import SubscriptionManagement from "~routes/popup/subscriptions/subscriptionManagement"; export default function Popup() { const theme = useTheme(); @@ -84,6 +85,11 @@ export default function Popup() { )} + + {(params: { id: string }) => ( + + )} + {(params: { id: string }) => ( diff --git a/src/routes/popup/subscriptions/subscriptionDetails.tsx b/src/routes/popup/subscriptions/subscriptionDetails.tsx index 25f497a18..154ee5f49 100644 --- a/src/routes/popup/subscriptions/subscriptionDetails.tsx +++ b/src/routes/popup/subscriptions/subscriptionDetails.tsx @@ -14,15 +14,7 @@ import { updateSubscription } from "~subscriptions"; import dayjs from "dayjs"; -import { - ButtonV2, - Input, - InputV2, - ListItem, - type DisplayTheme, - TooltipV2, - useToasts -} from "@arconnect/components"; +import { ButtonV2, type DisplayTheme, useToasts } from "@arconnect/components"; import { AppIcon, Content, Title, getColorByStatus } from "./subscriptions"; import { CreditCardUpload } from "@untitled-ui/icons-react"; import { @@ -35,11 +27,6 @@ import { useHistory } from "~utils/hash_router"; import { getPrice } from "~lib/coingecko"; import useSetting from "~settings/hook"; import { PageType, trackPage } from "~utils/analytics"; -import { formatTokenBalance, fractionedToBalance } from "~tokens/currency"; -import { arPlaceholder } from "../send"; -import { ExtensionStorage, TempTransactionStorage } from "~utils/storage"; -import { findGateway } from "~gateways/wayfinder"; -import Arweave from "arweave"; interface Props { id?: string; @@ -132,12 +119,13 @@ export default function SubscriptionDetails({ id }: Props) { const update = async () => { try { const address = await getActiveAddress(); - - await updateAutoRenewal( - checked, - address, - subData.arweaveAccountAddress - ); + if (subData) { + await updateAutoRenewal( + checked, + address, + subData.arweaveAccountAddress + ); + } } catch (err) { console.log("err", err); } @@ -277,9 +265,7 @@ export default function SubscriptionDetails({ id }: Props) { - browser.tabs.create({ url: subData.subscriptionManagementUrl }) - } + onClick={() => push(`/subscriptions/${id}/manage`)} > Manage Subscription diff --git a/src/routes/popup/subscriptions/subscriptionManagement.tsx b/src/routes/popup/subscriptions/subscriptionManagement.tsx new file mode 100644 index 000000000..7b4e0d074 --- /dev/null +++ b/src/routes/popup/subscriptions/subscriptionManagement.tsx @@ -0,0 +1,120 @@ +import { type SubscriptionData } from "~subscriptions/subscription"; +import HeadV2 from "~components/popup/HeadV2"; +import { useEffect, useState } from "react"; +import { getActiveAddress } from "~wallets"; +import browser from "webextension-polyfill"; +import styled from "styled-components"; +import { getSubscriptionData, updateAutoRenewal } from "~subscriptions"; +import { ButtonV2, useToasts } from "@arconnect/components"; + +interface Props { + id?: string; +} + +export default function SubscriptionManagement({ id }: Props) { + const [subData, setSubData] = useState(null); + + useEffect(() => { + async function getSubData() { + const address = await getActiveAddress(); + + try { + const data = await getSubscriptionData(address); + // finding like this for now + const subscription = data.find( + (subscription) => subscription.arweaveAccountAddress === id + ); + setSubData(subscription); + } catch (error) { + console.error("Error fetching subscription data:", error); + } + } + + getSubData(); + }, []); + + return ( +
+ + + {subData && ( + <> + +

Payment History

+ {subData.paymentHistory.length > 0 ? ( +
    + {subData.paymentHistory.map((payment, index) => ( +
  • + browser.tabs.create({ + url: `https://viewblock.io/arweave/tx/${payment.txId}` + }) + } + > +

    + {browser.i18n.getMessage("transaction_id")}:{" "} + {payment.txId} +

    +

    Date: {new Date(payment.date).toLocaleString()}

    +
  • + ))} +
+ ) : ( +

No payment history available.

+ )} +
+ + )} + + browser.tabs.create({ url: subData.subscriptionManagementUrl }) + } + > + View Subscription + +
+
+ ); +} + +const Wrapper = styled.div` + padding: 15px; + display: flex; + flex-direction: column; + justify-content: space-between; + overflow-x: scroll; + height: calc(100% - 96px); +`; + +const PaymentHistory = styled.div` + h3 { + font-size: 1.5em; + margin: 0; + } + ul { + list-style-type: none; + padding: 10px 0; + + li { + padding: 10px; + border: 1px solid #ccc; + cursor: pointer; + border-radius: 10px; + margin-bottom: 10px; + transition: background-color 0.3s; + + &:hover { + background-color: #1b1b1b; + } + p { + margin: 5px 0; + } + p { + margin: 4px 0; + } + } + } +`; diff --git a/src/routes/popup/subscriptions/subscriptionPayment.tsx b/src/routes/popup/subscriptions/subscriptionPayment.tsx index d38ff134c..5b2a6c188 100644 --- a/src/routes/popup/subscriptions/subscriptionPayment.tsx +++ b/src/routes/popup/subscriptions/subscriptionPayment.tsx @@ -5,7 +5,11 @@ import { prepare, send } from "~subscriptions/payments"; import { useEffect, useState } from "react"; import browser from "webextension-polyfill"; import { getActiveAddress } from "~wallets"; -import { getSubscriptionData, updateSubscription } from "~subscriptions"; +import { + addSubscription, + getSubscriptionData, + updateSubscription +} from "~subscriptions"; import { formatAddress } from "~utils/format"; import { SubscriptionStatus, @@ -63,14 +67,15 @@ export default function SubscriptionPayment({ id }: { id: string }) { activeAddress ); try { - const submitted = await send(prepared, subscription, true); - - await updateSubscription( + const submitted = await send( activeAddress, - submitted.arweaveAccountAddress, - SubscriptionStatus.ACTIVE, - submitted.nextPaymentDue + prepared, + subscription, + true ); + submitted.subscriptionStatus = SubscriptionStatus.ACTIVE; + await addSubscription(activeAddress, submitted); + setToast({ type: "success", content: "Subscription paid", diff --git a/src/subscriptions/index.ts b/src/subscriptions/index.ts index 183f1897a..b7bff622b 100644 --- a/src/subscriptions/index.ts +++ b/src/subscriptions/index.ts @@ -1,7 +1,7 @@ import { RecurringPaymentFrequency, - type SubscriptionData, - type SubscriptionStatus + SubscriptionStatus, + type SubscriptionData } from "./subscription"; import { ExtensionStorage } from "~utils/storage"; @@ -48,7 +48,7 @@ export async function deleteSubscription( export function calculateNextPaymentDate( currentNextPaymentDue: Date | string, recurringPaymentFrequency: RecurringPaymentFrequency -) { +): { currentDate: Date; status: "success" | "fail" } { const currentDate = typeof currentNextPaymentDue === "string" ? new Date(currentNextPaymentDue) @@ -70,11 +70,18 @@ export function calculateNextPaymentDate( case RecurringPaymentFrequency.EVERY_5_MINUTES: currentDate.setMinutes(currentDate.getMinutes() + 5); break; + case RecurringPaymentFrequency.HOURLY: + currentDate.setHours(currentDate.getHours() + 1); + break; + case RecurringPaymentFrequency.DAILY: + currentDate.setDate(currentDate.getDate() + 1); + break; default: console.error("Invalid recurring payment frequency"); + return { currentDate, status: "fail" }; } - return currentDate; + return { currentDate, status: "success" }; } export async function updateAutoRenewal( @@ -109,14 +116,21 @@ export async function updateSubscription( (subscription) => subscription.arweaveAccountAddress === updateId ); if (subscriptionIndex !== -1) { - const recurringPaymentFrequency = - subscriptions[subscriptionIndex].recurringPaymentFrequency; if (nextPaymentDue !== undefined) { // update nextPaymentDue subscriptions[subscriptionIndex].nextPaymentDue = nextPaymentDue; } - // update status - subscriptions[subscriptionIndex].subscriptionStatus = newStatus; + + // This is here to prevent transactions from going through if for some reason alarm wasn't deleted + if ( + subscriptions[subscriptionIndex].subscriptionStatus === + SubscriptionStatus.CANCELED + ) { + return; + } else { + // update status + subscriptions[subscriptionIndex].subscriptionStatus = newStatus; + } await ExtensionStorage.set( `subscriptions_${activeAddress}`, diff --git a/src/subscriptions/payments.ts b/src/subscriptions/payments.ts index 3957e7019..6b0f518e5 100644 --- a/src/subscriptions/payments.ts +++ b/src/subscriptions/payments.ts @@ -25,8 +25,6 @@ export async function handleSubscriptionPayment( ); const activeAddress: string = await ExtensionStorage.get("active_address"); - const subscriptionFee: number = data.subscriptionFeeAmount; - // don't charge if auto-renewal is off if (!data.applicationAutoRenewal && !initialPayment) { await statusUpdateSubscription( @@ -37,6 +35,15 @@ export async function handleSubscriptionPayment( throw new Error("Auto-renewal not enabled."); } + if (data.subscriptionStatus === SubscriptionStatus.CANCELED) { + await statusUpdateSubscription( + activeAddress, + data.arweaveAccountAddress, + SubscriptionStatus.CANCELED + ); + throw new Error("Subscription canceled."); + } + // disable if payment is past due by a week const now = new Date(); const nextPaymentDue = new Date(data.nextPaymentDue); @@ -50,20 +57,11 @@ export async function handleSubscriptionPayment( ); throw new Error("Payment is overdue by more than a week."); } - //Disable allowance for now - // if (subscriptionFee >= autoAllowance) { - // await statusUpdateSubscription( - // activeAddress, - // data.arweaveAccountAddress, - // SubscriptionStatus.AWAITING_PAYMENT - // ); - // throw new Error("Subscription fee exceeds or is equal to user allowance"); - // } else { - // } + try { const recipientAddress = data.arweaveAccountAddress; const prepared = await prepare(recipientAddress, data, activeAddress); - return send(prepared, data); + return send(activeAddress, prepared, data); } catch (error) { console.log(error); throw new Error("Error making auto subscription payment"); @@ -128,12 +126,13 @@ export const prepare = async ( }; export const send = async ( + activeAddress: string, formattedTxn: RawStoredTransfer, subscriptionData: SubscriptionData, manualPayment: boolean = false ): Promise => { // get tx and gateway - let { type, gateway, transaction } = formattedTxn; + let { gateway, transaction } = formattedTxn; const arweave = new Arweave(gateway); const unRaw = arweave.transactions.fromRaw(transaction); @@ -154,6 +153,7 @@ export const send = async ( try { // Post the transaction const submitted = await submitTx( + activeAddress, unRaw, arweave, subscriptionData, @@ -170,6 +170,7 @@ export const send = async ( const fallbackArweave = new Arweave(gateway); await fallbackArweave.transactions.sign(unRaw, keyfile); const submitted = await submitTx( + activeAddress, unRaw, fallbackArweave, subscriptionData, @@ -186,6 +187,7 @@ export const send = async ( }; const submitTx = async ( + activeAddress: string, transaction: Transaction, arweave: Arweave, data: SubscriptionData, @@ -204,7 +206,12 @@ const submitTx = async ( arweave.transactions.post(transaction), timeoutPromise ]); - const updatedSub = updateSubscription(data, transaction.id, manualPayment); + const updatedSub = updateSubscriptionAlarm( + activeAddress, + data, + transaction.id, + manualPayment + ); return updatedSub; } catch (err) { // SEGMENT @@ -213,12 +220,31 @@ const submitTx = async ( } }; -export function updateSubscription( +/** + * Updates a subscription by clearing existing alarms and scheduling the next payment alarm. + * + * @param data - The current subscription data. + * @param updatedTxnId - The transaction ID of the latest payment. + * @param manualPayment - A flag indicating whether the payment is manual (default: false). + * + * @returns The updated subscription data. + * + * This function performs the following operations: + * 1. Calculates the next payment due date based on whether the payment is manual or automatic. + * 2. Clears the existing subscription alarm if the subscription end date is reached or if the calculation fails. + * 3. Creates a new alarm for the next payment due date if the subscription is still active. + * 4. Adds the latest payment transaction to the payment history. + * 5. Updates the next payment due date in the subscription data. + */ + +export async function updateSubscriptionAlarm( + activeAddress: string, data: SubscriptionData, updatedTxnId: string, manualPayment: boolean = false -): SubscriptionData { - let nextPaymentDue; +): Promise { + let nextPaymentDue: { currentDate: Date; status: "success" | "fail" }; + if (manualPayment) { nextPaymentDue = calculateNextPaymentDate( new Date(), @@ -230,19 +256,28 @@ export function updateSubscription( data.recurringPaymentFrequency ); - if (new Date(data.subscriptionEndDate) <= nextPaymentDue) { + if ( + new Date(data.subscriptionEndDate) <= nextPaymentDue.currentDate || + nextPaymentDue.status === "fail" + ) { browser.alarms.clear(`subscription-alarm-${data.arweaveAccountAddress}`); + + await statusUpdateSubscription( + activeAddress, + data.arweaveAccountAddress, + SubscriptionStatus.CANCELED + ); } else { browser.alarms.create(`subscription-alarm-${data.arweaveAccountAddress}`, { - when: nextPaymentDue.getTime() + when: nextPaymentDue.currentDate.getTime() }); } if (!data.paymentHistory) { data.paymentHistory = []; } - data.paymentHistory.push(updatedTxnId); - data.nextPaymentDue = nextPaymentDue; + data.paymentHistory.push({ txId: updatedTxnId, date: new Date() }); + data.nextPaymentDue = nextPaymentDue.currentDate; return data; } diff --git a/src/subscriptions/subscription.ts b/src/subscriptions/subscription.ts index 0aef3308d..f048ed64e 100644 --- a/src/subscriptions/subscription.ts +++ b/src/subscriptions/subscription.ts @@ -34,7 +34,12 @@ export interface SubscriptionData { subscriptionManagementUrl: string; subscriptionStartDate?: Date | string; subscriptionEndDate: Date | string; - paymentHistory?: string[]; + paymentHistory?: PaymentHistoryEntry[]; +} + +interface PaymentHistoryEntry { + txId: string; + date: Date; } /** @@ -56,5 +61,6 @@ export enum RecurringPaymentFrequency { ANNUALLY = "Annually", QUARTERLY = "Quarterly", MONTHLY = "Monthly", - WEEKLY = "Weekly" + WEEKLY = "Weekly", + DAILY = "Daily" } From 7d8203226e8be712374a455cec11bf269f2c876b Mon Sep 17 00:00:00 2001 From: nicholas ma Date: Fri, 17 May 2024 14:19:48 -0700 Subject: [PATCH 46/60] fix: re-enabled allowance re worked auto renewal --- src/routes/auth/subscription.tsx | 14 +++-- .../subscriptions/subscriptionDetails.tsx | 51 +++++++++++++++-- .../subscriptions/subscriptionManagement.tsx | 56 +++++++++++++++---- src/subscriptions/index.ts | 22 ++++++++ src/subscriptions/payments.ts | 45 ++++++++------- src/subscriptions/subscription.ts | 1 + 6 files changed, 149 insertions(+), 40 deletions(-) diff --git a/src/routes/auth/subscription.tsx b/src/routes/auth/subscription.tsx index 7f0319133..496b52e4c 100644 --- a/src/routes/auth/subscription.tsx +++ b/src/routes/auth/subscription.tsx @@ -2,8 +2,8 @@ import { replyToAuthRequest, useAuthParams, useAuthUtils } from "~utils/auth"; import { ButtonV2, InputV2, - Text, TooltipV2, + useInput, useToasts } from "@arconnect/components"; import browser from "webextension-polyfill"; @@ -45,6 +45,7 @@ export default function Subscription() { // connect params const params = useAuthParams(); const { setToast } = useToasts(); + const allowanceInput = useInput(); const [currency] = useSetting("currency"); const [checked, setChecked] = useState(false); @@ -85,6 +86,11 @@ export default function Subscription() { recurringPaymentFrequency: subscriptionParams.recurringPaymentFrequency as RecurringPaymentFrequency, + // If this is left blank, this will automatically be set to the subfee amount + applicationAllowance: !isNaN(Number(allowanceInput.state)) + ? Number(allowanceInput.state) + : params.subscriptionFeeAmount, + // TODO: this should be default set to now, and let `handleSubPayment` update to the following period nextPaymentDue: new Date(), @@ -208,7 +214,7 @@ export default function Subscription() { {/* TODO: Temporarily Disabling */} - {/* + - - */} + +
(); const [currency] = useSetting("currency"); const [color, setColor] = useState(""); + + const allowanceInput = useInput(); + // network fee const cancel = async () => { @@ -86,6 +97,27 @@ export default function SubscriptionDetails({ id }: Props) { // redirect to subscription page }; + useEffect(() => { + const update = async () => { + try { + const address = await getActiveAddress(); + if (subData && allowanceInput.state !== "") { + const newAllowance = parseFloat(allowanceInput.state); + if (!isNaN(newAllowance)) { + updateAllowance( + newAllowance, + address, + subData.arweaveAccountAddress + ); + } + } + } catch (err) { + console.log("err", err); + } + }; + update(); + }, [allowanceInput.state]); + useEffect(() => { async function getSubData() { const address = await getActiveAddress(); @@ -99,6 +131,7 @@ export default function SubscriptionDetails({ id }: Props) { setSubData(subscription); setChecked(subscription.applicationAutoRenewal); setColor(getColorByStatus(subscription.subscriptionStatus)); + allowanceInput.setState(subscription.applicationAllowance.toString()); const arPrice = await getPrice("arweave", currency); if (arPrice) { setPrice(arPrice * subscription.subscriptionFeeAmount); @@ -180,7 +213,7 @@ export default function SubscriptionDetails({ id }: Props) { color={theme === "light" ? "#191919" : "#ffffff"} > Application address:{" "} - {formatAddress(subData.arweaveAccountAddress, 8)} + {formatAddress(subData.arweaveAccountAddress, 5)}
Recurring payment amount
@@ -206,7 +239,7 @@ export default function SubscriptionDetails({ id }: Props) {
-
+
{/* TODO: temporarily disabling threshold */} - {/* + - - */} + {" "} +
props.fontSize || "16px"}; font-weight: 500; + white-space: nowrap; color: ${(props) => props.color ? props.color @@ -322,6 +356,11 @@ export const Threshold = styled.div` gap: 12px; `; +const Divider = styled.div` + width: 100%; + border-top: 1px solid ${(props) => props.theme.backgroundSecondary}; +`; + export const Body = styled.div` display: flex; justify-content: space-between; diff --git a/src/routes/popup/subscriptions/subscriptionManagement.tsx b/src/routes/popup/subscriptions/subscriptionManagement.tsx index 7b4e0d074..7ee57e9e8 100644 --- a/src/routes/popup/subscriptions/subscriptionManagement.tsx +++ b/src/routes/popup/subscriptions/subscriptionManagement.tsx @@ -4,8 +4,8 @@ import { useEffect, useState } from "react"; import { getActiveAddress } from "~wallets"; import browser from "webextension-polyfill"; import styled from "styled-components"; -import { getSubscriptionData, updateAutoRenewal } from "~subscriptions"; -import { ButtonV2, useToasts } from "@arconnect/components"; +import { getSubscriptionData } from "~subscriptions"; +import { ButtonV2 } from "@arconnect/components"; interface Props { id?: string; @@ -13,18 +13,21 @@ interface Props { export default function SubscriptionManagement({ id }: Props) { const [subData, setSubData] = useState(null); + const [nextPayment, setNextPayment] = useState(null); useEffect(() => { async function getSubData() { const address = await getActiveAddress(); try { - const data = await getSubscriptionData(address); - // finding like this for now - const subscription = data.find( - (subscription) => subscription.arweaveAccountAddress === id - ); - setSubData(subscription); + if (address) { + const data = await getSubscriptionData(address); + // finding like this for now + const subscription = data.find( + (subscription) => subscription.arweaveAccountAddress === id + ); + setSubData(subscription); + } } catch (error) { console.error("Error fetching subscription data:", error); } @@ -33,6 +36,22 @@ export default function SubscriptionManagement({ id }: Props) { getSubData(); }, []); + useEffect(() => { + const getAlarms = async () => { + try { + const alarms = await browser.alarms.getAll(); + const nextPaymentAlarm = alarms.find( + (alarm) => alarm.name === `subscription-alarm-${id}` + ); + if (nextPaymentAlarm) { + setNextPayment(new Date(nextPaymentAlarm.scheduledTime)); + } + } catch (error) {} + }; + + getAlarms(); + }, []); + return (
@@ -40,6 +59,14 @@ export default function SubscriptionManagement({ id }: Props) { {subData && ( <> + +

Next Payment

+ {nextPayment ? ( +

{nextPayment.toLocaleString()}

+ ) : ( +

No upcoming payment scheduled.

+ )} +

Payment History

{subData.paymentHistory.length > 0 ? (
    @@ -112,9 +139,16 @@ const PaymentHistory = styled.div` p { margin: 5px 0; } - p { - margin: 4px 0; - } } } `; + +const NextPaymentSection = styled.div` + h3 { + font-size: 1.5em; + margin: 10px 0; + } + p { + font-size: 1.2em; + } +`; diff --git a/src/subscriptions/index.ts b/src/subscriptions/index.ts index b7bff622b..0ccc29577 100644 --- a/src/subscriptions/index.ts +++ b/src/subscriptions/index.ts @@ -104,6 +104,28 @@ export async function updateAutoRenewal( } catch (err) {} } +export async function updateAllowance( + newAllowance: number, + activeAddress: string, + updateId: string +) { + try { + const subscriptions = await getSubscriptionData(activeAddress); + const subscriptionIndex = subscriptions.findIndex( + (subscription) => subscription.arweaveAccountAddress === updateId + ); + if (subscriptionIndex !== -1) { + subscriptions[subscriptionIndex].applicationAllowance = newAllowance; + await ExtensionStorage.set( + `subscriptions_${activeAddress}`, + subscriptions + ); + } + } catch (err) { + console.error("Error updating allowance:", err); + } +} + export async function updateSubscription( activeAddress: string, updateId: string, diff --git a/src/subscriptions/payments.ts b/src/subscriptions/payments.ts index 6b0f518e5..31ecaac4f 100644 --- a/src/subscriptions/payments.ts +++ b/src/subscriptions/payments.ts @@ -20,28 +20,22 @@ export async function handleSubscriptionPayment( data: SubscriptionData, initialPayment?: boolean ): Promise { - const autoAllowance: number = await ExtensionStorage.get( - "setting_subscription_allowance" - ); const activeAddress: string = await ExtensionStorage.get("active_address"); - // don't charge if auto-renewal is off - if (!data.applicationAutoRenewal && !initialPayment) { - await statusUpdateSubscription( - activeAddress, - data.arweaveAccountAddress, - SubscriptionStatus.AWAITING_PAYMENT - ); - throw new Error("Auto-renewal not enabled."); + if (data.subscriptionStatus === SubscriptionStatus.CANCELED) { + throw new Error("Subscription canceled."); } - if (data.subscriptionStatus === SubscriptionStatus.CANCELED) { + if ( + data.applicationAllowance < data.subscriptionFeeAmount && + !initialPayment + ) { await statusUpdateSubscription( activeAddress, data.arweaveAccountAddress, - SubscriptionStatus.CANCELED + SubscriptionStatus.AWAITING_PAYMENT ); - throw new Error("Subscription canceled."); + throw new Error("Subscription fee amount exceeds allowance."); } // disable if payment is past due by a week @@ -159,8 +153,6 @@ export const send = async ( subscriptionData, manualPayment ); - console.log("After submitTx: Transaction successfully posted", submitted); - console.log("free from memory"); freeDecryptedWallet(keyfile); return submitted; } catch (e) { @@ -200,7 +192,6 @@ const submitTx = async ( ); }, 10000); }); - try { await Promise.race([ arweave.transactions.post(transaction), @@ -257,16 +248,32 @@ export async function updateSubscriptionAlarm( ); if ( - new Date(data.subscriptionEndDate) <= nextPaymentDue.currentDate || + (new Date(data.subscriptionEndDate) <= nextPaymentDue.currentDate && + !data.applicationAutoRenewal) || nextPaymentDue.status === "fail" ) { browser.alarms.clear(`subscription-alarm-${data.arweaveAccountAddress}`); - await statusUpdateSubscription( activeAddress, data.arweaveAccountAddress, SubscriptionStatus.CANCELED ); + } else if ( + new Date(data.subscriptionEndDate) <= nextPaymentDue.currentDate && + data.applicationAutoRenewal + ) { + // Calculate the time frame between subscriptionStartDate and subscriptionEndDate + const startDate = new Date(data.subscriptionStartDate); + const endDate = new Date(data.subscriptionEndDate); + const timeFrame = endDate.getTime() - startDate.getTime(); + + // Calculate the new subscriptionEndDate + const newEndDate = new Date(endDate.getTime() + timeFrame); + data.subscriptionEndDate = newEndDate.toISOString(); + + browser.alarms.create(`subscription-alarm-${data.arweaveAccountAddress}`, { + when: nextPaymentDue.currentDate.getTime() + }); } else { browser.alarms.create(`subscription-alarm-${data.arweaveAccountAddress}`, { when: nextPaymentDue.currentDate.getTime() diff --git a/src/subscriptions/subscription.ts b/src/subscriptions/subscription.ts index f048ed64e..d165eb025 100644 --- a/src/subscriptions/subscription.ts +++ b/src/subscriptions/subscription.ts @@ -28,6 +28,7 @@ export interface SubscriptionData { subscriptionName: string; subscriptionFeeAmount: number; applicationAutoRenewal: boolean; + applicationAllowance: number; subscriptionStatus?: SubscriptionStatus; recurringPaymentFrequency: RecurringPaymentFrequency; nextPaymentDue: Date | string; From bd520108a77f5763672eeb737d5acc3c5dc30a2d Mon Sep 17 00:00:00 2001 From: nicholas ma Date: Fri, 17 May 2024 14:34:36 -0700 Subject: [PATCH 47/60] fix: removed placeholder, added currency value on pay screen --- src/routes/auth/subscription.tsx | 8 ++++++-- .../subscriptions/subscriptionPayment.tsx | 20 ++++++++++++++++++- 2 files changed, 25 insertions(+), 3 deletions(-) diff --git a/src/routes/auth/subscription.tsx b/src/routes/auth/subscription.tsx index 496b52e4c..eb74d5703 100644 --- a/src/routes/auth/subscription.tsx +++ b/src/routes/auth/subscription.tsx @@ -200,8 +200,12 @@ export default function Subscription() { - Mar 8, 2024 - Mar 8, 2025 + + {dayjs().format("MMM D, YYYY")} + + + {dayjs(params.subscriptionEndDate).format("MMM D, YYYY")} +
{/* Toggle */} diff --git a/src/routes/popup/subscriptions/subscriptionPayment.tsx b/src/routes/popup/subscriptions/subscriptionPayment.tsx index 5b2a6c188..01551473f 100644 --- a/src/routes/popup/subscriptions/subscriptionPayment.tsx +++ b/src/routes/popup/subscriptions/subscriptionPayment.tsx @@ -20,9 +20,13 @@ import { useStorage } from "@plasmohq/storage/hook"; import { ExtensionStorage } from "~utils/storage"; import { ButtonV2, useToasts } from "@arconnect/components"; import { useHistory } from "~utils/hash_router"; +import { getPrice } from "~lib/coingecko"; +import useSetting from "~settings/hook"; export default function SubscriptionPayment({ id }: { id: string }) { const [subData, setSubData] = useState(null); + const [price, setPrice] = useState("--"); + const [currency] = useSetting("currency"); const [push, goBack] = useHistory(); const { setToast } = useToasts(); const [activeAddress] = useStorage({ @@ -115,6 +119,20 @@ export default function SubscriptionPayment({ id }: { id: string }) { getSubData(); }, []); + + useEffect(() => { + async function fetchArPrice() { + const arPrice = await getPrice("arweave", currency); + if (arPrice) { + setPrice( + (arPrice * subData.subscriptionFeeAmount).toFixed(2).toString() + ); + } + } + + fetchArPrice(); + }, [subData, currency]); + return ( @@ -141,7 +159,7 @@ export default function SubscriptionPayment({ id }: { id: string }) { ticker={"AR"} value={subData.subscriptionFeeAmount.toString()} title={`Sending AR`} - estimatedValue={""} + estimatedValue={price} />
From 5d7580bc754f136f72851e7db0cfb88e65097114 Mon Sep 17 00:00:00 2001 From: Pawan Paudel Date: Wed, 22 May 2024 22:20:00 +0545 Subject: [PATCH 48/60] refactor: add fallback to switch gateways if primary is offline --- src/routes/popup/send/auth.tsx | 10 ++++++++-- src/routes/popup/send/confirm.tsx | 10 ++++++++-- src/utils/send.ts | 25 ++++++++++++++++++++++++- 3 files changed, 40 insertions(+), 5 deletions(-) diff --git a/src/routes/popup/send/auth.tsx b/src/routes/popup/send/auth.tsx index 93d3293d0..1333e8252 100644 --- a/src/routes/popup/send/auth.tsx +++ b/src/routes/popup/send/auth.tsx @@ -39,7 +39,12 @@ import { fallbackGateway, type Gateway } from "~gateways/gateway"; -import { isUToken, sendRequest } from "~utils/send"; +import { + getWarpGatewayUrl, + isUrlOnline, + isUToken, + sendRequest +} from "~utils/send"; import { EventType, trackEvent } from "~utils/analytics"; interface Props { tokenID?: string; @@ -135,8 +140,9 @@ export default function SendAuth({ tokenID }: Props) { if (uToken) { try { + const isOnline = await isUrlOnline(getWarpGatewayUrl("gw")); const config = { - url: "https://gateway.warp.cc/gateway/sequencer/register", + url: getWarpGatewayUrl(isOnline ? "gw" : "gateway", "sequencer"), method: "POST", headers: { "Content-Type": "application/json", diff --git a/src/routes/popup/send/confirm.tsx b/src/routes/popup/send/confirm.tsx index aa5b9a51e..cafc49134 100644 --- a/src/routes/popup/send/confirm.tsx +++ b/src/routes/popup/send/confirm.tsx @@ -28,7 +28,12 @@ import AnimatedQRPlayer from "~components/hardware/AnimatedQRPlayer"; import { getActiveKeyfile, getActiveWallet, type StoredWallet } from "~wallets"; import { isLocalWallet } from "~utils/assertions"; import { decryptWallet, freeDecryptedWallet } from "~wallets/encryption"; -import { isUToken, sendRequest } from "~utils/send"; +import { + getWarpGatewayUrl, + isUrlOnline, + isUToken, + sendRequest +} from "~utils/send"; import { EventType, PageType, trackEvent, trackPage } from "~utils/analytics"; import { concatGatewayURL } from "~gateways/utils"; import type { JWKInterface } from "arbundles"; @@ -272,8 +277,9 @@ export default function Confirm({ tokenID, qty }: Props) { if (uToken) { try { + const isOnline = await isUrlOnline(getWarpGatewayUrl("gw")); const config = { - url: "https://gateway.warp.cc/gateway/sequencer/register", + url: getWarpGatewayUrl(isOnline ? "gw" : "gateway", "sequencer"), method: "POST", headers: { "Content-Type": "application/json", diff --git a/src/utils/send.ts b/src/utils/send.ts index b3eec7c03..d6a5dcd3f 100644 --- a/src/utils/send.ts +++ b/src/utils/send.ts @@ -5,7 +5,7 @@ * @returns {boolean} Returns `true` if the token ID is a U-Token, otherwise `false`. */ -export const isUToken = (tokenID: string) => { +export const isUToken = (tokenID: string): boolean => { return ( // Test U-TOKEN tokenID === "FYJOKdtNKl18QgblxgLEZUfJMFUv6tZTQqGTtY-D6jQ" || @@ -42,3 +42,26 @@ export const sendRequest = async ( throw new Error("Unknown error occurred"); } }; + +export async function isUrlOnline(url: RequestInfo | URL, timeoutMs = 5000) { + const controller = new AbortController(); + const timeoutId = setTimeout(() => controller.abort(), timeoutMs); + + try { + const response = await fetch(url, { signal: controller.signal }); + clearTimeout(timeoutId); + return response.ok; + } catch (error) { + return false; + } +} + +export function getWarpGatewayUrl( + subdomain: string, + type: "gateway" | "sequencer" = "gateway" +) { + const baseUrl = `https://${subdomain}.warp.cc`; + return type === "sequencer" + ? `${baseUrl}/gateway/sequencer/register` + : baseUrl; +} From b8fe4cf00fc22a46894a8323f6739f7eeb40e020 Mon Sep 17 00:00:00 2001 From: nicholas ma Date: Thu, 23 May 2024 14:10:31 -0700 Subject: [PATCH 49/60] fix: changed addExpiration location --- src/routes/welcome/load/wallets.tsx | 3 +++ src/wallets/index.ts | 3 --- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/routes/welcome/load/wallets.tsx b/src/routes/welcome/load/wallets.tsx index 04f34d313..1bca81ea8 100644 --- a/src/routes/welcome/load/wallets.tsx +++ b/src/routes/welcome/load/wallets.tsx @@ -22,6 +22,7 @@ import SeedInput from "~components/SeedInput"; import Paragraph from "~components/Paragraph"; import browser from "webextension-polyfill"; import styled from "styled-components"; +import { addExpiration } from "~wallets/auth"; export default function Wallets() { // password context @@ -132,6 +133,7 @@ export default function Wallets() { // add wallet await addWallet(jwk, password); + await addExpiration(); } else if (existingWallets.length < 1) { // the user has not migrated, so they need to add a wallet return finishUp(); @@ -157,6 +159,7 @@ export default function Wallets() { // we need this because we don't // have any other wallets added yet await setActiveWallet(account.address); + await addExpiration(); // redirect setLocation(`/${params.setup}/${Number(params.page) + 1}`); diff --git a/src/wallets/index.ts b/src/wallets/index.ts index 3dee48b0b..d0ec04541 100644 --- a/src/wallets/index.ts +++ b/src/wallets/index.ts @@ -266,9 +266,6 @@ export async function addWallet( if (freshInstall) { await ExtensionStorage.set("active_address", wallets[0].address); } - - // add expiration date if needed - await addExpiration(); } /** From 281161c698f637266826b371b857c98a1feca149 Mon Sep 17 00:00:00 2001 From: nicholas ma Date: Thu, 23 May 2024 15:05:04 -0700 Subject: [PATCH 50/60] fix: added enter fn to confirm txn page and sign data popup --- src/routes/auth/signDataItem.tsx | 7 ++++++- src/routes/popup/send/confirm.tsx | 10 ++++++++++ 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/src/routes/auth/signDataItem.tsx b/src/routes/auth/signDataItem.tsx index ac2710077..739037de6 100644 --- a/src/routes/auth/signDataItem.tsx +++ b/src/routes/auth/signDataItem.tsx @@ -109,6 +109,7 @@ export default function SignDataItem() { // listen for enter to reset useEffect(() => { const listener = async (e: KeyboardEvent) => { + if (password) return; if (e.key !== "Enter") return; await sign(); }; @@ -116,7 +117,7 @@ export default function SignDataItem() { window.addEventListener("keydown", listener); return () => window.removeEventListener("keydown", listener); - }, [params?.authID]); + }, [params?.authID, password]); // sign message async function sign() { @@ -196,6 +197,10 @@ export default function SignDataItem() { {...passwordInput.bindings} label={"Password"} type="password" + onKeyDown={async (e) => { + if (e.key !== "Enter") return; + await sign(); + }} fullWidth /> diff --git a/src/routes/popup/send/confirm.tsx b/src/routes/popup/send/confirm.tsx index 0db62cb44..5e934e813 100644 --- a/src/routes/popup/send/confirm.tsx +++ b/src/routes/popup/send/confirm.tsx @@ -707,6 +707,16 @@ export default function Confirm({ tokenID, qty }: Props) { label={"Password"} type="password" fullWidth + onKeyDown={async (e) => { + if (e.key !== "Enter") return; + + if (wallet.type === "local") await sendLocal(); + else if (!hardwareStatus || hardwareStatus === "play") { + setHardwareStatus((val) => + val === "play" ? "scan" : "play" + ); + } + }} /> )} From a660cedacd199a3d3ac723751720a26b7de467be Mon Sep 17 00:00:00 2001 From: Pawan Paudel Date: Fri, 24 May 2024 13:44:35 +0545 Subject: [PATCH 51/60] fix: Upgrade axios to latest for background workers compatibility --- package.json | 5 +++-- src/api/modules/sign/fee.ts | 5 ----- yarn.lock | 44 ++++++++----------------------------- 3 files changed, 12 insertions(+), 42 deletions(-) diff --git a/package.json b/package.json index 45041c6c3..e7f718428 100644 --- a/package.json +++ b/package.json @@ -63,7 +63,7 @@ "ar-gql": "^0.0.6", "arbundles": "^0.9.5", "arweave": "^1.13.0", - "axios": "^1.1.3", + "axios": "^1.7.2", "bip39-web-crypto": "^4.0.1", "check-password-strength": "^2.0.7", "copy-to-clipboard": "^3.3.2", @@ -123,6 +123,7 @@ "arbundles/arweave": "^1.13.0", "human-crypto-keys/node-forge": "^1.3.1", "human-crypto-keys/crypto-key-composer/node-forge": "^1.3.1", - "@parcel/runtime-js": "2.8.3" + "@parcel/runtime-js": "2.8.3", + "axios": "^1.7.2" } } diff --git a/src/api/modules/sign/fee.ts b/src/api/modules/sign/fee.ts index ed9da8134..25a5379a4 100644 --- a/src/api/modules/sign/fee.ts +++ b/src/api/modules/sign/fee.ts @@ -171,11 +171,6 @@ export async function getFeeAmount(address: string, app: Application) { ); const arweave = new Arweave(await findGateway({ graphql: true })); - // TODO: figure out a way to use redstone here - // problem: the redstone-api package uses the - // window object, which is undefined in the - // manifest v3 service workers - /*let arPrice = 0; try { diff --git a/yarn.lock b/yarn.lock index 47e99163e..f925d099f 100644 --- a/yarn.lock +++ b/yarn.lock @@ -4632,28 +4632,12 @@ available-typed-arrays@^1.0.6: resolved "https://registry.yarnpkg.com/available-typed-arrays/-/available-typed-arrays-1.0.6.tgz#ac812d8ce5a6b976d738e1c45f08d0b00bc7d725" integrity sha512-j1QzY8iPNPG4o4xmO3ptzpRxTciqD3MgEHtifP/YnJpIo58Xu+ne4BejlbkuaLfXn/nz6HFiw29bLpj2PNMdGg== -axios@^0.21.1: - version "0.21.4" - resolved "https://registry.yarnpkg.com/axios/-/axios-0.21.4.tgz#c67b90dc0568e5c1cf2b0b858c43ba28e2eda575" - integrity sha512-ut5vewkiu8jjGBdqpM44XxjuCjq9LAKeHVmoVfHVzy8eHgxxq8SbAVQNovDA8mVi05kP0Ea/n/UzcSHcTJQfNg== - dependencies: - follow-redirects "^1.14.0" - -axios@^1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/axios/-/axios-1.1.3.tgz#8274250dada2edf53814ed7db644b9c2866c1e35" - integrity sha512-00tXVRwKx/FZr/IDVFt4C+f9FYairX517WoGCL6dpOntqLkZofjhu43F/Xl44UOpqa+9sLFDrG/XAnFsUYgkDA== - dependencies: - follow-redirects "^1.15.0" - form-data "^4.0.0" - proxy-from-env "^1.1.0" - -axios@^1.6.7: - version "1.6.7" - resolved "https://registry.yarnpkg.com/axios/-/axios-1.6.7.tgz#7b48c2e27c96f9c68a2f8f31e2ab19f59b06b0a7" - integrity sha512-/hDJGff6/c7u0hDkvkGxR/oy6CbCs8ziCsC7SqmhjfozqiJGc8Z11wrv9z9lYfY4K8l+H9TpjcMDX0xOZmx+RA== +axios@^0.21.1, axios@^1.6.7, axios@^1.7.2: + version "1.7.2" + resolved "https://registry.npmjs.org/axios/-/axios-1.7.2.tgz#b625db8a7051fbea61c35a3cbb3a1daa7b9c7621" + integrity sha512-2A8QhOMrbomlDuiLeK9XibIBzuHeRcqqNOHp0Cyp5EoJ1IFDh+XZH3A6BkXtv0K4gFGCI0Y4BM7B1wOEi0Rmgw== dependencies: - follow-redirects "^1.15.4" + follow-redirects "^1.15.6" form-data "^4.0.0" proxy-from-env "^1.1.0" @@ -6518,20 +6502,10 @@ find-yarn-workspace-root2@1.2.16: micromatch "^4.0.2" pkg-dir "^4.2.0" -follow-redirects@^1.14.0: - version "1.15.1" - resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.15.1.tgz#0ca6a452306c9b276e4d3127483e29575e207ad5" - integrity sha512-yLAMQs+k0b2m7cVxpS1VKJVvoz7SS9Td1zss3XRwXj+ZDH00RJgnuLx7E44wx02kQLrdM3aOOy+FpzS7+8OizA== - -follow-redirects@^1.15.0: - version "1.15.2" - resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.15.2.tgz#b460864144ba63f2681096f274c4e57026da2c13" - integrity sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA== - -follow-redirects@^1.15.4: - version "1.15.5" - resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.15.5.tgz#54d4d6d062c0fa7d9d17feb008461550e3ba8020" - integrity sha512-vSFWUON1B+yAw1VN4xMfxgn5fTUiaOzAJCKBwIIgT/+7CuGy9+r+5gITvP62j3RmaD5Ph65UaERdOSRGUzZtgw== +follow-redirects@^1.15.6: + version "1.15.6" + resolved "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.6.tgz#7f815c0cda4249c74ff09e95ef97c23b5fd0399b" + integrity sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA== for-each@^0.3.3: version "0.3.3" From 0006d998b4391923198051233c3a9b350cd7c9f6 Mon Sep 17 00:00:00 2001 From: Pawan Paudel Date: Fri, 24 May 2024 18:18:15 +0545 Subject: [PATCH 52/60] refactor: Remove token ticker beside token balance in token listing --- src/components/popup/Token.tsx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/components/popup/Token.tsx b/src/components/popup/Token.tsx index 16d97b145..990ee1dac 100644 --- a/src/components/popup/Token.tsx +++ b/src/components/popup/Token.tsx @@ -108,12 +108,12 @@ export default function Token({ onClick, ...props }: Props) { {isMillion ? ( - {props.ao ? props.balance : balance} {props.ticker} + {props.ao ? props.balance : balance} ) : ( - {props.ao ? props.balance : balance} {props.ticker} + {props.ao ? props.balance : balance} )} From f58417f100cc707510d8712e5d7343cce662d2b0 Mon Sep 17 00:00:00 2001 From: nicholas ma Date: Fri, 24 May 2024 14:26:43 -0700 Subject: [PATCH 53/60] fix: added enter key press for add token --- src/routes/auth/token.tsx | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/src/routes/auth/token.tsx b/src/routes/auth/token.tsx index a5933d70e..3373bc60b 100644 --- a/src/routes/auth/token.tsx +++ b/src/routes/auth/token.tsx @@ -162,6 +162,18 @@ export default function Token() { })(); }, [params?.tokenID, state, theme]); + // listen for enter to add + useEffect(() => { + const listener = async (e: KeyboardEvent) => { + if (e.key !== "Enter") return; + await done(); + }; + + window.addEventListener("keydown", listener); + + return () => window.removeEventListener("keydown", listener); + }, [params, done]); + const gateway = useGateway({ startBlock: 0 }); return ( From 4bd482598c3ca6dc9df0c8179edb50759d749368 Mon Sep 17 00:00:00 2001 From: nicholas ma Date: Sun, 26 May 2024 08:50:36 -0700 Subject: [PATCH 54/60] fix: added sub return value --- .../modules/subscription/subscription.background.ts | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/src/api/modules/subscription/subscription.background.ts b/src/api/modules/subscription/subscription.background.ts index 35289022b..9a36c0627 100644 --- a/src/api/modules/subscription/subscription.background.ts +++ b/src/api/modules/subscription/subscription.background.ts @@ -24,7 +24,7 @@ const background: ModuleFunction = async ( isSubscriptionType(subscriptionData); const address = await getActiveAddress(); // check if subsciption exists - const subscriptions = await getSubscriptionData(address); + let subscriptions = await getSubscriptionData(address); if ( subscriptions && @@ -51,6 +51,15 @@ const background: ModuleFunction = async ( subscriptionEndDate: subscriptionData.subscriptionEndDate, applicationIcon: subscriptionData?.applicationIcon }); + + subscriptions = await getSubscriptionData(address); + const subscription = subscriptions.find( + (subscription) => + subscription.arweaveAccountAddress === + subscriptionData.arweaveAccountAddress + ); + + return subscription; }; export default background; From 75b6701d638cb96f5f9e527838909cce89a818cd Mon Sep 17 00:00:00 2001 From: nicholas ma Date: Sun, 26 May 2024 10:20:35 -0700 Subject: [PATCH 55/60] fix: updated theme colors for hardware wallets --- shim.d.ts | 1 + src/components/hardware/HardwareWalletTheme.tsx | 4 +++- src/components/popup/Navigation.tsx | 2 +- src/routes/popup/receive.tsx | 9 +++------ src/routes/popup/send/confirm.tsx | 2 +- 5 files changed, 9 insertions(+), 9 deletions(-) diff --git a/shim.d.ts b/shim.d.ts index 3ccc35b12..1199d2f25 100644 --- a/shim.d.ts +++ b/shim.d.ts @@ -54,6 +54,7 @@ declare module "styled-components" { cardBorder: string; fail: string; cardBackground: string; + primaryBtnHover: string; primaryTextv2: string; } } diff --git a/src/components/hardware/HardwareWalletTheme.tsx b/src/components/hardware/HardwareWalletTheme.tsx index c2cff3493..d3521e825 100644 --- a/src/components/hardware/HardwareWalletTheme.tsx +++ b/src/components/hardware/HardwareWalletTheme.tsx @@ -28,7 +28,9 @@ export default function HardwareWalletTheme({ return { ...theme, - theme: hardwareApiTheme + theme: hardwareApiTheme, + primary: "#9AB8FF", + primaryBtnHover: "#6F93E1" }; } diff --git a/src/components/popup/Navigation.tsx b/src/components/popup/Navigation.tsx index 4e8d8a946..f902ac96d 100644 --- a/src/components/popup/Navigation.tsx +++ b/src/components/popup/Navigation.tsx @@ -83,7 +83,7 @@ export const NavigationBar = () => { const NavigationBarWrapper = styled.div<{ displayTheme: DisplayTheme }>` z-index: 5; - border-top: 2px solid #8e7bea; + border-top: 2px solid ${(props) => props.theme.primary}; position: fixed; bottom: 0; color: white; diff --git a/src/routes/popup/receive.tsx b/src/routes/popup/receive.tsx index 7d71c69ac..69a0b945a 100644 --- a/src/routes/popup/receive.tsx +++ b/src/routes/popup/receive.tsx @@ -16,7 +16,6 @@ import copy from "copy-to-clipboard"; import { useEffect, type MouseEventHandler, useState } from "react"; import { PageType, trackPage } from "~utils/analytics"; import HeadV2 from "~components/popup/HeadV2"; -import { useTheme } from "~utils/theme"; import { Degraded, WarningWrapper } from "./send"; import { WarningIcon } from "~components/popup/Token"; import { useActiveWallet } from "~wallets/hooks"; @@ -34,7 +33,6 @@ export default function Receive() { trackPage(PageType.RECEIVE); }, []); - const theme = useTheme(); const { setToast } = useToasts(); const wallet = useActiveWallet(); @@ -72,7 +70,7 @@ export default function Receive() { )}
- + ` +const QRCodeWrapper = styled.div` display: flex; justify-content: center; align-items: center; - background-color: ${(props) => - props.theme.displayTheme === "light" ? "#7866D3" : "#8E7BEA"}; + background-color: ${(props) => props.theme.primary}; border-radius: 21.44px; padding: 25.83px 0px; `; diff --git a/src/routes/popup/send/confirm.tsx b/src/routes/popup/send/confirm.tsx index 0db62cb44..845fb9898 100644 --- a/src/routes/popup/send/confirm.tsx +++ b/src/routes/popup/send/confirm.tsx @@ -849,7 +849,7 @@ const SectionWrapper = styled.div<{ alternate?: boolean }>` } :not(:last-child) { - border-bottom: 1px solid #ab9aff; + border-bottom: 1px solid ${(props) => props.theme.primary}; } `; From 65687379e17f20f778dca2bbdd3a8d550e4649e4 Mon Sep 17 00:00:00 2001 From: Pawan Paudel Date: Mon, 27 May 2024 16:20:34 +0545 Subject: [PATCH 56/60] refactor: Make wayfinder enabled by default --- src/settings/index.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/settings/index.ts b/src/settings/index.ts index 3de88adea..0c9875773 100644 --- a/src/settings/index.ts +++ b/src/settings/index.ts @@ -75,7 +75,7 @@ const settings: Setting[] = [ icon: CompassIcon, description: "setting_wayfinder_description", type: "boolean", - defaultValue: false + defaultValue: true }), new Setting({ name: "analytics", From c4f677536af852e4f7ed61b080ee4b5e1e0037b7 Mon Sep 17 00:00:00 2001 From: Pawan Paudel Date: Tue, 28 May 2024 16:52:55 +0545 Subject: [PATCH 57/60] fix: Patch issue with Worker to fix connecting keystone --- src/components/hardware/KeystoneButton.tsx | 4 ++++ src/wallets/hardware/hooks.ts | 15 +++++++++++++++ 2 files changed, 19 insertions(+) create mode 100644 src/wallets/hardware/hooks.ts diff --git a/src/components/hardware/KeystoneButton.tsx b/src/components/hardware/KeystoneButton.tsx index 00786c8fe..fee6589ae 100644 --- a/src/components/hardware/KeystoneButton.tsx +++ b/src/components/hardware/KeystoneButton.tsx @@ -3,6 +3,7 @@ import { type KeystoneAccount } from "~wallets/hardware/keystone"; import { addHardwareWallet } from "~wallets/hardware"; +import { usePatchWorker } from "~wallets/hardware/hooks"; import { useScanner } from "@arconnect/keystone-sdk"; import { Alert, @@ -82,6 +83,9 @@ export default function KeystoneButton({ onSuccess }: Props) { cancel(); }); + // Patch Worker + usePatchWorker(); + return ( <> (window.Worker); + + useEffect(() => { + if (window.Worker && !initialWorkerRef.current) { + initialWorkerRef.current = window.Worker; + } + + if (!window.Worker && initialWorkerRef.current) { + window.Worker = initialWorkerRef.current; + } + }, [window.Worker]); +} From 2e8ed5c68531f78a73ca7ffc01dd1c440baa6c3e Mon Sep 17 00:00:00 2001 From: nicholas ma Date: Tue, 28 May 2024 15:29:05 -0700 Subject: [PATCH 58/60] fix: misc package updates --- package.json | 4 +- yarn.lock | 102 ++++++++++++++++++++++++++++++++++++++------------- 2 files changed, 78 insertions(+), 28 deletions(-) diff --git a/package.json b/package.json index 68f2a66d2..2426780a4 100644 --- a/package.json +++ b/package.json @@ -108,7 +108,7 @@ "https-browserify": "^1.0.0", "husky": "^8.0.0", "path-browserify": "^1.0.1", - "plasmo": "0.86.1", + "plasmo": "0.86.3", "prettier": "^2.2.1", "querystring-es3": "^0.2.1", "semantic-release": "^23.0.0", @@ -121,11 +121,9 @@ }, "resolutions": { "arbundles/arweave": "^1.13.0", - "**/axios": ">=0.28.0", "**/msgpackr": ">=1.10.1", "human-crypto-keys/node-forge": "^1.3.1", "human-crypto-keys/crypto-key-composer/node-forge": "^1.3.1", - "@parcel/runtime-js": "2.8.3", "axios": "^1.7.2" } } diff --git a/yarn.lock b/yarn.lock index 4b9f4dd70..ca109d58c 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1447,6 +1447,11 @@ proc-log "^4.0.0" which "^4.0.0" +"@octokit/auth-token@^4.0.0": + version "4.0.0" + resolved "https://registry.yarnpkg.com/@octokit/auth-token/-/auth-token-4.0.0.tgz#40d203ea827b9f17f42a29c6afb93b7745ef80c7" + integrity sha512-tY/msAuJo6ARbK6SPIxZrPBms3xPbfwBrulZe0Wtr/DIY9lje2HeV1uoebShn6mx7SjCHif6EjMvoREj+gZ+SA== + "@octokit/auth-token@^5.0.0": version "5.1.1" resolved "https://registry.yarnpkg.com/@octokit/auth-token/-/auth-token-5.1.1.tgz#3bbfe905111332a17f72d80bd0b51a3e2fa2cf07" @@ -1486,6 +1491,23 @@ "@octokit/types" "^13.0.0" universal-user-agent "^7.0.2" +"@octokit/endpoint@^9.0.1": + version "9.0.5" + resolved "https://registry.yarnpkg.com/@octokit/endpoint/-/endpoint-9.0.5.tgz#e6c0ee684e307614c02fc6ac12274c50da465c44" + integrity sha512-ekqR4/+PCLkEBF6qgj8WqJfvDq65RH85OAgrtnVp1mSxaXF03u2xW/hUdweGS5654IlC0wkNYC18Z50tSYTAFw== + dependencies: + "@octokit/types" "^13.1.0" + universal-user-agent "^6.0.0" + +"@octokit/graphql@^7.1.0": + version "7.1.0" + resolved "https://registry.yarnpkg.com/@octokit/graphql/-/graphql-7.1.0.tgz#9bc1c5de92f026648131f04101cab949eeffe4e0" + integrity sha512-r+oZUH7aMFui1ypZnAvZmn0KSqAUgE1/tUXIWaqUCa1758ts/Jio84GZuzsvUkme98kv0WFY8//n0J1Z+vsIsQ== + dependencies: + "@octokit/request" "^8.3.0" + "@octokit/types" "^13.0.0" + universal-user-agent "^6.0.0" + "@octokit/graphql@^8.0.0": version "8.1.1" resolved "https://registry.yarnpkg.com/@octokit/graphql/-/graphql-8.1.1.tgz#3cacab5f2e55d91c733e3bf481d3a3f8a5f639c4" @@ -1553,7 +1575,7 @@ "@octokit/types" "^13.0.0" bottleneck "^2.15.3" -"@octokit/request-error@^5.0.0": +"@octokit/request-error@^5.0.0", "@octokit/request-error@^5.1.0": version "5.1.0" resolved "https://registry.yarnpkg.com/@octokit/request-error/-/request-error-5.1.0.tgz#ee4138538d08c81a60be3f320cd71063064a3b30" integrity sha512-GETXfE05J0+7H2STzekpKObFe765O5dlAKUTLNGeH+x47z7JjXHfsHKo5z21D/o/IOZTUEI6nyWyR+bZVP/n5Q== @@ -1569,6 +1591,16 @@ dependencies: "@octokit/types" "^13.0.0" +"@octokit/request@^8.3.0", "@octokit/request@^8.3.1": + version "8.4.0" + resolved "https://registry.yarnpkg.com/@octokit/request/-/request-8.4.0.tgz#7f4b7b1daa3d1f48c0977ad8fffa2c18adef8974" + integrity sha512-9Bb014e+m2TgBeEJGEbdplMVWwPmL1FPtggHQRkV+WVsMggPtEkLKPlcVYm/o8xKLkpJ7B+6N8WfQMtDLX2Dpw== + dependencies: + "@octokit/endpoint" "^9.0.1" + "@octokit/request-error" "^5.1.0" + "@octokit/types" "^13.1.0" + universal-user-agent "^6.0.0" + "@octokit/request@^9.0.0": version "9.1.1" resolved "https://registry.yarnpkg.com/@octokit/request/-/request-9.1.1.tgz#e836eb69c0fb4b59b6437af7716ca348a1232a52" @@ -2045,7 +2077,7 @@ "@parcel/plugin" "2.9.3" "@parcel/utils" "2.9.3" -"@parcel/runtime-js@2.8.3", "@parcel/runtime-js@2.9.3": +"@parcel/runtime-js@2.8.3": version "2.8.3" resolved "https://registry.yarnpkg.com/@parcel/runtime-js/-/runtime-js-2.8.3.tgz#0baa4c8fbf77eabce05d01ccc186614968ffc0cd" integrity sha512-IRja0vNKwvMtPgIqkBQh0QtRn0XcxNC8HU1jrgWGRckzu10qJWO+5ULgtOeR4pv9krffmMPqywGXw6l/gvJKYQ== @@ -2054,6 +2086,16 @@ "@parcel/utils" "2.8.3" nullthrows "^1.1.1" +"@parcel/runtime-js@2.9.3": + version "2.9.3" + resolved "https://registry.yarnpkg.com/@parcel/runtime-js/-/runtime-js-2.9.3.tgz#481c4f26705e684809bef097bf2cb75052c2982c" + integrity sha512-EvIy+qXcKnB5qxHhe96zmJpSAViNVXHfQI5RSdZ2a7CPwORwhTI+zPNT9sb7xb/WwFw/WuTTgzT40b41DceU6Q== + dependencies: + "@parcel/diagnostic" "2.9.3" + "@parcel/plugin" "2.9.3" + "@parcel/utils" "2.9.3" + nullthrows "^1.1.1" + "@parcel/runtime-react-refresh@2.9.3": version "2.9.3" resolved "https://registry.yarnpkg.com/@parcel/runtime-react-refresh/-/runtime-react-refresh-2.9.3.tgz#8d82cd4fbcdc228d439bae232eb3c65d36e62872" @@ -2547,17 +2589,17 @@ "@parcel/utils" "2.9.3" nullthrows "1.1.1" -"@plasmohq/parcel-compressor-utf8@0.0.6": - version "0.0.6" - resolved "https://registry.yarnpkg.com/@plasmohq/parcel-compressor-utf8/-/parcel-compressor-utf8-0.0.6.tgz#17ee86d97e997a95b6f894e50c703b8df34164ff" - integrity sha512-dtbZXi2gAHyVhxqxF2SvJtwDOy02QYRjwCJYOFsQR79qwAiuUBaeQ47p++vFrqNX86mo1lUtZniJl63xNQi08w== +"@plasmohq/parcel-compressor-utf8@0.1.0": + version "0.1.0" + resolved "https://registry.yarnpkg.com/@plasmohq/parcel-compressor-utf8/-/parcel-compressor-utf8-0.1.0.tgz#5eb3c3163d0b791a03e08b0fbe5e5bc6656c8c21" + integrity sha512-UxljXY+cUVO0ZdszoQRfQjbRjyWYIhGKCjFD48yOcnbSkOZmS5MPPhKrT79x+PMGSK5T6fUXaDjzqbnMb45MZw== dependencies: "@parcel/plugin" "2.9.3" -"@plasmohq/parcel-config@0.40.6": - version "0.40.6" - resolved "https://registry.yarnpkg.com/@plasmohq/parcel-config/-/parcel-config-0.40.6.tgz#28de897e3ea7d9522d6963caa65bc03138ad6386" - integrity sha512-vHziUFcOa1pGsnEMsbmKNHh/KoiZQV6Fc1Ocw5nzXJv52wKBdF3MMpqAVphyBjhMLDyXUpI72ntNXhGBVVKo0g== +"@plasmohq/parcel-config@0.40.8": + version "0.40.8" + resolved "https://registry.yarnpkg.com/@plasmohq/parcel-config/-/parcel-config-0.40.8.tgz#f21d7fc916a9d3507f9bfd5c35a99413e81a7836" + integrity sha512-xsHPTVr5oQgAlLiEUOsFy52q2lsjo6QsjKANPHKV0OflykOi7QdRwFQbenC6MBpMb833C/5C6VO1sodhseCkgg== dependencies: "@parcel/compressor-raw" "2.9.3" "@parcel/config-default" "2.9.3" @@ -2581,7 +2623,7 @@ "@parcel/transformer-svg-react" "2.9.3" "@parcel/transformer-worklet" "2.9.3" "@plasmohq/parcel-bundler" "0.5.5" - "@plasmohq/parcel-compressor-utf8" "0.0.6" + "@plasmohq/parcel-compressor-utf8" "0.1.0" "@plasmohq/parcel-namer-manifest" "0.3.12" "@plasmohq/parcel-optimizer-encapsulate" "0.0.7" "@plasmohq/parcel-optimizer-es" "0.4.0" @@ -2591,7 +2633,7 @@ "@plasmohq/parcel-runtime" "0.23.1" "@plasmohq/parcel-transformer-inject-env" "0.2.11" "@plasmohq/parcel-transformer-inline-css" "0.3.11" - "@plasmohq/parcel-transformer-manifest" "0.18.0" + "@plasmohq/parcel-transformer-manifest" "0.19.0" "@plasmohq/parcel-transformer-svelte" "0.6.0" "@plasmohq/parcel-transformer-vue" "0.5.0" @@ -2716,10 +2758,10 @@ browserslist "4.22.1" lightningcss "1.21.8" -"@plasmohq/parcel-transformer-manifest@0.18.0": - version "0.18.0" - resolved "https://registry.yarnpkg.com/@plasmohq/parcel-transformer-manifest/-/parcel-transformer-manifest-0.18.0.tgz#882ee29c84403f8797251e83831bdcda984479bb" - integrity sha512-6X6ubo37Ic7u1y3MjY+vt23Gb3ULtOsH1MbKw3jZMiG8nLGXqXRfiHSyNxJWAdpk7N7ASE8dHnZ+5g3E57bldA== +"@plasmohq/parcel-transformer-manifest@0.19.0": + version "0.19.0" + resolved "https://registry.yarnpkg.com/@plasmohq/parcel-transformer-manifest/-/parcel-transformer-manifest-0.19.0.tgz#45c8e3d13c7aed6cbad5ccfe8a956febcdfc4f76" + integrity sha512-cDmca0jPVFVnRQPqCWcsPPwre27/yAGxSF1+JmPVUeXZYMCrg5wdNepRDSw+/dDBO2VmNHh/Tv+Hgj1fLIM8CQ== dependencies: "@mischnic/json-sourcemap" "0.1.0" "@parcel/core" "2.9.3" @@ -4823,10 +4865,10 @@ available-typed-arrays@^1.0.7: dependencies: possible-typed-array-names "^1.0.0" -axios@>=0.28.0, axios@^0.21.1, axios@^1.1.3, axios@^1.6.0, axios@^1.6.7: - version "1.6.8" - resolved "https://registry.yarnpkg.com/axios/-/axios-1.6.8.tgz#66d294951f5d988a00e87a0ffb955316a619ea66" - integrity sha512-v/ZHtJDU39mDpyBoFVkETcd/uNdxrWRrg3bKpOKzXFA6Bvqopts6ALSMU3y6ijYxbw2B+wPrIv46egTzJXCLGQ== +axios@^0.21.1, axios@^1.6.0, axios@^1.6.7, axios@^1.7.2: + version "1.7.2" + resolved "https://registry.yarnpkg.com/axios/-/axios-1.7.2.tgz#b625db8a7051fbea61c35a3cbb3a1daa7b9c7621" + integrity sha512-2A8QhOMrbomlDuiLeK9XibIBzuHeRcqqNOHp0Cyp5EoJ1IFDh+XZH3A6BkXtv0K4gFGCI0Y4BM7B1wOEi0Rmgw== dependencies: follow-redirects "^1.15.6" form-data "^4.0.0" @@ -4915,6 +4957,11 @@ bech32@1.1.4: resolved "https://registry.yarnpkg.com/bech32/-/bech32-1.1.4.tgz#e38c9f37bf179b8eb16ae3a772b40c356d4832e9" integrity sha512-s0IrSOzLlbvX7yp4WBfPITzpAU8sqQcpsmwXDiKwrG4r491vwCO/XpejasRNl0piBMe/DvP4Tz0mIS/X1DPJBQ== +before-after-hook@^2.2.0: + version "2.2.3" + resolved "https://registry.yarnpkg.com/before-after-hook/-/before-after-hook-2.2.3.tgz#c51e809c81a4e354084422b9b26bad88249c517c" + integrity sha512-NzUnlZexiaH/46WDhANlyR2bXRopNg4F/zuSA3OpZnllCUgRaOF2znDioDWrmbNVsuZk6l9pMquQB38cfBZwkQ== + before-after-hook@^3.0.2: version "3.0.2" resolved "https://registry.yarnpkg.com/before-after-hook/-/before-after-hook-3.0.2.tgz#d5665a5fa8b62294a5aa0a499f933f4a1016195d" @@ -9655,10 +9702,10 @@ pkg-dir@^4.2.0: dependencies: find-up "^4.0.0" -plasmo@0.86.1: - version "0.86.1" - resolved "https://registry.yarnpkg.com/plasmo/-/plasmo-0.86.1.tgz#f2d0fa5bf4f393b51eed8be0b08aa50472088bc1" - integrity sha512-6qDWnQ8TVGLmGIWWOoXR0upCuNW6LnlrLEQ0b0EMRoApomps9q77908hNKJWbDlz5rqXOhcpecaVTQ0mx8lzCw== +plasmo@0.86.3: + version "0.86.3" + resolved "https://registry.yarnpkg.com/plasmo/-/plasmo-0.86.3.tgz#f0605a3493539c484d97a9d8b15e2dfd2e0f6059" + integrity sha512-Vja9TWYthEkUK7sM1HwPyj+vBDst4qtfIzTn1Z/UGWS4wFzAddKjGGzVzj731Qxrv5m3R7fCzlA5izz/ID36Hw== dependencies: "@expo/spawn-async" "1.7.2" "@parcel/core" "2.9.3" @@ -9666,7 +9713,7 @@ plasmo@0.86.1: "@parcel/package-manager" "2.9.3" "@parcel/watcher" "2.2.0" "@plasmohq/init" "0.7.0" - "@plasmohq/parcel-config" "0.40.6" + "@plasmohq/parcel-config" "0.40.8" "@plasmohq/parcel-core" "0.1.8" buffer "6.0.3" chalk "5.3.0" @@ -11550,6 +11597,11 @@ unique-string@^3.0.0: dependencies: crypto-random-string "^4.0.0" +universal-user-agent@^6.0.0: + version "6.0.1" + resolved "https://registry.yarnpkg.com/universal-user-agent/-/universal-user-agent-6.0.1.tgz#15f20f55da3c930c57bddbf1734c6654d5fd35aa" + integrity sha512-yCzhz6FN2wU1NiiQRogkTQszlQSlpWaw8SvVegAc+bDxbzHgh1vX8uIe8OYyMH6DwH+sdTJsgMl36+mSMdRJIQ== + universal-user-agent@^7.0.0, universal-user-agent@^7.0.2: version "7.0.2" resolved "https://registry.yarnpkg.com/universal-user-agent/-/universal-user-agent-7.0.2.tgz#52e7d0e9b3dc4df06cc33cb2b9fd79041a54827e" From 5a15c6033e84b8335ba39516cd4aebb4d7f2b47d Mon Sep 17 00:00:00 2001 From: nicholas ma Date: Tue, 28 May 2024 15:42:36 -0700 Subject: [PATCH 59/60] fix: pr updated typo and copy --- assets/_locales/en/messages.json | 2 +- src/api/modules/subscription/index.ts | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/assets/_locales/en/messages.json b/assets/_locales/en/messages.json index 1ba97b873..ca5f8ebf3 100644 --- a/assets/_locales/en/messages.json +++ b/assets/_locales/en/messages.json @@ -1775,7 +1775,7 @@ "description": "subscription title" }, "subscribe_description": { - "message": "APPNAME wants to set up a Period subscription", + "message": "APPNAME requests to set up a subscription with recurring payments", "description": "subscribe description" }, "subscription_description": { diff --git a/src/api/modules/subscription/index.ts b/src/api/modules/subscription/index.ts index 9abd067d1..5b966bfe6 100644 --- a/src/api/modules/subscription/index.ts +++ b/src/api/modules/subscription/index.ts @@ -3,9 +3,9 @@ import type { ModuleProperties } from "~api/module"; const permissions: PermissionType[] = ["ACCESS_ADDRESS"]; -const subsciptionModule: ModuleProperties = { +const subscriptionModule: ModuleProperties = { functionName: "subscription", permissions }; -export default subsciptionModule; +export default subscriptionModule; From 33c7d79897ebc9b7625d0f11b4a6f0ccbc55c767 Mon Sep 17 00:00:00 2001 From: nicholas ma Date: Tue, 28 May 2024 16:04:34 -0700 Subject: [PATCH 60/60] fix: disabled subs for hardware wallets --- .../modules/subscription/subscription.background.ts | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/src/api/modules/subscription/subscription.background.ts b/src/api/modules/subscription/subscription.background.ts index 35289022b..426f84427 100644 --- a/src/api/modules/subscription/subscription.background.ts +++ b/src/api/modules/subscription/subscription.background.ts @@ -1,10 +1,9 @@ import { isAddress, - isPermission, - isAppInfo, + isLocalWallet, isSubscriptionType } from "~utils/assertions"; -import { getActiveAddress } from "~wallets"; +import { getActiveAddress, getActiveKeyfile, getWallets } from "~wallets"; import type { ModuleFunction } from "~api/background"; import authenticate from "../connect/auth"; import { getSubscriptionData } from "~subscriptions"; @@ -15,14 +14,18 @@ import { const background: ModuleFunction = async ( appData, - subscriptionData: SubscriptionData, - type?: unknown + subscriptionData: SubscriptionData ) => { // validate input isAddress(subscriptionData.arweaveAccountAddress); isSubscriptionType(subscriptionData); const address = await getActiveAddress(); + + // if is hardware wallet + const decryptedWallet = await getActiveKeyfile(); + isLocalWallet(decryptedWallet); + // check if subsciption exists const subscriptions = await getSubscriptionData(address);