mirror of
https://github.com/formbricks/formbricks.git
synced 2026-05-07 03:11:47 -05:00
Feature/nextjs 13 (#122)
* upgrade nextjs to 13 * update docker compose, fix env bug * update github actions check workflow to lint on ubuntu image
This commit is contained in:
@@ -3,12 +3,7 @@ on: [push]
|
||||
jobs:
|
||||
build:
|
||||
name: Build, lint, and test on Node ${{ matrix.node }} and ${{ matrix.os }}
|
||||
|
||||
runs-on: ${{ matrix.os }}
|
||||
strategy:
|
||||
matrix:
|
||||
node: ["16.x"]
|
||||
os: [ubuntu-latest]
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
env:
|
||||
TURBO_TOKEN: ${{ secrets.TURBO_TOKEN }}
|
||||
@@ -18,10 +13,10 @@ jobs:
|
||||
- name: Checkout repo
|
||||
uses: actions/checkout@v2
|
||||
|
||||
- name: Use Node ${{ matrix.node }}
|
||||
uses: actions/setup-node@v1
|
||||
- name: Setup Node.js 16.x
|
||||
uses: actions/setup-node@v2
|
||||
with:
|
||||
node-version: ${{ matrix.node }}
|
||||
node-version: 16.x
|
||||
|
||||
- name: Install pnpm
|
||||
uses: pnpm/action-setup@v2.2.2
|
||||
@@ -31,6 +26,3 @@ jobs:
|
||||
|
||||
- name: Lint
|
||||
run: pnpm lint
|
||||
|
||||
- name: Build
|
||||
run: pnpm build
|
||||
|
||||
Symlink
+1
@@ -0,0 +1 @@
|
||||
../../.env
|
||||
@@ -27,7 +27,6 @@ yarn-error.log*
|
||||
.pnpm-debug.log*
|
||||
|
||||
# local env files
|
||||
.env
|
||||
.env.local
|
||||
.env.development.local
|
||||
.env.test.local
|
||||
|
||||
+111
-113
@@ -30,120 +30,118 @@ export default function FormList() {
|
||||
}
|
||||
};
|
||||
|
||||
return (
|
||||
<>
|
||||
<div className="h-full px-6 py-8">
|
||||
{forms &&
|
||||
(forms.length === 0 ? (
|
||||
<div className="mt-5 text-center">
|
||||
<EmptyPageFiller
|
||||
onClick={() => newForm()}
|
||||
alertText="You don't have any forms yet."
|
||||
hintText="Start by creating a form."
|
||||
buttonText="create form"
|
||||
borderStyles="border-4 border-dotted border-red"
|
||||
hasButton={true}>
|
||||
<DocumentPlusIcon className="text-ui-gray-medium stroke-thin mx-auto h-24 w-24" />
|
||||
</EmptyPageFiller>
|
||||
</div>
|
||||
) : (
|
||||
<ul className="grid grid-cols-2 place-content-stretch gap-6 sm:grid-cols-3 md:grid-cols-4 lg:grid-cols-5 ">
|
||||
<button onClick={() => newForm()}>
|
||||
<li className="col-span-1 h-56">
|
||||
<div className="bg-snoopfade flex h-full items-center justify-center overflow-hidden rounded-md font-light text-white shadow">
|
||||
<div className="px-4 py-8 sm:p-14">
|
||||
<PlusIcon className="stroke-thin mx-auto h-14 w-14" />
|
||||
create form
|
||||
return <>
|
||||
<div className="h-full px-6 py-8">
|
||||
{forms &&
|
||||
(forms.length === 0 ? (
|
||||
<div className="mt-5 text-center">
|
||||
<EmptyPageFiller
|
||||
onClick={() => newForm()}
|
||||
alertText="You don't have any forms yet."
|
||||
hintText="Start by creating a form."
|
||||
buttonText="create form"
|
||||
borderStyles="border-4 border-dotted border-red"
|
||||
hasButton={true}>
|
||||
<DocumentPlusIcon className="text-ui-gray-medium stroke-thin mx-auto h-24 w-24" />
|
||||
</EmptyPageFiller>
|
||||
</div>
|
||||
) : (
|
||||
<ul className="grid grid-cols-2 place-content-stretch gap-6 sm:grid-cols-3 md:grid-cols-4 lg:grid-cols-5 ">
|
||||
<button onClick={() => newForm()}>
|
||||
<li className="col-span-1 h-56">
|
||||
<div className="bg-snoopfade flex h-full items-center justify-center overflow-hidden rounded-md font-light text-white shadow">
|
||||
<div className="px-4 py-8 sm:p-14">
|
||||
<PlusIcon className="stroke-thin mx-auto h-14 w-14" />
|
||||
create form
|
||||
</div>
|
||||
</div>
|
||||
</li>
|
||||
</button>
|
||||
{forms
|
||||
.sort((a, b) => b.updatedAt - a.updatedAt)
|
||||
.map((form, formIdx) => (
|
||||
<li key={form.id} className="relative col-span-1 h-56">
|
||||
<div className="flex h-full flex-col justify-between rounded-md bg-white shadow">
|
||||
<div className="p-6">
|
||||
<p className="line-clamp-3 text-lg">{form.name}</p>
|
||||
</div>
|
||||
<Link href={`/forms/${form.id}`} className="absolute h-full w-full">
|
||||
|
||||
</Link>
|
||||
<div className="divide-ui-gray-light divide-y ">
|
||||
<div className="bg-ui-gray-light text-ui-gray-dark mb-2 ml-4 inline-flex rounded-sm px-2 py-1 text-sm">
|
||||
{form.formType == "NOCODE" ? (
|
||||
<div className="flex">
|
||||
<SquaresPlusIcon className="my-auto mr-1 h-4 w-4" />
|
||||
No-Code
|
||||
</div>
|
||||
) : (
|
||||
<div className="flex">
|
||||
<CommandLineIcon className="my-auto mr-1 h-4 w-4" />
|
||||
Code
|
||||
</div>
|
||||
)}
|
||||
</div>
|
||||
|
||||
<div className="flex justify-between px-4 py-2 text-right sm:px-6">
|
||||
<p className="text-ui-gray-medium text-xs ">
|
||||
{form._count?.submissionSessions} responses
|
||||
</p>
|
||||
<Menu as="div" className="relative z-10 inline-block text-left">
|
||||
{({ open }) => (
|
||||
<>
|
||||
<div>
|
||||
<Menu.Button className="text-red -m-2 flex items-center rounded-full p-2">
|
||||
<span className="sr-only">Open options</span>
|
||||
<EllipsisHorizontalIcon className="h-5 w-5" aria-hidden="true" />
|
||||
</Menu.Button>
|
||||
</div>
|
||||
|
||||
<Transition
|
||||
show={open}
|
||||
as={Fragment}
|
||||
enter="transition ease-out duration-100"
|
||||
enterFrom="transform opacity-0 scale-95"
|
||||
enterTo="transform opacity-100 scale-100"
|
||||
leave="transition ease-in duration-75"
|
||||
leaveFrom="transform opacity-100 scale-100"
|
||||
leaveTo="transform opacity-0 scale-95">
|
||||
<Menu.Items
|
||||
static
|
||||
className="absolute left-0 mt-2 w-56 origin-top-right rounded-sm bg-white px-1 shadow-lg">
|
||||
<div className="py-1">
|
||||
<Menu.Item>
|
||||
{({ active }) => (
|
||||
<button
|
||||
onClick={() => deleteForm(form, formIdx)}
|
||||
className={classNames(
|
||||
active
|
||||
? "bg-ui-gray-light text-ui-black rounded-sm"
|
||||
: "text-ui-gray-dark",
|
||||
"flex w-full px-4 py-2 text-sm"
|
||||
)}>
|
||||
<TrashIcon
|
||||
className="text-ui-gray-dark mr-3 h-5 w-5"
|
||||
aria-hidden="true"
|
||||
/>
|
||||
<span>Delete Form</span>
|
||||
</button>
|
||||
)}
|
||||
</Menu.Item>
|
||||
</div>
|
||||
</Menu.Items>
|
||||
</Transition>
|
||||
</>
|
||||
)}
|
||||
</Menu>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</li>
|
||||
</button>
|
||||
{forms
|
||||
.sort((a, b) => b.updatedAt - a.updatedAt)
|
||||
.map((form, formIdx) => (
|
||||
<li key={form.id} className="relative col-span-1 h-56">
|
||||
<div className="flex h-full flex-col justify-between rounded-md bg-white shadow">
|
||||
<div className="p-6">
|
||||
<p className="line-clamp-3 text-lg">{form.name}</p>
|
||||
</div>
|
||||
<Link href={`/forms/${form.id}`}>
|
||||
<a className="absolute h-full w-full" />
|
||||
</Link>
|
||||
<div className="divide-ui-gray-light divide-y ">
|
||||
<div className="bg-ui-gray-light text-ui-gray-dark mb-2 ml-4 inline-flex rounded-sm px-2 py-1 text-sm">
|
||||
{form.formType == "NOCODE" ? (
|
||||
<div className="flex">
|
||||
<SquaresPlusIcon className="my-auto mr-1 h-4 w-4" />
|
||||
No-Code
|
||||
</div>
|
||||
) : (
|
||||
<div className="flex">
|
||||
<CommandLineIcon className="my-auto mr-1 h-4 w-4" />
|
||||
Code
|
||||
</div>
|
||||
)}
|
||||
</div>
|
||||
|
||||
<div className="flex justify-between px-4 py-2 text-right sm:px-6">
|
||||
<p className="text-ui-gray-medium text-xs ">
|
||||
{form._count?.submissionSessions} responses
|
||||
</p>
|
||||
<Menu as="div" className="relative z-10 inline-block text-left">
|
||||
{({ open }) => (
|
||||
<>
|
||||
<div>
|
||||
<Menu.Button className="text-red -m-2 flex items-center rounded-full p-2">
|
||||
<span className="sr-only">Open options</span>
|
||||
<EllipsisHorizontalIcon className="h-5 w-5" aria-hidden="true" />
|
||||
</Menu.Button>
|
||||
</div>
|
||||
|
||||
<Transition
|
||||
show={open}
|
||||
as={Fragment}
|
||||
enter="transition ease-out duration-100"
|
||||
enterFrom="transform opacity-0 scale-95"
|
||||
enterTo="transform opacity-100 scale-100"
|
||||
leave="transition ease-in duration-75"
|
||||
leaveFrom="transform opacity-100 scale-100"
|
||||
leaveTo="transform opacity-0 scale-95">
|
||||
<Menu.Items
|
||||
static
|
||||
className="absolute left-0 mt-2 w-56 origin-top-right rounded-sm bg-white px-1 shadow-lg">
|
||||
<div className="py-1">
|
||||
<Menu.Item>
|
||||
{({ active }) => (
|
||||
<button
|
||||
onClick={() => deleteForm(form, formIdx)}
|
||||
className={classNames(
|
||||
active
|
||||
? "bg-ui-gray-light text-ui-black rounded-sm"
|
||||
: "text-ui-gray-dark",
|
||||
"flex w-full px-4 py-2 text-sm"
|
||||
)}>
|
||||
<TrashIcon
|
||||
className="text-ui-gray-dark mr-3 h-5 w-5"
|
||||
aria-hidden="true"
|
||||
/>
|
||||
<span>Delete Form</span>
|
||||
</button>
|
||||
)}
|
||||
</Menu.Item>
|
||||
</div>
|
||||
</Menu.Items>
|
||||
</Transition>
|
||||
</>
|
||||
)}
|
||||
</Menu>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</li>
|
||||
))}
|
||||
</ul>
|
||||
))}
|
||||
</div>
|
||||
<NewFormModal open={openNewFormModal} setOpen={setOpenNewFormModal} />
|
||||
</>
|
||||
);
|
||||
))}
|
||||
</ul>
|
||||
))}
|
||||
</div>
|
||||
<NewFormModal open={openNewFormModal} setOpen={setOpenNewFormModal} />
|
||||
</>;
|
||||
}
|
||||
|
||||
@@ -41,130 +41,133 @@ export default function FormCode({ formId }) {
|
||||
},
|
||||
];
|
||||
|
||||
return (
|
||||
<>
|
||||
<div className="mx-auto mt-8">
|
||||
<h1 className="text-ui-gray-dark text-3xl font-bold leading-tight">Connect your form</h1>
|
||||
return <>
|
||||
<div className="mx-auto mt-8">
|
||||
<h1 className="text-ui-gray-dark text-3xl font-bold leading-tight">Connect your form</h1>
|
||||
</div>
|
||||
<div className="mt-4 mb-12">
|
||||
<p className="text-ui-gray-dark">
|
||||
To send all form submissions to this dashboard, update the form ID in the{" "}
|
||||
<code>{"<snoopForm>"}</code> component.
|
||||
</p>
|
||||
</div>
|
||||
<div className="grid grid-cols-2 gap-10">
|
||||
<div>
|
||||
<label htmlFor="formId" className="text-ui-gray-dark block text-base">
|
||||
Your form ID
|
||||
</label>
|
||||
<div className="mt-3">
|
||||
<input
|
||||
id="formId"
|
||||
type="text"
|
||||
className="text-md mb-3 w-full rounded-sm border-gray-300 shadow-sm disabled:bg-gray-100"
|
||||
value={formId}
|
||||
disabled
|
||||
/>
|
||||
|
||||
<StandardButton
|
||||
onClick={() => {
|
||||
navigator.clipboard.writeText(formId);
|
||||
toast("Copied form ID to clipboard");
|
||||
}}
|
||||
fullwidth>
|
||||
copy
|
||||
</StandardButton>
|
||||
</div>
|
||||
</div>
|
||||
<div className="rounded-md bg-black p-8 font-light text-gray-200">
|
||||
<p>
|
||||
<code>
|
||||
{"<"}
|
||||
<span className="text-yellow-200">SnoopForm</span>
|
||||
{""}
|
||||
</code>
|
||||
</p>
|
||||
<p>
|
||||
<code>{`domain="${window?.location.host}"`}</code>
|
||||
</p>
|
||||
<p>
|
||||
<code>{`protocol="${window?.location.protocol.replace(":", "")}"`}</code>
|
||||
</p>
|
||||
<p>
|
||||
<code>{`formId="${formId}"`}</code>
|
||||
</p>
|
||||
<p>
|
||||
<code>{">"}</code>
|
||||
</p>
|
||||
<p>
|
||||
<code>
|
||||
<span className="text-gray-600">{`{...}`}</span>
|
||||
</code>
|
||||
</p>
|
||||
<code>
|
||||
{"</"}
|
||||
<span className="text-yellow-200">SnoopForm</span>
|
||||
{">"}
|
||||
</code>
|
||||
</div>
|
||||
</div>
|
||||
<div className="mt-16">
|
||||
<h2 className="text-ui-gray-dark text-xl font-bold">Code your form</h2>
|
||||
<div className="mt-4 mb-12">
|
||||
<p className="text-ui-gray-dark">
|
||||
To send all form submissions to this dashboard, update the form ID in the{" "}
|
||||
<code>{"<snoopForm>"}</code> component.
|
||||
Build your form with the code library of your choice. Manage your data in this dashboard.
|
||||
</p>
|
||||
</div>
|
||||
<div className="grid grid-cols-2 gap-10">
|
||||
<div>
|
||||
<label htmlFor="formId" className="text-ui-gray-dark block text-base">
|
||||
Your form ID
|
||||
</label>
|
||||
<div className="mt-3">
|
||||
<input
|
||||
id="formId"
|
||||
type="text"
|
||||
className="text-md mb-3 w-full rounded-sm border-gray-300 shadow-sm disabled:bg-gray-100"
|
||||
value={formId}
|
||||
disabled
|
||||
/>
|
||||
<ul role="list" className="mt-3 grid grid-cols-1 gap-5 sm:grid-cols-2 sm:gap-6">
|
||||
{libs.map((lib) => (
|
||||
(<Link
|
||||
key={lib.id}
|
||||
href={lib.href}
|
||||
className="col-span-1 flex rounded-md shadow-sm"
|
||||
target={lib.target || ""}
|
||||
rel="noreferrer">
|
||||
|
||||
<StandardButton
|
||||
onClick={() => {
|
||||
navigator.clipboard.writeText(formId);
|
||||
toast("Copied form ID to clipboard");
|
||||
}}
|
||||
fullwidth>
|
||||
copy
|
||||
</StandardButton>
|
||||
</div>
|
||||
</div>
|
||||
<div className="rounded-md bg-black p-8 font-light text-gray-200">
|
||||
<p>
|
||||
<code>
|
||||
{"<"}
|
||||
<span className="text-yellow-200">SnoopForm</span>
|
||||
{""}
|
||||
</code>
|
||||
</p>
|
||||
<p>
|
||||
<code>{`domain="${window?.location.host}"`}</code>
|
||||
</p>
|
||||
<p>
|
||||
<code>{`protocol="${window?.location.protocol.replace(":", "")}"`}</code>
|
||||
</p>
|
||||
<p>
|
||||
<code>{`formId="${formId}"`}</code>
|
||||
</p>
|
||||
<p>
|
||||
<code>{">"}</code>
|
||||
</p>
|
||||
<p>
|
||||
<code>
|
||||
<span className="text-gray-600">{`{...}`}</span>
|
||||
</code>
|
||||
</p>
|
||||
<code>
|
||||
{"</"}
|
||||
<span className="text-yellow-200">SnoopForm</span>
|
||||
{">"}
|
||||
</code>
|
||||
</div>
|
||||
</div>
|
||||
<div className="mt-16">
|
||||
<h2 className="text-ui-gray-dark text-xl font-bold">Code your form</h2>
|
||||
<div className="mt-4 mb-12">
|
||||
<p className="text-ui-gray-dark">
|
||||
Build your form with the code library of your choice. Manage your data in this dashboard.
|
||||
</p>
|
||||
</div>
|
||||
<ul role="list" className="mt-3 grid grid-cols-1 gap-5 sm:grid-cols-2 sm:gap-6">
|
||||
{libs.map((lib) => (
|
||||
<Link key={lib.id} href={lib.href}>
|
||||
<a className="col-span-1 flex rounded-md shadow-sm" target={lib.target || ""} rel="noreferrer">
|
||||
<li
|
||||
<li
|
||||
className={classNames(
|
||||
lib.comingSoon ? "text-ui-gray-medium" : "text-ui-gray-dark shadow-sm hover:text-black",
|
||||
"col-span-1 flex w-full rounded-md"
|
||||
)}>
|
||||
<div
|
||||
className={classNames(
|
||||
lib.bgColor,
|
||||
"flex w-20 flex-shrink-0 items-center justify-center rounded-l-md text-sm font-medium text-white"
|
||||
)}>
|
||||
<lib.icon
|
||||
className={classNames(
|
||||
lib.comingSoon ? "text-ui-gray-medium" : "text-ui-gray-dark shadow-sm hover:text-black",
|
||||
"col-span-1 flex w-full rounded-md"
|
||||
)}>
|
||||
<div
|
||||
className={classNames(
|
||||
lib.bgColor,
|
||||
"flex w-20 flex-shrink-0 items-center justify-center rounded-l-md text-sm font-medium text-white"
|
||||
)}>
|
||||
<lib.icon
|
||||
className={classNames(
|
||||
lib.comingSoon ? "text-ui-gray-medium" : "stroke-1 text-white",
|
||||
"h-10 w-10"
|
||||
)}
|
||||
/>
|
||||
</div>
|
||||
<div
|
||||
className={classNames(
|
||||
lib.comingSoon ? "border-dashed" : "",
|
||||
"flex flex-1 items-center justify-between truncate rounded-r-md bg-white"
|
||||
)}>
|
||||
<div className="inline-flex truncate px-4 py-6 text-lg">
|
||||
<p className="font-light">{lib.name}</p>
|
||||
{lib.comingSoon && (
|
||||
<div className="ml-3 rounded bg-green-100 p-1 px-3">
|
||||
<p className="text-xs text-black">coming soon</p>
|
||||
</div>
|
||||
)}
|
||||
lib.comingSoon ? "text-ui-gray-medium" : "stroke-1 text-white",
|
||||
"h-10 w-10"
|
||||
)}
|
||||
/>
|
||||
</div>
|
||||
<div
|
||||
className={classNames(
|
||||
lib.comingSoon ? "border-dashed" : "",
|
||||
"flex flex-1 items-center justify-between truncate rounded-r-md bg-white"
|
||||
)}>
|
||||
<div className="inline-flex truncate px-4 py-6 text-lg">
|
||||
<p className="font-light">{lib.name}</p>
|
||||
{lib.comingSoon && (
|
||||
<div className="ml-3 rounded bg-green-100 p-1 px-3">
|
||||
<p className="text-xs text-black">coming soon</p>
|
||||
</div>
|
||||
</div>
|
||||
</li>
|
||||
</a>
|
||||
</Link>
|
||||
))}
|
||||
</ul>
|
||||
)}
|
||||
</div>
|
||||
</div>
|
||||
</li>
|
||||
|
||||
<div className="text-ui-gray-medium my-12 text-center font-light">
|
||||
<p>
|
||||
Your form is running? Go to{" "}
|
||||
<Link href={`/forms/${formId}/preview`}>
|
||||
<a className="text-red underline">Pipelines</a>
|
||||
</Link>
|
||||
</p>
|
||||
</div>
|
||||
</Link>)
|
||||
))}
|
||||
</ul>
|
||||
|
||||
<div className="text-ui-gray-medium my-12 text-center font-light">
|
||||
<p>
|
||||
Your form is running? Go to{" "}
|
||||
<Link href={`/forms/${formId}/preview`} className="text-red underline">
|
||||
Pipelines
|
||||
</Link>
|
||||
</p>
|
||||
</div>
|
||||
</>
|
||||
);
|
||||
</div>
|
||||
</>;
|
||||
}
|
||||
|
||||
@@ -17,41 +17,39 @@ export default function LayoutShare({ formId, resetApp, children }) {
|
||||
return <div>You need to be authenticated to view this page.</div>;
|
||||
}
|
||||
|
||||
return (
|
||||
<>
|
||||
<Head>
|
||||
<title>Form Preview</title>
|
||||
</Head>
|
||||
<div className="flex min-h-screen overflow-hidden bg-gray-50">
|
||||
<div className="flex flex-1 flex-col overflow-hidden">
|
||||
<header className="w-full">
|
||||
<div className="border-ui-gray-light relative z-10 flex h-16 flex-shrink-0 border-b bg-white shadow-sm">
|
||||
<div className="flex flex-1 px-4 sm:px-6">
|
||||
<div className="flex flex-1 items-center">
|
||||
<Link href={`/forms/${formId}/form`}>
|
||||
<a>
|
||||
<ArrowLeftIcon className="h-6 w-6" aria-hidden="true" />
|
||||
</a>
|
||||
</Link>
|
||||
</div>
|
||||
<p className="flex flex-1 items-center justify-center text-gray-600">Preview</p>
|
||||
<div className="flex flex-1 items-center justify-end space-x-2 text-right sm:ml-6 sm:space-x-4">
|
||||
<button
|
||||
type="button"
|
||||
onClick={() => resetApp()}
|
||||
className="inline-flex items-center rounded-md border border-transparent bg-red-600 px-4 py-2 text-sm font-medium text-white shadow-sm hover:bg-red-700 focus:outline-none focus:ring-2 focus:ring-red-500 focus:ring-offset-2">
|
||||
Restart
|
||||
<ArrowPathIcon className="ml-2 -mr-1 h-5 w-5" aria-hidden="true" />
|
||||
</button>
|
||||
</div>
|
||||
return <>
|
||||
<Head>
|
||||
<title>Form Preview</title>
|
||||
</Head>
|
||||
<div className="flex min-h-screen overflow-hidden bg-gray-50">
|
||||
<div className="flex flex-1 flex-col overflow-hidden">
|
||||
<header className="w-full">
|
||||
<div className="border-ui-gray-light relative z-10 flex h-16 flex-shrink-0 border-b bg-white shadow-sm">
|
||||
<div className="flex flex-1 px-4 sm:px-6">
|
||||
<div className="flex flex-1 items-center">
|
||||
<Link href={`/forms/${formId}/form`}>
|
||||
|
||||
<ArrowLeftIcon className="h-6 w-6" aria-hidden="true" />
|
||||
|
||||
</Link>
|
||||
</div>
|
||||
<p className="flex flex-1 items-center justify-center text-gray-600">Preview</p>
|
||||
<div className="flex flex-1 items-center justify-end space-x-2 text-right sm:ml-6 sm:space-x-4">
|
||||
<button
|
||||
type="button"
|
||||
onClick={() => resetApp()}
|
||||
className="inline-flex items-center rounded-md border border-transparent bg-red-600 px-4 py-2 text-sm font-medium text-white shadow-sm hover:bg-red-700 focus:outline-none focus:ring-2 focus:ring-red-500 focus:ring-offset-2">
|
||||
Restart
|
||||
<ArrowPathIcon className="ml-2 -mr-1 h-5 w-5" aria-hidden="true" />
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</header>
|
||||
</div>
|
||||
</header>
|
||||
|
||||
{/* Main content */}
|
||||
{children}
|
||||
</div>
|
||||
{/* Main content */}
|
||||
{children}
|
||||
</div>
|
||||
</>
|
||||
);
|
||||
</div>
|
||||
</>;
|
||||
}
|
||||
|
||||
@@ -8,11 +8,11 @@ export default function MenuBreadcrumbs({ breadcrumbs }) {
|
||||
<ol className="flex items-center space-x-4">
|
||||
<li>
|
||||
<div>
|
||||
<Link href="/forms/">
|
||||
<a className="text-ui-gray-dark hover:text-ui-gray-dark">
|
||||
<HomeIcon className="h-5 w-5 flex-shrink-0" aria-hidden="true" />
|
||||
<span className="sr-only">Home</span>
|
||||
</a>
|
||||
<Link href="/forms/" className="text-ui-gray-dark hover:text-ui-gray-dark">
|
||||
|
||||
<HomeIcon className="h-5 w-5 flex-shrink-0" aria-hidden="true" />
|
||||
<span className="sr-only">Home</span>
|
||||
|
||||
</Link>
|
||||
</div>
|
||||
</li>
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
import { Menu, Transition } from "@headlessui/react";
|
||||
import { ArrowLeftOnRectangleIcon } from "@heroicons/react/24/solid";
|
||||
import { signOut } from "next-auth/react";
|
||||
import Image from "next/image";
|
||||
import Image from "next/legacy/image";
|
||||
import { Fragment } from "react";
|
||||
import { classNames } from "../../lib/utils";
|
||||
|
||||
|
||||
@@ -40,18 +40,20 @@ export default function MenuSteps({ steps, currentStep }: MenuStepsProps) {
|
||||
<div className="hidden sm:block">
|
||||
<nav className="-mb-px flex space-x-8" aria-label="steps">
|
||||
{steps.map((step) => (
|
||||
<Link key={step.name} href={step.href}>
|
||||
<a
|
||||
className={classNames(
|
||||
step.id === currentStep
|
||||
? "border-red text-red"
|
||||
: "text-ui-gray-dark hover:text-ui-gray-dark hover:border-ui-gray-medium border-transparent",
|
||||
"whitespace-nowrap border-b-2 py-5 px-1 text-sm font-medium"
|
||||
)}
|
||||
aria-current={step.id === currentStep ? "page" : undefined}>
|
||||
{step.name}
|
||||
</a>
|
||||
</Link>
|
||||
(<Link
|
||||
key={step.name}
|
||||
href={step.href}
|
||||
className={classNames(
|
||||
step.id === currentStep
|
||||
? "border-red text-red"
|
||||
: "text-ui-gray-dark hover:text-ui-gray-dark hover:border-ui-gray-medium border-transparent",
|
||||
"whitespace-nowrap border-b-2 py-5 px-1 text-sm font-medium"
|
||||
)}
|
||||
aria-current={step.id === currentStep ? "page" : undefined}>
|
||||
|
||||
{step.name}
|
||||
|
||||
</Link>)
|
||||
))}
|
||||
</nav>
|
||||
</div>
|
||||
|
||||
@@ -2,7 +2,7 @@ import { signIn, useSession } from "next-auth/react";
|
||||
import Loading from "../Loading";
|
||||
|
||||
const withAuthentication = (Component) =>
|
||||
function WithAuth(props) {
|
||||
(function WithAuth(props) {
|
||||
const { status } = useSession({
|
||||
required: true,
|
||||
onUnauthenticated() {
|
||||
@@ -16,6 +16,6 @@ const withAuthentication = (Component) =>
|
||||
}
|
||||
|
||||
return <Component {...props} />;
|
||||
};
|
||||
});
|
||||
|
||||
export default withAuthentication;
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import Image from "next/image";
|
||||
import Image from "next/legacy/image";
|
||||
import { useMemo } from "react";
|
||||
import { getSubmissionAnalytics, useSubmissionSessions } from "../../lib/submissionSessions";
|
||||
import { timeSince } from "../../lib/utils";
|
||||
|
||||
@@ -29,7 +29,7 @@
|
||||
"highlight.js": "^11.6.0",
|
||||
"json2csv": "^5.0.7",
|
||||
"jsonwebtoken": "^8.5.1",
|
||||
"next": "12.3.1",
|
||||
"next": "13.0.0",
|
||||
"next-auth": "^4.14.0",
|
||||
"nextjs-cors": "^2.1.1",
|
||||
"nodemailer": "^6.8.0",
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import Image from "next/image";
|
||||
import Image from "next/legacy/image";
|
||||
import BaseLayoutUnauthorized from "../components/layout/BaseLayoutUnauthorized";
|
||||
import Link from "next/link";
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import Image from "next/image";
|
||||
import Image from "next/legacy/image";
|
||||
import Link from "next/link";
|
||||
import BaseLayoutUnauthorized from "../../components/layout/BaseLayoutUnauthorized";
|
||||
|
||||
@@ -19,10 +19,8 @@ export default function ForgotPasswordEmailSent() {
|
||||
minutes, check your spam folder.
|
||||
</p>
|
||||
<div className="mt-3 text-center">
|
||||
<Link href="/auth/signin">
|
||||
<a href="" className="text-red block text-xs hover:text-red-600">
|
||||
Back to login
|
||||
</a>
|
||||
<Link href="/auth/signin" className="text-red block text-xs hover:text-red-600">
|
||||
Back to login
|
||||
</Link>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import { XCircleIcon } from "@heroicons/react/24/solid";
|
||||
import Image from "next/image";
|
||||
import Image from "next/legacy/image";
|
||||
import Link from "next/link";
|
||||
import { useRouter } from "next/router";
|
||||
import { useState } from "react";
|
||||
@@ -74,10 +74,8 @@ export default function ForgotPasswordPage() {
|
||||
Send password reset email
|
||||
</button>
|
||||
<div className="mt-3 text-center">
|
||||
<Link href="/auth/signin">
|
||||
<a href="" className="text-red block text-xs hover:text-red-600">
|
||||
Back to login
|
||||
</a>
|
||||
<Link href="/auth/signin" className="text-red block text-xs hover:text-red-600">
|
||||
Back to login
|
||||
</Link>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import Image from "next/image";
|
||||
import Image from "next/legacy/image";
|
||||
import Link from "next/link";
|
||||
import BaseLayoutUnauthorized from "../../components/layout/BaseLayoutUnauthorized";
|
||||
|
||||
@@ -16,10 +16,8 @@ export default function ResetPasswordSuccess() {
|
||||
<h1 className="leading-2 mb-4 text-center font-bold">Password successfully reset</h1>
|
||||
<p className="text-center">You can now log in with your new password</p>
|
||||
<div className="mt-3 text-center">
|
||||
<Link href="/auth/signin">
|
||||
<a href="" className="text-red block text-xs hover:text-red-600">
|
||||
Go to login
|
||||
</a>
|
||||
<Link href="/auth/signin" className="text-red block text-xs hover:text-red-600">
|
||||
Go to login
|
||||
</Link>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import { XCircleIcon } from "@heroicons/react/24/solid";
|
||||
import Image from "next/image";
|
||||
import Image from "next/legacy/image";
|
||||
import { useRouter } from "next/router";
|
||||
import { useState } from "react";
|
||||
import BaseLayoutUnauthorized from "../../components/layout/BaseLayoutUnauthorized";
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import { XCircleIcon } from "@heroicons/react/24/solid";
|
||||
import { signIn } from "next-auth/react";
|
||||
import Image from "next/image";
|
||||
import Image from "next/legacy/image";
|
||||
import Link from "next/link";
|
||||
import { useRouter } from "next/router";
|
||||
import BaseLayoutUnauthorized from "../../components/layout/BaseLayoutUnauthorized";
|
||||
@@ -86,21 +86,21 @@ export default function SignInPage() {
|
||||
className="bg-red flex w-full justify-center rounded-md border border-transparent px-4 py-2 text-sm font-medium text-white shadow-sm hover:bg-red-600 focus:outline-none focus:ring-2 focus:ring-red-500 focus:ring-offset-2">
|
||||
Sign in
|
||||
</button>
|
||||
<div className="mt-3 text-center">
|
||||
<div className="text-red mt-3 text-center text-xs hover:text-red-600">
|
||||
{process.env.NEXT_PUBLIC_PASSWORD_RESET_DISABLED !== "1" && (
|
||||
<Link href="/auth/forgot-password">
|
||||
<a href="" className="text-red block text-xs hover:text-red-600">
|
||||
<div>
|
||||
<Link href="/auth/forgot-password" id="forgot-password">
|
||||
Forgot your password?
|
||||
</a>
|
||||
</Link>
|
||||
</Link>
|
||||
</div>
|
||||
)}
|
||||
|
||||
{process.env.NEXT_PUBLIC_SIGNUP_DISABLED !== "1" && (
|
||||
<Link href="/auth/signup">
|
||||
<a href="" className="text-red text-xs hover:text-red-600">
|
||||
<div>
|
||||
<Link href="/auth/signup" id="create-account">
|
||||
Create an account
|
||||
</a>
|
||||
</Link>
|
||||
</Link>
|
||||
</div>
|
||||
)}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import Image from "next/image";
|
||||
import Image from "next/legacy/image";
|
||||
import { useRouter } from "next/router";
|
||||
import BaseLayoutUnauthorized from "../../components/layout/BaseLayoutUnauthorized";
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import { XCircleIcon } from "@heroicons/react/24/solid";
|
||||
import Image from "next/image";
|
||||
import Image from "next/legacy/image";
|
||||
import Link from "next/link";
|
||||
import { useRouter } from "next/router";
|
||||
import { useState } from "react";
|
||||
@@ -156,8 +156,8 @@ export default function SignUpPage() {
|
||||
|
||||
<div className="mt-3 text-center text-xs text-gray-600">
|
||||
Already have an account?{" "}
|
||||
<Link href="/auth/signin">
|
||||
<a className="text-red hover:text-red-600">Log in.</a>
|
||||
<Link href="/auth/signin" className="text-red hover:text-red-600">
|
||||
Log in.
|
||||
</Link>
|
||||
</div>
|
||||
{(process.env.NEXT_PUBLIC_TERMS_URL || process.env.NEXT_PUBLIC_PRIVACY_URL) && (
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import Image from "next/image";
|
||||
import Image from "next/legacy/image";
|
||||
import { useRouter } from "next/router";
|
||||
import { toast } from "react-toastify";
|
||||
import BaseLayoutUnauthorized from "../../components/layout/BaseLayoutUnauthorized";
|
||||
|
||||
@@ -4,7 +4,7 @@ import Loading from "../../components/Loading";
|
||||
import MessagePage from "../../components/MessagePage";
|
||||
import { useNoCodeFormPublic } from "../../lib/noCodeForm";
|
||||
import { useRouter } from "next/router";
|
||||
import Image from "next/image";
|
||||
import Image from "next/legacy/image";
|
||||
|
||||
function NoCodeFormPublic() {
|
||||
const router = useRouter();
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
version: "3.3"
|
||||
services:
|
||||
postgres:
|
||||
restart: unless-stopped
|
||||
image: postgres:13-alpine
|
||||
volumes:
|
||||
- postgres:/var/lib/postgresql/data
|
||||
@@ -12,6 +13,7 @@ services:
|
||||
- 5432:5432
|
||||
|
||||
mailhog:
|
||||
restart: unless-stopped
|
||||
image: mailhog/mailhog
|
||||
# network_mode: service:app
|
||||
logging:
|
||||
|
||||
@@ -5,10 +5,10 @@
|
||||
"main": "index.js",
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"eslint": "^8.25.0",
|
||||
"eslint-config-next": "^12.3.1",
|
||||
"eslint": "^8.26.0",
|
||||
"eslint-config-next": "^13.0.0",
|
||||
"eslint-config-prettier": "^8.5.0",
|
||||
"eslint-plugin-react": "7.31.9",
|
||||
"eslint-plugin-react": "7.31.10",
|
||||
"eslint-config-turbo": "latest"
|
||||
},
|
||||
"devDependencies": {
|
||||
|
||||
Generated
+205
-123
@@ -12,7 +12,7 @@ importers:
|
||||
'@changesets/cli': 2.25.0
|
||||
prettier: 2.7.1
|
||||
tsx: 3.9.0
|
||||
turbo: 1.5.6
|
||||
turbo: 1.6.1
|
||||
|
||||
apps/web:
|
||||
specifiers:
|
||||
@@ -45,7 +45,7 @@ importers:
|
||||
highlight.js: ^11.6.0
|
||||
json2csv: ^5.0.7
|
||||
jsonwebtoken: ^8.5.1
|
||||
next: 12.3.1
|
||||
next: 13.0.0
|
||||
next-auth: ^4.14.0
|
||||
nextjs-cors: ^2.1.1
|
||||
nodemailer: ^6.8.0
|
||||
@@ -81,9 +81,9 @@ importers:
|
||||
highlight.js: 11.6.0
|
||||
json2csv: 5.0.7
|
||||
jsonwebtoken: 8.5.1
|
||||
next: 12.3.1_biqbaboplfbrettd7655fr4n2y
|
||||
next-auth: 4.14.0_pvhs6umhoiyo7cgwjp6cvqsra4
|
||||
nextjs-cors: 2.1.1_next@12.3.1
|
||||
next: 13.0.0_biqbaboplfbrettd7655fr4n2y
|
||||
next-auth: 4.14.0_lpfza7lqpqeylqwoqom67hspdi
|
||||
nextjs-cors: 2.1.1_next@13.0.0
|
||||
nodemailer: 6.8.0
|
||||
react: 18.2.0
|
||||
react-chartjs-2: 4.3.1_2unjvz6v6rskedwoxtmbfw2rje
|
||||
@@ -140,18 +140,18 @@ importers:
|
||||
|
||||
packages/eslint-config-custom:
|
||||
specifiers:
|
||||
eslint: ^8.25.0
|
||||
eslint-config-next: ^12.3.1
|
||||
eslint: ^8.26.0
|
||||
eslint-config-next: ^13.0.0
|
||||
eslint-config-prettier: ^8.5.0
|
||||
eslint-config-turbo: latest
|
||||
eslint-plugin-react: 7.31.9
|
||||
eslint-plugin-react: 7.31.10
|
||||
typescript: ^4.8.4
|
||||
dependencies:
|
||||
eslint: 8.25.0
|
||||
eslint-config-next: 12.3.1_z4bbprzjrhnsfa24uvmcbu7f5q
|
||||
eslint-config-prettier: 8.5.0_eslint@8.25.0
|
||||
eslint-config-turbo: 0.0.4_eslint@8.25.0
|
||||
eslint-plugin-react: 7.31.9_eslint@8.25.0
|
||||
eslint: 8.26.0
|
||||
eslint-config-next: 13.0.0_wyqvi574yv7oiwfeinomdzmc3m
|
||||
eslint-config-prettier: 8.5.0_eslint@8.26.0
|
||||
eslint-config-turbo: 0.0.4_eslint@8.26.0
|
||||
eslint-plugin-react: 7.31.10_eslint@8.26.0
|
||||
devDependencies:
|
||||
typescript: 4.8.4
|
||||
|
||||
@@ -827,6 +827,18 @@ packages:
|
||||
minimatch: 3.1.2
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
dev: true
|
||||
|
||||
/@humanwhocodes/config-array/0.11.6:
|
||||
resolution: {integrity: sha512-jJr+hPTJYKyDILJfhNSHsjiwXYf26Flsz8DvNndOsHs5pwSnpGUEy8yzF0JYhCEvTDdV2vuOK5tt8BVhwO5/hg==}
|
||||
engines: {node: '>=10.10.0'}
|
||||
dependencies:
|
||||
'@humanwhocodes/object-schema': 1.2.1
|
||||
debug: 4.3.4
|
||||
minimatch: 3.1.2
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
dev: false
|
||||
|
||||
/@humanwhocodes/config-array/0.5.0:
|
||||
resolution: {integrity: sha512-FagtKFz74XrTl7y6HCzQpwDfXP0yhxe9lHLD1UZxjvZIcbyRz8zTFF/yYNfSfzU414eDwZ1SrO0Qvtyf+wFMQg==}
|
||||
@@ -913,18 +925,18 @@ packages:
|
||||
read-yaml-file: 1.1.0
|
||||
dev: true
|
||||
|
||||
/@next/env/12.3.1:
|
||||
resolution: {integrity: sha512-9P9THmRFVKGKt9DYqeC2aKIxm8rlvkK38V1P1sRE7qyoPBIs8l9oo79QoSdPtOWfzkbDAVUqvbQGgTMsb8BtJg==}
|
||||
/@next/env/13.0.0:
|
||||
resolution: {integrity: sha512-65v9BVuah2Mplohm4+efsKEnoEuhmlGm8B2w6vD1geeEP2wXtlSJCvR/cCRJ3fD8wzCQBV41VcMBQeYET6MRkg==}
|
||||
dev: false
|
||||
|
||||
/@next/eslint-plugin-next/12.3.1:
|
||||
resolution: {integrity: sha512-sw+lTf6r6P0j+g/n9y4qdWWI2syPqZx+uc0+B/fRENqfR3KpSid6MIKqc9gNwGhJASazEQ5b3w8h4cAET213jw==}
|
||||
/@next/eslint-plugin-next/13.0.0:
|
||||
resolution: {integrity: sha512-z+gnX4Zizatqatc6f4CQrcC9oN8Us3Vrq/OLyc98h7K/eWctrnV91zFZodmJHUjx0cITY8uYM7LXD7IdYkg3kg==}
|
||||
dependencies:
|
||||
glob: 7.1.7
|
||||
dev: false
|
||||
|
||||
/@next/swc-android-arm-eabi/12.3.1:
|
||||
resolution: {integrity: sha512-i+BvKA8tB//srVPPQxIQN5lvfROcfv4OB23/L1nXznP+N/TyKL8lql3l7oo2LNhnH66zWhfoemg3Q4VJZSruzQ==}
|
||||
/@next/swc-android-arm-eabi/13.0.0:
|
||||
resolution: {integrity: sha512-+DUQkYF93gxFjWY+CYWE1QDX6gTgnUiWf+W4UqZjM1Jcef8U97fS6xYh+i+8rH4MM0AXHm7OSakvfOMzmjU6VA==}
|
||||
engines: {node: '>= 10'}
|
||||
cpu: [arm]
|
||||
os: [android]
|
||||
@@ -932,8 +944,8 @@ packages:
|
||||
dev: false
|
||||
optional: true
|
||||
|
||||
/@next/swc-android-arm64/12.3.1:
|
||||
resolution: {integrity: sha512-CmgU2ZNyBP0rkugOOqLnjl3+eRpXBzB/I2sjwcGZ7/Z6RcUJXK5Evz+N0ucOxqE4cZ3gkTeXtSzRrMK2mGYV8Q==}
|
||||
/@next/swc-android-arm64/13.0.0:
|
||||
resolution: {integrity: sha512-RW9Uy3bMSc0zVGCa11klFuwfP/jdcdkhdruqnrJ7v+7XHm6OFKkSRzX6ee7yGR1rdDZvTnP4GZSRSpzjLv/N0g==}
|
||||
engines: {node: '>= 10'}
|
||||
cpu: [arm64]
|
||||
os: [android]
|
||||
@@ -941,8 +953,8 @@ packages:
|
||||
dev: false
|
||||
optional: true
|
||||
|
||||
/@next/swc-darwin-arm64/12.3.1:
|
||||
resolution: {integrity: sha512-hT/EBGNcu0ITiuWDYU9ur57Oa4LybD5DOQp4f22T6zLfpoBMfBibPtR8XktXmOyFHrL/6FC2p9ojdLZhWhvBHg==}
|
||||
/@next/swc-darwin-arm64/13.0.0:
|
||||
resolution: {integrity: sha512-APA26nps1j4qyhOIzkclW/OmgotVHj1jBxebSpMCPw2rXfiNvKNY9FA0TcuwPmUCNqaTnm703h6oW4dvp73A4Q==}
|
||||
engines: {node: '>= 10'}
|
||||
cpu: [arm64]
|
||||
os: [darwin]
|
||||
@@ -950,8 +962,8 @@ packages:
|
||||
dev: false
|
||||
optional: true
|
||||
|
||||
/@next/swc-darwin-x64/12.3.1:
|
||||
resolution: {integrity: sha512-9S6EVueCVCyGf2vuiLiGEHZCJcPAxglyckTZcEwLdJwozLqN0gtS0Eq0bQlGS3dH49Py/rQYpZ3KVWZ9BUf/WA==}
|
||||
/@next/swc-darwin-x64/13.0.0:
|
||||
resolution: {integrity: sha512-qsUhUdoFuRJiaJ7LnvTQ6GZv1QnMDcRXCIjxaN0FNVXwrjkq++U7KjBUaxXkRzLV4C7u0NHLNOp0iZwNNE7ypw==}
|
||||
engines: {node: '>= 10'}
|
||||
cpu: [x64]
|
||||
os: [darwin]
|
||||
@@ -959,8 +971,8 @@ packages:
|
||||
dev: false
|
||||
optional: true
|
||||
|
||||
/@next/swc-freebsd-x64/12.3.1:
|
||||
resolution: {integrity: sha512-qcuUQkaBZWqzM0F1N4AkAh88lLzzpfE6ImOcI1P6YeyJSsBmpBIV8o70zV+Wxpc26yV9vpzb+e5gCyxNjKJg5Q==}
|
||||
/@next/swc-freebsd-x64/13.0.0:
|
||||
resolution: {integrity: sha512-sCdyCbboS7CwdnevKH9J6hkJI76LUw1jVWt4eV7kISuLiPba3JmehZSWm80oa4ADChRVAwzhLAo2zJaYRrInbg==}
|
||||
engines: {node: '>= 10'}
|
||||
cpu: [x64]
|
||||
os: [freebsd]
|
||||
@@ -968,8 +980,8 @@ packages:
|
||||
dev: false
|
||||
optional: true
|
||||
|
||||
/@next/swc-linux-arm-gnueabihf/12.3.1:
|
||||
resolution: {integrity: sha512-diL9MSYrEI5nY2wc/h/DBewEDUzr/DqBjIgHJ3RUNtETAOB3spMNHvJk2XKUDjnQuluLmFMloet9tpEqU2TT9w==}
|
||||
/@next/swc-linux-arm-gnueabihf/13.0.0:
|
||||
resolution: {integrity: sha512-/X/VxfFA41C9jrEv+sUsPLQ5vbDPVIgG0CJrzKvrcc+b+4zIgPgtfsaWq9ockjHFQi3ycvlZK4TALOXO8ovQ6Q==}
|
||||
engines: {node: '>= 10'}
|
||||
cpu: [arm]
|
||||
os: [linux]
|
||||
@@ -977,8 +989,8 @@ packages:
|
||||
dev: false
|
||||
optional: true
|
||||
|
||||
/@next/swc-linux-arm64-gnu/12.3.1:
|
||||
resolution: {integrity: sha512-o/xB2nztoaC7jnXU3Q36vGgOolJpsGG8ETNjxM1VAPxRwM7FyGCPHOMk1XavG88QZSQf+1r+POBW0tLxQOJ9DQ==}
|
||||
/@next/swc-linux-arm64-gnu/13.0.0:
|
||||
resolution: {integrity: sha512-x6Oxr1GIi0ZtNiT6jbw+JVcbEi3UQgF7mMmkrgfL4mfchOwXtWSHKTSSPnwoJWJfXYa0Vy1n8NElWNTGAqoWFw==}
|
||||
engines: {node: '>= 10'}
|
||||
cpu: [arm64]
|
||||
os: [linux]
|
||||
@@ -986,8 +998,8 @@ packages:
|
||||
dev: false
|
||||
optional: true
|
||||
|
||||
/@next/swc-linux-arm64-musl/12.3.1:
|
||||
resolution: {integrity: sha512-2WEasRxJzgAmP43glFNhADpe8zB7kJofhEAVNbDJZANp+H4+wq+/cW1CdDi8DqjkShPEA6/ejJw+xnEyDID2jg==}
|
||||
/@next/swc-linux-arm64-musl/13.0.0:
|
||||
resolution: {integrity: sha512-SnMH9ngI+ipGh3kqQ8+mDtWunirwmhQnQeZkEq9e/9Xsgjf04OetqrqRHKM1HmJtG2qMUJbyXFJ0F81TPuT+3g==}
|
||||
engines: {node: '>= 10'}
|
||||
cpu: [arm64]
|
||||
os: [linux]
|
||||
@@ -995,8 +1007,8 @@ packages:
|
||||
dev: false
|
||||
optional: true
|
||||
|
||||
/@next/swc-linux-x64-gnu/12.3.1:
|
||||
resolution: {integrity: sha512-JWEaMyvNrXuM3dyy9Pp5cFPuSSvG82+yABqsWugjWlvfmnlnx9HOQZY23bFq3cNghy5V/t0iPb6cffzRWylgsA==}
|
||||
/@next/swc-linux-x64-gnu/13.0.0:
|
||||
resolution: {integrity: sha512-VSQwTX9EmdbotArtA1J67X8964oQfe0xHb32x4tu+JqTR+wOHyG6wGzPMdXH2oKAp6rdd7BzqxUXXf0J+ypHlw==}
|
||||
engines: {node: '>= 10'}
|
||||
cpu: [x64]
|
||||
os: [linux]
|
||||
@@ -1004,8 +1016,8 @@ packages:
|
||||
dev: false
|
||||
optional: true
|
||||
|
||||
/@next/swc-linux-x64-musl/12.3.1:
|
||||
resolution: {integrity: sha512-xoEWQQ71waWc4BZcOjmatuvPUXKTv6MbIFzpm4LFeCHsg2iwai0ILmNXf81rJR+L1Wb9ifEke2sQpZSPNz1Iyg==}
|
||||
/@next/swc-linux-x64-musl/13.0.0:
|
||||
resolution: {integrity: sha512-xBCP0nnpO0q4tsytXkvIwWFINtbFRyVY5gxa1zB0vlFtqYR9lNhrOwH3CBrks3kkeaePOXd611+8sjdUtrLnXA==}
|
||||
engines: {node: '>= 10'}
|
||||
cpu: [x64]
|
||||
os: [linux]
|
||||
@@ -1013,8 +1025,8 @@ packages:
|
||||
dev: false
|
||||
optional: true
|
||||
|
||||
/@next/swc-win32-arm64-msvc/12.3.1:
|
||||
resolution: {integrity: sha512-hswVFYQYIeGHE2JYaBVtvqmBQ1CppplQbZJS/JgrVI3x2CurNhEkmds/yqvDONfwfbttTtH4+q9Dzf/WVl3Opw==}
|
||||
/@next/swc-win32-arm64-msvc/13.0.0:
|
||||
resolution: {integrity: sha512-NutwDafqhGxqPj/eiUixJq9ImS/0sgx6gqlD7jRndCvQ2Q8AvDdu1+xKcGWGNnhcDsNM/n1avf1e62OG1GaqJg==}
|
||||
engines: {node: '>= 10'}
|
||||
cpu: [arm64]
|
||||
os: [win32]
|
||||
@@ -1022,8 +1034,8 @@ packages:
|
||||
dev: false
|
||||
optional: true
|
||||
|
||||
/@next/swc-win32-ia32-msvc/12.3.1:
|
||||
resolution: {integrity: sha512-Kny5JBehkTbKPmqulr5i+iKntO5YMP+bVM8Hf8UAmjSMVo3wehyLVc9IZkNmcbxi+vwETnQvJaT5ynYBkJ9dWA==}
|
||||
/@next/swc-win32-ia32-msvc/13.0.0:
|
||||
resolution: {integrity: sha512-zNaxaO+Kl/xNz02E9QlcVz0pT4MjkXGDLb25qxtAzyJL15aU0+VjjbIZAYWctG59dvggNIUNDWgoBeVTKB9xLg==}
|
||||
engines: {node: '>= 10'}
|
||||
cpu: [ia32]
|
||||
os: [win32]
|
||||
@@ -1031,8 +1043,8 @@ packages:
|
||||
dev: false
|
||||
optional: true
|
||||
|
||||
/@next/swc-win32-x64-msvc/12.3.1:
|
||||
resolution: {integrity: sha512-W1ijvzzg+kPEX6LAc+50EYYSEo0FVu7dmTE+t+DM4iOLqgGHoW9uYSz9wCVdkXOEEMP9xhXfGpcSxsfDucyPkA==}
|
||||
/@next/swc-win32-x64-msvc/13.0.0:
|
||||
resolution: {integrity: sha512-FFOGGWwTCRMu9W7MF496Urefxtuo2lttxF1vwS+1rIRsKvuLrWhVaVTj3T8sf2EBL6gtJbmh4TYlizS+obnGKA==}
|
||||
engines: {node: '>= 10'}
|
||||
cpu: [x64]
|
||||
os: [win32]
|
||||
@@ -1266,7 +1278,7 @@ packages:
|
||||
resolution: {integrity: sha512-KQf+QAMWKMrtBMsB8/24w53tEsxllMj6TuA80TT/5igJalLI/zm0L3oXRbIAl4Ohfc85gyHX/jhMwsVkmhLU4A==}
|
||||
dev: true
|
||||
|
||||
/@typescript-eslint/parser/5.39.0_z4bbprzjrhnsfa24uvmcbu7f5q:
|
||||
/@typescript-eslint/parser/5.39.0_wyqvi574yv7oiwfeinomdzmc3m:
|
||||
resolution: {integrity: sha512-PhxLjrZnHShe431sBAGHaNe6BDdxAASDySgsBCGxcBecVCi8NQWxQZMcizNA4g0pN51bBAn/FUfkWG3SDVcGlA==}
|
||||
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
|
||||
peerDependencies:
|
||||
@@ -1280,7 +1292,7 @@ packages:
|
||||
'@typescript-eslint/types': 5.39.0
|
||||
'@typescript-eslint/typescript-estree': 5.39.0_typescript@4.8.4
|
||||
debug: 4.3.4
|
||||
eslint: 8.25.0
|
||||
eslint: 8.26.0
|
||||
typescript: 4.8.4
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
@@ -1880,6 +1892,10 @@ packages:
|
||||
resolution: {integrity: sha512-CLOGsVDrVamzv8sXJGaILUVI6dsuAkouJP/n6t+OxLPeeA4DDby7zn9SB6EUpa1H7oIKoE+rMmkW80zYsFfUjA==}
|
||||
dev: true
|
||||
|
||||
/client-only/0.0.1:
|
||||
resolution: {integrity: sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA==}
|
||||
dev: false
|
||||
|
||||
/cliui/6.0.0:
|
||||
resolution: {integrity: sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==}
|
||||
dependencies:
|
||||
@@ -2600,8 +2616,8 @@ packages:
|
||||
resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==}
|
||||
engines: {node: '>=10'}
|
||||
|
||||
/eslint-config-next/12.3.1_z4bbprzjrhnsfa24uvmcbu7f5q:
|
||||
resolution: {integrity: sha512-EN/xwKPU6jz1G0Qi6Bd/BqMnHLyRAL0VsaQaWA7F3KkjAgZHi4f1uL1JKGWNxdQpHTW/sdGONBd0bzxUka/DJg==}
|
||||
/eslint-config-next/13.0.0_wyqvi574yv7oiwfeinomdzmc3m:
|
||||
resolution: {integrity: sha512-y2nqWS2tycWySdVhb+rhp6CuDmDazGySqkzzQZf3UTyfHyC7og1m5m/AtMFwCo5mtvDqvw1BENin52kV9733lg==}
|
||||
peerDependencies:
|
||||
eslint: ^7.23.0 || ^8.0.0
|
||||
typescript: '>=3.3.1'
|
||||
@@ -2609,38 +2625,38 @@ packages:
|
||||
typescript:
|
||||
optional: true
|
||||
dependencies:
|
||||
'@next/eslint-plugin-next': 12.3.1
|
||||
'@next/eslint-plugin-next': 13.0.0
|
||||
'@rushstack/eslint-patch': 1.2.0
|
||||
'@typescript-eslint/parser': 5.39.0_z4bbprzjrhnsfa24uvmcbu7f5q
|
||||
eslint: 8.25.0
|
||||
'@typescript-eslint/parser': 5.39.0_wyqvi574yv7oiwfeinomdzmc3m
|
||||
eslint: 8.26.0
|
||||
eslint-import-resolver-node: 0.3.6
|
||||
eslint-import-resolver-typescript: 2.7.1_fyln4uq2tv75svthy6prqvt6lm
|
||||
eslint-plugin-import: 2.26.0_eslint@8.25.0
|
||||
eslint-plugin-jsx-a11y: 6.6.1_eslint@8.25.0
|
||||
eslint-plugin-react: 7.31.9_eslint@8.25.0
|
||||
eslint-plugin-react-hooks: 4.6.0_eslint@8.25.0
|
||||
eslint-import-resolver-typescript: 2.7.1_mynvxvmq5qtyojffiqgev4x7mm
|
||||
eslint-plugin-import: 2.26.0_eslint@8.26.0
|
||||
eslint-plugin-jsx-a11y: 6.6.1_eslint@8.26.0
|
||||
eslint-plugin-react: 7.31.10_eslint@8.26.0
|
||||
eslint-plugin-react-hooks: 4.6.0_eslint@8.26.0
|
||||
typescript: 4.8.4
|
||||
transitivePeerDependencies:
|
||||
- eslint-import-resolver-webpack
|
||||
- supports-color
|
||||
dev: false
|
||||
|
||||
/eslint-config-prettier/8.5.0_eslint@8.25.0:
|
||||
/eslint-config-prettier/8.5.0_eslint@8.26.0:
|
||||
resolution: {integrity: sha512-obmWKLUNCnhtQRKc+tmnYuQl0pFU1ibYJQ5BGhTVB08bHe9wC8qUeG7c08dj9XX+AuPj1YSGSQIHl1pnDHZR0Q==}
|
||||
hasBin: true
|
||||
peerDependencies:
|
||||
eslint: '>=7.0.0'
|
||||
dependencies:
|
||||
eslint: 8.25.0
|
||||
eslint: 8.26.0
|
||||
dev: false
|
||||
|
||||
/eslint-config-turbo/0.0.4_eslint@8.25.0:
|
||||
/eslint-config-turbo/0.0.4_eslint@8.26.0:
|
||||
resolution: {integrity: sha512-HErPS/wfWkSdV9Yd2dDkhZt3W2B78Ih/aWPFfaHmCMjzPalh+5KxRRGTf8MOBQLCebcWJX0lP1Zvc1rZIHlXGg==}
|
||||
peerDependencies:
|
||||
eslint: ^7.23.0 || ^8.0.0
|
||||
dependencies:
|
||||
eslint: 8.25.0
|
||||
eslint-plugin-turbo: 0.0.4_eslint@8.25.0
|
||||
eslint: 8.26.0
|
||||
eslint-plugin-turbo: 0.0.4_eslint@8.26.0
|
||||
dev: false
|
||||
|
||||
/eslint-import-resolver-node/0.3.6:
|
||||
@@ -2652,7 +2668,7 @@ packages:
|
||||
- supports-color
|
||||
dev: false
|
||||
|
||||
/eslint-import-resolver-typescript/2.7.1_fyln4uq2tv75svthy6prqvt6lm:
|
||||
/eslint-import-resolver-typescript/2.7.1_mynvxvmq5qtyojffiqgev4x7mm:
|
||||
resolution: {integrity: sha512-00UbgGwV8bSgUv34igBDbTOtKhqoRMy9bFjNehT40bXg6585PNIct8HhXZ0SybqB9rWtXj9crcku8ndDn/gIqQ==}
|
||||
engines: {node: '>=4'}
|
||||
peerDependencies:
|
||||
@@ -2660,8 +2676,8 @@ packages:
|
||||
eslint-plugin-import: '*'
|
||||
dependencies:
|
||||
debug: 4.3.4
|
||||
eslint: 8.25.0
|
||||
eslint-plugin-import: 2.26.0_eslint@8.25.0
|
||||
eslint: 8.26.0
|
||||
eslint-plugin-import: 2.26.0_eslint@8.26.0
|
||||
glob: 7.2.3
|
||||
is-glob: 4.0.3
|
||||
resolve: 1.22.1
|
||||
@@ -2670,7 +2686,7 @@ packages:
|
||||
- supports-color
|
||||
dev: false
|
||||
|
||||
/eslint-module-utils/2.7.4_ez3mxn7ua4ucl4vd2ydr6jerei:
|
||||
/eslint-module-utils/2.7.4_hlaciezb73cmunfvgdjxsiv7zy:
|
||||
resolution: {integrity: sha512-j4GT+rqzCoRKHwURX7pddtIPGySnX9Si/cgMI5ztrcqOPtk5dDEeZ34CQVPphnqkJytlc97Vuk05Um2mJ3gEQA==}
|
||||
engines: {node: '>=4'}
|
||||
peerDependencies:
|
||||
@@ -2692,13 +2708,13 @@ packages:
|
||||
optional: true
|
||||
dependencies:
|
||||
debug: 3.2.7
|
||||
eslint: 8.25.0
|
||||
eslint: 8.26.0
|
||||
eslint-import-resolver-node: 0.3.6
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
dev: false
|
||||
|
||||
/eslint-plugin-import/2.26.0_eslint@8.25.0:
|
||||
/eslint-plugin-import/2.26.0_eslint@8.26.0:
|
||||
resolution: {integrity: sha512-hYfi3FXaM8WPLf4S1cikh/r4IxnO6zrhZbEGz2b660EJRbuxgpDS5gkCuYgGWg2xxh2rBuIr4Pvhve/7c31koA==}
|
||||
engines: {node: '>=4'}
|
||||
peerDependencies:
|
||||
@@ -2712,9 +2728,9 @@ packages:
|
||||
array.prototype.flat: 1.3.0
|
||||
debug: 2.6.9
|
||||
doctrine: 2.1.0
|
||||
eslint: 8.25.0
|
||||
eslint: 8.26.0
|
||||
eslint-import-resolver-node: 0.3.6
|
||||
eslint-module-utils: 2.7.4_ez3mxn7ua4ucl4vd2ydr6jerei
|
||||
eslint-module-utils: 2.7.4_hlaciezb73cmunfvgdjxsiv7zy
|
||||
has: 1.0.3
|
||||
is-core-module: 2.10.0
|
||||
is-glob: 4.0.3
|
||||
@@ -2728,7 +2744,7 @@ packages:
|
||||
- supports-color
|
||||
dev: false
|
||||
|
||||
/eslint-plugin-jsx-a11y/6.6.1_eslint@8.25.0:
|
||||
/eslint-plugin-jsx-a11y/6.6.1_eslint@8.26.0:
|
||||
resolution: {integrity: sha512-sXgFVNHiWffBq23uiS/JaP6eVR622DqwB4yTzKvGZGcPq6/yZ3WmOZfuBks/vHWo9GaFOqC2ZK4i6+C35knx7Q==}
|
||||
engines: {node: '>=4.0'}
|
||||
peerDependencies:
|
||||
@@ -2742,7 +2758,7 @@ packages:
|
||||
axobject-query: 2.2.0
|
||||
damerau-levenshtein: 1.0.8
|
||||
emoji-regex: 9.2.2
|
||||
eslint: 8.25.0
|
||||
eslint: 8.26.0
|
||||
has: 1.0.3
|
||||
jsx-ast-utils: 3.3.3
|
||||
language-tags: 1.0.5
|
||||
@@ -2750,17 +2766,17 @@ packages:
|
||||
semver: 6.3.0
|
||||
dev: false
|
||||
|
||||
/eslint-plugin-react-hooks/4.6.0_eslint@8.25.0:
|
||||
/eslint-plugin-react-hooks/4.6.0_eslint@8.26.0:
|
||||
resolution: {integrity: sha512-oFc7Itz9Qxh2x4gNHStv3BqJq54ExXmfC+a1NjAta66IAN87Wu0R/QArgIS9qKzX3dXKPI9H5crl9QchNMY9+g==}
|
||||
engines: {node: '>=10'}
|
||||
peerDependencies:
|
||||
eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0
|
||||
dependencies:
|
||||
eslint: 8.25.0
|
||||
eslint: 8.26.0
|
||||
dev: false
|
||||
|
||||
/eslint-plugin-react/7.31.9_eslint@8.25.0:
|
||||
resolution: {integrity: sha512-vrVJwusIw4L99lyfXjtCw8HWdloajsiYslMavogrBe2Gl8gr95TJsJnOMRasN4b4N24I3XuJf6aAV6MhyGmjqw==}
|
||||
/eslint-plugin-react/7.31.10_eslint@8.26.0:
|
||||
resolution: {integrity: sha512-e4N/nc6AAlg4UKW/mXeYWd3R++qUano5/o+t+wnWxIf+bLsOaH3a4q74kX3nDjYym3VBN4HyO9nEn1GcAqgQOA==}
|
||||
engines: {node: '>=4'}
|
||||
peerDependencies:
|
||||
eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8
|
||||
@@ -2768,7 +2784,7 @@ packages:
|
||||
array-includes: 3.1.5
|
||||
array.prototype.flatmap: 1.3.0
|
||||
doctrine: 2.1.0
|
||||
eslint: 8.25.0
|
||||
eslint: 8.26.0
|
||||
estraverse: 5.3.0
|
||||
jsx-ast-utils: 3.3.3
|
||||
minimatch: 3.1.2
|
||||
@@ -2782,12 +2798,12 @@ packages:
|
||||
string.prototype.matchall: 4.0.7
|
||||
dev: false
|
||||
|
||||
/eslint-plugin-turbo/0.0.4_eslint@8.25.0:
|
||||
/eslint-plugin-turbo/0.0.4_eslint@8.26.0:
|
||||
resolution: {integrity: sha512-dfmYE/iPvoJInQq+5E/0mj140y/rYwKtzZkn3uVK8+nvwC5zmWKQ6ehMWrL4bYBkGzSgpOndZM+jOXhPQ2m8Cg==}
|
||||
peerDependencies:
|
||||
eslint: ^7.23.0 || ^8.0.0
|
||||
dependencies:
|
||||
eslint: 8.25.0
|
||||
eslint: 8.26.0
|
||||
dev: false
|
||||
|
||||
/eslint-scope/5.1.1:
|
||||
@@ -2820,6 +2836,17 @@ packages:
|
||||
dependencies:
|
||||
eslint: 8.25.0
|
||||
eslint-visitor-keys: 2.1.0
|
||||
dev: true
|
||||
|
||||
/eslint-utils/3.0.0_eslint@8.26.0:
|
||||
resolution: {integrity: sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==}
|
||||
engines: {node: ^10.0.0 || ^12.0.0 || >= 14.0.0}
|
||||
peerDependencies:
|
||||
eslint: '>=5'
|
||||
dependencies:
|
||||
eslint: 8.26.0
|
||||
eslint-visitor-keys: 2.1.0
|
||||
dev: false
|
||||
|
||||
/eslint-visitor-keys/1.3.0:
|
||||
resolution: {integrity: sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==}
|
||||
@@ -2928,6 +2955,55 @@ packages:
|
||||
text-table: 0.2.0
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
dev: true
|
||||
|
||||
/eslint/8.26.0:
|
||||
resolution: {integrity: sha512-kzJkpaw1Bfwheq4VXUezFriD1GxszX6dUekM7Z3aC2o4hju+tsR/XyTC3RcoSD7jmy9VkPU3+N6YjVU2e96Oyg==}
|
||||
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
|
||||
hasBin: true
|
||||
dependencies:
|
||||
'@eslint/eslintrc': 1.3.3
|
||||
'@humanwhocodes/config-array': 0.11.6
|
||||
'@humanwhocodes/module-importer': 1.0.1
|
||||
'@nodelib/fs.walk': 1.2.8
|
||||
ajv: 6.12.6
|
||||
chalk: 4.1.2
|
||||
cross-spawn: 7.0.3
|
||||
debug: 4.3.4
|
||||
doctrine: 3.0.0
|
||||
escape-string-regexp: 4.0.0
|
||||
eslint-scope: 7.1.1
|
||||
eslint-utils: 3.0.0_eslint@8.26.0
|
||||
eslint-visitor-keys: 3.3.0
|
||||
espree: 9.4.0
|
||||
esquery: 1.4.0
|
||||
esutils: 2.0.3
|
||||
fast-deep-equal: 3.1.3
|
||||
file-entry-cache: 6.0.1
|
||||
find-up: 5.0.0
|
||||
glob-parent: 6.0.2
|
||||
globals: 13.17.0
|
||||
grapheme-splitter: 1.0.4
|
||||
ignore: 5.2.0
|
||||
import-fresh: 3.3.0
|
||||
imurmurhash: 0.1.4
|
||||
is-glob: 4.0.3
|
||||
is-path-inside: 3.0.3
|
||||
js-sdsl: 4.1.5
|
||||
js-yaml: 4.1.0
|
||||
json-stable-stringify-without-jsonify: 1.0.1
|
||||
levn: 0.4.1
|
||||
lodash.merge: 4.6.2
|
||||
minimatch: 3.1.2
|
||||
natural-compare: 1.4.0
|
||||
optionator: 0.9.1
|
||||
regexpp: 3.2.0
|
||||
strip-ansi: 6.0.1
|
||||
strip-json-comments: 3.1.1
|
||||
text-table: 0.2.0
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
dev: false
|
||||
|
||||
/espree/7.3.1:
|
||||
resolution: {integrity: sha512-v3JCNCE64umkFpmkFGqzVKsOT0tN1Zr+ueqLZfpV1Ob8e+CEgPWa+OxCoGH3tnhimMKIaBm4m/vaRpJ/krRz2g==}
|
||||
@@ -3466,6 +3542,11 @@ packages:
|
||||
resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==}
|
||||
engines: {node: '>=0.12.0'}
|
||||
|
||||
/is-path-inside/3.0.3:
|
||||
resolution: {integrity: sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==}
|
||||
engines: {node: '>=8'}
|
||||
dev: false
|
||||
|
||||
/is-plain-obj/1.1.0:
|
||||
resolution: {integrity: sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg==}
|
||||
engines: {node: '>=0.10.0'}
|
||||
@@ -3963,7 +4044,7 @@ packages:
|
||||
resolution: {integrity: sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==}
|
||||
dev: true
|
||||
|
||||
/next-auth/4.14.0_pvhs6umhoiyo7cgwjp6cvqsra4:
|
||||
/next-auth/4.14.0_lpfza7lqpqeylqwoqom67hspdi:
|
||||
resolution: {integrity: sha512-pD5sin6kq/uIx3Cod2/0JFnViEnngBTTNy4CdfRaYc2QzV2zwpWAbQny2Ezlg0GjEozDhKC53JJxRRE4AmNKEw==}
|
||||
engines: {node: ^12.19.0 || ^14.15.0 || ^16.13.0}
|
||||
peerDependencies:
|
||||
@@ -3979,7 +4060,7 @@ packages:
|
||||
'@panva/hkdf': 1.0.2
|
||||
cookie: 0.5.0
|
||||
jose: 4.10.0
|
||||
next: 12.3.1_biqbaboplfbrettd7655fr4n2y
|
||||
next: 13.0.0_biqbaboplfbrettd7655fr4n2y
|
||||
nodemailer: 6.8.0
|
||||
oauth: 0.9.15
|
||||
openid-client: 5.1.10
|
||||
@@ -3990,15 +4071,15 @@ packages:
|
||||
uuid: 8.3.2
|
||||
dev: false
|
||||
|
||||
/next/12.3.1_biqbaboplfbrettd7655fr4n2y:
|
||||
resolution: {integrity: sha512-l7bvmSeIwX5lp07WtIiP9u2ytZMv7jIeB8iacR28PuUEFG5j0HGAPnMqyG5kbZNBG2H7tRsrQ4HCjuMOPnANZw==}
|
||||
engines: {node: '>=12.22.0'}
|
||||
/next/13.0.0_biqbaboplfbrettd7655fr4n2y:
|
||||
resolution: {integrity: sha512-puH1WGM6rGeFOoFdXXYfUxN9Sgi4LMytCV5HkQJvVUOhHfC1DoVqOfvzaEteyp6P04IW+gbtK2Q9pInVSrltPA==}
|
||||
engines: {node: '>=14.6.0'}
|
||||
hasBin: true
|
||||
peerDependencies:
|
||||
fibers: '>= 3.1.0'
|
||||
node-sass: ^6.0.0 || ^7.0.0
|
||||
react: ^17.0.2 || ^18.0.0-0
|
||||
react-dom: ^17.0.2 || ^18.0.0-0
|
||||
react: ^18.0.0-0
|
||||
react-dom: ^18.0.0-0
|
||||
sass: ^1.3.0
|
||||
peerDependenciesMeta:
|
||||
fibers:
|
||||
@@ -4008,40 +4089,40 @@ packages:
|
||||
sass:
|
||||
optional: true
|
||||
dependencies:
|
||||
'@next/env': 12.3.1
|
||||
'@next/env': 13.0.0
|
||||
'@swc/helpers': 0.4.11
|
||||
caniuse-lite: 1.0.30001418
|
||||
postcss: 8.4.14
|
||||
react: 18.2.0
|
||||
react-dom: 18.2.0_react@18.2.0
|
||||
styled-jsx: 5.0.7_react@18.2.0
|
||||
styled-jsx: 5.1.0_react@18.2.0
|
||||
use-sync-external-store: 1.2.0_react@18.2.0
|
||||
optionalDependencies:
|
||||
'@next/swc-android-arm-eabi': 12.3.1
|
||||
'@next/swc-android-arm64': 12.3.1
|
||||
'@next/swc-darwin-arm64': 12.3.1
|
||||
'@next/swc-darwin-x64': 12.3.1
|
||||
'@next/swc-freebsd-x64': 12.3.1
|
||||
'@next/swc-linux-arm-gnueabihf': 12.3.1
|
||||
'@next/swc-linux-arm64-gnu': 12.3.1
|
||||
'@next/swc-linux-arm64-musl': 12.3.1
|
||||
'@next/swc-linux-x64-gnu': 12.3.1
|
||||
'@next/swc-linux-x64-musl': 12.3.1
|
||||
'@next/swc-win32-arm64-msvc': 12.3.1
|
||||
'@next/swc-win32-ia32-msvc': 12.3.1
|
||||
'@next/swc-win32-x64-msvc': 12.3.1
|
||||
'@next/swc-android-arm-eabi': 13.0.0
|
||||
'@next/swc-android-arm64': 13.0.0
|
||||
'@next/swc-darwin-arm64': 13.0.0
|
||||
'@next/swc-darwin-x64': 13.0.0
|
||||
'@next/swc-freebsd-x64': 13.0.0
|
||||
'@next/swc-linux-arm-gnueabihf': 13.0.0
|
||||
'@next/swc-linux-arm64-gnu': 13.0.0
|
||||
'@next/swc-linux-arm64-musl': 13.0.0
|
||||
'@next/swc-linux-x64-gnu': 13.0.0
|
||||
'@next/swc-linux-x64-musl': 13.0.0
|
||||
'@next/swc-win32-arm64-msvc': 13.0.0
|
||||
'@next/swc-win32-ia32-msvc': 13.0.0
|
||||
'@next/swc-win32-x64-msvc': 13.0.0
|
||||
transitivePeerDependencies:
|
||||
- '@babel/core'
|
||||
- babel-plugin-macros
|
||||
dev: false
|
||||
|
||||
/nextjs-cors/2.1.1_next@12.3.1:
|
||||
/nextjs-cors/2.1.1_next@13.0.0:
|
||||
resolution: {integrity: sha512-HxE4w4Wng5VdTtnn0DWPphuWKwd1Ty+lpyTZ/sQGgaNnd5demYMchKf+W1LtI8YFYxu2HnRb3MrxERRV0QKLKA==}
|
||||
peerDependencies:
|
||||
next: ^8.1.1-canary.54 || ^9.0.0 || ^10.0.0-0 || ^11.0.0 || ^12.0.0
|
||||
dependencies:
|
||||
cors: 2.8.5
|
||||
next: 12.3.1_biqbaboplfbrettd7655fr4n2y
|
||||
next: 13.0.0_biqbaboplfbrettd7655fr4n2y
|
||||
dev: false
|
||||
|
||||
/node-abi/3.26.0:
|
||||
@@ -5130,8 +5211,8 @@ packages:
|
||||
supports-color: 5.5.0
|
||||
dev: false
|
||||
|
||||
/styled-jsx/5.0.7_react@18.2.0:
|
||||
resolution: {integrity: sha512-b3sUzamS086YLRuvnaDigdAewz1/EFYlHpYBP5mZovKEdQQOIIYq8lApylub3HHZ6xFjV051kkGU7cudJmrXEA==}
|
||||
/styled-jsx/5.1.0_react@18.2.0:
|
||||
resolution: {integrity: sha512-/iHaRJt9U7T+5tp6TRelLnqBqiaIT0HsO0+vgyj8hK2KUk7aejFqRrumqPUlAqDwAj8IbS/1hk3IhBAAK/FCUQ==}
|
||||
engines: {node: '>= 12.0.0'}
|
||||
peerDependencies:
|
||||
'@babel/core': '*'
|
||||
@@ -5143,6 +5224,7 @@ packages:
|
||||
babel-plugin-macros:
|
||||
optional: true
|
||||
dependencies:
|
||||
client-only: 0.0.1
|
||||
react: 18.2.0
|
||||
dev: false
|
||||
|
||||
@@ -5561,65 +5643,65 @@ packages:
|
||||
safe-buffer: 5.2.1
|
||||
dev: false
|
||||
|
||||
/turbo-darwin-64/1.5.6:
|
||||
resolution: {integrity: sha512-CWdXMwenBS2+QXIR2Czx7JPnAcoMzWx/QwTDcHVxZyeayMHgz8Oq5AHCtfaHDSfV8YhD3xa0GLSk6+cFt+W8BQ==}
|
||||
/turbo-darwin-64/1.6.1:
|
||||
resolution: {integrity: sha512-xsItJ/hmnd6R8V60cCe0RAZQjO+En/LVXVkZhiw0Fyfxoo+iKcAA4sVeWkaL+cg5sQd5UWlWfD1EOKbHDjVb9Q==}
|
||||
cpu: [x64]
|
||||
os: [darwin]
|
||||
requiresBuild: true
|
||||
dev: true
|
||||
optional: true
|
||||
|
||||
/turbo-darwin-arm64/1.5.6:
|
||||
resolution: {integrity: sha512-c/aXgW9JuXT2bJSKf01pdSDQKnrdcdj3WFKmKiVldb9We6eqFzI0fLHBK97k5LM/OesmRMfCMQ2Cv2DU8RqBAA==}
|
||||
/turbo-darwin-arm64/1.6.1:
|
||||
resolution: {integrity: sha512-wRfAJWCLYB29IGTx6sF6QvexK/89AbAgnfYA5yVcuUJT+xz2/zLeGcOODQBCnP4rB+vX5ipXLY0XjkLGl+z6fA==}
|
||||
cpu: [arm64]
|
||||
os: [darwin]
|
||||
requiresBuild: true
|
||||
dev: true
|
||||
optional: true
|
||||
|
||||
/turbo-linux-64/1.5.6:
|
||||
resolution: {integrity: sha512-y/jNF7SG+XJEwk2GxIqy3g4dj/a0PgZKDGyOkp24qp4KBRcHBl6dI1ZEfNed30EhEqmW4F5Dr7IpeCZoqgbrMg==}
|
||||
/turbo-linux-64/1.6.1:
|
||||
resolution: {integrity: sha512-NZ88muC3hHbWW/cBgl9DFFbyzDcFVvZHQBXKTwVA8l2yLOOvesX+aQ2Knr4Pxu9Kb0F3t6ABsOSf8SbI7CpJsg==}
|
||||
cpu: [x64]
|
||||
os: [linux]
|
||||
requiresBuild: true
|
||||
dev: true
|
||||
optional: true
|
||||
|
||||
/turbo-linux-arm64/1.5.6:
|
||||
resolution: {integrity: sha512-FRcxPtW7eFrbR3QaYBVX8cK7i+2Cerqi6F0t5ulcq+d1OGSdSW3l35rPPyJdwCzCy+k/S9sBcyCV0RtbS6RKCQ==}
|
||||
/turbo-linux-arm64/1.6.1:
|
||||
resolution: {integrity: sha512-HDgx+0ozqMpoDBOSzWz43nYMDp/+giEz8+vmLOB6mTQU/9IlZQVwachzwkqLRsJyBUhYALBlWGcuRWO3KqXMmg==}
|
||||
cpu: [arm64]
|
||||
os: [linux]
|
||||
requiresBuild: true
|
||||
dev: true
|
||||
optional: true
|
||||
|
||||
/turbo-windows-64/1.5.6:
|
||||
resolution: {integrity: sha512-/5KIExY7zbrbeL5fhKGuO85u5VtJ3Ue4kI0MbYCNnTGe7a10yTYkwswgtGihsgEF4AW0Nm0159aHmXZS2Le8IA==}
|
||||
/turbo-windows-64/1.6.1:
|
||||
resolution: {integrity: sha512-jnR0V0YBlFJKEoAeq0GQFLmZ1UNl6vh+RHTHX546+o5jKcE6nfp9oTOEwtR0PLutiuxxDDm6roAc+9mSfycffw==}
|
||||
cpu: [x64]
|
||||
os: [win32]
|
||||
requiresBuild: true
|
||||
dev: true
|
||||
optional: true
|
||||
|
||||
/turbo-windows-arm64/1.5.6:
|
||||
resolution: {integrity: sha512-p+LQN9O39+rZuOAyc6BzyVGvdEKo+v+XmtdeyZsZpfj4xuOLtsEptW1w6cUD439u0YcPknuccGq1MQ0lXQ6Xuw==}
|
||||
/turbo-windows-arm64/1.6.1:
|
||||
resolution: {integrity: sha512-vOqw/iPgLjkwpni2vNFK9YO19lN9QZ8JG8v1unvL09/rnXyKpHygrYECj+efJptEVJKBG2xLIauJYmZ/2LV1Uw==}
|
||||
cpu: [arm64]
|
||||
os: [win32]
|
||||
requiresBuild: true
|
||||
dev: true
|
||||
optional: true
|
||||
|
||||
/turbo/1.5.6:
|
||||
resolution: {integrity: sha512-xJO/fhiMo4lI62iGR9OgUfJTC9tnnuoMwNC52IfvvBDEPlA8RWGMS8SFpDVG9bNCXvVRrtUTNJXMe6pJWBiOTA==}
|
||||
/turbo/1.6.1:
|
||||
resolution: {integrity: sha512-CkcJo17cbwfTzmxtxJo2AbbeVqaz1yQotBUqVwZDdcrVSNKci2nvw+JHJ3sy/z9YY9xOJmoRaZifbkja3UXUWA==}
|
||||
hasBin: true
|
||||
requiresBuild: true
|
||||
optionalDependencies:
|
||||
turbo-darwin-64: 1.5.6
|
||||
turbo-darwin-arm64: 1.5.6
|
||||
turbo-linux-64: 1.5.6
|
||||
turbo-linux-arm64: 1.5.6
|
||||
turbo-windows-64: 1.5.6
|
||||
turbo-windows-arm64: 1.5.6
|
||||
turbo-darwin-64: 1.6.1
|
||||
turbo-darwin-arm64: 1.6.1
|
||||
turbo-linux-64: 1.6.1
|
||||
turbo-linux-arm64: 1.6.1
|
||||
turbo-windows-64: 1.6.1
|
||||
turbo-windows-arm64: 1.6.1
|
||||
dev: true
|
||||
|
||||
/type-check/0.4.0:
|
||||
|
||||
Reference in New Issue
Block a user