forked from Transparency/kgroad-frontend2
remade folder structure, fixed problem with build
This commit is contained in:
parent
60b136effd
commit
1468fac1cc
1
.gitignore
vendored
1
.gitignore
vendored
@ -5,6 +5,7 @@
|
|||||||
/.pnp
|
/.pnp
|
||||||
.pnp.js
|
.pnp.js
|
||||||
.yarn/install-state.gz
|
.yarn/install-state.gz
|
||||||
|
.env
|
||||||
|
|
||||||
# testing
|
# testing
|
||||||
/coverage
|
/coverage
|
||||||
|
@ -1,7 +0,0 @@
|
|||||||
import React from "react";
|
|
||||||
|
|
||||||
const page = () => {
|
|
||||||
return <div>page</div>;
|
|
||||||
};
|
|
||||||
|
|
||||||
export default page;
|
|
@ -1,3 +0,0 @@
|
|||||||
import RootLayout from "@/app/App";
|
|
||||||
|
|
||||||
export default RootLayout;
|
|
@ -1,3 +0,0 @@
|
|||||||
import Home from "@/pages/Home/Home";
|
|
||||||
|
|
||||||
export default Home;
|
|
@ -1,7 +0,0 @@
|
|||||||
import React from "react";
|
|
||||||
|
|
||||||
const page = () => {
|
|
||||||
return <div>page</div>;
|
|
||||||
};
|
|
||||||
|
|
||||||
export default page;
|
|
@ -1,7 +0,0 @@
|
|||||||
import React from "react";
|
|
||||||
|
|
||||||
const page = () => {
|
|
||||||
return <div>page</div>;
|
|
||||||
};
|
|
||||||
|
|
||||||
export default page;
|
|
3
lib/next-auth.d.ts
vendored
3
lib/next-auth.d.ts
vendored
@ -4,6 +4,7 @@ declare module "next-auth" {
|
|||||||
interface Session {
|
interface Session {
|
||||||
refresh_token: string;
|
refresh_token: string;
|
||||||
access_token: string;
|
access_token: string;
|
||||||
|
expires_in: string;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -13,6 +14,6 @@ declare module "next-auth/jwt" {
|
|||||||
interface JWT {
|
interface JWT {
|
||||||
refresh_token: string;
|
refresh_token: string;
|
||||||
access_token: string;
|
access_token: string;
|
||||||
exp: number;
|
expires_in: string;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
/** @type {import('next').NextConfig} */
|
/** @type {import('next').NextConfig} */
|
||||||
const nextConfig = {
|
const nextConfig = {
|
||||||
|
distDir: "build",
|
||||||
images: {
|
images: {
|
||||||
remotePatterns: [
|
remotePatterns: [
|
||||||
{
|
{
|
||||||
|
@ -10,6 +10,7 @@
|
|||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"axios": "^1.6.5",
|
"axios": "^1.6.5",
|
||||||
|
"dotenv": "^16.4.1",
|
||||||
"leaflet": "^1.9.4",
|
"leaflet": "^1.9.4",
|
||||||
"next": "14.1.0",
|
"next": "14.1.0",
|
||||||
"next-auth": "^4.24.5",
|
"next-auth": "^4.24.5",
|
||||||
@ -17,12 +18,13 @@
|
|||||||
"react-dom": "^18",
|
"react-dom": "^18",
|
||||||
"react-leaflet": "^4.2.1",
|
"react-leaflet": "^4.2.1",
|
||||||
"sass": "^1.70.0",
|
"sass": "^1.70.0",
|
||||||
|
"sharp": "^0.33.2",
|
||||||
"use-debounce": "^10.0.0",
|
"use-debounce": "^10.0.0",
|
||||||
"zustand": "^4.5.0"
|
"zustand": "^4.5.0"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@types/leaflet": "^1.9.8",
|
"@types/leaflet": "^1.9.8",
|
||||||
"@types/node": "^20",
|
"@types/node": "^20.11.16",
|
||||||
"@types/react": "^18",
|
"@types/react": "^18",
|
||||||
"@types/react-dom": "^18",
|
"@types/react-dom": "^18",
|
||||||
"@types/react-leaflet": "^3.0.0",
|
"@types/react-leaflet": "^3.0.0",
|
||||||
|
@ -1,21 +0,0 @@
|
|||||||
import "./globals.scss";
|
|
||||||
import "./fonts.scss";
|
|
||||||
import "./App.scss";
|
|
||||||
import Footer from "@/widgets/Footer/Footer";
|
|
||||||
import Navbar from "@/widgets/Navbar/Navbar";
|
|
||||||
|
|
||||||
export default function RootLayout({
|
|
||||||
children,
|
|
||||||
}: Readonly<{
|
|
||||||
children: React.ReactNode;
|
|
||||||
}>) {
|
|
||||||
return (
|
|
||||||
<html lang="en">
|
|
||||||
<body>
|
|
||||||
<Navbar />
|
|
||||||
<div className="app">{children}</div>
|
|
||||||
<Footer />
|
|
||||||
</body>
|
|
||||||
</html>
|
|
||||||
);
|
|
||||||
}
|
|
11
src/App/Providers.tsx
Normal file
11
src/App/Providers.tsx
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
"use client";
|
||||||
|
|
||||||
|
import { SessionProvider } from "next-auth/react";
|
||||||
|
|
||||||
|
export const Providers = ({
|
||||||
|
children,
|
||||||
|
}: {
|
||||||
|
children: React.ReactNode;
|
||||||
|
}) => {
|
||||||
|
return <SessionProvider>{children}</SessionProvider>;
|
||||||
|
};
|
7
src/App/about-us/page.tsx
Normal file
7
src/App/about-us/page.tsx
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
import React from "react";
|
||||||
|
|
||||||
|
const AboutUs = () => {
|
||||||
|
return <div>AboutUs</div>;
|
||||||
|
};
|
||||||
|
|
||||||
|
export default AboutUs;
|
6
src/App/api/auth/[...nextauth]/route.ts
Normal file
6
src/App/api/auth/[...nextauth]/route.ts
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
import NextAuth from "next-auth";
|
||||||
|
import { authConfig } from "@/shared/config/authConfig";
|
||||||
|
|
||||||
|
const handler = NextAuth(authConfig);
|
||||||
|
|
||||||
|
export { handler as GET, handler as POST };
|
@ -1,9 +0,0 @@
|
|||||||
@import url("https://fonts.googleapis.com/css2?family=Inter:wght@200;300;400;500;600;700;800;900&display=swap");
|
|
||||||
|
|
||||||
@import url("https://fonts.cdnfonts.com/css/arial");
|
|
||||||
|
|
||||||
@import url("../shared/fonts/TildaSans.css");
|
|
||||||
|
|
||||||
* {
|
|
||||||
font-family: Tilda Sans;
|
|
||||||
}
|
|
@ -1,25 +1,30 @@
|
|||||||
|
@import url("https://fonts.cdnfonts.com/css/inter");
|
||||||
|
|
||||||
* {
|
* {
|
||||||
box-sizing: border-box;
|
box-sizing: border-box;
|
||||||
padding: 0;
|
padding: 0;
|
||||||
margin: 0;
|
margin: 0;
|
||||||
|
font-family: "Tilda Sans";
|
||||||
}
|
}
|
||||||
|
|
||||||
button,
|
button,
|
||||||
a {
|
a,
|
||||||
cursor: pointer;
|
input {
|
||||||
color: black;
|
|
||||||
display: flex;
|
|
||||||
align-items: center;
|
|
||||||
justify-content: center;
|
|
||||||
border: none;
|
|
||||||
background-color: transparent;
|
|
||||||
text-decoration: none;
|
|
||||||
font-size: 16px;
|
font-size: 16px;
|
||||||
}
|
}
|
||||||
|
|
||||||
ul,
|
button {
|
||||||
ol,
|
border: none;
|
||||||
li {
|
background-color: transparent;
|
||||||
list-style-type: none;
|
cursor: pointer;
|
||||||
list-style: none;
|
}
|
||||||
|
|
||||||
|
a {
|
||||||
|
text-decoration: none;
|
||||||
|
color: black;
|
||||||
|
}
|
||||||
|
|
||||||
|
input {
|
||||||
|
border: none;
|
||||||
|
outline: none;
|
||||||
}
|
}
|
||||||
|
30
src/App/layout.tsx
Normal file
30
src/App/layout.tsx
Normal file
@ -0,0 +1,30 @@
|
|||||||
|
import type { Metadata } from "next";
|
||||||
|
import "./globals.scss";
|
||||||
|
import "./App.scss";
|
||||||
|
import "@/shared/fonts/fonts.scss";
|
||||||
|
import { Providers } from "./Providers";
|
||||||
|
import Navbar from "@/widgets/Navbar/Navbar";
|
||||||
|
import Footer from "@/widgets/Footer/Footer";
|
||||||
|
|
||||||
|
export const metadata: Metadata = {
|
||||||
|
title: "Kg Road",
|
||||||
|
description: "Road in KR",
|
||||||
|
};
|
||||||
|
|
||||||
|
export default function RootLayout({
|
||||||
|
children,
|
||||||
|
}: Readonly<{
|
||||||
|
children: React.ReactNode;
|
||||||
|
}>) {
|
||||||
|
return (
|
||||||
|
<html lang="en">
|
||||||
|
<body>
|
||||||
|
<Providers>
|
||||||
|
<Navbar />
|
||||||
|
<div className="app">{children}</div>
|
||||||
|
<Footer />
|
||||||
|
</Providers>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
|
);
|
||||||
|
}
|
@ -1,24 +1,30 @@
|
|||||||
import "./Home.scss";
|
import dynamic from "next/dynamic";
|
||||||
import Header from "@/widgets/Header/Header";
|
import Header from "@/widgets/Header/Header";
|
||||||
import StatisticsSection from "@/widgets/StatisticsSection/StatisticsSection";
|
import StatisticsSection from "@/widgets/StatisticsSection/StatisticsSection";
|
||||||
import MapSection from "@/widgets/MapSection/MapSection";
|
|
||||||
import RatingSection from "@/widgets/RatingSection/RatingSection";
|
import RatingSection from "@/widgets/RatingSection/RatingSection";
|
||||||
import NewsSection from "@/widgets/NewsSection/NewsSection";
|
import NewsSection from "@/widgets/NewsSection/NewsSection";
|
||||||
|
|
||||||
const Home = ({
|
const DynamicMap = dynamic(
|
||||||
|
() => import("@/widgets/MapSection/MapSection"),
|
||||||
|
{
|
||||||
|
ssr: false,
|
||||||
|
}
|
||||||
|
);
|
||||||
|
|
||||||
|
const Home = async ({
|
||||||
searchParams,
|
searchParams,
|
||||||
}: {
|
}: {
|
||||||
searchParams: {
|
searchParams: {
|
||||||
"тип-дороги": string;
|
["тип-дороги"]: string;
|
||||||
"поиск-на-карте": string;
|
["поиск-на-карте"]: string;
|
||||||
"поиск-рейтинг": string;
|
["поиск-рейтинг"]: string;
|
||||||
};
|
};
|
||||||
}) => {
|
}) => {
|
||||||
return (
|
return (
|
||||||
<div className="home">
|
<div className="home">
|
||||||
<Header />
|
<Header />
|
||||||
<StatisticsSection />
|
<StatisticsSection />
|
||||||
<MapSection
|
<DynamicMap
|
||||||
categories={searchParams["тип-дороги"]}
|
categories={searchParams["тип-дороги"]}
|
||||||
queryMap={searchParams["поиск-на-карте"]}
|
queryMap={searchParams["поиск-на-карте"]}
|
||||||
queryRating={searchParams["поиск-рейтинг"]}
|
queryRating={searchParams["поиск-рейтинг"]}
|
5
src/App/profile/page.tsx
Normal file
5
src/App/profile/page.tsx
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
const Profile = () => {
|
||||||
|
return <div>Profile</div>;
|
||||||
|
};
|
||||||
|
|
||||||
|
export default Profile;
|
8
src/App/sign-in/page.tsx
Normal file
8
src/App/sign-in/page.tsx
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
import React from "react";
|
||||||
|
import classes from "./styles.module.scss";
|
||||||
|
|
||||||
|
const SignIn = () => {
|
||||||
|
return <div className={classes.root}>SignIn</div>;
|
||||||
|
};
|
||||||
|
|
||||||
|
export default SignIn;
|
@ -1,2 +0,0 @@
|
|||||||
export const baseAPI =
|
|
||||||
"https://api.kgroaduat.fishrungames.com/api/v1";
|
|
7
src/Shared/config/apiConfig.ts
Normal file
7
src/Shared/config/apiConfig.ts
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
import axios from "axios";
|
||||||
|
|
||||||
|
const API_URL = process.env["NEXT_PUBLIC_BASE_API"];
|
||||||
|
|
||||||
|
export const apiInstance = axios.create({
|
||||||
|
baseURL: API_URL,
|
||||||
|
});
|
89
src/Shared/config/authConfig.ts
Normal file
89
src/Shared/config/authConfig.ts
Normal file
@ -0,0 +1,89 @@
|
|||||||
|
import axios from "axios";
|
||||||
|
import { AuthOptions } from "next-auth";
|
||||||
|
import { JWT } from "next-auth/jwt";
|
||||||
|
import CredentialsProvider from "next-auth/providers/credentials";
|
||||||
|
|
||||||
|
interface IToken {
|
||||||
|
access: string;
|
||||||
|
}
|
||||||
|
|
||||||
|
const refreshToken = async (token: JWT): Promise<JWT> => {
|
||||||
|
const data = {
|
||||||
|
refresh: token.refresh_token,
|
||||||
|
};
|
||||||
|
|
||||||
|
const response = await axios.post<IToken>(
|
||||||
|
"https://api.kgroaduat.fishrungames.com/api/v1/token/refresh/",
|
||||||
|
data
|
||||||
|
);
|
||||||
|
|
||||||
|
return {
|
||||||
|
...token,
|
||||||
|
access_token: response.data.access,
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
export const authConfig: AuthOptions = {
|
||||||
|
providers: [
|
||||||
|
CredentialsProvider({
|
||||||
|
name: "Credentials",
|
||||||
|
|
||||||
|
credentials: {
|
||||||
|
email: {
|
||||||
|
label: "Email",
|
||||||
|
type: "text",
|
||||||
|
placeholder: "jsmith@example.com",
|
||||||
|
},
|
||||||
|
password: { label: "Password", type: "password" },
|
||||||
|
},
|
||||||
|
|
||||||
|
async authorize(credentials, req) {
|
||||||
|
if (!credentials?.email || !credentials?.password)
|
||||||
|
return null;
|
||||||
|
|
||||||
|
const { email, password } = credentials as any;
|
||||||
|
|
||||||
|
const res = await fetch(
|
||||||
|
"https://api.kgroaduat.fishrungames.com/api/v1/users/login/",
|
||||||
|
{
|
||||||
|
method: "POST",
|
||||||
|
headers: {
|
||||||
|
"Content-Type": "application/json",
|
||||||
|
},
|
||||||
|
body: JSON.stringify({
|
||||||
|
email,
|
||||||
|
password,
|
||||||
|
}),
|
||||||
|
}
|
||||||
|
);
|
||||||
|
|
||||||
|
if (res.status.toString()[0] === "4") {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
const user = await res.json();
|
||||||
|
return user;
|
||||||
|
},
|
||||||
|
}),
|
||||||
|
],
|
||||||
|
pages: {
|
||||||
|
signIn: "/sign-in",
|
||||||
|
},
|
||||||
|
session: {
|
||||||
|
strategy: "jwt",
|
||||||
|
},
|
||||||
|
callbacks: {
|
||||||
|
async jwt({ token, user }) {
|
||||||
|
if (user) return { ...token, ...user };
|
||||||
|
|
||||||
|
return refreshToken(token);
|
||||||
|
},
|
||||||
|
|
||||||
|
async session({ token, session }) {
|
||||||
|
session.access_token = token.access_token;
|
||||||
|
session.refresh_token = token.refresh_token;
|
||||||
|
|
||||||
|
return session;
|
||||||
|
},
|
||||||
|
},
|
||||||
|
};
|
@ -5,4 +5,5 @@
|
|||||||
url("TildaSans-Black.woff2") format("woff2"),
|
url("TildaSans-Black.woff2") format("woff2"),
|
||||||
url("TildaSans-Black.woff") format("woff");
|
url("TildaSans-Black.woff") format("woff");
|
||||||
font-weight: 900;
|
font-weight: 900;
|
||||||
|
font-style: normal;
|
||||||
}
|
}
|
||||||
|
@ -5,4 +5,5 @@
|
|||||||
url("TildaSans-Regular.woff2") format("woff2"),
|
url("TildaSans-Regular.woff2") format("woff2"),
|
||||||
url("TildaSans-Regular.woff") format("woff");
|
url("TildaSans-Regular.woff") format("woff");
|
||||||
font-weight: 400;
|
font-weight: 400;
|
||||||
|
font-style: normal;
|
||||||
}
|
}
|
||||||
|
@ -3,5 +3,5 @@
|
|||||||
@import "./TildaSans-Medium/TildaSans-Medium.css";
|
@import "./TildaSans-Medium/TildaSans-Medium.css";
|
||||||
@import "./TildaSans-Semibold/TildaSans-Semibold.css";
|
@import "./TildaSans-Semibold/TildaSans-Semibold.css";
|
||||||
@import "./TildaSans-Bold/TildaSans-Bold.css";
|
@import "./TildaSans-Bold/TildaSans-Bold.css";
|
||||||
@import "./TildaSans-ExtraBold/TildaSans-ExtraBold.css";
|
@import "./TildaSans-Extrabold/TildaSans-Extrabold.css";
|
||||||
@import "./TildaSans-Black/TildaSans-Black.css";
|
@import "./TildaSans-Black/TildaSans-Black.css";
|
@ -10,7 +10,7 @@
|
|||||||
height: fit-content;
|
height: fit-content;
|
||||||
color: white;
|
color: white;
|
||||||
justify-content: flex-start;
|
justify-content: flex-start;
|
||||||
font-family: "Inter";
|
font-family: "Inter", sans-serif;
|
||||||
font-size: 16px;
|
font-size: 16px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -19,7 +19,7 @@ const Footer = () => {
|
|||||||
<h4>Навигация</h4>
|
<h4>Навигация</h4>
|
||||||
<ul>
|
<ul>
|
||||||
{LINKS.map((link) => (
|
{LINKS.map((link) => (
|
||||||
<li>
|
<li key={link.id}>
|
||||||
<Link href={link.pathname} key={link.id}>
|
<Link href={link.pathname} key={link.id}>
|
||||||
{link.pagename}
|
{link.pagename}
|
||||||
</Link>
|
</Link>
|
||||||
@ -34,8 +34,8 @@ const Footer = () => {
|
|||||||
<li>namename@gmail.com</li>
|
<li>namename@gmail.com</li>
|
||||||
<li>+09646895467</li>
|
<li>+09646895467</li>
|
||||||
<li>
|
<li>
|
||||||
{[youtube, facebook, instagram].map((net) => (
|
{[youtube, facebook, instagram].map((net, i) => (
|
||||||
<Link href="#">
|
<Link key={i} href="#">
|
||||||
<Image src={net} alt="Net Icon" key={net} />
|
<Image src={net} alt="Net Icon" key={net} />
|
||||||
</Link>
|
</Link>
|
||||||
))}
|
))}
|
||||||
@ -46,8 +46,8 @@ const Footer = () => {
|
|||||||
<div className="footer__apps">
|
<div className="footer__apps">
|
||||||
<h4>Скачивай наше приложение</h4>
|
<h4>Скачивай наше приложение</h4>
|
||||||
<div className="footer__apps-btns">
|
<div className="footer__apps-btns">
|
||||||
{[app_store_btn, play_market_btn].map((app) => (
|
{[app_store_btn, play_market_btn].map((app, i) => (
|
||||||
<Link href="#">
|
<Link key={i} href="#">
|
||||||
<Image src={app} alt="App Button" key={app} />
|
<Image src={app} alt="App Button" key={app} />
|
||||||
</Link>
|
</Link>
|
||||||
))}
|
))}
|
||||||
|
@ -7,6 +7,9 @@
|
|||||||
font-size: 20px;
|
font-size: 20px;
|
||||||
font-weight: 500;
|
font-weight: 500;
|
||||||
line-height: 24px;
|
line-height: 24px;
|
||||||
|
display: flex;
|
||||||
|
justify-content: center;
|
||||||
|
align-items: center;
|
||||||
gap: 30px;
|
gap: 30px;
|
||||||
border-radius: 15px;
|
border-radius: 15px;
|
||||||
background-color: #fff;
|
background-color: #fff;
|
||||||
|
@ -1,8 +1,7 @@
|
|||||||
import { baseAPI } from "@/shared/api/baseAPI";
|
import { apiInstance } from "@/shared/config/apiConfig";
|
||||||
import { IFetch } from "@/shared/types/fetch-type";
|
import { IFetch } from "@/shared/types/fetch-type";
|
||||||
import { IList } from "@/shared/types/list-type";
|
import { IList } from "@/shared/types/list-type";
|
||||||
import { IReport } from "@/shared/types/report-type";
|
import { IReport } from "@/shared/types/report-type";
|
||||||
import axios from "axios";
|
|
||||||
import { create } from "zustand";
|
import { create } from "zustand";
|
||||||
|
|
||||||
interface IFetchReports extends IList {
|
interface IFetchReports extends IList {
|
||||||
@ -27,8 +26,8 @@ export const useMapStore = create<IMapStore>((set) => ({
|
|||||||
try {
|
try {
|
||||||
set({ isLoading: true });
|
set({ isLoading: true });
|
||||||
|
|
||||||
const response = await axios.get<IFetchReports>(
|
const response = await apiInstance.get<IFetchReports>(
|
||||||
`${baseAPI}/report/?category=${categories}`
|
`/report/?category=${categories}`
|
||||||
);
|
);
|
||||||
|
|
||||||
set({ data: response.data });
|
set({ data: response.data });
|
||||||
|
@ -12,7 +12,7 @@
|
|||||||
background-color: #fff;
|
background-color: #fff;
|
||||||
|
|
||||||
&__links {
|
&__links {
|
||||||
height: 60%;
|
height: 40%;
|
||||||
display: flex;
|
display: flex;
|
||||||
gap: 60px;
|
gap: 60px;
|
||||||
}
|
}
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
import { baseAPI } from "@/shared/api/baseAPI";
|
import { apiInstance } from "@/shared/config/apiConfig";
|
||||||
import { IList } from "@/shared/types/list-type";
|
import { IList } from "@/shared/types/list-type";
|
||||||
import { INews } from "@/shared/types/news-type";
|
import { INews } from "@/shared/types/news-type";
|
||||||
import axios, { AxiosError } from "axios";
|
import axios, { AxiosError } from "axios";
|
||||||
@ -9,8 +9,7 @@ interface IFetchNews extends IList {
|
|||||||
|
|
||||||
export const getNews = async () => {
|
export const getNews = async () => {
|
||||||
try {
|
try {
|
||||||
const data = (await axios.get<IFetchNews>(`${baseAPI}/news/`))
|
const data = (await apiInstance.get<IFetchNews>("/news/")).data;
|
||||||
.data;
|
|
||||||
|
|
||||||
return data.results.slice(0, 4);
|
return data.results.slice(0, 4);
|
||||||
} catch (error: unknown) {
|
} catch (error: unknown) {
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
import { baseAPI } from "@/shared/api/baseAPI";
|
import { apiInstance } from "@/shared/config/apiConfig";
|
||||||
import { IFetch } from "@/shared/types/fetch-type";
|
import { IFetch } from "@/shared/types/fetch-type";
|
||||||
import { IList } from "@/shared/types/list-type";
|
import { IList } from "@/shared/types/list-type";
|
||||||
import { IReport } from "@/shared/types/report-type";
|
import { IReport } from "@/shared/types/report-type";
|
||||||
@ -27,9 +27,8 @@ export const useRatingStore = create<IRatingStore>((set) => ({
|
|||||||
try {
|
try {
|
||||||
set({ isLoading: true });
|
set({ isLoading: true });
|
||||||
|
|
||||||
const data = (
|
const data = (await apiInstance.get<IFetchReports>("/report/"))
|
||||||
await axios.get<IFetchReports>(`${baseAPI}/report/`)
|
.data;
|
||||||
).data;
|
|
||||||
|
|
||||||
const searched = data.results.filter((rating) => {
|
const searched = data.results.filter((rating) => {
|
||||||
return rating.location.some((location) => {
|
return rating.location.some((location) => {
|
||||||
|
@ -20,7 +20,7 @@ const StatisticsSection = async () => {
|
|||||||
<section className="statistics-section">
|
<section className="statistics-section">
|
||||||
<ul className="statistics-section__list">
|
<ul className="statistics-section__list">
|
||||||
{mockArray.map((cat) => (
|
{mockArray.map((cat) => (
|
||||||
<li>
|
<li key={cat.category}>
|
||||||
<p>{ROAD_TYPES_STATS[cat.category]}</p>
|
<p>{ROAD_TYPES_STATS[cat.category]}</p>
|
||||||
<span>{cat.count}</span>
|
<span>{cat.count}</span>
|
||||||
</li>
|
</li>
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
import { baseAPI } from "@/shared/api/baseAPI";
|
import { apiInstance } from "@/shared/config/apiConfig";
|
||||||
import axios, { AxiosError } from "axios";
|
import { AxiosError } from "axios";
|
||||||
|
|
||||||
interface IStatsCount {
|
interface IStatsCount {
|
||||||
category: number;
|
category: number;
|
||||||
@ -10,8 +10,8 @@ export const statiscsSectionStore = () => {
|
|||||||
let errorMessage = "";
|
let errorMessage = "";
|
||||||
async function getStatsCount() {
|
async function getStatsCount() {
|
||||||
try {
|
try {
|
||||||
const response = await axios.get<IStatsCount[]>(
|
const response = await apiInstance.get<IStatsCount[]>(
|
||||||
`${baseAPI}/report/category_count/`
|
"/report/category_count/"
|
||||||
);
|
);
|
||||||
|
|
||||||
return response.data;
|
return response.data;
|
||||||
|
3
src/middleware.ts
Normal file
3
src/middleware.ts
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
export { default } from "next-auth/middleware";
|
||||||
|
|
||||||
|
export const config = { matcher: ["/profile"] };
|
@ -1,7 +1,11 @@
|
|||||||
{
|
{
|
||||||
"compilerOptions": {
|
"compilerOptions": {
|
||||||
"target": "ES2015",
|
"target": "ES2015",
|
||||||
"lib": ["dom", "dom.iterable", "esnext"],
|
"lib": [
|
||||||
|
"dom",
|
||||||
|
"dom.iterable",
|
||||||
|
"esnext"
|
||||||
|
],
|
||||||
"allowJs": true,
|
"allowJs": true,
|
||||||
"skipLibCheck": true,
|
"skipLibCheck": true,
|
||||||
"strict": true,
|
"strict": true,
|
||||||
@ -19,14 +23,19 @@
|
|||||||
}
|
}
|
||||||
],
|
],
|
||||||
"paths": {
|
"paths": {
|
||||||
"@/*": ["./src/*"]
|
"@/*": [
|
||||||
|
"./src/*"
|
||||||
|
]
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"include": [
|
"include": [
|
||||||
"next-env.d.ts",
|
"next-env.d.ts",
|
||||||
"**/*.ts",
|
"**/*.ts",
|
||||||
"**/*.tsx",
|
"**/*.tsx",
|
||||||
".next/types/**/*.ts"
|
".next/types/**/*.ts",
|
||||||
|
"build/types/**/*.ts"
|
||||||
],
|
],
|
||||||
"exclude": ["node_modules"]
|
"exclude": [
|
||||||
|
"node_modules"
|
||||||
|
]
|
||||||
}
|
}
|
||||||
|
197
yarn.lock
197
yarn.lock
@ -21,6 +21,13 @@
|
|||||||
dependencies:
|
dependencies:
|
||||||
regenerator-runtime "^0.14.0"
|
regenerator-runtime "^0.14.0"
|
||||||
|
|
||||||
|
"@emnapi/runtime@^0.45.0":
|
||||||
|
version "0.45.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/@emnapi/runtime/-/runtime-0.45.0.tgz#e754de04c683263f34fd0c7f32adfe718bbe4ddd"
|
||||||
|
integrity sha512-Txumi3td7J4A/xTTwlssKieHKTGl3j4A1tglBx72auZ49YK7ePY6XZricgIg9mnZT4xPfA+UPCUdnhRuEFDL+w==
|
||||||
|
dependencies:
|
||||||
|
tslib "^2.4.0"
|
||||||
|
|
||||||
"@eslint-community/eslint-utils@^4.2.0":
|
"@eslint-community/eslint-utils@^4.2.0":
|
||||||
version "4.4.0"
|
version "4.4.0"
|
||||||
resolved "https://registry.yarnpkg.com/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz#a23514e8fb9af1269d5f7788aa556798d61c6b59"
|
resolved "https://registry.yarnpkg.com/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz#a23514e8fb9af1269d5f7788aa556798d61c6b59"
|
||||||
@ -72,6 +79,119 @@
|
|||||||
resolved "https://registry.yarnpkg.com/@humanwhocodes/object-schema/-/object-schema-2.0.2.tgz#d9fae00a2d5cb40f92cfe64b47ad749fbc38f917"
|
resolved "https://registry.yarnpkg.com/@humanwhocodes/object-schema/-/object-schema-2.0.2.tgz#d9fae00a2d5cb40f92cfe64b47ad749fbc38f917"
|
||||||
integrity sha512-6EwiSjwWYP7pTckG6I5eyFANjPhmPjUX9JRLUSfNPC7FX7zK9gyZAfUEaECL6ALTpGX5AjnBq3C9XmVWPitNpw==
|
integrity sha512-6EwiSjwWYP7pTckG6I5eyFANjPhmPjUX9JRLUSfNPC7FX7zK9gyZAfUEaECL6ALTpGX5AjnBq3C9XmVWPitNpw==
|
||||||
|
|
||||||
|
"@img/sharp-darwin-arm64@0.33.2":
|
||||||
|
version "0.33.2"
|
||||||
|
resolved "https://registry.yarnpkg.com/@img/sharp-darwin-arm64/-/sharp-darwin-arm64-0.33.2.tgz#0a52a82c2169112794dac2c71bfba9e90f7c5bd1"
|
||||||
|
integrity sha512-itHBs1rPmsmGF9p4qRe++CzCgd+kFYktnsoR1sbIAfsRMrJZau0Tt1AH9KVnufc2/tU02Gf6Ibujx+15qRE03w==
|
||||||
|
optionalDependencies:
|
||||||
|
"@img/sharp-libvips-darwin-arm64" "1.0.1"
|
||||||
|
|
||||||
|
"@img/sharp-darwin-x64@0.33.2":
|
||||||
|
version "0.33.2"
|
||||||
|
resolved "https://registry.yarnpkg.com/@img/sharp-darwin-x64/-/sharp-darwin-x64-0.33.2.tgz#982e26bb9d38a81f75915c4032539aed621d1c21"
|
||||||
|
integrity sha512-/rK/69Rrp9x5kaWBjVN07KixZanRr+W1OiyKdXcbjQD6KbW+obaTeBBtLUAtbBsnlTTmWthw99xqoOS7SsySDg==
|
||||||
|
optionalDependencies:
|
||||||
|
"@img/sharp-libvips-darwin-x64" "1.0.1"
|
||||||
|
|
||||||
|
"@img/sharp-libvips-darwin-arm64@1.0.1":
|
||||||
|
version "1.0.1"
|
||||||
|
resolved "https://registry.yarnpkg.com/@img/sharp-libvips-darwin-arm64/-/sharp-libvips-darwin-arm64-1.0.1.tgz#81e83ffc2c497b3100e2f253766490f8fad479cd"
|
||||||
|
integrity sha512-kQyrSNd6lmBV7O0BUiyu/OEw9yeNGFbQhbxswS1i6rMDwBBSX+e+rPzu3S+MwAiGU3HdLze3PanQ4Xkfemgzcw==
|
||||||
|
|
||||||
|
"@img/sharp-libvips-darwin-x64@1.0.1":
|
||||||
|
version "1.0.1"
|
||||||
|
resolved "https://registry.yarnpkg.com/@img/sharp-libvips-darwin-x64/-/sharp-libvips-darwin-x64-1.0.1.tgz#fc1fcd9d78a178819eefe2c1a1662067a83ab1d6"
|
||||||
|
integrity sha512-eVU/JYLPVjhhrd8Tk6gosl5pVlvsqiFlt50wotCvdkFGf+mDNBJxMh+bvav+Wt3EBnNZWq8Sp2I7XfSjm8siog==
|
||||||
|
|
||||||
|
"@img/sharp-libvips-linux-arm64@1.0.1":
|
||||||
|
version "1.0.1"
|
||||||
|
resolved "https://registry.yarnpkg.com/@img/sharp-libvips-linux-arm64/-/sharp-libvips-linux-arm64-1.0.1.tgz#26eb8c556a9b0db95f343fc444abc3effb67ebcf"
|
||||||
|
integrity sha512-bnGG+MJjdX70mAQcSLxgeJco11G+MxTz+ebxlz8Y3dxyeb3Nkl7LgLI0mXupoO+u1wRNx/iRj5yHtzA4sde1yA==
|
||||||
|
|
||||||
|
"@img/sharp-libvips-linux-arm@1.0.1":
|
||||||
|
version "1.0.1"
|
||||||
|
resolved "https://registry.yarnpkg.com/@img/sharp-libvips-linux-arm/-/sharp-libvips-linux-arm-1.0.1.tgz#2a377b959ff7dd6528deee486c25461296a4fa8b"
|
||||||
|
integrity sha512-FtdMvR4R99FTsD53IA3LxYGghQ82t3yt0ZQ93WMZ2xV3dqrb0E8zq4VHaTOuLEAuA83oDawHV3fd+BsAPadHIQ==
|
||||||
|
|
||||||
|
"@img/sharp-libvips-linux-s390x@1.0.1":
|
||||||
|
version "1.0.1"
|
||||||
|
resolved "https://registry.yarnpkg.com/@img/sharp-libvips-linux-s390x/-/sharp-libvips-linux-s390x-1.0.1.tgz#af28ac9ba929204467ecdf843330d791e9421e10"
|
||||||
|
integrity sha512-3+rzfAR1YpMOeA2zZNp+aYEzGNWK4zF3+sdMxuCS3ey9HhDbJ66w6hDSHDMoap32DueFwhhs3vwooAB2MaK4XQ==
|
||||||
|
|
||||||
|
"@img/sharp-libvips-linux-x64@1.0.1":
|
||||||
|
version "1.0.1"
|
||||||
|
resolved "https://registry.yarnpkg.com/@img/sharp-libvips-linux-x64/-/sharp-libvips-linux-x64-1.0.1.tgz#4273d182aa51912e655e1214ea47983d7c1f7f8d"
|
||||||
|
integrity sha512-3NR1mxFsaSgMMzz1bAnnKbSAI+lHXVTqAHgc1bgzjHuXjo4hlscpUxc0vFSAPKI3yuzdzcZOkq7nDPrP2F8Jgw==
|
||||||
|
|
||||||
|
"@img/sharp-libvips-linuxmusl-arm64@1.0.1":
|
||||||
|
version "1.0.1"
|
||||||
|
resolved "https://registry.yarnpkg.com/@img/sharp-libvips-linuxmusl-arm64/-/sharp-libvips-linuxmusl-arm64-1.0.1.tgz#d150c92151cea2e8d120ad168b9c358d09c77ce8"
|
||||||
|
integrity sha512-5aBRcjHDG/T6jwC3Edl3lP8nl9U2Yo8+oTl5drd1dh9Z1EBfzUKAJFUDTDisDjUwc7N4AjnPGfCA3jl3hY8uDg==
|
||||||
|
|
||||||
|
"@img/sharp-libvips-linuxmusl-x64@1.0.1":
|
||||||
|
version "1.0.1"
|
||||||
|
resolved "https://registry.yarnpkg.com/@img/sharp-libvips-linuxmusl-x64/-/sharp-libvips-linuxmusl-x64-1.0.1.tgz#e297c1a4252c670d93b0f9e51fca40a7a5b6acfd"
|
||||||
|
integrity sha512-dcT7inI9DBFK6ovfeWRe3hG30h51cBAP5JXlZfx6pzc/Mnf9HFCQDLtYf4MCBjxaaTfjCCjkBxcy3XzOAo5txw==
|
||||||
|
|
||||||
|
"@img/sharp-linux-arm64@0.33.2":
|
||||||
|
version "0.33.2"
|
||||||
|
resolved "https://registry.yarnpkg.com/@img/sharp-linux-arm64/-/sharp-linux-arm64-0.33.2.tgz#af3409f801a9bee1d11d0c7e971dcd6180f80022"
|
||||||
|
integrity sha512-pz0NNo882vVfqJ0yNInuG9YH71smP4gRSdeL09ukC2YLE6ZyZePAlWKEHgAzJGTiOh8Qkaov6mMIMlEhmLdKew==
|
||||||
|
optionalDependencies:
|
||||||
|
"@img/sharp-libvips-linux-arm64" "1.0.1"
|
||||||
|
|
||||||
|
"@img/sharp-linux-arm@0.33.2":
|
||||||
|
version "0.33.2"
|
||||||
|
resolved "https://registry.yarnpkg.com/@img/sharp-linux-arm/-/sharp-linux-arm-0.33.2.tgz#181f7466e6ac074042a38bfb679eb82505e17083"
|
||||||
|
integrity sha512-Fndk/4Zq3vAc4G/qyfXASbS3HBZbKrlnKZLEJzPLrXoJuipFNNwTes71+Ki1hwYW5lch26niRYoZFAtZVf3EGA==
|
||||||
|
optionalDependencies:
|
||||||
|
"@img/sharp-libvips-linux-arm" "1.0.1"
|
||||||
|
|
||||||
|
"@img/sharp-linux-s390x@0.33.2":
|
||||||
|
version "0.33.2"
|
||||||
|
resolved "https://registry.yarnpkg.com/@img/sharp-linux-s390x/-/sharp-linux-s390x-0.33.2.tgz#9c171f49211f96fba84410b3e237b301286fa00f"
|
||||||
|
integrity sha512-MBoInDXDppMfhSzbMmOQtGfloVAflS2rP1qPcUIiITMi36Mm5YR7r0ASND99razjQUpHTzjrU1flO76hKvP5RA==
|
||||||
|
optionalDependencies:
|
||||||
|
"@img/sharp-libvips-linux-s390x" "1.0.1"
|
||||||
|
|
||||||
|
"@img/sharp-linux-x64@0.33.2":
|
||||||
|
version "0.33.2"
|
||||||
|
resolved "https://registry.yarnpkg.com/@img/sharp-linux-x64/-/sharp-linux-x64-0.33.2.tgz#b956dfc092adc58c2bf0fae2077e6f01a8b2d5d7"
|
||||||
|
integrity sha512-xUT82H5IbXewKkeF5aiooajoO1tQV4PnKfS/OZtb5DDdxS/FCI/uXTVZ35GQ97RZXsycojz/AJ0asoz6p2/H/A==
|
||||||
|
optionalDependencies:
|
||||||
|
"@img/sharp-libvips-linux-x64" "1.0.1"
|
||||||
|
|
||||||
|
"@img/sharp-linuxmusl-arm64@0.33.2":
|
||||||
|
version "0.33.2"
|
||||||
|
resolved "https://registry.yarnpkg.com/@img/sharp-linuxmusl-arm64/-/sharp-linuxmusl-arm64-0.33.2.tgz#10e0ec5a79d1234c6a71df44c9f3b0bef0bc0f15"
|
||||||
|
integrity sha512-F+0z8JCu/UnMzg8IYW1TMeiViIWBVg7IWP6nE0p5S5EPQxlLd76c8jYemG21X99UzFwgkRo5yz2DS+zbrnxZeA==
|
||||||
|
optionalDependencies:
|
||||||
|
"@img/sharp-libvips-linuxmusl-arm64" "1.0.1"
|
||||||
|
|
||||||
|
"@img/sharp-linuxmusl-x64@0.33.2":
|
||||||
|
version "0.33.2"
|
||||||
|
resolved "https://registry.yarnpkg.com/@img/sharp-linuxmusl-x64/-/sharp-linuxmusl-x64-0.33.2.tgz#29e0030c24aa27c38201b1fc84e3d172899fcbe0"
|
||||||
|
integrity sha512-+ZLE3SQmSL+Fn1gmSaM8uFusW5Y3J9VOf+wMGNnTtJUMUxFhv+P4UPaYEYT8tqnyYVaOVGgMN/zsOxn9pSsO2A==
|
||||||
|
optionalDependencies:
|
||||||
|
"@img/sharp-libvips-linuxmusl-x64" "1.0.1"
|
||||||
|
|
||||||
|
"@img/sharp-wasm32@0.33.2":
|
||||||
|
version "0.33.2"
|
||||||
|
resolved "https://registry.yarnpkg.com/@img/sharp-wasm32/-/sharp-wasm32-0.33.2.tgz#38d7c740a22de83a60ad1e6bcfce17462b0d4230"
|
||||||
|
integrity sha512-fLbTaESVKuQcpm8ffgBD7jLb/CQLcATju/jxtTXR1XCLwbOQt+OL5zPHSDMmp2JZIeq82e18yE0Vv7zh6+6BfQ==
|
||||||
|
dependencies:
|
||||||
|
"@emnapi/runtime" "^0.45.0"
|
||||||
|
|
||||||
|
"@img/sharp-win32-ia32@0.33.2":
|
||||||
|
version "0.33.2"
|
||||||
|
resolved "https://registry.yarnpkg.com/@img/sharp-win32-ia32/-/sharp-win32-ia32-0.33.2.tgz#09456314e223f68e5417c283b45c399635c16202"
|
||||||
|
integrity sha512-okBpql96hIGuZ4lN3+nsAjGeggxKm7hIRu9zyec0lnfB8E7Z6p95BuRZzDDXZOl2e8UmR4RhYt631i7mfmKU8g==
|
||||||
|
|
||||||
|
"@img/sharp-win32-x64@0.33.2":
|
||||||
|
version "0.33.2"
|
||||||
|
resolved "https://registry.yarnpkg.com/@img/sharp-win32-x64/-/sharp-win32-x64-0.33.2.tgz#148e96dfd6e68747da41a311b9ee4559bb1b1471"
|
||||||
|
integrity sha512-E4magOks77DK47FwHUIGH0RYWSgRBfGdK56kIHSVeB9uIS4pPFr4N2kIVsXdQQo4LzOsENKV5KAhRlRL7eMAdg==
|
||||||
|
|
||||||
"@isaacs/cliui@^8.0.2":
|
"@isaacs/cliui@^8.0.2":
|
||||||
version "8.0.2"
|
version "8.0.2"
|
||||||
resolved "https://registry.yarnpkg.com/@isaacs/cliui/-/cliui-8.0.2.tgz#b37667b7bc181c168782259bab42474fbf52b550"
|
resolved "https://registry.yarnpkg.com/@isaacs/cliui/-/cliui-8.0.2.tgz#b37667b7bc181c168782259bab42474fbf52b550"
|
||||||
@ -206,10 +326,10 @@
|
|||||||
dependencies:
|
dependencies:
|
||||||
"@types/geojson" "*"
|
"@types/geojson" "*"
|
||||||
|
|
||||||
"@types/node@^20":
|
"@types/node@^20.11.16":
|
||||||
version "20.11.5"
|
version "20.11.16"
|
||||||
resolved "https://registry.yarnpkg.com/@types/node/-/node-20.11.5.tgz#be10c622ca7fcaa3cf226cf80166abc31389d86e"
|
resolved "https://registry.yarnpkg.com/@types/node/-/node-20.11.16.tgz#4411f79411514eb8e2926f036c86c9f0e4ec6708"
|
||||||
integrity sha512-g557vgQjUUfN76MZAN/dt1z3dzcUsimuysco0KeluHgrPdJXkP/XdAURgyO2W9fZWHRtRBiVKzKn8vyOAwlG+w==
|
integrity sha512-gKb0enTmRCzXSSUJDq6/sPcqrfCv2mkkG6Jt/clpn5eiCbKTY+SgZUxo+p8ZKMof5dCp9vHQUAB7wOUTod22wQ==
|
||||||
dependencies:
|
dependencies:
|
||||||
undici-types "~5.26.4"
|
undici-types "~5.26.4"
|
||||||
|
|
||||||
@ -574,11 +694,27 @@ color-convert@^2.0.1:
|
|||||||
dependencies:
|
dependencies:
|
||||||
color-name "~1.1.4"
|
color-name "~1.1.4"
|
||||||
|
|
||||||
color-name@~1.1.4:
|
color-name@^1.0.0, color-name@~1.1.4:
|
||||||
version "1.1.4"
|
version "1.1.4"
|
||||||
resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2"
|
resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2"
|
||||||
integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==
|
integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==
|
||||||
|
|
||||||
|
color-string@^1.9.0:
|
||||||
|
version "1.9.1"
|
||||||
|
resolved "https://registry.yarnpkg.com/color-string/-/color-string-1.9.1.tgz#4467f9146f036f855b764dfb5bf8582bf342c7a4"
|
||||||
|
integrity sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==
|
||||||
|
dependencies:
|
||||||
|
color-name "^1.0.0"
|
||||||
|
simple-swizzle "^0.2.2"
|
||||||
|
|
||||||
|
color@^4.2.3:
|
||||||
|
version "4.2.3"
|
||||||
|
resolved "https://registry.yarnpkg.com/color/-/color-4.2.3.tgz#d781ecb5e57224ee43ea9627560107c0e0c6463a"
|
||||||
|
integrity sha512-1rXeuUUiGGrykh+CeBdu5Ie7OJwinCgQY0bc7GCRxy5xVHy+moaqkpL/jqQq0MtQOeYcrqEz4abc5f0KtU7W4A==
|
||||||
|
dependencies:
|
||||||
|
color-convert "^2.0.1"
|
||||||
|
color-string "^1.9.0"
|
||||||
|
|
||||||
combined-stream@^1.0.8:
|
combined-stream@^1.0.8:
|
||||||
version "1.0.8"
|
version "1.0.8"
|
||||||
resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f"
|
resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f"
|
||||||
@ -662,6 +798,11 @@ dequal@^2.0.3:
|
|||||||
resolved "https://registry.yarnpkg.com/dequal/-/dequal-2.0.3.tgz#2644214f1997d39ed0ee0ece72335490a7ac67be"
|
resolved "https://registry.yarnpkg.com/dequal/-/dequal-2.0.3.tgz#2644214f1997d39ed0ee0ece72335490a7ac67be"
|
||||||
integrity sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==
|
integrity sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==
|
||||||
|
|
||||||
|
detect-libc@^2.0.2:
|
||||||
|
version "2.0.2"
|
||||||
|
resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-2.0.2.tgz#8ccf2ba9315350e1241b88d0ac3b0e1fbd99605d"
|
||||||
|
integrity sha512-UX6sGumvvqSaXgdKGUsgZWqcUyIXZ/vZTrlRT/iobiKhGL0zL4d3osHj3uqllWJK+i+sixDS/3COVEOFbupFyw==
|
||||||
|
|
||||||
dir-glob@^3.0.1:
|
dir-glob@^3.0.1:
|
||||||
version "3.0.1"
|
version "3.0.1"
|
||||||
resolved "https://registry.yarnpkg.com/dir-glob/-/dir-glob-3.0.1.tgz#56dbf73d992a4a93ba1584f4534063fd2e41717f"
|
resolved "https://registry.yarnpkg.com/dir-glob/-/dir-glob-3.0.1.tgz#56dbf73d992a4a93ba1584f4534063fd2e41717f"
|
||||||
@ -683,6 +824,11 @@ doctrine@^3.0.0:
|
|||||||
dependencies:
|
dependencies:
|
||||||
esutils "^2.0.2"
|
esutils "^2.0.2"
|
||||||
|
|
||||||
|
dotenv@^16.4.1:
|
||||||
|
version "16.4.1"
|
||||||
|
resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-16.4.1.tgz#1d9931f1d3e5d2959350d1250efab299561f7f11"
|
||||||
|
integrity sha512-CjA3y+Dr3FyFDOAMnxZEGtnW9KBR2M0JvvUtXNW+dYJL5ROWxP9DUHCwgFqpMk0OXCc0ljhaNTr2w/kutYIcHQ==
|
||||||
|
|
||||||
eastasianwidth@^0.2.0:
|
eastasianwidth@^0.2.0:
|
||||||
version "0.2.0"
|
version "0.2.0"
|
||||||
resolved "https://registry.yarnpkg.com/eastasianwidth/-/eastasianwidth-0.2.0.tgz#696ce2ec0aa0e6ea93a397ffcf24aa7840c827cb"
|
resolved "https://registry.yarnpkg.com/eastasianwidth/-/eastasianwidth-0.2.0.tgz#696ce2ec0aa0e6ea93a397ffcf24aa7840c827cb"
|
||||||
@ -1335,6 +1481,11 @@ is-array-buffer@^3.0.1, is-array-buffer@^3.0.2:
|
|||||||
get-intrinsic "^1.2.0"
|
get-intrinsic "^1.2.0"
|
||||||
is-typed-array "^1.1.10"
|
is-typed-array "^1.1.10"
|
||||||
|
|
||||||
|
is-arrayish@^0.3.1:
|
||||||
|
version "0.3.2"
|
||||||
|
resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.3.2.tgz#4574a2ae56f7ab206896fb431eaeed066fdf8f03"
|
||||||
|
integrity sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==
|
||||||
|
|
||||||
is-async-function@^2.0.0:
|
is-async-function@^2.0.0:
|
||||||
version "2.0.0"
|
version "2.0.0"
|
||||||
resolved "https://registry.yarnpkg.com/is-async-function/-/is-async-function-2.0.0.tgz#8e4418efd3e5d3a6ebb0164c05ef5afb69aa9646"
|
resolved "https://registry.yarnpkg.com/is-async-function/-/is-async-function-2.0.0.tgz#8e4418efd3e5d3a6ebb0164c05ef5afb69aa9646"
|
||||||
@ -2163,6 +2314,35 @@ set-function-name@^2.0.0, set-function-name@^2.0.1:
|
|||||||
functions-have-names "^1.2.3"
|
functions-have-names "^1.2.3"
|
||||||
has-property-descriptors "^1.0.0"
|
has-property-descriptors "^1.0.0"
|
||||||
|
|
||||||
|
sharp@^0.33.2:
|
||||||
|
version "0.33.2"
|
||||||
|
resolved "https://registry.yarnpkg.com/sharp/-/sharp-0.33.2.tgz#fcd52f2c70effa8a02160b1bfd989a3de55f2dfb"
|
||||||
|
integrity sha512-WlYOPyyPDiiM07j/UO+E720ju6gtNtHjEGg5vovUk1Lgxyjm2LFO+37Nt/UI3MMh2l6hxTWQWi7qk3cXJTutcQ==
|
||||||
|
dependencies:
|
||||||
|
color "^4.2.3"
|
||||||
|
detect-libc "^2.0.2"
|
||||||
|
semver "^7.5.4"
|
||||||
|
optionalDependencies:
|
||||||
|
"@img/sharp-darwin-arm64" "0.33.2"
|
||||||
|
"@img/sharp-darwin-x64" "0.33.2"
|
||||||
|
"@img/sharp-libvips-darwin-arm64" "1.0.1"
|
||||||
|
"@img/sharp-libvips-darwin-x64" "1.0.1"
|
||||||
|
"@img/sharp-libvips-linux-arm" "1.0.1"
|
||||||
|
"@img/sharp-libvips-linux-arm64" "1.0.1"
|
||||||
|
"@img/sharp-libvips-linux-s390x" "1.0.1"
|
||||||
|
"@img/sharp-libvips-linux-x64" "1.0.1"
|
||||||
|
"@img/sharp-libvips-linuxmusl-arm64" "1.0.1"
|
||||||
|
"@img/sharp-libvips-linuxmusl-x64" "1.0.1"
|
||||||
|
"@img/sharp-linux-arm" "0.33.2"
|
||||||
|
"@img/sharp-linux-arm64" "0.33.2"
|
||||||
|
"@img/sharp-linux-s390x" "0.33.2"
|
||||||
|
"@img/sharp-linux-x64" "0.33.2"
|
||||||
|
"@img/sharp-linuxmusl-arm64" "0.33.2"
|
||||||
|
"@img/sharp-linuxmusl-x64" "0.33.2"
|
||||||
|
"@img/sharp-wasm32" "0.33.2"
|
||||||
|
"@img/sharp-win32-ia32" "0.33.2"
|
||||||
|
"@img/sharp-win32-x64" "0.33.2"
|
||||||
|
|
||||||
shebang-command@^2.0.0:
|
shebang-command@^2.0.0:
|
||||||
version "2.0.0"
|
version "2.0.0"
|
||||||
resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea"
|
resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea"
|
||||||
@ -2189,6 +2369,13 @@ signal-exit@^4.0.1:
|
|||||||
resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-4.1.0.tgz#952188c1cbd546070e2dd20d0f41c0ae0530cb04"
|
resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-4.1.0.tgz#952188c1cbd546070e2dd20d0f41c0ae0530cb04"
|
||||||
integrity sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==
|
integrity sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==
|
||||||
|
|
||||||
|
simple-swizzle@^0.2.2:
|
||||||
|
version "0.2.2"
|
||||||
|
resolved "https://registry.yarnpkg.com/simple-swizzle/-/simple-swizzle-0.2.2.tgz#a4da6b635ffcccca33f70d17cb92592de95e557a"
|
||||||
|
integrity sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==
|
||||||
|
dependencies:
|
||||||
|
is-arrayish "^0.3.1"
|
||||||
|
|
||||||
slash@^3.0.0:
|
slash@^3.0.0:
|
||||||
version "3.0.0"
|
version "3.0.0"
|
||||||
resolved "https://registry.yarnpkg.com/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634"
|
resolved "https://registry.yarnpkg.com/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634"
|
||||||
|
Loading…
Reference in New Issue
Block a user