diff --git a/.env.appStore.example b/.env.appStore.example index 2719175e4a..1b51680e41 100644 --- a/.env.appStore.example +++ b/.env.appStore.example @@ -37,6 +37,7 @@ BASECAMP3_USER_AGENT= DAILY_API_KEY= DAILY_SCALE_PLAN='' +DAILY_WEBHOOK_SECRET='' # - GOOGLE CALENDAR/MEET/LOGIN # Needed to enable Google Calendar integration and Login with Google diff --git a/.env.example b/.env.example index 64a1bfcf77..95eddc71ac 100644 --- a/.env.example +++ b/.env.example @@ -196,6 +196,10 @@ EMAIL_SERVER_PORT=1025 # Make sure to run mailhog container manually or with `yarn dx` E2E_TEST_MAILHOG_ENABLED= +# Resend +# Send transactional email using resend +# RESEND_API_KEY= + # ********************************************************************************************************** # Set the following value to true if you wish to enable Team Impersonation @@ -266,7 +270,7 @@ CALCOM_WEBHOOK_SECRET="" CALCOM_WEBHOOK_HEADER_NAME="calcom-webhook-secret" CALCOM_CREDENTIAL_SYNC_ENDPOINT="" # Key should match on Cal.com and your application -# must be 32 bytes for AES256 encryption algorithm +# must be 24 bytes for AES256 encryption algorithm # You can use: `openssl rand -base64 24` to generate one CALCOM_APP_CREDENTIAL_ENCRYPTION_KEY="" @@ -290,3 +294,4 @@ E2E_TEST_OIDC_USER_PASSWORD= AB_TEST_BUCKET_PROBABILITY=50 # whether we redirect to the future/event-types from event-types or not APP_ROUTER_EVENT_TYPES_ENABLED=1 +APP_ROUTER_SETTINGS_ADMIN_ENABLED=1 \ No newline at end of file diff --git a/.github/actions/cache-build/action.yml b/.github/actions/cache-build/action.yml index 1ef35a7831..62bf25dd59 100644 --- a/.github/actions/cache-build/action.yml +++ b/.github/actions/cache-build/action.yml @@ -24,6 +24,8 @@ runs: **/.turbo/** **/dist/** key: ${{ runner.os }}-${{ env.cache-name }}-${{ env.key-1 }}-${{ env.key-2 }}-${{ env.key-3 }}-${{ env.key-4 }} - - run: yarn build + - run: | + export NODE_OPTIONS="--max_old_space_size=8192" + yarn build if: steps.cache-build.outputs.cache-hit != 'true' shell: bash diff --git a/.github/workflows/e2e.yml b/.github/workflows/e2e.yml index 0c084aea3c..aaa218103b 100644 --- a/.github/workflows/e2e.yml +++ b/.github/workflows/e2e.yml @@ -24,7 +24,7 @@ jobs: strategy: fail-fast: false matrix: - shard: [1, 2, 3, 4, 5] + shard: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] steps: - uses: actions/checkout@v3 - uses: ./.github/actions/dangerous-git-checkout diff --git a/README.md b/README.md index a617a65b1f..1af185f7a3 100644 --- a/README.md +++ b/README.md @@ -7,7 +7,7 @@

Cal.com (formerly Calendso)

- The open-source Calendly alternative. + The open-source Calendly successor.
Learn more »
@@ -50,7 +50,7 @@ # Scheduling infrastructure for absolutely everyone -The open source Calendly alternative. You are in charge +The open source Calendly successor. You are in charge of your own data, workflow, and appearance. Calendly and other scheduling tools are awesome. It made our lives massively easier. We're using it for business meetings, seminars, yoga classes, and even calls with our families. However, most tools are very limited in terms of control and customization. diff --git a/apps/api/lib/validations/event-type.ts b/apps/api/lib/validations/event-type.ts index 70823213bf..cbabad6dc4 100644 --- a/apps/api/lib/validations/event-type.ts +++ b/apps/api/lib/validations/event-type.ts @@ -60,6 +60,7 @@ export const schemaEventTypeBaseBodyParams = EventType.pick({ successRedirectUrl: true, locations: true, bookingLimits: true, + onlyShowFirstAvailableSlot: true, durationLimits: true, }) .merge( @@ -147,6 +148,7 @@ export const schemaEventTypeReadPublic = EventType.pick({ seatsShowAvailabilityCount: true, bookingFields: true, bookingLimits: true, + onlyShowFirstAvailableSlot: true, durationLimits: true, }).merge( z.object({ diff --git a/apps/api/pages/api/bookings/[id]/_auth-middleware.ts b/apps/api/pages/api/bookings/[id]/_auth-middleware.ts index c785ccc3be..0016de42e9 100644 --- a/apps/api/pages/api/bookings/[id]/_auth-middleware.ts +++ b/apps/api/pages/api/bookings/[id]/_auth-middleware.ts @@ -6,18 +6,44 @@ import { schemaQueryIdParseInt } from "~/lib/validations/shared/queryIdTransform async function authMiddleware(req: NextApiRequest) { const { userId, prisma, isAdmin, query } = req; + if (isAdmin) { + return; + } + const { id } = schemaQueryIdParseInt.parse(query); - const userWithBookings = await prisma.user.findUnique({ + const userWithBookingsAndTeamIds = await prisma.user.findUnique({ where: { id: userId }, - include: { bookings: true }, + include: { + bookings: true, + teams: { + select: { + teamId: true, + }, + }, + }, }); - if (!userWithBookings) throw new HttpError({ statusCode: 404, message: "User not found" }); + if (!userWithBookingsAndTeamIds) throw new HttpError({ statusCode: 404, message: "User not found" }); - const userBookingIds = userWithBookings.bookings.map((booking) => booking.id); + const userBookingIds = userWithBookingsAndTeamIds.bookings.map((booking) => booking.id); - if (!isAdmin && !userBookingIds.includes(id)) { - throw new HttpError({ statusCode: 401, message: "You are not authorized" }); + if (!userBookingIds.includes(id)) { + const teamBookings = await prisma.booking.findUnique({ + where: { + id: id, + eventType: { + team: { + id: { + in: userWithBookingsAndTeamIds.teams.map((team) => team.teamId), + }, + }, + }, + }, + }); + + if (!teamBookings) { + throw new HttpError({ statusCode: 401, message: "You are not authorized" }); + } } } diff --git a/apps/api/pages/api/slots/_get.ts b/apps/api/pages/api/slots/_get.ts index 6393bc79c1..61447e1751 100644 --- a/apps/api/pages/api/slots/_get.ts +++ b/apps/api/pages/api/slots/_get.ts @@ -1,5 +1,9 @@ +import timezone from "dayjs/plugin/timezone"; +import utc from "dayjs/plugin/utc"; import type { NextApiRequest, NextApiResponse } from "next"; +import dayjs from "@calcom/dayjs"; +import { isSupportedTimeZone } from "@calcom/lib/date-fns"; import { HttpError } from "@calcom/lib/http-error"; import { defaultResponder } from "@calcom/lib/server"; import { createContext } from "@calcom/trpc/server/createContext"; @@ -9,10 +13,34 @@ import { getAvailableSlots } from "@calcom/trpc/server/routers/viewer/slots/util import { TRPCError } from "@trpc/server"; import { getHTTPStatusCodeFromError } from "@trpc/server/http"; +// Apply plugins +dayjs.extend(utc); +dayjs.extend(timezone); + async function handler(req: NextApiRequest, res: NextApiResponse) { try { - const input = getScheduleSchema.parse(req.query); - return await getAvailableSlots({ ctx: await createContext({ req, res }), input }); + const { usernameList, ...rest } = req.query; + let slugs = usernameList; + if (!Array.isArray(usernameList)) { + slugs = usernameList ? [usernameList] : []; + } + const input = getScheduleSchema.parse({ usernameList: slugs, ...rest }); + const timeZoneSupported = input.timeZone ? isSupportedTimeZone(input.timeZone) : false; + const availableSlots = await getAvailableSlots({ ctx: await createContext({ req, res }), input }); + const slotsInProvidedTimeZone = timeZoneSupported + ? Object.keys(availableSlots.slots).reduce( + (acc: Record, date) => { + acc[date] = availableSlots.slots[date].map((slot) => ({ + ...slot, + time: dayjs(slot.time).tz(input.timeZone).format(), + })); + return acc; + }, + {} + ) + : availableSlots; + + return slotsInProvidedTimeZone; // eslint-disable-next-line @typescript-eslint/no-explicit-any } catch (cause) { if (cause instanceof TRPCError) { diff --git a/apps/storybook/.gitignore b/apps/storybook/.gitignore index 8c444bd2f4..5689902ae1 100644 --- a/apps/storybook/.gitignore +++ b/apps/storybook/.gitignore @@ -8,7 +8,9 @@ pnpm-debug.log* lerna-debug.log* node_modules -storybook-static +storybook-static/* +!storybook-static/favicon.ico +!storybook-static/sb-cover.jpg dist dist-ssr *.local diff --git a/apps/storybook/.storybook/main.js b/apps/storybook/.storybook/main.js deleted file mode 100644 index 9b4c7f600c..0000000000 --- a/apps/storybook/.storybook/main.js +++ /dev/null @@ -1,76 +0,0 @@ -const path = require("path"); - -module.exports = { - stories: [ - "../intro.stories.mdx", - "../../../packages/ui/components/**/*.stories.mdx", - "../../../packages/atoms/**/*.stories.mdx", - "../../../packages/features/**/*.stories.mdx", - "../../../packages/ui/components/**/*.stories.@(js|jsx|ts|tsx)", - ], - addons: [ - "@storybook/addon-links", - "@storybook/addon-essentials", - "@storybook/addon-interactions", - "storybook-addon-rtl-direction", - "storybook-react-i18next", - "storybook-addon-next", - "storybook-addon-next-router", - /*{ - name: "storybook-addon-next", - options: { - nextConfigPath: path.resolve(__dirname, "../../web/next.config.js"), - }, - },*/ - ], - framework: "@storybook/react", - core: { - builder: "webpack5", - }, - staticDirs: ["../public"], - webpackFinal: async (config, { configType }) => { - config.resolve.fallback = { - fs: false, - assert: false, - buffer: false, - console: false, - constants: false, - crypto: false, - domain: false, - events: false, - http: false, - https: false, - os: false, - path: false, - punycode: false, - process: false, - querystring: false, - stream: false, - string_decoder: false, - sys: false, - timers: false, - tty: false, - url: false, - util: false, - vm: false, - zlib: false, - }; - - config.module.rules.push({ - test: /\.css$/, - use: [ - "style-loader", - { - loader: "css-loader", - options: { - modules: true, // Enable modules to help you using className - }, - }, - ], - include: path.resolve(__dirname, "../src"), - }); - - return config; - }, - typescript: { reactDocgen: "react-docgen" }, -}; diff --git a/apps/storybook/.storybook/main.ts b/apps/storybook/.storybook/main.ts new file mode 100644 index 0000000000..bc68cb15c0 --- /dev/null +++ b/apps/storybook/.storybook/main.ts @@ -0,0 +1,96 @@ +import type { StorybookConfig } from "@storybook/nextjs"; +import path, { dirname, join } from "path"; + +const config: StorybookConfig = { + stories: [ + "../intro.stories.mdx", + "../../../packages/ui/components/**/*.stories.mdx", // legacy SB6 stories + "../../../packages/ui/components/**/*.stories.@(js|jsx|ts|tsx)", + "../../../packages/ui/components/**/*.docs.mdx", + "../../../packages/features/**/*.stories.@(js|jsx|ts|tsx)", + "../../../packages/features/**/*.docs.mdx", + "../../../packages/atoms/**/*.stories.@(js|jsx|ts|tsx)", + "../../../packages/atoms/**/*.docs.mdx", + ], + + addons: [ + getAbsolutePath("@storybook/addon-links"), + getAbsolutePath("@storybook/addon-essentials"), + getAbsolutePath("@storybook/addon-interactions"), + getAbsolutePath("storybook-addon-rtl-direction"), + getAbsolutePath("storybook-react-i18next"), + ], + + framework: { + name: getAbsolutePath("@storybook/nextjs") as "@storybook/nextjs", + + options: { + // builder: { + // fsCache: true, + // lazyCompilation: true, + // }, + }, + }, + + staticDirs: ["../public"], + + webpackFinal: async (config, { configType }) => { + config.resolve = config.resolve || {}; + config.resolve.fallback = { + fs: false, + assert: false, + buffer: false, + console: false, + constants: false, + crypto: false, + domain: false, + events: false, + http: false, + https: false, + os: false, + path: false, + punycode: false, + process: false, + querystring: false, + stream: false, + string_decoder: false, + sys: false, + timers: false, + tty: false, + url: false, + util: false, + vm: false, + zlib: false, + }; + + config.module = config.module || {}; + config.module.rules = config.module.rules || []; + config.module.rules.push({ + test: /\.css$/, + use: [ + "style-loader", + { + loader: "css-loader", + options: { + modules: true, // Enable modules to help you using className + }, + }, + ], + include: path.resolve(__dirname, "../src"), + }); + + return config; + }, + + typescript: { reactDocgen: "react-docgen" }, + + docs: { + autodocs: true, + }, +}; + +export default config; + +function getAbsolutePath(value) { + return dirname(require.resolve(join(value, "package.json"))); +} diff --git a/apps/storybook/.storybook/preview.jsx b/apps/storybook/.storybook/preview.jsx deleted file mode 100644 index d881ca6008..0000000000 --- a/apps/storybook/.storybook/preview.jsx +++ /dev/null @@ -1,48 +0,0 @@ -import { addDecorator } from "@storybook/react"; -import { AppRouterContext } from "next/dist/shared/lib/app-router-context"; -import { I18nextProvider } from "react-i18next"; - -import "../styles/globals.css"; -import "../styles/storybook-styles.css"; -import i18n from "./i18next"; - -export const parameters = { - actions: { argTypesRegex: "^on[A-Z].*" }, - controls: { - matchers: { - color: /(background|color)$/i, - date: /Date$/, - }, - }, - nextRouter: { - pathname: "/", - asPath: "/", - query: {}, - push() {}, - Provider: AppRouterContext.Provider, - }, - globals: { - locale: "en", - locales: { - en: "English", - fr: "Français", - }, - }, - i18n, -}; - -addDecorator((storyFn) => ( - -

{storyFn()}
- -)); - -window.getEmbedNamespace = () => { - const url = new URL(document.URL); - const namespace = url.searchParams.get("embed"); - return namespace; -}; - -window.getEmbedTheme = () => { - return "auto"; -}; diff --git a/apps/storybook/.storybook/preview.tsx b/apps/storybook/.storybook/preview.tsx new file mode 100644 index 0000000000..620f7a9ff6 --- /dev/null +++ b/apps/storybook/.storybook/preview.tsx @@ -0,0 +1,73 @@ +// adds tooltip context to all stories +import { TooltipProvider } from "@radix-ui/react-tooltip"; +import type { Preview } from "@storybook/react"; +import React from "react"; +import { I18nextProvider } from "react-i18next"; + +import type { EmbedThemeConfig } from "@calcom/embed-core/src/types"; +// adds trpc context to all stories (esp. booker) +import { StorybookTrpcProvider } from "@calcom/ui"; + +import "../styles/globals.css"; +import "../styles/storybook-styles.css"; +import i18n from "./i18next"; + +const preview: Preview = { + parameters: { + actions: { argTypesRegex: "^on[A-Z].*" }, + + controls: { + matchers: { + color: /(background|color)$/i, + date: /Date$/, + }, + }, + + globals: { + locale: "en", + locales: { + en: "English", + fr: "Français", + }, + }, + + i18n, + + nextjs: { + appDirectory: true, + }, + }, + + decorators: [ + (Story) => ( + + + +
+ +
+
+
+
+ ), + ], +}; + +export default preview; + +declare global { + interface Window { + getEmbedNamespace: () => string | null; + getEmbedTheme: () => EmbedThemeConfig | null; + } +} + +window.getEmbedNamespace = () => { + const url = new URL(document.URL); + const namespace = url.searchParams.get("embed"); + return namespace; +}; + +window.getEmbedTheme = () => { + return "auto"; +}; diff --git a/apps/storybook/components/CustomArgsTable.tsx b/apps/storybook/components/CustomArgsTable.tsx index e8feabf577..1bb51bbdd9 100644 --- a/apps/storybook/components/CustomArgsTable.tsx +++ b/apps/storybook/components/CustomArgsTable.tsx @@ -1,6 +1,6 @@ import { ArgsTable } from "@storybook/addon-docs"; -import { SortType } from "@storybook/components"; -import { PropDescriptor } from "@storybook/store"; +import type { SortType } from "@storybook/blocks"; +import type { PropDescriptor } from "@storybook/preview-api"; // eslint-disable-next-line @typescript-eslint/no-explicit-any -- ignore storybook addon types component as any so we have to do type Component = any; diff --git a/apps/storybook/intro.stories.mdx b/apps/storybook/intro.stories.mdx index d8ca68bf7c..f6858dc892 100644 --- a/apps/storybook/intro.stories.mdx +++ b/apps/storybook/intro.stories.mdx @@ -9,10 +9,7 @@ import { Meta } from "@storybook/addon-docs"; library, we will be adding more components as we go along.

- Our{" "} - - Figma - {" "} + Our Figma library is available for anyone to view and use. If you have any questions or concerns, please reach out to the design team.

diff --git a/apps/storybook/package.json b/apps/storybook/package.json index 3aae79cb0a..0cc7d6cb30 100644 --- a/apps/storybook/package.json +++ b/apps/storybook/package.json @@ -3,8 +3,8 @@ "private": true, "version": "0.0.0", "scripts": { - "dev": "start-storybook -p 6006", - "build": "build-storybook" + "dev": "storybook dev -p 6006", + "build": "storybook build" }, "dependencies": { "@calcom/config": "*", @@ -20,23 +20,25 @@ "@radix-ui/react-slider": "^1.0.0", "@radix-ui/react-switch": "^1.0.0", "@radix-ui/react-tooltip": "^1.0.0", + "@storybook/addon-docs": "^7.6.3", + "@storybook/blocks": "^7.6.3", + "@storybook/nextjs": "^7.6.3", + "@storybook/preview-api": "^7.6.3", "next": "^13.4.6", "react": "^18.2.0", "react-dom": "^18.2.0", - "storybook-addon-next-router": "^4.0.2", "storybook-addon-rtl-direction": "^0.0.19" }, "devDependencies": { "@babel/core": "^7.19.6", - "@storybook/addon-actions": "^6.5.13", - "@storybook/addon-essentials": "^6.5.13", - "@storybook/addon-interactions": "^6.5.13", - "@storybook/addon-links": "^6.5.13", - "@storybook/builder-vite": "^0.2.4", - "@storybook/builder-webpack5": "^6.5.13", - "@storybook/manager-webpack5": "^6.5.13", - "@storybook/react": "^6.5.13", - "@storybook/testing-library": "^0.0.13", + "@storybook/addon-actions": "^7.6.3", + "@storybook/addon-designs": "^7.0.7", + "@storybook/addon-essentials": "^7.6.3", + "@storybook/addon-interactions": "^7.6.3", + "@storybook/addon-links": "^7.6.3", + "@storybook/nextjs": "^7.6.3", + "@storybook/react": "^7.6.3", + "@storybook/testing-library": "^0.2.2", "@types/react": "18.0.26", "@types/react-dom": "^18.0.9", "@vitejs/plugin-react": "^2.2.0", @@ -46,9 +48,8 @@ "postcss": "^8.4.18", "postcss-pseudo-companion-classes": "^0.1.1", "rollup-plugin-polyfill-node": "^0.10.2", - "storybook-addon-designs": "^6.3.1", - "storybook-addon-next": "^1.6.9", - "storybook-react-i18next": "^1.1.2", + "storybook": "^7.6.3", + "storybook-react-i18next": "^2.0.9", "tailwindcss": "^3.3.3", "typescript": "^4.9.4", "vite": "^4.1.2" diff --git a/apps/web/abTest/middlewareFactory.ts b/apps/web/abTest/middlewareFactory.ts index 5e300cf0d6..704e5decfb 100644 --- a/apps/web/abTest/middlewareFactory.ts +++ b/apps/web/abTest/middlewareFactory.ts @@ -5,6 +5,7 @@ import z from "zod"; const ROUTES: [URLPattern, boolean][] = [ ["/event-types", process.env.APP_ROUTER_EVENT_TYPES_ENABLED === "1"] as const, + ["/settings/admin/:path*", process.env.APP_ROUTER_SETTINGS_ADMIN_ENABLED === "1"] as const, ].map(([pathname, enabled]) => [ new URLPattern({ pathname, @@ -27,7 +28,6 @@ export const abTestMiddlewareFactory = const override = req.cookies.has(FUTURE_ROUTES_OVERRIDE_COOKIE_NAME); const route = ROUTES.find(([regExp]) => regExp.test(req.url)) ?? null; - const enabled = route !== null ? route[1] || override : false; if (pathname.includes("future") || !enabled) { diff --git a/apps/web/app/_trpc/createTRPCNextLayout.ts b/apps/web/app/_trpc/createTRPCNextLayout.ts new file mode 100644 index 0000000000..c65b4fe941 --- /dev/null +++ b/apps/web/app/_trpc/createTRPCNextLayout.ts @@ -0,0 +1,212 @@ +// originally from in the "experimental playground for tRPC + next.js 13" repo owned by trpc team +// file link: https://github.com/trpc/next-13/blob/main/%40trpc/next-layout/createTRPCNextLayout.ts +// repo link: https://github.com/trpc/next-13 +// code is / will continue to be adapted for our usage +import { dehydrate, QueryClient } from "@tanstack/query-core"; +import type { DehydratedState, QueryKey } from "@tanstack/react-query"; + +import type { Maybe, TRPCClientError, TRPCClientErrorLike } from "@calcom/trpc"; +import { + callProcedure, + type AnyProcedure, + type AnyQueryProcedure, + type AnyRouter, + type DataTransformer, + type inferProcedureInput, + type inferProcedureOutput, + type inferRouterContext, + type MaybePromise, + type ProcedureRouterRecord, +} from "@calcom/trpc/server"; + +import { createRecursiveProxy, createFlatProxy } from "@trpc/server/shared"; + +export function getArrayQueryKey( + queryKey: string | [string] | [string, ...unknown[]] | unknown[], + type: string +): QueryKey { + const queryKeyArrayed = Array.isArray(queryKey) ? queryKey : [queryKey]; + const [arrayPath, input] = queryKeyArrayed; + + if (!input && (!type || type === "any")) { + return Array.isArray(arrayPath) && arrayPath.length !== 0 ? [arrayPath] : ([] as unknown as QueryKey); + } + + return [ + arrayPath, + { + ...(typeof input !== "undefined" && { input: input }), + ...(type && type !== "any" && { type: type }), + }, + ]; +} + +// copy starts +// copied from trpc/trpc repo +// ref: https://github.com/trpc/trpc/blob/main/packages/next/src/withTRPC.tsx#L37-#L58 +function transformQueryOrMutationCacheErrors< + TState extends DehydratedState["queries"][0] | DehydratedState["mutations"][0] +>(result: TState): TState { + const error = result.state.error as Maybe>; + if (error instanceof Error && error.name === "TRPCClientError") { + const newError: TRPCClientErrorLike = { + message: error.message, + data: error.data, + shape: error.shape, + }; + return { + ...result, + state: { + ...result.state, + error: newError, + }, + }; + } + return result; +} +// copy ends + +interface CreateTRPCNextLayoutOptions { + router: TRouter; + createContext: () => MaybePromise>; + transformer?: DataTransformer; +} + +/** + * @internal + */ +export type DecorateProcedure = TProcedure extends AnyQueryProcedure + ? { + fetch(input: inferProcedureInput): Promise>; + fetchInfinite(input: inferProcedureInput): Promise>; + prefetch(input: inferProcedureInput): Promise>; + prefetchInfinite(input: inferProcedureInput): Promise>; + } + : never; + +type OmitNever = Pick< + TType, + { + [K in keyof TType]: TType[K] extends never ? never : K; + }[keyof TType] +>; +/** + * @internal + */ +export type DecoratedProcedureRecord< + TProcedures extends ProcedureRouterRecord, + TPath extends string = "" +> = OmitNever<{ + [TKey in keyof TProcedures]: TProcedures[TKey] extends AnyRouter + ? DecoratedProcedureRecord + : TProcedures[TKey] extends AnyQueryProcedure + ? DecorateProcedure + : never; +}>; + +type CreateTRPCNextLayout = DecoratedProcedureRecord & { + dehydrate(): Promise; + queryClient: QueryClient; +}; + +const getStateContainer = (opts: CreateTRPCNextLayoutOptions) => { + let _trpc: { + queryClient: QueryClient; + context: inferRouterContext; + } | null = null; + + return () => { + if (_trpc === null) { + _trpc = { + context: opts.createContext(), + queryClient: new QueryClient(), + }; + } + + return _trpc; + }; +}; + +export function createTRPCNextLayout( + opts: CreateTRPCNextLayoutOptions +): CreateTRPCNextLayout { + const getState = getStateContainer(opts); + + const transformer = opts.transformer ?? { + serialize: (v) => v, + deserialize: (v) => v, + }; + + return createFlatProxy((key) => { + const state = getState(); + const { queryClient } = state; + if (key === "queryClient") { + return queryClient; + } + + if (key === "dehydrate") { + // copy starts + // copied from trpc/trpc repo + // ref: https://github.com/trpc/trpc/blob/main/packages/next/src/withTRPC.tsx#L214-#L229 + const dehydratedCache = dehydrate(queryClient, { + shouldDehydrateQuery() { + // makes sure errors are also dehydrated + return true; + }, + }); + + // since error instances can't be serialized, let's make them into `TRPCClientErrorLike`-objects + const dehydratedCacheWithErrors = { + ...dehydratedCache, + queries: dehydratedCache.queries.map(transformQueryOrMutationCacheErrors), + mutations: dehydratedCache.mutations.map(transformQueryOrMutationCacheErrors), + }; + + return () => transformer.serialize(dehydratedCacheWithErrors); + } + // copy ends + + return createRecursiveProxy(async (callOpts) => { + const path = [key, ...callOpts.path]; + const utilName = path.pop(); + const ctx = await state.context; + + const caller = opts.router.createCaller(ctx); + + const pathStr = path.join("."); + const input = callOpts.args[0]; + + if (utilName === "fetchInfinite") { + return queryClient.fetchInfiniteQuery(getArrayQueryKey([path, input], "infinite"), () => + caller.query(pathStr, input) + ); + } + + if (utilName === "prefetch") { + return queryClient.prefetchQuery({ + queryKey: getArrayQueryKey([path, input], "query"), + queryFn: async () => { + const res = await callProcedure({ + procedures: opts.router._def.procedures, + path: pathStr, + rawInput: input, + ctx, + type: "query", + }); + return res; + }, + }); + } + + if (utilName === "prefetchInfinite") { + return queryClient.prefetchInfiniteQuery(getArrayQueryKey([path, input], "infinite"), () => + caller.query(pathStr, input) + ); + } + + return queryClient.fetchQuery(getArrayQueryKey([path, input], "query"), () => + caller.query(pathStr, input) + ); + }) as CreateTRPCNextLayout; + }); +} diff --git a/apps/web/app/_trpc/serverClient.ts b/apps/web/app/_trpc/serverClient.ts new file mode 100644 index 0000000000..e4b7d577f0 --- /dev/null +++ b/apps/web/app/_trpc/serverClient.ts @@ -0,0 +1,4 @@ +import type { TRPCContext } from "@calcom/trpc/server/createContext"; +import { appRouter } from "@calcom/trpc/server/routers/_app"; + +export const getServerCaller = (ctx: TRPCContext) => appRouter.createCaller(ctx); diff --git a/apps/web/app/_trpc/ssgInit.ts b/apps/web/app/_trpc/ssgInit.ts new file mode 100644 index 0000000000..45e38c519d --- /dev/null +++ b/apps/web/app/_trpc/ssgInit.ts @@ -0,0 +1,34 @@ +import { serverSideTranslations } from "next-i18next/serverSideTranslations"; +import { headers } from "next/headers"; +import superjson from "superjson"; + +import { CALCOM_VERSION } from "@calcom/lib/constants"; +import prisma, { readonlyPrisma } from "@calcom/prisma"; +import { appRouter } from "@calcom/trpc/server/routers/_app"; + +import { createTRPCNextLayout } from "./createTRPCNextLayout"; + +export async function ssgInit() { + const locale = headers().get("x-locale") ?? "en"; + + const i18n = (await serverSideTranslations(locale, ["common"])) || "en"; + + const ssg = createTRPCNextLayout({ + router: appRouter, + transformer: superjson, + createContext() { + return { prisma, insightsDb: readonlyPrisma, session: null, locale, i18n }; + }, + }); + + // i18n translations are already retrieved from serverSideTranslations call, there is no need to run a i18n.fetch + // we can set query data directly to the queryClient + const queryKey = [ + ["viewer", "public", "i18n"], + { input: { locale, CalComVersion: CALCOM_VERSION }, type: "query" }, + ]; + + ssg.queryClient.setQueryData(queryKey, { i18n }); + + return ssg; +} diff --git a/apps/web/app/_trpc/ssrInit.ts b/apps/web/app/_trpc/ssrInit.ts new file mode 100644 index 0000000000..ab56003578 --- /dev/null +++ b/apps/web/app/_trpc/ssrInit.ts @@ -0,0 +1,57 @@ +import { type GetServerSidePropsContext } from "next"; +import { serverSideTranslations } from "next-i18next/serverSideTranslations"; +import { headers, cookies } from "next/headers"; +import superjson from "superjson"; + +import { getLocale } from "@calcom/features/auth/lib/getLocale"; +import { CALCOM_VERSION } from "@calcom/lib/constants"; +import prisma, { readonlyPrisma } from "@calcom/prisma"; +import { appRouter } from "@calcom/trpc/server/routers/_app"; + +import { createTRPCNextLayout } from "./createTRPCNextLayout"; + +export async function ssrInit(options?: { noI18nPreload: boolean }) { + const req = { + headers: headers(), + cookies: cookies(), + }; + + const locale = await getLocale(req); + + const i18n = (await serverSideTranslations(locale, ["common", "vital"])) || "en"; + + const ssr = createTRPCNextLayout({ + router: appRouter, + transformer: superjson, + createContext() { + return { + prisma, + insightsDb: readonlyPrisma, + session: null, + locale, + i18n, + req: req as unknown as GetServerSidePropsContext["req"], + }; + }, + }); + + // i18n translations are already retrieved from serverSideTranslations call, there is no need to run a i18n.fetch + // we can set query data directly to the queryClient + const queryKey = [ + ["viewer", "public", "i18n"], + { input: { locale, CalComVersion: CALCOM_VERSION }, type: "query" }, + ]; + if (!options?.noI18nPreload) { + ssr.queryClient.setQueryData(queryKey, { i18n }); + } + + await Promise.allSettled([ + // So feature flags are available on first render + ssr.viewer.features.map.prefetch(), + // Provides a better UX to the users who have already upgraded. + ssr.viewer.teams.hasTeamPlan.prefetch(), + ssr.viewer.public.session.prefetch(), + ]); + + return ssr; +} diff --git a/apps/web/app/_trpc/trpc-provider.tsx b/apps/web/app/_trpc/trpc-provider.tsx index f6d2ed2817..6e81d2996a 100644 --- a/apps/web/app/_trpc/trpc-provider.tsx +++ b/apps/web/app/_trpc/trpc-provider.tsx @@ -8,33 +8,8 @@ import { httpBatchLink } from "@calcom/trpc/client/links/httpBatchLink"; import { httpLink } from "@calcom/trpc/client/links/httpLink"; import { loggerLink } from "@calcom/trpc/client/links/loggerLink"; import { splitLink } from "@calcom/trpc/client/links/splitLink"; +import { ENDPOINTS } from "@calcom/trpc/react/shared"; -const ENDPOINTS = [ - "admin", - "apiKeys", - "appRoutingForms", - "apps", - "auth", - "availability", - "appBasecamp3", - "bookings", - "deploymentSetup", - "eventTypes", - "features", - "insights", - "payments", - "public", - "saml", - "slots", - "teams", - "organizations", - "users", - "viewer", - "webhook", - "workflows", - "appsRouter", - "googleWorkspace", -] as const; export type Endpoint = (typeof ENDPOINTS)[number]; // eslint-disable-next-line @typescript-eslint/no-explicit-any diff --git a/apps/web/app/_types.ts b/apps/web/app/_types.ts new file mode 100644 index 0000000000..91f01306f4 --- /dev/null +++ b/apps/web/app/_types.ts @@ -0,0 +1,3 @@ +export type Params = { + [param: string]: string | string[] | undefined; +}; diff --git a/apps/web/app/future/(shared-page-wrapper)/(admin-layout)/layout.tsx b/apps/web/app/future/(shared-page-wrapper)/(admin-layout)/layout.tsx new file mode 100644 index 0000000000..ef7d2abdf2 --- /dev/null +++ b/apps/web/app/future/(shared-page-wrapper)/(admin-layout)/layout.tsx @@ -0,0 +1,20 @@ +import { headers } from "next/headers"; +import { type ReactElement } from "react"; + +import PageWrapper from "@components/PageWrapperAppDir"; +import { getLayout } from "@components/auth/layouts/AdminLayoutAppDir"; + +type WrapperWithLayoutProps = { + children: ReactElement; +}; + +export default async function WrapperWithLayout({ children }: WrapperWithLayoutProps) { + const h = headers(); + const nonce = h.get("x-nonce") ?? undefined; + + return ( + + {children} + + ); +} diff --git a/apps/web/app/future/(shared-page-wrapper)/(admin-layout)/settings/admin/apps/[category]/page.tsx b/apps/web/app/future/(shared-page-wrapper)/(admin-layout)/settings/admin/apps/[category]/page.tsx new file mode 100644 index 0000000000..0805169a9e --- /dev/null +++ b/apps/web/app/future/(shared-page-wrapper)/(admin-layout)/settings/admin/apps/[category]/page.tsx @@ -0,0 +1,10 @@ +import Page from "@pages/settings/admin/apps/[category]"; +import { _generateMetadata } from "app/_utils"; + +export const generateMetadata = async () => + await _generateMetadata( + (t) => t("apps"), + (t) => t("admin_apps_description") + ); + +export default Page; diff --git a/apps/web/app/future/(shared-page-wrapper)/(admin-layout)/settings/admin/apps/page.tsx b/apps/web/app/future/(shared-page-wrapper)/(admin-layout)/settings/admin/apps/page.tsx new file mode 100644 index 0000000000..c53f6eb9f9 --- /dev/null +++ b/apps/web/app/future/(shared-page-wrapper)/(admin-layout)/settings/admin/apps/page.tsx @@ -0,0 +1,10 @@ +import Page from "@pages/settings/admin/apps/index"; +import { _generateMetadata } from "app/_utils"; + +export const generateMetadata = async () => + await _generateMetadata( + (t) => t("apps"), + (t) => t("admin_apps_description") + ); + +export default Page; diff --git a/apps/web/app/future/(shared-page-wrapper)/(admin-layout)/settings/admin/flags/page.tsx b/apps/web/app/future/(shared-page-wrapper)/(admin-layout)/settings/admin/flags/page.tsx new file mode 100644 index 0000000000..adf10ecbc3 --- /dev/null +++ b/apps/web/app/future/(shared-page-wrapper)/(admin-layout)/settings/admin/flags/page.tsx @@ -0,0 +1,10 @@ +import Page from "@pages/settings/admin/flags"; +import { _generateMetadata } from "app/_utils"; + +export const generateMetadata = async () => + await _generateMetadata( + () => "Feature Flags", + () => "Here you can toggle your Cal.com instance features." + ); + +export default Page; diff --git a/apps/web/app/future/(shared-page-wrapper)/(admin-layout)/settings/admin/impersonation/page.tsx b/apps/web/app/future/(shared-page-wrapper)/(admin-layout)/settings/admin/impersonation/page.tsx new file mode 100644 index 0000000000..f18a6df858 --- /dev/null +++ b/apps/web/app/future/(shared-page-wrapper)/(admin-layout)/settings/admin/impersonation/page.tsx @@ -0,0 +1,10 @@ +import Page from "@pages/settings/admin/impersonation"; +import { _generateMetadata } from "app/_utils"; + +export const generateMetadata = async () => + await _generateMetadata( + (t) => t("admin"), + (t) => t("impersonation") + ); + +export default Page; diff --git a/apps/web/app/future/(shared-page-wrapper)/(admin-layout)/settings/admin/oAuth/page.tsx b/apps/web/app/future/(shared-page-wrapper)/(admin-layout)/settings/admin/oAuth/page.tsx new file mode 100644 index 0000000000..61cb362dba --- /dev/null +++ b/apps/web/app/future/(shared-page-wrapper)/(admin-layout)/settings/admin/oAuth/page.tsx @@ -0,0 +1,10 @@ +import Page from "@pages/settings/admin/oAuth/index"; +import { _generateMetadata } from "app/_utils"; + +export const generateMetadata = async () => + await _generateMetadata( + () => "OAuth", + () => "Add new OAuth Clients" + ); + +export default Page; diff --git a/apps/web/app/future/(shared-page-wrapper)/(admin-layout)/settings/admin/page.tsx b/apps/web/app/future/(shared-page-wrapper)/(admin-layout)/settings/admin/page.tsx new file mode 100644 index 0000000000..a45fe0a58d --- /dev/null +++ b/apps/web/app/future/(shared-page-wrapper)/(admin-layout)/settings/admin/page.tsx @@ -0,0 +1,10 @@ +import Page from "@pages/settings/admin/index"; +import { _generateMetadata } from "app/_utils"; + +export const generateMetadata = async () => + await _generateMetadata( + () => "Admin", + () => "admin_description" + ); + +export default Page; diff --git a/apps/web/app/future/(shared-page-wrapper)/(no-layout)/layout.tsx b/apps/web/app/future/(shared-page-wrapper)/(no-layout)/layout.tsx new file mode 100644 index 0000000000..c079ba0ad8 --- /dev/null +++ b/apps/web/app/future/(shared-page-wrapper)/(no-layout)/layout.tsx @@ -0,0 +1,20 @@ +// pages containing layout (e.g., /availability/[schedule].tsx) are supposed to go under (no-layout) folder +import { headers } from "next/headers"; +import { type ReactElement } from "react"; + +import PageWrapper from "@components/PageWrapperAppDir"; + +type WrapperWithoutLayoutProps = { + children: ReactElement; +}; + +export default async function WrapperWithoutLayout({ children }: WrapperWithoutLayoutProps) { + const h = headers(); + const nonce = h.get("x-nonce") ?? undefined; + + return ( + + {children} + + ); +} diff --git a/apps/web/app/future/(shared-page-wrapper)/(no-layout)/settings/admin/oAuth/oAuthView/page.tsx b/apps/web/app/future/(shared-page-wrapper)/(no-layout)/settings/admin/oAuth/oAuthView/page.tsx new file mode 100644 index 0000000000..165622e62a --- /dev/null +++ b/apps/web/app/future/(shared-page-wrapper)/(no-layout)/settings/admin/oAuth/oAuthView/page.tsx @@ -0,0 +1,10 @@ +import Page from "@pages/settings/admin/oAuth/oAuthView"; +import { _generateMetadata } from "app/_utils"; + +export const generateMetadata = async () => + await _generateMetadata( + () => "OAuth", + () => "Add new OAuth Clients" + ); + +export default Page; diff --git a/apps/web/app/future/(shared-page-wrapper)/(settings-layout)/layout.tsx b/apps/web/app/future/(shared-page-wrapper)/(settings-layout)/layout.tsx new file mode 100644 index 0000000000..2cb530db21 --- /dev/null +++ b/apps/web/app/future/(shared-page-wrapper)/(settings-layout)/layout.tsx @@ -0,0 +1,21 @@ +import { headers } from "next/headers"; +import { type ReactElement } from "react"; + +import { getLayout } from "@calcom/features/settings/layouts/SettingsLayoutAppDir"; + +import PageWrapper from "@components/PageWrapperAppDir"; + +type WrapperWithLayoutProps = { + children: ReactElement; +}; + +export default async function WrapperWithLayout({ children }: WrapperWithLayoutProps) { + const h = headers(); + const nonce = h.get("x-nonce") ?? undefined; + + return ( + + {children} + + ); +} diff --git a/apps/web/app/future/(shared-page-wrapper)/(settings-layout)/settings/admin/organizations/page.tsx b/apps/web/app/future/(shared-page-wrapper)/(settings-layout)/settings/admin/organizations/page.tsx new file mode 100644 index 0000000000..7ec2b7fa6b --- /dev/null +++ b/apps/web/app/future/(shared-page-wrapper)/(settings-layout)/settings/admin/organizations/page.tsx @@ -0,0 +1,11 @@ +import { _generateMetadata } from "app/_utils"; + +import Page from "@calcom/features/ee/organizations/pages/settings/admin/AdminOrgPage"; + +export const generateMetadata = async () => + await _generateMetadata( + (t) => t("organizations"), + (t) => t("orgs_page_description") + ); + +export default Page; diff --git a/apps/web/app/future/(shared-page-wrapper)/(settings-layout)/settings/admin/users/[id]/edit/page.tsx b/apps/web/app/future/(shared-page-wrapper)/(settings-layout)/settings/admin/users/[id]/edit/page.tsx new file mode 100644 index 0000000000..ae354725f6 --- /dev/null +++ b/apps/web/app/future/(shared-page-wrapper)/(settings-layout)/settings/admin/users/[id]/edit/page.tsx @@ -0,0 +1,36 @@ +import { getServerCaller } from "app/_trpc/serverClient"; +import { type Params } from "app/_types"; +import { _generateMetadata } from "app/_utils"; +import { cookies, headers } from "next/headers"; +import { z } from "zod"; + +import Page from "@calcom/features/ee/users/pages/users-edit-view"; +import prisma from "@calcom/prisma"; + +const userIdSchema = z.object({ id: z.coerce.number() }); + +export const generateMetadata = async ({ params }: { params: Params }) => { + const input = userIdSchema.safeParse(params); + + let title = ""; + if (!input.success) { + title = "Editing user"; + } else { + const req = { + headers: headers(), + cookies: cookies(), + }; + + // @ts-expect-error Type '{ headers: ReadonlyHeaders; cookies: ReadonlyRequestCookies; }' is not assignable to type 'NextApiRequest' + const data = await getServerCaller({ req, prisma }).viewer.users.get({ userId: input.data.id }); + const { user } = data; + title = `Editing user: ${user.username}`; + } + + return await _generateMetadata( + () => title, + () => "Here you can edit a current user." + ); +}; + +export default Page; diff --git a/apps/web/app/future/(shared-page-wrapper)/(settings-layout)/settings/admin/users/add/page.tsx b/apps/web/app/future/(shared-page-wrapper)/(settings-layout)/settings/admin/users/add/page.tsx new file mode 100644 index 0000000000..511ad02a7d --- /dev/null +++ b/apps/web/app/future/(shared-page-wrapper)/(settings-layout)/settings/admin/users/add/page.tsx @@ -0,0 +1,11 @@ +import { _generateMetadata } from "app/_utils"; + +import Page from "@calcom/features/ee/users/pages/users-add-view"; + +export const generateMetadata = async () => + await _generateMetadata( + () => "Add new user", + () => "Here you can add a new user." + ); + +export default Page; diff --git a/apps/web/app/future/(shared-page-wrapper)/(settings-layout)/settings/admin/users/page.tsx b/apps/web/app/future/(shared-page-wrapper)/(settings-layout)/settings/admin/users/page.tsx new file mode 100644 index 0000000000..0bd414f599 --- /dev/null +++ b/apps/web/app/future/(shared-page-wrapper)/(settings-layout)/settings/admin/users/page.tsx @@ -0,0 +1,11 @@ +import { _generateMetadata } from "app/_utils"; + +import Page from "@calcom/features/ee/users/pages/users-listing-view"; + +export const generateMetadata = async () => + await _generateMetadata( + () => "Users", + () => "A list of all the users in your account including their name, title, email and role." + ); + +export default Page; diff --git a/apps/web/components/auth/layouts/AdminLayoutAppDir.tsx b/apps/web/components/auth/layouts/AdminLayoutAppDir.tsx new file mode 100644 index 0000000000..b3d76190c4 --- /dev/null +++ b/apps/web/components/auth/layouts/AdminLayoutAppDir.tsx @@ -0,0 +1,40 @@ +"use client"; + +import { useSession } from "next-auth/react"; +import { usePathname, useRouter } from "next/navigation"; +import type { ComponentProps } from "react"; +import React, { useEffect } from "react"; + +import SettingsLayout from "@calcom/features/settings/layouts/SettingsLayout"; +import type Shell from "@calcom/features/shell/Shell"; +import { UserPermissionRole } from "@calcom/prisma/enums"; +import { ErrorBoundary } from "@calcom/ui"; + +export default function AdminLayout({ + children, + ...rest +}: { children: React.ReactNode } & ComponentProps) { + const pathname = usePathname(); + const session = useSession(); + const router = useRouter(); + + // Force redirect on component level + useEffect(() => { + if (session.data && session.data.user.role !== UserPermissionRole.ADMIN) { + router.replace("/settings/my-account/profile"); + } + }, [session, router]); + + const isAppsPage = pathname?.startsWith("/settings/admin/apps"); + return ( + +
+
*]:flex-1"}> + {children} +
+
+
+ ); +} + +export const getLayout = (page: React.ReactElement) => {page}; diff --git a/apps/web/components/booking/BookingListItem.tsx b/apps/web/components/booking/BookingListItem.tsx index f2281abd8a..4af0888a29 100644 --- a/apps/web/components/booking/BookingListItem.tsx +++ b/apps/web/components/booking/BookingListItem.tsx @@ -525,8 +525,8 @@ const RecurringBookingsTooltip = ({ return ( recurringDate >= now && !booking.recurringInfo?.bookings[BookingStatus.CANCELLED] - .map((date) => date.toDateString()) - .includes(recurringDate.toDateString()) + .map((date) => date.toString()) + .includes(recurringDate.toString()) ); }).length; @@ -543,8 +543,8 @@ const RecurringBookingsTooltip = ({ const pastOrCancelled = aDate < now || booking.recurringInfo?.bookings[BookingStatus.CANCELLED] - .map((date) => date.toDateString()) - .includes(aDate.toDateString()); + .map((date) => date.toString()) + .includes(aDate.toString()); return (

{formatTime(aDate, userTimeFormat, userTimeZone)} diff --git a/apps/web/components/dialog/EditLocationDialog.tsx b/apps/web/components/dialog/EditLocationDialog.tsx index 252d5fcf92..4aee471929 100644 --- a/apps/web/components/dialog/EditLocationDialog.tsx +++ b/apps/web/components/dialog/EditLocationDialog.tsx @@ -382,7 +382,7 @@ export const EditLocationDialog = (props: ISetLocationDialog) => { }} /> {selectedLocation && LocationOptions} - + ); diff --git a/apps/web/components/getting-started/steps-views/UserSettings.tsx b/apps/web/components/getting-started/steps-views/UserSettings.tsx index 7ab1d29f7f..cfb49a89f8 100644 --- a/apps/web/components/getting-started/steps-views/UserSettings.tsx +++ b/apps/web/components/getting-started/steps-views/UserSettings.tsx @@ -9,7 +9,7 @@ import { FULL_NAME_LENGTH_MAX_LIMIT } from "@calcom/lib/constants"; import { useLocale } from "@calcom/lib/hooks/useLocale"; import { telemetryEventTypes, useTelemetry } from "@calcom/lib/telemetry"; import { trpc } from "@calcom/trpc/react"; -import { Button, TimezoneSelect } from "@calcom/ui"; +import { Button, TimezoneSelect, Input } from "@calcom/ui"; import { ArrowRight } from "@calcom/ui/components/icon"; import { UsernameAvailabilityField } from "@components/ui/UsernameAvailability"; @@ -76,7 +76,7 @@ const UserSettings = (props: IUserSettingsProps) => { - { type="text" autoComplete="off" autoCorrect="off" - className="border-default w-full rounded-md border text-sm" /> {errors.name && (

@@ -106,7 +105,7 @@ const UserSettings = (props: IUserSettingsProps) => { className="mt-2 w-full rounded-md text-sm" /> -

+

{t("current_time")} {dayjs().tz(selectedTimeZone).format("LT").toString().toLowerCase()}

diff --git a/apps/web/middleware.ts b/apps/web/middleware.ts index d14b59cb45..6640a2b634 100644 --- a/apps/web/middleware.ts +++ b/apps/web/middleware.ts @@ -101,6 +101,8 @@ export const config = { "/apps/routing_forms/:path*", "/event-types", "/future/event-types/", + "/settings/admin/:path*", + "/future/settings/admin/:path*", ], }; diff --git a/apps/web/next.config.js b/apps/web/next.config.js index 24d6ceb2fc..452838e30d 100644 --- a/apps/web/next.config.js +++ b/apps/web/next.config.js @@ -154,6 +154,9 @@ const matcherConfigUserTypeEmbedRoute = { /** @type {import("next").NextConfig} */ const nextConfig = { + experimental: { + serverComponentsExternalPackages: ["next-i18next"], + }, i18n: { ...i18n, localeDetection: false, @@ -231,6 +234,9 @@ const nextConfig = { ...config.resolve.fallback, // if you miss it, all the other options in fallback, specified // by next.js will be dropped. Doesn't make much sense, but how it is fs: false, + // ignore module resolve errors caused by the server component bundler + "pg-native": false, + "superagent-proxy": false, }; /** diff --git a/apps/web/package.json b/apps/web/package.json index 9a743bb44d..108aca33ba 100644 --- a/apps/web/package.json +++ b/apps/web/package.json @@ -1,6 +1,6 @@ { "name": "@calcom/web", - "version": "3.5.3", + "version": "3.5.4", "private": true, "scripts": { "analyze": "ANALYZE=true next build", @@ -130,7 +130,6 @@ "tailwindcss-radix": "^2.6.0", "turndown": "^7.1.1", "uuid": "^8.3.2", - "web3": "^1.7.5", "zod": "^3.22.2" }, "devDependencies": { diff --git a/apps/web/pages/api/auth/signup.ts b/apps/web/pages/api/auth/signup.ts index 4d90edf60e..2a35d20a16 100644 --- a/apps/web/pages/api/auth/signup.ts +++ b/apps/web/pages/api/auth/signup.ts @@ -6,8 +6,18 @@ import { type RequestWithUsernameStatus } from "@calcom/features/auth/signup/use import { IS_PREMIUM_USERNAME_ENABLED } from "@calcom/lib/constants"; import { HttpError } from "@calcom/lib/http-error"; import logger from "@calcom/lib/logger"; +import { signupSchema } from "@calcom/prisma/zod-utils"; + +function ensureSignupIsEnabled(req: RequestWithUsernameStatus) { + const { token } = signupSchema + .pick({ + token: true, + }) + .parse(req.body); + + // Stil allow signups if there is a team invite + if (token) return; -function ensureSignupIsEnabled() { if (process.env.NEXT_PUBLIC_DISABLE_SIGNUP === "true") { throw new HttpError({ statusCode: 403, @@ -29,7 +39,7 @@ export default async function handler(req: RequestWithUsernameStatus, res: NextA // Use a try catch instead of returning res every time try { ensureReqIsPost(req); - ensureSignupIsEnabled(); + ensureSignupIsEnabled(req); /** * Im not sure its worth merging these two handlers. They are different enough to be separate. diff --git a/apps/web/pages/api/email.ts b/apps/web/pages/api/email.ts index b855eccee2..9ca6337d32 100644 --- a/apps/web/pages/api/email.ts +++ b/apps/web/pages/api/email.ts @@ -13,7 +13,7 @@ const handler = async (req: NextApiRequest, res: NextApiResponse) => { res.setHeader("Content-Type", "text/html"); res.setHeader("Cache-Control", "no-cache, no-store, private, must-revalidate"); res.write( - renderEmail("MonthlyDigestEmail", { + await renderEmail("MonthlyDigestEmail", { language: t, Created: 12, Completed: 13, diff --git a/apps/web/pages/api/recorded-daily-video.ts b/apps/web/pages/api/recorded-daily-video.ts index c35a9d5c7f..9886fc6863 100644 --- a/apps/web/pages/api/recorded-daily-video.ts +++ b/apps/web/pages/api/recorded-daily-video.ts @@ -1,24 +1,38 @@ import type { WebhookTriggerEvents } from "@prisma/client"; +import { createHmac } from "crypto"; import type { NextApiRequest, NextApiResponse } from "next"; import { z } from "zod"; import { DailyLocationType } from "@calcom/app-store/locations"; import { getDownloadLinkOfCalVideoByRecordingId } from "@calcom/core/videoClient"; import { sendDailyVideoRecordingEmails } from "@calcom/emails"; -import { getServerSession } from "@calcom/features/auth/lib/getServerSession"; import getWebhooks from "@calcom/features/webhooks/lib/getWebhooks"; import sendPayload from "@calcom/features/webhooks/lib/sendPayload"; -import { IS_SELF_HOSTED } from "@calcom/lib/constants"; import { getTeamIdFromEventType } from "@calcom/lib/getTeamIdFromEventType"; import { defaultHandler } from "@calcom/lib/server"; import { getTranslation } from "@calcom/lib/server/i18n"; import prisma, { bookingMinimalSelect } from "@calcom/prisma"; import type { CalendarEvent } from "@calcom/types/Calendar"; -const schema = z.object({ - recordingId: z.string(), - bookingUID: z.string(), -}); +const schema = z + .object({ + version: z.string(), + type: z.string(), + id: z.string(), + payload: z.object({ + recording_id: z.string(), + end_ts: z.number(), + room_name: z.string(), + start_ts: z.number(), + status: z.string(), + + max_participants: z.number(), + duration: z.number(), + s3_key: z.string(), + }), + event_ts: z.number(), + }) + .passthrough(); const downloadLinkSchema = z.object({ download_link: z.string(), @@ -39,8 +53,8 @@ const triggerWebhook = async ({ }; }) => { const eventTrigger: WebhookTriggerEvents = "RECORDING_READY"; - // Send Webhook call if hooked to BOOKING.RECORDING_READY + // Send Webhook call if hooked to BOOKING.RECORDING_READY const triggerForUser = !booking.teamId || (booking.teamId && booking.eventTypeParentId); const subscriberOptions = { @@ -62,71 +76,62 @@ const triggerWebhook = async ({ await Promise.all(promises); }; -const checkIfUserIsPartOfTheSameTeam = async ( - teamId: number | undefined | null, - userId: number, - userEmail: string | undefined | null -) => { - if (!teamId) return false; - - const getUserQuery = () => { - if (!!userEmail) { - return { - OR: [ - { - id: userId, - }, - { - email: userEmail, - }, - ], - }; - } else { - return { - id: userId, - }; - } - }; - - const team = await prisma.team.findFirst({ - where: { - id: teamId, - members: { - some: { - user: getUserQuery(), - }, - }, - }, - }); - - return !!team; -}; +const testRequestSchema = z.object({ + test: z.enum(["test"]), +}); async function handler(req: NextApiRequest, res: NextApiResponse) { if (!process.env.SENDGRID_API_KEY || !process.env.SENDGRID_EMAIL) { return res.status(405).json({ message: "No SendGrid API key or email" }); } - const response = schema.safeParse(JSON.parse(req.body)); - if (!response.success) { + if (testRequestSchema.safeParse(req.body).success) { + return res.status(200).json({ message: "Test request successful" }); + } + + const hmacSecret = process.env.DAILY_WEBHOOK_SECRET; + if (!hmacSecret) { + return res.status(405).json({ message: "No Daily Webhook Secret" }); + } + + const signature = `${req.headers["x-webhook-timestamp"]}.${JSON.stringify(req.body)}`; + const base64DecodedSecret = Buffer.from(hmacSecret, "base64"); + const hmac = createHmac("sha256", base64DecodedSecret); + const computed_signature = hmac.update(signature).digest("base64"); + + if (req.headers["x-webhook-signature"] !== computed_signature) { + return res.status(403).json({ message: "Signature does not match" }); + } + + const response = schema.safeParse(req.body); + + if (!response.success || response.data.type !== "recording.ready-to-download") { return res.status(400).send({ message: "Invalid Payload", }); } - const { recordingId, bookingUID } = response.data; - const session = await getServerSession({ req, res }); + const { room_name, recording_id, status } = response.data.payload; - if (!session?.user) { - return res.status(401).send({ - message: "User not logged in", + if (status !== "finished") { + return res.status(400).send({ + message: "Recording not finished", }); } try { - const booking = await prisma.booking.findFirst({ + const bookingReference = await prisma.bookingReference.findFirst({ + where: { type: "daily_video", uid: room_name, meetingId: room_name }, + select: { bookingId: true }, + }); + + if (!bookingReference || !bookingReference.bookingId) { + return res.status(404).send({ message: "Booking reference not found" }); + } + + const booking = await prisma.booking.findUniqueOrThrow({ where: { - uid: bookingUID, + id: bookingReference.bookingId, }, select: { ...bookingMinimalSelect, @@ -153,9 +158,9 @@ async function handler(req: NextApiRequest, res: NextApiResponse) { }, }); - if (!booking || booking.location !== DailyLocationType) { + if (!booking || !(booking.location === DailyLocationType || booking?.location?.trim() === "")) { return res.status(404).send({ - message: `Booking of uid ${bookingUID} does not exist or does not contain daily video as location`, + message: `Booking of room_name ${room_name} does not exist or does not contain daily video as location`, }); } @@ -175,26 +180,6 @@ async function handler(req: NextApiRequest, res: NextApiResponse) { const attendeesList = await Promise.all(attendeesListPromises); - const isUserAttendeeOrOrganiser = - booking?.user?.id === session.user.id || - attendeesList.find( - (attendee) => attendee.id === session.user.id || attendee.email === session.user.email - ); - - if (!isUserAttendeeOrOrganiser) { - const isUserMemberOfTheTeam = checkIfUserIsPartOfTheSameTeam( - booking?.eventType?.teamId, - session.user.id, - session.user.email - ); - - if (!isUserMemberOfTheTeam) { - return res.status(403).send({ - message: "Unauthorised", - }); - } - } - await prisma.booking.update({ where: { uid: booking.uid, @@ -204,7 +189,7 @@ async function handler(req: NextApiRequest, res: NextApiResponse) { }, }); - const response = await getDownloadLinkOfCalVideoByRecordingId(recordingId); + const response = await getDownloadLinkOfCalVideoByRecordingId(recording_id); const downloadLinkResponse = downloadLinkSchema.parse(response); const downloadLink = downloadLinkResponse.download_link; @@ -242,17 +227,11 @@ async function handler(req: NextApiRequest, res: NextApiResponse) { }, }); - const isSendingEmailsAllowed = IS_SELF_HOSTED || session?.user?.belongsToActiveTeam; - // send emails to all attendees only when user has team plan - if (isSendingEmailsAllowed) { - await sendDailyVideoRecordingEmails(evt, downloadLink); - return res.status(200).json({ message: "Success" }); - } - - return res.status(403).json({ message: "User does not have team plan to send out emails" }); + await sendDailyVideoRecordingEmails(evt, downloadLink); + return res.status(200).json({ message: "Success" }); } catch (err) { - console.warn("Error in /recorded-daily-video", err); + console.error("Error in /recorded-daily-video", err); return res.status(500).json({ message: "something went wrong" }); } } diff --git a/apps/web/pages/api/teams/create.ts b/apps/web/pages/api/teams/create.ts new file mode 100644 index 0000000000..b0c8935839 --- /dev/null +++ b/apps/web/pages/api/teams/create.ts @@ -0,0 +1,92 @@ +import type { NextApiRequest, NextApiResponse } from "next"; +import type Stripe from "stripe"; +import { z } from "zod"; + +import stripe from "@calcom/features/ee/payments/server/stripe"; +import { HttpError } from "@calcom/lib/http-error"; +import { defaultHandler, defaultResponder } from "@calcom/lib/server"; +import prisma from "@calcom/prisma"; +import { MembershipRole } from "@calcom/prisma/enums"; + +const querySchema = z.object({ + session_id: z.string().min(1), +}); + +const checkoutSessionMetadataSchema = z.object({ + teamName: z.string(), + teamSlug: z.string(), + userId: z.string().transform(Number), +}); + +const generateRandomString = () => { + return Math.random().toString(36).substring(2, 10); +}; + +async function handler(req: NextApiRequest, res: NextApiResponse) { + const { session_id } = querySchema.parse(req.query); + + const checkoutSession = await stripe.checkout.sessions.retrieve(session_id, { + expand: ["subscription"], + }); + if (!checkoutSession) throw new HttpError({ statusCode: 404, message: "Checkout session not found" }); + + const subscription = checkoutSession.subscription as Stripe.Subscription; + + if (checkoutSession.payment_status !== "paid") + throw new HttpError({ statusCode: 402, message: "Payment required" }); + + // Let's query to ensure that the team metadata carried over from the checkout session. + const parseCheckoutSessionMetadata = checkoutSessionMetadataSchema.safeParse(checkoutSession.metadata); + + if (!parseCheckoutSessionMetadata.success) { + console.error( + "Team metadata not found in checkout session", + parseCheckoutSessionMetadata.error, + checkoutSession.id + ); + } + + if (!checkoutSession.metadata?.userId) { + throw new HttpError({ + statusCode: 400, + message: "Can't publish team/org without userId", + }); + } + + const checkoutSessionMetadata = parseCheckoutSessionMetadata.success + ? parseCheckoutSessionMetadata.data + : { + teamName: checkoutSession?.metadata?.teamName ?? generateRandomString(), + teamSlug: checkoutSession?.metadata?.teamSlug ?? generateRandomString(), + userId: checkoutSession.metadata.userId, + }; + + const team = await prisma.team.create({ + data: { + name: checkoutSessionMetadata.teamName, + slug: checkoutSessionMetadata.teamSlug, + members: { + create: { + userId: checkoutSessionMetadata.userId as number, + role: MembershipRole.OWNER, + accepted: true, + }, + }, + metadata: { + paymentId: checkoutSession.id, + subscriptionId: subscription.id || null, + subscriptionItemId: subscription.items.data[0].id || null, + }, + }, + }); + + // Sync Services: Close.com + // closeComUpdateTeam(prevTeam, team); + + // redirect to team screen + res.redirect(302, `/settings/teams/${team.id}/onboard-members?event=team_created`); +} + +export default defaultHandler({ + GET: Promise.resolve({ default: defaultResponder(handler) }), +}); diff --git a/apps/web/pages/apps/installed/[category].tsx b/apps/web/pages/apps/installed/[category].tsx index 8e6d8c2404..2cffde2cdf 100644 --- a/apps/web/pages/apps/installed/[category].tsx +++ b/apps/web/pages/apps/installed/[category].tsx @@ -54,8 +54,8 @@ const IntegrationsContainer = ({ automation: Share2, analytics: BarChart, payment: CreditCard, - web3: BarChart, // deprecated other: Grid, + web3: CreditCard, // deprecated video: Video, // deprecated messaging: Mail, crm: Contact, diff --git a/apps/web/pages/auth/login.tsx b/apps/web/pages/auth/login.tsx index c6c32275d6..847023c440 100644 --- a/apps/web/pages/auth/login.tsx +++ b/apps/web/pages/auth/login.tsx @@ -5,7 +5,6 @@ import type { GetServerSidePropsContext } from "next"; import { getCsrfToken, signIn } from "next-auth/react"; import Link from "next/link"; import { useRouter } from "next/navigation"; -import type { CSSProperties } from "react"; import { useState } from "react"; import { FormProvider, useForm } from "react-hook-form"; import { FaGoogle } from "react-icons/fa"; @@ -174,15 +173,7 @@ inferSSRProps & WithNonceProps<{}>) { : isSAMLLoginEnabled && !isLoading && data?.connectionExists; return ( -
+
& WithNonceProps<{}>) { type="submit" color="primary" disabled={formState.isSubmitting} - className="w-full justify-center dark:bg-white dark:text-black"> + className="w-full justify-center"> {twoFactorRequired ? t("submit") : t("sign_in")}
@@ -251,6 +242,7 @@ inferSSRProps & WithNonceProps<{}>) { ) : null} @@ -376,7 +382,9 @@ export default function Signup({ disabled={ !!formMethods.formState.errors.username || !!formMethods.formState.errors.email || - premiumUsername + premiumUsername || + isSubmitting || + isGoogleLoading } className={classNames( "w-full justify-center rounded-md text-center", @@ -390,6 +398,7 @@ export default function Signup({ } if (!formMethods.getValues("email")) { formMethods.trigger("email"); + return; } const username = formMethods.getValues("username"); @@ -410,17 +419,20 @@ export default function Signup({ )}
{/* Already have an account & T&C */} -
+
- - {t("already_have_account")} - +
+

{t("already_have_account")}

+ + {t("sign_in")} + +
By signing up, you agree to our{" "} - Terms of Service{" "} + Terms{" "} - and{" "} + &{" "} Privacy Policy. @@ -428,7 +440,12 @@ export default function Signup({
-
+
{IS_CALCOM && (
@@ -443,7 +460,7 @@ export default function Signup({
)}
@@ -502,7 +519,7 @@ export const getServerSideProps = async (ctx: GetServerSidePropsContext) => { // username + email prepopulated from query params const { username: preFillusername, email: prefilEmail } = querySchema.parse(ctx.query); - if (process.env.NEXT_PUBLIC_DISABLE_SIGNUP === "true" || flags["disable-signup"]) { + if ((process.env.NEXT_PUBLIC_DISABLE_SIGNUP === "true" && !token) || flags["disable-signup"]) { return { notFound: true, }; @@ -625,5 +642,4 @@ export const getServerSideProps = async (ctx: GetServerSidePropsContext) => { }; }; -Signup.isThemeSupported = false; Signup.PageWrapper = PageWrapper; diff --git a/apps/web/pages/video/[uid].tsx b/apps/web/pages/video/[uid].tsx index 0f8340501c..5661ec9b62 100644 --- a/apps/web/pages/video/[uid].tsx +++ b/apps/web/pages/video/[uid].tsx @@ -1,10 +1,8 @@ -import type { DailyEventObjectRecordingStarted } from "@daily-co/daily-js"; import DailyIframe from "@daily-co/daily-js"; import MarkdownIt from "markdown-it"; import type { GetServerSidePropsContext } from "next"; import Head from "next/head"; import { useState, useEffect, useRef } from "react"; -import z from "zod"; import dayjs from "@calcom/dayjs"; import { getServerSession } from "@calcom/features/auth/lib/getServerSession"; @@ -21,19 +19,12 @@ import PageWrapper from "@components/PageWrapper"; import { ssrInit } from "@server/lib/ssr"; -const recordingStartedEventResponse = z - .object({ - recordingId: z.string(), - }) - .passthrough(); - export type JoinCallPageProps = inferSSRProps; const md = new MarkdownIt("default", { html: true, breaks: true, linkify: true }); export default function JoinCall(props: JoinCallPageProps) { const { t } = useLocale(); const { meetingUrl, meetingPassword, booking } = props; - const recordingId = useRef(null); useEffect(() => { const callFrame = DailyIframe.createFrame({ @@ -61,31 +52,12 @@ export default function JoinCall(props: JoinCallPageProps) { ...(typeof meetingPassword === "string" && { token: meetingPassword }), }); callFrame.join(); - callFrame.on("recording-started", onRecordingStarted).on("recording-stopped", onRecordingStopped); return () => { callFrame.destroy(); }; // eslint-disable-next-line react-hooks/exhaustive-deps }, []); - const onRecordingStopped = () => { - const data = { recordingId: recordingId.current, bookingUID: booking.uid }; - - fetch("/api/recorded-daily-video", { - method: "POST", - body: JSON.stringify(data), - }).catch((err) => { - console.log(err); - }); - - recordingId.current = null; - }; - - const onRecordingStarted = (event?: DailyEventObjectRecordingStarted | undefined) => { - const response = recordingStartedEventResponse.parse(event); - recordingId.current = response.recordingId; - }; - const title = `${APP_NAME} Video`; return ( <> diff --git a/apps/web/playwright/auth/forgot-password.e2e.ts b/apps/web/playwright/auth/forgot-password.e2e.ts index 0524a538e0..ad4d30aa3a 100644 --- a/apps/web/playwright/auth/forgot-password.e2e.ts +++ b/apps/web/playwright/auth/forgot-password.e2e.ts @@ -24,7 +24,7 @@ test("Can reset forgotten password", async ({ page, users }) => { // there should be one, otherwise we throw const { id } = await prisma.resetPasswordRequest.findFirstOrThrow({ where: { - email: `${user.username}@example.com`, + email: user.email, }, select: { id: true, @@ -37,7 +37,7 @@ test("Can reset forgotten password", async ({ page, users }) => { // Test when a user changes his email after starting the password reset flow await prisma.user.update({ where: { - email: `${user.username}@example.com`, + email: user.email, }, data: { email: `${user.username}-2@example.com`, @@ -54,7 +54,7 @@ test("Can reset forgotten password", async ({ page, users }) => { email: `${user.username}-2@example.com`, }, data: { - email: `${user.username}@example.com`, + email: user.email, }, }); @@ -75,7 +75,7 @@ test("Can reset forgotten password", async ({ page, users }) => { // we're not logging in to the UI to speed up test performance. const updatedUser = await prisma.user.findUniqueOrThrow({ where: { - email: `${user.username}@example.com`, + email: user.email, }, select: { id: true, @@ -84,10 +84,10 @@ test("Can reset forgotten password", async ({ page, users }) => { }); // eslint-disable-next-line @typescript-eslint/no-non-null-assertion - await expect(await verifyPassword(newPassword, updatedUser.password!)).toBeTruthy(); + expect(await verifyPassword(newPassword, updatedUser.password!)).toBeTruthy(); // finally, make sure the same URL cannot be used to reset the password again, as it should be expired. await page.goto(`/auth/forgot-password/${id}`); - await page.waitForSelector("text=That request is expired."); + await expect(page.locator(`text=Whoops`)).toBeVisible(); }); diff --git a/apps/web/playwright/fixtures/users.ts b/apps/web/playwright/fixtures/users.ts index 16b362c2fa..35884d7a5d 100644 --- a/apps/web/playwright/fixtures/users.ts +++ b/apps/web/playwright/fixtures/users.ts @@ -673,8 +673,8 @@ export async function login( await passwordLocator.fill(user.password ?? user.username!); await signInLocator.click(); - // Moving away from waiting 2 seconds, as it is not a reliable way to expect session to be started - await page.waitForLoadState("networkidle"); + // waiting for specific login request to resolve + await page.waitForResponse(/\/api\/auth\/callback\/credentials/); } export async function apiLogin( diff --git a/apps/web/playwright/lib/testUtils.ts b/apps/web/playwright/lib/testUtils.ts index c260ff9e00..c334eb5d05 100644 --- a/apps/web/playwright/lib/testUtils.ts +++ b/apps/web/playwright/lib/testUtils.ts @@ -328,3 +328,11 @@ export function generateTotpCode(email: string) { totp.options = { step: 90 }; return totp.generate(secret); } + +export async function fillStripeTestCheckout(page: Page) { + await page.fill("[name=cardNumber]", "4242424242424242"); + await page.fill("[name=cardExpiry]", "12/30"); + await page.fill("[name=cardCvc]", "111"); + await page.fill("[name=billingName]", "Stripe Stripeson"); + await page.click(".SubmitButton--complete-Shimmer"); +} diff --git a/apps/web/playwright/locale.e2e.ts b/apps/web/playwright/locale.e2e.ts index f84a8ab85e..067f8a3d46 100644 --- a/apps/web/playwright/locale.e2e.ts +++ b/apps/web/playwright/locale.e2e.ts @@ -11,7 +11,8 @@ test.describe("unauthorized user sees correct translations (de)", async () => { test("should use correct translations and html attributes", async ({ page }) => { await page.goto("/"); - await page.waitForLoadState("load"); + // we dont need to wait for styles and images, only for dom + await page.waitForLoadState("domcontentloaded"); await page.locator("html[lang=de]").waitFor({ state: "attached" }); await page.locator("html[dir=ltr]").waitFor({ state: "attached" }); @@ -35,7 +36,7 @@ test.describe("unauthorized user sees correct translations (ar)", async () => { test("should use correct translations and html attributes", async ({ page }) => { await page.goto("/"); - await page.waitForLoadState("load"); + await page.waitForLoadState("domcontentloaded"); await page.locator("html[lang=ar]").waitFor({ state: "attached" }); await page.locator("html[dir=rtl]").waitFor({ state: "attached" }); @@ -59,7 +60,7 @@ test.describe("unauthorized user sees correct translations (zh)", async () => { test("should use correct translations and html attributes", async ({ page }) => { await page.goto("/"); - await page.waitForLoadState("load"); + await page.waitForLoadState("domcontentloaded"); await page.locator("html[lang=zh]").waitFor({ state: "attached" }); await page.locator("html[dir=ltr]").waitFor({ state: "attached" }); @@ -83,7 +84,7 @@ test.describe("unauthorized user sees correct translations (zh-CN)", async () => test("should use correct translations and html attributes", async ({ page }) => { await page.goto("/"); - await page.waitForLoadState("load"); + await page.waitForLoadState("domcontentloaded"); await page.locator("html[lang=zh-CN]").waitFor({ state: "attached" }); await page.locator("html[dir=ltr]").waitFor({ state: "attached" }); @@ -107,7 +108,7 @@ test.describe("unauthorized user sees correct translations (zh-TW)", async () => test("should use correct translations and html attributes", async ({ page }) => { await page.goto("/"); - await page.waitForLoadState("load"); + await page.waitForLoadState("domcontentloaded"); await page.locator("html[lang=zh-TW]").waitFor({ state: "attached" }); await page.locator("html[dir=ltr]").waitFor({ state: "attached" }); @@ -131,7 +132,7 @@ test.describe("unauthorized user sees correct translations (pt)", async () => { test("should use correct translations and html attributes", async ({ page }) => { await page.goto("/"); - await page.waitForLoadState("load"); + await page.waitForLoadState("domcontentloaded"); await page.locator("html[lang=pt]").waitFor({ state: "attached" }); await page.locator("html[dir=ltr]").waitFor({ state: "attached" }); @@ -155,7 +156,7 @@ test.describe("unauthorized user sees correct translations (pt-br)", async () => test("should use correct translations and html attributes", async ({ page }) => { await page.goto("/"); - await page.waitForLoadState("load"); + await page.waitForLoadState("domcontentloaded"); await page.locator("html[lang=pt-BR]").waitFor({ state: "attached" }); await page.locator("html[dir=ltr]").waitFor({ state: "attached" }); @@ -179,7 +180,7 @@ test.describe("unauthorized user sees correct translations (es-419)", async () = test("should use correct translations and html attributes", async ({ page }) => { await page.goto("/"); - await page.waitForLoadState("load"); + await page.waitForLoadState("domcontentloaded"); // es-419 is disabled in i18n config, so es should be used as fallback await page.locator("html[lang=es]").waitFor({ state: "attached" }); @@ -213,57 +214,61 @@ test.describe("authorized user sees correct translations (de)", async () => { await test.step("should navigate to /event-types and show German translations", async () => { await page.goto("/event-types"); - await page.waitForLoadState("networkidle"); + await page.waitForLoadState("domcontentloaded"); await page.locator("html[lang=de]").waitFor({ state: "attached" }); await page.locator("html[dir=ltr]").waitFor({ state: "attached" }); { - const locator = page.getByText("Ereignistypen", { exact: true }); - expect(await locator.count()).toBeGreaterThanOrEqual(1); + const locator = page.getByRole("heading", { name: "Ereignistypen", exact: true }); + // locator.count() does not wait for elements + // but event-types page is client side, so it takes some time to render html + // thats why we need to use method that awaits for the element + // https://github.com/microsoft/playwright/issues/14278#issuecomment-1131754679 + await expect(locator).toHaveCount(1); } { const locator = page.getByText("Event Types", { exact: true }); - expect(await locator.count()).toEqual(0); + await expect(locator).toHaveCount(0); } }); await test.step("should navigate to /bookings and show German translations", async () => { await page.goto("/bookings"); - await page.waitForLoadState("networkidle"); + await page.waitForLoadState("domcontentloaded"); await page.locator("html[lang=de]").waitFor({ state: "attached" }); await page.locator("html[dir=ltr]").waitFor({ state: "attached" }); { - const locator = page.getByText("Buchungen", { exact: true }); - expect(await locator.count()).toBeGreaterThanOrEqual(1); + const locator = page.getByRole("heading", { name: "Buchungen", exact: true }); + await expect(locator).toHaveCount(1); } { const locator = page.getByText("Bookings", { exact: true }); - expect(await locator.count()).toEqual(0); + await expect(locator).toHaveCount(0); } }); await test.step("should reload the /bookings and show German translations", async () => { await page.reload(); - await page.waitForLoadState("networkidle"); + await page.waitForLoadState("domcontentloaded"); await page.locator("html[lang=de]").waitFor({ state: "attached" }); await page.locator("html[dir=ltr]").waitFor({ state: "attached" }); { - const locator = page.getByText("Buchungen", { exact: true }); - expect(await locator.count()).toBeGreaterThanOrEqual(1); + const locator = page.getByRole("heading", { name: "Buchungen", exact: true }); + await expect(locator).toHaveCount(1); } { const locator = page.getByText("Bookings", { exact: true }); - expect(await locator.count()).toEqual(0); + await expect(locator).toHaveCount(0); } }); }); @@ -285,57 +290,57 @@ test.describe("authorized user sees correct translations (pt-br)", async () => { await test.step("should navigate to /event-types and show Brazil-Portuguese translations", async () => { await page.goto("/event-types"); - await page.waitForLoadState("networkidle"); + await page.waitForLoadState("domcontentloaded"); await page.locator("html[lang=pt-br]").waitFor({ state: "attached" }); await page.locator("html[dir=ltr]").waitFor({ state: "attached" }); { - const locator = page.getByText("Tipos de Eventos", { exact: true }); - expect(await locator.count()).toBeGreaterThanOrEqual(1); + const locator = page.getByRole("heading", { name: "Tipos de Eventos", exact: true }); + await expect(locator).toHaveCount(1); } { const locator = page.getByText("Event Types", { exact: true }); - expect(await locator.count()).toEqual(0); + await expect(locator).toHaveCount(0); } }); await test.step("should navigate to /bookings and show Brazil-Portuguese translations", async () => { await page.goto("/bookings"); - await page.waitForLoadState("networkidle"); + await page.waitForLoadState("domcontentloaded"); await page.locator("html[lang=pt-br]").waitFor({ state: "attached" }); await page.locator("html[dir=ltr]").waitFor({ state: "attached" }); { - const locator = page.getByText("Reservas", { exact: true }); - expect(await locator.count()).toBeGreaterThanOrEqual(1); + const locator = page.getByRole("heading", { name: "Reservas", exact: true }); + await expect(locator).toHaveCount(1); } { const locator = page.getByText("Bookings", { exact: true }); - expect(await locator.count()).toEqual(0); + await expect(locator).toHaveCount(0); } }); await test.step("should reload the /bookings and show Brazil-Portuguese translations", async () => { await page.reload(); - await page.waitForLoadState("networkidle"); + await page.waitForLoadState("domcontentloaded"); await page.locator("html[lang=pt-br]").waitFor({ state: "attached" }); await page.locator("html[dir=ltr]").waitFor({ state: "attached" }); { - const locator = page.getByText("Reservas", { exact: true }); - expect(await locator.count()).toBeGreaterThanOrEqual(1); + const locator = page.getByRole("heading", { name: "Reservas", exact: true }); + await expect(locator).toHaveCount(1); } { const locator = page.getByText("Bookings", { exact: true }); - expect(await locator.count()).toEqual(0); + await expect(locator).toHaveCount(0); } }); }); @@ -357,57 +362,57 @@ test.describe("authorized user sees correct translations (ar)", async () => { await test.step("should navigate to /event-types and show Arabic translations", async () => { await page.goto("/event-types"); - await page.waitForLoadState("networkidle"); + await page.waitForLoadState("domcontentloaded"); await page.locator("html[lang=ar]").waitFor({ state: "attached" }); await page.locator("html[dir=rtl]").waitFor({ state: "attached" }); { - const locator = page.getByText("أنواع الحدث", { exact: true }); - expect(await locator.count()).toBeGreaterThanOrEqual(1); + const locator = page.getByRole("heading", { name: "أنواع الحدث", exact: true }); + await expect(locator).toHaveCount(1); } { const locator = page.getByText("Event Types", { exact: true }); - expect(await locator.count()).toEqual(0); + await expect(locator).toHaveCount(0); } }); await test.step("should navigate to /bookings and show Arabic translations", async () => { await page.goto("/bookings"); - await page.waitForLoadState("networkidle"); + await page.waitForLoadState("domcontentloaded"); await page.locator("html[lang=ar]").waitFor({ state: "attached" }); await page.locator("html[dir=rtl]").waitFor({ state: "attached" }); { - const locator = page.getByText("عمليات الحجز", { exact: true }); - expect(await locator.count()).toBeGreaterThanOrEqual(1); + const locator = page.getByRole("heading", { name: "عمليات الحجز", exact: true }); + await expect(locator).toHaveCount(1); } { const locator = page.getByText("Bookings", { exact: true }); - expect(await locator.count()).toEqual(0); + await expect(locator).toHaveCount(0); } }); await test.step("should reload the /bookings and show Arabic translations", async () => { await page.reload(); - await page.waitForLoadState("networkidle"); + await page.waitForLoadState("domcontentloaded"); await page.locator("html[lang=ar]").waitFor({ state: "attached" }); await page.locator("html[dir=rtl]").waitFor({ state: "attached" }); { - const locator = page.getByText("عمليات الحجز", { exact: true }); - expect(await locator.count()).toBeGreaterThanOrEqual(1); + const locator = page.getByRole("heading", { name: "عمليات الحجز", exact: true }); + await expect(locator).toHaveCount(1); } { const locator = page.getByText("Bookings", { exact: true }); - expect(await locator.count()).toEqual(0); + await expect(locator).toHaveCount(0); } }); }); @@ -429,7 +434,7 @@ test.describe("authorized user sees changed translations (de->ar)", async () => await test.step("should change the language and show Arabic translations", async () => { await page.goto("/settings/my-account/general"); - await page.waitForLoadState("networkidle"); + await page.waitForLoadState("domcontentloaded"); await page.locator(".bg-default > div > div:nth-child(2)").first().click(); await page.locator("#react-select-2-option-0").click(); @@ -444,32 +449,33 @@ test.describe("authorized user sees changed translations (de->ar)", async () => await page.locator("html[dir=rtl]").waitFor({ state: "attached" }); { - const locator = page.getByText("عام", { exact: true }); // "general" - expect(await locator.count()).toBeGreaterThanOrEqual(1); + // at least one is visible + const locator = page.getByText("عام", { exact: true }).last(); // "general" + await expect(locator).toBeVisible(); } { const locator = page.getByText("Allgemein", { exact: true }); // "general" - expect(await locator.count()).toEqual(0); + await expect(locator).toHaveCount(0); } }); await test.step("should reload and show Arabic translations", async () => { await page.reload(); - await page.waitForLoadState("networkidle"); + await page.waitForLoadState("domcontentloaded"); await page.locator("html[lang=ar]").waitFor({ state: "attached" }); await page.locator("html[dir=rtl]").waitFor({ state: "attached" }); { - const locator = page.getByText("عام", { exact: true }); // "general" - expect(await locator.count()).toBeGreaterThanOrEqual(1); + const locator = page.getByText("عام", { exact: true }).last(); // "general" + await expect(locator).toBeVisible(); } { const locator = page.getByText("Allgemein", { exact: true }); // "general" - expect(await locator.count()).toEqual(0); + await expect(locator).toHaveCount(0); } }); }); @@ -491,7 +497,7 @@ test.describe("authorized user sees changed translations (de->pt-BR) [locale1]", await test.step("should change the language and show Brazil-Portuguese translations", async () => { await page.goto("/settings/my-account/general"); - await page.waitForLoadState("networkidle"); + await page.waitForLoadState("domcontentloaded"); await page.locator(".bg-default > div > div:nth-child(2)").first().click(); await page.locator("#react-select-2-option-14").click(); @@ -506,32 +512,32 @@ test.describe("authorized user sees changed translations (de->pt-BR) [locale1]", await page.locator("html[dir=ltr]").waitFor({ state: "attached" }); { - const locator = page.getByText("Geral", { exact: true }); // "general" - expect(await locator.count()).toBeGreaterThanOrEqual(1); + const locator = page.getByText("Geral", { exact: true }).last(); // "general" + await expect(locator).toBeVisible(); } { const locator = page.getByText("Allgemein", { exact: true }); // "general" - expect(await locator.count()).toEqual(0); + await expect(locator).toHaveCount(0); } }); await test.step("should reload and show Brazil-Portuguese translations", async () => { await page.reload(); - await page.waitForLoadState("networkidle"); + await page.waitForLoadState("domcontentloaded"); await page.locator("html[lang=pt-BR]").waitFor({ state: "attached" }); await page.locator("html[dir=ltr]").waitFor({ state: "attached" }); { - const locator = page.getByText("Geral", { exact: true }); // "general" - expect(await locator.count()).toBeGreaterThanOrEqual(1); + const locator = page.getByText("Geral", { exact: true }).last(); // "general" + await expect(locator).toBeVisible(); } { const locator = page.getByText("Allgemein", { exact: true }); // "general" - expect(await locator.count()).toEqual(0); + await expect(locator).toHaveCount(0); } }); }); diff --git a/apps/web/playwright/managed-event-types.e2e.ts b/apps/web/playwright/managed-event-types.e2e.ts index a0323ed8b7..3db81e362c 100644 --- a/apps/web/playwright/managed-event-types.e2e.ts +++ b/apps/web/playwright/managed-event-types.e2e.ts @@ -1,9 +1,15 @@ -import { expect } from "@playwright/test"; import type { Page } from "@playwright/test"; +import { expect } from "@playwright/test"; + +import { IS_TEAM_BILLING_ENABLED } from "@calcom/lib/constants"; import { test } from "./lib/fixtures"; -import { selectFirstAvailableTimeSlotNextMonth, bookTimeSlot } from "./lib/testUtils"; -import { localize } from "./lib/testUtils"; +import { + bookTimeSlot, + fillStripeTestCheckout, + localize, + selectFirstAvailableTimeSlotNextMonth, +} from "./lib/testUtils"; test.afterEach(({ users }) => users.deleteAll()); @@ -21,18 +27,20 @@ test.describe("Managed Event Types tests", () => { await test.step("Managed event option exists for team admin", async () => { // Filling team creation form wizard - await page.locator('input[name="name"]').waitFor(); await page.locator('input[name="name"]').fill(`${adminUser.username}'s Team`); - await page.locator("text=Continue").click(); - await page.waitForURL(/\/settings\/teams\/(\d+)\/onboard-members$/i); + await page.click("[type=submit]"); + // TODO: Figure out a way to make this more reliable + // eslint-disable-next-line playwright/no-conditional-in-test + if (IS_TEAM_BILLING_ENABLED) await fillStripeTestCheckout(page); + await page.waitForURL(/\/settings\/teams\/(\d+)\/onboard-members.*$/i); await page.getByTestId("new-member-button").click(); await page.locator('[placeholder="email\\@example\\.com"]').fill(`${memberUser.username}@example.com`); await page.getByTestId("invite-new-member-button").click(); // wait for the second member to be added to the pending-member-list. await page.getByTestId("pending-member-list").locator("li:nth-child(2)").waitFor(); // and publish - await page.locator("text=Publish team").click(); - await page.waitForURL("/settings/teams/**"); + await page.locator("[data-testid=publish-button]").click(); + await expect(page).toHaveURL(/\/settings\/teams\/(\d+)\/profile$/i); // Going to create an event type await page.goto("/event-types"); await page.getByTestId("new-event-type").click(); diff --git a/apps/web/playwright/organization/organization-creation.e2e.ts b/apps/web/playwright/organization/organization-creation.e2e.ts index 19b3477026..44ccd43bad 100644 --- a/apps/web/playwright/organization/organization-creation.e2e.ts +++ b/apps/web/playwright/organization/organization-creation.e2e.ts @@ -54,7 +54,6 @@ test.describe("Organization", () => { // Code verification await expect(page.locator("#modal-title")).toBeVisible(); await page.locator("input[name='2fa1']").fill(generateTotpCode(`john@${orgDomain}.com`)); - await page.locator("button:text('Verify')").click(); // Check admin email about DNS pending action await expectInvitationEmailToBeReceived( diff --git a/apps/web/playwright/organization/organization-invitation.e2e.ts b/apps/web/playwright/organization/organization-invitation.e2e.ts index f84c639665..2166b9dcad 100644 --- a/apps/web/playwright/organization/organization-invitation.e2e.ts +++ b/apps/web/playwright/organization/organization-invitation.e2e.ts @@ -48,8 +48,6 @@ test.describe("Organization", () => { await newPage.waitForLoadState("networkidle"); // Check required fields - await newPage.locator("button[type=submit]").click(); - await expect(newPage.locator(".text-red-700")).toHaveCount(3); // 3 password hints await newPage.locator("input[name=password]").fill(`P4ssw0rd!`); await newPage.locator("button[type=submit]").click(); await newPage.waitForURL("/getting-started?from=signup"); @@ -78,8 +76,8 @@ test.describe("Organization", () => { await inviteLinkPage.waitForLoadState("networkidle"); // Check required fields - await inviteLinkPage.locator("button[type=submit]").click(); - await expect(inviteLinkPage.locator(".text-red-700")).toHaveCount(4); // email + 3 password hints + const button = inviteLinkPage.locator("button[type=submit][disabled]"); + await expect(button).toBeVisible(); // email + 3 password hints // Happy path await inviteLinkPage.locator("input[name=email]").fill(`rick@domain-${Date.now()}.com`); diff --git a/apps/web/playwright/settings-admin.e2e.ts b/apps/web/playwright/settings-admin.e2e.ts new file mode 100644 index 0000000000..d1f15f281c --- /dev/null +++ b/apps/web/playwright/settings-admin.e2e.ts @@ -0,0 +1,33 @@ +import { expect } from "@playwright/test"; + +import { test } from "./lib/fixtures"; + +test.describe.configure({ mode: "parallel" }); + +test.describe("Settings/admin A/B tests", () => { + test("should point to the /future/settings/admin page", async ({ page, users, context }) => { + await context.addCookies([ + { + name: "x-calcom-future-routes-override", + value: "1", + url: "http://localhost:3000", + }, + ]); + const user = await users.create(); + await user.apiLogin(); + + await page.goto("/settings/admin"); + + await page.waitForLoadState(); + + const dataNextJsRouter = await page.evaluate(() => + window.document.documentElement.getAttribute("data-nextjs-router") + ); + + expect(dataNextJsRouter).toEqual("app"); + + const locator = page.getByRole("heading", { name: "Feature Flags" }); + + await expect(locator).toBeVisible(); + }); +}); diff --git a/apps/web/playwright/signup.e2e.ts b/apps/web/playwright/signup.e2e.ts index 60775a2143..65da61ebe2 100644 --- a/apps/web/playwright/signup.e2e.ts +++ b/apps/web/playwright/signup.e2e.ts @@ -4,7 +4,8 @@ import { randomBytes } from "crypto"; import { APP_NAME, IS_PREMIUM_USERNAME_ENABLED, IS_MAILHOG_ENABLED } from "@calcom/lib/constants"; import { test } from "./lib/fixtures"; -import { getEmailsReceivedByUser } from "./lib/testUtils"; +import { getEmailsReceivedByUser, localize } from "./lib/testUtils"; +import { expectInvitationEmailToBeReceived } from "./team/expects"; test.describe.configure({ mode: "parallel" }); @@ -12,8 +13,9 @@ test.describe("Signup Flow Test", async () => { test.beforeEach(async ({ features }) => { features.reset(); // This resets to the inital state not an empt yarray }); - test.afterAll(async ({ users }) => { + test.afterAll(async ({ users, emails }) => { await users.deleteAll(); + emails?.deleteAll(); }); test("Username is taken", async ({ page, users }) => { // log in trail user @@ -228,4 +230,55 @@ test.describe("Signup Flow Test", async () => { const verifyEmail = receivedEmails?.items[0]; expect(verifyEmail?.subject).toBe(`${APP_NAME}: Verify your account`); }); + test("If signup is disabled allow team invites", async ({ browser, page, users, emails }) => { + // eslint-disable-next-line playwright/no-skipped-test + test.skip(process.env.NEXT_PUBLIC_DISABLE_SIGNUP !== "true", "Skipping due to signup being enabled"); + + const t = await localize("en"); + const teamOwner = await users.create(undefined, { hasTeam: true }); + const { team } = await teamOwner.getFirstTeam(); + await teamOwner.apiLogin(); + await page.goto(`/settings/teams/${team.id}/members`); + await page.waitForLoadState("networkidle"); + + await test.step("Invite User to team", async () => { + // TODO: This invite logic should live in a fixture - its used in team and orgs invites (Duplicated from team/org invites) + const invitedUserEmail = `rick_${Date.now()}@domain-${Date.now()}.com`; + await page.locator(`button:text("${t("add")}")`).click(); + await page.locator('input[name="inviteUser"]').fill(invitedUserEmail); + await page.locator(`button:text("${t("send_invite")}")`).click(); + await page.waitForLoadState("networkidle"); + const inviteLink = await expectInvitationEmailToBeReceived( + page, + emails, + invitedUserEmail, + `${team.name}'s admin invited you to join the team ${team.name} on Cal.com`, + "signup?token" + ); + + //Check newly invited member exists and is pending + await expect( + page.locator(`[data-testid="email-${invitedUserEmail.replace("@", "")}-pending"]`) + ).toHaveCount(1); + + // eslint-disable-next-line playwright/no-conditional-in-test + if (!inviteLink) return; + + // Follow invite link to new window + const context = await browser.newContext(); + const newPage = await context.newPage(); + await newPage.goto(inviteLink); + await newPage.waitForLoadState("networkidle"); + + const url = new URL(newPage.url()); + expect(url.pathname).toBe("/signup"); + + // Check required fields + await newPage.locator("input[name=password]").fill(`P4ssw0rd!`); + await newPage.locator("button[type=submit]").click(); + await newPage.waitForURL("/getting-started?from=signup"); + await newPage.close(); + await context.close(); + }); + }); }); diff --git a/apps/web/playwright/team/team-invitation.e2e.ts b/apps/web/playwright/team/team-invitation.e2e.ts index 40308fdd71..44f085cad0 100644 --- a/apps/web/playwright/team/team-invitation.e2e.ts +++ b/apps/web/playwright/team/team-invitation.e2e.ts @@ -51,8 +51,10 @@ test.describe("Team", () => { await newPage.waitForLoadState("networkidle"); // Check required fields - await newPage.locator("button[type=submit]").click(); - await expect(newPage.locator('[data-testid="hint-error"]')).toHaveCount(3); + const button = newPage.locator("button[type=submit][disabled]"); + await expect(button).toBeVisible(); // email + 3 password hints + + // Check required fields await newPage.locator("input[name=password]").fill(`P4ssw0rd!`); await newPage.locator("button[type=submit]").click(); await newPage.waitForURL("/getting-started?from=signup"); diff --git a/apps/web/playwright/teams.e2e.ts b/apps/web/playwright/teams.e2e.ts index ba9f2960d6..4c8cae0bd5 100644 --- a/apps/web/playwright/teams.e2e.ts +++ b/apps/web/playwright/teams.e2e.ts @@ -1,34 +1,32 @@ import type { Page } from "@playwright/test"; import { expect } from "@playwright/test"; +import { IS_TEAM_BILLING_ENABLED } from "@calcom/lib/constants"; import { prisma } from "@calcom/prisma"; import { MembershipRole, SchedulingType } from "@calcom/prisma/enums"; import { test } from "./lib/fixtures"; -import { bookTimeSlot, selectFirstAvailableTimeSlotNextMonth, testName, todo } from "./lib/testUtils"; +import { + bookTimeSlot, + fillStripeTestCheckout, + selectFirstAvailableTimeSlotNextMonth, + testName, + todo, +} from "./lib/testUtils"; test.describe.configure({ mode: "parallel" }); test.describe("Teams - NonOrg", () => { test.afterEach(({ users }) => users.deleteAll()); - test("Can create teams via Wizard", async ({ page, users }) => { - const user = await users.create(); - const inviteeEmail = `${user.username}+invitee@example.com`; - await user.apiLogin(); - await page.goto("/teams"); - await test.step("Can create team", async () => { - // Click text=Create Team - await page.locator("text=Create Team").click(); - await page.waitForURL("/settings/teams/new"); - // Fill input[name="name"] - await page.locator('input[name="name"]').fill(`${user.username}'s Team`); - // Click text=Continue - await page.locator("text=Continue").click(); - await page.waitForURL(/\/settings\/teams\/(\d+)\/onboard-members$/i); - await page.waitForSelector('[data-testid="pending-member-list"]'); - expect(await page.locator('[data-testid="pending-member-item"]').count()).toBe(1); - }); + test("Team Onboarding Invite Members", async ({ page, users }) => { + const user = await users.create(undefined, { hasTeam: true }); + const { team } = await user.getFirstTeam(); + const inviteeEmail = `${user.username}+invitee@example.com`; + + await user.apiLogin(); + + page.goto(`/settings/teams/${team.id}/onboard-members`); await test.step("Can add members", async () => { // Click [data-testid="new-member-button"] @@ -50,9 +48,9 @@ test.describe("Teams - NonOrg", () => { await prisma.user.delete({ where: { email: inviteeEmail } }); }); - await test.step("Can publish team", async () => { - await page.locator("text=Publish team").click(); - await page.waitForURL(/\/settings\/teams\/(\d+)\/profile$/i); + await test.step("Finishing brings you to team profile page", async () => { + await page.locator("[data-testid=publish-button]").click(); + await expect(page).toHaveURL(/\/settings\/teams\/(\d+)\/profile$/i); }); await test.step("Can disband team", async () => { @@ -66,7 +64,6 @@ test.describe("Teams - NonOrg", () => { }); test("Can create a booking for Collective EventType", async ({ page, users }) => { - const ownerObj = { username: "pro-user", name: "pro-user" }; const teamMatesObj = [ { name: "teammate-1" }, { name: "teammate-2" }, @@ -74,11 +71,14 @@ test.describe("Teams - NonOrg", () => { { name: "teammate-4" }, ]; - const owner = await users.create(ownerObj, { - hasTeam: true, - teammates: teamMatesObj, - schedulingType: SchedulingType.COLLECTIVE, - }); + const owner = await users.create( + { username: "pro-user", name: "pro-user" }, + { + hasTeam: true, + teammates: teamMatesObj, + schedulingType: SchedulingType.COLLECTIVE, + } + ); const { team } = await owner.getFirstTeam(); const { title: teamEventTitle, slug: teamEventSlug } = await owner.getFirstTeamEvent(team.id); @@ -102,18 +102,20 @@ test.describe("Teams - NonOrg", () => { }); test("Can create a booking for Round Robin EventType", async ({ page, users }) => { - const ownerObj = { username: "pro-user", name: "pro-user" }; const teamMatesObj = [ { name: "teammate-1" }, { name: "teammate-2" }, { name: "teammate-3" }, { name: "teammate-4" }, ]; - const owner = await users.create(ownerObj, { - hasTeam: true, - teammates: teamMatesObj, - schedulingType: SchedulingType.ROUND_ROBIN, - }); + const owner = await users.create( + { username: "pro-user", name: "pro-user" }, + { + hasTeam: true, + teammates: teamMatesObj, + schedulingType: SchedulingType.ROUND_ROBIN, + } + ); const { team } = await owner.getFirstTeam(); const { title: teamEventTitle, slug: teamEventSlug } = await owner.getFirstTeamEvent(team.id); @@ -134,7 +136,7 @@ test.describe("Teams - NonOrg", () => { // Anyone of the teammates could be the Host of the booking. const chosenUser = await page.getByTestId("booking-host-name").textContent(); expect(chosenUser).not.toBeNull(); - expect(teamMatesObj.concat([{ name: ownerObj.name }]).some(({ name }) => name === chosenUser)).toBe(true); + expect(teamMatesObj.concat([{ name: owner.name! }]).some(({ name }) => name === chosenUser)).toBe(true); // TODO: Assert whether the user received an email }); @@ -164,8 +166,7 @@ test.describe("Teams - NonOrg", () => { await page.goto("/settings/teams/new"); // Fill input[name="name"] await page.locator('input[name="name"]').fill(uniqueName); - await page.locator("text=Continue").click(); - await expect(page.locator("[data-testid=alert]")).toBeVisible(); + await page.click("[type=submit]"); // cleanup const org = await owner.getOrgMembership(); @@ -174,11 +175,9 @@ test.describe("Teams - NonOrg", () => { }); test("Can create team with same name as user", async ({ page, users }) => { + const user = await users.create(); // Name to be used for both user and team - const uniqueName = "test-unique-name"; - const ownerObj = { username: uniqueName, name: uniqueName, useExactUsername: true }; - - const user = await users.create(ownerObj); + const uniqueName = user.username!; await user.apiLogin(); await page.goto("/teams"); @@ -189,11 +188,14 @@ test.describe("Teams - NonOrg", () => { // Fill input[name="name"] await page.locator('input[name="name"]').fill(uniqueName); // Click text=Continue - await page.locator("text=Continue").click(); - await page.waitForURL(/\/settings\/teams\/(\d+)\/onboard-members$/i); + await page.click("[type=submit]"); + // TODO: Figure out a way to make this more reliable + // eslint-disable-next-line playwright/no-conditional-in-test + if (IS_TEAM_BILLING_ENABLED) await fillStripeTestCheckout(page); + await page.waitForURL(/\/settings\/teams\/(\d+)\/onboard-members.*$/i); // Click text=Continue - await page.locator("text=Publish team").click(); - await page.waitForURL(/\/settings\/teams\/(\d+)\/profile$/i); + await page.locator("[data-testid=publish-button]").click(); + await expect(page).toHaveURL(/\/settings\/teams\/(\d+)\/profile$/i); }); await test.step("Can access user and team with same slug", async () => { @@ -210,13 +212,11 @@ test.describe("Teams - NonOrg", () => { await expect(page.locator("[data-testid=name-title]")).toHaveText(uniqueName); // cleanup team - const team = await prisma.team.findFirst({ where: { slug: uniqueName } }); - await prisma.team.delete({ where: { id: team?.id } }); + await prisma.team.deleteMany({ where: { slug: uniqueName } }); }); }); test("Can create a private team", async ({ page, users }) => { - const ownerObj = { username: "pro-user", name: "pro-user" }; const teamMatesObj = [ { name: "teammate-1" }, { name: "teammate-2" }, @@ -224,11 +224,14 @@ test.describe("Teams - NonOrg", () => { { name: "teammate-4" }, ]; - const owner = await users.create(ownerObj, { - hasTeam: true, - teammates: teamMatesObj, - schedulingType: SchedulingType.COLLECTIVE, - }); + const owner = await users.create( + { username: "pro-user", name: "pro-user" }, + { + hasTeam: true, + teammates: teamMatesObj, + schedulingType: SchedulingType.COLLECTIVE, + } + ); await owner.apiLogin(); const { team } = await owner.getFirstTeam(); @@ -278,45 +281,43 @@ test.describe("Teams - Org", () => { // Fill input[name="name"] await page.locator('input[name="name"]').fill(`${user.username}'s Team`); // Click text=Continue - await page.locator("text=Continue").click(); - await page.waitForURL(/\/settings\/teams\/(\d+)\/onboard-members$/i); + await page.click("[type=submit]"); + // TODO: Figure out a way to make this more reliable + // eslint-disable-next-line playwright/no-conditional-in-test + if (IS_TEAM_BILLING_ENABLED) await fillStripeTestCheckout(page); + await expect(page).toHaveURL(/\/settings\/teams\/(\d+)\/onboard-members.*$/i); await page.waitForSelector('[data-testid="pending-member-list"]'); - expect(await page.locator('[data-testid="pending-member-item"]').count()).toBe(1); + expect(await page.getByTestId("pending-member-item").count()).toBe(1); }); await test.step("Can add members", async () => { - // Click [data-testid="new-member-button"] - await page.locator('[data-testid="new-member-button"]').click(); - // Fill [placeholder="email\@example\.com"] + await page.getByTestId("new-member-button").click(); await page.locator('[placeholder="email\\@example\\.com"]').fill(inviteeEmail); - // Click [data-testid="invite-new-member-button"] - await page.locator('[data-testid="invite-new-member-button"]').click(); + await page.getByTestId("invite-new-member-button").click(); await expect(page.locator(`li:has-text("${inviteeEmail}")`)).toBeVisible(); - expect(await page.locator('[data-testid="pending-member-item"]').count()).toBe(2); + expect(await page.getByTestId("pending-member-item").count()).toBe(2); }); await test.step("Can remove members", async () => { - expect(await page.locator('[data-testid="pending-member-item"]').count()).toBe(2); - - const lastRemoveMemberButton = page.locator('[data-testid="remove-member-button"]').last(); + expect(await page.getByTestId("pending-member-item").count()).toBe(2); + const lastRemoveMemberButton = page.getByTestId("remove-member-button").last(); await lastRemoveMemberButton.click(); await page.waitForLoadState("networkidle"); - expect(await page.locator('[data-testid="pending-member-item"]').count()).toBe(1); + expect(await page.getByTestId("pending-member-item").count()).toBe(1); // Cleanup here since this user is created without our fixtures. await prisma.user.delete({ where: { email: inviteeEmail } }); }); await test.step("Can finish team creation", async () => { - await page.locator("text=Finish").click(); - await page.waitForURL("/settings/teams"); + await page.getByTestId("publish-button").click(); + await expect(page).toHaveURL(/\/settings\/teams\/(\d+)\/profile$/i); }); await test.step("Can disband team", async () => { - await page.locator('[data-testid="team-list-item-link"]').click(); await page.waitForURL(/\/settings\/teams\/(\d+)\/profile$/i); - await page.locator("text=Disband Team").click(); - await page.locator("text=Yes, disband team").click(); + await page.getByTestId("disband-team-button").click(); + await page.getByTestId("dialog-confirmation").click(); await page.waitForURL("/teams"); expect(await page.locator(`text=${user.username}'s Team`).count()).toEqual(0); }); @@ -361,13 +362,13 @@ test.describe("Teams - Org", () => { await page.goto(`/team/${team.slug}/${teamEventSlug}`); await selectFirstAvailableTimeSlotNextMonth(page); await bookTimeSlot(page); - await expect(page.locator("[data-testid=success-page]")).toBeVisible(); + await expect(page.getByTestId("success-page")).toBeVisible(); // The title of the booking const BookingTitle = `${teamEventTitle} between ${team.name} and ${testName}`; - await expect(page.locator("[data-testid=booking-title]")).toHaveText(BookingTitle); + await expect(page.getByTestId("booking-title")).toHaveText(BookingTitle); // The booker should be in the attendee list - await expect(page.locator(`[data-testid="attendee-name-${testName}"]`)).toHaveText(testName); + await expect(page.getByTestId(`attendee-name-${testName}`)).toHaveText(testName); // All the teammates should be in the booking for (const teammate of teamMatesObj.concat([{ name: owner.name || "" }])) { @@ -380,18 +381,20 @@ test.describe("Teams - Org", () => { }); test("Can create a booking for Round Robin EventType", async ({ page, users }) => { - const ownerObj = { username: "pro-user", name: "pro-user" }; const teamMatesObj = [ { name: "teammate-1" }, { name: "teammate-2" }, { name: "teammate-3" }, { name: "teammate-4" }, ]; - const owner = await users.create(ownerObj, { - hasTeam: true, - teammates: teamMatesObj, - schedulingType: SchedulingType.ROUND_ROBIN, - }); + const owner = await users.create( + { username: "pro-user", name: "pro-user" }, + { + hasTeam: true, + teammates: teamMatesObj, + schedulingType: SchedulingType.ROUND_ROBIN, + } + ); const { team } = await owner.getFirstTeam(); const { title: teamEventTitle, slug: teamEventSlug } = await owner.getFirstTeamEvent(team.id); @@ -402,17 +405,17 @@ test.describe("Teams - Org", () => { await expect(page.locator("[data-testid=success-page]")).toBeVisible(); // The person who booked the meeting should be in the attendee list - await expect(page.locator(`[data-testid="attendee-name-${testName}"]`)).toHaveText(testName); + await expect(page.getByTestId(`attendee-name-${testName}`)).toHaveText(testName); // The title of the booking const BookingTitle = `${teamEventTitle} between ${team.name} and ${testName}`; - await expect(page.locator("[data-testid=booking-title]")).toHaveText(BookingTitle); + await expect(page.getByTestId("booking-title")).toHaveText(BookingTitle); // Since all the users have the same leastRecentlyBooked value // Anyone of the teammates could be the Host of the booking. const chosenUser = await page.getByTestId("booking-host-name").textContent(); expect(chosenUser).not.toBeNull(); - expect(teamMatesObj.concat([{ name: ownerObj.name }]).some(({ name }) => name === chosenUser)).toBe(true); + expect(teamMatesObj.concat([{ name: owner.name! }]).some(({ name }) => name === chosenUser)).toBe(true); // TODO: Assert whether the user received an email }); }); diff --git a/apps/web/public/static/locales/ar/common.json b/apps/web/public/static/locales/ar/common.json index 62080f43df..676a3e8df5 100644 --- a/apps/web/public/static/locales/ar/common.json +++ b/apps/web/public/static/locales/ar/common.json @@ -801,7 +801,7 @@ "cal_provide_tandem_meeting_url": "سيوفر {{appName}} رابطًا للاجتماع عبر Tandem.", "cal_provide_video_meeting_url": "سيوفر {{appName}} رابطًا للاجتماع عبر الفيديو على Daily.", "cal_provide_jitsi_meeting_url": "سنوفر لك رابطًا للاجتماع عبر Jitsi Meet.", - "cal_provide_huddle01_meeting_url": "سيوفر {{appName}} رابطًا للاجتماع عبر الفيديو على Huddle01 web3.", + "cal_provide_huddle01_meeting_url": "سيوفر {{appName}} رابطًا للاجتماع عبر الفيديو على Huddle01.", "cal_provide_teams_meeting_url": "سيوفر {{appName}} عنوان URL لاجتماعات MS Teams. ملاحظة: يجب أن يكون لديك حساب عمل أو حساب مدرسة", "require_payment": "يلزم الدفع", "you_need_to_add_a_name": "تحتاج إلى إضافة اسم", @@ -904,7 +904,6 @@ "no_category_apps_description_analytics": "إضافة تطبيق تحليلات لصفحات الحجز الخاصة بك", "no_category_apps_description_automation": "إضافة تطبيق أتمتة لاستخدامه", "no_category_apps_description_other": "أضف أي نوع آخر من التطبيقات للقيام بأي شيء", - "no_category_apps_description_web3": "إضافة تطبيق web3 لصفحات الحجز لديك", "no_category_apps_description_messaging": "إضافة تطبيق مراسلة لإعداد الإشعارات والتذكيرات المخصصة", "no_category_apps_description_crm": "إضافة تطبيق CRM لتتبع من قابلته", "installed_app_calendar_description": "قم بتعيين التقويمات للتحقق من وجود تعارضات لمنع الحجوزات المزدوجة.", @@ -913,7 +912,6 @@ "installed_app_other_description": "جميع تطبيقاتك المثبتة من الفئات الأخرى.", "installed_app_conferencing_description": "تكوين تطبيقات المؤتمرات المراد استخدامها", "installed_app_automation_description": "تهيئة تطبيقات الأتمتة التي سيتم استخدامها", - "installed_app_web3_description": "تهيئة تطبيقات web3 التي يمكن استخدامها لصفحات الحجز لديك", "installed_app_messaging_description": "تكوين تطبيقات المراسلة المراد استخدامها لإعداد الإشعارات والتذكيرات المخصصة", "installed_app_crm_description": "تهيئة تطبيقات CRM التي يمكن استخدامها لتتبع من قابلته", "analytics": "التحليلات", @@ -1304,7 +1302,6 @@ "profile_picture": "صورة الملف الشخصي", "upload": "تحميل", "add_profile_photo": "إضافة صورة الملف الشخصي", - "web3": "Web3", "token_address": "عنوان الرمز المميز", "blockchain": "سلسلة الكتل", "old_password": "كلمة مرور قديمة", @@ -1346,7 +1343,6 @@ "connect_automation_apps": "توصيل تطبيقات الأتمتة", "connect_analytics_apps": "توصيل تطبيقات التحليلات", "connect_other_apps": "ربط تطبيقات أخرى", - "connect_web3_apps": "ربط تطبيقات web3", "connect_messaging_apps": "ربط تطبيقات المراسلة", "connect_crm_apps": "ربط تطبيقات CRM", "current_step_of_total": "الخطوة {{currentStep}} من {{maxSteps}}", @@ -1585,6 +1581,7 @@ "enable_apps": "تمكين التطبيقات", "enable_apps_description": "تمكين التطبيقات التي يمكن للمستخدمين دمجها مع {{appName}}", "purchase_license": "شراء ترخيص", + "already_have_account": "هل لديك حساب بالفعل؟", "already_have_key": "لدي مفتاح بالفعل:", "already_have_key_suggestion": "يرجى نسخ متغير البيئة الحالي CALCOM_LICENSE_KEY هنا.", "app_is_enabled": "تم تمكين {{appName}}", diff --git a/apps/web/public/static/locales/cs/common.json b/apps/web/public/static/locales/cs/common.json index ef0c4535e6..07d8d5c07c 100644 --- a/apps/web/public/static/locales/cs/common.json +++ b/apps/web/public/static/locales/cs/common.json @@ -801,7 +801,7 @@ "cal_provide_tandem_meeting_url": "{{appName}} poskytne URL Tandem meetingu.", "cal_provide_video_meeting_url": "{{appName}} poskytne URL Daily video meetingu.", "cal_provide_jitsi_meeting_url": "{{appName}} poskytne URL Jitsi Meet video meetingu.", - "cal_provide_huddle01_meeting_url": "{{appName}} poskytne URL Huddle01 web3 video meetingu.", + "cal_provide_huddle01_meeting_url": "{{appName}} poskytne URL Huddle01 video meetingu.", "cal_provide_teams_meeting_url": "{{appName}} poskytne URL schůzky aplikace MS Teams. POZNÁMKA: MUSÍ SE JEDNAT O PRACOVNÍ NEBO ŠKOLNÍ ÚČET", "require_payment": "Vyžadovat platbu", "you_need_to_add_a_name": "Musíte přidat název", @@ -904,7 +904,6 @@ "no_category_apps_description_analytics": "Přidejte analytickou aplikaci pro vaše rezervační stránky", "no_category_apps_description_automation": "Přidejte aplikaci pro automatizaci", "no_category_apps_description_other": "Přidejte jakýkoli jiný typ aplikace pro nejrůznější činnosti", - "no_category_apps_description_web3": "Přidejte aplikaci web3 pro vaše rezervační stránky", "no_category_apps_description_messaging": "Přidejte aplikaci pro zasílání zpráv a nastavte vlastní oznámení a připomenutí", "no_category_apps_description_crm": "Přidejte aplikaci CRM, ať jste v obraze, s kým jste se setkali", "installed_app_calendar_description": "Nastavte si kalendáře, ať můžete kontrolovat konflikty a zabránit tak dvojím rezervacím.", @@ -913,7 +912,6 @@ "installed_app_other_description": "Všechny vaše nainstalované aplikace z ostatních kategorií.", "installed_app_conferencing_description": "Nakonfigurujte konferenční aplikace, které chcete používat", "installed_app_automation_description": "Konfigurovat aplikace pro automatizaci", - "installed_app_web3_description": "Nakonfigurujte aplikace web3, které se mají použít pro vaše rezervační stránky", "installed_app_messaging_description": "Nakonfigurujte aplikace pro zasílání zpráv a nastavte vlastní oznámení a připomenutí", "installed_app_crm_description": "Nakonfigurujte aplikace CRM, které se mají používat ke sledování toho, s kým jste se setkali", "analytics": "Analytické nástroje", @@ -1304,7 +1302,6 @@ "profile_picture": "Profilová fotka", "upload": "Nahrát", "add_profile_photo": "Přidat profilovou fotku", - "web3": "Web3", "token_address": "Adresa tokenu", "blockchain": "Blockchain", "old_password": "Staré heslo", @@ -1346,7 +1343,6 @@ "connect_automation_apps": "Připojit aplikace pro automatizaci", "connect_analytics_apps": "Připojit analytické aplikace", "connect_other_apps": "Propojit další aplikace", - "connect_web3_apps": "Připojení aplikací web3", "connect_messaging_apps": "Připojení aplikací pro zasílání zpráv", "connect_crm_apps": "Připojení aplikací CRM", "current_step_of_total": "Krok {{currentStep}} / {{maxSteps}}", @@ -1585,6 +1581,7 @@ "enable_apps": "Povolit aplikace", "enable_apps_description": "Zapněte aplikace, které mohou uživatelé integrovat s aplikací {{appName}}", "purchase_license": "Kupte si licenci", + "already_have_account": "Už máte účet?", "already_have_key": "Klíč již mám:", "already_have_key_suggestion": "Zkopírujte sem svou stávající proměnnou prostředí CALCOM_LICENSE_KEY.", "app_is_enabled": "Aplikace {{appName}} je povolena", diff --git a/apps/web/public/static/locales/da/common.json b/apps/web/public/static/locales/da/common.json index 185a9b6338..5e3cdf8c5f 100644 --- a/apps/web/public/static/locales/da/common.json +++ b/apps/web/public/static/locales/da/common.json @@ -681,7 +681,7 @@ "cal_provide_tandem_meeting_url": "{{appName}} angiver en URL-adresse for Tandem-mødet.", "cal_provide_video_meeting_url": "{{appName}} angiver en URL-adresse for videomødet.", "cal_provide_jitsi_meeting_url": "Vi genererer en Jitsi Meet URL til dig.", - "cal_provide_huddle01_meeting_url": "{{appName}} vil levere en Huddle01 web3 videomøde-URL.", + "cal_provide_huddle01_meeting_url": "{{appName}} vil levere en Huddle01 videomøde-URL.", "cal_provide_teams_meeting_url": "{{appName}} vil levere en MS Teams møde URL. BEMÆRK: SKAL HA EN ARBEJDS- ELLER SKOLE KONTO", "require_payment": "Kræv Betaling", "commission_per_transaction": "provision pr. transaktion", @@ -770,13 +770,11 @@ "no_category_apps_description_analytics": "Tilføj en analyseapp til dine bookingsider", "no_category_apps_description_automation": "Tilføj en automatiseringsapp til brug", "no_category_apps_description_other": "Tilføj enhver anden type app for at gøre alle mulige ting", - "no_category_apps_description_web3": "Tilføj en web3 app til dine bookingsider", "installed_app_calendar_description": "Indstil kalenderne til at tjekke for konflikter, for at forhindre dobbeltbookinger.", "installed_app_payment_description": "Indstil hvilke betalingsbehandlingstjenester der skal bruges, når du opkræver betaling fra dine kunder.", "installed_app_analytics_description": "Indstil hvilke analyseapps der skal bruges til dine bookingsider", "installed_app_other_description": "Alle dine installerede apps fra andre kategorier.", "installed_app_automation_description": "Indstil hvilke automatiseringsapps der skal bruges", - "installed_app_web3_description": "Indstil hvilke web3 apps der skal bruges til dine bookingsider", "analytics": "Analyser", "empty_installed_apps_headline": "Ingen apps installeret", "empty_installed_apps_description": "Apps giver dig mulighed for at forbedre din arbejdsgang og forbedre dit planlægningsliv betydeligt.", @@ -1132,7 +1130,6 @@ "profile_picture": "Profilbillede", "upload": "Upload", "add_profile_photo": "Tilføj profilbillede", - "web3": "Web3", "token_address": "Token Adresse", "blockchain": "Blockchain", "old_password": "Gammel adgangskode", @@ -1171,7 +1168,6 @@ "connect_automation_apps": "Tilslut automatiseringsapps", "connect_analytics_apps": "Tilslut analyseapps", "connect_other_apps": "Tilslut andre apps", - "connect_web3_apps": "Tilslut web3 apps", "current_step_of_total": "Trin {{currentStep}} af {{maxSteps}}", "add_variable": "Tilføj variabel", "custom_phone_number": "Brugerdefineret telefonnummer", @@ -1371,6 +1367,7 @@ "disabled_calendar": "Hvis du har en anden kalender installeret vil nye bookinger blive tilføjet til den. Hvis ikke, så forbind en ny kalender, så du ikke går glip af nye bookinger.", "enable_apps": "Aktivér Apps", "purchase_license": "Køb en licens", + "already_have_account": "Har du allerede en konto?", "already_have_key": "Jeg har allerede en nøgle:", "already_have_key_suggestion": "Kopiér venligst din eksisterende CALCOM_LICENSE_KEY environment variabel her.", "app_is_enabled": "{{appName}} er aktiveret", diff --git a/apps/web/public/static/locales/de/common.json b/apps/web/public/static/locales/de/common.json index 154d82a8eb..5efbe3a4ca 100644 --- a/apps/web/public/static/locales/de/common.json +++ b/apps/web/public/static/locales/de/common.json @@ -801,7 +801,7 @@ "cal_provide_tandem_meeting_url": "{{appName}} wird eine Tandem Meeting URL zur Verfügung stellen.", "cal_provide_video_meeting_url": "{{appName}} wird eine Video-Meeting URL zur Verfügung stellen.", "cal_provide_jitsi_meeting_url": "Cal stellt eine Jitsi Meet URL zur Verfügung.", - "cal_provide_huddle01_meeting_url": "{{appName}} wird eine Huddle01 web3 Video-Meeting URL zur Verfügung stellen.", + "cal_provide_huddle01_meeting_url": "{{appName}} wird eine Huddle01 Video-Meeting URL zur Verfügung stellen.", "cal_provide_teams_meeting_url": "{{appName}} wird eine MS Teams Meeting-URL zur Verfügung stellen. HINWEIS: SIE BRAUCHEN EIN BERUFS- ODER SCHULKONTO", "require_payment": "Zahlung erforderlich", "you_need_to_add_a_name": "Sie müssen einen Namen hinzufügen", @@ -904,7 +904,6 @@ "no_category_apps_description_analytics": "Fügen Sie eine Analyse-App für Ihre Buchungsseiten hinzu", "no_category_apps_description_automation": "Fügen Sie eine Automatisierungs-App hinzu, die verwendet werden soll", "no_category_apps_description_other": "Füge jede beliebige andere Art von App hinzu, um alle möglichen Dinge zu tun", - "no_category_apps_description_web3": "Fügen Sie eine web3-App für Ihre Buchungsseiten hinzu", "no_category_apps_description_messaging": "Fügen Sie eine Nachrichten-App hinzu, um benutzerdefinierte Benachrichtigungen und Erinnerungen einzurichten", "no_category_apps_description_crm": "Fügen Sie eine CRM-App hinzu, um einen Überblick über die Personen zu behalten, mit denen Sie sich getroffen haben", "installed_app_calendar_description": "Legen Sie den/die Kalender in denen nach Konflikten gesucht werden sollen fest, um Doppelbuchungen zu vermeiden.", @@ -913,7 +912,6 @@ "installed_app_other_description": "Alle von Ihnen installierten Apps aus anderen Kategorien.", "installed_app_conferencing_description": "Konfigurieren Sie, welche Konferenz-Apps verwendet werden sollen", "installed_app_automation_description": "Konfigurieren Sie, welche Automatisierungs-Apps verwendet werden sollen", - "installed_app_web3_description": "Konfigurieren Sie, welche web3-Apps für Ihre Buchungsseiten verwendet werden sollen", "installed_app_messaging_description": "Konfigurieren Sie zur Einrichtung benutzerdefinierter Benachrichtigungen und Erinnerungen, welche Nachrichten-Apps verwendet werden sollen", "installed_app_crm_description": "Konfigurieren Sie, welche CRM-Apps verwendet werden sollen, um einen Überblick über die Personen zu behalten, mit denen Sie sich getroffen haben", "analytics": "Analyse", @@ -1304,7 +1302,6 @@ "profile_picture": "Profilbild", "upload": "Upload", "add_profile_photo": "Profilbild hinzufügen", - "web3": "Web3", "token_address": "Adresse des Token", "blockchain": "Blockchain", "old_password": "Altes Passwort", @@ -1346,7 +1343,6 @@ "connect_automation_apps": "Automatisierungs-Apps verbinden", "connect_analytics_apps": "Analyse-Apps verbinden", "connect_other_apps": "Andere Apps verbinden", - "connect_web3_apps": "web3-Apps verbinden", "connect_messaging_apps": "Nachrichten-Apps verbinden", "connect_crm_apps": "CRM-Apps verbinden", "current_step_of_total": "Schritt {{currentStep}} von {{maxSteps}}", @@ -1585,6 +1581,7 @@ "enable_apps": "Apps aktivieren", "enable_apps_description": "Apps aktivieren, die Benutzer mit {{appName}} integrieren können", "purchase_license": "Lizenz kaufen", + "already_have_account": "Haben Sie bereits ein Konto?", "already_have_key": "Ich habe bereits einen Schlüssel:", "already_have_key_suggestion": "Bitte fügen Sie Ihre vorhandene CALCOM_LICENSE_KEY Umgebungsvariable hier ein.", "app_is_enabled": "{{appName}} ist aktiviert", diff --git a/apps/web/public/static/locales/el/common.json b/apps/web/public/static/locales/el/common.json index 426720f46e..9a52b4b06f 100644 --- a/apps/web/public/static/locales/el/common.json +++ b/apps/web/public/static/locales/el/common.json @@ -274,5 +274,6 @@ "event_name_tooltip": "Το όνομα που θα εμφανίζεται στα ημερολόγια", "label": "Ετικέτα", "edit": "Επεξεργασία", - "disable_guests": "Απενεργοποίηση επισκεπτών" + "disable_guests": "Απενεργοποίηση επισκεπτών", + "already_have_account": "Έχετε ήδη λογαριασμό;" } diff --git a/apps/web/public/static/locales/en/common.json b/apps/web/public/static/locales/en/common.json index 9a0efd884b..3b97b5db3c 100644 --- a/apps/web/public/static/locales/en/common.json +++ b/apps/web/public/static/locales/en/common.json @@ -78,7 +78,7 @@ "cannot_repackage_codebase": "You can not repackage or sell the codebase", "acquire_license": "Acquire a commercial license to remove these terms by emailing", "terms_summary": "Summary of terms", - "signing_up_terms":"By signing up, you agree to our <2>Terms of Service and <3>Privacy Policy.", + "signing_up_terms":"By signing up you agree to our <2>Terms & <3>Privacy Policy.", "open_env": "Open .env and agree to our License", "env_changed": "I've changed my .env", "accept_license": "Accept License", @@ -673,6 +673,7 @@ "default_duration": "Default duration", "default_duration_no_options": "Please choose available durations first", "multiple_duration_mins": "{{count}} $t(minute_timeUnit)", + "multiple_duration_timeUnit": "{{count}} $t({{unit}}_timeUnit)", "minutes": "Minutes", "round_robin": "Round Robin", "round_robin_description": "Cycle meetings between multiple team members.", @@ -818,7 +819,7 @@ "cal_provide_tandem_meeting_url": "{{appName}} will provide a Tandem meeting URL.", "cal_provide_video_meeting_url": "{{appName}} will provide a video meeting URL.", "cal_provide_jitsi_meeting_url": "We will generate a Jitsi Meet URL for you.", - "cal_provide_huddle01_meeting_url": "{{appName}} will provide a Huddle01 web3 video meeting URL.", + "cal_provide_huddle01_meeting_url": "{{appName}} will provide a Huddle01 video meeting URL.", "cal_provide_teams_meeting_url": "{{appName}} will provide a MS Teams meeting URL. NOTE: MUST HAVE A WORK OR SCHOOL ACCOUNT", "require_payment": "Require Payment", "you_need_to_add_a_name": "You need to add a name", @@ -879,6 +880,7 @@ "toggle_calendars_conflict": "Toggle the calendars you want to check for conflicts to prevent double bookings.", "connect_additional_calendar": "Connect additional calendar", "calendar_updated_successfully": "Calendar updated successfully", + "check_here":"Check here", "conferencing": "Conferencing", "calendar": "Calendar", "payments": "Payments", @@ -922,7 +924,6 @@ "no_category_apps_description_analytics": "Add an analytics app for your booking pages", "no_category_apps_description_automation": "Add an automation app to use", "no_category_apps_description_other": "Add any other type of app to do all sorts of things", - "no_category_apps_description_web3": "Add a web3 app for your booking pages", "no_category_apps_description_messaging": "Add a messaging app to set up custom notifications & reminders", "no_category_apps_description_crm": "Add a CRM app to keep track of who you've met with", "installed_app_calendar_description": "Set the calendars to check for conflicts to prevent double bookings.", @@ -931,7 +932,6 @@ "installed_app_other_description": "All your installed apps from other categories.", "installed_app_conferencing_description": "Configure which conferencing apps to use", "installed_app_automation_description": "Configure which automation apps to use", - "installed_app_web3_description": "Configure which web3 apps to use for your booking pages", "installed_app_messaging_description": "Configure which messaging apps to use for setting up custom notifications & reminders", "installed_app_crm_description": "Configure which CRM apps to use for keeping track of who you've met with", "analytics": "Analytics", @@ -1324,7 +1324,6 @@ "profile_picture": "Profile Picture", "upload": "Upload", "add_profile_photo": "Add profile photo", - "web3": "Web3", "token_address": "Token Address", "blockchain": "Blockchain", "old_password": "Old password", @@ -1366,7 +1365,6 @@ "connect_automation_apps": "Connect automation apps", "connect_analytics_apps": "Connect analytics apps", "connect_other_apps": "Connect other apps", - "connect_web3_apps": "Connect web3 apps", "connect_messaging_apps": "Connect messaging apps", "connect_crm_apps": "Connect CRM apps", "current_step_of_total": "Step {{currentStep}} of {{maxSteps}}", @@ -1484,6 +1482,8 @@ "report_app": "Report app", "limit_booking_frequency": "Limit booking frequency", "limit_booking_frequency_description": "Limit how many times this event can be booked", + "limit_booking_only_first_slot": "Limit booking only first slot", + "limit_booking_only_first_slot_description": "Allow only the first slot of every day to be booked", "limit_total_booking_duration": "Limit total booking duration", "limit_total_booking_duration_description": "Limit total amount of time that this event can be booked", "add_limit": "Add Limit", @@ -1556,6 +1556,9 @@ "member_already_invited": "Member has already been invited", "already_in_use_error": "Username already in use", "enter_email_or_username": "Enter an email or username", + "enter_email": "Enter an email", + "enter_emails": "Enter emails", + "too_many_invites": "You are limited to inviting a maximum of {{nbUsers}} users at once.", "team_name_taken": "This name is already taken", "must_enter_team_name": "Must enter a team name", "team_url_required": "Must enter a team URL", @@ -1608,7 +1611,7 @@ "enable_apps": "Enable Apps", "enable_apps_description": "Enable apps that users can integrate with {{appName}}", "purchase_license": "Purchase a License", - "already_have_account":"I already have an account", + "already_have_account":"Already have an account?", "already_have_key": "I already have a key:", "already_have_key_suggestion": "Please copy your existing CALCOM_LICENSE_KEY environment variable here.", "app_is_enabled": "{{appName}} is enabled", @@ -1866,6 +1869,7 @@ "looking_for_more_analytics": "Looking for more analytics?", "looking_for_more_insights": "Looking for more Insights?", "add_filter": "Add filter", + "remove_filters": "Clear all filters", "select_user": "Select User", "select_event_type": "Select Event Type", "select_date_range": "Select Date Range", diff --git a/apps/web/public/static/locales/es/common.json b/apps/web/public/static/locales/es/common.json index e765f7f64a..d856a29277 100644 --- a/apps/web/public/static/locales/es/common.json +++ b/apps/web/public/static/locales/es/common.json @@ -904,7 +904,6 @@ "no_category_apps_description_analytics": "Añada una aplicación de análisis para sus páginas de reserva", "no_category_apps_description_automation": "Añada una aplicación de automatización para utilizar", "no_category_apps_description_other": "Añade cualquier otro tipo de aplicación para hacer todo tipo de tareas", - "no_category_apps_description_web3": "Agregue una aplicación web3 para sus páginas de reserva", "no_category_apps_description_messaging": "Agregue una aplicación de mensajería para configurar notificaciones y recordatorios personalizados", "no_category_apps_description_crm": "Agregue una aplicación CRM para realizar un seguimiento de con quiénes se ha reunido", "installed_app_calendar_description": "Configure el(los) calendario(s) para comprobar conflictos y evitar reservas duplicadas.", @@ -913,7 +912,6 @@ "installed_app_other_description": "Todas tus aplicaciones instaladas de otras categorías.", "installed_app_conferencing_description": "Configure qué aplicaciones de conferencia usará", "installed_app_automation_description": "Configure qué aplicaciones de automatización va a utilizar", - "installed_app_web3_description": "Configure qué aplicaciones web3 usar para sus páginas de reserva", "installed_app_messaging_description": "Configure qué aplicaciones de mensajería usar para configurar notificaciones y recordatorios personalizados", "installed_app_crm_description": "Configure qué aplicaciones de CRM usar para realizar un seguimiento de las personas con las que se ha reunido", "analytics": "Análisis", @@ -1304,7 +1302,6 @@ "profile_picture": "Imagen de perfil", "upload": "Cargar", "add_profile_photo": "Agregar foto de perfil", - "web3": "Web3", "token_address": "Dirección del token", "blockchain": "Blockchain", "old_password": "Contraseña anterior", @@ -1346,7 +1343,6 @@ "connect_automation_apps": "Conecte aplicaciones de automatización", "connect_analytics_apps": "Conecte aplicaciones de análisis", "connect_other_apps": "Conectar otras aplicaciones", - "connect_web3_apps": "Conectar aplicaciones web3", "connect_messaging_apps": "Conectar aplicaciones de mensajería", "connect_crm_apps": "Conectar aplicaciones CRM", "current_step_of_total": "Paso {{currentStep}} de {{maxSteps}}", @@ -1585,6 +1581,7 @@ "enable_apps": "Activar aplicaciones", "enable_apps_description": "Habilite las aplicaciones que los usuarios pueden integrar con {{appName}}", "purchase_license": "Compre una licencia", + "already_have_account": "¿Ya tienes una cuenta?", "already_have_key": "Ya tengo una clave:", "already_have_key_suggestion": "Copie aquí su variable de entorno CALCOM_LICENSE_KEY existente.", "app_is_enabled": "{{appName}} está activada", diff --git a/apps/web/public/static/locales/eu/common.json b/apps/web/public/static/locales/eu/common.json index 1b95bdc14a..e56b322db1 100644 --- a/apps/web/public/static/locales/eu/common.json +++ b/apps/web/public/static/locales/eu/common.json @@ -679,7 +679,6 @@ "profile_picture": "Profileko irudia", "upload": "Kargatu", "add_profile_photo": "Gehitu profileko argazkia", - "web3": "Web3", "old_password": "Pasahitz zaharra", "secure_password": "Zure pasahitz berri super segurua", "error_updating_password": "Errorea pasahitza eguneratzean", @@ -753,6 +752,7 @@ "enter_email_or_username": "Sartu email edo erabiltzaile izen bat", "team_name_taken": "Izen hau dagoeneko hartua dago", "must_enter_team_name": "Taldearentzat izen bat behar da", + "already_have_account": "Baduzu kontua dagoeneko?", "fill_this_field": "Mesedez, bete ezazu eremu hau", "options": "Aukerak", "add_an_option": "Gehitu aukera bat", diff --git a/apps/web/public/static/locales/fr/common.json b/apps/web/public/static/locales/fr/common.json index 165448b753..460bf391dc 100644 --- a/apps/web/public/static/locales/fr/common.json +++ b/apps/web/public/static/locales/fr/common.json @@ -660,6 +660,7 @@ "default_duration": "Durée par défaut", "default_duration_no_options": "Veuillez d'abord choisir les durées disponibles", "multiple_duration_mins": "{{count}} $t(minute_timeUnit)", + "multiple_duration_timeUnit": "{{count}} $t({{unit}}_timeUnit)", "minutes": "minutes", "round_robin": "Round-robin", "round_robin_description": "Alternez vos rendez-vous entre plusieurs membres d'équipe.", @@ -805,7 +806,7 @@ "cal_provide_tandem_meeting_url": "{{appName}} fournira un lien de rendez-vous Tandem.", "cal_provide_video_meeting_url": "{{appName}} fournira un lien de rendez-vous vidéo.", "cal_provide_jitsi_meeting_url": "Nous générerons un lien de réunion Jitsi Meet pour vous.", - "cal_provide_huddle01_meeting_url": "{{appName}} fournira un lien de rendez-vous vidéo Huddle01 web3.", + "cal_provide_huddle01_meeting_url": "{{appName}} fournira un lien de rendez-vous vidéo Huddle01.", "cal_provide_teams_meeting_url": "{{appName}} fournira un lien de rendez-vous MS Teams. NOTE : IL FAUT AVOIR UN COMPTE PROFESSIONNEL OU SCOLAIRE", "require_payment": "Exiger un paiement", "you_need_to_add_a_name": "Vous devez ajouter un nom", @@ -909,7 +910,6 @@ "no_category_apps_description_analytics": "Ajoutez une application d'analyse pour vos pages de réservation.", "no_category_apps_description_automation": "Ajoutez une application d'automatisation.", "no_category_apps_description_other": "Ajoutez n'importe quel autre type d'application pour faire toutes sortes de choses.", - "no_category_apps_description_web3": "Ajoutez une application Web3 pour vos pages de réservation.", "no_category_apps_description_messaging": "Ajoutez une application de messagerie pour configurer des notifications et des rappels personnalisés.", "no_category_apps_description_crm": "Ajoutez une application de CRM pour garder une trace des personnes que vous avez rencontrées.", "installed_app_calendar_description": "Définissez les calendriers pour vérifier les conflits afin d'éviter les doubles réservations.", @@ -918,7 +918,6 @@ "installed_app_other_description": "Toutes vos applications installées à partir d'autres catégories.", "installed_app_conferencing_description": "Configurez les applications de conférence à utiliser.", "installed_app_automation_description": "Configurez les applications d'automatisation à utiliser.", - "installed_app_web3_description": "Configurez les applications Web3 à utiliser pour vos pages de réservation.", "installed_app_messaging_description": "Configurez les applications de messagerie à utiliser pour configurer des notifications et des rappels personnalisés.", "installed_app_crm_description": "Configurez les applications de CRM à utiliser pour garder une trace des personnes que vous avez rencontrées.", "analytics": "Analytiques", @@ -1309,7 +1308,6 @@ "profile_picture": "Photo de profil", "upload": "Télécharger", "add_profile_photo": "Ajouter une photo de profil", - "web3": "Web3", "token_address": "Adresse du token", "blockchain": "Blockchain", "old_password": "Ancien mot de passe", @@ -1351,7 +1349,6 @@ "connect_automation_apps": "Connecter des apps d'automatisation", "connect_analytics_apps": "Connecter des apps d'analytique", "connect_other_apps": "Connecter d'autres applications", - "connect_web3_apps": "Connecter des apps Web3", "connect_messaging_apps": "Connecter des apps de messagerie", "connect_crm_apps": "Connecter des apps de CRM", "current_step_of_total": "Étape {{currentStep}} sur {{maxSteps}}", @@ -1847,6 +1844,7 @@ "looking_for_more_analytics": "Vous cherchez plus d'analyses ?", "looking_for_more_insights": "Vous cherchez plus de statistiques ?", "add_filter": "Ajouter un filtre", + "remove_filters": "Effacer les filtres", "select_user": "Sélectionner un utilisateur", "select_event_type": "Sélectionner un type d'événement", "select_date_range": "Sélectionner une plage de dates", @@ -2089,11 +2087,17 @@ "overlay_my_calendar": "Superposer mon calendrier", "overlay_my_calendar_toc": "En vous connectant à votre calendrier, vous acceptez notre politique de confidentialité et nos conditions d'utilisation. Vous pouvez révoquer cet accès à tout moment.", "view_overlay_calendar_events": "Consultez les événements de votre calendrier afin d'éviter les réservations incompatibles.", + "calendars_were_checking_for_conflicts": "Calendriers dont nous vérifions les conflits", + "availabilty_schedules": "Horaires de disponibilité", + "manage_calendars": "Gérer les calendriers", + "manage_availability_schedules": "Gérer les horaires de disponibilité", "lock_timezone_toggle_on_booking_page": "Verrouiller le fuseau horaire sur la page de réservation", "description_lock_timezone_toggle_on_booking_page": "Pour verrouiller le fuseau horaire sur la page de réservation, utile pour les événements en personne.", "number_in_international_format": "Veuillez entrer le numéro au format international.", "extensive_whitelabeling": "Marque blanche étendue", "unlimited_teams": "Équipes illimitées", + "troubleshooter_tooltip": "Ouvrez l'outil de dépannage et déterminez ce qui ne va pas avec votre planning", "need_help": "Besoin d'aide ?", + "troubleshooter": "Dépannage", "ADD_NEW_STRINGS_ABOVE_THIS_LINE_TO_PREVENT_MERGE_CONFLICTS": "↑↑↑↑↑↑↑↑↑↑↑↑↑ Ajoutez vos nouvelles chaînes ci-dessus ↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑" } diff --git a/apps/web/public/static/locales/he/common.json b/apps/web/public/static/locales/he/common.json index b02563907c..6bb5b7ac5e 100644 --- a/apps/web/public/static/locales/he/common.json +++ b/apps/web/public/static/locales/he/common.json @@ -801,7 +801,7 @@ "cal_provide_tandem_meeting_url": "{{appName}} יספק כתובת קישור לפגישת Tandem.", "cal_provide_video_meeting_url": "{{appName}} יספק כתובת קישור לפגישת וידאו.", "cal_provide_jitsi_meeting_url": "אנחנו ניצור עבורך כתובת URL לפגישת Jitsi Meet.", - "cal_provide_huddle01_meeting_url": "{{appName}} יספק כתובת קישור לפגישת וידאו web3 ב- Huddle01.", + "cal_provide_huddle01_meeting_url": "{{appName}} יספק כתובת קישור לפגישת וידאו ב- Huddle01.", "cal_provide_teams_meeting_url": "{{appName}} יספק כתובת קישור לפגישת MS Teams. הערה: חייב להיות חשבון של מקום עבודה או בית ספר", "require_payment": "דרישת תשלום", "you_need_to_add_a_name": "יש להוסיף שם", @@ -904,7 +904,6 @@ "no_category_apps_description_analytics": "להוסיף אפליקציה לניתוח נתונים עבור דפי ההזמנות שלך", "no_category_apps_description_automation": "להוסיף אפליקציית אוטומציה שברצונך להשתמש בה", "no_category_apps_description_other": "הוסף/הוסיפי אפליקציה מכל סוג אחר לביצוע פעולות שונות", - "no_category_apps_description_web3": "הוסף אפליקצית web3 לעמודי תזמון הפגישות שלך", "no_category_apps_description_messaging": "הוסף/הוסיפי אפליקציית מסרים מידיים כדי להגדיר התראות ותזכורות בהתאמה אישית", "no_category_apps_description_crm": "הוסף/י אפליקציית CRM כדי לנהל מעקב אחר האנשים שנפגשת איתם", "installed_app_calendar_description": "הגדר/הגדירח את לוחות השנה כדי לבדוק אם יש התנגשויות על מנת למנוע כפל הזמנות.", @@ -913,7 +912,6 @@ "installed_app_other_description": "כל האפליקציות המותקנות שלך מקטגוריות אחרות.", "installed_app_conferencing_description": "הגדר/הגדירי את האפליקציות לשיחות ועידה שבהן ברצונך להשתמש", "installed_app_automation_description": "הגדרת אפליקציות האוטומציה שבהן ברצונך להשתמש", - "installed_app_web3_description": "הגדר באיזה אפליקציות web3 להשתמש בעמודי תזמון הפגישות שלך", "installed_app_messaging_description": "הגדר/הגדירי את אפליקציות המסרים המידיים שבהן ברצונך להשתמש להגדרת עדכונים ותזכורות", "installed_app_crm_description": "הגדר/הגדירי את אפליקציות ה-CRM שבהן ברצונך להשתמש לניהול מעקב אחר האנשים שנפגשת איתם", "analytics": "ניתוח נתונים", @@ -1304,7 +1302,6 @@ "profile_picture": "תמונת פרופיל", "upload": "העלאה", "add_profile_photo": "הוספת תמונת פרופיל", - "web3": "Web3", "token_address": "כתובת הטוקן", "blockchain": "בלוקצ'יין", "old_password": "סיסמה ישנה", @@ -1346,7 +1343,6 @@ "connect_automation_apps": "קישור אפליקציות אוטומציה", "connect_analytics_apps": "קישור אפליקציות ניתוח נתונים", "connect_other_apps": "חיבור אפליקציות אחרות", - "connect_web3_apps": "חבר אפליקציות web3", "connect_messaging_apps": "קישור אפליקציות מסרים מידיים", "connect_crm_apps": "קישור אפליקציות CRM", "current_step_of_total": "שלב {{currentStep}} מתוך {{maxSteps}}", @@ -1585,6 +1581,7 @@ "enable_apps": "הפעלת אפליקציות", "enable_apps_description": "הפעל/הפעילי אפליקציות שמשתמשים יוכלו לשלב עם {{appName}}", "purchase_license": "רכוש רישיון", + "already_have_account": "כבר יש לך חשבון?", "already_have_key": "כבר יש לי מפתח:", "already_have_key_suggestion": "אנא העתק את משתנה הסביבה CALCOM_LICENSE_KEY הקיים שלך לכאן.", "app_is_enabled": "האפליקציה {{appName}} מופעלת", diff --git a/apps/web/public/static/locales/hr/common.json b/apps/web/public/static/locales/hr/common.json index b37febdb6d..cbdfcf4316 100644 --- a/apps/web/public/static/locales/hr/common.json +++ b/apps/web/public/static/locales/hr/common.json @@ -333,5 +333,6 @@ "dark": "Tamna", "automatically_adjust_theme": "Automatski prilagodite temu na temelju preferencija pozvanih osoba", "user_dynamic_booking_disabled": "Neki od korisnika u grupi trenutno su onemogućili dinamičke grupne rezervacije", - "full_name": "Puno ime" + "full_name": "Puno ime", + "already_have_account": "Već imate račun?" } diff --git a/apps/web/public/static/locales/it/common.json b/apps/web/public/static/locales/it/common.json index e2b94e3df2..19afe8b917 100644 --- a/apps/web/public/static/locales/it/common.json +++ b/apps/web/public/static/locales/it/common.json @@ -801,7 +801,7 @@ "cal_provide_tandem_meeting_url": "{{appName}} fornirà un URL di riunione Tandem.", "cal_provide_video_meeting_url": "{{appName}} fornirà un URL di riunione Daily video.", "cal_provide_jitsi_meeting_url": "{{appName}} fornirà un URL di riunione Jitsi Meet.", - "cal_provide_huddle01_meeting_url": "{{appName}} fornirà un URL di riunione Huddle01 web3 video.", + "cal_provide_huddle01_meeting_url": "{{appName}} fornirà un URL di riunione Huddle01 video.", "cal_provide_teams_meeting_url": "{{appName}} fornirà un URL per la riunione MS Teams. NOTA: È NECESSARIO POSSEDERE UN ACCOUNT LAVORATIVO O SCOLASTICO", "require_payment": "Richiedi Pagamento", "you_need_to_add_a_name": "Indica un nome", @@ -904,7 +904,6 @@ "no_category_apps_description_analytics": "Aggiungi un'app di analisi per le tue pagine di prenotazione", "no_category_apps_description_automation": "Aggiungi un'app di automazione da usare", "no_category_apps_description_other": "Aggiungi qualsiasi altra app per fare altre attività", - "no_category_apps_description_web3": "Aggiungi un'app Web3 per le tue pagine di prenotazione", "no_category_apps_description_messaging": "Aggiungi un'app di messaggistica per impostare notifiche e promemoria personalizzati", "no_category_apps_description_crm": "Aggiungi un'app CRM per tenere traccia delle persone che hai incontrato", "installed_app_calendar_description": "Imposta uno o più calendari per controllare i conflitti ed evitare doppie prenotazioni.", @@ -913,7 +912,6 @@ "installed_app_other_description": "Tutte le app installate appartenenti ad altre categorie.", "installed_app_conferencing_description": "Scegli quali app di conferenza utilizzare", "installed_app_automation_description": "Imposta quali app di automazione usare", - "installed_app_web3_description": "Imposta quali app Web3 usare per le tue pagine di prenotazione", "installed_app_messaging_description": "Scegli le app di messaggistica da usare per impostare notifiche e promemoria personalizzati", "installed_app_crm_description": "Scegli quali app CRM utilizzare per tenere traccia delle persone che hai incontrato", "analytics": "Analisi", @@ -1304,7 +1302,6 @@ "profile_picture": "Immagine del profilo", "upload": "Carica", "add_profile_photo": "Aggiungi foto del profilo", - "web3": "Web3", "token_address": "Indirizzo token", "blockchain": "Blockchain", "old_password": "Vecchia password", @@ -1346,7 +1343,6 @@ "connect_automation_apps": "Connetti app di automazione", "connect_analytics_apps": "Connetti app di analisi", "connect_other_apps": "Connetti altre app", - "connect_web3_apps": "Connetti app Web3", "connect_messaging_apps": "Connetti app di messaggistica", "connect_crm_apps": "Connetti app CRM", "current_step_of_total": "Passo {{currentStep}} di {{maxSteps}}", @@ -1585,6 +1581,7 @@ "enable_apps": "Abilita app", "enable_apps_description": "Abilita le app che gli utenti possono integrare con {{appName}}", "purchase_license": "Acquista una licenza", + "already_have_account": "Hai già un account?", "already_have_key": "Ho già una chiave:", "already_have_key_suggestion": "Copia qui la variabile di ambiente CALCOM_LICENSE_KEY esistente.", "app_is_enabled": "{{appName}} è abilitato", diff --git a/apps/web/public/static/locales/ja/common.json b/apps/web/public/static/locales/ja/common.json index 2517ff8380..a42c7074a4 100644 --- a/apps/web/public/static/locales/ja/common.json +++ b/apps/web/public/static/locales/ja/common.json @@ -801,7 +801,7 @@ "cal_provide_tandem_meeting_url": "{{appName}} は Tandem ミーティングの URL を提供する。", "cal_provide_video_meeting_url": "{{appName}} はビデオミーティングの URL を提供する。", "cal_provide_jitsi_meeting_url": "Cal は Jitsi Meet の URL を提供する。", - "cal_provide_huddle01_meeting_url": "{{appName}} は Huddle01 web3 ビデオミーティングの URL を提供する。", + "cal_provide_huddle01_meeting_url": "{{appName}} は Huddle01 ビデオミーティングの URL を提供する。", "cal_provide_teams_meeting_url": "{{appName}} は、MS Teams のミーティングの URL を提供する。注: 職場や学校のアカウントが必要です。", "require_payment": "有料", "you_need_to_add_a_name": "名前を追加する必要があります", @@ -904,7 +904,6 @@ "no_category_apps_description_analytics": "予約ページに分析アプリを追加する", "no_category_apps_description_automation": "使用する自動化アプリを追加する", "no_category_apps_description_other": "その他のアプリを追加して、様々なことを実現しましょう", - "no_category_apps_description_web3": "予約ページに Web3 アプリを追加", "no_category_apps_description_messaging": "カスタム通知とリマインダーを設定するには、メッセージングアプリを追加します", "no_category_apps_description_crm": "会った人を記録するには、CRM アプリを追加します", "installed_app_calendar_description": "ダブルブッキングを防ぐために、カレンダーの重複をチェックするように設定します。", @@ -913,7 +912,6 @@ "installed_app_other_description": "その他のカテゴリーからインストールしたすべてのアプリ。", "installed_app_conferencing_description": "どの会議アプリを使用するかを設定します", "installed_app_automation_description": "どの自動化アプリを使用するかを構成する", - "installed_app_web3_description": "予約ページでどの Web3 アプリを使用するかを構成します", "installed_app_messaging_description": "カスタム通知とリマインダーの設定にどのメッセージングアプリを使用するかを設定します", "installed_app_crm_description": "会った人を記録するのにどの CRM アプリを使用するかを設定します", "analytics": "分析", @@ -1304,7 +1302,6 @@ "profile_picture": "プロフィール写真", "upload": "アップロード", "add_profile_photo": "プロフィール写真を追加", - "web3": "Web3", "token_address": "トークンアドレス", "blockchain": "ブロックチェーン", "old_password": "古いパスワード", @@ -1346,7 +1343,6 @@ "connect_automation_apps": "自動化アプリを接続する", "connect_analytics_apps": "分析アプリを接続する", "connect_other_apps": "その他のアプリを接続", - "connect_web3_apps": "Web3 アプリを接続", "connect_messaging_apps": "メッセージングアプリを接続する", "connect_crm_apps": "CRM アプリを接続する", "current_step_of_total": "ステップ {{currentStep}}/{{maxSteps}}", @@ -1585,6 +1581,7 @@ "enable_apps": "アプリを有効にする", "enable_apps_description": "ユーザーが {{appName}} と連携できるアプリを有効にします", "purchase_license": "ライセンスを購入", + "already_have_account": "既にアカウントをお持ちですか?", "already_have_key": "すでにキーを持っています:", "already_have_key_suggestion": "ここに既存の CALCOM_LICENSE_KEY 環境変数をコピーしてください。", "app_is_enabled": "{{appName}} は有効です", diff --git a/apps/web/public/static/locales/ko/common.json b/apps/web/public/static/locales/ko/common.json index b0087d80a1..a8b1a62d1e 100644 --- a/apps/web/public/static/locales/ko/common.json +++ b/apps/web/public/static/locales/ko/common.json @@ -904,7 +904,6 @@ "no_category_apps_description_analytics": "예약 페이지에 대한 분석 앱 추가", "no_category_apps_description_automation": "사용할 자동화 앱 추가", "no_category_apps_description_other": "모든 종류의 작업을 수행하는 다른 유형의 앱을 추가합니다", - "no_category_apps_description_web3": "예약 페이지에 web3 앱 추가", "no_category_apps_description_messaging": "사용자 정의 알림 및 미리 알림을 설정하려면 메시징 앱을 추가하세요", "no_category_apps_description_crm": "CRM 앱을 추가하여 만났던 사람을 추적하세요", "installed_app_calendar_description": "중복 예약을 방지하기 위해 충돌을 확인하도록 캘린더를 설정합니다.", @@ -913,7 +912,6 @@ "installed_app_other_description": "기타 카테고리에서 설치된 모든 앱.", "installed_app_conferencing_description": "사용할 회의 앱 구성", "installed_app_automation_description": "사용할 자동화 앱 구성", - "installed_app_web3_description": "예약 페이지에 사용할 web3 앱 구성", "installed_app_messaging_description": "사용자 정의 알림 및 미리 알림 설정에 사용할 메시징 앱 구성", "installed_app_crm_description": "만났던 사람을 추적하는 데 사용할 CRM 앱 구성", "analytics": "분석", @@ -1304,7 +1302,6 @@ "profile_picture": "프로필 사진", "upload": "업로드", "add_profile_photo": "프로필 사진 추가", - "web3": "Web3", "token_address": "토큰 주소", "blockchain": "블록체인", "old_password": "이전 비밀번호", @@ -1346,7 +1343,6 @@ "connect_automation_apps": "자동화 앱 연결", "connect_analytics_apps": "분석 앱 연결", "connect_other_apps": "기타 앱 연결", - "connect_web3_apps": "web3 앱 연결", "connect_messaging_apps": "메시징 앱 연결", "connect_crm_apps": "CRM 앱 연결", "current_step_of_total": "{{maxSteps}} 중 {{currentStep}} 단계", @@ -1585,6 +1581,7 @@ "enable_apps": "앱 활성화", "enable_apps_description": "사용자가 {{appName}} 앱과 통합할 수 있는 앱 활성화", "purchase_license": "라이선스 구매", + "already_have_account": "이미 계정이 있으신가요?", "already_have_key": "이미 키가 있습니다:", "already_have_key_suggestion": "기존 CALCOM_LICENSE_KEY 환경 변수를 여기에 복사하십시오.", "app_is_enabled": "{{appName}} 앱이 활성화되었습니다", diff --git a/apps/web/public/static/locales/lv/common.json b/apps/web/public/static/locales/lv/common.json index 0d030d0a3a..f4c69c2b82 100644 --- a/apps/web/public/static/locales/lv/common.json +++ b/apps/web/public/static/locales/lv/common.json @@ -124,5 +124,6 @@ "already_have_an_account": "Vai jums jau ir konts?", "create_account": "Izveidot Kontu", "confirm_password": "Apstiprināt paroli", - "confirm_auth_change": "Šis mainīs veidu, kā jūs autorizējaties" + "confirm_auth_change": "Šis mainīs veidu, kā jūs autorizējaties", + "already_have_account": "Vai jums jau ir konts?" } diff --git a/apps/web/public/static/locales/nl/common.json b/apps/web/public/static/locales/nl/common.json index ab43ef33fc..300997f9df 100644 --- a/apps/web/public/static/locales/nl/common.json +++ b/apps/web/public/static/locales/nl/common.json @@ -801,7 +801,7 @@ "cal_provide_tandem_meeting_url": "{{appName}} zal een Tandem meeting-URL meegeven in de afspraak bevestiging.", "cal_provide_video_meeting_url": "{{appName}} zal een Daily meeting-URL meegeven in de afspraak bevestiging.", "cal_provide_jitsi_meeting_url": "{{appName}} zal een Jitsi Meet meeting-URL meegeven in de afspraak bevestiging.", - "cal_provide_huddle01_meeting_url": "{{appName}} zal een Huddle01 web3 meeting-URL meegeven in de afspraak bevestiging.", + "cal_provide_huddle01_meeting_url": "{{appName}} zal een Huddle01 meeting-URL meegeven in de afspraak bevestiging.", "cal_provide_teams_meeting_url": "{{appName}} geeft een vergaderings-URL voor MS Teams. OPMERKING: MOET EEN WERK- OF SCHOOLACCOUNT HEBBEN", "require_payment": "Betaling vereisen", "you_need_to_add_a_name": "U moet een naam toevoegen", @@ -904,7 +904,6 @@ "no_category_apps_description_analytics": "Voeg een analyse-app toe aan uw boekingspagina's", "no_category_apps_description_automation": "Voeg een automatiseringsapp toe om te gebruiken", "no_category_apps_description_other": "Voeg een ander type app toe om allerlei soorten dingen te doen", - "no_category_apps_description_web3": "Voeg een web3-app toe aan uw boekingspagina's", "no_category_apps_description_messaging": "Voeg een berichtenapp toe om aangepaste meldingen en herinneringen in te stellen", "no_category_apps_description_crm": "Voeg een CRM-app toe om bij te houden met wie u heeft ontmoet", "installed_app_calendar_description": "Stel de agenda('s) in om te controleren op conflicten om dubbele boekingen te voorkomen.", @@ -913,7 +912,6 @@ "installed_app_other_description": "Alle geïnstalleerde apps uit andere categorieën.", "installed_app_conferencing_description": "Configureer welke conferentieapps moeten worden gebruikt", "installed_app_automation_description": "Configureer welke automatiseringsapps moeten worden gebruikt", - "installed_app_web3_description": "Configureer welke web3-apps moeten worden gebruikt voor uw boekingspagina's", "installed_app_messaging_description": "Configureer welke berichtenapps moeten worden gebruikt voor het instellen van aangepaste meldingen en herinneringen", "installed_app_crm_description": "Configureer welke CRM-apps moeten worden gebruikt voor het bijhouden van wie u hebt ontmoet", "analytics": "Analyse", @@ -1304,7 +1302,6 @@ "profile_picture": "Profielafbeelding", "upload": "Uploaden", "add_profile_photo": "Profielfoto toevoegen", - "web3": "Web3", "token_address": "Tokenadres", "blockchain": "Blockchain", "old_password": "Oude wachtwoord", @@ -1346,7 +1343,6 @@ "connect_automation_apps": "Koppel automatiseringsapps", "connect_analytics_apps": "Koppel analyse-apps", "connect_other_apps": "Andere apps koppelen", - "connect_web3_apps": "Web3-apps koppelen", "connect_messaging_apps": "Berichtenapps koppelen", "connect_crm_apps": "CRM-apps koppelen", "current_step_of_total": "Stap {{currentStep}} van {{maxSteps}}", @@ -1585,6 +1581,7 @@ "enable_apps": "Apps inschakelen", "enable_apps_description": "Schakel apps in die gebruikers kunnen integreren met {{appName}}", "purchase_license": "Koop een licentie", + "already_have_account": "Heeft u al een account?", "already_have_key": "Ik heb al een code:", "already_have_key_suggestion": "Kopieer hier uw bestaande CALCOM_LICENSE_KEY-omgevingsvariabele.", "app_is_enabled": "{{appName}} is ingeschakeld", diff --git a/apps/web/public/static/locales/no/common.json b/apps/web/public/static/locales/no/common.json index fda2409b9a..8e080f4035 100644 --- a/apps/web/public/static/locales/no/common.json +++ b/apps/web/public/static/locales/no/common.json @@ -670,7 +670,7 @@ "cal_provide_tandem_meeting_url": "{{appName}} vil angi en URL for Tandem-møtet.", "cal_provide_video_meeting_url": "{{appName}} vil angi en videomøte-URL.", "cal_provide_jitsi_meeting_url": "Vi vil generere en Jitsi Meet URL for deg.", - "cal_provide_huddle01_meeting_url": "{{appName}} vil angi en Huddle01 web3 videomøte-URL.", + "cal_provide_huddle01_meeting_url": "{{appName}} vil angi en Huddle01 videomøte-URL.", "cal_provide_teams_meeting_url": "{{appName}} vil angi en URL for MS Teams møte. MERK: MÅ HA EN ARBEIDS- ELLER SKOLEKONTO", "require_payment": "Krev Betaling", "commission_per_transaction": "provisjon per transaksjon", @@ -1112,7 +1112,6 @@ "profile_picture": "Profilbilde", "upload": "Last opp", "add_profile_photo": "Legg til profilbilde", - "web3": "Web3", "token_address": "Token Adresse", "blockchain": "Blockchain", "old_password": "Gammelt passord", @@ -1339,6 +1338,7 @@ "app_disabled_subject": "{{appName}} har blitt deaktivert", "navigate_installed_apps": "Gå til installerte apper", "enable_apps": "Aktiver Apper", + "already_have_account": "Har du allerede en bruker?", "app_is_enabled": "{{appName}} er aktivert", "app_is_disabled": "{{appName}} er deaktivert", "disable_app": "Deaktiver App", diff --git a/apps/web/public/static/locales/pl/common.json b/apps/web/public/static/locales/pl/common.json index 097aeffc59..4943227283 100644 --- a/apps/web/public/static/locales/pl/common.json +++ b/apps/web/public/static/locales/pl/common.json @@ -904,7 +904,6 @@ "no_category_apps_description_analytics": "Dodaj aplikację analityczną do stron rezerwacji", "no_category_apps_description_automation": "Dodaj aplikację automatyzującą, która ma być używana", "no_category_apps_description_other": "Dodaj dowolny typ aplikacji, aby uzyskać dostęp do różnych innych funkcji", - "no_category_apps_description_web3": "Dodaj aplikację web3 do stron rezerwacji", "no_category_apps_description_messaging": "Dodaj aplikację do wysyłania wiadomości, aby skonfigurować własne powiadomienia i przypomnienia", "no_category_apps_description_crm": "Dodaj aplikację CRM, aby monitorować to, z kim się spotykasz", "installed_app_calendar_description": "Ustaw kalendarze, aby wykrywać konflikty i unikać podwójnych rezerwacji.", @@ -913,7 +912,6 @@ "installed_app_other_description": "Wszystkie zainstalowane aplikacje z innych kategorii.", "installed_app_conferencing_description": "Skonfiguruj, z których aplikacji konferencyjnych chcesz korzystać", "installed_app_automation_description": "Skonfiguruj, które aplikacje automatyzujące mają być używane", - "installed_app_web3_description": "Skonfiguruj aplikacje web3, które mają być używane na stronach rezerwacji", "installed_app_messaging_description": "Skonfiguruj aplikacje, które będą używane do ustawiania niestandardowych powiadomień i przypomnień", "installed_app_crm_description": "Skonfiguruj aplikacje CRM, za pomocą których chcesz monitorować to, z kim się spotykasz", "analytics": "Analityka", @@ -1304,7 +1302,6 @@ "profile_picture": "Zdjęcie profilowe", "upload": "Prześlij", "add_profile_photo": "Dodaj zdjęcie profilowe", - "web3": "Web3", "token_address": "Adres tokena", "blockchain": "Blockchain", "old_password": "Stare hasło", @@ -1346,7 +1343,6 @@ "connect_automation_apps": "Połącz aplikacje automatyzujące", "connect_analytics_apps": "Połącz aplikacje analityczne", "connect_other_apps": "Połącz inne aplikacje", - "connect_web3_apps": "Połącz aplikacje web3", "connect_messaging_apps": "Podłącz aplikacje do wysyłania wiadomości", "connect_crm_apps": "Podłącz aplikacje CRM", "current_step_of_total": "Krok {{currentStep}} z {{maxSteps}}", @@ -1585,6 +1581,7 @@ "enable_apps": "Włącz aplikacje", "enable_apps_description": "Włącz aplikacje, które użytkownicy mogą zintegrować z aplikacją {{appName}}", "purchase_license": "Kup licencję", + "already_have_account": "Masz już konto?", "already_have_key": "Mam już klucz:", "already_have_key_suggestion": "Skopiuj istniejącą zmienną środowiskową CALCOM_LICENSE_KEY tutaj.", "app_is_enabled": "Aplikacja {{appName}} jest włączona", diff --git a/apps/web/public/static/locales/pt-BR/common.json b/apps/web/public/static/locales/pt-BR/common.json index 271130fb67..4b4de9ecf2 100644 --- a/apps/web/public/static/locales/pt-BR/common.json +++ b/apps/web/public/static/locales/pt-BR/common.json @@ -904,7 +904,6 @@ "no_category_apps_description_analytics": "Adicione um aplicativo de análise às suas páginas de reservas", "no_category_apps_description_automation": "Adicione um aplicativo de automação para usar", "no_category_apps_description_other": "Adicione qualquer outro tipo de aplicativo para fazer todos os tipos de coisas", - "no_category_apps_description_web3": "Adicione um aplicativo web3 para suas páginas de reservas", "no_category_apps_description_messaging": "Adicione um aplicativo de mensagem para definir lembretes e notificações personalizados", "no_category_apps_description_crm": "Adicione um aplicativo CRM para acompanhar todos os integrantes das suas reuniões", "installed_app_calendar_description": "Defina o(s) calendário(s) para verificar se há conflitos e evitar reservas duplas.", @@ -913,7 +912,6 @@ "installed_app_other_description": "Todos os seus aplicativos instalados de outras categorias.", "installed_app_conferencing_description": "Configure quais aplicativos de conferência serão usados", "installed_app_automation_description": "Configure quais aplicativos de automação serão usados", - "installed_app_web3_description": "Configure quais aplicativos web3 serão usados nas suas páginas de reservas", "installed_app_messaging_description": "Configure quais aplicativos de mensagem usar para definir lembretes e notificações", "installed_app_crm_description": "Configure quais aplicativos CRM usar para acompanhar os integrantes das suas reuniões", "analytics": "Análise", @@ -1304,7 +1302,6 @@ "profile_picture": "Imagem do perfil", "upload": "Enviar", "add_profile_photo": "Adicionar foto do perfil", - "web3": "Web3", "token_address": "Endereço do Token", "blockchain": "Blockchain", "old_password": "Senha antiga", @@ -1346,7 +1343,6 @@ "connect_automation_apps": "Conecte aplicativos de automação", "connect_analytics_apps": "Conecte aplicativos de análise", "connect_other_apps": "Conectar outros aplicativos", - "connect_web3_apps": "Conecte aplicativos web3", "connect_messaging_apps": "Conectar com aplicativos de mensagem", "connect_crm_apps": "Conecte aplicativos CRM", "current_step_of_total": "Passo {{currentStep}} de {{maxSteps}}", @@ -1585,6 +1581,7 @@ "enable_apps": "Ativar aplicativos", "enable_apps_description": "Ative aplicativos que os usuários podem integrar com o {{appName}}", "purchase_license": "Comprar uma licença", + "already_have_account": "Já tem uma conta?", "already_have_key": "Já tenho uma chave:", "already_have_key_suggestion": "Copie a variável de ambiente CALCOM_LICENSE_KEY existente aqui.", "app_is_enabled": "{{appName}} foi ativado", diff --git a/apps/web/public/static/locales/pt/common.json b/apps/web/public/static/locales/pt/common.json index 3f512f47fb..8efce907b3 100644 --- a/apps/web/public/static/locales/pt/common.json +++ b/apps/web/public/static/locales/pt/common.json @@ -904,7 +904,6 @@ "no_category_apps_description_analytics": "Adicionar uma aplicação de análise às suas páginas de reservas", "no_category_apps_description_automation": "Adicionar uma aplicação de automatização a utilizar", "no_category_apps_description_other": "Adicione qualquer outro tipo de aplicações para fazer todos os tipos de coisas", - "no_category_apps_description_web3": "Adicione uma aplicação web3 às suas páginas de reservas", "no_category_apps_description_messaging": "Adicione uma aplicação de mensagens para configurar notificações e lembretes personalizados", "no_category_apps_description_crm": "Adicione uma aplicação de CRM para manter um registo das pessoas com quem se reuniu", "installed_app_calendar_description": "Defina o(s) calendário(s) para verificar se existem conflitos e assim evitar marcações sobrepostas.", @@ -913,7 +912,6 @@ "installed_app_other_description": "Todas as aplicações instaladas de outras categorias.", "installed_app_conferencing_description": "Configurar as aplicações de conferência a utilizar", "installed_app_automation_description": "Configurar as aplicações de automatização a utilizar", - "installed_app_web3_description": "Configure as aplicações web3 a utilizar nas suas páginas de reservas", "installed_app_messaging_description": "Configurar as aplicações de mensagens a utilizar para definir notificações e lembretes personalizados", "installed_app_crm_description": "Configurar as aplicações de CRM a utilizar para manter um registo das pessoas com quem se reuniu", "analytics": "Estatísticas", @@ -1304,7 +1302,6 @@ "profile_picture": "Imagem do perfil", "upload": "Carregar", "add_profile_photo": "Adicionar imagem de perfil", - "web3": "Web3", "token_address": "Endereço do Token", "blockchain": "Blockchain", "old_password": "Palavra-passe antiga", @@ -1346,7 +1343,6 @@ "connect_automation_apps": "Associar aplicações de automatização", "connect_analytics_apps": "Associar aplicações de estatística", "connect_other_apps": "Associe outras aplicações", - "connect_web3_apps": "Associe aplicações web3", "connect_messaging_apps": "Ligar aplicações de mensagens", "connect_crm_apps": "Ligar aplicações CRM", "current_step_of_total": "Passo {{currentStep}} de {{maxSteps}}", @@ -1585,6 +1581,7 @@ "enable_apps": "Ativar aplicações", "enable_apps_description": "Ativar aplicações que os utilizadores podem integrar com {{appName}}", "purchase_license": "Adquira uma Licença", + "already_have_account": "Já tem uma conta?", "already_have_key": "Eu já tenho uma chave:", "already_have_key_suggestion": "Por favor, copie a sua variável de ambiente CALCOM_LICENSE_KEY existente aqui.", "app_is_enabled": "{{appName}} foi ativada", diff --git a/apps/web/public/static/locales/ro/common.json b/apps/web/public/static/locales/ro/common.json index c1de9349eb..ca48e6c368 100644 --- a/apps/web/public/static/locales/ro/common.json +++ b/apps/web/public/static/locales/ro/common.json @@ -904,7 +904,6 @@ "no_category_apps_description_analytics": "Adăugați o aplicație de analiză pentru paginile dvs. de rezervări", "no_category_apps_description_automation": "Adăugați o aplicație de automatizare de utilizat", "no_category_apps_description_other": "Adăugați orice alt tip de aplicație pentru a întreprinde diverse acțiuni", - "no_category_apps_description_web3": "Adăugați o aplicație Web3 pentru paginile dvs. de rezervări", "no_category_apps_description_messaging": "Adăugați o aplicație de mesagerie pentru a configura notificări și mementouri personalizate", "no_category_apps_description_crm": "Adăugați o aplicație CRM pentru a ține evidența persoanelor cu care v-ați întâlnit", "installed_app_calendar_description": "Pentru a evita rezervările suprapuse, configurează calendarele astfel încât să poată verifica existența conflictelor.", @@ -913,7 +912,6 @@ "installed_app_other_description": "Toate aplicațiile instalate din alte categorii.", "installed_app_conferencing_description": "Configurați ce aplicații de conferințe vor fi utilizate", "installed_app_automation_description": "Configurați care aplicații de automatizare vor fi utilizate", - "installed_app_web3_description": "Configurați care aplicații Web3 vor fi utilizate pentru paginile dvs. de rezervări", "installed_app_messaging_description": "Definiți ce aplicații de mesagerie vor fi utilizate pentru configurarea de notificări și mementouri personalizate", "installed_app_crm_description": "Configurați ce aplicații CRM vor fi utilizate pentru a ține evidența persoanelor cu care v-ați întâlnit", "analytics": "Analiză", @@ -1304,7 +1302,6 @@ "profile_picture": "Fotografie de profil", "upload": "Încărcare", "add_profile_photo": "Adăugați poză de profil", - "web3": "Web3", "token_address": "Adresă token", "blockchain": "Blockchain", "old_password": "Parola veche", @@ -1346,7 +1343,6 @@ "connect_automation_apps": "Conectați aplicații de automatizare", "connect_analytics_apps": "Conectați aplicații de analiză", "connect_other_apps": "Conectați alte aplicații", - "connect_web3_apps": "Conectați aplicații Web3", "connect_messaging_apps": "Conectați aplicații de mesagerie", "connect_crm_apps": "Conectați aplicații CRM", "current_step_of_total": "Pasul {{currentStep}} din {{maxSteps}}", @@ -1585,6 +1581,7 @@ "enable_apps": "Activează aplicații", "enable_apps_description": "Activați aplicațiile pe care utilizatorii le pot integra cu {{appName}}", "purchase_license": "Achiziționați o licență", + "already_have_account": "Aveți deja un cont?", "already_have_key": "Am deja o cheie:", "already_have_key_suggestion": "Copiați aici variabila de mediu CALCOM_LICENSE_KEY existentă.", "app_is_enabled": "{{appName}} este activat", diff --git a/apps/web/public/static/locales/ru/common.json b/apps/web/public/static/locales/ru/common.json index 052cb6c7c5..2da6be2e14 100644 --- a/apps/web/public/static/locales/ru/common.json +++ b/apps/web/public/static/locales/ru/common.json @@ -904,7 +904,6 @@ "no_category_apps_description_analytics": "Добавьте приложение аналитики для использования на страницах бронирования", "no_category_apps_description_automation": "Добавьте приложение для автоматизации", "no_category_apps_description_other": "Добавляйте всевозможные приложения для решения своих задач", - "no_category_apps_description_web3": "Добавьте приложение web3 для использования на страницах бронирования", "no_category_apps_description_messaging": "Добавьте мессенджер, чтобы настроить пользовательские уведомления и напоминания", "no_category_apps_description_crm": "Добавьте приложение CRM, чтобы отслеживать, с кем у вас были встречи", "installed_app_calendar_description": "Настройте проверку календарей на предмет конфликтов для избежания двойного бронирования.", @@ -913,7 +912,6 @@ "installed_app_other_description": "Все установленные приложения из других категорий.", "installed_app_conferencing_description": "Выберите приложения для конференц-связи", "installed_app_automation_description": "Выберите приложения для автоматизации", - "installed_app_web3_description": "Выберите приложения web3 для страниц бронирования", "installed_app_messaging_description": "Выберите мессенджеры, с помощью которых вы хотите отправлять пользовательские уведомления и напоминания", "installed_app_crm_description": "Выберите CRM-приложения, в которых вы хотите отслеживать, с кем у вас были встречи", "analytics": "Аналитика", @@ -1304,7 +1302,6 @@ "profile_picture": "Фото профиля", "upload": "Загрузить", "add_profile_photo": "Добавить фото профиля", - "web3": "Web3", "token_address": "Адрес токена", "blockchain": "Блокчейн", "old_password": "Старый пароль", @@ -1346,7 +1343,6 @@ "connect_automation_apps": "Подключить приложения для автоматизации", "connect_analytics_apps": "Подключить приложения аналитики", "connect_other_apps": "Подключить другие приложения", - "connect_web3_apps": "Подключить приложения web3", "connect_messaging_apps": "Подключить мессенджеры", "connect_crm_apps": "Подключить CRM-приложения", "current_step_of_total": "Шаг {{currentStep}} из {{maxSteps}}", @@ -1585,6 +1581,7 @@ "enable_apps": "Включить приложения", "enable_apps_description": "Выберите приложения, которые пользователи смогут интегрировать с {{appName}}", "purchase_license": "Купить лицензию", + "already_have_account": "Уже есть аккаунт?", "already_have_key": "У меня уже есть ключ:", "already_have_key_suggestion": "Скопируйте сюда переменную окружения CALCOM_LICENSE_KEY.", "app_is_enabled": "{{appName}} включено", diff --git a/apps/web/public/static/locales/sr/common.json b/apps/web/public/static/locales/sr/common.json index 00b178415d..543ddaeaf7 100644 --- a/apps/web/public/static/locales/sr/common.json +++ b/apps/web/public/static/locales/sr/common.json @@ -801,7 +801,7 @@ "cal_provide_tandem_meeting_url": "{{appName}} će obezbediti URL Tandem sastanka.", "cal_provide_video_meeting_url": "{{appName}} će obezbediti Daily video meeting URL.", "cal_provide_jitsi_meeting_url": "Mi ćemo generisati Jitsi Meet URL za vas.", - "cal_provide_huddle01_meeting_url": "{{appName}} će obezbediti Huddle01 web3 video meeting URL.", + "cal_provide_huddle01_meeting_url": "{{appName}} će obezbediti Huddle01 video meeting URL.", "cal_provide_teams_meeting_url": "{{appName}} će dostaviti URL adresu MS Teams sastanka. NAPOMENA: NEOPHODAN JE POSLOVNI ILI ŠKOLSKI NALOG", "require_payment": "Obavezno plaćanje", "you_need_to_add_a_name": "Potrebno je da dodate ime", @@ -904,7 +904,6 @@ "no_category_apps_description_analytics": "Dodajte analitičku aplikaciju za vaše stranice za rezervacije", "no_category_apps_description_automation": "Dodajte aplikaciju za automatizaciju za korišćenje", "no_category_apps_description_other": "Dodajte bilo koju vrstu aplikacije da biste uradili svakakve stvari", - "no_category_apps_description_web3": "Dodajte web3 aplikaciju na stranice za rezervacije", "no_category_apps_description_messaging": "Dodajte aplikaciju za poruke da biste podesili uobičajena obaveštenja i podsetnike", "no_category_apps_description_crm": "Dodajte aplikaciju za CRM da biste pratili sa kim ste se sreli", "installed_app_calendar_description": "Podesite kalendar(e) da biste proverili da li postoje konflikti i time sprečili dvostruka zakazivanja.", @@ -913,7 +912,6 @@ "installed_app_other_description": "Sve vaše instalirane aplikacije iz drugih kategorija.", "installed_app_conferencing_description": "Konfigurišite koje aplikacije ćete koristiti za konferencije", "installed_app_automation_description": "Konfigurišite koje ćete aplikacije za automatizaciju da koristite", - "installed_app_web3_description": "Konfigurišite koje web3 aplikacije će se koristiti za stranice za rezervacije", "installed_app_messaging_description": "Konfigurišite koje aplikacije za poruke ćete koristiti da biste podesili uobičajena obaveštenja i podsetnike", "installed_app_crm_description": "Konfigurišite koje CRM aplikacije ćete koristiti za praćenje sa kim ste se sreli", "analytics": "Analitika", @@ -1304,7 +1302,6 @@ "profile_picture": "Profilna slika", "upload": "Otpremi", "add_profile_photo": "Dodajte profilnu fotografiju", - "web3": "Web3", "token_address": "Adresa tokena", "blockchain": "Lanac blokova", "old_password": "Stara lozinka", @@ -1346,7 +1343,6 @@ "connect_automation_apps": "Povežite aplikacije za automatizaciju", "connect_analytics_apps": "Povežite analitičke aplikacije", "connect_other_apps": "Povežite druge aplikacije", - "connect_web3_apps": "Povežite web3 aplikacije", "connect_messaging_apps": "Povežite aplikacije za razmenu poruka", "connect_crm_apps": "Povežite CRM aplikacije", "current_step_of_total": "Korak {{currentStep}} od {{maxSteps}}", @@ -1585,6 +1581,7 @@ "enable_apps": "Omogući aplikacije", "enable_apps_description": "Omogući aplikacije koje korisnici mogu da integrišu sa aplikacijom {{appName}}", "purchase_license": "Kupovina licence", + "already_have_account": "Već imate nalog?", "already_have_key": "Već imam ključ:", "already_have_key_suggestion": "Kopirajte ovde postojeću CALCOM_LICENSE_KEY promenljivu okruženja.", "app_is_enabled": "Aplikacija {{appName}} je omogućena", diff --git a/apps/web/public/static/locales/sv/common.json b/apps/web/public/static/locales/sv/common.json index 38fe35c043..fcc2acaab1 100644 --- a/apps/web/public/static/locales/sv/common.json +++ b/apps/web/public/static/locales/sv/common.json @@ -801,7 +801,7 @@ "cal_provide_tandem_meeting_url": "{{appName}} kommer att generera en URL för Tandem-möte.", "cal_provide_video_meeting_url": "{{appName}} kommer att generera en URL för Daily video-möte.", "cal_provide_jitsi_meeting_url": "Vi kommer att generera en Jitsi Meet URL för dig.", - "cal_provide_huddle01_meeting_url": "{{appName}} kommer att generera en URL för Huddle01 web3-möte.", + "cal_provide_huddle01_meeting_url": "{{appName}} kommer att generera en URL för Huddle01-möte.", "cal_provide_teams_meeting_url": "{{appName}} kommer att tillhandahålla en mötes-URL för MS Teams. OBS! MÅSTE HA ETT ARBETS- ELLER SKOLKONTO", "require_payment": "Begär betalning", "you_need_to_add_a_name": "Du måste lägga till ett namn", @@ -904,7 +904,6 @@ "no_category_apps_description_analytics": "Lägg till en analysapp för dina bokningssidor", "no_category_apps_description_automation": "Lägg till en automationsapp att använda", "no_category_apps_description_other": "Lägg till en annan typ av app för att göra alla möjliga saker", - "no_category_apps_description_web3": "Lägg till en web3-app för dina bokningssidor", "no_category_apps_description_messaging": "Lägg till en meddelandeapp för att skapa anpassade aviseringar och påminnelser", "no_category_apps_description_crm": "Lägg till en CRM-app för att hålla reda på vilka du har träffat", "installed_app_calendar_description": "Ställ in kalendrar att söka efter konflikter för att undvika dubbelbokningar.", @@ -913,7 +912,6 @@ "installed_app_other_description": "Alla dina installerade appar från andra kategorier.", "installed_app_conferencing_description": "Konfigurera vilka konferensappar som ska användas", "installed_app_automation_description": "Konfigurera vilka automationsappar som ska användas", - "installed_app_web3_description": "Konfigurera vilka web3-appar som ska användas för dina bokningssidor", "installed_app_messaging_description": "Konfigurera vilka meddelandeappar som ska användas för att skapa anpassade aviseringar och påminnelser", "installed_app_crm_description": "Konfigurera vilka CRM-appar som ska användas för att hålla reda på vilka du har träffat", "analytics": "Analys", @@ -1304,7 +1302,6 @@ "profile_picture": "Profilbild", "upload": "Ladda upp", "add_profile_photo": "Lägg till profilfoto", - "web3": "Web3", "token_address": "Tokenadress", "blockchain": "Blockkedja", "old_password": "Gammalt lösenord", @@ -1346,7 +1343,6 @@ "connect_automation_apps": "Anslut automationsappar", "connect_analytics_apps": "Anslut analysappar", "connect_other_apps": "Anslut andra appar", - "connect_web3_apps": "Anslut web3-appar", "connect_messaging_apps": "Anslut meddelandeappar", "connect_crm_apps": "Anslut CRM-appar", "current_step_of_total": "Steg {{currentStep}} av {{maxSteps}}", @@ -1585,6 +1581,7 @@ "enable_apps": "Aktivera appar", "enable_apps_description": "Aktivera appar som användare kan integrera med {{appName}}", "purchase_license": "Köp en licens", + "already_have_account": "Har du redan ett konto?", "already_have_key": "Jag har redan en nyckel:", "already_have_key_suggestion": "Kopiera din befintliga CALCOM_LICENSE_KEY-miljövariabel här.", "app_is_enabled": "{{appName}} har aktiverats", diff --git a/apps/web/public/static/locales/tr/common.json b/apps/web/public/static/locales/tr/common.json index 14897646e7..f82f854d07 100644 --- a/apps/web/public/static/locales/tr/common.json +++ b/apps/web/public/static/locales/tr/common.json @@ -801,7 +801,7 @@ "cal_provide_tandem_meeting_url": "{{appName}}, bir Tandem toplantı URL'si sağlayacaktır.", "cal_provide_video_meeting_url": "{{appName}}, bir görüntülü toplantı URL'si sağlayacaktır.", "cal_provide_jitsi_meeting_url": "Sizin için bir Jitsi Meet URL'si oluşturacağız.", - "cal_provide_huddle01_meeting_url": "{{appName}}, bir Huddle01 web3 görüntülü toplantı URL'si sağlayacaktır.", + "cal_provide_huddle01_meeting_url": "{{appName}}, bir Huddle01 görüntülü toplantı URL'si sağlayacaktır.", "cal_provide_teams_meeting_url": "{{appName}}, bir MS Teams toplantı URL'si sağlayacaktır. NOT: İŞ VEYA OKUL HESABINIZIN OLMASI GEREKİR", "require_payment": "Ödemeyi Gerekli Kılın", "you_need_to_add_a_name": "Ad eklemeniz gerekiyor", @@ -904,7 +904,6 @@ "no_category_apps_description_analytics": "Rezervasyon sayfalarınız için bir analiz uygulaması ekleyin", "no_category_apps_description_automation": "Kullanılacak otomasyon uygulamasını ekleyin", "no_category_apps_description_other": "Her türlü işlemi yapmak için farklı bir uygulama ekleyin", - "no_category_apps_description_web3": "Rezervasyon sayfalarınız için bir web3 uygulaması ekleyin", "no_category_apps_description_messaging": "Özel bildirimler ve hatırlatıcılar ayarlamak için bir mesajlaşma uygulaması ekleyin", "no_category_apps_description_crm": "Tanıştığınız kullanıcıları takip etmek için bir CRM uygulaması ekleyin", "installed_app_calendar_description": "Çifte rezervasyonları önlemek amacıyla çakışmaları kontrol etmek için takvimleri ayarlayın.", @@ -913,7 +912,6 @@ "installed_app_other_description": "Diğer kategorilerdeki tüm yüklü uygulamalarınız.", "installed_app_conferencing_description": "Hangi konferans uygulamalarının kullanılacağını belirleyin", "installed_app_automation_description": "Kullanılacak otomasyon uygulamalarını yapılandırın", - "installed_app_web3_description": "Rezervasyon sayfalarınız için hangi web3 uygulamalarının kullanılacağını yapılandırın", "installed_app_messaging_description": "Özel bildirimleri ve hatırlatıcıları ayarlamak için hangi mesajlaşma uygulamalarının kullanılacağını belirleyin", "installed_app_crm_description": "Tanıştığınız kullanıcıları takip etmek için hangi CRM uygulamalarının kullanılacağını belirleyin", "analytics": "Analizler", @@ -1304,7 +1302,6 @@ "profile_picture": "Profil resmi", "upload": "Yükle", "add_profile_photo": "Profil fotoğrafı ekleyin", - "web3": "Web3", "token_address": "Token Adresi", "blockchain": "Blok zinciri", "old_password": "Eski şifre", @@ -1346,7 +1343,6 @@ "connect_automation_apps": "Otomasyon uygulamaları bağlayın", "connect_analytics_apps": "Analiz uygulamaları bağlayın", "connect_other_apps": "Diğer uygulamaları bağlayın", - "connect_web3_apps": "Web3 uygulamalarını bağlayın", "connect_messaging_apps": "Mesajlaşma uygulamalarını bağlayın", "connect_crm_apps": "CRM uygulamalarını bağlayın", "current_step_of_total": "{{currentStep}} / {{maxSteps}}. Adım", @@ -1585,6 +1581,7 @@ "enable_apps": "Uygulamaları Etkinleştir", "enable_apps_description": "Kullanıcıların {{appName}} ile entegre edebileceği uygulamaları etkinleştirin", "purchase_license": "Lisans satın alın", + "already_have_account": "Zaten bir hesabınız var mı?", "already_have_key": "Zaten bir anahtarım var:", "already_have_key_suggestion": "Lütfen mevcut CALCOM_LICENSE_KEY ortam değişkeninizi buraya kopyalayın.", "app_is_enabled": "{{appName}} etkinleştirildi", diff --git a/apps/web/public/static/locales/uk/common.json b/apps/web/public/static/locales/uk/common.json index 01a16a1fd5..13e68e93ed 100644 --- a/apps/web/public/static/locales/uk/common.json +++ b/apps/web/public/static/locales/uk/common.json @@ -801,7 +801,7 @@ "cal_provide_tandem_meeting_url": "{{appName}} надасть URL-адресу наради Tandem.", "cal_provide_video_meeting_url": "{{appName}} надасть URL-адресу наради Daily.", "cal_provide_jitsi_meeting_url": "Ми згенеруємо URL-адресу Jitsi Meet.", - "cal_provide_huddle01_meeting_url": "{{appName}} надасть URL-адресу відеонаради Huddle01 web3.", + "cal_provide_huddle01_meeting_url": "{{appName}} надасть URL-адресу відеонаради Huddle01.", "cal_provide_teams_meeting_url": "{{appName}} надасть URL-адресу наради в MS Teams. ПРИМІТКА: ПОТРІБЕН РОБОЧИЙ АБО НАВЧАЛЬНИЙ ОБЛІКОВИЙ ЗАПИС", "require_payment": "Вимагати оплату", "you_need_to_add_a_name": "Потрібно додати ім’я", @@ -904,7 +904,6 @@ "no_category_apps_description_analytics": "Вибрати аналітичний додаток для своїх сторінок бронювання", "no_category_apps_description_automation": "Вибрати додаток для автоматизації", "no_category_apps_description_other": "Додавайте інші додатки з різноманітними функціями", - "no_category_apps_description_web3": "Вибрати додаток web3 для своїх сторінок бронювання", "no_category_apps_description_messaging": "Додайте застосунок для обміну повідомленнями, щоб налаштувати сповіщення й нагадування", "no_category_apps_description_crm": "Додайте застосунок для CRM, щоб вести облік користувачів, з якими ви зустрічалися", "installed_app_calendar_description": "Налаштуйте календарі, щоб перевіряти, чи немає конфліктів у розкладі, і уникати подвійних бронювань.", @@ -913,7 +912,6 @@ "installed_app_other_description": "Усі ваші встановлені додатки з інших категорій.", "installed_app_conferencing_description": "Укажіть, які застосунки для конференцій використовувати", "installed_app_automation_description": "Указати додатки для автоматизації", - "installed_app_web3_description": "Виберіть додатки web3 для своїх сторінок бронювання", "installed_app_messaging_description": "Укажіть, які застосунки для обміну повідомленнями використовувати для налаштування сповіщень і нагадувань", "installed_app_crm_description": "Укажіть, які застосунки для CRM використовувати, щоб вести облік користувачів, з якими ви зустрічались", "analytics": "Аналітика", @@ -1304,7 +1302,6 @@ "profile_picture": "Зображення профілю", "upload": "Передати", "add_profile_photo": "Додати фото профілю", - "web3": "Web3", "token_address": "Адреса токена", "blockchain": "Блокчейн", "old_password": "Старий пароль", @@ -1346,7 +1343,6 @@ "connect_automation_apps": "Підключити додатки для автоматизації", "connect_analytics_apps": "Підключити аналітичні додатки", "connect_other_apps": "Підключити інші додатки", - "connect_web3_apps": "Підключити додатки web3", "connect_messaging_apps": "Підключити застосунки для повідомлень", "connect_crm_apps": "Підключити застосунки CRM", "current_step_of_total": "Крок {{currentStep}} із {{maxSteps}}", @@ -1585,6 +1581,7 @@ "enable_apps": "Увімкнути додатки", "enable_apps_description": "Активуйте застосунки, які користувачі зможуть інтегрувати із застосунком {{appName}}", "purchase_license": "Придбати ліцензію", + "already_have_account": "Уже маєте обліковий запис?", "already_have_key": "У мене вже є ключ:", "already_have_key_suggestion": "Скопіюйте сюди наявну змінну оточення CALCOM_LICENSE_KEY.", "app_is_enabled": "{{appName}} увімкнено", diff --git a/apps/web/public/static/locales/vi/common.json b/apps/web/public/static/locales/vi/common.json index 8b75e8baea..b4497764c7 100644 --- a/apps/web/public/static/locales/vi/common.json +++ b/apps/web/public/static/locales/vi/common.json @@ -801,7 +801,7 @@ "cal_provide_tandem_meeting_url": "{{appName}} sẽ cung cấp URL cuộc họp Tandem.", "cal_provide_video_meeting_url": "{{appName}} sẽ cung cấp URL cuộc họp video.", "cal_provide_jitsi_meeting_url": "Chúng tôi sẽ tạo một URL Jitsi Meet cho bạn.", - "cal_provide_huddle01_meeting_url": "{{appName}} sẽ cung cấp URL cuộc họp video Huddle01 web3.", + "cal_provide_huddle01_meeting_url": "{{appName}} sẽ cung cấp URL cuộc họp video Huddle01.", "cal_provide_teams_meeting_url": "{{appName}} sẽ cung cấp URL cuộc họp MS Teams. LƯU Ý: PHẢI CÓ TÀI KHOẢN CÔNG VIỆC HOẶC TRƯỜNG HỌC", "require_payment": "Yêu cầu thanh toán", "you_need_to_add_a_name": "Bạn cần thêm vào một tên", @@ -904,7 +904,6 @@ "no_category_apps_description_analytics": "Thêm một ứng dụng phân tích cho những trang lịch hẹn của bạn", "no_category_apps_description_automation": "Thêm một ứng dụng tự động hoá để sử dụng", "no_category_apps_description_other": "Thêm loại ứng dụng khác để làm mọi loại công việc", - "no_category_apps_description_web3": "Thêm một ứng dụng web3 cho những trang lịch hẹn của bạn", "no_category_apps_description_messaging": "Thêm một ứng dụng nhắn tin để thiết lập thông báo & lời nhắc tuỳ chỉnh", "no_category_apps_description_crm": "Thêm một ứng dụng CRM để theo dõi người mà bạn đã họp cùng", "installed_app_calendar_description": "Đặt (các) lịch làm nhiệm vụ kiểm tra xung đột nhằm ngăn tình trạng đặt lịch trùng.", @@ -913,7 +912,6 @@ "installed_app_other_description": "Tất cả những ứng dụng bạn đã cài từ những danh mục khác.", "installed_app_conferencing_description": "Cấu hình ứng dụng hội nghị nào nên dùng", "installed_app_automation_description": "Cấu hình ứng dụng tự động hoá nên dùng", - "installed_app_web3_description": "Cấu hình ứng dụng web3 nào cần để sử dụng cho những trang lịch hẹn của bạn", "installed_app_messaging_description": "Cấu hình ứng dụng nhắn tin nào cần dùng để thiết lập thông báo & lời nhắc tuỳ chỉnh", "installed_app_crm_description": "Cấu hình ứng dụng CRM nào cần dùng để theo dõi những người mà bạn đã họp cùng", "analytics": "Phân tích", @@ -1304,7 +1302,6 @@ "profile_picture": "Ảnh hồ sơ", "upload": "Tải lên", "add_profile_photo": "Thêm ảnh hồ sơ", - "web3": "Web3", "token_address": "Địa chỉ token", "blockchain": "Chuỗi khối", "old_password": "Mật khẩu cũ", @@ -1346,7 +1343,6 @@ "connect_automation_apps": "Kết nối các ứng dụng tự động hoá", "connect_analytics_apps": "Kết nối các ứng dụng phân tích", "connect_other_apps": "Kết nối các ứng dụng khác", - "connect_web3_apps": "Kết nối các ứng dụng web3", "connect_messaging_apps": "Kết nối các ứng dụng nhắn tin", "connect_crm_apps": "Kết nối các ứng dụng CRM", "current_step_of_total": "Bước {{currentStep}}/{{maxSteps}}", @@ -1585,6 +1581,7 @@ "enable_apps": "Kích hoạt ứng dụng", "enable_apps_description": "Kích hoạt những ứng dụng mà người dùng có thể tích hợp với {{appName}}", "purchase_license": "Mua một giấy phép", + "already_have_account": "Bạn đã có sẵn tài khoản?", "already_have_key": "Tôi đã có một khoá:", "already_have_key_suggestion": "Vui lòng sao chép biến số môi trường CALCOM_LICENSE_KEY hiện có của bạn tại đây.", "app_is_enabled": "{{appName}} đã được kích hoạt", diff --git a/apps/web/public/static/locales/zh-CN/common.json b/apps/web/public/static/locales/zh-CN/common.json index 4e67871776..2744709507 100644 --- a/apps/web/public/static/locales/zh-CN/common.json +++ b/apps/web/public/static/locales/zh-CN/common.json @@ -801,7 +801,7 @@ "cal_provide_tandem_meeting_url": "{{appName}} 将提供 Tandem 会议链接", "cal_provide_video_meeting_url": "{{appName}}将提供 Daily 视频会议链接", "cal_provide_jitsi_meeting_url": "{{appName}} 将提供 Jitsi Meet 视频会议链接", - "cal_provide_huddle01_meeting_url": "{{appName}} 将提供 Huddle01 web3 视频会议链接", + "cal_provide_huddle01_meeting_url": "{{appName}} 将提供 Huddle01 视频会议链接", "cal_provide_teams_meeting_url": "{{appName}} 将提供 MS Teams 会议 URL。注意: 须拥有工作或学校帐户", "require_payment": "需要付款", "you_need_to_add_a_name": "您需要添加名称", @@ -905,7 +905,6 @@ "no_category_apps_description_analytics": "为您的预约页面添加分析应用", "no_category_apps_description_automation": "添加要使用的自动化应用", "no_category_apps_description_other": "添加任何其他类型的应用以执行各种操作", - "no_category_apps_description_web3": "为您的预约页面添加 web3 应用", "no_category_apps_description_messaging": "添加一个消息应用,以设置自定义通知和提醒", "no_category_apps_description_crm": "添加一个 CRM 应用,以记录您见过的人", "installed_app_calendar_description": "设置日历以检查冲突,防止重复预约。", @@ -914,7 +913,6 @@ "installed_app_other_description": "所有属于其他类别的已安装应用。", "installed_app_conferencing_description": "配置要使用的会议应用", "installed_app_automation_description": "配置要使用的自动化应用", - "installed_app_web3_description": "配置将用于您的预约页面的 web3 应用", "installed_app_messaging_description": "配置用于设置自定义通知和提醒的消息应用", "installed_app_crm_description": "配置用于记录您见过的人的 CRM 应用", "analytics": "分析", @@ -1305,7 +1303,6 @@ "profile_picture": "个人资料图片", "upload": "上传", "add_profile_photo": "添加个人资料照片", - "web3": "Web3", "token_address": "代币地址", "blockchain": "区块链", "old_password": "旧密码", @@ -1347,7 +1344,6 @@ "connect_automation_apps": "连接自动化应用", "connect_analytics_apps": "连接分析应用", "connect_other_apps": "连接其他应用", - "connect_web3_apps": "连接 web3 应用", "connect_messaging_apps": "连接消息应用", "connect_crm_apps": "连接 CRM 应用", "current_step_of_total": "第 {{currentStep}} 步,共 {{maxSteps}} 步", @@ -1586,6 +1582,7 @@ "enable_apps": "启用应用", "enable_apps_description": "启用用户可以与 {{appName}} 集成的应用", "purchase_license": "购买许可证", + "already_have_account": "已经有帐号?", "already_have_key": "我已经有密钥:", "already_have_key_suggestion": "请将您现有的 CALCOM_LICENSE_KEY 环境变量复制到此处。", "app_is_enabled": "{{appName}} 已启用", diff --git a/apps/web/public/static/locales/zh-TW/common.json b/apps/web/public/static/locales/zh-TW/common.json index f2519f2ffe..d128313c17 100644 --- a/apps/web/public/static/locales/zh-TW/common.json +++ b/apps/web/public/static/locales/zh-TW/common.json @@ -904,7 +904,6 @@ "no_category_apps_description_analytics": "為您的預約頁面加入分析應用程式", "no_category_apps_description_automation": "加入自動化應用程式來使用", "no_category_apps_description_other": "新增任何其他類型的應用程式以完成各種操作", - "no_category_apps_description_web3": "為您的預約頁面加入 web3 應用程式", "no_category_apps_description_messaging": "新增傳訊應用程式,以設定自訂通知和提醒", "no_category_apps_description_crm": "新增 CRM 應用程式,追蹤您已見過面的人", "installed_app_calendar_description": "設定行事曆來檢查衝突,以避免重複預約。", @@ -913,7 +912,6 @@ "installed_app_other_description": "其他類別的所有已安裝應用程式。", "installed_app_conferencing_description": "設定要使用哪些會議應用程式", "installed_app_automation_description": "設定要使用哪些自動化應用程式", - "installed_app_web3_description": "設定要為您的預約頁面使用哪些 web3 應用程式", "installed_app_messaging_description": "設定要使用哪些傳訊應用程式來設定自訂通知與提醒", "installed_app_crm_description": "設定要使用哪些 CRM 應用程式來追蹤您已見過面的人", "analytics": "分析", @@ -1304,7 +1302,6 @@ "profile_picture": "個人資料圖片", "upload": "上傳", "add_profile_photo": "新增個人資料相片", - "web3": "Web3", "token_address": "代幣地址", "blockchain": "區塊鏈", "old_password": "舊密碼", @@ -1346,7 +1343,6 @@ "connect_automation_apps": "連至自動化應用程式", "connect_analytics_apps": "連至分析應用程式", "connect_other_apps": "連接其他應用程式", - "connect_web3_apps": "連接 web3 應用程式", "connect_messaging_apps": "連接傳訊應用程式", "connect_crm_apps": "連接 CRM 應用程式", "current_step_of_total": "第 {{currentStep}} 步,共 {{maxSteps}} 步", @@ -1585,6 +1581,7 @@ "enable_apps": "啟用應用程式", "enable_apps_description": "啟用使用者可與 {{appName}} 整合的應用程式", "purchase_license": "購買授權", + "already_have_account": "已經有帳號嗎?", "already_have_key": "我已經有金鑰:", "already_have_key_suggestion": "請複製您目前的 CALCOM_LICENSE_KEY 環境變數至此處。", "app_is_enabled": "已啟用 {{appName}}", diff --git a/apps/web/sentry.server.config.ts b/apps/web/sentry.server.config.ts index 842f09fccc..a429088bd9 100644 --- a/apps/web/sentry.server.config.ts +++ b/apps/web/sentry.server.config.ts @@ -2,4 +2,5 @@ import * as Sentry from "@sentry/nextjs"; Sentry.init({ dsn: process.env.NEXT_PUBLIC_SENTRY_DSN, + tracesSampleRate: 1.0, }); diff --git a/apps/web/test/utils/bookingScenario/bookingScenario.ts b/apps/web/test/utils/bookingScenario/bookingScenario.ts index 229c7a67aa..63ab59c9df 100644 --- a/apps/web/test/utils/bookingScenario/bookingScenario.ts +++ b/apps/web/test/utils/bookingScenario/bookingScenario.ts @@ -648,6 +648,16 @@ export function getGoogleCalendarCredential() { }); } +export function getAppleCalendarCredential() { + return getMockedCredential({ + metadataLookupKey: "applecalendar", + key: { + scope: + "https://www.applecalendar.example/auth/calendar.events https://www.applecalendar.example/auth/calendar.readonly", + }, + }); +} + export function getZoomAppCredential() { return getMockedCredential({ metadataLookupKey: "zoomvideo", diff --git a/apps/web/test/utils/bookingScenario/expects.ts b/apps/web/test/utils/bookingScenario/expects.ts index 5db6e68c4c..edb5e1a9a1 100644 --- a/apps/web/test/utils/bookingScenario/expects.ts +++ b/apps/web/test/utils/bookingScenario/expects.ts @@ -4,7 +4,7 @@ import type { WebhookTriggerEvents, Booking, BookingReference, DestinationCalend import { parse } from "node-html-parser"; import type { VEvent } from "node-ical"; import ical from "node-ical"; -import { expect } from "vitest"; +import { expect, vi } from "vitest"; import "vitest-fetch-mock"; import dayjs from "@calcom/dayjs"; @@ -547,7 +547,7 @@ export function expectCalendarEventCreationFailureEmails({ ); } -export function expectSuccessfulRoudRobinReschedulingEmails({ +export function expectSuccessfulRoundRobinReschedulingEmails({ emails, newOrganizer, prevOrganizer, @@ -557,32 +557,38 @@ export function expectSuccessfulRoudRobinReschedulingEmails({ prevOrganizer: { email: string; name: string }; }) { if (newOrganizer !== prevOrganizer) { - // new organizer should recieve scheduling emails - expect(emails).toHaveEmail( - { - heading: "new_event_scheduled", - to: `${newOrganizer.email}`, - }, - `${newOrganizer.email}` - ); + vi.waitFor(() => { + // new organizer should recieve scheduling emails + expect(emails).toHaveEmail( + { + heading: "new_event_scheduled", + to: `${newOrganizer.email}`, + }, + `${newOrganizer.email}` + ); + }); - // old organizer should recieve cancelled emails - expect(emails).toHaveEmail( - { - heading: "event_request_cancelled", - to: `${prevOrganizer.email}`, - }, - `${prevOrganizer.email}` - ); + vi.waitFor(() => { + // old organizer should recieve cancelled emails + expect(emails).toHaveEmail( + { + heading: "event_request_cancelled", + to: `${prevOrganizer.email}`, + }, + `${prevOrganizer.email}` + ); + }); } else { - // organizer should recieve rescheduled emails - expect(emails).toHaveEmail( - { - heading: "event_has_been_rescheduled", - to: `${newOrganizer.email}`, - }, - `${newOrganizer.email}` - ); + vi.waitFor(() => { + // organizer should recieve rescheduled emails + expect(emails).toHaveEmail( + { + heading: "event_has_been_rescheduled", + to: `${newOrganizer.email}`, + }, + `${newOrganizer.email}` + ); + }); } } diff --git a/package.json b/package.json index 586870f28e..8cb73848c1 100644 --- a/package.json +++ b/package.json @@ -98,7 +98,7 @@ "prismock": "^1.21.1", "tsc-absolute": "^1.0.0", "typescript": "^4.9.4", - "vitest": "^0.34.3", + "vitest": "^0.34.6", "vitest-fetch-mock": "^0.2.2", "vitest-mock-extended": "^1.1.3" }, diff --git a/packages/app-store/alby/lib/PaymentService.ts b/packages/app-store/alby/lib/PaymentService.ts index c29b08427a..99dc4c728c 100644 --- a/packages/app-store/alby/lib/PaymentService.ts +++ b/packages/app-store/alby/lib/PaymentService.ts @@ -5,6 +5,7 @@ import type z from "zod"; import { ErrorCode } from "@calcom/lib/errorCodes"; import logger from "@calcom/lib/logger"; +import { safeStringify } from "@calcom/lib/safeStringify"; import prisma from "@calcom/prisma"; import type { CalendarEvent } from "@calcom/types/Calendar"; import type { IAbstractPaymentService } from "@calcom/types/PaymentService"; @@ -87,7 +88,7 @@ export class PaymentService implements IAbstractPaymentService { } return paymentData; } catch (error) { - log.error("Alby: Payment could not be created", bookingId, JSON.stringify(error)); + log.error("Alby: Payment could not be created", bookingId, safeStringify(error)); throw new Error(ErrorCode.PaymentCreationFailure); } } diff --git a/packages/app-store/applecalendar/pages/setup/index.tsx b/packages/app-store/applecalendar/pages/setup/index.tsx index 0bef9573c6..af700122e1 100644 --- a/packages/app-store/applecalendar/pages/setup/index.tsx +++ b/packages/app-store/applecalendar/pages/setup/index.tsx @@ -5,7 +5,7 @@ import { Toaster } from "react-hot-toast"; import { APP_NAME } from "@calcom/lib/constants"; import { useLocale } from "@calcom/lib/hooks/useLocale"; -import { Alert, Button, Form, TextField } from "@calcom/ui"; +import { Alert, Button, Form, PasswordField, TextField } from "@calcom/ui"; export default function AppleCalendarSetup() { const { t } = useLocale(); @@ -20,8 +20,8 @@ export default function AppleCalendarSetup() { const [errorMessage, setErrorMessage] = useState(""); return ( -
-
+
+
{/* eslint-disable @next/next/no-img-element */} @@ -32,12 +32,14 @@ export default function AppleCalendarSetup() { />
-

{t("connect_apple_server")}

+

+ {t("connect_apple_server")} +

{t("apple_server_generate_password", { appName: APP_NAME })}{" "} @@ -45,7 +47,7 @@ export default function AppleCalendarSetup() { . {t("credentials_stored_encrypted")}
-
+
{ @@ -65,7 +67,7 @@ export default function AppleCalendarSetup() { } }}>
- import("./ga4/components/EventTypeAppCardInterface")), giphy: dynamic(() => import("./giphy/components/EventTypeAppCardInterface")), gtm: dynamic(() => import("./gtm/components/EventTypeAppCardInterface")), + matomo: dynamic(() => import("./matomo/components/EventTypeAppCardInterface")), metapixel: dynamic(() => import("./metapixel/components/EventTypeAppCardInterface")), paypal: dynamic(() => import("./paypal/components/EventTypeAppCardInterface")), plausible: dynamic(() => import("./plausible/components/EventTypeAppCardInterface")), diff --git a/packages/app-store/apps.keys-schemas.generated.ts b/packages/app-store/apps.keys-schemas.generated.ts index 94c0ae6188..0d8f1c1f24 100644 --- a/packages/app-store/apps.keys-schemas.generated.ts +++ b/packages/app-store/apps.keys-schemas.generated.ts @@ -15,6 +15,7 @@ import { appKeysSchema as intercom_zod_ts } from "./intercom/zod"; import { appKeysSchema as jitsivideo_zod_ts } from "./jitsivideo/zod"; import { appKeysSchema as larkcalendar_zod_ts } from "./larkcalendar/zod"; import { appKeysSchema as make_zod_ts } from "./make/zod"; +import { appKeysSchema as matomo_zod_ts } from "./matomo/zod"; import { appKeysSchema as metapixel_zod_ts } from "./metapixel/zod"; import { appKeysSchema as office365calendar_zod_ts } from "./office365calendar/zod"; import { appKeysSchema as office365video_zod_ts } from "./office365video/zod"; @@ -51,6 +52,7 @@ export const appKeysSchemas = { jitsivideo: jitsivideo_zod_ts, larkcalendar: larkcalendar_zod_ts, make: make_zod_ts, + matomo: matomo_zod_ts, metapixel: metapixel_zod_ts, office365calendar: office365calendar_zod_ts, office365video: office365video_zod_ts, diff --git a/packages/app-store/apps.metadata.generated.ts b/packages/app-store/apps.metadata.generated.ts index ed50360009..442cdad4ed 100644 --- a/packages/app-store/apps.metadata.generated.ts +++ b/packages/app-store/apps.metadata.generated.ts @@ -33,6 +33,7 @@ import intercom_config_json from "./intercom/config.json"; import { metadata as jitsivideo__metadata_ts } from "./jitsivideo/_metadata"; import { metadata as larkcalendar__metadata_ts } from "./larkcalendar/_metadata"; import make_config_json from "./make/config.json"; +import matomo_config_json from "./matomo/config.json"; import metapixel_config_json from "./metapixel/config.json"; import mirotalk_config_json from "./mirotalk/config.json"; import n8n_config_json from "./n8n/config.json"; @@ -109,6 +110,7 @@ export const appStoreMetadata = { jitsivideo: jitsivideo__metadata_ts, larkcalendar: larkcalendar__metadata_ts, make: make_config_json, + matomo: matomo_config_json, metapixel: metapixel_config_json, mirotalk: mirotalk_config_json, n8n: n8n_config_json, diff --git a/packages/app-store/apps.schemas.generated.ts b/packages/app-store/apps.schemas.generated.ts index 73acac0dc6..505f91ed99 100644 --- a/packages/app-store/apps.schemas.generated.ts +++ b/packages/app-store/apps.schemas.generated.ts @@ -15,6 +15,7 @@ import { appDataSchema as intercom_zod_ts } from "./intercom/zod"; import { appDataSchema as jitsivideo_zod_ts } from "./jitsivideo/zod"; import { appDataSchema as larkcalendar_zod_ts } from "./larkcalendar/zod"; import { appDataSchema as make_zod_ts } from "./make/zod"; +import { appDataSchema as matomo_zod_ts } from "./matomo/zod"; import { appDataSchema as metapixel_zod_ts } from "./metapixel/zod"; import { appDataSchema as office365calendar_zod_ts } from "./office365calendar/zod"; import { appDataSchema as office365video_zod_ts } from "./office365video/zod"; @@ -51,6 +52,7 @@ export const appDataSchemas = { jitsivideo: jitsivideo_zod_ts, larkcalendar: larkcalendar_zod_ts, make: make_zod_ts, + matomo: matomo_zod_ts, metapixel: metapixel_zod_ts, office365calendar: office365calendar_zod_ts, office365video: office365video_zod_ts, diff --git a/packages/app-store/apps.server.generated.ts b/packages/app-store/apps.server.generated.ts index 23f3038bab..b1a2bde551 100644 --- a/packages/app-store/apps.server.generated.ts +++ b/packages/app-store/apps.server.generated.ts @@ -33,6 +33,7 @@ export const apiHandlers = { jitsivideo: import("./jitsivideo/api"), larkcalendar: import("./larkcalendar/api"), make: import("./make/api"), + matomo: import("./matomo/api"), metapixel: import("./metapixel/api"), mirotalk: import("./mirotalk/api"), n8n: import("./n8n/api"), diff --git a/packages/app-store/bookerApps.metadata.generated.ts b/packages/app-store/bookerApps.metadata.generated.ts index 4ecb096206..b03b64e735 100644 --- a/packages/app-store/bookerApps.metadata.generated.ts +++ b/packages/app-store/bookerApps.metadata.generated.ts @@ -15,6 +15,7 @@ import { metadata as googlevideo__metadata_ts } from "./googlevideo/_metadata"; import gtm_config_json from "./gtm/config.json"; import { metadata as huddle01video__metadata_ts } from "./huddle01video/_metadata"; import { metadata as jitsivideo__metadata_ts } from "./jitsivideo/_metadata"; +import matomo_config_json from "./matomo/config.json"; import metapixel_config_json from "./metapixel/config.json"; import mirotalk_config_json from "./mirotalk/config.json"; import office365video_config_json from "./office365video/config.json"; @@ -48,6 +49,7 @@ export const appStoreMetadata = { gtm: gtm_config_json, huddle01video: huddle01video__metadata_ts, jitsivideo: jitsivideo__metadata_ts, + matomo: matomo_config_json, metapixel: metapixel_config_json, mirotalk: mirotalk_config_json, office365video: office365video_config_json, diff --git a/packages/app-store/googlecalendar/lib/CalendarService.ts b/packages/app-store/googlecalendar/lib/CalendarService.ts index e01982378b..0ffc9a0442 100644 --- a/packages/app-store/googlecalendar/lib/CalendarService.ts +++ b/packages/app-store/googlecalendar/lib/CalendarService.ts @@ -9,6 +9,7 @@ import { getFeatureFlagMap } from "@calcom/features/flags/server/utils"; import { getLocation, getRichDescription } from "@calcom/lib/CalEventParser"; import type CalendarService from "@calcom/lib/CalendarService"; import logger from "@calcom/lib/logger"; +import { safeStringify } from "@calcom/lib/safeStringify"; import prisma from "@calcom/prisma"; import type { Calendar, @@ -106,6 +107,7 @@ export default class GoogleCalendarService implements Calendar { }); myGoogleAuth.setCredentials(googleCredentials); } catch (err) { + this.log.error("Error Refreshing Google Token", safeStringify(err)); let message; if (err instanceof Error) message = err.message; else message = String(err); @@ -251,7 +253,10 @@ export default class GoogleCalendarService implements Calendar { iCalUID: event.data.iCalUID, }; } catch (error) { - console.error("There was an error contacting google calendar service: ", error); + this.log.error( + "There was an error creating event in google calendar: ", + safeStringify({ error, selectedCalendar, credentialId }) + ); throw error; } } @@ -332,7 +337,10 @@ export default class GoogleCalendarService implements Calendar { } return evt?.data; } catch (error) { - console.error("There was an error contacting google calendar service: ", error); + this.log.error( + "There was an error updating event in google calendar: ", + safeStringify({ error, event, uid }) + ); throw error; } } @@ -354,6 +362,10 @@ export default class GoogleCalendarService implements Calendar { }); return event?.data; } catch (error) { + this.log.error( + "There was an error deleting event from google calendar: ", + safeStringify({ error, event, externalCalendarId }) + ); const err = error as GoogleCalError; /** * 410 is when an event is already deleted on the Google cal before on cal.com @@ -502,7 +514,10 @@ export default class GoogleCalendarService implements Calendar { return busyData; } } catch (error) { - this.log.error("There was an error contacting google calendar service: ", error); + this.log.error( + "There was an error getting availability from google calendar: ", + safeStringify({ error, selectedCalendars }) + ); throw error; } } @@ -524,7 +539,7 @@ export default class GoogleCalendarService implements Calendar { } satisfies IntegrationCalendar) ); } catch (error) { - this.log.error("There was an error contacting google calendar service: ", error); + this.log.error("There was an error getting calendars: ", safeStringify(error)); throw error; } } diff --git a/packages/app-store/matomo/DESCRIPTION.md b/packages/app-store/matomo/DESCRIPTION.md new file mode 100644 index 0000000000..d07280ea4c --- /dev/null +++ b/packages/app-store/matomo/DESCRIPTION.md @@ -0,0 +1,6 @@ +--- +items: + - 1.png +--- + +{DESCRIPTION} diff --git a/packages/app-store/matomo/api/add.ts b/packages/app-store/matomo/api/add.ts new file mode 100644 index 0000000000..6ab3106577 --- /dev/null +++ b/packages/app-store/matomo/api/add.ts @@ -0,0 +1,16 @@ +import { createDefaultInstallation } from "@calcom/app-store/_utils/installation"; +import type { AppDeclarativeHandler } from "@calcom/types/AppHandler"; + +import appConfig from "../config.json"; + +const handler: AppDeclarativeHandler = { + appType: appConfig.type, + variant: appConfig.variant, + slug: appConfig.slug, + supportsMultipleInstalls: false, + handlerType: "add", + createCredential: ({ appType, user, slug, teamId }) => + createDefaultInstallation({ appType, userId: user.id, slug, key: {}, teamId }), +}; + +export default handler; diff --git a/packages/app-store/matomo/api/index.ts b/packages/app-store/matomo/api/index.ts new file mode 100644 index 0000000000..4c0d2ead01 --- /dev/null +++ b/packages/app-store/matomo/api/index.ts @@ -0,0 +1 @@ +export { default as add } from "./add"; diff --git a/packages/app-store/matomo/components/EventTypeAppCardInterface.tsx b/packages/app-store/matomo/components/EventTypeAppCardInterface.tsx new file mode 100644 index 0000000000..f71200486f --- /dev/null +++ b/packages/app-store/matomo/components/EventTypeAppCardInterface.tsx @@ -0,0 +1,47 @@ +import { useAppContextWithSchema } from "@calcom/app-store/EventTypeAppContext"; +import AppCard from "@calcom/app-store/_components/AppCard"; +import useIsAppEnabled from "@calcom/app-store/_utils/useIsAppEnabled"; +import type { EventTypeAppCardComponent } from "@calcom/app-store/types"; +import { TextField } from "@calcom/ui"; + +import type { appDataSchema } from "../zod"; + +const EventTypeAppCard: EventTypeAppCardComponent = function EventTypeAppCard({ app, eventType }) { + const { getAppData, setAppData, disabled } = useAppContextWithSchema(); + const matomoUrl = getAppData("MATOMO_URL"); + const siteId = getAppData("SITE_ID"); + const { enabled, updateEnabled } = useIsAppEnabled(app); + + return ( + { + updateEnabled(e); + }} + switchChecked={enabled} + teamId={eventType.team?.id || undefined}> +
+ { + setAppData("MATOMO_URL", e.target.value); + }} + /> + { + setAppData("SITE_ID", e.target.value); + }} + /> +
+
+ ); +}; + +export default EventTypeAppCard; diff --git a/packages/app-store/matomo/config.json b/packages/app-store/matomo/config.json new file mode 100644 index 0000000000..cedb3934e5 --- /dev/null +++ b/packages/app-store/matomo/config.json @@ -0,0 +1,29 @@ +{ + "name": "Matomo", + "slug": "matomo", + "type": "matomo_analytics", + "logo": "icon.svg", + "url": "https://cal.com/", + "variant": "analytics", + "categories": ["analytics"], + "publisher": "Cal.com, Inc.", + "email": "help@cal.com", + "description": "Google Analytics alternative that protects your data and your customers' privacy", + "extendsFeature": "EventType", + "appData": { + "tag": { + "scripts": [ + { + "src": "{MATOMO_URL}/matomo.js", + "attrs": {} + }, + { + "content": "var _paq = window._paq || [];\n _paq.push(['trackPageView']);\n _paq.push(['enableLinkTracking']);\n (function() {\n var u='{MATOMO_URL}/'; \n _paq.push(['setTrackerUrl', u+'matomo.php']);\n _paq.push(['setSiteId', '{SITE_ID}']); \n var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0];\n g.type='text/javascript'; g.async=true; g.defer=true; g.src=u+'matomo.js'; s.parentNode.insertBefore(g,s);\n })();" + } + ] + } + }, + "isTemplate": false, + "__createdUsingCli": true, + "__template": "booking-pages-tag" +} diff --git a/packages/app-store/matomo/index.ts b/packages/app-store/matomo/index.ts new file mode 100644 index 0000000000..d7f3602204 --- /dev/null +++ b/packages/app-store/matomo/index.ts @@ -0,0 +1 @@ +export * as api from "./api"; diff --git a/packages/app-store/matomo/package.json b/packages/app-store/matomo/package.json new file mode 100644 index 0000000000..9d34ae7ba5 --- /dev/null +++ b/packages/app-store/matomo/package.json @@ -0,0 +1,14 @@ +{ + "$schema": "https://json.schemastore.org/package.json", + "private": true, + "name": "@calcom/matomo", + "version": "0.0.0", + "main": "./index.ts", + "dependencies": { + "@calcom/lib": "*" + }, + "devDependencies": { + "@calcom/types": "*" + }, + "description": "Google Analytics alternative that protects your data and your customers' privacy" +} diff --git a/packages/app-store/matomo/static/1.png b/packages/app-store/matomo/static/1.png new file mode 100644 index 0000000000..2fc9a9d477 Binary files /dev/null and b/packages/app-store/matomo/static/1.png differ diff --git a/packages/app-store/matomo/static/icon.svg b/packages/app-store/matomo/static/icon.svg new file mode 100644 index 0000000000..a91b34b693 --- /dev/null +++ b/packages/app-store/matomo/static/icon.svg @@ -0,0 +1 @@ + diff --git a/packages/app-store/matomo/zod.ts b/packages/app-store/matomo/zod.ts new file mode 100644 index 0000000000..c13304b444 --- /dev/null +++ b/packages/app-store/matomo/zod.ts @@ -0,0 +1,12 @@ +import { z } from "zod"; + +import { eventTypeAppCardZod } from "@calcom/app-store/eventTypeAppCardZod"; + +export const appDataSchema = eventTypeAppCardZod.merge( + z.object({ + MATOMO_URL: z.string().optional(), + SITE_ID: z.string().optional(), + }) +); + +export const appKeysSchema = z.object({}); diff --git a/packages/app-store/paypal/lib/PaymentService.ts b/packages/app-store/paypal/lib/PaymentService.ts index 9b6d479d09..9ad68c6846 100644 --- a/packages/app-store/paypal/lib/PaymentService.ts +++ b/packages/app-store/paypal/lib/PaymentService.ts @@ -6,6 +6,7 @@ import Paypal from "@calcom/app-store/paypal/lib/Paypal"; import { WEBAPP_URL } from "@calcom/lib/constants"; import { ErrorCode } from "@calcom/lib/errorCodes"; import logger from "@calcom/lib/logger"; +import { safeStringify } from "@calcom/lib/safeStringify"; import prisma from "@calcom/prisma"; import type { CalendarEvent } from "@calcom/types/Calendar"; import type { IAbstractPaymentService } from "@calcom/types/PaymentService"; @@ -91,7 +92,7 @@ export class PaymentService implements IAbstractPaymentService { } return paymentData; } catch (error) { - log.error("Paypal: Payment could not be created for bookingId", bookingId); + log.error("Paypal: Payment could not be created for bookingId", bookingId, safeStringify(error)); throw new Error(ErrorCode.PaymentCreationFailure); } } @@ -170,7 +171,11 @@ export class PaymentService implements IAbstractPaymentService { } return paymentData; } catch (error) { - log.error("Paypal: Payment method could not be collected for bookingId", bookingId); + log.error( + "Paypal: Payment method could not be collected for bookingId", + bookingId, + safeStringify(error) + ); throw new Error("Paypal: Payment method could not be collected"); } } diff --git a/packages/app-store/routing-forms/emails/templates/response-email.ts b/packages/app-store/routing-forms/emails/templates/response-email.ts index 0fa84b8ae6..16e421184d 100644 --- a/packages/app-store/routing-forms/emails/templates/response-email.ts +++ b/packages/app-store/routing-forms/emails/templates/response-email.ts @@ -25,14 +25,14 @@ export default class ResponseEmail extends BaseEmail { this.toAddresses = toAddresses; } - protected getNodeMailerPayload(): Record { + protected async getNodeMailerPayload(): Promise> { const toAddresses = this.toAddresses; const subject = `${this.form.name} has a new response`; return { from: `Cal.com <${this.getMailerOptions().from}>`, to: toAddresses.join(","), subject, - html: renderEmail("ResponseEmail", { + html: await renderEmail("ResponseEmail", { form: this.form, orderedResponses: this.orderedResponses, subject, diff --git a/packages/app-store/routing-forms/trpc/forms.schema.ts b/packages/app-store/routing-forms/trpc/forms.schema.ts index 787d6e2be7..343097874f 100644 --- a/packages/app-store/routing-forms/trpc/forms.schema.ts +++ b/packages/app-store/routing-forms/trpc/forms.schema.ts @@ -1,3 +1,5 @@ +"use client"; + import { z } from "zod"; import { filterQuerySchemaStrict } from "@calcom/features/filters/lib/getTeamsFiltersFromQuery"; diff --git a/packages/app-store/stripepayment/lib/PaymentService.ts b/packages/app-store/stripepayment/lib/PaymentService.ts index ed8d1bb3e9..5218ac8180 100644 --- a/packages/app-store/stripepayment/lib/PaymentService.ts +++ b/packages/app-store/stripepayment/lib/PaymentService.ts @@ -7,6 +7,7 @@ import { sendAwaitingPaymentEmail } from "@calcom/emails"; import { ErrorCode } from "@calcom/lib/errorCodes"; import { getErrorFromUnknown } from "@calcom/lib/errors"; import logger from "@calcom/lib/logger"; +import { safeStringify } from "@calcom/lib/safeStringify"; import prisma from "@calcom/prisma"; import type { CalendarEvent } from "@calcom/types/Calendar"; import type { IAbstractPaymentService } from "@calcom/types/PaymentService"; @@ -132,8 +133,7 @@ export class PaymentService implements IAbstractPaymentService { } return paymentData; } catch (error) { - console.error(`Payment could not be created for bookingId ${bookingId}`, error); - log.error("Stripe: Payment could not be created", bookingId, JSON.stringify(error)); + log.error("Stripe: Payment could not be created", bookingId, safeStringify(error)); throw new Error("payment_not_created_error"); } } @@ -207,7 +207,7 @@ export class PaymentService implements IAbstractPaymentService { log.error( "Stripe: Payment method could not be collected for bookingId", bookingId, - JSON.stringify(error) + safeStringify(error) ); throw new Error("Stripe: Payment method could not be collected"); } @@ -286,7 +286,7 @@ export class PaymentService implements IAbstractPaymentService { return paymentData; } catch (error) { - log.error("Stripe: Could not charge card for payment", _bookingId, JSON.stringify(error)); + log.error("Stripe: Could not charge card for payment", _bookingId, safeStringify(error)); throw new Error(ErrorCode.ChargeCardFailure); } } @@ -378,7 +378,7 @@ export class PaymentService implements IAbstractPaymentService { await this.stripe.paymentIntents.cancel(payment.externalId, { stripeAccount }); return true; } catch (e) { - log.error("Stripe: Unable to delete Payment in stripe of paymentId", paymentId, JSON.stringify(e)); + log.error("Stripe: Unable to delete Payment in stripe of paymentId", paymentId, safeStringify(e)); return false; } } diff --git a/packages/atoms/booker/Booker.docs.mdx b/packages/atoms/booker/Booker.docs.mdx new file mode 100644 index 0000000000..f92c09c954 --- /dev/null +++ b/packages/atoms/booker/Booker.docs.mdx @@ -0,0 +1,12 @@ +import { Meta, Canvas, ArgsTable } from "@storybook/blocks"; +import { Title } from "@calcom/storybook/components"; +import { Booker } from "./Booker"; +import * as BookerStories from "./Booker.stories"; + + + + + +<ArgsTable of={Booker} /> + +<Canvas of={BookerStories.Default}/> diff --git a/packages/atoms/booker/Booker.stories.tsx b/packages/atoms/booker/Booker.stories.tsx new file mode 100644 index 0000000000..ab485daa3f --- /dev/null +++ b/packages/atoms/booker/Booker.stories.tsx @@ -0,0 +1,16 @@ +import type { Meta, StoryObj } from "@storybook/react"; + +import { Booker } from "./Booker"; + +const meta: Meta<typeof Booker> = { + component: Booker, + title: "Atoms/Booker", +}; + +export default meta; +type Story = StoryObj<typeof Booker>; + +export const Default: Story = { + name: "Booker", + render: () => <Booker username="pro" eventSlug="" entity={{}} />, +}; diff --git a/packages/atoms/booker/booker.stories.mdx b/packages/atoms/booker/booker.stories.mdx deleted file mode 100644 index 1a9021ec8e..0000000000 --- a/packages/atoms/booker/booker.stories.mdx +++ /dev/null @@ -1,16 +0,0 @@ -import { Canvas, Meta, Story, ArgsTable } from "@storybook/addon-docs"; - -import { Title } from "@calcom/storybook/components"; -import { Icon } from "@calcom/ui"; - -import { Booker } from "./Booker"; - -<Meta title="Atoms/Booker" component={Booker} /> - -<Title title="Booker" /> - -<Canvas> - <Story name="Booker"> - <Booker username="pro" /> - </Story> -</Canvas> diff --git a/packages/core/EventManager.ts b/packages/core/EventManager.ts index 4aa5e30beb..edfd96d3a3 100644 --- a/packages/core/EventManager.ts +++ b/packages/core/EventManager.ts @@ -574,24 +574,25 @@ export default class EventManager { (c) => c.type === destination.integration ); // It might not be the first connected calendar as it seems that the order is not guaranteed to be ascending of credentialId. - const firstCalendarCredential = destinationCalendarCredentials[0]; + const firstCalendarCredential = destinationCalendarCredentials[0] as + | (typeof destinationCalendarCredentials)[number] + | undefined; if (!firstCalendarCredential) { log.warn( "No other credentials found of the same type as the destination calendar. Falling back to first connected calendar" ); await fallbackToFirstConnectedCalendar(); + } else { + log.warn( + "No credentialId found for destination calendar, falling back to first found calendar of same type as destination calendar", + safeStringify({ + destination: getPiiFreeDestinationCalendar(destination), + firstConnectedCalendar: getPiiFreeCredential(firstCalendarCredential), + }) + ); + createdEvents.push(await createEvent(firstCalendarCredential, event)); } - - log.warn( - "No credentialId found for destination calendar, falling back to first found calendar", - safeStringify({ - destination: getPiiFreeDestinationCalendar(destination), - firstConnectedCalendar: getPiiFreeCredential(firstCalendarCredential), - }) - ); - - createdEvents.push(await createEvent(firstCalendarCredential, event)); } } } else { diff --git a/packages/core/getBusyTimes.ts b/packages/core/getBusyTimes.ts index 80dc92d609..4323419134 100644 --- a/packages/core/getBusyTimes.ts +++ b/packages/core/getBusyTimes.ts @@ -7,7 +7,7 @@ import logger from "@calcom/lib/logger"; import { getPiiFreeBooking } from "@calcom/lib/piiFreeData"; import { performance } from "@calcom/lib/server/perfObserver"; import prisma from "@calcom/prisma"; -import type { SelectedCalendar } from "@calcom/prisma/client"; +import type { Prisma, SelectedCalendar } from "@calcom/prisma/client"; import { BookingStatus } from "@calcom/prisma/enums"; import type { EventBusyDetails } from "@calcom/types/Calendar"; import type { CredentialPayload } from "@calcom/types/Credential"; @@ -83,9 +83,10 @@ export async function getBusyTimes(params: { const endTimeDate = rescheduleUid && duration ? dayjs(endTime).add(duration, "minute").toDate() : new Date(endTime); + // startTime is less than endTimeDate and endTime grater than startTimeDate const sharedQuery = { - startTime: { gte: startTimeDate }, - endTime: { lte: endTimeDate }, + startTime: { lte: endTimeDate }, + endTime: { gte: startTimeDate }, status: { in: [BookingStatus.ACCEPTED], }, @@ -264,8 +265,9 @@ export async function getBusyTimesForLimitChecks(params: { eventTypeId: number; startDate: Date; endDate: Date; + rescheduleUid?: string | null; }) { - const { userId, eventTypeId, startDate, endDate } = params; + const { userId, eventTypeId, startDate, endDate, rescheduleUid } = params; logger.silly( `Fetch limit checks bookings in range ${startDate} to ${endDate} for input ${JSON.stringify({ userId, @@ -275,19 +277,27 @@ export async function getBusyTimesForLimitChecks(params: { ); performance.mark("getBusyTimesForLimitChecksStart"); - const bookings = await prisma.booking.findMany({ - where: { - userId, - eventTypeId, - status: BookingStatus.ACCEPTED, - // FIXME: bookings that overlap on one side will never be counted - startTime: { - gte: startDate, - }, - endTime: { - lte: endDate, - }, + const where: Prisma.BookingWhereInput = { + userId, + eventTypeId, + status: BookingStatus.ACCEPTED, + // FIXME: bookings that overlap on one side will never be counted + startTime: { + gte: startDate, }, + endTime: { + lte: endDate, + }, + }; + + if (rescheduleUid) { + where.NOT = { + uid: rescheduleUid, + }; + } + + const bookings = await prisma.booking.findMany({ + where, select: { id: true, startTime: true, diff --git a/packages/core/getUserAvailability.ts b/packages/core/getUserAvailability.ts index 3c4f77497b..4f33347792 100644 --- a/packages/core/getUserAvailability.ts +++ b/packages/core/getUserAvailability.ts @@ -25,6 +25,7 @@ import type { } from "@calcom/types/Calendar"; import { getBusyTimes, getBusyTimesForLimitChecks } from "./getBusyTimes"; +import monitorCallbackAsync, { monitorCallbackSync } from "./sentryWrapper"; const log = logger.getSubLogger({ prefix: ["getUserAvailability"] }); const availabilitySchema = z @@ -41,7 +42,13 @@ const availabilitySchema = z }) .refine((data) => !!data.username || !!data.userId, "Either username or userId should be filled in."); -const getEventType = async (id: number) => { +const getEventType = async ( + ...args: Parameters<typeof _getEventType> +): Promise<ReturnType<typeof _getEventType>> => { + return monitorCallbackAsync(_getEventType, ...args); +}; + +const _getEventType = async (id: number) => { const eventType = await prisma.eventType.findUnique({ where: { id }, select: { @@ -86,7 +93,11 @@ const getEventType = async (id: number) => { type EventType = Awaited<ReturnType<typeof getEventType>>; -const getUser = (where: Prisma.UserWhereInput) => +const getUser = (...args: Parameters<typeof _getUser>): ReturnType<typeof _getUser> => { + return monitorCallbackSync(_getUser, ...args); +}; + +const _getUser = (where: Prisma.UserWhereInput) => prisma.user.findFirst({ where, select: { @@ -99,7 +110,13 @@ const getUser = (where: Prisma.UserWhereInput) => type User = Awaited<ReturnType<typeof getUser>>; -export const getCurrentSeats = (eventTypeId: number, dateFrom: Dayjs, dateTo: Dayjs) => +export const getCurrentSeats = ( + ...args: Parameters<typeof _getCurrentSeats> +): ReturnType<typeof _getCurrentSeats> => { + return monitorCallbackSync(_getCurrentSeats, ...args); +}; + +const _getCurrentSeats = (eventTypeId: number, dateFrom: Dayjs, dateTo: Dayjs) => prisma.booking.findMany({ where: { eventTypeId, @@ -122,8 +139,14 @@ export const getCurrentSeats = (eventTypeId: number, dateFrom: Dayjs, dateTo: Da export type CurrentSeats = Awaited<ReturnType<typeof getCurrentSeats>>; +export const getUserAvailability = async ( + ...args: Parameters<typeof _getUserAvailability> +): Promise<ReturnType<typeof _getUserAvailability>> => { + return monitorCallbackAsync(_getUserAvailability, ...args); +}; + /** This should be called getUsersWorkingHoursAndBusySlots (...and remaining seats, and final timezone) */ -export const getUserAvailability = async function getUsersWorkingHoursLifeTheUniverseAndEverythingElse( +const _getUserAvailability = async function getUsersWorkingHoursLifeTheUniverseAndEverythingElse( query: { withSource?: boolean; username?: string; @@ -192,7 +215,8 @@ export const getUserAvailability = async function getUsersWorkingHoursLifeTheUni dateTo, duration, eventType, - user.id + user.id, + initialData?.rescheduleUid ) : []; @@ -305,7 +329,13 @@ export const getUserAvailability = async function getUsersWorkingHoursLifeTheUni }; }; -const getPeriodStartDatesBetween = (dateFrom: Dayjs, dateTo: Dayjs, period: IntervalLimitUnit) => { +const getPeriodStartDatesBetween = ( + ...args: Parameters<typeof _getPeriodStartDatesBetween> +): ReturnType<typeof _getPeriodStartDatesBetween> => { + return monitorCallbackSync(_getPeriodStartDatesBetween, ...args); +}; + +const _getPeriodStartDatesBetween = (dateFrom: Dayjs, dateTo: Dayjs, period: IntervalLimitUnit) => { const dates = []; let startDate = dayjs(dateFrom).startOf(period); const endDate = dayjs(dateTo).endOf(period); @@ -378,13 +408,20 @@ class LimitManager { } const getBusyTimesFromLimits = async ( + ...args: Parameters<typeof _getBusyTimesFromLimits> +): Promise<ReturnType<typeof _getBusyTimesFromLimits>> => { + return monitorCallbackAsync(_getBusyTimesFromLimits, ...args); +}; + +const _getBusyTimesFromLimits = async ( bookingLimits: IntervalLimit | null, durationLimits: IntervalLimit | null, dateFrom: Dayjs, dateTo: Dayjs, duration: number | undefined, eventType: NonNullable<EventType>, - userId: number + userId: number, + rescheduleUid?: string | null ) => { performance.mark("limitsStart"); @@ -410,6 +447,7 @@ const getBusyTimesFromLimits = async ( eventTypeId: eventType.id, startDate: limitDateFrom.toDate(), endDate: limitDateTo.toDate(), + rescheduleUid: rescheduleUid, }); // run this first, as counting bookings should always run faster.. @@ -450,6 +488,12 @@ const getBusyTimesFromLimits = async ( }; const getBusyTimesFromBookingLimits = async ( + ...args: Parameters<typeof _getBusyTimesFromBookingLimits> +): Promise<ReturnType<typeof _getBusyTimesFromBookingLimits>> => { + return monitorCallbackAsync(_getBusyTimesFromBookingLimits, ...args); +}; + +const _getBusyTimesFromBookingLimits = async ( bookings: EventBusyDetails[], bookingLimits: IntervalLimit, dateFrom: Dayjs, @@ -504,6 +548,12 @@ const getBusyTimesFromBookingLimits = async ( }; const getBusyTimesFromDurationLimits = async ( + ...args: Parameters<typeof _getBusyTimesFromDurationLimits> +): Promise<ReturnType<typeof _getBusyTimesFromDurationLimits>> => { + return monitorCallbackAsync(_getBusyTimesFromDurationLimits, ...args); +}; + +const _getBusyTimesFromDurationLimits = async ( bookings: EventBusyDetails[], durationLimits: IntervalLimit, dateFrom: Dayjs, diff --git a/packages/core/sentryWrapper.ts b/packages/core/sentryWrapper.ts new file mode 100644 index 0000000000..5d2ae4b384 --- /dev/null +++ b/packages/core/sentryWrapper.ts @@ -0,0 +1,86 @@ +import * as Sentry from "@sentry/nextjs"; +import type { Span, Transaction } from "@sentry/types"; + +/* +WHEN TO USE +We ran a script that performs a simple mathematical calculation within a loop of 1000000 iterations. +Our results were: Plain execution time: 441, Monitored execution time: 8094. +This suggests that using these wrappers within large loops can incur significant overhead and is thus not recommended. + +For smaller loops, the cost incurred may not be very significant on an absolute scale +considering that a million monitored iterations only took roughly 8 seconds when monitored. +*/ + +const setUpMonitoring = (name: string) => { + // Attempt to retrieve the current transaction from Sentry's scope + let transaction = Sentry.getCurrentHub().getScope()?.getTransaction(); + + // Check if there's an existing transaction, if not, start a new one + if (!transaction) { + transaction = Sentry.startTransaction({ + op: name, + name: name, + }); + } + + // Start a new span in the current transaction + const span = transaction.startChild({ + op: name, + description: `Executing ${name}`, + }); + return [transaction, span]; +}; + +// transaction will always be Transaction, since returned in a list with Span type must be listed as either or here +const finishMonitoring = (transaction: Transaction | Span, span: Span) => { + // Attempt to retrieve the current transaction from Sentry's scope + span.finish(); + + // If this was a new transaction, finish it + if (!Sentry.getCurrentHub().getScope()?.getTransaction()) { + transaction.finish(); + } +}; + +const monitorCallbackAsync = async <T extends (...args: any[]) => any>( + cb: T, + ...args: Parameters<T> +): Promise<ReturnType<T>> => { + // Check if Sentry set + if (!process.env.NEXT_PUBLIC_SENTRY_DSN) return (await cb(...args)) as ReturnType<T>; + + const [transaction, span] = setUpMonitoring(cb.name); + + try { + const result = await cb(...args); + return result as ReturnType<T>; + } catch (error) { + Sentry.captureException(error); + throw error; + } finally { + finishMonitoring(transaction, span); + } +}; + +const monitorCallbackSync = <T extends (...args: any[]) => any>( + cb: T, + ...args: Parameters<T> +): ReturnType<T> => { + // Check if Sentry set + if (!process.env.NEXT_PUBLIC_SENTRY_DSN) return cb(...args) as ReturnType<T>; + + const [transaction, span] = setUpMonitoring(cb.name); + + try { + const result = cb(...args); + return result as ReturnType<T>; + } catch (error) { + Sentry.captureException(error); + throw error; + } finally { + finishMonitoring(transaction, span); + } +}; + +export default monitorCallbackAsync; +export { monitorCallbackSync }; diff --git a/packages/core/videoClient.ts b/packages/core/videoClient.ts index a2585ab1dd..7bb3118949 100644 --- a/packages/core/videoClient.ts +++ b/packages/core/videoClient.ts @@ -144,7 +144,7 @@ const updateMeeting = async ( if (!updatedMeeting) { log.error( "updateMeeting failed", - JSON.stringify({ bookingRef, canCallUpdateMeeting, calEvent, credential }) + safeStringify({ bookingRef, canCallUpdateMeeting, calEvent, credential }) ); return { appName: credential.appId || "", diff --git a/packages/emails/README.md b/packages/emails/README.md index 520b7e1ffd..bd5439926a 100644 --- a/packages/emails/README.md +++ b/packages/emails/README.md @@ -8,7 +8,7 @@ ```ts import { renderEmail } from "@calcom/emails"; -renderEmail("TeamInviteEmail", */{ +await renderEmail("TeamInviteEmail", { language: t, from: "teampro@example.com", to: "pro@example.com", diff --git a/packages/emails/src/renderEmail.ts b/packages/emails/src/renderEmail.ts index 4404c94a47..4ada467b55 100644 --- a/packages/emails/src/renderEmail.ts +++ b/packages/emails/src/renderEmail.ts @@ -1,12 +1,11 @@ -import * as ReactDOMServer from "react-dom/server"; - import * as templates from "./templates"; -function renderEmail<K extends keyof typeof templates>( +async function renderEmail<K extends keyof typeof templates>( template: K, props: React.ComponentProps<(typeof templates)[K]> ) { const Component = templates[template]; + const ReactDOMServer = (await import("react-dom/server")).default; return ( // eslint-disable-next-line @typescript-eslint/ban-ts-comment // @ts-expect-error diff --git a/packages/emails/templates/_base-email.ts b/packages/emails/templates/_base-email.ts index 51159a198d..0fd65be9d7 100644 --- a/packages/emails/templates/_base-email.ts +++ b/packages/emails/templates/_base-email.ts @@ -24,7 +24,7 @@ export default class BaseEmail { return dayjs(time).tz(this.getTimezone()).locale(this.getLocale()).format(format); } - protected getNodeMailerPayload(): Record<string, unknown> { + protected async getNodeMailerPayload(): Promise<Record<string, unknown>> { return {}; } public async sendEmail() { @@ -38,21 +38,20 @@ export default class BaseEmail { if (process.env.INTEGRATION_TEST_MODE === "true") { // eslint-disable-next-line @typescript-eslint/ban-ts-comment //@ts-expect-error - setTestEmail(this.getNodeMailerPayload()); + setTestEmail(await this.getNodeMailerPayload()); console.log( "Skipped Sending Email as process.env.NEXT_PUBLIC_UNIT_TESTS is set. Emails are available in globalThis.testEmails" ); return new Promise((r) => r("Skipped sendEmail for Unit Tests")); } - const payload = this.getNodeMailerPayload(); + const payload = await this.getNodeMailerPayload(); const parseSubject = z.string().safeParse(payload?.subject); const payloadWithUnEscapedSubject = { headers: this.getMailerOptions().headers, ...payload, ...(parseSubject.success && { subject: decodeHTML(parseSubject.data) }), }; - await new Promise((resolve, reject) => createTransport(this.getMailerOptions().transport).sendMail( payloadWithUnEscapedSubject, @@ -69,7 +68,6 @@ export default class BaseEmail { ).catch((e) => console.error("sendEmail", e)); return new Promise((resolve) => resolve("send mail async")); } - protected getMailerOptions() { return { transport: serverConfig.transport, @@ -77,7 +75,6 @@ export default class BaseEmail { headers: serverConfig.headers, }; } - protected printNodeMailerError(error: Error): void { /** Don't clog the logs with unsent emails in E2E */ if (process.env.NEXT_PUBLIC_IS_E2E) return; diff --git a/packages/emails/templates/account-verify-email.ts b/packages/emails/templates/account-verify-email.ts index 74a651ac00..6f692898aa 100644 --- a/packages/emails/templates/account-verify-email.ts +++ b/packages/emails/templates/account-verify-email.ts @@ -23,14 +23,14 @@ export default class AccountVerifyEmail extends BaseEmail { this.verifyAccountInput = passwordEvent; } - protected getNodeMailerPayload(): Record<string, unknown> { + protected async getNodeMailerPayload(): Promise<Record<string, unknown>> { return { to: `${this.verifyAccountInput.user.name} <${this.verifyAccountInput.user.email}>`, from: `${APP_NAME} <${this.getMailerOptions().from}>`, subject: this.verifyAccountInput.language("verify_email_subject", { appName: APP_NAME, }), - html: renderEmail("VerifyAccountEmail", this.verifyAccountInput), + html: await renderEmail("VerifyAccountEmail", this.verifyAccountInput), text: this.getTextBody(), }; } diff --git a/packages/emails/templates/admin-organization-notification.ts b/packages/emails/templates/admin-organization-notification.ts index 680add21d0..01b6f469ab 100644 --- a/packages/emails/templates/admin-organization-notification.ts +++ b/packages/emails/templates/admin-organization-notification.ts @@ -22,12 +22,12 @@ export default class AdminOrganizationNotification extends BaseEmail { this.input = input; } - protected getNodeMailerPayload(): Record<string, unknown> { + protected async getNodeMailerPayload(): Promise<Record<string, unknown>> { return { from: `${APP_NAME} <${this.getMailerOptions().from}>`, to: this.input.instanceAdmins.map((admin) => admin.email).join(","), subject: `${this.input.t("admin_org_notification_email_subject")}`, - html: renderEmail("AdminOrganizationNotificationEmail", { + html: await renderEmail("AdminOrganizationNotificationEmail", { orgSlug: this.input.orgSlug, webappIPAddress: this.input.webappIPAddress, language: this.input.t, diff --git a/packages/emails/templates/attendee-awaiting-payment-email.ts b/packages/emails/templates/attendee-awaiting-payment-email.ts index 772b55c10b..24eef1262c 100644 --- a/packages/emails/templates/attendee-awaiting-payment-email.ts +++ b/packages/emails/templates/attendee-awaiting-payment-email.ts @@ -2,7 +2,7 @@ import { renderEmail } from "../"; import AttendeeScheduledEmail from "./attendee-scheduled-email"; export default class AttendeeAwaitingPaymentEmail extends AttendeeScheduledEmail { - protected getNodeMailerPayload(): Record<string, unknown> { + protected async getNodeMailerPayload(): Promise<Record<string, unknown>> { return { to: `${this.attendee.name} <${this.attendee.email}>`, from: `${this.calEvent.organizer.name} <${this.getMailerOptions().from}>`, @@ -11,7 +11,7 @@ export default class AttendeeAwaitingPaymentEmail extends AttendeeScheduledEmail title: this.calEvent.title, date: this.getFormattedDate(), })}`, - html: renderEmail("AttendeeAwaitingPaymentEmail", { + html: await renderEmail("AttendeeAwaitingPaymentEmail", { calEvent: this.calEvent, attendee: this.attendee, }), diff --git a/packages/emails/templates/attendee-cancelled-email.ts b/packages/emails/templates/attendee-cancelled-email.ts index ecc128cadc..e3cb71b54a 100644 --- a/packages/emails/templates/attendee-cancelled-email.ts +++ b/packages/emails/templates/attendee-cancelled-email.ts @@ -2,7 +2,7 @@ import { renderEmail } from "../"; import AttendeeScheduledEmail from "./attendee-scheduled-email"; export default class AttendeeCancelledEmail extends AttendeeScheduledEmail { - protected getNodeMailerPayload(): Record<string, unknown> { + protected async getNodeMailerPayload(): Promise<Record<string, unknown>> { return { to: `${this.attendee.name} <${this.attendee.email}>`, from: `${this.calEvent.organizer.name} <${this.getMailerOptions().from}>`, @@ -11,7 +11,7 @@ export default class AttendeeCancelledEmail extends AttendeeScheduledEmail { title: this.calEvent.title, date: this.getFormattedDate(), })}`, - html: renderEmail("AttendeeCancelledEmail", { + html: await renderEmail("AttendeeCancelledEmail", { calEvent: this.calEvent, attendee: this.attendee, }), diff --git a/packages/emails/templates/attendee-cancelled-seat-email.ts b/packages/emails/templates/attendee-cancelled-seat-email.ts index 396891800c..610274732e 100644 --- a/packages/emails/templates/attendee-cancelled-seat-email.ts +++ b/packages/emails/templates/attendee-cancelled-seat-email.ts @@ -2,7 +2,7 @@ import { renderEmail } from "../"; import AttendeeScheduledEmail from "./attendee-scheduled-email"; export default class AttendeeCancelledSeatEmail extends AttendeeScheduledEmail { - protected getNodeMailerPayload(): Record<string, unknown> { + protected async getNodeMailerPayload(): Promise<Record<string, unknown>> { return { to: `${this.attendee.name} <${this.attendee.email}>`, from: `${this.calEvent.organizer.name} <${this.getMailerOptions().from}>`, @@ -11,7 +11,7 @@ export default class AttendeeCancelledSeatEmail extends AttendeeScheduledEmail { title: this.calEvent.title, date: this.getFormattedDate(), })}`, - html: renderEmail("AttendeeCancelledSeatEmail", { + html: await renderEmail("AttendeeCancelledSeatEmail", { calEvent: this.calEvent, attendee: this.attendee, }), diff --git a/packages/emails/templates/attendee-daily-video-download-recording-email.ts b/packages/emails/templates/attendee-daily-video-download-recording-email.ts index 7fc0a74d52..76cfaff690 100644 --- a/packages/emails/templates/attendee-daily-video-download-recording-email.ts +++ b/packages/emails/templates/attendee-daily-video-download-recording-email.ts @@ -21,7 +21,7 @@ export default class AttendeeDailyVideoDownloadRecordingEmail extends BaseEmail this.downloadLink = downloadLink; this.t = attendee.language.translate; } - protected getNodeMailerPayload(): Record<string, unknown> { + protected async getNodeMailerPayload(): Promise<Record<string, unknown>> { return { to: `${this.attendee.name} <${this.attendee.email}>`, from: `${this.calEvent.organizer.name} <${this.getMailerOptions().from}>`, @@ -30,7 +30,7 @@ export default class AttendeeDailyVideoDownloadRecordingEmail extends BaseEmail title: this.calEvent.title, date: this.getFormattedDate(), })}`, - html: renderEmail("DailyVideoDownloadRecordingEmail", { + html: await renderEmail("DailyVideoDownloadRecordingEmail", { title: this.calEvent.title, date: this.getFormattedDate(), downloadLink: this.downloadLink, diff --git a/packages/emails/templates/attendee-declined-email.ts b/packages/emails/templates/attendee-declined-email.ts index 2d7fe6d33b..8ff713332c 100644 --- a/packages/emails/templates/attendee-declined-email.ts +++ b/packages/emails/templates/attendee-declined-email.ts @@ -2,7 +2,7 @@ import { renderEmail } from "../"; import AttendeeScheduledEmail from "./attendee-scheduled-email"; export default class AttendeeDeclinedEmail extends AttendeeScheduledEmail { - protected getNodeMailerPayload(): Record<string, unknown> { + protected async getNodeMailerPayload(): Promise<Record<string, unknown>> { return { to: `${this.attendee.name} <${this.attendee.email}>`, from: `${this.calEvent.organizer.name} <${this.getMailerOptions().from}>`, @@ -11,7 +11,7 @@ export default class AttendeeDeclinedEmail extends AttendeeScheduledEmail { title: this.calEvent.title, date: this.getFormattedDate(), })}`, - html: renderEmail("AttendeeDeclinedEmail", { + html: await renderEmail("AttendeeDeclinedEmail", { calEvent: this.calEvent, attendee: this.attendee, }), diff --git a/packages/emails/templates/attendee-location-change-email.ts b/packages/emails/templates/attendee-location-change-email.ts index 925ba0806d..af15fec058 100644 --- a/packages/emails/templates/attendee-location-change-email.ts +++ b/packages/emails/templates/attendee-location-change-email.ts @@ -2,7 +2,7 @@ import { renderEmail } from "../"; import AttendeeScheduledEmail from "./attendee-scheduled-email"; export default class AttendeeLocationChangeEmail extends AttendeeScheduledEmail { - protected getNodeMailerPayload(): Record<string, unknown> { + protected async getNodeMailerPayload(): Promise<Record<string, unknown>> { return { icalEvent: { filename: "event.ics", @@ -16,7 +16,7 @@ export default class AttendeeLocationChangeEmail extends AttendeeScheduledEmail name: this.calEvent.team?.name || this.calEvent.organizer.name, date: this.getFormattedDate(), })}`, - html: renderEmail("AttendeeLocationChangeEmail", { + html: await renderEmail("AttendeeLocationChangeEmail", { calEvent: this.calEvent, attendee: this.attendee, }), diff --git a/packages/emails/templates/attendee-request-email.ts b/packages/emails/templates/attendee-request-email.ts index 22367aaa50..3f5d555b7c 100644 --- a/packages/emails/templates/attendee-request-email.ts +++ b/packages/emails/templates/attendee-request-email.ts @@ -4,7 +4,7 @@ import { renderEmail } from "../"; import AttendeeScheduledEmail from "./attendee-scheduled-email"; export default class AttendeeRequestEmail extends AttendeeScheduledEmail { - protected getNodeMailerPayload(): Record<string, unknown> { + protected async getNodeMailerPayload(): Promise<Record<string, unknown>> { const toAddresses = this.calEvent.attendees.map((attendee) => attendee.email); return { @@ -15,7 +15,7 @@ export default class AttendeeRequestEmail extends AttendeeScheduledEmail { title: this.calEvent.title, date: this.getFormattedDate(), })}`, - html: renderEmail("AttendeeRequestEmail", { + html: await renderEmail("AttendeeRequestEmail", { calEvent: this.calEvent, attendee: this.attendee, }), diff --git a/packages/emails/templates/attendee-rescheduled-email.ts b/packages/emails/templates/attendee-rescheduled-email.ts index 0c7e183335..85bc7543ca 100644 --- a/packages/emails/templates/attendee-rescheduled-email.ts +++ b/packages/emails/templates/attendee-rescheduled-email.ts @@ -2,7 +2,7 @@ import { renderEmail } from "../"; import AttendeeScheduledEmail from "./attendee-scheduled-email"; export default class AttendeeRescheduledEmail extends AttendeeScheduledEmail { - protected getNodeMailerPayload(): Record<string, unknown> { + protected async getNodeMailerPayload(): Promise<Record<string, unknown>> { return { icalEvent: { filename: "event.ics", @@ -15,7 +15,7 @@ export default class AttendeeRescheduledEmail extends AttendeeScheduledEmail { title: this.calEvent.title, date: this.getFormattedDate(), })}`, - html: renderEmail("AttendeeRescheduledEmail", { + html: await renderEmail("AttendeeRescheduledEmail", { calEvent: this.calEvent, attendee: this.attendee, }), diff --git a/packages/emails/templates/attendee-scheduled-email.ts b/packages/emails/templates/attendee-scheduled-email.ts index 0d22891118..c2dba8dcc5 100644 --- a/packages/emails/templates/attendee-scheduled-email.ts +++ b/packages/emails/templates/attendee-scheduled-email.ts @@ -82,7 +82,7 @@ export default class AttendeeScheduledEmail extends BaseEmail { return icsEvent.value; } - protected getNodeMailerPayload(): Record<string, unknown> { + protected async getNodeMailerPayload(): Promise<Record<string, unknown>> { const clonedCalEvent = cloneDeep(this.calEvent); this.getiCalEventAsString(); @@ -97,7 +97,7 @@ export default class AttendeeScheduledEmail extends BaseEmail { from: `${this.calEvent.organizer.name} <${this.getMailerOptions().from}>`, replyTo: [...this.calEvent.attendees.map(({ email }) => email), this.calEvent.organizer.email], subject: `${this.calEvent.title}`, - html: renderEmail("AttendeeScheduledEmail", { + html: await renderEmail("AttendeeScheduledEmail", { calEvent: clonedCalEvent, attendee: this.attendee, }), diff --git a/packages/emails/templates/attendee-verify-email.ts b/packages/emails/templates/attendee-verify-email.ts index 99e9e3e31f..7919b8aa34 100644 --- a/packages/emails/templates/attendee-verify-email.ts +++ b/packages/emails/templates/attendee-verify-email.ts @@ -23,14 +23,14 @@ export default class AttendeeVerifyEmail extends BaseEmail { this.verifyAccountInput = passwordEvent; } - protected getNodeMailerPayload(): Record<string, unknown> { + protected async getNodeMailerPayload(): Promise<Record<string, unknown>> { return { to: `${this.verifyAccountInput.user.name} <${this.verifyAccountInput.user.email}>`, from: `${APP_NAME} <${this.getMailerOptions().from}>`, subject: this.verifyAccountInput.language("verify_email_subject", { appName: APP_NAME, }), - html: renderEmail("VerifyEmailByCode", this.verifyAccountInput), + html: await renderEmail("VerifyEmailByCode", this.verifyAccountInput), text: this.getTextBody(), }; } diff --git a/packages/emails/templates/attendee-was-requested-to-reschedule-email.ts b/packages/emails/templates/attendee-was-requested-to-reschedule-email.ts index 184cbf4065..e5f11807a9 100644 --- a/packages/emails/templates/attendee-was-requested-to-reschedule-email.ts +++ b/packages/emails/templates/attendee-was-requested-to-reschedule-email.ts @@ -16,7 +16,7 @@ export default class AttendeeWasRequestedToRescheduleEmail extends OrganizerSche this.metadata = metadata; this.t = this.calEvent.attendees[0].language.translate; } - protected getNodeMailerPayload(): Record<string, unknown> { + protected async getNodeMailerPayload(): Promise<Record<string, unknown>> { const toAddresses = [this.calEvent.attendees[0].email]; return { @@ -30,7 +30,7 @@ export default class AttendeeWasRequestedToRescheduleEmail extends OrganizerSche eventType: this.calEvent.type, name: this.calEvent.attendees[0].name, })}`, - html: renderEmail("AttendeeWasRequestedToRescheduleEmail", { + html: await renderEmail("AttendeeWasRequestedToRescheduleEmail", { calEvent: this.calEvent, attendee: this.calEvent.attendees[0], metadata: this.metadata, diff --git a/packages/emails/templates/broken-integration-email.ts b/packages/emails/templates/broken-integration-email.ts index 12d7800a89..1cbba4c6f1 100644 --- a/packages/emails/templates/broken-integration-email.ts +++ b/packages/emails/templates/broken-integration-email.ts @@ -21,7 +21,7 @@ export default class BrokenIntegrationEmail extends BaseEmail { this.type = type; } - protected getNodeMailerPayload(): Record<string, unknown> { + protected async getNodeMailerPayload(): Promise<Record<string, unknown>> { const toAddresses = [this.calEvent.organizer.email]; return { @@ -32,7 +32,7 @@ export default class BrokenIntegrationEmail extends BaseEmail { name: this.calEvent.attendees[0].name, date: this.getFormattedDate(), })}`, - html: renderEmail("BrokenIntegrationEmail", { + html: await renderEmail("BrokenIntegrationEmail", { calEvent: this.calEvent, attendee: this.calEvent.organizer, type: this.type, diff --git a/packages/emails/templates/disabled-app-email.ts b/packages/emails/templates/disabled-app-email.ts index 0a927a179c..724bed66e1 100644 --- a/packages/emails/templates/disabled-app-email.ts +++ b/packages/emails/templates/disabled-app-email.ts @@ -1,4 +1,4 @@ -import { TFunction } from "next-i18next"; +import type { TFunction } from "next-i18next"; import { renderEmail } from ".."; import BaseEmail from "./_base-email"; @@ -28,7 +28,7 @@ export default class DisabledAppEmail extends BaseEmail { this.eventTypeId = eventTypeId; } - protected getNodeMailerPayload(): Record<string, unknown> { + protected async getNodeMailerPayload(): Promise<Record<string, unknown>> { return { from: `Cal.com <${this.getMailerOptions().from}>`, to: this.email, @@ -36,7 +36,7 @@ export default class DisabledAppEmail extends BaseEmail { this.title && this.eventTypeId ? this.t("disabled_app_affects_event_type", { appName: this.appName, eventType: this.title }) : this.t("admin_has_disabled", { appName: this.appName }), - html: renderEmail("DisabledAppEmail", { + html: await renderEmail("DisabledAppEmail", { title: this.title, appName: this.appName, eventTypeId: this.eventTypeId, diff --git a/packages/emails/templates/feedback-email.ts b/packages/emails/templates/feedback-email.ts index e0dd9e5d0f..4eef2a9f34 100644 --- a/packages/emails/templates/feedback-email.ts +++ b/packages/emails/templates/feedback-email.ts @@ -18,12 +18,12 @@ export default class FeedbackEmail extends BaseEmail { this.feedback = feedback; } - protected getNodeMailerPayload(): Record<string, unknown> { + protected async getNodeMailerPayload(): Promise<Record<string, unknown>> { return { from: `${APP_NAME} <${this.getMailerOptions().from}>`, to: process.env.SEND_FEEDBACK_EMAIL, subject: `User Feedback`, - html: renderEmail("FeedbackEmail", this.feedback), + html: await renderEmail("FeedbackEmail", this.feedback), text: this.getTextBody(), }; } diff --git a/packages/emails/templates/forgot-password-email.ts b/packages/emails/templates/forgot-password-email.ts index 6c21606cc6..7f041693b7 100644 --- a/packages/emails/templates/forgot-password-email.ts +++ b/packages/emails/templates/forgot-password-email.ts @@ -23,14 +23,14 @@ export default class ForgotPasswordEmail extends BaseEmail { this.passwordEvent = passwordEvent; } - protected getNodeMailerPayload(): Record<string, unknown> { + protected async getNodeMailerPayload(): Promise<Record<string, unknown>> { return { to: `${this.passwordEvent.user.name} <${this.passwordEvent.user.email}>`, from: `${APP_NAME} <${this.getMailerOptions().from}>`, subject: this.passwordEvent.language("reset_password_subject", { appName: APP_NAME, }), - html: renderEmail("ForgotPasswordEmail", this.passwordEvent), + html: await renderEmail("ForgotPasswordEmail", this.passwordEvent), text: this.getTextBody(), }; } diff --git a/packages/emails/templates/monthly-digest-email.ts b/packages/emails/templates/monthly-digest-email.ts index 5230732f3a..629b389329 100644 --- a/packages/emails/templates/monthly-digest-email.ts +++ b/packages/emails/templates/monthly-digest-email.ts @@ -12,12 +12,12 @@ export default class MonthlyDigestEmail extends BaseEmail { this.eventData = eventData; } - protected getNodeMailerPayload(): Record<string, unknown> { + protected async getNodeMailerPayload(): Promise<Record<string, unknown>> { return { from: `${APP_NAME} <${this.getMailerOptions().from}>`, to: this.eventData.admin.email, subject: `${APP_NAME}: Your monthly digest`, - html: renderEmail("MonthlyDigestEmail", this.eventData), + html: await renderEmail("MonthlyDigestEmail", this.eventData), text: "", }; } diff --git a/packages/emails/templates/no-show-fee-charged-email.ts b/packages/emails/templates/no-show-fee-charged-email.ts index 500e4393eb..3ede12d719 100644 --- a/packages/emails/templates/no-show-fee-charged-email.ts +++ b/packages/emails/templates/no-show-fee-charged-email.ts @@ -2,7 +2,7 @@ import { renderEmail } from "../"; import AttendeeScheduledEmail from "./attendee-scheduled-email"; export default class NoShowFeeChargedEmail extends AttendeeScheduledEmail { - protected getNodeMailerPayload(): Record<string, unknown> { + protected async getNodeMailerPayload(): Promise<Record<string, unknown>> { if (!this.calEvent.paymentInfo?.amount) throw new Error("No payment into"); return { to: `${this.attendee.name} <${this.attendee.email}>`, @@ -14,7 +14,7 @@ export default class NoShowFeeChargedEmail extends AttendeeScheduledEmail { amount: this.calEvent.paymentInfo.amount / 100, formatParams: { amount: { currency: this.calEvent.paymentInfo?.currency } }, })}`, - html: renderEmail("NoShowFeeChargedEmail", { + html: await renderEmail("NoShowFeeChargedEmail", { calEvent: this.calEvent, attendee: this.attendee, }), diff --git a/packages/emails/templates/org-auto-join-invite.ts b/packages/emails/templates/org-auto-join-invite.ts index 002ebf7482..64a2811ec6 100644 --- a/packages/emails/templates/org-auto-join-invite.ts +++ b/packages/emails/templates/org-auto-join-invite.ts @@ -22,7 +22,7 @@ export default class OrgAutoJoinEmail extends BaseEmail { this.orgAutoInviteEvent = orgAutoInviteEvent; } - protected getNodeMailerPayload(): Record<string, unknown> { + protected async getNodeMailerPayload(): Promise<Record<string, unknown>> { return { to: this.orgAutoInviteEvent.to, from: `${APP_NAME} <${this.getMailerOptions().from}>`, @@ -32,7 +32,7 @@ export default class OrgAutoJoinEmail extends BaseEmail { appName: APP_NAME, entity: this.orgAutoInviteEvent.language("organization").toLowerCase(), }), - html: renderEmail("OrgAutoInviteEmail", this.orgAutoInviteEvent), + html: await renderEmail("OrgAutoInviteEmail", this.orgAutoInviteEvent), text: "", }; } diff --git a/packages/emails/templates/organization-email-verification.ts b/packages/emails/templates/organization-email-verification.ts index cfbc591df6..89cfec56f4 100644 --- a/packages/emails/templates/organization-email-verification.ts +++ b/packages/emails/templates/organization-email-verification.ts @@ -22,12 +22,12 @@ export default class OrganizationEmailVerification extends BaseEmail { this.orgVerifyInput = orgVerifyInput; } - protected getNodeMailerPayload(): Record<string, unknown> { + protected async getNodeMailerPayload(): Promise<Record<string, unknown>> { return { from: `${APP_NAME} <${this.getMailerOptions().from}>`, to: this.orgVerifyInput.user.email, subject: this.orgVerifyInput.language("verify_email_organization"), - html: renderEmail("OrganisationAccountVerifyEmail", this.orgVerifyInput), + html: await renderEmail("OrganisationAccountVerifyEmail", this.orgVerifyInput), text: this.getTextBody(), }; } diff --git a/packages/emails/templates/organizer-attendee-cancelled-seat-email.ts b/packages/emails/templates/organizer-attendee-cancelled-seat-email.ts index fe6ce75726..5fa17765b1 100644 --- a/packages/emails/templates/organizer-attendee-cancelled-seat-email.ts +++ b/packages/emails/templates/organizer-attendee-cancelled-seat-email.ts @@ -4,7 +4,7 @@ import { renderEmail } from "../"; import OrganizerScheduledEmail from "./organizer-scheduled-email"; export default class OrganizerCancelledEmail extends OrganizerScheduledEmail { - protected getNodeMailerPayload(): Record<string, unknown> { + protected async getNodeMailerPayload(): Promise<Record<string, unknown>> { const toAddresses = [this.calEvent.organizer.email]; if (this.calEvent.team) { this.calEvent.team.members.forEach((member) => { @@ -22,7 +22,7 @@ export default class OrganizerCancelledEmail extends OrganizerScheduledEmail { title: this.calEvent.title, date: this.getFormattedDate(), })}`, - html: renderEmail("OrganizerAttendeeCancelledSeatEmail", { + html: await renderEmail("OrganizerAttendeeCancelledSeatEmail", { attendee: this.calEvent.organizer, calEvent: this.calEvent, }), diff --git a/packages/emails/templates/organizer-cancelled-email.ts b/packages/emails/templates/organizer-cancelled-email.ts index d0e2fb315c..3c3792e2a3 100644 --- a/packages/emails/templates/organizer-cancelled-email.ts +++ b/packages/emails/templates/organizer-cancelled-email.ts @@ -4,7 +4,7 @@ import { renderEmail } from "../"; import OrganizerScheduledEmail from "./organizer-scheduled-email"; export default class OrganizerCancelledEmail extends OrganizerScheduledEmail { - protected getNodeMailerPayload(): Record<string, unknown> { + protected async getNodeMailerPayload(): Promise<Record<string, unknown>> { const toAddresses = [this.teamMember?.email || this.calEvent.organizer.email]; return { @@ -14,7 +14,7 @@ export default class OrganizerCancelledEmail extends OrganizerScheduledEmail { title: this.calEvent.title, date: this.getFormattedDate(), })}`, - html: renderEmail("OrganizerCancelledEmail", { + html: await renderEmail("OrganizerCancelledEmail", { attendee: this.calEvent.organizer, calEvent: this.calEvent, }), diff --git a/packages/emails/templates/organizer-daily-video-download-recording-email.ts b/packages/emails/templates/organizer-daily-video-download-recording-email.ts index 714ba4f7e4..34e1549132 100644 --- a/packages/emails/templates/organizer-daily-video-download-recording-email.ts +++ b/packages/emails/templates/organizer-daily-video-download-recording-email.ts @@ -19,7 +19,7 @@ export default class OrganizerDailyVideoDownloadRecordingEmail extends BaseEmail this.downloadLink = downloadLink; this.t = this.calEvent.organizer.language.translate; } - protected getNodeMailerPayload(): Record<string, unknown> { + protected async getNodeMailerPayload(): Promise<Record<string, unknown>> { return { to: `${this.calEvent.organizer.email}>`, from: `${APP_NAME} <${this.getMailerOptions().from}>`, @@ -28,7 +28,7 @@ export default class OrganizerDailyVideoDownloadRecordingEmail extends BaseEmail title: this.calEvent.title, date: this.getFormattedDate(), })}`, - html: renderEmail("DailyVideoDownloadRecordingEmail", { + html: await renderEmail("DailyVideoDownloadRecordingEmail", { title: this.calEvent.title, date: this.getFormattedDate(), downloadLink: this.downloadLink, diff --git a/packages/emails/templates/organizer-location-change-email.ts b/packages/emails/templates/organizer-location-change-email.ts index a0ed9e7993..8eb1110e52 100644 --- a/packages/emails/templates/organizer-location-change-email.ts +++ b/packages/emails/templates/organizer-location-change-email.ts @@ -4,7 +4,7 @@ import { renderEmail } from "../"; import OrganizerScheduledEmail from "./organizer-scheduled-email"; export default class OrganizerLocationChangeEmail extends OrganizerScheduledEmail { - protected getNodeMailerPayload(): Record<string, unknown> { + protected async getNodeMailerPayload(): Promise<Record<string, unknown>> { const toAddresses = [this.teamMember?.email || this.calEvent.organizer.email]; return { @@ -20,7 +20,7 @@ export default class OrganizerLocationChangeEmail extends OrganizerScheduledEmai name: this.calEvent.attendees[0].name, date: this.getFormattedDate(), })}`, - html: renderEmail("OrganizerLocationChangeEmail", { + html: await renderEmail("OrganizerLocationChangeEmail", { attendee: this.calEvent.organizer, calEvent: this.calEvent, }), diff --git a/packages/emails/templates/organizer-payment-refund-failed-email.ts b/packages/emails/templates/organizer-payment-refund-failed-email.ts index 26818b1fd7..fd907ba1b5 100644 --- a/packages/emails/templates/organizer-payment-refund-failed-email.ts +++ b/packages/emails/templates/organizer-payment-refund-failed-email.ts @@ -4,7 +4,7 @@ import { renderEmail } from "../"; import OrganizerScheduledEmail from "./organizer-scheduled-email"; export default class OrganizerPaymentRefundFailedEmail extends OrganizerScheduledEmail { - protected getNodeMailerPayload(): Record<string, unknown> { + protected async getNodeMailerPayload(): Promise<Record<string, unknown>> { const toAddresses = [this.teamMember?.email || this.calEvent.organizer.email]; return { @@ -15,7 +15,7 @@ export default class OrganizerPaymentRefundFailedEmail extends OrganizerSchedule name: this.calEvent.attendees[0].name, date: this.getFormattedDate(), })}`, - html: renderEmail("OrganizerPaymentRefundFailedEmail", { + html: await renderEmail("OrganizerPaymentRefundFailedEmail", { calEvent: this.calEvent, attendee: this.calEvent.organizer, }), diff --git a/packages/emails/templates/organizer-request-email.ts b/packages/emails/templates/organizer-request-email.ts index 0267df2261..47b82627f5 100644 --- a/packages/emails/templates/organizer-request-email.ts +++ b/packages/emails/templates/organizer-request-email.ts @@ -4,7 +4,7 @@ import { renderEmail } from "../"; import OrganizerScheduledEmail from "./organizer-scheduled-email"; export default class OrganizerRequestEmail extends OrganizerScheduledEmail { - protected getNodeMailerPayload(): Record<string, unknown> { + protected async getNodeMailerPayload(): Promise<Record<string, unknown>> { const toAddresses = [this.teamMember?.email || this.calEvent.organizer.email]; return { @@ -12,7 +12,7 @@ export default class OrganizerRequestEmail extends OrganizerScheduledEmail { to: toAddresses.join(","), replyTo: [this.calEvent.organizer.email, ...this.calEvent.attendees.map(({ email }) => email)], subject: `${this.t("awaiting_approval")}: ${this.calEvent.title}`, - html: renderEmail("OrganizerRequestEmail", { + html: await renderEmail("OrganizerRequestEmail", { calEvent: this.calEvent, attendee: this.calEvent.organizer, }), diff --git a/packages/emails/templates/organizer-request-reminder-email.ts b/packages/emails/templates/organizer-request-reminder-email.ts index b9f2c1b53c..b8d5130a7a 100644 --- a/packages/emails/templates/organizer-request-reminder-email.ts +++ b/packages/emails/templates/organizer-request-reminder-email.ts @@ -4,7 +4,7 @@ import { renderEmail } from "../"; import OrganizerRequestEmail from "./organizer-request-email"; export default class OrganizerRequestReminderEmail extends OrganizerRequestEmail { - protected getNodeMailerPayload(): Record<string, unknown> { + protected async getNodeMailerPayload(): Promise<Record<string, unknown>> { const toAddresses = [this.teamMember?.email || this.calEvent.organizer.email]; return { @@ -15,7 +15,7 @@ export default class OrganizerRequestReminderEmail extends OrganizerRequestEmail title: this.calEvent.title, date: this.getFormattedDate(), })}`, - html: renderEmail("OrganizerRequestReminderEmail", { + html: await renderEmail("OrganizerRequestReminderEmail", { calEvent: this.calEvent, attendee: this.calEvent.organizer, }), diff --git a/packages/emails/templates/organizer-requested-to-reschedule-email.ts b/packages/emails/templates/organizer-requested-to-reschedule-email.ts index 7a601af696..7f8bdfb2fb 100644 --- a/packages/emails/templates/organizer-requested-to-reschedule-email.ts +++ b/packages/emails/templates/organizer-requested-to-reschedule-email.ts @@ -15,7 +15,7 @@ export default class OrganizerRequestedToRescheduleEmail extends OrganizerSchedu super({ calEvent }); this.metadata = metadata; } - protected getNodeMailerPayload(): Record<string, unknown> { + protected async getNodeMailerPayload(): Promise<Record<string, unknown>> { const toAddresses = [this.calEvent.organizer.email]; return { @@ -30,7 +30,7 @@ export default class OrganizerRequestedToRescheduleEmail extends OrganizerSchedu name: this.calEvent.attendees[0].name, date: this.getFormattedDate(), })}`, - html: renderEmail("OrganizerRequestedToRescheduleEmail", { + html: await renderEmail("OrganizerRequestedToRescheduleEmail", { calEvent: this.calEvent, attendee: this.calEvent.organizer, }), diff --git a/packages/emails/templates/organizer-rescheduled-email.ts b/packages/emails/templates/organizer-rescheduled-email.ts index 26da823a1e..9dfa5fe9ba 100644 --- a/packages/emails/templates/organizer-rescheduled-email.ts +++ b/packages/emails/templates/organizer-rescheduled-email.ts @@ -4,7 +4,7 @@ import { renderEmail } from "../"; import OrganizerScheduledEmail from "./organizer-scheduled-email"; export default class OrganizerRescheduledEmail extends OrganizerScheduledEmail { - protected getNodeMailerPayload(): Record<string, unknown> { + protected async getNodeMailerPayload(): Promise<Record<string, unknown>> { const toAddresses = [this.teamMember?.email || this.calEvent.organizer.email]; return { @@ -19,7 +19,7 @@ export default class OrganizerRescheduledEmail extends OrganizerScheduledEmail { title: this.calEvent.title, date: this.getFormattedDate(), })}`, - html: renderEmail("OrganizerRescheduledEmail", { + html: await renderEmail("OrganizerRescheduledEmail", { calEvent: { ...this.calEvent, attendeeSeatId: undefined }, attendee: this.calEvent.organizer, }), diff --git a/packages/emails/templates/organizer-scheduled-email.ts b/packages/emails/templates/organizer-scheduled-email.ts index 76b036252e..bd1a490e39 100644 --- a/packages/emails/templates/organizer-scheduled-email.ts +++ b/packages/emails/templates/organizer-scheduled-email.ts @@ -70,7 +70,7 @@ export default class OrganizerScheduledEmail extends BaseEmail { return icsEvent.value; } - protected getNodeMailerPayload(): Record<string, unknown> { + protected async getNodeMailerPayload(): Promise<Record<string, unknown>> { const clonedCalEvent = cloneDeep(this.calEvent); const toAddresses = [this.teamMember?.email || this.calEvent.organizer.email]; @@ -83,7 +83,7 @@ export default class OrganizerScheduledEmail extends BaseEmail { to: toAddresses.join(","), replyTo: [this.calEvent.organizer.email, ...this.calEvent.attendees.map(({ email }) => email)], subject: `${this.newSeat ? `${this.t("new_attendee")}: ` : ""}${this.calEvent.title}`, - html: renderEmail("OrganizerScheduledEmail", { + html: await renderEmail("OrganizerScheduledEmail", { calEvent: clonedCalEvent, attendee: this.calEvent.organizer, teamMember: this.teamMember, diff --git a/packages/emails/templates/slug-replacement-email.ts b/packages/emails/templates/slug-replacement-email.ts index c9316cb28d..2a2655718d 100644 --- a/packages/emails/templates/slug-replacement-email.ts +++ b/packages/emails/templates/slug-replacement-email.ts @@ -19,12 +19,12 @@ export default class SlugReplacementEmail extends BaseEmail { this.t = t; } - protected getNodeMailerPayload(): Record<string, unknown> { + protected async getNodeMailerPayload(): Promise<Record<string, unknown>> { return { from: `Cal.com <${this.getMailerOptions().from}>`, to: this.email, subject: this.t("email_subject_slug_replacement", { slug: this.slug }), - html: renderEmail("SlugReplacementEmail", { + html: await renderEmail("SlugReplacementEmail", { slug: this.slug, name: this.name, teamName: this.teamName || "", diff --git a/packages/emails/templates/team-invite-email.ts b/packages/emails/templates/team-invite-email.ts index d583f7dc96..6d272bd225 100644 --- a/packages/emails/templates/team-invite-email.ts +++ b/packages/emails/templates/team-invite-email.ts @@ -24,7 +24,7 @@ export default class TeamInviteEmail extends BaseEmail { this.teamInviteEvent = teamInviteEvent; } - protected getNodeMailerPayload(): Record<string, unknown> { + protected async getNodeMailerPayload(): Promise<Record<string, unknown>> { return { to: this.teamInviteEvent.to, from: `${APP_NAME} <${this.getMailerOptions().from}>`, @@ -36,7 +36,7 @@ export default class TeamInviteEmail extends BaseEmail { .language(this.teamInviteEvent.isOrg ? "organization" : "team") .toLowerCase(), }), - html: renderEmail("TeamInviteEmail", this.teamInviteEvent), + html: await renderEmail("TeamInviteEmail", this.teamInviteEvent), text: "", }; } diff --git a/packages/features/bookings/Booker/components/BookEventForm/BookEventForm.tsx b/packages/features/bookings/Booker/components/BookEventForm/BookEventForm.tsx index ebbbdeeb45..dc8be1e773 100644 --- a/packages/features/bookings/Booker/components/BookEventForm/BookEventForm.tsx +++ b/packages/features/bookings/Booker/components/BookEventForm/BookEventForm.tsx @@ -344,7 +344,7 @@ export const BookEventFormChild = ({ hashedLink, }; - if (eventQuery.data?.recurringEvent?.freq && recurringEventCount) { + if (eventQuery.data?.recurringEvent?.freq && recurringEventCount && !rescheduleUid) { createRecurringBookingMutation.mutate( mapRecurringBookingToMutationInput(bookingInput, recurringEventCount) ); diff --git a/packages/features/bookings/components/FiltersContainer.tsx b/packages/features/bookings/components/FiltersContainer.tsx index ee25281eaa..2fe1c93fcc 100644 --- a/packages/features/bookings/components/FiltersContainer.tsx +++ b/packages/features/bookings/components/FiltersContainer.tsx @@ -21,6 +21,7 @@ import { Avatar, FilterSearchField, Tooltip, + Button, } from "@calcom/ui"; import { Plus } from "@calcom/ui/components/icon"; @@ -94,6 +95,8 @@ const PeopleFilter = () => { export function FiltersContainer() { const { t } = useLocale(); + const { removeAllQueryParams } = useFilterQuery(); + const [addFilterOptions, toggleOption, isFilterActive] = useBookingMultiFilterStore((state) => [ state.addFilterOptions, state.toggleOption, @@ -135,7 +138,18 @@ export function FiltersContainer() { {isPeopleFilterActive && <PeopleFilter />} {isEventTypeFilterActive && <EventTypeFilter />} - + {(isPeopleFilterActive || isEventTypeFilterActive) && ( + <Tooltip content={t("remove_filters")}> + <Button + color="secondary" + type="button" + onClick={() => { + removeAllQueryParams(); + }}> + {t("remove_filters")} + </Button> + </Tooltip> + )} <TeamsFilter /> </div> ); diff --git a/packages/features/bookings/components/VerifyCodeDialog.docs.mdx b/packages/features/bookings/components/VerifyCodeDialog.docs.mdx new file mode 100644 index 0000000000..ab7d72009d --- /dev/null +++ b/packages/features/bookings/components/VerifyCodeDialog.docs.mdx @@ -0,0 +1,24 @@ +import { Canvas, Meta } from "@storybook/blocks"; + +import { Title, CustomArgsTable } from "@calcom/storybook/components"; + +import { VerifyCodeDialog } from "./VerifyCodeDialog"; +import * as VerifyCodeDialogStories from "./VerifyCodeDialog.stories"; + +<Meta of={VerifyCodeDialogStories} /> + +<Title title="VerifyCodeDialog" suffix="Brief" subtitle="Version 1.0 — Last Update: 11 Sep 2023" /> + +## Definition + +The `VerifyCodeDialog` component allows users to enter a verification code sent to their email. The component provides feedback in case of an error and can handle different verification processes depending on whether the user session is required. + +## Structure + +This component contains an input form to capture a 6-digit verification code, error handling UI, and action buttons. + +<CustomArgsTable of={VerifyCodeDialog} /> + +{/* ## VerifyCodeDialog Story + +<Canvas of={VerifyCodeDialogStories.Default} /> */} diff --git a/packages/features/bookings/components/VerifyCodeDialog.stories.tsx b/packages/features/bookings/components/VerifyCodeDialog.stories.tsx new file mode 100644 index 0000000000..d58e7604ae --- /dev/null +++ b/packages/features/bookings/components/VerifyCodeDialog.stories.tsx @@ -0,0 +1,48 @@ +import type { Meta, StoryObj } from "@storybook/react"; +import type { ComponentProps } from "react"; + +import { StorybookTrpcProvider } from "@calcom/ui"; + +import { VerifyCodeDialog } from "./VerifyCodeDialog"; + +type StoryArgs = ComponentProps<typeof VerifyCodeDialog>; + +const meta: Meta<StoryArgs> = { + component: VerifyCodeDialog, + title: "Features/VerifyCodeDialog", + argTypes: { + isOpenDialog: { control: "boolean", description: "Indicates whether the dialog is open or not." }, + setIsOpenDialog: { action: "setIsOpenDialog", description: "Function to set the dialog state." }, + email: { control: "text", description: "Email to which the verification code was sent." }, + onSuccess: { action: "onSuccess", description: "Callback function when verification succeeds." }, + // onError: { action: "onError", description: "Callback function when verification fails." }, + isUserSessionRequiredToVerify: { + control: "boolean", + description: "Indicates if user session is required for verification.", + }, + }, + decorators: [ + (Story) => ( + <StorybookTrpcProvider> + <Story /> + </StorybookTrpcProvider> + ), + ], + render: (args) => <VerifyCodeDialog {...args} />, +}; + +export default meta; +type Story = StoryObj<StoryArgs>; + +export const Default: Story = { + name: "Dialog", + args: { + isOpenDialog: true, + email: "example@email.com", + // onError: (err) => { + // if (err.message === "invalid_code") { + // alert("Code provided is invalid"); + // } + // }, + }, +}; diff --git a/packages/features/bookings/components/VerifyCodeDialog.tsx b/packages/features/bookings/components/VerifyCodeDialog.tsx index ffa7077aaf..f1550ea31f 100644 --- a/packages/features/bookings/components/VerifyCodeDialog.tsx +++ b/packages/features/bookings/components/VerifyCodeDialog.tsx @@ -1,19 +1,10 @@ import type { Dispatch, SetStateAction } from "react"; -import { useState, useEffect } from "react"; +import { useState, useEffect, useCallback } from "react"; import useDigitInput from "react-digit-input"; import { useLocale } from "@calcom/lib/hooks/useLocale"; import { trpc } from "@calcom/trpc/react"; -import { - Button, - Dialog, - DialogClose, - DialogContent, - DialogFooter, - DialogHeader, - Label, - Input, -} from "@calcom/ui"; +import { Dialog, DialogClose, DialogContent, DialogFooter, DialogHeader, Label, Input } from "@calcom/ui"; import { Info } from "@calcom/ui/components/icon"; export const VerifyCodeDialog = ({ @@ -33,13 +24,17 @@ export const VerifyCodeDialog = ({ // Not using the mutation isLoading flag because after verifying we submit the underlying org creation form const [isLoading, setIsLoading] = useState(false); const [error, setError] = useState(""); - const [value, onChange] = useState(""); + const [value, setValue] = useState(""); const digits = useDigitInput({ acceptedCharacters: /^[0-9]$/, length: 6, value, - onChange, + onChange: useCallback((value: string) => { + // whenever there's a change in the input, we reset the error value. + setError(""); + setValue(value); + }, []), }); const verifyCodeMutationUserSessionRequired = trpc.viewer.organizations.verifyCode.useMutation({ @@ -68,7 +63,38 @@ export const VerifyCodeDialog = ({ }, }); - useEffect(() => onChange(""), [isOpenDialog]); + const verifyCode = useCallback(() => { + setError(""); + setIsLoading(true); + if (isUserSessionRequiredToVerify) { + verifyCodeMutationUserSessionRequired.mutate({ + code: value, + email, + }); + } else { + verifyCodeMutationUserSessionNotRequired.mutate({ + code: value, + email, + }); + } + }, [ + email, + isUserSessionRequiredToVerify, + value, + verifyCodeMutationUserSessionNotRequired, + verifyCodeMutationUserSessionRequired, + ]); + + useEffect(() => { + // trim the input value because "react-digit-input" creates a string of the given length, + // even when some digits are missing. And finally we use regex to check if the value consists + // of 6 non-empty digits. + if (error || isLoading || !/^\d{6}$/.test(value.trim())) return; + + verifyCode(); + }, [error, isLoading, value, verifyCode]); + + useEffect(() => setValue(""), [isOpenDialog]); const digitClassName = "h-12 w-12 !text-xl text-center"; @@ -76,7 +102,7 @@ export const VerifyCodeDialog = ({ <Dialog open={isOpenDialog} onOpenChange={(open) => { - onChange(""); + setValue(""); setError(""); setIsOpenDialog(open); }}> @@ -110,30 +136,6 @@ export const VerifyCodeDialog = ({ )} <DialogFooter> <DialogClose /> - <Button - loading={isLoading} - disabled={isLoading} - onClick={() => { - setError(""); - if (value === "") { - setError("The code is a required field"); - } else { - setIsLoading(true); - if (isUserSessionRequiredToVerify) { - verifyCodeMutationUserSessionRequired.mutate({ - code: value, - email, - }); - } else { - verifyCodeMutationUserSessionNotRequired.mutate({ - code: value, - email, - }); - } - } - }}> - {t("verify")} - </Button> </DialogFooter> </div> </div> diff --git a/packages/features/bookings/components/event-meta/Details.tsx b/packages/features/bookings/components/event-meta/Details.tsx index ee7b9f3017..6a5bac8202 100644 --- a/packages/features/bookings/components/event-meta/Details.tsx +++ b/packages/features/bookings/components/event-meta/Details.tsx @@ -1,6 +1,7 @@ import { Fragment } from "react"; import React from "react"; +import { useBookerStore } from "@calcom/features/bookings/Booker/store"; import classNames from "@calcom/lib/classNames"; import getPaymentAppData from "@calcom/lib/getPaymentAppData"; import { useLocale } from "@calcom/lib/hooks/useLocale"; @@ -110,6 +111,7 @@ export const EventMetaBlock = ({ */ export const EventDetails = ({ event, blocks = defaultEventDetailsBlocks }: EventDetailsProps) => { const { t } = useLocale(); + const rescheduleUid = useBookerStore((state) => state.rescheduleUid); return ( <> @@ -144,7 +146,7 @@ export const EventDetails = ({ event, blocks = defaultEventDetailsBlocks }: Even ); case EventDetailBlocks.OCCURENCES: - if (!event.recurringEvent) return null; + if (!event.recurringEvent || rescheduleUid) return null; return ( <EventMetaBlock key={block} icon={RefreshCcw}> diff --git a/packages/features/bookings/components/event-meta/Duration.tsx b/packages/features/bookings/components/event-meta/Duration.tsx index eda63e6e95..8d22ccaa1d 100644 --- a/packages/features/bookings/components/event-meta/Duration.tsx +++ b/packages/features/bookings/components/event-meta/Duration.tsx @@ -1,3 +1,4 @@ +import type { TFunction } from "next-i18next"; import { useEffect } from "react"; import { useBookerStore } from "@calcom/features/bookings/Booker/store"; @@ -7,6 +8,31 @@ import { Badge } from "@calcom/ui"; import type { PublicEvent } from "../../types"; +/** Render X mins as X hours or X hours Y mins instead of in minutes once >= 60 minutes */ +const getDurationFormatted = (mins: number, t: TFunction) => { + const hours = Math.floor(mins / 60); + mins %= 60; + // format minutes string + let minStr = ""; + if (mins > 0) { + minStr = + mins === 1 + ? t("minute_one", { count: 1 }) + : t("multiple_duration_timeUnit", { count: mins, unit: "minute" }); + } + // format hours string + let hourStr = ""; + if (hours > 0) { + hourStr = + hours === 1 + ? t("hour_one", { count: 1 }) + : t("multiple_duration_timeUnit", { count: hours, unit: "hour" }); + } + + if (hourStr && minStr) return `${hourStr} ${minStr}`; + return hourStr || minStr; +}; + export const EventDuration = ({ event }: { event: PublicEvent }) => { const { t } = useLocale(); const [selectedDuration, setSelectedDuration, state] = useBookerStore((state) => [ @@ -25,7 +51,7 @@ export const EventDuration = ({ event }: { event: PublicEvent }) => { }, [selectedDuration, setSelectedDuration, event.metadata?.multipleDuration, event.length, isDynamicEvent]); if (!event?.metadata?.multipleDuration && !isDynamicEvent) - return <>{t("multiple_duration_mins", { count: event.length })}</>; + return <>{getDurationFormatted(event.length, t)}</>; const durations = event?.metadata?.multipleDuration || [15, 30, 60]; @@ -39,7 +65,9 @@ export const EventDuration = ({ event }: { event: PublicEvent }) => { className={classNames(selectedDuration === duration && "bg-brand-default text-brand")} size="md" key={duration} - onClick={() => setSelectedDuration(duration)}>{`${duration} ${t("minute_timeUnit")}`}</Badge> + onClick={() => setSelectedDuration(duration)}> + {getDurationFormatted(duration, t)} + </Badge> ))} </div> ); diff --git a/packages/features/bookings/components/event-meta/EventMeta.docs.mdx b/packages/features/bookings/components/event-meta/EventMeta.docs.mdx new file mode 100644 index 0000000000..7740319317 --- /dev/null +++ b/packages/features/bookings/components/event-meta/EventMeta.docs.mdx @@ -0,0 +1,13 @@ +import { Canvas, Meta } from "@storybook/blocks"; + +import { Title } from "@calcom/storybook/components"; + +import * as EventMetaStories from "./EventMeta.stories"; + +<Meta of={EventMetaStories} /> + +<Title title="Event Meta" suffix="Brief" subtitle="Version 2.0 — Last Update: 12 Dec 2022" /> + +<Canvas of={EventMetaStories.ExampleStory} /> + +<Canvas of={EventMetaStories.AllVariants} /> diff --git a/packages/features/bookings/components/event-meta/EventMeta.stories.mdx b/packages/features/bookings/components/event-meta/EventMeta.stories.mdx deleted file mode 100644 index faa385184c..0000000000 --- a/packages/features/bookings/components/event-meta/EventMeta.stories.mdx +++ /dev/null @@ -1,52 +0,0 @@ -import { Canvas, Meta, Story, ArgsTable } from "@storybook/addon-docs"; - -import { - Examples, - Example, - Note, - Title, - VariantsTable, - VariantColumn, - RowTitles, - CustomArgsTable, -} from "@calcom/storybook/components"; -import { Icon } from "@calcom/ui"; - -import { EventDetails } from "./Details"; -import { EventMembers } from "./Members"; -import { EventTitle } from "./Title"; -import { mockEvent } from "./event.mock.ts"; - -<Meta title="Features/Events/Meta" component={EventDetails} /> - -<Title title="Event Meta" suffix="Brief" subtitle="Version 2.0 — Last Update: 12 Dec 2022" /> - -<Examples title="Combined event meta block"> - <div style={{ maxWidth: 300 }}> - <Example title="Event Title"> - <EventTitle event={mockEvent} /> - </Example> - <Example title="Event Details"> - <EventDetails event={mockEvent} /> - </Example> - </div> -</Examples> - -<Canvas> - <Story name="All variants"> - <VariantsTable titles={["Event Meta Components"]} columnMinWidth={150}> - <VariantRow variant=""> - <div style={{ maxWidth: 300 }}> - <EventMembers - users={[ - { name: "Pro example", username: "pro" }, - { name: "Team example", username: "team" }, - ]} - /> - <EventTitle>Quick catch-up</EventTitle> - <EventDetails event={mockEvent} /> - </div> - </VariantRow> - </VariantsTable> - </Story> -</Canvas> diff --git a/packages/features/bookings/components/event-meta/EventMeta.stories.tsx b/packages/features/bookings/components/event-meta/EventMeta.stories.tsx new file mode 100644 index 0000000000..9bb5d2c284 --- /dev/null +++ b/packages/features/bookings/components/event-meta/EventMeta.stories.tsx @@ -0,0 +1,62 @@ +import type { Meta, StoryObj } from "@storybook/react"; +import type { PublicEvent } from "bookings/types"; +import type { ComponentProps } from "react"; + +import { Examples, Example, VariantsTable, VariantRow } from "@calcom/storybook/components"; + +import { EventDetails } from "./Details"; +import { EventMembers } from "./Members"; +import { EventTitle } from "./Title"; +import { mockEvent } from "./event.mock"; + +type StoryArgs = ComponentProps<typeof EventDetails>; + +const meta: Meta<StoryArgs> = { + component: EventDetails, + parameters: { + nextjs: { + appDirectory: true, + }, + }, + title: "Features/Events/Meta", +}; + +export default meta; +type Story = StoryObj<StoryArgs>; + +export const ExampleStory: Story = { + name: "Examples", + render: () => ( + <Examples title="Combined event meta block"> + <div style={{ maxWidth: 300 }}> + <Example title="Event Title"> + <EventTitle>{mockEvent.title}</EventTitle> + </Example> + <Example title="Event Details"> + <EventDetails event={mockEvent} /> + </Example> + </div> + </Examples> + ), +}; + +export const AllVariants: Story = { + name: "All variants", + render: () => ( + <VariantsTable titles={["Event Meta Components"]} columnMinWidth={150}> + <VariantRow variant=""> + <div style={{ maxWidth: 300 }}> + <EventMembers + users={mockEvent.users} + schedulingType="COLLECTIVE" + entity={{ isUnpublished: false, name: "Example", orgSlug: null }} + // TODO remove type assertion + profile={{ weekStart: "Sunday" } as PublicEvent["profile"]} + /> + <EventTitle>Quick catch-up</EventTitle> + <EventDetails event={mockEvent} /> + </div> + </VariantRow> + </VariantsTable> + ), +}; diff --git a/packages/features/bookings/components/event-meta/event.mock.ts b/packages/features/bookings/components/event-meta/event.mock.ts index 1bbff1ff57..100e1b0fe0 100644 --- a/packages/features/bookings/components/event-meta/event.mock.ts +++ b/packages/features/bookings/components/event-meta/event.mock.ts @@ -1,14 +1,17 @@ -import type { RouterOutputs } from "@calcom/trpc/react"; +import type { PublicEvent } from "bookings/types"; -export const mockEvent: RouterOutputs["viewer"]["public"]["event"] = { +export const mockEvent: PublicEvent = { id: 1, title: "Quick check-in", slug: "quick-check-in", eventName: "Quick check-in", description: "Use this event for a quick 15 minute catchup. Visit this long url to test the component https://cal.com/averylongurlwithoutspacesthatshouldntbreaklayout", - users: [{ name: "Pro Example", username: "pro" }], + users: [ + { name: "Pro example", username: "pro", weekStart: "Sunday", organizationId: null }, + { name: "Team example", username: "team", weekStart: "Sunday", organizationId: 1 }, + ], schedulingType: null, length: 30, locations: [{ type: "integrations:google:meet" }, { type: "integrations:zoom" }], -}; +} as PublicEvent; // TODO: complete mock and remove type assertion diff --git a/packages/features/bookings/components/verifyCodeDialog.stories.mdx b/packages/features/bookings/components/verifyCodeDialog.stories.mdx deleted file mode 100644 index 8679477369..0000000000 --- a/packages/features/bookings/components/verifyCodeDialog.stories.mdx +++ /dev/null @@ -1,55 +0,0 @@ -import { Canvas, Meta, Story } from "@storybook/addon-docs"; - -import { Title, CustomArgsTable } from "@calcom/storybook/components"; - -import { StorybookTrpcProvider } from "../../../ui/components/mocks/trpc.tsx"; -import { VerifyCodeDialog } from "./VerifyCodeDialog"; - -<Meta title="Features/VerifyCodeDialog" component={VerifyCodeDialog} /> - -<Title title="VerifyCodeDialog" suffix="Brief" subtitle="Version 1.0 — Last Update: 11 Sep 2023" /> - -## Definition - -The `VerifyCodeDialog` component allows users to enter a verification code sent to their email. The component provides feedback in case of an error and can handle different verification processes depending on whether the user session is required. - -## Structure - -This component contains an input form to capture a 6-digit verification code, error handling UI, and action buttons. - -<CustomArgsTable of={VerifyCodeDialog} /> - -## VerifyCodeDialog Story - -<Canvas> - <Story - name="VerifyCodeDialog" - args={{ - isOpenDialog: true, - setIsOpenDialog: () => {}, - email: "example@email.com", - onSuccess: () => {}, - onError: (err) => { - if (err.message === "invalid_code") { - alert("Code provided is invalid"); - } - }, - }} - argTypes={{ - isOpenDialog: { control: "boolean", description: "Indicates whether the dialog is open or not." }, - setIsOpenDialog: { action: "setIsOpenDialog", description: "Function to set the dialog state." }, - email: { control: "text", description: "Email to which the verification code was sent." }, - onSuccess: { action: "onSuccess", description: "Callback function when verification succeeds." }, - onError: { action: "onError", description: "Callback function when verification fails." }, - isUserSessionRequiredToVerify: { - control: "boolean", - description: "Indicates if user session is required for verification.", - }, - }}> - {(args) => ( - <StorybookTrpcProvider> - <VerifyCodeDialog {...args} /> - </StorybookTrpcProvider> - )} - </Story> -</Canvas> diff --git a/packages/features/bookings/lib/getBookingDataSchema.ts b/packages/features/bookings/lib/getBookingDataSchema.ts new file mode 100644 index 0000000000..cef2a72dc6 --- /dev/null +++ b/packages/features/bookings/lib/getBookingDataSchema.ts @@ -0,0 +1,80 @@ +import { z } from "zod"; + +import { + bookingCreateSchemaLegacyPropsForApi, + bookingCreateBodySchemaForApi, + extendedBookingCreateBody, +} from "@calcom/prisma/zod-utils"; + +import getBookingResponsesSchema from "./getBookingResponsesSchema"; +import type { getEventTypesFromDB } from "./handleNewBooking"; + +const getBookingDataSchema = ( + rescheduleUid: string | undefined, + isNotAnApiCall: boolean, + eventType: Awaited<ReturnType<typeof getEventTypesFromDB>> +) => { + const responsesSchema = getBookingResponsesSchema({ + eventType: { + bookingFields: eventType.bookingFields, + }, + view: rescheduleUid ? "reschedule" : "booking", + }); + const bookingDataSchema = isNotAnApiCall + ? extendedBookingCreateBody.merge( + z.object({ + responses: responsesSchema, + }) + ) + : bookingCreateBodySchemaForApi + .merge( + z.object({ + responses: responsesSchema.optional(), + }) + ) + .superRefine((val, ctx) => { + if (val.responses && val.customInputs) { + ctx.addIssue({ + code: "custom", + message: + "Don't use both customInputs and responses. `customInputs` is only there for legacy support.", + }); + return; + } + const legacyProps = Object.keys(bookingCreateSchemaLegacyPropsForApi.shape); + + if (val.responses) { + const unwantedProps: string[] = []; + legacyProps.forEach((legacyProp) => { + if (typeof val[legacyProp as keyof typeof val] !== "undefined") { + console.error( + `Deprecated: Unexpected falsy value for: ${unwantedProps.join( + "," + )}. They can't be used with \`responses\`. This will become a 400 error in the future.` + ); + } + if (val[legacyProp as keyof typeof val]) { + unwantedProps.push(legacyProp); + } + }); + if (unwantedProps.length) { + ctx.addIssue({ + code: "custom", + message: `Legacy Props: ${unwantedProps.join(",")}. They can't be used with \`responses\``, + }); + return; + } + } else if (val.customInputs) { + const { success } = bookingCreateSchemaLegacyPropsForApi.safeParse(val); + if (!success) { + ctx.addIssue({ + code: "custom", + message: `With \`customInputs\` you must specify legacy props ${legacyProps.join(",")}`, + }); + } + } + }); + return bookingDataSchema; +}; + +export default getBookingDataSchema; diff --git a/packages/features/bookings/lib/handleBookingRequested.ts b/packages/features/bookings/lib/handleBookingRequested.ts index 1abe2f2042..397e7ba2c0 100644 --- a/packages/features/bookings/lib/handleBookingRequested.ts +++ b/packages/features/bookings/lib/handleBookingRequested.ts @@ -3,6 +3,7 @@ import { getWebhookPayloadForBooking } from "@calcom/features/bookings/lib/getWe import getWebhooks from "@calcom/features/webhooks/lib/getWebhooks"; import sendPayload from "@calcom/features/webhooks/lib/sendPayload"; import logger from "@calcom/lib/logger"; +import { safeStringify } from "@calcom/lib/safeStringify"; import { WebhookTriggerEvents } from "@calcom/prisma/enums"; import type { CalendarEvent } from "@calcom/types/Calendar"; @@ -65,6 +66,6 @@ export async function handleBookingRequested(args: { await Promise.all(promises); } catch (error) { // Silently fail - log.error(error); + log.error("Error in handleBookingRequested", safeStringify(error)); } } diff --git a/packages/features/bookings/lib/handleConfirmation.ts b/packages/features/bookings/lib/handleConfirmation.ts index 0db3b9c000..289e6f7148 100644 --- a/packages/features/bookings/lib/handleConfirmation.ts +++ b/packages/features/bookings/lib/handleConfirmation.ts @@ -10,6 +10,7 @@ import type { EventTypeInfo } from "@calcom/features/webhooks/lib/sendPayload"; import sendPayload from "@calcom/features/webhooks/lib/sendPayload"; import { getTeamIdFromEventType } from "@calcom/lib/getTeamIdFromEventType"; import logger from "@calcom/lib/logger"; +import { safeStringify } from "@calcom/lib/safeStringify"; import type { PrismaClient } from "@calcom/prisma"; import { BookingStatus, WebhookTriggerEvents } from "@calcom/prisma/enums"; import { EventTypeMetaDataSchema } from "@calcom/prisma/zod-utils"; @@ -65,7 +66,7 @@ export async function handleConfirmation(args: { message: "Booking failed", }; - log.error(`Booking ${user.username} failed`, JSON.stringify({ error, results })); + log.error(`Booking ${user.username} failed`, safeStringify({ error, results })); } else { if (results.length) { // TODO: Handle created event metadata more elegantly diff --git a/packages/features/bookings/lib/handleNewBooking.ts b/packages/features/bookings/lib/handleNewBooking.ts index 7165a6f67b..b3a4f5643c 100644 --- a/packages/features/bookings/lib/handleNewBooking.ts +++ b/packages/features/bookings/lib/handleNewBooking.ts @@ -77,11 +77,9 @@ import type { BookingReference } from "@calcom/prisma/client"; import { BookingStatus, SchedulingType, WebhookTriggerEvents } from "@calcom/prisma/enums"; import { credentialForCalendarServiceSelect } from "@calcom/prisma/selects/credential"; import { - bookingCreateBodySchemaForApi, bookingCreateSchemaLegacyPropsForApi, customInputSchema, EventTypeMetaDataSchema, - extendedBookingCreateBody, userMetadata as userMetadataSchema, } from "@calcom/prisma/zod-utils"; import type { BufferedBusyTime } from "@calcom/types/BufferedBusyTime"; @@ -96,7 +94,7 @@ import type { CredentialPayload } from "@calcom/types/Credential"; import type { EventResult, PartialReference } from "@calcom/types/EventManager"; import type { EventTypeInfo } from "../../webhooks/lib/sendPayload"; -import getBookingResponsesSchema from "./getBookingResponsesSchema"; +import getBookingDataSchema from "./getBookingDataSchema"; const translator = short(); const log = logger.getSubLogger({ prefix: ["[api] book:user"] }); @@ -104,6 +102,14 @@ const log = logger.getSubLogger({ prefix: ["[api] book:user"] }); type User = Prisma.UserGetPayload<typeof userSelect>; type BufferedBusyTimes = BufferedBusyTime[]; type BookingType = Prisma.PromiseReturnType<typeof getOriginalRescheduledBooking>; +type Booking = Prisma.PromiseReturnType<typeof createBooking>; +export type NewBookingEventType = + | Awaited<ReturnType<typeof getDefaultEvent>> + | Awaited<ReturnType<typeof getEventTypesFromDB>>; + +// Work with Typescript to require reqBody.end +type ReqBodyWithoutEnd = z.infer<ReturnType<typeof getBookingDataSchema>>; +type ReqBodyWithEnd = ReqBodyWithoutEnd & { end: string }; interface IEventTypePaymentCredentialType { appId: EventTypeAppsList; @@ -244,7 +250,7 @@ function checkForConflicts(busyTimes: BufferedBusyTimes, time: dayjs.ConfigType, return false; } -const getEventTypesFromDB = async (eventTypeId: number) => { +export const getEventTypesFromDB = async (eventTypeId: number) => { const eventType = await prisma.eventType.findUniqueOrThrow({ where: { id: eventTypeId, @@ -363,6 +369,53 @@ type IsFixedAwareUser = User & { organization: { slug: string }; }; +const loadUsers = async ( + eventType: NewBookingEventType, + dynamicUserList: string[], + reqHeadersHost: string | undefined +) => { + try { + if (!eventType.id) { + if (!Array.isArray(dynamicUserList) || dynamicUserList.length === 0) { + throw new Error("dynamicUserList is not properly defined or empty."); + } + + const users = await prisma.user.findMany({ + where: { + username: { in: dynamicUserList }, + organization: userOrgQuery(reqHeadersHost ? reqHeadersHost.replace(/^https?:\/\//, "") : ""), + }, + select: { + ...userSelect.select, + credentials: { + select: credentialForCalendarServiceSelect, + }, + metadata: true, + }, + }); + + return users; + } + const hosts = eventType.hosts || []; + + if (!Array.isArray(hosts)) { + throw new Error("eventType.hosts is not properly defined."); + } + + const users = hosts.map(({ user, isFixed }) => ({ + ...user, + isFixed, + })); + + return users.length ? users : eventType.users; + } catch (error) { + if (error instanceof HttpError || error instanceof Prisma.PrismaClientKnownRequestError) { + throw new HttpError({ statusCode: 400, message: error.message }); + } + throw new HttpError({ statusCode: 500, message: "Unable to load users" }); + } +}; + async function ensureAvailableUsers( eventType: Awaited<ReturnType<typeof getEventTypesFromDB>> & { users: IsFixedAwareUser[]; @@ -506,73 +559,10 @@ async function getBookingData({ isNotAnApiCall: boolean; eventType: Awaited<ReturnType<typeof getEventTypesFromDB>>; }) { - const responsesSchema = getBookingResponsesSchema({ - eventType: { - bookingFields: eventType.bookingFields, - }, - view: req.body.rescheduleUid ? "reschedule" : "booking", - }); - const bookingDataSchema = isNotAnApiCall - ? extendedBookingCreateBody.merge( - z.object({ - responses: responsesSchema, - }) - ) - : bookingCreateBodySchemaForApi - .merge( - z.object({ - responses: responsesSchema.optional(), - }) - ) - .superRefine((val, ctx) => { - if (val.responses && val.customInputs) { - ctx.addIssue({ - code: "custom", - message: - "Don't use both customInputs and responses. `customInputs` is only there for legacy support.", - }); - return; - } - const legacyProps = Object.keys(bookingCreateSchemaLegacyPropsForApi.shape); - - if (val.responses) { - const unwantedProps: string[] = []; - legacyProps.forEach((legacyProp) => { - if (typeof val[legacyProp as keyof typeof val] !== "undefined") { - console.error( - `Deprecated: Unexpected falsy value for: ${unwantedProps.join( - "," - )}. They can't be used with \`responses\`. This will become a 400 error in the future.` - ); - } - if (val[legacyProp as keyof typeof val]) { - unwantedProps.push(legacyProp); - } - }); - if (unwantedProps.length) { - ctx.addIssue({ - code: "custom", - message: `Legacy Props: ${unwantedProps.join(",")}. They can't be used with \`responses\``, - }); - return; - } - } else if (val.customInputs) { - const { success } = bookingCreateSchemaLegacyPropsForApi.safeParse(val); - if (!success) { - ctx.addIssue({ - code: "custom", - message: `With \`customInputs\` you must specify legacy props ${legacyProps.join(",")}`, - }); - } - } - }); + const bookingDataSchema = getBookingDataSchema(req.body?.rescheduleUid, isNotAnApiCall, eventType); const reqBody = await bookingDataSchema.parseAsync(req.body); - // Work with Typescript to require reqBody.end - type ReqBodyWithoutEnd = z.infer<typeof bookingDataSchema>; - type ReqBodyWithEnd = ReqBodyWithoutEnd & { end: string }; - const reqBodyWithEnd = (reqBody: ReqBodyWithoutEnd): reqBody is ReqBodyWithEnd => { // Use the event length to auto-set the event end time. if (!Object.prototype.hasOwnProperty.call(reqBody, "end")) { @@ -626,6 +616,181 @@ async function getBookingData({ } } +async function createBooking({ + originalRescheduledBooking, + evt, + eventTypeId, + eventTypeSlug, + reqBodyUser, + reqBodyMetadata, + reqBodyRecurringEventId, + uid, + responses, + isConfirmedByDefault, + smsReminderNumber, + organizerUser, + rescheduleReason, + eventType, + bookerEmail, + paymentAppData, + changedOrganizer, +}: { + originalRescheduledBooking: Awaited<ReturnType<typeof getOriginalRescheduledBooking>>; + evt: CalendarEvent; + eventType: NewBookingEventType; + eventTypeId: Awaited<ReturnType<typeof getBookingData>>["eventTypeId"]; + eventTypeSlug: Awaited<ReturnType<typeof getBookingData>>["eventTypeSlug"]; + reqBodyUser: ReqBodyWithEnd["user"]; + reqBodyMetadata: ReqBodyWithEnd["metadata"]; + reqBodyRecurringEventId: ReqBodyWithEnd["recurringEventId"]; + uid: short.SUUID; + responses: ReqBodyWithEnd["responses"] | null; + isConfirmedByDefault: ReturnType<typeof getRequiresConfirmationFlags>["isConfirmedByDefault"]; + smsReminderNumber: Awaited<ReturnType<typeof getBookingData>>["smsReminderNumber"]; + organizerUser: Awaited<ReturnType<typeof loadUsers>>[number] & { + isFixed?: boolean; + metadata?: Prisma.JsonValue; + }; + rescheduleReason: Awaited<ReturnType<typeof getBookingData>>["rescheduleReason"]; + bookerEmail: Awaited<ReturnType<typeof getBookingData>>["email"]; + paymentAppData: ReturnType<typeof getPaymentAppData>; + changedOrganizer: boolean; +}) { + if (originalRescheduledBooking) { + evt.title = originalRescheduledBooking?.title || evt.title; + evt.description = originalRescheduledBooking?.description || evt.description; + evt.location = originalRescheduledBooking?.location || evt.location; + evt.location = changedOrganizer ? evt.location : originalRescheduledBooking?.location || evt.location; + } + + const eventTypeRel = !eventTypeId + ? {} + : { + connect: { + id: eventTypeId, + }, + }; + + const dynamicEventSlugRef = !eventTypeId ? eventTypeSlug : null; + const dynamicGroupSlugRef = !eventTypeId ? (reqBodyUser as string).toLowerCase() : null; + + const attendeesData = evt.attendees.map((attendee) => { + //if attendee is team member, it should fetch their locale not booker's locale + //perhaps make email fetch request to see if his locale is stored, else + return { + name: attendee.name, + email: attendee.email, + timeZone: attendee.timeZone, + locale: attendee.language.locale, + }; + }); + + if (evt.team?.members) { + attendeesData.push( + ...evt.team.members.map((member) => ({ + email: member.email, + name: member.name, + timeZone: member.timeZone, + locale: member.language.locale, + })) + ); + } + + const newBookingData: Prisma.BookingCreateInput = { + uid, + responses: responses === null ? Prisma.JsonNull : responses, + title: evt.title, + startTime: dayjs.utc(evt.startTime).toDate(), + endTime: dayjs.utc(evt.endTime).toDate(), + description: evt.additionalNotes, + customInputs: isPrismaObjOrUndefined(evt.customInputs), + status: isConfirmedByDefault ? BookingStatus.ACCEPTED : BookingStatus.PENDING, + location: evt.location, + eventType: eventTypeRel, + smsReminderNumber, + metadata: reqBodyMetadata, + attendees: { + createMany: { + data: attendeesData, + }, + }, + dynamicEventSlugRef, + dynamicGroupSlugRef, + user: { + connect: { + id: organizerUser.id, + }, + }, + destinationCalendar: + evt.destinationCalendar && evt.destinationCalendar.length > 0 + ? { + connect: { id: evt.destinationCalendar[0].id }, + } + : undefined, + }; + + if (reqBodyRecurringEventId) { + newBookingData.recurringEventId = reqBodyRecurringEventId; + } + if (originalRescheduledBooking) { + newBookingData.metadata = { + ...(typeof originalRescheduledBooking.metadata === "object" && originalRescheduledBooking.metadata), + }; + newBookingData["paid"] = originalRescheduledBooking.paid; + newBookingData["fromReschedule"] = originalRescheduledBooking.uid; + if (originalRescheduledBooking.uid) { + newBookingData.cancellationReason = rescheduleReason; + } + if (newBookingData.attendees?.createMany?.data) { + // Reschedule logic with booking with seats + if (eventType?.seatsPerTimeSlot && bookerEmail) { + newBookingData.attendees.createMany.data = attendeesData.filter( + (attendee) => attendee.email === bookerEmail + ); + } + } + if (originalRescheduledBooking.recurringEventId) { + newBookingData.recurringEventId = originalRescheduledBooking.recurringEventId; + } + } + const createBookingObj = { + include: { + user: { + select: { email: true, name: true, timeZone: true, username: true }, + }, + attendees: true, + payment: true, + references: true, + }, + data: newBookingData, + }; + + if (originalRescheduledBooking?.paid && originalRescheduledBooking?.payment) { + const bookingPayment = originalRescheduledBooking?.payment?.find((payment) => payment.success); + + if (bookingPayment) { + createBookingObj.data.payment = { + connect: { id: bookingPayment.id }, + }; + } + } + + if (typeof paymentAppData.price === "number" && paymentAppData.price > 0) { + /* Validate if there is any payment app credential for this user */ + await prisma.credential.findFirstOrThrow({ + where: { + appId: paymentAppData.appId, + ...(paymentAppData.credentialId ? { id: paymentAppData.credentialId } : { userId: organizerUser.id }), + }, + select: { + id: true, + }, + }); + } + + return prisma.booking.create(createBookingObj); +} + function getCustomInputsResponses( reqBody: { responses?: Record<string, object>; @@ -781,54 +946,11 @@ async function handler( throw new HttpError({ statusCode: 400, message: error.message }); } - const loadUsers = async () => { - try { - if (!eventTypeId) { - if (!Array.isArray(dynamicUserList) || dynamicUserList.length === 0) { - throw new Error("dynamicUserList is not properly defined or empty."); - } - - const users = await prisma.user.findMany({ - where: { - username: { in: dynamicUserList }, - organization: userOrgQuery(req.headers.host ? req.headers.host.replace(/^https?:\/\//, "") : ""), - }, - select: { - ...userSelect.select, - credentials: { - select: credentialForCalendarServiceSelect, - }, - metadata: true, - }, - }); - - return users; - } else { - const hosts = eventType.hosts || []; - - if (!Array.isArray(hosts)) { - throw new Error("eventType.hosts is not properly defined."); - } - - const users = hosts.map(({ user, isFixed }) => ({ - ...user, - isFixed, - })); - - return users.length ? users : eventType.users; - } - } catch (error) { - if (error instanceof HttpError || error instanceof Prisma.PrismaClientKnownRequestError) { - throw new HttpError({ statusCode: 400, message: error.message }); - } - throw new HttpError({ statusCode: 500, message: "Unable to load users" }); - } - }; // loadUsers allows type inferring let users: (Awaited<ReturnType<typeof loadUsers>>[number] & { isFixed?: boolean; metadata?: Prisma.JsonValue; - })[] = await loadUsers(); + })[] = await loadUsers(eventType, dynamicUserList, req.headers.host); const isDynamicAllowed = !users.some((user) => !user.allowDynamicBooking); if (!isDynamicAllowed && !eventTypeId) { @@ -1923,147 +2045,9 @@ async function handler( eventType.schedulingType === SchedulingType.ROUND_ROBIN && originalRescheduledBooking.userId !== evt.organizer.id; - async function createBooking() { - if (originalRescheduledBooking) { - evt.title = originalRescheduledBooking?.title || evt.title; - evt.description = originalRescheduledBooking?.description || evt.description; - evt.location = changedOrganizer ? evt.location : originalRescheduledBooking?.location || evt.location; - } - - const eventTypeRel = !eventTypeId - ? {} - : { - connect: { - id: eventTypeId, - }, - }; - - const dynamicEventSlugRef = !eventTypeId ? eventTypeSlug : null; - const dynamicGroupSlugRef = !eventTypeId ? (reqBody.user as string).toLowerCase() : null; - - const attendeesData = evt.attendees.map((attendee) => { - //if attendee is team member, it should fetch their locale not booker's locale - //perhaps make email fetch request to see if his locale is stored, else - return { - name: attendee.name, - email: attendee.email, - timeZone: attendee.timeZone, - locale: attendee.language.locale, - }; - }); - - if (evt.team?.members) { - attendeesData.push( - ...evt.team.members.map((member) => ({ - email: member.email, - name: member.name, - timeZone: member.timeZone, - locale: member.language.locale, - })) - ); - } - - const newBookingData: Prisma.BookingCreateInput = { - uid, - responses: responses === null ? Prisma.JsonNull : responses, - title: evt.title, - startTime: dayjs.utc(evt.startTime).toDate(), - endTime: dayjs.utc(evt.endTime).toDate(), - description: evt.additionalNotes, - customInputs: isPrismaObjOrUndefined(evt.customInputs), - status: isConfirmedByDefault ? BookingStatus.ACCEPTED : BookingStatus.PENDING, - location: evt.location, - eventType: eventTypeRel, - smsReminderNumber, - metadata: reqBody.metadata, - attendees: { - createMany: { - data: attendeesData, - }, - }, - dynamicEventSlugRef, - dynamicGroupSlugRef, - user: { - connect: { - id: organizerUser.id, - }, - }, - destinationCalendar: - evt.destinationCalendar && evt.destinationCalendar.length > 0 - ? { - connect: { id: evt.destinationCalendar[0].id }, - } - : undefined, - }; - - if (reqBody.recurringEventId) { - newBookingData.recurringEventId = reqBody.recurringEventId; - } - if (originalRescheduledBooking) { - newBookingData.metadata = { - ...(typeof originalRescheduledBooking.metadata === "object" && originalRescheduledBooking.metadata), - }; - newBookingData["paid"] = originalRescheduledBooking.paid; - newBookingData["fromReschedule"] = originalRescheduledBooking.uid; - if (originalRescheduledBooking.uid) { - newBookingData.cancellationReason = rescheduleReason; - } - if (newBookingData.attendees?.createMany?.data) { - // Reschedule logic with booking with seats - if (eventType?.seatsPerTimeSlot && bookerEmail) { - newBookingData.attendees.createMany.data = attendeesData.filter( - (attendee) => attendee.email === bookerEmail - ); - } - } - if (originalRescheduledBooking.recurringEventId) { - newBookingData.recurringEventId = originalRescheduledBooking.recurringEventId; - } - } - const createBookingObj = { - include: { - user: { - select: { email: true, name: true, timeZone: true, username: true }, - }, - attendees: true, - payment: true, - references: true, - }, - data: newBookingData, - }; - - if (originalRescheduledBooking?.paid && originalRescheduledBooking?.payment) { - const bookingPayment = originalRescheduledBooking?.payment?.find((payment) => payment.success); - - if (bookingPayment) { - createBookingObj.data.payment = { - connect: { id: bookingPayment.id }, - }; - } - } - - if (typeof paymentAppData.price === "number" && paymentAppData.price > 0) { - /* Validate if there is any payment app credential for this user */ - await prisma.credential.findFirstOrThrow({ - where: { - appId: paymentAppData.appId, - ...(paymentAppData.credentialId - ? { id: paymentAppData.credentialId } - : { userId: organizerUser.id }), - }, - select: { - id: true, - }, - }); - } - - return prisma.booking.create(createBookingObj); - } - let results: EventResult<AdditionalInformation & { url?: string; iCalUID?: string }>[] = []; let referencesToCreate: PartialReference[] = []; - type Booking = Prisma.PromiseReturnType<typeof createBooking>; let booking: (Booking & { appsStatus?: AppsStatus[] }) | null = null; loggerWithEventDetails.debug( "Going to create booking in DB now", @@ -2077,7 +2061,25 @@ async function handler( ); try { - booking = await createBooking(); + booking = await createBooking({ + originalRescheduledBooking, + evt, + eventTypeId, + eventTypeSlug, + reqBodyUser: reqBody.user, + reqBodyMetadata: reqBody.metadata, + reqBodyRecurringEventId: reqBody.recurringEventId, + uid, + responses, + isConfirmedByDefault, + smsReminderNumber, + organizerUser, + rescheduleReason, + eventType, + bookerEmail, + paymentAppData, + changedOrganizer, + }); // @NOTE: Add specific try catch for all subsequent async calls to avoid error // Sync Services diff --git a/packages/features/bookings/lib/handleNewBooking/test/fresh-booking.test.ts b/packages/features/bookings/lib/handleNewBooking/test/fresh-booking.test.ts index c893929b9a..bb8189d8d9 100644 --- a/packages/features/bookings/lib/handleNewBooking/test/fresh-booking.test.ts +++ b/packages/features/bookings/lib/handleNewBooking/test/fresh-booking.test.ts @@ -21,6 +21,7 @@ import { createBookingScenario, getDate, getGoogleCalendarCredential, + getAppleCalendarCredential, TestData, getOrganizer, getBooker, @@ -784,6 +785,151 @@ describe("handleNewBooking", () => { }, timeout ); + + test( + "If destination calendar is there for Google Calendar but there are no Google Calendar credentials but there is an Apple Calendar credential connected, it should create the event in Apple Calendar", + async ({ emails }) => { + const handleNewBooking = (await import("@calcom/features/bookings/lib/handleNewBooking")).default; + const booker = getBooker({ + email: "booker@example.com", + name: "Booker", + }); + + const organizer = getOrganizer({ + name: "Organizer", + email: "organizer@example.com", + id: 101, + schedules: [TestData.schedules.IstWorkHours], + credentials: [getAppleCalendarCredential()], + selectedCalendars: [TestData.selectedCalendars.google], + destinationCalendar: { + integration: "google_calendar", + externalId: "organizer@google-calendar.com", + }, + }); + + await createBookingScenario( + getScenarioData({ + webhooks: [ + { + userId: organizer.id, + eventTriggers: ["BOOKING_CREATED"], + subscriberUrl: "http://my-webhook.example.com", + active: true, + eventTypeId: 1, + appId: null, + }, + ], + eventTypes: [ + { + id: 1, + slotInterval: 45, + length: 45, + users: [ + { + id: 101, + }, + ], + }, + ], + organizer, + apps: [TestData.apps["google-calendar"], TestData.apps["daily-video"]], + }) + ); + + mockSuccessfulVideoMeetingCreation({ + metadataLookupKey: "dailyvideo", + videoMeetingData: { + id: "MOCK_ID", + password: "MOCK_PASS", + url: `http://mock-dailyvideo.example.com/meeting-1`, + }, + }); + + const calendarMock = mockCalendarToHaveNoBusySlots("applecalendar", { + create: { + uid: "MOCK_ID", + id: "MOCKED_APPLE_CALENDAR_EVENT_ID", + iCalUID: "MOCKED_APPLE_CALENDAR_ICS_ID", + }, + }); + + const mockBookingData = getMockRequestDataForBooking({ + data: { + eventTypeId: 1, + responses: { + email: booker.email, + name: booker.name, + location: { optionValue: "", value: BookingLocations.CalVideo }, + }, + }, + }); + + const { req } = createMockNextJsRequest({ + method: "POST", + body: mockBookingData, + }); + + const createdBooking = await handleNewBooking(req); + expect(createdBooking.responses).toContain({ + email: booker.email, + name: booker.name, + }); + + expect(createdBooking).toContain({ + location: BookingLocations.CalVideo, + }); + + await expectBookingToBeInDatabase({ + description: "", + // eslint-disable-next-line @typescript-eslint/no-non-null-assertion + uid: createdBooking.uid!, + eventTypeId: mockBookingData.eventTypeId, + status: BookingStatus.ACCEPTED, + references: [ + { + type: appStoreMetadata.dailyvideo.type, + uid: "MOCK_ID", + meetingId: "MOCK_ID", + meetingPassword: "MOCK_PASS", + meetingUrl: "http://mock-dailyvideo.example.com/meeting-1", + }, + { + type: appStoreMetadata.applecalendar.type, + uid: "MOCKED_APPLE_CALENDAR_EVENT_ID", + meetingId: "MOCKED_APPLE_CALENDAR_EVENT_ID", + meetingPassword: "MOCK_PASSWORD", + meetingUrl: "https://UNUSED_URL", + }, + ], + }); + + expectWorkflowToBeTriggered(); + expectSuccessfulCalendarEventCreationInCalendar(calendarMock, { + calendarId: "organizer@google-calendar.com", + videoCallUrl: "http://mock-dailyvideo.example.com/meeting-1", + }); + + expectSuccessfulBookingCreationEmails({ + booking: { + uid: createdBooking.uid!, + }, + booker, + organizer, + emails, + iCalUID: "MOCKED_APPLE_CALENDAR_ICS_ID", + }); + + expectBookingCreatedWebhookToHaveBeenFired({ + booker, + organizer, + location: BookingLocations.CalVideo, + subscriberUrl: "http://my-webhook.example.com", + videoCallUrl: `${WEBAPP_URL}/video/${createdBooking.uid}`, + }); + }, + timeout + ); }); describe("Video Meeting Creation", () => { diff --git a/packages/features/bookings/lib/handleNewBooking/test/reschedule.test.ts b/packages/features/bookings/lib/handleNewBooking/test/reschedule.test.ts index 622b88e950..fca448bf2d 100644 --- a/packages/features/bookings/lib/handleNewBooking/test/reschedule.test.ts +++ b/packages/features/bookings/lib/handleNewBooking/test/reschedule.test.ts @@ -37,7 +37,7 @@ import { expectBookingRequestedWebhookToHaveBeenFired, expectSuccessfulCalendarEventDeletionInCalendar, expectSuccessfulVideoMeetingDeletionInCalendar, - expectSuccessfulRoudRobinReschedulingEmails, + expectSuccessfulRoundRobinReschedulingEmails, } from "@calcom/web/test/utils/bookingScenario/expects"; import { getMockRequestDataForBooking } from "@calcom/web/test/utils/bookingScenario/getMockRequestDataForBooking"; import { setupAndTeardown } from "@calcom/web/test/utils/bookingScenario/setupAndTeardown"; @@ -1692,7 +1692,7 @@ describe("handleNewBooking", () => { }, }); - expectSuccessfulRoudRobinReschedulingEmails({ + expectSuccessfulRoundRobinReschedulingEmails({ prevOrganizer: roundRobinHost1, newOrganizer: roundRobinHost2, emails, @@ -1842,7 +1842,7 @@ describe("handleNewBooking", () => { }, }); - expectSuccessfulRoudRobinReschedulingEmails({ + expectSuccessfulRoundRobinReschedulingEmails({ prevOrganizer: roundRobinHost1, newOrganizer: roundRobinHost1, // Round robin host 2 is not available and it will be rescheduled to same user emails, diff --git a/packages/features/calendars/weeklyview/components/calendar.stories.mdx b/packages/features/calendars/weeklyview/components/calendar.stories.mdx index 1d0f2227d0..fb8943ec13 100644 --- a/packages/features/calendars/weeklyview/components/calendar.stories.mdx +++ b/packages/features/calendars/weeklyview/components/calendar.stories.mdx @@ -1,18 +1,14 @@ -import { Canvas, Meta, Story, ArgsTable } from "@storybook/addon-docs"; +import { Canvas, Meta, Story } from "@storybook/addon-docs"; +import { TooltipProvider } from "@radix-ui/react-tooltip"; import { - Examples, - Example, - Note, + Title, CustomArgsTable, - VariantsTable, - VariantRow, } from "@calcom/storybook/components"; import { events, blockingDates } from "../_storybookData"; import "../styles/styles.css"; -import { CalendarEvent } from "../types/events"; import { Calendar } from "./Calendar"; <Meta title="UI/Calendar" component={Calendar} /> @@ -29,7 +25,7 @@ The Args Table below shows you a breakdown of what props can be passed into the There will be a few examples of how to use the Calendar component to show different usecases. -export const Template = (args) => <Calendar {...args} />; +export const Template = (args) => <TooltipProvider><Calendar {...args} /></TooltipProvider>; <Canvas> <Story @@ -74,6 +70,7 @@ export const Template = (args) => <Calendar {...args} />; }, }}> {({ ...args }) => ( + <TooltipProvider> <Calendar {...args} events={events} @@ -81,6 +78,7 @@ export const Template = (args) => <Calendar {...args} />; onEmptyCellClick={(date) => alert(date.toString())} sortEvents /> + </TooltipProvider> )} </Story> </Canvas> diff --git a/packages/features/ee/impersonation/components/ImpersonatingBanner.tsx b/packages/features/ee/impersonation/components/ImpersonatingBanner.tsx index 7a032900ff..f4ea44eeac 100644 --- a/packages/features/ee/impersonation/components/ImpersonatingBanner.tsx +++ b/packages/features/ee/impersonation/components/ImpersonatingBanner.tsx @@ -1,11 +1,12 @@ -import { useSession } from "next-auth/react"; +import type { SessionContextValue } from "next-auth/react"; import { useLocale } from "@calcom/lib/hooks/useLocale"; import { TopBanner } from "@calcom/ui"; -function ImpersonatingBanner() { +export type ImpersonatingBannerProps = { data: SessionContextValue["data"] }; + +function ImpersonatingBanner({ data }: ImpersonatingBannerProps) { const { t } = useLocale(); - const { data } = useSession(); if (!data?.user.impersonatedByUID) return null; diff --git a/packages/features/ee/managed-event-types/lib/handleChildrenEventTypes.ts b/packages/features/ee/managed-event-types/lib/handleChildrenEventTypes.ts index 585981796e..043f717d82 100644 --- a/packages/features/ee/managed-event-types/lib/handleChildrenEventTypes.ts +++ b/packages/features/ee/managed-event-types/lib/handleChildrenEventTypes.ts @@ -186,6 +186,7 @@ export default async function handleChildrenEventTypes({ metadata: (managedEventTypeValues.metadata as Prisma.InputJsonValue) ?? undefined, bookingFields: (managedEventTypeValues.bookingFields as Prisma.InputJsonValue) ?? undefined, durationLimits: (managedEventTypeValues.durationLimits as Prisma.InputJsonValue) ?? undefined, + onlyShowFirstAvailableSlot: managedEventTypeValues.onlyShowFirstAvailableSlot ?? false, userId, users: { connect: [{ id: userId }], @@ -235,6 +236,7 @@ export default async function handleChildrenEventTypes({ hidden: children?.find((ch) => ch.owner.id === userId)?.hidden ?? false, bookingLimits: (managedEventTypeValues.bookingLimits as unknown as Prisma.InputJsonObject) ?? undefined, + onlyShowFirstAvailableSlot: managedEventTypeValues.onlyShowFirstAvailableSlot ?? false, recurringEvent: (managedEventTypeValues.recurringEvent as unknown as Prisma.InputJsonValue) ?? undefined, metadata: (managedEventTypeValues.metadata as Prisma.InputJsonValue) ?? undefined, diff --git a/packages/features/ee/organizations/components/OrgUpgradeBanner.tsx b/packages/features/ee/organizations/components/OrgUpgradeBanner.tsx index b3c2dd2dc6..073ffe9c35 100644 --- a/packages/features/ee/organizations/components/OrgUpgradeBanner.tsx +++ b/packages/features/ee/organizations/components/OrgUpgradeBanner.tsx @@ -1,13 +1,17 @@ import { useRouter } from "next/navigation"; import { useLocale } from "@calcom/lib/hooks/useLocale"; +import type { RouterOutputs } from "@calcom/trpc/react"; import { trpc } from "@calcom/trpc/react"; import { showToast, TopBanner } from "@calcom/ui"; -export function OrgUpgradeBanner() { +export type OrgUpgradeBannerProps = { + data: RouterOutputs["viewer"]["getUserTopBanners"]["orgUpgradeBanner"]; +}; + +export function OrgUpgradeBanner({ data }: OrgUpgradeBannerProps) { const { t } = useLocale(); const router = useRouter(); - const { data } = trpc.viewer.organizations.checkIfOrgNeedsUpgrade.useQuery(); const publishOrgMutation = trpc.viewer.organizations.publish.useMutation({ onSuccess(data) { router.push(data.url); diff --git a/packages/features/ee/organizations/pages/components/MemberListItem.tsx b/packages/features/ee/organizations/pages/components/MemberListItem.tsx index 5a4437ec79..33586140d8 100644 --- a/packages/features/ee/organizations/pages/components/MemberListItem.tsx +++ b/packages/features/ee/organizations/pages/components/MemberListItem.tsx @@ -18,7 +18,7 @@ import { import { ExternalLink, MoreHorizontal } from "@calcom/ui/components/icon"; interface Props { - member: RouterOutputs["viewer"]["organizations"]["listOtherTeamMembers"][number]; + member: RouterOutputs["viewer"]["organizations"]["listOtherTeamMembers"]["rows"][number]; } export default function MemberListItem(props: Props) { diff --git a/packages/features/ee/organizations/pages/settings/admin/AdminOrgPage.tsx b/packages/features/ee/organizations/pages/settings/admin/AdminOrgPage.tsx index c111ba3040..0042acd986 100644 --- a/packages/features/ee/organizations/pages/settings/admin/AdminOrgPage.tsx +++ b/packages/features/ee/organizations/pages/settings/admin/AdminOrgPage.tsx @@ -1,3 +1,5 @@ +"use client"; + import NoSSR from "@calcom/core/components/NoSSR"; import LicenseRequired from "@calcom/ee/common/components/LicenseRequired"; import { extractDomainFromWebsiteUrl } from "@calcom/ee/organizations/lib/utils"; diff --git a/packages/features/ee/organizations/pages/settings/other-team-members-view.tsx b/packages/features/ee/organizations/pages/settings/other-team-members-view.tsx index 1e37ceaba3..a9506fc6aa 100644 --- a/packages/features/ee/organizations/pages/settings/other-team-members-view.tsx +++ b/packages/features/ee/organizations/pages/settings/other-team-members-view.tsx @@ -1,7 +1,7 @@ // import { debounce } from "lodash"; import { useSession } from "next-auth/react"; import { useRouter } from "next/navigation"; -import { useState, useEffect } from "react"; +import { useState } from "react"; import MemberInvitationModal from "@calcom/ee/teams/components/MemberInvitationModal"; import { useLocale } from "@calcom/lib/hooks/useLocale"; @@ -16,20 +16,21 @@ import { getLayout } from "../../../../settings/layouts/SettingsLayout"; import MakeTeamPrivateSwitch from "../../../teams/components/MakeTeamPrivateSwitch"; import MemberListItem from "../components/MemberListItem"; -type Members = RouterOutputs["viewer"]["organizations"]["listOtherTeamMembers"]; +type Members = RouterOutputs["viewer"]["organizations"]["listOtherTeamMembers"]["rows"]; type Team = RouterOutputs["viewer"]["organizations"]["getOtherTeam"]; interface MembersListProps { members: Members | undefined; team: Team | undefined; - offset: number; - setOffset: (offset: number) => void; - displayLoadMore: boolean; + fetchNextPage: () => void; + hasNextPage: boolean | undefined; + isFetchingNextPage: boolean | undefined; } function MembersList(props: MembersListProps) { const { t } = useLocale(); - const { displayLoadMore, members, team } = props; + const { hasNextPage, members = [], team, fetchNextPage, isFetchingNextPage } = props; + return ( <div className="flex flex-col gap-y-3"> {members?.length && team ? ( @@ -44,13 +45,15 @@ function MembersList(props: MembersListProps) { <p className="text-default text-sm font-bold">{t("no_members_found")}</p> </div> )} - {displayLoadMore && ( - <button - className="text-primary-500 hover:text-primary-600" - onClick={() => props.setOffset(props.offset + 1)}> - {t("load_more")} - </button> - )} + <div className="text-default p-4 text-center"> + <Button + color="minimal" + loading={isFetchingNextPage} + disabled={!hasNextPage} + onClick={() => fetchNextPage()}> + {hasNextPage ? t("load_more_results") : t("no_more_results")} + </Button> + </div> </div> ); } @@ -62,11 +65,9 @@ const MembersView = () => { const teamId = Number(params.id); const session = useSession(); const utils = trpc.useContext(); - const [offset, setOffset] = useState<number>(1); // const [query, setQuery] = useState<string | undefined>(""); // const [queryToFetch, setQueryToFetch] = useState<string | undefined>(""); - const [loadMore, setLoadMore] = useState<boolean>(true); - const limit = 100; + const limit = 20; const [showMemberInvitationModal, setShowMemberInvitationModal] = useState<boolean>(false); const [members, setMembers] = useState<Members>([]); const { data: currentOrg } = trpc.viewer.organizations.listCurrent.useQuery(undefined, { @@ -91,26 +92,25 @@ const MembersView = () => { enabled: !Number.isNaN(teamId), } ); - const { data: membersFetch, isLoading: isLoadingMembers } = - trpc.viewer.organizations.listOtherTeamMembers.useQuery( - { teamId, limit, offset: (offset - 1) * limit }, + + const { fetchNextPage, isFetchingNextPage, hasNextPage } = + trpc.viewer.organizations.listOtherTeamMembers.useInfiniteQuery( + { teamId, limit }, { + onSuccess: (data) => { + const flatData = data?.pages?.flatMap((page) => page.rows) as Members; + setMembers(flatData); + }, enabled: !Number.isNaN(teamId), onError: () => { router.push("/settings"); }, + getNextPageParam: (lastPage) => lastPage.nextCursor, + keepPreviousData: true, } ); - useEffect(() => { - if (membersFetch) { - setLoadMore(membersFetch.length >= limit); - setMembers((m) => m.concat(membersFetch)); - } - }, [membersFetch]); - - const isLoading = isTeamLoading || isLoadingMembers || isOrgListLoading; - + const isLoading = isTeamLoading || isOrgListLoading; const inviteMemberMutation = trpc.viewer.teams.inviteMember.useMutation({ onSuccess: () => { utils.viewer.organizations.listOtherTeams.invalidate(); @@ -162,9 +162,9 @@ const MembersView = () => { <MembersList members={members} team={team} - setOffset={setOffset} - offset={offset} - displayLoadMore={loadMore} + fetchNextPage={fetchNextPage} + hasNextPage={hasNextPage} + isFetchingNextPage={isFetchingNextPage} /> </> diff --git a/packages/features/ee/payments/api/webhook.ts b/packages/features/ee/payments/api/webhook.ts index 2e64d5a480..720b4c04dd 100644 --- a/packages/features/ee/payments/api/webhook.ts +++ b/packages/features/ee/payments/api/webhook.ts @@ -14,6 +14,7 @@ import { HttpError as HttpCode } from "@calcom/lib/http-error"; import logger from "@calcom/lib/logger"; import { getBooking } from "@calcom/lib/payment/getBooking"; import { handlePaymentSuccess } from "@calcom/lib/payment/handlePaymentSuccess"; +import { safeStringify } from "@calcom/lib/safeStringify"; import { prisma } from "@calcom/prisma"; import { BookingStatus } from "@calcom/prisma/enums"; @@ -38,7 +39,7 @@ export async function handleStripePaymentSuccess(event: Stripe.Event) { }); if (!payment?.bookingId) { - log.error(JSON.stringify(paymentIntent), JSON.stringify(payment)); + log.error("Stripe: Payment Not Found", safeStringify(paymentIntent), safeStringify(payment)); throw new HttpCode({ statusCode: 204, message: "Payment not found" }); } if (!payment?.bookingId) throw new HttpCode({ statusCode: 204, message: "Payment not found" }); diff --git a/packages/features/ee/teams/components/AddNewTeamMembers.tsx b/packages/features/ee/teams/components/AddNewTeamMembers.tsx index 750f8ecbae..da444655da 100644 --- a/packages/features/ee/teams/components/AddNewTeamMembers.tsx +++ b/packages/features/ee/teams/components/AddNewTeamMembers.tsx @@ -1,6 +1,6 @@ import { useSession } from "next-auth/react"; import { useRouter } from "next/navigation"; -import { useState } from "react"; +import { useState, useEffect } from "react"; import { useOrgBranding } from "@calcom/features/ee/organizations/context/provider"; import InviteLinkSettingsModal from "@calcom/features/ee/teams/components/InviteLinkSettingsModal"; @@ -10,6 +10,7 @@ import { APP_NAME, WEBAPP_URL } from "@calcom/lib/constants"; import { useBookerUrl } from "@calcom/lib/hooks/useBookerUrl"; import { useCompatSearchParams } from "@calcom/lib/hooks/useCompatSearchParams"; import { useLocale } from "@calcom/lib/hooks/useLocale"; +import { useTelemetry, telemetryEventTypes } from "@calcom/lib/telemetry"; import { MembershipRole } from "@calcom/prisma/enums"; import type { RouterOutputs } from "@calcom/trpc/react"; import { trpc } from "@calcom/trpc/react"; @@ -33,11 +34,21 @@ type FormValues = { const AddNewTeamMembers = () => { const searchParams = useCompatSearchParams(); const session = useSession(); + const telemetry = useTelemetry(); + const teamId = searchParams?.get("id") ? Number(searchParams.get("id")) : -1; const teamQuery = trpc.viewer.teams.get.useQuery( { teamId }, { enabled: session.status === "authenticated" } ); + + useEffect(() => { + const event = searchParams?.get("event"); + if (event === "team_created") { + telemetry.event(telemetryEventTypes.team_created); + } + }, []); + if (session.status === "loading" || !teamQuery.data) return <AddNewTeamMemberSkeleton />; return <AddNewTeamMembersForm defaultValues={{ members: teamQuery.data.members }} teamId={teamId} />; @@ -170,18 +181,15 @@ export const AddNewTeamMembersForm = ({ )} <hr className="border-subtle my-6" /> <Button + data-testid="publish-button" EndIcon={!orgBranding ? ArrowRight : undefined} color="primary" className="w-full justify-center" disabled={publishTeamMutation.isLoading} onClick={() => { - if (orgBranding) { - router.push("/settings/teams"); - } else { - publishTeamMutation.mutate({ teamId }); - } + router.push(`/settings/teams/${teamId}/profile`); }}> - {t(orgBranding ? "finish" : "team_publish")} + {t("finish")} </Button> </> ); diff --git a/packages/features/ee/teams/components/CreateANewTeamForm.tsx b/packages/features/ee/teams/components/CreateANewTeamForm.tsx index 76b2cbc6db..14de3a1588 100644 --- a/packages/features/ee/teams/components/CreateANewTeamForm.tsx +++ b/packages/features/ee/teams/components/CreateANewTeamForm.tsx @@ -4,14 +4,15 @@ import { Controller, useForm } from "react-hook-form"; import { z } from "zod"; import { extractDomainFromWebsiteUrl } from "@calcom/ee/organizations/lib/utils"; +import { HOSTED_CAL_FEATURES } from "@calcom/lib/constants"; import { getSafeRedirectUrl } from "@calcom/lib/getSafeRedirectUrl"; import { useLocale } from "@calcom/lib/hooks/useLocale"; import { useParamsWithFallback } from "@calcom/lib/hooks/useParamsWithFallback"; import slugify from "@calcom/lib/slugify"; import { telemetryEventTypes, useTelemetry } from "@calcom/lib/telemetry"; import { trpc } from "@calcom/trpc/react"; -import { Avatar, Button, Form, ImageUploader, TextField, Alert, Label } from "@calcom/ui"; -import { ArrowRight, Plus } from "@calcom/ui/components/icon"; +import { Alert, Button, Form, TextField } from "@calcom/ui"; +import { ArrowRight } from "@calcom/ui/components/icon"; import { useOrgBranding } from "../../organizations/context/provider"; import type { NewTeamFormValues } from "../lib/types"; @@ -21,8 +22,19 @@ const querySchema = z.object({ slug: z.string().optional(), }); +const isTeamBillingEnabledClient = !!process.env.NEXT_PUBLIC_STRIPE_PUBLIC_KEY && HOSTED_CAL_FEATURES; +const flag = isTeamBillingEnabledClient + ? { + telemetryEvent: telemetryEventTypes.team_checkout_session_created, + submitLabel: "checkout", + } + : { + telemetryEvent: telemetryEventTypes.team_created, + submitLabel: "continue", + }; + export const CreateANewTeamForm = () => { - const { t } = useLocale(); + const { t, isLocaleReady } = useLocale(); const router = useRouter(); const telemetry = useTelemetry(); const params = useParamsWithFallback(); @@ -42,8 +54,8 @@ export const CreateANewTeamForm = () => { const createTeamMutation = trpc.viewer.teams.create.useMutation({ onSuccess: (data) => { - telemetry.event(telemetryEventTypes.team_created); - router.push(`/settings/teams/${data.id}/onboard-members`); + telemetry.event(flag.telemetryEvent); + router.push(data.url); }, onError: (err) => { if (err.message === "team_url_taken") { @@ -81,6 +93,10 @@ export const CreateANewTeamForm = () => { render={({ field: { value } }) => ( <> <TextField + disabled={ + /* E2e is too fast and it tries to fill this way before the form is ready */ + !isLocaleReady || createTeamMutation.isLoading + } className="mt-2" placeholder="Acme Inc." name="name" @@ -128,38 +144,6 @@ export const CreateANewTeamForm = () => { /> </div> - <div className="mb-8"> - <Controller - control={newTeamFormMethods.control} - name="logo" - render={({ field: { value } }) => ( - <> - <Label>{t("team_logo")}</Label> - <div className="flex items-center"> - <Avatar - alt="" - imageSrc={value} - fallback={<Plus className="text-subtle h-6 w-6" />} - size="lg" - /> - <div className="ms-4"> - <ImageUploader - target="avatar" - id="avatar-upload" - buttonMsg={t("update")} - handleAvatarChange={(newAvatar: string) => { - newTeamFormMethods.setValue("logo", newAvatar); - createTeamMutation.reset(); - }} - imageSrc={value} - /> - </div> - </div> - </> - )} - /> - </div> - <div className="flex space-x-2 rtl:space-x-reverse"> <Button disabled={createTeamMutation.isLoading} @@ -174,7 +158,7 @@ export const CreateANewTeamForm = () => { EndIcon={ArrowRight} type="submit" className="w-full justify-center"> - {t("continue")} + {t(flag.submitLabel)} </Button> </div> </Form> diff --git a/packages/features/ee/teams/components/MemberInvitationModal.tsx b/packages/features/ee/teams/components/MemberInvitationModal.tsx index bde9365f72..6d555450b8 100644 --- a/packages/features/ee/teams/components/MemberInvitationModal.tsx +++ b/packages/features/ee/teams/components/MemberInvitationModal.tsx @@ -6,11 +6,12 @@ import { Controller, useForm } from "react-hook-form"; import TeamInviteFromOrg from "@calcom/ee/organizations/components/TeamInviteFromOrg"; import { classNames } from "@calcom/lib"; -import { IS_TEAM_BILLING_ENABLED } from "@calcom/lib/constants"; +import { IS_TEAM_BILLING_ENABLED, MAX_NB_INVITES } from "@calcom/lib/constants"; import { useLocale } from "@calcom/lib/hooks/useLocale"; import { MembershipRole } from "@calcom/prisma/enums"; import type { RouterOutputs } from "@calcom/trpc"; import { trpc } from "@calcom/trpc"; +import { isEmail } from "@calcom/trpc/server/routers/viewer/teams/util"; import { Button, Dialog, @@ -199,7 +200,10 @@ export default function MemberInvitationModal(props: MemberInvitationModalProps) </Label> <ToggleGroup isFullWidth={true} - onValueChange={(val) => setModalInputMode(val as ModalMode)} + onValueChange={(val) => { + setModalInputMode(val as ModalMode); + newMemberFormMethods.clearErrors(); + }} defaultValue={modalImportMode} options={toggleGroupOptions} /> @@ -213,8 +217,10 @@ export default function MemberInvitationModal(props: MemberInvitationModalProps) name="emailOrUsername" control={newMemberFormMethods.control} rules={{ - required: t("enter_email_or_username"), + required: isOrg ? t("enter_email") : t("enter_email_or_username"), validate: (value) => { + // orgs can only invite members by email + if (typeof value === "string" && isOrg && !isEmail(value)) return t("enter_email"); if (typeof value === "string") return validateUniqueInvite(value) || t("member_already_invited"); }, @@ -241,7 +247,14 @@ export default function MemberInvitationModal(props: MemberInvitationModalProps) name="emailOrUsername" control={newMemberFormMethods.control} rules={{ - required: t("enter_email_or_username"), + required: t("enter_email"), + validate: (value) => { + if (Array.isArray(value) && value.some((email) => !isEmail(email))) + return t("enter_emails"); + if (Array.isArray(value) && value.length > MAX_NB_INVITES) + return t("too_many_invites", { nbUsers: MAX_NB_INVITES }); + if (typeof value === "string" && !isEmail(value)) return t("enter_email"); + }, }} render={({ field: { onChange, value }, fieldState: { error } }) => ( <> diff --git a/packages/features/ee/teams/components/MemberListItem.tsx b/packages/features/ee/teams/components/MemberListItem.tsx index 2f2bacfa32..d0d4cb873f 100644 --- a/packages/features/ee/teams/components/MemberListItem.tsx +++ b/packages/features/ee/teams/components/MemberListItem.tsx @@ -67,6 +67,7 @@ export default function MemberListItem(props: Props) { await utils.viewer.teams.get.invalidate(); await utils.viewer.eventTypes.invalidate(); await utils.viewer.organizations.listMembers.invalidate(); + await utils.viewer.organizations.getMembers.invalidate(); showToast(t("success"), "success"); }, async onError(err) { diff --git a/packages/features/ee/teams/components/TeamList.tsx b/packages/features/ee/teams/components/TeamList.tsx index 9cd893b95d..ee2918e80d 100644 --- a/packages/features/ee/teams/components/TeamList.tsx +++ b/packages/features/ee/teams/components/TeamList.tsx @@ -75,22 +75,6 @@ export default function TeamList(props: Props) { child: t("invite"), }} /> - {/* @TODO: uncomment once managed event types is live - <Card - icon={<Unlock className="h-5 w-5 text-blue-700" />} - variant="basic" - title={t("create_a_managed_event")} - description={t("create_a_one_one_template")} - actionButton={{ - href: - "/event-types?dialog=new-eventtype&eventPage=team%2F" + - team.slug + - "&teamId=" + - team.id + - "&managed=true", - child: t("create"), - }} - /> */} <Card icon={<Users className="h-5 w-5 text-orange-700" />} variant="basic" diff --git a/packages/features/ee/teams/components/TeamListItem.tsx b/packages/features/ee/teams/components/TeamListItem.tsx index 6be6a2344d..047695419f 100644 --- a/packages/features/ee/teams/components/TeamListItem.tsx +++ b/packages/features/ee/teams/components/TeamListItem.tsx @@ -13,6 +13,7 @@ import type { RouterOutputs } from "@calcom/trpc/react"; import { trpc } from "@calcom/trpc/react"; import { Avatar, + Badge, Button, ButtonGroup, ConfirmationDialogContent, @@ -104,11 +105,15 @@ export default function TeamListItem(props: Props) { <div className="ms-3 inline-block truncate"> <span className="text-default text-sm font-bold">{team.name}</span> <span className="text-muted block text-xs"> - {team.slug - ? orgBranding - ? `${orgBranding.fullDomain}/${team.slug}` - : `${process.env.NEXT_PUBLIC_WEBSITE_URL}/team/${team.slug}` - : "Unpublished team"} + {team.slug ? ( + orgBranding ? ( + `${orgBranding.fullDomain}/${team.slug}` + ) : ( + `${process.env.NEXT_PUBLIC_WEBSITE_URL}/team/${team.slug}` + ) + ) : ( + <Badge>{t("upgrade")}</Badge> + )} </span> </div> </div> @@ -180,13 +185,17 @@ export default function TeamListItem(props: Props) { )} <div className={classNames("flex items-center justify-between", !isInvitee && "hover:bg-muted group")}> {!isInvitee ? ( - <Link - data-testid="team-list-item-link" - href={`/settings/teams/${team.id}/profile`} - className="flex-grow cursor-pointer truncate text-sm" - title={`${team.name}`}> - {teamInfo} - </Link> + team.slug ? ( + <Link + data-testid="team-list-item-link" + href={`/settings/teams/${team.id}/profile`} + className="flex-grow cursor-pointer truncate text-sm" + title={`${team.name}`}> + {teamInfo} + </Link> + ) : ( + <TeamPublishSection teamId={team.id}>{teamInfo}</TeamPublishSection> + ) ) : ( teamInfo )} @@ -388,3 +397,26 @@ const TeamPublishButton = ({ teamId }: { teamId: number }) => { </DropdownMenuItem> ); }; + +const TeamPublishSection = ({ children, teamId }: { children: React.ReactNode; teamId: number }) => { + const router = useRouter(); + const publishTeamMutation = trpc.viewer.teams.publish.useMutation({ + onSuccess(data) { + router.push(data.url); + }, + onError: (error) => { + showToast(error.message, "error"); + }, + }); + + return ( + <button + className="block flex-grow cursor-pointer truncate text-left text-sm" + type="button" + onClick={() => { + publishTeamMutation.mutate({ teamId }); + }}> + {children} + </button> + ); +}; diff --git a/packages/features/ee/teams/components/TeamsListing.tsx b/packages/features/ee/teams/components/TeamsListing.tsx index 5b909484c7..53fa8b4b94 100644 --- a/packages/features/ee/teams/components/TeamsListing.tsx +++ b/packages/features/ee/teams/components/TeamsListing.tsx @@ -102,7 +102,6 @@ export function TeamsListing() { <TeamList teams={invites} pending /> </div> )} - <UpgradeTip plan="team" title={t("calcom_is_better_with_team", { appName: APP_NAME })} diff --git a/packages/features/ee/teams/components/TeamsUpgradeBanner.tsx b/packages/features/ee/teams/components/TeamsUpgradeBanner.tsx index 58441a6337..2804d59a2f 100644 --- a/packages/features/ee/teams/components/TeamsUpgradeBanner.tsx +++ b/packages/features/ee/teams/components/TeamsUpgradeBanner.tsx @@ -2,12 +2,17 @@ import { useRouter } from "next/navigation"; import { useLocale } from "@calcom/lib/hooks/useLocale"; import { trpc } from "@calcom/trpc/react"; +import type { RouterOutputs } from "@calcom/trpc/react"; import { showToast, TopBanner } from "@calcom/ui"; -export function TeamsUpgradeBanner() { +export type TeamsUpgradeBannerProps = { + data: RouterOutputs["viewer"]["getUserTopBanners"]["teamUpgradeBanner"]; +}; + +export function TeamsUpgradeBanner({ data }: TeamsUpgradeBannerProps) { const { t } = useLocale(); const router = useRouter(); - const { data } = trpc.viewer.teams.getUpgradeable.useQuery(); + const publishTeamMutation = trpc.viewer.teams.publish.useMutation({ onSuccess(data) { router.push(data.url); diff --git a/packages/features/ee/teams/components/index.ts b/packages/features/ee/teams/components/index.ts index 9a2c857f44..4ba43769b0 100644 --- a/packages/features/ee/teams/components/index.ts +++ b/packages/features/ee/teams/components/index.ts @@ -1,3 +1,3 @@ export { CreateANewTeamForm } from "./CreateANewTeamForm"; export { TeamsListing } from "./TeamsListing"; -export { TeamsUpgradeBanner } from "./TeamsUpgradeBanner"; +export { TeamsUpgradeBanner, type TeamsUpgradeBannerProps } from "./TeamsUpgradeBanner"; diff --git a/packages/features/ee/teams/lib/payments.ts b/packages/features/ee/teams/lib/payments.ts index 5a0b50f31b..5e44add974 100644 --- a/packages/features/ee/teams/lib/payments.ts +++ b/packages/features/ee/teams/lib/payments.ts @@ -29,6 +29,51 @@ export const checkIfTeamPaymentRequired = async ({ teamId = -1 }) => { return { url: `${WEBAPP_URL}/api/teams/${teamId}/upgrade?session_id=${metadata.paymentId}` }; }; +/** + * Used to generate a checkout session when trying to create a team + */ +export const generateTeamCheckoutSession = async ({ + teamName, + teamSlug, + userId, +}: { + teamName: string; + teamSlug: string; + userId: number; +}) => { + const customer = await getStripeCustomerIdFromUserId(userId); + const session = await stripe.checkout.sessions.create({ + customer, + mode: "subscription", + allow_promotion_codes: true, + success_url: `${WEBAPP_URL}/api/teams/create?session_id={CHECKOUT_SESSION_ID}`, + cancel_url: `${WEBAPP_URL}/settings/my-account/profile`, + line_items: [ + { + /** We only need to set the base price and we can upsell it directly on Stripe's checkout */ + price: process.env.STRIPE_TEAM_MONTHLY_PRICE_ID, + /**Initially it will be just the team owner */ + quantity: 1, + }, + ], + customer_update: { + address: "auto", + }, + automatic_tax: { + enabled: true, + }, + metadata: { + teamName, + teamSlug, + userId, + }, + }); + return session; +}; + +/** + * Used to generate a checkout session when creating a new org (parent team) or backwards compatibility for old teams + */ export const purchaseTeamSubscription = async (input: { teamId: number; seats: number; diff --git a/packages/features/ee/teams/pages/team-members-view.tsx b/packages/features/ee/teams/pages/team-members-view.tsx index 553a8a449c..b6374df16b 100644 --- a/packages/features/ee/teams/pages/team-members-view.tsx +++ b/packages/features/ee/teams/pages/team-members-view.tsx @@ -206,6 +206,7 @@ const MembersView = () => { { onSuccess: async (data) => { await utils.viewer.teams.get.invalidate(); + await utils.viewer.organizations.getMembers.invalidate(); setShowMemberInvitationModal(false); if (Array.isArray(data.usernameOrEmail)) { diff --git a/packages/features/ee/teams/pages/team-profile-view.tsx b/packages/features/ee/teams/pages/team-profile-view.tsx index 294ce36fbd..88c53e991f 100644 --- a/packages/features/ee/teams/pages/team-profile-view.tsx +++ b/packages/features/ee/teams/pages/team-profile-view.tsx @@ -194,7 +194,11 @@ const ProfileView = () => { <Dialog> <SectionBottomActions align="end"> <DialogTrigger asChild> - <Button color="destructive" className="border" StartIcon={Trash2}> + <Button + color="destructive" + className="border" + StartIcon={Trash2} + data-testid="disband-team-button"> {t("disband_team")} </Button> </DialogTrigger> diff --git a/packages/features/ee/users/pages/users-add-view.tsx b/packages/features/ee/users/pages/users-add-view.tsx index 30ffc93ae0..44f3d8d1d0 100644 --- a/packages/features/ee/users/pages/users-add-view.tsx +++ b/packages/features/ee/users/pages/users-add-view.tsx @@ -1,3 +1,5 @@ +"use client"; + import { usePathname, useRouter } from "next/navigation"; import { getParserWithGeneric } from "@calcom/prisma/zod-utils"; diff --git a/packages/features/ee/users/pages/users-edit-view.tsx b/packages/features/ee/users/pages/users-edit-view.tsx index 2da6d2126e..c4d6169f53 100644 --- a/packages/features/ee/users/pages/users-edit-view.tsx +++ b/packages/features/ee/users/pages/users-edit-view.tsx @@ -1,3 +1,5 @@ +"use client"; + import { usePathname, useRouter } from "next/navigation"; import { z } from "zod"; diff --git a/packages/features/ee/users/pages/users-listing-view.tsx b/packages/features/ee/users/pages/users-listing-view.tsx index 5ddbc9d8e9..915530b4bf 100644 --- a/packages/features/ee/users/pages/users-listing-view.tsx +++ b/packages/features/ee/users/pages/users-listing-view.tsx @@ -1,3 +1,5 @@ +"use client"; + import NoSSR from "@calcom/core/components/NoSSR"; import { Button, Meta } from "@calcom/ui"; diff --git a/packages/features/filters/lib/getTeamsFiltersFromQuery.ts b/packages/features/filters/lib/getTeamsFiltersFromQuery.ts index 14d71c9d78..f0c1aad074 100644 --- a/packages/features/filters/lib/getTeamsFiltersFromQuery.ts +++ b/packages/features/filters/lib/getTeamsFiltersFromQuery.ts @@ -1,12 +1,24 @@ +"use client"; + import type { ParsedUrlQuery } from "querystring"; import { z } from "zod"; -import { queryNumberArray } from "@calcom/lib/hooks/useTypedQuery"; import type { RouterOutputs } from "@calcom/trpc/react"; export type IEventTypesFilters = RouterOutputs["viewer"]["eventTypes"]["listWithTeam"]; export type IEventTypeFilter = IEventTypesFilters[0]; +// Take array as a string and return zod array +const queryNumberArray = z + .string() + .or(z.number()) + .or(z.array(z.number())) + .transform((a) => { + if (typeof a === "string") return a.split(",").map((a) => Number(a)); + if (Array.isArray(a)) return a; + return [a]; + }); + // Use filterQuerySchema when parsing filters out of query, so that additional query params(e.g. slug, appPages) aren't passed in filters export const filterQuerySchema = z.object({ teamIds: queryNumberArray.optional(), diff --git a/packages/features/settings/layouts/SettingsLayout.tsx b/packages/features/settings/layouts/SettingsLayout.tsx index 677c43f5e4..70721e3cfb 100644 --- a/packages/features/settings/layouts/SettingsLayout.tsx +++ b/packages/features/settings/layouts/SettingsLayout.tsx @@ -213,7 +213,9 @@ const SettingsSidebarContainer = ({ enabled: !!session.data?.user?.org, }); - const { data: otherTeams } = trpc.viewer.organizations.listOtherTeams.useQuery(); + const { data: otherTeams } = trpc.viewer.organizations.listOtherTeams.useQuery(undefined, { + enabled: !!session.data?.user?.org, + }); useEffect(() => { if (teams) { diff --git a/packages/features/settings/layouts/SettingsLayoutAppDir.tsx b/packages/features/settings/layouts/SettingsLayoutAppDir.tsx new file mode 100644 index 0000000000..7719211f1b --- /dev/null +++ b/packages/features/settings/layouts/SettingsLayoutAppDir.tsx @@ -0,0 +1,723 @@ +"use client"; + +import { Collapsible, CollapsibleContent, CollapsibleTrigger } from "@radix-ui/react-collapsible"; +import { useSession } from "next-auth/react"; +import Link from "next/link"; +import { usePathname, useRouter } from "next/navigation"; +import type { ComponentProps } from "react"; +import React, { Suspense, useEffect, useState } from "react"; + +import { useOrgBranding } from "@calcom/features/ee/organizations/context/provider"; +import Shell from "@calcom/features/shell/Shell"; +import { classNames } from "@calcom/lib"; +import { HOSTED_CAL_FEATURES, WEBAPP_URL } from "@calcom/lib/constants"; +import { getPlaceholderAvatar } from "@calcom/lib/defaultAvatarImage"; +import { getUserAvatarUrl } from "@calcom/lib/getAvatarUrl"; +import { useCompatSearchParams } from "@calcom/lib/hooks/useCompatSearchParams"; +import { useLocale } from "@calcom/lib/hooks/useLocale"; +import { IdentityProvider, MembershipRole, UserPermissionRole } from "@calcom/prisma/enums"; +import { trpc } from "@calcom/trpc/react"; +import type { VerticalTabItemProps } from "@calcom/ui"; +import { Badge, Button, ErrorBoundary, Skeleton, useMeta, VerticalTabItem } from "@calcom/ui"; +import { + ArrowLeft, + ChevronDown, + ChevronRight, + CreditCard, + Key, + Loader, + Lock, + Menu, + Plus, + Terminal, + User, + Users, +} from "@calcom/ui/components/icon"; + +const tabs: VerticalTabItemProps[] = [ + { + name: "my_account", + href: "/settings/my-account", + icon: User, + children: [ + { name: "profile", href: "/settings/my-account/profile" }, + { name: "general", href: "/settings/my-account/general" }, + { name: "calendars", href: "/settings/my-account/calendars" }, + { name: "conferencing", href: "/settings/my-account/conferencing" }, + { name: "appearance", href: "/settings/my-account/appearance" }, + // TODO + // { name: "referrals", href: "/settings/my-account/referrals" }, + ], + }, + { + name: "security", + href: "/settings/security", + icon: Key, + children: [ + { name: "password", href: "/settings/security/password" }, + { name: "impersonation", href: "/settings/security/impersonation" }, + { name: "2fa_auth", href: "/settings/security/two-factor-auth" }, + ], + }, + { + name: "billing", + href: "/settings/billing", + icon: CreditCard, + children: [{ name: "manage_billing", href: "/settings/billing" }], + }, + { + name: "developer", + href: "/settings/developer", + icon: Terminal, + children: [ + // + { name: "webhooks", href: "/settings/developer/webhooks" }, + { name: "api_keys", href: "/settings/developer/api-keys" }, + // TODO: Add profile level for embeds + // { name: "embeds", href: "/v2/settings/developer/embeds" }, + ], + }, + { + name: "organization", + href: "/settings/organizations", + children: [ + { + name: "profile", + href: "/settings/organizations/profile", + }, + { + name: "general", + href: "/settings/organizations/general", + }, + { + name: "members", + href: "/settings/organizations/members", + }, + { + name: "appearance", + href: "/settings/organizations/appearance", + }, + { + name: "billing", + href: "/settings/organizations/billing", + }, + ], + }, + { + name: "teams", + href: "/settings/teams", + icon: Users, + children: [], + }, + { + name: "admin", + href: "/settings/admin", + icon: Lock, + children: [ + // + { name: "features", href: "/settings/admin/flags" }, + { name: "license", href: "/auth/setup?step=1" }, + { name: "impersonation", href: "/settings/admin/impersonation" }, + { name: "apps", href: "/settings/admin/apps/calendar" }, + { name: "users", href: "/settings/admin/users" }, + { name: "organizations", href: "/settings/admin/organizations" }, + { name: "oAuth", href: "/settings/admin/oAuth" }, + ], + }, +]; + +tabs.find((tab) => { + // Add "SAML SSO" to the tab + if (tab.name === "security" && !HOSTED_CAL_FEATURES) { + tab.children?.push({ name: "sso_configuration", href: "/settings/security/sso" }); + } +}); + +// The following keys are assigned to admin only +const adminRequiredKeys = ["admin"]; +const organizationRequiredKeys = ["organization"]; + +const useTabs = () => { + const session = useSession(); + const { data: user } = trpc.viewer.me.useQuery(); + const orgBranding = useOrgBranding(); + + const isAdmin = session.data?.user.role === UserPermissionRole.ADMIN; + + tabs.map((tab) => { + if (tab.href === "/settings/my-account") { + tab.name = user?.name || "my_account"; + tab.icon = undefined; + tab.avatar = getUserAvatarUrl(user); + } else if (tab.href === "/settings/organizations") { + tab.name = orgBranding?.name || "organization"; + tab.avatar = `${orgBranding?.fullDomain}/org/${orgBranding?.slug}/avatar.png`; + } else if ( + tab.href === "/settings/security" && + user?.identityProvider === IdentityProvider.GOOGLE && + !user?.twoFactorEnabled + ) { + tab.children = tab?.children?.filter( + (childTab) => childTab.href !== "/settings/security/two-factor-auth" + ); + } + return tab; + }); + + // check if name is in adminRequiredKeys + return tabs.filter((tab) => { + if (organizationRequiredKeys.includes(tab.name)) return !!session.data?.user?.org; + + if (isAdmin) return true; + return !adminRequiredKeys.includes(tab.name); + }); +}; + +const BackButtonInSidebar = ({ name }: { name: string }) => { + return ( + <Link + href="/" + className="hover:bg-subtle [&[aria-current='page']]:bg-emphasis [&[aria-current='page']]:text-emphasis group-hover:text-default text-emphasis group my-6 flex h-6 max-h-6 w-full flex-row items-center rounded-md px-3 py-2 text-sm font-medium leading-4" + data-testid={`vertical-tab-${name}`}> + <ArrowLeft className="h-4 w-4 stroke-[2px] ltr:mr-[10px] rtl:ml-[10px] rtl:rotate-180 md:mt-0" /> + <Skeleton title={name} as="p" className="max-w-36 min-h-4 truncate" loadingClassName="ms-3"> + {name} + </Skeleton> + </Link> + ); +}; + +interface SettingsSidebarContainerProps { + className?: string; + navigationIsOpenedOnMobile?: boolean; + bannersHeight?: number; +} + +const SettingsSidebarContainer = ({ + className = "", + navigationIsOpenedOnMobile, + bannersHeight, +}: SettingsSidebarContainerProps) => { + const searchParams = useCompatSearchParams(); + const { t } = useLocale(); + const tabsWithPermissions = useTabs(); + const [teamMenuState, setTeamMenuState] = + useState<{ teamId: number | undefined; teamMenuOpen: boolean }[]>(); + const [otherTeamMenuState, setOtherTeamMenuState] = useState< + { + teamId: number | undefined; + teamMenuOpen: boolean; + }[] + >(); + const { data: teams } = trpc.viewer.teams.list.useQuery(); + const session = useSession(); + const { data: currentOrg } = trpc.viewer.organizations.listCurrent.useQuery(undefined, { + enabled: !!session.data?.user?.org, + }); + + const { data: otherTeams } = trpc.viewer.organizations.listOtherTeams.useQuery(); + + useEffect(() => { + if (teams) { + const teamStates = teams?.map((team) => ({ + teamId: team.id, + teamMenuOpen: String(team.id) === searchParams?.get("id"), + })); + setTeamMenuState(teamStates); + setTimeout(() => { + const tabMembers = Array.from(document.getElementsByTagName("a")).filter( + (bottom) => bottom.dataset.testid === "vertical-tab-Members" + )[1]; + tabMembers?.scrollIntoView({ behavior: "smooth" }); + }, 100); + } + }, [searchParams?.get("id"), teams]); + + // Same as above but for otherTeams + useEffect(() => { + if (otherTeams) { + const otherTeamStates = otherTeams?.map((team) => ({ + teamId: team.id, + teamMenuOpen: String(team.id) === searchParams?.get("id"), + })); + setOtherTeamMenuState(otherTeamStates); + setTimeout(() => { + // @TODO: test if this works for 2 dataset testids + const tabMembers = Array.from(document.getElementsByTagName("a")).filter( + (bottom) => bottom.dataset.testid === "vertical-tab-Members" + )[1]; + tabMembers?.scrollIntoView({ behavior: "smooth" }); + }, 100); + } + }, [searchParams?.get("id"), otherTeams]); + + const isOrgAdminOrOwner = + currentOrg && currentOrg?.user?.role && ["OWNER", "ADMIN"].includes(currentOrg?.user?.role); + + if (isOrgAdminOrOwner) { + const teamsIndex = tabsWithPermissions.findIndex((tab) => tab.name === "teams"); + + tabsWithPermissions.splice(teamsIndex + 1, 0, { + name: "other_teams", + href: "/settings/organizations/teams/other", + icon: Users, + children: [], + }); + } + + return ( + <nav + style={{ maxHeight: `calc(100vh - ${bannersHeight}px)`, top: `${bannersHeight}px` }} + className={classNames( + "no-scrollbar bg-muted fixed bottom-0 left-0 top-0 z-20 flex max-h-screen w-56 flex-col space-y-1 overflow-x-hidden overflow-y-scroll px-2 pb-3 transition-transform max-lg:z-10 lg:sticky lg:flex", + className, + navigationIsOpenedOnMobile + ? "translate-x-0 opacity-100" + : "-translate-x-full opacity-0 lg:translate-x-0 lg:opacity-100" + )} + aria-label="Tabs"> + <> + <BackButtonInSidebar name={t("back")} /> + {tabsWithPermissions.map((tab) => { + return ( + <React.Fragment key={tab.href}> + {!["teams", "other_teams"].includes(tab.name) && ( + <React.Fragment key={tab.href}> + <div className={`${!tab.children?.length ? "!mb-3" : ""}`}> + <div className="[&[aria-current='page']]:bg-emphasis [&[aria-current='page']]:text-emphasis text-default group flex h-9 w-full flex-row items-center rounded-md px-2 text-sm font-medium leading-none"> + {tab && tab.icon && ( + <tab.icon className="h-[16px] w-[16px] stroke-[2px] ltr:mr-3 rtl:ml-3 md:mt-0" /> + )} + {!tab.icon && tab?.avatar && ( + <img + className="h-4 w-4 rounded-full ltr:mr-3 rtl:ml-3" + src={tab?.avatar} + alt="User Avatar" + /> + )} + <Skeleton + title={tab.name} + as="p" + className="truncate text-sm font-medium leading-5" + loadingClassName="ms-3"> + {t(tab.name)} + </Skeleton> + </div> + </div> + <div className="my-3 space-y-0.5"> + {tab.children?.map((child, index) => ( + <VerticalTabItem + key={child.href} + name={t(child.name)} + isExternalLink={child.isExternalLink} + href={child.href || "/"} + textClassNames="px-3 text-emphasis font-medium text-sm" + className={`my-0.5 me-5 h-7 ${ + tab.children && index === tab.children?.length - 1 && "!mb-3" + }`} + disableChevron + /> + ))} + </div> + </React.Fragment> + )} + + {tab.name === "teams" && ( + <React.Fragment key={tab.href}> + <div className={`${!tab.children?.length ? "mb-3" : ""}`}> + <Link href={tab.href}> + <div className="hover:bg-subtle [&[aria-current='page']]:bg-emphasis [&[aria-current='page']]:text-emphasis group-hover:text-default text-default group flex h-9 w-full flex-row items-center rounded-md px-2 py-[10px] text-sm font-medium leading-none"> + {tab && tab.icon && ( + <tab.icon className="h-[16px] w-[16px] stroke-[2px] ltr:mr-3 rtl:ml-3 md:mt-0" /> + )} + <Skeleton + title={tab.name} + as="p" + className="truncate text-sm font-medium leading-5" + loadingClassName="ms-3"> + {t(isOrgAdminOrOwner ? "my_teams" : tab.name)} + </Skeleton> + </div> + </Link> + {teams && + teamMenuState && + teams.map((team, index: number) => { + if (!teamMenuState[index]) { + return null; + } + if (teamMenuState.some((teamState) => teamState.teamId === team.id)) + return ( + <Collapsible + className="cursor-pointer" + key={team.id} + open={teamMenuState[index].teamMenuOpen} + onOpenChange={() => + setTeamMenuState([ + ...teamMenuState, + (teamMenuState[index] = { + ...teamMenuState[index], + teamMenuOpen: !teamMenuState[index].teamMenuOpen, + }), + ]) + }> + <CollapsibleTrigger asChild> + <div + className="hover:bg-subtle [&[aria-current='page']]:bg-emphasis [&[aria-current='page']]:text-emphasis text-default flex h-9 w-full flex-row items-center rounded-md px-3 py-[10px] text-left text-sm font-medium leading-none" + onClick={() => + setTeamMenuState([ + ...teamMenuState, + (teamMenuState[index] = { + ...teamMenuState[index], + teamMenuOpen: !teamMenuState[index].teamMenuOpen, + }), + ]) + }> + <div className="me-3"> + {teamMenuState[index].teamMenuOpen ? ( + <ChevronDown className="h-4 w-4" /> + ) : ( + <ChevronRight className="h-4 w-4" /> + )} + </div> + {!team.parentId && ( + <img + src={getPlaceholderAvatar(team.logo, team?.name as string)} + className="h-[16px] w-[16px] self-start rounded-full stroke-[2px] ltr:mr-2 rtl:ml-2 md:mt-0" + alt={team.name || "Team logo"} + /> + )} + <p className="w-1/2 truncate leading-normal">{team.name}</p> + {!team.accepted && ( + <Badge className="ms-3" variant="orange"> + Inv. + </Badge> + )} + </div> + </CollapsibleTrigger> + <CollapsibleContent className="space-y-0.5"> + {team.accepted && ( + <VerticalTabItem + name={t("profile")} + href={`/settings/teams/${team.id}/profile`} + textClassNames="px-3 text-emphasis font-medium text-sm" + disableChevron + /> + )} + <VerticalTabItem + name={t("members")} + href={`/settings/teams/${team.id}/members`} + textClassNames="px-3 text-emphasis font-medium text-sm" + disableChevron + /> + {(team.role === MembershipRole.OWNER || + team.role === MembershipRole.ADMIN || + // eslint-disable-next-line @typescript-eslint/ban-ts-comment + // @ts-ignore this exists wtf? + (team.isOrgAdmin && team.isOrgAdmin)) && ( + <> + {/* TODO */} + {/* <VerticalTabItem + name={t("general")} + href={`${WEBAPP_URL}/settings/my-account/appearance`} + textClassNames="px-3 text-emphasis font-medium text-sm" + disableChevron + /> */} + <VerticalTabItem + name={t("appearance")} + href={`/settings/teams/${team.id}/appearance`} + textClassNames="px-3 text-emphasis font-medium text-sm" + disableChevron + /> + {/* Hide if there is a parent ID */} + {!team.parentId ? ( + <> + <VerticalTabItem + name={t("billing")} + href={`/settings/teams/${team.id}/billing`} + textClassNames="px-3 text-emphasis font-medium text-sm" + disableChevron + /> + {HOSTED_CAL_FEATURES && ( + <VerticalTabItem + name={t("saml_config")} + href={`/settings/teams/${team.id}/sso`} + textClassNames="px-3 text-emphasis font-medium text-sm" + disableChevron + /> + )} + </> + ) : null} + </> + )} + </CollapsibleContent> + </Collapsible> + ); + })} + {(!currentOrg || (currentOrg && currentOrg?.user?.role !== "MEMBER")) && ( + <VerticalTabItem + name={t("add_a_team")} + href={`${WEBAPP_URL}/settings/teams/new`} + textClassNames="px-3 items-center mt-2 text-emphasis font-medium text-sm" + icon={Plus} + disableChevron + /> + )} + </div> + </React.Fragment> + )} + + {tab.name === "other_teams" && ( + <React.Fragment key={tab.href}> + <div className={`${!tab.children?.length ? "mb-3" : ""}`}> + <Link href={tab.href}> + <div className="hover:bg-subtle [&[aria-current='page']]:bg-emphasis [&[aria-current='page']]:text-emphasis group-hover:text-default text-default group flex h-9 w-full flex-row items-center rounded-md px-2 py-[10px] text-sm font-medium leading-none"> + {tab && tab.icon && ( + <tab.icon className="h-[16px] w-[16px] stroke-[2px] ltr:mr-3 rtl:ml-3 md:mt-0" /> + )} + <Skeleton + title={t("org_admin_other_teams")} + as="p" + className="truncate text-sm font-medium leading-5" + loadingClassName="ms-3"> + {t("org_admin_other_teams")} + </Skeleton> + </div> + </Link> + {otherTeams && + otherTeamMenuState && + otherTeams.map((otherTeam, index: number) => { + if (!otherTeamMenuState[index]) { + return null; + } + if (otherTeamMenuState.some((teamState) => teamState.teamId === otherTeam.id)) + return ( + <Collapsible + className="cursor-pointer" + key={otherTeam.id} + open={otherTeamMenuState[index].teamMenuOpen} + onOpenChange={() => + setOtherTeamMenuState([ + ...otherTeamMenuState, + (otherTeamMenuState[index] = { + ...otherTeamMenuState[index], + teamMenuOpen: !otherTeamMenuState[index].teamMenuOpen, + }), + ]) + }> + <CollapsibleTrigger asChild> + <div + className="hover:bg-subtle [&[aria-current='page']]:bg-emphasis [&[aria-current='page']]:text-emphasis text-default flex h-9 w-full flex-row items-center rounded-md px-3 py-[10px] text-left text-sm font-medium leading-none" + onClick={() => + setOtherTeamMenuState([ + ...otherTeamMenuState, + (otherTeamMenuState[index] = { + ...otherTeamMenuState[index], + teamMenuOpen: !otherTeamMenuState[index].teamMenuOpen, + }), + ]) + }> + <div className="me-3"> + {otherTeamMenuState[index].teamMenuOpen ? ( + <ChevronDown className="h-4 w-4" /> + ) : ( + <ChevronRight className="h-4 w-4" /> + )} + </div> + {!otherTeam.parentId && ( + <img + src={getPlaceholderAvatar(otherTeam.logo, otherTeam?.name as string)} + className="h-[16px] w-[16px] self-start rounded-full stroke-[2px] ltr:mr-2 rtl:ml-2 md:mt-0" + alt={otherTeam.name || "Team logo"} + /> + )} + <p className="w-1/2 truncate leading-normal">{otherTeam.name}</p> + </div> + </CollapsibleTrigger> + <CollapsibleContent className="space-y-0.5"> + <VerticalTabItem + name={t("profile")} + href={`/settings/organizations/teams/other/${otherTeam.id}/profile`} + textClassNames="px-3 text-emphasis font-medium text-sm" + disableChevron + /> + <VerticalTabItem + name={t("members")} + href={`/settings/organizations/teams/other/${otherTeam.id}/members`} + textClassNames="px-3 text-emphasis font-medium text-sm" + disableChevron + /> + + <> + {/* TODO: enable appearance edit */} + {/* <VerticalTabItem + name={t("appearance")} + href={`/settings/organizations/teams/other/${otherTeam.id}/appearance`} + textClassNames="px-3 text-emphasis font-medium text-sm" + disableChevron + /> */} + </> + </CollapsibleContent> + </Collapsible> + ); + })} + </div> + </React.Fragment> + )} + </React.Fragment> + ); + })} + </> + </nav> + ); +}; + +const MobileSettingsContainer = (props: { onSideContainerOpen?: () => void }) => { + const { t } = useLocale(); + const router = useRouter(); + + return ( + <> + <nav className="bg-muted border-muted sticky top-0 z-20 flex w-full items-center justify-between border-b py-2 sm:relative lg:hidden"> + <div className="flex items-center space-x-3 "> + <Button StartIcon={Menu} color="minimal" variant="icon" onClick={props.onSideContainerOpen}> + <span className="sr-only">{t("show_navigation")}</span> + </Button> + + <button + className="hover:bg-emphasis flex items-center space-x-2 rounded-md px-3 py-1 rtl:space-x-reverse" + onClick={() => router.back()}> + <ArrowLeft className="text-default h-4 w-4" /> + <p className="text-emphasis font-semibold">{t("settings")}</p> + </button> + </div> + </nav> + </> + ); +}; + +export default function SettingsLayout({ + children, + ...rest +}: { children: React.ReactNode } & ComponentProps<typeof Shell>) { + const pathname = usePathname(); + const state = useState(false); + const { t } = useLocale(); + const [sideContainerOpen, setSideContainerOpen] = state; + + useEffect(() => { + const closeSideContainer = () => { + if (window.innerWidth >= 1024) { + setSideContainerOpen(false); + } + }; + + window.addEventListener("resize", closeSideContainer); + return () => { + window.removeEventListener("resize", closeSideContainer); + }; + }, []); + + useEffect(() => { + if (sideContainerOpen) { + setSideContainerOpen(!sideContainerOpen); + } + }, [pathname]); + + return ( + <Shell + withoutSeo={true} + flexChildrenContainer + hideHeadingOnMobile + {...rest} + SidebarContainer={ + <SidebarContainerElement + sideContainerOpen={sideContainerOpen} + setSideContainerOpen={setSideContainerOpen} + /> + } + drawerState={state} + MobileNavigationContainer={null} + TopNavContainer={ + <MobileSettingsContainer onSideContainerOpen={() => setSideContainerOpen(!sideContainerOpen)} /> + }> + <div className="flex flex-1 [&>*]:flex-1"> + <div className="mx-auto max-w-full justify-center lg:max-w-4xl"> + <ShellHeader /> + <ErrorBoundary> + <Suspense fallback={<Loader />}>{children}</Suspense> + </ErrorBoundary> + </div> + </div> + </Shell> + ); +} + +const SidebarContainerElement = ({ + sideContainerOpen, + bannersHeight, + setSideContainerOpen, +}: SidebarContainerElementProps) => { + const { t } = useLocale(); + return ( + <> + {/* Mobile backdrop */} + {sideContainerOpen && ( + <button + onClick={() => setSideContainerOpen(false)} + className="fixed left-0 top-0 z-10 h-full w-full bg-black/50"> + <span className="sr-only">{t("hide_navigation")}</span> + </button> + )} + <SettingsSidebarContainer + navigationIsOpenedOnMobile={sideContainerOpen} + bannersHeight={bannersHeight} + /> + </> + ); +}; + +type SidebarContainerElementProps = { + sideContainerOpen: boolean; + bannersHeight?: number; + setSideContainerOpen: React.Dispatch<React.SetStateAction<boolean>>; +}; + +export const getLayout = (page: React.ReactElement) => <SettingsLayout>{page}</SettingsLayout>; + +export function ShellHeader() { + const { meta } = useMeta(); + const { t, isLocaleReady } = useLocale(); + return ( + <> + <header + className={classNames( + "border-subtle mx-auto block justify-between sm:flex", + meta.borderInShellHeader && "rounded-t-lg border px-4 py-6 sm:px-6", + meta.borderInShellHeader === undefined && "mb-8 border-b pb-8" + )}> + <div className="flex w-full items-center"> + {meta.backButton && ( + <a href="javascript:history.back()"> + <ArrowLeft className="mr-7" /> + </a> + )} + <div> + {meta.title && isLocaleReady ? ( + <h1 className="font-cal text-emphasis mb-1 text-xl font-bold leading-5 tracking-wide"> + {t(meta.title)} + </h1> + ) : ( + <div className="bg-emphasis mb-1 h-5 w-24 animate-pulse rounded-lg" /> + )} + {meta.description && isLocaleReady ? ( + <p className="text-default text-sm ltr:mr-4 rtl:ml-4">{t(meta.description)}</p> + ) : ( + <div className="bg-emphasis h-5 w-32 animate-pulse rounded-lg" /> + )} + </div> + <div className="ms-auto flex-shrink-0">{meta.CTA}</div> + </div> + </header> + </> + ); +} diff --git a/packages/features/shell/Shell.tsx b/packages/features/shell/Shell.tsx index dc49b862ae..4df2c81993 100644 --- a/packages/features/shell/Shell.tsx +++ b/packages/features/shell/Shell.tsx @@ -4,27 +4,39 @@ import dynamic from "next/dynamic"; import Link from "next/link"; import { usePathname, useRouter } from "next/navigation"; import type { Dispatch, ReactElement, ReactNode, SetStateAction } from "react"; -import React, { cloneElement, Fragment, useEffect, useMemo, useRef, useState } from "react"; +import React, { cloneElement, Fragment, useEffect, useMemo, useState } from "react"; import { Toaster } from "react-hot-toast"; import dayjs from "@calcom/dayjs"; import { useIsEmbed } from "@calcom/embed-core/embed-iframe"; import UnconfirmedBookingBadge from "@calcom/features/bookings/UnconfirmedBookingBadge"; -import ImpersonatingBanner from "@calcom/features/ee/impersonation/components/ImpersonatingBanner"; -import { OrgUpgradeBanner } from "@calcom/features/ee/organizations/components/OrgUpgradeBanner"; +import ImpersonatingBanner, { + type ImpersonatingBannerProps, +} from "@calcom/features/ee/impersonation/components/ImpersonatingBanner"; +import { + OrgUpgradeBanner, + type OrgUpgradeBannerProps, +} from "@calcom/features/ee/organizations/components/OrgUpgradeBanner"; import { getOrgFullOrigin } from "@calcom/features/ee/organizations/lib/orgDomains"; import HelpMenuItem from "@calcom/features/ee/support/components/HelpMenuItem"; -import { TeamsUpgradeBanner } from "@calcom/features/ee/teams/components"; +import { TeamsUpgradeBanner, type TeamsUpgradeBannerProps } from "@calcom/features/ee/teams/components"; import { useFlagMap } from "@calcom/features/flags/context/provider"; import { KBarContent, KBarRoot, KBarTrigger } from "@calcom/features/kbar/Kbar"; import TimezoneChangeDialog from "@calcom/features/settings/TimezoneChangeDialog"; -import AdminPasswordBanner from "@calcom/features/users/components/AdminPasswordBanner"; -import VerifyEmailBanner from "@calcom/features/users/components/VerifyEmailBanner"; +import AdminPasswordBanner, { + type AdminPasswordBannerProps, +} from "@calcom/features/users/components/AdminPasswordBanner"; +import CalendarCredentialBanner, { + type CalendarCredentialBannerProps, +} from "@calcom/features/users/components/CalendarCredentialBanner"; +import VerifyEmailBanner, { + type VerifyEmailBannerProps, +} from "@calcom/features/users/components/VerifyEmailBanner"; import classNames from "@calcom/lib/classNames"; +import { TOP_BANNER_HEIGHT } from "@calcom/lib/constants"; import { APP_NAME, DESKTOP_APP_LINK, JOIN_DISCORD, ROADMAP, WEBAPP_URL } from "@calcom/lib/constants"; import getBrandColours from "@calcom/lib/getBrandColours"; import { useBookerUrl } from "@calcom/lib/hooks/useBookerUrl"; -import { useIsomorphicLayoutEffect } from "@calcom/lib/hooks/useIsomorphicLayoutEffect"; import { useLocale } from "@calcom/lib/hooks/useLocale"; import { isKeyInObject } from "@calcom/lib/isKeyInObject"; import type { User } from "@calcom/prisma/client"; @@ -131,38 +143,29 @@ function useRedirectToLoginIfUnauthenticated(isPublic = false) { }; } -function AppTop({ setBannersHeight }: { setBannersHeight: Dispatch<SetStateAction<number>> }) { - const bannerRef = useRef<HTMLDivElement | null>(null); +type BannerTypeProps = { + teamUpgradeBanner: TeamsUpgradeBannerProps; + orgUpgradeBanner: OrgUpgradeBannerProps; + verifyEmailBanner: VerifyEmailBannerProps; + adminPasswordBanner: AdminPasswordBannerProps; + impersonationBanner: ImpersonatingBannerProps; + calendarCredentialBanner: CalendarCredentialBannerProps; +}; - useIsomorphicLayoutEffect(() => { - const resizeObserver = new ResizeObserver((entries) => { - const { offsetHeight } = entries[0].target as HTMLElement; - setBannersHeight(offsetHeight); - }); +type BannerType = keyof BannerTypeProps; - const currentBannerRef = bannerRef.current; +type BannerComponent = { + [Key in BannerType]: (props: BannerTypeProps[Key]) => JSX.Element; +}; - if (currentBannerRef) { - resizeObserver.observe(currentBannerRef); - } - - return () => { - if (currentBannerRef) { - resizeObserver.unobserve(currentBannerRef); - } - }; - }, [bannerRef]); - - return ( - <div ref={bannerRef} className="sticky top-0 z-10 w-full divide-y divide-black"> - <TeamsUpgradeBanner /> - <OrgUpgradeBanner /> - <ImpersonatingBanner /> - <AdminPasswordBanner /> - <VerifyEmailBanner /> - </div> - ); -} +const BannerComponent: BannerComponent = { + teamUpgradeBanner: (props: TeamsUpgradeBannerProps) => <TeamsUpgradeBanner {...props} />, + orgUpgradeBanner: (props: OrgUpgradeBannerProps) => <OrgUpgradeBanner {...props} />, + verifyEmailBanner: (props: VerifyEmailBannerProps) => <VerifyEmailBanner {...props} />, + adminPasswordBanner: (props: AdminPasswordBannerProps) => <AdminPasswordBanner {...props} />, + impersonationBanner: (props: ImpersonatingBannerProps) => <ImpersonatingBanner {...props} />, + calendarCredentialBanner: (props: CalendarCredentialBannerProps) => <CalendarCredentialBanner {...props} />, +}; function useRedirectToOnboardingIfNeeded() { const router = useRouter(); @@ -188,10 +191,41 @@ function useRedirectToOnboardingIfNeeded() { }; } +type allBannerProps = { [Key in BannerType]: BannerTypeProps[Key]["data"] }; + +const useBanners = () => { + const { data: getUserTopBanners, isLoading } = trpc.viewer.getUserTopBanners.useQuery(); + const { data: userSession } = useSession(); + + if (isLoading || !userSession) return null; + + const isUserInactiveAdmin = userSession?.user.role === "INACTIVE_ADMIN"; + const userImpersonatedByUID = userSession?.user.impersonatedByUID; + + const userSessionBanners = { + adminPasswordBanner: isUserInactiveAdmin ? userSession : null, + impersonationBanner: userImpersonatedByUID ? userSession : null, + }; + + const allBanners: allBannerProps = Object.assign({}, getUserTopBanners, userSessionBanners); + + return allBanners; +}; + const Layout = (props: LayoutProps) => { - const [bannersHeight, setBannersHeight] = useState<number>(0); + const banners = useBanners(); + const pageTitle = typeof props.heading === "string" && !props.title ? props.heading : props.title; + const bannersHeight = useMemo(() => { + const activeBanners = + banners && + Object.entries(banners).filter(([_, value]) => { + return value && (!Array.isArray(value) || value.length > 0); + }); + return (activeBanners?.length ?? 0) * TOP_BANNER_HEIGHT; + }, [banners]); + return ( <> {!props.withoutSeo && ( @@ -207,7 +241,32 @@ const Layout = (props: LayoutProps) => { {/* todo: only run this if timezone is different */} <TimezoneChangeDialog /> <div className="flex min-h-screen flex-col"> - <AppTop setBannersHeight={setBannersHeight} /> + {banners && ( + <div className="sticky top-0 z-10 w-full divide-y divide-black"> + {Object.keys(banners).map((key) => { + if (key === "teamUpgradeBanner") { + const Banner = BannerComponent[key]; + return <Banner data={banners[key]} key={key} />; + } else if (key === "orgUpgradeBanner") { + const Banner = BannerComponent[key]; + return <Banner data={banners[key]} key={key} />; + } else if (key === "verifyEmailBanner") { + const Banner = BannerComponent[key]; + return <Banner data={banners[key]} key={key} />; + } else if (key === "adminPasswordBanner") { + const Banner = BannerComponent[key]; + return <Banner data={banners[key]} key={key} />; + } else if (key === "impersonationBanner") { + const Banner = BannerComponent[key]; + return <Banner data={banners[key]} key={key} />; + } else if (key === "calendarCredentialBanner") { + const Banner = BannerComponent[key]; + return <Banner data={banners[key]} key={key} />; + } + })} + </div> + )} + <div className="flex flex-1" data-testid="dashboard-shell"> {props.SidebarContainer ? ( cloneElement(props.SidebarContainer, { bannersHeight }) diff --git a/packages/features/tips/UpgradeTip.tsx b/packages/features/tips/UpgradeTip.tsx index b7778bc86f..d8c4a177d0 100644 --- a/packages/features/tips/UpgradeTip.tsx +++ b/packages/features/tips/UpgradeTip.tsx @@ -3,6 +3,7 @@ import type { ReactNode } from "react"; import { classNames } from "@calcom/lib"; import { useHasTeamPlan } from "@calcom/lib/hooks/useHasPaidPlan"; import { useLocale } from "@calcom/lib/hooks/useLocale"; +import { trpc } from "@calcom/trpc"; export function UpgradeTip({ dark, @@ -29,10 +30,14 @@ export function UpgradeTip({ }) { const { t } = useLocale(); const { isLoading, hasTeamPlan } = useHasTeamPlan(); + const { data } = trpc.viewer.teams.getUpgradeable.useQuery(); + const hasEnterprisePlan = false; //const { isLoading , hasEnterprisePlan } = useHasEnterprisePlan(); - if (plan === "team" && hasTeamPlan) return children; + const hasUnpublishedTeam = !!data?.[0]; + + if (plan === "team" && (hasTeamPlan || hasUnpublishedTeam)) return children; if (plan === "enterprise" && hasEnterprisePlan) return children; @@ -44,7 +49,7 @@ export function UpgradeTip({ <picture className="absolute min-h-[295px] w-full rounded-lg object-cover"> <source srcSet={`${background}-dark.jpg`} media="(prefers-color-scheme: dark)" /> <img - className="absolute min-h-[295px] w-full rounded-lg object-cover object-left md:object-center" + className="absolute min-h-[295px] w-full select-none rounded-lg object-cover object-left md:object-center" src={`${background}.jpg`} loading="lazy" alt={title} diff --git a/packages/features/users/components/AdminPasswordBanner.tsx b/packages/features/users/components/AdminPasswordBanner.tsx index 3ac73bd15d..7c01f1d9f4 100644 --- a/packages/features/users/components/AdminPasswordBanner.tsx +++ b/packages/features/users/components/AdminPasswordBanner.tsx @@ -1,12 +1,13 @@ -import { useSession } from "next-auth/react"; +import type { SessionContextValue } from "next-auth/react"; import Link from "next/link"; import { useLocale } from "@calcom/lib/hooks/useLocale"; import { TopBanner } from "@calcom/ui"; -function AdminPasswordBanner() { +export type AdminPasswordBannerProps = { data: SessionContextValue["data"] }; + +function AdminPasswordBanner({ data }: AdminPasswordBannerProps) { const { t } = useLocale(); - const { data } = useSession(); if (data?.user.role !== "INACTIVE_ADMIN") return null; diff --git a/packages/features/users/components/CalendarCredentialBanner.tsx b/packages/features/users/components/CalendarCredentialBanner.tsx new file mode 100644 index 0000000000..c20448d78b --- /dev/null +++ b/packages/features/users/components/CalendarCredentialBanner.tsx @@ -0,0 +1,31 @@ +import Link from "next/link"; + +import { useLocale } from "@calcom/lib/hooks/useLocale"; +import { type RouterOutputs } from "@calcom/trpc"; +import { TopBanner } from "@calcom/ui"; + +export type CalendarCredentialBannerProps = { + data: RouterOutputs["viewer"]["getUserTopBanners"]["calendarCredentialBanner"]; +}; + +function CalendarCredentialBanner({ data }: CalendarCredentialBannerProps) { + const { t } = useLocale(); + + if (!data) return null; + + return ( + <> + <TopBanner + text={`${t("something_went_wrong")} ${t("calendar_error")}`} + variant="error" + actions={ + <Link href="/apps/installed/calendar" className="border-b border-b-black"> + {t("check_here")} + </Link> + } + /> + </> + ); +} + +export default CalendarCredentialBanner; diff --git a/packages/features/users/components/VerifyEmailBanner.tsx b/packages/features/users/components/VerifyEmailBanner.tsx index cc8aebbff1..cdbf9125ff 100644 --- a/packages/features/users/components/VerifyEmailBanner.tsx +++ b/packages/features/users/components/VerifyEmailBanner.tsx @@ -1,23 +1,21 @@ -import { useSession } from "next-auth/react"; - import { APP_NAME } from "@calcom/lib/constants"; import { useLocale } from "@calcom/lib/hooks/useLocale"; import { trpc } from "@calcom/trpc"; -import useEmailVerifyCheck from "@calcom/trpc/react/hooks/useEmailVerifyCheck"; import { TopBanner, showToast } from "@calcom/ui"; import { Mail } from "@calcom/ui/components/icon"; import { useFlagMap } from "../../flags/context/provider"; -function VerifyEmailBanner() { +export type VerifyEmailBannerProps = { + data: boolean; +}; + +function VerifyEmailBanner({ data }: VerifyEmailBannerProps) { const flags = useFlagMap(); const { t } = useLocale(); - const { data, isLoading } = useEmailVerifyCheck(); const mutation = trpc.viewer.auth.resendVerifyEmail.useMutation(); - const session = useSession(); - const isLoggedIn = session?.data?.user; - if (!isLoggedIn || isLoading || data?.isVerified || !flags["email-verification"]) return null; + if (!data || !flags["email-verification"]) return null; return ( <> diff --git a/packages/features/webhooks/lib/cron.ts b/packages/features/webhooks/lib/cron.ts index 089ddbbc5a..913217b274 100644 --- a/packages/features/webhooks/lib/cron.ts +++ b/packages/features/webhooks/lib/cron.ts @@ -5,6 +5,8 @@ import dayjs from "@calcom/dayjs"; import { defaultHandler } from "@calcom/lib/server"; import prisma from "@calcom/prisma"; +import { jsonParse } from "./sendPayload"; + async function handler(req: NextApiRequest, res: NextApiResponse) { const apiKey = req.headers.authorization || req.query.apiKey; if (process.env.CRON_API_KEY !== apiKey) { @@ -27,6 +29,10 @@ async function handler(req: NextApiRequest, res: NextApiResponse) { await fetch(job.subscriberUrl, { method: "POST", body: job.payload, + headers: { + "Content-Type": + !job.payload || jsonParse(job.payload) ? "application/json" : "application/x-www-form-urlencoded", + }, }); } catch (error) { console.log(`Error running webhook trigger (retry count: ${job.retryCount}): ${error}`); diff --git a/packages/features/webhooks/lib/scheduleTrigger.ts b/packages/features/webhooks/lib/scheduleTrigger.ts index 5d78af9608..ab44805f21 100644 --- a/packages/features/webhooks/lib/scheduleTrigger.ts +++ b/packages/features/webhooks/lib/scheduleTrigger.ts @@ -4,6 +4,7 @@ import { v4 } from "uuid"; import { getHumanReadableLocationValue } from "@calcom/core/location"; import { getCalEventResponses } from "@calcom/features/bookings/lib/getCalEventResponses"; import logger from "@calcom/lib/logger"; +import { safeStringify } from "@calcom/lib/safeStringify"; import { getTranslation } from "@calcom/lib/server"; import prisma from "@calcom/prisma"; import type { ApiKey } from "@calcom/prisma/client"; @@ -75,7 +76,10 @@ export async function addSubscription({ const userId = appApiKey ? appApiKey.userId : account && !account.isTeam ? account.id : null; const teamId = appApiKey ? appApiKey.teamId : account && account.isTeam ? account.id : null; - log.error(`Error creating subscription for ${teamId ? `team ${teamId}` : `user ${userId}`}.`); + log.error( + `Error creating subscription for ${teamId ? `team ${teamId}` : `user ${userId}`}.`, + safeStringify(error) + ); } } @@ -157,7 +161,8 @@ export async function deleteSubscription({ log.error( `Error deleting subscription for user ${ teamId ? `team ${teamId}` : `userId ${userId}` - }, webhookId ${webhookId}` + }, webhookId ${webhookId}`, + safeStringify(err) ); } } @@ -260,7 +265,10 @@ export async function listBookings( const userId = appApiKey ? appApiKey.userId : account && !account.isTeam ? account.id : null; const teamId = appApiKey ? appApiKey.teamId : account && account.isTeam ? account.id : null; - log.error(`Error retrieving list of bookings for ${teamId ? `team ${teamId}` : `user ${userId}`}.`); + log.error( + `Error retrieving list of bookings for ${teamId ? `team ${teamId}` : `user ${userId}`}.`, + safeStringify(err) + ); } } diff --git a/packages/features/webhooks/lib/sendPayload.ts b/packages/features/webhooks/lib/sendPayload.ts index 7ff22d9577..dc6e76f1d2 100644 --- a/packages/features/webhooks/lib/sendPayload.ts +++ b/packages/features/webhooks/lib/sendPayload.ts @@ -87,7 +87,7 @@ function applyTemplate(template: string, data: WebhookDataType, contentType: Con return compiled; } -function jsonParse(jsonString: string) { +export function jsonParse(jsonString: string) { try { return JSON.parse(jsonString); } catch (e) { diff --git a/packages/lib/constants.ts b/packages/lib/constants.ts index f9fb122f34..c1fa5a6381 100644 --- a/packages/lib/constants.ts +++ b/packages/lib/constants.ts @@ -88,7 +88,7 @@ export const IS_STRIPE_ENABLED = !!( process.env.STRIPE_PRIVATE_KEY ); /** Self hosted shouldn't checkout when creating teams unless required */ -export const IS_TEAM_BILLING_ENABLED = IS_STRIPE_ENABLED && (!IS_SELF_HOSTED || HOSTED_CAL_FEATURES); +export const IS_TEAM_BILLING_ENABLED = IS_STRIPE_ENABLED && HOSTED_CAL_FEATURES; export const FULL_NAME_LENGTH_MAX_LIMIT = 50; export const MINUTES_TO_BOOK = process.env.NEXT_PUBLIC_MINUTES_TO_BOOK || "5"; @@ -108,6 +108,8 @@ export const APP_CREDENTIAL_SHARING_ENABLED = export const DEFAULT_LIGHT_BRAND_COLOR = "#292929"; export const DEFAULT_DARK_BRAND_COLOR = "#fafafa"; +export const TOP_BANNER_HEIGHT = 40; + const defaultOnNaN = (testedValue: number, defaultValue: number) => !Number.isNaN(testedValue) ? testedValue : defaultValue; @@ -119,3 +121,6 @@ export const AB_TEST_BUCKET_PROBABILITY = defaultOnNaN( export const IS_PREMIUM_USERNAME_ENABLED = (IS_CALCOM || (process.env.NEXT_PUBLIC_IS_E2E && IS_STRIPE_ENABLED)) && process.env.NEXT_PUBLIC_STRIPE_PREMIUM_PLAN_PRICE_MONTHLY; + +// Max number of invites to join a team/org that can be sent at once +export const MAX_NB_INVITES = 100; diff --git a/packages/lib/date-ranges.ts b/packages/lib/date-ranges.ts index 1032bba1bd..fabd7cb5c7 100644 --- a/packages/lib/date-ranges.ts +++ b/packages/lib/date-ranges.ts @@ -21,9 +21,10 @@ export function processWorkingHours({ dateFrom: Dayjs; dateTo: Dayjs; }) { + const utcDateTo = dateTo.utc(); const results = []; - for (let date = dateFrom.tz(timeZone).startOf("day"); dateTo.isAfter(date); date = date.add(1, "day")) { - const fromOffset = dateFrom.tz(timeZone).startOf("day").utcOffset(); + for (let date = dateFrom.startOf("day"); utcDateTo.isAfter(date); date = date.add(1, "day")) { + const fromOffset = dateFrom.startOf("day").utcOffset(); const offset = date.tz(timeZone).utcOffset(); // it always has to be start of the day (midnight) even when DST changes @@ -44,7 +45,7 @@ export function processWorkingHours({ start = start.add(offsetDiff, "minute"); end = end.add(offsetDiff, "minute"); - const startResult = dayjs.max(start, dateFrom.tz(timeZone)); + const startResult = dayjs.max(start, dateFrom); const endResult = dayjs.min(end, dateTo.tz(timeZone)); if (endResult.isBefore(startResult)) { @@ -92,10 +93,13 @@ export function buildDateRanges({ dateFrom: Dayjs; dateTo: Dayjs; }): DateRange[] { + const dateFromOrganizerTZ = dateFrom.tz(timeZone); const groupedWorkingHours = groupByDate( availability.reduce((processed: DateRange[], item) => { if ("days" in item) { - processed = processed.concat(processWorkingHours({ item, timeZone, dateFrom, dateTo })); + processed = processed.concat( + processWorkingHours({ item, timeZone, dateFrom: dateFromOrganizerTZ, dateTo }) + ); } return processed; }, []) diff --git a/packages/lib/defaultEvents.ts b/packages/lib/defaultEvents.ts index 5243b63ebd..ad0857f3d1 100644 --- a/packages/lib/defaultEvents.ts +++ b/packages/lib/defaultEvents.ts @@ -81,6 +81,7 @@ const commons = { seatsPerTimeSlot: null, seatsShowAttendees: null, seatsShowAvailabilityCount: null, + onlyShowFirstAvailableSlot: false, id: 0, hideCalendarNotes: false, recurringEvent: null, diff --git a/packages/lib/deriveAppDictKeyFromType.ts b/packages/lib/deriveAppDictKeyFromType.ts index a1313a4d67..2b21325231 100644 --- a/packages/lib/deriveAppDictKeyFromType.ts +++ b/packages/lib/deriveAppDictKeyFromType.ts @@ -32,7 +32,7 @@ export function deriveAppDictKeyFromType(appType: string, dict: Record<string, u return appType; - // const categories = ["video", "other", "calendar", "web3", "payment", "messaging"]; + // const categories = ["video", "other", "calendar", "payment", "messaging"]; // // Instead of doing a blind split at _ and using the first part, apply this hack only on strings that match legacy type. // // Transform zoomvideo to zoom diff --git a/packages/lib/getEventTypeById.ts b/packages/lib/getEventTypeById.ts index be26508d9f..9606d35108 100644 --- a/packages/lib/getEventTypeById.ts +++ b/packages/lib/getEventTypeById.ts @@ -101,6 +101,7 @@ export default async function getEventTypeById({ slotInterval: true, hashedLink: true, bookingLimits: true, + onlyShowFirstAvailableSlot: true, durationLimits: true, successRedirectUrl: true, currency: true, diff --git a/packages/lib/hooks/useTypedQuery.ts b/packages/lib/hooks/useTypedQuery.ts index 7fb61414d0..4d51dd2d97 100644 --- a/packages/lib/hooks/useTypedQuery.ts +++ b/packages/lib/hooks/useTypedQuery.ts @@ -1,5 +1,7 @@ +"use client"; + import { usePathname, useRouter } from "next/navigation"; -import { useCallback, useMemo } from "react"; +import { useCallback, useMemo, useEffect } from "react"; import { z } from "zod"; import { useRouterQuery } from "./useRouterQuery"; @@ -46,6 +48,17 @@ export function useTypedQuery<T extends z.AnyZodObject>(schema: T) { return {} as Output; }, []); + useEffect(() => { + if (parsedQuerySchema.success && parsedQuerySchema.data) { + Object.entries(parsedQuerySchema.data).forEach(([key, value]) => { + if (key in unparsedQuery || !value) return; + const search = new URLSearchParams(parsedQuery); + search.set(String(key), String(value)); + router.replace(`${pathname}?${search.toString()}`); + }); + } + }, [parsedQuerySchema, schema, router, pathname, unparsedQuery, parsedQuery]); + if (parsedQuerySchema.success) parsedQuery = parsedQuerySchema.data; else if (!parsedQuerySchema.success) console.error(parsedQuerySchema.error); diff --git a/packages/lib/redactError.ts b/packages/lib/redactError.ts index de9fd404b3..dc4d890ac3 100644 --- a/packages/lib/redactError.ts +++ b/packages/lib/redactError.ts @@ -1,6 +1,7 @@ import { Prisma } from "@prisma/client"; import logger from "@calcom/lib/logger"; +import { safeStringify } from "@calcom/lib/safeStringify"; const log = logger.getSubLogger({ prefix: [`[[redactError]`] }); @@ -19,7 +20,7 @@ export const redactError = <T extends Error | unknown>(error: T) => { } log.debug("Type of Error: ", error.constructor); if (shouldRedact(error)) { - log.error("Error: ", JSON.stringify(error)); + log.error("Error: ", safeStringify(error)); return new Error("An error occured while querying the database."); } return error; diff --git a/packages/lib/serverConfig.ts b/packages/lib/serverConfig.ts index 09feb75661..8a13b31ff2 100644 --- a/packages/lib/serverConfig.ts +++ b/packages/lib/serverConfig.ts @@ -6,6 +6,20 @@ import { isENVDev } from "@calcom/lib/env"; import { getAdditionalEmailHeaders } from "./getAdditionalEmailHeaders"; function detectTransport(): SendmailTransport.Options | SMTPConnection.Options | string { + if (process.env.RESEND_API_KEY) { + const transport = { + host: "smtp.resend.com", + secure: true, + port: 465, + auth: { + user: "resend", + pass: process.env.RESEND_API_KEY, + }, + }; + + return transport; + } + if (process.env.EMAIL_SERVER) { return process.env.EMAIL_SERVER; } diff --git a/packages/lib/telemetry.ts b/packages/lib/telemetry.ts index 5e4636eaf8..757ab05161 100644 --- a/packages/lib/telemetry.ts +++ b/packages/lib/telemetry.ts @@ -18,6 +18,7 @@ export const telemetryEventTypes = { onboardingFinished: "onboarding_finished", onboardingStarted: "onboarding_started", signup: "signup", + team_checkout_session_created: "team_checkout_session_created", team_created: "team_created", slugReplacementAction: "slug_replacement_action", org_created: "org_created", diff --git a/packages/lib/test/builder.ts b/packages/lib/test/builder.ts index 4a2f79c891..f766d74578 100644 --- a/packages/lib/test/builder.ts +++ b/packages/lib/test/builder.ts @@ -92,6 +92,7 @@ export const buildEventType = (eventType?: Partial<EventType>): EventType => { minimumBookingNotice: 120, beforeEventBuffer: 0, afterEventBuffer: 0, + onlyShowFirstAvailableSlot: false, seatsPerTimeSlot: null, seatsShowAttendees: null, seatsShowAvailabilityCount: null, diff --git a/packages/prisma/migrations/20231202181233_adding_show_first_available_timeslot/migration.sql b/packages/prisma/migrations/20231202181233_adding_show_first_available_timeslot/migration.sql new file mode 100644 index 0000000000..9cb3a0d629 --- /dev/null +++ b/packages/prisma/migrations/20231202181233_adding_show_first_available_timeslot/migration.sql @@ -0,0 +1,2 @@ +-- AlterTable +ALTER TABLE "EventType" ADD COLUMN "onlyShowFirstAvailableSlot" BOOLEAN NOT NULL DEFAULT false; diff --git a/packages/prisma/schema.prisma b/packages/prisma/schema.prisma index 8cc61111fa..ef3e541070 100644 --- a/packages/prisma/schema.prisma +++ b/packages/prisma/schema.prisma @@ -98,6 +98,7 @@ model EventType { beforeEventBuffer Int @default(0) afterEventBuffer Int @default(0) seatsPerTimeSlot Int? + onlyShowFirstAvailableSlot Boolean @default(false) seatsShowAttendees Boolean? @default(false) seatsShowAvailabilityCount Boolean? @default(true) schedulingType SchedulingType? diff --git a/packages/prisma/zod-utils.ts b/packages/prisma/zod-utils.ts index dba23604b7..b5a2296a6f 100644 --- a/packages/prisma/zod-utils.ts +++ b/packages/prisma/zod-utils.ts @@ -585,6 +585,7 @@ export const allManagedEventTypeProps: { [k in keyof Omit<Prisma.EventTypeSelect destinationCalendar: true, periodCountCalendarDays: true, bookingLimits: true, + onlyShowFirstAvailableSlot: true, slotInterval: true, scheduleId: true, workflows: true, diff --git a/packages/trpc/react/shared.ts b/packages/trpc/react/shared.ts index 0cc50c7959..14598e7011 100644 --- a/packages/trpc/react/shared.ts +++ b/packages/trpc/react/shared.ts @@ -1 +1,29 @@ export * from "@trpc/react-query/shared"; + +export const ENDPOINTS = [ + "admin", + "apiKeys", + "appRoutingForms", + "apps", + "auth", + "availability", + "appBasecamp3", + "bookings", + "deploymentSetup", + "eventTypes", + "features", + "insights", + "payments", + "public", + "saml", + "slots", + "teams", + "organizations", + "users", + "viewer", + "webhook", + "workflows", + "appsRouter", + "googleWorkspace", + "oAuth", +] as const; diff --git a/packages/trpc/react/trpc.ts b/packages/trpc/react/trpc.ts index 6b34bfb2b3..3d1167b775 100644 --- a/packages/trpc/react/trpc.ts +++ b/packages/trpc/react/trpc.ts @@ -11,38 +11,13 @@ import { createTRPCNext } from "../next"; import type { TRPCClientErrorLike } from "../react"; import type { inferRouterInputs, inferRouterOutputs, Maybe } from "../server"; import type { AppRouter } from "../server/routers/_app"; +import { ENDPOINTS } from "./shared"; /** * We deploy our tRPC router on multiple lambdas to keep number of imports as small as possible * TODO: Make this dynamic based on folders in trpc server? */ -const ENDPOINTS = [ - "admin", - "apiKeys", - "appRoutingForms", - "apps", - "auth", - "availability", - "appBasecamp3", - "bookings", - "deploymentSetup", - "eventTypes", - "features", - "insights", - "payments", - "public", - "saml", - "slots", - "teams", - "organizations", - "users", - "viewer", - "webhook", - "workflows", - "appsRouter", - "googleWorkspace", - "oAuth", -] as const; + export type Endpoint = (typeof ENDPOINTS)[number]; // eslint-disable-next-line @typescript-eslint/no-explicit-any diff --git a/packages/trpc/server/createContext.ts b/packages/trpc/server/createContext.ts index 042fc4c738..b1f7a68b21 100644 --- a/packages/trpc/server/createContext.ts +++ b/packages/trpc/server/createContext.ts @@ -4,6 +4,7 @@ import type { Session } from "next-auth"; import type { serverSideTranslations } from "next-i18next/serverSideTranslations"; import { getLocale } from "@calcom/features/auth/lib/getLocale"; +import getIP from "@calcom/lib/getIP"; import prisma, { readonlyPrisma } from "@calcom/prisma"; import type { SelectedCalendar, User as PrismaUser } from "@calcom/prisma/client"; @@ -12,6 +13,7 @@ import type { CreateNextContextOptions } from "@trpc/server/adapters/next"; type CreateContextOptions = CreateNextContextOptions | GetServerSidePropsContext; export type CreateInnerContextOptions = { + sourceIp?: string; session?: Session | null; locale: string; user?: @@ -64,8 +66,12 @@ export async function createContextInner(opts: CreateInnerContextOptions) { */ export const createContext = async ({ req, res }: CreateContextOptions, sessionGetter?: GetSessionFn) => { const locale = await getLocale(req); + + // This type may not be accurate if this request is coming from SSG init but they both should satisfy the requirements of getIP. + // TODO: @sean - figure out a way to make getIP be happy with trpc req. params + const sourceIp = getIP(req as NextApiRequest); const session = !!sessionGetter ? await sessionGetter({ req, res }) : null; - const contextInner = await createContextInner({ locale, session }); + const contextInner = await createContextInner({ locale, session, sourceIp }); return { ...contextInner, req, diff --git a/packages/trpc/server/routers/loggedInViewer/_router.tsx b/packages/trpc/server/routers/loggedInViewer/_router.tsx index 1c96204997..5dc20024bb 100644 --- a/packages/trpc/server/routers/loggedInViewer/_router.tsx +++ b/packages/trpc/server/routers/loggedInViewer/_router.tsx @@ -44,6 +44,7 @@ type AppsRouterHandlerCache = { getUsersDefaultConferencingApp?: typeof import("./getUsersDefaultConferencingApp.handler").getUsersDefaultConferencingAppHandler; updateUserDefaultConferencingApp?: typeof import("./updateUserDefaultConferencingApp.handler").updateUserDefaultConferencingAppHandler; teamsAndUserProfilesQuery?: typeof import("./teamsAndUserProfilesQuery.handler").teamsAndUserProfilesQuery; + getUserTopBanners?: typeof import("./getUserTopBanners.handler").getUserTopBannersHandler; }; const UNSTABLE_HANDLER_CACHE: AppsRouterHandlerCache = {}; @@ -340,6 +341,21 @@ export const loggedInViewerRouter = router({ return UNSTABLE_HANDLER_CACHE.getCalVideoRecordings({ ctx, input }); }), + getUserTopBanners: authedProcedure.query(async ({ ctx }) => { + if (!UNSTABLE_HANDLER_CACHE.getUserTopBanners) { + UNSTABLE_HANDLER_CACHE.getUserTopBanners = ( + await import("./getUserTopBanners.handler") + ).getUserTopBannersHandler; + } + + // Unreachable code but required for type safety + if (!UNSTABLE_HANDLER_CACHE.getUserTopBanners) { + throw new Error("Failed to load handler"); + } + + return UNSTABLE_HANDLER_CACHE.getUserTopBanners({ ctx }); + }), + getDownloadLinkOfCalVideoRecordings: authedProcedure .input(ZGetDownloadLinkOfCalVideoRecordingsInputSchema) .query(async ({ ctx, input }) => { diff --git a/packages/trpc/server/routers/loggedInViewer/getUserTopBanners.handler.ts b/packages/trpc/server/routers/loggedInViewer/getUserTopBanners.handler.ts new file mode 100644 index 0000000000..c81a00452f --- /dev/null +++ b/packages/trpc/server/routers/loggedInViewer/getUserTopBanners.handler.ts @@ -0,0 +1,57 @@ +import { getCalendarCredentials, getConnectedCalendars } from "@calcom/core/CalendarManager"; +import { prisma } from "@calcom/prisma"; +import { credentialForCalendarServiceSelect } from "@calcom/prisma/selects/credential"; +import type { TrpcSessionUser } from "@calcom/trpc/server/trpc"; + +import { checkIfOrgNeedsUpgradeHandler } from "../viewer/organizations/checkIfOrgNeedsUpgrade.handler"; +import { getUpgradeableHandler } from "../viewer/teams/getUpgradeable.handler"; +import { shouldVerifyEmailHandler } from "./shouldVerifyEmail.handler"; + +type Props = { + ctx: { + user: NonNullable<TrpcSessionUser>; + }; +}; + +const checkInvalidGoogleCalendarCredentials = async ({ ctx }: Props) => { + const userCredentials = await prisma.credential.findMany({ + where: { + userId: ctx.user.id, + type: "google_calendar", + }, + select: credentialForCalendarServiceSelect, + }); + + const calendarCredentials = getCalendarCredentials(userCredentials); + + const { connectedCalendars } = await getConnectedCalendars( + calendarCredentials, + ctx.user.selectedCalendars, + ctx.user.destinationCalendar?.externalId + ); + + return connectedCalendars.some((calendar) => !!calendar.error); +}; + +export const getUserTopBannersHandler = async ({ ctx }: Props) => { + const upgradeableTeamMememberships = getUpgradeableHandler({ ctx }); + const upgradeableOrgMememberships = checkIfOrgNeedsUpgradeHandler({ ctx }); + const shouldEmailVerify = shouldVerifyEmailHandler({ ctx }); + const isInvalidCalendarCredential = checkInvalidGoogleCalendarCredentials({ ctx }); + + const [teamUpgradeBanner, orgUpgradeBanner, verifyEmailBanner, calendarCredentialBanner] = + await Promise.allSettled([ + upgradeableTeamMememberships, + upgradeableOrgMememberships, + shouldEmailVerify, + isInvalidCalendarCredential, + ]); + + return { + teamUpgradeBanner: teamUpgradeBanner.status === "fulfilled" ? teamUpgradeBanner.value : [], + orgUpgradeBanner: orgUpgradeBanner.status === "fulfilled" ? orgUpgradeBanner.value : [], + verifyEmailBanner: verifyEmailBanner.status === "fulfilled" ? !verifyEmailBanner.value.isVerified : false, + calendarCredentialBanner: + calendarCredentialBanner.status === "fulfilled" ? calendarCredentialBanner.value : false, + }; +}; diff --git a/packages/trpc/server/routers/viewer/bookings/requestReschedule.handler.ts b/packages/trpc/server/routers/viewer/bookings/requestReschedule.handler.ts index 16f9d3a316..29ed6c12d2 100644 --- a/packages/trpc/server/routers/viewer/bookings/requestReschedule.handler.ts +++ b/packages/trpc/server/routers/viewer/bookings/requestReschedule.handler.ts @@ -80,7 +80,7 @@ export const requestRescheduleHandler = async ({ ctx, input }: RequestReschedule throw new TRPCError({ code: "FORBIDDEN", message: "Booking to reschedule doesn't have an owner" }); } - if (!bookingToReschedule.eventType) { + if (!bookingToReschedule.eventType && !bookingToReschedule.dynamicEventSlugRef) { throw new TRPCError({ code: "FORBIDDEN", message: "EventType not found for current booking." }); } @@ -192,7 +192,7 @@ export const requestRescheduleHandler = async ({ ctx, input }: RequestReschedule director.setBuilder(builder); director.setExistingBooking(bookingToReschedule); cancellationReason && director.setCancellationReason(cancellationReason); - if (event) { + if (Object.keys(event).length) { await director.buildForRescheduleEmail(); } else { await director.buildWithoutEventTypeForRescheduleEmail(); diff --git a/packages/trpc/server/routers/viewer/organizations/getMembers.handler.ts b/packages/trpc/server/routers/viewer/organizations/getMembers.handler.ts index 1225ffdabf..2a29b001d0 100644 --- a/packages/trpc/server/routers/viewer/organizations/getMembers.handler.ts +++ b/packages/trpc/server/routers/viewer/organizations/getMembers.handler.ts @@ -50,6 +50,24 @@ export const getMembersHandler = async ({ input, ctx }: CreateOptions) => { }, }, }); + + if (teamIdToExclude && teamQuery?.members) { + const excludedteamUsers = await prisma.team.findUnique({ + where: { + id: teamIdToExclude, + }, + select: { + members: { + select: { + userId: true, + }, + }, + }, + }); + const excludedUserIds = excludedteamUsers?.members.map((item) => item.userId) ?? []; + teamQuery.members = teamQuery?.members.filter((member) => !excludedUserIds.includes(member.userId)); + } + return teamQuery?.members || []; }; diff --git a/packages/trpc/server/routers/viewer/organizations/listOtherTeamMembers.handler.ts b/packages/trpc/server/routers/viewer/organizations/listOtherTeamMembers.handler.ts index 1c4d332e62..d9634a908f 100644 --- a/packages/trpc/server/routers/viewer/organizations/listOtherTeamMembers.handler.ts +++ b/packages/trpc/server/routers/viewer/organizations/listOtherTeamMembers.handler.ts @@ -8,8 +8,9 @@ import type { TrpcSessionUser } from "../../../trpc"; export const ZListOtherTeamMembersSchema = z.object({ teamId: z.number(), query: z.string().optional(), - limit: z.number().optional(), + limit: z.number(), offset: z.number().optional(), + cursor: z.number().nullish(), // <-- "cursor" needs to exist when using useInfiniteQuery, but can be any type }); export type TListOtherTeamMembersSchema = z.infer<typeof ZListOtherTeamMembersSchema>; @@ -25,11 +26,12 @@ export const listOtherTeamMembers = async ({ input }: ListOptions) => { const whereConditional: Prisma.MembershipWhereInput = { teamId: input.teamId, }; - const { limit = 20 } = input; - let { offset = 0 } = input; + // const { limit = 20 } = input; + // let { offset = 0 } = input; + + const { cursor, limit } = input; if (input.query) { - offset = 0; whereConditional.user = { OR: [ { @@ -73,11 +75,19 @@ export const listOtherTeamMembers = async ({ input }: ListOptions) => { }, distinct: ["userId"], orderBy: { role: "desc" }, - take: limit, - skip: offset, + cursor: cursor ? { id: cursor } : undefined, + take: limit + 1, // We take +1 as itll be used for the next cursor }); + let nextCursor: typeof cursor | undefined = undefined; + if (members && members.length > limit) { + const nextItem = members.pop(); + nextCursor = nextItem?.id || null; + } - return members; + return { + rows: members || [], + nextCursor, + }; }; export default listOtherTeamMembers; diff --git a/packages/trpc/server/routers/viewer/slots/util.ts b/packages/trpc/server/routers/viewer/slots/util.ts index fbd63249b1..52e0f6932c 100644 --- a/packages/trpc/server/routers/viewer/slots/util.ts +++ b/packages/trpc/server/routers/viewer/slots/util.ts @@ -157,6 +157,7 @@ export async function getEventType( periodType: true, periodStartDate: true, periodEndDate: true, + onlyShowFirstAvailableSlot: true, periodCountCalendarDays: true, periodDays: true, metadata: true, @@ -292,7 +293,7 @@ export async function getAvailableSlots({ input, ctx }: GetScheduleOptions) { }` ); const getStartTime = (startTimeInput: string, timeZone?: string) => { - const startTimeMin = dayjs.utc().add(eventType.minimumBookingNotice, "minutes"); + const startTimeMin = dayjs.utc().add(eventType.minimumBookingNotice || 1, "minutes"); const startTime = timeZone === "Etc/GMT" ? dayjs.utc(startTimeInput) : dayjs(startTimeInput).tz(timeZone); return startTimeMin.isAfter(startTime) ? startTimeMin.tz(timeZone) : startTime; @@ -327,8 +328,8 @@ export async function getAvailableSlots({ input, ctx }: GetScheduleOptions) { input.rescheduleUid && durationToUse ? endTime.add(durationToUse, "minute").toDate() : endTime.toDate(); const sharedQuery = { - startTime: { gte: startTimeDate }, - endTime: { lte: endTimeDate }, + startTime: { lte: endTimeDate }, + endTime: { gte: startTimeDate }, status: { in: [BookingStatus.ACCEPTED], }, @@ -368,6 +369,7 @@ export async function getAvailableSlots({ input, ctx }: GetScheduleOptions) { eventType: { select: { id: true, + onlyShowFirstAvailableSlot: true, afterEventBuffer: true, beforeEventBuffer: true, seatsPerTimeSlot: true, @@ -577,6 +579,9 @@ export async function getAvailableSlots({ input, ctx }: GetScheduleOptions) { const dateString = formatter.format(time.toDate()); r[dateString] = r[dateString] || []; + if (eventType.onlyShowFirstAvailableSlot && r[dateString].length > 0) { + return r; + } r[dateString].push({ ...passThroughProps, time: time.toISOString(), diff --git a/packages/trpc/server/routers/viewer/teams/_router.tsx b/packages/trpc/server/routers/viewer/teams/_router.tsx index 5c43eb899b..174dd335a0 100644 --- a/packages/trpc/server/routers/viewer/teams/_router.tsx +++ b/packages/trpc/server/routers/viewer/teams/_router.tsx @@ -1,5 +1,5 @@ import authedProcedure from "../../../procedures/authedProcedure"; -import { router } from "../../../trpc"; +import { importHandler, router } from "../../../trpc"; import { ZAcceptOrLeaveInputSchema } from "./acceptOrLeave.schema"; import { ZChangeMemberRoleInputSchema } from "./changeMemberRole.schema"; import { ZCreateInputSchema } from "./create.schema"; @@ -20,457 +20,139 @@ import { ZSetInviteExpirationInputSchema } from "./setInviteExpiration.schema"; import { ZUpdateInputSchema } from "./update.schema"; import { ZUpdateMembershipInputSchema } from "./updateMembership.schema"; -type TeamsRouterHandlerCache = { - get?: typeof import("./get.handler").getHandler; - list?: typeof import("./list.handler").listHandler; - listOwnedTeams?: typeof import("./listOwnedTeams.handler").listOwnedTeamsHandler; - create?: typeof import("./create.handler").createHandler; - update?: typeof import("./update.handler").updateHandler; - delete?: typeof import("./delete.handler").deleteHandler; - removeMember?: typeof import("./removeMember.handler").removeMemberHandler; - inviteMember?: typeof import("./inviteMember/inviteMember.handler").inviteMemberHandler; - acceptOrLeave?: typeof import("./acceptOrLeave.handler").acceptOrLeaveHandler; - changeMemberRole?: typeof import("./changeMemberRole.handler").changeMemberRoleHandler; - getMemberAvailability?: typeof import("./getMemberAvailability.handler").getMemberAvailabilityHandler; - getMembershipbyUser?: typeof import("./getMembershipbyUser.handler").getMembershipbyUserHandler; - updateMembership?: typeof import("./updateMembership.handler").updateMembershipHandler; - publish?: typeof import("./publish.handler").publishHandler; - getUpgradeable?: typeof import("./getUpgradeable.handler").getUpgradeableHandler; - listMembers?: typeof import("./listMembers.handler").listMembersHandler; - hasTeamPlan?: typeof import("./hasTeamPlan.handler").hasTeamPlanHandler; - listInvites?: typeof import("./listInvites.handler").listInvitesHandler; - createInvite?: typeof import("./createInvite.handler").createInviteHandler; - setInviteExpiration?: typeof import("./setInviteExpiration.handler").setInviteExpirationHandler; - deleteInvite?: typeof import("./deleteInvite.handler").deleteInviteHandler; - inviteMemberByToken?: typeof import("./inviteMemberByToken.handler").inviteMemberByTokenHandler; - hasEditPermissionForUser?: typeof import("./hasEditPermissionForUser.handler").hasEditPermissionForUser; - resendInvitation?: typeof import("./resendInvitation.handler").resendInvitationHandler; -}; - -const UNSTABLE_HANDLER_CACHE: TeamsRouterHandlerCache = {}; +const NAMESPACE = "teams"; +const namespaced = (s: string) => `${NAMESPACE}.${s}`; export const viewerTeamsRouter = router({ // Retrieves team by id - get: authedProcedure.input(ZGetInputSchema).query(async ({ ctx, input }) => { - if (!UNSTABLE_HANDLER_CACHE.get) { - UNSTABLE_HANDLER_CACHE.get = await import("./get.handler").then((mod) => mod.getHandler); - } - - // Unreachable code but required for type safety - if (!UNSTABLE_HANDLER_CACHE.get) { - throw new Error("Failed to load handler"); - } - - return UNSTABLE_HANDLER_CACHE.get({ - ctx, - input, - }); + get: authedProcedure.input(ZGetInputSchema).query(async (opts) => { + const handler = await importHandler(namespaced("get"), () => import("./get.handler")); + return handler(opts); }), - // Returns teams I a member of - list: authedProcedure.query(async ({ ctx }) => { - if (!UNSTABLE_HANDLER_CACHE.list) { - UNSTABLE_HANDLER_CACHE.list = await import("./list.handler").then((mod) => mod.listHandler); - } - - // Unreachable code but required for type safety - if (!UNSTABLE_HANDLER_CACHE.list) { - throw new Error("Failed to load handler"); - } - - return UNSTABLE_HANDLER_CACHE.list({ - ctx, - }); + list: authedProcedure.query(async (opts) => { + const handler = await importHandler(namespaced("list"), () => import("./list.handler")); + return handler(opts); }), // Returns Teams I am a owner/admin of - listOwnedTeams: authedProcedure.query(async ({ ctx }) => { - if (!UNSTABLE_HANDLER_CACHE.listOwnedTeams) { - UNSTABLE_HANDLER_CACHE.listOwnedTeams = await import("./listOwnedTeams.handler").then( - (mod) => mod.listOwnedTeamsHandler - ); - } - - // Unreachable code but required for type safety - if (!UNSTABLE_HANDLER_CACHE.listOwnedTeams) { - throw new Error("Failed to load handler"); - } - - return UNSTABLE_HANDLER_CACHE.listOwnedTeams({ - ctx, - }); + listOwnedTeams: authedProcedure.query(async (opts) => { + const handler = await importHandler(namespaced("list"), () => import("./list.handler")); + return handler(opts); }), - - create: authedProcedure.input(ZCreateInputSchema).mutation(async ({ ctx, input }) => { - if (!UNSTABLE_HANDLER_CACHE.create) { - UNSTABLE_HANDLER_CACHE.create = await import("./create.handler").then((mod) => mod.createHandler); - } - - // Unreachable code but required for type safety - if (!UNSTABLE_HANDLER_CACHE.create) { - throw new Error("Failed to load handler"); - } - - return UNSTABLE_HANDLER_CACHE.create({ - ctx, - input, - }); + create: authedProcedure.input(ZCreateInputSchema).mutation(async (opts) => { + const handler = await importHandler(namespaced("create"), () => import("./create.handler")); + return handler(opts); }), - // Allows team owner to update team metadata - update: authedProcedure.input(ZUpdateInputSchema).mutation(async ({ ctx, input }) => { - if (!UNSTABLE_HANDLER_CACHE.update) { - UNSTABLE_HANDLER_CACHE.update = await import("./update.handler").then((mod) => mod.updateHandler); - } - - // Unreachable code but required for type safety - if (!UNSTABLE_HANDLER_CACHE.update) { - throw new Error("Failed to load handler"); - } - - return UNSTABLE_HANDLER_CACHE.update({ - ctx, - input, - }); + update: authedProcedure.input(ZUpdateInputSchema).mutation(async (opts) => { + const handler = await importHandler(namespaced("update"), () => import("./update.handler")); + return handler(opts); }), - - delete: authedProcedure.input(ZDeleteInputSchema).mutation(async ({ ctx, input }) => { - if (!UNSTABLE_HANDLER_CACHE.delete) { - UNSTABLE_HANDLER_CACHE.delete = await import("./delete.handler").then((mod) => mod.deleteHandler); - } - - // Unreachable code but required for type safety - if (!UNSTABLE_HANDLER_CACHE.delete) { - throw new Error("Failed to load handler"); - } - - return UNSTABLE_HANDLER_CACHE.delete({ - ctx, - input, - }); + delete: authedProcedure.input(ZDeleteInputSchema).mutation(async (opts) => { + const handler = await importHandler(namespaced("delete"), () => import("./delete.handler")); + return handler(opts); }), - - removeMember: authedProcedure.input(ZRemoveMemberInputSchema).mutation(async ({ ctx, input }) => { - if (!UNSTABLE_HANDLER_CACHE.removeMember) { - UNSTABLE_HANDLER_CACHE.removeMember = await import("./removeMember.handler").then( - (mod) => mod.removeMemberHandler - ); - } - - // Unreachable code but required for type safety - if (!UNSTABLE_HANDLER_CACHE.removeMember) { - throw new Error("Failed to load handler"); - } - - return UNSTABLE_HANDLER_CACHE.removeMember({ - ctx, - input, - }); + removeMember: authedProcedure.input(ZRemoveMemberInputSchema).mutation(async (opts) => { + const handler = await importHandler(namespaced("removeMember"), () => import("./removeMember.handler")); + return handler(opts); }), - - inviteMember: authedProcedure.input(ZInviteMemberInputSchema).mutation(async ({ ctx, input }) => { - if (!UNSTABLE_HANDLER_CACHE.inviteMember) { - UNSTABLE_HANDLER_CACHE.inviteMember = await import("./inviteMember/inviteMember.handler").then( - (mod) => mod.inviteMemberHandler - ); - } - - // Unreachable code but required for type safety - if (!UNSTABLE_HANDLER_CACHE.inviteMember) { - throw new Error("Failed to load handler"); - } - - return UNSTABLE_HANDLER_CACHE.inviteMember({ - ctx, - input, - }); + inviteMember: authedProcedure.input(ZInviteMemberInputSchema).mutation(async (opts) => { + const handler = await importHandler( + namespaced("inviteMember"), + () => import("./inviteMember/inviteMember.handler") + ); + return handler(opts); }), - - acceptOrLeave: authedProcedure.input(ZAcceptOrLeaveInputSchema).mutation(async ({ ctx, input }) => { - if (!UNSTABLE_HANDLER_CACHE.acceptOrLeave) { - UNSTABLE_HANDLER_CACHE.acceptOrLeave = await import("./acceptOrLeave.handler").then( - (mod) => mod.acceptOrLeaveHandler - ); - } - - // Unreachable code but required for type safety - if (!UNSTABLE_HANDLER_CACHE.acceptOrLeave) { - throw new Error("Failed to load handler"); - } - - return UNSTABLE_HANDLER_CACHE.acceptOrLeave({ - ctx, - input, - }); + acceptOrLeave: authedProcedure.input(ZAcceptOrLeaveInputSchema).mutation(async (opts) => { + const handler = await importHandler(namespaced("acceptOrLeave"), () => import("./acceptOrLeave.handler")); + return handler(opts); }), - - changeMemberRole: authedProcedure.input(ZChangeMemberRoleInputSchema).mutation(async ({ ctx, input }) => { - if (!UNSTABLE_HANDLER_CACHE.changeMemberRole) { - UNSTABLE_HANDLER_CACHE.changeMemberRole = await import("./changeMemberRole.handler").then( - (mod) => mod.changeMemberRoleHandler - ); - } - - // Unreachable code but required for type safety - if (!UNSTABLE_HANDLER_CACHE.changeMemberRole) { - throw new Error("Failed to load handler"); - } - - return UNSTABLE_HANDLER_CACHE.changeMemberRole({ - ctx, - input, - }); + changeMemberRole: authedProcedure.input(ZChangeMemberRoleInputSchema).mutation(async (opts) => { + const handler = await importHandler( + namespaced("changeMemberRole"), + () => import("./changeMemberRole.handler") + ); + return handler(opts); }), - - getMemberAvailability: authedProcedure - .input(ZGetMemberAvailabilityInputSchema) - .query(async ({ ctx, input }) => { - if (!UNSTABLE_HANDLER_CACHE.getMemberAvailability) { - UNSTABLE_HANDLER_CACHE.getMemberAvailability = await import("./getMemberAvailability.handler").then( - (mod) => mod.getMemberAvailabilityHandler - ); - } - - // Unreachable code but required for type safety - if (!UNSTABLE_HANDLER_CACHE.getMemberAvailability) { - throw new Error("Failed to load handler"); - } - - return UNSTABLE_HANDLER_CACHE.getMemberAvailability({ - ctx, - input, - }); - }), - - getMembershipbyUser: authedProcedure - .input(ZGetMembershipbyUserInputSchema) - .query(async ({ ctx, input }) => { - if (!UNSTABLE_HANDLER_CACHE.getMembershipbyUser) { - UNSTABLE_HANDLER_CACHE.getMembershipbyUser = await import("./getMembershipbyUser.handler").then( - (mod) => mod.getMembershipbyUserHandler - ); - } - - // Unreachable code but required for type safety - if (!UNSTABLE_HANDLER_CACHE.getMembershipbyUser) { - throw new Error("Failed to load handler"); - } - - return UNSTABLE_HANDLER_CACHE.getMembershipbyUser({ - ctx, - input, - }); - }), - - updateMembership: authedProcedure.input(ZUpdateMembershipInputSchema).mutation(async ({ ctx, input }) => { - if (!UNSTABLE_HANDLER_CACHE.updateMembership) { - UNSTABLE_HANDLER_CACHE.updateMembership = await import("./updateMembership.handler").then( - (mod) => mod.updateMembershipHandler - ); - } - - // Unreachable code but required for type safety - if (!UNSTABLE_HANDLER_CACHE.updateMembership) { - throw new Error("Failed to load handler"); - } - - return UNSTABLE_HANDLER_CACHE.updateMembership({ - ctx, - input, - }); + getMemberAvailability: authedProcedure.input(ZGetMemberAvailabilityInputSchema).query(async (opts) => { + const handler = await importHandler( + namespaced("getMemberAvailability"), + () => import("./getMemberAvailability.handler") + ); + return handler(opts); }), - - publish: authedProcedure.input(ZPublishInputSchema).mutation(async ({ ctx, input }) => { - if (!UNSTABLE_HANDLER_CACHE.publish) { - UNSTABLE_HANDLER_CACHE.publish = await import("./publish.handler").then((mod) => mod.publishHandler); - } - - // Unreachable code but required for type safety - if (!UNSTABLE_HANDLER_CACHE.publish) { - throw new Error("Failed to load handler"); - } - - return UNSTABLE_HANDLER_CACHE.publish({ - ctx, - input, - }); + getMembershipbyUser: authedProcedure.input(ZGetMembershipbyUserInputSchema).query(async (opts) => { + const handler = await importHandler( + namespaced("getMembershipbyUser"), + () => import("./getMembershipbyUser.handler") + ); + return handler(opts); + }), + updateMembership: authedProcedure.input(ZUpdateMembershipInputSchema).mutation(async (opts) => { + const handler = await importHandler( + namespaced("updateMembership"), + () => import("./updateMembership.handler") + ); + return handler(opts); + }), + publish: authedProcedure.input(ZPublishInputSchema).mutation(async (opts) => { + const handler = await importHandler(namespaced("publish"), () => import("./publish.handler")); + return handler(opts); }), - /** This is a temporal endpoint so we can progressively upgrade teams to the new billing system. */ - getUpgradeable: authedProcedure.query(async ({ ctx }) => { - if (!UNSTABLE_HANDLER_CACHE.getUpgradeable) { - UNSTABLE_HANDLER_CACHE.getUpgradeable = await import("./getUpgradeable.handler").then( - (mod) => mod.getUpgradeableHandler - ); - } - - // Unreachable code but required for type safety - if (!UNSTABLE_HANDLER_CACHE.getUpgradeable) { - throw new Error("Failed to load handler"); - } - - return UNSTABLE_HANDLER_CACHE.getUpgradeable({ - ctx, - }); + getUpgradeable: authedProcedure.query(async (opts) => { + const handler = await importHandler( + namespaced("getUpgradeable"), + () => import("./getUpgradeable.handler") + ); + return handler(opts); }), - - listMembers: authedProcedure.input(ZListMembersInputSchema).query(async ({ ctx, input }) => { - if (!UNSTABLE_HANDLER_CACHE.listMembers) { - UNSTABLE_HANDLER_CACHE.listMembers = await import("./listMembers.handler").then( - (mod) => mod.listMembersHandler - ); - } - - // Unreachable code but required for type safety - if (!UNSTABLE_HANDLER_CACHE.listMembers) { - throw new Error("Failed to load handler"); - } - - return UNSTABLE_HANDLER_CACHE.listMembers({ - ctx, - input, - }); + listMembers: authedProcedure.input(ZListMembersInputSchema).query(async (opts) => { + const handler = await importHandler(namespaced("listMembers"), () => import("./listMembers.handler")); + return handler(opts); }), - - hasTeamPlan: authedProcedure.query(async ({ ctx }) => { - if (!UNSTABLE_HANDLER_CACHE.hasTeamPlan) { - UNSTABLE_HANDLER_CACHE.hasTeamPlan = await import("./hasTeamPlan.handler").then( - (mod) => mod.hasTeamPlanHandler - ); - } - - // Unreachable code but required for type safety - if (!UNSTABLE_HANDLER_CACHE.hasTeamPlan) { - throw new Error("Failed to load handler"); - } - - return UNSTABLE_HANDLER_CACHE.hasTeamPlan({ - ctx, - }); + hasTeamPlan: authedProcedure.query(async (opts) => { + const handler = await importHandler(namespaced("hasTeamPlan"), () => import("./hasTeamPlan.handler")); + return handler(opts); }), - - listInvites: authedProcedure.query(async ({ ctx }) => { - if (!UNSTABLE_HANDLER_CACHE.listInvites) { - UNSTABLE_HANDLER_CACHE.listInvites = await import("./listInvites.handler").then( - (mod) => mod.listInvitesHandler - ); - } - - // Unreachable code but required for type safety - if (!UNSTABLE_HANDLER_CACHE.listInvites) { - throw new Error("Failed to load handler"); - } - - return UNSTABLE_HANDLER_CACHE.listInvites({ - ctx, - }); + listInvites: authedProcedure.query(async (opts) => { + const handler = await importHandler(namespaced("listInvites"), () => import("./listInvites.handler")); + return handler(opts); }), - - createInvite: authedProcedure.input(ZCreateInviteInputSchema).mutation(async ({ ctx, input }) => { - if (!UNSTABLE_HANDLER_CACHE.createInvite) { - UNSTABLE_HANDLER_CACHE.createInvite = await import("./createInvite.handler").then( - (mod) => mod.createInviteHandler - ); - } - - if (!UNSTABLE_HANDLER_CACHE.createInvite) { - throw new Error("Failed to load handler"); - } - - return UNSTABLE_HANDLER_CACHE.createInvite({ - ctx, - input, - }); + createInvite: authedProcedure.input(ZCreateInviteInputSchema).mutation(async (opts) => { + const handler = await importHandler(namespaced("createInvite"), () => import("./createInvite.handler")); + return handler(opts); }), - - setInviteExpiration: authedProcedure - .input(ZSetInviteExpirationInputSchema) - .mutation(async ({ ctx, input }) => { - if (!UNSTABLE_HANDLER_CACHE.setInviteExpiration) { - UNSTABLE_HANDLER_CACHE.setInviteExpiration = await import("./setInviteExpiration.handler").then( - (mod) => mod.setInviteExpirationHandler - ); - } - - // Unreachable code but required for type safety - if (!UNSTABLE_HANDLER_CACHE.setInviteExpiration) { - throw new Error("Failed to load handler"); - } - - return UNSTABLE_HANDLER_CACHE.setInviteExpiration({ - ctx, - input, - }); - }), - deleteInvite: authedProcedure.input(ZDeleteInviteInputSchema).mutation(async ({ ctx, input }) => { - if (!UNSTABLE_HANDLER_CACHE.deleteInvite) { - UNSTABLE_HANDLER_CACHE.deleteInvite = await import("./deleteInvite.handler").then( - (mod) => mod.deleteInviteHandler - ); - } - - // Unreachable code but required for type safety - if (!UNSTABLE_HANDLER_CACHE.deleteInvite) { - throw new Error("Failed to load handler"); - } - - return UNSTABLE_HANDLER_CACHE.deleteInvite({ - ctx, - input, - }); + setInviteExpiration: authedProcedure.input(ZSetInviteExpirationInputSchema).mutation(async (opts) => { + const handler = await importHandler( + namespaced("setInviteExpiration"), + () => import("./setInviteExpiration.handler") + ); + return handler(opts); }), - inviteMemberByToken: authedProcedure - .input(ZInviteMemberByTokenSchemaInputSchema) - .mutation(async ({ ctx, input }) => { - if (!UNSTABLE_HANDLER_CACHE.inviteMemberByToken) { - UNSTABLE_HANDLER_CACHE.inviteMemberByToken = await import("./inviteMemberByToken.handler").then( - (mod) => mod.inviteMemberByTokenHandler - ); - } - - // Unreachable code but required for type safety - if (!UNSTABLE_HANDLER_CACHE.inviteMemberByToken) { - throw new Error("Failed to load handler"); - } - - return UNSTABLE_HANDLER_CACHE.inviteMemberByToken({ - ctx, - input, - }); - }), - hasEditPermissionForUser: authedProcedure - .input(ZHasEditPermissionForUserSchema) - .query(async ({ ctx, input }) => { - if (!UNSTABLE_HANDLER_CACHE.hasEditPermissionForUser) { - UNSTABLE_HANDLER_CACHE.hasEditPermissionForUser = await import( - "./hasEditPermissionForUser.handler" - ).then((mod) => mod.hasEditPermissionForUser); - } - - // Unreachable code but required for type safety - if (!UNSTABLE_HANDLER_CACHE.hasEditPermissionForUser) { - throw new Error("Failed to load handler"); - } - - return UNSTABLE_HANDLER_CACHE.hasEditPermissionForUser({ - ctx, - input, - }); - }), - resendInvitation: authedProcedure.input(ZResendInvitationInputSchema).mutation(async ({ ctx, input }) => { - if (!UNSTABLE_HANDLER_CACHE.resendInvitation) { - UNSTABLE_HANDLER_CACHE.resendInvitation = await import("./resendInvitation.handler").then( - (mod) => mod.resendInvitationHandler - ); - } - - // Unreachable code but required for type safety - if (!UNSTABLE_HANDLER_CACHE.resendInvitation) { - throw new Error("Failed to load handler"); - } - - return UNSTABLE_HANDLER_CACHE.resendInvitation({ - ctx, - input, - }); + deleteInvite: authedProcedure.input(ZDeleteInviteInputSchema).mutation(async (opts) => { + const handler = await importHandler(namespaced("deleteInvite"), () => import("./deleteInvite.handler")); + return handler(opts); + }), + inviteMemberByToken: authedProcedure.input(ZInviteMemberByTokenSchemaInputSchema).mutation(async (opts) => { + const handler = await importHandler( + namespaced("inviteMemberByToken"), + () => import("./inviteMemberByToken.handler") + ); + return handler(opts); + }), + hasEditPermissionForUser: authedProcedure.input(ZHasEditPermissionForUserSchema).query(async (opts) => { + const handler = await importHandler( + namespaced("hasEditPermissionForUser"), + () => import("./hasEditPermissionForUser.handler") + ); + return handler(opts); + }), + resendInvitation: authedProcedure.input(ZResendInvitationInputSchema).mutation(async (opts) => { + const handler = await importHandler( + namespaced("resendInvitation"), + () => import("./resendInvitation.handler") + ); + return handler(opts); }), }); diff --git a/packages/trpc/server/routers/viewer/teams/acceptOrLeave.handler.ts b/packages/trpc/server/routers/viewer/teams/acceptOrLeave.handler.ts index d15e4dba47..9e25f31a02 100644 --- a/packages/trpc/server/routers/viewer/teams/acceptOrLeave.handler.ts +++ b/packages/trpc/server/routers/viewer/teams/acceptOrLeave.handler.ts @@ -48,3 +48,5 @@ export const acceptOrLeaveHandler = async ({ ctx, input }: AcceptOrLeaveOptions) } } }; + +export default acceptOrLeaveHandler; diff --git a/packages/trpc/server/routers/viewer/teams/changeMemberRole.handler.ts b/packages/trpc/server/routers/viewer/teams/changeMemberRole.handler.ts index f2a6f23861..290a1be923 100644 --- a/packages/trpc/server/routers/viewer/teams/changeMemberRole.handler.ts +++ b/packages/trpc/server/routers/viewer/teams/changeMemberRole.handler.ts @@ -71,3 +71,5 @@ export const changeMemberRoleHandler = async ({ ctx, input }: ChangeMemberRoleOp // Sync Services: Close.com closeComUpsertTeamUser(membership.team, membership.user, membership.role); }; + +export default changeMemberRoleHandler; diff --git a/packages/trpc/server/routers/viewer/teams/create.handler.ts b/packages/trpc/server/routers/viewer/teams/create.handler.ts index 2b861c7d88..77e20a5f13 100644 --- a/packages/trpc/server/routers/viewer/teams/create.handler.ts +++ b/packages/trpc/server/routers/viewer/teams/create.handler.ts @@ -1,3 +1,5 @@ +import { generateTeamCheckoutSession } from "@calcom/features/ee/teams/lib/payments"; +import { IS_TEAM_BILLING_ENABLED, WEBAPP_URL } from "@calcom/lib/constants"; import { closeComUpsertTeamUser } from "@calcom/lib/sync/SyncServiceManager"; import { prisma } from "@calcom/prisma"; import { MembershipRole } from "@calcom/prisma/enums"; @@ -14,6 +16,34 @@ type CreateOptions = { input: TCreateInputSchema; }; +const generateCheckoutSession = async ({ + teamSlug, + teamName, + userId, +}: { + teamSlug: string; + teamName: string; + userId: number; +}) => { + if (!IS_TEAM_BILLING_ENABLED) { + console.info("Team billing is disabled, not generating a checkout session."); + return; + } + + const checkoutSession = await generateTeamCheckoutSession({ + teamSlug, + teamName, + userId, + }); + + if (!checkoutSession.url) + throw new TRPCError({ + code: "INTERNAL_SERVER_ERROR", + message: "Failed retrieving a checkout session URL.", + }); + return { url: checkoutSession.url, message: "Payment required to publish team" }; +}; + export const createHandler = async ({ ctx, input }: CreateOptions) => { const { user } = ctx; const { slug, name, logo } = input; @@ -45,28 +75,26 @@ export const createHandler = async ({ ctx, input }: CreateOptions) => { if (nameCollisions) throw new TRPCError({ code: "BAD_REQUEST", message: "team_slug_exists_as_user" }); } - // Ensure that the user is not duplicating a requested team - const duplicatedRequest = await prisma.team.findFirst({ - where: { - members: { - some: { - userId: ctx.user.id, - }, - }, - metadata: { - path: ["requestedSlug"], - equals: slug, - }, - }, - }); + // If the user is not a part of an org, then make them pay before creating the team + if (!isOrgChildTeam) { + const checkoutSession = await generateCheckoutSession({ + teamSlug: slug, + teamName: name, + userId: user.id, + }); - if (duplicatedRequest) { - return duplicatedRequest; + // If there is a checkout session, return it. Otherwise, it means it's disabled. + if (checkoutSession) + return { + url: checkoutSession.url, + message: checkoutSession.message, + team: null, + }; } - const createTeam = await prisma.team.create({ + const createdTeam = await prisma.team.create({ data: { - ...(isOrgChildTeam ? { slug } : {}), + slug, name, logo, members: { @@ -76,17 +104,18 @@ export const createHandler = async ({ ctx, input }: CreateOptions) => { accepted: true, }, }, - metadata: !isOrgChildTeam - ? { - requestedSlug: slug, - } - : undefined, ...(isOrgChildTeam && { parentId: user.organizationId }), }, }); // Sync Services: Close.com - closeComUpsertTeamUser(createTeam, ctx.user, MembershipRole.OWNER); + closeComUpsertTeamUser(createdTeam, ctx.user, MembershipRole.OWNER); - return createTeam; + return { + url: `${WEBAPP_URL}/settings/teams/${createdTeam.id}/onboard-members`, + message: "Team billing is disabled, not generating a checkout session.", + team: createdTeam, + }; }; + +export default createHandler; diff --git a/packages/trpc/server/routers/viewer/teams/createInvite.handler.ts b/packages/trpc/server/routers/viewer/teams/createInvite.handler.ts index 380882ab55..1dc192b300 100644 --- a/packages/trpc/server/routers/viewer/teams/createInvite.handler.ts +++ b/packages/trpc/server/routers/viewer/teams/createInvite.handler.ts @@ -59,3 +59,5 @@ async function getInviteLink(token = "", isOrg = false, orgMembers = 0) { if (isOrg || orgMembers > 0) return orgInviteLink; return teamInviteLink; } + +export default createInviteHandler; diff --git a/packages/trpc/server/routers/viewer/teams/delete.handler.ts b/packages/trpc/server/routers/viewer/teams/delete.handler.ts index 29d7d07c17..26c0f2dbe1 100644 --- a/packages/trpc/server/routers/viewer/teams/delete.handler.ts +++ b/packages/trpc/server/routers/viewer/teams/delete.handler.ts @@ -82,3 +82,5 @@ export const deleteHandler = async ({ ctx, input }: DeleteOptions) => { // Sync Services: Close.cm closeComDeleteTeam(deletedTeam); }; + +export default deleteHandler; diff --git a/packages/trpc/server/routers/viewer/teams/deleteInvite.handler.ts b/packages/trpc/server/routers/viewer/teams/deleteInvite.handler.ts index 5a92545dcb..78d2c9ca20 100644 --- a/packages/trpc/server/routers/viewer/teams/deleteInvite.handler.ts +++ b/packages/trpc/server/routers/viewer/teams/deleteInvite.handler.ts @@ -31,3 +31,5 @@ export const deleteInviteHandler = async ({ ctx, input }: DeleteInviteOptions) = await prisma.verificationToken.delete({ where: { id: verificationToken.id } }); }; + +export default deleteInviteHandler; diff --git a/packages/trpc/server/routers/viewer/teams/get.handler.ts b/packages/trpc/server/routers/viewer/teams/get.handler.ts index 6cc6c52db5..ca6256d448 100644 --- a/packages/trpc/server/routers/viewer/teams/get.handler.ts +++ b/packages/trpc/server/routers/viewer/teams/get.handler.ts @@ -36,3 +36,5 @@ export const getHandler = async ({ ctx, input }: GetOptions) => { }, }; }; + +export default getHandler; diff --git a/packages/trpc/server/routers/viewer/teams/getMemberAvailability.handler.ts b/packages/trpc/server/routers/viewer/teams/getMemberAvailability.handler.ts index 3545e6e321..0d7922a0dc 100644 --- a/packages/trpc/server/routers/viewer/teams/getMemberAvailability.handler.ts +++ b/packages/trpc/server/routers/viewer/teams/getMemberAvailability.handler.ts @@ -54,3 +54,5 @@ export const getMemberAvailabilityHandler = async ({ ctx, input }: GetMemberAvai { user: member.user } ); }; + +export default getMemberAvailabilityHandler; diff --git a/packages/trpc/server/routers/viewer/teams/getMembershipbyUser.handler.ts b/packages/trpc/server/routers/viewer/teams/getMembershipbyUser.handler.ts index 55794cb47f..eeedb362aa 100644 --- a/packages/trpc/server/routers/viewer/teams/getMembershipbyUser.handler.ts +++ b/packages/trpc/server/routers/viewer/teams/getMembershipbyUser.handler.ts @@ -29,3 +29,5 @@ export const getMembershipbyUserHandler = async ({ ctx, input }: GetMembershipby }, }); }; + +export default getMembershipbyUserHandler; diff --git a/packages/trpc/server/routers/viewer/teams/getUpgradeable.handler.ts b/packages/trpc/server/routers/viewer/teams/getUpgradeable.handler.ts index 7587867e34..941c77a11e 100644 --- a/packages/trpc/server/routers/viewer/teams/getUpgradeable.handler.ts +++ b/packages/trpc/server/routers/viewer/teams/getUpgradeable.handler.ts @@ -43,3 +43,5 @@ export const getUpgradeableHandler = async ({ ctx }: GetUpgradeableOptions) => { }); return teams; }; + +export default getUpgradeableHandler; diff --git a/packages/trpc/server/routers/viewer/teams/hasEditPermissionForUser.handler.ts b/packages/trpc/server/routers/viewer/teams/hasEditPermissionForUser.handler.ts index 882e922e30..ae5b9bc66c 100644 --- a/packages/trpc/server/routers/viewer/teams/hasEditPermissionForUser.handler.ts +++ b/packages/trpc/server/routers/viewer/teams/hasEditPermissionForUser.handler.ts @@ -17,3 +17,5 @@ export const hasEditPermissionForUser = async ({ ctx, input }: HasEditPermission input, }); }; + +export default hasEditPermissionForUser; diff --git a/packages/trpc/server/routers/viewer/teams/hasTeamPlan.handler.ts b/packages/trpc/server/routers/viewer/teams/hasTeamPlan.handler.ts index 882876515c..f8c757b624 100644 --- a/packages/trpc/server/routers/viewer/teams/hasTeamPlan.handler.ts +++ b/packages/trpc/server/routers/viewer/teams/hasTeamPlan.handler.ts @@ -23,3 +23,5 @@ export const hasTeamPlanHandler = async ({ ctx }: HasTeamPlanOptions) => { }); return { hasTeamPlan: !!hasTeamPlan }; }; + +export default hasTeamPlanHandler; diff --git a/packages/trpc/server/routers/viewer/teams/inviteMember/inviteMember.handler.ts b/packages/trpc/server/routers/viewer/teams/inviteMember/inviteMember.handler.ts index 41b081433b..35e882bdf8 100644 --- a/packages/trpc/server/routers/viewer/teams/inviteMember/inviteMember.handler.ts +++ b/packages/trpc/server/routers/viewer/teams/inviteMember/inviteMember.handler.ts @@ -9,7 +9,7 @@ import type { TInviteMemberInputSchema } from "./inviteMember.schema"; import { checkPermissions, getTeamOrThrow, - getEmailsToInvite, + getUsernameOrEmailsToInvite, getOrgConnectionInfo, getIsOrgVerified, sendVerificationEmail, @@ -42,43 +42,54 @@ export const inviteMemberHandler = async ({ ctx, input }: InviteMemberOptions) = const team = await getTeamOrThrow(input.teamId, input.isOrg); const { autoAcceptEmailDomain, orgVerified } = getIsOrgVerified(input.isOrg, team); - const emailsToInvite = await getEmailsToInvite(input.usernameOrEmail); - const orgConnectInfoByEmail = emailsToInvite.reduce((acc, email) => { + const usernameOrEmailsToInvite = await getUsernameOrEmailsToInvite(input.usernameOrEmail); + const orgConnectInfoByUsernameOrEmail = usernameOrEmailsToInvite.reduce((acc, usernameOrEmail) => { return { ...acc, - [email]: getOrgConnectionInfo({ + [usernameOrEmail]: getOrgConnectionInfo({ orgVerified, orgAutoAcceptDomain: autoAcceptEmailDomain, - usersEmail: email, + usersEmail: usernameOrEmail, team, isOrg: input.isOrg, }), }; }, {} as Record<string, ReturnType<typeof getOrgConnectionInfo>>); const existingUsersWithMembersips = await getUsersToInvite({ - usernameOrEmail: emailsToInvite, + usernamesOrEmails: usernameOrEmailsToInvite, isInvitedToOrg: input.isOrg, team, }); - const existingUsersEmails = existingUsersWithMembersips.map((user) => user.email); - const newUsersEmails = emailsToInvite.filter((email) => !existingUsersEmails.includes(email)); + const existingUsersEmailsAndUsernames = existingUsersWithMembersips.reduce( + (acc, user) => ({ + emails: user.email ? [...acc.emails, user.email] : acc.emails, + usernames: user.username ? [...acc.usernames, user.username] : acc.usernames, + }), + { emails: [], usernames: [] } as { emails: string[]; usernames: string[] } + ); + const newUsersEmailsOrUsernames = usernameOrEmailsToInvite.filter( + (usernameOrEmail) => + !existingUsersEmailsAndUsernames.emails.includes(usernameOrEmail) && + !existingUsersEmailsAndUsernames.usernames.includes(usernameOrEmail) + ); + // deal with users to create and invite to team/org - if (newUsersEmails.length) { + if (newUsersEmailsOrUsernames.length) { await createNewUsersConnectToOrgIfExists({ - usernamesOrEmails: newUsersEmails, + usernamesOrEmails: newUsersEmailsOrUsernames, input, - connectionInfoMap: orgConnectInfoByEmail, + connectionInfoMap: orgConnectInfoByUsernameOrEmail, autoAcceptEmailDomain, parentId: team.parentId, }); - const sendVerifEmailsPromises = newUsersEmails.map((usernameOrEmail) => { + const sendVerifEmailsPromises = newUsersEmailsOrUsernames.map((usernameOrEmail) => { return sendVerificationEmail({ usernameOrEmail, team, translation, ctx, input, - connectionInfo: orgConnectInfoByEmail[usernameOrEmail], + connectionInfo: orgConnectInfoByUsernameOrEmail[usernameOrEmail], }); }); sendEmails(sendVerifEmailsPromises); @@ -129,3 +140,5 @@ export const inviteMemberHandler = async ({ ctx, input }: InviteMemberOptions) = } return input; }; + +export default inviteMemberHandler; diff --git a/packages/trpc/server/routers/viewer/teams/inviteMember/inviteMember.schema.ts b/packages/trpc/server/routers/viewer/teams/inviteMember/inviteMember.schema.ts index 35c59a3523..f081508bc5 100644 --- a/packages/trpc/server/routers/viewer/teams/inviteMember/inviteMember.schema.ts +++ b/packages/trpc/server/routers/viewer/teams/inviteMember/inviteMember.schema.ts @@ -1,9 +1,8 @@ import { z } from "zod"; +import { MAX_NB_INVITES } from "@calcom/lib/constants"; import { MembershipRole } from "@calcom/prisma/enums"; -import { TRPCError } from "@trpc/server"; - export const ZInviteMemberInputSchema = z.object({ teamId: z.number(), usernameOrEmail: z @@ -14,27 +13,26 @@ export const ZInviteMemberInputSchema = z.object({ } return usernameOrEmail.map((item) => item.trim().toLowerCase()); }) - .refine((value) => { - let invalidEmail; - if (Array.isArray(value)) { - if (value.length > 100) { - throw new TRPCError({ - code: "BAD_REQUEST", - message: `You are limited to inviting a maximum of 100 users at once.`, - }); + .refine( + (value) => { + if (Array.isArray(value)) { + if (value.length > MAX_NB_INVITES) { + return false; + } } - invalidEmail = value.find((email) => !z.string().email().safeParse(email).success); - } else { - invalidEmail = !z.string().email().safeParse(value).success ? value : null; - } - if (invalidEmail) { - throw new TRPCError({ - code: "BAD_REQUEST", - message: `Invite failed because '${invalidEmail}' is not a valid email address`, - }); - } - return true; - }), + return true; + }, + { message: `You are limited to inviting a maximum of ${MAX_NB_INVITES} users at once.` } + ) + .refine( + (value) => { + if (Array.isArray(value)) { + return !value.some((email) => !z.string().email().safeParse(email).success); + } + return true; + }, + { message: "Bulk invitations are restricted to email addresses only." } + ), role: z.nativeEnum(MembershipRole), language: z.string(), isOrg: z.boolean().default(false), diff --git a/packages/trpc/server/routers/viewer/teams/inviteMember/inviteMemberUtils.test.ts b/packages/trpc/server/routers/viewer/teams/inviteMember/inviteMemberUtils.test.ts index 6dc4ea15df..d7207b8505 100644 --- a/packages/trpc/server/routers/viewer/teams/inviteMember/inviteMemberUtils.test.ts +++ b/packages/trpc/server/routers/viewer/teams/inviteMember/inviteMemberUtils.test.ts @@ -10,11 +10,12 @@ import type { TeamWithParent } from "./types"; import type { Invitee, UserWithMembership } from "./utils"; import { checkPermissions, - getEmailsToInvite, + getUsernameOrEmailsToInvite, getIsOrgVerified, getOrgConnectionInfo, validateInviteeEligibility, shouldAutoJoinIfInOrg, + checkInputEmailIsValid, } from "./utils"; vi.mock("@calcom/lib/server/queries", () => { @@ -101,22 +102,35 @@ describe("Invite Member Utils", () => { await expect(checkPermissions({ userId: 1, teamId: 1 })).resolves.not.toThrow(); }); }); - describe("getEmailsToInvite", () => { + describe("getUsernameOrEmailsToInvite", () => { it("should throw a TRPCError with code BAD_REQUEST if no emails are provided", async () => { - await expect(getEmailsToInvite([])).rejects.toThrow(TRPCError); + await expect(getUsernameOrEmailsToInvite([])).rejects.toThrow(TRPCError); }); it("should return an array with one email if a string is provided", async () => { - const result = await getEmailsToInvite("test@example.com"); + const result = await getUsernameOrEmailsToInvite("test@example.com"); expect(result).toEqual(["test@example.com"]); }); it("should return an array with multiple emails if an array is provided", async () => { - const result = await getEmailsToInvite(["test1@example.com", "test2@example.com"]); + const result = await getUsernameOrEmailsToInvite(["test1@example.com", "test2@example.com"]); expect(result).toEqual(["test1@example.com", "test2@example.com"]); }); }); + describe("checkInputEmailIsValid", () => { + it("should throw a TRPCError with code BAD_REQUEST if the email is invalid", () => { + const invalidEmail = "invalid-email"; + expect(() => checkInputEmailIsValid(invalidEmail)).toThrow(TRPCError); + expect(() => checkInputEmailIsValid(invalidEmail)).toThrowError( + "Invite failed because invalid-email is not a valid email address" + ); + }); + it("should not throw an error if the email is valid", () => { + const validEmail = "valid-email@example.com"; + expect(() => checkInputEmailIsValid(validEmail)).not.toThrow(); + }); + }); describe("getOrgConnectionInfo", () => { const orgAutoAcceptDomain = "example.com"; const usersEmail = "user@example.com"; diff --git a/packages/trpc/server/routers/viewer/teams/inviteMember/utils.ts b/packages/trpc/server/routers/viewer/teams/inviteMember/utils.ts index 2ea1ed579c..1279996cb5 100644 --- a/packages/trpc/server/routers/viewer/teams/inviteMember/utils.ts +++ b/packages/trpc/server/routers/viewer/teams/inviteMember/utils.ts @@ -46,6 +46,14 @@ export async function checkPermissions({ } } +export function checkInputEmailIsValid(email: string) { + if (!isEmail(email)) + throw new TRPCError({ + code: "BAD_REQUEST", + message: `Invite failed because ${email} is not a valid email address`, + }); +} + export async function getTeamOrThrow(teamId: number, isOrg?: boolean) { const team = await prisma.team.findFirst({ where: { @@ -62,7 +70,7 @@ export async function getTeamOrThrow(teamId: number, isOrg?: boolean) { return team; } -export async function getEmailsToInvite(usernameOrEmail: string | string[]) { +export async function getUsernameOrEmailsToInvite(usernameOrEmail: string | string[]) { const emailsToInvite = Array.isArray(usernameOrEmail) ? Array.from(new Set(usernameOrEmail)) : [usernameOrEmail]; @@ -128,11 +136,11 @@ export function validateInviteeEligibility( } export async function getUsersToInvite({ - usernameOrEmail, + usernamesOrEmails, isInvitedToOrg, team, }: { - usernameOrEmail: string[]; + usernamesOrEmails: string[]; isInvitedToOrg: boolean; team: TeamWithParent; }): Promise<UserWithMembership[]> { @@ -149,7 +157,7 @@ export async function getUsersToInvite({ const invitees: UserWithMembership[] = await prisma.user.findMany({ where: { - OR: [{ username: { in: usernameOrEmail }, ...orgWhere }, { email: { in: usernameOrEmail } }], + OR: [{ username: { in: usernamesOrEmails }, ...orgWhere }, { email: { in: usernamesOrEmails } }], }, select: { id: true, @@ -217,6 +225,10 @@ export async function createNewUsersConnectToOrgIfExists({ autoAcceptEmailDomain?: string; connectionInfoMap: Record<string, ReturnType<typeof getOrgConnectionInfo>>; }) { + // fail if we have invalid emails + usernamesOrEmails.forEach((usernameOrEmail) => checkInputEmailIsValid(usernameOrEmail)); + + // from this point we know usernamesOrEmails contains only emails await prisma.$transaction( async (tx) => { for (let index = 0; index < usernamesOrEmails.length; index++) { diff --git a/packages/trpc/server/routers/viewer/teams/inviteMemberByToken.handler.ts b/packages/trpc/server/routers/viewer/teams/inviteMemberByToken.handler.ts index 5518a18ec1..5f1d533c31 100644 --- a/packages/trpc/server/routers/viewer/teams/inviteMemberByToken.handler.ts +++ b/packages/trpc/server/routers/viewer/teams/inviteMemberByToken.handler.ts @@ -64,3 +64,5 @@ export const inviteMemberByTokenHandler = async ({ ctx, input }: InviteMemberByT return verificationToken.team.name; }; + +export default inviteMemberByTokenHandler; diff --git a/packages/trpc/server/routers/viewer/teams/list.handler.ts b/packages/trpc/server/routers/viewer/teams/list.handler.ts index 44220804aa..31a53fdd48 100644 --- a/packages/trpc/server/routers/viewer/teams/list.handler.ts +++ b/packages/trpc/server/routers/viewer/teams/list.handler.ts @@ -41,3 +41,5 @@ export const listHandler = async ({ ctx }: ListOptions) => { inviteToken: inviteTokens.find((token) => token.identifier === `invite-link-for-teamId-${_team.id}`), })); }; + +export default listHandler; diff --git a/packages/trpc/server/routers/viewer/teams/listInvites.handler.ts b/packages/trpc/server/routers/viewer/teams/listInvites.handler.ts index d4ffed6217..5d266f692b 100644 --- a/packages/trpc/server/routers/viewer/teams/listInvites.handler.ts +++ b/packages/trpc/server/routers/viewer/teams/listInvites.handler.ts @@ -18,3 +18,5 @@ export const listInvitesHandler = async ({ ctx }: ListInvitesOptions) => { }, }); }; + +export default listInvitesHandler; diff --git a/packages/trpc/server/routers/viewer/teams/listMembers.handler.ts b/packages/trpc/server/routers/viewer/teams/listMembers.handler.ts index 29291c5723..8def528dca 100644 --- a/packages/trpc/server/routers/viewer/teams/listMembers.handler.ts +++ b/packages/trpc/server/routers/viewer/teams/listMembers.handler.ts @@ -54,3 +54,5 @@ export const listMembersHandler = async ({ ctx, input }: ListMembersOptions) => return Object.values(users); }; + +export default listMembersHandler; diff --git a/packages/trpc/server/routers/viewer/teams/publish.handler.ts b/packages/trpc/server/routers/viewer/teams/publish.handler.ts index 5bb5dbb195..48e2e6e781 100644 --- a/packages/trpc/server/routers/viewer/teams/publish.handler.ts +++ b/packages/trpc/server/routers/viewer/teams/publish.handler.ts @@ -157,3 +157,5 @@ export const publishHandler = async ({ ctx, input }: PublishOptions) => { message: "Team published successfully", }; }; + +export default publishHandler; diff --git a/packages/trpc/server/routers/viewer/teams/removeMember.handler.ts b/packages/trpc/server/routers/viewer/teams/removeMember.handler.ts index 96b7b3cc9d..b3171438bd 100644 --- a/packages/trpc/server/routers/viewer/teams/removeMember.handler.ts +++ b/packages/trpc/server/routers/viewer/teams/removeMember.handler.ts @@ -1,4 +1,5 @@ import { updateQuantitySubscriptionFromStripe } from "@calcom/features/ee/teams/lib/payments"; +import { checkRateLimitAndThrowError } from "@calcom/lib/checkRateLimitAndThrowError"; import { IS_TEAM_BILLING_ENABLED } from "@calcom/lib/constants"; import { isTeamAdmin, isTeamOwner } from "@calcom/lib/server/queries/teams"; import { closeComDeleteTeamMembership } from "@calcom/lib/sync/SyncServiceManager"; @@ -14,11 +15,16 @@ type RemoveMemberOptions = { ctx: { user: NonNullable<TrpcSessionUser>; prisma: PrismaClient; + sourceIp?: string; }; input: TRemoveMemberInputSchema; }; export const removeMemberHandler = async ({ ctx, input }: RemoveMemberOptions) => { + await checkRateLimitAndThrowError({ + identifier: `removeMember.${ctx.sourceIp}`, + }); + const isAdmin = await isTeamAdmin(ctx.user.id, input.teamId); const isOrgAdmin = ctx.user.organizationId ? await isTeamAdmin(ctx.user.id, ctx.user.organizationId) @@ -121,3 +127,5 @@ export const removeMemberHandler = async ({ ctx, input }: RemoveMemberOptions) = closeComDeleteTeamMembership(membership.user); if (IS_TEAM_BILLING_ENABLED) await updateQuantitySubscriptionFromStripe(input.teamId); }; + +export default removeMemberHandler; diff --git a/packages/trpc/server/routers/viewer/teams/resendInvitation.handler.ts b/packages/trpc/server/routers/viewer/teams/resendInvitation.handler.ts index a7c0cc9bd5..e7a58bd9ca 100644 --- a/packages/trpc/server/routers/viewer/teams/resendInvitation.handler.ts +++ b/packages/trpc/server/routers/viewer/teams/resendInvitation.handler.ts @@ -58,3 +58,5 @@ export const resendInvitationHandler = async ({ ctx, input }: InviteMemberOption return input; }; + +export default resendInvitationHandler; diff --git a/packages/trpc/server/routers/viewer/teams/setInviteExpiration.handler.ts b/packages/trpc/server/routers/viewer/teams/setInviteExpiration.handler.ts index cbba00e2f1..28d0ba4676 100644 --- a/packages/trpc/server/routers/viewer/teams/setInviteExpiration.handler.ts +++ b/packages/trpc/server/routers/viewer/teams/setInviteExpiration.handler.ts @@ -39,3 +39,5 @@ export const setInviteExpirationHandler = async ({ ctx, input }: SetInviteExpira }, }); }; + +export default setInviteExpirationHandler; diff --git a/packages/trpc/server/routers/viewer/teams/update.handler.ts b/packages/trpc/server/routers/viewer/teams/update.handler.ts index ff5692f0ac..bcb9fbce9e 100644 --- a/packages/trpc/server/routers/viewer/teams/update.handler.ts +++ b/packages/trpc/server/routers/viewer/teams/update.handler.ts @@ -97,3 +97,5 @@ export const updateHandler = async ({ ctx, input }: UpdateOptions) => { darkBrandColor: updatedTeam.darkBrandColor, }; }; + +export default updateHandler; diff --git a/packages/trpc/server/routers/viewer/teams/updateMembership.handler.ts b/packages/trpc/server/routers/viewer/teams/updateMembership.handler.ts index 9a1b1cac9d..4b42b4a53f 100644 --- a/packages/trpc/server/routers/viewer/teams/updateMembership.handler.ts +++ b/packages/trpc/server/routers/viewer/teams/updateMembership.handler.ts @@ -32,3 +32,5 @@ export const updateMembershipHandler = async ({ ctx, input }: UpdateMembershipOp }, }); }; + +export default updateMembershipHandler; diff --git a/packages/trpc/server/routers/viewer/workflows/filteredList.schema.tsx b/packages/trpc/server/routers/viewer/workflows/filteredList.schema.tsx index 3bb74fbb1f..0f28959ada 100644 --- a/packages/trpc/server/routers/viewer/workflows/filteredList.schema.tsx +++ b/packages/trpc/server/routers/viewer/workflows/filteredList.schema.tsx @@ -1,3 +1,5 @@ +"use client"; + import { z } from "zod"; import { filterQuerySchemaStrict } from "@calcom/features/filters/lib/getTeamsFiltersFromQuery"; diff --git a/packages/trpc/server/routers/viewer/workflows/update.handler.ts b/packages/trpc/server/routers/viewer/workflows/update.handler.ts index 76b05c083c..5799f96756 100644 --- a/packages/trpc/server/routers/viewer/workflows/update.handler.ts +++ b/packages/trpc/server/routers/viewer/workflows/update.handler.ts @@ -130,18 +130,15 @@ export const updateHandler = async ({ ctx, input }: UpdateOptions) => { ) .flat(); - const newActiveEventTypes = activeOn.filter((eventType) => { - if ( + const newActiveEventTypes = activeOn.filter( + (eventType) => !oldActiveOnEventTypes || !oldActiveOnEventTypes .map((oldEventType) => { return oldEventType.eventTypeId; }) .includes(eventType) - ) { - return eventType; - } - }); + ); //check if new event types belong to user or team for (const newEventTypeId of newActiveEventTypes) { @@ -177,11 +174,9 @@ export const updateHandler = async ({ ctx, input }: UpdateOptions) => { } //remove all scheduled Email and SMS reminders for eventTypes that are not active any more - const removedEventTypes = oldActiveOnEventTypeIds.filter((eventTypeId) => { - if (!activeOnWithChildren.includes(eventTypeId)) { - return eventTypeId; - } - }); + const removedEventTypes = oldActiveOnEventTypeIds.filter( + (eventTypeId) => !activeOnWithChildren.includes(eventTypeId) + ); const remindersToDeletePromise: Prisma.PrismaPromise< { @@ -471,11 +466,9 @@ export const updateHandler = async ({ ctx, input }: UpdateOptions) => { }, }); //cancel all reminders of step and create new ones (not for newEventTypes) - const remindersToUpdate = remindersFromStep.filter((reminder) => { - if (reminder.booking?.eventTypeId && !newEventTypes.includes(reminder.booking?.eventTypeId)) { - return reminder; - } - }); + const remindersToUpdate = remindersFromStep.filter( + (reminder) => reminder.booking?.eventTypeId && !newEventTypes.includes(reminder.booking?.eventTypeId) + ); //cancel all workflow reminders from steps that were edited // FIXME: async calls into ether @@ -488,11 +481,10 @@ export const updateHandler = async ({ ctx, input }: UpdateOptions) => { deleteScheduledWhatsappReminder(reminder.id, reminder.referenceId); } }); - const eventTypesToUpdateReminders = activeOn.filter((eventTypeId) => { - if (!newEventTypes.includes(eventTypeId)) { - return eventTypeId; - } - }); + + const eventTypesToUpdateReminders = activeOn.filter( + (eventTypeId) => !newEventTypes.includes(eventTypeId) + ); if ( eventTypesToUpdateReminders && (trigger === WorkflowTriggerEvents.BEFORE_EVENT || trigger === WorkflowTriggerEvents.AFTER_EVENT) @@ -629,11 +621,9 @@ export const updateHandler = async ({ ctx, input }: UpdateOptions) => { }); if (addedSteps) { - const eventTypesToCreateReminders = activeOn.map((activeEventType) => { - if (activeEventType && !newEventTypes.includes(activeEventType)) { - return activeEventType; - } - }); + const eventTypesToCreateReminders = activeOn.filter( + (activeEventType) => activeEventType && !newEventTypes.includes(activeEventType) + ); const promiseAddedSteps = addedSteps.map(async (step) => { if (step) { const { senderName, ...newStep } = step; diff --git a/packages/types/App.d.ts b/packages/types/App.d.ts index 60f6b3308b..39d9d5f70c 100644 --- a/packages/types/App.d.ts +++ b/packages/types/App.d.ts @@ -63,7 +63,6 @@ export interface App { | `${string}_messaging` | `${string}_payment` | `${string}_video` - | `${string}_web3` | `${string}_other` | `${string}_automation` | `${string}_analytics` @@ -80,15 +79,7 @@ export interface App { /** A brief description, usually found in the app's package.json */ description: string; /** TODO determine if we should use this instead of category */ - variant: - | "calendar" - | "payment" - | "conferencing" - | "video" - | "other" - | "other_calendar" - | "web3" - | "automation"; + variant: "calendar" | "payment" | "conferencing" | "video" | "other" | "other_calendar" | "automation"; /** The slug for the app store public page inside `/apps/[slug] */ slug: string; diff --git a/packages/ui/components/badge/badge.stories.mdx b/packages/ui/components/badge/badge.stories.mdx index f456c3cb97..03268a037e 100644 --- a/packages/ui/components/badge/badge.stories.mdx +++ b/packages/ui/components/badge/badge.stories.mdx @@ -15,7 +15,7 @@ import { Badge } from "./Badge"; <Meta title="UI/Badge" component={Badge} /> -<Title title="Bages" suffix="Brief" subtitle="Version 2.0 — Last Update: 22 Aug 2022" /> +<Title title="Badge" suffix="Brief" subtitle="Version 2.0 — Last Update: 22 Aug 2022" /> ## Definition diff --git a/packages/ui/components/breadcrumb/breadcrumb.stories.mdx b/packages/ui/components/breadcrumb/breadcrumb.stories.mdx index 8fbd56164d..25fddfa8d1 100644 --- a/packages/ui/components/breadcrumb/breadcrumb.stories.mdx +++ b/packages/ui/components/breadcrumb/breadcrumb.stories.mdx @@ -2,7 +2,7 @@ import { Canvas, Meta, Story, ArgsTable } from "@storybook/addon-docs"; import { Examples, Example, Note, Title, CustomArgsTable } from "@calcom/storybook/components"; -import { Breadcrumb } from "./Breadcrumb"; +import { Breadcrumb, BreadcrumbItem } from "./Breadcrumb"; <Meta title="UI/Breadcrumbs" component={Breadcrumb} /> diff --git a/packages/ui/components/button/Button.tsx b/packages/ui/components/button/Button.tsx index 17f0d41642..5306f6e3ae 100644 --- a/packages/ui/components/button/Button.tsx +++ b/packages/ui/components/button/Button.tsx @@ -50,7 +50,7 @@ export const buttonClasses = cva( primary: "bg-brand-default hover:bg-brand-emphasis focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-offset focus-visible:ring-brand-default text-brand disabled:bg-brand-subtle disabled:text-brand-subtle disabled:opacity-40 disabled:hover:bg-brand-subtle disabled:hover:text-brand-default disabled:hover:opacity-40", secondary: - "text-emphasis border border-default bg-default hover:bg-muted hover:border-emphasis focus-visible:bg-subtle focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-offset focus-visible:ring-empthasis disabled:border-subtle disabled:bg-opacity-30 disabled:text-muted disabled:hover:bg-opacity-30 disabled:hover:text-muted disabled:hover:border-subtle disabled:hover:bg-default", + "text-emphasis border border-default bg-default hover:bg-muted hover:border-emphasis focus-visible:bg-subtle focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-offset focus-visible:ring-empthasis disabled:border-subtle disabled:bg-opacity-30 disabled:text-muted disabled:hover:bg-opacity-30 disabled:hover:text-muted disabled:hover:border-subtle disabled:hover:bg-default", minimal: "text-emphasis hover:bg-subtle focus-visible:bg-subtle focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-offset focus-visible:ring-empthasis disabled:border-subtle disabled:bg-opacity-30 disabled:text-muted disabled:hover:bg-transparent disabled:hover:text-muted disabled:hover:border-subtle", destructive: diff --git a/packages/ui/components/dialog/ConfirmationDialogContent.tsx b/packages/ui/components/dialog/ConfirmationDialogContent.tsx index b25fbbc9c9..c615a81acc 100644 --- a/packages/ui/components/dialog/ConfirmationDialogContent.tsx +++ b/packages/ui/components/dialog/ConfirmationDialogContent.tsx @@ -69,7 +69,11 @@ export function ConfirmationDialogContent(props: PropsWithChildren<ConfirmationD {confirmBtn ? ( confirmBtn ) : ( - <DialogClose color="primary" loading={isLoading} onClick={(e) => onConfirm && onConfirm(e)}> + <DialogClose + color="primary" + loading={isLoading} + onClick={(e) => onConfirm && onConfirm(e)} + data-testid="dialog-confirmation"> {isLoading ? loadingText : confirmBtnText} </DialogClose> )} diff --git a/packages/ui/components/dialog/Dialog.docs.mdx b/packages/ui/components/dialog/Dialog.docs.mdx new file mode 100644 index 0000000000..eef8469f8a --- /dev/null +++ b/packages/ui/components/dialog/Dialog.docs.mdx @@ -0,0 +1,52 @@ +import { Meta } from "@storybook/blocks"; +import { Title, CustomArgsTable } from "@calcom/storybook/components"; +import { Dialog, DialogContent, DialogFooter, DialogClose, DialogHeader } from "./Dialog"; +import * as DialogStories from "./Dialog.stories"; + +<Meta of={DialogStories} /> + +<Title title="Dialog" suffix="Brief" subtitle="Version 1.0 — Last Update: 18 Aug 2023" /> + +## Definition + +The `Dialog` component provides a flexible way to create dialogs in your application. + +## Structure + +The `Dialog` component is composed of the following components: + +- `Dialog`: The main component that wraps the entire dialog. It manages the dialog's open and close states. + +- `DialogContent`: Represents the content of the dialog. It can have different sizes, types, and an optional icon. + +- `DialogHeader`: Renders the header of the dialog, including the title and subtitle. + +- `DialogFooter`: Renders the footer of the dialog, which can contain action buttons. + +- `DialogClose`: Renders a close button for the dialog. + +## Components Arguments + +### Dialog + +<CustomArgsTable of={Dialog} /> + +### DialogContent + +<CustomArgsTable of={DialogContent} /> + +### DialogHeader + +<CustomArgsTable of={DialogHeader} /> + +### DialogFooter + +<CustomArgsTable of={DialogFooter} /> + +### DialogClose + +<CustomArgsTable of={DialogClose} /> + +{/* ## Dialog Story + +<Canvas of={DialogStories.Default}/> */} diff --git a/packages/ui/components/dialog/Dialog.stories.tsx b/packages/ui/components/dialog/Dialog.stories.tsx new file mode 100644 index 0000000000..71abf446ab --- /dev/null +++ b/packages/ui/components/dialog/Dialog.stories.tsx @@ -0,0 +1,87 @@ +import type { Meta, StoryObj } from "@storybook/react"; +import type { ComponentProps } from "react"; + +import { Dialog, DialogContent, DialogFooter, DialogClose, DialogHeader } from "./Dialog"; + +type StoryArgs = ComponentProps<typeof Dialog> & + ComponentProps<typeof DialogContent> & + ComponentProps<typeof DialogHeader> & + ComponentProps<typeof DialogFooter> & + ComponentProps<typeof DialogClose> & { + onClick: (...args: unknown[]) => void; + }; + +const meta: Meta<StoryArgs> = { + component: Dialog, + parameters: { + nextjs: { + appDirectory: true, + }, + }, + title: "UI/Dialog", + argTypes: { + title: { + control: "text", + }, + description: { + control: "text", + }, + type: { + options: ["creation", "confirmation"], + control: { + type: "select", + }, + }, + open: { + control: "boolean", + }, + showDivider: { + control: "boolean", + }, + disabled: { + control: "boolean", + }, + color: { + options: ["minimal", "primary", "secondary", "emphasis"], + control: { + type: "select", + }, + }, + onClick: { action: "clicked" }, // this is a storybook action addons action + }, + render: ({ title, description, type, open, showDivider, disabled, color, onClick }) => ( + <Dialog open={open}> + <DialogContent type={type}> + <DialogHeader title={title} subtitle={description} /> + <DialogFooter showDivider={showDivider}> + <DialogClose + disabled={disabled} + color={color} + onClick={() => { + const currentUrl = new URL(window.location.href); + currentUrl.searchParams.set("args", "open:false"); + window.open(currentUrl.toString(), "_self"); + onClick(); + }} + /> + </DialogFooter> + </DialogContent> + </Dialog> + ), +}; + +export default meta; +type Story = StoryObj<StoryArgs>; + +export const Default: Story = { + name: "Dialog", + args: { + title: "Example Dialog", + description: "Example Dialog Description", + type: "creation", + open: true, + showDivider: false, + disabled: false, + color: "minimal", + }, +}; diff --git a/packages/ui/components/dialog/dialog.stories.mdx b/packages/ui/components/dialog/dialog.stories.mdx deleted file mode 100644 index e06fe3e75c..0000000000 --- a/packages/ui/components/dialog/dialog.stories.mdx +++ /dev/null @@ -1,114 +0,0 @@ -import { Canvas, Meta, Story } from "@storybook/addon-docs"; - -import { Title, CustomArgsTable } from "@calcom/storybook/components"; - -import { Dialog, DialogContent, DialogFooter, DialogClose, DialogHeader } from "./Dialog"; - -<Meta title="UI/Dialog" component={Dialog} /> - -<Title title="Dialog" suffix="Brief" subtitle="Version 1.0 — Last Update: 18 Aug 2023" /> - -## Definition - -The `Dialog` component provides a flexible way to create dialogs in your application. - -## Structure - -The `Dialog` component is composed of the following components: - -- `Dialog`: The main component that wraps the entire dialog. It manages the dialog's open and close states. - -- `DialogContent`: Represents the content of the dialog. It can have different sizes, types, and an optional icon. - -- `DialogHeader`: Renders the header of the dialog, including the title and subtitle. - -- `DialogFooter`: Renders the footer of the dialog, which can contain action buttons. - -- `DialogClose`: Renders a close button for the dialog. - -## Components Arguments - -### Dialog - -<CustomArgsTable of={Dialog} /> - -### DialogContent - -<CustomArgsTable of={DialogContent} /> - -### DialogHeader - -<CustomArgsTable of={DialogHeader} /> - -### DialogFooter - -<CustomArgsTable of={DialogFooter} /> - -### DialogClose - -<CustomArgsTable of={DialogClose} /> - -## Dialog Story - -<Canvas> - <Story - name="Dialog" - args={{ - title: "Example Dialog", - description: "Example Dialog Description", - type: "creation", - open: true, - showDivider: false, - disabled: false, - color: "minimal", - }} - argTypes={{ - title: { - control: "text", - }, - description: { - control: "text", - }, - type: { - control: { - type: "select", - options: ["creation", "confirmation"], - }, - }, - open: { - control: "boolean", - }, - showDivider: { - control: "boolean", - }, - disabled: { - control: "boolean", - }, - color: { - control: { - type: "select", - options: ["minimal", "primary", "secondary", "emphasis"], - }, - }, - onClick: { action: "clicked" }, - }}> - {({ title, description, type, open, showDivider, disabled, color, onClick }) => ( - <Dialog title="Default" open={open}> - <DialogContent type={type}> - <DialogHeader title={title} subtitle={description} /> - <DialogFooter showDivider={showDivider}> - <DialogClose - disabled={disabled} - color={color} - onClick={() => { - const newPath = "?path=/story/ui-dialog--dialog&args=open:false"; - window.open(newPath, "_self"); - onClick(); - }} - /> - </DialogFooter> - </DialogContent> - </Dialog> - )} - </Story> -</Canvas> diff --git a/packages/ui/components/form/color-picker/colorpicker.stories.mdx b/packages/ui/components/form/color-picker/colorpicker.stories.mdx index 39398708b3..a3b7213c1e 100644 --- a/packages/ui/components/form/color-picker/colorpicker.stories.mdx +++ b/packages/ui/components/form/color-picker/colorpicker.stories.mdx @@ -1,4 +1,4 @@ -import { TooltipProvider } from "@radix-ui/react-tooltip"; +import { Tooltip } from "@radix-ui/react-tooltip"; import { Canvas, Meta, Story } from "@storybook/addon-docs"; import { @@ -66,17 +66,15 @@ The `Color Picker` takes in several props {({ defaultValue, onChange, resetDefaultValue, className, popoverAlign }) => ( <VariantsTable titles={["Default"]} columnMinWidth={150}> <VariantRow> - <TooltipProvider> - <Tooltip content="color picker"> - <ColorPicker - defaultValue={defaultValue} - onChange={onChange} - resetDefaultValue={resetDefaultValue} - className={className} - popoverAlign={popoverAlign} - /> - </Tooltip> - </TooltipProvider> + <Tooltip content="color picker"> + <ColorPicker + defaultValue={defaultValue} + onChange={onChange} + resetDefaultValue={resetDefaultValue} + className={className} + popoverAlign={popoverAlign} + /> + </Tooltip> </VariantRow> </VariantsTable> )} diff --git a/packages/ui/components/form/color-picker/colorpicker.test.tsx b/packages/ui/components/form/color-picker/colorpicker.test.tsx index 9ea9bef86e..20a2411dab 100644 --- a/packages/ui/components/form/color-picker/colorpicker.test.tsx +++ b/packages/ui/components/form/color-picker/colorpicker.test.tsx @@ -46,14 +46,9 @@ describe("Tests for ColorPicker component", () => { render(<ColorPicker defaultValue={defaultValue} onChange={onChange} />); const colorInput = screen.getByRole("textbox"); - await act(async () => { - userEvent.clear(colorInput); - }); + await act(async () => userEvent.clear(colorInput)); const newColorValue = "#00FF00"; - await act(async () => { - userEvent.type(colorInput, newColorValue); - }); - + await act(async () => await userEvent.type(colorInput, newColorValue)); expect(screen.getByRole("button", { name: "pick colors" })).toHaveStyle( `background-color: ${newColorValue}` ); diff --git a/packages/ui/components/form/inputs/Input.tsx b/packages/ui/components/form/inputs/Input.tsx index 0b87432d60..a259c21769 100644 --- a/packages/ui/components/form/inputs/Input.tsx +++ b/packages/ui/components/form/inputs/Input.tsx @@ -31,35 +31,33 @@ export const PasswordField = forwardRef<HTMLInputElement, InputFieldProps>(funct const textLabel = isPasswordVisible ? t("hide_password") : t("show_password"); return ( - <div className="[&_.group:hover_.addon-wrapper]:border-emphasis relative [&_.group:focus-within_.addon-wrapper]:border-neutral-300"> - <InputField - type={isPasswordVisible ? "text" : "password"} - placeholder={props.placeholder || "•••••••••••••"} - ref={ref} - {...props} - className={classNames( - "addon-wrapper mb-0 ltr:border-r-0 ltr:pr-10 rtl:border-l-0 rtl:pl-10", - props.className - )} - addOnFilled={false} - addOnSuffix={ - <Tooltip content={textLabel}> - <button - className="text-emphasis h-9" - tabIndex={-1} - type="button" - onClick={() => toggleIsPasswordVisible()}> - {isPasswordVisible ? ( - <EyeOff className="h-4 stroke-[2.5px]" /> - ) : ( - <Eye className="h-4 stroke-[2.5px]" /> - )} - <span className="sr-only">{textLabel}</span> - </button> - </Tooltip> - } - /> - </div> + <InputField + type={isPasswordVisible ? "text" : "password"} + placeholder={props.placeholder || "•••••••••••••"} + ref={ref} + {...props} + className={classNames( + "addon-wrapper mb-0 ltr:border-r-0 ltr:pr-10 rtl:border-l-0 rtl:pl-10", + props.className + )} + addOnFilled={false} + addOnSuffix={ + <Tooltip content={textLabel}> + <button + className="text-emphasis h-9" + tabIndex={-1} + type="button" + onClick={() => toggleIsPasswordVisible()}> + {isPasswordVisible ? ( + <EyeOff className="h-4 stroke-[2.5px]" /> + ) : ( + <Eye className="h-4 stroke-[2.5px]" /> + )} + <span className="sr-only">{textLabel}</span> + </button> + </Tooltip> + } + /> ); }); diff --git a/packages/ui/components/form/inputs/TextField.tsx b/packages/ui/components/form/inputs/TextField.tsx index 1fc0b36f1f..07b0a046cd 100644 --- a/packages/ui/components/form/inputs/TextField.tsx +++ b/packages/ui/components/form/inputs/TextField.tsx @@ -107,7 +107,9 @@ export const InputField = forwardRef<HTMLInputElement, InputFieldProps>(function dir="ltr" className="focus-within:ring-brand-default group relative mb-1 flex items-center rounded-md focus-within:outline-none focus-within:ring-2"> {addOnLeading && ( - <Addon isFilled={addOnFilled} className={classNames("rounded-l-md border-r-0", addOnClassname)}> + <Addon + isFilled={addOnFilled} + className={classNames("ltr:rounded-l-md rtl:rounded-r-md", addOnClassname)}> {addOnLeading} </Addon> )} diff --git a/packages/ui/components/form/switch/Switch.tsx b/packages/ui/components/form/switch/Switch.tsx index b37305f9e6..6944f8349a 100644 --- a/packages/ui/components/form/switch/Switch.tsx +++ b/packages/ui/components/form/switch/Switch.tsx @@ -42,7 +42,7 @@ const Switch = ( {LockedIcon && <div className="mr-2">{LockedIcon}</div>} <PrimitiveSwitch.Root className={cx( - isChecked ? "bg-brand-default" : "bg-emphasis", + isChecked ? "bg-brand-default dark:bg-emphasis" : "bg-emphasis", primitiveProps.disabled && "cursor-not-allowed", "focus:ring-brand-default h-5 w-[34px] rounded-full shadow-none focus:border-neutral-300 focus:outline-none focus:ring-2 focus:ring-neutral-800 focus:ring-offset-1", props.className diff --git a/packages/ui/components/form/wizard/wizard.stories.mdx b/packages/ui/components/form/wizard/wizard.stories.mdx index 1b06fdc77b..e31277b354 100644 --- a/packages/ui/components/form/wizard/wizard.stories.mdx +++ b/packages/ui/components/form/wizard/wizard.stories.mdx @@ -1,5 +1,4 @@ import { Canvas, Meta, Story } from "@storybook/addon-docs"; -import { useRouter } from "next/router"; import { CustomArgsTable, Title, VariantsTable, VariantRow } from "@calcom/storybook/components"; @@ -27,6 +26,11 @@ To observe the actual step navigation behavior, please refer to the Storybook st <Canvas> <Story + parameters={{ + nextjs: { + appDirectory: true, + }, + }} name="Basic" args={{ href: "/wizard", diff --git a/packages/ui/components/image-uploader/ImageUploader.tsx b/packages/ui/components/image-uploader/ImageUploader.tsx index 6f77756f07..2158d606e5 100644 --- a/packages/ui/components/image-uploader/ImageUploader.tsx +++ b/packages/ui/components/image-uploader/ImageUploader.tsx @@ -174,7 +174,7 @@ export default function ImageUploader({ color={triggerButtonColor ?? "secondary"} type="button" data-testid="open-upload-avatar-dialog" - className="py-1 text-sm"> + className="cursor-pointer py-1 text-sm"> {buttonMsg} </Button> </DialogTrigger> @@ -196,7 +196,7 @@ export default function ImageUploader({ {result && <CropContainer imageSrc={result as string} onCropComplete={setCroppedAreaPixels} />} <label data-testid="open-upload-image-filechooser" - className="bg-subtle hover:bg-muted hover:text-emphasis border-subtle text-default mt-8 rounded-sm border px-3 py-1 text-xs font-medium leading-4 focus:outline-none focus:ring-2 focus:ring-neutral-900 focus:ring-offset-1"> + className="bg-subtle hover:bg-muted hover:text-emphasis border-subtle text-default mt-8 cursor-pointer rounded-sm border px-3 py-1 text-xs font-medium leading-4 focus:outline-none focus:ring-2 focus:ring-neutral-900 focus:ring-offset-1"> <input onInput={onInputFile} type="file" diff --git a/packages/ui/components/image-uploader/imageUploader.stories.mdx b/packages/ui/components/image-uploader/imageUploader.stories.mdx index 9260a70b9b..a0c863b69f 100644 --- a/packages/ui/components/image-uploader/imageUploader.stories.mdx +++ b/packages/ui/components/image-uploader/imageUploader.stories.mdx @@ -22,6 +22,11 @@ Below are the props for `Image uploader` <Canvas> <Story + parameters={{ + nextjs: { + appDirectory: true, + }, + }} name="ImageUploader" play={({ canvasElement }) => { const darkVariantContainer = canvasElement.querySelector("#dark-variant"); diff --git a/packages/ui/components/layout/spacing.stories.mdx b/packages/ui/components/layout/spacing.stories.mdx index 11c1472ec8..c6431317c1 100644 --- a/packages/ui/components/layout/spacing.stories.mdx +++ b/packages/ui/components/layout/spacing.stories.mdx @@ -26,7 +26,7 @@ Defines the spacing guide used in Cal.coms design system <Examples title="Spacing"> <TooltipPrimitive.Provider> - <> + <div className="flex flex-row gap-6"> <Example title="0"></Example> <Example title="px"> <Tooltip content="1px"> @@ -78,6 +78,6 @@ Defines the spacing guide used in Cal.coms design system <div className="bg-inverted h-4 w-10 rounded-sm"> </div> </Tooltip> </Example> - </> + </div> </TooltipPrimitive.Provider> </Examples> diff --git a/packages/ui/components/navigation/tabs/__stories__/verticalTabs.stories.mdx b/packages/ui/components/navigation/tabs/__stories__/verticalTabs.stories.mdx index 6b7b3ea2c6..bfc8ea9c5a 100644 --- a/packages/ui/components/navigation/tabs/__stories__/verticalTabs.stories.mdx +++ b/packages/ui/components/navigation/tabs/__stories__/verticalTabs.stories.mdx @@ -1,4 +1,4 @@ -import { Meta, Story } from "@storybook/addon-docs/blocks"; +import { Meta, Story, Canvas } from "@storybook/addon-docs/blocks"; import { Title, @@ -6,7 +6,7 @@ import { Examples, Example, VariantsTable, - VariantsRow, + VariantRow, } from "@calcom/storybook/components"; import { Plus } from "@calcom/ui/components/icon"; diff --git a/packages/ui/components/tooltip/Tooltip.docs.mdx b/packages/ui/components/tooltip/Tooltip.docs.mdx new file mode 100644 index 0000000000..fd7fe7d344 --- /dev/null +++ b/packages/ui/components/tooltip/Tooltip.docs.mdx @@ -0,0 +1,20 @@ +import { Canvas, Meta } from "@storybook/blocks"; +import { Title, CustomArgsTable } from "@calcom/storybook/components"; +import { TooltipProvider } from "@radix-ui/react-tooltip"; +import { Tooltip } from "./Tooltip"; + +import * as TooltipStories from "./Tooltip.stories"; + +<Meta of={TooltipStories} /> + +<Title title="Tooltip" suffix="Brief" subtitle="Version 2.0 — Last Update: 06 Jan 2023" /> + +## Definition + +Tooltip components can be used to provide additional information about an element when the user hovers over or focuses on the element. + +<TooltipProvider> + <CustomArgsTable of={Tooltip} /> +</TooltipProvider> + +<Canvas of={TooltipStories.Default}/> diff --git a/packages/ui/components/tooltip/Tooltip.stories.tsx b/packages/ui/components/tooltip/Tooltip.stories.tsx new file mode 100644 index 0000000000..f7d79d1f47 --- /dev/null +++ b/packages/ui/components/tooltip/Tooltip.stories.tsx @@ -0,0 +1,37 @@ +import type { Meta, StoryObj } from "@storybook/react"; + +import { VariantRow, VariantsTable } from "@calcom/storybook/components"; + +import { Tooltip } from "./Tooltip"; + +const meta: Meta<typeof Tooltip> = { + component: Tooltip, + title: "UI/Tooltip", +}; + +export default meta; +type Story = StoryObj<typeof Tooltip>; + +export const Default: Story = { + name: "Tooltip", + parameters: { + hoverMsg: "Click to copy", + alertMsg: "Copied!", + content: "Copy me!", + }, + render: (_, { parameters: { content, hoverMsg, alertMsg } }) => ( + <VariantsTable titles={[]}> + <VariantRow variant="Default"> + <Tooltip content={`${hoverMsg}`}> + <span + className="dark:text-darkgray-50 bg-brand-default dark:bg-darkgray-900 rounded-md p-2 text-gray-100 hover:cursor-pointer" + onClick={() => { + alert(`${alertMsg}`); + }}> + {content} + </span> + </Tooltip> + </VariantRow> + </VariantsTable> + ), +}; diff --git a/packages/ui/components/tooltip/tooltip.stories.mdx b/packages/ui/components/tooltip/tooltip.stories.mdx deleted file mode 100644 index a70c518c39..0000000000 --- a/packages/ui/components/tooltip/tooltip.stories.mdx +++ /dev/null @@ -1,69 +0,0 @@ -import { TooltipProvider } from "@radix-ui/react-tooltip"; -import { Canvas, Meta, Story, ArgsTable } from "@storybook/addon-docs"; - -import { - Examples, - Example, - Note, - Title, - CustomArgsTable, - VariantsTable, - VariantRow, -} from "@calcom/storybook/components"; - -import Tooltip from "./Tooltip"; - -<Meta title="UI/Tooltip" component={Tooltip} /> - -<Title title="Tooltip" suffix="Brief" subtitle="Version 2.0 — Last Update: 06 Jan 2023" /> - -## Definition - -Tooltip components can be used to provide additional information about an element when the user hovers over or focuses on the element. - -<CustomArgsTable of={Tooltip} /> - -<Canvas> - <Story - name="Tooltip" - args={{ - alertMsg: "Copied!", - hoverMsg: "Copy to clipboard", - content: "Hover Me", - }} - argTypes={{ - alertMsg: { - control: { - type: "text", - }, - }, - hoverMsg: { - control: { - type: "text", - }, - }, - content: { - control: { - type: "text", - }, - }, - }}> - {({ alertMsg, hoverMsg, content }) => ( - <TooltipProvider> - <VariantsTable titles={[""]} columnMinWidth={150}> - <VariantRow variant="Default"> - <Tooltip content={`${hoverMsg}`}> - <span - className="dark:text-darkgray-50 bg-brand-default dark:bg-darkgray-900 rounded-md p-2 text-gray-100 hover:cursor-pointer" - onClick={() => { - alert(`${alertMsg}`); - }}> - {content} - </span> - </Tooltip> - </VariantRow> - </VariantsTable> - </TooltipProvider> - )} - </Story> -</Canvas> diff --git a/packages/ui/components/top-banner/TopBanner.tsx b/packages/ui/components/top-banner/TopBanner.tsx index 2ab3155936..69646b1441 100644 --- a/packages/ui/components/top-banner/TopBanner.tsx +++ b/packages/ui/components/top-banner/TopBanner.tsx @@ -1,6 +1,7 @@ import classNames from "classnames"; import type { ComponentType, ReactNode } from "react"; +import { TOP_BANNER_HEIGHT } from "@calcom/lib/constants"; import type { LucideIcon, LucideProps } from "@calcom/ui/components/icon"; import { AlertTriangle, Info } from "@calcom/ui/components/icon"; @@ -40,8 +41,9 @@ export function TopBanner(props: TopBannerProps) { return ( <div data-testid="banner" + style={{ minHeight: TOP_BANNER_HEIGHT }} className={classNames( - "flex min-h-[40px] w-full items-start justify-between gap-8 px-4 py-2 text-center lg:items-center", + "flex w-full items-start justify-between gap-8 px-4 py-2 text-center lg:items-center", variantClassName[variant] )}> <div className="flex flex-1 flex-col items-start justify-center gap-2 p-1 lg:flex-row lg:items-center"> diff --git a/packages/ui/index.tsx b/packages/ui/index.tsx index c0922cb2aa..c7f60603cd 100644 --- a/packages/ui/index.tsx +++ b/packages/ui/index.tsx @@ -164,3 +164,5 @@ export { } from "./components/command"; export { Popover, PopoverContent, PopoverTrigger } from "./components/popover"; + +export { StorybookTrpcProvider } from "./components/mocks/trpc"; diff --git a/packages/ui/package.json b/packages/ui/package.json index 7e44b2f922..ef421807d4 100644 --- a/packages/ui/package.json +++ b/packages/ui/package.json @@ -31,6 +31,8 @@ "@radix-ui/react-portal": "^1.0.0", "@radix-ui/react-select": "^0.1.1", "@react-icons/all-files": "^4.1.0", + "@storybook/blocks": "^7.6.3", + "@storybook/react": "^7.6.3", "@tanstack/react-query": "^4.3.9", "@tanstack/react-table": "^8.9.3", "@wojtekmaj/react-daterange-picker": "^3.3.1", diff --git a/turbo.json b/turbo.json index 5fabef8bca..a91fc56c0d 100644 --- a/turbo.json +++ b/turbo.json @@ -199,6 +199,7 @@ "ANALYZE", "API_KEY_PREFIX", "APP_ROUTER_EVENT_TYPES_ENABLED", + "APP_ROUTER_SETTINGS_ADMIN_ENABLED", "APP_USER_NAME", "BASECAMP3_CLIENT_ID", "BASECAMP3_CLIENT_SECRET", @@ -221,6 +222,7 @@ "CRON_ENABLE_APP_SYNC", "DAILY_API_KEY", "DAILY_SCALE_PLAN", + "DAILY_WEBHOOK_SECRET", "DEBUG", "E2E_TEST_APPLE_CALENDAR_EMAIL", "E2E_TEST_APPLE_CALENDAR_PASSWORD", @@ -336,6 +338,7 @@ "ZOHOCRM_CLIENT_ID", "ZOHOCRM_CLIENT_SECRET", "ZOOM_CLIENT_ID", - "ZOOM_CLIENT_SECRET" + "ZOOM_CLIENT_SECRET", + "RESEND_API_KEY" ] } diff --git a/yarn.lock b/yarn.lock index 224f5a71d1..0d1bea45e5 100644 --- a/yarn.lock +++ b/yarn.lock @@ -238,6 +238,17 @@ __metadata: languageName: node linkType: hard +"@aw-web-design/x-default-browser@npm:1.4.126": + version: 1.4.126 + resolution: "@aw-web-design/x-default-browser@npm:1.4.126" + dependencies: + default-browser-id: 3.0.0 + bin: + x-default-browser: bin/x-default-browser.js + checksum: f63b68a0ff41c8fe478b1b4822e169cac0d26c61b123c0400d5e16a8a5987732b85795aff16d6b21936f9c955f0d32bffbfc166890d3446f74a72a7a2c9633ea + languageName: node + linkType: hard + "@aws-crypto/ie11-detection@npm:^3.0.0": version: 3.0.0 resolution: "@aws-crypto/ie11-detection@npm:3.0.0" @@ -1305,7 +1316,7 @@ __metadata: languageName: node linkType: hard -"@babel/code-frame@npm:^7.0.0, @babel/code-frame@npm:^7.10.4, @babel/code-frame@npm:^7.12.13, @babel/code-frame@npm:^7.16.7, @babel/code-frame@npm:^7.18.6, @babel/code-frame@npm:^7.22.10, @babel/code-frame@npm:^7.22.13, @babel/code-frame@npm:^7.22.5, @babel/code-frame@npm:^7.5.5, @babel/code-frame@npm:^7.8.3": +"@babel/code-frame@npm:^7.0.0, @babel/code-frame@npm:^7.10.4, @babel/code-frame@npm:^7.12.13, @babel/code-frame@npm:^7.16.7, @babel/code-frame@npm:^7.18.6, @babel/code-frame@npm:^7.22.10, @babel/code-frame@npm:^7.22.13, @babel/code-frame@npm:^7.22.5": version: 7.22.13 resolution: "@babel/code-frame@npm:7.22.13" dependencies: @@ -1315,6 +1326,16 @@ __metadata: languageName: node linkType: hard +"@babel/code-frame@npm:^7.23.5": + version: 7.23.5 + resolution: "@babel/code-frame@npm:7.23.5" + dependencies: + "@babel/highlight": ^7.23.4 + chalk: ^2.4.2 + checksum: d90981fdf56a2824a9b14d19a4c0e8db93633fd488c772624b4e83e0ceac6039a27cd298a247c3214faa952bf803ba23696172ae7e7235f3b97f43ba278c569a + languageName: node + linkType: hard + "@babel/compat-data@npm:^7.20.5, @babel/compat-data@npm:^7.22.6, @babel/compat-data@npm:^7.22.9": version: 7.22.9 resolution: "@babel/compat-data@npm:7.22.9" @@ -1322,31 +1343,37 @@ __metadata: languageName: node linkType: hard -"@babel/core@npm:7.12.9": - version: 7.12.9 - resolution: "@babel/core@npm:7.12.9" - dependencies: - "@babel/code-frame": ^7.10.4 - "@babel/generator": ^7.12.5 - "@babel/helper-module-transforms": ^7.12.1 - "@babel/helpers": ^7.12.5 - "@babel/parser": ^7.12.7 - "@babel/template": ^7.12.7 - "@babel/traverse": ^7.12.9 - "@babel/types": ^7.12.7 - convert-source-map: ^1.7.0 - debug: ^4.1.0 - gensync: ^1.0.0-beta.1 - json5: ^2.1.2 - lodash: ^4.17.19 - resolve: ^1.3.2 - semver: ^5.4.1 - source-map: ^0.5.0 - checksum: 4d34eca4688214a4eb6bd5dde906b69a7824f17b931f52cd03628a8ac94d8fbe15565aebffdde106e974c8738cd64ac62c6a6060baa7139a06db1f18c4ff872d +"@babel/compat-data@npm:^7.23.3, @babel/compat-data@npm:^7.23.5": + version: 7.23.5 + resolution: "@babel/compat-data@npm:7.23.5" + checksum: 06ce244cda5763295a0ea924728c09bae57d35713b675175227278896946f922a63edf803c322f855a3878323d48d0255a2a3023409d2a123483c8a69ebb4744 languageName: node linkType: hard -"@babel/core@npm:^7.1.0, @babel/core@npm:^7.12.10, @babel/core@npm:^7.12.3, @babel/core@npm:^7.18.10, @babel/core@npm:^7.19.6, @babel/core@npm:^7.7.5": +"@babel/core@npm:^7.11.6, @babel/core@npm:^7.18.9, @babel/core@npm:^7.23.0, @babel/core@npm:^7.23.2": + version: 7.23.5 + resolution: "@babel/core@npm:7.23.5" + dependencies: + "@ampproject/remapping": ^2.2.0 + "@babel/code-frame": ^7.23.5 + "@babel/generator": ^7.23.5 + "@babel/helper-compilation-targets": ^7.22.15 + "@babel/helper-module-transforms": ^7.23.3 + "@babel/helpers": ^7.23.5 + "@babel/parser": ^7.23.5 + "@babel/template": ^7.22.15 + "@babel/traverse": ^7.23.5 + "@babel/types": ^7.23.5 + convert-source-map: ^2.0.0 + debug: ^4.1.0 + gensync: ^1.0.0-beta.2 + json5: ^2.2.3 + semver: ^6.3.1 + checksum: 5e5dfb1e61f298676f1fca18c646dbf6fb164ca1056b0169b8d42b7f5c35e026d81823582ccb2358e93a61b035e22b3ad37e2abaae4bf43f1ffb93b6ce19466e + languageName: node + linkType: hard + +"@babel/core@npm:^7.12.3, @babel/core@npm:^7.19.6": version: 7.22.11 resolution: "@babel/core@npm:7.22.11" dependencies: @@ -1403,18 +1430,6 @@ __metadata: languageName: node linkType: hard -"@babel/generator@npm:^7.12.11, @babel/generator@npm:^7.12.5, @babel/generator@npm:^7.17.3, @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.14.0, @babel/generator@npm:^7.18.13, @babel/generator@npm:^7.23.0": version: 7.23.0 resolution: "@babel/generator@npm:7.23.0" @@ -1427,7 +1442,31 @@ __metadata: languageName: node linkType: hard -"@babel/helper-annotate-as-pure@npm:^7.18.6, @babel/helper-annotate-as-pure@npm:^7.22.5": +"@babel/generator@npm:^7.17.3, @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.23.5": + version: 7.23.5 + resolution: "@babel/generator@npm:7.23.5" + dependencies: + "@babel/types": ^7.23.5 + "@jridgewell/gen-mapping": ^0.3.2 + "@jridgewell/trace-mapping": ^0.3.17 + jsesc: ^2.5.1 + checksum: 845ddda7cf38a3edf4be221cc8a439dee9ea6031355146a1a74047aa8007bc030305b27d8c68ec9e311722c910610bde38c0e13a9ce55225251e7cb7e7f3edc8 + 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: @@ -1436,16 +1475,16 @@ __metadata: languageName: node linkType: hard -"@babel/helper-builder-binary-assignment-operator-visitor@npm:^7.22.5": - version: 7.22.10 - resolution: "@babel/helper-builder-binary-assignment-operator-visitor@npm:7.22.10" +"@babel/helper-builder-binary-assignment-operator-visitor@npm:^7.22.15": + version: 7.22.15 + resolution: "@babel/helper-builder-binary-assignment-operator-visitor@npm:7.22.15" dependencies: - "@babel/types": ^7.22.10 - checksum: 6de4a1f30e6244f9a1efdfcbe89df39923df3d165be606da5ad11319f8a11c12c72c60d9dc5fb696363281e2d6f741444c1af51f525fc7cf1d2a90fe23370bd9 + "@babel/types": ^7.22.15 + checksum: 639c697a1c729f9fafa2dd4c9af2e18568190299b5907bd4c2d0bc818fcbd1e83ffeecc2af24327a7faa7ac4c34edd9d7940510a5e66296c19bad17001cf5c7a languageName: node linkType: hard -"@babel/helper-compilation-targets@npm:^7.13.0, @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": +"@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: @@ -1471,7 +1510,7 @@ __metadata: languageName: node linkType: hard -"@babel/helper-create-class-features-plugin@npm:^7.18.6, @babel/helper-create-class-features-plugin@npm:^7.21.0, @babel/helper-create-class-features-plugin@npm:^7.22.10, @babel/helper-create-class-features-plugin@npm:^7.22.11, @babel/helper-create-class-features-plugin@npm:^7.22.5": +"@babel/helper-create-class-features-plugin@npm:^7.18.6, @babel/helper-create-class-features-plugin@npm:^7.22.5": version: 7.22.11 resolution: "@babel/helper-create-class-features-plugin@npm:7.22.11" dependencies: @@ -1490,6 +1529,25 @@ __metadata: languageName: node linkType: hard +"@babel/helper-create-class-features-plugin@npm:^7.22.15, @babel/helper-create-class-features-plugin@npm:^7.23.5": + version: 7.23.5 + resolution: "@babel/helper-create-class-features-plugin@npm:7.23.5" + dependencies: + "@babel/helper-annotate-as-pure": ^7.22.5 + "@babel/helper-environment-visitor": ^7.22.20 + "@babel/helper-function-name": ^7.23.0 + "@babel/helper-member-expression-to-functions": ^7.23.0 + "@babel/helper-optimise-call-expression": ^7.22.5 + "@babel/helper-replace-supers": ^7.22.20 + "@babel/helper-skip-transparent-expression-wrappers": ^7.22.5 + "@babel/helper-split-export-declaration": ^7.22.6 + semver: ^6.3.1 + peerDependencies: + "@babel/core": ^7.0.0 + checksum: fe7c6c0baca1838bba76ac1330df47b661d932354115ea9e2ea65b179f80b717987d3c3da7e1525fd648e5f2d86c620efc959cabda4d7562b125a27c3ac780d0 + languageName: node + linkType: hard + "@babel/helper-create-regexp-features-plugin@npm:^7.18.6, @babel/helper-create-regexp-features-plugin@npm:^7.22.5": version: 7.22.9 resolution: "@babel/helper-create-regexp-features-plugin@npm:7.22.9" @@ -1503,27 +1561,22 @@ __metadata: languageName: node linkType: hard -"@babel/helper-define-polyfill-provider@npm:^0.1.5": - version: 0.1.5 - resolution: "@babel/helper-define-polyfill-provider@npm:0.1.5" +"@babel/helper-create-regexp-features-plugin@npm:^7.22.15": + version: 7.22.15 + resolution: "@babel/helper-create-regexp-features-plugin@npm:7.22.15" dependencies: - "@babel/helper-compilation-targets": ^7.13.0 - "@babel/helper-module-imports": ^7.12.13 - "@babel/helper-plugin-utils": ^7.13.0 - "@babel/traverse": ^7.13.0 - debug: ^4.1.1 - lodash.debounce: ^4.0.8 - resolve: ^1.14.2 - semver: ^6.1.2 + "@babel/helper-annotate-as-pure": ^7.22.5 + regexpu-core: ^5.3.1 + semver: ^6.3.1 peerDependencies: - "@babel/core": ^7.4.0-0 - checksum: 6f8b61b41730bedc9c4511035b7f2407ea30176c379107dd735aac7d010317a99171bf420959ba37418fb8a857dac7c0e36e1c8576a6560bdd9b690eb4314a95 + "@babel/core": ^7.0.0 + checksum: 0243b8d4854f1dc8861b1029a46d3f6393ad72f366a5a08e36a4648aa682044f06da4c6e87a456260e1e1b33c999f898ba591a0760842c1387bcc93fbf2151a6 languageName: node linkType: hard -"@babel/helper-define-polyfill-provider@npm:^0.4.2": - version: 0.4.2 - resolution: "@babel/helper-define-polyfill-provider@npm:0.4.2" +"@babel/helper-define-polyfill-provider@npm:^0.4.3": + version: 0.4.3 + resolution: "@babel/helper-define-polyfill-provider@npm:0.4.3" dependencies: "@babel/helper-compilation-targets": ^7.22.6 "@babel/helper-plugin-utils": ^7.22.5 @@ -1532,7 +1585,7 @@ __metadata: resolve: ^1.14.2 peerDependencies: "@babel/core": ^7.4.0 || ^8.0.0-0 <8.0.0 - checksum: 1f6dec0c5d0876d278fe15b71238eccc5f74c4e2efa2c78aaafa8bc2cc96336b8e68d94cd1a78497356c96e8b91b8c1f4452179820624d1702aee2f9832e6569 + checksum: 5d21e3f47b320e4b5b644195ec405e7ebc3739e48e65899efc808c5fa9c3bf5b06ce0d8ff5246ca99d1411e368f4557bc66730196c5781a5c4e986ee703bee79 languageName: node linkType: hard @@ -1579,6 +1632,15 @@ __metadata: languageName: node linkType: hard +"@babel/helper-member-expression-to-functions@npm:^7.22.15, @babel/helper-member-expression-to-functions@npm:^7.23.0": + version: 7.23.0 + resolution: "@babel/helper-member-expression-to-functions@npm:7.23.0" + dependencies: + "@babel/types": ^7.23.0 + checksum: 494659361370c979ada711ca685e2efe9460683c36db1b283b446122596602c901e291e09f2f980ecedfe6e0f2bd5386cb59768285446530df10c14df1024e75 + 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" @@ -1606,7 +1668,7 @@ __metadata: languageName: node linkType: hard -"@babel/helper-module-transforms@npm:^7.12.1, @babel/helper-module-transforms@npm:^7.22.5, @babel/helper-module-transforms@npm:^7.22.9": +"@babel/helper-module-transforms@npm:^7.22.9": version: 7.22.9 resolution: "@babel/helper-module-transforms@npm:7.22.9" dependencies: @@ -1636,6 +1698,21 @@ __metadata: languageName: node linkType: hard +"@babel/helper-module-transforms@npm:^7.23.3": + version: 7.23.3 + resolution: "@babel/helper-module-transforms@npm:7.23.3" + dependencies: + "@babel/helper-environment-visitor": ^7.22.20 + "@babel/helper-module-imports": ^7.22.15 + "@babel/helper-simple-access": ^7.22.5 + "@babel/helper-split-export-declaration": ^7.22.6 + "@babel/helper-validator-identifier": ^7.22.20 + peerDependencies: + "@babel/core": ^7.0.0 + checksum: 5d0895cfba0e16ae16f3aa92fee108517023ad89a855289c4eb1d46f7aef4519adf8e6f971e1d55ac20c5461610e17213f1144097a8f932e768a9132e2278d71 + 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" @@ -1645,30 +1722,36 @@ __metadata: 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" - checksum: 639ed8fc462b97a83226cee6bb081b1d77e7f73e8b033d2592ed107ee41d96601e321e5ea53a33e47469c7f1146b250a3dcda5ab873c7de162ab62120c341a41 - languageName: node - linkType: hard - -"@babel/helper-plugin-utils@npm:^7.0.0, @babel/helper-plugin-utils@npm:^7.10.4, @babel/helper-plugin-utils@npm:^7.12.13, @babel/helper-plugin-utils@npm:^7.13.0, @babel/helper-plugin-utils@npm:^7.14.5, @babel/helper-plugin-utils@npm:^7.18.6, @babel/helper-plugin-utils@npm:^7.20.2, @babel/helper-plugin-utils@npm:^7.22.5, @babel/helper-plugin-utils@npm:^7.8.0, @babel/helper-plugin-utils@npm:^7.8.3": +"@babel/helper-plugin-utils@npm:^7.0.0, @babel/helper-plugin-utils@npm:^7.10.4, @babel/helper-plugin-utils@npm:^7.12.13, @babel/helper-plugin-utils@npm:^7.14.5, @babel/helper-plugin-utils@npm:^7.18.6, @babel/helper-plugin-utils@npm:^7.20.2, @babel/helper-plugin-utils@npm:^7.22.5, @babel/helper-plugin-utils@npm:^7.8.0, @babel/helper-plugin-utils@npm:^7.8.3": 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.22.5, @babel/helper-remap-async-to-generator@npm:^7.22.9": - version: 7.22.9 - resolution: "@babel/helper-remap-async-to-generator@npm:7.22.9" +"@babel/helper-remap-async-to-generator@npm:^7.22.20": + version: 7.22.20 + resolution: "@babel/helper-remap-async-to-generator@npm:7.22.20" dependencies: "@babel/helper-annotate-as-pure": ^7.22.5 - "@babel/helper-environment-visitor": ^7.22.5 - "@babel/helper-wrap-function": ^7.22.9 + "@babel/helper-environment-visitor": ^7.22.20 + "@babel/helper-wrap-function": ^7.22.20 peerDependencies: "@babel/core": ^7.0.0 - checksum: 05538079447829b13512157491cc77f9cf1ea7e1680e15cff0682c3ed9ee162de0c4862ece20a6d6b2df28177a1520bcfe45993fbeccf2747a81795a7c3f6290 + checksum: 2fe6300a6f1b58211dffa0aed1b45d4958506d096543663dba83bd9251fe8d670fa909143a65b45e72acb49e7e20fbdb73eae315d9ddaced467948c3329986e7 + languageName: node + linkType: hard + +"@babel/helper-replace-supers@npm:^7.22.20": + version: 7.22.20 + resolution: "@babel/helper-replace-supers@npm:7.22.20" + dependencies: + "@babel/helper-environment-visitor": ^7.22.20 + "@babel/helper-member-expression-to-functions": ^7.22.15 + "@babel/helper-optimise-call-expression": ^7.22.5 + peerDependencies: + "@babel/core": ^7.0.0 + checksum: a0008332e24daedea2e9498733e3c39b389d6d4512637e000f96f62b797e702ee24a407ccbcd7a236a551590a38f31282829a8ef35c50a3c0457d88218cae639 languageName: node linkType: hard @@ -1694,7 +1777,7 @@ __metadata: languageName: node linkType: hard -"@babel/helper-skip-transparent-expression-wrappers@npm:^7.20.0, @babel/helper-skip-transparent-expression-wrappers@npm:^7.22.5": +"@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: @@ -1719,6 +1802,13 @@ __metadata: languageName: node linkType: hard +"@babel/helper-string-parser@npm:^7.23.4": + version: 7.23.4 + resolution: "@babel/helper-string-parser@npm:7.23.4" + checksum: c0641144cf1a7e7dc93f3d5f16d5327465b6cf5d036b48be61ecba41e1eece161b48f46b7f960951b67f8c3533ce506b16dece576baef4d8b3b49f8c65410f90 + languageName: node + linkType: hard + "@babel/helper-validator-identifier@npm:^7.16.7, @babel/helper-validator-identifier@npm:^7.22.5": version: 7.22.5 resolution: "@babel/helper-validator-identifier@npm:7.22.5" @@ -1747,18 +1837,25 @@ __metadata: languageName: node linkType: hard -"@babel/helper-wrap-function@npm:^7.22.9": - version: 7.22.10 - resolution: "@babel/helper-wrap-function@npm:7.22.10" - dependencies: - "@babel/helper-function-name": ^7.22.5 - "@babel/template": ^7.22.5 - "@babel/types": ^7.22.10 - checksum: 854bd85fc1de1d4c633f04aa1f5b6b022fbc013b47d012b6a11a7a9125a1f4a2a4f13a3e0d7a7056fe7eda8a9ecd1ea3daf8af685685a2d1b16578768cfdd28f +"@babel/helper-validator-option@npm:^7.23.5": + version: 7.23.5 + resolution: "@babel/helper-validator-option@npm:7.23.5" + checksum: 537cde2330a8aede223552510e8a13e9c1c8798afee3757995a7d4acae564124fe2bf7e7c3d90d62d3657434a74340a274b3b3b1c6f17e9a2be1f48af29cb09e languageName: node linkType: hard -"@babel/helpers@npm:^7.12.5, @babel/helpers@npm:^7.22.11": +"@babel/helper-wrap-function@npm:^7.22.20": + version: 7.22.20 + resolution: "@babel/helper-wrap-function@npm:7.22.20" + dependencies: + "@babel/helper-function-name": ^7.22.5 + "@babel/template": ^7.22.15 + "@babel/types": ^7.22.19 + checksum: 221ed9b5572612aeb571e4ce6a256f2dee85b3c9536f1dd5e611b0255e5f59a3d0ec392d8d46d4152149156a8109f92f20379b1d6d36abb613176e0e33f05fca + languageName: node + linkType: hard + +"@babel/helpers@npm:^7.22.11": version: 7.22.11 resolution: "@babel/helpers@npm:7.22.11" dependencies: @@ -1780,6 +1877,17 @@ __metadata: languageName: node linkType: hard +"@babel/helpers@npm:^7.23.5": + version: 7.23.5 + resolution: "@babel/helpers@npm:7.23.5" + dependencies: + "@babel/template": ^7.22.15 + "@babel/traverse": ^7.23.5 + "@babel/types": ^7.23.5 + checksum: c16dc8a3bb3d0e02c7ee1222d9d0865ed4b92de44fb8db43ff5afd37a0fc9ea5e2906efa31542c95b30c1a3a9540d66314663c9a23b5bb9b5ec76e8ebc896064 + languageName: node + linkType: hard + "@babel/highlight@npm:^7.22.13": version: 7.22.13 resolution: "@babel/highlight@npm:7.22.13" @@ -1791,12 +1899,23 @@ __metadata: languageName: node linkType: hard -"@babel/parser@npm:^7.12.11, @babel/parser@npm:^7.12.7, @babel/parser@npm:^7.14.7, @babel/parser@npm:^7.17.3, @babel/parser@npm:^7.20.5, @babel/parser@npm:^7.22.11, @babel/parser@npm:^7.22.5": - version: 7.22.14 - resolution: "@babel/parser@npm:7.22.14" +"@babel/highlight@npm:^7.23.4": + version: 7.23.4 + resolution: "@babel/highlight@npm:7.23.4" + dependencies: + "@babel/helper-validator-identifier": ^7.22.20 + chalk: ^2.4.2 + js-tokens: ^4.0.0 + checksum: 643acecdc235f87d925979a979b539a5d7d1f31ae7db8d89047269082694122d11aa85351304c9c978ceeb6d250591ccadb06c366f358ccee08bb9c122476b89 + languageName: node + linkType: hard + +"@babel/parser@npm:^7.1.0, @babel/parser@npm:^7.20.7, @babel/parser@npm:^7.23.5": + version: 7.23.5 + resolution: "@babel/parser@npm:7.23.5" bin: parser: ./bin/babel-parser.js - checksum: a2293971f0889726a3d5a35fcceedc71d2fa4c8d97f438fc348fe0cf7e739affc6e2665e4c6ddd4900714772e19bfd5d6feb967ca1f623b894c0099ecb148b52 + checksum: ea763629310f71580c4a3ea9d3705195b7ba994ada2cc98f9a584ebfdacf54e92b2735d351672824c2c2b03c7f19206899f4d95650d85ce514a822b19a8734c7 languageName: node linkType: hard @@ -1809,31 +1928,52 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@npm:^7.22.5": - version: 7.22.5 - resolution: "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@npm:7.22.5" +"@babel/parser@npm:^7.14.7, @babel/parser@npm:^7.17.3, @babel/parser@npm:^7.20.5, @babel/parser@npm:^7.22.11, @babel/parser@npm:^7.22.5": + version: 7.22.14 + resolution: "@babel/parser@npm:7.22.14" + bin: + parser: ./bin/babel-parser.js + checksum: a2293971f0889726a3d5a35fcceedc71d2fa4c8d97f438fc348fe0cf7e739affc6e2665e4c6ddd4900714772e19bfd5d6feb967ca1f623b894c0099ecb148b52 + languageName: node + linkType: hard + +"@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@npm:^7.23.3": + version: 7.23.3 + resolution: "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@npm:7.23.3" dependencies: "@babel/helper-plugin-utils": ^7.22.5 peerDependencies: "@babel/core": ^7.0.0 - checksum: 1e353a060fb2cd8f1256d28cd768f16fb02513f905b9b6d656fb0242c96c341a196fa188b27c2701506a6e27515359fbcc1a5ca7fa8b9b530cf88fbd137baefc + checksum: ddbaf2c396b7780f15e80ee01d6dd790db076985f3dfeb6527d1a8d4cacf370e49250396a3aa005b2c40233cac214a106232f83703d5e8491848bde273938232 languageName: node linkType: hard -"@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@npm:^7.22.5": - version: 7.22.5 - resolution: "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@npm:7.22.5" +"@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@npm:^7.23.3": + version: 7.23.3 + resolution: "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@npm:7.23.3" dependencies: "@babel/helper-plugin-utils": ^7.22.5 "@babel/helper-skip-transparent-expression-wrappers": ^7.22.5 - "@babel/plugin-transform-optional-chaining": ^7.22.5 + "@babel/plugin-transform-optional-chaining": ^7.23.3 peerDependencies: "@babel/core": ^7.13.0 - checksum: 16e7a5f3bf2f2ac0ca032a70bf0ebd7e886d84dbb712b55c0643c04c495f0f221fbcbca14b5f8f8027fa6c87a3dafae0934022ad2b409384af6c5c356495b7bd + checksum: 434b9d710ae856fa1a456678cc304fbc93915af86d581ee316e077af746a709a741ea39d7e1d4f5b98861b629cc7e87f002d3138f5e836775632466d4c74aef2 languageName: node linkType: hard -"@babel/plugin-proposal-class-properties@npm:^7.0.0, @babel/plugin-proposal-class-properties@npm:^7.12.1": +"@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@npm:^7.23.3": + version: 7.23.3 + resolution: "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@npm:7.23.3" + dependencies: + "@babel/helper-environment-visitor": ^7.22.20 + "@babel/helper-plugin-utils": ^7.22.5 + peerDependencies: + "@babel/core": ^7.0.0 + checksum: 4690123f0ef7c11d6bf1a9579e4f463ce363563b75ec3f6ca66cf68687e39d8d747a82c833847653962f79da367eca895d9095c60d8ebb224a1d4277003acc11 + languageName: node + linkType: hard + +"@babel/plugin-proposal-class-properties@npm:^7.0.0": version: 7.18.6 resolution: "@babel/plugin-proposal-class-properties@npm:7.18.6" dependencies: @@ -1845,59 +1985,7 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-proposal-decorators@npm:^7.12.12": - version: 7.22.10 - resolution: "@babel/plugin-proposal-decorators@npm:7.22.10" - dependencies: - "@babel/helper-create-class-features-plugin": ^7.22.10 - "@babel/helper-plugin-utils": ^7.22.5 - "@babel/helper-replace-supers": ^7.22.9 - "@babel/helper-split-export-declaration": ^7.22.6 - "@babel/plugin-syntax-decorators": ^7.22.10 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: dc5d220f94d3d02a4a68d2e29abc038fe1731634569279956438ba4476e930dab76eac71524be89c9f199731f730e7d2537f947acbefaf29a51130a0e714ecbd - languageName: node - linkType: hard - -"@babel/plugin-proposal-export-default-from@npm:^7.12.1": - version: 7.22.5 - resolution: "@babel/plugin-proposal-export-default-from@npm:7.22.5" - dependencies: - "@babel/helper-plugin-utils": ^7.22.5 - "@babel/plugin-syntax-export-default-from": ^7.22.5 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: fc0ddcebdd1991ad4c82a3a797b7c8ef21bb76dc09df52a58f23a648bfa0db5c3cd580ade9ac28fcecdb1b3cd61f53fbee504b0d99c689929c33da0a7dd4e4f4 - languageName: node - linkType: hard - -"@babel/plugin-proposal-nullish-coalescing-operator@npm:^7.12.1": - version: 7.18.6 - resolution: "@babel/plugin-proposal-nullish-coalescing-operator@npm:7.18.6" - dependencies: - "@babel/helper-plugin-utils": ^7.18.6 - "@babel/plugin-syntax-nullish-coalescing-operator": ^7.8.3 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 949c9ddcdecdaec766ee610ef98f965f928ccc0361dd87cf9f88cf4896a6ccd62fce063d4494778e50da99dea63d270a1be574a62d6ab81cbe9d85884bf55a7d - languageName: node - linkType: hard - -"@babel/plugin-proposal-object-rest-spread@npm:7.12.1": - version: 7.12.1 - resolution: "@babel/plugin-proposal-object-rest-spread@npm:7.12.1" - dependencies: - "@babel/helper-plugin-utils": ^7.10.4 - "@babel/plugin-syntax-object-rest-spread": ^7.8.0 - "@babel/plugin-transform-parameters": ^7.12.1 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 221a41630c9a7162bf0416c71695b3f7f38482078a1d0d3af7abdc4f07ea1c9feed890399158d56c1d0278c971fe6f565ce822e9351e4481f7d98e9ff735dced - languageName: node - linkType: hard - -"@babel/plugin-proposal-object-rest-spread@npm:^7.0.0, @babel/plugin-proposal-object-rest-spread@npm:^7.12.1": +"@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: @@ -1912,31 +2000,6 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-proposal-optional-chaining@npm:^7.12.7": - version: 7.21.0 - resolution: "@babel/plugin-proposal-optional-chaining@npm:7.21.0" - dependencies: - "@babel/helper-plugin-utils": ^7.20.2 - "@babel/helper-skip-transparent-expression-wrappers": ^7.20.0 - "@babel/plugin-syntax-optional-chaining": ^7.8.3 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 11c5449e01b18bb8881e8e005a577fa7be2fe5688e2382c8822d51f8f7005342a301a46af7b273b1f5645f9a7b894c428eee8526342038a275ef6ba4c8d8d746 - languageName: node - linkType: hard - -"@babel/plugin-proposal-private-methods@npm:^7.12.1": - version: 7.18.6 - resolution: "@babel/plugin-proposal-private-methods@npm:7.18.6" - dependencies: - "@babel/helper-create-class-features-plugin": ^7.18.6 - "@babel/helper-plugin-utils": ^7.18.6 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 22d8502ee96bca99ad2c8393e8493e2b8d4507576dd054490fd8201a36824373440106f5b098b6d821b026c7e72b0424ff4aeca69ed5f42e48f029d3a156d5ad - languageName: node - linkType: hard - "@babel/plugin-proposal-private-property-in-object@npm:7.21.0-placeholder-for-preset-env.2": version: 7.21.0-placeholder-for-preset-env.2 resolution: "@babel/plugin-proposal-private-property-in-object@npm:7.21.0-placeholder-for-preset-env.2" @@ -1946,20 +2009,6 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-proposal-private-property-in-object@npm:^7.12.1": - version: 7.21.11 - resolution: "@babel/plugin-proposal-private-property-in-object@npm:7.21.11" - dependencies: - "@babel/helper-annotate-as-pure": ^7.18.6 - "@babel/helper-create-class-features-plugin": ^7.21.0 - "@babel/helper-plugin-utils": ^7.20.2 - "@babel/plugin-syntax-private-property-in-object": ^7.14.5 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 1b880543bc5f525b360b53d97dd30807302bb82615cd42bf931968f59003cac75629563d6b104868db50abd22235b3271fdf679fea5db59a267181a99cc0c265 - languageName: node - linkType: hard - "@babel/plugin-syntax-async-generators@npm:^7.8.4": version: 7.8.4 resolution: "@babel/plugin-syntax-async-generators@npm:7.8.4" @@ -1971,6 +2020,17 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-syntax-bigint@npm:^7.8.3": + version: 7.8.3 + resolution: "@babel/plugin-syntax-bigint@npm:7.8.3" + dependencies: + "@babel/helper-plugin-utils": ^7.8.0 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 3a10849d83e47aec50f367a9e56a6b22d662ddce643334b087f9828f4c3dd73bdc5909aaeabe123fed78515767f9ca43498a0e621c438d1cd2802d7fae3c9648 + languageName: node + linkType: hard + "@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" @@ -1993,17 +2053,6 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-syntax-decorators@npm:^7.22.10": - version: 7.22.10 - resolution: "@babel/plugin-syntax-decorators@npm:7.22.10" - dependencies: - "@babel/helper-plugin-utils": ^7.22.5 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: baaa10fa52d76ee8b9447f7aedb1c8df7cf2ef83ae29c085c07444e691685aa8b1a326dfb7a3a0e3ae4d5f9fd083175e46ea5e2316d8200f0278f3fd54a58696 - languageName: node - linkType: hard - "@babel/plugin-syntax-dynamic-import@npm:^7.8.3": version: 7.8.3 resolution: "@babel/plugin-syntax-dynamic-import@npm:7.8.3" @@ -2015,17 +2064,6 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-syntax-export-default-from@npm:^7.22.5": - version: 7.22.5 - resolution: "@babel/plugin-syntax-export-default-from@npm:7.22.5" - dependencies: - "@babel/helper-plugin-utils": ^7.22.5 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 5b66dea77f9e8e6307b01827a229a49bd98f0928e21bffadf538201fd2705838e621bc80d712fbe48f9f6b1348b78aa95c1e5d5ab75773521ccc399d26152de7 - languageName: node - linkType: hard - "@babel/plugin-syntax-export-namespace-from@npm:^7.8.3": version: 7.8.3 resolution: "@babel/plugin-syntax-export-namespace-from@npm:7.8.3" @@ -2048,6 +2086,17 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-syntax-flow@npm:^7.23.3": + version: 7.23.3 + resolution: "@babel/plugin-syntax-flow@npm:7.23.3" + dependencies: + "@babel/helper-plugin-utils": ^7.22.5 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: c6e6f355d6ace5f4a9e7bb19f1fed2398aeb9b62c4c671a189d81b124f9f5bb77c4225b6e85e19339268c60a021c1e49104e450375de5e6bb70612190d9678af + languageName: node + linkType: hard + "@babel/plugin-syntax-import-assertions@npm:^7.20.0, @babel/plugin-syntax-import-assertions@npm:^7.22.5": version: 7.22.5 resolution: "@babel/plugin-syntax-import-assertions@npm:7.22.5" @@ -2059,14 +2108,25 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-syntax-import-attributes@npm:^7.22.5": - version: 7.22.5 - resolution: "@babel/plugin-syntax-import-attributes@npm:7.22.5" +"@babel/plugin-syntax-import-assertions@npm:^7.23.3": + version: 7.23.3 + resolution: "@babel/plugin-syntax-import-assertions@npm:7.23.3" dependencies: "@babel/helper-plugin-utils": ^7.22.5 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 197b3c5ea2a9649347f033342cb222ab47f4645633695205c0250c6bf2af29e643753b8bb24a2db39948bef08e7c540babfd365591eb57fc110cb30b425ffc47 + checksum: 883e6b35b2da205138caab832d54505271a3fee3fc1e8dc0894502434fc2b5d517cbe93bbfbfef8068a0fb6ec48ebc9eef3f605200a489065ba43d8cddc1c9a7 + languageName: node + linkType: hard + +"@babel/plugin-syntax-import-attributes@npm:^7.23.3": + version: 7.23.3 + resolution: "@babel/plugin-syntax-import-attributes@npm:7.23.3" + dependencies: + "@babel/helper-plugin-utils": ^7.22.5 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 9aed7661ffb920ca75df9f494757466ca92744e43072e0848d87fa4aa61a3f2ee5a22198ac1959856c036434b5614a8f46f1fb70298835dbe28220cdd1d4c11e languageName: node linkType: hard @@ -2092,17 +2152,6 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-syntax-jsx@npm:7.12.1": - version: 7.12.1 - resolution: "@babel/plugin-syntax-jsx@npm:7.12.1" - dependencies: - "@babel/helper-plugin-utils": ^7.10.4 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: d4b9b589c484b2e0856799770f060dff34c67b24d7f4526f66309a0e0e9cf388a5c1f2c0da329d1973cc87d1b2cede8f3dc8facfac59e785d6393a003bcdd0f9 - languageName: node - linkType: hard - "@babel/plugin-syntax-jsx@npm:^7.0.0, @babel/plugin-syntax-jsx@npm:^7.12.13, @babel/plugin-syntax-jsx@npm:^7.22.5": version: 7.22.5 resolution: "@babel/plugin-syntax-jsx@npm:7.22.5" @@ -2114,6 +2163,17 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-syntax-jsx@npm:^7.23.3": + version: 7.23.3 + resolution: "@babel/plugin-syntax-jsx@npm:7.23.3" + dependencies: + "@babel/helper-plugin-utils": ^7.22.5 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 89037694314a74e7f0e7a9c8d3793af5bf6b23d80950c29b360db1c66859d67f60711ea437e70ad6b5b4b29affe17eababda841b6c01107c2b638e0493bafb4e + languageName: node + linkType: hard + "@babel/plugin-syntax-logical-assignment-operators@npm:^7.10.4": version: 7.10.4 resolution: "@babel/plugin-syntax-logical-assignment-operators@npm:7.10.4" @@ -2147,7 +2207,7 @@ __metadata: languageName: node linkType: hard -"@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": +"@babel/plugin-syntax-object-rest-spread@npm:^7.0.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: @@ -2202,14 +2262,14 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-syntax-typescript@npm:^7.22.5": - version: 7.22.5 - resolution: "@babel/plugin-syntax-typescript@npm:7.22.5" +"@babel/plugin-syntax-typescript@npm:^7.23.3": + version: 7.23.3 + resolution: "@babel/plugin-syntax-typescript@npm:7.23.3" dependencies: "@babel/helper-plugin-utils": ^7.22.5 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 8ab7718fbb026d64da93681a57797d60326097fd7cb930380c8bffd9eb101689e90142c760a14b51e8e69c88a73ba3da956cb4520a3b0c65743aee5c71ef360a + checksum: abfad3a19290d258b028e285a1f34c9b8a0cbe46ef79eafed4ed7ffce11b5d0720b5e536c82f91cbd8442cde35a3dd8e861fa70366d87ff06fdc0d4756e30876 languageName: node linkType: hard @@ -2225,7 +2285,7 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-arrow-functions@npm:^7.0.0, @babel/plugin-transform-arrow-functions@npm:^7.12.1, @babel/plugin-transform-arrow-functions@npm:^7.22.5": +"@babel/plugin-transform-arrow-functions@npm:^7.0.0": version: 7.22.5 resolution: "@babel/plugin-transform-arrow-functions@npm:7.22.5" dependencies: @@ -2236,34 +2296,45 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-async-generator-functions@npm:^7.22.11": - version: 7.22.11 - resolution: "@babel/plugin-transform-async-generator-functions@npm:7.22.11" +"@babel/plugin-transform-arrow-functions@npm:^7.23.3": + version: 7.23.3 + resolution: "@babel/plugin-transform-arrow-functions@npm:7.23.3" dependencies: - "@babel/helper-environment-visitor": ^7.22.5 "@babel/helper-plugin-utils": ^7.22.5 - "@babel/helper-remap-async-to-generator": ^7.22.9 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 1e99118176e5366c2636064d09477016ab5272b2a92e78b8edb571d20bc3eaa881789a905b20042942c3c2d04efc530726cf703f937226db5ebc495f5d067e66 + languageName: node + linkType: hard + +"@babel/plugin-transform-async-generator-functions@npm:^7.23.4": + version: 7.23.4 + resolution: "@babel/plugin-transform-async-generator-functions@npm:7.23.4" + dependencies: + "@babel/helper-environment-visitor": ^7.22.20 + "@babel/helper-plugin-utils": ^7.22.5 + "@babel/helper-remap-async-to-generator": ^7.22.20 "@babel/plugin-syntax-async-generators": ^7.8.4 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: f11227a1d2831972a7fe28ed54a618ee251547632dc384b2f291f9d8d6aae1177a68c6bbd7709ab78275fa84e757ae795ec08061d94f6f01826f02a35ee875d4 + checksum: e2fc132c9033711d55209f4781e1fc73f0f4da5e0ca80a2da73dec805166b73c92a6e83571a8994cd2c893a28302e24107e90856202b24781bab734f800102bb languageName: node linkType: hard -"@babel/plugin-transform-async-to-generator@npm:^7.22.5": - version: 7.22.5 - resolution: "@babel/plugin-transform-async-to-generator@npm:7.22.5" +"@babel/plugin-transform-async-to-generator@npm:^7.23.3": + version: 7.23.3 + resolution: "@babel/plugin-transform-async-to-generator@npm:7.23.3" dependencies: - "@babel/helper-module-imports": ^7.22.5 + "@babel/helper-module-imports": ^7.22.15 "@babel/helper-plugin-utils": ^7.22.5 - "@babel/helper-remap-async-to-generator": ^7.22.5 + "@babel/helper-remap-async-to-generator": ^7.22.20 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: b95f23f99dcb379a9f0a1c2a3bbea3f8dc0e1b16dc1ac8b484fe378370169290a7a63d520959a9ba1232837cf74a80e23f6facbe14fd42a3cda6d3c2d7168e62 + checksum: 2e9d9795d4b3b3d8090332104e37061c677f29a1ce65bcbda4099a32d243e5d9520270a44bbabf0fb1fb40d463bd937685b1a1042e646979086c546d55319c3c languageName: node linkType: hard -"@babel/plugin-transform-block-scoped-functions@npm:^7.0.0, @babel/plugin-transform-block-scoped-functions@npm:^7.22.5": +"@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: @@ -2274,6 +2345,17 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-transform-block-scoped-functions@npm:^7.23.3": + version: 7.23.3 + resolution: "@babel/plugin-transform-block-scoped-functions@npm:7.23.3" + dependencies: + "@babel/helper-plugin-utils": ^7.22.5 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: e63b16d94ee5f4d917e669da3db5ea53d1e7e79141a2ec873c1e644678cdafe98daa556d0d359963c827863d6b3665d23d4938a94a4c5053a1619c4ebd01d020 + languageName: node + linkType: hard + "@babel/plugin-transform-block-scoping@npm:^7.0.0": version: 7.23.0 resolution: "@babel/plugin-transform-block-scoping@npm:7.23.0" @@ -2285,14 +2367,14 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-block-scoping@npm:^7.12.12, @babel/plugin-transform-block-scoping@npm:^7.22.10": - version: 7.22.10 - resolution: "@babel/plugin-transform-block-scoping@npm:7.22.10" +"@babel/plugin-transform-block-scoping@npm:^7.23.4": + version: 7.23.4 + resolution: "@babel/plugin-transform-block-scoping@npm:7.23.4" dependencies: "@babel/helper-plugin-utils": ^7.22.5 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: b1d06f358dedcb748a57e5feea4b9285c60593fb2912b921f22898c57c552c78fe18128678c8f84dd4ea1d4e5aebede8783830b24cd63f22c30261156d78bc77 + checksum: fc4b2100dd9f2c47d694b4b35ae8153214ccb4e24ef545c259a9db17211b18b6a430f22799b56db8f6844deaeaa201af45a03331d0c80cc28b0c4e3c814570e4 languageName: node linkType: hard @@ -2308,16 +2390,28 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-class-static-block@npm:^7.22.11": - version: 7.22.11 - resolution: "@babel/plugin-transform-class-static-block@npm:7.22.11" +"@babel/plugin-transform-class-properties@npm:^7.23.3": + version: 7.23.3 + resolution: "@babel/plugin-transform-class-properties@npm:7.23.3" dependencies: - "@babel/helper-create-class-features-plugin": ^7.22.11 + "@babel/helper-create-class-features-plugin": ^7.22.15 + "@babel/helper-plugin-utils": ^7.22.5 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 9c6f8366f667897541d360246de176dd29efc7a13d80a5b48361882f7173d9173be4646c3b7d9b003ccc0e01e25df122330308f33db921fa553aa17ad544b3fc + languageName: node + linkType: hard + +"@babel/plugin-transform-class-static-block@npm:^7.23.4": + version: 7.23.4 + resolution: "@babel/plugin-transform-class-static-block@npm:7.23.4" + dependencies: + "@babel/helper-create-class-features-plugin": ^7.22.15 "@babel/helper-plugin-utils": ^7.22.5 "@babel/plugin-syntax-class-static-block": ^7.14.5 peerDependencies: "@babel/core": ^7.12.0 - checksum: 69f040506fad66f1c6918d288d0e0edbc5c8a07c8b4462c1184ad2f9f08995d68b057126c213871c0853ae0c72afc60ec87492049dfacb20902e32346a448bcb + checksum: c8bfaba19a674fc2eb54edad71e958647360474e3163e8226f1acd63e4e2dbec32a171a0af596c1dc5359aee402cc120fea7abd1fb0e0354b6527f0fc9e8aa1e languageName: node linkType: hard @@ -2340,26 +2434,26 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-classes@npm:^7.12.1, @babel/plugin-transform-classes@npm:^7.22.6": - version: 7.22.6 - resolution: "@babel/plugin-transform-classes@npm:7.22.6" +"@babel/plugin-transform-classes@npm:^7.23.5": + version: 7.23.5 + resolution: "@babel/plugin-transform-classes@npm:7.23.5" 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-compilation-targets": ^7.22.15 + "@babel/helper-environment-visitor": ^7.22.20 + "@babel/helper-function-name": ^7.23.0 "@babel/helper-optimise-call-expression": ^7.22.5 "@babel/helper-plugin-utils": ^7.22.5 - "@babel/helper-replace-supers": ^7.22.5 + "@babel/helper-replace-supers": ^7.22.20 "@babel/helper-split-export-declaration": ^7.22.6 globals: ^11.1.0 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 8380e855c01033dbc7460d9acfbc1fc37c880350fa798c2de8c594ef818ade0e4c96173ec72f05f2a4549d8d37135e18cb62548352d51557b45a0fb4388d2f3f + checksum: 6d0dd3b0828e84a139a51b368f33f315edee5688ef72c68ba25e0175c68ea7357f9c8810b3f61713e368a3063cdcec94f3a2db952e453b0b14ef428a34aa8169 languageName: node linkType: hard -"@babel/plugin-transform-computed-properties@npm:^7.0.0, @babel/plugin-transform-computed-properties@npm:^7.22.5": +"@babel/plugin-transform-computed-properties@npm:^7.0.0": version: 7.22.5 resolution: "@babel/plugin-transform-computed-properties@npm:7.22.5" dependencies: @@ -2371,6 +2465,18 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-transform-computed-properties@npm:^7.23.3": + version: 7.23.3 + resolution: "@babel/plugin-transform-computed-properties@npm:7.23.3" + dependencies: + "@babel/helper-plugin-utils": ^7.22.5 + "@babel/template": ^7.22.15 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 80452661dc25a0956f89fe98cb562e8637a9556fb6c00d312c57653ce7df8798f58d138603c7e1aad96614ee9ccd10c47e50ab9ded6b6eded5adeb230d2a982e + languageName: node + linkType: hard + "@babel/plugin-transform-destructuring@npm:^7.0.0": version: 7.23.0 resolution: "@babel/plugin-transform-destructuring@npm:7.23.0" @@ -2382,61 +2488,61 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-destructuring@npm:^7.12.1, @babel/plugin-transform-destructuring@npm:^7.22.10": - version: 7.22.10 - resolution: "@babel/plugin-transform-destructuring@npm:7.22.10" +"@babel/plugin-transform-destructuring@npm:^7.23.3": + version: 7.23.3 + resolution: "@babel/plugin-transform-destructuring@npm:7.23.3" dependencies: "@babel/helper-plugin-utils": ^7.22.5 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 011707801bd0029fd4f0523d24d06fdc0cbe8c9da280d75728f76713d639c4dc976e1b56a1ba7bff25468f86867efb71c9b4cac81140adbdd0abf2324b19a8bb + checksum: 9e015099877272501162419bfe781689aec5c462cd2aec752ee22288f209eec65969ff11b8fdadca2eaddea71d705d3bba5b9c60752fcc1be67874fcec687105 languageName: node linkType: hard -"@babel/plugin-transform-dotall-regex@npm:^7.22.5": - version: 7.22.5 - resolution: "@babel/plugin-transform-dotall-regex@npm:7.22.5" +"@babel/plugin-transform-dotall-regex@npm:^7.23.3": + version: 7.23.3 + resolution: "@babel/plugin-transform-dotall-regex@npm:7.23.3" dependencies: - "@babel/helper-create-regexp-features-plugin": ^7.22.5 + "@babel/helper-create-regexp-features-plugin": ^7.22.15 "@babel/helper-plugin-utils": ^7.22.5 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 409b658d11e3082c8f69e9cdef2d96e4d6d11256f005772425fb230cc48fd05945edbfbcb709dab293a1a2f01f9c8a5bb7b4131e632b23264039d9f95864b453 + checksum: a2dbbf7f1ea16a97948c37df925cb364337668c41a3948b8d91453f140507bd8a3429030c7ce66d09c299987b27746c19a2dd18b6f17dcb474854b14fd9159a3 languageName: node linkType: hard -"@babel/plugin-transform-duplicate-keys@npm:^7.22.5": - version: 7.22.5 - resolution: "@babel/plugin-transform-duplicate-keys@npm:7.22.5" +"@babel/plugin-transform-duplicate-keys@npm:^7.23.3": + version: 7.23.3 + resolution: "@babel/plugin-transform-duplicate-keys@npm:7.23.3" dependencies: "@babel/helper-plugin-utils": ^7.22.5 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: bb1280fbabaab6fab2ede585df34900712698210a3bd413f4df5bae6d8c24be36b496c92722ae676a7a67d060a4624f4d6c23b923485f906bfba8773c69f55b4 + checksum: c2a21c34dc0839590cd945192cbc46fde541a27e140c48fe1808315934664cdbf18db64889e23c4eeb6bad9d3e049482efdca91d29de5734ffc887c4fbabaa16 languageName: node linkType: hard -"@babel/plugin-transform-dynamic-import@npm:^7.22.11": - version: 7.22.11 - resolution: "@babel/plugin-transform-dynamic-import@npm:7.22.11" +"@babel/plugin-transform-dynamic-import@npm:^7.23.4": + version: 7.23.4 + resolution: "@babel/plugin-transform-dynamic-import@npm:7.23.4" dependencies: "@babel/helper-plugin-utils": ^7.22.5 "@babel/plugin-syntax-dynamic-import": ^7.8.3 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 78fc9c532210bf9e8f231747f542318568ac360ee6c27e80853962c984283c73da3f8f8aebe83c2096090a435b356b092ed85de617a156cbe0729d847632be45 + checksum: 57a722604c430d9f3dacff22001a5f31250e34785d4969527a2ae9160fa86858d0892c5b9ff7a06a04076f8c76c9e6862e0541aadca9c057849961343aab0845 languageName: node linkType: hard -"@babel/plugin-transform-exponentiation-operator@npm:^7.22.5": - version: 7.22.5 - resolution: "@babel/plugin-transform-exponentiation-operator@npm:7.22.5" +"@babel/plugin-transform-exponentiation-operator@npm:^7.23.3": + version: 7.23.3 + resolution: "@babel/plugin-transform-exponentiation-operator@npm:7.23.3" dependencies: - "@babel/helper-builder-binary-assignment-operator-visitor": ^7.22.5 + "@babel/helper-builder-binary-assignment-operator-visitor": ^7.22.15 "@babel/helper-plugin-utils": ^7.22.5 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: f2d660c1b1d51ad5fec1cd5ad426a52187204068c4158f8c4aa977b31535c61b66898d532603eef21c15756827be8277f724c869b888d560f26d7fe848bb5eae + checksum: 00d05ab14ad0f299160fcf9d8f55a1cc1b740e012ab0b5ce30207d2365f091665115557af7d989cd6260d075a252d9e4283de5f2b247dfbbe0e42ae586e6bf66 languageName: node linkType: hard @@ -2452,7 +2558,19 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-flow-strip-types@npm:^7.0.0, @babel/plugin-transform-flow-strip-types@npm:^7.22.5": +"@babel/plugin-transform-export-namespace-from@npm:^7.23.4": + version: 7.23.4 + resolution: "@babel/plugin-transform-export-namespace-from@npm:7.23.4" + dependencies: + "@babel/helper-plugin-utils": ^7.22.5 + "@babel/plugin-syntax-export-namespace-from": ^7.8.3 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 9f770a81bfd03b48d6ba155d452946fd56d6ffe5b7d871e9ec2a0b15e0f424273b632f3ed61838b90015b25bbda988896b7a46c7d964fbf8f6feb5820b309f93 + 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: @@ -2464,6 +2582,18 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-transform-flow-strip-types@npm:^7.23.3": + version: 7.23.3 + resolution: "@babel/plugin-transform-flow-strip-types@npm:7.23.3" + dependencies: + "@babel/helper-plugin-utils": ^7.22.5 + "@babel/plugin-syntax-flow": ^7.23.3 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: de38cc5cf948bc19405ea041292181527a36f59f08d787a590415fac36e9b0c7992f0d3e2fd3b9402089bafdaa1a893291a0edf15beebfd29bdedbbe582fee9b + languageName: node + linkType: hard + "@babel/plugin-transform-for-of@npm:^7.0.0": version: 7.22.15 resolution: "@babel/plugin-transform-for-of@npm:7.22.15" @@ -2475,18 +2605,18 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-for-of@npm:^7.12.1, @babel/plugin-transform-for-of@npm:^7.22.5": - version: 7.22.5 - resolution: "@babel/plugin-transform-for-of@npm:7.22.5" +"@babel/plugin-transform-for-of@npm:^7.23.3": + version: 7.23.3 + resolution: "@babel/plugin-transform-for-of@npm:7.23.3" dependencies: "@babel/helper-plugin-utils": ^7.22.5 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: d7b8d4db010bce7273674caa95c4e6abd909362866ce297e86a2ecaa9ae636e05d525415811db9b3c942155df7f3651d19b91dd6c41f142f7308a97c7cb06023 + checksum: a6288122a5091d96c744b9eb23dc1b2d4cce25f109ac1e26a0ea03c4ea60330e6f3cc58530b33ba7369fa07163b71001399a145238b7e92bff6270ef3b9c32a0 languageName: node linkType: hard -"@babel/plugin-transform-function-name@npm:^7.0.0, @babel/plugin-transform-function-name@npm:^7.22.5": +"@babel/plugin-transform-function-name@npm:^7.0.0": version: 7.22.5 resolution: "@babel/plugin-transform-function-name@npm:7.22.5" dependencies: @@ -2499,19 +2629,32 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-json-strings@npm:^7.22.11": - version: 7.22.11 - resolution: "@babel/plugin-transform-json-strings@npm:7.22.11" +"@babel/plugin-transform-function-name@npm:^7.23.3": + version: 7.23.3 + resolution: "@babel/plugin-transform-function-name@npm:7.23.3" + dependencies: + "@babel/helper-compilation-targets": ^7.22.15 + "@babel/helper-function-name": ^7.23.0 + "@babel/helper-plugin-utils": ^7.22.5 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 355c6dbe07c919575ad42b2f7e020f320866d72f8b79181a16f8e0cd424a2c761d979f03f47d583d9471b55dcd68a8a9d829b58e1eebcd572145b934b48975a6 + languageName: node + linkType: hard + +"@babel/plugin-transform-json-strings@npm:^7.23.4": + version: 7.23.4 + resolution: "@babel/plugin-transform-json-strings@npm:7.23.4" dependencies: "@babel/helper-plugin-utils": ^7.22.5 "@babel/plugin-syntax-json-strings": ^7.8.3 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 50665e5979e66358c50e90a26db53c55917f78175127ac2fa05c7888d156d418ffb930ec0a109353db0a7c5f57c756ce01bfc9825d24cbfd2b3ec453f2ed8cba + checksum: f9019820233cf8955d8ba346df709a0683c120fe86a24ed1c9f003f2db51197b979efc88f010d558a12e1491210fc195a43cd1c7fee5e23b92da38f793a875de languageName: node linkType: hard -"@babel/plugin-transform-literals@npm:^7.0.0, @babel/plugin-transform-literals@npm:^7.22.5": +"@babel/plugin-transform-literals@npm:^7.0.0": version: 7.22.5 resolution: "@babel/plugin-transform-literals@npm:7.22.5" dependencies: @@ -2522,19 +2665,30 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-logical-assignment-operators@npm:^7.22.11": - version: 7.22.11 - resolution: "@babel/plugin-transform-logical-assignment-operators@npm:7.22.11" +"@babel/plugin-transform-literals@npm:^7.23.3": + version: 7.23.3 + resolution: "@babel/plugin-transform-literals@npm:7.23.3" + dependencies: + "@babel/helper-plugin-utils": ^7.22.5 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 519a544cd58586b9001c4c9b18da25a62f17d23c48600ff7a685d75ca9eb18d2c5e8f5476f067f0a8f1fea2a31107eff950b9864833061e6076dcc4bdc3e71ed + languageName: node + linkType: hard + +"@babel/plugin-transform-logical-assignment-operators@npm:^7.23.4": + version: 7.23.4 + resolution: "@babel/plugin-transform-logical-assignment-operators@npm:7.23.4" dependencies: "@babel/helper-plugin-utils": ^7.22.5 "@babel/plugin-syntax-logical-assignment-operators": ^7.10.4 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: c664e9798e85afa7f92f07b867682dee7392046181d82f5d21bae6f2ca26dfe9c8375cdc52b7483c3fc09a983c1989f60eff9fbc4f373b0c0a74090553d05739 + checksum: 2ae1dc9b4ff3bf61a990ff3accdecb2afe3a0ca649b3e74c010078d1cdf29ea490f50ac0a905306a2bcf9ac177889a39ac79bdcc3a0fdf220b3b75fac18d39b5 languageName: node linkType: hard -"@babel/plugin-transform-member-expression-literals@npm:^7.0.0, @babel/plugin-transform-member-expression-literals@npm:^7.22.5": +"@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: @@ -2545,15 +2699,26 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-modules-amd@npm:^7.22.5": - version: 7.22.5 - resolution: "@babel/plugin-transform-modules-amd@npm:7.22.5" +"@babel/plugin-transform-member-expression-literals@npm:^7.23.3": + version: 7.23.3 + resolution: "@babel/plugin-transform-member-expression-literals@npm:7.23.3" dependencies: - "@babel/helper-module-transforms": ^7.22.5 "@babel/helper-plugin-utils": ^7.22.5 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 7da4c4ebbbcf7d182abb59b2046b22d86eee340caf8a22a39ef6a727da2d8acfec1f714fcdcd5054110b280e4934f735e80a6848d192b6834c5d4459a014f04d + checksum: 95cec13c36d447c5aa6b8e4c778b897eeba66dcb675edef01e0d2afcec9e8cb9726baf4f81b4bbae7a782595aed72e6a0d44ffb773272c3ca180fada99bf92db + languageName: node + linkType: hard + +"@babel/plugin-transform-modules-amd@npm:^7.23.3": + version: 7.23.3 + resolution: "@babel/plugin-transform-modules-amd@npm:7.23.3" + dependencies: + "@babel/helper-module-transforms": ^7.23.3 + "@babel/helper-plugin-utils": ^7.22.5 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: d163737b6a3d67ea579c9aa3b83d4df4b5c34d9dcdf25f415f027c0aa8cded7bac2750d2de5464081f67a042ad9e1c03930c2fab42acd79f9e57c00cf969ddff languageName: node linkType: hard @@ -2570,42 +2735,42 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-modules-commonjs@npm:^7.22.11": - version: 7.22.11 - resolution: "@babel/plugin-transform-modules-commonjs@npm:7.22.11" +"@babel/plugin-transform-modules-commonjs@npm:^7.23.0, @babel/plugin-transform-modules-commonjs@npm:^7.23.3": + version: 7.23.3 + resolution: "@babel/plugin-transform-modules-commonjs@npm:7.23.3" dependencies: - "@babel/helper-module-transforms": ^7.22.9 + "@babel/helper-module-transforms": ^7.23.3 "@babel/helper-plugin-utils": ^7.22.5 "@babel/helper-simple-access": ^7.22.5 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: c15ad7f1234a930cab214224bb85f6b3a3f301fa1d4d15bef193e5c11c614ce369551e5cbb708fde8d3f7e1cb84b05e9798a3647a11b56c3d67580e362a712d4 + checksum: 720a231ceade4ae4d2632478db4e7fecf21987d444942b72d523487ac8d715ca97de6c8f415c71e939595e1a4776403e7dc24ed68fe9125ad4acf57753c9bff7 languageName: node linkType: hard -"@babel/plugin-transform-modules-systemjs@npm:^7.22.11": - version: 7.22.11 - resolution: "@babel/plugin-transform-modules-systemjs@npm:7.22.11" +"@babel/plugin-transform-modules-systemjs@npm:^7.23.3": + version: 7.23.3 + resolution: "@babel/plugin-transform-modules-systemjs@npm:7.23.3" dependencies: "@babel/helper-hoist-variables": ^7.22.5 - "@babel/helper-module-transforms": ^7.22.9 + "@babel/helper-module-transforms": ^7.23.3 "@babel/helper-plugin-utils": ^7.22.5 - "@babel/helper-validator-identifier": ^7.22.5 + "@babel/helper-validator-identifier": ^7.22.20 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: d0991e4bdc3352b6a9f4d12b6662e3645d892cd5c3c005ba5f14e65f1e218c6a8f7f4497e64a51d82a046e507aaa7db3143b800b0270dca1824cbd214ff3363d + checksum: 0d2fdd993c785aecac9e0850cd5ed7f7d448f0fbb42992a950cc0590167144df25d82af5aac9a5c99ef913d2286782afa44e577af30c10901c5ee8984910fa1f languageName: node linkType: hard -"@babel/plugin-transform-modules-umd@npm:^7.22.5": - version: 7.22.5 - resolution: "@babel/plugin-transform-modules-umd@npm:7.22.5" +"@babel/plugin-transform-modules-umd@npm:^7.23.3": + version: 7.23.3 + resolution: "@babel/plugin-transform-modules-umd@npm:7.23.3" dependencies: - "@babel/helper-module-transforms": ^7.22.5 + "@babel/helper-module-transforms": ^7.23.3 "@babel/helper-plugin-utils": ^7.22.5 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 46622834c54c551b231963b867adbc80854881b3e516ff29984a8da989bd81665bd70e8cba6710345248e97166689310f544aee1a5773e262845a8f1b3e5b8b4 + checksum: 586a7a2241e8b4e753a37af9466a9ffa8a67b4ba9aa756ad7500712c05d8fa9a8c1ed4f7bd25fae2a8265e6cf8fe781ec85a8ee885dd34cf50d8955ee65f12dc languageName: node linkType: hard @@ -2621,14 +2786,14 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-new-target@npm:^7.22.5": - version: 7.22.5 - resolution: "@babel/plugin-transform-new-target@npm:7.22.5" +"@babel/plugin-transform-new-target@npm:^7.23.3": + version: 7.23.3 + resolution: "@babel/plugin-transform-new-target@npm:7.23.3" dependencies: "@babel/helper-plugin-utils": ^7.22.5 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 6b72112773487a881a1d6ffa680afde08bad699252020e86122180ee7a88854d5da3f15d9bca3331cf2e025df045604494a8208a2e63b486266b07c14e2ffbf3 + checksum: e5053389316fce73ad5201b7777437164f333e24787fbcda4ae489cd2580dbbbdfb5694a7237bad91fabb46b591d771975d69beb1c740b82cb4761625379f00b languageName: node linkType: hard @@ -2644,6 +2809,18 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-transform-nullish-coalescing-operator@npm:^7.23.4": + version: 7.23.4 + resolution: "@babel/plugin-transform-nullish-coalescing-operator@npm:7.23.4" + dependencies: + "@babel/helper-plugin-utils": ^7.22.5 + "@babel/plugin-syntax-nullish-coalescing-operator": ^7.8.3 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: a27d73ea134d3d9560a6b2e26ab60012fba15f1db95865aa0153c18f5ec82cfef6a7b3d8df74e3c2fca81534fa5efeb6cacaf7b08bdb7d123e3dafdd079886a3 + languageName: node + linkType: hard + "@babel/plugin-transform-numeric-separator@npm:^7.22.11": version: 7.22.11 resolution: "@babel/plugin-transform-numeric-separator@npm:7.22.11" @@ -2656,22 +2833,34 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-object-rest-spread@npm:^7.22.11": - version: 7.22.11 - resolution: "@babel/plugin-transform-object-rest-spread@npm:7.22.11" +"@babel/plugin-transform-numeric-separator@npm:^7.23.4": + version: 7.23.4 + resolution: "@babel/plugin-transform-numeric-separator@npm:7.23.4" dependencies: - "@babel/compat-data": ^7.22.9 - "@babel/helper-compilation-targets": ^7.22.10 "@babel/helper-plugin-utils": ^7.22.5 - "@babel/plugin-syntax-object-rest-spread": ^7.8.3 - "@babel/plugin-transform-parameters": ^7.22.5 + "@babel/plugin-syntax-numeric-separator": ^7.10.4 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: b9c9ed8df8d6d7563eb42844d8e3e6748ba8f7568998230f7317bc49304db65828df48fc4b93bf4421772a6c9f7b389f3dd1c4e84379c17dd9ee223fb3fc5245 + checksum: 6ba0e5db3c620a3ec81f9e94507c821f483c15f196868df13fa454cbac719a5449baf73840f5b6eb7d77311b24a2cf8e45db53700d41727f693d46f7caf3eec3 languageName: node linkType: hard -"@babel/plugin-transform-object-super@npm:^7.0.0, @babel/plugin-transform-object-super@npm:^7.22.5": +"@babel/plugin-transform-object-rest-spread@npm:^7.22.15, @babel/plugin-transform-object-rest-spread@npm:^7.23.4": + version: 7.23.4 + resolution: "@babel/plugin-transform-object-rest-spread@npm:7.23.4" + dependencies: + "@babel/compat-data": ^7.23.3 + "@babel/helper-compilation-targets": ^7.22.15 + "@babel/helper-plugin-utils": ^7.22.5 + "@babel/plugin-syntax-object-rest-spread": ^7.8.3 + "@babel/plugin-transform-parameters": ^7.23.3 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 73fec495e327ca3959c1c03d07a621be09df00036c69fff0455af9a008291677ee9d368eec48adacdc6feac703269a649747568b4af4c4e9f134aa71cc5b378d + 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: @@ -2683,28 +2872,40 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-optional-catch-binding@npm:^7.22.11": - version: 7.22.11 - resolution: "@babel/plugin-transform-optional-catch-binding@npm:7.22.11" +"@babel/plugin-transform-object-super@npm:^7.23.3": + version: 7.23.3 + resolution: "@babel/plugin-transform-object-super@npm:7.23.3" + dependencies: + "@babel/helper-plugin-utils": ^7.22.5 + "@babel/helper-replace-supers": ^7.22.20 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: e495497186f621fa79026e183b4f1fbb172fd9df812cbd2d7f02c05b08adbe58012b1a6eb6dd58d11a30343f6ec80d0f4074f9b501d70aa1c94df76d59164c53 + languageName: node + linkType: hard + +"@babel/plugin-transform-optional-catch-binding@npm:^7.23.4": + version: 7.23.4 + resolution: "@babel/plugin-transform-optional-catch-binding@npm:7.23.4" dependencies: "@babel/helper-plugin-utils": ^7.22.5 "@babel/plugin-syntax-optional-catch-binding": ^7.8.3 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: f17abd90e1de67c84d63afea29c8021c74abb2794d3a6eeafb0bbe7372d3db32aefca386e392116ec63884537a4a2815d090d26264d259bacc08f6e3ed05294c + checksum: d50b5ee142cdb088d8b5de1ccf7cea85b18b85d85b52f86618f6e45226372f01ad4cdb29abd4fd35ea99a71fefb37009e0107db7a787dcc21d4d402f97470faf languageName: node linkType: hard -"@babel/plugin-transform-optional-chaining@npm:^7.22.12, @babel/plugin-transform-optional-chaining@npm:^7.22.5": - version: 7.22.12 - resolution: "@babel/plugin-transform-optional-chaining@npm:7.22.12" +"@babel/plugin-transform-optional-chaining@npm:^7.23.0, @babel/plugin-transform-optional-chaining@npm:^7.23.3, @babel/plugin-transform-optional-chaining@npm:^7.23.4": + version: 7.23.4 + resolution: "@babel/plugin-transform-optional-chaining@npm:7.23.4" dependencies: "@babel/helper-plugin-utils": ^7.22.5 "@babel/helper-skip-transparent-expression-wrappers": ^7.22.5 "@babel/plugin-syntax-optional-chaining": ^7.8.3 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 47065439bb721a0967cdcc83895700bb7b18b146b2ef27e43449d7b5a7130a2497afadddc42c616253858cac6732546646b9f0c581f4bb8a3d362baeb4c30bbb + checksum: e7a4c08038288057b7a08d68c4d55396ada9278095509ca51ed8dfb72a7f13f26bdd7c5185de21079fe0a9d60d22c227cb32e300d266c1bda40f70eee9f4bc1e languageName: node linkType: hard @@ -2719,7 +2920,7 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-parameters@npm:^7.12.1, @babel/plugin-transform-parameters@npm:^7.20.7, @babel/plugin-transform-parameters@npm:^7.22.5": +"@babel/plugin-transform-parameters@npm:^7.20.7": version: 7.22.5 resolution: "@babel/plugin-transform-parameters@npm:7.22.5" dependencies: @@ -2730,6 +2931,17 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-transform-parameters@npm:^7.23.3": + version: 7.23.3 + resolution: "@babel/plugin-transform-parameters@npm:7.23.3" + dependencies: + "@babel/helper-plugin-utils": ^7.22.5 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: a735b3e85316d17ec102e3d3d1b6993b429bdb3b494651c9d754e3b7d270462ee1f1a126ccd5e3d871af5e683727e9ef98c9d34d4a42204fffaabff91052ed16 + languageName: node + linkType: hard + "@babel/plugin-transform-private-methods@npm:^7.22.5": version: 7.22.5 resolution: "@babel/plugin-transform-private-methods@npm:7.22.5" @@ -2742,21 +2954,33 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-private-property-in-object@npm:^7.22.11": - version: 7.22.11 - resolution: "@babel/plugin-transform-private-property-in-object@npm:7.22.11" +"@babel/plugin-transform-private-methods@npm:^7.23.3": + version: 7.23.3 + resolution: "@babel/plugin-transform-private-methods@npm:7.23.3" + dependencies: + "@babel/helper-create-class-features-plugin": ^7.22.15 + "@babel/helper-plugin-utils": ^7.22.5 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: cedc1285c49b5a6d9a3d0e5e413b756ac40b3ac2f8f68bdfc3ae268bc8d27b00abd8bb0861c72756ff5dd8bf1eb77211b7feb5baf4fdae2ebbaabe49b9adc1d0 + languageName: node + linkType: hard + +"@babel/plugin-transform-private-property-in-object@npm:^7.23.4": + version: 7.23.4 + resolution: "@babel/plugin-transform-private-property-in-object@npm:7.23.4" dependencies: "@babel/helper-annotate-as-pure": ^7.22.5 - "@babel/helper-create-class-features-plugin": ^7.22.11 + "@babel/helper-create-class-features-plugin": ^7.22.15 "@babel/helper-plugin-utils": ^7.22.5 "@babel/plugin-syntax-private-property-in-object": ^7.14.5 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 4d029d84901e53c46dead7a46e2990a7bc62470f4e4ca58a0d063394f86652fd58fe4eea1eb941da3669cd536b559b9d058b342b59300026346b7a2a51badac8 + checksum: fb7adfe94ea97542f250a70de32bddbc3e0b802381c92be947fec83ebffda57e68533c4d0697152719a3496fdd3ebf3798d451c024cd4ac848fc15ac26b70aa7 languageName: node linkType: hard -"@babel/plugin-transform-property-literals@npm:^7.0.0, @babel/plugin-transform-property-literals@npm:^7.22.5": +"@babel/plugin-transform-property-literals@npm:^7.0.0": version: 7.22.5 resolution: "@babel/plugin-transform-property-literals@npm:7.22.5" dependencies: @@ -2767,7 +2991,18 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-react-display-name@npm:^7.0.0, @babel/plugin-transform-react-display-name@npm:^7.22.5": +"@babel/plugin-transform-property-literals@npm:^7.23.3": + version: 7.23.3 + resolution: "@babel/plugin-transform-property-literals@npm:7.23.3" + dependencies: + "@babel/helper-plugin-utils": ^7.22.5 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 16b048c8e87f25095f6d53634ab7912992f78e6997a6ff549edc3cf519db4fca01c7b4e0798530d7f6a05228ceee479251245cdd850a5531c6e6f404104d6cc9 + 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: @@ -2778,6 +3013,17 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-transform-react-display-name@npm:^7.23.3": + version: 7.23.3 + resolution: "@babel/plugin-transform-react-display-name@npm:7.23.3" + dependencies: + "@babel/helper-plugin-utils": ^7.22.5 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 7f86964e8434d3ddbd3c81d2690c9b66dbf1cd8bd9512e2e24500e9fa8cf378bc52c0853270b3b82143aba5965aec04721df7abdb768f952b44f5c6e0b198779 + languageName: node + linkType: hard + "@babel/plugin-transform-react-jsx-development@npm:^7.18.6, @babel/plugin-transform-react-jsx-development@npm:^7.22.5": version: 7.22.5 resolution: "@babel/plugin-transform-react-jsx-development@npm:7.22.5" @@ -2800,7 +3046,7 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-react-jsx-source@npm:^7.18.6, @babel/plugin-transform-react-jsx-source@npm:^7.19.6": +"@babel/plugin-transform-react-jsx-source@npm:^7.19.6": version: 7.22.5 resolution: "@babel/plugin-transform-react-jsx-source@npm:7.22.5" dependencies: @@ -2826,7 +3072,7 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-react-jsx@npm:^7.12.12, @babel/plugin-transform-react-jsx@npm:^7.18.10, @babel/plugin-transform-react-jsx@npm:^7.19.0, @babel/plugin-transform-react-jsx@npm:^7.22.5": +"@babel/plugin-transform-react-jsx@npm:^7.19.0, @babel/plugin-transform-react-jsx@npm:^7.22.5": version: 7.22.5 resolution: "@babel/plugin-transform-react-jsx@npm:7.22.5" dependencies: @@ -2841,42 +3087,73 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-react-pure-annotations@npm:^7.22.5": - version: 7.22.5 - resolution: "@babel/plugin-transform-react-pure-annotations@npm:7.22.5" +"@babel/plugin-transform-react-jsx@npm:^7.22.15": + version: 7.23.4 + resolution: "@babel/plugin-transform-react-jsx@npm:7.23.4" + dependencies: + "@babel/helper-annotate-as-pure": ^7.22.5 + "@babel/helper-module-imports": ^7.22.15 + "@babel/helper-plugin-utils": ^7.22.5 + "@babel/plugin-syntax-jsx": ^7.23.3 + "@babel/types": ^7.23.4 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: d8b8c52e8e22e833bf77c8d1a53b0a57d1fd52ba9596a319d572de79446a8ed9d95521035bc1175c1589d1a6a34600d2e678fa81d81bac8fac121137097f1f0a + languageName: node + linkType: hard + +"@babel/plugin-transform-react-pure-annotations@npm:^7.23.3": + version: 7.23.3 + resolution: "@babel/plugin-transform-react-pure-annotations@npm:7.23.3" dependencies: "@babel/helper-annotate-as-pure": ^7.22.5 "@babel/helper-plugin-utils": ^7.22.5 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 092021c4f404e267002099ec20b3f12dd730cb90b0d83c5feed3dc00dbe43b9c42c795a18e7c6c7d7bddea20c7dd56221b146aec81b37f2e7eb5137331c61120 + checksum: 9ea3698b1d422561d93c0187ac1ed8f2367e4250b10e259785ead5aa643c265830fd0f4cf5087a5bedbc4007444c06da2f2006686613220acf0949895f453666 languageName: node linkType: hard -"@babel/plugin-transform-regenerator@npm:^7.22.10": - version: 7.22.10 - resolution: "@babel/plugin-transform-regenerator@npm:7.22.10" +"@babel/plugin-transform-regenerator@npm:^7.23.3": + version: 7.23.3 + resolution: "@babel/plugin-transform-regenerator@npm:7.23.3" dependencies: "@babel/helper-plugin-utils": ^7.22.5 regenerator-transform: ^0.15.2 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: e13678d62d6fa96f11cb8b863f00e8693491e7adc88bfca3f2820f80cbac8336e7dec3a596eee6a1c4663b7ececc3564f2cd7fb44ed6d4ce84ac2bb7f39ecc6e + checksum: 7fdacc7b40008883871b519c9e5cdea493f75495118ccc56ac104b874983569a24edd024f0f5894ba1875c54ee2b442f295d6241c3280e61c725d0dd3317c8e6 languageName: node linkType: hard -"@babel/plugin-transform-reserved-words@npm:^7.22.5": - version: 7.22.5 - resolution: "@babel/plugin-transform-reserved-words@npm:7.22.5" +"@babel/plugin-transform-reserved-words@npm:^7.23.3": + version: 7.23.3 + resolution: "@babel/plugin-transform-reserved-words@npm:7.23.3" dependencies: "@babel/helper-plugin-utils": ^7.22.5 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 3ffd7dbc425fe8132bfec118b9817572799cab1473113a635d25ab606c1f5a2341a636c04cf6b22df3813320365ed5a965b5eeb3192320a10e4cc2c137bd8bfc + checksum: 298c4440ddc136784ff920127cea137168e068404e635dc946ddb5d7b2a27b66f1dd4c4acb01f7184478ff7d5c3e7177a127279479926519042948fb7fa0fa48 languageName: node linkType: hard -"@babel/plugin-transform-shorthand-properties@npm:^7.0.0, @babel/plugin-transform-shorthand-properties@npm:^7.12.1, @babel/plugin-transform-shorthand-properties@npm:^7.22.5": +"@babel/plugin-transform-runtime@npm:^7.23.2": + version: 7.23.4 + resolution: "@babel/plugin-transform-runtime@npm:7.23.4" + dependencies: + "@babel/helper-module-imports": ^7.22.15 + "@babel/helper-plugin-utils": ^7.22.5 + babel-plugin-polyfill-corejs2: ^0.4.6 + babel-plugin-polyfill-corejs3: ^0.8.5 + babel-plugin-polyfill-regenerator: ^0.5.3 + semver: ^6.3.1 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: a1693d27cd5ce17d0917280942a62bbf4ee27f6f0fe7beb33789bdc699cda21e5253997663248b32e8e36c01ccd202f96246413b9328b70a05d4cf64faa3191e + 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: @@ -2887,7 +3164,18 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-spread@npm:^7.0.0, @babel/plugin-transform-spread@npm:^7.12.1, @babel/plugin-transform-spread@npm:^7.22.5": +"@babel/plugin-transform-shorthand-properties@npm:^7.23.3": + version: 7.23.3 + resolution: "@babel/plugin-transform-shorthand-properties@npm:7.23.3" + dependencies: + "@babel/helper-plugin-utils": ^7.22.5 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 5d677a03676f9fff969b0246c423d64d77502e90a832665dc872a5a5e05e5708161ce1effd56bb3c0f2c20a1112fca874be57c8a759d8b08152755519281f326 + 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: @@ -2899,18 +3187,30 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-sticky-regex@npm:^7.22.5": - version: 7.22.5 - resolution: "@babel/plugin-transform-sticky-regex@npm:7.22.5" +"@babel/plugin-transform-spread@npm:^7.23.3": + version: 7.23.3 + resolution: "@babel/plugin-transform-spread@npm:7.23.3" + 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: 8fd5cac201e77a0b4825745f4e07a25f923842f282f006b3a79223c00f61075c8868d12eafec86b2642cd0b32077cdd32314e27bcb75ee5e6a68c0144140dcf2 + languageName: node + linkType: hard + +"@babel/plugin-transform-sticky-regex@npm:^7.23.3": + version: 7.23.3 + resolution: "@babel/plugin-transform-sticky-regex@npm:7.23.3" dependencies: "@babel/helper-plugin-utils": ^7.22.5 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 63b2c575e3e7f96c32d52ed45ee098fb7d354b35c2223b8c8e76840b32cc529ee0c0ceb5742fd082e56e91e3d82842a367ce177e82b05039af3d602c9627a729 + checksum: 53e55eb2575b7abfdb4af7e503a2bf7ef5faf8bf6b92d2cd2de0700bdd19e934e5517b23e6dfed94ba50ae516b62f3f916773ef7d9bc81f01503f585051e2949 languageName: node linkType: hard -"@babel/plugin-transform-template-literals@npm:^7.0.0, @babel/plugin-transform-template-literals@npm:^7.12.1, @babel/plugin-transform-template-literals@npm:^7.22.5": +"@babel/plugin-transform-template-literals@npm:^7.0.0": version: 7.22.5 resolution: "@babel/plugin-transform-template-literals@npm:7.22.5" dependencies: @@ -2921,96 +3221,108 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-typeof-symbol@npm:^7.22.5": - version: 7.22.5 - resolution: "@babel/plugin-transform-typeof-symbol@npm:7.22.5" +"@babel/plugin-transform-template-literals@npm:^7.23.3": + version: 7.23.3 + resolution: "@babel/plugin-transform-template-literals@npm:7.23.3" dependencies: "@babel/helper-plugin-utils": ^7.22.5 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 82a53a63ffc3010b689ca9a54e5f53b2718b9f4b4a9818f36f9b7dba234f38a01876680553d2716a645a61920b5e6e4aaf8d4a0064add379b27ca0b403049512 + checksum: b16c5cb0b8796be0118e9c144d15bdc0d20a7f3f59009c6303a6e9a8b74c146eceb3f05186f5b97afcba7cfa87e34c1585a22186e3d5b22f2fd3d27d959d92b2 languageName: node linkType: hard -"@babel/plugin-transform-typescript@npm:^7.22.11": - version: 7.22.11 - resolution: "@babel/plugin-transform-typescript@npm:7.22.11" +"@babel/plugin-transform-typeof-symbol@npm:^7.23.3": + version: 7.23.3 + resolution: "@babel/plugin-transform-typeof-symbol@npm:7.23.3" + dependencies: + "@babel/helper-plugin-utils": ^7.22.5 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 0af7184379d43afac7614fc89b1bdecce4e174d52f4efaeee8ec1a4f2c764356c6dba3525c0685231f1cbf435b6dd4ee9e738d7417f3b10ce8bbe869c32f4384 + languageName: node + linkType: hard + +"@babel/plugin-transform-typescript@npm:^7.23.3": + version: 7.23.5 + resolution: "@babel/plugin-transform-typescript@npm:7.23.5" dependencies: "@babel/helper-annotate-as-pure": ^7.22.5 - "@babel/helper-create-class-features-plugin": ^7.22.11 + "@babel/helper-create-class-features-plugin": ^7.23.5 "@babel/helper-plugin-utils": ^7.22.5 - "@babel/plugin-syntax-typescript": ^7.22.5 + "@babel/plugin-syntax-typescript": ^7.23.3 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: a0dc3c2427b55602944705c9a91b4c074524badd5ea87edb603ddeabe7fae531bcbe68475106d7a00079b67bb422dbf2e9f50e15c25ac24d7e9fe77f37ebcfb4 + checksum: d77b5cc22cf48fe461de07e4f058dc9c0d8c4e3ca49de0e3a336a94ab39bfa4f4732598e36c479bec0dd1bf4aff9154bc2dcbfbe3145a751e4771ccae5afaaf8 languageName: node linkType: hard -"@babel/plugin-transform-unicode-escapes@npm:^7.22.10": - version: 7.22.10 - resolution: "@babel/plugin-transform-unicode-escapes@npm:7.22.10" +"@babel/plugin-transform-unicode-escapes@npm:^7.23.3": + version: 7.23.3 + resolution: "@babel/plugin-transform-unicode-escapes@npm:7.23.3" dependencies: "@babel/helper-plugin-utils": ^7.22.5 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 807f40ed1324c8cb107c45358f1903384ca3f0ef1d01c5a3c5c9b271c8d8eec66936a3dcc8d75ddfceea9421420368c2e77ae3adef0a50557e778dfe296bf382 + checksum: 561c429183a54b9e4751519a3dfba6014431e9cdc1484fad03bdaf96582dfc72c76a4f8661df2aeeae7c34efd0fa4d02d3b83a2f63763ecf71ecc925f9cc1f60 languageName: node linkType: hard -"@babel/plugin-transform-unicode-property-regex@npm:^7.22.5": - version: 7.22.5 - resolution: "@babel/plugin-transform-unicode-property-regex@npm:7.22.5" +"@babel/plugin-transform-unicode-property-regex@npm:^7.23.3": + version: 7.23.3 + resolution: "@babel/plugin-transform-unicode-property-regex@npm:7.23.3" dependencies: - "@babel/helper-create-regexp-features-plugin": ^7.22.5 + "@babel/helper-create-regexp-features-plugin": ^7.22.15 "@babel/helper-plugin-utils": ^7.22.5 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 2495e5f663cb388e3d888b4ba3df419ac436a5012144ac170b622ddfc221f9ea9bdba839fa2bc0185cb776b578030666406452ec7791cbf0e7a3d4c88ae9574c + checksum: 2298461a194758086d17c23c26c7de37aa533af910f9ebf31ebd0893d4aa317468043d23f73edc782ec21151d3c46cf0ff8098a83b725c49a59de28a1d4d6225 languageName: node linkType: hard -"@babel/plugin-transform-unicode-regex@npm:^7.22.5": - version: 7.22.5 - resolution: "@babel/plugin-transform-unicode-regex@npm:7.22.5" +"@babel/plugin-transform-unicode-regex@npm:^7.23.3": + version: 7.23.3 + resolution: "@babel/plugin-transform-unicode-regex@npm:7.23.3" dependencies: - "@babel/helper-create-regexp-features-plugin": ^7.22.5 + "@babel/helper-create-regexp-features-plugin": ^7.22.15 "@babel/helper-plugin-utils": ^7.22.5 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 6b5d1404c8c623b0ec9bd436c00d885a17d6a34f3f2597996343ddb9d94f6379705b21582dfd4cec2c47fd34068872e74ab6b9580116c0566b3f9447e2a7fa06 + checksum: c5f835d17483ba899787f92e313dfa5b0055e3deab332f1d254078a2bba27ede47574b6599fcf34d3763f0c048ae0779dc21d2d8db09295edb4057478dc80a9a languageName: node linkType: hard -"@babel/plugin-transform-unicode-sets-regex@npm:^7.22.5": - version: 7.22.5 - resolution: "@babel/plugin-transform-unicode-sets-regex@npm:7.22.5" +"@babel/plugin-transform-unicode-sets-regex@npm:^7.23.3": + version: 7.23.3 + resolution: "@babel/plugin-transform-unicode-sets-regex@npm:7.23.3" dependencies: - "@babel/helper-create-regexp-features-plugin": ^7.22.5 + "@babel/helper-create-regexp-features-plugin": ^7.22.15 "@babel/helper-plugin-utils": ^7.22.5 peerDependencies: "@babel/core": ^7.0.0 - checksum: c042070f980b139547f8b0179efbc049ac5930abec7fc26ed7a41d89a048d8ab17d362200e204b6f71c3c20d6991a0e74415e1a412a49adc8131c2a40c04822e + checksum: 79d0b4c951955ca68235c87b91ab2b393c96285f8aeaa34d6db416d2ddac90000c9bd6e8c4d82b60a2b484da69930507245035f28ba63c6cae341cf3ba68fdef languageName: node linkType: hard -"@babel/preset-env@npm:^7.12.11": - version: 7.22.14 - resolution: "@babel/preset-env@npm:7.22.14" +"@babel/preset-env@npm:^7.23.2": + version: 7.23.5 + resolution: "@babel/preset-env@npm:7.23.5" dependencies: - "@babel/compat-data": ^7.22.9 - "@babel/helper-compilation-targets": ^7.22.10 + "@babel/compat-data": ^7.23.5 + "@babel/helper-compilation-targets": ^7.22.15 "@babel/helper-plugin-utils": ^7.22.5 - "@babel/helper-validator-option": ^7.22.5 - "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": ^7.22.5 - "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": ^7.22.5 + "@babel/helper-validator-option": ^7.23.5 + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": ^7.23.3 + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": ^7.23.3 + "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": ^7.23.3 "@babel/plugin-proposal-private-property-in-object": 7.21.0-placeholder-for-preset-env.2 "@babel/plugin-syntax-async-generators": ^7.8.4 "@babel/plugin-syntax-class-properties": ^7.12.13 "@babel/plugin-syntax-class-static-block": ^7.14.5 "@babel/plugin-syntax-dynamic-import": ^7.8.3 "@babel/plugin-syntax-export-namespace-from": ^7.8.3 - "@babel/plugin-syntax-import-assertions": ^7.22.5 - "@babel/plugin-syntax-import-attributes": ^7.22.5 + "@babel/plugin-syntax-import-assertions": ^7.23.3 + "@babel/plugin-syntax-import-attributes": ^7.23.3 "@babel/plugin-syntax-import-meta": ^7.10.4 "@babel/plugin-syntax-json-strings": ^7.8.3 "@babel/plugin-syntax-logical-assignment-operators": ^7.10.4 @@ -3022,77 +3334,76 @@ __metadata: "@babel/plugin-syntax-private-property-in-object": ^7.14.5 "@babel/plugin-syntax-top-level-await": ^7.14.5 "@babel/plugin-syntax-unicode-sets-regex": ^7.18.6 - "@babel/plugin-transform-arrow-functions": ^7.22.5 - "@babel/plugin-transform-async-generator-functions": ^7.22.11 - "@babel/plugin-transform-async-to-generator": ^7.22.5 - "@babel/plugin-transform-block-scoped-functions": ^7.22.5 - "@babel/plugin-transform-block-scoping": ^7.22.10 - "@babel/plugin-transform-class-properties": ^7.22.5 - "@babel/plugin-transform-class-static-block": ^7.22.11 - "@babel/plugin-transform-classes": ^7.22.6 - "@babel/plugin-transform-computed-properties": ^7.22.5 - "@babel/plugin-transform-destructuring": ^7.22.10 - "@babel/plugin-transform-dotall-regex": ^7.22.5 - "@babel/plugin-transform-duplicate-keys": ^7.22.5 - "@babel/plugin-transform-dynamic-import": ^7.22.11 - "@babel/plugin-transform-exponentiation-operator": ^7.22.5 - "@babel/plugin-transform-export-namespace-from": ^7.22.11 - "@babel/plugin-transform-for-of": ^7.22.5 - "@babel/plugin-transform-function-name": ^7.22.5 - "@babel/plugin-transform-json-strings": ^7.22.11 - "@babel/plugin-transform-literals": ^7.22.5 - "@babel/plugin-transform-logical-assignment-operators": ^7.22.11 - "@babel/plugin-transform-member-expression-literals": ^7.22.5 - "@babel/plugin-transform-modules-amd": ^7.22.5 - "@babel/plugin-transform-modules-commonjs": ^7.22.11 - "@babel/plugin-transform-modules-systemjs": ^7.22.11 - "@babel/plugin-transform-modules-umd": ^7.22.5 + "@babel/plugin-transform-arrow-functions": ^7.23.3 + "@babel/plugin-transform-async-generator-functions": ^7.23.4 + "@babel/plugin-transform-async-to-generator": ^7.23.3 + "@babel/plugin-transform-block-scoped-functions": ^7.23.3 + "@babel/plugin-transform-block-scoping": ^7.23.4 + "@babel/plugin-transform-class-properties": ^7.23.3 + "@babel/plugin-transform-class-static-block": ^7.23.4 + "@babel/plugin-transform-classes": ^7.23.5 + "@babel/plugin-transform-computed-properties": ^7.23.3 + "@babel/plugin-transform-destructuring": ^7.23.3 + "@babel/plugin-transform-dotall-regex": ^7.23.3 + "@babel/plugin-transform-duplicate-keys": ^7.23.3 + "@babel/plugin-transform-dynamic-import": ^7.23.4 + "@babel/plugin-transform-exponentiation-operator": ^7.23.3 + "@babel/plugin-transform-export-namespace-from": ^7.23.4 + "@babel/plugin-transform-for-of": ^7.23.3 + "@babel/plugin-transform-function-name": ^7.23.3 + "@babel/plugin-transform-json-strings": ^7.23.4 + "@babel/plugin-transform-literals": ^7.23.3 + "@babel/plugin-transform-logical-assignment-operators": ^7.23.4 + "@babel/plugin-transform-member-expression-literals": ^7.23.3 + "@babel/plugin-transform-modules-amd": ^7.23.3 + "@babel/plugin-transform-modules-commonjs": ^7.23.3 + "@babel/plugin-transform-modules-systemjs": ^7.23.3 + "@babel/plugin-transform-modules-umd": ^7.23.3 "@babel/plugin-transform-named-capturing-groups-regex": ^7.22.5 - "@babel/plugin-transform-new-target": ^7.22.5 - "@babel/plugin-transform-nullish-coalescing-operator": ^7.22.11 - "@babel/plugin-transform-numeric-separator": ^7.22.11 - "@babel/plugin-transform-object-rest-spread": ^7.22.11 - "@babel/plugin-transform-object-super": ^7.22.5 - "@babel/plugin-transform-optional-catch-binding": ^7.22.11 - "@babel/plugin-transform-optional-chaining": ^7.22.12 - "@babel/plugin-transform-parameters": ^7.22.5 - "@babel/plugin-transform-private-methods": ^7.22.5 - "@babel/plugin-transform-private-property-in-object": ^7.22.11 - "@babel/plugin-transform-property-literals": ^7.22.5 - "@babel/plugin-transform-regenerator": ^7.22.10 - "@babel/plugin-transform-reserved-words": ^7.22.5 - "@babel/plugin-transform-shorthand-properties": ^7.22.5 - "@babel/plugin-transform-spread": ^7.22.5 - "@babel/plugin-transform-sticky-regex": ^7.22.5 - "@babel/plugin-transform-template-literals": ^7.22.5 - "@babel/plugin-transform-typeof-symbol": ^7.22.5 - "@babel/plugin-transform-unicode-escapes": ^7.22.10 - "@babel/plugin-transform-unicode-property-regex": ^7.22.5 - "@babel/plugin-transform-unicode-regex": ^7.22.5 - "@babel/plugin-transform-unicode-sets-regex": ^7.22.5 + "@babel/plugin-transform-new-target": ^7.23.3 + "@babel/plugin-transform-nullish-coalescing-operator": ^7.23.4 + "@babel/plugin-transform-numeric-separator": ^7.23.4 + "@babel/plugin-transform-object-rest-spread": ^7.23.4 + "@babel/plugin-transform-object-super": ^7.23.3 + "@babel/plugin-transform-optional-catch-binding": ^7.23.4 + "@babel/plugin-transform-optional-chaining": ^7.23.4 + "@babel/plugin-transform-parameters": ^7.23.3 + "@babel/plugin-transform-private-methods": ^7.23.3 + "@babel/plugin-transform-private-property-in-object": ^7.23.4 + "@babel/plugin-transform-property-literals": ^7.23.3 + "@babel/plugin-transform-regenerator": ^7.23.3 + "@babel/plugin-transform-reserved-words": ^7.23.3 + "@babel/plugin-transform-shorthand-properties": ^7.23.3 + "@babel/plugin-transform-spread": ^7.23.3 + "@babel/plugin-transform-sticky-regex": ^7.23.3 + "@babel/plugin-transform-template-literals": ^7.23.3 + "@babel/plugin-transform-typeof-symbol": ^7.23.3 + "@babel/plugin-transform-unicode-escapes": ^7.23.3 + "@babel/plugin-transform-unicode-property-regex": ^7.23.3 + "@babel/plugin-transform-unicode-regex": ^7.23.3 + "@babel/plugin-transform-unicode-sets-regex": ^7.23.3 "@babel/preset-modules": 0.1.6-no-external-plugins - "@babel/types": ^7.22.11 - babel-plugin-polyfill-corejs2: ^0.4.5 - babel-plugin-polyfill-corejs3: ^0.8.3 - babel-plugin-polyfill-regenerator: ^0.5.2 + babel-plugin-polyfill-corejs2: ^0.4.6 + babel-plugin-polyfill-corejs3: ^0.8.5 + babel-plugin-polyfill-regenerator: ^0.5.3 core-js-compat: ^3.31.0 semver: ^6.3.1 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: a62b5717a86c41ab675ac0f4d46ff504088fb2cce2011aa36508453d2235a3ecf1f6d127aa57962310fcce4ec18bad840ccd09987a78c57e4d1b4339cedeaacd + checksum: adddd58d14fc1b2e5f8cf90995f522879362a0543e316afe9e5783f1bd715bb1e92300cd49d7ce3a95c64a96d60788d0089651e2cf4cac937f5469aac1087bb1 languageName: node linkType: hard -"@babel/preset-flow@npm:^7.12.1": - version: 7.22.5 - resolution: "@babel/preset-flow@npm:7.22.5" +"@babel/preset-flow@npm:^7.22.15": + version: 7.23.3 + resolution: "@babel/preset-flow@npm:7.23.3" dependencies: "@babel/helper-plugin-utils": ^7.22.5 - "@babel/helper-validator-option": ^7.22.5 - "@babel/plugin-transform-flow-strip-types": ^7.22.5 + "@babel/helper-validator-option": ^7.22.15 + "@babel/plugin-transform-flow-strip-types": ^7.23.3 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 0bf6f587e952f8945d348cf0f25cbc3e50697f2cdc4e1394badfb76cfdde0cc2f2c9250bda3d28ecc6c196b89de7c8e72b8ffbf3086e604b959cce352dd2b34e + checksum: 60b5dde79621ae89943af459c4dc5b6030795f595a20ca438c8100f8d82c9ebc986881719030521ff5925799518ac5aa7f3fe62af8c33ab96be3681a71f88d03 languageName: node linkType: hard @@ -3109,40 +3420,40 @@ __metadata: languageName: node linkType: hard -"@babel/preset-react@npm:^7.12.10": - version: 7.22.5 - resolution: "@babel/preset-react@npm:7.22.5" +"@babel/preset-react@npm:^7.22.15": + version: 7.23.3 + resolution: "@babel/preset-react@npm:7.23.3" dependencies: "@babel/helper-plugin-utils": ^7.22.5 - "@babel/helper-validator-option": ^7.22.5 - "@babel/plugin-transform-react-display-name": ^7.22.5 - "@babel/plugin-transform-react-jsx": ^7.22.5 + "@babel/helper-validator-option": ^7.22.15 + "@babel/plugin-transform-react-display-name": ^7.23.3 + "@babel/plugin-transform-react-jsx": ^7.22.15 "@babel/plugin-transform-react-jsx-development": ^7.22.5 - "@babel/plugin-transform-react-pure-annotations": ^7.22.5 + "@babel/plugin-transform-react-pure-annotations": ^7.23.3 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: b977c7ee83e93f62d77e61929ca3d97e5291e026e2f025a1b8b7ac9186486ed56c7d5bc36f0becabe0c24e8c42a4e4f2243a3cf841384cfafc3204c5d3e6c619 + checksum: 2d90961e7e627a74b44551e88ad36a440579e283e8dc27972bf2f50682152bbc77228673a3ea22c0e0d005b70cbc487eccd64897c5e5e0384e5ce18f300b21eb languageName: node linkType: hard -"@babel/preset-typescript@npm:^7.12.7": - version: 7.22.11 - resolution: "@babel/preset-typescript@npm:7.22.11" +"@babel/preset-typescript@npm:^7.23.0, @babel/preset-typescript@npm:^7.23.2": + version: 7.23.3 + resolution: "@babel/preset-typescript@npm:7.23.3" dependencies: "@babel/helper-plugin-utils": ^7.22.5 - "@babel/helper-validator-option": ^7.22.5 - "@babel/plugin-syntax-jsx": ^7.22.5 - "@babel/plugin-transform-modules-commonjs": ^7.22.11 - "@babel/plugin-transform-typescript": ^7.22.11 + "@babel/helper-validator-option": ^7.22.15 + "@babel/plugin-syntax-jsx": ^7.23.3 + "@babel/plugin-transform-modules-commonjs": ^7.23.3 + "@babel/plugin-transform-typescript": ^7.23.3 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 8ae7162c31db896f5eeecd6f67ab2e58555fdc06fe84e95fe4a3f60b64cd6f782d2d7dfbde0c0eac04b55dac18222752d91dd8786245cccedd7e42f080e07233 + checksum: 105a2d39bbc464da0f7e1ad7f535c77c5f62d6b410219355b20e552e7d29933567a5c55339b5d0aec1a5c7a0a7dfdf1b54aae601a4fe15a157d54dcbfcb3e854 languageName: node linkType: hard -"@babel/register@npm:^7.12.1": - version: 7.22.5 - resolution: "@babel/register@npm:7.22.5" +"@babel/register@npm:^7.22.15": + version: 7.22.15 + resolution: "@babel/register@npm:7.22.15" dependencies: clone-deep: ^4.0.1 find-cache-dir: ^2.0.0 @@ -3151,7 +3462,7 @@ __metadata: source-map-support: ^0.5.16 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 723ce27fdad6faee5b3f51ef4f5154f7f285d61da665367de14de85abbe1c81ccbac11f699671cd0ed6b755dd430f28a62364fed5d49f2527625a9ea3bf40056 + checksum: 5497be6773608cd2d874210edd14499fce464ddbea170219da55955afe4c9173adb591164193458fd639e43b7d1314088a6186f4abf241476c59b3f0da6afd6f languageName: node linkType: hard @@ -3172,16 +3483,7 @@ __metadata: languageName: node linkType: hard -"@babel/runtime@npm:7.7.2": - version: 7.7.2 - resolution: "@babel/runtime@npm:7.7.2" - dependencies: - regenerator-runtime: ^0.13.2 - checksum: 4319b6a1771f2e0181de26a983ae2788f1af428dcac3c0225d459be8a50167cee5be0d66856306b8eab53c1b3e1cae68cb481ef1be5ca2259f997ce3b12557b7 - languageName: node - linkType: hard - -"@babel/runtime@npm:^7.0.0, @babel/runtime@npm:^7.1.2, @babel/runtime@npm:^7.10.2, @babel/runtime@npm:^7.11.2, @babel/runtime@npm:^7.12.0, @babel/runtime@npm:^7.12.5, @babel/runtime@npm:^7.13.10, @babel/runtime@npm:^7.14.8, @babel/runtime@npm:^7.15.4, @babel/runtime@npm:^7.16.3, @babel/runtime@npm:^7.17.8, @babel/runtime@npm:^7.20.1, @babel/runtime@npm:^7.20.13, @babel/runtime@npm:^7.20.6, @babel/runtime@npm:^7.22.5, @babel/runtime@npm:^7.3.1, @babel/runtime@npm:^7.5.0, @babel/runtime@npm:^7.5.5, @babel/runtime@npm:^7.7.2, @babel/runtime@npm:^7.7.6, @babel/runtime@npm:^7.8.4, @babel/runtime@npm:^7.8.7, @babel/runtime@npm:^7.9.2": +"@babel/runtime@npm:^7.0.0, @babel/runtime@npm:^7.1.2, @babel/runtime@npm:^7.10.2, @babel/runtime@npm:^7.12.0, @babel/runtime@npm:^7.12.5, @babel/runtime@npm:^7.13.10, @babel/runtime@npm:^7.14.8, @babel/runtime@npm:^7.15.4, @babel/runtime@npm:^7.16.3, @babel/runtime@npm:^7.17.8, @babel/runtime@npm:^7.20.1, @babel/runtime@npm:^7.20.13, @babel/runtime@npm:^7.20.6, @babel/runtime@npm:^7.22.5, @babel/runtime@npm:^7.3.1, @babel/runtime@npm:^7.5.5, @babel/runtime@npm:^7.7.2, @babel/runtime@npm:^7.8.4, @babel/runtime@npm:^7.8.7, @babel/runtime@npm:^7.9.2": version: 7.22.11 resolution: "@babel/runtime@npm:7.22.11" dependencies: @@ -3199,23 +3501,12 @@ __metadata: languageName: node linkType: hard -"@babel/runtime@npm:~7.5.4": - version: 7.5.5 - resolution: "@babel/runtime@npm:7.5.5" +"@babel/runtime@npm:^7.23.2": + version: 7.23.5 + resolution: "@babel/runtime@npm:7.23.5" dependencies: - regenerator-runtime: ^0.13.2 - checksum: b04ed65993bbf4371a880f7afc289f1f2a5f5a9e882c64448b41481aa289ed650a2b6155c6179f3d32fccf159f9be947989af5ff7a4f9b847f60f25e631ad533 - languageName: node - linkType: hard - -"@babel/template@npm:^7.12.7, @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 + regenerator-runtime: ^0.14.0 + checksum: 164d9802424f06908e62d29b8fd3a87db55accf82f46f964ac481dcead11ff7df8391e3696e5fa91a8ca10ea8845bf650acd730fa88cf13f8026cd8d5eec6936 languageName: node linkType: hard @@ -3230,6 +3521,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": version: 7.17.3 resolution: "@babel/traverse@npm:7.17.3" @@ -3248,24 +3550,6 @@ __metadata: languageName: node linkType: hard -"@babel/traverse@npm:^7.1.6, @babel/traverse@npm:^7.12.11, @babel/traverse@npm:^7.12.9, @babel/traverse@npm:^7.13.0, @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.14.0, @babel/traverse@npm:^7.16.8, @babel/traverse@npm:^7.23.0": version: 7.23.0 resolution: "@babel/traverse@npm:7.23.0" @@ -3284,6 +3568,42 @@ __metadata: languageName: node linkType: hard +"@babel/traverse@npm:^7.18.9, @babel/traverse@npm:^7.23.2, @babel/traverse@npm:^7.23.5": + version: 7.23.5 + resolution: "@babel/traverse@npm:7.23.5" + dependencies: + "@babel/code-frame": ^7.23.5 + "@babel/generator": ^7.23.5 + "@babel/helper-environment-visitor": ^7.22.20 + "@babel/helper-function-name": ^7.23.0 + "@babel/helper-hoist-variables": ^7.22.5 + "@babel/helper-split-export-declaration": ^7.22.6 + "@babel/parser": ^7.23.5 + "@babel/types": ^7.23.5 + debug: ^4.1.0 + globals: ^11.1.0 + checksum: 0558b05360850c3ad6384e85bd55092126a8d5f93e29a8e227dd58fa1f9e1a4c25fd337c07c7ae509f0983e7a2b1e761ffdcfaa77a1e1bedbc867058e1de5a7d + languageName: node + linkType: hard + +"@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/types@npm:7.17.0": version: 7.17.0 resolution: "@babel/types@npm:7.17.0" @@ -3305,7 +3625,7 @@ __metadata: languageName: node linkType: hard -"@babel/types@npm:^7.12.11, @babel/types@npm:^7.12.7, @babel/types@npm:^7.17.0, @babel/types@npm:^7.2.0, @babel/types@npm:^7.22.10, @babel/types@npm:^7.22.11, @babel/types@npm:^7.22.5, @babel/types@npm:^7.4.4, @babel/types@npm:^7.8.3": +"@babel/types@npm:^7.17.0, @babel/types@npm:^7.22.10, @babel/types@npm:^7.22.11, @babel/types@npm:^7.22.5, @babel/types@npm:^7.4.4, @babel/types@npm:^7.8.3": version: 7.22.11 resolution: "@babel/types@npm:7.22.11" dependencies: @@ -3316,6 +3636,17 @@ __metadata: languageName: node linkType: hard +"@babel/types@npm:^7.18.9, @babel/types@npm:^7.20.7, @babel/types@npm:^7.22.19, @babel/types@npm:^7.23.4, @babel/types@npm:^7.23.5": + version: 7.23.5 + resolution: "@babel/types@npm:7.23.5" + dependencies: + "@babel/helper-string-parser": ^7.23.4 + "@babel/helper-validator-identifier": ^7.22.20 + to-fast-properties: ^2.0.0 + checksum: 3d21774480a459ef13b41c2e32700d927af649e04b70c5d164814d8e04ab584af66a93330602c2925e1a6925c2b829cc153418a613a4e7d79d011be1f29ad4b2 + languageName: node + linkType: hard + "@base2/pretty-print-object@npm:1.0.1": version: 1.0.1 resolution: "@base2/pretty-print-object@npm:1.0.1" @@ -4074,6 +4405,15 @@ __metadata: languageName: unknown linkType: soft +"@calcom/matomo@workspace:packages/app-store/matomo": + version: 0.0.0-use.local + resolution: "@calcom/matomo@workspace:packages/app-store/matomo" + dependencies: + "@calcom/lib": "*" + "@calcom/types": "*" + languageName: unknown + linkType: soft + "@calcom/metapixel@workspace:packages/app-store/metapixel": version: 0.0.0-use.local resolution: "@calcom/metapixel@workspace:packages/app-store/metapixel" @@ -4290,15 +4630,17 @@ __metadata: "@radix-ui/react-slider": ^1.0.0 "@radix-ui/react-switch": ^1.0.0 "@radix-ui/react-tooltip": ^1.0.0 - "@storybook/addon-actions": ^6.5.13 - "@storybook/addon-essentials": ^6.5.13 - "@storybook/addon-interactions": ^6.5.13 - "@storybook/addon-links": ^6.5.13 - "@storybook/builder-vite": ^0.2.4 - "@storybook/builder-webpack5": ^6.5.13 - "@storybook/manager-webpack5": ^6.5.13 - "@storybook/react": ^6.5.13 - "@storybook/testing-library": ^0.0.13 + "@storybook/addon-actions": ^7.6.3 + "@storybook/addon-designs": ^7.0.7 + "@storybook/addon-docs": ^7.6.3 + "@storybook/addon-essentials": ^7.6.3 + "@storybook/addon-interactions": ^7.6.3 + "@storybook/addon-links": ^7.6.3 + "@storybook/blocks": ^7.6.3 + "@storybook/nextjs": ^7.6.3 + "@storybook/preview-api": ^7.6.3 + "@storybook/react": ^7.6.3 + "@storybook/testing-library": ^0.2.2 "@types/react": 18.0.26 "@types/react-dom": ^18.0.9 "@vitejs/plugin-react": ^2.2.0 @@ -4311,11 +4653,9 @@ __metadata: react: ^18.2.0 react-dom: ^18.2.0 rollup-plugin-polyfill-node: ^0.10.2 - storybook-addon-designs: ^6.3.1 - storybook-addon-next: ^1.6.9 - storybook-addon-next-router: ^4.0.2 + storybook: ^7.6.3 storybook-addon-rtl-direction: ^0.0.19 - storybook-react-i18next: ^1.1.2 + storybook-react-i18next: ^2.0.9 tailwindcss: ^3.3.3 typescript: ^4.9.4 vite: ^4.1.2 @@ -4440,6 +4780,8 @@ __metadata: "@radix-ui/react-portal": ^1.0.0 "@radix-ui/react-select": ^0.1.1 "@react-icons/all-files": ^4.1.0 + "@storybook/blocks": ^7.6.3 + "@storybook/react": ^7.6.3 "@tanstack/react-query": ^4.3.9 "@tanstack/react-table": ^8.9.3 "@types/react": 18.0.26 @@ -4642,7 +4984,6 @@ __metadata: turndown: ^7.1.1 typescript: ^4.9.4 uuid: ^8.3.2 - web3: ^1.7.5 zod: ^3.22.2 languageName: unknown linkType: soft @@ -5078,18 +5419,6 @@ __metadata: languageName: node linkType: hard -"@cnakazawa/watch@npm:^1.0.3": - version: 1.0.4 - resolution: "@cnakazawa/watch@npm:1.0.4" - dependencies: - exec-sh: ^0.3.2 - minimist: ^1.2.0 - bin: - watch: cli.js - checksum: 88f395ca0af2f3c0665b8ce7bb29e83647ec5d141e8735712aeeee4117081555436712966b6957aa1c461f6f826a4d23b0034e379c443a10e919f81c8748bf29 - languageName: node - linkType: hard - "@colors/colors@npm:1.5.0": version: 1.5.0 resolution: "@colors/colors@npm:1.5.0" @@ -5205,72 +5534,6 @@ __metadata: languageName: node linkType: hard -"@design-systems/utils@npm:2.12.0": - version: 2.12.0 - resolution: "@design-systems/utils@npm:2.12.0" - dependencies: - "@babel/runtime": ^7.11.2 - clsx: ^1.0.4 - focus-lock: ^0.8.0 - react-merge-refs: ^1.0.0 - peerDependencies: - "@types/react": "*" - react: ">= 16.8.6" - react-dom: ">= 16.8.6" - checksum: 6659eadb485b55d25d465b0b262c22e7d196f35b27aa1f8f7b6f3bacda9d7c5f6186a46afe56dd223c70f91c61392c81a541ea7dec588960499d049a8c06f3b7 - languageName: node - linkType: hard - -"@devtools-ds/object-inspector@npm:^1.1.2": - version: 1.2.0 - resolution: "@devtools-ds/object-inspector@npm:1.2.0" - dependencies: - "@babel/runtime": 7.7.2 - "@devtools-ds/object-parser": ^1.2.0 - "@devtools-ds/themes": ^1.2.0 - "@devtools-ds/tree": ^1.2.0 - clsx: 1.1.0 - peerDependencies: - react: ">= 16.8.6" - checksum: f5254fe95afae4bb9dcc7fa9b5c5460b3a566ed97df2d40b338571c4028e346d81516e058fa86cf0e0a005342d7920d8ccbefadf436fc29dfffb4977a43e3f8a - languageName: node - linkType: hard - -"@devtools-ds/object-parser@npm:^1.2.0": - version: 1.2.0 - resolution: "@devtools-ds/object-parser@npm:1.2.0" - dependencies: - "@babel/runtime": ~7.5.4 - checksum: 1fb1cb20f6697553ec41a7874e838a397881a6271bcd89ce59a87bf5d36612df9ee43cd7cecadc8bffeea62d21cc73de5528c8fe51f4499610ac6a04d0ee28d7 - languageName: node - linkType: hard - -"@devtools-ds/themes@npm:^1.2.0": - version: 1.2.0 - resolution: "@devtools-ds/themes@npm:1.2.0" - dependencies: - "@babel/runtime": ~7.5.4 - "@design-systems/utils": 2.12.0 - clsx: 1.1.0 - peerDependencies: - react: ">= 16.8.6" - checksum: fc1db88056b18481abacc1dcffb86419fc05d66ddab375684dc66a6365ed348388b34137c9480ae30a623cb6c0348e18ecc67b24ba6a4a0da48b45a0e1b51c45 - languageName: node - linkType: hard - -"@devtools-ds/tree@npm:^1.2.0": - version: 1.2.0 - resolution: "@devtools-ds/tree@npm:1.2.0" - dependencies: - "@babel/runtime": 7.7.2 - "@devtools-ds/themes": ^1.2.0 - clsx: 1.1.0 - peerDependencies: - react: ">= 16.8.6" - checksum: fd0b2c8ae606d9ff5ed722371f91278b62da06b0162cf5b104ac7d176a555fc531942370c084bf27bd3525d61981bacdd3f8ac71411dcbc4bc1827b07f1482a0 - languageName: node - linkType: hard - "@discoveryjs/json-ext@npm:^0.5.3": version: 0.5.7 resolution: "@discoveryjs/json-ext@npm:0.5.7" @@ -5406,6 +5669,15 @@ __metadata: languageName: node linkType: hard +"@emotion/use-insertion-effect-with-fallbacks@npm:^1.0.0": + version: 1.0.1 + resolution: "@emotion/use-insertion-effect-with-fallbacks@npm:1.0.1" + peerDependencies: + react: ">=16.8.0" + checksum: 700b6e5bbb37a9231f203bb3af11295eed01d73b2293abece0bc2a2237015e944d7b5114d4887ad9a79776504aa51ed2a8b0ddbc117c54495dd01a6b22f93786 + languageName: node + linkType: hard + "@emotion/utils@npm:^1.0.0, @emotion/utils@npm:^1.1.0": version: 1.1.0 resolution: "@emotion/utils@npm:1.1.0" @@ -5427,6 +5699,20 @@ __metadata: languageName: node linkType: hard +"@esbuild/android-arm64@npm:0.18.20": + version: 0.18.20 + resolution: "@esbuild/android-arm64@npm:0.18.20" + conditions: os=android & cpu=arm64 + languageName: node + linkType: hard + +"@esbuild/android-arm64@npm:0.19.8": + version: 0.19.8 + resolution: "@esbuild/android-arm64@npm:0.19.8" + conditions: os=android & cpu=arm64 + languageName: node + linkType: hard + "@esbuild/android-arm@npm:0.17.19": version: 0.17.19 resolution: "@esbuild/android-arm@npm:0.17.19" @@ -5434,6 +5720,20 @@ __metadata: languageName: node linkType: hard +"@esbuild/android-arm@npm:0.18.20": + version: 0.18.20 + resolution: "@esbuild/android-arm@npm:0.18.20" + conditions: os=android & cpu=arm + languageName: node + linkType: hard + +"@esbuild/android-arm@npm:0.19.8": + version: 0.19.8 + resolution: "@esbuild/android-arm@npm:0.19.8" + conditions: os=android & cpu=arm + languageName: node + linkType: hard + "@esbuild/android-x64@npm:0.17.19": version: 0.17.19 resolution: "@esbuild/android-x64@npm:0.17.19" @@ -5441,6 +5741,20 @@ __metadata: languageName: node linkType: hard +"@esbuild/android-x64@npm:0.18.20": + version: 0.18.20 + resolution: "@esbuild/android-x64@npm:0.18.20" + conditions: os=android & cpu=x64 + languageName: node + linkType: hard + +"@esbuild/android-x64@npm:0.19.8": + version: 0.19.8 + resolution: "@esbuild/android-x64@npm:0.19.8" + conditions: os=android & cpu=x64 + languageName: node + linkType: hard + "@esbuild/darwin-arm64@npm:0.17.19": version: 0.17.19 resolution: "@esbuild/darwin-arm64@npm:0.17.19" @@ -5448,6 +5762,20 @@ __metadata: languageName: node linkType: hard +"@esbuild/darwin-arm64@npm:0.18.20": + version: 0.18.20 + resolution: "@esbuild/darwin-arm64@npm:0.18.20" + conditions: os=darwin & cpu=arm64 + languageName: node + linkType: hard + +"@esbuild/darwin-arm64@npm:0.19.8": + version: 0.19.8 + resolution: "@esbuild/darwin-arm64@npm:0.19.8" + conditions: os=darwin & cpu=arm64 + languageName: node + linkType: hard + "@esbuild/darwin-x64@npm:0.17.19": version: 0.17.19 resolution: "@esbuild/darwin-x64@npm:0.17.19" @@ -5455,6 +5783,20 @@ __metadata: languageName: node linkType: hard +"@esbuild/darwin-x64@npm:0.18.20": + version: 0.18.20 + resolution: "@esbuild/darwin-x64@npm:0.18.20" + conditions: os=darwin & cpu=x64 + languageName: node + linkType: hard + +"@esbuild/darwin-x64@npm:0.19.8": + version: 0.19.8 + resolution: "@esbuild/darwin-x64@npm:0.19.8" + conditions: os=darwin & cpu=x64 + languageName: node + linkType: hard + "@esbuild/freebsd-arm64@npm:0.17.19": version: 0.17.19 resolution: "@esbuild/freebsd-arm64@npm:0.17.19" @@ -5462,6 +5804,20 @@ __metadata: languageName: node linkType: hard +"@esbuild/freebsd-arm64@npm:0.18.20": + version: 0.18.20 + resolution: "@esbuild/freebsd-arm64@npm:0.18.20" + conditions: os=freebsd & cpu=arm64 + languageName: node + linkType: hard + +"@esbuild/freebsd-arm64@npm:0.19.8": + version: 0.19.8 + resolution: "@esbuild/freebsd-arm64@npm:0.19.8" + conditions: os=freebsd & cpu=arm64 + languageName: node + linkType: hard + "@esbuild/freebsd-x64@npm:0.17.19": version: 0.17.19 resolution: "@esbuild/freebsd-x64@npm:0.17.19" @@ -5469,6 +5825,20 @@ __metadata: languageName: node linkType: hard +"@esbuild/freebsd-x64@npm:0.18.20": + version: 0.18.20 + resolution: "@esbuild/freebsd-x64@npm:0.18.20" + conditions: os=freebsd & cpu=x64 + languageName: node + linkType: hard + +"@esbuild/freebsd-x64@npm:0.19.8": + version: 0.19.8 + resolution: "@esbuild/freebsd-x64@npm:0.19.8" + conditions: os=freebsd & cpu=x64 + languageName: node + linkType: hard + "@esbuild/linux-arm64@npm:0.17.19": version: 0.17.19 resolution: "@esbuild/linux-arm64@npm:0.17.19" @@ -5476,6 +5846,20 @@ __metadata: languageName: node linkType: hard +"@esbuild/linux-arm64@npm:0.18.20": + version: 0.18.20 + resolution: "@esbuild/linux-arm64@npm:0.18.20" + conditions: os=linux & cpu=arm64 + languageName: node + linkType: hard + +"@esbuild/linux-arm64@npm:0.19.8": + version: 0.19.8 + resolution: "@esbuild/linux-arm64@npm:0.19.8" + conditions: os=linux & cpu=arm64 + languageName: node + linkType: hard + "@esbuild/linux-arm@npm:0.17.19": version: 0.17.19 resolution: "@esbuild/linux-arm@npm:0.17.19" @@ -5483,6 +5867,20 @@ __metadata: languageName: node linkType: hard +"@esbuild/linux-arm@npm:0.18.20": + version: 0.18.20 + resolution: "@esbuild/linux-arm@npm:0.18.20" + conditions: os=linux & cpu=arm + languageName: node + linkType: hard + +"@esbuild/linux-arm@npm:0.19.8": + version: 0.19.8 + resolution: "@esbuild/linux-arm@npm:0.19.8" + conditions: os=linux & cpu=arm + languageName: node + linkType: hard + "@esbuild/linux-ia32@npm:0.17.19": version: 0.17.19 resolution: "@esbuild/linux-ia32@npm:0.17.19" @@ -5490,6 +5888,20 @@ __metadata: languageName: node linkType: hard +"@esbuild/linux-ia32@npm:0.18.20": + version: 0.18.20 + resolution: "@esbuild/linux-ia32@npm:0.18.20" + conditions: os=linux & cpu=ia32 + languageName: node + linkType: hard + +"@esbuild/linux-ia32@npm:0.19.8": + version: 0.19.8 + resolution: "@esbuild/linux-ia32@npm:0.19.8" + conditions: os=linux & cpu=ia32 + languageName: node + linkType: hard + "@esbuild/linux-loong64@npm:0.17.19": version: 0.17.19 resolution: "@esbuild/linux-loong64@npm:0.17.19" @@ -5497,6 +5909,20 @@ __metadata: languageName: node linkType: hard +"@esbuild/linux-loong64@npm:0.18.20": + version: 0.18.20 + resolution: "@esbuild/linux-loong64@npm:0.18.20" + conditions: os=linux & cpu=loong64 + languageName: node + linkType: hard + +"@esbuild/linux-loong64@npm:0.19.8": + version: 0.19.8 + resolution: "@esbuild/linux-loong64@npm:0.19.8" + conditions: os=linux & cpu=loong64 + languageName: node + linkType: hard + "@esbuild/linux-mips64el@npm:0.17.19": version: 0.17.19 resolution: "@esbuild/linux-mips64el@npm:0.17.19" @@ -5504,6 +5930,20 @@ __metadata: languageName: node linkType: hard +"@esbuild/linux-mips64el@npm:0.18.20": + version: 0.18.20 + resolution: "@esbuild/linux-mips64el@npm:0.18.20" + conditions: os=linux & cpu=mips64el + languageName: node + linkType: hard + +"@esbuild/linux-mips64el@npm:0.19.8": + version: 0.19.8 + resolution: "@esbuild/linux-mips64el@npm:0.19.8" + conditions: os=linux & cpu=mips64el + languageName: node + linkType: hard + "@esbuild/linux-ppc64@npm:0.17.19": version: 0.17.19 resolution: "@esbuild/linux-ppc64@npm:0.17.19" @@ -5511,6 +5951,20 @@ __metadata: languageName: node linkType: hard +"@esbuild/linux-ppc64@npm:0.18.20": + version: 0.18.20 + resolution: "@esbuild/linux-ppc64@npm:0.18.20" + conditions: os=linux & cpu=ppc64 + languageName: node + linkType: hard + +"@esbuild/linux-ppc64@npm:0.19.8": + version: 0.19.8 + resolution: "@esbuild/linux-ppc64@npm:0.19.8" + conditions: os=linux & cpu=ppc64 + languageName: node + linkType: hard + "@esbuild/linux-riscv64@npm:0.17.19": version: 0.17.19 resolution: "@esbuild/linux-riscv64@npm:0.17.19" @@ -5518,6 +5972,20 @@ __metadata: languageName: node linkType: hard +"@esbuild/linux-riscv64@npm:0.18.20": + version: 0.18.20 + resolution: "@esbuild/linux-riscv64@npm:0.18.20" + conditions: os=linux & cpu=riscv64 + languageName: node + linkType: hard + +"@esbuild/linux-riscv64@npm:0.19.8": + version: 0.19.8 + resolution: "@esbuild/linux-riscv64@npm:0.19.8" + conditions: os=linux & cpu=riscv64 + languageName: node + linkType: hard + "@esbuild/linux-s390x@npm:0.17.19": version: 0.17.19 resolution: "@esbuild/linux-s390x@npm:0.17.19" @@ -5525,6 +5993,20 @@ __metadata: languageName: node linkType: hard +"@esbuild/linux-s390x@npm:0.18.20": + version: 0.18.20 + resolution: "@esbuild/linux-s390x@npm:0.18.20" + conditions: os=linux & cpu=s390x + languageName: node + linkType: hard + +"@esbuild/linux-s390x@npm:0.19.8": + version: 0.19.8 + resolution: "@esbuild/linux-s390x@npm:0.19.8" + conditions: os=linux & cpu=s390x + languageName: node + linkType: hard + "@esbuild/linux-x64@npm:0.17.19": version: 0.17.19 resolution: "@esbuild/linux-x64@npm:0.17.19" @@ -5532,6 +6014,20 @@ __metadata: languageName: node linkType: hard +"@esbuild/linux-x64@npm:0.18.20": + version: 0.18.20 + resolution: "@esbuild/linux-x64@npm:0.18.20" + conditions: os=linux & cpu=x64 + languageName: node + linkType: hard + +"@esbuild/linux-x64@npm:0.19.8": + version: 0.19.8 + resolution: "@esbuild/linux-x64@npm:0.19.8" + conditions: os=linux & cpu=x64 + languageName: node + linkType: hard + "@esbuild/netbsd-x64@npm:0.17.19": version: 0.17.19 resolution: "@esbuild/netbsd-x64@npm:0.17.19" @@ -5539,6 +6035,20 @@ __metadata: languageName: node linkType: hard +"@esbuild/netbsd-x64@npm:0.18.20": + version: 0.18.20 + resolution: "@esbuild/netbsd-x64@npm:0.18.20" + conditions: os=netbsd & cpu=x64 + languageName: node + linkType: hard + +"@esbuild/netbsd-x64@npm:0.19.8": + version: 0.19.8 + resolution: "@esbuild/netbsd-x64@npm:0.19.8" + conditions: os=netbsd & cpu=x64 + languageName: node + linkType: hard + "@esbuild/openbsd-x64@npm:0.17.19": version: 0.17.19 resolution: "@esbuild/openbsd-x64@npm:0.17.19" @@ -5546,6 +6056,20 @@ __metadata: languageName: node linkType: hard +"@esbuild/openbsd-x64@npm:0.18.20": + version: 0.18.20 + resolution: "@esbuild/openbsd-x64@npm:0.18.20" + conditions: os=openbsd & cpu=x64 + languageName: node + linkType: hard + +"@esbuild/openbsd-x64@npm:0.19.8": + version: 0.19.8 + resolution: "@esbuild/openbsd-x64@npm:0.19.8" + conditions: os=openbsd & cpu=x64 + languageName: node + linkType: hard + "@esbuild/sunos-x64@npm:0.17.19": version: 0.17.19 resolution: "@esbuild/sunos-x64@npm:0.17.19" @@ -5553,6 +6077,20 @@ __metadata: languageName: node linkType: hard +"@esbuild/sunos-x64@npm:0.18.20": + version: 0.18.20 + resolution: "@esbuild/sunos-x64@npm:0.18.20" + conditions: os=sunos & cpu=x64 + languageName: node + linkType: hard + +"@esbuild/sunos-x64@npm:0.19.8": + version: 0.19.8 + resolution: "@esbuild/sunos-x64@npm:0.19.8" + conditions: os=sunos & cpu=x64 + languageName: node + linkType: hard + "@esbuild/win32-arm64@npm:0.17.19": version: 0.17.19 resolution: "@esbuild/win32-arm64@npm:0.17.19" @@ -5560,6 +6098,20 @@ __metadata: languageName: node linkType: hard +"@esbuild/win32-arm64@npm:0.18.20": + version: 0.18.20 + resolution: "@esbuild/win32-arm64@npm:0.18.20" + conditions: os=win32 & cpu=arm64 + languageName: node + linkType: hard + +"@esbuild/win32-arm64@npm:0.19.8": + version: 0.19.8 + resolution: "@esbuild/win32-arm64@npm:0.19.8" + conditions: os=win32 & cpu=arm64 + languageName: node + linkType: hard + "@esbuild/win32-ia32@npm:0.17.19": version: 0.17.19 resolution: "@esbuild/win32-ia32@npm:0.17.19" @@ -5567,6 +6119,20 @@ __metadata: languageName: node linkType: hard +"@esbuild/win32-ia32@npm:0.18.20": + version: 0.18.20 + resolution: "@esbuild/win32-ia32@npm:0.18.20" + conditions: os=win32 & cpu=ia32 + languageName: node + linkType: hard + +"@esbuild/win32-ia32@npm:0.19.8": + version: 0.19.8 + resolution: "@esbuild/win32-ia32@npm:0.19.8" + conditions: os=win32 & cpu=ia32 + languageName: node + linkType: hard + "@esbuild/win32-x64@npm:0.17.19": version: 0.17.19 resolution: "@esbuild/win32-x64@npm:0.17.19" @@ -5574,20 +6140,17 @@ __metadata: languageName: node linkType: hard -"@eslint/eslintrc@npm:^1.0.5": - version: 1.3.0 - resolution: "@eslint/eslintrc@npm:1.3.0" - dependencies: - ajv: ^6.12.4 - debug: ^4.3.2 - espree: ^9.3.2 - globals: ^13.15.0 - ignore: ^5.2.0 - import-fresh: ^3.2.1 - js-yaml: ^4.1.0 - minimatch: ^3.1.2 - strip-json-comments: ^3.1.1 - checksum: a1e734ad31a8b5328dce9f479f185fd4fc83dd7f06c538e1fa457fd8226b89602a55cc6458cd52b29573b01cdfaf42331be8cfc1fec732570086b591f4ed6515 +"@esbuild/win32-x64@npm:0.18.20": + version: 0.18.20 + resolution: "@esbuild/win32-x64@npm:0.18.20" + conditions: os=win32 & cpu=x64 + languageName: node + linkType: hard + +"@esbuild/win32-x64@npm:0.19.8": + version: 0.19.8 + resolution: "@esbuild/win32-x64@npm:0.19.8" + conditions: os=win32 & cpu=x64 languageName: node linkType: hard @@ -5608,238 +6171,6 @@ __metadata: languageName: node linkType: hard -"@ethereumjs/common@npm:^2.5.0, @ethereumjs/common@npm:^2.6.3": - version: 2.6.3 - resolution: "@ethereumjs/common@npm:2.6.3" - dependencies: - crc-32: ^1.2.0 - ethereumjs-util: ^7.1.4 - checksum: 660deabc93c3a6fc7c03af864406dcb8d9a4a502e321ce455cc62c0ff4117e11ce5d42ad49c5ca16ddc5364c189a302f6a64bc055049606757f4324ce857ca60 - languageName: node - linkType: hard - -"@ethereumjs/tx@npm:^3.3.2": - version: 3.5.1 - resolution: "@ethereumjs/tx@npm:3.5.1" - dependencies: - "@ethereumjs/common": ^2.6.3 - ethereumjs-util: ^7.1.4 - checksum: ed17780314592eca96f7aed392707b55af713964a9ac8e5a1ba5b1a0d7cd90ced80d3793bc24e2ce7a5b4852cefae31af8731c5cf54cece48ada16c5dcb2713b - languageName: node - linkType: hard - -"@ethersproject/abi@npm:^5.6.3": - version: 5.6.4 - resolution: "@ethersproject/abi@npm:5.6.4" - dependencies: - "@ethersproject/address": ^5.6.1 - "@ethersproject/bignumber": ^5.6.2 - "@ethersproject/bytes": ^5.6.1 - "@ethersproject/constants": ^5.6.1 - "@ethersproject/hash": ^5.6.1 - "@ethersproject/keccak256": ^5.6.1 - "@ethersproject/logger": ^5.6.0 - "@ethersproject/properties": ^5.6.0 - "@ethersproject/strings": ^5.6.1 - checksum: b5e70fa13a29e1143131a0ed25053a3d355c07353e13d436f42add33f40753b5541a088cf31a1ccca6448bb1d773a41ece0bf8367490d3f2ad394a4c26f4876f - languageName: node - linkType: hard - -"@ethersproject/abstract-provider@npm:^5.6.1": - version: 5.6.1 - resolution: "@ethersproject/abstract-provider@npm:5.6.1" - dependencies: - "@ethersproject/bignumber": ^5.6.2 - "@ethersproject/bytes": ^5.6.1 - "@ethersproject/logger": ^5.6.0 - "@ethersproject/networks": ^5.6.3 - "@ethersproject/properties": ^5.6.0 - "@ethersproject/transactions": ^5.6.2 - "@ethersproject/web": ^5.6.1 - checksum: a1be8035d9e67fd41a336e2d38f5cf03b7a2590243749b4cf807ad73906b5a298e177ebe291cb5b54262ded4825169bf82968e0e5b09fbea17444b903faeeab0 - languageName: node - linkType: hard - -"@ethersproject/abstract-signer@npm:^5.6.2": - version: 5.6.2 - resolution: "@ethersproject/abstract-signer@npm:5.6.2" - dependencies: - "@ethersproject/abstract-provider": ^5.6.1 - "@ethersproject/bignumber": ^5.6.2 - "@ethersproject/bytes": ^5.6.1 - "@ethersproject/logger": ^5.6.0 - "@ethersproject/properties": ^5.6.0 - checksum: 09f3dd1309b37bb3803057d618e4a831668e010e22047f52f1719f2b6f50b63805f1bec112b1603880d6c6b7d403ed187611ff1b14ae1f151141ede186a04996 - languageName: node - linkType: hard - -"@ethersproject/address@npm:^5.6.1": - version: 5.6.1 - resolution: "@ethersproject/address@npm:5.6.1" - dependencies: - "@ethersproject/bignumber": ^5.6.2 - "@ethersproject/bytes": ^5.6.1 - "@ethersproject/keccak256": ^5.6.1 - "@ethersproject/logger": ^5.6.0 - "@ethersproject/rlp": ^5.6.1 - checksum: 262096ef05a1b626c161a72698a5d8b06aebf821fe01a1651ab40f80c29ca2481b96be7f972745785fd6399906509458c4c9a38f3bc1c1cb5afa7d2f76f7309a - languageName: node - linkType: hard - -"@ethersproject/base64@npm:^5.6.1": - version: 5.6.1 - resolution: "@ethersproject/base64@npm:5.6.1" - dependencies: - "@ethersproject/bytes": ^5.6.1 - checksum: d21c5c297e1b8bc48fe59012c0cd70a90df7772fac07d9cc3da499d71d174d9f48edfd83495d4a1496cb70e8d1b33fb5b549a9529c5c2f97bb3a07d3f33a3fe8 - languageName: node - linkType: hard - -"@ethersproject/bignumber@npm:^5.6.2": - version: 5.6.2 - resolution: "@ethersproject/bignumber@npm:5.6.2" - dependencies: - "@ethersproject/bytes": ^5.6.1 - "@ethersproject/logger": ^5.6.0 - bn.js: ^5.2.1 - checksum: 9cf31c10274f1b6d45b16aed29f43729e8f5edec38c8ec8bb90d6b44f0eae14fda6519536228d23916a375ce11e71a77279a912d653ea02503959910b6bf9de7 - languageName: node - linkType: hard - -"@ethersproject/bytes@npm:^5.6.1": - version: 5.6.1 - resolution: "@ethersproject/bytes@npm:5.6.1" - dependencies: - "@ethersproject/logger": ^5.6.0 - checksum: d06ffe3bf12aa8a6588d99b82e40b46a2cbb8b057fc650aad836e3e8c95d4559773254eeeb8fed652066dcf8082e527e37cd2b9fff7ac8cabc4de7c49459a7eb - languageName: node - linkType: hard - -"@ethersproject/constants@npm:^5.6.1": - version: 5.6.1 - resolution: "@ethersproject/constants@npm:5.6.1" - dependencies: - "@ethersproject/bignumber": ^5.6.2 - checksum: 3c6abcee60f1620796dc40210a638b601ad8a2d3f6668a69c42a5ca361044f21296b16d1d43b8a00f7c28b385de4165983a8adf671e0983f5ef07459dfa84997 - languageName: node - linkType: hard - -"@ethersproject/hash@npm:^5.6.1": - version: 5.6.1 - resolution: "@ethersproject/hash@npm:5.6.1" - dependencies: - "@ethersproject/abstract-signer": ^5.6.2 - "@ethersproject/address": ^5.6.1 - "@ethersproject/bignumber": ^5.6.2 - "@ethersproject/bytes": ^5.6.1 - "@ethersproject/keccak256": ^5.6.1 - "@ethersproject/logger": ^5.6.0 - "@ethersproject/properties": ^5.6.0 - "@ethersproject/strings": ^5.6.1 - checksum: 1338b578a51bc5cb692c17b1cabc51e484e9e3e009c4ffec13032332fc7e746c115968de1c259133cdcdad55fa96c5c8a5144170190c62b968a3fedb5b1d2cdb - languageName: node - linkType: hard - -"@ethersproject/keccak256@npm:^5.6.1": - version: 5.6.1 - resolution: "@ethersproject/keccak256@npm:5.6.1" - dependencies: - "@ethersproject/bytes": ^5.6.1 - js-sha3: 0.8.0 - checksum: fdc950e22a1aafc92fdf749cdc5b8952b85e8cee8872d807c5f40be31f58675d30e0eca5e676876b93f2cd22ac63a344d384d116827ee80928c24b7c299991f5 - languageName: node - linkType: hard - -"@ethersproject/logger@npm:^5.6.0": - version: 5.6.0 - resolution: "@ethersproject/logger@npm:5.6.0" - checksum: 6eee38a973c7a458552278971c109a3e5df3c257e433cb959da9a287ea04628d1f510d41b83bd5f9da5ddc05d97d307ed2162a9ba1b4fcc50664e4f60061636c - languageName: node - linkType: hard - -"@ethersproject/networks@npm:^5.6.3": - version: 5.6.4 - resolution: "@ethersproject/networks@npm:5.6.4" - dependencies: - "@ethersproject/logger": ^5.6.0 - checksum: d41c07497de4ace3f57e972428685a8703a867600cf01f2bc15a21fcb7f99afb3f05b3d8dbb29ac206473368f30d60b98dc445cc38403be4cbe6f804f70e5173 - languageName: node - linkType: hard - -"@ethersproject/properties@npm:^5.6.0": - version: 5.6.0 - resolution: "@ethersproject/properties@npm:5.6.0" - dependencies: - "@ethersproject/logger": ^5.6.0 - checksum: adcb6a843dcdf809262d77d6fbe52acdd48703327b298f78e698b76784e89564fb81791d27eaee72b1a6aaaf5688ea2ae7a95faabdef8b4aecc99989fec55901 - languageName: node - linkType: hard - -"@ethersproject/rlp@npm:^5.6.1": - version: 5.6.1 - resolution: "@ethersproject/rlp@npm:5.6.1" - dependencies: - "@ethersproject/bytes": ^5.6.1 - "@ethersproject/logger": ^5.6.0 - checksum: 43a281d0e7842606e2337b5552c13f4b5dad209dce173de39ef6866e02c9d7b974f1cae945782f4c4b74a8e22d8272bfd0348c1cd1bfeb2c278078ef95565488 - languageName: node - linkType: hard - -"@ethersproject/signing-key@npm:^5.6.2": - version: 5.6.2 - resolution: "@ethersproject/signing-key@npm:5.6.2" - dependencies: - "@ethersproject/bytes": ^5.6.1 - "@ethersproject/logger": ^5.6.0 - "@ethersproject/properties": ^5.6.0 - bn.js: ^5.2.1 - elliptic: 6.5.4 - hash.js: 1.1.7 - checksum: 7889d0934c9664f87e7b7e021794e2d2ddb2e81c1392498e154cf2d5909b922d74d3df78cec44187f63dc700eddad8f8ea5ded47d2082a212a591818014ca636 - languageName: node - linkType: hard - -"@ethersproject/strings@npm:^5.6.1": - version: 5.6.1 - resolution: "@ethersproject/strings@npm:5.6.1" - dependencies: - "@ethersproject/bytes": ^5.6.1 - "@ethersproject/constants": ^5.6.1 - "@ethersproject/logger": ^5.6.0 - checksum: dcf33c2ddb22a48c3d7afc151a5f37e5a4da62a742a298988d517dc9adfaff9c5a0ebd8f476ec9792704cfc8142abd541e97432bc47cb121093edac7a5cfaf22 - languageName: node - linkType: hard - -"@ethersproject/transactions@npm:^5.6.2": - version: 5.6.2 - resolution: "@ethersproject/transactions@npm:5.6.2" - dependencies: - "@ethersproject/address": ^5.6.1 - "@ethersproject/bignumber": ^5.6.2 - "@ethersproject/bytes": ^5.6.1 - "@ethersproject/constants": ^5.6.1 - "@ethersproject/keccak256": ^5.6.1 - "@ethersproject/logger": ^5.6.0 - "@ethersproject/properties": ^5.6.0 - "@ethersproject/rlp": ^5.6.1 - "@ethersproject/signing-key": ^5.6.2 - checksum: 5cf13936ce406f97b71fc1e99090698c2e4276dcb17c5a022aa3c3f55825961edcb53d4a59166acab797275afa45fb93f1b9b602ebc709da6afa66853f849609 - languageName: node - linkType: hard - -"@ethersproject/web@npm:^5.6.1": - version: 5.6.1 - resolution: "@ethersproject/web@npm:5.6.1" - dependencies: - "@ethersproject/base64": ^5.6.1 - "@ethersproject/bytes": ^5.6.1 - "@ethersproject/logger": ^5.6.0 - "@ethersproject/properties": ^5.6.0 - "@ethersproject/strings": ^5.6.1 - checksum: 4acb62bb04431f5a1b1ec27e88847087676dd2fd72ba40c789f2885493e5eed6b6d387d5b47d4cdfc2775bcbe714e04bfaf0d04a6f30e929310384362e6be429 - languageName: node - linkType: hard - "@ewsjs/ntlm-client@npm:^1.0.0": version: 1.0.0 resolution: "@ewsjs/ntlm-client@npm:1.0.0" @@ -5876,6 +6207,13 @@ __metadata: languageName: node linkType: hard +"@fal-works/esbuild-plugin-global-externals@npm:^2.1.2": + version: 2.1.2 + resolution: "@fal-works/esbuild-plugin-global-externals@npm:2.1.2" + checksum: c59715902b9062aa7ff38973f298b509499fd146dbf564dc338b3f9e896da5bffb4ca676c27587fde79b3586003e24d65960acb62f009bca43dca34c76f8cbf7 + languageName: node + linkType: hard + "@figspec/components@npm:^1.0.0": version: 1.0.1 resolution: "@figspec/components@npm:1.0.1" @@ -6072,7 +6410,7 @@ __metadata: languageName: node linkType: hard -"@gar/promisify@npm:^1.0.1, @gar/promisify@npm:^1.1.3": +"@gar/promisify@npm:^1.1.3": version: 1.1.3 resolution: "@gar/promisify@npm:1.1.3" checksum: 4059f790e2d07bf3c3ff3e0fec0daa8144fe35c1f6e0111c9921bd32106adaa97a4ab096ad7dab1e28ee6a9060083c4d1a4ada42a7f5f3f7a96b8812e2b757c1 @@ -6718,17 +7056,6 @@ __metadata: languageName: node linkType: hard -"@humanwhocodes/config-array@npm:^0.9.2": - version: 0.9.5 - resolution: "@humanwhocodes/config-array@npm:0.9.5" - dependencies: - "@humanwhocodes/object-schema": ^1.2.1 - debug: ^4.1.1 - minimatch: ^3.0.4 - checksum: 8ba6281bc0590f6c6eadeefc14244b5a3e3f5903445aadd1a32099ed80e753037674026ce1b3c945ab93561bea5eb29e3c5bff67060e230c295595ba517a3492 - languageName: node - linkType: hard - "@humanwhocodes/module-importer@npm:^1.0.1": version: 1.0.1 resolution: "@humanwhocodes/module-importer@npm:1.0.1" @@ -6804,39 +7131,35 @@ __metadata: languageName: node linkType: hard -"@jest/transform@npm:^26.6.2": - version: 26.6.2 - resolution: "@jest/transform@npm:26.6.2" +"@jest/schemas@npm:^29.6.3": + version: 29.6.3 + resolution: "@jest/schemas@npm:29.6.3" dependencies: - "@babel/core": ^7.1.0 - "@jest/types": ^26.6.2 - babel-plugin-istanbul: ^6.0.0 - chalk: ^4.0.0 - convert-source-map: ^1.4.0 - fast-json-stable-stringify: ^2.0.0 - graceful-fs: ^4.2.4 - jest-haste-map: ^26.6.2 - jest-regex-util: ^26.0.0 - jest-util: ^26.6.2 - micromatch: ^4.0.2 - pirates: ^4.0.1 - slash: ^3.0.0 - source-map: ^0.6.1 - write-file-atomic: ^3.0.0 - checksum: 31667b925a2f3b310d854495da0ab67be8f5da24df76ecfc51162e75f1140aed5d18069ba190cb5e0c7e492b04272c8c79076ddf5bbcff530ee80a16a02c4545 + "@sinclair/typebox": ^0.27.8 + checksum: 910040425f0fc93cd13e68c750b7885590b8839066dfa0cd78e7def07bbb708ad869381f725945d66f2284de5663bbecf63e8fdd856e2ae6e261ba30b1687e93 languageName: node linkType: hard -"@jest/types@npm:^26.6.2": - version: 26.6.2 - resolution: "@jest/types@npm:26.6.2" +"@jest/transform@npm:^29.3.1": + version: 29.7.0 + resolution: "@jest/transform@npm:29.7.0" dependencies: - "@types/istanbul-lib-coverage": ^2.0.0 - "@types/istanbul-reports": ^3.0.0 - "@types/node": "*" - "@types/yargs": ^15.0.0 + "@babel/core": ^7.11.6 + "@jest/types": ^29.6.3 + "@jridgewell/trace-mapping": ^0.3.18 + babel-plugin-istanbul: ^6.1.1 chalk: ^4.0.0 - checksum: a0bd3d2f22f26ddb23f41fddf6e6a30bf4fab2ce79ec1cb6ce6fdfaf90a72e00f4c71da91ec61e13db3b10c41de22cf49d07c57ff2b59171d64b29f909c1d8d6 + convert-source-map: ^2.0.0 + fast-json-stable-stringify: ^2.1.0 + graceful-fs: ^4.2.9 + jest-haste-map: ^29.7.0 + jest-regex-util: ^29.6.3 + jest-util: ^29.7.0 + micromatch: ^4.0.4 + pirates: ^4.0.4 + slash: ^3.0.0 + write-file-atomic: ^4.0.2 + checksum: 0f8ac9f413903b3cb6d240102db848f2a354f63971ab885833799a9964999dd51c388162106a807f810071f864302cdd8e3f0c241c29ce02d85a36f18f3f40ab languageName: node linkType: hard @@ -6867,6 +7190,20 @@ __metadata: languageName: node linkType: hard +"@jest/types@npm:^29.6.3": + version: 29.6.3 + resolution: "@jest/types@npm:29.6.3" + dependencies: + "@jest/schemas": ^29.6.3 + "@types/istanbul-lib-coverage": ^2.0.0 + "@types/istanbul-reports": ^3.0.0 + "@types/node": "*" + "@types/yargs": ^17.0.8 + chalk: ^4.0.0 + checksum: a0bcf15dbb0eca6bdd8ce61a3fb055349d40268622a7670a3b2eb3c3dbafe9eb26af59938366d520b86907b9505b0f9b29b85cec11579a9e580694b87cd90fcc + languageName: node + linkType: hard + "@jimp/bmp@npm:^0.16.1": version: 0.16.1 resolution: "@jimp/bmp@npm:0.16.1" @@ -7291,22 +7628,6 @@ __metadata: languageName: node linkType: hard -"@joshwooding/vite-plugin-react-docgen-typescript@npm:0.0.5": - version: 0.0.5 - resolution: "@joshwooding/vite-plugin-react-docgen-typescript@npm:0.0.5" - dependencies: - "@rollup/pluginutils": ^4.2.1 - glob: ^7.2.0 - glob-promise: ^4.2.0 - magic-string: ^0.26.1 - react-docgen-typescript: ^2.1.1 - peerDependencies: - typescript: ">= 4.3.x" - vite: ">2.0.0-0" - checksum: e722b472413bf67e879bdd3969a43223e161b2d2b634848b7a88c89ddb507ad331959808ff7e17b6513527e797aae4aad973dda0bd3c7ab3348ebc691ab76b83 - languageName: node - linkType: hard - "@jridgewell/gen-mapping@npm:^0.3.0, @jridgewell/gen-mapping@npm:^0.3.2": version: 0.3.2 resolution: "@jridgewell/gen-mapping@npm:0.3.2" @@ -7318,13 +7639,6 @@ __metadata: languageName: node linkType: hard -"@jridgewell/resolve-uri@npm:3.1.0": - version: 3.1.0 - resolution: "@jridgewell/resolve-uri@npm:3.1.0" - checksum: b5ceaaf9a110fcb2780d1d8f8d4a0bfd216702f31c988d8042e5f8fbe353c55d9b0f55a1733afdc64806f8e79c485d2464680ac48a0d9fcadb9548ee6b81d267 - languageName: node - linkType: hard - "@jridgewell/resolve-uri@npm:^3.0.3": version: 3.0.5 resolution: "@jridgewell/resolve-uri@npm:3.0.5" @@ -7356,10 +7670,13 @@ __metadata: languageName: node linkType: hard -"@jridgewell/sourcemap-codec@npm:1.4.14": - version: 1.4.14 - resolution: "@jridgewell/sourcemap-codec@npm:1.4.14" - checksum: 61100637b6d173d3ba786a5dff019e1a74b1f394f323c1fee337ff390239f053b87266c7a948777f4b1ee68c01a8ad0ab61e5ff4abb5a012a0b091bec391ab97 +"@jridgewell/source-map@npm:^0.3.3": + version: 0.3.5 + resolution: "@jridgewell/source-map@npm:0.3.5" + dependencies: + "@jridgewell/gen-mapping": ^0.3.0 + "@jridgewell/trace-mapping": ^0.3.9 + checksum: 1ad4dec0bdafbade57920a50acec6634f88a0eb735851e0dda906fa9894e7f0549c492678aad1a10f8e144bfe87f238307bf2a914a1bc85b7781d345417e9f6f languageName: node linkType: hard @@ -7387,7 +7704,7 @@ __metadata: languageName: node linkType: hard -"@jridgewell/trace-mapping@npm:^0.3.12, @jridgewell/trace-mapping@npm:^0.3.7, @jridgewell/trace-mapping@npm:^0.3.9": +"@jridgewell/trace-mapping@npm:^0.3.12, @jridgewell/trace-mapping@npm:^0.3.9": version: 0.3.14 resolution: "@jridgewell/trace-mapping@npm:0.3.14" dependencies: @@ -7397,16 +7714,6 @@ __metadata: languageName: node linkType: hard -"@jridgewell/trace-mapping@npm:^0.3.14": - version: 0.3.17 - resolution: "@jridgewell/trace-mapping@npm:0.3.17" - dependencies: - "@jridgewell/resolve-uri": 3.1.0 - "@jridgewell/sourcemap-codec": 1.4.14 - checksum: 9d703b859cff5cd83b7308fd457a431387db5db96bd781a63bf48e183418dd9d3d44e76b9e4ae13237f6abeeb25d739ec9215c1d5bfdd08f66f750a50074a339 - languageName: node - linkType: hard - "@jridgewell/trace-mapping@npm:^0.3.17": version: 0.3.19 resolution: "@jridgewell/trace-mapping@npm:0.3.19" @@ -7417,6 +7724,16 @@ __metadata: languageName: node linkType: hard +"@jridgewell/trace-mapping@npm:^0.3.18": + version: 0.3.20 + resolution: "@jridgewell/trace-mapping@npm:0.3.20" + dependencies: + "@jridgewell/resolve-uri": ^3.1.0 + "@jridgewell/sourcemap-codec": ^1.4.14 + checksum: cd1a7353135f385909468ff0cf20bdd37e59f2ee49a13a966dedf921943e222082c583ade2b579ff6cd0d8faafcb5461f253e1bf2a9f48fec439211fdbe788f5 + languageName: node + linkType: hard + "@js-joda/core@npm:^5.2.0": version: 5.4.2 resolution: "@js-joda/core@npm:5.4.2" @@ -7431,7 +7748,7 @@ __metadata: languageName: node linkType: hard -"@juggle/resize-observer@npm:^3.4.0": +"@juggle/resize-observer@npm:^3.3.1, @juggle/resize-observer@npm:^3.4.0": version: 3.4.0 resolution: "@juggle/resize-observer@npm:3.4.0" checksum: 2505028c05cc2e17639fcad06218b1c4b60f932a4ebb4b41ab546ef8c157031ae377e3f560903801f6d01706dbefd4943b6c4704bf19ed86dfa1c62f1473a570 @@ -7721,46 +8038,15 @@ __metadata: languageName: node linkType: hard -"@mdx-js/mdx@npm:^1.6.22": - version: 1.6.22 - resolution: "@mdx-js/mdx@npm:1.6.22" +"@mdx-js/react@npm:^2.1.5": + version: 2.3.0 + resolution: "@mdx-js/react@npm:2.3.0" dependencies: - "@babel/core": 7.12.9 - "@babel/plugin-syntax-jsx": 7.12.1 - "@babel/plugin-syntax-object-rest-spread": 7.8.3 - "@mdx-js/util": 1.6.22 - babel-plugin-apply-mdx-type-prop: 1.6.22 - babel-plugin-extract-import-names: 1.6.22 - camelcase-css: 2.0.1 - detab: 2.0.4 - hast-util-raw: 6.0.1 - lodash.uniq: 4.5.0 - mdast-util-to-hast: 10.0.1 - remark-footnotes: 2.0.0 - remark-mdx: 1.6.22 - remark-parse: 8.0.3 - remark-squeeze-paragraphs: 4.0.0 - style-to-object: 0.3.0 - unified: 9.2.0 - unist-builder: 2.0.3 - unist-util-visit: 2.0.3 - checksum: 0839b4a3899416326ea6578fe9e470af319da559bc6d3669c60942e456b49a98eebeb3358c623007b4786a2175a450d2c51cd59df64639013c5a3d22366931a6 - languageName: node - linkType: hard - -"@mdx-js/react@npm:^1.6.22": - version: 1.6.22 - resolution: "@mdx-js/react@npm:1.6.22" + "@types/mdx": ^2.0.0 + "@types/react": ">=16" peerDependencies: - react: ^16.13.1 || ^17.0.0 - checksum: bc84bd514bc127f898819a0c6f1a6915d9541011bd8aefa1fcc1c9bea8939f31051409e546bdec92babfa5b56092a16d05ef6d318304ac029299df5181dc94c8 - languageName: node - linkType: hard - -"@mdx-js/util@npm:1.6.22": - version: 1.6.22 - resolution: "@mdx-js/util@npm:1.6.22" - checksum: 4b393907e39a1a75214f0314bf72a0adfa5e5adffd050dd5efe9c055b8549481a3cfc9f308c16dfb33311daf3ff63added7d5fd1fe52db614c004f886e0e559a + react: ">=16" + checksum: f45fe779556e6cd9a787f711274480e0638b63c460f192ebdcd77cc07ffa61e23c98cb46dd46e577093e1cb4997a232a848d1fb0ba850ae204422cf603add524 languageName: node linkType: hard @@ -7771,16 +8057,6 @@ __metadata: languageName: node linkType: hard -"@mrmlnc/readdir-enhanced@npm:^2.2.1": - version: 2.2.1 - resolution: "@mrmlnc/readdir-enhanced@npm:2.2.1" - dependencies: - call-me-maybe: ^1.0.1 - glob-to-regexp: ^0.3.0 - checksum: d3b82b29368821154ce8e10bef5ccdbfd070d3e9601643c99ea4607e56f3daeaa4e755dd6d2355da20762c695c1b0570543d9f84b48f70c211ec09c4aaada2e1 - languageName: node - linkType: hard - "@mswjs/cookies@npm:^0.2.0": version: 0.2.1 resolution: "@mswjs/cookies@npm:0.2.1" @@ -7805,6 +8081,17 @@ __metadata: languageName: node linkType: hard +"@ndelangen/get-tarball@npm:^3.0.7": + version: 3.0.9 + resolution: "@ndelangen/get-tarball@npm:3.0.9" + dependencies: + gunzip-maybe: ^1.4.2 + pump: ^3.0.0 + tar-fs: ^2.1.1 + checksum: 7fa8ac40b4e85738a4ee6bf891bc27fce2445b65b4477e0ec86aed0fa62ab18bdf5d193ce04553ad9bfa639e1eef33b8b30da4ef3e7218f12bf95f24c8786e5b + languageName: node + linkType: hard + "@next-auth/prisma-adapter@npm:^1.0.4": version: 1.0.4 resolution: "@next-auth/prisma-adapter@npm:1.0.4" @@ -8022,13 +8309,6 @@ __metadata: languageName: node linkType: hard -"@nodelib/fs.stat@npm:^1.1.2": - version: 1.1.3 - resolution: "@nodelib/fs.stat@npm:1.1.3" - checksum: 318deab369b518a34778cdaa0054dd28a4381c0c78e40bbd20252f67d084b1d7bf9295fea4423de2c19ac8e1a34f120add9125f481b2a710f7068bcac7e3e305 - languageName: node - linkType: hard - "@nodelib/fs.walk@npm:^1.2.3, @nodelib/fs.walk@npm:^1.2.8": version: 1.2.8 resolution: "@nodelib/fs.walk@npm:1.2.8" @@ -8039,16 +8319,6 @@ __metadata: languageName: node linkType: hard -"@npmcli/fs@npm:^1.0.0": - version: 1.1.1 - resolution: "@npmcli/fs@npm:1.1.1" - dependencies: - "@gar/promisify": ^1.0.1 - semver: ^7.3.5 - checksum: f5ad92f157ed222e4e31c352333d0901df02c7c04311e42a81d8eb555d4ec4276ea9c635011757de20cc476755af33e91622838de573b17e52e2e7703f0a9965 - languageName: node - linkType: hard - "@npmcli/fs@npm:^2.1.0": version: 2.1.2 resolution: "@npmcli/fs@npm:2.1.2" @@ -8059,16 +8329,6 @@ __metadata: languageName: node linkType: hard -"@npmcli/move-file@npm:^1.0.1": - version: 1.1.2 - resolution: "@npmcli/move-file@npm:1.1.2" - dependencies: - mkdirp: ^1.0.4 - rimraf: ^3.0.2 - checksum: c96381d4a37448ea280951e46233f7e541058cf57a57d4094dd4bdcaae43fa5872b5f2eb6bfb004591a68e29c5877abe3cdc210cb3588cbf20ab2877f31a7de7 - languageName: node - linkType: hard - "@npmcli/move-file@npm:^2.0.0": version: 2.0.1 resolution: "@npmcli/move-file@npm:2.0.1" @@ -8432,24 +8692,24 @@ __metadata: languageName: node linkType: hard -"@pmmmwh/react-refresh-webpack-plugin@npm:^0.5.3": - version: 0.5.7 - resolution: "@pmmmwh/react-refresh-webpack-plugin@npm:0.5.7" +"@pmmmwh/react-refresh-webpack-plugin@npm:^0.5.11": + version: 0.5.11 + resolution: "@pmmmwh/react-refresh-webpack-plugin@npm:0.5.11" dependencies: ansi-html-community: ^0.0.8 common-path-prefix: ^3.0.0 - core-js-pure: ^3.8.1 + core-js-pure: ^3.23.3 error-stack-parser: ^2.0.6 find-up: ^5.0.0 html-entities: ^2.1.0 - loader-utils: ^2.0.0 + loader-utils: ^2.0.4 schema-utils: ^3.0.0 source-map: ^0.7.3 peerDependencies: "@types/webpack": 4.x || 5.x react-refresh: ">=0.10.0 <1.0.0" sockjs-client: ^1.4.0 - type-fest: ">=0.17.0 <3.0.0" + type-fest: ">=0.17.0 <5.0.0" webpack: ">=4.43.0 <6.0.0" webpack-dev-server: 3.x || 4.x webpack-hot-middleware: 2.x @@ -8467,7 +8727,7 @@ __metadata: optional: true webpack-plugin-serve: optional: true - checksum: 3490649181878cc8808fb91f3870ef095e5a1fb9647b3ac83740df07379c9d1cf540f24bf2b09d5f26a3a8c805b2c6b9c5be7192bdb9317d0ffffa67426e9f66 + checksum: a82eced9519f4dcac424acae719f819ab4150bfcf2874ac7daaf25a4f1c409e3d8b9d693fea0c686c24d520a5473756df32da90d8b89739670f8f8084c600bb4 languageName: node linkType: hard @@ -9734,6 +9994,66 @@ __metadata: languageName: node linkType: hard +"@radix-ui/react-select@npm:^1.2.2": + version: 1.2.2 + resolution: "@radix-ui/react-select@npm:1.2.2" + dependencies: + "@babel/runtime": ^7.13.10 + "@radix-ui/number": 1.0.1 + "@radix-ui/primitive": 1.0.1 + "@radix-ui/react-collection": 1.0.3 + "@radix-ui/react-compose-refs": 1.0.1 + "@radix-ui/react-context": 1.0.1 + "@radix-ui/react-direction": 1.0.1 + "@radix-ui/react-dismissable-layer": 1.0.4 + "@radix-ui/react-focus-guards": 1.0.1 + "@radix-ui/react-focus-scope": 1.0.3 + "@radix-ui/react-id": 1.0.1 + "@radix-ui/react-popper": 1.1.2 + "@radix-ui/react-portal": 1.0.3 + "@radix-ui/react-primitive": 1.0.3 + "@radix-ui/react-slot": 1.0.2 + "@radix-ui/react-use-callback-ref": 1.0.1 + "@radix-ui/react-use-controllable-state": 1.0.1 + "@radix-ui/react-use-layout-effect": 1.0.1 + "@radix-ui/react-use-previous": 1.0.1 + "@radix-ui/react-visually-hidden": 1.0.3 + aria-hidden: ^1.1.1 + react-remove-scroll: 2.5.5 + peerDependencies: + "@types/react": "*" + "@types/react-dom": "*" + react: ^16.8 || ^17.0 || ^18.0 + react-dom: ^16.8 || ^17.0 || ^18.0 + peerDependenciesMeta: + "@types/react": + optional: true + "@types/react-dom": + optional: true + checksum: af7b63cc9e2c6006ec08163392d244941e9e03534e7add1b7c5a86059d0eb8a0398d4f3e80d43ff22126874a02b985e44f1722d1de9218922f7aa653d09412e3 + languageName: node + linkType: hard + +"@radix-ui/react-separator@npm:1.0.3": + version: 1.0.3 + resolution: "@radix-ui/react-separator@npm:1.0.3" + dependencies: + "@babel/runtime": ^7.13.10 + "@radix-ui/react-primitive": 1.0.3 + peerDependencies: + "@types/react": "*" + "@types/react-dom": "*" + react: ^16.8 || ^17.0 || ^18.0 + react-dom: ^16.8 || ^17.0 || ^18.0 + peerDependenciesMeta: + "@types/react": + optional: true + "@types/react-dom": + optional: true + checksum: 42f8c95e404de2ce9387040d78049808a48d423cd4c3bad8cca92c4b0bcbdcb3566b5b52a920d4e939a74b51188697f20a012221f0e630fc7f56de64096c15d2 + languageName: node + linkType: hard + "@radix-ui/react-slider@npm:^1.0.0": version: 1.1.2 resolution: "@radix-ui/react-slider@npm:1.1.2" @@ -9857,7 +10177,7 @@ __metadata: languageName: node linkType: hard -"@radix-ui/react-toggle-group@npm:^1.0.0": +"@radix-ui/react-toggle-group@npm:1.0.4, @radix-ui/react-toggle-group@npm:^1.0.0": version: 1.0.4 resolution: "@radix-ui/react-toggle-group@npm:1.0.4" dependencies: @@ -9905,6 +10225,32 @@ __metadata: languageName: node linkType: hard +"@radix-ui/react-toolbar@npm:^1.0.4": + version: 1.0.4 + resolution: "@radix-ui/react-toolbar@npm:1.0.4" + dependencies: + "@babel/runtime": ^7.13.10 + "@radix-ui/primitive": 1.0.1 + "@radix-ui/react-context": 1.0.1 + "@radix-ui/react-direction": 1.0.1 + "@radix-ui/react-primitive": 1.0.3 + "@radix-ui/react-roving-focus": 1.0.4 + "@radix-ui/react-separator": 1.0.3 + "@radix-ui/react-toggle-group": 1.0.4 + peerDependencies: + "@types/react": "*" + "@types/react-dom": "*" + react: ^16.8 || ^17.0 || ^18.0 + react-dom: ^16.8 || ^17.0 || ^18.0 + peerDependenciesMeta: + "@types/react": + optional: true + "@types/react-dom": + optional: true + checksum: 7ebee1f8add6510108979433c5b38627e2de9d48ef2172ca15274b9edbbc106ff43bcd47ff733b03ed2215b92e7af364ff82c79e5a1728374847e2b1e315552c + languageName: node + linkType: hard + "@radix-ui/react-tooltip@npm:^1.0.0": version: 1.0.6 resolution: "@radix-ui/react-tooltip@npm:1.0.6" @@ -10378,16 +10724,6 @@ __metadata: languageName: node linkType: hard -"@rollup/pluginutils@npm:^4.2.1": - version: 4.2.1 - resolution: "@rollup/pluginutils@npm:4.2.1" - dependencies: - estree-walker: ^2.0.1 - picomatch: ^2.2.2 - checksum: 6bc41f22b1a0f1efec3043899e4d3b6b1497b3dea4d94292d8f83b4cf07a1073ecbaedd562a22d11913ff7659f459677b01b09e9598a98936e746780ecc93a12 - languageName: node - linkType: hard - "@rollup/pluginutils@npm:^5.0.1": version: 5.0.2 resolution: "@rollup/pluginutils@npm:5.0.2" @@ -10404,6 +10740,90 @@ __metadata: languageName: node linkType: hard +"@rollup/rollup-android-arm-eabi@npm:4.6.1": + version: 4.6.1 + resolution: "@rollup/rollup-android-arm-eabi@npm:4.6.1" + conditions: os=android & cpu=arm + languageName: node + linkType: hard + +"@rollup/rollup-android-arm64@npm:4.6.1": + version: 4.6.1 + resolution: "@rollup/rollup-android-arm64@npm:4.6.1" + conditions: os=android & cpu=arm64 + languageName: node + linkType: hard + +"@rollup/rollup-darwin-arm64@npm:4.6.1": + version: 4.6.1 + resolution: "@rollup/rollup-darwin-arm64@npm:4.6.1" + conditions: os=darwin & cpu=arm64 + languageName: node + linkType: hard + +"@rollup/rollup-darwin-x64@npm:4.6.1": + version: 4.6.1 + resolution: "@rollup/rollup-darwin-x64@npm:4.6.1" + conditions: os=darwin & cpu=x64 + languageName: node + linkType: hard + +"@rollup/rollup-linux-arm-gnueabihf@npm:4.6.1": + version: 4.6.1 + resolution: "@rollup/rollup-linux-arm-gnueabihf@npm:4.6.1" + conditions: os=linux & cpu=arm + languageName: node + linkType: hard + +"@rollup/rollup-linux-arm64-gnu@npm:4.6.1": + version: 4.6.1 + resolution: "@rollup/rollup-linux-arm64-gnu@npm:4.6.1" + conditions: os=linux & cpu=arm64 & libc=glibc + languageName: node + linkType: hard + +"@rollup/rollup-linux-arm64-musl@npm:4.6.1": + version: 4.6.1 + resolution: "@rollup/rollup-linux-arm64-musl@npm:4.6.1" + conditions: os=linux & cpu=arm64 & libc=musl + languageName: node + linkType: hard + +"@rollup/rollup-linux-x64-gnu@npm:4.6.1": + version: 4.6.1 + resolution: "@rollup/rollup-linux-x64-gnu@npm:4.6.1" + conditions: os=linux & cpu=x64 & libc=glibc + languageName: node + linkType: hard + +"@rollup/rollup-linux-x64-musl@npm:4.6.1": + version: 4.6.1 + resolution: "@rollup/rollup-linux-x64-musl@npm:4.6.1" + conditions: os=linux & cpu=x64 & libc=musl + languageName: node + linkType: hard + +"@rollup/rollup-win32-arm64-msvc@npm:4.6.1": + version: 4.6.1 + resolution: "@rollup/rollup-win32-arm64-msvc@npm:4.6.1" + conditions: os=win32 & cpu=arm64 + languageName: node + linkType: hard + +"@rollup/rollup-win32-ia32-msvc@npm:4.6.1": + version: 4.6.1 + resolution: "@rollup/rollup-win32-ia32-msvc@npm:4.6.1" + conditions: os=win32 & cpu=ia32 + languageName: node + linkType: hard + +"@rollup/rollup-win32-x64-msvc@npm:4.6.1": + version: 4.6.1 + resolution: "@rollup/rollup-win32-x64-msvc@npm:4.6.1" + conditions: os=win32 & cpu=x64 + languageName: node + linkType: hard + "@rushstack/eslint-patch@npm:^1.1.3": version: 1.1.3 resolution: "@rushstack/eslint-patch@npm:1.1.3" @@ -10711,7 +11131,7 @@ __metadata: languageName: node linkType: hard -"@sindresorhus/is@npm:^4.0.0, @sindresorhus/is@npm:^4.6.0": +"@sindresorhus/is@npm:^4.0.0": version: 4.6.0 resolution: "@sindresorhus/is@npm:4.6.0" checksum: 83839f13da2c29d55c97abc3bc2c55b250d33a0447554997a85c539e058e57b8da092da396e252b11ec24a0279a0bed1f537fa26302209327060643e327f81d2 @@ -10757,59 +11177,54 @@ __metadata: languageName: node linkType: hard -"@storybook/addon-actions@npm:6.5.13, @storybook/addon-actions@npm:^6.5.13": - version: 6.5.13 - resolution: "@storybook/addon-actions@npm:6.5.13" +"@storybook/addon-actions@npm:7.6.3, @storybook/addon-actions@npm:^7.6.3": + version: 7.6.3 + resolution: "@storybook/addon-actions@npm:7.6.3" dependencies: - "@storybook/addons": 6.5.13 - "@storybook/api": 6.5.13 - "@storybook/client-logger": 6.5.13 - "@storybook/components": 6.5.13 - "@storybook/core-events": 6.5.13 - "@storybook/csf": 0.0.2--canary.4566f4d.1 - "@storybook/theming": 6.5.13 - core-js: ^3.8.2 - fast-deep-equal: ^3.1.3 - global: ^4.4.0 - lodash: ^4.17.21 + "@storybook/core-events": 7.6.3 + "@storybook/global": ^5.0.0 + "@types/uuid": ^9.0.1 + dequal: ^2.0.2 polished: ^4.2.2 - prop-types: ^15.7.2 - react-inspector: ^5.1.0 - regenerator-runtime: ^0.13.7 - telejson: ^6.0.8 - ts-dedent: ^2.0.0 - util-deprecate: ^1.0.2 - uuid-browser: ^3.1.0 - peerDependencies: - react: ^16.8.0 || ^17.0.0 || ^18.0.0 - react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 - peerDependenciesMeta: - react: - optional: true - react-dom: - optional: true - checksum: 2679174b1467281860cd6f11fac5ba505e44629eb11ee90713d1c954569cfb54d80aa822a0ed1be2f92f11ca62889fec3dca96f61b89cf238503e0cea4b1db9a + uuid: ^9.0.0 + checksum: f9712937bc2ea22f0b8c04c60babe503cdda3844a9ddbbd7fcee44a3f227f7f77e433690bf17e495bd137a91460bf4a70f03edb06cd3f4de33c7fd27bffeba78 languageName: node linkType: hard -"@storybook/addon-backgrounds@npm:6.5.13": - version: 6.5.13 - resolution: "@storybook/addon-backgrounds@npm:6.5.13" +"@storybook/addon-backgrounds@npm:7.6.3": + version: 7.6.3 + resolution: "@storybook/addon-backgrounds@npm:7.6.3" dependencies: - "@storybook/addons": 6.5.13 - "@storybook/api": 6.5.13 - "@storybook/client-logger": 6.5.13 - "@storybook/components": 6.5.13 - "@storybook/core-events": 6.5.13 - "@storybook/csf": 0.0.2--canary.4566f4d.1 - "@storybook/theming": 6.5.13 - core-js: ^3.8.2 - global: ^4.4.0 + "@storybook/global": ^5.0.0 memoizerific: ^1.11.3 - regenerator-runtime: ^0.13.7 ts-dedent: ^2.0.0 - util-deprecate: ^1.0.2 + checksum: 800a78de9e3af6e1ea63496b7b20e3ccf26ce73968f01b84c631ea23a7441d2fde7295690612de460858fda7ef1604437105f6d6c6b5083851d128696b6757dc + languageName: node + linkType: hard + +"@storybook/addon-controls@npm:7.6.3": + version: 7.6.3 + resolution: "@storybook/addon-controls@npm:7.6.3" + dependencies: + "@storybook/blocks": 7.6.3 + lodash: ^4.17.21 + ts-dedent: ^2.0.0 + checksum: 7b234b048777107512bb96fc7636bfc064964b00dd3e8d7723e3d13dba608bb1674ada8824da06607cdd7cbe1a3f870bfe5e98bfc3b000f597b89e1c70370744 + languageName: node + linkType: hard + +"@storybook/addon-designs@npm:^7.0.7": + version: 7.0.7 + resolution: "@storybook/addon-designs@npm:7.0.7" + dependencies: + "@figspec/react": ^1.0.0 peerDependencies: + "@storybook/addon-docs": ^7.0.0 + "@storybook/addons": ^7.0.0 + "@storybook/components": ^7.0.0 + "@storybook/manager-api": ^7.0.0 + "@storybook/preview-api": ^7.0.0 + "@storybook/theming": ^7.0.0 react: ^16.8.0 || ^17.0.0 || ^18.0.0 react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 peerDependenciesMeta: @@ -10817,1591 +11232,841 @@ __metadata: optional: true react-dom: optional: true - checksum: 1b18255e0d8dceca56b8d6cf672506176eedad3809f11879d9754652538bf004f90637c0bf557de5e7bc24d5db5410da79e61f131493cb87b27340611cb31cf5 + checksum: 14b8c98588ab3f28ae5ee417ac2485c6892c39b7eb70c799059c5dc894f7766a6fe404d4b452af96244411142d2a00ebbf5cd269df2c1a5860a59f6622bd242c languageName: node linkType: hard -"@storybook/addon-controls@npm:6.5.13": - version: 6.5.13 - resolution: "@storybook/addon-controls@npm:6.5.13" +"@storybook/addon-docs@npm:7.6.3, @storybook/addon-docs@npm:^7.6.3": + version: 7.6.3 + resolution: "@storybook/addon-docs@npm:7.6.3" dependencies: - "@storybook/addons": 6.5.13 - "@storybook/api": 6.5.13 - "@storybook/client-logger": 6.5.13 - "@storybook/components": 6.5.13 - "@storybook/core-common": 6.5.13 - "@storybook/csf": 0.0.2--canary.4566f4d.1 - "@storybook/node-logger": 6.5.13 - "@storybook/store": 6.5.13 - "@storybook/theming": 6.5.13 - core-js: ^3.8.2 - lodash: ^4.17.21 - ts-dedent: ^2.0.0 - peerDependencies: - react: ^16.8.0 || ^17.0.0 || ^18.0.0 - react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 - peerDependenciesMeta: - react: - optional: true - react-dom: - optional: true - checksum: a4f86332686b5681366ad1f1eebb50cb9939ce3424ade64c0043b94827df15a34da0190101c8dc9a2b4b9af67fafd9d3fb50a5b98ff7a24fed6a37a2f8f37f27 - languageName: node - linkType: hard - -"@storybook/addon-docs@npm:6.5.13": - version: 6.5.13 - resolution: "@storybook/addon-docs@npm:6.5.13" - dependencies: - "@babel/plugin-transform-react-jsx": ^7.12.12 - "@babel/preset-env": ^7.12.11 - "@jest/transform": ^26.6.2 - "@mdx-js/react": ^1.6.22 - "@storybook/addons": 6.5.13 - "@storybook/api": 6.5.13 - "@storybook/components": 6.5.13 - "@storybook/core-common": 6.5.13 - "@storybook/core-events": 6.5.13 - "@storybook/csf": 0.0.2--canary.4566f4d.1 - "@storybook/docs-tools": 6.5.13 - "@storybook/mdx1-csf": ^0.0.1 - "@storybook/node-logger": 6.5.13 - "@storybook/postinstall": 6.5.13 - "@storybook/preview-web": 6.5.13 - "@storybook/source-loader": 6.5.13 - "@storybook/store": 6.5.13 - "@storybook/theming": 6.5.13 - babel-loader: ^8.0.0 - core-js: ^3.8.2 - fast-deep-equal: ^3.1.3 - global: ^4.4.0 - lodash: ^4.17.21 - regenerator-runtime: ^0.13.7 + "@jest/transform": ^29.3.1 + "@mdx-js/react": ^2.1.5 + "@storybook/blocks": 7.6.3 + "@storybook/client-logger": 7.6.3 + "@storybook/components": 7.6.3 + "@storybook/csf-plugin": 7.6.3 + "@storybook/csf-tools": 7.6.3 + "@storybook/global": ^5.0.0 + "@storybook/mdx2-csf": ^1.0.0 + "@storybook/node-logger": 7.6.3 + "@storybook/postinstall": 7.6.3 + "@storybook/preview-api": 7.6.3 + "@storybook/react-dom-shim": 7.6.3 + "@storybook/theming": 7.6.3 + "@storybook/types": 7.6.3 + fs-extra: ^11.1.0 remark-external-links: ^8.0.0 remark-slug: ^6.0.0 ts-dedent: ^2.0.0 - util-deprecate: ^1.0.2 peerDependencies: - "@storybook/mdx2-csf": ^0.0.3 react: ^16.8.0 || ^17.0.0 || ^18.0.0 react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 - peerDependenciesMeta: - "@storybook/mdx2-csf": - optional: true - react: - optional: true - react-dom: - optional: true - checksum: 41755593a28497172d18efa623d6dd3054d5fe867f2a4bf02be3875a0d22ca5cf10f5bf3946c4fa6b392f955952aaf8c90b4ae88d0622a1e236c7333b58902c3 + checksum: a80c37e1454793088487c32d2837032acc2258c18260a20c61f865fb2704fb4f4792fae0b83d7e95386a6b6b9841a9bc132f50d73aeb5b7d7f0d7c64effa8916 languageName: node linkType: hard -"@storybook/addon-essentials@npm:^6.5.13": - version: 6.5.13 - resolution: "@storybook/addon-essentials@npm:6.5.13" +"@storybook/addon-essentials@npm:^7.6.3": + version: 7.6.3 + resolution: "@storybook/addon-essentials@npm:7.6.3" dependencies: - "@storybook/addon-actions": 6.5.13 - "@storybook/addon-backgrounds": 6.5.13 - "@storybook/addon-controls": 6.5.13 - "@storybook/addon-docs": 6.5.13 - "@storybook/addon-measure": 6.5.13 - "@storybook/addon-outline": 6.5.13 - "@storybook/addon-toolbars": 6.5.13 - "@storybook/addon-viewport": 6.5.13 - "@storybook/addons": 6.5.13 - "@storybook/api": 6.5.13 - "@storybook/core-common": 6.5.13 - "@storybook/node-logger": 6.5.13 - core-js: ^3.8.2 - regenerator-runtime: ^0.13.7 + "@storybook/addon-actions": 7.6.3 + "@storybook/addon-backgrounds": 7.6.3 + "@storybook/addon-controls": 7.6.3 + "@storybook/addon-docs": 7.6.3 + "@storybook/addon-highlight": 7.6.3 + "@storybook/addon-measure": 7.6.3 + "@storybook/addon-outline": 7.6.3 + "@storybook/addon-toolbars": 7.6.3 + "@storybook/addon-viewport": 7.6.3 + "@storybook/core-common": 7.6.3 + "@storybook/manager-api": 7.6.3 + "@storybook/node-logger": 7.6.3 + "@storybook/preview-api": 7.6.3 ts-dedent: ^2.0.0 peerDependencies: - "@babel/core": ^7.9.6 - peerDependenciesMeta: - "@storybook/angular": - optional: true - "@storybook/builder-manager4": - optional: true - "@storybook/builder-manager5": - optional: true - "@storybook/builder-webpack4": - optional: true - "@storybook/builder-webpack5": - optional: true - "@storybook/html": - optional: true - "@storybook/vue": - optional: true - "@storybook/vue3": - optional: true - "@storybook/web-components": - optional: true - lit: - optional: true - lit-html: - optional: true - react: - optional: true - react-dom: - optional: true - svelte: - optional: true - sveltedoc-parser: - optional: true - vue: - optional: true - webpack: - optional: true - checksum: a7b1b34c7fbf0d863cf8dab3160cc267516cbcbeb155c4f91aab2c1d6005b23d5662a9104be0d733476ba4a0c8328ea899ae46bf55a9bddda5ce41996737b358 + react: ^16.8.0 || ^17.0.0 || ^18.0.0 + react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 + checksum: ba67659f6560a234b1a85092cc5a62e06761f7d711148a0a19586ca1d160327f24244f35a165bb77d5a06ea6c4bf1d9e17a388dacc767facacfccfb339ebc0ff languageName: node linkType: hard -"@storybook/addon-interactions@npm:^6.5.13": - version: 6.5.13 - resolution: "@storybook/addon-interactions@npm:6.5.13" +"@storybook/addon-highlight@npm:7.6.3": + version: 7.6.3 + resolution: "@storybook/addon-highlight@npm:7.6.3" dependencies: - "@devtools-ds/object-inspector": ^1.1.2 - "@storybook/addons": 6.5.13 - "@storybook/api": 6.5.13 - "@storybook/client-logger": 6.5.13 - "@storybook/components": 6.5.13 - "@storybook/core-common": 6.5.13 - "@storybook/core-events": 6.5.13 - "@storybook/csf": 0.0.2--canary.4566f4d.1 - "@storybook/instrumenter": 6.5.13 - "@storybook/theming": 6.5.13 - core-js: ^3.8.2 - global: ^4.4.0 + "@storybook/global": ^5.0.0 + checksum: 33c74bcc2277c8bca522a5e902db957d7bbeffdcf07d3d73490bce214cfb13ebdf6e4caab937b36e834c0425a06cb8574520c8f25fa862614ba5c5acf6cf65ea + languageName: node + linkType: hard + +"@storybook/addon-interactions@npm:^7.6.3": + version: 7.6.3 + resolution: "@storybook/addon-interactions@npm:7.6.3" + dependencies: + "@storybook/global": ^5.0.0 + "@storybook/types": 7.6.3 jest-mock: ^27.0.6 polished: ^4.2.2 ts-dedent: ^2.2.0 - peerDependencies: - react: ^16.8.0 || ^17.0.0 || ^18.0.0 - react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 - peerDependenciesMeta: - react: - optional: true - react-dom: - optional: true - checksum: 5c940dc55b3bde6432f392f456785028c73c2dd893271b8efcf2ad2b30d10432666eec1c728b95bf94a81a967ac5860da2072dea013062e0eb86d6c783455dd3 + checksum: 383ee42788c605373b6938a0816caac802d8d38826bb8d0a9349ce57142e0dbacec4d4a49aedfa1fcba37f2249612e75e57fc89b5bd05954a195dbcab0a50663 languageName: node linkType: hard -"@storybook/addon-links@npm:^6.5.13": - version: 6.5.13 - resolution: "@storybook/addon-links@npm:6.5.13" +"@storybook/addon-links@npm:^7.6.3": + version: 7.6.3 + resolution: "@storybook/addon-links@npm:7.6.3" dependencies: - "@storybook/addons": 6.5.13 - "@storybook/client-logger": 6.5.13 - "@storybook/core-events": 6.5.13 - "@storybook/csf": 0.0.2--canary.4566f4d.1 - "@storybook/router": 6.5.13 - "@types/qs": ^6.9.5 - core-js: ^3.8.2 - global: ^4.4.0 - prop-types: ^15.7.2 - qs: ^6.10.0 - regenerator-runtime: ^0.13.7 + "@storybook/csf": ^0.1.2 + "@storybook/global": ^5.0.0 ts-dedent: ^2.0.0 peerDependencies: react: ^16.8.0 || ^17.0.0 || ^18.0.0 - react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 peerDependenciesMeta: react: optional: true - react-dom: - optional: true - checksum: 0bbe14652320c77dbcbcd0a6f45e4776de35475cca43b9825c36424e6ccc250fac4a172cdf01304debdc3c93d74ad2ea3bafb8a752e9a52a5e860f5bb9a397c2 + checksum: 52f706e6025dc970bfd51c0fb5e5bfa2d35c69736860161c5bd84ecac2ce9466a968d1706a3176df1bc593a3d6c480aba6853628d4c32e8793f7977edd48f44d languageName: node linkType: hard -"@storybook/addon-measure@npm:6.5.13": - version: 6.5.13 - resolution: "@storybook/addon-measure@npm:6.5.13" +"@storybook/addon-measure@npm:7.6.3": + version: 7.6.3 + resolution: "@storybook/addon-measure@npm:7.6.3" dependencies: - "@storybook/addons": 6.5.13 - "@storybook/api": 6.5.13 - "@storybook/client-logger": 6.5.13 - "@storybook/components": 6.5.13 - "@storybook/core-events": 6.5.13 - "@storybook/csf": 0.0.2--canary.4566f4d.1 - core-js: ^3.8.2 - global: ^4.4.0 - peerDependencies: - react: ^16.8.0 || ^17.0.0 || ^18.0.0 - react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 - peerDependenciesMeta: - react: - optional: true - react-dom: - optional: true - checksum: 4bf1823f83a51e773cb941329bd1e637fba7d84c238a2af442eba4ab9950bda2d199bfa18194c62d7e25891166d8c89bf130303fc6c94d5aafa2eb0aaaeafa27 + "@storybook/global": ^5.0.0 + tiny-invariant: ^1.3.1 + checksum: 222ca83d76b49840754cdcc7f3a111d5f6f1ac1050e6b77319f41c66495e9344f0d8e8035a0d68093214dd7376a23c8abd2cdfa83a876e2c7b999e5d2b0fd695 languageName: node linkType: hard -"@storybook/addon-outline@npm:6.5.13": - version: 6.5.13 - resolution: "@storybook/addon-outline@npm:6.5.13" +"@storybook/addon-outline@npm:7.6.3": + version: 7.6.3 + resolution: "@storybook/addon-outline@npm:7.6.3" dependencies: - "@storybook/addons": 6.5.13 - "@storybook/api": 6.5.13 - "@storybook/client-logger": 6.5.13 - "@storybook/components": 6.5.13 - "@storybook/core-events": 6.5.13 - "@storybook/csf": 0.0.2--canary.4566f4d.1 - core-js: ^3.8.2 - global: ^4.4.0 - regenerator-runtime: ^0.13.7 + "@storybook/global": ^5.0.0 ts-dedent: ^2.0.0 - peerDependencies: - react: ^16.8.0 || ^17.0.0 || ^18.0.0 - react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 - peerDependenciesMeta: - react: - optional: true - react-dom: - optional: true - checksum: f9ea9278ba7dd118b9db2dc8b695d661d2d289d4e52f5af02ba0e30f13245043f0c565a71925d8111694a3a02e6b8b459fbd42786fe794895cdb5c8345adf5f5 + checksum: 29a14e5d0675e94aae59d4ee6a98862557d3164567188bf03563eeb7127f6d09b2fafb1d9613cb608953fcfdceb12e349de849690cbb11a8cf9d2e110e452618 languageName: node linkType: hard -"@storybook/addon-toolbars@npm:6.5.13": - version: 6.5.13 - resolution: "@storybook/addon-toolbars@npm:6.5.13" - dependencies: - "@storybook/addons": 6.5.13 - "@storybook/api": 6.5.13 - "@storybook/client-logger": 6.5.13 - "@storybook/components": 6.5.13 - "@storybook/theming": 6.5.13 - core-js: ^3.8.2 - regenerator-runtime: ^0.13.7 - peerDependencies: - react: ^16.8.0 || ^17.0.0 || ^18.0.0 - react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 - peerDependenciesMeta: - react: - optional: true - react-dom: - optional: true - checksum: ec85023ffda5bdefe96cf6d6954c86fba67be190bb31cf3bb777d0a2493d606c78bed84d4bb19611d4114a35ba94f1efcc8331bc6032e0f9376a6fb797dc3ec2 +"@storybook/addon-toolbars@npm:7.6.3": + version: 7.6.3 + resolution: "@storybook/addon-toolbars@npm:7.6.3" + checksum: dc54de28c8c3e5912ec4ff1125e8f83bce0b4e62a6eaac4e97a984ac0b29b849ccb1d72ad4611cb19fc3fa620091550dcbc13152254cdb44d0c70d083c3444a1 languageName: node linkType: hard -"@storybook/addon-viewport@npm:6.5.13": - version: 6.5.13 - resolution: "@storybook/addon-viewport@npm:6.5.13" +"@storybook/addon-viewport@npm:7.6.3": + version: 7.6.3 + resolution: "@storybook/addon-viewport@npm:7.6.3" dependencies: - "@storybook/addons": 6.5.13 - "@storybook/api": 6.5.13 - "@storybook/client-logger": 6.5.13 - "@storybook/components": 6.5.13 - "@storybook/core-events": 6.5.13 - "@storybook/theming": 6.5.13 - core-js: ^3.8.2 - global: ^4.4.0 memoizerific: ^1.11.3 - prop-types: ^15.7.2 - regenerator-runtime: ^0.13.7 - peerDependencies: - react: ^16.8.0 || ^17.0.0 || ^18.0.0 - react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 - peerDependenciesMeta: - react: - optional: true - react-dom: - optional: true - checksum: ff602c8080c26a8513f76b9ba2cb2e287e31df598a5235aee8fa8c0337bb7e8e7d65620d03f2aa452801653c41d35ddf9dbfdb6a26d4f2b4d0cc7cff7b580915 + checksum: b75e5c8f5cbeccc193354794c0abe6e2d269cf0f1a6252f1ef88de13796487dbf740479c7b08e52247f19b2163f357054b01e0d5c4c58624184372c1ba4a3da5 languageName: node linkType: hard -"@storybook/addons@npm:6.5.10": - version: 6.5.10 - resolution: "@storybook/addons@npm:6.5.10" +"@storybook/blocks@npm:7.6.3, @storybook/blocks@npm:^7.6.3": + version: 7.6.3 + resolution: "@storybook/blocks@npm:7.6.3" dependencies: - "@storybook/api": 6.5.10 - "@storybook/channels": 6.5.10 - "@storybook/client-logger": 6.5.10 - "@storybook/core-events": 6.5.10 - "@storybook/csf": 0.0.2--canary.4566f4d.1 - "@storybook/router": 6.5.10 - "@storybook/theming": 6.5.10 - "@types/webpack-env": ^1.16.0 - core-js: ^3.8.2 - global: ^4.4.0 - regenerator-runtime: ^0.13.7 - peerDependencies: - react: ^16.8.0 || ^17.0.0 || ^18.0.0 - react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 - checksum: 9143908c77ab77064a5da3de1fcfb218e5f0e561f4b8a083e59b4104e442567c87fb571a752bb11c469317fc3bbcb9c2e42ebd9a5a41f825b3fd67a920d90621 - languageName: node - linkType: hard - -"@storybook/addons@npm:6.5.13": - version: 6.5.13 - resolution: "@storybook/addons@npm:6.5.13" - dependencies: - "@storybook/api": 6.5.13 - "@storybook/channels": 6.5.13 - "@storybook/client-logger": 6.5.13 - "@storybook/core-events": 6.5.13 - "@storybook/csf": 0.0.2--canary.4566f4d.1 - "@storybook/router": 6.5.13 - "@storybook/theming": 6.5.13 - "@types/webpack-env": ^1.16.0 - core-js: ^3.8.2 - global: ^4.4.0 - regenerator-runtime: ^0.13.7 - peerDependencies: - react: ^16.8.0 || ^17.0.0 || ^18.0.0 - react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 - checksum: 28589da00e8a26b44d4ed8a1938fe934187a85b187e2a0dcd3e6d114460ed5a07fbfe0a89a4d899739767b379015cbabadd47c5c266457922a8c4255e3d769a4 - languageName: node - linkType: hard - -"@storybook/addons@npm:^6.4.10": - version: 6.5.9 - resolution: "@storybook/addons@npm:6.5.9" - dependencies: - "@storybook/api": 6.5.9 - "@storybook/channels": 6.5.9 - "@storybook/client-logger": 6.5.9 - "@storybook/core-events": 6.5.9 - "@storybook/csf": 0.0.2--canary.4566f4d.1 - "@storybook/router": 6.5.9 - "@storybook/theming": 6.5.9 - "@types/webpack-env": ^1.16.0 - core-js: ^3.8.2 - global: ^4.4.0 - regenerator-runtime: ^0.13.7 - peerDependencies: - react: ^16.8.0 || ^17.0.0 || ^18.0.0 - react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 - checksum: 50e0579df27aa7d405e25c0f057e4cd2d37c091ee4b88ab7969238255738ab5eb7f8c5af3100eaeaea74f916288ed862291f517b8a05e30578d7d1fd254d9f8c - languageName: node - linkType: hard - -"@storybook/api@npm:6.5.10": - version: 6.5.10 - resolution: "@storybook/api@npm:6.5.10" - dependencies: - "@storybook/channels": 6.5.10 - "@storybook/client-logger": 6.5.10 - "@storybook/core-events": 6.5.10 - "@storybook/csf": 0.0.2--canary.4566f4d.1 - "@storybook/router": 6.5.10 - "@storybook/semver": ^7.3.2 - "@storybook/theming": 6.5.10 - core-js: ^3.8.2 - fast-deep-equal: ^3.1.3 - global: ^4.4.0 + "@storybook/channels": 7.6.3 + "@storybook/client-logger": 7.6.3 + "@storybook/components": 7.6.3 + "@storybook/core-events": 7.6.3 + "@storybook/csf": ^0.1.2 + "@storybook/docs-tools": 7.6.3 + "@storybook/global": ^5.0.0 + "@storybook/manager-api": 7.6.3 + "@storybook/preview-api": 7.6.3 + "@storybook/theming": 7.6.3 + "@storybook/types": 7.6.3 + "@types/lodash": ^4.14.167 + color-convert: ^2.0.1 + dequal: ^2.0.2 lodash: ^4.17.21 + markdown-to-jsx: ^7.1.8 memoizerific: ^1.11.3 - regenerator-runtime: ^0.13.7 - store2: ^2.12.0 - telejson: ^6.0.8 + polished: ^4.2.2 + react-colorful: ^5.1.2 + telejson: ^7.2.0 + tocbot: ^4.20.1 ts-dedent: ^2.0.0 util-deprecate: ^1.0.2 peerDependencies: react: ^16.8.0 || ^17.0.0 || ^18.0.0 react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 - checksum: 49e01f35fa6de776329407533c0449aac84bbc9404bf717b1cebff5dc8961618956d7ba0003361c4e6cdc24e898619f778fea15db5a30eb320fc73a4b53adb40 + checksum: f9ffa35975b79250f04eef1f8150e862d289f2e721d4f71c32897d925a0062c501c3723faf83902377e7f2e11bc4bd6e8e118be393820676c8817fcaf0c25d45 languageName: node linkType: hard -"@storybook/api@npm:6.5.13": - version: 6.5.13 - resolution: "@storybook/api@npm:6.5.13" +"@storybook/builder-manager@npm:7.6.3": + version: 7.6.3 + resolution: "@storybook/builder-manager@npm:7.6.3" dependencies: - "@storybook/channels": 6.5.13 - "@storybook/client-logger": 6.5.13 - "@storybook/core-events": 6.5.13 - "@storybook/csf": 0.0.2--canary.4566f4d.1 - "@storybook/router": 6.5.13 - "@storybook/semver": ^7.3.2 - "@storybook/theming": 6.5.13 - core-js: ^3.8.2 - fast-deep-equal: ^3.1.3 - global: ^4.4.0 - lodash: ^4.17.21 - memoizerific: ^1.11.3 - regenerator-runtime: ^0.13.7 - store2: ^2.12.0 - telejson: ^6.0.8 - ts-dedent: ^2.0.0 - util-deprecate: ^1.0.2 - peerDependencies: - react: ^16.8.0 || ^17.0.0 || ^18.0.0 - react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 - checksum: dd7c8db0cdea2a47ab835c02217f10f99c54bfbf6d826deadf0b160ece4c94b1cb2558cfbaff4e4244c5c776095028a164762bd8de19fcfe10ae318fe0a3fbb4 - languageName: node - linkType: hard - -"@storybook/api@npm:6.5.9": - version: 6.5.9 - resolution: "@storybook/api@npm:6.5.9" - dependencies: - "@storybook/channels": 6.5.9 - "@storybook/client-logger": 6.5.9 - "@storybook/core-events": 6.5.9 - "@storybook/csf": 0.0.2--canary.4566f4d.1 - "@storybook/router": 6.5.9 - "@storybook/semver": ^7.3.2 - "@storybook/theming": 6.5.9 - core-js: ^3.8.2 - fast-deep-equal: ^3.1.3 - global: ^4.4.0 - lodash: ^4.17.21 - memoizerific: ^1.11.3 - regenerator-runtime: ^0.13.7 - store2: ^2.12.0 - telejson: ^6.0.8 - ts-dedent: ^2.0.0 - util-deprecate: ^1.0.2 - peerDependencies: - react: ^16.8.0 || ^17.0.0 || ^18.0.0 - react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 - checksum: 72d720eba7a5f6645c92a18884e267b57d4ba145d9aafd891f3a9c7651e8ea1418ada7cf7f6d5d963db100526103d5fceac8fb0a82e8099478b02dc8f33a1fd7 - languageName: node - linkType: hard - -"@storybook/builder-vite@npm:^0.2.4": - version: 0.2.4 - resolution: "@storybook/builder-vite@npm:0.2.4" - dependencies: - "@joshwooding/vite-plugin-react-docgen-typescript": 0.0.5 - "@storybook/core-common": ^6.4.3 - "@storybook/mdx1-csf": ^0.0.4 - "@storybook/node-logger": ^6.4.3 - "@storybook/semver": ^7.3.2 - "@storybook/source-loader": ^6.4.3 - "@vitejs/plugin-react": ^2.0.0 - ast-types: ^0.14.2 - es-module-lexer: ^0.9.3 - glob: ^7.2.0 - glob-promise: ^4.2.0 - magic-string: ^0.26.1 - react-docgen: ^6.0.0-alpha.0 - slash: ^3.0.0 - sveltedoc-parser: ^4.2.1 - peerDependencies: - "@storybook/mdx2-csf": ^0.0.3 - "@sveltejs/vite-plugin-svelte": ^1.0.0 - "@vitejs/plugin-vue": ^3.0.0 - vite: ">= 3.0.0" - vue-docgen-api: ^4.40.0 - peerDependenciesMeta: - "@storybook/mdx2-csf": - optional: true - "@sveltejs/vite-plugin-svelte": - optional: true - "@vitejs/plugin-vue": - optional: true - vue-docgen-api: - optional: true - checksum: 23edba92697dcccfee2590e35e680b6cce50ba733e4b58ef29c555868de14e30bbf870a0defd66050838f6e2929b3daf03d4f9e6091988ead7ea075fab634778 - languageName: node - linkType: hard - -"@storybook/builder-webpack4@npm:6.5.13": - version: 6.5.13 - resolution: "@storybook/builder-webpack4@npm:6.5.13" - dependencies: - "@babel/core": ^7.12.10 - "@storybook/addons": 6.5.13 - "@storybook/api": 6.5.13 - "@storybook/channel-postmessage": 6.5.13 - "@storybook/channels": 6.5.13 - "@storybook/client-api": 6.5.13 - "@storybook/client-logger": 6.5.13 - "@storybook/components": 6.5.13 - "@storybook/core-common": 6.5.13 - "@storybook/core-events": 6.5.13 - "@storybook/node-logger": 6.5.13 - "@storybook/preview-web": 6.5.13 - "@storybook/router": 6.5.13 - "@storybook/semver": ^7.3.2 - "@storybook/store": 6.5.13 - "@storybook/theming": 6.5.13 - "@storybook/ui": 6.5.13 - "@types/node": ^14.0.10 || ^16.0.0 - "@types/webpack": ^4.41.26 - autoprefixer: ^9.8.6 - babel-loader: ^8.0.0 - case-sensitive-paths-webpack-plugin: ^2.3.0 - core-js: ^3.8.2 - css-loader: ^3.6.0 - file-loader: ^6.2.0 - find-up: ^5.0.0 - fork-ts-checker-webpack-plugin: ^4.1.6 - glob: ^7.1.6 - glob-promise: ^3.4.0 - global: ^4.4.0 - html-webpack-plugin: ^4.0.0 - pnp-webpack-plugin: 1.6.4 - postcss: ^7.0.36 - postcss-flexbugs-fixes: ^4.2.1 - postcss-loader: ^4.2.0 - raw-loader: ^4.0.2 - stable: ^0.1.8 - style-loader: ^1.3.0 - terser-webpack-plugin: ^4.2.3 - ts-dedent: ^2.0.0 - url-loader: ^4.1.1 - util-deprecate: ^1.0.2 - webpack: 4 - webpack-dev-middleware: ^3.7.3 - webpack-filter-warnings-plugin: ^1.2.1 - webpack-hot-middleware: ^2.25.1 - webpack-virtual-modules: ^0.2.2 - peerDependencies: - react: ^16.8.0 || ^17.0.0 || ^18.0.0 - react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 - peerDependenciesMeta: - typescript: - optional: true - checksum: a95fea3951479d7724155a2ddbf2b04a8bfc0e7fddbf8415caed508b94ad71f7dc8d5d25464061ef26f3b4670f49f6ed40198b48b3f646d7af17d8daee5e89cb - languageName: node - linkType: hard - -"@storybook/builder-webpack5@npm:^6.5.13": - version: 6.5.13 - resolution: "@storybook/builder-webpack5@npm:6.5.13" - dependencies: - "@babel/core": ^7.12.10 - "@storybook/addons": 6.5.13 - "@storybook/api": 6.5.13 - "@storybook/channel-postmessage": 6.5.13 - "@storybook/channels": 6.5.13 - "@storybook/client-api": 6.5.13 - "@storybook/client-logger": 6.5.13 - "@storybook/components": 6.5.13 - "@storybook/core-common": 6.5.13 - "@storybook/core-events": 6.5.13 - "@storybook/node-logger": 6.5.13 - "@storybook/preview-web": 6.5.13 - "@storybook/router": 6.5.13 - "@storybook/semver": ^7.3.2 - "@storybook/store": 6.5.13 - "@storybook/theming": 6.5.13 - "@types/node": ^14.0.10 || ^16.0.0 - babel-loader: ^8.0.0 - babel-plugin-named-exports-order: ^0.0.2 + "@fal-works/esbuild-plugin-global-externals": ^2.1.2 + "@storybook/core-common": 7.6.3 + "@storybook/manager": 7.6.3 + "@storybook/node-logger": 7.6.3 + "@types/ejs": ^3.1.1 + "@types/find-cache-dir": ^3.2.1 + "@yarnpkg/esbuild-plugin-pnp": ^3.0.0-rc.10 browser-assert: ^1.2.1 - case-sensitive-paths-webpack-plugin: ^2.3.0 - core-js: ^3.8.2 - css-loader: ^5.0.1 - fork-ts-checker-webpack-plugin: ^6.0.4 - glob: ^7.1.6 - glob-promise: ^3.4.0 - html-webpack-plugin: ^5.0.0 + ejs: ^3.1.8 + esbuild: ^0.18.0 + esbuild-plugin-alias: ^0.2.1 + express: ^4.17.3 + find-cache-dir: ^3.0.0 + fs-extra: ^11.1.0 + process: ^0.11.10 + util: ^0.12.4 + checksum: ada9bcbf71956df90e17937f6c6a8a5a8182cdeaaa220ae4591223caf0510bbf5c826de25fd7e547f7d89c3b594a62020bb178ba2c18c7524575c5ed9268ccce + languageName: node + linkType: hard + +"@storybook/builder-webpack5@npm:7.6.3": + version: 7.6.3 + resolution: "@storybook/builder-webpack5@npm:7.6.3" + dependencies: + "@babel/core": ^7.23.2 + "@storybook/channels": 7.6.3 + "@storybook/client-logger": 7.6.3 + "@storybook/core-common": 7.6.3 + "@storybook/core-events": 7.6.3 + "@storybook/core-webpack": 7.6.3 + "@storybook/node-logger": 7.6.3 + "@storybook/preview": 7.6.3 + "@storybook/preview-api": 7.6.3 + "@swc/core": ^1.3.82 + "@types/node": ^18.0.0 + "@types/semver": ^7.3.4 + babel-loader: ^9.0.0 + browser-assert: ^1.2.1 + case-sensitive-paths-webpack-plugin: ^2.4.0 + constants-browserify: ^1.0.0 + css-loader: ^6.7.1 + es-module-lexer: ^1.4.1 + express: ^4.17.3 + fork-ts-checker-webpack-plugin: ^8.0.0 + fs-extra: ^11.1.0 + html-webpack-plugin: ^5.5.0 + magic-string: ^0.30.5 path-browserify: ^1.0.1 process: ^0.11.10 - stable: ^0.1.8 - style-loader: ^2.0.0 - terser-webpack-plugin: ^5.0.3 + semver: ^7.3.7 + style-loader: ^3.3.1 + swc-loader: ^0.2.3 + terser-webpack-plugin: ^5.3.1 ts-dedent: ^2.0.0 + url: ^0.11.0 + util: ^0.12.4 util-deprecate: ^1.0.2 - webpack: ^5.9.0 - webpack-dev-middleware: ^4.1.0 + webpack: 5 + webpack-dev-middleware: ^6.1.1 webpack-hot-middleware: ^2.25.1 - webpack-virtual-modules: ^0.4.1 - peerDependencies: - react: ^16.8.0 || ^17.0.0 || ^18.0.0 - react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 + webpack-virtual-modules: ^0.5.0 peerDependenciesMeta: typescript: optional: true - checksum: f980ab5c832bac9584f80eb0229934bb58ceb4cf24f756043acea4cb397f52f7af49c1fd53ac897aefb5ffc9c808bcb8a0c4867afd2c2a21b7ba2f0a56ae0089 + checksum: 508d5393ef56559c72ba5c83a94d15a911941c666e081c921d3ab7ba981c55c2d9768d0c258626c663abe2561901d846c618fe37b3a78192567e1ada51c7f4de languageName: node linkType: hard -"@storybook/channel-postmessage@npm:6.5.13": - version: 6.5.13 - resolution: "@storybook/channel-postmessage@npm:6.5.13" +"@storybook/channels@npm:7.6.3": + version: 7.6.3 + resolution: "@storybook/channels@npm:7.6.3" dependencies: - "@storybook/channels": 6.5.13 - "@storybook/client-logger": 6.5.13 - "@storybook/core-events": 6.5.13 - core-js: ^3.8.2 - global: ^4.4.0 + "@storybook/client-logger": 7.6.3 + "@storybook/core-events": 7.6.3 + "@storybook/global": ^5.0.0 qs: ^6.10.0 - telejson: ^6.0.8 - checksum: 8d6ccfff2aeafaae30b5fc1af856be8d06b3703b96841ecc0d70959e51542514901763e1a291e1d0278afe31b23cc5c0a5b351994f321e9bd03490be5b51e2d0 + telejson: ^7.2.0 + tiny-invariant: ^1.3.1 + checksum: 5ba5f69897363a63b0da2533cf6b2e742fa0dde2b7b70d60910f75ce6e56786a2642c4351a95062d71aa961ec1f2f999704952237f26aaf12053035257253aab languageName: node linkType: hard -"@storybook/channel-websocket@npm:6.5.13": - version: 6.5.13 - resolution: "@storybook/channel-websocket@npm:6.5.13" +"@storybook/cli@npm:7.6.3": + version: 7.6.3 + resolution: "@storybook/cli@npm:7.6.3" dependencies: - "@storybook/channels": 6.5.13 - "@storybook/client-logger": 6.5.13 - core-js: ^3.8.2 - global: ^4.4.0 - telejson: ^6.0.8 - checksum: 16e3b1a51a1af093f6c78ab7ca9c4c69ed05b45fd9bbdefb3050809e92064ccbf7a46f6800d21df2555e5d110d64735dd8d35155e54c3118fa7b4efe6b3b0457 - languageName: node - linkType: hard - -"@storybook/channels@npm:6.5.10": - version: 6.5.10 - resolution: "@storybook/channels@npm:6.5.10" - dependencies: - core-js: ^3.8.2 - ts-dedent: ^2.0.0 - util-deprecate: ^1.0.2 - checksum: 3837d2aff1575aa8d5af77162781b2824b909f18a7e7d3b961e6a14854b58011a56bd4f6c92bf065b8856fbcf7925a5849ffc56e42badac240701a560a26c627 - languageName: node - linkType: hard - -"@storybook/channels@npm:6.5.13": - version: 6.5.13 - resolution: "@storybook/channels@npm:6.5.13" - dependencies: - core-js: ^3.8.2 - ts-dedent: ^2.0.0 - util-deprecate: ^1.0.2 - checksum: 5b8881a2799a4c5ceafea40bc2c8bad1a31649036341eec8da5a77acf79a9d610afeaa5b4ed5d06022ed3c74cb9562dcfc5046d62fd8d27cd65bcba09aa5e903 - languageName: node - linkType: hard - -"@storybook/channels@npm:6.5.9": - version: 6.5.9 - resolution: "@storybook/channels@npm:6.5.9" - dependencies: - core-js: ^3.8.2 - ts-dedent: ^2.0.0 - util-deprecate: ^1.0.2 - checksum: b51767553a3e00f4da8e9684c798348c230d5553a43886ca560c7e2f249e15ab9e3d7bbeb947d394413505261806c79c629551f9d722f83f00e15d9e19b6617c - languageName: node - linkType: hard - -"@storybook/client-api@npm:6.5.13": - version: 6.5.13 - resolution: "@storybook/client-api@npm:6.5.13" - dependencies: - "@storybook/addons": 6.5.13 - "@storybook/channel-postmessage": 6.5.13 - "@storybook/channels": 6.5.13 - "@storybook/client-logger": 6.5.13 - "@storybook/core-events": 6.5.13 - "@storybook/csf": 0.0.2--canary.4566f4d.1 - "@storybook/store": 6.5.13 - "@types/qs": ^6.9.5 - "@types/webpack-env": ^1.16.0 - core-js: ^3.8.2 - fast-deep-equal: ^3.1.3 - global: ^4.4.0 - lodash: ^4.17.21 - memoizerific: ^1.11.3 - qs: ^6.10.0 - regenerator-runtime: ^0.13.7 - store2: ^2.12.0 - synchronous-promise: ^2.0.15 - ts-dedent: ^2.0.0 - util-deprecate: ^1.0.2 - peerDependencies: - react: ^16.8.0 || ^17.0.0 || ^18.0.0 - react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 - checksum: b0af25786b9144a55ebaa7754dd1b3701f5f8796770eaf59e7bc6d21ada12911fcbe4bf0da037d01bdda2c46138f265a948befe1f3de356fdc0ae3af80973388 - languageName: node - linkType: hard - -"@storybook/client-logger@npm:6.5.10": - version: 6.5.10 - resolution: "@storybook/client-logger@npm:6.5.10" - dependencies: - core-js: ^3.8.2 - global: ^4.4.0 - checksum: 6aa15e27e1f805b34332f647545eb53277c87492044073daf31ac6151b274cb7da6d2c8b3831484bb0c4c410f8adc1bb13322c3b80ee2f88e30856721c7d9ab1 - languageName: node - linkType: hard - -"@storybook/client-logger@npm:6.5.13, @storybook/client-logger@npm:^6.4.0": - version: 6.5.13 - resolution: "@storybook/client-logger@npm:6.5.13" - dependencies: - core-js: ^3.8.2 - global: ^4.4.0 - checksum: 0252d9364a0b2a8faae588fdb29aaf458f660904c330ec7af790f63a668710926ece8f087f58f9b1bebb052e2fe517b8b74867e7500567499cc710ab71ccbbab - languageName: node - linkType: hard - -"@storybook/client-logger@npm:6.5.9": - version: 6.5.9 - resolution: "@storybook/client-logger@npm:6.5.9" - dependencies: - core-js: ^3.8.2 - global: ^4.4.0 - checksum: 5b72d93a57fae8d188bb40db0a3af3ce9f3ccc58751e90d38e0786b58f26a5358d10339916455646a8d60e2cc749d761990927fdeb06e5f09e68d48fe50a5de7 - languageName: node - linkType: hard - -"@storybook/components@npm:6.5.13": - version: 6.5.13 - resolution: "@storybook/components@npm:6.5.13" - dependencies: - "@storybook/client-logger": 6.5.13 - "@storybook/csf": 0.0.2--canary.4566f4d.1 - "@storybook/theming": 6.5.13 - core-js: ^3.8.2 - memoizerific: ^1.11.3 - qs: ^6.10.0 - regenerator-runtime: ^0.13.7 - util-deprecate: ^1.0.2 - peerDependencies: - react: ^16.8.0 || ^17.0.0 || ^18.0.0 - react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 - checksum: 5d01c0f445f6574ccadcfa79afd99c078bd1f81d65e59186361100dc57bd73ccbb877e5a8bbc49dd6551bce1b32fbe6f135c2bea15c0126a83faf222cfaed878 - languageName: node - linkType: hard - -"@storybook/core-client@npm:6.5.13": - version: 6.5.13 - resolution: "@storybook/core-client@npm:6.5.13" - dependencies: - "@storybook/addons": 6.5.13 - "@storybook/channel-postmessage": 6.5.13 - "@storybook/channel-websocket": 6.5.13 - "@storybook/client-api": 6.5.13 - "@storybook/client-logger": 6.5.13 - "@storybook/core-events": 6.5.13 - "@storybook/csf": 0.0.2--canary.4566f4d.1 - "@storybook/preview-web": 6.5.13 - "@storybook/store": 6.5.13 - "@storybook/ui": 6.5.13 - airbnb-js-shims: ^2.2.1 - ansi-to-html: ^0.6.11 - core-js: ^3.8.2 - global: ^4.4.0 - lodash: ^4.17.21 - qs: ^6.10.0 - regenerator-runtime: ^0.13.7 - ts-dedent: ^2.0.0 - unfetch: ^4.2.0 - util-deprecate: ^1.0.2 - peerDependencies: - react: ^16.8.0 || ^17.0.0 || ^18.0.0 - react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 - webpack: "*" - peerDependenciesMeta: - typescript: - optional: true - checksum: c4350b1b579f0781a239fdede79f1d0975e297ecb61ba4096834d62bd553420615231dc9146c446d0178088e83863fd9dc720fbb4485b5779fac7d99ce3eeb9e - languageName: node - linkType: hard - -"@storybook/core-common@npm:6.5.13": - version: 6.5.13 - resolution: "@storybook/core-common@npm:6.5.13" - dependencies: - "@babel/core": ^7.12.10 - "@babel/plugin-proposal-class-properties": ^7.12.1 - "@babel/plugin-proposal-decorators": ^7.12.12 - "@babel/plugin-proposal-export-default-from": ^7.12.1 - "@babel/plugin-proposal-nullish-coalescing-operator": ^7.12.1 - "@babel/plugin-proposal-object-rest-spread": ^7.12.1 - "@babel/plugin-proposal-optional-chaining": ^7.12.7 - "@babel/plugin-proposal-private-methods": ^7.12.1 - "@babel/plugin-proposal-private-property-in-object": ^7.12.1 - "@babel/plugin-syntax-dynamic-import": ^7.8.3 - "@babel/plugin-transform-arrow-functions": ^7.12.1 - "@babel/plugin-transform-block-scoping": ^7.12.12 - "@babel/plugin-transform-classes": ^7.12.1 - "@babel/plugin-transform-destructuring": ^7.12.1 - "@babel/plugin-transform-for-of": ^7.12.1 - "@babel/plugin-transform-parameters": ^7.12.1 - "@babel/plugin-transform-shorthand-properties": ^7.12.1 - "@babel/plugin-transform-spread": ^7.12.1 - "@babel/preset-env": ^7.12.11 - "@babel/preset-react": ^7.12.10 - "@babel/preset-typescript": ^7.12.7 - "@babel/register": ^7.12.1 - "@storybook/node-logger": 6.5.13 - "@storybook/semver": ^7.3.2 - "@types/node": ^14.0.10 || ^16.0.0 - "@types/pretty-hrtime": ^1.0.0 - babel-loader: ^8.0.0 - babel-plugin-macros: ^3.0.1 - babel-plugin-polyfill-corejs3: ^0.1.0 + "@babel/core": ^7.23.2 + "@babel/preset-env": ^7.23.2 + "@babel/types": ^7.23.0 + "@ndelangen/get-tarball": ^3.0.7 + "@storybook/codemod": 7.6.3 + "@storybook/core-common": 7.6.3 + "@storybook/core-events": 7.6.3 + "@storybook/core-server": 7.6.3 + "@storybook/csf-tools": 7.6.3 + "@storybook/node-logger": 7.6.3 + "@storybook/telemetry": 7.6.3 + "@storybook/types": 7.6.3 + "@types/semver": ^7.3.4 + "@yarnpkg/fslib": 2.10.3 + "@yarnpkg/libzip": 2.3.0 chalk: ^4.1.0 - core-js: ^3.8.2 - express: ^4.17.1 - file-system-cache: ^1.0.5 + commander: ^6.2.1 + cross-spawn: ^7.0.3 + detect-indent: ^6.1.0 + envinfo: ^7.7.3 + execa: ^5.0.0 + express: ^4.17.3 find-up: ^5.0.0 - fork-ts-checker-webpack-plugin: ^6.0.4 - fs-extra: ^9.0.1 - glob: ^7.1.6 + fs-extra: ^11.1.0 + get-npm-tarball-url: ^2.0.3 + get-port: ^5.1.1 + giget: ^1.0.0 + globby: ^11.0.2 + jscodeshift: ^0.15.1 + leven: ^3.1.0 + ora: ^5.4.1 + prettier: ^2.8.0 + prompts: ^2.4.0 + puppeteer-core: ^2.1.1 + read-pkg-up: ^7.0.1 + semver: ^7.3.7 + simple-update-notifier: ^2.0.0 + strip-json-comments: ^3.0.1 + tempy: ^1.0.1 + ts-dedent: ^2.0.0 + util-deprecate: ^1.0.2 + bin: + getstorybook: ./bin/index.js + sb: ./bin/index.js + checksum: 2b95a22935ea78f1cd0e31f4b5d96dc4185c873e491518bf34cfb605f8bbdce45ba10352597334e7ecfd4bdbbd867840d42942abf20ceee62c6dc0cfceee9ded + languageName: node + linkType: hard + +"@storybook/client-logger@npm:7.6.3": + version: 7.6.3 + resolution: "@storybook/client-logger@npm:7.6.3" + dependencies: + "@storybook/global": ^5.0.0 + checksum: cafb2c3c6d639d341585526e52d917a5fbb147e07be5296a94e31ed85aa48d6a4f083a33fca3f2a08a81e7f2057459f516678804615be3cf0997eb3b0cf1ba5d + languageName: node + linkType: hard + +"@storybook/codemod@npm:7.6.3": + version: 7.6.3 + resolution: "@storybook/codemod@npm:7.6.3" + dependencies: + "@babel/core": ^7.23.2 + "@babel/preset-env": ^7.23.2 + "@babel/types": ^7.23.0 + "@storybook/csf": ^0.1.2 + "@storybook/csf-tools": 7.6.3 + "@storybook/node-logger": 7.6.3 + "@storybook/types": 7.6.3 + "@types/cross-spawn": ^6.0.2 + cross-spawn: ^7.0.3 + globby: ^11.0.2 + jscodeshift: ^0.15.1 + lodash: ^4.17.21 + prettier: ^2.8.0 + recast: ^0.23.1 + checksum: cb33a65b5162890b361b911ae0ac023df416615dc66eed76fb4a278c92dadcf7d715516d95ec784409d5b79c34265e5443472b29c1dc8743ca75ff5283158723 + languageName: node + linkType: hard + +"@storybook/components@npm:7.6.3": + version: 7.6.3 + resolution: "@storybook/components@npm:7.6.3" + dependencies: + "@radix-ui/react-select": ^1.2.2 + "@radix-ui/react-toolbar": ^1.0.4 + "@storybook/client-logger": 7.6.3 + "@storybook/csf": ^0.1.2 + "@storybook/global": ^5.0.0 + "@storybook/theming": 7.6.3 + "@storybook/types": 7.6.3 + memoizerific: ^1.11.3 + use-resize-observer: ^9.1.0 + util-deprecate: ^1.0.2 + peerDependencies: + react: ^16.8.0 || ^17.0.0 || ^18.0.0 + react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 + checksum: 8e79e0153592fa8530d02fca7a26d92a411990de4bd5732e80f9fb11ebdd9160a7ddb46cef8ad26b42af71ef6ac14c64744c61377a02bdeb1a00294008669d76 + languageName: node + linkType: hard + +"@storybook/core-client@npm:7.6.3": + version: 7.6.3 + resolution: "@storybook/core-client@npm:7.6.3" + dependencies: + "@storybook/client-logger": 7.6.3 + "@storybook/preview-api": 7.6.3 + checksum: 29e56be0119587fbb4c6ed0800128d710ef89c87bf8f93120a62e67482db9dcc1f793d56fcab27c5b5d1d2ab4f833c0aad995cc98e514d8b0767acd2c32742ad + languageName: node + linkType: hard + +"@storybook/core-common@npm:7.6.3": + version: 7.6.3 + resolution: "@storybook/core-common@npm:7.6.3" + dependencies: + "@storybook/core-events": 7.6.3 + "@storybook/node-logger": 7.6.3 + "@storybook/types": 7.6.3 + "@types/find-cache-dir": ^3.2.1 + "@types/node": ^18.0.0 + "@types/node-fetch": ^2.6.4 + "@types/pretty-hrtime": ^1.0.0 + chalk: ^4.1.0 + esbuild: ^0.18.0 + esbuild-register: ^3.5.0 + file-system-cache: 2.3.0 + find-cache-dir: ^3.0.0 + find-up: ^5.0.0 + fs-extra: ^11.1.0 + glob: ^10.0.0 handlebars: ^4.7.7 - interpret: ^2.2.0 - json5: ^2.1.3 - lazy-universal-dotenv: ^3.0.1 + lazy-universal-dotenv: ^4.0.0 + node-fetch: ^2.0.0 picomatch: ^2.3.0 pkg-dir: ^5.0.0 pretty-hrtime: ^1.0.3 resolve-from: ^5.0.0 - slash: ^3.0.0 - telejson: ^6.0.8 ts-dedent: ^2.0.0 - util-deprecate: ^1.0.2 - webpack: 4 - peerDependencies: - react: ^16.8.0 || ^17.0.0 || ^18.0.0 - react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 - peerDependenciesMeta: - typescript: - optional: true - checksum: 369fbe41e9ac657410a8e7fb4668be0e77c50b84c29b352397cc26b72d79397a7e84dcbf7a94f2d02d819d395a66e30a3915de40e85936d7b7dc50bb426aeabb + checksum: 89bd7b36d2e5c0f8bcd599353811942d52a490b7331c67464f408b4a2e91ecd95bc5d8201706ef53f352eaf5bae47a30ad5745c478b84daf407de792bf8788e9 languageName: node linkType: hard -"@storybook/core-common@npm:^6.4.3": - version: 6.5.10 - resolution: "@storybook/core-common@npm:6.5.10" +"@storybook/core-events@npm:7.6.3": + version: 7.6.3 + resolution: "@storybook/core-events@npm:7.6.3" dependencies: - "@babel/core": ^7.12.10 - "@babel/plugin-proposal-class-properties": ^7.12.1 - "@babel/plugin-proposal-decorators": ^7.12.12 - "@babel/plugin-proposal-export-default-from": ^7.12.1 - "@babel/plugin-proposal-nullish-coalescing-operator": ^7.12.1 - "@babel/plugin-proposal-object-rest-spread": ^7.12.1 - "@babel/plugin-proposal-optional-chaining": ^7.12.7 - "@babel/plugin-proposal-private-methods": ^7.12.1 - "@babel/plugin-proposal-private-property-in-object": ^7.12.1 - "@babel/plugin-syntax-dynamic-import": ^7.8.3 - "@babel/plugin-transform-arrow-functions": ^7.12.1 - "@babel/plugin-transform-block-scoping": ^7.12.12 - "@babel/plugin-transform-classes": ^7.12.1 - "@babel/plugin-transform-destructuring": ^7.12.1 - "@babel/plugin-transform-for-of": ^7.12.1 - "@babel/plugin-transform-parameters": ^7.12.1 - "@babel/plugin-transform-shorthand-properties": ^7.12.1 - "@babel/plugin-transform-spread": ^7.12.1 - "@babel/preset-env": ^7.12.11 - "@babel/preset-react": ^7.12.10 - "@babel/preset-typescript": ^7.12.7 - "@babel/register": ^7.12.1 - "@storybook/node-logger": 6.5.10 - "@storybook/semver": ^7.3.2 - "@types/node": ^14.0.10 || ^16.0.0 - "@types/pretty-hrtime": ^1.0.0 - babel-loader: ^8.0.0 - babel-plugin-macros: ^3.0.1 - babel-plugin-polyfill-corejs3: ^0.1.0 - chalk: ^4.1.0 - core-js: ^3.8.2 - express: ^4.17.1 - file-system-cache: ^1.0.5 - find-up: ^5.0.0 - fork-ts-checker-webpack-plugin: ^6.0.4 - fs-extra: ^9.0.1 - glob: ^7.1.6 - handlebars: ^4.7.7 - interpret: ^2.2.0 - json5: ^2.1.3 - lazy-universal-dotenv: ^3.0.1 - picomatch: ^2.3.0 - pkg-dir: ^5.0.0 - pretty-hrtime: ^1.0.3 - resolve-from: ^5.0.0 - slash: ^3.0.0 - telejson: ^6.0.8 ts-dedent: ^2.0.0 - util-deprecate: ^1.0.2 - webpack: 4 - peerDependencies: - react: ^16.8.0 || ^17.0.0 || ^18.0.0 - react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 - peerDependenciesMeta: - typescript: - optional: true - checksum: b3b95214a427c1ff34464c1638219fd34aa8a98b60541ec3e13d84b095be79773e5de64c958903da877e6ec52b88ff05dd9a8cd7ab0fde548ffa0db762a4ea4e + checksum: 32cc9e16809f30317671d0043aec6fb3bc78c7d942b056d35f9f6a5413896566a5c31f4aa634df85333c74c95f37bfd28e75f6130c74270e15af6f33a68ecb7e languageName: node linkType: hard -"@storybook/core-events@npm:6.5.10": - version: 6.5.10 - resolution: "@storybook/core-events@npm:6.5.10" - dependencies: - core-js: ^3.8.2 - checksum: 89139f3f34a4ea0f2bbc02ebaa2968664cdc17abd88cc2e0467a0dfb1c11577e85fa402e5804fe4d6a99edd696d365abf93d30c396fc177563478cdbb68bcb85 - languageName: node - linkType: hard - -"@storybook/core-events@npm:6.5.13": - version: 6.5.13 - resolution: "@storybook/core-events@npm:6.5.13" - dependencies: - core-js: ^3.8.2 - checksum: 2afeaf5fd658a4e9eedb9ad458ba0bcc73ad4ae5ba0e9971434818258db01d9b48b604d4db396ebfc1e1571dace3f6659e9ed61ac35428a792a4e24bbc08b29c - languageName: node - linkType: hard - -"@storybook/core-events@npm:6.5.9": - version: 6.5.9 - resolution: "@storybook/core-events@npm:6.5.9" - dependencies: - core-js: ^3.8.2 - checksum: b28af71de1e7f66a6fdf26c384c976640220ea1a6d807523ec368ecdc1b9dd3c87d5e1fcc5bd443d1059c408c17288afb415f8160e69ebb6cb2f3914a2db5f1d - languageName: node - linkType: hard - -"@storybook/core-server@npm:6.5.13": - version: 6.5.13 - resolution: "@storybook/core-server@npm:6.5.13" +"@storybook/core-server@npm:7.6.3": + version: 7.6.3 + resolution: "@storybook/core-server@npm:7.6.3" dependencies: + "@aw-web-design/x-default-browser": 1.4.126 "@discoveryjs/json-ext": ^0.5.3 - "@storybook/builder-webpack4": 6.5.13 - "@storybook/core-client": 6.5.13 - "@storybook/core-common": 6.5.13 - "@storybook/core-events": 6.5.13 - "@storybook/csf": 0.0.2--canary.4566f4d.1 - "@storybook/csf-tools": 6.5.13 - "@storybook/manager-webpack4": 6.5.13 - "@storybook/node-logger": 6.5.13 - "@storybook/semver": ^7.3.2 - "@storybook/store": 6.5.13 - "@storybook/telemetry": 6.5.13 - "@types/node": ^14.0.10 || ^16.0.0 - "@types/node-fetch": ^2.5.7 + "@storybook/builder-manager": 7.6.3 + "@storybook/channels": 7.6.3 + "@storybook/core-common": 7.6.3 + "@storybook/core-events": 7.6.3 + "@storybook/csf": ^0.1.2 + "@storybook/csf-tools": 7.6.3 + "@storybook/docs-mdx": ^0.1.0 + "@storybook/global": ^5.0.0 + "@storybook/manager": 7.6.3 + "@storybook/node-logger": 7.6.3 + "@storybook/preview-api": 7.6.3 + "@storybook/telemetry": 7.6.3 + "@storybook/types": 7.6.3 + "@types/detect-port": ^1.3.0 + "@types/node": ^18.0.0 "@types/pretty-hrtime": ^1.0.0 - "@types/webpack": ^4.41.26 - better-opn: ^2.1.1 - boxen: ^5.1.2 + "@types/semver": ^7.3.4 + better-opn: ^3.0.2 chalk: ^4.1.0 cli-table3: ^0.6.1 - commander: ^6.2.1 compression: ^1.7.4 - core-js: ^3.8.2 - cpy: ^8.1.2 detect-port: ^1.3.0 - express: ^4.17.1 - fs-extra: ^9.0.1 - global: ^4.4.0 + express: ^4.17.3 + fs-extra: ^11.1.0 globby: ^11.0.2 ip: ^2.0.0 lodash: ^4.17.21 - node-fetch: ^2.6.7 open: ^8.4.0 pretty-hrtime: ^1.0.3 prompts: ^2.4.0 - regenerator-runtime: ^0.13.7 - serve-favicon: ^2.5.0 - slash: ^3.0.0 - telejson: ^6.0.8 + read-pkg-up: ^7.0.1 + semver: ^7.3.7 + telejson: ^7.2.0 + tiny-invariant: ^1.3.1 ts-dedent: ^2.0.0 + util: ^0.12.4 util-deprecate: ^1.0.2 watchpack: ^2.2.0 - webpack: 4 ws: ^8.2.3 - x-default-browser: ^0.4.0 - peerDependencies: - react: ^16.8.0 || ^17.0.0 || ^18.0.0 - react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 - peerDependenciesMeta: - "@storybook/builder-webpack5": - optional: true - "@storybook/manager-webpack5": - optional: true - typescript: - optional: true - checksum: 142b13ef4fef21a68c8255f35f42ca5c3b9f636b51986f61dc6ae95485788d0f581552604b8a4a796e7cd2ad9548b87317ac9647ea44be58f64b91c440bb71ea + checksum: f72931d3945be4c1f9fb02bd3b7107a871585b1de8623ff95e68caca27037de0a95276fc945f594f26b29d15c4aa1c60da5b9fac7f64201c5fd03383ebdc3259 languageName: node linkType: hard -"@storybook/core@npm:6.5.13": - version: 6.5.13 - resolution: "@storybook/core@npm:6.5.13" +"@storybook/core-webpack@npm:7.6.3": + version: 7.6.3 + resolution: "@storybook/core-webpack@npm:7.6.3" dependencies: - "@storybook/core-client": 6.5.13 - "@storybook/core-server": 6.5.13 - peerDependencies: - react: ^16.8.0 || ^17.0.0 || ^18.0.0 - react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 - webpack: "*" - peerDependenciesMeta: - "@storybook/builder-webpack5": - optional: true - "@storybook/manager-webpack5": - optional: true - typescript: - optional: true - checksum: e0dbe5d8d52f2a12ab63db965d5d15ee671029a03b7204756954e2bc3253b560c8e430aaab5559ccbddcfd3e97d2bc1c0c58ed370aa593912724402aa86996b8 - languageName: node - linkType: hard - -"@storybook/csf-tools@npm:6.5.13": - version: 6.5.13 - resolution: "@storybook/csf-tools@npm:6.5.13" - dependencies: - "@babel/core": ^7.12.10 - "@babel/generator": ^7.12.11 - "@babel/parser": ^7.12.11 - "@babel/plugin-transform-react-jsx": ^7.12.12 - "@babel/preset-env": ^7.12.11 - "@babel/traverse": ^7.12.11 - "@babel/types": ^7.12.11 - "@storybook/csf": 0.0.2--canary.4566f4d.1 - "@storybook/mdx1-csf": ^0.0.1 - core-js: ^3.8.2 - fs-extra: ^9.0.1 - global: ^4.4.0 - regenerator-runtime: ^0.13.7 + "@storybook/core-common": 7.6.3 + "@storybook/node-logger": 7.6.3 + "@storybook/types": 7.6.3 + "@types/node": ^18.0.0 ts-dedent: ^2.0.0 - peerDependencies: - "@storybook/mdx2-csf": ^0.0.3 - peerDependenciesMeta: - "@storybook/mdx2-csf": - optional: true - checksum: 2b8a5bed04ea89084334742e1095c4565b0b7367b5126e3a9b6648224b59c2136a9d57cbb9067264fc3951e9db58df40b23b975170180d171cce35dfabf2a090 + checksum: a641f32a560a5b537142b4765afd55e8003784fc08a5d06a29022541d3732deaf90b32afe5f7c26a1e64bd2d238fea72238bb36fc41247d769019998e1a78718 languageName: node linkType: hard -"@storybook/csf@npm:0.0.2--canary.4566f4d.1": - version: 0.0.2--canary.4566f4d.1 - resolution: "@storybook/csf@npm:0.0.2--canary.4566f4d.1" +"@storybook/csf-plugin@npm:7.6.3": + version: 7.6.3 + resolution: "@storybook/csf-plugin@npm:7.6.3" dependencies: - lodash: ^4.17.15 - checksum: afac948e1eae72f020b3708538dd2553524f291bc129ecb2941983668fd62b17448e52f9c9be5b8edeea7a64d96f620bbac78b8acc10ece11b8279930a1deb03 + "@storybook/csf-tools": 7.6.3 + unplugin: ^1.3.1 + checksum: 6c396b323d9b19b1e5a65fb8bcbc90d270fce08db80b00b297568bc7d3ae1d68bfef8e0df2600e1f6d5acf3b2e3ac671aecdd7d2bfeebd7d98c368cfa3e597ce languageName: node linkType: hard -"@storybook/docs-tools@npm:6.5.13": - version: 6.5.13 - resolution: "@storybook/docs-tools@npm:6.5.13" +"@storybook/csf-tools@npm:7.6.3": + version: 7.6.3 + resolution: "@storybook/csf-tools@npm:7.6.3" dependencies: - "@babel/core": ^7.12.10 - "@storybook/csf": 0.0.2--canary.4566f4d.1 - "@storybook/store": 6.5.13 - core-js: ^3.8.2 + "@babel/generator": ^7.23.0 + "@babel/parser": ^7.23.0 + "@babel/traverse": ^7.23.2 + "@babel/types": ^7.23.0 + "@storybook/csf": ^0.1.2 + "@storybook/types": 7.6.3 + fs-extra: ^11.1.0 + recast: ^0.23.1 + ts-dedent: ^2.0.0 + checksum: ee6f8e7b579692d340fff8e2d6585520ebf22cea18d5bc09d8601b0699b18a3d11b89607701213e1985f5152e5de859120fb01337e779246a2b1b0c156cbfc67 + languageName: node + linkType: hard + +"@storybook/csf@npm:^0.1.2": + version: 0.1.2 + resolution: "@storybook/csf@npm:0.1.2" + dependencies: + type-fest: ^2.19.0 + checksum: 22038dfd5e46cd9565c3dec615918c0712eb5fc5f56e9ec89cfa75d7b48667b8fcbf7e9d1f46c9f4d440eee074f1d23a84dc56a937add37b28ddf890fdedfb8a + languageName: node + linkType: hard + +"@storybook/docs-mdx@npm:^0.1.0": + version: 0.1.0 + resolution: "@storybook/docs-mdx@npm:0.1.0" + checksum: a7770842c3947a761bcbe776a9c4fd35163d30c3274fca034169f69ff614242eaa4cacaa2c95fd215827081ef9a43f4774d521a6f43a4d063ea5f4ea14b1d69a + languageName: node + linkType: hard + +"@storybook/docs-tools@npm:7.6.3": + version: 7.6.3 + resolution: "@storybook/docs-tools@npm:7.6.3" + dependencies: + "@storybook/core-common": 7.6.3 + "@storybook/preview-api": 7.6.3 + "@storybook/types": 7.6.3 + "@types/doctrine": ^0.0.3 + assert: ^2.1.0 doctrine: ^3.0.0 lodash: ^4.17.21 - regenerator-runtime: ^0.13.7 - checksum: d3ad4674922025aaf6e4e2b7c2ac6f4eaec8f5692dc9a792a15d2d5e38dcd2e1c138daffb31a3da04da1e04c645b3cd8d921890f9ba318bfee7b6a12f263b48a + checksum: f01b4edc3d4d029c105d2d4424b374fc831d4e0f476b6af72408175b248e09959a52fb5152a714092e1d2e8e112b2608dd17f11dbd53a77d82a09cb3547c2c77 languageName: node linkType: hard -"@storybook/instrumenter@npm:6.5.13, @storybook/instrumenter@npm:^6.4.0": - version: 6.5.13 - resolution: "@storybook/instrumenter@npm:6.5.13" - dependencies: - "@storybook/addons": 6.5.13 - "@storybook/client-logger": 6.5.13 - "@storybook/core-events": 6.5.13 - core-js: ^3.8.2 - global: ^4.4.0 - checksum: bc4be0d2b2666eb8fe81f01dd47b459882c8fde0ad9701f6149f9c7bba29d11c88081334b4512638dda1f09e4df0c4afb1a3092d5a999005e20acf1723e07e3c +"@storybook/global@npm:^5.0.0": + version: 5.0.0 + resolution: "@storybook/global@npm:5.0.0" + checksum: ede0ad35ec411fe31c61150dbd118fef344d1d0e72bf5d3502368e35cf68126f6b7ae4a0ab5e2ffe2f0baa3b4286f03ad069ba3e098e1725449ef08b7e154ba8 languageName: node linkType: hard -"@storybook/manager-webpack4@npm:6.5.13": - version: 6.5.13 - resolution: "@storybook/manager-webpack4@npm:6.5.13" +"@storybook/manager-api@npm:7.6.3": + version: 7.6.3 + resolution: "@storybook/manager-api@npm:7.6.3" dependencies: - "@babel/core": ^7.12.10 - "@babel/plugin-transform-template-literals": ^7.12.1 - "@babel/preset-react": ^7.12.10 - "@storybook/addons": 6.5.13 - "@storybook/core-client": 6.5.13 - "@storybook/core-common": 6.5.13 - "@storybook/node-logger": 6.5.13 - "@storybook/theming": 6.5.13 - "@storybook/ui": 6.5.13 - "@types/node": ^14.0.10 || ^16.0.0 - "@types/webpack": ^4.41.26 - babel-loader: ^8.0.0 - case-sensitive-paths-webpack-plugin: ^2.3.0 - chalk: ^4.1.0 - core-js: ^3.8.2 - css-loader: ^3.6.0 - express: ^4.17.1 - file-loader: ^6.2.0 - find-up: ^5.0.0 - fs-extra: ^9.0.1 - html-webpack-plugin: ^4.0.0 - node-fetch: ^2.6.7 - pnp-webpack-plugin: 1.6.4 - read-pkg-up: ^7.0.1 - regenerator-runtime: ^0.13.7 - resolve-from: ^5.0.0 - style-loader: ^1.3.0 - telejson: ^6.0.8 - terser-webpack-plugin: ^4.2.3 + "@storybook/channels": 7.6.3 + "@storybook/client-logger": 7.6.3 + "@storybook/core-events": 7.6.3 + "@storybook/csf": ^0.1.2 + "@storybook/global": ^5.0.0 + "@storybook/router": 7.6.3 + "@storybook/theming": 7.6.3 + "@storybook/types": 7.6.3 + dequal: ^2.0.2 + lodash: ^4.17.21 + memoizerific: ^1.11.3 + semver: ^7.3.7 + store2: ^2.14.2 + telejson: ^7.2.0 ts-dedent: ^2.0.0 - url-loader: ^4.1.1 - util-deprecate: ^1.0.2 - webpack: 4 - webpack-dev-middleware: ^3.7.3 - webpack-virtual-modules: ^0.2.2 + checksum: 5d9fa45b8129ec2a8651ee46101b5f8ef66c36b8085f6c2d9be7faebf45cf393e07ad33f95d6ed1d9a256b89fd3ec08e6363df020aa08696a7568506baa6011f + languageName: node + linkType: hard + +"@storybook/manager@npm:7.6.3": + version: 7.6.3 + resolution: "@storybook/manager@npm:7.6.3" + checksum: affc4bf55f66874e7e1e26e193212d51b1df24bc5e2ac907bfb14fc0d17a7f111394dd432cf398ffcf72563e8d15e8eea2961459eb1b6ed05810ef88663e8a7f + languageName: node + linkType: hard + +"@storybook/mdx2-csf@npm:^1.0.0": + version: 1.1.0 + resolution: "@storybook/mdx2-csf@npm:1.1.0" + checksum: 5ccdb13f4e59b989499f76e54ffaffb96b5710a696346efe19989b3373f375703adf516780894b270fa64a7e765b55274dc18575fc4a84e7fa92b844a4467c5d + languageName: node + linkType: hard + +"@storybook/nextjs@npm:^7.6.3": + version: 7.6.3 + resolution: "@storybook/nextjs@npm:7.6.3" + dependencies: + "@babel/core": ^7.23.2 + "@babel/plugin-syntax-bigint": ^7.8.3 + "@babel/plugin-syntax-dynamic-import": ^7.8.3 + "@babel/plugin-syntax-import-assertions": ^7.22.5 + "@babel/plugin-transform-class-properties": ^7.22.5 + "@babel/plugin-transform-export-namespace-from": ^7.22.11 + "@babel/plugin-transform-numeric-separator": ^7.22.11 + "@babel/plugin-transform-object-rest-spread": ^7.22.15 + "@babel/plugin-transform-runtime": ^7.23.2 + "@babel/preset-env": ^7.23.2 + "@babel/preset-react": ^7.22.15 + "@babel/preset-typescript": ^7.23.2 + "@babel/runtime": ^7.23.2 + "@storybook/addon-actions": 7.6.3 + "@storybook/builder-webpack5": 7.6.3 + "@storybook/core-common": 7.6.3 + "@storybook/core-events": 7.6.3 + "@storybook/node-logger": 7.6.3 + "@storybook/preset-react-webpack": 7.6.3 + "@storybook/preview-api": 7.6.3 + "@storybook/react": 7.6.3 + "@types/node": ^18.0.0 + css-loader: ^6.7.3 + find-up: ^5.0.0 + fs-extra: ^11.1.0 + image-size: ^1.0.0 + loader-utils: ^3.2.1 + node-polyfill-webpack-plugin: ^2.0.1 + pnp-webpack-plugin: ^1.7.0 + postcss: ^8.4.21 + postcss-loader: ^7.0.2 + resolve-url-loader: ^5.0.0 + sass-loader: ^12.4.0 + semver: ^7.3.5 + sharp: ^0.32.6 + style-loader: ^3.3.1 + styled-jsx: 5.1.1 + ts-dedent: ^2.0.0 + tsconfig-paths: ^4.0.0 + tsconfig-paths-webpack-plugin: ^4.0.1 peerDependencies: + "@next/font": ^13.0.0|| ^14.0.0 + next: ^9.0.0 || ^10.0.0 || ^11.0.0 || ^12.0.0 || ^13.0.0 || ^14.0.0 + react: ^16.8.0 || ^17.0.0 || ^18.0.0 + react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 + webpack: ^5.0.0 + peerDependenciesMeta: + "@next/font": + optional: true + typescript: + optional: true + webpack: + optional: true + checksum: 031ac99da47c5cc868b7f09194244166932acf06266b7356985f5df38836e3d3a2de40f5335cad3032930057c0616ed5928dbb51396fc5da4629335fe9512585 + languageName: node + linkType: hard + +"@storybook/node-logger@npm:7.6.3": + version: 7.6.3 + resolution: "@storybook/node-logger@npm:7.6.3" + checksum: 2288fcc23e9240e1b236cb074fd1be932ccee38e75aab2884725548366f1be6b757ce0736af05c1e584b9a30fe999e15737cd7a2e6007db57a6baa796b04b127 + languageName: node + linkType: hard + +"@storybook/postinstall@npm:7.6.3": + version: 7.6.3 + resolution: "@storybook/postinstall@npm:7.6.3" + checksum: 65e43b47fab9fd4388173c2aa72646cf49e283c55b8e2c3e4c3a6358a8c55e68131e44b8ab84d8c1853128eaaf20643613b783ceaf381ef413e3d64ff75417ed + languageName: node + linkType: hard + +"@storybook/preset-react-webpack@npm:7.6.3": + version: 7.6.3 + resolution: "@storybook/preset-react-webpack@npm:7.6.3" + dependencies: + "@babel/preset-flow": ^7.22.15 + "@babel/preset-react": ^7.22.15 + "@pmmmwh/react-refresh-webpack-plugin": ^0.5.11 + "@storybook/core-webpack": 7.6.3 + "@storybook/docs-tools": 7.6.3 + "@storybook/node-logger": 7.6.3 + "@storybook/react": 7.6.3 + "@storybook/react-docgen-typescript-plugin": 1.0.6--canary.9.0c3f3b7.0 + "@types/node": ^18.0.0 + "@types/semver": ^7.3.4 + babel-plugin-add-react-displayname: ^0.0.5 + fs-extra: ^11.1.0 + magic-string: ^0.30.5 + react-docgen: ^7.0.0 + react-refresh: ^0.14.0 + semver: ^7.3.7 + webpack: 5 + peerDependencies: + "@babel/core": ^7.22.0 react: ^16.8.0 || ^17.0.0 || ^18.0.0 react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 peerDependenciesMeta: + "@babel/core": + optional: true typescript: optional: true - checksum: 6645f30b6199d0badb2097aca16478e4d8bc88210b55e60c4da86962e8b0a3441128f1e696cddf8a535591920617a7abf5f1f9771dabc486479e76b8d4b20fbd + checksum: 2dba48673e9697ab3b15d9b00a06318627515c9686ab35af4ebeaa726c04c18f0d8f36a795ca838bb61662419a4c06e9d4b88f09df8b80f2d02686d5699f294a languageName: node linkType: hard -"@storybook/manager-webpack5@npm:^6.5.13": - version: 6.5.13 - resolution: "@storybook/manager-webpack5@npm:6.5.13" +"@storybook/preview-api@npm:7.6.3, @storybook/preview-api@npm:^7.6.3": + version: 7.6.3 + resolution: "@storybook/preview-api@npm:7.6.3" dependencies: - "@babel/core": ^7.12.10 - "@babel/plugin-transform-template-literals": ^7.12.1 - "@babel/preset-react": ^7.12.10 - "@storybook/addons": 6.5.13 - "@storybook/core-client": 6.5.13 - "@storybook/core-common": 6.5.13 - "@storybook/node-logger": 6.5.13 - "@storybook/theming": 6.5.13 - "@storybook/ui": 6.5.13 - "@types/node": ^14.0.10 || ^16.0.0 - babel-loader: ^8.0.0 - case-sensitive-paths-webpack-plugin: ^2.3.0 - chalk: ^4.1.0 - core-js: ^3.8.2 - css-loader: ^5.0.1 - express: ^4.17.1 - find-up: ^5.0.0 - fs-extra: ^9.0.1 - html-webpack-plugin: ^5.0.0 - node-fetch: ^2.6.7 - process: ^0.11.10 - read-pkg-up: ^7.0.1 - regenerator-runtime: ^0.13.7 - resolve-from: ^5.0.0 - style-loader: ^2.0.0 - telejson: ^6.0.8 - terser-webpack-plugin: ^5.0.3 - ts-dedent: ^2.0.0 - util-deprecate: ^1.0.2 - webpack: ^5.9.0 - webpack-dev-middleware: ^4.1.0 - webpack-virtual-modules: ^0.4.1 - peerDependencies: - react: ^16.8.0 || ^17.0.0 || ^18.0.0 - react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 - peerDependenciesMeta: - typescript: - optional: true - checksum: 95e720d00e8869f8ec5e8a36f50e5da6aaecdc9a1ea306ae3d7b50f2f07b60a9eb5cb3787e88262c664c958b1f56b7f34e9bf027eb627a96d127b5771ff6a137 - languageName: node - linkType: hard - -"@storybook/mdx1-csf@npm:^0.0.1": - version: 0.0.1 - resolution: "@storybook/mdx1-csf@npm:0.0.1" - dependencies: - "@babel/generator": ^7.12.11 - "@babel/parser": ^7.12.11 - "@babel/preset-env": ^7.12.11 - "@babel/types": ^7.12.11 - "@mdx-js/mdx": ^1.6.22 - "@types/lodash": ^4.14.167 - js-string-escape: ^1.0.1 - loader-utils: ^2.0.0 - lodash: ^4.17.21 - prettier: ">=2.2.1 <=2.3.0" - ts-dedent: ^2.0.0 - checksum: 34f952f4d00d4fbf680aadea53ca0d9b02b10c94ea492a47a6df916474ea1e36d08eece70ffaba760a4cdf6f634a8684360dc49355cf8a1461050b8a470d2666 - languageName: node - linkType: hard - -"@storybook/mdx1-csf@npm:^0.0.4": - version: 0.0.4 - resolution: "@storybook/mdx1-csf@npm:0.0.4" - dependencies: - "@babel/generator": ^7.12.11 - "@babel/parser": ^7.12.11 - "@babel/preset-env": ^7.12.11 - "@babel/types": ^7.12.11 - "@mdx-js/mdx": ^1.6.22 - "@mdx-js/react": ^1.6.22 - "@types/lodash": ^4.14.167 - js-string-escape: ^1.0.1 - loader-utils: ^2.0.0 - lodash: ^4.17.21 - prettier: ">=2.2.1 <=2.3.0" - ts-dedent: ^2.0.0 - checksum: 834dcf6eb063c559f2768ec3ce669cff651096f7658739c95de1fff190e86fe0253c1e91858f2405b2c6fc218561102837b8d7e951a2f5997ed86f0a72ee5b9e - languageName: node - linkType: hard - -"@storybook/node-logger@npm:6.5.10, @storybook/node-logger@npm:^6.4.3": - version: 6.5.10 - resolution: "@storybook/node-logger@npm:6.5.10" - dependencies: - "@types/npmlog": ^4.1.2 - chalk: ^4.1.0 - core-js: ^3.8.2 - npmlog: ^5.0.1 - pretty-hrtime: ^1.0.3 - checksum: 684eddeadccb632dd0aa7d2bca62a374f71a15f07037788ee82f4d57e18ce7616304e5d8084b96dff742fe2b810843c44f26d53d4ff8f7d0706cdd81d0060fee - languageName: node - linkType: hard - -"@storybook/node-logger@npm:6.5.13": - version: 6.5.13 - resolution: "@storybook/node-logger@npm:6.5.13" - dependencies: - "@types/npmlog": ^4.1.2 - chalk: ^4.1.0 - core-js: ^3.8.2 - npmlog: ^5.0.1 - pretty-hrtime: ^1.0.3 - checksum: bcd1d98822687580e39f27003e16c73e3c775cdfe6e9f8fd8fbe9f4626a82f3f63fe281f9c894f3917faa52202ccb8217916978032d27ba6dbfa9720064e7739 - languageName: node - linkType: hard - -"@storybook/postinstall@npm:6.5.13": - version: 6.5.13 - resolution: "@storybook/postinstall@npm:6.5.13" - dependencies: - core-js: ^3.8.2 - checksum: 87e57e55c7973ea5794b439484d6a99c078b816c0a865c989ae31979000abda6fcfe670671e999a36630b52a91d54e6c0d174b41410cf876e20db976e5a23f56 - languageName: node - linkType: hard - -"@storybook/preview-web@npm:6.5.13": - version: 6.5.13 - resolution: "@storybook/preview-web@npm:6.5.13" - dependencies: - "@storybook/addons": 6.5.13 - "@storybook/channel-postmessage": 6.5.13 - "@storybook/client-logger": 6.5.13 - "@storybook/core-events": 6.5.13 - "@storybook/csf": 0.0.2--canary.4566f4d.1 - "@storybook/store": 6.5.13 - ansi-to-html: ^0.6.11 - core-js: ^3.8.2 - global: ^4.4.0 + "@storybook/channels": 7.6.3 + "@storybook/client-logger": 7.6.3 + "@storybook/core-events": 7.6.3 + "@storybook/csf": ^0.1.2 + "@storybook/global": ^5.0.0 + "@storybook/types": 7.6.3 + "@types/qs": ^6.9.5 + dequal: ^2.0.2 lodash: ^4.17.21 + memoizerific: ^1.11.3 qs: ^6.10.0 - regenerator-runtime: ^0.13.7 synchronous-promise: ^2.0.15 ts-dedent: ^2.0.0 - unfetch: ^4.2.0 util-deprecate: ^1.0.2 - peerDependencies: - react: ^16.8.0 || ^17.0.0 || ^18.0.0 - react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 - checksum: d66d29667a936ee80d15de07bdeec0c6cb2a476fdaa59f262297f5c7dc774acb57e4779c2dd77e61f5a6d9974ac3359babe587a2cd9baf6aa7673ec949b3234d + checksum: c4370d98904c30404f1ee554bdd14bd3b4f6c7121532edac105cd2d1cc7d7f28833b4c23779e672f0e9cf1dbce03e8251a7791168c39049058542343281921b3 languageName: node linkType: hard -"@storybook/react-docgen-typescript-plugin@npm:1.0.2-canary.6.9d540b91e815f8fc2f8829189deb00553559ff63.0": - version: 1.0.2-canary.6.9d540b91e815f8fc2f8829189deb00553559ff63.0 - resolution: "@storybook/react-docgen-typescript-plugin@npm:1.0.2-canary.6.9d540b91e815f8fc2f8829189deb00553559ff63.0" +"@storybook/preview@npm:7.6.3": + version: 7.6.3 + resolution: "@storybook/preview@npm:7.6.3" + checksum: e51787c0b9d3bf48095916081979741cef95acea0ae0c3350596de1eaf7f767ba15e408b36b2d41b0a40feb464905d95d086008ee5c02e689fdf232e1486c406 + languageName: node + linkType: hard + +"@storybook/react-docgen-typescript-plugin@npm:1.0.6--canary.9.0c3f3b7.0": + version: 1.0.6--canary.9.0c3f3b7.0 + resolution: "@storybook/react-docgen-typescript-plugin@npm:1.0.6--canary.9.0c3f3b7.0" dependencies: debug: ^4.1.1 endent: ^2.0.1 find-cache-dir: ^3.3.1 flat-cache: ^3.0.4 micromatch: ^4.0.2 - react-docgen-typescript: ^2.1.1 + react-docgen-typescript: ^2.2.2 tslib: ^2.0.0 peerDependencies: - typescript: ">= 3.x" + typescript: ">= 4.x" webpack: ">= 4" - checksum: 91a3015d384e93d9ffb4def904cad51218eb1a9eaf504c758083f2988a97d8bf8748bc280aa629864eb26fd9f7fc05bd087df95383d719e0c914c722016804b9 + checksum: 38c59c1dd7f9cdf5533e5ffe1991034f563f8d33c59e3cd33fa86719c72f5fe922276fde50315dd24f23f225d1ad5f3a261ecf4c70e82522805d09782272faff languageName: node linkType: hard -"@storybook/react@npm:^6.5.13": - version: 6.5.13 - resolution: "@storybook/react@npm:6.5.13" +"@storybook/react-dom-shim@npm:7.6.3": + version: 7.6.3 + resolution: "@storybook/react-dom-shim@npm:7.6.3" + peerDependencies: + react: ^16.8.0 || ^17.0.0 || ^18.0.0 + react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 + checksum: 5563f1589357b2075073a492720d21cd453d72f794e8c7532fadc64995acd17dc55fd21381c2f7b75023f76abde85cf2ea362c301143fb592ba0e67e8620be0f + languageName: node + linkType: hard + +"@storybook/react@npm:7.6.3, @storybook/react@npm:^7.6.3": + version: 7.6.3 + resolution: "@storybook/react@npm:7.6.3" dependencies: - "@babel/preset-flow": ^7.12.1 - "@babel/preset-react": ^7.12.10 - "@pmmmwh/react-refresh-webpack-plugin": ^0.5.3 - "@storybook/addons": 6.5.13 - "@storybook/client-logger": 6.5.13 - "@storybook/core": 6.5.13 - "@storybook/core-common": 6.5.13 - "@storybook/csf": 0.0.2--canary.4566f4d.1 - "@storybook/docs-tools": 6.5.13 - "@storybook/node-logger": 6.5.13 - "@storybook/react-docgen-typescript-plugin": 1.0.2-canary.6.9d540b91e815f8fc2f8829189deb00553559ff63.0 - "@storybook/semver": ^7.3.2 - "@storybook/store": 6.5.13 + "@storybook/client-logger": 7.6.3 + "@storybook/core-client": 7.6.3 + "@storybook/docs-tools": 7.6.3 + "@storybook/global": ^5.0.0 + "@storybook/preview-api": 7.6.3 + "@storybook/react-dom-shim": 7.6.3 + "@storybook/types": 7.6.3 + "@types/escodegen": ^0.0.6 "@types/estree": ^0.0.51 - "@types/node": ^14.14.20 || ^16.0.0 - "@types/webpack-env": ^1.16.0 + "@types/node": ^18.0.0 acorn: ^7.4.1 acorn-jsx: ^5.3.1 acorn-walk: ^7.2.0 - babel-plugin-add-react-displayname: ^0.0.5 - babel-plugin-react-docgen: ^4.2.1 - core-js: ^3.8.2 - escodegen: ^2.0.0 - fs-extra: ^9.0.1 - global: ^4.4.0 + escodegen: ^2.1.0 html-tags: ^3.1.0 lodash: ^4.17.21 prop-types: ^15.7.2 - react-element-to-jsx-string: ^14.3.4 - react-refresh: ^0.11.0 - read-pkg-up: ^7.0.1 - regenerator-runtime: ^0.13.7 + react-element-to-jsx-string: ^15.0.0 ts-dedent: ^2.0.0 + type-fest: ~2.19 util-deprecate: ^1.0.2 - webpack: ">=4.43.0 <6.0.0" peerDependencies: - "@babel/core": ^7.11.5 react: ^16.8.0 || ^17.0.0 || ^18.0.0 react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 - require-from-string: ^2.0.2 + typescript: "*" peerDependenciesMeta: - "@babel/core": - optional: true - "@storybook/builder-webpack4": - optional: true - "@storybook/builder-webpack5": - optional: true - "@storybook/manager-webpack4": - optional: true - "@storybook/manager-webpack5": - optional: true typescript: optional: true - bin: - build-storybook: bin/build.js - start-storybook: bin/index.js - storybook-server: bin/index.js - checksum: 5a21e4e49a0aba7376dbaef5408e03537cf937d3025e735b45848bce7c9f476a025ca9af4260aa32982a3da668e14a217f66a0ec465ed820369ff2fab49b2ab3 + checksum: cb4a719612a62e22eb1585518c50df42cb2d14b708d3d33c25a5c081b03b1876fd8af2010fdc7b3086eb05f01edde3bac9ae1ea093315b7587ce1174a1575fc9 languageName: node linkType: hard -"@storybook/router@npm:6.5.10": - version: 6.5.10 - resolution: "@storybook/router@npm:6.5.10" +"@storybook/router@npm:7.6.3": + version: 7.6.3 + resolution: "@storybook/router@npm:7.6.3" dependencies: - "@storybook/client-logger": 6.5.10 - core-js: ^3.8.2 + "@storybook/client-logger": 7.6.3 memoizerific: ^1.11.3 qs: ^6.10.0 - regenerator-runtime: ^0.13.7 - peerDependencies: - react: ^16.8.0 || ^17.0.0 || ^18.0.0 - react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 - checksum: 118598867067344607cff7ef6fdef7b7a18a3e08a53f75fc4beaa65013f435ae18d800d25eea52376662bc1d98a2822a143531e701d8cea7130d42dc48e2cce7 + checksum: e1af3895b7945fd62c159caea87c042d41fd0e4e929f9838e9369b08bcf94bafee01222e1af742442a8b1a589abf70613dbb93a393982dde892c1106e0164e04 languageName: node linkType: hard -"@storybook/router@npm:6.5.13": - version: 6.5.13 - resolution: "@storybook/router@npm:6.5.13" +"@storybook/telemetry@npm:7.6.3": + version: 7.6.3 + resolution: "@storybook/telemetry@npm:7.6.3" dependencies: - "@storybook/client-logger": 6.5.13 - core-js: ^3.8.2 - memoizerific: ^1.11.3 - qs: ^6.10.0 - regenerator-runtime: ^0.13.7 - peerDependencies: - react: ^16.8.0 || ^17.0.0 || ^18.0.0 - react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 - checksum: ca144b2f6e3a46d5ac9d449b068d0905e9c72939c8574f095d8d7f7307b172a0c5c13f56ff08d5d5bff540292d9ed13eeecc3a4e600e282ea31e70ed763b735a - languageName: node - linkType: hard - -"@storybook/router@npm:6.5.9": - version: 6.5.9 - resolution: "@storybook/router@npm:6.5.9" - dependencies: - "@storybook/client-logger": 6.5.9 - core-js: ^3.8.2 - memoizerific: ^1.11.3 - qs: ^6.10.0 - regenerator-runtime: ^0.13.7 - peerDependencies: - react: ^16.8.0 || ^17.0.0 || ^18.0.0 - react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 - checksum: 10acf6d67fa245ca10d8e377d593405ab1505d22b3bb2e7ce7dc45bc5be2074d7bb89f9266b7550b84063c907e2188742b355fc8af05f7cf4554a0770915d12e - languageName: node - linkType: hard - -"@storybook/semver@npm:^7.3.2": - version: 7.3.2 - resolution: "@storybook/semver@npm:7.3.2" - dependencies: - core-js: ^3.6.5 - find-up: ^4.1.0 - bin: - semver: bin/semver.js - checksum: c98225817af5539654ef547e33e4496edccc04a88b6091d4a5601f81b71743109074dc71cc444813f43c112273c9d54d5f99416e9ad08ee89b4913318e6aea90 - languageName: node - linkType: hard - -"@storybook/source-loader@npm:6.5.13": - version: 6.5.13 - resolution: "@storybook/source-loader@npm:6.5.13" - dependencies: - "@storybook/addons": 6.5.13 - "@storybook/client-logger": 6.5.13 - "@storybook/csf": 0.0.2--canary.4566f4d.1 - core-js: ^3.8.2 - estraverse: ^5.2.0 - global: ^4.4.0 - loader-utils: ^2.0.0 - lodash: ^4.17.21 - prettier: ">=2.2.1 <=2.3.0" - regenerator-runtime: ^0.13.7 - peerDependencies: - react: ^16.8.0 || ^17.0.0 || ^18.0.0 - react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 - checksum: 93da14a367a954f664d233f64bd9e7d983475e489b8fbe5c90b723ff793279ab899d86f967eb6882f7997296f4286f6f5c82c17ca83e9294c91f8e4aa0ec0a1d - languageName: node - linkType: hard - -"@storybook/source-loader@npm:^6.4.3": - version: 6.5.10 - resolution: "@storybook/source-loader@npm:6.5.10" - dependencies: - "@storybook/addons": 6.5.10 - "@storybook/client-logger": 6.5.10 - "@storybook/csf": 0.0.2--canary.4566f4d.1 - core-js: ^3.8.2 - estraverse: ^5.2.0 - global: ^4.4.0 - loader-utils: ^2.0.0 - lodash: ^4.17.21 - prettier: ">=2.2.1 <=2.3.0" - regenerator-runtime: ^0.13.7 - peerDependencies: - react: ^16.8.0 || ^17.0.0 || ^18.0.0 - react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 - checksum: 77d7a0255cace96fc9953518fe54162ce4b2167b53eb744f498cf2098ba4af8074d75f572940621675303043b69e2281e8a5479ce2d331d47aa86c189cdd53bb - languageName: node - linkType: hard - -"@storybook/store@npm:6.5.13": - version: 6.5.13 - resolution: "@storybook/store@npm:6.5.13" - dependencies: - "@storybook/addons": 6.5.13 - "@storybook/client-logger": 6.5.13 - "@storybook/core-events": 6.5.13 - "@storybook/csf": 0.0.2--canary.4566f4d.1 - core-js: ^3.8.2 - fast-deep-equal: ^3.1.3 - global: ^4.4.0 - lodash: ^4.17.21 - memoizerific: ^1.11.3 - regenerator-runtime: ^0.13.7 - slash: ^3.0.0 - stable: ^0.1.8 - synchronous-promise: ^2.0.15 - ts-dedent: ^2.0.0 - util-deprecate: ^1.0.2 - peerDependencies: - react: ^16.8.0 || ^17.0.0 || ^18.0.0 - react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 - checksum: 69f55927bd3569ec9d87f4351879fd07654d51524a0f9da05c64c7f7f3b50e33024f1554fa59668997e47189e9838b85b691de422ab539bd71126b56922d9381 - languageName: node - linkType: hard - -"@storybook/telemetry@npm:6.5.13": - version: 6.5.13 - resolution: "@storybook/telemetry@npm:6.5.13" - dependencies: - "@storybook/client-logger": 6.5.13 - "@storybook/core-common": 6.5.13 + "@storybook/client-logger": 7.6.3 + "@storybook/core-common": 7.6.3 + "@storybook/csf-tools": 7.6.3 chalk: ^4.1.0 - core-js: ^3.8.2 detect-package-manager: ^2.0.1 fetch-retry: ^5.0.2 - fs-extra: ^9.0.1 - global: ^4.4.0 - isomorphic-unfetch: ^3.1.0 - nanoid: ^3.3.1 + fs-extra: ^11.1.0 read-pkg-up: ^7.0.1 - regenerator-runtime: ^0.13.7 - checksum: 94ad6fb58b09c8073600ad95b2a48f476524ea7bc6155aee8e9682966a99ac875a9923ee6512252238e8c56eeef725a712e94ba87e1060d7dca9ab196a9051a6 + checksum: 8d9b345c29c594e9cfdf9370953cbba44a7fd86bd94e7850c2cc94510ee57fb0a468ded97c1526db528e865072b74c806e4aea9a1999a6da2cd0d6242dc39982 languageName: node linkType: hard -"@storybook/testing-library@npm:^0.0.13": - version: 0.0.13 - resolution: "@storybook/testing-library@npm:0.0.13" +"@storybook/testing-library@npm:^0.2.2": + version: 0.2.2 + resolution: "@storybook/testing-library@npm:0.2.2" dependencies: - "@storybook/client-logger": ^6.4.0 - "@storybook/instrumenter": ^6.4.0 - "@testing-library/dom": ^8.3.0 - "@testing-library/user-event": ^13.2.1 + "@testing-library/dom": ^9.0.0 + "@testing-library/user-event": ^14.4.0 ts-dedent: ^2.2.0 - checksum: 759361ad3fbc89bdfddfa6d5a15eef06ed6fa9110bfa40c08fcf2497e7acd85e8d5c73c26ea4a46934168b21db294256befb55755fee4292d3d277c576284a1c + checksum: 8ccdc1fbbb3472264c56b0aaf2f1c5d273f1ae9b230a53adf9cf82bf82c1a555550894f0e8869c206fa07b1fe8423da4d56590377756c58de3ec560b35a96c46 languageName: node linkType: hard -"@storybook/theming@npm:6.5.10": - version: 6.5.10 - resolution: "@storybook/theming@npm:6.5.10" +"@storybook/theming@npm:7.6.3": + version: 7.6.3 + resolution: "@storybook/theming@npm:7.6.3" dependencies: - "@storybook/client-logger": 6.5.10 - core-js: ^3.8.2 + "@emotion/use-insertion-effect-with-fallbacks": ^1.0.0 + "@storybook/client-logger": 7.6.3 + "@storybook/global": ^5.0.0 memoizerific: ^1.11.3 - regenerator-runtime: ^0.13.7 peerDependencies: react: ^16.8.0 || ^17.0.0 || ^18.0.0 react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 - checksum: 2082d7847785a307a18eb605282468d844af01f57752916766a60047b5543cf6f0c6664b9c7a693809b4fdc121415989c2170833d3de7ca8b07fa056741787d0 + checksum: deeae48afe9fdbbab2c6b11a0e7ea725414c6a3da3638a6cc2475d9e1cc800a93a255a732b2293966975f998fc22e76f4b502f740d618e7d6ed9aaaec3c60bc2 languageName: node linkType: hard -"@storybook/theming@npm:6.5.13": - version: 6.5.13 - resolution: "@storybook/theming@npm:6.5.13" +"@storybook/types@npm:7.6.3": + version: 7.6.3 + resolution: "@storybook/types@npm:7.6.3" dependencies: - "@storybook/client-logger": 6.5.13 - core-js: ^3.8.2 - memoizerific: ^1.11.3 - regenerator-runtime: ^0.13.7 - peerDependencies: - react: ^16.8.0 || ^17.0.0 || ^18.0.0 - react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 - checksum: f7a59c7d81b87f3fbf65c5eb72f5db5a5c1707236c92350d46bc7e1dcf848d57522ca5dcdd4fe19336d4611bd20727e0d900c4b591d2e8e1dd8a754cb9c56aa3 - languageName: node - linkType: hard - -"@storybook/theming@npm:6.5.9": - version: 6.5.9 - resolution: "@storybook/theming@npm:6.5.9" - dependencies: - "@storybook/client-logger": 6.5.9 - core-js: ^3.8.2 - memoizerific: ^1.11.3 - regenerator-runtime: ^0.13.7 - peerDependencies: - react: ^16.8.0 || ^17.0.0 || ^18.0.0 - react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 - checksum: 0c0d034864bcf7289778aa549dd9d830c75b90e416cbd2ee8bc9be946f1699141a7b695916aa134c38d156edcfac3a1378e3490ac02b470b89d168625618d073 - languageName: node - linkType: hard - -"@storybook/ui@npm:6.5.13": - version: 6.5.13 - resolution: "@storybook/ui@npm:6.5.13" - dependencies: - "@storybook/addons": 6.5.13 - "@storybook/api": 6.5.13 - "@storybook/channels": 6.5.13 - "@storybook/client-logger": 6.5.13 - "@storybook/components": 6.5.13 - "@storybook/core-events": 6.5.13 - "@storybook/router": 6.5.13 - "@storybook/semver": ^7.3.2 - "@storybook/theming": 6.5.13 - core-js: ^3.8.2 - memoizerific: ^1.11.3 - qs: ^6.10.0 - regenerator-runtime: ^0.13.7 - resolve-from: ^5.0.0 - peerDependencies: - react: ^16.8.0 || ^17.0.0 || ^18.0.0 - react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 - checksum: d2866987f51d945246776d42628bc2b79e701f1e59fd511bb1e590c83c4b9d9adee5c7e1a11ecb2ef12b9192613e2d576694bbc9aeb1df5545567f2aa44c0145 + "@storybook/channels": 7.6.3 + "@types/babel__core": ^7.0.0 + "@types/express": ^4.7.0 + file-system-cache: 2.3.0 + checksum: fabbdc48937fa8b352389e87d12c156b07a1803481467ff4038ca113dfb0d928635c07ec6cde5a0fd06e347f7644540186d7149e13aa5423ad91b22e4ede33b9 languageName: node linkType: hard @@ -12425,6 +12090,119 @@ __metadata: languageName: node linkType: hard +"@swc/core-darwin-arm64@npm:1.3.100": + version: 1.3.100 + resolution: "@swc/core-darwin-arm64@npm:1.3.100" + conditions: os=darwin & cpu=arm64 + languageName: node + linkType: hard + +"@swc/core-darwin-x64@npm:1.3.100": + version: 1.3.100 + resolution: "@swc/core-darwin-x64@npm:1.3.100" + conditions: os=darwin & cpu=x64 + languageName: node + linkType: hard + +"@swc/core-linux-arm64-gnu@npm:1.3.100": + version: 1.3.100 + resolution: "@swc/core-linux-arm64-gnu@npm:1.3.100" + conditions: os=linux & cpu=arm64 & libc=glibc + languageName: node + linkType: hard + +"@swc/core-linux-arm64-musl@npm:1.3.100": + version: 1.3.100 + resolution: "@swc/core-linux-arm64-musl@npm:1.3.100" + conditions: os=linux & cpu=arm64 & libc=musl + languageName: node + linkType: hard + +"@swc/core-linux-x64-gnu@npm:1.3.100": + version: 1.3.100 + resolution: "@swc/core-linux-x64-gnu@npm:1.3.100" + conditions: os=linux & cpu=x64 & libc=glibc + languageName: node + linkType: hard + +"@swc/core-linux-x64-musl@npm:1.3.100": + version: 1.3.100 + resolution: "@swc/core-linux-x64-musl@npm:1.3.100" + conditions: os=linux & cpu=x64 & libc=musl + languageName: node + linkType: hard + +"@swc/core-win32-arm64-msvc@npm:1.3.100": + version: 1.3.100 + resolution: "@swc/core-win32-arm64-msvc@npm:1.3.100" + conditions: os=win32 & cpu=arm64 + languageName: node + linkType: hard + +"@swc/core-win32-ia32-msvc@npm:1.3.100": + version: 1.3.100 + resolution: "@swc/core-win32-ia32-msvc@npm:1.3.100" + conditions: os=win32 & cpu=ia32 + languageName: node + linkType: hard + +"@swc/core-win32-x64-msvc@npm:1.3.100": + version: 1.3.100 + resolution: "@swc/core-win32-x64-msvc@npm:1.3.100" + conditions: os=win32 & cpu=x64 + languageName: node + linkType: hard + +"@swc/core@npm:^1.3.82": + version: 1.3.100 + resolution: "@swc/core@npm:1.3.100" + dependencies: + "@swc/core-darwin-arm64": 1.3.100 + "@swc/core-darwin-x64": 1.3.100 + "@swc/core-linux-arm64-gnu": 1.3.100 + "@swc/core-linux-arm64-musl": 1.3.100 + "@swc/core-linux-x64-gnu": 1.3.100 + "@swc/core-linux-x64-musl": 1.3.100 + "@swc/core-win32-arm64-msvc": 1.3.100 + "@swc/core-win32-ia32-msvc": 1.3.100 + "@swc/core-win32-x64-msvc": 1.3.100 + "@swc/counter": ^0.1.1 + "@swc/types": ^0.1.5 + peerDependencies: + "@swc/helpers": ^0.5.0 + dependenciesMeta: + "@swc/core-darwin-arm64": + optional: true + "@swc/core-darwin-x64": + optional: true + "@swc/core-linux-arm64-gnu": + optional: true + "@swc/core-linux-arm64-musl": + optional: true + "@swc/core-linux-x64-gnu": + optional: true + "@swc/core-linux-x64-musl": + optional: true + "@swc/core-win32-arm64-msvc": + optional: true + "@swc/core-win32-ia32-msvc": + optional: true + "@swc/core-win32-x64-msvc": + optional: true + peerDependenciesMeta: + "@swc/helpers": + optional: true + checksum: b68553db388c36b1859f0e8b5231a608277e17ae7fd7a928ea8b448432532176914f84675426d40aa9710617b2e7fb626aaa8358b6b2506b3c43f82db725c41e + languageName: node + linkType: hard + +"@swc/counter@npm:^0.1.1": + version: 0.1.2 + resolution: "@swc/counter@npm:0.1.2" + checksum: 8427c594f1f0cf44b83885e9c8fe1e370c9db44ae96e07a37c117a6260ee97797d0709483efbcc244e77bac578690215f45b23254c4cd8a70fb25ddbb50bf33e + languageName: node + linkType: hard + "@swc/helpers@npm:0.5.2": version: 0.5.2 resolution: "@swc/helpers@npm:0.5.2" @@ -12434,6 +12212,13 @@ __metadata: languageName: node linkType: hard +"@swc/types@npm:^0.1.5": + version: 0.1.5 + resolution: "@swc/types@npm:0.1.5" + checksum: 6aee11f62d3d805a64848e0bd5f0e0e615f958e327a9e1260056c368d7d28764d89e38bd8005a536c9bf18afbcd303edd84099d60df34a2975d62540f61df13b + languageName: node + linkType: hard + "@szmarczak/http-timer@npm:^4.0.5": version: 4.0.6 resolution: "@szmarczak/http-timer@npm:4.0.6" @@ -12443,15 +12228,6 @@ __metadata: languageName: node linkType: hard -"@szmarczak/http-timer@npm:^5.0.1": - version: 5.0.1 - resolution: "@szmarczak/http-timer@npm:5.0.1" - dependencies: - defer-to-connect: ^2.0.1 - checksum: fc9cb993e808806692e4a3337c90ece0ec00c89f4b67e3652a356b89730da98bc824273a6d67ca84d5f33cd85f317dcd5ce39d8cc0a2f060145a608a7cb8ce92 - 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" @@ -12559,22 +12335,6 @@ __metadata: languageName: node linkType: hard -"@testing-library/dom@npm:^8.3.0": - version: 8.19.0 - resolution: "@testing-library/dom@npm:8.19.0" - dependencies: - "@babel/code-frame": ^7.10.4 - "@babel/runtime": ^7.12.5 - "@types/aria-query": ^4.2.0 - aria-query: ^5.0.0 - chalk: ^4.1.0 - dom-accessibility-api: ^0.5.9 - lz-string: ^1.4.4 - pretty-format: ^27.0.2 - checksum: 6bb93fef96703b6c47cf1b7cc8f71d402a9576084a94ba4e9926f51bd7bb1287fbb4f6942d82bd03fc6f3d998ae97e60f6aea4618f3a1ce6139597d2a4ecb7b9 - languageName: node - linkType: hard - "@testing-library/dom@npm:^8.5.0": version: 8.17.1 resolution: "@testing-library/dom@npm:8.17.1" @@ -12591,6 +12351,22 @@ __metadata: languageName: node linkType: hard +"@testing-library/dom@npm:^9.0.0": + version: 9.3.3 + resolution: "@testing-library/dom@npm:9.3.3" + dependencies: + "@babel/code-frame": ^7.10.4 + "@babel/runtime": ^7.12.5 + "@types/aria-query": ^5.0.1 + aria-query: 5.1.3 + chalk: ^4.1.0 + dom-accessibility-api: ^0.5.9 + lz-string: ^1.5.0 + pretty-format: ^27.0.2 + checksum: 34e0a564da7beb92aa9cc44a9080221e2412b1a132eb37be3d513fe6c58027674868deb9f86195756d98d15ba969a30fe00632a4e26e25df2a5a4f6ac0686e37 + languageName: node + linkType: hard + "@testing-library/jest-dom@npm:^5.16.5": version: 5.17.0 resolution: "@testing-library/jest-dom@npm:5.17.0" @@ -12644,14 +12420,12 @@ __metadata: languageName: node linkType: hard -"@testing-library/user-event@npm:^13.2.1": - version: 13.5.0 - resolution: "@testing-library/user-event@npm:13.5.0" - dependencies: - "@babel/runtime": ^7.12.5 +"@testing-library/user-event@npm:^14.4.0": + version: 14.5.1 + resolution: "@testing-library/user-event@npm:14.5.1" peerDependencies: "@testing-library/dom": ">=7.21.4" - checksum: 16319de685fbb7008f1ba667928f458b2d08196918002daca56996de80ef35e6d9de26e9e1ece7d00a004692b95a597cf9142fff0dc53f2f51606a776584f549 + checksum: 3e6bc9fd53dfe2f3648190193ed2fd4bca2a1bfb47f68810df3b33f05412526e5fd5c4ef9dc5375635e0f4cdf1859916867b597eed22bda1321e04242ea6c519 languageName: node linkType: hard @@ -12852,6 +12626,13 @@ __metadata: languageName: node linkType: hard +"@types/aria-query@npm:^5.0.1": + version: 5.0.4 + resolution: "@types/aria-query@npm:5.0.4" + checksum: ad8b87e4ad64255db5f0a73bc2b4da9b146c38a3a8ab4d9306154334e0fc67ae64e76bfa298eebd1e71830591fb15987e5de7111bdb36a2221bdc379e3415fb0 + languageName: node + linkType: hard + "@types/async@npm:^3.2.15": version: 3.2.15 resolution: "@types/async@npm:3.2.15" @@ -12859,6 +12640,47 @@ __metadata: languageName: node linkType: hard +"@types/babel__core@npm:^7.0.0, @types/babel__core@npm:^7.18.0": + version: 7.20.5 + resolution: "@types/babel__core@npm:7.20.5" + dependencies: + "@babel/parser": ^7.20.7 + "@babel/types": ^7.20.7 + "@types/babel__generator": "*" + "@types/babel__template": "*" + "@types/babel__traverse": "*" + checksum: a3226f7930b635ee7a5e72c8d51a357e799d19cbf9d445710fa39ab13804f79ab1a54b72ea7d8e504659c7dfc50675db974b526142c754398d7413aa4bc30845 + languageName: node + linkType: hard + +"@types/babel__generator@npm:*": + version: 7.6.7 + resolution: "@types/babel__generator@npm:7.6.7" + dependencies: + "@babel/types": ^7.0.0 + checksum: 03e96ea327a5238f00c38394a05cc01619b9f5f3ea57371419a1c25cf21676a6d327daf802435819f8cb3b8fa10e938a94bcbaf79a38c132068c813a1807ff93 + languageName: node + linkType: hard + +"@types/babel__template@npm:*": + version: 7.4.4 + resolution: "@types/babel__template@npm:7.4.4" + dependencies: + "@babel/parser": ^7.1.0 + "@babel/types": ^7.0.0 + checksum: d7a02d2a9b67e822694d8e6a7ddb8f2b71a1d6962dfd266554d2513eefbb205b33ca71a0d163b1caea3981ccf849211f9964d8bd0727124d18ace45aa6c9ae29 + languageName: node + linkType: hard + +"@types/babel__traverse@npm:*, @types/babel__traverse@npm:^7.18.0": + version: 7.20.4 + resolution: "@types/babel__traverse@npm:7.20.4" + dependencies: + "@babel/types": ^7.20.7 + checksum: f044ba80e00d07e46ee917c44f96cfc268fcf6d3871f7dfb8db8d3c6dab1508302f3e6bc508352a4a3ae627d2522e3fc500fa55907e0410a08e2e0902a8f3576 + languageName: node + linkType: hard + "@types/bcryptjs@npm:^2.4.2": version: 2.4.2 resolution: "@types/bcryptjs@npm:2.4.2" @@ -12866,15 +12688,6 @@ __metadata: languageName: node linkType: hard -"@types/bn.js@npm:^5.1.0": - version: 5.1.0 - resolution: "@types/bn.js@npm:5.1.0" - dependencies: - "@types/node": "*" - checksum: 1dc1cbbd7a1e8bf3614752e9602f558762a901031f499f3055828b5e3e2bba16e5b88c27b3c4152ad795248fbe4086c731a5c4b0f29bb243f1875beeeabee59c - languageName: node - linkType: hard - "@types/body-parser@npm:*": version: 1.19.2 resolution: "@types/body-parser@npm:1.19.2" @@ -12897,18 +12710,6 @@ __metadata: languageName: node linkType: hard -"@types/cacheable-request@npm:^6.0.2": - version: 6.0.2 - resolution: "@types/cacheable-request@npm:6.0.2" - dependencies: - "@types/http-cache-semantics": "*" - "@types/keyv": "*" - "@types/node": "*" - "@types/responselike": "*" - checksum: 667d25808dbf46fe104d6f029e0281ff56058d50c7c1b9182774b3e38bb9c1124f56e4c367ba54f92dbde2d1cc573f26eb0e9748710b2822bc0fd1e5498859c6 - languageName: node - linkType: hard - "@types/chai-subset@npm:^1.3.3": version: 1.3.3 resolution: "@types/chai-subset@npm:1.3.3" @@ -12968,6 +12769,15 @@ __metadata: languageName: node linkType: hard +"@types/cross-spawn@npm:^6.0.2": + version: 6.0.6 + resolution: "@types/cross-spawn@npm:6.0.6" + dependencies: + "@types/node": "*" + checksum: b4172927cd1387cf037c3ade785ef46c87537b7bc2803d7f6663b4904d0c5d6f726415d1adb2fee4fecb21746738f11336076449265d46be4ce110cc3a8c8436 + languageName: node + linkType: hard + "@types/d3-array@npm:^3.0.3": version: 3.0.4 resolution: "@types/d3-array@npm:3.0.4" @@ -13071,6 +12881,13 @@ __metadata: languageName: node linkType: hard +"@types/detect-port@npm:^1.3.0": + version: 1.3.5 + resolution: "@types/detect-port@npm:1.3.5" + checksum: 923cf04c6a05af59090743baeb9948f1938ceb98c1f7ea93db7ac310210426b385aa00005d23039ebb8019a9d13e141f5246e9c733b290885018d722a4787921 + languageName: node + linkType: hard + "@types/detect-port@npm:^1.3.2": version: 1.3.2 resolution: "@types/detect-port@npm:1.3.2" @@ -13078,6 +12895,41 @@ __metadata: languageName: node linkType: hard +"@types/doctrine@npm:^0.0.3": + version: 0.0.3 + resolution: "@types/doctrine@npm:0.0.3" + checksum: 7ca9c8ff4d2da437785151c9eef0dd80b8fa12e0ff0fcb988458a78de4b6f0fc92727ba5bbee446e1df615a91f03053c5783b30b7c21ab6ceab6a42557e93e50 + languageName: node + linkType: hard + +"@types/doctrine@npm:^0.0.9": + version: 0.0.9 + resolution: "@types/doctrine@npm:0.0.9" + checksum: 3909eaca42e7386b2ab866f082b78da3e00718d2fa323597e254feb0556c678b41f2c490729067433630083ac9c806ec6ae1e146754f7f8ba7d3e43ed68d6500 + languageName: node + linkType: hard + +"@types/ejs@npm:^3.1.1": + version: 3.1.5 + resolution: "@types/ejs@npm:3.1.5" + checksum: e142266283051f27a7f79329871b311687dede19ae20268d882e4de218c65e1311d28a300b85579ca67157a8d601b7234daa50c2f99b252b121d27b4e5b21468 + languageName: node + linkType: hard + +"@types/emscripten@npm:^1.39.6": + version: 1.39.10 + resolution: "@types/emscripten@npm:1.39.10" + checksum: 1721da76593f9194e0b7c90a581e2d31c23bd4eb28f93030cd1dc58216cdf1e692c045274f2eedaed29c652c25c9a4dff2e503b11bd1258d07095c009a1956b1 + languageName: node + linkType: hard + +"@types/escodegen@npm:^0.0.6": + version: 0.0.6 + resolution: "@types/escodegen@npm:0.0.6" + checksum: 7b25aeedd48dbef68345224082c6bc774845cbfc1d9b2ce91a477130fe7ccabf33da126c1d6d55e5dfd838db429a7c80890628a167e5aa55b6a4620974da38d3 + languageName: node + linkType: hard + "@types/eslint-scope@npm:^3.7.3": version: 3.7.4 resolution: "@types/eslint-scope@npm:3.7.4" @@ -13140,6 +12992,18 @@ __metadata: languageName: node linkType: hard +"@types/express-serve-static-core@npm:^4.17.33": + version: 4.17.41 + resolution: "@types/express-serve-static-core@npm:4.17.41" + dependencies: + "@types/node": "*" + "@types/qs": "*" + "@types/range-parser": "*" + "@types/send": "*" + checksum: 12750f6511dd870bbaccfb8208ad1e79361cf197b147f62a3bedc19ec642f3a0f9926ace96705f4bc88ec2ae56f61f7ca8c2438e6b22f5540842b5569c28a121 + languageName: node + linkType: hard + "@types/express-unless@npm:*": version: 0.5.3 resolution: "@types/express-unless@npm:0.5.3" @@ -13161,6 +13025,25 @@ __metadata: languageName: node linkType: hard +"@types/express@npm:^4.7.0": + version: 4.17.21 + resolution: "@types/express@npm:4.17.21" + dependencies: + "@types/body-parser": "*" + "@types/express-serve-static-core": ^4.17.33 + "@types/qs": "*" + "@types/serve-static": "*" + checksum: fb238298630370a7392c7abdc80f495ae6c716723e114705d7e3fb67e3850b3859bbfd29391463a3fb8c0b32051847935933d99e719c0478710f8098ee7091c5 + languageName: node + linkType: hard + +"@types/find-cache-dir@npm:^3.2.1": + version: 3.2.1 + resolution: "@types/find-cache-dir@npm:3.2.1" + checksum: bf5c4e96da40247cd9e6327f54dfccda961a0fb2d70e3c71bd05def94de4c2e6fb310fe8ecb0f04ecf5dbc52214e184b55a2337b0f87250d4ae1e2e7d58321e4 + languageName: node + linkType: hard + "@types/glidejs__glide@npm:^3.4.2": version: 3.4.2 resolution: "@types/glidejs__glide@npm:3.4.2" @@ -13168,22 +13051,12 @@ __metadata: languageName: node linkType: hard -"@types/glob@npm:*, @types/glob@npm:^7.1.1, @types/glob@npm:^7.1.3": - version: 7.2.0 - resolution: "@types/glob@npm:7.2.0" - dependencies: - "@types/minimatch": "*" - "@types/node": "*" - checksum: 6ae717fedfdfdad25f3d5a568323926c64f52ef35897bcac8aca8e19bc50c0bd84630bbd063e5d52078b2137d8e7d3c26eabebd1a2f03ff350fff8a91e79fc19 - languageName: node - linkType: hard - -"@types/graceful-fs@npm:^4.1.2": - version: 4.1.5 - resolution: "@types/graceful-fs@npm:4.1.5" +"@types/graceful-fs@npm:^4.1.3": + version: 4.1.9 + resolution: "@types/graceful-fs@npm:4.1.9" dependencies: "@types/node": "*" - checksum: d076bb61f45d0fc42dee496ef8b1c2f8742e15d5e47e90e20d0243386e426c04d4efd408a48875ab432f7960b4ce3414db20ed0fbbfc7bcc89d84e574f6e045a + checksum: 79d746a8f053954bba36bd3d94a90c78de995d126289d656fb3271dd9f1229d33f678da04d10bce6be440494a5a73438e2e363e92802d16b8315b051036c5256 languageName: node linkType: hard @@ -13213,13 +13086,6 @@ __metadata: languageName: node linkType: hard -"@types/html-minifier-terser@npm:^5.0.0": - version: 5.1.2 - resolution: "@types/html-minifier-terser@npm:5.1.2" - checksum: 4bca779c44d2aebe4cc4036c5db370abe7466249038e9c5996cb3c192debeff1c75b7a2ab78e5fd2a014ad24ebf0f357f9a174a4298540dc1e1317d43aa69cfa - languageName: node - linkType: hard - "@types/html-minifier-terser@npm:^6.0.0": version: 6.1.0 resolution: "@types/html-minifier-terser@npm:6.1.0" @@ -13243,13 +13109,6 @@ __metadata: languageName: node linkType: hard -"@types/is-function@npm:^1.0.0": - version: 1.0.1 - resolution: "@types/is-function@npm:1.0.1" - checksum: dfbb591936dfebd4686b109603bc3e2d23a17087d6ec913fb35cd6b5a4ef908ed68ab93cb27d508f1546d312edf03e663cb6738d3b67d420c68da961ac2b3d1f - languageName: node - linkType: hard - "@types/istanbul-lib-coverage@npm:*, @types/istanbul-lib-coverage@npm:^2.0.0, @types/istanbul-lib-coverage@npm:^2.0.1": version: 2.0.4 resolution: "@types/istanbul-lib-coverage@npm:2.0.4" @@ -13333,7 +13192,7 @@ __metadata: languageName: node linkType: hard -"@types/json-schema@npm:*, @types/json-schema@npm:^7.0.4, @types/json-schema@npm:^7.0.5, @types/json-schema@npm:^7.0.6, @types/json-schema@npm:^7.0.7, @types/json-schema@npm:^7.0.8, @types/json-schema@npm:^7.0.9": +"@types/json-schema@npm:*, @types/json-schema@npm:^7.0.5, @types/json-schema@npm:^7.0.6, @types/json-schema@npm:^7.0.7, @types/json-schema@npm:^7.0.8, @types/json-schema@npm:^7.0.9": version: 7.0.11 resolution: "@types/json-schema@npm:7.0.11" checksum: 527bddfe62db9012fccd7627794bd4c71beb77601861055d87e3ee464f2217c85fca7a4b56ae677478367bbd248dbde13553312b7d4dbc702a2f2bbf60c4018d @@ -13363,7 +13222,7 @@ __metadata: languageName: node linkType: hard -"@types/keyv@npm:*, @types/keyv@npm:^3.1.1, @types/keyv@npm:^3.1.4": +"@types/keyv@npm:^3.1.4": version: 3.1.4 resolution: "@types/keyv@npm:3.1.4" dependencies: @@ -13443,6 +13302,13 @@ __metadata: languageName: node linkType: hard +"@types/mdx@npm:^2.0.0": + version: 2.0.10 + resolution: "@types/mdx@npm:2.0.10" + checksum: 3e2fb24b7bfae739a59573344171292b6c31256ad9afddc00232e9de4fbc97b270e1a11d13cb935cba0d9bbb9bc7348793eda82ee752233c5d2289f4b897f719 + languageName: node + linkType: hard + "@types/memory-cache@npm:^0.2.2": version: 0.2.2 resolution: "@types/memory-cache@npm:0.2.2" @@ -13459,6 +13325,13 @@ __metadata: languageName: node linkType: hard +"@types/mime-types@npm:^2.1.0": + version: 2.1.4 + resolution: "@types/mime-types@npm:2.1.4" + checksum: f8c521c54ee0c0b9f90a65356a80b1413ed27ccdc94f5c7ebb3de5d63cedb559cd2610ea55b4100805c7349606a920d96e54f2d16b2f0afa6b7cd5253967ccc9 + languageName: node + linkType: hard + "@types/mime-types@npm:^2.1.1": version: 2.1.1 resolution: "@types/mime-types@npm:2.1.1" @@ -13473,13 +13346,6 @@ __metadata: languageName: node linkType: hard -"@types/minimatch@npm:*": - version: 3.0.5 - resolution: "@types/minimatch@npm:3.0.5" - checksum: c41d136f67231c3131cf1d4ca0b06687f4a322918a3a5adddc87ce90ed9dbd175a3610adee36b106ae68c0b92c637c35e02b58c8a56c424f71d30993ea220b92 - languageName: node - linkType: hard - "@types/minimist@npm:^1.2.0": version: 1.2.2 resolution: "@types/minimist@npm:1.2.2" @@ -13501,16 +13367,6 @@ __metadata: languageName: node linkType: hard -"@types/node-fetch@npm:^2.5.7": - version: 2.6.2 - resolution: "@types/node-fetch@npm:2.6.2" - dependencies: - "@types/node": "*" - form-data: ^3.0.0 - checksum: 6f73b1470000d303d25a6fb92875ea837a216656cb7474f66cdd67bb014aa81a5a11e7ac9c21fe19bee9ecb2ef87c1962bceeaec31386119d1ac86e4c30ad7a6 - languageName: node - linkType: hard - "@types/node-fetch@npm:^2.6.4": version: 2.6.4 resolution: "@types/node-fetch@npm:2.6.4" @@ -13553,13 +13409,6 @@ __metadata: languageName: node linkType: hard -"@types/npmlog@npm:^4.1.2": - version: 4.1.4 - resolution: "@types/npmlog@npm:4.1.4" - checksum: 740f7431ccfc0e127aa8d162fe05c6ce8aa71290be020d179b2824806d19bd2c706c7e0c9a3c9963cefcdf2ceacb1dec6988c394c3694451387759dafe0aa927 - languageName: node - linkType: hard - "@types/parse-json@npm:^4.0.0": version: 4.0.0 resolution: "@types/parse-json@npm:4.0.0" @@ -13567,13 +13416,6 @@ __metadata: languageName: node linkType: hard -"@types/parse5@npm:^5.0.0": - version: 5.0.3 - resolution: "@types/parse5@npm:5.0.3" - checksum: d6b7495cb1850f9f2e9c5e103ede9f2d30a5320669707b105c403868adc9e4bf8d3a7ff314cc23f67826bbbbbc0e6147346ce9062ab429f099dba7a01f463919 - languageName: node - linkType: hard - "@types/parse5@npm:^6.0.0": version: 6.0.3 resolution: "@types/parse5@npm:6.0.3" @@ -13581,15 +13423,6 @@ __metadata: languageName: node linkType: hard -"@types/pbkdf2@npm:^3.0.0": - version: 3.1.0 - resolution: "@types/pbkdf2@npm:3.1.0" - dependencies: - "@types/node": "*" - checksum: d15024b1957c21cf3b8887329d9bd8dfde754cf13a09d76ae25f1391cfc62bb8b8d7b760773c5dbaa748172fba8b3e0c3dbe962af6ccbd69b76df12a48dfba40 - languageName: node - linkType: hard - "@types/pretty-hrtime@npm:^1.0.0": version: 1.0.1 resolution: "@types/pretty-hrtime@npm:1.0.1" @@ -13707,7 +13540,14 @@ __metadata: languageName: node linkType: hard -"@types/responselike@npm:*, @types/responselike@npm:^1.0.0": +"@types/resolve@npm:^1.20.2": + version: 1.20.6 + resolution: "@types/resolve@npm:1.20.6" + checksum: dc35f5517606b6687cd971c0281ac58bdee2c50c051b030f04647d3991688be2259c304ee97e5b5d4b9936072c36767eb5933b54611a407d6557972bb6fea4f6 + languageName: node + linkType: hard + +"@types/responselike@npm:^1.0.0": version: 1.0.0 resolution: "@types/responselike@npm:1.0.0" dependencies: @@ -13739,15 +13579,6 @@ __metadata: languageName: node linkType: hard -"@types/secp256k1@npm:^4.0.1": - version: 4.0.3 - resolution: "@types/secp256k1@npm:4.0.3" - dependencies: - "@types/node": "*" - checksum: 1bd10b9afa724084b655dc81b7b315def3d2d0e272014ef16009fa76e17537411c07c0695fdea412bc7b36d2a02687f5fea33522d55b8ef29eda42992f812913 - languageName: node - linkType: hard - "@types/semver@npm:^6.0.0": version: 6.2.3 resolution: "@types/semver@npm:6.2.3" @@ -13762,6 +13593,23 @@ __metadata: languageName: node linkType: hard +"@types/semver@npm:^7.3.4": + version: 7.5.6 + resolution: "@types/semver@npm:7.5.6" + checksum: 563a0120ec0efcc326567db2ed920d5d98346f3638b6324ea6b50222b96f02a8add3c51a916b6897b51523aad8ac227d21d3dcf8913559f1bfc6c15b14d23037 + languageName: node + linkType: hard + +"@types/send@npm:*": + version: 0.17.4 + resolution: "@types/send@npm:0.17.4" + dependencies: + "@types/mime": ^1 + "@types/node": "*" + checksum: cf4db48251bbb03cd6452b4de6e8e09e2d75390a92fd798eca4a803df06444adc94ed050246c94c7ed46fb97be1f63607f0e1f13c3ce83d71788b3e08640e5e0 + languageName: node + linkType: hard + "@types/serve-static@npm:*": version: 1.13.10 resolution: "@types/serve-static@npm:1.13.10" @@ -13781,13 +13629,6 @@ __metadata: languageName: node linkType: hard -"@types/source-list-map@npm:*": - version: 0.1.2 - resolution: "@types/source-list-map@npm:0.1.2" - checksum: fda8f37537aca9d3ed860d559289ab1dddb6897e642e6f53e909bbd18a7ac3129a8faa2a7d093847c91346cf09c86ef36e350c715406fba1f2271759b449adf6 - languageName: node - linkType: hard - "@types/stack-utils@npm:^2.0.0": version: 2.0.1 resolution: "@types/stack-utils@npm:2.0.1" @@ -13804,13 +13645,6 @@ __metadata: languageName: node linkType: hard -"@types/tapable@npm:^1, @types/tapable@npm:^1.0.5": - version: 1.0.8 - resolution: "@types/tapable@npm:1.0.8" - checksum: b4b754dd0822c407b8f29ef6b766490721c276880f9e976d92ee2b3ef915f11a05a2442ae36c8978bcd872ad6bc833b0a2c4d267f2d611590668a366bad50652 - languageName: node - linkType: hard - "@types/testing-library__jest-dom@npm:^5.9.1": version: 5.14.8 resolution: "@types/testing-library__jest-dom@npm:5.14.8" @@ -13848,16 +13682,7 @@ __metadata: languageName: node linkType: hard -"@types/uglify-js@npm:*": - version: 3.16.0 - resolution: "@types/uglify-js@npm:3.16.0" - dependencies: - source-map: ^0.6.1 - checksum: 10b0c4a5f361b1389cdef0b705747586ff7ddd37894e55921b8ed02718bc64ee608f4f5493c571f95ce29a3fe8d3538b7236185974dad93c750d8c05b7bceab4 - languageName: node - linkType: hard - -"@types/unist@npm:*, @types/unist@npm:^2.0.0, @types/unist@npm:^2.0.2, @types/unist@npm:^2.0.3": +"@types/unist@npm:*, @types/unist@npm:^2.0.0": version: 2.0.6 resolution: "@types/unist@npm:2.0.6" checksum: 25cb860ff10dde48b54622d58b23e66214211a61c84c0f15f88d38b61aa1b53d4d46e42b557924a93178c501c166aa37e28d7f6d994aba13d24685326272d5db @@ -13885,38 +13710,6 @@ __metadata: languageName: node linkType: hard -"@types/webpack-env@npm:^1.16.0": - version: 1.17.0 - resolution: "@types/webpack-env@npm:1.17.0" - checksum: 9ad4d208c4429c9427191d1f4c92e4c43e530384c17a6bc298acb89003fc47fcde1d8372e50acefa3061e9100e57fd9d616e96def875afd06c0c2afe508f298e - languageName: node - linkType: hard - -"@types/webpack-sources@npm:*": - version: 3.2.0 - resolution: "@types/webpack-sources@npm:3.2.0" - dependencies: - "@types/node": "*" - "@types/source-list-map": "*" - source-map: ^0.7.3 - checksum: fa23dcfb99f79cc0ba8e6ca41cb8dedb406f8d7772e8e3d3d9b443bfb36557a1a78f4de2b97905554db98beee1a2ef6f930e188977adde6452392a64dd4b7c2a - languageName: node - linkType: hard - -"@types/webpack@npm:^4.41.26, @types/webpack@npm:^4.41.8": - version: 4.41.32 - resolution: "@types/webpack@npm:4.41.32" - dependencies: - "@types/node": "*" - "@types/tapable": ^1 - "@types/uglify-js": "*" - "@types/webpack-sources": "*" - anymatch: ^3.0.0 - source-map: ^0.6.0 - checksum: e594a1357cbbc2f7c6ca47785c5a11adb5591a774a69afaeab07cd6f6bff6c6aea2030bd37b32bdd19d0ec2336a346db754e8d8d236ba8effeab542716fb32b7 - languageName: node - linkType: hard - "@types/whatwg-url@npm:^8.2.1": version: 8.2.1 resolution: "@types/whatwg-url@npm:8.2.1" @@ -13952,15 +13745,6 @@ __metadata: languageName: node linkType: hard -"@types/yargs@npm:^15.0.0": - version: 15.0.14 - resolution: "@types/yargs@npm:15.0.14" - dependencies: - "@types/yargs-parser": "*" - checksum: 8e358aeb8f0c3758e59e2b8fcfdee5627ab2fe3d92f50f380503d966c7f33287be3322155516a50d27727fde1ad3878f48f60cd6648439126d4b0bbb1a1153ed - languageName: node - linkType: hard - "@types/yargs@npm:^16.0.0": version: 16.0.4 resolution: "@types/yargs@npm:16.0.4" @@ -14272,23 +14056,6 @@ __metadata: languageName: node linkType: hard -"@vitejs/plugin-react@npm:^2.0.0": - version: 2.0.1 - resolution: "@vitejs/plugin-react@npm:2.0.1" - dependencies: - "@babel/core": ^7.18.10 - "@babel/plugin-transform-react-jsx": ^7.18.10 - "@babel/plugin-transform-react-jsx-development": ^7.18.6 - "@babel/plugin-transform-react-jsx-self": ^7.18.6 - "@babel/plugin-transform-react-jsx-source": ^7.18.6 - magic-string: ^0.26.2 - react-refresh: ^0.14.0 - peerDependencies: - vite: ^3.0.0 - checksum: 90702768ee34bd7e5021398ab827c682cfe1ebfce0988a532a678b664d80b9ad991d1c24f81045626b811c9aa2aae7d9d0fd563db5c6b7b8fd36c8eecdfc04b9 - languageName: node - linkType: hard - "@vitejs/plugin-react@npm:^2.2.0": version: 2.2.0 resolution: "@vitejs/plugin-react@npm:2.2.0" @@ -14306,388 +14073,207 @@ __metadata: languageName: node linkType: hard -"@vitest/expect@npm:0.34.3": - version: 0.34.3 - resolution: "@vitest/expect@npm:0.34.3" +"@vitest/expect@npm:0.34.6": + version: 0.34.6 + resolution: "@vitest/expect@npm:0.34.6" dependencies: - "@vitest/spy": 0.34.3 - "@vitest/utils": 0.34.3 - chai: ^4.3.7 - checksum: 79afaa37d2efb7bb5503332caf389860b2261f198dbe61557e8061262b628d18658e59eb51d1808ecd35fc59f4bb4d04c0e0f97a27c7db02584ab5b424147b8d + "@vitest/spy": 0.34.6 + "@vitest/utils": 0.34.6 + chai: ^4.3.10 + checksum: 37a526f4af7e73fc56b71ba1139d6d93ff1972315d0e0691de967179298d2ad086e8803d2b28defe0e97a1326d808cd886e4b802d1691d8894cb234e35ed5185 languageName: node linkType: hard -"@vitest/runner@npm:0.34.3": - version: 0.34.3 - resolution: "@vitest/runner@npm:0.34.3" +"@vitest/runner@npm:0.34.6": + version: 0.34.6 + resolution: "@vitest/runner@npm:0.34.6" dependencies: - "@vitest/utils": 0.34.3 + "@vitest/utils": 0.34.6 p-limit: ^4.0.0 pathe: ^1.1.1 - checksum: 945580eaa58e8edbe29a64059bc2a524a9e85117b6d600fdb457cfe84cbfb81bf6d7e98e1227e7cb4e7399992c8fe8d83d0791d0385ff005dc1a4d9da125443b + checksum: 0357f0a11f4e1e170099f9125e379bbe8049a59faa7b34b919b3e5ee8927f30824c2b3ebb814b6a77c75ec35a30bf9adb8ec2b5e051525b4edd0d17be15725cc languageName: node linkType: hard -"@vitest/snapshot@npm:0.34.3": - version: 0.34.3 - resolution: "@vitest/snapshot@npm:0.34.3" +"@vitest/snapshot@npm:0.34.6": + version: 0.34.6 + resolution: "@vitest/snapshot@npm:0.34.6" dependencies: magic-string: ^0.30.1 pathe: ^1.1.1 pretty-format: ^29.5.0 - checksum: 234893e91a1efd4bdbbde047a68de40975e02ead8407724ce8ca4a24edf0fb2d725f8a3efceb104965388407b598faf22407aadfbf4164cc74b3cf1e0e9f4543 + checksum: c2f164b23741cdf10f449575a0f9996cf385675d0f76d2eb696f53b614743811f2fbefdc5eb0fd3f9544ccfbb566d57a5c50a70595167458579d56429b09151f languageName: node linkType: hard -"@vitest/spy@npm:0.34.3": - version: 0.34.3 - resolution: "@vitest/spy@npm:0.34.3" +"@vitest/spy@npm:0.34.6": + version: 0.34.6 + resolution: "@vitest/spy@npm:0.34.6" dependencies: tinyspy: ^2.1.1 - checksum: a2b64b9c357a56ad2f2340ecd225ffe787e61afba4ffb24a6670aad3fc90ea2606ed48daa188ed62b3ef67d55c0259fda6b101143d6c91b58c9ac4298d8be4f9 + checksum: b05e5906f2f489a3234a0380a21cb48635915aa7f28eac92a595e78e9ceefb95340311635e39684b32fff20f9c58fdc33488eeddee39a660cd94c9c6bc2febf7 languageName: node linkType: hard -"@vitest/utils@npm:0.34.3": - version: 0.34.3 - resolution: "@vitest/utils@npm:0.34.3" +"@vitest/utils@npm:0.34.6": + version: 0.34.6 + resolution: "@vitest/utils@npm:0.34.6" dependencies: diff-sequences: ^29.4.3 loupe: ^2.3.6 pretty-format: ^29.5.0 - checksum: aeb8ef7fd98b32cb6c403796880d0aa8f5411bbdb249bb23b3301a70e1b7d1ee025ddb204aae8c1db5756f6ac428c49ebbb8e2ed23ce185c8a659b67413efa85 + checksum: acf716af2bab66037e49bd6d3e8bae40b605b9bff515d4926c46d6f8cc2366decfac5a1756ea55029968e71fba1da1f992764c3a57c9b46eccce3f6db7197bd6 languageName: node linkType: hard -"@webassemblyjs/ast@npm:1.11.1": - version: 1.11.1 - resolution: "@webassemblyjs/ast@npm:1.11.1" +"@webassemblyjs/ast@npm:1.11.6, @webassemblyjs/ast@npm:^1.11.5": + version: 1.11.6 + resolution: "@webassemblyjs/ast@npm:1.11.6" dependencies: - "@webassemblyjs/helper-numbers": 1.11.1 - "@webassemblyjs/helper-wasm-bytecode": 1.11.1 - checksum: 1eee1534adebeece635362f8e834ae03e389281972611408d64be7895fc49f48f98fddbbb5339bf8a72cb101bcb066e8bca3ca1bf1ef47dadf89def0395a8d87 + "@webassemblyjs/helper-numbers": 1.11.6 + "@webassemblyjs/helper-wasm-bytecode": 1.11.6 + checksum: 38ef1b526ca47c210f30975b06df2faf1a8170b1636ce239fc5738fc231ce28389dd61ecedd1bacfc03cbe95b16d1af848c805652080cb60982836eb4ed2c6cf languageName: node linkType: hard -"@webassemblyjs/ast@npm:1.9.0": - version: 1.9.0 - resolution: "@webassemblyjs/ast@npm:1.9.0" +"@webassemblyjs/floating-point-hex-parser@npm:1.11.6": + version: 1.11.6 + resolution: "@webassemblyjs/floating-point-hex-parser@npm:1.11.6" + checksum: 29b08758841fd8b299c7152eda36b9eb4921e9c584eb4594437b5cd90ed6b920523606eae7316175f89c20628da14326801090167cc7fbffc77af448ac84b7e2 + languageName: node + linkType: hard + +"@webassemblyjs/helper-api-error@npm:1.11.6": + version: 1.11.6 + resolution: "@webassemblyjs/helper-api-error@npm:1.11.6" + checksum: e8563df85161096343008f9161adb138a6e8f3c2cc338d6a36011aa55eabb32f2fd138ffe63bc278d009ada001cc41d263dadd1c0be01be6c2ed99076103689f + languageName: node + linkType: hard + +"@webassemblyjs/helper-buffer@npm:1.11.6": + version: 1.11.6 + resolution: "@webassemblyjs/helper-buffer@npm:1.11.6" + checksum: b14d0573bf680d22b2522e8a341ec451fddd645d1f9c6bd9012ccb7e587a2973b86ab7b89fe91e1c79939ba96095f503af04369a3b356c8023c13a5893221644 + languageName: node + linkType: hard + +"@webassemblyjs/helper-numbers@npm:1.11.6": + version: 1.11.6 + resolution: "@webassemblyjs/helper-numbers@npm:1.11.6" dependencies: - "@webassemblyjs/helper-module-context": 1.9.0 - "@webassemblyjs/helper-wasm-bytecode": 1.9.0 - "@webassemblyjs/wast-parser": 1.9.0 - checksum: 8a9838dc7fdac358aee8daa75eefa35934ab18dafb594092ff7be79c467ebe9dabb2543e58313c905fd802bdcc3cb8320e4e19af7444e49853a7a24e25138f75 - languageName: node - linkType: hard - -"@webassemblyjs/floating-point-hex-parser@npm:1.11.1": - version: 1.11.1 - resolution: "@webassemblyjs/floating-point-hex-parser@npm:1.11.1" - checksum: b8efc6fa08e4787b7f8e682182d84dfdf8da9d9c77cae5d293818bc4a55c1f419a87fa265ab85252b3e6c1fd323d799efea68d825d341a7c365c64bc14750e97 - languageName: node - linkType: hard - -"@webassemblyjs/floating-point-hex-parser@npm:1.9.0": - version: 1.9.0 - resolution: "@webassemblyjs/floating-point-hex-parser@npm:1.9.0" - checksum: d3aeb19bc30da26f639698daa28e44e0c18d5aa135359ef3c54148e194eec46451a912d0506099d479a71a94bc3eef6ef52d6ec234799528a25a9744789852de - languageName: node - linkType: hard - -"@webassemblyjs/helper-api-error@npm:1.11.1": - version: 1.11.1 - resolution: "@webassemblyjs/helper-api-error@npm:1.11.1" - checksum: 0792813f0ed4a0e5ee0750e8b5d0c631f08e927f4bdfdd9fe9105dc410c786850b8c61bff7f9f515fdfb149903bec3c976a1310573a4c6866a94d49bc7271959 - languageName: node - linkType: hard - -"@webassemblyjs/helper-api-error@npm:1.9.0": - version: 1.9.0 - resolution: "@webassemblyjs/helper-api-error@npm:1.9.0" - checksum: 9179d3148639cc202e89a118145b485cf834613260679a99af6ec487bbc15f238566ca713207394b336160a41bf8c1b75cf2e853b3e96f0cc73c1e5c735b3f64 - languageName: node - linkType: hard - -"@webassemblyjs/helper-buffer@npm:1.11.1": - version: 1.11.1 - resolution: "@webassemblyjs/helper-buffer@npm:1.11.1" - checksum: a337ee44b45590c3a30db5a8b7b68a717526cf967ada9f10253995294dbd70a58b2da2165222e0b9830cd4fc6e4c833bf441a721128d1fe2e9a7ab26b36003ce - languageName: node - linkType: hard - -"@webassemblyjs/helper-buffer@npm:1.9.0": - version: 1.9.0 - resolution: "@webassemblyjs/helper-buffer@npm:1.9.0" - checksum: dcb85f630f8a2e22b7346ad4dd58c3237a2cad1457699423e8fd19592a0bd3eacbc2639178a1b9a873c3ac217bfc7a23a134ff440a099496b590e82c7a4968d5 - languageName: node - linkType: hard - -"@webassemblyjs/helper-code-frame@npm:1.9.0": - version: 1.9.0 - resolution: "@webassemblyjs/helper-code-frame@npm:1.9.0" - dependencies: - "@webassemblyjs/wast-printer": 1.9.0 - checksum: a28fa057f7beff0fd14bff716561520f8edb8c9c56c7a5559451e6765acfb70aaeb8af718ea2bd2262e7baeba597545af407e28eb2eff8329235afe8605f20d1 - languageName: node - linkType: hard - -"@webassemblyjs/helper-fsm@npm:1.9.0": - version: 1.9.0 - resolution: "@webassemblyjs/helper-fsm@npm:1.9.0" - checksum: 374cc510c8f5a7a07d4fe9eb7036cc475a96a670b5d25c31f16757ac8295be8d03a2f29657ff53eaefa9e8315670a48824d430ed910e7c1835788ac79f93124e - languageName: node - linkType: hard - -"@webassemblyjs/helper-module-context@npm:1.9.0": - version: 1.9.0 - resolution: "@webassemblyjs/helper-module-context@npm:1.9.0" - dependencies: - "@webassemblyjs/ast": 1.9.0 - checksum: 55e8f89c7ea1beaa78fad88403f3753b8413b0f3b6bb32d898ce95078b3e1d1b48ade0919c00b82fc2e3813c0ab6901e415f7a4d4fa9be50944e2431adde75a5 - languageName: node - linkType: hard - -"@webassemblyjs/helper-numbers@npm:1.11.1": - version: 1.11.1 - resolution: "@webassemblyjs/helper-numbers@npm:1.11.1" - dependencies: - "@webassemblyjs/floating-point-hex-parser": 1.11.1 - "@webassemblyjs/helper-api-error": 1.11.1 + "@webassemblyjs/floating-point-hex-parser": 1.11.6 + "@webassemblyjs/helper-api-error": 1.11.6 "@xtuc/long": 4.2.2 - checksum: 44d2905dac2f14d1e9b5765cf1063a0fa3d57295c6d8930f6c59a36462afecc6e763e8a110b97b342a0f13376166c5d41aa928e6ced92e2f06b071fd0db59d3a + checksum: f4b562fa219f84368528339e0f8d273ad44e047a07641ffcaaec6f93e5b76fd86490a009aa91a294584e1436d74b0a01fa9fde45e333a4c657b58168b04da424 languageName: node linkType: hard -"@webassemblyjs/helper-wasm-bytecode@npm:1.11.1": - version: 1.11.1 - resolution: "@webassemblyjs/helper-wasm-bytecode@npm:1.11.1" - checksum: eac400113127832c88f5826bcc3ad1c0db9b3dbd4c51a723cfdb16af6bfcbceb608170fdaac0ab7731a7e18b291be7af68a47fcdb41cfe0260c10857e7413d97 +"@webassemblyjs/helper-wasm-bytecode@npm:1.11.6": + version: 1.11.6 + resolution: "@webassemblyjs/helper-wasm-bytecode@npm:1.11.6" + checksum: 3535ef4f1fba38de3475e383b3980f4bbf3de72bbb631c2b6584c7df45be4eccd62c6ff48b5edd3f1bcff275cfd605a37679ec199fc91fd0a7705d7f1e3972dc languageName: node linkType: hard -"@webassemblyjs/helper-wasm-bytecode@npm:1.9.0": - version: 1.9.0 - resolution: "@webassemblyjs/helper-wasm-bytecode@npm:1.9.0" - checksum: 280da4df3c556f73a1a02053277f8a4be481de32df4aa21050b015c8f4d27c46af89f0417eb88e486df117e5df4bccffae593f78cb1e79f212d3b3d4f3ed0f04 - languageName: node - linkType: hard - -"@webassemblyjs/helper-wasm-section@npm:1.11.1": - version: 1.11.1 - resolution: "@webassemblyjs/helper-wasm-section@npm:1.11.1" +"@webassemblyjs/helper-wasm-section@npm:1.11.6": + version: 1.11.6 + resolution: "@webassemblyjs/helper-wasm-section@npm:1.11.6" dependencies: - "@webassemblyjs/ast": 1.11.1 - "@webassemblyjs/helper-buffer": 1.11.1 - "@webassemblyjs/helper-wasm-bytecode": 1.11.1 - "@webassemblyjs/wasm-gen": 1.11.1 - checksum: 617696cfe8ecaf0532763162aaf748eb69096fb27950219bb87686c6b2e66e11cd0614d95d319d0ab1904bc14ebe4e29068b12c3e7c5e020281379741fe4bedf + "@webassemblyjs/ast": 1.11.6 + "@webassemblyjs/helper-buffer": 1.11.6 + "@webassemblyjs/helper-wasm-bytecode": 1.11.6 + "@webassemblyjs/wasm-gen": 1.11.6 + checksum: b2cf751bf4552b5b9999d27bbb7692d0aca75260140195cb58ea6374d7b9c2dc69b61e10b211a0e773f66209c3ddd612137ed66097e3684d7816f854997682e9 languageName: node linkType: hard -"@webassemblyjs/helper-wasm-section@npm:1.9.0": - version: 1.9.0 - resolution: "@webassemblyjs/helper-wasm-section@npm:1.9.0" - dependencies: - "@webassemblyjs/ast": 1.9.0 - "@webassemblyjs/helper-buffer": 1.9.0 - "@webassemblyjs/helper-wasm-bytecode": 1.9.0 - "@webassemblyjs/wasm-gen": 1.9.0 - checksum: b8f7bb45d4194074c82210211a5d3e402a5b5fa63ecae26d2c356ae3978af5a530e91192fb260f32f9d561b18e2828b3da2e2f41c59efadb5f3c6d72446807f0 - languageName: node - linkType: hard - -"@webassemblyjs/ieee754@npm:1.11.1": - version: 1.11.1 - resolution: "@webassemblyjs/ieee754@npm:1.11.1" +"@webassemblyjs/ieee754@npm:1.11.6": + version: 1.11.6 + resolution: "@webassemblyjs/ieee754@npm:1.11.6" dependencies: "@xtuc/ieee754": ^1.2.0 - checksum: 23a0ac02a50f244471631802798a816524df17e56b1ef929f0c73e3cde70eaf105a24130105c60aff9d64a24ce3b640dad443d6f86e5967f922943a7115022ec + checksum: 13574b8e41f6ca39b700e292d7edf102577db5650fe8add7066a320aa4b7a7c09a5056feccac7a74eb68c10dea9546d4461412af351f13f6b24b5f32379b49de languageName: node linkType: hard -"@webassemblyjs/ieee754@npm:1.9.0": - version: 1.9.0 - resolution: "@webassemblyjs/ieee754@npm:1.9.0" - dependencies: - "@xtuc/ieee754": ^1.2.0 - checksum: 7fe4a217ba0f7051e2cfef92919d4a64fac1a63c65411763779bd50907820f33f440255231a474fe3ba03bd1d9ee0328662d1eae3fce4c59b91549d6b62b839b - languageName: node - linkType: hard - -"@webassemblyjs/leb128@npm:1.11.1": - version: 1.11.1 - resolution: "@webassemblyjs/leb128@npm:1.11.1" +"@webassemblyjs/leb128@npm:1.11.6": + version: 1.11.6 + resolution: "@webassemblyjs/leb128@npm:1.11.6" dependencies: "@xtuc/long": 4.2.2 - checksum: 33ccc4ade2f24de07bf31690844d0b1ad224304ee2062b0e464a610b0209c79e0b3009ac190efe0e6bd568b0d1578d7c3047fc1f9d0197c92fc061f56224ff4a + checksum: 7ea942dc9777d4b18a5ebfa3a937b30ae9e1d2ce1fee637583ed7f376334dd1d4274f813d2e250056cca803e0952def4b954913f1a3c9068bcd4ab4ee5143bf0 languageName: node linkType: hard -"@webassemblyjs/leb128@npm:1.9.0": - version: 1.9.0 - resolution: "@webassemblyjs/leb128@npm:1.9.0" +"@webassemblyjs/utf8@npm:1.11.6": + version: 1.11.6 + resolution: "@webassemblyjs/utf8@npm:1.11.6" + checksum: 807fe5b5ce10c390cfdd93e0fb92abda8aebabb5199980681e7c3743ee3306a75729bcd1e56a3903980e96c885ee53ef901fcbaac8efdfa480f9c0dae1d08713 + languageName: node + linkType: hard + +"@webassemblyjs/wasm-edit@npm:^1.11.5": + version: 1.11.6 + resolution: "@webassemblyjs/wasm-edit@npm:1.11.6" dependencies: + "@webassemblyjs/ast": 1.11.6 + "@webassemblyjs/helper-buffer": 1.11.6 + "@webassemblyjs/helper-wasm-bytecode": 1.11.6 + "@webassemblyjs/helper-wasm-section": 1.11.6 + "@webassemblyjs/wasm-gen": 1.11.6 + "@webassemblyjs/wasm-opt": 1.11.6 + "@webassemblyjs/wasm-parser": 1.11.6 + "@webassemblyjs/wast-printer": 1.11.6 + checksum: 29ce75870496d6fad864d815ebb072395a8a3a04dc9c3f4e1ffdc63fc5fa58b1f34304a1117296d8240054cfdbc38aca88e71fb51483cf29ffab0a61ef27b481 + languageName: node + linkType: hard + +"@webassemblyjs/wasm-gen@npm:1.11.6": + version: 1.11.6 + resolution: "@webassemblyjs/wasm-gen@npm:1.11.6" + dependencies: + "@webassemblyjs/ast": 1.11.6 + "@webassemblyjs/helper-wasm-bytecode": 1.11.6 + "@webassemblyjs/ieee754": 1.11.6 + "@webassemblyjs/leb128": 1.11.6 + "@webassemblyjs/utf8": 1.11.6 + checksum: a645a2eecbea24833c3260a249704a7f554ef4a94c6000984728e94bb2bc9140a68dfd6fd21d5e0bbb09f6dfc98e083a45760a83ae0417b41a0196ff6d45a23a + languageName: node + linkType: hard + +"@webassemblyjs/wasm-opt@npm:1.11.6": + version: 1.11.6 + resolution: "@webassemblyjs/wasm-opt@npm:1.11.6" + dependencies: + "@webassemblyjs/ast": 1.11.6 + "@webassemblyjs/helper-buffer": 1.11.6 + "@webassemblyjs/wasm-gen": 1.11.6 + "@webassemblyjs/wasm-parser": 1.11.6 + checksum: b4557f195487f8e97336ddf79f7bef40d788239169aac707f6eaa2fa5fe243557c2d74e550a8e57f2788e70c7ae4e7d32f7be16101afe183d597b747a3bdd528 + languageName: node + linkType: hard + +"@webassemblyjs/wasm-parser@npm:1.11.6, @webassemblyjs/wasm-parser@npm:^1.11.5": + version: 1.11.6 + resolution: "@webassemblyjs/wasm-parser@npm:1.11.6" + dependencies: + "@webassemblyjs/ast": 1.11.6 + "@webassemblyjs/helper-api-error": 1.11.6 + "@webassemblyjs/helper-wasm-bytecode": 1.11.6 + "@webassemblyjs/ieee754": 1.11.6 + "@webassemblyjs/leb128": 1.11.6 + "@webassemblyjs/utf8": 1.11.6 + checksum: 8200a8d77c15621724a23fdabe58d5571415cda98a7058f542e670ea965dd75499f5e34a48675184947c66f3df23adf55df060312e6d72d57908e3f049620d8a + languageName: node + linkType: hard + +"@webassemblyjs/wast-printer@npm:1.11.6": + version: 1.11.6 + resolution: "@webassemblyjs/wast-printer@npm:1.11.6" + dependencies: + "@webassemblyjs/ast": 1.11.6 "@xtuc/long": 4.2.2 - checksum: 4ca7cbb869530d78d42a414f34ae53249364cb1ecebbfb6ed5d562c2f209fce857502f088822ee82a23876f653a262ddc34ab64e45a7962510a263d39bb3f51a - languageName: node - linkType: hard - -"@webassemblyjs/utf8@npm:1.11.1": - version: 1.11.1 - resolution: "@webassemblyjs/utf8@npm:1.11.1" - checksum: 972c5cfc769d7af79313a6bfb96517253a270a4bf0c33ba486aa43cac43917184fb35e51dfc9e6b5601548cd5931479a42e42c89a13bb591ffabebf30c8a6a0b - languageName: node - linkType: hard - -"@webassemblyjs/utf8@npm:1.9.0": - version: 1.9.0 - resolution: "@webassemblyjs/utf8@npm:1.9.0" - checksum: e328a30ac8a503bbd015d32e75176e0dedcb45a21d4be051c25dfe89a00035ca7a6dbd8937b442dd5b4b334de3959d4f5fe0b330037bd226a28b9814cd49e84f - languageName: node - linkType: hard - -"@webassemblyjs/wasm-edit@npm:1.11.1": - version: 1.11.1 - resolution: "@webassemblyjs/wasm-edit@npm:1.11.1" - dependencies: - "@webassemblyjs/ast": 1.11.1 - "@webassemblyjs/helper-buffer": 1.11.1 - "@webassemblyjs/helper-wasm-bytecode": 1.11.1 - "@webassemblyjs/helper-wasm-section": 1.11.1 - "@webassemblyjs/wasm-gen": 1.11.1 - "@webassemblyjs/wasm-opt": 1.11.1 - "@webassemblyjs/wasm-parser": 1.11.1 - "@webassemblyjs/wast-printer": 1.11.1 - checksum: 6d7d9efaec1227e7ef7585a5d7ff0be5f329f7c1c6b6c0e906b18ed2e9a28792a5635e450aca2d136770d0207225f204eff70a4b8fd879d3ac79e1dcc26dbeb9 - languageName: node - linkType: hard - -"@webassemblyjs/wasm-edit@npm:1.9.0": - version: 1.9.0 - resolution: "@webassemblyjs/wasm-edit@npm:1.9.0" - dependencies: - "@webassemblyjs/ast": 1.9.0 - "@webassemblyjs/helper-buffer": 1.9.0 - "@webassemblyjs/helper-wasm-bytecode": 1.9.0 - "@webassemblyjs/helper-wasm-section": 1.9.0 - "@webassemblyjs/wasm-gen": 1.9.0 - "@webassemblyjs/wasm-opt": 1.9.0 - "@webassemblyjs/wasm-parser": 1.9.0 - "@webassemblyjs/wast-printer": 1.9.0 - checksum: 1997e0c2f4051c33239587fb143242919320bc861a0af03a873c7150a27d6404bd2e063c658193288b0aa88c35aadbe0c4fde601fe642bae0743a8c8eda52717 - languageName: node - linkType: hard - -"@webassemblyjs/wasm-gen@npm:1.11.1": - version: 1.11.1 - resolution: "@webassemblyjs/wasm-gen@npm:1.11.1" - dependencies: - "@webassemblyjs/ast": 1.11.1 - "@webassemblyjs/helper-wasm-bytecode": 1.11.1 - "@webassemblyjs/ieee754": 1.11.1 - "@webassemblyjs/leb128": 1.11.1 - "@webassemblyjs/utf8": 1.11.1 - checksum: 1f6921e640293bf99fb16b21e09acb59b340a79f986c8f979853a0ae9f0b58557534b81e02ea2b4ef11e929d946708533fd0693c7f3712924128fdafd6465f5b - languageName: node - linkType: hard - -"@webassemblyjs/wasm-gen@npm:1.9.0": - version: 1.9.0 - resolution: "@webassemblyjs/wasm-gen@npm:1.9.0" - dependencies: - "@webassemblyjs/ast": 1.9.0 - "@webassemblyjs/helper-wasm-bytecode": 1.9.0 - "@webassemblyjs/ieee754": 1.9.0 - "@webassemblyjs/leb128": 1.9.0 - "@webassemblyjs/utf8": 1.9.0 - checksum: 2456e84e8e6bedb7ab47f6333a0ee170f7ef62842c90862ca787c08528ca8041061f3f8bc257fc2a01bf6e8d1a76fddaddd43418c738f681066e5b50f88fe7df - languageName: node - linkType: hard - -"@webassemblyjs/wasm-opt@npm:1.11.1": - version: 1.11.1 - resolution: "@webassemblyjs/wasm-opt@npm:1.11.1" - dependencies: - "@webassemblyjs/ast": 1.11.1 - "@webassemblyjs/helper-buffer": 1.11.1 - "@webassemblyjs/wasm-gen": 1.11.1 - "@webassemblyjs/wasm-parser": 1.11.1 - checksum: 21586883a20009e2b20feb67bdc451bbc6942252e038aae4c3a08e6f67b6bae0f5f88f20bfc7bd0452db5000bacaf5ab42b98cf9aa034a6c70e9fc616142e1db - languageName: node - linkType: hard - -"@webassemblyjs/wasm-opt@npm:1.9.0": - version: 1.9.0 - resolution: "@webassemblyjs/wasm-opt@npm:1.9.0" - dependencies: - "@webassemblyjs/ast": 1.9.0 - "@webassemblyjs/helper-buffer": 1.9.0 - "@webassemblyjs/wasm-gen": 1.9.0 - "@webassemblyjs/wasm-parser": 1.9.0 - checksum: 91242205bdbd1aa8045364a5338bfb34880cb2c65f56db8dd19382894209673699fb31a0e5279f25c7e5bcd8f3097d6c9ca84d8969d9613ef2cf166450cc3515 - languageName: node - linkType: hard - -"@webassemblyjs/wasm-parser@npm:1.11.1": - version: 1.11.1 - resolution: "@webassemblyjs/wasm-parser@npm:1.11.1" - dependencies: - "@webassemblyjs/ast": 1.11.1 - "@webassemblyjs/helper-api-error": 1.11.1 - "@webassemblyjs/helper-wasm-bytecode": 1.11.1 - "@webassemblyjs/ieee754": 1.11.1 - "@webassemblyjs/leb128": 1.11.1 - "@webassemblyjs/utf8": 1.11.1 - checksum: 1521644065c360e7b27fad9f4bb2df1802d134dd62937fa1f601a1975cde56bc31a57b6e26408b9ee0228626ff3ba1131ae6f74ffb7d718415b6528c5a6dbfc2 - languageName: node - linkType: hard - -"@webassemblyjs/wasm-parser@npm:1.9.0": - version: 1.9.0 - resolution: "@webassemblyjs/wasm-parser@npm:1.9.0" - dependencies: - "@webassemblyjs/ast": 1.9.0 - "@webassemblyjs/helper-api-error": 1.9.0 - "@webassemblyjs/helper-wasm-bytecode": 1.9.0 - "@webassemblyjs/ieee754": 1.9.0 - "@webassemblyjs/leb128": 1.9.0 - "@webassemblyjs/utf8": 1.9.0 - checksum: 493f6cfc63a5e16073056c81ff0526a9936f461327379ef3c83cc841000e03623b6352704f6bf9f7cb5b3610f0032020a61f9cca78c91b15b8e995854b29c098 - languageName: node - linkType: hard - -"@webassemblyjs/wast-parser@npm:1.9.0": - version: 1.9.0 - resolution: "@webassemblyjs/wast-parser@npm:1.9.0" - dependencies: - "@webassemblyjs/ast": 1.9.0 - "@webassemblyjs/floating-point-hex-parser": 1.9.0 - "@webassemblyjs/helper-api-error": 1.9.0 - "@webassemblyjs/helper-code-frame": 1.9.0 - "@webassemblyjs/helper-fsm": 1.9.0 - "@xtuc/long": 4.2.2 - checksum: 705dd48fbbceec7f6bed299b8813631b242fd9312f9594dbb2985dda86c9688048692357d684f6080fc2c5666287cefaa26b263d01abadb6a9049d4c8978b9db - languageName: node - linkType: hard - -"@webassemblyjs/wast-printer@npm:1.11.1": - version: 1.11.1 - resolution: "@webassemblyjs/wast-printer@npm:1.11.1" - dependencies: - "@webassemblyjs/ast": 1.11.1 - "@xtuc/long": 4.2.2 - checksum: f15ae4c2441b979a3b4fce78f3d83472fb22350c6dc3fd34bfe7c3da108e0b2360718734d961bba20e7716cb8578e964b870da55b035e209e50ec9db0378a3f7 - languageName: node - linkType: hard - -"@webassemblyjs/wast-printer@npm:1.9.0": - version: 1.9.0 - resolution: "@webassemblyjs/wast-printer@npm:1.9.0" - dependencies: - "@webassemblyjs/ast": 1.9.0 - "@webassemblyjs/wast-parser": 1.9.0 - "@xtuc/long": 4.2.2 - checksum: 3d1e1b2e84745a963f69acd1c02425b321dd2e608e11dabc467cae0c9a808962bc769ec9afc46fbcea7188cc1e47d72370da762d258f716fb367cb1a7865c54b + checksum: d2fa6a4c427325ec81463e9c809aa6572af6d47f619f3091bf4c4a6fc34f1da3df7caddaac50b8e7a457f8784c62cd58c6311b6cb69b0162ccd8d4c072f79cf8 languageName: node linkType: hard @@ -14836,6 +14422,37 @@ __metadata: languageName: node linkType: hard +"@yarnpkg/esbuild-plugin-pnp@npm:^3.0.0-rc.10": + version: 3.0.0-rc.15 + resolution: "@yarnpkg/esbuild-plugin-pnp@npm:3.0.0-rc.15" + dependencies: + tslib: ^2.4.0 + peerDependencies: + esbuild: ">=0.10.0" + checksum: 04da15355a99773b441742814ba4d0f3453a83df47aa07e215f167e156f109ab8e971489c8b1a4ddf3c79d568d35213f496ad52e97298228597e1aacc22680aa + languageName: node + linkType: hard + +"@yarnpkg/fslib@npm:2.10.3": + version: 2.10.3 + resolution: "@yarnpkg/fslib@npm:2.10.3" + dependencies: + "@yarnpkg/libzip": ^2.3.0 + tslib: ^1.13.0 + checksum: 0ca693f61d47bcf165411a121ed9123f512b1b5bfa5e1c6c8f280b4ffdbea9bf2a6db418f99ecfc9624587fdc695b2b64eb0fe7b4028e44095914b25ca99655e + languageName: node + linkType: hard + +"@yarnpkg/libzip@npm:2.3.0, @yarnpkg/libzip@npm:^2.3.0": + version: 2.3.0 + resolution: "@yarnpkg/libzip@npm:2.3.0" + dependencies: + "@types/emscripten": ^1.39.6 + tslib: ^1.13.0 + checksum: 533a4883f69bb013f955d80dc19719881697e6849ea5f0cbe6d87ef1d582b05cbae8a453802f92ad0c852f976296cac3ff7834be79a7e415b65cdf213e448110 + languageName: node + linkType: hard + "WipeMyCal@workspace:packages/app-store/wipemycalother": version: 0.0.0-use.local resolution: "WipeMyCal@workspace:packages/app-store/wipemycalother" @@ -14869,13 +14486,6 @@ __metadata: languageName: node linkType: hard -"abortcontroller-polyfill@npm:^1.7.3": - version: 1.7.3 - resolution: "abortcontroller-polyfill@npm:1.7.3" - checksum: 55739d7f0c9bd6afa2aabb3148778967c4dd4dcff91f6b9259df38da34f9882d3f7730b0954e9767a19cc16a8dd9a58915da4e8a50220300d45af3817d7557b1 - languageName: node - linkType: hard - "abstract-leveldown@npm:~0.12.0, abstract-leveldown@npm:~0.12.1": version: 0.12.4 resolution: "abstract-leveldown@npm:0.12.4" @@ -14902,12 +14512,12 @@ __metadata: languageName: node linkType: hard -"acorn-import-assertions@npm:^1.7.6": - version: 1.8.0 - resolution: "acorn-import-assertions@npm:1.8.0" +"acorn-import-assertions@npm:^1.9.0": + version: 1.9.0 + resolution: "acorn-import-assertions@npm:1.9.0" peerDependencies: acorn: ^8 - checksum: 5c4cf7c850102ba7ae0eeae0deb40fb3158c8ca5ff15c0bca43b5c47e307a1de3d8ef761788f881343680ea374631ae9e9615ba8876fee5268dbe068c98bcba6 + checksum: 944fb2659d0845c467066bdcda2e20c05abe3aaf11972116df457ce2627628a81764d800dd55031ba19de513ee0d43bb771bc679cc0eda66dc8b4fade143bc0c languageName: node linkType: hard @@ -14943,15 +14553,6 @@ __metadata: languageName: node linkType: hard -"acorn@npm:^6.4.1": - version: 6.4.2 - resolution: "acorn@npm:6.4.2" - bin: - acorn: bin/acorn - checksum: 44b07053729db7f44d28343eed32247ed56dc4a6ec6dff2b743141ecd6b861406bbc1c20bf9d4f143ea7dd08add5dc8c290582756539bc03a8db605050ce2fb4 - languageName: node - linkType: hard - "acorn@npm:^7.4.1": version: 7.4.1 resolution: "acorn@npm:7.4.1" @@ -14979,6 +14580,15 @@ __metadata: languageName: node linkType: hard +"acorn@npm:^8.11.2": + version: 8.11.2 + resolution: "acorn@npm:8.11.2" + bin: + acorn: bin/acorn + checksum: 818450408684da89423e3daae24e4dc9b68692db8ab49ea4569c7c5abb7a3f23669438bf129cc81dfdada95e1c9b944ee1bfca2c57a05a4dc73834a612fbf6a7 + languageName: node + linkType: hard + "acorn@npm:^8.5.0": version: 8.7.1 resolution: "acorn@npm:8.7.1" @@ -14988,7 +14598,7 @@ __metadata: languageName: node linkType: hard -"acorn@npm:^8.6.0, acorn@npm:^8.7.1, acorn@npm:^8.8.0": +"acorn@npm:^8.7.1, acorn@npm:^8.8.0": version: 8.8.0 resolution: "acorn@npm:8.8.0" bin: @@ -15030,6 +14640,13 @@ __metadata: languageName: node linkType: hard +"agent-base@npm:5": + version: 5.1.1 + resolution: "agent-base@npm:5.1.1" + checksum: 61ae789f3019f1dc10e8cba6d3ae9826949299a4e54aaa1cfa2fa37c95a108e70e95423b963bb987d7891a703fd9a5c383a506f4901819f3ee56f3147c0aa8ab + languageName: node + linkType: hard + "agent-base@npm:6, agent-base@npm:^6.0.2": version: 6.0.2 resolution: "agent-base@npm:6.0.2" @@ -15069,40 +14686,6 @@ __metadata: languageName: node linkType: hard -"airbnb-js-shims@npm:^2.2.1": - version: 2.2.1 - resolution: "airbnb-js-shims@npm:2.2.1" - dependencies: - array-includes: ^3.0.3 - array.prototype.flat: ^1.2.1 - array.prototype.flatmap: ^1.2.1 - es5-shim: ^4.5.13 - es6-shim: ^0.35.5 - function.prototype.name: ^1.1.0 - globalthis: ^1.0.0 - object.entries: ^1.1.0 - object.fromentries: ^2.0.0 || ^1.0.0 - object.getownpropertydescriptors: ^2.0.3 - object.values: ^1.1.0 - promise.allsettled: ^1.0.0 - promise.prototype.finally: ^3.1.0 - string.prototype.matchall: ^4.0.0 || ^3.0.1 - string.prototype.padend: ^3.0.0 - string.prototype.padstart: ^3.0.0 - symbol.prototype.description: ^1.0.0 - checksum: bdd96e4cac75a8a942fb93cb8b7150573363a9fb40ab8528997bc067f24ae83d3031165635075b1326e463dcf840cc036b2ceb554563e75a38faf0ca288407a3 - languageName: node - linkType: hard - -"ajv-errors@npm:^1.0.0": - version: 1.0.1 - resolution: "ajv-errors@npm:1.0.1" - peerDependencies: - ajv: ">=5.0.0" - checksum: 2c9fc02cf58f9aae5bace61ebd1b162e1ea372ae9db5999243ba5e32a9a78c0d635d29ae085f652c61c941a43af0b2b1acdb255e29d44dc43a6e021085716d8c - languageName: node - linkType: hard - "ajv-formats@npm:^2.1.1": version: 2.1.1 resolution: "ajv-formats@npm:2.1.1" @@ -15117,7 +14700,7 @@ __metadata: languageName: node linkType: hard -"ajv-keywords@npm:^3.1.0, ajv-keywords@npm:^3.4.1, ajv-keywords@npm:^3.5.2": +"ajv-keywords@npm:^3.5.2": version: 3.5.2 resolution: "ajv-keywords@npm:3.5.2" peerDependencies: @@ -15137,7 +14720,7 @@ __metadata: languageName: node linkType: hard -"ajv@npm:^6.1.0, ajv@npm:^6.10.0, ajv@npm:^6.10.2, ajv@npm:^6.12.2, ajv@npm:^6.12.3, ajv@npm:^6.12.4, ajv@npm:^6.12.5": +"ajv@npm:^6.10.0, ajv@npm:^6.12.3, ajv@npm:^6.12.4, ajv@npm:^6.12.5": version: 6.12.6 resolution: "ajv@npm:6.12.6" dependencies: @@ -15173,22 +14756,6 @@ __metadata: languageName: node linkType: hard -"ansi-align@npm:^3.0.0": - version: 3.0.1 - resolution: "ansi-align@npm:3.0.1" - dependencies: - string-width: ^4.1.0 - checksum: 6abfa08f2141d231c257162b15292467081fa49a208593e055c866aa0455b57f3a86b5a678c190c618faa79b4c59e254493099cb700dd9cf2293c6be2c8f5d8d - languageName: node - linkType: hard - -"ansi-colors@npm:^3.0.0": - version: 3.2.4 - resolution: "ansi-colors@npm:3.2.4" - checksum: 026c51880e9f8eb59b112669a87dbea4469939ff94b131606303bbd697438a6691b16b9db3027aa9bf132a244214e83ab1508b998496a34d2aea5b437ac9e62d - languageName: node - linkType: hard - "ansi-colors@npm:^4.1.1, ansi-colors@npm:^4.1.3": version: 4.1.3 resolution: "ansi-colors@npm:4.1.3" @@ -15281,17 +14848,6 @@ __metadata: languageName: node linkType: hard -"ansi-to-html@npm:^0.6.11": - version: 0.6.15 - resolution: "ansi-to-html@npm:0.6.15" - dependencies: - entities: ^2.0.0 - bin: - ansi-to-html: bin/ansi-to-html - checksum: c899362a29b92c8ae075b72168b826f7c233875b475719304942f80695e0ce4a6812845021192da5fb0ac80b10209b4fae5aede42620a1b1b3d3b30f3ef77a86 - languageName: node - linkType: hard - "ansicolors@npm:~0.3.2": version: 0.3.2 resolution: "ansicolors@npm:0.3.2" @@ -15313,17 +14869,7 @@ __metadata: languageName: node linkType: hard -"anymatch@npm:^2.0.0": - version: 2.0.0 - resolution: "anymatch@npm:2.0.0" - dependencies: - micromatch: ^3.1.4 - normalize-path: ^2.1.1 - checksum: f7bb1929842b4585cdc28edbb385767d499ce7d673f96a8f11348d2b2904592ffffc594fe9229b9a1e9e4dccb9329b7692f9f45e6a11dcefbb76ecdc9ab740f6 - languageName: node - linkType: hard - -"anymatch@npm:^3.0.0, anymatch@npm:^3.0.3, anymatch@npm:~3.1.2": +"anymatch@npm:^3.0.3, anymatch@npm:~3.1.2": version: 3.1.2 resolution: "anymatch@npm:3.1.2" dependencies: @@ -15361,13 +14907,6 @@ __metadata: languageName: node linkType: hard -"aproba@npm:^1.1.1": - version: 1.2.0 - resolution: "aproba@npm:1.2.0" - checksum: 0fca141966559d195072ed047658b6e6c4fe92428c385dd38e288eacfc55807e7b4989322f030faff32c0f46bb0bc10f1e0ac32ec22d25315a1e5bbc0ebb76dc - languageName: node - linkType: hard - "archiver-utils@npm:^2.1.0": version: 2.1.0 resolution: "archiver-utils@npm:2.1.0" @@ -15419,16 +14958,6 @@ __metadata: languageName: node linkType: hard -"are-we-there-yet@npm:^2.0.0": - version: 2.0.0 - resolution: "are-we-there-yet@npm:2.0.0" - dependencies: - delegates: ^1.0.0 - readable-stream: ^3.6.0 - checksum: 6c80b4fd04ecee6ba6e737e0b72a4b41bdc64b7d279edfc998678567ff583c8df27e27523bc789f2c99be603ffa9eaa612803da1d886962d2086e7ff6fa90c7c - languageName: node - linkType: hard - "are-we-there-yet@npm:^3.0.0": version: 3.0.1 resolution: "are-we-there-yet@npm:3.0.1" @@ -15494,6 +15023,15 @@ __metadata: languageName: node linkType: hard +"aria-query@npm:5.1.3": + version: 5.1.3 + resolution: "aria-query@npm:5.1.3" + dependencies: + deep-equal: ^2.0.5 + checksum: 929ff95f02857b650fb4cbcd2f41072eee2f46159a6605ea03bf63aa572e35ffdff43d69e815ddc462e16e07de8faba3978afc2813650b4448ee18c9895d982b + languageName: node + linkType: hard + "aria-query@npm:^4.2.2": version: 4.2.2 resolution: "aria-query@npm:4.2.2" @@ -15511,20 +15049,6 @@ __metadata: languageName: node linkType: hard -"arr-diff@npm:^4.0.0": - version: 4.0.0 - resolution: "arr-diff@npm:4.0.0" - checksum: ea7c8834842ad3869297f7915689bef3494fd5b102ac678c13ffccab672d3d1f35802b79e90c4cfec2f424af3392e44112d1ccf65da34562ed75e049597276a0 - languageName: node - linkType: hard - -"arr-flatten@npm:^1.1.0": - version: 1.1.0 - resolution: "arr-flatten@npm:1.1.0" - checksum: 963fe12564fca2f72c055f3f6c206b9e031f7c433a0c66ca9858b484821f248c5b1e5d53c8e4989d80d764cd776cf6d9b160ad05f47bdc63022bfd63b5455e22 - languageName: node - linkType: hard - "arr-rotate@npm:^1.0.0": version: 1.0.0 resolution: "arr-rotate@npm:1.0.0" @@ -15532,17 +15056,13 @@ __metadata: languageName: node linkType: hard -"arr-union@npm:^3.1.0": - version: 3.1.0 - resolution: "arr-union@npm:3.1.0" - checksum: b5b0408c6eb7591143c394f3be082fee690ddd21f0fdde0a0a01106799e847f67fcae1b7e56b0a0c173290e29c6aca9562e82b300708a268bc8f88f3d6613cb9 - languageName: node - linkType: hard - -"array-find-index@npm:^1.0.1": - version: 1.0.2 - resolution: "array-find-index@npm:1.0.2" - checksum: aac128bf369e1ac6c06ff0bb330788371c0e256f71279fb92d745e26fb4b9db8920e485b4ec25e841c93146bf71a34dcdbcefa115e7e0f96927a214d237b7081 +"array-buffer-byte-length@npm:^1.0.0": + version: 1.0.0 + resolution: "array-buffer-byte-length@npm:1.0.0" + dependencies: + call-bind: ^1.0.2 + is-array-buffer: ^3.0.1 + checksum: 044e101ce150f4804ad19c51d6c4d4cfa505c5b2577bd179256e4aa3f3f6a0a5e9874c78cd428ee566ac574c8a04d7ce21af9fe52e844abfdccb82b33035a7c3 languageName: node linkType: hard @@ -15560,19 +15080,6 @@ __metadata: languageName: node linkType: hard -"array-includes@npm:^3.0.3, array-includes@npm:^3.1.5": - version: 3.1.5 - resolution: "array-includes@npm:3.1.5" - dependencies: - call-bind: ^1.0.2 - define-properties: ^1.1.4 - es-abstract: ^1.19.5 - get-intrinsic: ^1.1.1 - is-string: ^1.0.7 - checksum: f6f24d834179604656b7bec3e047251d5cc87e9e87fab7c175c61af48e80e75acd296017abcde21fb52292ab6a2a449ab2ee37213ee48c8709f004d75983f9c5 - languageName: node - linkType: hard - "array-includes@npm:^3.1.4": version: 3.1.4 resolution: "array-includes@npm:3.1.4" @@ -15586,6 +15093,19 @@ __metadata: languageName: node linkType: hard +"array-includes@npm:^3.1.5": + version: 3.1.5 + resolution: "array-includes@npm:3.1.5" + dependencies: + call-bind: ^1.0.2 + define-properties: ^1.1.4 + es-abstract: ^1.19.5 + get-intrinsic: ^1.1.1 + is-string: ^1.0.7 + checksum: f6f24d834179604656b7bec3e047251d5cc87e9e87fab7c175c61af48e80e75acd296017abcde21fb52292ab6a2a449ab2ee37213ee48c8709f004d75983f9c5 + languageName: node + linkType: hard + "array-includes@npm:^3.1.6": version: 3.1.6 resolution: "array-includes@npm:3.1.6" @@ -15599,15 +15119,6 @@ __metadata: languageName: node linkType: hard -"array-union@npm:^1.0.2": - version: 1.0.2 - resolution: "array-union@npm:1.0.2" - dependencies: - array-uniq: ^1.0.1 - checksum: 82cec6421b6e6766556c484835a6d476a873f1b71cace5ab2b4f1b15b1e3162dc4da0d16f7a2b04d4aec18146c6638fe8f661340b31ba8e469fd811a1b45dc8d - languageName: node - linkType: hard - "array-union@npm:^2.1.0": version: 2.1.0 resolution: "array-union@npm:2.1.0" @@ -15615,32 +15126,6 @@ __metadata: languageName: node linkType: hard -"array-uniq@npm:^1.0.1": - version: 1.0.3 - resolution: "array-uniq@npm:1.0.3" - checksum: 1625f06b093d8bf279b81adfec6e72951c0857d65b5e3f65f053fffe9f9dd61c2fc52cff57e38a4700817e7e3f01a4faa433d505ea9e33cdae4514c334e0bf9e - languageName: node - linkType: hard - -"array-unique@npm:^0.3.2": - version: 0.3.2 - resolution: "array-unique@npm:0.3.2" - checksum: da344b89cfa6b0a5c221f965c21638bfb76b57b45184a01135382186924f55973cd9b171d4dad6bf606c6d9d36b0d721d091afdc9791535ead97ccbe78f8a888 - languageName: node - linkType: hard - -"array.prototype.flat@npm:^1.2.1": - version: 1.3.0 - resolution: "array.prototype.flat@npm:1.3.0" - dependencies: - call-bind: ^1.0.2 - define-properties: ^1.1.3 - es-abstract: ^1.19.2 - es-shim-unscopables: ^1.0.0 - checksum: 2a652b3e8dc0bebb6117e42a5ab5738af0203a14c27341d7bb2431467bdb4b348e2c5dc555dfcda8af0a5e4075c400b85311ded73861c87290a71a17c3e0a257 - languageName: node - linkType: hard - "array.prototype.flat@npm:^1.2.3": version: 1.3.1 resolution: "array.prototype.flat@npm:1.3.1" @@ -15664,7 +15149,7 @@ __metadata: languageName: node linkType: hard -"array.prototype.flatmap@npm:^1.2.1, array.prototype.flatmap@npm:^1.3.0": +"array.prototype.flatmap@npm:^1.3.0": version: 1.3.0 resolution: "array.prototype.flatmap@npm:1.3.0" dependencies: @@ -15688,32 +15173,6 @@ __metadata: languageName: node linkType: hard -"array.prototype.map@npm:^1.0.4": - version: 1.0.4 - resolution: "array.prototype.map@npm:1.0.4" - dependencies: - call-bind: ^1.0.2 - define-properties: ^1.1.3 - es-abstract: ^1.19.0 - es-array-method-boxes-properly: ^1.0.0 - is-string: ^1.0.7 - checksum: 08c8065ae9e60585c1262e54556da2340cd140dc799d790843c1f4ad3a3f458e9866d147c8ff0308741e8316904313f682803ca15c179f65cb2f5b993fa71a82 - languageName: node - linkType: hard - -"array.prototype.reduce@npm:^1.0.4": - version: 1.0.4 - resolution: "array.prototype.reduce@npm:1.0.4" - dependencies: - call-bind: ^1.0.2 - define-properties: ^1.1.3 - es-abstract: ^1.19.2 - es-array-method-boxes-properly: ^1.0.0 - is-string: ^1.0.7 - checksum: 6a57a1a2d3b77a9543db139cd52211f43a5af8e8271cb3c173be802076e3a6f71204ba8f090f5937ebc0842d5876db282f0f63dffd0e86b153e6e5a45681e4a5 - languageName: node - linkType: hard - "array.prototype.tosorted@npm:^1.1.1": version: 1.1.1 resolution: "array.prototype.tosorted@npm:1.1.1" @@ -15734,7 +15193,7 @@ __metadata: languageName: node linkType: hard -"arrify@npm:^2.0.0, arrify@npm:^2.0.1": +"arrify@npm:^2.0.0": version: 2.0.1 resolution: "arrify@npm:2.0.1" checksum: 067c4c1afd182806a82e4c1cb8acee16ab8b5284fbca1ce29408e6e91281c36bb5b612f6ddfbd40a0f7a7e0c75bf2696eb94c027f6e328d6e9c52465c98e4209 @@ -15787,13 +15246,16 @@ __metadata: languageName: node linkType: hard -"assert@npm:^1.1.1": - version: 1.5.0 - resolution: "assert@npm:1.5.0" +"assert@npm:^2.0.0, assert@npm:^2.1.0": + version: 2.1.0 + resolution: "assert@npm:2.1.0" dependencies: - object-assign: ^4.1.1 - util: 0.10.3 - checksum: 9be48435f726029ae7020c5888a3566bf4d617687aab280827f2e4029644b6515a9519ea10d018b342147c02faf73d9e9419e780e8937b3786ee4945a0ca71e5 + call-bind: ^1.0.2 + is-nan: ^1.3.2 + object-is: ^1.1.5 + object.assign: ^4.1.4 + util: ^0.12.5 + checksum: 1ed1cabba9abe55f4109b3f7292b4e4f3cf2953aad8dc148c0b3c3bd676675c31b1abb32ef563b7d5a19d1715bf90d1e5f09fad2a4ee655199468902da80f7c2 languageName: node linkType: hard @@ -15804,13 +15266,6 @@ __metadata: languageName: node linkType: hard -"assign-symbols@npm:^1.0.0": - version: 1.0.0 - resolution: "assign-symbols@npm:1.0.0" - checksum: c0eb895911d05b6b2d245154f70461c5e42c107457972e5ebba38d48967870dee53bcdf6c7047990586daa80fab8dab3cc6300800fbd47b454247fdedd859a2c - languageName: node - linkType: hard - "ast-types-flow@npm:^0.0.7": version: 0.0.7 resolution: "ast-types-flow@npm:0.0.7" @@ -15818,12 +15273,12 @@ __metadata: languageName: node linkType: hard -"ast-types@npm:^0.14.2": - version: 0.14.2 - resolution: "ast-types@npm:0.14.2" +"ast-types@npm:^0.16.1": + version: 0.16.1 + resolution: "ast-types@npm:0.16.1" dependencies: tslib: ^2.0.1 - checksum: 8674a77307764979f0a0b2006b7223a4b789abffaa7acbf6a1132650a799252155170173a1ff6a7fb6897f59437fc955f2707bdfc391b0797750898876e6c9ed + checksum: 21c186da9fdb1d8087b1b7dabbc4059f91aa5a1e593a9776b4393cc1eaa857e741b2dda678d20e34b16727b78fef3ab59cf8f0c75ed1ba649c78fe194e5c114b languageName: node linkType: hard @@ -15834,13 +15289,6 @@ __metadata: languageName: node linkType: hard -"async-each@npm:^1.0.1": - version: 1.0.3 - resolution: "async-each@npm:1.0.3" - checksum: 868651cfeb209970b367fbb96df1e1c8dc0b22c681cda7238417005ab2a5fbd944ee524b43f2692977259a57b7cc2547e03ff68f2b5113dbdf953d48cc078dc3 - languageName: node - linkType: hard - "async-limiter@npm:~1.0.0": version: 1.0.1 resolution: "async-limiter@npm:1.0.1" @@ -15885,15 +15333,6 @@ __metadata: languageName: node linkType: hard -"atob@npm:^2.1.2": - version: 2.1.2 - resolution: "atob@npm:2.1.2" - bin: - atob: bin/atob.js - checksum: dfeeeb70090c5ebea7be4b9f787f866686c645d9f39a0d184c817252d0cf08455ed25267d79c03254d3be1f03ac399992a792edcd5ffb9c91e097ab5ef42833a - languageName: node - linkType: hard - "atomically@npm:^1.7.0": version: 1.7.0 resolution: "atomically@npm:1.7.0" @@ -15950,23 +15389,6 @@ __metadata: languageName: node linkType: hard -"autoprefixer@npm:^9.8.6": - version: 9.8.8 - resolution: "autoprefixer@npm:9.8.8" - dependencies: - browserslist: ^4.12.0 - caniuse-lite: ^1.0.30001109 - normalize-range: ^0.1.2 - num2fraction: ^1.2.2 - picocolors: ^0.2.1 - postcss: ^7.0.32 - postcss-value-parser: ^4.1.0 - bin: - autoprefixer: bin/autoprefixer - checksum: 8f017672fbac248db0cf4e86aa707d8b148d9abadb842b5cf4c6be306d80fa6a654fadefd17e46213234c1f0947612acce2864f93e903f3e736b183fc1aedc45 - languageName: node - linkType: hard - "available-typed-arrays@npm:^1.0.5": version: 1.0.5 resolution: "available-typed-arrays@npm:1.0.5" @@ -16081,7 +15503,23 @@ __metadata: languageName: node linkType: hard -"babel-loader@npm:^8.0.0, babel-loader@npm:^8.2.5": +"b4a@npm:^1.6.4": + version: 1.6.4 + resolution: "b4a@npm:1.6.4" + checksum: 81b086f9af1f8845fbef4476307236bda3d660c158c201db976f19cdce05f41f93110ab6b12fd7a2696602a490cc43d5410ee36a56d6eef93afb0d6ca69ac3b2 + languageName: node + linkType: hard + +"babel-core@npm:^7.0.0-bridge.0": + version: 7.0.0-bridge.0 + resolution: "babel-core@npm:7.0.0-bridge.0" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 2a1cb879019dffb08d17bec36e13c3a6d74c94773f41c1fd8b14de13f149cc34b705b0a1e07b42fcf35917b49d78db6ff0c5c3b00b202a5235013d517b5c6bbb + languageName: node + linkType: hard + +"babel-loader@npm:^8.2.5": version: 8.2.5 resolution: "babel-loader@npm:8.2.5" dependencies: @@ -16096,6 +15534,19 @@ __metadata: languageName: node linkType: hard +"babel-loader@npm:^9.0.0": + version: 9.1.3 + resolution: "babel-loader@npm:9.1.3" + dependencies: + find-cache-dir: ^4.0.0 + schema-utils: ^4.0.0 + peerDependencies: + "@babel/core": ^7.12.0 + webpack: ">=5" + checksum: b168dde5b8cf11206513371a79f86bb3faa7c714e6ec9fffd420876b61f3d7f5f4b976431095ef6a14bc4d324505126deb91045fd41e312ba49f4deaa166fe28 + languageName: node + linkType: hard + "babel-plugin-add-react-displayname@npm:^0.0.5": version: 0.0.5 resolution: "babel-plugin-add-react-displayname@npm:0.0.5" @@ -16103,28 +15554,7 @@ __metadata: languageName: node linkType: hard -"babel-plugin-apply-mdx-type-prop@npm:1.6.22": - version: 1.6.22 - resolution: "babel-plugin-apply-mdx-type-prop@npm:1.6.22" - dependencies: - "@babel/helper-plugin-utils": 7.10.4 - "@mdx-js/util": 1.6.22 - peerDependencies: - "@babel/core": ^7.11.6 - checksum: 43e2100164a8f3e46fddd76afcbfb1f02cbebd5612cfe63f3d344a740b0afbdc4d2bf5659cffe9323dd2554c7b86b23ebedae9dadcec353b6594f4292a1a28e2 - languageName: node - linkType: hard - -"babel-plugin-extract-import-names@npm:1.6.22": - version: 1.6.22 - resolution: "babel-plugin-extract-import-names@npm:1.6.22" - dependencies: - "@babel/helper-plugin-utils": 7.10.4 - checksum: 145ccf09c96d36411d340e78086555f8d4d5924ea39fcb0eca461c066cfa98bc4344982bb35eb85d054ef88f8d4dfc0205ba27370c1d8fcc78191b02908d044d - languageName: node - linkType: hard - -"babel-plugin-istanbul@npm:^6.0.0": +"babel-plugin-istanbul@npm:^6.1.1": version: 6.1.1 resolution: "babel-plugin-istanbul@npm:6.1.1" dependencies: @@ -16148,80 +15578,39 @@ __metadata: languageName: node linkType: hard -"babel-plugin-macros@npm:^3.0.1": - version: 3.1.0 - resolution: "babel-plugin-macros@npm:3.1.0" - dependencies: - "@babel/runtime": ^7.12.5 - cosmiconfig: ^7.0.0 - resolve: ^1.19.0 - checksum: 765de4abebd3e4688ebdfbff8571ddc8cd8061f839bb6c3e550b0344a4027b04c60491f843296ce3f3379fb356cc873d57a9ee6694262547eb822c14a25be9a6 - languageName: node - linkType: hard - -"babel-plugin-named-exports-order@npm:^0.0.2": - version: 0.0.2 - resolution: "babel-plugin-named-exports-order@npm:0.0.2" - checksum: d918390a09c0148893ea93bdc9c4fc6a03447c688eaf40bed0f0682d036e985ecee830b90fec2ab149b8dc0cb3220a2c0ac5054e42626bdfe0b436b505b7ef22 - languageName: node - linkType: hard - -"babel-plugin-polyfill-corejs2@npm:^0.4.5": - version: 0.4.5 - resolution: "babel-plugin-polyfill-corejs2@npm:0.4.5" +"babel-plugin-polyfill-corejs2@npm:^0.4.6": + version: 0.4.6 + resolution: "babel-plugin-polyfill-corejs2@npm:0.4.6" dependencies: "@babel/compat-data": ^7.22.6 - "@babel/helper-define-polyfill-provider": ^0.4.2 + "@babel/helper-define-polyfill-provider": ^0.4.3 semver: ^6.3.1 peerDependencies: "@babel/core": ^7.4.0 || ^8.0.0-0 <8.0.0 - checksum: 33a8e06aa54e2858d211c743d179f0487b03222f9ca1bfd7c4865bca243fca942a3358cb75f6bb894ed476cbddede834811fbd6903ff589f055821146f053e1a + checksum: 08896811df31530be6a9bcdd630cb9fd4b5ae5181039d18db3796efbc54e38d57a42af460845c10a04434e1bc45c0d47743c7e6c860383cc6b141083cde22030 languageName: node linkType: hard -"babel-plugin-polyfill-corejs3@npm:^0.1.0": - version: 0.1.7 - resolution: "babel-plugin-polyfill-corejs3@npm:0.1.7" +"babel-plugin-polyfill-corejs3@npm:^0.8.5": + version: 0.8.6 + resolution: "babel-plugin-polyfill-corejs3@npm:0.8.6" dependencies: - "@babel/helper-define-polyfill-provider": ^0.1.5 - core-js-compat: ^3.8.1 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 5c420590a6e18688a868218fa1f5025e9294d093968d2fe1e6aa86981776d66826182f9b36cdd1c41741e9c401bf76164313aab6661efb56741348ed0e98448d - languageName: node - linkType: hard - -"babel-plugin-polyfill-corejs3@npm:^0.8.3": - version: 0.8.3 - resolution: "babel-plugin-polyfill-corejs3@npm:0.8.3" - dependencies: - "@babel/helper-define-polyfill-provider": ^0.4.2 - core-js-compat: ^3.31.0 + "@babel/helper-define-polyfill-provider": ^0.4.3 + core-js-compat: ^3.33.1 peerDependencies: "@babel/core": ^7.4.0 || ^8.0.0-0 <8.0.0 - checksum: dcbb30e551702a82cfd4d2c375da2c317658e55f95e9edcda93b9bbfdcc8fb6e5344efcb144e04d3406859e7682afce7974c60ededd9f12072a48a83dd22a0da + checksum: 36951c2edac42ac0f05b200502e90d77bf66ccee5b52e2937d23496c6ef2372cce31b8c64144da374b77bd3eb65e2721703a52eac56cad16a152326c092cbf77 languageName: node linkType: hard -"babel-plugin-polyfill-regenerator@npm:^0.5.2": - version: 0.5.2 - resolution: "babel-plugin-polyfill-regenerator@npm:0.5.2" +"babel-plugin-polyfill-regenerator@npm:^0.5.3": + version: 0.5.3 + resolution: "babel-plugin-polyfill-regenerator@npm:0.5.3" dependencies: - "@babel/helper-define-polyfill-provider": ^0.4.2 + "@babel/helper-define-polyfill-provider": ^0.4.3 peerDependencies: "@babel/core": ^7.4.0 || ^8.0.0-0 <8.0.0 - checksum: d962200f604016a9a09bc9b4aaf60a3db7af876bb65bcefaeac04d44ac9d9ec4037cf24ce117760cc141d7046b6394c7eb0320ba9665cb4a2ee64df2be187c93 - languageName: node - linkType: hard - -"babel-plugin-react-docgen@npm:^4.2.1": - version: 4.2.1 - resolution: "babel-plugin-react-docgen@npm:4.2.1" - dependencies: - ast-types: ^0.14.2 - lodash: ^4.17.15 - react-docgen: ^5.0.0 - checksum: 6126d358ac2cb27a9a7f145ab586b7a28cb19ef09ca37c4f08a853246a101328ffe6c87813e95b1b4ba05beb627285199f7d0ba16abfb61b35cc4febb6d5eabd + checksum: 2bb546582cda1870d19e646a7183baeb2cccd56e0ef3e4eaeabd28e120daf17cb87399194a9ccdcf32506bcaa68d23e73440fc8ab990a7a0f8c5a77c12d5d4bc languageName: node linkType: hard @@ -16269,13 +15658,6 @@ __metadata: languageName: node linkType: hard -"bail@npm:^1.0.0": - version: 1.0.5 - resolution: "bail@npm:1.0.5" - checksum: 6c334940d7eaa4e656a12fb12407b6555649b6deb6df04270fa806e0da82684ebe4a4e47815b271c794b40f8d6fa286e0c248b14ddbabb324a917fab09b7301a - languageName: node - linkType: hard - "bail@npm:^2.0.0": version: 2.0.2 resolution: "bail@npm:2.0.2" @@ -16304,15 +15686,6 @@ __metadata: 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" - dependencies: - safe-buffer: ^5.0.1 - checksum: 957101d6fd09e1903e846fd8f69fd7e5e3e50254383e61ab667c725866bec54e5ece5ba49ce385128ae48f9ec93a26567d1d5ebb91f4d56ef4a9cc0d5a5481e8 - languageName: node - linkType: hard - "base64-js@npm:0.0.8": version: 0.0.8 resolution: "base64-js@npm:0.0.8" @@ -16320,7 +15693,7 @@ __metadata: languageName: node linkType: hard -"base64-js@npm:^1.0.2, base64-js@npm:^1.3.0, base64-js@npm:^1.3.1, base64-js@npm:^1.5.1": +"base64-js@npm:^1.3.0, base64-js@npm:^1.3.1, base64-js@npm:^1.5.1": version: 1.5.1 resolution: "base64-js@npm:1.5.1" checksum: 669632eb3745404c2f822a18fc3a0122d2f9a7a13f7fb8b5823ee19d1d2ff9ee5b52c53367176ea4ad093c332fd5ab4bd0ebae5a8e27917a4105a4cfc86b1005 @@ -16334,21 +15707,6 @@ __metadata: languageName: node linkType: hard -"base@npm:^0.11.1": - version: 0.11.2 - resolution: "base@npm:0.11.2" - dependencies: - cache-base: ^1.0.1 - class-utils: ^0.3.5 - component-emitter: ^1.2.1 - define-property: ^1.0.0 - isobject: ^3.0.1 - mixin-deep: ^1.2.0 - pascalcase: ^0.1.1 - checksum: a4a146b912e27eea8f66d09cb0c9eab666f32ce27859a7dfd50f38cd069a2557b39f16dba1bc2aecb3b44bf096738dd207b7970d99b0318423285ab1b1994edd - languageName: node - linkType: hard - "bcp-47-match@npm:^2.0.3": version: 2.0.3 resolution: "bcp-47-match@npm:2.0.3" @@ -16372,12 +15730,12 @@ __metadata: languageName: node linkType: hard -"better-opn@npm:^2.1.1": - version: 2.1.1 - resolution: "better-opn@npm:2.1.1" +"better-opn@npm:^3.0.2": + version: 3.0.2 + resolution: "better-opn@npm:3.0.2" dependencies: - open: ^7.0.3 - checksum: 3d1a945d125cbbc6e6a841bef7540435d77d5aa61fc4d345896f5f0b3780fcf9c7145373deaedf62d674a427b187ae973f4410884f9fea0c15f7f01f9dc339c7 + open: ^8.0.4 + checksum: 1471552fa7f733561e7f49e812be074b421153006ca744de985fb6d38939807959fc5fe9cb819cf09f864782e294704fd3b31711ea14c115baf3330a2f1135de languageName: node linkType: hard @@ -16390,10 +15748,10 @@ __metadata: languageName: node linkType: hard -"big-integer@npm:^1.6.7": - version: 1.6.51 - resolution: "big-integer@npm:1.6.51" - checksum: 3d444173d1b2e20747e2c175568bedeebd8315b0637ea95d75fd27830d3b8e8ba36c6af40374f36bdaea7b5de376dcada1b07587cb2a79a928fccdb6e6e3c518 +"big-integer@npm:^1.6.44": + version: 1.6.52 + resolution: "big-integer@npm:1.6.52" + checksum: 6e86885787a20fed96521958ae9086960e4e4b5e74d04f3ef7513d4d0ad631a9f3bde2730fc8aaa4b00419fc865f6ec573e5320234531ef37505da7da192c40b languageName: node linkType: hard @@ -16411,13 +15769,6 @@ __metadata: languageName: node linkType: hard -"binary-extensions@npm:^1.0.0": - version: 1.13.1 - resolution: "binary-extensions@npm:1.13.1" - checksum: ad7747f33c07e94ba443055de130b50c8b8b130a358bca064c580d91769ca6a69c7ac65ca008ff044ed4541d2c6ad45496e1fadbef5218a68770996b6a2194d7 - languageName: node - linkType: hard - "binary-extensions@npm:^2.0.0, binary-extensions@npm:^2.2.0": version: 2.2.0 resolution: "binary-extensions@npm:2.2.0" @@ -16432,15 +15783,6 @@ __metadata: languageName: node linkType: hard -"bindings@npm:^1.5.0": - version: 1.5.0 - resolution: "bindings@npm:1.5.0" - dependencies: - file-uri-to-path: 1.0.0 - checksum: 65b6b48095717c2e6105a021a7da4ea435aa8d3d3cd085cb9e85bcb6e5773cf318c4745c3f7c504412855940b585bdf9b918236612a1c7a7942491de176f1ae7 - languageName: node - linkType: hard - "biskviit@npm:1.0.1": version: 1.0.1 resolution: "biskviit@npm:1.0.1" @@ -16481,14 +15823,7 @@ __metadata: languageName: node linkType: hard -"blakejs@npm:^1.1.0": - version: 1.2.1 - resolution: "blakejs@npm:1.2.1" - checksum: d699ba116cfa21d0b01d12014a03e484dd76d483133e6dc9eb415aa70a119f08beb3bcefb8c71840106a00b542cba77383f8be60cd1f0d4589cb8afb922eefbe - languageName: node - linkType: hard - -"bluebird@npm:^3.4.6, bluebird@npm:^3.5.0, bluebird@npm:^3.5.5, bluebird@npm:^3.7.2": +"bluebird@npm:^3.4.6, bluebird@npm:^3.7.2": version: 3.7.2 resolution: "bluebird@npm:3.7.2" checksum: 869417503c722e7dc54ca46715f70e15f4d9c602a423a02c825570862d12935be59ed9c7ba34a9b31f186c017c23cac6b54e35446f8353059c101da73eac22ef @@ -16502,55 +15837,23 @@ __metadata: languageName: node linkType: hard -"bn.js@npm:4.11.6": - version: 4.11.6 - resolution: "bn.js@npm:4.11.6" - checksum: db23047bf06fdf9cf74401c8e76bca9f55313c81df382247d2c753868b368562e69171716b81b7038ada8860af18346fd4bcd1cf9d4963f923fe8e54e61cb58a - languageName: node - linkType: hard - -"bn.js@npm:^4.0.0, bn.js@npm:^4.1.0, bn.js@npm:^4.11.6, bn.js@npm:^4.11.9": +"bn.js@npm:^4.0.0, bn.js@npm:^4.1.0, bn.js@npm:^4.11.9": version: 4.12.0 resolution: "bn.js@npm:4.12.0" checksum: 39afb4f15f4ea537b55eaf1446c896af28ac948fdcf47171961475724d1bb65118cca49fa6e3d67706e4790955ec0e74de584e45c8f1ef89f46c812bee5b5a12 languageName: node linkType: hard -"bn.js@npm:^5.0.0, bn.js@npm:^5.1.1, bn.js@npm:^5.1.2, bn.js@npm:^5.2.0": +"bn.js@npm:^5.0.0, bn.js@npm:^5.1.1": version: 5.2.0 resolution: "bn.js@npm:5.2.0" checksum: 6117170393200f68b35a061ecbf55d01dd989302e7b3c798a3012354fa638d124f0b2f79e63f77be5556be80322a09c40339eda6413ba7468524c0b6d4b4cb7a languageName: node linkType: hard -"bn.js@npm:^5.2.1": - version: 5.2.1 - resolution: "bn.js@npm:5.2.1" - checksum: 3dd8c8d38055fedfa95c1d5fc3c99f8dd547b36287b37768db0abab3c239711f88ff58d18d155dd8ad902b0b0cee973747b7ae20ea12a09473272b0201c9edd3 - languageName: node - linkType: hard - -"body-parser@npm:1.19.2": - version: 1.19.2 - resolution: "body-parser@npm:1.19.2" - dependencies: - bytes: 3.1.2 - content-type: ~1.0.4 - debug: 2.6.9 - depd: ~1.1.2 - http-errors: 1.8.1 - iconv-lite: 0.4.24 - on-finished: ~2.3.0 - qs: 6.9.7 - raw-body: 2.4.3 - type-is: ~1.6.18 - checksum: 7f777ea65670e2622ca4a785b5dcb2a68451b3bb8d4d0f41091d307d56b640dba588a9ae04d85dda2cdd5e42788266a783528d5417e5643720fd611fd52522e7 - languageName: node - linkType: hard - -"body-parser@npm:1.20.0, body-parser@npm:^1.16.0": - version: 1.20.0 - resolution: "body-parser@npm:1.20.0" +"body-parser@npm:1.20.1": + version: 1.20.1 + resolution: "body-parser@npm:1.20.1" dependencies: bytes: 3.1.2 content-type: ~1.0.4 @@ -16560,11 +15863,11 @@ __metadata: http-errors: 2.0.0 iconv-lite: 0.4.24 on-finished: 2.4.1 - qs: 6.10.3 + qs: 6.11.0 raw-body: 2.5.1 type-is: ~1.6.18 unpipe: 1.0.0 - checksum: 12fffdeac82fe20dddcab7074215d5156e7d02a69ae90cbe9fee1ca3efa2f28ef52097cbea76685ee0a1509c71d85abd0056a08e612c09077cad6277a644cf88 + checksum: f1050dbac3bede6a78f0b87947a8d548ce43f91ccc718a50dd774f3c81f2d8b04693e52acf62659fad23101827dd318da1fb1363444ff9a8482b886a3e4a5266 languageName: node linkType: hard @@ -16589,28 +15892,12 @@ __metadata: languageName: node linkType: hard -"boxen@npm:^5.1.2": - version: 5.1.2 - resolution: "boxen@npm:5.1.2" +"bplist-parser@npm:^0.2.0": + version: 0.2.0 + resolution: "bplist-parser@npm:0.2.0" dependencies: - ansi-align: ^3.0.0 - camelcase: ^6.2.0 - chalk: ^4.1.0 - cli-boxes: ^2.2.1 - string-width: ^4.2.2 - type-fest: ^0.20.2 - widest-line: ^3.1.0 - wrap-ansi: ^7.0.0 - checksum: 82d03e42a72576ff235123f17b7c505372fe05c83f75f61e7d4fa4bcb393897ec95ce766fecb8f26b915f0f7a7227d66e5ec7cef43f5b2bd9d3aeed47ec55877 - languageName: node - linkType: hard - -"bplist-parser@npm:^0.1.0": - version: 0.1.1 - resolution: "bplist-parser@npm:0.1.1" - dependencies: - big-integer: ^1.6.7 - checksum: 1501d52f009c9f23ecee6855940e84ac55a6120c0f05570b1f51c8d494023416ec12f4d91b5ac97d6c0941d96dd41d7cb0bc1a9c0a02092df5b4b511acb8dda5 + big-integer: ^1.6.44 + checksum: d5339dd16afc51de6c88f88f58a45b72ed6a06aa31f5557d09877575f220b7c1d3fbe375da0b62e6a10d4b8ed80523567e351f24014f5bc886ad523758142cdd languageName: node linkType: hard @@ -16633,24 +15920,6 @@ __metadata: languageName: node linkType: hard -"braces@npm:^2.3.1, braces@npm:^2.3.2": - version: 2.3.2 - resolution: "braces@npm:2.3.2" - dependencies: - arr-flatten: ^1.1.0 - array-unique: ^0.3.2 - extend-shallow: ^2.0.1 - fill-range: ^4.0.0 - isobject: ^3.0.1 - repeat-element: ^1.1.2 - snapdragon: ^0.8.1 - snapdragon-node: ^2.0.1 - split-string: ^3.0.2 - to-regex: ^3.0.1 - checksum: e30dcb6aaf4a31c8df17d848aa283a65699782f75ad61ae93ec25c9729c66cf58e66f0000a9fec84e4add1135bb7da40f7cb9601b36bebcfa9ca58e8d5c07de0 - languageName: node - linkType: hard - "braces@npm:^3.0.2, braces@npm:~3.0.2": version: 3.0.2 resolution: "braces@npm:3.0.2" @@ -16683,7 +15952,7 @@ __metadata: languageName: node linkType: hard -"browserify-aes@npm:^1.0.0, browserify-aes@npm:^1.0.4, browserify-aes@npm:^1.2.0": +"browserify-aes@npm:^1.0.0, browserify-aes@npm:^1.0.4": version: 1.2.0 resolution: "browserify-aes@npm:1.2.0" dependencies: @@ -16758,6 +16027,15 @@ __metadata: languageName: node linkType: hard +"browserify-zlib@npm:^0.1.4": + version: 0.1.4 + resolution: "browserify-zlib@npm:0.1.4" + dependencies: + pako: ~0.2.0 + checksum: abee4cb4349e8a21391fd874564f41b113fe691372913980e6fa06a777e4ea2aad4e942af14ab99bce190d5ac8f5328201432f4ef0eae48c6d02208bc212976f + languageName: node + linkType: hard + "browserify-zlib@npm:^0.2.0": version: 0.2.0 resolution: "browserify-zlib@npm:0.2.0" @@ -16767,7 +16045,7 @@ __metadata: languageName: node linkType: hard -"browserslist@npm:^4.12.0, browserslist@npm:^4.14.5, browserslist@npm:^4.21.1": +"browserslist@npm:^4.14.5": version: 4.21.1 resolution: "browserslist@npm:4.21.1" dependencies: @@ -16809,23 +16087,17 @@ __metadata: languageName: node linkType: hard -"bs58@npm:^4.0.0": - version: 4.0.1 - resolution: "bs58@npm:4.0.1" +"browserslist@npm:^4.22.2": + version: 4.22.2 + resolution: "browserslist@npm:4.22.2" dependencies: - base-x: ^3.0.2 - checksum: b3c5365bb9e0c561e1a82f1a2d809a1a692059fae016be233a6127ad2f50a6b986467c3a50669ce4c18929dcccb297c5909314dd347a25a68c21b68eb3e95ac2 - languageName: node - linkType: hard - -"bs58check@npm:^2.1.2": - version: 2.1.2 - resolution: "bs58check@npm:2.1.2" - dependencies: - bs58: ^4.0.0 - create-hash: ^1.1.0 - safe-buffer: ^5.1.2 - checksum: 43bdf08a5dd04581b78f040bc4169480e17008da482ffe2a6507327bbc4fc5c28de0501f7faf22901cfe57fbca79cbb202ca529003fedb4cb8dccd265b38e54d + caniuse-lite: ^1.0.30001565 + electron-to-chromium: ^1.4.601 + node-releases: ^2.0.14 + update-browserslist-db: ^1.0.13 + bin: + browserslist: cli.js + checksum: 33ddfcd9145220099a7a1ac533cecfe5b7548ffeb29b313e1b57be6459000a1f8fa67e781cf4abee97268ac594d44134fcc4a6b2b4750ceddc9796e3a22076d9 languageName: node linkType: hard @@ -16861,7 +16133,7 @@ __metadata: languageName: node linkType: hard -"buffer-crc32@npm:^0.2.1, buffer-crc32@npm:^0.2.13": +"buffer-crc32@npm:^0.2.1, buffer-crc32@npm:^0.2.13, buffer-crc32@npm:~0.2.3": version: 0.2.13 resolution: "buffer-crc32@npm:0.2.13" checksum: 06252347ae6daca3453b94e4b2f1d3754a3b146a111d81c68924c22d91889a40623264e95e67955b1cb4a68cbedf317abeabb5140a9766ed248973096db5ce1c @@ -16896,13 +16168,6 @@ __metadata: languageName: node linkType: hard -"buffer-to-arraybuffer@npm:^0.0.5": - version: 0.0.5 - resolution: "buffer-to-arraybuffer@npm:0.0.5" - checksum: b2e6493a6679e03d0e0e146b4258b9a6d92649d528d8fc4a74423b77f0d4f9398c9f965f3378d1683a91738054bae2761196cfe233f41ab3695126cb58cb25f9 - languageName: node - linkType: hard - "buffer-writer@npm:2.0.0": version: 2.0.0 resolution: "buffer-writer@npm:2.0.0" @@ -16917,18 +16182,7 @@ __metadata: languageName: node linkType: hard -"buffer@npm:^4.3.0": - version: 4.9.2 - resolution: "buffer@npm:4.9.2" - dependencies: - base64-js: ^1.0.2 - ieee754: ^1.1.4 - isarray: ^1.0.0 - checksum: 8801bc1ba08539f3be70eee307a8b9db3d40f6afbfd3cf623ab7ef41dffff1d0a31de0addbe1e66e0ca5f7193eeb667bfb1ecad3647f8f1b0750de07c13295c3 - languageName: node - linkType: hard - -"buffer@npm:^5.0.5, buffer@npm:^5.2.0, buffer@npm:^5.5.0, buffer@npm:^5.6.0": +"buffer@npm:^5.2.0, buffer@npm:^5.5.0": version: 5.7.1 resolution: "buffer@npm:5.7.1" dependencies: @@ -16948,16 +16202,6 @@ __metadata: languageName: node linkType: hard -"bufferutil@npm:^4.0.1": - version: 4.0.6 - resolution: "bufferutil@npm:4.0.6" - dependencies: - node-gyp: latest - node-gyp-build: ^4.3.0 - checksum: dd107560947445280af7820c3d0534127b911577d85d537e1d7e0aa30fd634853cef8a994d6e8aed3d81388ab1a20257de776164afe6a6af8e78f5f17968ebd6 - languageName: node - linkType: hard - "builtin-modules@npm:^3.3.0": version: 3.3.0 resolution: "builtin-modules@npm:3.3.0" @@ -17024,28 +16268,6 @@ __metadata: languageName: node linkType: hard -"c8@npm:^7.6.0": - version: 7.11.3 - resolution: "c8@npm:7.11.3" - dependencies: - "@bcoe/v8-coverage": ^0.2.3 - "@istanbuljs/schema": ^0.1.3 - find-up: ^5.0.0 - foreground-child: ^2.0.0 - istanbul-lib-coverage: ^3.2.0 - istanbul-lib-report: ^3.0.0 - istanbul-reports: ^3.1.4 - rimraf: ^3.0.2 - test-exclude: ^6.0.0 - v8-to-istanbul: ^9.0.0 - yargs: ^16.2.0 - yargs-parser: ^20.2.9 - bin: - c8: bin/c8.js - checksum: 9f7272bb5fd3d4f7d1c2f7fb986c1025a09c3afefce168c3ba62497dd6294f887c1678d23736126485ec534263ec6b4ed9b4bd2a05aa8d1682c949c3db1f5359 - languageName: node - linkType: hard - "cac@npm:^6.7.14": version: 6.7.14 resolution: "cac@npm:6.7.14" @@ -17053,55 +16275,6 @@ __metadata: languageName: node linkType: hard -"cacache@npm:^12.0.2": - version: 12.0.4 - resolution: "cacache@npm:12.0.4" - dependencies: - bluebird: ^3.5.5 - chownr: ^1.1.1 - figgy-pudding: ^3.5.1 - glob: ^7.1.4 - graceful-fs: ^4.1.15 - infer-owner: ^1.0.3 - lru-cache: ^5.1.1 - mississippi: ^3.0.0 - mkdirp: ^0.5.1 - move-concurrently: ^1.0.1 - promise-inflight: ^1.0.1 - rimraf: ^2.6.3 - ssri: ^6.0.1 - unique-filename: ^1.1.1 - y18n: ^4.0.0 - checksum: c88a72f36939b2523533946ffb27828443db5bf5995d761b35ae17af1eb6c8e20ac55b00b74c2ca900b2e1e917f0afba6847bf8cc16bee05ccca6aa150e0830c - languageName: node - linkType: hard - -"cacache@npm:^15.0.5": - version: 15.3.0 - resolution: "cacache@npm:15.3.0" - dependencies: - "@npmcli/fs": ^1.0.0 - "@npmcli/move-file": ^1.0.1 - chownr: ^2.0.0 - fs-minipass: ^2.0.0 - glob: ^7.1.4 - infer-owner: ^1.0.4 - lru-cache: ^6.0.0 - minipass: ^3.1.1 - minipass-collect: ^1.0.2 - minipass-flush: ^1.0.5 - minipass-pipeline: ^1.2.2 - mkdirp: ^1.0.3 - p-map: ^4.0.0 - promise-inflight: ^1.0.1 - rimraf: ^3.0.2 - ssri: ^8.0.1 - tar: ^6.0.2 - unique-filename: ^1.1.1 - checksum: a07327c27a4152c04eb0a831c63c00390d90f94d51bb80624a66f4e14a6b6360bbf02a84421267bd4d00ca73ac9773287d8d7169e8d2eafe378d2ce140579db8 - languageName: node - linkType: hard - "cacache@npm:^16.1.0": version: 16.1.3 resolution: "cacache@npm:16.1.3" @@ -17128,23 +16301,6 @@ __metadata: languageName: node linkType: hard -"cache-base@npm:^1.0.1": - version: 1.0.1 - resolution: "cache-base@npm:1.0.1" - dependencies: - collection-visit: ^1.0.0 - component-emitter: ^1.2.1 - get-value: ^2.0.6 - has-value: ^1.0.0 - isobject: ^3.0.1 - set-value: ^2.0.0 - to-object-path: ^0.3.0 - union-value: ^1.0.0 - unset-value: ^1.0.0 - checksum: 9114b8654fe2366eedc390bad0bcf534e2f01b239a888894e2928cb58cdc1e6ea23a73c6f3450dcfd2058aa73a8a981e723cd1e7c670c047bf11afdc65880107 - languageName: node - linkType: hard - "cacheable-lookup@npm:^5.0.3": version: 5.0.4 resolution: "cacheable-lookup@npm:5.0.4" @@ -17152,13 +16308,6 @@ __metadata: languageName: node linkType: hard -"cacheable-lookup@npm:^6.0.4": - version: 6.1.0 - resolution: "cacheable-lookup@npm:6.1.0" - checksum: 4e37afe897219b1035335b0765106a2c970ffa930497b43cac5000b860f3b17f48d004187279fae97e2e4cbf6a3693709b6d64af65279c7d6c8453321d36d118 - languageName: node - linkType: hard - "cacheable-request@npm:^7.0.2": version: 7.0.2 resolution: "cacheable-request@npm:7.0.2" @@ -17203,7 +16352,7 @@ __metadata: tsc-absolute: ^1.0.0 turbo: ^1.10.1 typescript: ^4.9.4 - vitest: ^0.34.3 + vitest: ^0.34.6 vitest-fetch-mock: ^0.2.2 vitest-mock-extended: ^1.1.3 languageName: unknown @@ -17219,6 +16368,17 @@ __metadata: languageName: node linkType: hard +"call-bind@npm:^1.0.4, call-bind@npm:^1.0.5": + version: 1.0.5 + resolution: "call-bind@npm:1.0.5" + dependencies: + function-bind: ^1.1.2 + get-intrinsic: ^1.2.1 + set-function-length: ^1.1.1 + checksum: 449e83ecbd4ba48e7eaac5af26fea3b50f8f6072202c2dd7c5a6e7a6308f2421abe5e13a3bbd55221087f76320c5e09f25a8fdad1bab2b77c68ae74d92234ea5 + languageName: node + linkType: hard + "call-me-maybe@npm:^1.0.1": version: 1.0.1 resolution: "call-me-maybe@npm:1.0.1" @@ -17243,7 +16403,7 @@ __metadata: languageName: node linkType: hard -"camel-case@npm:^4.1.1, camel-case@npm:^4.1.2": +"camel-case@npm:^4.1.2": version: 4.1.2 resolution: "camel-case@npm:4.1.2" dependencies: @@ -17253,23 +16413,13 @@ __metadata: languageName: node linkType: hard -"camelcase-css@npm:2.0.1, camelcase-css@npm:^2.0.1": +"camelcase-css@npm:^2.0.1": version: 2.0.1 resolution: "camelcase-css@npm:2.0.1" checksum: 1cec2b3b3dcb5026688a470b00299a8db7d904c4802845c353dbd12d9d248d3346949a814d83bfd988d4d2e5b9904c07efe76fecd195a1d4f05b543e7c0b56b1 languageName: node linkType: hard -"camelcase-keys@npm:^2.0.0": - version: 2.1.0 - resolution: "camelcase-keys@npm:2.1.0" - dependencies: - camelcase: ^2.0.0 - map-obj: ^1.0.0 - checksum: 97d2993da5db44d45e285910c70a54ce7f83a2be05afceaafd9831f7aeaf38a48dcdede5ca3aae2b2694852281d38dc459706e346942c5df0bf755f4133f5c39 - languageName: node - linkType: hard - "camelcase-keys@npm:^6.2.2": version: 6.2.2 resolution: "camelcase-keys@npm:6.2.2" @@ -17281,20 +16431,13 @@ __metadata: languageName: node linkType: hard -"camelcase@npm:6, camelcase@npm:^6.2.0": +"camelcase@npm:6": 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" - checksum: 20a3ef08f348de832631d605362ffe447d883ada89617144a82649363ed5860923b021f8e09681624ef774afb93ff3597cfbcf8aaf0574f65af7648f1aea5e50 - languageName: node - linkType: hard - "camelcase@npm:^5.0.0, camelcase@npm:^5.3.1": version: 5.3.1 resolution: "camelcase@npm:5.3.1" @@ -17309,7 +16452,7 @@ __metadata: languageName: node linkType: hard -"caniuse-lite@npm:^1.0.30001109, caniuse-lite@npm:^1.0.30001359": +"caniuse-lite@npm:^1.0.30001359": version: 1.0.30001365 resolution: "caniuse-lite@npm:1.0.30001365" checksum: 5d043006e9bd9de1ae06c0e12c31997f0ed26f889f47ea6403dc2d08f46a5bd4bf0fe1a5b1099561fc447201ddf13083f277de68829e77fd238ff2af8c05e0a6 @@ -17337,6 +16480,13 @@ __metadata: languageName: node linkType: hard +"caniuse-lite@npm:^1.0.30001565": + version: 1.0.30001566 + resolution: "caniuse-lite@npm:1.0.30001566" + checksum: 0f9084bf9f7d5c0a9ddb200c2baddb25dd2ad5a2f205f01e7b971f3e98e9a7bb23c2d86bae48237e9bc9782b682cffaaf3406d936937ab9844987dbe2a6401f2 + languageName: node + linkType: hard + "capital-case@npm:^1.0.4": version: 1.0.4 resolution: "capital-case@npm:1.0.4" @@ -17348,15 +16498,6 @@ __metadata: languageName: node linkType: hard -"capture-exit@npm:^2.0.0": - version: 2.0.0 - resolution: "capture-exit@npm:2.0.0" - dependencies: - rsvp: ^4.8.4 - checksum: 0b9f10daca09e521da9599f34c8e7af14ad879c336e2bdeb19955b375398ae1c5bcc91ac9f2429944343057ee9ed028b1b2fb28816c384e0e55d70c439b226f4 - languageName: node - linkType: hard - "cardinal@npm:^2.1.1": version: 2.1.1 resolution: "cardinal@npm:2.1.1" @@ -17369,7 +16510,7 @@ __metadata: languageName: node linkType: hard -"case-sensitive-paths-webpack-plugin@npm:^2.3.0": +"case-sensitive-paths-webpack-plugin@npm:^2.4.0": version: 2.4.0 resolution: "case-sensitive-paths-webpack-plugin@npm:2.4.0" checksum: bcf469446eeee9ac0046e30860074ebb9aa4803aab9140e6bb72b600b23b1d70635690754be4504ce35cd99cdf05226bee8d894ba362a3f5485d5f6310fc6d02 @@ -17383,13 +16524,6 @@ __metadata: languageName: node linkType: hard -"ccount@npm:^1.0.0": - version: 1.1.0 - resolution: "ccount@npm:1.1.0" - checksum: b335a79d0aa4308919cf7507babcfa04ac63d389ebed49dbf26990d4607c8a4713cde93cc83e707d84571ddfe1e7615dad248be9bc422ae4c188210f71b08b78 - languageName: node - linkType: hard - "ccount@npm:^2.0.0": version: 2.0.1 resolution: "ccount@npm:2.0.1" @@ -17397,18 +16531,18 @@ __metadata: languageName: node linkType: hard -"chai@npm:^4.3.7": - version: 4.3.7 - resolution: "chai@npm:4.3.7" +"chai@npm:^4.3.10": + version: 4.3.10 + resolution: "chai@npm:4.3.10" dependencies: assertion-error: ^1.1.0 - check-error: ^1.0.2 - deep-eql: ^4.1.2 - get-func-name: ^2.0.0 - loupe: ^2.3.1 + check-error: ^1.0.3 + deep-eql: ^4.1.3 + get-func-name: ^2.0.2 + loupe: ^2.3.6 pathval: ^1.1.1 - type-detect: ^4.0.5 - checksum: 0bba7d267848015246a66995f044ce3f0ebc35e530da3cbdf171db744e14cbe301ab913a8d07caf7952b430257ccbb1a4a983c570a7c5748dc537897e5131f7c + type-detect: ^4.0.8 + checksum: 536668c60a0d985a0fbd94418028e388d243a925d7c5e858c7443e334753511614a3b6a124bac9ca077dfc4c37acc367d62f8c294960f440749536dc181dfc6d languageName: node linkType: hard @@ -17591,10 +16725,12 @@ __metadata: languageName: node linkType: hard -"check-error@npm:^1.0.2": - version: 1.0.2 - resolution: "check-error@npm:1.0.2" - checksum: d9d106504404b8addd1ee3f63f8c0eaa7cd962a1a28eb9c519b1c4a1dc7098be38007fc0060f045ee00f075fbb7a2a4f42abcf61d68323677e11ab98dc16042e +"check-error@npm:^1.0.3": + version: 1.0.3 + resolution: "check-error@npm:1.0.3" + dependencies: + get-func-name: ^2.0.2 + checksum: e2131025cf059b21080f4813e55b3c480419256914601750b0fee3bd9b2b8315b531e551ef12560419b8b6d92a3636511322752b1ce905703239e7cc451b6399 languageName: node linkType: hard @@ -17655,30 +16791,7 @@ __metadata: languageName: node linkType: hard -"chokidar@npm:^2.1.8": - version: 2.1.8 - resolution: "chokidar@npm:2.1.8" - dependencies: - anymatch: ^2.0.0 - async-each: ^1.0.1 - braces: ^2.3.2 - fsevents: ^1.2.7 - glob-parent: ^3.1.0 - inherits: ^2.0.3 - is-binary-path: ^1.0.0 - is-glob: ^4.0.0 - normalize-path: ^3.0.0 - path-is-absolute: ^1.0.0 - readdirp: ^2.2.1 - upath: ^1.1.1 - dependenciesMeta: - fsevents: - optional: true - checksum: 0c43e89cbf0268ef1e1f41ce8ec5233c7ba022c6f3282c2ef6530e351d42396d389a1148c5a040f291cf1f4083a4c6b2f51dad3f31c726442ea9a337de316bcf - languageName: node - linkType: hard - -"chokidar@npm:^3.4.1, chokidar@npm:^3.4.2, chokidar@npm:^3.5.3": +"chokidar@npm:^3.4.2, chokidar@npm:^3.5.3": version: 3.5.3 resolution: "chokidar@npm:3.5.3" dependencies: @@ -17697,7 +16810,7 @@ __metadata: languageName: node linkType: hard -"chownr@npm:^1.1.1, chownr@npm:^1.1.4": +"chownr@npm:^1.1.1": version: 1.1.4 resolution: "chownr@npm:1.1.4" checksum: 115648f8eb38bac5e41c3857f3e663f9c39ed6480d1349977c4d96c95a47266fcacc5a5aabf3cb6c481e22d72f41992827db47301851766c4fd77ac21a4f081d @@ -17739,19 +16852,6 @@ __metadata: languageName: node linkType: hard -"cids@npm:^0.7.1": - version: 0.7.5 - resolution: "cids@npm:0.7.5" - dependencies: - buffer: ^5.5.0 - class-is: ^1.1.0 - multibase: ~0.6.0 - multicodec: ^1.0.0 - multihashes: ~0.4.15 - checksum: 54aa031bef76b08a2c934237696a4af2cfc8afb5d2727cb39ab69f6ac142ef312b9a0c6070dc2b4be0a43076d8961339d8bf85287773c647b3d1d25ce203f325 - languageName: node - linkType: hard - "cipher-base@npm:^1.0.0, cipher-base@npm:^1.0.1, cipher-base@npm:^1.0.3": version: 1.0.4 resolution: "cipher-base@npm:1.0.4" @@ -17771,25 +16871,6 @@ __metadata: languageName: node linkType: hard -"class-is@npm:^1.1.0": - version: 1.1.0 - resolution: "class-is@npm:1.1.0" - checksum: 49024de3b264fc501a38dd59d8668f1a2b4973fa6fcef6b83d80fe6fe99a2000a8fbea5b50d4607169c65014843c9f6b41a4f8473df806c1b4787b4d47521880 - languageName: node - linkType: hard - -"class-utils@npm:^0.3.5": - version: 0.3.6 - resolution: "class-utils@npm:0.3.6" - dependencies: - arr-union: ^3.1.0 - define-property: ^0.2.5 - isobject: ^3.0.0 - static-extend: ^0.1.1 - checksum: be108900801e639e50f96a7e4bfa8867c753a7750a7603879f3981f8b0a89cba657497a2d5f40cd4ea557ff15d535a100818bb486baf6e26fe5d7872e75f1078 - languageName: node - linkType: hard - "class-variance-authority@npm:^0.4.0": version: 0.4.0 resolution: "class-variance-authority@npm:0.4.0" @@ -17816,15 +16897,6 @@ __metadata: languageName: node linkType: hard -"clean-css@npm:^4.2.3": - version: 4.2.4 - resolution: "clean-css@npm:4.2.4" - dependencies: - source-map: ~0.6.0 - checksum: 045ff6fcf4b5c76a084b24e1633e0c78a13b24080338fc8544565a9751559aa32ff4ee5886d9e52c18a644a6ff119bd8e37bc58e574377c05382a1fb7dbe39f8 - languageName: node - linkType: hard - "clean-css@npm:^5.2.2": version: 5.3.1 resolution: "clean-css@npm:5.3.1" @@ -17860,7 +16932,7 @@ __metadata: languageName: node linkType: hard -"cli-boxes@npm:^2.2.0, cli-boxes@npm:^2.2.1": +"cli-boxes@npm:^2.2.0": version: 2.2.1 resolution: "cli-boxes@npm:2.2.1" checksum: be79f8ec23a558b49e01311b39a1ea01243ecee30539c880cf14bf518a12e223ef40c57ead0cb44f509bffdffc5c129c746cd50d863ab879385370112af4f585 @@ -18029,20 +17101,6 @@ __metadata: languageName: node linkType: hard -"clsx@npm:1.1.0": - version: 1.1.0 - resolution: "clsx@npm:1.1.0" - checksum: 50e889839a557b8a2fca063ee7ea22ba8c261e7f9f7aadc257065fc77f16fa0a98ce826fb2b126d05fb736560333971dbb882874054df7bb8f4317e224ec1978 - languageName: node - linkType: hard - -"clsx@npm:^1.0.4, clsx@npm:^1.2.1": - version: 1.2.1 - resolution: "clsx@npm:1.2.1" - checksum: 30befca8019b2eb7dbad38cff6266cf543091dae2825c856a62a8ccf2c3ab9c2907c4d12b288b73101196767f66812365400a227581484a05f968b0307cfaf12 - languageName: node - linkType: hard - "clsx@npm:^1.1.1": version: 1.1.1 resolution: "clsx@npm:1.1.1" @@ -18050,6 +17108,13 @@ __metadata: languageName: node linkType: hard +"clsx@npm:^1.2.1": + version: 1.2.1 + resolution: "clsx@npm:1.2.1" + checksum: 30befca8019b2eb7dbad38cff6266cf543091dae2825c856a62a8ccf2c3ab9c2907c4d12b288b73101196767f66812365400a227581484a05f968b0307cfaf12 + languageName: node + linkType: hard + "cluster-key-slot@npm:1.1.2": version: 1.1.2 resolution: "cluster-key-slot@npm:1.1.2" @@ -18123,23 +17188,6 @@ __metadata: languageName: node linkType: hard -"collapse-white-space@npm:^1.0.2": - version: 1.0.6 - resolution: "collapse-white-space@npm:1.0.6" - checksum: 9673fb797952c5c888341435596c69388b22cd5560c8cd3f40edb72734a9c820f56a7c9525166bcb7068b5d5805372e6fd0c4b9f2869782ad070cb5d3faf26e7 - languageName: node - linkType: hard - -"collection-visit@npm:^1.0.0": - version: 1.0.0 - resolution: "collection-visit@npm:1.0.0" - dependencies: - map-visit: ^1.0.0 - object-visit: ^1.0.0 - checksum: 15d9658fe6eb23594728346adad5433b86bb7a04fd51bbab337755158722f9313a5376ef479de5b35fbc54140764d0d39de89c339f5d25b959ed221466981da9 - languageName: node - linkType: hard - "color-convert@npm:^1.9.0": version: 1.9.3 resolution: "color-convert@npm:1.9.3" @@ -18165,14 +17213,24 @@ __metadata: languageName: node linkType: hard -"color-name@npm:~1.1.4": +"color-name@npm:^1.0.0, color-name@npm:~1.1.4": version: 1.1.4 resolution: "color-name@npm:1.1.4" checksum: b0445859521eb4021cd0fb0cc1a75cecf67fceecae89b63f62b201cca8d345baf8b952c966862a9d9a2632987d4f6581f0ec8d957dfacece86f0a7919316f610 languageName: node linkType: hard -"color-support@npm:^1.1.2, color-support@npm:^1.1.3": +"color-string@npm:^1.9.0": + version: 1.9.1 + resolution: "color-string@npm:1.9.1" + dependencies: + color-name: ^1.0.0 + simple-swizzle: ^0.2.2 + checksum: c13fe7cff7885f603f49105827d621ce87f4571d78ba28ef4a3f1a104304748f620615e6bf065ecd2145d0d9dad83a3553f52bb25ede7239d18e9f81622f1cc5 + languageName: node + linkType: hard + +"color-support@npm:^1.1.3": version: 1.1.3 resolution: "color-support@npm:1.1.3" bin: @@ -18181,10 +17239,20 @@ __metadata: languageName: node linkType: hard -"colorette@npm:^1.2.2": - version: 1.4.0 - resolution: "colorette@npm:1.4.0" - checksum: 01c3c16058b182a4ab4c126a65a75faa4d38a20fa7c845090b25453acec6c371bb2c5dceb0a2338511f17902b9d1a9af0cadd8509c9403894b79311032c256c3 +"color@npm:^4.2.3": + version: 4.2.3 + resolution: "color@npm:4.2.3" + dependencies: + color-convert: ^2.0.1 + color-string: ^1.9.0 + checksum: 0579629c02c631b426780038da929cca8e8d80a40158b09811a0112a107c62e10e4aad719843b791b1e658ab4e800558f2e87ca4522c8b32349d497ecb6adeb4 + languageName: node + linkType: hard + +"colorette@npm:^2.0.10, colorette@npm:^2.0.20": + version: 2.0.20 + resolution: "colorette@npm:2.0.20" + checksum: 0c016fea2b91b733eb9f4bcdb580018f52c0bc0979443dad930e5037a968237ac53d9beb98e218d2e9235834f8eebce7f8e080422d6194e957454255bde71d3d languageName: node linkType: hard @@ -18246,14 +17314,14 @@ __metadata: languageName: node linkType: hard -"commander@npm:^2.19.0, commander@npm:^2.20.0, commander@npm:^2.7.1, commander@npm:^2.9.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" checksum: ab8c07884e42c3a8dbc5dd9592c606176c7eb5c1ca5ff274bcf907039b2c41de3626f684ea75ccf4d361ba004bbaff1f577d5384c155f3871e456bdf27becf9e languageName: node linkType: hard -"commander@npm:^4.0.0, commander@npm:^4.1.1": +"commander@npm:^4.0.0": version: 4.1.1 resolution: "commander@npm:4.1.1" checksum: d7b9913ff92cae20cb577a4ac6fcc121bd6223319e54a40f51a14740a681ad5c574fd29a57da478a5f234a6fa6c52cbf0b7c641353e03c648b1ae85ba670b977 @@ -18333,7 +17401,7 @@ __metadata: languageName: node linkType: hard -"component-emitter@npm:^1.2.1, component-emitter@npm:^1.3.0": +"component-emitter@npm:^1.3.0": version: 1.3.0 resolution: "component-emitter@npm:1.3.0" checksum: b3c46de38ffd35c57d1c02488355be9f218e582aec72d72d1b8bbec95a3ac1b38c96cd6e03ff015577e68f550fbb361a3bfdbd9bb248be9390b7b3745691be6b @@ -18400,7 +17468,7 @@ __metadata: languageName: node linkType: hard -"concat-stream@npm:^1.4.4, concat-stream@npm:^1.5.0": +"concat-stream@npm:^1.4.4, concat-stream@npm:^1.6.2": version: 1.6.2 resolution: "concat-stream@npm:1.6.2" dependencies: @@ -18462,14 +17530,14 @@ __metadata: languageName: node linkType: hard -"console-browserify@npm:^1.1.0": +"console-browserify@npm:^1.2.0": version: 1.2.0 resolution: "console-browserify@npm:1.2.0" checksum: 226591eeff8ed68e451dffb924c1fb750c654d54b9059b3b261d360f369d1f8f70650adecf2c7136656236a4bfeb55c39281b5d8a55d792ebbb99efd3d848d52 languageName: node linkType: hard -"console-control-strings@npm:^1.0.0, console-control-strings@npm:^1.1.0": +"console-control-strings@npm:^1.1.0": version: 1.1.0 resolution: "console-control-strings@npm:1.1.0" checksum: 8755d76787f94e6cf79ce4666f0c5519906d7f5b02d4b884cf41e11dcd759ed69c57da0670afd9236d229a46e0f9cf519db0cd829c6dca820bb5a5c3def584ed @@ -18513,17 +17581,6 @@ __metadata: languageName: node linkType: hard -"content-hash@npm:^2.5.2": - version: 2.5.2 - resolution: "content-hash@npm:2.5.2" - dependencies: - cids: ^0.7.1 - multicodec: ^0.5.5 - multihashes: ^0.4.15 - checksum: 31869e4d137b59d02003df0c0f0ad080744d878ed12a57f7d20b2cfd526d59d6317e9f52fa6e49cba59df7f9ab49ceb96d6a832685b85bae442e0c906f7193be - languageName: node - linkType: hard - "content-type@npm:1.0.4, content-type@npm:~1.0.4": version: 1.0.4 resolution: "content-type@npm:1.0.4" @@ -18538,7 +17595,7 @@ __metadata: languageName: node linkType: hard -"convert-source-map@npm:^1.4.0, convert-source-map@npm:^1.5.0, convert-source-map@npm:^1.6.0, convert-source-map@npm:^1.7.0": +"convert-source-map@npm:^1.5.0, convert-source-map@npm:^1.6.0, convert-source-map@npm:^1.7.0": version: 1.8.0 resolution: "convert-source-map@npm:1.8.0" dependencies: @@ -18568,13 +17625,6 @@ __metadata: languageName: node linkType: hard -"cookie@npm:0.4.2, cookie@npm:^0.4.2": - version: 0.4.2 - resolution: "cookie@npm:0.4.2" - checksum: a00833c998bedf8e787b4c342defe5fa419abd96b32f4464f718b91022586b8f1bafbddd499288e75c037642493c83083da426c6a9080d309e3bd90fd11baa9b - languageName: node - linkType: hard - "cookie@npm:0.5.0, cookie@npm:^0.5.0, cookie@npm:~0.5.0": version: 0.5.0 resolution: "cookie@npm:0.5.0" @@ -18582,6 +17632,13 @@ __metadata: languageName: node linkType: hard +"cookie@npm:^0.4.2": + version: 0.4.2 + resolution: "cookie@npm:0.4.2" + checksum: a00833c998bedf8e787b4c342defe5fa419abd96b32f4464f718b91022586b8f1bafbddd499288e75c037642493c83083da426c6a9080d309e3bd90fd11baa9b + languageName: node + linkType: hard + "cookiejar@npm:^2.1.2": version: 2.1.3 resolution: "cookiejar@npm:2.1.3" @@ -18598,27 +17655,6 @@ __metadata: languageName: node linkType: hard -"copy-concurrently@npm:^1.0.0": - version: 1.0.5 - resolution: "copy-concurrently@npm:1.0.5" - dependencies: - aproba: ^1.1.1 - fs-write-stream-atomic: ^1.0.8 - iferr: ^0.1.5 - mkdirp: ^0.5.1 - rimraf: ^2.5.4 - run-queue: ^1.0.0 - checksum: 63c169f582e09445260988f697b2d07793d439dfc31e97c8999707bd188dd94d1c7f2ca3533c7786fb75f03a3f2f54ad1ee08055f95f61bb8d2e862498c1d460 - languageName: node - linkType: hard - -"copy-descriptor@npm:^0.1.0": - version: 0.1.1 - resolution: "copy-descriptor@npm:0.1.1" - checksum: d4b7b57b14f1d256bb9aa0b479241048afd7f5bcf22035fc7b94e8af757adeae247ea23c1a774fe44869fd5694efba4a969b88d966766c5245fdee59837fe45b - languageName: node - linkType: hard - "copy-to-clipboard@npm:^3": version: 3.3.1 resolution: "copy-to-clipboard@npm:3.3.1" @@ -18653,13 +17689,19 @@ __metadata: languageName: node linkType: hard -"core-js-compat@npm:^3.8.1": - version: 3.23.4 - resolution: "core-js-compat@npm:3.23.4" +"core-js-compat@npm:^3.33.1": + version: 3.34.0 + resolution: "core-js-compat@npm:3.34.0" dependencies: - browserslist: ^4.21.1 - semver: 7.0.0 - checksum: cf9d48496576ed297b00ff78ef64f6da01681fa810e3e3283034d097be9de4ff113151eb5da1f40212fc1dc882749156db9b311d8dbad289e0e9172d05cc83de + browserslist: ^4.22.2 + checksum: 6281f7f57a72f254c06611ec088445e11cf84e0b4edfb5f43dece1a1ff8b0ed0e81ed0bc291024761cd90c39d0f007d8bc46548265139808081d311c7cbc9c81 + languageName: node + linkType: hard + +"core-js-pure@npm:^3.23.3": + version: 3.34.0 + resolution: "core-js-pure@npm:3.34.0" + checksum: 4c44ac4beff42e07f41eef3c9ecefc8ee3f9e91e1b9f278bf8520cc1fb37afb663cff77c182541dc42d58737f93ab0f30a33a5fe661fb161fdd8aa7fe78a5edf languageName: node linkType: hard @@ -18670,13 +17712,6 @@ __metadata: languageName: node linkType: hard -"core-js-pure@npm:^3.8.1": - version: 3.23.4 - resolution: "core-js-pure@npm:3.23.4" - checksum: 54afc79508ded6c1b59aacdf32fc1621f0246b10401e6228e7b145fe3960335c8863580e6ce8560bb8004aa69ea2328a5baa11d2e15965b6333b8fd839657601 - languageName: node - linkType: hard - "core-js@npm:^3": version: 3.21.1 resolution: "core-js@npm:3.21.1" @@ -18684,13 +17719,6 @@ __metadata: languageName: node linkType: hard -"core-js@npm:^3.0.4, core-js@npm:^3.6.5, core-js@npm:^3.8.2": - version: 3.23.4 - resolution: "core-js@npm:3.23.4" - checksum: 1317591dbd4a6dc357b68da324dfab52ffecc0193fe577c55bedc058af3ec96a47c7d68dff4dc914badf398ca120c0b58815fca3a162a497abf73166910d834c - languageName: node - linkType: hard - "core-util-is@npm:1.0.2": version: 1.0.2 resolution: "core-util-is@npm:1.0.2" @@ -18705,16 +17733,6 @@ __metadata: languageName: node linkType: hard -"cors@npm:^2.8.1": - version: 2.8.5 - resolution: "cors@npm:2.8.5" - dependencies: - object-assign: ^4 - vary: ^1 - checksum: ced838404ccd184f61ab4fdc5847035b681c90db7ac17e428f3d81d69e2989d2b680cc254da0e2554f5ed4f8a341820a1ce3d1c16b499f6e2f47a1b9b07b5006 - languageName: node - linkType: hard - "cosmiconfig@npm:^6.0.0": version: 6.0.0 resolution: "cosmiconfig@npm:6.0.0" @@ -18728,20 +17746,20 @@ __metadata: languageName: node linkType: hard -"cosmiconfig@npm:^7.0.0": - version: 7.0.1 - resolution: "cosmiconfig@npm:7.0.1" +"cosmiconfig@npm:^7.0.1": + version: 7.1.0 + resolution: "cosmiconfig@npm:7.1.0" dependencies: "@types/parse-json": ^4.0.0 import-fresh: ^3.2.1 parse-json: ^5.0.0 path-type: ^4.0.0 yaml: ^1.10.0 - checksum: 4be63e7117955fd88333d7460e4c466a90f556df6ef34efd59034d2463484e339666c41f02b523d574a797ec61f4a91918c5b89a316db2ea2f834e0d2d09465b + checksum: c53bf7befc1591b2651a22414a5e786cd5f2eeaa87f3678a3d49d6069835a9d8d1aef223728e98aa8fec9a95bf831120d245096db12abe019fecb51f5696c96f languageName: node linkType: hard -"cosmiconfig@npm:^8.1.0, cosmiconfig@npm:^8.1.3": +"cosmiconfig@npm:^8.1.0, cosmiconfig@npm:^8.1.3, cosmiconfig@npm:^8.2.0": version: 8.3.6 resolution: "cosmiconfig@npm:8.3.6" dependencies: @@ -18765,35 +17783,6 @@ __metadata: languageName: node linkType: hard -"cp-file@npm:^7.0.0": - version: 7.0.0 - resolution: "cp-file@npm:7.0.0" - dependencies: - graceful-fs: ^4.1.2 - make-dir: ^3.0.0 - nested-error-stacks: ^2.0.0 - p-event: ^4.1.0 - checksum: dd60ed8d865d25a69548e15b21dd0d2fc66f10371e4970aa21b626a7578ebf419f44f386977ed3b3726c07401d4a64ee679cf1da566d8f66f01e9a359b85201f - languageName: node - linkType: hard - -"cpy@npm:^8.1.2": - version: 8.1.2 - resolution: "cpy@npm:8.1.2" - dependencies: - arrify: ^2.0.1 - cp-file: ^7.0.0 - globby: ^9.2.0 - has-glob: ^1.0.0 - junk: ^3.1.0 - nested-error-stacks: ^2.1.0 - p-all: ^2.1.0 - p-filter: ^2.1.0 - p-map: ^3.0.0 - checksum: e121f13f2b6af4a7c00de17984086a45b67eaaeeb0286a5cf67f2fdaf18d8ce6c2a9fe4ccfa37953e6982f55772f384f040f45f1961530655838c2b7486788a7 - languageName: node - linkType: hard - "crc-32@npm:^1.2.0": version: 1.2.1 resolution: "crc-32@npm:1.2.1" @@ -18882,7 +17871,7 @@ __metadata: languageName: node linkType: hard -"cross-fetch@npm:3.1.5, cross-fetch@npm:^3.1.4, cross-fetch@npm:^3.1.5": +"cross-fetch@npm:3.1.5, cross-fetch@npm:^3.1.5": version: 3.1.5 resolution: "cross-fetch@npm:3.1.5" dependencies: @@ -18942,7 +17931,7 @@ __metadata: languageName: node linkType: hard -"crypto-browserify@npm:3.12.0, crypto-browserify@npm:^3.11.0": +"crypto-browserify@npm:^3.11.0, crypto-browserify@npm:^3.12.0": version: 3.12.0 resolution: "crypto-browserify@npm:3.12.0" dependencies: @@ -19012,46 +18001,21 @@ __metadata: languageName: node linkType: hard -"css-loader@npm:^3.6.0": - version: 3.6.0 - resolution: "css-loader@npm:3.6.0" - dependencies: - camelcase: ^5.3.1 - cssesc: ^3.0.0 - icss-utils: ^4.1.1 - loader-utils: ^1.2.3 - normalize-path: ^3.0.0 - postcss: ^7.0.32 - postcss-modules-extract-imports: ^2.0.0 - postcss-modules-local-by-default: ^3.0.2 - postcss-modules-scope: ^2.2.0 - postcss-modules-values: ^3.0.0 - postcss-value-parser: ^4.1.0 - schema-utils: ^2.7.0 - semver: ^6.3.0 - peerDependencies: - webpack: ^4.0.0 || ^5.0.0 - checksum: a45d7ee8105eea7a76caa45286f4b31f9413520511ae99a78886c522305a94c8adf289951f989d239919a9ffc08ea8cac2bf9c362f21b65d6f54f6812e904cc0 - languageName: node - linkType: hard - -"css-loader@npm:^5.0.1": - version: 5.2.7 - resolution: "css-loader@npm:5.2.7" +"css-loader@npm:^6.7.1, css-loader@npm:^6.7.3": + version: 6.8.1 + resolution: "css-loader@npm:6.8.1" dependencies: icss-utils: ^5.1.0 - loader-utils: ^2.0.0 - postcss: ^8.2.15 + postcss: ^8.4.21 postcss-modules-extract-imports: ^3.0.0 - postcss-modules-local-by-default: ^4.0.0 + postcss-modules-local-by-default: ^4.0.3 postcss-modules-scope: ^3.0.0 postcss-modules-values: ^4.0.0 - postcss-value-parser: ^4.1.0 - schema-utils: ^3.0.0 - semver: ^7.3.5 + postcss-value-parser: ^4.2.0 + semver: ^7.3.8 peerDependencies: - webpack: ^4.27.0 || ^5.0.0 - checksum: fb0742b30ac0919f94b99a323bdefe6d48ae46d66c7d966aae59031350532f368f8bba5951fcd268f2e053c5e6e4655551076268e9073ccb58e453f98ae58f8e + webpack: ^5.0.0 + checksum: 7c1784247bdbe76dc5c55fb1ac84f1d4177a74c47259942c9cfdb7a8e6baef11967a0bc85ac285f26bd26d5059decb848af8154a03fdb4f4894f41212f45eef3 languageName: node linkType: hard @@ -19180,22 +18144,6 @@ __metadata: languageName: node linkType: hard -"currently-unhandled@npm:^0.4.1": - version: 0.4.1 - resolution: "currently-unhandled@npm:0.4.1" - dependencies: - array-find-index: ^1.0.1 - checksum: 1f59fe10b5339b54b1a1eee110022f663f3495cf7cf2f480686e89edc7fa8bfe42dbab4b54f85034bc8b092a76cc7becbc2dad4f9adad332ab5831bec39ad540 - languageName: node - linkType: hard - -"cyclist@npm:^1.0.1": - version: 1.0.1 - resolution: "cyclist@npm:1.0.1" - checksum: 3cc2fdeb358599ca0ea96f5ecf2fc530ccab7ed1f8aa1a894aebfacd2009281bd7380cb9b30db02a18cdd00b3ed1d7ce81a3b11fe56e33a6a0fe4424dc592fbe - languageName: node - linkType: hard - "d3-array@npm:2 - 3, d3-array@npm:2.10.0 - 3, d3-array@npm:^3.1.6": version: 3.2.3 resolution: "d3-array@npm:3.2.3" @@ -19289,16 +18237,6 @@ __metadata: languageName: node linkType: hard -"d@npm:1, d@npm:^1.0.1": - version: 1.0.1 - resolution: "d@npm:1.0.1" - dependencies: - es5-ext: ^0.10.50 - type: ^1.0.1 - checksum: 49ca0639c7b822db670de93d4fbce44b4aa072cd848c76292c9978a8cd0fff1028763020ff4b0f147bd77bfe29b4c7f82e0f71ade76b2a06100543cdfd948d19 - languageName: node - linkType: hard - "damerau-levenshtein@npm:^1.0.7": version: 1.0.8 resolution: "damerau-levenshtein@npm:1.0.8" @@ -19425,7 +18363,7 @@ __metadata: languageName: node linkType: hard -"debug@npm:2.6.9, debug@npm:^2.2.0, debug@npm:^2.3.3, debug@npm:^2.6.0, debug@npm:^2.6.9": +"debug@npm:2.6.9, debug@npm:^2.2.0, debug@npm:^2.6.0, debug@npm:^2.6.9": version: 2.6.9 resolution: "debug@npm:2.6.9" dependencies: @@ -19446,7 +18384,7 @@ __metadata: languageName: node linkType: hard -"debug@npm:^3.0.0, debug@npm:^3.2.7": +"debug@npm:^3.2.7": version: 3.2.7 resolution: "debug@npm:3.2.7" dependencies: @@ -19465,7 +18403,7 @@ __metadata: languageName: node linkType: hard -"decamelize@npm:^1.1.0, decamelize@npm:^1.1.2, decamelize@npm:^1.2.0": +"decamelize@npm:^1.1.0, decamelize@npm:^1.2.0": version: 1.2.0 resolution: "decamelize@npm:1.2.0" checksum: ad8c51a7e7e0720c70ec2eeb1163b66da03e7616d7b98c9ef43cce2416395e84c1e9548dd94f5f6ffecfee9f8b94251fc57121a8b021f2ff2469b2bae247b8aa @@ -19495,22 +18433,6 @@ __metadata: languageName: node linkType: hard -"decode-uri-component@npm:^0.2.0": - version: 0.2.0 - resolution: "decode-uri-component@npm:0.2.0" - checksum: f3749344ab9305ffcfe4bfe300e2dbb61fc6359e2b736812100a3b1b6db0a5668cba31a05e4b45d4d63dbf1a18dfa354cd3ca5bb3ededddabb8cd293f4404f94 - languageName: node - linkType: hard - -"decompress-response@npm:^3.2.0, decompress-response@npm:^3.3.0": - version: 3.3.0 - resolution: "decompress-response@npm:3.3.0" - dependencies: - mimic-response: ^1.0.0 - checksum: 952552ac3bd7de2fc18015086b09468645c9638d98a551305e485230ada278c039c91116e946d07894b39ee53c0f0d5b6473f25a224029344354513b412d7380 - languageName: node - linkType: hard - "decompress-response@npm:^6.0.0": version: 6.0.0 resolution: "decompress-response@npm:6.0.0" @@ -19527,7 +18449,7 @@ __metadata: languageName: node linkType: hard -"deep-eql@npm:^4.1.2": +"deep-eql@npm:^4.1.3": version: 4.1.3 resolution: "deep-eql@npm:4.1.3" dependencies: @@ -19536,14 +18458,40 @@ __metadata: languageName: node linkType: hard -"deep-extend@npm:0.6.0": +"deep-equal@npm:^2.0.5": + version: 2.2.3 + resolution: "deep-equal@npm:2.2.3" + dependencies: + array-buffer-byte-length: ^1.0.0 + call-bind: ^1.0.5 + es-get-iterator: ^1.1.3 + get-intrinsic: ^1.2.2 + is-arguments: ^1.1.1 + is-array-buffer: ^3.0.2 + is-date-object: ^1.0.5 + is-regex: ^1.1.4 + is-shared-array-buffer: ^1.0.2 + isarray: ^2.0.5 + object-is: ^1.1.5 + object-keys: ^1.1.1 + object.assign: ^4.1.4 + regexp.prototype.flags: ^1.5.1 + side-channel: ^1.0.4 + which-boxed-primitive: ^1.0.2 + which-collection: ^1.0.1 + which-typed-array: ^1.1.13 + checksum: ee8852f23e4d20a5626c13b02f415ba443a1b30b4b3d39eaf366d59c4a85e6545d7ec917db44d476a85ae5a86064f7e5f7af7479f38f113995ba869f3a1ddc53 + languageName: node + linkType: hard + +"deep-extend@npm:0.6.0, deep-extend@npm:^0.6.0": version: 0.6.0 resolution: "deep-extend@npm:0.6.0" checksum: 7be7e5a8d468d6b10e6a67c3de828f55001b6eb515d014f7aeb9066ce36bd5717161eb47d6a0f7bed8a9083935b465bc163ee2581c8b128d29bf61092fdf57a7 languageName: node linkType: hard -"deep-is@npm:^0.1.3, deep-is@npm:~0.1.3": +"deep-is@npm:^0.1.3": version: 0.1.4 resolution: "deep-is@npm:0.1.4" checksum: edb65dd0d7d1b9c40b2f50219aef30e116cedd6fc79290e740972c132c09106d2e80aa0bc8826673dd5a00222d4179c84b36a790eef63a4c4bca75a37ef90804 @@ -19571,16 +18519,13 @@ __metadata: languageName: node linkType: hard -"default-browser-id@npm:^1.0.4": - version: 1.0.4 - resolution: "default-browser-id@npm:1.0.4" +"default-browser-id@npm:3.0.0": + version: 3.0.0 + resolution: "default-browser-id@npm:3.0.0" dependencies: - bplist-parser: ^0.1.0 - meow: ^3.1.0 - untildify: ^2.0.0 - bin: - default-browser-id: cli.js - checksum: c6576428ebdd304d209e09c40803c974de3236232fdfa564d82bd1e985246a0d0f0b344f2b207fcbf663b925c20d30ab4d77fbe2755d2be3a6073f12620b9056 + bplist-parser: ^0.2.0 + untildify: ^4.0.0 + checksum: 279c7ad492542e5556336b6c254a4eaf31b2c63a5433265655ae6e47301197b6cfb15c595a6fdc6463b2ff8e1a1a1ed3cba56038a60e1527ba4ab1628c6b9941 languageName: node linkType: hard @@ -19593,7 +18538,7 @@ __metadata: languageName: node linkType: hard -"defer-to-connect@npm:^2.0.0, defer-to-connect@npm:^2.0.1": +"defer-to-connect@npm:^2.0.0": version: 2.0.1 resolution: "defer-to-connect@npm:2.0.1" checksum: 8a9b50d2f25446c0bfefb55a48e90afd58f85b21bcf78e9207cd7b804354f6409032a1705c2491686e202e64fc05f147aa5aa45f9aa82627563f045937f5791b @@ -19609,6 +18554,17 @@ __metadata: languageName: node linkType: hard +"define-data-property@npm:^1.0.1, define-data-property@npm:^1.1.1": + version: 1.1.1 + resolution: "define-data-property@npm:1.1.1" + dependencies: + get-intrinsic: ^1.2.1 + gopd: ^1.0.1 + has-property-descriptors: ^1.0.0 + checksum: a29855ad3f0630ea82e3c5012c812efa6ca3078d5c2aa8df06b5f597c1cde6f7254692df41945851d903e05a1668607b6d34e778f402b9ff9ffb38111f1a3f0d + languageName: node + linkType: hard + "define-lazy-prop@npm:^2.0.0": version: 2.0.0 resolution: "define-lazy-prop@npm:2.0.0" @@ -19616,16 +18572,6 @@ __metadata: languageName: node linkType: hard -"define-properties@npm:^1.1.2, define-properties@npm:^1.1.4": - version: 1.1.4 - resolution: "define-properties@npm:1.1.4" - dependencies: - has-property-descriptors: ^1.0.0 - object-keys: ^1.1.1 - checksum: ce0aef3f9eb193562b5cfb79b2d2c86b6a109dfc9fdcb5f45d680631a1a908c06824ddcdb72b7573b54e26ace07f0a23420aaba0d5c627b34d2c1de8ef527e2b - languageName: node - linkType: hard - "define-properties@npm:^1.1.3": version: 1.1.3 resolution: "define-properties@npm:1.1.3" @@ -19635,31 +18581,31 @@ __metadata: languageName: node linkType: hard -"define-property@npm:^0.2.5": - version: 0.2.5 - resolution: "define-property@npm:0.2.5" +"define-properties@npm:^1.1.4": + version: 1.1.4 + resolution: "define-properties@npm:1.1.4" dependencies: - is-descriptor: ^0.1.0 - checksum: 85af107072b04973b13f9e4128ab74ddfda48ec7ad2e54b193c0ffb57067c4ce5b7786a7b4ae1f24bd03e87c5d18766b094571810b314d7540f86d4354dbd394 + has-property-descriptors: ^1.0.0 + object-keys: ^1.1.1 + checksum: ce0aef3f9eb193562b5cfb79b2d2c86b6a109dfc9fdcb5f45d680631a1a908c06824ddcdb72b7573b54e26ace07f0a23420aaba0d5c627b34d2c1de8ef527e2b languageName: node linkType: hard -"define-property@npm:^1.0.0": - version: 1.0.0 - resolution: "define-property@npm:1.0.0" +"define-properties@npm:^1.2.0": + version: 1.2.1 + resolution: "define-properties@npm:1.2.1" dependencies: - is-descriptor: ^1.0.0 - checksum: 5fbed11dace44dd22914035ba9ae83ad06008532ca814d7936a53a09e897838acdad5b108dd0688cc8d2a7cf0681acbe00ee4136cf36743f680d10517379350a + define-data-property: ^1.0.1 + has-property-descriptors: ^1.0.0 + object-keys: ^1.1.1 + checksum: b4ccd00597dd46cb2d4a379398f5b19fca84a16f3374e2249201992f36b30f6835949a9429669ee6b41b6e837205a163eadd745e472069e70dfc10f03e5fcc12 languageName: node linkType: hard -"define-property@npm:^2.0.2": - version: 2.0.2 - resolution: "define-property@npm:2.0.2" - dependencies: - is-descriptor: ^1.0.2 - isobject: ^3.0.1 - checksum: 3217ed53fc9eed06ba8da6f4d33e28c68a82e2f2a8ab4d562c4920d8169a166fe7271453675e6c69301466f36a65d7f47edf0cf7f474b9aa52a5ead9c1b13c99 +"defu@npm:^6.1.2": + version: 6.1.3 + resolution: "defu@npm:6.1.3" + checksum: c857a0cf854632e8528dad36454fd1c812bff8f5f091d5a6892e75d7f6b76d8319afbbfb8c504daab84ac86e40037ff37c544d50f89ed5b5419ba1989a226777 languageName: node linkType: hard @@ -19745,22 +18691,6 @@ __metadata: languageName: node linkType: hard -"destroy@npm:~1.0.4": - version: 1.0.4 - resolution: "destroy@npm:1.0.4" - checksum: da9ab4961dc61677c709da0c25ef01733042614453924d65636a7db37308fef8a24cd1e07172e61173d471ca175371295fbc984b0af5b2b4ff47cd57bd784c03 - languageName: node - linkType: hard - -"detab@npm:2.0.4": - version: 2.0.4 - resolution: "detab@npm:2.0.4" - dependencies: - repeat-string: ^1.5.4 - checksum: 34b077521ecd4c6357d32ff7923be644d34aa6f6b7d717d40ec4a9168243eefaea2b512a75a460a6f70c31b0bbc31ff90f820a891803b4ddaf99e9d04d0d389d - languageName: node - linkType: hard - "detect-element-overflow@npm:^1.2.0": version: 1.2.0 resolution: "detect-element-overflow@npm:1.2.0" @@ -19768,13 +18698,20 @@ __metadata: languageName: node linkType: hard -"detect-indent@npm:^6.0.0": +"detect-indent@npm:^6.0.0, detect-indent@npm:^6.1.0": version: 6.1.0 resolution: "detect-indent@npm:6.1.0" checksum: ab953a73c72dbd4e8fc68e4ed4bfd92c97eb6c43734af3900add963fd3a9316f3bc0578b018b24198d4c31a358571eff5f0656e81a1f3b9ad5c547d58b2d093d languageName: node linkType: hard +"detect-libc@npm:^2.0.0, detect-libc@npm:^2.0.2": + version: 2.0.2 + resolution: "detect-libc@npm:2.0.2" + checksum: 2b2cd3649b83d576f4be7cc37eb3b1815c79969c8b1a03a40a4d55d83bc74d010753485753448eacb98784abf22f7dbd3911fd3b60e29fda28fed2d1a997944d + languageName: node + linkType: hard + "detect-node-es@npm:^1.1.0": version: 1.1.0 resolution: "detect-node-es@npm:1.1.0" @@ -19860,15 +18797,6 @@ __metadata: languageName: node linkType: hard -"dir-glob@npm:^2.2.2": - version: 2.2.2 - resolution: "dir-glob@npm:2.2.2" - dependencies: - path-type: ^3.0.0 - checksum: 3aa48714a9f7845ffc30ab03a5c674fe760477cc55e67b0847333371549227d93953e6627ec160f75140c5bea5c5f88d13c01de79bd1997a588efbcf06980842 - languageName: node - linkType: hard - "dir-glob@npm:^3.0.1": version: 3.0.1 resolution: "dir-glob@npm:3.0.1" @@ -19974,10 +18902,10 @@ __metadata: languageName: node linkType: hard -"domain-browser@npm:^1.1.1": - version: 1.2.0 - resolution: "domain-browser@npm:1.2.0" - checksum: 8f1235c7f49326fb762f4675795246a6295e7dd566b4697abec24afdba2460daa7dfbd1a73d31efbf5606b3b7deadb06ce47cf06f0a476e706153d62a4ff2b90 +"domain-browser@npm:^4.22.0": + version: 4.23.0 + resolution: "domain-browser@npm:4.23.0" + checksum: 95b772f5fa88300240694380e06e03868573acdf86ca392a58c78602d6536dca2097ad2469a1500bd23a1329b09992de846e0b66c364cbf5711a7fee3ee5dac9 languageName: node linkType: hard @@ -19997,15 +18925,6 @@ __metadata: languageName: node linkType: hard -"domhandler@npm:^3.0.0": - version: 3.3.0 - resolution: "domhandler@npm:3.3.0" - dependencies: - domelementtype: ^2.0.1 - checksum: 850e5e9fee7834ab4314811e18bc1f4294d7eafbf6a79ad03cbe50cf964108935c97257ac248944d72a9312b4a18dfa8323e857d23278964dc83b1f124467fa3 - languageName: node - linkType: hard - "domhandler@npm:^4.0.0, domhandler@npm:^4.2.0, domhandler@npm:^4.3.1": version: 4.3.1 resolution: "domhandler@npm:4.3.1" @@ -20038,7 +18957,7 @@ __metadata: languageName: node linkType: hard -"domutils@npm:^2.0.0, domutils@npm:^2.5.2, domutils@npm:^2.8.0": +"domutils@npm:^2.5.2, domutils@npm:^2.8.0": version: 2.8.0 resolution: "domutils@npm:2.8.0" dependencies: @@ -20118,10 +19037,10 @@ __metadata: languageName: node linkType: hard -"dotenv-expand@npm:^5.1.0": - version: 5.1.0 - resolution: "dotenv-expand@npm:5.1.0" - checksum: 8017675b7f254384915d55f9eb6388e577cf0a1231a28d54b0ca03b782be9501b0ac90ac57338636d395fa59051e6209e9b44b8ddf169ce6076dffb5dea227d3 +"dotenv-expand@npm:^10.0.0": + version: 10.0.0 + resolution: "dotenv-expand@npm:10.0.0" + checksum: 2a38b470efe0abcb1ac8490421a55e1d764dc9440fd220942bce40965074f3fb00b585f4346020cb0f0f219966ee6b4ee5023458b3e2953fe5b3214de1b314ee languageName: node linkType: hard @@ -20160,13 +19079,6 @@ __metadata: languageName: node linkType: hard -"dotenv@npm:^8.0.0": - version: 8.6.0 - resolution: "dotenv@npm:8.6.0" - checksum: 38e902c80b0666ab59e9310a3d24ed237029a7ce34d976796349765ac96b8d769f6df19090f1f471b77a25ca391971efde8a1ea63bb83111bd8bec8e5cc9b2cd - languageName: node - linkType: hard - "downshift@npm:^6.1.9": version: 6.1.9 resolution: "downshift@npm:6.1.9" @@ -20196,13 +19108,6 @@ __metadata: languageName: node linkType: hard -"duplexer3@npm:^0.1.4": - version: 0.1.4 - resolution: "duplexer3@npm:0.1.4" - checksum: c2fd6969314607d23439c583699aaa43c4100d66b3e161df55dccd731acc57d5c81a64bb4f250805fbe434ddb1d2623fee2386fb890f5886ca1298690ec53415 - languageName: node - linkType: hard - "duplexer@npm:^0.1.2, duplexer@npm:~0.1.1": version: 0.1.2 resolution: "duplexer@npm:0.1.2" @@ -20210,7 +19115,7 @@ __metadata: languageName: node linkType: hard -"duplexify@npm:^3.4.2, duplexify@npm:^3.6.0": +"duplexify@npm:^3.5.0, duplexify@npm:^3.6.0": version: 3.7.1 resolution: "duplexify@npm:3.7.1" dependencies: @@ -20306,7 +19211,14 @@ __metadata: languageName: node linkType: hard -"elliptic@npm:6.5.4, elliptic@npm:^6.4.0, elliptic@npm:^6.5.3, elliptic@npm:^6.5.4": +"electron-to-chromium@npm:^1.4.601": + version: 1.4.605 + resolution: "electron-to-chromium@npm:1.4.605" + checksum: 2d42afd5d8cfc053d68944891f02fb007931fae85c0a19bc4f458bb3430e793b8a76664b058e1b06ab99e784f73e4c6b56493eaede2ff6012dbcaf8781fec4a7 + languageName: node + linkType: hard + +"elliptic@npm:^6.5.3": version: 6.5.4 resolution: "elliptic@npm:6.5.4" dependencies: @@ -20408,18 +19320,7 @@ __metadata: languageName: node linkType: hard -"enhanced-resolve@npm:^4.5.0": - version: 4.5.0 - resolution: "enhanced-resolve@npm:4.5.0" - dependencies: - graceful-fs: ^4.1.2 - memory-fs: ^0.5.0 - tapable: ^1.0.0 - checksum: 4d87488584c4d67d356ef4ba04978af4b2d4d18190cb859efac8e8475a34d5d6c069df33faa5a0a22920b0586dbf330f6a08d52bb15a8771a9ce4d70a2da74ba - languageName: node - linkType: hard - -"enhanced-resolve@npm:^5.10.0, enhanced-resolve@npm:^5.9.3": +"enhanced-resolve@npm:^5.10.0": version: 5.10.0 resolution: "enhanced-resolve@npm:5.10.0" dependencies: @@ -20429,6 +19330,16 @@ __metadata: languageName: node linkType: hard +"enhanced-resolve@npm:^5.15.0": + version: 5.15.0 + resolution: "enhanced-resolve@npm:5.15.0" + dependencies: + graceful-fs: ^4.2.4 + tapable: ^2.2.0 + checksum: fbd8cdc9263be71cc737aa8a7d6c57b43d6aa38f6cc75dde6fcd3598a130cc465f979d2f4d01bb3bf475acb43817749c79f8eef9be048683602ca91ab52e4f11 + languageName: node + linkType: hard + "enhanced-resolve@npm:^5.7.0": version: 5.9.2 resolution: "enhanced-resolve@npm:5.9.2" @@ -20439,7 +19350,7 @@ __metadata: languageName: node linkType: hard -"enquirer@npm:^2.3.0, enquirer@npm:^2.3.5": +"enquirer@npm:^2.3.0": version: 2.3.6 resolution: "enquirer@npm:2.3.6" dependencies: @@ -20498,6 +19409,15 @@ __metadata: languageName: node linkType: hard +"envinfo@npm:^7.7.3": + version: 7.11.0 + resolution: "envinfo@npm:7.11.0" + bin: + envinfo: dist/cli.js + checksum: c45a7d20409d5f4cda72483b150d3816b15b434f2944d72c1495d8838bd7c4e7b2f32c12128ffb9b92b5f66f436237b8a525eb3a9a5da2d20013bc4effa28aef + languageName: node + linkType: hard + "err-code@npm:^2.0.2": version: 2.0.3 resolution: "err-code@npm:2.0.3" @@ -20505,7 +19425,7 @@ __metadata: languageName: node linkType: hard -"errno@npm:^0.1.1, errno@npm:^0.1.3, errno@npm:~0.1.1, errno@npm:~0.1.7": +"errno@npm:^0.1.1, errno@npm:~0.1.1": version: 0.1.8 resolution: "errno@npm:0.1.8" dependencies: @@ -20516,7 +19436,7 @@ __metadata: languageName: node linkType: hard -"error-ex@npm:^1.2.0, error-ex@npm:^1.3.1": +"error-ex@npm:^1.3.1": version: 1.3.2 resolution: "error-ex@npm:1.3.2" dependencies: @@ -20534,7 +19454,7 @@ __metadata: languageName: node linkType: hard -"es-abstract@npm:^1.18.5, es-abstract@npm:^1.19.0, es-abstract@npm:^1.19.1": +"es-abstract@npm:^1.19.0, es-abstract@npm:^1.19.1": version: 1.19.2 resolution: "es-abstract@npm:1.19.2" dependencies: @@ -20562,7 +19482,7 @@ __metadata: languageName: node linkType: hard -"es-abstract@npm:^1.19.2, es-abstract@npm:^1.19.5, es-abstract@npm:^1.20.1": +"es-abstract@npm:^1.19.2, es-abstract@npm:^1.19.5": version: 1.20.1 resolution: "es-abstract@npm:1.20.1" dependencies: @@ -20640,33 +19560,27 @@ __metadata: languageName: node linkType: hard -"es-array-method-boxes-properly@npm:^1.0.0": - version: 1.0.0 - resolution: "es-array-method-boxes-properly@npm:1.0.0" - checksum: 2537fcd1cecf187083890bc6f5236d3a26bf39237433587e5bf63392e88faae929dbba78ff0120681a3f6f81c23fe3816122982c160d63b38c95c830b633b826 - languageName: node - linkType: hard - -"es-get-iterator@npm:^1.0.2": - version: 1.1.2 - resolution: "es-get-iterator@npm:1.1.2" +"es-get-iterator@npm:^1.1.3": + version: 1.1.3 + resolution: "es-get-iterator@npm:1.1.3" dependencies: call-bind: ^1.0.2 - get-intrinsic: ^1.1.0 - has-symbols: ^1.0.1 - is-arguments: ^1.1.0 + get-intrinsic: ^1.1.3 + has-symbols: ^1.0.3 + is-arguments: ^1.1.1 is-map: ^2.0.2 is-set: ^2.0.2 - is-string: ^1.0.5 + is-string: ^1.0.7 isarray: ^2.0.5 - checksum: f75e66acb6a45686fa08b3ade9c9421a70d36a0c43ed4363e67f4d7aab2226cb73dd977cb48abbaf75721b946d3cd810682fcf310c7ad0867802fbf929b17dcf + stop-iteration-iterator: ^1.0.0 + checksum: 8fa118da42667a01a7c7529f8a8cca514feeff243feec1ce0bb73baaa3514560bd09d2b3438873cf8a5aaec5d52da248131de153b28e2638a061b6e4df13267d languageName: node linkType: hard -"es-module-lexer@npm:^0.9.0, es-module-lexer@npm:^0.9.3": - version: 0.9.3 - resolution: "es-module-lexer@npm:0.9.3" - checksum: 84bbab23c396281db2c906c766af58b1ae2a1a2599844a504df10b9e8dc77ec800b3211fdaa133ff700f5703d791198807bba25d9667392d27a5e9feda344da8 +"es-module-lexer@npm:^1.2.1, es-module-lexer@npm:^1.4.1": + version: 1.4.1 + resolution: "es-module-lexer@npm:1.4.1" + checksum: a11b5a256d4e8e9c7d94c2fd87415ccd1591617b6edd847e064503f8eaece2d25e2e9078a02c5ce3ed5e83bb748f5b4820efbe78072c8beb07ac619c2edec35d languageName: node linkType: hard @@ -20690,56 +19604,28 @@ __metadata: languageName: node linkType: hard -"es5-ext@npm:^0.10.35, es5-ext@npm:^0.10.50": - version: 0.10.59 - resolution: "es5-ext@npm:0.10.59" - dependencies: - es6-iterator: ^2.0.3 - es6-symbol: ^3.1.3 - next-tick: ^1.1.0 - checksum: 3b931910d90eec2c5266f714fdef2e71b58ba3e9139d054ac0cb1c90db5b4a41989dd490885e037665450f1a4fb778b2ee8daccb6e1a5d9a07f853fd92018da6 - languageName: node - linkType: hard - -"es5-shim@npm:^4.5.13": - version: 4.6.7 - resolution: "es5-shim@npm:4.6.7" - checksum: f2f60cf3d9c682106c51a70d27d41273d2edb3b90fa8795a2765be4a214574b71ddf9147a7972eb82998d94f96ca015d29f5915efd3af0a6c09673abd4299ee8 - languageName: node - linkType: hard - -"es6-iterator@npm:^2.0.3": - version: 2.0.3 - resolution: "es6-iterator@npm:2.0.3" - dependencies: - d: 1 - es5-ext: ^0.10.35 - es6-symbol: ^3.1.1 - checksum: 6e48b1c2d962c21dee604b3d9f0bc3889f11ed5a8b33689155a2065d20e3107e2a69cc63a71bd125aeee3a589182f8bbcb5c8a05b6a8f38fa4205671b6d09697 - languageName: node - linkType: hard - -"es6-promise@npm:^4.2.4, es6-promise@npm:^4.2.8": +"es6-promise@npm:^4.2.4": version: 4.2.8 resolution: "es6-promise@npm:4.2.8" checksum: 95614a88873611cb9165a85d36afa7268af5c03a378b35ca7bda9508e1d4f1f6f19a788d4bc755b3fd37c8ebba40782018e02034564ff24c9d6fa37e959ad57d languageName: node linkType: hard -"es6-shim@npm:^0.35.5": - version: 0.35.6 - resolution: "es6-shim@npm:0.35.6" - checksum: 31b27a7ce0432dd97c523da97e43dbcbf607093ac139697ac2e70d7ab67a90e9c362477a85f36961ebb0d09d0ffdaace45f5c9807f788849b28cc6a847e68c53 +"esbuild-plugin-alias@npm:^0.2.1": + version: 0.2.1 + resolution: "esbuild-plugin-alias@npm:0.2.1" + checksum: afe2d2c8b5f09d5321cb8d9c0825e8a9f6e03c2d50df92f953a291d4620cc29eddb3da9e33b238f6d8f77738e0277bdcb831f127399449fecf78fb84c04e5da9 languageName: node linkType: hard -"es6-symbol@npm:^3.1.1, es6-symbol@npm:^3.1.3": - version: 3.1.3 - resolution: "es6-symbol@npm:3.1.3" +"esbuild-register@npm:^3.5.0": + version: 3.5.0 + resolution: "esbuild-register@npm:3.5.0" dependencies: - d: ^1.0.1 - ext: ^1.1.2 - checksum: cd49722c2a70f011eb02143ef1c8c70658d2660dead6641e160b94619f408b9cf66425515787ffe338affdf0285ad54f4eae30ea5bd510e33f8659ec53bcaa70 + debug: ^4.3.4 + peerDependencies: + esbuild: ">=0.12 <1" + checksum: f4307753c9672a2c901d04a1165031594a854f0a4c6f4c1db08aa393b68a193d38f2df483dc8ca0513e89f7b8998415e7e26fb9830989fb8cdccc5fb5f181c6b languageName: node linkType: hard @@ -20820,6 +19706,160 @@ __metadata: languageName: node linkType: hard +"esbuild@npm:^0.18.0": + version: 0.18.20 + resolution: "esbuild@npm:0.18.20" + dependencies: + "@esbuild/android-arm": 0.18.20 + "@esbuild/android-arm64": 0.18.20 + "@esbuild/android-x64": 0.18.20 + "@esbuild/darwin-arm64": 0.18.20 + "@esbuild/darwin-x64": 0.18.20 + "@esbuild/freebsd-arm64": 0.18.20 + "@esbuild/freebsd-x64": 0.18.20 + "@esbuild/linux-arm": 0.18.20 + "@esbuild/linux-arm64": 0.18.20 + "@esbuild/linux-ia32": 0.18.20 + "@esbuild/linux-loong64": 0.18.20 + "@esbuild/linux-mips64el": 0.18.20 + "@esbuild/linux-ppc64": 0.18.20 + "@esbuild/linux-riscv64": 0.18.20 + "@esbuild/linux-s390x": 0.18.20 + "@esbuild/linux-x64": 0.18.20 + "@esbuild/netbsd-x64": 0.18.20 + "@esbuild/openbsd-x64": 0.18.20 + "@esbuild/sunos-x64": 0.18.20 + "@esbuild/win32-arm64": 0.18.20 + "@esbuild/win32-ia32": 0.18.20 + "@esbuild/win32-x64": 0.18.20 + dependenciesMeta: + "@esbuild/android-arm": + optional: true + "@esbuild/android-arm64": + optional: true + "@esbuild/android-x64": + optional: true + "@esbuild/darwin-arm64": + optional: true + "@esbuild/darwin-x64": + optional: true + "@esbuild/freebsd-arm64": + optional: true + "@esbuild/freebsd-x64": + optional: true + "@esbuild/linux-arm": + optional: true + "@esbuild/linux-arm64": + optional: true + "@esbuild/linux-ia32": + optional: true + "@esbuild/linux-loong64": + optional: true + "@esbuild/linux-mips64el": + optional: true + "@esbuild/linux-ppc64": + optional: true + "@esbuild/linux-riscv64": + optional: true + "@esbuild/linux-s390x": + optional: true + "@esbuild/linux-x64": + optional: true + "@esbuild/netbsd-x64": + optional: true + "@esbuild/openbsd-x64": + optional: true + "@esbuild/sunos-x64": + optional: true + "@esbuild/win32-arm64": + optional: true + "@esbuild/win32-ia32": + optional: true + "@esbuild/win32-x64": + optional: true + bin: + esbuild: bin/esbuild + checksum: 5d253614e50cdb6ec22095afd0c414f15688e7278a7eb4f3720a6dd1306b0909cf431e7b9437a90d065a31b1c57be60130f63fe3e8d0083b588571f31ee6ec7b + languageName: node + linkType: hard + +"esbuild@npm:^0.19.3": + version: 0.19.8 + resolution: "esbuild@npm:0.19.8" + dependencies: + "@esbuild/android-arm": 0.19.8 + "@esbuild/android-arm64": 0.19.8 + "@esbuild/android-x64": 0.19.8 + "@esbuild/darwin-arm64": 0.19.8 + "@esbuild/darwin-x64": 0.19.8 + "@esbuild/freebsd-arm64": 0.19.8 + "@esbuild/freebsd-x64": 0.19.8 + "@esbuild/linux-arm": 0.19.8 + "@esbuild/linux-arm64": 0.19.8 + "@esbuild/linux-ia32": 0.19.8 + "@esbuild/linux-loong64": 0.19.8 + "@esbuild/linux-mips64el": 0.19.8 + "@esbuild/linux-ppc64": 0.19.8 + "@esbuild/linux-riscv64": 0.19.8 + "@esbuild/linux-s390x": 0.19.8 + "@esbuild/linux-x64": 0.19.8 + "@esbuild/netbsd-x64": 0.19.8 + "@esbuild/openbsd-x64": 0.19.8 + "@esbuild/sunos-x64": 0.19.8 + "@esbuild/win32-arm64": 0.19.8 + "@esbuild/win32-ia32": 0.19.8 + "@esbuild/win32-x64": 0.19.8 + dependenciesMeta: + "@esbuild/android-arm": + optional: true + "@esbuild/android-arm64": + optional: true + "@esbuild/android-x64": + optional: true + "@esbuild/darwin-arm64": + optional: true + "@esbuild/darwin-x64": + optional: true + "@esbuild/freebsd-arm64": + optional: true + "@esbuild/freebsd-x64": + optional: true + "@esbuild/linux-arm": + optional: true + "@esbuild/linux-arm64": + optional: true + "@esbuild/linux-ia32": + optional: true + "@esbuild/linux-loong64": + optional: true + "@esbuild/linux-mips64el": + optional: true + "@esbuild/linux-ppc64": + optional: true + "@esbuild/linux-riscv64": + optional: true + "@esbuild/linux-s390x": + optional: true + "@esbuild/linux-x64": + optional: true + "@esbuild/netbsd-x64": + optional: true + "@esbuild/openbsd-x64": + optional: true + "@esbuild/sunos-x64": + optional: true + "@esbuild/win32-arm64": + optional: true + "@esbuild/win32-ia32": + optional: true + "@esbuild/win32-x64": + optional: true + bin: + esbuild: bin/esbuild + checksum: 1dff99482ecbfcc642ec66c71e4dc5c73ce6aef68e8158a4937890b570e86a95959ac47e0f14785ba70df5a673ae4289df88a162e9759b02367ed28074cee8ba + languageName: node + linkType: hard + "escalade@npm:^3.1.1": version: 3.1.1 resolution: "escalade@npm:3.1.1" @@ -20855,14 +19895,13 @@ __metadata: languageName: node linkType: hard -"escodegen@npm:^2.0.0": - version: 2.0.0 - resolution: "escodegen@npm:2.0.0" +"escodegen@npm:^2.1.0": + version: 2.1.0 + resolution: "escodegen@npm:2.1.0" dependencies: esprima: ^4.0.1 estraverse: ^5.2.0 esutils: ^2.0.2 - optionator: ^0.8.1 source-map: ~0.6.1 dependenciesMeta: source-map: @@ -20870,7 +19909,7 @@ __metadata: bin: escodegen: bin/escodegen.js esgenerate: bin/esgenerate.js - checksum: 5aa6b2966fafe0545e4e77936300cc94ad57cfe4dc4ebff9950492eaba83eef634503f12d7e3cbd644ecc1bab388ad0e92b06fd32222c9281a75d1cf02ec6cef + checksum: 096696407e161305cd05aebb95134ad176708bc5cb13d0dcc89a5fcbb959b8ed757e7f2591a5f8036f8f4952d4a724de0df14cd419e29212729fa6df5ce16bf6 languageName: node linkType: hard @@ -21147,17 +20186,7 @@ __metadata: languageName: node linkType: hard -"eslint-scope@npm:^4.0.3": - version: 4.0.3 - resolution: "eslint-scope@npm:4.0.3" - dependencies: - esrecurse: ^4.1.0 - estraverse: ^4.1.1 - checksum: c5f835f681884469991fe58d76a554688d9c9e50811299ccd4a8f79993a039f5bcb0ee6e8de2b0017d97c794b5832ef3b21c9aac66228e3aa0f7a0485bcfb65b - languageName: node - linkType: hard - -"eslint-scope@npm:^7.1.0, eslint-scope@npm:^7.1.1": +"eslint-scope@npm:^7.1.1": version: 7.1.1 resolution: "eslint-scope@npm:7.1.1" dependencies: @@ -21185,7 +20214,7 @@ __metadata: languageName: node linkType: hard -"eslint-visitor-keys@npm:^3.1.0, eslint-visitor-keys@npm:^3.3.0": +"eslint-visitor-keys@npm:^3.3.0": version: 3.3.0 resolution: "eslint-visitor-keys@npm:3.3.0" checksum: d59e68a7c5a6d0146526b0eec16ce87fbf97fe46b8281e0d41384224375c4e52f5ffb9e16d48f4ea50785cde93f766b0c898e31ab89978d88b0e1720fbfb7808 @@ -21199,54 +20228,6 @@ __metadata: languageName: node linkType: hard -"eslint@npm:8.4.1": - version: 8.4.1 - resolution: "eslint@npm:8.4.1" - dependencies: - "@eslint/eslintrc": ^1.0.5 - "@humanwhocodes/config-array": ^0.9.2 - ajv: ^6.10.0 - chalk: ^4.0.0 - cross-spawn: ^7.0.2 - debug: ^4.3.2 - doctrine: ^3.0.0 - enquirer: ^2.3.5 - escape-string-regexp: ^4.0.0 - eslint-scope: ^7.1.0 - eslint-utils: ^3.0.0 - eslint-visitor-keys: ^3.1.0 - espree: ^9.2.0 - esquery: ^1.4.0 - esutils: ^2.0.2 - fast-deep-equal: ^3.1.3 - file-entry-cache: ^6.0.1 - functional-red-black-tree: ^1.0.1 - glob-parent: ^6.0.1 - globals: ^13.6.0 - ignore: ^4.0.6 - import-fresh: ^3.0.0 - imurmurhash: ^0.1.4 - is-glob: ^4.0.0 - js-yaml: ^4.1.0 - json-stable-stringify-without-jsonify: ^1.0.1 - levn: ^0.4.1 - lodash.merge: ^4.6.2 - minimatch: ^3.0.4 - natural-compare: ^1.4.0 - optionator: ^0.9.1 - progress: ^2.0.0 - regexpp: ^3.2.0 - semver: ^7.2.1 - strip-ansi: ^6.0.1 - strip-json-comments: ^3.1.0 - text-table: ^0.2.0 - v8-compile-cache: ^2.0.3 - bin: - eslint: bin/eslint.js - checksum: d962cd7cd0f68ddc2412f47154b8992ad3af987cf47fa6e60e51a2b7d32a91f934388f7d29e2c45b16b7ac69f0d220d0a483189ec6ba43a8a480110c34f158f9 - languageName: node - linkType: hard - "eslint@npm:^8.34.0": version: 8.34.0 resolution: "eslint@npm:8.34.0" @@ -21303,39 +20284,6 @@ __metadata: languageName: node linkType: hard -"espree@npm:9.2.0": - version: 9.2.0 - resolution: "espree@npm:9.2.0" - dependencies: - acorn: ^8.6.0 - acorn-jsx: ^5.3.1 - eslint-visitor-keys: ^3.1.0 - checksum: ae533a058036e3efeeac43a0ee39c74ab347e2a73bbe2946fba33cc0d84aca657e675bc317ed9afd95338f79d5d5a862afec2f717d2539ae13fa9f1638371761 - languageName: node - linkType: hard - -"espree@npm:^9.2.0": - version: 9.3.3 - resolution: "espree@npm:9.3.3" - dependencies: - acorn: ^8.8.0 - acorn-jsx: ^5.3.2 - eslint-visitor-keys: ^3.3.0 - checksum: 33e8a36fc15d082e68672e322e22a53856b564d60aad8f291a667bfc21b2c900c42412d37dd3c7a0f18b9d0d8f8858dabe8776dbd4b4c2f72c5cf4d6afeabf65 - languageName: node - linkType: hard - -"espree@npm:^9.3.2": - version: 9.3.2 - resolution: "espree@npm:9.3.2" - dependencies: - acorn: ^8.7.1 - acorn-jsx: ^5.3.2 - eslint-visitor-keys: ^3.3.0 - checksum: 9a790d6779847051e87f70d720a0f6981899a722419e80c92ab6dee01e1ab83b8ce52d11b4dc96c2c490182efb5a4c138b8b0d569205bfe1cd4629e658e58c30 - languageName: node - linkType: hard - "espree@npm:^9.4.0": version: 9.4.1 resolution: "espree@npm:9.4.1" @@ -21366,7 +20314,7 @@ __metadata: languageName: node linkType: hard -"esrecurse@npm:^4.1.0, esrecurse@npm:^4.3.0": +"esrecurse@npm:^4.3.0": version: 4.3.0 resolution: "esrecurse@npm:4.3.0" dependencies: @@ -21389,17 +20337,6 @@ __metadata: languageName: node linkType: hard -"estree-to-babel@npm:^3.1.0": - version: 3.2.1 - resolution: "estree-to-babel@npm:3.2.1" - dependencies: - "@babel/traverse": ^7.1.6 - "@babel/types": ^7.2.0 - c8: ^7.6.0 - checksum: a4584d0c60b80ce41abe91b11052f5d48635e811c67839942c4ebd51aa33d9f9b156ad615f71ceae2a8260b5e3054f36d73db6d0d2a3b9951483f4b6187495c8 - languageName: node - linkType: hard - "estree-walker@npm:^1.0.1": version: 1.0.1 resolution: "estree-walker@npm:1.0.1" @@ -21428,96 +20365,6 @@ __metadata: languageName: node linkType: hard -"eth-ens-namehash@npm:2.0.8": - version: 2.0.8 - resolution: "eth-ens-namehash@npm:2.0.8" - dependencies: - idna-uts46-hx: ^2.3.1 - js-sha3: ^0.5.7 - checksum: 40ce4aeedaa4e7eb4485c8d8857457ecc46a4652396981d21b7e3a5f922d5beff63c71cb4b283c935293e530eba50b329d9248be3c433949c6bc40c850c202a3 - languageName: node - linkType: hard - -"eth-lib@npm:0.2.8": - version: 0.2.8 - resolution: "eth-lib@npm:0.2.8" - dependencies: - bn.js: ^4.11.6 - elliptic: ^6.4.0 - xhr-request-promise: ^0.1.2 - checksum: be7efb0b08a78e20d12d2892363ecbbc557a367573ac82fc26a549a77a1b13c7747e6eadbb88026634828fcf9278884b555035787b575b1cab5e6958faad0fad - languageName: node - linkType: hard - -"eth-lib@npm:^0.1.26": - version: 0.1.29 - resolution: "eth-lib@npm:0.1.29" - dependencies: - bn.js: ^4.11.6 - elliptic: ^6.4.0 - nano-json-stream-parser: ^0.1.2 - servify: ^0.1.12 - ws: ^3.0.0 - xhr-request-promise: ^0.1.2 - checksum: d1494fc0af372d46d1c9e7506cfbfa81b9073d98081cf4cbe518932f88bee40cf46a764590f1f8aba03d4a534fa2b1cd794fa2a4f235f656d82b8ab185b5cb9d - languageName: node - linkType: hard - -"ethereum-bloom-filters@npm:^1.0.6": - version: 1.0.10 - resolution: "ethereum-bloom-filters@npm:1.0.10" - dependencies: - js-sha3: ^0.8.0 - checksum: 4019cc6f9274ae271a52959194a72f6e9b013366f168f922dc3b349319faf7426bf1010125ee0676b4f75714fe4a440edd4e7e62342c121a046409f4cd4c0af9 - languageName: node - linkType: hard - -"ethereum-cryptography@npm:^0.1.3": - version: 0.1.3 - resolution: "ethereum-cryptography@npm:0.1.3" - dependencies: - "@types/pbkdf2": ^3.0.0 - "@types/secp256k1": ^4.0.1 - blakejs: ^1.1.0 - browserify-aes: ^1.2.0 - bs58check: ^2.1.2 - create-hash: ^1.2.0 - create-hmac: ^1.1.7 - hash.js: ^1.1.7 - keccak: ^3.0.0 - pbkdf2: ^3.0.17 - randombytes: ^2.1.0 - safe-buffer: ^5.1.2 - scrypt-js: ^3.0.0 - secp256k1: ^4.0.1 - setimmediate: ^1.0.5 - checksum: 54bae7a4a96bd81398cdc35c91cfcc74339f71a95ed1b5b694663782e69e8e3afd21357de3b8bac9ff4877fd6f043601e200a7ad9133d94be6fd7d898ee0a449 - languageName: node - linkType: hard - -"ethereumjs-util@npm:^7.0.10, ethereumjs-util@npm:^7.1.0, ethereumjs-util@npm:^7.1.4": - version: 7.1.4 - resolution: "ethereumjs-util@npm:7.1.4" - dependencies: - "@types/bn.js": ^5.1.0 - bn.js: ^5.1.2 - create-hash: ^1.1.2 - ethereum-cryptography: ^0.1.3 - rlp: ^2.2.4 - checksum: ccfd9208bfe9205af124a9138c5a90db46cd2fcacf4b80f17f67915381c03253aa2fb90ead9e0b53d9a6fcfeed4310e5dfa8dc516ca2846d16baf81d605cd8c2 - languageName: node - linkType: hard - -"ethjs-unit@npm:0.1.6": - version: 0.1.6 - resolution: "ethjs-unit@npm:0.1.6" - dependencies: - bn.js: 4.11.6 - number-to-bn: 1.7.0 - checksum: df6b4752ff7461a59a20219f4b1684c631ea601241c39660e3f6c6bd63c950189723841c22b3c6c0ebeb3c9fc99e0e803e3c613101206132603705fcbcf4def5 - languageName: node - linkType: hard - "event-stream@npm:3.3.4": version: 3.3.4 resolution: "event-stream@npm:3.3.4" @@ -21540,13 +20387,6 @@ __metadata: languageName: node linkType: hard -"eventemitter3@npm:4.0.4": - version: 4.0.4 - resolution: "eventemitter3@npm:4.0.4" - checksum: 7afb1cd851d19898bc99cc55ca894fe18cb1f8a07b0758652830a09bd6f36082879a25345be6219b81d74764140688b1a8fa75bcd1073d96b9a6661e444bc2ea - languageName: node - linkType: hard - "eventemitter3@npm:^4.0.1, eventemitter3@npm:^4.0.4": version: 4.0.7 resolution: "eventemitter3@npm:4.0.7" @@ -21592,14 +20432,7 @@ __metadata: languageName: node linkType: hard -"exec-sh@npm:^0.3.2": - version: 0.3.6 - resolution: "exec-sh@npm:0.3.6" - checksum: 0be4f06929c8e4834ea4812f29fe59e2dfcc1bc3fc4b4bb71acb38a500c3b394628a05ef7ba432520bc6c5ec4fadab00cc9c513c4ff6a32104965af302e998e0 - languageName: node - linkType: hard - -"execa@npm:1.0.0, execa@npm:^1.0.0": +"execa@npm:1.0.0": version: 1.0.0 resolution: "execa@npm:1.0.0" dependencies: @@ -21614,7 +20447,7 @@ __metadata: languageName: node linkType: hard -"execa@npm:5.1.1, execa@npm:^5.1.1": +"execa@npm:5.1.1, execa@npm:^5.0.0, execa@npm:^5.1.1": version: 5.1.1 resolution: "execa@npm:5.1.1" dependencies: @@ -21645,18 +20478,10 @@ __metadata: languageName: node linkType: hard -"expand-brackets@npm:^2.1.4": - version: 2.1.4 - resolution: "expand-brackets@npm:2.1.4" - dependencies: - debug: ^2.3.3 - define-property: ^0.2.5 - extend-shallow: ^2.0.1 - posix-character-classes: ^0.1.0 - regex-not: ^1.0.0 - snapdragon: ^0.8.1 - to-regex: ^3.0.1 - checksum: 1781d422e7edfa20009e2abda673cadb040a6037f0bd30fcd7357304f4f0c284afd420d7622722ca4a016f39b6d091841ab57b401c1f7e2e5131ac65b9f14fa1 +"expand-template@npm:^2.0.3": + version: 2.0.3 + resolution: "expand-template@npm:2.0.3" + checksum: 588c19847216421ed92befb521767b7018dc88f88b0576df98cb242f20961425e96a92cbece525ef28cc5becceae5d544ae0f5b9b5e2aa05acb13716ca5b3099 languageName: node linkType: hard @@ -21681,51 +20506,13 @@ __metadata: languageName: node linkType: hard -"express@npm:^4.14.0": - version: 4.17.3 - resolution: "express@npm:4.17.3" +"express@npm:^4.17.3": + version: 4.18.2 + resolution: "express@npm:4.18.2" dependencies: accepts: ~1.3.8 array-flatten: 1.1.1 - body-parser: 1.19.2 - content-disposition: 0.5.4 - content-type: ~1.0.4 - cookie: 0.4.2 - cookie-signature: 1.0.6 - debug: 2.6.9 - depd: ~1.1.2 - encodeurl: ~1.0.2 - escape-html: ~1.0.3 - etag: ~1.8.1 - finalhandler: ~1.1.2 - fresh: 0.5.2 - merge-descriptors: 1.0.1 - methods: ~1.1.2 - on-finished: ~2.3.0 - parseurl: ~1.3.3 - path-to-regexp: 0.1.7 - proxy-addr: ~2.0.7 - qs: 6.9.7 - range-parser: ~1.2.1 - safe-buffer: 5.2.1 - send: 0.17.2 - serve-static: 1.14.2 - setprototypeof: 1.2.0 - statuses: ~1.5.0 - type-is: ~1.6.18 - utils-merge: 1.0.1 - vary: ~1.1.2 - checksum: 967e53b74a37eafdf9789b9938c8df86102928b4985b1ad5e385c709deeab405a364de95ca744bc2cc5d05b5d9cc1efc69ae2ae17688a462038648d5a924bfad - languageName: node - linkType: hard - -"express@npm:^4.17.1": - version: 4.18.1 - resolution: "express@npm:4.18.1" - dependencies: - accepts: ~1.3.8 - array-flatten: 1.1.1 - body-parser: 1.20.0 + body-parser: 1.20.1 content-disposition: 0.5.4 content-type: ~1.0.4 cookie: 0.5.0 @@ -21744,7 +20531,7 @@ __metadata: parseurl: ~1.3.3 path-to-regexp: 0.1.7 proxy-addr: ~2.0.7 - qs: 6.10.3 + qs: 6.11.0 range-parser: ~1.2.1 safe-buffer: 5.2.1 send: 0.18.0 @@ -21754,16 +20541,7 @@ __metadata: type-is: ~1.6.18 utils-merge: 1.0.1 vary: ~1.1.2 - checksum: c3d44c92e48226ef32ec978becfedb0ecf0ca21316bfd33674b3c5d20459840584f2325726a4f17f33d9c99f769636f728982d1c5433a5b6fe6eb95b8cf0c854 - languageName: node - linkType: hard - -"ext@npm:^1.1.2": - version: 1.6.0 - resolution: "ext@npm:1.6.0" - dependencies: - type: ^2.5.0 - checksum: ca3ef4619e838f441a92238a98b77ac873da2175ace746c64303ffe2c3208e79a3acf3bf7004e40b720f3c2a83bf0143e6dd4a7cdfae6e73f54a3bfc7a14b5c2 + checksum: 3c4b9b076879442f6b968fe53d85d9f1eeacbb4f4c41e5f16cc36d77ce39a2b0d81b3f250514982110d815b2f7173f5561367f9110fcc541f9371948e8c8b037 languageName: node linkType: hard @@ -21776,16 +20554,6 @@ __metadata: languageName: node linkType: hard -"extend-shallow@npm:^3.0.0, extend-shallow@npm:^3.0.2": - version: 3.0.2 - resolution: "extend-shallow@npm:3.0.2" - dependencies: - assign-symbols: ^1.0.0 - is-extendable: ^1.0.1 - checksum: a920b0cd5838a9995ace31dfd11ab5e79bf6e295aa566910ce53dff19f4b1c0fda2ef21f26b28586c7a2450ca2b42d97bd8c0f5cec9351a819222bf861e02461 - languageName: node - linkType: hard - "extend@npm:^3.0.0, extend@npm:^3.0.2, extend@npm:~3.0.2": version: 3.0.2 resolution: "extend@npm:3.0.2" @@ -21811,22 +20579,6 @@ __metadata: languageName: node linkType: hard -"extglob@npm:^2.0.4": - version: 2.0.4 - resolution: "extglob@npm:2.0.4" - dependencies: - array-unique: ^0.3.2 - define-property: ^1.0.0 - expand-brackets: ^2.1.4 - extend-shallow: ^2.0.1 - fragment-cache: ^0.2.1 - regex-not: ^1.0.0 - snapdragon: ^0.8.1 - to-regex: ^3.0.1 - checksum: a41531b8934735b684cef5e8c5a01d0f298d7d384500ceca38793a9ce098125aab04ee73e2d75d5b2901bc5dddd2b64e1b5e3bf19139ea48bac52af4a92f1d00 - languageName: node - linkType: hard - "extract-files@npm:^11.0.0": version: 11.0.0 resolution: "extract-files@npm:11.0.0" @@ -21834,6 +20586,20 @@ __metadata: languageName: node linkType: hard +"extract-zip@npm:^1.6.6": + version: 1.7.0 + resolution: "extract-zip@npm:1.7.0" + dependencies: + concat-stream: ^1.6.2 + debug: ^2.6.9 + mkdirp: ^0.5.4 + yauzl: ^2.10.0 + bin: + extract-zip: cli.js + checksum: 011bab660d738614555773d381a6ba4815d98c1cfcdcdf027e154ebcc9fc8c9ef637b3ea5c9b2144013100071ee41722ed041fc9aacc60f6198ef747cac0c073 + languageName: node + linkType: hard + "extsprintf@npm:1.3.0": version: 1.3.0 resolution: "extsprintf@npm:1.3.0" @@ -21890,17 +20656,10 @@ __metadata: languageName: node linkType: hard -"fast-glob@npm:^2.2.6": - version: 2.2.7 - resolution: "fast-glob@npm:2.2.7" - dependencies: - "@mrmlnc/readdir-enhanced": ^2.2.1 - "@nodelib/fs.stat": ^1.1.2 - glob-parent: ^3.1.0 - is-glob: ^4.0.0 - merge2: ^1.2.3 - micromatch: ^3.1.10 - checksum: 304ccff1d437fcc44ae0168b0c3899054b92e0fd6af6ad7c3ccc82ab4ddd210b99c7c739d60ee3686da2aa165cd1a31810b31fd91f7c2a575d297342a9fc0534 +"fast-fifo@npm:^1.1.0, fast-fifo@npm:^1.2.0": + version: 1.3.2 + resolution: "fast-fifo@npm:1.3.2" + checksum: 6bfcba3e4df5af7be3332703b69a7898a8ed7020837ec4395bb341bd96cc3a6d86c3f6071dd98da289618cf2234c70d84b2a6f09a33dd6f988b1ff60d8e54275 languageName: node linkType: hard @@ -21964,7 +20723,7 @@ __metadata: languageName: node linkType: hard -"fast-levenshtein@npm:^2.0.6, fast-levenshtein@npm:~2.0.6": +"fast-levenshtein@npm:^2.0.6": version: 2.0.6 resolution: "fast-levenshtein@npm:2.0.6" checksum: 92cfec0a8dfafd9c7a15fba8f2cc29cd0b62b85f056d99ce448bbcd9f708e18ab2764bda4dd5158364f4145a7c72788538994f0d1787b956ef0d1062b0f7c24c @@ -22116,6 +20875,15 @@ __metadata: languageName: node linkType: hard +"fd-slicer@npm:~1.1.0": + version: 1.1.0 + resolution: "fd-slicer@npm:1.1.0" + dependencies: + pend: ~1.2.0 + checksum: c8585fd5713f4476eb8261150900d2cb7f6ff2d87f8feb306ccc8a1122efd152f1783bdb2b8dc891395744583436bfd8081d8e63ece0ec8687eeefea394d4ff2 + languageName: node + linkType: hard + "fetch-retry@npm:^5.0.2": version: 5.0.3 resolution: "fetch-retry@npm:5.0.3" @@ -22151,13 +20919,6 @@ __metadata: languageName: node linkType: hard -"figgy-pudding@npm:^3.5.1": - version: 3.5.2 - resolution: "figgy-pudding@npm:3.5.2" - checksum: 4090bd66193693dcda605e44d6b8715d8fb5c92a67acd57826e55cf816a342f550d57e5638f822b39366e1b2fdb244e99b3068a37213aa1d6c1bf602b8fde5ae - languageName: node - linkType: hard - "figures@npm:^3.0.0, figures@npm:^3.2.0": version: 3.2.0 resolution: "figures@npm:3.2.0" @@ -22176,25 +20937,13 @@ __metadata: languageName: node linkType: hard -"file-loader@npm:^6.2.0": - version: 6.2.0 - resolution: "file-loader@npm:6.2.0" +"file-system-cache@npm:2.3.0": + version: 2.3.0 + resolution: "file-system-cache@npm:2.3.0" dependencies: - loader-utils: ^2.0.0 - schema-utils: ^3.0.0 - peerDependencies: - webpack: ^4.0.0 || ^5.0.0 - checksum: faf43eecf233f4897b0150aaa874eeeac214e4f9de49738a9e0ef734a30b5260059e85b7edadf852b98e415f875bd5f12587768a93fd52aaf2e479ecf95fab20 - languageName: node - linkType: hard - -"file-system-cache@npm:^1.0.5": - version: 1.1.0 - resolution: "file-system-cache@npm:1.1.0" - dependencies: - fs-extra: ^10.1.0 - ramda: ^0.28.0 - checksum: d60d7aadf2e9d1629c20dd423f9e1fc3a9719f80dc4e08017a1aa06a8f8d8f66cf140a63ab68a72f07edd9684786ce7409ef4177b43ed0209cd6bcdbb39dab00 + fs-extra: 11.1.1 + ramda: 0.29.0 + checksum: 74afa2870a062500643d41e02d1fbd47a3f30100f9e153dec5233d59f05545f4c8ada6085629d624e043479ac28c0cafc31824f7b49a3f997efab8cc5d05bfee languageName: node linkType: hard @@ -22205,13 +20954,6 @@ __metadata: languageName: node linkType: hard -"file-uri-to-path@npm:1.0.0": - version: 1.0.0 - resolution: "file-uri-to-path@npm:1.0.0" - checksum: b648580bdd893a008c92c7ecc96c3ee57a5e7b6c4c18a9a09b44fb5d36d79146f8e442578bc0e173dc027adf3987e254ba1dfd6e3ec998b7c282873010502144 - languageName: node - linkType: hard - "filelist@npm:^1.0.4": version: 1.0.4 resolution: "filelist@npm:1.0.4" @@ -22221,18 +20963,6 @@ __metadata: languageName: node linkType: hard -"fill-range@npm:^4.0.0": - version: 4.0.0 - resolution: "fill-range@npm:4.0.0" - dependencies: - extend-shallow: ^2.0.1 - is-number: ^3.0.0 - repeat-string: ^1.6.1 - to-regex-range: ^2.1.0 - checksum: dbb5102467786ab42bc7a3ec7380ae5d6bfd1b5177b2216de89e4a541193f8ba599a6db84651bd2c58c8921db41b8cc3d699ea83b477342d3ce404020f73c298 - languageName: node - linkType: hard - "fill-range@npm:^7.0.1": version: 7.0.1 resolution: "fill-range@npm:7.0.1" @@ -22242,6 +20972,13 @@ __metadata: languageName: node linkType: hard +"filter-obj@npm:^2.0.2": + version: 2.0.2 + resolution: "filter-obj@npm:2.0.2" + checksum: e0d71ebc89515a4305db5158aeb78c9f9a4bfef4bacf272e7de8cadf0d3b694191f6fdbd3b507ee330c266c4287f21804defa8c80693d8c6ad60f1cbfad4f477 + languageName: node + linkType: hard + "finalhandler@npm:1.2.0": version: 1.2.0 resolution: "finalhandler@npm:1.2.0" @@ -22257,22 +20994,7 @@ __metadata: languageName: node linkType: hard -"finalhandler@npm:~1.1.2": - version: 1.1.2 - resolution: "finalhandler@npm:1.1.2" - dependencies: - debug: 2.6.9 - encodeurl: ~1.0.2 - escape-html: ~1.0.3 - on-finished: ~2.3.0 - parseurl: ~1.3.3 - statuses: ~1.5.0 - unpipe: ~1.0.0 - checksum: 617880460c5138dd7ccfd555cb5dde4d8f170f4b31b8bd51e4b646bb2946c30f7db716428a1f2882d730d2b72afb47d1f67cc487b874cb15426f95753a88965e - languageName: node - linkType: hard - -"find-cache-dir@npm:3.3.2, find-cache-dir@npm:^3.3.1": +"find-cache-dir@npm:3.3.2, find-cache-dir@npm:^3.0.0, find-cache-dir@npm:^3.3.1": version: 3.3.2 resolution: "find-cache-dir@npm:3.3.2" dependencies: @@ -22283,7 +21005,7 @@ __metadata: languageName: node linkType: hard -"find-cache-dir@npm:^2.0.0, find-cache-dir@npm:^2.1.0": +"find-cache-dir@npm:^2.0.0": version: 2.1.0 resolution: "find-cache-dir@npm:2.1.0" dependencies: @@ -22294,6 +21016,16 @@ __metadata: languageName: node linkType: hard +"find-cache-dir@npm:^4.0.0": + version: 4.0.0 + resolution: "find-cache-dir@npm:4.0.0" + dependencies: + common-path-prefix: ^3.0.0 + pkg-dir: ^7.0.0 + checksum: 52a456a80deeb27daa3af6e06059b63bdb9cc4af4d845fc6d6229887e505ba913cd56000349caa60bc3aa59dacdb5b4c37903d4ba34c75102d83cab330b70d2f + languageName: node + linkType: hard + "find-root@npm:^1.1.0": version: 1.1.0 resolution: "find-root@npm:1.1.0" @@ -22311,16 +21043,6 @@ __metadata: languageName: node linkType: hard -"find-up@npm:^1.0.0": - version: 1.1.2 - resolution: "find-up@npm:1.1.2" - dependencies: - path-exists: ^2.0.0 - pinkie-promise: ^2.0.0 - checksum: a2cb9f4c9f06ee3a1e92ed71d5aed41ac8ae30aefa568132f6c556fac7678a5035126153b59eaec68da78ac409eef02503b2b059706bdbf232668d7245e3240a - languageName: node - linkType: hard - "find-up@npm:^2.1.0": version: 2.1.0 resolution: "find-up@npm:2.1.0" @@ -22349,6 +21071,16 @@ __metadata: languageName: node linkType: hard +"find-up@npm:^6.3.0": + version: 6.3.0 + resolution: "find-up@npm:6.3.0" + dependencies: + locate-path: ^7.1.0 + path-exists: ^5.0.0 + checksum: 9a21b7f9244a420e54c6df95b4f6fc3941efd3c3e5476f8274eb452f6a85706e7a6a90de71353ee4f091fcb4593271a6f92810a324ec542650398f928783c280 + languageName: node + linkType: hard + "find-yarn-workspace-root2@npm:1.2.16": version: 1.2.16 resolution: "find-yarn-workspace-root2@npm:1.2.16" @@ -22385,22 +21117,10 @@ __metadata: languageName: node linkType: hard -"flush-write-stream@npm:^1.0.0": - version: 1.1.1 - resolution: "flush-write-stream@npm:1.1.1" - dependencies: - inherits: ^2.0.3 - readable-stream: ^2.3.6 - checksum: 42e07747f83bcd4e799da802e621d6039787749ffd41f5517f8c4f786ee967e31ba32b09f8b28a9c6f67bd4f5346772e604202df350e8d99f4141771bae31279 - languageName: node - linkType: hard - -"focus-lock@npm:^0.8.0": - version: 0.8.1 - resolution: "focus-lock@npm:0.8.1" - dependencies: - tslib: ^1.9.3 - checksum: 3b25b06bb8e23a3a826a8eda89e547593a688486df531db92f6b767d96d397dc1efed4529ec3a44cb3ec1fbdd44abe50a30d0ce498f732501b36f5f18b619003 +"flow-parser@npm:0.*": + version: 0.223.3 + resolution: "flow-parser@npm:0.223.3" + checksum: 4c0df178ff2e9140f57b5e7321b11e1cb827e00fbad6f342742c5834bd313f1bb0fe84d919d36e0c593e916c4ae5c8a93fcdb42c4328d6c5d77d75c8eed12090 languageName: node linkType: hard @@ -22424,14 +21144,16 @@ __metadata: languageName: node linkType: hard -"for-in@npm:^1.0.2": - version: 1.0.2 - resolution: "for-in@npm:1.0.2" - checksum: 09f4ae93ce785d253ac963d94c7f3432d89398bf25ac7a24ed034ca393bf74380bdeccc40e0f2d721a895e54211b07c8fad7132e8157827f6f7f059b70b4043d +"for-each@npm:^0.3.3": + version: 0.3.3 + resolution: "for-each@npm:0.3.3" + dependencies: + is-callable: ^1.1.3 + checksum: 6c48ff2bc63362319c65e2edca4a8e1e3483a2fabc72fbe7feaf8c73db94fc7861bd53bc02c8a66a0c1dd709da6b04eec42e0abdd6b40ce47305ae92a25e5d28 languageName: node linkType: hard -"foreach@npm:^2.0.4, foreach@npm:^2.0.5": +"foreach@npm:^2.0.4": version: 2.0.5 resolution: "foreach@npm:2.0.5" checksum: dab4fbfef0b40b69ee5eab81bcb9626b8fa8b3469c8cfa26480f3e5e1ee08c40eae07048c9a967c65aeda26e774511ccc70b3f10a604c01753c6ef24361f0fc8 @@ -22472,56 +21194,26 @@ __metadata: languageName: node linkType: hard -"fork-ts-checker-webpack-plugin@npm:^4.1.6": - version: 4.1.6 - resolution: "fork-ts-checker-webpack-plugin@npm:4.1.6" +"fork-ts-checker-webpack-plugin@npm:^8.0.0": + version: 8.0.0 + resolution: "fork-ts-checker-webpack-plugin@npm:8.0.0" dependencies: - "@babel/code-frame": ^7.5.5 - chalk: ^2.4.1 - micromatch: ^3.1.10 - minimatch: ^3.0.4 - semver: ^5.6.0 - tapable: ^1.0.0 - worker-rpc: ^0.1.0 - checksum: 4cc4fa7919dd9a0d765514d064c86e3a6f9cea8e700996b3e775cfcc0280f606a2dd16203d9b7e294b64e900795b0d80eb41fc8c192857d3350e407f14ef3eed - languageName: node - linkType: hard - -"fork-ts-checker-webpack-plugin@npm:^6.0.4": - version: 6.5.2 - resolution: "fork-ts-checker-webpack-plugin@npm:6.5.2" - dependencies: - "@babel/code-frame": ^7.8.3 - "@types/json-schema": ^7.0.5 - chalk: ^4.1.0 - chokidar: ^3.4.2 - cosmiconfig: ^6.0.0 + "@babel/code-frame": ^7.16.7 + chalk: ^4.1.2 + chokidar: ^3.5.3 + cosmiconfig: ^7.0.1 deepmerge: ^4.2.2 - fs-extra: ^9.0.0 - glob: ^7.1.6 - memfs: ^3.1.2 + fs-extra: ^10.0.0 + memfs: ^3.4.1 minimatch: ^3.0.4 - schema-utils: 2.7.0 - semver: ^7.3.2 - tapable: ^1.0.0 + node-abort-controller: ^3.0.1 + schema-utils: ^3.1.1 + semver: ^7.3.5 + tapable: ^2.2.1 peerDependencies: - eslint: ">= 6" - typescript: ">= 2.7" - vue-template-compiler: "*" - webpack: ">= 4" - peerDependenciesMeta: - eslint: - optional: true - vue-template-compiler: - optional: true - checksum: c823de02ee258a26ea5c0c488b2f1825b941f72292417478689862468a9140b209ad7df52f67bd134228fe9f40e9115b604fc8f88a69338929fe52be869469b6 - languageName: node - linkType: hard - -"form-data-encoder@npm:1.7.1": - version: 1.7.1 - resolution: "form-data-encoder@npm:1.7.1" - checksum: a2a360d5588a70d323c12a140c3db23a503a38f0a5d141af1efad579dde9f9fff2e49e5f31f378cb4631518c1ab4a826452c92f0d2869e954b6b2d77b05613e1 + typescript: ">3.6.0" + webpack: ^5.11.0 + checksum: aad4cbc5b802e6281a2700a379837697c93ad95288468f9595219d91d9c26674736d37852bb4c4341e9122f26181e9e05fc1a362e8d029fdd88e99de7816037b languageName: node linkType: hard @@ -22649,15 +21341,6 @@ __metadata: languageName: node linkType: hard -"fragment-cache@npm:^0.2.1": - version: 0.2.1 - resolution: "fragment-cache@npm:0.2.1" - dependencies: - map-cache: ^0.2.2 - checksum: 1cbbd0b0116b67d5790175de0038a11df23c1cd2e8dcdbade58ebba5594c2d641dade6b4f126d82a7b4a6ffc2ea12e3d387dbb64ea2ae97cf02847d436f60fdc - languageName: node - linkType: hard - "framer-motion@npm:^10.12.8": version: 10.12.8 resolution: "framer-motion@npm:10.12.8" @@ -22686,16 +21369,6 @@ __metadata: languageName: node linkType: hard -"from2@npm:^2.1.0": - version: 2.3.0 - resolution: "from2@npm:2.3.0" - dependencies: - inherits: ^2.0.1 - readable-stream: ^2.0.0 - checksum: 6080eba0793dce32f475141fb3d54cc15f84ee52e420ee22ac3ab0ad639dc95a1875bc6eb9c0e1140e94972a36a89dc5542491b85f1ab8df0c126241e0f1a61b - languageName: node - linkType: hard - "from@npm:~0": version: 0.1.7 resolution: "from@npm:0.1.7" @@ -22721,7 +21394,7 @@ __metadata: languageName: node linkType: hard -"fs-extra@npm:^10.1.0": +"fs-extra@npm:^10.0.0": version: 10.1.0 resolution: "fs-extra@npm:10.1.0" dependencies: @@ -22732,14 +21405,14 @@ __metadata: languageName: node linkType: hard -"fs-extra@npm:^4.0.2": - version: 4.0.3 - resolution: "fs-extra@npm:4.0.3" +"fs-extra@npm:^11.1.0": + version: 11.2.0 + resolution: "fs-extra@npm:11.2.0" dependencies: - graceful-fs: ^4.1.2 - jsonfile: ^4.0.0 - universalify: ^0.1.0 - checksum: c5ae3c7043ad7187128e619c0371da01b58694c1ffa02c36fb3f5b459925d9c27c3cb1e095d9df0a34a85ca993d8b8ff6f6ecef868fd5ebb243548afa7fc0936 + graceful-fs: ^4.2.0 + jsonfile: ^6.0.1 + universalify: ^2.0.0 + checksum: b12e42fa40ba47104202f57b8480dd098aa931c2724565e5e70779ab87605665594e76ee5fb00545f772ab9ace167fe06d2ab009c416dc8c842c5ae6df7aa7e8 languageName: node linkType: hard @@ -22765,7 +21438,7 @@ __metadata: languageName: node linkType: hard -"fs-extra@npm:^9.0, fs-extra@npm:^9.0.0, fs-extra@npm:^9.0.1, fs-extra@npm:^9.1.0": +"fs-extra@npm:^9.0, fs-extra@npm:^9.0.1, fs-extra@npm:^9.1.0": version: 9.1.0 resolution: "fs-extra@npm:9.1.0" dependencies: @@ -22786,15 +21459,6 @@ __metadata: languageName: node linkType: hard -"fs-minipass@npm:^1.2.7": - version: 1.2.7 - resolution: "fs-minipass@npm:1.2.7" - dependencies: - minipass: ^2.6.0 - checksum: 40fd46a2b5dcb74b3a580269f9a0c36f9098c2ebd22cef2e1a004f375b7b665c11f1507ec3f66ee6efab5664109f72d0a74ea19c3370842214c3da5168d6fdd7 - languageName: node - linkType: hard - "fs-minipass@npm:^2.0.0, fs-minipass@npm:^2.1.0": version: 2.1.0 resolution: "fs-minipass@npm:2.1.0" @@ -22804,10 +21468,10 @@ __metadata: languageName: node linkType: hard -"fs-monkey@npm:^1.0.3": - version: 1.0.3 - resolution: "fs-monkey@npm:1.0.3" - checksum: cf50804833f9b88a476911ae911fe50f61a98d986df52f890bd97e7262796d023698cb2309fa9b74fdd8974f04315b648748a0a8ee059e7d5257b293bfc409c0 +"fs-monkey@npm:^1.0.4": + version: 1.0.5 + resolution: "fs-monkey@npm:1.0.5" + checksum: 424b67f65b37fe66117ae2bb061f790fe6d4b609e1d160487c74b3d69fbf42f262c665ccfba32e8b5f113f96f92e9a58fcdebe42d5f6649bdfc72918093a3119 languageName: node linkType: hard @@ -22820,18 +21484,6 @@ __metadata: languageName: node linkType: hard -"fs-write-stream-atomic@npm:^1.0.8": - version: 1.0.10 - resolution: "fs-write-stream-atomic@npm:1.0.10" - dependencies: - graceful-fs: ^4.1.2 - iferr: ^0.1.5 - imurmurhash: ^0.1.4 - readable-stream: 1 || 2 - checksum: 43c2d6817b72127793abc811ebf87a135b03ac7cbe41cdea9eeacf59b23e6e29b595739b083e9461303d525687499a1aaefcec3e5ff9bc82b170edd3dc467ccc - languageName: node - linkType: hard - "fs-writefile-promise@npm:^1.0.3": version: 1.0.3 resolution: "fs-writefile-promise@npm:1.0.3" @@ -22856,7 +21508,7 @@ __metadata: languageName: node linkType: hard -"fsevents@npm:2.3.2, fsevents@npm:^2.1.2, fsevents@npm:~2.3.2": +"fsevents@npm:2.3.2, fsevents@npm:~2.3.2": version: 2.3.2 resolution: "fsevents@npm:2.3.2" dependencies: @@ -22866,18 +21518,17 @@ __metadata: languageName: node linkType: hard -"fsevents@npm:^1.2.7": - version: 1.2.13 - resolution: "fsevents@npm:1.2.13" +"fsevents@npm:^2.3.2, fsevents@npm:~2.3.3": + version: 2.3.3 + resolution: "fsevents@npm:2.3.3" dependencies: - bindings: ^1.5.0 - nan: ^2.12.1 - checksum: ae855aa737aaa2f9167e9f70417cf6e45a5cd11918e1fee9923709a0149be52416d765433b4aeff56c789b1152e718cd1b13ddec6043b78cdda68260d86383c1 + node-gyp: latest + checksum: 11e6ea6fea15e42461fc55b4b0e4a0a3c654faa567f1877dbd353f39156f69def97a69936d1746619d656c4b93de2238bf731f6085a03a50cabf287c9d024317 conditions: os=darwin languageName: node linkType: hard -"fsevents@patch:fsevents@2.3.2#~builtin<compat/fsevents>, fsevents@patch:fsevents@^2.1.2#~builtin<compat/fsevents>, fsevents@patch:fsevents@~2.3.2#~builtin<compat/fsevents>": +"fsevents@patch:fsevents@2.3.2#~builtin<compat/fsevents>, fsevents@patch:fsevents@~2.3.2#~builtin<compat/fsevents>": version: 2.3.2 resolution: "fsevents@patch:fsevents@npm%3A2.3.2#~builtin<compat/fsevents>::version=2.3.2&hash=df0bf1" dependencies: @@ -22886,12 +21537,11 @@ __metadata: languageName: node linkType: hard -"fsevents@patch:fsevents@^1.2.7#~builtin<compat/fsevents>": - version: 1.2.13 - resolution: "fsevents@patch:fsevents@npm%3A1.2.13#~builtin<compat/fsevents>::version=1.2.13&hash=d11327" +"fsevents@patch:fsevents@^2.3.2#~builtin<compat/fsevents>, fsevents@patch:fsevents@~2.3.3#~builtin<compat/fsevents>": + version: 2.3.3 + resolution: "fsevents@patch:fsevents@npm%3A2.3.3#~builtin<compat/fsevents>::version=2.3.3&hash=df0bf1" dependencies: - bindings: ^1.5.0 - nan: ^2.12.1 + node-gyp: latest conditions: os=darwin languageName: node linkType: hard @@ -22903,7 +21553,14 @@ __metadata: languageName: node linkType: hard -"function.prototype.name@npm:^1.1.0, function.prototype.name@npm:^1.1.5": +"function-bind@npm:^1.1.2": + version: 1.1.2 + resolution: "function-bind@npm:1.1.2" + checksum: 2b0ff4ce708d99715ad14a6d1f894e2a83242e4a52ccfcefaee5e40050562e5f6dafc1adbb4ce2d4ab47279a45dc736ab91ea5042d843c3c092820dfe032efb1 + languageName: node + linkType: hard + +"function.prototype.name@npm:^1.1.5": version: 1.1.5 resolution: "function.prototype.name@npm:1.1.5" dependencies: @@ -22915,13 +21572,6 @@ __metadata: languageName: node linkType: hard -"functional-red-black-tree@npm:^1.0.1": - version: 1.0.1 - resolution: "functional-red-black-tree@npm:1.0.1" - checksum: ca6c170f37640e2d94297da8bb4bf27a1d12bea3e00e6a3e007fd7aa32e37e000f5772acf941b4e4f3cf1c95c3752033d0c509af157ad8f526e7f00723b9eb9f - languageName: node - linkType: hard - "functions-have-names@npm:^1.2.2, functions-have-names@npm:^1.2.3": version: 1.2.3 resolution: "functions-have-names@npm:1.2.3" @@ -22938,23 +21588,6 @@ __metadata: languageName: node linkType: hard -"gauge@npm:^3.0.0": - version: 3.0.2 - resolution: "gauge@npm:3.0.2" - dependencies: - aproba: ^1.0.3 || ^2.0.0 - color-support: ^1.1.2 - console-control-strings: ^1.0.0 - has-unicode: ^2.0.1 - object-assign: ^4.1.1 - signal-exit: ^3.0.0 - string-width: ^4.2.3 - strip-ansi: ^6.0.1 - wide-align: ^1.1.2 - checksum: 81296c00c7410cdd48f997800155fbead4f32e4f82109be0719c63edc8560e6579946cc8abd04205297640691ec26d21b578837fd13a4e96288ab4b40b1dc3e9 - languageName: node - linkType: hard - "gauge@npm:^4.0.3": version: 4.0.4 resolution: "gauge@npm:4.0.4" @@ -23010,7 +21643,7 @@ __metadata: languageName: node linkType: hard -"gensync@npm:^1.0.0-beta.1, gensync@npm:^1.0.0-beta.2": +"gensync@npm:^1.0.0-beta.2": version: 1.0.0-beta.2 resolution: "gensync@npm:1.0.0-beta.2" checksum: a7437e58c6be12aa6c90f7730eac7fa9833dc78872b4ad2963d2031b00a3367a93f98aec75f9aaac7220848e4026d67a8655e870b24f20a543d103c0d65952ec @@ -23031,6 +21664,13 @@ __metadata: languageName: node linkType: hard +"get-func-name@npm:^2.0.2": + version: 2.0.2 + resolution: "get-func-name@npm:2.0.2" + checksum: 3f62f4c23647de9d46e6f76d2b3eafe58933a9b3830c60669e4180d6c601ce1b4aa310ba8366143f55e52b139f992087a9f0647274e8745621fa2af7e0acf13b + languageName: node + linkType: hard + "get-intrinsic@npm:^1.0.2, get-intrinsic@npm:^1.1.0, get-intrinsic@npm:^1.1.1": version: 1.1.1 resolution: "get-intrinsic@npm:1.1.1" @@ -23053,6 +21693,18 @@ __metadata: languageName: node linkType: hard +"get-intrinsic@npm:^1.2.0, get-intrinsic@npm:^1.2.1, get-intrinsic@npm:^1.2.2": + version: 1.2.2 + resolution: "get-intrinsic@npm:1.2.2" + dependencies: + function-bind: ^1.1.2 + has-proto: ^1.0.1 + has-symbols: ^1.0.3 + hasown: ^2.0.0 + checksum: 447ff0724df26829908dc033b62732359596fcf66027bc131ab37984afb33842d9cd458fd6cecadfe7eac22fd8a54b349799ed334cf2726025c921c7250e7417 + languageName: node + linkType: hard + "get-nonce@npm:^1.0.0": version: 1.0.1 resolution: "get-nonce@npm:1.0.1" @@ -23060,6 +21712,13 @@ __metadata: languageName: node linkType: hard +"get-npm-tarball-url@npm:^2.0.3": + version: 2.1.0 + resolution: "get-npm-tarball-url@npm:2.1.0" + checksum: 02b96993ad5a04cbd0ef0577ac3cc9e2e78a7c60db6bb5e6c8fe78950fc1fc3d093314987629a2fda3083228d91a93670bde321767ca2cf89ce7f463c9e44071 + languageName: node + linkType: hard + "get-own-enumerable-property-symbols@npm:^3.0.0": version: 3.0.2 resolution: "get-own-enumerable-property-symbols@npm:3.0.2" @@ -23074,17 +21733,10 @@ __metadata: languageName: node linkType: hard -"get-stdin@npm:^4.0.1": - version: 4.0.1 - resolution: "get-stdin@npm:4.0.1" - checksum: 4f73d3fe0516bc1f3dc7764466a68ad7c2ba809397a02f56c2a598120e028430fcff137a648a01876b2adfb486b4bc164119f98f1f7d7c0abd63385bdaa0113f - languageName: node - linkType: hard - -"get-stream@npm:^3.0.0": - version: 3.0.0 - resolution: "get-stream@npm:3.0.0" - checksum: 36142f46005ed74ce3a45c55545ec4e7da8e243554179e345a786baf144e5c4a35fb7bdc49fadfa9f18bd08000589b6fe364abdadfc4e1eb0e1b9914a6bb9c56 +"get-port@npm:^5.1.1": + version: 5.1.1 + resolution: "get-port@npm:5.1.1" + checksum: 0162663ffe5c09e748cd79d97b74cd70e5a5c84b760a475ce5767b357fb2a57cb821cee412d646aa8a156ed39b78aab88974eddaa9e5ee926173c036c0713787 languageName: node linkType: hard @@ -23106,7 +21758,7 @@ __metadata: languageName: node linkType: hard -"get-stream@npm:^6.0.0, get-stream@npm:^6.0.1": +"get-stream@npm:^6.0.0": version: 6.0.1 resolution: "get-stream@npm:6.0.1" checksum: e04ecece32c92eebf5b8c940f51468cd53554dcbb0ea725b2748be583c9523d00128137966afce410b9b051eb2ef16d657cd2b120ca8edafcf5a65e81af63cad @@ -23139,13 +21791,6 @@ __metadata: languageName: node linkType: hard -"get-value@npm:^2.0.3, get-value@npm:^2.0.6": - version: 2.0.6 - resolution: "get-value@npm:2.0.6" - checksum: 5c3b99cb5398ea8016bf46ff17afc5d1d286874d2ad38ca5edb6e87d75c0965b0094cb9a9dddef2c59c23d250702323539a7fbdd870620db38c7e7d7ec87c1eb - languageName: node - linkType: hard - "getpass@npm:^0.1.1": version: 0.1.7 resolution: "getpass@npm:0.1.7" @@ -23165,6 +21810,23 @@ __metadata: languageName: node linkType: hard +"giget@npm:^1.0.0": + version: 1.1.3 + resolution: "giget@npm:1.1.3" + dependencies: + colorette: ^2.0.20 + defu: ^6.1.2 + https-proxy-agent: ^7.0.2 + mri: ^1.2.0 + node-fetch-native: ^1.4.0 + pathe: ^1.1.1 + tar: ^6.2.0 + bin: + giget: dist/cli.mjs + checksum: 1a88b29e3eed2c3593a60f92f54512c9b885117b12c3bb8febd6b504c3f101030b7b0270a912c30b6cb9b177539af3c64cddd2c8a5dbda5a155f65426bd3fbf7 + languageName: node + linkType: hard + "git-repo-info@npm:2.1.1": version: 2.1.1 resolution: "git-repo-info@npm:2.1.1" @@ -23179,6 +21841,13 @@ __metadata: languageName: node linkType: hard +"github-from-package@npm:0.0.0": + version: 0.0.0 + resolution: "github-from-package@npm:0.0.0" + checksum: 14e448192a35c1e42efee94c9d01a10f42fe790375891a24b25261246ce9336ab9df5d274585aedd4568f7922246c2a78b8a8cd2571bfe99c693a9718e7dd0e3 + languageName: node + linkType: hard + "github-slugger@npm:^1.0.0": version: 1.4.0 resolution: "github-slugger@npm:1.4.0" @@ -23186,16 +21855,6 @@ __metadata: languageName: node linkType: hard -"glob-parent@npm:^3.1.0": - version: 3.1.0 - resolution: "glob-parent@npm:3.1.0" - dependencies: - is-glob: ^3.1.0 - path-dirname: ^1.0.0 - checksum: 653d559237e89a11b9934bef3f392ec42335602034c928590544d383ff5ef449f7b12f3cfa539708e74bc0a6c28ab1fe51d663cc07463cdf899ba92afd85a855 - languageName: node - linkType: hard - "glob-parent@npm:^5.1.2, glob-parent@npm:~5.1.2": version: 5.1.2 resolution: "glob-parent@npm:5.1.2" @@ -23214,35 +21873,6 @@ __metadata: languageName: node linkType: hard -"glob-promise@npm:^3.4.0": - version: 3.4.0 - resolution: "glob-promise@npm:3.4.0" - dependencies: - "@types/glob": "*" - peerDependencies: - glob: "*" - checksum: 84a2c076e7581c9f8aa7a8a151ad5f9352c4118ba03c5673ecfcf540f4c53aa75f8d32fe493c2286d471dccd7a75932b9bfe97bf782564c1f4a50b9c7954e3b6 - languageName: node - linkType: hard - -"glob-promise@npm:^4.2.0": - version: 4.2.2 - resolution: "glob-promise@npm:4.2.2" - dependencies: - "@types/glob": ^7.1.3 - peerDependencies: - glob: ^7.1.6 - checksum: c1a3d95f7c8393e4151d4899ec4e42bb2e8237160f840ad1eccbe9247407da8b6c13e28f463022e011708bc40862db87b9b77236d35afa3feb8aa86d518f2dfe - languageName: node - linkType: hard - -"glob-to-regexp@npm:^0.3.0": - version: 0.3.0 - resolution: "glob-to-regexp@npm:0.3.0" - checksum: d34b3219d860042d508c4893b67617cd16e2668827e445ff39cff9f72ef70361d3dc24f429e003cdfb6607c75c9664b8eadc41d2eeb95690af0b0d3113c1b23b - languageName: node - linkType: hard - "glob-to-regexp@npm:^0.4.1": version: 0.4.1 resolution: "glob-to-regexp@npm:0.4.1" @@ -23293,7 +21923,22 @@ __metadata: languageName: node linkType: hard -"glob@npm:^7.1.1, glob@npm:^7.2.0, glob@npm:^7.2.3": +"glob@npm:^10.0.0": + version: 10.3.10 + resolution: "glob@npm:10.3.10" + dependencies: + foreground-child: ^3.1.0 + jackspeak: ^2.3.5 + minimatch: ^9.0.1 + minipass: ^5.0.0 || ^6.0.2 || ^7.0.0 + path-scurry: ^1.10.1 + bin: + glob: dist/esm/bin.mjs + checksum: 4f2fe2511e157b5a3f525a54092169a5f92405f24d2aed3142f4411df328baca13059f4182f1db1bf933e2c69c0bd89e57ae87edd8950cba8c7ccbe84f721cf3 + languageName: node + linkType: hard + +"glob@npm:^7.1.1, glob@npm:^7.2.3": version: 7.2.3 resolution: "glob@npm:7.2.3" dependencies: @@ -23343,7 +21988,7 @@ __metadata: languageName: node linkType: hard -"global@npm:^4.4.0, global@npm:~4.4.0": +"global@npm:~4.4.0": version: 4.4.0 resolution: "global@npm:4.4.0" dependencies: @@ -23360,15 +22005,6 @@ __metadata: languageName: node linkType: hard -"globals@npm:^13.15.0": - version: 13.15.0 - resolution: "globals@npm:13.15.0" - dependencies: - type-fest: ^0.20.2 - checksum: 383ade0873b2ab29ce6d143466c203ed960491575bc97406395e5c8434026fb02472ab2dfff5bc16689b8460269b18fda1047975295cd0183904385c51258bae - languageName: node - linkType: hard - "globals@npm:^13.19.0": version: 13.20.0 resolution: "globals@npm:13.20.0" @@ -23378,16 +22014,7 @@ __metadata: languageName: node linkType: hard -"globals@npm:^13.6.0": - version: 13.16.0 - resolution: "globals@npm:13.16.0" - dependencies: - type-fest: ^0.20.2 - checksum: e571b28462b8922a29ac78c8df89848cfd5dc9bdd5d8077440c022864f512a4aae82e7561a2f366337daa86fd4b366aec16fd3f08686de387e4089b01be6cb14 - languageName: node - linkType: hard - -"globalthis@npm:^1.0.0, globalthis@npm:^1.0.3": +"globalthis@npm:^1.0.3": version: 1.0.3 resolution: "globalthis@npm:1.0.3" dependencies: @@ -23456,22 +22083,6 @@ __metadata: languageName: node linkType: hard -"globby@npm:^9.2.0": - version: 9.2.0 - resolution: "globby@npm:9.2.0" - dependencies: - "@types/glob": ^7.1.1 - array-union: ^1.0.2 - dir-glob: ^2.2.2 - fast-glob: ^2.2.6 - glob: ^7.1.3 - ignore: ^4.0.3 - pify: ^4.0.1 - slash: ^2.0.0 - checksum: 9b4cb70aa0b43bf89b18cf0e543695185e16d8dd99c17bdc6a1df0a9f88ff9dc8d2467aebace54c3842fc451a564882948c87a3b4fbdb1cacf3e05fd54b6ac5d - languageName: node - linkType: hard - "globrex@npm:^0.1.2": version: 0.1.2 resolution: "globrex@npm:0.1.2" @@ -23540,24 +22151,12 @@ __metadata: languageName: node linkType: hard -"got@npm:12.1.0": - version: 12.1.0 - resolution: "got@npm:12.1.0" +"gopd@npm:^1.0.1": + version: 1.0.1 + resolution: "gopd@npm:1.0.1" dependencies: - "@sindresorhus/is": ^4.6.0 - "@szmarczak/http-timer": ^5.0.1 - "@types/cacheable-request": ^6.0.2 - "@types/responselike": ^1.0.0 - cacheable-lookup: ^6.0.4 - cacheable-request: ^7.0.2 - decompress-response: ^6.0.0 - form-data-encoder: 1.7.1 - get-stream: ^6.0.1 - http2-wrapper: ^2.1.10 - lowercase-keys: ^3.0.0 - p-cancelable: ^3.0.0 - responselike: ^2.0.0 - checksum: 1cc9af6ca511338a7f1bbb0943999e6ac324ea3c7d826066c02e530b4ac41147b1a4cadad21b28c3938de82185ac99c33d64a3a4560c6e0b0b125191ba6ee619 + get-intrinsic: ^1.1.3 + checksum: a5ccfb8806e0917a94e0b3de2af2ea4979c1da920bc381667c260e00e7cafdbe844e2cb9c5bcfef4e5412e8bf73bab837285bc35c7ba73aaaf0134d4583393a6 languageName: node linkType: hard @@ -23580,28 +22179,6 @@ __metadata: languageName: node linkType: hard -"got@npm:^7.1.0": - version: 7.1.0 - resolution: "got@npm:7.1.0" - dependencies: - decompress-response: ^3.2.0 - duplexer3: ^0.1.4 - get-stream: ^3.0.0 - is-plain-obj: ^1.1.0 - is-retry-allowed: ^1.0.0 - is-stream: ^1.0.0 - isurl: ^1.0.0-alpha5 - lowercase-keys: ^1.0.0 - p-cancelable: ^0.3.0 - p-timeout: ^1.1.1 - safe-buffer: ^5.0.1 - timed-out: ^4.0.0 - url-parse-lax: ^1.0.0 - url-to-options: ^1.0.1 - checksum: 0270472a389bdca67e60d36cccd014e502d1797d925c06ea2ef372fb41ae99c9e25ac4f187cc422760b4a66abb5478f8821b8134b4eaefe0bf5183daeded5e2f - languageName: node - linkType: hard - "graceful-fs@npm:^4.1.11, graceful-fs@npm:^4.1.15, graceful-fs@npm:^4.2.0": version: 4.2.10 resolution: "graceful-fs@npm:4.2.10" @@ -23741,6 +22318,22 @@ __metadata: languageName: node linkType: hard +"gunzip-maybe@npm:^1.4.2": + version: 1.4.2 + resolution: "gunzip-maybe@npm:1.4.2" + dependencies: + browserify-zlib: ^0.1.4 + is-deflate: ^1.0.0 + is-gzip: ^1.0.0 + peek-stream: ^1.1.0 + pumpify: ^1.3.3 + through2: ^2.0.3 + bin: + gunzip-maybe: bin.js + checksum: bc4d4977c24a2860238df271de75d53dd72a359d19f1248d1c613807dc221d3b8ae09624e3085c8106663e3e1b59db62a85b261d1138c2cc24efad9df577d4e1 + languageName: node + linkType: hard + "gzip-size@npm:^6.0.0": version: 6.0.0 resolution: "gzip-size@npm:6.0.0" @@ -23829,15 +22422,6 @@ __metadata: languageName: node linkType: hard -"has-glob@npm:^1.0.0": - version: 1.0.0 - resolution: "has-glob@npm:1.0.0" - dependencies: - is-glob: ^3.0.0 - checksum: cafad93e599f49f676a9ab444ec90210fcda35ac14ad6c9bb96c08057ad18a1318f1116b053aa6bdc744f19252537006872d3fc76785e842bbe8cc4312447fc8 - languageName: node - linkType: hard - "has-property-descriptors@npm:^1.0.0": version: 1.0.0 resolution: "has-property-descriptors@npm:1.0.0" @@ -23847,10 +22431,10 @@ __metadata: languageName: node linkType: hard -"has-symbol-support-x@npm:^1.4.1": - version: 1.4.2 - resolution: "has-symbol-support-x@npm:1.4.2" - checksum: ff06631d556d897424c00e8e79c10093ad34c93e88bb0563932d7837f148a4c90a4377abc5d8da000cb6637c0ecdb4acc9ae836c7cfd0ffc919986db32097609 +"has-proto@npm:^1.0.1": + version: 1.0.1 + resolution: "has-proto@npm:1.0.1" + checksum: febc5b5b531de8022806ad7407935e2135f1cc9e64636c3916c6842bd7995994ca3b29871ecd7954bd35f9e2986c17b3b227880484d22259e2f8e6ce63fd383e languageName: node linkType: hard @@ -23861,15 +22445,6 @@ __metadata: languageName: node linkType: hard -"has-to-string-tag-x@npm:^1.2.0": - version: 1.4.1 - resolution: "has-to-string-tag-x@npm:1.4.1" - dependencies: - has-symbol-support-x: ^1.4.1 - checksum: 804c4505727be7770f8b2f5e727ce31c9affc5b83df4ce12344f44b68d557fefb31f77751dbd739de900653126bcd71f8842fac06f97a3fae5422685ab0ce6f0 - languageName: node - linkType: hard - "has-tostringtag@npm:^1.0.0": version: 1.0.0 resolution: "has-tostringtag@npm:1.0.0" @@ -23886,45 +22461,6 @@ __metadata: languageName: node linkType: hard -"has-value@npm:^0.3.1": - version: 0.3.1 - resolution: "has-value@npm:0.3.1" - dependencies: - get-value: ^2.0.3 - has-values: ^0.1.4 - isobject: ^2.0.0 - checksum: 29e2a1e6571dad83451b769c7ce032fce6009f65bccace07c2962d3ad4d5530b6743d8f3229e4ecf3ea8e905d23a752c5f7089100c1f3162039fa6dc3976558f - languageName: node - linkType: hard - -"has-value@npm:^1.0.0": - version: 1.0.0 - resolution: "has-value@npm:1.0.0" - dependencies: - get-value: ^2.0.6 - has-values: ^1.0.0 - isobject: ^3.0.0 - checksum: b9421d354e44f03d3272ac39fd49f804f19bc1e4fa3ceef7745df43d6b402053f828445c03226b21d7d934a21ac9cf4bc569396dc312f496ddff873197bbd847 - languageName: node - linkType: hard - -"has-values@npm:^0.1.4": - version: 0.1.4 - resolution: "has-values@npm:0.1.4" - checksum: ab1c4bcaf811ccd1856c11cfe90e62fca9e2b026ebe474233a3d282d8d67e3b59ed85b622c7673bac3db198cb98bd1da2b39300a2f98e453729b115350af49bc - languageName: node - linkType: hard - -"has-values@npm:^1.0.0": - version: 1.0.0 - resolution: "has-values@npm:1.0.0" - dependencies: - is-number: ^3.0.0 - kind-of: ^4.0.0 - checksum: 77e6693f732b5e4cf6c38dfe85fdcefad0fab011af74995c3e83863fabf5e3a836f406d83565816baa0bc0a523c9410db8b990fe977074d61aeb6d8f4fcffa11 - languageName: node - linkType: hard - "has@npm:^1.0.3": version: 1.0.3 resolution: "has@npm:1.0.3" @@ -23945,7 +22481,7 @@ __metadata: languageName: node linkType: hard -"hash.js@npm:1.1.7, hash.js@npm:^1.0.0, hash.js@npm:^1.0.3, hash.js@npm:^1.1.7": +"hash.js@npm:^1.0.0, hash.js@npm:^1.0.3": version: 1.1.7 resolution: "hash.js@npm:1.1.7" dependencies: @@ -23965,32 +22501,12 @@ __metadata: languageName: node linkType: hard -"hast-to-hyperscript@npm:^9.0.0": - version: 9.0.1 - resolution: "hast-to-hyperscript@npm:9.0.1" +"hasown@npm:^2.0.0": + version: 2.0.0 + resolution: "hasown@npm:2.0.0" dependencies: - "@types/unist": ^2.0.3 - comma-separated-tokens: ^1.0.0 - property-information: ^5.3.0 - space-separated-tokens: ^1.0.0 - style-to-object: ^0.3.0 - unist-util-is: ^4.0.0 - web-namespaces: ^1.0.0 - checksum: de570d789853018fff2fd38fc096549b9814e366b298f60c90c159a57018230eefc44d46a246027b0e2426ed9e99f2e270050bc183d5bdfe4c9487c320b392cd - languageName: node - linkType: hard - -"hast-util-from-parse5@npm:^6.0.0": - version: 6.0.1 - resolution: "hast-util-from-parse5@npm:6.0.1" - dependencies: - "@types/parse5": ^5.0.0 - hastscript: ^6.0.0 - property-information: ^5.0.0 - vfile: ^4.0.0 - vfile-location: ^3.2.0 - web-namespaces: ^1.0.0 - checksum: 4daa78201468af7779161e7caa2513c329830778e0528481ab16b3e1bcef4b831f6285b526aacdddbee802f3bd9d64df55f80f010591ea1916da535e3a923b83 + function-bind: ^1.1.2 + checksum: 6151c75ca12554565098641c98a40f4cc86b85b0fd5b6fe92360967e4605a4f9610f7757260b4e8098dd1c2ce7f4b095f2006fe72a570e3b6d2d28de0298c176 languageName: node linkType: hard @@ -24025,24 +22541,6 @@ __metadata: languageName: node linkType: hard -"hast-util-raw@npm:6.0.1": - version: 6.0.1 - resolution: "hast-util-raw@npm:6.0.1" - dependencies: - "@types/hast": ^2.0.0 - hast-util-from-parse5: ^6.0.0 - hast-util-to-parse5: ^6.0.0 - html-void-elements: ^1.0.0 - parse5: ^6.0.0 - unist-util-position: ^3.0.0 - vfile: ^4.0.0 - web-namespaces: ^1.0.0 - xtend: ^4.0.0 - zwitch: ^1.0.0 - checksum: f6d960644f9fbbe0b92d0227b20a24d659cce021d5f9fd218e077154931b4524ee920217b7fd5a45ec2736ec1dee53de9209fe449f6f89454c01d225ff0e7851 - languageName: node - linkType: hard - "hast-util-raw@npm:^7.0.0": version: 7.2.3 resolution: "hast-util-raw@npm:7.2.3" @@ -24090,19 +22588,6 @@ __metadata: languageName: node linkType: hard -"hast-util-to-parse5@npm:^6.0.0": - version: 6.0.0 - resolution: "hast-util-to-parse5@npm:6.0.0" - dependencies: - hast-to-hyperscript: ^9.0.0 - property-information: ^5.0.0 - web-namespaces: ^1.0.0 - xtend: ^4.0.0 - zwitch: ^1.0.0 - checksum: 91a36244e37df1d63c8b7e865ab0c0a25bb7396155602be005cf71d95c348e709568f80e0f891681a3711d733ad896e70642dc41a05b574eddf2e07d285408a8 - languageName: node - linkType: hard - "hast-util-to-parse5@npm:^7.0.0": version: 7.1.0 resolution: "hast-util-to-parse5@npm:7.1.0" @@ -24259,23 +22744,6 @@ __metadata: languageName: node linkType: hard -"html-minifier-terser@npm:^5.0.1": - version: 5.1.1 - resolution: "html-minifier-terser@npm:5.1.1" - dependencies: - camel-case: ^4.1.1 - clean-css: ^4.2.3 - commander: ^4.1.1 - he: ^1.2.0 - param-case: ^3.0.3 - relateurl: ^0.2.7 - terser: ^4.6.3 - bin: - html-minifier-terser: cli.js - checksum: 75ff3ff886631b9ecb3035acb8e7dd98c599bb4d4618ad6f7e487ee9752987dddcf6848dc3c1ab1d7fc1ad4484337c2ce39c19eac17b0342b4b15e4294c8a904 - languageName: node - linkType: hard - "html-minifier-terser@npm:^6.0.2": version: 6.1.0 resolution: "html-minifier-terser@npm:6.1.0" @@ -24322,13 +22790,6 @@ __metadata: languageName: node linkType: hard -"html-void-elements@npm:^1.0.0": - version: 1.0.5 - resolution: "html-void-elements@npm:1.0.5" - checksum: 1a56f4f6cfbeb994c21701ff72b4b7f556fe784a70e5e554d1566ff775af83b91ea93f10664f039a67802d9f7b40d4a7f1ed20312bab47bd88d89bd792ea84ca - languageName: node - linkType: hard - "html-void-elements@npm:^2.0.0": version: 2.0.1 resolution: "html-void-elements@npm:2.0.1" @@ -24336,28 +22797,9 @@ __metadata: languageName: node linkType: hard -"html-webpack-plugin@npm:^4.0.0": - version: 4.5.2 - resolution: "html-webpack-plugin@npm:4.5.2" - dependencies: - "@types/html-minifier-terser": ^5.0.0 - "@types/tapable": ^1.0.5 - "@types/webpack": ^4.41.8 - html-minifier-terser: ^5.0.1 - loader-utils: ^1.2.3 - lodash: ^4.17.20 - pretty-error: ^2.1.1 - tapable: ^1.1.3 - util.promisify: 1.0.0 - peerDependencies: - webpack: ^4.0.0 || ^5.0.0 - checksum: 25ca0b341234501c64754ba8f9bb84f978e50f3f90affc199d18d04511cdc2c0c8ef8a975901a0fbcfe5bae32f80e8fd5ef52f1ce3672d3ff5307057ccb5a063 - languageName: node - linkType: hard - -"html-webpack-plugin@npm:^5.0.0": - version: 5.5.0 - resolution: "html-webpack-plugin@npm:5.5.0" +"html-webpack-plugin@npm:^5.5.0": + version: 5.5.4 + resolution: "html-webpack-plugin@npm:5.5.4" dependencies: "@types/html-minifier-terser": ^6.0.0 html-minifier-terser: ^6.0.2 @@ -24366,19 +22808,7 @@ __metadata: tapable: ^2.0.0 peerDependencies: webpack: ^5.20.0 - checksum: f3d84d0df71fe2f5bac533cc74dce41ab058558cdcc6ff767d166a2abf1cf6fb8491d54d60ddbb34e95c00394e379ba52e0468e0284d1d0cc6a42987056e8219 - languageName: node - linkType: hard - -"htmlparser2-svelte@npm:4.1.0": - version: 4.1.0 - resolution: "htmlparser2-svelte@npm:4.1.0" - dependencies: - domelementtype: ^2.0.1 - domhandler: ^3.0.0 - domutils: ^2.0.0 - entities: ^2.0.0 - checksum: ae0dfa2e28fd75c256e58a4b629af8c5ea117999d3c012d28377f5976f45c394075bb9595a8c2f00d87f5c68bb1be43b6288bac021b185ec3b18cc94e07fd47b + checksum: b49befb73d67a3716fd0e6f7776b108d2b0b7050fb8221f05cd114cbae13c03150a13b7cdf5e76170be040ce7936a1cf76f7a4bfd9ebe1552b72d7889a74c374 languageName: node linkType: hard @@ -24447,19 +22877,6 @@ __metadata: languageName: node linkType: hard -"http-errors@npm:1.8.1": - version: 1.8.1 - resolution: "http-errors@npm:1.8.1" - dependencies: - depd: ~1.1.2 - inherits: 2.0.4 - setprototypeof: 1.2.0 - statuses: ">= 1.5.0 < 2" - toidentifier: 1.0.1 - checksum: d3c7e7e776fd51c0a812baff570bdf06fe49a5dc448b700ab6171b1250e4cf7db8b8f4c0b133e4bfe2451022a5790c1ca6c2cae4094dedd6ac8304a1267f91d2 - languageName: node - linkType: hard - "http-errors@npm:2.0.0": version: 2.0.0 resolution: "http-errors@npm:2.0.0" @@ -24473,13 +22890,6 @@ __metadata: languageName: node linkType: hard -"http-https@npm:^1.0.0": - version: 1.0.0 - resolution: "http-https@npm:1.0.0" - checksum: 82fc4d2e512c64b35680944d1ae13e68220acfa05b06329832e271fd199c5c7fcff1f53fc1f91a1cd65a737ee4de14004dd3ba9a73cce33da970940c6e6ca774 - languageName: node - linkType: hard - "http-parser-js@npm:>=0.5.1": version: 0.5.8 resolution: "http-parser-js@npm:0.5.8" @@ -24540,16 +22950,6 @@ __metadata: languageName: node linkType: hard -"http2-wrapper@npm:^2.1.10": - version: 2.1.11 - resolution: "http2-wrapper@npm:2.1.11" - dependencies: - quick-lru: ^5.1.1 - resolve-alpn: ^1.2.0 - checksum: 5da05aa2c77226ac9cc82c616383f59c8f31b79897b02ecbe44b09714be1fca1f21bb184e672a669ca2830eefea4edac5f07e71c00cb5a8c5afec8e5a20cfaf7 - languageName: node - linkType: hard - "https-browserify@npm:^1.0.0": version: 1.0.0 resolution: "https-browserify@npm:1.0.0" @@ -24577,6 +22977,16 @@ __metadata: languageName: node linkType: hard +"https-proxy-agent@npm:^4.0.0": + version: 4.0.0 + resolution: "https-proxy-agent@npm:4.0.0" + dependencies: + agent-base: 5 + debug: 4 + checksum: 19471d5aae3e747b1c98b17556647e2a1362e68220c6b19585a8527498f32e62e03c41d2872d059d8720d56846bd7460a80ac06f876bccfa786468ff40dd5eef + languageName: node + linkType: hard + "https-proxy-agent@npm:^5.0.1": version: 5.0.1 resolution: "https-proxy-agent@npm:5.0.1" @@ -24587,7 +22997,7 @@ __metadata: languageName: node linkType: hard -"https-proxy-agent@npm:^7.0.0": +"https-proxy-agent@npm:^7.0.0, https-proxy-agent@npm:^7.0.2": version: 7.0.2 resolution: "https-proxy-agent@npm:7.0.2" dependencies: @@ -24719,15 +23129,6 @@ __metadata: languageName: node linkType: hard -"icss-utils@npm:^4.0.0, icss-utils@npm:^4.1.1": - version: 4.1.1 - resolution: "icss-utils@npm:4.1.1" - dependencies: - postcss: ^7.0.14 - checksum: a4ca2c6b82cb3eb879d635bd4028d74bca174edc49ee48ef5f01988489747d340a389d5a0ac6f6887a5c24ab8fc4386c781daab32a7ade5344a2edff66207635 - languageName: node - linkType: hard - "icss-utils@npm:^5.0.0, icss-utils@npm:^5.1.0": version: 5.1.0 resolution: "icss-utils@npm:5.1.0" @@ -24744,29 +23145,13 @@ __metadata: languageName: node linkType: hard -"idna-uts46-hx@npm:^2.3.1": - version: 2.3.1 - resolution: "idna-uts46-hx@npm:2.3.1" - dependencies: - punycode: 2.1.0 - checksum: d434c3558d2bc1090eb90f978f995101f469cb26593414ac57aa082c9352e49972b332c6e4188b9b15538172ccfeae3121e5a19b96972a97e6aeb0676d86639c - languageName: node - linkType: hard - -"ieee754@npm:^1.1.13, ieee754@npm:^1.1.4, ieee754@npm:^1.2.1": +"ieee754@npm:^1.1.13, ieee754@npm:^1.2.1": version: 1.2.1 resolution: "ieee754@npm:1.2.1" checksum: 5144c0c9815e54ada181d80a0b810221a253562422e7c6c3a60b1901154184f49326ec239d618c416c1c5945a2e197107aee8d986a3dd836b53dffefd99b5e7e languageName: node linkType: hard -"iferr@npm:^0.1.5": - version: 0.1.5 - resolution: "iferr@npm:0.1.5" - checksum: a18d19b6ad06a2d5412c0d37f6364869393ef6d1688d59d00082c1f35c92399094c031798340612458cd832f4f2e8b13bc9615934a7d8b0c53061307a3816aa1 - languageName: node - linkType: hard - "iframe-resizer-react@npm:^1.1.0": version: 1.1.0 resolution: "iframe-resizer-react@npm:1.1.0" @@ -24797,13 +23182,6 @@ __metadata: languageName: node linkType: hard -"ignore@npm:^4.0.3, ignore@npm:^4.0.6": - version: 4.0.6 - resolution: "ignore@npm:4.0.6" - checksum: 248f82e50a430906f9ee7f35e1158e3ec4c3971451dd9f99c9bc1548261b4db2b99709f60ac6c6cac9333494384176cc4cc9b07acbe42d52ac6a09cad734d800 - languageName: node - linkType: hard - "ignore@npm:^5.2.0": version: 5.2.0 resolution: "ignore@npm:5.2.0" @@ -24897,15 +23275,6 @@ __metadata: languageName: node linkType: hard -"indent-string@npm:^2.1.0": - version: 2.1.0 - resolution: "indent-string@npm:2.1.0" - dependencies: - repeating: ^2.0.0 - checksum: 2fe7124311435f4d7a98f0a314d8259a4ec47ecb221110a58e2e2073e5f75c8d2b4f775f2ed199598fbe20638917e57423096539455ca8bff8eab113c9bee12c - languageName: node - linkType: hard - "indexof@npm:~0.0.1": version: 0.0.1 resolution: "indexof@npm:0.0.1" @@ -24913,7 +23282,7 @@ __metadata: languageName: node linkType: hard -"infer-owner@npm:^1.0.3, infer-owner@npm:^1.0.4": +"infer-owner@npm:^1.0.4": version: 1.0.4 resolution: "infer-owner@npm:1.0.4" checksum: 181e732764e4a0611576466b4b87dac338972b839920b2a8cde43642e4ed6bd54dc1fb0b40874728f2a2df9a1b097b8ff83b56d5f8f8e3927f837fdcb47d8a89 @@ -24930,27 +23299,13 @@ __metadata: languageName: node linkType: hard -"inherits@npm:2, inherits@npm:2.0.4, inherits@npm:^2.0.0, inherits@npm:^2.0.1, inherits@npm:^2.0.3, inherits@npm:^2.0.4, inherits@npm:~2.0.1, inherits@npm:~2.0.3": +"inherits@npm:2, inherits@npm:2.0.4, inherits@npm:^2.0.1, inherits@npm:^2.0.3, inherits@npm:^2.0.4, inherits@npm:~2.0.1, inherits@npm:~2.0.3, inherits@npm:~2.0.4": version: 2.0.4 resolution: "inherits@npm:2.0.4" checksum: 4a48a733847879d6cf6691860a6b1e3f0f4754176e4d71494c41f3475553768b10f84b5ce1d40fbd0e34e6bfbb864ee35858ad4dd2cf31e02fc4a154b724d7f1 languageName: node linkType: hard -"inherits@npm:2.0.1": - version: 2.0.1 - resolution: "inherits@npm:2.0.1" - checksum: 6536b9377296d4ce8ee89c5c543cb75030934e61af42dba98a428e7d026938c5985ea4d1e3b87743a5b834f40ed1187f89c2d7479e9d59e41d2d1051aefba07b - languageName: node - linkType: hard - -"inherits@npm:2.0.3": - version: 2.0.3 - resolution: "inherits@npm:2.0.3" - checksum: 78cb8d7d850d20a5e9a7f3620db31483aa00ad5f722ce03a55b110e5a723539b3716a3b463e2b96ce3fe286f33afc7c131fa2f91407528ba80cea98a7545d4c0 - languageName: node - linkType: hard - "ini@npm:2.0.0": version: 2.0.0 resolution: "ini@npm:2.0.0" @@ -24958,6 +23313,13 @@ __metadata: languageName: node linkType: hard +"ini@npm:~1.3.0": + version: 1.3.8 + resolution: "ini@npm:1.3.8" + checksum: dfd98b0ca3a4fc1e323e38a6c8eb8936e31a97a918d3b377649ea15bdb15d481207a0dda1021efbd86b464cae29a0d33c1d7dcaf6c5672bee17fa849bc50a1b3 + languageName: node + linkType: hard + "ink-select-input@npm:^4.2.1": version: 4.2.1 resolution: "ink-select-input@npm:4.2.1" @@ -25022,13 +23384,6 @@ __metadata: languageName: node linkType: hard -"inline-style-parser@npm:0.1.1": - version: 0.1.1 - resolution: "inline-style-parser@npm:0.1.1" - checksum: 5d545056a3e1f2bf864c928a886a0e1656a3517127d36917b973de581bd54adc91b4bf1febcb0da054f204b4934763f1a4e09308b4d55002327cf1d48ac5d966 - languageName: node - linkType: hard - "input-format@npm:^0.3.8": version: 0.3.8 resolution: "input-format@npm:0.3.8" @@ -25117,6 +23472,17 @@ __metadata: languageName: node linkType: hard +"internal-slot@npm:^1.0.4": + version: 1.0.6 + resolution: "internal-slot@npm:1.0.6" + dependencies: + get-intrinsic: ^1.2.2 + hasown: ^2.0.0 + side-channel: ^1.0.4 + checksum: 7872454888047553ce97a3fa1da7cc054a28ec5400a9c2e9f4dbe4fe7c1d041cb8e8301467614b80d4246d50377aad2fb58860b294ed74d6700cc346b6f89549 + languageName: node + linkType: hard + "internmap@npm:1 - 2": version: 2.0.3 resolution: "internmap@npm:2.0.3" @@ -25124,13 +23490,6 @@ __metadata: languageName: node linkType: hard -"interpret@npm:^2.2.0": - version: 2.2.0 - resolution: "interpret@npm:2.2.0" - checksum: f51efef7cb8d02da16408ffa3504cd6053014c5aeb7bb8c223727e053e4235bf565e45d67028b0c8740d917c603807aa3c27d7bd2f21bf20b6417e2bb3e5fd6e - languageName: node - linkType: hard - "intl-messageformat@npm:9.13.0": version: 9.13.0 resolution: "intl-messageformat@npm:9.13.0" @@ -25183,25 +23542,7 @@ __metadata: languageName: node linkType: hard -"is-accessor-descriptor@npm:^0.1.6": - version: 0.1.6 - resolution: "is-accessor-descriptor@npm:0.1.6" - dependencies: - kind-of: ^3.0.2 - checksum: 3d629a086a9585bc16a83a8e8a3416f400023301855cafb7ccc9a1d63145b7480f0ad28877dcc2cce09492c4ec1c39ef4c071996f24ee6ac626be4217b8ffc8a - languageName: node - linkType: hard - -"is-accessor-descriptor@npm:^1.0.0": - version: 1.0.0 - resolution: "is-accessor-descriptor@npm:1.0.0" - dependencies: - kind-of: ^6.0.0 - checksum: 8e475968e9b22f9849343c25854fa24492dbe8ba0dea1a818978f9f1b887339190b022c9300d08c47fe36f1b913d70ce8cbaca00369c55a56705fdb7caed37fe - languageName: node - linkType: hard - -"is-alphabetical@npm:1.0.4, is-alphabetical@npm:^1.0.0": +"is-alphabetical@npm:^1.0.0": version: 1.0.4 resolution: "is-alphabetical@npm:1.0.4" checksum: 6508cce44fd348f06705d377b260974f4ce68c74000e7da4045f0d919e568226dc3ce9685c5a2af272195384df6930f748ce9213fc9f399b5d31b362c66312cb @@ -25225,7 +23566,7 @@ __metadata: languageName: node linkType: hard -"is-arguments@npm:^1.0.4, is-arguments@npm:^1.1.0": +"is-arguments@npm:^1.0.4, is-arguments@npm:^1.1.1": version: 1.1.1 resolution: "is-arguments@npm:1.1.1" dependencies: @@ -25235,6 +23576,17 @@ __metadata: languageName: node linkType: hard +"is-array-buffer@npm:^3.0.1, is-array-buffer@npm:^3.0.2": + version: 3.0.2 + resolution: "is-array-buffer@npm:3.0.2" + dependencies: + call-bind: ^1.0.2 + get-intrinsic: ^1.2.0 + is-typed-array: ^1.1.10 + checksum: dcac9dda66ff17df9cabdc58214172bf41082f956eab30bb0d86bc0fab1e44b690fc8e1f855cf2481245caf4e8a5a006a982a71ddccec84032ed41f9d8da8c14 + languageName: node + linkType: hard + "is-arrayish@npm:^0.2.1": version: 0.2.1 resolution: "is-arrayish@npm:0.2.1" @@ -25242,6 +23594,13 @@ __metadata: languageName: node linkType: hard +"is-arrayish@npm:^0.3.1": + version: 0.3.2 + resolution: "is-arrayish@npm:0.3.2" + checksum: 977e64f54d91c8f169b59afcd80ff19227e9f5c791fa28fa2e5bce355cbaf6c2c356711b734656e80c9dd4a854dd7efcf7894402f1031dfc5de5d620775b4d5f + languageName: node + linkType: hard + "is-bigint@npm:^1.0.1": version: 1.0.4 resolution: "is-bigint@npm:1.0.4" @@ -25251,15 +23610,6 @@ __metadata: languageName: node linkType: hard -"is-binary-path@npm:^1.0.0": - version: 1.0.1 - resolution: "is-binary-path@npm:1.0.1" - dependencies: - binary-extensions: ^1.0.0 - checksum: a803c99e9d898170c3b44a86fbdc0736d3d7fcbe737345433fb78e810b9fe30c982657782ad0e676644ba4693ddf05601a7423b5611423218663d6b533341ac9 - languageName: node - linkType: hard - "is-binary-path@npm:~2.1.0": version: 2.1.0 resolution: "is-binary-path@npm:2.1.0" @@ -25279,13 +23629,6 @@ __metadata: languageName: node linkType: hard -"is-buffer@npm:^1.1.5, is-buffer@npm:~1.1.6": - version: 1.1.6 - resolution: "is-buffer@npm:1.1.6" - checksum: 4a186d995d8bbf9153b4bd9ff9fd04ae75068fe695d29025d25e592d9488911eeece84eefbd8fa41b8ddcc0711058a71d4c466dcf6f1f6e1d83830052d8ca707 - languageName: node - linkType: hard - "is-buffer@npm:^2.0.0": version: 2.0.5 resolution: "is-buffer@npm:2.0.5" @@ -25293,6 +23636,13 @@ __metadata: languageName: node linkType: hard +"is-buffer@npm:~1.1.6": + version: 1.1.6 + resolution: "is-buffer@npm:1.1.6" + checksum: 4a186d995d8bbf9153b4bd9ff9fd04ae75068fe695d29025d25e592d9488911eeece84eefbd8fa41b8ddcc0711058a71d4c466dcf6f1f6e1d83830052d8ca707 + languageName: node + linkType: hard + "is-builtin-module@npm:^3.2.0": version: 3.2.1 resolution: "is-builtin-module@npm:3.2.1" @@ -25302,6 +23652,13 @@ __metadata: languageName: node linkType: hard +"is-callable@npm:^1.1.3, is-callable@npm:^1.2.7": + version: 1.2.7 + resolution: "is-callable@npm:1.2.7" + checksum: 61fd57d03b0d984e2ed3720fb1c7a897827ea174bd44402878e059542ea8c4aeedee0ea0985998aa5cc2736b2fa6e271c08587addb5b3959ac52cf665173d1ac + languageName: node + linkType: hard + "is-callable@npm:^1.1.4, is-callable@npm:^1.2.4": version: 1.2.4 resolution: "is-callable@npm:1.2.4" @@ -25309,13 +23666,6 @@ __metadata: languageName: node linkType: hard -"is-callable@npm:^1.2.7": - version: 1.2.7 - resolution: "is-callable@npm:1.2.7" - checksum: 61fd57d03b0d984e2ed3720fb1c7a897827ea174bd44402878e059542ea8c4aeedee0ea0985998aa5cc2736b2fa6e271c08587addb5b3959ac52cf665173d1ac - languageName: node - linkType: hard - "is-ci@npm:^2.0.0": version: 2.0.0 resolution: "is-ci@npm:2.0.0" @@ -25374,25 +23724,7 @@ __metadata: languageName: node linkType: hard -"is-data-descriptor@npm:^0.1.4": - version: 0.1.4 - resolution: "is-data-descriptor@npm:0.1.4" - dependencies: - kind-of: ^3.0.2 - checksum: 5c622e078ba933a78338ae398a3d1fc5c23332b395312daf4f74bab4afb10d061cea74821add726cb4db8b946ba36217ee71a24fe71dd5bca4632edb7f6aad87 - languageName: node - linkType: hard - -"is-data-descriptor@npm:^1.0.0": - version: 1.0.0 - resolution: "is-data-descriptor@npm:1.0.0" - dependencies: - kind-of: ^6.0.0 - checksum: e705e6816241c013b05a65dc452244ee378d1c3e3842bd140beabe6e12c0d700ef23c91803f971aa7b091fb0573c5da8963af34a2b573337d87bc3e1f53a4e6d - languageName: node - linkType: hard - -"is-date-object@npm:^1.0.1": +"is-date-object@npm:^1.0.1, is-date-object@npm:^1.0.5": version: 1.0.5 resolution: "is-date-object@npm:1.0.5" dependencies: @@ -25408,25 +23740,10 @@ __metadata: languageName: node linkType: hard -"is-descriptor@npm:^0.1.0": - version: 0.1.6 - resolution: "is-descriptor@npm:0.1.6" - dependencies: - is-accessor-descriptor: ^0.1.6 - is-data-descriptor: ^0.1.4 - kind-of: ^5.0.0 - checksum: 0f780c1b46b465f71d970fd7754096ffdb7b69fd8797ca1f5069c163eaedcd6a20ec4a50af669075c9ebcfb5266d2e53c8b227e485eefdb0d1fee09aa1dd8ab6 - languageName: node - linkType: hard - -"is-descriptor@npm:^1.0.0, is-descriptor@npm:^1.0.2": - version: 1.0.2 - resolution: "is-descriptor@npm:1.0.2" - dependencies: - is-accessor-descriptor: ^1.0.0 - is-data-descriptor: ^1.0.0 - kind-of: ^6.0.2 - checksum: 2ed623560bee035fb67b23e32ce885700bef8abe3fbf8c909907d86507b91a2c89a9d3a4d835a4d7334dd5db0237a0aeae9ca109c1e4ef1c0e7b577c0846ab5a +"is-deflate@npm:^1.0.0": + version: 1.0.0 + resolution: "is-deflate@npm:1.0.0" + checksum: c2f9f2d3db79ac50c5586697d1e69a55282a2b0cc5e437b3c470dd47f24e40b6216dcd7e024511e21381607bf57afa019343e3bd0e08a119032818b596004262 languageName: node linkType: hard @@ -25449,36 +23766,20 @@ __metadata: languageName: node linkType: hard -"is-extendable@npm:^0.1.0, is-extendable@npm:^0.1.1": +"is-extendable@npm:^0.1.0": version: 0.1.1 resolution: "is-extendable@npm:0.1.1" checksum: 3875571d20a7563772ecc7a5f36cb03167e9be31ad259041b4a8f73f33f885441f778cee1f1fe0085eb4bc71679b9d8c923690003a36a6a5fdf8023e6e3f0672 languageName: node linkType: hard -"is-extendable@npm:^1.0.1": - version: 1.0.1 - resolution: "is-extendable@npm:1.0.1" - dependencies: - is-plain-object: ^2.0.4 - checksum: db07bc1e9de6170de70eff7001943691f05b9d1547730b11be01c0ebfe67362912ba743cf4be6fd20a5e03b4180c685dad80b7c509fe717037e3eee30ad8e84f - languageName: node - linkType: hard - -"is-extglob@npm:^2.1.0, is-extglob@npm:^2.1.1": +"is-extglob@npm:^2.1.1": version: 2.1.1 resolution: "is-extglob@npm:2.1.1" checksum: df033653d06d0eb567461e58a7a8c9f940bd8c22274b94bf7671ab36df5719791aae15eef6d83bbb5e23283967f2f984b8914559d4449efda578c775c4be6f85 languageName: node linkType: hard -"is-finite@npm:^1.0.0": - version: 1.1.0 - resolution: "is-finite@npm:1.1.0" - checksum: 532b97ed3d03e04c6bd203984d9e4ba3c0c390efee492bad5d1d1cd1802a68ab27adbd3ef6382f6312bed6c8bb1bd3e325ea79a8dc8fe080ed7a06f5f97b93e7 - languageName: node - linkType: hard - "is-fullwidth-code-point@npm:^3.0.0": version: 3.0.0 resolution: "is-fullwidth-code-point@npm:3.0.0" @@ -25493,7 +23794,7 @@ __metadata: languageName: node linkType: hard -"is-function@npm:^1.0.1, is-function@npm:^1.0.2": +"is-function@npm:^1.0.1": version: 1.0.2 resolution: "is-function@npm:1.0.2" checksum: 7d564562e07b4b51359547d3ccc10fb93bb392fd1b8177ae2601ee4982a0ece86d952323fc172a9000743a3971f09689495ab78a1d49a9b14fc97a7e28521dc0 @@ -25518,19 +23819,10 @@ __metadata: 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" - dependencies: - is-extglob: ^2.1.0 - checksum: 9d483bca84f16f01230f7c7c8c63735248fe1064346f292e0f6f8c76475fd20c6f50fc19941af5bec35f85d6bf26f4b7768f39a48a5f5fdc72b408dc74e07afc - languageName: node - linkType: hard - -"is-hex-prefixed@npm:1.0.0": +"is-gzip@npm:^1.0.0": version: 1.0.0 - resolution: "is-hex-prefixed@npm:1.0.0" - checksum: 5ac58e6e528fb029cc43140f6eeb380fad23d0041cc23154b87f7c9a1b728bcf05909974e47248fd0b7fcc11ba33cf7e58d64804883056fabd23e2b898be41de + resolution: "is-gzip@npm:1.0.0" + checksum: 0d28931c1f445fa29c900cf9f48e06e9d1d477a3bf7bd7332e7ce68f1333ccd8cb381de2f0f62a9a262d9c0912608a9a71b4a40e788e201b3dbd67072bb20d86 languageName: node linkType: hard @@ -25573,7 +23865,7 @@ __metadata: languageName: node linkType: hard -"is-map@npm:^2.0.2": +"is-map@npm:^2.0.1, is-map@npm:^2.0.2": version: 2.0.2 resolution: "is-map@npm:2.0.2" checksum: ace3d0ecd667bbdefdb1852de601268f67f2db725624b1958f279316e13fecb8fa7df91fd60f690d7417b4ec180712f5a7ee967008e27c65cfd475cc84337728 @@ -25620,15 +23912,6 @@ __metadata: languageName: node linkType: hard -"is-number@npm:^3.0.0": - version: 3.0.0 - resolution: "is-number@npm:3.0.0" - dependencies: - kind-of: ^3.0.2 - checksum: 0c62bf8e9d72c4dd203a74d8cfc751c746e75513380fef420cda8237e619a988ee43e678ddb23c87ac24d91ac0fe9f22e4ffb1301a50310c697e9d73ca3994e9 - languageName: node - linkType: hard - "is-number@npm:^7.0.0": version: 7.0.0 resolution: "is-number@npm:7.0.0" @@ -25685,13 +23968,6 @@ __metadata: languageName: node linkType: hard -"is-plain-obj@npm:^2.0.0": - version: 2.1.0 - resolution: "is-plain-obj@npm:2.1.0" - checksum: cec9100678b0a9fe0248a81743041ed990c2d4c99f893d935545cfbc42876cbe86d207f3b895700c690ad2fa520e568c44afc1605044b535a7820c1d40e38daa - languageName: node - linkType: hard - "is-plain-obj@npm:^4.0.0": version: 4.1.0 resolution: "is-plain-obj@npm:4.1.0" @@ -25706,7 +23982,7 @@ __metadata: languageName: node linkType: hard -"is-plain-object@npm:^2.0.3, is-plain-object@npm:^2.0.4": +"is-plain-object@npm:^2.0.4": version: 2.0.4 resolution: "is-plain-object@npm:2.0.4" dependencies: @@ -25738,7 +24014,7 @@ __metadata: languageName: node linkType: hard -"is-regex@npm:^1.1.2, is-regex@npm:^1.1.4": +"is-regex@npm:^1.1.4": version: 1.1.4 resolution: "is-regex@npm:1.1.4" dependencies: @@ -25764,7 +24040,7 @@ __metadata: languageName: node linkType: hard -"is-retry-allowed@npm:^1.0.0, is-retry-allowed@npm:^1.1.0": +"is-retry-allowed@npm:^1.1.0": version: 1.2.0 resolution: "is-retry-allowed@npm:1.2.0" checksum: 50d700a89ae31926b1c91b3eb0104dbceeac8790d8b80d02f5c76d9a75c2056f1bb24b5268a8a018dead606bddf116b2262e5ac07401eb8b8783b266ed22558d @@ -25778,7 +24054,7 @@ __metadata: languageName: node linkType: hard -"is-set@npm:^2.0.2": +"is-set@npm:^2.0.1, is-set@npm:^2.0.2": version: 2.0.2 resolution: "is-set@npm:2.0.2" checksum: b64343faf45e9387b97a6fd32be632ee7b269bd8183701f3b3f5b71a7cf00d04450ed8669d0bd08753e08b968beda96fca73a10fd0ff56a32603f64deba55a57 @@ -25794,7 +24070,7 @@ __metadata: languageName: node linkType: hard -"is-stream@npm:^1.0.0, is-stream@npm:^1.1.0": +"is-stream@npm:^1.1.0": version: 1.1.0 resolution: "is-stream@npm:1.1.0" checksum: 063c6bec9d5647aa6d42108d4c59723d2bd4ae42135a2d4db6eadbd49b7ea05b750fd69d279e5c7c45cf9da753ad2c00d8978be354d65aa9f6bb434969c6a2ae @@ -25835,20 +24111,16 @@ __metadata: languageName: node linkType: hard -"is-typed-array@npm:^1.1.3, is-typed-array@npm:^1.1.7": - version: 1.1.8 - resolution: "is-typed-array@npm:1.1.8" +"is-typed-array@npm:^1.1.10, is-typed-array@npm:^1.1.3": + version: 1.1.12 + resolution: "is-typed-array@npm:1.1.12" dependencies: - available-typed-arrays: ^1.0.5 - call-bind: ^1.0.2 - es-abstract: ^1.18.5 - foreach: ^2.0.5 - has-tostringtag: ^1.0.0 - checksum: aa0f9f0716e19e2fb8aef69e69e4205479d25ace778e2339fc910948115cde4b0d9aff9d5d1e8b80f09a5664998278e05e54ad3dc9cb12cefcf86db71084ed00 + which-typed-array: ^1.1.11 + checksum: 4c89c4a3be07186caddadf92197b17fda663a9d259ea0d44a85f171558270d36059d1c386d34a12cba22dfade5aba497ce22778e866adc9406098c8fc4771796 languageName: node linkType: hard -"is-typedarray@npm:^1.0.0, is-typedarray@npm:~1.0.0": +"is-typedarray@npm:~1.0.0": version: 1.0.0 resolution: "is-typedarray@npm:1.0.0" checksum: 3508c6cd0a9ee2e0df2fa2e9baabcdc89e911c7bd5cf64604586697212feec525aa21050e48affb5ffc3df20f0f5d2e2cf79b08caa64e1ccc9578e251763aef7 @@ -25889,10 +24161,10 @@ __metadata: languageName: node linkType: hard -"is-utf8@npm:^0.2.0": - version: 0.2.1 - resolution: "is-utf8@npm:0.2.1" - checksum: 167ccd2be869fc228cc62c1a28df4b78c6b5485d15a29027d3b5dceb09b383e86a3522008b56dcac14b592b22f0a224388718c2505027a994fd8471465de54b3 +"is-weakmap@npm:^2.0.1": + version: 2.0.1 + resolution: "is-weakmap@npm:2.0.1" + checksum: 1222bb7e90c32bdb949226e66d26cb7bce12e1e28e3e1b40bfa6b390ba3e08192a8664a703dff2a00a84825f4e022f9cd58c4599ff9981ab72b1d69479f4f7f6 languageName: node linkType: hard @@ -25905,6 +24177,16 @@ __metadata: languageName: node linkType: hard +"is-weakset@npm:^2.0.1": + version: 2.0.2 + resolution: "is-weakset@npm:2.0.2" + dependencies: + call-bind: ^1.0.2 + get-intrinsic: ^1.1.1 + checksum: 5d8698d1fa599a0635d7ca85be9c26d547b317ed8fd83fc75f03efbe75d50001b5eececb1e9971de85fcde84f69ae6f8346bc92d20d55d46201d328e4c74a367 + languageName: node + linkType: hard + "is-what@npm:^4.1.6": version: 4.1.7 resolution: "is-what@npm:4.1.7" @@ -25912,13 +24194,6 @@ __metadata: languageName: node linkType: hard -"is-whitespace-character@npm:^1.0.0": - version: 1.0.4 - resolution: "is-whitespace-character@npm:1.0.4" - checksum: adab8ad9847ccfcb6f1b7000b8f622881b5ba2a09ce8be2794a6d2b10c3af325b469fc562c9fb889f468eed27be06e227ac609d0aa1e3a59b4dbcc88e2b0418e - languageName: node - linkType: hard - "is-window@npm:^1.0.2": version: 1.0.2 resolution: "is-window@npm:1.0.2" @@ -25926,20 +24201,13 @@ __metadata: languageName: node linkType: hard -"is-windows@npm:1.0.2, is-windows@npm:^1.0.0, is-windows@npm:^1.0.1, is-windows@npm:^1.0.2": +"is-windows@npm:1.0.2, is-windows@npm:^1.0.0, is-windows@npm:^1.0.1": version: 1.0.2 resolution: "is-windows@npm:1.0.2" checksum: 438b7e52656fe3b9b293b180defb4e448088e7023a523ec21a91a80b9ff8cdb3377ddb5b6e60f7c7de4fa8b63ab56e121b6705fe081b3cf1b828b0a380009ad7 languageName: node linkType: hard -"is-word-character@npm:^1.0.0": - version: 1.0.4 - resolution: "is-word-character@npm:1.0.4" - checksum: 1821d6c6abe5bc0b3abe3fdc565d66d7c8a74ea4e93bc77b4a47d26e2e2a306d6ab7d92b353b0d2b182869e3ecaa8f4a346c62d0e31d38ebc0ceaf7cae182c3f - languageName: node - linkType: hard - "is-wsl@npm:2.2.0, is-wsl@npm:^2.1.1, is-wsl@npm:^2.2.0": version: 2.2.0 resolution: "is-wsl@npm:2.2.0" @@ -25970,13 +24238,6 @@ __metadata: languageName: node linkType: hard -"isarray@npm:1.0.0, isarray@npm:^1.0.0, isarray@npm:~1.0.0": - version: 1.0.0 - resolution: "isarray@npm:1.0.0" - checksum: f032df8e02dce8ec565cf2eb605ea939bdccea528dbcf565cdf92bfa2da9110461159d86a537388ef1acef8815a330642d7885b29010e8f7eac967c9993b65ab - languageName: node - linkType: hard - "isarray@npm:2.0.5, isarray@npm:^2.0.5": version: 2.0.5 resolution: "isarray@npm:2.0.5" @@ -25984,6 +24245,13 @@ __metadata: languageName: node linkType: hard +"isarray@npm:~1.0.0": + version: 1.0.0 + resolution: "isarray@npm:1.0.0" + checksum: f032df8e02dce8ec565cf2eb605ea939bdccea528dbcf565cdf92bfa2da9110461159d86a537388ef1acef8815a330642d7885b29010e8f7eac967c9993b65ab + languageName: node + linkType: hard + "isbuffer@npm:~0.0.0": version: 0.0.0 resolution: "isbuffer@npm:0.0.0" @@ -25998,29 +24266,13 @@ __metadata: languageName: node linkType: hard -"isobject@npm:^2.0.0": - version: 2.1.0 - resolution: "isobject@npm:2.1.0" - dependencies: - isarray: 1.0.0 - checksum: 811c6f5a866877d31f0606a88af4a45f282544de886bf29f6a34c46616a1ae2ed17076cc6bf34c0128f33eecf7e1fcaa2c82cf3770560d3e26810894e96ae79f - languageName: node - linkType: hard - -"isobject@npm:^3.0.0, isobject@npm:^3.0.1": +"isobject@npm:^3.0.1": version: 3.0.1 resolution: "isobject@npm:3.0.1" checksum: db85c4c970ce30693676487cca0e61da2ca34e8d4967c2e1309143ff910c207133a969f9e4ddb2dc6aba670aabce4e0e307146c310350b298e74a31f7d464703 languageName: node linkType: hard -"isobject@npm:^4.0.0": - version: 4.0.0 - resolution: "isobject@npm:4.0.0" - checksum: bbcb522e46d54fb22418ba49fb9a82057ffa201c8401fb6e018c042e2c98cf7d9c7b185aff88e035ec8adea0814506dc2aeff2d08891bbc158e1671a49e99c06 - languageName: node - linkType: hard - "isomorphic-fetch@npm:^3.0.0": version: 3.0.0 resolution: "isomorphic-fetch@npm:3.0.0" @@ -26031,16 +24283,6 @@ __metadata: languageName: node linkType: hard -"isomorphic-unfetch@npm:^3.1.0": - version: 3.1.0 - resolution: "isomorphic-unfetch@npm:3.1.0" - dependencies: - node-fetch: ^2.6.1 - unfetch: ^4.2.0 - checksum: 82b92fe4ec2823a81ab0fc0d11bd94d710e6f9a940d56b3cba31896d4345ec9ffc7949f4ff31ebcae84f6b95f7ebf3474c4c7452b834eb4078ea3f2c37e459c5 - 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" @@ -26098,34 +24340,7 @@ __metadata: languageName: node linkType: hard -"isurl@npm:^1.0.0-alpha5": - version: 1.0.0 - resolution: "isurl@npm:1.0.0" - dependencies: - has-to-string-tag-x: ^1.2.0 - is-object: ^1.0.1 - checksum: 28a96e019269d57015fa5869f19dda5a3ed1f7b21e3e0c4ff695419bd0541547db352aa32ee4a3659e811a177b0e37a5bc1a036731e71939dd16b59808ab92bd - languageName: node - linkType: hard - -"iterate-iterator@npm:^1.0.1": - version: 1.0.2 - resolution: "iterate-iterator@npm:1.0.2" - checksum: 97b3ed4f2bebe038be57d03277879e406b2c537ceeeab7f82d4167f9a3cff872cc2cc5da3dc9920ff544ca247329d2a4d44121bb8ef8d0807a72176bdbc17c84 - languageName: node - linkType: hard - -"iterate-value@npm:^1.0.2": - version: 1.0.2 - resolution: "iterate-value@npm:1.0.2" - dependencies: - es-get-iterator: ^1.0.2 - iterate-iterator: ^1.0.1 - checksum: 446a4181657df1872e5020713206806757157db6ab375dee05eb4565b66e1244d7a99cd36ce06862261ad4bd059e66ba8192f62b5d1ff41d788c3b61953af6c3 - languageName: node - linkType: hard - -"jackspeak@npm:^2.0.3": +"jackspeak@npm:^2.0.3, jackspeak@npm:^2.3.5": version: 2.3.6 resolution: "jackspeak@npm:2.3.6" dependencies: @@ -26190,28 +24405,26 @@ __metadata: languageName: node linkType: hard -"jest-haste-map@npm:^26.6.2": - version: 26.6.2 - resolution: "jest-haste-map@npm:26.6.2" +"jest-haste-map@npm:^29.7.0": + version: 29.7.0 + resolution: "jest-haste-map@npm:29.7.0" dependencies: - "@jest/types": ^26.6.2 - "@types/graceful-fs": ^4.1.2 + "@jest/types": ^29.6.3 + "@types/graceful-fs": ^4.1.3 "@types/node": "*" anymatch: ^3.0.3 fb-watchman: ^2.0.0 - fsevents: ^2.1.2 - graceful-fs: ^4.2.4 - jest-regex-util: ^26.0.0 - jest-serializer: ^26.6.2 - jest-util: ^26.6.2 - jest-worker: ^26.6.2 - micromatch: ^4.0.2 - sane: ^4.0.3 - walker: ^1.0.7 + fsevents: ^2.3.2 + graceful-fs: ^4.2.9 + jest-regex-util: ^29.6.3 + jest-util: ^29.7.0 + jest-worker: ^29.7.0 + micromatch: ^4.0.4 + walker: ^1.0.8 dependenciesMeta: fsevents: optional: true - checksum: 8ad5236d5646d2388d2bd58a57ea53698923434f43d59ea9ebdc58bce4d0b8544c8de2f7acaa9a6d73171f04460388b2b6d7d6b6c256aea4ebb8780140781596 + checksum: c2c8f2d3e792a963940fbdfa563ce14ef9e14d4d86da645b96d3cd346b8d35c5ce0b992ee08593939b5f718cf0a1f5a90011a056548a1dbf58397d4356786f01 languageName: node linkType: hard @@ -26254,34 +24467,10 @@ __metadata: languageName: node linkType: hard -"jest-regex-util@npm:^26.0.0": - version: 26.0.0 - resolution: "jest-regex-util@npm:26.0.0" - checksum: 930a00665e8dfbedc29140678b4a54f021b41b895cf35050f76f557c1da3ac48ff42dd7b18ba2ccba6f4e518c6445d6753730d03ec7049901b93992db1ef0483 - languageName: node - linkType: hard - -"jest-serializer@npm:^26.6.2": - version: 26.6.2 - resolution: "jest-serializer@npm:26.6.2" - dependencies: - "@types/node": "*" - graceful-fs: ^4.2.4 - checksum: dbecfb0d01462fe486a0932cf1680cf6abb204c059db2a8f72c6c2a7c9842a82f6d256874112774cea700764ed8f38fc9e3db982456c138d87353e3390e746fe - languageName: node - linkType: hard - -"jest-util@npm:^26.6.2": - version: 26.6.2 - resolution: "jest-util@npm:26.6.2" - dependencies: - "@jest/types": ^26.6.2 - "@types/node": "*" - chalk: ^4.0.0 - graceful-fs: ^4.2.4 - is-ci: ^2.0.0 - micromatch: ^4.0.2 - checksum: 3c6a5fba05c4c6892cd3a9f66196ea8867087b77a5aa1a3f6cd349c785c3f1ca24abfd454664983aed1a165cab7846688e44fe8630652d666ba326b08625bc3d +"jest-regex-util@npm:^29.6.3": + version: 29.6.3 + resolution: "jest-regex-util@npm:29.6.3" + checksum: 0518beeb9bf1228261695e54f0feaad3606df26a19764bc19541e0fc6e2a3737191904607fb72f3f2ce85d9c16b28df79b7b1ec9443aa08c3ef0e9efda6f8f2a languageName: node linkType: hard @@ -26299,14 +24488,17 @@ __metadata: languageName: node linkType: hard -"jest-worker@npm:^26.5.0, jest-worker@npm:^26.6.2": - version: 26.6.2 - resolution: "jest-worker@npm:26.6.2" +"jest-util@npm:^29.7.0": + version: 29.7.0 + resolution: "jest-util@npm:29.7.0" dependencies: + "@jest/types": ^29.6.3 "@types/node": "*" - merge-stream: ^2.0.0 - supports-color: ^7.0.0 - checksum: f9afa3b88e3f12027901e4964ba3ff048285b5783b5225cab28fac25b4058cea8ad54001e9a1577ee2bed125fac3ccf5c80dc507b120300cc1bbcb368796533e + chalk: ^4.0.0 + ci-info: ^3.2.0 + graceful-fs: ^4.2.9 + picomatch: ^2.2.3 + checksum: 042ab4980f4ccd4d50226e01e5c7376a8556b472442ca6091a8f102488c0f22e6e8b89ea874111d2328a2080083bf3225c86f3788c52af0bd0345a00eb57a3ca languageName: node linkType: hard @@ -26321,6 +24513,18 @@ __metadata: languageName: node linkType: hard +"jest-worker@npm:^29.7.0": + version: 29.7.0 + resolution: "jest-worker@npm:29.7.0" + dependencies: + "@types/node": "*" + jest-util: ^29.7.0 + merge-stream: ^2.0.0 + supports-color: ^8.0.0 + checksum: 30fff60af49675273644d408b650fc2eb4b5dcafc5a0a455f238322a8f9d8a98d847baca9d51ff197b6747f54c7901daa2287799230b856a0f48287d131f8c13 + languageName: node + linkType: hard + "jimp@npm:^0.16.1": version: 0.16.1 resolution: "jimp@npm:0.16.1" @@ -26426,27 +24630,6 @@ __metadata: languageName: node linkType: hard -"js-sha3@npm:0.8.0, js-sha3@npm:^0.8.0": - version: 0.8.0 - resolution: "js-sha3@npm:0.8.0" - checksum: 75df77c1fc266973f06cce8309ce010e9e9f07ec35ab12022ed29b7f0d9c8757f5a73e1b35aa24840dced0dea7059085aa143d817aea9e188e2a80d569d9adce - languageName: node - linkType: hard - -"js-sha3@npm:^0.5.7": - version: 0.5.7 - resolution: "js-sha3@npm:0.5.7" - checksum: 973a28ea4b26cc7f12d2ab24f796e24ee4a71eef45a6634a052f6eb38cf8b2333db798e896e6e094ea6fa4dfe8e42a2a7942b425cf40da3f866623fd05bb91ea - languageName: node - linkType: hard - -"js-string-escape@npm:^1.0.1": - version: 1.0.1 - resolution: "js-string-escape@npm:1.0.1" - checksum: f11e0991bf57e0c183b55c547acec85bd2445f043efc9ea5aa68b41bd2a3e7d3ce94636cb233ae0d84064ba4c1a505d32e969813c5b13f81e7d4be12c59256fe - languageName: node - linkType: hard - "js-tiktoken@npm:^1.0.7": version: 1.0.7 resolution: "js-tiktoken@npm:1.0.7" @@ -26500,6 +24683,41 @@ __metadata: languageName: node linkType: hard +"jscodeshift@npm:^0.15.1": + version: 0.15.1 + resolution: "jscodeshift@npm:0.15.1" + dependencies: + "@babel/core": ^7.23.0 + "@babel/parser": ^7.23.0 + "@babel/plugin-transform-class-properties": ^7.22.5 + "@babel/plugin-transform-modules-commonjs": ^7.23.0 + "@babel/plugin-transform-nullish-coalescing-operator": ^7.22.11 + "@babel/plugin-transform-optional-chaining": ^7.23.0 + "@babel/plugin-transform-private-methods": ^7.22.5 + "@babel/preset-flow": ^7.22.15 + "@babel/preset-typescript": ^7.23.0 + "@babel/register": ^7.22.15 + babel-core: ^7.0.0-bridge.0 + chalk: ^4.1.2 + flow-parser: 0.* + graceful-fs: ^4.2.4 + micromatch: ^4.0.4 + neo-async: ^2.5.0 + node-dir: ^0.1.17 + recast: ^0.23.3 + temp: ^0.8.4 + write-file-atomic: ^2.3.0 + peerDependencies: + "@babel/preset-env": ^7.1.6 + peerDependenciesMeta: + "@babel/preset-env": + optional: true + bin: + jscodeshift: bin/jscodeshift.js + checksum: d760dee2b634fa8a4610bdbdf787ce117a9a6bcc73e9ae55a38be77e380698d928d34a375a93ed4685e8bbdecfbd3cdbb87eb4b7e22fc58381db3d59fb554687 + languageName: node + linkType: hard + "jsdom@npm:^22.0.0": version: 22.0.0 resolution: "jsdom@npm:22.0.0" @@ -26602,7 +24820,7 @@ __metadata: languageName: node linkType: hard -"json-parse-better-errors@npm:^1.0.1, json-parse-better-errors@npm:^1.0.2": +"json-parse-better-errors@npm:^1.0.1": version: 1.0.2 resolution: "json-parse-better-errors@npm:1.0.2" checksum: ff2b5ba2a70e88fd97a3cb28c1840144c5ce8fae9cbeeddba15afa333a5c407cf0e42300cd0a2885dbb055227fe68d405070faad941beeffbfde9cf3b2c78c5d @@ -26697,7 +24915,7 @@ __metadata: languageName: node linkType: hard -"json5@npm:^2.1.2, json5@npm:^2.1.3, json5@npm:^2.2.1": +"json5@npm:^2.1.2, json5@npm:^2.2.1": version: 2.2.1 resolution: "json5@npm:2.2.1" bin: @@ -26706,7 +24924,7 @@ __metadata: languageName: node linkType: hard -"json5@npm:^2.2.3": +"json5@npm:^2.2.2, json5@npm:^2.2.3": version: 2.2.3 resolution: "json5@npm:2.2.3" bin: @@ -26814,13 +25032,6 @@ __metadata: languageName: node linkType: hard -"junk@npm:^3.1.0": - version: 3.1.0 - resolution: "junk@npm:3.1.0" - checksum: 6c4d68e8f8bc25b546baed802cd0e7be6a971e92f1e885c92cbfe98946d5690b961a32f8e7909e77765d3204c3e556d13c17f73e31697ffae1db07a58b9e68c0 - languageName: node - linkType: hard - "jwa@npm:^1.4.1": version: 1.4.1 resolution: "jwa@npm:1.4.1" @@ -26911,18 +25122,6 @@ __metadata: languageName: node linkType: hard -"keccak@npm:^3.0.0": - version: 3.0.2 - resolution: "keccak@npm:3.0.2" - dependencies: - node-addon-api: ^2.0.0 - node-gyp: latest - node-gyp-build: ^4.2.0 - readable-stream: ^3.6.0 - checksum: 39a7d6128b8ee4cb7dcd186fc7e20c6087cc39f573a0f81b147c323f688f1f7c2b34f62c4ae189fe9b81c6730b2d1228d8a399cdc1f3d8a4c8f030cdc4f20272 - languageName: node - linkType: hard - "keen-slider@npm:^6.8.0": version: 6.8.6 resolution: "keen-slider@npm:6.8.6" @@ -26947,31 +25146,6 @@ __metadata: languageName: node linkType: hard -"kind-of@npm:^3.0.2, kind-of@npm:^3.0.3, kind-of@npm:^3.2.0": - version: 3.2.2 - resolution: "kind-of@npm:3.2.2" - dependencies: - is-buffer: ^1.1.5 - checksum: e898df8ca2f31038f27d24f0b8080da7be274f986bc6ed176f37c77c454d76627619e1681f6f9d2e8d2fd7557a18ecc419a6bb54e422abcbb8da8f1a75e4b386 - languageName: node - linkType: hard - -"kind-of@npm:^4.0.0": - version: 4.0.0 - resolution: "kind-of@npm:4.0.0" - dependencies: - is-buffer: ^1.1.5 - checksum: 1b9e7624a8771b5a2489026e820f3bbbcc67893e1345804a56b23a91e9069965854d2a223a7c6ee563c45be9d8c6ff1ef87f28ed5f0d1a8d00d9dcbb067c529f - languageName: node - linkType: hard - -"kind-of@npm:^5.0.0": - version: 5.1.0 - resolution: "kind-of@npm:5.1.0" - checksum: f2a0102ae0cf19c4a953397e552571bad2b588b53282874f25fca7236396e650e2db50d41f9f516bd402536e4df968dbb51b8e69e4d5d4a7173def78448f7bab - languageName: node - linkType: hard - "kind-of@npm:^6.0.0, kind-of@npm:^6.0.2, kind-of@npm:^6.0.3": version: 6.0.3 resolution: "kind-of@npm:6.0.3" @@ -26993,7 +25167,7 @@ __metadata: languageName: node linkType: hard -"klona@npm:^2.0.4, klona@npm:^2.0.5": +"klona@npm:^2.0.4": version: 2.0.5 resolution: "klona@npm:2.0.5" checksum: 8c976126ea252b766e648a4866e1bccff9d3b08432474ad80c559f6c7265cf7caede2498d463754d8c88c4759895edd8210c85c0d3155e6aae4968362889466f @@ -27285,16 +25459,14 @@ __metadata: languageName: node linkType: hard -"lazy-universal-dotenv@npm:^3.0.1": - version: 3.0.1 - resolution: "lazy-universal-dotenv@npm:3.0.1" +"lazy-universal-dotenv@npm:^4.0.0": + version: 4.0.0 + resolution: "lazy-universal-dotenv@npm:4.0.0" dependencies: - "@babel/runtime": ^7.5.0 app-root-dir: ^1.0.2 - core-js: ^3.0.4 - dotenv: ^8.0.0 - dotenv-expand: ^5.1.0 - checksum: a80509d8cb40dafcfab5859335920754a21814320aa16115e58c0ae5ef3b1d8bd4daa96349ea548e2833f2f89269ddbb103ebd55be06cfdba00e0af6785b5ba7 + dotenv: ^16.0.0 + dotenv-expand: ^10.0.0 + checksum: 196e0d701100144fbfe078d604a477573413ebf38dfe8d543748605e6a7074978508a3bb9f8135acd319db4fa947eef78836497163617d15a22163c59a00996b languageName: node linkType: hard @@ -27424,6 +25596,13 @@ __metadata: languageName: node linkType: hard +"leven@npm:^3.1.0": + version: 3.1.0 + resolution: "leven@npm:3.1.0" + checksum: 638401d534585261b6003db9d99afd244dfe82d75ddb6db5c0df412842d5ab30b2ef18de471aaec70fe69a46f17b4ae3c7f01d8a4e6580ef7adb9f4273ad1e55 + languageName: node + linkType: hard + "levn@npm:^0.4.1": version: 0.4.1 resolution: "levn@npm:0.4.1" @@ -27434,16 +25613,6 @@ __metadata: languageName: node linkType: hard -"levn@npm:~0.3.0": - version: 0.3.0 - resolution: "levn@npm:0.3.0" - dependencies: - prelude-ls: ~1.1.2 - type-check: ~0.3.2 - checksum: 0d084a524231a8246bb10fec48cdbb35282099f6954838604f3c7fc66f2e16fa66fd9cc2f3f20a541a113c4dafdf181e822c887c8a319c9195444e6c64ac395e - languageName: node - linkType: hard - "lexical@npm:^0.9.0": version: 0.9.1 resolution: "lexical@npm:0.9.1" @@ -27659,19 +25828,6 @@ __metadata: languageName: node linkType: hard -"load-json-file@npm:^1.0.0": - version: 1.1.0 - resolution: "load-json-file@npm:1.1.0" - dependencies: - graceful-fs: ^4.1.2 - parse-json: ^2.2.0 - pify: ^2.0.0 - pinkie-promise: ^2.0.0 - strip-bom: ^2.0.0 - checksum: 0e4e4f380d897e13aa236246a917527ea5a14e4fc34d49e01ce4e7e2a1e08e2740ee463a03fb021c04f594f29a178f4adb994087549d7c1c5315fcd29bf9934b - languageName: node - linkType: hard - "load-json-file@npm:^4.0.0": version: 4.0.0 resolution: "load-json-file@npm:4.0.0" @@ -27709,13 +25865,6 @@ __metadata: languageName: node linkType: hard -"loader-runner@npm:^2.4.0": - version: 2.4.0 - resolution: "loader-runner@npm:2.4.0" - checksum: e27eebbca5347a03f6b1d1bce5b2736a4984fb742f872c0a4d68e62de10f7637613e79a464d3bcd77c246d9c70fcac112bb4a3123010eb527e8b203a614647db - languageName: node - linkType: hard - "loader-runner@npm:^4.2.0": version: 4.3.0 resolution: "loader-runner@npm:4.3.0" @@ -27723,17 +25872,6 @@ __metadata: languageName: node linkType: hard -"loader-utils@npm:^1.2.3": - version: 1.4.2 - resolution: "loader-utils@npm:1.4.2" - dependencies: - big.js: ^5.2.2 - emojis-list: ^3.0.0 - json5: ^1.0.1 - checksum: eb6fb622efc0ffd1abdf68a2022f9eac62bef8ec599cf8adb75e94d1d338381780be6278534170e99edc03380a6d29bc7eb1563c89ce17c5fed3a0b17f1ad804 - languageName: node - linkType: hard - "loader-utils@npm:^2.0.0": version: 2.0.2 resolution: "loader-utils@npm:2.0.2" @@ -27745,10 +25883,21 @@ __metadata: languageName: node linkType: hard -"loader-utils@npm:^3.2.0": - version: 3.2.0 - resolution: "loader-utils@npm:3.2.0" - checksum: c7b9a8dc4b3bc19e9ef563c48e3a18ea9f8bb2da1ad38a12e4b88358cfba5f148a7baf12d78fe78ffcb718ce1e062ab31fcf5c148459f1247a672a4213471e80 +"loader-utils@npm:^2.0.4": + version: 2.0.4 + resolution: "loader-utils@npm:2.0.4" + dependencies: + big.js: ^5.2.2 + emojis-list: ^3.0.0 + json5: ^2.1.2 + checksum: a5281f5fff1eaa310ad5e1164095689443630f3411e927f95031ab4fb83b4a98f388185bb1fe949e8ab8d4247004336a625e9255c22122b815bb9a4c5d8fc3b7 + languageName: node + linkType: hard + +"loader-utils@npm:^3.2.1": + version: 3.2.1 + resolution: "loader-utils@npm:3.2.1" + checksum: 4e3ea054cdc8be1ab1f1238f49f42fdf0483039eff920fb1d442039f3f0ad4ebd11fb8e584ccdf2cb7e3c56b3d40c1832416e6408a55651b843da288960cc792 languageName: node linkType: hard @@ -27806,6 +25955,15 @@ __metadata: languageName: node linkType: hard +"locate-path@npm:^7.1.0": + version: 7.2.0 + resolution: "locate-path@npm:7.2.0" + dependencies: + p-locate: ^6.0.0 + checksum: c1b653bdf29beaecb3d307dfb7c44d98a2a98a02ebe353c9ad055d1ac45d6ed4e1142563d222df9b9efebc2bcb7d4c792b507fad9e7150a04c29530b7db570f8 + languageName: node + linkType: hard + "lodash-es@npm:^4.17.21": version: 4.17.21 resolution: "lodash-es@npm:4.17.21" @@ -27967,13 +26125,6 @@ __metadata: languageName: node linkType: hard -"lodash.uniq@npm:4.5.0": - version: 4.5.0 - resolution: "lodash.uniq@npm:4.5.0" - checksum: a4779b57a8d0f3c441af13d9afe7ecff22dd1b8ce1129849f71d9bbc8e8ee4e46dfb4b7c28f7ad3d67481edd6e51126e4e2a6ee276e25906d10f7140187c392d - 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.0": version: 4.17.21 resolution: "lodash@npm:4.17.21" @@ -28054,17 +26205,7 @@ __metadata: languageName: node linkType: hard -"loud-rejection@npm:^1.0.0": - version: 1.6.0 - resolution: "loud-rejection@npm:1.6.0" - dependencies: - currently-unhandled: ^0.4.1 - signal-exit: ^3.0.0 - checksum: 750e12defde34e8cbf263c2bff16f028a89b56e022ad6b368aa7c39495b5ac33f2349a8d00665a9b6d25c030b376396524d8a31eb0dde98aaa97956d7324f927 - languageName: node - linkType: hard - -"loupe@npm:^2.3.1, loupe@npm:^2.3.6": +"loupe@npm:^2.3.6": version: 2.3.6 resolution: "loupe@npm:2.3.6" dependencies: @@ -28107,13 +26248,6 @@ __metadata: languageName: node linkType: hard -"lowercase-keys@npm:^1.0.0": - version: 1.0.1 - resolution: "lowercase-keys@npm:1.0.1" - checksum: 4d045026595936e09953e3867722e309415ff2c80d7701d067546d75ef698dac218a4f53c6d1d0e7368b47e45fd7529df47e6cb56fbb90523ba599f898b3d147 - languageName: node - linkType: hard - "lowercase-keys@npm:^2.0.0": version: 2.0.0 resolution: "lowercase-keys@npm:2.0.0" @@ -28121,13 +26255,6 @@ __metadata: languageName: node linkType: hard -"lowercase-keys@npm:^3.0.0": - version: 3.0.0 - resolution: "lowercase-keys@npm:3.0.0" - checksum: 67a3f81409af969bc0c4ca0e76cd7d16adb1e25aa1c197229587eaf8671275c8c067cd421795dbca4c81be0098e4c426a086a05e30de8a9c587b7a13c0c7ccc5 - languageName: node - linkType: hard - "lowlight@npm:^1.17.0": version: 1.20.0 resolution: "lowlight@npm:1.20.0" @@ -28260,6 +26387,15 @@ __metadata: languageName: node linkType: hard +"lz-string@npm:^1.5.0": + version: 1.5.0 + resolution: "lz-string@npm:1.5.0" + bin: + lz-string: bin/bin.js + checksum: 1ee98b4580246fd90dd54da6e346fb1caefcf05f677c686d9af237a157fdea3fd7c83a4bc58f858cd5b10a34d27afe0fdcbd0505a47e0590726a873dc8b8f65d + languageName: node + linkType: hard + "magic-string@npm:^0.25.7": version: 0.25.9 resolution: "magic-string@npm:0.25.9" @@ -28269,15 +26405,6 @@ __metadata: languageName: node linkType: hard -"magic-string@npm:^0.26.1, magic-string@npm:^0.26.2": - version: 0.26.2 - resolution: "magic-string@npm:0.26.2" - dependencies: - sourcemap-codec: ^1.4.8 - checksum: b4db4e2b370ac8d9ffc6443a2b591b75364bf1fc9121b5a4068d5b89804abff6709d1fa4a0e0c2d54f2e61e0e44db83efdfe219a5ab0ba6d25ee1f2b51fbed55 - languageName: node - linkType: hard - "magic-string@npm:^0.26.7": version: 0.26.7 resolution: "magic-string@npm:0.26.7" @@ -28305,6 +26432,15 @@ __metadata: languageName: node linkType: hard +"magic-string@npm:^0.30.5": + version: 0.30.5 + resolution: "magic-string@npm:0.30.5" + dependencies: + "@jridgewell/sourcemap-codec": ^1.4.15 + checksum: da10fecff0c0a7d3faf756913ce62bd6d5e7b0402be48c3b27bfd651b90e29677e279069a63b764bcdc1b8ecdcdb898f29a5c5ec510f2323e8d62ee057a6eb18 + languageName: node + linkType: hard + "mailhog@npm:^4.16.0": version: 4.16.0 resolution: "mailhog@npm:4.16.0" @@ -28420,23 +26556,14 @@ __metadata: languageName: node linkType: hard -"map-age-cleaner@npm:^0.1.3": - version: 0.1.3 - resolution: "map-age-cleaner@npm:0.1.3" - dependencies: - p-defer: ^1.0.0 - checksum: cb2804a5bcb3cbdfe4b59066ea6d19f5e7c8c196cd55795ea4c28f792b192e4c442426ae52524e5e1acbccf393d3bddacefc3d41f803e66453f6c4eda3650bc1 - languageName: node - linkType: hard - -"map-cache@npm:^0.2.0, map-cache@npm:^0.2.2": +"map-cache@npm:^0.2.0": version: 0.2.2 resolution: "map-cache@npm:0.2.2" checksum: 3067cea54285c43848bb4539f978a15dedc63c03022abeec6ef05c8cb6829f920f13b94bcaf04142fc6a088318e564c4785704072910d120d55dbc2e0c421969 languageName: node linkType: hard -"map-obj@npm:^1.0.0, map-obj@npm:^1.0.1": +"map-obj@npm:^1.0.0": version: 1.0.1 resolution: "map-obj@npm:1.0.1" checksum: 9949e7baec2a336e63b8d4dc71018c117c3ce6e39d2451ccbfd3b8350c547c4f6af331a4cbe1c83193d7c6b786082b6256bde843db90cb7da2a21e8fcc28afed @@ -28464,22 +26591,6 @@ __metadata: languageName: node linkType: hard -"map-visit@npm:^1.0.0": - version: 1.0.0 - resolution: "map-visit@npm:1.0.0" - dependencies: - object-visit: ^1.0.0 - checksum: c27045a5021c344fc19b9132eb30313e441863b2951029f8f8b66f79d3d8c1e7e5091578075a996f74e417479506fe9ede28c44ca7bc351a61c9d8073daec36a - languageName: node - linkType: hard - -"markdown-escapes@npm:^1.0.0": - version: 1.0.4 - resolution: "markdown-escapes@npm:1.0.4" - checksum: 6833a93d72d3f70a500658872312c6fa8015c20cc835a85ae6901fa232683fbc6ed7118ebe920fea7c80039a560f339c026597d96eee0e9de602a36921804997 - languageName: node - linkType: hard - "markdown-it@npm:^13.0.1": version: 13.0.1 resolution: "markdown-it@npm:13.0.1" @@ -28495,6 +26606,15 @@ __metadata: languageName: node linkType: hard +"markdown-to-jsx@npm:^7.1.8": + version: 7.3.2 + resolution: "markdown-to-jsx@npm:7.3.2" + peerDependencies: + react: ">= 0.14.0" + checksum: 8885c6343b71570b0a7ec16cd85a49b853a830234790ee7430e2517ea5d8d361ff138bd52147f650790f3e7b3a28a15c755fc16f8856dd01ddf09a6161782e06 + languageName: node + linkType: hard + "marked@npm:4.2.12": version: 4.2.12 resolution: "marked@npm:4.2.12" @@ -28526,15 +26646,6 @@ __metadata: languageName: node linkType: hard -"mdast-squeeze-paragraphs@npm:^4.0.0": - version: 4.0.0 - resolution: "mdast-squeeze-paragraphs@npm:4.0.0" - dependencies: - unist-util-remove: ^2.0.0 - checksum: dfe8ec8e8a62171f020e82b088cc35cb9da787736dc133a3b45ce8811782a93e69bf06d147072e281079f09fac67be8a36153ffffd9bfbf89ed284e4c4f56f75 - languageName: node - linkType: hard - "mdast-util-definitions@npm:^4.0.0": version: 4.0.0 resolution: "mdast-util-definitions@npm:4.0.0" @@ -28585,22 +26696,6 @@ __metadata: languageName: node linkType: hard -"mdast-util-to-hast@npm:10.0.1": - version: 10.0.1 - resolution: "mdast-util-to-hast@npm:10.0.1" - dependencies: - "@types/mdast": ^3.0.0 - "@types/unist": ^2.0.0 - mdast-util-definitions: ^4.0.0 - mdurl: ^1.0.0 - unist-builder: ^2.0.0 - unist-util-generated: ^1.0.0 - unist-util-position: ^3.0.0 - unist-util-visit: ^2.0.0 - checksum: e5f385757df7e9b37db4d6f326bf7b4fc1b40f9ad01fc335686578f44abe0ba46d3e60af4d5e5b763556d02e65069ef9a09c49db049b52659203a43e7fa9084d - languageName: node - linkType: hard - "mdast-util-to-hast@npm:^11.0.0": version: 11.3.0 resolution: "mdast-util-to-hast@npm:11.3.0" @@ -28664,31 +26759,12 @@ __metadata: languageName: node linkType: hard -"mem@npm:^8.1.1": - version: 8.1.1 - resolution: "mem@npm:8.1.1" +"memfs@npm:^3.4.1, memfs@npm:^3.4.12": + version: 3.5.3 + resolution: "memfs@npm:3.5.3" dependencies: - map-age-cleaner: ^0.1.3 - mimic-fn: ^3.1.0 - checksum: c41bc97f6f82b91899206058989e34bcb1543af40413c2ab59e5a8e97e4f8f2188d62e7bd95b2d575d5b0d823d5034a0f274a0676f6d11a0e0b973898b06c8b1 - languageName: node - linkType: hard - -"memfs@npm:^3.1.2": - version: 3.4.7 - resolution: "memfs@npm:3.4.7" - dependencies: - fs-monkey: ^1.0.3 - checksum: fab88266dc576dc4999e38bdf531d703fb798affac2e0dd3fc17470878486844027b2766008ba80c0103b443f52cf9068a5c00f4e1ecf04106f4b29c11855822 - languageName: node - linkType: hard - -"memfs@npm:^3.2.2": - version: 3.4.9 - resolution: "memfs@npm:3.4.9" - dependencies: - fs-monkey: ^1.0.3 - checksum: 575dfde73f4105db42ffc2fdcd06efb9037541de095bd4fe9fb29134a1a775dfe922839b30db632de76cb29354d79d8f82a5e4f5f588e21bc47358b6d058a9c6 + fs-monkey: ^1.0.4 + checksum: 18dfdeacad7c8047b976a6ccd58bc98ba76e122ad3ca0e50a21837fe2075fc0d9aafc58ab9cf2576c2b6889da1dd2503083f2364191b695273f40969db2ecc44 languageName: node linkType: hard @@ -28715,26 +26791,6 @@ __metadata: languageName: node linkType: hard -"memory-fs@npm:^0.4.1": - version: 0.4.1 - resolution: "memory-fs@npm:0.4.1" - dependencies: - errno: ^0.1.3 - readable-stream: ^2.0.1 - checksum: 6db6c8682eff836664ca9b5b6052ae38d21713dda9d0ef4700fa5c0599a8bc16b2093bee75ac3dedbe59fb2222d368f25bafaa62ba143c41051359cbcb005044 - languageName: node - linkType: hard - -"memory-fs@npm:^0.5.0": - version: 0.5.0 - resolution: "memory-fs@npm:0.5.0" - dependencies: - errno: ^0.1.3 - readable-stream: ^2.0.1 - checksum: a9f25b0a8ecfb7324277393f19ef68e6ba53b9e6e4b526bbf2ba23055c5440fbf61acc7bf66bfd980e9eb4951a4790f6f777a9a3abd36603f22c87e8a64d3d6b - languageName: node - linkType: hard - "memory-pager@npm:^1.0.2": version: 1.5.0 resolution: "memory-pager@npm:1.5.0" @@ -28749,24 +26805,6 @@ __metadata: languageName: node linkType: hard -"meow@npm:^3.1.0": - version: 3.7.0 - resolution: "meow@npm:3.7.0" - dependencies: - camelcase-keys: ^2.0.0 - decamelize: ^1.1.2 - loud-rejection: ^1.0.0 - map-obj: ^1.0.1 - minimist: ^1.1.3 - normalize-package-data: ^2.3.4 - object-assign: ^4.0.1 - read-pkg-up: ^1.0.1 - redent: ^1.0.0 - trim-newlines: ^1.0.0 - checksum: 65a412e5d0d643615508007a9292799bb3e4e690597d54c9e98eb0ca3adb7b8ca8899f41ea7cb7d8277129cdcd9a1a60202b31f88e0034e6aaae02894d80999a - languageName: node - linkType: hard - "meow@npm:^6.0.0": version: 6.1.1 resolution: "meow@npm:6.1.1" @@ -28834,7 +26872,7 @@ __metadata: languageName: node linkType: hard -"merge2@npm:^1.2.3, merge2@npm:^1.3.0, merge2@npm:^1.4.1": +"merge2@npm:^1.3.0, merge2@npm:^1.4.1": version: 1.4.1 resolution: "merge2@npm:1.4.1" checksum: 7268db63ed5169466540b6fb947aec313200bcf6d40c5ab722c22e242f651994619bcd85601602972d3c85bd2cc45a358a4c61937e9f11a061919a1da569b0c2 @@ -28873,13 +26911,6 @@ __metadata: languageName: node linkType: hard -"microevent.ts@npm:~0.1.1": - version: 0.1.1 - resolution: "microevent.ts@npm:0.1.1" - checksum: 7874fcdb3f0dfa4e996d3ea63b3b9882874ae7d22be28d51ae20da24c712e9e28e5011d988095c27dd2b32e37c0ad7425342a71b89adb8e808ec7194fadf4a7a - languageName: node - linkType: hard - "micromark-core-commonmark@npm:^1.0.1": version: 1.1.0 resolution: "micromark-core-commonmark@npm:1.1.0" @@ -29116,27 +27147,6 @@ __metadata: languageName: node linkType: hard -"micromatch@npm:^3.1.10, micromatch@npm:^3.1.4": - version: 3.1.10 - resolution: "micromatch@npm:3.1.10" - dependencies: - arr-diff: ^4.0.0 - array-unique: ^0.3.2 - braces: ^2.3.1 - define-property: ^2.0.2 - extend-shallow: ^3.0.2 - extglob: ^2.0.4 - fragment-cache: ^0.2.1 - kind-of: ^6.0.2 - nanomatch: ^1.2.9 - object.pick: ^1.3.0 - regex-not: ^1.0.0 - snapdragon: ^0.8.1 - to-regex: ^3.0.2 - checksum: ad226cba4daa95b4eaf47b2ca331c8d2e038d7b41ae7ed0697cde27f3f1d6142881ab03d4da51b65d9d315eceb5e4cdddb3fbb55f5f72cfa19cf3ea469d054dc - languageName: node - linkType: hard - "micromatch@npm:^4.0.2, micromatch@npm:^4.0.4, micromatch@npm:^4.0.5": version: 4.0.5 resolution: "micromatch@npm:4.0.5" @@ -29166,7 +27176,7 @@ __metadata: languageName: node linkType: hard -"mime-types@npm:^2.1.12, mime-types@npm:^2.1.16, mime-types@npm:^2.1.27, mime-types@npm:^2.1.30, mime-types@npm:^2.1.35, mime-types@npm:~2.1.19, mime-types@npm:~2.1.24, mime-types@npm:~2.1.34": +"mime-types@npm:^2.1.12, mime-types@npm:^2.1.25, mime-types@npm:^2.1.27, mime-types@npm:^2.1.31, mime-types@npm:^2.1.35, mime-types@npm:~2.1.19, mime-types@npm:~2.1.24, mime-types@npm:~2.1.34": version: 2.1.35 resolution: "mime-types@npm:2.1.35" dependencies: @@ -29184,7 +27194,7 @@ __metadata: languageName: node linkType: hard -"mime@npm:^2.4.4, mime@npm:^2.4.6": +"mime@npm:^2.0.3, mime@npm:^2.4.6": version: 2.6.0 resolution: "mime@npm:2.6.0" bin: @@ -29200,7 +27210,7 @@ __metadata: languageName: node linkType: hard -"mimic-fn@npm:^3.0.0, mimic-fn@npm:^3.1.0": +"mimic-fn@npm:^3.0.0": version: 3.1.0 resolution: "mimic-fn@npm:3.1.0" checksum: f7b167f9115b8bbdf2c3ee55dce9149d14be9e54b237259c4bc1d8d0512ea60f25a1b323f814eb1fe8f5a541662804bcfcfff3202ca58df143edb986849d58db @@ -29230,7 +27240,7 @@ __metadata: languageName: node linkType: hard -"min-indent@npm:^1.0.0": +"min-indent@npm:^1.0.0, min-indent@npm:^1.0.1": version: 1.0.1 resolution: "min-indent@npm:1.0.1" checksum: bfc6dd03c5eaf623a4963ebd94d087f6f4bbbfd8c41329a7f09706b0cb66969c4ddd336abeb587bc44bc6f08e13bf90f0b374f9d71f9f01e04adc2cd6f083ef1 @@ -29307,14 +27317,14 @@ __metadata: languageName: node linkType: hard -"minimist@npm:^1.1.0, minimist@npm:^1.2.7": +"minimist@npm:^1.1.0, minimist@npm:^1.2.3, minimist@npm:^1.2.7": version: 1.2.8 resolution: "minimist@npm:1.2.8" checksum: 75a6d645fb122dad29c06a7597bddea977258957ed88d7a6df59b5cd3fe4a527e253e9bbf2e783e4b73657f9098b96a5fe96ab8a113655d4109108577ecf85b0 languageName: node linkType: hard -"minimist@npm:^1.1.1, minimist@npm:^1.1.3, minimist@npm:^1.2.0, minimist@npm:^1.2.5, minimist@npm:^1.2.6": +"minimist@npm:^1.2.0, minimist@npm:^1.2.5, minimist@npm:^1.2.6": version: 1.2.7 resolution: "minimist@npm:1.2.7" checksum: 7346574a1038ca23c32e02252f603801f09384dd1d78b69a943a4e8c2c28730b80e96193882d3d3b22a063445f460e48316b29b8a25addca2d7e5e8f75478bec @@ -29354,7 +27364,7 @@ __metadata: languageName: node linkType: hard -"minipass-pipeline@npm:^1.2.2, minipass-pipeline@npm:^1.2.4": +"minipass-pipeline@npm:^1.2.4": version: 1.2.4 resolution: "minipass-pipeline@npm:1.2.4" dependencies: @@ -29372,16 +27382,6 @@ __metadata: languageName: node linkType: hard -"minipass@npm:^2.6.0, minipass@npm:^2.9.0": - version: 2.9.0 - resolution: "minipass@npm:2.9.0" - dependencies: - safe-buffer: ^5.1.2 - yallist: ^3.0.0 - checksum: 077b66f31ba44fd5a0d27d12a9e6a86bff8f97a4978dedb0373167156b5599fadb6920fdde0d9f803374164d810e05e8462ce28e86abbf7f0bea293a93711fc6 - languageName: node - linkType: hard - "minipass@npm:^3.0.0, minipass@npm:^3.1.1": version: 3.3.4 resolution: "minipass@npm:3.3.4" @@ -29407,6 +27407,13 @@ __metadata: languageName: node linkType: hard +"minipass@npm:^5.0.0": + version: 5.0.0 + resolution: "minipass@npm:5.0.0" + checksum: 425dab288738853fded43da3314a0b5c035844d6f3097a8e3b5b29b328da8f3c1af6fc70618b32c29ff906284cf6406b6841376f21caaadd0793c1d5a6a620ea + languageName: node + linkType: hard + "minipass@npm:^5.0.0 || ^6.0.2": version: 6.0.2 resolution: "minipass@npm:6.0.2" @@ -29421,15 +27428,6 @@ __metadata: languageName: node linkType: hard -"minizlib@npm:^1.3.3": - version: 1.3.3 - resolution: "minizlib@npm:1.3.3" - dependencies: - minipass: ^2.9.0 - checksum: b0425c04d2ae6aad5027462665f07cc0d52075f7fa16e942b4611115f9b31f02924073b7221be6f75929d3c47ab93750c63f6dc2bbe8619ceacb3de1f77732c0 - languageName: node - linkType: hard - "minizlib@npm:^2.1.1, minizlib@npm:^2.1.2": version: 2.1.2 resolution: "minizlib@npm:2.1.2" @@ -29440,34 +27438,6 @@ __metadata: languageName: node linkType: hard -"mississippi@npm:^3.0.0": - version: 3.0.0 - resolution: "mississippi@npm:3.0.0" - dependencies: - concat-stream: ^1.5.0 - duplexify: ^3.4.2 - end-of-stream: ^1.1.0 - flush-write-stream: ^1.0.0 - from2: ^2.1.0 - parallel-transform: ^1.1.0 - pump: ^3.0.0 - pumpify: ^1.3.3 - stream-each: ^1.1.0 - through2: ^2.0.0 - checksum: 84b3d9889621d293f9a596bafe60df863b330c88fc19215ced8f603c605fc7e1bf06f8e036edf301bd630a03fd5d9d7d23d5d6b9a4802c30ca864d800f0bd9f8 - languageName: node - linkType: hard - -"mixin-deep@npm:^1.2.0": - version: 1.3.2 - resolution: "mixin-deep@npm:1.3.2" - dependencies: - for-in: ^1.0.2 - is-extendable: ^1.0.1 - checksum: 820d5a51fcb7479f2926b97f2c3bb223546bc915e6b3a3eb5d906dda871bba569863595424a76682f2b15718252954644f3891437cb7e3f220949bed54b1750d - languageName: node - linkType: hard - "mixme@npm:^0.5.1": version: 0.5.9 resolution: "mixme@npm:0.5.9" @@ -29484,6 +27454,13 @@ __metadata: languageName: node linkType: hard +"mkdirp-classic@npm:^0.5.2, mkdirp-classic@npm:^0.5.3": + version: 0.5.3 + resolution: "mkdirp-classic@npm:0.5.3" + checksum: 3f4e088208270bbcc148d53b73e9a5bd9eef05ad2cbf3b3d0ff8795278d50dd1d11a8ef1875ff5aea3fa888931f95bfcb2ad5b7c1061cfefd6284d199e6776ac + languageName: node + linkType: hard + "mkdirp-promise@npm:^1.0.0": version: 1.1.0 resolution: "mkdirp-promise@npm:1.1.0" @@ -29493,25 +27470,7 @@ __metadata: languageName: node linkType: hard -"mkdirp-promise@npm:^5.0.1": - version: 5.0.1 - resolution: "mkdirp-promise@npm:5.0.1" - dependencies: - mkdirp: "*" - checksum: 31ddc9478216adf6d6bee9ea7ce9ccfe90356d9fcd1dfb18128eac075390b4161356d64c3a7b0a75f9de01a90aadd990a0ec8c7434036563985c4b853a053ee2 - languageName: node - linkType: hard - -"mkdirp@npm:*, mkdirp@npm:^1.0.3, mkdirp@npm:^1.0.4": - version: 1.0.4 - resolution: "mkdirp@npm:1.0.4" - bin: - mkdirp: bin/cmd.js - checksum: a96865108c6c3b1b8e1d5e9f11843de1e077e57737602de1b82030815f311be11f96f09cce59bd5b903d0b29834733e5313f9301e3ed6d6f6fba2eae0df4298f - languageName: node - linkType: hard - -"mkdirp@npm:^0.5.1, mkdirp@npm:^0.5.3, mkdirp@npm:^0.5.5": +"mkdirp@npm:^0.5.1, mkdirp@npm:^0.5.4, mkdirp@npm:^0.5.5": version: 0.5.6 resolution: "mkdirp@npm:0.5.6" dependencies: @@ -29522,6 +27481,15 @@ __metadata: languageName: node linkType: hard +"mkdirp@npm:^1.0.3, mkdirp@npm:^1.0.4": + version: 1.0.4 + resolution: "mkdirp@npm:1.0.4" + bin: + mkdirp: bin/cmd.js + checksum: a96865108c6c3b1b8e1d5e9f11843de1e077e57737602de1b82030815f311be11f96f09cce59bd5b903d0b29834733e5313f9301e3ed6d6f6fba2eae0df4298f + languageName: node + linkType: hard + "mkdirp@npm:^2.1.3": version: 2.1.5 resolution: "mkdirp@npm:2.1.5" @@ -29601,13 +27569,6 @@ __metadata: languageName: node linkType: hard -"mock-fs@npm:^4.1.0": - version: 4.14.0 - resolution: "mock-fs@npm:4.14.0" - checksum: dccd976a8d753e19d3c7602ea422d1f7137def3c1128c177e1f5500fe8c50ec15fe0937cfc3a15c4577fe7adb9a37628b92da9294d13d90f08be4b669b0fca76 - languageName: node - linkType: hard - "module-alias@npm:^2.2.2": version: 2.2.2 resolution: "module-alias@npm:2.2.2" @@ -29683,20 +27644,6 @@ __metadata: languageName: node linkType: hard -"move-concurrently@npm:^1.0.1": - version: 1.0.1 - resolution: "move-concurrently@npm:1.0.1" - dependencies: - aproba: ^1.1.1 - copy-concurrently: ^1.0.0 - fs-write-stream-atomic: ^1.0.8 - mkdirp: ^0.5.1 - rimraf: ^2.5.4 - run-queue: ^1.0.3 - checksum: 4ea3296c150b09e798177847f673eb5783f8ca417ba806668d2c631739f653e1a735f19fb9b6e2f5e25ee2e4c0a6224732237a8e4f84c764e99d7462d258209e - languageName: node - linkType: hard - "mqtt-packet@npm:^6.8.0": version: 6.10.0 resolution: "mqtt-packet@npm:6.10.0" @@ -29737,7 +27684,7 @@ __metadata: languageName: node linkType: hard -"mri@npm:^1.1.0": +"mri@npm:^1.1.0, mri@npm:^1.2.0": version: 1.2.0 resolution: "mri@npm:1.2.0" checksum: 83f515abbcff60150873e424894a2f65d68037e5a7fcde8a9e2b285ee9c13ac581b63cfc1e6826c4732de3aeb84902f7c1e16b7aff46cd3f897a0f757a894e85 @@ -29758,13 +27705,6 @@ __metadata: languageName: node linkType: hard -"ms@npm:2.1.1": - version: 2.1.1 - resolution: "ms@npm:2.1.1" - checksum: 0078a23cd916a9a7435c413caa14c57d4b4f6e2470e0ab554b6964163c8a4436448ac7ae020e883685475da6b6796cc396b670f579cb275db288a21e3e57721e - languageName: node - linkType: hard - "ms@npm:2.1.2": version: 2.1.2 resolution: "ms@npm:2.1.2" @@ -29830,56 +27770,6 @@ __metadata: languageName: node linkType: hard -"multibase@npm:^0.7.0": - version: 0.7.0 - resolution: "multibase@npm:0.7.0" - dependencies: - base-x: ^3.0.8 - buffer: ^5.5.0 - checksum: 3a520897d706b3064b59ddee286a9e1a5b35bb19bd830f93d7ddecdbf69fa46648c8fda0fec49a5d4640b8b7ac9d5fe360417d6de2906599aa535f55bf6b8e58 - languageName: node - linkType: hard - -"multibase@npm:~0.6.0": - version: 0.6.1 - resolution: "multibase@npm:0.6.1" - dependencies: - base-x: ^3.0.8 - buffer: ^5.5.0 - checksum: 0e25a978d2b5cf73e4cce31d032bad85230ea99e9394d259210f676a76539316e7c51bd7dcc9d83523ec7ea1f0e7a3353c5f69397639d78be9acbefa29431faa - languageName: node - linkType: hard - -"multicodec@npm:^0.5.5": - version: 0.5.7 - resolution: "multicodec@npm:0.5.7" - dependencies: - varint: ^5.0.0 - checksum: 5af1febc3bb5381c303c964a4c3bacb9d0d16615599426d58c68722c46e66a7085082995479943084322028324ad692cd70ea14b5eefb2791d325fa00ead04a3 - languageName: node - linkType: hard - -"multicodec@npm:^1.0.0": - version: 1.0.4 - resolution: "multicodec@npm:1.0.4" - dependencies: - buffer: ^5.6.0 - varint: ^5.0.0 - checksum: e6a2916fa76c023b1c90b32ae74f8a781cf0727f71660b245a5ed1db46add6f2ce1586bee5713b16caf0a724e81bfe0678d89910c20d3bb5fd9649dacb2be79e - languageName: node - linkType: hard - -"multihashes@npm:^0.4.15, multihashes@npm:~0.4.15": - version: 0.4.21 - resolution: "multihashes@npm:0.4.21" - dependencies: - buffer: ^5.5.0 - multibase: ^0.7.0 - varint: ^5.0.0 - checksum: 688731560cf7384e899dc75c0da51e426eb7d058c5ea5eb57b224720a1108deb8797f1cd7f45599344d512d2877de99dd6a7b7773a095812365dea4ffe6ebd4c - languageName: node - linkType: hard - "multistream@npm:^2.0.5": version: 2.1.1 resolution: "multistream@npm:2.1.1" @@ -29933,22 +27823,6 @@ __metadata: languageName: node linkType: hard -"nan@npm:^2.12.1": - version: 2.16.0 - resolution: "nan@npm:2.16.0" - dependencies: - node-gyp: latest - checksum: cb16937273ea55b01ea47df244094c12297ce6b29b36e845d349f1f7c268b8d7c5abd126a102c5678a1e1afd0d36bba35ea0cc959e364928ce60561c9306064a - languageName: node - linkType: hard - -"nano-json-stream-parser@npm:^0.1.2": - version: 0.1.2 - resolution: "nano-json-stream-parser@npm:0.1.2" - checksum: 5bfe146358c659e0aa7d5e0003416be929c9bd02ba11b1e022b78dddf25be655e33d810249c1687d2c9abdcee5cd4d00856afd1b266a5a127236c0d16416d33a - languageName: node - linkType: hard - "nanoclone@npm:^0.2.1": version: 0.2.1 resolution: "nanoclone@npm:0.2.1" @@ -29965,7 +27839,7 @@ __metadata: languageName: node linkType: hard -"nanoid@npm:^3.3.1, nanoid@npm:^3.3.4": +"nanoid@npm:^3.3.4": version: 3.3.4 resolution: "nanoid@npm:3.3.4" bin: @@ -29983,22 +27857,19 @@ __metadata: languageName: node linkType: hard -"nanomatch@npm:^1.2.9": - version: 1.2.13 - resolution: "nanomatch@npm:1.2.13" - dependencies: - arr-diff: ^4.0.0 - array-unique: ^0.3.2 - define-property: ^2.0.2 - extend-shallow: ^3.0.2 - fragment-cache: ^0.2.1 - is-windows: ^1.0.2 - kind-of: ^6.0.2 - object.pick: ^1.3.0 - regex-not: ^1.0.0 - snapdragon: ^0.8.1 - to-regex: ^3.0.1 - checksum: 54d4166d6ef08db41252eb4e96d4109ebcb8029f0374f9db873bd91a1f896c32ec780d2a2ea65c0b2d7caf1f28d5e1ea33746a470f32146ac8bba821d80d38d8 +"nanoid@npm:^3.3.7": + version: 3.3.7 + resolution: "nanoid@npm:3.3.7" + bin: + nanoid: bin/nanoid.cjs + checksum: d36c427e530713e4ac6567d488b489a36582ef89da1d6d4e3b87eded11eb10d7042a877958c6f104929809b2ab0bafa17652b076cdf84324aa75b30b722204f2 + languageName: node + linkType: hard + +"napi-build-utils@npm:^1.0.1": + version: 1.0.2 + resolution: "napi-build-utils@npm:1.0.2" + checksum: 06c14271ee966e108d55ae109f340976a9556c8603e888037145d6522726aebe89dd0c861b4b83947feaf6d39e79e08817559e8693deedc2c94e82c5cbd090c7 languageName: node linkType: hard @@ -30037,20 +27908,13 @@ __metadata: languageName: node linkType: hard -"neo-async@npm:^2.5.0, neo-async@npm:^2.6.0, neo-async@npm:^2.6.1, neo-async@npm:^2.6.2": +"neo-async@npm:^2.5.0, neo-async@npm:^2.6.0, neo-async@npm:^2.6.2": version: 2.6.2 resolution: "neo-async@npm:2.6.2" checksum: deac9f8d00eda7b2e5cd1b2549e26e10a0faa70adaa6fdadca701cc55f49ee9018e427f424bac0c790b7c7e2d3068db97f3093f1093975f2acb8f8818b936ed9 languageName: node linkType: hard -"nested-error-stacks@npm:^2.0.0, nested-error-stacks@npm:^2.1.0": - version: 2.1.1 - resolution: "nested-error-stacks@npm:2.1.1" - checksum: 5f452fad75db8480b4db584e1602894ff5977f8bf3d2822f7ba5cb7be80e89adf1fffa34dada3347ef313a4288850b4486eb0635b315c32bdfb505577e8880e3 - languageName: node - linkType: hard - "new-github-issue-url@npm:0.2.1": version: 0.2.1 resolution: "new-github-issue-url@npm:0.2.1" @@ -30191,13 +28055,6 @@ __metadata: languageName: node linkType: hard -"next-tick@npm:^1.1.0": - version: 1.1.0 - resolution: "next-tick@npm:1.1.0" - checksum: 83b5cf36027a53ee6d8b7f9c0782f2ba87f4858d977342bfc3c20c21629290a2111f8374d13a81221179603ffc4364f38374b5655d17b6a8f8a8c77bdea4fe8b - languageName: node - linkType: hard - "next-transpile-modules@npm:^8.0.0": version: 8.0.0 resolution: "next-transpile-modules@npm:8.0.0" @@ -30344,6 +28201,15 @@ __metadata: languageName: node linkType: hard +"node-abi@npm:^3.3.0": + version: 3.52.0 + resolution: "node-abi@npm:3.52.0" + dependencies: + semver: ^7.3.5 + checksum: 2ef47937d058fa1f0817294fe5ac3ec1d370d3f8eb4931ea920b7e147033390058d3bc35b64d9161036ad2fda191aa1155005cea20ec50984312637221559354 + languageName: node + linkType: hard + "node-abort-controller@npm:^3.0.1": version: 3.0.1 resolution: "node-abort-controller@npm:3.0.1" @@ -30351,16 +28217,16 @@ __metadata: languageName: node linkType: hard -"node-addon-api@npm:^2.0.0": - version: 2.0.2 - resolution: "node-addon-api@npm:2.0.2" +"node-addon-api@npm:^6.1.0": + version: 6.1.0 + resolution: "node-addon-api@npm:6.1.0" dependencies: node-gyp: latest - checksum: 31fb22d674648204f8dd94167eb5aac896c841b84a9210d614bf5d97c74ef059cc6326389cf0c54d2086e35312938401d4cc82e5fcd679202503eb8ac84814f8 + checksum: 3a539510e677cfa3a833aca5397300e36141aca064cdc487554f2017110709a03a95da937e98c2a14ec3c626af7b2d1b6dabe629a481f9883143d0d5bff07bf2 languageName: node linkType: hard -"node-dir@npm:^0.1.10": +"node-dir@npm:^0.1.17": version: 0.1.17 resolution: "node-dir@npm:0.1.17" dependencies: @@ -30376,6 +28242,13 @@ __metadata: languageName: node linkType: hard +"node-fetch-native@npm:^1.4.0": + version: 1.4.1 + resolution: "node-fetch-native@npm:1.4.1" + checksum: 339001ad3235a09b195198df8be71b591eec4064a2fcfb7f54b9f0716f6ccb3bda5828e1746f809a6d2edb062a0330e5798f408396c33b3b88339c73d6e9575d + languageName: node + linkType: hard + "node-fetch@npm:2.6.12": version: 2.6.12 resolution: "node-fetch@npm:2.6.12" @@ -30404,7 +28277,7 @@ __metadata: languageName: node linkType: hard -"node-fetch@npm:^2.6.12": +"node-fetch@npm:^2.0.0, node-fetch@npm:^2.6.12": version: 2.7.0 resolution: "node-fetch@npm:2.7.0" dependencies: @@ -30425,17 +28298,6 @@ __metadata: languageName: node linkType: hard -"node-gyp-build@npm:^4.2.0, node-gyp-build@npm:^4.3.0": - version: 4.4.0 - resolution: "node-gyp-build@npm:4.4.0" - bin: - node-gyp-build: bin.js - node-gyp-build-optional: optional.js - node-gyp-build-test: build-test.js - checksum: 972a059f960253d254e0b23ce10f54c8982236fc0edcab85166d0b7f87443b2ce98391c877cfb2f6eeafcf03c538c5f4dd3e0bfff03828eb48634f58f4c64343 - languageName: node - linkType: hard - "node-gyp@npm:latest": version: 9.3.1 resolution: "node-gyp@npm:9.3.1" @@ -30485,37 +28347,6 @@ __metadata: languageName: node linkType: hard -"node-libs-browser@npm:^2.2.1": - version: 2.2.1 - resolution: "node-libs-browser@npm:2.2.1" - dependencies: - assert: ^1.1.1 - browserify-zlib: ^0.2.0 - buffer: ^4.3.0 - console-browserify: ^1.1.0 - constants-browserify: ^1.0.0 - crypto-browserify: ^3.11.0 - domain-browser: ^1.1.1 - events: ^3.0.0 - https-browserify: ^1.0.0 - os-browserify: ^0.3.0 - path-browserify: 0.0.1 - process: ^0.11.10 - punycode: ^1.2.4 - querystring-es3: ^0.2.0 - readable-stream: ^2.3.3 - stream-browserify: ^2.0.1 - stream-http: ^2.7.2 - string_decoder: ^1.0.0 - timers-browserify: ^2.0.4 - tty-browserify: 0.0.0 - url: ^0.11.0 - util: ^0.11.0 - vm-browserify: ^1.0.1 - checksum: 41fa7927378edc0cb98a8cc784d3f4a47e43378d3b42ec57a23f81125baa7287c4b54d6d26d062072226160a3ce4d8b7a62e873d2fb637aceaddf71f5a26eca0 - languageName: node - linkType: hard - "node-mocks-http@npm:^1.11.0": version: 1.12.2 resolution: "node-mocks-http@npm:1.12.2" @@ -30534,6 +28365,41 @@ __metadata: languageName: node linkType: hard +"node-polyfill-webpack-plugin@npm:^2.0.1": + version: 2.0.1 + resolution: "node-polyfill-webpack-plugin@npm:2.0.1" + dependencies: + assert: ^2.0.0 + browserify-zlib: ^0.2.0 + buffer: ^6.0.3 + console-browserify: ^1.2.0 + constants-browserify: ^1.0.0 + crypto-browserify: ^3.12.0 + domain-browser: ^4.22.0 + events: ^3.3.0 + filter-obj: ^2.0.2 + https-browserify: ^1.0.0 + os-browserify: ^0.3.0 + path-browserify: ^1.0.1 + process: ^0.11.10 + punycode: ^2.1.1 + querystring-es3: ^0.2.1 + readable-stream: ^4.0.0 + stream-browserify: ^3.0.0 + stream-http: ^3.2.0 + string_decoder: ^1.3.0 + timers-browserify: ^2.0.12 + tty-browserify: ^0.0.1 + type-fest: ^2.14.0 + url: ^0.11.0 + util: ^0.12.4 + vm-browserify: ^1.1.2 + peerDependencies: + webpack: ">=5" + checksum: 0efb27ba224449d530d837bf7cd22f033ee5d0498e31898968896e2bb6844ffbfb26af976623268a052671f2b927df7561859faf5cbf3d646677ad0e914e1427 + languageName: node + linkType: hard + "node-releases@npm:^2.0.13": version: 2.0.13 resolution: "node-releases@npm:2.0.13" @@ -30541,6 +28407,13 @@ __metadata: languageName: node linkType: hard +"node-releases@npm:^2.0.14": + version: 2.0.14 + resolution: "node-releases@npm:2.0.14" + checksum: 59443a2f77acac854c42d321bf1b43dea0aef55cd544c6a686e9816a697300458d4e82239e2d794ea05f7bbbc8a94500332e2d3ac3f11f52e4b16cbe638b3c41 + languageName: node + linkType: hard + "node-releases@npm:^2.0.5, node-releases@npm:^2.0.6": version: 2.0.6 resolution: "node-releases@npm:2.0.6" @@ -30584,7 +28457,7 @@ __metadata: languageName: node linkType: hard -"normalize-package-data@npm:^2.3.2, normalize-package-data@npm:^2.3.4, normalize-package-data@npm:^2.5.0": +"normalize-package-data@npm:^2.3.2, normalize-package-data@npm:^2.5.0": version: 2.5.0 resolution: "normalize-package-data@npm:2.5.0" dependencies: @@ -30727,18 +28600,6 @@ __metadata: languageName: node linkType: hard -"npmlog@npm:^5.0.1": - version: 5.0.1 - resolution: "npmlog@npm:5.0.1" - dependencies: - are-we-there-yet: ^2.0.0 - console-control-strings: ^1.1.0 - gauge: ^3.0.0 - set-blocking: ^2.0.0 - checksum: 516b2663028761f062d13e8beb3f00069c5664925871a9b57989642ebe09f23ab02145bf3ab88da7866c4e112cafff72401f61a672c7c8a20edc585a7016ef5f - languageName: node - linkType: hard - "npmlog@npm:^6.0.0": version: 6.0.2 resolution: "npmlog@npm:6.0.2" @@ -30774,13 +28635,6 @@ __metadata: languageName: node linkType: hard -"num2fraction@npm:^1.2.2": - version: 1.2.2 - resolution: "num2fraction@npm:1.2.2" - checksum: 1da9c6797b505d3f5b17c7f694c4fa31565bdd5c0e5d669553253aed848a580804cd285280e8a73148bd9628839267daee4967f24b53d4e893e44b563e412635 - languageName: node - linkType: hard - "number-allocator@npm:^1.0.9": version: 1.0.14 resolution: "number-allocator@npm:1.0.14" @@ -30791,16 +28645,6 @@ __metadata: languageName: node linkType: hard -"number-to-bn@npm:1.7.0": - version: 1.7.0 - resolution: "number-to-bn@npm:1.7.0" - dependencies: - bn.js: 4.11.6 - strip-hex-prefix: 1.0.0 - checksum: 5b8c9dbe7b49dc7a069e5f0ba4e197257c89db11463478cb002fee7a34dc8868636952bd9f6310e5fdf22b266e0e6dffb5f9537c741734718107e90ae59b3de4 - languageName: node - linkType: hard - "nwsapi@npm:^2.2.4": version: 2.2.4 resolution: "nwsapi@npm:2.2.4" @@ -30829,24 +28673,13 @@ __metadata: languageName: node linkType: hard -"object-assign@npm:^4, object-assign@npm:^4.0.1, object-assign@npm:^4.1.0, object-assign@npm:^4.1.1": +"object-assign@npm:^4.0.1, object-assign@npm:^4.1.0, object-assign@npm:^4.1.1": version: 4.1.1 resolution: "object-assign@npm:4.1.1" checksum: fcc6e4ea8c7fe48abfbb552578b1c53e0d194086e2e6bbbf59e0a536381a292f39943c6e9628af05b5528aa5e3318bb30d6b2e53cadaf5b8fe9e12c4b69af23f languageName: node linkType: hard -"object-copy@npm:^0.1.0": - version: 0.1.0 - resolution: "object-copy@npm:0.1.0" - dependencies: - copy-descriptor: ^0.1.0 - define-property: ^0.2.5 - kind-of: ^3.0.3 - checksum: a9e35f07e3a2c882a7e979090360d1a20ab51d1fa19dfdac3aa8873b328a7c4c7683946ee97c824ae40079d848d6740a3788fa14f2185155dab7ed970a72c783 - languageName: node - linkType: hard - "object-hash@npm:^2.0.1": version: 2.2.0 resolution: "object-hash@npm:2.2.0" @@ -30875,6 +28708,16 @@ __metadata: languageName: node linkType: hard +"object-is@npm:^1.1.5": + version: 1.1.5 + resolution: "object-is@npm:1.1.5" + dependencies: + call-bind: ^1.0.2 + define-properties: ^1.1.3 + checksum: 989b18c4cba258a6b74dc1d74a41805c1a1425bce29f6cabb50dcb1a6a651ea9104a1b07046739a49a5bb1bc49727bcb00efd5c55f932f6ea04ec8927a7901fe + languageName: node + linkType: hard + "object-keys@npm:^1.0.12, object-keys@npm:^1.1.1": version: 1.1.1 resolution: "object-keys@npm:1.1.1" @@ -30914,15 +28757,6 @@ __metadata: languageName: node linkType: hard -"object-visit@npm:^1.0.0": - version: 1.0.1 - resolution: "object-visit@npm:1.0.1" - dependencies: - isobject: ^3.0.0 - checksum: b0ee07f5bf3bb881b881ff53b467ebbde2b37ebb38649d6944a6cd7681b32eedd99da9bd1e01c55facf81f54ed06b13af61aba6ad87f0052982995e09333f790 - languageName: node - linkType: hard - "object.assign@npm:^4.1.2": version: 4.1.2 resolution: "object.assign@npm:4.1.2" @@ -30947,7 +28781,7 @@ __metadata: languageName: node linkType: hard -"object.entries@npm:^1.1.0, object.entries@npm:^1.1.5": +"object.entries@npm:^1.1.5": version: 1.1.5 resolution: "object.entries@npm:1.1.5" dependencies: @@ -30969,7 +28803,7 @@ __metadata: languageName: node linkType: hard -"object.fromentries@npm:^2.0.0 || ^1.0.0, object.fromentries@npm:^2.0.5": +"object.fromentries@npm:^2.0.5": version: 2.0.5 resolution: "object.fromentries@npm:2.0.5" dependencies: @@ -30991,18 +28825,6 @@ __metadata: languageName: node linkType: hard -"object.getownpropertydescriptors@npm:^2.0.3, object.getownpropertydescriptors@npm:^2.1.2": - version: 2.1.4 - resolution: "object.getownpropertydescriptors@npm:2.1.4" - dependencies: - array.prototype.reduce: ^1.0.4 - call-bind: ^1.0.2 - define-properties: ^1.1.4 - es-abstract: ^1.20.1 - checksum: 988c466fe49fc4f19a28d2d1d894c95c6abfe33c94674ec0b14d96eed71f453c7ad16873d430dc2acbb1760de6d3d2affac4b81237a306012cc4dc49f7539e7f - languageName: node - linkType: hard - "object.hasown@npm:^1.1.1": version: 1.1.1 resolution: "object.hasown@npm:1.1.1" @@ -31023,16 +28845,7 @@ __metadata: languageName: node linkType: hard -"object.pick@npm:^1.3.0": - version: 1.3.0 - resolution: "object.pick@npm:1.3.0" - dependencies: - isobject: ^3.0.1 - checksum: 77fb6eed57c67adf75e9901187e37af39f052ef601cb4480386436561357eb9e459e820762f01fd02c5c1b42ece839ad393717a6d1850d848ee11fbabb3e580a - languageName: node - linkType: hard - -"object.values@npm:^1.1.0, object.values@npm:^1.1.5": +"object.values@npm:^1.1.5": version: 1.1.5 resolution: "object.values@npm:1.1.5" dependencies: @@ -31061,15 +28874,6 @@ __metadata: languageName: node linkType: hard -"oboe@npm:2.1.5": - version: 2.1.5 - resolution: "oboe@npm:2.1.5" - dependencies: - http-https: ^1.0.0 - checksum: e6171b33645ffc3559688a824a461952380d0b8f6a203b2daf6767647f277554a73fd7ad795629d88cd8eab68c0460aabb1e1b8b52ef80e3ff7621ac39f832ed - languageName: node - linkType: hard - "octal@npm:^1.0.0": version: 1.0.0 resolution: "octal@npm:1.0.0" @@ -31100,15 +28904,6 @@ __metadata: languageName: node linkType: hard -"on-finished@npm:~2.3.0": - version: 2.3.0 - resolution: "on-finished@npm:2.3.0" - dependencies: - ee-first: 1.1.1 - checksum: 1db595bd963b0124d6fa261d18320422407b8f01dc65863840f3ddaaf7bcad5b28ff6847286703ca53f4ec19595bd67a2f1253db79fc4094911ec6aa8df1671b - languageName: node - linkType: hard - "on-headers@npm:~1.0.2": version: 1.0.2 resolution: "on-headers@npm:1.0.2" @@ -31134,7 +28929,7 @@ __metadata: languageName: node linkType: hard -"open@npm:7.4.2, open@npm:^7.0.3": +"open@npm:7.4.2": version: 7.4.2 resolution: "open@npm:7.4.2" dependencies: @@ -31155,6 +28950,17 @@ __metadata: languageName: node linkType: hard +"open@npm:^8.0.4": + version: 8.4.2 + resolution: "open@npm:8.4.2" + dependencies: + define-lazy-prop: ^2.0.0 + is-docker: ^2.1.1 + is-wsl: ^2.2.0 + checksum: 6388bfff21b40cb9bd8f913f9130d107f2ed4724ea81a8fd29798ee322b361ca31fa2cdfb491a5c31e43a3996cfe9566741238c7a741ada8d7af1cb78d85cf26 + languageName: node + linkType: hard + "openai@npm:^3.3.0": version: 3.3.0 resolution: "openai@npm:3.3.0" @@ -31222,20 +29028,6 @@ __metadata: languageName: node linkType: hard -"optionator@npm:^0.8.1": - version: 0.8.3 - resolution: "optionator@npm:0.8.3" - dependencies: - deep-is: ~0.1.3 - fast-levenshtein: ~2.0.6 - levn: ~0.3.0 - prelude-ls: ~1.1.2 - type-check: ~0.3.2 - word-wrap: ~1.2.3 - checksum: b8695ddf3d593203e25ab0900e265d860038486c943ff8b774f596a310f8ceebdb30c6832407a8198ba3ec9debe1abe1f51d4aad94843612db3b76d690c61d34 - languageName: node - linkType: hard - "optionator@npm:^0.9.1": version: 0.9.1 resolution: "optionator@npm:0.9.1" @@ -31281,13 +29073,6 @@ __metadata: languageName: node linkType: hard -"os-homedir@npm:^1.0.0": - version: 1.0.2 - resolution: "os-homedir@npm:1.0.2" - checksum: af609f5a7ab72de2f6ca9be6d6b91a599777afc122ac5cad47e126c1f67c176fe9b52516b9eeca1ff6ca0ab8587fe66208bc85e40a3940125f03cdb91408e9d2 - languageName: node - linkType: hard - "os-tmpdir@npm:~1.0.2": version: 1.0.2 resolution: "os-tmpdir@npm:1.0.2" @@ -31320,22 +29105,6 @@ __metadata: languageName: node linkType: hard -"p-all@npm:^2.1.0": - version: 2.1.0 - resolution: "p-all@npm:2.1.0" - dependencies: - p-map: ^2.0.0 - checksum: 6c20134eb3f16dca270d04a40cd14d2d05012b5a5762ca4f89962ae03a5fc13e13b09f64626a780f10bbe4e204b9370f708c6d8c079296bd2512d7e15462c76f - languageName: node - linkType: hard - -"p-cancelable@npm:^0.3.0": - version: 0.3.0 - resolution: "p-cancelable@npm:0.3.0" - checksum: 2b27639be8f7f8718f2854c1711f713c296db00acc4675975b1531ecb6253da197304b4a211a330a8e54e754d28d4b3f7feecb48f0566dd265e3ba6745cd4148 - languageName: node - linkType: hard - "p-cancelable@npm:^2.0.0": version: 2.1.1 resolution: "p-cancelable@npm:2.1.1" @@ -31343,29 +29112,6 @@ __metadata: languageName: node linkType: hard -"p-cancelable@npm:^3.0.0": - version: 3.0.0 - resolution: "p-cancelable@npm:3.0.0" - checksum: 2b5ae34218f9c2cf7a7c18e5d9a726ef9b165ef07e6c959f6738371509e747334b5f78f3bcdeb03d8a12dcb978faf641fd87eb21486ed7d36fb823b8ddef3219 - languageName: node - linkType: hard - -"p-defer@npm:^1.0.0": - version: 1.0.0 - resolution: "p-defer@npm:1.0.0" - checksum: 4271b935c27987e7b6f229e5de4cdd335d808465604644cb7b4c4c95bef266735859a93b16415af8a41fd663ee9e3b97a1a2023ca9def613dba1bad2a0da0c7b - languageName: node - linkType: hard - -"p-event@npm:^4.1.0": - version: 4.2.0 - resolution: "p-event@npm:4.2.0" - dependencies: - p-timeout: ^3.1.0 - checksum: 8a3588f7a816a20726a3262dfeee70a631e3997e4773d23219176333eda55cce9a76219e3d2b441b331eb746e14fdb381eb2694ab9ff2fcf87c846462696fe89 - languageName: node - linkType: hard - "p-filter@npm:2.1.0, p-filter@npm:^2.1.0": version: 2.1.0 resolution: "p-filter@npm:2.1.0" @@ -31454,6 +29200,15 @@ __metadata: languageName: node linkType: hard +"p-locate@npm:^6.0.0": + version: 6.0.0 + resolution: "p-locate@npm:6.0.0" + dependencies: + p-limit: ^4.0.0 + checksum: 2bfe5234efa5e7a4e74b30a5479a193fdd9236f8f6b4d2f3f69e3d286d9a7d7ab0c118a2a50142efcf4e41625def635bd9332d6cbf9cc65d85eb0718c579ab38 + languageName: node + linkType: hard + "p-map@npm:4.0.0, p-map@npm:^4.0.0": version: 4.0.0 resolution: "p-map@npm:4.0.0" @@ -31470,15 +29225,6 @@ __metadata: languageName: node linkType: hard -"p-map@npm:^3.0.0": - version: 3.0.0 - resolution: "p-map@npm:3.0.0" - dependencies: - aggregate-error: ^3.0.0 - checksum: 49b0fcbc66b1ef9cd379de1b4da07fa7a9f84b41509ea3f461c31903623aaba8a529d22f835e0d77c7cb9fcc16e4fae71e308fd40179aea514ba68f27032b5d5 - languageName: node - linkType: hard - "p-queue@npm:6.6.2, p-queue@npm:^6.6.2": version: 6.6.2 resolution: "p-queue@npm:6.6.2" @@ -31499,16 +29245,7 @@ __metadata: languageName: node linkType: hard -"p-timeout@npm:^1.1.1": - version: 1.2.1 - resolution: "p-timeout@npm:1.2.1" - dependencies: - p-finally: ^1.0.0 - checksum: 65a456f49cca1328774a6bfba61aac98d854b36df9153c2887f82f078d4399e9a30463be8a479871c22ed350a23b34a66ff303ca652b9d81ed4ff5260ac660d2 - languageName: node - linkType: hard - -"p-timeout@npm:^3.1.0, p-timeout@npm:^3.2.0": +"p-timeout@npm:^3.2.0": version: 3.2.0 resolution: "p-timeout@npm:3.2.0" dependencies: @@ -31538,7 +29275,7 @@ __metadata: languageName: node linkType: hard -"pako@npm:^0.2.5": +"pako@npm:^0.2.5, pako@npm:~0.2.0": version: 0.2.9 resolution: "pako@npm:0.2.9" checksum: 055f9487cd57fbb78df84315873bbdd089ba286f3499daed47d2effdc6253e981f5db6898c23486de76d4a781559f890d643bd3a49f70f1b4a18019c98aa5125 @@ -31552,17 +29289,6 @@ __metadata: languageName: node linkType: hard -"parallel-transform@npm:^1.1.0": - version: 1.2.0 - resolution: "parallel-transform@npm:1.2.0" - dependencies: - cyclist: ^1.0.1 - inherits: ^2.0.3 - readable-stream: ^2.1.5 - checksum: ab6ddc1a662cefcfb3d8d546a111763d3b223f484f2e9194e33aefd8f6760c319d0821fd22a00a3adfbd45929b50d2c84cc121389732f013c2ae01c226269c27 - languageName: node - linkType: hard - "param-case@npm:^1.1.0": version: 1.1.2 resolution: "param-case@npm:1.1.2" @@ -31572,7 +29298,7 @@ __metadata: languageName: node linkType: hard -"param-case@npm:^3.0.3, param-case@npm:^3.0.4": +"param-case@npm:^3.0.4": version: 3.0.4 resolution: "param-case@npm:3.0.4" dependencies: @@ -31667,15 +29393,6 @@ __metadata: languageName: node linkType: hard -"parse-json@npm:^2.2.0": - version: 2.2.0 - resolution: "parse-json@npm:2.2.0" - dependencies: - error-ex: ^1.2.0 - checksum: dda78a63e57a47b713a038630868538f718a7ca0cd172a36887b0392ccf544ed0374902eb28f8bf3409e8b71d62b79d17062f8543afccf2745f9b0b2d2bb80ca - languageName: node - linkType: hard - "parse-json@npm:^4.0.0": version: 4.0.0 resolution: "parse-json@npm:4.0.0" @@ -31747,7 +29464,7 @@ __metadata: languageName: node linkType: hard -"parseurl@npm:^1.3.3, parseurl@npm:~1.3.2, parseurl@npm:~1.3.3": +"parseurl@npm:^1.3.3, parseurl@npm:~1.3.3": version: 1.3.3 resolution: "parseurl@npm:1.3.3" checksum: 407cee8e0a3a4c5cd472559bca8b6a45b82c124e9a4703302326e9ab60fc1081442ada4e02628efef1eb16197ddc7f8822f5a91fd7d7c86b51f530aedb17dfa2 @@ -31774,13 +29491,6 @@ __metadata: languageName: node linkType: hard -"pascalcase@npm:^0.1.1": - version: 0.1.1 - resolution: "pascalcase@npm:0.1.1" - checksum: f83681c3c8ff75fa473a2bb2b113289952f802ff895d435edd717e7cb898b0408cbdb247117a938edcbc5d141020909846cc2b92c47213d764e2a94d2ad2b925 - languageName: node - linkType: hard - "password-prompt@npm:^1.1.2": version: 1.1.3 resolution: "password-prompt@npm:1.1.3" @@ -31798,13 +29508,6 @@ __metadata: languageName: node linkType: hard -"path-browserify@npm:0.0.1": - version: 0.0.1 - resolution: "path-browserify@npm:0.0.1" - checksum: ae8dcd45d0d3cfbaf595af4f206bf3ed82d77f72b4877ae7e77328079e1468c84f9386754bb417d994d5a19bf47882fd253565c18441cd5c5c90ae5187599e35 - languageName: node - linkType: hard - "path-browserify@npm:^1.0.1": version: 1.0.1 resolution: "path-browserify@npm:1.0.1" @@ -31831,22 +29534,6 @@ __metadata: languageName: node linkType: hard -"path-dirname@npm:^1.0.0": - version: 1.0.2 - resolution: "path-dirname@npm:1.0.2" - checksum: 0d2f6604ae05a252a0025318685f290e2764ecf9c5436f203cdacfc8c0b17c24cdedaa449d766beb94ab88cc7fc70a09ec21e7933f31abc2b719180883e5e33f - languageName: node - linkType: hard - -"path-exists@npm:^2.0.0": - version: 2.1.0 - resolution: "path-exists@npm:2.1.0" - dependencies: - pinkie-promise: ^2.0.0 - checksum: fdb734f1d00f225f7a0033ce6d73bff6a7f76ea08936abf0e5196fa6e54a645103538cd8aedcb90d6d8c3fa3705ded0c58a4da5948ae92aa8834892c1ab44a84 - languageName: node - linkType: hard - "path-exists@npm:^3.0.0": version: 3.0.0 resolution: "path-exists@npm:3.0.0" @@ -31861,6 +29548,13 @@ __metadata: languageName: node linkType: hard +"path-exists@npm:^5.0.0": + version: 5.0.0 + resolution: "path-exists@npm:5.0.0" + checksum: 8ca842868cab09423994596eb2c5ec2a971c17d1a3cb36dbf060592c730c725cd524b9067d7d2a1e031fef9ba7bd2ac6dc5ec9fb92aa693265f7be3987045254 + languageName: node + linkType: hard + "path-is-absolute@npm:^1.0.0": version: 1.0.1 resolution: "path-is-absolute@npm:1.0.1" @@ -31905,7 +29599,7 @@ __metadata: languageName: node linkType: hard -"path-scurry@npm:^1.10.0": +"path-scurry@npm:^1.10.0, path-scurry@npm:^1.10.1": version: 1.10.1 resolution: "path-scurry@npm:1.10.1" dependencies: @@ -31929,17 +29623,6 @@ __metadata: languageName: node linkType: hard -"path-type@npm:^1.0.0": - version: 1.1.0 - resolution: "path-type@npm:1.1.0" - dependencies: - graceful-fs: ^4.1.2 - pify: ^2.0.0 - pinkie-promise: ^2.0.0 - checksum: 59a4b2c0e566baf4db3021a1ed4ec09a8b36fca960a490b54a6bcefdb9987dafe772852982b6011cd09579478a96e57960a01f75fa78a794192853c9d468fc79 - languageName: node - linkType: hard - "path-type@npm:^3.0.0": version: 3.0.0 resolution: "path-type@npm:3.0.0" @@ -31986,7 +29669,7 @@ __metadata: languageName: node linkType: hard -"pbkdf2@npm:^3.0.17, pbkdf2@npm:^3.0.3": +"pbkdf2@npm:^3.0.3": version: 3.1.2 resolution: "pbkdf2@npm:3.1.2" dependencies: @@ -32006,6 +29689,24 @@ __metadata: languageName: node linkType: hard +"peek-stream@npm:^1.1.0": + version: 1.1.3 + resolution: "peek-stream@npm:1.1.3" + dependencies: + buffer-from: ^1.0.0 + duplexify: ^3.5.0 + through2: ^2.0.3 + checksum: a0e09d6d1a8a01158a3334f20d6b1cdd91747eba24eb06a1d742eefb620385593121a76d4378cc81f77cdce6a66df0575a41041b1189c510254aec91878afc99 + languageName: node + linkType: hard + +"pend@npm:~1.2.0": + version: 1.2.0 + resolution: "pend@npm:1.2.0" + checksum: 6c72f5243303d9c60bd98e6446ba7d30ae29e3d56fdb6fae8767e8ba6386f33ee284c97efe3230a0d0217e2b1723b8ab490b1bbf34fcbb2180dbc8a9de47850d + languageName: node + linkType: hard + "performance-now@npm:^2.1.0": version: 2.1.0 resolution: "performance-now@npm:2.1.0" @@ -32099,13 +29800,6 @@ __metadata: languageName: node linkType: hard -"picocolors@npm:^0.2.1": - version: 0.2.1 - resolution: "picocolors@npm:0.2.1" - checksum: 3b0f441f0062def0c0f39e87b898ae7461c3a16ffc9f974f320b44c799418cabff17780ee647fda42b856a1dc45897e2c62047e1b546d94d6d5c6962f45427b2 - languageName: node - linkType: hard - "picocolors@npm:^1.0.0": version: 1.0.0 resolution: "picocolors@npm:1.0.0" @@ -32138,7 +29832,7 @@ __metadata: languageName: node linkType: hard -"pify@npm:^2.0.0, pify@npm:^2.3.0": +"pify@npm:^2.3.0": version: 2.3.0 resolution: "pify@npm:2.3.0" checksum: 9503aaeaf4577acc58642ad1d25c45c6d90288596238fb68f82811c08104c800e5a7870398e9f015d82b44ecbcbef3dc3d4251a1cbb582f6e5959fe09884b2ba @@ -32168,15 +29862,6 @@ __metadata: languageName: node linkType: hard -"pinkie-promise@npm:^2.0.0": - version: 2.0.1 - resolution: "pinkie-promise@npm:2.0.1" - dependencies: - pinkie: ^2.0.0 - checksum: b53a4a2e73bf56b6f421eef711e7bdcb693d6abb474d57c5c413b809f654ba5ee750c6a96dd7225052d4b96c4d053cdcb34b708a86fceed4663303abee52fcca - languageName: node - linkType: hard - "pinkie@npm:^1.0.0": version: 1.0.0 resolution: "pinkie@npm:1.0.0" @@ -32184,13 +29869,6 @@ __metadata: languageName: node linkType: hard -"pinkie@npm:^2.0.0": - version: 2.0.4 - resolution: "pinkie@npm:2.0.4" - checksum: b12b10afea1177595aab036fc220785488f67b4b0fc49e7a27979472592e971614fa1c728e63ad3e7eb748b4ec3c3dbd780819331dad6f7d635c77c10537b9db - languageName: node - linkType: hard - "pirates@npm:^4.0.1, pirates@npm:^4.0.5": version: 4.0.5 resolution: "pirates@npm:4.0.5" @@ -32198,6 +29876,13 @@ __metadata: languageName: node linkType: hard +"pirates@npm:^4.0.4": + version: 4.0.6 + resolution: "pirates@npm:4.0.6" + checksum: 46a65fefaf19c6f57460388a5af9ab81e3d7fd0e7bc44ca59d753cb5c4d0df97c6c6e583674869762101836d68675f027d60f841c105d72734df9dfca97cbcc6 + languageName: node + linkType: hard + "pixelmatch@npm:^4.0.2": version: 4.0.2 resolution: "pixelmatch@npm:4.0.2" @@ -32236,6 +29921,15 @@ __metadata: languageName: node linkType: hard +"pkg-dir@npm:^7.0.0": + version: 7.0.0 + resolution: "pkg-dir@npm:7.0.0" + dependencies: + find-up: ^6.3.0 + checksum: 94298b20a446bfbbd66604474de8a0cdd3b8d251225170970f15d9646f633e056c80520dd5b4c1d1050c9fed8f6a9e5054b141c93806439452efe72e57562c03 + languageName: node + linkType: hard + "pkg-types@npm:^1.0.3": version: 1.0.3 resolution: "pkg-types@npm:1.0.3" @@ -32288,12 +29982,12 @@ __metadata: languageName: node linkType: hard -"pnp-webpack-plugin@npm:1.6.4": - version: 1.6.4 - resolution: "pnp-webpack-plugin@npm:1.6.4" +"pnp-webpack-plugin@npm:^1.7.0": + version: 1.7.0 + resolution: "pnp-webpack-plugin@npm:1.7.0" dependencies: ts-pnp: ^1.1.6 - checksum: 0606a63db96400b07f182300168298da9518727a843f9e10cf5045d2a102a4be06bb18c73dc481281e3e0f1ed8d04ef0d285a342b6dcd0eff1340e28e5d2328d + checksum: a41716d13607be5a3e06ba58b17e9e619cf07da3a0a7b10bd41cd89362873041054fd2b7966ad30a1b26b826cfb8fecc0469a95902d5b1b8ba8f591e2fe6b96d languageName: node linkType: hard @@ -32313,22 +30007,6 @@ __metadata: languageName: node linkType: hard -"posix-character-classes@npm:^0.1.0": - version: 0.1.1 - resolution: "posix-character-classes@npm:0.1.1" - checksum: dedb99913c60625a16050cfed2fb5c017648fc075be41ac18474e1c6c3549ef4ada201c8bd9bd006d36827e289c571b6092e1ef6e756cdbab2fd7046b25c6442 - languageName: node - linkType: hard - -"postcss-flexbugs-fixes@npm:^4.2.1": - version: 4.2.1 - resolution: "postcss-flexbugs-fixes@npm:4.2.1" - dependencies: - postcss: ^7.0.26 - checksum: 51a626bc80dbe42fcc8b0895b4f23a558bb809ec52cdc05aa27fb24cdffd4c9dc53f25218085ddf407c53d76573bc6d7568219c912161609f02532a8f5f59b43 - languageName: node - linkType: hard - "postcss-import@npm:^15.1.0": version: 15.1.0 resolution: "postcss-import@npm:15.1.0" @@ -32371,42 +30049,17 @@ __metadata: languageName: node linkType: hard -"postcss-loader@npm:^4.2.0": - version: 4.3.0 - resolution: "postcss-loader@npm:4.3.0" +"postcss-loader@npm:^7.0.2": + version: 7.3.3 + resolution: "postcss-loader@npm:7.3.3" dependencies: - cosmiconfig: ^7.0.0 - klona: ^2.0.4 - loader-utils: ^2.0.0 - schema-utils: ^3.0.0 - semver: ^7.3.4 - peerDependencies: - postcss: ^7.0.0 || ^8.0.1 - webpack: ^4.0.0 || ^5.0.0 - checksum: b8ba29789d48512c7ce10e9391b1e1512a4b8f8b4063ebff0f9ebdd0a3a01e433ccfa0d2db6dbdd63b126acf7692330f0773bef75e78d53f38eba556ca5f2aee - languageName: node - linkType: hard - -"postcss-loader@npm:^6.2.1": - version: 6.2.1 - resolution: "postcss-loader@npm:6.2.1" - dependencies: - cosmiconfig: ^7.0.0 - klona: ^2.0.5 - semver: ^7.3.5 + cosmiconfig: ^8.2.0 + jiti: ^1.18.2 + semver: ^7.3.8 peerDependencies: postcss: ^7.0.0 || ^8.0.1 webpack: ^5.0.0 - checksum: e40ae79c3e39df37014677a817b001bd115d8b10dedf53a07b97513d93b1533cd702d7a48831bdd77b9a9484b1ec84a5d4a723f80e83fb28682c75b5e65e8a90 - languageName: node - linkType: hard - -"postcss-modules-extract-imports@npm:^2.0.0": - version: 2.0.0 - resolution: "postcss-modules-extract-imports@npm:2.0.0" - dependencies: - postcss: ^7.0.5 - checksum: 154790fe5954aaa12f300aa9aa782fae8b847138459c8f533ea6c8f29439dd66b4d9a49e0bf6f8388fa0df898cc03d61c84678e3b0d4b47cac5a4334a7151a9f + checksum: c724044d6ae56334535c26bb4efc9c151431d44d60bc8300157c760747281a242757d8dab32db72738434531175b38a408cb0b270bb96207c07584dcfcd899ff languageName: node linkType: hard @@ -32419,38 +30072,16 @@ __metadata: languageName: node linkType: hard -"postcss-modules-local-by-default@npm:^3.0.2": - version: 3.0.3 - resolution: "postcss-modules-local-by-default@npm:3.0.3" - dependencies: - icss-utils: ^4.1.1 - postcss: ^7.0.32 - postcss-selector-parser: ^6.0.2 - postcss-value-parser: ^4.1.0 - checksum: 0267633eaf80e72a3abf391b6e34c5b344a1bdfb1421543d3ed43fc757e053e0fcc1a2eb06d959a8f435776e8dc80288b59bfc34d61e5e021d47b747c417c5a1 - languageName: node - linkType: hard - -"postcss-modules-local-by-default@npm:^4.0.0": - version: 4.0.0 - resolution: "postcss-modules-local-by-default@npm:4.0.0" +"postcss-modules-local-by-default@npm:^4.0.3": + version: 4.0.3 + resolution: "postcss-modules-local-by-default@npm:4.0.3" dependencies: icss-utils: ^5.0.0 postcss-selector-parser: ^6.0.2 postcss-value-parser: ^4.1.0 peerDependencies: postcss: ^8.1.0 - checksum: 6cf570badc7bc26c265e073f3ff9596b69bb954bc6ac9c5c1b8cba2995b80834226b60e0a3cbb87d5f399dbb52e6466bba8aa1d244f6218f99d834aec431a69d - languageName: node - linkType: hard - -"postcss-modules-scope@npm:^2.2.0": - version: 2.2.0 - resolution: "postcss-modules-scope@npm:2.2.0" - dependencies: - postcss: ^7.0.6 - postcss-selector-parser: ^6.0.0 - checksum: c611181df924275ca1ffea261149c229488d6921054896879ca98feeb0913f9b00f4f160654beb2cb243a2989036c269baa96778eeacaaa399a4604b6e2fea17 + checksum: 2f8083687f3d6067885f8863dd32dbbb4f779cfcc7e52c17abede9311d84faf6d3ed8760e7c54c6380281732ae1f78e5e56a28baf3c271b33f450a11c9e30485 languageName: node linkType: hard @@ -32465,16 +30096,6 @@ __metadata: languageName: node linkType: hard -"postcss-modules-values@npm:^3.0.0": - version: 3.0.0 - resolution: "postcss-modules-values@npm:3.0.0" - dependencies: - icss-utils: ^4.0.0 - postcss: ^7.0.6 - checksum: f1aea0b9c6798b39ec02a6d2310924bb9bfbddb4579668c2d4e2205ca7a68c656b85d5720f9bba3629d611f36667fe04ab889ea3f9a6b569a0a0d57b4f2f4e99 - languageName: node - linkType: hard - "postcss-modules-values@npm:^4.0.0": version: 4.0.0 resolution: "postcss-modules-values@npm:4.0.0" @@ -32506,16 +30127,6 @@ __metadata: languageName: node linkType: hard -"postcss-selector-parser@npm:^6.0.0, postcss-selector-parser@npm:^6.0.2, postcss-selector-parser@npm:^6.0.4": - version: 6.0.10 - resolution: "postcss-selector-parser@npm:6.0.10" - dependencies: - cssesc: ^3.0.0 - util-deprecate: ^1.0.2 - checksum: 46afaa60e3d1998bd7adf6caa374baf857cc58d3ff944e29459c9a9e4680a7fe41597bd5b755fc81d7c388357e9bf67c0251d047c640a09f148e13606b8a8608 - languageName: node - linkType: hard - "postcss-selector-parser@npm:^6.0.11": version: 6.0.11 resolution: "postcss-selector-parser@npm:6.0.11" @@ -32526,6 +30137,16 @@ __metadata: languageName: node linkType: hard +"postcss-selector-parser@npm:^6.0.2, postcss-selector-parser@npm:^6.0.4": + version: 6.0.10 + resolution: "postcss-selector-parser@npm:6.0.10" + dependencies: + cssesc: ^3.0.0 + util-deprecate: ^1.0.2 + checksum: 46afaa60e3d1998bd7adf6caa374baf857cc58d3ff944e29459c9a9e4680a7fe41597bd5b755fc81d7c388357e9bf67c0251d047c640a09f148e13606b8a8608 + languageName: node + linkType: hard + "postcss-value-parser@npm:^3.3.0": version: 3.3.1 resolution: "postcss-value-parser@npm:3.3.1" @@ -32551,16 +30172,6 @@ __metadata: languageName: node linkType: hard -"postcss@npm:^7.0.14, postcss@npm:^7.0.26, postcss@npm:^7.0.32, postcss@npm:^7.0.36, postcss@npm:^7.0.5, postcss@npm:^7.0.6": - version: 7.0.39 - resolution: "postcss@npm:7.0.39" - dependencies: - picocolors: ^0.2.1 - source-map: ^0.6.1 - checksum: 4ac793f506c23259189064bdc921260d869a115a82b5e713973c5af8e94fbb5721a5cc3e1e26840500d7e1f1fa42a209747c5b1a151918a9bc11f0d7ed9048e3 - languageName: node - linkType: hard - "postcss@npm:^8.2.14": version: 8.4.14 resolution: "postcss@npm:8.4.14" @@ -32572,7 +30183,18 @@ __metadata: languageName: node linkType: hard -"postcss@npm:^8.2.15, postcss@npm:^8.4.18": +"postcss@npm:^8.3.11": + version: 8.4.21 + resolution: "postcss@npm:8.4.21" + dependencies: + nanoid: ^3.3.4 + picocolors: ^1.0.0 + source-map-js: ^1.0.2 + checksum: e39ac60ccd1542d4f9d93d894048aac0d686b3bb38e927d8386005718e6793dbbb46930f0a523fe382f1bbd843c6d980aaea791252bf5e176180e5a4336d9679 + languageName: node + linkType: hard + +"postcss@npm:^8.4.18": version: 8.4.18 resolution: "postcss@npm:8.4.18" dependencies: @@ -32583,14 +30205,14 @@ __metadata: languageName: node linkType: hard -"postcss@npm:^8.3.11": - version: 8.4.21 - resolution: "postcss@npm:8.4.21" +"postcss@npm:^8.4.21, postcss@npm:^8.4.32": + version: 8.4.32 + resolution: "postcss@npm:8.4.32" dependencies: - nanoid: ^3.3.4 + nanoid: ^3.3.7 picocolors: ^1.0.0 source-map-js: ^1.0.2 - checksum: e39ac60ccd1542d4f9d93d894048aac0d686b3bb38e927d8386005718e6793dbbb46930f0a523fe382f1bbd843c6d980aaea791252bf5e176180e5a4336d9679 + checksum: 220d9d0bf5d65be7ed31006c523bfb11619461d296245c1231831f90150aeb4a31eab9983ac9c5c89759a3ca8b60b3e0d098574964e1691673c3ce5c494305ae languageName: node linkType: hard @@ -32664,6 +30286,28 @@ __metadata: languageName: node linkType: hard +"prebuild-install@npm:^7.1.1": + version: 7.1.1 + resolution: "prebuild-install@npm:7.1.1" + dependencies: + detect-libc: ^2.0.0 + expand-template: ^2.0.3 + github-from-package: 0.0.0 + minimist: ^1.2.3 + mkdirp-classic: ^0.5.3 + napi-build-utils: ^1.0.1 + node-abi: ^3.3.0 + pump: ^3.0.0 + rc: ^1.2.7 + simple-get: ^4.0.0 + tar-fs: ^2.0.0 + tunnel-agent: ^0.6.0 + bin: + prebuild-install: bin.js + checksum: dbf96d0146b6b5827fc8f67f72074d2e19c69628b9a7a0a17d0fad1bf37e9f06922896972e074197fc00a52eae912993e6ef5a0d471652f561df5cb516f3f467 + languageName: node + linkType: hard + "preferred-pm@npm:^3.0.0": version: 3.0.3 resolution: "preferred-pm@npm:3.0.3" @@ -32683,20 +30327,6 @@ __metadata: languageName: node linkType: hard -"prelude-ls@npm:~1.1.2": - version: 1.1.2 - resolution: "prelude-ls@npm:1.1.2" - checksum: c4867c87488e4a0c233e158e4d0d5565b609b105d75e4c05dc760840475f06b731332eb93cc8c9cecb840aa8ec323ca3c9a56ad7820ad2e63f0261dadcb154e4 - languageName: node - linkType: hard - -"prepend-http@npm:^1.0.1": - version: 1.0.4 - resolution: "prepend-http@npm:1.0.4" - checksum: 01e7baf4ad38af02257b99098543469332fc42ae50df33d97a124bf8172295907352fa6138c9b1610c10c6dd0847ca736e53fda736387cc5cf8fcffe96b47f29 - languageName: node - linkType: hard - "prettier-linter-helpers@npm:^1.0.0": version: 1.0.0 resolution: "prettier-linter-helpers@npm:1.0.0" @@ -32761,15 +30391,6 @@ __metadata: languageName: node linkType: hard -"prettier@npm:>=2.2.1 <=2.3.0": - version: 2.3.0 - resolution: "prettier@npm:2.3.0" - bin: - prettier: bin-prettier.js - checksum: e8851a45f60f2994775f96e07964646c299b8a8f9c64da4fbd8efafc20db3458bdcedac79aed34e1d5477540b3aa04f6499adc4979cb7937f8ebd058a767d8ff - languageName: node - linkType: hard - "prettier@npm:^2.7.1": version: 2.8.7 resolution: "prettier@npm:2.8.7" @@ -32779,6 +30400,15 @@ __metadata: languageName: node linkType: hard +"prettier@npm:^2.8.0": + version: 2.8.8 + resolution: "prettier@npm:2.8.8" + bin: + prettier: bin-prettier.js + checksum: b49e409431bf129dd89238d64299ba80717b57ff5a6d1c1a8b1a28b590d998a34e083fa13573bc732bb8d2305becb4c9a4407f8486c81fa7d55100eb08263cf8 + languageName: node + linkType: hard + "prettier@npm:^2.8.6": version: 2.8.6 resolution: "prettier@npm:2.8.6" @@ -32788,16 +30418,6 @@ __metadata: languageName: node linkType: hard -"pretty-error@npm:^2.1.1": - version: 2.1.2 - resolution: "pretty-error@npm:2.1.2" - dependencies: - lodash: ^4.17.20 - renderkid: ^2.0.4 - checksum: 16775d06f9a695d17103414d610b1281f9535ee1f2da1ce1e1b9be79584a114aa7eac6dcdcc5ef151756d3c014dfd4ac1c7303ed8016d0cec12437cfdf4021c6 - languageName: node - linkType: hard - "pretty-error@npm:^4.0.0": version: 4.0.0 resolution: "pretty-error@npm:4.0.0" @@ -32958,7 +30578,7 @@ __metadata: languageName: node linkType: hard -"progress@npm:2.0.3, progress@npm:^2.0.0, progress@npm:^2.0.3": +"progress@npm:2.0.3, progress@npm:^2.0.1, progress@npm:^2.0.3": version: 2.0.3 resolution: "progress@npm:2.0.3" checksum: f67403fe7b34912148d9252cb7481266a354bd99ce82c835f79070643bb3c6583d10dbcfda4d41e04bbc1d8437e9af0fb1e1f2135727878f5308682a579429b7 @@ -32982,31 +30602,6 @@ __metadata: languageName: node linkType: hard -"promise.allsettled@npm:^1.0.0": - version: 1.0.5 - resolution: "promise.allsettled@npm:1.0.5" - dependencies: - array.prototype.map: ^1.0.4 - call-bind: ^1.0.2 - define-properties: ^1.1.3 - es-abstract: ^1.19.1 - get-intrinsic: ^1.1.1 - iterate-value: ^1.0.2 - checksum: 92775552d3a3487ed924852e5de00a217a202cefc833e8cc169283fe4f7dbe09953505b0c7471b2681e09aa7d064bdbd07b978d44ff536f712e4dcd7c9faba35 - languageName: node - linkType: hard - -"promise.prototype.finally@npm:^3.1.0": - version: 3.1.3 - resolution: "promise.prototype.finally@npm:3.1.3" - dependencies: - call-bind: ^1.0.2 - define-properties: ^1.1.3 - es-abstract: ^1.19.1 - checksum: aba8af6ae8d076e2c344d2674409b44c8f98b3aba98b78619739aeb4a74ebac80dbba5f9338da7cf0108a34384799d3996c46697d2e21c6e998c04d68041213c - languageName: node - linkType: hard - "promise@npm:^7.1.1": version: 7.3.1 resolution: "promise@npm:7.3.1" @@ -33044,7 +30639,7 @@ __metadata: languageName: node linkType: hard -"property-information@npm:^5.0.0, property-information@npm:^5.3.0": +"property-information@npm:^5.0.0": version: 5.6.0 resolution: "property-information@npm:5.6.0" dependencies: @@ -33070,7 +30665,7 @@ __metadata: languageName: node linkType: hard -"proxy-from-env@npm:1.1.0, proxy-from-env@npm:^1.1.0": +"proxy-from-env@npm:1.1.0, proxy-from-env@npm:^1.0.0, proxy-from-env@npm:^1.1.0": version: 1.1.0 resolution: "proxy-from-env@npm:1.1.0" checksum: ed7fcc2ba0a33404958e34d95d18638249a68c430e30fcb6c478497d72739ba64ce9810a24f53a7d921d0c065e5b78e3822759800698167256b04659366ca4d4 @@ -33157,14 +30752,7 @@ __metadata: languageName: node linkType: hard -"punycode@npm:2.1.0": - version: 2.1.0 - resolution: "punycode@npm:2.1.0" - checksum: d125d8f86cd89303c33bad829388c49ca23197e16ccf8cd398dcbd81b026978f6543f5066c66825b25b1dfea7790a42edbeea82908e103474931789714ab86cd - languageName: node - linkType: hard - -"punycode@npm:^1.2.4, punycode@npm:^1.3.2": +"punycode@npm:^1.3.2": version: 1.4.1 resolution: "punycode@npm:1.4.1" checksum: fa6e698cb53db45e4628559e557ddaf554103d2a96a1d62892c8f4032cd3bc8871796cae9eabc1bc700e2b6677611521ce5bb1d9a27700086039965d0cf34518 @@ -33185,6 +30773,24 @@ __metadata: languageName: node linkType: hard +"puppeteer-core@npm:^2.1.1": + version: 2.1.1 + resolution: "puppeteer-core@npm:2.1.1" + dependencies: + "@types/mime-types": ^2.1.0 + debug: ^4.1.0 + extract-zip: ^1.6.6 + https-proxy-agent: ^4.0.0 + mime: ^2.0.3 + mime-types: ^2.1.25 + progress: ^2.0.1 + proxy-from-env: ^1.0.0 + rimraf: ^2.6.1 + ws: ^6.1.0 + checksum: 2ddb597ef1b2d162b4aa49833b977734129edf7c8fa558fc38c59d273e79aa1bd079481c642de87f7163665f7f37aa52683da2716bafb7d3cab68c262c36ec28 + languageName: node + linkType: hard + "pvtsutils@npm:^1.3.2": version: 1.3.5 resolution: "pvtsutils@npm:1.3.5" @@ -33240,23 +30846,7 @@ __metadata: languageName: node linkType: hard -"qs@npm:6.10.3, qs@npm:^6.10.2, qs@npm:^6.10.3, qs@npm:^6.7.0, qs@npm:^6.9.4": - version: 6.10.3 - resolution: "qs@npm:6.10.3" - dependencies: - side-channel: ^1.0.4 - checksum: 0fac5e6c7191d0295a96d0e83c851aeb015df7e990e4d3b093897d3ac6c94e555dbd0a599739c84d7fa46d7fee282d94ba76943983935cf33bba6769539b8019 - languageName: node - linkType: hard - -"qs@npm:6.9.7": - version: 6.9.7 - resolution: "qs@npm:6.9.7" - checksum: 5bbd263332ccf320a1f36d04a2019a5834dc20bcb736431eaccde2a39dcba03fb26d2fd00174f5d7bc26aaad1cad86124b18440883ac042ea2a0fca6170c1bf1 - languageName: node - linkType: hard - -"qs@npm:^6.10.0": +"qs@npm:6.11.0, qs@npm:^6.10.0": version: 6.11.0 resolution: "qs@npm:6.11.0" dependencies: @@ -33265,6 +30855,15 @@ __metadata: languageName: node linkType: hard +"qs@npm:^6.10.2, qs@npm:^6.10.3, qs@npm:^6.7.0, qs@npm:^6.9.4": + version: 6.10.3 + resolution: "qs@npm:6.10.3" + dependencies: + side-channel: ^1.0.4 + checksum: 0fac5e6c7191d0295a96d0e83c851aeb015df7e990e4d3b093897d3ac6c94e555dbd0a599739c84d7fa46d7fee282d94ba76943983935cf33bba6769539b8019 + languageName: node + linkType: hard + "qs@npm:^6.11.0": version: 6.11.2 resolution: "qs@npm:6.11.2" @@ -33281,18 +30880,7 @@ __metadata: languageName: node linkType: hard -"query-string@npm:^5.0.1": - version: 5.1.1 - resolution: "query-string@npm:5.1.1" - dependencies: - decode-uri-component: ^0.2.0 - object-assign: ^4.1.0 - strict-uri-encode: ^1.0.0 - checksum: 4ac760d9778d413ef5f94f030ed14b1a07a1708dd13fd3bc54f8b9ef7b425942c7577f30de0bf5a7d227ee65a9a0350dfa3a43d1d266880882fb7ce4c434a4dd - languageName: node - linkType: hard - -"querystring-es3@npm:^0.2.0": +"querystring-es3@npm:^0.2.1": version: 0.2.1 resolution: "querystring-es3@npm:0.2.1" checksum: 691e8d6b8b157e7cd49ae8e83fcf86de39ab3ba948c25abaa94fba84c0986c641aa2f597770848c64abce290ed17a39c9df6df737dfa7e87c3b63acc7d225d61 @@ -33327,6 +30915,13 @@ __metadata: languageName: node linkType: hard +"queue-tick@npm:^1.0.1": + version: 1.0.1 + resolution: "queue-tick@npm:1.0.1" + checksum: 57c3292814b297f87f792fbeb99ce982813e4e54d7a8bdff65cf53d5c084113913289d4a48ec8bbc964927a74b847554f9f4579df43c969a6c8e0f026457ad01 + languageName: node + linkType: hard + "queue@npm:6.0.2, queue@npm:^6.0.2": version: 6.0.2 resolution: "queue@npm:6.0.2" @@ -33364,10 +30959,10 @@ __metadata: languageName: node linkType: hard -"ramda@npm:^0.28.0": - version: 0.28.0 - resolution: "ramda@npm:0.28.0" - checksum: 44ea6e5010bba70151b6a92d8114a91915e8b5a16105cce65fae58c9d7386b812c429645e35f21141d7087568550ce383bc10ee1a65cdec951f4b69ea457e6a4 +"ramda@npm:0.29.0": + version: 0.29.0 + resolution: "ramda@npm:0.29.0" + checksum: 9ab26c06eb7545cbb7eebcf75526d6ee2fcaae19e338f165b2bf32772121e7b28192d6664d1ba222ff76188ba26ab307342d66e805dbb02c860560adc4d5dd57 languageName: node linkType: hard @@ -33419,18 +31014,6 @@ __metadata: languageName: node linkType: hard -"raw-body@npm:2.4.3": - version: 2.4.3 - resolution: "raw-body@npm:2.4.3" - dependencies: - bytes: 3.1.2 - http-errors: 1.8.1 - iconv-lite: 0.4.24 - unpipe: 1.0.0 - checksum: d2961fa3c71c9c22dc2c3fd60ff377bf36dfed7d7a748f2b25d585934a3e9df565bb9aa5bc2e3a716ea941f4bc2a6ddc795c8b0cf7219fb071029b59b1985394 - languageName: node - linkType: hard - "raw-body@npm:2.5.1, raw-body@npm:^2.5.1": version: 2.5.1 resolution: "raw-body@npm:2.5.1" @@ -33443,15 +31026,17 @@ __metadata: languageName: node linkType: hard -"raw-loader@npm:^4.0.2": - version: 4.0.2 - resolution: "raw-loader@npm:4.0.2" +"rc@npm:^1.2.7": + version: 1.2.8 + resolution: "rc@npm:1.2.8" dependencies: - loader-utils: ^2.0.0 - schema-utils: ^3.0.0 - peerDependencies: - webpack: ^4.0.0 || ^5.0.0 - checksum: 51cc1b0d0e8c37c4336b5318f3b2c9c51d6998ad6f56ea09612afcfefc9c1f596341309e934a744ae907177f28efc9f1654eacd62151e82853fcc6d37450e795 + deep-extend: ^0.6.0 + ini: ~1.3.0 + minimist: ^1.2.0 + strip-json-comments: ~2.0.1 + bin: + rc: ./cli.js + checksum: 2e26e052f8be2abd64e6d1dabfbd7be03f80ec18ccbc49562d31f617d0015fbdbcf0f9eed30346ea6ab789e0fdfe4337f033f8016efdbee0df5354751842080e languageName: node linkType: hard @@ -33519,6 +31104,16 @@ __metadata: languageName: node linkType: hard +"react-colorful@npm:^5.1.2": + version: 5.6.1 + resolution: "react-colorful@npm:5.6.1" + peerDependencies: + react: ">=16.8.0" + react-dom: ">=16.8.0" + checksum: e432b7cb0df57e8f0bcdc3b012d2e93fcbcb6092c9e0f85654788d5ebfc4442536d8cc35b2418061ba3c4afb8b7788cc101c606d86a1732407921de7a9244c8d + languageName: node + linkType: hard + "react-colorful@npm:^5.6.0": version: 5.6.0 resolution: "react-colorful@npm:5.6.0" @@ -33631,7 +31226,7 @@ __metadata: languageName: node linkType: hard -"react-docgen-typescript@npm:^2.1.1": +"react-docgen-typescript@npm:^2.2.2": version: 2.2.2 resolution: "react-docgen-typescript@npm:2.2.2" peerDependencies: @@ -33640,43 +31235,21 @@ __metadata: languageName: node linkType: hard -"react-docgen@npm:^5.0.0": - version: 5.4.3 - resolution: "react-docgen@npm:5.4.3" +"react-docgen@npm:^7.0.0": + version: 7.0.1 + resolution: "react-docgen@npm:7.0.1" dependencies: - "@babel/core": ^7.7.5 - "@babel/generator": ^7.12.11 - "@babel/runtime": ^7.7.6 - ast-types: ^0.14.2 - commander: ^2.19.0 + "@babel/core": ^7.18.9 + "@babel/traverse": ^7.18.9 + "@babel/types": ^7.18.9 + "@types/babel__core": ^7.18.0 + "@types/babel__traverse": ^7.18.0 + "@types/doctrine": ^0.0.9 + "@types/resolve": ^1.20.2 doctrine: ^3.0.0 - estree-to-babel: ^3.1.0 - neo-async: ^2.6.1 - node-dir: ^0.1.10 - strip-indent: ^3.0.0 - bin: - react-docgen: bin/react-docgen.js - checksum: cef935ba948195eaeec9126c62f53bc015b9a5ad3a7eeb4a4604668d5b12bd5d0c9058c279eaf33ee6b47f2a24ccf01818b67af64d7f61265c4d3a5aa4ff0a3a - languageName: node - linkType: hard - -"react-docgen@npm:^6.0.0-alpha.0": - version: 6.0.0-alpha.3 - resolution: "react-docgen@npm:6.0.0-alpha.3" - dependencies: - "@babel/core": ^7.7.5 - "@babel/generator": ^7.12.11 - ast-types: ^0.14.2 - commander: ^2.19.0 - doctrine: ^3.0.0 - estree-to-babel: ^3.1.0 - neo-async: ^2.6.1 - node-dir: ^0.1.10 - resolve: ^1.17.0 - strip-indent: ^3.0.0 - bin: - react-docgen: bin/react-docgen.js - checksum: db4c300910e2ef7b854ccf4f454bd701875b787d0bc0f444f89415223e7c288a5808d6cd0f7ef6346332c9de2d068d648bc801d16b6b07a1699c3e10670c4801 + resolve: ^1.22.1 + strip-indent: ^4.0.0 + checksum: 9c2b6cbd6bb94bf75a088dd5046707f7bcb2271c553081e7ec4daaadfd2ba7c5b68f81499212fde96192cdd6ce71dd31600fdc21c2e7ddb86dd5bf039971cd91 languageName: node linkType: hard @@ -33705,17 +31278,17 @@ __metadata: languageName: node linkType: hard -"react-element-to-jsx-string@npm:^14.3.4": - version: 14.3.4 - resolution: "react-element-to-jsx-string@npm:14.3.4" +"react-element-to-jsx-string@npm:^15.0.0": + version: 15.0.0 + resolution: "react-element-to-jsx-string@npm:15.0.0" dependencies: "@base2/pretty-print-object": 1.0.1 is-plain-object: 5.0.0 - react-is: 17.0.2 + react-is: 18.1.0 peerDependencies: - react: ^0.14.8 || ^15.0.1 || ^16.0.0 || ^17.0.1 - react-dom: ^0.14.8 || ^15.0.1 || ^16.0.0 || ^17.0.1 - checksum: 42bcd4423f12e9ee21b2d3f0c2a28805ff4953bd82b6be4c1f5b5f9a371115aafa36a6f3d82726d43b4912179b79e99550c2b9a772c7fe6a5cd8f7e93ff34ceb + react: ^0.14.8 || ^15.0.1 || ^16.0.0 || ^17.0.1 || ^18.0.0 + react-dom: ^0.14.8 || ^15.0.1 || ^16.0.0 || ^17.0.1 || ^18.0.0 + checksum: c3907cc4c1d3e9ecc8ca7727058ebcba6ec89848d9e07bfd2c77ee8f28f1ad99bf55e38359dec8a1125de83d41ac09a2874f53c41415edc86ffa9840fa1b7856 languageName: node linkType: hard @@ -33846,7 +31419,7 @@ __metadata: languageName: node linkType: hard -"react-inspector@npm:^5.1.0, react-inspector@npm:^5.1.1": +"react-inspector@npm:^5.1.1": version: 5.1.1 resolution: "react-inspector@npm:5.1.1" dependencies: @@ -33892,10 +31465,10 @@ __metadata: languageName: node linkType: hard -"react-is@npm:17.0.2, react-is@npm:^17.0.1, react-is@npm:^17.0.2": - version: 17.0.2 - resolution: "react-is@npm:17.0.2" - checksum: 9d6d111d8990dc98bc5402c1266a808b0459b5d54830bbea24c12d908b536df7883f268a7868cfaedde3dd9d4e0d574db456f84d2e6df9c4526f99bb4b5344d8 +"react-is@npm:18.1.0": + version: 18.1.0 + resolution: "react-is@npm:18.1.0" + checksum: d206a0fe6790851bff168727bfb896de02c5591695afb0c441163e8630136a3e13ee1a7ddd59fdccddcc93968b4721ae112c10f790b194b03b35a3dc13a355ef languageName: node linkType: hard @@ -33906,6 +31479,13 @@ __metadata: languageName: node linkType: hard +"react-is@npm:^17.0.1, react-is@npm:^17.0.2": + version: 17.0.2 + resolution: "react-is@npm:17.0.2" + checksum: 9d6d111d8990dc98bc5402c1266a808b0459b5d54830bbea24c12d908b536df7883f268a7868cfaedde3dd9d4e0d574db456f84d2e6df9c4526f99bb4b5344d8 + languageName: node + linkType: hard + "react-is@npm:^18.0.0": version: 18.2.0 resolution: "react-is@npm:18.2.0" @@ -33929,7 +31509,7 @@ __metadata: languageName: node linkType: hard -"react-merge-refs@npm:1.1.0, react-merge-refs@npm:^1.0.0": +"react-merge-refs@npm:1.1.0": version: 1.1.0 resolution: "react-merge-refs@npm:1.1.0" checksum: 90884352999002d868ab9f1bcfe3222fb0f2178ed629f1da7e98e5a9b02a2c96b4aa72800db92aabd69d2483211b4be57a2088e89a11a0b660e7ada744d4ddf7 @@ -34029,13 +31609,6 @@ __metadata: languageName: node linkType: hard -"react-refresh@npm:^0.11.0": - version: 0.11.0 - resolution: "react-refresh@npm:0.11.0" - checksum: 112178a05b1e0ffeaf5d9fb4e56b4410a34a73adeb04dbf13abdc50d9ac9df2ada83e81485156cca0b3fa296aa3612751b3d6cd13be4464642a43679b819cbc7 - languageName: node - linkType: hard - "react-refresh@npm:^0.14.0": version: 0.14.0 resolution: "react-refresh@npm:0.14.0" @@ -34419,27 +31992,6 @@ __metadata: languageName: node linkType: hard -"read-pkg-up@npm:^1.0.1": - version: 1.0.1 - resolution: "read-pkg-up@npm:1.0.1" - dependencies: - find-up: ^1.0.0 - read-pkg: ^1.0.0 - checksum: d18399a0f46e2da32beb2f041edd0cda49d2f2cc30195a05c759ef3ed9b5e6e19ba1ad1bae2362bdec8c6a9f2c3d18f4d5e8c369e808b03d498d5781cb9122c7 - languageName: node - linkType: hard - -"read-pkg@npm:^1.0.0": - version: 1.1.0 - resolution: "read-pkg@npm:1.1.0" - dependencies: - load-json-file: ^1.0.0 - normalize-package-data: ^2.3.2 - path-type: ^1.0.0 - checksum: a0f5d5e32227ec8e6a028dd5c5134eab229768dcb7a5d9a41a284ed28ad4b9284fecc47383dc1593b5694f4de603a7ffaee84b738956b9b77e0999567485a366 - languageName: node - linkType: hard - "read-pkg@npm:^3.0.0": version: 3.0.0 resolution: "read-pkg@npm:3.0.0" @@ -34475,7 +32027,19 @@ __metadata: languageName: node linkType: hard -"readable-stream@npm:1 || 2, readable-stream@npm:^2.0.0, readable-stream@npm:^2.0.1, readable-stream@npm:^2.0.2, readable-stream@npm:^2.0.5, readable-stream@npm:^2.1.0, readable-stream@npm:^2.1.5, readable-stream@npm:^2.2.2, readable-stream@npm:^2.3.3, readable-stream@npm:^2.3.6, readable-stream@npm:~2.3.6": +"readable-stream@npm:^1.0.26-4": + version: 1.1.14 + resolution: "readable-stream@npm:1.1.14" + dependencies: + core-util-is: ~1.0.0 + inherits: ~2.0.1 + isarray: 0.0.1 + string_decoder: ~0.10.x + checksum: 17dfeae3e909945a4a1abc5613ea92d03269ef54c49288599507fc98ff4615988a1c39a999dcf9aacba70233d9b7040bc11a5f2bfc947e262dedcc0a8b32b5a0 + languageName: node + linkType: hard + +"readable-stream@npm:^2.0.0, readable-stream@npm:^2.0.5, readable-stream@npm:^2.1.0, readable-stream@npm:^2.2.2, readable-stream@npm:~2.3.6": version: 2.3.7 resolution: "readable-stream@npm:2.3.7" dependencies: @@ -34490,19 +32054,7 @@ __metadata: languageName: node linkType: hard -"readable-stream@npm:^1.0.26-4": - version: 1.1.14 - resolution: "readable-stream@npm:1.1.14" - dependencies: - core-util-is: ~1.0.0 - inherits: ~2.0.1 - isarray: 0.0.1 - string_decoder: ~0.10.x - checksum: 17dfeae3e909945a4a1abc5613ea92d03269ef54c49288599507fc98ff4615988a1c39a999dcf9aacba70233d9b7040bc11a5f2bfc947e262dedcc0a8b32b5a0 - languageName: node - linkType: hard - -"readable-stream@npm:^3.0.0, readable-stream@npm:^3.0.2, readable-stream@npm:^3.1.1": +"readable-stream@npm:^3.0.0, readable-stream@npm:^3.0.2, readable-stream@npm:^3.1.1, readable-stream@npm:^3.5.0": version: 3.6.2 resolution: "readable-stream@npm:3.6.2" dependencies: @@ -34524,6 +32076,19 @@ __metadata: languageName: node linkType: hard +"readable-stream@npm:^4.0.0": + version: 4.4.2 + resolution: "readable-stream@npm:4.4.2" + dependencies: + abort-controller: ^3.0.0 + buffer: ^6.0.3 + events: ^3.3.0 + process: ^0.11.10 + string_decoder: ^1.3.0 + checksum: 6f4063763dbdb52658d22d3f49ca976420e1fbe16bbd241f744383715845350b196a2f08b8d6330f8e219153dff34b140aeefd6296da828e1041a7eab1f20d5e + languageName: node + linkType: hard + "readable-stream@npm:~1.0.26, readable-stream@npm:~1.0.26-4": version: 1.0.34 resolution: "readable-stream@npm:1.0.34" @@ -34545,17 +32110,6 @@ __metadata: languageName: node linkType: hard -"readdirp@npm:^2.2.1": - version: 2.2.1 - resolution: "readdirp@npm:2.2.1" - dependencies: - graceful-fs: ^4.1.11 - micromatch: ^3.1.10 - readable-stream: ^2.0.2 - checksum: 3879b20f1a871e0e004a14fbf1776e65ee0b746a62f5a416010808b37c272ac49b023c47042c7b1e281cba75a449696635bc64c397ed221ea81d853a8f2ed79a - languageName: node - linkType: hard - "readdirp@npm:~3.6.0": version: 3.6.0 resolution: "readdirp@npm:3.6.0" @@ -34565,6 +32119,19 @@ __metadata: languageName: node linkType: hard +"recast@npm:^0.23.1, recast@npm:^0.23.3": + version: 0.23.4 + resolution: "recast@npm:0.23.4" + dependencies: + assert: ^2.0.0 + ast-types: ^0.16.1 + esprima: ~4.0.0 + source-map: ~0.6.1 + tslib: ^2.0.1 + checksum: edb63bbe0457e68c0f4892f55413000e92aa7c5c53f9e109ab975d1c801cd299a62511ea72734435791f4aea6f0edf560f6a275761f66b2b6069ff6d72686029 + languageName: node + linkType: hard + "recharts-scale@npm:^0.4.4": version: 0.4.5 resolution: "recharts-scale@npm:0.4.5" @@ -34595,16 +32162,6 @@ __metadata: languageName: node linkType: hard -"redent@npm:^1.0.0": - version: 1.0.0 - resolution: "redent@npm:1.0.0" - dependencies: - indent-string: ^2.1.0 - strip-indent: ^1.0.1 - checksum: 2bb8f76fda9c9f44e26620047b0ba9dd1834b0a80309d0badcc23fdcf7bb27a7ca74e66b683baa0d4b8cb5db787f11be086504036d63447976f409dd3e73fd7d - languageName: node - linkType: hard - "redent@npm:^3.0.0": version: 3.0.0 resolution: "redent@npm:3.0.0" @@ -34709,7 +32266,7 @@ __metadata: languageName: node linkType: hard -"regenerator-runtime@npm:^0.13.2, regenerator-runtime@npm:^0.13.3, regenerator-runtime@npm:^0.13.7": +"regenerator-runtime@npm:^0.13.3": version: 0.13.9 resolution: "regenerator-runtime@npm:0.13.9" checksum: 65ed455fe5afd799e2897baf691ca21c2772e1a969d19bb0c4695757c2d96249eb74ee3553ea34a91062b2a676beedf630b4c1551cc6299afb937be1426ec55e @@ -34732,16 +32289,6 @@ __metadata: languageName: node linkType: hard -"regex-not@npm:^1.0.0, regex-not@npm:^1.0.2": - version: 1.0.2 - resolution: "regex-not@npm:1.0.2" - dependencies: - extend-shallow: ^3.0.2 - safe-regex: ^1.1.0 - checksum: 3081403de79559387a35ef9d033740e41818a559512668cef3d12da4e8a29ef34ee13c8ed1256b07e27ae392790172e8a15c8a06b72962fd4550476cde3d8f77 - languageName: node - linkType: hard - "regex-parser@npm:^2.2.11": version: 2.2.11 resolution: "regex-parser@npm:2.2.11" @@ -34770,6 +32317,17 @@ __metadata: languageName: node linkType: hard +"regexp.prototype.flags@npm:^1.5.1": + version: 1.5.1 + resolution: "regexp.prototype.flags@npm:1.5.1" + dependencies: + call-bind: ^1.0.2 + define-properties: ^1.2.0 + set-function-name: ^2.0.0 + checksum: 869edff00288442f8d7fa4c9327f91d85f3b3acf8cbbef9ea7a220345cf23e9241b6def9263d2c1ebcf3a316b0aa52ad26a43a84aa02baca3381717b3e307f47 + languageName: node + linkType: hard + "regexpp@npm:^3.2.0": version: 3.2.0 resolution: "regexpp@npm:3.2.0" @@ -34840,13 +32398,6 @@ __metadata: languageName: node linkType: hard -"remark-footnotes@npm:2.0.0": - version: 2.0.0 - resolution: "remark-footnotes@npm:2.0.0" - checksum: f2f87ffd6fe25892373c7164d6584a7cb03ab0ea4f186af493a73df519e24b72998a556e7f16cb996f18426cdb80556b95ff252769e252cf3ccba0fd2ca20621 - languageName: node - linkType: hard - "remark-html@npm:^14.0.1": version: 14.0.1 resolution: "remark-html@npm:14.0.1" @@ -34860,46 +32411,6 @@ __metadata: languageName: node linkType: hard -"remark-mdx@npm:1.6.22": - version: 1.6.22 - resolution: "remark-mdx@npm:1.6.22" - dependencies: - "@babel/core": 7.12.9 - "@babel/helper-plugin-utils": 7.10.4 - "@babel/plugin-proposal-object-rest-spread": 7.12.1 - "@babel/plugin-syntax-jsx": 7.12.1 - "@mdx-js/util": 1.6.22 - is-alphabetical: 1.0.4 - remark-parse: 8.0.3 - unified: 9.2.0 - checksum: 45e62f8a821c37261f94448d54f295de1c5c393f762ff96cd4d4b730715037fafeb6c89ef94adf6a10a09edfa72104afe1431b93b5ae5e40ce2a7677e133c3d9 - languageName: node - linkType: hard - -"remark-parse@npm:8.0.3": - version: 8.0.3 - resolution: "remark-parse@npm:8.0.3" - dependencies: - ccount: ^1.0.0 - collapse-white-space: ^1.0.2 - is-alphabetical: ^1.0.0 - is-decimal: ^1.0.0 - is-whitespace-character: ^1.0.0 - is-word-character: ^1.0.0 - markdown-escapes: ^1.0.0 - parse-entities: ^2.0.0 - repeat-string: ^1.5.4 - state-toggle: ^1.0.0 - trim: 0.0.1 - trim-trailing-lines: ^1.0.0 - unherit: ^1.0.4 - unist-util-remove-position: ^2.0.0 - vfile-location: ^3.0.0 - xtend: ^4.0.1 - checksum: 2dfea250e7606ddfc9e223b9f41e0b115c5c701be4bd35181beaadd46ee59816bc00aadc6085a420f8df00b991ada73b590ea7fd34ace14557de4a0a41805be5 - languageName: node - linkType: hard - "remark-parse@npm:^10.0.0": version: 10.0.2 resolution: "remark-parse@npm:10.0.2" @@ -34922,15 +32433,6 @@ __metadata: languageName: node linkType: hard -"remark-squeeze-paragraphs@npm:4.0.0": - version: 4.0.0 - resolution: "remark-squeeze-paragraphs@npm:4.0.0" - dependencies: - mdast-squeeze-paragraphs: ^4.0.0 - checksum: 2071eb74d0ecfefb152c4932690a9fd950c3f9f798a676f1378a16db051da68fb20bf288688cc153ba5019dded35408ff45a31dfe9686eaa7a9f1df9edbb6c81 - languageName: node - linkType: hard - "remark-stringify@npm:^10.0.0": version: 10.0.3 resolution: "remark-stringify@npm:10.0.3" @@ -35001,19 +32503,6 @@ __metadata: languageName: node linkType: hard -"renderkid@npm:^2.0.4": - version: 2.0.7 - resolution: "renderkid@npm:2.0.7" - dependencies: - css-select: ^4.1.3 - dom-converter: ^0.2.0 - htmlparser2: ^6.1.0 - lodash: ^4.17.21 - strip-ansi: ^3.0.1 - checksum: d3d7562531fb8104154d4aa6aa977707783616318014088378a6c5bbc36318ada9289543d380ede707e531b7f5b96229e87d1b8944f675e5ec3686e62692c7c7 - languageName: node - linkType: hard - "renderkid@npm:^3.0.0": version: 3.0.0 resolution: "renderkid@npm:3.0.0" @@ -35027,29 +32516,13 @@ __metadata: languageName: node linkType: hard -"repeat-element@npm:^1.1.2": - version: 1.1.4 - resolution: "repeat-element@npm:1.1.4" - checksum: 1edd0301b7edad71808baad226f0890ba709443f03a698224c9ee4f2494c317892dc5211b2ba8cbea7194a9ddbcac01e283bd66de0467ab24ee1fc1a3711d8a9 - languageName: node - linkType: hard - -"repeat-string@npm:^1.5.2, repeat-string@npm:^1.5.4, repeat-string@npm:^1.6.1": +"repeat-string@npm:^1.5.2": version: 1.6.1 resolution: "repeat-string@npm:1.6.1" checksum: 1b809fc6db97decdc68f5b12c4d1a671c8e3f65ec4a40c238bc5200e44e85bcc52a54f78268ab9c29fcf5fe4f1343e805420056d1f30fa9a9ee4c2d93e3cc6c0 languageName: node linkType: hard -"repeating@npm:^2.0.0": - version: 2.0.1 - resolution: "repeating@npm:2.0.1" - dependencies: - is-finite: ^1.0.0 - checksum: d2db0b69c5cb0c14dd750036e0abcd6b3c3f7b2da3ee179786b755cf737ca15fa0fff417ca72de33d6966056f4695440e680a352401fc02c95ade59899afbdd0 - languageName: node - linkType: hard - "replace-string@npm:3.1.0": version: 3.1.0 resolution: "replace-string@npm:3.1.0" @@ -35057,7 +32530,7 @@ __metadata: languageName: node linkType: hard -"request@npm:^2.66.0, request@npm:^2.72.0, request@npm:^2.79.0, request@npm:^2.88.0": +"request@npm:^2.66.0, request@npm:^2.72.0, request@npm:^2.88.0": version: 2.88.2 resolution: "request@npm:2.88.2" dependencies: @@ -35120,7 +32593,7 @@ __metadata: languageName: node linkType: hard -"resolve-alpn@npm:^1.0.0, resolve-alpn@npm:^1.2.0": +"resolve-alpn@npm:^1.0.0": version: 1.2.1 resolution: "resolve-alpn@npm:1.2.1" checksum: f558071fcb2c60b04054c99aebd572a2af97ef64128d59bef7ab73bd50d896a222a056de40ffc545b633d99b304c259ea9d0c06830d5c867c34f0bfa60b8eae0 @@ -35154,13 +32627,6 @@ __metadata: languageName: node linkType: hard -"resolve-url@npm:^0.2.1": - version: 0.2.1 - resolution: "resolve-url@npm:0.2.1" - checksum: 7b7035b9ed6e7bc7d289e90aef1eab5a43834539695dac6416ca6e91f1a94132ae4796bbd173cdacfdc2ade90b5f38a3fb6186bebc1b221cd157777a23b9ad14 - languageName: node - linkType: hard - "resolve@npm:1.22.2": version: 1.22.2 resolution: "resolve@npm:1.22.2" @@ -35187,7 +32653,7 @@ __metadata: languageName: node linkType: hard -"resolve@npm:^1.1.7, resolve@npm:^1.14.2, resolve@npm:^1.17.0, resolve@npm:^1.19.0, resolve@npm:^1.22.1, resolve@npm:^1.3.2": +"resolve@npm:^1.1.7, resolve@npm:^1.14.2, resolve@npm:^1.22.1": version: 1.22.1 resolution: "resolve@npm:1.22.1" dependencies: @@ -35249,7 +32715,7 @@ __metadata: languageName: node linkType: hard -"resolve@patch:resolve@^1.1.7#~builtin<compat/resolve>, resolve@patch:resolve@^1.14.2#~builtin<compat/resolve>, resolve@patch:resolve@^1.17.0#~builtin<compat/resolve>, resolve@patch:resolve@^1.19.0#~builtin<compat/resolve>, resolve@patch:resolve@^1.22.1#~builtin<compat/resolve>, resolve@patch:resolve@^1.3.2#~builtin<compat/resolve>": +"resolve@patch:resolve@^1.1.7#~builtin<compat/resolve>, resolve@patch:resolve@^1.14.2#~builtin<compat/resolve>, resolve@patch:resolve@^1.22.1#~builtin<compat/resolve>": version: 1.22.1 resolution: "resolve@patch:resolve@npm%3A1.22.1#~builtin<compat/resolve>::version=1.22.1&hash=c3c19d" dependencies: @@ -35328,13 +32794,6 @@ __metadata: languageName: node linkType: hard -"ret@npm:~0.1.10": - version: 0.1.15 - resolution: "ret@npm:0.1.15" - checksum: d76a9159eb8c946586567bd934358dfc08a36367b3257f7a3d7255fdd7b56597235af23c6afa0d7f0254159e8051f93c918809962ebd6df24ca2a83dbe4d4151 - languageName: node - linkType: hard - "retry@npm:^0.12.0": version: 0.12.0 resolution: "retry@npm:0.12.0" @@ -35374,7 +32833,7 @@ __metadata: languageName: node linkType: hard -"rimraf@npm:^2.5.4, rimraf@npm:^2.6.3": +"rimraf@npm:^2.6.1": version: 2.7.1 resolution: "rimraf@npm:2.7.1" dependencies: @@ -35385,6 +32844,17 @@ __metadata: languageName: node linkType: hard +"rimraf@npm:~2.6.2": + version: 2.6.3 + resolution: "rimraf@npm:2.6.3" + dependencies: + glob: ^7.1.3 + bin: + rimraf: ./bin.js + checksum: 3ea587b981a19016297edb96d1ffe48af7e6af69660e3b371dbfc73722a73a0b0e9be5c88089fbeeb866c389c1098e07f64929c7414290504b855f54f901ab10 + languageName: node + linkType: hard + "ripemd160@npm:2.0.2, ripemd160@npm:^2.0.0, ripemd160@npm:^2.0.1": version: 2.0.2 resolution: "ripemd160@npm:2.0.2" @@ -35395,17 +32865,6 @@ __metadata: languageName: node linkType: hard -"rlp@npm:^2.2.4": - version: 2.2.7 - resolution: "rlp@npm:2.2.7" - dependencies: - bn.js: ^5.2.0 - bin: - rlp: bin/rlp - checksum: 3db4dfe5c793f40ac7e0be689a1f75d05e6f2ca0c66189aeb62adab8c436b857ab4420a419251ee60370d41d957a55698fc5e23ab1e1b41715f33217bc4bb558 - languageName: node - linkType: hard - "rollup-plugin-node-builtins@npm:^2.1.2": version: 2.1.2 resolution: "rollup-plugin-node-builtins@npm:2.1.2" @@ -35457,6 +32916,56 @@ __metadata: languageName: node linkType: hard +"rollup@npm:^4.2.0": + version: 4.6.1 + resolution: "rollup@npm:4.6.1" + dependencies: + "@rollup/rollup-android-arm-eabi": 4.6.1 + "@rollup/rollup-android-arm64": 4.6.1 + "@rollup/rollup-darwin-arm64": 4.6.1 + "@rollup/rollup-darwin-x64": 4.6.1 + "@rollup/rollup-linux-arm-gnueabihf": 4.6.1 + "@rollup/rollup-linux-arm64-gnu": 4.6.1 + "@rollup/rollup-linux-arm64-musl": 4.6.1 + "@rollup/rollup-linux-x64-gnu": 4.6.1 + "@rollup/rollup-linux-x64-musl": 4.6.1 + "@rollup/rollup-win32-arm64-msvc": 4.6.1 + "@rollup/rollup-win32-ia32-msvc": 4.6.1 + "@rollup/rollup-win32-x64-msvc": 4.6.1 + fsevents: ~2.3.2 + dependenciesMeta: + "@rollup/rollup-android-arm-eabi": + optional: true + "@rollup/rollup-android-arm64": + optional: true + "@rollup/rollup-darwin-arm64": + optional: true + "@rollup/rollup-darwin-x64": + optional: true + "@rollup/rollup-linux-arm-gnueabihf": + optional: true + "@rollup/rollup-linux-arm64-gnu": + optional: true + "@rollup/rollup-linux-arm64-musl": + optional: true + "@rollup/rollup-linux-x64-gnu": + optional: true + "@rollup/rollup-linux-x64-musl": + optional: true + "@rollup/rollup-win32-arm64-msvc": + optional: true + "@rollup/rollup-win32-ia32-msvc": + optional: true + "@rollup/rollup-win32-x64-msvc": + optional: true + fsevents: + optional: true + bin: + rollup: dist/bin/rollup + checksum: 1d66f7f61b242a2064f9f993192f19de370ee54d7b7fd7159b6ece2352079be01ed0b5d7e3f0bb7a9242f1dcad4898a6265f0990e91bba8169b81c52136cbc9f + languageName: node + linkType: hard + "rootpath@npm:^0.1.2": version: 0.1.2 resolution: "rootpath@npm:0.1.2" @@ -35493,13 +33002,6 @@ __metadata: languageName: node linkType: hard -"rsvp@npm:^4.8.4": - version: 4.8.5 - resolution: "rsvp@npm:4.8.5" - checksum: 2d8ef30d8febdf05bdf856ccca38001ae3647e41835ca196bc1225333f79b94ae44def733121ca549ccc36209c9b689f6586905e2a043873262609744da8efc1 - languageName: node - linkType: hard - "run-async@npm:^2.4.0": version: 2.4.1 resolution: "run-async@npm:2.4.1" @@ -35516,15 +33018,6 @@ __metadata: languageName: node linkType: hard -"run-queue@npm:^1.0.0, run-queue@npm:^1.0.3": - version: 1.0.3 - resolution: "run-queue@npm:1.0.3" - dependencies: - aproba: ^1.1.1 - checksum: c4541e18b5e056af60f398f2f1b3d89aae5c093d1524bf817c5ee68bcfa4851ad9976f457a9aea135b1d0d72ee9a91c386e3d136bcd95b699c367cd09c70be53 - languageName: node - linkType: hard - "rxjs@npm:^7.0.0, rxjs@npm:^7.8.0": version: 7.8.1 resolution: "rxjs@npm:7.8.1" @@ -35559,20 +33052,13 @@ __metadata: languageName: node linkType: hard -"safe-buffer@npm:*, safe-buffer@npm:5.2.1, safe-buffer@npm:>=5.1.0, safe-buffer@npm:^5.0.1, safe-buffer@npm:^5.1.0, safe-buffer@npm:^5.1.1, safe-buffer@npm:^5.1.2, safe-buffer@npm:^5.2.0, safe-buffer@npm:^5.2.1, safe-buffer@npm:~5.2.0": +"safe-buffer@npm:*, safe-buffer@npm:5.2.1, safe-buffer@npm:>=5.1.0, safe-buffer@npm:^5.0.1, safe-buffer@npm:^5.1.0, safe-buffer@npm:^5.1.1, safe-buffer@npm:^5.1.2, safe-buffer@npm:^5.2.0, safe-buffer@npm:~5.2.0": version: 5.2.1 resolution: "safe-buffer@npm:5.2.1" checksum: b99c4b41fdd67a6aaf280fcd05e9ffb0813654894223afb78a31f14a19ad220bba8aba1cb14eddce1fcfb037155fe6de4e861784eb434f7d11ed58d1e70dd491 languageName: node linkType: hard -"safe-buffer@npm:5.1.1": - version: 5.1.1 - resolution: "safe-buffer@npm:5.1.1" - checksum: 7f117b604554c9daca713be76cecc6c52932ed1dd6303638274f21319038bfd760fbfd353e526cc83f11894935bc4beb71f5b7b9478c11bf9718c0e0d94c51cb - languageName: node - linkType: hard - "safe-buffer@npm:5.1.2, safe-buffer@npm:~5.1.0, safe-buffer@npm:~5.1.1": version: 5.1.2 resolution: "safe-buffer@npm:5.1.2" @@ -35591,15 +33077,6 @@ __metadata: languageName: node linkType: hard -"safe-regex@npm:^1.1.0": - version: 1.1.0 - resolution: "safe-regex@npm:1.1.0" - dependencies: - ret: ~0.1.10 - checksum: 9a8bba57c87a841f7997b3b951e8e403b1128c1a4fd1182f40cc1a20e2d490593d7c2a21030fadfea320c8e859219019e136f678c6689ed5960b391b822f01d5 - languageName: node - linkType: hard - "safer-buffer@npm:>= 2.1.2 < 3, safer-buffer@npm:>= 2.1.2 < 3.0.0, safer-buffer@npm:^2.0.2, safer-buffer@npm:^2.1.0, safer-buffer@npm:~2.1.0": version: 2.1.2 resolution: "safer-buffer@npm:2.1.2" @@ -35607,25 +33084,6 @@ __metadata: languageName: node linkType: hard -"sane@npm:^4.0.3": - version: 4.1.0 - resolution: "sane@npm:4.1.0" - dependencies: - "@cnakazawa/watch": ^1.0.3 - anymatch: ^2.0.0 - capture-exit: ^2.0.0 - exec-sh: ^0.3.2 - execa: ^1.0.0 - fb-watchman: ^2.0.0 - micromatch: ^3.1.4 - minimist: ^1.1.1 - walker: ~1.0.5 - bin: - sane: ./src/cli.js - checksum: 97716502d456c0d38670a902a4ea943d196dcdf998d1e40532d8f3e24e25d7eddfd4c3579025a1eee8eac09a48dfd05fba61a2156c56704e7feaa450eb249f7c - languageName: node - linkType: hard - "sanitize-html@npm:^2.10.0": version: 2.10.0 resolution: "sanitize-html@npm:2.10.0" @@ -35734,29 +33192,7 @@ __metadata: languageName: node linkType: hard -"schema-utils@npm:2.7.0": - version: 2.7.0 - resolution: "schema-utils@npm:2.7.0" - dependencies: - "@types/json-schema": ^7.0.4 - ajv: ^6.12.2 - ajv-keywords: ^3.4.1 - checksum: 8889325b0ee1ae6a8f5d6aaa855c71e136ebbb7fd731b01a9d3ec8225dcb245f644c47c50104db4c741983b528cdff8558570021257d4d397ec6aaecd9172a8e - languageName: node - linkType: hard - -"schema-utils@npm:^1.0.0": - version: 1.0.0 - resolution: "schema-utils@npm:1.0.0" - dependencies: - ajv: ^6.1.0 - ajv-errors: ^1.0.0 - ajv-keywords: ^3.1.0 - checksum: e8273b4f6eff9ddf4a4f4c11daf7b96b900237bf8859c86fa1e9b4fab416b72d7ea92468f8db89c18a3499a1070206e1c8a750c83b42d5325fc659cbb55eee88 - languageName: node - linkType: hard - -"schema-utils@npm:^2.6.5, schema-utils@npm:^2.7.0": +"schema-utils@npm:^2.6.5": version: 2.7.1 resolution: "schema-utils@npm:2.7.1" dependencies: @@ -35767,7 +33203,7 @@ __metadata: languageName: node linkType: hard -"schema-utils@npm:^3.0.0, schema-utils@npm:^3.1.0, schema-utils@npm:^3.1.1": +"schema-utils@npm:^3.0.0, schema-utils@npm:^3.1.1": version: 3.1.1 resolution: "schema-utils@npm:3.1.1" dependencies: @@ -35778,6 +33214,17 @@ __metadata: languageName: node linkType: hard +"schema-utils@npm:^3.2.0": + version: 3.3.0 + resolution: "schema-utils@npm:3.3.0" + dependencies: + "@types/json-schema": ^7.0.8 + ajv: ^6.12.5 + ajv-keywords: ^3.5.2 + checksum: ea56971926fac2487f0757da939a871388891bc87c6a82220d125d587b388f1704788f3706e7f63a7b70e49fc2db974c41343528caea60444afd5ce0fe4b85c0 + languageName: node + linkType: hard + "schema-utils@npm:^4.0.0": version: 4.0.0 resolution: "schema-utils@npm:4.0.0" @@ -35797,13 +33244,6 @@ __metadata: languageName: node linkType: hard -"scrypt-js@npm:^3.0.0, scrypt-js@npm:^3.0.1": - version: 3.0.1 - resolution: "scrypt-js@npm:3.0.1" - checksum: b7c7d1a68d6ca946f2fbb0778e0c4ec63c65501b54023b2af7d7e9f48fdb6c6580d6f7675cd53bda5944c5ebc057560d5a6365079752546865defb3b79dea454 - languageName: node - linkType: hard - "scuid@npm:^1.1.0": version: 1.1.0 resolution: "scuid@npm:1.1.0" @@ -35811,18 +33251,6 @@ __metadata: languageName: node linkType: hard -"secp256k1@npm:^4.0.1": - version: 4.0.3 - resolution: "secp256k1@npm:4.0.3" - dependencies: - elliptic: ^6.5.4 - node-addon-api: ^2.0.0 - node-gyp: latest - node-gyp-build: ^4.2.0 - checksum: 21e219adc0024fbd75021001358780a3cc6ac21273c3fcaef46943af73969729709b03f1df7c012a0baab0830fb9a06ccc6b42f8d50050c665cb98078eab477b - languageName: node - linkType: hard - "section-matter@npm:^1.0.0": version: 1.0.0 resolution: "section-matter@npm:1.0.0" @@ -35851,16 +33279,7 @@ __metadata: languageName: node linkType: hard -"semver@npm:7.0.0": - version: 7.0.0 - resolution: "semver@npm:7.0.0" - bin: - semver: bin/semver.js - checksum: 272c11bf8d083274ef79fe40a81c55c184dff84dd58e3c325299d0927ba48cece1f020793d138382b85f89bab5002a35a5ba59a3a68a7eebbb597eb733838778 - languageName: node - linkType: hard - -"semver@npm:^6.0.0, semver@npm:^6.1.2, semver@npm:^6.3.0": +"semver@npm:^6.0.0, semver@npm:^6.3.0": version: 6.3.0 resolution: "semver@npm:6.3.0" bin: @@ -35878,17 +33297,6 @@ __metadata: 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" - dependencies: - lru-cache: ^6.0.0 - bin: - semver: bin/semver.js - checksum: 2fa3e877568cd6ce769c75c211beaed1f9fce80b28338cadd9d0b6c40f2e2862bafd62c19a6cff42f3d54292b7c623277bcab8816a2b5521cf15210d43e75232 - languageName: node - linkType: hard - "semver@npm:^7.3.2": version: 7.3.5 resolution: "semver@npm:7.3.5" @@ -35900,6 +33308,17 @@ __metadata: languageName: node linkType: hard +"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" + dependencies: + lru-cache: ^6.0.0 + bin: + semver: bin/semver.js + checksum: 2fa3e877568cd6ce769c75c211beaed1f9fce80b28338cadd9d0b6c40f2e2862bafd62c19a6cff42f3d54292b7c623277bcab8816a2b5521cf15210d43e75232 + languageName: node + linkType: hard + "semver@npm:^7.3.8, semver@npm:^7.5.3, semver@npm:^7.5.4": version: 7.5.4 resolution: "semver@npm:7.5.4" @@ -35920,27 +33339,6 @@ __metadata: languageName: node linkType: hard -"send@npm:0.17.2": - version: 0.17.2 - resolution: "send@npm:0.17.2" - dependencies: - debug: 2.6.9 - depd: ~1.1.2 - destroy: ~1.0.4 - encodeurl: ~1.0.2 - escape-html: ~1.0.3 - etag: ~1.8.1 - fresh: 0.5.2 - http-errors: 1.8.1 - mime: 1.6.0 - ms: 2.1.3 - on-finished: ~2.3.0 - range-parser: ~1.2.1 - statuses: ~1.5.0 - checksum: c28f36deb4ccba9b8d6e6a1e472b8e7c40a1f51575bdf8f67303568cc9e71131faa3adc36fdb72611616ccad1584358bbe4c3ebf419e663ecc5de868ad3d3f03 - languageName: node - linkType: hard - "send@npm:0.18.0": version: 0.18.0 resolution: "send@npm:0.18.0" @@ -36005,24 +33403,6 @@ __metadata: languageName: node linkType: hard -"serialize-javascript@npm:^4.0.0": - version: 4.0.0 - resolution: "serialize-javascript@npm:4.0.0" - dependencies: - randombytes: ^2.1.0 - checksum: 3273b3394b951671fcf388726e9577021870dfbf85e742a1183fb2e91273e6101bdccea81ff230724f6659a7ee4cef924b0ff9baca32b79d9384ec37caf07302 - languageName: node - linkType: hard - -"serialize-javascript@npm:^5.0.1": - version: 5.0.1 - resolution: "serialize-javascript@npm:5.0.1" - dependencies: - randombytes: ^2.1.0 - checksum: bb45a427690c3d2711e28499de0fbf25036af1e23c63c6a9237ed0aa572fd0941fcdefe50a2dccf26d9df8c8b86ae38659e19d8ba7afd3fbc1f1c7539a2a48d2 - languageName: node - linkType: hard - "serialize-javascript@npm:^6.0.0": version: 6.0.0 resolution: "serialize-javascript@npm:6.0.0" @@ -36032,28 +33412,12 @@ __metadata: languageName: node linkType: hard -"serve-favicon@npm:^2.5.0": - version: 2.5.0 - resolution: "serve-favicon@npm:2.5.0" +"serialize-javascript@npm:^6.0.1": + version: 6.0.1 + resolution: "serialize-javascript@npm:6.0.1" dependencies: - etag: ~1.8.1 - fresh: 0.5.2 - ms: 2.1.1 - parseurl: ~1.3.2 - safe-buffer: 5.1.1 - checksum: f4dd0fbee3b7e18d0a27ba6ba01d2f585f23f533010c9e8c74aad74615b19b12d8fbe714f14cb3579803f0bacecd67cdc858714cb56c6e28f8dd07ccc997aea4 - languageName: node - linkType: hard - -"serve-static@npm:1.14.2": - version: 1.14.2 - resolution: "serve-static@npm:1.14.2" - dependencies: - encodeurl: ~1.0.2 - escape-html: ~1.0.3 - parseurl: ~1.3.3 - send: 0.17.2 - checksum: d97f3183b1dfcd8ce9c0e37e18e87fd31147ed6c8ee0b2c3a089d795e44ee851ca5061db01574f806d54f4e4b70bc694d9ca64578653514e04a28cbc97a1de05 + randombytes: ^2.1.0 + checksum: 3c4f4cb61d0893b988415bdb67243637333f3f574e9e9cc9a006a2ced0b390b0b3b44aef8d51c951272a9002ec50885eefdc0298891bc27eb2fe7510ea87dc4f languageName: node linkType: hard @@ -36069,19 +33433,6 @@ __metadata: languageName: node linkType: hard -"servify@npm:^0.1.12": - version: 0.1.12 - resolution: "servify@npm:0.1.12" - dependencies: - body-parser: ^1.16.0 - cors: ^2.8.1 - express: ^4.14.0 - request: ^2.79.0 - xhr: ^2.3.3 - checksum: f90e8f4e31b2981b31e3fa8be0b570b0876136b4cf818ba3bfb65e1bfb3c54cb90a0c30898a7c2974b586800bd26ff525c838a8c170148d9e6674c2170f535d8 - languageName: node - linkType: hard - "set-blocking@npm:^2.0.0": version: 2.0.0 resolution: "set-blocking@npm:2.0.0" @@ -36096,15 +33447,26 @@ __metadata: languageName: node linkType: hard -"set-value@npm:^2.0.0, set-value@npm:^2.0.1": - version: 2.0.1 - resolution: "set-value@npm:2.0.1" +"set-function-length@npm:^1.1.1": + version: 1.1.1 + resolution: "set-function-length@npm:1.1.1" dependencies: - extend-shallow: ^2.0.1 - is-extendable: ^0.1.1 - is-plain-object: ^2.0.3 - split-string: ^3.0.1 - checksum: 09a4bc72c94641aeae950eb60dc2755943b863780fcc32e441eda964b64df5e3f50603d5ebdd33394ede722528bd55ed43aae26e9df469b4d32e2292b427b601 + define-data-property: ^1.1.1 + get-intrinsic: ^1.2.1 + gopd: ^1.0.1 + has-property-descriptors: ^1.0.0 + checksum: c131d7569cd7e110cafdfbfbb0557249b538477624dfac4fc18c376d879672fa52563b74029ca01f8f4583a8acb35bb1e873d573a24edb80d978a7ee607c6e06 + languageName: node + linkType: hard + +"set-function-name@npm:^2.0.0": + version: 2.0.1 + resolution: "set-function-name@npm:2.0.1" + dependencies: + define-data-property: ^1.0.1 + functions-have-names: ^1.2.3 + has-property-descriptors: ^1.0.0 + checksum: 4975d17d90c40168eee2c7c9c59d023429f0a1690a89d75656306481ece0c3c1fb1ebcc0150ea546d1913e35fbd037bace91372c69e543e51fc5d1f31a9fa126 languageName: node linkType: hard @@ -36150,6 +33512,23 @@ __metadata: languageName: node linkType: hard +"sharp@npm:^0.32.6": + version: 0.32.6 + resolution: "sharp@npm:0.32.6" + dependencies: + color: ^4.2.3 + detect-libc: ^2.0.2 + node-addon-api: ^6.1.0 + node-gyp: latest + prebuild-install: ^7.1.1 + semver: ^7.5.4 + simple-get: ^4.0.1 + tar-fs: ^3.0.4 + tunnel-agent: ^0.6.0 + checksum: 0cca1d16b1920800c0e22d27bc6305f4c67c9ebe44f67daceb30bf645ae39e7fb7dfbd7f5d6cd9f9eebfddd87ac3f7e2695f4eb906d19b7a775286238e6a29fc + languageName: node + linkType: hard + "shebang-command@npm:^1.2.0": version: 1.2.0 resolution: "shebang-command@npm:1.2.0" @@ -36252,14 +33631,32 @@ __metadata: languageName: node linkType: hard -"simple-get@npm:^2.7.0": - version: 2.8.2 - resolution: "simple-get@npm:2.8.2" +"simple-get@npm:^4.0.0, simple-get@npm:^4.0.1": + version: 4.0.1 + resolution: "simple-get@npm:4.0.1" dependencies: - decompress-response: ^3.3.0 + decompress-response: ^6.0.0 once: ^1.3.1 simple-concat: ^1.0.0 - checksum: 230bd931d3198f21a5a1a566687a5ee1ef651b13b61c7a01b547b2a0c2bf72769b5fe14a3b4dd518e99a18ba1002ba8af3901c0e61e8a0d1e7631a3c2eb1f7a9 + checksum: e4132fd27cf7af230d853fa45c1b8ce900cb430dd0a3c6d3829649fe4f2b26574c803698076c4006450efb0fad2ba8c5455fbb5755d4b0a5ec42d4f12b31d27e + languageName: node + linkType: hard + +"simple-swizzle@npm:^0.2.2": + version: 0.2.2 + resolution: "simple-swizzle@npm:0.2.2" + dependencies: + is-arrayish: ^0.3.1 + checksum: a7f3f2ab5c76c4472d5c578df892e857323e452d9f392e1b5cf74b74db66e6294a1e1b8b390b519fa1b96b5b613f2a37db6cffef52c3f1f8f3c5ea64eb2d54c0 + languageName: node + linkType: hard + +"simple-update-notifier@npm:^2.0.0": + version: 2.0.0 + resolution: "simple-update-notifier@npm:2.0.0" + dependencies: + semver: ^7.5.3 + checksum: 9ba00d38ce6a29682f64a46213834e4eb01634c2f52c813a9a7b8873ca49cdbb703696f3290f3b27dc067de6d9418b0b84bef22c3eb074acf352529b2d6c27fd languageName: node linkType: hard @@ -36281,13 +33678,6 @@ __metadata: languageName: node linkType: hard -"slash@npm:^2.0.0": - version: 2.0.0 - resolution: "slash@npm:2.0.0" - checksum: 512d4350735375bd11647233cb0e2f93beca6f53441015eea241fe784d8068281c3987fbaa93e7ef1c38df68d9c60013045c92837423c69115297d6169aa85e6 - languageName: node - linkType: hard - "slash@npm:^3.0.0": version: 3.0.0 resolution: "slash@npm:3.0.0" @@ -36376,42 +33766,6 @@ __metadata: languageName: node linkType: hard -"snapdragon-node@npm:^2.0.1": - version: 2.1.1 - resolution: "snapdragon-node@npm:2.1.1" - dependencies: - define-property: ^1.0.0 - isobject: ^3.0.0 - snapdragon-util: ^3.0.1 - checksum: 9bb57d759f9e2a27935dbab0e4a790137adebace832b393e350a8bf5db461ee9206bb642d4fe47568ee0b44080479c8b4a9ad0ebe3712422d77edf9992a672fd - languageName: node - linkType: hard - -"snapdragon-util@npm:^3.0.1": - version: 3.0.1 - resolution: "snapdragon-util@npm:3.0.1" - dependencies: - kind-of: ^3.2.0 - checksum: 684997dbe37ec995c03fd3f412fba2b711fc34cb4010452b7eb668be72e8811a86a12938b511e8b19baf853b325178c56d8b78d655305e5cfb0bb8b21677e7b7 - languageName: node - linkType: hard - -"snapdragon@npm:^0.8.1": - version: 0.8.2 - resolution: "snapdragon@npm:0.8.2" - dependencies: - base: ^0.11.1 - debug: ^2.2.0 - define-property: ^0.2.5 - extend-shallow: ^2.0.1 - map-cache: ^0.2.2 - source-map: ^0.5.6 - source-map-resolve: ^0.5.0 - use: ^3.1.0 - checksum: a197f242a8f48b11036563065b2487e9b7068f50a20dd81d9161eca6af422174fc158b8beeadbe59ce5ef172aa5718143312b3aebaae551c124b7824387c8312 - languageName: node - linkType: hard - "socks-proxy-agent@npm:^7.0.0": version: 7.0.0 resolution: "socks-proxy-agent@npm:7.0.0" @@ -36440,13 +33794,6 @@ __metadata: languageName: node linkType: hard -"source-list-map@npm:^2.0.0": - version: 2.0.1 - resolution: "source-list-map@npm:2.0.1" - checksum: 806efc6f75e7cd31e4815e7a3aaf75a45c704871ea4075cb2eb49882c6fca28998f44fc5ac91adb6de03b2882ee6fb02f951fdc85e6a22b338c32bfe19557938 - languageName: node - linkType: hard - "source-map-js@npm:^1.0.2": version: 1.0.2 resolution: "source-map-js@npm:1.0.2" @@ -36454,20 +33801,7 @@ __metadata: languageName: node linkType: hard -"source-map-resolve@npm:^0.5.0": - version: 0.5.3 - resolution: "source-map-resolve@npm:0.5.3" - dependencies: - atob: ^2.1.2 - decode-uri-component: ^0.2.0 - resolve-url: ^0.2.1 - source-map-url: ^0.4.0 - urix: ^0.1.0 - checksum: c73fa44ac00783f025f6ad9e038ab1a2e007cd6a6b86f47fe717c3d0765b4a08d264f6966f3bd7cd9dbcd69e4832783d5472e43247775b2a550d6f2155d24bae - languageName: node - linkType: hard - -"source-map-support@npm:^0.5.16, source-map-support@npm:~0.5.12, source-map-support@npm:~0.5.20": +"source-map-support@npm:^0.5.16, source-map-support@npm:~0.5.20": version: 0.5.21 resolution: "source-map-support@npm:0.5.21" dependencies: @@ -36477,13 +33811,6 @@ __metadata: languageName: node linkType: hard -"source-map-url@npm:^0.4.0": - version: 0.4.1 - resolution: "source-map-url@npm:0.4.1" - checksum: 64c5c2c77aff815a6e61a4120c309ae4cac01298d9bcbb3deb1b46a4dd4c46d4a1eaeda79ec9f684766ae80e8dc86367b89326ce9dd2b89947bd9291fc1ac08c - languageName: node - linkType: hard - "source-map@npm:0.6.1, source-map@npm:^0.6.0, source-map@npm:^0.6.1, source-map@npm:~0.6.0, source-map@npm:~0.6.1": version: 0.6.1 resolution: "source-map@npm:0.6.1" @@ -36491,7 +33818,7 @@ __metadata: languageName: node linkType: hard -"source-map@npm:^0.5.0, source-map@npm:^0.5.6, source-map@npm:^0.5.7": +"source-map@npm:^0.5.0, source-map@npm:^0.5.7": version: 0.5.7 resolution: "source-map@npm:0.5.7" checksum: 5dc2043b93d2f194142c7f38f74a24670cd7a0063acdaf4bf01d2964b402257ae843c2a8fa822ad5b71013b5fcafa55af7421383da919752f22ff488bc553f4d @@ -36600,15 +33927,6 @@ __metadata: languageName: node linkType: hard -"split-string@npm:^3.0.1, split-string@npm:^3.0.2": - version: 3.1.0 - resolution: "split-string@npm:3.1.0" - dependencies: - extend-shallow: ^3.0.0 - checksum: ae5af5c91bdc3633628821bde92fdf9492fa0e8a63cf6a0376ed6afde93c701422a1610916f59be61972717070119e848d10dfbbd5024b7729d6a71972d2a84c - languageName: node - linkType: hard - "split2@npm:^3.1.0": version: 3.2.2 resolution: "split2@npm:3.2.2" @@ -36685,24 +34003,6 @@ __metadata: languageName: node linkType: hard -"ssri@npm:^6.0.1": - version: 6.0.2 - resolution: "ssri@npm:6.0.2" - dependencies: - figgy-pudding: ^3.5.1 - checksum: 7c2e5d442f6252559c8987b7114bcf389fe5614bf65de09ba3e6f9a57b9b65b2967de348fcc3acccff9c069adb168140dd2c5fc2f6f4a779e604a27ef1f7d551 - languageName: node - linkType: hard - -"ssri@npm:^8.0.1": - version: 8.0.1 - resolution: "ssri@npm:8.0.1" - dependencies: - minipass: ^3.1.1 - checksum: bc447f5af814fa9713aa201ec2522208ae0f4d8f3bda7a1f445a797c7b929a02720436ff7c478fb5edc4045adb02b1b88d2341b436a80798734e2494f1067b36 - languageName: node - linkType: hard - "ssri@npm:^9.0.0": version: 9.0.1 resolution: "ssri@npm:9.0.1" @@ -36712,13 +34012,6 @@ __metadata: languageName: node linkType: hard -"stable@npm:^0.1.8": - version: 0.1.8 - resolution: "stable@npm:0.1.8" - checksum: 2ff482bb100285d16dd75cd8f7c60ab652570e8952c0bfa91828a2b5f646a0ff533f14596ea4eabd48bb7f4aeea408dce8f8515812b975d958a4cc4fa6b9dfeb - languageName: node - linkType: hard - "stack-utils@npm:^2.0.2": version: 2.0.5 resolution: "stack-utils@npm:2.0.5" @@ -36760,23 +34053,6 @@ __metadata: languageName: node linkType: hard -"state-toggle@npm:^1.0.0": - version: 1.0.3 - resolution: "state-toggle@npm:1.0.3" - checksum: 17398af928413e8d8b866cf0c81fd1b1348bb7d65d8983126ff6ff2317a80d6ee023484fba0c54d8169f5aa544f125434a650ae3a71eddc935cae307d4692b4f - languageName: node - linkType: hard - -"static-extend@npm:^0.1.1": - version: 0.1.2 - resolution: "static-extend@npm:0.1.2" - dependencies: - define-property: ^0.2.5 - object-copy: ^0.1.0 - checksum: 8657485b831f79e388a437260baf22784540417a9b29e11572c87735df24c22b84eda42107403a64b30861b2faf13df9f7fc5525d51f9d1d2303aba5cbf4e12c - languageName: node - linkType: hard - "statuses@npm:2.0.1, statuses@npm:^2.0.0": version: 2.0.1 resolution: "statuses@npm:2.0.1" @@ -36784,7 +34060,7 @@ __metadata: languageName: node linkType: hard -"statuses@npm:>= 1.5.0 < 2, statuses@npm:~1.5.0": +"statuses@npm:>= 1.5.0 < 2": version: 1.5.0 resolution: "statuses@npm:1.5.0" checksum: c469b9519de16a4bb19600205cffb39ee471a5f17b82589757ca7bd40a8d92ebb6ed9f98b5a540c5d302ccbc78f15dc03cc0280dd6e00df1335568a5d5758a5c @@ -36798,6 +34074,15 @@ __metadata: languageName: node linkType: hard +"stop-iteration-iterator@npm:^1.0.0": + version: 1.0.0 + resolution: "stop-iteration-iterator@npm:1.0.0" + dependencies: + internal-slot: ^1.0.4 + checksum: d04173690b2efa40e24ab70e5e51a3ff31d56d699550cfad084104ab3381390daccb36652b25755e420245f3b0737de66c1879eaa2a8d4fc0a78f9bf892fcb42 + languageName: node + linkType: hard + "stoppable@npm:^1.1.0": version: 1.1.0 resolution: "stoppable@npm:1.1.0" @@ -36805,58 +34090,10 @@ __metadata: languageName: node linkType: hard -"store2@npm:^2.12.0": - version: 2.13.2 - resolution: "store2@npm:2.13.2" - checksum: 9e760ea2a7f56eae47d5bafe507511b25ad983bba901e1e0c5f65713e631c15aafb8e031c658047af53c2008a5d21cb6c43f2383673b3493144e8e1ead5c8f91 - languageName: node - linkType: hard - -"storybook-addon-designs@npm:^6.3.1": - version: 6.3.1 - resolution: "storybook-addon-designs@npm:6.3.1" - dependencies: - "@figspec/react": ^1.0.0 - checksum: 63d91358540a59801028b4fe2fe61a2cad52ac2354efde0959f081379045230af4ea6dea6a8abddae2a7eb14699fd04024dec44b6fd396065e0e585d31980635 - languageName: node - linkType: hard - -"storybook-addon-next-router@npm:^4.0.2": - version: 4.0.2 - resolution: "storybook-addon-next-router@npm:4.0.2" - dependencies: - tslib: 2.4.0 - peerDependencies: - "@storybook/addon-actions": ^6.0.0 - "@storybook/addons": ^6.0.0 - "@storybook/client-api": ^6.0.0 - next: ^9.0.0 || ^10.0.0 || ^11.0.0 || ^12.0.0 || ^13.0.0 - react: ^16.8.0 || ^17.0.0 || ^18.0.0 - react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 - checksum: 5e3d1b2510700c21d175e10d56bcad970a8b390715bbd8e9767528e60165c4bc651ef94a7a854f042185454c51c57d884b03c625c0ee28000d3916e11a6d865f - languageName: node - linkType: hard - -"storybook-addon-next@npm:^1.6.9": - version: 1.6.9 - resolution: "storybook-addon-next@npm:1.6.9" - dependencies: - "@storybook/addons": ^6.4.10 - image-size: ^1.0.0 - loader-utils: ^3.2.0 - postcss-loader: ^6.2.1 - resolve-url-loader: ^5.0.0 - sass-loader: ^12.4.0 - semver: ^7.3.5 - tsconfig-paths: ^4.0.0 - tsconfig-paths-webpack-plugin: ^4.0.0 - peerDependencies: - "@storybook/addon-actions": ^6.0.0 - "@storybook/addons": ^6.0.0 - next: ^9.0.0 || ^10.0.0 || ^11.0.0 || ^12.0.0 - react: ^16.8.0 || ^17.0.0 || ^18.0.0 - react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 - checksum: 040cc66a835b51449267eb339303635dd0f88f8dcb49e198a3fadd2ef220acd80e778ad55827d64bc372db7a470d58a8c68bf68e32608adef97780ce59f9900c +"store2@npm:^2.14.2": + version: 2.14.2 + resolution: "store2@npm:2.14.2" + checksum: 6f270fc5bab99b63f45fcc7bd8b99c2714b4adf880f557ed7ffb5ed3987131251165bccde425a00928aaf044870aee79ddeef548576d093c68703ed2edec45d7 languageName: node linkType: hard @@ -36880,15 +34117,14 @@ __metadata: languageName: node linkType: hard -"storybook-i18n@npm:^1.1.2": - version: 1.1.4 - resolution: "storybook-i18n@npm:1.1.4" +"storybook-i18n@npm:2.0.13": + version: 2.0.13 + resolution: "storybook-i18n@npm:2.0.13" peerDependencies: - "@storybook/addons": ">=6.5.0" - "@storybook/api": ">=6.5.0" - "@storybook/components": ">=6.5.0" - "@storybook/core-events": ">=6.5.0" - "@storybook/theming": ">=6.5.0" + "@storybook/components": ^7.0.0 + "@storybook/manager-api": ^7.0.0 + "@storybook/preview-api": ^7.0.0 + "@storybook/types": ^7.0.0 react: ^16.8.0 || ^17.0.0 || ^18.0.0 react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 peerDependenciesMeta: @@ -36896,43 +34132,54 @@ __metadata: optional: true react-dom: optional: true - checksum: bcc79a35677936ff3ab9545ea0ef348e025c37fa5bb4e7a60a8560144969c21ebd5472857265e175a1b049b1462e90c1b4dfde645b2cca419c43e97cdbd8e4d0 + checksum: 024a6d2bf1c3c416e55c7242abc8caa5ecea7f03e59d581b88a73d603831a05ae68888ffb712f37fedd15dc50274275bbcf0c692824e0f491ceb0b2ac348a3d7 languageName: node linkType: hard -"storybook-react-i18next@npm:^1.1.2": - version: 1.1.2 - resolution: "storybook-react-i18next@npm:1.1.2" +"storybook-react-i18next@npm:^2.0.9": + version: 2.0.9 + resolution: "storybook-react-i18next@npm:2.0.9" dependencies: - storybook-i18n: ^1.1.2 + storybook-i18n: 2.0.13 peerDependencies: - "@storybook/addons": ">=6.5.0" - "@storybook/api": ">=6.5.0" - "@storybook/components": ">=6.5.0" - "@storybook/core-events": ">=6.5.0" - "@storybook/theming": ">=6.5.0" - i18next: ">=21.0.0" - i18next-browser-languagedetector: ^6.1.4 - i18next-http-backend: ^1.4.0 + "@storybook/components": ^7.0.0 + "@storybook/manager-api": ^7.0.0 + "@storybook/preview-api": ^7.0.0 + "@storybook/types": ^7.0.0 + i18next: ^22.0.0 || ^23.0.0 + i18next-browser-languagedetector: ^7.0.0 + i18next-http-backend: ^2.0.0 react: ^16.8.0 || ^17.0.0 || ^18.0.0 react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 - react-i18next: ^11.17.1 + react-i18next: ^12.0.0 || ^13.0.0 peerDependenciesMeta: react: optional: true react-dom: optional: true - checksum: 05688901b5af0fed702ca4b80422f5e1d91beb334c562a0bbe7fccb5f16447ebca328b64a8f3deaee69e19bc0873769a4ea5e7429e6832d8a6fa434986d4f4b8 + checksum: 87f201a8fb61b1c3c1270a14ace69e1aadb0d4e39cca2e2a000385fd056771e3b652adba44b7d2983605af69ac20ef2f54972d372fcdf52ae55fb77a1b0eeec4 languageName: node linkType: hard -"stream-browserify@npm:^2.0.1": - version: 2.0.2 - resolution: "stream-browserify@npm:2.0.2" +"storybook@npm:^7.6.3": + version: 7.6.3 + resolution: "storybook@npm:7.6.3" dependencies: - inherits: ~2.0.1 - readable-stream: ^2.0.2 - checksum: 8de7bcab5582e9a931ae1a4768be7efe8fa4b0b95fd368d16d8cf3e494b897d6b0a7238626de5d71686e53bddf417fd59d106cfa3af0ec055f61a8d1f8fc77b3 + "@storybook/cli": 7.6.3 + bin: + sb: ./index.js + storybook: ./index.js + checksum: b4b4641c6ce745379fa3a253182322692274d8e340be53c772e6e65b29566d6a72376422f5714c869f0e9239d83491539a7ff5a9a269440c4897d7cec6c0fb4e + languageName: node + linkType: hard + +"stream-browserify@npm:^3.0.0": + version: 3.0.0 + resolution: "stream-browserify@npm:3.0.0" + dependencies: + inherits: ~2.0.4 + readable-stream: ^3.5.0 + checksum: 4c47ef64d6f03815a9ca3874e2319805e8e8a85f3550776c47ce523b6f4c6cd57f40e46ec6a9ab8ad260fde61863c2718f250d3bedb3fe9052444eb9abfd9921 languageName: node linkType: hard @@ -36945,26 +34192,15 @@ __metadata: languageName: node linkType: hard -"stream-each@npm:^1.1.0": - version: 1.2.3 - resolution: "stream-each@npm:1.2.3" - dependencies: - end-of-stream: ^1.1.0 - stream-shift: ^1.0.0 - checksum: f243de78e9fcc60757994efc4e8ecae9f01a4b2c6a505d786b11fcaa68b1a75ca54afc1669eac9e08f19ff0230792fc40d0f3e3e2935d76971b4903af18b76ab - languageName: node - linkType: hard - -"stream-http@npm:^2.7.2": - version: 2.8.3 - resolution: "stream-http@npm:2.8.3" +"stream-http@npm:^3.2.0": + version: 3.2.0 + resolution: "stream-http@npm:3.2.0" dependencies: builtin-status-codes: ^3.0.0 - inherits: ^2.0.1 - readable-stream: ^2.3.6 - to-arraybuffer: ^1.0.0 - xtend: ^4.0.0 - checksum: f57dfaa21a015f72e6ce6b199cf1762074cfe8acf0047bba8f005593754f1743ad0a91788f95308d9f3829ad55742399ad27b4624432f2752a08e62ef4346e05 + inherits: ^2.0.4 + readable-stream: ^3.6.0 + xtend: ^4.0.2 + checksum: c9b78453aeb0c84fcc59555518ac62bacab9fa98e323e7b7666e5f9f58af8f3155e34481078509b02929bd1268427f664d186604cdccee95abc446099b339f83 languageName: node linkType: hard @@ -36991,6 +34227,16 @@ __metadata: languageName: node linkType: hard +"streamx@npm:^2.15.0": + version: 2.15.5 + resolution: "streamx@npm:2.15.5" + dependencies: + fast-fifo: ^1.1.0 + queue-tick: ^1.0.1 + checksum: 52e0ec94026d67c9e2e2e1090f05e5b138c2f2822462d9a8ef4a4805625a31d103e55ea5267fcd9bfe041374926424e42aec2dda28a85cb9de42c2a16d416d94 + languageName: node + linkType: hard + "strict-event-emitter@npm:^0.2.0, strict-event-emitter@npm:^0.2.4": version: 0.2.4 resolution: "strict-event-emitter@npm:0.2.4" @@ -37000,13 +34246,6 @@ __metadata: languageName: node linkType: hard -"strict-uri-encode@npm:^1.0.0": - version: 1.1.0 - resolution: "strict-uri-encode@npm:1.1.0" - checksum: 9466d371f7b36768d43f7803f26137657559e4c8b0161fb9e320efb8edba3ae22f8e99d4b0d91da023b05a13f62ec5412c3f4f764b5788fac11d1fea93720bb3 - languageName: node - linkType: hard - "string-argv@npm:^0.3.1": version: 0.3.1 resolution: "string-argv@npm:0.3.1" @@ -37064,7 +34303,7 @@ __metadata: languageName: node linkType: hard -"string.prototype.matchall@npm:^4.0.0 || ^3.0.1, string.prototype.matchall@npm:^4.0.7": +"string.prototype.matchall@npm:^4.0.7": version: 4.0.7 resolution: "string.prototype.matchall@npm:4.0.7" dependencies: @@ -37107,17 +34346,6 @@ __metadata: languageName: node linkType: hard -"string.prototype.padstart@npm:^3.0.0": - version: 3.1.3 - resolution: "string.prototype.padstart@npm:3.1.3" - dependencies: - call-bind: ^1.0.2 - define-properties: ^1.1.3 - es-abstract: ^1.19.1 - checksum: 8bf8bc1d25edc79c4db285aa8dfd5d269dac4024631e8ae13202c2126348a07e00b153d6bf7b858c5bd716e44675a7fbb50baedd3e8970e1034bb86be22c9475 - languageName: node - linkType: hard - "string.prototype.trimend@npm:^1.0.4": version: 1.0.4 resolution: "string.prototype.trimend@npm:1.0.4" @@ -37160,7 +34388,7 @@ __metadata: languageName: node linkType: hard -"string_decoder@npm:^1.0.0, string_decoder@npm:^1.1.1": +"string_decoder@npm:^1.1.1, string_decoder@npm:^1.3.0": version: 1.3.0 resolution: "string_decoder@npm:1.3.0" dependencies: @@ -37215,7 +34443,7 @@ __metadata: languageName: node linkType: hard -"strip-ansi@npm:^3.0.0, strip-ansi@npm:^3.0.1": +"strip-ansi@npm:^3.0.0": version: 3.0.1 resolution: "strip-ansi@npm:3.0.1" dependencies: @@ -37240,15 +34468,6 @@ __metadata: languageName: node linkType: hard -"strip-bom@npm:^2.0.0": - version: 2.0.0 - resolution: "strip-bom@npm:2.0.0" - dependencies: - is-utf8: ^0.2.0 - checksum: 08efb746bc67b10814cd03d79eb31bac633393a782e3f35efbc1b61b5165d3806d03332a97f362822cf0d4dd14ba2e12707fcff44fe1c870c48a063a0c9e4944 - languageName: node - linkType: hard - "strip-bom@npm:^3.0.0": version: 3.0.0 resolution: "strip-bom@npm:3.0.0" @@ -37270,15 +34489,6 @@ __metadata: languageName: node linkType: hard -"strip-hex-prefix@npm:1.0.0": - version: 1.0.0 - resolution: "strip-hex-prefix@npm:1.0.0" - dependencies: - is-hex-prefixed: 1.0.0 - checksum: 4cafe7caee1d281d3694d14920fd5d3c11adf09371cef7e2ccedd5b83efd9e9bd2219b5d6ce6e809df6e0f437dc9d30db1192116580875698aad164a6d6b285b - languageName: node - linkType: hard - "strip-indent@npm:3.0.0, strip-indent@npm:^3.0.0": version: 3.0.0 resolution: "strip-indent@npm:3.0.0" @@ -37288,24 +34498,29 @@ __metadata: languageName: node linkType: hard -"strip-indent@npm:^1.0.1": - version: 1.0.1 - resolution: "strip-indent@npm:1.0.1" +"strip-indent@npm:^4.0.0": + version: 4.0.0 + resolution: "strip-indent@npm:4.0.0" dependencies: - get-stdin: ^4.0.1 - bin: - strip-indent: cli.js - checksum: 81ad9a0b8a558bdbd05b66c6c437b9ab364aa2b5479ed89969ca7908e680e21b043d40229558c434b22b3d640622e39b66288e0456d601981ac9289de9700fbd + min-indent: ^1.0.1 + checksum: 06cbcd93da721c46bc13caeb1c00af93a9b18146a1c95927672d2decab6a25ad83662772417cea9317a2507fb143253ecc23c4415b64f5828cef9b638a744598 languageName: node linkType: hard -"strip-json-comments@npm:^3.1.0, strip-json-comments@npm:^3.1.1": +"strip-json-comments@npm:^3.0.1, strip-json-comments@npm:^3.1.0, strip-json-comments@npm:^3.1.1": version: 3.1.1 resolution: "strip-json-comments@npm:3.1.1" checksum: 492f73e27268f9b1c122733f28ecb0e7e8d8a531a6662efbd08e22cccb3f9475e90a1b82cab06a392f6afae6d2de636f977e231296400d0ec5304ba70f166443 languageName: node linkType: hard +"strip-json-comments@npm:~2.0.1": + version: 2.0.1 + resolution: "strip-json-comments@npm:2.0.1" + checksum: 1074ccb63270d32ca28edfb0a281c96b94dc679077828135141f27d52a5a398ef5e78bcf22809d23cadc2b81dfbe345eb5fd8699b385c8b1128907dec4a7d1e1 + languageName: node + linkType: hard + "strip-literal@npm:^1.0.1": version: 1.0.1 resolution: "strip-literal@npm:1.0.1" @@ -37359,36 +34574,12 @@ __metadata: languageName: node linkType: hard -"style-loader@npm:^1.3.0": - version: 1.3.0 - resolution: "style-loader@npm:1.3.0" - dependencies: - loader-utils: ^2.0.0 - schema-utils: ^2.7.0 +"style-loader@npm:^3.3.1": + version: 3.3.3 + resolution: "style-loader@npm:3.3.3" peerDependencies: - webpack: ^4.0.0 || ^5.0.0 - checksum: 1be9e8705307f5b8eb89e80f3703fa27296dccec349d790eace7aabe212f08c7c8f3ea6b6cb97bc53e82fbebfb9aa0689259671a8315f4655e24a850781e062a - languageName: node - linkType: hard - -"style-loader@npm:^2.0.0": - version: 2.0.0 - resolution: "style-loader@npm:2.0.0" - dependencies: - loader-utils: ^2.0.0 - schema-utils: ^3.0.0 - peerDependencies: - webpack: ^4.0.0 || ^5.0.0 - checksum: 21425246a5a8f14d1625a657a3a56f8a323193fa341a71af818a2ed2a429efa2385a328b4381cf2f12c2d0e6380801eb9e0427ed9c3a10ff95c86e383184d632 - languageName: node - linkType: hard - -"style-to-object@npm:0.3.0, style-to-object@npm:^0.3.0": - version: 0.3.0 - resolution: "style-to-object@npm:0.3.0" - dependencies: - inline-style-parser: 0.1.1 - checksum: 4d7084015207f2a606dfc10c29cb5ba569f2fe8005551df7396110dd694d6ff650f2debafa95bd5d147dfb4ca50f57868e2a7f91bf5d11ef734fe7ccbd7abf59 + webpack: ^5.0.0 + checksum: f59c953f56f6a935bd6a1dfa409f1128fed2b66b48ce4a7a75b85862a7156e5e90ab163878962762f528ec4d510903d828da645e143fbffd26f055dc1c094078 languageName: node linkType: hard @@ -37528,17 +34719,6 @@ __metadata: languageName: node linkType: hard -"sveltedoc-parser@npm:^4.2.1": - version: 4.2.1 - resolution: "sveltedoc-parser@npm:4.2.1" - dependencies: - eslint: 8.4.1 - espree: 9.2.0 - htmlparser2-svelte: 4.1.0 - checksum: 26929081b32474df5db3ddde6d12c6732f6f40bfa353da6b988ca9d15260ee5234ba4a2e2294e5d6da741522905b8ec6ff0058d502ab88f5e76f92231ef98527 - languageName: node - linkType: hard - "svix-fetch@npm:^3.0.0": version: 3.0.0 resolution: "svix-fetch@npm:3.0.0" @@ -37684,22 +34864,13 @@ __metadata: languageName: node linkType: hard -"swarm-js@npm:^0.1.40": - version: 0.1.40 - resolution: "swarm-js@npm:0.1.40" - dependencies: - bluebird: ^3.5.0 - buffer: ^5.0.5 - eth-lib: ^0.1.26 - fs-extra: ^4.0.2 - got: ^7.1.0 - mime-types: ^2.1.16 - mkdirp-promise: ^5.0.1 - mock-fs: ^4.1.0 - setimmediate: ^1.0.5 - tar: ^4.0.2 - xhr-request: ^1.0.1 - checksum: 1de56e0cb02c1c80e041efb2bd2cc7250c5451c3016967266c16d5c1e8c74fe5c3aae45dc46065b1f4d77667a8453b967961ec58b3975469522f566aa840a914 +"swc-loader@npm:^0.2.3": + version: 0.2.3 + resolution: "swc-loader@npm:0.2.3" + peerDependencies: + "@swc/core": ^1.2.147 + webpack: ">=2" + checksum: 010d84d399525c0185d36d62c86c55ae017e7a90046bc8a39be4b7e07526924037868049f6037bc966da98151cb2600934b96a66279b742d3c413a718b427251 languageName: node linkType: hard @@ -37719,18 +34890,6 @@ __metadata: languageName: node linkType: hard -"symbol.prototype.description@npm:^1.0.0": - version: 1.0.5 - resolution: "symbol.prototype.description@npm:1.0.5" - dependencies: - call-bind: ^1.0.2 - get-symbol-description: ^1.0.0 - has-symbols: ^1.0.2 - object.getownpropertydescriptors: ^2.1.2 - checksum: 2bf20a5fbc74bdda7133e0915b978bf50bf5e2a48dd2174885ba6cd623d001ca18f7dbb1e01a3f3ea3a34f05030175ebee3dcb357f099a61af6e964f3281e9b9 - languageName: node - linkType: hard - "synchronous-promise@npm:^2.0.15": version: 2.0.15 resolution: "synchronous-promise@npm:2.0.15" @@ -37827,21 +34986,37 @@ __metadata: languageName: node linkType: hard -"tapable@npm:^1.0.0, tapable@npm:^1.1.3": - version: 1.1.3 - resolution: "tapable@npm:1.1.3" - checksum: 53ff4e7c3900051c38cc4faab428ebfd7e6ad0841af5a7ac6d5f3045c5b50e88497bfa8295b4b3fbcadd94993c9e358868b78b9fb249a76cb8b018ac8dccafd7 - languageName: node - linkType: hard - -"tapable@npm:^2.0.0, tapable@npm:^2.1.1, tapable@npm:^2.2.0": +"tapable@npm:^2.0.0, tapable@npm:^2.1.1, tapable@npm:^2.2.0, tapable@npm:^2.2.1": version: 2.2.1 resolution: "tapable@npm:2.2.1" checksum: 3b7a1b4d86fa940aad46d9e73d1e8739335efd4c48322cb37d073eb6f80f5281889bf0320c6d8ffcfa1a0dd5bfdbd0f9d037e252ef972aca595330538aac4d51 languageName: node linkType: hard -"tar-stream@npm:^2.2.0": +"tar-fs@npm:^2.0.0, tar-fs@npm:^2.1.1": + version: 2.1.1 + resolution: "tar-fs@npm:2.1.1" + dependencies: + chownr: ^1.1.1 + mkdirp-classic: ^0.5.2 + pump: ^3.0.0 + tar-stream: ^2.1.4 + checksum: f5b9a70059f5b2969e65f037b4e4da2daf0fa762d3d232ffd96e819e3f94665dbbbe62f76f084f1acb4dbdcce16c6e4dac08d12ffc6d24b8d76720f4d9cf032d + languageName: node + linkType: hard + +"tar-fs@npm:^3.0.4": + version: 3.0.4 + resolution: "tar-fs@npm:3.0.4" + dependencies: + mkdirp-classic: ^0.5.2 + pump: ^3.0.0 + tar-stream: ^3.1.5 + checksum: dcf4054f9e92ca0efe61c2b3f612914fb259a47900aa908a63106513a6d006c899b426ada53eb88d9dbbf089b5724c8e90b96a2c4ca6171845fa14203d734e30 + languageName: node + linkType: hard + +"tar-stream@npm:^2.1.4, tar-stream@npm:^2.2.0": version: 2.2.0 resolution: "tar-stream@npm:2.2.0" dependencies: @@ -37854,32 +35029,14 @@ __metadata: languageName: node linkType: hard -"tar@npm:^4.0.2": - version: 4.4.19 - resolution: "tar@npm:4.4.19" +"tar-stream@npm:^3.1.5": + version: 3.1.6 + resolution: "tar-stream@npm:3.1.6" dependencies: - chownr: ^1.1.4 - fs-minipass: ^1.2.7 - minipass: ^2.9.0 - minizlib: ^1.3.3 - mkdirp: ^0.5.5 - safe-buffer: ^5.2.1 - yallist: ^3.1.1 - checksum: 423c8259b17f8f612cef9c96805d65f90ba9a28e19be582cd9d0fcb217038219f29b7547198e8fd617da5f436376d6a74b99827acd1238d2f49cf62330f9664e - languageName: node - linkType: hard - -"tar@npm:^6.0.2": - version: 6.1.11 - resolution: "tar@npm:6.1.11" - dependencies: - chownr: ^2.0.0 - fs-minipass: ^2.0.0 - minipass: ^3.0.0 - minizlib: ^2.1.1 - mkdirp: ^1.0.3 - yallist: ^4.0.0 - checksum: a04c07bb9e2d8f46776517d4618f2406fb977a74d914ad98b264fc3db0fe8224da5bec11e5f8902c5b9bcb8ace22d95fbe3c7b36b8593b7dfc8391a25898f32f + b4a: ^1.6.4 + fast-fifo: ^1.2.0 + streamx: ^2.15.0 + checksum: f3627f918581976e954ff03cb8d370551053796b82564f8c7ca8fac84c48e4d042026d0854fc222171a34ff9c682b72fae91be9c9b0a112d4c54f9e4f443e9c5 languageName: node linkType: hard @@ -37897,6 +35054,20 @@ __metadata: languageName: node linkType: hard +"tar@npm:^6.2.0": + version: 6.2.0 + resolution: "tar@npm:6.2.0" + dependencies: + chownr: ^2.0.0 + fs-minipass: ^2.0.0 + minipass: ^5.0.0 + minizlib: ^2.1.1 + mkdirp: ^1.0.3 + yallist: ^4.0.0 + checksum: db4d9fe74a2082c3a5016630092c54c8375ff3b280186938cfd104f2e089c4fd9bad58688ef6be9cf186a889671bf355c7cda38f09bbf60604b281715ca57f5c + languageName: node + linkType: hard + "tarn@npm:^3.0.2": version: 3.0.2 resolution: "tarn@npm:3.0.2" @@ -37924,19 +35095,12 @@ __metadata: languageName: node linkType: hard -"telejson@npm:^6.0.8": - version: 6.0.8 - resolution: "telejson@npm:6.0.8" +"telejson@npm:^7.2.0": + version: 7.2.0 + resolution: "telejson@npm:7.2.0" dependencies: - "@types/is-function": ^1.0.0 - global: ^4.4.0 - is-function: ^1.0.2 - is-regex: ^1.1.2 - is-symbol: ^1.0.3 - isobject: ^4.0.0 - lodash: ^4.17.21 memoizerific: ^1.11.3 - checksum: 7411a5e78a35720bd0654a544409d3ce467b1dbb2073c73f36476b4c0905d97dbf539d6cbae737bb1fd8c872c2058f2a5450163a15117ed3fa031b2a2b8b33f6 + checksum: 55a3380c9ff3c5ad84581bb6bda28fc33c6b7c4a0c466894637da687639b8db0d21b0ff4c1bc1a7a92ae6b70662549d09e7b9e8b1ec334b2ef93078762ecdfb9 languageName: node linkType: hard @@ -37947,7 +35111,16 @@ __metadata: languageName: node linkType: hard -"tempy@npm:1.0.1": +"temp@npm:^0.8.4": + version: 0.8.4 + resolution: "temp@npm:0.8.4" + dependencies: + rimraf: ~2.6.2 + checksum: f35bed78565355dfdf95f730b7b489728bd6b7e35071bcc6497af7c827fb6c111fbe9063afc7b8cbc19522a072c278679f9a0ee81e684aa2c8617cc0f2e9c191 + languageName: node + linkType: hard + +"tempy@npm:1.0.1, tempy@npm:^1.0.1": version: 1.0.1 resolution: "tempy@npm:1.0.1" dependencies: @@ -37984,53 +35157,15 @@ __metadata: languageName: node linkType: hard -"terser-webpack-plugin@npm:^1.4.3": - version: 1.4.5 - resolution: "terser-webpack-plugin@npm:1.4.5" +"terser-webpack-plugin@npm:^5.3.1, terser-webpack-plugin@npm:^5.3.7": + version: 5.3.9 + resolution: "terser-webpack-plugin@npm:5.3.9" dependencies: - cacache: ^12.0.2 - find-cache-dir: ^2.1.0 - is-wsl: ^1.1.0 - schema-utils: ^1.0.0 - serialize-javascript: ^4.0.0 - source-map: ^0.6.1 - terser: ^4.1.2 - webpack-sources: ^1.4.0 - worker-farm: ^1.7.0 - peerDependencies: - webpack: ^4.0.0 - checksum: 02aada80927d3c8105d69cb00384d307b73aed67d180db5d20023a8d649149f3803ad50f9cd2ef9eb2622005de87e677198ecc5088f51422bfac5d4d57472d0e - languageName: node - linkType: hard - -"terser-webpack-plugin@npm:^4.2.3": - version: 4.2.3 - resolution: "terser-webpack-plugin@npm:4.2.3" - dependencies: - cacache: ^15.0.5 - find-cache-dir: ^3.3.1 - jest-worker: ^26.5.0 - p-limit: ^3.0.2 - schema-utils: ^3.0.0 - serialize-javascript: ^5.0.1 - source-map: ^0.6.1 - terser: ^5.3.4 - webpack-sources: ^1.4.3 - peerDependencies: - webpack: ^4.0.0 || ^5.0.0 - checksum: ec1b3a85e2645c57e359d5e4831f3e1d78eca2a0c94b156db70eb846ae35b5e6e98ad8784b12e153fc273e57445ce69d017075bbe9fc42868a258ef121f11537 - languageName: node - linkType: hard - -"terser-webpack-plugin@npm:^5.0.3": - version: 5.3.6 - resolution: "terser-webpack-plugin@npm:5.3.6" - dependencies: - "@jridgewell/trace-mapping": ^0.3.14 + "@jridgewell/trace-mapping": ^0.3.17 jest-worker: ^27.4.5 schema-utils: ^3.1.1 - serialize-javascript: ^6.0.0 - terser: ^5.14.1 + serialize-javascript: ^6.0.1 + terser: ^5.16.8 peerDependencies: webpack: ^5.1.0 peerDependenciesMeta: @@ -38040,46 +35175,11 @@ __metadata: optional: true uglify-js: optional: true - checksum: 8f3448d7fdb0434ce6a0c09d95c462bfd2f4a5a430233d854163337f734a7f5c07c74513d16081e06d4ca33d366d5b1a36f5444219bc41a7403afd6162107bad + checksum: 41705713d6f9cb83287936b21e27c658891c78c4392159f5148b5623f0e8c48559869779619b058382a4c9758e7820ea034695e57dc7c474b4962b79f553bc5f languageName: node linkType: hard -"terser-webpack-plugin@npm:^5.1.3": - version: 5.3.3 - resolution: "terser-webpack-plugin@npm:5.3.3" - dependencies: - "@jridgewell/trace-mapping": ^0.3.7 - jest-worker: ^27.4.5 - schema-utils: ^3.1.1 - serialize-javascript: ^6.0.0 - terser: ^5.7.2 - peerDependencies: - webpack: ^5.1.0 - peerDependenciesMeta: - "@swc/core": - optional: true - esbuild: - optional: true - uglify-js: - optional: true - checksum: 4b8d508d8a0f6e604addb286975f1fa670f8c3964a67abc03a7cfcfd4cdeca4b07dda6655e1c4425427fb62e4d2b0ca59d84f1b2cd83262ff73616d5d3ccdeb5 - languageName: node - linkType: hard - -"terser@npm:^4.1.2, terser@npm:^4.6.3": - version: 4.8.0 - resolution: "terser@npm:4.8.0" - dependencies: - commander: ^2.20.0 - source-map: ~0.6.1 - source-map-support: ~0.5.12 - bin: - terser: bin/terser - checksum: f980789097d4f856c1ef4b9a7ada37beb0bb022fb8aa3057968862b5864ad7c244253b3e269c9eb0ab7d0caf97b9521273f2d1cf1e0e942ff0016e0583859c71 - languageName: node - linkType: hard - -"terser@npm:^5.10.0, terser@npm:^5.14.1": +"terser@npm:^5.10.0": version: 5.15.1 resolution: "terser@npm:5.15.1" dependencies: @@ -38093,17 +35193,17 @@ __metadata: languageName: node linkType: hard -"terser@npm:^5.3.4, terser@npm:^5.7.2": - version: 5.14.1 - resolution: "terser@npm:5.14.1" +"terser@npm:^5.16.8": + version: 5.25.0 + resolution: "terser@npm:5.25.0" dependencies: - "@jridgewell/source-map": ^0.3.2 - acorn: ^8.5.0 + "@jridgewell/source-map": ^0.3.3 + acorn: ^8.8.2 commander: ^2.20.0 source-map-support: ~0.5.20 bin: terser: bin/terser - checksum: 7b0e51f3d193a11cad82f07e3b0c1d62122eec786f809bdf2a54b865aaa1450872c3a7b6c33b5a40e264834060ffc1d4e197f971a76da5b0137997d756eb7548 + checksum: ddc5ba020060cea976105ea83f5832385297f5091198f10143c1224e35bbb4ad9dfc40ee95d51a8f1290d0a4c7910d66e0ecc4b596402e94ba829bfc58022151 languageName: node linkType: hard @@ -38150,7 +35250,7 @@ __metadata: languageName: node linkType: hard -"through2@npm:^2.0.0": +"through2@npm:^2.0.3": version: 2.0.5 resolution: "through2@npm:2.0.5" dependencies: @@ -38167,14 +35267,7 @@ __metadata: languageName: node linkType: hard -"timed-out@npm:^4.0.0, timed-out@npm:^4.0.1": - version: 4.0.1 - resolution: "timed-out@npm:4.0.1" - checksum: 98efc5d6fc0d2a329277bd4d34f65c1bf44d9ca2b14fd267495df92898f522e6f563c5e9e467c418e0836f5ca1f47a84ca3ee1de79b1cc6fe433834b7f02ec54 - languageName: node - linkType: hard - -"timers-browserify@npm:^2.0.4": +"timers-browserify@npm:^2.0.12": version: 2.0.12 resolution: "timers-browserify@npm:2.0.12" dependencies: @@ -38221,6 +35314,13 @@ __metadata: languageName: node linkType: hard +"tiny-invariant@npm:^1.3.1": + version: 1.3.1 + resolution: "tiny-invariant@npm:1.3.1" + checksum: 872dbd1ff20a21303a2fd20ce3a15602cfa7fcf9b228bd694a52e2938224313b5385a1078cb667ed7375d1612194feaca81c4ecbe93121ca1baebe344de4f84c + languageName: node + linkType: hard + "tiny-warning@npm:^1.0.0, tiny-warning@npm:^1.0.3": version: 1.0.3 resolution: "tiny-warning@npm:1.0.3" @@ -38328,13 +35428,6 @@ __metadata: languageName: node linkType: hard -"to-arraybuffer@npm:^1.0.0": - version: 1.0.1 - resolution: "to-arraybuffer@npm:1.0.1" - checksum: 31433c10b388722729f5da04c6b2a06f40dc84f797bb802a5a171ced1e599454099c6c5bc5118f4b9105e7d049d3ad9d0f71182b77650e4fdb04539695489941 - languageName: node - linkType: hard - "to-fast-properties@npm:^2.0.0": version: 2.0.0 resolution: "to-fast-properties@npm:2.0.0" @@ -38342,25 +35435,6 @@ __metadata: languageName: node linkType: hard -"to-object-path@npm:^0.3.0": - version: 0.3.0 - resolution: "to-object-path@npm:0.3.0" - dependencies: - kind-of: ^3.0.2 - checksum: 9425effee5b43e61d720940fa2b889623f77473d459c2ce3d4a580a4405df4403eec7be6b857455908070566352f9e2417304641ed158dda6f6a365fe3e66d70 - languageName: node - linkType: hard - -"to-regex-range@npm:^2.1.0": - version: 2.1.1 - resolution: "to-regex-range@npm:2.1.1" - dependencies: - is-number: ^3.0.0 - repeat-string: ^1.6.1 - checksum: 46093cc14be2da905cc931e442d280b2e544e2bfdb9a24b3cf821be8d342f804785e5736c108d5be026021a05d7b38144980a61917eee3c88de0a5e710e10320 - languageName: node - linkType: hard - "to-regex-range@npm:^5.0.1": version: 5.0.1 resolution: "to-regex-range@npm:5.0.1" @@ -38370,15 +35444,10 @@ __metadata: languageName: node linkType: hard -"to-regex@npm:^3.0.1, to-regex@npm:^3.0.2": - version: 3.0.2 - resolution: "to-regex@npm:3.0.2" - dependencies: - define-property: ^2.0.2 - extend-shallow: ^3.0.2 - regex-not: ^1.0.2 - safe-regex: ^1.1.0 - checksum: 4ed4a619059b64e204aad84e4e5f3ea82d97410988bcece7cf6cbfdbf193d11bff48cf53842d88b8bb00b1bfc0d048f61f20f0709e6f393fd8fe0122662d9db4 +"tocbot@npm:^4.20.1": + version: 4.23.0 + resolution: "tocbot@npm:4.23.0" + checksum: 04289b9ae5f2b2c6e64342bc549fedf44c81a08070feec547fc073a08f3351f7e08f67f5913c992b664caec335509213787143c8739fbba9e14c486669b62968 languageName: node linkType: hard @@ -38480,13 +35549,6 @@ __metadata: languageName: node linkType: hard -"trim-newlines@npm:^1.0.0": - version: 1.0.0 - resolution: "trim-newlines@npm:1.0.0" - checksum: ed96eea318581c6f894c0a98d0c4f16dcce11a41794ce140a79db55f1cab709cd9117578ee5e49a9b52f41e9cd93eaf3efa6c4bddbc77afbf91128b396fadbc1 - languageName: node - linkType: hard - "trim-newlines@npm:^3.0.0": version: 3.0.1 resolution: "trim-newlines@npm:3.0.1" @@ -38494,27 +35556,6 @@ __metadata: languageName: node linkType: hard -"trim-trailing-lines@npm:^1.0.0": - version: 1.1.4 - resolution: "trim-trailing-lines@npm:1.1.4" - checksum: 5d39d21c0d4b258667012fcd784f73129e148ea1c213b1851d8904f80499fc91df6710c94c7dd49a486a32da2b9cb86020dda79f285a9a2586cfa622f80490c2 - languageName: node - linkType: hard - -"trim@npm:0.0.1": - version: 0.0.1 - resolution: "trim@npm:0.0.1" - checksum: 2b4646dff99a222e8e1526edd4e3a43bbd925af0b8e837c340455d250157e7deefaa4da49bb891ab841e5c27b1afc5e9e32d4b57afb875d2dfcabf4e319b8f7f - languageName: node - linkType: hard - -"trough@npm:^1.0.0": - version: 1.0.5 - resolution: "trough@npm:1.0.5" - checksum: d6c8564903ed00e5258bab92134b020724dbbe83148dc72e4bf6306c03ed8843efa1bcc773fa62410dd89161ecb067432dd5916501793508a9506cacbc408e25 - languageName: node - linkType: hard - "trough@npm:^2.0.0": version: 2.1.0 resolution: "trough@npm:2.1.0" @@ -38648,14 +35689,14 @@ __metadata: languageName: node linkType: hard -"tsconfig-paths-webpack-plugin@npm:^4.0.0": - version: 4.0.0 - resolution: "tsconfig-paths-webpack-plugin@npm:4.0.0" +"tsconfig-paths-webpack-plugin@npm:^4.0.1": + version: 4.1.0 + resolution: "tsconfig-paths-webpack-plugin@npm:4.1.0" dependencies: chalk: ^4.1.0 enhanced-resolve: ^5.7.0 - tsconfig-paths: ^4.0.0 - checksum: 7ff7d63c1153e6dd30ce660b006495ae5cb5cbb78b30bb59b3cb627567325d4af52c7a69dda8aec7b94d576f5385581a69307472992954c40fe6949564155397 + tsconfig-paths: ^4.1.2 + checksum: f6e9a8a407e1a405b0f2531184296d9f033cb4fe5837282b757ab4a2f4cd82a3117e62c4b86d56c7d47749c7f1345aa438ec6417dbf64a0ec74a292fe9eae44d languageName: node linkType: hard @@ -38693,6 +35734,17 @@ __metadata: languageName: node linkType: hard +"tsconfig-paths@npm:^4.1.2": + version: 4.2.0 + resolution: "tsconfig-paths@npm:4.2.0" + dependencies: + json5: ^2.2.2 + minimist: ^1.2.6 + strip-bom: ^3.0.0 + checksum: 28c5f7bbbcabc9dabd4117e8fdc61483f6872a1c6b02a4b1c4d68c5b79d06896c3cc9547610c4c3ba64658531caa2de13ead1ea1bf321c7b53e969c4752b98c7 + languageName: node + linkType: hard + "tsdav@npm:2.0.3": version: 2.0.3 resolution: "tsdav@npm:2.0.3" @@ -38719,14 +35771,7 @@ __metadata: languageName: node linkType: hard -"tslib@npm:2.4.0, tslib@npm:^2.0.1, tslib@npm:^2.0.3": - version: 2.4.0 - resolution: "tslib@npm:2.4.0" - checksum: 8c4aa6a3c5a754bf76aefc38026134180c053b7bd2f81338cb5e5ebf96fefa0f417bff221592bf801077f5bf990562f6264fecbc42cd3309b33872cb6fc3b113 - languageName: node - linkType: hard - -"tslib@npm:^1.0.0, tslib@npm:^1.10.0, tslib@npm:^1.11.1, tslib@npm:^1.8.1, tslib@npm:^1.9.3": +"tslib@npm:^1.0.0, tslib@npm:^1.10.0, tslib@npm:^1.11.1, tslib@npm:^1.13.0, tslib@npm:^1.8.1, tslib@npm:^1.9.3": version: 1.14.1 resolution: "tslib@npm:1.14.1" checksum: dbe628ef87f66691d5d2959b3e41b9ca0045c3ee3c7c7b906cc1e328b39f199bb1ad9e671c39025bd56122ac57dfbf7385a94843b1cc07c60a4db74795829acd @@ -38740,6 +35785,13 @@ __metadata: languageName: node linkType: hard +"tslib@npm:^2.0.1, tslib@npm:^2.0.3": + version: 2.4.0 + resolution: "tslib@npm:2.4.0" + checksum: 8c4aa6a3c5a754bf76aefc38026134180c053b7bd2f81338cb5e5ebf96fefa0f417bff221592bf801077f5bf990562f6264fecbc42cd3309b33872cb6fc3b113 + languageName: node + linkType: hard + "tslib@npm:^2.2.0": version: 2.4.1 resolution: "tslib@npm:2.4.1" @@ -38779,10 +35831,10 @@ __metadata: languageName: node linkType: hard -"tty-browserify@npm:0.0.0": - version: 0.0.0 - resolution: "tty-browserify@npm:0.0.0" - checksum: a06f746acc419cb2527ba19b6f3bd97b4a208c03823bfb37b2982629d2effe30ebd17eaed0d7e2fc741f3c4f2a0c43455bd5fb4194354b378e78cfb7ca687f59 +"tty-browserify@npm:^0.0.1": + version: 0.0.1 + resolution: "tty-browserify@npm:0.0.1" + checksum: 93b745d43fa5a7d2b948fa23be8d313576d1d884b48acd957c07710bac1c0d8ac34c0556ad4c57c73d36e11741763ef66b3fb4fb97b06b7e4d525315a3cd45f5 languageName: node linkType: hard @@ -38960,16 +36012,7 @@ __metadata: languageName: node linkType: hard -"type-check@npm:~0.3.2": - version: 0.3.2 - resolution: "type-check@npm:0.3.2" - dependencies: - prelude-ls: ~1.1.2 - checksum: dd3b1495642731bc0e1fc40abe5e977e0263005551ac83342ecb6f4f89551d106b368ec32ad3fb2da19b3bd7b2d1f64330da2ea9176d8ddbfe389fb286eb5124 - languageName: node - linkType: hard - -"type-detect@npm:^4.0.0, type-detect@npm:^4.0.5": +"type-detect@npm:^4.0.0, type-detect@npm:^4.0.8": version: 4.0.8 resolution: "type-detect@npm:4.0.8" checksum: 62b5628bff67c0eb0b66afa371bd73e230399a8d2ad30d852716efcc4656a7516904570cd8631a49a3ce57c10225adf5d0cbdcb47f6b0255fe6557c453925a15 @@ -39060,6 +36103,13 @@ __metadata: languageName: node linkType: hard +"type-fest@npm:^2.14.0, type-fest@npm:^2.19.0, type-fest@npm:~2.19": + version: 2.19.0 + resolution: "type-fest@npm:2.19.0" + checksum: a4ef07ece297c9fba78fc1bd6d85dff4472fe043ede98bd4710d2615d15776902b595abf62bd78339ed6278f021235fb28a96361f8be86ed754f778973a0d278 + languageName: node + linkType: hard + "type-flag@npm:^2.1.0": version: 2.2.0 resolution: "type-flag@npm:2.2.0" @@ -39077,29 +36127,6 @@ __metadata: languageName: node linkType: hard -"type@npm:^1.0.1": - version: 1.2.0 - resolution: "type@npm:1.2.0" - checksum: dae8c64f82c648b985caf321e9dd6e8b7f4f2e2d4f846fc6fd2c8e9dc7769382d8a52369ddbaccd59aeeceb0df7f52fb339c465be5f2e543e81e810e413451ee - languageName: node - linkType: hard - -"type@npm:^2.5.0": - version: 2.6.0 - resolution: "type@npm:2.6.0" - checksum: 80da01fcc0f6ed5a253dc326530e134000a8f66ea44b6d9687cde2f894f0d0b2486595b0cd040a64f7f79dc3120784236f8c9ef667a8aef03984e049b447cfb4 - languageName: node - linkType: hard - -"typedarray-to-buffer@npm:^3.1.5": - version: 3.1.5 - resolution: "typedarray-to-buffer@npm:3.1.5" - dependencies: - is-typedarray: ^1.0.0 - checksum: 99c11aaa8f45189fcfba6b8a4825fd684a321caa9bd7a76a27cf0c7732c174d198b99f449c52c3818107430b5f41c0ccbbfb75cb2ee3ca4a9451710986d61a60 - languageName: node - linkType: hard - "typedarray-to-buffer@npm:~1.0.0": version: 1.0.4 resolution: "typedarray-to-buffer@npm:1.0.4" @@ -39260,13 +36287,6 @@ __metadata: languageName: node linkType: hard -"ultron@npm:~1.1.0": - version: 1.1.1 - resolution: "ultron@npm:1.1.1" - checksum: aa7b5ebb1b6e33287b9d873c6756c4b7aa6d1b23d7162ff25b0c0ce5c3c7e26e2ab141a5dc6e96c10ac4d00a372e682ce298d784f06ffcd520936590b4bc0653 - languageName: node - linkType: hard - "unbox-primitive@npm:^1.0.1": version: 1.0.1 resolution: "unbox-primitive@npm:1.0.1" @@ -39307,23 +36327,6 @@ __metadata: languageName: node linkType: hard -"unfetch@npm:^4.2.0": - version: 4.2.0 - resolution: "unfetch@npm:4.2.0" - checksum: 6a4b2557e1d921eaa80c4425ce27a404945ec26491ed06e62598f333996a91a44c7908cb26dc7c2746d735762b13276cf4aa41829b4c8f438dde63add3045d7a - languageName: node - linkType: hard - -"unherit@npm:^1.0.4": - version: 1.1.3 - resolution: "unherit@npm:1.1.3" - dependencies: - inherits: ^2.0.0 - xtend: ^4.0.0 - checksum: fd7922f84fc0bfb7c4df6d1f5a50b5b94a0218e3cda98a54dbbd209226ddd4072d742d3df44d0e295ab08d5ccfd304a1e193dfe31a86d2a91b7cb9fdac093194 - languageName: node - linkType: hard - "unicode-canonical-property-names-ecmascript@npm:^2.0.0": version: 2.0.0 resolution: "unicode-canonical-property-names-ecmascript@npm:2.0.0" @@ -39365,20 +36368,6 @@ __metadata: languageName: node linkType: hard -"unified@npm:9.2.0": - version: 9.2.0 - resolution: "unified@npm:9.2.0" - dependencies: - bail: ^1.0.0 - extend: ^3.0.0 - is-buffer: ^2.0.0 - is-plain-obj: ^2.0.0 - trough: ^1.0.0 - vfile: ^4.0.0 - checksum: 0cac4ae119893fbd49d309b4db48595e4d4e9f0a2dc1dde4d0074059f9a46012a2905f37c1346715e583f30c970bc8078db8462675411d39ff5036ae18b4fb8a - languageName: node - linkType: hard - "unified@npm:^10.0.0": version: 10.1.2 resolution: "unified@npm:10.1.2" @@ -39394,27 +36383,6 @@ __metadata: languageName: node linkType: hard -"union-value@npm:^1.0.0": - version: 1.0.1 - resolution: "union-value@npm:1.0.1" - dependencies: - arr-union: ^3.1.0 - get-value: ^2.0.6 - is-extendable: ^0.1.1 - set-value: ^2.0.1 - checksum: a3464097d3f27f6aa90cf103ed9387541bccfc006517559381a10e0dffa62f465a9d9a09c9b9c3d26d0f4cbe61d4d010e2fbd710fd4bf1267a768ba8a774b0ba - languageName: node - linkType: hard - -"unique-filename@npm:^1.1.1": - version: 1.1.1 - resolution: "unique-filename@npm:1.1.1" - dependencies: - unique-slug: ^2.0.0 - checksum: cf4998c9228cc7647ba7814e255dec51be43673903897b1786eff2ac2d670f54d4d733357eb08dea969aa5e6875d0e1bd391d668fbdb5a179744e7c7551a6f80 - languageName: node - linkType: hard - "unique-filename@npm:^2.0.0": version: 2.0.1 resolution: "unique-filename@npm:2.0.1" @@ -39424,15 +36392,6 @@ __metadata: languageName: node linkType: hard -"unique-slug@npm:^2.0.0": - version: 2.0.2 - resolution: "unique-slug@npm:2.0.2" - dependencies: - imurmurhash: ^0.1.4 - checksum: 5b6876a645da08d505dedb970d1571f6cebdf87044cb6b740c8dbb24f0d6e1dc8bdbf46825fd09f994d7cf50760e6f6e063cfa197d51c5902c00a861702eb75a - languageName: node - linkType: hard - "unique-slug@npm:^3.0.0": version: 3.0.0 resolution: "unique-slug@npm:3.0.0" @@ -39451,13 +36410,6 @@ __metadata: languageName: node linkType: hard -"unist-builder@npm:2.0.3, unist-builder@npm:^2.0.0": - version: 2.0.3 - resolution: "unist-builder@npm:2.0.3" - checksum: e946fdf77dbfc320feaece137ce4959ae2da6614abd1623bd39512dc741a9d5f313eb2ba79f8887d941365dccddec7fef4e953827475e392bf49b45336f597f6 - languageName: node - linkType: hard - "unist-builder@npm:^3.0.0": version: 3.0.1 resolution: "unist-builder@npm:3.0.1" @@ -39467,13 +36419,6 @@ __metadata: languageName: node linkType: hard -"unist-util-generated@npm:^1.0.0": - version: 1.1.6 - resolution: "unist-util-generated@npm:1.1.6" - checksum: 86239ff88a08800d52198f2f0e15911f05bab2dad17cef95550f7c2728f15ebb0344694fcc3101d05762d88adaf86cb85aa7a3300fedabd0b6d7d00b41cdcb7f - languageName: node - linkType: hard - "unist-util-generated@npm:^2.0.0": version: 2.0.1 resolution: "unist-util-generated@npm:2.0.1" @@ -39497,13 +36442,6 @@ __metadata: languageName: node linkType: hard -"unist-util-position@npm:^3.0.0": - version: 3.1.0 - resolution: "unist-util-position@npm:3.1.0" - checksum: 10b3952e32a1ffabbecad41c3946237f7059f5bb6436796da05531a285f50b97e4f37cfc2f7164676d041063f40fe1ad92fbb8ca38d3ae8747328ebe738d738f - languageName: node - linkType: hard - "unist-util-position@npm:^4.0.0": version: 4.0.4 resolution: "unist-util-position@npm:4.0.4" @@ -39513,33 +36451,6 @@ __metadata: languageName: node linkType: hard -"unist-util-remove-position@npm:^2.0.0": - version: 2.0.1 - resolution: "unist-util-remove-position@npm:2.0.1" - dependencies: - unist-util-visit: ^2.0.0 - checksum: 4149294969f1a78a367b5d03eb0a138aa8320a39e1b15686647a2bec5945af3df27f2936a1e9752ecbb4a82dc23bd86f7e5a0ee048e5eeaedc2deb9237872795 - languageName: node - linkType: hard - -"unist-util-remove@npm:^2.0.0": - version: 2.1.0 - resolution: "unist-util-remove@npm:2.1.0" - dependencies: - unist-util-is: ^4.0.0 - checksum: 99e54f3ea0523f8cf957579a6e84e5b58427bffab929cc7f6aa5119581f929db683dd4691ea5483df0c272f486dda9dbd04f4ab74dca6cae1f3ebe8e4261a4d9 - languageName: node - linkType: hard - -"unist-util-stringify-position@npm:^2.0.0": - version: 2.0.3 - resolution: "unist-util-stringify-position@npm:2.0.3" - dependencies: - "@types/unist": ^2.0.2 - checksum: f755cadc959f9074fe999578a1a242761296705a7fe87f333a37c00044de74ab4b184b3812989a57d4cd12211f0b14ad397b327c3a594c7af84361b1c25a7f09 - languageName: node - linkType: hard - "unist-util-stringify-position@npm:^3.0.0": version: 3.0.3 resolution: "unist-util-stringify-position@npm:3.0.3" @@ -39569,7 +36480,7 @@ __metadata: languageName: node linkType: hard -"unist-util-visit@npm:2.0.3, unist-util-visit@npm:^2.0.0": +"unist-util-visit@npm:^2.0.0": version: 2.0.3 resolution: "unist-util-visit@npm:2.0.3" dependencies: @@ -39635,29 +36546,22 @@ __metadata: languageName: node linkType: hard -"unset-value@npm:^1.0.0": - version: 1.0.0 - resolution: "unset-value@npm:1.0.0" +"unplugin@npm:^1.3.1": + version: 1.5.1 + resolution: "unplugin@npm:1.5.1" dependencies: - has-value: ^0.3.1 - isobject: ^3.0.0 - checksum: 5990ecf660672be2781fc9fb322543c4aa592b68ed9a3312fa4df0e9ba709d42e823af090fc8f95775b4cd2c9a5169f7388f0cec39238b6d0d55a69fc2ab6b29 + acorn: ^8.11.2 + chokidar: ^3.5.3 + webpack-sources: ^3.2.3 + webpack-virtual-modules: ^0.6.0 + checksum: c93cb8526026986ac34d79d7ee8a7c4f8371272bccc5f7a3f64158eb9fa2e296eb65345bd97f60be8f075188fcb681843b1c039eb2002f9a4b400f74e2bbae19 languageName: node linkType: hard -"untildify@npm:^2.0.0": - version: 2.1.0 - resolution: "untildify@npm:2.1.0" - dependencies: - os-homedir: ^1.0.0 - checksum: 071b394053fc94747d9df8c7f7ca50af41355c1207c8a0bf9f35f52b0d9ad5142a1920b018bc2b6ff04340a4f9c599ad50c9b8f4ff2c689ae52b1463ebbda94e - languageName: node - linkType: hard - -"upath@npm:^1.1.1": - version: 1.2.0 - resolution: "upath@npm:1.2.0" - checksum: 4c05c094797cb733193a0784774dbea5b1889d502fc9f0572164177e185e4a59ba7099bf0b0adf945b232e2ac60363f9bf18aac9b2206fb99cbef971a8455445 +"untildify@npm:^4.0.0": + version: 4.0.0 + resolution: "untildify@npm:4.0.0" + checksum: 39ced9c418a74f73f0a56e1ba4634b4d959422dff61f4c72a8e39f60b99380c1b45ed776fbaa0a4101b157e4310d873ad7d114e8534ca02609b4916bb4187fb9 languageName: node linkType: hard @@ -39675,6 +36579,20 @@ __metadata: languageName: node linkType: hard +"update-browserslist-db@npm:^1.0.13": + version: 1.0.13 + resolution: "update-browserslist-db@npm:1.0.13" + dependencies: + escalade: ^3.1.1 + picocolors: ^1.0.0 + peerDependencies: + browserslist: ">= 4.21.0" + bin: + update-browserslist-db: cli.js + checksum: 1e47d80182ab6e4ad35396ad8b61008ae2a1330221175d0abd37689658bdb61af9b705bfc41057fd16682474d79944fb2d86767c5ed5ae34b6276b9bed353322 + languageName: node + linkType: hard + "update-browserslist-db@npm:^1.0.4": version: 1.0.4 resolution: "update-browserslist-db@npm:1.0.4" @@ -39753,39 +36671,6 @@ __metadata: languageName: node linkType: hard -"urix@npm:^0.1.0": - version: 0.1.0 - resolution: "urix@npm:0.1.0" - checksum: 4c076ecfbf3411e888547fe844e52378ab5ada2d2f27625139011eada79925e77f7fbf0e4016d45e6a9e9adb6b7e64981bd49b22700c7c401c5fc15f423303b3 - languageName: node - linkType: hard - -"url-loader@npm:^4.1.1": - version: 4.1.1 - resolution: "url-loader@npm:4.1.1" - dependencies: - loader-utils: ^2.0.0 - mime-types: ^2.1.27 - schema-utils: ^3.0.0 - peerDependencies: - file-loader: "*" - webpack: ^4.0.0 || ^5.0.0 - peerDependenciesMeta: - file-loader: - optional: true - checksum: c1122a992c6cff70a7e56dfc2b7474534d48eb40b2cc75467cde0c6972e7597faf8e43acb4f45f93c2473645dfd803bcbc20960b57544dd1e4c96e77f72ba6fd - languageName: node - linkType: hard - -"url-parse-lax@npm:^1.0.0": - version: 1.0.0 - resolution: "url-parse-lax@npm:1.0.0" - dependencies: - prepend-http: ^1.0.1 - checksum: 03316acff753845329652258c16d1688765ee34f7d242a94dadf9ff6e43ea567ec062cec7aa27c37f76f2c57f95e0660695afff32fb97b527591c7340a3090fa - languageName: node - linkType: hard - "url-parse@npm:^1.4.3, url-parse@npm:^1.5.3, url-parse@npm:^1.5.8, url-parse@npm:^1.5.9": version: 1.5.10 resolution: "url-parse@npm:1.5.10" @@ -39796,13 +36681,6 @@ __metadata: languageName: node linkType: hard -"url-set-query@npm:^1.0.0": - version: 1.0.0 - resolution: "url-set-query@npm:1.0.0" - checksum: 5ad73525e8f3ab55c6bf3ddc70a43912e65ff9ce655d7868fdcefdf79f509cfdddde4b07150797f76186f1a47c0ecd2b7bb3687df8f84757dee4110cf006e12d - languageName: node - linkType: hard - "url-template@npm:^2.0.8": version: 2.0.8 resolution: "url-template@npm:2.0.8" @@ -39810,13 +36688,6 @@ __metadata: languageName: node linkType: hard -"url-to-options@npm:^1.0.1": - version: 1.0.1 - resolution: "url-to-options@npm:1.0.1" - checksum: 20e59f4578525fb0d30ffc22b13b5aa60bc9e57cefd4f5842720f5b57211b6dec54abeae2d675381ac4486fd1a2e987f1318725dea996e503ff89f8c8ce2c17e - languageName: node - linkType: hard - "url@npm:^0.11.0, url@npm:~0.11.0": version: 0.11.0 resolution: "url@npm:0.11.0" @@ -39893,6 +36764,18 @@ __metadata: languageName: node linkType: hard +"use-resize-observer@npm:^9.1.0": + version: 9.1.0 + resolution: "use-resize-observer@npm:9.1.0" + dependencies: + "@juggle/resize-observer": ^3.3.1 + peerDependencies: + react: 16.8.0 - 18 + react-dom: 16.8.0 - 18 + checksum: 92be0ac34a3b3cf884cd55847c90792b5b44833dc258e96d650152815ad246afe45825aa223332203004d836535a927ab74f18dc0313229e2c7c69510eddf382 + languageName: node + linkType: hard + "use-sidecar@npm:^1.0.1": version: 1.0.5 resolution: "use-sidecar@npm:1.0.5" @@ -39930,30 +36813,6 @@ __metadata: languageName: node linkType: hard -"use@npm:^3.1.0": - version: 3.1.1 - resolution: "use@npm:3.1.1" - checksum: 08a130289f5238fcbf8f59a18951286a6e660d17acccc9d58d9b69dfa0ee19aa038e8f95721b00b432c36d1629a9e32a464bf2e7e0ae6a244c42ddb30bdd8b33 - languageName: node - linkType: hard - -"utf-8-validate@npm:^5.0.2": - version: 5.0.9 - resolution: "utf-8-validate@npm:5.0.9" - dependencies: - node-gyp: latest - node-gyp-build: ^4.3.0 - checksum: 90117f1b65e0a1256c83dfad529983617263b622f2379745311d0438c7ea31db0d134ebd0dca84c3f5847a3560a3d249644e478a9109c616f63c7ea19cac53dc - languageName: node - linkType: hard - -"utf8@npm:3.0.0": - version: 3.0.0 - resolution: "utf8@npm:3.0.0" - checksum: cb89a69ad9ab393e3eae9b25305b3ff08bebca9adc839191a34f90777eb2942f86a96369d2839925fea58f8f722f7e27031d697f10f5f39690f8c5047303e62d - languageName: node - linkType: hard - "utif@npm:^2.0.1": version: 2.0.1 resolution: "utif@npm:2.0.1" @@ -39970,45 +36829,16 @@ __metadata: languageName: node linkType: hard -"util.promisify@npm:1.0.0": - version: 1.0.0 - resolution: "util.promisify@npm:1.0.0" - dependencies: - define-properties: ^1.1.2 - object.getownpropertydescriptors: ^2.0.3 - checksum: 482e857d676adee506c5c3a10212fd6a06a51d827a9b6d5396a8e593db53b4bb7064f77c5071357d8cd76072542de5cc1c08bc6d7c10cf43fa22dc3bc67556f1 - languageName: node - linkType: hard - -"util@npm:0.10.3": - version: 0.10.3 - resolution: "util@npm:0.10.3" - dependencies: - inherits: 2.0.1 - checksum: bd800f5d237a82caddb61723a6cbe45297d25dd258651a31335a4d5d981fd033cb4771f82db3d5d59b582b187cb69cfe727dc6f4d8d7826f686ee6c07ce611e0 - languageName: node - linkType: hard - -"util@npm:^0.11.0": - version: 0.11.1 - resolution: "util@npm:0.11.1" - dependencies: - inherits: 2.0.3 - checksum: 80bee6a2edf5ab08dcb97bfe55ca62289b4e66f762ada201f2c5104cb5e46474c8b334f6504d055c0e6a8fda10999add9bcbd81ba765e7f37b17dc767331aa55 - languageName: node - linkType: hard - -"util@npm:^0.12.0": - version: 0.12.4 - resolution: "util@npm:0.12.4" +"util@npm:^0.12.4, util@npm:^0.12.5": + version: 0.12.5 + resolution: "util@npm:0.12.5" dependencies: inherits: ^2.0.3 is-arguments: ^1.0.4 is-generator-function: ^1.0.7 is-typed-array: ^1.1.3 - safe-buffer: ^5.1.2 which-typed-array: ^1.1.2 - checksum: 8eac7a6e6b341c0f1b3eb73bbe5dfcae31a7e9699c8fc3266789f3e95f7637946a7700dcf1904dbd3749a58a36760ebf7acf4bb5b717f7468532a8a79f44eff0 + checksum: 705e51f0de5b446f4edec10739752ac25856541e0254ea1e7e45e5b9f9b0cb105bc4bd415736a6210edc68245a7f903bf085ffb08dd7deb8a0e847f60538a38a languageName: node linkType: hard @@ -40026,22 +36856,6 @@ __metadata: languageName: node linkType: hard -"uuid-browser@npm:^3.1.0": - version: 3.1.0 - resolution: "uuid-browser@npm:3.1.0" - checksum: 951ec47593865c7cc746df671f7b0f0ff48fcab583fcdaeab6c517a5222af0f5e144a6fcea5fa9620a5b3be047e2f9412a80267ea5c45050e07d51774197d49e - languageName: node - linkType: hard - -"uuid@npm:3.3.2": - version: 3.3.2 - resolution: "uuid@npm:3.3.2" - bin: - uuid: ./bin/uuid - checksum: 8793629d2799f500aeea9fcd0aec6c4e9fbcc4d62ed42159ad96be345c3fffac1bbf61a23e18e2782600884fee05e6d4012ce4b70d0037c8e987533ae6a77870 - languageName: node - linkType: hard - "uuid@npm:9.0.0, uuid@npm:^9.0.0": version: 9.0.0 resolution: "uuid@npm:9.0.0" @@ -40090,13 +36904,6 @@ __metadata: languageName: node linkType: hard -"v8-compile-cache@npm:^2.0.3": - version: 2.3.0 - resolution: "v8-compile-cache@npm:2.3.0" - checksum: adb0a271eaa2297f2f4c536acbfee872d0dd26ec2d76f66921aa7fc437319132773483344207bdbeee169225f4739016d8d2dbf0553913a52bb34da6d0334f8e - languageName: node - linkType: hard - "v8-to-istanbul@npm:^9.0.0": version: 9.0.1 resolution: "v8-to-istanbul@npm:9.0.1" @@ -40132,14 +36939,7 @@ __metadata: languageName: node linkType: hard -"varint@npm:^5.0.0": - version: 5.0.2 - resolution: "varint@npm:5.0.2" - checksum: e1a66bf9a6cea96d1f13259170d4d41b845833acf3a9df990ea1e760d279bd70d5b1f4c002a50197efd2168a2fd43eb0b808444600fd4d23651e8d42fe90eb05 - languageName: node - linkType: hard - -"vary@npm:^1, vary@npm:~1.1.2": +"vary@npm:~1.1.2": version: 1.1.2 resolution: "vary@npm:1.1.2" checksum: ae0123222c6df65b437669d63dfa8c36cee20a504101b2fcd97b8bf76f91259c17f9f2b4d70a1e3c6bbcee7f51b28392833adb6b2770b23b01abec84e369660b @@ -40157,13 +36957,6 @@ __metadata: languageName: node linkType: hard -"vfile-location@npm:^3.0.0, vfile-location@npm:^3.2.0": - version: 3.2.0 - resolution: "vfile-location@npm:3.2.0" - checksum: 9bb3df6d0be31b5dd2d8da0170c27b7045c64493a8ba7b6ff7af8596c524fc8896924b8dd85ae12d201eead2709217a0fbc44927b7264f4bbf0aa8027a78be9c - languageName: node - linkType: hard - "vfile-location@npm:^4.0.0": version: 4.1.0 resolution: "vfile-location@npm:4.1.0" @@ -40174,16 +36967,6 @@ __metadata: languageName: node linkType: hard -"vfile-message@npm:^2.0.0": - version: 2.0.4 - resolution: "vfile-message@npm:2.0.4" - dependencies: - "@types/unist": ^2.0.0 - unist-util-stringify-position: ^2.0.0 - checksum: 1bade499790f46ca5aba04bdce07a1e37c2636a8872e05cf32c26becc912826710b7eb063d30c5754fdfaeedc8a7658e78df10b3bc535c844890ec8a184f5643 - languageName: node - linkType: hard - "vfile-message@npm:^3.0.0": version: 3.1.4 resolution: "vfile-message@npm:3.1.4" @@ -40194,18 +36977,6 @@ __metadata: languageName: node linkType: hard -"vfile@npm:^4.0.0": - version: 4.2.1 - resolution: "vfile@npm:4.2.1" - dependencies: - "@types/unist": ^2.0.0 - is-buffer: ^2.0.0 - unist-util-stringify-position: ^2.0.0 - vfile-message: ^2.0.0 - checksum: ee5726e10d170472cde778fc22e0f7499caa096eb85babea5d0ce0941455b721037ee1c9e6ae506ca2803250acd313d0f464328ead0b55cfe7cb6315f1b462d6 - languageName: node - linkType: hard - "vfile@npm:^5.0.0": version: 5.3.7 resolution: "vfile@npm:5.3.7" @@ -40240,33 +37011,34 @@ __metadata: languageName: node linkType: hard -"vite-node@npm:0.34.3": - version: 0.34.3 - resolution: "vite-node@npm:0.34.3" +"vite-node@npm:0.34.6": + version: 0.34.6 + resolution: "vite-node@npm:0.34.6" dependencies: cac: ^6.7.14 debug: ^4.3.4 mlly: ^1.4.0 pathe: ^1.1.1 picocolors: ^1.0.0 - vite: ^3.0.0 || ^4.0.0 + vite: ^3.0.0 || ^4.0.0 || ^5.0.0-0 bin: vite-node: vite-node.mjs - checksum: 366c4f3fb7c038e2180abc6b18cfbac3b8684cd878eaf7ebf1ffb07d95d2ea325713fc575a7949a13bb00cfe264acbc28c02e2836b8647e1f443fe631c17805a + checksum: 46eba82bf8b69c7dfeed901502533b172cc6303212f0f49f82c2f64758fa4b60acd1b1e37cb96aff944e36b510b0d1beedb50d9cb25ef39e0159b2b9d1136b1f languageName: node linkType: hard -"vite@npm:^3.0.0 || ^4.0.0": - version: 4.3.8 - resolution: "vite@npm:4.3.8" +"vite@npm:^3.0.0 || ^4.0.0 || ^5.0.0-0, vite@npm:^3.1.0 || ^4.0.0 || ^5.0.0-0": + version: 5.0.6 + resolution: "vite@npm:5.0.6" dependencies: - esbuild: ^0.17.5 - fsevents: ~2.3.2 - postcss: ^8.4.23 - rollup: ^3.21.0 + esbuild: ^0.19.3 + fsevents: ~2.3.3 + postcss: ^8.4.32 + rollup: ^4.2.0 peerDependencies: - "@types/node": ">= 14" + "@types/node": ^18.0.0 || >=20.0.0 less: "*" + lightningcss: ^1.21.0 sass: "*" stylus: "*" sugarss: "*" @@ -40279,6 +37051,8 @@ __metadata: optional: true less: optional: true + lightningcss: + optional: true sass: optional: true stylus: @@ -40289,7 +37063,7 @@ __metadata: optional: true bin: vite: bin/vite.js - checksum: 454a7c0c1bd1fd5611c9df28c62e3adbe75f48e87fc787179c5af60c4ab9a87aa0eda44be446d898851a135766d36f65f8e7d56317556aa807d30e561de369c4 + checksum: 06d85f7d838d0cb2063c82c67974044f6b11e2914ac2cb395185509ecea85dcd5a9d3bd380b13f3c3494665b08b0793d1a03008372a10575f7619db003dbfc7e languageName: node linkType: hard @@ -40353,22 +37127,22 @@ __metadata: languageName: node linkType: hard -"vitest@npm:^0.34.3": - version: 0.34.3 - resolution: "vitest@npm:0.34.3" +"vitest@npm:^0.34.6": + version: 0.34.6 + resolution: "vitest@npm:0.34.6" dependencies: "@types/chai": ^4.3.5 "@types/chai-subset": ^1.3.3 "@types/node": "*" - "@vitest/expect": 0.34.3 - "@vitest/runner": 0.34.3 - "@vitest/snapshot": 0.34.3 - "@vitest/spy": 0.34.3 - "@vitest/utils": 0.34.3 + "@vitest/expect": 0.34.6 + "@vitest/runner": 0.34.6 + "@vitest/snapshot": 0.34.6 + "@vitest/spy": 0.34.6 + "@vitest/utils": 0.34.6 acorn: ^8.9.0 acorn-walk: ^8.2.0 cac: ^6.7.14 - chai: ^4.3.7 + chai: ^4.3.10 debug: ^4.3.4 local-pkg: ^0.4.3 magic-string: ^0.30.1 @@ -40378,8 +37152,8 @@ __metadata: strip-literal: ^1.0.1 tinybench: ^2.5.0 tinypool: ^0.7.0 - vite: ^3.0.0 || ^4.0.0 - vite-node: 0.34.3 + vite: ^3.1.0 || ^4.0.0 || ^5.0.0-0 + vite-node: 0.34.6 why-is-node-running: ^2.2.2 peerDependencies: "@edge-runtime/vm": "*" @@ -40409,11 +37183,11 @@ __metadata: optional: true bin: vitest: vitest.mjs - checksum: 4535d080feede94db5015eb60c6ed5f7b0d8cd67f12072de5ae1faded133cc640043c0c2646ef51ab9b61c2f885589da57458a65e82cf91a25cf954470018a40 + checksum: 45f5c1987fa8c76dbaf5db379bbdb4f6e3713c484e850149af38247b627e70016c1863286fd7fcfab08a1d98430f66ba1f45af6f14f5c467ded4b1ea6f26afa3 languageName: node linkType: hard -"vm-browserify@npm:^1.0.1": +"vm-browserify@npm:^1.1.2": version: 1.1.2 resolution: "vm-browserify@npm:1.1.2" checksum: 10a1c50aab54ff8b4c9042c15fc64aefccce8d2fb90c0640403242db0ee7fb269f9b102bdb69cfb435d7ef3180d61fd4fb004a043a12709abaf9056cfd7e039d @@ -40451,7 +37225,7 @@ __metadata: languageName: node linkType: hard -"walker@npm:^1.0.7, walker@npm:~1.0.5": +"walker@npm:^1.0.8": version: 1.0.8 resolution: "walker@npm:1.0.8" dependencies: @@ -40469,16 +37243,7 @@ __metadata: languageName: node linkType: hard -"watchpack-chokidar2@npm:^2.0.1": - version: 2.0.1 - resolution: "watchpack-chokidar2@npm:2.0.1" - dependencies: - chokidar: ^2.1.8 - checksum: acf0f9ebca0c0b2fd1fe87ba557670477a6c0410bf1a653a726e68eb0620aa94fd9a43027a160a76bc793a21ea12e215e1e87dafe762682c13ef92ad4daf7b58 - languageName: node - linkType: hard - -"watchpack@npm:2.4.0, watchpack@npm:^2.2.0, watchpack@npm:^2.3.1, watchpack@npm:^2.4.0": +"watchpack@npm:2.4.0, watchpack@npm:^2.2.0, watchpack@npm:^2.4.0": version: 2.4.0 resolution: "watchpack@npm:2.4.0" dependencies: @@ -40488,23 +37253,6 @@ __metadata: languageName: node linkType: hard -"watchpack@npm:^1.7.4": - version: 1.7.5 - resolution: "watchpack@npm:1.7.5" - dependencies: - chokidar: ^3.4.1 - graceful-fs: ^4.1.2 - neo-async: ^2.5.0 - watchpack-chokidar2: ^2.0.1 - dependenciesMeta: - chokidar: - optional: true - watchpack-chokidar2: - optional: true - checksum: 8b7cb8c8df8f4dd0e8ac47693c0141c4f020a4b031411247d600eca31522fde6f1f9a3a6f6518b46e71f7971b0ed5734c08c60d7fdd2530e7262776286f69236 - languageName: node - linkType: hard - "wcwidth@npm:^1.0.1": version: 1.0.1 resolution: "wcwidth@npm:1.0.1" @@ -40521,13 +37269,6 @@ __metadata: languageName: node linkType: hard -"web-namespaces@npm:^1.0.0": - version: 1.1.4 - resolution: "web-namespaces@npm:1.1.4" - checksum: 5149842ccbfbc56fe4f8758957b3f8c8616a281874a5bb84aa1b305e4436a9bad853d21c629a7b8f174902449e1489c7a6c724fccf60965077c5636bd8aed42b - languageName: node - linkType: hard - "web-namespaces@npm:^2.0.0": version: 2.0.1 resolution: "web-namespaces@npm:2.0.1" @@ -40556,278 +37297,6 @@ __metadata: languageName: node linkType: hard -"web3-bzz@npm:1.7.5": - version: 1.7.5 - resolution: "web3-bzz@npm:1.7.5" - dependencies: - "@types/node": ^12.12.6 - got: 12.1.0 - swarm-js: ^0.1.40 - checksum: 80d43d55470e04064b0b89f215f44441470d4088ff9c31e8f2eb17cd4d8d3ce36cf37180de2d7cd1f21bf48a69501ae92f6fceed21d3e2634d8c1f29a31ee9fa - languageName: node - linkType: hard - -"web3-core-helpers@npm:1.7.5": - version: 1.7.5 - resolution: "web3-core-helpers@npm:1.7.5" - dependencies: - web3-eth-iban: 1.7.5 - web3-utils: 1.7.5 - checksum: b7eafe44f7225961e76edefd53083df6b7e2621bc4fda6e44e08e64889f6a092b0da1c9a6a649fa4682c6f485a94b328b30f2cff26e9bd46513bfcfea0650696 - languageName: node - linkType: hard - -"web3-core-method@npm:1.7.5": - version: 1.7.5 - resolution: "web3-core-method@npm:1.7.5" - dependencies: - "@ethersproject/transactions": ^5.6.2 - web3-core-helpers: 1.7.5 - web3-core-promievent: 1.7.5 - web3-core-subscriptions: 1.7.5 - web3-utils: 1.7.5 - checksum: d36e3554eb79805760ce5f49c9c580a57ecb8b488052ccc2f22918310dd7dca4e6d764992d73493d07ae60f7bde2cc4cf9548aa1cad5850b007c9b0d445d93c6 - languageName: node - linkType: hard - -"web3-core-promievent@npm:1.7.5": - version: 1.7.5 - resolution: "web3-core-promievent@npm:1.7.5" - dependencies: - eventemitter3: 4.0.4 - checksum: 63108e24a35652a47b700df59bd9337658c5714e60660a5908439cc44c6a09240d56e9195b01fded536b0247d61c288fa3c93a02368aabafbcc0c0d30e2c01db - languageName: node - linkType: hard - -"web3-core-requestmanager@npm:1.7.5": - version: 1.7.5 - resolution: "web3-core-requestmanager@npm:1.7.5" - dependencies: - util: ^0.12.0 - web3-core-helpers: 1.7.5 - web3-providers-http: 1.7.5 - web3-providers-ipc: 1.7.5 - web3-providers-ws: 1.7.5 - checksum: 6e4675a34ae7d83f0719e44ebdb373345457f31caef90b6c62895f8505ce5ff0f448cabf34aee51ebf073d300332a5735b6a854efd41fcabf3ef54232976136c - languageName: node - linkType: hard - -"web3-core-subscriptions@npm:1.7.5": - version: 1.7.5 - resolution: "web3-core-subscriptions@npm:1.7.5" - dependencies: - eventemitter3: 4.0.4 - web3-core-helpers: 1.7.5 - checksum: f7bc85a56f5ea4ccdea8a0b91eed57abeee2646ac16e7c14638280af5296de914361e20e0952f3f80c2942a122aaca6ef5556c02b1c7bbf6282eb9f3e92b3d99 - languageName: node - linkType: hard - -"web3-core@npm:1.7.5": - version: 1.7.5 - resolution: "web3-core@npm:1.7.5" - dependencies: - "@types/bn.js": ^5.1.0 - "@types/node": ^12.12.6 - bignumber.js: ^9.0.0 - web3-core-helpers: 1.7.5 - web3-core-method: 1.7.5 - web3-core-requestmanager: 1.7.5 - web3-utils: 1.7.5 - checksum: 11acf3373cf73456493aaa56c0fd7cd6ee57faa20b15e644f1cb84d3cb0e3b25c5c8920c14d3d848c0eb26c3dbd4397b519f981dd675dee2014a17ccb71063ae - languageName: node - linkType: hard - -"web3-eth-abi@npm:1.7.5": - version: 1.7.5 - resolution: "web3-eth-abi@npm:1.7.5" - dependencies: - "@ethersproject/abi": ^5.6.3 - web3-utils: 1.7.5 - checksum: b7c1521f6f4702227f33cf3e679cf3314bf3b88e14458dffb45de30e99eefde1f1b65f140eb650ec591460a04f9b76202f1691667165b0d7f06e31da33c46adc - languageName: node - linkType: hard - -"web3-eth-accounts@npm:1.7.5": - version: 1.7.5 - resolution: "web3-eth-accounts@npm:1.7.5" - dependencies: - "@ethereumjs/common": ^2.5.0 - "@ethereumjs/tx": ^3.3.2 - crypto-browserify: 3.12.0 - eth-lib: 0.2.8 - ethereumjs-util: ^7.0.10 - scrypt-js: ^3.0.1 - uuid: 3.3.2 - web3-core: 1.7.5 - web3-core-helpers: 1.7.5 - web3-core-method: 1.7.5 - web3-utils: 1.7.5 - checksum: f3d05d8f7f1adfbec49723c7e0cbcda9f6563c66a02f7a0cbcbd98630dc5efd10e3ab2744a7be8720dbd446b6f4586e05d05d71593d244a15b954aad5a9a87cf - languageName: node - linkType: hard - -"web3-eth-contract@npm:1.7.5": - version: 1.7.5 - resolution: "web3-eth-contract@npm:1.7.5" - dependencies: - "@types/bn.js": ^5.1.0 - web3-core: 1.7.5 - web3-core-helpers: 1.7.5 - web3-core-method: 1.7.5 - web3-core-promievent: 1.7.5 - web3-core-subscriptions: 1.7.5 - web3-eth-abi: 1.7.5 - web3-utils: 1.7.5 - checksum: 59f48f0245b1ad1a96148504066eeb954eebe7a304535a7a80a219e8ab3ed6b87f6a3145bc8df36b166d7cf9992624c0986d4d09bbdf1cc754e4d769cc7e9135 - languageName: node - linkType: hard - -"web3-eth-ens@npm:1.7.5": - version: 1.7.5 - resolution: "web3-eth-ens@npm:1.7.5" - dependencies: - content-hash: ^2.5.2 - eth-ens-namehash: 2.0.8 - web3-core: 1.7.5 - web3-core-helpers: 1.7.5 - web3-core-promievent: 1.7.5 - web3-eth-abi: 1.7.5 - web3-eth-contract: 1.7.5 - web3-utils: 1.7.5 - checksum: b425955cc65fa023d3c7665d774dde89e642542fb6e21e1a05e82c83193cb97b7fdd55a209eab1f67352dc1457956865c22ead6d548fb5be9bca632e4634edfc - languageName: node - linkType: hard - -"web3-eth-iban@npm:1.7.5": - version: 1.7.5 - resolution: "web3-eth-iban@npm:1.7.5" - dependencies: - bn.js: ^5.2.1 - web3-utils: 1.7.5 - checksum: 342605eb0c597ffbcc1b41e61723f4893634df795bd0611d0db56ded734b9a87711bf43d2e98b2abe95d144ccfb9325f0423c757ab6b54a34ab0e129da7096f0 - languageName: node - linkType: hard - -"web3-eth-personal@npm:1.7.5": - version: 1.7.5 - resolution: "web3-eth-personal@npm:1.7.5" - dependencies: - "@types/node": ^12.12.6 - web3-core: 1.7.5 - web3-core-helpers: 1.7.5 - web3-core-method: 1.7.5 - web3-net: 1.7.5 - web3-utils: 1.7.5 - checksum: f79a5dd490517ae8489196812a5fe2c59e88966579fed441771cf06ca60c043204cffc781cd69b093cdb19084cead86942b4a4efb4bc7038482be5771e90ac73 - languageName: node - linkType: hard - -"web3-eth@npm:1.7.5": - version: 1.7.5 - resolution: "web3-eth@npm:1.7.5" - dependencies: - web3-core: 1.7.5 - web3-core-helpers: 1.7.5 - web3-core-method: 1.7.5 - web3-core-subscriptions: 1.7.5 - web3-eth-abi: 1.7.5 - web3-eth-accounts: 1.7.5 - web3-eth-contract: 1.7.5 - web3-eth-ens: 1.7.5 - web3-eth-iban: 1.7.5 - web3-eth-personal: 1.7.5 - web3-net: 1.7.5 - web3-utils: 1.7.5 - checksum: 6dcf4e2a6c5b81b74871a524570d2d833a2431e9d871841dda00d1b328f2d4c57e561aa48878e631a9a106fc4c7c231569542e251f4ce89367a891288c186636 - languageName: node - linkType: hard - -"web3-net@npm:1.7.5": - version: 1.7.5 - resolution: "web3-net@npm:1.7.5" - dependencies: - web3-core: 1.7.5 - web3-core-method: 1.7.5 - web3-utils: 1.7.5 - checksum: e9beae43724a4c33641e6bd6cf8e29d72905dd3cd2958c02a238a596605e4cf39816c66c72fa159dfa4f3c2e034f4f1ff22671f6abc639ee08a9f584a1e962c2 - languageName: node - linkType: hard - -"web3-providers-http@npm:1.7.5": - version: 1.7.5 - resolution: "web3-providers-http@npm:1.7.5" - dependencies: - abortcontroller-polyfill: ^1.7.3 - cross-fetch: ^3.1.4 - es6-promise: ^4.2.8 - web3-core-helpers: 1.7.5 - checksum: 4132197e69855467414caddc9db45f6ea4160f319fbb155a0017ba65f0c90ec813720d1a1abb1c3ce3d36da68a4d19d19f9017f6c624be42775006803991801d - languageName: node - linkType: hard - -"web3-providers-ipc@npm:1.7.5": - version: 1.7.5 - resolution: "web3-providers-ipc@npm:1.7.5" - dependencies: - oboe: 2.1.5 - web3-core-helpers: 1.7.5 - checksum: ef6392a73fce08b0c7fab3a2c762d852d640d05f72f3f8b8a4db0ee0cc9a555d0a3ce6f5acba556c08f95246ee8e2c7d40d7220e5ababa79c70a2c7b5a671ff4 - languageName: node - linkType: hard - -"web3-providers-ws@npm:1.7.5": - version: 1.7.5 - resolution: "web3-providers-ws@npm:1.7.5" - dependencies: - eventemitter3: 4.0.4 - web3-core-helpers: 1.7.5 - websocket: ^1.0.32 - checksum: 92d1e98776e4e773dad6818e7e53c851251d4f74b58ac362d7d884cf67bb778df7065ae329a32284effa04eb4109fa34c1c5cb670d64a806130a1960e121773a - languageName: node - linkType: hard - -"web3-shh@npm:1.7.5": - version: 1.7.5 - resolution: "web3-shh@npm:1.7.5" - dependencies: - web3-core: 1.7.5 - web3-core-method: 1.7.5 - web3-core-subscriptions: 1.7.5 - web3-net: 1.7.5 - checksum: 672f5fbd08dfb783d8cfabd9c4eacf81dfe7b4910c18bd17ad8a7971a6b384bd48aa55bd787776e74a04154994f73fe924eb488f5c1199b35ae468db561c37c8 - languageName: node - linkType: hard - -"web3-utils@npm:1.7.5": - version: 1.7.5 - resolution: "web3-utils@npm:1.7.5" - dependencies: - bn.js: ^5.2.1 - ethereum-bloom-filters: ^1.0.6 - ethereumjs-util: ^7.1.0 - ethjs-unit: 0.1.6 - number-to-bn: 1.7.0 - randombytes: ^2.1.0 - utf8: 3.0.0 - checksum: 7eaffb2e59922c7c0c7c3c3e20f700036c89274495c6f664bb3db67cc37d543138596dd86dcc24f3c430ed27f2c6a12b682792a2d922b020c102de6f7873bacb - languageName: node - linkType: hard - -"web3@npm:^1.7.5": - version: 1.7.5 - resolution: "web3@npm:1.7.5" - dependencies: - web3-bzz: 1.7.5 - web3-core: 1.7.5 - web3-eth: 1.7.5 - web3-eth-personal: 1.7.5 - web3-net: 1.7.5 - web3-shh: 1.7.5 - web3-utils: 1.7.5 - checksum: 823c015a5820480ca9216038199f2df40e21a9ccb66be4e18a19aada0c9dd21b45b270042823a16e7e9a65e6b63f4fd3a0f2acb930a2ec0fe6d80a3791e6c63a - languageName: node - linkType: hard - "webcrypto-core@npm:^1.7.7": version: 1.7.7 resolution: "webcrypto-core@npm:1.7.7" @@ -40874,43 +37343,21 @@ __metadata: languageName: node linkType: hard -"webpack-dev-middleware@npm:^3.7.3": - version: 3.7.3 - resolution: "webpack-dev-middleware@npm:3.7.3" +"webpack-dev-middleware@npm:^6.1.1": + version: 6.1.1 + resolution: "webpack-dev-middleware@npm:6.1.1" dependencies: - memory-fs: ^0.4.1 - mime: ^2.4.4 - mkdirp: ^0.5.1 + colorette: ^2.0.10 + memfs: ^3.4.12 + mime-types: ^2.1.31 range-parser: ^1.2.1 - webpack-log: ^2.0.0 + schema-utils: ^4.0.0 peerDependencies: - webpack: ^4.0.0 || ^5.0.0 - checksum: faa3cdd7b82d23c35b8f45903556eadd92b0795c76f3e08e234d53f7bab3de13331096a71968e7e9905770ae5de7a4f75ddf09f66d1e0bbabfecbb30db0f71e3 - languageName: node - linkType: hard - -"webpack-dev-middleware@npm:^4.1.0": - version: 4.3.0 - resolution: "webpack-dev-middleware@npm:4.3.0" - dependencies: - colorette: ^1.2.2 - mem: ^8.1.1 - memfs: ^3.2.2 - mime-types: ^2.1.30 - range-parser: ^1.2.1 - schema-utils: ^3.0.0 - peerDependencies: - webpack: ^4.0.0 || ^5.0.0 - checksum: 113389f9aa488312758b329f9fdd34ff646a50822c197d0e1dc7ce171b1d826a607c92702a60439fead24e495d5b2c9959d90948fc272f7472a301d37cec1e8d - languageName: node - linkType: hard - -"webpack-filter-warnings-plugin@npm:^1.2.1": - version: 1.2.1 - resolution: "webpack-filter-warnings-plugin@npm:1.2.1" - peerDependencies: - webpack: ^2.0.0 || ^3.0.0 || ^4.0.0 - checksum: 91d853596ddb81b6c4673e03f55ab18f7f652ef7a278533623910d53b59df1c661b7f2cb2ef859eabc5fd615daa5be3f9f4c00a59ab33192b93f1be7c8908ace + webpack: ^5.0.0 + peerDependenciesMeta: + webpack: + optional: true + checksum: 3bced6ef644b20f2e76df9db1c5209f4a73761d7d307fe29ae20bc00397d4f9727af2607f98794c6c7c57d5c1a48bfa12690168b08f5d46820b07aab2c63640c languageName: node linkType: hard @@ -40926,26 +37373,6 @@ __metadata: languageName: node linkType: hard -"webpack-log@npm:^2.0.0": - version: 2.0.0 - resolution: "webpack-log@npm:2.0.0" - dependencies: - ansi-colors: ^3.0.0 - uuid: ^3.3.2 - checksum: 4757179310995e20633ec2d77a8c1ac11e4135c84745f57148692f8195f1c0f8ec122c77d0dc16fc484b7d301df6674f36c9fc6b1ff06b5cf142abaaf5d24f4f - languageName: node - linkType: hard - -"webpack-sources@npm:^1.4.0, webpack-sources@npm:^1.4.1, webpack-sources@npm:^1.4.3": - version: 1.4.3 - resolution: "webpack-sources@npm:1.4.3" - dependencies: - source-list-map: ^2.0.0 - source-map: ~0.6.1 - checksum: 37463dad8d08114930f4bc4882a9602941f07c9f0efa9b6bc78738cd936275b990a596d801ef450d022bb005b109b9f451dd087db2f3c9baf53e8e22cf388f79 - languageName: node - linkType: hard - "webpack-sources@npm:^2.0.0 || ^3.0.0, webpack-sources@npm:^3.2.3": version: 3.2.3 resolution: "webpack-sources@npm:3.2.3" @@ -40953,112 +37380,35 @@ __metadata: languageName: node linkType: hard -"webpack-virtual-modules@npm:^0.2.2": - version: 0.2.2 - resolution: "webpack-virtual-modules@npm:0.2.2" - dependencies: - debug: ^3.0.0 - checksum: 38706eb5ffd7a5120a731c2d35d4de5714cb16dcc87076276d7b130e3221d2665f5c30696bfde5edfddc6b7ae40d772096a0019202260a9d4e19df43b7cf9c95 +"webpack-virtual-modules@npm:^0.5.0": + version: 0.5.0 + resolution: "webpack-virtual-modules@npm:0.5.0" + checksum: 22b59257b55c89d11ae295b588b683ee9fdf3aeb591bc7b6f88ac1d69cb63f4fcb507666ea986866dfae161a1fa534ad6fb4e2ea91bbcd0a6d454368d7d4c64b languageName: node linkType: hard -"webpack-virtual-modules@npm:^0.4.1": - version: 0.4.6 - resolution: "webpack-virtual-modules@npm:0.4.6" - checksum: cb056ba8c50b35436ae43149554b051b80065b0cf79f2d528ca692ddf344a422ac71c415adb9da83dc3acc6e7e58f518388cc1cd11cb4fa29dc04f2c4494afe3 +"webpack-virtual-modules@npm:^0.6.0": + version: 0.6.1 + resolution: "webpack-virtual-modules@npm:0.6.1" + checksum: 0cd993d7b00af0ed89eee96ed6dcb2307fa8dc38e37f34e78690088314976aa79a31cf146553c5e414cdc87222878c5e4979abeb0b00bf6dc9c6f018604a1310 languageName: node linkType: hard -"webpack@npm:4": - version: 4.46.0 - resolution: "webpack@npm:4.46.0" - dependencies: - "@webassemblyjs/ast": 1.9.0 - "@webassemblyjs/helper-module-context": 1.9.0 - "@webassemblyjs/wasm-edit": 1.9.0 - "@webassemblyjs/wasm-parser": 1.9.0 - acorn: ^6.4.1 - ajv: ^6.10.2 - ajv-keywords: ^3.4.1 - chrome-trace-event: ^1.0.2 - enhanced-resolve: ^4.5.0 - eslint-scope: ^4.0.3 - json-parse-better-errors: ^1.0.2 - loader-runner: ^2.4.0 - loader-utils: ^1.2.3 - memory-fs: ^0.4.1 - micromatch: ^3.1.10 - mkdirp: ^0.5.3 - neo-async: ^2.6.1 - node-libs-browser: ^2.2.1 - schema-utils: ^1.0.0 - tapable: ^1.1.3 - terser-webpack-plugin: ^1.4.3 - watchpack: ^1.7.4 - webpack-sources: ^1.4.1 - peerDependenciesMeta: - webpack-cli: - optional: true - webpack-command: - optional: true - bin: - webpack: bin/webpack.js - checksum: 013fa24c00d4261e16ebca60353fa6f848e417b5a44bdf28c16ebebd67fa61e960420bb314c8df05cfe2dad9b90efabcf38fd6875f2361922769a0384085ef1e - languageName: node - linkType: hard - -"webpack@npm:>=4.43.0 <6.0.0": - version: 5.73.0 - resolution: "webpack@npm:5.73.0" +"webpack@npm:5": + version: 5.89.0 + resolution: "webpack@npm:5.89.0" dependencies: "@types/eslint-scope": ^3.7.3 - "@types/estree": ^0.0.51 - "@webassemblyjs/ast": 1.11.1 - "@webassemblyjs/wasm-edit": 1.11.1 - "@webassemblyjs/wasm-parser": 1.11.1 - acorn: ^8.4.1 - acorn-import-assertions: ^1.7.6 - browserslist: ^4.14.5 - chrome-trace-event: ^1.0.2 - enhanced-resolve: ^5.9.3 - es-module-lexer: ^0.9.0 - eslint-scope: 5.1.1 - events: ^3.2.0 - glob-to-regexp: ^0.4.1 - graceful-fs: ^4.2.9 - json-parse-even-better-errors: ^2.3.1 - loader-runner: ^4.2.0 - mime-types: ^2.1.27 - neo-async: ^2.6.2 - schema-utils: ^3.1.0 - tapable: ^2.1.1 - terser-webpack-plugin: ^5.1.3 - watchpack: ^2.3.1 - webpack-sources: ^3.2.3 - peerDependenciesMeta: - webpack-cli: - optional: true - bin: - webpack: bin/webpack.js - checksum: aa434a241bad6176b68e1bf0feb1972da4dcbf27cb3d94ae24f6eb31acc37dceb9c4aae55e068edca75817bfe91f13cd20b023ac55d9b1b2f8b66a4037c9468f - languageName: node - linkType: hard - -"webpack@npm:^5.9.0": - version: 5.74.0 - resolution: "webpack@npm:5.74.0" - dependencies: - "@types/eslint-scope": ^3.7.3 - "@types/estree": ^0.0.51 - "@webassemblyjs/ast": 1.11.1 - "@webassemblyjs/wasm-edit": 1.11.1 - "@webassemblyjs/wasm-parser": 1.11.1 + "@types/estree": ^1.0.0 + "@webassemblyjs/ast": ^1.11.5 + "@webassemblyjs/wasm-edit": ^1.11.5 + "@webassemblyjs/wasm-parser": ^1.11.5 acorn: ^8.7.1 - acorn-import-assertions: ^1.7.6 + acorn-import-assertions: ^1.9.0 browserslist: ^4.14.5 chrome-trace-event: ^1.0.2 - enhanced-resolve: ^5.10.0 - es-module-lexer: ^0.9.0 + enhanced-resolve: ^5.15.0 + es-module-lexer: ^1.2.1 eslint-scope: 5.1.1 events: ^3.2.0 glob-to-regexp: ^0.4.1 @@ -41067,9 +37417,9 @@ __metadata: loader-runner: ^4.2.0 mime-types: ^2.1.27 neo-async: ^2.6.2 - schema-utils: ^3.1.0 + schema-utils: ^3.2.0 tapable: ^2.1.1 - terser-webpack-plugin: ^5.1.3 + terser-webpack-plugin: ^5.3.7 watchpack: ^2.4.0 webpack-sources: ^3.2.3 peerDependenciesMeta: @@ -41077,7 +37427,7 @@ __metadata: optional: true bin: webpack: bin/webpack.js - checksum: 320c41369a75051b19e18c63f408b3dcc481852e992f83d311771c5ec0f05f2946385e8ebef62030cf3587f0a3d2f12779ffdb191569a966847289ba7313f946 + checksum: 43fe0dbc30e168a685ef5a86759d5016a705f6563b39a240aa00826a80637d4a3deeb8062e709d6a4b05c63e796278244c84b04174704dc4a37bedb0f565c5ed languageName: node linkType: hard @@ -41099,20 +37449,6 @@ __metadata: languageName: node linkType: hard -"websocket@npm:^1.0.32": - version: 1.0.34 - resolution: "websocket@npm:1.0.34" - dependencies: - bufferutil: ^4.0.1 - debug: ^2.2.0 - es5-ext: ^0.10.50 - typedarray-to-buffer: ^3.1.5 - utf-8-validate: ^5.0.2 - yaeti: ^0.0.6 - checksum: 8a0ce6d79cc1334bb6ea0d607f0092f3d32700b4dd19e4d5540f2a85f3b50e1f8110da0e4716737056584dde70bbebcb40bbd94bbb437d7468c71abfbfa077d8 - languageName: node - linkType: hard - "whatwg-encoding@npm:^2.0.0": version: 2.0.0 resolution: "whatwg-encoding@npm:2.0.0" @@ -41179,6 +37515,18 @@ __metadata: languageName: node linkType: hard +"which-collection@npm:^1.0.1": + version: 1.0.1 + resolution: "which-collection@npm:1.0.1" + dependencies: + is-map: ^2.0.1 + is-set: ^2.0.1 + is-weakmap: ^2.0.1 + is-weakset: ^2.0.1 + checksum: c815bbd163107ef9cb84f135e6f34453eaf4cca994e7ba85ddb0d27cea724c623fae2a473ceccfd5549c53cc65a5d82692de418166df3f858e1e5dc60818581c + languageName: node + linkType: hard + "which-module@npm:^2.0.0": version: 2.0.0 resolution: "which-module@npm:2.0.0" @@ -41196,17 +37544,16 @@ __metadata: languageName: node linkType: hard -"which-typed-array@npm:^1.1.2": - version: 1.1.7 - resolution: "which-typed-array@npm:1.1.7" +"which-typed-array@npm:^1.1.11, which-typed-array@npm:^1.1.13, which-typed-array@npm:^1.1.2": + version: 1.1.13 + resolution: "which-typed-array@npm:1.1.13" dependencies: available-typed-arrays: ^1.0.5 - call-bind: ^1.0.2 - es-abstract: ^1.18.5 - foreach: ^2.0.5 + call-bind: ^1.0.4 + for-each: ^0.3.3 + gopd: ^1.0.1 has-tostringtag: ^1.0.0 - is-typed-array: ^1.1.7 - checksum: 147837cf5866e36b6b2e427731709e02f79f1578477cbde68ed773a5307520a6cb6836c73c79c30690a473266ee59010b83b6d9b25d8d677a40ff77fb37a8a84 + checksum: 3828a0d5d72c800e369d447e54c7620742a4cc0c9baf1b5e8c17e9b6ff90d8d861a3a6dd4800f1953dbf80e5e5cec954a289e5b4a223e3bee4aeb1f8c5f33309 languageName: node linkType: hard @@ -41244,7 +37591,7 @@ __metadata: languageName: node linkType: hard -"wide-align@npm:^1.1.2, wide-align@npm:^1.1.5": +"wide-align@npm:^1.1.5": version: 1.1.5 resolution: "wide-align@npm:1.1.5" dependencies: @@ -41262,7 +37609,7 @@ __metadata: languageName: node linkType: hard -"word-wrap@npm:^1.2.3, word-wrap@npm:~1.2.3": +"word-wrap@npm:^1.2.3": version: 1.2.3 resolution: "word-wrap@npm:1.2.3" checksum: 30b48f91fcf12106ed3186ae4fa86a6a1842416df425be7b60485de14bec665a54a68e4b5156647dec3a70f25e84d270ca8bc8cd23182ed095f5c7206a938c1f @@ -41276,24 +37623,6 @@ __metadata: languageName: node linkType: hard -"worker-farm@npm:^1.7.0": - version: 1.7.0 - resolution: "worker-farm@npm:1.7.0" - dependencies: - errno: ~0.1.7 - checksum: eab917530e1feddf157ec749e9c91b73a886142daa7fdf3490bccbf7b548b2576c43ab8d0a98e72ac755cbc101ca8647a7b1ff2485fddb9e8f53c40c77f5a719 - languageName: node - linkType: hard - -"worker-rpc@npm:^0.1.0": - version: 0.1.1 - resolution: "worker-rpc@npm:0.1.1" - dependencies: - microevent.ts: ~0.1.1 - checksum: 8f8607506172f44c05490f3ccf13e5c1f430eeb9b6116a405919c186b8b17add13bbb22467a0dbcd18ec7fcb080709a15738182e0003c5fbe2144721ea00f357 - languageName: node - linkType: hard - "wrap-ansi-cjs@npm:wrap-ansi@^7.0.0, wrap-ansi@npm:^7.0.0": version: 7.0.0 resolution: "wrap-ansi@npm:7.0.0" @@ -41334,15 +37663,24 @@ __metadata: languageName: node linkType: hard -"write-file-atomic@npm:^3.0.0": - version: 3.0.3 - resolution: "write-file-atomic@npm:3.0.3" +"write-file-atomic@npm:^2.3.0": + version: 2.4.3 + resolution: "write-file-atomic@npm:2.4.3" + dependencies: + graceful-fs: ^4.1.11 + imurmurhash: ^0.1.4 + signal-exit: ^3.0.2 + checksum: 2db81f92ae974fd87ab4a5e7932feacaca626679a7c98fcc73ad8fcea5a1950eab32fa831f79e9391ac99b562ca091ad49be37a79045bd65f595efbb8f4596ae + languageName: node + linkType: hard + +"write-file-atomic@npm:^4.0.2": + version: 4.0.2 + resolution: "write-file-atomic@npm:4.0.2" dependencies: imurmurhash: ^0.1.4 - is-typedarray: ^1.0.0 - signal-exit: ^3.0.2 - typedarray-to-buffer: ^3.1.5 - checksum: c55b24617cc61c3a4379f425fc62a386cc51916a9b9d993f39734d005a09d5a4bb748bc251f1304e7abd71d0a26d339996c275955f527a131b1dcded67878280 + signal-exit: ^3.0.7 + checksum: 5da60bd4eeeb935eec97ead3df6e28e5917a6bd317478e4a85a5285e8480b8ed96032bbcc6ecd07b236142a24f3ca871c924ec4a6575e623ec1b11bf8c1c253c languageName: node linkType: hard @@ -41361,14 +37699,12 @@ __metadata: languageName: node linkType: hard -"ws@npm:^3.0.0": - version: 3.3.3 - resolution: "ws@npm:3.3.3" +"ws@npm:^6.1.0": + version: 6.2.2 + resolution: "ws@npm:6.2.2" dependencies: async-limiter: ~1.0.0 - safe-buffer: ~5.1.0 - ultron: ~1.1.0 - checksum: 20b7bf34bb88715b9e2d435b76088d770e063641e7ee697b07543815fabdb752335261c507a973955e823229d0af8549f39cc669825e5c8404aa0422615c81d9 + checksum: aec3154ec51477c094ac2cb5946a156e17561a581fa27005cbf22c53ac57f8d4e5f791dd4bbba6a488602cb28778c8ab7df06251d590507c3c550fd8ebeee949 languageName: node linkType: hard @@ -41447,45 +37783,7 @@ __metadata: languageName: node linkType: hard -"x-default-browser@npm:^0.4.0": - version: 0.4.0 - resolution: "x-default-browser@npm:0.4.0" - dependencies: - default-browser-id: ^1.0.4 - dependenciesMeta: - default-browser-id: - optional: true - bin: - x-default-browser: bin/x-default-browser.js - checksum: 9649fe6b4b91de93d5a48a5042b55a6e15c87d2514bc4f2e12582f8b25c1a6810fafc6f4c454fb531540e431e32a0a26ac130e418c0ce5c6ca892fb01945ea9e - languageName: node - linkType: hard - -"xhr-request-promise@npm:^0.1.2": - version: 0.1.3 - resolution: "xhr-request-promise@npm:0.1.3" - dependencies: - xhr-request: ^1.1.0 - checksum: 2e127c0de063db0aa704b8d5b805fd34f0f07cac21284a88c81f96727eb71af7d2dfa3ad43e96ed3e851e05a1bd88933048ec183378b48594dfbead1c9043aee - languageName: node - linkType: hard - -"xhr-request@npm:^1.0.1, xhr-request@npm:^1.1.0": - version: 1.1.0 - resolution: "xhr-request@npm:1.1.0" - dependencies: - buffer-to-arraybuffer: ^0.0.5 - object-assign: ^4.1.1 - query-string: ^5.0.1 - simple-get: ^2.7.0 - timed-out: ^4.0.1 - url-set-query: ^1.0.0 - xhr: ^2.0.4 - checksum: fd8186f33e8696dabcd1ad2983f8125366f4cd799c6bf30aa8d942ac481a7e685a5ee8c38eeee6fca715a7084b432a3a326991375557dc4505c928d3f7b0f0a8 - languageName: node - linkType: hard - -"xhr@npm:^2.0.1, xhr@npm:^2.0.4, xhr@npm:^2.3.3": +"xhr@npm:^2.0.1": version: 2.6.0 resolution: "xhr@npm:2.6.0" dependencies: @@ -41621,7 +37919,7 @@ __metadata: languageName: node linkType: hard -"xtend@npm:^4.0.0, xtend@npm:^4.0.1, xtend@npm:^4.0.2, xtend@npm:~4.0.1": +"xtend@npm:^4.0.0, xtend@npm:^4.0.2, xtend@npm:~4.0.1": version: 4.0.2 resolution: "xtend@npm:4.0.2" checksum: ac5dfa738b21f6e7f0dd6e65e1b3155036d68104e67e5d5d1bde74892e327d7e5636a076f625599dc394330a731861e87343ff184b0047fef1360a7ec0a5a36a @@ -41668,13 +37966,6 @@ __metadata: languageName: node linkType: hard -"yaeti@npm:^0.0.6": - version: 0.0.6 - resolution: "yaeti@npm:0.0.6" - checksum: 6db12c152f7c363b80071086a3ebf5032e03332604eeda988872be50d6c8469e1f13316175544fa320f72edad696c2d83843ad0ff370659045c1a68bcecfcfea - languageName: node - linkType: hard - "yallist@npm:4.0.0, yallist@npm:^4.0.0": version: 4.0.0 resolution: "yallist@npm:4.0.0" @@ -41689,7 +37980,7 @@ __metadata: languageName: node linkType: hard -"yallist@npm:^3.0.0, yallist@npm:^3.0.2, yallist@npm:^3.1.1": +"yallist@npm:^3.0.2": version: 3.1.1 resolution: "yallist@npm:3.1.1" checksum: 48f7bb00dc19fc635a13a39fe547f527b10c9290e7b3e836b9a8f1ca04d4d342e85714416b3c2ab74949c9c66f9cebb0473e6bc353b79035356103b47641285d @@ -41858,6 +38149,16 @@ __metadata: languageName: node linkType: hard +"yauzl@npm:^2.10.0": + version: 2.10.0 + resolution: "yauzl@npm:2.10.0" + dependencies: + buffer-crc32: ~0.2.3 + fd-slicer: ~1.1.0 + checksum: 7f21fe0bbad6e2cb130044a5d1d0d5a0e5bf3d8d4f8c4e6ee12163ce798fee3de7388d22a7a0907f563ac5f9d40f8699a223d3d5c1718da90b0156da6904022b + languageName: node + linkType: hard + "yn@npm:3.1.1": version: 3.1.1 resolution: "yn@npm:3.1.1" @@ -41998,13 +38299,6 @@ __metadata: languageName: node linkType: hard -"zwitch@npm:^1.0.0": - version: 1.0.5 - resolution: "zwitch@npm:1.0.5" - checksum: 28a1bebacab3bc60150b6b0a2ba1db2ad033f068e81f05e4892ec0ea13ae63f5d140a1d692062ac0657840c8da076f35b94433b5f1c329d7803b247de80f064a - languageName: node - linkType: hard - "zwitch@npm:^2.0.0, zwitch@npm:^2.0.4": version: 2.0.4 resolution: "zwitch@npm:2.0.4"