From ed2aeb395c63a546c53df3b5490d5f24c21680b9 Mon Sep 17 00:00:00 2001 From: Franjo Mindek Date: Fri, 8 Aug 2025 15:47:26 +0200 Subject: [PATCH 01/17] wip --- template/app/main.wasp | 6 +- template/app/src/analytics/stats.ts | 8 +- template/app/src/payment/CheckoutPage.tsx | 54 --------- .../app/src/payment/CheckoutResultPage.tsx | 51 ++++++++ ...aymentDetails.ts => userPaymentDetails.ts} | 0 template/app/src/payment/paymentProcessor.ts | 22 ++-- template/app/src/payment/plans.ts | 17 +-- .../app/src/payment/stripe/checkoutUtils.ts | 43 +++---- .../src/payment/stripe/paymentProcessor.ts | 65 ++++++---- .../app/src/payment/stripe/stripeClient.ts | 2 +- ...aymentDetails.ts => userPaymentDetails.ts} | 16 ++- template/app/src/payment/stripe/webhook.ts | 112 ++++++++++-------- .../app/src/payment/stripe/webhookPayload.ts | 4 +- template/app/src/shared/utils.ts | 3 +- 14 files changed, 221 insertions(+), 182 deletions(-) delete mode 100644 template/app/src/payment/CheckoutPage.tsx create mode 100644 template/app/src/payment/CheckoutResultPage.tsx rename template/app/src/payment/lemonSqueezy/{paymentDetails.ts => userPaymentDetails.ts} (100%) rename template/app/src/payment/stripe/{paymentDetails.ts => userPaymentDetails.ts} (72%) diff --git a/template/app/main.wasp b/template/app/main.wasp index d1b3ea365..8a6f5f759 100644 --- a/template/app/main.wasp +++ b/template/app/main.wasp @@ -190,10 +190,10 @@ page PricingPage { component: import PricingPage from "@src/payment/PricingPage" } -route CheckoutRoute { path: "/checkout", to: CheckoutPage } -page CheckoutPage { +route CheckoutResultRoute { path: "/checkout", to: CheckoutResultPage } +page CheckoutResultPage { authRequired: true, - component: import Checkout from "@src/payment/CheckoutPage" + component: import CheckoutResultPage from "@src/payment/CheckoutResultPage" } query getCustomerPortalUrl { diff --git a/template/app/src/analytics/stats.ts b/template/app/src/analytics/stats.ts index 57e73986b..0a00b6b25 100644 --- a/template/app/src/analytics/stats.ts +++ b/template/app/src/analytics/stats.ts @@ -1,8 +1,8 @@ +import { listOrders } from '@lemonsqueezy/lemonsqueezy.js'; +import Stripe from 'stripe'; import { type DailyStats } from 'wasp/entities'; import { type DailyStatsJob } from 'wasp/server/jobs'; -import Stripe from 'stripe'; -import { stripe } from '../payment/stripe/stripeClient'; -import { listOrders } from '@lemonsqueezy/lemonsqueezy.js'; +import { stripeClient } from '../payment/stripe/stripeClient'; import { getDailyPageViews, getSources } from './providers/plausibleAnalyticsUtils'; // import { getDailyPageViews, getSources } from './providers/googleAnalyticsUtils'; import { paymentProcessor } from '../payment/paymentProcessor'; @@ -144,7 +144,7 @@ async function fetchTotalStripeRevenue() { let hasMore = true; while (hasMore) { - const balanceTransactions = await stripe.balanceTransactions.list(params); + const balanceTransactions = await stripeClient.balanceTransactions.list(params); for (const transaction of balanceTransactions.data) { if (transaction.type === 'charge') { diff --git a/template/app/src/payment/CheckoutPage.tsx b/template/app/src/payment/CheckoutPage.tsx deleted file mode 100644 index df4ff22c8..000000000 --- a/template/app/src/payment/CheckoutPage.tsx +++ /dev/null @@ -1,54 +0,0 @@ -import { useEffect, useState } from 'react'; -import { useNavigate, useLocation } from 'react-router-dom'; - -export default function CheckoutPage() { - const [paymentStatus, setPaymentStatus] = useState('loading'); - - const navigate = useNavigate(); - const location = useLocation(); - - useEffect(() => { - function delayedRedirect() { - return setTimeout(() => { - navigate('/account'); - }, 4000); - } - - const queryParams = new URLSearchParams(location.search); - const isSuccess = queryParams.get('success'); - const isCanceled = queryParams.get('canceled'); - - if (isCanceled) { - setPaymentStatus('canceled'); - } else if (isSuccess) { - setPaymentStatus('paid'); - } else { - navigate('/account'); - } - delayedRedirect(); - return () => { - clearTimeout(delayedRedirect()); - }; - }, [location]); - - return ( -
-
-
-

- {paymentStatus === 'paid' - ? '🥳 Payment Successful!' - : paymentStatus === 'canceled' - ? '😢 Payment Canceled' - : paymentStatus === 'error' && '🙄 Payment Error'} -

- {paymentStatus !== 'loading' && ( - - You are being redirected to your account page...
-
- )} -
-
-
- ); -} diff --git a/template/app/src/payment/CheckoutResultPage.tsx b/template/app/src/payment/CheckoutResultPage.tsx new file mode 100644 index 000000000..b6987142f --- /dev/null +++ b/template/app/src/payment/CheckoutResultPage.tsx @@ -0,0 +1,51 @@ +import { useEffect, useState } from 'react'; +import { useLocation, useNavigate } from 'react-router-dom'; + +type PaymentStatus = 'loading' | 'paid' | 'canceled'; + +const ACCOUNT_PAGE_REDIRECT_DELAY_MS = 4000; + +export default function CheckoutResultPage() { + const [paymentStatus, setPaymentStatus] = useState('loading'); + const { search } = useLocation(); + const navigate = useNavigate(); + + useEffect(() => { + const queryParams = new URLSearchParams(search); + const isSuccess = queryParams.get('success'); + const isCanceled = queryParams.get('canceled'); + + if (isCanceled) { + setPaymentStatus('canceled'); + } else if (isSuccess) { + setPaymentStatus('paid'); + } else { + navigate('/account'); + } + + const accountPageRedirectTimeoutId = setTimeout(() => { + navigate('/account'); + }, ACCOUNT_PAGE_REDIRECT_DELAY_MS); + + return () => { + clearTimeout(accountPageRedirectTimeoutId); + }; + }, [search]); + + return ( +
+
+

+ {paymentStatus === 'paid' && '🥳 Payment Successful!'} + {paymentStatus === 'canceled' && '😢 Payment Canceled'} +

+ {paymentStatus !== 'loading' && ( + + You are being redirected to your account page in {ACCOUNT_PAGE_REDIRECT_DELAY_MS / 1000}{' '} + seconds...
+
+ )} +
+
+ ); +} diff --git a/template/app/src/payment/lemonSqueezy/paymentDetails.ts b/template/app/src/payment/lemonSqueezy/userPaymentDetails.ts similarity index 100% rename from template/app/src/payment/lemonSqueezy/paymentDetails.ts rename to template/app/src/payment/lemonSqueezy/userPaymentDetails.ts diff --git a/template/app/src/payment/paymentProcessor.ts b/template/app/src/payment/paymentProcessor.ts index 9049e7214..76603b98a 100644 --- a/template/app/src/payment/paymentProcessor.ts +++ b/template/app/src/payment/paymentProcessor.ts @@ -1,9 +1,8 @@ -import type { PaymentPlan } from './plans'; -import type { PaymentsWebhook } from 'wasp/server/api'; -import type { MiddlewareConfigFn } from 'wasp/server'; import { PrismaClient } from '@prisma/client'; +import type { MiddlewareConfigFn } from 'wasp/server'; +import type { PaymentsWebhook } from 'wasp/server/api'; +import type { PaymentPlan } from './plans'; import { stripePaymentProcessor } from './stripe/paymentProcessor'; -import { lemonSqueezyPaymentProcessor } from './lemonSqueezy/paymentProcessor'; export interface CreateCheckoutSessionArgs { userId: string; @@ -11,21 +10,24 @@ export interface CreateCheckoutSessionArgs { paymentPlan: PaymentPlan; prismaUserDelegate: PrismaClient['user']; } -export interface FetchCustomerPortalUrlArgs { - userId: string; - prismaUserDelegate: PrismaClient['user']; -}; + +export interface FetchCustomerPortalUrlArgs { + userId: string; + prismaUserDelegate: PrismaClient['user']; +} export interface PaymentProcessor { id: 'stripe' | 'lemonsqueezy'; - createCheckoutSession: (args: CreateCheckoutSessionArgs) => Promise<{ session: { id: string; url: string }; }>; + createCheckoutSession: ( + args: CreateCheckoutSessionArgs + ) => Promise<{ session: { id: string; url: string } }>; fetchCustomerPortalUrl: (args: FetchCustomerPortalUrlArgs) => Promise; webhook: PaymentsWebhook; webhookMiddlewareConfigFn: MiddlewareConfigFn; } /** - * Choose which payment processor you'd like to use, then delete the + * Choose which payment processor you'd like to use, then delete the * other payment processor code that you're not using from `/src/payment` */ // export const paymentProcessor: PaymentProcessor = lemonSqueezyPaymentProcessor; diff --git a/template/app/src/payment/plans.ts b/template/app/src/payment/plans.ts index 85d6a1ecc..7948eb590 100644 --- a/template/app/src/payment/plans.ts +++ b/template/app/src/payment/plans.ts @@ -46,14 +46,17 @@ export function prettyPaymentPlanName(planId: PaymentPlanId): string { return planToName[planId]; } +export function getSubscriptionPaymentPlanIds(): PaymentPlanId[] { + return Object.values(PaymentPlanId).filter((planId) => paymentPlans[planId].effect.kind === 'subscription'); +} + export function parsePaymentPlanId(planId: string): PaymentPlanId { - if ((Object.values(PaymentPlanId) as string[]).includes(planId)) { - return planId as PaymentPlanId; - } else { - throw new Error(`Invalid PaymentPlanId: ${planId}`); - } + assertPaymentPlanId(planId); + return planId; } -export function getSubscriptionPaymentPlanIds(): PaymentPlanId[] { - return Object.values(PaymentPlanId).filter((planId) => paymentPlans[planId].effect.kind === 'subscription'); +function assertPaymentPlanId(planId: string): asserts planId is PaymentPlanId { + if (!Object.values(PaymentPlanId).includes(planId as PaymentPlanId)) { + throw new Error(`Invalid PaymentPlanId: ${planId}`); + } } diff --git a/template/app/src/payment/stripe/checkoutUtils.ts b/template/app/src/payment/stripe/checkoutUtils.ts index 0ab9ad54e..1cf150ab9 100644 --- a/template/app/src/payment/stripe/checkoutUtils.ts +++ b/template/app/src/payment/stripe/checkoutUtils.ts @@ -1,27 +1,28 @@ -import type { StripeMode } from './paymentProcessor'; - import Stripe from 'stripe'; -import { stripe } from './stripeClient'; +import { stripeClient } from './stripeClient'; // WASP_WEB_CLIENT_URL will be set up by Wasp when deploying to production: https://wasp.sh/docs/deploying -const DOMAIN = process.env.WASP_WEB_CLIENT_URL || 'http://localhost:3000'; +const CLIENT_BASE_URL = process.env.WASP_WEB_CLIENT_URL || 'http://localhost:3000'; -export async function fetchStripeCustomer(customerEmail: string) { - let customer: Stripe.Customer; +/** + * Returns a Stripe customer for the given User email, creating a customer if none exist. + * Implements email uniqueness logic since Stripe doesn't enforce unique emails. + */ +export async function ensureStripeCustomer(userEmail: string): Promise { try { - const stripeCustomers = await stripe.customers.list({ - email: customerEmail, + const stripeCustomers = await stripeClient.customers.list({ + email: userEmail, }); - if (!stripeCustomers.data.length) { - console.log('creating customer'); - customer = await stripe.customers.create({ - email: customerEmail, + + if (stripeCustomers.data.length === 0) { + console.log('Creating a new Stripe customer'); + return stripeClient.customers.create({ + email: userEmail, }); } else { - console.log('using existing customer'); - customer = stripeCustomers.data[0]; + console.log('Using an existing Stripe customer'); + return stripeCustomers.data[0]; } - return customer; } catch (error) { console.error(error); throw error; @@ -31,16 +32,17 @@ export async function fetchStripeCustomer(customerEmail: string) { interface CreateStripeCheckoutSessionParams { priceId: string; customerId: string; - mode: StripeMode; + mode: Stripe.Checkout.Session.Mode; } export async function createStripeCheckoutSession({ priceId, customerId, mode, -}: CreateStripeCheckoutSessionParams) { +}: CreateStripeCheckoutSessionParams): Promise { try { - return await stripe.checkout.sessions.create({ + return await stripeClient.checkout.sessions.create({ + customer: customerId, line_items: [ { price: priceId, @@ -48,14 +50,13 @@ export async function createStripeCheckoutSession({ }, ], mode: mode, - success_url: `${DOMAIN}/checkout?success=true`, - cancel_url: `${DOMAIN}/checkout?canceled=true`, + success_url: `${CLIENT_BASE_URL}/checkout?success=true`, + cancel_url: `${CLIENT_BASE_URL}/checkout?canceled=true`, automatic_tax: { enabled: true }, allow_promotion_codes: true, customer_update: { address: 'auto', }, - customer: customerId, }); } catch (error) { console.error(error); diff --git a/template/app/src/payment/stripe/paymentProcessor.ts b/template/app/src/payment/stripe/paymentProcessor.ts index 4055d8827..1ebc90435 100644 --- a/template/app/src/payment/stripe/paymentProcessor.ts +++ b/template/app/src/payment/stripe/paymentProcessor.ts @@ -1,34 +1,49 @@ -import type { PaymentPlanEffect } from '../plans'; -import type { CreateCheckoutSessionArgs, FetchCustomerPortalUrlArgs, PaymentProcessor } from '../paymentProcessor' -import { fetchStripeCustomer, createStripeCheckoutSession } from './checkoutUtils'; +import Stripe from 'stripe'; import { requireNodeEnvVar } from '../../server/utils'; -import { stripeWebhook, stripeMiddlewareConfigFn } from './webhook'; - -export type StripeMode = 'subscription' | 'payment'; +import type { + CreateCheckoutSessionArgs, + FetchCustomerPortalUrlArgs, + PaymentProcessor, +} from '../paymentProcessor'; +import type { PaymentPlanEffect } from '../plans'; +import { createStripeCheckoutSession, ensureStripeCustomer } from './checkoutUtils'; +import { stripeMiddlewareConfigFn, stripeWebhook } from './webhook'; export const stripePaymentProcessor: PaymentProcessor = { id: 'stripe', - createCheckoutSession: async ({ userId, userEmail, paymentPlan, prismaUserDelegate }: CreateCheckoutSessionArgs) => { - const customer = await fetchStripeCustomer(userEmail); - const stripeSession = await createStripeCheckoutSession({ - priceId: paymentPlan.getPaymentProcessorPlanId(), - customerId: customer.id, - mode: paymentPlanEffectToStripeMode(paymentPlan.effect), - }); + createCheckoutSession: async ({ + userId, + userEmail, + paymentPlan, + prismaUserDelegate, + }: CreateCheckoutSessionArgs) => { + const customer = await ensureStripeCustomer(userEmail); + await prismaUserDelegate.update({ where: { - id: userId + id: userId, }, data: { - paymentProcessorUserId: customer.id - } - }) - if (!stripeSession.url) throw new Error('Error creating Stripe Checkout Session'); - const session = { - url: stripeSession.url, - id: stripeSession.id, + paymentProcessorUserId: customer.id, + }, + }); + + const stripeSession = await createStripeCheckoutSession({ + customerId: customer.id, + priceId: paymentPlan.getPaymentProcessorPlanId(), + mode: paymentPlanEffectToStripeCheckoutSessionMode(paymentPlan.effect), + }); + + if (!stripeSession.url) { + throw new Error('Stripe checkout session URL is missing. Checkout session might not be active.'); + } + + return { + session: { + url: stripeSession.url, + id: stripeSession.id, + }, }; - return { session }; }, fetchCustomerPortalUrl: async (_args: FetchCustomerPortalUrlArgs) => requireNodeEnvVar('STRIPE_CUSTOMER_PORTAL_URL'), @@ -36,8 +51,10 @@ export const stripePaymentProcessor: PaymentProcessor = { webhookMiddlewareConfigFn: stripeMiddlewareConfigFn, }; -function paymentPlanEffectToStripeMode(planEffect: PaymentPlanEffect): StripeMode { - const effectToMode: Record = { +function paymentPlanEffectToStripeCheckoutSessionMode( + planEffect: PaymentPlanEffect +): Stripe.Checkout.Session.Mode { + const effectToMode: Record = { subscription: 'subscription', credits: 'payment', }; diff --git a/template/app/src/payment/stripe/stripeClient.ts b/template/app/src/payment/stripe/stripeClient.ts index 1c1acaf2e..318fc10fa 100644 --- a/template/app/src/payment/stripe/stripeClient.ts +++ b/template/app/src/payment/stripe/stripeClient.ts @@ -1,7 +1,7 @@ import Stripe from 'stripe'; import { requireNodeEnvVar } from '../../server/utils'; -export const stripe = new Stripe(requireNodeEnvVar('STRIPE_API_KEY'), { +export const stripeClient = new Stripe(requireNodeEnvVar('STRIPE_API_KEY'), { // NOTE: // API version below should ideally match the API version in your Stripe dashboard. // If that is not the case, you will most likely want to (up/down)grade the `stripe` diff --git a/template/app/src/payment/stripe/paymentDetails.ts b/template/app/src/payment/stripe/userPaymentDetails.ts similarity index 72% rename from template/app/src/payment/stripe/paymentDetails.ts rename to template/app/src/payment/stripe/userPaymentDetails.ts index 96325ff02..43dc07d62 100644 --- a/template/app/src/payment/stripe/paymentDetails.ts +++ b/template/app/src/payment/stripe/userPaymentDetails.ts @@ -1,10 +1,16 @@ +import { PrismaClient } from '@prisma/client'; import type { SubscriptionStatus } from '../plans'; import { PaymentPlanId } from '../plans'; -import { PrismaClient } from '@prisma/client'; export const updateUserStripePaymentDetails = async ( - { userStripeId, subscriptionPlan, subscriptionStatus, datePaid, numOfCreditsPurchased }: { - userStripeId: string; + { + stripeCustomerId, + subscriptionPlan, + subscriptionStatus, + datePaid, + numOfCreditsPurchased, + }: { + stripeCustomerId: string; subscriptionPlan?: PaymentPlanId; subscriptionStatus?: SubscriptionStatus; numOfCreditsPurchased?: number; @@ -14,10 +20,10 @@ export const updateUserStripePaymentDetails = async ( ) => { return userDelegate.update({ where: { - paymentProcessorUserId: userStripeId + paymentProcessorUserId: stripeCustomerId, }, data: { - paymentProcessorUserId: userStripeId, + paymentProcessorUserId: stripeCustomerId, subscriptionPlan, subscriptionStatus, datePaid, diff --git a/template/app/src/payment/stripe/webhook.ts b/template/app/src/payment/stripe/webhook.ts index 638c45041..e27398740 100644 --- a/template/app/src/payment/stripe/webhook.ts +++ b/template/app/src/payment/stripe/webhook.ts @@ -1,56 +1,56 @@ -import { type MiddlewareConfigFn, HttpError } from 'wasp/server'; -import { type PaymentsWebhook } from 'wasp/server/api'; import { type PrismaClient } from '@prisma/client'; import express from 'express'; import type { Stripe } from 'stripe'; -import { stripe } from './stripeClient'; -import { paymentPlans, PaymentPlanId, SubscriptionStatus, type PaymentPlanEffect } from '../plans'; -import { updateUserStripePaymentDetails } from './paymentDetails'; +import { HttpError, type MiddlewareConfigFn } from 'wasp/server'; +import { type PaymentsWebhook } from 'wasp/server/api'; import { emailSender } from 'wasp/server/email'; -import { assertUnreachable } from '../../shared/utils'; import { requireNodeEnvVar } from '../../server/utils'; +import { assertUnreachable } from '../../shared/utils'; +import { UnhandledWebhookEventError } from '../errors'; +import { PaymentPlanId, paymentPlans, SubscriptionStatus, type PaymentPlanEffect } from '../plans'; +import { stripeClient } from './stripeClient'; +import { updateUserStripePaymentDetails } from './userPaymentDetails'; import { - parseWebhookPayload, type InvoicePaidData, type SessionCompletedData, - type SubscriptionDeletedData, type SubscriptionUpdatedData, } from './webhookPayload'; -import { UnhandledWebhookEventError } from '../errors'; export const stripeWebhook: PaymentsWebhook = async (request, response, context) => { + const prismaUserDelegate = context.entities.User; try { - const rawStripeEvent = constructStripeEvent(request); - const { eventName, data } = await parseWebhookPayload(rawStripeEvent); - const prismaUserDelegate = context.entities.User; - switch (eventName) { + const stripeEvent = constructStripeEvent(request); + + switch (stripeEvent.type) { case 'checkout.session.completed': - await handleCheckoutSessionCompleted(data, prismaUserDelegate); + await handleCheckoutSessionCompleted(stripeEvent, prismaUserDelegate); break; case 'invoice.paid': - await handleInvoicePaid(data, prismaUserDelegate); + await handleInvoicePaid(stripeEvent, prismaUserDelegate); break; case 'customer.subscription.updated': - await handleCustomerSubscriptionUpdated(data, prismaUserDelegate); + await handleCustomerSubscriptionUpdated(stripeEvent, prismaUserDelegate); break; case 'customer.subscription.deleted': - await handleCustomerSubscriptionDeleted(data, prismaUserDelegate); + await handleCustomerSubscriptionDeleted(stripeEvent, prismaUserDelegate); break; default: // If you'd like to handle more events, you can add more cases above. - // When deploying your app, you configure your webhook in the Stripe dashboard to only send the events that you're - // handling above and that are necessary for the functioning of your app. See: https://docs.opensaas.sh/guides/deploying/#setting-up-your-stripe-webhook - // In development, it is likely that you will receive other events that you are not handling, and that's fine. These can be ignored without any issues. - assertUnreachable(eventName); + // When deploying your app, you configure your webhook in the Stripe dashboard + // to only send the events that you're handling above. + // See: https://docs.opensaas.sh/guides/deploying/#setting-up-your-stripe-webhook + // In development, it is likely that you will receive other events that you are not handling. + // These can be ignored without any issues. + assertUnreachable(); } - return response.json({ received: true }); // Stripe expects a 200 response to acknowledge receipt of the webhook + return response.status(204).send(); // any 2xx HTTP response is fine } catch (err) { if (err instanceof UnhandledWebhookEventError) { - console.error(err.message); + console.error('Unhandled Stripe webhook event: ', err.message); return response.status(422).json({ error: err.message }); } - console.error('Webhook error:', err); + console.error('Stripe webhook error:', err); if (err instanceof HttpError) { return response.status(err.statusCode).json({ error: err.message }); } else { @@ -60,21 +60,25 @@ export const stripeWebhook: PaymentsWebhook = async (request, response, context) }; function constructStripeEvent(request: express.Request): Stripe.Event { + const stripeWebhookSecret = requireNodeEnvVar('STRIPE_WEBHOOK_SECRET'); + const stripeSignature = request.headers['stripe-signature']; + if (!stripeSignature) { + throw new HttpError(400, 'Stripe webhook signature not provided'); + } + try { - const secret = requireNodeEnvVar('STRIPE_WEBHOOK_SECRET'); - const sig = request.headers['stripe-signature']; - if (!sig) { - throw new HttpError(400, 'Stripe webhook signature not provided'); - } - return stripe.webhooks.constructEvent(request.body, sig, secret); + return stripeClient.webhooks.constructEvent(request.body, stripeSignature, stripeWebhookSecret); } catch (err) { - throw new HttpError(500, 'Error constructing Stripe webhook event'); + throw new HttpError(400, 'Error constructing Stripe webhook event'); } } +/** + * Stripe requires the raw request to construct the event successfully. + * That is we we delete the Wasp's default 'express.json' middleware + * and replace it with 'express.raw' middleware. + */ export const stripeMiddlewareConfigFn: MiddlewareConfigFn = (middlewareConfig) => { - // We need to delete the default 'express.json' middleware and replace it with 'express.raw' middleware - // because webhook data in the body of the request as raw JSON, not as JSON in the body of the request. middlewareConfig.delete('express.json'); middlewareConfig.set('express.raw', express.raw({ type: 'application/json' })); return middlewareConfig; @@ -85,10 +89,12 @@ export const stripeMiddlewareConfigFn: MiddlewareConfigFn = (middlewareConfig) = // which are synchronous, checkout session completed could potentially result in a pending payment. // If so, use the checkout.session.async_payment_succeeded event to confirm the payment. async function handleCheckoutSessionCompleted( - session: SessionCompletedData, + event: Stripe.CheckoutSessionCompletedEvent, prismaUserDelegate: PrismaClient['user'] ) { + const session = event.data.object; const isSuccessfulOneTimePayment = session.mode === 'payment' && session.payment_status === 'paid'; + if (isSuccessfulOneTimePayment) { await saveSuccessfulOneTimePayment(session, prismaUserDelegate); } @@ -98,40 +104,47 @@ async function saveSuccessfulOneTimePayment( session: SessionCompletedData, prismaUserDelegate: PrismaClient['user'] ) { - const userStripeId = session.customer; + const stripeCustomerId = session.customer; const lineItems = await getCheckoutLineItemsBySessionId(session.id); const lineItemPriceId = extractPriceId(lineItems); const planId = getPlanIdByPriceId(lineItemPriceId); const plan = paymentPlans[planId]; const { numOfCreditsPurchased } = getPlanEffectPaymentDetails({ planId, planEffect: plan.effect }); return updateUserStripePaymentDetails( - { userStripeId, numOfCreditsPurchased, datePaid: new Date() }, + { stripeCustomerId, numOfCreditsPurchased, datePaid: new Date() }, prismaUserDelegate ); } // This is called when a subscription is successfully purchased or renewed and payment succeeds. -// Invoices are not created for one-time payments, so we handle them above. -async function handleInvoicePaid(invoice: InvoicePaidData, prismaUserDelegate: PrismaClient['user']) { +// Invoices are not created for one-time payments, so we handle them below. +async function handleInvoicePaid(event: Stripe.InvoicePaidEvent, prismaUserDelegate: PrismaClient['user']) { + const invoice = event.data.object; await saveActiveSubscription(invoice, prismaUserDelegate); } -async function saveActiveSubscription(invoice: InvoicePaidData, prismaUserDelegate: PrismaClient['user']) { - const userStripeId = invoice.customer; +async function saveActiveSubscription(invoice: Stripe.Invoice, prismaUserDelegate: PrismaClient['user']) { + const stripeCustomerId = invoice.customer.id; const datePaid = new Date(invoice.period_start * 1000); const priceId = extractPriceId(invoice.lines); const subscriptionPlan = getPlanIdByPriceId(priceId); return updateUserStripePaymentDetails( - { userStripeId, datePaid, subscriptionPlan, subscriptionStatus: SubscriptionStatus.Active }, + { + stripeCustomerId, + datePaid, + subscriptionPlan, + subscriptionStatus: SubscriptionStatus.Active, + }, prismaUserDelegate ); } async function handleCustomerSubscriptionUpdated( - subscription: SubscriptionUpdatedData, + event: Stripe.CustomerSubscriptionUpdatedEvent, prismaUserDelegate: PrismaClient['user'] ) { - const userStripeId = subscription.customer; + const subscription = event.data.object; + const stripeCustomerId = subscription.customer; let subscriptionStatus: SubscriptionStatus | undefined; const priceId = extractPriceId(subscription.items); const subscriptionPlan = getPlanIdByPriceId(priceId); @@ -147,7 +160,7 @@ async function handleCustomerSubscriptionUpdated( } if (subscriptionStatus) { const user = await updateUserStripePaymentDetails( - { userStripeId, subscriptionPlan, subscriptionStatus }, + { stripeCustomerId, subscriptionPlan, subscriptionStatus }, prismaUserDelegate ); if (subscription.cancel_at_period_end) { @@ -165,12 +178,13 @@ async function handleCustomerSubscriptionUpdated( } async function handleCustomerSubscriptionDeleted( - subscription: SubscriptionDeletedData, + event: Stripe.CustomerSubscriptionDeletedEvent, prismaUserDelegate: PrismaClient['user'] ) { - const userStripeId = subscription.customer; + const subscription = event.data.object; + const stripeCustomerId = subscription.customer; return updateUserStripePaymentDetails( - { userStripeId, subscriptionStatus: SubscriptionStatus.Deleted }, + { stripeCustomerId, subscriptionStatus: SubscriptionStatus.Deleted }, prismaUserDelegate ); } @@ -203,7 +217,7 @@ function extractPriceId( } async function getCheckoutLineItemsBySessionId(sessionId: string) { - const { line_items } = await stripe.checkout.sessions.retrieve(sessionId, { + const { line_items } = await stripeClient.checkout.sessions.retrieve(sessionId, { expand: ['line_items'], }); if (!line_items) { @@ -238,6 +252,6 @@ function getPlanEffectPaymentDetails({ case 'credits': return { subscriptionPlan: undefined, numOfCreditsPurchased: planEffect.amount }; default: - assertUnreachable(planEffect); + assertUnreachable(); } } diff --git a/template/app/src/payment/stripe/webhookPayload.ts b/template/app/src/payment/stripe/webhookPayload.ts index 02257781e..d9f6686ca 100644 --- a/template/app/src/payment/stripe/webhookPayload.ts +++ b/template/app/src/payment/stripe/webhookPayload.ts @@ -1,7 +1,7 @@ -import * as z from 'zod'; import { Stripe } from 'stripe'; -import { UnhandledWebhookEventError } from '../errors'; import { HttpError } from 'wasp/server'; +import * as z from 'zod'; +import { UnhandledWebhookEventError } from '../errors'; export async function parseWebhookPayload(rawStripeEvent: Stripe.Event) { try { diff --git a/template/app/src/shared/utils.ts b/template/app/src/shared/utils.ts index 7a5180e50..407677d1e 100644 --- a/template/app/src/shared/utils.ts +++ b/template/app/src/shared/utils.ts @@ -2,8 +2,7 @@ * Used purely to help compiler check for exhaustiveness in switch statements, * will never execute. See https://stackoverflow.com/a/39419171. */ -// eslint-disable-next-line @typescript-eslint/no-unused-vars -export function assertUnreachable(x: never): never { +export function assertUnreachable(_?: never): never { throw Error('This code should be unreachable'); } From cd4592481c820fd0321f1480c4a49e35e5534d6c Mon Sep 17 00:00:00 2001 From: Franjo Mindek Date: Fri, 8 Aug 2025 17:58:36 +0200 Subject: [PATCH 02/17] wip 2 --- .../src/payment/stripe/userPaymentDetails.ts | 6 +- template/app/src/payment/stripe/webhook.ts | 225 ++++++++++-------- 2 files changed, 131 insertions(+), 100 deletions(-) diff --git a/template/app/src/payment/stripe/userPaymentDetails.ts b/template/app/src/payment/stripe/userPaymentDetails.ts index 43dc07d62..024232e00 100644 --- a/template/app/src/payment/stripe/userPaymentDetails.ts +++ b/template/app/src/payment/stripe/userPaymentDetails.ts @@ -2,7 +2,7 @@ import { PrismaClient } from '@prisma/client'; import type { SubscriptionStatus } from '../plans'; import { PaymentPlanId } from '../plans'; -export const updateUserStripePaymentDetails = async ( +export async function updateUserStripePaymentDetails( { stripeCustomerId, subscriptionPlan, @@ -17,7 +17,7 @@ export const updateUserStripePaymentDetails = async ( datePaid?: Date; }, userDelegate: PrismaClient['user'] -) => { +) { return userDelegate.update({ where: { paymentProcessorUserId: stripeCustomerId, @@ -30,4 +30,4 @@ export const updateUserStripePaymentDetails = async ( credits: numOfCreditsPurchased !== undefined ? { increment: numOfCreditsPurchased } : undefined, }, }); -}; +} diff --git a/template/app/src/payment/stripe/webhook.ts b/template/app/src/payment/stripe/webhook.ts index e27398740..62ef05887 100644 --- a/template/app/src/payment/stripe/webhook.ts +++ b/template/app/src/payment/stripe/webhook.ts @@ -10,11 +10,6 @@ import { UnhandledWebhookEventError } from '../errors'; import { PaymentPlanId, paymentPlans, SubscriptionStatus, type PaymentPlanEffect } from '../plans'; import { stripeClient } from './stripeClient'; import { updateUserStripePaymentDetails } from './userPaymentDetails'; -import { - type InvoicePaidData, - type SessionCompletedData, - type SubscriptionUpdatedData, -} from './webhookPayload'; export const stripeWebhook: PaymentsWebhook = async (request, response, context) => { const prismaUserDelegate = context.entities.User; @@ -84,55 +79,57 @@ export const stripeMiddlewareConfigFn: MiddlewareConfigFn = (middlewareConfig) = return middlewareConfig; }; -// Here we only update the user's payment details, and confirm credits because Stripe does not send invoices for one-time payments. +// Here we only update the user's payment details, +// and confirm credits because Stripe does not send invoices for one-time payments. // NOTE: If you're accepting async payment methods like bank transfers or SEPA and not just card payments // which are synchronous, checkout session completed could potentially result in a pending payment. // If so, use the checkout.session.async_payment_succeeded event to confirm the payment. async function handleCheckoutSessionCompleted( event: Stripe.CheckoutSessionCompletedEvent, prismaUserDelegate: PrismaClient['user'] -) { - const session = event.data.object; - const isSuccessfulOneTimePayment = session.mode === 'payment' && session.payment_status === 'paid'; +): Promise { + const checkoutSession = event.data.object; + const isSuccessfulOneTimePayment = + checkoutSession.mode === 'payment' && checkoutSession.payment_status === 'paid'; if (isSuccessfulOneTimePayment) { - await saveSuccessfulOneTimePayment(session, prismaUserDelegate); + await saveSuccessfulOneTimePayment(checkoutSession, prismaUserDelegate); } } async function saveSuccessfulOneTimePayment( - session: SessionCompletedData, + checkoutSession: Stripe.Checkout.Session, prismaUserDelegate: PrismaClient['user'] -) { - const stripeCustomerId = session.customer; - const lineItems = await getCheckoutLineItemsBySessionId(session.id); - const lineItemPriceId = extractPriceId(lineItems); - const planId = getPlanIdByPriceId(lineItemPriceId); +): Promise { + const customerId = getCustomerId(checkoutSession.customer); + + const lineItems = await getLineItemsByCheckoutSessionId(checkoutSession.id); + const planId = getItemsPlanId(lineItems.data); const plan = paymentPlans[planId]; + const { numOfCreditsPurchased } = getPlanEffectPaymentDetails({ planId, planEffect: plan.effect }); - return updateUserStripePaymentDetails( - { stripeCustomerId, numOfCreditsPurchased, datePaid: new Date() }, + updateUserStripePaymentDetails( + { stripeCustomerId: customerId, numOfCreditsPurchased, datePaid: new Date() }, prismaUserDelegate ); } // This is called when a subscription is successfully purchased or renewed and payment succeeds. -// Invoices are not created for one-time payments, so we handle them below. -async function handleInvoicePaid(event: Stripe.InvoicePaidEvent, prismaUserDelegate: PrismaClient['user']) { +// Invoices are not created for one-time payments, so we handle them in `handleCheckoutSessionCompleted`. +async function handleInvoicePaid( + event: Stripe.InvoicePaidEvent, + prismaUserDelegate: PrismaClient['user'] +): Promise { const invoice = event.data.object; - await saveActiveSubscription(invoice, prismaUserDelegate); -} + const customerId = getCustomerId(invoice.customer); + const datePaid = getInvoicePaidAtDate(invoice); + const planId = getItemsPlanId(invoice.lines.data); -async function saveActiveSubscription(invoice: Stripe.Invoice, prismaUserDelegate: PrismaClient['user']) { - const stripeCustomerId = invoice.customer.id; - const datePaid = new Date(invoice.period_start * 1000); - const priceId = extractPriceId(invoice.lines); - const subscriptionPlan = getPlanIdByPriceId(priceId); - return updateUserStripePaymentDetails( + updateUserStripePaymentDetails( { - stripeCustomerId, + stripeCustomerId: customerId, datePaid, - subscriptionPlan, + subscriptionPlan: planId, subscriptionStatus: SubscriptionStatus.Active, }, prismaUserDelegate @@ -142,81 +139,58 @@ async function saveActiveSubscription(invoice: Stripe.Invoice, prismaUserDelegat async function handleCustomerSubscriptionUpdated( event: Stripe.CustomerSubscriptionUpdatedEvent, prismaUserDelegate: PrismaClient['user'] -) { +): Promise { const subscription = event.data.object; - const stripeCustomerId = subscription.customer; - let subscriptionStatus: SubscriptionStatus | undefined; - const priceId = extractPriceId(subscription.items); - const subscriptionPlan = getPlanIdByPriceId(priceId); - // There are other subscription statuses, such as `trialing` that we are not handling and simply ignore - // If you'd like to handle more statuses, you can add more cases above. Make sure to update the `SubscriptionStatus` type in `payment/plans.ts` as well. + // There are other subscription statuses, such as `trialing` that we are not handling. + // If you'd like to handle more statuses, you can add more cases below. + // Make sure to update the `SubscriptionStatus` type in `payment/plans.ts` as well. + let subscriptionStatus: SubscriptionStatus | undefined; if (subscription.status === SubscriptionStatus.Active) { - subscriptionStatus = subscription.cancel_at_period_end - ? SubscriptionStatus.CancelAtPeriodEnd - : SubscriptionStatus.Active; + subscriptionStatus = SubscriptionStatus.Active; + if (subscription.cancel_at_period_end) { + subscriptionStatus = SubscriptionStatus.CancelAtPeriodEnd; + } } else if (subscription.status === SubscriptionStatus.PastDue) { subscriptionStatus = SubscriptionStatus.PastDue; + } else { + return; } - if (subscriptionStatus) { - const user = await updateUserStripePaymentDetails( - { stripeCustomerId, subscriptionPlan, subscriptionStatus }, - prismaUserDelegate - ); - if (subscription.cancel_at_period_end) { - if (user.email) { - await emailSender.send({ - to: user.email, - subject: 'We hate to see you go :(', - text: 'We hate to see you go. Here is a sweet offer...', - html: 'We hate to see you go. Here is a sweet offer...', - }); - } + + const customerId = getCustomerId(subscription.customer); + const planId = getItemsPlanId(subscription.items.data); + + const user = await updateUserStripePaymentDetails( + { stripeCustomerId: customerId, subscriptionPlan: planId, subscriptionStatus }, + prismaUserDelegate + ); + + if (subscription.cancel_at_period_end) { + if (user.email) { + await emailSender.send({ + to: user.email, + subject: 'We hate to see you go :(', + text: 'We hate to see you go. Here is a sweet offer...', + html: 'We hate to see you go. Here is a sweet offer...', + }); } - return user; } } async function handleCustomerSubscriptionDeleted( event: Stripe.CustomerSubscriptionDeletedEvent, prismaUserDelegate: PrismaClient['user'] -) { +): Promise { const subscription = event.data.object; - const stripeCustomerId = subscription.customer; - return updateUserStripePaymentDetails( - { stripeCustomerId, subscriptionStatus: SubscriptionStatus.Deleted }, + const customerId = getCustomerId(subscription.customer); + + updateUserStripePaymentDetails( + { stripeCustomerId: customerId, subscriptionStatus: SubscriptionStatus.Deleted }, prismaUserDelegate ); } -// We only expect one line item, but if you set up a product with multiple prices, you should change this function to handle them. -function extractPriceId( - items: Stripe.ApiList | SubscriptionUpdatedData['items'] | InvoicePaidData['lines'] -): string { - if (items.data.length === 0) { - throw new HttpError(400, 'No items in stripe event object'); - } - if (items.data.length > 1) { - throw new HttpError(400, 'More than one item in stripe event object'); - } - const item = items.data[0]; - - // The 'price' property is found on SubscriptionItem and LineItem. - if ('price' in item && item.price?.id) { - return item.price.id; - } - - // The 'pricing' property is found on InvoiceLineItem. - if ('pricing' in item) { - const priceId = item.pricing?.price_details?.price; - if (priceId) { - return priceId; - } - } - throw new HttpError(400, 'Unable to extract price id from item'); -} - -async function getCheckoutLineItemsBySessionId(sessionId: string) { +async function getLineItemsByCheckoutSessionId(sessionId: string) { const { line_items } = await stripeClient.checkout.sessions.retrieve(sessionId, { expand: ['line_items'], }); @@ -226,16 +200,6 @@ async function getCheckoutLineItemsBySessionId(sessionId: string) { return line_items; } -function getPlanIdByPriceId(priceId: string): PaymentPlanId { - const planId = Object.values(PaymentPlanId).find( - (planId) => paymentPlans[planId].getPaymentProcessorPlanId() === priceId - ); - if (!planId) { - throw new Error(`No plan with Stripe price id ${priceId}`); - } - return planId; -} - function getPlanEffectPaymentDetails({ planId, planEffect, @@ -255,3 +219,70 @@ function getPlanEffectPaymentDetails({ assertUnreachable(); } } + +function getCustomerId( + customer: string | Stripe.Customer | Stripe.DeletedCustomer | null +): Stripe.Customer['id'] { + if (!customer) { + throw new Error('Customer is missing'); + } else if (typeof customer === 'string') { + return customer; + } else { + return customer.id; + } +} + +function getInvoicePaidAtDate(invoice: Stripe.Invoice): Date { + if (!invoice.status_transitions.paid_at) { + throw new Error('Invoice has not been paid yet'); + } + + // Stripe returns timestamps in seconds (Unix time), + // so we multiply by 1000 to convert to milliseconds. + return new Date(invoice.status_transitions.paid_at * 1000); +} + +// TODO: refactor below + +function getItemsPlanId( + items: Stripe.InvoiceLineItem[] | Stripe.SubscriptionItem[] | Stripe.LineItem[] +): PaymentPlanId { + return getPlanIdByPriceId(getItemsPriceId(items)); +} + +// We only expect one line item, but if you set up a product with multiple prices, you should change this function to handle them. +function getItemsPriceId( + items: Stripe.InvoiceLineItem[] | Stripe.SubscriptionItem[] | Stripe.LineItem[] +): Stripe.Price['id'] { + if (items.length === 0) { + throw new HttpError(400, 'No items in stripe event object'); + } else if (items.length > 1) { + throw new HttpError(400, 'More than one item in stripe event object'); + } + + // TODO: check below + const item = items[0]; + + if ('price' in item && item.price?.id) { + return item.price.id; + } + + if ('pricing' in item) { + const priceId = item.pricing?.price_details?.price; + if (priceId) { + return priceId; + } + } + + throw new Error('Unable to extract plan id from item'); +} + +function getPlanIdByPriceId(priceId: string): PaymentPlanId { + const planId = Object.values(PaymentPlanId).find( + (planId) => paymentPlans[planId].getPaymentProcessorPlanId() === priceId + ); + if (!planId) { + throw new Error(`No plan with Stripe price id ${priceId}`); + } + return planId; +} From feeb45722d108dc5954fef2a405a570a92ffea07 Mon Sep 17 00:00:00 2001 From: Franjo Mindek Date: Sun, 10 Aug 2025 21:28:48 +0200 Subject: [PATCH 03/17] simplify stripe logic --- template/app/.env.server.example | 6 +- .../app/src/payment/lemonSqueezy/webhook.ts | 14 +- template/app/src/payment/plans.ts | 24 ++- .../app/src/payment/stripe/checkoutUtils.ts | 3 + .../src/payment/stripe/userPaymentDetails.ts | 60 +++++-- template/app/src/payment/stripe/webhook.ts | 149 ++++++------------ .../app/src/payment/stripe/webhookPayload.ts | 108 ------------- template/app/src/user/AccountPage.tsx | 6 +- 8 files changed, 118 insertions(+), 252 deletions(-) delete mode 100644 template/app/src/payment/stripe/webhookPayload.ts diff --git a/template/app/.env.server.example b/template/app/.env.server.example index 65d02b9e1..f11623d85 100644 --- a/template/app/.env.server.example +++ b/template/app/.env.server.example @@ -19,9 +19,9 @@ LEMONSQUEEZY_WEBHOOK_SECRET=my-webhook-secret # If using Stripe, go to https://dashboard.stripe.com/test/products and click on + Add Product # If using Lemon Squeezy, go to https://app.lemonsqueezy.com/products and create new products and variants -PAYMENTS_HOBBY_SUBSCRIPTION_PLAN_ID=012345 -PAYMENTS_PRO_SUBSCRIPTION_PLAN_ID=012345 -PAYMENTS_CREDITS_10_PLAN_ID=012345 +PAYMENTS_HOBBY_SUBSCRIPTION_PRICE_ID=012345 +PAYMENTS_PRO_SUBSCRIPTION_PRICE_ID=012345 +PAYMENTS_CREDITS_10_PRICE_ID=012345 # set this as a comma-separated list of emails you want to give admin privileges to upon registeration ADMIN_EMAILS=me@example.com,you@example.com,them@example.com diff --git a/template/app/src/payment/lemonSqueezy/webhook.ts b/template/app/src/payment/lemonSqueezy/webhook.ts index 6454282ab..d22a6ae71 100644 --- a/template/app/src/payment/lemonSqueezy/webhook.ts +++ b/template/app/src/payment/lemonSqueezy/webhook.ts @@ -1,15 +1,15 @@ -import { type MiddlewareConfigFn, HttpError } from 'wasp/server'; -import { type PaymentsWebhook } from 'wasp/server/api'; -import { type PrismaClient } from '@prisma/client'; -import express from 'express'; -import { paymentPlans, PaymentPlanId, SubscriptionStatus } from '../plans'; -import { updateUserLemonSqueezyPaymentDetails } from './paymentDetails'; import { getCustomer } from '@lemonsqueezy/lemonsqueezy.js'; +import { type PrismaClient } from '@prisma/client'; import crypto from 'crypto'; +import express from 'express'; +import { HttpError, type MiddlewareConfigFn } from 'wasp/server'; +import { type PaymentsWebhook } from 'wasp/server/api'; import { requireNodeEnvVar } from '../../server/utils'; -import { parseWebhookPayload, type OrderData, type SubscriptionData } from './webhookPayload'; import { assertUnreachable } from '../../shared/utils'; import { UnhandledWebhookEventError } from '../errors'; +import { PaymentPlanId, paymentPlans, SubscriptionStatus } from '../plans'; +import { updateUserLemonSqueezyPaymentDetails } from './userPaymentDetails'; +import { parseWebhookPayload, type OrderData, type SubscriptionData } from './webhookPayload'; export const lemonSqueezyWebhook: PaymentsWebhook = async (request, response, context) => { try { diff --git a/template/app/src/payment/plans.ts b/template/app/src/payment/plans.ts index 7948eb590..1fe1d06d3 100644 --- a/template/app/src/payment/plans.ts +++ b/template/app/src/payment/plans.ts @@ -14,28 +14,31 @@ export enum PaymentPlanId { } export interface PaymentPlan { - // Returns the id under which this payment plan is identified on your payment processor. - // E.g. this might be price id on Stripe, or variant id on LemonSqueezy. + /** + * Returns the id under which this payment plan is identified on your payment processor. + * + * E.g. this might be price id on Stripe, or variant id on LemonSqueezy. + */ getPaymentProcessorPlanId: () => string; effect: PaymentPlanEffect; } export type PaymentPlanEffect = { kind: 'subscription' } | { kind: 'credits'; amount: number }; -export const paymentPlans: Record = { +export const paymentPlans = { [PaymentPlanId.Hobby]: { - getPaymentProcessorPlanId: () => requireNodeEnvVar('PAYMENTS_HOBBY_SUBSCRIPTION_PLAN_ID'), + getPaymentProcessorPlanId: () => requireNodeEnvVar('PAYMENTS_HOBBY_SUBSCRIPTION_PRICE_ID'), effect: { kind: 'subscription' }, }, [PaymentPlanId.Pro]: { - getPaymentProcessorPlanId: () => requireNodeEnvVar('PAYMENTS_PRO_SUBSCRIPTION_PLAN_ID'), + getPaymentProcessorPlanId: () => requireNodeEnvVar('PAYMENTS_PRO_SUBSCRIPTION_PRICE_ID'), effect: { kind: 'subscription' }, }, [PaymentPlanId.Credits10]: { - getPaymentProcessorPlanId: () => requireNodeEnvVar('PAYMENTS_CREDITS_10_PLAN_ID'), + getPaymentProcessorPlanId: () => requireNodeEnvVar('PAYMENTS_CREDITS_10_PRICE_ID'), effect: { kind: 'credits', amount: 10 }, }, -}; +} as const satisfies Record; export function prettyPaymentPlanName(planId: PaymentPlanId): string { const planToName: Record = { @@ -50,12 +53,7 @@ export function getSubscriptionPaymentPlanIds(): PaymentPlanId[] { return Object.values(PaymentPlanId).filter((planId) => paymentPlans[planId].effect.kind === 'subscription'); } -export function parsePaymentPlanId(planId: string): PaymentPlanId { - assertPaymentPlanId(planId); - return planId; -} - -function assertPaymentPlanId(planId: string): asserts planId is PaymentPlanId { +export function assertPaymentPlanId(planId: string): asserts planId is PaymentPlanId { if (!Object.values(PaymentPlanId).includes(planId as PaymentPlanId)) { throw new Error(`Invalid PaymentPlanId: ${planId}`); } diff --git a/template/app/src/payment/stripe/checkoutUtils.ts b/template/app/src/payment/stripe/checkoutUtils.ts index 1cf150ab9..c5ea51bcf 100644 --- a/template/app/src/payment/stripe/checkoutUtils.ts +++ b/template/app/src/payment/stripe/checkoutUtils.ts @@ -57,6 +57,9 @@ export async function createStripeCheckoutSession({ customer_update: { address: 'auto', }, + invoice_creation: { + enabled: true, + }, }); } catch (error) { console.error(error); diff --git a/template/app/src/payment/stripe/userPaymentDetails.ts b/template/app/src/payment/stripe/userPaymentDetails.ts index 024232e00..489dcbb48 100644 --- a/template/app/src/payment/stripe/userPaymentDetails.ts +++ b/template/app/src/payment/stripe/userPaymentDetails.ts @@ -1,33 +1,59 @@ import { PrismaClient } from '@prisma/client'; +import Stripe from 'stripe'; import type { SubscriptionStatus } from '../plans'; import { PaymentPlanId } from '../plans'; export async function updateUserStripePaymentDetails( - { - stripeCustomerId, - subscriptionPlan, - subscriptionStatus, - datePaid, - numOfCreditsPurchased, - }: { - stripeCustomerId: string; - subscriptionPlan?: PaymentPlanId; - subscriptionStatus?: SubscriptionStatus; - numOfCreditsPurchased?: number; - datePaid?: Date; - }, + paymentDetails: UpdateUserStripeOneTimePaymentDetails | UpdateUserStripeSubscriptionDetails, + userDelegate: PrismaClient['user'] +) { + if ('numOfCreditsPurchased' in paymentDetails) { + return updateUserStripeOneTimePaymentDetails(paymentDetails, userDelegate); + } else { + return updateUserStripeSubscriptionDetails(paymentDetails, userDelegate); + } +} + +interface UpdateUserStripeOneTimePaymentDetails { + customerId: Stripe.Customer['id']; + datePaid: Date; + numOfCreditsPurchased: number; +} + +function updateUserStripeOneTimePaymentDetails( + { customerId, datePaid, numOfCreditsPurchased }: UpdateUserStripeOneTimePaymentDetails, + userDelegate: PrismaClient['user'] +) { + return userDelegate.update({ + where: { + paymentProcessorUserId: customerId, + }, + data: { + datePaid, + credits: { increment: numOfCreditsPurchased }, + }, + }); +} + +interface UpdateUserStripeSubscriptionDetails { + customerId: Stripe.Customer['id']; + subscriptionStatus: SubscriptionStatus; + paymentPlanId?: PaymentPlanId; + datePaid?: Date; +} + +function updateUserStripeSubscriptionDetails( + { customerId, paymentPlanId, subscriptionStatus, datePaid }: UpdateUserStripeSubscriptionDetails, userDelegate: PrismaClient['user'] ) { return userDelegate.update({ where: { - paymentProcessorUserId: stripeCustomerId, + paymentProcessorUserId: customerId, }, data: { - paymentProcessorUserId: stripeCustomerId, - subscriptionPlan, + subscriptionPlan: paymentPlanId, subscriptionStatus, datePaid, - credits: numOfCreditsPurchased !== undefined ? { increment: numOfCreditsPurchased } : undefined, }, }); } diff --git a/template/app/src/payment/stripe/webhook.ts b/template/app/src/payment/stripe/webhook.ts index 62ef05887..c2ce9a171 100644 --- a/template/app/src/payment/stripe/webhook.ts +++ b/template/app/src/payment/stripe/webhook.ts @@ -7,7 +7,7 @@ import { emailSender } from 'wasp/server/email'; import { requireNodeEnvVar } from '../../server/utils'; import { assertUnreachable } from '../../shared/utils'; import { UnhandledWebhookEventError } from '../errors'; -import { PaymentPlanId, paymentPlans, SubscriptionStatus, type PaymentPlanEffect } from '../plans'; +import { PaymentPlanId, paymentPlans, SubscriptionStatus } from '../plans'; import { stripeClient } from './stripeClient'; import { updateUserStripePaymentDetails } from './userPaymentDetails'; @@ -17,9 +17,6 @@ export const stripeWebhook: PaymentsWebhook = async (request, response, context) const stripeEvent = constructStripeEvent(request); switch (stripeEvent.type) { - case 'checkout.session.completed': - await handleCheckoutSessionCompleted(stripeEvent, prismaUserDelegate); - break; case 'invoice.paid': await handleInvoicePaid(stripeEvent, prismaUserDelegate); break; @@ -79,61 +76,44 @@ export const stripeMiddlewareConfigFn: MiddlewareConfigFn = (middlewareConfig) = return middlewareConfig; }; -// Here we only update the user's payment details, -// and confirm credits because Stripe does not send invoices for one-time payments. -// NOTE: If you're accepting async payment methods like bank transfers or SEPA and not just card payments -// which are synchronous, checkout session completed could potentially result in a pending payment. -// If so, use the checkout.session.async_payment_succeeded event to confirm the payment. -async function handleCheckoutSessionCompleted( - event: Stripe.CheckoutSessionCompletedEvent, - prismaUserDelegate: PrismaClient['user'] -): Promise { - const checkoutSession = event.data.object; - const isSuccessfulOneTimePayment = - checkoutSession.mode === 'payment' && checkoutSession.payment_status === 'paid'; - - if (isSuccessfulOneTimePayment) { - await saveSuccessfulOneTimePayment(checkoutSession, prismaUserDelegate); - } -} - -async function saveSuccessfulOneTimePayment( - checkoutSession: Stripe.Checkout.Session, - prismaUserDelegate: PrismaClient['user'] -): Promise { - const customerId = getCustomerId(checkoutSession.customer); - - const lineItems = await getLineItemsByCheckoutSessionId(checkoutSession.id); - const planId = getItemsPlanId(lineItems.data); - const plan = paymentPlans[planId]; - - const { numOfCreditsPurchased } = getPlanEffectPaymentDetails({ planId, planEffect: plan.effect }); - updateUserStripePaymentDetails( - { stripeCustomerId: customerId, numOfCreditsPurchased, datePaid: new Date() }, - prismaUserDelegate - ); -} - -// This is called when a subscription is successfully purchased or renewed and payment succeeds. -// Invoices are not created for one-time payments, so we handle them in `handleCheckoutSessionCompleted`. +/** + * We create invoice both for subscriptions and one-time payments. + * So we can handle all payment scenarios in a unified way. + * + * Also provides one-time payment invoices inside of the customer portal. + */ async function handleInvoicePaid( event: Stripe.InvoicePaidEvent, prismaUserDelegate: PrismaClient['user'] ): Promise { const invoice = event.data.object; + console.log(JSON.stringify(invoice, null, 2)); const customerId = getCustomerId(invoice.customer); const datePaid = getInvoicePaidAtDate(invoice); - const planId = getItemsPlanId(invoice.lines.data); - - updateUserStripePaymentDetails( - { - stripeCustomerId: customerId, - datePaid, - subscriptionPlan: planId, - subscriptionStatus: SubscriptionStatus.Active, - }, - prismaUserDelegate - ); + const priceId = getItemsPriceId(invoice.lines.data); + const paymentPlanId = getPaymentPlanIdByPriceId(priceId); + + if (priceId === paymentPlans.credits10.getPaymentProcessorPlanId()) { + updateUserStripePaymentDetails( + { customerId, numOfCreditsPurchased: paymentPlans.credits10.effect.amount, datePaid }, + prismaUserDelegate + ); + } else if ( + priceId === paymentPlans.pro.getPaymentProcessorPlanId() || + priceId === paymentPlans.hobby.getPaymentProcessorPlanId() + ) { + updateUserStripePaymentDetails( + { + customerId, + datePaid, + paymentPlanId, + subscriptionStatus: SubscriptionStatus.Active, + }, + prismaUserDelegate + ); + } else { + assertUnreachable(); + } } async function handleCustomerSubscriptionUpdated( @@ -158,10 +138,11 @@ async function handleCustomerSubscriptionUpdated( } const customerId = getCustomerId(subscription.customer); - const planId = getItemsPlanId(subscription.items.data); + const priceId = getItemsPriceId(subscription.items.data); + const paymentPlanId = getPaymentPlanIdByPriceId(priceId); const user = await updateUserStripePaymentDetails( - { stripeCustomerId: customerId, subscriptionPlan: planId, subscriptionStatus }, + { customerId, paymentPlanId, subscriptionStatus }, prismaUserDelegate ); @@ -185,41 +166,11 @@ async function handleCustomerSubscriptionDeleted( const customerId = getCustomerId(subscription.customer); updateUserStripePaymentDetails( - { stripeCustomerId: customerId, subscriptionStatus: SubscriptionStatus.Deleted }, + { customerId, subscriptionStatus: SubscriptionStatus.Deleted }, prismaUserDelegate ); } -async function getLineItemsByCheckoutSessionId(sessionId: string) { - const { line_items } = await stripeClient.checkout.sessions.retrieve(sessionId, { - expand: ['line_items'], - }); - if (!line_items) { - throw new HttpError(400, 'No line items found in checkout session'); - } - return line_items; -} - -function getPlanEffectPaymentDetails({ - planId, - planEffect, -}: { - planId: PaymentPlanId; - planEffect: PaymentPlanEffect; -}): { - subscriptionPlan: PaymentPlanId | undefined; - numOfCreditsPurchased: number | undefined; -} { - switch (planEffect.kind) { - case 'subscription': - return { subscriptionPlan: planId, numOfCreditsPurchased: undefined }; - case 'credits': - return { subscriptionPlan: undefined, numOfCreditsPurchased: planEffect.amount }; - default: - assertUnreachable(); - } -} - function getCustomerId( customer: string | Stripe.Customer | Stripe.DeletedCustomer | null ): Stripe.Customer['id'] { @@ -242,31 +193,25 @@ function getInvoicePaidAtDate(invoice: Stripe.Invoice): Date { return new Date(invoice.status_transitions.paid_at * 1000); } -// TODO: refactor below - -function getItemsPlanId( - items: Stripe.InvoiceLineItem[] | Stripe.SubscriptionItem[] | Stripe.LineItem[] -): PaymentPlanId { - return getPlanIdByPriceId(getItemsPriceId(items)); -} - -// We only expect one line item, but if you set up a product with multiple prices, you should change this function to handle them. -function getItemsPriceId( - items: Stripe.InvoiceLineItem[] | Stripe.SubscriptionItem[] | Stripe.LineItem[] -): Stripe.Price['id'] { +/** + * We only expect one line item, but if you set up a product with multiple prices, you should change this function to handle them. + */ +function getItemsPriceId(items: Stripe.InvoiceLineItem[] | Stripe.SubscriptionItem[]): Stripe.Price['id'] { if (items.length === 0) { throw new HttpError(400, 'No items in stripe event object'); - } else if (items.length > 1) { + } + if (items.length > 1) { throw new HttpError(400, 'More than one item in stripe event object'); } - // TODO: check below const item = items[0]; + // SubscriptionItem if ('price' in item && item.price?.id) { return item.price.id; } + // InvoiceLineItem if ('pricing' in item) { const priceId = item.pricing?.price_details?.price; if (priceId) { @@ -274,15 +219,15 @@ function getItemsPriceId( } } - throw new Error('Unable to extract plan id from item'); + throw new Error('Unable to extract price id from items'); } -function getPlanIdByPriceId(priceId: string): PaymentPlanId { +function getPaymentPlanIdByPriceId(priceId: string): PaymentPlanId { const planId = Object.values(PaymentPlanId).find( (planId) => paymentPlans[planId].getPaymentProcessorPlanId() === priceId ); if (!planId) { - throw new Error(`No plan with Stripe price id ${priceId}`); + throw new Error(`No payment plan with Stripe price id ${priceId}`); } return planId; } diff --git a/template/app/src/payment/stripe/webhookPayload.ts b/template/app/src/payment/stripe/webhookPayload.ts deleted file mode 100644 index d9f6686ca..000000000 --- a/template/app/src/payment/stripe/webhookPayload.ts +++ /dev/null @@ -1,108 +0,0 @@ -import { Stripe } from 'stripe'; -import { HttpError } from 'wasp/server'; -import * as z from 'zod'; -import { UnhandledWebhookEventError } from '../errors'; - -export async function parseWebhookPayload(rawStripeEvent: Stripe.Event) { - try { - const event = await genericStripeEventSchema.parseAsync(rawStripeEvent); - switch (event.type) { - case 'checkout.session.completed': - const session = await sessionCompletedDataSchema.parseAsync(event.data.object); - return { eventName: event.type, data: session }; - case 'invoice.paid': - const invoice = await invoicePaidDataSchema.parseAsync(event.data.object); - return { eventName: event.type, data: invoice }; - case 'customer.subscription.updated': - const updatedSubscription = await subscriptionUpdatedDataSchema.parseAsync(event.data.object); - return { eventName: event.type, data: updatedSubscription }; - case 'customer.subscription.deleted': - const deletedSubscription = await subscriptionDeletedDataSchema.parseAsync(event.data.object); - return { eventName: event.type, data: deletedSubscription }; - default: - // If you'd like to handle more events, you can add more cases above. - throw new UnhandledWebhookEventError(event.type); - } - } catch (e: unknown) { - if (e instanceof UnhandledWebhookEventError) { - throw e; - } else { - console.error(e); - throw new HttpError(400, 'Error parsing Stripe event object'); - } - } -} - -/** - * This is a subtype of - * @type import('stripe').Stripe.Event - */ -const genericStripeEventSchema = z.object({ - type: z.string(), - data: z.object({ - object: z.unknown(), - }), -}); - -/** - * This is a subtype of - * @type import('stripe').Stripe.Checkout.Session - */ -const sessionCompletedDataSchema = z.object({ - id: z.string(), - customer: z.string(), - payment_status: z.enum(['paid', 'unpaid', 'no_payment_required']), - mode: z.enum(['payment', 'subscription']), -}); - -/** - * This is a subtype of - * @type import('stripe').Stripe.Invoice - */ -const invoicePaidDataSchema = z.object({ - id: z.string(), - customer: z.string(), - period_start: z.number(), - lines: z.object({ - data: z.array( - z.object({ - pricing: z.object({ price_details: z.object({ price: z.string() }) }), - }) - ), - }), -}); - -/** - * This is a subtype of - * @type import('stripe').Stripe.Subscription - */ -const subscriptionUpdatedDataSchema = z.object({ - customer: z.string(), - status: z.string(), - cancel_at_period_end: z.boolean(), - items: z.object({ - data: z.array( - z.object({ - price: z.object({ - id: z.string(), - }), - }) - ), - }), -}); - -/** - * This is a subtype of - * @type import('stripe').Stripe.Subscription - */ -const subscriptionDeletedDataSchema = z.object({ - customer: z.string(), -}); - -export type SessionCompletedData = z.infer; - -export type InvoicePaidData = z.infer; - -export type SubscriptionUpdatedData = z.infer; - -export type SubscriptionDeletedData = z.infer; diff --git a/template/app/src/user/AccountPage.tsx b/template/app/src/user/AccountPage.tsx index dc5b34452..6e965d4a3 100644 --- a/template/app/src/user/AccountPage.tsx +++ b/template/app/src/user/AccountPage.tsx @@ -4,7 +4,7 @@ import type { User } from 'wasp/entities'; import { Button } from '../components/ui/button'; import { Card, CardContent, CardHeader, CardTitle } from '../components/ui/card'; import { Separator } from '../components/ui/separator'; -import { SubscriptionStatus, parsePaymentPlanId, prettyPaymentPlanName } from '../payment/plans'; +import { SubscriptionStatus, assertPaymentPlanId, prettyPaymentPlanName } from '../payment/plans'; export default function AccountPage({ user }: { user: User }) { return ( @@ -103,7 +103,9 @@ function getUserSubscriptionStatusDescription({ subscriptionStatus: SubscriptionStatus; datePaid: Date; }) { - const planName = prettyPaymentPlanName(parsePaymentPlanId(subscriptionPlan)); + assertPaymentPlanId(subscriptionPlan); + + const planName = prettyPaymentPlanName(subscriptionPlan); const endOfBillingPeriod = prettyPrintEndOfBillingPeriod(datePaid); return prettyPrintStatus(planName, subscriptionStatus, endOfBillingPeriod); } From 3f8d5368f8c9d801e86c2624e1fd2ccb6f9701d6 Mon Sep 17 00:00:00 2001 From: Franjo Mindek Date: Sun, 10 Aug 2025 21:28:58 +0200 Subject: [PATCH 04/17] propagate env changes --- .github/workflows/e2e-tests.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/e2e-tests.yml b/.github/workflows/e2e-tests.yml index 8af956583..ee51de656 100644 --- a/.github/workflows/e2e-tests.yml +++ b/.github/workflows/e2e-tests.yml @@ -109,9 +109,9 @@ jobs: STRIPE_API_KEY: ${{ secrets.STRIPE_KEY }} STRIPE_WEBHOOK_SECRET: ${{ secrets.STRIPE_WEBHOOK_SECRET }} STRIPE_CUSTOMER_PORTAL_URL: https://billing.stripe.com/p/login/test_8wM8x17JN7DT4zC000 - PAYMENTS_HOBBY_SUBSCRIPTION_PLAN_ID: ${{ secrets.STRIPE_HOBBY_SUBSCRIPTION_PRICE_ID }} - PAYMENTS_PRO_SUBSCRIPTION_PLAN_ID: ${{ secrets.STRIPE_PRO_SUBSCRIPTION_PRICE_ID }} - PAYMENTS_CREDITS_10_PLAN_ID: ${{ secrets.STRIPE_CREDITS_PRICE_ID }} + PAYMENTS_HOBBY_SUBSCRIPTION_PRICE_ID: ${{ secrets.STRIPE_HOBBY_SUBSCRIPTION_PRICE_ID }} + PAYMENTS_PRO_SUBSCRIPTION_PRICE_ID: ${{ secrets.STRIPE_PRO_SUBSCRIPTION_PRICE_ID }} + PAYMENTS_CREDITS_10_PRICE_ID: ${{ secrets.STRIPE_CREDITS_PRICE_ID }} SKIP_EMAIL_VERIFICATION_IN_DEV: true # Client-side env vars REACT_APP_GOOGLE_ANALYTICS_ID: G-H3LSJCK95H From 32375d576aeff2c4c416554b0ed8acde66b96e2e Mon Sep 17 00:00:00 2001 From: Franjo Mindek Date: Mon, 11 Aug 2025 11:38:22 +0200 Subject: [PATCH 05/17] stripe template part done --- .../app/src/payment/stripe/checkoutUtils.ts | 9 ++-- .../src/payment/stripe/paymentProcessor.ts | 26 +++++++++-- template/app/src/payment/stripe/webhook.ts | 45 ++++++++++--------- 3 files changed, 53 insertions(+), 27 deletions(-) diff --git a/template/app/src/payment/stripe/checkoutUtils.ts b/template/app/src/payment/stripe/checkoutUtils.ts index c5ea51bcf..de2a36855 100644 --- a/template/app/src/payment/stripe/checkoutUtils.ts +++ b/template/app/src/payment/stripe/checkoutUtils.ts @@ -57,9 +57,12 @@ export async function createStripeCheckoutSession({ customer_update: { address: 'auto', }, - invoice_creation: { - enabled: true, - }, + invoice_creation: + mode === 'payment' + ? { + enabled: true, + } + : undefined, }); } catch (error) { console.error(error); diff --git a/template/app/src/payment/stripe/paymentProcessor.ts b/template/app/src/payment/stripe/paymentProcessor.ts index 1ebc90435..8828d071e 100644 --- a/template/app/src/payment/stripe/paymentProcessor.ts +++ b/template/app/src/payment/stripe/paymentProcessor.ts @@ -1,5 +1,4 @@ import Stripe from 'stripe'; -import { requireNodeEnvVar } from '../../server/utils'; import type { CreateCheckoutSessionArgs, FetchCustomerPortalUrlArgs, @@ -7,6 +6,7 @@ import type { } from '../paymentProcessor'; import type { PaymentPlanEffect } from '../plans'; import { createStripeCheckoutSession, ensureStripeCustomer } from './checkoutUtils'; +import { stripeClient } from './stripeClient'; import { stripeMiddlewareConfigFn, stripeWebhook } from './webhook'; export const stripePaymentProcessor: PaymentProcessor = { @@ -45,8 +45,28 @@ export const stripePaymentProcessor: PaymentProcessor = { }, }; }, - fetchCustomerPortalUrl: async (_args: FetchCustomerPortalUrlArgs) => - requireNodeEnvVar('STRIPE_CUSTOMER_PORTAL_URL'), + fetchCustomerPortalUrl: async (args: FetchCustomerPortalUrlArgs) => { + const user = await args.prismaUserDelegate.findUniqueOrThrow({ + where: { + id: args.userId, + }, + select: { + paymentProcessorUserId: true, + }, + }); + + if (!user.paymentProcessorUserId) { + return null; + } + + const CLIENT_BASE_URL = process.env.WASP_WEB_CLIENT_URL || 'http://localhost:3000'; + const session = await stripeClient.billingPortal.sessions.create({ + customer: user.paymentProcessorUserId, + return_url: `${CLIENT_BASE_URL}/account`, + }); + + return session.url; + }, webhook: stripeWebhook, webhookMiddlewareConfigFn: stripeMiddlewareConfigFn, }; diff --git a/template/app/src/payment/stripe/webhook.ts b/template/app/src/payment/stripe/webhook.ts index c2ce9a171..d81a21ae9 100644 --- a/template/app/src/payment/stripe/webhook.ts +++ b/template/app/src/payment/stripe/webhook.ts @@ -33,7 +33,9 @@ export const stripeWebhook: PaymentsWebhook = async (request, response, context) // See: https://docs.opensaas.sh/guides/deploying/#setting-up-your-stripe-webhook // In development, it is likely that you will receive other events that you are not handling. // These can be ignored without any issues. - assertUnreachable(); + if (process.env.NODE_ENV === 'production') { + throw new UnhandledWebhookEventError(stripeEvent.type); + } } return response.status(204).send(); // any 2xx HTTP response is fine } catch (err) { @@ -93,26 +95,27 @@ async function handleInvoicePaid( const priceId = getItemsPriceId(invoice.lines.data); const paymentPlanId = getPaymentPlanIdByPriceId(priceId); - if (priceId === paymentPlans.credits10.getPaymentProcessorPlanId()) { - updateUserStripePaymentDetails( - { customerId, numOfCreditsPurchased: paymentPlans.credits10.effect.amount, datePaid }, - prismaUserDelegate - ); - } else if ( - priceId === paymentPlans.pro.getPaymentProcessorPlanId() || - priceId === paymentPlans.hobby.getPaymentProcessorPlanId() - ) { - updateUserStripePaymentDetails( - { - customerId, - datePaid, - paymentPlanId, - subscriptionStatus: SubscriptionStatus.Active, - }, - prismaUserDelegate - ); - } else { - assertUnreachable(); + switch (paymentPlanId) { + case PaymentPlanId.Credits10: + updateUserStripePaymentDetails( + { customerId, numOfCreditsPurchased: paymentPlans.credits10.effect.amount, datePaid }, + prismaUserDelegate + ); + break; + case PaymentPlanId.Pro: + case PaymentPlanId.Hobby: + updateUserStripePaymentDetails( + { + customerId, + datePaid, + paymentPlanId, + subscriptionStatus: SubscriptionStatus.Active, + }, + prismaUserDelegate + ); + break; + default: + assertUnreachable(); } } From 06bb97db6f3dd079e95c3113dc9eff4f0fec0663 Mon Sep 17 00:00:00 2001 From: Franjo Mindek Date: Mon, 11 Aug 2025 11:40:53 +0200 Subject: [PATCH 06/17] maske payment management always available when url is there --- template/app/src/user/AccountPage.tsx | 69 +++++++++------------------ 1 file changed, 22 insertions(+), 47 deletions(-) diff --git a/template/app/src/user/AccountPage.tsx b/template/app/src/user/AccountPage.tsx index 6e965d4a3..2ad8feaf4 100644 --- a/template/app/src/user/AccountPage.tsx +++ b/template/app/src/user/AccountPage.tsx @@ -75,21 +75,19 @@ function UserCurrentPaymentPlan({ datePaid, credits, }: UserCurrentPaymentPlanProps) { - if (subscriptionStatus && subscriptionPlan && datePaid) { - return ( - <> -
- {getUserSubscriptionStatusDescription({ subscriptionPlan, subscriptionStatus, datePaid })} -
- {subscriptionStatus !== SubscriptionStatus.Deleted ? : } - - ); - } - return ( <> -
Credits remaining: {credits}
- +
+ {subscriptionStatus && subscriptionPlan && datePaid ? ( + getUserSubscriptionStatusDescription({ subscriptionPlan, subscriptionStatus, datePaid }) + ) : ( + <>Credits remaining: {credits} + )} +
+
+ + +
); } @@ -136,47 +134,24 @@ function prettyPrintEndOfBillingPeriod(date: Date) { function BuyMoreButton() { return ( -
- - Buy More/Upgrade - -
+ ); } function CustomerPortalButton() { - const { - data: customerPortalUrl, - isLoading: isCustomerPortalUrlLoading, - error: customerPortalUrlError, - } = useQuery(getCustomerPortalUrl); - - const handleClick = () => { - if (customerPortalUrlError) { - console.error('Error fetching customer portal url'); - } + const { data: customerPortalUrl, isLoading: isCustomerPortalUrlLoading } = useQuery(getCustomerPortalUrl); - if (customerPortalUrl) { - window.open(customerPortalUrl, '_blank'); - } else { - console.error('Customer portal URL is not available'); - } - }; + if (!customerPortalUrl) { + return null; + } return ( -
- -
+ ); } From baf63c6350608a0d15b981066280585d42cf2425 Mon Sep 17 00:00:00 2001 From: Franjo Mindek Date: Mon, 11 Aug 2025 12:02:37 +0200 Subject: [PATCH 07/17] diff --- opensaas-sh/app_diff/.env.client.diff | 3 +- opensaas-sh/app_diff/.env.vault.diff | 27 +- opensaas-sh/app_diff/deletions | 3 +- opensaas-sh/app_diff/fly-client.toml.diff | 24 +- opensaas-sh/app_diff/package-lock.json.diff | 4585 ++--------------- opensaas-sh/app_diff/public/piggy.js.diff | 7 +- .../app_diff/src/analytics/stats.ts.diff | 15 +- .../src/payment/paymentProcessor.ts.diff | 12 +- .../src/payment/stripe/paymentDetails.ts.diff | 15 - .../payment/stripe/paymentProcessor.ts.diff | 35 +- .../payment/stripe/userPaymentDetails.ts.diff | 20 + 11 files changed, 412 insertions(+), 4334 deletions(-) delete mode 100644 opensaas-sh/app_diff/src/payment/stripe/paymentDetails.ts.diff create mode 100644 opensaas-sh/app_diff/src/payment/stripe/userPaymentDetails.ts.diff diff --git a/opensaas-sh/app_diff/.env.client.diff b/opensaas-sh/app_diff/.env.client.diff index 812a6b7a7..45240bdf4 100644 --- a/opensaas-sh/app_diff/.env.client.diff +++ b/opensaas-sh/app_diff/.env.client.diff @@ -1,5 +1,6 @@ --- template/app/.env.client +++ opensaas-sh/app/.env.client -@@ -0,0 +1 @@ +@@ -0,0 +1,2 @@ ++REACT_APP_GOOGLE_ANALYTICS_ID=G-H3LSJCK95H +REACT_APP_GOOGLE_ANALYTICS_ID=G-H3LSJCK95H \ No newline at end of file diff --git a/opensaas-sh/app_diff/.env.vault.diff b/opensaas-sh/app_diff/.env.vault.diff index 714c36b85..3c52bbd2c 100644 --- a/opensaas-sh/app_diff/.env.vault.diff +++ b/opensaas-sh/app_diff/.env.vault.diff @@ -1,6 +1,31 @@ --- template/app/.env.vault +++ opensaas-sh/app/.env.vault -@@ -0,0 +1,25 @@ +@@ -0,0 +1,50 @@ ++#/-------------------.env.vault---------------------/ ++#/ cloud-agnostic vaulting standard / ++#/ [how it works](https://dotenv.org/env-vault) / ++#/--------------------------------------------------/ ++ ++# development ++DOTENV_VAULT_DEVELOPMENT="STJRGW84NkbUqenj6Eyt98WiAcvzWsWhOKwyktUfAJ0dR8TlNnSdCDRsCRisCzKuDTTZtgCf6FyTgT48HsYuwFZqydg/aFeM4skfLpyUy0wz0K90hq2sNEB85HCAwZaTTf9ye5fEBq9P1PAEoYlHEFtPXO1exSkXyxQHzkv5/j2xLJVkg89cZ+MBaQQtzmgK/A9ya5eVSX2zIhum+ipZKIE04pjc4H8fu5YgxY91rOVTFHBQc1dlbuCr+vvmvgHxNS2gO+eM5UcmZk6FY4yY+GUZmf+xGw5ZPwFjiS3awC+jNhdebWnkrk/PopAqBC3i7eH3fdaPvJW2RWkMMrY4+gtN8Hs9lPNopWkl3uavAva9qmvrCE1KLu94IaQh34Cy6dRurPQDF/MmnugqYzcEQvvtIV1sgZig6Id4c9P67gs/Q9NvKXvbeNxzXYTwkF3SvnMRXk33yBKbXHxE1vIn9k9mbMnX3DVeVdT5TDR9BKs9xGMuvP7rQv5RA/xSnzMFg8LeJ+oZ2zNUWWN8tOyx6K4WwiIJN39AOLYElXAFa3UTSk12GtzaySM5rQdcWn0YLN3uncye26zRCA+BpR231fgrSpfJJ2VkNBG0pTh1ELySOFug6mItLOb7CQGXjZrrwTSfEBhhpMZn/c2Ec6p/nBN2UcHAmB55N6GDFuAkagv9l/4C5fIbS6iGHYAOwwYKczSBryi3+5y7sDYkdVhOTzuKTfkpY1FpkEgUY8FFnW2GjYodH2T+l23Q84a7A9VjxZAyZJkgwGnezO+M8fWcwtqt3iywEVhTd5Hi7Nxe+Q53oQeUrwnTKSkx5Ig5uR1RJIybW+gWvpSOEcUZN6AVf67/UPu9RHpwHDQ5YCGGqJwDzR/f5QxR0kqiW3B0ZDWpJX7zFk2QiLGLzDZ6xmdaGenbJ0jWMA116Xm+ot0GCEqim+RVk768zSAxIQFOCcllXWhmxwTO2/SzY6j7Hxf1Ps8e0uCVc7FPemh7nBYLRlSOI/Pjk9gLUkyKhV7IEiaL2BbPFLGOFkOk0AGNc+m/y1BH+CnJYYKCK1AXNquKM9+MV8Wmure2iBIm2oNlDOcJl48YpUQ0BcKzmFw06OJHVULPVn7da7XZ2/34SvyFcsYARE6NZLLMMg810S1cok0gQ3FpxKv3wxP1jRXntEC1ZxUqJQE/hZ5IxoOxhAJGQfqYbJIQSE5oE8Ve7E0X2lTYVEPiwziYOeovKidJX1vccZh4ggxgYsRzT/qAiS/FcvgsWz9kY6n0e1iKLEmsGR96SDpzNSWV/57iSuOd6nKtcU8HWhekTMnTQK4wrhXuYQHZhLeRnGQIjHzNyzJ8lV6HVcot6NZPPHjOfohQ9eIhQi7qUC7JPcLFkWixjrPTAEJVlQelbAOPHPOUyYEoejcPi/0LMTrQPYN/To/lhDHn/5N9vhlk8flj0zuJHpCFq8laDsn9wdvymuK/0MQ7DrPPU00nNzQjXDtT9xbb6I9ZX7XtgTVHVnWtEwxCQRYkmbR0T+0TzDLXlQObITanuFVa19ZSeATGc+PhxFAva5yxPih2L+j3BTN43ap/X3j54DDylyNHDQlpC21wOa+HFGftYUAWx8/w8i5gr7ZU66aVQWZspSLP7BIFzMaVVjAM5gVqaCLTpcnCE3oMMYddsqsXUbkJrmdlh4cP8ao2Y9YHzv3KRTyAU4wDxhkwWdDqnUSRVXkcDeZUuCQJsHFRvXVzgCNDSktMewTC4xMNniW6KNUwbqzWxGBCz6g/0WUJEaJYG+teu1jBMPDhNFFlw6BjIoNX7iButmm81XCG8D1uEgRvo+H4lxAL4rPyPNCQieT34XHk/QxcQsqij2wnTenGUwWQt++kzMLvL/69RtvaskA8I3aLXDLn3ATMU4JlMvD1MqRHrGb3tzoz+lXKWVgrJR+BSYUBXZc9EAUsj4G4+NsRyMPbBWE2ADgM4ksDflXCccbelu/4S50eS9dEXf7ms0CeYh+dFmqjhCXI8JrgL+bUdOwDbEJVPjM2yOVM1wATGAa8+0nLaJbIwI41JVXBx/uLZ8pt2pyvQB9cyLQR00hcjbLymHBfLP51B6nlaNhUq4yZsI/JM59XNmEYAY8GZJFuvIBvSimC5plUCc1bfGhK694k7Fv1bKtlIzXd4kCy5bKNiwWMTVbOy3Uv87FQTa61z5mnz/XGmRwU/22v4VOWy11BKWGYkYJGN1KrAVkUenCKQw6FjgVXBbfJ6m2k9tl5dfQ48ppToorUZkFiKsPuc8V6DhcUt2stxEETnUnU9K2p8QyyhfPykBK6YWbShDobeA0TPF+vo2ypkVOvhNo7F4cQnvvVKl9MJmmAxFOisB9yHXREk2GSlivNJeTqIz8Vv4K42/wNMAO2ZQqSPlE4wt2ueFQqLMkG+UDlD6gujSx8D/OzSTfCx+vLTzdqsbubPxjcPx+pQA==" ++DOTENV_VAULT_DEVELOPMENT_VERSION=12 ++ ++# ci ++DOTENV_VAULT_CI="pveNDc605iqf5ZOh9mvYpFOc925852DGrvz7y+vs82ub3bZvTiLhJMuJKZEDtyjn7yBUdfMRsAP6wAL8/73te+4y7K56lT48MuvFlpvwM9ERkCzJY1yZ6ib3eBzTax/jon2H5kfEHBM9TRIa5B8JrCHbYqhcrnxj0VyLEa4x1I4pMTdesRZ+907FTdExaRSFFujdkUaScytOV93DTr2lQZpUGBga5CbKr3KyeSS1+ONGSWc+BQiAkdhmnvPsyKHnWRKHSFVhInne2W00LFZLBZ56I4+G7D+x+ze3/WNb5GSq7eNlVwnTJgj5AXJBjtAV/uD7cmOnJ3h+lOkvz3Wry10BaICTAx5SVfOuD5Pr/FLgR2zJau+pgqhRdcp7gG4y2thWN5ZtlLGnJlL7xgnRaD+oIYBn6fg8CCZsnsX2XZHAzJcgntph2pUd0At4UawSijDVZuylcneNdF3CJ68/fcqqpR94LYU61w4WasrAWj1hFiRV1MTpLkdQWTMT6K5k5TDouuljI3nt+Upf9mDK7efjy7OTiiArNxKpUxUy31Kl0TgWTsttDFbcOGwbsxq1t/Tu9Ph0eEhwHc2dTUuSuhV+PHxE8GwUvGiIDBbAZZq7ZyeLc5btdP++8zdXBtYM7bIa9qubaCWakruk31w6Gm5ySjGY+R1HGURldXJmypsAEcu5kK3IX4Z8IubF79T8ZvutLdoXJPSaH9x8ij7EcamTVfZPmekj6FpI3sqy7rmaUup73MBld9a3r9AQTzXbEmR+2xbK488D1il8PUqu9J3QkUeF2rpB97Uy2mgl1zF8VXiGkdP1Hpqeck8FpS89GWFF4FA3oBE/Keqvqvvs/f+KzDn2AvHHwrT6fnVBdeuSp4hK+sSkig1rh+1P69zYjIDqpph0kT+Ri7uNMkbrXX7iT5he9J1LrXtiM/DLxXqi8M3FfeN7aaSxQ2nzac1mlN+vwsIqJbzOSm+ABGHNJNjPjBZpMbeBZsFwogaCbFd2oorp02h6yC6741qwH7gFEr1EJVcu+TJspHyKpq4TFIk+srRMhuCqwUAkdzY4skjEGVhxxYMiKAtRg5IKYICqbfNsestMipAcf22teriGnmqBe9Yuzq9IXZXRcl/etagr0/B3SQhNlVj2u9VMBfhj5ZY+QcQDfSjqOcW/DyphyBU4T1/rHn1x5RznCvtbOPZ+XXFApZaeoKzj/s8JxHzM8aegITx3jVRwXnr0/0FnHTnC34b124K6HM3oKxdPdrtACgW8gH+mgXCaStBqwBdk1aV62+YQxWdHXjy9FAvTF8BktcxwE0TXC5Qu0JsoS8uYbbQmaQCNWIJWF/KptW+g9gkKDBV2Iq5mXwMLHzCtzxGarj5jqznVEX4OdbYbgSOZ5mB5JEU2OwSn2QtzqUVquAN+DygbDVrh1+KA9bk4HMt38rMKHV/i9VBHkuApYT7OUIexCu4jxUDBnid/Hnm3OfMvXrUesoqFv2cYEHX8R/jvhLx36jEWeaTYL+e9XFpSLlWJTGc7wAg0Zj+XJlNtLhFlB6pw" ++DOTENV_VAULT_CI_VERSION=8 ++ ++# staging ++DOTENV_VAULT_STAGING="nAXVAHQaoF1R6J23PDrfp6kH0L+nXmZaI0OUfcCBU7QSfP+K3mbkdO92cbKVUN6ycc1wxRue6BFLEUgBLuCJQwUdKYevK81fs/ACrHYxuW6Px85FG3NJVLGvgF/3qiqu0RRfcpeB6lYJCAPFsYcoA9Cx8QDkYmvSlWAGmLJQ7cqzHUNlveOqtrXsLFV2OjlWjlYD1l7VQkaXnsY+Mij60DbRIadusoDuAB3z5m7N8/ogMOGENlUl9HRJJ4ppcJiHoBm7pxrLpK0oubx3KEDTSkPVlpNb1YYMeU2VKiGYCOMyXX8IguISrrgU4hHEvbLM8F3gnKHyx59qbwU/32yX7ofIIPsTLLTwD+mHWElPoLs9WWq249RYEmRT7w5iuCdjl9Qlr36EJKPYc7UG+P0DZROb7pXcbtYg8/gfaCXOQG5Ue2FMon4bEphkmY1CKaJKtPTXNuecDVTa8O4hEM65xrEClieVUgexEaM0g7fEUo8wOljZx96gG8Mf4RqHX3xy4M0d4/2UluE053kavUaTULhRPG/oTHIGiKFRnG0BfgQFcGRXkFgLG9zerVAoWEGAcBGHn5NECIUWqaD2Z7sdEZd9R0SZmtwUXoPV1jqHNeKEvt7fUN8xcPsV1MFAUi2cAyGLkrl541KbWpU0IpHK1pIkbfUVyDOL4htSD/SajhtlyJ79q7Xd5sKsb273ZQsmtk3ZREBjQUFA2NP+fPH7ifttVeWi3EFUi8+8cWwgNHM6Cn7LaFitah6+DcCQ6+l7SneFTEbzMlprzazBBL/Gu4kr6pNXGX0RZnR8uhs6aZZgV2h9V14s0uZx3EcAFqC3g+I5X08Fi+2ERpcfWUvFdjx5akmDQllSB+oqy6SxiJvqFnfWvVPQNhx1xh2x8OplZbzykEJ+Tfl0mlc5UHHoLQqje0jagBRSHWQbxC0jIGGyqdhnz3uG672krM/zTTc2wKWMk4EZFDG7Yc7oz3DcJXjFBgxEagd9jYxqLIN0RAH9pq+0aUP7daz0CbX+xhTd988dl+LblcnEN59XEsBOhWCd5bm51KJZcKQ1UpsVVPGHnTT7MPE2+6BheEr1dgu/LDUPDW8NT0QwBUwXwxH1ROuTOu2+LWNdFrV11sEpKGfW2bjqrkpbx/xovahbFyCSq12T0EBInAFF5bq2pB0Ik2vfEH8gNL0Z+FoqH0/aDrSuw6j8xqmd2rKL3XwL5bYVZDCc1isAWXESA9CHHTSx1NGoa1kpunJkGJY//2rn5srK9RlOOHxxUrtqVBMfEGsj7qIv/Ebsgr3dvFpdVXiRZ5s3KZZs6YlSXyukklehkjtYoMM2TaZ478ioFOtD8yx12PjI3Pfoapo2La2boM48RFcipmVNpWNsLjGXaYyhYVV3RBsZAMvkOnYRVFUiZ50+ETdfizX0H23+mmkBt8FjNqHhvg9BIRaYnKTar1FPAd840lo4w2e7n2mKufHwykI5ILrJV0ozhPy7Yr8kltPiQYjpy1ua2scUdnKCngdX0KjqNQz072e6uYlhRpOib6CEwZXqMbr/" ++DOTENV_VAULT_STAGING_VERSION=8 ++ ++# production ++DOTENV_VAULT_PRODUCTION="zGpYx7O6vRv3vYt0aW1H6UF3TSi6DUFgqjeKzkNcJukFWQWvTgX5HYtLKQnBAGCDpuWY+KWfiFGNu/zVouo5LTlQb6apzBLzj0dr+PxxDpjXe8s+q7OSPH7Ist4UiVurC2nAMjgFsUpDA2LUkfPOuWPRvg1UGYjTaxEADTYCI/vk0Uegv4R11K1/HcCGXlliJk2QAVaT5ZYSo0VKvcRu5HYHSX4aAwJgnucm3xvNmPn9Cjkxx1jZL5jYfzLS1etDEPn6slDj88NzZ8BvXHeSJUftpR352azOJpL0GbSKrwoPNYU9F2JCthilLqPZPC6LJzg0/4p5vUKA83gqnDnUxEHR+ZlNK0MRTQPEwrZitruOaP1ggWIsEJA/DZFMLA5oQrq4kp+p2E99YbsPNmV0LfvsA6LtqKv393jsuzSdJ94zeLhQlRRECiTQRVEee3ug5tJ0f34N7acRSv4EdgriKp8poIsE4miVK2xXwrek9jRxeXLHzu7Oo8yBkYaX2DqtXyxf+8Qq2WgvdRm9QgfGdiwftYsjXO52jhHI7z7bJ3R/W5BR+Z0QbR83LR3ZWdI+AYY9F2CkYF62nW5TVxiWU0M4DZ5KUgVo+iNgm+AV0nefgFvud6Ln3VtNcb2bT0RFAw4MJK0LyYlNewZBJQhlfRiN+3xJKqLbDKMlhGmSHF8RRNYN9MfKwOfF62jNFlwPjgyGCjuQL96L97z50Q63TMbpEciR0uNcMavIADPs1qDhCSkYO4rQO1IgOUF34trra9KKRfoP2UdDJhiqvlTQ2Ygu2uc164Vho0E003jlBBZBI+UUJhPz4cYTtFJjpinRCp/Q0mUeiTLbo1V7T32IQ+ZkUqO7FRuwxR282OzKQVRZiUxuOAa7WxdQzrcXbCOcCvJWX8hTVrSim9z+NAFxNyTCwVBhek9EfwCfxJSCuFuI9axlb6xA1sZ/61G5+wuKeEpUvlTbQC/ZT1QJqpKMmujEePAfW++dzJJgW/nX9o0CIt3KTzwVzImAe+/oNhzKn0TbzsvMqeOaTgymo2re0Rdw3P/Fk5SUQTM7+2GIFC+iRC5a3LN7UOFP+UdQ21J+WGkkl+yvJyyjY3IRSoFWqSCU7BAjULmJmtkl1Y/60vIj+GET5hu7VGaTlIgaWiVZc4eGAu6UAeGzasTjYWNQh50p44VxQlYBijJC+JUhzPkFOLjaLx6rRZzTQVl9NUxIxdkaOn+BImJQadaC2Ad3YOMpsLVJF/p25fi2L2e2MtsDdcx2ZNlpV1GIrYGqMIiujPdpoMzibj4VmObVMB6dazpyqgAf/QXdGguyv/4JJBcNUNPbqHqMl0yY+DzGzxPCKx6WViR63HZJeC5hJE39wNEgeYGJcXrL5K2siwrFENns8Os93aoE/8xgiPdj3vLQmcL0Z30XEqPl6/V4mTgc2Oa1SAi1NGLXnVsYJ/h1Rr4a9T11zkKhRCIvT4Jd5WpvGjG3f9t7YUigb6BqlMc0BTJ6ufQP/xBBOHqzoUs3gVk4HTMDfpYwO9k9SJNkfWBn1iV102BJ" ++DOTENV_VAULT_PRODUCTION_VERSION=8 ++ ++#/----------------settings/metadata-----------------/ ++DOTENV_VAULT="vlt_47e3eeb0730e831e688049600e59f8975260a1f00302ae08684ed87ba67872d0" ++DOTENV_API_URL="https://vault.dotenv.org" ++DOTENV_CLI="npx dotenv-vault@latest" +#/-------------------.env.vault---------------------/ +#/ cloud-agnostic vaulting standard / +#/ [how it works](https://dotenv.org/env-vault) / diff --git a/opensaas-sh/app_diff/deletions b/opensaas-sh/app_diff/deletions index 90fe220da..2cd98f45d 100644 --- a/opensaas-sh/app_diff/deletions +++ b/opensaas-sh/app_diff/deletions @@ -3,7 +3,8 @@ src/client/static/open-saas-banner-light.png src/landing-page/components/Hero.tsx src/landing-page/contentSections.ts src/payment/lemonSqueezy/checkoutUtils.ts -src/payment/lemonSqueezy/paymentDetails.ts src/payment/lemonSqueezy/paymentProcessor.ts +src/payment/lemonSqueezy/userPaymentDetails.ts src/payment/lemonSqueezy/webhook.ts +src/payment/lemonSqueezy/webhookPayload.ts src/payment/webhook.ts diff --git a/opensaas-sh/app_diff/fly-client.toml.diff b/opensaas-sh/app_diff/fly-client.toml.diff index a735779f7..5eee9ae37 100644 --- a/opensaas-sh/app_diff/fly-client.toml.diff +++ b/opensaas-sh/app_diff/fly-client.toml.diff @@ -1,6 +1,28 @@ --- template/app/fly-client.toml +++ opensaas-sh/app/fly-client.toml -@@ -0,0 +1,22 @@ +@@ -0,0 +1,44 @@ ++# fly.toml app configuration file generated for open-saas-wasp-sh-client on 2025-07-18T17:12:02+02:00 ++# ++# See https://fly.io/docs/reference/configuration/ for information about how to use this file. ++# ++ ++app = 'open-saas-wasp-sh-client' ++primary_region = 'ams' ++ ++[build] ++ ++[http_service] ++ internal_port = 8043 ++ force_https = true ++ auto_stop_machines = 'stop' ++ auto_start_machines = true ++ min_machines_running = 0 ++ processes = ['app'] ++ ++[[vm]] ++ memory = '1gb' ++ cpu_kind = 'shared' ++ cpus = 1 +# fly.toml app configuration file generated for open-saas-wasp-sh-client on 2025-07-18T17:12:02+02:00 +# +# See https://fly.io/docs/reference/configuration/ for information about how to use this file. diff --git a/opensaas-sh/app_diff/package-lock.json.diff b/opensaas-sh/app_diff/package-lock.json.diff index a26292375..3f422a84f 100644 --- a/opensaas-sh/app_diff/package-lock.json.diff +++ b/opensaas-sh/app_diff/package-lock.json.diff @@ -1,6 +1,6 @@ --- template/app/package-lock.json +++ opensaas-sh/app/package-lock.json -@@ -0,0 +1,13784 @@ +@@ -0,0 +1,9789 @@ +{ + "name": "opensaas", + "lockfileVersion": 3, @@ -129,14 +129,10 @@ + }, + "node_modules/@adobe/css-tools": { + "version": "4.4.2", -+ "resolved": "https://registry.npmjs.org/@adobe/css-tools/-/css-tools-4.4.2.tgz", -+ "integrity": "sha512-baYZExFpsdkBNuvGKTKWCwKH57HRZLVtycZS05WTQNVOiXVSeAki3nU35zlRbToeMW8aHlJfyS+1C4BOv27q0A==", + "license": "MIT" + }, + "node_modules/@alloc/quick-lru": { + "version": "5.2.0", -+ "resolved": "https://registry.npmjs.org/@alloc/quick-lru/-/quick-lru-5.2.0.tgz", -+ "integrity": "sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==", + "license": "MIT", + "engines": { + "node": ">=10" @@ -147,8 +143,6 @@ + }, + "node_modules/@aws-crypto/crc32": { + "version": "5.2.0", -+ "resolved": "https://registry.npmjs.org/@aws-crypto/crc32/-/crc32-5.2.0.tgz", -+ "integrity": "sha512-nLbCWqQNgUiwwtFsen1AdzAtvuLRsQS8rYgMuxCrdKf9kOssamGLuPwyTY9wyYblNr9+1XM8v6zoDTPPSIeANg==", + "license": "Apache-2.0", + "dependencies": { + "@aws-crypto/util": "^5.2.0", @@ -161,8 +155,6 @@ + }, + "node_modules/@aws-crypto/crc32c": { + "version": "5.2.0", -+ "resolved": "https://registry.npmjs.org/@aws-crypto/crc32c/-/crc32c-5.2.0.tgz", -+ "integrity": "sha512-+iWb8qaHLYKrNvGRbiYRHSdKRWhto5XlZUEBwDjYNf+ly5SVYG6zEoYIdxvf5R3zyeP16w4PLBn3rH1xc74Rag==", + "license": "Apache-2.0", + "dependencies": { + "@aws-crypto/util": "^5.2.0", @@ -172,8 +164,6 @@ + }, + "node_modules/@aws-crypto/sha1-browser": { + "version": "5.2.0", -+ "resolved": "https://registry.npmjs.org/@aws-crypto/sha1-browser/-/sha1-browser-5.2.0.tgz", -+ "integrity": "sha512-OH6lveCFfcDjX4dbAvCFSYUjJZjDr/3XJ3xHtjn3Oj5b9RjojQo8npoLeA/bNwkOkrSQ0wgrHzXk4tDRxGKJeg==", + "license": "Apache-2.0", + "dependencies": { + "@aws-crypto/supports-web-crypto": "^5.2.0", @@ -186,8 +176,6 @@ + }, + "node_modules/@aws-crypto/sha1-browser/node_modules/@smithy/is-array-buffer": { + "version": "2.2.0", -+ "resolved": "https://registry.npmjs.org/@smithy/is-array-buffer/-/is-array-buffer-2.2.0.tgz", -+ "integrity": "sha512-GGP3O9QFD24uGeAXYUjwSTXARoqpZykHadOmA8G5vfJPK0/DC67qa//0qvqrJzL1xc8WQWX7/yc7fwudjPHPhA==", + "license": "Apache-2.0", + "dependencies": { + "tslib": "^2.6.2" @@ -198,8 +186,6 @@ + }, + "node_modules/@aws-crypto/sha1-browser/node_modules/@smithy/util-buffer-from": { + "version": "2.2.0", -+ "resolved": "https://registry.npmjs.org/@smithy/util-buffer-from/-/util-buffer-from-2.2.0.tgz", -+ "integrity": "sha512-IJdWBbTcMQ6DA0gdNhh/BwrLkDR+ADW5Kr1aZmd4k3DIF6ezMV4R2NIAmT08wQJ3yUK82thHWmC/TnK/wpMMIA==", + "license": "Apache-2.0", + "dependencies": { + "@smithy/is-array-buffer": "^2.2.0", @@ -211,8 +197,6 @@ + }, + "node_modules/@aws-crypto/sha1-browser/node_modules/@smithy/util-utf8": { + "version": "2.3.0", -+ "resolved": "https://registry.npmjs.org/@smithy/util-utf8/-/util-utf8-2.3.0.tgz", -+ "integrity": "sha512-R8Rdn8Hy72KKcebgLiv8jQcQkXoLMOGGv5uI1/k0l+snqkOzQ1R0ChUBCxWMlBsFMekWjq0wRudIweFs7sKT5A==", + "license": "Apache-2.0", + "dependencies": { + "@smithy/util-buffer-from": "^2.2.0", @@ -224,8 +208,6 @@ + }, + "node_modules/@aws-crypto/sha256-browser": { + "version": "5.2.0", -+ "resolved": "https://registry.npmjs.org/@aws-crypto/sha256-browser/-/sha256-browser-5.2.0.tgz", -+ "integrity": "sha512-AXfN/lGotSQwu6HNcEsIASo7kWXZ5HYWvfOmSNKDsEqC4OashTp8alTmaz+F7TC2L083SFv5RdB+qU3Vs1kZqw==", + "license": "Apache-2.0", + "dependencies": { + "@aws-crypto/sha256-js": "^5.2.0", @@ -239,8 +221,6 @@ + }, + "node_modules/@aws-crypto/sha256-browser/node_modules/@smithy/is-array-buffer": { + "version": "2.2.0", -+ "resolved": "https://registry.npmjs.org/@smithy/is-array-buffer/-/is-array-buffer-2.2.0.tgz", -+ "integrity": "sha512-GGP3O9QFD24uGeAXYUjwSTXARoqpZykHadOmA8G5vfJPK0/DC67qa//0qvqrJzL1xc8WQWX7/yc7fwudjPHPhA==", + "license": "Apache-2.0", + "dependencies": { + "tslib": "^2.6.2" @@ -251,8 +231,6 @@ + }, + "node_modules/@aws-crypto/sha256-browser/node_modules/@smithy/util-buffer-from": { + "version": "2.2.0", -+ "resolved": "https://registry.npmjs.org/@smithy/util-buffer-from/-/util-buffer-from-2.2.0.tgz", -+ "integrity": "sha512-IJdWBbTcMQ6DA0gdNhh/BwrLkDR+ADW5Kr1aZmd4k3DIF6ezMV4R2NIAmT08wQJ3yUK82thHWmC/TnK/wpMMIA==", + "license": "Apache-2.0", + "dependencies": { + "@smithy/is-array-buffer": "^2.2.0", @@ -264,8 +242,6 @@ + }, + "node_modules/@aws-crypto/sha256-browser/node_modules/@smithy/util-utf8": { + "version": "2.3.0", -+ "resolved": "https://registry.npmjs.org/@smithy/util-utf8/-/util-utf8-2.3.0.tgz", -+ "integrity": "sha512-R8Rdn8Hy72KKcebgLiv8jQcQkXoLMOGGv5uI1/k0l+snqkOzQ1R0ChUBCxWMlBsFMekWjq0wRudIweFs7sKT5A==", + "license": "Apache-2.0", + "dependencies": { + "@smithy/util-buffer-from": "^2.2.0", @@ -277,8 +253,6 @@ + }, + "node_modules/@aws-crypto/sha256-js": { + "version": "5.2.0", -+ "resolved": "https://registry.npmjs.org/@aws-crypto/sha256-js/-/sha256-js-5.2.0.tgz", -+ "integrity": "sha512-FFQQyu7edu4ufvIZ+OadFpHHOt+eSTBaYaki44c+akjg7qZg9oOQeLlk77F6tSYqjDAFClrHJk9tMf0HdVyOvA==", + "license": "Apache-2.0", + "dependencies": { + "@aws-crypto/util": "^5.2.0", @@ -291,8 +265,6 @@ + }, + "node_modules/@aws-crypto/supports-web-crypto": { + "version": "5.2.0", -+ "resolved": "https://registry.npmjs.org/@aws-crypto/supports-web-crypto/-/supports-web-crypto-5.2.0.tgz", -+ "integrity": "sha512-iAvUotm021kM33eCdNfwIN//F77/IADDSs58i+MDaOqFrVjZo9bAal0NK7HurRuWLLpF1iLX7gbWrjHjeo+YFg==", + "license": "Apache-2.0", + "dependencies": { + "tslib": "^2.6.2" @@ -300,8 +272,6 @@ + }, + "node_modules/@aws-crypto/util": { + "version": "5.2.0", -+ "resolved": "https://registry.npmjs.org/@aws-crypto/util/-/util-5.2.0.tgz", -+ "integrity": "sha512-4RkU9EsI6ZpBve5fseQlGNUWKMa1RLPQ1dnjnQoe07ldfIzcsGb5hC5W0Dm7u423KWzawlrpbjXBrXCEv9zazQ==", + "license": "Apache-2.0", + "dependencies": { + "@aws-sdk/types": "^3.222.0", @@ -311,8 +281,6 @@ + }, + "node_modules/@aws-crypto/util/node_modules/@smithy/is-array-buffer": { + "version": "2.2.0", -+ "resolved": "https://registry.npmjs.org/@smithy/is-array-buffer/-/is-array-buffer-2.2.0.tgz", -+ "integrity": "sha512-GGP3O9QFD24uGeAXYUjwSTXARoqpZykHadOmA8G5vfJPK0/DC67qa//0qvqrJzL1xc8WQWX7/yc7fwudjPHPhA==", + "license": "Apache-2.0", + "dependencies": { + "tslib": "^2.6.2" @@ -323,8 +291,6 @@ + }, + "node_modules/@aws-crypto/util/node_modules/@smithy/util-buffer-from": { + "version": "2.2.0", -+ "resolved": "https://registry.npmjs.org/@smithy/util-buffer-from/-/util-buffer-from-2.2.0.tgz", -+ "integrity": "sha512-IJdWBbTcMQ6DA0gdNhh/BwrLkDR+ADW5Kr1aZmd4k3DIF6ezMV4R2NIAmT08wQJ3yUK82thHWmC/TnK/wpMMIA==", + "license": "Apache-2.0", + "dependencies": { + "@smithy/is-array-buffer": "^2.2.0", @@ -336,8 +302,6 @@ + }, + "node_modules/@aws-crypto/util/node_modules/@smithy/util-utf8": { + "version": "2.3.0", -+ "resolved": "https://registry.npmjs.org/@smithy/util-utf8/-/util-utf8-2.3.0.tgz", -+ "integrity": "sha512-R8Rdn8Hy72KKcebgLiv8jQcQkXoLMOGGv5uI1/k0l+snqkOzQ1R0ChUBCxWMlBsFMekWjq0wRudIweFs7sKT5A==", + "license": "Apache-2.0", + "dependencies": { + "@smithy/util-buffer-from": "^2.2.0", @@ -349,8 +313,6 @@ + }, + "node_modules/@aws-sdk/client-s3": { + "version": "3.758.0", -+ "resolved": "https://registry.npmjs.org/@aws-sdk/client-s3/-/client-s3-3.758.0.tgz", -+ "integrity": "sha512-f8SlhU9/93OC/WEI6xVJf/x/GoQFj9a/xXK6QCtr5fvCjfSLgMVFmKTiIl/tgtDRzxUDc8YS6EGtbHjJ3Y/atg==", + "license": "Apache-2.0", + "dependencies": { + "@aws-crypto/sha1-browser": "5.2.0", @@ -416,8 +378,6 @@ + }, + "node_modules/@aws-sdk/client-sso": { + "version": "3.758.0", -+ "resolved": "https://registry.npmjs.org/@aws-sdk/client-sso/-/client-sso-3.758.0.tgz", -+ "integrity": "sha512-BoGO6IIWrLyLxQG6txJw6RT2urmbtlwfggapNCrNPyYjlXpzTSJhBYjndg7TpDATFd0SXL0zm8y/tXsUXNkdYQ==", + "license": "Apache-2.0", + "dependencies": { + "@aws-crypto/sha256-browser": "5.2.0", @@ -465,8 +425,6 @@ + }, + "node_modules/@aws-sdk/core": { + "version": "3.758.0", -+ "resolved": "https://registry.npmjs.org/@aws-sdk/core/-/core-3.758.0.tgz", -+ "integrity": "sha512-0RswbdR9jt/XKemaLNuxi2gGr4xGlHyGxkTdhSQzCyUe9A9OPCoLl3rIESRguQEech+oJnbHk/wuiwHqTuP9sg==", + "license": "Apache-2.0", + "dependencies": { + "@aws-sdk/types": "3.734.0", @@ -487,8 +445,6 @@ + }, + "node_modules/@aws-sdk/credential-provider-env": { + "version": "3.758.0", -+ "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-env/-/credential-provider-env-3.758.0.tgz", -+ "integrity": "sha512-N27eFoRrO6MeUNumtNHDW9WOiwfd59LPXPqDrIa3kWL/s+fOKFHb9xIcF++bAwtcZnAxKkgpDCUP+INNZskE+w==", + "license": "Apache-2.0", + "dependencies": { + "@aws-sdk/core": "3.758.0", @@ -503,8 +459,6 @@ + }, + "node_modules/@aws-sdk/credential-provider-http": { + "version": "3.758.0", -+ "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-http/-/credential-provider-http-3.758.0.tgz", -+ "integrity": "sha512-Xt9/U8qUCiw1hihztWkNeIR+arg6P+yda10OuCHX6kFVx3auTlU7+hCqs3UxqniGU4dguHuftf3mRpi5/GJ33Q==", + "license": "Apache-2.0", + "dependencies": { + "@aws-sdk/core": "3.758.0", @@ -524,8 +478,6 @@ + }, + "node_modules/@aws-sdk/credential-provider-ini": { + "version": "3.758.0", -+ "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-ini/-/credential-provider-ini-3.758.0.tgz", -+ "integrity": "sha512-cymSKMcP5d+OsgetoIZ5QCe1wnp2Q/tq+uIxVdh9MbfdBBEnl9Ecq6dH6VlYS89sp4QKuxHxkWXVnbXU3Q19Aw==", + "license": "Apache-2.0", + "dependencies": { + "@aws-sdk/core": "3.758.0", @@ -548,8 +500,6 @@ + }, + "node_modules/@aws-sdk/credential-provider-node": { + "version": "3.758.0", -+ "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-node/-/credential-provider-node-3.758.0.tgz", -+ "integrity": "sha512-+DaMv63wiq7pJrhIQzZYMn4hSarKiizDoJRvyR7WGhnn0oQ/getX9Z0VNCV3i7lIFoLNTb7WMmQ9k7+z/uD5EQ==", + "license": "Apache-2.0", + "dependencies": { + "@aws-sdk/credential-provider-env": "3.758.0", @@ -571,8 +521,6 @@ + }, + "node_modules/@aws-sdk/credential-provider-process": { + "version": "3.758.0", -+ "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-process/-/credential-provider-process-3.758.0.tgz", -+ "integrity": "sha512-AzcY74QTPqcbXWVgjpPZ3HOmxQZYPROIBz2YINF0OQk0MhezDWV/O7Xec+K1+MPGQO3qS6EDrUUlnPLjsqieHA==", + "license": "Apache-2.0", + "dependencies": { + "@aws-sdk/core": "3.758.0", @@ -588,8 +536,6 @@ + }, + "node_modules/@aws-sdk/credential-provider-sso": { + "version": "3.758.0", -+ "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-sso/-/credential-provider-sso-3.758.0.tgz", -+ "integrity": "sha512-x0FYJqcOLUCv8GLLFDYMXRAQKGjoM+L0BG4BiHYZRDf24yQWFCAZsCQAYKo6XZYh2qznbsW6f//qpyJ5b0QVKQ==", + "license": "Apache-2.0", + "dependencies": { + "@aws-sdk/client-sso": "3.758.0", @@ -607,8 +553,6 @@ + }, + "node_modules/@aws-sdk/credential-provider-web-identity": { + "version": "3.758.0", -+ "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-web-identity/-/credential-provider-web-identity-3.758.0.tgz", -+ "integrity": "sha512-XGguXhBqiCXMXRxcfCAVPlMbm3VyJTou79r/3mxWddHWF0XbhaQiBIbUz6vobVTD25YQRbWSmSch7VA8kI5Lrw==", + "license": "Apache-2.0", + "dependencies": { + "@aws-sdk/core": "3.758.0", @@ -624,8 +568,6 @@ + }, + "node_modules/@aws-sdk/middleware-bucket-endpoint": { + "version": "3.734.0", -+ "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-bucket-endpoint/-/middleware-bucket-endpoint-3.734.0.tgz", -+ "integrity": "sha512-etC7G18aF7KdZguW27GE/wpbrNmYLVT755EsFc8kXpZj8D6AFKxc7OuveinJmiy0bYXAMspJUWsF6CrGpOw6CQ==", + "license": "Apache-2.0", + "dependencies": { + "@aws-sdk/types": "3.734.0", @@ -642,8 +584,6 @@ + }, + "node_modules/@aws-sdk/middleware-expect-continue": { + "version": "3.734.0", -+ "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-expect-continue/-/middleware-expect-continue-3.734.0.tgz", -+ "integrity": "sha512-P38/v1l6HjuB2aFUewt7ueAW5IvKkFcv5dalPtbMGRhLeyivBOHwbCyuRKgVs7z7ClTpu9EaViEGki2jEQqEsQ==", + "license": "Apache-2.0", + "dependencies": { + "@aws-sdk/types": "3.734.0", @@ -657,8 +597,6 @@ + }, + "node_modules/@aws-sdk/middleware-flexible-checksums": { + "version": "3.758.0", -+ "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-flexible-checksums/-/middleware-flexible-checksums-3.758.0.tgz", -+ "integrity": "sha512-o8Rk71S08YTKLoSobucjnbj97OCGaXgpEDNKXpXaavUM5xLNoHCLSUPRCiEN86Ivqxg1n17Y2nSRhfbsveOXXA==", + "license": "Apache-2.0", + "dependencies": { + "@aws-crypto/crc32": "5.2.0", @@ -681,8 +619,6 @@ + }, + "node_modules/@aws-sdk/middleware-host-header": { + "version": "3.734.0", -+ "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-host-header/-/middleware-host-header-3.734.0.tgz", -+ "integrity": "sha512-LW7RRgSOHHBzWZnigNsDIzu3AiwtjeI2X66v+Wn1P1u+eXssy1+up4ZY/h+t2sU4LU36UvEf+jrZti9c6vRnFw==", + "license": "Apache-2.0", + "dependencies": { + "@aws-sdk/types": "3.734.0", @@ -696,8 +632,6 @@ + }, + "node_modules/@aws-sdk/middleware-location-constraint": { + "version": "3.734.0", -+ "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-location-constraint/-/middleware-location-constraint-3.734.0.tgz", -+ "integrity": "sha512-EJEIXwCQhto/cBfHdm3ZOeLxd2NlJD+X2F+ZTOxzokuhBtY0IONfC/91hOo5tWQweerojwshSMHRCKzRv1tlwg==", + "license": "Apache-2.0", + "dependencies": { + "@aws-sdk/types": "3.734.0", @@ -710,8 +644,6 @@ + }, + "node_modules/@aws-sdk/middleware-logger": { + "version": "3.734.0", -+ "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-logger/-/middleware-logger-3.734.0.tgz", -+ "integrity": "sha512-mUMFITpJUW3LcKvFok176eI5zXAUomVtahb9IQBwLzkqFYOrMJvWAvoV4yuxrJ8TlQBG8gyEnkb9SnhZvjg67w==", + "license": "Apache-2.0", + "dependencies": { + "@aws-sdk/types": "3.734.0", @@ -724,8 +656,6 @@ + }, + "node_modules/@aws-sdk/middleware-recursion-detection": { + "version": "3.734.0", -+ "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-recursion-detection/-/middleware-recursion-detection-3.734.0.tgz", -+ "integrity": "sha512-CUat2d9ITsFc2XsmeiRQO96iWpxSKYFjxvj27Hc7vo87YUHRnfMfnc8jw1EpxEwMcvBD7LsRa6vDNky6AjcrFA==", + "license": "Apache-2.0", + "dependencies": { + "@aws-sdk/types": "3.734.0", @@ -739,8 +669,6 @@ + }, + "node_modules/@aws-sdk/middleware-sdk-s3": { + "version": "3.758.0", -+ "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-sdk-s3/-/middleware-sdk-s3-3.758.0.tgz", -+ "integrity": "sha512-6mJ2zyyHPYSV6bAcaFpsdoXZJeQlR1QgBnZZ6juY/+dcYiuyWCdyLUbGzSZSE7GTfx6i+9+QWFeoIMlWKgU63A==", + "license": "Apache-2.0", + "dependencies": { + "@aws-sdk/core": "3.758.0", @@ -764,8 +692,6 @@ + }, + "node_modules/@aws-sdk/middleware-ssec": { + "version": "3.734.0", -+ "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-ssec/-/middleware-ssec-3.734.0.tgz", -+ "integrity": "sha512-d4yd1RrPW/sspEXizq2NSOUivnheac6LPeLSLnaeTbBG9g1KqIqvCzP1TfXEqv2CrWfHEsWtJpX7oyjySSPvDQ==", + "license": "Apache-2.0", + "dependencies": { + "@aws-sdk/types": "3.734.0", @@ -778,8 +704,6 @@ + }, + "node_modules/@aws-sdk/middleware-user-agent": { + "version": "3.758.0", -+ "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-user-agent/-/middleware-user-agent-3.758.0.tgz", -+ "integrity": "sha512-iNyehQXtQlj69JCgfaOssgZD4HeYGOwxcaKeG6F+40cwBjTAi0+Ph1yfDwqk2qiBPIRWJ/9l2LodZbxiBqgrwg==", + "license": "Apache-2.0", + "dependencies": { + "@aws-sdk/core": "3.758.0", @@ -796,8 +720,6 @@ + }, + "node_modules/@aws-sdk/nested-clients": { + "version": "3.758.0", -+ "resolved": "https://registry.npmjs.org/@aws-sdk/nested-clients/-/nested-clients-3.758.0.tgz", -+ "integrity": "sha512-YZ5s7PSvyF3Mt2h1EQulCG93uybprNGbBkPmVuy/HMMfbFTt4iL3SbKjxqvOZelm86epFfj7pvK7FliI2WOEcg==", + "license": "Apache-2.0", + "dependencies": { + "@aws-crypto/sha256-browser": "5.2.0", @@ -845,8 +767,6 @@ + }, + "node_modules/@aws-sdk/region-config-resolver": { + "version": "3.734.0", -+ "resolved": "https://registry.npmjs.org/@aws-sdk/region-config-resolver/-/region-config-resolver-3.734.0.tgz", -+ "integrity": "sha512-Lvj1kPRC5IuJBr9DyJ9T9/plkh+EfKLy+12s/mykOy1JaKHDpvj+XGy2YO6YgYVOb8JFtaqloid+5COtje4JTQ==", + "license": "Apache-2.0", + "dependencies": { + "@aws-sdk/types": "3.734.0", @@ -862,8 +782,6 @@ + }, + "node_modules/@aws-sdk/s3-presigned-post": { + "version": "3.758.0", -+ "resolved": "https://registry.npmjs.org/@aws-sdk/s3-presigned-post/-/s3-presigned-post-3.758.0.tgz", -+ "integrity": "sha512-x+TWQ6xYD+/i3IlIM0nn1HGAKCmkG12VslKyJSrZAjwWQeVerj6LPVIJvYFcZbNU5lEPWCnlVqKw3S3NgG+N4Q==", + "license": "Apache-2.0", + "dependencies": { + "@aws-sdk/client-s3": "3.758.0", @@ -882,8 +800,6 @@ + }, + "node_modules/@aws-sdk/s3-request-presigner": { + "version": "3.758.0", -+ "resolved": "https://registry.npmjs.org/@aws-sdk/s3-request-presigner/-/s3-request-presigner-3.758.0.tgz", -+ "integrity": "sha512-dVyItwu/J1InfJBbCPpHRV9jrsBfI7L0RlDGyS3x/xqBwnm5qpvgNZQasQiyqIl+WJB4f5rZRZHgHuwftqINbA==", + "license": "Apache-2.0", + "dependencies": { + "@aws-sdk/signature-v4-multi-region": "3.758.0", @@ -901,8 +817,6 @@ + }, + "node_modules/@aws-sdk/signature-v4-multi-region": { + "version": "3.758.0", -+ "resolved": "https://registry.npmjs.org/@aws-sdk/signature-v4-multi-region/-/signature-v4-multi-region-3.758.0.tgz", -+ "integrity": "sha512-0RPCo8fYJcrenJ6bRtiUbFOSgQ1CX/GpvwtLU2Fam1tS9h2klKK8d74caeV6A1mIUvBU7bhyQ0wMGlwMtn3EYw==", + "license": "Apache-2.0", + "dependencies": { + "@aws-sdk/middleware-sdk-s3": "3.758.0", @@ -918,8 +832,6 @@ + }, + "node_modules/@aws-sdk/token-providers": { + "version": "3.758.0", -+ "resolved": "https://registry.npmjs.org/@aws-sdk/token-providers/-/token-providers-3.758.0.tgz", -+ "integrity": "sha512-ckptN1tNrIfQUaGWm/ayW1ddG+imbKN7HHhjFdS4VfItsP0QQOB0+Ov+tpgb4MoNR4JaUghMIVStjIeHN2ks1w==", + "license": "Apache-2.0", + "dependencies": { + "@aws-sdk/nested-clients": "3.758.0", @@ -935,8 +847,6 @@ + }, + "node_modules/@aws-sdk/types": { + "version": "3.734.0", -+ "resolved": "https://registry.npmjs.org/@aws-sdk/types/-/types-3.734.0.tgz", -+ "integrity": "sha512-o11tSPTT70nAkGV1fN9wm/hAIiLPyWX6SuGf+9JyTp7S/rC2cFWhR26MvA69nplcjNaXVzB0f+QFrLXXjOqCrg==", + "license": "Apache-2.0", + "dependencies": { + "@smithy/types": "^4.1.0", @@ -948,8 +858,6 @@ + }, + "node_modules/@aws-sdk/util-arn-parser": { + "version": "3.723.0", -+ "resolved": "https://registry.npmjs.org/@aws-sdk/util-arn-parser/-/util-arn-parser-3.723.0.tgz", -+ "integrity": "sha512-ZhEfvUwNliOQROcAk34WJWVYTlTa4694kSVhDSjW6lE1bMataPnIN8A0ycukEzBXmd8ZSoBcQLn6lKGl7XIJ5w==", + "license": "Apache-2.0", + "dependencies": { + "tslib": "^2.6.2" @@ -960,8 +868,6 @@ + }, + "node_modules/@aws-sdk/util-endpoints": { + "version": "3.743.0", -+ "resolved": "https://registry.npmjs.org/@aws-sdk/util-endpoints/-/util-endpoints-3.743.0.tgz", -+ "integrity": "sha512-sN1l559zrixeh5x+pttrnd0A3+r34r0tmPkJ/eaaMaAzXqsmKU/xYre9K3FNnsSS1J1k4PEfk/nHDTVUgFYjnw==", + "license": "Apache-2.0", + "dependencies": { + "@aws-sdk/types": "3.734.0", @@ -975,8 +881,6 @@ + }, + "node_modules/@aws-sdk/util-format-url": { + "version": "3.734.0", -+ "resolved": "https://registry.npmjs.org/@aws-sdk/util-format-url/-/util-format-url-3.734.0.tgz", -+ "integrity": "sha512-TxZMVm8V4aR/QkW9/NhujvYpPZjUYqzLwSge5imKZbWFR806NP7RMwc5ilVuHF/bMOln/cVHkl42kATElWBvNw==", + "license": "Apache-2.0", + "dependencies": { + "@aws-sdk/types": "3.734.0", @@ -990,8 +894,6 @@ + }, + "node_modules/@aws-sdk/util-locate-window": { + "version": "3.723.0", -+ "resolved": "https://registry.npmjs.org/@aws-sdk/util-locate-window/-/util-locate-window-3.723.0.tgz", -+ "integrity": "sha512-Yf2CS10BqK688DRsrKI/EO6B8ff5J86NXe4C+VCysK7UOgN0l1zOTeTukZ3H8Q9tYYX3oaF1961o8vRkFm7Nmw==", + "license": "Apache-2.0", + "dependencies": { + "tslib": "^2.6.2" @@ -1002,8 +904,6 @@ + }, + "node_modules/@aws-sdk/util-user-agent-browser": { + "version": "3.734.0", -+ "resolved": "https://registry.npmjs.org/@aws-sdk/util-user-agent-browser/-/util-user-agent-browser-3.734.0.tgz", -+ "integrity": "sha512-xQTCus6Q9LwUuALW+S76OL0jcWtMOVu14q+GoLnWPUM7QeUw963oQcLhF7oq0CtaLLKyl4GOUfcwc773Zmwwng==", + "license": "Apache-2.0", + "dependencies": { + "@aws-sdk/types": "3.734.0", @@ -1014,8 +914,6 @@ + }, + "node_modules/@aws-sdk/util-user-agent-node": { + "version": "3.758.0", -+ "resolved": "https://registry.npmjs.org/@aws-sdk/util-user-agent-node/-/util-user-agent-node-3.758.0.tgz", -+ "integrity": "sha512-A5EZw85V6WhoKMV2hbuFRvb9NPlxEErb4HPO6/SPXYY4QrjprIzScHxikqcWv1w4J3apB1wto9LPU3IMsYtfrw==", + "license": "Apache-2.0", + "dependencies": { + "@aws-sdk/middleware-user-agent": "3.758.0", @@ -1038,8 +936,6 @@ + }, + "node_modules/@aws-sdk/xml-builder": { + "version": "3.734.0", -+ "resolved": "https://registry.npmjs.org/@aws-sdk/xml-builder/-/xml-builder-3.734.0.tgz", -+ "integrity": "sha512-Zrjxi5qwGEcUsJ0ru7fRtW74WcTS0rbLcehoFB+rN1GRi2hbLcFaYs4PwVA5diLeAJH0gszv3x4Hr/S87MfbKQ==", + "license": "Apache-2.0", + "dependencies": { + "@smithy/types": "^4.1.0", @@ -1051,8 +947,6 @@ + }, + "node_modules/@babel/code-frame": { + "version": "7.26.2", -+ "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.26.2.tgz", -+ "integrity": "sha512-RJlIHRueQgwWitWgF8OdFYGZX328Ax5BCemNGlqHfplnRT9ESi8JkFlvaVYbS+UubVY6dpv87Fs2u5M29iNFVQ==", + "license": "MIT", + "dependencies": { + "@babel/helper-validator-identifier": "^7.25.9", @@ -1065,8 +959,6 @@ + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.25.9", -+ "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.25.9.tgz", -+ "integrity": "sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ==", + "license": "MIT", + "engines": { + "node": ">=6.9.0" @@ -1074,8 +966,6 @@ + }, + "node_modules/@babel/runtime": { + "version": "7.26.10", -+ "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.26.10.tgz", -+ "integrity": "sha512-2WJMeRQPHKSPemqk/awGrAiuFfzBmOIPXKizAsVhWH9YJqLZ0H+HS4c8loHGgW6utJ3E/ejXQUsiGaQy2NZ9Fw==", + "license": "MIT", + "dependencies": { + "regenerator-runtime": "^0.14.0" @@ -1084,625 +974,184 @@ + "node": ">=6.9.0" + } + }, -+ "node_modules/@emnapi/core": { -+ "version": "1.3.1", -+ "resolved": "https://registry.npmjs.org/@emnapi/core/-/core-1.3.1.tgz", -+ "integrity": "sha512-pVGjBIt1Y6gg3EJN8jTcfpP/+uuRksIo055oE/OBkDNcjZqVbfkWCksG1Jp4yZnj3iKWyWX8fdG/j6UDYPbFog==", -+ "license": "MIT", -+ "optional": true, -+ "dependencies": { -+ "@emnapi/wasi-threads": "1.0.1", -+ "tslib": "^2.4.0" -+ } -+ }, -+ "node_modules/@emnapi/runtime": { -+ "version": "1.3.1", -+ "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.3.1.tgz", -+ "integrity": "sha512-kEBmG8KyqtxJZv+ygbEim+KCGtIq1fC22Ms3S4ziXmYKm8uyoLX0MHONVKwp+9opg390VaKRNt4a7A9NwmpNhw==", -+ "license": "MIT", -+ "optional": true, -+ "dependencies": { -+ "tslib": "^2.4.0" -+ } -+ }, -+ "node_modules/@emnapi/wasi-threads": { -+ "version": "1.0.1", -+ "resolved": "https://registry.npmjs.org/@emnapi/wasi-threads/-/wasi-threads-1.0.1.tgz", -+ "integrity": "sha512-iIBu7mwkq4UQGeMEM8bLwNK962nXdhodeScX4slfQnRhEMMzvYivHhutCIk8uojvmASXXPC2WNEjwxFWk72Oqw==", -+ "license": "MIT", -+ "optional": true, -+ "dependencies": { -+ "tslib": "^2.4.0" -+ } -+ }, -+ "node_modules/@esbuild/aix-ppc64": { -+ "version": "0.21.5", -+ "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.21.5.tgz", -+ "integrity": "sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==", -+ "cpu": [ -+ "ppc64" -+ ], -+ "license": "MIT", -+ "optional": true, -+ "os": [ -+ "aix" -+ ], -+ "engines": { -+ "node": ">=12" -+ } -+ }, -+ "node_modules/@esbuild/android-arm": { ++ "node_modules/@esbuild/darwin-arm64": { + "version": "0.18.20", -+ "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.18.20.tgz", -+ "integrity": "sha512-fyi7TDI/ijKKNZTUJAQqiG5T7YjJXgnzkURqmGj13C6dCqckZBLdl4h7bkhHt/t0WP+zO9/zwroDvANaOqO5Sw==", + "cpu": [ -+ "arm" ++ "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ -+ "android" ++ "darwin" + ], + "engines": { + "node": ">=12" + } + }, -+ "node_modules/@esbuild/android-arm64": { -+ "version": "0.18.20", -+ "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.18.20.tgz", -+ "integrity": "sha512-Nz4rJcchGDtENV0eMKUNa6L12zz2zBDXuhj/Vjh18zGqB44Bi7MBMSXjgunJgjRhCmKOjnPuZp4Mb6OKqtMHLQ==", -+ "cpu": [ -+ "arm64" -+ ], ++ "node_modules/@faker-js/faker": { ++ "version": "8.3.1", + "dev": true, -+ "license": "MIT", -+ "optional": true, -+ "os": [ -+ "android" ++ "funding": [ ++ { ++ "type": "opencollective", ++ "url": "https://opencollective.com/fakerjs" ++ } + ], ++ "license": "MIT", + "engines": { -+ "node": ">=12" ++ "node": "^14.17.0 || ^16.13.0 || >=18.0.0", ++ "npm": ">=6.14.13" + } + }, -+ "node_modules/@esbuild/android-x64": { -+ "version": "0.18.20", -+ "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.18.20.tgz", -+ "integrity": "sha512-8GDdlePJA8D6zlZYJV/jnrRAi6rOiNaCC/JclcXpB+KIuvfBN4owLtgzY2bsxnx666XjJx2kDPUmnTtR8qKQUg==", -+ "cpu": [ -+ "x64" -+ ], -+ "dev": true, ++ "node_modules/@floating-ui/core": { ++ "version": "1.7.2", + "license": "MIT", -+ "optional": true, -+ "os": [ -+ "android" -+ ], -+ "engines": { -+ "node": ">=12" ++ "dependencies": { ++ "@floating-ui/utils": "^0.2.10" + } + }, -+ "node_modules/@esbuild/darwin-arm64": { -+ "version": "0.18.20", -+ "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.18.20.tgz", -+ "integrity": "sha512-bxRHW5kHU38zS2lPTPOyuyTm+S+eobPUnTNkdJEfAddYgEcll4xkT8DB9d2008DtTbl7uJag2HuE5NZAZgnNEA==", -+ "cpu": [ -+ "arm64" -+ ], -+ "dev": true, ++ "node_modules/@floating-ui/dom": { ++ "version": "1.7.2", + "license": "MIT", -+ "optional": true, -+ "os": [ -+ "darwin" -+ ], -+ "engines": { -+ "node": ">=12" ++ "dependencies": { ++ "@floating-ui/core": "^1.7.2", ++ "@floating-ui/utils": "^0.2.10" + } + }, -+ "node_modules/@esbuild/darwin-x64": { -+ "version": "0.18.20", -+ "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.18.20.tgz", -+ "integrity": "sha512-pc5gxlMDxzm513qPGbCbDukOdsGtKhfxD1zJKXjCCcU7ju50O7MeAZ8c4krSJcOIJGFR+qx21yMMVYwiQvyTyQ==", -+ "cpu": [ -+ "x64" -+ ], -+ "dev": true, ++ "node_modules/@floating-ui/react-dom": { ++ "version": "2.1.4", + "license": "MIT", -+ "optional": true, -+ "os": [ -+ "darwin" -+ ], -+ "engines": { -+ "node": ">=12" ++ "dependencies": { ++ "@floating-ui/dom": "^1.7.2" ++ }, ++ "peerDependencies": { ++ "react": ">=16.8.0", ++ "react-dom": ">=16.8.0" + } + }, -+ "node_modules/@esbuild/freebsd-arm64": { -+ "version": "0.18.20", -+ "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.18.20.tgz", -+ "integrity": "sha512-yqDQHy4QHevpMAaxhhIwYPMv1NECwOvIpGCZkECn8w2WFHXjEwrBn3CeNIYsibZ/iZEUemj++M26W3cNR5h+Tw==", -+ "cpu": [ -+ "arm64" -+ ], -+ "dev": true, -+ "license": "MIT", -+ "optional": true, -+ "os": [ -+ "freebsd" -+ ], ++ "node_modules/@floating-ui/utils": { ++ "version": "0.2.10", ++ "license": "MIT" ++ }, ++ "node_modules/@google-analytics/data": { ++ "version": "4.1.0", ++ "license": "Apache-2.0", ++ "dependencies": { ++ "google-gax": "^4.0.3" ++ }, + "engines": { -+ "node": ">=12" ++ "node": ">=14.0.0" + } + }, -+ "node_modules/@esbuild/freebsd-x64": { -+ "version": "0.18.20", -+ "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.18.20.tgz", -+ "integrity": "sha512-tgWRPPuQsd3RmBZwarGVHZQvtzfEBOreNuxEMKFcd5DaDn2PbBxfwLcj4+aenoh7ctXcbXmOQIn8HI6mCSw5MQ==", -+ "cpu": [ -+ "x64" -+ ], -+ "dev": true, -+ "license": "MIT", -+ "optional": true, -+ "os": [ -+ "freebsd" -+ ], ++ "node_modules/@grpc/grpc-js": { ++ "version": "1.13.0", ++ "license": "Apache-2.0", ++ "dependencies": { ++ "@grpc/proto-loader": "^0.7.13", ++ "@js-sdsl/ordered-map": "^4.4.2" ++ }, + "engines": { -+ "node": ">=12" ++ "node": ">=12.10.0" + } + }, -+ "node_modules/@esbuild/linux-arm": { -+ "version": "0.18.20", -+ "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.18.20.tgz", -+ "integrity": "sha512-/5bHkMWnq1EgKr1V+Ybz3s1hWXok7mDFUMQ4cG10AfW3wL02PSZi5kFpYKrptDsgb2WAJIvRcDm+qIvXf/apvg==", -+ "cpu": [ -+ "arm" -+ ], -+ "dev": true, -+ "license": "MIT", -+ "optional": true, -+ "os": [ -+ "linux" -+ ], ++ "node_modules/@grpc/proto-loader": { ++ "version": "0.7.13", ++ "license": "Apache-2.0", ++ "dependencies": { ++ "lodash.camelcase": "^4.3.0", ++ "long": "^5.0.0", ++ "protobufjs": "^7.2.5", ++ "yargs": "^17.7.2" ++ }, ++ "bin": { ++ "proto-loader-gen-types": "build/bin/proto-loader-gen-types.js" ++ }, + "engines": { -+ "node": ">=12" ++ "node": ">=6" + } + }, -+ "node_modules/@esbuild/linux-arm64": { -+ "version": "0.18.20", -+ "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.18.20.tgz", -+ "integrity": "sha512-2YbscF+UL7SQAVIpnWvYwM+3LskyDmPhe31pE7/aoTMFKKzIc9lLbyGUpmmb8a8AixOL61sQ/mFh3jEjHYFvdA==", -+ "cpu": [ -+ "arm64" -+ ], -+ "dev": true, ++ "node_modules/@headlessui/react": { ++ "version": "1.7.13", + "license": "MIT", -+ "optional": true, -+ "os": [ -+ "linux" -+ ], ++ "dependencies": { ++ "client-only": "^0.0.1" ++ }, + "engines": { -+ "node": ">=12" ++ "node": ">=10" ++ }, ++ "peerDependencies": { ++ "react": "^16 || ^17 || ^18", ++ "react-dom": "^16 || ^17 || ^18" + } + }, -+ "node_modules/@esbuild/linux-ia32": { -+ "version": "0.18.20", -+ "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.18.20.tgz", -+ "integrity": "sha512-P4etWwq6IsReT0E1KHU40bOnzMHoH73aXp96Fs8TIT6z9Hu8G6+0SHSw9i2isWrD2nbx2qo5yUqACgdfVGx7TA==", -+ "cpu": [ -+ "ia32" -+ ], -+ "dev": true, ++ "node_modules/@hookform/resolvers": { ++ "version": "5.1.1", + "license": "MIT", -+ "optional": true, -+ "os": [ -+ "linux" -+ ], ++ "dependencies": { ++ "@standard-schema/utils": "^0.3.0" ++ }, ++ "peerDependencies": { ++ "react-hook-form": "^7.55.0" ++ } ++ }, ++ "node_modules/@isaacs/cliui": { ++ "version": "8.0.2", ++ "license": "ISC", ++ "dependencies": { ++ "string-width": "^5.1.2", ++ "string-width-cjs": "npm:string-width@^4.2.0", ++ "strip-ansi": "^7.0.1", ++ "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", ++ "wrap-ansi": "^8.1.0", ++ "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" ++ }, + "engines": { + "node": ">=12" + } + }, -+ "node_modules/@esbuild/linux-loong64": { -+ "version": "0.18.20", -+ "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.18.20.tgz", -+ "integrity": "sha512-nXW8nqBTrOpDLPgPY9uV+/1DjxoQ7DoB2N8eocyq8I9XuqJ7BiAMDMf9n1xZM9TgW0J8zrquIb/A7s3BJv7rjg==", -+ "cpu": [ -+ "loong64" -+ ], -+ "dev": true, ++ "node_modules/@jest/schemas": { ++ "version": "29.6.3", + "license": "MIT", -+ "optional": true, -+ "os": [ -+ "linux" -+ ], ++ "dependencies": { ++ "@sinclair/typebox": "^0.27.8" ++ }, + "engines": { -+ "node": ">=12" ++ "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, -+ "node_modules/@esbuild/linux-mips64el": { -+ "version": "0.18.20", -+ "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.18.20.tgz", -+ "integrity": "sha512-d5NeaXZcHp8PzYy5VnXV3VSd2D328Zb+9dEq5HE6bw6+N86JVPExrA6O68OPwobntbNJ0pzCpUFZTo3w0GyetQ==", -+ "cpu": [ -+ "mips64el" -+ ], -+ "dev": true, ++ "node_modules/@jridgewell/gen-mapping": { ++ "version": "0.3.8", + "license": "MIT", -+ "optional": true, -+ "os": [ -+ "linux" -+ ], ++ "dependencies": { ++ "@jridgewell/set-array": "^1.2.1", ++ "@jridgewell/sourcemap-codec": "^1.4.10", ++ "@jridgewell/trace-mapping": "^0.3.24" ++ }, + "engines": { -+ "node": ">=12" ++ "node": ">=6.0.0" + } + }, -+ "node_modules/@esbuild/linux-ppc64": { -+ "version": "0.18.20", -+ "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.18.20.tgz", -+ "integrity": "sha512-WHPyeScRNcmANnLQkq6AfyXRFr5D6N2sKgkFo2FqguP44Nw2eyDlbTdZwd9GYk98DZG9QItIiTlFLHJHjxP3FA==", -+ "cpu": [ -+ "ppc64" -+ ], -+ "dev": true, ++ "node_modules/@jridgewell/resolve-uri": { ++ "version": "3.1.2", + "license": "MIT", -+ "optional": true, -+ "os": [ -+ "linux" -+ ], + "engines": { -+ "node": ">=12" ++ "node": ">=6.0.0" + } + }, -+ "node_modules/@esbuild/linux-riscv64": { -+ "version": "0.18.20", -+ "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.18.20.tgz", -+ "integrity": "sha512-WSxo6h5ecI5XH34KC7w5veNnKkju3zBRLEQNY7mv5mtBmrP/MjNBCAlsM2u5hDBlS3NGcTQpoBvRzqBcRtpq1A==", -+ "cpu": [ -+ "riscv64" -+ ], -+ "dev": true, ++ "node_modules/@jridgewell/set-array": { ++ "version": "1.2.1", + "license": "MIT", -+ "optional": true, -+ "os": [ -+ "linux" -+ ], + "engines": { -+ "node": ">=12" -+ } -+ }, -+ "node_modules/@esbuild/linux-s390x": { -+ "version": "0.18.20", -+ "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.18.20.tgz", -+ "integrity": "sha512-+8231GMs3mAEth6Ja1iK0a1sQ3ohfcpzpRLH8uuc5/KVDFneH6jtAJLFGafpzpMRO6DzJ6AvXKze9LfFMrIHVQ==", -+ "cpu": [ -+ "s390x" -+ ], -+ "dev": true, -+ "license": "MIT", -+ "optional": true, -+ "os": [ -+ "linux" -+ ], -+ "engines": { -+ "node": ">=12" -+ } -+ }, -+ "node_modules/@esbuild/linux-x64": { -+ "version": "0.18.20", -+ "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.18.20.tgz", -+ "integrity": "sha512-UYqiqemphJcNsFEskc73jQ7B9jgwjWrSayxawS6UVFZGWrAAtkzjxSqnoclCXxWtfwLdzU+vTpcNYhpn43uP1w==", -+ "cpu": [ -+ "x64" -+ ], -+ "dev": true, -+ "license": "MIT", -+ "optional": true, -+ "os": [ -+ "linux" -+ ], -+ "engines": { -+ "node": ">=12" -+ } -+ }, -+ "node_modules/@esbuild/netbsd-x64": { -+ "version": "0.18.20", -+ "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.18.20.tgz", -+ "integrity": "sha512-iO1c++VP6xUBUmltHZoMtCUdPlnPGdBom6IrO4gyKPFFVBKioIImVooR5I83nTew5UOYrk3gIJhbZh8X44y06A==", -+ "cpu": [ -+ "x64" -+ ], -+ "dev": true, -+ "license": "MIT", -+ "optional": true, -+ "os": [ -+ "netbsd" -+ ], -+ "engines": { -+ "node": ">=12" -+ } -+ }, -+ "node_modules/@esbuild/openbsd-x64": { -+ "version": "0.18.20", -+ "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.18.20.tgz", -+ "integrity": "sha512-e5e4YSsuQfX4cxcygw/UCPIEP6wbIL+se3sxPdCiMbFLBWu0eiZOJ7WoD+ptCLrmjZBK1Wk7I6D/I3NglUGOxg==", -+ "cpu": [ -+ "x64" -+ ], -+ "dev": true, -+ "license": "MIT", -+ "optional": true, -+ "os": [ -+ "openbsd" -+ ], -+ "engines": { -+ "node": ">=12" -+ } -+ }, -+ "node_modules/@esbuild/sunos-x64": { -+ "version": "0.18.20", -+ "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.18.20.tgz", -+ "integrity": "sha512-kDbFRFp0YpTQVVrqUd5FTYmWo45zGaXe0X8E1G/LKFC0v8x0vWrhOWSLITcCn63lmZIxfOMXtCfti/RxN/0wnQ==", -+ "cpu": [ -+ "x64" -+ ], -+ "dev": true, -+ "license": "MIT", -+ "optional": true, -+ "os": [ -+ "sunos" -+ ], -+ "engines": { -+ "node": ">=12" -+ } -+ }, -+ "node_modules/@esbuild/win32-arm64": { -+ "version": "0.18.20", -+ "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.18.20.tgz", -+ "integrity": "sha512-ddYFR6ItYgoaq4v4JmQQaAI5s7npztfV4Ag6NrhiaW0RrnOXqBkgwZLofVTlq1daVTQNhtI5oieTvkRPfZrePg==", -+ "cpu": [ -+ "arm64" -+ ], -+ "dev": true, -+ "license": "MIT", -+ "optional": true, -+ "os": [ -+ "win32" -+ ], -+ "engines": { -+ "node": ">=12" -+ } -+ }, -+ "node_modules/@esbuild/win32-ia32": { -+ "version": "0.18.20", -+ "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.18.20.tgz", -+ "integrity": "sha512-Wv7QBi3ID/rROT08SABTS7eV4hX26sVduqDOTe1MvGMjNd3EjOz4b7zeexIR62GTIEKrfJXKL9LFxTYgkyeu7g==", -+ "cpu": [ -+ "ia32" -+ ], -+ "dev": true, -+ "license": "MIT", -+ "optional": true, -+ "os": [ -+ "win32" -+ ], -+ "engines": { -+ "node": ">=12" -+ } -+ }, -+ "node_modules/@esbuild/win32-x64": { -+ "version": "0.18.20", -+ "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.18.20.tgz", -+ "integrity": "sha512-kTdfRcSiDfQca/y9QIkng02avJ+NCaQvrMejlsB3RRv5sE9rRoeBPISaZpKxHELzRxZyLvNts1P27W3wV+8geQ==", -+ "cpu": [ -+ "x64" -+ ], -+ "dev": true, -+ "license": "MIT", -+ "optional": true, -+ "os": [ -+ "win32" -+ ], -+ "engines": { -+ "node": ">=12" -+ } -+ }, -+ "node_modules/@faker-js/faker": { -+ "version": "8.3.1", -+ "resolved": "https://registry.npmjs.org/@faker-js/faker/-/faker-8.3.1.tgz", -+ "integrity": "sha512-FdgpFxY6V6rLZE9mmIBb9hM0xpfvQOSNOLnzolzKwsE1DH+gC7lEKV1p1IbR0lAYyvYd5a4u3qWJzowUkw1bIw==", -+ "deprecated": "Please update to a newer version", -+ "dev": true, -+ "funding": [ -+ { -+ "type": "opencollective", -+ "url": "https://opencollective.com/fakerjs" -+ } -+ ], -+ "license": "MIT", -+ "engines": { -+ "node": "^14.17.0 || ^16.13.0 || >=18.0.0", -+ "npm": ">=6.14.13" -+ } -+ }, -+ "node_modules/@floating-ui/core": { -+ "version": "1.7.2", -+ "resolved": "https://registry.npmjs.org/@floating-ui/core/-/core-1.7.2.tgz", -+ "integrity": "sha512-wNB5ooIKHQc+Kui96jE/n69rHFWAVoxn5CAzL1Xdd8FG03cgY3MLO+GF9U3W737fYDSgPWA6MReKhBQBop6Pcw==", -+ "license": "MIT", -+ "dependencies": { -+ "@floating-ui/utils": "^0.2.10" -+ } -+ }, -+ "node_modules/@floating-ui/dom": { -+ "version": "1.7.2", -+ "resolved": "https://registry.npmjs.org/@floating-ui/dom/-/dom-1.7.2.tgz", -+ "integrity": "sha512-7cfaOQuCS27HD7DX+6ib2OrnW+b4ZBwDNnCcT0uTyidcmyWb03FnQqJybDBoCnpdxwBSfA94UAYlRCt7mV+TbA==", -+ "license": "MIT", -+ "dependencies": { -+ "@floating-ui/core": "^1.7.2", -+ "@floating-ui/utils": "^0.2.10" -+ } -+ }, -+ "node_modules/@floating-ui/react-dom": { -+ "version": "2.1.4", -+ "resolved": "https://registry.npmjs.org/@floating-ui/react-dom/-/react-dom-2.1.4.tgz", -+ "integrity": "sha512-JbbpPhp38UmXDDAu60RJmbeme37Jbgsm7NrHGgzYYFKmblzRUh6Pa641dII6LsjwF4XlScDrde2UAzDo/b9KPw==", -+ "license": "MIT", -+ "dependencies": { -+ "@floating-ui/dom": "^1.7.2" -+ }, -+ "peerDependencies": { -+ "react": ">=16.8.0", -+ "react-dom": ">=16.8.0" -+ } -+ }, -+ "node_modules/@floating-ui/utils": { -+ "version": "0.2.10", -+ "resolved": "https://registry.npmjs.org/@floating-ui/utils/-/utils-0.2.10.tgz", -+ "integrity": "sha512-aGTxbpbg8/b5JfU1HXSrbH3wXZuLPJcNEcZQFMxLs3oSzgtVu6nFPkbbGGUvBcUjKV2YyB9Wxxabo+HEH9tcRQ==", -+ "license": "MIT" -+ }, -+ "node_modules/@google-analytics/data": { -+ "version": "4.1.0", -+ "resolved": "https://registry.npmjs.org/@google-analytics/data/-/data-4.1.0.tgz", -+ "integrity": "sha512-OMHSfqKi1a7OSjpc1n3MSynuPnfLrzYa8euEp2mrRH2XRzjFnHoQ0smiLOy3GSwGVbzT0ps8juNcT72I2nZjjQ==", -+ "license": "Apache-2.0", -+ "dependencies": { -+ "google-gax": "^4.0.3" -+ }, -+ "engines": { -+ "node": ">=14.0.0" -+ } -+ }, -+ "node_modules/@grpc/grpc-js": { -+ "version": "1.13.0", -+ "resolved": "https://registry.npmjs.org/@grpc/grpc-js/-/grpc-js-1.13.0.tgz", -+ "integrity": "sha512-pMuxInZjUnUkgMT2QLZclRqwk2ykJbIU05aZgPgJYXEpN9+2I7z7aNwcjWZSycRPl232FfhPszyBFJyOxTHNog==", -+ "license": "Apache-2.0", -+ "dependencies": { -+ "@grpc/proto-loader": "^0.7.13", -+ "@js-sdsl/ordered-map": "^4.4.2" -+ }, -+ "engines": { -+ "node": ">=12.10.0" -+ } -+ }, -+ "node_modules/@grpc/proto-loader": { -+ "version": "0.7.13", -+ "resolved": "https://registry.npmjs.org/@grpc/proto-loader/-/proto-loader-0.7.13.tgz", -+ "integrity": "sha512-AiXO/bfe9bmxBjxxtYxFAXGZvMaN5s8kO+jBHAJCON8rJoB5YS/D6X7ZNc6XQkuHNmyl4CYaMI1fJ/Gn27RGGw==", -+ "license": "Apache-2.0", -+ "dependencies": { -+ "lodash.camelcase": "^4.3.0", -+ "long": "^5.0.0", -+ "protobufjs": "^7.2.5", -+ "yargs": "^17.7.2" -+ }, -+ "bin": { -+ "proto-loader-gen-types": "build/bin/proto-loader-gen-types.js" -+ }, -+ "engines": { -+ "node": ">=6" -+ } -+ }, -+ "node_modules/@headlessui/react": { -+ "version": "1.7.13", -+ "resolved": "https://registry.npmjs.org/@headlessui/react/-/react-1.7.13.tgz", -+ "integrity": "sha512-9n+EQKRtD9266xIHXdY5MfiXPDfYwl7zBM7KOx2Ae3Gdgxy8QML1FkCMjq6AsOf0l6N9uvI4HcFtuFlenaldKg==", -+ "license": "MIT", -+ "dependencies": { -+ "client-only": "^0.0.1" -+ }, -+ "engines": { -+ "node": ">=10" -+ }, -+ "peerDependencies": { -+ "react": "^16 || ^17 || ^18", -+ "react-dom": "^16 || ^17 || ^18" -+ } -+ }, -+ "node_modules/@hookform/resolvers": { -+ "version": "5.1.1", -+ "resolved": "https://registry.npmjs.org/@hookform/resolvers/-/resolvers-5.1.1.tgz", -+ "integrity": "sha512-J/NVING3LMAEvexJkyTLjruSm7aOFx7QX21pzkiJfMoNG0wl5aFEjLTl7ay7IQb9EWY6AkrBy7tHL2Alijpdcg==", -+ "license": "MIT", -+ "dependencies": { -+ "@standard-schema/utils": "^0.3.0" -+ }, -+ "peerDependencies": { -+ "react-hook-form": "^7.55.0" -+ } -+ }, -+ "node_modules/@isaacs/cliui": { -+ "version": "8.0.2", -+ "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", -+ "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", -+ "license": "ISC", -+ "dependencies": { -+ "string-width": "^5.1.2", -+ "string-width-cjs": "npm:string-width@^4.2.0", -+ "strip-ansi": "^7.0.1", -+ "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", -+ "wrap-ansi": "^8.1.0", -+ "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" -+ }, -+ "engines": { -+ "node": ">=12" -+ } -+ }, -+ "node_modules/@jest/schemas": { -+ "version": "29.6.3", -+ "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-29.6.3.tgz", -+ "integrity": "sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==", -+ "license": "MIT", -+ "dependencies": { -+ "@sinclair/typebox": "^0.27.8" -+ }, -+ "engines": { -+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0" -+ } -+ }, -+ "node_modules/@jridgewell/gen-mapping": { -+ "version": "0.3.8", -+ "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.8.tgz", -+ "integrity": "sha512-imAbBGkb+ebQyxKgzv5Hu2nmROxoDOXHh80evxdoXNOrvAnVx7zimzc1Oo5h9RlfV4vPXaE2iM5pOFbvOCClWA==", -+ "license": "MIT", -+ "dependencies": { -+ "@jridgewell/set-array": "^1.2.1", -+ "@jridgewell/sourcemap-codec": "^1.4.10", -+ "@jridgewell/trace-mapping": "^0.3.24" -+ }, -+ "engines": { -+ "node": ">=6.0.0" -+ } -+ }, -+ "node_modules/@jridgewell/resolve-uri": { -+ "version": "3.1.2", -+ "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", -+ "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", -+ "license": "MIT", -+ "engines": { -+ "node": ">=6.0.0" -+ } -+ }, -+ "node_modules/@jridgewell/set-array": { -+ "version": "1.2.1", -+ "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz", -+ "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==", -+ "license": "MIT", -+ "engines": { -+ "node": ">=6.0.0" ++ "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.5.0", -+ "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz", -+ "integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==", + "license": "MIT" + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.25", -+ "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", -+ "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", + "license": "MIT", + "dependencies": { + "@jridgewell/resolve-uri": "^3.1.0", @@ -1711,8 +1160,6 @@ + }, + "node_modules/@js-sdsl/ordered-map": { + "version": "4.4.2", -+ "resolved": "https://registry.npmjs.org/@js-sdsl/ordered-map/-/ordered-map-4.4.2.tgz", -+ "integrity": "sha512-iUKgm52T8HOE/makSxjqoWhe95ZJA1/G1sYsGev2JDKUSS14KAgg1LHb+Ba+IPow0xflbnSkOsZcO08C7w1gYw==", + "license": "MIT", + "funding": { + "type": "opencollective", @@ -1721,8 +1168,6 @@ + }, + "node_modules/@lemonsqueezy/lemonsqueezy.js": { + "version": "3.3.1", -+ "resolved": "https://registry.npmjs.org/@lemonsqueezy/lemonsqueezy.js/-/lemonsqueezy.js-3.3.1.tgz", -+ "integrity": "sha512-gM/FdNsK3BlrD6JRrhmiyqBXQsCpzSUdKSoZwJMQfXqfqcK321og+uMssc6HYcygUMrGvPnNJyJ1RqZPFDrgtg==", + "license": "MIT", + "engines": { + "node": ">=20" @@ -1730,8 +1175,6 @@ + }, + "node_modules/@lucia-auth/adapter-prisma": { + "version": "4.0.1", -+ "resolved": "https://registry.npmjs.org/@lucia-auth/adapter-prisma/-/adapter-prisma-4.0.1.tgz", -+ "integrity": "sha512-3SztRhj1RAHbbhI/0aB7YC5zl6Z6aktPhkWpn2CHhiB03B9x/+A+M6pqJuAt1usU8PzkjVilgRPhrPymMar66A==", + "license": "MIT", + "peerDependencies": { + "@prisma/client": "^4.2.0 || ^5.0.0", @@ -1740,587 +1183,112 @@ + }, + "node_modules/@mswjs/cookies": { + "version": "0.2.2", -+ "resolved": "https://registry.npmjs.org/@mswjs/cookies/-/cookies-0.2.2.tgz", -+ "integrity": "sha512-mlN83YSrcFgk7Dm1Mys40DLssI1KdJji2CMKN8eOlBqsTADYzj2+jWzsANsUTFbxDMWPD5e9bfA1RGqBpS3O1g==", + "license": "MIT", + "dependencies": { + "@types/set-cookie-parser": "^2.4.0", + "set-cookie-parser": "^2.4.6" + }, + "engines": { -+ "node": ">=14" -+ } -+ }, -+ "node_modules/@mswjs/interceptors": { -+ "version": "0.17.10", -+ "resolved": "https://registry.npmjs.org/@mswjs/interceptors/-/interceptors-0.17.10.tgz", -+ "integrity": "sha512-N8x7eSLGcmUFNWZRxT1vsHvypzIRgQYdG0rJey/rZCy6zT/30qDt8Joj7FxzGNLSwXbeZqJOMqDurp7ra4hgbw==", -+ "license": "MIT", -+ "dependencies": { -+ "@open-draft/until": "^1.0.3", -+ "@types/debug": "^4.1.7", -+ "@xmldom/xmldom": "^0.8.3", -+ "debug": "^4.3.3", -+ "headers-polyfill": "3.2.5", -+ "outvariant": "^1.2.1", -+ "strict-event-emitter": "^0.2.4", -+ "web-encoding": "^1.1.5" -+ }, -+ "engines": { -+ "node": ">=14" -+ } -+ }, -+ "node_modules/@mswjs/interceptors/node_modules/strict-event-emitter": { -+ "version": "0.2.8", -+ "resolved": "https://registry.npmjs.org/strict-event-emitter/-/strict-event-emitter-0.2.8.tgz", -+ "integrity": "sha512-KDf/ujU8Zud3YaLtMCcTI4xkZlZVIYxTLr+XIULexP+77EEVWixeXroLUXQXiVtH4XH2W7jr/3PT1v3zBuvc3A==", -+ "license": "MIT", -+ "dependencies": { -+ "events": "^3.3.0" -+ } -+ }, -+ "node_modules/@napi-rs/wasm-runtime": { -+ "version": "0.2.7", -+ "resolved": "https://registry.npmjs.org/@napi-rs/wasm-runtime/-/wasm-runtime-0.2.7.tgz", -+ "integrity": "sha512-5yximcFK5FNompXfJFoWanu5l8v1hNGqNHh9du1xETp9HWk/B/PzvchX55WYOPaIeNglG8++68AAiauBAtbnzw==", -+ "license": "MIT", -+ "optional": true, -+ "dependencies": { -+ "@emnapi/core": "^1.3.1", -+ "@emnapi/runtime": "^1.3.1", -+ "@tybys/wasm-util": "^0.9.0" -+ } -+ }, -+ "node_modules/@node-rs/argon2": { -+ "version": "1.8.3", -+ "resolved": "https://registry.npmjs.org/@node-rs/argon2/-/argon2-1.8.3.tgz", -+ "integrity": "sha512-sf/QAEI59hsMEEE2J8vO4hKrXrv4Oplte3KI2N4MhMDYpytH0drkVfErmHBfWFZxxIEK03fX1WsBNswS2nIZKg==", -+ "license": "MIT", -+ "engines": { -+ "node": ">= 10" -+ }, -+ "optionalDependencies": { -+ "@node-rs/argon2-android-arm-eabi": "1.8.3", -+ "@node-rs/argon2-android-arm64": "1.8.3", -+ "@node-rs/argon2-darwin-arm64": "1.8.3", -+ "@node-rs/argon2-darwin-x64": "1.8.3", -+ "@node-rs/argon2-freebsd-x64": "1.8.3", -+ "@node-rs/argon2-linux-arm-gnueabihf": "1.8.3", -+ "@node-rs/argon2-linux-arm64-gnu": "1.8.3", -+ "@node-rs/argon2-linux-arm64-musl": "1.8.3", -+ "@node-rs/argon2-linux-x64-gnu": "1.8.3", -+ "@node-rs/argon2-linux-x64-musl": "1.8.3", -+ "@node-rs/argon2-wasm32-wasi": "1.8.3", -+ "@node-rs/argon2-win32-arm64-msvc": "1.8.3", -+ "@node-rs/argon2-win32-ia32-msvc": "1.8.3", -+ "@node-rs/argon2-win32-x64-msvc": "1.8.3" -+ } -+ }, -+ "node_modules/@node-rs/argon2-android-arm-eabi": { -+ "version": "1.8.3", -+ "resolved": "https://registry.npmjs.org/@node-rs/argon2-android-arm-eabi/-/argon2-android-arm-eabi-1.8.3.tgz", -+ "integrity": "sha512-JFZPlNM0A8Og+Tncb8UZsQrhEMlbHBXPsT3hRoKImzVmTmq28Os0ucFWow0AACp2coLHBSydXH3Dh0lZup3rWw==", -+ "cpu": [ -+ "arm" -+ ], -+ "license": "MIT", -+ "optional": true, -+ "os": [ -+ "android" -+ ], -+ "engines": { -+ "node": ">= 10" -+ } -+ }, -+ "node_modules/@node-rs/argon2-android-arm64": { -+ "version": "1.8.3", -+ "resolved": "https://registry.npmjs.org/@node-rs/argon2-android-arm64/-/argon2-android-arm64-1.8.3.tgz", -+ "integrity": "sha512-zaf8P3T92caeW2xnMA7P1QvRA4pIt/04oilYP44XlTCtMye//vwXDMeK53sl7dvYiJKnzAWDRx41k8vZvpZazg==", -+ "cpu": [ -+ "arm64" -+ ], -+ "license": "MIT", -+ "optional": true, -+ "os": [ -+ "android" -+ ], -+ "engines": { -+ "node": ">= 10" -+ } -+ }, -+ "node_modules/@node-rs/argon2-darwin-arm64": { -+ "version": "1.8.3", -+ "resolved": "https://registry.npmjs.org/@node-rs/argon2-darwin-arm64/-/argon2-darwin-arm64-1.8.3.tgz", -+ "integrity": "sha512-DV/IbmLGdNXBtXb5o2UI5ba6kvqXqPAJgmMOTUCuHeBSp992GlLHdfU4rzGu0dNrxudBnunNZv+crd0YdEQSUA==", -+ "cpu": [ -+ "arm64" -+ ], -+ "license": "MIT", -+ "optional": true, -+ "os": [ -+ "darwin" -+ ], -+ "engines": { -+ "node": ">= 10" -+ } -+ }, -+ "node_modules/@node-rs/argon2-darwin-x64": { -+ "version": "1.8.3", -+ "resolved": "https://registry.npmjs.org/@node-rs/argon2-darwin-x64/-/argon2-darwin-x64-1.8.3.tgz", -+ "integrity": "sha512-YMjmBGFZhLfYjfQ2gll9A+BZu/zAMV7lWZIbKxb7ZgEofILQwuGmExjDtY3Jplido/6leCEdpmlk2oIsME00LA==", -+ "cpu": [ -+ "x64" -+ ], -+ "license": "MIT", -+ "optional": true, -+ "os": [ -+ "darwin" -+ ], -+ "engines": { -+ "node": ">= 10" -+ } -+ }, -+ "node_modules/@node-rs/argon2-freebsd-x64": { -+ "version": "1.8.3", -+ "resolved": "https://registry.npmjs.org/@node-rs/argon2-freebsd-x64/-/argon2-freebsd-x64-1.8.3.tgz", -+ "integrity": "sha512-Hq3Rj5Yb2RolTG/luRPnv+XiGCbi5nAK25Pc8ou/tVapwX+iktEm/NXbxc5zsMxraYVkCvfdwBjweC5O+KqCGw==", -+ "cpu": [ -+ "x64" -+ ], -+ "license": "MIT", -+ "optional": true, -+ "os": [ -+ "freebsd" -+ ], -+ "engines": { -+ "node": ">= 10" -+ } -+ }, -+ "node_modules/@node-rs/argon2-linux-arm-gnueabihf": { -+ "version": "1.8.3", -+ "resolved": "https://registry.npmjs.org/@node-rs/argon2-linux-arm-gnueabihf/-/argon2-linux-arm-gnueabihf-1.8.3.tgz", -+ "integrity": "sha512-x49l8RgzKoG0/V0IXa5rrEl1TcJEc936ctlYFvqcunSOyowZ6kiWtrp1qrbOR8gbaNILl11KTF52vF6+h8UlEQ==", -+ "cpu": [ -+ "arm" -+ ], -+ "license": "MIT", -+ "optional": true, -+ "os": [ -+ "linux" -+ ], -+ "engines": { -+ "node": ">= 10" -+ } -+ }, -+ "node_modules/@node-rs/argon2-linux-arm64-gnu": { -+ "version": "1.8.3", -+ "resolved": "https://registry.npmjs.org/@node-rs/argon2-linux-arm64-gnu/-/argon2-linux-arm64-gnu-1.8.3.tgz", -+ "integrity": "sha512-gJesam/qA63reGkb9qJ2TjFSLBtY41zQh2oei7nfnYsmVQPuHHWItJxEa1Bm21SPW53gZex4jFJbDIgj0+PxIw==", -+ "cpu": [ -+ "arm64" -+ ], -+ "license": "MIT", -+ "optional": true, -+ "os": [ -+ "linux" -+ ], -+ "engines": { -+ "node": ">= 10" -+ } -+ }, -+ "node_modules/@node-rs/argon2-linux-arm64-musl": { -+ "version": "1.8.3", -+ "resolved": "https://registry.npmjs.org/@node-rs/argon2-linux-arm64-musl/-/argon2-linux-arm64-musl-1.8.3.tgz", -+ "integrity": "sha512-7O6kQdSKzB4Tjx/EBa8zKIxnmLkQE8VdJgPm6Ksrpn+ueo0mx2xf76fIDnbbTCtm3UbB+y+FkTo2wLA7tOqIKg==", -+ "cpu": [ -+ "arm64" -+ ], -+ "license": "MIT", -+ "optional": true, -+ "os": [ -+ "linux" -+ ], -+ "engines": { -+ "node": ">= 10" -+ } -+ }, -+ "node_modules/@node-rs/argon2-linux-x64-gnu": { -+ "version": "1.8.3", -+ "resolved": "https://registry.npmjs.org/@node-rs/argon2-linux-x64-gnu/-/argon2-linux-x64-gnu-1.8.3.tgz", -+ "integrity": "sha512-OBH+EFG7BGjFyldaao2H2gSCLmjtrrwf420B1L+lFn7JLW9UAjsIPFKAcWsYwPa/PwYzIge9Y7SGcpqlsSEX0w==", -+ "cpu": [ -+ "x64" -+ ], -+ "license": "MIT", -+ "optional": true, -+ "os": [ -+ "linux" -+ ], -+ "engines": { -+ "node": ">= 10" -+ } -+ }, -+ "node_modules/@node-rs/argon2-linux-x64-musl": { -+ "version": "1.8.3", -+ "resolved": "https://registry.npmjs.org/@node-rs/argon2-linux-x64-musl/-/argon2-linux-x64-musl-1.8.3.tgz", -+ "integrity": "sha512-bDbMuyekIxZaN7NaX+gHVkOyABB8bcMEJYeRPW1vCXKHj3brJns1wiUFSxqeUXreupifNVJlQfPt1Y5B/vFXgQ==", -+ "cpu": [ -+ "x64" -+ ], -+ "license": "MIT", -+ "optional": true, -+ "os": [ -+ "linux" -+ ], -+ "engines": { -+ "node": ">= 10" -+ } -+ }, -+ "node_modules/@node-rs/argon2-wasm32-wasi": { -+ "version": "1.8.3", -+ "resolved": "https://registry.npmjs.org/@node-rs/argon2-wasm32-wasi/-/argon2-wasm32-wasi-1.8.3.tgz", -+ "integrity": "sha512-NBf2cMCDbNKMzp13Pog8ZPmI0M9U4Ak5b95EUjkp17kdKZFds12dwW67EMnj7Zy+pRqby2QLECaWebDYfNENTg==", -+ "cpu": [ -+ "wasm32" -+ ], -+ "license": "MIT", -+ "optional": true, -+ "dependencies": { -+ "@napi-rs/wasm-runtime": "^0.2.3" -+ }, -+ "engines": { -+ "node": ">=14.0.0" -+ } -+ }, -+ "node_modules/@node-rs/argon2-win32-arm64-msvc": { -+ "version": "1.8.3", -+ "resolved": "https://registry.npmjs.org/@node-rs/argon2-win32-arm64-msvc/-/argon2-win32-arm64-msvc-1.8.3.tgz", -+ "integrity": "sha512-AHpPo7UbdW5WWjwreVpgFSY0o1RY4A7cUFaqDXZB2OqEuyrhMxBdZct9PX7PQKI18D85pLsODnR+gvVuTwJ6rQ==", -+ "cpu": [ -+ "arm64" -+ ], -+ "license": "MIT", -+ "optional": true, -+ "os": [ -+ "win32" -+ ], -+ "engines": { -+ "node": ">= 10" -+ } -+ }, -+ "node_modules/@node-rs/argon2-win32-ia32-msvc": { -+ "version": "1.8.3", -+ "resolved": "https://registry.npmjs.org/@node-rs/argon2-win32-ia32-msvc/-/argon2-win32-ia32-msvc-1.8.3.tgz", -+ "integrity": "sha512-bqzn2rcQkEwCINefhm69ttBVVkgHJb/V03DdBKsPFtiX6H47axXKz62d1imi26zFXhOEYxhKbu3js03GobJOLw==", -+ "cpu": [ -+ "ia32" -+ ], -+ "license": "MIT", -+ "optional": true, -+ "os": [ -+ "win32" -+ ], -+ "engines": { -+ "node": ">= 10" -+ } -+ }, -+ "node_modules/@node-rs/argon2-win32-x64-msvc": { -+ "version": "1.8.3", -+ "resolved": "https://registry.npmjs.org/@node-rs/argon2-win32-x64-msvc/-/argon2-win32-x64-msvc-1.8.3.tgz", -+ "integrity": "sha512-ILlrRThdbp5xNR5gwYM2ic1n/vG5rJ8dQZ+YMRqksl+lnTJ/6FDe5BOyIhiPtiDwlCiCtUA+1NxpDB9KlUCAIA==", -+ "cpu": [ -+ "x64" -+ ], -+ "license": "MIT", -+ "optional": true, -+ "os": [ -+ "win32" -+ ], -+ "engines": { -+ "node": ">= 10" -+ } -+ }, -+ "node_modules/@node-rs/bcrypt": { -+ "version": "1.9.0", -+ "resolved": "https://registry.npmjs.org/@node-rs/bcrypt/-/bcrypt-1.9.0.tgz", -+ "integrity": "sha512-u2OlIxW264bFUfvbFqDz9HZKFjwe8FHFtn7T/U8mYjPZ7DWYpbUB+/dkW/QgYfMSfR0ejkyuWaBBe0coW7/7ig==", -+ "license": "MIT", -+ "engines": { -+ "node": ">= 10" -+ }, -+ "funding": { -+ "type": "github", -+ "url": "https://github.com/sponsors/Brooooooklyn" -+ }, -+ "optionalDependencies": { -+ "@node-rs/bcrypt-android-arm-eabi": "1.9.0", -+ "@node-rs/bcrypt-android-arm64": "1.9.0", -+ "@node-rs/bcrypt-darwin-arm64": "1.9.0", -+ "@node-rs/bcrypt-darwin-x64": "1.9.0", -+ "@node-rs/bcrypt-freebsd-x64": "1.9.0", -+ "@node-rs/bcrypt-linux-arm-gnueabihf": "1.9.0", -+ "@node-rs/bcrypt-linux-arm64-gnu": "1.9.0", -+ "@node-rs/bcrypt-linux-arm64-musl": "1.9.0", -+ "@node-rs/bcrypt-linux-x64-gnu": "1.9.0", -+ "@node-rs/bcrypt-linux-x64-musl": "1.9.0", -+ "@node-rs/bcrypt-wasm32-wasi": "1.9.0", -+ "@node-rs/bcrypt-win32-arm64-msvc": "1.9.0", -+ "@node-rs/bcrypt-win32-ia32-msvc": "1.9.0", -+ "@node-rs/bcrypt-win32-x64-msvc": "1.9.0" -+ } -+ }, -+ "node_modules/@node-rs/bcrypt-android-arm-eabi": { -+ "version": "1.9.0", -+ "resolved": "https://registry.npmjs.org/@node-rs/bcrypt-android-arm-eabi/-/bcrypt-android-arm-eabi-1.9.0.tgz", -+ "integrity": "sha512-nOCFISGtnodGHNiLrG0WYLWr81qQzZKYfmwHc7muUeq+KY0sQXyHOwZk9OuNQAWv/lnntmtbwkwT0QNEmOyLvA==", -+ "cpu": [ -+ "arm" -+ ], -+ "license": "MIT", -+ "optional": true, -+ "os": [ -+ "android" -+ ], -+ "engines": { -+ "node": ">= 10" -+ } -+ }, -+ "node_modules/@node-rs/bcrypt-android-arm64": { -+ "version": "1.9.0", -+ "resolved": "https://registry.npmjs.org/@node-rs/bcrypt-android-arm64/-/bcrypt-android-arm64-1.9.0.tgz", -+ "integrity": "sha512-+ZrIAtigVmjYkqZQTThHVlz0+TG6D+GDHWhVKvR2DifjtqJ0i+mb9gjo++hN+fWEQdWNGxKCiBBjwgT4EcXd6A==", -+ "cpu": [ -+ "arm64" -+ ], -+ "license": "MIT", -+ "optional": true, -+ "os": [ -+ "android" -+ ], -+ "engines": { -+ "node": ">= 10" -+ } -+ }, -+ "node_modules/@node-rs/bcrypt-darwin-arm64": { -+ "version": "1.9.0", -+ "resolved": "https://registry.npmjs.org/@node-rs/bcrypt-darwin-arm64/-/bcrypt-darwin-arm64-1.9.0.tgz", -+ "integrity": "sha512-CQiS+F9Pa0XozvkXR1g7uXE9QvBOPOplDg0iCCPRYTN9PqA5qYxhwe48G3o+v2UeQceNRrbnEtWuANm7JRqIhw==", -+ "cpu": [ -+ "arm64" -+ ], -+ "license": "MIT", -+ "optional": true, -+ "os": [ -+ "darwin" -+ ], -+ "engines": { -+ "node": ">= 10" -+ } -+ }, -+ "node_modules/@node-rs/bcrypt-darwin-x64": { -+ "version": "1.9.0", -+ "resolved": "https://registry.npmjs.org/@node-rs/bcrypt-darwin-x64/-/bcrypt-darwin-x64-1.9.0.tgz", -+ "integrity": "sha512-4pTKGawYd7sNEjdJ7R/R67uwQH1VvwPZ0SSUMmeNHbxD5QlwAPXdDH11q22uzVXsvNFZ6nGQBg8No5OUGpx6Ug==", -+ "cpu": [ -+ "x64" -+ ], -+ "license": "MIT", -+ "optional": true, -+ "os": [ -+ "darwin" -+ ], -+ "engines": { -+ "node": ">= 10" -+ } -+ }, -+ "node_modules/@node-rs/bcrypt-freebsd-x64": { -+ "version": "1.9.0", -+ "resolved": "https://registry.npmjs.org/@node-rs/bcrypt-freebsd-x64/-/bcrypt-freebsd-x64-1.9.0.tgz", -+ "integrity": "sha512-UmWzySX4BJhT/B8xmTru6iFif3h0Rpx3TqxRLCcbgmH43r7k5/9QuhpiyzpvKGpKHJCFNm4F3rC2wghvw5FCIg==", -+ "cpu": [ -+ "x64" -+ ], -+ "license": "MIT", -+ "optional": true, -+ "os": [ -+ "freebsd" -+ ], -+ "engines": { -+ "node": ">= 10" -+ } -+ }, -+ "node_modules/@node-rs/bcrypt-linux-arm-gnueabihf": { -+ "version": "1.9.0", -+ "resolved": "https://registry.npmjs.org/@node-rs/bcrypt-linux-arm-gnueabihf/-/bcrypt-linux-arm-gnueabihf-1.9.0.tgz", -+ "integrity": "sha512-8qoX4PgBND2cVwsbajoAWo3NwdfJPEXgpCsZQZURz42oMjbGyhhSYbovBCskGU3EBLoC8RA2B1jFWooeYVn5BA==", -+ "cpu": [ -+ "arm" -+ ], -+ "license": "MIT", -+ "optional": true, -+ "os": [ -+ "linux" -+ ], -+ "engines": { -+ "node": ">= 10" -+ } -+ }, -+ "node_modules/@node-rs/bcrypt-linux-arm64-gnu": { -+ "version": "1.9.0", -+ "resolved": "https://registry.npmjs.org/@node-rs/bcrypt-linux-arm64-gnu/-/bcrypt-linux-arm64-gnu-1.9.0.tgz", -+ "integrity": "sha512-TuAC6kx0SbcIA4mSEWPi+OCcDjTQUMl213v5gMNlttF+D4ieIZx6pPDGTaMO6M2PDHTeCG0CBzZl0Lu+9b0c7Q==", -+ "cpu": [ -+ "arm64" -+ ], -+ "license": "MIT", -+ "optional": true, -+ "os": [ -+ "linux" -+ ], -+ "engines": { -+ "node": ">= 10" -+ } -+ }, -+ "node_modules/@node-rs/bcrypt-linux-arm64-musl": { -+ "version": "1.9.0", -+ "resolved": "https://registry.npmjs.org/@node-rs/bcrypt-linux-arm64-musl/-/bcrypt-linux-arm64-musl-1.9.0.tgz", -+ "integrity": "sha512-/sIvKDABOI8QOEnLD7hIj02BVaNOuCIWBKvxcJOt8+TuwJ6zmY1UI5kSv9d99WbiHjTp97wtAUbZQwauU4b9ew==", -+ "cpu": [ -+ "arm64" -+ ], -+ "license": "MIT", -+ "optional": true, -+ "os": [ -+ "linux" -+ ], -+ "engines": { -+ "node": ">= 10" -+ } -+ }, -+ "node_modules/@node-rs/bcrypt-linux-x64-gnu": { -+ "version": "1.9.0", -+ "resolved": "https://registry.npmjs.org/@node-rs/bcrypt-linux-x64-gnu/-/bcrypt-linux-x64-gnu-1.9.0.tgz", -+ "integrity": "sha512-DyyhDHDsLBsCKz1tZ1hLvUZSc1DK0FU0v52jK6IBQxrj24WscSU9zZe7ie/V9kdmA4Ep57BfpWX8Dsa2JxGdgQ==", -+ "cpu": [ -+ "x64" -+ ], -+ "license": "MIT", -+ "optional": true, -+ "os": [ -+ "linux" -+ ], -+ "engines": { -+ "node": ">= 10" -+ } -+ }, -+ "node_modules/@node-rs/bcrypt-linux-x64-musl": { -+ "version": "1.9.0", -+ "resolved": "https://registry.npmjs.org/@node-rs/bcrypt-linux-x64-musl/-/bcrypt-linux-x64-musl-1.9.0.tgz", -+ "integrity": "sha512-duIiuqQ+Lew8ASSAYm6ZRqcmfBGWwsi81XLUwz86a2HR7Qv6V4yc3ZAUQovAikhjCsIqe8C11JlAZSK6+PlXYg==", -+ "cpu": [ -+ "x64" -+ ], -+ "license": "MIT", -+ "optional": true, -+ "os": [ -+ "linux" -+ ], -+ "engines": { -+ "node": ">= 10" -+ } -+ }, -+ "node_modules/@node-rs/bcrypt-wasm32-wasi": { -+ "version": "1.9.0", -+ "resolved": "https://registry.npmjs.org/@node-rs/bcrypt-wasm32-wasi/-/bcrypt-wasm32-wasi-1.9.0.tgz", -+ "integrity": "sha512-ylaGmn9Wjwv/D5lxtawttx3H6Uu2WTTR7lWlRHGT6Ga/MB1Vj4OjSGUW8G8zIVnKuXpGbZ92pgHlt4HUpSLctw==", -+ "cpu": [ -+ "wasm32" -+ ], -+ "license": "MIT", -+ "optional": true, -+ "dependencies": { -+ "@emnapi/core": "^0.45.0", -+ "@emnapi/runtime": "^0.45.0", -+ "@tybys/wasm-util": "^0.8.1", -+ "memfs-browser": "^3.4.13000" -+ }, -+ "engines": { -+ "node": ">=14.0.0" ++ "node": ">=14" + } + }, -+ "node_modules/@node-rs/bcrypt-wasm32-wasi/node_modules/@emnapi/core": { -+ "version": "0.45.0", -+ "resolved": "https://registry.npmjs.org/@emnapi/core/-/core-0.45.0.tgz", -+ "integrity": "sha512-DPWjcUDQkCeEM4VnljEOEcXdAD7pp8zSZsgOujk/LGIwCXWbXJngin+MO4zbH429lzeC3WbYLGjE2MaUOwzpyw==", ++ "node_modules/@mswjs/interceptors": { ++ "version": "0.17.10", + "license": "MIT", -+ "optional": true, + "dependencies": { -+ "tslib": "^2.4.0" ++ "@open-draft/until": "^1.0.3", ++ "@types/debug": "^4.1.7", ++ "@xmldom/xmldom": "^0.8.3", ++ "debug": "^4.3.3", ++ "headers-polyfill": "3.2.5", ++ "outvariant": "^1.2.1", ++ "strict-event-emitter": "^0.2.4", ++ "web-encoding": "^1.1.5" ++ }, ++ "engines": { ++ "node": ">=14" + } + }, -+ "node_modules/@node-rs/bcrypt-wasm32-wasi/node_modules/@emnapi/runtime": { -+ "version": "0.45.0", -+ "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-0.45.0.tgz", -+ "integrity": "sha512-Txumi3td7J4A/xTTwlssKieHKTGl3j4A1tglBx72auZ49YK7ePY6XZricgIg9mnZT4xPfA+UPCUdnhRuEFDL+w==", ++ "node_modules/@mswjs/interceptors/node_modules/strict-event-emitter": { ++ "version": "0.2.8", + "license": "MIT", -+ "optional": true, + "dependencies": { -+ "tslib": "^2.4.0" ++ "events": "^3.3.0" + } + }, -+ "node_modules/@node-rs/bcrypt-wasm32-wasi/node_modules/@tybys/wasm-util": { -+ "version": "0.8.3", -+ "resolved": "https://registry.npmjs.org/@tybys/wasm-util/-/wasm-util-0.8.3.tgz", -+ "integrity": "sha512-Z96T/L6dUFFxgFJ+pQtkPpne9q7i6kIPYCFnQBHSgSPV9idTsKfIhCss0h5iM9irweZCatkrdeP8yi5uM1eX6Q==", ++ "node_modules/@node-rs/argon2": { ++ "version": "1.8.3", + "license": "MIT", -+ "optional": true, -+ "dependencies": { -+ "tslib": "^2.4.0" ++ "engines": { ++ "node": ">= 10" ++ }, ++ "optionalDependencies": { ++ "@node-rs/argon2-android-arm-eabi": "1.8.3", ++ "@node-rs/argon2-android-arm64": "1.8.3", ++ "@node-rs/argon2-darwin-arm64": "1.8.3", ++ "@node-rs/argon2-darwin-x64": "1.8.3", ++ "@node-rs/argon2-freebsd-x64": "1.8.3", ++ "@node-rs/argon2-linux-arm-gnueabihf": "1.8.3", ++ "@node-rs/argon2-linux-arm64-gnu": "1.8.3", ++ "@node-rs/argon2-linux-arm64-musl": "1.8.3", ++ "@node-rs/argon2-linux-x64-gnu": "1.8.3", ++ "@node-rs/argon2-linux-x64-musl": "1.8.3", ++ "@node-rs/argon2-wasm32-wasi": "1.8.3", ++ "@node-rs/argon2-win32-arm64-msvc": "1.8.3", ++ "@node-rs/argon2-win32-ia32-msvc": "1.8.3", ++ "@node-rs/argon2-win32-x64-msvc": "1.8.3" + } + }, -+ "node_modules/@node-rs/bcrypt-win32-arm64-msvc": { -+ "version": "1.9.0", -+ "resolved": "https://registry.npmjs.org/@node-rs/bcrypt-win32-arm64-msvc/-/bcrypt-win32-arm64-msvc-1.9.0.tgz", -+ "integrity": "sha512-2h86gF7QFyEzODuDFml/Dp1MSJoZjxJ4yyT2Erf4NkwsiA5MqowUhUsorRwZhX6+2CtlGa7orbwi13AKMsYndw==", ++ "node_modules/@node-rs/argon2-darwin-arm64": { ++ "version": "1.8.3", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ -+ "win32" ++ "darwin" + ], + "engines": { + "node": ">= 10" + } + }, -+ "node_modules/@node-rs/bcrypt-win32-ia32-msvc": { ++ "node_modules/@node-rs/bcrypt": { + "version": "1.9.0", -+ "resolved": "https://registry.npmjs.org/@node-rs/bcrypt-win32-ia32-msvc/-/bcrypt-win32-ia32-msvc-1.9.0.tgz", -+ "integrity": "sha512-kqxalCvhs4FkN0+gWWfa4Bdy2NQAkfiqq/CEf6mNXC13RSV673Ev9V8sRlQyNpCHCNkeXfOT9pgoBdJmMs9muA==", -+ "cpu": [ -+ "ia32" -+ ], + "license": "MIT", -+ "optional": true, -+ "os": [ -+ "win32" -+ ], + "engines": { + "node": ">= 10" ++ }, ++ "funding": { ++ "type": "github", ++ "url": "https://github.com/sponsors/Brooooooklyn" ++ }, ++ "optionalDependencies": { ++ "@node-rs/bcrypt-android-arm-eabi": "1.9.0", ++ "@node-rs/bcrypt-android-arm64": "1.9.0", ++ "@node-rs/bcrypt-darwin-arm64": "1.9.0", ++ "@node-rs/bcrypt-darwin-x64": "1.9.0", ++ "@node-rs/bcrypt-freebsd-x64": "1.9.0", ++ "@node-rs/bcrypt-linux-arm-gnueabihf": "1.9.0", ++ "@node-rs/bcrypt-linux-arm64-gnu": "1.9.0", ++ "@node-rs/bcrypt-linux-arm64-musl": "1.9.0", ++ "@node-rs/bcrypt-linux-x64-gnu": "1.9.0", ++ "@node-rs/bcrypt-linux-x64-musl": "1.9.0", ++ "@node-rs/bcrypt-wasm32-wasi": "1.9.0", ++ "@node-rs/bcrypt-win32-arm64-msvc": "1.9.0", ++ "@node-rs/bcrypt-win32-ia32-msvc": "1.9.0", ++ "@node-rs/bcrypt-win32-x64-msvc": "1.9.0" + } + }, -+ "node_modules/@node-rs/bcrypt-win32-x64-msvc": { ++ "node_modules/@node-rs/bcrypt-darwin-arm64": { + "version": "1.9.0", -+ "resolved": "https://registry.npmjs.org/@node-rs/bcrypt-win32-x64-msvc/-/bcrypt-win32-x64-msvc-1.9.0.tgz", -+ "integrity": "sha512-2y0Tuo6ZAT2Cz8V7DHulSlv1Bip3zbzeXyeur+uR25IRNYXKvI/P99Zl85Fbuu/zzYAZRLLlGTRe6/9IHofe/w==", + "cpu": [ -+ "x64" ++ "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ -+ "win32" ++ "darwin" + ], + "engines": { + "node": ">= 10" @@ -2328,8 +1296,6 @@ + }, + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", -+ "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", -+ "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "license": "MIT", + "dependencies": { + "@nodelib/fs.stat": "2.0.5", @@ -2341,8 +1307,6 @@ + }, + "node_modules/@nodelib/fs.stat": { + "version": "2.0.5", -+ "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", -+ "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "license": "MIT", + "engines": { + "node": ">= 8" @@ -2350,8 +1314,6 @@ + }, + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", -+ "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", -+ "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "license": "MIT", + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", @@ -2363,14 +1325,10 @@ + }, + "node_modules/@open-draft/until": { + "version": "1.0.3", -+ "resolved": "https://registry.npmjs.org/@open-draft/until/-/until-1.0.3.tgz", -+ "integrity": "sha512-Aq58f5HiWdyDlFffbbSjAlv596h/cOnt2DO1w3DOC7OJ5EHs0hd/nycJfiu9RJbT6Yk6F1knnRRXNSpxoIVZ9Q==", + "license": "MIT" + }, + "node_modules/@oslojs/asn1": { + "version": "1.0.0", -+ "resolved": "https://registry.npmjs.org/@oslojs/asn1/-/asn1-1.0.0.tgz", -+ "integrity": "sha512-zw/wn0sj0j0QKbIXfIlnEcTviaCzYOY3V5rAyjR6YtOByFtJiT574+8p9Wlach0lZH9fddD4yb9laEAIl4vXQA==", + "license": "MIT", + "dependencies": { + "@oslojs/binary": "1.0.0" @@ -2378,14 +1336,10 @@ + }, + "node_modules/@oslojs/binary": { + "version": "1.0.0", -+ "resolved": "https://registry.npmjs.org/@oslojs/binary/-/binary-1.0.0.tgz", -+ "integrity": "sha512-9RCU6OwXU6p67H4NODbuxv2S3eenuQ4/WFLrsq+K/k682xrznH5EVWA7N4VFk9VYVcbFtKqur5YQQZc0ySGhsQ==", + "license": "MIT" + }, + "node_modules/@oslojs/crypto": { + "version": "1.0.1", -+ "resolved": "https://registry.npmjs.org/@oslojs/crypto/-/crypto-1.0.1.tgz", -+ "integrity": "sha512-7n08G8nWjAr/Yu3vu9zzrd0L9XnrJfpMioQcvCMxBIiF5orECHe5/3J0jmXRVvgfqMm/+4oxlQ+Sq39COYLcNQ==", + "license": "MIT", + "dependencies": { + "@oslojs/asn1": "1.0.0", @@ -2394,14 +1348,10 @@ + }, + "node_modules/@oslojs/encoding": { + "version": "1.1.0", -+ "resolved": "https://registry.npmjs.org/@oslojs/encoding/-/encoding-1.1.0.tgz", -+ "integrity": "sha512-70wQhgYmndg4GCPxPPxPGevRKqTIJ2Nh4OkiMWmDAVYsTQ+Ta7Sq+rPevXyXGdzr30/qZBnyOalCszoMxlyldQ==", + "license": "MIT" + }, + "node_modules/@pkgjs/parseargs": { + "version": "0.11.0", -+ "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", -+ "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", + "license": "MIT", + "optional": true, + "engines": { @@ -2410,14 +1360,10 @@ + }, + "node_modules/@polka/url": { + "version": "1.0.0-next.28", -+ "resolved": "https://registry.npmjs.org/@polka/url/-/url-1.0.0-next.28.tgz", -+ "integrity": "sha512-8LduaNlMZGwdZ6qWrKlfa+2M4gahzFkprZiAt2TF8uS0qQgBizKXpXURqvTJ4WtmupWxaLqjRb2UCTe72mu+Aw==", + "license": "MIT" + }, + "node_modules/@prisma/client": { + "version": "5.19.1", -+ "resolved": "https://registry.npmjs.org/@prisma/client/-/client-5.19.1.tgz", -+ "integrity": "sha512-x30GFguInsgt+4z5I4WbkZP2CGpotJMUXy+Gl/aaUjHn2o1DnLYNTA+q9XdYmAQZM8fIIkvUiA2NpgosM3fneg==", + "hasInstallScript": true, + "license": "Apache-2.0", + "engines": { @@ -2434,14 +1380,10 @@ + }, + "node_modules/@prisma/debug": { + "version": "5.19.1", -+ "resolved": "https://registry.npmjs.org/@prisma/debug/-/debug-5.19.1.tgz", -+ "integrity": "sha512-lAG6A6QnG2AskAukIEucYJZxxcSqKsMK74ZFVfCTOM/7UiyJQi48v6TQ47d6qKG3LbMslqOvnTX25dj/qvclGg==", + "license": "Apache-2.0" + }, + "node_modules/@prisma/engines": { + "version": "5.19.1", -+ "resolved": "https://registry.npmjs.org/@prisma/engines/-/engines-5.19.1.tgz", -+ "integrity": "sha512-kR/PoxZDrfUmbbXqqb8SlBBgCjvGaJYMCOe189PEYzq9rKqitQ2fvT/VJ8PDSe8tTNxhc2KzsCfCAL+Iwm/7Cg==", + "hasInstallScript": true, + "license": "Apache-2.0", + "dependencies": { @@ -2453,14 +1395,10 @@ + }, + "node_modules/@prisma/engines-version": { + "version": "5.19.1-2.69d742ee20b815d88e17e54db4a2a7a3b30324e3", -+ "resolved": "https://registry.npmjs.org/@prisma/engines-version/-/engines-version-5.19.1-2.69d742ee20b815d88e17e54db4a2a7a3b30324e3.tgz", -+ "integrity": "sha512-xR6rt+z5LnNqTP5BBc+8+ySgf4WNMimOKXRn6xfNRDSpHvbOEmd7+qAOmzCrddEc4Cp8nFC0txU14dstjH7FXA==", + "license": "Apache-2.0" + }, + "node_modules/@prisma/fetch-engine": { + "version": "5.19.1", -+ "resolved": "https://registry.npmjs.org/@prisma/fetch-engine/-/fetch-engine-5.19.1.tgz", -+ "integrity": "sha512-pCq74rtlOVJfn4pLmdJj+eI4P7w2dugOnnTXpRilP/6n5b2aZiA4ulJlE0ddCbTPkfHmOL9BfaRgA8o+1rfdHw==", + "license": "Apache-2.0", + "dependencies": { + "@prisma/debug": "5.19.1", @@ -2470,8 +1408,6 @@ + }, + "node_modules/@prisma/get-platform": { + "version": "5.19.1", -+ "resolved": "https://registry.npmjs.org/@prisma/get-platform/-/get-platform-5.19.1.tgz", -+ "integrity": "sha512-sCeoJ+7yt0UjnR+AXZL7vXlg5eNxaFOwC23h0KvW1YIXUoa7+W2ZcAUhoEQBmJTW4GrFqCuZ8YSP0mkDa4k3Zg==", + "license": "Apache-2.0", + "dependencies": { + "@prisma/debug": "5.19.1" @@ -2479,32 +1415,22 @@ + }, + "node_modules/@protobufjs/aspromise": { + "version": "1.1.2", -+ "resolved": "https://registry.npmjs.org/@protobufjs/aspromise/-/aspromise-1.1.2.tgz", -+ "integrity": "sha512-j+gKExEuLmKwvz3OgROXtrJ2UG2x8Ch2YZUxahh+s1F2HZ+wAceUNLkvy6zKCPVRkU++ZWQrdxsUeQXmcg4uoQ==", + "license": "BSD-3-Clause" + }, + "node_modules/@protobufjs/base64": { + "version": "1.1.2", -+ "resolved": "https://registry.npmjs.org/@protobufjs/base64/-/base64-1.1.2.tgz", -+ "integrity": "sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg==", + "license": "BSD-3-Clause" + }, + "node_modules/@protobufjs/codegen": { + "version": "2.0.4", -+ "resolved": "https://registry.npmjs.org/@protobufjs/codegen/-/codegen-2.0.4.tgz", -+ "integrity": "sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg==", + "license": "BSD-3-Clause" + }, + "node_modules/@protobufjs/eventemitter": { + "version": "1.1.0", -+ "resolved": "https://registry.npmjs.org/@protobufjs/eventemitter/-/eventemitter-1.1.0.tgz", -+ "integrity": "sha512-j9ednRT81vYJ9OfVuXG6ERSTdEL1xVsNgqpkxMsbIabzSo3goCjDIveeGv5d03om39ML71RdmrGNjG5SReBP/Q==", + "license": "BSD-3-Clause" + }, + "node_modules/@protobufjs/fetch": { + "version": "1.1.0", -+ "resolved": "https://registry.npmjs.org/@protobufjs/fetch/-/fetch-1.1.0.tgz", -+ "integrity": "sha512-lljVXpqXebpsijW71PZaCYeIcE5on1w5DlQy5WH6GLbFryLUrBD4932W/E2BSpfRJWseIL4v/KPgBFxDOIdKpQ==", + "license": "BSD-3-Clause", + "dependencies": { + "@protobufjs/aspromise": "^1.1.1", @@ -2513,50 +1439,34 @@ + }, + "node_modules/@protobufjs/float": { + "version": "1.0.2", -+ "resolved": "https://registry.npmjs.org/@protobufjs/float/-/float-1.0.2.tgz", -+ "integrity": "sha512-Ddb+kVXlXst9d+R9PfTIxh1EdNkgoRe5tOX6t01f1lYWOvJnSPDBlG241QLzcyPdoNTsblLUdujGSE4RzrTZGQ==", + "license": "BSD-3-Clause" + }, + "node_modules/@protobufjs/inquire": { + "version": "1.1.0", -+ "resolved": "https://registry.npmjs.org/@protobufjs/inquire/-/inquire-1.1.0.tgz", -+ "integrity": "sha512-kdSefcPdruJiFMVSbn801t4vFK7KB/5gd2fYvrxhuJYg8ILrmn9SKSX2tZdV6V+ksulWqS7aXjBcRXl3wHoD9Q==", + "license": "BSD-3-Clause" + }, + "node_modules/@protobufjs/path": { + "version": "1.1.2", -+ "resolved": "https://registry.npmjs.org/@protobufjs/path/-/path-1.1.2.tgz", -+ "integrity": "sha512-6JOcJ5Tm08dOHAbdR3GrvP+yUUfkjG5ePsHYczMFLq3ZmMkAD98cDgcT2iA1lJ9NVwFd4tH/iSSoe44YWkltEA==", + "license": "BSD-3-Clause" + }, + "node_modules/@protobufjs/pool": { + "version": "1.1.0", -+ "resolved": "https://registry.npmjs.org/@protobufjs/pool/-/pool-1.1.0.tgz", -+ "integrity": "sha512-0kELaGSIDBKvcgS4zkjz1PeddatrjYcmMWOlAuAPwAeccUrPHdUqo/J6LiymHHEiJT5NrF1UVwxY14f+fy4WQw==", + "license": "BSD-3-Clause" + }, + "node_modules/@protobufjs/utf8": { + "version": "1.1.0", -+ "resolved": "https://registry.npmjs.org/@protobufjs/utf8/-/utf8-1.1.0.tgz", -+ "integrity": "sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw==", + "license": "BSD-3-Clause" + }, + "node_modules/@radix-ui/number": { + "version": "1.1.1", -+ "resolved": "https://registry.npmjs.org/@radix-ui/number/-/number-1.1.1.tgz", -+ "integrity": "sha512-MkKCwxlXTgz6CFoJx3pCwn07GKp36+aZyu/u2Ln2VrA5DcdyCZkASEDBTd8x5whTQQL5CiYf4prXKLcgQdv29g==", + "license": "MIT" + }, + "node_modules/@radix-ui/primitive": { + "version": "1.1.2", -+ "resolved": "https://registry.npmjs.org/@radix-ui/primitive/-/primitive-1.1.2.tgz", -+ "integrity": "sha512-XnbHrrprsNqZKQhStrSwgRUQzoCI1glLzdw79xiZPoofhGICeZRSQ3dIxAKH1gb3OHfNf4d6f+vAv3kil2eggA==", + "license": "MIT" + }, + "node_modules/@radix-ui/react-accordion": { + "version": "1.2.11", -+ "resolved": "https://registry.npmjs.org/@radix-ui/react-accordion/-/react-accordion-1.2.11.tgz", -+ "integrity": "sha512-l3W5D54emV2ues7jjeG1xcyN7S3jnK3zE2zHqgn0CmMsy9lNJwmgcrmaxS+7ipw15FAivzKNzH3d5EcGoFKw0A==", + "license": "MIT", + "dependencies": { + "@radix-ui/primitive": "1.1.2", @@ -2586,8 +1496,6 @@ + }, + "node_modules/@radix-ui/react-arrow": { + "version": "1.1.7", -+ "resolved": "https://registry.npmjs.org/@radix-ui/react-arrow/-/react-arrow-1.1.7.tgz", -+ "integrity": "sha512-F+M1tLhO+mlQaOWspE8Wstg+z6PwxwRd8oQ8IXceWz92kfAmalTRf0EjrouQeo7QssEPfCn05B4Ihs1K9WQ/7w==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-primitive": "2.1.3" @@ -2609,8 +1517,6 @@ + }, + "node_modules/@radix-ui/react-avatar": { + "version": "1.1.10", -+ "resolved": "https://registry.npmjs.org/@radix-ui/react-avatar/-/react-avatar-1.1.10.tgz", -+ "integrity": "sha512-V8piFfWapM5OmNCXTzVQY+E1rDa53zY+MQ4Y7356v4fFz6vqCyUtIz2rUD44ZEdwg78/jKmMJHj07+C/Z/rcog==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-context": "1.1.2", @@ -2636,8 +1542,6 @@ + }, + "node_modules/@radix-ui/react-checkbox": { + "version": "1.3.2", -+ "resolved": "https://registry.npmjs.org/@radix-ui/react-checkbox/-/react-checkbox-1.3.2.tgz", -+ "integrity": "sha512-yd+dI56KZqawxKZrJ31eENUwqc1QSqg4OZ15rybGjF2ZNwMO+wCyHzAVLRp9qoYJf7kYy0YpZ2b0JCzJ42HZpA==", + "license": "MIT", + "dependencies": { + "@radix-ui/primitive": "1.1.2", @@ -2666,8 +1570,6 @@ + }, + "node_modules/@radix-ui/react-collapsible": { + "version": "1.1.11", -+ "resolved": "https://registry.npmjs.org/@radix-ui/react-collapsible/-/react-collapsible-1.1.11.tgz", -+ "integrity": "sha512-2qrRsVGSCYasSz1RFOorXwl0H7g7J1frQtgpQgYrt+MOidtPAINHn9CPovQXb83r8ahapdx3Tu0fa/pdFFSdPg==", + "license": "MIT", + "dependencies": { + "@radix-ui/primitive": "1.1.2", @@ -2696,8 +1598,6 @@ + }, + "node_modules/@radix-ui/react-collection": { + "version": "1.1.7", -+ "resolved": "https://registry.npmjs.org/@radix-ui/react-collection/-/react-collection-1.1.7.tgz", -+ "integrity": "sha512-Fh9rGN0MoI4ZFUNyfFVNU4y9LUz93u9/0K+yLgA2bwRojxM8JU1DyvvMBabnZPBgMWREAJvU2jjVzq+LrFUglw==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-compose-refs": "1.1.2", @@ -2722,8 +1622,6 @@ + }, + "node_modules/@radix-ui/react-compose-refs": { + "version": "1.1.2", -+ "resolved": "https://registry.npmjs.org/@radix-ui/react-compose-refs/-/react-compose-refs-1.1.2.tgz", -+ "integrity": "sha512-z4eqJvfiNnFMHIIvXP3CY57y2WJs5g2v3X0zm9mEJkrkNv4rDxu+sg9Jh8EkXyeqBkB7SOcboo9dMVqhyrACIg==", + "license": "MIT", + "peerDependencies": { + "@types/react": "*", @@ -2737,8 +1635,6 @@ + }, + "node_modules/@radix-ui/react-context": { + "version": "1.1.2", -+ "resolved": "https://registry.npmjs.org/@radix-ui/react-context/-/react-context-1.1.2.tgz", -+ "integrity": "sha512-jCi/QKUM2r1Ju5a3J64TH2A5SpKAgh0LpknyqdQ4m6DCV0xJ2HG1xARRwNGPQfi1SLdLWZ1OJz6F4OMBBNiGJA==", + "license": "MIT", + "peerDependencies": { + "@types/react": "*", @@ -2752,8 +1648,6 @@ + }, + "node_modules/@radix-ui/react-dialog": { + "version": "1.1.14", -+ "resolved": "https://registry.npmjs.org/@radix-ui/react-dialog/-/react-dialog-1.1.14.tgz", -+ "integrity": "sha512-+CpweKjqpzTmwRwcYECQcNYbI8V9VSQt0SNFKeEBLgfucbsLssU6Ppq7wUdNXEGb573bMjFhVjKVll8rmV6zMw==", + "license": "MIT", + "dependencies": { + "@radix-ui/primitive": "1.1.2", @@ -2788,8 +1682,6 @@ + }, + "node_modules/@radix-ui/react-direction": { + "version": "1.1.1", -+ "resolved": "https://registry.npmjs.org/@radix-ui/react-direction/-/react-direction-1.1.1.tgz", -+ "integrity": "sha512-1UEWRX6jnOA2y4H5WczZ44gOOjTEmlqv1uNW4GAJEO5+bauCBhv8snY65Iw5/VOS/ghKN9gr2KjnLKxrsvoMVw==", + "license": "MIT", + "peerDependencies": { + "@types/react": "*", @@ -2803,8 +1695,6 @@ + }, + "node_modules/@radix-ui/react-dismissable-layer": { + "version": "1.1.10", -+ "resolved": "https://registry.npmjs.org/@radix-ui/react-dismissable-layer/-/react-dismissable-layer-1.1.10.tgz", -+ "integrity": "sha512-IM1zzRV4W3HtVgftdQiiOmA0AdJlCtMLe00FXaHwgt3rAnNsIyDqshvkIW3hj/iu5hu8ERP7KIYki6NkqDxAwQ==", + "license": "MIT", + "dependencies": { + "@radix-ui/primitive": "1.1.2", @@ -2830,8 +1720,6 @@ + }, + "node_modules/@radix-ui/react-dropdown-menu": { + "version": "2.1.15", -+ "resolved": "https://registry.npmjs.org/@radix-ui/react-dropdown-menu/-/react-dropdown-menu-2.1.15.tgz", -+ "integrity": "sha512-mIBnOjgwo9AH3FyKaSWoSu/dYj6VdhJ7frEPiGTeXCdUFHjl9h3mFh2wwhEtINOmYXWhdpf1rY2minFsmaNgVQ==", + "license": "MIT", + "dependencies": { + "@radix-ui/primitive": "1.1.2", @@ -2859,8 +1747,6 @@ + }, + "node_modules/@radix-ui/react-focus-guards": { + "version": "1.1.2", -+ "resolved": "https://registry.npmjs.org/@radix-ui/react-focus-guards/-/react-focus-guards-1.1.2.tgz", -+ "integrity": "sha512-fyjAACV62oPV925xFCrH8DR5xWhg9KYtJT4s3u54jxp+L/hbpTY2kIeEFFbFe+a/HCE94zGQMZLIpVTPVZDhaA==", + "license": "MIT", + "peerDependencies": { + "@types/react": "*", @@ -2874,8 +1760,6 @@ + }, + "node_modules/@radix-ui/react-focus-scope": { + "version": "1.1.7", -+ "resolved": "https://registry.npmjs.org/@radix-ui/react-focus-scope/-/react-focus-scope-1.1.7.tgz", -+ "integrity": "sha512-t2ODlkXBQyn7jkl6TNaw/MtVEVvIGelJDCG41Okq/KwUsJBwQ4XVZsHAVUkK4mBv3ewiAS3PGuUWuY2BoK4ZUw==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-compose-refs": "1.1.2", @@ -2899,8 +1783,6 @@ + }, + "node_modules/@radix-ui/react-id": { + "version": "1.1.1", -+ "resolved": "https://registry.npmjs.org/@radix-ui/react-id/-/react-id-1.1.1.tgz", -+ "integrity": "sha512-kGkGegYIdQsOb4XjsfM97rXsiHaBwco+hFI66oO4s9LU+PLAC5oJ7khdOVFxkhsmlbpUqDAvXw11CluXP+jkHg==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-use-layout-effect": "1.1.1" @@ -2917,8 +1799,6 @@ + }, + "node_modules/@radix-ui/react-label": { + "version": "2.1.7", -+ "resolved": "https://registry.npmjs.org/@radix-ui/react-label/-/react-label-2.1.7.tgz", -+ "integrity": "sha512-YT1GqPSL8kJn20djelMX7/cTRp/Y9w5IZHvfxQTVHrOqa2yMl7i/UfMqKRU5V7mEyKTrUVgJXhNQPVCG8PBLoQ==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-primitive": "2.1.3" @@ -2940,8 +1820,6 @@ + }, + "node_modules/@radix-ui/react-menu": { + "version": "2.1.15", -+ "resolved": "https://registry.npmjs.org/@radix-ui/react-menu/-/react-menu-2.1.15.tgz", -+ "integrity": "sha512-tVlmA3Vb9n8SZSd+YSbuFR66l87Wiy4du+YE+0hzKQEANA+7cWKH1WgqcEX4pXqxUFQKrWQGHdvEfw00TjFiew==", + "license": "MIT", + "dependencies": { + "@radix-ui/primitive": "1.1.2", @@ -2980,8 +1858,6 @@ + }, + "node_modules/@radix-ui/react-popper": { + "version": "1.2.7", -+ "resolved": "https://registry.npmjs.org/@radix-ui/react-popper/-/react-popper-1.2.7.tgz", -+ "integrity": "sha512-IUFAccz1JyKcf/RjB552PlWwxjeCJB8/4KxT7EhBHOJM+mN7LdW+B3kacJXILm32xawcMMjb2i0cIZpo+f9kiQ==", + "license": "MIT", + "dependencies": { + "@floating-ui/react-dom": "^2.0.0", @@ -3012,8 +1888,6 @@ + }, + "node_modules/@radix-ui/react-portal": { + "version": "1.1.9", -+ "resolved": "https://registry.npmjs.org/@radix-ui/react-portal/-/react-portal-1.1.9.tgz", -+ "integrity": "sha512-bpIxvq03if6UNwXZ+HTK71JLh4APvnXntDc6XOX8UVq4XQOVl7lwok0AvIl+b8zgCw3fSaVTZMpAPPagXbKmHQ==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-primitive": "2.1.3", @@ -3036,8 +1910,6 @@ + }, + "node_modules/@radix-ui/react-presence": { + "version": "1.1.4", -+ "resolved": "https://registry.npmjs.org/@radix-ui/react-presence/-/react-presence-1.1.4.tgz", -+ "integrity": "sha512-ueDqRbdc4/bkaQT3GIpLQssRlFgWaL/U2z/S31qRwwLWoxHLgry3SIfCwhxeQNbirEUXFa+lq3RL3oBYXtcmIA==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-compose-refs": "1.1.2", @@ -3060,8 +1932,6 @@ + }, + "node_modules/@radix-ui/react-primitive": { + "version": "2.1.3", -+ "resolved": "https://registry.npmjs.org/@radix-ui/react-primitive/-/react-primitive-2.1.3.tgz", -+ "integrity": "sha512-m9gTwRkhy2lvCPe6QJp4d3G1TYEUHn/FzJUtq9MjH46an1wJU+GdoGC5VLof8RX8Ft/DlpshApkhswDLZzHIcQ==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-slot": "1.2.3" @@ -3083,8 +1953,6 @@ + }, + "node_modules/@radix-ui/react-progress": { + "version": "1.1.7", -+ "resolved": "https://registry.npmjs.org/@radix-ui/react-progress/-/react-progress-1.1.7.tgz", -+ "integrity": "sha512-vPdg/tF6YC/ynuBIJlk1mm7Le0VgW6ub6J2UWnTQ7/D23KXcPI1qy+0vBkgKgd38RCMJavBXpB83HPNFMTb0Fg==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-context": "1.1.2", @@ -3107,8 +1975,6 @@ + }, + "node_modules/@radix-ui/react-roving-focus": { + "version": "1.1.10", -+ "resolved": "https://registry.npmjs.org/@radix-ui/react-roving-focus/-/react-roving-focus-1.1.10.tgz", -+ "integrity": "sha512-dT9aOXUen9JSsxnMPv/0VqySQf5eDQ6LCk5Sw28kamz8wSOW2bJdlX2Bg5VUIIcV+6XlHpWTIuTPCf/UNIyq8Q==", + "license": "MIT", + "dependencies": { + "@radix-ui/primitive": "1.1.2", @@ -3138,8 +2004,6 @@ + }, + "node_modules/@radix-ui/react-select": { + "version": "2.2.5", -+ "resolved": "https://registry.npmjs.org/@radix-ui/react-select/-/react-select-2.2.5.tgz", -+ "integrity": "sha512-HnMTdXEVuuyzx63ME0ut4+sEMYW6oouHWNGUZc7ddvUWIcfCva/AMoqEW/3wnEllriMWBa0RHspCYnfCWJQYmA==", + "license": "MIT", + "dependencies": { + "@radix-ui/number": "1.1.1", @@ -3181,8 +2045,6 @@ + }, + "node_modules/@radix-ui/react-separator": { + "version": "1.1.7", -+ "resolved": "https://registry.npmjs.org/@radix-ui/react-separator/-/react-separator-1.1.7.tgz", -+ "integrity": "sha512-0HEb8R9E8A+jZjvmFCy/J4xhbXy3TV+9XSnGJ3KvTtjlIUy/YQ/p6UYZvi7YbeoeXdyU9+Y3scizK6hkY37baA==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-primitive": "2.1.3" @@ -3204,8 +2066,6 @@ + }, + "node_modules/@radix-ui/react-slot": { + "version": "1.2.3", -+ "resolved": "https://registry.npmjs.org/@radix-ui/react-slot/-/react-slot-1.2.3.tgz", -+ "integrity": "sha512-aeNmHnBxbi2St0au6VBVC7JXFlhLlOnvIIlePNniyUNAClzmtAUEY8/pBiK3iHjufOlwA+c20/8jngo7xcrg8A==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-compose-refs": "1.1.2" @@ -3222,8 +2082,6 @@ + }, + "node_modules/@radix-ui/react-switch": { + "version": "1.2.5", -+ "resolved": "https://registry.npmjs.org/@radix-ui/react-switch/-/react-switch-1.2.5.tgz", -+ "integrity": "sha512-5ijLkak6ZMylXsaImpZ8u4Rlf5grRmoc0p0QeX9VJtlrM4f5m3nCTX8tWga/zOA8PZYIR/t0p2Mnvd7InrJ6yQ==", + "license": "MIT", + "dependencies": { + "@radix-ui/primitive": "1.1.2", @@ -3251,8 +2109,6 @@ + }, + "node_modules/@radix-ui/react-use-callback-ref": { + "version": "1.1.1", -+ "resolved": "https://registry.npmjs.org/@radix-ui/react-use-callback-ref/-/react-use-callback-ref-1.1.1.tgz", -+ "integrity": "sha512-FkBMwD+qbGQeMu1cOHnuGB6x4yzPjho8ap5WtbEJ26umhgqVXbhekKUQO+hZEL1vU92a3wHwdp0HAcqAUF5iDg==", + "license": "MIT", + "peerDependencies": { + "@types/react": "*", @@ -3266,8 +2122,6 @@ + }, + "node_modules/@radix-ui/react-use-controllable-state": { + "version": "1.2.2", -+ "resolved": "https://registry.npmjs.org/@radix-ui/react-use-controllable-state/-/react-use-controllable-state-1.2.2.tgz", -+ "integrity": "sha512-BjasUjixPFdS+NKkypcyyN5Pmg83Olst0+c6vGov0diwTEo6mgdqVR6hxcEgFuh4QrAs7Rc+9KuGJ9TVCj0Zzg==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-use-effect-event": "0.0.2", @@ -3285,8 +2139,6 @@ + }, + "node_modules/@radix-ui/react-use-effect-event": { + "version": "0.0.2", -+ "resolved": "https://registry.npmjs.org/@radix-ui/react-use-effect-event/-/react-use-effect-event-0.0.2.tgz", -+ "integrity": "sha512-Qp8WbZOBe+blgpuUT+lw2xheLP8q0oatc9UpmiemEICxGvFLYmHm9QowVZGHtJlGbS6A6yJ3iViad/2cVjnOiA==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-use-layout-effect": "1.1.1" @@ -3303,8 +2155,6 @@ + }, + "node_modules/@radix-ui/react-use-escape-keydown": { + "version": "1.1.1", -+ "resolved": "https://registry.npmjs.org/@radix-ui/react-use-escape-keydown/-/react-use-escape-keydown-1.1.1.tgz", -+ "integrity": "sha512-Il0+boE7w/XebUHyBjroE+DbByORGR9KKmITzbR7MyQ4akpORYP/ZmbhAr0DG7RmmBqoOnZdy2QlvajJ2QA59g==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-use-callback-ref": "1.1.1" @@ -3321,8 +2171,6 @@ + }, + "node_modules/@radix-ui/react-use-is-hydrated": { + "version": "0.1.0", -+ "resolved": "https://registry.npmjs.org/@radix-ui/react-use-is-hydrated/-/react-use-is-hydrated-0.1.0.tgz", -+ "integrity": "sha512-U+UORVEq+cTnRIaostJv9AGdV3G6Y+zbVd+12e18jQ5A3c0xL03IhnHuiU4UV69wolOQp5GfR58NW/EgdQhwOA==", + "license": "MIT", + "dependencies": { + "use-sync-external-store": "^1.5.0" @@ -3339,8 +2187,6 @@ + }, + "node_modules/@radix-ui/react-use-layout-effect": { + "version": "1.1.1", -+ "resolved": "https://registry.npmjs.org/@radix-ui/react-use-layout-effect/-/react-use-layout-effect-1.1.1.tgz", -+ "integrity": "sha512-RbJRS4UWQFkzHTTwVymMTUv8EqYhOp8dOOviLj2ugtTiXRaRQS7GLGxZTLL1jWhMeoSCf5zmcZkqTl9IiYfXcQ==", + "license": "MIT", + "peerDependencies": { + "@types/react": "*", @@ -3354,8 +2200,6 @@ + }, + "node_modules/@radix-ui/react-use-previous": { + "version": "1.1.1", -+ "resolved": "https://registry.npmjs.org/@radix-ui/react-use-previous/-/react-use-previous-1.1.1.tgz", -+ "integrity": "sha512-2dHfToCj/pzca2Ck724OZ5L0EVrr3eHRNsG/b3xQJLA2hZpVCS99bLAX+hm1IHXDEnzU6by5z/5MIY794/a8NQ==", + "license": "MIT", + "peerDependencies": { + "@types/react": "*", @@ -3369,8 +2213,6 @@ + }, + "node_modules/@radix-ui/react-use-rect": { + "version": "1.1.1", -+ "resolved": "https://registry.npmjs.org/@radix-ui/react-use-rect/-/react-use-rect-1.1.1.tgz", -+ "integrity": "sha512-QTYuDesS0VtuHNNvMh+CjlKJ4LJickCMUAqjlE3+j8w+RlRpwyX3apEQKGFzbZGdo7XNG1tXa+bQqIE7HIXT2w==", + "license": "MIT", + "dependencies": { + "@radix-ui/rect": "1.1.1" @@ -3383,315 +2225,69 @@ + "@types/react": { + "optional": true + } -+ } -+ }, -+ "node_modules/@radix-ui/react-use-size": { -+ "version": "1.1.1", -+ "resolved": "https://registry.npmjs.org/@radix-ui/react-use-size/-/react-use-size-1.1.1.tgz", -+ "integrity": "sha512-ewrXRDTAqAXlkl6t/fkXWNAhFX9I+CkKlw6zjEwk86RSPKwZr3xpBRso655aqYafwtnbpHLj6toFzmd6xdVptQ==", -+ "license": "MIT", -+ "dependencies": { -+ "@radix-ui/react-use-layout-effect": "1.1.1" -+ }, -+ "peerDependencies": { -+ "@types/react": "*", -+ "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" -+ }, -+ "peerDependenciesMeta": { -+ "@types/react": { -+ "optional": true -+ } -+ } -+ }, -+ "node_modules/@radix-ui/react-visually-hidden": { -+ "version": "1.2.3", -+ "resolved": "https://registry.npmjs.org/@radix-ui/react-visually-hidden/-/react-visually-hidden-1.2.3.tgz", -+ "integrity": "sha512-pzJq12tEaaIhqjbzpCuv/OypJY/BPavOofm+dbab+MHLajy277+1lLm6JFcGgF5eskJ6mquGirhXY2GD/8u8Ug==", -+ "license": "MIT", -+ "dependencies": { -+ "@radix-ui/react-primitive": "2.1.3" -+ }, -+ "peerDependencies": { -+ "@types/react": "*", -+ "@types/react-dom": "*", -+ "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", -+ "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" -+ }, -+ "peerDependenciesMeta": { -+ "@types/react": { -+ "optional": true -+ }, -+ "@types/react-dom": { -+ "optional": true -+ } -+ } -+ }, -+ "node_modules/@radix-ui/rect": { -+ "version": "1.1.1", -+ "resolved": "https://registry.npmjs.org/@radix-ui/rect/-/rect-1.1.1.tgz", -+ "integrity": "sha512-HPwpGIzkl28mWyZqG52jiqDJ12waP11Pa1lGoiyUkIEuMLBP0oeK/C89esbXrxsky5we7dfd8U58nm0SgAWpVw==", -+ "license": "MIT" -+ }, -+ "node_modules/@remix-run/router": { -+ "version": "1.23.0", -+ "resolved": "https://registry.npmjs.org/@remix-run/router/-/router-1.23.0.tgz", -+ "integrity": "sha512-O3rHJzAQKamUz1fvE0Qaw0xSFqsA/yafi2iqeE0pvdFtCO1viYx8QL6f3Ln/aCCTLxs68SLf0KPM9eSeM8yBnA==", -+ "license": "MIT", -+ "engines": { -+ "node": ">=14.0.0" -+ } -+ }, -+ "node_modules/@rollup/rollup-android-arm-eabi": { -+ "version": "4.36.0", -+ "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.36.0.tgz", -+ "integrity": "sha512-jgrXjjcEwN6XpZXL0HUeOVGfjXhPyxAbbhD0BlXUB+abTOpbPiN5Wb3kOT7yb+uEtATNYF5x5gIfwutmuBA26w==", -+ "cpu": [ -+ "arm" -+ ], -+ "license": "MIT", -+ "optional": true, -+ "os": [ -+ "android" -+ ] -+ }, -+ "node_modules/@rollup/rollup-android-arm64": { -+ "version": "4.36.0", -+ "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.36.0.tgz", -+ "integrity": "sha512-NyfuLvdPdNUfUNeYKUwPwKsE5SXa2J6bCt2LdB/N+AxShnkpiczi3tcLJrm5mA+eqpy0HmaIY9F6XCa32N5yzg==", -+ "cpu": [ -+ "arm64" -+ ], -+ "license": "MIT", -+ "optional": true, -+ "os": [ -+ "android" -+ ] -+ }, -+ "node_modules/@rollup/rollup-darwin-arm64": { -+ "version": "4.36.0", -+ "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.36.0.tgz", -+ "integrity": "sha512-JQ1Jk5G4bGrD4pWJQzWsD8I1n1mgPXq33+/vP4sk8j/z/C2siRuxZtaUA7yMTf71TCZTZl/4e1bfzwUmFb3+rw==", -+ "cpu": [ -+ "arm64" -+ ], -+ "license": "MIT", -+ "optional": true, -+ "os": [ -+ "darwin" -+ ] -+ }, -+ "node_modules/@rollup/rollup-darwin-x64": { -+ "version": "4.36.0", -+ "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.36.0.tgz", -+ "integrity": "sha512-6c6wMZa1lrtiRsbDziCmjE53YbTkxMYhhnWnSW8R/yqsM7a6mSJ3uAVT0t8Y/DGt7gxUWYuFM4bwWk9XCJrFKA==", -+ "cpu": [ -+ "x64" -+ ], -+ "license": "MIT", -+ "optional": true, -+ "os": [ -+ "darwin" -+ ] -+ }, -+ "node_modules/@rollup/rollup-freebsd-arm64": { -+ "version": "4.36.0", -+ "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.36.0.tgz", -+ "integrity": "sha512-KXVsijKeJXOl8QzXTsA+sHVDsFOmMCdBRgFmBb+mfEb/7geR7+C8ypAml4fquUt14ZyVXaw2o1FWhqAfOvA4sg==", -+ "cpu": [ -+ "arm64" -+ ], -+ "license": "MIT", -+ "optional": true, -+ "os": [ -+ "freebsd" -+ ] -+ }, -+ "node_modules/@rollup/rollup-freebsd-x64": { -+ "version": "4.36.0", -+ "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.36.0.tgz", -+ "integrity": "sha512-dVeWq1ebbvByI+ndz4IJcD4a09RJgRYmLccwlQ8bPd4olz3Y213uf1iwvc7ZaxNn2ab7bjc08PrtBgMu6nb4pQ==", -+ "cpu": [ -+ "x64" -+ ], -+ "license": "MIT", -+ "optional": true, -+ "os": [ -+ "freebsd" -+ ] -+ }, -+ "node_modules/@rollup/rollup-linux-arm-gnueabihf": { -+ "version": "4.36.0", -+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.36.0.tgz", -+ "integrity": "sha512-bvXVU42mOVcF4le6XSjscdXjqx8okv4n5vmwgzcmtvFdifQ5U4dXFYaCB87namDRKlUL9ybVtLQ9ztnawaSzvg==", -+ "cpu": [ -+ "arm" -+ ], -+ "license": "MIT", -+ "optional": true, -+ "os": [ -+ "linux" -+ ] -+ }, -+ "node_modules/@rollup/rollup-linux-arm-musleabihf": { -+ "version": "4.36.0", -+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.36.0.tgz", -+ "integrity": "sha512-JFIQrDJYrxOnyDQGYkqnNBtjDwTgbasdbUiQvcU8JmGDfValfH1lNpng+4FWlhaVIR4KPkeddYjsVVbmJYvDcg==", -+ "cpu": [ -+ "arm" -+ ], -+ "license": "MIT", -+ "optional": true, -+ "os": [ -+ "linux" -+ ] -+ }, -+ "node_modules/@rollup/rollup-linux-arm64-gnu": { -+ "version": "4.36.0", -+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.36.0.tgz", -+ "integrity": "sha512-KqjYVh3oM1bj//5X7k79PSCZ6CvaVzb7Qs7VMWS+SlWB5M8p3FqufLP9VNp4CazJ0CsPDLwVD9r3vX7Ci4J56A==", -+ "cpu": [ -+ "arm64" -+ ], -+ "license": "MIT", -+ "optional": true, -+ "os": [ -+ "linux" -+ ] -+ }, -+ "node_modules/@rollup/rollup-linux-arm64-musl": { -+ "version": "4.36.0", -+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.36.0.tgz", -+ "integrity": "sha512-QiGnhScND+mAAtfHqeT+cB1S9yFnNQ/EwCg5yE3MzoaZZnIV0RV9O5alJAoJKX/sBONVKeZdMfO8QSaWEygMhw==", -+ "cpu": [ -+ "arm64" -+ ], -+ "license": "MIT", -+ "optional": true, -+ "os": [ -+ "linux" -+ ] -+ }, -+ "node_modules/@rollup/rollup-linux-loongarch64-gnu": { -+ "version": "4.36.0", -+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loongarch64-gnu/-/rollup-linux-loongarch64-gnu-4.36.0.tgz", -+ "integrity": "sha512-1ZPyEDWF8phd4FQtTzMh8FQwqzvIjLsl6/84gzUxnMNFBtExBtpL51H67mV9xipuxl1AEAerRBgBwFNpkw8+Lg==", -+ "cpu": [ -+ "loong64" -+ ], -+ "license": "MIT", -+ "optional": true, -+ "os": [ -+ "linux" -+ ] -+ }, -+ "node_modules/@rollup/rollup-linux-powerpc64le-gnu": { -+ "version": "4.36.0", -+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.36.0.tgz", -+ "integrity": "sha512-VMPMEIUpPFKpPI9GZMhJrtu8rxnp6mJR3ZzQPykq4xc2GmdHj3Q4cA+7avMyegXy4n1v+Qynr9fR88BmyO74tg==", -+ "cpu": [ -+ "ppc64" -+ ], -+ "license": "MIT", -+ "optional": true, -+ "os": [ -+ "linux" -+ ] -+ }, -+ "node_modules/@rollup/rollup-linux-riscv64-gnu": { -+ "version": "4.36.0", -+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.36.0.tgz", -+ "integrity": "sha512-ttE6ayb/kHwNRJGYLpuAvB7SMtOeQnVXEIpMtAvx3kepFQeowVED0n1K9nAdraHUPJ5hydEMxBpIR7o4nrm8uA==", -+ "cpu": [ -+ "riscv64" -+ ], -+ "license": "MIT", -+ "optional": true, -+ "os": [ -+ "linux" -+ ] -+ }, -+ "node_modules/@rollup/rollup-linux-s390x-gnu": { -+ "version": "4.36.0", -+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.36.0.tgz", -+ "integrity": "sha512-4a5gf2jpS0AIe7uBjxDeUMNcFmaRTbNv7NxI5xOCs4lhzsVyGR/0qBXduPnoWf6dGC365saTiwag8hP1imTgag==", -+ "cpu": [ -+ "s390x" -+ ], -+ "license": "MIT", -+ "optional": true, -+ "os": [ -+ "linux" -+ ] -+ }, -+ "node_modules/@rollup/rollup-linux-x64-gnu": { -+ "version": "4.36.0", -+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.36.0.tgz", -+ "integrity": "sha512-5KtoW8UWmwFKQ96aQL3LlRXX16IMwyzMq/jSSVIIyAANiE1doaQsx/KRyhAvpHlPjPiSU/AYX/8m+lQ9VToxFQ==", -+ "cpu": [ -+ "x64" -+ ], -+ "license": "MIT", -+ "optional": true, -+ "os": [ -+ "linux" -+ ] -+ }, -+ "node_modules/@rollup/rollup-linux-x64-musl": { -+ "version": "4.36.0", -+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.36.0.tgz", -+ "integrity": "sha512-sycrYZPrv2ag4OCvaN5js+f01eoZ2U+RmT5as8vhxiFz+kxwlHrsxOwKPSA8WyS+Wc6Epid9QeI/IkQ9NkgYyQ==", -+ "cpu": [ -+ "x64" -+ ], ++ } ++ }, ++ "node_modules/@radix-ui/react-use-size": { ++ "version": "1.1.1", + "license": "MIT", -+ "optional": true, -+ "os": [ -+ "linux" -+ ] ++ "dependencies": { ++ "@radix-ui/react-use-layout-effect": "1.1.1" ++ }, ++ "peerDependencies": { ++ "@types/react": "*", ++ "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" ++ }, ++ "peerDependenciesMeta": { ++ "@types/react": { ++ "optional": true ++ } ++ } + }, -+ "node_modules/@rollup/rollup-win32-arm64-msvc": { -+ "version": "4.36.0", -+ "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.36.0.tgz", -+ "integrity": "sha512-qbqt4N7tokFwwSVlWDsjfoHgviS3n/vZ8LK0h1uLG9TYIRuUTJC88E1xb3LM2iqZ/WTqNQjYrtmtGmrmmawB6A==", -+ "cpu": [ -+ "arm64" -+ ], ++ "node_modules/@radix-ui/react-visually-hidden": { ++ "version": "1.2.3", + "license": "MIT", -+ "optional": true, -+ "os": [ -+ "win32" -+ ] ++ "dependencies": { ++ "@radix-ui/react-primitive": "2.1.3" ++ }, ++ "peerDependencies": { ++ "@types/react": "*", ++ "@types/react-dom": "*", ++ "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", ++ "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" ++ }, ++ "peerDependenciesMeta": { ++ "@types/react": { ++ "optional": true ++ }, ++ "@types/react-dom": { ++ "optional": true ++ } ++ } + }, -+ "node_modules/@rollup/rollup-win32-ia32-msvc": { -+ "version": "4.36.0", -+ "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.36.0.tgz", -+ "integrity": "sha512-t+RY0JuRamIocMuQcfwYSOkmdX9dtkr1PbhKW42AMvaDQa+jOdpUYysroTF/nuPpAaQMWp7ye+ndlmmthieJrQ==", -+ "cpu": [ -+ "ia32" -+ ], ++ "node_modules/@radix-ui/rect": { ++ "version": "1.1.1", ++ "license": "MIT" ++ }, ++ "node_modules/@remix-run/router": { ++ "version": "1.23.0", + "license": "MIT", -+ "optional": true, -+ "os": [ -+ "win32" -+ ] ++ "engines": { ++ "node": ">=14.0.0" ++ } + }, -+ "node_modules/@rollup/rollup-win32-x64-msvc": { ++ "node_modules/@rollup/rollup-darwin-arm64": { + "version": "4.36.0", -+ "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.36.0.tgz", -+ "integrity": "sha512-aRXd7tRZkWLqGbChgcMMDEHjOKudo1kChb1Jt1IfR8cY/KIpgNviLeJy5FUb9IpSuQj8dU2fAYNMPW/hLKOSTw==", + "cpu": [ -+ "x64" ++ "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ -+ "win32" ++ "darwin" + ] + }, + "node_modules/@sendgrid/client": { + "version": "7.7.0", -+ "resolved": "https://registry.npmjs.org/@sendgrid/client/-/client-7.7.0.tgz", -+ "integrity": "sha512-SxH+y8jeAQSnDavrTD0uGDXYIIkFylCo+eDofVmZLQ0f862nnqbC3Vd1ej6b7Le7lboyzQF6F7Fodv02rYspuA==", + "license": "MIT", + "dependencies": { + "@sendgrid/helpers": "^7.7.0", @@ -3703,8 +2299,6 @@ + }, + "node_modules/@sendgrid/client/node_modules/axios": { + "version": "0.26.1", -+ "resolved": "https://registry.npmjs.org/axios/-/axios-0.26.1.tgz", -+ "integrity": "sha512-fPwcX4EvnSHuInCMItEhAGnaSEXRBjtzh9fOtsE6E1G6p7vl7edEeZe11QHf18+6+9gR5PbKV/sGKNaD8YaMeA==", + "license": "MIT", + "dependencies": { + "follow-redirects": "^1.14.8" @@ -3712,8 +2306,6 @@ + }, + "node_modules/@sendgrid/helpers": { + "version": "7.7.0", -+ "resolved": "https://registry.npmjs.org/@sendgrid/helpers/-/helpers-7.7.0.tgz", -+ "integrity": "sha512-3AsAxfN3GDBcXoZ/y1mzAAbKzTtUZ5+ZrHOmWQ279AuaFXUNCh9bPnRpN504bgveTqoW+11IzPg3I0WVgDINpw==", + "license": "MIT", + "dependencies": { + "deepmerge": "^4.2.2" @@ -3724,8 +2316,6 @@ + }, + "node_modules/@sendgrid/mail": { + "version": "7.7.0", -+ "resolved": "https://registry.npmjs.org/@sendgrid/mail/-/mail-7.7.0.tgz", -+ "integrity": "sha512-5+nApPE9wINBvHSUxwOxkkQqM/IAAaBYoP9hw7WwgDNQPxraruVqHizeTitVtKGiqWCKm2mnjh4XGN3fvFLqaw==", + "license": "MIT", + "dependencies": { + "@sendgrid/client": "^7.7.0", @@ -3737,14 +2327,10 @@ + }, + "node_modules/@sinclair/typebox": { + "version": "0.27.8", -+ "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.27.8.tgz", -+ "integrity": "sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==", + "license": "MIT" + }, + "node_modules/@smithy/abort-controller": { + "version": "4.0.1", -+ "resolved": "https://registry.npmjs.org/@smithy/abort-controller/-/abort-controller-4.0.1.tgz", -+ "integrity": "sha512-fiUIYgIgRjMWznk6iLJz35K2YxSLHzLBA/RC6lBrKfQ8fHbPfvk7Pk9UvpKoHgJjI18MnbPuEju53zcVy6KF1g==", + "license": "Apache-2.0", + "dependencies": { + "@smithy/types": "^4.1.0", @@ -3756,8 +2342,6 @@ + }, + "node_modules/@smithy/chunked-blob-reader": { + "version": "5.0.0", -+ "resolved": "https://registry.npmjs.org/@smithy/chunked-blob-reader/-/chunked-blob-reader-5.0.0.tgz", -+ "integrity": "sha512-+sKqDBQqb036hh4NPaUiEkYFkTUGYzRsn3EuFhyfQfMy6oGHEUJDurLP9Ufb5dasr/XiAmPNMr6wa9afjQB+Gw==", + "license": "Apache-2.0", + "dependencies": { + "tslib": "^2.6.2" @@ -3768,8 +2352,6 @@ + }, + "node_modules/@smithy/chunked-blob-reader-native": { + "version": "4.0.0", -+ "resolved": "https://registry.npmjs.org/@smithy/chunked-blob-reader-native/-/chunked-blob-reader-native-4.0.0.tgz", -+ "integrity": "sha512-R9wM2yPmfEMsUmlMlIgSzOyICs0x9uu7UTHoccMyt7BWw8shcGM8HqB355+BZCPBcySvbTYMs62EgEQkNxz2ig==", + "license": "Apache-2.0", + "dependencies": { + "@smithy/util-base64": "^4.0.0", @@ -3781,8 +2363,6 @@ + }, + "node_modules/@smithy/config-resolver": { + "version": "4.0.1", -+ "resolved": "https://registry.npmjs.org/@smithy/config-resolver/-/config-resolver-4.0.1.tgz", -+ "integrity": "sha512-Igfg8lKu3dRVkTSEm98QpZUvKEOa71jDX4vKRcvJVyRc3UgN3j7vFMf0s7xLQhYmKa8kyJGQgUJDOV5V3neVlQ==", + "license": "Apache-2.0", + "dependencies": { + "@smithy/node-config-provider": "^4.0.1", @@ -3797,8 +2377,6 @@ + }, + "node_modules/@smithy/core": { + "version": "3.1.5", -+ "resolved": "https://registry.npmjs.org/@smithy/core/-/core-3.1.5.tgz", -+ "integrity": "sha512-HLclGWPkCsekQgsyzxLhCQLa8THWXtB5PxyYN+2O6nkyLt550KQKTlbV2D1/j5dNIQapAZM1+qFnpBFxZQkgCA==", + "license": "Apache-2.0", + "dependencies": { + "@smithy/middleware-serde": "^4.0.2", @@ -3816,8 +2394,6 @@ + }, + "node_modules/@smithy/credential-provider-imds": { + "version": "4.0.1", -+ "resolved": "https://registry.npmjs.org/@smithy/credential-provider-imds/-/credential-provider-imds-4.0.1.tgz", -+ "integrity": "sha512-l/qdInaDq1Zpznpmev/+52QomsJNZ3JkTl5yrTl02V6NBgJOQ4LY0SFw/8zsMwj3tLe8vqiIuwF6nxaEwgf6mg==", + "license": "Apache-2.0", + "dependencies": { + "@smithy/node-config-provider": "^4.0.1", @@ -3832,8 +2408,6 @@ + }, + "node_modules/@smithy/eventstream-codec": { + "version": "4.0.1", -+ "resolved": "https://registry.npmjs.org/@smithy/eventstream-codec/-/eventstream-codec-4.0.1.tgz", -+ "integrity": "sha512-Q2bCAAR6zXNVtJgifsU16ZjKGqdw/DyecKNgIgi7dlqw04fqDu0mnq+JmGphqheypVc64CYq3azSuCpAdFk2+A==", + "license": "Apache-2.0", + "dependencies": { + "@aws-crypto/crc32": "5.2.0", @@ -3847,8 +2421,6 @@ + }, + "node_modules/@smithy/eventstream-serde-browser": { + "version": "4.0.1", -+ "resolved": "https://registry.npmjs.org/@smithy/eventstream-serde-browser/-/eventstream-serde-browser-4.0.1.tgz", -+ "integrity": "sha512-HbIybmz5rhNg+zxKiyVAnvdM3vkzjE6ccrJ620iPL8IXcJEntd3hnBl+ktMwIy12Te/kyrSbUb8UCdnUT4QEdA==", + "license": "Apache-2.0", + "dependencies": { + "@smithy/eventstream-serde-universal": "^4.0.1", @@ -3861,8 +2433,6 @@ + }, + "node_modules/@smithy/eventstream-serde-config-resolver": { + "version": "4.0.1", -+ "resolved": "https://registry.npmjs.org/@smithy/eventstream-serde-config-resolver/-/eventstream-serde-config-resolver-4.0.1.tgz", -+ "integrity": "sha512-lSipaiq3rmHguHa3QFF4YcCM3VJOrY9oq2sow3qlhFY+nBSTF/nrO82MUQRPrxHQXA58J5G1UnU2WuJfi465BA==", + "license": "Apache-2.0", + "dependencies": { + "@smithy/types": "^4.1.0", @@ -3874,8 +2444,6 @@ + }, + "node_modules/@smithy/eventstream-serde-node": { + "version": "4.0.1", -+ "resolved": "https://registry.npmjs.org/@smithy/eventstream-serde-node/-/eventstream-serde-node-4.0.1.tgz", -+ "integrity": "sha512-o4CoOI6oYGYJ4zXo34U8X9szDe3oGjmHgsMGiZM0j4vtNoT+h80TLnkUcrLZR3+E6HIxqW+G+9WHAVfl0GXK0Q==", + "license": "Apache-2.0", + "dependencies": { + "@smithy/eventstream-serde-universal": "^4.0.1", @@ -3888,8 +2456,6 @@ + }, + "node_modules/@smithy/eventstream-serde-universal": { + "version": "4.0.1", -+ "resolved": "https://registry.npmjs.org/@smithy/eventstream-serde-universal/-/eventstream-serde-universal-4.0.1.tgz", -+ "integrity": "sha512-Z94uZp0tGJuxds3iEAZBqGU2QiaBHP4YytLUjwZWx+oUeohCsLyUm33yp4MMBmhkuPqSbQCXq5hDet6JGUgHWA==", + "license": "Apache-2.0", + "dependencies": { + "@smithy/eventstream-codec": "^4.0.1", @@ -3902,8 +2468,6 @@ + }, + "node_modules/@smithy/fetch-http-handler": { + "version": "5.0.1", -+ "resolved": "https://registry.npmjs.org/@smithy/fetch-http-handler/-/fetch-http-handler-5.0.1.tgz", -+ "integrity": "sha512-3aS+fP28urrMW2KTjb6z9iFow6jO8n3MFfineGbndvzGZit3taZhKWtTorf+Gp5RpFDDafeHlhfsGlDCXvUnJA==", + "license": "Apache-2.0", + "dependencies": { + "@smithy/protocol-http": "^5.0.1", @@ -3918,8 +2482,6 @@ + }, + "node_modules/@smithy/hash-blob-browser": { + "version": "4.0.1", -+ "resolved": "https://registry.npmjs.org/@smithy/hash-blob-browser/-/hash-blob-browser-4.0.1.tgz", -+ "integrity": "sha512-rkFIrQOKZGS6i1D3gKJ8skJ0RlXqDvb1IyAphksaFOMzkn3v3I1eJ8m7OkLj0jf1McP63rcCEoLlkAn/HjcTRw==", + "license": "Apache-2.0", + "dependencies": { + "@smithy/chunked-blob-reader": "^5.0.0", @@ -3933,8 +2495,6 @@ + }, + "node_modules/@smithy/hash-node": { + "version": "4.0.1", -+ "resolved": "https://registry.npmjs.org/@smithy/hash-node/-/hash-node-4.0.1.tgz", -+ "integrity": "sha512-TJ6oZS+3r2Xu4emVse1YPB3Dq3d8RkZDKcPr71Nj/lJsdAP1c7oFzYqEn1IBc915TsgLl2xIJNuxCz+gLbLE0w==", + "license": "Apache-2.0", + "dependencies": { + "@smithy/types": "^4.1.0", @@ -3948,8 +2508,6 @@ + }, + "node_modules/@smithy/hash-stream-node": { + "version": "4.0.1", -+ "resolved": "https://registry.npmjs.org/@smithy/hash-stream-node/-/hash-stream-node-4.0.1.tgz", -+ "integrity": "sha512-U1rAE1fxmReCIr6D2o/4ROqAQX+GffZpyMt3d7njtGDr2pUNmAKRWa49gsNVhCh2vVAuf3wXzWwNr2YN8PAXIw==", + "license": "Apache-2.0", + "dependencies": { + "@smithy/types": "^4.1.0", @@ -3962,8 +2520,6 @@ + }, + "node_modules/@smithy/invalid-dependency": { + "version": "4.0.1", -+ "resolved": "https://registry.npmjs.org/@smithy/invalid-dependency/-/invalid-dependency-4.0.1.tgz", -+ "integrity": "sha512-gdudFPf4QRQ5pzj7HEnu6FhKRi61BfH/Gk5Yf6O0KiSbr1LlVhgjThcvjdu658VE6Nve8vaIWB8/fodmS1rBPQ==", + "license": "Apache-2.0", + "dependencies": { + "@smithy/types": "^4.1.0", @@ -3975,8 +2531,6 @@ + }, + "node_modules/@smithy/is-array-buffer": { + "version": "4.0.0", -+ "resolved": "https://registry.npmjs.org/@smithy/is-array-buffer/-/is-array-buffer-4.0.0.tgz", -+ "integrity": "sha512-saYhF8ZZNoJDTvJBEWgeBccCg+yvp1CX+ed12yORU3NilJScfc6gfch2oVb4QgxZrGUx3/ZJlb+c/dJbyupxlw==", + "license": "Apache-2.0", + "dependencies": { + "tslib": "^2.6.2" @@ -3987,8 +2541,6 @@ + }, + "node_modules/@smithy/md5-js": { + "version": "4.0.1", -+ "resolved": "https://registry.npmjs.org/@smithy/md5-js/-/md5-js-4.0.1.tgz", -+ "integrity": "sha512-HLZ647L27APi6zXkZlzSFZIjpo8po45YiyjMGJZM3gyDY8n7dPGdmxIIljLm4gPt/7rRvutLTTkYJpZVfG5r+A==", + "license": "Apache-2.0", + "dependencies": { + "@smithy/types": "^4.1.0", @@ -4001,8 +2553,6 @@ + }, + "node_modules/@smithy/middleware-content-length": { + "version": "4.0.1", -+ "resolved": "https://registry.npmjs.org/@smithy/middleware-content-length/-/middleware-content-length-4.0.1.tgz", -+ "integrity": "sha512-OGXo7w5EkB5pPiac7KNzVtfCW2vKBTZNuCctn++TTSOMpe6RZO/n6WEC1AxJINn3+vWLKW49uad3lo/u0WJ9oQ==", + "license": "Apache-2.0", + "dependencies": { + "@smithy/protocol-http": "^5.0.1", @@ -4015,8 +2565,6 @@ + }, + "node_modules/@smithy/middleware-endpoint": { + "version": "4.0.6", -+ "resolved": "https://registry.npmjs.org/@smithy/middleware-endpoint/-/middleware-endpoint-4.0.6.tgz", -+ "integrity": "sha512-ftpmkTHIFqgaFugcjzLZv3kzPEFsBFSnq1JsIkr2mwFzCraZVhQk2gqN51OOeRxqhbPTkRFj39Qd2V91E/mQxg==", + "license": "Apache-2.0", + "dependencies": { + "@smithy/core": "^3.1.5", @@ -4034,8 +2582,6 @@ + }, + "node_modules/@smithy/middleware-retry": { + "version": "4.0.7", -+ "resolved": "https://registry.npmjs.org/@smithy/middleware-retry/-/middleware-retry-4.0.7.tgz", -+ "integrity": "sha512-58j9XbUPLkqAcV1kHzVX/kAR16GT+j7DUZJqwzsxh1jtz7G82caZiGyyFgUvogVfNTg3TeAOIJepGc8TXF4AVQ==", + "license": "Apache-2.0", + "dependencies": { + "@smithy/node-config-provider": "^4.0.1", @@ -4054,8 +2600,6 @@ + }, + "node_modules/@smithy/middleware-serde": { + "version": "4.0.2", -+ "resolved": "https://registry.npmjs.org/@smithy/middleware-serde/-/middleware-serde-4.0.2.tgz", -+ "integrity": "sha512-Sdr5lOagCn5tt+zKsaW+U2/iwr6bI9p08wOkCp6/eL6iMbgdtc2R5Ety66rf87PeohR0ExI84Txz9GYv5ou3iQ==", + "license": "Apache-2.0", + "dependencies": { + "@smithy/types": "^4.1.0", @@ -4067,8 +2611,6 @@ + }, + "node_modules/@smithy/middleware-stack": { + "version": "4.0.1", -+ "resolved": "https://registry.npmjs.org/@smithy/middleware-stack/-/middleware-stack-4.0.1.tgz", -+ "integrity": "sha512-dHwDmrtR/ln8UTHpaIavRSzeIk5+YZTBtLnKwDW3G2t6nAupCiQUvNzNoHBpik63fwUaJPtlnMzXbQrNFWssIA==", + "license": "Apache-2.0", + "dependencies": { + "@smithy/types": "^4.1.0", @@ -4080,8 +2622,6 @@ + }, + "node_modules/@smithy/node-config-provider": { + "version": "4.0.1", -+ "resolved": "https://registry.npmjs.org/@smithy/node-config-provider/-/node-config-provider-4.0.1.tgz", -+ "integrity": "sha512-8mRTjvCtVET8+rxvmzRNRR0hH2JjV0DFOmwXPrISmTIJEfnCBugpYYGAsCj8t41qd+RB5gbheSQ/6aKZCQvFLQ==", + "license": "Apache-2.0", + "dependencies": { + "@smithy/property-provider": "^4.0.1", @@ -4095,8 +2635,6 @@ + }, + "node_modules/@smithy/node-http-handler": { + "version": "4.0.3", -+ "resolved": "https://registry.npmjs.org/@smithy/node-http-handler/-/node-http-handler-4.0.3.tgz", -+ "integrity": "sha512-dYCLeINNbYdvmMLtW0VdhW1biXt+PPCGazzT5ZjKw46mOtdgToQEwjqZSS9/EN8+tNs/RO0cEWG044+YZs97aA==", + "license": "Apache-2.0", + "dependencies": { + "@smithy/abort-controller": "^4.0.1", @@ -4111,8 +2649,6 @@ + }, + "node_modules/@smithy/property-provider": { + "version": "4.0.1", -+ "resolved": "https://registry.npmjs.org/@smithy/property-provider/-/property-provider-4.0.1.tgz", -+ "integrity": "sha512-o+VRiwC2cgmk/WFV0jaETGOtX16VNPp2bSQEzu0whbReqE1BMqsP2ami2Vi3cbGVdKu1kq9gQkDAGKbt0WOHAQ==", + "license": "Apache-2.0", + "dependencies": { + "@smithy/types": "^4.1.0", @@ -4124,8 +2660,6 @@ + }, + "node_modules/@smithy/protocol-http": { + "version": "5.0.1", -+ "resolved": "https://registry.npmjs.org/@smithy/protocol-http/-/protocol-http-5.0.1.tgz", -+ "integrity": "sha512-TE4cpj49jJNB/oHyh/cRVEgNZaoPaxd4vteJNB0yGidOCVR0jCw/hjPVsT8Q8FRmj8Bd3bFZt8Dh7xGCT+xMBQ==", + "license": "Apache-2.0", + "dependencies": { + "@smithy/types": "^4.1.0", @@ -4137,8 +2671,6 @@ + }, + "node_modules/@smithy/querystring-builder": { + "version": "4.0.1", -+ "resolved": "https://registry.npmjs.org/@smithy/querystring-builder/-/querystring-builder-4.0.1.tgz", -+ "integrity": "sha512-wU87iWZoCbcqrwszsOewEIuq+SU2mSoBE2CcsLwE0I19m0B2gOJr1MVjxWcDQYOzHbR1xCk7AcOBbGFUYOKvdg==", + "license": "Apache-2.0", + "dependencies": { + "@smithy/types": "^4.1.0", @@ -4151,8 +2683,6 @@ + }, + "node_modules/@smithy/querystring-parser": { + "version": "4.0.1", -+ "resolved": "https://registry.npmjs.org/@smithy/querystring-parser/-/querystring-parser-4.0.1.tgz", -+ "integrity": "sha512-Ma2XC7VS9aV77+clSFylVUnPZRindhB7BbmYiNOdr+CHt/kZNJoPP0cd3QxCnCFyPXC4eybmyE98phEHkqZ5Jw==", + "license": "Apache-2.0", + "dependencies": { + "@smithy/types": "^4.1.0", @@ -4164,8 +2694,6 @@ + }, + "node_modules/@smithy/service-error-classification": { + "version": "4.0.1", -+ "resolved": "https://registry.npmjs.org/@smithy/service-error-classification/-/service-error-classification-4.0.1.tgz", -+ "integrity": "sha512-3JNjBfOWpj/mYfjXJHB4Txc/7E4LVq32bwzE7m28GN79+M1f76XHflUaSUkhOriprPDzev9cX/M+dEB80DNDKA==", + "license": "Apache-2.0", + "dependencies": { + "@smithy/types": "^4.1.0" @@ -4176,8 +2704,6 @@ + }, + "node_modules/@smithy/shared-ini-file-loader": { + "version": "4.0.1", -+ "resolved": "https://registry.npmjs.org/@smithy/shared-ini-file-loader/-/shared-ini-file-loader-4.0.1.tgz", -+ "integrity": "sha512-hC8F6qTBbuHRI/uqDgqqi6J0R4GtEZcgrZPhFQnMhfJs3MnUTGSnR1NSJCJs5VWlMydu0kJz15M640fJlRsIOw==", + "license": "Apache-2.0", + "dependencies": { + "@smithy/types": "^4.1.0", @@ -4189,8 +2715,6 @@ + }, + "node_modules/@smithy/signature-v4": { + "version": "5.0.1", -+ "resolved": "https://registry.npmjs.org/@smithy/signature-v4/-/signature-v4-5.0.1.tgz", -+ "integrity": "sha512-nCe6fQ+ppm1bQuw5iKoeJ0MJfz2os7Ic3GBjOkLOPtavbD1ONoyE3ygjBfz2ythFWm4YnRm6OxW+8p/m9uCoIA==", + "license": "Apache-2.0", + "dependencies": { + "@smithy/is-array-buffer": "^4.0.0", @@ -4208,8 +2732,6 @@ + }, + "node_modules/@smithy/smithy-client": { + "version": "4.1.6", -+ "resolved": "https://registry.npmjs.org/@smithy/smithy-client/-/smithy-client-4.1.6.tgz", -+ "integrity": "sha512-UYDolNg6h2O0L+cJjtgSyKKvEKCOa/8FHYJnBobyeoeWDmNpXjwOAtw16ezyeu1ETuuLEOZbrynK0ZY1Lx9Jbw==", + "license": "Apache-2.0", + "dependencies": { + "@smithy/core": "^3.1.5", @@ -4226,8 +2748,6 @@ + }, + "node_modules/@smithy/types": { + "version": "4.1.0", -+ "resolved": "https://registry.npmjs.org/@smithy/types/-/types-4.1.0.tgz", -+ "integrity": "sha512-enhjdwp4D7CXmwLtD6zbcDMbo6/T6WtuuKCY49Xxc6OMOmUWlBEBDREsxxgV2LIdeQPW756+f97GzcgAwp3iLw==", + "license": "Apache-2.0", + "dependencies": { + "tslib": "^2.6.2" @@ -4238,8 +2758,6 @@ + }, + "node_modules/@smithy/url-parser": { + "version": "4.0.1", -+ "resolved": "https://registry.npmjs.org/@smithy/url-parser/-/url-parser-4.0.1.tgz", -+ "integrity": "sha512-gPXcIEUtw7VlK8f/QcruNXm7q+T5hhvGu9tl63LsJPZ27exB6dtNwvh2HIi0v7JcXJ5emBxB+CJxwaLEdJfA+g==", + "license": "Apache-2.0", + "dependencies": { + "@smithy/querystring-parser": "^4.0.1", @@ -4252,8 +2770,6 @@ + }, + "node_modules/@smithy/util-base64": { + "version": "4.0.0", -+ "resolved": "https://registry.npmjs.org/@smithy/util-base64/-/util-base64-4.0.0.tgz", -+ "integrity": "sha512-CvHfCmO2mchox9kjrtzoHkWHxjHZzaFojLc8quxXY7WAAMAg43nuxwv95tATVgQFNDwd4M9S1qFzj40Ul41Kmg==", + "license": "Apache-2.0", + "dependencies": { + "@smithy/util-buffer-from": "^4.0.0", @@ -4266,8 +2782,6 @@ + }, + "node_modules/@smithy/util-body-length-browser": { + "version": "4.0.0", -+ "resolved": "https://registry.npmjs.org/@smithy/util-body-length-browser/-/util-body-length-browser-4.0.0.tgz", -+ "integrity": "sha512-sNi3DL0/k64/LO3A256M+m3CDdG6V7WKWHdAiBBMUN8S3hK3aMPhwnPik2A/a2ONN+9doY9UxaLfgqsIRg69QA==", + "license": "Apache-2.0", + "dependencies": { + "tslib": "^2.6.2" @@ -4278,8 +2792,6 @@ + }, + "node_modules/@smithy/util-body-length-node": { + "version": "4.0.0", -+ "resolved": "https://registry.npmjs.org/@smithy/util-body-length-node/-/util-body-length-node-4.0.0.tgz", -+ "integrity": "sha512-q0iDP3VsZzqJyje8xJWEJCNIu3lktUGVoSy1KB0UWym2CL1siV3artm+u1DFYTLejpsrdGyCSWBdGNjJzfDPjg==", + "license": "Apache-2.0", + "dependencies": { + "tslib": "^2.6.2" @@ -4290,8 +2802,6 @@ + }, + "node_modules/@smithy/util-buffer-from": { + "version": "4.0.0", -+ "resolved": "https://registry.npmjs.org/@smithy/util-buffer-from/-/util-buffer-from-4.0.0.tgz", -+ "integrity": "sha512-9TOQ7781sZvddgO8nxueKi3+yGvkY35kotA0Y6BWRajAv8jjmigQ1sBwz0UX47pQMYXJPahSKEKYFgt+rXdcug==", + "license": "Apache-2.0", + "dependencies": { + "@smithy/is-array-buffer": "^4.0.0", @@ -4303,8 +2813,6 @@ + }, + "node_modules/@smithy/util-config-provider": { + "version": "4.0.0", -+ "resolved": "https://registry.npmjs.org/@smithy/util-config-provider/-/util-config-provider-4.0.0.tgz", -+ "integrity": "sha512-L1RBVzLyfE8OXH+1hsJ8p+acNUSirQnWQ6/EgpchV88G6zGBTDPdXiiExei6Z1wR2RxYvxY/XLw6AMNCCt8H3w==", + "license": "Apache-2.0", + "dependencies": { + "tslib": "^2.6.2" @@ -4315,8 +2823,6 @@ + }, + "node_modules/@smithy/util-defaults-mode-browser": { + "version": "4.0.7", -+ "resolved": "https://registry.npmjs.org/@smithy/util-defaults-mode-browser/-/util-defaults-mode-browser-4.0.7.tgz", -+ "integrity": "sha512-CZgDDrYHLv0RUElOsmZtAnp1pIjwDVCSuZWOPhIOBvG36RDfX1Q9+6lS61xBf+qqvHoqRjHxgINeQz47cYFC2Q==", + "license": "Apache-2.0", + "dependencies": { + "@smithy/property-provider": "^4.0.1", @@ -4331,8 +2837,6 @@ + }, + "node_modules/@smithy/util-defaults-mode-node": { + "version": "4.0.7", -+ "resolved": "https://registry.npmjs.org/@smithy/util-defaults-mode-node/-/util-defaults-mode-node-4.0.7.tgz", -+ "integrity": "sha512-79fQW3hnfCdrfIi1soPbK3zmooRFnLpSx3Vxi6nUlqaaQeC5dm8plt4OTNDNqEEEDkvKghZSaoti684dQFVrGQ==", + "license": "Apache-2.0", + "dependencies": { + "@smithy/config-resolver": "^4.0.1", @@ -4349,8 +2853,6 @@ + }, + "node_modules/@smithy/util-endpoints": { + "version": "3.0.1", -+ "resolved": "https://registry.npmjs.org/@smithy/util-endpoints/-/util-endpoints-3.0.1.tgz", -+ "integrity": "sha512-zVdUENQpdtn9jbpD9SCFK4+aSiavRb9BxEtw9ZGUR1TYo6bBHbIoi7VkrFQ0/RwZlzx0wRBaRmPclj8iAoJCLA==", + "license": "Apache-2.0", + "dependencies": { + "@smithy/node-config-provider": "^4.0.1", @@ -4363,8 +2865,6 @@ + }, + "node_modules/@smithy/util-hex-encoding": { + "version": "4.0.0", -+ "resolved": "https://registry.npmjs.org/@smithy/util-hex-encoding/-/util-hex-encoding-4.0.0.tgz", -+ "integrity": "sha512-Yk5mLhHtfIgW2W2WQZWSg5kuMZCVbvhFmC7rV4IO2QqnZdbEFPmQnCcGMAX2z/8Qj3B9hYYNjZOhWym+RwhePw==", + "license": "Apache-2.0", + "dependencies": { + "tslib": "^2.6.2" @@ -4375,8 +2875,6 @@ + }, + "node_modules/@smithy/util-middleware": { + "version": "4.0.1", -+ "resolved": "https://registry.npmjs.org/@smithy/util-middleware/-/util-middleware-4.0.1.tgz", -+ "integrity": "sha512-HiLAvlcqhbzhuiOa0Lyct5IIlyIz0PQO5dnMlmQ/ubYM46dPInB+3yQGkfxsk6Q24Y0n3/JmcA1v5iEhmOF5mA==", + "license": "Apache-2.0", + "dependencies": { + "@smithy/types": "^4.1.0", @@ -4388,8 +2886,6 @@ + }, + "node_modules/@smithy/util-retry": { + "version": "4.0.1", -+ "resolved": "https://registry.npmjs.org/@smithy/util-retry/-/util-retry-4.0.1.tgz", -+ "integrity": "sha512-WmRHqNVwn3kI3rKk1LsKcVgPBG6iLTBGC1iYOV3GQegwJ3E8yjzHytPt26VNzOWr1qu0xE03nK0Ug8S7T7oufw==", + "license": "Apache-2.0", + "dependencies": { + "@smithy/service-error-classification": "^4.0.1", @@ -4402,8 +2898,6 @@ + }, + "node_modules/@smithy/util-stream": { + "version": "4.1.2", -+ "resolved": "https://registry.npmjs.org/@smithy/util-stream/-/util-stream-4.1.2.tgz", -+ "integrity": "sha512-44PKEqQ303d3rlQuiDpcCcu//hV8sn+u2JBo84dWCE0rvgeiVl0IlLMagbU++o0jCWhYCsHaAt9wZuZqNe05Hw==", + "license": "Apache-2.0", + "dependencies": { + "@smithy/fetch-http-handler": "^5.0.1", @@ -4421,8 +2915,6 @@ + }, + "node_modules/@smithy/util-uri-escape": { + "version": "4.0.0", -+ "resolved": "https://registry.npmjs.org/@smithy/util-uri-escape/-/util-uri-escape-4.0.0.tgz", -+ "integrity": "sha512-77yfbCbQMtgtTylO9itEAdpPXSog3ZxMe09AEhm0dU0NLTalV70ghDZFR+Nfi1C60jnJoh/Re4090/DuZh2Omg==", + "license": "Apache-2.0", + "dependencies": { + "tslib": "^2.6.2" @@ -4433,8 +2925,6 @@ + }, + "node_modules/@smithy/util-utf8": { + "version": "4.0.0", -+ "resolved": "https://registry.npmjs.org/@smithy/util-utf8/-/util-utf8-4.0.0.tgz", -+ "integrity": "sha512-b+zebfKCfRdgNJDknHCob3O7FpeYQN6ZG6YLExMcasDHsCXlsXCEuiPZeLnJLpwa5dvPetGlnGCiMHuLwGvFow==", + "license": "Apache-2.0", + "dependencies": { + "@smithy/util-buffer-from": "^4.0.0", @@ -4446,8 +2936,6 @@ + }, + "node_modules/@smithy/util-waiter": { + "version": "4.0.2", -+ "resolved": "https://registry.npmjs.org/@smithy/util-waiter/-/util-waiter-4.0.2.tgz", -+ "integrity": "sha512-piUTHyp2Axx3p/kc2CIJkYSv0BAaheBQmbACZgQSSfWUumWNW+R1lL+H9PDBxKJkvOeEX+hKYEFiwO8xagL8AQ==", + "license": "Apache-2.0", + "dependencies": { + "@smithy/abort-controller": "^4.0.1", @@ -4460,14 +2948,10 @@ + }, + "node_modules/@standard-schema/utils": { + "version": "0.3.0", -+ "resolved": "https://registry.npmjs.org/@standard-schema/utils/-/utils-0.3.0.tgz", -+ "integrity": "sha512-e7Mew686owMaPJVNNLs55PUvgz371nKgwsc4vxE49zsODpJEnxgxRo2y/OKrqueavXgZNMDVj3DdHFlaSAeU8g==", + "license": "MIT" + }, + "node_modules/@stitches/react": { + "version": "1.2.8", -+ "resolved": "https://registry.npmjs.org/@stitches/react/-/react-1.2.8.tgz", -+ "integrity": "sha512-9g9dWI4gsSVe8bNLlb+lMkBYsnIKCZTmvqvDG+Avnn69XfmHZKiaMrx7cgTaddq7aTPPmXiTsbFcUy0xgI4+wA==", + "license": "MIT", + "peerDependencies": { + "react": ">= 16.3.0" @@ -4475,8 +2959,6 @@ + }, + "node_modules/@tailwindcss/forms": { + "version": "0.5.10", -+ "resolved": "https://registry.npmjs.org/@tailwindcss/forms/-/forms-0.5.10.tgz", -+ "integrity": "sha512-utI1ONF6uf/pPNO68kmN1b8rEwNXv3czukalo8VtJH8ksIkZXr3Q3VYudZLkCsDd4Wku120uF02hYK25XGPorw==", + "license": "MIT", + "dependencies": { + "mini-svg-data-uri": "^1.2.3" @@ -4487,8 +2969,6 @@ + }, + "node_modules/@tailwindcss/typography": { + "version": "0.5.16", -+ "resolved": "https://registry.npmjs.org/@tailwindcss/typography/-/typography-0.5.16.tgz", -+ "integrity": "sha512-0wDLwCVF5V3x3b1SGXPCDcdsbDHMBe+lkFzBRaHeLvNi+nrrnZ1lA18u+OTWO8iSWU2GxUOCvlXtDuqftc1oiA==", + "license": "MIT", + "dependencies": { + "lodash.castarray": "^4.4.0", @@ -4502,8 +2982,6 @@ + }, + "node_modules/@tanstack/query-core": { + "version": "4.36.1", -+ "resolved": "https://registry.npmjs.org/@tanstack/query-core/-/query-core-4.36.1.tgz", -+ "integrity": "sha512-DJSilV5+ytBP1FbFcEJovv4rnnm/CokuVvrBEtW/Va9DvuJ3HksbXUJEpI0aV1KtuL4ZoO9AVE6PyNLzF7tLeA==", + "license": "MIT", + "funding": { + "type": "github", @@ -4512,8 +2990,6 @@ + }, + "node_modules/@testing-library/dom": { + "version": "9.3.4", -+ "resolved": "https://registry.npmjs.org/@testing-library/dom/-/dom-9.3.4.tgz", -+ "integrity": "sha512-FlS4ZWlp97iiNWig0Muq8p+3rVDjRiYE+YKGbAqXOu9nwJFFOdL00kFpz42M+4huzYi86vAK1sOOfyOG45muIQ==", + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.10.4", @@ -4531,8 +3007,6 @@ + }, + "node_modules/@testing-library/dom/node_modules/ansi-styles": { + "version": "4.3.0", -+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", -+ "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" @@ -4546,8 +3020,6 @@ + }, + "node_modules/@testing-library/dom/node_modules/aria-query": { + "version": "5.1.3", -+ "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.1.3.tgz", -+ "integrity": "sha512-R5iJ5lkuHybztUfuOAznmboyjWq8O6sqNqtK7CLOqdydi54VNbORp49mb14KbWgG1QD3JFO9hJdZ+y4KutfdOQ==", + "license": "Apache-2.0", + "dependencies": { + "deep-equal": "^2.0.5" @@ -4555,8 +3027,6 @@ + }, + "node_modules/@testing-library/dom/node_modules/chalk": { + "version": "4.1.2", -+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", -+ "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", @@ -4571,14 +3041,10 @@ + }, + "node_modules/@testing-library/dom/node_modules/dom-accessibility-api": { + "version": "0.5.16", -+ "resolved": "https://registry.npmjs.org/dom-accessibility-api/-/dom-accessibility-api-0.5.16.tgz", -+ "integrity": "sha512-X7BJ2yElsnOJ30pZF4uIIDfBEVgF4XEBxL9Bxhy6dnrm5hkzqmsWHGTiHqRiITNhMyFLyAiWndIJP7Z1NTteDg==", + "license": "MIT" + }, + "node_modules/@testing-library/jest-dom": { + "version": "6.6.3", -+ "resolved": "https://registry.npmjs.org/@testing-library/jest-dom/-/jest-dom-6.6.3.tgz", -+ "integrity": "sha512-IteBhl4XqYNkM54f4ejhLRJiZNqcSCoXUOG2CPK7qbD322KjQozM4kHQOfkG2oln9b9HTYqs+Sae8vBATubxxA==", + "license": "MIT", + "dependencies": { + "@adobe/css-tools": "^4.4.0", @@ -4597,8 +3063,6 @@ + }, + "node_modules/@testing-library/react": { + "version": "14.3.1", -+ "resolved": "https://registry.npmjs.org/@testing-library/react/-/react-14.3.1.tgz", -+ "integrity": "sha512-H99XjUhWQw0lTgyMN05W3xQG1Nh4lq574D8keFf1dDoNTJgp66VbJozRaczoF+wsiaPJNt/TcnfpLGufGxSrZQ==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.12.5", @@ -4615,33 +3079,17 @@ + }, + "node_modules/@tootallnate/once": { + "version": "2.0.0", -+ "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-2.0.0.tgz", -+ "integrity": "sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==", + "license": "MIT", + "engines": { + "node": ">= 10" + } + }, -+ "node_modules/@tybys/wasm-util": { -+ "version": "0.9.0", -+ "resolved": "https://registry.npmjs.org/@tybys/wasm-util/-/wasm-util-0.9.0.tgz", -+ "integrity": "sha512-6+7nlbMVX/PVDCwaIQ8nTOPveOcFLSt8GcXdx8hD0bt39uWxYT88uXzqTd4fTvqta7oeUJqudepapKNt2DYJFw==", -+ "license": "MIT", -+ "optional": true, -+ "dependencies": { -+ "tslib": "^2.4.0" -+ } -+ }, + "node_modules/@types/aria-query": { + "version": "5.0.4", -+ "resolved": "https://registry.npmjs.org/@types/aria-query/-/aria-query-5.0.4.tgz", -+ "integrity": "sha512-rfT93uj5s0PRL7EzccGMs3brplhcrghnDoV26NqKhCAS1hVo+WdNsPvE/yb6ilfr5hi2MEk6d5EWJTKdxg8jVw==", + "license": "MIT" + }, + "node_modules/@types/body-parser": { + "version": "1.19.5", -+ "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.5.tgz", -+ "integrity": "sha512-fB3Zu92ucau0iQ0JMCFQE7b/dv8Ot07NI3KaZIkIUNXq82k4eBAqUaneXfleGY9JWskeS9y+u0nXMyspcuQrCg==", + "dev": true, + "license": "MIT", + "dependencies": { @@ -4651,14 +3099,10 @@ + }, + "node_modules/@types/caseless": { + "version": "0.12.5", -+ "resolved": "https://registry.npmjs.org/@types/caseless/-/caseless-0.12.5.tgz", -+ "integrity": "sha512-hWtVTC2q7hc7xZ/RLbxapMvDMgUnDvKvMOpKal4DrMyfGBUfB1oKaZlIRr6mJL+If3bAP6sV/QneGzF6tJjZDg==", + "license": "MIT" + }, + "node_modules/@types/connect": { + "version": "3.4.38", -+ "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.38.tgz", -+ "integrity": "sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==", + "dev": true, + "license": "MIT", + "dependencies": { @@ -4667,14 +3111,10 @@ + }, + "node_modules/@types/cookie": { + "version": "0.4.1", -+ "resolved": "https://registry.npmjs.org/@types/cookie/-/cookie-0.4.1.tgz", -+ "integrity": "sha512-XW/Aa8APYr6jSVVA1y/DEIZX0/GMKLEVekNG727R8cs56ahETkRAy/3DR7+fJyh7oUgGwNQaRfXCun0+KbWY7Q==", + "license": "MIT" + }, + "node_modules/@types/debug": { + "version": "4.1.12", -+ "resolved": "https://registry.npmjs.org/@types/debug/-/debug-4.1.12.tgz", -+ "integrity": "sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ==", + "license": "MIT", + "dependencies": { + "@types/ms": "*" @@ -4682,14 +3122,10 @@ + }, + "node_modules/@types/estree": { + "version": "1.0.6", -+ "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.6.tgz", -+ "integrity": "sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==", + "license": "MIT" + }, + "node_modules/@types/express": { + "version": "5.0.3", -+ "resolved": "https://registry.npmjs.org/@types/express/-/express-5.0.3.tgz", -+ "integrity": "sha512-wGA0NX93b19/dZC1J18tKWVIYWyyF2ZjT9vin/NRu0qzzvfVzWjs04iq2rQ3H65vCTQYlRqs3YHfY7zjdV+9Kw==", + "dev": true, + "license": "MIT", + "dependencies": { @@ -4700,8 +3136,6 @@ + }, + "node_modules/@types/express-serve-static-core": { + "version": "5.0.7", -+ "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-5.0.7.tgz", -+ "integrity": "sha512-R+33OsgWw7rOhD1emjU7dzCDHucJrgJXMA5PYCzJxVil0dsyx5iBEPHqpPfiKNJQb7lZ1vxwoLR4Z87bBUpeGQ==", + "dev": true, + "license": "MIT", + "dependencies": { @@ -4713,40 +3147,28 @@ + }, + "node_modules/@types/http-errors": { + "version": "2.0.4", -+ "resolved": "https://registry.npmjs.org/@types/http-errors/-/http-errors-2.0.4.tgz", -+ "integrity": "sha512-D0CFMMtydbJAegzOyHjtiKPLlvnm3iTZyZRSZoLq2mRhDdmLfIWOCYPfQJ4cu2erKghU++QvjcUjp/5h7hESpA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/js-levenshtein": { + "version": "1.1.3", -+ "resolved": "https://registry.npmjs.org/@types/js-levenshtein/-/js-levenshtein-1.1.3.tgz", -+ "integrity": "sha512-jd+Q+sD20Qfu9e2aEXogiO3vpOC1PYJOUdyN9gvs4Qrvkg4wF43L5OhqrPeokdv8TL0/mXoYfpkcoGZMNN2pkQ==", + "license": "MIT" + }, + "node_modules/@types/long": { + "version": "4.0.2", -+ "resolved": "https://registry.npmjs.org/@types/long/-/long-4.0.2.tgz", -+ "integrity": "sha512-MqTGEo5bj5t157U6fA/BiDynNkn0YknVdh48CMPkTSpFTVmvao5UQmm7uEF6xBEo7qIMAlY/JSleYaE6VOdpaA==", + "license": "MIT" + }, + "node_modules/@types/mime": { + "version": "1.3.5", -+ "resolved": "https://registry.npmjs.org/@types/mime/-/mime-1.3.5.tgz", -+ "integrity": "sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/ms": { + "version": "2.1.0", -+ "resolved": "https://registry.npmjs.org/@types/ms/-/ms-2.1.0.tgz", -+ "integrity": "sha512-GsCCIZDE/p3i96vtEqx+7dBUGXrc7zeSK3wwPHIaRThS+9OhWIXRqzs4d6k1SVU8g91DrNRWxWUGhp5KXQb2VA==", + "license": "MIT" + }, + "node_modules/@types/node": { + "version": "22.13.10", -+ "resolved": "https://registry.npmjs.org/@types/node/-/node-22.13.10.tgz", -+ "integrity": "sha512-I6LPUvlRH+O6VRUqYOcMudhaIdUVWfsjnZavnsraHvpBwaEyMN29ry+0UVJhImYL16xsscu0aske3yA+uPOWfw==", + "license": "MIT", + "dependencies": { + "undici-types": "~6.20.0" @@ -4754,8 +3176,6 @@ + }, + "node_modules/@types/node-fetch": { + "version": "2.6.12", -+ "resolved": "https://registry.npmjs.org/@types/node-fetch/-/node-fetch-2.6.12.tgz", -+ "integrity": "sha512-8nneRWKCg3rMtF69nLQJnOYUcbafYeFSjqkw3jCRLsqkWFlHaoQrr5mXmofFGOx3DKn7UfmBMyov8ySvLRVldA==", + "license": "MIT", + "dependencies": { + "@types/node": "*", @@ -4764,28 +3184,20 @@ + }, + "node_modules/@types/prop-types": { + "version": "15.7.14", -+ "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.14.tgz", -+ "integrity": "sha512-gNMvNH49DJ7OJYv+KAKn0Xp45p8PLl6zo2YnvDIbTd4J6MER2BmWN49TG7n9LvkyihINxeKW8+3bfS2yDC9dzQ==", + "license": "MIT" + }, + "node_modules/@types/qs": { + "version": "6.14.0", -+ "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.14.0.tgz", -+ "integrity": "sha512-eOunJqu0K1923aExK6y8p6fsihYEn/BYuQ4g0CxAAgFc4b/ZLN4CrsRZ55srTdqoiLzU2B2evC+apEIxprEzkQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/range-parser": { + "version": "1.2.7", -+ "resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.7.tgz", -+ "integrity": "sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/react": { + "version": "18.3.19", -+ "resolved": "https://registry.npmjs.org/@types/react/-/react-18.3.19.tgz", -+ "integrity": "sha512-fcdJqaHOMDbiAwJnXv6XCzX0jDW77yI3tJqYh1Byn8EL5/S628WRx9b/y3DnNe55zTukUQKrfYxiZls2dHcUMw==", + "license": "MIT", + "dependencies": { + "@types/prop-types": "*", @@ -4794,8 +3206,6 @@ + }, + "node_modules/@types/react-dom": { + "version": "18.3.5", -+ "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.3.5.tgz", -+ "integrity": "sha512-P4t6saawp+b/dFrUr2cvkVsfvPguwsxtH6dNIYRllMsefqFzkZk5UIjzyDOv5g1dXIPdG4Sp1yCR4Z6RCUsG/Q==", + "license": "MIT", + "peerDependencies": { + "@types/react": "^18.0.0" @@ -4803,8 +3213,6 @@ + }, + "node_modules/@types/request": { + "version": "2.48.12", -+ "resolved": "https://registry.npmjs.org/@types/request/-/request-2.48.12.tgz", -+ "integrity": "sha512-G3sY+NpsA9jnwm0ixhAFQSJ3Q9JkpLZpJbI3GMv0mIAT0y3mRabYeINzal5WOChIiaTEGQYlHOKgkaM9EisWHw==", + "license": "MIT", + "dependencies": { + "@types/caseless": "*", @@ -4815,8 +3223,6 @@ + }, + "node_modules/@types/request/node_modules/form-data": { + "version": "2.5.3", -+ "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.5.3.tgz", -+ "integrity": "sha512-XHIrMD0NpDrNM/Ckf7XJiBbLl57KEhT3+i3yY+eWm+cqYZJQTZrKo8Y8AWKnuV5GT4scfuUGt9LzNoIx3dU1nQ==", + "license": "MIT", + "dependencies": { + "asynckit": "^0.4.0", @@ -4831,8 +3237,6 @@ + }, + "node_modules/@types/send": { + "version": "0.17.4", -+ "resolved": "https://registry.npmjs.org/@types/send/-/send-0.17.4.tgz", -+ "integrity": "sha512-x2EM6TJOybec7c52BX0ZspPodMsQUd5L6PRwOunVyVUhXiBSKf3AezDL8Dgvgt5o0UfKNfuA0eMLr2wLT4AiBA==", + "dev": true, + "license": "MIT", + "dependencies": { @@ -4842,8 +3246,6 @@ + }, + "node_modules/@types/serve-static": { + "version": "1.15.7", -+ "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.15.7.tgz", -+ "integrity": "sha512-W8Ym+h8nhuRwaKPaDw34QUkwsGi6Rc4yYqvKFo5rm2FUEhCFbzVWrxXUxuKK8TASjWsysJY0nsmNCGhCOIsrOw==", + "dev": true, + "license": "MIT", + "dependencies": { @@ -4854,8 +3256,6 @@ + }, + "node_modules/@types/set-cookie-parser": { + "version": "2.4.10", -+ "resolved": "https://registry.npmjs.org/@types/set-cookie-parser/-/set-cookie-parser-2.4.10.tgz", -+ "integrity": "sha512-GGmQVGpQWUe5qglJozEjZV/5dyxbOOZ0LHe/lqyWssB88Y4svNfst0uqBVscdDeIKl5Jy5+aPSvy7mI9tYRguw==", + "license": "MIT", + "dependencies": { + "@types/node": "*" @@ -4863,14 +3263,10 @@ + }, + "node_modules/@types/tough-cookie": { + "version": "4.0.5", -+ "resolved": "https://registry.npmjs.org/@types/tough-cookie/-/tough-cookie-4.0.5.tgz", -+ "integrity": "sha512-/Ad8+nIOV7Rl++6f1BdKxFSMgmoqEoYbHRpPcx3JEfv8VRsQe9Z4mCXeJBzxs7mbHY/XOZZuXlRNfhpVPbs6ZA==", + "license": "MIT" + }, + "node_modules/@vitest/expect": { + "version": "1.6.1", -+ "resolved": "https://registry.npmjs.org/@vitest/expect/-/expect-1.6.1.tgz", -+ "integrity": "sha512-jXL+9+ZNIJKruofqXuuTClf44eSpcHlgj3CiuNihUF3Ioujtmc0zIa3UJOW5RjDK1YLBJZnWBlPuqhYycLioog==", + "license": "MIT", + "dependencies": { + "@vitest/spy": "1.6.1", @@ -4883,8 +3279,6 @@ + }, + "node_modules/@vitest/runner": { + "version": "1.6.1", -+ "resolved": "https://registry.npmjs.org/@vitest/runner/-/runner-1.6.1.tgz", -+ "integrity": "sha512-3nSnYXkVkf3mXFfE7vVyPmi3Sazhb/2cfZGGs0JRzFsPFvAMBEcrweV1V1GsrstdXeKCTXlJbvnQwGWgEIHmOA==", + "license": "MIT", + "dependencies": { + "@vitest/utils": "1.6.1", @@ -4897,8 +3291,6 @@ + }, + "node_modules/@vitest/snapshot": { + "version": "1.6.1", -+ "resolved": "https://registry.npmjs.org/@vitest/snapshot/-/snapshot-1.6.1.tgz", -+ "integrity": "sha512-WvidQuWAzU2p95u8GAKlRMqMyN1yOJkGHnx3M1PL9Raf7AQ1kwLKg04ADlCa3+OXUZE7BceOhVZiuWAbzCKcUQ==", + "license": "MIT", + "dependencies": { + "magic-string": "^0.30.5", @@ -4911,8 +3303,6 @@ + }, + "node_modules/@vitest/snapshot/node_modules/ansi-styles": { + "version": "5.2.0", -+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", -+ "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "license": "MIT", + "engines": { + "node": ">=10" @@ -4923,8 +3313,6 @@ + }, + "node_modules/@vitest/snapshot/node_modules/pretty-format": { + "version": "29.7.0", -+ "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz", -+ "integrity": "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==", + "license": "MIT", + "dependencies": { + "@jest/schemas": "^29.6.3", @@ -4937,14 +3325,10 @@ + }, + "node_modules/@vitest/snapshot/node_modules/react-is": { + "version": "18.3.1", -+ "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz", -+ "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==", + "license": "MIT" + }, + "node_modules/@vitest/spy": { + "version": "1.6.1", -+ "resolved": "https://registry.npmjs.org/@vitest/spy/-/spy-1.6.1.tgz", -+ "integrity": "sha512-MGcMmpGkZebsMZhbQKkAf9CX5zGvjkBTqf8Zx3ApYWXr3wG+QvEu2eXWfnIIWYSJExIp4V9FCKDEeygzkYrXMw==", + "license": "MIT", + "dependencies": { + "tinyspy": "^2.2.0" @@ -4955,8 +3339,6 @@ + }, + "node_modules/@vitest/ui": { + "version": "1.6.1", -+ "resolved": "https://registry.npmjs.org/@vitest/ui/-/ui-1.6.1.tgz", -+ "integrity": "sha512-xa57bCPGuzEFqGjPs3vVLyqareG8DX0uMkr5U/v5vLv5/ZUrBrPL7gzxzTJedEyZxFMfsozwTIbbYfEQVo3kgg==", + "license": "MIT", + "dependencies": { + "@vitest/utils": "1.6.1", @@ -4976,8 +3358,6 @@ + }, + "node_modules/@vitest/utils": { + "version": "1.6.1", -+ "resolved": "https://registry.npmjs.org/@vitest/utils/-/utils-1.6.1.tgz", -+ "integrity": "sha512-jOrrUvXM4Av9ZWiG1EajNto0u96kWAhJ1LmPmJhXXQx/32MecEKd10pOLYgS2BQx1TgkGhloPU1ArDW2vvaY6g==", + "license": "MIT", + "dependencies": { + "diff-sequences": "^29.6.3", @@ -4991,8 +3371,6 @@ + }, + "node_modules/@vitest/utils/node_modules/ansi-styles": { + "version": "5.2.0", -+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", -+ "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "license": "MIT", + "engines": { + "node": ">=10" @@ -5003,8 +3381,6 @@ + }, + "node_modules/@vitest/utils/node_modules/pretty-format": { + "version": "29.7.0", -+ "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz", -+ "integrity": "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==", + "license": "MIT", + "dependencies": { + "@jest/schemas": "^29.6.3", @@ -5017,14 +3393,10 @@ + }, + "node_modules/@vitest/utils/node_modules/react-is": { + "version": "18.3.1", -+ "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz", -+ "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==", + "license": "MIT" + }, + "node_modules/@xmldom/xmldom": { + "version": "0.8.10", -+ "resolved": "https://registry.npmjs.org/@xmldom/xmldom/-/xmldom-0.8.10.tgz", -+ "integrity": "sha512-2WALfTl4xo2SkGCYRt6rDTFfk9R1czmBvUQy12gK2KuRKIpWEhcbbzy8EZXtz/jkRqHX8bFEc6FC1HjX4TUWYw==", + "license": "MIT", + "engines": { + "node": ">=10.0.0" @@ -5032,22 +3404,15 @@ + }, + "node_modules/@zxing/text-encoding": { + "version": "0.9.0", -+ "resolved": "https://registry.npmjs.org/@zxing/text-encoding/-/text-encoding-0.9.0.tgz", -+ "integrity": "sha512-U/4aVJ2mxI0aDNI8Uq0wEhMgY+u4CNtEb0om3+y3+niDAsoTCOB33UF0sxpzqzdqXLqmvc+vZyAt4O8pPdfkwA==", + "license": "(Unlicense OR Apache-2.0)", + "optional": true + }, + "node_modules/abab": { + "version": "2.0.6", -+ "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.6.tgz", -+ "integrity": "sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA==", -+ "deprecated": "Use your platform's native atob() and btoa() methods instead", + "license": "BSD-3-Clause" + }, + "node_modules/abort-controller": { + "version": "3.0.0", -+ "resolved": "https://registry.npmjs.org/abort-controller/-/abort-controller-3.0.0.tgz", -+ "integrity": "sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==", + "license": "MIT", + "dependencies": { + "event-target-shim": "^5.0.0" @@ -5058,8 +3423,6 @@ + }, + "node_modules/accepts": { + "version": "2.0.0", -+ "resolved": "https://registry.npmjs.org/accepts/-/accepts-2.0.0.tgz", -+ "integrity": "sha512-5cvg6CtKwfgdmVqY1WIiXKc3Q1bkRqGLi+2W/6ao+6Y7gu/RCwRuAhGEzh5B4KlszSuTLgZYuqFqo5bImjNKng==", + "license": "MIT", + "dependencies": { + "mime-types": "^3.0.0", @@ -5071,8 +3434,6 @@ + }, + "node_modules/accepts/node_modules/mime-db": { + "version": "1.54.0", -+ "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.54.0.tgz", -+ "integrity": "sha512-aU5EJuIN2WDemCcAp2vFBfp/m4EAhWJnUNSSw0ixs7/kXbd6Pg64EmwJkNdFhB8aWt1sH2CTXrLxo/iAGV3oPQ==", + "license": "MIT", + "engines": { + "node": ">= 0.6" @@ -5080,8 +3441,6 @@ + }, + "node_modules/accepts/node_modules/mime-types": { + "version": "3.0.1", -+ "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-3.0.1.tgz", -+ "integrity": "sha512-xRc4oEhT6eaBpU1XF7AjpOFD+xQmXNB5OVKwp4tqCuBpHLS/ZbBDrc07mYTDqVMg6PfxUjjNp85O6Cd2Z/5HWA==", + "license": "MIT", + "dependencies": { + "mime-db": "^1.54.0" @@ -5092,8 +3451,6 @@ + }, + "node_modules/acorn": { + "version": "8.14.1", -+ "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.14.1.tgz", -+ "integrity": "sha512-OvQ/2pUDKmgfCg++xsTX1wGxfTaszcHVcTctW4UJB4hibJx2HXxxO5UmVgyjMa+ZDsiaf5wWLXYpRWMmBI0QHg==", + "license": "MIT", + "bin": { + "acorn": "bin/acorn" @@ -5104,8 +3461,6 @@ + }, + "node_modules/acorn-globals": { + "version": "7.0.1", -+ "resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-7.0.1.tgz", -+ "integrity": "sha512-umOSDSDrfHbTNPuNpC2NSnnA3LUrqpevPb4T9jRx4MagXNS0rs+gwiTcAvqCRmsD6utzsrzNt+ebm00SNWiC3Q==", + "license": "MIT", + "dependencies": { + "acorn": "^8.1.0", @@ -5114,8 +3469,6 @@ + }, + "node_modules/acorn-walk": { + "version": "8.3.4", -+ "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.4.tgz", -+ "integrity": "sha512-ueEepnujpqee2o5aIYnvHU6C0A42MNdsIDeqy5BydrkuC5R1ZuUFnm27EeFJGoEHJQgn3uleRvmTXaJgfXbt4g==", + "license": "MIT", + "dependencies": { + "acorn": "^8.11.0" @@ -5126,8 +3479,6 @@ + }, + "node_modules/agent-base": { + "version": "7.1.3", -+ "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.3.tgz", -+ "integrity": "sha512-jRR5wdylq8CkOe6hei19GGZnxM6rBGwFl3Bg0YItGDimvjGtAvdZk4Pu6Cl4u4Igsws4a1fd1Vq3ezrhn4KmFw==", + "license": "MIT", + "engines": { + "node": ">= 14" @@ -5135,8 +3486,6 @@ + }, + "node_modules/agentkeepalive": { + "version": "4.6.0", -+ "resolved": "https://registry.npmjs.org/agentkeepalive/-/agentkeepalive-4.6.0.tgz", -+ "integrity": "sha512-kja8j7PjmncONqaTsB8fQ+wE2mSU2DJ9D4XKoJ5PFWIdRMa6SLSN1ff4mOr4jCbfRSsxR4keIiySJU0N9T5hIQ==", + "license": "MIT", + "dependencies": { + "humanize-ms": "^1.2.1" @@ -5147,8 +3496,6 @@ + }, + "node_modules/aggregate-error": { + "version": "3.1.0", -+ "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", -+ "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", + "license": "MIT", + "dependencies": { + "clean-stack": "^2.0.0", @@ -5160,8 +3507,6 @@ + }, + "node_modules/ansi-escapes": { + "version": "4.3.2", -+ "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", -+ "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", + "license": "MIT", + "dependencies": { + "type-fest": "^0.21.3" @@ -5175,8 +3520,6 @@ + }, + "node_modules/ansi-escapes/node_modules/type-fest": { + "version": "0.21.3", -+ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", -+ "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=10" @@ -5187,8 +3530,6 @@ + }, + "node_modules/ansi-regex": { + "version": "6.1.0", -+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz", -+ "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==", + "license": "MIT", + "engines": { + "node": ">=12" @@ -5199,345 +3540,87 @@ + }, + "node_modules/ansi-styles": { + "version": "6.2.1", -+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", -+ "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", -+ "license": "MIT", -+ "engines": { -+ "node": ">=12" -+ }, -+ "funding": { -+ "url": "https://github.com/chalk/ansi-styles?sponsor=1" -+ } -+ }, -+ "node_modules/any-promise": { -+ "version": "1.3.0", -+ "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz", -+ "integrity": "sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==", -+ "license": "MIT" -+ }, -+ "node_modules/anymatch": { -+ "version": "3.1.3", -+ "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", -+ "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", -+ "license": "ISC", -+ "dependencies": { -+ "normalize-path": "^3.0.0", -+ "picomatch": "^2.0.4" -+ }, -+ "engines": { -+ "node": ">= 8" -+ } -+ }, -+ "node_modules/apexcharts": { -+ "version": "3.41.0", -+ "resolved": "https://registry.npmjs.org/apexcharts/-/apexcharts-3.41.0.tgz", -+ "integrity": "sha512-FJXA7NVjxs1q+ptR3b1I+pN8K/gWuXn+qLZjFz8EHvJOokdgcuwa/HSe5aC465HW/LWnrjWLSTsOQejQbQ42hQ==", -+ "license": "MIT", -+ "dependencies": { -+ "svg.draggable.js": "^2.2.2", -+ "svg.easing.js": "^2.0.0", -+ "svg.filter.js": "^2.0.2", -+ "svg.pathmorphing.js": "^0.1.3", -+ "svg.resize.js": "^1.4.3", -+ "svg.select.js": "^3.0.1" -+ } -+ }, -+ "node_modules/arctic": { -+ "version": "1.9.2", -+ "resolved": "https://registry.npmjs.org/arctic/-/arctic-1.9.2.tgz", -+ "integrity": "sha512-VTnGpYx+ypboJdNrWnK17WeD7zN/xSCHnpecd5QYsBfVZde/5i+7DJ1wrf/ioSDMiEjagXmyNWAE3V2C9f1hNg==", -+ "license": "MIT", -+ "dependencies": { -+ "oslo": "1.2.0" -+ } -+ }, -+ "node_modules/arctic/node_modules/@emnapi/core": { -+ "version": "0.45.0", -+ "resolved": "https://registry.npmjs.org/@emnapi/core/-/core-0.45.0.tgz", -+ "integrity": "sha512-DPWjcUDQkCeEM4VnljEOEcXdAD7pp8zSZsgOujk/LGIwCXWbXJngin+MO4zbH429lzeC3WbYLGjE2MaUOwzpyw==", -+ "license": "MIT", -+ "optional": true, -+ "dependencies": { -+ "tslib": "^2.4.0" -+ } -+ }, -+ "node_modules/arctic/node_modules/@emnapi/runtime": { -+ "version": "0.45.0", -+ "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-0.45.0.tgz", -+ "integrity": "sha512-Txumi3td7J4A/xTTwlssKieHKTGl3j4A1tglBx72auZ49YK7ePY6XZricgIg9mnZT4xPfA+UPCUdnhRuEFDL+w==", -+ "license": "MIT", -+ "optional": true, -+ "dependencies": { -+ "tslib": "^2.4.0" -+ } -+ }, -+ "node_modules/arctic/node_modules/@node-rs/argon2": { -+ "version": "1.7.0", -+ "resolved": "https://registry.npmjs.org/@node-rs/argon2/-/argon2-1.7.0.tgz", -+ "integrity": "sha512-zfULc+/tmcWcxn+nHkbyY8vP3+MpEqKORbszt4UkpqZgBgDAAIYvuDN/zukfTgdmo6tmJKKVfzigZOPk4LlIog==", -+ "license": "MIT", -+ "engines": { -+ "node": ">= 10" -+ }, -+ "optionalDependencies": { -+ "@node-rs/argon2-android-arm-eabi": "1.7.0", -+ "@node-rs/argon2-android-arm64": "1.7.0", -+ "@node-rs/argon2-darwin-arm64": "1.7.0", -+ "@node-rs/argon2-darwin-x64": "1.7.0", -+ "@node-rs/argon2-freebsd-x64": "1.7.0", -+ "@node-rs/argon2-linux-arm-gnueabihf": "1.7.0", -+ "@node-rs/argon2-linux-arm64-gnu": "1.7.0", -+ "@node-rs/argon2-linux-arm64-musl": "1.7.0", -+ "@node-rs/argon2-linux-x64-gnu": "1.7.0", -+ "@node-rs/argon2-linux-x64-musl": "1.7.0", -+ "@node-rs/argon2-wasm32-wasi": "1.7.0", -+ "@node-rs/argon2-win32-arm64-msvc": "1.7.0", -+ "@node-rs/argon2-win32-ia32-msvc": "1.7.0", -+ "@node-rs/argon2-win32-x64-msvc": "1.7.0" -+ } -+ }, -+ "node_modules/arctic/node_modules/@node-rs/argon2-android-arm-eabi": { -+ "version": "1.7.0", -+ "resolved": "https://registry.npmjs.org/@node-rs/argon2-android-arm-eabi/-/argon2-android-arm-eabi-1.7.0.tgz", -+ "integrity": "sha512-udDqkr5P9E+wYX1SZwAVPdyfYvaF4ry9Tm+R9LkfSHbzWH0uhU6zjIwNRp7m+n4gx691rk+lqqDAIP8RLKwbhg==", -+ "cpu": [ -+ "arm" -+ ], -+ "license": "MIT", -+ "optional": true, -+ "os": [ -+ "android" -+ ], -+ "engines": { -+ "node": ">= 10" -+ } -+ }, -+ "node_modules/arctic/node_modules/@node-rs/argon2-android-arm64": { -+ "version": "1.7.0", -+ "resolved": "https://registry.npmjs.org/@node-rs/argon2-android-arm64/-/argon2-android-arm64-1.7.0.tgz", -+ "integrity": "sha512-s9j/G30xKUx8WU50WIhF0fIl1EdhBGq0RQ06lEhZ0Gi0ap8lhqbE2Bn5h3/G2D1k0Dx+yjeVVNmt/xOQIRG38A==", -+ "cpu": [ -+ "arm64" -+ ], -+ "license": "MIT", -+ "optional": true, -+ "os": [ -+ "android" -+ ], -+ "engines": { -+ "node": ">= 10" -+ } -+ }, -+ "node_modules/arctic/node_modules/@node-rs/argon2-darwin-arm64": { -+ "version": "1.7.0", -+ "resolved": "https://registry.npmjs.org/@node-rs/argon2-darwin-arm64/-/argon2-darwin-arm64-1.7.0.tgz", -+ "integrity": "sha512-ZIz4L6HGOB9U1kW23g+m7anGNuTZ0RuTw0vNp3o+2DWpb8u8rODq6A8tH4JRL79S+Co/Nq608m9uackN2pe0Rw==", -+ "cpu": [ -+ "arm64" -+ ], -+ "license": "MIT", -+ "optional": true, -+ "os": [ -+ "darwin" -+ ], -+ "engines": { -+ "node": ">= 10" -+ } -+ }, -+ "node_modules/arctic/node_modules/@node-rs/argon2-darwin-x64": { -+ "version": "1.7.0", -+ "resolved": "https://registry.npmjs.org/@node-rs/argon2-darwin-x64/-/argon2-darwin-x64-1.7.0.tgz", -+ "integrity": "sha512-5oi/pxqVhODW/pj1+3zElMTn/YukQeywPHHYDbcAW3KsojFjKySfhcJMd1DjKTc+CHQI+4lOxZzSUzK7mI14Hw==", -+ "cpu": [ -+ "x64" -+ ], -+ "license": "MIT", -+ "optional": true, -+ "os": [ -+ "darwin" -+ ], -+ "engines": { -+ "node": ">= 10" -+ } -+ }, -+ "node_modules/arctic/node_modules/@node-rs/argon2-freebsd-x64": { -+ "version": "1.7.0", -+ "resolved": "https://registry.npmjs.org/@node-rs/argon2-freebsd-x64/-/argon2-freebsd-x64-1.7.0.tgz", -+ "integrity": "sha512-Ify08683hA4QVXYoIm5SUWOY5DPIT/CMB0CQT+IdxQAg/F+qp342+lUkeAtD5bvStQuCx/dFO3bnnzoe2clMhA==", -+ "cpu": [ -+ "x64" -+ ], -+ "license": "MIT", -+ "optional": true, -+ "os": [ -+ "freebsd" -+ ], -+ "engines": { -+ "node": ">= 10" -+ } -+ }, -+ "node_modules/arctic/node_modules/@node-rs/argon2-linux-arm-gnueabihf": { -+ "version": "1.7.0", -+ "resolved": "https://registry.npmjs.org/@node-rs/argon2-linux-arm-gnueabihf/-/argon2-linux-arm-gnueabihf-1.7.0.tgz", -+ "integrity": "sha512-7DjDZ1h5AUHAtRNjD19RnQatbhL+uuxBASuuXIBu4/w6Dx8n7YPxwTP4MXfsvuRgKuMWiOb/Ub/HJ3kXVCXRkg==", -+ "cpu": [ -+ "arm" -+ ], -+ "license": "MIT", -+ "optional": true, -+ "os": [ -+ "linux" -+ ], -+ "engines": { -+ "node": ">= 10" -+ } -+ }, -+ "node_modules/arctic/node_modules/@node-rs/argon2-linux-arm64-gnu": { -+ "version": "1.7.0", -+ "resolved": "https://registry.npmjs.org/@node-rs/argon2-linux-arm64-gnu/-/argon2-linux-arm64-gnu-1.7.0.tgz", -+ "integrity": "sha512-nJDoMP4Y3YcqGswE4DvP080w6O24RmnFEDnL0emdI8Nou17kNYBzP2546Nasx9GCyLzRcYQwZOUjrtUuQ+od2g==", -+ "cpu": [ -+ "arm64" -+ ], -+ "license": "MIT", -+ "optional": true, -+ "os": [ -+ "linux" -+ ], -+ "engines": { -+ "node": ">= 10" -+ } -+ }, -+ "node_modules/arctic/node_modules/@node-rs/argon2-linux-arm64-musl": { -+ "version": "1.7.0", -+ "resolved": "https://registry.npmjs.org/@node-rs/argon2-linux-arm64-musl/-/argon2-linux-arm64-musl-1.7.0.tgz", -+ "integrity": "sha512-BKWS8iVconhE3jrb9mj6t1J9vwUqQPpzCbUKxfTGJfc+kNL58F1SXHBoe2cDYGnHrFEHTY0YochzXoAfm4Dm/A==", -+ "cpu": [ -+ "arm64" -+ ], -+ "license": "MIT", -+ "optional": true, -+ "os": [ -+ "linux" -+ ], -+ "engines": { -+ "node": ">= 10" -+ } -+ }, -+ "node_modules/arctic/node_modules/@node-rs/argon2-linux-x64-gnu": { -+ "version": "1.7.0", -+ "resolved": "https://registry.npmjs.org/@node-rs/argon2-linux-x64-gnu/-/argon2-linux-x64-gnu-1.7.0.tgz", -+ "integrity": "sha512-EmgqZOlf4Jurk/szW1iTsVISx25bKksVC5uttJDUloTgsAgIGReCpUUO1R24pBhu9ESJa47iv8NSf3yAfGv6jQ==", -+ "cpu": [ -+ "x64" -+ ], -+ "license": "MIT", -+ "optional": true, -+ "os": [ -+ "linux" -+ ], -+ "engines": { -+ "node": ">= 10" -+ } -+ }, -+ "node_modules/arctic/node_modules/@node-rs/argon2-linux-x64-musl": { -+ "version": "1.7.0", -+ "resolved": "https://registry.npmjs.org/@node-rs/argon2-linux-x64-musl/-/argon2-linux-x64-musl-1.7.0.tgz", -+ "integrity": "sha512-/o1efYCYIxjfuoRYyBTi2Iy+1iFfhqHCvvVsnjNSgO1xWiWrX0Rrt/xXW5Zsl7vS2Y+yu8PL8KFWRzZhaVxfKA==", -+ "cpu": [ -+ "x64" -+ ], + "license": "MIT", -+ "optional": true, -+ "os": [ -+ "linux" -+ ], + "engines": { -+ "node": ">= 10" ++ "node": ">=12" ++ }, ++ "funding": { ++ "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, -+ "node_modules/arctic/node_modules/@node-rs/argon2-wasm32-wasi": { -+ "version": "1.7.0", -+ "resolved": "https://registry.npmjs.org/@node-rs/argon2-wasm32-wasi/-/argon2-wasm32-wasi-1.7.0.tgz", -+ "integrity": "sha512-Evmk9VcxqnuwQftfAfYEr6YZYSPLzmKUsbFIMep5nTt9PT4XYRFAERj7wNYp+rOcBenF3X4xoB+LhwcOMTNE5w==", -+ "cpu": [ -+ "wasm32" -+ ], -+ "license": "MIT", -+ "optional": true, ++ "node_modules/any-promise": { ++ "version": "1.3.0", ++ "license": "MIT" ++ }, ++ "node_modules/anymatch": { ++ "version": "3.1.3", ++ "license": "ISC", + "dependencies": { -+ "@emnapi/core": "^0.45.0", -+ "@emnapi/runtime": "^0.45.0", -+ "@tybys/wasm-util": "^0.8.1", -+ "memfs-browser": "^3.4.13000" ++ "normalize-path": "^3.0.0", ++ "picomatch": "^2.0.4" + }, + "engines": { -+ "node": ">=14.0.0" ++ "node": ">= 8" + } + }, -+ "node_modules/arctic/node_modules/@node-rs/argon2-win32-arm64-msvc": { -+ "version": "1.7.0", -+ "resolved": "https://registry.npmjs.org/@node-rs/argon2-win32-arm64-msvc/-/argon2-win32-arm64-msvc-1.7.0.tgz", -+ "integrity": "sha512-qgsU7T004COWWpSA0tppDqDxbPLgg8FaU09krIJ7FBl71Sz8SFO40h7fDIjfbTT5w7u6mcaINMQ5bSHu75PCaA==", -+ "cpu": [ -+ "arm64" -+ ], ++ "node_modules/apexcharts": { ++ "version": "3.41.0", + "license": "MIT", -+ "optional": true, -+ "os": [ -+ "win32" -+ ], -+ "engines": { -+ "node": ">= 10" ++ "dependencies": { ++ "svg.draggable.js": "^2.2.2", ++ "svg.easing.js": "^2.0.0", ++ "svg.filter.js": "^2.0.2", ++ "svg.pathmorphing.js": "^0.1.3", ++ "svg.resize.js": "^1.4.3", ++ "svg.select.js": "^3.0.1" ++ } ++ }, ++ "node_modules/arctic": { ++ "version": "1.9.2", ++ "license": "MIT", ++ "dependencies": { ++ "oslo": "1.2.0" + } + }, -+ "node_modules/arctic/node_modules/@node-rs/argon2-win32-ia32-msvc": { ++ "node_modules/arctic/node_modules/@node-rs/argon2": { + "version": "1.7.0", -+ "resolved": "https://registry.npmjs.org/@node-rs/argon2-win32-ia32-msvc/-/argon2-win32-ia32-msvc-1.7.0.tgz", -+ "integrity": "sha512-JGafwWYQ/HpZ3XSwP4adQ6W41pRvhcdXvpzIWtKvX+17+xEXAe2nmGWM6s27pVkg1iV2ZtoYLRDkOUoGqZkCcg==", -+ "cpu": [ -+ "ia32" -+ ], + "license": "MIT", -+ "optional": true, -+ "os": [ -+ "win32" -+ ], + "engines": { + "node": ">= 10" ++ }, ++ "optionalDependencies": { ++ "@node-rs/argon2-android-arm-eabi": "1.7.0", ++ "@node-rs/argon2-android-arm64": "1.7.0", ++ "@node-rs/argon2-darwin-arm64": "1.7.0", ++ "@node-rs/argon2-darwin-x64": "1.7.0", ++ "@node-rs/argon2-freebsd-x64": "1.7.0", ++ "@node-rs/argon2-linux-arm-gnueabihf": "1.7.0", ++ "@node-rs/argon2-linux-arm64-gnu": "1.7.0", ++ "@node-rs/argon2-linux-arm64-musl": "1.7.0", ++ "@node-rs/argon2-linux-x64-gnu": "1.7.0", ++ "@node-rs/argon2-linux-x64-musl": "1.7.0", ++ "@node-rs/argon2-wasm32-wasi": "1.7.0", ++ "@node-rs/argon2-win32-arm64-msvc": "1.7.0", ++ "@node-rs/argon2-win32-ia32-msvc": "1.7.0", ++ "@node-rs/argon2-win32-x64-msvc": "1.7.0" + } + }, -+ "node_modules/arctic/node_modules/@node-rs/argon2-win32-x64-msvc": { ++ "node_modules/arctic/node_modules/@node-rs/argon2-darwin-arm64": { + "version": "1.7.0", -+ "resolved": "https://registry.npmjs.org/@node-rs/argon2-win32-x64-msvc/-/argon2-win32-x64-msvc-1.7.0.tgz", -+ "integrity": "sha512-9oq4ShyFakw8AG3mRls0AoCpxBFcimYx7+jvXeAf2OqKNO+mSA6eZ9z7KQeVCi0+SOEUYxMGf5UiGiDb9R6+9Q==", + "cpu": [ -+ "x64" ++ "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ -+ "win32" ++ "darwin" + ], + "engines": { + "node": ">= 10" + } + }, -+ "node_modules/arctic/node_modules/@tybys/wasm-util": { -+ "version": "0.8.3", -+ "resolved": "https://registry.npmjs.org/@tybys/wasm-util/-/wasm-util-0.8.3.tgz", -+ "integrity": "sha512-Z96T/L6dUFFxgFJ+pQtkPpne9q7i6kIPYCFnQBHSgSPV9idTsKfIhCss0h5iM9irweZCatkrdeP8yi5uM1eX6Q==", -+ "license": "MIT", -+ "optional": true, -+ "dependencies": { -+ "tslib": "^2.4.0" -+ } -+ }, + "node_modules/arctic/node_modules/oslo": { + "version": "1.2.0", -+ "resolved": "https://registry.npmjs.org/oslo/-/oslo-1.2.0.tgz", -+ "integrity": "sha512-OoFX6rDsNcOQVAD2gQD/z03u4vEjWZLzJtwkmgfRF+KpQUXwdgEXErD7zNhyowmHwHefP+PM9Pw13pgpHMRlzw==", -+ "deprecated": "Package is no longer supported. Please see https://oslojs.dev for the successor project.", + "license": "MIT", + "dependencies": { + "@node-rs/argon2": "1.7.0", @@ -5546,14 +3629,10 @@ + }, + "node_modules/arg": { + "version": "5.0.2", -+ "resolved": "https://registry.npmjs.org/arg/-/arg-5.0.2.tgz", -+ "integrity": "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==", + "license": "MIT" + }, + "node_modules/aria-hidden": { + "version": "1.2.6", -+ "resolved": "https://registry.npmjs.org/aria-hidden/-/aria-hidden-1.2.6.tgz", -+ "integrity": "sha512-ik3ZgC9dY/lYVVM++OISsaYDeg1tb0VtP5uL3ouh1koGOaUMDPpbFIei4JkFimWUFPn90sbMNMXQAIVOlnYKJA==", + "license": "MIT", + "dependencies": { + "tslib": "^2.0.0" @@ -5564,8 +3643,6 @@ + }, + "node_modules/aria-query": { + "version": "5.3.2", -+ "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.3.2.tgz", -+ "integrity": "sha512-COROpnaoap1E2F000S62r6A60uHZnmlvomhfyT2DlTcrY1OrBKn2UhH7qn5wTC9zMvD0AY7csdPSNwKP+7WiQw==", + "license": "Apache-2.0", + "engines": { + "node": ">= 0.4" @@ -5573,8 +3650,6 @@ + }, + "node_modules/array-buffer-byte-length": { + "version": "1.0.2", -+ "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.2.tgz", -+ "integrity": "sha512-LHE+8BuR7RYGDKvnrmcuSq3tDcKv9OFEXQt/HpbZhY7V6h0zlUXutnAD82GiFx9rdieCMjkvtcsPqBwgUl1Iiw==", + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", @@ -5589,8 +3664,6 @@ + }, + "node_modules/assertion-error": { + "version": "1.1.0", -+ "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz", -+ "integrity": "sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==", + "license": "MIT", + "engines": { + "node": "*" @@ -5598,14 +3671,10 @@ + }, + "node_modules/asynckit": { + "version": "0.4.0", -+ "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", -+ "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==", + "license": "MIT" + }, + "node_modules/autoprefixer": { + "version": "10.4.21", -+ "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.21.tgz", -+ "integrity": "sha512-O+A6LWV5LDHSJD3LjHYoNi4VLsj/Whi7k6zG12xTYaU4cQ8oxQGckXNX8cRHK5yOZ/ppVHe0ZBXGzSV9jXdVbQ==", + "funding": [ + { + "type": "opencollective", @@ -5641,8 +3710,6 @@ + }, + "node_modules/available-typed-arrays": { + "version": "1.0.7", -+ "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz", -+ "integrity": "sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==", + "license": "MIT", + "dependencies": { + "possible-typed-array-names": "^1.0.0" @@ -5656,8 +3723,6 @@ + }, + "node_modules/axios": { + "version": "1.8.4", -+ "resolved": "https://registry.npmjs.org/axios/-/axios-1.8.4.tgz", -+ "integrity": "sha512-eBSYY4Y68NNlHbHBMdeDmKNtDgXWhQsJcGqzO3iLUM0GraQFSS9cVgPX5I9b3lbdFKyYoAEGAZF1DwhTaljNAw==", + "license": "MIT", + "dependencies": { + "follow-redirects": "^1.15.6", @@ -5667,14 +3732,10 @@ + }, + "node_modules/balanced-match": { + "version": "1.0.2", -+ "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", -+ "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "license": "MIT" + }, + "node_modules/base64-js": { + "version": "1.5.1", -+ "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", -+ "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", + "funding": [ + { + "type": "github", @@ -5693,8 +3754,6 @@ + }, + "node_modules/bignumber.js": { + "version": "9.1.2", -+ "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.1.2.tgz", -+ "integrity": "sha512-2/mKyZH9K85bzOEfhXDBFZTGd1CTs+5IHpeFQo9luiBG7hghdC851Pj2WAhb6E3R6b9tZj/XKhbg4fum+Kepug==", + "license": "MIT", + "engines": { + "node": "*" @@ -5702,8 +3761,6 @@ + }, + "node_modules/binary-extensions": { + "version": "2.3.0", -+ "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz", -+ "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==", + "license": "MIT", + "engines": { + "node": ">=8" @@ -5714,8 +3771,6 @@ + }, + "node_modules/bl": { + "version": "4.1.0", -+ "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz", -+ "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==", + "license": "MIT", + "dependencies": { + "buffer": "^5.5.0", @@ -5725,8 +3780,6 @@ + }, + "node_modules/body-parser": { + "version": "2.2.0", -+ "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-2.2.0.tgz", -+ "integrity": "sha512-02qvAaxv8tp7fBa/mw1ga98OGm+eCbqzJOKoRt70sLmfEEi+jyBYVTDGfCL/k06/4EMk/z01gCe7HoCH/f2LTg==", + "license": "MIT", + "dependencies": { + "bytes": "^3.1.2", @@ -5745,8 +3798,6 @@ + }, + "node_modules/body-parser/node_modules/iconv-lite": { + "version": "0.6.3", -+ "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", -+ "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "license": "MIT", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3.0.0" @@ -5757,14 +3808,10 @@ + }, + "node_modules/bowser": { + "version": "2.11.0", -+ "resolved": "https://registry.npmjs.org/bowser/-/bowser-2.11.0.tgz", -+ "integrity": "sha512-AlcaJBi/pqqJBIQ8U9Mcpc9i8Aqxn88Skv5d+xBX006BY5u8N3mGLHa5Lgppa7L/HfwgwLgZ6NYs+Ag6uUmJRA==", + "license": "MIT" + }, + "node_modules/brace-expansion": { + "version": "2.0.1", -+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", -+ "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0" @@ -5772,8 +3819,6 @@ + }, + "node_modules/braces": { + "version": "3.0.3", -+ "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", -+ "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", + "license": "MIT", + "dependencies": { + "fill-range": "^7.1.1" @@ -5784,8 +3829,6 @@ + }, + "node_modules/browserslist": { + "version": "4.24.4", -+ "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.24.4.tgz", -+ "integrity": "sha512-KDi1Ny1gSePi1vm0q4oxSF8b4DR44GF4BbmS2YdhPLOEqd8pDviZOGH/GsmRwoWJ2+5Lr085X7naowMwKHDG1A==", + "funding": [ + { + "type": "opencollective", @@ -5816,8 +3859,6 @@ + }, + "node_modules/buffer": { + "version": "5.7.1", -+ "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", -+ "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", + "funding": [ + { + "type": "github", @@ -5840,14 +3881,10 @@ + }, + "node_modules/buffer-equal-constant-time": { + "version": "1.0.1", -+ "resolved": "https://registry.npmjs.org/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz", -+ "integrity": "sha512-zRpUiDwd/xk6ADqPMATG8vc9VPrkck7T07OIx0gnjmJAnHnTVXNQG3vfvWNuiZIkwu9KrKdA1iJKfsfTVxE6NA==", + "license": "BSD-3-Clause" + }, + "node_modules/bytes": { + "version": "3.1.2", -+ "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", -+ "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", + "license": "MIT", + "engines": { + "node": ">= 0.8" @@ -5855,8 +3892,6 @@ + }, + "node_modules/cac": { + "version": "6.7.14", -+ "resolved": "https://registry.npmjs.org/cac/-/cac-6.7.14.tgz", -+ "integrity": "sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==", + "license": "MIT", + "engines": { + "node": ">=8" @@ -5864,8 +3899,6 @@ + }, + "node_modules/call-bind": { + "version": "1.0.8", -+ "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.8.tgz", -+ "integrity": "sha512-oKlSFMcMwpUg2ednkhQ454wfWiU/ul3CkJe/PEHcTKuiX6RpbehUiFMXu13HalGZxfUwCQzZG747YXBn1im9ww==", + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.0", @@ -5882,8 +3915,6 @@ + }, + "node_modules/call-bind-apply-helpers": { + "version": "1.0.2", -+ "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz", -+ "integrity": "sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", @@ -5895,8 +3926,6 @@ + }, + "node_modules/call-bound": { + "version": "1.0.4", -+ "resolved": "https://registry.npmjs.org/call-bound/-/call-bound-1.0.4.tgz", -+ "integrity": "sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==", + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.2", @@ -5911,8 +3940,6 @@ + }, + "node_modules/camelcase-css": { + "version": "2.0.1", -+ "resolved": "https://registry.npmjs.org/camelcase-css/-/camelcase-css-2.0.1.tgz", -+ "integrity": "sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==", + "license": "MIT", + "engines": { + "node": ">= 6" @@ -5920,8 +3947,6 @@ + }, + "node_modules/caniuse-lite": { + "version": "1.0.30001706", -+ "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001706.tgz", -+ "integrity": "sha512-3ZczoTApMAZwPKYWmwVbQMFpXBDds3/0VciVoUwPUbldlYyVLmRVuRs/PcUZtHpbLRpzzDvrvnFuREsGt6lUug==", + "funding": [ + { + "type": "opencollective", @@ -5940,8 +3965,6 @@ + }, + "node_modules/chai": { + "version": "4.5.0", -+ "resolved": "https://registry.npmjs.org/chai/-/chai-4.5.0.tgz", -+ "integrity": "sha512-RITGBfijLkBddZvnn8jdqoTypxvqbOLYQkGGxXzeFjVHvudaPw0HNFD9x928/eUwYWd2dPCugVqspGALTZZQKw==", + "license": "MIT", + "dependencies": { + "assertion-error": "^1.1.0", @@ -5958,8 +3981,6 @@ + }, + "node_modules/chalk": { + "version": "3.0.0", -+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", -+ "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", @@ -5971,8 +3992,6 @@ + }, + "node_modules/chalk/node_modules/ansi-styles": { + "version": "4.3.0", -+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", -+ "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" @@ -5986,14 +4005,10 @@ + }, + "node_modules/chardet": { + "version": "0.7.0", -+ "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz", -+ "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==", + "license": "MIT" + }, + "node_modules/check-error": { + "version": "1.0.3", -+ "resolved": "https://registry.npmjs.org/check-error/-/check-error-1.0.3.tgz", -+ "integrity": "sha512-iKEoDYaRmd1mxM90a2OEfWhjsjPpYPuQ+lMYsoxB126+t8fw7ySEO48nmDg5COTjxDI65/Y2OWpeEHk3ZOe8zg==", + "license": "MIT", + "dependencies": { + "get-func-name": "^2.0.2" @@ -6004,8 +4019,6 @@ + }, + "node_modules/chokidar": { + "version": "3.6.0", -+ "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz", -+ "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", + "license": "MIT", + "dependencies": { + "anymatch": "~3.1.2", @@ -6028,8 +4041,6 @@ + }, + "node_modules/chokidar/node_modules/glob-parent": { + "version": "5.1.2", -+ "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", -+ "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.1" @@ -6040,8 +4051,6 @@ + }, + "node_modules/class-variance-authority": { + "version": "0.7.1", -+ "resolved": "https://registry.npmjs.org/class-variance-authority/-/class-variance-authority-0.7.1.tgz", -+ "integrity": "sha512-Ka+9Trutv7G8M6WT6SeiRWz792K5qEqIGEGzXKhAE6xOWAY6pPH8U+9IY3oCMv6kqTmLsv7Xh/2w2RigkePMsg==", + "license": "Apache-2.0", + "dependencies": { + "clsx": "^2.1.1" @@ -6052,8 +4061,6 @@ + }, + "node_modules/clean-stack": { + "version": "2.2.0", -+ "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", -+ "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", + "license": "MIT", + "engines": { + "node": ">=6" @@ -6061,8 +4068,6 @@ + }, + "node_modules/cli-cursor": { + "version": "3.1.0", -+ "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", -+ "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", + "license": "MIT", + "dependencies": { + "restore-cursor": "^3.1.0" @@ -6073,8 +4078,6 @@ + }, + "node_modules/cli-spinners": { + "version": "2.9.2", -+ "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.9.2.tgz", -+ "integrity": "sha512-ywqV+5MmyL4E7ybXgKys4DugZbX0FC6LnwrhjuykIjnK9k8OQacQ7axGKnjDXWNhns0xot3bZI5h55H8yo9cJg==", + "license": "MIT", + "engines": { + "node": ">=6" @@ -6085,8 +4088,6 @@ + }, + "node_modules/cli-width": { + "version": "3.0.0", -+ "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-3.0.0.tgz", -+ "integrity": "sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw==", + "license": "ISC", + "engines": { + "node": ">= 10" @@ -6094,14 +4095,10 @@ + }, + "node_modules/client-only": { + "version": "0.0.1", -+ "resolved": "https://registry.npmjs.org/client-only/-/client-only-0.0.1.tgz", -+ "integrity": "sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA==", + "license": "MIT" + }, + "node_modules/cliui": { + "version": "8.0.1", -+ "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", -+ "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", + "license": "ISC", + "dependencies": { + "string-width": "^4.2.0", @@ -6114,8 +4111,6 @@ + }, + "node_modules/cliui/node_modules/ansi-regex": { + "version": "5.0.1", -+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", -+ "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "license": "MIT", + "engines": { + "node": ">=8" @@ -6123,8 +4118,6 @@ + }, + "node_modules/cliui/node_modules/ansi-styles": { + "version": "4.3.0", -+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", -+ "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" @@ -6138,14 +4131,10 @@ + }, + "node_modules/cliui/node_modules/emoji-regex": { + "version": "8.0.0", -+ "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", -+ "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "license": "MIT" + }, + "node_modules/cliui/node_modules/string-width": { + "version": "4.2.3", -+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", -+ "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", @@ -6158,8 +4147,6 @@ + }, + "node_modules/cliui/node_modules/strip-ansi": { + "version": "6.0.1", -+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", -+ "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" @@ -6170,8 +4157,6 @@ + }, + "node_modules/cliui/node_modules/wrap-ansi": { + "version": "7.0.0", -+ "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", -+ "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.0.0", @@ -6187,8 +4172,6 @@ + }, + "node_modules/clone": { + "version": "1.0.4", -+ "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", -+ "integrity": "sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==", + "license": "MIT", + "engines": { + "node": ">=0.8" @@ -6196,8 +4179,6 @@ + }, + "node_modules/clsx": { + "version": "2.1.1", -+ "resolved": "https://registry.npmjs.org/clsx/-/clsx-2.1.1.tgz", -+ "integrity": "sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==", + "license": "MIT", + "engines": { + "node": ">=6" @@ -6205,8 +4186,6 @@ + }, + "node_modules/color-convert": { + "version": "2.0.1", -+ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", -+ "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" @@ -6217,14 +4196,10 @@ + }, + "node_modules/color-name": { + "version": "1.1.4", -+ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", -+ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "license": "MIT" + }, + "node_modules/combined-stream": { + "version": "1.0.8", -+ "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", -+ "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "license": "MIT", + "dependencies": { + "delayed-stream": "~1.0.0" @@ -6235,8 +4210,6 @@ + }, + "node_modules/commander": { + "version": "4.1.1", -+ "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", -+ "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==", + "license": "MIT", + "engines": { + "node": ">= 6" @@ -6244,14 +4217,10 @@ + }, + "node_modules/confbox": { + "version": "0.1.8", -+ "resolved": "https://registry.npmjs.org/confbox/-/confbox-0.1.8.tgz", -+ "integrity": "sha512-RMtmw0iFkeR4YV+fUOSucriAQNb9g8zFR52MWCtl+cCZOFRNL6zeB395vPzFhEjjn4fMxXudmELnl/KF/WrK6w==", + "license": "MIT" + }, + "node_modules/content-disposition": { + "version": "1.0.0", -+ "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-1.0.0.tgz", -+ "integrity": "sha512-Au9nRL8VNUut/XSzbQA38+M78dzP4D+eqg3gfJHMIHHYa3bg067xj1KxMUWj+VULbiZMowKngFFbKczUrNJ1mg==", + "license": "MIT", + "dependencies": { + "safe-buffer": "5.2.1" @@ -6262,8 +4231,6 @@ + }, + "node_modules/content-type": { + "version": "1.0.5", -+ "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz", -+ "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==", + "license": "MIT", + "engines": { + "node": ">= 0.6" @@ -6271,8 +4238,6 @@ + }, + "node_modules/cookie": { + "version": "0.7.1", -+ "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.7.1.tgz", -+ "integrity": "sha512-6DnInpx7SJ2AK3+CTUE/ZM0vWTUboZCegxhC2xiIydHR9jNuTAASBrfEpHhiGOZw/nX51bHt6YQl8jsGo4y/0w==", + "license": "MIT", + "engines": { + "node": ">= 0.6" @@ -6280,8 +4245,6 @@ + }, + "node_modules/cookie-signature": { + "version": "1.2.2", -+ "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.2.2.tgz", -+ "integrity": "sha512-D76uU73ulSXrD1UXF4KE2TMxVVwhsnCgfAyTg9k8P6KGZjlXKrOLe4dJQKI3Bxi5wjesZoFXJWElNWBjPZMbhg==", + "license": "MIT", + "engines": { + "node": ">=6.6.0" @@ -6289,8 +4252,6 @@ + }, + "node_modules/copy-anything": { + "version": "3.0.5", -+ "resolved": "https://registry.npmjs.org/copy-anything/-/copy-anything-3.0.5.tgz", -+ "integrity": "sha512-yCEafptTtb4bk7GLEQoM8KVJpxAfdBJYaXyzQEgQQQgYrZiDp8SJmGKlYza6CYjEDNstAdNdKA3UuoULlEbS6w==", + "license": "MIT", + "dependencies": { + "is-what": "^4.1.8" @@ -6304,8 +4265,6 @@ + }, + "node_modules/cron-parser": { + "version": "4.9.0", -+ "resolved": "https://registry.npmjs.org/cron-parser/-/cron-parser-4.9.0.tgz", -+ "integrity": "sha512-p0SaNjrHOnQeR8/VnfGbmg9te2kfyYSQ7Sc/j/6DtPL3JQvKxmjO9TSjNFpujqV3vEYYBvNNvXSxzyksBWAx1Q==", + "license": "MIT", + "dependencies": { + "luxon": "^3.2.1" @@ -6316,8 +4275,6 @@ + }, + "node_modules/cross-spawn": { + "version": "7.0.6", -+ "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", -+ "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", + "license": "MIT", + "dependencies": { + "path-key": "^3.1.0", @@ -6330,14 +4287,10 @@ + }, + "node_modules/css.escape": { + "version": "1.5.1", -+ "resolved": "https://registry.npmjs.org/css.escape/-/css.escape-1.5.1.tgz", -+ "integrity": "sha512-YUifsXXuknHlUsmlgyY0PKzgPOr7/FjCePfHNt0jxm83wHZi44VDMQ7/fGNkjY3/jV1MC+1CmZbaHzugyeRtpg==", + "license": "MIT" + }, + "node_modules/cssesc": { + "version": "3.0.0", -+ "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", -+ "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", + "license": "MIT", + "bin": { + "cssesc": "bin/cssesc" @@ -6348,8 +4301,6 @@ + }, + "node_modules/cssstyle": { + "version": "3.0.0", -+ "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-3.0.0.tgz", -+ "integrity": "sha512-N4u2ABATi3Qplzf0hWbVCdjenim8F3ojEXpBDF5hBpjzW182MjNGLqfmQ0SkSPeQ+V86ZXgeH8aXj6kayd4jgg==", + "license": "MIT", + "dependencies": { + "rrweb-cssom": "^0.6.0" @@ -6360,14 +4311,10 @@ + }, + "node_modules/csstype": { + "version": "3.1.3", -+ "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz", -+ "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==", + "license": "MIT" + }, + "node_modules/data-uri-to-buffer": { + "version": "4.0.1", -+ "resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-4.0.1.tgz", -+ "integrity": "sha512-0R9ikRb668HB7QDxT1vkpuUBtqc53YyAwMwGeUFKRojY/NWKvdZ+9UYtRfGmhqNbRkTSVpMbmyhXipFFv2cb/A==", + "license": "MIT", + "engines": { + "node": ">= 12" @@ -6375,8 +4322,6 @@ + }, + "node_modules/data-urls": { + "version": "4.0.0", -+ "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-4.0.0.tgz", -+ "integrity": "sha512-/mMTei/JXPqvFqQtfyTowxmJVwr2PVAeCcDxyFf6LhoOu/09TX2OX3kb2wzi4DMXcfj4OItwDOnhl5oziPnT6g==", + "license": "MIT", + "dependencies": { + "abab": "^2.0.6", @@ -6389,8 +4334,6 @@ + }, + "node_modules/data-urls/node_modules/tr46": { + "version": "4.1.1", -+ "resolved": "https://registry.npmjs.org/tr46/-/tr46-4.1.1.tgz", -+ "integrity": "sha512-2lv/66T7e5yNyhAAC4NaKe5nVavzuGJQVVtRYLyQ2OI8tsJ61PMLlelehb0wi2Hx6+hT/OJUWZcw8MjlSRnxvw==", + "license": "MIT", + "dependencies": { + "punycode": "^2.3.0" @@ -6401,8 +4344,6 @@ + }, + "node_modules/data-urls/node_modules/webidl-conversions": { + "version": "7.0.0", -+ "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-7.0.0.tgz", -+ "integrity": "sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==", + "license": "BSD-2-Clause", + "engines": { + "node": ">=12" @@ -6410,8 +4351,6 @@ + }, + "node_modules/data-urls/node_modules/whatwg-url": { + "version": "12.0.1", -+ "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-12.0.1.tgz", -+ "integrity": "sha512-Ed/LrqB8EPlGxjS+TrsXcpUond1mhccS3pchLhzSgPCnTimUCKj3IZE75pAs5m6heB2U2TMerKFUXheyHY+VDQ==", + "license": "MIT", + "dependencies": { + "tr46": "^4.1.1", @@ -6423,8 +4362,6 @@ + }, + "node_modules/debug": { + "version": "4.4.0", -+ "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.0.tgz", -+ "integrity": "sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==", + "license": "MIT", + "dependencies": { + "ms": "^2.1.3" @@ -6440,14 +4377,10 @@ + }, + "node_modules/decimal.js": { + "version": "10.5.0", -+ "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.5.0.tgz", -+ "integrity": "sha512-8vDa8Qxvr/+d94hSh5P3IJwI5t8/c0KsMp+g8bNw9cY2icONa5aPfvKeieW1WlG0WQYwwhJ7mjui2xtiePQSXw==", + "license": "MIT" + }, + "node_modules/deep-eql": { + "version": "4.1.4", -+ "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-4.1.4.tgz", -+ "integrity": "sha512-SUwdGfqdKOwxCPeVYjwSyRpJ7Z+fhpwIAtmCUdZIWZ/YP5R9WAsyuSgpLVDi9bjWoN2LXHNss/dk3urXtdQxGg==", + "license": "MIT", + "dependencies": { + "type-detect": "^4.0.0" @@ -6458,8 +4391,6 @@ + }, + "node_modules/deep-equal": { + "version": "2.2.3", -+ "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-2.2.3.tgz", -+ "integrity": "sha512-ZIwpnevOurS8bpT4192sqAowWM76JDKSHYzMLty3BZGSswgq6pBaH3DhCSW5xVAZICZyKdOBPjwww5wfgT/6PA==", + "license": "MIT", + "dependencies": { + "array-buffer-byte-length": "^1.0.0", @@ -6490,8 +4421,6 @@ + }, + "node_modules/deepmerge": { + "version": "4.3.1", -+ "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz", -+ "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" @@ -6499,8 +4428,6 @@ + }, + "node_modules/defaults": { + "version": "1.0.4", -+ "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.4.tgz", -+ "integrity": "sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==", + "license": "MIT", + "dependencies": { + "clone": "^1.0.2" @@ -6511,8 +4438,6 @@ + }, + "node_modules/define-data-property": { + "version": "1.1.4", -+ "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz", -+ "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", + "license": "MIT", + "dependencies": { + "es-define-property": "^1.0.0", @@ -6528,8 +4453,6 @@ + }, + "node_modules/define-properties": { + "version": "1.2.1", -+ "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz", -+ "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==", + "license": "MIT", + "dependencies": { + "define-data-property": "^1.0.1", @@ -6545,8 +4468,6 @@ + }, + "node_modules/delay": { + "version": "5.0.0", -+ "resolved": "https://registry.npmjs.org/delay/-/delay-5.0.0.tgz", -+ "integrity": "sha512-ReEBKkIfe4ya47wlPYf/gu5ib6yUG0/Aez0JQZQz94kiWtRQvZIQbTiehsnwHvLSWJnQdhVeqYue7Id1dKr0qw==", + "license": "MIT", + "engines": { + "node": ">=10" @@ -6557,8 +4478,6 @@ + }, + "node_modules/delayed-stream": { + "version": "1.0.0", -+ "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", -+ "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", + "license": "MIT", + "engines": { + "node": ">=0.4.0" @@ -6566,8 +4485,6 @@ + }, + "node_modules/depd": { + "version": "2.0.0", -+ "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", -+ "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", + "license": "MIT", + "engines": { + "node": ">= 0.8" @@ -6575,20 +4492,14 @@ + }, + "node_modules/detect-node-es": { + "version": "1.1.0", -+ "resolved": "https://registry.npmjs.org/detect-node-es/-/detect-node-es-1.1.0.tgz", -+ "integrity": "sha512-ypdmJU/TbBby2Dxibuv7ZLW3Bs1QEmM7nHjEANfohJLvE0XVujisn1qPJcZxg+qDucsr+bP6fLD1rPS3AhJ7EQ==", + "license": "MIT" + }, + "node_modules/didyoumean": { + "version": "1.2.2", -+ "resolved": "https://registry.npmjs.org/didyoumean/-/didyoumean-1.2.2.tgz", -+ "integrity": "sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==", + "license": "Apache-2.0" + }, + "node_modules/diff-sequences": { + "version": "29.6.3", -+ "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-29.6.3.tgz", -+ "integrity": "sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==", + "license": "MIT", + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" @@ -6596,21 +4507,14 @@ + }, + "node_modules/dlv": { + "version": "1.1.3", -+ "resolved": "https://registry.npmjs.org/dlv/-/dlv-1.1.3.tgz", -+ "integrity": "sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==", + "license": "MIT" + }, + "node_modules/dom-accessibility-api": { + "version": "0.6.3", -+ "resolved": "https://registry.npmjs.org/dom-accessibility-api/-/dom-accessibility-api-0.6.3.tgz", -+ "integrity": "sha512-7ZgogeTnjuHbo+ct10G9Ffp0mif17idi0IyWNVA/wcwcm7NPOD/WEHVP3n7n3MhXqxoIYm8d6MuZohYWIZ4T3w==", + "license": "MIT" + }, + "node_modules/domexception": { + "version": "4.0.0", -+ "resolved": "https://registry.npmjs.org/domexception/-/domexception-4.0.0.tgz", -+ "integrity": "sha512-A2is4PLG+eeSfoTMA95/s4pvAoSo2mKtiM5jlHkAVewmiO8ISFTFKZjH7UAM1Atli/OT/7JHOrJRJiMKUZKYBw==", -+ "deprecated": "Use your platform's native DOMException instead", + "license": "MIT", + "dependencies": { + "webidl-conversions": "^7.0.0" @@ -6621,8 +4525,6 @@ + }, + "node_modules/domexception/node_modules/webidl-conversions": { + "version": "7.0.0", -+ "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-7.0.0.tgz", -+ "integrity": "sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==", + "license": "BSD-2-Clause", + "engines": { + "node": ">=12" @@ -6630,8 +4532,6 @@ + }, + "node_modules/dunder-proto": { + "version": "1.0.1", -+ "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz", -+ "integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==", + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.1", @@ -6644,8 +4544,6 @@ + }, + "node_modules/duplexify": { + "version": "4.1.3", -+ "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-4.1.3.tgz", -+ "integrity": "sha512-M3BmBhwJRZsSx38lZyhE53Csddgzl5R7xGJNk7CVddZD6CcmwMCH8J+7AprIrQKH7TonKxaCjcv27Qmf+sQ+oA==", + "license": "MIT", + "dependencies": { + "end-of-stream": "^1.4.1", @@ -6656,14 +4554,10 @@ + }, + "node_modules/eastasianwidth": { + "version": "0.2.0", -+ "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", -+ "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==", + "license": "MIT" + }, + "node_modules/ecdsa-sig-formatter": { + "version": "1.0.11", -+ "resolved": "https://registry.npmjs.org/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.11.tgz", -+ "integrity": "sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ==", + "license": "Apache-2.0", + "dependencies": { + "safe-buffer": "^5.0.1" @@ -6671,26 +4565,18 @@ + }, + "node_modules/ee-first": { + "version": "1.1.1", -+ "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", -+ "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==", + "license": "MIT" + }, + "node_modules/electron-to-chromium": { + "version": "1.5.122", -+ "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.122.tgz", -+ "integrity": "sha512-EML1wnwkY5MFh/xUnCvY8FrhUuKzdYhowuZExZOfwJo+Zu9OsNCI23Cgl5y7awy7HrUHSwB1Z8pZX5TI34lsUg==", + "license": "ISC" + }, + "node_modules/emoji-regex": { + "version": "9.2.2", -+ "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", -+ "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", + "license": "MIT" + }, + "node_modules/encodeurl": { + "version": "2.0.0", -+ "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-2.0.0.tgz", -+ "integrity": "sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==", + "license": "MIT", + "engines": { + "node": ">= 0.8" @@ -6698,8 +4584,6 @@ + }, + "node_modules/end-of-stream": { + "version": "1.4.4", -+ "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", -+ "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", + "license": "MIT", + "dependencies": { + "once": "^1.4.0" @@ -6707,8 +4591,6 @@ + }, + "node_modules/entities": { + "version": "4.5.0", -+ "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", -+ "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", + "license": "BSD-2-Clause", + "engines": { + "node": ">=0.12" @@ -6719,8 +4601,6 @@ + }, + "node_modules/es-define-property": { + "version": "1.0.1", -+ "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz", -+ "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==", + "license": "MIT", + "engines": { + "node": ">= 0.4" @@ -6728,8 +4608,6 @@ + }, + "node_modules/es-errors": { + "version": "1.3.0", -+ "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", -+ "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", + "license": "MIT", + "engines": { + "node": ">= 0.4" @@ -6737,8 +4615,6 @@ + }, + "node_modules/es-get-iterator": { + "version": "1.1.3", -+ "resolved": "https://registry.npmjs.org/es-get-iterator/-/es-get-iterator-1.1.3.tgz", -+ "integrity": "sha512-sPZmqHBe6JIiTfN5q2pEi//TwxmAFHwj/XEuYjTuse78i8KxaqMTTzxPoFKuzRpDpTJ+0NAbpfenkmH2rePtuw==", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", @@ -6757,8 +4633,6 @@ + }, + "node_modules/es-object-atoms": { + "version": "1.1.1", -+ "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.1.tgz", -+ "integrity": "sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0" @@ -6769,8 +4643,6 @@ + }, + "node_modules/es-set-tostringtag": { + "version": "2.1.0", -+ "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.1.0.tgz", -+ "integrity": "sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", @@ -6784,8 +4656,6 @@ + }, + "node_modules/esbuild": { + "version": "0.18.20", -+ "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.18.20.tgz", -+ "integrity": "sha512-ceqxoedUrcayh7Y7ZX6NdbbDzGROiyVBgC4PriJThBKSVPWnnFHZAkfI1lJT8QFkOwH4qOS2SJkS4wvpGl8BpA==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", @@ -6822,8 +4692,6 @@ + }, + "node_modules/escalade": { + "version": "3.2.0", -+ "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", -+ "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", + "license": "MIT", + "engines": { + "node": ">=6" @@ -6831,14 +4699,10 @@ + }, + "node_modules/escape-html": { + "version": "1.0.3", -+ "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", -+ "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==", + "license": "MIT" + }, + "node_modules/escape-string-regexp": { + "version": "1.0.5", -+ "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", -+ "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "license": "MIT", + "engines": { + "node": ">=0.8.0" @@ -6846,8 +4710,6 @@ + }, + "node_modules/escodegen": { + "version": "2.1.0", -+ "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-2.1.0.tgz", -+ "integrity": "sha512-2NlIDTwUWJN0mRPQOdtQBzbUHvdGY2P1VXSyU83Q3xKxM7WHX2Ql8dKq782Q9TgQUNOLEzEYu9bzLNj1q88I5w==", + "license": "BSD-2-Clause", + "dependencies": { + "esprima": "^4.0.1", @@ -6867,8 +4729,6 @@ + }, + "node_modules/esprima": { + "version": "4.0.1", -+ "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", -+ "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "license": "BSD-2-Clause", + "bin": { + "esparse": "bin/esparse.js", @@ -6880,8 +4740,6 @@ + }, + "node_modules/estraverse": { + "version": "5.3.0", -+ "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", -+ "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "license": "BSD-2-Clause", + "engines": { + "node": ">=4.0" @@ -6889,8 +4747,6 @@ + }, + "node_modules/estree-walker": { + "version": "3.0.3", -+ "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-3.0.3.tgz", -+ "integrity": "sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==", + "license": "MIT", + "dependencies": { + "@types/estree": "^1.0.0" @@ -6898,8 +4754,6 @@ + }, + "node_modules/esutils": { + "version": "2.0.3", -+ "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", -+ "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "license": "BSD-2-Clause", + "engines": { + "node": ">=0.10.0" @@ -6907,8 +4761,6 @@ + }, + "node_modules/etag": { + "version": "1.8.1", -+ "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", -+ "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==", + "license": "MIT", + "engines": { + "node": ">= 0.6" @@ -6916,8 +4768,6 @@ + }, + "node_modules/event-target-shim": { + "version": "5.0.1", -+ "resolved": "https://registry.npmjs.org/event-target-shim/-/event-target-shim-5.0.1.tgz", -+ "integrity": "sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==", + "license": "MIT", + "engines": { + "node": ">=6" @@ -6925,8 +4775,6 @@ + }, + "node_modules/events": { + "version": "3.3.0", -+ "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", -+ "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", + "license": "MIT", + "engines": { + "node": ">=0.8.x" @@ -6934,8 +4782,6 @@ + }, + "node_modules/execa": { + "version": "8.0.1", -+ "resolved": "https://registry.npmjs.org/execa/-/execa-8.0.1.tgz", -+ "integrity": "sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==", + "license": "MIT", + "dependencies": { + "cross-spawn": "^7.0.3", @@ -6957,8 +4803,6 @@ + }, + "node_modules/execa/node_modules/is-stream": { + "version": "3.0.0", -+ "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-3.0.0.tgz", -+ "integrity": "sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==", + "license": "MIT", + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" @@ -6969,8 +4813,6 @@ + }, + "node_modules/execa/node_modules/mimic-fn": { + "version": "4.0.0", -+ "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-4.0.0.tgz", -+ "integrity": "sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==", + "license": "MIT", + "engines": { + "node": ">=12" @@ -6981,8 +4823,6 @@ + }, + "node_modules/execa/node_modules/onetime": { + "version": "6.0.0", -+ "resolved": "https://registry.npmjs.org/onetime/-/onetime-6.0.0.tgz", -+ "integrity": "sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==", + "license": "MIT", + "dependencies": { + "mimic-fn": "^4.0.0" @@ -6996,8 +4836,6 @@ + }, + "node_modules/express": { + "version": "5.1.0", -+ "resolved": "https://registry.npmjs.org/express/-/express-5.1.0.tgz", -+ "integrity": "sha512-DT9ck5YIRU+8GYzzU5kT3eHGA5iL+1Zd0EutOmTE9Dtk+Tvuzd23VBU+ec7HPNSTxXYO55gPV/hq4pSBJDjFpA==", + "license": "MIT", + "dependencies": { + "accepts": "^2.0.0", @@ -7038,8 +4876,6 @@ + }, + "node_modules/express/node_modules/mime-db": { + "version": "1.54.0", -+ "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.54.0.tgz", -+ "integrity": "sha512-aU5EJuIN2WDemCcAp2vFBfp/m4EAhWJnUNSSw0ixs7/kXbd6Pg64EmwJkNdFhB8aWt1sH2CTXrLxo/iAGV3oPQ==", + "license": "MIT", + "engines": { + "node": ">= 0.6" @@ -7047,8 +4883,6 @@ + }, + "node_modules/express/node_modules/mime-types": { + "version": "3.0.1", -+ "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-3.0.1.tgz", -+ "integrity": "sha512-xRc4oEhT6eaBpU1XF7AjpOFD+xQmXNB5OVKwp4tqCuBpHLS/ZbBDrc07mYTDqVMg6PfxUjjNp85O6Cd2Z/5HWA==", + "license": "MIT", + "dependencies": { + "mime-db": "^1.54.0" @@ -7059,14 +4893,10 @@ + }, + "node_modules/extend": { + "version": "3.0.2", -+ "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", -+ "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", + "license": "MIT" + }, + "node_modules/external-editor": { + "version": "3.1.0", -+ "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz", -+ "integrity": "sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==", + "license": "MIT", + "dependencies": { + "chardet": "^0.7.0", @@ -7079,8 +4909,6 @@ + }, + "node_modules/fast-glob": { + "version": "3.3.3", -+ "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.3.tgz", -+ "integrity": "sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==", + "license": "MIT", + "dependencies": { + "@nodelib/fs.stat": "^2.0.2", @@ -7095,8 +4923,6 @@ + }, + "node_modules/fast-glob/node_modules/glob-parent": { + "version": "5.1.2", -+ "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", -+ "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.1" @@ -7107,8 +4933,6 @@ + }, + "node_modules/fast-xml-parser": { + "version": "4.4.1", -+ "resolved": "https://registry.npmjs.org/fast-xml-parser/-/fast-xml-parser-4.4.1.tgz", -+ "integrity": "sha512-xkjOecfnKGkSsOwtZ5Pz7Us/T6mrbPQrq0nh+aCO5V9nk5NLWmasAHumTKjiPJPWANe+kAZ84Jc8ooJkzZ88Sw==", + "funding": [ + { + "type": "github", @@ -7129,8 +4953,6 @@ + }, + "node_modules/fastq": { + "version": "1.19.1", -+ "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.19.1.tgz", -+ "integrity": "sha512-GwLTyxkCXjXbxqIhTsMI2Nui8huMPtnxg7krajPJAjnEG/iiOS7i+zCtWGZR9G0NBKbXKh6X9m9UIsYX/N6vvQ==", + "license": "ISC", + "dependencies": { + "reusify": "^1.0.4" @@ -7138,8 +4960,6 @@ + }, + "node_modules/fetch-blob": { + "version": "3.2.0", -+ "resolved": "https://registry.npmjs.org/fetch-blob/-/fetch-blob-3.2.0.tgz", -+ "integrity": "sha512-7yAQpD2UMJzLi1Dqv7qFYnPbaPx7ZfFK6PiIxQ4PfkGPyNyl2Ugx+a/umUonmKqjhM4DnfbMvdX6otXq83soQQ==", + "funding": [ + { + "type": "github", @@ -7161,14 +4981,10 @@ + }, + "node_modules/fflate": { + "version": "0.8.2", -+ "resolved": "https://registry.npmjs.org/fflate/-/fflate-0.8.2.tgz", -+ "integrity": "sha512-cPJU47OaAoCbg0pBvzsgpTPhmhqI5eJjh/JIu8tPj5q+T7iLvW/JAYUqmE7KOB4R1ZyEhzBaIQpQpardBF5z8A==", + "license": "MIT" + }, + "node_modules/figures": { + "version": "3.2.0", -+ "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz", -+ "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==", + "license": "MIT", + "dependencies": { + "escape-string-regexp": "^1.0.5" @@ -7182,8 +4998,6 @@ + }, + "node_modules/fill-range": { + "version": "7.1.1", -+ "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", -+ "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", + "license": "MIT", + "dependencies": { + "to-regex-range": "^5.0.1" @@ -7194,8 +5008,6 @@ + }, + "node_modules/finalhandler": { + "version": "2.1.0", -+ "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-2.1.0.tgz", -+ "integrity": "sha512-/t88Ty3d5JWQbWYgaOGCCYfXRwV1+be02WqYYlL6h0lEiUAMPM8o8qKGO01YIkOHzka2up08wvgYD0mDiI+q3Q==", + "license": "MIT", + "dependencies": { + "debug": "^4.4.0", @@ -7211,14 +5023,10 @@ + }, + "node_modules/flatted": { + "version": "3.3.3", -+ "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.3.tgz", -+ "integrity": "sha512-GX+ysw4PBCz0PzosHDepZGANEuFCMLrnRTiEy9McGjmkCQYwRq4A/X786G/fjM/+OjsWSU1ZrY5qyARZmO/uwg==", + "license": "ISC" + }, + "node_modules/follow-redirects": { + "version": "1.15.9", -+ "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.9.tgz", -+ "integrity": "sha512-gew4GsXizNgdoRyqmyfMHyAmXsZDk6mHkSxZFCzW9gwlbtOW44CDtYavM+y+72qD/Vq2l550kMF52DT8fOLJqQ==", + "funding": [ + { + "type": "individual", @@ -7237,8 +5045,6 @@ + }, + "node_modules/for-each": { + "version": "0.3.5", -+ "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.5.tgz", -+ "integrity": "sha512-dKx12eRCVIzqCxFGplyFKJMPvLEWgmNtUrpTiJIR5u97zEhRG8ySrtboPHZXx7daLxQVrl643cTzbab2tkQjxg==", + "license": "MIT", + "dependencies": { + "is-callable": "^1.2.7" @@ -7252,8 +5058,6 @@ + }, + "node_modules/foreground-child": { + "version": "3.3.1", -+ "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.3.1.tgz", -+ "integrity": "sha512-gIXjKqtFuWEgzFRJA9WCQeSJLZDjgJUOMCMzxtvFq/37KojM1BFGufqsCy0r4qSQmYLsZYMeyRqzIWOMup03sw==", + "license": "ISC", + "dependencies": { + "cross-spawn": "^7.0.6", @@ -7268,8 +5072,6 @@ + }, + "node_modules/form-data": { + "version": "4.0.2", -+ "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.2.tgz", -+ "integrity": "sha512-hGfm/slu0ZabnNt4oaRZ6uREyfCj6P4fT/n6A1rGV+Z0VdGXjfOhVUpkn6qVQONHGIFwmveGXyDs75+nr6FM8w==", + "license": "MIT", + "dependencies": { + "asynckit": "^0.4.0", @@ -7283,14 +5085,10 @@ + }, + "node_modules/form-data-encoder": { + "version": "1.7.2", -+ "resolved": "https://registry.npmjs.org/form-data-encoder/-/form-data-encoder-1.7.2.tgz", -+ "integrity": "sha512-qfqtYan3rxrnCk1VYaA4H+Ms9xdpPqvLZa6xmMgFvhO32x7/3J/ExcTd6qpxM0vH2GdMI+poehyBZvqfMTto8A==", + "license": "MIT" + }, + "node_modules/formdata-node": { + "version": "4.4.1", -+ "resolved": "https://registry.npmjs.org/formdata-node/-/formdata-node-4.4.1.tgz", -+ "integrity": "sha512-0iirZp3uVDjVGt9p49aTaqjk84TrglENEDuqfdlZQ1roC9CWlPk6Avf8EEnZNcAqPonwkG35x4n3ww/1THYAeQ==", + "license": "MIT", + "dependencies": { + "node-domexception": "1.0.0", @@ -7302,8 +5100,6 @@ + }, + "node_modules/formdata-node/node_modules/web-streams-polyfill": { + "version": "4.0.0-beta.3", -+ "resolved": "https://registry.npmjs.org/web-streams-polyfill/-/web-streams-polyfill-4.0.0-beta.3.tgz", -+ "integrity": "sha512-QW95TCTaHmsYfHDybGMwO5IJIM93I/6vTRk+daHTWFPhwh+C8Cg7j7XyKrwrj8Ib6vYXe0ocYNrmzY4xAAN6ug==", + "license": "MIT", + "engines": { + "node": ">= 14" @@ -7311,8 +5107,6 @@ + }, + "node_modules/formdata-polyfill": { + "version": "4.0.10", -+ "resolved": "https://registry.npmjs.org/formdata-polyfill/-/formdata-polyfill-4.0.10.tgz", -+ "integrity": "sha512-buewHzMvYL29jdeQTVILecSaZKnt/RJWjoZCF5OW60Z67/GmSLBkOFM7qh1PI3zFNtJbaZL5eQu1vLfazOwj4g==", + "license": "MIT", + "dependencies": { + "fetch-blob": "^3.1.2" @@ -7323,8 +5117,6 @@ + }, + "node_modules/forwarded": { + "version": "0.2.0", -+ "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", -+ "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", + "license": "MIT", + "engines": { + "node": ">= 0.6" @@ -7332,8 +5124,6 @@ + }, + "node_modules/fraction.js": { + "version": "4.3.7", -+ "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.3.7.tgz", -+ "integrity": "sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==", + "license": "MIT", + "engines": { + "node": "*" @@ -7345,25 +5135,13 @@ + }, + "node_modules/fresh": { + "version": "2.0.0", -+ "resolved": "https://registry.npmjs.org/fresh/-/fresh-2.0.0.tgz", -+ "integrity": "sha512-Rx/WycZ60HOaqLKAi6cHRKKI7zxWbJ31MhntmtwMoaTeF7XFH9hhBp8vITaMidfljRQ6eYWCKkaTK+ykVJHP2A==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, -+ "node_modules/fs-monkey": { -+ "version": "1.0.6", -+ "resolved": "https://registry.npmjs.org/fs-monkey/-/fs-monkey-1.0.6.tgz", -+ "integrity": "sha512-b1FMfwetIKymC0eioW7mTywihSQE4oLzQn1dB6rZB5fx/3NpNEdAWeCSMB+60/AeT0TCXsxzAlcYVEFCTAksWg==", -+ "license": "Unlicense", -+ "optional": true -+ }, + "node_modules/fsevents": { + "version": "2.3.3", -+ "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", -+ "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", -+ "hasInstallScript": true, + "license": "MIT", + "optional": true, + "os": [ @@ -7375,8 +5153,6 @@ + }, + "node_modules/function-bind": { + "version": "1.1.2", -+ "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", -+ "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" @@ -7384,8 +5160,6 @@ + }, + "node_modules/functions-have-names": { + "version": "1.2.3", -+ "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", -+ "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" @@ -7393,8 +5167,6 @@ + }, + "node_modules/gaxios": { + "version": "6.7.1", -+ "resolved": "https://registry.npmjs.org/gaxios/-/gaxios-6.7.1.tgz", -+ "integrity": "sha512-LDODD4TMYx7XXdpwxAVRAIAuB0bzv0s+ywFonY46k126qzQHT9ygyoa9tncmOiQmmDrik65UYsEkv3lbfqQ3yQ==", + "license": "Apache-2.0", + "dependencies": { + "extend": "^3.0.2", @@ -7409,8 +5181,6 @@ + }, + "node_modules/gaxios/node_modules/node-fetch": { + "version": "2.7.0", -+ "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz", -+ "integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==", + "license": "MIT", + "dependencies": { + "whatwg-url": "^5.0.0" @@ -7429,8 +5199,6 @@ + }, + "node_modules/gcp-metadata": { + "version": "6.1.1", -+ "resolved": "https://registry.npmjs.org/gcp-metadata/-/gcp-metadata-6.1.1.tgz", -+ "integrity": "sha512-a4tiq7E0/5fTjxPAaH4jpjkSv/uCaU2p5KC6HVGrvl0cDjA8iBZv4vv1gyzlmK0ZUKqwpOyQMKzZQe3lTit77A==", + "license": "Apache-2.0", + "dependencies": { + "gaxios": "^6.1.1", @@ -7443,8 +5211,6 @@ + }, + "node_modules/get-caller-file": { + "version": "2.0.5", -+ "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", -+ "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "license": "ISC", + "engines": { + "node": "6.* || 8.* || >= 10.*" @@ -7452,8 +5218,6 @@ + }, + "node_modules/get-func-name": { + "version": "2.0.2", -+ "resolved": "https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.2.tgz", -+ "integrity": "sha512-8vXOvuE167CtIc3OyItco7N/dpRtBbYOsPsXCz7X/PMnlGjYjSGuZJgM1Y7mmew7BKf9BqvLX2tnOVy1BBUsxQ==", + "license": "MIT", + "engines": { + "node": "*" @@ -7461,8 +5225,6 @@ + }, + "node_modules/get-intrinsic": { + "version": "1.3.0", -+ "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.3.0.tgz", -+ "integrity": "sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==", + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.2", @@ -7485,8 +5247,6 @@ + }, + "node_modules/get-nonce": { + "version": "1.0.1", -+ "resolved": "https://registry.npmjs.org/get-nonce/-/get-nonce-1.0.1.tgz", -+ "integrity": "sha512-FJhYRoDaiatfEkUK8HKlicmu/3SGFD51q3itKDGoSTysQJBnfOcxU5GxnhE1E6soB76MbT0MBtnKJuXyAx+96Q==", + "license": "MIT", + "engines": { + "node": ">=6" @@ -7494,8 +5254,6 @@ + }, + "node_modules/get-proto": { + "version": "1.0.1", -+ "resolved": "https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz", -+ "integrity": "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==", + "license": "MIT", + "dependencies": { + "dunder-proto": "^1.0.1", @@ -7507,8 +5265,6 @@ + }, + "node_modules/get-stream": { + "version": "8.0.1", -+ "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-8.0.1.tgz", -+ "integrity": "sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==", + "license": "MIT", + "engines": { + "node": ">=16" @@ -7519,8 +5275,6 @@ + }, + "node_modules/glob": { + "version": "10.4.5", -+ "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.5.tgz", -+ "integrity": "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==", + "license": "ISC", + "dependencies": { + "foreground-child": "^3.1.0", @@ -7539,8 +5293,6 @@ + }, + "node_modules/glob-parent": { + "version": "6.0.2", -+ "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", -+ "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.3" @@ -7551,8 +5303,6 @@ + }, + "node_modules/goober": { + "version": "2.1.16", -+ "resolved": "https://registry.npmjs.org/goober/-/goober-2.1.16.tgz", -+ "integrity": "sha512-erjk19y1U33+XAMe1VTvIONHYoSqE4iS7BYUZfHaqeohLmnC0FdxEh7rQU+6MZ4OajItzjZFSRtVANrQwNq6/g==", + "license": "MIT", + "peerDependencies": { + "csstype": "^3.0.10" @@ -7560,8 +5310,6 @@ + }, + "node_modules/google-auth-library": { + "version": "9.15.1", -+ "resolved": "https://registry.npmjs.org/google-auth-library/-/google-auth-library-9.15.1.tgz", -+ "integrity": "sha512-Jb6Z0+nvECVz+2lzSMt9u98UsoakXxA2HGHMCxh+so3n90XgYWkq5dur19JAJV7ONiJY22yBTyJB1TSkvPq9Ng==", + "license": "Apache-2.0", + "dependencies": { + "base64-js": "^1.3.0", @@ -7577,8 +5325,6 @@ + }, + "node_modules/google-gax": { + "version": "4.4.1", -+ "resolved": "https://registry.npmjs.org/google-gax/-/google-gax-4.4.1.tgz", -+ "integrity": "sha512-Phyp9fMfA00J3sZbJxbbB4jC55b7DBjE3F6poyL3wKMEBVKA79q6BGuHcTiM28yOzVql0NDbRL8MLLh8Iwk9Dg==", + "license": "Apache-2.0", + "dependencies": { + "@grpc/grpc-js": "^1.10.9", @@ -7600,8 +5346,6 @@ + }, + "node_modules/google-gax/node_modules/node-fetch": { + "version": "2.7.0", -+ "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz", -+ "integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==", + "license": "MIT", + "dependencies": { + "whatwg-url": "^5.0.0" @@ -7620,8 +5364,6 @@ + }, + "node_modules/google-logging-utils": { + "version": "0.0.2", -+ "resolved": "https://registry.npmjs.org/google-logging-utils/-/google-logging-utils-0.0.2.tgz", -+ "integrity": "sha512-NEgUnEcBiP5HrPzufUkBzJOD/Sxsco3rLNo1F1TNf7ieU8ryUzBhqba8r756CjLX7rn3fHl6iLEwPYuqpoKgQQ==", + "license": "Apache-2.0", + "engines": { + "node": ">=14" @@ -7629,8 +5371,6 @@ + }, + "node_modules/gopd": { + "version": "1.2.0", -+ "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz", -+ "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==", + "license": "MIT", + "engines": { + "node": ">= 0.4" @@ -7641,8 +5381,6 @@ + }, + "node_modules/graphql": { + "version": "16.10.0", -+ "resolved": "https://registry.npmjs.org/graphql/-/graphql-16.10.0.tgz", -+ "integrity": "sha512-AjqGKbDGUFRKIRCP9tCKiIGHyriz2oHEbPIbEtcSLSs4YjReZOIPQQWek4+6hjw62H9QShXHyaGivGiYVLeYFQ==", + "license": "MIT", + "engines": { + "node": "^12.22.0 || ^14.16.0 || ^16.0.0 || >=17.0.0" @@ -7650,8 +5388,6 @@ + }, + "node_modules/gtoken": { + "version": "7.1.0", -+ "resolved": "https://registry.npmjs.org/gtoken/-/gtoken-7.1.0.tgz", -+ "integrity": "sha512-pCcEwRi+TKpMlxAQObHDQ56KawURgyAf6jtIY046fJ5tIv3zDe/LEIubckAO8fj6JnAxLdmWkUfNyulQ2iKdEw==", + "license": "MIT", + "dependencies": { + "gaxios": "^6.0.0", @@ -7663,8 +5399,6 @@ + }, + "node_modules/has-bigints": { + "version": "1.1.0", -+ "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.1.0.tgz", -+ "integrity": "sha512-R3pbpkcIqv2Pm3dUwgjclDRVmWpTJW2DcMzcIhEXEx1oh/CEMObMm3KLmRJOdvhM7o4uQBnwr8pzRK2sJWIqfg==", + "license": "MIT", + "engines": { + "node": ">= 0.4" @@ -7675,8 +5409,6 @@ + }, + "node_modules/has-flag": { + "version": "4.0.0", -+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", -+ "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "license": "MIT", + "engines": { + "node": ">=8" @@ -7684,8 +5416,6 @@ + }, + "node_modules/has-property-descriptors": { + "version": "1.0.2", -+ "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", -+ "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", + "license": "MIT", + "dependencies": { + "es-define-property": "^1.0.0" @@ -7696,8 +5426,6 @@ + }, + "node_modules/has-symbols": { + "version": "1.1.0", -+ "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz", -+ "integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==", + "license": "MIT", + "engines": { + "node": ">= 0.4" @@ -7708,8 +5436,6 @@ + }, + "node_modules/has-tostringtag": { + "version": "1.0.2", -+ "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz", -+ "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==", + "license": "MIT", + "dependencies": { + "has-symbols": "^1.0.3" @@ -7723,8 +5449,6 @@ + }, + "node_modules/hasown": { + "version": "2.0.2", -+ "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", -+ "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", + "license": "MIT", + "dependencies": { + "function-bind": "^1.1.2" @@ -7735,20 +5459,14 @@ + }, + "node_modules/headers-polyfill": { + "version": "3.2.5", -+ "resolved": "https://registry.npmjs.org/headers-polyfill/-/headers-polyfill-3.2.5.tgz", -+ "integrity": "sha512-tUCGvt191vNSQgttSyJoibR+VO+I6+iCHIUdhzEMJKE+EAL8BwCN7fUOZlY4ofOelNHsK+gEjxB/B+9N3EWtdA==", + "license": "MIT" + }, + "node_modules/headlessui": { + "version": "0.0.0", -+ "resolved": "https://registry.npmjs.org/headlessui/-/headlessui-0.0.0.tgz", -+ "integrity": "sha512-CHvacVPbl8AqIg2sBNKySUmumu7o15jSrCaTrIh9GW2Eq4y/krCN/vZFOsKCwlrhWQbO4267a8xvvP8bs+qREQ==", + "license": "MIT" + }, + "node_modules/html-encoding-sniffer": { + "version": "3.0.0", -+ "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-3.0.0.tgz", -+ "integrity": "sha512-oWv4T4yJ52iKrufjnyZPkrN0CH3QnrUqdB6In1g5Fe1mia8GmF36gnfNySxoZtxD5+NmYw1EElVXiBk93UeskA==", + "license": "MIT", + "dependencies": { + "whatwg-encoding": "^2.0.0" @@ -7759,8 +5477,6 @@ + }, + "node_modules/http-errors": { + "version": "2.0.0", -+ "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", -+ "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", + "license": "MIT", + "dependencies": { + "depd": "2.0.0", @@ -7775,8 +5491,6 @@ + }, + "node_modules/http-errors/node_modules/statuses": { + "version": "2.0.1", -+ "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", -+ "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", + "license": "MIT", + "engines": { + "node": ">= 0.8" @@ -7784,8 +5498,6 @@ + }, + "node_modules/http-proxy-agent": { + "version": "5.0.0", -+ "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-5.0.0.tgz", -+ "integrity": "sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==", + "license": "MIT", + "dependencies": { + "@tootallnate/once": "2", @@ -7798,8 +5510,6 @@ + }, + "node_modules/http-proxy-agent/node_modules/agent-base": { + "version": "6.0.2", -+ "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", -+ "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", + "license": "MIT", + "dependencies": { + "debug": "4" @@ -7810,8 +5520,6 @@ + }, + "node_modules/https-proxy-agent": { + "version": "7.0.6", -+ "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.6.tgz", -+ "integrity": "sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw==", + "license": "MIT", + "dependencies": { + "agent-base": "^7.1.2", @@ -7823,8 +5531,6 @@ + }, + "node_modules/human-signals": { + "version": "5.0.0", -+ "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-5.0.0.tgz", -+ "integrity": "sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==", + "license": "Apache-2.0", + "engines": { + "node": ">=16.17.0" @@ -7832,8 +5538,6 @@ + }, + "node_modules/humanize-ms": { + "version": "1.2.1", -+ "resolved": "https://registry.npmjs.org/humanize-ms/-/humanize-ms-1.2.1.tgz", -+ "integrity": "sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ==", + "license": "MIT", + "dependencies": { + "ms": "^2.0.0" @@ -7841,8 +5545,6 @@ + }, + "node_modules/iconv-lite": { + "version": "0.4.24", -+ "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", -+ "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "license": "MIT", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3" @@ -7853,8 +5555,6 @@ + }, + "node_modules/ieee754": { + "version": "1.2.1", -+ "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", -+ "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", + "funding": [ + { + "type": "github", @@ -7873,8 +5573,6 @@ + }, + "node_modules/indent-string": { + "version": "4.0.0", -+ "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", -+ "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", + "license": "MIT", + "engines": { + "node": ">=8" @@ -7882,14 +5580,10 @@ + }, + "node_modules/inherits": { + "version": "2.0.4", -+ "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", -+ "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "license": "ISC" + }, + "node_modules/inquirer": { + "version": "8.2.6", -+ "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-8.2.6.tgz", -+ "integrity": "sha512-M1WuAmb7pn9zdFRtQYk26ZBoY043Sse0wVDdk4Bppr+JOXyQYybdtvK+l9wUibhtjdjvtoiNy8tk+EgsYIUqKg==", + "license": "MIT", + "dependencies": { + "ansi-escapes": "^4.2.1", @@ -7914,8 +5608,6 @@ + }, + "node_modules/inquirer/node_modules/ansi-regex": { + "version": "5.0.1", -+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", -+ "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "license": "MIT", + "engines": { + "node": ">=8" @@ -7923,8 +5615,6 @@ + }, + "node_modules/inquirer/node_modules/ansi-styles": { + "version": "4.3.0", -+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", -+ "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" @@ -7938,8 +5628,6 @@ + }, + "node_modules/inquirer/node_modules/chalk": { + "version": "4.1.2", -+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", -+ "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", @@ -7954,14 +5642,10 @@ + }, + "node_modules/inquirer/node_modules/emoji-regex": { + "version": "8.0.0", -+ "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", -+ "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "license": "MIT" + }, + "node_modules/inquirer/node_modules/string-width": { + "version": "4.2.3", -+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", -+ "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", @@ -7974,8 +5658,6 @@ + }, + "node_modules/inquirer/node_modules/strip-ansi": { + "version": "6.0.1", -+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", -+ "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" @@ -7986,8 +5668,6 @@ + }, + "node_modules/inquirer/node_modules/wrap-ansi": { + "version": "6.2.0", -+ "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", -+ "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.0.0", @@ -8000,8 +5680,6 @@ + }, + "node_modules/internal-slot": { + "version": "1.1.0", -+ "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.1.0.tgz", -+ "integrity": "sha512-4gd7VpWNQNB4UKKCFFVcp1AVv+FMOgs9NKzjHKusc8jTMhd5eL1NqQqOpE0KzMds804/yHlglp3uxgluOqAPLw==", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", @@ -8014,8 +5692,6 @@ + }, + "node_modules/ipaddr.js": { + "version": "1.9.1", -+ "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", -+ "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", + "license": "MIT", + "engines": { + "node": ">= 0.10" @@ -8023,8 +5699,6 @@ + }, + "node_modules/is-arguments": { + "version": "1.2.0", -+ "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.2.0.tgz", -+ "integrity": "sha512-7bVbi0huj/wrIAOzb8U1aszg9kdi3KN/CyU19CTI7tAoZYEZoL9yCDXpbXN+uPsuWnP02cyug1gleqq+TU+YCA==", + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", @@ -8039,8 +5713,6 @@ + }, + "node_modules/is-array-buffer": { + "version": "3.0.5", -+ "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.5.tgz", -+ "integrity": "sha512-DDfANUiiG2wC1qawP66qlTugJeL5HyzMpfr8lLK+jMQirGzNod0B12cFB/9q838Ru27sBwfw78/rdoU7RERz6A==", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", @@ -8056,8 +5728,6 @@ + }, + "node_modules/is-bigint": { + "version": "1.1.0", -+ "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.1.0.tgz", -+ "integrity": "sha512-n4ZT37wG78iz03xPRKJrHTdZbe3IicyucEtdRsV5yglwc3GyUfbAfpSeD0FJ41NbUNSt5wbhqfp1fS+BgnvDFQ==", + "license": "MIT", + "dependencies": { + "has-bigints": "^1.0.2" @@ -8071,8 +5741,6 @@ + }, + "node_modules/is-binary-path": { + "version": "2.1.0", -+ "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", -+ "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "license": "MIT", + "dependencies": { + "binary-extensions": "^2.0.0" @@ -8083,8 +5751,6 @@ + }, + "node_modules/is-boolean-object": { + "version": "1.2.2", -+ "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.2.2.tgz", -+ "integrity": "sha512-wa56o2/ElJMYqjCjGkXri7it5FbebW5usLw/nPmCMs5DeZ7eziSYZhSmPRn0txqeW4LnAmQQU7FgqLpsEFKM4A==", + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", @@ -8099,8 +5765,6 @@ + }, + "node_modules/is-callable": { + "version": "1.2.7", -+ "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", -+ "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", + "license": "MIT", + "engines": { + "node": ">= 0.4" @@ -8111,8 +5775,6 @@ + }, + "node_modules/is-core-module": { + "version": "2.16.1", -+ "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.16.1.tgz", -+ "integrity": "sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==", + "license": "MIT", + "dependencies": { + "hasown": "^2.0.2" @@ -8126,8 +5788,6 @@ + }, + "node_modules/is-date-object": { + "version": "1.1.0", -+ "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.1.0.tgz", -+ "integrity": "sha512-PwwhEakHVKTdRNVOw+/Gyh0+MzlCl4R6qKvkhuvLtPMggI1WAHt9sOwZxQLSGpUaDnrdyDsomoRgNnCfKNSXXg==", + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", @@ -8142,8 +5802,6 @@ + }, + "node_modules/is-extglob": { + "version": "2.1.1", -+ "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", -+ "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" @@ -8151,8 +5809,6 @@ + }, + "node_modules/is-fullwidth-code-point": { + "version": "3.0.0", -+ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", -+ "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "license": "MIT", + "engines": { + "node": ">=8" @@ -8160,8 +5816,6 @@ + }, + "node_modules/is-generator-function": { + "version": "1.1.0", -+ "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.1.0.tgz", -+ "integrity": "sha512-nPUB5km40q9e8UfN/Zc24eLlzdSf9OfKByBw9CIdw4H1giPMeA0OIJvbchsCu4npfI2QcMVBsGEBHKZ7wLTWmQ==", + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", @@ -8178,8 +5832,6 @@ + }, + "node_modules/is-glob": { + "version": "4.0.3", -+ "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", -+ "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "license": "MIT", + "dependencies": { + "is-extglob": "^2.1.1" @@ -8190,8 +5842,6 @@ + }, + "node_modules/is-interactive": { + "version": "1.0.0", -+ "resolved": "https://registry.npmjs.org/is-interactive/-/is-interactive-1.0.0.tgz", -+ "integrity": "sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==", + "license": "MIT", + "engines": { + "node": ">=8" @@ -8199,8 +5849,6 @@ + }, + "node_modules/is-map": { + "version": "2.0.3", -+ "resolved": "https://registry.npmjs.org/is-map/-/is-map-2.0.3.tgz", -+ "integrity": "sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==", + "license": "MIT", + "engines": { + "node": ">= 0.4" @@ -8211,14 +5859,10 @@ + }, + "node_modules/is-node-process": { + "version": "1.2.0", -+ "resolved": "https://registry.npmjs.org/is-node-process/-/is-node-process-1.2.0.tgz", -+ "integrity": "sha512-Vg4o6/fqPxIjtxgUH5QLJhwZ7gW5diGCVlXpuUfELC62CuxM1iHcRe51f2W1FDy04Ai4KJkagKjx3XaqyfRKXw==", + "license": "MIT" + }, + "node_modules/is-number": { + "version": "7.0.0", -+ "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", -+ "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "license": "MIT", + "engines": { + "node": ">=0.12.0" @@ -8226,8 +5870,6 @@ + }, + "node_modules/is-number-object": { + "version": "1.1.1", -+ "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.1.1.tgz", -+ "integrity": "sha512-lZhclumE1G6VYD8VHe35wFaIif+CTy5SJIi5+3y4psDgWu4wPDoBhF8NxUOinEc7pHgiTsT6MaBb92rKhhD+Xw==", + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", @@ -8242,20 +5884,14 @@ + }, + "node_modules/is-potential-custom-element-name": { + "version": "1.0.1", -+ "resolved": "https://registry.npmjs.org/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz", -+ "integrity": "sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==", + "license": "MIT" + }, + "node_modules/is-promise": { + "version": "4.0.0", -+ "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-4.0.0.tgz", -+ "integrity": "sha512-hvpoI6korhJMnej285dSg6nu1+e6uxs7zG3BYAm5byqDsgJNWwxzM6z6iZiAgQR4TJ30JmBTOwqZUw3WlyH3AQ==", + "license": "MIT" + }, + "node_modules/is-regex": { + "version": "1.2.1", -+ "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.2.1.tgz", -+ "integrity": "sha512-MjYsKHO5O7mCsmRGxWcLWheFqN9DJ/2TmngvjKXihe6efViPqc274+Fx/4fYj/r03+ESvBdTXK0V6tA3rgez1g==", + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", @@ -8272,8 +5908,6 @@ + }, + "node_modules/is-set": { + "version": "2.0.3", -+ "resolved": "https://registry.npmjs.org/is-set/-/is-set-2.0.3.tgz", -+ "integrity": "sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg==", + "license": "MIT", + "engines": { + "node": ">= 0.4" @@ -8284,8 +5918,6 @@ + }, + "node_modules/is-shared-array-buffer": { + "version": "1.0.4", -+ "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.4.tgz", -+ "integrity": "sha512-ISWac8drv4ZGfwKl5slpHG9OwPNty4jOWPRIhBpxOoD+hqITiwuipOQ2bNthAzwA3B4fIjO4Nln74N0S9byq8A==", + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3" @@ -8299,8 +5931,6 @@ + }, + "node_modules/is-stream": { + "version": "2.0.1", -+ "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", -+ "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", + "license": "MIT", + "engines": { + "node": ">=8" @@ -8311,8 +5941,6 @@ + }, + "node_modules/is-string": { + "version": "1.1.1", -+ "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.1.1.tgz", -+ "integrity": "sha512-BtEeSsoaQjlSPBemMQIrY1MY0uM6vnS1g5fmufYOtnxLGUZM2178PKbhsk7Ffv58IX+ZtcvoGwccYsh0PglkAA==", + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", @@ -8327,8 +5955,6 @@ + }, + "node_modules/is-symbol": { + "version": "1.1.1", -+ "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.1.1.tgz", -+ "integrity": "sha512-9gGx6GTtCQM73BgmHQXfDmLtfjjTUDSyoxTCbp5WtoixAhfgsDirWIcVQ/IHpvI5Vgd5i/J5F7B9cN/WlVbC/w==", + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", @@ -8344,8 +5970,6 @@ + }, + "node_modules/is-typed-array": { + "version": "1.1.15", -+ "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.15.tgz", -+ "integrity": "sha512-p3EcsicXjit7SaskXHs1hA91QxgTw46Fv6EFKKGS5DRFLD8yKnohjF3hxoju94b/OcMZoQukzpPpBE9uLVKzgQ==", + "license": "MIT", + "dependencies": { + "which-typed-array": "^1.1.16" @@ -8359,8 +5983,6 @@ + }, + "node_modules/is-unicode-supported": { + "version": "0.1.0", -+ "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", -+ "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==", + "license": "MIT", + "engines": { + "node": ">=10" @@ -8371,8 +5993,6 @@ + }, + "node_modules/is-weakmap": { + "version": "2.0.2", -+ "resolved": "https://registry.npmjs.org/is-weakmap/-/is-weakmap-2.0.2.tgz", -+ "integrity": "sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w==", + "license": "MIT", + "engines": { + "node": ">= 0.4" @@ -8383,8 +6003,6 @@ + }, + "node_modules/is-weakset": { + "version": "2.0.4", -+ "resolved": "https://registry.npmjs.org/is-weakset/-/is-weakset-2.0.4.tgz", -+ "integrity": "sha512-mfcwb6IzQyOKTs84CQMrOwW4gQcaTOAWJ0zzJCl2WSPDrWk/OzDaImWFH3djXhb24g4eudZfLRozAvPGw4d9hQ==", + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", @@ -8399,8 +6017,6 @@ + }, + "node_modules/is-what": { + "version": "4.1.16", -+ "resolved": "https://registry.npmjs.org/is-what/-/is-what-4.1.16.tgz", -+ "integrity": "sha512-ZhMwEosbFJkA0YhFnNDgTM4ZxDRsS6HqTo7qsZM08fehyRYIYa0yHu5R6mgo1n/8MgaPBXiPimPD77baVFYg+A==", + "license": "MIT", + "engines": { + "node": ">=12.13" @@ -8411,20 +6027,14 @@ + }, + "node_modules/isarray": { + "version": "2.0.5", -+ "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", -+ "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", + "license": "MIT" + }, + "node_modules/isexe": { + "version": "2.0.0", -+ "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", -+ "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "license": "ISC" + }, + "node_modules/jackspeak": { + "version": "3.4.3", -+ "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.4.3.tgz", -+ "integrity": "sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==", + "license": "BlueOak-1.0.0", + "dependencies": { + "@isaacs/cliui": "^8.0.2" @@ -8438,8 +6048,6 @@ + }, + "node_modules/jiti": { + "version": "1.21.7", -+ "resolved": "https://registry.npmjs.org/jiti/-/jiti-1.21.7.tgz", -+ "integrity": "sha512-/imKNG4EbWNrVjoNC/1H5/9GFy+tqjGBHCaSsN+P2RnPqjsLmv6UD3Ej+Kj8nBWaRAwyk7kK5ZUc+OEatnTR3A==", + "license": "MIT", + "bin": { + "jiti": "bin/jiti.js" @@ -8447,8 +6055,6 @@ + }, + "node_modules/js-levenshtein": { + "version": "1.1.6", -+ "resolved": "https://registry.npmjs.org/js-levenshtein/-/js-levenshtein-1.1.6.tgz", -+ "integrity": "sha512-X2BB11YZtrRqY4EnQcLX5Rh373zbK4alC1FW7D7MBhL2gtcC17cTnr6DmfHZeS0s2rTHjUTMMHfG7gO8SSdw+g==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" @@ -8456,14 +6062,10 @@ + }, + "node_modules/js-tokens": { + "version": "4.0.0", -+ "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", -+ "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "license": "MIT" + }, + "node_modules/jsdom": { + "version": "21.1.2", -+ "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-21.1.2.tgz", -+ "integrity": "sha512-sCpFmK2jv+1sjff4u7fzft+pUh2KSUbUrEHYHyfSIbGTIcmnjyp83qg6qLwdJ/I3LpTXx33ACxeRL7Lsyc6lGQ==", + "license": "MIT", + "dependencies": { + "abab": "^2.0.6", @@ -8507,8 +6109,6 @@ + }, + "node_modules/jsdom/node_modules/agent-base": { + "version": "6.0.2", -+ "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", -+ "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", + "license": "MIT", + "dependencies": { + "debug": "4" @@ -8519,8 +6119,6 @@ + }, + "node_modules/jsdom/node_modules/https-proxy-agent": { + "version": "5.0.1", -+ "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", -+ "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", + "license": "MIT", + "dependencies": { + "agent-base": "6", @@ -8532,8 +6130,6 @@ + }, + "node_modules/jsdom/node_modules/tr46": { + "version": "4.1.1", -+ "resolved": "https://registry.npmjs.org/tr46/-/tr46-4.1.1.tgz", -+ "integrity": "sha512-2lv/66T7e5yNyhAAC4NaKe5nVavzuGJQVVtRYLyQ2OI8tsJ61PMLlelehb0wi2Hx6+hT/OJUWZcw8MjlSRnxvw==", + "license": "MIT", + "dependencies": { + "punycode": "^2.3.0" @@ -8544,8 +6140,6 @@ + }, + "node_modules/jsdom/node_modules/webidl-conversions": { + "version": "7.0.0", -+ "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-7.0.0.tgz", -+ "integrity": "sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==", + "license": "BSD-2-Clause", + "engines": { + "node": ">=12" @@ -8553,8 +6147,6 @@ + }, + "node_modules/jsdom/node_modules/whatwg-url": { + "version": "12.0.1", -+ "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-12.0.1.tgz", -+ "integrity": "sha512-Ed/LrqB8EPlGxjS+TrsXcpUond1mhccS3pchLhzSgPCnTimUCKj3IZE75pAs5m6heB2U2TMerKFUXheyHY+VDQ==", + "license": "MIT", + "dependencies": { + "tr46": "^4.1.1", @@ -8566,8 +6158,6 @@ + }, + "node_modules/json-bigint": { + "version": "1.0.0", -+ "resolved": "https://registry.npmjs.org/json-bigint/-/json-bigint-1.0.0.tgz", -+ "integrity": "sha512-SiPv/8VpZuWbvLSMtTDU8hEfrZWg/mH/nV/b4o0CYbSxu1UIQPLdwKOCIyLQX+VIPO5vrLX3i8qtqFyhdPSUSQ==", + "license": "MIT", + "dependencies": { + "bignumber.js": "^9.0.0" @@ -8575,8 +6165,6 @@ + }, + "node_modules/jwa": { + "version": "2.0.0", -+ "resolved": "https://registry.npmjs.org/jwa/-/jwa-2.0.0.tgz", -+ "integrity": "sha512-jrZ2Qx916EA+fq9cEAeCROWPTfCwi1IVHqT2tapuqLEVVDKFDENFw1oL+MwrTvH6msKxsd1YTDVw6uKEcsrLEA==", + "license": "MIT", + "dependencies": { + "buffer-equal-constant-time": "1.0.1", @@ -8586,8 +6174,6 @@ + }, + "node_modules/jws": { + "version": "4.0.0", -+ "resolved": "https://registry.npmjs.org/jws/-/jws-4.0.0.tgz", -+ "integrity": "sha512-KDncfTmOZoOMTFG4mBlG0qUIOlc03fmzH+ru6RgYVZhPkyiy/92Owlt/8UEN+a4TXR1FQetfIpJE8ApdvdVxTg==", + "license": "MIT", + "dependencies": { + "jwa": "^2.0.0", @@ -8596,8 +6182,6 @@ + }, + "node_modules/lilconfig": { + "version": "3.1.3", -+ "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-3.1.3.tgz", -+ "integrity": "sha512-/vlFKAoH5Cgt3Ie+JLhRbwOsCQePABiU3tJ1egGvyQ+33R/vcwM2Zl2QR/LzjsBeItPt3oSVXapn+m4nQDvpzw==", + "license": "MIT", + "engines": { + "node": ">=14" @@ -8608,14 +6192,10 @@ + }, + "node_modules/lines-and-columns": { + "version": "1.2.4", -+ "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", -+ "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", + "license": "MIT" + }, + "node_modules/local-pkg": { + "version": "0.5.1", -+ "resolved": "https://registry.npmjs.org/local-pkg/-/local-pkg-0.5.1.tgz", -+ "integrity": "sha512-9rrA30MRRP3gBD3HTGnC6cDFpaE1kVDWxWgqWJUN0RvDNAo+Nz/9GxB+nHOH0ifbVFy0hSA1V6vFDvnx54lTEQ==", + "license": "MIT", + "dependencies": { + "mlly": "^1.7.3", @@ -8630,44 +6210,30 @@ + }, + "node_modules/lodash": { + "version": "4.17.21", -+ "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", -+ "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", + "license": "MIT" + }, + "node_modules/lodash.camelcase": { + "version": "4.3.0", -+ "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz", -+ "integrity": "sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==", + "license": "MIT" + }, + "node_modules/lodash.castarray": { + "version": "4.4.0", -+ "resolved": "https://registry.npmjs.org/lodash.castarray/-/lodash.castarray-4.4.0.tgz", -+ "integrity": "sha512-aVx8ztPv7/2ULbArGJ2Y42bG1mEQ5mGjpdvrbJcJFU3TbYybe+QlLS4pst9zV52ymy2in1KpFPiZnAOATxD4+Q==", + "license": "MIT" + }, + "node_modules/lodash.debounce": { + "version": "4.0.8", -+ "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", -+ "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==", + "license": "MIT" + }, + "node_modules/lodash.isplainobject": { + "version": "4.0.6", -+ "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz", -+ "integrity": "sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==", + "license": "MIT" + }, + "node_modules/lodash.merge": { + "version": "4.6.2", -+ "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", -+ "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", + "license": "MIT" + }, + "node_modules/log-symbols": { + "version": "4.1.0", -+ "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", -+ "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==", + "license": "MIT", + "dependencies": { + "chalk": "^4.1.0", @@ -8682,8 +6248,6 @@ + }, + "node_modules/log-symbols/node_modules/ansi-styles": { + "version": "4.3.0", -+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", -+ "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" @@ -8697,8 +6261,6 @@ + }, + "node_modules/log-symbols/node_modules/chalk": { + "version": "4.1.2", -+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", -+ "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", @@ -8713,14 +6275,10 @@ + }, + "node_modules/long": { + "version": "5.3.1", -+ "resolved": "https://registry.npmjs.org/long/-/long-5.3.1.tgz", -+ "integrity": "sha512-ka87Jz3gcx/I7Hal94xaN2tZEOPoUOEVftkQqZx2EeQRN7LGdfLlI3FvZ+7WDplm+vK2Urx9ULrvSowtdCieng==", + "license": "Apache-2.0" + }, + "node_modules/loose-envify": { + "version": "1.4.0", -+ "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", -+ "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", + "license": "MIT", + "dependencies": { + "js-tokens": "^3.0.0 || ^4.0.0" @@ -8731,8 +6289,6 @@ + }, + "node_modules/loupe": { + "version": "2.3.7", -+ "resolved": "https://registry.npmjs.org/loupe/-/loupe-2.3.7.tgz", -+ "integrity": "sha512-zSMINGVYkdpYSOBmLi0D1Uo7JU9nVdQKrHxC8eYlV+9YKK9WePqAlL7lSlorG/U2Fw1w0hTBmaa/jrQ3UbPHtA==", + "license": "MIT", + "dependencies": { + "get-func-name": "^2.0.1" @@ -8740,14 +6296,10 @@ + }, + "node_modules/lru-cache": { + "version": "10.4.3", -+ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", -+ "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", + "license": "ISC" + }, + "node_modules/lucia": { + "version": "3.2.2", -+ "resolved": "https://registry.npmjs.org/lucia/-/lucia-3.2.2.tgz", -+ "integrity": "sha512-P1FlFBGCMPMXu+EGdVD9W4Mjm0DqsusmKgO7Xc33mI5X1bklmsQb0hfzPhXomQr9waWIBDsiOjvr1e6BTaUqpA==", + "license": "MIT", + "dependencies": { + "@oslojs/crypto": "^1.0.1", @@ -8756,8 +6308,6 @@ + }, + "node_modules/lucide-react": { + "version": "0.525.0", -+ "resolved": "https://registry.npmjs.org/lucide-react/-/lucide-react-0.525.0.tgz", -+ "integrity": "sha512-Tm1txJ2OkymCGkvwoHt33Y2JpN5xucVq1slHcgE6Lk0WjDfjgKWor5CdVER8U6DvcfMwh4M8XxmpTiyzfmfDYQ==", + "license": "ISC", + "peerDependencies": { + "react": "^16.5.1 || ^17.0.0 || ^18.0.0 || ^19.0.0" @@ -8765,8 +6315,6 @@ + }, + "node_modules/luxon": { + "version": "3.5.0", -+ "resolved": "https://registry.npmjs.org/luxon/-/luxon-3.5.0.tgz", -+ "integrity": "sha512-rh+Zjr6DNfUYR3bPwJEnuwDdqMbxZW7LOQfUN4B54+Cl+0o5zaU9RJ6bcidfDtC1cWCZXQ+nvX8bf6bAji37QQ==", + "license": "MIT", + "engines": { + "node": ">=12" @@ -8774,8 +6322,6 @@ + }, + "node_modules/lz-string": { + "version": "1.5.0", -+ "resolved": "https://registry.npmjs.org/lz-string/-/lz-string-1.5.0.tgz", -+ "integrity": "sha512-h5bgJWpxJNswbU7qCrV0tIKQCaS3blPDrqKWx+QxzuzL1zGUzij9XCWLrSLsJPu5t+eWA/ycetzYAO5IOMcWAQ==", + "license": "MIT", + "bin": { + "lz-string": "bin/bin.js" @@ -8783,8 +6329,6 @@ + }, + "node_modules/magic-string": { + "version": "0.30.17", -+ "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.17.tgz", -+ "integrity": "sha512-sNPKHvyjVf7gyjwS4xGTaW/mCnF8wnjtifKBEhxfZ7E/S8tQ0rssrwGNn6q8JH/ohItJfSQp9mBtQYuTlH5QnA==", + "license": "MIT", + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.5.0" @@ -8792,8 +6336,6 @@ + }, + "node_modules/math-intrinsics": { + "version": "1.1.0", -+ "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz", -+ "integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==", + "license": "MIT", + "engines": { + "node": ">= 0.4" @@ -8801,40 +6343,13 @@ + }, + "node_modules/media-typer": { + "version": "1.1.0", -+ "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-1.1.0.tgz", -+ "integrity": "sha512-aisnrDP4GNe06UcKFnV5bfMNPBUw4jsLGaWwWfnH3v02GnBuXX2MCVn5RbrWo0j3pczUilYblq7fQ7Nw2t5XKw==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, -+ "node_modules/memfs": { -+ "version": "3.5.3", -+ "resolved": "https://registry.npmjs.org/memfs/-/memfs-3.5.3.tgz", -+ "integrity": "sha512-UERzLsxzllchadvbPs5aolHh65ISpKpM+ccLbOJ8/vvpBKmAWf+la7dXFy7Mr0ySHbdHrFv5kGFCUHHe6GFEmw==", -+ "license": "Unlicense", -+ "optional": true, -+ "dependencies": { -+ "fs-monkey": "^1.0.4" -+ }, -+ "engines": { -+ "node": ">= 4.0.0" -+ } -+ }, -+ "node_modules/memfs-browser": { -+ "version": "3.5.10302", -+ "resolved": "https://registry.npmjs.org/memfs-browser/-/memfs-browser-3.5.10302.tgz", -+ "integrity": "sha512-JJTc/nh3ig05O0gBBGZjTCPOyydaTxNF0uHYBrcc1gHNnO+KIHIvo0Y1FKCJsaei6FCl8C6xfQomXqu+cuzkIw==", -+ "license": "Unlicense", -+ "optional": true, -+ "dependencies": { -+ "memfs": "3.5.3" -+ } -+ }, + "node_modules/merge-descriptors": { + "version": "2.0.0", -+ "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-2.0.0.tgz", -+ "integrity": "sha512-Snk314V5ayFLhp3fkUREub6WtjBfPdCPY1Ln8/8munuLuiYhsABgBVWsozAG+MWMbVEvcdcpbi9R7ww22l9Q3g==", + "license": "MIT", + "engines": { + "node": ">=18" @@ -8845,14 +6360,10 @@ + }, + "node_modules/merge-stream": { + "version": "2.0.0", -+ "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", -+ "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", + "license": "MIT" + }, + "node_modules/merge2": { + "version": "1.4.1", -+ "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", -+ "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "license": "MIT", + "engines": { + "node": ">= 8" @@ -8860,8 +6371,6 @@ + }, + "node_modules/micromatch": { + "version": "4.0.8", -+ "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", -+ "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", + "license": "MIT", + "dependencies": { + "braces": "^3.0.3", @@ -8873,8 +6382,6 @@ + }, + "node_modules/mime-db": { + "version": "1.52.0", -+ "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", -+ "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "license": "MIT", + "engines": { + "node": ">= 0.6" @@ -8882,8 +6389,6 @@ + }, + "node_modules/mime-types": { + "version": "2.1.35", -+ "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", -+ "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "license": "MIT", + "dependencies": { + "mime-db": "1.52.0" @@ -8894,8 +6399,6 @@ + }, + "node_modules/mimic-fn": { + "version": "2.1.0", -+ "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", -+ "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "license": "MIT", + "engines": { + "node": ">=6" @@ -8903,8 +6406,6 @@ + }, + "node_modules/min-indent": { + "version": "1.0.1", -+ "resolved": "https://registry.npmjs.org/min-indent/-/min-indent-1.0.1.tgz", -+ "integrity": "sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==", + "license": "MIT", + "engines": { + "node": ">=4" @@ -8912,8 +6413,6 @@ + }, + "node_modules/mini-svg-data-uri": { + "version": "1.4.4", -+ "resolved": "https://registry.npmjs.org/mini-svg-data-uri/-/mini-svg-data-uri-1.4.4.tgz", -+ "integrity": "sha512-r9deDe9p5FJUPZAk3A59wGH7Ii9YrjjWw0jmw/liSbHl2CHiyXj6FcDXDu2K3TjVAXqiJdaw3xxwlZZr9E6nHg==", + "license": "MIT", + "bin": { + "mini-svg-data-uri": "cli.js" @@ -8921,8 +6420,6 @@ + }, + "node_modules/minimatch": { + "version": "9.0.5", -+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", -+ "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.1" @@ -8936,8 +6433,6 @@ + }, + "node_modules/minipass": { + "version": "7.1.2", -+ "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", -+ "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", + "license": "ISC", + "engines": { + "node": ">=16 || 14 >=14.17" @@ -8945,14 +6440,10 @@ + }, + "node_modules/mitt": { + "version": "3.0.0", -+ "resolved": "https://registry.npmjs.org/mitt/-/mitt-3.0.0.tgz", -+ "integrity": "sha512-7dX2/10ITVyqh4aOSVI9gdape+t9l2/8QxHrFmUXu4EEUpdlxl6RudZUPZoc+zuY2hk1j7XxVroIVIan/pD/SQ==", + "license": "MIT" + }, + "node_modules/mlly": { + "version": "1.7.4", -+ "resolved": "https://registry.npmjs.org/mlly/-/mlly-1.7.4.tgz", -+ "integrity": "sha512-qmdSIPC4bDJXgZTCR7XosJiNKySV7O215tsPtDN9iEO/7q/76b/ijtgRu/+epFXSJhijtTCCGp3DWS549P3xKw==", + "license": "MIT", + "dependencies": { + "acorn": "^8.14.0", @@ -8963,14 +6454,10 @@ + }, + "node_modules/mlly/node_modules/pathe": { + "version": "2.0.3", -+ "resolved": "https://registry.npmjs.org/pathe/-/pathe-2.0.3.tgz", -+ "integrity": "sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==", + "license": "MIT" + }, + "node_modules/mrmime": { + "version": "2.0.1", -+ "resolved": "https://registry.npmjs.org/mrmime/-/mrmime-2.0.1.tgz", -+ "integrity": "sha512-Y3wQdFg2Va6etvQ5I82yUhGdsKrcYox6p7FfL1LbK2J4V01F9TGlepTIhnK24t7koZibmg82KGglhA1XK5IsLQ==", + "license": "MIT", + "engines": { + "node": ">=10" @@ -8978,14 +6465,10 @@ + }, + "node_modules/ms": { + "version": "2.1.3", -+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", -+ "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "license": "MIT" + }, + "node_modules/msw": { + "version": "1.3.5", -+ "resolved": "https://registry.npmjs.org/msw/-/msw-1.3.5.tgz", -+ "integrity": "sha512-nG3fpmBXxFbKSIdk6miPuL3KjU6WMxgoW4tG1YgnP1M+TRG3Qn7b7R0euKAHq4vpwARHb18ZyfZljSxsTnMX2w==", + "hasInstallScript": true, + "license": "MIT", + "dependencies": { @@ -9030,8 +6513,6 @@ + }, + "node_modules/msw/node_modules/ansi-styles": { + "version": "4.3.0", -+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", -+ "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" @@ -9045,8 +6526,6 @@ + }, + "node_modules/msw/node_modules/chalk": { + "version": "4.1.2", -+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", -+ "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", @@ -9061,8 +6540,6 @@ + }, + "node_modules/msw/node_modules/cookie": { + "version": "0.4.2", -+ "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.2.tgz", -+ "integrity": "sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA==", + "license": "MIT", + "engines": { + "node": ">= 0.6" @@ -9070,8 +6547,6 @@ + }, + "node_modules/msw/node_modules/node-fetch": { + "version": "2.7.0", -+ "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz", -+ "integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==", + "license": "MIT", + "dependencies": { + "whatwg-url": "^5.0.0" @@ -9090,20 +6565,14 @@ + }, + "node_modules/msw/node_modules/path-to-regexp": { + "version": "6.3.0", -+ "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-6.3.0.tgz", -+ "integrity": "sha512-Yhpw4T9C6hPpgPeA28us07OJeqZ5EzQTkbfwuhsUg0c237RomFoETJgmp2sa3F/41gfLE6G5cqcYwznmeEeOlQ==", + "license": "MIT" + }, + "node_modules/mute-stream": { + "version": "0.0.8", -+ "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz", -+ "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==", + "license": "ISC" + }, + "node_modules/mz": { + "version": "2.7.0", -+ "resolved": "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz", -+ "integrity": "sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==", + "license": "MIT", + "dependencies": { + "any-promise": "^1.0.0", @@ -9113,8 +6582,6 @@ + }, + "node_modules/nanoid": { + "version": "3.3.11", -+ "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz", -+ "integrity": "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==", + "funding": [ + { + "type": "github", @@ -9131,8 +6598,6 @@ + }, + "node_modules/negotiator": { + "version": "1.0.0", -+ "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-1.0.0.tgz", -+ "integrity": "sha512-8Ofs/AUQh8MaEcrlq5xOX0CQ9ypTF5dl78mjlMNfOK08fzpgTHQRQPBxcPlEtIw0yRpws+Zo/3r+5WRby7u3Gg==", + "license": "MIT", + "engines": { + "node": ">= 0.6" @@ -9140,8 +6605,6 @@ + }, + "node_modules/node-domexception": { + "version": "1.0.0", -+ "resolved": "https://registry.npmjs.org/node-domexception/-/node-domexception-1.0.0.tgz", -+ "integrity": "sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==", + "funding": [ + { + "type": "github", @@ -9159,8 +6622,6 @@ + }, + "node_modules/node-fetch": { + "version": "3.3.0", -+ "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-3.3.0.tgz", -+ "integrity": "sha512-BKwRP/O0UvoMKp7GNdwPlObhYGB5DQqwhEDQlNKuoqwVYSxkSZCSbHjnFFmUEtwSKRPU4kNK8PbDYYitwaE3QA==", + "license": "MIT", + "dependencies": { + "data-uri-to-buffer": "^4.0.0", @@ -9177,14 +6638,10 @@ + }, + "node_modules/node-releases": { + "version": "2.0.19", -+ "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.19.tgz", -+ "integrity": "sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw==", + "license": "MIT" + }, + "node_modules/normalize-path": { + "version": "3.0.0", -+ "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", -+ "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" @@ -9192,8 +6649,6 @@ + }, + "node_modules/normalize-range": { + "version": "0.1.2", -+ "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz", -+ "integrity": "sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" @@ -9201,8 +6656,6 @@ + }, + "node_modules/npm-run-path": { + "version": "5.3.0", -+ "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-5.3.0.tgz", -+ "integrity": "sha512-ppwTtiJZq0O/ai0z7yfudtBpWIoxM8yE6nHi1X47eFR2EWORqfbu6CnPlNsjeN683eT0qG6H/Pyf9fCcvjnnnQ==", + "license": "MIT", + "dependencies": { + "path-key": "^4.0.0" @@ -9216,8 +6669,6 @@ + }, + "node_modules/npm-run-path/node_modules/path-key": { + "version": "4.0.0", -+ "resolved": "https://registry.npmjs.org/path-key/-/path-key-4.0.0.tgz", -+ "integrity": "sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==", + "license": "MIT", + "engines": { + "node": ">=12" @@ -9228,14 +6679,10 @@ + }, + "node_modules/nwsapi": { + "version": "2.2.19", -+ "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.19.tgz", -+ "integrity": "sha512-94bcyI3RsqiZufXjkr3ltkI86iEl+I7uiHVDtcq9wJUTwYQJ5odHDeSzkkrRzi80jJ8MaeZgqKjH1bAWAFw9bA==", + "license": "MIT" + }, + "node_modules/object-assign": { + "version": "4.1.1", -+ "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", -+ "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" @@ -9243,8 +6690,6 @@ + }, + "node_modules/object-hash": { + "version": "3.0.0", -+ "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-3.0.0.tgz", -+ "integrity": "sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==", + "license": "MIT", + "engines": { + "node": ">= 6" @@ -9252,8 +6697,6 @@ + }, + "node_modules/object-inspect": { + "version": "1.13.4", -+ "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.4.tgz", -+ "integrity": "sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==", + "license": "MIT", + "engines": { + "node": ">= 0.4" @@ -9264,8 +6707,6 @@ + }, + "node_modules/object-is": { + "version": "1.1.6", -+ "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.1.6.tgz", -+ "integrity": "sha512-F8cZ+KfGlSGi09lJT7/Nd6KJZ9ygtvYC0/UYYLI9nmQKLMnydpB9yvbv9K1uSkEu7FU9vYPmVwLg328tX+ot3Q==", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", @@ -9280,8 +6721,6 @@ + }, + "node_modules/object-keys": { + "version": "1.1.1", -+ "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", -+ "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "license": "MIT", + "engines": { + "node": ">= 0.4" @@ -9289,8 +6728,6 @@ + }, + "node_modules/object.assign": { + "version": "4.1.7", -+ "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.7.tgz", -+ "integrity": "sha512-nK28WOo+QIjBkDduTINE4JkF/UJJKyf2EJxvJKfblDpyg0Q+pkOHNTL0Qwy6NP6FhE/EnzV73BxxqcJaXY9anw==", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", @@ -9309,8 +6746,6 @@ + }, + "node_modules/on-finished": { + "version": "2.4.1", -+ "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", -+ "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", + "license": "MIT", + "dependencies": { + "ee-first": "1.1.1" @@ -9321,8 +6756,6 @@ + }, + "node_modules/once": { + "version": "1.4.0", -+ "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", -+ "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "license": "ISC", + "dependencies": { + "wrappy": "1" @@ -9330,8 +6763,6 @@ + }, + "node_modules/onetime": { + "version": "5.1.2", -+ "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", -+ "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "license": "MIT", + "dependencies": { + "mimic-fn": "^2.1.0" @@ -9345,8 +6776,6 @@ + }, + "node_modules/openai": { + "version": "4.88.0", -+ "resolved": "https://registry.npmjs.org/openai/-/openai-4.88.0.tgz", -+ "integrity": "sha512-Ll2ZJCdX/56WcCF/wLtAFou+zWRyLeneoXy+qya5T5/wm5LkIr6heJfSn53c5ujXWPB+24cgumiOetbFqcppFA==", + "license": "Apache-2.0", + "dependencies": { + "@types/node": "^18.11.18", @@ -9375,8 +6804,6 @@ + }, + "node_modules/openai/node_modules/@types/node": { + "version": "18.19.80", -+ "resolved": "https://registry.npmjs.org/@types/node/-/node-18.19.80.tgz", -+ "integrity": "sha512-kEWeMwMeIvxYkeg1gTc01awpwLbfMRZXdIhwRcakd/KlK53jmRC26LqcbIt7fnAQTu5GzlnWmzA3H6+l1u6xxQ==", + "license": "MIT", + "dependencies": { + "undici-types": "~5.26.4" @@ -9384,8 +6811,6 @@ + }, + "node_modules/openai/node_modules/node-fetch": { + "version": "2.7.0", -+ "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz", -+ "integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==", + "license": "MIT", + "dependencies": { + "whatwg-url": "^5.0.0" @@ -9404,14 +6829,10 @@ + }, + "node_modules/openai/node_modules/undici-types": { + "version": "5.26.5", -+ "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz", -+ "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==", + "license": "MIT" + }, + "node_modules/ora": { + "version": "5.4.1", -+ "resolved": "https://registry.npmjs.org/ora/-/ora-5.4.1.tgz", -+ "integrity": "sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==", + "license": "MIT", + "dependencies": { + "bl": "^4.1.0", @@ -9433,8 +6854,6 @@ + }, + "node_modules/ora/node_modules/ansi-regex": { + "version": "5.0.1", -+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", -+ "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "license": "MIT", + "engines": { + "node": ">=8" @@ -9442,8 +6861,6 @@ + }, + "node_modules/ora/node_modules/ansi-styles": { + "version": "4.3.0", -+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", -+ "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" @@ -9457,8 +6874,6 @@ + }, + "node_modules/ora/node_modules/chalk": { + "version": "4.1.2", -+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", -+ "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", @@ -9473,8 +6888,6 @@ + }, + "node_modules/ora/node_modules/strip-ansi": { + "version": "6.0.1", -+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", -+ "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" @@ -9485,8 +6898,6 @@ + }, + "node_modules/os-tmpdir": { + "version": "1.0.2", -+ "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", -+ "integrity": "sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" @@ -9494,39 +6905,14 @@ + }, + "node_modules/oslo": { + "version": "1.2.1", -+ "resolved": "https://registry.npmjs.org/oslo/-/oslo-1.2.1.tgz", -+ "integrity": "sha512-HfIhB5ruTdQv0XX2XlncWQiJ5SIHZ7NHZhVyHth0CSZ/xzge00etRyYy/3wp/Dsu+PkxMC+6+B2lS/GcKoewkA==", -+ "deprecated": "Package is no longer supported. Please see https://oslojs.dev for the successor project.", + "license": "MIT", + "dependencies": { + "@node-rs/argon2": "1.7.0", + "@node-rs/bcrypt": "1.9.0" + } + }, -+ "node_modules/oslo/node_modules/@emnapi/core": { -+ "version": "0.45.0", -+ "resolved": "https://registry.npmjs.org/@emnapi/core/-/core-0.45.0.tgz", -+ "integrity": "sha512-DPWjcUDQkCeEM4VnljEOEcXdAD7pp8zSZsgOujk/LGIwCXWbXJngin+MO4zbH429lzeC3WbYLGjE2MaUOwzpyw==", -+ "license": "MIT", -+ "optional": true, -+ "dependencies": { -+ "tslib": "^2.4.0" -+ } -+ }, -+ "node_modules/oslo/node_modules/@emnapi/runtime": { -+ "version": "0.45.0", -+ "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-0.45.0.tgz", -+ "integrity": "sha512-Txumi3td7J4A/xTTwlssKieHKTGl3j4A1tglBx72auZ49YK7ePY6XZricgIg9mnZT4xPfA+UPCUdnhRuEFDL+w==", -+ "license": "MIT", -+ "optional": true, -+ "dependencies": { -+ "tslib": "^2.4.0" -+ } -+ }, + "node_modules/oslo/node_modules/@node-rs/argon2": { + "version": "1.7.0", -+ "resolved": "https://registry.npmjs.org/@node-rs/argon2/-/argon2-1.7.0.tgz", -+ "integrity": "sha512-zfULc+/tmcWcxn+nHkbyY8vP3+MpEqKORbszt4UkpqZgBgDAAIYvuDN/zukfTgdmo6tmJKKVfzigZOPk4LlIog==", + "license": "MIT", + "engines": { + "node": ">= 10" @@ -9548,42 +6934,8 @@ + "@node-rs/argon2-win32-x64-msvc": "1.7.0" + } + }, -+ "node_modules/oslo/node_modules/@node-rs/argon2-android-arm-eabi": { -+ "version": "1.7.0", -+ "resolved": "https://registry.npmjs.org/@node-rs/argon2-android-arm-eabi/-/argon2-android-arm-eabi-1.7.0.tgz", -+ "integrity": "sha512-udDqkr5P9E+wYX1SZwAVPdyfYvaF4ry9Tm+R9LkfSHbzWH0uhU6zjIwNRp7m+n4gx691rk+lqqDAIP8RLKwbhg==", -+ "cpu": [ -+ "arm" -+ ], -+ "license": "MIT", -+ "optional": true, -+ "os": [ -+ "android" -+ ], -+ "engines": { -+ "node": ">= 10" -+ } -+ }, -+ "node_modules/oslo/node_modules/@node-rs/argon2-android-arm64": { -+ "version": "1.7.0", -+ "resolved": "https://registry.npmjs.org/@node-rs/argon2-android-arm64/-/argon2-android-arm64-1.7.0.tgz", -+ "integrity": "sha512-s9j/G30xKUx8WU50WIhF0fIl1EdhBGq0RQ06lEhZ0Gi0ap8lhqbE2Bn5h3/G2D1k0Dx+yjeVVNmt/xOQIRG38A==", -+ "cpu": [ -+ "arm64" -+ ], -+ "license": "MIT", -+ "optional": true, -+ "os": [ -+ "android" -+ ], -+ "engines": { -+ "node": ">= 10" -+ } -+ }, + "node_modules/oslo/node_modules/@node-rs/argon2-darwin-arm64": { + "version": "1.7.0", -+ "resolved": "https://registry.npmjs.org/@node-rs/argon2-darwin-arm64/-/argon2-darwin-arm64-1.7.0.tgz", -+ "integrity": "sha512-ZIz4L6HGOB9U1kW23g+m7anGNuTZ0RuTw0vNp3o+2DWpb8u8rODq6A8tH4JRL79S+Co/Nq608m9uackN2pe0Rw==", + "cpu": [ + "arm64" + ], @@ -9592,209 +6944,16 @@ + "os": [ + "darwin" + ], -+ "engines": { -+ "node": ">= 10" -+ } -+ }, -+ "node_modules/oslo/node_modules/@node-rs/argon2-darwin-x64": { -+ "version": "1.7.0", -+ "resolved": "https://registry.npmjs.org/@node-rs/argon2-darwin-x64/-/argon2-darwin-x64-1.7.0.tgz", -+ "integrity": "sha512-5oi/pxqVhODW/pj1+3zElMTn/YukQeywPHHYDbcAW3KsojFjKySfhcJMd1DjKTc+CHQI+4lOxZzSUzK7mI14Hw==", -+ "cpu": [ -+ "x64" -+ ], -+ "license": "MIT", -+ "optional": true, -+ "os": [ -+ "darwin" -+ ], -+ "engines": { -+ "node": ">= 10" -+ } -+ }, -+ "node_modules/oslo/node_modules/@node-rs/argon2-freebsd-x64": { -+ "version": "1.7.0", -+ "resolved": "https://registry.npmjs.org/@node-rs/argon2-freebsd-x64/-/argon2-freebsd-x64-1.7.0.tgz", -+ "integrity": "sha512-Ify08683hA4QVXYoIm5SUWOY5DPIT/CMB0CQT+IdxQAg/F+qp342+lUkeAtD5bvStQuCx/dFO3bnnzoe2clMhA==", -+ "cpu": [ -+ "x64" -+ ], -+ "license": "MIT", -+ "optional": true, -+ "os": [ -+ "freebsd" -+ ], -+ "engines": { -+ "node": ">= 10" -+ } -+ }, -+ "node_modules/oslo/node_modules/@node-rs/argon2-linux-arm-gnueabihf": { -+ "version": "1.7.0", -+ "resolved": "https://registry.npmjs.org/@node-rs/argon2-linux-arm-gnueabihf/-/argon2-linux-arm-gnueabihf-1.7.0.tgz", -+ "integrity": "sha512-7DjDZ1h5AUHAtRNjD19RnQatbhL+uuxBASuuXIBu4/w6Dx8n7YPxwTP4MXfsvuRgKuMWiOb/Ub/HJ3kXVCXRkg==", -+ "cpu": [ -+ "arm" -+ ], -+ "license": "MIT", -+ "optional": true, -+ "os": [ -+ "linux" -+ ], -+ "engines": { -+ "node": ">= 10" -+ } -+ }, -+ "node_modules/oslo/node_modules/@node-rs/argon2-linux-arm64-gnu": { -+ "version": "1.7.0", -+ "resolved": "https://registry.npmjs.org/@node-rs/argon2-linux-arm64-gnu/-/argon2-linux-arm64-gnu-1.7.0.tgz", -+ "integrity": "sha512-nJDoMP4Y3YcqGswE4DvP080w6O24RmnFEDnL0emdI8Nou17kNYBzP2546Nasx9GCyLzRcYQwZOUjrtUuQ+od2g==", -+ "cpu": [ -+ "arm64" -+ ], -+ "license": "MIT", -+ "optional": true, -+ "os": [ -+ "linux" -+ ], -+ "engines": { -+ "node": ">= 10" -+ } -+ }, -+ "node_modules/oslo/node_modules/@node-rs/argon2-linux-arm64-musl": { -+ "version": "1.7.0", -+ "resolved": "https://registry.npmjs.org/@node-rs/argon2-linux-arm64-musl/-/argon2-linux-arm64-musl-1.7.0.tgz", -+ "integrity": "sha512-BKWS8iVconhE3jrb9mj6t1J9vwUqQPpzCbUKxfTGJfc+kNL58F1SXHBoe2cDYGnHrFEHTY0YochzXoAfm4Dm/A==", -+ "cpu": [ -+ "arm64" -+ ], -+ "license": "MIT", -+ "optional": true, -+ "os": [ -+ "linux" -+ ], -+ "engines": { -+ "node": ">= 10" -+ } -+ }, -+ "node_modules/oslo/node_modules/@node-rs/argon2-linux-x64-gnu": { -+ "version": "1.7.0", -+ "resolved": "https://registry.npmjs.org/@node-rs/argon2-linux-x64-gnu/-/argon2-linux-x64-gnu-1.7.0.tgz", -+ "integrity": "sha512-EmgqZOlf4Jurk/szW1iTsVISx25bKksVC5uttJDUloTgsAgIGReCpUUO1R24pBhu9ESJa47iv8NSf3yAfGv6jQ==", -+ "cpu": [ -+ "x64" -+ ], -+ "license": "MIT", -+ "optional": true, -+ "os": [ -+ "linux" -+ ], -+ "engines": { -+ "node": ">= 10" -+ } -+ }, -+ "node_modules/oslo/node_modules/@node-rs/argon2-linux-x64-musl": { -+ "version": "1.7.0", -+ "resolved": "https://registry.npmjs.org/@node-rs/argon2-linux-x64-musl/-/argon2-linux-x64-musl-1.7.0.tgz", -+ "integrity": "sha512-/o1efYCYIxjfuoRYyBTi2Iy+1iFfhqHCvvVsnjNSgO1xWiWrX0Rrt/xXW5Zsl7vS2Y+yu8PL8KFWRzZhaVxfKA==", -+ "cpu": [ -+ "x64" -+ ], -+ "license": "MIT", -+ "optional": true, -+ "os": [ -+ "linux" -+ ], -+ "engines": { -+ "node": ">= 10" -+ } -+ }, -+ "node_modules/oslo/node_modules/@node-rs/argon2-wasm32-wasi": { -+ "version": "1.7.0", -+ "resolved": "https://registry.npmjs.org/@node-rs/argon2-wasm32-wasi/-/argon2-wasm32-wasi-1.7.0.tgz", -+ "integrity": "sha512-Evmk9VcxqnuwQftfAfYEr6YZYSPLzmKUsbFIMep5nTt9PT4XYRFAERj7wNYp+rOcBenF3X4xoB+LhwcOMTNE5w==", -+ "cpu": [ -+ "wasm32" -+ ], -+ "license": "MIT", -+ "optional": true, -+ "dependencies": { -+ "@emnapi/core": "^0.45.0", -+ "@emnapi/runtime": "^0.45.0", -+ "@tybys/wasm-util": "^0.8.1", -+ "memfs-browser": "^3.4.13000" -+ }, -+ "engines": { -+ "node": ">=14.0.0" -+ } -+ }, -+ "node_modules/oslo/node_modules/@node-rs/argon2-win32-arm64-msvc": { -+ "version": "1.7.0", -+ "resolved": "https://registry.npmjs.org/@node-rs/argon2-win32-arm64-msvc/-/argon2-win32-arm64-msvc-1.7.0.tgz", -+ "integrity": "sha512-qgsU7T004COWWpSA0tppDqDxbPLgg8FaU09krIJ7FBl71Sz8SFO40h7fDIjfbTT5w7u6mcaINMQ5bSHu75PCaA==", -+ "cpu": [ -+ "arm64" -+ ], -+ "license": "MIT", -+ "optional": true, -+ "os": [ -+ "win32" -+ ], -+ "engines": { -+ "node": ">= 10" -+ } -+ }, -+ "node_modules/oslo/node_modules/@node-rs/argon2-win32-ia32-msvc": { -+ "version": "1.7.0", -+ "resolved": "https://registry.npmjs.org/@node-rs/argon2-win32-ia32-msvc/-/argon2-win32-ia32-msvc-1.7.0.tgz", -+ "integrity": "sha512-JGafwWYQ/HpZ3XSwP4adQ6W41pRvhcdXvpzIWtKvX+17+xEXAe2nmGWM6s27pVkg1iV2ZtoYLRDkOUoGqZkCcg==", -+ "cpu": [ -+ "ia32" -+ ], -+ "license": "MIT", -+ "optional": true, -+ "os": [ -+ "win32" -+ ], -+ "engines": { -+ "node": ">= 10" -+ } -+ }, -+ "node_modules/oslo/node_modules/@node-rs/argon2-win32-x64-msvc": { -+ "version": "1.7.0", -+ "resolved": "https://registry.npmjs.org/@node-rs/argon2-win32-x64-msvc/-/argon2-win32-x64-msvc-1.7.0.tgz", -+ "integrity": "sha512-9oq4ShyFakw8AG3mRls0AoCpxBFcimYx7+jvXeAf2OqKNO+mSA6eZ9z7KQeVCi0+SOEUYxMGf5UiGiDb9R6+9Q==", -+ "cpu": [ -+ "x64" -+ ], -+ "license": "MIT", -+ "optional": true, -+ "os": [ -+ "win32" -+ ], -+ "engines": { -+ "node": ">= 10" -+ } -+ }, -+ "node_modules/oslo/node_modules/@tybys/wasm-util": { -+ "version": "0.8.3", -+ "resolved": "https://registry.npmjs.org/@tybys/wasm-util/-/wasm-util-0.8.3.tgz", -+ "integrity": "sha512-Z96T/L6dUFFxgFJ+pQtkPpne9q7i6kIPYCFnQBHSgSPV9idTsKfIhCss0h5iM9irweZCatkrdeP8yi5uM1eX6Q==", -+ "license": "MIT", -+ "optional": true, -+ "dependencies": { -+ "tslib": "^2.4.0" ++ "engines": { ++ "node": ">= 10" + } + }, + "node_modules/outvariant": { + "version": "1.4.3", -+ "resolved": "https://registry.npmjs.org/outvariant/-/outvariant-1.4.3.tgz", -+ "integrity": "sha512-+Sl2UErvtsoajRDKCE5/dBz4DIvHXQQnAxtQTF04OJxY0+DyZXSo5P5Bb7XYWOh81syohlYL24hbDwxedPUJCA==", + "license": "MIT" + }, + "node_modules/p-limit": { + "version": "5.0.0", -+ "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-5.0.0.tgz", -+ "integrity": "sha512-/Eaoq+QyLSiXQ4lyYV23f14mZRQcXnxfHrN0vCai+ak9G0pp9iEQukIIZq5NccEvwRB8PUnZT0KsOoDCINS1qQ==", + "license": "MIT", + "dependencies": { + "yocto-queue": "^1.0.0" @@ -9808,8 +6967,6 @@ + }, + "node_modules/p-map": { + "version": "4.0.0", -+ "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz", -+ "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==", + "license": "MIT", + "dependencies": { + "aggregate-error": "^3.0.0" @@ -9823,14 +6980,10 @@ + }, + "node_modules/package-json-from-dist": { + "version": "1.0.1", -+ "resolved": "https://registry.npmjs.org/package-json-from-dist/-/package-json-from-dist-1.0.1.tgz", -+ "integrity": "sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==", + "license": "BlueOak-1.0.0" + }, + "node_modules/parse5": { + "version": "7.2.1", -+ "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.2.1.tgz", -+ "integrity": "sha512-BuBYQYlv1ckiPdQi/ohiivi9Sagc9JG+Ozs0r7b/0iK3sKmrb0b9FdWdBbOdx6hBCM/F9Ir82ofnBhtZOjCRPQ==", + "license": "MIT", + "dependencies": { + "entities": "^4.5.0" @@ -9841,8 +6994,6 @@ + }, + "node_modules/parseurl": { + "version": "1.3.3", -+ "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", -+ "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", + "license": "MIT", + "engines": { + "node": ">= 0.8" @@ -9850,8 +7001,6 @@ + }, + "node_modules/path-key": { + "version": "3.1.1", -+ "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", -+ "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "license": "MIT", + "engines": { + "node": ">=8" @@ -9859,14 +7008,10 @@ + }, + "node_modules/path-parse": { + "version": "1.0.7", -+ "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", -+ "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "license": "MIT" + }, + "node_modules/path-scurry": { + "version": "1.11.1", -+ "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz", -+ "integrity": "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==", + "license": "BlueOak-1.0.0", + "dependencies": { + "lru-cache": "^10.2.0", @@ -9881,8 +7026,6 @@ + }, + "node_modules/path-to-regexp": { + "version": "8.2.0", -+ "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-8.2.0.tgz", -+ "integrity": "sha512-TdrF7fW9Rphjq4RjrW0Kp2AW0Ahwu9sRGTkS6bvDi0SCwZlEZYmcfDbEsTz8RVk0EHIS/Vd1bv3JhG+1xZuAyQ==", + "license": "MIT", + "engines": { + "node": ">=16" @@ -9890,14 +7033,10 @@ + }, + "node_modules/pathe": { + "version": "1.1.2", -+ "resolved": "https://registry.npmjs.org/pathe/-/pathe-1.1.2.tgz", -+ "integrity": "sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ==", + "license": "MIT" + }, + "node_modules/pathval": { + "version": "1.1.1", -+ "resolved": "https://registry.npmjs.org/pathval/-/pathval-1.1.1.tgz", -+ "integrity": "sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==", + "license": "MIT", + "engines": { + "node": "*" @@ -9905,8 +7044,6 @@ + }, + "node_modules/pg": { + "version": "8.14.1", -+ "resolved": "https://registry.npmjs.org/pg/-/pg-8.14.1.tgz", -+ "integrity": "sha512-0TdbqfjwIun9Fm/r89oB7RFQ0bLgduAhiIqIXOsyKoiC/L54DbuAAzIEN/9Op0f1Po9X7iCPXGoa/Ah+2aI8Xw==", + "license": "MIT", + "dependencies": { + "pg-connection-string": "^2.7.0", @@ -9932,8 +7069,6 @@ + }, + "node_modules/pg-boss": { + "version": "8.4.2", -+ "resolved": "https://registry.npmjs.org/pg-boss/-/pg-boss-8.4.2.tgz", -+ "integrity": "sha512-xcl/G8C7qlCyrcvlQvgLVBIe68zO0XfZc6K86/G9fq/mL+YQMEo1spW6lHqsPpNi2KGlpXwBEL/XZxkMa19eRA==", + "license": "MIT", + "dependencies": { + "cron-parser": "^4.0.0", @@ -9950,21 +7085,15 @@ + }, + "node_modules/pg-cloudflare": { + "version": "1.1.1", -+ "resolved": "https://registry.npmjs.org/pg-cloudflare/-/pg-cloudflare-1.1.1.tgz", -+ "integrity": "sha512-xWPagP/4B6BgFO+EKz3JONXv3YDgvkbVrGw2mTo3D6tVDQRh1e7cqVGvyR3BE+eQgAvx1XhW/iEASj4/jCWl3Q==", + "license": "MIT", + "optional": true + }, + "node_modules/pg-connection-string": { + "version": "2.7.0", -+ "resolved": "https://registry.npmjs.org/pg-connection-string/-/pg-connection-string-2.7.0.tgz", -+ "integrity": "sha512-PI2W9mv53rXJQEOb8xNR8lH7Hr+EKa6oJa38zsK0S/ky2er16ios1wLKhZyxzD7jUReiWokc9WK5nxSnC7W1TA==", + "license": "MIT" + }, + "node_modules/pg-int8": { + "version": "1.0.1", -+ "resolved": "https://registry.npmjs.org/pg-int8/-/pg-int8-1.0.1.tgz", -+ "integrity": "sha512-WCtabS6t3c8SkpDBUlb1kjOs7l66xsGdKpIPZsg4wR+B3+u9UAum2odSsF9tnvxg80h4ZxLWMy4pRjOsFIqQpw==", + "license": "ISC", + "engines": { + "node": ">=4.0.0" @@ -9972,8 +7101,6 @@ + }, + "node_modules/pg-pool": { + "version": "3.8.0", -+ "resolved": "https://registry.npmjs.org/pg-pool/-/pg-pool-3.8.0.tgz", -+ "integrity": "sha512-VBw3jiVm6ZOdLBTIcXLNdSotb6Iy3uOCwDGFAksZCXmi10nyRvnP2v3jl4d+IsLYRyXf6o9hIm/ZtUzlByNUdw==", + "license": "MIT", + "peerDependencies": { + "pg": ">=8.0" @@ -9981,14 +7108,10 @@ + }, + "node_modules/pg-protocol": { + "version": "1.8.0", -+ "resolved": "https://registry.npmjs.org/pg-protocol/-/pg-protocol-1.8.0.tgz", -+ "integrity": "sha512-jvuYlEkL03NRvOoyoRktBK7+qU5kOvlAwvmrH8sr3wbLrOdVWsRxQfz8mMy9sZFsqJ1hEWNfdWKI4SAmoL+j7g==", + "license": "MIT" + }, + "node_modules/pg-types": { + "version": "2.2.0", -+ "resolved": "https://registry.npmjs.org/pg-types/-/pg-types-2.2.0.tgz", -+ "integrity": "sha512-qTAAlrEsl8s4OiEQY69wDvcMIdQN6wdz5ojQiOy6YRMuynxenON0O5oCpJI6lshc6scgAY8qvJ2On/p+CXY0GA==", + "license": "MIT", + "dependencies": { + "pg-int8": "1.0.1", @@ -10003,8 +7126,6 @@ + }, + "node_modules/pgpass": { + "version": "1.0.5", -+ "resolved": "https://registry.npmjs.org/pgpass/-/pgpass-1.0.5.tgz", -+ "integrity": "sha512-FdW9r/jQZhSeohs1Z3sI1yxFQNFvMcnmfuj4WBMUTxOrAyLMaTcE1aAMBiTlbMNaXvBCQuVi0R7hd8udDSP7ug==", + "license": "MIT", + "dependencies": { + "split2": "^4.1.0" @@ -10012,14 +7133,10 @@ + }, + "node_modules/picocolors": { + "version": "1.1.1", -+ "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", -+ "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", + "license": "ISC" + }, + "node_modules/picomatch": { + "version": "2.3.1", -+ "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", -+ "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "license": "MIT", + "engines": { + "node": ">=8.6" @@ -10030,8 +7147,6 @@ + }, + "node_modules/pify": { + "version": "2.3.0", -+ "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", -+ "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" @@ -10039,8 +7154,6 @@ + }, + "node_modules/pirates": { + "version": "4.0.6", -+ "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.6.tgz", -+ "integrity": "sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==", + "license": "MIT", + "engines": { + "node": ">= 6" @@ -10048,8 +7161,6 @@ + }, + "node_modules/pkg-types": { + "version": "1.3.1", -+ "resolved": "https://registry.npmjs.org/pkg-types/-/pkg-types-1.3.1.tgz", -+ "integrity": "sha512-/Jm5M4RvtBFVkKWRu2BLUTNP8/M2a+UwuAX+ae4770q1qVGtfjG+WTCupoZixokjmHiry8uI+dlY8KXYV5HVVQ==", + "license": "MIT", + "dependencies": { + "confbox": "^0.1.8", @@ -10059,14 +7170,10 @@ + }, + "node_modules/pkg-types/node_modules/pathe": { + "version": "2.0.3", -+ "resolved": "https://registry.npmjs.org/pathe/-/pathe-2.0.3.tgz", -+ "integrity": "sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==", + "license": "MIT" + }, + "node_modules/possible-typed-array-names": { + "version": "1.1.0", -+ "resolved": "https://registry.npmjs.org/possible-typed-array-names/-/possible-typed-array-names-1.1.0.tgz", -+ "integrity": "sha512-/+5VFTchJDoVj3bhoqi6UeymcD00DAwb1nJwamzPvHEszJ4FpF6SNNbUbOS8yI56qHzdV8eK0qEfOSiodkTdxg==", + "license": "MIT", + "engines": { + "node": ">= 0.4" @@ -10074,8 +7181,6 @@ + }, + "node_modules/postcss": { + "version": "8.5.3", -+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.3.tgz", -+ "integrity": "sha512-dle9A3yYxlBSrt8Fu+IpjGT8SY8hN0mlaA6GY8t0P5PjIOZemULz/E2Bnm/2dcUOena75OTNkHI76uZBNUUq3A==", + "funding": [ + { + "type": "opencollective", @@ -10102,8 +7207,6 @@ + }, + "node_modules/postcss-import": { + "version": "15.1.0", -+ "resolved": "https://registry.npmjs.org/postcss-import/-/postcss-import-15.1.0.tgz", -+ "integrity": "sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==", + "license": "MIT", + "dependencies": { + "postcss-value-parser": "^4.0.0", @@ -10119,8 +7222,6 @@ + }, + "node_modules/postcss-js": { + "version": "4.0.1", -+ "resolved": "https://registry.npmjs.org/postcss-js/-/postcss-js-4.0.1.tgz", -+ "integrity": "sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw==", + "license": "MIT", + "dependencies": { + "camelcase-css": "^2.0.1" @@ -10138,8 +7239,6 @@ + }, + "node_modules/postcss-load-config": { + "version": "4.0.2", -+ "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-4.0.2.tgz", -+ "integrity": "sha512-bSVhyJGL00wMVoPUzAVAnbEoWyqRxkjv64tUl427SKnPrENtq6hJwUojroMz2VB+Q1edmi4IfrAPpami5VVgMQ==", + "funding": [ + { + "type": "opencollective", @@ -10173,8 +7272,6 @@ + }, + "node_modules/postcss-nested": { + "version": "6.2.0", -+ "resolved": "https://registry.npmjs.org/postcss-nested/-/postcss-nested-6.2.0.tgz", -+ "integrity": "sha512-HQbt28KulC5AJzG+cZtj9kvKB93CFCdLvog1WFLf1D+xmMvPGlBstkpTEZfK5+AN9hfJocyBFCNiqyS48bpgzQ==", + "funding": [ + { + "type": "opencollective", @@ -10198,8 +7295,6 @@ + }, + "node_modules/postcss-nested/node_modules/postcss-selector-parser": { + "version": "6.1.2", -+ "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.1.2.tgz", -+ "integrity": "sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg==", + "license": "MIT", + "dependencies": { + "cssesc": "^3.0.0", @@ -10211,8 +7306,6 @@ + }, + "node_modules/postcss-selector-parser": { + "version": "6.0.10", -+ "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.10.tgz", -+ "integrity": "sha512-IQ7TZdoaqbT+LCpShg46jnZVlhWD2w6iQYAcYXfHARZ7X1t/UGhhceQDs5X0cGqKvYlHNOuv7Oa1xmb0oQuA3w==", + "license": "MIT", + "dependencies": { + "cssesc": "^3.0.0", @@ -10224,14 +7317,10 @@ + }, + "node_modules/postcss-value-parser": { + "version": "4.2.0", -+ "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", -+ "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==", + "license": "MIT" + }, + "node_modules/postgres-array": { + "version": "2.0.0", -+ "resolved": "https://registry.npmjs.org/postgres-array/-/postgres-array-2.0.0.tgz", -+ "integrity": "sha512-VpZrUqU5A69eQyW2c5CA1jtLecCsN2U/bD6VilrFDWq5+5UIEVO7nazS3TEcHf1zuPYO/sqGvUvW62g86RXZuA==", + "license": "MIT", + "engines": { + "node": ">=4" @@ -10239,8 +7328,6 @@ + }, + "node_modules/postgres-bytea": { + "version": "1.0.0", -+ "resolved": "https://registry.npmjs.org/postgres-bytea/-/postgres-bytea-1.0.0.tgz", -+ "integrity": "sha512-xy3pmLuQqRBZBXDULy7KbaitYqLcmxigw14Q5sj8QBVLqEwXfeybIKVWiqAXTlcvdvb0+xkOtDbfQMOf4lST1w==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" @@ -10248,8 +7335,6 @@ + }, + "node_modules/postgres-date": { + "version": "1.0.7", -+ "resolved": "https://registry.npmjs.org/postgres-date/-/postgres-date-1.0.7.tgz", -+ "integrity": "sha512-suDmjLVQg78nMK2UZ454hAG+OAW+HQPZ6n++TNDUX+L0+uUlLywnoxJKDou51Zm+zTCjrCl0Nq6J9C5hP9vK/Q==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" @@ -10257,8 +7342,6 @@ + }, + "node_modules/postgres-interval": { + "version": "1.2.0", -+ "resolved": "https://registry.npmjs.org/postgres-interval/-/postgres-interval-1.2.0.tgz", -+ "integrity": "sha512-9ZhXKM/rw350N1ovuWHbGxnGh/SNJ4cnxHiM0rxE4VN41wsg8P8zWn9hv/buK00RP4WvlOyr/RBDiptyxVbkZQ==", + "license": "MIT", + "dependencies": { + "xtend": "^4.0.0" @@ -10269,8 +7352,6 @@ + }, + "node_modules/prettier": { + "version": "3.1.1", -+ "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.1.1.tgz", -+ "integrity": "sha512-22UbSzg8luF4UuZtzgiUOfcGM8s4tjBv6dJRT7j275NXsy2jb4aJa4NNveul5x4eqlF1wuhuR2RElK71RvmVaw==", + "license": "MIT", + "bin": { + "prettier": "bin/prettier.cjs" @@ -10284,8 +7365,6 @@ + }, + "node_modules/prettier-plugin-tailwindcss": { + "version": "0.5.11", -+ "resolved": "https://registry.npmjs.org/prettier-plugin-tailwindcss/-/prettier-plugin-tailwindcss-0.5.11.tgz", -+ "integrity": "sha512-AvI/DNyMctyyxGOjyePgi/gqj5hJYClZ1avtQvLlqMT3uDZkRbi4HhGUpok3DRzv9z7Lti85Kdj3s3/1CeNI0w==", + "license": "MIT", + "engines": { + "node": ">=14.21.3" @@ -10353,8 +7432,6 @@ + }, + "node_modules/pretty-format": { + "version": "27.5.1", -+ "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.5.1.tgz", -+ "integrity": "sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ==", + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1", @@ -10367,8 +7444,6 @@ + }, + "node_modules/pretty-format/node_modules/ansi-regex": { + "version": "5.0.1", -+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", -+ "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "license": "MIT", + "engines": { + "node": ">=8" @@ -10376,8 +7451,6 @@ + }, + "node_modules/pretty-format/node_modules/ansi-styles": { + "version": "5.2.0", -+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", -+ "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "license": "MIT", + "engines": { + "node": ">=10" @@ -10388,14 +7461,10 @@ + }, + "node_modules/pretty-format/node_modules/react-is": { + "version": "17.0.2", -+ "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", -+ "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==", + "license": "MIT" + }, + "node_modules/prisma": { + "version": "5.19.1", -+ "resolved": "https://registry.npmjs.org/prisma/-/prisma-5.19.1.tgz", -+ "integrity": "sha512-c5K9MiDaa+VAAyh1OiYk76PXOme9s3E992D7kvvIOhCrNsBQfy2mP2QAQtX0WNj140IgG++12kwZpYB9iIydNQ==", + "hasInstallScript": true, + "license": "Apache-2.0", + "dependencies": { @@ -10413,8 +7482,6 @@ + }, + "node_modules/prop-types": { + "version": "15.8.1", -+ "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz", -+ "integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==", + "license": "MIT", + "dependencies": { + "loose-envify": "^1.4.0", @@ -10424,8 +7491,6 @@ + }, + "node_modules/proto3-json-serializer": { + "version": "2.0.2", -+ "resolved": "https://registry.npmjs.org/proto3-json-serializer/-/proto3-json-serializer-2.0.2.tgz", -+ "integrity": "sha512-SAzp/O4Yh02jGdRc+uIrGoe87dkN/XtwxfZ4ZyafJHymd79ozp5VG5nyZ7ygqPM5+cpLDjjGnYFUkngonyDPOQ==", + "license": "Apache-2.0", + "dependencies": { + "protobufjs": "^7.2.5" @@ -10436,8 +7501,6 @@ + }, + "node_modules/protobufjs": { + "version": "7.4.0", -+ "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-7.4.0.tgz", -+ "integrity": "sha512-mRUWCc3KUU4w1jU8sGxICXH/gNS94DvI1gxqDvBzhj1JpcsimQkYiOJfwsPUykUI5ZaspFbSgmBLER8IrQ3tqw==", + "hasInstallScript": true, + "license": "BSD-3-Clause", + "dependencies": { @@ -10460,8 +7523,6 @@ + }, + "node_modules/proxy-addr": { + "version": "2.0.7", -+ "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", -+ "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", + "license": "MIT", + "dependencies": { + "forwarded": "0.2.0", @@ -10473,14 +7534,10 @@ + }, + "node_modules/proxy-from-env": { + "version": "1.1.0", -+ "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", -+ "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==", + "license": "MIT" + }, + "node_modules/psl": { + "version": "1.15.0", -+ "resolved": "https://registry.npmjs.org/psl/-/psl-1.15.0.tgz", -+ "integrity": "sha512-JZd3gMVBAVQkSs6HdNZo9Sdo0LNcQeMNP3CozBJb3JYC/QUYZTnKxP+f8oWRX4rHP5EurWxqAHTSwUCjlNKa1w==", + "license": "MIT", + "dependencies": { + "punycode": "^2.3.1" @@ -10491,8 +7548,6 @@ + }, + "node_modules/punycode": { + "version": "2.3.1", -+ "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", -+ "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", + "license": "MIT", + "engines": { + "node": ">=6" @@ -10500,8 +7555,6 @@ + }, + "node_modules/qs": { + "version": "6.14.0", -+ "resolved": "https://registry.npmjs.org/qs/-/qs-6.14.0.tgz", -+ "integrity": "sha512-YWWTjgABSKcvs/nWBi9PycY/JiPJqOD4JA6o9Sej2AtvSGarXxKC3OQSk4pAarbdQlKAh5D4FCQkJNkW+GAn3w==", + "license": "BSD-3-Clause", + "dependencies": { + "side-channel": "^1.1.0" @@ -10515,14 +7568,10 @@ + }, + "node_modules/querystringify": { + "version": "2.2.0", -+ "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.2.0.tgz", -+ "integrity": "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==", + "license": "MIT" + }, + "node_modules/queue-microtask": { + "version": "1.2.3", -+ "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", -+ "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "funding": [ + { + "type": "github", @@ -10541,8 +7590,6 @@ + }, + "node_modules/range-parser": { + "version": "1.2.1", -+ "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", -+ "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", + "license": "MIT", + "engines": { + "node": ">= 0.6" @@ -10550,8 +7597,6 @@ + }, + "node_modules/raw-body": { + "version": "3.0.0", -+ "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-3.0.0.tgz", -+ "integrity": "sha512-RmkhL8CAyCRPXCE28MMH0z2PNWQBNk2Q09ZdxM9IOOXwxwZbN+qbWaatPkdkWIKL2ZVDImrN/pK5HTRz2PcS4g==", + "license": "MIT", + "dependencies": { + "bytes": "3.1.2", @@ -10565,8 +7610,6 @@ + }, + "node_modules/raw-body/node_modules/iconv-lite": { + "version": "0.6.3", -+ "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", -+ "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "license": "MIT", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3.0.0" @@ -10577,8 +7620,6 @@ + }, + "node_modules/react": { + "version": "18.3.1", -+ "resolved": "https://registry.npmjs.org/react/-/react-18.3.1.tgz", -+ "integrity": "sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==", + "license": "MIT", + "dependencies": { + "loose-envify": "^1.1.0" @@ -10589,8 +7630,6 @@ + }, + "node_modules/react-apexcharts": { + "version": "1.4.1", -+ "resolved": "https://registry.npmjs.org/react-apexcharts/-/react-apexcharts-1.4.1.tgz", -+ "integrity": "sha512-G14nVaD64Bnbgy8tYxkjuXEUp/7h30Q0U33xc3AwtGFijJB9nHqOt1a6eG0WBn055RgRg+NwqbKGtqPxy15d0Q==", + "license": "MIT", + "dependencies": { + "prop-types": "^15.8.1" @@ -10602,8 +7641,6 @@ + }, + "node_modules/react-dom": { + "version": "18.3.1", -+ "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.3.1.tgz", -+ "integrity": "sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==", + "license": "MIT", + "dependencies": { + "loose-envify": "^1.1.0", @@ -10615,8 +7652,6 @@ + }, + "node_modules/react-hook-form": { + "version": "7.60.0", -+ "resolved": "https://registry.npmjs.org/react-hook-form/-/react-hook-form-7.60.0.tgz", -+ "integrity": "sha512-SBrYOvMbDB7cV8ZfNpaiLcgjH/a1c7aK0lK+aNigpf4xWLO8q+o4tcvVurv3c4EOyzn/3dCsYt4GKD42VvJ/+A==", + "license": "MIT", + "engines": { + "node": ">=18.0.0" @@ -10631,8 +7666,6 @@ + }, + "node_modules/react-hot-toast": { + "version": "2.5.2", -+ "resolved": "https://registry.npmjs.org/react-hot-toast/-/react-hot-toast-2.5.2.tgz", -+ "integrity": "sha512-Tun3BbCxzmXXM7C+NI4qiv6lT0uwGh4oAfeJyNOjYUejTsm35mK9iCaYLGv8cBz9L5YxZLx/2ii7zsIwPtPUdw==", + "license": "MIT", + "dependencies": { + "csstype": "^3.1.3", @@ -10648,8 +7681,6 @@ + }, + "node_modules/react-icons": { + "version": "5.5.0", -+ "resolved": "https://registry.npmjs.org/react-icons/-/react-icons-5.5.0.tgz", -+ "integrity": "sha512-MEFcXdkP3dLo8uumGI5xN3lDFNsRtrjbOEKDLD7yv76v4wpnEq2Lt2qeHaQOr34I/wPN3s3+N08WkQ+CW37Xiw==", + "license": "MIT", + "peerDependencies": { + "react": "*" @@ -10657,14 +7688,10 @@ + }, + "node_modules/react-is": { + "version": "16.13.1", -+ "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", -+ "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==", + "license": "MIT" + }, + "node_modules/react-remove-scroll": { + "version": "2.7.1", -+ "resolved": "https://registry.npmjs.org/react-remove-scroll/-/react-remove-scroll-2.7.1.tgz", -+ "integrity": "sha512-HpMh8+oahmIdOuS5aFKKY6Pyog+FNaZV/XyJOq7b4YFwsFHe5yYfdbIalI4k3vU2nSDql7YskmUseHsRrJqIPA==", + "license": "MIT", + "dependencies": { + "react-remove-scroll-bar": "^2.3.7", @@ -10688,8 +7715,6 @@ + }, + "node_modules/react-remove-scroll-bar": { + "version": "2.3.8", -+ "resolved": "https://registry.npmjs.org/react-remove-scroll-bar/-/react-remove-scroll-bar-2.3.8.tgz", -+ "integrity": "sha512-9r+yi9+mgU33AKcj6IbT9oRCO78WriSj6t/cF8DWBZJ9aOGPOTEDvdUDz1FwKim7QXWwmHqtdHnRJfhAxEG46Q==", + "license": "MIT", + "dependencies": { + "react-style-singleton": "^2.2.2", @@ -10710,8 +7735,6 @@ + }, + "node_modules/react-router": { + "version": "6.30.0", -+ "resolved": "https://registry.npmjs.org/react-router/-/react-router-6.30.0.tgz", -+ "integrity": "sha512-D3X8FyH9nBcTSHGdEKurK7r8OYE1kKFn3d/CF+CoxbSHkxU7o37+Uh7eAHRXr6k2tSExXYO++07PeXJtA/dEhQ==", + "license": "MIT", + "dependencies": { + "@remix-run/router": "1.23.0" @@ -10725,8 +7748,6 @@ + }, + "node_modules/react-router-dom": { + "version": "6.30.0", -+ "resolved": "https://registry.npmjs.org/react-router-dom/-/react-router-dom-6.30.0.tgz", -+ "integrity": "sha512-x30B78HV5tFk8ex0ITwzC9TTZMua4jGyA9IUlH1JLQYQTFyxr/ZxwOJq7evg1JX1qGVUcvhsmQSKdPncQrjTgA==", + "license": "MIT", + "dependencies": { + "@remix-run/router": "1.23.0", @@ -10742,8 +7763,6 @@ + }, + "node_modules/react-style-singleton": { + "version": "2.2.3", -+ "resolved": "https://registry.npmjs.org/react-style-singleton/-/react-style-singleton-2.2.3.tgz", -+ "integrity": "sha512-b6jSvxvVnyptAiLjbkWLE/lOnR4lfTtDAl+eUC7RZy+QQWc6wRzIV2CE6xBuMmDxc2qIihtDCZD5NPOFl7fRBQ==", + "license": "MIT", + "dependencies": { + "get-nonce": "^1.0.0", @@ -10764,8 +7783,6 @@ + }, + "node_modules/read-cache": { + "version": "1.0.0", -+ "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz", -+ "integrity": "sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==", + "license": "MIT", + "dependencies": { + "pify": "^2.3.0" @@ -10773,8 +7790,6 @@ + }, + "node_modules/readable-stream": { + "version": "3.6.2", -+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", -+ "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "license": "MIT", + "dependencies": { + "inherits": "^2.0.3", @@ -10787,8 +7802,6 @@ + }, + "node_modules/readdirp": { + "version": "3.6.0", -+ "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", -+ "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "license": "MIT", + "dependencies": { + "picomatch": "^2.2.1" @@ -10799,8 +7812,6 @@ + }, + "node_modules/redent": { + "version": "3.0.0", -+ "resolved": "https://registry.npmjs.org/redent/-/redent-3.0.0.tgz", -+ "integrity": "sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==", + "license": "MIT", + "dependencies": { + "indent-string": "^4.0.0", @@ -10812,14 +7823,10 @@ + }, + "node_modules/regenerator-runtime": { + "version": "0.14.1", -+ "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz", -+ "integrity": "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==", + "license": "MIT" + }, + "node_modules/regexp.prototype.flags": { + "version": "1.5.4", -+ "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.4.tgz", -+ "integrity": "sha512-dYqgNSZbDwkaJ2ceRd9ojCGjBq+mOm9LmtXnAnEGyHhN/5R7iDW2TRw3h+o/jCFxus3P2LfWIIiwowAjANm7IA==", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", @@ -10838,8 +7845,6 @@ + }, + "node_modules/require-directory": { + "version": "2.1.1", -+ "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", -+ "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" @@ -10847,14 +7852,10 @@ + }, + "node_modules/requires-port": { + "version": "1.0.0", -+ "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", -+ "integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==", + "license": "MIT" + }, + "node_modules/resolve": { + "version": "1.22.10", -+ "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.10.tgz", -+ "integrity": "sha512-NPRy+/ncIMeDlTAsuqwKIiferiawhefFJtkNSW0qZJEqMEb+qBt/77B/jGeeek+F0uOeN05CDa6HXbbIgtVX4w==", + "license": "MIT", + "dependencies": { + "is-core-module": "^2.16.0", @@ -10873,8 +7874,6 @@ + }, + "node_modules/restore-cursor": { + "version": "3.1.0", -+ "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", -+ "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", + "license": "MIT", + "dependencies": { + "onetime": "^5.1.0", @@ -10886,14 +7885,10 @@ + }, + "node_modules/restore-cursor/node_modules/signal-exit": { + "version": "3.0.7", -+ "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", -+ "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", + "license": "ISC" + }, + "node_modules/retry-request": { + "version": "7.0.2", -+ "resolved": "https://registry.npmjs.org/retry-request/-/retry-request-7.0.2.tgz", -+ "integrity": "sha512-dUOvLMJ0/JJYEn8NrpOaGNE7X3vpI5XlZS/u0ANjqtcZVKnIxP7IgCFwrKTxENw29emmwug53awKtaMm4i9g5w==", + "license": "MIT", + "dependencies": { + "@types/request": "^2.48.8", @@ -10906,8 +7901,6 @@ + }, + "node_modules/reusify": { + "version": "1.1.0", -+ "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.1.0.tgz", -+ "integrity": "sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==", + "license": "MIT", + "engines": { + "iojs": ">=1.0.0", @@ -10916,8 +7909,6 @@ + }, + "node_modules/rollup": { + "version": "3.29.5", -+ "resolved": "https://registry.npmjs.org/rollup/-/rollup-3.29.5.tgz", -+ "integrity": "sha512-GVsDdsbJzzy4S/v3dqWPJ7EfvZJfCHiDqe80IyrF59LYuP+e6U1LJoUqeuqRbwAWoMNoXivMNeNAOf5E22VA1w==", + "dev": true, + "license": "MIT", + "bin": { @@ -10933,8 +7924,6 @@ + }, + "node_modules/router": { + "version": "2.2.0", -+ "resolved": "https://registry.npmjs.org/router/-/router-2.2.0.tgz", -+ "integrity": "sha512-nLTrUKm2UyiL7rlhapu/Zl45FwNgkZGaCpZbIHajDYgwlJCOzLSk+cIPAnsEqV955GjILJnKbdQC1nVPz+gAYQ==", + "license": "MIT", + "dependencies": { + "debug": "^4.4.0", @@ -10949,14 +7938,10 @@ + }, + "node_modules/rrweb-cssom": { + "version": "0.6.0", -+ "resolved": "https://registry.npmjs.org/rrweb-cssom/-/rrweb-cssom-0.6.0.tgz", -+ "integrity": "sha512-APM0Gt1KoXBz0iIkkdB/kfvGOwC4UuJFeG/c+yV7wSc7q96cG/kJ0HiYCnzivD9SB53cLV1MlHFNfOuPaadYSw==", + "license": "MIT" + }, + "node_modules/run-async": { + "version": "2.4.1", -+ "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.4.1.tgz", -+ "integrity": "sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==", + "license": "MIT", + "engines": { + "node": ">=0.12.0" @@ -10964,8 +7949,6 @@ + }, + "node_modules/run-parallel": { + "version": "1.2.0", -+ "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", -+ "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "funding": [ + { + "type": "github", @@ -10987,8 +7970,6 @@ + }, + "node_modules/rxjs": { + "version": "7.8.2", -+ "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.2.tgz", -+ "integrity": "sha512-dhKf903U/PQZY6boNNtAGdWbG85WAbjT/1xYoZIC7FAY0yWapOBQVsVrDl58W86//e1VpMNBtRV4MaXfdMySFA==", + "license": "Apache-2.0", + "dependencies": { + "tslib": "^2.1.0" @@ -10996,8 +7977,6 @@ + }, + "node_modules/safe-buffer": { + "version": "5.2.1", -+ "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", -+ "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "funding": [ + { + "type": "github", @@ -11016,8 +7995,6 @@ + }, + "node_modules/safe-regex-test": { + "version": "1.1.0", -+ "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.1.0.tgz", -+ "integrity": "sha512-x/+Cz4YrimQxQccJf5mKEbIa1NzeCRNI5Ecl/ekmlYaampdNLPalVyIcCZNNH3MvmqBugV5TMYZXv0ljslUlaw==", + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", @@ -11033,14 +8010,10 @@ + }, + "node_modules/safer-buffer": { + "version": "2.1.2", -+ "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", -+ "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "license": "MIT" + }, + "node_modules/saxes": { + "version": "6.0.0", -+ "resolved": "https://registry.npmjs.org/saxes/-/saxes-6.0.0.tgz", -+ "integrity": "sha512-xAg7SOnEhrm5zI3puOOKyy1OMcMlIJZYNJY7xLBwSze0UjhPLnWfj2GF2EpT0jmzaJKIWKHLsaSSajf35bcYnA==", + "license": "ISC", + "dependencies": { + "xmlchars": "^2.2.0" @@ -11051,8 +8024,6 @@ + }, + "node_modules/scheduler": { + "version": "0.23.2", -+ "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.2.tgz", -+ "integrity": "sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==", + "license": "MIT", + "dependencies": { + "loose-envify": "^1.1.0" @@ -11060,8 +8031,6 @@ + }, + "node_modules/send": { + "version": "1.2.0", -+ "resolved": "https://registry.npmjs.org/send/-/send-1.2.0.tgz", -+ "integrity": "sha512-uaW0WwXKpL9blXE2o0bRhoL2EGXIrZxQ2ZQ4mgcfoBxdFmQold+qWsD2jLrfZ0trjKL6vOw0j//eAwcALFjKSw==", + "license": "MIT", + "dependencies": { + "debug": "^4.3.5", @@ -11082,8 +8051,6 @@ + }, + "node_modules/send/node_modules/mime-db": { + "version": "1.54.0", -+ "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.54.0.tgz", -+ "integrity": "sha512-aU5EJuIN2WDemCcAp2vFBfp/m4EAhWJnUNSSw0ixs7/kXbd6Pg64EmwJkNdFhB8aWt1sH2CTXrLxo/iAGV3oPQ==", + "license": "MIT", + "engines": { + "node": ">= 0.6" @@ -11091,8 +8058,6 @@ + }, + "node_modules/send/node_modules/mime-types": { + "version": "3.0.1", -+ "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-3.0.1.tgz", -+ "integrity": "sha512-xRc4oEhT6eaBpU1XF7AjpOFD+xQmXNB5OVKwp4tqCuBpHLS/ZbBDrc07mYTDqVMg6PfxUjjNp85O6Cd2Z/5HWA==", + "license": "MIT", + "dependencies": { + "mime-db": "^1.54.0" @@ -11103,8 +8068,6 @@ + }, + "node_modules/serialize-error": { + "version": "8.1.0", -+ "resolved": "https://registry.npmjs.org/serialize-error/-/serialize-error-8.1.0.tgz", -+ "integrity": "sha512-3NnuWfM6vBYoy5gZFvHiYsVbafvI9vZv/+jlIigFn4oP4zjNPK3LhcY0xSCgeb1a5L8jO71Mit9LlNoi2UfDDQ==", + "license": "MIT", + "dependencies": { + "type-fest": "^0.20.2" @@ -11118,8 +8081,6 @@ + }, + "node_modules/serialize-error/node_modules/type-fest": { + "version": "0.20.2", -+ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", -+ "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=10" @@ -11130,8 +8091,6 @@ + }, + "node_modules/serve-static": { + "version": "2.2.0", -+ "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-2.2.0.tgz", -+ "integrity": "sha512-61g9pCh0Vnh7IutZjtLGGpTA355+OPn2TyDv/6ivP2h/AdAVX9azsoxmg2/M6nZeQZNYBEwIcsne1mJd9oQItQ==", + "license": "MIT", + "dependencies": { + "encodeurl": "^2.0.0", @@ -11145,14 +8104,10 @@ + }, + "node_modules/set-cookie-parser": { + "version": "2.7.1", -+ "resolved": "https://registry.npmjs.org/set-cookie-parser/-/set-cookie-parser-2.7.1.tgz", -+ "integrity": "sha512-IOc8uWeOZgnb3ptbCURJWNjWUPcO3ZnTTdzsurqERrP6nPyv+paC55vJM0LpOlT2ne+Ix+9+CRG1MNLlyZ4GjQ==", + "license": "MIT" + }, + "node_modules/set-function-length": { + "version": "1.2.2", -+ "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz", -+ "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==", + "license": "MIT", + "dependencies": { + "define-data-property": "^1.1.4", @@ -11168,8 +8123,6 @@ + }, + "node_modules/set-function-name": { + "version": "2.0.2", -+ "resolved": "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.2.tgz", -+ "integrity": "sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==", + "license": "MIT", + "dependencies": { + "define-data-property": "^1.1.4", @@ -11183,14 +8136,10 @@ + }, + "node_modules/setprototypeof": { + "version": "1.2.0", -+ "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", -+ "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==", + "license": "ISC" + }, + "node_modules/shebang-command": { + "version": "2.0.0", -+ "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", -+ "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "license": "MIT", + "dependencies": { + "shebang-regex": "^3.0.0" @@ -11201,8 +8150,6 @@ + }, + "node_modules/shebang-regex": { + "version": "3.0.0", -+ "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", -+ "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "license": "MIT", + "engines": { + "node": ">=8" @@ -11210,8 +8157,6 @@ + }, + "node_modules/side-channel": { + "version": "1.1.0", -+ "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.1.0.tgz", -+ "integrity": "sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", @@ -11229,8 +8174,6 @@ + }, + "node_modules/side-channel-list": { + "version": "1.0.0", -+ "resolved": "https://registry.npmjs.org/side-channel-list/-/side-channel-list-1.0.0.tgz", -+ "integrity": "sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", @@ -11245,8 +8188,6 @@ + }, + "node_modules/side-channel-map": { + "version": "1.0.1", -+ "resolved": "https://registry.npmjs.org/side-channel-map/-/side-channel-map-1.0.1.tgz", -+ "integrity": "sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==", + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", @@ -11263,8 +8204,6 @@ + }, + "node_modules/side-channel-weakmap": { + "version": "1.0.2", -+ "resolved": "https://registry.npmjs.org/side-channel-weakmap/-/side-channel-weakmap-1.0.2.tgz", -+ "integrity": "sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==", + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", @@ -11282,14 +8221,10 @@ + }, + "node_modules/siginfo": { + "version": "2.0.0", -+ "resolved": "https://registry.npmjs.org/siginfo/-/siginfo-2.0.0.tgz", -+ "integrity": "sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==", + "license": "ISC" + }, + "node_modules/signal-exit": { + "version": "4.1.0", -+ "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", -+ "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", + "license": "ISC", + "engines": { + "node": ">=14" @@ -11300,8 +8235,6 @@ + }, + "node_modules/sirv": { + "version": "2.0.4", -+ "resolved": "https://registry.npmjs.org/sirv/-/sirv-2.0.4.tgz", -+ "integrity": "sha512-94Bdh3cC2PKrbgSOUqTiGPWVZeSiXfKOVZNJniWoqrWrRkB1CJzBU3NEbiTsPcYy1lDsANA/THzS+9WBiy5nfQ==", + "license": "MIT", + "dependencies": { + "@polka/url": "^1.0.0-next.24", @@ -11314,8 +8247,6 @@ + }, + "node_modules/source-map": { + "version": "0.6.1", -+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", -+ "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "license": "BSD-3-Clause", + "optional": true, + "engines": { @@ -11324,8 +8255,6 @@ + }, + "node_modules/source-map-js": { + "version": "1.2.1", -+ "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", -+ "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" @@ -11333,8 +8262,6 @@ + }, + "node_modules/split2": { + "version": "4.2.0", -+ "resolved": "https://registry.npmjs.org/split2/-/split2-4.2.0.tgz", -+ "integrity": "sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg==", + "license": "ISC", + "engines": { + "node": ">= 10.x" @@ -11342,14 +8269,10 @@ + }, + "node_modules/stackback": { + "version": "0.0.2", -+ "resolved": "https://registry.npmjs.org/stackback/-/stackback-0.0.2.tgz", -+ "integrity": "sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==", + "license": "MIT" + }, + "node_modules/statuses": { + "version": "2.0.2", -+ "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.2.tgz", -+ "integrity": "sha512-DvEy55V3DB7uknRo+4iOGT5fP1slR8wQohVdknigZPMpMstaKJQWhwiYBACJE3Ul2pTnATihhBYnRhZQHGBiRw==", + "license": "MIT", + "engines": { + "node": ">= 0.8" @@ -11357,14 +8280,10 @@ + }, + "node_modules/std-env": { + "version": "3.8.1", -+ "resolved": "https://registry.npmjs.org/std-env/-/std-env-3.8.1.tgz", -+ "integrity": "sha512-vj5lIj3Mwf9D79hBkltk5qmkFI+biIKWS2IBxEyEU3AX1tUf7AoL8nSazCOiiqQsGKIq01SClsKEzweu34uwvA==", + "license": "MIT" + }, + "node_modules/stop-iteration-iterator": { + "version": "1.1.0", -+ "resolved": "https://registry.npmjs.org/stop-iteration-iterator/-/stop-iteration-iterator-1.1.0.tgz", -+ "integrity": "sha512-eLoXW/DHyl62zxY4SCaIgnRhuMr6ri4juEYARS8E6sCEqzKpOiE521Ucofdx+KnDZl5xmvGYaaKCk5FEOxJCoQ==", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", @@ -11376,8 +8295,6 @@ + }, + "node_modules/stream-events": { + "version": "1.0.5", -+ "resolved": "https://registry.npmjs.org/stream-events/-/stream-events-1.0.5.tgz", -+ "integrity": "sha512-E1GUzBSgvct8Jsb3v2X15pjzN1tYebtbLaMg+eBOUOAxgbLoSbT2NS91ckc5lJD1KfLjId+jXJRgo0qnV5Nerg==", + "license": "MIT", + "dependencies": { + "stubs": "^3.0.0" @@ -11385,20 +8302,14 @@ + }, + "node_modules/stream-shift": { + "version": "1.0.3", -+ "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.3.tgz", -+ "integrity": "sha512-76ORR0DO1o1hlKwTbi/DM3EXWGf3ZJYO8cXX5RJwnul2DEg2oyoZyjLNoQM8WsvZiFKCRfC1O0J7iCvie3RZmQ==", + "license": "MIT" + }, + "node_modules/strict-event-emitter": { + "version": "0.4.6", -+ "resolved": "https://registry.npmjs.org/strict-event-emitter/-/strict-event-emitter-0.4.6.tgz", -+ "integrity": "sha512-12KWeb+wixJohmnwNFerbyiBrAlq5qJLwIt38etRtKtmmHyDSoGlIqFE9wx+4IwG0aDjI7GV8tc8ZccjWZZtTg==", + "license": "MIT" + }, + "node_modules/string_decoder": { + "version": "1.3.0", -+ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", -+ "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "license": "MIT", + "dependencies": { + "safe-buffer": "~5.2.0" @@ -11406,8 +8317,6 @@ + }, + "node_modules/string-width": { + "version": "5.1.2", -+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", -+ "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", + "license": "MIT", + "dependencies": { + "eastasianwidth": "^0.2.0", @@ -11424,8 +8333,6 @@ + "node_modules/string-width-cjs": { + "name": "string-width", + "version": "4.2.3", -+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", -+ "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", @@ -11438,8 +8345,6 @@ + }, + "node_modules/string-width-cjs/node_modules/ansi-regex": { + "version": "5.0.1", -+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", -+ "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "license": "MIT", + "engines": { + "node": ">=8" @@ -11447,14 +8352,10 @@ + }, + "node_modules/string-width-cjs/node_modules/emoji-regex": { + "version": "8.0.0", -+ "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", -+ "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "license": "MIT" + }, + "node_modules/string-width-cjs/node_modules/strip-ansi": { + "version": "6.0.1", -+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", -+ "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" @@ -11465,8 +8366,6 @@ + }, + "node_modules/strip-ansi": { + "version": "7.1.0", -+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", -+ "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "license": "MIT", + "dependencies": { + "ansi-regex": "^6.0.1" @@ -11481,8 +8380,6 @@ + "node_modules/strip-ansi-cjs": { + "name": "strip-ansi", + "version": "6.0.1", -+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", -+ "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" @@ -11493,8 +8390,6 @@ + }, + "node_modules/strip-ansi-cjs/node_modules/ansi-regex": { + "version": "5.0.1", -+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", -+ "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "license": "MIT", + "engines": { + "node": ">=8" @@ -11502,8 +8397,6 @@ + }, + "node_modules/strip-final-newline": { + "version": "3.0.0", -+ "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-3.0.0.tgz", -+ "integrity": "sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==", + "license": "MIT", + "engines": { + "node": ">=12" @@ -11514,8 +8407,6 @@ + }, + "node_modules/strip-indent": { + "version": "3.0.0", -+ "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-3.0.0.tgz", -+ "integrity": "sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==", + "license": "MIT", + "dependencies": { + "min-indent": "^1.0.0" @@ -11526,8 +8417,6 @@ + }, + "node_modules/strip-literal": { + "version": "2.1.1", -+ "resolved": "https://registry.npmjs.org/strip-literal/-/strip-literal-2.1.1.tgz", -+ "integrity": "sha512-631UJ6O00eNGfMiWG78ck80dfBab8X6IVFB51jZK5Icd7XAs60Z5y7QdSd/wGIklnWvRbUNloVzhOKKmutxQ6Q==", + "license": "MIT", + "dependencies": { + "js-tokens": "^9.0.1" @@ -11538,14 +8427,10 @@ + }, + "node_modules/strip-literal/node_modules/js-tokens": { + "version": "9.0.1", -+ "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-9.0.1.tgz", -+ "integrity": "sha512-mxa9E9ITFOt0ban3j6L5MpjwegGz6lBQmM1IJkWeBZGcMxto50+eWdjC/52xDbS2vy0k7vIMK0Fe2wfL9OQSpQ==", + "license": "MIT" + }, + "node_modules/stripe": { + "version": "18.1.0", -+ "resolved": "https://registry.npmjs.org/stripe/-/stripe-18.1.0.tgz", -+ "integrity": "sha512-MLDiniPTHqcfIT3anyBPmOEcaiDhYa7/jRaNypQ3Rt2SJnayQZBvVbFghIziUCZdltGAndm/ZxVOSw6uuSCDig==", + "license": "MIT", + "dependencies": { + "qs": "^6.11.0" @@ -11564,8 +8449,6 @@ + }, + "node_modules/strnum": { + "version": "1.1.2", -+ "resolved": "https://registry.npmjs.org/strnum/-/strnum-1.1.2.tgz", -+ "integrity": "sha512-vrN+B7DBIoTTZjnPNewwhx6cBA/H+IS7rfW68n7XxC1y7uoiGQBxaKzqucGUgavX15dJgiGztLJ8vxuEzwqBdA==", + "funding": [ + { + "type": "github", @@ -11576,14 +8459,10 @@ + }, + "node_modules/stubs": { + "version": "3.0.0", -+ "resolved": "https://registry.npmjs.org/stubs/-/stubs-3.0.0.tgz", -+ "integrity": "sha512-PdHt7hHUJKxvTCgbKX9C1V/ftOcjJQgz8BZwNfV5c4B6dcGqlpelTbJ999jBGZ2jYiPAwcX5dP6oBwVlBlUbxw==", + "license": "MIT" + }, + "node_modules/sucrase": { + "version": "3.35.0", -+ "resolved": "https://registry.npmjs.org/sucrase/-/sucrase-3.35.0.tgz", -+ "integrity": "sha512-8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaSRUc/QPoQ0GA==", + "license": "MIT", + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.2", @@ -11604,8 +8483,6 @@ + }, + "node_modules/superjson": { + "version": "2.2.2", -+ "resolved": "https://registry.npmjs.org/superjson/-/superjson-2.2.2.tgz", -+ "integrity": "sha512-5JRxVqC8I8NuOUjzBbvVJAKNM8qoVuH0O77h4WInc/qC2q5IreqKxYwgkga3PfA22OayK2ikceb/B26dztPl+Q==", + "license": "MIT", + "dependencies": { + "copy-anything": "^3.0.2" @@ -11616,8 +8493,6 @@ + }, + "node_modules/supports-color": { + "version": "7.2.0", -+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", -+ "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" @@ -11628,8 +8503,6 @@ + }, + "node_modules/supports-preserve-symlinks-flag": { + "version": "1.0.0", -+ "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", -+ "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "license": "MIT", + "engines": { + "node": ">= 0.4" @@ -11640,8 +8513,6 @@ + }, + "node_modules/svg.draggable.js": { + "version": "2.2.2", -+ "resolved": "https://registry.npmjs.org/svg.draggable.js/-/svg.draggable.js-2.2.2.tgz", -+ "integrity": "sha512-JzNHBc2fLQMzYCZ90KZHN2ohXL0BQJGQimK1kGk6AvSeibuKcIdDX9Kr0dT9+UJ5O8nYA0RB839Lhvk4CY4MZw==", + "license": "MIT", + "dependencies": { + "svg.js": "^2.0.1" @@ -11652,8 +8523,6 @@ + }, + "node_modules/svg.easing.js": { + "version": "2.0.0", -+ "resolved": "https://registry.npmjs.org/svg.easing.js/-/svg.easing.js-2.0.0.tgz", -+ "integrity": "sha512-//ctPdJMGy22YoYGV+3HEfHbm6/69LJUTAqI2/5qBvaNHZ9uUFVC82B0Pl299HzgH13rKrBgi4+XyXXyVWWthA==", + "license": "MIT", + "dependencies": { + "svg.js": ">=2.3.x" @@ -11664,8 +8533,6 @@ + }, + "node_modules/svg.filter.js": { + "version": "2.0.2", -+ "resolved": "https://registry.npmjs.org/svg.filter.js/-/svg.filter.js-2.0.2.tgz", -+ "integrity": "sha512-xkGBwU+dKBzqg5PtilaTb0EYPqPfJ9Q6saVldX+5vCRy31P6TlRCP3U9NxH3HEufkKkpNgdTLBJnmhDHeTqAkw==", + "license": "MIT", + "dependencies": { + "svg.js": "^2.2.5" @@ -11676,14 +8543,10 @@ + }, + "node_modules/svg.js": { + "version": "2.7.1", -+ "resolved": "https://registry.npmjs.org/svg.js/-/svg.js-2.7.1.tgz", -+ "integrity": "sha512-ycbxpizEQktk3FYvn/8BH+6/EuWXg7ZpQREJvgacqn46gIddG24tNNe4Son6omdXCnSOaApnpZw6MPCBA1dODA==", + "license": "MIT" + }, + "node_modules/svg.pathmorphing.js": { + "version": "0.1.3", -+ "resolved": "https://registry.npmjs.org/svg.pathmorphing.js/-/svg.pathmorphing.js-0.1.3.tgz", -+ "integrity": "sha512-49HWI9X4XQR/JG1qXkSDV8xViuTLIWm/B/7YuQELV5KMOPtXjiwH4XPJvr/ghEDibmLQ9Oc22dpWpG0vUDDNww==", + "license": "MIT", + "dependencies": { + "svg.js": "^2.4.0" @@ -11694,8 +8557,6 @@ + }, + "node_modules/svg.resize.js": { + "version": "1.4.3", -+ "resolved": "https://registry.npmjs.org/svg.resize.js/-/svg.resize.js-1.4.3.tgz", -+ "integrity": "sha512-9k5sXJuPKp+mVzXNvxz7U0uC9oVMQrrf7cFsETznzUDDm0x8+77dtZkWdMfRlmbkEEYvUn9btKuZ3n41oNA+uw==", + "license": "MIT", + "dependencies": { + "svg.js": "^2.6.5", @@ -11707,8 +8568,6 @@ + }, + "node_modules/svg.resize.js/node_modules/svg.select.js": { + "version": "2.1.2", -+ "resolved": "https://registry.npmjs.org/svg.select.js/-/svg.select.js-2.1.2.tgz", -+ "integrity": "sha512-tH6ABEyJsAOVAhwcCjF8mw4crjXSI1aa7j2VQR8ZuJ37H2MBUbyeqYr5nEO7sSN3cy9AR9DUwNg0t/962HlDbQ==", + "license": "MIT", + "dependencies": { + "svg.js": "^2.2.5" @@ -11719,8 +8578,6 @@ + }, + "node_modules/svg.select.js": { + "version": "3.0.1", -+ "resolved": "https://registry.npmjs.org/svg.select.js/-/svg.select.js-3.0.1.tgz", -+ "integrity": "sha512-h5IS/hKkuVCbKSieR9uQCj9w+zLHoPh+ce19bBYyqF53g6mnPB8sAtIbe1s9dh2S2fCmYX2xel1Ln3PJBbK4kw==", + "license": "MIT", + "dependencies": { + "svg.js": "^2.6.5" @@ -11731,14 +8588,10 @@ + }, + "node_modules/symbol-tree": { + "version": "3.2.4", -+ "resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz", -+ "integrity": "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==", + "license": "MIT" + }, + "node_modules/tailwind-merge": { + "version": "2.6.0", -+ "resolved": "https://registry.npmjs.org/tailwind-merge/-/tailwind-merge-2.6.0.tgz", -+ "integrity": "sha512-P+Vu1qXfzediirmHOC3xKGAYeZtPcV9g76X+xg2FD4tYgR71ewMA35Y3sCz3zhiN/dwefRpJX0yBcgwi1fXNQA==", + "license": "MIT", + "funding": { + "type": "github", @@ -11747,8 +8600,6 @@ + }, + "node_modules/tailwindcss": { + "version": "3.4.17", -+ "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.4.17.tgz", -+ "integrity": "sha512-w33E2aCvSDP0tW9RZuNXadXlkHXqFzSkQew/aIa2i/Sj8fThxwovwlXHSPXTbAHwEIhBFXAedUhP2tueAKP8Og==", + "license": "MIT", + "dependencies": { + "@alloc/quick-lru": "^5.2.0", @@ -11784,8 +8635,6 @@ + }, + "node_modules/tailwindcss-animate": { + "version": "1.0.7", -+ "resolved": "https://registry.npmjs.org/tailwindcss-animate/-/tailwindcss-animate-1.0.7.tgz", -+ "integrity": "sha512-bl6mpH3T7I3UFxuvDEXLxy/VuFxBk5bbzplh7tXI68mwMokNYd1t9qPBHlnyTwfa4JGC4zP516I1hYYtQ/vspA==", + "license": "MIT", + "peerDependencies": { + "tailwindcss": ">=3.0.0 || insiders" @@ -11793,8 +8642,6 @@ + }, + "node_modules/tailwindcss/node_modules/postcss-selector-parser": { + "version": "6.1.2", -+ "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.1.2.tgz", -+ "integrity": "sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg==", + "license": "MIT", + "dependencies": { + "cssesc": "^3.0.0", @@ -11806,8 +8653,6 @@ + }, + "node_modules/teeny-request": { + "version": "9.0.0", -+ "resolved": "https://registry.npmjs.org/teeny-request/-/teeny-request-9.0.0.tgz", -+ "integrity": "sha512-resvxdc6Mgb7YEThw6G6bExlXKkv6+YbuzGg9xuXxSgxJF7Ozs+o8Y9+2R3sArdWdW8nOokoQb1yrpFB0pQK2g==", + "license": "Apache-2.0", + "dependencies": { + "http-proxy-agent": "^5.0.0", @@ -11822,8 +8667,6 @@ + }, + "node_modules/teeny-request/node_modules/agent-base": { + "version": "6.0.2", -+ "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", -+ "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", + "license": "MIT", + "dependencies": { + "debug": "4" @@ -11834,8 +8677,6 @@ + }, + "node_modules/teeny-request/node_modules/https-proxy-agent": { + "version": "5.0.1", -+ "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", -+ "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", + "license": "MIT", + "dependencies": { + "agent-base": "6", @@ -11847,8 +8688,6 @@ + }, + "node_modules/teeny-request/node_modules/node-fetch": { + "version": "2.7.0", -+ "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz", -+ "integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==", + "license": "MIT", + "dependencies": { + "whatwg-url": "^5.0.0" @@ -11867,8 +8706,6 @@ + }, + "node_modules/thenify": { + "version": "3.3.1", -+ "resolved": "https://registry.npmjs.org/thenify/-/thenify-3.3.1.tgz", -+ "integrity": "sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==", + "license": "MIT", + "dependencies": { + "any-promise": "^1.0.0" @@ -11876,8 +8713,6 @@ + }, + "node_modules/thenify-all": { + "version": "1.6.0", -+ "resolved": "https://registry.npmjs.org/thenify-all/-/thenify-all-1.6.0.tgz", -+ "integrity": "sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==", + "license": "MIT", + "dependencies": { + "thenify": ">= 3.1.0 < 4" @@ -11888,20 +8723,14 @@ + }, + "node_modules/through": { + "version": "2.3.8", -+ "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", -+ "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==", + "license": "MIT" + }, + "node_modules/tinybench": { + "version": "2.9.0", -+ "resolved": "https://registry.npmjs.org/tinybench/-/tinybench-2.9.0.tgz", -+ "integrity": "sha512-0+DUvqWMValLmha6lr4kD8iAMK1HzV0/aKnCtWb9v9641TnP/MFb7Pc2bxoxQjTXAErryXVgUOfv2YqNllqGeg==", + "license": "MIT" + }, + "node_modules/tinypool": { + "version": "0.8.4", -+ "resolved": "https://registry.npmjs.org/tinypool/-/tinypool-0.8.4.tgz", -+ "integrity": "sha512-i11VH5gS6IFeLY3gMBQ00/MmLncVP7JLXOw1vlgkytLmJK7QnEr7NXf0LBdxfmNPAeyetukOk0bOYrJrFGjYJQ==", + "license": "MIT", + "engines": { + "node": ">=14.0.0" @@ -11909,8 +8738,6 @@ + }, + "node_modules/tinyspy": { + "version": "2.2.1", -+ "resolved": "https://registry.npmjs.org/tinyspy/-/tinyspy-2.2.1.tgz", -+ "integrity": "sha512-KYad6Vy5VDWV4GH3fjpseMQ/XU2BhIYP7Vzd0LG44qRWm/Yt2WCOTicFdvmgo6gWaqooMQCawTtILVQJupKu7A==", + "license": "MIT", + "engines": { + "node": ">=14.0.0" @@ -11918,8 +8745,6 @@ + }, + "node_modules/tmp": { + "version": "0.0.33", -+ "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", -+ "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", + "license": "MIT", + "dependencies": { + "os-tmpdir": "~1.0.2" @@ -11930,8 +8755,6 @@ + }, + "node_modules/to-regex-range": { + "version": "5.0.1", -+ "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", -+ "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "license": "MIT", + "dependencies": { + "is-number": "^7.0.0" @@ -11942,8 +8765,6 @@ + }, + "node_modules/toidentifier": { + "version": "1.0.1", -+ "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", -+ "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", + "license": "MIT", + "engines": { + "node": ">=0.6" @@ -11951,8 +8772,6 @@ + }, + "node_modules/totalist": { + "version": "3.0.1", -+ "resolved": "https://registry.npmjs.org/totalist/-/totalist-3.0.1.tgz", -+ "integrity": "sha512-sf4i37nQ2LBx4m3wB74y+ubopq6W/dIzXg0FDGjsYnZHVa1Da8FH853wlL2gtUhg+xJXjfk3kUZS3BRoQeoQBQ==", + "license": "MIT", + "engines": { + "node": ">=6" @@ -11960,8 +8779,6 @@ + }, + "node_modules/tough-cookie": { + "version": "4.1.4", -+ "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.1.4.tgz", -+ "integrity": "sha512-Loo5UUvLD9ScZ6jh8beX1T6sO1w2/MpCRpEP7V280GKMVUQ0Jzar2U3UJPsrdbziLEMMhu3Ujnq//rhiFuIeag==", + "license": "BSD-3-Clause", + "dependencies": { + "psl": "^1.1.33", @@ -11975,26 +8792,18 @@ + }, + "node_modules/tr46": { + "version": "0.0.3", -+ "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", -+ "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==", + "license": "MIT" + }, + "node_modules/ts-interface-checker": { + "version": "0.1.13", -+ "resolved": "https://registry.npmjs.org/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz", -+ "integrity": "sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==", + "license": "Apache-2.0" + }, + "node_modules/tslib": { + "version": "2.8.1", -+ "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", -+ "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", + "license": "0BSD" + }, + "node_modules/type-detect": { + "version": "4.1.0", -+ "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.1.0.tgz", -+ "integrity": "sha512-Acylog8/luQ8L7il+geoSxhEkazvkslg7PSNKOX59mbB9cOveP5aq9h74Y7YU8yDpJwetzQQrfIwtf4Wp4LKcw==", + "license": "MIT", + "engines": { + "node": ">=4" @@ -12002,8 +8811,6 @@ + }, + "node_modules/type-fest": { + "version": "2.19.0", -+ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-2.19.0.tgz", -+ "integrity": "sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==", + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=12.20" @@ -12014,8 +8821,6 @@ + }, + "node_modules/type-is": { + "version": "2.0.1", -+ "resolved": "https://registry.npmjs.org/type-is/-/type-is-2.0.1.tgz", -+ "integrity": "sha512-OZs6gsjF4vMp32qrCbiVSkrFmXtG/AZhY3t0iAMrMBiAZyV9oALtXO8hsrHbMXF9x6L3grlFuwW2oAz7cav+Gw==", + "license": "MIT", + "dependencies": { + "content-type": "^1.0.5", @@ -12028,8 +8833,6 @@ + }, + "node_modules/type-is/node_modules/mime-db": { + "version": "1.54.0", -+ "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.54.0.tgz", -+ "integrity": "sha512-aU5EJuIN2WDemCcAp2vFBfp/m4EAhWJnUNSSw0ixs7/kXbd6Pg64EmwJkNdFhB8aWt1sH2CTXrLxo/iAGV3oPQ==", + "license": "MIT", + "engines": { + "node": ">= 0.6" @@ -12037,8 +8840,6 @@ + }, + "node_modules/type-is/node_modules/mime-types": { + "version": "3.0.1", -+ "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-3.0.1.tgz", -+ "integrity": "sha512-xRc4oEhT6eaBpU1XF7AjpOFD+xQmXNB5OVKwp4tqCuBpHLS/ZbBDrc07mYTDqVMg6PfxUjjNp85O6Cd2Z/5HWA==", + "license": "MIT", + "dependencies": { + "mime-db": "^1.54.0" @@ -12049,8 +8850,6 @@ + }, + "node_modules/typescript": { + "version": "5.8.2", -+ "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.8.2.tgz", -+ "integrity": "sha512-aJn6wq13/afZp/jT9QZmwEjDqqvSGp1VT5GVg+f/t6/oVyrgXM6BY1h9BRh/O5p3PlUPAe+WuiEZOmb/49RqoQ==", + "devOptional": true, + "license": "Apache-2.0", + "bin": { @@ -12063,20 +8862,14 @@ + }, + "node_modules/ufo": { + "version": "1.5.4", -+ "resolved": "https://registry.npmjs.org/ufo/-/ufo-1.5.4.tgz", -+ "integrity": "sha512-UsUk3byDzKd04EyoZ7U4DOlxQaD14JUKQl6/P7wiX4FNvUfm3XL246n9W5AmqwW5RSFJ27NAuM0iLscAOYUiGQ==", + "license": "MIT" + }, + "node_modules/undici-types": { + "version": "6.20.0", -+ "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.20.0.tgz", -+ "integrity": "sha512-Ny6QZ2Nju20vw1SRHe3d9jVu6gJ+4e3+MMpqu7pqE5HT6WsTSlce++GQmK5UXS8mzV8DSYHrQH+Xrf2jVcuKNg==", + "license": "MIT" + }, + "node_modules/universalify": { + "version": "0.2.0", -+ "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.2.0.tgz", -+ "integrity": "sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==", + "license": "MIT", + "engines": { + "node": ">= 4.0.0" @@ -12084,8 +8877,6 @@ + }, + "node_modules/unpipe": { + "version": "1.0.0", -+ "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", -+ "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==", + "license": "MIT", + "engines": { + "node": ">= 0.8" @@ -12093,8 +8884,6 @@ + }, + "node_modules/update-browserslist-db": { + "version": "1.1.3", -+ "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.3.tgz", -+ "integrity": "sha512-UxhIZQ+QInVdunkDAaiazvvT/+fXL5Osr0JZlJulepYu6Jd7qJtDZjlur0emRlT71EN3ScPoE7gvsuIKKNavKw==", + "funding": [ + { + "type": "opencollective", @@ -12123,8 +8912,6 @@ + }, + "node_modules/url-parse": { + "version": "1.5.10", -+ "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.5.10.tgz", -+ "integrity": "sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==", + "license": "MIT", + "dependencies": { + "querystringify": "^2.1.1", @@ -12133,8 +8920,6 @@ + }, + "node_modules/use-callback-ref": { + "version": "1.3.3", -+ "resolved": "https://registry.npmjs.org/use-callback-ref/-/use-callback-ref-1.3.3.tgz", -+ "integrity": "sha512-jQL3lRnocaFtu3V00JToYz/4QkNWswxijDaCVNZRiRTO3HQDLsdu1ZtmIUvV4yPp+rvWm5j0y0TG/S61cuijTg==", + "license": "MIT", + "dependencies": { + "tslib": "^2.0.0" @@ -12154,8 +8939,6 @@ + }, + "node_modules/use-sidecar": { + "version": "1.1.3", -+ "resolved": "https://registry.npmjs.org/use-sidecar/-/use-sidecar-1.1.3.tgz", -+ "integrity": "sha512-Fedw0aZvkhynoPYlA5WXrMCAMm+nSWdZt6lzJQ7Ok8S6Q+VsHmHpRWndVRJ8Be0ZbkfPc5LRYH+5XrzXcEeLRQ==", + "license": "MIT", + "dependencies": { + "detect-node-es": "^1.1.0", @@ -12176,8 +8959,6 @@ + }, + "node_modules/use-sync-external-store": { + "version": "1.5.0", -+ "resolved": "https://registry.npmjs.org/use-sync-external-store/-/use-sync-external-store-1.5.0.tgz", -+ "integrity": "sha512-Rb46I4cGGVBmjamjphe8L/UnvJD+uPPtTkNvX5mZgqdbavhI4EbgIWJiIHXJ8bc/i9EQGPRh4DwEURJ552Do0A==", + "license": "MIT", + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" @@ -12185,8 +8966,6 @@ + }, + "node_modules/util": { + "version": "0.12.5", -+ "resolved": "https://registry.npmjs.org/util/-/util-0.12.5.tgz", -+ "integrity": "sha512-kZf/K6hEIrWHI6XqOFUiiMa+79wE/D8Q+NCNAWclkyg3b4d2k7s0QGepNjiABc+aR3N1PAyHL7p6UcLY6LmrnA==", + "license": "MIT", + "dependencies": { + "inherits": "^2.0.3", @@ -12198,14 +8977,10 @@ + }, + "node_modules/util-deprecate": { + "version": "1.0.2", -+ "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", -+ "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", + "license": "MIT" + }, + "node_modules/uuid": { + "version": "9.0.1", -+ "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.1.tgz", -+ "integrity": "sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==", + "funding": [ + "https://github.com/sponsors/broofa", + "https://github.com/sponsors/ctavan" @@ -12217,14 +8992,10 @@ + }, + "node_modules/vanilla-cookieconsent": { + "version": "3.1.0", -+ "resolved": "https://registry.npmjs.org/vanilla-cookieconsent/-/vanilla-cookieconsent-3.1.0.tgz", -+ "integrity": "sha512-/McNRtm/3IXzb9dhqMIcbquoU45SzbN2VB+To4jxEPqMmp7uVniP6BhGLjU8MC7ZCDsNQVOp27fhQTM/ruIXAA==", + "license": "MIT" + }, + "node_modules/vary": { + "version": "1.1.2", -+ "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", -+ "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==", + "license": "MIT", + "engines": { + "node": ">= 0.8" @@ -12232,8 +9003,6 @@ + }, + "node_modules/vite": { + "version": "4.5.9", -+ "resolved": "https://registry.npmjs.org/vite/-/vite-4.5.9.tgz", -+ "integrity": "sha512-qK9W4xjgD3gXbC0NmdNFFnVFLMWSNiR3swj957yutwzzN16xF/E7nmtAyp1rT9hviDroQANjE4HK3H4WqWdFtw==", + "dev": true, + "license": "MIT", + "dependencies": { @@ -12287,374 +9056,34 @@ + } + }, + "node_modules/vite-node": { -+ "version": "1.6.1", -+ "resolved": "https://registry.npmjs.org/vite-node/-/vite-node-1.6.1.tgz", -+ "integrity": "sha512-YAXkfvGtuTzwWbDSACdJSg4A4DZiAqckWe90Zapc/sEX3XvHcw1NdurM/6od8J207tSDqNbSsgdCacBgvJKFuA==", -+ "license": "MIT", -+ "dependencies": { -+ "cac": "^6.7.14", -+ "debug": "^4.3.4", -+ "pathe": "^1.1.1", -+ "picocolors": "^1.0.0", -+ "vite": "^5.0.0" -+ }, -+ "bin": { -+ "vite-node": "vite-node.mjs" -+ }, -+ "engines": { -+ "node": "^18.0.0 || >=20.0.0" -+ }, -+ "funding": { -+ "url": "https://opencollective.com/vitest" -+ } -+ }, -+ "node_modules/vite-node/node_modules/@esbuild/android-arm": { -+ "version": "0.21.5", -+ "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.21.5.tgz", -+ "integrity": "sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==", -+ "cpu": [ -+ "arm" -+ ], -+ "license": "MIT", -+ "optional": true, -+ "os": [ -+ "android" -+ ], -+ "engines": { -+ "node": ">=12" -+ } -+ }, -+ "node_modules/vite-node/node_modules/@esbuild/android-arm64": { -+ "version": "0.21.5", -+ "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.21.5.tgz", -+ "integrity": "sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==", -+ "cpu": [ -+ "arm64" -+ ], -+ "license": "MIT", -+ "optional": true, -+ "os": [ -+ "android" -+ ], -+ "engines": { -+ "node": ">=12" -+ } -+ }, -+ "node_modules/vite-node/node_modules/@esbuild/android-x64": { -+ "version": "0.21.5", -+ "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.21.5.tgz", -+ "integrity": "sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==", -+ "cpu": [ -+ "x64" -+ ], -+ "license": "MIT", -+ "optional": true, -+ "os": [ -+ "android" -+ ], -+ "engines": { -+ "node": ">=12" -+ } -+ }, -+ "node_modules/vite-node/node_modules/@esbuild/darwin-arm64": { -+ "version": "0.21.5", -+ "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.21.5.tgz", -+ "integrity": "sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==", -+ "cpu": [ -+ "arm64" -+ ], -+ "license": "MIT", -+ "optional": true, -+ "os": [ -+ "darwin" -+ ], -+ "engines": { -+ "node": ">=12" -+ } -+ }, -+ "node_modules/vite-node/node_modules/@esbuild/darwin-x64": { -+ "version": "0.21.5", -+ "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.21.5.tgz", -+ "integrity": "sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==", -+ "cpu": [ -+ "x64" -+ ], -+ "license": "MIT", -+ "optional": true, -+ "os": [ -+ "darwin" -+ ], -+ "engines": { -+ "node": ">=12" -+ } -+ }, -+ "node_modules/vite-node/node_modules/@esbuild/freebsd-arm64": { -+ "version": "0.21.5", -+ "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.21.5.tgz", -+ "integrity": "sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==", -+ "cpu": [ -+ "arm64" -+ ], -+ "license": "MIT", -+ "optional": true, -+ "os": [ -+ "freebsd" -+ ], -+ "engines": { -+ "node": ">=12" -+ } -+ }, -+ "node_modules/vite-node/node_modules/@esbuild/freebsd-x64": { -+ "version": "0.21.5", -+ "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.21.5.tgz", -+ "integrity": "sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==", -+ "cpu": [ -+ "x64" -+ ], -+ "license": "MIT", -+ "optional": true, -+ "os": [ -+ "freebsd" -+ ], -+ "engines": { -+ "node": ">=12" -+ } -+ }, -+ "node_modules/vite-node/node_modules/@esbuild/linux-arm": { -+ "version": "0.21.5", -+ "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.21.5.tgz", -+ "integrity": "sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==", -+ "cpu": [ -+ "arm" -+ ], -+ "license": "MIT", -+ "optional": true, -+ "os": [ -+ "linux" -+ ], -+ "engines": { -+ "node": ">=12" -+ } -+ }, -+ "node_modules/vite-node/node_modules/@esbuild/linux-arm64": { -+ "version": "0.21.5", -+ "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.21.5.tgz", -+ "integrity": "sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==", -+ "cpu": [ -+ "arm64" -+ ], -+ "license": "MIT", -+ "optional": true, -+ "os": [ -+ "linux" -+ ], -+ "engines": { -+ "node": ">=12" -+ } -+ }, -+ "node_modules/vite-node/node_modules/@esbuild/linux-ia32": { -+ "version": "0.21.5", -+ "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.21.5.tgz", -+ "integrity": "sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==", -+ "cpu": [ -+ "ia32" -+ ], -+ "license": "MIT", -+ "optional": true, -+ "os": [ -+ "linux" -+ ], -+ "engines": { -+ "node": ">=12" -+ } -+ }, -+ "node_modules/vite-node/node_modules/@esbuild/linux-loong64": { -+ "version": "0.21.5", -+ "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.21.5.tgz", -+ "integrity": "sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==", -+ "cpu": [ -+ "loong64" -+ ], -+ "license": "MIT", -+ "optional": true, -+ "os": [ -+ "linux" -+ ], -+ "engines": { -+ "node": ">=12" -+ } -+ }, -+ "node_modules/vite-node/node_modules/@esbuild/linux-mips64el": { -+ "version": "0.21.5", -+ "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.21.5.tgz", -+ "integrity": "sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==", -+ "cpu": [ -+ "mips64el" -+ ], -+ "license": "MIT", -+ "optional": true, -+ "os": [ -+ "linux" -+ ], -+ "engines": { -+ "node": ">=12" -+ } -+ }, -+ "node_modules/vite-node/node_modules/@esbuild/linux-ppc64": { -+ "version": "0.21.5", -+ "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.21.5.tgz", -+ "integrity": "sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==", -+ "cpu": [ -+ "ppc64" -+ ], -+ "license": "MIT", -+ "optional": true, -+ "os": [ -+ "linux" -+ ], -+ "engines": { -+ "node": ">=12" -+ } -+ }, -+ "node_modules/vite-node/node_modules/@esbuild/linux-riscv64": { -+ "version": "0.21.5", -+ "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.21.5.tgz", -+ "integrity": "sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==", -+ "cpu": [ -+ "riscv64" -+ ], -+ "license": "MIT", -+ "optional": true, -+ "os": [ -+ "linux" -+ ], -+ "engines": { -+ "node": ">=12" -+ } -+ }, -+ "node_modules/vite-node/node_modules/@esbuild/linux-s390x": { -+ "version": "0.21.5", -+ "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.21.5.tgz", -+ "integrity": "sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==", -+ "cpu": [ -+ "s390x" -+ ], -+ "license": "MIT", -+ "optional": true, -+ "os": [ -+ "linux" -+ ], -+ "engines": { -+ "node": ">=12" -+ } -+ }, -+ "node_modules/vite-node/node_modules/@esbuild/linux-x64": { -+ "version": "0.21.5", -+ "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.21.5.tgz", -+ "integrity": "sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==", -+ "cpu": [ -+ "x64" -+ ], -+ "license": "MIT", -+ "optional": true, -+ "os": [ -+ "linux" -+ ], -+ "engines": { -+ "node": ">=12" -+ } -+ }, -+ "node_modules/vite-node/node_modules/@esbuild/netbsd-x64": { -+ "version": "0.21.5", -+ "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.21.5.tgz", -+ "integrity": "sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==", -+ "cpu": [ -+ "x64" -+ ], -+ "license": "MIT", -+ "optional": true, -+ "os": [ -+ "netbsd" -+ ], -+ "engines": { -+ "node": ">=12" -+ } -+ }, -+ "node_modules/vite-node/node_modules/@esbuild/openbsd-x64": { -+ "version": "0.21.5", -+ "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.21.5.tgz", -+ "integrity": "sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==", -+ "cpu": [ -+ "x64" -+ ], -+ "license": "MIT", -+ "optional": true, -+ "os": [ -+ "openbsd" -+ ], -+ "engines": { -+ "node": ">=12" -+ } -+ }, -+ "node_modules/vite-node/node_modules/@esbuild/sunos-x64": { -+ "version": "0.21.5", -+ "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.21.5.tgz", -+ "integrity": "sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==", -+ "cpu": [ -+ "x64" -+ ], -+ "license": "MIT", -+ "optional": true, -+ "os": [ -+ "sunos" -+ ], -+ "engines": { -+ "node": ">=12" -+ } -+ }, -+ "node_modules/vite-node/node_modules/@esbuild/win32-arm64": { -+ "version": "0.21.5", -+ "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.21.5.tgz", -+ "integrity": "sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==", -+ "cpu": [ -+ "arm64" -+ ], -+ "license": "MIT", -+ "optional": true, -+ "os": [ -+ "win32" -+ ], -+ "engines": { -+ "node": ">=12" -+ } -+ }, -+ "node_modules/vite-node/node_modules/@esbuild/win32-ia32": { -+ "version": "0.21.5", -+ "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.21.5.tgz", -+ "integrity": "sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==", -+ "cpu": [ -+ "ia32" -+ ], -+ "license": "MIT", -+ "optional": true, -+ "os": [ -+ "win32" -+ ], ++ "version": "1.6.1", ++ "license": "MIT", ++ "dependencies": { ++ "cac": "^6.7.14", ++ "debug": "^4.3.4", ++ "pathe": "^1.1.1", ++ "picocolors": "^1.0.0", ++ "vite": "^5.0.0" ++ }, ++ "bin": { ++ "vite-node": "vite-node.mjs" ++ }, + "engines": { -+ "node": ">=12" ++ "node": "^18.0.0 || >=20.0.0" ++ }, ++ "funding": { ++ "url": "https://opencollective.com/vitest" + } + }, -+ "node_modules/vite-node/node_modules/@esbuild/win32-x64": { ++ "node_modules/vite-node/node_modules/@esbuild/darwin-arm64": { + "version": "0.21.5", -+ "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.21.5.tgz", -+ "integrity": "sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==", + "cpu": [ -+ "x64" ++ "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ -+ "win32" ++ "darwin" + ], + "engines": { + "node": ">=12" @@ -12662,8 +9091,6 @@ + }, + "node_modules/vite-node/node_modules/esbuild": { + "version": "0.21.5", -+ "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.21.5.tgz", -+ "integrity": "sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==", + "hasInstallScript": true, + "license": "MIT", + "bin": { @@ -12700,8 +9127,6 @@ + }, + "node_modules/vite-node/node_modules/rollup": { + "version": "4.36.0", -+ "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.36.0.tgz", -+ "integrity": "sha512-zwATAXNQxUcd40zgtQG0ZafcRK4g004WtEl7kbuhTWPvf07PsfohXl39jVUvPF7jvNAIkKPQ2XrsDlWuxBd++Q==", + "license": "MIT", + "dependencies": { + "@types/estree": "1.0.6" @@ -12738,8 +9163,6 @@ + }, + "node_modules/vite-node/node_modules/vite": { + "version": "5.4.14", -+ "resolved": "https://registry.npmjs.org/vite/-/vite-5.4.14.tgz", -+ "integrity": "sha512-EK5cY7Q1D8JNhSaPKVK4pwBFvaTmZxEnoKXLG/U9gmdDcihQGNzFlgIvaxezFR4glP1LsuiedwMBqCXH3wZccA==", + "license": "MIT", + "dependencies": { + "esbuild": "^0.21.3", @@ -12797,8 +9220,6 @@ + }, + "node_modules/vitest": { + "version": "1.6.1", -+ "resolved": "https://registry.npmjs.org/vitest/-/vitest-1.6.1.tgz", -+ "integrity": "sha512-Ljb1cnSJSivGN0LqXd/zmDbWEM0RNNg2t1QW/XUhYl/qPqyu7CsqeWtqQXHVaJsecLPuDoak2oJcZN2QoRIOag==", + "license": "MIT", + "dependencies": { + "@vitest/expect": "1.6.1", @@ -12860,58 +9281,8 @@ + } + } + }, -+ "node_modules/vitest/node_modules/@esbuild/android-arm": { -+ "version": "0.21.5", -+ "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.21.5.tgz", -+ "integrity": "sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==", -+ "cpu": [ -+ "arm" -+ ], -+ "license": "MIT", -+ "optional": true, -+ "os": [ -+ "android" -+ ], -+ "engines": { -+ "node": ">=12" -+ } -+ }, -+ "node_modules/vitest/node_modules/@esbuild/android-arm64": { -+ "version": "0.21.5", -+ "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.21.5.tgz", -+ "integrity": "sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==", -+ "cpu": [ -+ "arm64" -+ ], -+ "license": "MIT", -+ "optional": true, -+ "os": [ -+ "android" -+ ], -+ "engines": { -+ "node": ">=12" -+ } -+ }, -+ "node_modules/vitest/node_modules/@esbuild/android-x64": { -+ "version": "0.21.5", -+ "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.21.5.tgz", -+ "integrity": "sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==", -+ "cpu": [ -+ "x64" -+ ], -+ "license": "MIT", -+ "optional": true, -+ "os": [ -+ "android" -+ ], -+ "engines": { -+ "node": ">=12" -+ } -+ }, + "node_modules/vitest/node_modules/@esbuild/darwin-arm64": { + "version": "0.21.5", -+ "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.21.5.tgz", -+ "integrity": "sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==", + "cpu": [ + "arm64" + ], @@ -12924,298 +9295,8 @@ + "node": ">=12" + } + }, -+ "node_modules/vitest/node_modules/@esbuild/darwin-x64": { -+ "version": "0.21.5", -+ "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.21.5.tgz", -+ "integrity": "sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==", -+ "cpu": [ -+ "x64" -+ ], -+ "license": "MIT", -+ "optional": true, -+ "os": [ -+ "darwin" -+ ], -+ "engines": { -+ "node": ">=12" -+ } -+ }, -+ "node_modules/vitest/node_modules/@esbuild/freebsd-arm64": { -+ "version": "0.21.5", -+ "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.21.5.tgz", -+ "integrity": "sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==", -+ "cpu": [ -+ "arm64" -+ ], -+ "license": "MIT", -+ "optional": true, -+ "os": [ -+ "freebsd" -+ ], -+ "engines": { -+ "node": ">=12" -+ } -+ }, -+ "node_modules/vitest/node_modules/@esbuild/freebsd-x64": { -+ "version": "0.21.5", -+ "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.21.5.tgz", -+ "integrity": "sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==", -+ "cpu": [ -+ "x64" -+ ], -+ "license": "MIT", -+ "optional": true, -+ "os": [ -+ "freebsd" -+ ], -+ "engines": { -+ "node": ">=12" -+ } -+ }, -+ "node_modules/vitest/node_modules/@esbuild/linux-arm": { -+ "version": "0.21.5", -+ "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.21.5.tgz", -+ "integrity": "sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==", -+ "cpu": [ -+ "arm" -+ ], -+ "license": "MIT", -+ "optional": true, -+ "os": [ -+ "linux" -+ ], -+ "engines": { -+ "node": ">=12" -+ } -+ }, -+ "node_modules/vitest/node_modules/@esbuild/linux-arm64": { -+ "version": "0.21.5", -+ "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.21.5.tgz", -+ "integrity": "sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==", -+ "cpu": [ -+ "arm64" -+ ], -+ "license": "MIT", -+ "optional": true, -+ "os": [ -+ "linux" -+ ], -+ "engines": { -+ "node": ">=12" -+ } -+ }, -+ "node_modules/vitest/node_modules/@esbuild/linux-ia32": { -+ "version": "0.21.5", -+ "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.21.5.tgz", -+ "integrity": "sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==", -+ "cpu": [ -+ "ia32" -+ ], -+ "license": "MIT", -+ "optional": true, -+ "os": [ -+ "linux" -+ ], -+ "engines": { -+ "node": ">=12" -+ } -+ }, -+ "node_modules/vitest/node_modules/@esbuild/linux-loong64": { -+ "version": "0.21.5", -+ "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.21.5.tgz", -+ "integrity": "sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==", -+ "cpu": [ -+ "loong64" -+ ], -+ "license": "MIT", -+ "optional": true, -+ "os": [ -+ "linux" -+ ], -+ "engines": { -+ "node": ">=12" -+ } -+ }, -+ "node_modules/vitest/node_modules/@esbuild/linux-mips64el": { -+ "version": "0.21.5", -+ "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.21.5.tgz", -+ "integrity": "sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==", -+ "cpu": [ -+ "mips64el" -+ ], -+ "license": "MIT", -+ "optional": true, -+ "os": [ -+ "linux" -+ ], -+ "engines": { -+ "node": ">=12" -+ } -+ }, -+ "node_modules/vitest/node_modules/@esbuild/linux-ppc64": { -+ "version": "0.21.5", -+ "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.21.5.tgz", -+ "integrity": "sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==", -+ "cpu": [ -+ "ppc64" -+ ], -+ "license": "MIT", -+ "optional": true, -+ "os": [ -+ "linux" -+ ], -+ "engines": { -+ "node": ">=12" -+ } -+ }, -+ "node_modules/vitest/node_modules/@esbuild/linux-riscv64": { -+ "version": "0.21.5", -+ "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.21.5.tgz", -+ "integrity": "sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==", -+ "cpu": [ -+ "riscv64" -+ ], -+ "license": "MIT", -+ "optional": true, -+ "os": [ -+ "linux" -+ ], -+ "engines": { -+ "node": ">=12" -+ } -+ }, -+ "node_modules/vitest/node_modules/@esbuild/linux-s390x": { -+ "version": "0.21.5", -+ "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.21.5.tgz", -+ "integrity": "sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==", -+ "cpu": [ -+ "s390x" -+ ], -+ "license": "MIT", -+ "optional": true, -+ "os": [ -+ "linux" -+ ], -+ "engines": { -+ "node": ">=12" -+ } -+ }, -+ "node_modules/vitest/node_modules/@esbuild/linux-x64": { -+ "version": "0.21.5", -+ "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.21.5.tgz", -+ "integrity": "sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==", -+ "cpu": [ -+ "x64" -+ ], -+ "license": "MIT", -+ "optional": true, -+ "os": [ -+ "linux" -+ ], -+ "engines": { -+ "node": ">=12" -+ } -+ }, -+ "node_modules/vitest/node_modules/@esbuild/netbsd-x64": { -+ "version": "0.21.5", -+ "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.21.5.tgz", -+ "integrity": "sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==", -+ "cpu": [ -+ "x64" -+ ], -+ "license": "MIT", -+ "optional": true, -+ "os": [ -+ "netbsd" -+ ], -+ "engines": { -+ "node": ">=12" -+ } -+ }, -+ "node_modules/vitest/node_modules/@esbuild/openbsd-x64": { -+ "version": "0.21.5", -+ "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.21.5.tgz", -+ "integrity": "sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==", -+ "cpu": [ -+ "x64" -+ ], -+ "license": "MIT", -+ "optional": true, -+ "os": [ -+ "openbsd" -+ ], -+ "engines": { -+ "node": ">=12" -+ } -+ }, -+ "node_modules/vitest/node_modules/@esbuild/sunos-x64": { -+ "version": "0.21.5", -+ "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.21.5.tgz", -+ "integrity": "sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==", -+ "cpu": [ -+ "x64" -+ ], -+ "license": "MIT", -+ "optional": true, -+ "os": [ -+ "sunos" -+ ], -+ "engines": { -+ "node": ">=12" -+ } -+ }, -+ "node_modules/vitest/node_modules/@esbuild/win32-arm64": { -+ "version": "0.21.5", -+ "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.21.5.tgz", -+ "integrity": "sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==", -+ "cpu": [ -+ "arm64" -+ ], -+ "license": "MIT", -+ "optional": true, -+ "os": [ -+ "win32" -+ ], -+ "engines": { -+ "node": ">=12" -+ } -+ }, -+ "node_modules/vitest/node_modules/@esbuild/win32-ia32": { -+ "version": "0.21.5", -+ "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.21.5.tgz", -+ "integrity": "sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==", -+ "cpu": [ -+ "ia32" -+ ], -+ "license": "MIT", -+ "optional": true, -+ "os": [ -+ "win32" -+ ], -+ "engines": { -+ "node": ">=12" -+ } -+ }, -+ "node_modules/vitest/node_modules/@esbuild/win32-x64": { -+ "version": "0.21.5", -+ "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.21.5.tgz", -+ "integrity": "sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==", -+ "cpu": [ -+ "x64" -+ ], -+ "license": "MIT", -+ "optional": true, -+ "os": [ -+ "win32" -+ ], -+ "engines": { -+ "node": ">=12" -+ } -+ }, + "node_modules/vitest/node_modules/esbuild": { + "version": "0.21.5", -+ "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.21.5.tgz", -+ "integrity": "sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==", + "hasInstallScript": true, + "license": "MIT", + "bin": { @@ -13252,8 +9333,6 @@ + }, + "node_modules/vitest/node_modules/rollup": { + "version": "4.36.0", -+ "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.36.0.tgz", -+ "integrity": "sha512-zwATAXNQxUcd40zgtQG0ZafcRK4g004WtEl7kbuhTWPvf07PsfohXl39jVUvPF7jvNAIkKPQ2XrsDlWuxBd++Q==", + "license": "MIT", + "dependencies": { + "@types/estree": "1.0.6" @@ -13290,8 +9369,6 @@ + }, + "node_modules/vitest/node_modules/vite": { + "version": "5.4.14", -+ "resolved": "https://registry.npmjs.org/vite/-/vite-5.4.14.tgz", -+ "integrity": "sha512-EK5cY7Q1D8JNhSaPKVK4pwBFvaTmZxEnoKXLG/U9gmdDcihQGNzFlgIvaxezFR4glP1LsuiedwMBqCXH3wZccA==", + "license": "MIT", + "dependencies": { + "esbuild": "^0.21.3", @@ -13349,8 +9426,6 @@ + }, + "node_modules/w3c-xmlserializer": { + "version": "4.0.0", -+ "resolved": "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-4.0.0.tgz", -+ "integrity": "sha512-d+BFHzbiCx6zGfz0HyQ6Rg69w9k19nviJspaj4yNscGjrHu94sVP+aRm75yEbCh+r2/yR+7q6hux9LVtbuTGBw==", + "license": "MIT", + "dependencies": { + "xml-name-validator": "^4.0.0" @@ -13365,8 +9440,6 @@ + }, + "node_modules/wcwidth": { + "version": "1.0.1", -+ "resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz", -+ "integrity": "sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==", + "license": "MIT", + "dependencies": { + "defaults": "^1.0.3" @@ -13374,8 +9447,6 @@ + }, + "node_modules/web-encoding": { + "version": "1.1.5", -+ "resolved": "https://registry.npmjs.org/web-encoding/-/web-encoding-1.1.5.tgz", -+ "integrity": "sha512-HYLeVCdJ0+lBYV2FvNZmv3HJ2Nt0QYXqZojk3d9FJOLkwnuhzM9tmamh8d7HPM8QqjKH8DeHkFTx+CFlWpZZDA==", + "license": "MIT", + "dependencies": { + "util": "^0.12.3" @@ -13386,8 +9457,6 @@ + }, + "node_modules/web-streams-polyfill": { + "version": "3.3.3", -+ "resolved": "https://registry.npmjs.org/web-streams-polyfill/-/web-streams-polyfill-3.3.3.tgz", -+ "integrity": "sha512-d2JWLCivmZYTSIoge9MsgFCZrt571BikcWGYkjC1khllbTeDlGqZ2D8vD8E/lJa8WGWbb7Plm8/XJYV7IJHZZw==", + "license": "MIT", + "engines": { + "node": ">= 8" @@ -13395,14 +9464,10 @@ + }, + "node_modules/webidl-conversions": { + "version": "3.0.1", -+ "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", -+ "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==", + "license": "BSD-2-Clause" + }, + "node_modules/whatwg-encoding": { + "version": "2.0.0", -+ "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-2.0.0.tgz", -+ "integrity": "sha512-p41ogyeMUrw3jWclHWTQg1k05DSVXPLcVxRTYsXUk+ZooOCZLcoYgPZ/HL/D/N+uQPOtcp1me1WhBEaX02mhWg==", + "license": "MIT", + "dependencies": { + "iconv-lite": "0.6.3" @@ -13413,8 +9478,6 @@ + }, + "node_modules/whatwg-encoding/node_modules/iconv-lite": { + "version": "0.6.3", -+ "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", -+ "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "license": "MIT", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3.0.0" @@ -13425,8 +9488,6 @@ + }, + "node_modules/whatwg-mimetype": { + "version": "3.0.0", -+ "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-3.0.0.tgz", -+ "integrity": "sha512-nt+N2dzIutVRxARx1nghPKGv1xHikU7HKdfafKkLNLindmPU/ch3U31NOCGGA/dmPcmb1VlofO0vnKAcsm0o/Q==", + "license": "MIT", + "engines": { + "node": ">=12" @@ -13434,8 +9495,6 @@ + }, + "node_modules/whatwg-url": { + "version": "5.0.0", -+ "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", -+ "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", + "license": "MIT", + "dependencies": { + "tr46": "~0.0.3", @@ -13444,8 +9503,6 @@ + }, + "node_modules/which": { + "version": "2.0.2", -+ "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", -+ "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "license": "ISC", + "dependencies": { + "isexe": "^2.0.0" @@ -13459,8 +9516,6 @@ + }, + "node_modules/which-boxed-primitive": { + "version": "1.1.1", -+ "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.1.1.tgz", -+ "integrity": "sha512-TbX3mj8n0odCBFVlY8AxkqcHASw3L60jIuF8jFP78az3C2YhmGvqbHBpAjTRH2/xqYunrJ9g1jSyjCjpoWzIAA==", + "license": "MIT", + "dependencies": { + "is-bigint": "^1.1.0", @@ -13478,8 +9533,6 @@ + }, + "node_modules/which-collection": { + "version": "1.0.2", -+ "resolved": "https://registry.npmjs.org/which-collection/-/which-collection-1.0.2.tgz", -+ "integrity": "sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw==", + "license": "MIT", + "dependencies": { + "is-map": "^2.0.3", @@ -13496,8 +9549,6 @@ + }, + "node_modules/which-typed-array": { + "version": "1.1.19", -+ "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.19.tgz", -+ "integrity": "sha512-rEvr90Bck4WZt9HHFC4DJMsjvu7x+r6bImz0/BrbWb7A2djJ8hnZMrWnHo9F8ssv0OMErasDhftrfROTyqSDrw==", + "license": "MIT", + "dependencies": { + "available-typed-arrays": "^1.0.7", @@ -13517,8 +9568,6 @@ + }, + "node_modules/why-is-node-running": { + "version": "2.3.0", -+ "resolved": "https://registry.npmjs.org/why-is-node-running/-/why-is-node-running-2.3.0.tgz", -+ "integrity": "sha512-hUrmaWBdVDcxvYqnyh09zunKzROWjbZTiNy8dBEjkS7ehEDQibXJ7XvlmtbwuTclUiIyN+CyXQD4Vmko8fNm8w==", + "license": "MIT", + "dependencies": { + "siginfo": "^2.0.0", @@ -13533,8 +9582,6 @@ + }, + "node_modules/wrap-ansi": { + "version": "8.1.0", -+ "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", -+ "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", + "license": "MIT", + "dependencies": { + "ansi-styles": "^6.1.0", @@ -13551,8 +9598,6 @@ + "node_modules/wrap-ansi-cjs": { + "name": "wrap-ansi", + "version": "7.0.0", -+ "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", -+ "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.0.0", @@ -13568,8 +9613,6 @@ + }, + "node_modules/wrap-ansi-cjs/node_modules/ansi-regex": { + "version": "5.0.1", -+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", -+ "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "license": "MIT", + "engines": { + "node": ">=8" @@ -13577,8 +9620,6 @@ + }, + "node_modules/wrap-ansi-cjs/node_modules/ansi-styles": { + "version": "4.3.0", -+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", -+ "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" @@ -13592,14 +9633,10 @@ + }, + "node_modules/wrap-ansi-cjs/node_modules/emoji-regex": { + "version": "8.0.0", -+ "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", -+ "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "license": "MIT" + }, + "node_modules/wrap-ansi-cjs/node_modules/string-width": { + "version": "4.2.3", -+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", -+ "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", @@ -13612,8 +9649,6 @@ + }, + "node_modules/wrap-ansi-cjs/node_modules/strip-ansi": { + "version": "6.0.1", -+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", -+ "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" @@ -13624,14 +9659,10 @@ + }, + "node_modules/wrappy": { + "version": "1.0.2", -+ "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", -+ "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", + "license": "ISC" + }, + "node_modules/ws": { + "version": "8.18.1", -+ "resolved": "https://registry.npmjs.org/ws/-/ws-8.18.1.tgz", -+ "integrity": "sha512-RKW2aJZMXeMxVpnZ6bck+RswznaxmzdULiBr6KY7XkTnW8uvt0iT9H5DkHUChXrc+uurzwa0rVI16n/Xzjdz1w==", + "license": "MIT", + "engines": { + "node": ">=10.0.0" @@ -13651,8 +9682,6 @@ + }, + "node_modules/xml-name-validator": { + "version": "4.0.0", -+ "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-4.0.0.tgz", -+ "integrity": "sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw==", + "license": "Apache-2.0", + "engines": { + "node": ">=12" @@ -13660,14 +9689,10 @@ + }, + "node_modules/xmlchars": { + "version": "2.2.0", -+ "resolved": "https://registry.npmjs.org/xmlchars/-/xmlchars-2.2.0.tgz", -+ "integrity": "sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==", + "license": "MIT" + }, + "node_modules/xtend": { + "version": "4.0.2", -+ "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", -+ "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", + "license": "MIT", + "engines": { + "node": ">=0.4" @@ -13675,8 +9700,6 @@ + }, + "node_modules/y18n": { + "version": "5.0.8", -+ "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", -+ "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "license": "ISC", + "engines": { + "node": ">=10" @@ -13684,8 +9707,6 @@ + }, + "node_modules/yaml": { + "version": "2.7.0", -+ "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.7.0.tgz", -+ "integrity": "sha512-+hSoy/QHluxmC9kCIJyL/uyFmLmc+e5CFR5Wa+bpIhIj85LVb9ZH2nVnqrHoSvKogwODv0ClqZkmiSSaIH5LTA==", + "license": "ISC", + "bin": { + "yaml": "bin.mjs" @@ -13696,8 +9717,6 @@ + }, + "node_modules/yargs": { + "version": "17.7.2", -+ "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", -+ "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", + "license": "MIT", + "dependencies": { + "cliui": "^8.0.1", @@ -13714,8 +9733,6 @@ + }, + "node_modules/yargs-parser": { + "version": "21.1.1", -+ "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", -+ "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", + "license": "ISC", + "engines": { + "node": ">=12" @@ -13723,8 +9740,6 @@ + }, + "node_modules/yargs/node_modules/ansi-regex": { + "version": "5.0.1", -+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", -+ "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "license": "MIT", + "engines": { + "node": ">=8" @@ -13732,14 +9747,10 @@ + }, + "node_modules/yargs/node_modules/emoji-regex": { + "version": "8.0.0", -+ "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", -+ "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "license": "MIT" + }, + "node_modules/yargs/node_modules/string-width": { + "version": "4.2.3", -+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", -+ "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", @@ -13752,8 +9763,6 @@ + }, + "node_modules/yargs/node_modules/strip-ansi": { + "version": "6.0.1", -+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", -+ "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" @@ -13764,8 +9773,6 @@ + }, + "node_modules/yocto-queue": { + "version": "1.2.0", -+ "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-1.2.0.tgz", -+ "integrity": "sha512-KHBC7z61OJeaMGnF3wqNZj+GGNXOyypZviiKpQeiHirG5Ib1ImwcLBH70rbMSkKfSmUNBsdf2PwaEJtKvgmkNw==", + "license": "MIT", + "engines": { + "node": ">=12.20" @@ -13776,8 +9783,6 @@ + }, + "node_modules/zod": { + "version": "3.25.76", -+ "resolved": "https://registry.npmjs.org/zod/-/zod-3.25.76.tgz", -+ "integrity": "sha512-gzUt/qt81nXsFGKIFcC3YnfEAx5NkunCfnDlvuBSSFS02bcXu4Lmea0AFIUwbLWxWPx3d9p8S5QoaujKcNQxcQ==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/colinhacks" diff --git a/opensaas-sh/app_diff/public/piggy.js.diff b/opensaas-sh/app_diff/public/piggy.js.diff index 211faa860..3829a739a 100644 --- a/opensaas-sh/app_diff/public/piggy.js.diff +++ b/opensaas-sh/app_diff/public/piggy.js.diff @@ -1,6 +1,11 @@ --- template/app/public/piggy.js +++ opensaas-sh/app/public/piggy.js -@@ -0,0 +1,5 @@ +@@ -0,0 +1,10 @@ ++!function(t,e){var o,n,p,r;e.__SV||(window.posthog=e,e._i=[],e.init=function(i,s,a){function g(t,e){var o=e.split(".");2==o.length&&(t=t[o[0]],e=o[1]),t[e]=function(){t.push([e].concat(Array.prototype.slice.call(arguments,0)))}}(p=t.createElement("script")).type="text/javascript",p.crossOrigin="anonymous",p.async=!0,p.src=s.api_host.replace(".i.posthog.com","-assets.i.posthog.com")+"/static/array.js",(r=t.getElementsByTagName("script")[0]).parentNode.insertBefore(p,r);var u=e;for(void 0!==a?u=e[a]=[]:a="posthog",u.people=u.people||[],u.toString=function(t){var e="posthog";return"posthog"!==a&&(e+="."+a),t||(e+=" (stub)"),e},u.people.toString=function(){return u.toString(1)+".people (stub)"},o="init capture register register_once register_for_session unregister unregister_for_session getFeatureFlag getFeatureFlagPayload isFeatureEnabled reloadFeatureFlags updateEarlyAccessFeatureEnrollment getEarlyAccessFeatures on onFeatureFlags onSessionId getSurveys getActiveMatchingSurveys renderSurvey canRenderSurvey identify setPersonProperties group resetGroups setPersonPropertiesForFlags resetPersonPropertiesForFlags setGroupPropertiesForFlags resetGroupPropertiesForFlags reset get_distinct_id getGroups get_session_id get_session_replay_url alias set_config startSessionRecording stopSessionRecording sessionRecordingStarted captureException loadToolbar get_property getSessionProperty createPersonProfile opt_in_capturing opt_out_capturing has_opted_in_capturing has_opted_out_capturing clear_opt_in_out_capturing debug getPageViewId captureTraceFeedback captureTraceMetric".split(" "),n=0;n { - return userDelegate.update({ - where: { -- paymentProcessorUserId: userStripeId -+ stripeId: userStripeId - }, - data: { -- paymentProcessorUserId: userStripeId, -+ stripeId: userStripeId, - subscriptionPlan, - subscriptionStatus, - datePaid, diff --git a/opensaas-sh/app_diff/src/payment/stripe/paymentProcessor.ts.diff b/opensaas-sh/app_diff/src/payment/stripe/paymentProcessor.ts.diff index c5443612a..b0d5bdec2 100644 --- a/opensaas-sh/app_diff/src/payment/stripe/paymentProcessor.ts.diff +++ b/opensaas-sh/app_diff/src/payment/stripe/paymentProcessor.ts.diff @@ -1,11 +1,32 @@ --- template/app/src/payment/stripe/paymentProcessor.ts +++ opensaas-sh/app/src/payment/stripe/paymentProcessor.ts -@@ -20,7 +20,7 @@ - id: userId +@@ -24,7 +24,7 @@ + id: userId, }, data: { -- paymentProcessorUserId: customer.id -+ stripeId: customer.id - } - }) - if (!stripeSession.url) throw new Error('Error creating Stripe Checkout Session'); +- paymentProcessorUserId: customer.id, ++ stripeId: customer.id, + }, + }); + +@@ -51,17 +51,17 @@ + id: args.userId, + }, + select: { +- paymentProcessorUserId: true, ++ stripeId: true, + }, + }); + +- if (!user.paymentProcessorUserId) { ++ if (!user.stripeId) { + return null; + } + + const CLIENT_BASE_URL = process.env.WASP_WEB_CLIENT_URL || 'http://localhost:3000'; + const session = await stripeClient.billingPortal.sessions.create({ +- customer: user.paymentProcessorUserId, ++ customer: user.stripeId, + return_url: `${CLIENT_BASE_URL}/account`, + }); + diff --git a/opensaas-sh/app_diff/src/payment/stripe/userPaymentDetails.ts.diff b/opensaas-sh/app_diff/src/payment/stripe/userPaymentDetails.ts.diff new file mode 100644 index 000000000..a9713ba95 --- /dev/null +++ b/opensaas-sh/app_diff/src/payment/stripe/userPaymentDetails.ts.diff @@ -0,0 +1,20 @@ +--- template/app/src/payment/stripe/userPaymentDetails.ts ++++ opensaas-sh/app/src/payment/stripe/userPaymentDetails.ts +@@ -26,7 +26,7 @@ + ) { + return userDelegate.update({ + where: { +- paymentProcessorUserId: customerId, ++ stripeId: customerId, + }, + data: { + datePaid, +@@ -48,7 +48,7 @@ + ) { + return userDelegate.update({ + where: { +- paymentProcessorUserId: customerId, ++ stripeId: customerId, + }, + data: { + subscriptionPlan: paymentPlanId, From 9c46c25e9a6d39d31ff1c200a147ce474042d6af Mon Sep 17 00:00:00 2001 From: Franjo Mindek Date: Mon, 11 Aug 2025 12:34:41 +0200 Subject: [PATCH 08/17] revert --- opensaas-sh/app_diff/.env.client.diff | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/opensaas-sh/app_diff/.env.client.diff b/opensaas-sh/app_diff/.env.client.diff index 45240bdf4..812a6b7a7 100644 --- a/opensaas-sh/app_diff/.env.client.diff +++ b/opensaas-sh/app_diff/.env.client.diff @@ -1,6 +1,5 @@ --- template/app/.env.client +++ opensaas-sh/app/.env.client -@@ -0,0 +1,2 @@ -+REACT_APP_GOOGLE_ANALYTICS_ID=G-H3LSJCK95H +@@ -0,0 +1 @@ +REACT_APP_GOOGLE_ANALYTICS_ID=G-H3LSJCK95H \ No newline at end of file From 4ec4f9f34888867a2078d2ab1cdc7db4318bc4ce Mon Sep 17 00:00:00 2001 From: Franjo Mindek Date: Mon, 11 Aug 2025 12:36:50 +0200 Subject: [PATCH 09/17] revert --- opensaas-sh/app_diff/public/piggy.js.diff | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) diff --git a/opensaas-sh/app_diff/public/piggy.js.diff b/opensaas-sh/app_diff/public/piggy.js.diff index 3829a739a..f0ac410cd 100644 --- a/opensaas-sh/app_diff/public/piggy.js.diff +++ b/opensaas-sh/app_diff/public/piggy.js.diff @@ -1,14 +1,8 @@ --- template/app/public/piggy.js +++ opensaas-sh/app/public/piggy.js -@@ -0,0 +1,10 @@ +@@ -0,0 +1,5 @@ +!function(t,e){var o,n,p,r;e.__SV||(window.posthog=e,e._i=[],e.init=function(i,s,a){function g(t,e){var o=e.split(".");2==o.length&&(t=t[o[0]],e=o[1]),t[e]=function(){t.push([e].concat(Array.prototype.slice.call(arguments,0)))}}(p=t.createElement("script")).type="text/javascript",p.crossOrigin="anonymous",p.async=!0,p.src=s.api_host.replace(".i.posthog.com","-assets.i.posthog.com")+"/static/array.js",(r=t.getElementsByTagName("script")[0]).parentNode.insertBefore(p,r);var u=e;for(void 0!==a?u=e[a]=[]:a="posthog",u.people=u.people||[],u.toString=function(t){var e="posthog";return"posthog"!==a&&(e+="."+a),t||(e+=" (stub)"),e},u.people.toString=function(){return u.toString(1)+".people (stub)"},o="init capture register register_once register_for_session unregister unregister_for_session getFeatureFlag getFeatureFlagPayload isFeatureEnabled reloadFeatureFlags updateEarlyAccessFeatureEnrollment getEarlyAccessFeatures on onFeatureFlags onSessionId getSurveys getActiveMatchingSurveys renderSurvey canRenderSurvey identify setPersonProperties group resetGroups setPersonPropertiesForFlags resetPersonPropertiesForFlags setGroupPropertiesForFlags resetGroupPropertiesForFlags reset get_distinct_id getGroups get_session_id get_session_replay_url alias set_config startSessionRecording stopSessionRecording sessionRecordingStarted captureException loadToolbar get_property getSessionProperty createPersonProfile opt_in_capturing opt_out_capturing has_opted_in_capturing has_opted_out_capturing clear_opt_in_out_capturing debug getPageViewId captureTraceFeedback captureTraceMetric".split(" "),n=0;n Date: Mon, 11 Aug 2025 12:58:39 +0200 Subject: [PATCH 10/17] remove log --- template/app/src/payment/stripe/webhook.ts | 1 - 1 file changed, 1 deletion(-) diff --git a/template/app/src/payment/stripe/webhook.ts b/template/app/src/payment/stripe/webhook.ts index d81a21ae9..08b043637 100644 --- a/template/app/src/payment/stripe/webhook.ts +++ b/template/app/src/payment/stripe/webhook.ts @@ -89,7 +89,6 @@ async function handleInvoicePaid( prismaUserDelegate: PrismaClient['user'] ): Promise { const invoice = event.data.object; - console.log(JSON.stringify(invoice, null, 2)); const customerId = getCustomerId(invoice.customer); const datePaid = getInvoicePaidAtDate(invoice); const priceId = getItemsPriceId(invoice.lines.data); From 045a9d9ec4c20d3051c821d4134d4fc6b2bb9ac4 Mon Sep 17 00:00:00 2001 From: Franjo Mindek Date: Mon, 11 Aug 2025 15:32:25 +0200 Subject: [PATCH 11/17] revert price -> plan to non-stripe --- .github/workflows/e2e-tests.yml | 6 +++--- template/app/.env.server.example | 6 +++--- template/app/src/payment/plans.ts | 6 +++--- 3 files changed, 9 insertions(+), 9 deletions(-) diff --git a/.github/workflows/e2e-tests.yml b/.github/workflows/e2e-tests.yml index ee51de656..8af956583 100644 --- a/.github/workflows/e2e-tests.yml +++ b/.github/workflows/e2e-tests.yml @@ -109,9 +109,9 @@ jobs: STRIPE_API_KEY: ${{ secrets.STRIPE_KEY }} STRIPE_WEBHOOK_SECRET: ${{ secrets.STRIPE_WEBHOOK_SECRET }} STRIPE_CUSTOMER_PORTAL_URL: https://billing.stripe.com/p/login/test_8wM8x17JN7DT4zC000 - PAYMENTS_HOBBY_SUBSCRIPTION_PRICE_ID: ${{ secrets.STRIPE_HOBBY_SUBSCRIPTION_PRICE_ID }} - PAYMENTS_PRO_SUBSCRIPTION_PRICE_ID: ${{ secrets.STRIPE_PRO_SUBSCRIPTION_PRICE_ID }} - PAYMENTS_CREDITS_10_PRICE_ID: ${{ secrets.STRIPE_CREDITS_PRICE_ID }} + PAYMENTS_HOBBY_SUBSCRIPTION_PLAN_ID: ${{ secrets.STRIPE_HOBBY_SUBSCRIPTION_PRICE_ID }} + PAYMENTS_PRO_SUBSCRIPTION_PLAN_ID: ${{ secrets.STRIPE_PRO_SUBSCRIPTION_PRICE_ID }} + PAYMENTS_CREDITS_10_PLAN_ID: ${{ secrets.STRIPE_CREDITS_PRICE_ID }} SKIP_EMAIL_VERIFICATION_IN_DEV: true # Client-side env vars REACT_APP_GOOGLE_ANALYTICS_ID: G-H3LSJCK95H diff --git a/template/app/.env.server.example b/template/app/.env.server.example index f11623d85..65d02b9e1 100644 --- a/template/app/.env.server.example +++ b/template/app/.env.server.example @@ -19,9 +19,9 @@ LEMONSQUEEZY_WEBHOOK_SECRET=my-webhook-secret # If using Stripe, go to https://dashboard.stripe.com/test/products and click on + Add Product # If using Lemon Squeezy, go to https://app.lemonsqueezy.com/products and create new products and variants -PAYMENTS_HOBBY_SUBSCRIPTION_PRICE_ID=012345 -PAYMENTS_PRO_SUBSCRIPTION_PRICE_ID=012345 -PAYMENTS_CREDITS_10_PRICE_ID=012345 +PAYMENTS_HOBBY_SUBSCRIPTION_PLAN_ID=012345 +PAYMENTS_PRO_SUBSCRIPTION_PLAN_ID=012345 +PAYMENTS_CREDITS_10_PLAN_ID=012345 # set this as a comma-separated list of emails you want to give admin privileges to upon registeration ADMIN_EMAILS=me@example.com,you@example.com,them@example.com diff --git a/template/app/src/payment/plans.ts b/template/app/src/payment/plans.ts index 1fe1d06d3..99e33a9b6 100644 --- a/template/app/src/payment/plans.ts +++ b/template/app/src/payment/plans.ts @@ -27,15 +27,15 @@ export type PaymentPlanEffect = { kind: 'subscription' } | { kind: 'credits'; am export const paymentPlans = { [PaymentPlanId.Hobby]: { - getPaymentProcessorPlanId: () => requireNodeEnvVar('PAYMENTS_HOBBY_SUBSCRIPTION_PRICE_ID'), + getPaymentProcessorPlanId: () => requireNodeEnvVar('PAYMENTS_HOBBY_SUBSCRIPTION_PLAN_ID'), effect: { kind: 'subscription' }, }, [PaymentPlanId.Pro]: { - getPaymentProcessorPlanId: () => requireNodeEnvVar('PAYMENTS_PRO_SUBSCRIPTION_PRICE_ID'), + getPaymentProcessorPlanId: () => requireNodeEnvVar('PAYMENTS_PRO_SUBSCRIPTION_PLAN_ID'), effect: { kind: 'subscription' }, }, [PaymentPlanId.Credits10]: { - getPaymentProcessorPlanId: () => requireNodeEnvVar('PAYMENTS_CREDITS_10_PRICE_ID'), + getPaymentProcessorPlanId: () => requireNodeEnvVar('PAYMENTS_CREDITS_10_PLAN_ID'), effect: { kind: 'credits', amount: 10 }, }, } as const satisfies Record; From 7cee2a90675da15b81b92dadad5f5d62e4a4bd4f Mon Sep 17 00:00:00 2001 From: Franjo Mindek Date: Mon, 11 Aug 2025 16:19:42 +0200 Subject: [PATCH 12/17] fix --- template/app/src/payment/stripe/webhook.ts | 2 +- template/app/src/shared/utils.ts | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/template/app/src/payment/stripe/webhook.ts b/template/app/src/payment/stripe/webhook.ts index 08b043637..85c5b4263 100644 --- a/template/app/src/payment/stripe/webhook.ts +++ b/template/app/src/payment/stripe/webhook.ts @@ -114,7 +114,7 @@ async function handleInvoicePaid( ); break; default: - assertUnreachable(); + assertUnreachable(paymentPlanId); } } diff --git a/template/app/src/shared/utils.ts b/template/app/src/shared/utils.ts index 407677d1e..f25554ac2 100644 --- a/template/app/src/shared/utils.ts +++ b/template/app/src/shared/utils.ts @@ -2,7 +2,7 @@ * Used purely to help compiler check for exhaustiveness in switch statements, * will never execute. See https://stackoverflow.com/a/39419171. */ -export function assertUnreachable(_?: never): never { +export function assertUnreachable(_: never): never { throw Error('This code should be unreachable'); } From 407dd2efc295d0c608014c7a30a6e70264f77e3a Mon Sep 17 00:00:00 2001 From: Franjo Mindek Date: Tue, 12 Aug 2025 15:09:39 +0200 Subject: [PATCH 13/17] comment --- template/app/src/payment/stripe/checkoutUtils.ts | 3 +++ 1 file changed, 3 insertions(+) diff --git a/template/app/src/payment/stripe/checkoutUtils.ts b/template/app/src/payment/stripe/checkoutUtils.ts index de2a36855..2b9d11a5b 100644 --- a/template/app/src/payment/stripe/checkoutUtils.ts +++ b/template/app/src/payment/stripe/checkoutUtils.ts @@ -57,6 +57,9 @@ export async function createStripeCheckoutSession({ customer_update: { address: 'auto', }, + // Stripe automatically creates invoices for subscriptions. + // For one-time payments, we must enable them manually. + // Enabling invoices for subscriptions will cause an error. invoice_creation: mode === 'payment' ? { From ade1d4c4781b9c596c66ae5a30b502fc1e9750bb Mon Sep 17 00:00:00 2001 From: Franjo Mindek <84568328+FranjoMindek@users.noreply.github.com> Date: Tue, 26 Aug 2025 14:59:45 +0200 Subject: [PATCH 14/17] Discard changes to opensaas-sh/app_diff/fly-client.toml.diff --- opensaas-sh/app_diff/fly-client.toml.diff | 24 +---------------------- 1 file changed, 1 insertion(+), 23 deletions(-) diff --git a/opensaas-sh/app_diff/fly-client.toml.diff b/opensaas-sh/app_diff/fly-client.toml.diff index 5eee9ae37..a735779f7 100644 --- a/opensaas-sh/app_diff/fly-client.toml.diff +++ b/opensaas-sh/app_diff/fly-client.toml.diff @@ -1,28 +1,6 @@ --- template/app/fly-client.toml +++ opensaas-sh/app/fly-client.toml -@@ -0,0 +1,44 @@ -+# fly.toml app configuration file generated for open-saas-wasp-sh-client on 2025-07-18T17:12:02+02:00 -+# -+# See https://fly.io/docs/reference/configuration/ for information about how to use this file. -+# -+ -+app = 'open-saas-wasp-sh-client' -+primary_region = 'ams' -+ -+[build] -+ -+[http_service] -+ internal_port = 8043 -+ force_https = true -+ auto_stop_machines = 'stop' -+ auto_start_machines = true -+ min_machines_running = 0 -+ processes = ['app'] -+ -+[[vm]] -+ memory = '1gb' -+ cpu_kind = 'shared' -+ cpus = 1 +@@ -0,0 +1,22 @@ +# fly.toml app configuration file generated for open-saas-wasp-sh-client on 2025-07-18T17:12:02+02:00 +# +# See https://fly.io/docs/reference/configuration/ for information about how to use this file. From 4558d2a3e9e824fe8b660931512e01db0b63ab41 Mon Sep 17 00:00:00 2001 From: Franjo Mindek <84568328+FranjoMindek@users.noreply.github.com> Date: Tue, 26 Aug 2025 15:01:05 +0200 Subject: [PATCH 15/17] Discard changes to opensaas-sh/app_diff/.env.vault.diff --- opensaas-sh/app_diff/.env.vault.diff | 27 +-------------------------- 1 file changed, 1 insertion(+), 26 deletions(-) diff --git a/opensaas-sh/app_diff/.env.vault.diff b/opensaas-sh/app_diff/.env.vault.diff index 3c52bbd2c..714c36b85 100644 --- a/opensaas-sh/app_diff/.env.vault.diff +++ b/opensaas-sh/app_diff/.env.vault.diff @@ -1,31 +1,6 @@ --- template/app/.env.vault +++ opensaas-sh/app/.env.vault -@@ -0,0 +1,50 @@ -+#/-------------------.env.vault---------------------/ -+#/ cloud-agnostic vaulting standard / -+#/ [how it works](https://dotenv.org/env-vault) / -+#/--------------------------------------------------/ -+ -+# development -+DOTENV_VAULT_DEVELOPMENT="STJRGW84NkbUqenj6Eyt98WiAcvzWsWhOKwyktUfAJ0dR8TlNnSdCDRsCRisCzKuDTTZtgCf6FyTgT48HsYuwFZqydg/aFeM4skfLpyUy0wz0K90hq2sNEB85HCAwZaTTf9ye5fEBq9P1PAEoYlHEFtPXO1exSkXyxQHzkv5/j2xLJVkg89cZ+MBaQQtzmgK/A9ya5eVSX2zIhum+ipZKIE04pjc4H8fu5YgxY91rOVTFHBQc1dlbuCr+vvmvgHxNS2gO+eM5UcmZk6FY4yY+GUZmf+xGw5ZPwFjiS3awC+jNhdebWnkrk/PopAqBC3i7eH3fdaPvJW2RWkMMrY4+gtN8Hs9lPNopWkl3uavAva9qmvrCE1KLu94IaQh34Cy6dRurPQDF/MmnugqYzcEQvvtIV1sgZig6Id4c9P67gs/Q9NvKXvbeNxzXYTwkF3SvnMRXk33yBKbXHxE1vIn9k9mbMnX3DVeVdT5TDR9BKs9xGMuvP7rQv5RA/xSnzMFg8LeJ+oZ2zNUWWN8tOyx6K4WwiIJN39AOLYElXAFa3UTSk12GtzaySM5rQdcWn0YLN3uncye26zRCA+BpR231fgrSpfJJ2VkNBG0pTh1ELySOFug6mItLOb7CQGXjZrrwTSfEBhhpMZn/c2Ec6p/nBN2UcHAmB55N6GDFuAkagv9l/4C5fIbS6iGHYAOwwYKczSBryi3+5y7sDYkdVhOTzuKTfkpY1FpkEgUY8FFnW2GjYodH2T+l23Q84a7A9VjxZAyZJkgwGnezO+M8fWcwtqt3iywEVhTd5Hi7Nxe+Q53oQeUrwnTKSkx5Ig5uR1RJIybW+gWvpSOEcUZN6AVf67/UPu9RHpwHDQ5YCGGqJwDzR/f5QxR0kqiW3B0ZDWpJX7zFk2QiLGLzDZ6xmdaGenbJ0jWMA116Xm+ot0GCEqim+RVk768zSAxIQFOCcllXWhmxwTO2/SzY6j7Hxf1Ps8e0uCVc7FPemh7nBYLRlSOI/Pjk9gLUkyKhV7IEiaL2BbPFLGOFkOk0AGNc+m/y1BH+CnJYYKCK1AXNquKM9+MV8Wmure2iBIm2oNlDOcJl48YpUQ0BcKzmFw06OJHVULPVn7da7XZ2/34SvyFcsYARE6NZLLMMg810S1cok0gQ3FpxKv3wxP1jRXntEC1ZxUqJQE/hZ5IxoOxhAJGQfqYbJIQSE5oE8Ve7E0X2lTYVEPiwziYOeovKidJX1vccZh4ggxgYsRzT/qAiS/FcvgsWz9kY6n0e1iKLEmsGR96SDpzNSWV/57iSuOd6nKtcU8HWhekTMnTQK4wrhXuYQHZhLeRnGQIjHzNyzJ8lV6HVcot6NZPPHjOfohQ9eIhQi7qUC7JPcLFkWixjrPTAEJVlQelbAOPHPOUyYEoejcPi/0LMTrQPYN/To/lhDHn/5N9vhlk8flj0zuJHpCFq8laDsn9wdvymuK/0MQ7DrPPU00nNzQjXDtT9xbb6I9ZX7XtgTVHVnWtEwxCQRYkmbR0T+0TzDLXlQObITanuFVa19ZSeATGc+PhxFAva5yxPih2L+j3BTN43ap/X3j54DDylyNHDQlpC21wOa+HFGftYUAWx8/w8i5gr7ZU66aVQWZspSLP7BIFzMaVVjAM5gVqaCLTpcnCE3oMMYddsqsXUbkJrmdlh4cP8ao2Y9YHzv3KRTyAU4wDxhkwWdDqnUSRVXkcDeZUuCQJsHFRvXVzgCNDSktMewTC4xMNniW6KNUwbqzWxGBCz6g/0WUJEaJYG+teu1jBMPDhNFFlw6BjIoNX7iButmm81XCG8D1uEgRvo+H4lxAL4rPyPNCQieT34XHk/QxcQsqij2wnTenGUwWQt++kzMLvL/69RtvaskA8I3aLXDLn3ATMU4JlMvD1MqRHrGb3tzoz+lXKWVgrJR+BSYUBXZc9EAUsj4G4+NsRyMPbBWE2ADgM4ksDflXCccbelu/4S50eS9dEXf7ms0CeYh+dFmqjhCXI8JrgL+bUdOwDbEJVPjM2yOVM1wATGAa8+0nLaJbIwI41JVXBx/uLZ8pt2pyvQB9cyLQR00hcjbLymHBfLP51B6nlaNhUq4yZsI/JM59XNmEYAY8GZJFuvIBvSimC5plUCc1bfGhK694k7Fv1bKtlIzXd4kCy5bKNiwWMTVbOy3Uv87FQTa61z5mnz/XGmRwU/22v4VOWy11BKWGYkYJGN1KrAVkUenCKQw6FjgVXBbfJ6m2k9tl5dfQ48ppToorUZkFiKsPuc8V6DhcUt2stxEETnUnU9K2p8QyyhfPykBK6YWbShDobeA0TPF+vo2ypkVOvhNo7F4cQnvvVKl9MJmmAxFOisB9yHXREk2GSlivNJeTqIz8Vv4K42/wNMAO2ZQqSPlE4wt2ueFQqLMkG+UDlD6gujSx8D/OzSTfCx+vLTzdqsbubPxjcPx+pQA==" -+DOTENV_VAULT_DEVELOPMENT_VERSION=12 -+ -+# ci -+DOTENV_VAULT_CI="pveNDc605iqf5ZOh9mvYpFOc925852DGrvz7y+vs82ub3bZvTiLhJMuJKZEDtyjn7yBUdfMRsAP6wAL8/73te+4y7K56lT48MuvFlpvwM9ERkCzJY1yZ6ib3eBzTax/jon2H5kfEHBM9TRIa5B8JrCHbYqhcrnxj0VyLEa4x1I4pMTdesRZ+907FTdExaRSFFujdkUaScytOV93DTr2lQZpUGBga5CbKr3KyeSS1+ONGSWc+BQiAkdhmnvPsyKHnWRKHSFVhInne2W00LFZLBZ56I4+G7D+x+ze3/WNb5GSq7eNlVwnTJgj5AXJBjtAV/uD7cmOnJ3h+lOkvz3Wry10BaICTAx5SVfOuD5Pr/FLgR2zJau+pgqhRdcp7gG4y2thWN5ZtlLGnJlL7xgnRaD+oIYBn6fg8CCZsnsX2XZHAzJcgntph2pUd0At4UawSijDVZuylcneNdF3CJ68/fcqqpR94LYU61w4WasrAWj1hFiRV1MTpLkdQWTMT6K5k5TDouuljI3nt+Upf9mDK7efjy7OTiiArNxKpUxUy31Kl0TgWTsttDFbcOGwbsxq1t/Tu9Ph0eEhwHc2dTUuSuhV+PHxE8GwUvGiIDBbAZZq7ZyeLc5btdP++8zdXBtYM7bIa9qubaCWakruk31w6Gm5ySjGY+R1HGURldXJmypsAEcu5kK3IX4Z8IubF79T8ZvutLdoXJPSaH9x8ij7EcamTVfZPmekj6FpI3sqy7rmaUup73MBld9a3r9AQTzXbEmR+2xbK488D1il8PUqu9J3QkUeF2rpB97Uy2mgl1zF8VXiGkdP1Hpqeck8FpS89GWFF4FA3oBE/Keqvqvvs/f+KzDn2AvHHwrT6fnVBdeuSp4hK+sSkig1rh+1P69zYjIDqpph0kT+Ri7uNMkbrXX7iT5he9J1LrXtiM/DLxXqi8M3FfeN7aaSxQ2nzac1mlN+vwsIqJbzOSm+ABGHNJNjPjBZpMbeBZsFwogaCbFd2oorp02h6yC6741qwH7gFEr1EJVcu+TJspHyKpq4TFIk+srRMhuCqwUAkdzY4skjEGVhxxYMiKAtRg5IKYICqbfNsestMipAcf22teriGnmqBe9Yuzq9IXZXRcl/etagr0/B3SQhNlVj2u9VMBfhj5ZY+QcQDfSjqOcW/DyphyBU4T1/rHn1x5RznCvtbOPZ+XXFApZaeoKzj/s8JxHzM8aegITx3jVRwXnr0/0FnHTnC34b124K6HM3oKxdPdrtACgW8gH+mgXCaStBqwBdk1aV62+YQxWdHXjy9FAvTF8BktcxwE0TXC5Qu0JsoS8uYbbQmaQCNWIJWF/KptW+g9gkKDBV2Iq5mXwMLHzCtzxGarj5jqznVEX4OdbYbgSOZ5mB5JEU2OwSn2QtzqUVquAN+DygbDVrh1+KA9bk4HMt38rMKHV/i9VBHkuApYT7OUIexCu4jxUDBnid/Hnm3OfMvXrUesoqFv2cYEHX8R/jvhLx36jEWeaTYL+e9XFpSLlWJTGc7wAg0Zj+XJlNtLhFlB6pw" -+DOTENV_VAULT_CI_VERSION=8 -+ -+# staging -+DOTENV_VAULT_STAGING="nAXVAHQaoF1R6J23PDrfp6kH0L+nXmZaI0OUfcCBU7QSfP+K3mbkdO92cbKVUN6ycc1wxRue6BFLEUgBLuCJQwUdKYevK81fs/ACrHYxuW6Px85FG3NJVLGvgF/3qiqu0RRfcpeB6lYJCAPFsYcoA9Cx8QDkYmvSlWAGmLJQ7cqzHUNlveOqtrXsLFV2OjlWjlYD1l7VQkaXnsY+Mij60DbRIadusoDuAB3z5m7N8/ogMOGENlUl9HRJJ4ppcJiHoBm7pxrLpK0oubx3KEDTSkPVlpNb1YYMeU2VKiGYCOMyXX8IguISrrgU4hHEvbLM8F3gnKHyx59qbwU/32yX7ofIIPsTLLTwD+mHWElPoLs9WWq249RYEmRT7w5iuCdjl9Qlr36EJKPYc7UG+P0DZROb7pXcbtYg8/gfaCXOQG5Ue2FMon4bEphkmY1CKaJKtPTXNuecDVTa8O4hEM65xrEClieVUgexEaM0g7fEUo8wOljZx96gG8Mf4RqHX3xy4M0d4/2UluE053kavUaTULhRPG/oTHIGiKFRnG0BfgQFcGRXkFgLG9zerVAoWEGAcBGHn5NECIUWqaD2Z7sdEZd9R0SZmtwUXoPV1jqHNeKEvt7fUN8xcPsV1MFAUi2cAyGLkrl541KbWpU0IpHK1pIkbfUVyDOL4htSD/SajhtlyJ79q7Xd5sKsb273ZQsmtk3ZREBjQUFA2NP+fPH7ifttVeWi3EFUi8+8cWwgNHM6Cn7LaFitah6+DcCQ6+l7SneFTEbzMlprzazBBL/Gu4kr6pNXGX0RZnR8uhs6aZZgV2h9V14s0uZx3EcAFqC3g+I5X08Fi+2ERpcfWUvFdjx5akmDQllSB+oqy6SxiJvqFnfWvVPQNhx1xh2x8OplZbzykEJ+Tfl0mlc5UHHoLQqje0jagBRSHWQbxC0jIGGyqdhnz3uG672krM/zTTc2wKWMk4EZFDG7Yc7oz3DcJXjFBgxEagd9jYxqLIN0RAH9pq+0aUP7daz0CbX+xhTd988dl+LblcnEN59XEsBOhWCd5bm51KJZcKQ1UpsVVPGHnTT7MPE2+6BheEr1dgu/LDUPDW8NT0QwBUwXwxH1ROuTOu2+LWNdFrV11sEpKGfW2bjqrkpbx/xovahbFyCSq12T0EBInAFF5bq2pB0Ik2vfEH8gNL0Z+FoqH0/aDrSuw6j8xqmd2rKL3XwL5bYVZDCc1isAWXESA9CHHTSx1NGoa1kpunJkGJY//2rn5srK9RlOOHxxUrtqVBMfEGsj7qIv/Ebsgr3dvFpdVXiRZ5s3KZZs6YlSXyukklehkjtYoMM2TaZ478ioFOtD8yx12PjI3Pfoapo2La2boM48RFcipmVNpWNsLjGXaYyhYVV3RBsZAMvkOnYRVFUiZ50+ETdfizX0H23+mmkBt8FjNqHhvg9BIRaYnKTar1FPAd840lo4w2e7n2mKufHwykI5ILrJV0ozhPy7Yr8kltPiQYjpy1ua2scUdnKCngdX0KjqNQz072e6uYlhRpOib6CEwZXqMbr/" -+DOTENV_VAULT_STAGING_VERSION=8 -+ -+# production -+DOTENV_VAULT_PRODUCTION="zGpYx7O6vRv3vYt0aW1H6UF3TSi6DUFgqjeKzkNcJukFWQWvTgX5HYtLKQnBAGCDpuWY+KWfiFGNu/zVouo5LTlQb6apzBLzj0dr+PxxDpjXe8s+q7OSPH7Ist4UiVurC2nAMjgFsUpDA2LUkfPOuWPRvg1UGYjTaxEADTYCI/vk0Uegv4R11K1/HcCGXlliJk2QAVaT5ZYSo0VKvcRu5HYHSX4aAwJgnucm3xvNmPn9Cjkxx1jZL5jYfzLS1etDEPn6slDj88NzZ8BvXHeSJUftpR352azOJpL0GbSKrwoPNYU9F2JCthilLqPZPC6LJzg0/4p5vUKA83gqnDnUxEHR+ZlNK0MRTQPEwrZitruOaP1ggWIsEJA/DZFMLA5oQrq4kp+p2E99YbsPNmV0LfvsA6LtqKv393jsuzSdJ94zeLhQlRRECiTQRVEee3ug5tJ0f34N7acRSv4EdgriKp8poIsE4miVK2xXwrek9jRxeXLHzu7Oo8yBkYaX2DqtXyxf+8Qq2WgvdRm9QgfGdiwftYsjXO52jhHI7z7bJ3R/W5BR+Z0QbR83LR3ZWdI+AYY9F2CkYF62nW5TVxiWU0M4DZ5KUgVo+iNgm+AV0nefgFvud6Ln3VtNcb2bT0RFAw4MJK0LyYlNewZBJQhlfRiN+3xJKqLbDKMlhGmSHF8RRNYN9MfKwOfF62jNFlwPjgyGCjuQL96L97z50Q63TMbpEciR0uNcMavIADPs1qDhCSkYO4rQO1IgOUF34trra9KKRfoP2UdDJhiqvlTQ2Ygu2uc164Vho0E003jlBBZBI+UUJhPz4cYTtFJjpinRCp/Q0mUeiTLbo1V7T32IQ+ZkUqO7FRuwxR282OzKQVRZiUxuOAa7WxdQzrcXbCOcCvJWX8hTVrSim9z+NAFxNyTCwVBhek9EfwCfxJSCuFuI9axlb6xA1sZ/61G5+wuKeEpUvlTbQC/ZT1QJqpKMmujEePAfW++dzJJgW/nX9o0CIt3KTzwVzImAe+/oNhzKn0TbzsvMqeOaTgymo2re0Rdw3P/Fk5SUQTM7+2GIFC+iRC5a3LN7UOFP+UdQ21J+WGkkl+yvJyyjY3IRSoFWqSCU7BAjULmJmtkl1Y/60vIj+GET5hu7VGaTlIgaWiVZc4eGAu6UAeGzasTjYWNQh50p44VxQlYBijJC+JUhzPkFOLjaLx6rRZzTQVl9NUxIxdkaOn+BImJQadaC2Ad3YOMpsLVJF/p25fi2L2e2MtsDdcx2ZNlpV1GIrYGqMIiujPdpoMzibj4VmObVMB6dazpyqgAf/QXdGguyv/4JJBcNUNPbqHqMl0yY+DzGzxPCKx6WViR63HZJeC5hJE39wNEgeYGJcXrL5K2siwrFENns8Os93aoE/8xgiPdj3vLQmcL0Z30XEqPl6/V4mTgc2Oa1SAi1NGLXnVsYJ/h1Rr4a9T11zkKhRCIvT4Jd5WpvGjG3f9t7YUigb6BqlMc0BTJ6ufQP/xBBOHqzoUs3gVk4HTMDfpYwO9k9SJNkfWBn1iV102BJ" -+DOTENV_VAULT_PRODUCTION_VERSION=8 -+ -+#/----------------settings/metadata-----------------/ -+DOTENV_VAULT="vlt_47e3eeb0730e831e688049600e59f8975260a1f00302ae08684ed87ba67872d0" -+DOTENV_API_URL="https://vault.dotenv.org" -+DOTENV_CLI="npx dotenv-vault@latest" +@@ -0,0 +1,25 @@ +#/-------------------.env.vault---------------------/ +#/ cloud-agnostic vaulting standard / +#/ [how it works](https://dotenv.org/env-vault) / From 218ecac53833818710c404b229e31986888a3f15 Mon Sep 17 00:00:00 2001 From: Franjo Mindek Date: Tue, 26 Aug 2025 16:27:57 +0200 Subject: [PATCH 16/17] not necessary --- opensaas-sh/app_diff/deletions | 2 ++ 1 file changed, 2 insertions(+) diff --git a/opensaas-sh/app_diff/deletions b/opensaas-sh/app_diff/deletions index 2cd98f45d..8e3afd690 100644 --- a/opensaas-sh/app_diff/deletions +++ b/opensaas-sh/app_diff/deletions @@ -1,3 +1,5 @@ +.env.client.example +.env.server.example src/client/static/open-saas-banner-dark.png src/client/static/open-saas-banner-light.png src/landing-page/components/Hero.tsx From 35714f8a3e0a89e6431d18fa2fe8f5b97e45585e Mon Sep 17 00:00:00 2001 From: Franjo Mindek Date: Tue, 26 Aug 2025 18:05:40 +0200 Subject: [PATCH 17/17] docs --- .github/workflows/e2e-tests.yml | 1 - opensaas-sh/blog/public/llms-full.txt | 75 +++++++++++++------ opensaas-sh/blog/public/llms.txt | 1 + .../docs/guides/payments-integration.mdx | 19 +++-- template/app/.env.server.example | 2 - 5 files changed, 63 insertions(+), 35 deletions(-) diff --git a/.github/workflows/e2e-tests.yml b/.github/workflows/e2e-tests.yml index 8af956583..5288817e0 100644 --- a/.github/workflows/e2e-tests.yml +++ b/.github/workflows/e2e-tests.yml @@ -108,7 +108,6 @@ jobs: OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }} STRIPE_API_KEY: ${{ secrets.STRIPE_KEY }} STRIPE_WEBHOOK_SECRET: ${{ secrets.STRIPE_WEBHOOK_SECRET }} - STRIPE_CUSTOMER_PORTAL_URL: https://billing.stripe.com/p/login/test_8wM8x17JN7DT4zC000 PAYMENTS_HOBBY_SUBSCRIPTION_PLAN_ID: ${{ secrets.STRIPE_HOBBY_SUBSCRIPTION_PRICE_ID }} PAYMENTS_PRO_SUBSCRIPTION_PLAN_ID: ${{ secrets.STRIPE_PRO_SUBSCRIPTION_PRICE_ID }} PAYMENTS_CREDITS_10_PLAN_ID: ${{ secrets.STRIPE_CREDITS_PRICE_ID }} diff --git a/opensaas-sh/blog/public/llms-full.txt b/opensaas-sh/blog/public/llms-full.txt index f4200ed69..1b0f357c7 100644 --- a/opensaas-sh/blog/public/llms-full.txt +++ b/opensaas-sh/blog/public/llms-full.txt @@ -23,7 +23,8 @@ If you find this template useful, consider giving us [a star on GitHub](https:// ## What's inside? The template itself is built on top of some very powerful tools and frameworks, including: - - [Wasp](https://wasp.sh) - a full-stack React, NodeJS, Prisma framework with superpowers- [Astro](https://starlight.astro.build/) - Astro's lightweight "Starlight" template for documentation and blog + - [Wasp](https://wasp.sh) - a full-stack React, NodeJS, Prisma framework with superpowers + - [Astro](https://starlight.astro.build/) - Astro's lightweight "Starlight" template for documentation and blog - [Stripe](https://stripe.com) or [Lemon Squeezy](https://lemonsqueezy.com/) - for products and payments - [Plausible](https://plausible.io) or [Google](https://analytics.google.com/) Analytics - [OpenAI](https://openai.com) - OpenAI API integrated into the app or [Replicate](https://replicate.com/) (coming soon ) @@ -64,7 +65,7 @@ If you prefer video tutorials, you can watch this walkthrough below which will g ### Pre-requisites You must have Node.js (and NPM) installed on your machine and available in `PATH` to use Wasp. -Your version of Node.js must be >= 20. +Your version of Node.js must be >= 22.12. To switch easily between Node.js versions, we recommend using [nvm](https://github.com/nvm-sh/nvm). @@ -128,7 +129,7 @@ Once Rosetta is installed, you should be able to run Wasp without any issues. ### Windows -In order to use Wasp on Windows, you need to install WSL2 (Windows Subsystem for Linux) and a Linux distribution of your choice. We recommend using Ubuntu. +In order to use Wasp on Windows, you need to install WSL2 (Windows Subsystem for Linux) and a Linux distribution of your choice. We recommend using Ubuntu. **You can refer to this [article](https://wasp.sh/blog/2023/11/21/guide-windows-development-wasp-wsl) for a step by step guide to using Wasp in the WSL environment.** If you need further help, reach out to us on [Discord](https://discord.gg/rzdnErX). @@ -173,7 +174,7 @@ curl -sSL https://get.wasp.sh/installer.sh | sh If you are using WSL2, make sure that your Wasp project is not on the Windows file system, but instead on the Linux file system. Otherwise, Wasp won't be able to detect file changes, due to this issue in WSL2. -::: +::: ### Finalize Installation @@ -874,7 +875,7 @@ To create a Google OAuth app and get your Google API keys, follow the instructio To create a GitHub OAuth app and get your GitHub API keys, follow the instructions in [Wasp's GitHub Auth docs](https://wasp.sh/docs/auth/social-auth/github#3-creating-a-github-oauth-app). -To create a Discord OAuth app and get your Discord API keys, follow the instructions in [Wasp's Discord Auth docs](docs/auth/social-auth/google#3-creating-a-google-oauth-app) +To create a Discord OAuth app and get your Discord API keys, follow the instructions in [Wasp's Discord Auth docs](https://wasp.sh/docs/auth/social-auth/discord#3-creating-a-discord-app) Again, Wasp will take care of the rest and update your AuthUI components accordingly. @@ -1287,13 +1288,7 @@ export const stripe = new Stripe(process.env.STRIPE_KEY!, { 2. click on `+ add endpoint` 3. enter your endpoint url, which will be the url of your deployed server + `/payments-webhook`, e.g. `https://open-saas-wasp-sh-server.fly.dev/payments-webhook` -4. select the events you want to listen to. These should be the same events you're consuming in your webhook. For example, if you haven't added any additional events to the webhook and are using the defaults that came with this template, then you'll need to add: -
- `account.updated` -
- `checkout.session.completed` -
- `customer.subscription.deleted` -
- `customer.subscription.updated` -
- `invoice.paid` -
- `payment_intent.succeeded` +4. select the events you want to listen to. These should be the same events you're consuming in your webhook which you can find listed in [`src/payment/stripe/webhookPayload.ts`](https://github.com/wasp-lang/open-saas/blob/main/template/app/src/payment/stripe/webhookPayload.ts): 5. after that, go to the webhook you just created and `reveal` the new signing secret. 6. add this secret to your deployed server's `STRIPE_WEBHOOK_SECRET=` environment variable.
If you've deployed to Fly.io, you can do that easily with the following command: @@ -1620,7 +1615,7 @@ export const paymentProcessor: PaymentProcessor = lemonSqueezyPaymentProcessor; At this point, you can delete: - the unused payment processor code within the `/src/payment/` directory, - any unused environment variables from `.env.server` (they will be prefixed with the name of the provider your are not using): - - e.g. `STRIPE_API_KEY`, `STRIPE_CUSTOMER_PORTAL_URL`, `LEMONSQUEEZY_API_KEY`, `LEMONSQUEEZY_WEBHOOK_SECRET` + - e.g. `STRIPE_API_KEY`, `LEMONSQUEEZY_API_KEY` - Make sure to also uninstall the unused dependencies: - `npm uninstall @lemonsqueezy/lemonsqueezy.js` - or @@ -1666,22 +1661,21 @@ To create a test product, go to the test products url [https://dashboard.stripe. ### Create a Test Customer -To create a test customer, go to the test customers url [https://dashboard.stripe.com/test/customers](https://dashboard.stripe.com/test/customers). +You can create a test customer directly in the [Stripe Dashboard](https://dashboard.stripe.com/test/customers). - Click on the `Add a customer` button and fill in the relevant information for your test customer. -:::note - When filling in the test customer email address, use an address you have access to and will use when logging into your SaaS app. This is important because the email address is used to identify the customer when creating a subscription and allows you to manage your test user's payments/subscriptions via the test customer portal -::: + +Alternatively, OpenSasS will automatically create a test customer the first time a user starts a checkout session. +This customer is linked to the email address associated with your app's user. ### Set up the Customer Portal -Go to https://dashboard.stripe.com/test/settings/billing/portal in the Stripe Dashboard and activate and copy the `Customer portal link`. Paste it in your `.env.server` file: +You can set up your customer portal in your [Stripe Dashboard](https://dashboard.stripe.com/test/settings/billing/portal). -```ts title=".env.server" -STRIPE_CUSTOMER_PORTAL_URL= -``` +By default, OpenSaas generates a unique customer portal link for each user on the back end. +If you'd rather provide a permanent link to the customer portal, activate and copy the `Customer portal link`. -If you'd like to give users the ability to switch between different plans, e.g. upgrade from a hobby to a pro subscription, go down to the `Subscriptions` dropdown and select `customers can switch plans`. +If you'd like to give users the ability to switch between different plans, e.g., upgrade from a "Hobby" to a "Pro" subscription, go down to the `Subscriptions` dropdown and select `customers can switch plans`. Then select the products you'd like them to be able to switch between. @@ -2015,6 +2009,43 @@ The method you choose is up to you and will largely depend on the complexity of --- +# Vibe Coding with Open SaaS + +If you're looking to use AI to help build (or "vibe code") your SaaS app, this guide is for you. + +## Coding with AI, Open SaaS, & Wasp + +Wasp is particularly well suited to coding with AI due to its central config file which gives LLMs context about the entire full-stack app, and its ability to manage boilerplate code so AI doesn't have to. + +Regardless, there are still some shortcomings to using AI to code with Wasp, as well as a learning curve to using it effectively. + +Luckily, we did the work for you and put together a bunch of resources to help you use Wasp & Open SaaS with AI as effectively as possible. + +### AI Resources in the Template + +The template comes with: +- A full set of rules files, `app/.cursor/rules`, to be used with Cursor or adapted to your coding tool of choice (Windsurf, Claude Code, etc.). +- A set of example prompts, `app/.cursor/example-prompts.md`, to help you get started. + +### LLM-Friendly Documentation + +We've also created a bunch of LLM-friendly documentation: +- [Open SaaS Docs - LLMs.txt](https://docs.opensaas.sh/llms.txt) - Links to the raw text docs. +- **[Open SaaS Docs - LLMs-full.txt](https://docs.opensaas.sh/llms-full.txt) - Complete docs as one text file.** +- Coming Soon! ~~[Wasp Docs - LLMs.txt](https://wasp.sh/llms.txt)~~ - Links to the raw text docs. +- Coming Soon! ~~[Wasp Docs - LLMs-full.txt](https://wasp.sh/llms-full.txt)~~ - Complete docs as one text file. + +Add these to your AI-assisted IDE settings so you can easily reference them in your chat sessions with the LLM. +**In most cases, you'll want to pass the `llms-full.txt` to the LLM and ask it to help you with a specific task.** + +### More AI-assisted Coding Learning Resources + +Here's a list of articles and tutorials we've made: +- [3hr YouTube tutorial: Vibe Coding a Personal Finance App w/ Wasp & Cursor](https://www.youtube.com/watch?v=WYzEROo7reY) +- [Article: A Structured Workflow for "Vibe Coding" Full-Stack Apps](https://dev.to/wasp/a-structured-workflow-for-vibe-coding-full-stack-apps-352l) + +--- + # Admin Dashboard This is a reference on how the Admin dashboard, available at `/admin`, is set up. diff --git a/opensaas-sh/blog/public/llms.txt b/opensaas-sh/blog/public/llms.txt index 3afd4c58a..eb3fffea3 100644 --- a/opensaas-sh/blog/public/llms.txt +++ b/opensaas-sh/blog/public/llms.txt @@ -20,5 +20,6 @@ - [SEO](https://raw.githubusercontent.com/wasp-lang/open-saas/main/opensaas-sh/blog/src/content/docs/guides/seo.mdx) - [Tests](https://raw.githubusercontent.com/wasp-lang/open-saas/main/opensaas-sh/blog/src/content/docs/guides/tests.md) - [How (Not) to Update Your Open SaaS App](https://raw.githubusercontent.com/wasp-lang/open-saas/main/opensaas-sh/blog/src/content/docs/guides/updating-opensaas.md) +- [Vibe Coding with Open SaaS](https://raw.githubusercontent.com/wasp-lang/open-saas/main/opensaas-sh/blog/src/content/docs/guides/vibe-coding.mdx) - [Admin Dashboard](https://raw.githubusercontent.com/wasp-lang/open-saas/main/opensaas-sh/blog/src/content/docs/general/admin-dashboard.mdx) - [User Overview](https://raw.githubusercontent.com/wasp-lang/open-saas/main/opensaas-sh/blog/src/content/docs/general/user-overview.md) \ No newline at end of file diff --git a/opensaas-sh/blog/src/content/docs/guides/payments-integration.mdx b/opensaas-sh/blog/src/content/docs/guides/payments-integration.mdx index df9c0c7a6..be7926f07 100644 --- a/opensaas-sh/blog/src/content/docs/guides/payments-integration.mdx +++ b/opensaas-sh/blog/src/content/docs/guides/payments-integration.mdx @@ -43,7 +43,7 @@ export const paymentProcessor: PaymentProcessor = lemonSqueezyPaymentProcessor; At this point, you can delete: - the unused payment processor code within the `/src/payment/` directory, - any unused environment variables from `.env.server` (they will be prefixed with the name of the provider your are not using): - - e.g. `STRIPE_API_KEY`, `STRIPE_CUSTOMER_PORTAL_URL`, `LEMONSQUEEZY_API_KEY`, `LEMONSQUEEZY_WEBHOOK_SECRET` + - e.g. `STRIPE_API_KEY`, `LEMONSQUEEZY_API_KEY` - Make sure to also uninstall the unused dependencies: - `npm uninstall @lemonsqueezy/lemonsqueezy.js` - or @@ -95,22 +95,21 @@ To create a test product, go to the test products url [https://dashboard.stripe. ### Create a Test Customer -To create a test customer, go to the test customers url [https://dashboard.stripe.com/test/customers](https://dashboard.stripe.com/test/customers). +You can create a test customer directly in the [Stripe Dashboard](https://dashboard.stripe.com/test/customers). - Click on the `Add a customer` button and fill in the relevant information for your test customer. -:::note - When filling in the test customer email address, use an address you have access to and will use when logging into your SaaS app. This is important because the email address is used to identify the customer when creating a subscription and allows you to manage your test user's payments/subscriptions via the test customer portal -::: + +Alternatively, OpenSasS will automatically create a test customer the first time a user starts a checkout session. +This customer is linked to the email address associated with your app's user. ### Set up the Customer Portal -Go to https://dashboard.stripe.com/test/settings/billing/portal in the Stripe Dashboard and activate and copy the `Customer portal link`. Paste it in your `.env.server` file: +You can set up your customer portal in your [Stripe Dashboard](https://dashboard.stripe.com/test/settings/billing/portal). -```ts title=".env.server" -STRIPE_CUSTOMER_PORTAL_URL= -``` +By default, OpenSaas generates a unique customer portal link for each user on the back end. +If you'd rather provide a permanent link to the customer portal, activate and copy the `Customer portal link`. -If you'd like to give users the ability to switch between different plans, e.g. upgrade from a hobby to a pro subscription, go down to the `Subscriptions` dropdown and select `customers can switch plans`. +If you'd like to give users the ability to switch between different plans, e.g., upgrade from a "Hobby" to a "Pro" subscription, go down to the `Subscriptions` dropdown and select `customers can switch plans`. switch plans diff --git a/template/app/.env.server.example b/template/app/.env.server.example index 65d02b9e1..b602ea362 100644 --- a/template/app/.env.server.example +++ b/template/app/.env.server.example @@ -7,8 +7,6 @@ STRIPE_API_KEY=sk_test_... # After downloading starting the stripe cli (https://stripe.com/docs/stripe-cli) with `stripe listen --forward-to localhost:3001/payments-webhook` it will output your signing secret STRIPE_WEBHOOK_SECRET=whsec_... -# You can find your Stripe customer portal URL in the Stripe Dashboard under the 'Customer Portal' settings. -STRIPE_CUSTOMER_PORTAL_URL=https://billing.stripe.com/... # For testing, create a new store in test mode on https://lemonsqueezy.com LEMONSQUEEZY_API_KEY=eyJ...