+
+ {name}
+
+
${price}
+
{description}
{
)
}
-export async function getStaticPaths () {
- const inventory = await fetchInventory()
- const paths = inventory.map(item => {
- return { params: { name: slugify(item.name) }}
+export async function getStaticPaths() {
+ const products = await prismaClient.product.findMany()
+ const paths = products.map((product) => {
+ return { params: { name: slugify(product.name) } }
})
return {
paths,
- fallback: false
+ fallback: false,
}
}
-export async function getStaticProps ({ params }) {
- const name = params.name.replace(/-/g," ")
- const inventory = await fetchInventory()
- const product = inventory.find(item => slugify(item.name) === slugify(name))
-
+export async function getStaticProps({ params }) {
+ const name = params.name.replace(/-/g, " ")
+ const product = await prismaClient.product.findFirst({
+ where: {
+ name: {
+ contains: name,
+ },
+ },
+ })
return {
props: {
product,
- }
+ },
+ revalidate: 1,
}
}
@@ -97,12 +110,10 @@ function ItemViewWithContext(props) {
return (
- {
- context =>
- }
+ {(context) => }
)
}
-export default ItemViewWithContext
\ No newline at end of file
+export default ItemViewWithContext
diff --git a/prisma/schema.prisma b/prisma/schema.prisma
new file mode 100644
index 0000000..e7a82da
--- /dev/null
+++ b/prisma/schema.prisma
@@ -0,0 +1,29 @@
+// This is your Prisma schema file,
+// learn more about it in the docs: https://pris.ly/d/prisma-schema
+
+datasource db {
+ provider = "sqlite"
+ url = "file:./db"
+}
+
+generator client {
+ provider = "prisma-client-js"
+}
+
+model Category {
+ id Int @id
+ name String
+ products Product[] @relation(references: [id])
+ image String?
+}
+
+model Product {
+ id Int @id
+ name String
+ price Float
+ image String
+ brand String
+ categories Category[] @relation(references: [id])
+ currentInventory Int
+ description String
+}
\ No newline at end of file
diff --git a/prisma/seed.ts b/prisma/seed.ts
new file mode 100644
index 0000000..ad76eb3
--- /dev/null
+++ b/prisma/seed.ts
@@ -0,0 +1,55 @@
+import { PrismaClient } from "@prisma/client"
+import { categories, products } from "../utils/data"
+const prisma = new PrismaClient()
+
+async function main() {
+ // creates categories
+ await Promise.all(
+ categories.map(({ name, id, image }) =>
+ prisma.category.upsert({
+ where: { id },
+ update: {},
+ create: { name, id, image },
+ })
+ )
+ )
+ await Promise.all(
+ products.map(
+ ({
+ categories,
+ id,
+ name,
+ price,
+ image,
+ description,
+ brand,
+ currentInventory,
+ }) =>
+ prisma.product.upsert({
+ where: { id },
+ update: {},
+ create: {
+ id,
+ name,
+ price,
+ image,
+ description,
+ brand,
+ currentInventory,
+ categories: {
+ connect: categories.map((id) => ({ id })),
+ },
+ },
+ })
+ )
+ )
+}
+
+main()
+ .then(() => console.log(`Seeded data successfully`))
+ .catch((e) => console.error(`Failed to seed data, ${e}`))
+ .finally(async () => {
+ await prisma.$disconnect()
+ })
+
+export default main
diff --git a/tsconfig.json b/tsconfig.json
new file mode 100644
index 0000000..0f601cd
--- /dev/null
+++ b/tsconfig.json
@@ -0,0 +1,20 @@
+{
+ "compilerOptions": {
+ "baseUrl": ".",
+ "target": "es5",
+ "lib": ["dom", "dom.iterable", "esnext"],
+ "allowJs": true,
+ "skipLibCheck": true,
+ "strict": false,
+ "forceConsistentCasingInFileNames": true,
+ "noEmit": true,
+ "esModuleInterop": true,
+ "module": "commonjs",
+ "moduleResolution": "node",
+ "resolveJsonModule": true,
+ "isolatedModules": true,
+ "jsx": "preserve"
+ },
+ "include": ["next-env.d.ts", "**/*.ts", "**/*.tsx"],
+ "exclude": ["node_modules"]
+}
diff --git a/utils/data.ts b/utils/data.ts
new file mode 100644
index 0000000..ae252f4
--- /dev/null
+++ b/utils/data.ts
@@ -0,0 +1,277 @@
+interface ProductInterface {
+ id: number
+ name: string
+ categories: number[]
+ price: number
+ image: string
+ description: string
+ currentInventory: number
+ brand?: string
+}
+
+interface CategoryInterface {
+ id?: number
+ image?: string
+ name: string
+}
+
+export const categories: CategoryInterface[] = [
+ {
+ id: 1,
+ name: "new arrivals",
+ image: "/products/couch1.png",
+ },
+ { id: 2, name: "sofas", image: "/products/couch5.png" },
+ {
+ id: 3,
+ name: "living room",
+ image: "/products/couch5.png",
+ },
+ {
+ id: 4,
+ name: "on sale",
+ image: "/products/couch8.png",
+ },
+ {
+ id: 5,
+ name: "chairs",
+ image: "/products/chair1.png",
+ },
+]
+
+export const products: ProductInterface[] = [
+ {
+ id: 1,
+ categories: [1],
+ name: "Timber Gray Sofa",
+ price: 1000,
+ image: "/products/couch1.png",
+ description:
+ "Stay a while. The Timber charme chocolat sofa is set atop an oak trim and flaunts fluffy leather back and seat cushions. Over time, this brown leather sofa’s full-aniline upholstery will develop a worn-in vintage look. Snuggle up with your cutie (animal or human) and dive into a bowl of popcorn. This sofa is really hard to leave. Natural color variations, wrinkles and creases are part of the unique characteristics of this leather. It will develop a relaxed vintage look with regular use.",
+ brand: "Jason Bourne",
+ currentInventory: 4,
+ },
+ {
+ id: 2,
+ categories: [2, 3],
+ name: "Carmel Brown Sofa",
+ price: 1000,
+ image: "/products/couch5.png",
+ description:
+ "Stay a while. The Timber charme chocolat sofa is set atop an oak trim and flaunts fluffy leather back and seat cushions. Over time, this brown leather sofa’s full-aniline upholstery will develop a worn-in vintage look. Snuggle up with your cutie (animal or human) and dive into a bowl of popcorn. This sofa is really hard to leave. Natural color variations, wrinkles and creases are part of the unique characteristics of this leather. It will develop a relaxed vintage look with regular use.",
+ brand: "Jason Bourne",
+ currentInventory: 2,
+ },
+ {
+ id: 3,
+ categories: [1, 2],
+ name: "Mod Leather Sofa",
+ price: 800,
+ image: "/products/couch6.png",
+ description:
+ "Easy to love. The Sven in birch ivory looks cozy and refined, like a sweater that a fancy lady wears on a coastal vacation. This ivory loveseat has a tufted bench seat, loose back pillows and bolsters, solid walnut legs, and is ready to make your apartment the adult oasis you dream of. Nestle it with plants, an ottoman, an accent chair, or 8 dogs. Your call.",
+ brand: "Jason Bourne",
+ currentInventory: 8,
+ },
+ {
+ id: 4,
+ categories: [1, 2],
+ name: "Thetis Gray Love Seat",
+ price: 900,
+ image: "/products/couch7.png",
+ description:
+ "You know your dad’s incredible vintage bomber jacket? The Nirvana dakota tan leather sofa is that jacket, but in couch form. With super-plush down-filled cushions, a corner-blocked wooden frame, and a leather patina that only gets better with age, the Nirvana will have you looking cool and feeling peaceful every time you take a seat. Looks pretty great with a sheepskin throw, if we may say so. With use, this leather will become softer and more wrinkled and the cushions will take on a lived-in look, like your favorite leather jacket.",
+ brand: "Jason Bourne",
+ currentInventory: 10,
+ },
+ {
+ id: 5,
+ categories: [4, 2],
+ name: "Sven Tan Matte",
+ price: 1200,
+ image: "/products/couch8.png",
+ description:
+ "You don’t have to go outside to be rugged. The Cigar rawhide sofa features a sturdy corner-blocked wooden frame and raw seams for that Malboro-person look. This brown leather sofa is cozy in a cottage, cabin, or a condo. And the leather (the leather!) becomes more beautiful with use: subtle character markings such as insect bites, healed scars, and grain variation reflects a real vintage. Saddle up and pass the remote.",
+ brand: "Jason Bourne",
+ currentInventory: 7,
+ },
+ {
+ id: 6,
+ categories: [4, 2],
+ name: "Otis Malt Sofa",
+ price: 500,
+ image: "/products/couch9.png",
+ description:
+ "You don’t have to go outside to be rugged. The Cigar rawhide sofa features a sturdy corner-blocked wooden frame and raw seams for that Malboro-person look. This brown leather sofa is cozy in a cottage, cabin, or a condo. And the leather (the leather!) becomes more beautiful with use: subtle character markings such as insect bites, healed scars, and grain variation reflects a real vintage. Saddle up and pass the remote.",
+ brand: "Jason Bourne",
+ currentInventory: 13,
+ },
+ {
+ id: 7,
+ categories: [4, 2],
+ name: "Ceni Brown 3 Seater",
+ price: 650,
+ image: "/products/couch10.png",
+ description:
+ "You don’t have to go outside to be rugged. The Cigar rawhide sofa features a sturdy corner-blocked wooden frame and raw seams for that Malboro-person look. This brown leather sofa is cozy in a cottage, cabin, or a condo. And the leather (the leather!) becomes more beautiful with use: subtle character markings such as insect bites, healed scars, and grain variation reflects a real vintage. Saddle up and pass the remote.",
+ brand: "Jason Bourne",
+ currentInventory: 9,
+ },
+ {
+ id: 8,
+ categories: [2, 3],
+ name: "Jameson Jack Lounger",
+ price: 1230,
+ image: "/products/couch11.png",
+ description:
+ "You don’t have to go outside to be rugged. The Cigar rawhide sofa features a sturdy corner-blocked wooden frame and raw seams for that Malboro-person look. This brown leather sofa is cozy in a cottage, cabin, or a condo. And the leather (the leather!) becomes more beautiful with use: subtle character markings such as insect bites, healed scars, and grain variation reflects a real vintage. Saddle up and pass the remote.",
+ brand: "Jason Bourne",
+ currentInventory: 24,
+ },
+
+ {
+ id: 9,
+ categories: [2],
+ name: "Galaxy Blue Sofa",
+ price: 800,
+ image: "/products/couch2.png",
+ description:
+ "Easy to love. The Sven in birch ivory looks cozy and refined, like a sweater that a fancy lady wears on a coastal vacation. This ivory loveseat has a tufted bench seat, loose back pillows and bolsters, solid walnut legs, and is ready to make your apartment the adult oasis you dream of. Nestle it with plants, an ottoman, an accent chair, or 8 dogs. Your call.",
+ brand: "Jason Bourne",
+ currentInventory: 43,
+ },
+ {
+ id: 10,
+ categories: [1, 2],
+ name: "Markus Green Love Seat",
+ price: 900,
+ image: "/products/couch3.png",
+ description:
+ "You know your dad’s incredible vintage bomber jacket? The Nirvana dakota tan leather sofa is that jacket, but in couch form. With super-plush down-filled cushions, a corner-blocked wooden frame, and a leather patina that only gets better with age, the Nirvana will have you looking cool and feeling peaceful every time you take a seat. Looks pretty great with a sheepskin throw, if we may say so. With use, this leather will become softer and more wrinkled and the cushions will take on a lived-in look, like your favorite leather jacket.",
+ brand: "Jason Bourne",
+ currentInventory: 2,
+ },
+ {
+ id: 11,
+ categories: [4, 2],
+ name: "Dabit Matte Black",
+ price: 1200,
+ image: "/products/couch4.png",
+ description:
+ "You don’t have to go outside to be rugged. The Cigar rawhide sofa features a sturdy corner-blocked wooden frame and raw seams for that Malboro-person look. This brown leather sofa is cozy in a cottage, cabin, or a condo. And the leather (the leather!) becomes more beautiful with use: subtle character markings such as insect bites, healed scars, and grain variation reflects a real vintage. Saddle up and pass the remote.",
+ brand: "Jason Bourne",
+ currentInventory: 14,
+ },
+
+ {
+ id: 12,
+ categories: [4, 5],
+ name: "Embrace Blue",
+ price: 300,
+ image: "/products/chair1.png",
+ description:
+ "You don’t have to go outside to be rugged. The Cigar rawhide sofa features a sturdy corner-blocked wooden frame and raw seams for that Malboro-person look. This brown leather sofa is cozy in a cottage, cabin, or a condo. And the leather (the leather!) becomes more beautiful with use: subtle character markings such as insect bites, healed scars, and grain variation reflects a real vintage. Saddle up and pass the remote.",
+ brand: "Jason Bourne",
+ currentInventory: 12,
+ },
+ {
+ id: 13,
+ categories: [4, 5],
+ name: "Nord Lounger",
+ price: 825,
+ image: "/products/chair2.png",
+ description:
+ "You don’t have to go outside to be rugged. The Cigar rawhide sofa features a sturdy corner-blocked wooden frame and raw seams for that Malboro-person look. This brown leather sofa is cozy in a cottage, cabin, or a condo. And the leather (the leather!) becomes more beautiful with use: subtle character markings such as insect bites, healed scars, and grain variation reflects a real vintage. Saddle up and pass the remote.",
+ brand: "Jason Bourne",
+ currentInventory: 13,
+ },
+ {
+ id: 14,
+ categories: [4, 5],
+ name: "Ceni Matte Oranve",
+ price: 720,
+ image: "/products/chair3.png",
+ description:
+ "You don’t have to go outside to be rugged. The Cigar rawhide sofa features a sturdy corner-blocked wooden frame and raw seams for that Malboro-person look. This brown leather sofa is cozy in a cottage, cabin, or a condo. And the leather (the leather!) becomes more beautiful with use: subtle character markings such as insect bites, healed scars, and grain variation reflects a real vintage. Saddle up and pass the remote.",
+ brand: "Jason Bourne",
+ currentInventory: 33,
+ },
+ {
+ id: 15,
+ categories: [4, 5],
+ name: "Abisko Green Recliner",
+ price: 2000,
+ image: "/products/chair4.png",
+ description:
+ "You don’t have to go outside to be rugged. The Cigar rawhide sofa features a sturdy corner-blocked wooden frame and raw seams for that Malboro-person look. This brown leather sofa is cozy in a cottage, cabin, or a condo. And the leather (the leather!) becomes more beautiful with use: subtle character markings such as insect bites, healed scars, and grain variation reflects a real vintage. Saddle up and pass the remote.",
+ brand: "Jason Bourne",
+ currentInventory: 23,
+ },
+ {
+ id: 16,
+ categories: [4, 5],
+ name: "Denim on Denim Single",
+ price: 1100,
+ image: "/products/chair5.png",
+ description:
+ "You don’t have to go outside to be rugged. The Cigar rawhide sofa features a sturdy corner-blocked wooden frame and raw seams for that Malboro-person look. This brown leather sofa is cozy in a cottage, cabin, or a condo. And the leather (the leather!) becomes more beautiful with use: subtle character markings such as insect bites, healed scars, and grain variation reflects a real vintage. Saddle up and pass the remote.",
+ brand: "Jason Bourne",
+ currentInventory: 13,
+ },
+ {
+ id: 17,
+ categories: [4, 5],
+ name: "Levo Tan Lounge Chair",
+ price: 600,
+ image: "/products/chair6.png",
+ description:
+ "You don’t have to go outside to be rugged. The Cigar rawhide sofa features a sturdy corner-blocked wooden frame and raw seams for that Malboro-person look. This brown leather sofa is cozy in a cottage, cabin, or a condo. And the leather (the leather!) becomes more beautiful with use: subtle character markings such as insect bites, healed scars, and grain variation reflects a real vintage. Saddle up and pass the remote.",
+ brand: "Jason Bourne",
+ currentInventory: 15,
+ },
+
+ {
+ id: 18,
+ categories: [4, 5],
+ name: "Anime Tint Recliner",
+ price: 775,
+ image: "/products/chair7.png",
+ description:
+ "You don’t have to go outside to be rugged. The Cigar rawhide sofa features a sturdy corner-blocked wooden frame and raw seams for that Malboro-person look. This brown leather sofa is cozy in a cottage, cabin, or a condo. And the leather (the leather!) becomes more beautiful with use: subtle character markings such as insect bites, healed scars, and grain variation reflects a real vintage. Saddle up and pass the remote.",
+ brand: "Jason Bourne",
+ currentInventory: 44,
+ },
+ {
+ id: 19,
+ categories: [4, 5],
+ name: "Josh Jones Red Chair",
+ price: 1200,
+ image: "/products/chair8.png",
+ description:
+ "You don’t have to go outside to be rugged. The Cigar rawhide sofa features a sturdy corner-blocked wooden frame and raw seams for that Malboro-person look. This brown leather sofa is cozy in a cottage, cabin, or a condo. And the leather (the leather!) becomes more beautiful with use: subtle character markings such as insect bites, healed scars, and grain variation reflects a real vintage. Saddle up and pass the remote.",
+ brand: "Jason Bourne",
+ currentInventory: 17,
+ },
+ {
+ id: 20,
+ categories: [4, 5],
+ name: "Black Sand Lounge",
+ price: 1600,
+ image: "/products/chair9.png",
+ description:
+ "You don’t have to go outside to be rugged. The Cigar rawhide sofa features a sturdy corner-blocked wooden frame and raw seams for that Malboro-person look. This brown leather sofa is cozy in a cottage, cabin, or a condo. And the leather (the leather!) becomes more beautiful with use: subtle character markings such as insect bites, healed scars, and grain variation reflects a real vintage. Saddle up and pass the remote.",
+ brand: "Jason Bourne",
+ currentInventory: 28,
+ },
+ {
+ id: 21,
+ categories: [4, 5],
+ name: "Mint Beige Workchair",
+ price: 550,
+ image: "/products/chair10.png",
+ description:
+ "You don’t have to go outside to be rugged. The Cigar rawhide sofa features a sturdy corner-blocked wooden frame and raw seams for that Malboro-person look. This brown leather sofa is cozy in a cottage, cabin, or a condo. And the leather (the leather!) becomes more beautiful with use: subtle character markings such as insect bites, healed scars, and grain variation reflects a real vintage. Saddle up and pass the remote.",
+ brand: "Jason Bourne",
+ currentInventory: 31,
+ },
+]
diff --git a/yarn.lock b/yarn.lock
index b7c36f8..5428120 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -160,6 +160,23 @@
resolved "https://registry.yarnpkg.com/@opentelemetry/context-base/-/context-base-0.14.0.tgz#c67fc20a4d891447ca1a855d7d70fa79a3533001"
integrity sha512-sDOAZcYwynHFTbLo6n8kIbLiVF3a3BLkrmehJUyEbT9F+Smbi47kLGS2gG2g0fjBLR/Lr1InPD7kXL7FaTqEkw==
+"@prisma/client@^2.21.2":
+ version "2.21.2"
+ resolved "https://registry.yarnpkg.com/@prisma/client/-/client-2.21.2.tgz#ca8489832da1d61add429390210be4d7896e5e29"
+ integrity sha512-UjkOXYpxLuHyoMDsP2m0LTcxhrjQa1dEOLFe3aDrO/BLrs/2yUxyPdtwSKxizRXFzuXSGkKIK225vcjZRuMpAg==
+ dependencies:
+ "@prisma/engines-version" "2.21.0-36.e421996c87d5f3c8f7eeadd502d4ad402c89464d"
+
+"@prisma/engines-version@2.21.0-36.e421996c87d5f3c8f7eeadd502d4ad402c89464d":
+ version "2.21.0-36.e421996c87d5f3c8f7eeadd502d4ad402c89464d"
+ resolved "https://registry.yarnpkg.com/@prisma/engines-version/-/engines-version-2.21.0-36.e421996c87d5f3c8f7eeadd502d4ad402c89464d.tgz#b749bae4173eb766dafc298aaa7d883c2dbe555b"
+ integrity sha512-9/fE1gdPWmjbMjXUJjrTMt848TsgEnSjZCcJ1wu9OAcRlAKKJBLehftqC3gSEShDijvMYgeTdGU5snMpwmv4vg==
+
+"@prisma/engines@2.21.0-36.e421996c87d5f3c8f7eeadd502d4ad402c89464d":
+ version "2.21.0-36.e421996c87d5f3c8f7eeadd502d4ad402c89464d"
+ resolved "https://registry.yarnpkg.com/@prisma/engines/-/engines-2.21.0-36.e421996c87d5f3c8f7eeadd502d4ad402c89464d.tgz#aafed60c9506bc766e49ea60b9f8ce7da2385bc6"
+ integrity sha512-L57tvSoom2GDWDqik4wrAUBvLTAv5MTm2OOzNMBKsv0w5cX7ONoZ8KnGQN+csmdJpQVBs93dIvIBm72OO+l/9Q==
+
"@stripe/react-stripe-js@^1.1.2":
version "1.1.2"
resolved "https://registry.yarnpkg.com/@stripe/react-stripe-js/-/react-stripe-js-1.1.2.tgz#a7f5ef5b4d7dc7fa723501b706644414cfe6dcba"
@@ -177,6 +194,24 @@
resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.6.tgz#f4c7ec43e81b319a9815115031709f26987891f0"
integrity sha512-3c+yGKvVP5Y9TYBEibGNR+kLtijnj7mYrXRg+WpFb2X9xm04g/DXYkfg4hmzJQosc9snFNUPkbYIhu+KAm6jJw==
+"@types/node@^14.14.41":
+ version "14.14.41"
+ resolved "https://registry.yarnpkg.com/@types/node/-/node-14.14.41.tgz#d0b939d94c1d7bd53d04824af45f1139b8c45615"
+ integrity sha512-dueRKfaJL4RTtSa7bWeTK1M+VH+Gns73oCgzvYfHZywRCoPSd8EkXBL0mZ9unPTveBn+D9phZBaxuzpwjWkW0g==
+
+"@types/prop-types@*":
+ version "15.7.3"
+ resolved "https://registry.yarnpkg.com/@types/prop-types/-/prop-types-15.7.3.tgz#2ab0d5da2e5815f94b0b9d4b95d1e5f243ab2ca7"
+ integrity sha512-KfRL3PuHmqQLOG+2tGpRO26Ctg+Cq1E01D2DMriKEATHgWLfeNDmq9e29Q9WIky0dQ3NPkd1mzYH8Lm936Z9qw==
+
+"@types/react@^17.0.2":
+ version "17.0.2"
+ resolved "https://registry.yarnpkg.com/@types/react/-/react-17.0.2.tgz#3de24c4efef902dd9795a49c75f760cbe4f7a5a8"
+ integrity sha512-Xt40xQsrkdvjn1EyWe1Bc0dJLcil/9x2vAuW7ya+PuQip4UYUaXyhzWmAbwRsdMgwOFHpfp7/FFZebDU6Y8VHA==
+ dependencies:
+ "@types/prop-types" "*"
+ csstype "^3.0.2"
+
"@webassemblyjs/ast@1.9.0":
version "1.9.0"
resolved "https://registry.yarnpkg.com/@webassemblyjs/ast/-/ast-1.9.0.tgz#bd850604b4042459a5a41cd7d338cbed695ed964"
@@ -469,6 +504,11 @@ are-we-there-yet@~1.1.2:
delegates "^1.0.0"
readable-stream "^2.0.6"
+arg@^4.1.0:
+ version "4.1.3"
+ resolved "https://registry.yarnpkg.com/arg/-/arg-4.1.3.tgz#269fc7ad5b8e42cb63c896d5666017261c144089"
+ integrity sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==
+
arity-n@^1.0.4:
version "1.0.4"
resolved "https://registry.yarnpkg.com/arity-n/-/arity-n-1.0.4.tgz#d9e76b11733e08569c0847ae7b39b2860b30b745"
@@ -1134,6 +1174,11 @@ create-hmac@^1.1.0, create-hmac@^1.1.4, create-hmac@^1.1.7:
safe-buffer "^5.0.1"
sha.js "^2.4.8"
+create-require@^1.1.0:
+ version "1.1.1"
+ resolved "https://registry.yarnpkg.com/create-require/-/create-require-1.1.1.tgz#c1d7e8f1e5f6cfc9ff65f9cd352d37348756c333"
+ integrity sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==
+
cross-fetch@3.0.6:
version "3.0.6"
resolved "https://registry.yarnpkg.com/cross-fetch/-/cross-fetch-3.0.6.tgz#3a4040bc8941e653e0e9cf17f29ebcd177d3365c"
@@ -1344,6 +1389,11 @@ didyoumean@^1.2.1:
resolved "https://registry.yarnpkg.com/didyoumean/-/didyoumean-1.2.1.tgz#e92edfdada6537d484d73c0172fd1eba0c4976ff"
integrity sha1-6S7f2tplN9SE1zwBcv0eugxJdv8=
+diff@^4.0.1:
+ version "4.0.2"
+ resolved "https://registry.yarnpkg.com/diff/-/diff-4.0.2.tgz#60f3aecb89d5fae520c11aa19efc2bb982aade7d"
+ integrity sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==
+
diffie-hellman@^5.0.0:
version "5.0.3"
resolved "https://registry.yarnpkg.com/diffie-hellman/-/diffie-hellman-5.0.3.tgz#40e8ee98f55a2149607146921c63e1ae5f3d2875"
@@ -2379,6 +2429,11 @@ make-dir@^3.0.2:
dependencies:
semver "^6.0.0"
+make-error@^1.1.1:
+ version "1.3.6"
+ resolved "https://registry.yarnpkg.com/make-error/-/make-error-1.3.6.tgz#2eb2e37ea9b67c4891f684a1394799af484cf7a2"
+ integrity sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==
+
map-cache@^0.2.2:
version "0.2.2"
resolved "https://registry.yarnpkg.com/map-cache/-/map-cache-0.2.2.tgz#c32abd0bd6525d9b051645bb4f26ac5dc98a0dbf"
@@ -3114,6 +3169,13 @@ pretty-hrtime@^1.0.3:
resolved "https://registry.yarnpkg.com/pretty-hrtime/-/pretty-hrtime-1.0.3.tgz#b7e3ea42435a4c9b2759d99e0f201eb195802ee1"
integrity sha1-t+PqQkNaTJsnWdmeDyAesZWALuE=
+prisma@^2.21.2:
+ version "2.21.2"
+ resolved "https://registry.yarnpkg.com/prisma/-/prisma-2.21.2.tgz#a73b4cbe92a884aa98b317684d6741871b5e94a5"
+ integrity sha512-Ux9ovDIUHsMNLGLtuo6BBKCuuBVLpZmhM2LXF+VBUQvsbmsVfp3u5CRyHGEqaZqMibYQJISy7YZYF/RgozHKkQ==
+ dependencies:
+ "@prisma/engines" "2.21.0-36.e421996c87d5f3c8f7eeadd502d4ad402c89464d"
+
process-nextick-args@~2.0.0:
version "2.0.1"
resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2"
@@ -3675,7 +3737,7 @@ source-map-resolve@^0.5.0, source-map-resolve@^0.5.2:
source-map-url "^0.4.0"
urix "^0.1.0"
-source-map-support@~0.5.12, source-map-support@~0.5.19:
+source-map-support@^0.5.17, source-map-support@~0.5.12, source-map-support@~0.5.19:
version "0.5.19"
resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.19.tgz#a98b62f86dcaf4f67399648c085291ab9e8fed61"
integrity sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw==
@@ -4058,6 +4120,18 @@ traverse@0.6.6:
resolved "https://registry.yarnpkg.com/traverse/-/traverse-0.6.6.tgz#cbdf560fd7b9af632502fed40f918c157ea97137"
integrity sha1-y99WD9e5r2MlAv7UD5GMFX6pcTc=
+ts-node@^9.1.1:
+ version "9.1.1"
+ resolved "https://registry.yarnpkg.com/ts-node/-/ts-node-9.1.1.tgz#51a9a450a3e959401bda5f004a72d54b936d376d"
+ integrity sha512-hPlt7ZACERQGf03M253ytLY3dHbGNGrAq9qIHWUY9XHYl1z7wYngSr3OQ5xmui8o2AaxsONxIzjafLUiWBo1Fg==
+ dependencies:
+ arg "^4.1.0"
+ create-require "^1.1.0"
+ diff "^4.0.1"
+ make-error "^1.1.1"
+ source-map-support "^0.5.17"
+ yn "3.1.1"
+
ts-pnp@^1.1.6:
version "1.2.0"
resolved "https://registry.yarnpkg.com/ts-pnp/-/ts-pnp-1.2.0.tgz#a500ad084b0798f1c3071af391e65912c86bca92"
@@ -4100,6 +4174,11 @@ typedarray@^0.0.6:
resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777"
integrity sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=
+typescript@^4.2.4:
+ version "4.2.4"
+ resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.2.4.tgz#8610b59747de028fda898a8aef0e103f156d0961"
+ integrity sha512-V+evlYHZnQkaz8TRBuxTA92yZBPotr5H+WhQ7bD3hZUndx5tGOa1fuCgeSjxAzM1RiN5IzvadIXTVefuuwZCRg==
+
union-value@^1.0.0:
version "1.0.1"
resolved "https://registry.yarnpkg.com/union-value/-/union-value-1.0.1.tgz#0b6fe7b835aecda61c6ea4d4f02c14221e109847"
@@ -4339,6 +4418,11 @@ yallist@^4.0.0:
resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72"
integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==
+yn@3.1.1:
+ version "3.1.1"
+ resolved "https://registry.yarnpkg.com/yn/-/yn-3.1.1.tgz#1e87401a09d767c1d5eab26a6e4c185182d2eb50"
+ integrity sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==
+
yocto-queue@^0.1.0:
version "0.1.0"
resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b"