Merge pull request #51 from useplunk/dev-driaug-campaign-speed-improvements
Virtualisation of contact selector & improved decoupling of contacts
This commit is contained in:
+1
-1
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "plunk",
|
||||
"version": "1.0.0",
|
||||
"version": "1.0.1",
|
||||
"private": true,
|
||||
"license": "agpl-3.0",
|
||||
"workspaces": {
|
||||
|
||||
@@ -299,6 +299,13 @@ export class Campaigns {
|
||||
});
|
||||
|
||||
const chunkSize = 500;
|
||||
|
||||
for (let i = 0; i < campaign.recipients.length; i += chunkSize) {
|
||||
const chunk = campaign.recipients.slice(i, i + chunkSize);
|
||||
|
||||
await prisma.$executeRaw`DELETE FROM "_CampaignToContact" WHERE "A" = ${campaign.id} AND "B" = ANY(${chunk.map((c) => c.id)})`;
|
||||
}
|
||||
|
||||
for (let i = 0; i < recipients.length; i += chunkSize) {
|
||||
const chunk = recipients.slice(i, i + chunkSize);
|
||||
|
||||
|
||||
@@ -47,6 +47,7 @@
|
||||
"react-dom": "18.3.1",
|
||||
"react-hook-form": "^7.52.1",
|
||||
"react-syntax-highlighter": "^15.5.0",
|
||||
"react-window": "^1.8.10",
|
||||
"recharts": "^2.12.7",
|
||||
"sharp": "^0.33.4",
|
||||
"sonner": "^1.5.0",
|
||||
@@ -62,6 +63,7 @@
|
||||
"@types/nprogress": "^0.2.3",
|
||||
"@types/react": "18.3.3",
|
||||
"@types/react-syntax-highlighter": "^15.5.13",
|
||||
"@types/react-window": "^1",
|
||||
"autoprefixer": "^10.4.19",
|
||||
"postcss": "^8.4.39",
|
||||
"tailwindcss": "^3.4.6",
|
||||
|
||||
+155
-164
@@ -1,181 +1,172 @@
|
||||
import React, {MutableRefObject, useEffect, useState} from 'react';
|
||||
import {AnimatePresence, motion} from 'framer-motion';
|
||||
import { AnimatePresence, motion } from "framer-motion";
|
||||
import React, { type MutableRefObject, useEffect, useState } from "react";
|
||||
import { FixedSizeList as List } from "react-window";
|
||||
|
||||
export interface MultiselectDropdownProps {
|
||||
onChange: (value: string[]) => void;
|
||||
values: readonly {
|
||||
name: string;
|
||||
value: string;
|
||||
tag?: string;
|
||||
}[];
|
||||
selectedValues?: readonly string[];
|
||||
disabled?: boolean;
|
||||
className?: string;
|
||||
onChange: (value: string[]) => void;
|
||||
values: readonly {
|
||||
name: string;
|
||||
value: string;
|
||||
tag?: string;
|
||||
}[];
|
||||
selectedValues?: readonly string[];
|
||||
disabled?: boolean;
|
||||
className?: string;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param root0
|
||||
* @param root0.onChange
|
||||
* @param root0.values
|
||||
* @param root0.selectedValues
|
||||
* @param root0.className
|
||||
* @param root0.disabled
|
||||
*/
|
||||
export default function MultiselectDropdown({
|
||||
onChange,
|
||||
values,
|
||||
selectedValues: PropsselectedValues,
|
||||
className,
|
||||
disabled = false,
|
||||
onChange,
|
||||
values,
|
||||
selectedValues: PropsselectedValues,
|
||||
className,
|
||||
disabled = false,
|
||||
}: MultiselectDropdownProps) {
|
||||
const [open, setOpen] = useState(false);
|
||||
const [query, setQuery] = useState('');
|
||||
const [selectedValues, setSelectedValues] = useState<readonly string[]>([]);
|
||||
const [open, setOpen] = useState(false);
|
||||
const [query, setQuery] = useState("");
|
||||
const [selectedValues, setSelectedValues] = useState<readonly string[]>([]);
|
||||
|
||||
const ref = React.createRef<HTMLDivElement>();
|
||||
const ref = React.createRef<HTMLDivElement>();
|
||||
|
||||
useEffect(() => {
|
||||
if (PropsselectedValues) {
|
||||
setSelectedValues(PropsselectedValues);
|
||||
}
|
||||
}, [PropsselectedValues]);
|
||||
useEffect(() => {
|
||||
if (PropsselectedValues) {
|
||||
setSelectedValues(PropsselectedValues);
|
||||
}
|
||||
}, [PropsselectedValues]);
|
||||
|
||||
useEffect(() => {
|
||||
const mutableRef = ref as MutableRefObject<HTMLDivElement | null>;
|
||||
useEffect(() => {
|
||||
const mutableRef = ref as MutableRefObject<HTMLDivElement | null>;
|
||||
|
||||
const handleClickOutside = (event: any) => {
|
||||
// eslint-disable-next-line @typescript-eslint/no-unsafe-argument
|
||||
if (mutableRef.current && !mutableRef.current.contains(event.target) && open) {
|
||||
setOpen(!open);
|
||||
}
|
||||
};
|
||||
const handleClickOutside = (event: MouseEvent) => {
|
||||
if (mutableRef.current && !mutableRef.current.contains(event.target as Node) && open) {
|
||||
setOpen(!open);
|
||||
}
|
||||
};
|
||||
|
||||
document.addEventListener('mousedown', handleClickOutside);
|
||||
return () => {
|
||||
document.removeEventListener('mousedown', handleClickOutside);
|
||||
};
|
||||
}, [ref]);
|
||||
document.addEventListener("mousedown", handleClickOutside);
|
||||
return () => {
|
||||
document.removeEventListener("mousedown", handleClickOutside);
|
||||
};
|
||||
}, [ref, open]);
|
||||
|
||||
return (
|
||||
<>
|
||||
<div ref={ref} className={className ?? ''}>
|
||||
<div className="relative mt-1">
|
||||
<button
|
||||
type="button"
|
||||
className={`${
|
||||
disabled ? 'cursor-default bg-neutral-100' : 'cursor-pointer bg-white'
|
||||
} relative w-full rounded border border-neutral-300 py-2 pl-3 pr-10 text-left sm:text-sm`}
|
||||
aria-haspopup="listbox"
|
||||
aria-expanded="true"
|
||||
aria-labelledby="listbox-label"
|
||||
onClick={() => {
|
||||
if (!disabled) {
|
||||
setOpen(!open);
|
||||
}
|
||||
}}
|
||||
>
|
||||
<span className="block truncate">{selectedValues.length} selected</span>
|
||||
<span className="pointer-events-none absolute inset-y-0 right-0 flex items-center pr-2">
|
||||
<motion.svg
|
||||
initial={{rotate: '90deg'}}
|
||||
animate={open ? {rotate: '0deg'} : {rotate: '90deg'}}
|
||||
className="h-5 w-5 text-neutral-400"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
viewBox="0 0 20 20"
|
||||
fill="currentColor"
|
||||
aria-hidden="true"
|
||||
>
|
||||
<path
|
||||
fillRule="evenodd"
|
||||
d="M10 3a1 1 0 01.707.293l3 3a1 1 0 01-1.414 1.414L10 5.414 7.707 7.707a1 1 0 01-1.414-1.414l3-3A1 1 0 0110 3zm-3.707 9.293a1 1 0 011.414 0L10 14.586l2.293-2.293a1 1 0 011.414 1.414l-3 3a1 1 0 01-1.414 0l-3-3a1 1 0 010-1.414z"
|
||||
clipRule="evenodd"
|
||||
/>
|
||||
</motion.svg>
|
||||
</span>
|
||||
</button>
|
||||
const Row = ({ index, style }: { index: number; style: React.CSSProperties }) => {
|
||||
const value = filteredValues[index];
|
||||
return (
|
||||
<li
|
||||
style={style}
|
||||
key={`multiselect-${index}`}
|
||||
className="relative flex cursor-default select-none items-center rounded-md py-2.5 pl-2.5 text-neutral-800 transition ease-in-out hover:bg-neutral-100"
|
||||
onClick={() => {
|
||||
const isAlreadySelected = selectedValues.find((selection) => value.value === selection);
|
||||
|
||||
<AnimatePresence>
|
||||
{open && (
|
||||
<motion.ul
|
||||
initial={{opacity: 0, height: 0}}
|
||||
animate={{opacity: 1, height: 'auto'}}
|
||||
exit={{opacity: 0, height: 0}}
|
||||
transition={{duration: 0.2, ease: 'easeInOut'}}
|
||||
className="scrollbar-w-2 scrollbar scrollbar-thumb-rounded-full scrollbar-thumb-neutral-400 scrollbar-track-neutral-100 absolute z-40 mt-1 max-h-72 w-full overflow-y-scroll rounded-md border border-black border-opacity-5 bg-white p-1 pr-1 text-base shadow focus:outline-none sm:text-sm"
|
||||
tabIndex={-1}
|
||||
role="listbox"
|
||||
>
|
||||
<li className="relative cursor-default select-none px-3 py-2 text-neutral-800">
|
||||
<input
|
||||
type="search"
|
||||
name="search"
|
||||
autoComplete={'off'}
|
||||
className="block w-full rounded border-neutral-300 focus:border-black focus:ring-black sm:text-sm"
|
||||
placeholder={'Search'}
|
||||
onChange={e => setQuery(e.target.value)}
|
||||
/>
|
||||
</li>
|
||||
const updatedArray = isAlreadySelected
|
||||
? selectedValues.filter((selection) => selection !== value.value)
|
||||
: [...selectedValues, value.value];
|
||||
|
||||
{values.filter(value => value.name.toLowerCase().includes(query.toLowerCase())).length === 0 ? (
|
||||
<li className="relative cursor-default select-none py-2 pl-3 pr-9 text-neutral-800">
|
||||
No results found
|
||||
</li>
|
||||
) : (
|
||||
values
|
||||
.filter(value => value.name.toLowerCase().includes(query.toLowerCase()))
|
||||
.map((value, index) => {
|
||||
return (
|
||||
<li
|
||||
key={`multiselect-${index}`}
|
||||
className="relative flex cursor-default select-none items-center rounded-md py-2.5 pl-2.5 text-neutral-800 transition ease-in-out hover:bg-neutral-100"
|
||||
role="option"
|
||||
onClick={() => {
|
||||
const isAlreadySelected = selectedValues.find(selection => value.value === selection);
|
||||
onChange(updatedArray);
|
||||
setSelectedValues(updatedArray);
|
||||
}}
|
||||
>
|
||||
{value.tag && (
|
||||
<span className={"mr-3 whitespace-nowrap rounded bg-blue-100 px-3 py-0.5 text-xs text-blue-900"}>{value.tag}</span>
|
||||
)}
|
||||
<span className="truncate font-normal">
|
||||
{value.name.charAt(0).toUpperCase() + value.name.slice(1).toLowerCase()}
|
||||
</span>
|
||||
{value.value === selectedValues.find((selection) => value.value === selection) ? (
|
||||
<span className="absolute inset-y-0 right-0 flex items-center pr-3 text-black">
|
||||
<svg
|
||||
className="h-5 w-5"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
viewBox="0 0 20 20"
|
||||
fill="currentColor"
|
||||
aria-hidden="true"
|
||||
>
|
||||
<path
|
||||
fillRule="evenodd"
|
||||
d="M16.707 5.293a1 1 0 010 1.414l-8 8a1 1 0 01-1.414 0l-4-4a1 1 0 011.414-1.414L8 12.586l7.293-7.293a1 1 0 011.414 0z"
|
||||
clipRule="evenodd"
|
||||
/>
|
||||
</svg>
|
||||
</span>
|
||||
) : null}
|
||||
</li>
|
||||
);
|
||||
};
|
||||
|
||||
const updatedArray = isAlreadySelected
|
||||
? selectedValues.filter(selection => selection !== value.value)
|
||||
: [...selectedValues, value.value];
|
||||
const filteredValues = values.filter((value) => value.name.toLowerCase().includes(query.toLowerCase()));
|
||||
|
||||
onChange(updatedArray);
|
||||
setSelectedValues(updatedArray);
|
||||
}}
|
||||
>
|
||||
{value.tag && (
|
||||
<span
|
||||
className={'mr-3 whitespace-nowrap rounded bg-blue-100 px-3 py-0.5 text-xs text-blue-900'}
|
||||
>
|
||||
{value.tag}
|
||||
</span>
|
||||
)}
|
||||
<span className="truncate font-normal">
|
||||
{value.name.charAt(0).toUpperCase() + value.name.slice(1).toLowerCase()}
|
||||
</span>
|
||||
{value.value === selectedValues.find(selection => value.value === selection) ? (
|
||||
<span className="absolute inset-y-0 right-0 flex items-center pr-3 text-black">
|
||||
<svg
|
||||
className="h-5 w-5"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
viewBox="0 0 20 20"
|
||||
fill="currentColor"
|
||||
aria-hidden="true"
|
||||
>
|
||||
<path
|
||||
fillRule="evenodd"
|
||||
d="M16.707 5.293a1 1 0 010 1.414l-8 8a1 1 0 01-1.414 0l-4-4a1 1 0 011.414-1.414L8 12.586l7.293-7.293a1 1 0 011.414 0z"
|
||||
clipRule="evenodd"
|
||||
/>
|
||||
</svg>
|
||||
</span>
|
||||
) : null}
|
||||
</li>
|
||||
);
|
||||
})
|
||||
)}
|
||||
</motion.ul>
|
||||
)}
|
||||
</AnimatePresence>
|
||||
</div>
|
||||
</div>
|
||||
</>
|
||||
);
|
||||
return (
|
||||
<>
|
||||
<div ref={ref} className={className ?? ""}>
|
||||
<div className="relative mt-1">
|
||||
<button
|
||||
type="button"
|
||||
className={`${
|
||||
disabled ? "cursor-default bg-neutral-100" : "cursor-pointer bg-white"
|
||||
} relative w-full rounded border border-neutral-300 py-2 pl-3 pr-10 text-left sm:text-sm`}
|
||||
aria-haspopup="listbox"
|
||||
aria-expanded="true"
|
||||
aria-labelledby="listbox-label"
|
||||
onClick={() => {
|
||||
if (!disabled) {
|
||||
setOpen(!open);
|
||||
}
|
||||
}}
|
||||
>
|
||||
<span className="block truncate">{selectedValues.length} selected</span>
|
||||
<span className="pointer-events-none absolute inset-y-0 right-0 flex items-center pr-2">
|
||||
<motion.svg
|
||||
initial={{ rotate: "90deg" }}
|
||||
animate={open ? { rotate: "0deg" } : { rotate: "90deg" }}
|
||||
className="h-5 w-5 text-neutral-400"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
viewBox="0 0 20 20"
|
||||
fill="currentColor"
|
||||
aria-hidden="true"
|
||||
>
|
||||
<path
|
||||
fillRule="evenodd"
|
||||
d="M10 3a1 1 0 01.707.293l3 3a1 1 0 01-1.414 1.414L10 5.414 7.707 7.707a1 1 0 01-1.414-1.414l3-3A1 1 0 0110 3zm-3.707 9.293a1 1 0 011.414 0L10 14.586l2.293-2.293a1 1 0 011.414 1.414l-3 3a1 1 0 01-1.414 0l-3-3a1 1 0 010-1.414z"
|
||||
clipRule="evenodd"
|
||||
/>
|
||||
</motion.svg>
|
||||
</span>
|
||||
</button>
|
||||
|
||||
<AnimatePresence>
|
||||
{open && (
|
||||
<motion.div
|
||||
initial={{ opacity: 0, height: 0 }}
|
||||
animate={{ opacity: 1, height: "auto" }}
|
||||
exit={{ opacity: 0, height: 0 }}
|
||||
transition={{ duration: 0.2, ease: "easeInOut" }}
|
||||
className="scrollbar-w-2 scrollbar scrollbar-thumb-rounded-full scrollbar-thumb-neutral-400 scrollbar-track-neutral-100 absolute z-40 mt-1 max-h-72 w-full list-none space-y-3 overflow-y-scroll rounded-md border border-black border-opacity-5 bg-white p-1 pr-1 text-base shadow focus:outline-none sm:text-sm"
|
||||
tabIndex={-1}
|
||||
role="listbox"
|
||||
>
|
||||
<li className="relative cursor-default select-none px-3 py-2 text-neutral-800">
|
||||
<input
|
||||
type="search"
|
||||
name="search"
|
||||
autoComplete={"off"}
|
||||
className="block w-full rounded border-neutral-300 focus:border-black focus:ring-black sm:text-sm"
|
||||
placeholder={"Search"}
|
||||
onChange={(e) => setQuery(e.target.value)}
|
||||
/>
|
||||
</li>
|
||||
|
||||
{filteredValues.length === 0 ? (
|
||||
<li className="relative cursor-default select-none py-2 pl-3 pr-9 text-neutral-800">No results found</li>
|
||||
) : (
|
||||
<List height={500} itemCount={filteredValues.length} itemSize={40} width={"100%"}>
|
||||
{Row}
|
||||
</List>
|
||||
)}
|
||||
</motion.div>
|
||||
)}
|
||||
</AnimatePresence>
|
||||
</div>
|
||||
</div>
|
||||
</>
|
||||
);
|
||||
}
|
||||
|
||||
@@ -22,42 +22,6 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@aws-crypto/crc32@npm:5.2.0":
|
||||
version: 5.2.0
|
||||
resolution: "@aws-crypto/crc32@npm:5.2.0"
|
||||
dependencies:
|
||||
"@aws-crypto/util": "npm:^5.2.0"
|
||||
"@aws-sdk/types": "npm:^3.222.0"
|
||||
tslib: "npm:^2.6.2"
|
||||
checksum: 10c0/eab9581d3363af5ea498ae0e72de792f54d8890360e14a9d8261b7b5c55ebe080279fb2556e07994d785341cdaa99ab0b1ccf137832b53b5904cd6928f2b094b
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@aws-crypto/crc32c@npm:5.2.0":
|
||||
version: 5.2.0
|
||||
resolution: "@aws-crypto/crc32c@npm:5.2.0"
|
||||
dependencies:
|
||||
"@aws-crypto/util": "npm:^5.2.0"
|
||||
"@aws-sdk/types": "npm:^3.222.0"
|
||||
tslib: "npm:^2.6.2"
|
||||
checksum: 10c0/223efac396cdebaf5645568fa9a38cd0c322c960ae1f4276bedfe2e1031d0112e49d7d39225d386354680ecefae29f39af469a84b2ddfa77cb6692036188af77
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@aws-crypto/sha1-browser@npm:5.2.0":
|
||||
version: 5.2.0
|
||||
resolution: "@aws-crypto/sha1-browser@npm:5.2.0"
|
||||
dependencies:
|
||||
"@aws-crypto/supports-web-crypto": "npm:^5.2.0"
|
||||
"@aws-crypto/util": "npm:^5.2.0"
|
||||
"@aws-sdk/types": "npm:^3.222.0"
|
||||
"@aws-sdk/util-locate-window": "npm:^3.0.0"
|
||||
"@smithy/util-utf8": "npm:^2.0.0"
|
||||
tslib: "npm:^2.6.2"
|
||||
checksum: 10c0/51fed0bf078c10322d910af179871b7d299dde5b5897873ffbeeb036f427e5d11d23db9794439226544b73901920fd19f4d86bbc103ed73cc0cfdea47a83c6ac
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@aws-crypto/sha256-browser@npm:5.2.0":
|
||||
version: 5.2.0
|
||||
resolution: "@aws-crypto/sha256-browser@npm:5.2.0"
|
||||
@@ -156,72 +120,6 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@aws-sdk/client-s3@npm:^3.616.0":
|
||||
version: 3.616.0
|
||||
resolution: "@aws-sdk/client-s3@npm:3.616.0"
|
||||
dependencies:
|
||||
"@aws-crypto/sha1-browser": "npm:5.2.0"
|
||||
"@aws-crypto/sha256-browser": "npm:5.2.0"
|
||||
"@aws-crypto/sha256-js": "npm:5.2.0"
|
||||
"@aws-sdk/client-sso-oidc": "npm:3.616.0"
|
||||
"@aws-sdk/client-sts": "npm:3.616.0"
|
||||
"@aws-sdk/core": "npm:3.616.0"
|
||||
"@aws-sdk/credential-provider-node": "npm:3.616.0"
|
||||
"@aws-sdk/middleware-bucket-endpoint": "npm:3.616.0"
|
||||
"@aws-sdk/middleware-expect-continue": "npm:3.616.0"
|
||||
"@aws-sdk/middleware-flexible-checksums": "npm:3.616.0"
|
||||
"@aws-sdk/middleware-host-header": "npm:3.616.0"
|
||||
"@aws-sdk/middleware-location-constraint": "npm:3.609.0"
|
||||
"@aws-sdk/middleware-logger": "npm:3.609.0"
|
||||
"@aws-sdk/middleware-recursion-detection": "npm:3.616.0"
|
||||
"@aws-sdk/middleware-sdk-s3": "npm:3.616.0"
|
||||
"@aws-sdk/middleware-signing": "npm:3.616.0"
|
||||
"@aws-sdk/middleware-ssec": "npm:3.609.0"
|
||||
"@aws-sdk/middleware-user-agent": "npm:3.616.0"
|
||||
"@aws-sdk/region-config-resolver": "npm:3.614.0"
|
||||
"@aws-sdk/signature-v4-multi-region": "npm:3.616.0"
|
||||
"@aws-sdk/types": "npm:3.609.0"
|
||||
"@aws-sdk/util-endpoints": "npm:3.614.0"
|
||||
"@aws-sdk/util-user-agent-browser": "npm:3.609.0"
|
||||
"@aws-sdk/util-user-agent-node": "npm:3.614.0"
|
||||
"@aws-sdk/xml-builder": "npm:3.609.0"
|
||||
"@smithy/config-resolver": "npm:^3.0.5"
|
||||
"@smithy/core": "npm:^2.2.7"
|
||||
"@smithy/eventstream-serde-browser": "npm:^3.0.4"
|
||||
"@smithy/eventstream-serde-config-resolver": "npm:^3.0.3"
|
||||
"@smithy/eventstream-serde-node": "npm:^3.0.4"
|
||||
"@smithy/fetch-http-handler": "npm:^3.2.2"
|
||||
"@smithy/hash-blob-browser": "npm:^3.1.2"
|
||||
"@smithy/hash-node": "npm:^3.0.3"
|
||||
"@smithy/hash-stream-node": "npm:^3.1.2"
|
||||
"@smithy/invalid-dependency": "npm:^3.0.3"
|
||||
"@smithy/md5-js": "npm:^3.0.3"
|
||||
"@smithy/middleware-content-length": "npm:^3.0.4"
|
||||
"@smithy/middleware-endpoint": "npm:^3.0.5"
|
||||
"@smithy/middleware-retry": "npm:^3.0.10"
|
||||
"@smithy/middleware-serde": "npm:^3.0.3"
|
||||
"@smithy/middleware-stack": "npm:^3.0.3"
|
||||
"@smithy/node-config-provider": "npm:^3.1.4"
|
||||
"@smithy/node-http-handler": "npm:^3.1.3"
|
||||
"@smithy/protocol-http": "npm:^4.0.4"
|
||||
"@smithy/smithy-client": "npm:^3.1.8"
|
||||
"@smithy/types": "npm:^3.3.0"
|
||||
"@smithy/url-parser": "npm:^3.0.3"
|
||||
"@smithy/util-base64": "npm:^3.0.0"
|
||||
"@smithy/util-body-length-browser": "npm:^3.0.0"
|
||||
"@smithy/util-body-length-node": "npm:^3.0.0"
|
||||
"@smithy/util-defaults-mode-browser": "npm:^3.0.10"
|
||||
"@smithy/util-defaults-mode-node": "npm:^3.0.10"
|
||||
"@smithy/util-endpoints": "npm:^2.0.5"
|
||||
"@smithy/util-retry": "npm:^3.0.3"
|
||||
"@smithy/util-stream": "npm:^3.1.0"
|
||||
"@smithy/util-utf8": "npm:^3.0.0"
|
||||
"@smithy/util-waiter": "npm:^3.1.2"
|
||||
tslib: "npm:^2.6.2"
|
||||
checksum: 10c0/15e4e4364848dcf9fbee44104664659ea4d190a98f8d3f0e3fa2489474a09135c0646628193e7754dc2078bf09043e9a60467ae06448076de9ac566e4f8cf3d8
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@aws-sdk/client-ses@npm:^3.616.0":
|
||||
version: 3.616.0
|
||||
resolution: "@aws-sdk/client-ses@npm:3.616.0"
|
||||
@@ -542,49 +440,6 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@aws-sdk/middleware-bucket-endpoint@npm:3.616.0":
|
||||
version: 3.616.0
|
||||
resolution: "@aws-sdk/middleware-bucket-endpoint@npm:3.616.0"
|
||||
dependencies:
|
||||
"@aws-sdk/types": "npm:3.609.0"
|
||||
"@aws-sdk/util-arn-parser": "npm:3.568.0"
|
||||
"@smithy/node-config-provider": "npm:^3.1.4"
|
||||
"@smithy/protocol-http": "npm:^4.0.4"
|
||||
"@smithy/types": "npm:^3.3.0"
|
||||
"@smithy/util-config-provider": "npm:^3.0.0"
|
||||
tslib: "npm:^2.6.2"
|
||||
checksum: 10c0/77d3b75395bd18b63e832356a8a9bf26059463242de32d1a6b7163c80a82f9970f118d4d4901ec7c04a601ef735bffe8a1cc60a640122ec7b6e681c7ea8d4525
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@aws-sdk/middleware-expect-continue@npm:3.616.0":
|
||||
version: 3.616.0
|
||||
resolution: "@aws-sdk/middleware-expect-continue@npm:3.616.0"
|
||||
dependencies:
|
||||
"@aws-sdk/types": "npm:3.609.0"
|
||||
"@smithy/protocol-http": "npm:^4.0.4"
|
||||
"@smithy/types": "npm:^3.3.0"
|
||||
tslib: "npm:^2.6.2"
|
||||
checksum: 10c0/bc90e337021d5aae00db1380546c5906816850ebc488ae373124d4a7830261b1e9f59a61186e211ff66904b06c3a8010875f6d9235e94f48d75a602273ab8e43
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@aws-sdk/middleware-flexible-checksums@npm:3.616.0":
|
||||
version: 3.616.0
|
||||
resolution: "@aws-sdk/middleware-flexible-checksums@npm:3.616.0"
|
||||
dependencies:
|
||||
"@aws-crypto/crc32": "npm:5.2.0"
|
||||
"@aws-crypto/crc32c": "npm:5.2.0"
|
||||
"@aws-sdk/types": "npm:3.609.0"
|
||||
"@smithy/is-array-buffer": "npm:^3.0.0"
|
||||
"@smithy/protocol-http": "npm:^4.0.4"
|
||||
"@smithy/types": "npm:^3.3.0"
|
||||
"@smithy/util-utf8": "npm:^3.0.0"
|
||||
tslib: "npm:^2.6.2"
|
||||
checksum: 10c0/2c59282ea543fb657fb4a7b37ed81a94bcfb852e655035151e7a019d8e05f7b095e2787022fb8571adf63983ea3f99da240e3669f684ef325ead757a0dab18d9
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@aws-sdk/middleware-host-header@npm:3.616.0":
|
||||
version: 3.616.0
|
||||
resolution: "@aws-sdk/middleware-host-header@npm:3.616.0"
|
||||
@@ -597,17 +452,6 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@aws-sdk/middleware-location-constraint@npm:3.609.0":
|
||||
version: 3.609.0
|
||||
resolution: "@aws-sdk/middleware-location-constraint@npm:3.609.0"
|
||||
dependencies:
|
||||
"@aws-sdk/types": "npm:3.609.0"
|
||||
"@smithy/types": "npm:^3.3.0"
|
||||
tslib: "npm:^2.6.2"
|
||||
checksum: 10c0/1eba2a3a1a003855a69e56f1c54fb2283b30db50bf14130cd042e25805497b7a19539144052c4fa710952d754d1a9e5d680fce09536509cf796a16816c8d506f
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@aws-sdk/middleware-logger@npm:3.609.0":
|
||||
version: 3.609.0
|
||||
resolution: "@aws-sdk/middleware-logger@npm:3.609.0"
|
||||
@@ -631,51 +475,6 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@aws-sdk/middleware-sdk-s3@npm:3.616.0":
|
||||
version: 3.616.0
|
||||
resolution: "@aws-sdk/middleware-sdk-s3@npm:3.616.0"
|
||||
dependencies:
|
||||
"@aws-sdk/types": "npm:3.609.0"
|
||||
"@aws-sdk/util-arn-parser": "npm:3.568.0"
|
||||
"@smithy/node-config-provider": "npm:^3.1.4"
|
||||
"@smithy/protocol-http": "npm:^4.0.4"
|
||||
"@smithy/signature-v4": "npm:^4.0.0"
|
||||
"@smithy/smithy-client": "npm:^3.1.8"
|
||||
"@smithy/types": "npm:^3.3.0"
|
||||
"@smithy/util-config-provider": "npm:^3.0.0"
|
||||
"@smithy/util-stream": "npm:^3.1.0"
|
||||
"@smithy/util-utf8": "npm:^3.0.0"
|
||||
tslib: "npm:^2.6.2"
|
||||
checksum: 10c0/37cd1ec99285cf8a8ed5a5568e22a6bf1c9cee7c6c275a944031c6cf7127b44570a5f7d50cbd041a118947c5053a4846d12eefd7f9592c8c5aa5f486cd956ec1
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@aws-sdk/middleware-signing@npm:3.616.0":
|
||||
version: 3.616.0
|
||||
resolution: "@aws-sdk/middleware-signing@npm:3.616.0"
|
||||
dependencies:
|
||||
"@aws-sdk/types": "npm:3.609.0"
|
||||
"@smithy/property-provider": "npm:^3.1.3"
|
||||
"@smithy/protocol-http": "npm:^4.0.4"
|
||||
"@smithy/signature-v4": "npm:^4.0.0"
|
||||
"@smithy/types": "npm:^3.3.0"
|
||||
"@smithy/util-middleware": "npm:^3.0.3"
|
||||
tslib: "npm:^2.6.2"
|
||||
checksum: 10c0/5f605347d5cc913341d327e48a1247a599b21408987d53b1b462d436ac8dfdfe1e8ab90ce918779af5cf1126ae8b4e3727a94c0e3f13ced7faf5607219931dc8
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@aws-sdk/middleware-ssec@npm:3.609.0":
|
||||
version: 3.609.0
|
||||
resolution: "@aws-sdk/middleware-ssec@npm:3.609.0"
|
||||
dependencies:
|
||||
"@aws-sdk/types": "npm:3.609.0"
|
||||
"@smithy/types": "npm:^3.3.0"
|
||||
tslib: "npm:^2.6.2"
|
||||
checksum: 10c0/7688628299c3d3352182634836d8a5ad89d69dfedd91d7386ffeaa8288160329eef7d399321b7841bb4c84c9741d7245ef218657a8df71248b5ce5f7273e303d
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@aws-sdk/middleware-user-agent@npm:3.616.0":
|
||||
version: 3.616.0
|
||||
resolution: "@aws-sdk/middleware-user-agent@npm:3.616.0"
|
||||
@@ -703,20 +502,6 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@aws-sdk/signature-v4-multi-region@npm:3.616.0":
|
||||
version: 3.616.0
|
||||
resolution: "@aws-sdk/signature-v4-multi-region@npm:3.616.0"
|
||||
dependencies:
|
||||
"@aws-sdk/middleware-sdk-s3": "npm:3.616.0"
|
||||
"@aws-sdk/types": "npm:3.609.0"
|
||||
"@smithy/protocol-http": "npm:^4.0.4"
|
||||
"@smithy/signature-v4": "npm:^4.0.0"
|
||||
"@smithy/types": "npm:^3.3.0"
|
||||
tslib: "npm:^2.6.2"
|
||||
checksum: 10c0/c18f5ac47791bdda6426bed17e245f2fa3368bec633d9d3e7f86d814e0fe091a85429f1c3d94644ac8f27b44f8547e24f5421e5b5beab648aad3ea622c259550
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@aws-sdk/token-providers@npm:3.614.0":
|
||||
version: 3.614.0
|
||||
resolution: "@aws-sdk/token-providers@npm:3.614.0"
|
||||
@@ -742,15 +527,6 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@aws-sdk/util-arn-parser@npm:3.568.0":
|
||||
version: 3.568.0
|
||||
resolution: "@aws-sdk/util-arn-parser@npm:3.568.0"
|
||||
dependencies:
|
||||
tslib: "npm:^2.6.2"
|
||||
checksum: 10c0/4e6168b86a1ff4509f25b56e473c95bdcc0ecbaedcded29cbbd500eb7c156de63f2426282cd50489ac7f321a990056349974730f9e27ac3fe872ba3573b09fb6
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@aws-sdk/util-endpoints@npm:3.614.0":
|
||||
version: 3.614.0
|
||||
resolution: "@aws-sdk/util-endpoints@npm:3.614.0"
|
||||
@@ -2213,6 +1989,15 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@babel/runtime@npm:^7.0.0":
|
||||
version: 7.25.0
|
||||
resolution: "@babel/runtime@npm:7.25.0"
|
||||
dependencies:
|
||||
regenerator-runtime: "npm:^0.14.0"
|
||||
checksum: 10c0/bd3faf246170826cef2071a94d7b47b49d532351360ecd17722d03f6713fd93a3eb3dbd9518faa778d5e8ccad7392a7a604e56bd37aaad3f3aa68d619ccd983d
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@babel/runtime@npm:^7.23.9, @babel/runtime@npm:^7.3.1, @babel/runtime@npm:^7.5.5, @babel/runtime@npm:^7.8.4, @babel/runtime@npm:^7.8.7":
|
||||
version: 7.24.8
|
||||
resolution: "@babel/runtime@npm:7.24.8"
|
||||
@@ -3380,7 +3165,6 @@ __metadata:
|
||||
resolution: "@plunk/api@workspace:packages/api"
|
||||
dependencies:
|
||||
"@aws-sdk/client-cloudfront": "npm:^3.616.0"
|
||||
"@aws-sdk/client-s3": "npm:^3.616.0"
|
||||
"@aws-sdk/client-ses": "npm:^3.616.0"
|
||||
"@overnightjs/core": "npm:^1.7.6"
|
||||
"@plunk/shared": "npm:^1.0.0"
|
||||
@@ -3394,7 +3178,6 @@ __metadata:
|
||||
"@types/jsonwebtoken": "npm:^9.0.6"
|
||||
"@types/mjml": "npm:^4.7.4"
|
||||
"@types/morgan": "npm:^1.9.9"
|
||||
"@types/multer": "npm:^1.4.11"
|
||||
"@types/node-cron": "npm:^3.0.11"
|
||||
"@types/signale": "npm:^1.4.7"
|
||||
bcrypt: "npm:^5.1.1"
|
||||
@@ -3411,7 +3194,6 @@ __metadata:
|
||||
jsonwebtoken: "npm:^9.0.2"
|
||||
mjml: "npm:^4.15.3"
|
||||
morgan: "npm:^1.10.0"
|
||||
multer: "npm:^1.4.5-lts.1"
|
||||
node-cron: "npm:^3.0.3"
|
||||
prisma: "npm:^5.17.0"
|
||||
signale: "npm:^1.4.0"
|
||||
@@ -3450,6 +3232,7 @@ __metadata:
|
||||
"@types/nprogress": "npm:^0.2.3"
|
||||
"@types/react": "npm:18.3.3"
|
||||
"@types/react-syntax-highlighter": "npm:^15.5.13"
|
||||
"@types/react-window": "npm:^1"
|
||||
"@uiball/loaders": "npm:^1.3.1"
|
||||
autoprefixer: "npm:^10.4.19"
|
||||
classnames: "npm:^2.5.1"
|
||||
@@ -3471,6 +3254,7 @@ __metadata:
|
||||
react-dom: "npm:18.3.1"
|
||||
react-hook-form: "npm:^7.52.1"
|
||||
react-syntax-highlighter: "npm:^15.5.0"
|
||||
react-window: "npm:^1.8.10"
|
||||
recharts: "npm:^2.12.7"
|
||||
sharp: "npm:^0.33.4"
|
||||
sonner: "npm:^1.5.0"
|
||||
@@ -3639,25 +3423,6 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@smithy/chunked-blob-reader-native@npm:^3.0.0":
|
||||
version: 3.0.0
|
||||
resolution: "@smithy/chunked-blob-reader-native@npm:3.0.0"
|
||||
dependencies:
|
||||
"@smithy/util-base64": "npm:^3.0.0"
|
||||
tslib: "npm:^2.6.2"
|
||||
checksum: 10c0/f3cbd03baaaf33a2c44a484851e3f2902f87cbb2168abff179276b19fd137be021393551b9270f9f3135408d816a06fe84ff826d9beb576dbe53fae9cf487362
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@smithy/chunked-blob-reader@npm:^3.0.0":
|
||||
version: 3.0.0
|
||||
resolution: "@smithy/chunked-blob-reader@npm:3.0.0"
|
||||
dependencies:
|
||||
tslib: "npm:^2.6.2"
|
||||
checksum: 10c0/cc551e4d6c711bec381d70c3074e3937ee78245bb15dd55c28c43c6c30808af1855c8df4a785a1033ded1483979ae115cf2c9decce73083346734db0d32b2fe5
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@smithy/config-resolver@npm:^3.0.5":
|
||||
version: 3.0.5
|
||||
resolution: "@smithy/config-resolver@npm:3.0.5"
|
||||
@@ -3700,61 +3465,6 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@smithy/eventstream-codec@npm:^3.1.2":
|
||||
version: 3.1.2
|
||||
resolution: "@smithy/eventstream-codec@npm:3.1.2"
|
||||
dependencies:
|
||||
"@aws-crypto/crc32": "npm:5.2.0"
|
||||
"@smithy/types": "npm:^3.3.0"
|
||||
"@smithy/util-hex-encoding": "npm:^3.0.0"
|
||||
tslib: "npm:^2.6.2"
|
||||
checksum: 10c0/fc8db95d9625524b2832cf9cea203b4c1062197d04eef6f676b6eea06cc0007d45acb5270937c1b6b76f98638acaf0c2b822278226c25841ab45488df786e332
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@smithy/eventstream-serde-browser@npm:^3.0.4":
|
||||
version: 3.0.5
|
||||
resolution: "@smithy/eventstream-serde-browser@npm:3.0.5"
|
||||
dependencies:
|
||||
"@smithy/eventstream-serde-universal": "npm:^3.0.4"
|
||||
"@smithy/types": "npm:^3.3.0"
|
||||
tslib: "npm:^2.6.2"
|
||||
checksum: 10c0/de7255f22fef702cb24d92be7eaea6f1c1faeeac21e1c6d6865df77c5018045033bb66e4658cf74856d1c7f7d4ad2fbb52d3e341705a5907eeee15c0449c0fa0
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@smithy/eventstream-serde-config-resolver@npm:^3.0.3":
|
||||
version: 3.0.3
|
||||
resolution: "@smithy/eventstream-serde-config-resolver@npm:3.0.3"
|
||||
dependencies:
|
||||
"@smithy/types": "npm:^3.3.0"
|
||||
tslib: "npm:^2.6.2"
|
||||
checksum: 10c0/ef3360c0a0e4ad20f6e6da84b63e5071e3158af726bf291c610e2d42b5e042008cd9fe41ce2183f491422f23c36437987c0d1139e68b3c127d48c01b442dab82
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@smithy/eventstream-serde-node@npm:^3.0.4":
|
||||
version: 3.0.4
|
||||
resolution: "@smithy/eventstream-serde-node@npm:3.0.4"
|
||||
dependencies:
|
||||
"@smithy/eventstream-serde-universal": "npm:^3.0.4"
|
||||
"@smithy/types": "npm:^3.3.0"
|
||||
tslib: "npm:^2.6.2"
|
||||
checksum: 10c0/11ff38048b1176625d4beb9ca245118aacaf867c90a94747e8cf0bb99e48c68aeedeab56c48a0238a27e35920c7074f3b6f71f8a8246a0d115962d728063a1f5
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@smithy/eventstream-serde-universal@npm:^3.0.4":
|
||||
version: 3.0.4
|
||||
resolution: "@smithy/eventstream-serde-universal@npm:3.0.4"
|
||||
dependencies:
|
||||
"@smithy/eventstream-codec": "npm:^3.1.2"
|
||||
"@smithy/types": "npm:^3.3.0"
|
||||
tslib: "npm:^2.6.2"
|
||||
checksum: 10c0/99ab5f708fa4ebccea96b373395efc76b49c34ae8eb97aa33622ba82e93441a72010bb03693ec18d1517d9bb0a4a7e5c254179c22f38f411a6fecf8b3291c77f
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@smithy/fetch-http-handler@npm:^3.2.2":
|
||||
version: 3.2.2
|
||||
resolution: "@smithy/fetch-http-handler@npm:3.2.2"
|
||||
@@ -3768,18 +3478,6 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@smithy/hash-blob-browser@npm:^3.1.2":
|
||||
version: 3.1.2
|
||||
resolution: "@smithy/hash-blob-browser@npm:3.1.2"
|
||||
dependencies:
|
||||
"@smithy/chunked-blob-reader": "npm:^3.0.0"
|
||||
"@smithy/chunked-blob-reader-native": "npm:^3.0.0"
|
||||
"@smithy/types": "npm:^3.3.0"
|
||||
tslib: "npm:^2.6.2"
|
||||
checksum: 10c0/71b017ae71839e058661e22589bacbc204d4980df66d67725aaa415493107e2f0898e41d0c6a4cd2c96333648d472c66ed35ec3c264156e6021bda5d590eb5ab
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@smithy/hash-node@npm:^3.0.3":
|
||||
version: 3.0.3
|
||||
resolution: "@smithy/hash-node@npm:3.0.3"
|
||||
@@ -3792,17 +3490,6 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@smithy/hash-stream-node@npm:^3.1.2":
|
||||
version: 3.1.2
|
||||
resolution: "@smithy/hash-stream-node@npm:3.1.2"
|
||||
dependencies:
|
||||
"@smithy/types": "npm:^3.3.0"
|
||||
"@smithy/util-utf8": "npm:^3.0.0"
|
||||
tslib: "npm:^2.6.2"
|
||||
checksum: 10c0/2daadb5d6f08022ca1b1ecb4256d613613be86b7b768fb221ee3a2a7e584df0f4a546fba080e8366211c99f9ddb66d57e38525d10839405eab0b9d5be81d313b
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@smithy/invalid-dependency@npm:^3.0.3":
|
||||
version: 3.0.3
|
||||
resolution: "@smithy/invalid-dependency@npm:3.0.3"
|
||||
@@ -3831,17 +3518,6 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@smithy/md5-js@npm:^3.0.3":
|
||||
version: 3.0.3
|
||||
resolution: "@smithy/md5-js@npm:3.0.3"
|
||||
dependencies:
|
||||
"@smithy/types": "npm:^3.3.0"
|
||||
"@smithy/util-utf8": "npm:^3.0.0"
|
||||
tslib: "npm:^2.6.2"
|
||||
checksum: 10c0/048b966676f5944da701120ca2e133de8a17fa403f2dc96dd88a82ea2248e2b439147b062ad8860486a9897899dd28de45cc0e2ae03c1221e2b987ad8e065464
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@smithy/middleware-content-length@npm:^3.0.4":
|
||||
version: 3.0.4
|
||||
resolution: "@smithy/middleware-content-length@npm:3.0.4"
|
||||
@@ -5088,15 +4764,6 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@types/multer@npm:^1.4.11":
|
||||
version: 1.4.11
|
||||
resolution: "@types/multer@npm:1.4.11"
|
||||
dependencies:
|
||||
"@types/express": "npm:*"
|
||||
checksum: 10c0/ace8e9f5ac7d2d7f6e0c35b790504f582a2f82a84cc06a7b90315527599b95256595bc0bb5bba60220c20a558554f0c21b96b94848b885987ab69512a3a9865e
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@types/node-cron@npm:^3.0.11":
|
||||
version: 3.0.11
|
||||
resolution: "@types/node-cron@npm:3.0.11"
|
||||
@@ -5157,6 +4824,15 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@types/react-window@npm:^1":
|
||||
version: 1.8.8
|
||||
resolution: "@types/react-window@npm:1.8.8"
|
||||
dependencies:
|
||||
"@types/react": "npm:*"
|
||||
checksum: 10c0/2170a3957752603e8b994840c5d31b72ddf94c427c0f42b0175b343cc54f50fe66161d8871e11786ec7a59906bd33861945579a3a8f745455a3744268ec1069f
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@types/react@npm:*, @types/react@npm:18.3.3":
|
||||
version: 18.3.3
|
||||
resolution: "@types/react@npm:18.3.3"
|
||||
@@ -5431,13 +5107,6 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"append-field@npm:^1.0.0":
|
||||
version: 1.0.0
|
||||
resolution: "append-field@npm:1.0.0"
|
||||
checksum: 10c0/1b5abcc227e5179936a9e4f7e2af4769fa1f00eda85bbaed907f7964b0fd1f7d61f0f332b35337f391389ff13dd5310c2546ba670f8e5a743b23ec85185c73ef
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"aproba@npm:2.0.0, aproba@npm:^1.0.3 || ^2.0.0":
|
||||
version: 2.0.0
|
||||
resolution: "aproba@npm:2.0.0"
|
||||
@@ -5776,7 +5445,7 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"busboy@npm:1.6.0, busboy@npm:^1.0.0":
|
||||
"busboy@npm:1.6.0":
|
||||
version: 1.6.0
|
||||
resolution: "busboy@npm:1.6.0"
|
||||
dependencies:
|
||||
@@ -6314,18 +5983,6 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"concat-stream@npm:^1.5.2":
|
||||
version: 1.6.2
|
||||
resolution: "concat-stream@npm:1.6.2"
|
||||
dependencies:
|
||||
buffer-from: "npm:^1.0.0"
|
||||
inherits: "npm:^2.0.3"
|
||||
readable-stream: "npm:^2.2.2"
|
||||
typedarray: "npm:^0.0.6"
|
||||
checksum: 10c0/2e9864e18282946dabbccb212c5c7cec0702745e3671679eb8291812ca7fd12023f7d8cb36493942a62f770ac96a7f90009dc5c82ad69893438371720fa92617
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"concat-stream@npm:^2.0.0":
|
||||
version: 2.0.0
|
||||
resolution: "concat-stream@npm:2.0.0"
|
||||
@@ -9395,6 +9052,13 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"memoize-one@npm:>=3.1.1 <6":
|
||||
version: 5.2.1
|
||||
resolution: "memoize-one@npm:5.2.1"
|
||||
checksum: 10c0/fd22dbe9a978a2b4f30d6a491fc02fb90792432ad0dab840dc96c1734d2bd7c9cdeb6a26130ec60507eb43230559523615873168bcbe8fafab221c30b11d54c1
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"mensch@npm:^0.3.4":
|
||||
version: 0.3.4
|
||||
resolution: "mensch@npm:0.3.4"
|
||||
@@ -10098,17 +9762,6 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"mkdirp@npm:^0.5.4":
|
||||
version: 0.5.6
|
||||
resolution: "mkdirp@npm:0.5.6"
|
||||
dependencies:
|
||||
minimist: "npm:^1.2.6"
|
||||
bin:
|
||||
mkdirp: bin/cmd.js
|
||||
checksum: 10c0/e2e2be789218807b58abced04e7b49851d9e46e88a2f9539242cc8a92c9b5c3a0b9bab360bd3014e02a140fc4fbc58e31176c408b493f8a2a6f4986bd7527b01
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"mkdirp@npm:^1.0.3, mkdirp@npm:^1.0.4":
|
||||
version: 1.0.4
|
||||
resolution: "mkdirp@npm:1.0.4"
|
||||
@@ -10159,21 +9812,6 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"multer@npm:^1.4.5-lts.1":
|
||||
version: 1.4.5-lts.1
|
||||
resolution: "multer@npm:1.4.5-lts.1"
|
||||
dependencies:
|
||||
append-field: "npm:^1.0.0"
|
||||
busboy: "npm:^1.0.0"
|
||||
concat-stream: "npm:^1.5.2"
|
||||
mkdirp: "npm:^0.5.4"
|
||||
object-assign: "npm:^4.1.1"
|
||||
type-is: "npm:^1.6.4"
|
||||
xtend: "npm:^4.0.0"
|
||||
checksum: 10c0/4c6c91e93e510c99e791b6520e3e2f4a227a57f4f509427ff7f3a6f4cc0b4b09ad77c475f629c12f7ae01dba11645b2bd6568877cab775de8bf853b0a67259b4
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"multimatch@npm:5.0.0":
|
||||
version: 5.0.0
|
||||
resolution: "multimatch@npm:5.0.0"
|
||||
@@ -11769,6 +11407,19 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"react-window@npm:^1.8.10":
|
||||
version: 1.8.10
|
||||
resolution: "react-window@npm:1.8.10"
|
||||
dependencies:
|
||||
"@babel/runtime": "npm:^7.0.0"
|
||||
memoize-one: "npm:>=3.1.1 <6"
|
||||
peerDependencies:
|
||||
react: ^15.0.0 || ^16.0.0 || ^17.0.0 || ^18.0.0
|
||||
react-dom: ^15.0.0 || ^16.0.0 || ^17.0.0 || ^18.0.0
|
||||
checksum: 10c0/eda9afb667d9784513dcc2755b65edf3a1412e7877975322993c1382908aaef0c0b948b7e3b2d705e353306556274d90f7ab19ac40aef2184fa39d4c1e2232ea
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"react@npm:18.3.1":
|
||||
version: 18.3.1
|
||||
resolution: "react@npm:18.3.1"
|
||||
@@ -11857,7 +11508,18 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"readable-stream@npm:^2.2.2, readable-stream@npm:~2.3.6":
|
||||
"readable-stream@npm:^3.0.0, readable-stream@npm:^3.0.2, readable-stream@npm:^3.1.1, readable-stream@npm:^3.4.0, readable-stream@npm:^3.6.0":
|
||||
version: 3.6.2
|
||||
resolution: "readable-stream@npm:3.6.2"
|
||||
dependencies:
|
||||
inherits: "npm:^2.0.3"
|
||||
string_decoder: "npm:^1.1.1"
|
||||
util-deprecate: "npm:^1.0.1"
|
||||
checksum: 10c0/e37be5c79c376fdd088a45fa31ea2e423e5d48854be7a22a58869b4e84d25047b193f6acb54f1012331e1bcd667ffb569c01b99d36b0bd59658fb33f513511b7
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"readable-stream@npm:~2.3.6":
|
||||
version: 2.3.8
|
||||
resolution: "readable-stream@npm:2.3.8"
|
||||
dependencies:
|
||||
@@ -11872,17 +11534,6 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"readable-stream@npm:^3.0.0, readable-stream@npm:^3.0.2, readable-stream@npm:^3.1.1, readable-stream@npm:^3.4.0, readable-stream@npm:^3.6.0":
|
||||
version: 3.6.2
|
||||
resolution: "readable-stream@npm:3.6.2"
|
||||
dependencies:
|
||||
inherits: "npm:^2.0.3"
|
||||
string_decoder: "npm:^1.1.1"
|
||||
util-deprecate: "npm:^1.0.1"
|
||||
checksum: 10c0/e37be5c79c376fdd088a45fa31ea2e423e5d48854be7a22a58869b4e84d25047b193f6acb54f1012331e1bcd667ffb569c01b99d36b0bd59658fb33f513511b7
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"readdirp@npm:~3.6.0":
|
||||
version: 3.6.0
|
||||
resolution: "readdirp@npm:3.6.0"
|
||||
@@ -13222,7 +12873,7 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"type-is@npm:^1.6.4, type-is@npm:~1.6.18":
|
||||
"type-is@npm:~1.6.18":
|
||||
version: 1.6.18
|
||||
resolution: "type-is@npm:1.6.18"
|
||||
dependencies:
|
||||
|
||||
Reference in New Issue
Block a user