Fixed type errors
This commit is contained in:
@@ -0,0 +1,28 @@
|
||||
import React, { useCallback } from "react";
|
||||
|
||||
export type CopyTextProps = {
|
||||
children?: React.ReactNode;
|
||||
value: string;
|
||||
className?: string;
|
||||
onCopied?: () => void;
|
||||
};
|
||||
|
||||
export function CopyText({
|
||||
children,
|
||||
value,
|
||||
className,
|
||||
onCopied,
|
||||
}: CopyTextProps) {
|
||||
const onClick = useCallback(() => {
|
||||
navigator.clipboard.writeText(value);
|
||||
if (onCopied) {
|
||||
onCopied();
|
||||
}
|
||||
}, [value, onCopied]);
|
||||
|
||||
return (
|
||||
<div onClick={onClick} className={`${className}`}>
|
||||
{children}
|
||||
</div>
|
||||
);
|
||||
}
|
||||
@@ -1,7 +1,7 @@
|
||||
import { ClipboardIcon } from "@heroicons/react/24/outline";
|
||||
import classNames from "classnames";
|
||||
import { useCallback, useState } from "react";
|
||||
import { CopyText } from "../libraries/ui/src/components/CopyText";
|
||||
import { CopyText } from "./CopyText";
|
||||
|
||||
const variantStyle = {
|
||||
slate:
|
||||
|
||||
@@ -0,0 +1,53 @@
|
||||
import classNames from "classnames";
|
||||
|
||||
type GitHubLoginButtonProps = {
|
||||
label?: string;
|
||||
className?: string;
|
||||
onClick?: () => void;
|
||||
};
|
||||
|
||||
export function GitHubLoginButton({
|
||||
label = "Login with GitHub",
|
||||
className,
|
||||
onClick,
|
||||
}: GitHubLoginButtonProps) {
|
||||
return (
|
||||
<button
|
||||
className={classNames(
|
||||
"flex items-center justify-center gap-2 rounded-md bg-gray-800 py-3 pl-5 pr-6 text-lg font-medium text-white hover:bg-slate-900 transition",
|
||||
className
|
||||
)}
|
||||
onClick={onClick}
|
||||
>
|
||||
<OctoKitty className="h-5 w-5" />
|
||||
{label}
|
||||
</button>
|
||||
);
|
||||
}
|
||||
|
||||
export function OctoKitty({ className }: { className?: string }) {
|
||||
return (
|
||||
<svg
|
||||
version="1.2"
|
||||
baseProfile="tiny"
|
||||
id="Layer_1"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
x="0px"
|
||||
y="0px"
|
||||
viewBox="0 0 2350 2314.8"
|
||||
xmlSpace="preserve"
|
||||
fill="currentColor"
|
||||
className={className}
|
||||
>
|
||||
<path
|
||||
d="M1175,0C525.8,0,0,525.8,0,1175c0,552.2,378.9,1010.5,890.1,1139.7c-5.9-14.7-8.8-35.3-8.8-55.8v-199.8H734.4
|
||||
c-79.3,0-152.8-35.2-185.1-99.9c-38.2-70.5-44.1-179.2-141-246.8c-29.4-23.5-5.9-47,26.4-44.1c61.7,17.6,111.6,58.8,158.6,120.4
|
||||
c47,61.7,67.6,76.4,155.7,76.4c41.1,0,105.7-2.9,164.5-11.8c32.3-82.3,88.1-155.7,155.7-190.9c-393.6-47-581.6-240.9-581.6-505.3
|
||||
c0-114.6,49.9-223.3,132.2-317.3c-26.4-91.1-61.7-279.1,11.8-352.5c176.3,0,282,114.6,308.4,143.9c88.1-29.4,185.1-47,284.9-47
|
||||
c102.8,0,196.8,17.6,284.9,47c26.4-29.4,132.2-143.9,308.4-143.9c70.5,70.5,38.2,261.4,8.8,352.5c82.3,91.1,129.3,202.7,129.3,317.3
|
||||
c0,264.4-185.1,458.3-575.7,499.4c108.7,55.8,185.1,214.4,185.1,331.9V2256c0,8.8-2.9,17.6-2.9,26.4
|
||||
C2021,2123.8,2350,1689.1,2350,1175C2350,525.8,1824.2,0,1175,0L1175,0z"
|
||||
/>
|
||||
</svg>
|
||||
);
|
||||
}
|
||||
@@ -0,0 +1,83 @@
|
||||
import {
|
||||
EyeIcon,
|
||||
BoltIcon,
|
||||
BanknotesIcon,
|
||||
BugAntIcon,
|
||||
BellAlertIcon,
|
||||
} from "@heroicons/react/24/outline";
|
||||
|
||||
export function LoginPromoPanel() {
|
||||
return (
|
||||
<div className="hidden lg:flex flex-col justify-center p-12 min-w-[30vw] h-full bg-midnight border-r border-white/10">
|
||||
<ul>
|
||||
<li className="flex gap-2 text-white">
|
||||
<div className="flex flex-col items-center gap-2 mt-1.5">
|
||||
<EyeIcon className="h-8 w-8 text-toxic" />
|
||||
<div className="w-0.5 h-full bg-toxic/50"></div>
|
||||
</div>
|
||||
|
||||
<div className="mb-1">
|
||||
<h2 className="font-semibold text-2xl">Full observability</h2>
|
||||
<p className="mb-10 text-white/80">
|
||||
View every single API request and response in real-time from your
|
||||
dashboard.
|
||||
</p>
|
||||
</div>
|
||||
</li>
|
||||
<li className="flex gap-2 text-white">
|
||||
<div className="flex flex-col items-center gap-2 mt-1.5">
|
||||
<BoltIcon className="h-8 w-8 text-toxic" />
|
||||
<div className="w-0.5 h-full bg-toxic/50"></div>
|
||||
</div>
|
||||
|
||||
<div className="mb-1">
|
||||
<h2 className="font-semibold text-2xl">Faster responses</h2>
|
||||
<p className="mb-10 text-white/80">
|
||||
Get less than 10ms response times.
|
||||
</p>
|
||||
</div>
|
||||
</li>
|
||||
<li className="flex gap-2 text-white">
|
||||
<div className="flex flex-col items-center gap-2 mt-1.5">
|
||||
<BanknotesIcon className="h-8 w-8 text-toxic" />
|
||||
<div className="w-0.5 h-full bg-toxic/50"></div>
|
||||
</div>
|
||||
|
||||
<div className="mb-1">
|
||||
<h2 className="font-semibold text-2xl">Save money</h2>
|
||||
<p className="mb-10 text-white/80">
|
||||
Avoid annoying rate limits by enabling caching – while also saving
|
||||
money.
|
||||
</p>
|
||||
</div>
|
||||
</li>
|
||||
<li className="flex gap-2 text-white">
|
||||
<div className="flex flex-col items-center gap-2 mt-1.5">
|
||||
<BugAntIcon className="h-8 w-8 text-toxic" />
|
||||
<div className="w-0.5 h-full bg-toxic/50"></div>
|
||||
</div>
|
||||
|
||||
<div className="mb-1">
|
||||
<h2 className="font-semibold text-2xl">Problem solved</h2>
|
||||
<p className="mb-10 text-white/80">
|
||||
We deal with CORS issues for you.
|
||||
</p>
|
||||
</div>
|
||||
</li>
|
||||
<li className="flex gap-3 text-white">
|
||||
<div className="flex flex-col items-center gap-2 mt-1.5">
|
||||
<BellAlertIcon className="ml-1.5 h-5 w-5 text-toxic" />
|
||||
</div>
|
||||
|
||||
<div className="mb-1">
|
||||
<h2 className="font-semibold text-2xl">Automatic alerts</h2>
|
||||
<p className="mb-10 text-white/80">
|
||||
Get alerts when issues arise and debug them using our inline help
|
||||
prompts.
|
||||
</p>
|
||||
</div>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
@@ -5,7 +5,7 @@ import type {
|
||||
UseCodeMirror,
|
||||
} from "@uiw/react-codemirror";
|
||||
import { useCodeMirror } from "@uiw/react-codemirror";
|
||||
import clsx from "clsx";
|
||||
import classNames from "classnames";
|
||||
import { useRef, useEffect } from "react";
|
||||
import { getEditorSetup } from "./codeMirrorSetup";
|
||||
import { lightTheme } from "./codeMirrorTheme";
|
||||
@@ -77,7 +77,7 @@ export function JSONEditor(opts: JSONEditorProps) {
|
||||
|
||||
return (
|
||||
<div
|
||||
className={clsx("no-scrollbar overflow-y-auto", opts.className)}
|
||||
className={classNames("no-scrollbar overflow-y-auto", opts.className)}
|
||||
ref={editor}
|
||||
onBlur={() => {
|
||||
if (!onBlur) return;
|
||||
|
||||
@@ -5,7 +5,7 @@ import type {
|
||||
UseCodeMirror,
|
||||
} from "@uiw/react-codemirror";
|
||||
import { useCodeMirror } from "@uiw/react-codemirror";
|
||||
import clsx from "clsx";
|
||||
import classNames from "classnames";
|
||||
import { useRef, useEffect } from "react";
|
||||
import { getEditorSetup } from "./codeMirrorSetup";
|
||||
import { darkTheme } from "./codeMirrorTheme";
|
||||
@@ -68,7 +68,7 @@ export function CodeEditor(opts: CodeEditorProps) {
|
||||
|
||||
return (
|
||||
<div
|
||||
className={clsx("no-scrollbar overflow-y-auto", opts.className)}
|
||||
className={classNames("no-scrollbar overflow-y-auto", opts.className)}
|
||||
ref={editor}
|
||||
onBlur={() => {
|
||||
if (!onBlur) return;
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import clsx from "clsx";
|
||||
import classNames from "classnames";
|
||||
|
||||
const roundedStyles = {
|
||||
roundedLeft:
|
||||
@@ -21,7 +21,7 @@ export function Input({
|
||||
roundedEdges = "roundedFull",
|
||||
...props
|
||||
}: InputProps) {
|
||||
const classes = clsx(roundedStyles[roundedEdges], className);
|
||||
const classes = classNames(roundedStyles[roundedEdges], className);
|
||||
|
||||
return (
|
||||
<input
|
||||
|
||||
@@ -11,6 +11,9 @@ const EnvironmentSchema = z.object({
|
||||
MAGIC_LINK_SECRET: z.string(),
|
||||
GITHUB_CLIENT_ID: z.string(),
|
||||
GITHUB_SECRET: z.string(),
|
||||
MAILGUN_KEY: z.string(),
|
||||
FROM_EMAIL: z.string(),
|
||||
MERGENT_KEY: z.string(),
|
||||
});
|
||||
|
||||
export type Environment = z.infer<typeof EnvironmentSchema>;
|
||||
|
||||
@@ -0,0 +1,174 @@
|
||||
import type { ActionArgs, LoaderArgs, MetaFunction } from "@remix-run/node";
|
||||
import { redirect } from "@remix-run/node";
|
||||
import { Form, Link, useLoaderData, useTransition } from "@remix-run/react";
|
||||
import {
|
||||
commitSession,
|
||||
getUserSession,
|
||||
} from "~/services/sessionStorage.server";
|
||||
import { authenticator } from "~/services/auth.server";
|
||||
import { ArrowLeftIcon } from "@heroicons/react/24/solid";
|
||||
import { InboxArrowDownIcon } from "@heroicons/react/24/outline";
|
||||
import { z } from "zod";
|
||||
import { LoginPromoPanel } from "~/components/LoginPromoPanel";
|
||||
import { Logo } from "~/components/Logo";
|
||||
|
||||
export async function loader({ request }: LoaderArgs) {
|
||||
await authenticator.isAuthenticated(request, {
|
||||
successRedirect: "/",
|
||||
});
|
||||
|
||||
const session = await getUserSession(request);
|
||||
|
||||
return { magicLinkSent: session.has("apihero:magiclink") };
|
||||
}
|
||||
|
||||
export async function action({ request }: ActionArgs) {
|
||||
const clonedRequest = request.clone();
|
||||
|
||||
const payload = Object.fromEntries(await clonedRequest.formData());
|
||||
|
||||
const { action } = z
|
||||
.object({
|
||||
action: z.enum(["send", "reset"]),
|
||||
})
|
||||
.parse(payload);
|
||||
|
||||
if (action === "send") {
|
||||
await authenticator.authenticate("email-link", request, {
|
||||
successRedirect: "/login/magic",
|
||||
failureRedirect: "/login/magic",
|
||||
});
|
||||
} else {
|
||||
const session = await getUserSession(request);
|
||||
session.unset("apihero:magiclink");
|
||||
|
||||
return redirect("/login/magic", {
|
||||
headers: {
|
||||
"Set-Cookie": await commitSession(session),
|
||||
},
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
export const meta: MetaFunction = () => {
|
||||
return {
|
||||
title: "Login",
|
||||
};
|
||||
};
|
||||
|
||||
export default function LoginMagicLinkPage() {
|
||||
const { magicLinkSent } = useLoaderData<typeof loader>();
|
||||
const transition = useTransition();
|
||||
|
||||
return (
|
||||
<div className="flex h-screen w-screen justify-between overflow-y-scroll">
|
||||
<LoginPromoPanel />
|
||||
<div className="flex grow items-center justify-center bg-gradient-background h-full w-full p-4">
|
||||
<div className="mt-[100px] flex w-full max-w-xl flex-col justify-between rounded-lg border bg-white shadow-md lg:mt-0 lg:min-h-[430px]">
|
||||
<Form className="flex h-full flex-grow flex-col" method="post">
|
||||
<div className="flex flex-grow flex-col items-center justify-between px-4 pt-6 pb-2 text-center lg:px-4">
|
||||
<a href="https://apihero.run">
|
||||
<Logo className="mb-4 h-10 w-auto lg:mb-6 lg:mt-8 lg:h-14" />
|
||||
</a>
|
||||
{magicLinkSent ? (
|
||||
<>
|
||||
<InboxArrowDownIcon className="mt-0 h-12 w-12 text-blue-500" />
|
||||
<h3 className="mb-2 text-xl">We've sent you a magic link!</h3>
|
||||
<p className="max-w-sm text-base text-slate-500">
|
||||
We sent you an email which contains a magic link that will
|
||||
log you in to your account.
|
||||
</p>
|
||||
<div className="mt-10 flex w-full justify-between">
|
||||
<button
|
||||
type="submit"
|
||||
name="action"
|
||||
value="reset"
|
||||
className="flex items-center justify-center gap-1 text-sm text-slate-500 transition hover:text-slate-800"
|
||||
>
|
||||
<ArrowLeftIcon className="h-3 w-3" />
|
||||
Re-enter email
|
||||
</button>
|
||||
|
||||
<Link
|
||||
className="flex items-center justify-center gap-1 text-sm text-slate-500 transition hover:text-slate-800"
|
||||
to="/login"
|
||||
>
|
||||
Log in using another option
|
||||
</Link>
|
||||
</div>
|
||||
</>
|
||||
) : (
|
||||
<>
|
||||
<h2 className="mb-2 text-2xl font-bold tracking-tight text-slate-700 lg:text-4xl">
|
||||
Welcome to Trigger.dev
|
||||
</h2>
|
||||
<p className="mb-5 text-base lg:text-lg text-slate-600">
|
||||
Enter your email address to get started.
|
||||
</p>
|
||||
<div className="flex w-full max-w-sm flex-col">
|
||||
<input
|
||||
className="w-full rounded-lg border border-slate-300 bg-slate-50 px-4 py-2 text-sm text-slate-700 focus:border-blue-500 focus:outline-none"
|
||||
type="email"
|
||||
name="email"
|
||||
placeholder="Email Address"
|
||||
required
|
||||
/>
|
||||
|
||||
{transition.state === "submitting" &&
|
||||
transition.type === "actionSubmission" &&
|
||||
transition.submission.formData.get("action") === "send" ? (
|
||||
<button
|
||||
className="mt-2 mb-6 flex w-full items-center justify-center rounded-lg border border-transparent bg-blue-500 px-4 py-2 text-sm font-medium text-white transition hover:bg-blue-600 focus:outline-none focus:ring-2 focus:ring-blue-500 focus:ring-offset-2"
|
||||
name="action"
|
||||
value="send"
|
||||
type="submit"
|
||||
>
|
||||
Sending...
|
||||
</button>
|
||||
) : (
|
||||
<button
|
||||
className="mt-2 mb-6 flex w-full items-center justify-center rounded-lg border border-transparent bg-blue-500 px-4 py-2 text-sm font-medium text-white transition hover:bg-blue-600 focus:outline-none focus:ring-2 focus:ring-blue-500 focus:ring-offset-2"
|
||||
name="action"
|
||||
value="send"
|
||||
type="submit"
|
||||
>
|
||||
Send a magic link
|
||||
</button>
|
||||
)}
|
||||
|
||||
<Link
|
||||
className="flex items-center justify-center gap-1 text-sm text-slate-500 transition hover:text-slate-800"
|
||||
to="/login"
|
||||
>
|
||||
<ArrowLeftIcon className="h-3 w-3" />
|
||||
All login options
|
||||
</Link>
|
||||
</div>
|
||||
</>
|
||||
)}
|
||||
</div>
|
||||
</Form>
|
||||
<div className="w-full rounded-b-lg border-t bg-slate-50 px-8 py-4">
|
||||
<p className="text-center text-xs text-slate-500">
|
||||
By logging in with your email you agree to our{" "}
|
||||
<Link
|
||||
className="underline transition hover:text-blue-500"
|
||||
to="/legal/terms"
|
||||
>
|
||||
terms
|
||||
</Link>{" "}
|
||||
and{" "}
|
||||
<Link
|
||||
className="underline transition hover:text-blue-500"
|
||||
to="/legal/privacy"
|
||||
>
|
||||
privacy
|
||||
</Link>{" "}
|
||||
policies.
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
@@ -0,0 +1,103 @@
|
||||
import { EnvelopeIcon } from "@heroicons/react/24/solid";
|
||||
import type { LoaderFunction, MetaFunction } from "@remix-run/node";
|
||||
import { json, redirect } from "@remix-run/node";
|
||||
import { Form, Link, useLoaderData } from "@remix-run/react";
|
||||
import { GitHubLoginButton } from "~/components/GitHubLoginButton";
|
||||
import { LoginPromoPanel } from "~/components/LoginPromoPanel";
|
||||
import { Logo } from "~/components/Logo";
|
||||
import { commitSession, setRedirectTo } from "~/services/redirectTo.server";
|
||||
import { getUserId } from "~/services/session.server";
|
||||
|
||||
type LoaderData = {
|
||||
redirectTo?: string;
|
||||
};
|
||||
|
||||
export const loader: LoaderFunction = async ({ request }) => {
|
||||
const userId = await getUserId(request);
|
||||
if (userId) return redirect("/");
|
||||
|
||||
const url = new URL(request.url);
|
||||
const redirectTo = url.searchParams.get("redirectTo");
|
||||
|
||||
if (redirectTo) {
|
||||
const session = await setRedirectTo(request, redirectTo);
|
||||
|
||||
return json<LoaderData>(
|
||||
{ redirectTo },
|
||||
{
|
||||
headers: {
|
||||
"Set-Cookie": await commitSession(session),
|
||||
},
|
||||
}
|
||||
);
|
||||
} else {
|
||||
return json({});
|
||||
}
|
||||
};
|
||||
|
||||
export const meta: MetaFunction = () => {
|
||||
return {
|
||||
title: "Login",
|
||||
};
|
||||
};
|
||||
|
||||
export default function LoginPage() {
|
||||
const data = useLoaderData<LoaderData>();
|
||||
return (
|
||||
<div className="flex h-screen w-screen justify-between overflow-y-scroll">
|
||||
<LoginPromoPanel />
|
||||
<div className="flex grow items-center justify-center bg-gradient-background h-full w-full p-4">
|
||||
<div className="mt-[100px] flex w-full max-w-xl flex-col justify-between rounded-lg border bg-white shadow-md lg:mt-0 lg:min-h-[430px]">
|
||||
<Form
|
||||
className="flex flex-col"
|
||||
action={`/auth/github${
|
||||
data.redirectTo ? `?redirectTo=${data.redirectTo}` : ""
|
||||
}`}
|
||||
method="post"
|
||||
>
|
||||
<div className="flex flex-col items-center px-4 pt-6 pb-4 text-center lg:px-10">
|
||||
<a href="https://apihero.run">
|
||||
<Logo className="mb-4 h-10 w-auto lg:mb-6 lg:mt-8 lg:h-14" />
|
||||
</a>
|
||||
<h2 className="mb-2 text-2xl font-bold tracking-tight text-slate-700 lg:text-4xl">
|
||||
Welcome to Trigger.dev
|
||||
</h2>
|
||||
<p className="mb-4 text-base lg:mb-12 lg:text-lg">
|
||||
Connect your GitHub account to get started.
|
||||
</p>
|
||||
<GitHubLoginButton className="mx-auto whitespace-nowrap" />
|
||||
</div>
|
||||
</Form>
|
||||
{
|
||||
<Link
|
||||
className="mb-4 flex items-center justify-center gap-1 text-sm text-slate-500 transition hover:text-slate-800"
|
||||
to="/login/magic"
|
||||
>
|
||||
<EnvelopeIcon className="h-4 w-4" />
|
||||
Continue with email
|
||||
</Link>
|
||||
}
|
||||
<div className="w-full rounded-b-lg border-t bg-slate-50 px-8 py-4">
|
||||
<p className="text-center text-xs text-slate-500">
|
||||
By connecting your GitHub account you agree to our{" "}
|
||||
<Link
|
||||
className="underline transition hover:text-blue-500"
|
||||
to="/legal/terms"
|
||||
>
|
||||
terms
|
||||
</Link>{" "}
|
||||
and{" "}
|
||||
<Link
|
||||
className="underline transition hover:text-blue-500"
|
||||
to="/legal/privacy"
|
||||
>
|
||||
privacy
|
||||
</Link>{" "}
|
||||
policies.
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
@@ -0,0 +1,10 @@
|
||||
import type { ActionFunction, LoaderFunction } from "@remix-run/node";
|
||||
import { authenticator } from "~/services/auth.server";
|
||||
|
||||
export const action: ActionFunction = async ({ request }) => {
|
||||
return await authenticator.logout(request, { redirectTo: "/" });
|
||||
};
|
||||
|
||||
export const loader: LoaderFunction = async ({ request }) => {
|
||||
return await authenticator.logout(request, { redirectTo: "/" });
|
||||
};
|
||||
@@ -0,0 +1,12 @@
|
||||
import type { LoaderArgs } from "@remix-run/server-runtime";
|
||||
import { authenticator } from "~/services/auth.server";
|
||||
import { getRedirectTo } from "~/services/redirectTo.server";
|
||||
|
||||
export async function loader({ request }: LoaderArgs) {
|
||||
const redirectTo = await getRedirectTo(request);
|
||||
|
||||
await authenticator.authenticate("email-link", request, {
|
||||
successRedirect: redirectTo ?? "/",
|
||||
failureRedirect: "/login",
|
||||
});
|
||||
}
|
||||
@@ -1,7 +1,7 @@
|
||||
import type { User } from "~/models/user.server";
|
||||
import mailgun from "mailgun-js";
|
||||
import { env } from "~/env.server";
|
||||
import { mergent } from "~/mergent.server";
|
||||
import { mergent } from "./mergent.server";
|
||||
|
||||
const mailgunDomain = "apihero.run";
|
||||
|
||||
@@ -16,7 +16,7 @@ export async function sendEmail(
|
||||
body: string
|
||||
) {
|
||||
const data = {
|
||||
from: `API Hero <${env.SENDGRID_FROM_EMAIL}>`,
|
||||
from: `API Hero <${env.FROM_EMAIL}>`,
|
||||
to: emailAddress,
|
||||
subject,
|
||||
html: body,
|
||||
@@ -27,7 +27,7 @@ export async function sendEmail(
|
||||
|
||||
export async function sendWelcomeEmail(user: User) {
|
||||
const data = {
|
||||
from: `API Hero <${env.SENDGRID_FROM_EMAIL}>`,
|
||||
from: `API Hero <${env.FROM_EMAIL}>`,
|
||||
to: user.email,
|
||||
subject: "🤝 Welcome to API Hero!",
|
||||
template: "welcome_email_test1",
|
||||
|
||||
@@ -0,0 +1,4 @@
|
||||
import Mergent from "mergent";
|
||||
import { env } from "~/env.server";
|
||||
|
||||
export const mergent = new Mergent(env.MERGENT_KEY);
|
||||
@@ -53,12 +53,15 @@
|
||||
"@remix-run/react": "^1.7.2",
|
||||
"@remix-run/server-runtime": "^1.7.0",
|
||||
"@sentry/remix": "^7.19.0",
|
||||
"@types/mailgun-js": "^0.22.12",
|
||||
"@uiw/react-codemirror": "^4.13.2",
|
||||
"classnames": "^2.3.1",
|
||||
"compression": "^1.7.4",
|
||||
"cross-env": "^7.0.3",
|
||||
"cuid": "^2.1.8",
|
||||
"express": "^4.18.1",
|
||||
"mailgun-js": "^0.22.0",
|
||||
"mergent": "^1.4.0",
|
||||
"morgan": "^1.10.0",
|
||||
"nanoid": "^3.3.4",
|
||||
"postcss-import": "^14.1.0",
|
||||
@@ -80,6 +83,7 @@
|
||||
},
|
||||
"devDependencies": {
|
||||
"@apihero/tailwind-config": "*",
|
||||
"@faker-js/faker": "^7.6.0",
|
||||
"@remix-run/dev": "^1.7.2",
|
||||
"@remix-run/eslint-config": "^1.7.2",
|
||||
"@swc/core": "^1.3.4",
|
||||
|
||||
Generated
+251
-32
@@ -37,6 +37,7 @@ importers:
|
||||
'@codemirror/search': ^6.2.3
|
||||
'@codemirror/state': ^6.1.3
|
||||
'@codemirror/view': ^6.5.0
|
||||
'@faker-js/faker': ^7.6.0
|
||||
'@headlessui/react': ^1.6.4
|
||||
'@heroicons/react': ^2.0.12
|
||||
'@lezer/highlight': ^1.1.2
|
||||
@@ -59,6 +60,7 @@ importers:
|
||||
'@types/eslint': ^8.4.6
|
||||
'@types/express': ^4.17.13
|
||||
'@types/jest': ^29.2.0
|
||||
'@types/mailgun-js': ^0.22.12
|
||||
'@types/morgan': ^1.9.3
|
||||
'@types/node': ^18.8.0
|
||||
'@types/react': ^18.0.21
|
||||
@@ -82,6 +84,8 @@ importers:
|
||||
express: ^4.18.1
|
||||
glob: ^8.0.3
|
||||
happy-dom: ^6.0.4
|
||||
mailgun-js: ^0.22.0
|
||||
mergent: ^1.4.0
|
||||
morgan: ^1.10.0
|
||||
msw: ^0.47.0
|
||||
nanoid: ^3.3.4
|
||||
@@ -134,12 +138,15 @@ importers:
|
||||
'@remix-run/react': 1.8.1_biqbaboplfbrettd7655fr4n2y
|
||||
'@remix-run/server-runtime': 1.8.1_biqbaboplfbrettd7655fr4n2y
|
||||
'@sentry/remix': 7.23.0_dfehptsum4bkg2mncqmjuvk644
|
||||
'@types/mailgun-js': 0.22.12
|
||||
'@uiw/react-codemirror': 4.17.1_c746qxthrd2ism2rvn4crnq5om
|
||||
classnames: 2.3.2
|
||||
compression: 1.7.4
|
||||
cross-env: 7.0.3
|
||||
cuid: 2.1.8
|
||||
express: 4.18.2
|
||||
mailgun-js: 0.22.0
|
||||
mergent: 1.4.0
|
||||
morgan: 1.10.0
|
||||
nanoid: 3.3.4
|
||||
postcss-import: 14.1.0_postcss@8.4.19
|
||||
@@ -160,6 +167,7 @@ importers:
|
||||
zod: 3.19.1
|
||||
devDependencies:
|
||||
'@apihero/tailwind-config': link:../../config-packages/tailwind-config
|
||||
'@faker-js/faker': 7.6.0
|
||||
'@remix-run/dev': 1.8.1_biqbaboplfbrettd7655fr4n2y
|
||||
'@remix-run/eslint-config': 1.8.1_3d7osmpeeoyqkoluqnkoj2u33y
|
||||
'@swc/core': 1.3.21
|
||||
@@ -1834,6 +1842,11 @@ packages:
|
||||
- supports-color
|
||||
dev: true
|
||||
|
||||
/@faker-js/faker/7.6.0:
|
||||
resolution: {integrity: sha512-XK6BTq1NDMo9Xqw/YkYyGjSsg44fbNwYRx7QK2CuoQgyy+f1rrTDHoExVM5PsyXCtfl2vs2vVJ0MN0yN6LppRw==}
|
||||
engines: {node: '>=14.0.0', npm: '>=6.0.0'}
|
||||
dev: true
|
||||
|
||||
/@gar/promisify/1.1.3:
|
||||
resolution: {integrity: sha512-k2Ty1JcVojjJFwrg/ThKi2ujJ7XNLYaFGNB/bWT9wGR+oSMJHMa5w+CUq6p/pVrKeNNgA7pCqEcjSnHVoqJQFw==}
|
||||
dev: true
|
||||
@@ -2953,6 +2966,13 @@ packages:
|
||||
'@types/node': 18.11.11
|
||||
dev: true
|
||||
|
||||
/@types/mailgun-js/0.22.12:
|
||||
resolution: {integrity: sha512-fTjuh2mOPoJF2BN0QAhE5iPOBls333KIJrmrrJHObMDuBCgEfaENLX2LH1FjKqhfuWfGotKOfPFZMuSok5Ow7g==}
|
||||
dependencies:
|
||||
'@types/node': 18.11.11
|
||||
form-data: 2.5.1
|
||||
dev: false
|
||||
|
||||
/@types/mdast/3.0.10:
|
||||
resolution: {integrity: sha512-W864tg/Osz1+9f4lrGTZpCSO5/z4608eUp19tbozkq2HJK6i3z1kT0H9tlADXuYIb1YYOBByU4Jsqkk75q48qA==}
|
||||
dependencies:
|
||||
@@ -2995,7 +3015,6 @@ packages:
|
||||
|
||||
/@types/node/18.11.11:
|
||||
resolution: {integrity: sha512-KJ021B1nlQUBLopzZmPBVuGU9un7WJd/W4ya7Ih02B4Uwky5Nja0yGYav2EfYIk0RR2Q9oVhf60S2XR1BCWJ2g==}
|
||||
dev: true
|
||||
|
||||
/@types/node/8.10.66:
|
||||
resolution: {integrity: sha512-tktOkFUA4kXx2hhhrB8bIFb5TbwzS4uOhKEmwiD+NoiL0qtP2OQ9mFldbgD4dV1djrlBYP6eBuQZiWjuHUpqFw==}
|
||||
@@ -3384,6 +3403,20 @@ packages:
|
||||
hasBin: true
|
||||
dev: true
|
||||
|
||||
/agent-base/4.2.1:
|
||||
resolution: {integrity: sha512-JVwXMr9nHYTUXsBFKUqhJwvlcYU/blreOEUkhNR2eXZIvwd+c+o5V4MgDPKWnMS/56awN3TRzIP+KoPn+roQtg==}
|
||||
engines: {node: '>= 4.0.0'}
|
||||
dependencies:
|
||||
es6-promisify: 5.0.0
|
||||
dev: false
|
||||
|
||||
/agent-base/4.3.0:
|
||||
resolution: {integrity: sha512-salcGninV0nPrwpGNn4VTXBb1SOuXQBiqbrNXoeizJsHrsL6ERFM2Ne3JUSBWRE6aeNJI2ROP/WEEIDUiDe3cg==}
|
||||
engines: {node: '>= 4.0.0'}
|
||||
dependencies:
|
||||
es6-promisify: 5.0.0
|
||||
dev: false
|
||||
|
||||
/agent-base/6.0.2:
|
||||
resolution: {integrity: sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==}
|
||||
engines: {node: '>= 6.0.0'}
|
||||
@@ -3628,7 +3661,6 @@ packages:
|
||||
engines: {node: '>=4'}
|
||||
dependencies:
|
||||
tslib: 2.4.1
|
||||
dev: true
|
||||
|
||||
/ast-types/0.15.2:
|
||||
resolution: {integrity: sha512-c27loCv9QkZinsa5ProX751khO9DJl/AcB5c2KNtA6NRvHKS0PgLfcftz72KVq504vB0Gku5s2kUZzDBvQWvHg==}
|
||||
@@ -3647,13 +3679,18 @@ packages:
|
||||
hasBin: true
|
||||
dev: true
|
||||
|
||||
/async/2.6.4:
|
||||
resolution: {integrity: sha512-mzo5dfJYwAn29PeiJ0zvwTo04zj8HDJj0Mn8TD7sno7q12prdbnasKJHhkm2c1LgrhlJ0teaea8860oxi51mGA==}
|
||||
dependencies:
|
||||
lodash: 4.17.21
|
||||
dev: false
|
||||
|
||||
/async/3.2.4:
|
||||
resolution: {integrity: sha512-iAB+JbDEGXhyIUavoDl9WP/Jj106Kz9DEn1DPgYw5ruDn0e3Wgi3sKFm55sASdGBNOQB8F59d9qQ7deqrHA8wQ==}
|
||||
dev: true
|
||||
|
||||
/asynckit/0.4.0:
|
||||
resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==}
|
||||
dev: true
|
||||
|
||||
/at-least-node/1.0.0:
|
||||
resolution: {integrity: sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==}
|
||||
@@ -4243,6 +4280,11 @@ packages:
|
||||
engines: {node: '>=0.8'}
|
||||
dev: true
|
||||
|
||||
/co/4.6.0:
|
||||
resolution: {integrity: sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==}
|
||||
engines: {iojs: '>= 1.0.0', node: '>= 0.12.0'}
|
||||
dev: false
|
||||
|
||||
/code-point-at/1.1.0:
|
||||
resolution: {integrity: sha512-RpAVKQA5T63xEj6/giIbUEtZwJ4UFIc3ZtvEkiaUERylqe8xb5IvqcgOurZLahv93CLKfxcw5YI+DZcUBRyLXA==}
|
||||
engines: {node: '>=0.10.0'}
|
||||
@@ -4303,7 +4345,6 @@ packages:
|
||||
engines: {node: '>= 0.8'}
|
||||
dependencies:
|
||||
delayed-stream: 1.0.0
|
||||
dev: true
|
||||
|
||||
/comma-separated-tokens/2.0.3:
|
||||
resolution: {integrity: sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg==}
|
||||
@@ -4550,6 +4591,10 @@ packages:
|
||||
assert-plus: 1.0.0
|
||||
dev: true
|
||||
|
||||
/data-uri-to-buffer/1.2.0:
|
||||
resolution: {integrity: sha512-vKQ9DTQPN1FLYiiEEOQ6IBGFqvjCa5rSK3cWMy/Nespm5d/x3dGFT9UBZnkLxCwua/IXBi2TYnwTEpsOvhC4UQ==}
|
||||
dev: false
|
||||
|
||||
/data-uri-to-buffer/3.0.1:
|
||||
resolution: {integrity: sha512-WboRycPNsVw3B3TL559F7kuBUM4d8CgMEvk6xEJlOp7OBPjt6G7z8WMWlD2rOFZLk6OYfFIUGsCOWzcQH9K2og==}
|
||||
engines: {node: '>= 6'}
|
||||
@@ -4578,6 +4623,17 @@ packages:
|
||||
dependencies:
|
||||
ms: 2.0.0
|
||||
|
||||
/debug/3.1.0:
|
||||
resolution: {integrity: sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==}
|
||||
peerDependencies:
|
||||
supports-color: '*'
|
||||
peerDependenciesMeta:
|
||||
supports-color:
|
||||
optional: true
|
||||
dependencies:
|
||||
ms: 2.0.0
|
||||
dev: false
|
||||
|
||||
/debug/3.2.7:
|
||||
resolution: {integrity: sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==}
|
||||
peerDependencies:
|
||||
@@ -4587,7 +4643,6 @@ packages:
|
||||
optional: true
|
||||
dependencies:
|
||||
ms: 2.1.3
|
||||
dev: true
|
||||
|
||||
/debug/3.2.7_supports-color@5.5.0:
|
||||
resolution: {integrity: sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==}
|
||||
@@ -4708,7 +4763,6 @@ packages:
|
||||
|
||||
/deep-is/0.1.4:
|
||||
resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==}
|
||||
dev: true
|
||||
|
||||
/defaults/1.0.4:
|
||||
resolution: {integrity: sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==}
|
||||
@@ -4764,6 +4818,14 @@ packages:
|
||||
resolution: {integrity: sha512-hsBd2qSVCRE+5PmNdHt1uzyrFu5d3RwmFDKzyNZMFq/EwDNJF7Ee5+D5oEKF0hU6LhtoUF1macFvOe4AskQC1Q==}
|
||||
dev: true
|
||||
|
||||
/degenerator/1.0.4:
|
||||
resolution: {integrity: sha512-EMAC+riLSC64jKfOs1jp8J7M4ZXstUUwTdwFBEv6HOzL/Ae+eAzMKEK0nJnpof2fnw9IOjmE6u6qXFejVyk8AA==}
|
||||
dependencies:
|
||||
ast-types: 0.14.2
|
||||
escodegen: 1.14.3
|
||||
esprima: 3.1.3
|
||||
dev: false
|
||||
|
||||
/degenerator/3.0.2:
|
||||
resolution: {integrity: sha512-c0mef3SNQo56t6urUU6tdQAs+ThoD0o9B9MJ8HEt7NQcGEILCRFqQb7ZbP9JAv+QF1Ky5plydhMR/IrqWDm+TQ==}
|
||||
engines: {node: '>= 6'}
|
||||
@@ -4777,7 +4839,6 @@ packages:
|
||||
/delayed-stream/1.0.0:
|
||||
resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==}
|
||||
engines: {node: '>=0.4.0'}
|
||||
dev: true
|
||||
|
||||
/delegates/1.0.0:
|
||||
resolution: {integrity: sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ==}
|
||||
@@ -5001,6 +5062,16 @@ packages:
|
||||
is-symbol: 1.0.4
|
||||
dev: true
|
||||
|
||||
/es6-promise/4.2.8:
|
||||
resolution: {integrity: sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w==}
|
||||
dev: false
|
||||
|
||||
/es6-promisify/5.0.0:
|
||||
resolution: {integrity: sha512-C+d6UdsYDk0lMebHNR4S2NybQMMngAOnOwYBQjTOiv0MkoJMP0Myw2mgpDLBcpfCmRLxyFqYhS/CfOENq4SJhQ==}
|
||||
dependencies:
|
||||
es6-promise: 4.2.8
|
||||
dev: false
|
||||
|
||||
/esbuild-android-64/0.15.12:
|
||||
resolution: {integrity: sha512-MJKXwvPY9g0rGps0+U65HlTsM1wUs9lbjt5CU19RESqycGFDRijMDQsh68MtbzkqWSRdEtiKS1mtPzKneaAI0Q==}
|
||||
engines: {node: '>=12'}
|
||||
@@ -5433,7 +5504,6 @@ packages:
|
||||
optionator: 0.8.3
|
||||
optionalDependencies:
|
||||
source-map: 0.6.1
|
||||
dev: true
|
||||
|
||||
/eslint-config-next/12.3.4_s5ps7njkmjlaqajutnox5ntcla:
|
||||
resolution: {integrity: sha512-WuT3gvgi7Bwz00AOmKGhOeqnyA5P29Cdyr0iVjLyfDbk+FANQKcOjFUTZIdyYfe5Tq1x4TGcmoe4CwctGvFjHQ==}
|
||||
@@ -5915,11 +5985,16 @@ packages:
|
||||
eslint-visitor-keys: 3.3.0
|
||||
dev: true
|
||||
|
||||
/esprima/3.1.3:
|
||||
resolution: {integrity: sha512-AWwVMNxwhN8+NIPQzAQZCm7RkLC4RbM3B1OobMuyp3i+w73X57KCKaVIxaRZb+DYCojq7rspo+fmuQfAboyhFg==}
|
||||
engines: {node: '>=4'}
|
||||
hasBin: true
|
||||
dev: false
|
||||
|
||||
/esprima/4.0.1:
|
||||
resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==}
|
||||
engines: {node: '>=4'}
|
||||
hasBin: true
|
||||
dev: true
|
||||
|
||||
/esquery/1.4.0:
|
||||
resolution: {integrity: sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==}
|
||||
@@ -5938,7 +6013,6 @@ packages:
|
||||
/estraverse/4.3.0:
|
||||
resolution: {integrity: sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==}
|
||||
engines: {node: '>=4.0'}
|
||||
dev: true
|
||||
|
||||
/estraverse/5.3.0:
|
||||
resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==}
|
||||
@@ -5996,7 +6070,6 @@ packages:
|
||||
/esutils/2.0.3:
|
||||
resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==}
|
||||
engines: {node: '>=0.10.0'}
|
||||
dev: true
|
||||
|
||||
/etag/1.8.1:
|
||||
resolution: {integrity: sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==}
|
||||
@@ -6151,7 +6224,6 @@ packages:
|
||||
|
||||
/extend/3.0.2:
|
||||
resolution: {integrity: sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==}
|
||||
dev: true
|
||||
|
||||
/external-editor/3.1.0:
|
||||
resolution: {integrity: sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==}
|
||||
@@ -6229,7 +6301,6 @@ packages:
|
||||
|
||||
/fast-levenshtein/2.0.6:
|
||||
resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==}
|
||||
dev: true
|
||||
|
||||
/fastq/1.14.0:
|
||||
resolution: {integrity: sha512-eR2D+V9/ExcbF9ls441yIuN6TI2ED1Y2ZcA5BmMtJsOkWOFRJQ0Jt0g1UwqXJJVAb+V+umH5Dfr8oh4EVP7VVg==}
|
||||
@@ -6269,8 +6340,6 @@ packages:
|
||||
|
||||
/file-uri-to-path/1.0.0:
|
||||
resolution: {integrity: sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==}
|
||||
dev: true
|
||||
optional: true
|
||||
|
||||
/file-uri-to-path/2.0.0:
|
||||
resolution: {integrity: sha512-hjPFI8oE/2iQPVe4gbrJ73Pp+Xfub2+WI2LlXDbsaJBwT5wuMh35WNWVYYTpnz895shtwfyutMFLFywpQAFdLg==}
|
||||
@@ -6407,7 +6476,6 @@ packages:
|
||||
asynckit: 0.4.0
|
||||
combined-stream: 1.0.8
|
||||
mime-types: 2.1.35
|
||||
dev: true
|
||||
|
||||
/format/0.2.2:
|
||||
resolution: {integrity: sha512-wzsgA6WOq+09wrU1tsJ09udeR/YZRaeArL9e1wPbFg3GG2yDnC2ldKpxs4xunpFF9DgqCqOIra3bc1HWrJ37Ww==}
|
||||
@@ -6493,7 +6561,6 @@ packages:
|
||||
dependencies:
|
||||
readable-stream: 1.1.14
|
||||
xregexp: 2.0.0
|
||||
dev: true
|
||||
|
||||
/function-bind/1.1.1:
|
||||
resolution: {integrity: sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==}
|
||||
@@ -6599,6 +6666,19 @@ packages:
|
||||
/get-tsconfig/4.2.0:
|
||||
resolution: {integrity: sha512-X8u8fREiYOE6S8hLbq99PeykTDoLVnxvF4DjWKJmz9xy2nNRdUcV8ZN9tniJFeKyTU3qnC9lL8n4Chd6LmVKHg==}
|
||||
|
||||
/get-uri/2.0.4:
|
||||
resolution: {integrity: sha512-v7LT/s8kVjs+Tx0ykk1I+H/rbpzkHvuIq87LmeXptcf5sNWm9uQiwjNAt94SJPA1zOlCntmnOlJvVWKmzsxG8Q==}
|
||||
dependencies:
|
||||
data-uri-to-buffer: 1.2.0
|
||||
debug: 2.6.9
|
||||
extend: 3.0.2
|
||||
file-uri-to-path: 1.0.0
|
||||
ftp: 0.3.10
|
||||
readable-stream: 2.3.7
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
dev: false
|
||||
|
||||
/get-uri/3.0.2:
|
||||
resolution: {integrity: sha512-+5s0SJbGoyiJTZZ2JTpFPLMPSch72KEqGOTvQsBqg0RBWvwhWUSYZFAtz3TPW0GXJuLBJPts1E241iHg+VRfhg==}
|
||||
engines: {node: '>= 6'}
|
||||
@@ -7001,6 +7081,16 @@ packages:
|
||||
statuses: 2.0.1
|
||||
toidentifier: 1.0.1
|
||||
|
||||
/http-proxy-agent/2.1.0:
|
||||
resolution: {integrity: sha512-qwHbBLV7WviBl0rQsOzH6o5lwyOIvwp/BdFnvVxXORldu5TmjFfjzBcWUWS5kWAZhmv+JtiDhSuQCp4sBfbIgg==}
|
||||
engines: {node: '>= 4.5.0'}
|
||||
dependencies:
|
||||
agent-base: 4.3.0
|
||||
debug: 3.1.0
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
dev: false
|
||||
|
||||
/http-proxy-agent/4.0.1:
|
||||
resolution: {integrity: sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg==}
|
||||
engines: {node: '>= 6'}
|
||||
@@ -7035,6 +7125,16 @@ packages:
|
||||
resolve-alpn: 1.2.1
|
||||
dev: true
|
||||
|
||||
/https-proxy-agent/3.0.1:
|
||||
resolution: {integrity: sha512-+ML2Rbh6DAuee7d07tYGEKOEi2voWPUGan+ExdPbPW6Z3svq+JCqr0v8WmKPOkz1vOVykPCBSuobe7G8GJUtVg==}
|
||||
engines: {node: '>= 4.5.0'}
|
||||
dependencies:
|
||||
agent-base: 4.3.0
|
||||
debug: 3.2.7
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
dev: false
|
||||
|
||||
/https-proxy-agent/5.0.1:
|
||||
resolution: {integrity: sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==}
|
||||
engines: {node: '>= 6'}
|
||||
@@ -7106,6 +7206,16 @@ packages:
|
||||
resolution: {integrity: sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A==}
|
||||
dev: true
|
||||
|
||||
/inflection/1.12.0:
|
||||
resolution: {integrity: sha512-lRy4DxuIFWXlJU7ed8UiTJOSTqStqYdEb4CEbtXfNbkdj3nH1L+reUWiE10VWcJS2yR7tge8Z74pJjtBjNwj0w==}
|
||||
engines: {'0': node >= 0.4.0}
|
||||
dev: false
|
||||
|
||||
/inflection/1.3.8:
|
||||
resolution: {integrity: sha512-xRvG6XhAkbneGO5BXP0uKyGkzmZ2bBbrFkx4ZVNx2TmsECbiq/pJapbbx/NECh+E85IfZwW5+IeVNJfkQgavag==}
|
||||
engines: {'0': node >= 0.4.0}
|
||||
dev: false
|
||||
|
||||
/inflight/1.0.6:
|
||||
resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==}
|
||||
dependencies:
|
||||
@@ -7169,9 +7279,12 @@ packages:
|
||||
engines: {node: '>=8'}
|
||||
dev: false
|
||||
|
||||
/ip/1.1.5:
|
||||
resolution: {integrity: sha512-rBtCAQAJm8A110nbwn6YdveUnuZH3WrC36IwkRXxDnq53JvXA2NVQvB7IHyKomxK1MJ4VDNw3UtFDdXQ+AvLYA==}
|
||||
dev: false
|
||||
|
||||
/ip/1.1.8:
|
||||
resolution: {integrity: sha512-PuExPYUiu6qMBQb4l06ecm6T6ujzhmh+MeJcW9wa89PoAz5pvd4zPgN5WJV104mb6S2T1AwNIAaB70JNrLQWhg==}
|
||||
dev: true
|
||||
|
||||
/ip/2.0.0:
|
||||
resolution: {integrity: sha512-WKa+XuLG1A1R0UWhl2+1XQSi+fZWMsYKffMZTTYsiZaUD8k2yDAj5atimTUD2TZkyCkNEeYE5NhFZmupOGtjYQ==}
|
||||
@@ -7469,6 +7582,11 @@ packages:
|
||||
call-bind: 1.0.2
|
||||
dev: true
|
||||
|
||||
/is-stream/1.1.0:
|
||||
resolution: {integrity: sha512-uQPm8kcs47jx38atAcWTVxyltQYoPT68y9aWYdV6yWXSyW8mzSat0TL6CiWdZeCdF3KrAvpVtnHbTv4RN+rqdQ==}
|
||||
engines: {node: '>=0.10.0'}
|
||||
dev: false
|
||||
|
||||
/is-stream/2.0.1:
|
||||
resolution: {integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==}
|
||||
engines: {node: '>=8'}
|
||||
@@ -7538,7 +7656,6 @@ packages:
|
||||
|
||||
/isarray/0.0.1:
|
||||
resolution: {integrity: sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==}
|
||||
dev: true
|
||||
|
||||
/isarray/1.0.0:
|
||||
resolution: {integrity: sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==}
|
||||
@@ -7867,7 +7984,6 @@ packages:
|
||||
dependencies:
|
||||
prelude-ls: 1.1.2
|
||||
type-check: 0.3.2
|
||||
dev: true
|
||||
|
||||
/levn/0.4.1:
|
||||
resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==}
|
||||
@@ -7986,7 +8102,6 @@ packages:
|
||||
|
||||
/lodash/4.17.21:
|
||||
resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==}
|
||||
dev: true
|
||||
|
||||
/log-symbols/4.1.0:
|
||||
resolution: {integrity: sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==}
|
||||
@@ -8043,7 +8158,6 @@ packages:
|
||||
resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==}
|
||||
dependencies:
|
||||
yallist: 3.1.1
|
||||
dev: true
|
||||
|
||||
/lru-cache/6.0.0:
|
||||
resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==}
|
||||
@@ -8074,6 +8188,24 @@ packages:
|
||||
sourcemap-codec: 1.4.8
|
||||
dev: true
|
||||
|
||||
/mailgun-js/0.22.0:
|
||||
resolution: {integrity: sha512-a2alg5nuTZA9Psa1pSEIEsbxr1Zrmqx4VkgGCQ30xVh0kIH7Bu57AYILo+0v8QLSdXtCyLaS+KVmdCrQo0uWFA==}
|
||||
engines: {node: '>=6.0.0'}
|
||||
deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.
|
||||
dependencies:
|
||||
async: 2.6.4
|
||||
debug: 4.3.4
|
||||
form-data: 2.5.1
|
||||
inflection: 1.12.0
|
||||
is-stream: 1.1.0
|
||||
path-proxy: 1.0.0
|
||||
promisify-call: 2.0.4
|
||||
proxy-agent: 3.1.1
|
||||
tsscmp: 1.0.6
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
dev: false
|
||||
|
||||
/make-dir/2.1.0:
|
||||
resolution: {integrity: sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==}
|
||||
engines: {node: '>=6'}
|
||||
@@ -8249,6 +8381,14 @@ packages:
|
||||
engines: {node: '>= 8'}
|
||||
dev: true
|
||||
|
||||
/mergent/1.4.0:
|
||||
resolution: {integrity: sha512-OTkCBu/28brBtxSW6VaMxdmImH37CrclmLfZhSC64qinCLyDgZ56TiUeelMGefvWf+2ZojK2506vFPFrraYGsA==}
|
||||
dependencies:
|
||||
node-fetch: 2.6.7
|
||||
transitivePeerDependencies:
|
||||
- encoding
|
||||
dev: false
|
||||
|
||||
/methods/1.1.2:
|
||||
resolution: {integrity: sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==}
|
||||
engines: {node: '>= 0.6'}
|
||||
@@ -8787,6 +8927,11 @@ packages:
|
||||
resolution: {integrity: sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==}
|
||||
dev: true
|
||||
|
||||
/netmask/1.0.6:
|
||||
resolution: {integrity: sha512-3DWDqAtIiPSkBXZyYEjwebfK56nrlQfRGt642fu8RPaL+ePu750+HCMHxjJCG3iEHq/0aeMvX6KIzlv7nuhfrA==}
|
||||
engines: {node: '>= 0.4.0'}
|
||||
dev: false
|
||||
|
||||
/netmask/2.0.2:
|
||||
resolution: {integrity: sha512-dBpDMdxv9Irdq66304OLfEmQ9tbNRFnFTuZiLo+bD+r332bBmMJ8GBLXklIXXgxd3+v9+KUnZaUR5PJMa75Gsg==}
|
||||
engines: {node: '>= 0.4.0'}
|
||||
@@ -9065,7 +9210,6 @@ packages:
|
||||
prelude-ls: 1.1.2
|
||||
type-check: 0.3.2
|
||||
word-wrap: 1.2.3
|
||||
dev: true
|
||||
|
||||
/optionator/0.9.1:
|
||||
resolution: {integrity: sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==}
|
||||
@@ -9164,6 +9308,21 @@ packages:
|
||||
engines: {node: '>=6'}
|
||||
dev: true
|
||||
|
||||
/pac-proxy-agent/3.0.1:
|
||||
resolution: {integrity: sha512-44DUg21G/liUZ48dJpUSjZnFfZro/0K5JTyFYLBcmh9+T6Ooi4/i4efwUiEy0+4oQusCBqWdhv16XohIj1GqnQ==}
|
||||
dependencies:
|
||||
agent-base: 4.3.0
|
||||
debug: 4.3.4
|
||||
get-uri: 2.0.4
|
||||
http-proxy-agent: 2.1.0
|
||||
https-proxy-agent: 3.0.1
|
||||
pac-resolver: 3.0.0
|
||||
raw-body: 2.5.1
|
||||
socks-proxy-agent: 4.0.2
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
dev: false
|
||||
|
||||
/pac-proxy-agent/5.0.0:
|
||||
resolution: {integrity: sha512-CcFG3ZtnxO8McDigozwE3AqAw15zDvGH+OjXO4kzf7IkEKkQ4gxQ+3sdF50WmhQ4P/bVusXcqNE2S3XrNURwzQ==}
|
||||
engines: {node: '>= 8'}
|
||||
@@ -9181,6 +9340,16 @@ packages:
|
||||
- supports-color
|
||||
dev: true
|
||||
|
||||
/pac-resolver/3.0.0:
|
||||
resolution: {integrity: sha512-tcc38bsjuE3XZ5+4vP96OfhOugrX+JcnpUbhfuc4LuXBLQhoTthOstZeoQJBDnQUDYzYmdImKsbz0xSl1/9qeA==}
|
||||
dependencies:
|
||||
co: 4.6.0
|
||||
degenerator: 1.0.4
|
||||
ip: 1.1.8
|
||||
netmask: 1.0.6
|
||||
thunkify: 2.1.2
|
||||
dev: false
|
||||
|
||||
/pac-resolver/5.0.1:
|
||||
resolution: {integrity: sha512-cy7u00ko2KVgBAjuhevqpPeHIkCIqPe1v24cydhWjmeuzaBfmUWFCZJ1iAh5TuVzVZoUzXIW7K8sMYOZ84uZ9Q==}
|
||||
engines: {node: '>= 8'}
|
||||
@@ -9283,6 +9452,12 @@ packages:
|
||||
/path-parse/1.0.7:
|
||||
resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==}
|
||||
|
||||
/path-proxy/1.0.0:
|
||||
resolution: {integrity: sha512-p9IuY9FRY1nU59RDW+tnLL6qMxmBnY03WGYxzy1FcqE5OMO5ggz7ahmOBH0JBS+9f95Yc7V5TZ+kHpTeFWaLQA==}
|
||||
dependencies:
|
||||
inflection: 1.3.8
|
||||
dev: false
|
||||
|
||||
/path-to-regexp/0.1.7:
|
||||
resolution: {integrity: sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==}
|
||||
|
||||
@@ -9484,7 +9659,6 @@ packages:
|
||||
/prelude-ls/1.1.2:
|
||||
resolution: {integrity: sha512-ESF23V4SKG6lVSGZgYNpbsiaAkdab6ZgOxe52p7+Kid3W3u3bxR4Vfd/o21dmN7jSt0IwgZ4v5MUd26FEtXE9w==}
|
||||
engines: {node: '>= 0.8.0'}
|
||||
dev: true
|
||||
|
||||
/prelude-ls/1.2.1:
|
||||
resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==}
|
||||
@@ -9583,6 +9757,13 @@ packages:
|
||||
asap: 2.0.6
|
||||
dev: true
|
||||
|
||||
/promisify-call/2.0.4:
|
||||
resolution: {integrity: sha512-ZX68J1+1Pe0I8NC0P6Ji3fDDcJceVfpoygfDLgdb1fp5vW9IRlwSpDaxe1T5HgwchyHV2DsL/pWzWikUiWEbLQ==}
|
||||
engines: {node: '>=4.0'}
|
||||
dependencies:
|
||||
with-callback: 1.0.2
|
||||
dev: false
|
||||
|
||||
/prop-types/15.8.1:
|
||||
resolution: {integrity: sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==}
|
||||
dependencies:
|
||||
@@ -9602,6 +9783,22 @@ packages:
|
||||
forwarded: 0.2.0
|
||||
ipaddr.js: 1.9.1
|
||||
|
||||
/proxy-agent/3.1.1:
|
||||
resolution: {integrity: sha512-WudaR0eTsDx33O3EJE16PjBRZWcX8GqCEeERw1W3hZJgH/F2a46g7jty6UGty6NeJ4CKQy8ds2CJPMiyeqaTvw==}
|
||||
engines: {node: '>=6'}
|
||||
dependencies:
|
||||
agent-base: 4.3.0
|
||||
debug: 4.3.4
|
||||
http-proxy-agent: 2.1.0
|
||||
https-proxy-agent: 3.0.1
|
||||
lru-cache: 5.1.1
|
||||
pac-proxy-agent: 3.0.1
|
||||
proxy-from-env: 1.1.0
|
||||
socks-proxy-agent: 4.0.2
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
dev: false
|
||||
|
||||
/proxy-agent/5.0.0:
|
||||
resolution: {integrity: sha512-gkH7BkvLVkSfX9Dk27W6TyNOWWZWRilRfk1XxGNWOYJ2TuedAv1yFpCaU9QSBmBe716XOTNpYNOzhysyw8xn7g==}
|
||||
engines: {node: '>= 8'}
|
||||
@@ -9821,7 +10018,6 @@ packages:
|
||||
inherits: 2.0.4
|
||||
isarray: 0.0.1
|
||||
string_decoder: 0.10.31
|
||||
dev: true
|
||||
|
||||
/readable-stream/2.3.7:
|
||||
resolution: {integrity: sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==}
|
||||
@@ -10448,7 +10644,6 @@ packages:
|
||||
/smart-buffer/4.2.0:
|
||||
resolution: {integrity: sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==}
|
||||
engines: {node: '>= 6.0.0', npm: '>= 3.0.0'}
|
||||
dev: true
|
||||
|
||||
/snapdragon-node/2.1.1:
|
||||
resolution: {integrity: sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==}
|
||||
@@ -10482,6 +10677,14 @@ packages:
|
||||
- supports-color
|
||||
dev: true
|
||||
|
||||
/socks-proxy-agent/4.0.2:
|
||||
resolution: {integrity: sha512-NT6syHhI9LmuEMSK6Kd2V7gNv5KFZoLE7V5udWmn0de+3Mkj3UMA/AJPLyeNUVmElCurSHtUdM3ETpR3z770Wg==}
|
||||
engines: {node: '>= 6'}
|
||||
dependencies:
|
||||
agent-base: 4.2.1
|
||||
socks: 2.3.3
|
||||
dev: false
|
||||
|
||||
/socks-proxy-agent/5.0.1:
|
||||
resolution: {integrity: sha512-vZdmnjb9a2Tz6WEQVIurybSwElwPxMZaIc7PzqbJTrezcKNznv6giT7J7tZDZ1BojVaa1jvO/UiUdhDVB0ACoQ==}
|
||||
engines: {node: '>= 6'}
|
||||
@@ -10493,6 +10696,14 @@ packages:
|
||||
- supports-color
|
||||
dev: true
|
||||
|
||||
/socks/2.3.3:
|
||||
resolution: {integrity: sha512-o5t52PCNtVdiOvzMry7wU4aOqYWL0PeCXRWBEiJow4/i/wr+wpsJQ9awEu1EonLIqsfGd5qSgDdxEOvCdmBEpA==}
|
||||
engines: {node: '>= 6.0.0', npm: '>= 3.0.0'}
|
||||
dependencies:
|
||||
ip: 1.1.5
|
||||
smart-buffer: 4.2.0
|
||||
dev: false
|
||||
|
||||
/socks/2.7.1:
|
||||
resolution: {integrity: sha512-7maUZy1N7uo6+WVEX6psASxtNlKaNVMlGQKkG/63nEDdLOWNbiUMoLK7X4uYoLhQstau72mLgfEWcXcwsaHbYQ==}
|
||||
engines: {node: '>= 10.13.0', npm: '>= 3.0.0'}
|
||||
@@ -10747,7 +10958,6 @@ packages:
|
||||
|
||||
/string_decoder/0.10.31:
|
||||
resolution: {integrity: sha512-ev2QzSzWPYmy9GuqfIVildA4OdcGLeFZQrq5ys6RtiuF+RQQiZWr8TZNyAcuVXyQRYfEO+MsoB/1BuQVhOJuoQ==}
|
||||
dev: true
|
||||
|
||||
/string_decoder/1.1.1:
|
||||
resolution: {integrity: sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==}
|
||||
@@ -11053,6 +11263,10 @@ packages:
|
||||
xtend: 4.0.2
|
||||
dev: true
|
||||
|
||||
/thunkify/2.1.2:
|
||||
resolution: {integrity: sha512-w9foI80XcGImrhMQ19pxunaEC5Rp2uzxZZg4XBAFRfiLOplk3F0l7wo+bO16vC2/nlQfR/mXZxcduo0MF2GWLg==}
|
||||
dev: false
|
||||
|
||||
/tiny-glob/0.2.9:
|
||||
resolution: {integrity: sha512-g/55ssRPUjShh+xkfx9UPDXqhckHEsHr4Vd9zX55oSdGZc/MD0m3sferOkwWtp98bv+kcVfEHtRJgBVJzelrzg==}
|
||||
dependencies:
|
||||
@@ -11223,7 +11437,11 @@ packages:
|
||||
|
||||
/tslib/2.4.1:
|
||||
resolution: {integrity: sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA==}
|
||||
dev: true
|
||||
|
||||
/tsscmp/1.0.6:
|
||||
resolution: {integrity: sha512-LxhtAkPDTkVCMQjt2h6eBVY28KCjikZqZfMcC15YBeNjkgUpdCfBu5HoiOTDu86v6smE8yOjyEktJ8hlbANHQA==}
|
||||
engines: {node: '>=0.6.x'}
|
||||
dev: false
|
||||
|
||||
/tsutils/3.21.0_typescript@4.9.3:
|
||||
resolution: {integrity: sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==}
|
||||
@@ -11321,7 +11539,6 @@ packages:
|
||||
engines: {node: '>= 0.8.0'}
|
||||
dependencies:
|
||||
prelude-ls: 1.1.2
|
||||
dev: true
|
||||
|
||||
/type-check/0.4.0:
|
||||
resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==}
|
||||
@@ -11855,10 +12072,14 @@ packages:
|
||||
string-width: 4.2.3
|
||||
dev: false
|
||||
|
||||
/with-callback/1.0.2:
|
||||
resolution: {integrity: sha512-zaUhn7OWgikdqWlPYpZ4rTX/6IAV0czMVyd+C6QLVrif2tATF28CYUnHBmHs2a5EaZo7bB1+plBUPHto+HW8uA==}
|
||||
engines: {node: '>=4'}
|
||||
dev: false
|
||||
|
||||
/word-wrap/1.2.3:
|
||||
resolution: {integrity: sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==}
|
||||
engines: {node: '>=0.10.0'}
|
||||
dev: true
|
||||
|
||||
/wrap-ansi/6.2.0:
|
||||
resolution: {integrity: sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==}
|
||||
@@ -11934,7 +12155,6 @@ packages:
|
||||
|
||||
/xregexp/2.0.0:
|
||||
resolution: {integrity: sha512-xl/50/Cf32VsGq/1R8jJE5ajH1yMCQkpmoS10QbFZWl2Oor4H0Me64Pu2yxvsRWK3m6soJbmGfzSR7BYmDcWAA==}
|
||||
dev: true
|
||||
|
||||
/xtend/4.0.2:
|
||||
resolution: {integrity: sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==}
|
||||
@@ -11951,7 +12171,6 @@ packages:
|
||||
|
||||
/yallist/3.1.1:
|
||||
resolution: {integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==}
|
||||
dev: true
|
||||
|
||||
/yallist/4.0.0:
|
||||
resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==}
|
||||
|
||||
Reference in New Issue
Block a user