From 4ac2342860ed17b59245fad5c596c179b96db3df Mon Sep 17 00:00:00 2001 From: jesieldotdev Date: Fri, 8 Nov 2024 09:46:56 -0400 Subject: [PATCH 1/2] feat: users --- src/app/lib/{data.ts => posts_controller.ts} | 17 +++-- src/app/lib/users_controller.ts | 76 ++++++++++++++++++++ 2 files changed, 88 insertions(+), 5 deletions(-) rename src/app/lib/{data.ts => posts_controller.ts} (79%) create mode 100644 src/app/lib/users_controller.ts diff --git a/src/app/lib/data.ts b/src/app/lib/posts_controller.ts similarity index 79% rename from src/app/lib/data.ts rename to src/app/lib/posts_controller.ts index 106c2f2..2e7b701 100644 --- a/src/app/lib/data.ts +++ b/src/app/lib/posts_controller.ts @@ -1,5 +1,12 @@ import supabase from '../../config/database'; // Importando o cliente Supabase +export interface UserInput{ + id?: string + title: string + slug: string + author_id: number +} + // Obter todos os posts export const getPosts = async () => { const { data, error } = await supabase @@ -13,11 +20,11 @@ export const getPosts = async () => { }; // Adicionar um novo post -export const addPost = async (post: { title: string; }) => { +export const addPost = async ({title, slug, author_id}:UserInput) => { const { data, error } = await supabase .from('posts') // Nome da tabela .insert([ - {title: post.title } + {title, slug, author_id } ]); if (error) throw new Error(error.message); @@ -41,10 +48,10 @@ export const deletePost = async (id: string) => { }; // Atualizar um post pelo id -export const updatePost = async (id: string, title: string, desc: string) => { +export const updatePost = async ({id, title, slug, author_id}:UserInput) => { const { data, error } = await supabase .from('posts') - .update({ title, desc }) + .update({ title, slug, author_id }) .eq('id', id); // A condição de atualizar pelo id if (error) throw new Error(error.message); @@ -53,7 +60,7 @@ export const updatePost = async (id: string, title: string, desc: string) => { }; // Obter um post pelo id -export const getById = async (id: string) => { +export const getPostById = async (id: string) => { const { data, error } = await supabase .from('posts') .select('*') diff --git a/src/app/lib/users_controller.ts b/src/app/lib/users_controller.ts new file mode 100644 index 0000000..7a7304d --- /dev/null +++ b/src/app/lib/users_controller.ts @@ -0,0 +1,76 @@ +import supabase from '../../config/database'; // Importando o cliente Supabase + +interface UserInputProps{ + id?:number + username: string + email: string + password: string + is_admin: boolean +} +// Obter todos os posts +export const getUsers = async () => { + const { data, error } = await supabase + .from('users') // Nome da tabela + .select('*'); // Seleciona todos os campos + + console.log(data) + + if (error) throw new Error(error.message); + return data; +}; + +// Adicionar um novo post +export const addUser = async ({username, password, is_admin, email}:UserInputProps) => { + const { data, error } = await supabase + .from('users') // Nome da tabela + .insert([ + {username, password, is_admin, email} + ]); + + if (error) throw new Error(error.message); + return data; +}; + +// Deletar um post pelo id +export const deleteUser = async (id: string) => { + const { data, error } = await supabase + .from('users') + .delete() + .eq('id', id); // A condição de deletar pelo id + + if (error) throw new Error(error.message); + if (!data) { + throw new Error("NO USER FOUND"); + } + + + return data; +}; + +// Atualizar um post pelo id +export const updateUser = async ({username, password, is_admin, email}:UserInputProps) => { + const { data, error } = await supabase + .from('users') + .update({ username, email, password, is_admin }) + .eq('id', id); // A condição de atualizar pelo id + + if (error) throw new Error(error.message); + if (!data) throw new Error("NO USER FOUND"); + return data; +}; + +// Obter um post pelo id +export const getUserById = async (id: string) => { + + console.log(id); + const { data, error } = await supabase + .from('users') + .select('*') + .eq('id', id) + .single(); // Para pegar apenas um resultado (usamos .single() para retornar um único item) + + + if (error) throw new Error(error.message); + if (!data) throw new Error("NO USER FOUND"); + return data; +}; From 5bf09b491687d3348f2d4533f0180235961fb969 Mon Sep 17 00:00:00 2001 From: jesieldotdev Date: Sat, 9 Nov 2024 02:26:10 -0400 Subject: [PATCH 2/2] s --- package.json | 5 +- src/app/api/blog/posts.json | 17 ---- src/app/api/posts.json | 1 - src/app/api/{blog => posts}/[id]/route.ts | 16 +-- src/app/api/{blog => posts}/route.ts | 6 +- src/app/api/users/[id]/route.ts | 51 ++++++++++ src/app/api/users/route.ts | 35 +++++++ src/app/page.tsx | 3 +- src/models/User.ts | 88 ++++++++++++++++ yarn.lock | 119 +--------------------- 10 files changed, 189 insertions(+), 152 deletions(-) delete mode 100644 src/app/api/blog/posts.json delete mode 100644 src/app/api/posts.json rename src/app/api/{blog => posts}/[id]/route.ts (72%) rename src/app/api/{blog => posts}/route.ts (85%) create mode 100644 src/app/api/users/[id]/route.ts create mode 100644 src/app/api/users/route.ts create mode 100644 src/models/User.ts diff --git a/package.json b/package.json index fc8fc7d..04408ec 100644 --- a/package.json +++ b/package.json @@ -10,14 +10,11 @@ }, "dependencies": { "@supabase/supabase-js": "^2.46.1", - "bufferutil": "^4.0.8", "next": "latest", "pg": "^8.13.1", "pg-hstore": "^2.3.4", "react": "latest", - "react-dom": "latest", - "sequelize": "^6.37.5", - "utf-8-validate": "^6.0.5" + "react-dom": "latest" }, "devDependencies": { "@types/node": "latest", diff --git a/src/app/api/blog/posts.json b/src/app/api/blog/posts.json deleted file mode 100644 index bdbe554..0000000 --- a/src/app/api/blog/posts.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "posts": [ - { - "title": "sdfs", - "id": "sdfs", - "desc": "Teste", - "date": "2023-09-29T21:15:25.841Z" - }, - { - "title": "ffff", - "id": "sdfs", - "desc": "Teste", - "date": "2023-09-29T21:15:25.841Z" - } - ] - -} \ No newline at end of file diff --git a/src/app/api/posts.json b/src/app/api/posts.json deleted file mode 100644 index 4a240b3..0000000 --- a/src/app/api/posts.json +++ /dev/null @@ -1 +0,0 @@ -[{"title":"My third Post","desc":"This tutorial...","date":"2023-09-29T23:59:21.457Z","id":"1696031961457"},{"title":"My post","desc":"This tutorial...","date":"2023-09-29T23:59:28.357Z","id":"1696031968357"}] \ No newline at end of file diff --git a/src/app/api/blog/[id]/route.ts b/src/app/api/posts/[id]/route.ts similarity index 72% rename from src/app/api/blog/[id]/route.ts rename to src/app/api/posts/[id]/route.ts index b5324e8..fbbce69 100644 --- a/src/app/api/blog/[id]/route.ts +++ b/src/app/api/posts/[id]/route.ts @@ -1,10 +1,10 @@ -import { deletePost, getById, updatePost } from "@/app/lib/data"; +import { deletePost, getPostById, updatePost } from "@/app/lib/posts_controller"; import { NextResponse } from "next/server"; export const GET = async (req: Request) => { try { - const id = req.url.split("blog/")[1]; - const post = getById(id); + const id = req.url.split("posts/")[1]; + const post = await getPostById(id); console.log(post); if (!post) { return NextResponse.json({ message: "Error" }, { status: 404 }); @@ -18,9 +18,9 @@ export const GET = async (req: Request) => { export const PUT = async (req: Request) => { try { - const { title, desc } = await req.json(); - const id = req.url.split("blog/")[1]; - updatePost(id, title, desc); + const { title, slug, author_id} = await req.json(); + const id = req.url.split("posts/")[1]; + updatePost(id, title, slug, author_id); return NextResponse.json({ message: "OK" }, { status: 200 }); } catch (err) { return NextResponse.json({message: 'Error'}, {status: 500}) @@ -29,9 +29,9 @@ export const PUT = async (req: Request) => { export const DELETE = async (req: Request) => { try { - const id = req.url.split("blog/")[1]; + const id = req.url.split("posts/")[1]; - const post = getById(id); + const post = getPostById(id); if (!post) { return NextResponse.json({ message: "Error" }, { status: 404 }); diff --git a/src/app/api/blog/route.ts b/src/app/api/posts/route.ts similarity index 85% rename from src/app/api/blog/route.ts rename to src/app/api/posts/route.ts index bf10d8f..e0841b4 100644 --- a/src/app/api/blog/route.ts +++ b/src/app/api/posts/route.ts @@ -1,4 +1,4 @@ -import { getPosts, addPost, deletePost } from "@/app/lib/data" +import { getPosts, addPost, deletePost } from "@/app/lib/posts_controller" import { NextResponse } from "next/server" export const GET = async (req: Request) => { @@ -18,10 +18,10 @@ export const GET = async (req: Request) => { } export const POST = async (req: Request) => { - const { title } = await req.json(); + const { title, slug, author_id } = await req.json(); try { - const post = { title }; + const post = { title, slug, author_id }; await addPost(post); // Garantir que a função addPost aguarde a inserção do post return NextResponse.json({ message: "Ok", post }, { status: 201 }); } catch (err) { diff --git a/src/app/api/users/[id]/route.ts b/src/app/api/users/[id]/route.ts new file mode 100644 index 0000000..ff64e12 --- /dev/null +++ b/src/app/api/users/[id]/route.ts @@ -0,0 +1,51 @@ +import { deleteUser, getUserById, updateUser } from "@/app/lib/users_controller"; +import { NextResponse } from "next/server"; + +export const GET = async (req: Request) => { + try { + const id = req.url.split("users/")[1] + const user = await getUserById(id) + + + if (!user) { + return NextResponse.json({ message: "Error" }, { status: 404 }); + } + + + return NextResponse.json({ message: "OK", user}, { status: 200 }); + } catch (err) { + NextResponse.json({ message: "Error", err }, { status: 500 }); + } +}; + +export const PUT = async (req: Request) => { + try { + const { username, password, email, is_admin } = await req.json(); + const id = req.url.split("users/")[1]; + updateUser(id, username, password, is_admin); + return NextResponse.json({ message: "OK" }, { status: 200 }); + } catch (err) { + return NextResponse.json({message: 'Error'}, {status: 500}) + } +}; + +export const DELETE = async (req: Request) => { + try { + const id = req.url.split("users/")[1]; + + const user = getUserById(id); + + if (!post) { + return NextResponse.json({ message: "Error" }, { status: 404 }); + } + deleteUser(id); + + return NextResponse.json({ message: "OK" }, { status: 200 }); + } catch (err) { + NextResponse.json({ message: "Error", err }, { status: 500 }); + } +}; + +export const POST = async (req: Request) => { + console.log("GET"); +}; diff --git a/src/app/api/users/route.ts b/src/app/api/users/route.ts new file mode 100644 index 0000000..5a92ce0 --- /dev/null +++ b/src/app/api/users/route.ts @@ -0,0 +1,35 @@ +import { getUsers, addUser, deleteUser } from "@/app/lib/users_controller" +import { NextResponse } from "next/server" + +export const GET = async (req: Request) => { + try { + // Aguarda a resolução da promessa + const users = await getUsers(); + + return NextResponse.json({ message: 'OK', users }, { status: 200 }); + } catch (err) { + if (err instanceof Error) { + return NextResponse.json({ message: 'Error', err: err.message }, { status: 500 }); + } else { + return NextResponse.json({ message: 'Unknown error' }, { status: 500 }); + } + } + +} + +export const POST = async (req: Request) => { + const { username, email, password, is_admin } = await req.json(); + + try { + const user = { username, email, password, is_admin }; + await addUser(user); // Garantir que a função addPost aguarde a inserção do post + return NextResponse.json({ message: "Ok", user }, { status: 201 }); + } catch (err) { + if (err instanceof Error) { + return NextResponse.json({ message: 'Error', err: err.message }, { status: 500 }); + } else { + return NextResponse.json({ message: 'Unknown error' }, { status: 500 }); + } + } + +} diff --git a/src/app/page.tsx b/src/app/page.tsx index eb9e730..fce0f11 100644 --- a/src/app/page.tsx +++ b/src/app/page.tsx @@ -4,7 +4,8 @@ export default function Home() { return (

