`=qObsT?SD^#^jM1Yk}PSPxJ
zG@-_mnNU_)vM|iLRSI>UMp|hatyS}17R{10IuL0TLlupt>9dRs_SPQbv7BLYyC#qv16E-y@XZ=
z-!p7I%#r-BVi$nQq3&ssRc_IC%R6$tA&^s_l46880~Wst3@>(|EO<}T4~ci~#!=e;
zD)B>o%1+$ksURD1p7I-<3ehlFyVkqrySf&gg>Bp0Z9?JaG|gyTZ{Cb8SdvAWVmFX7v2ohs!OCc!Udk
zUITUpmZ33rKLI#(&lDj}cKA#dpL4Fil=$5pu_wi1XJR!llw`
zSItPBDEdMHk2>c7#%lBxZHHvtVUOZ$}v?=?AT~9!Jcqa@IJGuMg(s^7r>pcTrd)pS`{5Cu8WPey`
z9)!!OUUY@L%9Q+bZa*S5`3f_|lFCPN6kdp_M2>{le8;cn^XUsPa+TUk47qd6)IBR%
zk*&Ip?!Ge_gmmdj)BX}P_5o@VI2*wbZ^>UhFju}0gQZh!pP%4XT9{@w;G#b3XK8sN
zF(7i$Jv(IM$8Akys9dhP^^~H2(7BfJp}yDW1#@!CL-!mGcSCnJ599WK9MV@yo_u$v
MDeX2GIKR{Qf5okjU;qFB
diff --git a/public/logo192.png b/public/logo192.png
deleted file mode 100644
index fc44b0a3796c0e0a64c3d858ca038bd4570465d9..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001
literal 5347
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
b{|{}U^kRn2wo}j7|0ATu<;8xA7zX}7|B6mN
diff --git a/public/manifest.json b/public/manifest.json
deleted file mode 100644
index 080d6c77..00000000
--- a/public/manifest.json
+++ /dev/null
@@ -1,25 +0,0 @@
-{
- "short_name": "React App",
- "name": "Create React App Sample",
- "icons": [
- {
- "src": "favicon.ico",
- "sizes": "64x64 32x32 24x24 16x16",
- "type": "image/x-icon"
- },
- {
- "src": "logo192.png",
- "type": "image/png",
- "sizes": "192x192"
- },
- {
- "src": "logo512.png",
- "type": "image/png",
- "sizes": "512x512"
- }
- ],
- "start_url": ".",
- "display": "standalone",
- "theme_color": "#000000",
- "background_color": "#ffffff"
-}
diff --git a/src/app/app-controller.ts b/src/app/app-controller.ts
new file mode 100644
index 00000000..2df8f6d9
--- /dev/null
+++ b/src/app/app-controller.ts
@@ -0,0 +1,10 @@
+import { Controller, Get, Redirect } from '@nestjs/common';
+
+@Controller()
+export class AppController {
+ @Get('/')
+ @Redirect('api', 301)
+ main() {
+ return '';
+ }
+}
diff --git a/src/server/app/app-module.ts b/src/app/app-module.ts
similarity index 70%
rename from src/server/app/app-module.ts
rename to src/app/app-module.ts
index 8b7b702a..686acc89 100644
--- a/src/server/app/app-module.ts
+++ b/src/app/app-module.ts
@@ -1,12 +1,11 @@
import { Module } from '@nestjs/common';
import { ConfigModule, ConfigService } from '@nestjs/config';
import { MongooseModule } from '@nestjs/mongoose';
-import { AuthModule } from 'src/server/features/auth/auth-module';
-import { BlogModule } from 'src/server/features/blog/blog-module';
-import { CareerModule } from 'src/server/features/career/career-module';
+import { AuthModule } from 'src/features/auth/auth-module';
+import { BlogModule } from 'src/features/blog/blog-module';
+import { CareerModule } from 'src/features/career/career-module';
import { AppController } from './app-controller';
-import { UiModule } from './ui-module';
@Module({
imports: [
@@ -25,7 +24,6 @@ import { UiModule } from './ui-module';
AuthModule,
BlogModule,
CareerModule,
- UiModule.register(),
],
controllers: [AppController],
providers: [],
diff --git a/src/server/app/logging-interceptor.ts b/src/app/logging-interceptor.ts
similarity index 100%
rename from src/server/app/logging-interceptor.ts
rename to src/app/logging-interceptor.ts
diff --git a/src/assets/colors.scss b/src/assets/colors.scss
deleted file mode 100644
index 1a7adac0..00000000
--- a/src/assets/colors.scss
+++ /dev/null
@@ -1,2 +0,0 @@
-$darkBlueColor: #343648;
-$purpleColor: #70719b;
diff --git a/src/assets/styles.scss b/src/assets/styles.scss
deleted file mode 100644
index 1ac006a8..00000000
--- a/src/assets/styles.scss
+++ /dev/null
@@ -1,51 +0,0 @@
-@tailwind base;
-@tailwind components;
-@tailwind utilities;
-@import 'colors';
-
-a {
- color: $purpleColor;
- cursor: pointer;
- text-decoration: none;
-
- &:hover {
- text-decoration: underline;
- }
-
- &:visited {
- color: $purpleColor;
- }
-}
-
-body {
- margin: 0;
- padding: 0;
- font-family: sans-serif;
- height: 100vh;
- width: 100vw;
-}
-
-h1,
-h2,
-h3 {
- color: $darkBlueColor;
- margin: 0;
-}
-
-::-webkit-scrollbar {
- position: relative;
- width: 15px;
- background-color: transparent;
-}
-
-::-webkit-scrollbar-thumb {
- background-clip: content-box;
- background-color: $purpleColor;
- border-radius: 8px;
- border: 4px solid transparent;
-
- &:hover,
- &:active {
- background-color: $darkBlueColor;
- }
-}
diff --git a/src/assets/variables.scss b/src/assets/variables.scss
deleted file mode 100644
index a7ddad9d..00000000
--- a/src/assets/variables.scss
+++ /dev/null
@@ -1,6 +0,0 @@
-$border: 0.2em;
-$footerHeight: 2vh;
-$headerHeight: 5vh;
-$padding-lg: 10em;
-$padding-md: 5em;
-$padding-sm: 1em;
diff --git a/src/client/app/http-client.ts b/src/client/app/http-client.ts
deleted file mode 100644
index 81e7ba94..00000000
--- a/src/client/app/http-client.ts
+++ /dev/null
@@ -1,13 +0,0 @@
-import type { KyInstance } from 'ky-universal';
-import ky from 'ky-universal';
-import { API_URL } from 'src/common/common-constants';
-
-export const httpClient: KyInstance = ky.create({
- headers: {
- 'Content-Type': 'application/json',
- },
- prefixUrl: API_URL,
- retry: 0,
-});
-
-export default httpClient;
diff --git a/src/client/features/auth/AuthForm.module.scss b/src/client/features/auth/AuthForm.module.scss
deleted file mode 100644
index a0866174..00000000
--- a/src/client/features/auth/AuthForm.module.scss
+++ /dev/null
@@ -1,14 +0,0 @@
-@import 'src/assets/variables';
-
-.form {
- padding: $padding-md;
-
- &Item {
- padding: $padding-sm 0;
- text-align: center;
- }
-}
-
-.error {
- color: red;
-}
diff --git a/src/client/features/auth/AuthForm.tsx b/src/client/features/auth/AuthForm.tsx
deleted file mode 100644
index 065beda5..00000000
--- a/src/client/features/auth/AuthForm.tsx
+++ /dev/null
@@ -1,60 +0,0 @@
-import { ChangeEvent, JSX, useCallback, useState } from 'react';
-
-import { Button, Input } from '@nextui-org/react';
-import { useMutation } from '@tanstack/react-query';
-import { useRouter } from 'next/router';
-import { loginApi } from 'src/client/features/auth/auth-api';
-import { useAuthToken } from 'src/client/features/auth/hooks/use-auth-token';
-
-import styles from './AuthForm.module.scss';
-
-const AuthForm = (): JSX.Element => {
- const router = useRouter();
- const [login, setLogin] = useState('');
- const [password, setPassword] = useState('');
- const [error, setError] = useState('');
- const { setToken } = useAuthToken();
- const { mutate } = useMutation({
- mutationFn: async () => {
- if (!login) {
- setError('Invalid login');
- return '';
- }
- if (!password) {
- setError('Invalid password');
- return '';
- }
- const { authToken } = await loginApi(login, password);
- return authToken;
- },
- onSuccess: (token: string) => {
- setToken(token);
- void router.push('/');
- },
- onError: (error) => {
- setError(error.message);
- },
- });
- const handleLoginChange = useCallback(({ target }: ChangeEvent) => setLogin(target.value), []);
- const handlePasswordChange = useCallback(
- ({ target }: ChangeEvent) => setPassword(target.value),
- []
- );
- const handleLogin = useCallback(() => mutate(), [mutate]);
- return (
-
-
-
-
-
-
-
-
-
-
- {error ?
{error}
: null}
-
- );
-};
-
-export default AuthForm;
diff --git a/src/client/features/auth/AuthWrapper.tsx b/src/client/features/auth/AuthWrapper.tsx
deleted file mode 100644
index 0fc89cb6..00000000
--- a/src/client/features/auth/AuthWrapper.tsx
+++ /dev/null
@@ -1,32 +0,0 @@
-import { JSX, PropsWithChildren } from 'react';
-
-import { Spinner } from '@nextui-org/react';
-import { useQuery } from '@tanstack/react-query';
-import { useRouter } from 'next/router';
-import { LOGIN_PAGE_URL } from 'src/common/common-constants';
-
-import { checkAuthTokenApi } from './auth-api';
-import { CHECK_AUTH_TOKEN_QUERY_KEY } from './auth-constants';
-import { AuthStore } from './auth-types';
-import { useAuthToken } from './hooks/use-auth-token';
-
-const AuthWrapper = ({ children }: PropsWithChildren): JSX.Element => {
- const router = useRouter();
- const { isLoading } = useQuery>({
- queryFn: async () => {
- const { token, setToken }: AuthStore = useAuthToken.getState();
- try {
- return await checkAuthTokenApi(token);
- } catch (e) {
- setToken('');
- void router.replace(LOGIN_PAGE_URL);
- }
- return {};
- },
- queryKey: [CHECK_AUTH_TOKEN_QUERY_KEY],
- refetchOnMount: false,
- });
- return <>{isLoading ? : children}>;
-};
-
-export default AuthWrapper;
diff --git a/src/client/features/auth/LoginButton.tsx b/src/client/features/auth/LoginButton.tsx
deleted file mode 100644
index 813b7fd9..00000000
--- a/src/client/features/auth/LoginButton.tsx
+++ /dev/null
@@ -1,23 +0,0 @@
-'use client';
-import { JSX, useCallback } from 'react';
-
-import { Button } from '@nextui-org/react';
-import { useRouter } from 'next/router';
-import { useAuthToken } from 'src/client/features/auth/hooks/use-auth-token';
-import { useAuthorized } from 'src/client/features/auth/hooks/use-authorized';
-import { LOGIN_PAGE_URL } from 'src/common/common-constants';
-
-const LoginButton = (): JSX.Element => {
- const router = useRouter();
- const { setToken } = useAuthToken();
- const isAuthorized = useAuthorized();
- const handleLoginClick = useCallback(() => router.push(LOGIN_PAGE_URL), []);
- const handleLogoutClick = useCallback(() => setToken(''), [setToken]);
- return isAuthorized ? (
-
- ) : (
-
- );
-};
-
-export default LoginButton;
diff --git a/src/client/features/auth/auth-api.ts b/src/client/features/auth/auth-api.ts
deleted file mode 100644
index 7324efff..00000000
--- a/src/client/features/auth/auth-api.ts
+++ /dev/null
@@ -1,20 +0,0 @@
-import httpClient from 'src/client/app/http-client';
-
-export const loginApi = (username: string, password: string): Promise<{ authToken: string }> =>
- httpClient
- .post('auth/login', {
- json: {
- username,
- password,
- },
- })
- .json();
-
-export const checkAuthTokenApi = (token: string): Promise>> =>
- httpClient
- .get('auth/check-token', {
- headers: {
- Authorization: `Bearer ${token}`,
- },
- })
- .json();
diff --git a/src/client/features/auth/auth-constants.ts b/src/client/features/auth/auth-constants.ts
deleted file mode 100644
index 3c3f0a01..00000000
--- a/src/client/features/auth/auth-constants.ts
+++ /dev/null
@@ -1,3 +0,0 @@
-export const AUTH_TOKEN_KEY = 'AUTH_TOKEN';
-
-export const CHECK_AUTH_TOKEN_QUERY_KEY = 'CHECK_AUTH_TOKEN_QUERY_KEY';
diff --git a/src/client/features/auth/auth-types.ts b/src/client/features/auth/auth-types.ts
deleted file mode 100644
index 3ea36fe8..00000000
--- a/src/client/features/auth/auth-types.ts
+++ /dev/null
@@ -1,4 +0,0 @@
-export interface AuthStore {
- setToken: (token: string) => void;
- token: string;
-}
diff --git a/src/client/features/auth/hooks/use-auth-token.ts b/src/client/features/auth/hooks/use-auth-token.ts
deleted file mode 100644
index deacd6d2..00000000
--- a/src/client/features/auth/hooks/use-auth-token.ts
+++ /dev/null
@@ -1,19 +0,0 @@
-import { create } from 'zustand';
-import { createJSONStorage, devtools, persist } from 'zustand/middleware';
-
-import { AuthStore } from '../auth-types';
-
-export const useAuthToken = create()(
- devtools(
- persist(
- (set) => ({
- token: '',
- setToken: (token: string) => set(() => ({ token: token })),
- }),
- {
- name: 'auth-store',
- storage: createJSONStorage(() => sessionStorage),
- }
- )
- )
-);
diff --git a/src/client/features/auth/hooks/use-authorized.ts b/src/client/features/auth/hooks/use-authorized.ts
deleted file mode 100644
index e33f3e8d..00000000
--- a/src/client/features/auth/hooks/use-authorized.ts
+++ /dev/null
@@ -1,6 +0,0 @@
-import { useAuthToken } from './use-auth-token';
-
-export const useAuthorized = (): boolean => {
- const { token } = useAuthToken();
- return token.length > 0;
-};
diff --git a/src/client/features/blog/BlogList.tsx b/src/client/features/blog/BlogList.tsx
deleted file mode 100644
index 2f312faf..00000000
--- a/src/client/features/blog/BlogList.tsx
+++ /dev/null
@@ -1,16 +0,0 @@
-import type { JSX } from 'react';
-
-import BlogListItem from './BlogListItem';
-import { useBlogListQuery } from './hooks/use-blog-list-query';
-
-const BlogList = (): JSX.Element => {
- const { data: blogList = [], error, isFetching } = useBlogListQuery();
- return (
-
- {error &&
Failed to load
}
- {isFetching ?
Loading...
: blogList.map((item) =>
)}
-
- );
-};
-
-export default BlogList;
diff --git a/src/client/features/blog/BlogListItem.module.scss b/src/client/features/blog/BlogListItem.module.scss
deleted file mode 100644
index 8a79bdf3..00000000
--- a/src/client/features/blog/BlogListItem.module.scss
+++ /dev/null
@@ -1,5 +0,0 @@
-@import 'src/assets/variables';
-
-.container {
- padding: $padding-sm 0;
-}
diff --git a/src/client/features/blog/BlogListItem.tsx b/src/client/features/blog/BlogListItem.tsx
deleted file mode 100644
index 06b496b8..00000000
--- a/src/client/features/blog/BlogListItem.tsx
+++ /dev/null
@@ -1,26 +0,0 @@
-import type { JSX } from 'react';
-
-import { Button } from '@nextui-org/react';
-import Link from 'next/link';
-import { BLOG_PAGE_URL } from 'src/common/common-constants';
-import { dayjs } from 'src/common/common-date';
-
-import { BlogListItemProps } from './blog-types';
-import styles from './BlogListItem.module.scss';
-
-const BlogListItem = ({ item }: BlogListItemProps): JSX.Element => {
- const { _id: itemId, date, title, link, linkCaption } = item;
- return (
-
-
{dayjs(date).utc().format('MMMM DD, YYYY')}
-
{title}
-
{link}
-
{linkCaption}
-
-
-
-
- );
-};
-
-export default BlogListItem;
diff --git a/src/client/features/blog/blog-api.ts b/src/client/features/blog/blog-api.ts
deleted file mode 100644
index a4614381..00000000
--- a/src/client/features/blog/blog-api.ts
+++ /dev/null
@@ -1,17 +0,0 @@
-import { httpClient } from 'src/client/app/http-client';
-import type { BlogDTO, BlogModel } from 'src/common/types/common-blog-types';
-
-const blogItemAdapter = (dto: BlogDTO): BlogModel => ({
- ...dto,
- date: new Date(dto.date),
-});
-
-export const blogListRequest = async (): Promise => {
- const dto = await httpClient.get('blog').json();
- return dto.map(blogItemAdapter);
-};
-
-export const blogItemRequest = async (id: string): Promise => {
- const dto = await httpClient.get(`blog/${id}`).json();
- return blogItemAdapter(dto);
-};
diff --git a/src/client/features/blog/blog-constants.ts b/src/client/features/blog/blog-constants.ts
deleted file mode 100644
index 3412b4d4..00000000
--- a/src/client/features/blog/blog-constants.ts
+++ /dev/null
@@ -1,3 +0,0 @@
-export const BLOG_LIST_QUERY_KEY = 'BLOG_LIST_QUERY_KEY';
-
-export const BLOG_ID_QUERY_KEY = 'BLOG_ID_QUERY_KEY';
diff --git a/src/client/features/blog/blog-types.ts b/src/client/features/blog/blog-types.ts
deleted file mode 100644
index a8e85685..00000000
--- a/src/client/features/blog/blog-types.ts
+++ /dev/null
@@ -1,5 +0,0 @@
-import { BlogModel } from 'src/common/types/common-blog-types';
-
-export interface BlogListItemProps {
- item: BlogModel;
-}
diff --git a/src/client/features/blog/hooks/use-blog-list-query.ts b/src/client/features/blog/hooks/use-blog-list-query.ts
deleted file mode 100644
index 1b8437a0..00000000
--- a/src/client/features/blog/hooks/use-blog-list-query.ts
+++ /dev/null
@@ -1,24 +0,0 @@
-import type { UseQueryOptions, UseQueryResult } from '@tanstack/react-query';
-import { useQuery } from '@tanstack/react-query';
-
-import { BlogModel } from '../../../../common/types/common-blog-types';
-import { blogListRequest } from '../blog-api';
-import { BLOG_LIST_QUERY_KEY } from '../blog-constants';
-
-export const useBlogListQuery = (
- {
- refetchOnMount = false,
- enabled = false,
- ...restProps
- }: Omit, 'queryKey' | 'queryFn'> = {
- enabled: false,
- refetchOnMount: false,
- }
-): UseQueryResult =>
- useQuery({
- ...restProps,
- enabled: enabled,
- queryFn: blogListRequest,
- queryKey: [BLOG_LIST_QUERY_KEY],
- refetchOnMount: refetchOnMount,
- });
diff --git a/src/client/features/career/CareerList.tsx b/src/client/features/career/CareerList.tsx
deleted file mode 100644
index dda80ea2..00000000
--- a/src/client/features/career/CareerList.tsx
+++ /dev/null
@@ -1,16 +0,0 @@
-import type { JSX } from 'react';
-
-import CareerListItem from './CareerListItem';
-import { useCareerListQuery } from './hooks/use-career-list-query';
-
-const CareerList = (): JSX.Element => {
- const { data: careerList = [], error, isFetching } = useCareerListQuery();
- return (
-
- {error &&
Failed to load
}
- {isFetching ?
Loading...
: careerList.map((item) =>
)}
-
- );
-};
-
-export default CareerList;
diff --git a/src/client/features/career/CareerListItem.module.scss b/src/client/features/career/CareerListItem.module.scss
deleted file mode 100644
index 8a79bdf3..00000000
--- a/src/client/features/career/CareerListItem.module.scss
+++ /dev/null
@@ -1,5 +0,0 @@
-@import 'src/assets/variables';
-
-.container {
- padding: $padding-sm 0;
-}
diff --git a/src/client/features/career/CareerListItem.tsx b/src/client/features/career/CareerListItem.tsx
deleted file mode 100644
index 5ba7570f..00000000
--- a/src/client/features/career/CareerListItem.tsx
+++ /dev/null
@@ -1,31 +0,0 @@
-import type { JSX } from 'react';
-
-import { Button } from '@nextui-org/react';
-import Link from 'next/link';
-import { CAREER_PAGE_URL } from 'src/common/common-constants';
-import { dayjs } from 'src/common/common-date';
-
-import { CareerListItemProps } from './career-types';
-import styles from './CareerListItem.module.scss';
-
-const CareerListItem = ({ item }: CareerListItemProps): JSX.Element => {
- const { _id: itemId, endDate, description, post, site, startDate, title, tools } = item;
- return (
-
-
{title}
-
- {dayjs(startDate).utc().format('MMMM DD, YYYY')}
- {endDate ? - {dayjs(endDate).utc().format('MMMM DD, YYYY')} : null}
-
-
{post}
-
{site}
-
{description}
-
{tools}
-
-
-
-
- );
-};
-
-export default CareerListItem;
diff --git a/src/client/features/career/CareerModal.module.scss b/src/client/features/career/CareerModal.module.scss
deleted file mode 100644
index 80ac5968..00000000
--- a/src/client/features/career/CareerModal.module.scss
+++ /dev/null
@@ -1,8 +0,0 @@
-@import 'src/assets/colors';
-@import 'src/assets/variables';
-
-.form {
- &Item {
- padding: $padding-sm;
- }
-}
diff --git a/src/client/features/career/CareerModal.tsx b/src/client/features/career/CareerModal.tsx
deleted file mode 100644
index acf8d83f..00000000
--- a/src/client/features/career/CareerModal.tsx
+++ /dev/null
@@ -1,68 +0,0 @@
-import type { JSX } from 'react';
-import { useCallback } from 'react';
-import DatePicker from 'react-datepicker';
-
-import { Button } from '@nextui-org/react';
-import { useMutation } from '@tanstack/react-query';
-import { Field, Form, Formik } from 'formik';
-import CommonModal from 'src/common/components/CommonModal';
-import { CareerModel } from 'src/common/types/common-career-types';
-
-import { careerItemCreate, careerItemUpdate } from './career-api';
-import { EMPTY_CAREER_ITEM } from './career-constants';
-import styles from './CareerModal.module.scss';
-import { useCareerItemQuery } from './hooks/use-career-item-query';
-import { useCareerModal } from './hooks/use-career-modal';
-import 'react-datepicker/dist/react-datepicker.css';
-
-const CareerModal = (): JSX.Element => {
- const { id, isOpen, handleClose } = useCareerModal();
- const { data: initialValues = EMPTY_CAREER_ITEM, isPending } = useCareerItemQuery({ enabled: true, id });
- const { mutate, error } = useMutation({
- // TODO: update only changed values
- mutationFn: ({ _id: id, ...rest }: CareerModel) => (id ? careerItemUpdate(id, rest) : careerItemCreate(rest)),
- onSuccess: handleClose,
- });
- const onSubmit = useCallback(
- (values: CareerModel) => {
- console.log(values);
- mutate(values);
- },
- [mutate]
- );
-
- return (
-
- initialValues={initialValues} onSubmit={onSubmit}>
-
-
-
- );
-};
-
-export default CareerModal;
diff --git a/src/client/features/career/career-api.ts b/src/client/features/career/career-api.ts
deleted file mode 100644
index 99c3301d..00000000
--- a/src/client/features/career/career-api.ts
+++ /dev/null
@@ -1,47 +0,0 @@
-import { httpClient } from 'src/client/app/http-client';
-import { CareerDTO, CareerModel } from 'src/common/types/common-career-types';
-
-import { AuthStore } from '../auth/auth-types';
-import { useAuthToken } from '../auth/hooks/use-auth-token';
-
-const careerItemAdapter = (dto: CareerDTO): CareerModel => ({
- ...dto,
- endDate: dto.endDate && new Date(dto.endDate),
- startDate: new Date(dto.startDate),
-});
-
-export const careerListRequest = async (): Promise => {
- const dto = await httpClient.get('career').json();
- return dto.map(careerItemAdapter);
-};
-
-export const careerItemRequest = async (id: string): Promise => {
- const dto = await httpClient.get(`career/${id}`).json();
- return careerItemAdapter(dto);
-};
-
-export const careerItemCreate = async (item: Partial): Promise => {
- const { token }: AuthStore = useAuthToken.getState();
- const dto = await httpClient
- .post('career', {
- headers: {
- Authorization: `Bearer ${token}`,
- },
- json: item,
- })
- .json();
- return careerItemAdapter(dto);
-};
-
-export const careerItemUpdate = async (id: string, { ...rest }: Partial): Promise => {
- const { token }: AuthStore = useAuthToken.getState();
- const dto = await httpClient
- .patch(`career/${id}`, {
- headers: {
- Authorization: `Bearer ${token}`,
- },
- json: rest,
- })
- .json();
- return careerItemAdapter(dto);
-};
diff --git a/src/client/features/career/career-constants.ts b/src/client/features/career/career-constants.ts
deleted file mode 100644
index 05a8662a..00000000
--- a/src/client/features/career/career-constants.ts
+++ /dev/null
@@ -1,14 +0,0 @@
-import { CareerModel } from 'src/common/types/common-career-types';
-
-export const CAREER_LIST_QUERY_KEY = 'CAREER_LIST_QUERY_KEY';
-
-export const CAREER_ITEM_QUERY_KEY = 'CAREER_ITEM_QUERY_KEY';
-
-export const EMPTY_CAREER_ITEM: CareerModel = {
- description: '',
- post: '',
- site: '',
- startDate: new Date(),
- title: '',
- tools: '',
-};
diff --git a/src/client/features/career/career-types.ts b/src/client/features/career/career-types.ts
deleted file mode 100644
index 4e5313bf..00000000
--- a/src/client/features/career/career-types.ts
+++ /dev/null
@@ -1,17 +0,0 @@
-import { UseQueryOptions } from '@tanstack/react-query';
-import { CareerModel } from 'src/common/types/common-career-types';
-
-export interface UseCareerItemQueryParams extends Omit, 'queryKey' | 'queryFn'> {
- id: string | null;
-}
-
-export interface CareerListItemProps {
- item: CareerModel;
-}
-
-export interface CareerModalStore {
- handleClose: () => void;
- id: string | null;
- isOpen: boolean;
- handleOpen: (id?: string) => void;
-}
diff --git a/src/client/features/career/hooks/use-career-item-query.ts b/src/client/features/career/hooks/use-career-item-query.ts
deleted file mode 100644
index ad756c57..00000000
--- a/src/client/features/career/hooks/use-career-item-query.ts
+++ /dev/null
@@ -1,22 +0,0 @@
-import type { UseQueryResult } from '@tanstack/react-query';
-import { useQuery } from '@tanstack/react-query';
-import { CareerModel } from 'src/common/types/common-career-types';
-
-import { careerItemRequest } from '../career-api';
-import { CAREER_ITEM_QUERY_KEY, EMPTY_CAREER_ITEM } from '../career-constants';
-import { UseCareerItemQueryParams } from '../career-types';
-
-export const useCareerItemQuery = (
- { enabled = false, id = null, refetchOnMount = false, ...restProps }: UseCareerItemQueryParams = {
- enabled: false,
- id: null,
- refetchOnMount: false,
- }
-): UseQueryResult =>
- useQuery({
- ...restProps,
- enabled: enabled,
- queryFn: () => (id ? careerItemRequest(id) : EMPTY_CAREER_ITEM),
- queryKey: [CAREER_ITEM_QUERY_KEY, id],
- refetchOnMount: refetchOnMount,
- });
diff --git a/src/client/features/career/hooks/use-career-list-query.ts b/src/client/features/career/hooks/use-career-list-query.ts
deleted file mode 100644
index 8e5cea18..00000000
--- a/src/client/features/career/hooks/use-career-list-query.ts
+++ /dev/null
@@ -1,24 +0,0 @@
-import type { UseQueryOptions, UseQueryResult } from '@tanstack/react-query';
-import { useQuery } from '@tanstack/react-query';
-import { CareerModel } from 'src/common/types/common-career-types';
-
-import { careerListRequest } from '../career-api';
-import { CAREER_LIST_QUERY_KEY } from '../career-constants';
-
-export const useCareerListQuery = (
- {
- refetchOnMount = false,
- enabled = false,
- ...restProps
- }: Omit, 'queryKey' | 'queryFn'> = {
- enabled: false,
- refetchOnMount: false,
- }
-): UseQueryResult =>
- useQuery({
- ...restProps,
- enabled: enabled,
- queryFn: careerListRequest,
- queryKey: [CAREER_LIST_QUERY_KEY],
- refetchOnMount: refetchOnMount,
- });
diff --git a/src/client/features/career/hooks/use-career-modal.ts b/src/client/features/career/hooks/use-career-modal.ts
deleted file mode 100644
index a7540484..00000000
--- a/src/client/features/career/hooks/use-career-modal.ts
+++ /dev/null
@@ -1,18 +0,0 @@
-import { create } from 'zustand';
-import { devtools } from 'zustand/middleware';
-
-import { CareerModalStore } from '../career-types';
-
-export const useCareerModal = create()(
- devtools(
- (set) => ({
- handleClose: () => set(() => ({ isOpen: false, id: null })),
- id: null,
- isOpen: false,
- handleOpen: (id = null) => set(() => ({ isOpen: true, id: id })),
- }),
- {
- name: 'career-modal-store',
- }
- )
-);
diff --git a/src/client/features/summary/Summary.module.scss b/src/client/features/summary/Summary.module.scss
deleted file mode 100644
index 6376796d..00000000
--- a/src/client/features/summary/Summary.module.scss
+++ /dev/null
@@ -1,5 +0,0 @@
-@import 'src/assets/variables';
-
-.link {
- padding: $padding-sm 0;
-}
diff --git a/src/client/features/summary/Summary.tsx b/src/client/features/summary/Summary.tsx
deleted file mode 100644
index 897fd8e4..00000000
--- a/src/client/features/summary/Summary.tsx
+++ /dev/null
@@ -1,23 +0,0 @@
-import type { JSX } from 'react';
-
-import Link from 'next/link';
-import { BLOG_PAGE_URL, CAREER_PAGE_URL } from 'src/common/common-constants';
-import ApiLink from 'src/common/components/ApiLink';
-
-import styles from './Summary.module.scss';
-
-const Summary = (): JSX.Element => (
-
- -
- Blog page
-
- -
- Career page
-
- -
- API documentation page
-
-
-);
-
-export default Summary;
diff --git a/src/common/common-constants.ts b/src/common/common-constants.ts
index b4bd0ac4..a734c1d6 100644
--- a/src/common/common-constants.ts
+++ b/src/common/common-constants.ts
@@ -1,26 +1,3 @@
import * as process from 'process';
-export const isServer = typeof window === 'undefined';
-export const isDev = process.env.NODE_ENV === 'development';
-export const PROTOCOL = (isServer ? global.location?.protocol : window.location?.protocol) ?? 'http';
-export const HOST = (isServer ? global.location?.hostname : window.location?.hostname) ?? 'localhost';
export const PORT = process.env.PORT || 3000;
-// protocol comes with ":" on client side
-export const API_URL = process.env.NEXT_PUBLIC_API_URL;
-// routes
-export const BLOG_PAGE_ID = 'blog';
-export const BLOG_PAGE_URL = `/${BLOG_PAGE_ID}`;
-export const CAREER_PAGE_ID = 'career';
-export const CAREER_PAGE_URL = `/${CAREER_PAGE_ID}`;
-export const LOGIN_PAGE_ID = 'login';
-export const LOGIN_PAGE_URL = `/${LOGIN_PAGE_ID}`;
-
-if (isDev) {
- console.log('isServer', isServer);
- console.log('isDev', isDev);
- console.log('PROTOCOL', PROTOCOL);
- console.log('HOST', HOST);
- console.log('PORT', PORT);
-}
-
-console.log('API_URL', API_URL);
diff --git a/src/common/common-date.ts b/src/common/common-date.ts
deleted file mode 100644
index 0468afc8..00000000
--- a/src/common/common-date.ts
+++ /dev/null
@@ -1,10 +0,0 @@
-import dayjs from 'dayjs';
-import customParseFormat from 'dayjs/plugin/customParseFormat';
-import timezone from 'dayjs/plugin/timezone';
-import utc from 'dayjs/plugin/utc';
-
-dayjs.extend(utc);
-dayjs.extend(timezone);
-dayjs.extend(customParseFormat);
-
-export { dayjs };
diff --git a/src/common/components/ApiLink.tsx b/src/common/components/ApiLink.tsx
deleted file mode 100644
index af724d13..00000000
--- a/src/common/components/ApiLink.tsx
+++ /dev/null
@@ -1,12 +0,0 @@
-import type { PropsWithChildren, ReactElement } from 'react';
-
-import { API_URL } from 'src/common/common-constants';
-import { WithClass } from 'src/common/types/common-types';
-
-const ApiLink = ({ children, className = '' }: PropsWithChildren): ReactElement => (
-
- {children}
-
-);
-
-export default ApiLink;
diff --git a/src/common/components/CommonModal.tsx b/src/common/components/CommonModal.tsx
deleted file mode 100644
index b3a103c0..00000000
--- a/src/common/components/CommonModal.tsx
+++ /dev/null
@@ -1,24 +0,0 @@
-import type { JSX, PropsWithChildren } from 'react';
-
-import { Modal, ModalBody, ModalContent, ModalFooter, ModalHeader, Spinner } from '@nextui-org/react';
-
-import { ModalProps } from './commpon-components-types';
-
-const CommonModal = ({
- children,
- footer,
- handleClose,
- header,
- isLoading,
- isOpen,
-}: PropsWithChildren): JSX.Element => (
-
-
- {header ? {header} : null}
- {isLoading ? : {children}}
- {footer ? {footer} : null}
-
-
-);
-
-export default CommonModal;
diff --git a/src/common/components/Layout.module.scss b/src/common/components/Layout.module.scss
deleted file mode 100644
index 1306ee82..00000000
--- a/src/common/components/Layout.module.scss
+++ /dev/null
@@ -1,27 +0,0 @@
-@import 'src/assets/variables';
-
-.header {
- height: $headerHeight;
- left: $padding-lg;
- position: fixed;
- right: $padding-lg;
-}
-
-.main {
- bottom: $footerHeight;
- left: $padding-lg;
- overflow-y: auto;
- padding: $padding-sm 0;
- position: fixed;
- right: $padding-lg;
- top: $headerHeight;
-}
-
-.footer {
- bottom: 0;
- height: $footerHeight;
- left: 0;
- position: fixed;
- right: 0;
- text-align: center;
-}
diff --git a/src/common/components/Layout.tsx b/src/common/components/Layout.tsx
deleted file mode 100644
index f60bb9ee..00000000
--- a/src/common/components/Layout.tsx
+++ /dev/null
@@ -1,20 +0,0 @@
-import type { PropsWithChildren, ReactElement } from 'react';
-
-import styles from './Layout.module.scss';
-import Navigation from './Navigation';
-
-export const rightsText = `© ${new Date().getFullYear()} All rights reserved`;
-
-const Layout = ({ children }: PropsWithChildren): ReactElement => (
-
-);
-
-export default Layout;
diff --git a/src/common/components/Navigation.module.scss b/src/common/components/Navigation.module.scss
deleted file mode 100644
index 8acd940e..00000000
--- a/src/common/components/Navigation.module.scss
+++ /dev/null
@@ -1,9 +0,0 @@
-@import 'src/assets/variables';
-
-.nav {
- height: $headerHeight;
-
- &Link {
- padding: $padding-sm;
- }
-}
diff --git a/src/common/components/Navigation.tsx b/src/common/components/Navigation.tsx
deleted file mode 100644
index 77540909..00000000
--- a/src/common/components/Navigation.tsx
+++ /dev/null
@@ -1,26 +0,0 @@
-import type { ReactElement } from 'react';
-
-import Link from 'next/link';
-import { BLOG_PAGE_URL, CAREER_PAGE_URL } from 'src/common/common-constants';
-
-import ApiLink from './ApiLink';
-import styles from './Navigation.module.scss';
-
-const Navigation = (): ReactElement => (
-
-);
-
-export default Navigation;
diff --git a/src/common/components/commpon-components-types.ts b/src/common/components/commpon-components-types.ts
deleted file mode 100644
index 8a6da102..00000000
--- a/src/common/components/commpon-components-types.ts
+++ /dev/null
@@ -1,9 +0,0 @@
-import type { ReactNode } from 'react';
-
-export interface ModalProps {
- footer?: ReactNode;
- handleClose: () => void;
- header?: ReactNode;
- isLoading?: boolean;
- isOpen: boolean;
-}
diff --git a/src/common/hooks/use-toggle-value.ts b/src/common/hooks/use-toggle-value.ts
deleted file mode 100644
index f15d50e2..00000000
--- a/src/common/hooks/use-toggle-value.ts
+++ /dev/null
@@ -1,13 +0,0 @@
-import { useCallback, useState } from 'react';
-
-const useToggleValue = (initialValue = false): [value: boolean, toggleValue: () => void] => {
- const [value, setValue] = useState(initialValue);
-
- const toggleValue = useCallback(() => {
- setValue((prev) => !prev);
- }, [setValue]);
-
- return [value, toggleValue];
-};
-
-export default useToggleValue;
diff --git a/src/server/common/params/params-interceptor.ts b/src/common/params/params-interceptor.ts
similarity index 100%
rename from src/server/common/params/params-interceptor.ts
rename to src/common/params/params-interceptor.ts
diff --git a/src/server/common/params/params-module.ts b/src/common/params/params-module.ts
similarity index 100%
rename from src/server/common/params/params-module.ts
rename to src/common/params/params-module.ts
diff --git a/src/server/features/auth/auth-api-controller.ts b/src/features/auth/auth-controller.ts
similarity index 96%
rename from src/server/features/auth/auth-api-controller.ts
rename to src/features/auth/auth-controller.ts
index dc7978b5..ef2ea5af 100644
--- a/src/server/features/auth/auth-api-controller.ts
+++ b/src/features/auth/auth-controller.ts
@@ -7,7 +7,7 @@ import { JwtAuthGuard } from './guards/jwt-auth-guard';
import { LocalAuthGuard } from './guards/local-auth-guard';
@Controller('api/auth')
-export class AuthApiController {
+export class AuthController {
constructor(private readonly authService: AuthService) {}
@UseGuards(LocalAuthGuard)
diff --git a/src/server/features/auth/auth-module.ts b/src/features/auth/auth-module.ts
similarity index 82%
rename from src/server/features/auth/auth-module.ts
rename to src/features/auth/auth-module.ts
index e29a352d..efd28e6c 100644
--- a/src/server/features/auth/auth-module.ts
+++ b/src/features/auth/auth-module.ts
@@ -3,9 +3,8 @@ import { ConfigService } from '@nestjs/config';
import { JwtModule } from '@nestjs/jwt';
import { PassportModule } from '@nestjs/passport';
-import { UserModule } from '../user/user.module';
+import { UserModule } from '../user/user-module';
-import { AuthApiController } from './auth-api-controller';
import { AuthController } from './auth-controller';
import { AuthService } from './auth-service';
import { JwtStrategy } from './strategies/jwt-strategy';
@@ -24,6 +23,6 @@ import { LocalStrategy } from './strategies/local-strategy';
}),
],
providers: [AuthService, LocalStrategy, JwtStrategy],
- controllers: [AuthApiController, AuthController],
+ controllers: [AuthController],
})
export class AuthModule {}
diff --git a/src/server/features/auth/auth-service.ts b/src/features/auth/auth-service.ts
similarity index 87%
rename from src/server/features/auth/auth-service.ts
rename to src/features/auth/auth-service.ts
index 3281d642..4c20810c 100644
--- a/src/server/features/auth/auth-service.ts
+++ b/src/features/auth/auth-service.ts
@@ -1,9 +1,9 @@
import { Injectable } from '@nestjs/common';
import { JwtService } from '@nestjs/jwt';
import pickBy from 'lodash/pickBy';
+import { User } from 'src/features/user/user-schema';
-import { User } from '../user/entities/user.entity';
-import { UserService } from '../user/user.service';
+import { UserService } from '../user/user-service';
@Injectable()
export class AuthService {
diff --git a/src/server/features/auth/guards/jwt-auth-guard.ts b/src/features/auth/guards/jwt-auth-guard.ts
similarity index 100%
rename from src/server/features/auth/guards/jwt-auth-guard.ts
rename to src/features/auth/guards/jwt-auth-guard.ts
diff --git a/src/server/features/auth/guards/local-auth-guard.ts b/src/features/auth/guards/local-auth-guard.ts
similarity index 100%
rename from src/server/features/auth/guards/local-auth-guard.ts
rename to src/features/auth/guards/local-auth-guard.ts
diff --git a/src/server/features/auth/strategies/jwt-strategy.ts b/src/features/auth/strategies/jwt-strategy.ts
similarity index 100%
rename from src/server/features/auth/strategies/jwt-strategy.ts
rename to src/features/auth/strategies/jwt-strategy.ts
diff --git a/src/server/features/auth/strategies/local-strategy.ts b/src/features/auth/strategies/local-strategy.ts
similarity index 91%
rename from src/server/features/auth/strategies/local-strategy.ts
rename to src/features/auth/strategies/local-strategy.ts
index c0b36c7e..cfe429d6 100644
--- a/src/server/features/auth/strategies/local-strategy.ts
+++ b/src/features/auth/strategies/local-strategy.ts
@@ -1,8 +1,8 @@
import { Injectable, UnauthorizedException } from '@nestjs/common';
import { PassportStrategy } from '@nestjs/passport';
import { Strategy } from 'passport-local';
+import { User } from 'src/features/user/user-schema';
-import { User } from '../../user/entities/user.entity';
import { AuthService } from '../auth-service';
@Injectable()
diff --git a/src/server/features/blog/blog-api-controller.ts b/src/features/blog/blog-controller.ts
similarity index 96%
rename from src/server/features/blog/blog-api-controller.ts
rename to src/features/blog/blog-controller.ts
index a4f32e91..f0dbfc86 100644
--- a/src/server/features/blog/blog-api-controller.ts
+++ b/src/features/blog/blog-controller.ts
@@ -7,7 +7,7 @@ import { Blog } from './blog-schema';
import { BlogService } from './blog-service';
@Controller('api/blog')
-export class BlogApiController {
+export class BlogController {
constructor(private readonly blogService: BlogService) {}
@Get()
diff --git a/src/server/features/blog/blog-models.ts b/src/features/blog/blog-models.ts
similarity index 100%
rename from src/server/features/blog/blog-models.ts
rename to src/features/blog/blog-models.ts
diff --git a/src/server/features/blog/blog-module.ts b/src/features/blog/blog-module.ts
similarity index 65%
rename from src/server/features/blog/blog-module.ts
rename to src/features/blog/blog-module.ts
index ca953d46..e4c56899 100644
--- a/src/server/features/blog/blog-module.ts
+++ b/src/features/blog/blog-module.ts
@@ -1,9 +1,8 @@
import { Module } from '@nestjs/common';
import { MongooseModule } from '@nestjs/mongoose';
-import { ParamsModule } from 'src/server/common/params/params-module';
-import { AuthModule } from 'src/server/features/auth/auth-module';
+import { ParamsModule } from 'src/common/params/params-module';
+import { AuthModule } from 'src/features/auth/auth-module';
-import { BlogApiController } from './blog-api-controller';
import { BlogController } from './blog-controller';
import { Blog, BlogSchema } from './blog-schema';
import { BlogService } from './blog-service';
@@ -19,7 +18,7 @@ import { BlogService } from './blog-service';
AuthModule,
ParamsModule,
],
- controllers: [BlogApiController, BlogController],
+ controllers: [BlogController],
providers: [BlogService],
})
export class BlogModule {}
diff --git a/src/server/features/blog/blog-schema.ts b/src/features/blog/blog-schema.ts
similarity index 100%
rename from src/server/features/blog/blog-schema.ts
rename to src/features/blog/blog-schema.ts
diff --git a/src/server/features/blog/blog-service.ts b/src/features/blog/blog-service.ts
similarity index 100%
rename from src/server/features/blog/blog-service.ts
rename to src/features/blog/blog-service.ts
diff --git a/src/server/features/career/career-api-controller.ts b/src/features/career/career-controller.ts
similarity index 90%
rename from src/server/features/career/career-api-controller.ts
rename to src/features/career/career-controller.ts
index eb395a7c..d0ac0de1 100644
--- a/src/server/features/career/career-api-controller.ts
+++ b/src/features/career/career-controller.ts
@@ -1,12 +1,12 @@
import { Body, Controller, Delete, Get, Param, Patch, Post, UseGuards } from '@nestjs/common';
-import { JwtAuthGuard } from 'src/server/features/auth/guards/jwt-auth-guard';
+import { JwtAuthGuard } from 'src/features/auth/guards/jwt-auth-guard';
import { CreateCareerDTO, UpdateCareerDTO } from './career-models';
import { Career } from './career-schema';
import { CareerService } from './career-service';
@Controller('api/career')
-export class CareerApiController {
+export class CareerController {
constructor(private readonly careerService: CareerService) {}
@Get()
diff --git a/src/server/features/career/career-models.ts b/src/features/career/career-models.ts
similarity index 100%
rename from src/server/features/career/career-models.ts
rename to src/features/career/career-models.ts
diff --git a/src/server/features/career/career-module.ts b/src/features/career/career-module.ts
similarity index 65%
rename from src/server/features/career/career-module.ts
rename to src/features/career/career-module.ts
index 6d54c3c0..369fa677 100644
--- a/src/server/features/career/career-module.ts
+++ b/src/features/career/career-module.ts
@@ -1,9 +1,8 @@
import { Module } from '@nestjs/common';
import { MongooseModule } from '@nestjs/mongoose';
-import { ParamsModule } from 'src/server/common/params/params-module';
-import { AuthModule } from 'src/server/features/auth/auth-module';
+import { ParamsModule } from 'src/common/params/params-module';
+import { AuthModule } from 'src/features/auth/auth-module';
-import { CareerApiController } from './career-api-controller';
import { CareerController } from './career-controller';
import { Career, CareerSchema } from './career-schema';
import { CareerService } from './career-service';
@@ -19,7 +18,7 @@ import { CareerService } from './career-service';
AuthModule,
ParamsModule,
],
- controllers: [CareerApiController, CareerController],
+ controllers: [CareerController],
providers: [CareerService],
})
export class CareerModule {}
diff --git a/src/server/features/career/career-schema.ts b/src/features/career/career-schema.ts
similarity index 100%
rename from src/server/features/career/career-schema.ts
rename to src/features/career/career-schema.ts
diff --git a/src/server/features/career/career-service.ts b/src/features/career/career-service.ts
similarity index 100%
rename from src/server/features/career/career-service.ts
rename to src/features/career/career-service.ts
diff --git a/src/server/features/user/user.module.ts b/src/features/user/user-module.ts
similarity index 75%
rename from src/server/features/user/user.module.ts
rename to src/features/user/user-module.ts
index 22c1989b..683f7a22 100644
--- a/src/server/features/user/user.module.ts
+++ b/src/features/user/user-module.ts
@@ -1,8 +1,8 @@
import { Module } from '@nestjs/common';
import { MongooseModule } from '@nestjs/mongoose';
-import { User, UserSchema } from './entities/user.entity';
-import { UserService } from './user.service';
+import { User, UserSchema } from './user-schema';
+import { UserService } from './user-service';
@Module({
imports: [
diff --git a/src/server/features/user/entities/user.entity.ts b/src/features/user/user-schema.ts
similarity index 100%
rename from src/server/features/user/entities/user.entity.ts
rename to src/features/user/user-schema.ts
diff --git a/src/server/features/user/user.service.ts b/src/features/user/user-service.ts
similarity index 93%
rename from src/server/features/user/user.service.ts
rename to src/features/user/user-service.ts
index 186c8d42..26bc255c 100644
--- a/src/server/features/user/user.service.ts
+++ b/src/features/user/user-service.ts
@@ -2,7 +2,7 @@ import { Injectable, NotFoundException } from '@nestjs/common';
import { InjectModel } from '@nestjs/mongoose';
import { Model } from 'mongoose';
-import { User } from './entities/user.entity';
+import { User } from './user-schema';
@Injectable()
export class UserService {
diff --git a/src/server/main.ts b/src/main.ts
similarity index 84%
rename from src/server/main.ts
rename to src/main.ts
index fc0fd84f..d158e60e 100644
--- a/src/server/main.ts
+++ b/src/main.ts
@@ -2,10 +2,9 @@ import { ValidationPipe } from '@nestjs/common';
import { NestFactory } from '@nestjs/core';
import { NestExpressApplication } from '@nestjs/platform-express';
import { DocumentBuilder, SwaggerModule } from '@nestjs/swagger';
+import { AppModule } from 'src/app/app-module';
+import { LoggingInterceptor } from 'src/app/logging-interceptor';
import { PORT } from 'src/common/common-constants';
-import { LoggingInterceptor } from 'src/server/app/logging-interceptor';
-
-import { AppModule } from './app/app-module';
async function bootstrap() {
const app = await NestFactory.create(AppModule);
@@ -13,8 +12,8 @@ async function bootstrap() {
origin: [
/https:\/\/artemganev-be-*.herokuapp.com*/,
/https:\/\/artyom-88.github.io*/,
- /https:\/\/artyom-ganev-node-test.herokuapp.com*/,
- /https?:\/\/localhost:[\d]{4}/,
+ /https:\/\/artemganev-admin-410f30539f11.herokuapp.com*/,
+ /https?:\/\/localhost:\d{4}/,
],
});
app.useGlobalPipes(
diff --git a/src/pages/_app.tsx b/src/pages/_app.tsx
deleted file mode 100644
index c03232cb..00000000
--- a/src/pages/_app.tsx
+++ /dev/null
@@ -1,43 +0,0 @@
-import { JSX, StrictMode } from 'react';
-
-import { NextUIProvider } from '@nextui-org/system';
-import { QueryClient, QueryClientProvider } from '@tanstack/react-query';
-import Head from 'next/head';
-import 'src/assets/styles.scss';
-import AuthWrapper from 'src/client/features/auth/AuthWrapper';
-import Layout from 'src/common/components/Layout';
-
-import packageJson from '../../package.json';
-import favicon from '../../public/favicon.ico';
-
-const queryClient = new QueryClient({
- defaultOptions: {
- mutations: { retry: 0 },
- queries: {
- refetchOnWindowFocus: false,
- retry: 0,
- },
- },
-});
-
-const App = ({ Component, pageProps }): JSX.Element => (
-
-
-
-
- {pageProps.title}
-
-
-
-
-
-
-
-
-
-
-
-
-);
-
-export default App;
diff --git a/src/pages/blog.tsx b/src/pages/blog.tsx
deleted file mode 100644
index 790ada70..00000000
--- a/src/pages/blog.tsx
+++ /dev/null
@@ -1,22 +0,0 @@
-import type { JSX } from 'react';
-import { useCallback } from 'react';
-
-import { Button } from '@nextui-org/react';
-import BlogList from 'src/client/features/blog/BlogList';
-import { useBlogListQuery } from 'src/client/features/blog/hooks/use-blog-list-query';
-
-const Blogs = (): JSX.Element => {
- const { refetch } = useBlogListQuery({ enabled: true });
- const handleRefresh = useCallback(() => refetch(), [refetch]);
- return (
- <>
-
-
Blog
-
-
-
- >
- );
-};
-
-export default Blogs;
diff --git a/src/pages/blog/[id].tsx b/src/pages/blog/[id].tsx
deleted file mode 100644
index d6cb2287..00000000
--- a/src/pages/blog/[id].tsx
+++ /dev/null
@@ -1,34 +0,0 @@
-import type { JSX } from 'react';
-
-import { useQuery } from '@tanstack/react-query';
-import { useRouter } from 'next/router';
-import { blogItemRequest } from 'src/client/features/blog/blog-api';
-import type { BlogModel } from 'src/common/types/common-blog-types';
-
-import { BLOG_ID_QUERY_KEY } from '../../client/features/blog/blog-constants';
-
-const Blog = (): JSX.Element => {
- const router = useRouter();
- const id = router.query?.id as string;
- const { data, error } = useQuery({
- queryFn: () => blogItemRequest(id),
- queryKey: [BLOG_ID_QUERY_KEY, id],
- refetchOnMount: false,
- });
- const blog = data ?? ({} as BlogModel);
-
- if (error) return Failed to load
;
- if (!blog) return Loading...
;
- return (
- <>
- {blog.title}
-
-
{blog.date?.getFullYear()}
-
{blog.link}
-
{blog.linkCaption}
-
- >
- );
-};
-
-export default Blog;
diff --git a/src/pages/career.tsx b/src/pages/career.tsx
deleted file mode 100644
index eb39f5a3..00000000
--- a/src/pages/career.tsx
+++ /dev/null
@@ -1,31 +0,0 @@
-import type { JSX } from 'react';
-import { useCallback } from 'react';
-
-import { Button } from '@nextui-org/react';
-import CareerList from 'src/client/features/career/CareerList';
-import CareerModal from 'src/client/features/career/CareerModal';
-import { useCareerListQuery } from 'src/client/features/career/hooks/use-career-list-query';
-import { useCareerModal } from 'src/client/features/career/hooks/use-career-modal';
-
-const Careers = (): JSX.Element => {
- const { refetch } = useCareerListQuery({ enabled: true });
- const { handleOpen } = useCareerModal();
- const handleAdd = useCallback(() => handleOpen(), [handleOpen]);
- const handleRefresh = useCallback(() => refetch(), [refetch]);
- return (
-
-
-
Career
-
-
-
-
-
-
-
-
-
- );
-};
-
-export default Careers;
diff --git a/src/pages/career/[id].tsx b/src/pages/career/[id].tsx
deleted file mode 100644
index 25242c41..00000000
--- a/src/pages/career/[id].tsx
+++ /dev/null
@@ -1,32 +0,0 @@
-import type { JSX } from 'react';
-
-import { useQuery } from '@tanstack/react-query';
-import { useRouter } from 'next/router';
-
-import { BLOG_ID_QUERY_KEY } from '../../client/features/blog/blog-constants';
-import { careerItemRequest } from '../../client/features/career/career-api';
-import { CareerModel } from '../../common/types/common-career-types';
-
-const Career = (): JSX.Element => {
- const router = useRouter();
- const id = router.query?.id as string;
- const { data, error } = useQuery({
- queryFn: () => careerItemRequest(id),
- queryKey: [BLOG_ID_QUERY_KEY, id],
- refetchOnMount: false,
- });
- const career = data ?? ({} as CareerModel);
-
- if (error) return Failed to load
;
- if (!career) return Loading...
;
- return (
- <>
- {career.title}
-
-
{JSON.stringify(career)}
-
- >
- );
-};
-
-export default Career;
diff --git a/src/pages/index.tsx b/src/pages/index.tsx
deleted file mode 100644
index 29a8fe5e..00000000
--- a/src/pages/index.tsx
+++ /dev/null
@@ -1,12 +0,0 @@
-import type { JSX } from 'react';
-
-import Summary from 'src/client/features/summary/Summary';
-
-const Home = (): JSX.Element => (
-
-
Site structure
-
-
-);
-
-export default Home;
diff --git a/src/pages/login.tsx b/src/pages/login.tsx
deleted file mode 100644
index 719df13b..00000000
--- a/src/pages/login.tsx
+++ /dev/null
@@ -1,9 +0,0 @@
-import { JSX } from 'react';
-
-import AuthForm from 'src/client/features/auth/AuthForm';
-
-const Login = (): JSX.Element => {
- return ;
-};
-
-export default Login;
diff --git a/src/server/app/app-controller.ts b/src/server/app/app-controller.ts
deleted file mode 100644
index 723fe45e..00000000
--- a/src/server/app/app-controller.ts
+++ /dev/null
@@ -1,10 +0,0 @@
-import { Controller, Get, Render } from '@nestjs/common';
-
-@Controller()
-export class AppController {
- @Get('/')
- @Render('index')
- main() {
- return {};
- }
-}
diff --git a/src/server/app/ui-module.ts b/src/server/app/ui-module.ts
deleted file mode 100644
index 0efeda6b..00000000
--- a/src/server/app/ui-module.ts
+++ /dev/null
@@ -1,14 +0,0 @@
-import { DynamicModule, Module } from '@nestjs/common';
-import { RenderModule } from 'nest-next';
-import Next from 'next';
-import { isDev } from 'src/common/common-constants';
-
-@Module({})
-export class UiModule {
- static register(): DynamicModule {
- return {
- module: UiModule,
- imports: [RenderModule.forRootAsync(Next({ dev: isDev }), { viewsDir: null })],
- };
- }
-}
diff --git a/src/server/features/auth/auth-controller.ts b/src/server/features/auth/auth-controller.ts
deleted file mode 100644
index 3bcb0cf8..00000000
--- a/src/server/features/auth/auth-controller.ts
+++ /dev/null
@@ -1,13 +0,0 @@
-import { Controller, Get, Render, UseInterceptors } from '@nestjs/common';
-import { LOGIN_PAGE_ID, LOGIN_PAGE_URL } from 'src/common/common-constants';
-import { ParamsInterceptor } from 'src/server/common/params/params-interceptor';
-
-@Controller()
-export class AuthController {
- @Get(LOGIN_PAGE_URL)
- @Render(LOGIN_PAGE_ID)
- @UseInterceptors(ParamsInterceptor)
- login() {
- return {};
- }
-}
diff --git a/src/server/features/blog/blog-controller.ts b/src/server/features/blog/blog-controller.ts
deleted file mode 100644
index a7ff207f..00000000
--- a/src/server/features/blog/blog-controller.ts
+++ /dev/null
@@ -1,20 +0,0 @@
-import { Controller, Get, Render, UseInterceptors } from '@nestjs/common';
-import { BLOG_PAGE_ID, BLOG_PAGE_URL } from 'src/common/common-constants';
-import { ParamsInterceptor } from 'src/server/common/params/params-interceptor';
-
-@Controller()
-export class BlogController {
- @Get(BLOG_PAGE_URL)
- @Render(BLOG_PAGE_ID)
- @UseInterceptors(ParamsInterceptor)
- blogList() {
- return {};
- }
-
- @Get('/blog/:id')
- @Render('blog/[id]')
- @UseInterceptors(ParamsInterceptor)
- blogItem() {
- return {};
- }
-}
diff --git a/src/server/features/career/career-controller.ts b/src/server/features/career/career-controller.ts
deleted file mode 100644
index 5ec8e6d9..00000000
--- a/src/server/features/career/career-controller.ts
+++ /dev/null
@@ -1,20 +0,0 @@
-import { Controller, Get, Render, UseInterceptors } from '@nestjs/common';
-import { CAREER_PAGE_ID, CAREER_PAGE_URL } from 'src/common/common-constants';
-import { ParamsInterceptor } from 'src/server/common/params/params-interceptor';
-
-@Controller()
-export class CareerController {
- @Get(CAREER_PAGE_URL)
- @Render(CAREER_PAGE_ID)
- @UseInterceptors(ParamsInterceptor)
- careerList() {
- return {};
- }
-
- @Get('/career/:id')
- @Render('career/[id]')
- @UseInterceptors(ParamsInterceptor)
- careerItem() {
- return {};
- }
-}
diff --git a/tailwind.config.js b/tailwind.config.js
deleted file mode 100644
index a1046d46..00000000
--- a/tailwind.config.js
+++ /dev/null
@@ -1,11 +0,0 @@
-import { nextui } from '@nextui-org/theme';
-
-/** @type {import('tailwindcss').Config} */
-module.exports = {
- content: ['./node_modules/@nextui-org/theme/dist/**/*.{js,ts,jsx,tsx}'],
- theme: {
- extend: {},
- },
- darkMode: 'class',
- plugins: [nextui()],
-};
diff --git a/tsconfig.build.json b/tsconfig.build.json
deleted file mode 100644
index 04a31572..00000000
--- a/tsconfig.build.json
+++ /dev/null
@@ -1,9 +0,0 @@
-{
- "extends": "./tsconfig.json",
- "exclude": [
- "node_modules",
- "dist",
- "test",
- "**/*spec.ts"
- ]
-}
diff --git a/tsconfig.json b/tsconfig.json
index 13cc3c50..69469eba 100644
--- a/tsconfig.json
+++ b/tsconfig.json
@@ -12,12 +12,7 @@
"inlineSourceMap": true,
"inlineSources": true,
"isolatedModules": true,
- "jsx": "preserve",
- "lib": [
- "dom",
- "dom.iterable",
- "esnext"
- ],
+ "lib": ["esnext"],
"module": "commonjs",
"moduleResolution": "node",
"noEmit": true,
@@ -34,14 +29,6 @@
"target": "ESNext",
"useDefineForClassFields": true
},
- "include": [
- "next-env.d.ts",
- "**/*.ts",
- "**/*.tsx"
- ],
- "exclude": [
- ".next",
- "node_modules",
- "dist"
- ]
+ "include": ["**/*.ts"],
+ "exclude": ["node_modules", "dist"]
}
diff --git a/tsconfig.server.json b/tsconfig.server.json
index a59faae8..a50d8283 100644
--- a/tsconfig.server.json
+++ b/tsconfig.server.json
@@ -4,9 +4,5 @@
"noEmit": false,
"esModuleInterop": true
},
- "include": [
- "./src/server/**/*.ts",
- "./src/common/**/*.ts",
- "./@types/**/*.d.ts"
- ]
+ "include": ["./src/**/*.ts", "./@types/**/*.d.ts"]
}
From 8d08456e5e9fbbb2ac4c04c0bb863087fdfa9aa5 Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Wed, 27 Dec 2023 18:05:36 -0500
Subject: [PATCH 10/15] Bump actions/setup-node from 3 to 4 (#709)
Bumps [actions/setup-node](https://github.com/actions/setup-node) from 3 to 4.
- [Release notes](https://github.com/actions/setup-node/releases)
- [Commits](https://github.com/actions/setup-node/compare/v3...v4)
---
updated-dependencies:
- dependency-name: actions/setup-node
dependency-type: direct:production
update-type: version-update:semver-major
...
Signed-off-by: dependabot[bot]
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
---
.github/workflows/nodejs.yml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/.github/workflows/nodejs.yml b/.github/workflows/nodejs.yml
index 098939db..ac550a3d 100644
--- a/.github/workflows/nodejs.yml
+++ b/.github/workflows/nodejs.yml
@@ -12,7 +12,7 @@ jobs:
node-version: [18.x]
steps:
- uses: actions/checkout@v4
- - uses: actions/setup-node@v3
+ - uses: actions/setup-node@v4
name: Install NodeJS
with:
node-version: '18'
From 5fa9f0117d1eee52d8ece7f813b679b59703d47a Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Wed, 27 Dec 2023 18:05:54 -0500
Subject: [PATCH 11/15] Bump @types/supertest from 2.0.16 to 6.0.2 (#711)
Bumps [@types/supertest](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/supertest) from 2.0.16 to 6.0.2.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/supertest)
---
updated-dependencies:
- dependency-name: "@types/supertest"
dependency-type: direct:development
update-type: version-update:semver-major
...
Signed-off-by: dependabot[bot]
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
---
package.json | 2 +-
pnpm-lock.yaml | 26 ++++++++++++++++----------
2 files changed, 17 insertions(+), 11 deletions(-)
diff --git a/package.json b/package.json
index 542f3099..51e5998c 100644
--- a/package.json
+++ b/package.json
@@ -70,7 +70,7 @@
"@types/passport": "^1.0.16",
"@types/passport-jwt": "^3.0.13",
"@types/passport-local": "^1.0.38",
- "@types/supertest": "^2.0.16",
+ "@types/supertest": "^6.0.2",
"@typescript-eslint/eslint-plugin": "^6.14.0",
"@typescript-eslint/parser": "^6.14.0",
"eslint": "^8.55.0",
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index 6f9f3ffe..3c262019 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -120,8 +120,8 @@ devDependencies:
specifier: ^1.0.38
version: 1.0.38
'@types/supertest':
- specifier: ^2.0.16
- version: 2.0.16
+ specifier: ^6.0.2
+ version: 6.0.2
'@typescript-eslint/eslint-plugin':
specifier: ^6.14.0
version: 6.14.0(@typescript-eslint/parser@6.14.0)(eslint@8.56.0)(typescript@5.2.2)
@@ -2270,8 +2270,8 @@ packages:
'@types/node': 18.18.10
dev: true
- /@types/cookiejar@2.1.4:
- resolution: {integrity: sha512-b698BLJ6kPVd6uhHsY7wlebZdrWPXYied883PDSzpJZYOP97EOn/oGdLCH3jJf157srkFReIZY5v0H1s8Dozrg==}
+ /@types/cookiejar@2.1.5:
+ resolution: {integrity: sha512-he+DHOWReW0nghN24E1WUqM0efK4kI9oTqDm6XmK8ZPe2djZ90BSNdGnIyCLzCPw7/pogPlGbzI2wHGGmi4O/Q==}
dev: true
/@types/eslint-scope@3.7.7:
@@ -2355,6 +2355,10 @@ packages:
resolution: {integrity: sha512-OvlIYQK9tNneDlS0VN54LLd5uiPCBOp7gS5Z0f1mjoJYBrtStzgmJBxONW3U6OZqdtNzZPmn9BS/7WI7BFFcFQ==}
dev: true
+ /@types/methods@1.1.4:
+ resolution: {integrity: sha512-ymXWVrDiCxTBE3+RIrrP533E70eA+9qu7zdWoHuOmGujkYtzf4HQF96b8nwHLqhuf4ykX61IGRIB38CC6/sImQ==}
+ dev: true
+
/@types/mime@1.3.5:
resolution: {integrity: sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w==}
dev: true
@@ -2427,17 +2431,19 @@ packages:
/@types/stack-utils@2.0.3:
resolution: {integrity: sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw==}
- /@types/superagent@4.1.22:
- resolution: {integrity: sha512-GMaOrnnUsjChvH8zlzdDPARRXky8bU3E8xsU/fOclgqsINekbwDu1+wzJzJaGzZP91SGpOutf5Te5pm5M/qCWg==}
+ /@types/superagent@8.1.1:
+ resolution: {integrity: sha512-YQyEXA4PgCl7EVOoSAS3o0fyPFU6erv5mMixztQYe1bqbWmmn8c+IrqoxjQeZe4MgwXikgcaZPiI/DsbmOVlzA==}
dependencies:
- '@types/cookiejar': 2.1.4
+ '@types/cookiejar': 2.1.5
+ '@types/methods': 1.1.4
'@types/node': 18.18.10
dev: true
- /@types/supertest@2.0.16:
- resolution: {integrity: sha512-6c2ogktZ06tr2ENoZivgm7YnprnhYE4ZoXGMY+oA7IuAf17M8FWvujXZGmxLv8y0PTyts4x5A+erSwVUFA8XSg==}
+ /@types/supertest@6.0.2:
+ resolution: {integrity: sha512-137ypx2lk/wTQbW6An6safu9hXmajAifU/s7szAHLN/FeIm5w7yR0Wkl9fdJMRSHwOn4HLAI0DaB2TOORuhPDg==}
dependencies:
- '@types/superagent': 4.1.22
+ '@types/methods': 1.1.4
+ '@types/superagent': 8.1.1
dev: true
/@types/webidl-conversions@7.0.3:
From 71f9d8f63607f91e2ae8b8901898a4f5608b61aa Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Wed, 27 Dec 2023 18:06:04 -0500
Subject: [PATCH 12/15] Bump eslint-plugin-import from 2.29.0 to 2.29.1 (#712)
Bumps [eslint-plugin-import](https://github.com/import-js/eslint-plugin-import) from 2.29.0 to 2.29.1.
- [Release notes](https://github.com/import-js/eslint-plugin-import/releases)
- [Changelog](https://github.com/import-js/eslint-plugin-import/blob/main/CHANGELOG.md)
- [Commits](https://github.com/import-js/eslint-plugin-import/compare/v2.29.0...v2.29.1)
---
updated-dependencies:
- dependency-name: eslint-plugin-import
dependency-type: direct:development
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot]
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
---
pnpm-lock.yaml | 12 ++++++------
1 file changed, 6 insertions(+), 6 deletions(-)
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index 3c262019..5ddb1025 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -136,7 +136,7 @@ devDependencies:
version: 9.1.0(eslint@8.56.0)
eslint-plugin-import:
specifier: ^2.29.0
- version: 2.29.0(@typescript-eslint/parser@6.14.0)(eslint@8.56.0)
+ version: 2.29.1(@typescript-eslint/parser@6.14.0)(eslint@8.56.0)
eslint-plugin-jest:
specifier: ^27.6.0
version: 27.6.0(@typescript-eslint/eslint-plugin@6.14.0)(eslint@8.56.0)(jest@29.7.0)(typescript@5.2.2)
@@ -3902,8 +3902,8 @@ packages:
- supports-color
dev: true
- /eslint-plugin-import@2.29.0(@typescript-eslint/parser@6.14.0)(eslint@8.56.0):
- resolution: {integrity: sha512-QPOO5NO6Odv5lpoTkddtutccQjysJuFxoPS7fAHO+9m9udNHvTCPSAMW9zGAYj8lAIdr40I8yPCdUYrncXtrwg==}
+ /eslint-plugin-import@2.29.1(@typescript-eslint/parser@6.14.0)(eslint@8.56.0):
+ resolution: {integrity: sha512-BbPC0cuExzhiMo4Ff1BTVwHpjjv28C5R+btTOGaCRC7UEz801up0JadwkeSk5Ued6TG34uaczuVuH6qyy5YUxw==}
engines: {node: '>=4'}
peerDependencies:
'@typescript-eslint/parser': '*'
@@ -3930,7 +3930,7 @@ packages:
object.groupby: 1.0.1
object.values: 1.1.7
semver: 6.3.1
- tsconfig-paths: 3.14.2
+ tsconfig-paths: 3.15.0
transitivePeerDependencies:
- eslint-import-resolver-typescript
- eslint-import-resolver-webpack
@@ -7144,8 +7144,8 @@ packages:
tsconfig-paths: 4.2.0
dev: false
- /tsconfig-paths@3.14.2:
- resolution: {integrity: sha512-o/9iXgCYc5L/JxCHPe3Hvh8Q/2xm5Z+p18PESBU6Ff33695QnCHBEjcytY2q19ua7Mbl/DavtBOLq+oG0RCL+g==}
+ /tsconfig-paths@3.15.0:
+ resolution: {integrity: sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg==}
dependencies:
'@types/json5': 0.0.29
json5: 1.0.2
From 3dc53e6cb3e36647efae87f74cb5e845650bf4df Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Wed, 27 Dec 2023 18:06:48 -0500
Subject: [PATCH 13/15] Bump rxjs from 7.5.7 to 7.8.1 (#713)
Bumps [rxjs](https://github.com/reactivex/rxjs) from 7.5.7 to 7.8.1.
- [Release notes](https://github.com/reactivex/rxjs/releases)
- [Changelog](https://github.com/ReactiveX/rxjs/blob/7.8.1/CHANGELOG.md)
- [Commits](https://github.com/reactivex/rxjs/compare/7.5.7...7.8.1)
---
updated-dependencies:
- dependency-name: rxjs
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot]
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
---
package.json | 2 +-
pnpm-lock.yaml | 48 ++++++++++++++++++++++++------------------------
2 files changed, 25 insertions(+), 25 deletions(-)
diff --git a/package.json b/package.json
index 51e5998c..8484fbeb 100644
--- a/package.json
+++ b/package.json
@@ -55,7 +55,7 @@
"passport-local": "1.0.0",
"reflect-metadata": "0.1.14",
"rimraf": "5.0.5",
- "rxjs": "7.5.7",
+ "rxjs": "7.8.1",
"swagger-ui-express": "5.0.0",
"ts-jest": "29.1.1",
"ts-loader": "9.5.1",
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index 5ddb1025..669bf22c 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -20,13 +20,13 @@ dependencies:
version: 10.2.1
'@nestjs/common':
specifier: 10.3.0
- version: 10.3.0(reflect-metadata@0.1.14)(rxjs@7.5.7)
+ version: 10.3.0(reflect-metadata@0.1.14)(rxjs@7.8.1)
'@nestjs/config':
specifier: 3.1.1
version: 3.1.1(@nestjs/common@10.3.0)(reflect-metadata@0.1.14)
'@nestjs/core':
specifier: 10.3.0
- version: 10.3.0(@nestjs/common@10.3.0)(@nestjs/platform-express@10.3.0)(reflect-metadata@0.1.14)(rxjs@7.5.7)
+ version: 10.3.0(@nestjs/common@10.3.0)(@nestjs/platform-express@10.3.0)(reflect-metadata@0.1.14)(rxjs@7.8.1)
'@nestjs/jwt':
specifier: 10.2.0
version: 10.2.0(@nestjs/common@10.3.0)
@@ -35,7 +35,7 @@ dependencies:
version: 2.0.4(@nestjs/common@10.3.0)(reflect-metadata@0.1.14)
'@nestjs/mongoose':
specifier: 10.0.2
- version: 10.0.2(@nestjs/common@10.3.0)(@nestjs/core@10.3.0)(mongoose@6.12.3)(reflect-metadata@0.1.14)(rxjs@7.5.7)
+ version: 10.0.2(@nestjs/common@10.3.0)(@nestjs/core@10.3.0)(mongoose@6.12.3)(reflect-metadata@0.1.14)(rxjs@7.8.1)
'@nestjs/passport':
specifier: 10.0.3
version: 10.0.3(@nestjs/common@10.3.0)(passport@0.7.0)
@@ -79,8 +79,8 @@ dependencies:
specifier: 5.0.5
version: 5.0.5
rxjs:
- specifier: 7.5.7
- version: 7.5.7
+ specifier: 7.8.1
+ version: 7.8.1
swagger-ui-express:
specifier: 5.0.0
version: 5.0.0(express@4.18.2)
@@ -1524,7 +1524,7 @@ packages:
- webpack-cli
dev: false
- /@nestjs/common@10.3.0(reflect-metadata@0.1.14)(rxjs@7.5.7):
+ /@nestjs/common@10.3.0(reflect-metadata@0.1.14)(rxjs@7.8.1):
resolution: {integrity: sha512-DGv34UHsZBxCM3H5QGE2XE/+oLJzz5+714JQjBhjD9VccFlQs3LRxo/epso4l7nJIiNlZkPyIUC8WzfU/5RTsQ==}
peerDependencies:
class-transformer: '*'
@@ -1539,7 +1539,7 @@ packages:
dependencies:
iterare: 1.2.1
reflect-metadata: 0.1.14
- rxjs: 7.5.7
+ rxjs: 7.8.1
tslib: 2.6.2
uid: 2.0.2
dev: false
@@ -1550,7 +1550,7 @@ packages:
'@nestjs/common': ^8.0.0 || ^9.0.0 || ^10.0.0
reflect-metadata: ^0.1.13
dependencies:
- '@nestjs/common': 10.3.0(reflect-metadata@0.1.14)(rxjs@7.5.7)
+ '@nestjs/common': 10.3.0(reflect-metadata@0.1.14)(rxjs@7.8.1)
dotenv: 16.3.1
dotenv-expand: 10.0.0
lodash: 4.17.21
@@ -1558,7 +1558,7 @@ packages:
uuid: 9.0.0
dev: false
- /@nestjs/core@10.3.0(@nestjs/common@10.3.0)(@nestjs/platform-express@10.3.0)(reflect-metadata@0.1.14)(rxjs@7.5.7):
+ /@nestjs/core@10.3.0(@nestjs/common@10.3.0)(@nestjs/platform-express@10.3.0)(reflect-metadata@0.1.14)(rxjs@7.8.1):
resolution: {integrity: sha512-N06P5ncknW/Pm8bj964WvLIZn2gNhHliCBoAO1LeBvNImYkecqKcrmLbY49Fa1rmMfEM3MuBHeDys3edeuYAOA==}
requiresBuild: true
peerDependencies:
@@ -1576,14 +1576,14 @@ packages:
'@nestjs/websockets':
optional: true
dependencies:
- '@nestjs/common': 10.3.0(reflect-metadata@0.1.14)(rxjs@7.5.7)
+ '@nestjs/common': 10.3.0(reflect-metadata@0.1.14)(rxjs@7.8.1)
'@nestjs/platform-express': 10.3.0(@nestjs/common@10.3.0)(@nestjs/core@10.3.0)
'@nuxtjs/opencollective': 0.3.2
fast-safe-stringify: 2.1.1
iterare: 1.2.1
path-to-regexp: 3.2.0
reflect-metadata: 0.1.14
- rxjs: 7.5.7
+ rxjs: 7.8.1
tslib: 2.6.2
uid: 2.0.2
transitivePeerDependencies:
@@ -1595,7 +1595,7 @@ packages:
peerDependencies:
'@nestjs/common': ^8.0.0 || ^9.0.0 || ^10.0.0
dependencies:
- '@nestjs/common': 10.3.0(reflect-metadata@0.1.14)(rxjs@7.5.7)
+ '@nestjs/common': 10.3.0(reflect-metadata@0.1.14)(rxjs@7.8.1)
'@types/jsonwebtoken': 9.0.5
jsonwebtoken: 9.0.2
dev: false
@@ -1613,11 +1613,11 @@ packages:
class-validator:
optional: true
dependencies:
- '@nestjs/common': 10.3.0(reflect-metadata@0.1.14)(rxjs@7.5.7)
+ '@nestjs/common': 10.3.0(reflect-metadata@0.1.14)(rxjs@7.8.1)
reflect-metadata: 0.1.14
dev: false
- /@nestjs/mongoose@10.0.2(@nestjs/common@10.3.0)(@nestjs/core@10.3.0)(mongoose@6.12.3)(reflect-metadata@0.1.14)(rxjs@7.5.7):
+ /@nestjs/mongoose@10.0.2(@nestjs/common@10.3.0)(@nestjs/core@10.3.0)(mongoose@6.12.3)(reflect-metadata@0.1.14)(rxjs@7.8.1):
resolution: {integrity: sha512-ITHh075DynjPIaKeJh6WkarS21WXYslu4nrLkNPbWaCP6JfxVAOftaA2X5tPSiiE/gNJWgs+QFWsfCFZUUenow==}
peerDependencies:
'@nestjs/common': ^8.0.0 || ^9.0.0 || ^10.0.0
@@ -1626,11 +1626,11 @@ packages:
reflect-metadata: ^0.1.12
rxjs: ^7.0.0
dependencies:
- '@nestjs/common': 10.3.0(reflect-metadata@0.1.14)(rxjs@7.5.7)
- '@nestjs/core': 10.3.0(@nestjs/common@10.3.0)(@nestjs/platform-express@10.3.0)(reflect-metadata@0.1.14)(rxjs@7.5.7)
+ '@nestjs/common': 10.3.0(reflect-metadata@0.1.14)(rxjs@7.8.1)
+ '@nestjs/core': 10.3.0(@nestjs/common@10.3.0)(@nestjs/platform-express@10.3.0)(reflect-metadata@0.1.14)(rxjs@7.8.1)
mongoose: 6.12.3
reflect-metadata: 0.1.14
- rxjs: 7.5.7
+ rxjs: 7.8.1
dev: false
/@nestjs/passport@10.0.3(@nestjs/common@10.3.0)(passport@0.7.0):
@@ -1639,7 +1639,7 @@ packages:
'@nestjs/common': ^8.0.0 || ^9.0.0 || ^10.0.0
passport: ^0.4.0 || ^0.5.0 || ^0.6.0 || ^0.7.0
dependencies:
- '@nestjs/common': 10.3.0(reflect-metadata@0.1.14)(rxjs@7.5.7)
+ '@nestjs/common': 10.3.0(reflect-metadata@0.1.14)(rxjs@7.8.1)
passport: 0.7.0
dev: false
@@ -1649,8 +1649,8 @@ packages:
'@nestjs/common': ^10.0.0
'@nestjs/core': ^10.0.0
dependencies:
- '@nestjs/common': 10.3.0(reflect-metadata@0.1.14)(rxjs@7.5.7)
- '@nestjs/core': 10.3.0(@nestjs/common@10.3.0)(@nestjs/platform-express@10.3.0)(reflect-metadata@0.1.14)(rxjs@7.5.7)
+ '@nestjs/common': 10.3.0(reflect-metadata@0.1.14)(rxjs@7.8.1)
+ '@nestjs/core': 10.3.0(@nestjs/common@10.3.0)(@nestjs/platform-express@10.3.0)(reflect-metadata@0.1.14)(rxjs@7.8.1)
body-parser: 1.20.2
cors: 2.8.5
express: 4.18.2
@@ -1692,8 +1692,8 @@ packages:
class-validator:
optional: true
dependencies:
- '@nestjs/common': 10.3.0(reflect-metadata@0.1.14)(rxjs@7.5.7)
- '@nestjs/core': 10.3.0(@nestjs/common@10.3.0)(@nestjs/platform-express@10.3.0)(reflect-metadata@0.1.14)(rxjs@7.5.7)
+ '@nestjs/common': 10.3.0(reflect-metadata@0.1.14)(rxjs@7.8.1)
+ '@nestjs/core': 10.3.0(@nestjs/common@10.3.0)(@nestjs/platform-express@10.3.0)(reflect-metadata@0.1.14)(rxjs@7.8.1)
'@nestjs/mapped-types': 2.0.4(@nestjs/common@10.3.0)(reflect-metadata@0.1.14)
js-yaml: 4.1.0
lodash: 4.17.21
@@ -1715,8 +1715,8 @@ packages:
'@nestjs/platform-express':
optional: true
dependencies:
- '@nestjs/common': 10.3.0(reflect-metadata@0.1.14)(rxjs@7.5.7)
- '@nestjs/core': 10.3.0(@nestjs/common@10.3.0)(@nestjs/platform-express@10.3.0)(reflect-metadata@0.1.14)(rxjs@7.5.7)
+ '@nestjs/common': 10.3.0(reflect-metadata@0.1.14)(rxjs@7.8.1)
+ '@nestjs/core': 10.3.0(@nestjs/common@10.3.0)(@nestjs/platform-express@10.3.0)(reflect-metadata@0.1.14)(rxjs@7.8.1)
'@nestjs/platform-express': 10.3.0(@nestjs/common@10.3.0)(@nestjs/core@10.3.0)
tslib: 2.6.2
dev: false
From f8beaaea14b8695a095265b60dffa44f5fa11fed Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Wed, 27 Dec 2023 18:07:01 -0500
Subject: [PATCH 14/15] Bump @typescript-eslint/eslint-plugin from 6.14.0 to
6.16.0 (#715)
Bumps [@typescript-eslint/eslint-plugin](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/eslint-plugin) from 6.14.0 to 6.16.0.
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/eslint-plugin/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v6.16.0/packages/eslint-plugin)
---
updated-dependencies:
- dependency-name: "@typescript-eslint/eslint-plugin"
dependency-type: direct:development
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot]
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
---
pnpm-lock.yaml | 83 +++++++++++++++++++++++++++++++++++++-------------
1 file changed, 62 insertions(+), 21 deletions(-)
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index 669bf22c..a51dd7eb 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -124,7 +124,7 @@ devDependencies:
version: 6.0.2
'@typescript-eslint/eslint-plugin':
specifier: ^6.14.0
- version: 6.14.0(@typescript-eslint/parser@6.14.0)(eslint@8.56.0)(typescript@5.2.2)
+ version: 6.16.0(@typescript-eslint/parser@6.14.0)(eslint@8.56.0)(typescript@5.2.2)
'@typescript-eslint/parser':
specifier: ^6.14.0
version: 6.14.0(eslint@8.56.0)(typescript@5.2.2)
@@ -139,7 +139,7 @@ devDependencies:
version: 2.29.1(@typescript-eslint/parser@6.14.0)(eslint@8.56.0)
eslint-plugin-jest:
specifier: ^27.6.0
- version: 27.6.0(@typescript-eslint/eslint-plugin@6.14.0)(eslint@8.56.0)(jest@29.7.0)(typescript@5.2.2)
+ version: 27.6.0(@typescript-eslint/eslint-plugin@6.16.0)(eslint@8.56.0)(jest@29.7.0)(typescript@5.2.2)
eslint-plugin-prettier:
specifier: ^5.0.1
version: 5.1.2(eslint-config-prettier@9.1.0)(eslint@8.56.0)(prettier@3.1.1)
@@ -2465,8 +2465,8 @@ packages:
dependencies:
'@types/yargs-parser': 21.0.3
- /@typescript-eslint/eslint-plugin@6.14.0(@typescript-eslint/parser@6.14.0)(eslint@8.56.0)(typescript@5.2.2):
- resolution: {integrity: sha512-1ZJBykBCXaSHG94vMMKmiHoL0MhNHKSVlcHVYZNw+BKxufhqQVTOawNpwwI1P5nIFZ/4jLVop0mcY6mJJDFNaw==}
+ /@typescript-eslint/eslint-plugin@6.16.0(@typescript-eslint/parser@6.14.0)(eslint@8.56.0)(typescript@5.2.2):
+ resolution: {integrity: sha512-O5f7Kv5o4dLWQtPX4ywPPa+v9G+1q1x8mz0Kr0pXUtKsevo+gIJHLkGc8RxaZWtP8RrhwhSNIWThnW42K9/0rQ==}
engines: {node: ^16.0.0 || >=18.0.0}
peerDependencies:
'@typescript-eslint/parser': ^6.0.0 || ^6.0.0-alpha
@@ -2478,10 +2478,10 @@ packages:
dependencies:
'@eslint-community/regexpp': 4.10.0
'@typescript-eslint/parser': 6.14.0(eslint@8.56.0)(typescript@5.2.2)
- '@typescript-eslint/scope-manager': 6.14.0
- '@typescript-eslint/type-utils': 6.14.0(eslint@8.56.0)(typescript@5.2.2)
- '@typescript-eslint/utils': 6.14.0(eslint@8.56.0)(typescript@5.2.2)
- '@typescript-eslint/visitor-keys': 6.14.0
+ '@typescript-eslint/scope-manager': 6.16.0
+ '@typescript-eslint/type-utils': 6.16.0(eslint@8.56.0)(typescript@5.2.2)
+ '@typescript-eslint/utils': 6.16.0(eslint@8.56.0)(typescript@5.2.2)
+ '@typescript-eslint/visitor-keys': 6.16.0
debug: 4.3.4
eslint: 8.56.0
graphemer: 1.4.0
@@ -2531,8 +2531,16 @@ packages:
'@typescript-eslint/visitor-keys': 6.14.0
dev: true
- /@typescript-eslint/type-utils@6.14.0(eslint@8.56.0)(typescript@5.2.2):
- resolution: {integrity: sha512-x6OC9Q7HfYKqjnuNu5a7kffIYs3No30isapRBJl1iCHLitD8O0lFbRcVGiOcuyN837fqXzPZ1NS10maQzZMKqw==}
+ /@typescript-eslint/scope-manager@6.16.0:
+ resolution: {integrity: sha512-0N7Y9DSPdaBQ3sqSCwlrm9zJwkpOuc6HYm7LpzLAPqBL7dmzAUimr4M29dMkOP/tEwvOCC/Cxo//yOfJD3HUiw==}
+ engines: {node: ^16.0.0 || >=18.0.0}
+ dependencies:
+ '@typescript-eslint/types': 6.16.0
+ '@typescript-eslint/visitor-keys': 6.16.0
+ dev: true
+
+ /@typescript-eslint/type-utils@6.16.0(eslint@8.56.0)(typescript@5.2.2):
+ resolution: {integrity: sha512-ThmrEOcARmOnoyQfYkHw/DX2SEYBalVECmoldVuH6qagKROp/jMnfXpAU/pAIWub9c4YTxga+XwgAkoA0pxfmg==}
engines: {node: ^16.0.0 || >=18.0.0}
peerDependencies:
eslint: ^7.0.0 || ^8.0.0
@@ -2541,8 +2549,8 @@ packages:
typescript:
optional: true
dependencies:
- '@typescript-eslint/typescript-estree': 6.14.0(typescript@5.2.2)
- '@typescript-eslint/utils': 6.14.0(eslint@8.56.0)(typescript@5.2.2)
+ '@typescript-eslint/typescript-estree': 6.16.0(typescript@5.2.2)
+ '@typescript-eslint/utils': 6.16.0(eslint@8.56.0)(typescript@5.2.2)
debug: 4.3.4
eslint: 8.56.0
ts-api-utils: 1.0.3(typescript@5.2.2)
@@ -2561,6 +2569,11 @@ packages:
engines: {node: ^16.0.0 || >=18.0.0}
dev: true
+ /@typescript-eslint/types@6.16.0:
+ resolution: {integrity: sha512-hvDFpLEvTJoHutVl87+MG/c5C8I6LOgEx05zExTSJDEVU7hhR3jhV8M5zuggbdFCw98+HhZWPHZeKS97kS3JoQ==}
+ engines: {node: ^16.0.0 || >=18.0.0}
+ dev: true
+
/@typescript-eslint/typescript-estree@5.62.0(typescript@5.2.2):
resolution: {integrity: sha512-CmcQ6uY7b9y694lKdRB8FEel7JbU/40iSAPomu++SjLMntB+2Leay2LO6i8VnJk58MtE9/nQSFIH6jpyRWyYzA==}
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
@@ -2603,6 +2616,28 @@ packages:
- supports-color
dev: true
+ /@typescript-eslint/typescript-estree@6.16.0(typescript@5.2.2):
+ resolution: {integrity: sha512-VTWZuixh/vr7nih6CfrdpmFNLEnoVBF1skfjdyGnNwXOH1SLeHItGdZDHhhAIzd3ACazyY2Fg76zuzOVTaknGA==}
+ engines: {node: ^16.0.0 || >=18.0.0}
+ peerDependencies:
+ typescript: '*'
+ peerDependenciesMeta:
+ typescript:
+ optional: true
+ dependencies:
+ '@typescript-eslint/types': 6.16.0
+ '@typescript-eslint/visitor-keys': 6.16.0
+ debug: 4.3.4
+ globby: 11.1.0
+ is-glob: 4.0.3
+ minimatch: 9.0.3
+ semver: 7.5.4
+ ts-api-utils: 1.0.3(typescript@5.2.2)
+ typescript: 5.2.2
+ transitivePeerDependencies:
+ - supports-color
+ dev: true
+
/@typescript-eslint/utils@5.62.0(eslint@8.56.0)(typescript@5.2.2):
resolution: {integrity: sha512-n8oxjeb5aIbPFEtmQxQYOLI0i9n5ySBEY/ZEHHZqKQSFnxio1rv6dthascc9dLuwrL0RC5mPCxB7vnAVGAYWAQ==}
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
@@ -2623,8 +2658,8 @@ packages:
- typescript
dev: true
- /@typescript-eslint/utils@6.14.0(eslint@8.56.0)(typescript@5.2.2):
- resolution: {integrity: sha512-XwRTnbvRr7Ey9a1NT6jqdKX8y/atWG+8fAIu3z73HSP8h06i3r/ClMhmaF/RGWGW1tHJEwij1uEg2GbEmPYvYg==}
+ /@typescript-eslint/utils@6.16.0(eslint@8.56.0)(typescript@5.2.2):
+ resolution: {integrity: sha512-T83QPKrBm6n//q9mv7oiSvy/Xq/7Hyw9SzSEhMHJwznEmQayfBM87+oAlkNAMEO7/MjIwKyOHgBJbxB0s7gx2A==}
engines: {node: ^16.0.0 || >=18.0.0}
peerDependencies:
eslint: ^7.0.0 || ^8.0.0
@@ -2632,9 +2667,9 @@ packages:
'@eslint-community/eslint-utils': 4.4.0(eslint@8.56.0)
'@types/json-schema': 7.0.15
'@types/semver': 7.5.5
- '@typescript-eslint/scope-manager': 6.14.0
- '@typescript-eslint/types': 6.14.0
- '@typescript-eslint/typescript-estree': 6.14.0(typescript@5.2.2)
+ '@typescript-eslint/scope-manager': 6.16.0
+ '@typescript-eslint/types': 6.16.0
+ '@typescript-eslint/typescript-estree': 6.16.0(typescript@5.2.2)
eslint: 8.56.0
semver: 7.5.4
transitivePeerDependencies:
@@ -2658,6 +2693,14 @@ packages:
eslint-visitor-keys: 3.4.3
dev: true
+ /@typescript-eslint/visitor-keys@6.16.0:
+ resolution: {integrity: sha512-QSFQLruk7fhs91a/Ep/LqRdbJCZ1Rq03rqBdKT5Ky17Sz8zRLUksqIe9DW0pKtg/Z35/ztbLQ6qpOCN6rOC11A==}
+ engines: {node: ^16.0.0 || >=18.0.0}
+ dependencies:
+ '@typescript-eslint/types': 6.16.0
+ eslint-visitor-keys: 3.4.3
+ dev: true
+
/@ungap/structured-clone@1.2.0:
resolution: {integrity: sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==}
dev: true
@@ -3158,7 +3201,6 @@ packages:
resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==}
dependencies:
balanced-match: 1.0.2
- dev: false
/braces@3.0.2:
resolution: {integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==}
@@ -3937,7 +3979,7 @@ packages:
- supports-color
dev: true
- /eslint-plugin-jest@27.6.0(@typescript-eslint/eslint-plugin@6.14.0)(eslint@8.56.0)(jest@29.7.0)(typescript@5.2.2):
+ /eslint-plugin-jest@27.6.0(@typescript-eslint/eslint-plugin@6.16.0)(eslint@8.56.0)(jest@29.7.0)(typescript@5.2.2):
resolution: {integrity: sha512-MTlusnnDMChbElsszJvrwD1dN3x6nZl//s4JD23BxB6MgR66TZlL064su24xEIS3VACfAoHV1vgyMgPw8nkdng==}
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
peerDependencies:
@@ -3950,7 +3992,7 @@ packages:
jest:
optional: true
dependencies:
- '@typescript-eslint/eslint-plugin': 6.14.0(@typescript-eslint/parser@6.14.0)(eslint@8.56.0)(typescript@5.2.2)
+ '@typescript-eslint/eslint-plugin': 6.16.0(@typescript-eslint/parser@6.14.0)(eslint@8.56.0)(typescript@5.2.2)
'@typescript-eslint/utils': 5.62.0(eslint@8.56.0)(typescript@5.2.2)
eslint: 8.56.0
jest: 29.7.0(@types/node@18.18.10)(ts-node@10.9.2)
@@ -5805,7 +5847,6 @@ packages:
engines: {node: '>=16 || 14 >=14.17'}
dependencies:
brace-expansion: 2.0.1
- dev: false
/minimist@1.2.8:
resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==}
From 234083f47bb43575948b42bb303baabcc1172b46 Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Wed, 27 Dec 2023 18:12:15 -0500
Subject: [PATCH 15/15] Bump @typescript-eslint/parser from 6.14.0 to 6.16.0
(#714)
Bumps [@typescript-eslint/parser](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser) from 6.14.0 to 6.16.0.
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/parser/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v6.16.0/packages/parser)
---
updated-dependencies:
- dependency-name: "@typescript-eslint/parser"
dependency-type: direct:development
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot]
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
---
pnpm-lock.yaml | 76 +++++++++++---------------------------------------
1 file changed, 17 insertions(+), 59 deletions(-)
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index a51dd7eb..124c42a1 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -124,10 +124,10 @@ devDependencies:
version: 6.0.2
'@typescript-eslint/eslint-plugin':
specifier: ^6.14.0
- version: 6.16.0(@typescript-eslint/parser@6.14.0)(eslint@8.56.0)(typescript@5.2.2)
+ version: 6.16.0(@typescript-eslint/parser@6.16.0)(eslint@8.56.0)(typescript@5.2.2)
'@typescript-eslint/parser':
specifier: ^6.14.0
- version: 6.14.0(eslint@8.56.0)(typescript@5.2.2)
+ version: 6.16.0(eslint@8.56.0)(typescript@5.2.2)
eslint:
specifier: ^8.55.0
version: 8.56.0
@@ -136,7 +136,7 @@ devDependencies:
version: 9.1.0(eslint@8.56.0)
eslint-plugin-import:
specifier: ^2.29.0
- version: 2.29.1(@typescript-eslint/parser@6.14.0)(eslint@8.56.0)
+ version: 2.29.1(@typescript-eslint/parser@6.16.0)(eslint@8.56.0)
eslint-plugin-jest:
specifier: ^27.6.0
version: 27.6.0(@typescript-eslint/eslint-plugin@6.16.0)(eslint@8.56.0)(jest@29.7.0)(typescript@5.2.2)
@@ -2465,7 +2465,7 @@ packages:
dependencies:
'@types/yargs-parser': 21.0.3
- /@typescript-eslint/eslint-plugin@6.16.0(@typescript-eslint/parser@6.14.0)(eslint@8.56.0)(typescript@5.2.2):
+ /@typescript-eslint/eslint-plugin@6.16.0(@typescript-eslint/parser@6.16.0)(eslint@8.56.0)(typescript@5.2.2):
resolution: {integrity: sha512-O5f7Kv5o4dLWQtPX4ywPPa+v9G+1q1x8mz0Kr0pXUtKsevo+gIJHLkGc8RxaZWtP8RrhwhSNIWThnW42K9/0rQ==}
engines: {node: ^16.0.0 || >=18.0.0}
peerDependencies:
@@ -2477,7 +2477,7 @@ packages:
optional: true
dependencies:
'@eslint-community/regexpp': 4.10.0
- '@typescript-eslint/parser': 6.14.0(eslint@8.56.0)(typescript@5.2.2)
+ '@typescript-eslint/parser': 6.16.0(eslint@8.56.0)(typescript@5.2.2)
'@typescript-eslint/scope-manager': 6.16.0
'@typescript-eslint/type-utils': 6.16.0(eslint@8.56.0)(typescript@5.2.2)
'@typescript-eslint/utils': 6.16.0(eslint@8.56.0)(typescript@5.2.2)
@@ -2494,8 +2494,8 @@ packages:
- supports-color
dev: true
- /@typescript-eslint/parser@6.14.0(eslint@8.56.0)(typescript@5.2.2):
- resolution: {integrity: sha512-QjToC14CKacd4Pa7JK4GeB/vHmWFJckec49FR4hmIRf97+KXole0T97xxu9IFiPxVQ1DBWrQ5wreLwAGwWAVQA==}
+ /@typescript-eslint/parser@6.16.0(eslint@8.56.0)(typescript@5.2.2):
+ resolution: {integrity: sha512-H2GM3eUo12HpKZU9njig3DF5zJ58ja6ahj1GoHEHOgQvYxzoFJJEvC1MQ7T2l9Ha+69ZSOn7RTxOdpC/y3ikMw==}
engines: {node: ^16.0.0 || >=18.0.0}
peerDependencies:
eslint: ^7.0.0 || ^8.0.0
@@ -2504,10 +2504,10 @@ packages:
typescript:
optional: true
dependencies:
- '@typescript-eslint/scope-manager': 6.14.0
- '@typescript-eslint/types': 6.14.0
- '@typescript-eslint/typescript-estree': 6.14.0(typescript@5.2.2)
- '@typescript-eslint/visitor-keys': 6.14.0
+ '@typescript-eslint/scope-manager': 6.16.0
+ '@typescript-eslint/types': 6.16.0
+ '@typescript-eslint/typescript-estree': 6.16.0(typescript@5.2.2)
+ '@typescript-eslint/visitor-keys': 6.16.0
debug: 4.3.4
eslint: 8.56.0
typescript: 5.2.2
@@ -2523,14 +2523,6 @@ packages:
'@typescript-eslint/visitor-keys': 5.62.0
dev: true
- /@typescript-eslint/scope-manager@6.14.0:
- resolution: {integrity: sha512-VT7CFWHbZipPncAZtuALr9y3EuzY1b1t1AEkIq2bTXUPKw+pHoXflGNG5L+Gv6nKul1cz1VH8fz16IThIU0tdg==}
- engines: {node: ^16.0.0 || >=18.0.0}
- dependencies:
- '@typescript-eslint/types': 6.14.0
- '@typescript-eslint/visitor-keys': 6.14.0
- dev: true
-
/@typescript-eslint/scope-manager@6.16.0:
resolution: {integrity: sha512-0N7Y9DSPdaBQ3sqSCwlrm9zJwkpOuc6HYm7LpzLAPqBL7dmzAUimr4M29dMkOP/tEwvOCC/Cxo//yOfJD3HUiw==}
engines: {node: ^16.0.0 || >=18.0.0}
@@ -2564,11 +2556,6 @@ packages:
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
dev: true
- /@typescript-eslint/types@6.14.0:
- resolution: {integrity: sha512-uty9H2K4Xs8E47z3SnXEPRNDfsis8JO27amp2GNCnzGETEW3yTqEIVg5+AI7U276oGF/tw6ZA+UesxeQ104ceA==}
- engines: {node: ^16.0.0 || >=18.0.0}
- dev: true
-
/@typescript-eslint/types@6.16.0:
resolution: {integrity: sha512-hvDFpLEvTJoHutVl87+MG/c5C8I6LOgEx05zExTSJDEVU7hhR3jhV8M5zuggbdFCw98+HhZWPHZeKS97kS3JoQ==}
engines: {node: ^16.0.0 || >=18.0.0}
@@ -2595,27 +2582,6 @@ packages:
- supports-color
dev: true
- /@typescript-eslint/typescript-estree@6.14.0(typescript@5.2.2):
- resolution: {integrity: sha512-yPkaLwK0yH2mZKFE/bXkPAkkFgOv15GJAUzgUVonAbv0Hr4PK/N2yaA/4XQbTZQdygiDkpt5DkxPELqHguNvyw==}
- engines: {node: ^16.0.0 || >=18.0.0}
- peerDependencies:
- typescript: '*'
- peerDependenciesMeta:
- typescript:
- optional: true
- dependencies:
- '@typescript-eslint/types': 6.14.0
- '@typescript-eslint/visitor-keys': 6.14.0
- debug: 4.3.4
- globby: 11.1.0
- is-glob: 4.0.3
- semver: 7.5.4
- ts-api-utils: 1.0.3(typescript@5.2.2)
- typescript: 5.2.2
- transitivePeerDependencies:
- - supports-color
- dev: true
-
/@typescript-eslint/typescript-estree@6.16.0(typescript@5.2.2):
resolution: {integrity: sha512-VTWZuixh/vr7nih6CfrdpmFNLEnoVBF1skfjdyGnNwXOH1SLeHItGdZDHhhAIzd3ACazyY2Fg76zuzOVTaknGA==}
engines: {node: ^16.0.0 || >=18.0.0}
@@ -2685,14 +2651,6 @@ packages:
eslint-visitor-keys: 3.4.3
dev: true
- /@typescript-eslint/visitor-keys@6.14.0:
- resolution: {integrity: sha512-fB5cw6GRhJUz03MrROVuj5Zm/Q+XWlVdIsFj+Zb1Hvqouc8t+XP2H5y53QYU/MGtd2dPg6/vJJlhoX3xc2ehfw==}
- engines: {node: ^16.0.0 || >=18.0.0}
- dependencies:
- '@typescript-eslint/types': 6.14.0
- eslint-visitor-keys: 3.4.3
- dev: true
-
/@typescript-eslint/visitor-keys@6.16.0:
resolution: {integrity: sha512-QSFQLruk7fhs91a/Ep/LqRdbJCZ1Rq03rqBdKT5Ky17Sz8zRLUksqIe9DW0pKtg/Z35/ztbLQ6qpOCN6rOC11A==}
engines: {node: ^16.0.0 || >=18.0.0}
@@ -3915,7 +3873,7 @@ packages:
- supports-color
dev: true
- /eslint-module-utils@2.8.0(@typescript-eslint/parser@6.14.0)(eslint-import-resolver-node@0.3.9)(eslint@8.56.0):
+ /eslint-module-utils@2.8.0(@typescript-eslint/parser@6.16.0)(eslint-import-resolver-node@0.3.9)(eslint@8.56.0):
resolution: {integrity: sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw==}
engines: {node: '>=4'}
peerDependencies:
@@ -3936,7 +3894,7 @@ packages:
eslint-import-resolver-webpack:
optional: true
dependencies:
- '@typescript-eslint/parser': 6.14.0(eslint@8.56.0)(typescript@5.2.2)
+ '@typescript-eslint/parser': 6.16.0(eslint@8.56.0)(typescript@5.2.2)
debug: 3.2.7
eslint: 8.56.0
eslint-import-resolver-node: 0.3.9
@@ -3944,7 +3902,7 @@ packages:
- supports-color
dev: true
- /eslint-plugin-import@2.29.1(@typescript-eslint/parser@6.14.0)(eslint@8.56.0):
+ /eslint-plugin-import@2.29.1(@typescript-eslint/parser@6.16.0)(eslint@8.56.0):
resolution: {integrity: sha512-BbPC0cuExzhiMo4Ff1BTVwHpjjv28C5R+btTOGaCRC7UEz801up0JadwkeSk5Ued6TG34uaczuVuH6qyy5YUxw==}
engines: {node: '>=4'}
peerDependencies:
@@ -3954,7 +3912,7 @@ packages:
'@typescript-eslint/parser':
optional: true
dependencies:
- '@typescript-eslint/parser': 6.14.0(eslint@8.56.0)(typescript@5.2.2)
+ '@typescript-eslint/parser': 6.16.0(eslint@8.56.0)(typescript@5.2.2)
array-includes: 3.1.7
array.prototype.findlastindex: 1.2.3
array.prototype.flat: 1.3.2
@@ -3963,7 +3921,7 @@ packages:
doctrine: 2.1.0
eslint: 8.56.0
eslint-import-resolver-node: 0.3.9
- eslint-module-utils: 2.8.0(@typescript-eslint/parser@6.14.0)(eslint-import-resolver-node@0.3.9)(eslint@8.56.0)
+ eslint-module-utils: 2.8.0(@typescript-eslint/parser@6.16.0)(eslint-import-resolver-node@0.3.9)(eslint@8.56.0)
hasown: 2.0.0
is-core-module: 2.13.1
is-glob: 4.0.3
@@ -3992,7 +3950,7 @@ packages:
jest:
optional: true
dependencies:
- '@typescript-eslint/eslint-plugin': 6.16.0(@typescript-eslint/parser@6.14.0)(eslint@8.56.0)(typescript@5.2.2)
+ '@typescript-eslint/eslint-plugin': 6.16.0(@typescript-eslint/parser@6.16.0)(eslint@8.56.0)(typescript@5.2.2)
'@typescript-eslint/utils': 5.62.0(eslint@8.56.0)(typescript@5.2.2)
eslint: 8.56.0
jest: 29.7.0(@types/node@18.18.10)(ts-node@10.9.2)