diff --git a/.gitignore b/.gitignore
index 1437c53f70..e585918c78 100644
--- a/.gitignore
+++ b/.gitignore
@@ -29,6 +29,9 @@ yarn-error.log*
.env.development.local
.env.test.local
.env.production.local
+.env
# vercel
.vercel
+
+note.txt
\ No newline at end of file
diff --git a/.prettierrc b/.prettierrc
new file mode 100644
index 0000000000..f7eb6d0c0f
--- /dev/null
+++ b/.prettierrc
@@ -0,0 +1,5 @@
+{
+ "tabWidth": 2,
+ "semi": false,
+ "doubleQuote": true
+}
diff --git a/components/Add.jsx b/components/Add.jsx
new file mode 100644
index 0000000000..ef3000165a
--- /dev/null
+++ b/components/Add.jsx
@@ -0,0 +1,140 @@
+import { useState } from "react"
+import styles from "../styles/Add.module.css"
+import axios from "axios"
+
+const Add = ({ setClose }) => {
+ const [file, setFile] = useState(null)
+ const [title, setTitle] = useState(null)
+ const [desc, setDesc] = useState(null)
+ const [prices, setPrices] = useState([])
+ const [extraOptions, setExtraOptions] = useState([])
+ const [extra, setExtra] = useState(null)
+
+ const changePrice = (e, index) => {
+ const currentPrices = prices
+ currentPrices[index] = e.target.value
+ setPrices(currentPrices)
+ }
+
+ const handleExtraInput = (e) => {
+ setExtra({ ...extra, [e.target.name]: e.target.value })
+ }
+
+ const handleExtra = (e) => {
+ setExtraOptions((prev) => [...prev, extra])
+ }
+
+ const handleCreate = async () => {
+ const data = new FormData()
+ data.append("file", file)
+ data.append("upload_preset", "uploads")
+ try {
+ const uploadRes = await axios.post(
+ "https://api.cloudinary.com/v1_1/dinwebdev/image/upload",
+ data
+ )
+
+ const { url } = uploadRes.data
+ const newProduct = {
+ title,
+ desc,
+ prices,
+ extraOptions,
+ img: url,
+ }
+
+ await axios.post("http://localhost:3000/api/products", newProduct)
+ setClose(true)
+ } catch (err) {
+ console.log(err)
+ }
+ }
+
+ return (
+
@@ -15,23 +19,27 @@ const Navbar = () => {
- - Homepage
+
+ - Homepage
+
- Products
- Menu
-
+
- Events
- Blog
- Contact
-
- );
-};
+ )
+}
-export default Navbar;
+export default Navbar
diff --git a/components/OrderDetail.jsx b/components/OrderDetail.jsx
new file mode 100644
index 0000000000..684ec852e4
--- /dev/null
+++ b/components/OrderDetail.jsx
@@ -0,0 +1,51 @@
+import { useState } from "react";
+import styles from "../styles/OrderDetail.module.css";
+
+const OrderDetail = ({ total, createOrder }) => {
+ const [customer, setCustomer] = useState("");
+ const [address, setAddress] = useState("");
+
+ const handleClick = () => {
+ createOrder({ customer, address, total, method: 0 });
+ };
+
+ return (
+
+
+
You will pay $12 after delivery.
+
+
+ setCustomer(e.target.value)}
+ />
+
+
+
+
+
+
+
+
+
+
+
+ );
+};
+
+export default OrderDetail;
diff --git a/components/PizzaCard.jsx b/components/PizzaCard.jsx
index 2d0dec2555..d58508cf82 100644
--- a/components/PizzaCard.jsx
+++ b/components/PizzaCard.jsx
@@ -1,17 +1,18 @@
-import Image from "next/image";
-import styles from "../styles/PizzaCard.module.css";
+import Image from "next/image"
+import Link from "next/link"
+import styles from "../styles/PizzaCard.module.css"
-const PizzaCard = () => {
+const PizzaCard = ({ pizza }) => {
return (
-
-
FIORI DI ZUCCA
-
$19.90
-
- Lorem ipsum dolor sit amet consectetur adipisicing elit.
-
+
+
+
+
{pizza.title}
+
${pizza.prices[0]}
+
{pizza.desc}
- );
-};
+ )
+}
-export default PizzaCard;
+export default PizzaCard
diff --git a/components/PizzaList.jsx b/components/PizzaList.jsx
index c28942611f..6ae3d1d1fc 100644
--- a/components/PizzaList.jsx
+++ b/components/PizzaList.jsx
@@ -1,7 +1,7 @@
-import styles from "../styles/PizzaList.module.css";
+import styles from "../styles/PizzaList.module.css"
import PizzaCard from "./PizzaCard"
-const PizzaList = () => {
+const PizzaList = ({ pizzaList }) => {
return (
THE BEST PIZZA IN TOWN
@@ -11,17 +11,12 @@ const PizzaList = () => {
sit amet, consectetur adipiscing elit.
-
-
-
-
-
-
-
-
+ {pizzaList.map((pizza) => (
+
+ ))}
- );
-};
+ )
+}
-export default PizzaList;
+export default PizzaList
diff --git a/models/Order.js b/models/Order.js
new file mode 100644
index 0000000000..72bca462d8
--- /dev/null
+++ b/models/Order.js
@@ -0,0 +1,31 @@
+import mongoose from "mongoose";
+
+const OrderSchema = new mongoose.Schema(
+ {
+ customer: {
+ type: String,
+ required: true,
+ maxlength: 60,
+ },
+ address: {
+ type: String,
+ required: true,
+ maxlength: 200,
+ },
+ total: {
+ type: Number,
+ required: true,
+ },
+ status: {
+ type: Number,
+ default: 0,
+ },
+ method: {
+ type: Number,
+ required:true
+ },
+ },
+ { timestamps: true }
+);
+
+export default mongoose.models.Order || mongoose.model("Order", OrderSchema);
diff --git a/models/Product.js b/models/Product.js
new file mode 100644
index 0000000000..745eb5d010
--- /dev/null
+++ b/models/Product.js
@@ -0,0 +1,36 @@
+import mongoose from "mongoose";
+
+const ProductSchema = new mongoose.Schema(
+ {
+ title: {
+ type: String,
+ required: true,
+ maxlength: 60,
+ },
+ desc: {
+ type: String,
+ required: true,
+ maxlength: 200,
+ },
+ img: {
+ type: String,
+ required: true,
+ },
+ prices: {
+ type: [Number],
+ required: true,
+ },
+ extraOptions: {
+ type: [
+ {
+ text: { type: String, required: true },
+ price: { type: Number, required: true },
+ },
+ ],
+ },
+ },
+ { timestamps: true }
+);
+
+export default mongoose.models.Product ||
+ mongoose.model("Product", ProductSchema);
diff --git a/next.config.js b/next.config.js
index 0d6071006a..7fe6c99112 100644
--- a/next.config.js
+++ b/next.config.js
@@ -1,3 +1,6 @@
module.exports = {
reactStrictMode: true,
+ images: {
+ domains: ["res.cloudinary.com"],
+ },
}
diff --git a/package.json b/package.json
index 5013a81601..b509bf9ee6 100644
--- a/package.json
+++ b/package.json
@@ -8,9 +8,16 @@
"lint": "next lint"
},
"dependencies": {
+ "@paypal/react-paypal-js": "^7.5.0",
+ "@reduxjs/toolkit": "^1.7.1",
+ "axios": "^0.24.0",
+ "cookie": "^0.4.1",
+ "mongoose": "^6.1.4",
"next": "12.0.7",
"react": "17.0.2",
- "react-dom": "17.0.2"
+ "react-dom": "17.0.2",
+ "react-redux": "^7.2.6",
+ "redux": "^4.1.2"
},
"devDependencies": {
"eslint": "8.4.1",
diff --git a/pages/_app.js b/pages/_app.js
index 1c50ea1078..b89ed6dad3 100644
--- a/pages/_app.js
+++ b/pages/_app.js
@@ -1,12 +1,16 @@
-import Layout from "../components/Layout";
-import "../styles/globals.css";
+import Layout from "../components/Layout"
+import "../styles/globals.css"
+import store from "../redux/store"
+import { Provider } from "react-redux"
function MyApp({ Component, pageProps }) {
return (
-
-
-
- );
+
+
+
+
+
+ )
}
-export default MyApp;
+export default MyApp
diff --git a/pages/admin/index.jsx b/pages/admin/index.jsx
new file mode 100644
index 0000000000..f651e0899f
--- /dev/null
+++ b/pages/admin/index.jsx
@@ -0,0 +1,143 @@
+import axios from "axios";
+import Image from "next/image";
+import { useState } from "react";
+import styles from "../../styles/Admin.module.css";
+
+const Index = ({ orders, products }) => {
+ const [pizzaList, setPizzaList] = useState(products);
+ const [orderList, setOrderList] = useState(orders);
+ const status = ["preparing", "on the way", "delivered"];
+
+ const handleDelete = async (id) => {
+ console.log(id);
+ try {
+ const res = await axios.delete(
+ "http://localhost:3000/api/products/" + id
+ );
+ setPizzaList(pizzaList.filter((pizza) => pizza._id !== id));
+ } catch (err) {
+ console.log(err);
+ }
+ };
+
+ const handleStatus = async (id) => {
+ const item = orderList.filter((order) => order._id === id)[0];
+ const currentStatus = item.status;
+
+ try {
+ const res = await axios.put("http://localhost:3000/api/orders/" + id, {
+ status: currentStatus + 1,
+ });
+ setOrderList([
+ res.data,
+ ...orderList.filter((order) => order._id !== id),
+ ]);
+ } catch (err) {
+ console.log(err);
+ }
+ };
+
+ return (
+
+
+
Products
+
+
+
+ Image |
+ Id |
+ Title |
+ Price |
+ Action |
+
+
+ {pizzaList.map((product) => (
+
+
+
+
+ |
+ {product._id.slice(0, 5)}... |
+ {product.title} |
+ ${product.prices[0]} |
+
+
+
+ |
+
+
+ ))}
+
+
+
+
Orders
+
+
+
+ Id |
+ Customer |
+ Total |
+ Payment |
+ Status |
+ Action |
+
+
+ {orderList.map((order) => (
+
+
+ {order._id.slice(0, 5)}... |
+ {order.customer} |
+ ${order.total} |
+
+ {order.method === 0 ? cash : paid}
+ |
+ {status[order.status]} |
+
+
+ |
+
+
+ ))}
+
+
+
+ );
+};
+
+export const getServerSideProps = async (ctx) => {
+ const myCookie = ctx.req?.cookies || "";
+
+ if (myCookie.token !== process.env.TOKEN) {
+ return {
+ redirect: {
+ destination: "/admin/login",
+ permanent: false,
+ },
+ };
+ }
+
+ const productRes = await axios.get("http://localhost:3000/api/products");
+ const orderRes = await axios.get("http://localhost:3000/api/orders");
+
+ return {
+ props: {
+ orders: orderRes.data,
+ products: productRes.data,
+ },
+ };
+};
+
+export default Index;
diff --git a/pages/admin/login.jsx b/pages/admin/login.jsx
new file mode 100644
index 0000000000..4266ff0327
--- /dev/null
+++ b/pages/admin/login.jsx
@@ -0,0 +1,48 @@
+import axios from "axios";
+import { useRouter } from "next/router";
+import { useState } from "react";
+import styles from "../../styles/Login.module.css";
+
+const Login = () => {
+ const [username, setUsername] = useState(null);
+ const [password, setPassword] = useState(null);
+ const [error, setError] = useState(false);
+ const router = useRouter();
+
+ const handleClick = async () => {
+ try {
+ await axios.post("http://localhost:3000/api/login", {
+ username,
+ password,
+ });
+ router.push("/admin");
+ } catch (err) {
+ setError(true);
+ }
+ };
+
+ return (
+
+ );
+};
+
+export default Login;
diff --git a/pages/api/hello.js b/pages/api/hello.js
deleted file mode 100644
index df63de88fa..0000000000
--- a/pages/api/hello.js
+++ /dev/null
@@ -1,5 +0,0 @@
-// Next.js API route support: https://nextjs.org/docs/api-routes/introduction
-
-export default function handler(req, res) {
- res.status(200).json({ name: 'John Doe' })
-}
diff --git a/pages/api/login.js b/pages/api/login.js
new file mode 100644
index 0000000000..d5fef9b3be
--- /dev/null
+++ b/pages/api/login.js
@@ -0,0 +1,25 @@
+import cookie from "cookie"
+
+const handler = (req, res) => {
+ if (req.method === "POST") {
+ const { username, password } = req.body
+ if (
+ username === process.env.ADMIN_USERNAME &&
+ password === process.env.ADMIN_PASSWORD
+ ) {
+ res.setHeader(
+ "Set-Cookie",
+ cookie.serialize("token", process.env.TOKEN, {
+ maxAge: 60 * 60,
+ sameSite: "strict",
+ path: "/",
+ })
+ )
+ res.status(200).json("Successfull")
+ } else {
+ res.status(400).json("Wrong Credentials!")
+ }
+ }
+}
+
+export default handler
diff --git a/pages/api/orders/[id].js b/pages/api/orders/[id].js
new file mode 100644
index 0000000000..a178e028d4
--- /dev/null
+++ b/pages/api/orders/[id].js
@@ -0,0 +1,34 @@
+import dbConnect from "../../../util/mongo"
+import Order from "../../../models/Order"
+
+const handler = async (req, res) => {
+ const {
+ method,
+ query: { id },
+ } = req
+
+ await dbConnect()
+
+ if (method === "GET") {
+ try {
+ const order = await Order.findById(id)
+ res.status(200).json(order)
+ } catch (err) {
+ res.status(500).json(err)
+ }
+ }
+ if (method === "PUT") {
+ try {
+ const order = await Order.findByIdAndUpdate(id, req.body, {
+ new: true,
+ })
+ res.status(200).json(order)
+ } catch (err) {
+ res.status(500).json(err)
+ }
+ }
+ if (method === "DELETE") {
+ }
+}
+
+export default handler
diff --git a/pages/api/orders/index.js b/pages/api/orders/index.js
new file mode 100644
index 0000000000..7c5277f087
--- /dev/null
+++ b/pages/api/orders/index.js
@@ -0,0 +1,27 @@
+import dbConnect from "../../../util/mongo";
+import Order from "../../../models/Order";
+
+const handler = async (req, res) => {
+ const { method } = req;
+
+ await dbConnect();
+
+ if (method === "GET") {
+ try {
+ const orders = await Order.find();
+ res.status(200).json(orders);
+ } catch (err) {
+ res.status(500).json(err);
+ }
+ }
+ if (method === "POST") {
+ try {
+ const order = await Order.create(req.body);
+ res.status(201).json(order);
+ } catch (err) {
+ res.status(500).json(err);
+ }
+ }
+};
+
+export default handler;
diff --git a/pages/api/products/[id].js b/pages/api/products/[id].js
new file mode 100644
index 0000000000..3745667328
--- /dev/null
+++ b/pages/api/products/[id].js
@@ -0,0 +1,48 @@
+import dbConnect from "../../../util/mongo";
+import Product from "../../../models/Product";
+
+export default async function handler(req, res) {
+ const {
+ method,
+ query: { id },
+ cookies
+ } = req;
+ const token = cookies.token
+
+ dbConnect();
+
+ if (method === "GET") {
+ try {
+ const product = await Product.findById(id);
+ res.status(200).json(product);
+ } catch (err) {
+ res.status(500).json(err);
+ }
+ }
+
+ if (method === "PUT") {
+ if(!token || token !== process.env.token){
+ return res.status(401).json("Not authenticated!")
+ }
+ try {
+ const product = await Product.findByIdAndUpdate(id, req.body, {
+ new: true,
+ });
+ res.status(200).json(product);
+ } catch (err) {
+ res.status(500).json(err);
+ }
+ }
+
+ if (method === "DELETE") {
+ if(!token || token !== process.env.token){
+ return res.status(401).json("Not authenticated!")
+ }
+ try {
+ await Product.findByIdAndDelete(id);
+ res.status(200).json("The product has been deleted!");
+ } catch (err) {
+ res.status(500).json(err);
+ }
+ }
+}
diff --git a/pages/api/products/index.js b/pages/api/products/index.js
new file mode 100644
index 0000000000..f5d9f80fbd
--- /dev/null
+++ b/pages/api/products/index.js
@@ -0,0 +1,31 @@
+import dbConnect from "../../../util/mongo"
+import Product from "../../../models/Product"
+
+export default async function handler(req, res) {
+ const { method, cookies } = req
+
+ const token = cookies.token
+
+ dbConnect()
+
+ if (method === "GET") {
+ try {
+ const products = await Product.find()
+ res.status(200).json(products)
+ } catch (err) {
+ res.status(500).json(err)
+ }
+ }
+
+ if (method === "POST") {
+ if (!token || token !== process.env.token) {
+ return res.status(401).json("Not authenticated!")
+ }
+ try {
+ const product = await Product.create(req.body)
+ res.status(201).json(product)
+ } catch (err) {
+ res.status(500).json(err)
+ }
+ }
+}
diff --git a/pages/cart.jsx b/pages/cart.jsx
index 601fb37b15..5a54018236 100644
--- a/pages/cart.jsx
+++ b/pages/cart.jsx
@@ -1,96 +1,191 @@
-import styles from "../styles/Cart.module.css";
-import Image from "next/image";
+import styles from "../styles/Cart.module.css"
+import Image from "next/image"
+import { useDispatch, useSelector } from "react-redux"
+import { useEffect, useState } from "react"
+import {
+ PayPalScriptProvider,
+ PayPalButtons,
+ usePayPalScriptReducer,
+} from "@paypal/react-paypal-js"
+import axios from "axios"
+import { useRouter } from "next/router"
+import { reset } from "../redux/cartSlice"
+import OrderDetail from "../components/OrderDetail"
const Cart = () => {
+ const cart = useSelector((state) => state.cart)
+ const [open, setOpen] = useState(false)
+ const [cash, setCash] = useState(false)
+ const amount = cart.total
+ const currency = "USD"
+ const style = { layout: "vertical" }
+ const dispatch = useDispatch()
+ const router = useRouter()
+
+ const createOrder = async (data) => {
+ try {
+ const res = await axios.post("http://localhost:3000/api/orders", data)
+ if (res.status === 201) {
+ dispatch(reset())
+ router.push(`/orders/${res.data._id}`)
+ }
+ } catch (err) {
+ console.log(err)
+ }
+ }
+
+ // Custom component to wrap the PayPalButtons and handle currency changes
+ const ButtonWrapper = ({ currency, showSpinner }) => {
+ // usePayPalScriptReducer can be use only inside children of PayPalScriptProviders
+ // This is the main reason to wrap the PayPalButtons in a new component
+ const [{ options, isPending }, dispatch] = usePayPalScriptReducer()
+
+ useEffect(() => {
+ dispatch({
+ type: "resetOptions",
+ value: {
+ ...options,
+ currency: currency,
+ },
+ })
+ }, [currency, showSpinner])
+
+ return (
+ <>
+ {showSpinner && isPending &&
}
+
{
+ return actions.order
+ .create({
+ purchase_units: [
+ {
+ amount: {
+ currency_code: currency,
+ value: amount,
+ },
+ },
+ ],
+ })
+ .then((orderId) => {
+ // Your code here after create the order
+ return orderId
+ })
+ }}
+ onApprove={function (data, actions) {
+ return actions.order.capture().then(function (details) {
+ const shipping = details.purchase_units[0].shipping
+ createOrder({
+ customer: shipping.name.full_name,
+ address: shipping.address.address_line_1,
+ total: cart.total,
+ method: 1,
+ })
+ })
+ }}
+ />
+ >
+ )
+ }
+
return (
-
- Product |
- Name |
- Extras |
- Price |
- Quantity |
- Total |
-
-
-
-
-
-
- |
-
- CORALZO
- |
-
-
- Double ingredient, spicy sauce
-
- |
-
- $19.90
- |
-
- 2
- |
-
- $39.80
- |
-
-
-
-
-
-
- |
-
- CORALZO
- |
-
-
- Double ingredient, spicy sauce
-
- |
-
- $19.90
- |
-
- 2
- |
-
- $39.80
- |
-
+
+
+ Product |
+ Name |
+ Extras |
+ Price |
+ Quantity |
+ Total |
+
+
+
+ {cart.products.map((product) => (
+
+
+
+
+
+ |
+
+ {product.title}
+ |
+
+
+ {product.extras.map((extra) => (
+ {extra.text},
+ ))}
+
+ |
+
+ ${product.price}
+ |
+
+ {product.quantity}
+ |
+
+
+ ${product.price * product.quantity}
+
+ |
+
+ ))}
+
CART TOTAL
- Subtotal:$79.60
+ Subtotal:${cart.total}
Discount:$0.00
- Total:$79.60
+ Total:${cart.total}
-
+ {open ? (
+
+
+
+
+
+
+ ) : (
+
+ )}
+ {cash &&
}
- );
-};
+ )
+}
-export default Cart;
+export default Cart
diff --git a/pages/index.js b/pages/index.js
index 28632315a4..35eef87a4f 100644
--- a/pages/index.js
+++ b/pages/index.js
@@ -1,19 +1,43 @@
-import Head from "next/head";
-import Image from "next/image";
-import Featured from "../components/Featured";
-import PizzaList from "../components/PizzaList";
-import styles from "../styles/Home.module.css";
+import axios from "axios"
+import Head from "next/head"
+import { useState } from "react"
+import Add from "../components/Add"
+import AddButton from "../components/AddButton"
+import Featured from "../components/Featured"
+import PizzaList from "../components/PizzaList"
+import styles from "../styles/Home.module.css"
+
+export default function Home({ pizzaList }) {
+ const [close, setClose] = useState(true)
-export default function Home() {
return (
-
Pizza Restaurant in Newyork
+
Pizza Restaurant in New York
-
+
-
-
+
+ {
}
+
+ {!close &&
}
- );
+ )
+}
+
+export const getServerSideProps = async (ctx) => {
+ const myCookie = ctx.req?.cookies || ""
+ let admin = false
+
+ if (myCookie.token === process.env.TOKEN) {
+ admin = true
+ }
+
+ const res = await axios.get("http://localhost:3000/api/products")
+ return {
+ props: {
+ pizzaList: res.data,
+ admin,
+ },
+ }
}
diff --git a/pages/orders/[id].jsx b/pages/orders/[id].jsx
index 6064f4e5cc..c6befbdf76 100644
--- a/pages/orders/[id].jsx
+++ b/pages/orders/[id].jsx
@@ -1,14 +1,16 @@
-import styles from "../../styles/Order.module.css";
-import Image from "next/image";
+import axios from "axios"
+import Image from "next/image"
+import styles from "../../styles/Order.module.css"
-const Order = () => {
- const status = 0;
+const Order = ({ order }) => {
+ const status = order.status
const statusClass = (index) => {
- if (index - status < 1) return styles.done;
- if (index - status === 1) return styles.inProgress;
- if (index - status > 1) return styles.undone;
- };
+ if (index - status < 1) return styles.done
+ if (index - status === 1) return styles.inProgress
+ if (index - status > 1) return styles.undone
+ }
+
return (
@@ -22,16 +24,16 @@ const Order = () => {
- 129837819237
+ {order._id}
|
- John Doe
+ {order.customer}
|
- Elton st. 212-33 LA
+ {order.address}
|
- $79.80
+ ${order.total}
|
@@ -95,13 +97,13 @@ const Order = () => {
CART TOTAL
- Subtotal:$79.60
+ Subtotal:${order.total}
Discount:$0.00
- Total:$79.60
+ Total:${order.total}
- );
-};
+ )
+}
+
+export const getServerSideProps = async ({ params }) => {
+ const res = await axios.get(`http://localhost:3000/api/orders/${params.id}`)
+ return {
+ props: { order: res.data },
+ }
+}
-export default Order;
+export default Order
diff --git a/pages/product/[id].jsx b/pages/product/[id].jsx
index 18685322d1..b76d3b502e 100644
--- a/pages/product/[id].jsx
+++ b/pages/product/[id].jsx
@@ -1,16 +1,42 @@
-import styles from "../../styles/Product.module.css";
-import Image from "next/image";
-import { useState } from "react";
+import axios from "axios"
+import Image from "next/image"
+import { useState } from "react"
+import { useDispatch } from "react-redux"
+import { addProduct } from "../../redux/cartSlice"
+import styles from "../../styles/Product.module.css"
-const Product = () => {
- const [size, setSize] = useState(0);
- const pizza = {
- id: 1,
- img: "/img/pizza.png",
- name: "CAMPAGNOLA",
- price: [19.9, 23.9, 27.9],
- desc: "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Duis arcu purus, rhoncus fringilla vestibulum vel, dignissim vel ante. Nulla facilisi. Nullam a urna sit amet tellus pellentesque egestas in in ante.",
- };
+const Product = ({ pizza }) => {
+ const [price, setPrice] = useState(pizza.prices[0])
+ const [size, setSize] = useState(0)
+ const [quantity, setQuantity] = useState(1)
+ const [extras, setExtras] = useState([])
+ const dispatch = useDispatch()
+
+ const changePrice = (number) => {
+ setPrice(price + number)
+ }
+
+ const handleSize = (sizeIndex) => {
+ const difference = pizza.prices[sizeIndex] - pizza.prices[size]
+ setSize(sizeIndex)
+ changePrice(difference)
+ }
+
+ const handleChange = (e, option) => {
+ const checked = e.target.checked
+
+ if (checked) {
+ changePrice(option.price)
+ setExtras((prev) => [...prev, option])
+ } else {
+ changePrice(-option.price)
+ setExtras(extras.filter((extra) => extra._id !== option._id))
+ }
+ }
+
+ const handleClick = () => {
+ dispatch(addProduct({ ...pizza, extras, price, quantity }))
+ }
return (
@@ -20,70 +46,62 @@ const Product = () => {
-
{pizza.name}
-
${pizza.price[size]}
+
{pizza.title}
+
${price}
{pizza.desc}
Choose the size
-
setSize(0)}>
+
handleSize(0)}>
Small
-
setSize(1)}>
+
handleSize(1)}>
Medium
-
setSize(2)}>
+
handleSize(2)}>
Large
Choose additional ingredients
-
-
+ setQuantity(e.target.value)}
+ type="number"
+ defaultValue={1}
+ className={styles.quantity}
+ />
+
- );
-};
+ )
+}
+
+export const getServerSideProps = async ({ params }) => {
+ const res = await axios.get(`http://localhost:3000/api/products/${params.id}`)
+ return {
+ props: {
+ pizza: res.data,
+ },
+ }
+}
-export default Product;
+export default Product
diff --git a/public/fav-icon.png b/public/fav-icon.png
new file mode 100644
index 0000000000..cdb3a76c12
Binary files /dev/null and b/public/fav-icon.png differ
diff --git a/public/favicon.ico b/public/favicon.ico
index 718d6fea48..8e614dbdba 100644
Binary files a/public/favicon.ico and b/public/favicon.ico differ
diff --git a/public/img/featured1.png b/public/img/featured1.png
new file mode 100644
index 0000000000..1271263fb6
Binary files /dev/null and b/public/img/featured1.png differ
diff --git a/public/img/featured2.png b/public/img/featured2.png
new file mode 100644
index 0000000000..716e01ee92
Binary files /dev/null and b/public/img/featured2.png differ
diff --git a/public/img/featured3.png b/public/img/featured3.png
new file mode 100644
index 0000000000..17f5c794b6
Binary files /dev/null and b/public/img/featured3.png differ
diff --git a/public/img/logo-dwd-1.png b/public/img/logo-dwd-1.png
new file mode 100644
index 0000000000..c46d26f42b
Binary files /dev/null and b/public/img/logo-dwd-1.png differ
diff --git a/public/img/logo-dwd-2.png b/public/img/logo-dwd-2.png
new file mode 100644
index 0000000000..043b41cea5
Binary files /dev/null and b/public/img/logo-dwd-2.png differ
diff --git a/public/img/logo-dwd.png b/public/img/logo-dwd.png
new file mode 100644
index 0000000000..aeaa2c988f
Binary files /dev/null and b/public/img/logo-dwd.png differ
diff --git a/public/img/pizza-1.png b/public/img/pizza-1.png
new file mode 100644
index 0000000000..71c2708007
Binary files /dev/null and b/public/img/pizza-1.png differ
diff --git a/public/img/pizza-2.png b/public/img/pizza-2.png
new file mode 100644
index 0000000000..944f594f7c
Binary files /dev/null and b/public/img/pizza-2.png differ
diff --git a/public/img/pizza-3.png b/public/img/pizza-3.png
new file mode 100644
index 0000000000..6daf84657a
Binary files /dev/null and b/public/img/pizza-3.png differ
diff --git a/public/img/pizza-4.png b/public/img/pizza-4.png
new file mode 100644
index 0000000000..ef28565844
Binary files /dev/null and b/public/img/pizza-4.png differ
diff --git a/public/img/pizza-5.png b/public/img/pizza-5.png
new file mode 100644
index 0000000000..21ab898c96
Binary files /dev/null and b/public/img/pizza-5.png differ
diff --git a/public/img/pizza-6.png b/public/img/pizza-6.png
new file mode 100644
index 0000000000..624b1126a8
Binary files /dev/null and b/public/img/pizza-6.png differ
diff --git a/public/img/pizza-7.png b/public/img/pizza-7.png
new file mode 100644
index 0000000000..e842945353
Binary files /dev/null and b/public/img/pizza-7.png differ
diff --git a/public/img/pizza-8.png b/public/img/pizza-8.png
new file mode 100644
index 0000000000..1dec0da67e
Binary files /dev/null and b/public/img/pizza-8.png differ
diff --git a/redux/cartSlice.js b/redux/cartSlice.js
new file mode 100644
index 0000000000..d4dfaff5cd
--- /dev/null
+++ b/redux/cartSlice.js
@@ -0,0 +1,25 @@
+import { createSlice } from "@reduxjs/toolkit";
+
+const cartSlice = createSlice({
+ name: "cart",
+ initialState: {
+ products: [],
+ quantity: 0,
+ total: 0,
+ },
+ reducers: {
+ addProduct: (state, action) => {
+ state.products.push(action.payload);
+ state.quantity += 1;
+ state.total += action.payload.price * action.payload.quantity;
+ },
+ reset: (state) => {
+ state.products = [];
+ state.quantity = 0;
+ state.total = 0;
+ },
+ },
+});
+
+export const { addProduct, reset } = cartSlice.actions;
+export default cartSlice.reducer;
diff --git a/redux/store.js b/redux/store.js
new file mode 100644
index 0000000000..2152a2e138
--- /dev/null
+++ b/redux/store.js
@@ -0,0 +1,8 @@
+import { configureStore } from "@reduxjs/toolkit";
+import cartReducer from "./cartSlice";
+
+export default configureStore({
+ reducer: {
+ cart: cartReducer,
+ },
+ });
diff --git a/styles/Add.module.css b/styles/Add.module.css
new file mode 100644
index 0000000000..2642c1cf49
--- /dev/null
+++ b/styles/Add.module.css
@@ -0,0 +1,109 @@
+.mainAddButton {
+ padding: 10px;
+ margin: 20px;
+ background-color: #d1411e;
+ width: 150px;
+ border-radius: 10px;
+ color: white;
+ font-weight: 500;
+ text-align: center;
+ cursor: pointer;
+}
+
+.container {
+ width: 100vw;
+ height: 100vh;
+ background-color: rgba(245, 240, 240, 0.52);
+ position: fixed;
+ top: 0;
+ z-index: 999;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+}
+
+.wrapper {
+ width: 500px;
+ background-color: white;
+ padding: 10px 50px;
+ border-radius: 20px;
+ display: flex;
+ flex-direction: column;
+ justify-content: space-between;
+ position: relative;
+}
+
+.close {
+ width: 30px;
+ height: 30px;
+ background-color: black;
+ color: white;
+ border-radius: 50%;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ cursor: pointer;
+ position: absolute;
+ top: -10px;
+ right: -10px;
+}
+
+.item {
+ display: flex;
+ flex-direction: column;
+ margin-bottom: 10px;
+}
+
+.label {
+ margin-bottom: 5px;
+ font-size: 14px;
+ font-weight: 500;
+}
+
+.input {
+ border: none;
+ border-bottom: 1px solid gray;
+ outline: none;
+}
+
+.priceContainer {
+ display: flex;
+ justify-content: space-between;
+}
+
+.inputSm {
+ width: 25%;
+}
+
+.extra {
+ display: flex;
+ justify-content: space-between;
+}
+
+.extraItems {
+ margin: 10px 0px;
+ display: flex;
+ flex-wrap: wrap;
+}
+
+.extraItem {
+ padding: 5px;
+ font-size: 14px;
+ border: 1px solid tomato;
+ background-color: white;
+ color: tomato;
+ margin-right: 10px;
+ border-radius: 10px;
+ cursor: pointer;
+}
+
+.addButton {
+ width: 25%;
+ border: none;
+ background-color: teal;
+ color: white;
+ font-weight: 500;
+ cursor: pointer;
+ padding: 5px 0;
+ align-self: flex-end;
+}
diff --git a/styles/Admin.module.css b/styles/Admin.module.css
new file mode 100644
index 0000000000..499410e5af
--- /dev/null
+++ b/styles/Admin.module.css
@@ -0,0 +1,30 @@
+.container {
+ padding: 50px;
+ display: flex;
+}
+
+.item {
+ flex: 1;
+}
+
+.table {
+ width: 100%;
+ border-spacing: 20px;
+ text-align: left;
+}
+
+.button {
+ border: none;
+ color: white;
+ padding: 5px;
+ cursor: pointer;
+}
+
+.button:first-child {
+ background-color: teal;
+ margin-right: 10px;
+}
+
+.button:last-child {
+ background-color: crimson;
+}
diff --git a/styles/Login.module.css b/styles/Login.module.css
new file mode 100644
index 0000000000..016d2ca534
--- /dev/null
+++ b/styles/Login.module.css
@@ -0,0 +1,32 @@
+.container {
+ height: calc(100vh - 100px);
+ display: flex;
+ align-items: center;
+ justify-content: center;
+}
+
+.wrapper {
+ display: flex;
+ flex-direction: column;
+}
+
+.input {
+ height: 40px;
+ margin-bottom: 20px;
+ padding: 0px 10px;
+}
+
+.button {
+ height: 40px;
+ margin-bottom: 20px;
+ border: none;
+ background-color: teal;
+ color: white;
+ font-weight: 600;
+ cursor: pointer;
+}
+
+.error {
+ font-size: 13px;
+ color: red;
+}
diff --git a/styles/OrderDetail.module.css b/styles/OrderDetail.module.css
new file mode 100644
index 0000000000..042e83f2cc
--- /dev/null
+++ b/styles/OrderDetail.module.css
@@ -0,0 +1,53 @@
+.container {
+ width: 100%;
+ height: 100vh;
+ position: absolute;
+ top: 0;
+ left: 0;
+ display: flex;
+ z-index: 999;
+ align-items: center;
+ justify-content: center;
+ background-color: rgba(197, 197, 197, 0.568);
+}
+
+.wrapper {
+ width: 500px;
+ background-color: white;
+ border-radius: 20px;
+ padding: 50px;
+ display: flex;
+ flex-direction: column;
+ align-items: center;
+ justify-content: center;
+}
+
+.title {
+ font-weight: 300;
+}
+
+.item {
+ display: flex;
+ flex-direction: column;
+ width: 100%;
+ margin-bottom: 15px;
+}
+
+.label {
+ margin-bottom: 10px;
+}
+
+.input {
+ height: 40px;
+}
+
+.button {
+ border: none;
+ background-color: teal;
+ color: white;
+ padding: 10px 20px;
+ font-weight: 500;
+ font-size: 16px;
+ border-radius: 10px;
+ cursor: pointer;
+}
diff --git a/util/mongo.js b/util/mongo.js
new file mode 100644
index 0000000000..b00d4b76bb
--- /dev/null
+++ b/util/mongo.js
@@ -0,0 +1,40 @@
+import mongoose from 'mongoose'
+
+const MONGO_URL = process.env.MONGO_URL
+
+if (!MONGO_URL) {
+ throw new Error(
+ 'Please define the MONGO_URL environment variable inside .env.local'
+ )
+}
+
+/**
+ * Global is used here to maintain a cached connection across hot reloads
+ * in development. This prevents connections growing exponentially
+ * during API Route usage.
+ */
+let cached = global.mongoose
+
+if (!cached) {
+ cached = global.mongoose = { conn: null, promise: null }
+}
+
+async function dbConnect() {
+ if (cached.conn) {
+ return cached.conn
+ }
+
+ if (!cached.promise) {
+ const opts = {
+ bufferCommands: false,
+ }
+
+ cached.promise = mongoose.connect(MONGO_URL, opts).then((mongoose) => {
+ return mongoose
+ })
+ }
+ cached.conn = await cached.promise
+ return cached.conn
+}
+
+export default dbConnect
\ No newline at end of file
diff --git a/yarn.lock b/yarn.lock
index 3c9a646918..6aa93579cf 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -2,6 +2,734 @@
# yarn lockfile v1
+"@aws-crypto/ie11-detection@^3.0.0":
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/@aws-crypto/ie11-detection/-/ie11-detection-3.0.0.tgz#640ae66b4ec3395cee6a8e94ebcd9f80c24cd688"
+ integrity sha512-341lBBkiY1DfDNKai/wXM3aujNBkXR7tq1URPQDL9wi3AUbI80NR74uF1TXHMm7po1AcnFk8iu2S2IeU/+/A+Q==
+ dependencies:
+ tslib "^1.11.1"
+
+"@aws-crypto/sha256-browser@3.0.0":
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/@aws-crypto/sha256-browser/-/sha256-browser-3.0.0.tgz#05f160138ab893f1c6ba5be57cfd108f05827766"
+ integrity sha512-8VLmW2B+gjFbU5uMeqtQM6Nj0/F1bro80xQXCW6CQBWgosFWXTx77aeOF5CAIAmbOK64SdMBJdNr6J41yP5mvQ==
+ dependencies:
+ "@aws-crypto/ie11-detection" "^3.0.0"
+ "@aws-crypto/sha256-js" "^3.0.0"
+ "@aws-crypto/supports-web-crypto" "^3.0.0"
+ "@aws-crypto/util" "^3.0.0"
+ "@aws-sdk/types" "^3.222.0"
+ "@aws-sdk/util-locate-window" "^3.0.0"
+ "@aws-sdk/util-utf8-browser" "^3.0.0"
+ tslib "^1.11.1"
+
+"@aws-crypto/sha256-js@3.0.0", "@aws-crypto/sha256-js@^3.0.0":
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/@aws-crypto/sha256-js/-/sha256-js-3.0.0.tgz#f06b84d550d25521e60d2a0e2a90139341e007c2"
+ integrity sha512-PnNN7os0+yd1XvXAy23CFOmTbMaDxgxXtTKHybrJ39Y8kGzBATgBFibWJKH6BhytLI/Zyszs87xCOBNyBig6vQ==
+ dependencies:
+ "@aws-crypto/util" "^3.0.0"
+ "@aws-sdk/types" "^3.222.0"
+ tslib "^1.11.1"
+
+"@aws-crypto/supports-web-crypto@^3.0.0":
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/@aws-crypto/supports-web-crypto/-/supports-web-crypto-3.0.0.tgz#5d1bf825afa8072af2717c3e455f35cda0103ec2"
+ integrity sha512-06hBdMwUAb2WFTuGG73LSC0wfPu93xWwo5vL2et9eymgmu3Id5vFAHBbajVWiGhPO37qcsdCap/FqXvJGJWPIg==
+ dependencies:
+ tslib "^1.11.1"
+
+"@aws-crypto/util@^3.0.0":
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/@aws-crypto/util/-/util-3.0.0.tgz#1c7ca90c29293f0883468ad48117937f0fe5bfb0"
+ integrity sha512-2OJlpeJpCR48CC8r+uKVChzs9Iungj9wkZrl8Z041DWEWvyIHILYKCPNzJghKsivj+S3mLo6BVc7mBNzdxA46w==
+ dependencies:
+ "@aws-sdk/types" "^3.222.0"
+ "@aws-sdk/util-utf8-browser" "^3.0.0"
+ tslib "^1.11.1"
+
+"@aws-sdk/abort-controller@3.306.0":
+ version "3.306.0"
+ resolved "https://registry.yarnpkg.com/@aws-sdk/abort-controller/-/abort-controller-3.306.0.tgz#42f28c948bc3a1a950e534555365eaa65f6ff7c0"
+ integrity sha512-ewCvdUrMJMlnkNaqXdG7L2H6O7CDI036y6lkTU8gQqa2lCzZvqBkzz6R5NbWqb8TJPi69Z7lXEITgk2b0+pl6w==
+ dependencies:
+ "@aws-sdk/types" "3.306.0"
+ tslib "^2.5.0"
+
+"@aws-sdk/client-cognito-identity@3.309.0":
+ version "3.309.0"
+ resolved "https://registry.yarnpkg.com/@aws-sdk/client-cognito-identity/-/client-cognito-identity-3.309.0.tgz#3cd73dfb3e6e70e05002a618e4a7729625cf4247"
+ integrity sha512-6UMOK77QndamzxOC3x02fPNNpTSgwbNBPnjru4yX0vyF3XRLHyUsMnDzm/PVZs1JFlQUtaeBEqOruY8yuHAwGg==
+ dependencies:
+ "@aws-crypto/sha256-browser" "3.0.0"
+ "@aws-crypto/sha256-js" "3.0.0"
+ "@aws-sdk/client-sts" "3.309.0"
+ "@aws-sdk/config-resolver" "3.306.0"
+ "@aws-sdk/credential-provider-node" "3.309.0"
+ "@aws-sdk/fetch-http-handler" "3.306.0"
+ "@aws-sdk/hash-node" "3.306.0"
+ "@aws-sdk/invalid-dependency" "3.306.0"
+ "@aws-sdk/middleware-content-length" "3.306.0"
+ "@aws-sdk/middleware-endpoint" "3.306.0"
+ "@aws-sdk/middleware-host-header" "3.306.0"
+ "@aws-sdk/middleware-logger" "3.306.0"
+ "@aws-sdk/middleware-recursion-detection" "3.306.0"
+ "@aws-sdk/middleware-retry" "3.306.0"
+ "@aws-sdk/middleware-serde" "3.306.0"
+ "@aws-sdk/middleware-signing" "3.306.0"
+ "@aws-sdk/middleware-stack" "3.306.0"
+ "@aws-sdk/middleware-user-agent" "3.306.0"
+ "@aws-sdk/node-config-provider" "3.306.0"
+ "@aws-sdk/node-http-handler" "3.306.0"
+ "@aws-sdk/protocol-http" "3.306.0"
+ "@aws-sdk/smithy-client" "3.309.0"
+ "@aws-sdk/types" "3.306.0"
+ "@aws-sdk/url-parser" "3.306.0"
+ "@aws-sdk/util-base64" "3.303.0"
+ "@aws-sdk/util-body-length-browser" "3.303.0"
+ "@aws-sdk/util-body-length-node" "3.303.0"
+ "@aws-sdk/util-defaults-mode-browser" "3.309.0"
+ "@aws-sdk/util-defaults-mode-node" "3.309.0"
+ "@aws-sdk/util-endpoints" "3.306.0"
+ "@aws-sdk/util-retry" "3.306.0"
+ "@aws-sdk/util-user-agent-browser" "3.306.0"
+ "@aws-sdk/util-user-agent-node" "3.306.0"
+ "@aws-sdk/util-utf8" "3.303.0"
+ tslib "^2.5.0"
+
+"@aws-sdk/client-sso-oidc@3.309.0":
+ version "3.309.0"
+ resolved "https://registry.yarnpkg.com/@aws-sdk/client-sso-oidc/-/client-sso-oidc-3.309.0.tgz#2096613d5b846b0a6a20bcac5dad93f49bd26d29"
+ integrity sha512-5hQMibuKWxDJo6IN+4ah0gskjJa16R41PqkeAOwExthTTyNzgoVyP9wyhnETyntYlHIBrHEmHTwdG06YiAxm4A==
+ dependencies:
+ "@aws-crypto/sha256-browser" "3.0.0"
+ "@aws-crypto/sha256-js" "3.0.0"
+ "@aws-sdk/config-resolver" "3.306.0"
+ "@aws-sdk/fetch-http-handler" "3.306.0"
+ "@aws-sdk/hash-node" "3.306.0"
+ "@aws-sdk/invalid-dependency" "3.306.0"
+ "@aws-sdk/middleware-content-length" "3.306.0"
+ "@aws-sdk/middleware-endpoint" "3.306.0"
+ "@aws-sdk/middleware-host-header" "3.306.0"
+ "@aws-sdk/middleware-logger" "3.306.0"
+ "@aws-sdk/middleware-recursion-detection" "3.306.0"
+ "@aws-sdk/middleware-retry" "3.306.0"
+ "@aws-sdk/middleware-serde" "3.306.0"
+ "@aws-sdk/middleware-stack" "3.306.0"
+ "@aws-sdk/middleware-user-agent" "3.306.0"
+ "@aws-sdk/node-config-provider" "3.306.0"
+ "@aws-sdk/node-http-handler" "3.306.0"
+ "@aws-sdk/protocol-http" "3.306.0"
+ "@aws-sdk/smithy-client" "3.309.0"
+ "@aws-sdk/types" "3.306.0"
+ "@aws-sdk/url-parser" "3.306.0"
+ "@aws-sdk/util-base64" "3.303.0"
+ "@aws-sdk/util-body-length-browser" "3.303.0"
+ "@aws-sdk/util-body-length-node" "3.303.0"
+ "@aws-sdk/util-defaults-mode-browser" "3.309.0"
+ "@aws-sdk/util-defaults-mode-node" "3.309.0"
+ "@aws-sdk/util-endpoints" "3.306.0"
+ "@aws-sdk/util-retry" "3.306.0"
+ "@aws-sdk/util-user-agent-browser" "3.306.0"
+ "@aws-sdk/util-user-agent-node" "3.306.0"
+ "@aws-sdk/util-utf8" "3.303.0"
+ tslib "^2.5.0"
+
+"@aws-sdk/client-sso@3.309.0":
+ version "3.309.0"
+ resolved "https://registry.yarnpkg.com/@aws-sdk/client-sso/-/client-sso-3.309.0.tgz#6a718822a58835d4cd4b272a07b0a723b71a63f4"
+ integrity sha512-2Tr3AROBzZOy+BuANlmDrwgyX+Q2kb6SIlANg6b9mrIzlflC48hRH0ngEe4C5RT6RruKIP+6R0al6vAq8lCk6A==
+ dependencies:
+ "@aws-crypto/sha256-browser" "3.0.0"
+ "@aws-crypto/sha256-js" "3.0.0"
+ "@aws-sdk/config-resolver" "3.306.0"
+ "@aws-sdk/fetch-http-handler" "3.306.0"
+ "@aws-sdk/hash-node" "3.306.0"
+ "@aws-sdk/invalid-dependency" "3.306.0"
+ "@aws-sdk/middleware-content-length" "3.306.0"
+ "@aws-sdk/middleware-endpoint" "3.306.0"
+ "@aws-sdk/middleware-host-header" "3.306.0"
+ "@aws-sdk/middleware-logger" "3.306.0"
+ "@aws-sdk/middleware-recursion-detection" "3.306.0"
+ "@aws-sdk/middleware-retry" "3.306.0"
+ "@aws-sdk/middleware-serde" "3.306.0"
+ "@aws-sdk/middleware-stack" "3.306.0"
+ "@aws-sdk/middleware-user-agent" "3.306.0"
+ "@aws-sdk/node-config-provider" "3.306.0"
+ "@aws-sdk/node-http-handler" "3.306.0"
+ "@aws-sdk/protocol-http" "3.306.0"
+ "@aws-sdk/smithy-client" "3.309.0"
+ "@aws-sdk/types" "3.306.0"
+ "@aws-sdk/url-parser" "3.306.0"
+ "@aws-sdk/util-base64" "3.303.0"
+ "@aws-sdk/util-body-length-browser" "3.303.0"
+ "@aws-sdk/util-body-length-node" "3.303.0"
+ "@aws-sdk/util-defaults-mode-browser" "3.309.0"
+ "@aws-sdk/util-defaults-mode-node" "3.309.0"
+ "@aws-sdk/util-endpoints" "3.306.0"
+ "@aws-sdk/util-retry" "3.306.0"
+ "@aws-sdk/util-user-agent-browser" "3.306.0"
+ "@aws-sdk/util-user-agent-node" "3.306.0"
+ "@aws-sdk/util-utf8" "3.303.0"
+ tslib "^2.5.0"
+
+"@aws-sdk/client-sts@3.309.0":
+ version "3.309.0"
+ resolved "https://registry.yarnpkg.com/@aws-sdk/client-sts/-/client-sts-3.309.0.tgz#f6da8d7048ff0e4d6adda35d5355593e5a221777"
+ integrity sha512-rBVm50ft5o1FLaCNjSFY4c/lI7qPG5MMhOr4sdvEUaU1Mkniyd6M+3Pch9S3a5NtF0Kfzw9dWQpjAL+nqJaITQ==
+ dependencies:
+ "@aws-crypto/sha256-browser" "3.0.0"
+ "@aws-crypto/sha256-js" "3.0.0"
+ "@aws-sdk/config-resolver" "3.306.0"
+ "@aws-sdk/credential-provider-node" "3.309.0"
+ "@aws-sdk/fetch-http-handler" "3.306.0"
+ "@aws-sdk/hash-node" "3.306.0"
+ "@aws-sdk/invalid-dependency" "3.306.0"
+ "@aws-sdk/middleware-content-length" "3.306.0"
+ "@aws-sdk/middleware-endpoint" "3.306.0"
+ "@aws-sdk/middleware-host-header" "3.306.0"
+ "@aws-sdk/middleware-logger" "3.306.0"
+ "@aws-sdk/middleware-recursion-detection" "3.306.0"
+ "@aws-sdk/middleware-retry" "3.306.0"
+ "@aws-sdk/middleware-sdk-sts" "3.306.0"
+ "@aws-sdk/middleware-serde" "3.306.0"
+ "@aws-sdk/middleware-signing" "3.306.0"
+ "@aws-sdk/middleware-stack" "3.306.0"
+ "@aws-sdk/middleware-user-agent" "3.306.0"
+ "@aws-sdk/node-config-provider" "3.306.0"
+ "@aws-sdk/node-http-handler" "3.306.0"
+ "@aws-sdk/protocol-http" "3.306.0"
+ "@aws-sdk/smithy-client" "3.309.0"
+ "@aws-sdk/types" "3.306.0"
+ "@aws-sdk/url-parser" "3.306.0"
+ "@aws-sdk/util-base64" "3.303.0"
+ "@aws-sdk/util-body-length-browser" "3.303.0"
+ "@aws-sdk/util-body-length-node" "3.303.0"
+ "@aws-sdk/util-defaults-mode-browser" "3.309.0"
+ "@aws-sdk/util-defaults-mode-node" "3.309.0"
+ "@aws-sdk/util-endpoints" "3.306.0"
+ "@aws-sdk/util-retry" "3.306.0"
+ "@aws-sdk/util-user-agent-browser" "3.306.0"
+ "@aws-sdk/util-user-agent-node" "3.306.0"
+ "@aws-sdk/util-utf8" "3.303.0"
+ fast-xml-parser "4.1.2"
+ tslib "^2.5.0"
+
+"@aws-sdk/config-resolver@3.306.0":
+ version "3.306.0"
+ resolved "https://registry.yarnpkg.com/@aws-sdk/config-resolver/-/config-resolver-3.306.0.tgz#e04d9ccd2a4ca2e189f164cf3d4b2ebc5658ca90"
+ integrity sha512-kpqHu6LvNMYxullm+tLCsY6KQ2mZUxZTdyWJKTYLZCTxj4HcGJxf4Jxj9dwFAZVl/clcVPGWcHJaQJjyjwzBzw==
+ dependencies:
+ "@aws-sdk/types" "3.306.0"
+ "@aws-sdk/util-config-provider" "3.295.0"
+ "@aws-sdk/util-middleware" "3.306.0"
+ tslib "^2.5.0"
+
+"@aws-sdk/credential-provider-cognito-identity@3.309.0":
+ version "3.309.0"
+ resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-cognito-identity/-/credential-provider-cognito-identity-3.309.0.tgz#09272367e8b193f5952d9b7db630ed96f54c47e0"
+ integrity sha512-alpBaKa3sTb1bYQGqnLAqZVbFh5JldwQg+pIuXPt8CKwtpP00heeDPQ60e+9VYk5vKPoNYIbiDy7WmgOkLFMeg==
+ dependencies:
+ "@aws-sdk/client-cognito-identity" "3.309.0"
+ "@aws-sdk/property-provider" "3.306.0"
+ "@aws-sdk/types" "3.306.0"
+ tslib "^2.5.0"
+
+"@aws-sdk/credential-provider-env@3.306.0":
+ version "3.306.0"
+ resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-env/-/credential-provider-env-3.306.0.tgz#38289a48630dde367b8180e17f73f9618534d5cc"
+ integrity sha512-DTH+aMvMu+LAoWW+yfPkWzFXt/CPNFQ7+/4xiMnc7FWf+tjt+HZIrPECAV2rBVppNCkh7PC+xDSN61PFvBYOsw==
+ dependencies:
+ "@aws-sdk/property-provider" "3.306.0"
+ "@aws-sdk/types" "3.306.0"
+ tslib "^2.5.0"
+
+"@aws-sdk/credential-provider-imds@3.306.0":
+ version "3.306.0"
+ resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-imds/-/credential-provider-imds-3.306.0.tgz#dd089ddb8c8199492137072b37abb1c1f1cb4c95"
+ integrity sha512-WdrNhq2MwvjZk2I8Of+bZ/qWHG2hREQpwlBiG3tMeEkuywx7M1x3Rt0eHgiR1sTcm05kxNn0rB4OeWOeek37cA==
+ dependencies:
+ "@aws-sdk/node-config-provider" "3.306.0"
+ "@aws-sdk/property-provider" "3.306.0"
+ "@aws-sdk/types" "3.306.0"
+ "@aws-sdk/url-parser" "3.306.0"
+ tslib "^2.5.0"
+
+"@aws-sdk/credential-provider-ini@3.309.0":
+ version "3.309.0"
+ resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-ini/-/credential-provider-ini-3.309.0.tgz#5dbd749e2cb6d2948a20137b69d47469fb6a1dfa"
+ integrity sha512-7xAqfbuvEdQdz2YcS5OPWH6uv09pMEW6lvmEwM8tf3gn/c3mxFm0/geFeO3+hnkIjByPM02PW7qQJXmPu1l7AA==
+ dependencies:
+ "@aws-sdk/credential-provider-env" "3.306.0"
+ "@aws-sdk/credential-provider-imds" "3.306.0"
+ "@aws-sdk/credential-provider-process" "3.306.0"
+ "@aws-sdk/credential-provider-sso" "3.309.0"
+ "@aws-sdk/credential-provider-web-identity" "3.306.0"
+ "@aws-sdk/property-provider" "3.306.0"
+ "@aws-sdk/shared-ini-file-loader" "3.306.0"
+ "@aws-sdk/types" "3.306.0"
+ tslib "^2.5.0"
+
+"@aws-sdk/credential-provider-node@3.309.0":
+ version "3.309.0"
+ resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-node/-/credential-provider-node-3.309.0.tgz#71aeca090ef0d6809ad72466c37024ecfa624ba4"
+ integrity sha512-rgf53RH9mcATr+5rRGGqRmoOEceX+XSbQvGM1QRHxROJJiYsZWdBQu9w+UuKcQF03qLMfi4G+6iNHect5TVs2Q==
+ dependencies:
+ "@aws-sdk/credential-provider-env" "3.306.0"
+ "@aws-sdk/credential-provider-imds" "3.306.0"
+ "@aws-sdk/credential-provider-ini" "3.309.0"
+ "@aws-sdk/credential-provider-process" "3.306.0"
+ "@aws-sdk/credential-provider-sso" "3.309.0"
+ "@aws-sdk/credential-provider-web-identity" "3.306.0"
+ "@aws-sdk/property-provider" "3.306.0"
+ "@aws-sdk/shared-ini-file-loader" "3.306.0"
+ "@aws-sdk/types" "3.306.0"
+ tslib "^2.5.0"
+
+"@aws-sdk/credential-provider-process@3.306.0":
+ version "3.306.0"
+ resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-process/-/credential-provider-process-3.306.0.tgz#451d1b93d9c0ac6b5b17a5e4aea355f9eb88e7f5"
+ integrity sha512-2RezGskHqJeHtGbK7CqhGNAoqXgQJb7FfPFqwUQ9oVDZS8f145jVwajjHcc7Qn3IwGoqylMF3uXIljUv89uDzA==
+ dependencies:
+ "@aws-sdk/property-provider" "3.306.0"
+ "@aws-sdk/shared-ini-file-loader" "3.306.0"
+ "@aws-sdk/types" "3.306.0"
+ tslib "^2.5.0"
+
+"@aws-sdk/credential-provider-sso@3.309.0":
+ version "3.309.0"
+ resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-sso/-/credential-provider-sso-3.309.0.tgz#503f909bc288f7cea663fe9392987538f4549854"
+ integrity sha512-uMphs47O2S9NK7I5CsDttp88X7b/JktGOrW8RTLRw1QURQ8v0uP+MLHFogRtWi4E7+zo86Equ0njlpYlFvrpSA==
+ dependencies:
+ "@aws-sdk/client-sso" "3.309.0"
+ "@aws-sdk/property-provider" "3.306.0"
+ "@aws-sdk/shared-ini-file-loader" "3.306.0"
+ "@aws-sdk/token-providers" "3.309.0"
+ "@aws-sdk/types" "3.306.0"
+ tslib "^2.5.0"
+
+"@aws-sdk/credential-provider-web-identity@3.306.0":
+ version "3.306.0"
+ resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-web-identity/-/credential-provider-web-identity-3.306.0.tgz#9fe7f067315699f2c3566bfdaad8d5a605d2cbd9"
+ integrity sha512-MOQGQaOtdo4zLQZ1bRjD2n1PUzfNty+sKe+1wlm5bIqTN93UX3S8f0QznucZr7uJxI4Z14ZLwuYeAUV4Tgchlw==
+ dependencies:
+ "@aws-sdk/property-provider" "3.306.0"
+ "@aws-sdk/types" "3.306.0"
+ tslib "^2.5.0"
+
+"@aws-sdk/credential-providers@^3.186.0":
+ version "3.309.0"
+ resolved "https://registry.yarnpkg.com/@aws-sdk/credential-providers/-/credential-providers-3.309.0.tgz#dcc8a0568cb0328d3b487a8e67d35ec89776804d"
+ integrity sha512-hNb1Qh494JAKk0WPkdd09RoXllwnOctTFfBNHZPeG1zS/hrEiKO5M/EiHstA1DolI3GQTwnxqRs29L1nMbFLWQ==
+ dependencies:
+ "@aws-sdk/client-cognito-identity" "3.309.0"
+ "@aws-sdk/client-sso" "3.309.0"
+ "@aws-sdk/client-sts" "3.309.0"
+ "@aws-sdk/credential-provider-cognito-identity" "3.309.0"
+ "@aws-sdk/credential-provider-env" "3.306.0"
+ "@aws-sdk/credential-provider-imds" "3.306.0"
+ "@aws-sdk/credential-provider-ini" "3.309.0"
+ "@aws-sdk/credential-provider-node" "3.309.0"
+ "@aws-sdk/credential-provider-process" "3.306.0"
+ "@aws-sdk/credential-provider-sso" "3.309.0"
+ "@aws-sdk/credential-provider-web-identity" "3.306.0"
+ "@aws-sdk/property-provider" "3.306.0"
+ "@aws-sdk/types" "3.306.0"
+ tslib "^2.5.0"
+
+"@aws-sdk/fetch-http-handler@3.306.0":
+ version "3.306.0"
+ resolved "https://registry.yarnpkg.com/@aws-sdk/fetch-http-handler/-/fetch-http-handler-3.306.0.tgz#115052a512d0208b55d22ddd07fa717388e6f860"
+ integrity sha512-T8OODOnPpDqkXS+XSMIkd6hf90h833JLN93wq3ibbyD/WvGveufFFHsbsNyccE9+CSv/BjEuN5QbHqTKTp3BlA==
+ dependencies:
+ "@aws-sdk/protocol-http" "3.306.0"
+ "@aws-sdk/querystring-builder" "3.306.0"
+ "@aws-sdk/types" "3.306.0"
+ "@aws-sdk/util-base64" "3.303.0"
+ tslib "^2.5.0"
+
+"@aws-sdk/hash-node@3.306.0":
+ version "3.306.0"
+ resolved "https://registry.yarnpkg.com/@aws-sdk/hash-node/-/hash-node-3.306.0.tgz#e18faab04694002ed32ea25ee7b40fd7af2ac9be"
+ integrity sha512-EcSLd6gKoDEEBPZqEv+Ky9gIyefwyyrAJGILGKoYBmcOIY7Y0xKId0hxCa9/1xvWTaVC1u+rA06DGgksZOa78w==
+ dependencies:
+ "@aws-sdk/types" "3.306.0"
+ "@aws-sdk/util-buffer-from" "3.303.0"
+ "@aws-sdk/util-utf8" "3.303.0"
+ tslib "^2.5.0"
+
+"@aws-sdk/invalid-dependency@3.306.0":
+ version "3.306.0"
+ resolved "https://registry.yarnpkg.com/@aws-sdk/invalid-dependency/-/invalid-dependency-3.306.0.tgz#3939550e4d3f3a21ab4e96d97a7681c557258751"
+ integrity sha512-9Mkcr+qG7QR4R5bJcA8bBNd8E2x6WaZStsQ3QeFbdQr3V3Tunvra/KlCFsEL55GgU8BZt5isOaHqq7uxs5ILtQ==
+ dependencies:
+ "@aws-sdk/types" "3.306.0"
+ tslib "^2.5.0"
+
+"@aws-sdk/is-array-buffer@3.303.0":
+ version "3.303.0"
+ resolved "https://registry.yarnpkg.com/@aws-sdk/is-array-buffer/-/is-array-buffer-3.303.0.tgz#8cc85c805e679ad8468e5551fddb6ed92fc14548"
+ integrity sha512-IitBTr+pou7v5BrYLFH/SbIf3g1LIgMhcI3bDXBq2FjzmDftj4bW8BOmg05b9YKf2TrrggvJ4yk/jH+yYFXoJQ==
+ dependencies:
+ tslib "^2.5.0"
+
+"@aws-sdk/middleware-content-length@3.306.0":
+ version "3.306.0"
+ resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-content-length/-/middleware-content-length-3.306.0.tgz#5ab51d76d4e46122fc618d7af505a113f984f0ad"
+ integrity sha512-JbONf2Ms+/DVRcpFNsKGdOQU94Js56KV+AhlPJmCwLxfyWvQjTt0KxFC1Dd+cjeNEXUduvBarrehgsqFlWnoHQ==
+ dependencies:
+ "@aws-sdk/protocol-http" "3.306.0"
+ "@aws-sdk/types" "3.306.0"
+ tslib "^2.5.0"
+
+"@aws-sdk/middleware-endpoint@3.306.0":
+ version "3.306.0"
+ resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-endpoint/-/middleware-endpoint-3.306.0.tgz#26e90e6260b0f0793fd05f4fb87a2fd68f6119a6"
+ integrity sha512-i3QRiwgkcsuVN55O7l8I/QGwCypGRZXdYkPjU56LI2w2oiZ82f/nVMNXVc+ZFm2YH7WbCE+5jguw2J7HXdOlyQ==
+ dependencies:
+ "@aws-sdk/middleware-serde" "3.306.0"
+ "@aws-sdk/types" "3.306.0"
+ "@aws-sdk/url-parser" "3.306.0"
+ "@aws-sdk/util-middleware" "3.306.0"
+ tslib "^2.5.0"
+
+"@aws-sdk/middleware-host-header@3.306.0":
+ version "3.306.0"
+ resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-host-header/-/middleware-host-header-3.306.0.tgz#69d26fb8a6cdc939bbe1b1956a2fb6831b2b8f70"
+ integrity sha512-mHDHK9E+c7HwMlrCJ+VFSB6tkq8oJVkYEHCvPkdrnzN/g9P/d/UhPIeGapZXMbAIZEaLpEGqs536mYzeRKZG8A==
+ dependencies:
+ "@aws-sdk/protocol-http" "3.306.0"
+ "@aws-sdk/types" "3.306.0"
+ tslib "^2.5.0"
+
+"@aws-sdk/middleware-logger@3.306.0":
+ version "3.306.0"
+ resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-logger/-/middleware-logger-3.306.0.tgz#9a43c7b213c2ffe0b5382cef6e51aacfa64a965e"
+ integrity sha512-1FRHp/QB0Lb+CgP+c9CYW6BZh+q+5pnuOKo/Rd6hjYiM+kT1G/cWdXnMJQBR4rbTCTixbqCnObNJ1EyP/ofQhQ==
+ dependencies:
+ "@aws-sdk/types" "3.306.0"
+ tslib "^2.5.0"
+
+"@aws-sdk/middleware-recursion-detection@3.306.0":
+ version "3.306.0"
+ resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-recursion-detection/-/middleware-recursion-detection-3.306.0.tgz#2a12e46f9dd1acba57f1a1219550e50f94ea9f5d"
+ integrity sha512-Hpj42ZLmwCy/CtVxi57NTeOEPoUJlivF3VIgowZ9JhaF61cakVKyrJ+f3jwXciDUtuYrdKm5Wf6prW6apWo0YA==
+ dependencies:
+ "@aws-sdk/protocol-http" "3.306.0"
+ "@aws-sdk/types" "3.306.0"
+ tslib "^2.5.0"
+
+"@aws-sdk/middleware-retry@3.306.0":
+ version "3.306.0"
+ resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-retry/-/middleware-retry-3.306.0.tgz#577502e3b510465c3fc78206462ec934fd64f732"
+ integrity sha512-eMyfr/aeurXXDz4x+WVrvLI8fVDP6klJOjziBEWZ/MUNP/hTFhkiQsMVbvT6O4Pspp7+FgCSdcUPG6Os2gK+CQ==
+ dependencies:
+ "@aws-sdk/protocol-http" "3.306.0"
+ "@aws-sdk/service-error-classification" "3.306.0"
+ "@aws-sdk/types" "3.306.0"
+ "@aws-sdk/util-middleware" "3.306.0"
+ "@aws-sdk/util-retry" "3.306.0"
+ tslib "^2.5.0"
+ uuid "^8.3.2"
+
+"@aws-sdk/middleware-sdk-sts@3.306.0":
+ version "3.306.0"
+ resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-sdk-sts/-/middleware-sdk-sts-3.306.0.tgz#6624b9c2ac6280f8c6c8717a34a7740129b3bcd2"
+ integrity sha512-2rSAR3nc5faYuEnh1KxQMCMCkEkJyaDfA3zwWLqZ+/TBCH0PlPkBv+Z9yXmteEki0vI5Hr+e+atTutJZoyG13g==
+ dependencies:
+ "@aws-sdk/middleware-signing" "3.306.0"
+ "@aws-sdk/types" "3.306.0"
+ tslib "^2.5.0"
+
+"@aws-sdk/middleware-serde@3.306.0":
+ version "3.306.0"
+ resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-serde/-/middleware-serde-3.306.0.tgz#97695b07496e1fef68fa50959b3919cf1d0d261e"
+ integrity sha512-M3gyPLPduZXMvdgt4XEpVO+3t0ZVPdgeQQwG6JnXv0dgyUizshYs4lrVOAb1KwF6StsmkrAgSN+I273elLiKjA==
+ dependencies:
+ "@aws-sdk/types" "3.306.0"
+ tslib "^2.5.0"
+
+"@aws-sdk/middleware-signing@3.306.0":
+ version "3.306.0"
+ resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-signing/-/middleware-signing-3.306.0.tgz#0e250f33effedd81e02a0fef14b00fc416226a66"
+ integrity sha512-JhpSriN4xa4a/p5gAPL0OWFKJF4eWYU3K+LLlXBNGMbxg/qNL4skgT4dMFe3ii9EW8kI+r6tpvSgC+lP7/Tyng==
+ dependencies:
+ "@aws-sdk/property-provider" "3.306.0"
+ "@aws-sdk/protocol-http" "3.306.0"
+ "@aws-sdk/signature-v4" "3.306.0"
+ "@aws-sdk/types" "3.306.0"
+ "@aws-sdk/util-middleware" "3.306.0"
+ tslib "^2.5.0"
+
+"@aws-sdk/middleware-stack@3.306.0":
+ version "3.306.0"
+ resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-stack/-/middleware-stack-3.306.0.tgz#3f145b39a233571785607874a021af10bf54a73a"
+ integrity sha512-G//a6MVSxyFVpOMZ+dzT3+w7XblOd2tRJ5g+/okjn3pNBLbo5o9Hu33K/bz0SQjT/m5mU2F9m0wcdCPYbRPysg==
+ dependencies:
+ tslib "^2.5.0"
+
+"@aws-sdk/middleware-user-agent@3.306.0":
+ version "3.306.0"
+ resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-user-agent/-/middleware-user-agent-3.306.0.tgz#88638d30a613bb69b26af54c7989a299f9c0f8de"
+ integrity sha512-tP6I+Lbs68muPfdMA6Rfc+8fYo49nEn9A3RMiOU2COClWsmiZatpbK9UYlqIOxeGB/s2jI7hXmQq6tT2LStLSg==
+ dependencies:
+ "@aws-sdk/protocol-http" "3.306.0"
+ "@aws-sdk/types" "3.306.0"
+ "@aws-sdk/util-endpoints" "3.306.0"
+ tslib "^2.5.0"
+
+"@aws-sdk/node-config-provider@3.306.0":
+ version "3.306.0"
+ resolved "https://registry.yarnpkg.com/@aws-sdk/node-config-provider/-/node-config-provider-3.306.0.tgz#9fed0bef4e8446350ca2dd3ec7571759d8ce2cd8"
+ integrity sha512-+m+ALxNx5E1zLPPijO1pAbT5tnofLzZFWlnSYBEiOIwzaRU44rLYDqAhgXJkMMbOECkffDrv6ym0oWJIwJI+DA==
+ dependencies:
+ "@aws-sdk/property-provider" "3.306.0"
+ "@aws-sdk/shared-ini-file-loader" "3.306.0"
+ "@aws-sdk/types" "3.306.0"
+ tslib "^2.5.0"
+
+"@aws-sdk/node-http-handler@3.306.0":
+ version "3.306.0"
+ resolved "https://registry.yarnpkg.com/@aws-sdk/node-http-handler/-/node-http-handler-3.306.0.tgz#b8505ece999812b6ce596e1ae93eef854b05935d"
+ integrity sha512-qvNSIVdGf0pnWEXsAulIqXk7LML25Zc1yxbujxoAj8oX5y+mDhzQdHKrMgc0FuI4RKoEd9px4DYoUbmTWrrxwA==
+ dependencies:
+ "@aws-sdk/abort-controller" "3.306.0"
+ "@aws-sdk/protocol-http" "3.306.0"
+ "@aws-sdk/querystring-builder" "3.306.0"
+ "@aws-sdk/types" "3.306.0"
+ tslib "^2.5.0"
+
+"@aws-sdk/property-provider@3.306.0":
+ version "3.306.0"
+ resolved "https://registry.yarnpkg.com/@aws-sdk/property-provider/-/property-provider-3.306.0.tgz#692d2a444ae38e2086700af39512c828f921fdab"
+ integrity sha512-37PnbjpANjHys0Y+DVmKUz1JbSGZ/mAndZeplTUsFDUtbNwJRw/fDyWUvGC82JWB4gNSP5muWscFvetZnK2l8A==
+ dependencies:
+ "@aws-sdk/types" "3.306.0"
+ tslib "^2.5.0"
+
+"@aws-sdk/protocol-http@3.306.0":
+ version "3.306.0"
+ resolved "https://registry.yarnpkg.com/@aws-sdk/protocol-http/-/protocol-http-3.306.0.tgz#31129dc06c53df69721f90e09315a510ad5fd58c"
+ integrity sha512-6Z8bqB8Ydz/qG7+lJzjwsjIca2w2zp4nZ2HjxMoUm0NBbVXGDx7H9qy9eOUqEiCbdXbsfK2BmVQreLhFLt056Q==
+ dependencies:
+ "@aws-sdk/types" "3.306.0"
+ tslib "^2.5.0"
+
+"@aws-sdk/querystring-builder@3.306.0":
+ version "3.306.0"
+ resolved "https://registry.yarnpkg.com/@aws-sdk/querystring-builder/-/querystring-builder-3.306.0.tgz#f9fa84d79fc6358d42215172e9c3c85dd1925528"
+ integrity sha512-kvz6fLwE4KojTxbphuo9JPwKKuhau2mmSurnqhtf77t9+0cOh2uzyYhIUtOFewpLj+qGoh4b2EODlJqczc7IKg==
+ dependencies:
+ "@aws-sdk/types" "3.306.0"
+ "@aws-sdk/util-uri-escape" "3.303.0"
+ tslib "^2.5.0"
+
+"@aws-sdk/querystring-parser@3.306.0":
+ version "3.306.0"
+ resolved "https://registry.yarnpkg.com/@aws-sdk/querystring-parser/-/querystring-parser-3.306.0.tgz#87f96a1e008b08378910f94618e170a3f9257bf9"
+ integrity sha512-YjOdLcyS/8sNkFPgnxyUx+cM/P2XFGCA2WjQ0e9AXX8xFFkmnY6U5w2EknQ5zyvKy+R/KAV0KAMJBUB+ofjg0A==
+ dependencies:
+ "@aws-sdk/types" "3.306.0"
+ tslib "^2.5.0"
+
+"@aws-sdk/service-error-classification@3.306.0":
+ version "3.306.0"
+ resolved "https://registry.yarnpkg.com/@aws-sdk/service-error-classification/-/service-error-classification-3.306.0.tgz#47889417d26ea99f0f229f5ca5bc42ac95c07976"
+ integrity sha512-lmXIVHWU5J60GmmTgyj79kupWYg5ntyNrUPt1P9FYTsXz+tdk4YYH7/2IxZ1XjBr4jEsN56gfSI0cfT07ztQJA==
+
+"@aws-sdk/shared-ini-file-loader@3.306.0":
+ version "3.306.0"
+ resolved "https://registry.yarnpkg.com/@aws-sdk/shared-ini-file-loader/-/shared-ini-file-loader-3.306.0.tgz#36bb962d2f7a3c13d653318e2f5e36bd7e5307af"
+ integrity sha512-mDmBRN+Y0+EBD5megId97UIJGV/rmRsAds22qy0mmVdD3X7qlxn974btXVgfZyda6qw/pX6hgi8X99Qj6Wjb0w==
+ dependencies:
+ "@aws-sdk/types" "3.306.0"
+ tslib "^2.5.0"
+
+"@aws-sdk/signature-v4@3.306.0":
+ version "3.306.0"
+ resolved "https://registry.yarnpkg.com/@aws-sdk/signature-v4/-/signature-v4-3.306.0.tgz#a32079435099232cdc88b1bf9ed0918a385ae39e"
+ integrity sha512-yoQTo6wLirKHg34Zhm8tKmfEaK8fOn+psVdMtRs2vGq3uzKLb+YW5zywnujoVwBvygQTWxiDMwRxDduWAisccA==
+ dependencies:
+ "@aws-sdk/is-array-buffer" "3.303.0"
+ "@aws-sdk/types" "3.306.0"
+ "@aws-sdk/util-hex-encoding" "3.295.0"
+ "@aws-sdk/util-middleware" "3.306.0"
+ "@aws-sdk/util-uri-escape" "3.303.0"
+ "@aws-sdk/util-utf8" "3.303.0"
+ tslib "^2.5.0"
+
+"@aws-sdk/smithy-client@3.309.0":
+ version "3.309.0"
+ resolved "https://registry.yarnpkg.com/@aws-sdk/smithy-client/-/smithy-client-3.309.0.tgz#ffb9125910a44b06c4ca0e292e8b43424a5327d6"
+ integrity sha512-2+LJD8/J9yoYmfjLZuMTI/IF8qFMMclWdDJaalj4Rzzd7qBWDS3Q23UxpZi9VR155nqpgr/R+TFZMgze1EhRHg==
+ dependencies:
+ "@aws-sdk/middleware-stack" "3.306.0"
+ "@aws-sdk/types" "3.306.0"
+ tslib "^2.5.0"
+
+"@aws-sdk/token-providers@3.309.0":
+ version "3.309.0"
+ resolved "https://registry.yarnpkg.com/@aws-sdk/token-providers/-/token-providers-3.309.0.tgz#767cd9461a08e762ddb20b62cacb8ebbe81e297e"
+ integrity sha512-rB79nQArhVT3l8UglZyinZVm13hFRF4xqzrmSLNknxdlMLamrON/94H7S6lFLywdTags2SUdAxQ/LlStlFf78A==
+ dependencies:
+ "@aws-sdk/client-sso-oidc" "3.309.0"
+ "@aws-sdk/property-provider" "3.306.0"
+ "@aws-sdk/shared-ini-file-loader" "3.306.0"
+ "@aws-sdk/types" "3.306.0"
+ tslib "^2.5.0"
+
+"@aws-sdk/types@3.306.0", "@aws-sdk/types@^3.222.0":
+ version "3.306.0"
+ resolved "https://registry.yarnpkg.com/@aws-sdk/types/-/types-3.306.0.tgz#076aa94a1d711311c14bab10b251752506a21487"
+ integrity sha512-RnyknWWpQcRmNH7AsNr89sdhOoltCU/4YEwBMw34Eh+/36l7HfA5PdEKbsOkO7MO4+2g5qmmm/AHcnHRvymApg==
+ dependencies:
+ tslib "^2.5.0"
+
+"@aws-sdk/url-parser@3.306.0":
+ version "3.306.0"
+ resolved "https://registry.yarnpkg.com/@aws-sdk/url-parser/-/url-parser-3.306.0.tgz#7d6b51f70874bbeb18208d4d9b6f931a98b81c03"
+ integrity sha512-mhyOjtycZgxKYo2CoDhDQONuRd5TLfEwmyGWVgFrfubF0LejQ3rkBRLC5zT9TBZ8RJHNlqU2oGdsZCy3JV6Rlw==
+ dependencies:
+ "@aws-sdk/querystring-parser" "3.306.0"
+ "@aws-sdk/types" "3.306.0"
+ tslib "^2.5.0"
+
+"@aws-sdk/util-base64@3.303.0":
+ version "3.303.0"
+ resolved "https://registry.yarnpkg.com/@aws-sdk/util-base64/-/util-base64-3.303.0.tgz#653281b7c1abfafc3f7a4c6f3b00d0733a4c455a"
+ integrity sha512-oj+p/GHHPcZEKjiiOHU/CyNQeh8i+8dfMMzU+VGdoK5jHaVG8h2b+V7GPf7I4wDkG2ySCK5b5Jw5NUHwdTJ13Q==
+ dependencies:
+ "@aws-sdk/util-buffer-from" "3.303.0"
+ tslib "^2.5.0"
+
+"@aws-sdk/util-body-length-browser@3.303.0":
+ version "3.303.0"
+ resolved "https://registry.yarnpkg.com/@aws-sdk/util-body-length-browser/-/util-body-length-browser-3.303.0.tgz#837cd63e59c1fda1d6a657a5c08fff7758ce4dc7"
+ integrity sha512-T643m0pKzgjAvPFy4W8zL+aszG3T22U8hb6stlMvT0z++Smv8QfIvkIkXjWyH2KlOt5GKliHwdOv8SAi0FSMJQ==
+ dependencies:
+ tslib "^2.5.0"
+
+"@aws-sdk/util-body-length-node@3.303.0":
+ version "3.303.0"
+ resolved "https://registry.yarnpkg.com/@aws-sdk/util-body-length-node/-/util-body-length-node-3.303.0.tgz#56c66486a9416e6497227e1ed3618b8bd7a0d710"
+ integrity sha512-/hS8z6e18Le60hJr2TUIFoUjUiAsnQsuDn6DxX74GXhMOHeSwZDJ9jHF39quYkNMmAE37GrVH4MI9vE0pN27qw==
+ dependencies:
+ tslib "^2.5.0"
+
+"@aws-sdk/util-buffer-from@3.303.0":
+ version "3.303.0"
+ resolved "https://registry.yarnpkg.com/@aws-sdk/util-buffer-from/-/util-buffer-from-3.303.0.tgz#4ec18ecdf380d3434a80d9f9762264725516651a"
+ integrity sha512-hUU+NW+SW6RNojtAKnnmz+tDShVKlEx2YsS4a5fSfrKRUes+zWz10cxVX0RQfysd3R6tdSHhbjsSj8eCIybheg==
+ dependencies:
+ "@aws-sdk/is-array-buffer" "3.303.0"
+ tslib "^2.5.0"
+
+"@aws-sdk/util-config-provider@3.295.0":
+ version "3.295.0"
+ resolved "https://registry.yarnpkg.com/@aws-sdk/util-config-provider/-/util-config-provider-3.295.0.tgz#c0f76407181722791b0a7bf80a9f01e78fd80250"
+ integrity sha512-/5Dl1aV2yI8YQjqwmg4RTnl/E9NmNsx7HIwBZt+dTcOrM0LMUwczQBFFcLyqCj/qv5y+VsvLoAAA/OiBT7hb3w==
+ dependencies:
+ tslib "^2.5.0"
+
+"@aws-sdk/util-defaults-mode-browser@3.309.0":
+ version "3.309.0"
+ resolved "https://registry.yarnpkg.com/@aws-sdk/util-defaults-mode-browser/-/util-defaults-mode-browser-3.309.0.tgz#c93ad33f9c6ed1826f5fc5bf3273dd0b15568843"
+ integrity sha512-KTmoR24PhUCT9A8/f5rb7MQvzXqGJY7/VnYxNaQ6AzJZfZ3y3UYfvuJR9LRjWn+zQDy1lnTyjSh5eokf2VBOoQ==
+ dependencies:
+ "@aws-sdk/property-provider" "3.306.0"
+ "@aws-sdk/types" "3.306.0"
+ bowser "^2.11.0"
+ tslib "^2.5.0"
+
+"@aws-sdk/util-defaults-mode-node@3.309.0":
+ version "3.309.0"
+ resolved "https://registry.yarnpkg.com/@aws-sdk/util-defaults-mode-node/-/util-defaults-mode-node-3.309.0.tgz#65d3de335cc6a6cd7494b07ae898ccf85ec95f42"
+ integrity sha512-3YIEWY6O5kyW6dbV+1jWdlsqjEN76sxY62841v5A9Vr/MGLowhm6YYW8MYWPye9RABl9osTs0NCeL2p6Re+IPw==
+ dependencies:
+ "@aws-sdk/config-resolver" "3.306.0"
+ "@aws-sdk/credential-provider-imds" "3.306.0"
+ "@aws-sdk/node-config-provider" "3.306.0"
+ "@aws-sdk/property-provider" "3.306.0"
+ "@aws-sdk/types" "3.306.0"
+ tslib "^2.5.0"
+
+"@aws-sdk/util-endpoints@3.306.0":
+ version "3.306.0"
+ resolved "https://registry.yarnpkg.com/@aws-sdk/util-endpoints/-/util-endpoints-3.306.0.tgz#97a2859f0253667c0cee27a800d011e850598f98"
+ integrity sha512-aPTqU4VGhec8LDhKZrfA3/sBHTYRa0favKEo8aEa/vIZJTNBAFlUhvr5z7peAr8gBOtZZcElzX8PiK3jjn3ILw==
+ dependencies:
+ "@aws-sdk/types" "3.306.0"
+ tslib "^2.5.0"
+
+"@aws-sdk/util-hex-encoding@3.295.0":
+ version "3.295.0"
+ resolved "https://registry.yarnpkg.com/@aws-sdk/util-hex-encoding/-/util-hex-encoding-3.295.0.tgz#13acb924f88785d317c9bec37e5ca173ccc4a0ca"
+ integrity sha512-XJcoVo41kHzhe28PBm/rqt5mdCp8R6abwiW9ug1dA6FOoPUO8kBUxDv6xaOmA2hfRvd2ocFfBXaUCBqUowkGcQ==
+ dependencies:
+ tslib "^2.5.0"
+
+"@aws-sdk/util-locate-window@^3.0.0":
+ version "3.295.0"
+ resolved "https://registry.yarnpkg.com/@aws-sdk/util-locate-window/-/util-locate-window-3.295.0.tgz#b421047b977ef53a8575b7b72780c7209ff5480e"
+ integrity sha512-d/s+zhUx5Kh4l/ecMP/TBjzp1GR/g89Q4nWH6+wH5WgdHsK+LG+vmsk6mVNuP/8wsCofYG4NBqp5Ulbztbm9QA==
+ dependencies:
+ tslib "^2.5.0"
+
+"@aws-sdk/util-middleware@3.306.0":
+ version "3.306.0"
+ resolved "https://registry.yarnpkg.com/@aws-sdk/util-middleware/-/util-middleware-3.306.0.tgz#600777870b629c54ca2d0ac189c03084f3227c20"
+ integrity sha512-14CSm1mTrfSNBGbkZu8vSjXYg7DUMfZc74IinOajcFtTswa/6SyiyhU9DK0a837qqwxSfFGpnE2thVeJIF/7FA==
+ dependencies:
+ tslib "^2.5.0"
+
+"@aws-sdk/util-retry@3.306.0":
+ version "3.306.0"
+ resolved "https://registry.yarnpkg.com/@aws-sdk/util-retry/-/util-retry-3.306.0.tgz#057f2327eb36cd847e73e73c76e4308cd0650907"
+ integrity sha512-zcgTEIehQAIAm4vBNWfXZpDNbIrDM095vZmpbozQwK/pfDqMGvq7j3r9atKuEGTtoomoGoYwj3x/KEhO6JXJLg==
+ dependencies:
+ "@aws-sdk/service-error-classification" "3.306.0"
+ tslib "^2.5.0"
+
+"@aws-sdk/util-uri-escape@3.303.0":
+ version "3.303.0"
+ resolved "https://registry.yarnpkg.com/@aws-sdk/util-uri-escape/-/util-uri-escape-3.303.0.tgz#3101c27e0bf630fdcb288704d72412f75fa74bb8"
+ integrity sha512-N3ULNuHCL3QzAlCTY+XRRkRQTYCTU8RRuzFCJX0pDpz9t2K+tLT7DbxqupWGNFGl5Xlulf1Is14J3BP/Dx91rA==
+ dependencies:
+ tslib "^2.5.0"
+
+"@aws-sdk/util-user-agent-browser@3.306.0":
+ version "3.306.0"
+ resolved "https://registry.yarnpkg.com/@aws-sdk/util-user-agent-browser/-/util-user-agent-browser-3.306.0.tgz#c5d7a9f4987d938f02e371aae11cb7f6cfbb3485"
+ integrity sha512-uZAtpvCasUdWRlB/nEjN0gf6G7810hT50VyWjpd6mQW78myV8M5fu/R03UFAZ+D8fhqqIdzR/IXDY1QUGp8bCA==
+ dependencies:
+ "@aws-sdk/types" "3.306.0"
+ bowser "^2.11.0"
+ tslib "^2.5.0"
+
+"@aws-sdk/util-user-agent-node@3.306.0":
+ version "3.306.0"
+ resolved "https://registry.yarnpkg.com/@aws-sdk/util-user-agent-node/-/util-user-agent-node-3.306.0.tgz#40a981a49cf07681ee3ffefbf479d05fbb257e1b"
+ integrity sha512-zLp9wIx7FZ0qFLimYW3lJ1uJM5gqxmmcQjNimUaUq/4a1caDkaiF/QeyyMFva+wIjyHRv22P5abUBjIEZrs5WA==
+ dependencies:
+ "@aws-sdk/node-config-provider" "3.306.0"
+ "@aws-sdk/types" "3.306.0"
+ tslib "^2.5.0"
+
+"@aws-sdk/util-utf8-browser@^3.0.0":
+ version "3.259.0"
+ resolved "https://registry.yarnpkg.com/@aws-sdk/util-utf8-browser/-/util-utf8-browser-3.259.0.tgz#3275a6f5eb334f96ca76635b961d3c50259fd9ff"
+ integrity sha512-UvFa/vR+e19XookZF8RzFZBrw2EUkQWxiBW0yYQAhvk3C+QVGl0H3ouca8LDBlBfQKXwmW3huo/59H8rwb1wJw==
+ dependencies:
+ tslib "^2.3.1"
+
+"@aws-sdk/util-utf8@3.303.0":
+ version "3.303.0"
+ resolved "https://registry.yarnpkg.com/@aws-sdk/util-utf8/-/util-utf8-3.303.0.tgz#c6a3caacfc3f5460132379d586dc9c2a08b8f45e"
+ integrity sha512-tZXVuMOIONPOuOGBs/XRdzxv6jUvTM620dRFFIHZwlGiW8bo0x0LlonrzDAJZA4e9ZwmxJIj8Ji13WVRBGvZWg==
+ dependencies:
+ "@aws-sdk/util-buffer-from" "3.303.0"
+ tslib "^2.5.0"
+
"@babel/code-frame@7.12.11":
version "7.12.11"
resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.12.11.tgz#f4ad435aa263db935b8f10f2c552d23fb716a63f"
@@ -57,6 +785,13 @@
dependencies:
regenerator-runtime "^0.13.4"
+"@babel/runtime@^7.15.4", "@babel/runtime@^7.9.2":
+ version "7.21.0"
+ resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.21.0.tgz#5b55c9d394e5fcf304909a8b00c07dc217b56673"
+ integrity sha512-xwII0//EObnq89Ji5AKYQaRYiW/nZ3llSv29d49IuxPhKbtJoLP+9QUUZ4nVragQVtaVGeZrpB+ZtG/Pdy/POw==
+ dependencies:
+ regenerator-runtime "^0.13.11"
+
"@babel/types@7.15.0":
version "7.15.0"
resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.15.0.tgz#61af11f2286c4e9c69ca8deb5f4375a73c72dcbd"
@@ -234,11 +969,51 @@
"@nodelib/fs.scandir" "2.1.5"
fastq "^1.6.0"
+"@paypal/paypal-js@^5.1.6":
+ version "5.1.6"
+ resolved "https://registry.yarnpkg.com/@paypal/paypal-js/-/paypal-js-5.1.6.tgz#8ec59f4cc016addb3de41511f70950fd0359ffdb"
+ integrity sha512-1upF06pv0AUtTftRVSra44p8ibqGa3ruKLArvdhpZla25zcrND7R+nDUIMrJ0iteVYZowhujZStFs6NoruExfg==
+ dependencies:
+ promise-polyfill "^8.3.0"
+
+"@paypal/react-paypal-js@^7.5.0":
+ version "7.8.3"
+ resolved "https://registry.yarnpkg.com/@paypal/react-paypal-js/-/react-paypal-js-7.8.3.tgz#a5ca30a6db6a16776a447976c168f6b7438b1fb9"
+ integrity sha512-7sD5JFA0IH9kysyGFv5DTmtPn54vLWZ0DLhdjUvsjqZnoEs11mJJJlTsTA7MkIO3jBAJOWlfoA4wLYzmy68C4g==
+ dependencies:
+ "@paypal/paypal-js" "^5.1.6"
+ "@paypal/sdk-constants" "^1.0.122"
+
+"@paypal/sdk-constants@^1.0.122":
+ version "1.0.130"
+ resolved "https://registry.yarnpkg.com/@paypal/sdk-constants/-/sdk-constants-1.0.130.tgz#f1da2a7b1999b5436c6aa91d163bda36d702b883"
+ integrity sha512-hrh1SyZy+qiBA+h/EYWjTZ7QiBcRgDiEfhHCxP47fiBO8wE9w+DiEfHm747vFQomvHg6AyDxhyGXjnuaGAW31A==
+ dependencies:
+ hi-base32 "^0.5.0"
+
+"@reduxjs/toolkit@^1.7.1":
+ version "1.9.3"
+ resolved "https://registry.yarnpkg.com/@reduxjs/toolkit/-/toolkit-1.9.3.tgz#27e1a33072b5a312e4f7fa19247fec160bbb2df9"
+ integrity sha512-GU2TNBQVofL09VGmuSioNPQIu6Ml0YLf4EJhgj0AvBadRlCGzUWet8372LjvO4fqKZF2vH1xU0htAa7BrK9pZg==
+ dependencies:
+ immer "^9.0.16"
+ redux "^4.2.0"
+ redux-thunk "^2.4.2"
+ reselect "^4.1.7"
+
"@rushstack/eslint-patch@^1.0.8":
version "1.1.0"
resolved "https://registry.yarnpkg.com/@rushstack/eslint-patch/-/eslint-patch-1.1.0.tgz#7f698254aadf921e48dda8c0a6b304026b8a9323"
integrity sha512-JLo+Y592QzIE+q7Dl2pMUtt4q8SKYI5jDrZxrozEQxnGVOyYE+GWK9eLkwTaeN9DDctlaRAQ3TBmzZ1qdLE30A==
+"@types/hoist-non-react-statics@^3.3.0":
+ version "3.3.1"
+ resolved "https://registry.yarnpkg.com/@types/hoist-non-react-statics/-/hoist-non-react-statics-3.3.1.tgz#1124aafe5118cb591977aeb1ceaaed1070eb039f"
+ integrity sha512-iMIqiko6ooLrTh1joXodJK5X9xeEALT1kM5G3ZLhD3hszxBdIEd5C75U834D9mLcINgD4OyZf5uQXjkuYydWvA==
+ dependencies:
+ "@types/react" "*"
+ hoist-non-react-statics "^3.3.0"
+
"@types/json5@^0.0.29":
version "0.0.29"
resolved "https://registry.yarnpkg.com/@types/json5/-/json5-0.0.29.tgz#ee28707ae94e11d2b827bcbe5270bcea7f3e71ee"
@@ -249,6 +1024,48 @@
resolved "https://registry.yarnpkg.com/@types/node/-/node-16.11.12.tgz#ac7fb693ac587ee182c3780c26eb65546a1a3c10"
integrity sha512-+2Iggwg7PxoO5Kyhvsq9VarmPbIelXP070HMImEpbtGCoyWNINQj4wzjbQCXzdHTRXnqufutJb5KAURZANNBAw==
+"@types/prop-types@*":
+ version "15.7.5"
+ resolved "https://registry.yarnpkg.com/@types/prop-types/-/prop-types-15.7.5.tgz#5f19d2b85a98e9558036f6a3cacc8819420f05cf"
+ integrity sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w==
+
+"@types/react-redux@^7.1.20":
+ version "7.1.25"
+ resolved "https://registry.yarnpkg.com/@types/react-redux/-/react-redux-7.1.25.tgz#de841631205b24f9dfb4967dd4a7901e048f9a88"
+ integrity sha512-bAGh4e+w5D8dajd6InASVIyCo4pZLJ66oLb80F9OBLO1gKESbZcRCJpTT6uLXX+HAB57zw1WTdwJdAsewuTweg==
+ dependencies:
+ "@types/hoist-non-react-statics" "^3.3.0"
+ "@types/react" "*"
+ hoist-non-react-statics "^3.3.0"
+ redux "^4.0.0"
+
+"@types/react@*":
+ version "18.0.33"
+ resolved "https://registry.yarnpkg.com/@types/react/-/react-18.0.33.tgz#a1575160cb4376787c2f5fe0312302f824baa61e"
+ integrity sha512-sHxzVxeanvQyQ1lr8NSHaj0kDzcNiGpILEVt69g9S31/7PfMvNCKLKcsHw4lYKjs3cGNJjXSP4mYzX43QlnjNA==
+ dependencies:
+ "@types/prop-types" "*"
+ "@types/scheduler" "*"
+ csstype "^3.0.2"
+
+"@types/scheduler@*":
+ version "0.16.3"
+ resolved "https://registry.yarnpkg.com/@types/scheduler/-/scheduler-0.16.3.tgz#cef09e3ec9af1d63d2a6cc5b383a737e24e6dcf5"
+ integrity sha512-5cJ8CB4yAx7BH1oMvdU0Jh9lrEXyPkar6F9G/ERswkCuvP4KQZfZkSjcMbAICCpQTN4OuZn8tz0HiKv9TGZgrQ==
+
+"@types/webidl-conversions@*":
+ version "7.0.0"
+ resolved "https://registry.yarnpkg.com/@types/webidl-conversions/-/webidl-conversions-7.0.0.tgz#2b8e60e33906459219aa587e9d1a612ae994cfe7"
+ integrity sha512-xTE1E+YF4aWPJJeUzaZI5DRntlkY3+BCVJi0axFptnjGmAoWxkyREIh/XMrfxVLejwQxMCfDXdICo0VLxThrog==
+
+"@types/whatwg-url@^8.2.1":
+ version "8.2.2"
+ resolved "https://registry.yarnpkg.com/@types/whatwg-url/-/whatwg-url-8.2.2.tgz#749d5b3873e845897ada99be4448041d4cc39e63"
+ integrity sha512-FtQu10RWgn3D9U4aazdwIE2yzphmTJREDqNdODHrbrZmmMqI0vMheC/6NE/J1Yveaj8H+ela+YwWTjq5PGmuhA==
+ dependencies:
+ "@types/node" "*"
+ "@types/webidl-conversions" "*"
+
"@typescript-eslint/parser@^5.0.0":
version "5.6.0"
resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-5.6.0.tgz#11677324659641400d653253c03dcfbed468d199"
@@ -437,6 +1254,13 @@ axe-core@^4.3.5:
resolved "https://registry.yarnpkg.com/axe-core/-/axe-core-4.3.5.tgz#78d6911ba317a8262bfee292aeafcc1e04b49cc5"
integrity sha512-WKTW1+xAzhMS5dJsxWkliixlO/PqC4VhmO9T4juNYcaTg9jzWiJsou6m5pxWYGfigWbwzJWeFY6z47a+4neRXA==
+axios@^0.24.0:
+ version "0.24.0"
+ resolved "https://registry.yarnpkg.com/axios/-/axios-0.24.0.tgz#804e6fa1e4b9c5288501dd9dff56a7a0940d20d6"
+ integrity sha512-Q6cWsys88HoPgAaFAVUb0WpPk0O8iTeisR9IMqy9G8AbO4NlpVknrnQS03zzF9PGAWgO3cgletO3VjV/P7VztA==
+ dependencies:
+ follow-redirects "^1.14.4"
+
axobject-query@^2.2.0:
version "2.2.0"
resolved "https://registry.yarnpkg.com/axobject-query/-/axobject-query-2.2.0.tgz#943d47e10c0b704aa42275e20edf3722648989be"
@@ -447,7 +1271,7 @@ balanced-match@^1.0.0:
resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee"
integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==
-base64-js@^1.0.2:
+base64-js@^1.0.2, base64-js@^1.3.1:
version "1.5.1"
resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.5.1.tgz#1b1b440160a5bf7ad40b650f095963481903930a"
integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==
@@ -472,6 +1296,11 @@ bn.js@^5.0.0, bn.js@^5.1.1:
resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-5.2.0.tgz#358860674396c6997771a9d051fcc1b57d4ae002"
integrity sha512-D7iWRBvnZE8ecXiLj/9wbxH7Tk79fAh8IHaTNq1RWRixsS02W+5qS+iE9yq6RYl0asXx5tw0bLhmT5pIfbSquw==
+bowser@^2.11.0:
+ version "2.11.0"
+ resolved "https://registry.yarnpkg.com/bowser/-/bowser-2.11.0.tgz#5ca3c35757a7aa5771500c70a73a9f91ef420a8f"
+ integrity sha512-AlcaJBi/pqqJBIQ8U9Mcpc9i8Aqxn88Skv5d+xBX006BY5u8N3mGLHa5Lgppa7L/HfwgwLgZ6NYs+Ag6uUmJRA==
+
brace-expansion@^1.1.7:
version "1.1.11"
resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd"
@@ -564,6 +1393,13 @@ browserslist@4.16.6:
escalade "^3.1.1"
node-releases "^1.1.71"
+bson@^4.7.0:
+ version "4.7.2"
+ resolved "https://registry.yarnpkg.com/bson/-/bson-4.7.2.tgz#320f4ad0eaf5312dd9b45dc369cc48945e2a5f2e"
+ integrity sha512-Ry9wCtIZ5kGqkJoi6aD8KjxFZEx78guTQDnpXWiNthsxzrxAK/i8E6pCHAIZTbaEFWcOCvbecMukfK7XUvyLpQ==
+ dependencies:
+ buffer "^5.6.0"
+
buffer-xor@^1.0.3:
version "1.0.3"
resolved "https://registry.yarnpkg.com/buffer-xor/-/buffer-xor-1.0.3.tgz#26e61ed1422fb70dd42e6e36729ed51d855fe8d9"
@@ -577,6 +1413,14 @@ buffer@5.6.0:
base64-js "^1.0.2"
ieee754 "^1.1.4"
+buffer@^5.6.0:
+ version "5.7.1"
+ resolved "https://registry.yarnpkg.com/buffer/-/buffer-5.7.1.tgz#ba62e7c13133053582197160851a8f648e99eed0"
+ integrity sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==
+ dependencies:
+ base64-js "^1.3.1"
+ ieee754 "^1.1.13"
+
builtin-status-codes@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz#85982878e21b98e1c66425e03d0174788f569ee8"
@@ -709,6 +1553,11 @@ convert-source-map@1.7.0:
dependencies:
safe-buffer "~5.1.1"
+cookie@^0.4.1:
+ version "0.4.2"
+ resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.4.2.tgz#0e41f24de5ecf317947c82fc789e06a884824432"
+ integrity sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA==
+
core-js-pure@^3.19.0:
version "3.19.3"
resolved "https://registry.yarnpkg.com/core-js-pure/-/core-js-pure-3.19.3.tgz#c69b2b36b58927317824994b532ec3f0f7e49607"
@@ -790,6 +1639,11 @@ cssnano-simple@3.0.0:
dependencies:
cssnano-preset-simple "^3.0.0"
+csstype@^3.0.2:
+ version "3.1.2"
+ resolved "https://registry.yarnpkg.com/csstype/-/csstype-3.1.2.tgz#1d4bf9d572f11c14031f0436e1c10bc1f571f50b"
+ integrity sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ==
+
damerau-levenshtein@^1.0.7:
version "1.0.7"
resolved "https://registry.yarnpkg.com/damerau-levenshtein/-/damerau-levenshtein-1.0.7.tgz#64368003512a1a6992593741a09a9d31a836f55d"
@@ -807,6 +1661,13 @@ debug@2, debug@^2.6.9:
dependencies:
ms "2.0.0"
+debug@4.x:
+ version "4.3.4"
+ resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.4.tgz#1319f6579357f2338d3337d2cdd4914bb5dcc865"
+ integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==
+ dependencies:
+ ms "2.1.2"
+
debug@^3.2.7:
version "3.2.7"
resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.7.tgz#72580b7e9145fb39b6676f9c5e5fb100b934179a"
@@ -1229,6 +2090,13 @@ fast-levenshtein@^2.0.6:
resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917"
integrity sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=
+fast-xml-parser@4.1.2:
+ version "4.1.2"
+ resolved "https://registry.yarnpkg.com/fast-xml-parser/-/fast-xml-parser-4.1.2.tgz#5a98c18238d28a57bbdfa9fe4cda01211fff8f4a"
+ integrity sha512-CDYeykkle1LiA/uqQyNwYpFbyF6Axec6YapmpUP+/RHWIoR1zKjocdvNaTsxCxZzQ6v9MLXaSYm9Qq0thv0DHg==
+ dependencies:
+ strnum "^1.0.5"
+
fastq@^1.6.0:
version "1.13.0"
resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.13.0.tgz#616760f88a7526bdfc596b7cab8c18938c36b98c"
@@ -1287,6 +2155,11 @@ flatted@^3.1.0:
resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.2.4.tgz#28d9969ea90661b5134259f312ab6aa7929ac5e2"
integrity sha512-8/sOawo8tJ4QOBX8YlQBMxL8+RLZfxMQOif9o0KUKTNTjMYElWPE0r/m5VNFxTRd0NSw8qSy8dajrwX4RYI1Hw==
+follow-redirects@^1.14.4:
+ version "1.15.2"
+ resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.15.2.tgz#b460864144ba63f2681096f274c4e57026da2c13"
+ integrity sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==
+
foreach@^2.0.5:
version "2.0.5"
resolved "https://registry.yarnpkg.com/foreach/-/foreach-2.0.5.tgz#0bee005018aeb260d0a3af3ae658dd0136ec1b99"
@@ -1459,6 +2332,11 @@ he@1.2.0:
resolved "https://registry.yarnpkg.com/he/-/he-1.2.0.tgz#84ae65fa7eafb165fddb61566ae14baf05664f0f"
integrity sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==
+hi-base32@^0.5.0:
+ version "0.5.1"
+ resolved "https://registry.yarnpkg.com/hi-base32/-/hi-base32-0.5.1.tgz#1279f2ddae2673219ea5870c2121d2a33132857e"
+ integrity sha512-EmBBpvdYh/4XxsnUybsPag6VikPYnN30td+vQk+GI3qpahVEG9+gTkG0aXVxTjBqQ5T6ijbWIu77O+C5WFWsnA==
+
hmac-drbg@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/hmac-drbg/-/hmac-drbg-1.0.1.tgz#d2745701025a6c775a6c545793ed502fc0c649a1"
@@ -1468,6 +2346,13 @@ hmac-drbg@^1.0.1:
minimalistic-assert "^1.0.0"
minimalistic-crypto-utils "^1.0.1"
+hoist-non-react-statics@^3.3.0, hoist-non-react-statics@^3.3.2:
+ version "3.3.2"
+ resolved "https://registry.yarnpkg.com/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz#ece0acaf71d62c2969c2ec59feff42a4b1a85b45"
+ integrity sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==
+ dependencies:
+ react-is "^16.7.0"
+
http-errors@1.7.3:
version "1.7.3"
resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.7.3.tgz#6c619e4f9c60308c38519498c14fbb10aacebb06"
@@ -1498,7 +2383,7 @@ iconv-lite@^0.6.2:
dependencies:
safer-buffer ">= 2.1.2 < 3.0.0"
-ieee754@^1.1.4:
+ieee754@^1.1.13, ieee754@^1.1.4:
version "1.2.1"
resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.2.1.tgz#8eb7a10a63fff25d15a57b001586d177d1b0d352"
integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==
@@ -1520,6 +2405,11 @@ image-size@1.0.0:
dependencies:
queue "6.0.2"
+immer@^9.0.16:
+ version "9.0.21"
+ resolved "https://registry.yarnpkg.com/immer/-/immer-9.0.21.tgz#1e025ea31a40f24fb064f1fef23e931496330176"
+ integrity sha512-bc4NBHqOqSfRW7POMkHd51LvClaeMXpm8dx0e8oE2GORbq5aRK7Bxl4FyzVLdGtLmvLKL7BTDBG5ACQm4HWjTA==
+
import-fresh@^3.0.0, import-fresh@^3.2.1:
version "3.3.0"
resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.3.0.tgz#37162c25fcb9ebaa2e6e53d5b4d88ce17d9e0c2b"
@@ -1555,6 +2445,11 @@ internal-slot@^1.0.3:
has "^1.0.3"
side-channel "^1.0.4"
+ip@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/ip/-/ip-2.0.0.tgz#4cf4ab182fee2314c75ede1276f8c80b479936da"
+ integrity sha512-WKa+XuLG1A1R0UWhl2+1XQSi+fZWMsYKffMZTTYsiZaUD8k2yDAj5atimTUD2TZkyCkNEeYE5NhFZmupOGtjYQ==
+
is-arguments@^1.0.4:
version "1.1.1"
resolved "https://registry.yarnpkg.com/is-arguments/-/is-arguments-1.1.1.tgz#15b3f88fda01f2a97fec84ca761a560f123efa9b"
@@ -1744,6 +2639,11 @@ json5@^1.0.1:
array-includes "^3.1.3"
object.assign "^4.1.2"
+kareem@2.5.1:
+ version "2.5.1"
+ resolved "https://registry.yarnpkg.com/kareem/-/kareem-2.5.1.tgz#7b8203e11819a8e77a34b3517d3ead206764d15d"
+ integrity sha512-7jFxRVm+jD+rkq3kY0iZDJfsO2/t4BBPeEb2qKn2lR/9KhuksYk5hxzfRYWMPV8P/x2d0kHD306YyWLzjjH+uA==
+
language-subtag-registry@~0.3.2:
version "0.3.21"
resolved "https://registry.yarnpkg.com/language-subtag-registry/-/language-subtag-registry-0.3.21.tgz#04ac218bea46f04cb039084602c6da9e788dd45a"
@@ -1828,6 +2728,11 @@ md5.js@^1.3.4:
inherits "^2.0.1"
safe-buffer "^5.1.2"
+memory-pager@^1.0.2:
+ version "1.5.0"
+ resolved "https://registry.yarnpkg.com/memory-pager/-/memory-pager-1.5.0.tgz#d8751655d22d384682741c972f2c3d6dfa3e66b5"
+ integrity sha512-ZS4Bp4r/Zoeq6+NLJpP+0Zzm0pR8whtGPf1XExKLJBAczGMnSi3It14OiNCStjQjM6NU1okjQGSxgEZN8eBYKg==
+
merge-stream@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60"
@@ -1876,6 +2781,51 @@ minimist@^1.2.0:
resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.5.tgz#67d66014b66a6a8aaa0c083c5fd58df4e4e97602"
integrity sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==
+mongodb-connection-string-url@^2.5.4:
+ version "2.6.0"
+ resolved "https://registry.yarnpkg.com/mongodb-connection-string-url/-/mongodb-connection-string-url-2.6.0.tgz#57901bf352372abdde812c81be47b75c6b2ec5cf"
+ integrity sha512-WvTZlI9ab0QYtTYnuMLgobULWhokRjtC7db9LtcVfJ+Hsnyr5eo6ZtNAt3Ly24XZScGMelOcGtm7lSn0332tPQ==
+ dependencies:
+ "@types/whatwg-url" "^8.2.1"
+ whatwg-url "^11.0.0"
+
+mongodb@4.14.0:
+ version "4.14.0"
+ resolved "https://registry.yarnpkg.com/mongodb/-/mongodb-4.14.0.tgz#3a21ca602069b2494b7066a7709056c8cece6bf6"
+ integrity sha512-coGKkWXIBczZPr284tYKFLg+KbGPPLlSbdgfKAb6QqCFt5bo5VFZ50O3FFzsw4rnkqjwT6D8Qcoo9nshYKM7Mg==
+ dependencies:
+ bson "^4.7.0"
+ mongodb-connection-string-url "^2.5.4"
+ socks "^2.7.1"
+ optionalDependencies:
+ "@aws-sdk/credential-providers" "^3.186.0"
+ saslprep "^1.0.3"
+
+mongoose@^6.1.4:
+ version "6.10.5"
+ resolved "https://registry.yarnpkg.com/mongoose/-/mongoose-6.10.5.tgz#4d027269b5fcb86f1d40ce1c188d5774bd080480"
+ integrity sha512-y4HL4/9EySec7L0gJ+pCm9heLSF45uIIvRS4fSeAFWDfe4vXW1vRZJwTz7OGkra3ZoSfRnFTo9bNZkuggDVlVA==
+ dependencies:
+ bson "^4.7.0"
+ kareem "2.5.1"
+ mongodb "4.14.0"
+ mpath "0.9.0"
+ mquery "4.0.3"
+ ms "2.1.3"
+ sift "16.0.1"
+
+mpath@0.9.0:
+ version "0.9.0"
+ resolved "https://registry.yarnpkg.com/mpath/-/mpath-0.9.0.tgz#0c122fe107846e31fc58c75b09c35514b3871904"
+ integrity sha512-ikJRQTk8hw5DEoFVxHG1Gn9T/xcjtdnOKIU1JTmGjZZlg9LST2mBLmcX3/ICIbgJydT2GOc15RnNy5mHmzfSew==
+
+mquery@4.0.3:
+ version "4.0.3"
+ resolved "https://registry.yarnpkg.com/mquery/-/mquery-4.0.3.tgz#4d15f938e6247d773a942c912d9748bd1965f89d"
+ integrity sha512-J5heI+P08I6VJ2Ky3+33IpCdAvlYGTSUjwTPxkAr8i8EoduPMBX2OY/wa3IKZIQl7MU4SbFk8ndgSKyB/cl1zA==
+ dependencies:
+ debug "4.x"
+
ms@2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8"
@@ -1886,7 +2836,7 @@ ms@2.1.2:
resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009"
integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==
-ms@^2.1.1:
+ms@2.1.3, ms@^2.1.1:
version "2.1.3"
resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2"
integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==
@@ -2244,6 +3194,11 @@ progress@^2.0.0:
resolved "https://registry.yarnpkg.com/progress/-/progress-2.0.3.tgz#7e8cf8d8f5b8f239c1bc68beb4eb78567d572ef8"
integrity sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==
+promise-polyfill@^8.3.0:
+ version "8.3.0"
+ resolved "https://registry.yarnpkg.com/promise-polyfill/-/promise-polyfill-8.3.0.tgz#9284810268138d103807b11f4e23d5e945a4db63"
+ integrity sha512-H5oELycFml5yto/atYqmjyigJoAo3+OXwolYiH7OfQuYlAqhxNvTfiNMbV9hsC6Yp83yE5r2KTVmtrG6R9i6Pg==
+
prop-types@^15.7.2:
version "15.7.2"
resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.7.2.tgz#52c41e75b8c87e72b9d9360e0206b99dcbffa6c5"
@@ -2270,6 +3225,11 @@ punycode@^2.1.0:
resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec"
integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==
+punycode@^2.1.1:
+ version "2.3.0"
+ resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.3.0.tgz#f67fa67c94da8f4d0cfff981aee4118064199b8f"
+ integrity sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==
+
querystring-es3@0.2.1:
version "0.2.1"
resolved "https://registry.yarnpkg.com/querystring-es3/-/querystring-es3-0.2.1.tgz#9ec61f79049875707d69414596fd907a4d711e73"
@@ -2321,16 +3281,28 @@ react-dom@17.0.2:
object-assign "^4.1.1"
scheduler "^0.20.2"
-react-is@17.0.2:
+react-is@17.0.2, react-is@^17.0.2:
version "17.0.2"
resolved "https://registry.yarnpkg.com/react-is/-/react-is-17.0.2.tgz#e691d4a8e9c789365655539ab372762b0efb54f0"
integrity sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==
-react-is@^16.8.1:
+react-is@^16.7.0, react-is@^16.8.1:
version "16.13.1"
resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.13.1.tgz#789729a4dc36de2999dc156dd6c1d9c18cea56a4"
integrity sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==
+react-redux@^7.2.6:
+ version "7.2.9"
+ resolved "https://registry.yarnpkg.com/react-redux/-/react-redux-7.2.9.tgz#09488fbb9416a4efe3735b7235055442b042481d"
+ integrity sha512-Gx4L3uM182jEEayZfRbI/G11ZpYdNAnBs70lFVMNdHJI76XYtR+7m0MN+eAs7UHBPhWXcnFPaS+9owSCJQHNpQ==
+ dependencies:
+ "@babel/runtime" "^7.15.4"
+ "@types/react-redux" "^7.1.20"
+ hoist-non-react-statics "^3.3.2"
+ loose-envify "^1.4.0"
+ prop-types "^15.7.2"
+ react-is "^17.0.2"
+
react-refresh@0.8.3:
version "0.8.3"
resolved "https://registry.yarnpkg.com/react-refresh/-/react-refresh-0.8.3.tgz#721d4657672d400c5e3c75d063c4a85fb2d5d68f"
@@ -2360,11 +3332,28 @@ readdirp@~3.5.0:
dependencies:
picomatch "^2.2.1"
+redux-thunk@^2.4.2:
+ version "2.4.2"
+ resolved "https://registry.yarnpkg.com/redux-thunk/-/redux-thunk-2.4.2.tgz#b9d05d11994b99f7a91ea223e8b04cf0afa5ef3b"
+ integrity sha512-+P3TjtnP0k/FEjcBL5FZpoovtvrTNT/UXd4/sluaSyrURlSlhLSzEdfsTBW7WsKB6yPvgd7q/iZPICFjW4o57Q==
+
+redux@^4.0.0, redux@^4.1.2, redux@^4.2.0:
+ version "4.2.1"
+ resolved "https://registry.yarnpkg.com/redux/-/redux-4.2.1.tgz#c08f4306826c49b5e9dc901dee0452ea8fce6197"
+ integrity sha512-LAUYz4lc+Do8/g7aeRa8JkyDErK6ekstQaqWQrNRW//MY1TvCEpMtpTWvlQ+FPbWCx+Xixu/6SHt5N0HR+SB4w==
+ dependencies:
+ "@babel/runtime" "^7.9.2"
+
regenerator-runtime@0.13.4:
version "0.13.4"
resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.4.tgz#e96bf612a3362d12bb69f7e8f74ffeab25c7ac91"
integrity sha512-plpwicqEzfEyTQohIKktWigcLzmNStMGwbOUbykx51/29Z3JOGYldaaNGK7ngNXV+UcoqvIMmloZ48Sr74sd+g==
+regenerator-runtime@^0.13.11:
+ version "0.13.11"
+ resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz#f6dca3e7ceec20590d07ada785636a90cdca17f9"
+ integrity sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==
+
regenerator-runtime@^0.13.4:
version "0.13.9"
resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz#8925742a98ffd90814988d7566ad30ca3b263b52"
@@ -2383,6 +3372,11 @@ regexpp@^3.2.0:
resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-3.2.0.tgz#0425a2768d8f23bad70ca4b90461fa2f1213e1b2"
integrity sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==
+reselect@^4.1.7:
+ version "4.1.7"
+ resolved "https://registry.yarnpkg.com/reselect/-/reselect-4.1.7.tgz#56480d9ff3d3188970ee2b76527bd94a95567a42"
+ integrity sha512-Zu1xbUt3/OPwsXL46hvOOoQrap2azE7ZQbokq61BQfiXvhewsKDwhMeZjTX9sX0nvw1t/U5Audyn1I9P/m9z0A==
+
resolve-from@^4.0.0:
version "4.0.0"
resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6"
@@ -2446,6 +3440,13 @@ safe-buffer@~5.1.1:
resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a"
integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==
+saslprep@^1.0.3:
+ version "1.0.3"
+ resolved "https://registry.yarnpkg.com/saslprep/-/saslprep-1.0.3.tgz#4c02f946b56cf54297e347ba1093e7acac4cf226"
+ integrity sha512-/MY/PEMbk2SuY5sScONwhUDsV2p77Znkb/q3nSVstq/yQzYJOH/Azh29p9oJLsl3LnQwSvZDKagDGBsBwSooag==
+ dependencies:
+ sparse-bitfield "^3.0.3"
+
scheduler@^0.20.2:
version "0.20.2"
resolved "https://registry.yarnpkg.com/scheduler/-/scheduler-0.20.2.tgz#4baee39436e34aa93b4874bddcbf0fe8b8b50e91"
@@ -2510,11 +3511,29 @@ side-channel@^1.0.4:
get-intrinsic "^1.0.2"
object-inspect "^1.9.0"
+sift@16.0.1:
+ version "16.0.1"
+ resolved "https://registry.yarnpkg.com/sift/-/sift-16.0.1.tgz#e9c2ccc72191585008cf3e36fc447b2d2633a053"
+ integrity sha512-Wv6BjQ5zbhW7VFefWusVP33T/EM0vYikCaQ2qR8yULbsilAT8/wQaXvuQ3ptGLpoKx+lihJE3y2UTgKDyyNHZQ==
+
slash@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634"
integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==
+smart-buffer@^4.2.0:
+ version "4.2.0"
+ resolved "https://registry.yarnpkg.com/smart-buffer/-/smart-buffer-4.2.0.tgz#6e1d71fa4f18c05f7d0ff216dd16a481d0e8d9ae"
+ integrity sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==
+
+socks@^2.7.1:
+ version "2.7.1"
+ resolved "https://registry.yarnpkg.com/socks/-/socks-2.7.1.tgz#d8e651247178fde79c0663043e07240196857d55"
+ integrity sha512-7maUZy1N7uo6+WVEX6psASxtNlKaNVMlGQKkG/63nEDdLOWNbiUMoLK7X4uYoLhQstau72mLgfEWcXcwsaHbYQ==
+ dependencies:
+ ip "^2.0.0"
+ smart-buffer "^4.2.0"
+
source-map@0.7.3:
version "0.7.3"
resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.7.3.tgz#5302f8169031735226544092e64981f751750383"
@@ -2532,6 +3551,13 @@ source-map@^0.6.1:
resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263"
integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==
+sparse-bitfield@^3.0.3:
+ version "3.0.3"
+ resolved "https://registry.yarnpkg.com/sparse-bitfield/-/sparse-bitfield-3.0.3.tgz#ff4ae6e68656056ba4b3e792ab3334d38273ca11"
+ integrity sha512-kvzhi7vqKTfkh0PZU+2D2PIllw2ymqJKujUcyPMd9Y75Nv4nPbGJZXNhxsgdQab2BmlDct1YnfQCguEvHr7VsQ==
+ dependencies:
+ memory-pager "^1.0.2"
+
stacktrace-parser@0.1.10:
version "0.1.10"
resolved "https://registry.yarnpkg.com/stacktrace-parser/-/stacktrace-parser-0.1.10.tgz#29fb0cae4e0d0b85155879402857a1639eb6051a"
@@ -2628,6 +3654,11 @@ strip-json-comments@^3.1.0, strip-json-comments@^3.1.1:
resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006"
integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==
+strnum@^1.0.5:
+ version "1.0.5"
+ resolved "https://registry.yarnpkg.com/strnum/-/strnum-1.0.5.tgz#5c4e829fe15ad4ff0d20c3db5ac97b73c9b072db"
+ integrity sha512-J8bbNyKKXl5qYcR36TIO8W3mVGVHrmmxsd5PAItGkmyzwJvybiw2IVq5nqd0i4LSNSkB/sx9VHllbfFdr9k1JA==
+
styled-jsx@5.0.0-beta.3:
version "5.0.0-beta.3"
resolved "https://registry.yarnpkg.com/styled-jsx/-/styled-jsx-5.0.0-beta.3.tgz#400d16179b5dff10d5954ab8be27a9a1b7780dd2"
@@ -2709,6 +3740,13 @@ tr46@^1.0.1:
dependencies:
punycode "^2.1.0"
+tr46@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/tr46/-/tr46-3.0.0.tgz#555c4e297a950617e8eeddef633c87d4d9d6cbf9"
+ integrity sha512-l7FvfAHlcmulp8kr+flpQZmVwtu7nfRV7NZujtN0OqES8EL4O4e0qqzL0DC5gAvx/ZC/9lk6rhcUwYvkBnBnYA==
+ dependencies:
+ punycode "^2.1.1"
+
tsconfig-paths@^3.11.0, tsconfig-paths@^3.9.0:
version "3.12.0"
resolved "https://registry.yarnpkg.com/tsconfig-paths/-/tsconfig-paths-3.12.0.tgz#19769aca6ee8f6a1a341e38c8fa45dd9fb18899b"
@@ -2719,11 +3757,16 @@ tsconfig-paths@^3.11.0, tsconfig-paths@^3.9.0:
minimist "^1.2.0"
strip-bom "^3.0.0"
-tslib@^1.8.1:
+tslib@^1.11.1, tslib@^1.8.1:
version "1.14.1"
resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00"
integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==
+tslib@^2.3.1, tslib@^2.5.0:
+ version "2.5.0"
+ resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.5.0.tgz#42bfed86f5787aeb41d031866c8f402429e0fddf"
+ integrity sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg==
+
tsutils@^3.21.0:
version "3.21.0"
resolved "https://registry.yarnpkg.com/tsutils/-/tsutils-3.21.0.tgz#b48717d394cea6c1e096983eed58e9d61715b623"
@@ -2799,6 +3842,11 @@ util@0.12.4, util@^0.12.0:
safe-buffer "^5.1.2"
which-typed-array "^1.1.2"
+uuid@^8.3.2:
+ version "8.3.2"
+ resolved "https://registry.yarnpkg.com/uuid/-/uuid-8.3.2.tgz#80d5b5ced271bb9af6c445f21a1a04c606cefbe2"
+ integrity sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==
+
v8-compile-cache@^2.0.3:
version "2.3.0"
resolved "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz#2de19618c66dc247dcfb6f99338035d8245a2cee"
@@ -2822,6 +3870,19 @@ webidl-conversions@^4.0.2:
resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-4.0.2.tgz#a855980b1f0b6b359ba1d5d9fb39ae941faa63ad"
integrity sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==
+webidl-conversions@^7.0.0:
+ version "7.0.0"
+ resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-7.0.0.tgz#256b4e1882be7debbf01d05f0aa2039778ea080a"
+ integrity sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==
+
+whatwg-url@^11.0.0:
+ version "11.0.0"
+ resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-11.0.0.tgz#0a849eebb5faf2119b901bb76fd795c2848d4018"
+ integrity sha512-RKT8HExMpoYx4igMiVMY83lN6UeITKJlBQ+vR/8ZJ8OCdSiN3RwCq+9gH0+Xzj0+5IrM6i4j/6LuvzbZIQgEcQ==
+ dependencies:
+ tr46 "^3.0.0"
+ webidl-conversions "^7.0.0"
+
whatwg-url@^7.0.0:
version "7.1.0"
resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-7.1.0.tgz#c2c492f1eca612988efd3d2266be1b9fc6170d06"