My Api

- Blog + posts
+ users
) } diff --git a/src/models/User.ts b/src/models/User.ts new file mode 100644 index 0000000..bd43d2e --- /dev/null +++ b/src/models/User.ts @@ -0,0 +1,88 @@ +import supabase from "../config/database"; // Caminho para o seu cliente Supabase + +interface User { + id: string; + username: string; + password: string; + createsAt: Date + is_admin: boolean; // O Supabase geralmente lida com datas como strings em formato ISO +} + +interface UserInputProps{ + username: string + password: string + is_admin: boolean +} + +class UserModel { + // Função para obter todos os posts + static async getAllUsers(): Promise { + const { data, error } = await supabase + .from("users") + .select("*"); + + if (error) { + throw new Error(error.message); + } + + return data as User[]; + } + + // Função para criar um novo post + static async createUser(UserInputProps): Promise { + const { data, error } = await supabase + .from("users") + .insert([{ username, password, is_admin }]) + .single(); + + if (error) { + throw new Error(error.message); + } + + return data as User; + } + + // Função para obter um post por ID + static async getUserById(userId: string): Promise { + const { data, error } = await supabase + .from("users") + .select("*") + .eq("id", userId) + .single(); + + if (error) { + throw new Error(error.message); + } + + return data as User | null; + } + + // Função para atualizar um post + static async updateUser(UserInputProps): Promise { + const { data, error } = await supabase + .from("users") + .update({ username, password, is_admin}) + .eq("id", userId) + .single(); + + if (error) { + throw new Error(error.message); + } + + return data as User; + } + + // Função para deletar um post + static async deleteUser(userId: string): Promise { + const { error } = await supabase + .from("users") + .delete() + .eq("id", userId); + + if (error) { + throw new Error(error.message); + } + } +} + +export default UserModel; diff --git a/yarn.lock b/yarn.lock index 7cd957e..96458e7 100644 --- a/yarn.lock +++ b/yarn.lock @@ -212,23 +212,11 @@ dependencies: tslib "^2.4.0" -"@types/debug@^4.1.8": - version "4.1.12" - resolved "https://registry.yarnpkg.com/@types/debug/-/debug-4.1.12.tgz#a155f21690871953410df4b6b6f53187f0500917" - integrity sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ== - dependencies: - "@types/ms" "*" - "@types/json5@^0.0.29": version "0.0.29" resolved "https://registry.yarnpkg.com/@types/json5/-/json5-0.0.29.tgz#ee28707ae94e11d2b827bcbe5270bcea7f3e71ee" integrity sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ== -"@types/ms@*": - version "0.7.34" - resolved "https://registry.yarnpkg.com/@types/ms/-/ms-0.7.34.tgz#10964ba0dee6ac4cd462e2795b6bebd407303433" - integrity sha512-nG96G3Wp6acyAgJqGasjODb+acrI7KltPiRxzHPXnP3NgI28bpQDRv53olbqGXbfcgF5aiiHmO3xpwEpS5Ld9g== - "@types/node@*": version "22.9.0" resolved "https://registry.yarnpkg.com/@types/node/-/node-22.9.0.tgz#b7f16e5c3384788542c72dc3d561a7ceae2c0365" @@ -272,11 +260,6 @@ resolved "https://registry.yarnpkg.com/@types/scheduler/-/scheduler-0.16.4.tgz#fedc3e5b15c26dc18faae96bf1317487cb3658cf" integrity sha512-2L9ifAGl7wmXwP4v3pN4p2FLhD0O1qsJpvKmNin5VA8+UvNVb447UDaAEV6UdrkA+m/Xs58U1RFps44x6TFsVQ== -"@types/validator@^13.7.17": - version "13.12.2" - resolved "https://registry.yarnpkg.com/@types/validator/-/validator-13.12.2.tgz#760329e756e18a4aab82fc502b51ebdfebbe49f5" - integrity sha512-6SlHBzUW8Jhf3liqrGGXyTJSIFe4nqlJ5A5KaMZ2l/vbM3Wh3KSybots/wfWVzNLK4D1NZluDlSQIbIEPx6oyA== - "@types/ws@^8.5.10": version "8.5.13" resolved "https://registry.yarnpkg.com/@types/ws/-/ws-8.5.13.tgz#6414c280875e2691d0d1e080b05addbf5cb91e20" @@ -501,13 +484,6 @@ braces@^3.0.2: dependencies: fill-range "^7.0.1" -bufferutil@^4.0.8: - version "4.0.8" - resolved "https://registry.yarnpkg.com/bufferutil/-/bufferutil-4.0.8.tgz#1de6a71092d65d7766c4d8a522b261a6e787e8ea" - integrity sha512-4T53u4PdgsXqKaIctwF8ifXlRTTmEPJ8iEPWFdGZvcf7sbwYo6FKFEX9eNNAnzFZ7EzJAQ3CJeOtCRA4rDp7Pw== - dependencies: - node-gyp-build "^4.3.0" - busboy@1.6.0: version "1.6.0" resolved "https://registry.yarnpkg.com/busboy/-/busboy-1.6.0.tgz#966ea36a9502e43cdb9146962523b92f531f6893" @@ -645,11 +621,6 @@ doctrine@^3.0.0: dependencies: esutils "^2.0.2" -dottie@^2.0.6: - version "2.0.6" - resolved "https://registry.yarnpkg.com/dottie/-/dottie-2.0.6.tgz#34564ebfc6ec5e5772272d466424ad5b696484d4" - integrity sha512-iGCHkfUc5kFekGiqhe8B/mdaurD+lakO9txNnTvKtA6PISrw86LgqHvRzWYPyoE2Ph5aMIrCw9/uko6XHTKCwA== - emoji-regex@^9.2.2: version "9.2.2" resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-9.2.2.tgz#840c8803b0d8047f4ff0cf963176b32d4ef3ed72" @@ -1234,11 +1205,6 @@ imurmurhash@^0.1.4: resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" integrity sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA== -inflection@^1.13.4: - version "1.13.4" - resolved "https://registry.yarnpkg.com/inflection/-/inflection-1.13.4.tgz#65aa696c4e2da6225b148d7a154c449366633a32" - integrity sha512-6I/HUDeYFfuNCVS3td055BaXBwKYuzw7K3ExVMStBowKo9oOAMJIXIHvdyR3iboTCp1b+1i5DSkIZTcwIktuDw== - inflight@^1.0.4: version "1.0.6" resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" @@ -1529,11 +1495,6 @@ lodash.merge@^4.6.2: resolved "https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-4.6.2.tgz#558aa53b43b661e1925a0afdfa36a9a1085fe57a" integrity sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ== -lodash@^4.17.21: - version "4.17.21" - resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" - integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== - loose-envify@^1.1.0, loose-envify@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.4.0.tgz#71ee51fa7be4caec1a63839f7e682d8132d30caf" @@ -1573,18 +1534,6 @@ minimist@^1.2.0, minimist@^1.2.6: resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.8.tgz#c1a464e7693302e082a075cee0c057741ac4772c" integrity sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA== -moment-timezone@^0.5.43: - version "0.5.46" - resolved "https://registry.yarnpkg.com/moment-timezone/-/moment-timezone-0.5.46.tgz#a21aa6392b3c6b3ed916cd5e95858a28d893704a" - integrity sha512-ZXm9b36esbe7OmdABqIWJuBBiLLwAjrN7CE+7sYdCCx82Nabt1wHDj8TVseS59QIlfFPbOoiBPm6ca9BioG4hw== - dependencies: - moment "^2.29.4" - -moment@^2.29.4: - version "2.30.1" - resolved "https://registry.yarnpkg.com/moment/-/moment-2.30.1.tgz#f8c91c07b7a786e30c59926df530b4eac96974ae" - integrity sha512-uEmtNhbDOrWPFS+hdjFCBfy9f2YoyzRpwcl+DqpC6taX21FzsTLQVbMV/W7PzNSX6x/bhC1zA3c2UQ5NzH6how== - ms@2.1.2: version "2.1.2" resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" @@ -1629,11 +1578,6 @@ next@latest: "@next/swc-win32-ia32-msvc" "13.5.3" "@next/swc-win32-x64-msvc" "13.5.3" -node-gyp-build@^4.3.0: - version "4.8.2" - resolved "https://registry.yarnpkg.com/node-gyp-build/-/node-gyp-build-4.8.2.tgz#4f802b71c1ab2ca16af830e6c1ea7dd1ad9496fa" - integrity sha512-IRUxE4BVsHWXkV/SFOut4qTlagw2aM8T5/vnTsmrHJvVoKueJHRc/JaFND7QDDc61kLYUJ6qlZM3sqTSyx2dTw== - object-assign@^4.1.1: version "4.1.1" resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" @@ -1774,7 +1718,7 @@ pg-cloudflare@^1.1.1: resolved "https://registry.yarnpkg.com/pg-cloudflare/-/pg-cloudflare-1.1.1.tgz#e6d5833015b170e23ae819e8c5d7eaedb472ca98" integrity sha512-xWPagP/4B6BgFO+EKz3JONXv3YDgvkbVrGw2mTo3D6tVDQRh1e7cqVGvyR3BE+eQgAvx1XhW/iEASj4/jCWl3Q== -pg-connection-string@^2.6.1, pg-connection-string@^2.7.0: +pg-connection-string@^2.7.0: version "2.7.0" resolved "https://registry.yarnpkg.com/pg-connection-string/-/pg-connection-string-2.7.0.tgz#f1d3489e427c62ece022dba98d5262efcb168b37" integrity sha512-PI2W9mv53rXJQEOb8xNR8lH7Hr+EKa6oJa38zsK0S/ky2er16ios1wLKhZyxzD7jUReiWokc9WK5nxSnC7W1TA== @@ -1971,11 +1915,6 @@ resolve@^2.0.0-next.4: path-parse "^1.0.7" supports-preserve-symlinks-flag "^1.0.0" -retry-as-promised@^7.0.4: - version "7.0.4" - resolved "https://registry.yarnpkg.com/retry-as-promised/-/retry-as-promised-7.0.4.tgz#9df73adaeea08cb2948b9d34990549dc13d800a2" - integrity sha512-XgmCoxKWkDofwH8WddD0w85ZfqYz+ZHlr5yo+3YUCfycWawU56T5ckWXsScsj5B8tqUcIG67DxXByo3VUgiAdA== - reusify@^1.0.4: version "1.0.4" resolved "https://registry.yarnpkg.com/reusify/-/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76" @@ -2033,33 +1972,6 @@ semver@^7.5.4: dependencies: lru-cache "^6.0.0" -sequelize-pool@^7.1.0: - version "7.1.0" - resolved "https://registry.yarnpkg.com/sequelize-pool/-/sequelize-pool-7.1.0.tgz#210b391af4002762f823188fd6ecfc7413020768" - integrity sha512-G9c0qlIWQSK29pR/5U2JF5dDQeqqHRragoyahj/Nx4KOOQ3CPPfzxnfqFPCSB7x5UgjOgnZ61nSxz+fjDpRlJg== - -sequelize@^6.37.5: - version "6.37.5" - resolved "https://registry.yarnpkg.com/sequelize/-/sequelize-6.37.5.tgz#2711ab97d0e0fe49c652368946a7312eb0f11cd7" - integrity sha512-10WA4poUb3XWnUROThqL2Apq9C2NhyV1xHPMZuybNMCucDsbbFuKg51jhmyvvAUyUqCiimwTZamc3AHhMoBr2Q== - dependencies: - "@types/debug" "^4.1.8" - "@types/validator" "^13.7.17" - debug "^4.3.4" - dottie "^2.0.6" - inflection "^1.13.4" - lodash "^4.17.21" - moment "^2.29.4" - moment-timezone "^0.5.43" - pg-connection-string "^2.6.1" - retry-as-promised "^7.0.4" - semver "^7.5.4" - sequelize-pool "^7.1.0" - toposort-class "^1.0.1" - uuid "^8.3.2" - validator "^13.9.0" - wkx "^0.5.0" - set-function-name@^2.0.0, set-function-name@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/set-function-name/-/set-function-name-2.0.1.tgz#12ce38b7954310b9f61faa12701620a0c882793a" @@ -2205,11 +2117,6 @@ to-regex-range@^5.0.1: dependencies: is-number "^7.0.0" -toposort-class@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/toposort-class/-/toposort-class-1.0.1.tgz#7ffd1f78c8be28c3ba45cd4e1a3f5ee193bd9988" - integrity sha512-OsLcGGbYF3rMjPUf8oKktyvCiUxSbqMMS39m33MAjLTC1DVIH6x3WSt63/M77ihI09+Sdfk1AXvfhCEeUmC7mg== - tr46@~0.0.3: version "0.0.3" resolved "https://registry.yarnpkg.com/tr46/-/tr46-0.0.3.tgz#8184fd347dac9cdc185992f3a6622e14b9d9ab6a" @@ -2318,23 +2225,6 @@ uri-js@^4.2.2: dependencies: punycode "^2.1.0" -utf-8-validate@^6.0.5: - version "6.0.5" - resolved "https://registry.yarnpkg.com/utf-8-validate/-/utf-8-validate-6.0.5.tgz#8087d39902be2cc15bdb21a426697ff256d65aab" - integrity sha512-EYZR+OpIXp9Y1eG1iueg8KRsY8TuT8VNgnanZ0uA3STqhHQTLwbl+WX76/9X5OY12yQubymBpaBSmMPkSTQcKA== - dependencies: - node-gyp-build "^4.3.0" - -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== - -validator@^13.9.0: - version "13.12.0" - resolved "https://registry.yarnpkg.com/validator/-/validator-13.12.0.tgz#7d78e76ba85504da3fee4fd1922b385914d4b35f" - integrity sha512-c1Q0mCiPlgdTVVVIJIrBuxNicYE+t/7oKeI9MWLj3fh/uq2Pxh/3eeWbVZ4OcGW1TUf53At0njHw5SMdA3tmMg== - watchpack@2.4.0: version "2.4.0" resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-2.4.0.tgz#fa33032374962c78113f93c7f2fb4c54c9862a5d" @@ -2413,13 +2303,6 @@ which@^2.0.1: dependencies: isexe "^2.0.0" -wkx@^0.5.0: - version "0.5.0" - resolved "https://registry.yarnpkg.com/wkx/-/wkx-0.5.0.tgz#c6c37019acf40e517cc6b94657a25a3d4aa33e8c" - integrity sha512-Xng/d4Ichh8uN4l0FToV/258EjMGU9MGcA0HV2d9B/ZpZB3lqQm7nkOdZdm5GhKtLLhAE7PiVQwN4eN+2YJJUg== - dependencies: - "@types/node" "*" - wrappy@1: version "1.0.2" resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f"