diff --git a/.github/workflows/cron-webhooks-triggers.yml b/.github/workflows/cron-webhooks-triggers.yml new file mode 100644 index 0000000000..20f54dbf0c --- /dev/null +++ b/.github/workflows/cron-webhooks-triggers.yml @@ -0,0 +1,23 @@ +name: Cron - webhookTriggers + +on: + # "Scheduled workflows run on the latest commit on the default or base branch." + # — https://docs.github.com/en/actions/learn-github-actions/events-that-trigger-workflows#schedule + schedule: + # Runs “every 5 minutes” (see https://crontab.guru) + - cron: "*/5 * * * *" +jobs: + cron-webhookTriggers: + env: + APP_URL: ${{ secrets.APP_URL }} + CRON_API_KEY: ${{ secrets.CRON_API_KEY }} + runs-on: ubuntu-latest + steps: + - name: cURL request + if: ${{ env.APP_URL && env.CRON_API_KEY }} + run: | + curl ${{ secrets.APP_URL }}/api/cron/webhookTriggers \ + -X POST \ + -H 'content-type: application/json' \ + -H 'authorization: ${{ secrets.CRON_API_KEY }}' \ + --fail diff --git a/apps/ai/.env.example b/apps/ai/.env.example new file mode 100644 index 0000000000..cdec550390 --- /dev/null +++ b/apps/ai/.env.example @@ -0,0 +1,15 @@ +BACKEND_URL=http://localhost:3002/api + +APP_ID=cal-ai +APP_URL=http://localhost:3000/apps/cal-ai + +# Used to verify requests from sendgrid. You can generate a new one with: `openssl rand -hex 32` +PARSE_KEY= + +OPENAI_API_KEY= + +# Optionally trace completions at https://smith.langchain.com +# LANGCHAIN_TRACING_V2=true +# LANGCHAIN_ENDPOINT= +# LANGCHAIN_API_KEY= +# LANGCHAIN_PROJECT= diff --git a/apps/ai/README.md b/apps/ai/README.md new file mode 100644 index 0000000000..a504fcc19c --- /dev/null +++ b/apps/ai/README.md @@ -0,0 +1,48 @@ +# Cal.com Email Assistant + +Welcome to the first stage of Cal AI! + +This app lets you chat with your calendar via email: + + - Turn informal emails into bookings eg. forward "wanna meet tmrw at 2pm?" + - List and rearrange your bookings eg. "Cancel my next meeting" + - Answer basic questions about your busiest times eg. "How does my Tuesday look?" + +The core logic is contained in [agent/route.ts](/apps/ai/src/app/api/agent/route.ts). Here, a [LangChain Agent Executor](https://docs.langchain.com/docs/components/agents/agent-executor) is tasked with following your instructions. Given your last-known timezone, working hours, and busy times, it attempts to CRUD your bookings. + +_The AI agent can only choose from a set of tools, without ever seeing your API key._ + +Emails are cleaned and routed in [receive/route.ts](/apps/ai/src/app/api/receive/route.ts) using [MailParser](https://nodemailer.com/extras/mailparser/). + +Incoming emails are routed by email address. Addresses are verified by [DKIM record](https://support.google.com/a/answer/174124?hl=en), making it hard to spoof them. + +## Getting Started + +### Development + +If you haven't yet, please run the [root setup](/README.md) steps. + +Before running the app, please see [env.mjs](./src/env.mjs) for all required environment variables. You'll need: + + - An [OpenAI API key](https://platform.openai.com/account/api-keys) with access to GPT-4 + - A [SendGrid API key](https://app.sendgrid.com/settings/api_keys) + - A default sender email (for example, `ai@cal.dev`) + - The Cal AI's app ID and URL (see [add.ts](/packages/app-store/cal-ai/api/index.ts)) + +To stand up the API and AI apps simultaneously, simply run `yarn dev:ai`. + +### Email Router + +To expose the AI app, run `ngrok http 3000` (or the AI app's port number) in a new terminal. You may need to install [nGrok](https://ngrok.com/). + +To forward incoming emails to the Node.js server, one option is to use [SendGrid's Inbound Parse Webhook](https://docs.sendgrid.com/for-developers/parsing-email/setting-up-the-inbound-parse-webhook). + +1. [Sign up for an account](https://signup.sendgrid.com/) +2. Go to Settings > [Inbound Parse](https://app.sendgrid.com/settings/parse) > Add Host & URL. +3. For subdomain, use `..com` for now, where `sub` can be any subdomain but `domain.com` will need to be verified via MX records in your environment variables, eg. on [Vercel](https://vercel.com/guides/how-to-add-vercel-environment-variables). +4. Use the nGrok URL from above as the **Destination URL**. +5. Activate "POST the raw, full MIME message". +6. Send an email to `@ai.example.com`. You should see a ping on the nGrok listener and Node.js server. +7. Adjust the logic in [receive/route.ts](/apps/ai/src/app/api/receive/route.ts), save to hot-reload, and send another email to test the behaviour. + +Please feel free to improve any part of this architecture. diff --git a/apps/ai/next-env.d.ts b/apps/ai/next-env.d.ts new file mode 100644 index 0000000000..4f11a03dc6 --- /dev/null +++ b/apps/ai/next-env.d.ts @@ -0,0 +1,5 @@ +/// +/// + +// NOTE: This file should not be edited +// see https://nextjs.org/docs/basic-features/typescript for more information. diff --git a/apps/ai/next.config.js b/apps/ai/next.config.js new file mode 100644 index 0000000000..2a1040b258 --- /dev/null +++ b/apps/ai/next.config.js @@ -0,0 +1,15 @@ +const withBundleAnalyzer = require("@next/bundle-analyzer"); + +const plugins = []; +plugins.push(withBundleAnalyzer({ enabled: process.env.ANALYZE === "true" })); + +/** @type {import("next").NextConfig} */ +const nextConfig = { + i18n: { + defaultLocale: "en", + locales: ["en"], + }, + reactStrictMode: true, +}; + +module.exports = () => plugins.reduce((acc, next) => next(acc), nextConfig); diff --git a/apps/ai/package.json b/apps/ai/package.json new file mode 100644 index 0000000000..45931e9a31 --- /dev/null +++ b/apps/ai/package.json @@ -0,0 +1,27 @@ +{ + "name": "@calcom/ai", + "version": "0.1.0", + "private": true, + "author": "Cal.com Inc.", + "dependencies": { + "@calcom/prisma": "*", + "@t3-oss/env-nextjs": "^0.6.1", + "langchain": "^0.0.131", + "mailparser": "^3.6.5", + "next": "^13.4.6", + "zod": "^3.20.2" + }, + "devDependencies": { + "@types/mailparser": "^3.4.0", + "@types/node": "^20.5.1", + "typescript": "^4.9.4" + }, + "scripts": { + "build": "next build", + "dev": "next dev -p 3005", + "format": "npx prettier . --write", + "lint": "eslint . --ext .ts,.js,.tsx,.jsx", + "lint:fix": "eslint . --ext .ts,.js,.tsx,.jsx --fix", + "start": "next start" + } +} diff --git a/apps/ai/src/app/api/agent/route.ts b/apps/ai/src/app/api/agent/route.ts new file mode 100644 index 0000000000..ca6a1924e8 --- /dev/null +++ b/apps/ai/src/app/api/agent/route.ts @@ -0,0 +1,45 @@ +import type { NextRequest } from "next/server"; +import { NextResponse } from "next/server"; + +import agent from "../../../utils/agent"; +import sendEmail from "../../../utils/sendEmail"; +import { verifyParseKey } from "../../../utils/verifyParseKey"; + +/** + * Launches a LangChain agent to process an incoming email, + * then sends the response to the user. + */ +export const POST = async (request: NextRequest) => { + const verified = verifyParseKey(request.url); + + if (!verified) { + return new NextResponse("Unauthorized", { status: 401 }); + } + + const json = await request.json(); + + const { apiKey, userId, message, subject, user, replyTo } = json; + + if ((!message && !subject) || !user) { + return new NextResponse("Missing fields", { status: 400 }); + } + + try { + const response = await agent(`${subject}\n\n${message}`, user, apiKey, userId); + + // Send response to user + await sendEmail({ + subject: `Re: ${subject}`, + text: response.replace(/(?:\r\n|\r|\n)/g, "\n"), + to: user.email, + from: replyTo, + }); + + return new NextResponse("ok"); + } catch (error) { + return new NextResponse( + (error as Error).message || "Something went wrong. Please try again or reach out for help.", + { status: 500 } + ); + } +}; diff --git a/apps/ai/src/app/api/receive/route.ts b/apps/ai/src/app/api/receive/route.ts new file mode 100644 index 0000000000..e398bd7006 --- /dev/null +++ b/apps/ai/src/app/api/receive/route.ts @@ -0,0 +1,151 @@ +import type { ParsedMail, Source } from "mailparser"; +import { simpleParser } from "mailparser"; +import type { NextRequest } from "next/server"; +import { NextResponse } from "next/server"; + +import prisma from "@calcom/prisma"; + +import { env } from "../../../env.mjs"; +import { fetchAvailability } from "../../../tools/getAvailability"; +import { fetchEventTypes } from "../../../tools/getEventTypes"; +import getHostFromHeaders from "../../../utils/host"; +import now from "../../../utils/now"; +import sendEmail from "../../../utils/sendEmail"; +import { verifyParseKey } from "../../../utils/verifyParseKey"; + +/** + * Verifies email signature and app authorization, + * then hands off to booking agent. + */ +export const POST = async (request: NextRequest) => { + const verified = verifyParseKey(request.url); + + if (!verified) { + return new NextResponse("Unauthorized", { status: 401 }); + } + + const formData = await request.formData(); + const body = Object.fromEntries(formData); + + // body.dkim looks like {@domain-com.22222222.gappssmtp.com : pass} + const signature = (body.dkim as string).includes(" : pass"); + + const envelope = JSON.parse(body.envelope as string); + + const aiEmail = envelope.to[0]; + + // Parse email from mixed MIME type + const parsed: ParsedMail = await simpleParser(body.email as Source); + + if (!parsed.text && !parsed.subject) { + return new NextResponse("Email missing text and subject", { status: 400 }); + } + + const user = await prisma.user.findUnique({ + select: { + email: true, + id: true, + credentials: { + select: { + appId: true, + key: true, + }, + }, + }, + where: { email: envelope.from }, + }); + + if (!signature || !user?.email || !user?.id) { + await sendEmail({ + subject: `Re: ${body.subject}`, + text: "Sorry, you are not authorized to use this service. Please verify your email address and try again.", + to: user?.email || "", + from: aiEmail, + }); + + return new NextResponse(); + } + + const credential = user.credentials.find((c) => c.appId === env.APP_ID)?.key; + + // User has not installed the app from the app store. Direct them to install it. + if (!(credential as { apiKey: string })?.apiKey) { + const url = env.APP_URL; + + await sendEmail({ + html: `Thanks for using Cal AI! To get started, the app must be installed. Click this link to install it.`, + subject: `Re: ${body.subject}`, + text: `Thanks for using Cal AI! To get started, the app must be installed. Click this link to install the Cal AI app: ${url}`, + to: envelope.from, + from: aiEmail, + }); + + return new NextResponse("ok"); + } + + const { apiKey } = credential as { apiKey: string }; + + // Pre-fetch data relevant to most bookings. + const [eventTypes, availability] = await Promise.all([ + fetchEventTypes({ + apiKey, + }), + fetchAvailability({ + apiKey, + userId: user.id, + dateFrom: now, + dateTo: now, + }), + ]); + + if ("error" in availability) { + await sendEmail({ + subject: `Re: ${body.subject}`, + text: "Sorry, there was an error fetching your availability. Please try again.", + to: user.email, + from: aiEmail, + }); + console.error(availability.error); + return new NextResponse("Error fetching availability. Please try again.", { status: 400 }); + } + + if ("error" in eventTypes) { + await sendEmail({ + subject: `Re: ${body.subject}`, + text: "Sorry, there was an error fetching your event types. Please try again.", + to: user.email, + from: aiEmail, + }); + console.error(eventTypes.error); + return new NextResponse("Error fetching event types. Please try again.", { status: 400 }); + } + + const { timeZone, workingHours } = availability; + + const appHost = getHostFromHeaders(request.headers); + + // Hand off to long-running agent endpoint to handle the email. (don't await) + fetch(`${appHost}/api/agent?parseKey=${env.PARSE_KEY}`, { + body: JSON.stringify({ + apiKey, + userId: user.id, + message: parsed.text, + subject: parsed.subject, + replyTo: aiEmail, + user: { + email: user.email, + eventTypes, + timeZone, + workingHours, + }, + }), + headers: { + "Content-Type": "application/json", + }, + method: "POST", + }); + + await new Promise((r) => setTimeout(r, 1000)); + + return new NextResponse("ok"); +}; diff --git a/apps/ai/src/env.mjs b/apps/ai/src/env.mjs new file mode 100644 index 0000000000..ba482f6bea --- /dev/null +++ b/apps/ai/src/env.mjs @@ -0,0 +1,41 @@ +import { createEnv } from "@t3-oss/env-nextjs"; +import { z } from "zod"; + +export const env = createEnv({ + /** + * Specify your client-side environment variables schema here. This way you can ensure the app + * isn't built with invalid env vars. To expose them to the client, prefix them with + * `NEXT_PUBLIC_`. + */ + client: { + // NEXT_PUBLIC_CLIENTVAR: z.string().min(1), + }, + + /** + * You can't destruct `process.env` as a regular object in the Next.js edge runtimes (e.g. + * middlewares) or client-side so we need to destruct manually. + */ + runtimeEnv: { + BACKEND_URL: process.env.BACKEND_URL, + APP_ID: process.env.APP_ID, + APP_URL: process.env.APP_URL, + PARSE_KEY: process.env.PARSE_KEY, + NODE_ENV: process.env.NODE_ENV, + OPENAI_API_KEY: process.env.OPENAI_API_KEY, + SENDGRID_API_KEY: process.env.SENDGRID_API_KEY, + }, + + /** + * Specify your server-side environment variables schema here. This way you can ensure the app + * isn't built with invalid env vars. + */ + server: { + BACKEND_URL: z.string().url(), + APP_ID: z.string().min(1), + APP_URL: z.string().url(), + PARSE_KEY: z.string().min(1), + NODE_ENV: z.enum(["development", "test", "production"]), + OPENAI_API_KEY: z.string().min(1), + SENDGRID_API_KEY: z.string().min(1), + }, +}); diff --git a/apps/ai/src/tools/createBookingIfAvailable.ts b/apps/ai/src/tools/createBookingIfAvailable.ts new file mode 100644 index 0000000000..4e95a7f743 --- /dev/null +++ b/apps/ai/src/tools/createBookingIfAvailable.ts @@ -0,0 +1,111 @@ +import { DynamicStructuredTool } from "langchain/tools"; +import { z } from "zod"; + +import { env } from "../env.mjs"; + +/** + * Creates a booking for a user by event type, times, and timezone. + */ +const createBooking = async ({ + apiKey, + userId, + eventTypeId, + start, + end, + timeZone, + language, + responses, +}: { + apiKey: string; + userId: number; + eventTypeId: number; + start: string; + end: string; + timeZone: string; + language: string; + responses: { name?: string; email?: string; location?: string }; + title?: string; + status?: string; +}): Promise => { + const params = { + apiKey, + userId: userId.toString(), + }; + + const urlParams = new URLSearchParams(params); + + const url = `${env.BACKEND_URL}/bookings?${urlParams.toString()}`; + + const response = await fetch(url, { + body: JSON.stringify({ + end, + eventTypeId, + language, + metadata: {}, + responses, + start, + timeZone, + }), + headers: { + "Content-Type": "application/json", + }, + method: "POST", + }); + + if (response.status === 401) { + throw new Error("Unauthorized"); + } + + const data = await response.json(); + + if (response.status !== 200) { + return { + error: data.message, + }; + } + + return "Booking created"; +}; + +const createBookingTool = (apiKey: string, userId: number) => { + return new DynamicStructuredTool({ + description: + "Tries to create a booking. If the user is unavailable, it will return availability that day, allowing you to avoid the getAvailability step in many cases.", + func: async ({ eventTypeId, start, end, timeZone, language, responses, title, status }) => { + return JSON.stringify( + await createBooking({ + apiKey, + userId, + end, + eventTypeId, + language, + responses, + start, + status, + timeZone, + title, + }) + ); + }, + name: "createBookingIfAvailable", + schema: z.object({ + end: z + .string() + .describe("This should correspond to the event type's length, unless otherwise specified."), + eventTypeId: z.number(), + language: z.string(), + responses: z + .object({ + email: z.string().optional(), + name: z.string().optional(), + }) + .describe("External invited user. Not the user making the request."), + start: z.string(), + status: z.string().optional().describe("ACCEPTED, PENDING, CANCELLED or REJECTED"), + timeZone: z.string(), + title: z.string().optional(), + }), + }); +}; + +export default createBookingTool; diff --git a/apps/ai/src/tools/deleteBooking.ts b/apps/ai/src/tools/deleteBooking.ts new file mode 100644 index 0000000000..6fbb590e3c --- /dev/null +++ b/apps/ai/src/tools/deleteBooking.ts @@ -0,0 +1,65 @@ +import { DynamicStructuredTool } from "langchain/tools"; +import { z } from "zod"; + +import { env } from "../env.mjs"; + +/** + * Cancels a booking for a user by ID with reason. + */ +const cancelBooking = async ({ + apiKey, + id, + reason, +}: { + apiKey: string; + id: string; + reason: string; +}): Promise => { + const params = { + apiKey, + }; + + const urlParams = new URLSearchParams(params); + + const url = `${env.BACKEND_URL}/bookings/${id}/cancel?${urlParams.toString()}`; + + const response = await fetch(url, { + body: JSON.stringify({ reason }), + headers: { + "Content-Type": "application/json", + }, + method: "DELETE", + }); + + if (response.status === 401) throw new Error("Unauthorized"); + + const data = await response.json(); + + if (response.status !== 200) { + return { error: data.message }; + } + + return "Booking cancelled"; +}; + +const cancelBookingTool = (apiKey: string) => { + return new DynamicStructuredTool({ + description: "Cancel a booking", + func: async ({ id, reason }) => { + return JSON.stringify( + await cancelBooking({ + apiKey, + id, + reason, + }) + ); + }, + name: "cancelBooking", + schema: z.object({ + id: z.string(), + reason: z.string(), + }), + }); +}; + +export default cancelBookingTool; diff --git a/apps/ai/src/tools/getAvailability.ts b/apps/ai/src/tools/getAvailability.ts new file mode 100644 index 0000000000..fc56c54982 --- /dev/null +++ b/apps/ai/src/tools/getAvailability.ts @@ -0,0 +1,84 @@ +import { DynamicStructuredTool } from "langchain/tools"; +import { z } from "zod"; + +import { env } from "../env.mjs"; +import type { Availability } from "../types/availability"; + +/** + * Fetches availability for a user by date range and event type. + */ +export const fetchAvailability = async ({ + apiKey, + userId, + dateFrom, + dateTo, + eventTypeId, +}: { + apiKey: string; + userId: number; + dateFrom: string; + dateTo: string; + eventTypeId?: number; +}): Promise | { error: string }> => { + const params: { [k: string]: string } = { + apiKey, + userId: userId.toString(), + dateFrom, + dateTo, + }; + + if (eventTypeId) params["eventTypeId"] = eventTypeId.toString(); + + const urlParams = new URLSearchParams(params); + + const url = `${env.BACKEND_URL}/availability?${urlParams.toString()}`; + + const response = await fetch(url); + + if (response.status === 401) { + throw new Error("Unauthorized"); + } + + const data = await response.json(); + + if (response.status !== 200) { + return { error: data.message }; + } + + return { + busy: data.busy, + dateRanges: data.dateRanges, + timeZone: data.timeZone, + workingHours: data.workingHours, + }; +}; + +const getAvailabilityTool = (apiKey: string, userId: number) => { + return new DynamicStructuredTool({ + description: "Get availability within range.", + func: async ({ dateFrom, dateTo, eventTypeId }) => { + return JSON.stringify( + await fetchAvailability({ + apiKey, + userId, + dateFrom, + dateTo, + eventTypeId, + }) + ); + }, + name: "getAvailability", + schema: z.object({ + dateFrom: z.string(), + dateTo: z.string(), + eventTypeId: z + .number() + .optional() + .describe( + "The ID of the event type to filter availability for if you've called getEventTypes, otherwise do not include." + ), + }), + }); +}; + +export default getAvailabilityTool; diff --git a/apps/ai/src/tools/getBookings.ts b/apps/ai/src/tools/getBookings.ts new file mode 100644 index 0000000000..7296c6fb45 --- /dev/null +++ b/apps/ai/src/tools/getBookings.ts @@ -0,0 +1,75 @@ +import { DynamicStructuredTool } from "langchain/tools"; +import { z } from "zod"; + +import { env } from "../env.mjs"; +import type { Booking } from "../types/booking"; +import { BOOKING_STATUS } from "../types/booking"; + +/** + * Fetches bookings for a user by date range. + */ +const fetchBookings = async ({ + apiKey, + userId, + from, + to, +}: { + apiKey: string; + userId: number; + from: string; + to: string; +}): Promise => { + const params = { + apiKey, + userId: userId.toString(), + }; + + const urlParams = new URLSearchParams(params); + + const url = `${env.BACKEND_URL}/bookings?${urlParams.toString()}`; + + const response = await fetch(url); + + if (response.status === 401) throw new Error("Unauthorized"); + + const data = await response.json(); + + if (response.status !== 200) { + return { error: data.message }; + } + + const bookings: Booking[] = data.bookings + .filter((booking: Booking) => { + const afterFrom = new Date(booking.startTime).getTime() > new Date(from).getTime(); + const beforeTo = new Date(booking.endTime).getTime() < new Date(to).getTime(); + const notCancelled = booking.status !== BOOKING_STATUS.CANCELLED; + + return afterFrom && beforeTo && notCancelled; + }) + .map(({ endTime, eventTypeId, id, startTime, status, title }: Booking) => ({ + endTime, + eventTypeId, + id, + startTime, + status, + title, + })); + + return bookings; +}; + +const getBookingsTool = (apiKey: string, userId: number) => { + return new DynamicStructuredTool({ + description: "Get bookings for a user between two dates.", + func: async ({ from, to }) => { + return JSON.stringify(await fetchBookings({ apiKey, userId, from, to })); + }, + name: "getBookings", + schema: z.object({ + from: z.string().describe("ISO 8601 datetime string"), + to: z.string().describe("ISO 8601 datetime string"), + }), + }); +}; + +export default getBookingsTool; diff --git a/apps/ai/src/tools/getEventTypes.ts b/apps/ai/src/tools/getEventTypes.ts new file mode 100644 index 0000000000..53d7b5e18d --- /dev/null +++ b/apps/ai/src/tools/getEventTypes.ts @@ -0,0 +1,51 @@ +import { DynamicStructuredTool } from "langchain/tools"; +import { z } from "zod"; + +import { env } from "../env.mjs"; +import type { EventType } from "../types/eventType"; + +/** + * Fetches event types by user ID. + */ +export const fetchEventTypes = async ({ apiKey }: { apiKey: string }) => { + const params = { + apiKey, + }; + + const urlParams = new URLSearchParams(params); + + const url = `${env.BACKEND_URL}/event-types?${urlParams.toString()}`; + + const response = await fetch(url); + + if (response.status === 401) throw new Error("Unauthorized"); + + const data = await response.json(); + + if (response.status !== 200) { + return { error: data.message }; + } + + return data.event_types.map((eventType: EventType) => ({ + id: eventType.id, + length: eventType.length, + title: eventType.title, + })); +}; + +const getEventTypesTool = (apiKey: string) => { + return new DynamicStructuredTool({ + description: "Get the user's event type IDs. Usually necessary to book a meeting.", + func: async () => { + return JSON.stringify( + await fetchEventTypes({ + apiKey, + }) + ); + }, + name: "getEventTypes", + schema: z.object({}), + }); +}; + +export default getEventTypesTool; diff --git a/apps/ai/src/tools/updateBooking.ts b/apps/ai/src/tools/updateBooking.ts new file mode 100644 index 0000000000..658760c567 --- /dev/null +++ b/apps/ai/src/tools/updateBooking.ts @@ -0,0 +1,84 @@ +import { DynamicStructuredTool } from "langchain/tools"; +import { z } from "zod"; + +import { env } from "../env.mjs"; + +/** + * Edits a booking for a user by booking ID with new times, title, description, or status. + */ +const editBooking = async ({ + apiKey, + userId, + id, + startTime, // In the docs it says start, but it's startTime: https://cal.com/docs/enterprise-features/api/api-reference/bookings#edit-an-existing-booking. + endTime, // Same here: it says end but it's endTime. + title, + description, + status, +}: { + apiKey: string; + userId: number; + id: string; + startTime?: string; + endTime?: string; + title?: string; + description?: string; + status?: string; +}): Promise => { + const params = { + apiKey, + userId: userId.toString(), + }; + const urlParams = new URLSearchParams(params); + + const url = `${env.BACKEND_URL}/bookings/${id}?${urlParams.toString()}`; + + const response = await fetch(url, { + body: JSON.stringify({ description, endTime, startTime, status, title }), + headers: { + "Content-Type": "application/json", + }, + method: "PATCH", + }); + + if (response.status === 401) throw new Error("Unauthorized"); + + const data = await response.json(); + + if (response.status !== 200) { + return { error: data.message }; + } + + return "Booking edited"; +}; + +const editBookingTool = (apiKey: string, userId: number) => { + return new DynamicStructuredTool({ + description: "Edit a booking", + func: async ({ description, endTime, id, startTime, status, title }) => { + return JSON.stringify( + await editBooking({ + apiKey, + userId, + description, + endTime, + id, + startTime, + status, + title, + }) + ); + }, + name: "editBooking", + schema: z.object({ + description: z.string().optional(), + endTime: z.string().optional(), + id: z.string(), + startTime: z.string().optional(), + status: z.string().optional(), + title: z.string().optional(), + }), + }); +}; + +export default editBookingTool; diff --git a/apps/ai/src/types/availability.ts b/apps/ai/src/types/availability.ts new file mode 100644 index 0000000000..62ed3b5ed5 --- /dev/null +++ b/apps/ai/src/types/availability.ts @@ -0,0 +1,25 @@ +export type Availability = { + busy: { + start: string; + end: string; + title?: string; + }[]; + timeZone: string; + dateRanges: { + start: string; + end: string; + }[]; + workingHours: { + days: number[]; + startTime: number; + endTime: number; + userId: number; + }[]; + dateOverrides: { + date: string; + startTime: number; + endTime: number; + userId: number; + }; + currentSeats: number; +}; diff --git a/apps/ai/src/types/booking.ts b/apps/ai/src/types/booking.ts new file mode 100644 index 0000000000..91eaf4e322 --- /dev/null +++ b/apps/ai/src/types/booking.ts @@ -0,0 +1,23 @@ +export enum BOOKING_STATUS { + ACCEPTED = "ACCEPTED", + PENDING = "PENDING", + CANCELLED = "CANCELLED", + REJECTED = "REJECTED", +} + +export type Booking = { + id: number; + userId: number; + description: string | null; + eventTypeId: number; + uid: string; + title: string; + startTime: string; + endTime: string; + attendees: { email: string; name: string; timeZone: string; locale: string }[] | null; + user: { email: string; name: string; timeZone: string; locale: string }[] | null; + payment: { id: number; success: boolean; paymentOption: string }[]; + metadata: object | null; + status: BOOKING_STATUS; + responses: { email: string; name: string; location: string } | null; +}; diff --git a/apps/ai/src/types/eventType.ts b/apps/ai/src/types/eventType.ts new file mode 100644 index 0000000000..b9de4cc230 --- /dev/null +++ b/apps/ai/src/types/eventType.ts @@ -0,0 +1,13 @@ +export type EventType = { + id: number; + title: string; + length: number; + metadata: object; + slug: string; + hosts: { + userId: number; + isFixed: boolean; + }[]; + hidden: boolean; + // ... +}; diff --git a/apps/ai/src/types/user.ts b/apps/ai/src/types/user.ts new file mode 100644 index 0000000000..8bb7dcdeee --- /dev/null +++ b/apps/ai/src/types/user.ts @@ -0,0 +1,9 @@ +import type { EventType } from "./eventType"; +import type { WorkingHours } from "./workingHours"; + +export type User = { + email: string; + timeZone: string; + eventTypes: EventType[]; + workingHours: WorkingHours[]; +}; diff --git a/apps/ai/src/types/workingHours.ts b/apps/ai/src/types/workingHours.ts new file mode 100644 index 0000000000..e3a1905a45 --- /dev/null +++ b/apps/ai/src/types/workingHours.ts @@ -0,0 +1,5 @@ +export type WorkingHours = { + days: number[]; + startTime: number; + endTime: number; +}; diff --git a/apps/ai/src/utils/agent.ts b/apps/ai/src/utils/agent.ts new file mode 100644 index 0000000000..c3389ca6ad --- /dev/null +++ b/apps/ai/src/utils/agent.ts @@ -0,0 +1,73 @@ +import { initializeAgentExecutorWithOptions } from "langchain/agents"; +import { ChatOpenAI } from "langchain/chat_models/openai"; + +import { env } from "../env.mjs"; +import createBookingIfAvailable from "../tools/createBookingIfAvailable"; +import deleteBooking from "../tools/deleteBooking"; +import getAvailability from "../tools/getAvailability"; +import getBookings from "../tools/getBookings"; +import updateBooking from "../tools/updateBooking"; +import type { EventType } from "../types/eventType"; +import type { User } from "../types/user"; +import type { WorkingHours } from "../types/workingHours"; +import now from "./now"; + +const gptModel = "gpt-4"; + +/** + * Core of the Cal AI booking agent: a LangChain Agent Executor. + * Uses a toolchain to book meetings, list available slots, etc. + * Uses OpenAI functions to better enforce JSON-parsable output from the LLM. + */ +const agent = async (input: string, user: User, apiKey: string, userId: number) => { + const tools = [ + createBookingIfAvailable(apiKey, userId), + getAvailability(apiKey, userId), + getBookings(apiKey, userId), + updateBooking(apiKey, userId), + deleteBooking(apiKey), + ]; + + const model = new ChatOpenAI({ + modelName: gptModel, + openAIApiKey: env.OPENAI_API_KEY, + temperature: 0, + }); + + /** + * Initialize the agent executor with arguments. + */ + const executor = await initializeAgentExecutorWithOptions(tools, model, { + agentArgs: { + prefix: `You are Cal AI - a bleeding edge scheduling assistant that interfaces via email. + Make sure your final answers are definitive, complete and well formatted. + Sometimes, tools return errors. In this case, try to handle the error intelligently or ask the user for more information. + Tools will always handle times in UTC, but times sent to the user should be formatted per that user's timezone. + + Current UTC time is: ${now} + The user's time zone is: ${user.timeZone} + The user's event types are: ${user.eventTypes + .map((e: EventType) => `ID: ${e.id}, Title: ${e.title}, Length: ${e.length}`) + .join("\n")} + The user's working hours are: ${user.workingHours + .map( + (w: WorkingHours) => + `Days: ${w.days.join(", ")}, Start Time (minutes in UTC): ${ + w.startTime + }, End Time (minutes in UTC): ${w.endTime}` + ) + .join("\n")} + `, + }, + agentType: "openai-functions", + returnIntermediateSteps: env.NODE_ENV === "development", + verbose: env.NODE_ENV === "development", + }); + + const result = await executor.call({ input }); + const { output } = result; + + return output; +}; + +export default agent; diff --git a/apps/ai/src/utils/host.ts b/apps/ai/src/utils/host.ts new file mode 100644 index 0000000000..f215d7e7d0 --- /dev/null +++ b/apps/ai/src/utils/host.ts @@ -0,0 +1,7 @@ +import type { NextRequest } from "next/server"; + +const getHostFromHeaders = (headers: NextRequest["headers"]): string => { + return `https://${headers.get("host")}`; +}; + +export default getHostFromHeaders; diff --git a/apps/ai/src/utils/now.ts b/apps/ai/src/utils/now.ts new file mode 100644 index 0000000000..a1d76cdce6 --- /dev/null +++ b/apps/ai/src/utils/now.ts @@ -0,0 +1 @@ +export default new Date().toISOString(); diff --git a/apps/ai/src/utils/sendEmail.ts b/apps/ai/src/utils/sendEmail.ts new file mode 100644 index 0000000000..4939fb4a4a --- /dev/null +++ b/apps/ai/src/utils/sendEmail.ts @@ -0,0 +1,40 @@ +import mail from "@sendgrid/mail"; + +const sendgridAPIKey = process.env.SENDGRID_API_KEY as string; + +/** + * Simply send an email by address, subject, and body. + */ +const send = async ({ + subject, + to, + from, + text, + html, +}: { + subject: string; + to: string; + from: string; + text: string; + html?: string; +}): Promise => { + mail.setApiKey(sendgridAPIKey); + + const msg = { + to, + from: { + email: from, + name: "Cal AI", + }, + text, + html, + subject, + }; + + const res = await mail.send(msg); + const success = !!res; + + return success; +}; + +export default send; diff --git a/apps/ai/src/utils/verifyParseKey.ts b/apps/ai/src/utils/verifyParseKey.ts new file mode 100644 index 0000000000..5ac81ed78c --- /dev/null +++ b/apps/ai/src/utils/verifyParseKey.ts @@ -0,0 +1,13 @@ +import type { NextRequest } from "next/server"; + +import { env } from "../env.mjs"; + +/** + * Verifies that the request contains the correct parse key. + * env.PARSE_KEY must be configured as a query param in the sendgrid inbound parse settings. + */ +export const verifyParseKey = (url: NextRequest["url"]) => { + const verified = new URL(url).searchParams.get("parseKey") === env.PARSE_KEY; + + return verified; +}; diff --git a/apps/ai/tsconfig.json b/apps/ai/tsconfig.json new file mode 100644 index 0000000000..960106f688 --- /dev/null +++ b/apps/ai/tsconfig.json @@ -0,0 +1,18 @@ +{ + "extends": "@calcom/tsconfig/nextjs.json", + "compilerOptions": { + "strict": true, + "jsx": "preserve", + "baseUrl": ".", + "paths": { + "~/*": ["*"] + }, + "plugins": [ + { + "name": "next" + } + ] + }, + "include": ["next-env.d.ts", "**/*.ts", "**/*.tsx", ".next/types/**/*.ts"], + "exclude": ["node_modules"] +} diff --git a/apps/web/components/eventtype/EventTeamTab.tsx b/apps/web/components/eventtype/EventTeamTab.tsx index 7d170115ae..49917235a3 100644 --- a/apps/web/components/eventtype/EventTeamTab.tsx +++ b/apps/web/components/eventtype/EventTeamTab.tsx @@ -9,7 +9,6 @@ import type { Options } from "react-select"; import type { CheckedSelectOption } from "@calcom/features/eventtypes/components/CheckedTeamSelect"; import CheckedTeamSelect from "@calcom/features/eventtypes/components/CheckedTeamSelect"; import ChildrenEventTypeSelect from "@calcom/features/eventtypes/components/ChildrenEventTypeSelect"; -import { WEBAPP_URL } from "@calcom/lib/constants"; import { useLocale } from "@calcom/lib/hooks/useLocale"; import { SchedulingType } from "@calcom/prisma/enums"; import { Label, Select } from "@calcom/ui"; @@ -18,13 +17,14 @@ interface IUserToValue { id: number | null; name: string | null; username: string | null; + avatar: string; email: string; } -const mapUserToValue = ({ id, name, username, email }: IUserToValue, pendingString: string) => ({ +const mapUserToValue = ({ id, name, username, avatar, email }: IUserToValue, pendingString: string) => ({ value: `${id || ""}`, label: `${name || email || ""}${!username ? ` (${pendingString})` : ""}`, - avatar: `${WEBAPP_URL}/${username}/avatar.png`, + avatar, email, }); diff --git a/apps/web/pages/api/cron/webhookTriggers.ts b/apps/web/pages/api/cron/webhookTriggers.ts new file mode 100644 index 0000000000..f262146429 --- /dev/null +++ b/apps/web/pages/api/cron/webhookTriggers.ts @@ -0,0 +1 @@ +export { default } from "@calcom/features/webhooks/lib/cron"; diff --git a/apps/web/pages/event-types/[type]/index.tsx b/apps/web/pages/event-types/[type]/index.tsx index 521355f036..3fa0c17df4 100644 --- a/apps/web/pages/event-types/[type]/index.tsx +++ b/apps/web/pages/event-types/[type]/index.tsx @@ -183,12 +183,7 @@ const EventTypePage = (props: EventTypeSetupProps) => { created: true, })) ); - showToast( - t("event_type_updated_successfully", { - eventTypeTitle: eventType.title, - }), - "success" - ); + showToast(t("event_type_updated_successfully"), "success"); }, async onSettled() { await utils.viewer.eventTypes.get.invalidate(); diff --git a/apps/web/pages/event-types/index.tsx b/apps/web/pages/event-types/index.tsx index 8f92673e2d..6eb23dd747 100644 --- a/apps/web/pages/event-types/index.tsx +++ b/apps/web/pages/event-types/index.tsx @@ -826,6 +826,25 @@ const SetupProfileBanner = ({ closeAction }: { closeAction: () => void }) => { ); }; +const EmptyEventTypeList = ({ group }: { group: EventTypeGroup }) => { + const { t } = useLocale(); + return ( + <> + + {t("create")} + + } + /> + + ); +}; + const Main = ({ status, errorMessage, @@ -868,12 +887,16 @@ const Main = ({ orgSlug={orgBranding?.slug} /> - + {group.eventTypes.length ? ( + + ) : ( + + )} )) )} diff --git a/apps/web/playwright/booking-seats.e2e.ts b/apps/web/playwright/booking-seats.e2e.ts index 8a93bec558..d173992d00 100644 --- a/apps/web/playwright/booking-seats.e2e.ts +++ b/apps/web/playwright/booking-seats.e2e.ts @@ -64,7 +64,7 @@ test.describe("Booking with Seats", () => { await page.waitForSelector('[data-testid="event-types"]'); const eventTitle = "My 2-seated event"; await createNewSeatedEventType(page, { eventTitle }); - await expect(page.locator(`text=${eventTitle} event type updated successfully`)).toBeVisible(); + await expect(page.locator(`text=Event type updated successfully`)).toBeVisible(); }); test("Multiple Attendees can book a seated event time slot", async ({ users, page }) => { diff --git a/apps/web/public/static/locales/en/common.json b/apps/web/public/static/locales/en/common.json index a246e37968..31489764ea 100644 --- a/apps/web/public/static/locales/en/common.json +++ b/apps/web/public/static/locales/en/common.json @@ -678,8 +678,8 @@ "new_event_type_btn": "New event type", "new_event_type_heading": "Create your first event type", "new_event_type_description": "Event types enable you to share links that show available times on your calendar and allow people to make bookings with you.", - "event_type_created_successfully": "{{eventTypeTitle}} event type created successfully", - "event_type_updated_successfully": "{{eventTypeTitle}} event type updated successfully", + "event_type_created_successfully": "Event type created successfully", + "event_type_updated_successfully": "Event type updated successfully", "event_type_deleted_successfully": "Event type deleted successfully", "hours": "Hours", "people": "People", @@ -2032,7 +2032,8 @@ "mark_dns_configured": "Mark as DNS configured", "value": "Value", "your_organization_updated_sucessfully": "Your organization updated successfully", - "seat_options_doesnt_multiple_durations": "Seat option doesn't support multiple durations", + "team_no_event_types": "This team has no event types", + "seat_options_doesnt_multiple_durations": "Seat option doesn't support multiple durations", "include_calendar_event": "Include calendar event", "ADD_NEW_STRINGS_ABOVE_THIS_LINE_TO_PREVENT_MERGE_CONFLICTS": "↑↑↑↑↑↑↑↑↑↑↑↑↑ Add your new strings above here ↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑" } diff --git a/apps/web/public/static/locales/fr/common.json b/apps/web/public/static/locales/fr/common.json index 65dd1af6f5..8aa634a6a7 100644 --- a/apps/web/public/static/locales/fr/common.json +++ b/apps/web/public/static/locales/fr/common.json @@ -678,8 +678,8 @@ "new_event_type_btn": "Nouveau type d'événement", "new_event_type_heading": "Créez votre premier type d'événement", "new_event_type_description": "Les types d'événements vous permettent de partager des liens qui affichent vos disponibilités sur votre calendrier et permettent aux personnes de réserver des créneaux.", - "event_type_created_successfully": "Type d'événement {{eventTypeTitle}} créé avec succès", - "event_type_updated_successfully": "Type d'événement {{eventTypeTitle}} mis à jour avec succès", + "event_type_created_successfully": "Type d'événement créé avec succès", + "event_type_updated_successfully": "Type d'événement mis à jour avec succès", "event_type_deleted_successfully": "Type d'événement supprimé avec succès", "hours": "heures", "people": "Personnes", @@ -2032,6 +2032,7 @@ "mark_dns_configured": "Marquer comme DNS configuré", "value": "Valeur", "your_organization_updated_sucessfully": "Votre organisation a été mise à jour avec succès", + "team_no_event_types": "Cette équipe n'a aucun type d'événement", "seat_options_doesnt_multiple_durations": "L'option par place ne prend pas en charge les durées multiples", "include_calendar_event": "Inclure l'événement du calendrier", "ADD_NEW_STRINGS_ABOVE_THIS_LINE_TO_PREVENT_MERGE_CONFLICTS": "↑↑↑↑↑↑↑↑↑↑↑↑↑ Ajoutez vos nouvelles chaînes ci-dessus ↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑" diff --git a/package.json b/package.json index 7c993a5e7a..ebf7d7bb55 100644 --- a/package.json +++ b/package.json @@ -30,6 +30,7 @@ "db-studio": "yarn prisma studio", "deploy": "turbo run deploy", "dev:all": "turbo run dev --scope=\"@calcom/web\" --scope=\"@calcom/website\" --scope=\"@calcom/console\"", + "dev:ai": "turbo run dev --scope=\"@calcom/web\" --scope=\"@calcom/api\" --scope=\"@calcom/ai\"", "dev:api": "turbo run dev --scope=\"@calcom/web\" --scope=\"@calcom/api\"", "dev:api:console": "turbo run dev --scope=\"@calcom/web\" --scope=\"@calcom/api\" --scope=\"@calcom/console\"", "dev:console": "turbo run dev --scope=\"@calcom/web\" --scope=\"@calcom/console\"", diff --git a/packages/app-store/apps.metadata.generated.ts b/packages/app-store/apps.metadata.generated.ts index 768aadcbae..3b7308219e 100644 --- a/packages/app-store/apps.metadata.generated.ts +++ b/packages/app-store/apps.metadata.generated.ts @@ -6,6 +6,7 @@ import amie_config_json from "./amie/config.json"; import { metadata as applecalendar__metadata_ts } from "./applecalendar/_metadata"; import around_config_json from "./around/config.json"; import basecamp3_config_json from "./basecamp3/config.json"; +import cal_ai_config_json from "./cal-ai/config.json"; import { metadata as caldavcalendar__metadata_ts } from "./caldavcalendar/_metadata"; import campfire_config_json from "./campfire/config.json"; import closecom_config_json from "./closecom/config.json"; @@ -75,6 +76,7 @@ export const appStoreMetadata = { applecalendar: applecalendar__metadata_ts, around: around_config_json, basecamp3: basecamp3_config_json, + "cal-ai": cal_ai_config_json, caldavcalendar: caldavcalendar__metadata_ts, campfire: campfire_config_json, closecom: closecom_config_json, diff --git a/packages/app-store/apps.server.generated.ts b/packages/app-store/apps.server.generated.ts index 50e90ecd4f..6eb15be4f0 100644 --- a/packages/app-store/apps.server.generated.ts +++ b/packages/app-store/apps.server.generated.ts @@ -7,6 +7,7 @@ export const apiHandlers = { applecalendar: import("./applecalendar/api"), around: import("./around/api"), basecamp3: import("./basecamp3/api"), + "cal-ai": import("./cal-ai/api"), caldavcalendar: import("./caldavcalendar/api"), campfire: import("./campfire/api"), closecom: import("./closecom/api"), diff --git a/packages/app-store/cal-ai/DESCRIPTION.md b/packages/app-store/cal-ai/DESCRIPTION.md new file mode 100644 index 0000000000..6b4d553de6 --- /dev/null +++ b/packages/app-store/cal-ai/DESCRIPTION.md @@ -0,0 +1,7 @@ +--- +items: + - 1.png + - 2.png +--- + +{DESCRIPTION} diff --git a/packages/app-store/cal-ai/api/_getAdd.ts b/packages/app-store/cal-ai/api/_getAdd.ts new file mode 100644 index 0000000000..bf9e10038d --- /dev/null +++ b/packages/app-store/cal-ai/api/_getAdd.ts @@ -0,0 +1,39 @@ +import type { NextApiRequest, NextApiResponse } from "next"; + +import { defaultResponder } from "@calcom/lib/server"; +import { createContext } from "@calcom/trpc/server/createContext"; +import { viewerRouter } from "@calcom/trpc/server/routers/viewer/_router"; + +import checkSession from "../../_utils/auth"; +import getInstalledAppPath from "../../_utils/getInstalledAppPath"; +import { checkInstalled, createDefaultInstallation } from "../../_utils/installation"; +import appConfig from "../config.json"; + +export async function getHandler(req: NextApiRequest, res: NextApiResponse) { + const session = checkSession(req); + const slug = appConfig.slug; + const appType = appConfig.type; + + const ctx = await createContext({ req, res }); + const caller = viewerRouter.createCaller(ctx); + + const apiKey = await caller.apiKeys.create({ + note: "Cal AI", + expiresAt: null, + appId: "cal-ai", + }); + + await checkInstalled(slug, session.user.id); + await createDefaultInstallation({ + appType, + userId: session.user.id, + slug, + key: { + apiKey, + }, + }); + + return { url: getInstalledAppPath({ variant: appConfig.variant, slug: "cal-ai" }) }; +} + +export default defaultResponder(getHandler); diff --git a/packages/app-store/cal-ai/api/add.ts b/packages/app-store/cal-ai/api/add.ts new file mode 100644 index 0000000000..912126e232 --- /dev/null +++ b/packages/app-store/cal-ai/api/add.ts @@ -0,0 +1,5 @@ +import { defaultHandler } from "@calcom/lib/server"; + +export default defaultHandler({ + GET: import("./_getAdd"), +}); diff --git a/packages/app-store/cal-ai/api/index.ts b/packages/app-store/cal-ai/api/index.ts new file mode 100644 index 0000000000..4c0d2ead01 --- /dev/null +++ b/packages/app-store/cal-ai/api/index.ts @@ -0,0 +1 @@ +export { default as add } from "./add"; diff --git a/packages/app-store/cal-ai/components/.gitkeep b/packages/app-store/cal-ai/components/.gitkeep new file mode 100644 index 0000000000..e69de29bb2 diff --git a/packages/app-store/cal-ai/config.json b/packages/app-store/cal-ai/config.json new file mode 100644 index 0000000000..164cc94b2e --- /dev/null +++ b/packages/app-store/cal-ai/config.json @@ -0,0 +1,17 @@ +{ + "/*": "Don't modify slug - If required, do it using cli edit command", + "name": "Cal AI", + "slug": "cal-ai", + "type": "cal-ai_automation", + "logo": "icon.png", + "url": "https://cal.ai", + "variant": "automation", + "categories": ["automation"], + "publisher": "Rubric Labs", + "email": "hi@cal.ai", + "description": "Cal AI is a scheduling assistant powered by GPT. Email hi@cal.ai to chat with your calendar or book, edit and cancel meetings.", + "isTemplate": false, + "__createdUsingCli": true, + "__template": "basic", + "dirName": "cal-ai" +} diff --git a/packages/app-store/cal-ai/index.ts b/packages/app-store/cal-ai/index.ts new file mode 100644 index 0000000000..d7f3602204 --- /dev/null +++ b/packages/app-store/cal-ai/index.ts @@ -0,0 +1 @@ +export * as api from "./api"; diff --git a/packages/app-store/cal-ai/package.json b/packages/app-store/cal-ai/package.json new file mode 100644 index 0000000000..eb41283882 --- /dev/null +++ b/packages/app-store/cal-ai/package.json @@ -0,0 +1,14 @@ +{ + "$schema": "https://json.schemastore.org/package.json", + "private": true, + "name": "@calcom/cal-ai", + "version": "0.0.0", + "main": "./index.ts", + "dependencies": { + "@calcom/lib": "*" + }, + "devDependencies": { + "@calcom/types": "*" + }, + "description": "Cal AI is a scheduling assistant powered by GPT. Email hi@cal.ai to chat with your calendar or book, edit and cancel meetings" +} diff --git a/packages/app-store/cal-ai/static/1.png b/packages/app-store/cal-ai/static/1.png new file mode 100644 index 0000000000..f8087d75d1 Binary files /dev/null and b/packages/app-store/cal-ai/static/1.png differ diff --git a/packages/app-store/cal-ai/static/2.png b/packages/app-store/cal-ai/static/2.png new file mode 100644 index 0000000000..27837bdf41 Binary files /dev/null and b/packages/app-store/cal-ai/static/2.png differ diff --git a/packages/app-store/cal-ai/static/icon.png b/packages/app-store/cal-ai/static/icon.png new file mode 100644 index 0000000000..2a51af92fa Binary files /dev/null and b/packages/app-store/cal-ai/static/icon.png differ diff --git a/packages/app-store/zapier/api/subscriptions/addSubscription.ts b/packages/app-store/zapier/api/subscriptions/addSubscription.ts index 56bbe16a4d..3bc3ecc2f4 100644 --- a/packages/app-store/zapier/api/subscriptions/addSubscription.ts +++ b/packages/app-store/zapier/api/subscriptions/addSubscription.ts @@ -2,8 +2,8 @@ import type { Prisma } from "@prisma/client"; import type { NextApiRequest, NextApiResponse } from "next"; import { v4 } from "uuid"; -import { scheduleTrigger } from "@calcom/app-store/zapier/lib/nodeScheduler"; import findValidApiKey from "@calcom/features/ee/api-keys/lib/findValidApiKey"; +import { scheduleTrigger } from "@calcom/features/webhooks/lib/scheduleTrigger"; import { defaultHandler, defaultResponder } from "@calcom/lib/server"; import prisma from "@calcom/prisma"; import { BookingStatus, WebhookTriggerEvents } from "@calcom/prisma/enums"; diff --git a/packages/features/bookings/Booker/components/DatePicker.tsx b/packages/features/bookings/Booker/components/DatePicker.tsx index 36bed16909..d3970073db 100644 --- a/packages/features/bookings/Booker/components/DatePicker.tsx +++ b/packages/features/bookings/Booker/components/DatePicker.tsx @@ -1,6 +1,5 @@ import { shallow } from "zustand/shallow"; -import type { Dayjs } from "@calcom/dayjs"; import dayjs from "@calcom/dayjs"; import { default as DatePickerComponent } from "@calcom/features/calendars/DatePicker"; import { useNonEmptyScheduleDays } from "@calcom/features/schedules"; diff --git a/packages/features/bookings/Booker/store.ts b/packages/features/bookings/Booker/store.ts index 8644e575db..85c1cd5f31 100644 --- a/packages/features/bookings/Booker/store.ts +++ b/packages/features/bookings/Booker/store.ts @@ -161,7 +161,7 @@ export const useBookerStore = create((set, get) => ({ // Setting month make sure small calendar in fullscreen layouts also updates. // If selectedDate is null, prevents setting month to Invalid-Date - if (selectedDate && newSelection.month() !== currentSelection.month() ) { + if (selectedDate && newSelection.month() !== currentSelection.month()) { set({ month: newSelection.format("YYYY-MM") }); updateQueryParam("month", newSelection.format("YYYY-MM")); } diff --git a/packages/features/bookings/components/event-meta/Members.tsx b/packages/features/bookings/components/event-meta/Members.tsx index 8b134c7e5e..aaf10154b7 100644 --- a/packages/features/bookings/components/event-meta/Members.tsx +++ b/packages/features/bookings/components/event-meta/Members.tsx @@ -36,7 +36,7 @@ export const EventMembers = ({ schedulingType, users, profile, entity }: EventMe (profile.name !== users[0].name && schedulingType === SchedulingType.COLLECTIVE); const avatars: Avatar[] = shownUsers.map((user) => ({ - title: `${user.name}`, + title: `${user.name || user.username}`, image: "image" in user ? `${user.image}` : `/${user.username}/avatar.png`, alt: user.name || undefined, href: `/${user.username}`, @@ -54,7 +54,7 @@ export const EventMembers = ({ schedulingType, users, profile, entity }: EventMe // Add profile later since we don't want to force creating an avatar for this if it doesn't exist. avatars.unshift({ - title: `${profile.name}`, + title: `${profile.name || profile.username}`, image: "logo" in profile && profile.logo ? `${profile.logo}` : undefined, alt: profile.name || undefined, href: profile.username ? `${CAL_URL}/${profile.username}` : undefined, diff --git a/packages/features/bookings/lib/handleCancelBooking.ts b/packages/features/bookings/lib/handleCancelBooking.ts index 277aaae159..a007e7f74b 100644 --- a/packages/features/bookings/lib/handleCancelBooking.ts +++ b/packages/features/bookings/lib/handleCancelBooking.ts @@ -5,7 +5,6 @@ import appStore from "@calcom/app-store"; import { getCalendar } from "@calcom/app-store/_utils/getCalendar"; import { FAKE_DAILY_CREDENTIAL } from "@calcom/app-store/dailyvideo/lib/VideoApiAdapter"; import { DailyLocationType } from "@calcom/app-store/locations"; -import { cancelScheduledJobs } from "@calcom/app-store/zapier/lib/nodeScheduler"; import { deleteMeeting, updateMeeting } from "@calcom/core/videoClient"; import dayjs from "@calcom/dayjs"; import { sendCancelledEmails, sendCancelledSeatEmails } from "@calcom/emails"; @@ -16,6 +15,7 @@ import { sendCancelledReminders } from "@calcom/features/ee/workflows/lib/remind import { deleteScheduledSMSReminder } from "@calcom/features/ee/workflows/lib/reminders/smsReminderManager"; import { deleteScheduledWhatsappReminder } from "@calcom/features/ee/workflows/lib/reminders/whatsappReminderManager"; import getWebhooks from "@calcom/features/webhooks/lib/getWebhooks"; +import { cancelScheduledJobs } from "@calcom/features/webhooks/lib/scheduleTrigger"; import type { EventTypeInfo } from "@calcom/features/webhooks/lib/sendPayload"; import sendPayload from "@calcom/features/webhooks/lib/sendPayload"; import { isPrismaObjOrUndefined, parseRecurringEvent } from "@calcom/lib"; diff --git a/packages/features/bookings/lib/handleConfirmation.ts b/packages/features/bookings/lib/handleConfirmation.ts index 22dd544914..6af8f7b5f5 100644 --- a/packages/features/bookings/lib/handleConfirmation.ts +++ b/packages/features/bookings/lib/handleConfirmation.ts @@ -1,12 +1,12 @@ import type { Prisma, Workflow, WorkflowsOnEventTypes, WorkflowStep } from "@prisma/client"; -import { scheduleTrigger } from "@calcom/app-store/zapier/lib/nodeScheduler"; import type { EventManagerUser } from "@calcom/core/EventManager"; import EventManager from "@calcom/core/EventManager"; import { sendScheduledEmails } from "@calcom/emails"; import { isEventTypeOwnerKYCVerified } from "@calcom/features/ee/workflows/lib/isEventTypeOwnerKYCVerified"; import { scheduleWorkflowReminders } from "@calcom/features/ee/workflows/lib/reminders/reminderScheduler"; import getWebhooks from "@calcom/features/webhooks/lib/getWebhooks"; +import { scheduleTrigger } from "@calcom/features/webhooks/lib/scheduleTrigger"; import type { EventTypeInfo } from "@calcom/features/webhooks/lib/sendPayload"; import sendPayload from "@calcom/features/webhooks/lib/sendPayload"; import { getTeamIdFromEventType } from "@calcom/lib/getTeamIdFromEventType"; diff --git a/packages/features/bookings/lib/handleNewBooking.ts b/packages/features/bookings/lib/handleNewBooking.ts index 03702f100d..af39a15eac 100644 --- a/packages/features/bookings/lib/handleNewBooking.ts +++ b/packages/features/bookings/lib/handleNewBooking.ts @@ -19,7 +19,6 @@ import { } from "@calcom/app-store/locations"; import type { EventTypeAppsList } from "@calcom/app-store/utils"; import { getAppFromSlug } from "@calcom/app-store/utils"; -import { cancelScheduledJobs, scheduleTrigger } from "@calcom/app-store/zapier/lib/nodeScheduler"; import EventManager from "@calcom/core/EventManager"; import { getEventName } from "@calcom/core/event"; import { getUserAvailability } from "@calcom/core/getUserAvailability"; @@ -48,6 +47,7 @@ import { import { getFullName } from "@calcom/features/form-builder/utils"; import type { GetSubscriberOptions } from "@calcom/features/webhooks/lib/getWebhooks"; import getWebhooks from "@calcom/features/webhooks/lib/getWebhooks"; +import { cancelScheduledJobs, scheduleTrigger } from "@calcom/features/webhooks/lib/scheduleTrigger"; import { isPrismaObjOrUndefined, parseRecurringEvent } from "@calcom/lib"; import { getVideoCallUrlFromCalEvent } from "@calcom/lib/CalEventParser"; import { checkRateLimitAndThrowError } from "@calcom/lib/checkRateLimitAndThrowError"; diff --git a/packages/features/ee/organizations/components/AboutOrganizationForm.tsx b/packages/features/ee/organizations/components/AboutOrganizationForm.tsx index 57500159fc..bf74b232f1 100644 --- a/packages/features/ee/organizations/components/AboutOrganizationForm.tsx +++ b/packages/features/ee/organizations/components/AboutOrganizationForm.tsx @@ -65,7 +65,6 @@ export const AboutOrganizationForm = () => { } - asChild className="items-center" imageSrc={image} size="lg" diff --git a/packages/features/ee/teams/components/MemberListItem.tsx b/packages/features/ee/teams/components/MemberListItem.tsx index 7271e5f5fb..7b6b89c2c0 100644 --- a/packages/features/ee/teams/components/MemberListItem.tsx +++ b/packages/features/ee/teams/components/MemberListItem.tsx @@ -109,7 +109,22 @@ export default function MemberListItem(props: Props) { const bookerUrl = useBookerUrl(); const bookerUrlWithoutProtocol = bookerUrl.replace(/^https?:\/\//, ""); const bookingLink = !!props.member.username && `${bookerUrlWithoutProtocol}/${props.member.username}`; - + const isAdmin = props.team && ["ADMIN", "OWNER"].includes(props.team.membership?.role); + const appList = props.member.connectedApps.map(({ logo, name, externalId }) => { + return logo ? ( + externalId ? ( +
+ + {`${name} + +
+ ) : ( +
+ {`${name} +
+ ) + ) : null; + }); return (
  • @@ -124,9 +139,9 @@ export default function MemberListItem(props: Props) {
    - {name} - + {name} {!props.member.accepted && } + {isAdmin && props.member.accepted && appList} {props.member.role && }
    diff --git a/packages/features/embed/Embed.tsx b/packages/features/embed/Embed.tsx index 9154d4b56d..444abbbdf2 100644 --- a/packages/features/embed/Embed.tsx +++ b/packages/features/embed/Embed.tsx @@ -8,7 +8,6 @@ import type { ControlProps } from "react-select"; import { components } from "react-select"; import { shallow } from "zustand/shallow"; -import type { Dayjs } from "@calcom/dayjs"; import dayjs from "@calcom/dayjs"; import { AvailableTimes } from "@calcom/features/bookings"; import { useBookerStore, useInitializeBookerStore } from "@calcom/features/bookings/Booker/store"; diff --git a/packages/features/eventtypes/components/ChildrenEventTypeSelect.tsx b/packages/features/eventtypes/components/ChildrenEventTypeSelect.tsx index e5eac2311a..d6cc851900 100644 --- a/packages/features/eventtypes/components/ChildrenEventTypeSelect.tsx +++ b/packages/features/eventtypes/components/ChildrenEventTypeSelect.tsx @@ -1,6 +1,8 @@ import { useAutoAnimate } from "@formkit/auto-animate/react"; import type { Props } from "react-select"; +import { useOrgBranding } from "@calcom/features/ee/organizations/context/provider"; +import { getOrgFullDomain } from "@calcom/features/ee/organizations/lib/orgDomains"; import { classNames } from "@calcom/lib"; import { CAL_URL } from "@calcom/lib/constants"; import { useLocale } from "@calcom/lib/hooks/useLocale"; @@ -34,7 +36,7 @@ export const ChildrenEventTypeSelect = ({ onChange: (value: readonly ChildrenEventType[]) => void; }) => { const { t } = useLocale(); - + const orgBranding = useOrgBranding(); const [animationRef] = useAutoAnimate(); return ( @@ -61,7 +63,9 @@ export const ChildrenEventTypeSelect = ({
    diff --git a/packages/features/eventtypes/components/CreateEventTypeDialog.tsx b/packages/features/eventtypes/components/CreateEventTypeDialog.tsx index 36d8a4efdc..4e192b92fc 100644 --- a/packages/features/eventtypes/components/CreateEventTypeDialog.tsx +++ b/packages/features/eventtypes/components/CreateEventTypeDialog.tsx @@ -117,7 +117,7 @@ export default function CreateEventTypeDialog({ const createMutation = trpc.viewer.eventTypes.create.useMutation({ onSuccess: async ({ eventType }) => { await router.replace("/event-types/" + eventType.id); - showToast(t("event_type_created_successfully", { eventTypeTitle: eventType.title }), "success"); + showToast(t("event_type_created_successfully"), "success"); }, onError: (err) => { if (err instanceof HttpError) { diff --git a/packages/features/eventtypes/components/DuplicateDialog.tsx b/packages/features/eventtypes/components/DuplicateDialog.tsx index 053079d970..de31accf97 100644 --- a/packages/features/eventtypes/components/DuplicateDialog.tsx +++ b/packages/features/eventtypes/components/DuplicateDialog.tsx @@ -66,7 +66,7 @@ const DuplicateDialog = () => { const duplicateMutation = trpc.viewer.eventTypes.duplicate.useMutation({ onSuccess: async ({ eventType }) => { await router.replace("/event-types/" + eventType.id); - showToast(t("event_type_created_successfully", { eventTypeTitle: eventType.title }), "success"); + showToast(t("event_type_created_successfully"), "success"); }, onError: (err) => { if (err instanceof HttpError) { diff --git a/packages/features/eventtypes/lib/getPublicEvent.ts b/packages/features/eventtypes/lib/getPublicEvent.ts index 2883e03435..9132b96fac 100644 --- a/packages/features/eventtypes/lib/getPublicEvent.ts +++ b/packages/features/eventtypes/lib/getPublicEvent.ts @@ -285,7 +285,7 @@ function getProfileFromEvent(event: Event) { function getUsersFromEvent(event: Event) { const { team, hosts, owner } = event; if (team) { - return (hosts || []).map(mapHostsToUsers); + return (hosts || []).filter((host) => host.user.username).map(mapHostsToUsers); } if (!owner) { return null; diff --git a/packages/features/webhooks/lib/cron.ts b/packages/features/webhooks/lib/cron.ts new file mode 100644 index 0000000000..089ddbbc5a --- /dev/null +++ b/packages/features/webhooks/lib/cron.ts @@ -0,0 +1,96 @@ +/* Cron job for scheduled webhook events triggers */ +import type { NextApiRequest, NextApiResponse } from "next"; + +import dayjs from "@calcom/dayjs"; +import { defaultHandler } from "@calcom/lib/server"; +import prisma from "@calcom/prisma"; + +async function handler(req: NextApiRequest, res: NextApiResponse) { + const apiKey = req.headers.authorization || req.query.apiKey; + if (process.env.CRON_API_KEY !== apiKey) { + res.status(401).json({ message: "Not authenticated" }); + return; + } + + // get jobs that should be run + const jobsToRun = await prisma.webhookScheduledTriggers.findMany({ + where: { + startAfter: { + lte: dayjs().toISOString(), + }, + }, + }); + + // run jobs + for (const job of jobsToRun) { + try { + await fetch(job.subscriberUrl, { + method: "POST", + body: job.payload, + }); + } catch (error) { + console.log(`Error running webhook trigger (retry count: ${job.retryCount}): ${error}`); + + // if job fails, retry again for 5 times. + if (job.retryCount < 5) { + await prisma.webhookScheduledTriggers.update({ + where: { + id: job.id, + }, + data: { + retryCount: { + increment: 1, + }, + startAfter: dayjs() + .add(5 * (job.retryCount + 1), "minutes") + .toISOString(), + }, + }); + return res.json({ ok: false }); + } + } + + const parsedJobPayload = JSON.parse(job.payload) as { + id: number; // booking id + endTime: string; + scheduledJobs: string[]; + triggerEvent: string; + }; + + // clean finished job + await prisma.webhookScheduledTriggers.delete({ + where: { + id: job.id, + }, + }); + + const booking = await prisma.booking.findUnique({ + where: { id: parsedJobPayload.id }, + select: { id: true, scheduledJobs: true }, + }); + if (!booking) { + console.log("Error finding booking in webhook trigger:", parsedJobPayload); + return res.json({ ok: false }); + } + + //remove scheduled job from bookings once triggered + const updatedScheduledJobs = booking.scheduledJobs.filter((scheduledJob) => { + return scheduledJob !== job.jobName; + }); + + await prisma.booking.update({ + where: { + id: booking.id, + }, + data: { + scheduledJobs: updatedScheduledJobs, + }, + }); + } + + res.json({ ok: true }); +} + +export default defaultHandler({ + POST: Promise.resolve({ default: handler }), +}); diff --git a/packages/app-store/zapier/lib/nodeScheduler.ts b/packages/features/webhooks/lib/scheduleTrigger.ts similarity index 55% rename from packages/app-store/zapier/lib/nodeScheduler.ts rename to packages/features/webhooks/lib/scheduleTrigger.ts index e6f7b16436..8b610d55a7 100644 --- a/packages/app-store/zapier/lib/nodeScheduler.ts +++ b/packages/features/webhooks/lib/scheduleTrigger.ts @@ -1,5 +1,3 @@ -import schedule from "node-schedule"; - import prisma from "@calcom/prisma"; import { WebhookTriggerEvents } from "@calcom/prisma/enums"; @@ -9,45 +7,32 @@ export async function scheduleTrigger( subscriber: { id: string; appId: string | null } ) { try { - //schedule job to call subscriber url at the end of meeting - // FIXME: in-process scheduling - job will vanish on server crash / restart - const job = schedule.scheduleJob( - `${subscriber.appId}_${subscriber.id}`, - booking.endTime, - async function () { - const body = JSON.stringify({ triggerEvent: WebhookTriggerEvents.MEETING_ENDED, ...booking }); - await fetch(subscriberUrl, { - method: "POST", - body, - }); + const payload = JSON.stringify({ triggerEvent: WebhookTriggerEvents.MEETING_ENDED, ...booking }); + const jobName = `${subscriber.appId}_${subscriber.id}`; - //remove scheduled job from bookings once triggered - const updatedScheduledJobs = booking.scheduledJobs.filter((scheduledJob) => { - return scheduledJob !== `${subscriber.appId}_${subscriber.id}`; - }); - - await prisma.booking.update({ - where: { - id: booking.id, - }, - data: { - scheduledJobs: updatedScheduledJobs, - }, - }); - } - ); + // add scheduled job to database + const createTrigger = prisma.webhookScheduledTriggers.create({ + data: { + jobName, + payload, + startAfter: booking.endTime, + subscriberUrl, + }, + }); //add scheduled job name to booking - await prisma.booking.update({ + const updateBooking = prisma.booking.update({ where: { id: booking.id, }, data: { scheduledJobs: { - push: job.name, + push: jobName, }, }, }); + + await prisma.$transaction([createTrigger, updateBooking]); } catch (error) { console.error("Error cancelling scheduled jobs", error); } @@ -64,16 +49,20 @@ export async function cancelScheduledJobs( const promises = booking.scheduledJobs.map(async (scheduledJob) => { if (appId) { if (scheduledJob.startsWith(appId)) { - if (schedule.scheduledJobs[scheduledJob]) { - schedule.scheduledJobs[scheduledJob].cancel(); - } + await prisma.webhookScheduledTriggers.deleteMany({ + where: { + jobName: scheduledJob, + }, + }); scheduledJobs = scheduledJobs?.filter((job) => scheduledJob !== job) || []; } } else { //if no specific appId given, delete all scheduled jobs of booking - if (schedule.scheduledJobs[scheduledJob]) { - schedule.scheduledJobs[scheduledJob].cancel(); - } + await prisma.webhookScheduledTriggers.deleteMany({ + where: { + jobName: scheduledJob, + }, + }); scheduledJobs = []; } diff --git a/packages/lib/getEventTypeById.ts b/packages/lib/getEventTypeById.ts index 32989b1711..aea3336d42 100644 --- a/packages/lib/getEventTypeById.ts +++ b/packages/lib/getEventTypeById.ts @@ -4,6 +4,7 @@ import { getLocationGroupedOptions } from "@calcom/app-store/server"; import type { StripeData } from "@calcom/app-store/stripepayment/lib/server"; import { getEventTypeAppData } from "@calcom/app-store/utils"; import type { LocationObject } from "@calcom/core/location"; +import { getOrgFullDomain } from "@calcom/ee/organizations/lib/orgDomains"; import { getBookingFieldsWithSystemFields } from "@calcom/features/bookings/lib/getBookingFields"; import { parseBookingLimit, parseDurationLimit, parseRecurringEvent } from "@calcom/lib"; import { CAL_URL } from "@calcom/lib/constants"; @@ -113,6 +114,11 @@ export default async function getEventTypeById({ name: true, slug: true, parentId: true, + parent: { + select: { + slug: true, + }, + }, members: { select: { role: true, @@ -319,7 +325,9 @@ export default async function getEventTypeById({ const eventTypeUsers: ((typeof eventType.users)[number] & { avatar: string })[] = eventType.users.map( (user) => ({ ...user, - avatar: `${CAL_URL}/${user.username}/avatar.png`, + avatar: `${eventType.team?.parent?.slug ? getOrgFullDomain(eventType.team?.parent?.slug) : CAL_URL}/${ + user.username + }/avatar.png`, }) ); @@ -365,7 +373,11 @@ export default async function getEventTypeById({ .map((member) => { const user: typeof member.user & { avatar: string } = { ...member.user, - avatar: `${CAL_URL}/${member.user.username}/avatar.png`, + avatar: `${ + eventTypeObject.team?.parent?.slug + ? getOrgFullDomain(eventTypeObject.team?.parent?.slug) + : CAL_URL + }/${member.user.username}/avatar.png`, }; return { ...user, diff --git a/packages/lib/server/queries/teams/index.ts b/packages/lib/server/queries/teams/index.ts index cad927703d..bfac687cbe 100644 --- a/packages/lib/server/queries/teams/index.ts +++ b/packages/lib/server/queries/teams/index.ts @@ -1,8 +1,10 @@ import { Prisma } from "@prisma/client"; +import { getAppFromSlug } from "@calcom/app-store/utils"; +import { getCalendarCredentials, getConnectedCalendars } from "@calcom/core/CalendarManager"; import { getSlugOrRequestedSlug } from "@calcom/ee/organizations/lib/orgDomains"; import prisma, { baseEventTypeSelect } from "@calcom/prisma"; -import { SchedulingType } from "@calcom/prisma/enums"; +import { AppCategories, SchedulingType } from "@calcom/prisma/enums"; import { EventTypeMetaDataSchema, teamMetadataSchema } from "@calcom/prisma/zod-utils"; import { WEBAPP_URL } from "../../../constants"; @@ -22,6 +24,17 @@ export async function getTeamWithMembers(args: { name: true, id: true, bio: true, + destinationCalendar: { + select: { + externalId: true, + }, + }, + selectedCalendars: true, + credentials: { + include: { + app: true, + }, + }, }); const teamSelect = Prisma.validator()({ id: true, @@ -111,16 +124,43 @@ export async function getTeamWithMembers(args: { }); if (!team) return null; - const members = team.members.map((obj) => { - return { - ...obj.user, - role: obj.role, - accepted: obj.accepted, - disableImpersonation: obj.disableImpersonation, - avatar: `${WEBAPP_URL}/${obj.user.username}/avatar.png`, - }; - }); + const members = await Promise.all( + team.members.map(async (obj) => { + const calendarCredentials = getCalendarCredentials(obj.user.credentials); + const { connectedCalendars } = await getConnectedCalendars( + calendarCredentials, + obj.user.selectedCalendars, + obj.user.destinationCalendar?.externalId + ); + const connectedApps = obj.user.credentials + .map(({ app, id }) => { + const appMetaData = getAppFromSlug(app?.slug); + + if (app?.categories.includes(AppCategories.calendar)) { + const externalId = connectedCalendars.find((cal) => cal.credentialId == id)?.primary?.email; + return { name: appMetaData?.name, logo: appMetaData?.logo, slug: appMetaData?.slug, externalId }; + } + return { name: appMetaData?.name, logo: appMetaData?.logo, slug: appMetaData?.slug }; + }) + .sort((a, b) => (a.slug ?? "").localeCompare(b.slug ?? "")); + // Prevent credentials from leaking to frontend + const { + credentials: _credentials, + destinationCalendar: _destinationCalendar, + selectedCalendars: _selectedCalendars, + ...rest + } = { + ...obj.user, + role: obj.role, + accepted: obj.accepted, + disableImpersonation: obj.disableImpersonation, + avatar: `${WEBAPP_URL}/${obj.user.username}/avatar.png`, + connectedApps, + }; + return rest; + }) + ); const eventTypes = team.eventTypes.map((eventType) => ({ ...eventType, metadata: EventTypeMetaDataSchema.parse(eventType.metadata), diff --git a/packages/prisma/migrations/20230815080823_zapier_scheduled_triggers/migration.sql b/packages/prisma/migrations/20230815080823_zapier_scheduled_triggers/migration.sql new file mode 100644 index 0000000000..358ebaf242 --- /dev/null +++ b/packages/prisma/migrations/20230815080823_zapier_scheduled_triggers/migration.sql @@ -0,0 +1,12 @@ +-- CreateTable +CREATE TABLE "WebhookScheduledTriggers" ( + "id" SERIAL NOT NULL, + "jobName" TEXT NOT NULL, + "subscriberUrl" TEXT NOT NULL, + "payload" TEXT NOT NULL, + "startAfter" TIMESTAMP(3) NOT NULL, + "retryCount" INTEGER NOT NULL DEFAULT 0, + "createdAt" TIMESTAMP(3) DEFAULT CURRENT_TIMESTAMP, + + CONSTRAINT "WebhookScheduledTriggers_pkey" PRIMARY KEY ("id") +); diff --git a/packages/prisma/schema.prisma b/packages/prisma/schema.prisma index ec45c33d0c..5e066435d7 100644 --- a/packages/prisma/schema.prisma +++ b/packages/prisma/schema.prisma @@ -807,6 +807,16 @@ model WorkflowReminder { @@index([seatReferenceId]) } +model WebhookScheduledTriggers { + id Int @id @default(autoincrement()) + jobName String + subscriberUrl String + payload String + startAfter DateTime + retryCount Int @default(0) + createdAt DateTime? @default(now()) +} + enum WorkflowTemplates { REMINDER CUSTOM diff --git a/packages/prisma/zod-utils.ts b/packages/prisma/zod-utils.ts index d8d67a5525..61ef2c6fa0 100644 --- a/packages/prisma/zod-utils.ts +++ b/packages/prisma/zod-utils.ts @@ -633,4 +633,3 @@ export const ZVerifyCodeInputSchema = z.object({ export type ZVerifyCodeInputSchema = z.infer; export const coerceToDate = z.coerce.date(); - diff --git a/packages/trpc/server/routers/loggedInViewer/deleteCredential.handler.ts b/packages/trpc/server/routers/loggedInViewer/deleteCredential.handler.ts index 4d676f9bfb..716f3cf843 100644 --- a/packages/trpc/server/routers/loggedInViewer/deleteCredential.handler.ts +++ b/packages/trpc/server/routers/loggedInViewer/deleteCredential.handler.ts @@ -1,10 +1,10 @@ import z from "zod"; import { getCalendar } from "@calcom/app-store/_utils/getCalendar"; -import { cancelScheduledJobs } from "@calcom/app-store/zapier/lib/nodeScheduler"; import { DailyLocationType } from "@calcom/core/location"; import { sendCancelledEmails } from "@calcom/emails"; import { getCalEventResponses } from "@calcom/features/bookings/lib/getCalEventResponses"; +import { cancelScheduledJobs } from "@calcom/features/webhooks/lib/scheduleTrigger"; import { isPrismaObjOrUndefined, parseRecurringEvent } from "@calcom/lib"; import getPaymentAppData from "@calcom/lib/getPaymentAppData"; import { deletePayment } from "@calcom/lib/payment/deletePayment"; diff --git a/packages/trpc/server/routers/loggedInViewer/me.handler.ts b/packages/trpc/server/routers/loggedInViewer/me.handler.ts index 54f55551a1..cbf06009d5 100644 --- a/packages/trpc/server/routers/loggedInViewer/me.handler.ts +++ b/packages/trpc/server/routers/loggedInViewer/me.handler.ts @@ -1,3 +1,4 @@ +import { getOrgFullDomain } from "@calcom/ee/organizations/lib/orgDomains"; import { WEBAPP_URL } from "@calcom/lib/constants"; import type { TrpcSessionUser } from "@calcom/trpc/server/trpc"; @@ -24,7 +25,9 @@ export const meHandler = async ({ ctx }: MeOptions) => { locale: user.locale, timeFormat: user.timeFormat, timeZone: user.timeZone, - avatar: `${WEBAPP_URL}/${user.username}/avatar.png`, + avatar: `${user.organization?.slug ? getOrgFullDomain(user.organization.slug) : WEBAPP_URL}/${ + user.username + }/avatar.png`, createdDate: user.createdDate, trialEndsAt: user.trialEndsAt, defaultScheduleId: user.defaultScheduleId, diff --git a/packages/trpc/server/routers/viewer/bookings/requestReschedule.handler.ts b/packages/trpc/server/routers/viewer/bookings/requestReschedule.handler.ts index 324ed23057..096f229200 100644 --- a/packages/trpc/server/routers/viewer/bookings/requestReschedule.handler.ts +++ b/packages/trpc/server/routers/viewer/bookings/requestReschedule.handler.ts @@ -2,7 +2,6 @@ import type { BookingReference, EventType } from "@prisma/client"; import type { TFunction } from "next-i18next"; import { getCalendar } from "@calcom/app-store/_utils/getCalendar"; -import { cancelScheduledJobs } from "@calcom/app-store/zapier/lib/nodeScheduler"; import { CalendarEventBuilder } from "@calcom/core/builders/CalendarEvent/builder"; import { CalendarEventDirector } from "@calcom/core/builders/CalendarEvent/director"; import { deleteMeeting } from "@calcom/core/videoClient"; @@ -13,6 +12,7 @@ import { deleteScheduledWhatsappReminder } from "@calcom/ee/workflows/lib/remind import { sendRequestRescheduleEmail } from "@calcom/emails"; import { getCalEventResponses } from "@calcom/features/bookings/lib/getCalEventResponses"; import getWebhooks from "@calcom/features/webhooks/lib/getWebhooks"; +import { cancelScheduledJobs } from "@calcom/features/webhooks/lib/scheduleTrigger"; import sendPayload from "@calcom/features/webhooks/lib/sendPayload"; import { isPrismaObjOrUndefined } from "@calcom/lib"; import { getTeamIdFromEventType } from "@calcom/lib/getTeamIdFromEventType"; diff --git a/packages/trpc/server/routers/viewer/eventTypes/getByViewer.handler.ts b/packages/trpc/server/routers/viewer/eventTypes/getByViewer.handler.ts index 3741aaa080..13e5abd9ae 100644 --- a/packages/trpc/server/routers/viewer/eventTypes/getByViewer.handler.ts +++ b/packages/trpc/server/routers/viewer/eventTypes/getByViewer.handler.ts @@ -165,6 +165,7 @@ export const getByViewerHandler = async ({ ctx, input }: GetByViewerOptions) => type EventTypeGroup = { teamId?: number | null; + parentId?: number | null; membershipRole?: MembershipRole | null; profile: { slug: (typeof user)["username"]; @@ -226,6 +227,7 @@ export const getByViewerHandler = async ({ ctx, input }: GetByViewerOptions) => )?.membershipRole; return { teamId: membership.team.id, + parentId: membership.team.parentId, membershipRole: orgMembership && compareMembership(orgMembership, membership.role) ? orgMembership @@ -265,7 +267,7 @@ export const getByViewerHandler = async ({ ctx, input }: GetByViewerOptions) => const bookerUrl = await getBookerUrl(user); return { // don't display event teams without event types, - eventTypeGroups: eventTypeGroups.filter((groupBy) => !!groupBy.eventTypes?.length), + eventTypeGroups: eventTypeGroups.filter((groupBy) => groupBy.parentId || !!groupBy.eventTypes?.length), // so we can show a dropdown when the user has teams profiles: eventTypeGroups.map((group) => ({ ...group.profile, diff --git a/packages/ui/components/avatar/Avatar.tsx b/packages/ui/components/avatar/Avatar.tsx index 7b1550612c..572e9a2f19 100644 --- a/packages/ui/components/avatar/Avatar.tsx +++ b/packages/ui/components/avatar/Avatar.tsx @@ -40,7 +40,7 @@ export function Avatar(props: AvatarProps) { let avatar = ( @@ -50,7 +50,10 @@ export function Avatar(props: AvatarProps) { alt={alt} className={classNames("aspect-square rounded-full", sizesPropsBySize[size])} /> - + <> {props.fallback ? ( props.fallback diff --git a/packages/ui/components/empty-screen/EmptyScreen.tsx b/packages/ui/components/empty-screen/EmptyScreen.tsx index b3e987b5f0..1b898b8dc5 100644 --- a/packages/ui/components/empty-screen/EmptyScreen.tsx +++ b/packages/ui/components/empty-screen/EmptyScreen.tsx @@ -22,7 +22,7 @@ export function EmptyScreen({ Icon?: SVGComponent | IconType; avatar?: React.ReactElement; headline: string | React.ReactElement; - description: string | React.ReactElement; + description?: string | React.ReactElement; buttonText?: string; buttonOnClick?: (event: React.MouseEvent) => void; buttonRaw?: ReactNode; // Used incase you want to provide your own button. @@ -49,9 +49,11 @@ export function EmptyScreen({ )}

    {headline}

    -
    - {description} -
    + {description && ( +
    + {description} +
    + )} {buttonOnClick && buttonText && } {buttonRaw}
    diff --git a/packages/ui/components/toast/showToast.tsx b/packages/ui/components/toast/showToast.tsx index ad5c353864..6d0cb41bca 100644 --- a/packages/ui/components/toast/showToast.tsx +++ b/packages/ui/components/toast/showToast.tsx @@ -13,56 +13,64 @@ type IToast = { export const SuccessToast = ({ message, toastVisible, onClose, toastId }: IToast) => ( ); export const ErrorToast = ({ message, toastVisible, onClose, toastId }: IToast) => ( ); export const WarningToast = ({ message, toastVisible, onClose, toastId }: IToast) => ( ); export const DefaultToast = ({ message, toastVisible, onClose, toastId }: IToast) => ( ); diff --git a/turbo.json b/turbo.json index 52b8c96664..7af5a29a54 100644 --- a/turbo.json +++ b/turbo.json @@ -45,6 +45,9 @@ "cache": false, "dependsOn": [] }, + "@calcom/ai#build": { + "env": ["CAL_AI_DATABASE_URL", "BACKEND_URL", "APP_ID", "APP_URL", "OPENAI_API_KEY", "PARSE_KEY"] + }, "@calcom/website#build": { "dependsOn": ["^build"], "outputs": [".next/**"], diff --git a/yarn.lock b/yarn.lock index d8b4858d04..060e61e7be 100644 --- a/yarn.lock +++ b/yarn.lock @@ -96,6 +96,32 @@ __metadata: languageName: node linkType: hard +"@ampproject/remapping@npm:^2.2.0": + version: 2.2.1 + resolution: "@ampproject/remapping@npm:2.2.1" + dependencies: + "@jridgewell/gen-mapping": ^0.3.0 + "@jridgewell/trace-mapping": ^0.3.9 + checksum: 03c04fd526acc64a1f4df22651186f3e5ef0a9d6d6530ce4482ec9841269cf7a11dbb8af79237c282d721c5312024ff17529cd72cc4768c11e999b58e2302079 + languageName: node + linkType: hard + +"@anthropic-ai/sdk@npm:^0.5.7": + version: 0.5.10 + resolution: "@anthropic-ai/sdk@npm:0.5.10" + dependencies: + "@types/node": ^18.11.18 + "@types/node-fetch": ^2.6.4 + abort-controller: ^3.0.0 + agentkeepalive: ^4.2.1 + digest-fetch: ^1.3.0 + form-data-encoder: 1.7.2 + formdata-node: ^4.3.2 + node-fetch: ^2.6.7 + checksum: 4f70b06be7be7e9baee0d2b85648f17643a58c89003331a9b38dea8e3eaea3519d60ac5ef2074b903897214f53358b92c6e87e7ea4f22787410cccb85d5a8b1b + languageName: node + linkType: hard + "@apidevtools/json-schema-ref-parser@npm:9.0.9": version: 9.0.9 resolution: "@apidevtools/json-schema-ref-parser@npm:9.0.9" @@ -138,6 +164,44 @@ __metadata: languageName: node linkType: hard +"@ardatan/relay-compiler@npm:12.0.0": + version: 12.0.0 + resolution: "@ardatan/relay-compiler@npm:12.0.0" + dependencies: + "@babel/core": ^7.14.0 + "@babel/generator": ^7.14.0 + "@babel/parser": ^7.14.0 + "@babel/runtime": ^7.0.0 + "@babel/traverse": ^7.14.0 + "@babel/types": ^7.0.0 + babel-preset-fbjs: ^3.4.0 + chalk: ^4.0.0 + fb-watchman: ^2.0.0 + fbjs: ^3.0.0 + glob: ^7.1.1 + immutable: ~3.7.6 + invariant: ^2.2.4 + nullthrows: ^1.1.1 + relay-runtime: 12.0.0 + signedsource: ^1.0.0 + yargs: ^15.3.1 + peerDependencies: + graphql: "*" + bin: + relay-compiler: bin/relay-compiler + checksum: f0cec120d02961ee8652e0dde72d9e425bc97cad5d0f767d8764cfd30952294eb2838432f33e4da8bb6999d0c13dcd1df128280666bfea373294d98aa8033ae7 + languageName: node + linkType: hard + +"@ardatan/sync-fetch@npm:^0.0.1": + version: 0.0.1 + resolution: "@ardatan/sync-fetch@npm:0.0.1" + dependencies: + node-fetch: ^2.6.1 + checksum: af39bdfb4c2b35bd2c6acc540a5e302730dae17e73d3a18cd1a4aa50c1c741cb1869dffdef1379c491da5ad2e3cfa2bf3a8064e6046c12b46c6a97f54f100a8d + languageName: node + linkType: hard + "@auth/core@npm:^0.1.4": version: 0.1.4 resolution: "@auth/core@npm:0.1.4" @@ -1251,6 +1315,16 @@ __metadata: languageName: node linkType: hard +"@babel/code-frame@npm:^7.22.10, @babel/code-frame@npm:^7.22.5": + version: 7.22.13 + resolution: "@babel/code-frame@npm:7.22.13" + dependencies: + "@babel/highlight": ^7.22.13 + chalk: ^2.4.2 + checksum: 22e342c8077c8b77eeb11f554ecca2ba14153f707b85294fcf6070b6f6150aae88a7b7436dd88d8c9289970585f3fe5b9b941c5aa3aa26a6d5a8ef3f292da058 + languageName: node + linkType: hard + "@babel/compat-data@npm:^7.13.11, @babel/compat-data@npm:^7.18.6, @babel/compat-data@npm:^7.18.8": version: 7.18.8 resolution: "@babel/compat-data@npm:7.18.8" @@ -1272,6 +1346,13 @@ __metadata: languageName: node linkType: hard +"@babel/compat-data@npm:^7.20.5, @babel/compat-data@npm:^7.22.9": + version: 7.22.9 + resolution: "@babel/compat-data@npm:7.22.9" + checksum: bed77d9044ce948b4327b30dd0de0779fa9f3a7ed1f2d31638714ed00229fa71fc4d1617ae0eb1fad419338d3658d0e9a5a083297451e09e73e078d0347ff808 + languageName: node + linkType: hard + "@babel/core@npm:7.12.9": version: 7.12.9 resolution: "@babel/core@npm:7.12.9" @@ -1342,6 +1423,29 @@ __metadata: languageName: node linkType: hard +"@babel/core@npm:^7.14.0, @babel/core@npm:^7.22.9": + version: 7.22.11 + resolution: "@babel/core@npm:7.22.11" + dependencies: + "@ampproject/remapping": ^2.2.0 + "@babel/code-frame": ^7.22.10 + "@babel/generator": ^7.22.10 + "@babel/helper-compilation-targets": ^7.22.10 + "@babel/helper-module-transforms": ^7.22.9 + "@babel/helpers": ^7.22.11 + "@babel/parser": ^7.22.11 + "@babel/template": ^7.22.5 + "@babel/traverse": ^7.22.11 + "@babel/types": ^7.22.11 + convert-source-map: ^1.7.0 + debug: ^4.1.0 + gensync: ^1.0.0-beta.2 + json5: ^2.2.3 + semver: ^6.3.1 + checksum: f258b2539ea2e5bfe55a708c2f3e1093a1b4744f12becc35abeb896037b66210de9a8ad6296a706046d5dc3a24e564362b73a9b814e5bfe500c8baab60c22d2e + languageName: node + linkType: hard + "@babel/core@npm:^7.18.10": version: 7.18.10 resolution: "@babel/core@npm:7.18.10" @@ -1421,6 +1525,18 @@ __metadata: languageName: node linkType: hard +"@babel/generator@npm:^7.14.0, @babel/generator@npm:^7.18.13, @babel/generator@npm:^7.22.10": + version: 7.22.10 + resolution: "@babel/generator@npm:7.22.10" + dependencies: + "@babel/types": ^7.22.10 + "@jridgewell/gen-mapping": ^0.3.2 + "@jridgewell/trace-mapping": ^0.3.17 + jsesc: ^2.5.1 + checksum: 59a79730abdff9070692834bd3af179e7a9413fa2ff7f83dff3eb888765aeaeb2bfc7b0238a49613ed56e1af05956eff303cc139f2407eda8df974813e486074 + languageName: node + linkType: hard + "@babel/generator@npm:^7.17.9": version: 7.17.9 resolution: "@babel/generator@npm:7.17.9" @@ -1474,6 +1590,15 @@ __metadata: languageName: node linkType: hard +"@babel/helper-annotate-as-pure@npm:^7.22.5": + version: 7.22.5 + resolution: "@babel/helper-annotate-as-pure@npm:7.22.5" + dependencies: + "@babel/types": ^7.22.5 + checksum: 53da330f1835c46f26b7bf4da31f7a496dee9fd8696cca12366b94ba19d97421ce519a74a837f687749318f94d1a37f8d1abcbf35e8ed22c32d16373b2f6198d + languageName: node + linkType: hard + "@babel/helper-builder-binary-assignment-operator-visitor@npm:^7.18.6": version: 7.18.6 resolution: "@babel/helper-builder-binary-assignment-operator-visitor@npm:7.18.6" @@ -1540,6 +1665,19 @@ __metadata: languageName: node linkType: hard +"@babel/helper-compilation-targets@npm:^7.20.7, @babel/helper-compilation-targets@npm:^7.22.10, @babel/helper-compilation-targets@npm:^7.22.5, @babel/helper-compilation-targets@npm:^7.22.6": + version: 7.22.10 + resolution: "@babel/helper-compilation-targets@npm:7.22.10" + dependencies: + "@babel/compat-data": ^7.22.9 + "@babel/helper-validator-option": ^7.22.5 + browserslist: ^4.21.9 + lru-cache: ^5.1.1 + semver: ^6.3.1 + checksum: f6f1896816392bcff671bbe6e277307729aee53befb4a66ea126e2a91eda78d819a70d06fa384c74ef46c1595544b94dca50bef6c78438d9ffd31776dafbd435 + languageName: node + linkType: hard + "@babel/helper-create-class-features-plugin@npm:^7.18.6": version: 7.18.6 resolution: "@babel/helper-create-class-features-plugin@npm:7.18.6" @@ -1621,6 +1759,13 @@ __metadata: languageName: node linkType: hard +"@babel/helper-environment-visitor@npm:^7.22.5": + version: 7.22.5 + resolution: "@babel/helper-environment-visitor@npm:7.22.5" + checksum: 248532077d732a34cd0844eb7b078ff917c3a8ec81a7f133593f71a860a582f05b60f818dc5049c2212e5baa12289c27889a4b81d56ef409b4863db49646c4b1 + languageName: node + linkType: hard + "@babel/helper-explode-assignable-expression@npm:^7.18.6": version: 7.18.6 resolution: "@babel/helper-explode-assignable-expression@npm:7.18.6" @@ -1671,6 +1816,16 @@ __metadata: languageName: node linkType: hard +"@babel/helper-function-name@npm:^7.22.5": + version: 7.22.5 + resolution: "@babel/helper-function-name@npm:7.22.5" + dependencies: + "@babel/template": ^7.22.5 + "@babel/types": ^7.22.5 + checksum: 6b1f6ce1b1f4e513bf2c8385a557ea0dd7fa37971b9002ad19268ca4384bbe90c09681fe4c076013f33deabc63a53b341ed91e792de741b4b35e01c00238177a + languageName: node + linkType: hard + "@babel/helper-get-function-arity@npm:^7.16.7": version: 7.16.7 resolution: "@babel/helper-get-function-arity@npm:7.16.7" @@ -1698,6 +1853,15 @@ __metadata: languageName: node linkType: hard +"@babel/helper-hoist-variables@npm:^7.22.5": + version: 7.22.5 + resolution: "@babel/helper-hoist-variables@npm:7.22.5" + dependencies: + "@babel/types": ^7.22.5 + checksum: 394ca191b4ac908a76e7c50ab52102669efe3a1c277033e49467913c7ed6f7c64d7eacbeabf3bed39ea1f41731e22993f763b1edce0f74ff8563fd1f380d92cc + languageName: node + linkType: hard + "@babel/helper-member-expression-to-functions@npm:^7.18.6": version: 7.18.6 resolution: "@babel/helper-member-expression-to-functions@npm:7.18.6" @@ -1707,6 +1871,15 @@ __metadata: languageName: node linkType: hard +"@babel/helper-member-expression-to-functions@npm:^7.22.5": + version: 7.22.5 + resolution: "@babel/helper-member-expression-to-functions@npm:7.22.5" + dependencies: + "@babel/types": ^7.22.5 + checksum: 4bd5791529c280c00743e8bdc669ef0d4cd1620d6e3d35e0d42b862f8262bc2364973e5968007f960780344c539a4b9cf92ab41f5b4f94560a9620f536de2a39 + languageName: node + linkType: hard + "@babel/helper-module-imports@npm:^7.12.13, @babel/helper-module-imports@npm:^7.16.7": version: 7.16.7 resolution: "@babel/helper-module-imports@npm:7.16.7" @@ -1725,6 +1898,15 @@ __metadata: languageName: node linkType: hard +"@babel/helper-module-imports@npm:^7.22.5": + version: 7.22.5 + resolution: "@babel/helper-module-imports@npm:7.22.5" + dependencies: + "@babel/types": ^7.22.5 + checksum: 9ac2b0404fa38b80bdf2653fbeaf8e8a43ccb41bd505f9741d820ed95d3c4e037c62a1bcdcb6c9527d7798d2e595924c4d025daed73283badc180ada2c9c49ad + languageName: node + linkType: hard + "@babel/helper-module-transforms@npm:^7.12.1": version: 7.20.11 resolution: "@babel/helper-module-transforms@npm:7.20.11" @@ -1805,6 +1987,21 @@ __metadata: languageName: node linkType: hard +"@babel/helper-module-transforms@npm:^7.22.9": + version: 7.22.9 + resolution: "@babel/helper-module-transforms@npm:7.22.9" + dependencies: + "@babel/helper-environment-visitor": ^7.22.5 + "@babel/helper-module-imports": ^7.22.5 + "@babel/helper-simple-access": ^7.22.5 + "@babel/helper-split-export-declaration": ^7.22.6 + "@babel/helper-validator-identifier": ^7.22.5 + peerDependencies: + "@babel/core": ^7.0.0 + checksum: 2751f77660518cf4ff027514d6f4794f04598c6393be7b04b8e46c6e21606e11c19f3f57ab6129a9c21bacdf8b3ffe3af87bb401d972f34af2d0ffde02ac3001 + languageName: node + linkType: hard + "@babel/helper-optimise-call-expression@npm:^7.18.6": version: 7.18.6 resolution: "@babel/helper-optimise-call-expression@npm:7.18.6" @@ -1814,6 +2011,15 @@ __metadata: languageName: node linkType: hard +"@babel/helper-optimise-call-expression@npm:^7.22.5": + version: 7.22.5 + resolution: "@babel/helper-optimise-call-expression@npm:7.22.5" + dependencies: + "@babel/types": ^7.22.5 + checksum: c70ef6cc6b6ed32eeeec4482127e8be5451d0e5282d5495d5d569d39eb04d7f1d66ec99b327f45d1d5842a9ad8c22d48567e93fc502003a47de78d122e355f7c + languageName: node + linkType: hard + "@babel/helper-plugin-utils@npm:7.10.4": version: 7.10.4 resolution: "@babel/helper-plugin-utils@npm:7.10.4" @@ -1849,6 +2055,13 @@ __metadata: languageName: node linkType: hard +"@babel/helper-plugin-utils@npm:^7.22.5": + version: 7.22.5 + resolution: "@babel/helper-plugin-utils@npm:7.22.5" + checksum: c0fc7227076b6041acd2f0e818145d2e8c41968cc52fb5ca70eed48e21b8fe6dd88a0a91cbddf4951e33647336eb5ae184747ca706817ca3bef5e9e905151ff5 + languageName: node + linkType: hard + "@babel/helper-remap-async-to-generator@npm:^7.18.6": version: 7.18.6 resolution: "@babel/helper-remap-async-to-generator@npm:7.18.6" @@ -1876,6 +2089,19 @@ __metadata: languageName: node linkType: hard +"@babel/helper-replace-supers@npm:^7.22.5": + version: 7.22.9 + resolution: "@babel/helper-replace-supers@npm:7.22.9" + dependencies: + "@babel/helper-environment-visitor": ^7.22.5 + "@babel/helper-member-expression-to-functions": ^7.22.5 + "@babel/helper-optimise-call-expression": ^7.22.5 + peerDependencies: + "@babel/core": ^7.0.0 + checksum: d41471f56ff2616459d35a5df1900d5f0756ae78b1027040365325ef332d66e08e3be02a9489756d870887585ff222403a228546e93dd7019e19e59c0c0fe586 + languageName: node + linkType: hard + "@babel/helper-simple-access@npm:^7.17.7": version: 7.17.7 resolution: "@babel/helper-simple-access@npm:7.17.7" @@ -1912,6 +2138,15 @@ __metadata: languageName: node linkType: hard +"@babel/helper-simple-access@npm:^7.22.5": + version: 7.22.5 + resolution: "@babel/helper-simple-access@npm:7.22.5" + dependencies: + "@babel/types": ^7.22.5 + checksum: fe9686714caf7d70aedb46c3cce090f8b915b206e09225f1e4dbc416786c2fdbbee40b38b23c268b7ccef749dd2db35f255338fb4f2444429874d900dede5ad2 + languageName: node + linkType: hard + "@babel/helper-skip-transparent-expression-wrappers@npm:^7.18.6": version: 7.18.6 resolution: "@babel/helper-skip-transparent-expression-wrappers@npm:7.18.6" @@ -1921,6 +2156,15 @@ __metadata: languageName: node linkType: hard +"@babel/helper-skip-transparent-expression-wrappers@npm:^7.22.5": + version: 7.22.5 + resolution: "@babel/helper-skip-transparent-expression-wrappers@npm:7.22.5" + dependencies: + "@babel/types": ^7.22.5 + checksum: 1012ef2295eb12dc073f2b9edf3425661e9b8432a3387e62a8bc27c42963f1f216ab3124228015c748770b2257b4f1fda882ca8fa34c0bf485e929ae5bc45244 + languageName: node + linkType: hard + "@babel/helper-split-export-declaration@npm:^7.16.7": version: 7.16.7 resolution: "@babel/helper-split-export-declaration@npm:7.16.7" @@ -1939,6 +2183,15 @@ __metadata: languageName: node linkType: hard +"@babel/helper-split-export-declaration@npm:^7.22.6": + version: 7.22.6 + resolution: "@babel/helper-split-export-declaration@npm:7.22.6" + dependencies: + "@babel/types": ^7.22.5 + checksum: e141cace583b19d9195f9c2b8e17a3ae913b7ee9b8120246d0f9ca349ca6f03cb2c001fd5ec57488c544347c0bb584afec66c936511e447fd20a360e591ac921 + languageName: node + linkType: hard + "@babel/helper-string-parser@npm:^7.18.10": version: 7.18.10 resolution: "@babel/helper-string-parser@npm:7.18.10" @@ -1953,6 +2206,13 @@ __metadata: languageName: node linkType: hard +"@babel/helper-string-parser@npm:^7.22.5": + version: 7.22.5 + resolution: "@babel/helper-string-parser@npm:7.22.5" + checksum: 836851ca5ec813077bbb303acc992d75a360267aa3b5de7134d220411c852a6f17de7c0d0b8c8dcc0f567f67874c00f4528672b2a4f1bc978a3ada64c8c78467 + languageName: node + linkType: hard + "@babel/helper-validator-identifier@npm:^7.16.7": version: 7.16.7 resolution: "@babel/helper-validator-identifier@npm:7.16.7" @@ -1995,6 +2255,13 @@ __metadata: languageName: node linkType: hard +"@babel/helper-validator-option@npm:^7.22.5": + version: 7.22.5 + resolution: "@babel/helper-validator-option@npm:7.22.5" + checksum: bbeca8a85ee86990215c0424997438b388b8d642d69b9f86c375a174d3cdeb270efafd1ff128bc7a1d370923d13b6e45829ba8581c027620e83e3a80c5c414b3 + languageName: node + linkType: hard + "@babel/helper-wrap-function@npm:^7.18.6": version: 7.18.6 resolution: "@babel/helper-wrap-function@npm:7.18.6" @@ -2051,6 +2318,17 @@ __metadata: languageName: node linkType: hard +"@babel/helpers@npm:^7.22.11": + version: 7.22.11 + resolution: "@babel/helpers@npm:7.22.11" + dependencies: + "@babel/template": ^7.22.5 + "@babel/traverse": ^7.22.11 + "@babel/types": ^7.22.11 + checksum: 93186544228b5e371486466ec3b86a77cce91beeff24a5670ca8ec46d50328f7700dab82d532351286e9d68624dc51d6d71589b051dd9535e44be077a43ec013 + languageName: node + linkType: hard + "@babel/highlight@npm:^7.16.7": version: 7.16.10 resolution: "@babel/highlight@npm:7.16.10" @@ -2073,6 +2351,17 @@ __metadata: languageName: node linkType: hard +"@babel/highlight@npm:^7.22.13": + version: 7.22.13 + resolution: "@babel/highlight@npm:7.22.13" + dependencies: + "@babel/helper-validator-identifier": ^7.22.5 + chalk: ^2.4.2 + js-tokens: ^4.0.0 + checksum: 7266d2bff8aa8fc78eb65b6e92a8211e12897a731126a282d2f9bb50d8fcaa4c1b02af2284f990ac7e3ab8d892d448a2cab8f5ed0ea8a90bce2c025b11ebe802 + languageName: node + linkType: hard + "@babel/highlight@npm:^7.22.5": version: 7.22.5 resolution: "@babel/highlight@npm:7.22.5" @@ -2102,6 +2391,15 @@ __metadata: languageName: node linkType: hard +"@babel/parser@npm:^7.14.0, @babel/parser@npm:^7.16.8, @babel/parser@npm:^7.22.11, @babel/parser@npm:^7.22.5": + version: 7.22.13 + resolution: "@babel/parser@npm:7.22.13" + bin: + parser: ./bin/babel-parser.js + checksum: b774ae635fc0f019cc9e366fe42e5de35b46b52a0e61e6a2f136f8c822bfde16e13505a47a1aedc846312dd8fd4db7054c7d4039dc7641320d9c17f07004f200 + languageName: node + linkType: hard + "@babel/parser@npm:^7.14.7, @babel/parser@npm:^7.16.7, @babel/parser@npm:^7.17.3, @babel/parser@npm:^7.17.8": version: 7.17.8 resolution: "@babel/parser@npm:7.17.8" @@ -2194,7 +2492,7 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-proposal-class-properties@npm:^7.12.1, @babel/plugin-proposal-class-properties@npm:^7.18.6": +"@babel/plugin-proposal-class-properties@npm:^7.0.0, @babel/plugin-proposal-class-properties@npm:^7.12.1, @babel/plugin-proposal-class-properties@npm:^7.18.6": version: 7.18.6 resolution: "@babel/plugin-proposal-class-properties@npm:7.18.6" dependencies: @@ -2331,6 +2629,21 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-proposal-object-rest-spread@npm:^7.0.0": + version: 7.20.7 + resolution: "@babel/plugin-proposal-object-rest-spread@npm:7.20.7" + dependencies: + "@babel/compat-data": ^7.20.5 + "@babel/helper-compilation-targets": ^7.20.7 + "@babel/helper-plugin-utils": ^7.20.2 + "@babel/plugin-syntax-object-rest-spread": ^7.8.3 + "@babel/plugin-transform-parameters": ^7.20.7 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 1329db17009964bc644484c660eab717cb3ca63ac0ab0f67c651a028d1bc2ead51dc4064caea283e46994f1b7221670a35cbc0b4beb6273f55e915494b5aa0b2 + languageName: node + linkType: hard + "@babel/plugin-proposal-object-rest-spread@npm:^7.12.1, @babel/plugin-proposal-object-rest-spread@npm:^7.18.6": version: 7.18.6 resolution: "@babel/plugin-proposal-object-rest-spread@npm:7.18.6" @@ -2420,7 +2733,7 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-syntax-class-properties@npm:^7.12.13": +"@babel/plugin-syntax-class-properties@npm:^7.0.0, @babel/plugin-syntax-class-properties@npm:^7.12.13": version: 7.12.13 resolution: "@babel/plugin-syntax-class-properties@npm:7.12.13" dependencies: @@ -2486,6 +2799,17 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-syntax-flow@npm:^7.0.0, @babel/plugin-syntax-flow@npm:^7.22.5": + version: 7.22.5 + resolution: "@babel/plugin-syntax-flow@npm:7.22.5" + dependencies: + "@babel/helper-plugin-utils": ^7.22.5 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 84c8c40fcfe8e78cecdd6fb90e8f97f419e3f3b27a33de8324ae97d5ce1b87cdd98a636fa21a68d4d2c37c7d63f3a279bb84b6956b849921affed6b806b6ffe7 + languageName: node + linkType: hard + "@babel/plugin-syntax-flow@npm:^7.18.6": version: 7.18.6 resolution: "@babel/plugin-syntax-flow@npm:7.18.6" @@ -2508,6 +2832,17 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-syntax-import-assertions@npm:^7.20.0": + version: 7.22.5 + resolution: "@babel/plugin-syntax-import-assertions@npm:7.22.5" + dependencies: + "@babel/helper-plugin-utils": ^7.22.5 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 2b8b5572db04a7bef1e6cd20debf447e4eef7cb012616f5eceb8fa3e23ce469b8f76ee74fd6d1e158ba17a8f58b0aec579d092fb67c5a30e83ccfbc5754916c1 + languageName: node + linkType: hard + "@babel/plugin-syntax-json-strings@npm:^7.8.3": version: 7.8.3 resolution: "@babel/plugin-syntax-json-strings@npm:7.8.3" @@ -2530,6 +2865,17 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-syntax-jsx@npm:^7.0.0, @babel/plugin-syntax-jsx@npm:^7.22.5": + version: 7.22.5 + resolution: "@babel/plugin-syntax-jsx@npm:7.22.5" + dependencies: + "@babel/helper-plugin-utils": ^7.22.5 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 8829d30c2617ab31393d99cec2978e41f014f4ac6f01a1cecf4c4dd8320c3ec12fdc3ce121126b2d8d32f6887e99ca1a0bad53dedb1e6ad165640b92b24980ce + languageName: node + linkType: hard + "@babel/plugin-syntax-jsx@npm:^7.12.13": version: 7.16.7 resolution: "@babel/plugin-syntax-jsx@npm:7.16.7" @@ -2585,7 +2931,7 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-syntax-object-rest-spread@npm:7.8.3, @babel/plugin-syntax-object-rest-spread@npm:^7.8.0, @babel/plugin-syntax-object-rest-spread@npm:^7.8.3": +"@babel/plugin-syntax-object-rest-spread@npm:7.8.3, @babel/plugin-syntax-object-rest-spread@npm:^7.0.0, @babel/plugin-syntax-object-rest-spread@npm:^7.8.0, @babel/plugin-syntax-object-rest-spread@npm:^7.8.3": version: 7.8.3 resolution: "@babel/plugin-syntax-object-rest-spread@npm:7.8.3" dependencies: @@ -2651,6 +2997,17 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-transform-arrow-functions@npm:^7.0.0": + version: 7.22.5 + resolution: "@babel/plugin-transform-arrow-functions@npm:7.22.5" + dependencies: + "@babel/helper-plugin-utils": ^7.22.5 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 35abb6c57062802c7ce8bd96b2ef2883e3124370c688bbd67609f7d2453802fb73944df8808f893b6c67de978eb2bcf87bbfe325e46d6f39b5fcb09ece11d01a + languageName: node + linkType: hard + "@babel/plugin-transform-arrow-functions@npm:^7.12.1, @babel/plugin-transform-arrow-functions@npm:^7.18.6": version: 7.18.6 resolution: "@babel/plugin-transform-arrow-functions@npm:7.18.6" @@ -2675,6 +3032,17 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-transform-block-scoped-functions@npm:^7.0.0": + version: 7.22.5 + resolution: "@babel/plugin-transform-block-scoped-functions@npm:7.22.5" + dependencies: + "@babel/helper-plugin-utils": ^7.22.5 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 416b1341858e8ca4e524dee66044735956ced5f478b2c3b9bc11ec2285b0c25d7dbb96d79887169eb938084c95d0a89338c8b2fe70d473bd9dc92e5d9db1732c + languageName: node + linkType: hard + "@babel/plugin-transform-block-scoped-functions@npm:^7.18.6": version: 7.18.6 resolution: "@babel/plugin-transform-block-scoped-functions@npm:7.18.6" @@ -2686,6 +3054,17 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-transform-block-scoping@npm:^7.0.0": + version: 7.22.10 + resolution: "@babel/plugin-transform-block-scoping@npm:7.22.10" + dependencies: + "@babel/helper-plugin-utils": ^7.22.5 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: b1d06f358dedcb748a57e5feea4b9285c60593fb2912b921f22898c57c552c78fe18128678c8f84dd4ea1d4e5aebede8783830b24cd63f22c30261156d78bc77 + languageName: node + linkType: hard + "@babel/plugin-transform-block-scoping@npm:^7.12.12, @babel/plugin-transform-block-scoping@npm:^7.18.6": version: 7.18.6 resolution: "@babel/plugin-transform-block-scoping@npm:7.18.6" @@ -2697,6 +3076,25 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-transform-classes@npm:^7.0.0": + version: 7.22.6 + resolution: "@babel/plugin-transform-classes@npm:7.22.6" + dependencies: + "@babel/helper-annotate-as-pure": ^7.22.5 + "@babel/helper-compilation-targets": ^7.22.6 + "@babel/helper-environment-visitor": ^7.22.5 + "@babel/helper-function-name": ^7.22.5 + "@babel/helper-optimise-call-expression": ^7.22.5 + "@babel/helper-plugin-utils": ^7.22.5 + "@babel/helper-replace-supers": ^7.22.5 + "@babel/helper-split-export-declaration": ^7.22.6 + globals: ^11.1.0 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 8380e855c01033dbc7460d9acfbc1fc37c880350fa798c2de8c594ef818ade0e4c96173ec72f05f2a4549d8d37135e18cb62548352d51557b45a0fb4388d2f3f + languageName: node + linkType: hard + "@babel/plugin-transform-classes@npm:^7.12.1, @babel/plugin-transform-classes@npm:^7.18.6": version: 7.18.8 resolution: "@babel/plugin-transform-classes@npm:7.18.8" @@ -2715,6 +3113,18 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-transform-computed-properties@npm:^7.0.0": + version: 7.22.5 + resolution: "@babel/plugin-transform-computed-properties@npm:7.22.5" + dependencies: + "@babel/helper-plugin-utils": ^7.22.5 + "@babel/template": ^7.22.5 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: c2a77a0f94ec71efbc569109ec14ea2aa925b333289272ced8b33c6108bdbb02caf01830ffc7e49486b62dec51911924d13f3a76f1149f40daace1898009e131 + languageName: node + linkType: hard + "@babel/plugin-transform-computed-properties@npm:^7.18.6": version: 7.18.6 resolution: "@babel/plugin-transform-computed-properties@npm:7.18.6" @@ -2726,6 +3136,17 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-transform-destructuring@npm:^7.0.0": + version: 7.22.10 + resolution: "@babel/plugin-transform-destructuring@npm:7.22.10" + dependencies: + "@babel/helper-plugin-utils": ^7.22.5 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 011707801bd0029fd4f0523d24d06fdc0cbe8c9da280d75728f76713d639c4dc976e1b56a1ba7bff25468f86867efb71c9b4cac81140adbdd0abf2324b19a8bb + languageName: node + linkType: hard + "@babel/plugin-transform-destructuring@npm:^7.12.1, @babel/plugin-transform-destructuring@npm:^7.18.6": version: 7.18.6 resolution: "@babel/plugin-transform-destructuring@npm:7.18.6" @@ -2772,6 +3193,18 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-transform-flow-strip-types@npm:^7.0.0": + version: 7.22.5 + resolution: "@babel/plugin-transform-flow-strip-types@npm:7.22.5" + dependencies: + "@babel/helper-plugin-utils": ^7.22.5 + "@babel/plugin-syntax-flow": ^7.22.5 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 1ba48187d6f33814be01c6870489f0b1858256cf2b9dd7e62f02af8b30049bf375112f1d44692c5fed3cb9cd26ee2fb32e358cd79b6ad2360a51e8f993e861bf + languageName: node + linkType: hard + "@babel/plugin-transform-flow-strip-types@npm:^7.18.6": version: 7.18.6 resolution: "@babel/plugin-transform-flow-strip-types@npm:7.18.6" @@ -2784,6 +3217,17 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-transform-for-of@npm:^7.0.0": + version: 7.22.5 + resolution: "@babel/plugin-transform-for-of@npm:7.22.5" + dependencies: + "@babel/helper-plugin-utils": ^7.22.5 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: d7b8d4db010bce7273674caa95c4e6abd909362866ce297e86a2ecaa9ae636e05d525415811db9b3c942155df7f3651d19b91dd6c41f142f7308a97c7cb06023 + languageName: node + linkType: hard + "@babel/plugin-transform-for-of@npm:^7.12.1, @babel/plugin-transform-for-of@npm:^7.18.6": version: 7.18.8 resolution: "@babel/plugin-transform-for-of@npm:7.18.8" @@ -2795,6 +3239,19 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-transform-function-name@npm:^7.0.0": + version: 7.22.5 + resolution: "@babel/plugin-transform-function-name@npm:7.22.5" + dependencies: + "@babel/helper-compilation-targets": ^7.22.5 + "@babel/helper-function-name": ^7.22.5 + "@babel/helper-plugin-utils": ^7.22.5 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: cff3b876357999cb8ae30e439c3ec6b0491a53b0aa6f722920a4675a6dd5b53af97a833051df4b34791fe5b3dd326ccf769d5c8e45b322aa50ee11a660b17845 + languageName: node + linkType: hard + "@babel/plugin-transform-function-name@npm:^7.18.6": version: 7.18.6 resolution: "@babel/plugin-transform-function-name@npm:7.18.6" @@ -2808,6 +3265,17 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-transform-literals@npm:^7.0.0": + version: 7.22.5 + resolution: "@babel/plugin-transform-literals@npm:7.22.5" + dependencies: + "@babel/helper-plugin-utils": ^7.22.5 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: ec37cc2ffb32667af935ab32fe28f00920ec8a1eb999aa6dc6602f2bebd8ba205a558aeedcdccdebf334381d5c57106c61f52332045730393e73410892a9735b + languageName: node + linkType: hard + "@babel/plugin-transform-literals@npm:^7.18.6": version: 7.18.6 resolution: "@babel/plugin-transform-literals@npm:7.18.6" @@ -2819,6 +3287,17 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-transform-member-expression-literals@npm:^7.0.0": + version: 7.22.5 + resolution: "@babel/plugin-transform-member-expression-literals@npm:7.22.5" + dependencies: + "@babel/helper-plugin-utils": ^7.22.5 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: ec4b0e07915ddd4fda0142fd104ee61015c208608a84cfa13643a95d18760b1dc1ceb6c6e0548898b8c49e5959a994e46367260176dbabc4467f729b21868504 + languageName: node + linkType: hard + "@babel/plugin-transform-member-expression-literals@npm:^7.18.6": version: 7.18.6 resolution: "@babel/plugin-transform-member-expression-literals@npm:7.18.6" @@ -2843,6 +3322,19 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-transform-modules-commonjs@npm:^7.0.0": + version: 7.22.11 + resolution: "@babel/plugin-transform-modules-commonjs@npm:7.22.11" + dependencies: + "@babel/helper-module-transforms": ^7.22.9 + "@babel/helper-plugin-utils": ^7.22.5 + "@babel/helper-simple-access": ^7.22.5 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: c15ad7f1234a930cab214224bb85f6b3a3f301fa1d4d15bef193e5c11c614ce369551e5cbb708fde8d3f7e1cb84b05e9798a3647a11b56c3d67580e362a712d4 + languageName: node + linkType: hard + "@babel/plugin-transform-modules-commonjs@npm:^7.18.6": version: 7.18.6 resolution: "@babel/plugin-transform-modules-commonjs@npm:7.18.6" @@ -2907,6 +3399,18 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-transform-object-super@npm:^7.0.0": + version: 7.22.5 + resolution: "@babel/plugin-transform-object-super@npm:7.22.5" + dependencies: + "@babel/helper-plugin-utils": ^7.22.5 + "@babel/helper-replace-supers": ^7.22.5 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: b71887877d74cb64dbccb5c0324fa67e31171e6a5311991f626650e44a4083e5436a1eaa89da78c0474fb095d4ec322d63ee778b202d33aa2e4194e1ed8e62d7 + languageName: node + linkType: hard + "@babel/plugin-transform-object-super@npm:^7.18.6": version: 7.18.6 resolution: "@babel/plugin-transform-object-super@npm:7.18.6" @@ -2919,6 +3423,17 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-transform-parameters@npm:^7.0.0, @babel/plugin-transform-parameters@npm:^7.20.7": + version: 7.22.5 + resolution: "@babel/plugin-transform-parameters@npm:7.22.5" + dependencies: + "@babel/helper-plugin-utils": ^7.22.5 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: b44f89cf97daf23903776ba27c2ab13b439d80d8c8a95be5c476ab65023b1e0c0e94c28d3745f3b60a58edc4e590fa0cd4287a0293e51401ca7d29a2ddb13b8e + languageName: node + linkType: hard + "@babel/plugin-transform-parameters@npm:^7.12.1, @babel/plugin-transform-parameters@npm:^7.18.6": version: 7.18.8 resolution: "@babel/plugin-transform-parameters@npm:7.18.8" @@ -2930,6 +3445,17 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-transform-property-literals@npm:^7.0.0": + version: 7.22.5 + resolution: "@babel/plugin-transform-property-literals@npm:7.22.5" + dependencies: + "@babel/helper-plugin-utils": ^7.22.5 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 796176a3176106f77fcb8cd04eb34a8475ce82d6d03a88db089531b8f0453a2fb8b0c6ec9a52c27948bc0ea478becec449893741fc546dfc3930ab927e3f9f2e + languageName: node + linkType: hard + "@babel/plugin-transform-property-literals@npm:^7.18.6": version: 7.18.6 resolution: "@babel/plugin-transform-property-literals@npm:7.18.6" @@ -2941,6 +3467,17 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-transform-react-display-name@npm:^7.0.0": + version: 7.22.5 + resolution: "@babel/plugin-transform-react-display-name@npm:7.22.5" + dependencies: + "@babel/helper-plugin-utils": ^7.22.5 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: a12bfd1e4e93055efca3ace3c34722571bda59d9740dca364d225d9c6e3ca874f134694d21715c42cc63d79efd46db9665bd4a022998767f9245f1e29d5d204d + languageName: node + linkType: hard + "@babel/plugin-transform-react-display-name@npm:^7.18.6": version: 7.18.6 resolution: "@babel/plugin-transform-react-display-name@npm:7.18.6" @@ -2996,6 +3533,21 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-transform-react-jsx@npm:^7.0.0": + version: 7.22.5 + resolution: "@babel/plugin-transform-react-jsx@npm:7.22.5" + dependencies: + "@babel/helper-annotate-as-pure": ^7.22.5 + "@babel/helper-module-imports": ^7.22.5 + "@babel/helper-plugin-utils": ^7.22.5 + "@babel/plugin-syntax-jsx": ^7.22.5 + "@babel/types": ^7.22.5 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: c8f93f29f32cf79683ca2b8958fd62f38155674846ef27a7d4b6fbeb8713c37257418391731b58ff8024ec37b888bed5960e615a3f552e28245d2082e7f2a2df + languageName: node + linkType: hard + "@babel/plugin-transform-react-jsx@npm:^7.12.12, @babel/plugin-transform-react-jsx@npm:^7.18.6": version: 7.18.6 resolution: "@babel/plugin-transform-react-jsx@npm:7.18.6" @@ -3076,6 +3628,17 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-transform-shorthand-properties@npm:^7.0.0": + version: 7.22.5 + resolution: "@babel/plugin-transform-shorthand-properties@npm:7.22.5" + dependencies: + "@babel/helper-plugin-utils": ^7.22.5 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: a5ac902c56ea8effa99f681340ee61bac21094588f7aef0bc01dff98246651702e677552fa6d10e548c4ac22a3ffad047dd2f8c8f0540b68316c2c203e56818b + languageName: node + linkType: hard + "@babel/plugin-transform-shorthand-properties@npm:^7.12.1, @babel/plugin-transform-shorthand-properties@npm:^7.18.6": version: 7.18.6 resolution: "@babel/plugin-transform-shorthand-properties@npm:7.18.6" @@ -3087,6 +3650,18 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-transform-spread@npm:^7.0.0": + version: 7.22.5 + resolution: "@babel/plugin-transform-spread@npm:7.22.5" + dependencies: + "@babel/helper-plugin-utils": ^7.22.5 + "@babel/helper-skip-transparent-expression-wrappers": ^7.22.5 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 5587f0deb60b3dfc9b274e269031cc45ec75facccf1933ea2ea71ced9fd3ce98ed91bb36d6cd26817c14474b90ed998c5078415f0eab531caf301496ce24c95c + languageName: node + linkType: hard + "@babel/plugin-transform-spread@npm:^7.12.1, @babel/plugin-transform-spread@npm:^7.18.6": version: 7.18.6 resolution: "@babel/plugin-transform-spread@npm:7.18.6" @@ -3110,6 +3685,17 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-transform-template-literals@npm:^7.0.0": + version: 7.22.5 + resolution: "@babel/plugin-transform-template-literals@npm:7.22.5" + dependencies: + "@babel/helper-plugin-utils": ^7.22.5 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 27e9bb030654cb425381c69754be4abe6a7c75b45cd7f962cd8d604b841b2f0fb7b024f2efc1c25cc53f5b16d79d5e8cfc47cacbdaa983895b3aeefa3e7e24ff + languageName: node + linkType: hard + "@babel/plugin-transform-template-literals@npm:^7.12.1, @babel/plugin-transform-template-literals@npm:^7.18.6": version: 7.18.6 resolution: "@babel/plugin-transform-template-literals@npm:7.18.6" @@ -3408,6 +3994,15 @@ __metadata: languageName: node linkType: hard +"@babel/runtime@npm:^7.21.0": + version: 7.22.11 + resolution: "@babel/runtime@npm:7.22.11" + dependencies: + regenerator-runtime: ^0.14.0 + checksum: a5cd6683a8fcdb8065cb1677f221e22f6c67ec8f15ad1d273b180b93ab3bd86c66da2c48f500d4e72d8d2cfa85ff4872a3f350e5aa3855630036af5da765c001 + languageName: node + linkType: hard + "@babel/runtime@npm:^7.3.1, @babel/runtime@npm:^7.9.2": version: 7.17.9 resolution: "@babel/runtime@npm:7.17.9" @@ -3470,6 +4065,17 @@ __metadata: languageName: node linkType: hard +"@babel/template@npm:^7.22.5": + version: 7.22.5 + resolution: "@babel/template@npm:7.22.5" + dependencies: + "@babel/code-frame": ^7.22.5 + "@babel/parser": ^7.22.5 + "@babel/types": ^7.22.5 + checksum: c5746410164039aca61829cdb42e9a55410f43cace6f51ca443313f3d0bdfa9a5a330d0b0df73dc17ef885c72104234ae05efede37c1cc8a72dc9f93425977a3 + languageName: node + linkType: hard + "@babel/traverse@npm:7.17.3, @babel/traverse@npm:^7.13.0, @babel/traverse@npm:^7.17.3": version: 7.17.3 resolution: "@babel/traverse@npm:7.17.3" @@ -3524,6 +4130,24 @@ __metadata: languageName: node linkType: hard +"@babel/traverse@npm:^7.14.0, @babel/traverse@npm:^7.16.8, @babel/traverse@npm:^7.22.11": + version: 7.22.11 + resolution: "@babel/traverse@npm:7.22.11" + dependencies: + "@babel/code-frame": ^7.22.10 + "@babel/generator": ^7.22.10 + "@babel/helper-environment-visitor": ^7.22.5 + "@babel/helper-function-name": ^7.22.5 + "@babel/helper-hoist-variables": ^7.22.5 + "@babel/helper-split-export-declaration": ^7.22.6 + "@babel/parser": ^7.22.11 + "@babel/types": ^7.22.11 + debug: ^4.1.0 + globals: ^11.1.0 + checksum: 4ad62d548ca8b95dbf45bae16cc167428f174f3c837d55a5878b1f17bdbc8b384d6df741dc7c461b62c04d881cf25644d3ab885909ba46e3ac43224e2b15b504 + languageName: node + linkType: hard + "@babel/traverse@npm:^7.17.9": version: 7.17.9 resolution: "@babel/traverse@npm:7.17.9" @@ -3606,6 +4230,17 @@ __metadata: languageName: node linkType: hard +"@babel/types@npm:^7.0.0, @babel/types@npm:^7.16.8, @babel/types@npm:^7.18.13, @babel/types@npm:^7.22.10, @babel/types@npm:^7.22.11, @babel/types@npm:^7.22.5": + version: 7.22.11 + resolution: "@babel/types@npm:7.22.11" + dependencies: + "@babel/helper-string-parser": ^7.22.5 + "@babel/helper-validator-identifier": ^7.22.5 + to-fast-properties: ^2.0.0 + checksum: 431a6446896adb62c876d0fe75263835735d3c974aae05356a87eb55f087c20a777028cf08eadcace7993e058bbafe3b21ce2119363222c6cef9eedd7a204810 + languageName: node + linkType: hard + "@babel/types@npm:^7.12.11, @babel/types@npm:^7.18.6, @babel/types@npm:^7.18.7, @babel/types@npm:^7.18.8, @babel/types@npm:^7.2.0, @babel/types@npm:^7.4.4": version: 7.18.8 resolution: "@babel/types@npm:7.18.8" @@ -3755,6 +4390,22 @@ __metadata: languageName: node linkType: hard +"@calcom/ai@workspace:apps/ai": + version: 0.0.0-use.local + resolution: "@calcom/ai@workspace:apps/ai" + dependencies: + "@calcom/prisma": "*" + "@t3-oss/env-nextjs": ^0.6.1 + "@types/mailparser": ^3.4.0 + "@types/node": ^20.5.1 + langchain: ^0.0.131 + mailparser: ^3.6.5 + next: ^13.4.6 + typescript: ^4.9.4 + zod: ^3.20.2 + languageName: unknown + linkType: soft + "@calcom/amie@workspace:packages/app-store/amie": version: 0.0.0-use.local resolution: "@calcom/amie@workspace:packages/app-store/amie" @@ -3909,6 +4560,15 @@ __metadata: languageName: unknown linkType: soft +"@calcom/cal-ai@workspace:packages/app-store/cal-ai": + version: 0.0.0-use.local + resolution: "@calcom/cal-ai@workspace:packages/app-store/cal-ai" + dependencies: + "@calcom/lib": "*" + "@calcom/types": "*" + languageName: unknown + linkType: soft + "@calcom/caldavcalendar@workspace:packages/app-store/caldavcalendar": version: 0.0.0-use.local resolution: "@calcom/caldavcalendar@workspace:packages/app-store/caldavcalendar" @@ -4962,7 +5622,13 @@ __metadata: "@calcom/prisma": "*" "@calcom/tsconfig": "*" "@calcom/ui": "*" + "@datocms/cma-client-node": ^2.0.0 "@floating-ui/react-dom": ^1.0.0 + "@graphql-codegen/cli": ^5.0.0 + "@graphql-codegen/typed-document-node": ^5.0.1 + "@graphql-codegen/typescript": ^4.0.1 + "@graphql-codegen/typescript-operations": ^4.0.1 + "@graphql-typed-document-node/core": ^3.2.0 "@headlessui/react": ^1.5.0 "@heroicons/react": ^1.0.6 "@hookform/resolvers": ^2.9.7 @@ -4996,10 +5662,14 @@ __metadata: datocms-structured-text-to-plain-text: ^2.0.4 datocms-structured-text-utils: ^2.0.4 debounce: ^1.2.1 + dotenv: ^16.3.1 + enquirer: ^2.4.1 env-cmd: ^10.1.0 eslint: ^8.34.0 fathom-client: ^3.5.0 globby: ^13.1.3 + graphql: ^16.8.0 + graphql-request: ^6.1.0 gray-matter: ^4.0.3 gsap: ^3.11.0 iframe-resizer-react: ^1.1.0 @@ -5028,8 +5698,11 @@ __metadata: react-use-measure: ^2.1.1 remark: ^14.0.2 remark-html: ^14.0.1 + remeda: ^1.24.1 stripe: ^9.16.0 - tailwindcss: ^3.2.1 + tailwind-merge: ^1.13.2 + tailwindcss: ^3.3.1 + ts-node: ^10.9.1 typescript: ^4.9.4 wait-on: ^7.0.1 zod: ^3.20.2 @@ -5399,6 +6072,38 @@ __metadata: languageName: node linkType: hard +"@datocms/cma-client-node@npm:^2.0.0": + version: 2.0.1 + resolution: "@datocms/cma-client-node@npm:2.0.1" + dependencies: + "@datocms/cma-client": ^2.0.1 + "@datocms/rest-client-utils": ^1.3.3 + got: ^11.8.5 + mime-types: ^2.1.35 + tmp-promise: ^3.0.3 + checksum: 868fbb2c8003ad5eb68154f0e572d87df2aaac0321499ac703da8b1c5e3952b6394f295ecb90c58a8ffa4652b3c79129b5acdda572cd5e5e6e0dcaff55149234 + languageName: node + linkType: hard + +"@datocms/cma-client@npm:^2.0.1": + version: 2.0.1 + resolution: "@datocms/cma-client@npm:2.0.1" + dependencies: + "@datocms/rest-client-utils": ^1.3.3 + checksum: ffd3f1b7e9f8bbc93f1d53625224093014cfca1e6efa90a7dd8e8252e6fc2f11f42a745482103a542e3d255cbcc847b20ebac666eb73f04d6b6a41404e8f685b + languageName: node + linkType: hard + +"@datocms/rest-client-utils@npm:^1.3.3": + version: 1.3.3 + resolution: "@datocms/rest-client-utils@npm:1.3.3" + dependencies: + "@whatwg-node/fetch": ^0.5.3 + async-scheduler: ^1.4.4 + checksum: eb746ce41b0c38b0ebef42238046ce8ff2734330580b7198cc11bf7182de394af9de4df021e967419592eb62729feae533c7126d5629ec97e7cc8b3aa30e9eb2 + languageName: node + linkType: hard + "@deploysentinel/debugger-core@npm:^0.3.6": version: 0.3.6 resolution: "@deploysentinel/debugger-core@npm:0.3.6" @@ -6308,6 +7013,533 @@ __metadata: languageName: node linkType: hard +"@graphql-codegen/cli@npm:^5.0.0": + version: 5.0.0 + resolution: "@graphql-codegen/cli@npm:5.0.0" + dependencies: + "@babel/generator": ^7.18.13 + "@babel/template": ^7.18.10 + "@babel/types": ^7.18.13 + "@graphql-codegen/core": ^4.0.0 + "@graphql-codegen/plugin-helpers": ^5.0.1 + "@graphql-tools/apollo-engine-loader": ^8.0.0 + "@graphql-tools/code-file-loader": ^8.0.0 + "@graphql-tools/git-loader": ^8.0.0 + "@graphql-tools/github-loader": ^8.0.0 + "@graphql-tools/graphql-file-loader": ^8.0.0 + "@graphql-tools/json-file-loader": ^8.0.0 + "@graphql-tools/load": ^8.0.0 + "@graphql-tools/prisma-loader": ^8.0.0 + "@graphql-tools/url-loader": ^8.0.0 + "@graphql-tools/utils": ^10.0.0 + "@whatwg-node/fetch": ^0.8.0 + chalk: ^4.1.0 + cosmiconfig: ^8.1.3 + debounce: ^1.2.0 + detect-indent: ^6.0.0 + graphql-config: ^5.0.2 + inquirer: ^8.0.0 + is-glob: ^4.0.1 + jiti: ^1.17.1 + json-to-pretty-yaml: ^1.2.2 + listr2: ^4.0.5 + log-symbols: ^4.0.0 + micromatch: ^4.0.5 + shell-quote: ^1.7.3 + string-env-interpolation: ^1.0.1 + ts-log: ^2.2.3 + tslib: ^2.4.0 + yaml: ^2.3.1 + yargs: ^17.0.0 + peerDependencies: + "@parcel/watcher": ^2.1.0 + graphql: ^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 + peerDependenciesMeta: + "@parcel/watcher": + optional: true + bin: + gql-gen: cjs/bin.js + graphql-code-generator: cjs/bin.js + graphql-codegen: cjs/bin.js + graphql-codegen-esm: esm/bin.js + checksum: 55c3cafb08ee33667a896aa1c56e27ff2b6eae123d6116ff299be308038a543fb7d58c4179f34a3dff64079065d549dc05bfd95208c8c3024cecdd6307c0353b + languageName: node + linkType: hard + +"@graphql-codegen/core@npm:^4.0.0": + version: 4.0.0 + resolution: "@graphql-codegen/core@npm:4.0.0" + dependencies: + "@graphql-codegen/plugin-helpers": ^5.0.0 + "@graphql-tools/schema": ^10.0.0 + "@graphql-tools/utils": ^10.0.0 + tslib: ~2.5.0 + peerDependencies: + graphql: ^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 + checksum: 9824a5ec26fe25379f64e4ea94402487acde2a880d6bfcbd55ac9f0681c887a814fd9093cc789e09273108b7ea6df0c04fc8acc8dd55eab3918d0d07af62dffd + languageName: node + linkType: hard + +"@graphql-codegen/plugin-helpers@npm:^5.0.0, @graphql-codegen/plugin-helpers@npm:^5.0.1": + version: 5.0.1 + resolution: "@graphql-codegen/plugin-helpers@npm:5.0.1" + dependencies: + "@graphql-tools/utils": ^10.0.0 + change-case-all: 1.0.15 + common-tags: 1.8.2 + import-from: 4.0.0 + lodash: ~4.17.0 + tslib: ~2.5.0 + peerDependencies: + graphql: ^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 + checksum: 97faa8f87f41292bb5263097b1613733faf07fd0ff375ac89438aa0f2cd91e163d088b63dcafcdb6d66beaba8f7d13005bb980793e71979e9ad61fdfd206a730 + languageName: node + linkType: hard + +"@graphql-codegen/schema-ast@npm:^4.0.0": + version: 4.0.0 + resolution: "@graphql-codegen/schema-ast@npm:4.0.0" + dependencies: + "@graphql-codegen/plugin-helpers": ^5.0.0 + "@graphql-tools/utils": ^10.0.0 + tslib: ~2.5.0 + peerDependencies: + graphql: ^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 + checksum: 5950b57b383c14476080108d8ef7ebe569446ac20fbf54371ecc051392c80ef4b28b16b33fcb06faa892213bed90fc72940bc46a9852e0f02491491811e6a47e + languageName: node + linkType: hard + +"@graphql-codegen/typed-document-node@npm:^5.0.1": + version: 5.0.1 + resolution: "@graphql-codegen/typed-document-node@npm:5.0.1" + dependencies: + "@graphql-codegen/plugin-helpers": ^5.0.0 + "@graphql-codegen/visitor-plugin-common": 4.0.1 + auto-bind: ~4.0.0 + change-case-all: 1.0.15 + tslib: ~2.5.0 + peerDependencies: + graphql: ^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 + checksum: d1e9d88b0d7796de034769d1c7c02be16cbc3710c00a198e4431034d51c7fb8f56c4ba418ff53c9647898649d07eb9c26fb09f11111d79fa1cc83b34decb6e69 + languageName: node + linkType: hard + +"@graphql-codegen/typescript-operations@npm:^4.0.1": + version: 4.0.1 + resolution: "@graphql-codegen/typescript-operations@npm:4.0.1" + dependencies: + "@graphql-codegen/plugin-helpers": ^5.0.0 + "@graphql-codegen/typescript": ^4.0.1 + "@graphql-codegen/visitor-plugin-common": 4.0.1 + auto-bind: ~4.0.0 + tslib: ~2.5.0 + peerDependencies: + graphql: ^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 + checksum: 82cd58ceb7406a3ff7aa5b36a58c9303fd819259679c2de10411f9e22c4fd142068d711714f68259c64eab86ea0a2b3d761959fa59fa5140ca3f1382a5ab5169 + languageName: node + linkType: hard + +"@graphql-codegen/typescript@npm:^4.0.1": + version: 4.0.1 + resolution: "@graphql-codegen/typescript@npm:4.0.1" + dependencies: + "@graphql-codegen/plugin-helpers": ^5.0.0 + "@graphql-codegen/schema-ast": ^4.0.0 + "@graphql-codegen/visitor-plugin-common": 4.0.1 + auto-bind: ~4.0.0 + tslib: ~2.5.0 + peerDependencies: + graphql: ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 + checksum: f360b7204dc33b918d1ece88b65a46a4eac89e7c3f729886e954ebdc405d1279de6fc5a688580a4aba50826ca663dae03bcda2ac72189f5afbfc1a1727d188a6 + languageName: node + linkType: hard + +"@graphql-codegen/visitor-plugin-common@npm:4.0.1": + version: 4.0.1 + resolution: "@graphql-codegen/visitor-plugin-common@npm:4.0.1" + dependencies: + "@graphql-codegen/plugin-helpers": ^5.0.0 + "@graphql-tools/optimize": ^2.0.0 + "@graphql-tools/relay-operation-optimizer": ^7.0.0 + "@graphql-tools/utils": ^10.0.0 + auto-bind: ~4.0.0 + change-case-all: 1.0.15 + dependency-graph: ^0.11.0 + graphql-tag: ^2.11.0 + parse-filepath: ^1.0.2 + tslib: ~2.5.0 + peerDependencies: + graphql: ^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 + checksum: 72fe72850bcf9907c46ee85cf80ca5f7313418953fc6bc09b761145260ceb9e79199e92c7b3467e9b6371342e70234af5e1be7ee664457a4fdec92ea3bed878a + languageName: node + linkType: hard + +"@graphql-tools/apollo-engine-loader@npm:^8.0.0": + version: 8.0.0 + resolution: "@graphql-tools/apollo-engine-loader@npm:8.0.0" + dependencies: + "@ardatan/sync-fetch": ^0.0.1 + "@graphql-tools/utils": ^10.0.0 + "@whatwg-node/fetch": ^0.9.0 + tslib: ^2.4.0 + peerDependencies: + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + checksum: 4f9b761de2ee787b1e5afd549ae4e328175ca080915c5e31f418f5cb1a322d87b17d863c87ce5c65dcc24c7a9cab35034b457814a8021e45a6d4fba1da1700de + languageName: node + linkType: hard + +"@graphql-tools/batch-execute@npm:^9.0.1": + version: 9.0.2 + resolution: "@graphql-tools/batch-execute@npm:9.0.2" + dependencies: + "@graphql-tools/utils": ^10.0.5 + dataloader: ^2.2.2 + tslib: ^2.4.0 + value-or-promise: ^1.0.12 + peerDependencies: + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + checksum: 35da796959dbdb9bf59c913b2db25ab6db244243a5d3adb011f528841ac4c54f36d0731d2cb5b5ea8d0f2d28b61e34fe47a9afc905072848c1cc362193583f1b + languageName: node + linkType: hard + +"@graphql-tools/code-file-loader@npm:^8.0.0": + version: 8.0.2 + resolution: "@graphql-tools/code-file-loader@npm:8.0.2" + dependencies: + "@graphql-tools/graphql-tag-pluck": 8.0.2 + "@graphql-tools/utils": ^10.0.0 + globby: ^11.0.3 + tslib: ^2.4.0 + unixify: ^1.0.0 + peerDependencies: + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + checksum: e8c8db47a61afbfd8ac0d1e607b945ddde56c99ca7df88a80d1e50d3c8910dbdba8979264277afe430fe0a97b69aa52cdb737afc4a4ab3d452d34d84d7317c01 + languageName: node + linkType: hard + +"@graphql-tools/delegate@npm:^10.0.0": + version: 10.0.2 + resolution: "@graphql-tools/delegate@npm:10.0.2" + dependencies: + "@graphql-tools/batch-execute": ^9.0.1 + "@graphql-tools/executor": ^1.0.0 + "@graphql-tools/schema": ^10.0.0 + "@graphql-tools/utils": ^10.0.5 + dataloader: ^2.2.2 + tslib: ^2.5.0 + peerDependencies: + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + checksum: 3641dd03b241234cc0bc15221e1bd7e82f003f0bdb59a04cfaba23b5dc43d3aed1f068cc79d526dd731f6e4acfd90c9e20287feb565b9c881ed441c5008e32db + languageName: node + linkType: hard + +"@graphql-tools/executor-graphql-ws@npm:^1.0.0": + version: 1.1.0 + resolution: "@graphql-tools/executor-graphql-ws@npm:1.1.0" + dependencies: + "@graphql-tools/utils": ^10.0.2 + "@types/ws": ^8.0.0 + graphql-ws: ^5.14.0 + isomorphic-ws: ^5.0.0 + tslib: ^2.4.0 + ws: ^8.13.0 + peerDependencies: + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + checksum: fa76de4020de49ba2309341f5ee9b0fbf05c6a16e7e9ecf99fad2dea734021122576a7ad82f697299f10c2e2ea8da2e3f30a31c5da1edb0938c9769adfe5c646 + languageName: node + linkType: hard + +"@graphql-tools/executor-http@npm:^1.0.0": + version: 1.0.2 + resolution: "@graphql-tools/executor-http@npm:1.0.2" + dependencies: + "@graphql-tools/utils": ^10.0.2 + "@repeaterjs/repeater": ^3.0.4 + "@whatwg-node/fetch": ^0.9.0 + extract-files: ^11.0.0 + meros: ^1.2.1 + tslib: ^2.4.0 + value-or-promise: ^1.0.12 + peerDependencies: + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + checksum: 6e246bdfb6de8763e4ae7070c99339ae377ae0ef7acee864d8db2a76c6e0e4fa139769291c8ea5e1f07f698016f5f21915f1f5678720d196faa63bc7c3116b2a + languageName: node + linkType: hard + +"@graphql-tools/executor-legacy-ws@npm:^1.0.0": + version: 1.0.1 + resolution: "@graphql-tools/executor-legacy-ws@npm:1.0.1" + dependencies: + "@graphql-tools/utils": ^10.0.0 + "@types/ws": ^8.0.0 + isomorphic-ws: 5.0.0 + tslib: ^2.4.0 + ws: 8.13.0 + peerDependencies: + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + checksum: 80dc7dfa2e3288d624dac101551d8b0ba79b1cdb5114f8188abea18d2644ebcef02c044fbe780113e50e8ddb6525ce9a32c6625a4eadf07dab3b3eef4135fe04 + languageName: node + linkType: hard + +"@graphql-tools/executor@npm:^1.0.0": + version: 1.2.0 + resolution: "@graphql-tools/executor@npm:1.2.0" + dependencies: + "@graphql-tools/utils": ^10.0.0 + "@graphql-typed-document-node/core": 3.2.0 + "@repeaterjs/repeater": ^3.0.4 + tslib: ^2.4.0 + value-or-promise: ^1.0.12 + peerDependencies: + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + checksum: a6fe10636e433155a8fb76f1be76f4f55e7e54c7473a14c546a7b558819e92b3658f33f1cb646b9523a22d692b95f2cbd5a8e628f4f263fa48f229ddf98a6850 + languageName: node + linkType: hard + +"@graphql-tools/git-loader@npm:^8.0.0": + version: 8.0.2 + resolution: "@graphql-tools/git-loader@npm:8.0.2" + dependencies: + "@graphql-tools/graphql-tag-pluck": 8.0.2 + "@graphql-tools/utils": ^10.0.0 + is-glob: 4.0.3 + micromatch: ^4.0.4 + tslib: ^2.4.0 + unixify: ^1.0.0 + peerDependencies: + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + checksum: 8eba213006001e3c422b1ede3c9dfc04e1da79bc825881bdcee77f5a17881933666c3c55a3510add8e141edfefd760e09f1652427a8a115fd5ebf612cf3e00be + languageName: node + linkType: hard + +"@graphql-tools/github-loader@npm:^8.0.0": + version: 8.0.0 + resolution: "@graphql-tools/github-loader@npm:8.0.0" + dependencies: + "@ardatan/sync-fetch": ^0.0.1 + "@graphql-tools/executor-http": ^1.0.0 + "@graphql-tools/graphql-tag-pluck": ^8.0.0 + "@graphql-tools/utils": ^10.0.0 + "@whatwg-node/fetch": ^0.9.0 + tslib: ^2.4.0 + value-or-promise: ^1.0.12 + peerDependencies: + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + checksum: 39044627d72dbf2d309a4b68df796e87cf567c1f9a1f3e9d28058fe75a2cd23188a94c52a17fa6840b66f4ee2a5aa8511270de9c270e6180aea3d981dc0807ad + languageName: node + linkType: hard + +"@graphql-tools/graphql-file-loader@npm:^8.0.0": + version: 8.0.0 + resolution: "@graphql-tools/graphql-file-loader@npm:8.0.0" + dependencies: + "@graphql-tools/import": 7.0.0 + "@graphql-tools/utils": ^10.0.0 + globby: ^11.0.3 + tslib: ^2.4.0 + unixify: ^1.0.0 + peerDependencies: + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + checksum: 62c5150132a044c396dddd55b6acfe88e1bee21911bbe7905eb35516e0dd969e18ca558a77bb62c5b243bf877fee0a66a5ef2e7dce611d44ef1d5ad8edda151b + languageName: node + linkType: hard + +"@graphql-tools/graphql-tag-pluck@npm:8.0.2, @graphql-tools/graphql-tag-pluck@npm:^8.0.0": + version: 8.0.2 + resolution: "@graphql-tools/graphql-tag-pluck@npm:8.0.2" + dependencies: + "@babel/core": ^7.22.9 + "@babel/parser": ^7.16.8 + "@babel/plugin-syntax-import-assertions": ^7.20.0 + "@babel/traverse": ^7.16.8 + "@babel/types": ^7.16.8 + "@graphql-tools/utils": ^10.0.0 + tslib: ^2.4.0 + peerDependencies: + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + checksum: ee1dbb3be2b6914d15a3b9e6a1875fe1a1be283a14ced17d38139fa2d168883e0c2258d167f2cb8174d9f74ab13978c78e66e1bde3b968f2e47a8fdf365aa91a + languageName: node + linkType: hard + +"@graphql-tools/import@npm:7.0.0": + version: 7.0.0 + resolution: "@graphql-tools/import@npm:7.0.0" + dependencies: + "@graphql-tools/utils": ^10.0.0 + resolve-from: 5.0.0 + tslib: ^2.4.0 + peerDependencies: + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + checksum: 24f7f2096b635b84983932b53d2953edf77f2d35f22d892569aa0c8303a5eb1dd5cff5922dc0264cfe22891730a17cf69392a9fd4b1b682a89553d8e16247498 + languageName: node + linkType: hard + +"@graphql-tools/json-file-loader@npm:^8.0.0": + version: 8.0.0 + resolution: "@graphql-tools/json-file-loader@npm:8.0.0" + dependencies: + "@graphql-tools/utils": ^10.0.0 + globby: ^11.0.3 + tslib: ^2.4.0 + unixify: ^1.0.0 + peerDependencies: + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + checksum: 5fe0ab7b2cb0a4fac7a223928803a4f193628d51ef6da06cf9fbed63b742b39efa2dac45cef69febcb49d1c7122b2b4447b1e6af46ab799ce529e44f9f974d7f + languageName: node + linkType: hard + +"@graphql-tools/load@npm:^8.0.0": + version: 8.0.0 + resolution: "@graphql-tools/load@npm:8.0.0" + dependencies: + "@graphql-tools/schema": ^10.0.0 + "@graphql-tools/utils": ^10.0.0 + p-limit: 3.1.0 + tslib: ^2.4.0 + peerDependencies: + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + checksum: e1126bef8917e8a7e89c12cc95b127de727c04502e57f379d93dd3027ce72dc38b16a52a417263959a938b4660a1d362836eed59f941cd30ee3d5452c793a50d + languageName: node + linkType: hard + +"@graphql-tools/merge@npm:^9.0.0": + version: 9.0.0 + resolution: "@graphql-tools/merge@npm:9.0.0" + dependencies: + "@graphql-tools/utils": ^10.0.0 + tslib: ^2.4.0 + peerDependencies: + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + checksum: e93794260faa477979bdc22f05da26c0eff02bd82c11565a1197152b70b5ab1c73dc6f8a05caf06737bcb18cb244bd19ee99d62bfc41af3bffb3c17eddb70edf + languageName: node + linkType: hard + +"@graphql-tools/optimize@npm:^2.0.0": + version: 2.0.0 + resolution: "@graphql-tools/optimize@npm:2.0.0" + dependencies: + tslib: ^2.4.0 + peerDependencies: + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + checksum: 7f79c0e1852abc571308e887d27d613da5b797256c8c6eb6c5fe7ca77f09e61524778ae281cebc0b698c51d4fe1074e2b8e0d0627b8e2dcf505aa6ed09b49a2f + languageName: node + linkType: hard + +"@graphql-tools/prisma-loader@npm:^8.0.0": + version: 8.0.1 + resolution: "@graphql-tools/prisma-loader@npm:8.0.1" + dependencies: + "@graphql-tools/url-loader": ^8.0.0 + "@graphql-tools/utils": ^10.0.0 + "@types/js-yaml": ^4.0.0 + "@types/json-stable-stringify": ^1.0.32 + "@whatwg-node/fetch": ^0.9.0 + chalk: ^4.1.0 + debug: ^4.3.1 + dotenv: ^16.0.0 + graphql-request: ^6.0.0 + http-proxy-agent: ^7.0.0 + https-proxy-agent: ^7.0.0 + jose: ^4.11.4 + js-yaml: ^4.0.0 + json-stable-stringify: ^1.0.1 + lodash: ^4.17.20 + scuid: ^1.1.0 + tslib: ^2.4.0 + yaml-ast-parser: ^0.0.43 + peerDependencies: + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + checksum: 71f2d888c28ae7e634b3b62320853d31ea1dabb649e9478bc161d44bb177abf9919063be4348829c41f47edc8d5fce4def6e4eadd2a4c50edbb6dd7881bc4a51 + languageName: node + linkType: hard + +"@graphql-tools/relay-operation-optimizer@npm:^7.0.0": + version: 7.0.0 + resolution: "@graphql-tools/relay-operation-optimizer@npm:7.0.0" + dependencies: + "@ardatan/relay-compiler": 12.0.0 + "@graphql-tools/utils": ^10.0.0 + tslib: ^2.4.0 + peerDependencies: + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + checksum: 6eb7e6d3ed6e72eb2146b8272b20e0acba154fffdac518f894ceaee320cc7ef0284117c11a93dff85b8bbee1019b982a9fdd20ecf65923d998b48730d296a56d + languageName: node + linkType: hard + +"@graphql-tools/schema@npm:^10.0.0": + version: 10.0.0 + resolution: "@graphql-tools/schema@npm:10.0.0" + dependencies: + "@graphql-tools/merge": ^9.0.0 + "@graphql-tools/utils": ^10.0.0 + tslib: ^2.4.0 + value-or-promise: ^1.0.12 + peerDependencies: + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + checksum: 550e9a4528584a4d108892f1553fb5b2590e63e88b9a9d3c1ad80b01c974ca9947adb9d1448a6969230d90c15dc96e8e84d62f32ef0fde804c389b43ac5bd739 + languageName: node + linkType: hard + +"@graphql-tools/url-loader@npm:^8.0.0": + version: 8.0.0 + resolution: "@graphql-tools/url-loader@npm:8.0.0" + dependencies: + "@ardatan/sync-fetch": ^0.0.1 + "@graphql-tools/delegate": ^10.0.0 + "@graphql-tools/executor-graphql-ws": ^1.0.0 + "@graphql-tools/executor-http": ^1.0.0 + "@graphql-tools/executor-legacy-ws": ^1.0.0 + "@graphql-tools/utils": ^10.0.0 + "@graphql-tools/wrap": ^10.0.0 + "@types/ws": ^8.0.0 + "@whatwg-node/fetch": ^0.9.0 + isomorphic-ws: ^5.0.0 + tslib: ^2.4.0 + value-or-promise: ^1.0.11 + ws: ^8.12.0 + peerDependencies: + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + checksum: ddb77848d62a1705e09058e2de16342b0c4f3cf4a3a690e06a65ccaf4d1f72d1fe19f1862cce445cc4a7e8891cb61d6f1aa81540138076cf59a6ceaf3696a7e1 + languageName: node + linkType: hard + +"@graphql-tools/utils@npm:^10.0.0, @graphql-tools/utils@npm:^10.0.2, @graphql-tools/utils@npm:^10.0.5": + version: 10.0.5 + resolution: "@graphql-tools/utils@npm:10.0.5" + dependencies: + "@graphql-typed-document-node/core": ^3.1.1 + dset: ^3.1.2 + tslib: ^2.4.0 + peerDependencies: + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + checksum: 600eb668b0a80264a56d1bfc2b431073a620de8ffea959362a1d13c4e0dd5738b627cc508ead8ecdbd7c1a2da05d5664e43443e15d3b221a809fa1a0e2740193 + languageName: node + linkType: hard + +"@graphql-tools/wrap@npm:^10.0.0": + version: 10.0.0 + resolution: "@graphql-tools/wrap@npm:10.0.0" + dependencies: + "@graphql-tools/delegate": ^10.0.0 + "@graphql-tools/schema": ^10.0.0 + "@graphql-tools/utils": ^10.0.0 + tslib: ^2.4.0 + value-or-promise: ^1.0.12 + peerDependencies: + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + checksum: f7ce366cdd479c3f73c3c98f66fa13c528c63e2f791083e78ca14e010ebcd359b5c9bd78e2e8bd437a705418b87584eb6512f1eeb1971b81560c79c6fb3a4a6e + languageName: node + linkType: hard + +"@graphql-typed-document-node/core@npm:3.2.0, @graphql-typed-document-node/core@npm:^3.1.1, @graphql-typed-document-node/core@npm:^3.2.0": + version: 3.2.0 + resolution: "@graphql-typed-document-node/core@npm:3.2.0" + peerDependencies: + graphql: ^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + checksum: fa44443accd28c8cf4cb96aaaf39d144a22e8b091b13366843f4e97d19c7bfeaf609ce3c7603a4aeffe385081eaf8ea245d078633a7324c11c5ec4b2011bb76d + languageName: node + linkType: hard + "@hapi/hoek@npm:^9.0.0": version: 9.3.0 resolution: "@hapi/hoek@npm:9.3.0" @@ -6325,14 +7557,14 @@ __metadata: linkType: hard "@headlessui/react@npm:^1.5.0": - version: 1.7.16 - resolution: "@headlessui/react@npm:1.7.16" + version: 1.7.17 + resolution: "@headlessui/react@npm:1.7.17" dependencies: client-only: ^0.0.1 peerDependencies: react: ^16 || ^17 || ^18 react-dom: ^16 || ^17 || ^18 - checksum: 85844c96c79796236fa7dec2f1c2f0332d7554d9b785d7b37d9762bb4133088a0cf1334653d6f91c1fe4619960eb569f14ba5f6a962c3305e03f7b362acbabbe + checksum: 0cdb67747e7f606f78214dac0b48573247779e70534b4471515c094b74addda173dc6a9847d33aea9c6e6bc151016c034125328953077e32aa7947ebabed91f7 languageName: node linkType: hard @@ -6992,6 +8224,13 @@ __metadata: languageName: node linkType: hard +"@jridgewell/resolve-uri@npm:^3.1.0": + version: 3.1.1 + resolution: "@jridgewell/resolve-uri@npm:3.1.1" + checksum: f5b441fe7900eab4f9155b3b93f9800a916257f4e8563afbcd3b5a5337b55e52bd8ae6735453b1b745457d9f6cdb16d74cd6220bbdd98cf153239e13f6cbb653 + languageName: node + linkType: hard + "@jridgewell/set-array@npm:^1.0.1": version: 1.1.2 resolution: "@jridgewell/set-array@npm:1.1.2" @@ -7023,7 +8262,7 @@ __metadata: languageName: node linkType: hard -"@jridgewell/sourcemap-codec@npm:^1.4.13": +"@jridgewell/sourcemap-codec@npm:^1.4.13, @jridgewell/sourcemap-codec@npm:^1.4.14": version: 1.4.15 resolution: "@jridgewell/sourcemap-codec@npm:1.4.15" checksum: b881c7e503db3fc7f3c1f35a1dd2655a188cc51a3612d76efc8a6eb74728bef5606e6758ee77423e564092b4a518aba569bbb21c9bac5ab7a35b0c6ae7e344c8 @@ -7070,6 +8309,16 @@ __metadata: languageName: node linkType: hard +"@jridgewell/trace-mapping@npm:^0.3.17": + version: 0.3.19 + resolution: "@jridgewell/trace-mapping@npm:0.3.19" + dependencies: + "@jridgewell/resolve-uri": ^3.1.0 + "@jridgewell/sourcemap-codec": ^1.4.14 + checksum: 956a6f0f6fec060fb48c6bf1f5ec2064e13cd38c8be3873877d4b92b4a27ba58289a34071752671262a3e3c202abcc3fa2aac64d8447b4b0fa1ba3c9047f1c20 + languageName: node + linkType: hard + "@js-joda/core@npm:^5.2.0": version: 5.4.2 resolution: "@js-joda/core@npm:5.4.2" @@ -7883,6 +9132,39 @@ __metadata: languageName: node linkType: hard +"@peculiar/asn1-schema@npm:^2.3.6": + version: 2.3.6 + resolution: "@peculiar/asn1-schema@npm:2.3.6" + dependencies: + asn1js: ^3.0.5 + pvtsutils: ^1.3.2 + tslib: ^2.4.0 + checksum: fc09387c6e3dea07fca21b54ea8c71ce3ec0f8c92377237e51aef729f0c2df92781aa7a18a546a6fe809519faeaa222df576ec21a35c6095037a78677204a55b + languageName: node + linkType: hard + +"@peculiar/json-schema@npm:^1.1.12": + version: 1.1.12 + resolution: "@peculiar/json-schema@npm:1.1.12" + dependencies: + tslib: ^2.0.0 + checksum: b26ececdc23c5ef25837f8be8d1eb5e1c8bb6e9ae7227ac59ffea57fff56bd05137734e7685e9100595d3d88d906dff638ef8d1df54264c388d3eac1b05aa060 + languageName: node + linkType: hard + +"@peculiar/webcrypto@npm:^1.4.0": + version: 1.4.3 + resolution: "@peculiar/webcrypto@npm:1.4.3" + dependencies: + "@peculiar/asn1-schema": ^2.3.6 + "@peculiar/json-schema": ^1.1.12 + pvtsutils: ^1.3.2 + tslib: ^2.5.0 + webcrypto-core: ^1.7.7 + checksum: 5604c02b7e9a8cef61bb4430e733e939c7737533ba65ba5fac4beb3a6d613add478ab45455cb57506789b6d00704d83e4965a0f712de3e8f40706e0961670e5c + languageName: node + linkType: hard + "@pkgr/utils@npm:^2.3.1": version: 2.3.1 resolution: "@pkgr/utils@npm:2.3.1" @@ -9546,6 +10828,13 @@ __metadata: languageName: node linkType: hard +"@repeaterjs/repeater@npm:^3.0.4": + version: 3.0.4 + resolution: "@repeaterjs/repeater@npm:3.0.4" + checksum: cca0db3e802bc26fcce0b4a574074d9956da53bf43094de03c0e4732d05e13441279a92f0b96e2a7a39da50933684947a138c1213406eaafe39cfd4683d6c0df + languageName: node + linkType: hard + "@resvg/resvg-wasm@npm:2.4.1": version: 2.4.1 resolution: "@resvg/resvg-wasm@npm:2.4.1" @@ -9661,6 +10950,16 @@ __metadata: languageName: node linkType: hard +"@selderee/plugin-htmlparser2@npm:^0.11.0": + version: 0.11.0 + resolution: "@selderee/plugin-htmlparser2@npm:0.11.0" + dependencies: + domhandler: ^5.0.3 + selderee: ^0.11.0 + checksum: 6deafedd153e492359f8f0407d20903d82f2ef4950e420f4b2ee6ffbb955753524631aac7d6a5fe61dc7c7893e6928b4d8409e886157ad64a60ab37bc08b17c4 + languageName: node + linkType: hard + "@sendgrid/client@npm:^7.7.0": version: 7.7.0 resolution: "@sendgrid/client@npm:7.7.0" @@ -9900,7 +11199,7 @@ __metadata: languageName: node linkType: hard -"@sindresorhus/is@npm:^4.6.0": +"@sindresorhus/is@npm:^4.0.0, @sindresorhus/is@npm:^4.6.0": version: 4.6.0 resolution: "@sindresorhus/is@npm:4.6.0" checksum: 83839f13da2c29d55c97abc3bc2c55b250d33a0447554997a85c539e058e57b8da092da396e252b11ec24a0279a0bed1f537fa26302209327060643e327f81d2 @@ -11632,6 +12931,15 @@ __metadata: languageName: node linkType: hard +"@szmarczak/http-timer@npm:^4.0.5": + version: 4.0.6 + resolution: "@szmarczak/http-timer@npm:4.0.6" + dependencies: + defer-to-connect: ^2.0.0 + checksum: c29df3bcec6fc3bdec2b17981d89d9c9fc9bd7d0c9bcfe92821dc533f4440bc890ccde79971838b4ceed1921d456973c4180d7175ee1d0023ad0562240a58d95 + languageName: node + linkType: hard + "@szmarczak/http-timer@npm:^5.0.1": version: 5.0.1 resolution: "@szmarczak/http-timer@npm:5.0.1" @@ -11641,6 +12949,28 @@ __metadata: languageName: node linkType: hard +"@t3-oss/env-core@npm:0.6.1": + version: 0.6.1 + resolution: "@t3-oss/env-core@npm:0.6.1" + peerDependencies: + typescript: ">=4.7.2" + zod: ^3.0.0 + checksum: 6a1dd9d2f88643f6315a3add7eb6053a436a953a3c2b59b9743a2d8f28dbafcdaf4f6bccf0e7dfe424189834f75fbb53b9ac3891076a19b289468e4b406a340b + languageName: node + linkType: hard + +"@t3-oss/env-nextjs@npm:^0.6.1": + version: 0.6.1 + resolution: "@t3-oss/env-nextjs@npm:0.6.1" + dependencies: + "@t3-oss/env-core": 0.6.1 + peerDependencies: + typescript: ">=4.7.2" + zod: ^3.0.0 + checksum: c103a501b186c2a1633ead602fbd4e2d3096f736dceecba2f88a8c7b016c6f982a42bb8eb948e8069df93bf8d51a8a973e49a0a497d3da9282933683ced665e5 + languageName: node + linkType: hard + "@tailwindcss/forms@npm:^0.5.2": version: 0.5.2 resolution: "@tailwindcss/forms@npm:0.5.2" @@ -11871,6 +13201,15 @@ __metadata: languageName: node linkType: hard +"@trpc/client@npm:^10.0.0": + version: 10.38.1 + resolution: "@trpc/client@npm:10.38.1" + peerDependencies: + "@trpc/server": 10.38.1 + checksum: b37dab8703582913411a24400c361f019a1f24b3304e77ad3b4c6d700b3aa5e43b8cd2b83e2cd463ccbe12ae45ef42e186c01bbd85b940871adfd05e31553797 + languageName: node + linkType: hard + "@trpc/client@npm:^10.13.0": version: 10.13.0 resolution: "@trpc/client@npm:10.13.0" @@ -11910,6 +13249,13 @@ __metadata: languageName: node linkType: hard +"@trpc/server@npm:^10.0.0": + version: 10.38.1 + resolution: "@trpc/server@npm:10.38.1" + checksum: f38c74e575400eafcb699dd8846ccecf1449f5d17121e3040d74b88307692fd4693531b855bac7b09fe6d4e2b1b69954646ebf5d1c06ed2e87b27fb98647795c + languageName: node + linkType: hard + "@trpc/server@npm:^10.13.0": version: 10.13.0 resolution: "@trpc/server@npm:10.13.0" @@ -12036,6 +13382,18 @@ __metadata: languageName: node linkType: hard +"@types/cacheable-request@npm:^6.0.1": + version: 6.0.3 + resolution: "@types/cacheable-request@npm:6.0.3" + dependencies: + "@types/http-cache-semantics": "*" + "@types/keyv": ^3.1.4 + "@types/node": "*" + "@types/responselike": ^1.0.0 + checksum: d9b26403fe65ce6b0cb3720b7030104c352bcb37e4fac2a7089a25a97de59c355fa08940658751f2f347a8512aa9d18fdb66ab3ade835975b2f454f2d5befbd9 + languageName: node + linkType: hard + "@types/cacheable-request@npm:^6.0.2": version: 6.0.2 resolution: "@types/cacheable-request@npm:6.0.2" @@ -12404,6 +13762,13 @@ __metadata: languageName: node linkType: hard +"@types/js-yaml@npm:^4.0.0": + version: 4.0.5 + resolution: "@types/js-yaml@npm:4.0.5" + checksum: 7dcac8c50fec31643cc9d6444b5503239a861414cdfaa7ae9a38bc22597c4d850c4b8cec3d82d73b3fbca408348ce223b0408d598b32e094470dfffc6d486b4d + languageName: node + linkType: hard + "@types/jsforce@npm:^1.11.0": version: 1.11.0 resolution: "@types/jsforce@npm:1.11.0" @@ -12434,6 +13799,13 @@ __metadata: languageName: node linkType: hard +"@types/json-stable-stringify@npm:^1.0.32": + version: 1.0.34 + resolution: "@types/json-stable-stringify@npm:1.0.34" + checksum: 45767ecef0f6aae5680c3be6488d5c493f16046e34f182d7e6a2c69a667aab035799752c6f03017c883b134ad3f80e3f78d7e7da81a9c1f3d01676126baf5d0e + languageName: node + linkType: hard + "@types/json5@npm:^0.0.29": version: 0.0.29 resolution: "@types/json5@npm:0.0.29" @@ -12441,7 +13813,7 @@ __metadata: languageName: node linkType: hard -"@types/keyv@npm:*, @types/keyv@npm:^3.1.1": +"@types/keyv@npm:*, @types/keyv@npm:^3.1.1, @types/keyv@npm:^3.1.4": version: 3.1.4 resolution: "@types/keyv@npm:3.1.4" dependencies: @@ -12471,6 +13843,16 @@ __metadata: languageName: node linkType: hard +"@types/mailparser@npm:^3.4.0": + version: 3.4.0 + resolution: "@types/mailparser@npm:3.4.0" + dependencies: + "@types/node": "*" + iconv-lite: ^0.6.3 + checksum: 05232ba3579b09224e5335848da27817a4cac8cc0eb622202904b62851fd61bbab7b5ca90016531e40098641351d84c2355f10cd9c9fa718da4ea2cb0e637bd0 + languageName: node + linkType: hard + "@types/markdown-it@npm:^12.2.3": version: 12.2.3 resolution: "@types/markdown-it@npm:12.2.3" @@ -12572,6 +13954,16 @@ __metadata: languageName: node linkType: hard +"@types/node-fetch@npm:^2.6.4": + version: 2.6.4 + resolution: "@types/node-fetch@npm:2.6.4" + dependencies: + "@types/node": "*" + form-data: ^3.0.0 + checksum: f3e1d881bb42269e676ecaf49f0e096ab345e22823a2b2d071d60619414817fe02df48a31a8d05adb23054028a2a65521bdb3906ceb763ab6d3339c8d8775058 + languageName: node + linkType: hard + "@types/node-schedule@npm:^2.1.0": version: 2.1.0 resolution: "@types/node-schedule@npm:2.1.0" @@ -12767,6 +14159,13 @@ __metadata: languageName: node linkType: hard +"@types/retry@npm:0.12.0": + version: 0.12.0 + resolution: "@types/retry@npm:0.12.0" + checksum: 61a072c7639f6e8126588bf1eb1ce8835f2cb9c2aba795c4491cf6310e013267b0c8488039857c261c387e9728c1b43205099223f160bb6a76b4374f741b5603 + languageName: node + linkType: hard + "@types/sanitize-html@npm:^2.9.0": version: 2.9.0 resolution: "@types/sanitize-html@npm:2.9.0" @@ -12908,6 +14307,13 @@ __metadata: languageName: node linkType: hard +"@types/uuid@npm:^9.0.1": + version: 9.0.2 + resolution: "@types/uuid@npm:9.0.2" + checksum: 1754bcf3444e1e3aeadd6e774fc328eb53bc956665e2e8fb6ec127aa8e1f43d9a224c3d22a9a6233dca8dd81a12dc7fed4d84b8876dd5ec82d40f574f7ff8b68 + languageName: node + linkType: hard + "@types/webidl-conversions@npm:*": version: 6.1.1 resolution: "@types/webidl-conversions@npm:6.1.1" @@ -12957,6 +14363,24 @@ __metadata: languageName: node linkType: hard +"@types/ws@npm:^8.0.0": + version: 8.5.5 + resolution: "@types/ws@npm:8.5.5" + dependencies: + "@types/node": "*" + checksum: d00bf8070e6938e3ccf933010921c6ce78ac3606696ce37a393b27a9a603f7bd93ea64f3c5fa295a2f743575ba9c9a9fdb904af0f5fe2229bf2adf0630386e4a + languageName: node + linkType: hard + +"@types/xml2js@npm:^0.4.11": + version: 0.4.11 + resolution: "@types/xml2js@npm:0.4.11" + dependencies: + "@types/node": "*" + checksum: d0e7d2a8c7e0a53147c777a6756bdea0eb26a3de0d3c1f42c17e63332e4e2dc532f687c19ca26a0518336f5de60e1ec4345d7ef71e7ba0656fcf3390c9388eb5 + languageName: node + linkType: hard + "@types/yargs-parser@npm:*": version: 21.0.0 resolution: "@types/yargs-parser@npm:21.0.0" @@ -13669,6 +15093,85 @@ __metadata: languageName: node linkType: hard +"@whatwg-node/events@npm:^0.0.3": + version: 0.0.3 + resolution: "@whatwg-node/events@npm:0.0.3" + checksum: af26f40d4d0a0f5f0ee45fc6124afb8d6b33988dae96ab0fb87aa5e66d1ff08a749491b9da533ea524bbaebd4a770736f254d574a91ab4455386aa098cee8c77 + languageName: node + linkType: hard + +"@whatwg-node/events@npm:^0.1.0": + version: 0.1.1 + resolution: "@whatwg-node/events@npm:0.1.1" + checksum: 3a356ca23522190201e27446cfd7ebf1cf96815ddb9d1ba5da0a00bbe6c1d28b4094862104411101fbedd47c758b25fe3683033f6a3e80933029efd664c33567 + languageName: node + linkType: hard + +"@whatwg-node/fetch@npm:^0.5.3": + version: 0.5.4 + resolution: "@whatwg-node/fetch@npm:0.5.4" + dependencies: + "@peculiar/webcrypto": ^1.4.0 + abort-controller: ^3.0.0 + busboy: ^1.6.0 + form-data-encoder: ^1.7.1 + formdata-node: ^4.3.1 + node-fetch: ^2.6.7 + undici: ^5.12.0 + web-streams-polyfill: ^3.2.0 + checksum: 6fb6c6a582cb78fc438beee11f1d931eabc0ac8b5b660b68ea30a42c2068f4d3126d2b07e21770a4d6f391e70979bae527ca892898da9857e73dc3cc7adb8da9 + languageName: node + linkType: hard + +"@whatwg-node/fetch@npm:^0.8.0": + version: 0.8.8 + resolution: "@whatwg-node/fetch@npm:0.8.8" + dependencies: + "@peculiar/webcrypto": ^1.4.0 + "@whatwg-node/node-fetch": ^0.3.6 + busboy: ^1.6.0 + urlpattern-polyfill: ^8.0.0 + web-streams-polyfill: ^3.2.1 + checksum: 891407ba57e32e5af70a3b0a86980c4466dcf2ba8581b6927475c85400280b163085519e98821dd94776da9aa1b0b1e221e718009e2abed9c8a0d4721025b2ab + languageName: node + linkType: hard + +"@whatwg-node/fetch@npm:^0.9.0": + version: 0.9.9 + resolution: "@whatwg-node/fetch@npm:0.9.9" + dependencies: + "@whatwg-node/node-fetch": ^0.4.8 + urlpattern-polyfill: ^9.0.0 + checksum: d77127d264ce3dd99880520c54cf5fad3db1ab3c62c37ab81a3983e9dbc1b349a16aafc003232e7f093cce55129fa07a20e0d5c8585ec8ddb6fd9c22c09cd669 + languageName: node + linkType: hard + +"@whatwg-node/node-fetch@npm:^0.3.6": + version: 0.3.6 + resolution: "@whatwg-node/node-fetch@npm:0.3.6" + dependencies: + "@whatwg-node/events": ^0.0.3 + busboy: ^1.6.0 + fast-querystring: ^1.1.1 + fast-url-parser: ^1.1.3 + tslib: ^2.3.1 + checksum: d3d7b0a0242c0511c7b666de66d9096fb24ea251426ce76e3a26a8ca17408de5d4d4f81b5aaec840cc7025f0321fb97e06067c53f377c844a5a9473dd76491ae + languageName: node + linkType: hard + +"@whatwg-node/node-fetch@npm:^0.4.8": + version: 0.4.14 + resolution: "@whatwg-node/node-fetch@npm:0.4.14" + dependencies: + "@whatwg-node/events": ^0.1.0 + busboy: ^1.6.0 + fast-querystring: ^1.1.1 + fast-url-parser: ^1.1.3 + tslib: ^2.3.1 + checksum: 316e68b0e868f600077627c5a72a5f4e04250b39961cfd333063d697bebebc9bcdad1808b36d1374a068bb31cf2597b9ee08c121ae751cb61e5498fde3ea82e9 + languageName: node + linkType: hard + "@wojtekmaj/date-utils@npm:^1.0.2, @wojtekmaj/date-utils@npm:^1.0.3": version: 1.0.3 resolution: "@wojtekmaj/date-utils@npm:1.0.3" @@ -13913,6 +15416,15 @@ __metadata: languageName: node linkType: hard +"agent-base@npm:^7.0.2, agent-base@npm:^7.1.0": + version: 7.1.0 + resolution: "agent-base@npm:7.1.0" + dependencies: + debug: ^4.3.4 + checksum: f7828f991470a0cc22cb579c86a18cbae83d8a3cbed39992ab34fc7217c4d126017f1c74d0ab66be87f71455318a8ea3e757d6a37881b8d0f2a2c6aa55e5418f + languageName: node + linkType: hard + "agentkeepalive@npm:^4.2.1": version: 4.3.0 resolution: "agentkeepalive@npm:4.3.0" @@ -14557,6 +16069,17 @@ __metadata: languageName: node linkType: hard +"asn1js@npm:^3.0.1, asn1js@npm:^3.0.5": + version: 3.0.5 + resolution: "asn1js@npm:3.0.5" + dependencies: + pvtsutils: ^1.3.2 + pvutils: ^1.1.3 + tslib: ^2.4.0 + checksum: 3b6af1bbadd5762ef8ead5daf2f6bda1bc9e23bc825c4dcc996aa1f9521ad7390a64028565d95d98090d69c8431f004c71cccb866004759169d7c203cf9075eb + languageName: node + linkType: hard + "assert-plus@npm:1.0.0, assert-plus@npm:^1.0.0": version: 1.0.0 resolution: "assert-plus@npm:1.0.0" @@ -14625,6 +16148,13 @@ __metadata: languageName: node linkType: hard +"async-scheduler@npm:^1.4.4": + version: 1.4.4 + resolution: "async-scheduler@npm:1.4.4" + checksum: 080310e642bc4309aa83d625b21f9f0f1291bd0a292361cf6c0ebc86646ca719888bebc3d519f8ed177130b623b0f20640dad7f24fd8c2ede31d6d6f976968a4 + languageName: node + linkType: hard + "async@npm:^3.2.4": version: 3.2.4 resolution: "async@npm:3.2.4" @@ -14670,7 +16200,7 @@ __metadata: languageName: node linkType: hard -"auto-bind@npm:4.0.0": +"auto-bind@npm:4.0.0, auto-bind@npm:~4.0.0": version: 4.0.0 resolution: "auto-bind@npm:4.0.0" checksum: 00cad71cce5742faccb7dd65c1b55ebc4f45add4b0c9a1547b10b05bab22813230133b0c892c67ba3eb969a4524710c5e43cc45c72898ec84e56f3a596e7a04f @@ -14977,6 +16507,50 @@ __metadata: languageName: node linkType: hard +"babel-plugin-syntax-trailing-function-commas@npm:^7.0.0-beta.0": + version: 7.0.0-beta.0 + resolution: "babel-plugin-syntax-trailing-function-commas@npm:7.0.0-beta.0" + checksum: e37509156ca945dd9e4b82c66dd74f2d842ad917bd280cb5aa67960942300cd065eeac476d2514bdcdedec071277a358f6d517c31d9f9244d9bbc3619a8ecf8a + languageName: node + linkType: hard + +"babel-preset-fbjs@npm:^3.4.0": + version: 3.4.0 + resolution: "babel-preset-fbjs@npm:3.4.0" + dependencies: + "@babel/plugin-proposal-class-properties": ^7.0.0 + "@babel/plugin-proposal-object-rest-spread": ^7.0.0 + "@babel/plugin-syntax-class-properties": ^7.0.0 + "@babel/plugin-syntax-flow": ^7.0.0 + "@babel/plugin-syntax-jsx": ^7.0.0 + "@babel/plugin-syntax-object-rest-spread": ^7.0.0 + "@babel/plugin-transform-arrow-functions": ^7.0.0 + "@babel/plugin-transform-block-scoped-functions": ^7.0.0 + "@babel/plugin-transform-block-scoping": ^7.0.0 + "@babel/plugin-transform-classes": ^7.0.0 + "@babel/plugin-transform-computed-properties": ^7.0.0 + "@babel/plugin-transform-destructuring": ^7.0.0 + "@babel/plugin-transform-flow-strip-types": ^7.0.0 + "@babel/plugin-transform-for-of": ^7.0.0 + "@babel/plugin-transform-function-name": ^7.0.0 + "@babel/plugin-transform-literals": ^7.0.0 + "@babel/plugin-transform-member-expression-literals": ^7.0.0 + "@babel/plugin-transform-modules-commonjs": ^7.0.0 + "@babel/plugin-transform-object-super": ^7.0.0 + "@babel/plugin-transform-parameters": ^7.0.0 + "@babel/plugin-transform-property-literals": ^7.0.0 + "@babel/plugin-transform-react-display-name": ^7.0.0 + "@babel/plugin-transform-react-jsx": ^7.0.0 + "@babel/plugin-transform-shorthand-properties": ^7.0.0 + "@babel/plugin-transform-spread": ^7.0.0 + "@babel/plugin-transform-template-literals": ^7.0.0 + babel-plugin-syntax-trailing-function-commas: ^7.0.0-beta.0 + peerDependencies: + "@babel/core": ^7.0.0 + checksum: b3352cf690729125997f254bc31b9c4db347f8646f1571958ced1c45f0da89439e183e1c88e35397eb0361b9e1fbb1dd8142d3f4647814deb427e53c54f44d5f + languageName: node + linkType: hard + "bail@npm:^1.0.0": version: 1.0.5 resolution: "bail@npm:1.0.5" @@ -15005,6 +16579,13 @@ __metadata: languageName: node linkType: hard +"base-64@npm:^0.1.0": + version: 0.1.0 + resolution: "base-64@npm:0.1.0" + checksum: 5a42938f82372ab5392cbacc85a5a78115cbbd9dbef9f7540fa47d78763a3a8bd7d598475f0d92341f66285afd377509851a9bb5c67bbecb89686e9255d5b3eb + languageName: node + linkType: hard + "base-x@npm:^3.0.2, base-x@npm:^3.0.8": version: 3.0.9 resolution: "base-x@npm:3.0.9" @@ -15119,13 +16700,20 @@ __metadata: languageName: node linkType: hard -"binary-extensions@npm:^2.0.0": +"binary-extensions@npm:^2.0.0, binary-extensions@npm:^2.2.0": version: 2.2.0 resolution: "binary-extensions@npm:2.2.0" checksum: ccd267956c58d2315f5d3ea6757cf09863c5fc703e50fbeb13a7dc849b812ef76e3cf9ca8f35a0c48498776a7478d7b4a0418e1e2b8cb9cb9731f2922aaad7f8 languageName: node linkType: hard +"binary-search@npm:^1.3.5": + version: 1.3.6 + resolution: "binary-search@npm:1.3.6" + checksum: 2e6b3459a9c1ba1bd674a6a855a5ef7505f70707422244430e3510e989c0df6074a49fe60784a98b93b51545c9bcace1db1defee06ff861b124c036a2f2836bf + languageName: node + linkType: hard + "bindings@npm:^1.5.0": version: 1.5.0 resolution: "bindings@npm:1.5.0" @@ -15540,6 +17128,20 @@ __metadata: languageName: node linkType: hard +"browserslist@npm:^4.21.9": + version: 4.21.10 + resolution: "browserslist@npm:4.21.10" + dependencies: + caniuse-lite: ^1.0.30001517 + electron-to-chromium: ^1.4.477 + node-releases: ^2.0.13 + update-browserslist-db: ^1.0.11 + bin: + browserslist: cli.js + checksum: 1e27c0f111a35d1dd0e8fc2c61781b0daefabc2c9471b0b10537ce54843014bceb2a1ce4571af1a82b2bf1e6e6e05d38865916689a158f03bc2c7a4ec2577db8 + languageName: node + linkType: hard + "bs58@npm:^4.0.0": version: 4.0.1 resolution: "bs58@npm:4.0.1" @@ -15689,7 +17291,7 @@ __metadata: languageName: node linkType: hard -"busboy@npm:1.6.0": +"busboy@npm:1.6.0, busboy@npm:^1.6.0": version: 1.6.0 resolution: "busboy@npm:1.6.0" dependencies: @@ -15862,6 +17464,13 @@ __metadata: languageName: node linkType: hard +"cacheable-lookup@npm:^5.0.3": + version: 5.0.4 + resolution: "cacheable-lookup@npm:5.0.4" + checksum: 763e02cf9196bc9afccacd8c418d942fc2677f22261969a4c2c2e760fa44a2351a81557bd908291c3921fe9beb10b976ba8fa50c5ca837c5a0dd945f16468f2d + languageName: node + linkType: hard + "cacheable-lookup@npm:^6.0.4": version: 6.1.0 resolution: "cacheable-lookup@npm:6.1.0" @@ -15985,6 +17594,13 @@ __metadata: languageName: node linkType: hard +"camelcase@npm:6, camelcase@npm:^6.2.0": + version: 6.3.0 + resolution: "camelcase@npm:6.3.0" + checksum: 8c96818a9076434998511251dcb2761a94817ea17dbdc37f47ac080bd088fc62c7369429a19e2178b993497132c8cbcf5cc1f44ba963e76782ba469c0474938d + languageName: node + linkType: hard + "camelcase@npm:^2.0.0": version: 2.1.1 resolution: "camelcase@npm:2.1.1" @@ -15999,13 +17615,6 @@ __metadata: languageName: node linkType: hard -"camelcase@npm:^6.2.0": - version: 6.3.0 - resolution: "camelcase@npm:6.3.0" - checksum: 8c96818a9076434998511251dcb2761a94817ea17dbdc37f47ac080bd088fc62c7369429a19e2178b993497132c8cbcf5cc1f44ba963e76782ba469c0474938d - languageName: node - linkType: hard - "camelize@npm:^1.0.0": version: 1.0.0 resolution: "camelize@npm:1.0.0" @@ -16048,6 +17657,24 @@ __metadata: languageName: node linkType: hard +"caniuse-lite@npm:^1.0.30001517": + version: 1.0.30001524 + resolution: "caniuse-lite@npm:1.0.30001524" + checksum: 35d662a62f5e6be3c2d2141f1f30b3428ec72c5756cbd9fc723e33606846f28a515fd30f1e8b56e506c63fe0755f6eb7e3548dc6eefd53c5591b1a3bd28fee98 + languageName: node + linkType: hard + +"capital-case@npm:^1.0.4": + version: 1.0.4 + resolution: "capital-case@npm:1.0.4" + dependencies: + no-case: ^3.0.4 + tslib: ^2.0.3 + upper-case-first: ^2.0.2 + checksum: 41fa8fa87f6d24d0835a2b4a9341a3eaecb64ac29cd7c5391f35d6175a0fa98ab044e7f2602e1ec3afc886231462ed71b5b80c590b8b41af903ec2c15e5c5931 + languageName: node + linkType: hard + "capture-exit@npm:^2.0.0": version: 2.0.0 resolution: "capture-exit@npm:2.0.0" @@ -16143,7 +17770,7 @@ __metadata: languageName: node linkType: hard -"chalk@npm:^2.0.0, chalk@npm:^2.1.0, chalk@npm:^2.4.1": +"chalk@npm:^2.0.0, chalk@npm:^2.1.0, chalk@npm:^2.4.1, chalk@npm:^2.4.2": version: 2.4.2 resolution: "chalk@npm:2.4.2" dependencies: @@ -16154,6 +17781,24 @@ __metadata: languageName: node linkType: hard +"change-case-all@npm:1.0.15": + version: 1.0.15 + resolution: "change-case-all@npm:1.0.15" + dependencies: + change-case: ^4.1.2 + is-lower-case: ^2.0.2 + is-upper-case: ^2.0.2 + lower-case: ^2.0.2 + lower-case-first: ^2.0.2 + sponge-case: ^1.0.1 + swap-case: ^2.0.2 + title-case: ^3.0.3 + upper-case: ^2.0.2 + upper-case-first: ^2.0.2 + checksum: e1dabdcd8447a3690f3faf15f92979dfbc113109b50916976e1d5e518e6cfdebee4f05f54d0ca24fb79a4bf835185b59ae25e967bb3dc10bd236a775b19ecc52 + languageName: node + linkType: hard + "change-case@npm:^2.3.0": version: 2.3.1 resolution: "change-case@npm:2.3.1" @@ -16178,6 +17823,26 @@ __metadata: languageName: node linkType: hard +"change-case@npm:^4.1.2": + version: 4.1.2 + resolution: "change-case@npm:4.1.2" + dependencies: + camel-case: ^4.1.2 + capital-case: ^1.0.4 + constant-case: ^3.0.4 + dot-case: ^3.0.4 + header-case: ^2.0.4 + no-case: ^3.0.4 + param-case: ^3.0.4 + pascal-case: ^3.1.2 + path-case: ^3.0.4 + sentence-case: ^3.0.4 + snake-case: ^3.0.4 + tslib: ^2.0.3 + checksum: e4bc4a093a1f7cce8b33896665cf9e456e3bc3cc0def2ad7691b1994cfca99b3188d0a513b16855b01a6bd20692fcde12a7d4d87a5615c4c515bbbf0e651f116 + languageName: node + linkType: hard + "character-entities-html4@npm:^2.0.0": version: 2.1.0 resolution: "character-entities-html4@npm:2.1.0" @@ -16821,6 +18486,13 @@ __metadata: languageName: node linkType: hard +"commander@npm:^10.0.1": + version: 10.0.1 + resolution: "commander@npm:10.0.1" + checksum: 436901d64a818295803c1996cd856621a74f30b9f9e28a588e726b2b1670665bccd7c1a77007ebf328729f0139838a88a19265858a0fa7a8728c4656796db948 + languageName: node + linkType: hard + "commander@npm:^2.19.0, commander@npm:^2.20.0, commander@npm:^2.7.1, commander@npm:^2.9.0": version: 2.20.3 resolution: "commander@npm:2.20.3" @@ -16877,6 +18549,13 @@ __metadata: languageName: node linkType: hard +"common-tags@npm:1.8.2": + version: 1.8.2 + resolution: "common-tags@npm:1.8.2" + checksum: 767a6255a84bbc47df49a60ab583053bb29a7d9687066a18500a516188a062c4e4cd52de341f22de0b07062e699b1b8fe3cfa1cb55b241cb9301aeb4f45b4dff + languageName: node + linkType: hard + "commondir@npm:^1.0.1": version: 1.0.1 resolution: "commondir@npm:1.0.1" @@ -17018,6 +18697,17 @@ __metadata: languageName: node linkType: hard +"constant-case@npm:^3.0.4": + version: 3.0.4 + resolution: "constant-case@npm:3.0.4" + dependencies: + no-case: ^3.0.4 + tslib: ^2.0.3 + upper-case: ^2.0.2 + checksum: 6c3346d51afc28d9fae922e966c68eb77a19d94858dba230dd92d7b918b37d36db50f0311e9ecf6847e43e934b1c01406a0936973376ab17ec2c471fbcfb2cf3 + languageName: node + linkType: hard + "constants-browserify@npm:^1.0.0": version: 1.0.0 resolution: "constants-browserify@npm:1.0.0" @@ -17239,6 +18929,18 @@ __metadata: languageName: node linkType: hard +"cosmiconfig@npm:^8.1.0, cosmiconfig@npm:^8.1.3": + version: 8.2.0 + resolution: "cosmiconfig@npm:8.2.0" + dependencies: + import-fresh: ^3.2.1 + js-yaml: ^4.1.0 + parse-json: ^5.0.0 + path-type: ^4.0.0 + checksum: 836d5d8efa750f3fb17b03d6ca74cd3154ed025dffd045304b3ef59637f662bde1e5dc88f8830080d180ec60841719cf4ea2ce73fb21ec694b16865c478ff297 + languageName: node + linkType: hard + "country-flag-icons@npm:^1.5.4": version: 1.5.5 resolution: "country-flag-icons@npm:1.5.5" @@ -17761,6 +19463,13 @@ __metadata: languageName: node linkType: hard +"dataloader@npm:^2.2.2": + version: 2.2.2 + resolution: "dataloader@npm:2.2.2" + checksum: 4dabd247089c29f194e94d5434d504f99156c5c214a03463c20f3f17f40398d7e179edee69a27c16e315519ac8739042a810090087ae26449a0e685156a02c65 + languageName: node + linkType: hard + "date-fns@npm:^2.28.0, date-fns@npm:^2.29.3": version: 2.29.3 resolution: "date-fns@npm:2.29.3" @@ -17846,7 +19555,7 @@ __metadata: languageName: node linkType: hard -"debounce@npm:^1.2.1": +"debounce@npm:^1.2.0, debounce@npm:^1.2.1": version: 1.2.1 resolution: "debounce@npm:1.2.1" checksum: 682a89506d9e54fb109526f4da255c5546102fbb8e3ae75eef3b04effaf5d4853756aee97475cd4650641869794e44f410eeb20ace2b18ea592287ab2038519e @@ -17862,7 +19571,7 @@ __metadata: languageName: node linkType: hard -"debug@npm:4, debug@npm:4.3.4, debug@npm:^4.0.0, debug@npm:^4.1.0, debug@npm:^4.1.1, debug@npm:^4.3.2, debug@npm:^4.3.3, debug@npm:^4.3.4": +"debug@npm:4, debug@npm:4.3.4, debug@npm:^4.0.0, debug@npm:^4.1.0, debug@npm:^4.1.1, debug@npm:^4.3.1, debug@npm:^4.3.2, debug@npm:^4.3.3, debug@npm:^4.3.4": version: 4.3.4 resolution: "debug@npm:4.3.4" dependencies: @@ -17992,6 +19701,13 @@ __metadata: languageName: node linkType: hard +"deepmerge@npm:^4.3.1": + version: 4.3.1 + resolution: "deepmerge@npm:4.3.1" + checksum: 2024c6a980a1b7128084170c4cf56b0fd58a63f2da1660dcfe977415f27b17dbe5888668b59d0b063753f3220719d5e400b7f113609489c90160bb9a5518d052 + languageName: node + linkType: hard + "default-browser-id@npm:^1.0.4": version: 1.0.4 resolution: "default-browser-id@npm:1.0.4" @@ -18014,7 +19730,7 @@ __metadata: languageName: node linkType: hard -"defer-to-connect@npm:^2.0.1": +"defer-to-connect@npm:^2.0.0, defer-to-connect@npm:^2.0.1": version: 2.0.1 resolution: "defer-to-connect@npm:2.0.1" checksum: 8a9b50d2f25446c0bfefb55a48e90afd58f85b21bcf78e9207cd7b804354f6409032a1705c2491686e202e64fc05f147aa5aa45f9aa82627563f045937f5791b @@ -18119,6 +19835,13 @@ __metadata: languageName: node linkType: hard +"dependency-graph@npm:^0.11.0": + version: 0.11.0 + resolution: "dependency-graph@npm:0.11.0" + checksum: 477204beaa9be69e642bc31ffe7a8c383d0cf48fa27acbc91c5df01431ab913e65c154213d2ef83d034c98d77280743ec85e5da018a97a18dd43d3c0b78b28cd + languageName: node + linkType: hard + "dequal@npm:^2.0.0, dequal@npm:^2.0.2, dequal@npm:^2.0.3": version: 2.0.3 resolution: "dequal@npm:2.0.3" @@ -18241,6 +19964,16 @@ __metadata: languageName: node linkType: hard +"digest-fetch@npm:^1.3.0": + version: 1.3.0 + resolution: "digest-fetch@npm:1.3.0" + dependencies: + base-64: ^0.1.0 + md5: ^2.3.0 + checksum: 8ebdb4b9ef02b1ac0da532d25c7d08388f2552813dfadabfe7c4630e944bb4a48093b997fc926440a10e1ccf4912f2ce9adcf2d6687b0518dab8480e08f22f9d + languageName: node + linkType: hard + "dijkstrajs@npm:^1.0.1": version: 1.0.2 resolution: "dijkstrajs@npm:1.0.2" @@ -18532,6 +20265,13 @@ __metadata: languageName: node linkType: hard +"dotenv@npm:^16.3.1": + version: 16.3.1 + resolution: "dotenv@npm:16.3.1" + checksum: 15d75e7279018f4bafd0ee9706593dd14455ddb71b3bcba9c52574460b7ccaf67d5cf8b2c08a5af1a9da6db36c956a04a1192b101ee102a3e0cf8817bbcf3dfd + languageName: node + linkType: hard + "dotenv@npm:^8.0.0": version: 8.6.0 resolution: "dotenv@npm:8.6.0" @@ -18561,6 +20301,13 @@ __metadata: languageName: node linkType: hard +"dset@npm:^3.1.2": + version: 3.1.2 + resolution: "dset@npm:3.1.2" + checksum: 4f8066f517aa0a70af688c66e9a0a5590f0aada76f6edc7ba9ddb309e27d3a6d65c0a2e31ab2a84005d4c791e5327773cdde59b8ab169050330a0dc283663e87 + languageName: node + linkType: hard + "duplexer3@npm:^0.1.4": version: 0.1.4 resolution: "duplexer3@npm:0.1.4" @@ -18648,6 +20395,13 @@ __metadata: languageName: node linkType: hard +"electron-to-chromium@npm:^1.4.477": + version: 1.4.505 + resolution: "electron-to-chromium@npm:1.4.505" + checksum: e3255e2d136c88370548d3eb086924f49085438ff4268a47b005b96bd024ccd2da9b4d2887d8999920b67f3693490faaae0ca204ca593785e6070a560a66f3cc + languageName: node + linkType: hard + "electron-to-chromium@npm:^1.4.76, electron-to-chromium@npm:^1.4.84": version: 1.4.103 resolution: "electron-to-chromium@npm:1.4.103" @@ -18712,6 +20466,13 @@ __metadata: languageName: node linkType: hard +"encoding-japanese@npm:2.0.0": + version: 2.0.0 + resolution: "encoding-japanese@npm:2.0.0" + checksum: 6b1ee85e81d16bfbeb96b887239cef888859b071164c916088078f4db4c10f7b83e4042dfd804c68063ce50c129abd02c42ac1753e60ccd2705f4c103ec798f1 + languageName: node + linkType: hard + "encoding@npm:0.1.12": version: 0.1.12 resolution: "encoding@npm:0.1.12" @@ -18790,6 +20551,16 @@ __metadata: languageName: node linkType: hard +"enquirer@npm:^2.4.1": + version: 2.4.1 + resolution: "enquirer@npm:2.4.1" + dependencies: + ansi-colors: ^4.1.1 + strip-ansi: ^6.0.1 + checksum: f080f11a74209647dbf347a7c6a83c8a47ae1ebf1e75073a808bc1088eb780aa54075bfecd1bcdb3e3c724520edb8e6ee05da031529436b421b71066fcc48cb5 + languageName: node + linkType: hard + "entities@npm:^2.0.0": version: 2.2.0 resolution: "entities@npm:2.2.0" @@ -19872,7 +21643,7 @@ __metadata: languageName: node linkType: hard -"eventemitter3@npm:^4.0.1": +"eventemitter3@npm:^4.0.1, eventemitter3@npm:^4.0.4": version: 4.0.7 resolution: "eventemitter3@npm:4.0.7" checksum: 1875311c42fcfe9c707b2712c32664a245629b42bb0a5a84439762dd0fd637fc54d078155ea83c2af9e0323c9ac13687e03cfba79b03af9f40c89b4960099374 @@ -19999,6 +21770,13 @@ __metadata: languageName: node linkType: hard +"expr-eval@npm:^2.0.2": + version: 2.0.2 + resolution: "expr-eval@npm:2.0.2" + checksum: 01862f09b50b17b45a6268b1153280afede99e1b51752a323661f7f4010eaed34cd6c682bf439b7f8a92df6aa82f326f0ce0aa20964d175feee97377fe53921d + languageName: node + linkType: hard + "express@npm:^4.14.0": version: 4.17.3 resolution: "express@npm:4.17.3" @@ -20145,6 +21923,13 @@ __metadata: languageName: node linkType: hard +"extract-files@npm:^11.0.0": + version: 11.0.0 + resolution: "extract-files@npm:11.0.0" + checksum: 39ebd92772e9a1e30d1e3112fb7db85d353c8243640635668b615ac1d605ceb79fbb13d17829dd308993ef37bb189ad99817f79ab164ae95c9bb3df9f440bd16 + languageName: node + linkType: hard + "extsprintf@npm:1.3.0": version: 1.3.0 resolution: "extsprintf@npm:1.3.0" @@ -20159,6 +21944,13 @@ __metadata: languageName: node linkType: hard +"fast-decode-uri-component@npm:^1.0.1": + version: 1.0.1 + resolution: "fast-decode-uri-component@npm:1.0.1" + checksum: 427a48fe0907e76f0e9a2c228e253b4d8a8ab21d130ee9e4bb8339c5ba4086235cf9576831f7b20955a752eae4b525a177ff9d5825dd8d416e7726939194fbee + languageName: node + linkType: hard + "fast-deep-equal@npm:^3.1.1, fast-deep-equal@npm:^3.1.3": version: 3.1.3 resolution: "fast-deep-equal@npm:3.1.3" @@ -20282,6 +22074,15 @@ __metadata: languageName: node linkType: hard +"fast-querystring@npm:^1.1.1": + version: 1.1.2 + resolution: "fast-querystring@npm:1.1.2" + dependencies: + fast-decode-uri-component: ^1.0.1 + checksum: 7149f82ee9ac39a9c08c7ffe435b9f6deade76ae5e3675fe1835720513e8c4bc541e666b4b7b1c0c07e08f369dcf4828d00f2bee39889a90a168e1439cf27b0b + languageName: node + linkType: hard + "fast-safe-stringify@npm:^2.0.7, fast-safe-stringify@npm:^2.1.1": version: 2.1.1 resolution: "fast-safe-stringify@npm:2.1.1" @@ -20303,6 +22104,15 @@ __metadata: languageName: node linkType: hard +"fast-url-parser@npm:^1.1.3": + version: 1.1.3 + resolution: "fast-url-parser@npm:1.1.3" + dependencies: + punycode: ^1.3.2 + checksum: 5043d0c4a8d775ff58504d56c096563c11b113e4cb8a2668c6f824a1cd4fb3812e2fdf76537eb24a7ce4ae7def6bd9747da630c617cf2a4b6ce0c42514e4f21c + languageName: node + linkType: hard + "fast-xml-parser@npm:4.0.11": version: 4.0.11 resolution: "fast-xml-parser@npm:4.0.11" @@ -20371,6 +22181,28 @@ __metadata: languageName: node linkType: hard +"fbjs-css-vars@npm:^1.0.0": + version: 1.0.2 + resolution: "fbjs-css-vars@npm:1.0.2" + checksum: 72baf6d22c45b75109118b4daecb6c8016d4c83c8c0f23f683f22e9d7c21f32fff6201d288df46eb561e3c7d4bb4489b8ad140b7f56444c453ba407e8bd28511 + languageName: node + linkType: hard + +"fbjs@npm:^3.0.0": + version: 3.0.5 + resolution: "fbjs@npm:3.0.5" + dependencies: + cross-fetch: ^3.1.5 + fbjs-css-vars: ^1.0.0 + loose-envify: ^1.0.0 + object-assign: ^4.1.0 + promise: ^7.1.1 + setimmediate: ^1.0.5 + ua-parser-js: ^1.0.35 + checksum: e609b5b64686bc96495a5c67728ed9b2710b9b3d695c5759c5f5e47c9483d1c323543ac777a86459e3694efc5712c6ce7212e944feb19752867d699568bb0e54 + languageName: node + linkType: hard + "fetch-retry@npm:^5.0.2": version: 5.0.3 resolution: "fetch-retry@npm:5.0.3" @@ -20615,6 +22447,15 @@ __metadata: languageName: node linkType: hard +"flat@npm:^5.0.2": + version: 5.0.2 + resolution: "flat@npm:5.0.2" + bin: + flat: cli.js + checksum: 12a1536ac746db74881316a181499a78ef953632ddd28050b7a3a43c62ef5462e3357c8c29d76072bb635f147f7a9a1f0c02efef6b4be28f8db62ceb3d5c7f5d + languageName: node + linkType: hard + "flatted@npm:^3.1.0": version: 3.2.5 resolution: "flatted@npm:3.2.5" @@ -20752,13 +22593,20 @@ __metadata: languageName: node linkType: hard -"form-data-encoder@npm:^1.4.3": +"form-data-encoder@npm:1.7.2, form-data-encoder@npm:^1.4.3": version: 1.7.2 resolution: "form-data-encoder@npm:1.7.2" checksum: aeebd87a1cb009e13cbb5e4e4008e6202ed5f6551eb6d9582ba8a062005178907b90f4887899d3c993de879159b6c0c940af8196725b428b4248cec5af3acf5f languageName: node linkType: hard +"form-data-encoder@npm:^1.7.1": + version: 1.9.0 + resolution: "form-data-encoder@npm:1.9.0" + checksum: a73f617976f91b594dbd777ec5147abdb0c52d707475130f8cefc8ae9102ccf51be154b929f7c18323729c2763ac25b16055f5034bc188834e9febeb0d971d7f + languageName: node + linkType: hard + "form-data@npm:3.0.0": version: 3.0.0 resolution: "form-data@npm:3.0.0" @@ -20831,6 +22679,16 @@ __metadata: languageName: node linkType: hard +"formdata-node@npm:^4.3.1, formdata-node@npm:^4.3.2": + version: 4.4.1 + resolution: "formdata-node@npm:4.4.1" + dependencies: + node-domexception: 1.0.0 + web-streams-polyfill: 4.0.0-beta.3 + checksum: d91d4f667cfed74827fc281594102c0dabddd03c9f8b426fc97123eedbf73f5060ee43205d89284d6854e2fc5827e030cd352ef68b93beda8decc2d72128c576 + languageName: node + linkType: hard + "formidable@npm:^1.2.2": version: 1.2.6 resolution: "formidable@npm:1.2.6" @@ -21447,6 +23305,20 @@ __metadata: languageName: node linkType: hard +"glob@npm:^7.1.1, glob@npm:^7.2.0": + version: 7.2.3 + resolution: "glob@npm:7.2.3" + dependencies: + fs.realpath: ^1.0.0 + inflight: ^1.0.4 + inherits: 2 + minimatch: ^3.1.1 + once: ^1.3.0 + path-is-absolute: ^1.0.0 + checksum: 29452e97b38fa704dabb1d1045350fb2467cf0277e155aa9ff7077e90ad81d1ea9d53d3ee63bd37c05b09a065e90f16aec4a65f5b8de401d1dac40bc5605d133 + languageName: node + linkType: hard + "glob@npm:^7.1.3, glob@npm:^7.1.4, glob@npm:^7.1.6": version: 7.2.0 resolution: "glob@npm:7.2.0" @@ -21461,20 +23333,6 @@ __metadata: languageName: node linkType: hard -"glob@npm:^7.2.0": - version: 7.2.3 - resolution: "glob@npm:7.2.3" - dependencies: - fs.realpath: ^1.0.0 - inflight: ^1.0.4 - inherits: 2 - minimatch: ^3.1.1 - once: ^1.3.0 - path-is-absolute: ^1.0.0 - checksum: 29452e97b38fa704dabb1d1045350fb2467cf0277e155aa9ff7077e90ad81d1ea9d53d3ee63bd37c05b09a065e90f16aec4a65f5b8de401d1dac40bc5605d133 - languageName: node - linkType: hard - "glob@npm:^8.0.1, glob@npm:^8.0.3, glob@npm:^8.1.0": version: 8.1.0 resolution: "glob@npm:8.1.0" @@ -21548,7 +23406,7 @@ __metadata: languageName: node linkType: hard -"globby@npm:^11.0.0, globby@npm:^11.0.2, globby@npm:^11.1.0": +"globby@npm:^11.0.0, globby@npm:^11.0.2, globby@npm:^11.0.3, globby@npm:^11.1.0": version: 11.1.0 resolution: "globby@npm:11.1.0" dependencies: @@ -21706,6 +23564,25 @@ __metadata: languageName: node linkType: hard +"got@npm:^11.8.5": + version: 11.8.6 + resolution: "got@npm:11.8.6" + dependencies: + "@sindresorhus/is": ^4.0.0 + "@szmarczak/http-timer": ^4.0.5 + "@types/cacheable-request": ^6.0.1 + "@types/responselike": ^1.0.0 + cacheable-lookup: ^5.0.3 + cacheable-request: ^7.0.2 + decompress-response: ^6.0.0 + http2-wrapper: ^1.0.0-beta.5.2 + lowercase-keys: ^2.0.0 + p-cancelable: ^2.0.0 + responselike: ^2.0.0 + checksum: bbc783578a8d5030c8164ef7f57ce41b5ad7db2ed13371e1944bef157eeca5a7475530e07c0aaa71610d7085474d0d96222c9f4268d41db333a17e39b463f45d + languageName: node + linkType: hard + "got@npm:^7.1.0": version: 7.1.0 resolution: "got@npm:7.1.0" @@ -21766,6 +23643,63 @@ __metadata: languageName: node linkType: hard +"graphql-config@npm:^5.0.2": + version: 5.0.2 + resolution: "graphql-config@npm:5.0.2" + dependencies: + "@graphql-tools/graphql-file-loader": ^8.0.0 + "@graphql-tools/json-file-loader": ^8.0.0 + "@graphql-tools/load": ^8.0.0 + "@graphql-tools/merge": ^9.0.0 + "@graphql-tools/url-loader": ^8.0.0 + "@graphql-tools/utils": ^10.0.0 + cosmiconfig: ^8.1.0 + jiti: ^1.18.2 + minimatch: ^4.2.3 + string-env-interpolation: ^1.0.1 + tslib: ^2.4.0 + peerDependencies: + cosmiconfig-toml-loader: ^1.0.0 + graphql: ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 + peerDependenciesMeta: + cosmiconfig-toml-loader: + optional: true + checksum: 3349131e18ace3871d7d9752ba9ff78f625c19ee254524469232b6e8e81d69596b2d90e0309fcfeced387b4abfb793f77be87c556eedffa7eae6c08d0432d6d7 + languageName: node + linkType: hard + +"graphql-request@npm:^6.0.0, graphql-request@npm:^6.1.0": + version: 6.1.0 + resolution: "graphql-request@npm:6.1.0" + dependencies: + "@graphql-typed-document-node/core": ^3.2.0 + cross-fetch: ^3.1.5 + peerDependencies: + graphql: 14 - 16 + checksum: 6d62630a0169574442320651c1f7626c0c602025c3c46b19e09417c9579bb209306ee63de9793a03be2e1701bb7f13971f8545d99bc6573e340f823af0ad35b2 + languageName: node + linkType: hard + +"graphql-tag@npm:^2.11.0": + version: 2.12.6 + resolution: "graphql-tag@npm:2.12.6" + dependencies: + tslib: ^2.1.0 + peerDependencies: + graphql: ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 + checksum: b15162a3d62f17b9b79302445b9ee330e041582f1c7faca74b9dec5daa74272c906ec1c34e1c50592bb6215e5c3eba80a309103f6ba9e4c1cddc350c46f010df + languageName: node + linkType: hard + +"graphql-ws@npm:^5.14.0": + version: 5.14.0 + resolution: "graphql-ws@npm:5.14.0" + peerDependencies: + graphql: ">=0.11 <=16" + checksum: 7b622944823fa12a77ea490656121a77e1a1daf08114a6a0b027922113f4481d95f4fe380a5de369a51657ef777d35757dc31f63e41071c21f3e97ca47e4205a + languageName: node + linkType: hard + "graphql@npm:^16.3.0": version: 16.5.0 resolution: "graphql@npm:16.5.0" @@ -21773,6 +23707,13 @@ __metadata: languageName: node linkType: hard +"graphql@npm:^16.8.0": + version: 16.8.0 + resolution: "graphql@npm:16.8.0" + checksum: d853d4085b0c911a7e2a926c3b0d379934ec61cd4329e70cdf281763102f024fd80a97db7a505b8b04fed9050cb4875f8f518150ea854557a500a0b41dcd7f4e + languageName: node + linkType: hard + "gray-matter@npm:^4.0.3": version: 4.0.3 resolution: "gray-matter@npm:4.0.3" @@ -22202,7 +24143,7 @@ __metadata: languageName: node linkType: hard -"he@npm:^1.2.0": +"he@npm:1.2.0, he@npm:^1.2.0": version: 1.2.0 resolution: "he@npm:1.2.0" bin: @@ -22211,6 +24152,16 @@ __metadata: languageName: node linkType: hard +"header-case@npm:^2.0.4": + version: 2.0.4 + resolution: "header-case@npm:2.0.4" + dependencies: + capital-case: ^1.0.4 + tslib: ^2.0.3 + checksum: 571c83eeb25e8130d172218712f807c0b96d62b020981400bccc1503a7cf14b09b8b10498a962d2739eccf231d950e3848ba7d420b58a6acd2f9283439546cd9 + languageName: node + linkType: hard + "headers-polyfill@npm:^3.0.4": version: 3.0.7 resolution: "headers-polyfill@npm:3.0.7" @@ -22341,6 +24292,19 @@ __metadata: languageName: node linkType: hard +"html-to-text@npm:9.0.5": + version: 9.0.5 + resolution: "html-to-text@npm:9.0.5" + dependencies: + "@selderee/plugin-htmlparser2": ^0.11.0 + deepmerge: ^4.3.1 + dom-serializer: ^2.0.0 + htmlparser2: ^8.0.2 + selderee: ^0.11.0 + checksum: 205e0faa9b9aa281b369122acdffc5f348848e400f4037fde1fb12d68a6baa11644d2b64c3cc6821a79d3bc7316d89e85cc733d86f7f709858cb5c5b72faac65 + languageName: node + linkType: hard + "html-void-elements@npm:^1.0.0": version: 1.0.5 resolution: "html-void-elements@npm:1.0.5" @@ -22413,7 +24377,7 @@ __metadata: languageName: node linkType: hard -"htmlparser2@npm:^8.0.0": +"htmlparser2@npm:^8.0.0, htmlparser2@npm:^8.0.2": version: 8.0.2 resolution: "htmlparser2@npm:8.0.2" dependencies: @@ -22514,6 +24478,16 @@ __metadata: languageName: node linkType: hard +"http-proxy-agent@npm:^7.0.0": + version: 7.0.0 + resolution: "http-proxy-agent@npm:7.0.0" + dependencies: + agent-base: ^7.1.0 + debug: ^4.3.4 + checksum: 48d4fac997917e15f45094852b63b62a46d0c8a4f0b9c6c23ca26d27b8df8d178bed88389e604745e748bd9a01f5023e25093722777f0593c3f052009ff438b6 + languageName: node + linkType: hard + "http-signature@npm:~1.2.0": version: 1.2.0 resolution: "http-signature@npm:1.2.0" @@ -22525,6 +24499,16 @@ __metadata: languageName: node linkType: hard +"http2-wrapper@npm:^1.0.0-beta.5.2": + version: 1.0.3 + resolution: "http2-wrapper@npm:1.0.3" + dependencies: + quick-lru: ^5.1.1 + resolve-alpn: ^1.0.0 + checksum: 74160b862ec699e3f859739101ff592d52ce1cb207b7950295bf7962e4aa1597ef709b4292c673bece9c9b300efad0559fc86c71b1409c7a1e02b7229456003e + languageName: node + linkType: hard + "http2-wrapper@npm:^2.1.10": version: 2.1.11 resolution: "http2-wrapper@npm:2.1.11" @@ -22562,6 +24546,16 @@ __metadata: languageName: node linkType: hard +"https-proxy-agent@npm:^7.0.0": + version: 7.0.1 + resolution: "https-proxy-agent@npm:7.0.1" + dependencies: + agent-base: ^7.0.2 + debug: 4 + checksum: 2d765c31865071373771f53abdd72912567b76015a4eff61094f586194192950cd89257d50f0e621807a16c083bc8cad5852e3885c6ba154d2ce721a18fac248 + languageName: node + linkType: hard + "httpsnippet@npm:^2.0.0": version: 2.0.0 resolution: "httpsnippet@npm:2.0.0" @@ -22824,6 +24818,13 @@ __metadata: languageName: node linkType: hard +"immutable@npm:~3.7.6": + version: 3.7.6 + resolution: "immutable@npm:3.7.6" + checksum: 8cccfb22d3ecf14fe0c474612e96d6bb5d117493e7639fe6642fb81e78c9ac4b698dd8a322c105001a709ad873ffc90e30bad7db5d9a3ef0b54a6e1db0258e8e + languageName: node + linkType: hard + "import-fresh@npm:^3.0.0, import-fresh@npm:^3.1.0, import-fresh@npm:^3.2.1": version: 3.3.0 resolution: "import-fresh@npm:3.3.0" @@ -22834,6 +24835,13 @@ __metadata: languageName: node linkType: hard +"import-from@npm:4.0.0": + version: 4.0.0 + resolution: "import-from@npm:4.0.0" + checksum: 1fa29c05b048da18914e91d9a529e5d9b91774bebbfab10e53f59bcc1667917672b971cf102fee857f142e5e433ce69fa1f0a596e1c7d82f9947a5ec352694b9 + languageName: node + linkType: hard + "imurmurhash@npm:^0.1.4": version: 0.1.4 resolution: "imurmurhash@npm:0.1.4" @@ -23004,6 +25012,29 @@ __metadata: languageName: node linkType: hard +"inquirer@npm:^8.0.0": + version: 8.2.6 + resolution: "inquirer@npm:8.2.6" + dependencies: + ansi-escapes: ^4.2.1 + chalk: ^4.1.1 + cli-cursor: ^3.1.0 + cli-width: ^3.0.0 + external-editor: ^3.0.3 + figures: ^3.0.0 + lodash: ^4.17.21 + mute-stream: 0.0.8 + ora: ^5.4.1 + run-async: ^2.4.0 + rxjs: ^7.5.5 + string-width: ^4.1.0 + strip-ansi: ^6.0.0 + through: ^2.3.6 + wrap-ansi: ^6.0.1 + checksum: 387ffb0a513559cc7414eb42c57556a60e302f820d6960e89d376d092e257a919961cd485a1b4de693dbb5c0de8bc58320bfd6247dfd827a873aa82a4215a240 + languageName: node + linkType: hard + "inquirer@npm:^8.2.0": version: 8.2.4 resolution: "inquirer@npm:8.2.4" @@ -23094,6 +25125,16 @@ __metadata: languageName: node linkType: hard +"is-absolute@npm:^1.0.0": + version: 1.0.0 + resolution: "is-absolute@npm:1.0.0" + dependencies: + is-relative: ^1.0.0 + is-windows: ^1.0.1 + checksum: 9d16b2605eda3f3ce755410f1d423e327ad3a898bcb86c9354cf63970ed3f91ba85e9828aa56f5d6a952b9fae43d0477770f78d37409ae8ecc31e59ebc279b27 + languageName: node + linkType: hard + "is-accessor-descriptor@npm:^0.1.6": version: 0.1.6 resolution: "is-accessor-descriptor@npm:0.1.6" @@ -23129,6 +25170,13 @@ __metadata: languageName: node linkType: hard +"is-any-array@npm:^2.0.0": + version: 2.0.1 + resolution: "is-any-array@npm:2.0.1" + checksum: 472ed80e17d32951435087951af30c29498b163c31bf723dd5af76545b100bcfac6fad2df3f1a648b45e3b027de8f5dc2389935267ba5258eae85762804b4982 + languageName: node + linkType: hard + "is-arguments@npm:^1.0.4, is-arguments@npm:^1.1.0": version: 1.1.1 resolution: "is-arguments@npm:1.1.1" @@ -23413,6 +25461,15 @@ __metadata: languageName: node linkType: hard +"is-glob@npm:4.0.3, is-glob@npm:^4.0.0, is-glob@npm:^4.0.1, is-glob@npm:^4.0.3, is-glob@npm:~4.0.1": + version: 4.0.3 + resolution: "is-glob@npm:4.0.3" + dependencies: + is-extglob: ^2.1.1 + checksum: d381c1319fcb69d341cc6e6c7cd588e17cd94722d9a32dbd60660b993c4fb7d0f19438674e68dfec686d09b7c73139c9166b47597f846af387450224a8101ab4 + languageName: node + linkType: hard + "is-glob@npm:^3.0.0, is-glob@npm:^3.1.0": version: 3.1.0 resolution: "is-glob@npm:3.1.0" @@ -23422,15 +25479,6 @@ __metadata: languageName: node linkType: hard -"is-glob@npm:^4.0.0, is-glob@npm:^4.0.1, is-glob@npm:^4.0.3, is-glob@npm:~4.0.1": - version: 4.0.3 - resolution: "is-glob@npm:4.0.3" - dependencies: - is-extglob: ^2.1.1 - checksum: d381c1319fcb69d341cc6e6c7cd588e17cd94722d9a32dbd60660b993c4fb7d0f19438674e68dfec686d09b7c73139c9166b47597f846af387450224a8101ab4 - languageName: node - linkType: hard - "is-hex-prefixed@npm:1.0.0": version: 1.0.0 resolution: "is-hex-prefixed@npm:1.0.0" @@ -23468,6 +25516,15 @@ __metadata: languageName: node linkType: hard +"is-lower-case@npm:^2.0.2": + version: 2.0.2 + resolution: "is-lower-case@npm:2.0.2" + dependencies: + tslib: ^2.0.3 + checksum: ba57dd1201e15fd9b590654736afccf1b3b68e919f40c23ef13b00ebcc639b1d9c2f81fe86415bff3e8eccffec459786c9ac9dc8f3a19cfa4484206c411c1d7d + languageName: node + linkType: hard + "is-map@npm:^2.0.2": version: 2.0.2 resolution: "is-map@npm:2.0.2" @@ -23636,6 +25693,15 @@ __metadata: languageName: node linkType: hard +"is-relative@npm:^1.0.0": + version: 1.0.0 + resolution: "is-relative@npm:1.0.0" + dependencies: + is-unc-path: ^1.0.0 + checksum: 3271a0df109302ef5e14a29dcd5d23d9788e15ade91a40b942b035827ffbb59f7ce9ff82d036ea798541a52913cbf9d2d0b66456340887b51f3542d57b5a4c05 + languageName: node + linkType: hard + "is-retry-allowed@npm:^1.0.0": version: 1.2.0 resolution: "is-retry-allowed@npm:1.2.0" @@ -23727,6 +25793,15 @@ __metadata: languageName: node linkType: hard +"is-unc-path@npm:^1.0.0": + version: 1.0.0 + resolution: "is-unc-path@npm:1.0.0" + dependencies: + unc-path-regex: ^0.1.2 + checksum: e8abfde203f7409f5b03a5f1f8636e3a41e78b983702ef49d9343eb608cdfe691429398e8815157519b987b739bcfbc73ae7cf4c8582b0ab66add5171088eab6 + languageName: node + linkType: hard + "is-unicode-supported@npm:^0.1.0": version: 0.1.0 resolution: "is-unicode-supported@npm:0.1.0" @@ -23743,6 +25818,15 @@ __metadata: languageName: node linkType: hard +"is-upper-case@npm:^2.0.2": + version: 2.0.2 + resolution: "is-upper-case@npm:2.0.2" + dependencies: + tslib: ^2.0.3 + checksum: cf4fd43c00c2e72cd5cff911923070b89f0933b464941bd782e2315385f80b5a5acd772db3b796542e5e3cfed735f4dffd88c54d62db1ebfc5c3daa7b1af2bc6 + languageName: node + linkType: hard + "is-utf8@npm:^0.2.0": version: 0.2.1 resolution: "is-utf8@npm:0.2.1" @@ -23780,7 +25864,7 @@ __metadata: languageName: node linkType: hard -"is-windows@npm:^1.0.0, is-windows@npm:^1.0.2": +"is-windows@npm:^1.0.0, is-windows@npm:^1.0.1, is-windows@npm:^1.0.2": version: 1.0.2 resolution: "is-windows@npm:1.0.2" checksum: 438b7e52656fe3b9b293b180defb4e448088e7023a523ec21a91a80b9ff8cdb3377ddb5b6e60f7c7de4fa8b63ab56e121b6705fe081b3cf1b828b0a380009ad7 @@ -23895,6 +25979,15 @@ __metadata: languageName: node linkType: hard +"isomorphic-ws@npm:5.0.0, isomorphic-ws@npm:^5.0.0": + version: 5.0.0 + resolution: "isomorphic-ws@npm:5.0.0" + peerDependencies: + ws: "*" + checksum: e20eb2aee09ba96247465fda40c6d22c1153394c0144fa34fe6609f341af4c8c564f60ea3ba762335a7a9c306809349f9b863c8beedf2beea09b299834ad5398 + languageName: node + linkType: hard + "isstream@npm:~0.1.2": version: 0.1.2 resolution: "isstream@npm:0.1.2" @@ -24152,6 +26245,15 @@ __metadata: languageName: node linkType: hard +"jiti@npm:^1.17.1, jiti@npm:^1.18.2": + version: 1.19.3 + resolution: "jiti@npm:1.19.3" + bin: + jiti: bin/jiti.js + checksum: de3dacdfe30948d96b69712b04cc28127c17f43d5233a5aa069933e04ac4c9aaf265bef4cdf2b0c2a6f5af236a58aea9bfea83e8e289e2490802bdff7f99bff7 + languageName: node + linkType: hard + "jiti@npm:^1.17.2": version: 1.18.2 resolution: "jiti@npm:1.18.2" @@ -24171,15 +26273,15 @@ __metadata: linkType: hard "joi@npm:^17.7.0": - version: 17.9.2 - resolution: "joi@npm:17.9.2" + version: 17.10.0 + resolution: "joi@npm:17.10.0" dependencies: "@hapi/hoek": ^9.0.0 "@hapi/topo": ^5.0.0 "@sideway/address": ^4.1.3 "@sideway/formula": ^3.0.1 "@sideway/pinpoint": ^2.0.0 - checksum: 8c3709849293411c524e5a679dba7b42598a29a663478941767b8d5b06288611dece58803c468a2c7320cc2429a3e71e3d94337fe47aefcf6c22174dbd90b601 + checksum: 1a5a0e14e93f40d76e43409348bed222e9d3d6b4547a780a29d1a325e7c9aed820d725ac3ce5826f7a0675979c5fb4bd7a0c7d74219ed3eac83af06c148ed321 languageName: node linkType: hard @@ -24274,6 +26376,15 @@ __metadata: languageName: node linkType: hard +"js-tiktoken@npm:^1.0.7": + version: 1.0.7 + resolution: "js-tiktoken@npm:1.0.7" + dependencies: + base64-js: ^1.5.1 + checksum: 4856641fed816e618c8a693db0a5478995c598914dec2ba9ccd69719a88a14756d5aec2eed0fba7a4999e603b277ba9a58fd7b2af98e8b638b39b436bbfb7060 + languageName: node + linkType: hard + "js-tokens@npm:^3.0.0 || ^4.0.0, js-tokens@npm:^4.0.0": version: 4.0.0 resolution: "js-tokens@npm:4.0.0" @@ -24281,7 +26392,7 @@ __metadata: languageName: node linkType: hard -"js-yaml@npm:=4.1.0, js-yaml@npm:^4.1.0": +"js-yaml@npm:=4.1.0, js-yaml@npm:^4.0.0, js-yaml@npm:^4.1.0": version: 4.1.0 resolution: "js-yaml@npm:4.1.0" dependencies: @@ -24471,6 +26582,15 @@ __metadata: languageName: node linkType: hard +"json-stable-stringify@npm:^1.0.1": + version: 1.0.2 + resolution: "json-stable-stringify@npm:1.0.2" + dependencies: + jsonify: ^0.0.1 + checksum: ec10863493fb728481ed7576551382768a173d5b884758db530def00523b862083a3fd70fee24b39e2f47f5f502e22f9a1489dd66da3535b63bf6241dbfca800 + languageName: node + linkType: hard + "json-stringify-safe@npm:~5.0.1": version: 5.0.1 resolution: "json-stringify-safe@npm:5.0.1" @@ -24478,6 +26598,16 @@ __metadata: languageName: node linkType: hard +"json-to-pretty-yaml@npm:^1.2.2": + version: 1.2.2 + resolution: "json-to-pretty-yaml@npm:1.2.2" + dependencies: + remedial: ^1.0.7 + remove-trailing-spaces: ^1.0.6 + checksum: 4b78480f426e176e5fdac073e05877683bb026f1175deb52d0941b992f9c91a58a812c020f00aa67ba1fc7cadb220539a264146f222e48a48c8bb2a0931cac9b + languageName: node + linkType: hard + "json5@npm:^1.0.1": version: 1.0.2 resolution: "json5@npm:1.0.2" @@ -24498,6 +26628,15 @@ __metadata: languageName: node linkType: hard +"json5@npm:^2.2.3": + version: 2.2.3 + resolution: "json5@npm:2.2.3" + bin: + json5: lib/cli.js + checksum: 2a7436a93393830bce797d4626275152e37e877b265e94ca69c99e3d20c2b9dab021279146a39cdb700e71b2dd32a4cebd1514cd57cee102b1af906ce5040349 + languageName: node + linkType: hard + "jsonc-parser@npm:^3.2.0": version: 3.2.0 resolution: "jsonc-parser@npm:3.2.0" @@ -24543,6 +26682,20 @@ __metadata: languageName: node linkType: hard +"jsonify@npm:^0.0.1": + version: 0.0.1 + resolution: "jsonify@npm:0.0.1" + checksum: 027287e1c0294fce15f18c0ff990cfc2318e7f01fb76515f784d5cd0784abfec6fc5c2355c3a2f2cb0ad7f4aa2f5b74ebbfe4e80476c35b2d13cabdb572e1134 + languageName: node + linkType: hard + +"jsonpointer@npm:^5.0.1": + version: 5.0.1 + resolution: "jsonpointer@npm:5.0.1" + checksum: 0b40f712900ad0c846681ea2db23b6684b9d5eedf55807b4708c656f5894b63507d0e28ae10aa1bddbea551241035afe62b6df0800fc94c2e2806a7f3adecd7c + languageName: node + linkType: hard + "jsonwebtoken@npm:^8.5.1": version: 8.5.1 resolution: "jsonwebtoken@npm:8.5.1" @@ -24762,6 +26915,268 @@ __metadata: languageName: node linkType: hard +"langchain@npm:^0.0.131": + version: 0.0.131 + resolution: "langchain@npm:0.0.131" + dependencies: + "@anthropic-ai/sdk": ^0.5.7 + ansi-styles: ^5.0.0 + binary-extensions: ^2.2.0 + camelcase: 6 + decamelize: ^1.2.0 + expr-eval: ^2.0.2 + flat: ^5.0.2 + js-tiktoken: ^1.0.7 + js-yaml: ^4.1.0 + jsonpointer: ^5.0.1 + langsmith: ~0.0.16 + ml-distance: ^4.0.0 + object-hash: ^3.0.0 + openai: ^3.3.0 + openapi-types: ^12.1.3 + p-queue: ^6.6.2 + p-retry: 4 + uuid: ^9.0.0 + yaml: ^2.2.1 + zod: ^3.21.4 + zod-to-json-schema: ^3.20.4 + peerDependencies: + "@aws-crypto/sha256-js": ^5.0.0 + "@aws-sdk/client-dynamodb": ^3.310.0 + "@aws-sdk/client-kendra": ^3.352.0 + "@aws-sdk/client-lambda": ^3.310.0 + "@aws-sdk/client-s3": ^3.310.0 + "@aws-sdk/client-sagemaker-runtime": ^3.310.0 + "@aws-sdk/client-sfn": ^3.310.0 + "@aws-sdk/credential-provider-node": ^3.388.0 + "@aws-sdk/protocol-http": ^3.374.0 + "@aws-sdk/signature-v4": ^3.374.0 + "@azure/storage-blob": ^12.15.0 + "@clickhouse/client": ^0.0.14 + "@elastic/elasticsearch": ^8.4.0 + "@getmetal/metal-sdk": "*" + "@getzep/zep-js": ^0.6.3 + "@gomomento/sdk": ^1.23.0 + "@google-ai/generativelanguage": ^0.2.1 + "@google-cloud/storage": ^6.10.1 + "@huggingface/inference": ^1.5.1 + "@mozilla/readability": "*" + "@notionhq/client": ^2.2.5 + "@opensearch-project/opensearch": "*" + "@pinecone-database/pinecone": "*" + "@planetscale/database": ^1.8.0 + "@qdrant/js-client-rest": ^1.2.0 + "@raycast/api": ^1.55.2 + "@supabase/postgrest-js": ^1.1.1 + "@supabase/supabase-js": ^2.10.0 + "@tensorflow-models/universal-sentence-encoder": "*" + "@tensorflow/tfjs-converter": "*" + "@tensorflow/tfjs-core": "*" + "@tigrisdata/vector": ^1.1.0 + "@upstash/redis": ^1.20.6 + "@xata.io/client": ^0.25.1 + "@zilliz/milvus2-sdk-node": ">=2.2.7" + apify-client: ^2.7.1 + axios: "*" + cheerio: ^1.0.0-rc.12 + chromadb: ^1.5.3 + cohere-ai: ^5.0.2 + d3-dsv: ^2.0.0 + epub2: ^3.0.1 + faiss-node: ^0.3.0 + firebase-admin: ^11.9.0 + google-auth-library: ^8.9.0 + hnswlib-node: ^1.4.2 + html-to-text: ^9.0.5 + ignore: ^5.2.0 + ioredis: ^5.3.2 + jsdom: "*" + mammoth: "*" + mongodb: ^5.2.0 + mysql2: ^3.3.3 + notion-to-md: ^3.1.0 + pdf-parse: 1.1.1 + peggy: ^3.0.2 + pg: ^8.11.0 + pg-copy-streams: ^6.0.5 + pickleparser: ^0.1.0 + playwright: ^1.32.1 + puppeteer: ^19.7.2 + redis: ^4.6.4 + replicate: ^0.12.3 + sonix-speech-recognition: ^2.1.1 + srt-parser-2: ^1.2.2 + typeorm: ^0.3.12 + typesense: ^1.5.3 + usearch: ^1.1.1 + vectordb: ^0.1.4 + weaviate-ts-client: ^1.4.0 + youtube-transcript: ^1.0.6 + youtubei.js: ^5.8.0 + peerDependenciesMeta: + "@aws-crypto/sha256-js": + optional: true + "@aws-sdk/client-dynamodb": + optional: true + "@aws-sdk/client-kendra": + optional: true + "@aws-sdk/client-lambda": + optional: true + "@aws-sdk/client-s3": + optional: true + "@aws-sdk/client-sagemaker-runtime": + optional: true + "@aws-sdk/client-sfn": + optional: true + "@aws-sdk/credential-provider-node": + optional: true + "@aws-sdk/protocol-http": + optional: true + "@aws-sdk/signature-v4": + optional: true + "@azure/storage-blob": + optional: true + "@clickhouse/client": + optional: true + "@elastic/elasticsearch": + optional: true + "@getmetal/metal-sdk": + optional: true + "@getzep/zep-js": + optional: true + "@gomomento/sdk": + optional: true + "@google-ai/generativelanguage": + optional: true + "@google-cloud/storage": + optional: true + "@huggingface/inference": + optional: true + "@mozilla/readability": + optional: true + "@notionhq/client": + optional: true + "@opensearch-project/opensearch": + optional: true + "@pinecone-database/pinecone": + optional: true + "@planetscale/database": + optional: true + "@qdrant/js-client-rest": + optional: true + "@raycast/api": + optional: true + "@supabase/postgrest-js": + optional: true + "@supabase/supabase-js": + optional: true + "@tensorflow-models/universal-sentence-encoder": + optional: true + "@tensorflow/tfjs-converter": + optional: true + "@tensorflow/tfjs-core": + optional: true + "@tigrisdata/vector": + optional: true + "@upstash/redis": + optional: true + "@xata.io/client": + optional: true + "@zilliz/milvus2-sdk-node": + optional: true + apify-client: + optional: true + axios: + optional: true + cheerio: + optional: true + chromadb: + optional: true + cohere-ai: + optional: true + d3-dsv: + optional: true + epub2: + optional: true + faiss-node: + optional: true + firebase-admin: + optional: true + google-auth-library: + optional: true + hnswlib-node: + optional: true + html-to-text: + optional: true + ignore: + optional: true + ioredis: + optional: true + jsdom: + optional: true + mammoth: + optional: true + mongodb: + optional: true + mysql2: + optional: true + notion-to-md: + optional: true + pdf-parse: + optional: true + peggy: + optional: true + pg: + optional: true + pg-copy-streams: + optional: true + pickleparser: + optional: true + playwright: + optional: true + puppeteer: + optional: true + redis: + optional: true + replicate: + optional: true + sonix-speech-recognition: + optional: true + srt-parser-2: + optional: true + typeorm: + optional: true + typesense: + optional: true + usearch: + optional: true + vectordb: + optional: true + weaviate-ts-client: + optional: true + youtube-transcript: + optional: true + youtubei.js: + optional: true + checksum: 106e798e365508f7b958bf11ebb71e644007c75868a685fa4ff81902134583cb8d065f444ef347b3ed336624f51690217c5af2e2475f884a8ecff9aa99660c6a + languageName: node + linkType: hard + +"langsmith@npm:~0.0.16": + version: 0.0.26 + resolution: "langsmith@npm:0.0.26" + dependencies: + "@types/uuid": ^9.0.1 + commander: ^10.0.1 + p-queue: ^6.6.2 + p-retry: 4 + uuid: ^9.0.0 + bin: + langsmith: dist/cli/main.cjs + checksum: 5b155ae09e6c0b09bdef25a2af93728bf994944d7a487a3943b69a0aa74a51ee3758cf145acebae1b2687b363aa8cf5fd99e147588fb1b4152ecb0e69ba62baf + languageName: node + linkType: hard + "language-subtag-registry@npm:~0.3.2": version: 0.3.21 resolution: "language-subtag-registry@npm:0.3.21" @@ -24798,6 +27213,13 @@ __metadata: languageName: node linkType: hard +"leac@npm:^0.6.0": + version: 0.6.0 + resolution: "leac@npm:0.6.0" + checksum: a7a722cfc2ddfd6fb2620e5dee3ac8e9b0af4eb04325f3c8286a820de78becba3010a4d7026ff5189bb159eb7a851c3a1ac73e076eb0d54fcee0adaf695291ba + languageName: node + linkType: hard + "level-blobs@npm:^0.1.7": version: 0.1.7 resolution: "level-blobs@npm:0.1.7" @@ -24928,6 +27350,37 @@ __metadata: languageName: node linkType: hard +"libbase64@npm:1.2.1": + version: 1.2.1 + resolution: "libbase64@npm:1.2.1" + checksum: 891ed18fa0f0cd51a7a50d305dad03c3c35a077d46d23bd0a642a9710273294e331269ccf469a60e2191919f87fdf57c333d36bf4d33f176077c7cb3baf5c07c + languageName: node + linkType: hard + +"libmime@npm:5.2.0": + version: 5.2.0 + resolution: "libmime@npm:5.2.0" + dependencies: + encoding-japanese: 2.0.0 + iconv-lite: 0.6.3 + libbase64: 1.2.1 + libqp: 2.0.1 + checksum: 266cdd678be0fe07048016246185eee9b77660ed824d8dd78e514f7efdebfcf8b7a73869c6151f2ccee6ba60df8c95ab3541a805a5606f375843edafd66e09b1 + languageName: node + linkType: hard + +"libmime@npm:5.2.1": + version: 5.2.1 + resolution: "libmime@npm:5.2.1" + dependencies: + encoding-japanese: 2.0.0 + iconv-lite: 0.6.3 + libbase64: 1.2.1 + libqp: 2.0.1 + checksum: 52ce39d0c5f6dd94c769191924ad3b8d2a400ea1dd63d8351c67b6bb64f23cdc129f495e9e28e264b41b1b51489c4a58fc5469b51be2db07fa59d8037e10a618 + languageName: node + linkType: hard + "libphonenumber-js@npm:^1.10.12": version: 1.10.12 resolution: "libphonenumber-js@npm:1.10.12" @@ -24935,6 +27388,13 @@ __metadata: languageName: node linkType: hard +"libqp@npm:2.0.1": + version: 2.0.1 + resolution: "libqp@npm:2.0.1" + checksum: 04e3d32a1b89588ea50f73da39366b64dd9183d5b1fad3ac65e69abfac1f99693325da8cf6368b37836102dc13a67a1b9b5eab768c3e99246defaf460db96d94 + languageName: node + linkType: hard + "lie@npm:3.1.1": version: 3.1.1 resolution: "lie@npm:3.1.1" @@ -24989,7 +27449,7 @@ __metadata: languageName: node linkType: hard -"linkify-it@npm:^4.0.1": +"linkify-it@npm:4.0.1, linkify-it@npm:^4.0.1": version: 4.0.1 resolution: "linkify-it@npm:4.0.1" dependencies: @@ -25363,14 +27823,14 @@ __metadata: languageName: node linkType: hard -"lodash@npm:4.17.21, lodash@npm:^4.17.15, lodash@npm:^4.17.19, lodash@npm:^4.17.20, lodash@npm:^4.17.21": +"lodash@npm:4.17.21, lodash@npm:^4.17.15, lodash@npm:^4.17.19, lodash@npm:^4.17.20, lodash@npm:^4.17.21, lodash@npm:~4.17.0": version: 4.17.21 resolution: "lodash@npm:4.17.21" checksum: eb835a2e51d381e561e508ce932ea50a8e5a68f4ebdd771ea240d3048244a8d13658acbd502cd4829768c56f2e16bdd4340b9ea141297d472517b83868e677f7 languageName: node linkType: hard -"log-symbols@npm:^4.1.0": +"log-symbols@npm:^4.0.0, log-symbols@npm:^4.1.0": version: 4.1.0 resolution: "log-symbols@npm:4.1.0" dependencies: @@ -25471,6 +27931,15 @@ __metadata: languageName: node linkType: hard +"lower-case-first@npm:^2.0.2": + version: 2.0.2 + resolution: "lower-case-first@npm:2.0.2" + dependencies: + tslib: ^2.0.3 + checksum: 33e3da1098ddda219ce125d4ab7a78a944972c0ee8872e95b6ccc35df8ad405284ab233b0ba4d72315ad1a06fe2f0d418ee4cba9ec1ef1c386dea78899fc8958 + languageName: node + linkType: hard + "lower-case@npm:^1.1.0, lower-case@npm:^1.1.1, lower-case@npm:^1.1.2": version: 1.1.4 resolution: "lower-case@npm:1.1.4" @@ -25692,6 +28161,34 @@ __metadata: languageName: node linkType: hard +"mailparser@npm:^3.6.5": + version: 3.6.5 + resolution: "mailparser@npm:3.6.5" + dependencies: + encoding-japanese: 2.0.0 + he: 1.2.0 + html-to-text: 9.0.5 + iconv-lite: 0.6.3 + libmime: 5.2.1 + linkify-it: 4.0.1 + mailsplit: 5.4.0 + nodemailer: 6.9.3 + tlds: 1.240.0 + checksum: 1f6e3a7a9f144e9ea7dc64256a310d3e5f182e32786cd0876e52fbeaf0abccecc11826b7e318a419b23dd1868bbaf893b0c0d3b4a36c66b8efa9ad0d57f9c7fa + languageName: node + linkType: hard + +"mailsplit@npm:5.4.0": + version: 5.4.0 + resolution: "mailsplit@npm:5.4.0" + dependencies: + libbase64: 1.2.1 + libmime: 5.2.0 + libqp: 2.0.1 + checksum: 2362d034558ea0ddc00a85e4229ce04b28a457f39d8014a5362fe8734051eae4de01110cb32efabec9abee1491dadcf47c7c7fa2ad2c60c18d23aad07634feda + languageName: node + linkType: hard + "make-dir@npm:^2.0.0, make-dir@npm:^2.1.0": version: 2.1.0 resolution: "make-dir@npm:2.1.0" @@ -25767,7 +28264,7 @@ __metadata: languageName: node linkType: hard -"map-cache@npm:^0.2.2": +"map-cache@npm:^0.2.0, map-cache@npm:^0.2.2": version: 0.2.2 resolution: "map-cache@npm:0.2.2" checksum: 3067cea54285c43848bb4539f978a15dedc63c03022abeec6ef05c8cb6829f920f13b94bcaf04142fc6a088318e564c4785704072910d120d55dbc2e0c421969 @@ -26188,6 +28685,18 @@ __metadata: languageName: node linkType: hard +"meros@npm:^1.2.1": + version: 1.3.0 + resolution: "meros@npm:1.3.0" + peerDependencies: + "@types/node": ">=13" + peerDependenciesMeta: + "@types/node": + optional: true + checksum: ea86c83fe9357d3eb2f5bad20909e12642c7bc8c10340d9bd0968b48f69ec453de14f7e5032d138ad04cb10d79b8c9fb3c9601bb515e8fbdf9bec4eed62994ad + languageName: node + linkType: hard + "methods@npm:^1.1.2, methods@npm:~1.1.2": version: 1.1.2 resolution: "methods@npm:1.1.2" @@ -26604,6 +29113,15 @@ __metadata: languageName: node linkType: hard +"minimatch@npm:^4.2.3": + version: 4.2.3 + resolution: "minimatch@npm:4.2.3" + dependencies: + brace-expansion: ^1.1.7 + checksum: 3392388e3ef7de7ae9a3a48d48a27a323934452f4af81b925dfbe85ce2dc07da855e3dbcc69229888be4e5118f6c0b79847d30f3e7c0e0017b25e423c11c0409 + languageName: node + linkType: hard + "minimatch@npm:^5.0.1": version: 5.1.6 resolution: "minimatch@npm:5.1.6" @@ -26834,6 +29352,52 @@ __metadata: languageName: node linkType: hard +"ml-array-mean@npm:^1.1.6": + version: 1.1.6 + resolution: "ml-array-mean@npm:1.1.6" + dependencies: + ml-array-sum: ^1.1.6 + checksum: 81999dac8bad3bf2dafb23a9bc71883879b9d55889e48d00b91dd4a2568957a6f5373632ae57324760d1e1d7d29ad45ab4ea7ae32de67ce144d57a21e36dd9c2 + languageName: node + linkType: hard + +"ml-array-sum@npm:^1.1.6": + version: 1.1.6 + resolution: "ml-array-sum@npm:1.1.6" + dependencies: + is-any-array: ^2.0.0 + checksum: 369dbb3681e3f8b0d0facba9fcfc981656dac49a80924859c3ed8f0a5880fb6db2d6e534f8b7b9c3cda59248152e61b27d6419d19c69539de7c3aa6aea3094eb + languageName: node + linkType: hard + +"ml-distance-euclidean@npm:^2.0.0": + version: 2.0.0 + resolution: "ml-distance-euclidean@npm:2.0.0" + checksum: e31f98a947ce6971c35d74e6d2521800f0d219efb34c78b20b5f52debd206008d52e677685c09839e6bab5d2ed233aa009314236e4e548d5fafb60f2f71e2b3e + languageName: node + linkType: hard + +"ml-distance@npm:^4.0.0": + version: 4.0.1 + resolution: "ml-distance@npm:4.0.1" + dependencies: + ml-array-mean: ^1.1.6 + ml-distance-euclidean: ^2.0.0 + ml-tree-similarity: ^1.0.0 + checksum: 21ea014064eb7795c6c8c16e76bb834cba73f9f1ee2f761a3c3c34536f70bd6299b044dd05c495c533f5bdfea7401011dd4bdd159545ef69f5a021f5be4c77a2 + languageName: node + linkType: hard + +"ml-tree-similarity@npm:^1.0.0": + version: 1.0.0 + resolution: "ml-tree-similarity@npm:1.0.0" + dependencies: + binary-search: ^1.3.5 + num-sort: ^2.0.0 + checksum: f99e217dc94acf75c089469dc3c278f388146e43c82212160b6b75daa14309902f84eb0a00c67d502fc79dc171cf15a33d392326e024b2e89881adc585d15513 + languageName: node + linkType: hard + "mlly@npm:^1.2.0": version: 1.2.1 resolution: "mlly@npm:1.2.1" @@ -27771,6 +30335,13 @@ __metadata: languageName: node linkType: hard +"node-releases@npm:^2.0.13": + version: 2.0.13 + resolution: "node-releases@npm:2.0.13" + checksum: 17ec8f315dba62710cae71a8dad3cd0288ba943d2ece43504b3b1aa8625bf138637798ab470b1d9035b0545996f63000a8a926e0f6d35d0996424f8b6d36dda3 + languageName: node + linkType: hard + "node-releases@npm:^2.0.2": version: 2.0.2 resolution: "node-releases@npm:2.0.2" @@ -27796,6 +30367,13 @@ __metadata: languageName: node linkType: hard +"nodemailer@npm:6.9.3": + version: 6.9.3 + resolution: "nodemailer@npm:6.9.3" + checksum: 3bea8316652c0578515d9146d2f24660e4855807520153f061d39af76b440a4f61b4e70f10fed35f8f12f115f6aea1aeb483ea7ba0337c0e3e675f117c41c611 + languageName: node + linkType: hard + "nodemailer@npm:^6.7.8": version: 6.7.8 resolution: "nodemailer@npm:6.7.8" @@ -27947,6 +30525,20 @@ __metadata: languageName: node linkType: hard +"nullthrows@npm:^1.1.1": + version: 1.1.1 + resolution: "nullthrows@npm:1.1.1" + checksum: 10806b92121253eb1b08ecf707d92480f5331ba8ae5b23fa3eb0548ad24196eb797ed47606153006568a5733ea9e528a3579f21421f7828e09e7756f4bdd386f + languageName: node + linkType: hard + +"num-sort@npm:^2.0.0": + version: 2.1.0 + resolution: "num-sort@npm:2.1.0" + checksum: 5a80cd0456c8847f71fb80ad3c3596714cebede76de585aa4fed2b9a4fb0907631edca1f7bb31c24dbb9928b66db3d03059994cc365d2ae011b80ddddac28f6e + languageName: node + linkType: hard + "num2fraction@npm:^1.2.2": version: 1.2.2 resolution: "num2fraction@npm:1.2.2" @@ -28311,6 +30903,16 @@ __metadata: languageName: node linkType: hard +"openai@npm:^3.3.0": + version: 3.3.0 + resolution: "openai@npm:3.3.0" + dependencies: + axios: ^0.26.0 + form-data: ^4.0.0 + checksum: 28ccff8c09b6f47828c9583bb3bafc38a8459c76ea10eb9e08ca880f65523c5a9cc6c5f3c7669dded6f4c93e7cf49dd5c4dbfd12732a0f958c923117740d677b + languageName: node + linkType: hard + "openapi-sampler@npm:^1.0.0-beta.14": version: 1.2.1 resolution: "openapi-sampler@npm:1.2.1" @@ -28331,6 +30933,13 @@ __metadata: languageName: node linkType: hard +"openapi-types@npm:^12.1.3": + version: 12.1.3 + resolution: "openapi-types@npm:12.1.3" + checksum: 7fa5547f87a58d2aa0eba6e91d396f42d7d31bc3ae140e61b5d60b47d2fd068b48776f42407d5a8da7280cf31195aa128c2fc285e8bb871d1105edee5647a0bb + languageName: node + linkType: hard + "opener@npm:^1.5.2": version: 1.5.2 resolution: "opener@npm:1.5.2" @@ -28475,6 +31084,13 @@ __metadata: languageName: node linkType: hard +"p-cancelable@npm:^2.0.0": + version: 2.1.1 + resolution: "p-cancelable@npm:2.1.1" + checksum: 3dba12b4fb4a1e3e34524535c7858fc82381bbbd0f247cc32dedc4018592a3950ce66b106d0880b4ec4c2d8d6576f98ca885dc1d7d0f274d1370be20e9523ddf + languageName: node + linkType: hard + "p-cancelable@npm:^3.0.0": version: 3.0.0 resolution: "p-cancelable@npm:3.0.0" @@ -28514,6 +31130,15 @@ __metadata: languageName: node linkType: hard +"p-limit@npm:3.1.0, p-limit@npm:^3.0.2": + version: 3.1.0 + resolution: "p-limit@npm:3.1.0" + dependencies: + yocto-queue: ^0.1.0 + checksum: 7c3690c4dbf62ef625671e20b7bdf1cbc9534e83352a2780f165b0d3ceba21907e77ad63401708145ca4e25bfc51636588d89a8c0aeb715e6c37d1c066430360 + languageName: node + linkType: hard + "p-limit@npm:^1.1.0": version: 1.3.0 resolution: "p-limit@npm:1.3.0" @@ -28532,15 +31157,6 @@ __metadata: languageName: node linkType: hard -"p-limit@npm:^3.0.2": - version: 3.1.0 - resolution: "p-limit@npm:3.1.0" - dependencies: - yocto-queue: ^0.1.0 - checksum: 7c3690c4dbf62ef625671e20b7bdf1cbc9534e83352a2780f165b0d3ceba21907e77ad63401708145ca4e25bfc51636588d89a8c0aeb715e6c37d1c066430360 - languageName: node - linkType: hard - "p-limit@npm:^4.0.0": version: 4.0.0 resolution: "p-limit@npm:4.0.0" @@ -28611,6 +31227,26 @@ __metadata: languageName: node linkType: hard +"p-queue@npm:^6.6.2": + version: 6.6.2 + resolution: "p-queue@npm:6.6.2" + dependencies: + eventemitter3: ^4.0.4 + p-timeout: ^3.2.0 + checksum: 832642fcc4ab6477b43e6d7c30209ab10952969ed211c6d6f2931be8a4f9935e3578c72e8cce053dc34f2eb6941a408a2c516a54904e989851a1a209cf19761c + languageName: node + linkType: hard + +"p-retry@npm:4": + version: 4.6.2 + resolution: "p-retry@npm:4.6.2" + dependencies: + "@types/retry": 0.12.0 + retry: ^0.13.1 + checksum: 45c270bfddaffb4a895cea16cb760dcc72bdecb6cb45fef1971fa6ea2e91ddeafddefe01e444ac73e33b1b3d5d29fb0dd18a7effb294262437221ddc03ce0f2e + languageName: node + linkType: hard + "p-timeout@npm:^1.1.1": version: 1.2.1 resolution: "p-timeout@npm:1.2.1" @@ -28620,7 +31256,7 @@ __metadata: languageName: node linkType: hard -"p-timeout@npm:^3.1.0": +"p-timeout@npm:^3.1.0, p-timeout@npm:^3.2.0": version: 3.2.0 resolution: "p-timeout@npm:3.2.0" dependencies: @@ -28761,6 +31397,17 @@ __metadata: languageName: node linkType: hard +"parse-filepath@npm:^1.0.2": + version: 1.0.2 + resolution: "parse-filepath@npm:1.0.2" + dependencies: + is-absolute: ^1.0.0 + map-cache: ^0.2.0 + path-root: ^0.1.1 + checksum: 6794c3f38d3921f0f7cc63fb1fb0c4d04cd463356ad389c8ce6726d3c50793b9005971f4138975a6d7025526058d5e65e9bfe634d0765e84c4e2571152665a69 + languageName: node + linkType: hard + "parse-headers@npm:^2.0.0": version: 2.0.5 resolution: "parse-headers@npm:2.0.5" @@ -28838,6 +31485,16 @@ __metadata: languageName: node linkType: hard +"parseley@npm:^0.12.0": + version: 0.12.1 + resolution: "parseley@npm:0.12.1" + dependencies: + leac: ^0.6.0 + peberminta: ^0.9.0 + checksum: 147760bce6c4a4f8c62af021a84ced262f078f60a1119e6891eba69567a953e06295ad2c70e5e89892ad1d4af0126f0856742d657a19a29ebf58422cf3bfd4f3 + languageName: node + linkType: hard + "parseurl@npm:^1.3.3, parseurl@npm:~1.3.2, parseurl@npm:~1.3.3": version: 1.3.3 resolution: "parseurl@npm:1.3.3" @@ -28902,6 +31559,16 @@ __metadata: languageName: node linkType: hard +"path-case@npm:^3.0.4": + version: 3.0.4 + resolution: "path-case@npm:3.0.4" + dependencies: + dot-case: ^3.0.4 + tslib: ^2.0.3 + checksum: 61de0526222629f65038a66f63330dd22d5b54014ded6636283e1d15364da38b3cf29e4433aa3f9d8b0dba407ae2b059c23b0104a34ee789944b1bc1c5c7e06d + languageName: node + linkType: hard + "path-dirname@npm:^1.0.0": version: 1.0.2 resolution: "path-dirname@npm:1.0.2" @@ -28960,6 +31627,22 @@ __metadata: languageName: node linkType: hard +"path-root-regex@npm:^0.1.0": + version: 0.1.2 + resolution: "path-root-regex@npm:0.1.2" + checksum: dcd75d1f8e93faabe35a58e875b0f636839b3658ff2ad8c289463c40bc1a844debe0dab73c3398ef9dc8f6ec6c319720aff390cf4633763ddcf3cf4b1bbf7e8b + languageName: node + linkType: hard + +"path-root@npm:^0.1.1": + version: 0.1.1 + resolution: "path-root@npm:0.1.1" + dependencies: + path-root-regex: ^0.1.0 + checksum: ff88aebfc1c59ace510cc06703d67692a11530989920427625e52b66a303ca9b3d4059b0b7d0b2a73248d1ad29bcb342b8b786ec00592f3101d38a45fd3b2e08 + languageName: node + linkType: hard + "path-to-regexp@npm:0.1.7": version: 0.1.7 resolution: "path-to-regexp@npm:0.1.7" @@ -29037,6 +31720,13 @@ __metadata: languageName: node linkType: hard +"peberminta@npm:^0.9.0": + version: 0.9.0 + resolution: "peberminta@npm:0.9.0" + checksum: b983b68077269ca8a3327520a0a3f027fa930faa9fb3cb53bed1cb3847ebc0ed55db936d70b1745a756149911f5f450e898e87e25ab207f1b8b892bed48fb540 + languageName: node + linkType: hard + "performance-now@npm:^2.1.0": version: 2.1.0 resolution: "performance-now@npm:2.1.0" @@ -30237,7 +32927,7 @@ __metadata: languageName: node linkType: hard -"punycode@npm:^1.2.4": +"punycode@npm:^1.2.4, punycode@npm:^1.3.2": version: 1.4.1 resolution: "punycode@npm:1.4.1" checksum: fa6e698cb53db45e4628559e557ddaf554103d2a96a1d62892c8f4032cd3bc8871796cae9eabc1bc700e2b6677611521ce5bb1d9a27700086039965d0cf34518 @@ -30258,6 +32948,22 @@ __metadata: languageName: node linkType: hard +"pvtsutils@npm:^1.3.2": + version: 1.3.5 + resolution: "pvtsutils@npm:1.3.5" + dependencies: + tslib: ^2.6.1 + checksum: e734516b3cb26086c18bd9c012fefe818928a5073178842ab7e62885a090f1dd7bda9c7bb8cd317167502cb8ec86c0b1b0ccd71dac7ab469382a4518157b0d12 + languageName: node + linkType: hard + +"pvutils@npm:^1.1.3": + version: 1.1.3 + resolution: "pvutils@npm:1.1.3" + checksum: 2ee26a9e5176c348977d6ec00d8ee80bff62f51743b1c5fe8abeeb4c5d29d9959cdfe0ce146707a9e6801bce88190fed3002d720b072dc87d031c692820b44c9 + languageName: node + linkType: hard + "q@npm:2.0.x": version: 2.0.3 resolution: "q@npm:2.0.3" @@ -31412,6 +34118,15 @@ __metadata: languageName: node linkType: hard +"react-wrap-balancer@npm:^1.0.0": + version: 1.1.0 + resolution: "react-wrap-balancer@npm:1.1.0" + peerDependencies: + react: ">=16.8.0 || ^17.0.0 || ^18" + checksum: 576671cc1d38d1715995639981b96024c26809821f52868d7dfc1c48bbf23c4434eec6154fe79b2ad0050003d349ec500773a54d43cb026ad31cd10abfae9762 + languageName: node + linkType: hard + "react@npm:^18.2.0": version: 18.2.0 resolution: "react@npm:18.2.0" @@ -31816,6 +34531,17 @@ __metadata: languageName: node linkType: hard +"relay-runtime@npm:12.0.0": + version: 12.0.0 + resolution: "relay-runtime@npm:12.0.0" + dependencies: + "@babel/runtime": ^7.0.0 + fbjs: ^3.0.0 + invariant: ^2.2.4 + checksum: 51cdc8a5e04188982452ae4e7c6ac7d6375ee769130d24ce8e8f9cdd45aa7e11ecd68670f56e30dcee1b4974585e88ecce19e69a9868b80cda0db7678c3b8f0a + languageName: node + linkType: hard + "remark-external-links@npm:^8.0.0": version: 8.0.0 resolution: "remark-external-links@npm:8.0.0" @@ -31955,6 +34681,20 @@ __metadata: languageName: node linkType: hard +"remeda@npm:^1.24.1": + version: 1.25.2 + resolution: "remeda@npm:1.25.2" + checksum: f3a0659a3ef1942b2b0509b6052b521022051ac98a90fac883863df176d7ff44cab1d5df15505ee8bbfc4b33b4d0cef3619b64103579b42c1745d42f6bb09152 + languageName: node + linkType: hard + +"remedial@npm:^1.0.7": + version: 1.0.8 + resolution: "remedial@npm:1.0.8" + checksum: 12df7c55eb92501d7f33cfe5f5ad12be13bb6ac0c53f494aaa9963d5a5155bb8be2143e8d5e17afa1a500ef5dc71d13642920d35350f2a31b65a9778afab6869 + languageName: node + linkType: hard + "remove-markdown@npm:^0.5.0": version: 0.5.0 resolution: "remove-markdown@npm:0.5.0" @@ -31969,6 +34709,13 @@ __metadata: languageName: node linkType: hard +"remove-trailing-spaces@npm:^1.0.6": + version: 1.0.8 + resolution: "remove-trailing-spaces@npm:1.0.8" + checksum: 81f615c5cd8dd6a5e3017dcc9af598965575d176d42ef99cfd7b894529991f464e629fd68aba089f5c6bebf5bb8070a5eee56f3b621aba55e8ef524d6a4d4f69 + languageName: node + linkType: hard + "renderkid@npm:^2.0.4": version: 2.0.7 resolution: "renderkid@npm:2.0.7" @@ -32081,13 +34828,20 @@ __metadata: languageName: node linkType: hard -"resolve-alpn@npm:^1.2.0": +"resolve-alpn@npm:^1.0.0, resolve-alpn@npm:^1.2.0": version: 1.2.1 resolution: "resolve-alpn@npm:1.2.1" checksum: f558071fcb2c60b04054c99aebd572a2af97ef64128d59bef7ab73bd50d896a222a056de40ffc545b633d99b304c259ea9d0c06830d5c867c34f0bfa60b8eae0 languageName: node linkType: hard +"resolve-from@npm:5.0.0, resolve-from@npm:^5.0.0": + version: 5.0.0 + resolution: "resolve-from@npm:5.0.0" + checksum: 4ceeb9113e1b1372d0cd969f3468fa042daa1dd9527b1b6bb88acb6ab55d8b9cd65dbf18819f9f9ddf0db804990901dcdaade80a215e7b2c23daae38e64f5bdf + languageName: node + linkType: hard + "resolve-from@npm:^4.0.0": version: 4.0.0 resolution: "resolve-from@npm:4.0.0" @@ -32095,13 +34849,6 @@ __metadata: languageName: node linkType: hard -"resolve-from@npm:^5.0.0": - version: 5.0.0 - resolution: "resolve-from@npm:5.0.0" - checksum: 4ceeb9113e1b1372d0cd969f3468fa042daa1dd9527b1b6bb88acb6ab55d8b9cd65dbf18819f9f9ddf0db804990901dcdaade80a215e7b2c23daae38e64f5bdf - languageName: node - linkType: hard - "resolve-url-loader@npm:^5.0.0": version: 5.0.0 resolution: "resolve-url-loader@npm:5.0.0" @@ -32309,7 +35056,7 @@ __metadata: languageName: node linkType: hard -"rimraf@npm:^3.0.2": +"rimraf@npm:^3.0.0, rimraf@npm:^3.0.2": version: 3.0.2 resolution: "rimraf@npm:3.0.2" dependencies: @@ -32726,6 +35473,13 @@ __metadata: languageName: node linkType: hard +"scuid@npm:^1.1.0": + version: 1.1.0 + resolution: "scuid@npm:1.1.0" + checksum: cd094ac3718b0070a222f9a499b280c698fdea10268cc163fa244421099544c1766dd893fdee0e2a8eba5d53ab9d0bcb11067bedff166665030fa6fda25a096b + languageName: node + linkType: hard + "secp256k1@npm:^4.0.1": version: 4.0.3 resolution: "secp256k1@npm:4.0.3" @@ -32748,6 +35502,15 @@ __metadata: languageName: node linkType: hard +"selderee@npm:^0.11.0": + version: 0.11.0 + resolution: "selderee@npm:0.11.0" + dependencies: + parseley: ^0.12.0 + checksum: af8a68c1f4cde858152943b6fc9f2b7164c8fb1a1c9f01b44350dffd1f79783930d77a0ae33548a036816d17c8130eeb9d15f1db65c9262ca368ad3a0d750f66 + languageName: node + linkType: hard + "semver@npm:2 || 3 || 4 || 5, semver@npm:^5.4.1, semver@npm:^5.5.0, semver@npm:^5.6.0": version: 5.7.1 resolution: "semver@npm:5.7.1" @@ -32775,6 +35538,15 @@ __metadata: languageName: node linkType: hard +"semver@npm:^6.3.1": + version: 6.3.1 + resolution: "semver@npm:6.3.1" + bin: + semver: bin/semver.js + checksum: ae47d06de28836adb9d3e25f22a92943477371292d9b665fb023fae278d345d508ca1958232af086d85e0155aee22e313e100971898bbb8d5d89b8b1d4054ca2 + languageName: node + linkType: hard + "semver@npm:^7.2.1, semver@npm:^7.3.4, semver@npm:^7.3.5, semver@npm:^7.3.7": version: 7.3.7 resolution: "semver@npm:7.3.7" @@ -32857,6 +35629,17 @@ __metadata: languageName: node linkType: hard +"sentence-case@npm:^3.0.4": + version: 3.0.4 + resolution: "sentence-case@npm:3.0.4" + dependencies: + no-case: ^3.0.4 + tslib: ^2.0.3 + upper-case-first: ^2.0.2 + checksum: 3cfe6c0143e649132365695706702d7f729f484fa7b25f43435876efe7af2478243eefb052bacbcce10babf9319fd6b5b6bc59b94c80a1c819bcbb40651465d5 + languageName: node + linkType: hard + "seq-queue@npm:^0.0.5": version: 0.0.5 resolution: "seq-queue@npm:0.0.5" @@ -33106,6 +35889,13 @@ __metadata: languageName: node linkType: hard +"signedsource@npm:^1.0.0": + version: 1.0.0 + resolution: "signedsource@npm:1.0.0" + checksum: 64b2c8d7a48de9009cfd3aff62bb7c88abf3b8e0421f17ebb1d7f5ca9cc9c3ad10f5a1e3ae6cd804e4e6121c87b668202ae9057065f058ddfbf34ea65f63945d + languageName: node + linkType: hard + "simple-concat@npm:^1.0.0": version: 1.0.1 resolution: "simple-concat@npm:1.0.1" @@ -33227,6 +36017,16 @@ __metadata: languageName: node linkType: hard +"snake-case@npm:^3.0.4": + version: 3.0.4 + resolution: "snake-case@npm:3.0.4" + dependencies: + dot-case: ^3.0.4 + tslib: ^2.0.3 + checksum: 0a7a79900bbb36f8aaa922cf111702a3647ac6165736d5dc96d3ef367efc50465cac70c53cd172c382b022dac72ec91710608e5393de71f76d7142e6fd80e8a3 + languageName: node + linkType: hard + "snapdragon-node@npm:^2.0.1": version: 2.1.1 resolution: "snapdragon-node@npm:2.1.1" @@ -33476,6 +36276,15 @@ __metadata: languageName: node linkType: hard +"sponge-case@npm:^1.0.1": + version: 1.0.1 + resolution: "sponge-case@npm:1.0.1" + dependencies: + tslib: ^2.0.3 + checksum: 64f53d930f63c5a9e59d4cae487c1ffa87d25eab682833b01d572cc885e7e3fdbad4f03409a41f03ecb27f1f8959432253eb48332c7007c3388efddb24ba2792 + languageName: node + linkType: hard + "sprintf-js@npm:^1.1.2": version: 1.1.2 resolution: "sprintf-js@npm:1.1.2" @@ -33847,6 +36656,13 @@ __metadata: languageName: node linkType: hard +"string-env-interpolation@npm:^1.0.1": + version: 1.0.1 + resolution: "string-env-interpolation@npm:1.0.1" + checksum: d126329587f635bee65300e4451e7352b9b67e03daeb62f006ca84244cac12a1f6e45176b018653ba0c3ec3b5d980f9ca59d2eeed99cf799501cdaa7f871dc6f + languageName: node + linkType: hard + "string-hash@npm:^1.1.3": version: 1.1.3 resolution: "string-hash@npm:1.1.3" @@ -34476,6 +37292,15 @@ __metadata: languageName: node linkType: hard +"swap-case@npm:^2.0.2": + version: 2.0.2 + resolution: "swap-case@npm:2.0.2" + dependencies: + tslib: ^2.0.3 + checksum: 6e21c9e1b3cd5735eb2af679a99ec3efc78a14e3d4d5e3fd594e254b91cfd37185b3d1c6e41b22f53a2cdf5d1b963ce30c0fe8b78337e3fd43d0137084670a5f + languageName: node + linkType: hard + "swarm-js@npm:^0.1.40": version: 0.1.40 resolution: "swarm-js@npm:0.1.40" @@ -35069,6 +37894,33 @@ __metadata: languageName: node linkType: hard +"title-case@npm:^3.0.3": + version: 3.0.3 + resolution: "title-case@npm:3.0.3" + dependencies: + tslib: ^2.0.3 + checksum: e8b7ea006b53cf3208d278455d9f1e22c409459d7f9878da324fa3b18cc0aef8560924c19c744e870394a5d9cddfdbe029ebae9875909ee7f4fc562e7cbfc53e + languageName: node + linkType: hard + +"tlds@npm:1.240.0": + version: 1.240.0 + resolution: "tlds@npm:1.240.0" + bin: + tlds: bin.js + checksum: c4bfb0bbfde2f7533f79f7aa49d137e37e5c2f41680bb90a32f588386ac908e23132a61675e5e207e7cb06e7fcf77242b9f44040793de9dc4ca0193dcbcda923 + languageName: node + linkType: hard + +"tmp-promise@npm:^3.0.3": + version: 3.0.3 + resolution: "tmp-promise@npm:3.0.3" + dependencies: + tmp: ^0.2.0 + checksum: f854f5307dcee6455927ec3da9398f139897faf715c5c6dcee6d9471ae85136983ea06662eba2edf2533bdcb0fca66d16648e79e14381e30c7fb20be9c1aa62c + languageName: node + linkType: hard + "tmp@npm:^0.0.33": version: 0.0.33 resolution: "tmp@npm:0.0.33" @@ -35078,6 +37930,15 @@ __metadata: languageName: node linkType: hard +"tmp@npm:^0.2.0": + version: 0.2.1 + resolution: "tmp@npm:0.2.1" + dependencies: + rimraf: ^3.0.0 + checksum: 8b1214654182575124498c87ca986ac53dc76ff36e8f0e0b67139a8d221eaecfdec108c0e6ec54d76f49f1f72ab9325500b246f562b926f85bcdfca8bf35df9e + languageName: node + linkType: hard + "tmpl@npm:1.0.5": version: 1.0.5 resolution: "tmpl@npm:1.0.5" @@ -35311,6 +38172,13 @@ __metadata: languageName: node linkType: hard +"ts-log@npm:^2.2.3": + version: 2.2.5 + resolution: "ts-log@npm:2.2.5" + checksum: 28f78ab15b8555d56c089dbc243327d8ce4331219956242a29fc4cb3bad6bb0cb8234dd17a292381a1b1dba99a7e4849a2181b2e1a303e8247e9f4ca4e284f2d + languageName: node + linkType: hard + "ts-morph@npm:^13.0.2": version: 13.0.3 resolution: "ts-morph@npm:13.0.3" @@ -35481,6 +38349,20 @@ __metadata: languageName: node linkType: hard +"tslib@npm:^2.6.1": + version: 2.6.2 + resolution: "tslib@npm:2.6.2" + checksum: 329ea56123005922f39642318e3d1f0f8265d1e7fcb92c633e0809521da75eeaca28d2cf96d7248229deb40e5c19adf408259f4b9640afd20d13aecc1430f3ad + languageName: node + linkType: hard + +"tslib@npm:~2.5.0": + version: 2.5.3 + resolution: "tslib@npm:2.5.3" + checksum: 88902b309afaf83259131c1e13da1dceb0ad1682a213143a1346a649143924d78cf3760c448b84d796938fd76127183894f8d85cbb3bf9c4fddbfcc140c0003c + languageName: node + linkType: hard + "tslog@npm:^3.2.1": version: 3.3.3 resolution: "tslog@npm:3.3.3" @@ -35924,7 +38806,7 @@ __metadata: languageName: node linkType: hard -"ua-parser-js@npm:^1.0.33": +"ua-parser-js@npm:^1.0.33, ua-parser-js@npm:^1.0.35": version: 1.0.35 resolution: "ua-parser-js@npm:1.0.35" checksum: 02370d38a0c8b586f2503d1c3bbba5cbc0b97d407282f9023201a99e4c03eae4357a2800fdf50cf80d73ec25c0b0cc5bfbaa03975b0add4043d6e4c86712c9c1 @@ -35985,6 +38867,22 @@ __metadata: languageName: node linkType: hard +"unc-path-regex@npm:^0.1.2": + version: 0.1.2 + resolution: "unc-path-regex@npm:0.1.2" + checksum: a05fa2006bf4606051c10fc7968f08ce7b28fa646befafa282813aeb1ac1a56f65cb1b577ca7851af2726198d59475bb49b11776036257b843eaacee2860a4ec + languageName: node + linkType: hard + +"undici@npm:^5.12.0": + version: 5.23.0 + resolution: "undici@npm:5.23.0" + dependencies: + busboy: ^1.6.0 + checksum: 906ca4fb1d47163d2cee2ecbbc664a1d92508a2cdf1558146621109f525c983a83597910b36e6ba468240e95259be5939cea6babc99fc0c36360b16630f66784 + languageName: node + linkType: hard + "unfetch@npm:^4.2.0": version: 4.2.0 resolution: "unfetch@npm:4.2.0" @@ -36288,6 +39186,15 @@ __metadata: languageName: node linkType: hard +"unixify@npm:^1.0.0": + version: 1.0.0 + resolution: "unixify@npm:1.0.0" + dependencies: + normalize-path: ^2.1.1 + checksum: 3be30e48579fc6c7390bd59b4ab9e745fede0c164dfb7351cf710bd1dbef8484b1441186205af6bcb13b731c0c88caf9b33459f7bf8c89e79c046e656ae433f0 + languageName: node + linkType: hard + "unpipe@npm:1.0.0, unpipe@npm:~1.0.0": version: 1.0.0 resolution: "unpipe@npm:1.0.0" @@ -36321,6 +39228,20 @@ __metadata: languageName: node linkType: hard +"update-browserslist-db@npm:^1.0.11": + version: 1.0.11 + resolution: "update-browserslist-db@npm:1.0.11" + dependencies: + escalade: ^3.1.1 + picocolors: ^1.0.0 + peerDependencies: + browserslist: ">= 4.21.0" + bin: + update-browserslist-db: cli.js + checksum: b98327518f9a345c7cad5437afae4d2ae7d865f9779554baf2a200fdf4bac4969076b679b1115434bd6557376bdd37ca7583d0f9b8f8e302d7d4cc1e91b5f231 + languageName: node + linkType: hard + "update-browserslist-db@npm:^1.0.4": version: 1.0.4 resolution: "update-browserslist-db@npm:1.0.4" @@ -36379,6 +39300,15 @@ __metadata: languageName: node linkType: hard +"upper-case-first@npm:^2.0.2": + version: 2.0.2 + resolution: "upper-case-first@npm:2.0.2" + dependencies: + tslib: ^2.0.3 + checksum: 4487db4701effe3b54ced4b3e4aa4d9ab06c548f97244d04aafb642eedf96a76d5a03cf5f38f10f415531d5792d1ac6e1b50f2a76984dc6964ad530f12876409 + languageName: node + linkType: hard + "upper-case@npm:^1.0.3, upper-case@npm:^1.1.0, upper-case@npm:^1.1.1": version: 1.1.3 resolution: "upper-case@npm:1.1.3" @@ -36386,6 +39316,15 @@ __metadata: languageName: node linkType: hard +"upper-case@npm:^2.0.2": + version: 2.0.2 + resolution: "upper-case@npm:2.0.2" + dependencies: + tslib: ^2.0.3 + checksum: 508723a2b03ab90cf1d6b7e0397513980fab821cbe79c87341d0e96cedefadf0d85f9d71eac24ab23f526a041d585a575cfca120a9f920e44eb4f8a7cf89121c + languageName: node + linkType: hard + "uri-js@npm:^4.2.2": version: 4.4.1 resolution: "uri-js@npm:4.4.1" @@ -36469,6 +39408,20 @@ __metadata: languageName: node linkType: hard +"urlpattern-polyfill@npm:^8.0.0": + version: 8.0.2 + resolution: "urlpattern-polyfill@npm:8.0.2" + checksum: d2cc0905a613c77e330c426e8697ee522dd9640eda79ac51160a0f6350e103f09b8c327623880989f8ba7325e8d95267b745aa280fdcc2aead80b023e16bd09d + languageName: node + linkType: hard + +"urlpattern-polyfill@npm:^9.0.0": + version: 9.0.0 + resolution: "urlpattern-polyfill@npm:9.0.0" + checksum: d3658b78a10eaee514c464f5a4336c408c70cf01e9b915cb1df5892b3c49003d1ed4042dc72d1b18493b8b847883e84fbf2bf358abb5dff84b2725d5e8463bcb + languageName: node + linkType: hard + "use-callback-ref@npm:^1.2.3": version: 1.2.5 resolution: "use-callback-ref@npm:1.2.5" @@ -36753,6 +39706,13 @@ __metadata: languageName: node linkType: hard +"value-or-promise@npm:^1.0.11, value-or-promise@npm:^1.0.12": + version: 1.0.12 + resolution: "value-or-promise@npm:1.0.12" + checksum: f53a66c75b7447c90bbaf946a757ca09c094629cb80ba742f59c980ec3a69be0a385a0e75505dedb4e757862f1a994ca4beaf083a831f24d3ffb3d4bb18cd1e1 + languageName: node + linkType: hard + "varint@npm:^5.0.0": version: 5.0.2 resolution: "varint@npm:5.0.2" @@ -37153,6 +40113,20 @@ __metadata: languageName: node linkType: hard +"web-streams-polyfill@npm:4.0.0-beta.3": + version: 4.0.0-beta.3 + resolution: "web-streams-polyfill@npm:4.0.0-beta.3" + checksum: dfec1fbf52b9140e4183a941e380487b6c3d5d3838dd1259be81506c1c9f2abfcf5aeb670aeeecfd9dff4271a6d8fef931b193c7bedfb42542a3b05ff36c0d16 + languageName: node + linkType: hard + +"web-streams-polyfill@npm:^3.2.0, web-streams-polyfill@npm:^3.2.1": + version: 3.2.1 + resolution: "web-streams-polyfill@npm:3.2.1" + checksum: b119c78574b6d65935e35098c2afdcd752b84268e18746606af149e3c424e15621b6f1ff0b42b2676dc012fc4f0d313f964b41a4b5031e525faa03997457da02 + languageName: node + linkType: hard + "web3-bzz@npm:1.7.5": version: 1.7.5 resolution: "web3-bzz@npm:1.7.5" @@ -37425,6 +40399,19 @@ __metadata: languageName: node linkType: hard +"webcrypto-core@npm:^1.7.7": + version: 1.7.7 + resolution: "webcrypto-core@npm:1.7.7" + dependencies: + "@peculiar/asn1-schema": ^2.3.6 + "@peculiar/json-schema": ^1.1.12 + asn1js: ^3.0.1 + pvtsutils: ^1.3.2 + tslib: ^2.4.0 + checksum: 1dc5aedb250372dd95e175a671b990ae50e36974f99c4efc85d88e6528c1bc52dd964d44a41b68043c21fb26aabfe8aad4f05a1c39ca28d61de5ca7388413d52 + languageName: node + linkType: hard + "webidl-conversions@npm:^3.0.0": version: 3.0.1 resolution: "webidl-conversions@npm:3.0.1" @@ -37885,7 +40872,7 @@ __metadata: languageName: node linkType: hard -"wrap-ansi@npm:^6.2.0": +"wrap-ansi@npm:^6.0.1, wrap-ansi@npm:^6.2.0": version: 6.2.0 resolution: "wrap-ansi@npm:6.2.0" dependencies: @@ -37926,6 +40913,21 @@ __metadata: languageName: node linkType: hard +"ws@npm:8.13.0, ws@npm:^8.12.0, ws@npm:^8.13.0": + version: 8.13.0 + resolution: "ws@npm:8.13.0" + peerDependencies: + bufferutil: ^4.0.1 + utf-8-validate: ">=5.0.2" + peerDependenciesMeta: + bufferutil: + optional: true + utf-8-validate: + optional: true + checksum: 53e991bbf928faf5dc6efac9b8eb9ab6497c69feeb94f963d648b7a3530a720b19ec2e0ec037344257e05a4f35bd9ad04d9de6f289615ffb133282031b18c61c + languageName: node + linkType: hard + "ws@npm:^3.0.0": version: 3.3.3 resolution: "ws@npm:3.3.3" @@ -37967,21 +40969,6 @@ __metadata: languageName: node linkType: hard -"ws@npm:^8.13.0": - version: 8.13.0 - resolution: "ws@npm:8.13.0" - peerDependencies: - bufferutil: ^4.0.1 - utf-8-validate: ">=5.0.2" - peerDependenciesMeta: - bufferutil: - optional: true - utf-8-validate: - optional: true - checksum: 53e991bbf928faf5dc6efac9b8eb9ab6497c69feeb94f963d648b7a3530a720b19ec2e0ec037344257e05a4f35bd9ad04d9de6f289615ffb133282031b18c61c - languageName: node - linkType: hard - "ws@npm:^8.2.3": version: 8.8.0 resolution: "ws@npm:8.8.0" @@ -38236,6 +41223,13 @@ __metadata: languageName: node linkType: hard +"yaml-ast-parser@npm:^0.0.43": + version: 0.0.43 + resolution: "yaml-ast-parser@npm:0.0.43" + checksum: fb5df4c067b6ccbd00953a46faf6ff27f0e290d623c712dc41f330251118f110e22cfd184bbff498bd969cbcda3cd27e0f9d0adb9e6d90eb60ccafc0d8e28077 + languageName: node + linkType: hard + "yaml@npm:2.0.0-1": version: 2.0.0-1 resolution: "yaml@npm:2.0.0-1" @@ -38250,13 +41244,20 @@ __metadata: languageName: node linkType: hard -"yaml@npm:^2.1.1": +"yaml@npm:^2.2.1": version: 2.3.1 resolution: "yaml@npm:2.3.1" checksum: 2c7bc9a7cd4c9f40d3b0b0a98e370781b68b8b7c4515720869aced2b00d92f5da1762b4ffa947f9e795d6cd6b19f410bd4d15fdd38aca7bd96df59bd9486fb54 languageName: node linkType: hard +"yaml@npm:^2.3.1": + version: 2.3.2 + resolution: "yaml@npm:2.3.2" + checksum: acd80cc24df12c808c6dec8a0176d404ef9e6f08ad8786f746ecc9d8974968c53c6e8a67fdfabcc5f99f3dc59b6bb0994b95646ff03d18e9b1dcd59eccc02146 + languageName: node + linkType: hard + "yargs-parser@npm:^18.1.2, yargs-parser@npm:^18.1.3": version: 18.1.3 resolution: "yargs-parser@npm:18.1.3" @@ -38322,6 +41323,21 @@ __metadata: languageName: node linkType: hard +"yargs@npm:^17.0.0": + version: 17.7.2 + resolution: "yargs@npm:17.7.2" + dependencies: + cliui: ^8.0.1 + escalade: ^3.1.1 + get-caller-file: ^2.0.5 + require-directory: ^2.1.1 + string-width: ^4.2.3 + y18n: ^5.0.5 + yargs-parser: ^21.1.1 + checksum: 73b572e863aa4a8cbef323dd911d79d193b772defd5a51aab0aca2d446655216f5002c42c5306033968193bdbf892a7a4c110b0d77954a7fdf563e653967b56a + languageName: node + linkType: hard + "yargs@npm:^17.3.1": version: 17.5.1 resolution: "yargs@npm:17.5.1" @@ -38448,7 +41464,16 @@ __metadata: languageName: node linkType: hard -"zod@npm:3.21.4, zod@npm:^3.21.4": +"zod-to-json-schema@npm:^3.20.4": + version: 3.21.4 + resolution: "zod-to-json-schema@npm:3.21.4" + peerDependencies: + zod: ^3.21.4 + checksum: 899c1f461fb6547c0b08a265c82040c250be9b88d3f408f2f3ff77a418fdfad7549077e589d418fccb312c1f6d555c3c7217b199cc9072762e1fab20716dd2a6 + languageName: node + linkType: hard + +"zod@npm:3.21.4": version: 3.21.4 resolution: "zod@npm:3.21.4" checksum: f185ba87342ff16f7a06686767c2b2a7af41110c7edf7c1974095d8db7a73792696bcb4a00853de0d2edeb34a5b2ea6a55871bc864227dace682a0a28de33e1f @@ -38462,6 +41487,13 @@ __metadata: languageName: node linkType: hard +"zod@npm:^3.21.4": + version: 3.22.2 + resolution: "zod@npm:3.22.2" + checksum: 231e2180c8eabb56e88680d80baff5cf6cbe6d64df3c44c50ebe52f73081ecd0229b1c7215b9552537f537a36d9e36afac2737ddd86dc14e3519bdbc777e82b9 + languageName: node + linkType: hard + "zustand@npm:^4.3.2": version: 4.3.6 resolution: "zustand@npm:4.3.6"