diff --git a/front/src/apollo.tsx b/front/src/apollo.tsx index 545e63f78..9211e685b 100644 --- a/front/src/apollo.tsx +++ b/front/src/apollo.tsx @@ -10,7 +10,7 @@ import { onError } from '@apollo/client/link/error'; import { RestLink } from 'apollo-link-rest'; import { CommentThreadTarget } from './generated/graphql'; -import { refreshAccessToken } from './modules/auth/services/AuthService'; +import { getTokensFromRefreshToken } from './modules/auth/services/AuthService'; const apiLink = createHttpLink({ uri: `${process.env.REACT_APP_API_URL}`, @@ -34,7 +34,7 @@ const errorLink = onError(({ graphQLErrors, operation, forward }) => { return new Observable((observer) => { (async () => { try { - await refreshAccessToken(); + await getTokensFromRefreshToken(); const oldHeaders = operation.getContext().headers; diff --git a/front/src/modules/auth/services/AuthService.ts b/front/src/modules/auth/services/AuthService.ts index e9a6f644d..3434cfd65 100644 --- a/front/src/modules/auth/services/AuthService.ts +++ b/front/src/modules/auth/services/AuthService.ts @@ -13,7 +13,7 @@ export const getUserIdFromToken: () => string | null = () => { } try { - return jwt<{ userId: string }>(accessToken).userId; + return jwt<{ sub: string }>(accessToken).sub; } catch (error) { return null; } @@ -25,10 +25,41 @@ export const hasRefreshToken = () => { return refreshToken ? true : false; }; -export const refreshAccessToken = async () => { +export const getTokensFromLoginToken = async (loginToken: string) => { + if (!loginToken) { + return; + } + + const response = await fetch( + process.env.REACT_APP_AUTH_URL + '/verify' || '', + { + method: 'POST', + headers: { + 'Content-Type': 'application/json', + }, + body: JSON.stringify({ loginToken }), + }, + ); + + if (response.ok) { + const { tokens } = await response.json(); + if (!tokens) { + return; + } + + localStorage.setItem('accessToken', tokens.accessToken.token); + localStorage.setItem('refreshToken', tokens.refreshToken.token); + } else { + localStorage.removeItem('refreshToken'); + localStorage.removeItem('accessToken'); + } +}; + +export const getTokensFromRefreshToken = async () => { const refreshToken = localStorage.getItem('refreshToken'); if (!refreshToken) { localStorage.removeItem('accessToken'); + return; } const response = await fetch( @@ -43,8 +74,13 @@ export const refreshAccessToken = async () => { ); if (response.ok) { - const { accessToken } = await response.json(); - localStorage.setItem('accessToken', accessToken); + const { tokens } = await response.json(); + + if (!tokens) { + return; + } + localStorage.setItem('accessToken', tokens.accessToken.token); + localStorage.setItem('refreshToken', tokens.refreshToken.token); } else { localStorage.removeItem('refreshToken'); localStorage.removeItem('accessToken'); diff --git a/front/src/modules/auth/services/__tests__/AuthService.test.tsx b/front/src/modules/auth/services/__tests__/AuthService.test.tsx index 97383b64d..f725ad7f4 100644 --- a/front/src/modules/auth/services/__tests__/AuthService.test.tsx +++ b/front/src/modules/auth/services/__tests__/AuthService.test.tsx @@ -1,29 +1,62 @@ import { waitFor } from '@testing-library/react'; import { + getTokensFromLoginToken, + getTokensFromRefreshToken, getUserIdFromToken, hasAccessToken, hasRefreshToken, - refreshAccessToken, } from '../AuthService'; +const validTokensPayload = { + accessToken: { + token: + 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIzNzRmZTNhNS1kZjFlLTQxMTktYWZlMC0yYTYyYTJiYTQ4MWUiLCJ3b3Jrc3BhY2VJZCI6InR3ZW50eS03ZWQ5ZDIxMi0xYzI1LTRkMDItYmYyNS02YWVjY2Y3ZWE0MTkiLCJpYXQiOjE2ODY5OTMxODIsImV4cCI6MTY4Njk5MzQ4Mn0.F_FD6nJ5fssR_47v2XFhtzqjr-wrEQpqaWVq8iIlLJw', + expiresAt: '2023-06-17T09:18:02.942Z', + }, + refreshToken: { + token: + 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIzNzRmZTNhNS1kZjFlLTQxMTktYWZlMC0yYTYyYTJiYTQ4MWUiLCJpYXQiOjE2ODY5OTMxODIsImV4cCI6OTQ2Mjk5MzE4MiwianRpIjoiNzBmMWNhMjctOTYxYi00ZGZlLWEwOTUtMTY2OWEwOGViMTVjIn0.xEdX9dOGzrPHrPsivQYB9ipYGJH-mJ7GSIVPacmIzfY', + expiresAt: '2023-09-15T09:13:02.952Z', + }, +}; + const mockFetch = async ( input: RequestInfo | URL, init?: RequestInit, ): Promise => { - const refreshToken = init?.body - ? JSON.parse(init.body.toString()).refreshToken - : null; - return new Promise((resolve) => { - resolve( - new Response( - JSON.stringify({ - accessToken: - refreshToken === 'xxx-valid-refresh' ? 'xxx-valid-access' : null, - }), - ), - ); - }); + if (input.toString().match(/\/auth\/token$/g)) { + const refreshToken = init?.body + ? JSON.parse(init.body.toString()).refreshToken + : null; + return new Promise((resolve) => { + resolve( + new Response( + JSON.stringify({ + tokens: + refreshToken === 'xxx-valid-refresh' ? validTokensPayload : null, + }), + ), + ); + }); + } + + if (input.toString().match(/\/auth\/verify$/g)) { + const loginToken = init?.body + ? JSON.parse(init.body.toString()).loginToken + : null; + return new Promise((resolve) => { + resolve( + new Response( + JSON.stringify({ + tokens: + loginToken === 'xxx-valid-login' ? validTokensPayload : null, + }), + ), + ); + }); + } + return new Promise(() => new Response()); }; global.fetch = mockFetch; @@ -47,21 +80,28 @@ it('hasRefreshToken is true when token is not', () => { }); it('refreshToken does not refresh the token if refresh token is missing', () => { - refreshAccessToken(); + getTokensFromRefreshToken(); expect(localStorage.getItem('accessToken')).toBeNull(); }); it('refreshToken does not refreh the token if refresh token is invalid', () => { localStorage.setItem('refreshToken', 'xxx-invalid-refresh'); - refreshAccessToken(); + getTokensFromRefreshToken(); + expect(localStorage.getItem('accessToken')).toBeNull(); +}); + +it('refreshToken does not refreh the token if refresh token is empty', () => { + getTokensFromRefreshToken(); expect(localStorage.getItem('accessToken')).toBeNull(); }); it('refreshToken refreshes the token if refresh token is valid', async () => { localStorage.setItem('refreshToken', 'xxx-valid-refresh'); - refreshAccessToken(); + getTokensFromRefreshToken(); await waitFor(() => { - expect(localStorage.getItem('accessToken')).toBe('xxx-valid-access'); + expect(localStorage.getItem('accessToken')).toBe( + 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIzNzRmZTNhNS1kZjFlLTQxMTktYWZlMC0yYTYyYTJiYTQ4MWUiLCJ3b3Jrc3BhY2VJZCI6InR3ZW50eS03ZWQ5ZDIxMi0xYzI1LTRkMDItYmYyNS02YWVjY2Y3ZWE0MTkiLCJpYXQiOjE2ODY5OTMxODIsImV4cCI6MTY4Njk5MzQ4Mn0.F_FD6nJ5fssR_47v2XFhtzqjr-wrEQpqaWVq8iIlLJw', + ); }); }); @@ -79,10 +119,32 @@ it('getUserIdFromToken returns null when the token is not valid', async () => { it('getUserIdFromToken returns the right userId when the token is valid', async () => { localStorage.setItem( 'accessToken', - 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VySWQiOiJiNzU5MGRiOS1hYzdkLTQyNzUtOWM2Yy0zMjM5NzkxOTI3OTUiLCJ3b3Jrc3BhY2VJZCI6IjdlZDlkMjEyLTFjMjUtNGQwMi1iZjI1LTZhZWNjZjdlYTQxOSIsImlhdCI6MTY4NTA5MzE3MiwiZXhwIjoxNjg1MDkzNDcyfQ.0g-z2vKBbGGcs0EmZ3Q7HpZ9Yno_SOrprhcQMm1Zb6Y', + 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIzNzRmZTNhNS1kZjFlLTQxMTktYWZlMC0yYTYyYTJiYTQ4MWUiLCJ3b3Jrc3BhY2VJZCI6InR3ZW50eS03ZWQ5ZDIxMi0xYzI1LTRkMDItYmYyNS02YWVjY2Y3ZWE0MTkiLCJpYXQiOjE2ODY5OTI0ODgsImV4cCI6MTY4Njk5Mjc4OH0.IO7U5G14IrrQriw3JjrKVxmZgd6XKL6yUIwuNe_R55E', ); const userId = getUserIdFromToken(); - expect(userId).toBe('b7590db9-ac7d-4275-9c6c-323979192795'); + expect(userId).toBe('374fe3a5-df1e-4119-afe0-2a62a2ba481e'); +}); + +it('getTokensFromLoginToken does nothing if loginToken is empty', async () => { + await getTokensFromLoginToken(''); + expect(localStorage.getItem('accessToken')).toBeNull(); + expect(localStorage.getItem('refreshToken')).toBeNull(); +}); + +it('getTokensFromLoginToken does nothing if loginToken is not valid', async () => { + await getTokensFromLoginToken('xxx-invalid-login'); + expect(localStorage.getItem('accessToken')).toBeNull(); + expect(localStorage.getItem('refreshToken')).toBeNull(); +}); + +it('getTokensFromLoginToken does nothing if loginToken is not valid', async () => { + await getTokensFromLoginToken('xxx-valid-login'); + expect(localStorage.getItem('accessToken')).toBe( + 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIzNzRmZTNhNS1kZjFlLTQxMTktYWZlMC0yYTYyYTJiYTQ4MWUiLCJ3b3Jrc3BhY2VJZCI6InR3ZW50eS03ZWQ5ZDIxMi0xYzI1LTRkMDItYmYyNS02YWVjY2Y3ZWE0MTkiLCJpYXQiOjE2ODY5OTMxODIsImV4cCI6MTY4Njk5MzQ4Mn0.F_FD6nJ5fssR_47v2XFhtzqjr-wrEQpqaWVq8iIlLJw', + ); + expect(localStorage.getItem('refreshToken')).toBe( + 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIzNzRmZTNhNS1kZjFlLTQxMTktYWZlMC0yYTYyYTJiYTQ4MWUiLCJpYXQiOjE2ODY5OTMxODIsImV4cCI6OTQ2Mjk5MzE4MiwianRpIjoiNzBmMWNhMjctOTYxYi00ZGZlLWEwOTUtMTY2OWEwOGViMTVjIn0.xEdX9dOGzrPHrPsivQYB9ipYGJH-mJ7GSIVPacmIzfY', + ); }); afterEach(() => { diff --git a/front/src/pages/auth/AuthCallback.tsx b/front/src/pages/auth/AuthCallback.tsx index 630e9a112..42c06eb7e 100644 --- a/front/src/pages/auth/AuthCallback.tsx +++ b/front/src/pages/auth/AuthCallback.tsx @@ -1,27 +1,30 @@ import { useEffect, useState } from 'react'; import { useNavigate, useSearchParams } from 'react-router-dom'; -import { refreshAccessToken } from '@/auth/services/AuthService'; +import { getTokensFromLoginToken } from '@/auth/services/AuthService'; export function AuthCallback() { const [searchParams] = useSearchParams(); - const [isLoading, setIsLoading] = useState(true); + const [isLoading, setIsLoading] = useState(false); - const refreshToken = searchParams.get('refreshToken'); - localStorage.setItem('refreshToken', refreshToken || ''); + const loginToken = searchParams.get('loginToken'); const navigate = useNavigate(); useEffect(() => { - async function getAccessToken() { - await refreshAccessToken(); + async function getTokens() { + if (!loginToken) { + return; + } + setIsLoading(true); + await getTokensFromLoginToken(loginToken); setIsLoading(false); navigate('/'); } - if (isLoading) { - getAccessToken(); + if (!isLoading) { + getTokens(); } - }, [isLoading, navigate]); + }, [isLoading, navigate, loginToken]); return <>; } diff --git a/front/src/providers/AuthProvider.tsx b/front/src/providers/AuthProvider.tsx index 6e94f051c..82b6ef440 100644 --- a/front/src/providers/AuthProvider.tsx +++ b/front/src/providers/AuthProvider.tsx @@ -16,6 +16,7 @@ export function AuthProvider({ children }: OwnProps) { const [, setIsAuthenticating] = useRecoilState(isAuthenticatingState); const userIdFromToken = getUserIdFromToken(); + const { data } = useGetCurrentUserQuery(userIdFromToken); useEffect(() => { diff --git a/front/src/testing/mock-data/jwt.ts b/front/src/testing/mock-data/jwt.ts index 3cd4aefd6..f74ab9651 100644 --- a/front/src/testing/mock-data/jwt.ts +++ b/front/src/testing/mock-data/jwt.ts @@ -1,2 +1,2 @@ export const mockedUserJWT = - 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiJhc2QiLCJuYW1lIjoiSm9obiBEb2UiLCJpYXQiOjE1MTYyMzkwMjIsInVzZXJJZCI6IjdkZmJjM2Y3LTZlNWUtNDEyOC05NTdlLThkODY4MDhjZGY2YiJ9.eLVZXaaAsOWUUeVybvuig--0ClsTxBp3lfkD7USxEQk'; + 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIzNzRmZTNhNS1kZjFlLTQxMTktYWZlMC0yYTYyYTJiYTQ4MWUiLCJ3b3Jrc3BhY2VJZCI6InR3ZW50eS03ZWQ5ZDIxMi0xYzI1LTRkMDItYmYyNS02YWVjY2Y3ZWE0MTkiLCJpYXQiOjE2ODY5OTMxODIsImV4cCI6MTY4Njk5MzQ4Mn0.F_FD6nJ5fssR_47v2XFhtzqjr-wrEQpqaWVq8iIlLJw'; diff --git a/front/src/testing/mock-data/users.ts b/front/src/testing/mock-data/users.ts index 30cd2ca6d..71ac8e959 100644 --- a/front/src/testing/mock-data/users.ts +++ b/front/src/testing/mock-data/users.ts @@ -2,7 +2,7 @@ import { GraphqlQueryUser } from '@/users/interfaces/user.interface'; export const mockedUsersData: Array = [ { - id: '7dfbc3f7-6e5e-4128-957e-8d86808cdf6b', + id: '374fe3a5-df1e-4119-afe0-2a62a2ba481e', __typename: 'User', email: 'charles@test.com', displayName: 'Charles Test', diff --git a/server/.env.example b/server/.env.example index 317ff5246..3962b151e 100644 --- a/server/.env.example +++ b/server/.env.example @@ -1,7 +1,11 @@ AUTH_GOOGLE_CLIENT_ID=REPLACE_ME AUTH_GOOGLE_CLIENT_SECRET=REPLACE_ME AUTH_GOOGLE_CALLBACK_URL=http://localhost:3000/auth/google/redirect -JWT_SECRET=secret_jwt -JWT_EXPIRES_IN=300 +ACCESS_TOKEN_SECRET=secret_jwt +ACCESS_TOKEN_EXPIRES_IN=5m +LOGIN_TOKEN_SECRET=secret_login_token +LOGIN_TOKEN_EXPIRES_IN=15m +REFRESH_TOKEN_SECRET=secret_refresh_token +REFRESH_TOKEN_EXPIRES_IN=90d PG_DATABASE_URL=postgres://postgres:postgrespassword@postgres:5432/default?connection_limit=1 -FRONT_AUTH_CALLBACK_URL=http://localhost:3001/auth/callback \ No newline at end of file +FRONT_AUTH_CALLBACK_URL=http://localhost:3001/auth/callback diff --git a/server/package.json b/server/package.json index c6dad0a16..53998e800 100644 --- a/server/package.json +++ b/server/package.json @@ -39,11 +39,15 @@ "@nestjs/terminus": "^9.2.2", "@prisma/client": "^4.13.0", "apollo-server-express": "^3.12.0", + "bcrypt": "^5.1.0", "class-transformer": "^0.5.1", + "class-validator": "^0.14.0", + "date-fns": "^2.30.0", "graphql": "^16.6.0", "graphql-type-json": "^0.3.2", "jest-mock-extended": "^3.0.4", "jsonwebtoken": "^9.0.0", + "ms": "^2.1.3", "passport": "^0.6.0", "passport-google-oauth20": "^2.0.0", "passport-jwt": "^4.0.1", @@ -57,8 +61,11 @@ "@nestjs/cli": "^9.0.0", "@nestjs/schematics": "^9.0.0", "@nestjs/testing": "^9.0.0", + "@types/bcrypt": "^5.0.0", + "@types/date-fns": "^2.6.0", "@types/express": "^4.17.13", "@types/jest": "28.1.8", + "@types/ms": "^0.7.31", "@types/node": "^16.0.0", "@types/passport-google-oauth20": "^2.0.11", "@types/passport-jwt": "^3.0.8", diff --git a/server/src/core/@generated/comment-thread-target/comment-thread-target-create-many-comment-thread.input.ts b/server/src/core/@generated/comment-thread-target/comment-thread-target-create-many-comment-thread.input.ts index 1642a246a..774268790 100644 --- a/server/src/core/@generated/comment-thread-target/comment-thread-target-create-many-comment-thread.input.ts +++ b/server/src/core/@generated/comment-thread-target/comment-thread-target-create-many-comment-thread.input.ts @@ -4,8 +4,8 @@ import { CommentableType } from '../prisma/commentable-type.enum'; @InputType() export class CommentThreadTargetCreateManyCommentThreadInput { - @Field(() => String, { nullable: false }) - id!: string; + @Field(() => String, { nullable: true }) + id?: string; @Field(() => Date, { nullable: true }) createdAt?: Date | string; diff --git a/server/src/core/@generated/comment-thread-target/comment-thread-target-create-many.input.ts b/server/src/core/@generated/comment-thread-target/comment-thread-target-create-many.input.ts index 1dbb18c97..f31c3ce94 100644 --- a/server/src/core/@generated/comment-thread-target/comment-thread-target-create-many.input.ts +++ b/server/src/core/@generated/comment-thread-target/comment-thread-target-create-many.input.ts @@ -4,8 +4,8 @@ import { CommentableType } from '../prisma/commentable-type.enum'; @InputType() export class CommentThreadTargetCreateManyInput { - @Field(() => String, { nullable: false }) - id!: string; + @Field(() => String, { nullable: true }) + id?: string; @Field(() => Date, { nullable: true }) createdAt?: Date | string; diff --git a/server/src/core/@generated/comment-thread-target/comment-thread-target-create-without-comment-thread.input.ts b/server/src/core/@generated/comment-thread-target/comment-thread-target-create-without-comment-thread.input.ts index ad36e97e4..7785a4015 100644 --- a/server/src/core/@generated/comment-thread-target/comment-thread-target-create-without-comment-thread.input.ts +++ b/server/src/core/@generated/comment-thread-target/comment-thread-target-create-without-comment-thread.input.ts @@ -4,8 +4,8 @@ import { CommentableType } from '../prisma/commentable-type.enum'; @InputType() export class CommentThreadTargetCreateWithoutCommentThreadInput { - @Field(() => String, { nullable: false }) - id!: string; + @Field(() => String, { nullable: true }) + id?: string; @Field(() => Date, { nullable: true }) createdAt?: Date | string; diff --git a/server/src/core/@generated/comment-thread-target/comment-thread-target-create.input.ts b/server/src/core/@generated/comment-thread-target/comment-thread-target-create.input.ts index 2a487415d..ea6c1d06f 100644 --- a/server/src/core/@generated/comment-thread-target/comment-thread-target-create.input.ts +++ b/server/src/core/@generated/comment-thread-target/comment-thread-target-create.input.ts @@ -5,8 +5,8 @@ import { CommentThreadCreateNestedOneWithoutCommentThreadTargetsInput } from '.. @InputType() export class CommentThreadTargetCreateInput { - @Field(() => String, { nullable: false }) - id!: string; + @Field(() => String, { nullable: true }) + id?: string; @Field(() => Date, { nullable: true }) createdAt?: Date | string; diff --git a/server/src/core/@generated/comment-thread-target/comment-thread-target-unchecked-create-without-comment-thread.input.ts b/server/src/core/@generated/comment-thread-target/comment-thread-target-unchecked-create-without-comment-thread.input.ts index 5750b95ef..1870e8274 100644 --- a/server/src/core/@generated/comment-thread-target/comment-thread-target-unchecked-create-without-comment-thread.input.ts +++ b/server/src/core/@generated/comment-thread-target/comment-thread-target-unchecked-create-without-comment-thread.input.ts @@ -4,8 +4,8 @@ import { CommentableType } from '../prisma/commentable-type.enum'; @InputType() export class CommentThreadTargetUncheckedCreateWithoutCommentThreadInput { - @Field(() => String, { nullable: false }) - id!: string; + @Field(() => String, { nullable: true }) + id?: string; @Field(() => Date, { nullable: true }) createdAt?: Date | string; diff --git a/server/src/core/@generated/comment-thread-target/comment-thread-target-unchecked-create.input.ts b/server/src/core/@generated/comment-thread-target/comment-thread-target-unchecked-create.input.ts index 087af460d..ec8ce4c16 100644 --- a/server/src/core/@generated/comment-thread-target/comment-thread-target-unchecked-create.input.ts +++ b/server/src/core/@generated/comment-thread-target/comment-thread-target-unchecked-create.input.ts @@ -4,8 +4,8 @@ import { CommentableType } from '../prisma/commentable-type.enum'; @InputType() export class CommentThreadTargetUncheckedCreateInput { - @Field(() => String, { nullable: false }) - id!: string; + @Field(() => String, { nullable: true }) + id?: string; @Field(() => Date, { nullable: true }) createdAt?: Date | string; diff --git a/server/src/core/@generated/comment-thread/comment-thread-create-many-workspace.input.ts b/server/src/core/@generated/comment-thread/comment-thread-create-many-workspace.input.ts index 24d5fb760..199a0015d 100644 --- a/server/src/core/@generated/comment-thread/comment-thread-create-many-workspace.input.ts +++ b/server/src/core/@generated/comment-thread/comment-thread-create-many-workspace.input.ts @@ -3,8 +3,8 @@ import { InputType } from '@nestjs/graphql'; @InputType() export class CommentThreadCreateManyWorkspaceInput { - @Field(() => String, { nullable: false }) - id!: string; + @Field(() => String, { nullable: true }) + id?: string; @Field(() => Date, { nullable: true }) createdAt?: Date | string; diff --git a/server/src/core/@generated/comment-thread/comment-thread-create-many.input.ts b/server/src/core/@generated/comment-thread/comment-thread-create-many.input.ts index 48c76dcd0..937bd6fe2 100644 --- a/server/src/core/@generated/comment-thread/comment-thread-create-many.input.ts +++ b/server/src/core/@generated/comment-thread/comment-thread-create-many.input.ts @@ -4,8 +4,8 @@ import { HideField } from '@nestjs/graphql'; @InputType() export class CommentThreadCreateManyInput { - @Field(() => String, { nullable: false }) - id!: string; + @Field(() => String, { nullable: true }) + id?: string; @Field(() => Date, { nullable: true }) createdAt?: Date | string; diff --git a/server/src/core/@generated/comment-thread/comment-thread-create-without-comment-thread-targets.input.ts b/server/src/core/@generated/comment-thread/comment-thread-create-without-comment-thread-targets.input.ts index 306272214..daa99a837 100644 --- a/server/src/core/@generated/comment-thread/comment-thread-create-without-comment-thread-targets.input.ts +++ b/server/src/core/@generated/comment-thread/comment-thread-create-without-comment-thread-targets.input.ts @@ -6,8 +6,8 @@ import { HideField } from '@nestjs/graphql'; @InputType() export class CommentThreadCreateWithoutCommentThreadTargetsInput { - @Field(() => String, { nullable: false }) - id!: string; + @Field(() => String, { nullable: true }) + id?: string; @Field(() => Date, { nullable: true }) createdAt?: Date | string; diff --git a/server/src/core/@generated/comment-thread/comment-thread-create-without-comments.input.ts b/server/src/core/@generated/comment-thread/comment-thread-create-without-comments.input.ts index d873f0777..1ad74a524 100644 --- a/server/src/core/@generated/comment-thread/comment-thread-create-without-comments.input.ts +++ b/server/src/core/@generated/comment-thread/comment-thread-create-without-comments.input.ts @@ -6,8 +6,8 @@ import { HideField } from '@nestjs/graphql'; @InputType() export class CommentThreadCreateWithoutCommentsInput { - @Field(() => String, { nullable: false }) - id!: string; + @Field(() => String, { nullable: true }) + id?: string; @Field(() => Date, { nullable: true }) createdAt?: Date | string; diff --git a/server/src/core/@generated/comment-thread/comment-thread-create-without-workspace.input.ts b/server/src/core/@generated/comment-thread/comment-thread-create-without-workspace.input.ts index bc450325b..2b25d3e07 100644 --- a/server/src/core/@generated/comment-thread/comment-thread-create-without-workspace.input.ts +++ b/server/src/core/@generated/comment-thread/comment-thread-create-without-workspace.input.ts @@ -5,8 +5,8 @@ import { CommentCreateNestedManyWithoutCommentThreadInput } from '../comment/com @InputType() export class CommentThreadCreateWithoutWorkspaceInput { - @Field(() => String, { nullable: false }) - id!: string; + @Field(() => String, { nullable: true }) + id?: string; @Field(() => Date, { nullable: true }) createdAt?: Date | string; diff --git a/server/src/core/@generated/comment-thread/comment-thread-create.input.ts b/server/src/core/@generated/comment-thread/comment-thread-create.input.ts index 1df8ab363..95a11c1b9 100644 --- a/server/src/core/@generated/comment-thread/comment-thread-create.input.ts +++ b/server/src/core/@generated/comment-thread/comment-thread-create.input.ts @@ -7,8 +7,8 @@ import { HideField } from '@nestjs/graphql'; @InputType() export class CommentThreadCreateInput { - @Field(() => String, { nullable: false }) - id!: string; + @Field(() => String, { nullable: true }) + id?: string; @Field(() => Date, { nullable: true }) createdAt?: Date | string; diff --git a/server/src/core/@generated/comment-thread/comment-thread-unchecked-create-without-comment-thread-targets.input.ts b/server/src/core/@generated/comment-thread/comment-thread-unchecked-create-without-comment-thread-targets.input.ts index 415192c16..13569a4fa 100644 --- a/server/src/core/@generated/comment-thread/comment-thread-unchecked-create-without-comment-thread-targets.input.ts +++ b/server/src/core/@generated/comment-thread/comment-thread-unchecked-create-without-comment-thread-targets.input.ts @@ -5,8 +5,8 @@ import { CommentUncheckedCreateNestedManyWithoutCommentThreadInput } from '../co @InputType() export class CommentThreadUncheckedCreateWithoutCommentThreadTargetsInput { - @Field(() => String, { nullable: false }) - id!: string; + @Field(() => String, { nullable: true }) + id?: string; @Field(() => Date, { nullable: true }) createdAt?: Date | string; diff --git a/server/src/core/@generated/comment-thread/comment-thread-unchecked-create-without-comments.input.ts b/server/src/core/@generated/comment-thread/comment-thread-unchecked-create-without-comments.input.ts index 35585d671..f11b4519a 100644 --- a/server/src/core/@generated/comment-thread/comment-thread-unchecked-create-without-comments.input.ts +++ b/server/src/core/@generated/comment-thread/comment-thread-unchecked-create-without-comments.input.ts @@ -5,8 +5,8 @@ import { CommentThreadTargetUncheckedCreateNestedManyWithoutCommentThreadInput } @InputType() export class CommentThreadUncheckedCreateWithoutCommentsInput { - @Field(() => String, { nullable: false }) - id!: string; + @Field(() => String, { nullable: true }) + id?: string; @Field(() => Date, { nullable: true }) createdAt?: Date | string; diff --git a/server/src/core/@generated/comment-thread/comment-thread-unchecked-create-without-workspace.input.ts b/server/src/core/@generated/comment-thread/comment-thread-unchecked-create-without-workspace.input.ts index 7f7352daf..6b0364f1a 100644 --- a/server/src/core/@generated/comment-thread/comment-thread-unchecked-create-without-workspace.input.ts +++ b/server/src/core/@generated/comment-thread/comment-thread-unchecked-create-without-workspace.input.ts @@ -5,8 +5,8 @@ import { CommentUncheckedCreateNestedManyWithoutCommentThreadInput } from '../co @InputType() export class CommentThreadUncheckedCreateWithoutWorkspaceInput { - @Field(() => String, { nullable: false }) - id!: string; + @Field(() => String, { nullable: true }) + id?: string; @Field(() => Date, { nullable: true }) createdAt?: Date | string; diff --git a/server/src/core/@generated/comment-thread/comment-thread-unchecked-create.input.ts b/server/src/core/@generated/comment-thread/comment-thread-unchecked-create.input.ts index e582d86dd..8a0497227 100644 --- a/server/src/core/@generated/comment-thread/comment-thread-unchecked-create.input.ts +++ b/server/src/core/@generated/comment-thread/comment-thread-unchecked-create.input.ts @@ -6,8 +6,8 @@ import { CommentUncheckedCreateNestedManyWithoutCommentThreadInput } from '../co @InputType() export class CommentThreadUncheckedCreateInput { - @Field(() => String, { nullable: false }) - id!: string; + @Field(() => String, { nullable: true }) + id?: string; @Field(() => Date, { nullable: true }) createdAt?: Date | string; diff --git a/server/src/core/@generated/comment/comment-create-many-author.input.ts b/server/src/core/@generated/comment/comment-create-many-author.input.ts index e4c4254df..615ebaea0 100644 --- a/server/src/core/@generated/comment/comment-create-many-author.input.ts +++ b/server/src/core/@generated/comment/comment-create-many-author.input.ts @@ -4,8 +4,8 @@ import { HideField } from '@nestjs/graphql'; @InputType() export class CommentCreateManyAuthorInput { - @Field(() => String, { nullable: false }) - id!: string; + @Field(() => String, { nullable: true }) + id?: string; @Field(() => Date, { nullable: true }) createdAt?: Date | string; diff --git a/server/src/core/@generated/comment/comment-create-many-comment-thread.input.ts b/server/src/core/@generated/comment/comment-create-many-comment-thread.input.ts index 5532438e5..defa332ef 100644 --- a/server/src/core/@generated/comment/comment-create-many-comment-thread.input.ts +++ b/server/src/core/@generated/comment/comment-create-many-comment-thread.input.ts @@ -4,8 +4,8 @@ import { HideField } from '@nestjs/graphql'; @InputType() export class CommentCreateManyCommentThreadInput { - @Field(() => String, { nullable: false }) - id!: string; + @Field(() => String, { nullable: true }) + id?: string; @Field(() => Date, { nullable: true }) createdAt?: Date | string; diff --git a/server/src/core/@generated/comment/comment-create-many-workspace.input.ts b/server/src/core/@generated/comment/comment-create-many-workspace.input.ts index 3ab832816..f37c4a8a6 100644 --- a/server/src/core/@generated/comment/comment-create-many-workspace.input.ts +++ b/server/src/core/@generated/comment/comment-create-many-workspace.input.ts @@ -3,8 +3,8 @@ import { InputType } from '@nestjs/graphql'; @InputType() export class CommentCreateManyWorkspaceInput { - @Field(() => String, { nullable: false }) - id!: string; + @Field(() => String, { nullable: true }) + id?: string; @Field(() => Date, { nullable: true }) createdAt?: Date | string; diff --git a/server/src/core/@generated/comment/comment-create-many.input.ts b/server/src/core/@generated/comment/comment-create-many.input.ts index b302ef0d3..ec45d851f 100644 --- a/server/src/core/@generated/comment/comment-create-many.input.ts +++ b/server/src/core/@generated/comment/comment-create-many.input.ts @@ -4,8 +4,8 @@ import { HideField } from '@nestjs/graphql'; @InputType() export class CommentCreateManyInput { - @Field(() => String, { nullable: false }) - id!: string; + @Field(() => String, { nullable: true }) + id?: string; @Field(() => Date, { nullable: true }) createdAt?: Date | string; diff --git a/server/src/core/@generated/comment/comment-create-without-author.input.ts b/server/src/core/@generated/comment/comment-create-without-author.input.ts index d0bfca8cf..3d4f1494b 100644 --- a/server/src/core/@generated/comment/comment-create-without-author.input.ts +++ b/server/src/core/@generated/comment/comment-create-without-author.input.ts @@ -6,8 +6,8 @@ import { HideField } from '@nestjs/graphql'; @InputType() export class CommentCreateWithoutAuthorInput { - @Field(() => String, { nullable: false }) - id!: string; + @Field(() => String, { nullable: true }) + id?: string; @Field(() => Date, { nullable: true }) createdAt?: Date | string; diff --git a/server/src/core/@generated/comment/comment-create-without-comment-thread.input.ts b/server/src/core/@generated/comment/comment-create-without-comment-thread.input.ts index a2d4fc746..045b11a1f 100644 --- a/server/src/core/@generated/comment/comment-create-without-comment-thread.input.ts +++ b/server/src/core/@generated/comment/comment-create-without-comment-thread.input.ts @@ -6,8 +6,8 @@ import { HideField } from '@nestjs/graphql'; @InputType() export class CommentCreateWithoutCommentThreadInput { - @Field(() => String, { nullable: false }) - id!: string; + @Field(() => String, { nullable: true }) + id?: string; @Field(() => Date, { nullable: true }) createdAt?: Date | string; diff --git a/server/src/core/@generated/comment/comment-create-without-workspace.input.ts b/server/src/core/@generated/comment/comment-create-without-workspace.input.ts index a0205d851..ecdf1f18d 100644 --- a/server/src/core/@generated/comment/comment-create-without-workspace.input.ts +++ b/server/src/core/@generated/comment/comment-create-without-workspace.input.ts @@ -5,8 +5,8 @@ import { CommentThreadCreateNestedOneWithoutCommentsInput } from '../comment-thr @InputType() export class CommentCreateWithoutWorkspaceInput { - @Field(() => String, { nullable: false }) - id!: string; + @Field(() => String, { nullable: true }) + id?: string; @Field(() => Date, { nullable: true }) createdAt?: Date | string; diff --git a/server/src/core/@generated/comment/comment-create.input.ts b/server/src/core/@generated/comment/comment-create.input.ts index 70bbbe34f..621d33706 100644 --- a/server/src/core/@generated/comment/comment-create.input.ts +++ b/server/src/core/@generated/comment/comment-create.input.ts @@ -7,8 +7,8 @@ import { HideField } from '@nestjs/graphql'; @InputType() export class CommentCreateInput { - @Field(() => String, { nullable: false }) - id!: string; + @Field(() => String, { nullable: true }) + id?: string; @Field(() => Date, { nullable: true }) createdAt?: Date | string; diff --git a/server/src/core/@generated/comment/comment-unchecked-create-without-author.input.ts b/server/src/core/@generated/comment/comment-unchecked-create-without-author.input.ts index ed5cb0c6e..27e44dea4 100644 --- a/server/src/core/@generated/comment/comment-unchecked-create-without-author.input.ts +++ b/server/src/core/@generated/comment/comment-unchecked-create-without-author.input.ts @@ -4,8 +4,8 @@ import { HideField } from '@nestjs/graphql'; @InputType() export class CommentUncheckedCreateWithoutAuthorInput { - @Field(() => String, { nullable: false }) - id!: string; + @Field(() => String, { nullable: true }) + id?: string; @Field(() => Date, { nullable: true }) createdAt?: Date | string; diff --git a/server/src/core/@generated/comment/comment-unchecked-create-without-comment-thread.input.ts b/server/src/core/@generated/comment/comment-unchecked-create-without-comment-thread.input.ts index f0167e2a6..d4797d95d 100644 --- a/server/src/core/@generated/comment/comment-unchecked-create-without-comment-thread.input.ts +++ b/server/src/core/@generated/comment/comment-unchecked-create-without-comment-thread.input.ts @@ -4,8 +4,8 @@ import { HideField } from '@nestjs/graphql'; @InputType() export class CommentUncheckedCreateWithoutCommentThreadInput { - @Field(() => String, { nullable: false }) - id!: string; + @Field(() => String, { nullable: true }) + id?: string; @Field(() => Date, { nullable: true }) createdAt?: Date | string; diff --git a/server/src/core/@generated/comment/comment-unchecked-create-without-workspace.input.ts b/server/src/core/@generated/comment/comment-unchecked-create-without-workspace.input.ts index 795e7f2f2..e8803e0b5 100644 --- a/server/src/core/@generated/comment/comment-unchecked-create-without-workspace.input.ts +++ b/server/src/core/@generated/comment/comment-unchecked-create-without-workspace.input.ts @@ -3,8 +3,8 @@ import { InputType } from '@nestjs/graphql'; @InputType() export class CommentUncheckedCreateWithoutWorkspaceInput { - @Field(() => String, { nullable: false }) - id!: string; + @Field(() => String, { nullable: true }) + id?: string; @Field(() => Date, { nullable: true }) createdAt?: Date | string; diff --git a/server/src/core/@generated/comment/comment-unchecked-create.input.ts b/server/src/core/@generated/comment/comment-unchecked-create.input.ts index 943c49ef8..5b0402e85 100644 --- a/server/src/core/@generated/comment/comment-unchecked-create.input.ts +++ b/server/src/core/@generated/comment/comment-unchecked-create.input.ts @@ -4,8 +4,8 @@ import { HideField } from '@nestjs/graphql'; @InputType() export class CommentUncheckedCreateInput { - @Field(() => String, { nullable: false }) - id!: string; + @Field(() => String, { nullable: true }) + id?: string; @Field(() => Date, { nullable: true }) createdAt?: Date | string; diff --git a/server/src/core/@generated/company/company-create-many-account-owner.input.ts b/server/src/core/@generated/company/company-create-many-account-owner.input.ts index 7ec6629a4..5bb919e9e 100644 --- a/server/src/core/@generated/company/company-create-many-account-owner.input.ts +++ b/server/src/core/@generated/company/company-create-many-account-owner.input.ts @@ -5,8 +5,8 @@ import { HideField } from '@nestjs/graphql'; @InputType() export class CompanyCreateManyAccountOwnerInput { - @Field(() => String, { nullable: false }) - id!: string; + @Field(() => String, { nullable: true }) + id?: string; @Field(() => Date, { nullable: true }) createdAt?: Date | string; diff --git a/server/src/core/@generated/company/company-create-many-workspace.input.ts b/server/src/core/@generated/company/company-create-many-workspace.input.ts index dcb0bc17d..0b5cf16ab 100644 --- a/server/src/core/@generated/company/company-create-many-workspace.input.ts +++ b/server/src/core/@generated/company/company-create-many-workspace.input.ts @@ -4,8 +4,8 @@ import { Int } from '@nestjs/graphql'; @InputType() export class CompanyCreateManyWorkspaceInput { - @Field(() => String, { nullable: false }) - id!: string; + @Field(() => String, { nullable: true }) + id?: string; @Field(() => Date, { nullable: true }) createdAt?: Date | string; diff --git a/server/src/core/@generated/company/company-create-many.input.ts b/server/src/core/@generated/company/company-create-many.input.ts index 833d1ab09..b4d920a63 100644 --- a/server/src/core/@generated/company/company-create-many.input.ts +++ b/server/src/core/@generated/company/company-create-many.input.ts @@ -5,8 +5,8 @@ import { HideField } from '@nestjs/graphql'; @InputType() export class CompanyCreateManyInput { - @Field(() => String, { nullable: false }) - id!: string; + @Field(() => String, { nullable: true }) + id?: string; @Field(() => Date, { nullable: true }) createdAt?: Date | string; diff --git a/server/src/core/@generated/company/company-create-without-account-owner.input.ts b/server/src/core/@generated/company/company-create-without-account-owner.input.ts index c813a266d..b6319c12a 100644 --- a/server/src/core/@generated/company/company-create-without-account-owner.input.ts +++ b/server/src/core/@generated/company/company-create-without-account-owner.input.ts @@ -7,8 +7,8 @@ import { HideField } from '@nestjs/graphql'; @InputType() export class CompanyCreateWithoutAccountOwnerInput { - @Field(() => String, { nullable: false }) - id!: string; + @Field(() => String, { nullable: true }) + id?: string; @Field(() => Date, { nullable: true }) createdAt?: Date | string; diff --git a/server/src/core/@generated/company/company-create-without-people.input.ts b/server/src/core/@generated/company/company-create-without-people.input.ts index bfc2237f1..474aeea38 100644 --- a/server/src/core/@generated/company/company-create-without-people.input.ts +++ b/server/src/core/@generated/company/company-create-without-people.input.ts @@ -7,8 +7,8 @@ import { HideField } from '@nestjs/graphql'; @InputType() export class CompanyCreateWithoutPeopleInput { - @Field(() => String, { nullable: false }) - id!: string; + @Field(() => String, { nullable: true }) + id?: string; @Field(() => Date, { nullable: true }) createdAt?: Date | string; diff --git a/server/src/core/@generated/company/company-create-without-workspace.input.ts b/server/src/core/@generated/company/company-create-without-workspace.input.ts index fa4194491..510c8d75c 100644 --- a/server/src/core/@generated/company/company-create-without-workspace.input.ts +++ b/server/src/core/@generated/company/company-create-without-workspace.input.ts @@ -6,8 +6,8 @@ import { PersonCreateNestedManyWithoutCompanyInput } from '../person/person-crea @InputType() export class CompanyCreateWithoutWorkspaceInput { - @Field(() => String, { nullable: false }) - id!: string; + @Field(() => String, { nullable: true }) + id?: string; @Field(() => Date, { nullable: true }) createdAt?: Date | string; diff --git a/server/src/core/@generated/company/company-create.input.ts b/server/src/core/@generated/company/company-create.input.ts index 3e96d700f..9356dd6be 100644 --- a/server/src/core/@generated/company/company-create.input.ts +++ b/server/src/core/@generated/company/company-create.input.ts @@ -8,8 +8,8 @@ import { HideField } from '@nestjs/graphql'; @InputType() export class CompanyCreateInput { - @Field(() => String, { nullable: false }) - id!: string; + @Field(() => String, { nullable: true }) + id?: string; @Field(() => Date, { nullable: true }) createdAt?: Date | string; diff --git a/server/src/core/@generated/company/company-unchecked-create-without-account-owner.input.ts b/server/src/core/@generated/company/company-unchecked-create-without-account-owner.input.ts index 2321ff894..e08600f18 100644 --- a/server/src/core/@generated/company/company-unchecked-create-without-account-owner.input.ts +++ b/server/src/core/@generated/company/company-unchecked-create-without-account-owner.input.ts @@ -6,8 +6,8 @@ import { PersonUncheckedCreateNestedManyWithoutCompanyInput } from '../person/pe @InputType() export class CompanyUncheckedCreateWithoutAccountOwnerInput { - @Field(() => String, { nullable: false }) - id!: string; + @Field(() => String, { nullable: true }) + id?: string; @Field(() => Date, { nullable: true }) createdAt?: Date | string; diff --git a/server/src/core/@generated/company/company-unchecked-create-without-people.input.ts b/server/src/core/@generated/company/company-unchecked-create-without-people.input.ts index 27133a32a..b356210d3 100644 --- a/server/src/core/@generated/company/company-unchecked-create-without-people.input.ts +++ b/server/src/core/@generated/company/company-unchecked-create-without-people.input.ts @@ -5,8 +5,8 @@ import { HideField } from '@nestjs/graphql'; @InputType() export class CompanyUncheckedCreateWithoutPeopleInput { - @Field(() => String, { nullable: false }) - id!: string; + @Field(() => String, { nullable: true }) + id?: string; @Field(() => Date, { nullable: true }) createdAt?: Date | string; diff --git a/server/src/core/@generated/company/company-unchecked-create-without-workspace.input.ts b/server/src/core/@generated/company/company-unchecked-create-without-workspace.input.ts index 6f349deb1..b504f7c82 100644 --- a/server/src/core/@generated/company/company-unchecked-create-without-workspace.input.ts +++ b/server/src/core/@generated/company/company-unchecked-create-without-workspace.input.ts @@ -5,8 +5,8 @@ import { PersonUncheckedCreateNestedManyWithoutCompanyInput } from '../person/pe @InputType() export class CompanyUncheckedCreateWithoutWorkspaceInput { - @Field(() => String, { nullable: false }) - id!: string; + @Field(() => String, { nullable: true }) + id?: string; @Field(() => Date, { nullable: true }) createdAt?: Date | string; diff --git a/server/src/core/@generated/company/company-unchecked-create.input.ts b/server/src/core/@generated/company/company-unchecked-create.input.ts index 32f22b0b5..89487f596 100644 --- a/server/src/core/@generated/company/company-unchecked-create.input.ts +++ b/server/src/core/@generated/company/company-unchecked-create.input.ts @@ -6,8 +6,8 @@ import { PersonUncheckedCreateNestedManyWithoutCompanyInput } from '../person/pe @InputType() export class CompanyUncheckedCreateInput { - @Field(() => String, { nullable: false }) - id!: string; + @Field(() => String, { nullable: true }) + id?: string; @Field(() => Date, { nullable: true }) createdAt?: Date | string; diff --git a/server/src/core/@generated/person/person-create-many-company.input.ts b/server/src/core/@generated/person/person-create-many-company.input.ts index bd99abd12..ec4d9505c 100644 --- a/server/src/core/@generated/person/person-create-many-company.input.ts +++ b/server/src/core/@generated/person/person-create-many-company.input.ts @@ -4,8 +4,8 @@ import { HideField } from '@nestjs/graphql'; @InputType() export class PersonCreateManyCompanyInput { - @Field(() => String, { nullable: false }) - id!: string; + @Field(() => String, { nullable: true }) + id?: string; @Field(() => Date, { nullable: true }) createdAt?: Date | string; diff --git a/server/src/core/@generated/person/person-create-many-workspace.input.ts b/server/src/core/@generated/person/person-create-many-workspace.input.ts index ef4636d8f..dcbd13c80 100644 --- a/server/src/core/@generated/person/person-create-many-workspace.input.ts +++ b/server/src/core/@generated/person/person-create-many-workspace.input.ts @@ -3,8 +3,8 @@ import { InputType } from '@nestjs/graphql'; @InputType() export class PersonCreateManyWorkspaceInput { - @Field(() => String, { nullable: false }) - id!: string; + @Field(() => String, { nullable: true }) + id?: string; @Field(() => Date, { nullable: true }) createdAt?: Date | string; diff --git a/server/src/core/@generated/person/person-create-many.input.ts b/server/src/core/@generated/person/person-create-many.input.ts index 6aabcf43b..161437a2a 100644 --- a/server/src/core/@generated/person/person-create-many.input.ts +++ b/server/src/core/@generated/person/person-create-many.input.ts @@ -4,8 +4,8 @@ import { HideField } from '@nestjs/graphql'; @InputType() export class PersonCreateManyInput { - @Field(() => String, { nullable: false }) - id!: string; + @Field(() => String, { nullable: true }) + id?: string; @Field(() => Date, { nullable: true }) createdAt?: Date | string; diff --git a/server/src/core/@generated/person/person-create-without-company.input.ts b/server/src/core/@generated/person/person-create-without-company.input.ts index 183fc4bff..a608000d9 100644 --- a/server/src/core/@generated/person/person-create-without-company.input.ts +++ b/server/src/core/@generated/person/person-create-without-company.input.ts @@ -5,8 +5,8 @@ import { HideField } from '@nestjs/graphql'; @InputType() export class PersonCreateWithoutCompanyInput { - @Field(() => String, { nullable: false }) - id!: string; + @Field(() => String, { nullable: true }) + id?: string; @Field(() => Date, { nullable: true }) createdAt?: Date | string; diff --git a/server/src/core/@generated/person/person-create-without-workspace.input.ts b/server/src/core/@generated/person/person-create-without-workspace.input.ts index 7d2a40ed2..ff0eac36c 100644 --- a/server/src/core/@generated/person/person-create-without-workspace.input.ts +++ b/server/src/core/@generated/person/person-create-without-workspace.input.ts @@ -4,8 +4,8 @@ import { CompanyCreateNestedOneWithoutPeopleInput } from '../company/company-cre @InputType() export class PersonCreateWithoutWorkspaceInput { - @Field(() => String, { nullable: false }) - id!: string; + @Field(() => String, { nullable: true }) + id?: string; @Field(() => Date, { nullable: true }) createdAt?: Date | string; diff --git a/server/src/core/@generated/person/person-create.input.ts b/server/src/core/@generated/person/person-create.input.ts index 310354352..e44a40091 100644 --- a/server/src/core/@generated/person/person-create.input.ts +++ b/server/src/core/@generated/person/person-create.input.ts @@ -6,8 +6,8 @@ import { HideField } from '@nestjs/graphql'; @InputType() export class PersonCreateInput { - @Field(() => String, { nullable: false }) - id!: string; + @Field(() => String, { nullable: true }) + id?: string; @Field(() => Date, { nullable: true }) createdAt?: Date | string; diff --git a/server/src/core/@generated/person/person-unchecked-create-without-company.input.ts b/server/src/core/@generated/person/person-unchecked-create-without-company.input.ts index a74ff639c..b2b16fb62 100644 --- a/server/src/core/@generated/person/person-unchecked-create-without-company.input.ts +++ b/server/src/core/@generated/person/person-unchecked-create-without-company.input.ts @@ -4,8 +4,8 @@ import { HideField } from '@nestjs/graphql'; @InputType() export class PersonUncheckedCreateWithoutCompanyInput { - @Field(() => String, { nullable: false }) - id!: string; + @Field(() => String, { nullable: true }) + id?: string; @Field(() => Date, { nullable: true }) createdAt?: Date | string; diff --git a/server/src/core/@generated/person/person-unchecked-create-without-workspace.input.ts b/server/src/core/@generated/person/person-unchecked-create-without-workspace.input.ts index 141a1aa63..789c94aaf 100644 --- a/server/src/core/@generated/person/person-unchecked-create-without-workspace.input.ts +++ b/server/src/core/@generated/person/person-unchecked-create-without-workspace.input.ts @@ -3,8 +3,8 @@ import { InputType } from '@nestjs/graphql'; @InputType() export class PersonUncheckedCreateWithoutWorkspaceInput { - @Field(() => String, { nullable: false }) - id!: string; + @Field(() => String, { nullable: true }) + id?: string; @Field(() => Date, { nullable: true }) createdAt?: Date | string; diff --git a/server/src/core/@generated/person/person-unchecked-create.input.ts b/server/src/core/@generated/person/person-unchecked-create.input.ts index 366ed8bd8..ee70fbdbe 100644 --- a/server/src/core/@generated/person/person-unchecked-create.input.ts +++ b/server/src/core/@generated/person/person-unchecked-create.input.ts @@ -4,8 +4,8 @@ import { HideField } from '@nestjs/graphql'; @InputType() export class PersonUncheckedCreateInput { - @Field(() => String, { nullable: false }) - id!: string; + @Field(() => String, { nullable: true }) + id?: string; @Field(() => Date, { nullable: true }) createdAt?: Date | string; diff --git a/server/src/core/@generated/pipeline-progress/pipeline-progress-create-many-pipeline-stage.input.ts b/server/src/core/@generated/pipeline-progress/pipeline-progress-create-many-pipeline-stage.input.ts index 88868cf73..e64c04059 100644 --- a/server/src/core/@generated/pipeline-progress/pipeline-progress-create-many-pipeline-stage.input.ts +++ b/server/src/core/@generated/pipeline-progress/pipeline-progress-create-many-pipeline-stage.input.ts @@ -5,8 +5,8 @@ import { HideField } from '@nestjs/graphql'; @InputType() export class PipelineProgressCreateManyPipelineStageInput { - @Field(() => String, { nullable: false }) - id!: string; + @Field(() => String, { nullable: true }) + id?: string; @Field(() => Date, { nullable: true }) createdAt?: Date | string; diff --git a/server/src/core/@generated/pipeline-progress/pipeline-progress-create-many-pipeline.input.ts b/server/src/core/@generated/pipeline-progress/pipeline-progress-create-many-pipeline.input.ts index 8af3f68cd..ef2381e4d 100644 --- a/server/src/core/@generated/pipeline-progress/pipeline-progress-create-many-pipeline.input.ts +++ b/server/src/core/@generated/pipeline-progress/pipeline-progress-create-many-pipeline.input.ts @@ -5,8 +5,8 @@ import { HideField } from '@nestjs/graphql'; @InputType() export class PipelineProgressCreateManyPipelineInput { - @Field(() => String, { nullable: false }) - id!: string; + @Field(() => String, { nullable: true }) + id?: string; @Field(() => Date, { nullable: true }) createdAt?: Date | string; diff --git a/server/src/core/@generated/pipeline-progress/pipeline-progress-create-many-workspace.input.ts b/server/src/core/@generated/pipeline-progress/pipeline-progress-create-many-workspace.input.ts index 9b2ad2931..839da5528 100644 --- a/server/src/core/@generated/pipeline-progress/pipeline-progress-create-many-workspace.input.ts +++ b/server/src/core/@generated/pipeline-progress/pipeline-progress-create-many-workspace.input.ts @@ -4,8 +4,8 @@ import { PipelineProgressableType } from '../prisma/pipeline-progressable-type.e @InputType() export class PipelineProgressCreateManyWorkspaceInput { - @Field(() => String, { nullable: false }) - id!: string; + @Field(() => String, { nullable: true }) + id?: string; @Field(() => Date, { nullable: true }) createdAt?: Date | string; diff --git a/server/src/core/@generated/pipeline-progress/pipeline-progress-create-many.input.ts b/server/src/core/@generated/pipeline-progress/pipeline-progress-create-many.input.ts index 18d35871c..cde332c76 100644 --- a/server/src/core/@generated/pipeline-progress/pipeline-progress-create-many.input.ts +++ b/server/src/core/@generated/pipeline-progress/pipeline-progress-create-many.input.ts @@ -5,8 +5,8 @@ import { HideField } from '@nestjs/graphql'; @InputType() export class PipelineProgressCreateManyInput { - @Field(() => String, { nullable: false }) - id!: string; + @Field(() => String, { nullable: true }) + id?: string; @Field(() => Date, { nullable: true }) createdAt?: Date | string; diff --git a/server/src/core/@generated/pipeline-progress/pipeline-progress-create-without-pipeline-stage.input.ts b/server/src/core/@generated/pipeline-progress/pipeline-progress-create-without-pipeline-stage.input.ts index ff3260bfe..c5ba6f6e9 100644 --- a/server/src/core/@generated/pipeline-progress/pipeline-progress-create-without-pipeline-stage.input.ts +++ b/server/src/core/@generated/pipeline-progress/pipeline-progress-create-without-pipeline-stage.input.ts @@ -7,8 +7,8 @@ import { HideField } from '@nestjs/graphql'; @InputType() export class PipelineProgressCreateWithoutPipelineStageInput { - @Field(() => String, { nullable: false }) - id!: string; + @Field(() => String, { nullable: true }) + id?: string; @Field(() => Date, { nullable: true }) createdAt?: Date | string; diff --git a/server/src/core/@generated/pipeline-progress/pipeline-progress-create-without-pipeline.input.ts b/server/src/core/@generated/pipeline-progress/pipeline-progress-create-without-pipeline.input.ts index 5fc21302b..a8998f563 100644 --- a/server/src/core/@generated/pipeline-progress/pipeline-progress-create-without-pipeline.input.ts +++ b/server/src/core/@generated/pipeline-progress/pipeline-progress-create-without-pipeline.input.ts @@ -7,8 +7,8 @@ import { HideField } from '@nestjs/graphql'; @InputType() export class PipelineProgressCreateWithoutPipelineInput { - @Field(() => String, { nullable: false }) - id!: string; + @Field(() => String, { nullable: true }) + id?: string; @Field(() => Date, { nullable: true }) createdAt?: Date | string; diff --git a/server/src/core/@generated/pipeline-progress/pipeline-progress-create-without-workspace.input.ts b/server/src/core/@generated/pipeline-progress/pipeline-progress-create-without-workspace.input.ts index 1fd974729..99c99063c 100644 --- a/server/src/core/@generated/pipeline-progress/pipeline-progress-create-without-workspace.input.ts +++ b/server/src/core/@generated/pipeline-progress/pipeline-progress-create-without-workspace.input.ts @@ -6,8 +6,8 @@ import { PipelineStageCreateNestedOneWithoutPipelineProgressesInput } from '../p @InputType() export class PipelineProgressCreateWithoutWorkspaceInput { - @Field(() => String, { nullable: false }) - id!: string; + @Field(() => String, { nullable: true }) + id?: string; @Field(() => Date, { nullable: true }) createdAt?: Date | string; diff --git a/server/src/core/@generated/pipeline-progress/pipeline-progress-create.input.ts b/server/src/core/@generated/pipeline-progress/pipeline-progress-create.input.ts index c269384a3..51c0aba7b 100644 --- a/server/src/core/@generated/pipeline-progress/pipeline-progress-create.input.ts +++ b/server/src/core/@generated/pipeline-progress/pipeline-progress-create.input.ts @@ -8,8 +8,8 @@ import { HideField } from '@nestjs/graphql'; @InputType() export class PipelineProgressCreateInput { - @Field(() => String, { nullable: false }) - id!: string; + @Field(() => String, { nullable: true }) + id?: string; @Field(() => Date, { nullable: true }) createdAt?: Date | string; diff --git a/server/src/core/@generated/pipeline-progress/pipeline-progress-unchecked-create-without-pipeline-stage.input.ts b/server/src/core/@generated/pipeline-progress/pipeline-progress-unchecked-create-without-pipeline-stage.input.ts index 7896a457d..35d2fa15f 100644 --- a/server/src/core/@generated/pipeline-progress/pipeline-progress-unchecked-create-without-pipeline-stage.input.ts +++ b/server/src/core/@generated/pipeline-progress/pipeline-progress-unchecked-create-without-pipeline-stage.input.ts @@ -5,8 +5,8 @@ import { HideField } from '@nestjs/graphql'; @InputType() export class PipelineProgressUncheckedCreateWithoutPipelineStageInput { - @Field(() => String, { nullable: false }) - id!: string; + @Field(() => String, { nullable: true }) + id?: string; @Field(() => Date, { nullable: true }) createdAt?: Date | string; diff --git a/server/src/core/@generated/pipeline-progress/pipeline-progress-unchecked-create-without-pipeline.input.ts b/server/src/core/@generated/pipeline-progress/pipeline-progress-unchecked-create-without-pipeline.input.ts index 49d6f43f9..e1391ee45 100644 --- a/server/src/core/@generated/pipeline-progress/pipeline-progress-unchecked-create-without-pipeline.input.ts +++ b/server/src/core/@generated/pipeline-progress/pipeline-progress-unchecked-create-without-pipeline.input.ts @@ -5,8 +5,8 @@ import { HideField } from '@nestjs/graphql'; @InputType() export class PipelineProgressUncheckedCreateWithoutPipelineInput { - @Field(() => String, { nullable: false }) - id!: string; + @Field(() => String, { nullable: true }) + id?: string; @Field(() => Date, { nullable: true }) createdAt?: Date | string; diff --git a/server/src/core/@generated/pipeline-progress/pipeline-progress-unchecked-create-without-workspace.input.ts b/server/src/core/@generated/pipeline-progress/pipeline-progress-unchecked-create-without-workspace.input.ts index 778faab93..88984ee1d 100644 --- a/server/src/core/@generated/pipeline-progress/pipeline-progress-unchecked-create-without-workspace.input.ts +++ b/server/src/core/@generated/pipeline-progress/pipeline-progress-unchecked-create-without-workspace.input.ts @@ -4,8 +4,8 @@ import { PipelineProgressableType } from '../prisma/pipeline-progressable-type.e @InputType() export class PipelineProgressUncheckedCreateWithoutWorkspaceInput { - @Field(() => String, { nullable: false }) - id!: string; + @Field(() => String, { nullable: true }) + id?: string; @Field(() => Date, { nullable: true }) createdAt?: Date | string; diff --git a/server/src/core/@generated/pipeline-progress/pipeline-progress-unchecked-create.input.ts b/server/src/core/@generated/pipeline-progress/pipeline-progress-unchecked-create.input.ts index 8f56785cd..2819c2a50 100644 --- a/server/src/core/@generated/pipeline-progress/pipeline-progress-unchecked-create.input.ts +++ b/server/src/core/@generated/pipeline-progress/pipeline-progress-unchecked-create.input.ts @@ -5,8 +5,8 @@ import { HideField } from '@nestjs/graphql'; @InputType() export class PipelineProgressUncheckedCreateInput { - @Field(() => String, { nullable: false }) - id!: string; + @Field(() => String, { nullable: true }) + id?: string; @Field(() => Date, { nullable: true }) createdAt?: Date | string; diff --git a/server/src/core/@generated/pipeline-stage/pipeline-stage-create-many-pipeline.input.ts b/server/src/core/@generated/pipeline-stage/pipeline-stage-create-many-pipeline.input.ts index 302227951..3efdab849 100644 --- a/server/src/core/@generated/pipeline-stage/pipeline-stage-create-many-pipeline.input.ts +++ b/server/src/core/@generated/pipeline-stage/pipeline-stage-create-many-pipeline.input.ts @@ -4,8 +4,8 @@ import { HideField } from '@nestjs/graphql'; @InputType() export class PipelineStageCreateManyPipelineInput { - @Field(() => String, { nullable: false }) - id!: string; + @Field(() => String, { nullable: true }) + id?: string; @Field(() => Date, { nullable: true }) createdAt?: Date | string; diff --git a/server/src/core/@generated/pipeline-stage/pipeline-stage-create-many-workspace.input.ts b/server/src/core/@generated/pipeline-stage/pipeline-stage-create-many-workspace.input.ts index 844fbb92a..fb0c7d177 100644 --- a/server/src/core/@generated/pipeline-stage/pipeline-stage-create-many-workspace.input.ts +++ b/server/src/core/@generated/pipeline-stage/pipeline-stage-create-many-workspace.input.ts @@ -3,8 +3,8 @@ import { InputType } from '@nestjs/graphql'; @InputType() export class PipelineStageCreateManyWorkspaceInput { - @Field(() => String, { nullable: false }) - id!: string; + @Field(() => String, { nullable: true }) + id?: string; @Field(() => Date, { nullable: true }) createdAt?: Date | string; diff --git a/server/src/core/@generated/pipeline-stage/pipeline-stage-create-many.input.ts b/server/src/core/@generated/pipeline-stage/pipeline-stage-create-many.input.ts index 5b5d71351..41c8cf4de 100644 --- a/server/src/core/@generated/pipeline-stage/pipeline-stage-create-many.input.ts +++ b/server/src/core/@generated/pipeline-stage/pipeline-stage-create-many.input.ts @@ -4,8 +4,8 @@ import { HideField } from '@nestjs/graphql'; @InputType() export class PipelineStageCreateManyInput { - @Field(() => String, { nullable: false }) - id!: string; + @Field(() => String, { nullable: true }) + id?: string; @Field(() => Date, { nullable: true }) createdAt?: Date | string; diff --git a/server/src/core/@generated/pipeline-stage/pipeline-stage-create-without-pipeline-progresses.input.ts b/server/src/core/@generated/pipeline-stage/pipeline-stage-create-without-pipeline-progresses.input.ts index 718a9bb65..6e6da3cf9 100644 --- a/server/src/core/@generated/pipeline-stage/pipeline-stage-create-without-pipeline-progresses.input.ts +++ b/server/src/core/@generated/pipeline-stage/pipeline-stage-create-without-pipeline-progresses.input.ts @@ -6,8 +6,8 @@ import { HideField } from '@nestjs/graphql'; @InputType() export class PipelineStageCreateWithoutPipelineProgressesInput { - @Field(() => String, { nullable: false }) - id!: string; + @Field(() => String, { nullable: true }) + id?: string; @Field(() => Date, { nullable: true }) createdAt?: Date | string; diff --git a/server/src/core/@generated/pipeline-stage/pipeline-stage-create-without-pipeline.input.ts b/server/src/core/@generated/pipeline-stage/pipeline-stage-create-without-pipeline.input.ts index d166d4e2a..95c27ad16 100644 --- a/server/src/core/@generated/pipeline-stage/pipeline-stage-create-without-pipeline.input.ts +++ b/server/src/core/@generated/pipeline-stage/pipeline-stage-create-without-pipeline.input.ts @@ -6,8 +6,8 @@ import { HideField } from '@nestjs/graphql'; @InputType() export class PipelineStageCreateWithoutPipelineInput { - @Field(() => String, { nullable: false }) - id!: string; + @Field(() => String, { nullable: true }) + id?: string; @Field(() => Date, { nullable: true }) createdAt?: Date | string; diff --git a/server/src/core/@generated/pipeline-stage/pipeline-stage-create-without-workspace.input.ts b/server/src/core/@generated/pipeline-stage/pipeline-stage-create-without-workspace.input.ts index 5df044453..91d1b6759 100644 --- a/server/src/core/@generated/pipeline-stage/pipeline-stage-create-without-workspace.input.ts +++ b/server/src/core/@generated/pipeline-stage/pipeline-stage-create-without-workspace.input.ts @@ -5,8 +5,8 @@ import { PipelineProgressCreateNestedManyWithoutPipelineStageInput } from '../pi @InputType() export class PipelineStageCreateWithoutWorkspaceInput { - @Field(() => String, { nullable: false }) - id!: string; + @Field(() => String, { nullable: true }) + id?: string; @Field(() => Date, { nullable: true }) createdAt?: Date | string; diff --git a/server/src/core/@generated/pipeline-stage/pipeline-stage-create.input.ts b/server/src/core/@generated/pipeline-stage/pipeline-stage-create.input.ts index 885be12ff..8d58c373e 100644 --- a/server/src/core/@generated/pipeline-stage/pipeline-stage-create.input.ts +++ b/server/src/core/@generated/pipeline-stage/pipeline-stage-create.input.ts @@ -7,8 +7,8 @@ import { HideField } from '@nestjs/graphql'; @InputType() export class PipelineStageCreateInput { - @Field(() => String, { nullable: false }) - id!: string; + @Field(() => String, { nullable: true }) + id?: string; @Field(() => Date, { nullable: true }) createdAt?: Date | string; diff --git a/server/src/core/@generated/pipeline-stage/pipeline-stage-unchecked-create-without-pipeline-progresses.input.ts b/server/src/core/@generated/pipeline-stage/pipeline-stage-unchecked-create-without-pipeline-progresses.input.ts index 438098dc2..3c0bbde83 100644 --- a/server/src/core/@generated/pipeline-stage/pipeline-stage-unchecked-create-without-pipeline-progresses.input.ts +++ b/server/src/core/@generated/pipeline-stage/pipeline-stage-unchecked-create-without-pipeline-progresses.input.ts @@ -4,8 +4,8 @@ import { HideField } from '@nestjs/graphql'; @InputType() export class PipelineStageUncheckedCreateWithoutPipelineProgressesInput { - @Field(() => String, { nullable: false }) - id!: string; + @Field(() => String, { nullable: true }) + id?: string; @Field(() => Date, { nullable: true }) createdAt?: Date | string; diff --git a/server/src/core/@generated/pipeline-stage/pipeline-stage-unchecked-create-without-pipeline.input.ts b/server/src/core/@generated/pipeline-stage/pipeline-stage-unchecked-create-without-pipeline.input.ts index 84db1b57c..0510db4c8 100644 --- a/server/src/core/@generated/pipeline-stage/pipeline-stage-unchecked-create-without-pipeline.input.ts +++ b/server/src/core/@generated/pipeline-stage/pipeline-stage-unchecked-create-without-pipeline.input.ts @@ -5,8 +5,8 @@ import { PipelineProgressUncheckedCreateNestedManyWithoutPipelineStageInput } fr @InputType() export class PipelineStageUncheckedCreateWithoutPipelineInput { - @Field(() => String, { nullable: false }) - id!: string; + @Field(() => String, { nullable: true }) + id?: string; @Field(() => Date, { nullable: true }) createdAt?: Date | string; diff --git a/server/src/core/@generated/pipeline-stage/pipeline-stage-unchecked-create-without-workspace.input.ts b/server/src/core/@generated/pipeline-stage/pipeline-stage-unchecked-create-without-workspace.input.ts index 0301bed06..9160590ee 100644 --- a/server/src/core/@generated/pipeline-stage/pipeline-stage-unchecked-create-without-workspace.input.ts +++ b/server/src/core/@generated/pipeline-stage/pipeline-stage-unchecked-create-without-workspace.input.ts @@ -4,8 +4,8 @@ import { PipelineProgressUncheckedCreateNestedManyWithoutPipelineStageInput } fr @InputType() export class PipelineStageUncheckedCreateWithoutWorkspaceInput { - @Field(() => String, { nullable: false }) - id!: string; + @Field(() => String, { nullable: true }) + id?: string; @Field(() => Date, { nullable: true }) createdAt?: Date | string; diff --git a/server/src/core/@generated/pipeline-stage/pipeline-stage-unchecked-create.input.ts b/server/src/core/@generated/pipeline-stage/pipeline-stage-unchecked-create.input.ts index 7105d61a0..7d2927bfe 100644 --- a/server/src/core/@generated/pipeline-stage/pipeline-stage-unchecked-create.input.ts +++ b/server/src/core/@generated/pipeline-stage/pipeline-stage-unchecked-create.input.ts @@ -5,8 +5,8 @@ import { PipelineProgressUncheckedCreateNestedManyWithoutPipelineStageInput } fr @InputType() export class PipelineStageUncheckedCreateInput { - @Field(() => String, { nullable: false }) - id!: string; + @Field(() => String, { nullable: true }) + id?: string; @Field(() => Date, { nullable: true }) createdAt?: Date | string; diff --git a/server/src/core/@generated/pipeline/pipeline-create-many-workspace.input.ts b/server/src/core/@generated/pipeline/pipeline-create-many-workspace.input.ts index 42d98aeb6..e8a2e6c55 100644 --- a/server/src/core/@generated/pipeline/pipeline-create-many-workspace.input.ts +++ b/server/src/core/@generated/pipeline/pipeline-create-many-workspace.input.ts @@ -3,8 +3,8 @@ import { InputType } from '@nestjs/graphql'; @InputType() export class PipelineCreateManyWorkspaceInput { - @Field(() => String, { nullable: false }) - id!: string; + @Field(() => String, { nullable: true }) + id?: string; @Field(() => Date, { nullable: true }) createdAt?: Date | string; diff --git a/server/src/core/@generated/pipeline/pipeline-create-many.input.ts b/server/src/core/@generated/pipeline/pipeline-create-many.input.ts index 09c7bdacd..86d4a9fde 100644 --- a/server/src/core/@generated/pipeline/pipeline-create-many.input.ts +++ b/server/src/core/@generated/pipeline/pipeline-create-many.input.ts @@ -4,8 +4,8 @@ import { HideField } from '@nestjs/graphql'; @InputType() export class PipelineCreateManyInput { - @Field(() => String, { nullable: false }) - id!: string; + @Field(() => String, { nullable: true }) + id?: string; @Field(() => Date, { nullable: true }) createdAt?: Date | string; diff --git a/server/src/core/@generated/pipeline/pipeline-create-without-pipeline-progresses.input.ts b/server/src/core/@generated/pipeline/pipeline-create-without-pipeline-progresses.input.ts index a82d22038..afdd036b8 100644 --- a/server/src/core/@generated/pipeline/pipeline-create-without-pipeline-progresses.input.ts +++ b/server/src/core/@generated/pipeline/pipeline-create-without-pipeline-progresses.input.ts @@ -6,8 +6,8 @@ import { HideField } from '@nestjs/graphql'; @InputType() export class PipelineCreateWithoutPipelineProgressesInput { - @Field(() => String, { nullable: false }) - id!: string; + @Field(() => String, { nullable: true }) + id?: string; @Field(() => Date, { nullable: true }) createdAt?: Date | string; diff --git a/server/src/core/@generated/pipeline/pipeline-create-without-pipeline-stages.input.ts b/server/src/core/@generated/pipeline/pipeline-create-without-pipeline-stages.input.ts index b1c73e48f..aa06c3de2 100644 --- a/server/src/core/@generated/pipeline/pipeline-create-without-pipeline-stages.input.ts +++ b/server/src/core/@generated/pipeline/pipeline-create-without-pipeline-stages.input.ts @@ -6,8 +6,8 @@ import { HideField } from '@nestjs/graphql'; @InputType() export class PipelineCreateWithoutPipelineStagesInput { - @Field(() => String, { nullable: false }) - id!: string; + @Field(() => String, { nullable: true }) + id?: string; @Field(() => Date, { nullable: true }) createdAt?: Date | string; diff --git a/server/src/core/@generated/pipeline/pipeline-create-without-workspace.input.ts b/server/src/core/@generated/pipeline/pipeline-create-without-workspace.input.ts index b19b82986..2d38f21f6 100644 --- a/server/src/core/@generated/pipeline/pipeline-create-without-workspace.input.ts +++ b/server/src/core/@generated/pipeline/pipeline-create-without-workspace.input.ts @@ -5,8 +5,8 @@ import { PipelineProgressCreateNestedManyWithoutPipelineInput } from '../pipelin @InputType() export class PipelineCreateWithoutWorkspaceInput { - @Field(() => String, { nullable: false }) - id!: string; + @Field(() => String, { nullable: true }) + id?: string; @Field(() => Date, { nullable: true }) createdAt?: Date | string; diff --git a/server/src/core/@generated/pipeline/pipeline-create.input.ts b/server/src/core/@generated/pipeline/pipeline-create.input.ts index 2a31b2896..c1cae497d 100644 --- a/server/src/core/@generated/pipeline/pipeline-create.input.ts +++ b/server/src/core/@generated/pipeline/pipeline-create.input.ts @@ -7,8 +7,8 @@ import { HideField } from '@nestjs/graphql'; @InputType() export class PipelineCreateInput { - @Field(() => String, { nullable: false }) - id!: string; + @Field(() => String, { nullable: true }) + id?: string; @Field(() => Date, { nullable: true }) createdAt?: Date | string; diff --git a/server/src/core/@generated/pipeline/pipeline-unchecked-create-without-pipeline-progresses.input.ts b/server/src/core/@generated/pipeline/pipeline-unchecked-create-without-pipeline-progresses.input.ts index d8b53ea87..de88f081c 100644 --- a/server/src/core/@generated/pipeline/pipeline-unchecked-create-without-pipeline-progresses.input.ts +++ b/server/src/core/@generated/pipeline/pipeline-unchecked-create-without-pipeline-progresses.input.ts @@ -5,8 +5,8 @@ import { PipelineStageUncheckedCreateNestedManyWithoutPipelineInput } from '../p @InputType() export class PipelineUncheckedCreateWithoutPipelineProgressesInput { - @Field(() => String, { nullable: false }) - id!: string; + @Field(() => String, { nullable: true }) + id?: string; @Field(() => Date, { nullable: true }) createdAt?: Date | string; diff --git a/server/src/core/@generated/pipeline/pipeline-unchecked-create-without-pipeline-stages.input.ts b/server/src/core/@generated/pipeline/pipeline-unchecked-create-without-pipeline-stages.input.ts index cab97f56e..3ebcea236 100644 --- a/server/src/core/@generated/pipeline/pipeline-unchecked-create-without-pipeline-stages.input.ts +++ b/server/src/core/@generated/pipeline/pipeline-unchecked-create-without-pipeline-stages.input.ts @@ -5,8 +5,8 @@ import { PipelineProgressUncheckedCreateNestedManyWithoutPipelineInput } from '. @InputType() export class PipelineUncheckedCreateWithoutPipelineStagesInput { - @Field(() => String, { nullable: false }) - id!: string; + @Field(() => String, { nullable: true }) + id?: string; @Field(() => Date, { nullable: true }) createdAt?: Date | string; diff --git a/server/src/core/@generated/pipeline/pipeline-unchecked-create-without-workspace.input.ts b/server/src/core/@generated/pipeline/pipeline-unchecked-create-without-workspace.input.ts index a38a369da..38aa90de0 100644 --- a/server/src/core/@generated/pipeline/pipeline-unchecked-create-without-workspace.input.ts +++ b/server/src/core/@generated/pipeline/pipeline-unchecked-create-without-workspace.input.ts @@ -5,8 +5,8 @@ import { PipelineProgressUncheckedCreateNestedManyWithoutPipelineInput } from '. @InputType() export class PipelineUncheckedCreateWithoutWorkspaceInput { - @Field(() => String, { nullable: false }) - id!: string; + @Field(() => String, { nullable: true }) + id?: string; @Field(() => Date, { nullable: true }) createdAt?: Date | string; diff --git a/server/src/core/@generated/pipeline/pipeline-unchecked-create.input.ts b/server/src/core/@generated/pipeline/pipeline-unchecked-create.input.ts index c7154beb1..6f966e72d 100644 --- a/server/src/core/@generated/pipeline/pipeline-unchecked-create.input.ts +++ b/server/src/core/@generated/pipeline/pipeline-unchecked-create.input.ts @@ -6,8 +6,8 @@ import { PipelineProgressUncheckedCreateNestedManyWithoutPipelineInput } from '. @InputType() export class PipelineUncheckedCreateInput { - @Field(() => String, { nullable: false }) - id!: string; + @Field(() => String, { nullable: true }) + id?: string; @Field(() => Date, { nullable: true }) createdAt?: Date | string; diff --git a/server/src/core/@generated/refresh-token/refresh-token-count-aggregate.input.ts b/server/src/core/@generated/refresh-token/refresh-token-count-aggregate.input.ts index 6ae11517a..312c77c75 100644 --- a/server/src/core/@generated/refresh-token/refresh-token-count-aggregate.input.ts +++ b/server/src/core/@generated/refresh-token/refresh-token-count-aggregate.input.ts @@ -1,5 +1,6 @@ import { Field } from '@nestjs/graphql'; import { InputType } from '@nestjs/graphql'; +import { HideField } from '@nestjs/graphql'; @InputType() export class RefreshTokenCountAggregateInput { @@ -12,13 +13,16 @@ export class RefreshTokenCountAggregateInput { @Field(() => Boolean, { nullable: true }) updatedAt?: true; + @Field(() => Boolean, { nullable: true }) + isRevoked?: true; + + @Field(() => Boolean, { nullable: true }) + expiresAt?: true; + @Field(() => Boolean, { nullable: true }) deletedAt?: true; - @Field(() => Boolean, { nullable: true }) - refreshToken?: true; - - @Field(() => Boolean, { nullable: true }) + @HideField() userId?: true; @Field(() => Boolean, { nullable: true }) diff --git a/server/src/core/@generated/refresh-token/refresh-token-count-aggregate.output.ts b/server/src/core/@generated/refresh-token/refresh-token-count-aggregate.output.ts index 18acc7ac6..6aaf8408f 100644 --- a/server/src/core/@generated/refresh-token/refresh-token-count-aggregate.output.ts +++ b/server/src/core/@generated/refresh-token/refresh-token-count-aggregate.output.ts @@ -1,6 +1,7 @@ import { Field } from '@nestjs/graphql'; import { ObjectType } from '@nestjs/graphql'; import { Int } from '@nestjs/graphql'; +import { HideField } from '@nestjs/graphql'; @ObjectType() export class RefreshTokenCountAggregate { @@ -13,13 +14,16 @@ export class RefreshTokenCountAggregate { @Field(() => Int, { nullable: false }) updatedAt!: number; + @Field(() => Int, { nullable: false }) + isRevoked!: number; + + @Field(() => Int, { nullable: false }) + expiresAt!: number; + @Field(() => Int, { nullable: false }) deletedAt!: number; - @Field(() => Int, { nullable: false }) - refreshToken!: number; - - @Field(() => Int, { nullable: false }) + @HideField() userId!: number; @Field(() => Int, { nullable: false }) diff --git a/server/src/core/@generated/refresh-token/refresh-token-count-order-by-aggregate.input.ts b/server/src/core/@generated/refresh-token/refresh-token-count-order-by-aggregate.input.ts index 8d347b972..2bd9f8c2d 100644 --- a/server/src/core/@generated/refresh-token/refresh-token-count-order-by-aggregate.input.ts +++ b/server/src/core/@generated/refresh-token/refresh-token-count-order-by-aggregate.input.ts @@ -1,6 +1,7 @@ import { Field } from '@nestjs/graphql'; import { InputType } from '@nestjs/graphql'; import { SortOrder } from '../prisma/sort-order.enum'; +import { HideField } from '@nestjs/graphql'; @InputType() export class RefreshTokenCountOrderByAggregateInput { @@ -13,12 +14,15 @@ export class RefreshTokenCountOrderByAggregateInput { @Field(() => SortOrder, { nullable: true }) updatedAt?: keyof typeof SortOrder; + @Field(() => SortOrder, { nullable: true }) + isRevoked?: keyof typeof SortOrder; + + @Field(() => SortOrder, { nullable: true }) + expiresAt?: keyof typeof SortOrder; + @Field(() => SortOrder, { nullable: true }) deletedAt?: keyof typeof SortOrder; - @Field(() => SortOrder, { nullable: true }) - refreshToken?: keyof typeof SortOrder; - - @Field(() => SortOrder, { nullable: true }) + @HideField() userId?: keyof typeof SortOrder; } diff --git a/server/src/core/@generated/refresh-token/refresh-token-create-many-user.input.ts b/server/src/core/@generated/refresh-token/refresh-token-create-many-user.input.ts index e12970a2b..7435978bc 100644 --- a/server/src/core/@generated/refresh-token/refresh-token-create-many-user.input.ts +++ b/server/src/core/@generated/refresh-token/refresh-token-create-many-user.input.ts @@ -3,8 +3,8 @@ import { InputType } from '@nestjs/graphql'; @InputType() export class RefreshTokenCreateManyUserInput { - @Field(() => String, { nullable: false }) - id!: string; + @Field(() => String, { nullable: true }) + id?: string; @Field(() => Date, { nullable: true }) createdAt?: Date | string; @@ -12,9 +12,12 @@ export class RefreshTokenCreateManyUserInput { @Field(() => Date, { nullable: true }) updatedAt?: Date | string; + @Field(() => Boolean, { nullable: true }) + isRevoked?: boolean; + + @Field(() => Date, { nullable: false }) + expiresAt!: Date | string; + @Field(() => Date, { nullable: true }) deletedAt?: Date | string; - - @Field(() => String, { nullable: false }) - refreshToken!: string; } diff --git a/server/src/core/@generated/refresh-token/refresh-token-create-many.input.ts b/server/src/core/@generated/refresh-token/refresh-token-create-many.input.ts index d25c0a9c5..193c54db0 100644 --- a/server/src/core/@generated/refresh-token/refresh-token-create-many.input.ts +++ b/server/src/core/@generated/refresh-token/refresh-token-create-many.input.ts @@ -1,10 +1,11 @@ import { Field } from '@nestjs/graphql'; import { InputType } from '@nestjs/graphql'; +import { HideField } from '@nestjs/graphql'; @InputType() export class RefreshTokenCreateManyInput { - @Field(() => String, { nullable: false }) - id!: string; + @Field(() => String, { nullable: true }) + id?: string; @Field(() => Date, { nullable: true }) createdAt?: Date | string; @@ -12,12 +13,15 @@ export class RefreshTokenCreateManyInput { @Field(() => Date, { nullable: true }) updatedAt?: Date | string; + @Field(() => Boolean, { nullable: true }) + isRevoked?: boolean; + + @Field(() => Date, { nullable: false }) + expiresAt!: Date | string; + @Field(() => Date, { nullable: true }) deletedAt?: Date | string; - @Field(() => String, { nullable: false }) - refreshToken!: string; - - @Field(() => String, { nullable: false }) + @HideField() userId!: string; } diff --git a/server/src/core/@generated/refresh-token/refresh-token-create-without-user.input.ts b/server/src/core/@generated/refresh-token/refresh-token-create-without-user.input.ts index a77e8848e..1fa979bc0 100644 --- a/server/src/core/@generated/refresh-token/refresh-token-create-without-user.input.ts +++ b/server/src/core/@generated/refresh-token/refresh-token-create-without-user.input.ts @@ -3,8 +3,8 @@ import { InputType } from '@nestjs/graphql'; @InputType() export class RefreshTokenCreateWithoutUserInput { - @Field(() => String, { nullable: false }) - id!: string; + @Field(() => String, { nullable: true }) + id?: string; @Field(() => Date, { nullable: true }) createdAt?: Date | string; @@ -12,9 +12,12 @@ export class RefreshTokenCreateWithoutUserInput { @Field(() => Date, { nullable: true }) updatedAt?: Date | string; + @Field(() => Boolean, { nullable: true }) + isRevoked?: boolean; + + @Field(() => Date, { nullable: false }) + expiresAt!: Date | string; + @Field(() => Date, { nullable: true }) deletedAt?: Date | string; - - @Field(() => String, { nullable: false }) - refreshToken!: string; } diff --git a/server/src/core/@generated/refresh-token/refresh-token-create.input.ts b/server/src/core/@generated/refresh-token/refresh-token-create.input.ts index 273060adc..b4d8d8acc 100644 --- a/server/src/core/@generated/refresh-token/refresh-token-create.input.ts +++ b/server/src/core/@generated/refresh-token/refresh-token-create.input.ts @@ -1,11 +1,12 @@ import { Field } from '@nestjs/graphql'; import { InputType } from '@nestjs/graphql'; import { UserCreateNestedOneWithoutRefreshTokensInput } from '../user/user-create-nested-one-without-refresh-tokens.input'; +import { HideField } from '@nestjs/graphql'; @InputType() export class RefreshTokenCreateInput { - @Field(() => String, { nullable: false }) - id!: string; + @Field(() => String, { nullable: true }) + id?: string; @Field(() => Date, { nullable: true }) createdAt?: Date | string; @@ -13,14 +14,15 @@ export class RefreshTokenCreateInput { @Field(() => Date, { nullable: true }) updatedAt?: Date | string; + @Field(() => Boolean, { nullable: true }) + isRevoked?: boolean; + + @Field(() => Date, { nullable: false }) + expiresAt!: Date | string; + @Field(() => Date, { nullable: true }) deletedAt?: Date | string; - @Field(() => String, { nullable: false }) - refreshToken!: string; - - @Field(() => UserCreateNestedOneWithoutRefreshTokensInput, { - nullable: false, - }) + @HideField() user!: UserCreateNestedOneWithoutRefreshTokensInput; } diff --git a/server/src/core/@generated/refresh-token/refresh-token-group-by.output.ts b/server/src/core/@generated/refresh-token/refresh-token-group-by.output.ts index 5dea64053..928f66f26 100644 --- a/server/src/core/@generated/refresh-token/refresh-token-group-by.output.ts +++ b/server/src/core/@generated/refresh-token/refresh-token-group-by.output.ts @@ -1,5 +1,6 @@ import { Field } from '@nestjs/graphql'; import { ObjectType } from '@nestjs/graphql'; +import { HideField } from '@nestjs/graphql'; import { RefreshTokenCountAggregate } from './refresh-token-count-aggregate.output'; import { RefreshTokenMinAggregate } from './refresh-token-min-aggregate.output'; import { RefreshTokenMaxAggregate } from './refresh-token-max-aggregate.output'; @@ -15,13 +16,16 @@ export class RefreshTokenGroupBy { @Field(() => Date, { nullable: false }) updatedAt!: Date | string; + @Field(() => Boolean, { nullable: false }) + isRevoked!: boolean; + + @Field(() => Date, { nullable: false }) + expiresAt!: Date | string; + @Field(() => Date, { nullable: true }) deletedAt?: Date | string; - @Field(() => String, { nullable: false }) - refreshToken!: string; - - @Field(() => String, { nullable: false }) + @HideField() userId!: string; @Field(() => RefreshTokenCountAggregate, { nullable: true }) diff --git a/server/src/core/@generated/refresh-token/refresh-token-max-aggregate.input.ts b/server/src/core/@generated/refresh-token/refresh-token-max-aggregate.input.ts index fa6a46dfa..98b371634 100644 --- a/server/src/core/@generated/refresh-token/refresh-token-max-aggregate.input.ts +++ b/server/src/core/@generated/refresh-token/refresh-token-max-aggregate.input.ts @@ -1,5 +1,6 @@ import { Field } from '@nestjs/graphql'; import { InputType } from '@nestjs/graphql'; +import { HideField } from '@nestjs/graphql'; @InputType() export class RefreshTokenMaxAggregateInput { @@ -12,12 +13,15 @@ export class RefreshTokenMaxAggregateInput { @Field(() => Boolean, { nullable: true }) updatedAt?: true; + @Field(() => Boolean, { nullable: true }) + isRevoked?: true; + + @Field(() => Boolean, { nullable: true }) + expiresAt?: true; + @Field(() => Boolean, { nullable: true }) deletedAt?: true; - @Field(() => Boolean, { nullable: true }) - refreshToken?: true; - - @Field(() => Boolean, { nullable: true }) + @HideField() userId?: true; } diff --git a/server/src/core/@generated/refresh-token/refresh-token-max-aggregate.output.ts b/server/src/core/@generated/refresh-token/refresh-token-max-aggregate.output.ts index aec16bfba..c038425fe 100644 --- a/server/src/core/@generated/refresh-token/refresh-token-max-aggregate.output.ts +++ b/server/src/core/@generated/refresh-token/refresh-token-max-aggregate.output.ts @@ -1,5 +1,6 @@ import { Field } from '@nestjs/graphql'; import { ObjectType } from '@nestjs/graphql'; +import { HideField } from '@nestjs/graphql'; @ObjectType() export class RefreshTokenMaxAggregate { @@ -12,12 +13,15 @@ export class RefreshTokenMaxAggregate { @Field(() => Date, { nullable: true }) updatedAt?: Date | string; + @Field(() => Boolean, { nullable: true }) + isRevoked?: boolean; + + @Field(() => Date, { nullable: true }) + expiresAt?: Date | string; + @Field(() => Date, { nullable: true }) deletedAt?: Date | string; - @Field(() => String, { nullable: true }) - refreshToken?: string; - - @Field(() => String, { nullable: true }) + @HideField() userId?: string; } diff --git a/server/src/core/@generated/refresh-token/refresh-token-max-order-by-aggregate.input.ts b/server/src/core/@generated/refresh-token/refresh-token-max-order-by-aggregate.input.ts index 5818450bb..e779807bd 100644 --- a/server/src/core/@generated/refresh-token/refresh-token-max-order-by-aggregate.input.ts +++ b/server/src/core/@generated/refresh-token/refresh-token-max-order-by-aggregate.input.ts @@ -1,6 +1,7 @@ import { Field } from '@nestjs/graphql'; import { InputType } from '@nestjs/graphql'; import { SortOrder } from '../prisma/sort-order.enum'; +import { HideField } from '@nestjs/graphql'; @InputType() export class RefreshTokenMaxOrderByAggregateInput { @@ -13,12 +14,15 @@ export class RefreshTokenMaxOrderByAggregateInput { @Field(() => SortOrder, { nullable: true }) updatedAt?: keyof typeof SortOrder; + @Field(() => SortOrder, { nullable: true }) + isRevoked?: keyof typeof SortOrder; + + @Field(() => SortOrder, { nullable: true }) + expiresAt?: keyof typeof SortOrder; + @Field(() => SortOrder, { nullable: true }) deletedAt?: keyof typeof SortOrder; - @Field(() => SortOrder, { nullable: true }) - refreshToken?: keyof typeof SortOrder; - - @Field(() => SortOrder, { nullable: true }) + @HideField() userId?: keyof typeof SortOrder; } diff --git a/server/src/core/@generated/refresh-token/refresh-token-min-aggregate.input.ts b/server/src/core/@generated/refresh-token/refresh-token-min-aggregate.input.ts index 45d70cc55..09bebe199 100644 --- a/server/src/core/@generated/refresh-token/refresh-token-min-aggregate.input.ts +++ b/server/src/core/@generated/refresh-token/refresh-token-min-aggregate.input.ts @@ -1,5 +1,6 @@ import { Field } from '@nestjs/graphql'; import { InputType } from '@nestjs/graphql'; +import { HideField } from '@nestjs/graphql'; @InputType() export class RefreshTokenMinAggregateInput { @@ -12,12 +13,15 @@ export class RefreshTokenMinAggregateInput { @Field(() => Boolean, { nullable: true }) updatedAt?: true; + @Field(() => Boolean, { nullable: true }) + isRevoked?: true; + + @Field(() => Boolean, { nullable: true }) + expiresAt?: true; + @Field(() => Boolean, { nullable: true }) deletedAt?: true; - @Field(() => Boolean, { nullable: true }) - refreshToken?: true; - - @Field(() => Boolean, { nullable: true }) + @HideField() userId?: true; } diff --git a/server/src/core/@generated/refresh-token/refresh-token-min-aggregate.output.ts b/server/src/core/@generated/refresh-token/refresh-token-min-aggregate.output.ts index b5647323b..f35390394 100644 --- a/server/src/core/@generated/refresh-token/refresh-token-min-aggregate.output.ts +++ b/server/src/core/@generated/refresh-token/refresh-token-min-aggregate.output.ts @@ -1,5 +1,6 @@ import { Field } from '@nestjs/graphql'; import { ObjectType } from '@nestjs/graphql'; +import { HideField } from '@nestjs/graphql'; @ObjectType() export class RefreshTokenMinAggregate { @@ -12,12 +13,15 @@ export class RefreshTokenMinAggregate { @Field(() => Date, { nullable: true }) updatedAt?: Date | string; + @Field(() => Boolean, { nullable: true }) + isRevoked?: boolean; + + @Field(() => Date, { nullable: true }) + expiresAt?: Date | string; + @Field(() => Date, { nullable: true }) deletedAt?: Date | string; - @Field(() => String, { nullable: true }) - refreshToken?: string; - - @Field(() => String, { nullable: true }) + @HideField() userId?: string; } diff --git a/server/src/core/@generated/refresh-token/refresh-token-min-order-by-aggregate.input.ts b/server/src/core/@generated/refresh-token/refresh-token-min-order-by-aggregate.input.ts index 15c55a856..228797c2b 100644 --- a/server/src/core/@generated/refresh-token/refresh-token-min-order-by-aggregate.input.ts +++ b/server/src/core/@generated/refresh-token/refresh-token-min-order-by-aggregate.input.ts @@ -1,6 +1,7 @@ import { Field } from '@nestjs/graphql'; import { InputType } from '@nestjs/graphql'; import { SortOrder } from '../prisma/sort-order.enum'; +import { HideField } from '@nestjs/graphql'; @InputType() export class RefreshTokenMinOrderByAggregateInput { @@ -13,12 +14,15 @@ export class RefreshTokenMinOrderByAggregateInput { @Field(() => SortOrder, { nullable: true }) updatedAt?: keyof typeof SortOrder; + @Field(() => SortOrder, { nullable: true }) + isRevoked?: keyof typeof SortOrder; + + @Field(() => SortOrder, { nullable: true }) + expiresAt?: keyof typeof SortOrder; + @Field(() => SortOrder, { nullable: true }) deletedAt?: keyof typeof SortOrder; - @Field(() => SortOrder, { nullable: true }) - refreshToken?: keyof typeof SortOrder; - - @Field(() => SortOrder, { nullable: true }) + @HideField() userId?: keyof typeof SortOrder; } diff --git a/server/src/core/@generated/refresh-token/refresh-token-order-by-with-aggregation.input.ts b/server/src/core/@generated/refresh-token/refresh-token-order-by-with-aggregation.input.ts index df88e0e76..a310226f5 100644 --- a/server/src/core/@generated/refresh-token/refresh-token-order-by-with-aggregation.input.ts +++ b/server/src/core/@generated/refresh-token/refresh-token-order-by-with-aggregation.input.ts @@ -1,6 +1,7 @@ import { Field } from '@nestjs/graphql'; import { InputType } from '@nestjs/graphql'; import { SortOrder } from '../prisma/sort-order.enum'; +import { HideField } from '@nestjs/graphql'; import { RefreshTokenCountOrderByAggregateInput } from './refresh-token-count-order-by-aggregate.input'; import { RefreshTokenMaxOrderByAggregateInput } from './refresh-token-max-order-by-aggregate.input'; import { RefreshTokenMinOrderByAggregateInput } from './refresh-token-min-order-by-aggregate.input'; @@ -16,13 +17,16 @@ export class RefreshTokenOrderByWithAggregationInput { @Field(() => SortOrder, { nullable: true }) updatedAt?: keyof typeof SortOrder; + @Field(() => SortOrder, { nullable: true }) + isRevoked?: keyof typeof SortOrder; + + @Field(() => SortOrder, { nullable: true }) + expiresAt?: keyof typeof SortOrder; + @Field(() => SortOrder, { nullable: true }) deletedAt?: keyof typeof SortOrder; - @Field(() => SortOrder, { nullable: true }) - refreshToken?: keyof typeof SortOrder; - - @Field(() => SortOrder, { nullable: true }) + @HideField() userId?: keyof typeof SortOrder; @Field(() => RefreshTokenCountOrderByAggregateInput, { nullable: true }) diff --git a/server/src/core/@generated/refresh-token/refresh-token-order-by-with-relation.input.ts b/server/src/core/@generated/refresh-token/refresh-token-order-by-with-relation.input.ts index 6936d3d93..b072a4b13 100644 --- a/server/src/core/@generated/refresh-token/refresh-token-order-by-with-relation.input.ts +++ b/server/src/core/@generated/refresh-token/refresh-token-order-by-with-relation.input.ts @@ -1,6 +1,7 @@ import { Field } from '@nestjs/graphql'; import { InputType } from '@nestjs/graphql'; import { SortOrder } from '../prisma/sort-order.enum'; +import { HideField } from '@nestjs/graphql'; import { UserOrderByWithRelationInput } from '../user/user-order-by-with-relation.input'; @InputType() @@ -14,15 +15,18 @@ export class RefreshTokenOrderByWithRelationInput { @Field(() => SortOrder, { nullable: true }) updatedAt?: keyof typeof SortOrder; + @Field(() => SortOrder, { nullable: true }) + isRevoked?: keyof typeof SortOrder; + + @Field(() => SortOrder, { nullable: true }) + expiresAt?: keyof typeof SortOrder; + @Field(() => SortOrder, { nullable: true }) deletedAt?: keyof typeof SortOrder; - @Field(() => SortOrder, { nullable: true }) - refreshToken?: keyof typeof SortOrder; - - @Field(() => SortOrder, { nullable: true }) + @HideField() userId?: keyof typeof SortOrder; - @Field(() => UserOrderByWithRelationInput, { nullable: true }) + @HideField() user?: UserOrderByWithRelationInput; } diff --git a/server/src/core/@generated/refresh-token/refresh-token-scalar-field.enum.ts b/server/src/core/@generated/refresh-token/refresh-token-scalar-field.enum.ts index ea8e852a7..1e99e8183 100644 --- a/server/src/core/@generated/refresh-token/refresh-token-scalar-field.enum.ts +++ b/server/src/core/@generated/refresh-token/refresh-token-scalar-field.enum.ts @@ -4,8 +4,9 @@ export enum RefreshTokenScalarFieldEnum { id = 'id', createdAt = 'createdAt', updatedAt = 'updatedAt', + isRevoked = 'isRevoked', + expiresAt = 'expiresAt', deletedAt = 'deletedAt', - refreshToken = 'refreshToken', userId = 'userId', } diff --git a/server/src/core/@generated/refresh-token/refresh-token-scalar-where-with-aggregates.input.ts b/server/src/core/@generated/refresh-token/refresh-token-scalar-where-with-aggregates.input.ts index eacbf0245..1f294bc6e 100644 --- a/server/src/core/@generated/refresh-token/refresh-token-scalar-where-with-aggregates.input.ts +++ b/server/src/core/@generated/refresh-token/refresh-token-scalar-where-with-aggregates.input.ts @@ -2,7 +2,9 @@ import { Field } from '@nestjs/graphql'; import { InputType } from '@nestjs/graphql'; import { StringWithAggregatesFilter } from '../prisma/string-with-aggregates-filter.input'; import { DateTimeWithAggregatesFilter } from '../prisma/date-time-with-aggregates-filter.input'; +import { BoolWithAggregatesFilter } from '../prisma/bool-with-aggregates-filter.input'; import { DateTimeNullableWithAggregatesFilter } from '../prisma/date-time-nullable-with-aggregates-filter.input'; +import { HideField } from '@nestjs/graphql'; @InputType() export class RefreshTokenScalarWhereWithAggregatesInput { @@ -24,12 +26,15 @@ export class RefreshTokenScalarWhereWithAggregatesInput { @Field(() => DateTimeWithAggregatesFilter, { nullable: true }) updatedAt?: DateTimeWithAggregatesFilter; + @Field(() => BoolWithAggregatesFilter, { nullable: true }) + isRevoked?: BoolWithAggregatesFilter; + + @Field(() => DateTimeWithAggregatesFilter, { nullable: true }) + expiresAt?: DateTimeWithAggregatesFilter; + @Field(() => DateTimeNullableWithAggregatesFilter, { nullable: true }) deletedAt?: DateTimeNullableWithAggregatesFilter; - @Field(() => StringWithAggregatesFilter, { nullable: true }) - refreshToken?: StringWithAggregatesFilter; - - @Field(() => StringWithAggregatesFilter, { nullable: true }) + @HideField() userId?: StringWithAggregatesFilter; } diff --git a/server/src/core/@generated/refresh-token/refresh-token-scalar-where.input.ts b/server/src/core/@generated/refresh-token/refresh-token-scalar-where.input.ts index b29202984..f82229902 100644 --- a/server/src/core/@generated/refresh-token/refresh-token-scalar-where.input.ts +++ b/server/src/core/@generated/refresh-token/refresh-token-scalar-where.input.ts @@ -2,7 +2,9 @@ import { Field } from '@nestjs/graphql'; import { InputType } from '@nestjs/graphql'; import { StringFilter } from '../prisma/string-filter.input'; import { DateTimeFilter } from '../prisma/date-time-filter.input'; +import { BoolFilter } from '../prisma/bool-filter.input'; import { DateTimeNullableFilter } from '../prisma/date-time-nullable-filter.input'; +import { HideField } from '@nestjs/graphql'; @InputType() export class RefreshTokenScalarWhereInput { @@ -24,12 +26,15 @@ export class RefreshTokenScalarWhereInput { @Field(() => DateTimeFilter, { nullable: true }) updatedAt?: DateTimeFilter; + @Field(() => BoolFilter, { nullable: true }) + isRevoked?: BoolFilter; + + @Field(() => DateTimeFilter, { nullable: true }) + expiresAt?: DateTimeFilter; + @Field(() => DateTimeNullableFilter, { nullable: true }) deletedAt?: DateTimeNullableFilter; - @Field(() => StringFilter, { nullable: true }) - refreshToken?: StringFilter; - - @Field(() => StringFilter, { nullable: true }) + @HideField() userId?: StringFilter; } diff --git a/server/src/core/@generated/refresh-token/refresh-token-unchecked-create-without-user.input.ts b/server/src/core/@generated/refresh-token/refresh-token-unchecked-create-without-user.input.ts index 05a8ad4c0..f1f7bde20 100644 --- a/server/src/core/@generated/refresh-token/refresh-token-unchecked-create-without-user.input.ts +++ b/server/src/core/@generated/refresh-token/refresh-token-unchecked-create-without-user.input.ts @@ -3,8 +3,8 @@ import { InputType } from '@nestjs/graphql'; @InputType() export class RefreshTokenUncheckedCreateWithoutUserInput { - @Field(() => String, { nullable: false }) - id!: string; + @Field(() => String, { nullable: true }) + id?: string; @Field(() => Date, { nullable: true }) createdAt?: Date | string; @@ -12,9 +12,12 @@ export class RefreshTokenUncheckedCreateWithoutUserInput { @Field(() => Date, { nullable: true }) updatedAt?: Date | string; + @Field(() => Boolean, { nullable: true }) + isRevoked?: boolean; + + @Field(() => Date, { nullable: false }) + expiresAt!: Date | string; + @Field(() => Date, { nullable: true }) deletedAt?: Date | string; - - @Field(() => String, { nullable: false }) - refreshToken!: string; } diff --git a/server/src/core/@generated/refresh-token/refresh-token-unchecked-create.input.ts b/server/src/core/@generated/refresh-token/refresh-token-unchecked-create.input.ts index bf9b04708..521d15549 100644 --- a/server/src/core/@generated/refresh-token/refresh-token-unchecked-create.input.ts +++ b/server/src/core/@generated/refresh-token/refresh-token-unchecked-create.input.ts @@ -1,10 +1,11 @@ import { Field } from '@nestjs/graphql'; import { InputType } from '@nestjs/graphql'; +import { HideField } from '@nestjs/graphql'; @InputType() export class RefreshTokenUncheckedCreateInput { - @Field(() => String, { nullable: false }) - id!: string; + @Field(() => String, { nullable: true }) + id?: string; @Field(() => Date, { nullable: true }) createdAt?: Date | string; @@ -12,12 +13,15 @@ export class RefreshTokenUncheckedCreateInput { @Field(() => Date, { nullable: true }) updatedAt?: Date | string; + @Field(() => Boolean, { nullable: true }) + isRevoked?: boolean; + + @Field(() => Date, { nullable: false }) + expiresAt!: Date | string; + @Field(() => Date, { nullable: true }) deletedAt?: Date | string; - @Field(() => String, { nullable: false }) - refreshToken!: string; - - @Field(() => String, { nullable: false }) + @HideField() userId!: string; } diff --git a/server/src/core/@generated/refresh-token/refresh-token-unchecked-update-many-without-refresh-tokens.input.ts b/server/src/core/@generated/refresh-token/refresh-token-unchecked-update-many-without-refresh-tokens.input.ts index c16cfba31..1a310c193 100644 --- a/server/src/core/@generated/refresh-token/refresh-token-unchecked-update-many-without-refresh-tokens.input.ts +++ b/server/src/core/@generated/refresh-token/refresh-token-unchecked-update-many-without-refresh-tokens.input.ts @@ -2,6 +2,7 @@ import { Field } from '@nestjs/graphql'; import { InputType } from '@nestjs/graphql'; import { StringFieldUpdateOperationsInput } from '../prisma/string-field-update-operations.input'; import { DateTimeFieldUpdateOperationsInput } from '../prisma/date-time-field-update-operations.input'; +import { BoolFieldUpdateOperationsInput } from '../prisma/bool-field-update-operations.input'; import { NullableDateTimeFieldUpdateOperationsInput } from '../prisma/nullable-date-time-field-update-operations.input'; @InputType() @@ -15,9 +16,12 @@ export class RefreshTokenUncheckedUpdateManyWithoutRefreshTokensInput { @Field(() => DateTimeFieldUpdateOperationsInput, { nullable: true }) updatedAt?: DateTimeFieldUpdateOperationsInput; + @Field(() => BoolFieldUpdateOperationsInput, { nullable: true }) + isRevoked?: BoolFieldUpdateOperationsInput; + + @Field(() => DateTimeFieldUpdateOperationsInput, { nullable: true }) + expiresAt?: DateTimeFieldUpdateOperationsInput; + @Field(() => NullableDateTimeFieldUpdateOperationsInput, { nullable: true }) deletedAt?: NullableDateTimeFieldUpdateOperationsInput; - - @Field(() => StringFieldUpdateOperationsInput, { nullable: true }) - refreshToken?: StringFieldUpdateOperationsInput; } diff --git a/server/src/core/@generated/refresh-token/refresh-token-unchecked-update-many.input.ts b/server/src/core/@generated/refresh-token/refresh-token-unchecked-update-many.input.ts index e4135528e..d9efd3aab 100644 --- a/server/src/core/@generated/refresh-token/refresh-token-unchecked-update-many.input.ts +++ b/server/src/core/@generated/refresh-token/refresh-token-unchecked-update-many.input.ts @@ -2,7 +2,9 @@ import { Field } from '@nestjs/graphql'; import { InputType } from '@nestjs/graphql'; import { StringFieldUpdateOperationsInput } from '../prisma/string-field-update-operations.input'; import { DateTimeFieldUpdateOperationsInput } from '../prisma/date-time-field-update-operations.input'; +import { BoolFieldUpdateOperationsInput } from '../prisma/bool-field-update-operations.input'; import { NullableDateTimeFieldUpdateOperationsInput } from '../prisma/nullable-date-time-field-update-operations.input'; +import { HideField } from '@nestjs/graphql'; @InputType() export class RefreshTokenUncheckedUpdateManyInput { @@ -15,12 +17,15 @@ export class RefreshTokenUncheckedUpdateManyInput { @Field(() => DateTimeFieldUpdateOperationsInput, { nullable: true }) updatedAt?: DateTimeFieldUpdateOperationsInput; + @Field(() => BoolFieldUpdateOperationsInput, { nullable: true }) + isRevoked?: BoolFieldUpdateOperationsInput; + + @Field(() => DateTimeFieldUpdateOperationsInput, { nullable: true }) + expiresAt?: DateTimeFieldUpdateOperationsInput; + @Field(() => NullableDateTimeFieldUpdateOperationsInput, { nullable: true }) deletedAt?: NullableDateTimeFieldUpdateOperationsInput; - @Field(() => StringFieldUpdateOperationsInput, { nullable: true }) - refreshToken?: StringFieldUpdateOperationsInput; - - @Field(() => StringFieldUpdateOperationsInput, { nullable: true }) + @HideField() userId?: StringFieldUpdateOperationsInput; } diff --git a/server/src/core/@generated/refresh-token/refresh-token-unchecked-update-without-user.input.ts b/server/src/core/@generated/refresh-token/refresh-token-unchecked-update-without-user.input.ts index 7aa53f430..46e0fafc4 100644 --- a/server/src/core/@generated/refresh-token/refresh-token-unchecked-update-without-user.input.ts +++ b/server/src/core/@generated/refresh-token/refresh-token-unchecked-update-without-user.input.ts @@ -2,6 +2,7 @@ import { Field } from '@nestjs/graphql'; import { InputType } from '@nestjs/graphql'; import { StringFieldUpdateOperationsInput } from '../prisma/string-field-update-operations.input'; import { DateTimeFieldUpdateOperationsInput } from '../prisma/date-time-field-update-operations.input'; +import { BoolFieldUpdateOperationsInput } from '../prisma/bool-field-update-operations.input'; import { NullableDateTimeFieldUpdateOperationsInput } from '../prisma/nullable-date-time-field-update-operations.input'; @InputType() @@ -15,9 +16,12 @@ export class RefreshTokenUncheckedUpdateWithoutUserInput { @Field(() => DateTimeFieldUpdateOperationsInput, { nullable: true }) updatedAt?: DateTimeFieldUpdateOperationsInput; + @Field(() => BoolFieldUpdateOperationsInput, { nullable: true }) + isRevoked?: BoolFieldUpdateOperationsInput; + + @Field(() => DateTimeFieldUpdateOperationsInput, { nullable: true }) + expiresAt?: DateTimeFieldUpdateOperationsInput; + @Field(() => NullableDateTimeFieldUpdateOperationsInput, { nullable: true }) deletedAt?: NullableDateTimeFieldUpdateOperationsInput; - - @Field(() => StringFieldUpdateOperationsInput, { nullable: true }) - refreshToken?: StringFieldUpdateOperationsInput; } diff --git a/server/src/core/@generated/refresh-token/refresh-token-unchecked-update.input.ts b/server/src/core/@generated/refresh-token/refresh-token-unchecked-update.input.ts index 26cb92715..52eb7eae8 100644 --- a/server/src/core/@generated/refresh-token/refresh-token-unchecked-update.input.ts +++ b/server/src/core/@generated/refresh-token/refresh-token-unchecked-update.input.ts @@ -2,7 +2,9 @@ import { Field } from '@nestjs/graphql'; import { InputType } from '@nestjs/graphql'; import { StringFieldUpdateOperationsInput } from '../prisma/string-field-update-operations.input'; import { DateTimeFieldUpdateOperationsInput } from '../prisma/date-time-field-update-operations.input'; +import { BoolFieldUpdateOperationsInput } from '../prisma/bool-field-update-operations.input'; import { NullableDateTimeFieldUpdateOperationsInput } from '../prisma/nullable-date-time-field-update-operations.input'; +import { HideField } from '@nestjs/graphql'; @InputType() export class RefreshTokenUncheckedUpdateInput { @@ -15,12 +17,15 @@ export class RefreshTokenUncheckedUpdateInput { @Field(() => DateTimeFieldUpdateOperationsInput, { nullable: true }) updatedAt?: DateTimeFieldUpdateOperationsInput; + @Field(() => BoolFieldUpdateOperationsInput, { nullable: true }) + isRevoked?: BoolFieldUpdateOperationsInput; + + @Field(() => DateTimeFieldUpdateOperationsInput, { nullable: true }) + expiresAt?: DateTimeFieldUpdateOperationsInput; + @Field(() => NullableDateTimeFieldUpdateOperationsInput, { nullable: true }) deletedAt?: NullableDateTimeFieldUpdateOperationsInput; - @Field(() => StringFieldUpdateOperationsInput, { nullable: true }) - refreshToken?: StringFieldUpdateOperationsInput; - - @Field(() => StringFieldUpdateOperationsInput, { nullable: true }) + @HideField() userId?: StringFieldUpdateOperationsInput; } diff --git a/server/src/core/@generated/refresh-token/refresh-token-update-many-mutation.input.ts b/server/src/core/@generated/refresh-token/refresh-token-update-many-mutation.input.ts index c27eff8e9..fb2d20d70 100644 --- a/server/src/core/@generated/refresh-token/refresh-token-update-many-mutation.input.ts +++ b/server/src/core/@generated/refresh-token/refresh-token-update-many-mutation.input.ts @@ -2,6 +2,7 @@ import { Field } from '@nestjs/graphql'; import { InputType } from '@nestjs/graphql'; import { StringFieldUpdateOperationsInput } from '../prisma/string-field-update-operations.input'; import { DateTimeFieldUpdateOperationsInput } from '../prisma/date-time-field-update-operations.input'; +import { BoolFieldUpdateOperationsInput } from '../prisma/bool-field-update-operations.input'; import { NullableDateTimeFieldUpdateOperationsInput } from '../prisma/nullable-date-time-field-update-operations.input'; @InputType() @@ -15,9 +16,12 @@ export class RefreshTokenUpdateManyMutationInput { @Field(() => DateTimeFieldUpdateOperationsInput, { nullable: true }) updatedAt?: DateTimeFieldUpdateOperationsInput; + @Field(() => BoolFieldUpdateOperationsInput, { nullable: true }) + isRevoked?: BoolFieldUpdateOperationsInput; + + @Field(() => DateTimeFieldUpdateOperationsInput, { nullable: true }) + expiresAt?: DateTimeFieldUpdateOperationsInput; + @Field(() => NullableDateTimeFieldUpdateOperationsInput, { nullable: true }) deletedAt?: NullableDateTimeFieldUpdateOperationsInput; - - @Field(() => StringFieldUpdateOperationsInput, { nullable: true }) - refreshToken?: StringFieldUpdateOperationsInput; } diff --git a/server/src/core/@generated/refresh-token/refresh-token-update-without-user.input.ts b/server/src/core/@generated/refresh-token/refresh-token-update-without-user.input.ts index 0b8a43979..4069cad04 100644 --- a/server/src/core/@generated/refresh-token/refresh-token-update-without-user.input.ts +++ b/server/src/core/@generated/refresh-token/refresh-token-update-without-user.input.ts @@ -2,6 +2,7 @@ import { Field } from '@nestjs/graphql'; import { InputType } from '@nestjs/graphql'; import { StringFieldUpdateOperationsInput } from '../prisma/string-field-update-operations.input'; import { DateTimeFieldUpdateOperationsInput } from '../prisma/date-time-field-update-operations.input'; +import { BoolFieldUpdateOperationsInput } from '../prisma/bool-field-update-operations.input'; import { NullableDateTimeFieldUpdateOperationsInput } from '../prisma/nullable-date-time-field-update-operations.input'; @InputType() @@ -15,9 +16,12 @@ export class RefreshTokenUpdateWithoutUserInput { @Field(() => DateTimeFieldUpdateOperationsInput, { nullable: true }) updatedAt?: DateTimeFieldUpdateOperationsInput; + @Field(() => BoolFieldUpdateOperationsInput, { nullable: true }) + isRevoked?: BoolFieldUpdateOperationsInput; + + @Field(() => DateTimeFieldUpdateOperationsInput, { nullable: true }) + expiresAt?: DateTimeFieldUpdateOperationsInput; + @Field(() => NullableDateTimeFieldUpdateOperationsInput, { nullable: true }) deletedAt?: NullableDateTimeFieldUpdateOperationsInput; - - @Field(() => StringFieldUpdateOperationsInput, { nullable: true }) - refreshToken?: StringFieldUpdateOperationsInput; } diff --git a/server/src/core/@generated/refresh-token/refresh-token-update.input.ts b/server/src/core/@generated/refresh-token/refresh-token-update.input.ts index 22c3aa3bf..7b38b94ef 100644 --- a/server/src/core/@generated/refresh-token/refresh-token-update.input.ts +++ b/server/src/core/@generated/refresh-token/refresh-token-update.input.ts @@ -2,8 +2,10 @@ import { Field } from '@nestjs/graphql'; import { InputType } from '@nestjs/graphql'; import { StringFieldUpdateOperationsInput } from '../prisma/string-field-update-operations.input'; import { DateTimeFieldUpdateOperationsInput } from '../prisma/date-time-field-update-operations.input'; +import { BoolFieldUpdateOperationsInput } from '../prisma/bool-field-update-operations.input'; import { NullableDateTimeFieldUpdateOperationsInput } from '../prisma/nullable-date-time-field-update-operations.input'; import { UserUpdateOneRequiredWithoutRefreshTokensNestedInput } from '../user/user-update-one-required-without-refresh-tokens-nested.input'; +import { HideField } from '@nestjs/graphql'; @InputType() export class RefreshTokenUpdateInput { @@ -16,14 +18,15 @@ export class RefreshTokenUpdateInput { @Field(() => DateTimeFieldUpdateOperationsInput, { nullable: true }) updatedAt?: DateTimeFieldUpdateOperationsInput; + @Field(() => BoolFieldUpdateOperationsInput, { nullable: true }) + isRevoked?: BoolFieldUpdateOperationsInput; + + @Field(() => DateTimeFieldUpdateOperationsInput, { nullable: true }) + expiresAt?: DateTimeFieldUpdateOperationsInput; + @Field(() => NullableDateTimeFieldUpdateOperationsInput, { nullable: true }) deletedAt?: NullableDateTimeFieldUpdateOperationsInput; - @Field(() => StringFieldUpdateOperationsInput, { nullable: true }) - refreshToken?: StringFieldUpdateOperationsInput; - - @Field(() => UserUpdateOneRequiredWithoutRefreshTokensNestedInput, { - nullable: true, - }) + @HideField() user?: UserUpdateOneRequiredWithoutRefreshTokensNestedInput; } diff --git a/server/src/core/@generated/refresh-token/refresh-token-where.input.ts b/server/src/core/@generated/refresh-token/refresh-token-where.input.ts index cc4c39549..ee01058a7 100644 --- a/server/src/core/@generated/refresh-token/refresh-token-where.input.ts +++ b/server/src/core/@generated/refresh-token/refresh-token-where.input.ts @@ -2,7 +2,9 @@ import { Field } from '@nestjs/graphql'; import { InputType } from '@nestjs/graphql'; import { StringFilter } from '../prisma/string-filter.input'; import { DateTimeFilter } from '../prisma/date-time-filter.input'; +import { BoolFilter } from '../prisma/bool-filter.input'; import { DateTimeNullableFilter } from '../prisma/date-time-nullable-filter.input'; +import { HideField } from '@nestjs/graphql'; import { UserRelationFilter } from '../user/user-relation-filter.input'; @InputType() @@ -25,15 +27,18 @@ export class RefreshTokenWhereInput { @Field(() => DateTimeFilter, { nullable: true }) updatedAt?: DateTimeFilter; + @Field(() => BoolFilter, { nullable: true }) + isRevoked?: BoolFilter; + + @Field(() => DateTimeFilter, { nullable: true }) + expiresAt?: DateTimeFilter; + @Field(() => DateTimeNullableFilter, { nullable: true }) deletedAt?: DateTimeNullableFilter; - @Field(() => StringFilter, { nullable: true }) - refreshToken?: StringFilter; - - @Field(() => StringFilter, { nullable: true }) + @HideField() userId?: StringFilter; - @Field(() => UserRelationFilter, { nullable: true }) + @HideField() user?: UserRelationFilter; } diff --git a/server/src/core/@generated/refresh-token/refresh-token.model.ts b/server/src/core/@generated/refresh-token/refresh-token.model.ts index e342d81ff..5027ccf26 100644 --- a/server/src/core/@generated/refresh-token/refresh-token.model.ts +++ b/server/src/core/@generated/refresh-token/refresh-token.model.ts @@ -1,6 +1,7 @@ import { Field } from '@nestjs/graphql'; import { ObjectType } from '@nestjs/graphql'; import { ID } from '@nestjs/graphql'; +import { HideField } from '@nestjs/graphql'; import { User } from '../user/user.model'; @ObjectType() @@ -14,15 +15,18 @@ export class RefreshToken { @Field(() => Date, { nullable: false }) updatedAt!: Date; + @Field(() => Boolean, { nullable: false, defaultValue: false }) + isRevoked!: boolean; + + @Field(() => Date, { nullable: false }) + expiresAt!: Date; + @Field(() => Date, { nullable: true }) deletedAt!: Date | null; - @Field(() => String, { nullable: false }) - refreshToken!: string; - - @Field(() => String, { nullable: false }) + @HideField() userId!: string; - @Field(() => User, { nullable: false }) + @HideField() user?: User; } diff --git a/server/src/core/@generated/user/user-count-aggregate.input.ts b/server/src/core/@generated/user/user-count-aggregate.input.ts index 4cafc1c85..789564391 100644 --- a/server/src/core/@generated/user/user-count-aggregate.input.ts +++ b/server/src/core/@generated/user/user-count-aggregate.input.ts @@ -1,5 +1,6 @@ import { Field } from '@nestjs/graphql'; import { InputType } from '@nestjs/graphql'; +import { HideField } from '@nestjs/graphql'; @InputType() export class UserCountAggregateInput { @@ -36,7 +37,7 @@ export class UserCountAggregateInput { @Field(() => Boolean, { nullable: true }) phoneNumber?: true; - @Field(() => Boolean, { nullable: true }) + @HideField() passwordHash?: true; @Field(() => Boolean, { nullable: true }) diff --git a/server/src/core/@generated/user/user-count-aggregate.output.ts b/server/src/core/@generated/user/user-count-aggregate.output.ts index e821ec0a8..e0b8cda9d 100644 --- a/server/src/core/@generated/user/user-count-aggregate.output.ts +++ b/server/src/core/@generated/user/user-count-aggregate.output.ts @@ -1,6 +1,7 @@ import { Field } from '@nestjs/graphql'; import { ObjectType } from '@nestjs/graphql'; import { Int } from '@nestjs/graphql'; +import { HideField } from '@nestjs/graphql'; @ObjectType() export class UserCountAggregate { @@ -37,7 +38,7 @@ export class UserCountAggregate { @Field(() => Int, { nullable: false }) phoneNumber!: number; - @Field(() => Int, { nullable: false }) + @HideField() passwordHash!: number; @Field(() => Int, { nullable: false }) diff --git a/server/src/core/@generated/user/user-count-order-by-aggregate.input.ts b/server/src/core/@generated/user/user-count-order-by-aggregate.input.ts index ee01b23a2..5954971b9 100644 --- a/server/src/core/@generated/user/user-count-order-by-aggregate.input.ts +++ b/server/src/core/@generated/user/user-count-order-by-aggregate.input.ts @@ -1,6 +1,7 @@ import { Field } from '@nestjs/graphql'; import { InputType } from '@nestjs/graphql'; import { SortOrder } from '../prisma/sort-order.enum'; +import { HideField } from '@nestjs/graphql'; @InputType() export class UserCountOrderByAggregateInput { @@ -37,7 +38,7 @@ export class UserCountOrderByAggregateInput { @Field(() => SortOrder, { nullable: true }) phoneNumber?: keyof typeof SortOrder; - @Field(() => SortOrder, { nullable: true }) + @HideField() passwordHash?: keyof typeof SortOrder; @Field(() => SortOrder, { nullable: true }) diff --git a/server/src/core/@generated/user/user-create-many.input.ts b/server/src/core/@generated/user/user-create-many.input.ts index b8476f0fb..c4d453e1c 100644 --- a/server/src/core/@generated/user/user-create-many.input.ts +++ b/server/src/core/@generated/user/user-create-many.input.ts @@ -1,11 +1,12 @@ import { Field } from '@nestjs/graphql'; import { InputType } from '@nestjs/graphql'; +import { HideField } from '@nestjs/graphql'; import { GraphQLJSON } from 'graphql-type-json'; @InputType() export class UserCreateManyInput { - @Field(() => String, { nullable: false }) - id!: string; + @Field(() => String, { nullable: true }) + id?: string; @Field(() => Date, { nullable: true }) createdAt?: Date | string; @@ -37,7 +38,7 @@ export class UserCreateManyInput { @Field(() => String, { nullable: true }) phoneNumber?: string; - @Field(() => String, { nullable: true }) + @HideField() passwordHash?: string; @Field(() => Boolean, { nullable: true }) diff --git a/server/src/core/@generated/user/user-create-without-comments.input.ts b/server/src/core/@generated/user/user-create-without-comments.input.ts index d996388a0..d812d43f3 100644 --- a/server/src/core/@generated/user/user-create-without-comments.input.ts +++ b/server/src/core/@generated/user/user-create-without-comments.input.ts @@ -1,15 +1,15 @@ import { Field } from '@nestjs/graphql'; import { InputType } from '@nestjs/graphql'; +import { HideField } from '@nestjs/graphql'; import { GraphQLJSON } from 'graphql-type-json'; import { WorkspaceMemberCreateNestedOneWithoutUserInput } from '../workspace-member/workspace-member-create-nested-one-without-user.input'; -import { HideField } from '@nestjs/graphql'; import { CompanyCreateNestedManyWithoutAccountOwnerInput } from '../company/company-create-nested-many-without-account-owner.input'; import { RefreshTokenCreateNestedManyWithoutUserInput } from '../refresh-token/refresh-token-create-nested-many-without-user.input'; @InputType() export class UserCreateWithoutCommentsInput { - @Field(() => String, { nullable: false }) - id!: string; + @Field(() => String, { nullable: true }) + id?: string; @Field(() => Date, { nullable: true }) createdAt?: Date | string; @@ -41,7 +41,7 @@ export class UserCreateWithoutCommentsInput { @Field(() => String, { nullable: true }) phoneNumber?: string; - @Field(() => String, { nullable: true }) + @HideField() passwordHash?: string; @Field(() => Boolean, { nullable: true }) diff --git a/server/src/core/@generated/user/user-create-without-companies.input.ts b/server/src/core/@generated/user/user-create-without-companies.input.ts index 6ffd8d4f9..e9679c677 100644 --- a/server/src/core/@generated/user/user-create-without-companies.input.ts +++ b/server/src/core/@generated/user/user-create-without-companies.input.ts @@ -1,15 +1,15 @@ import { Field } from '@nestjs/graphql'; import { InputType } from '@nestjs/graphql'; +import { HideField } from '@nestjs/graphql'; import { GraphQLJSON } from 'graphql-type-json'; import { WorkspaceMemberCreateNestedOneWithoutUserInput } from '../workspace-member/workspace-member-create-nested-one-without-user.input'; -import { HideField } from '@nestjs/graphql'; import { RefreshTokenCreateNestedManyWithoutUserInput } from '../refresh-token/refresh-token-create-nested-many-without-user.input'; import { CommentCreateNestedManyWithoutAuthorInput } from '../comment/comment-create-nested-many-without-author.input'; @InputType() export class UserCreateWithoutCompaniesInput { - @Field(() => String, { nullable: false }) - id!: string; + @Field(() => String, { nullable: true }) + id?: string; @Field(() => Date, { nullable: true }) createdAt?: Date | string; @@ -41,7 +41,7 @@ export class UserCreateWithoutCompaniesInput { @Field(() => String, { nullable: true }) phoneNumber?: string; - @Field(() => String, { nullable: true }) + @HideField() passwordHash?: string; @Field(() => Boolean, { nullable: true }) diff --git a/server/src/core/@generated/user/user-create-without-refresh-tokens.input.ts b/server/src/core/@generated/user/user-create-without-refresh-tokens.input.ts index 739d3c031..cc8511f0d 100644 --- a/server/src/core/@generated/user/user-create-without-refresh-tokens.input.ts +++ b/server/src/core/@generated/user/user-create-without-refresh-tokens.input.ts @@ -1,15 +1,15 @@ import { Field } from '@nestjs/graphql'; import { InputType } from '@nestjs/graphql'; +import { HideField } from '@nestjs/graphql'; import { GraphQLJSON } from 'graphql-type-json'; import { WorkspaceMemberCreateNestedOneWithoutUserInput } from '../workspace-member/workspace-member-create-nested-one-without-user.input'; -import { HideField } from '@nestjs/graphql'; import { CompanyCreateNestedManyWithoutAccountOwnerInput } from '../company/company-create-nested-many-without-account-owner.input'; import { CommentCreateNestedManyWithoutAuthorInput } from '../comment/comment-create-nested-many-without-author.input'; @InputType() export class UserCreateWithoutRefreshTokensInput { - @Field(() => String, { nullable: false }) - id!: string; + @Field(() => String, { nullable: true }) + id?: string; @Field(() => Date, { nullable: true }) createdAt?: Date | string; @@ -41,7 +41,7 @@ export class UserCreateWithoutRefreshTokensInput { @Field(() => String, { nullable: true }) phoneNumber?: string; - @Field(() => String, { nullable: true }) + @HideField() passwordHash?: string; @Field(() => Boolean, { nullable: true }) diff --git a/server/src/core/@generated/user/user-create-without-workspace-member.input.ts b/server/src/core/@generated/user/user-create-without-workspace-member.input.ts index 22525151d..2daab0a41 100644 --- a/server/src/core/@generated/user/user-create-without-workspace-member.input.ts +++ b/server/src/core/@generated/user/user-create-without-workspace-member.input.ts @@ -1,15 +1,15 @@ import { Field } from '@nestjs/graphql'; import { InputType } from '@nestjs/graphql'; +import { HideField } from '@nestjs/graphql'; import { GraphQLJSON } from 'graphql-type-json'; import { CompanyCreateNestedManyWithoutAccountOwnerInput } from '../company/company-create-nested-many-without-account-owner.input'; import { RefreshTokenCreateNestedManyWithoutUserInput } from '../refresh-token/refresh-token-create-nested-many-without-user.input'; -import { HideField } from '@nestjs/graphql'; import { CommentCreateNestedManyWithoutAuthorInput } from '../comment/comment-create-nested-many-without-author.input'; @InputType() export class UserCreateWithoutWorkspaceMemberInput { - @Field(() => String, { nullable: false }) - id!: string; + @Field(() => String, { nullable: true }) + id?: string; @Field(() => Date, { nullable: true }) createdAt?: Date | string; @@ -41,7 +41,7 @@ export class UserCreateWithoutWorkspaceMemberInput { @Field(() => String, { nullable: true }) phoneNumber?: string; - @Field(() => String, { nullable: true }) + @HideField() passwordHash?: string; @Field(() => Boolean, { nullable: true }) diff --git a/server/src/core/@generated/user/user-create.input.ts b/server/src/core/@generated/user/user-create.input.ts index a56df0cf3..09f54b666 100644 --- a/server/src/core/@generated/user/user-create.input.ts +++ b/server/src/core/@generated/user/user-create.input.ts @@ -1,16 +1,16 @@ import { Field } from '@nestjs/graphql'; import { InputType } from '@nestjs/graphql'; +import { HideField } from '@nestjs/graphql'; import { GraphQLJSON } from 'graphql-type-json'; import { WorkspaceMemberCreateNestedOneWithoutUserInput } from '../workspace-member/workspace-member-create-nested-one-without-user.input'; -import { HideField } from '@nestjs/graphql'; import { CompanyCreateNestedManyWithoutAccountOwnerInput } from '../company/company-create-nested-many-without-account-owner.input'; import { RefreshTokenCreateNestedManyWithoutUserInput } from '../refresh-token/refresh-token-create-nested-many-without-user.input'; import { CommentCreateNestedManyWithoutAuthorInput } from '../comment/comment-create-nested-many-without-author.input'; @InputType() export class UserCreateInput { - @Field(() => String, { nullable: false }) - id!: string; + @Field(() => String, { nullable: true }) + id?: string; @Field(() => Date, { nullable: true }) createdAt?: Date | string; @@ -42,7 +42,7 @@ export class UserCreateInput { @Field(() => String, { nullable: true }) phoneNumber?: string; - @Field(() => String, { nullable: true }) + @HideField() passwordHash?: string; @Field(() => Boolean, { nullable: true }) diff --git a/server/src/core/@generated/user/user-group-by.output.ts b/server/src/core/@generated/user/user-group-by.output.ts index 756973625..dc2a82002 100644 --- a/server/src/core/@generated/user/user-group-by.output.ts +++ b/server/src/core/@generated/user/user-group-by.output.ts @@ -1,5 +1,6 @@ import { Field } from '@nestjs/graphql'; import { ObjectType } from '@nestjs/graphql'; +import { HideField } from '@nestjs/graphql'; import { GraphQLJSON } from 'graphql-type-json'; import { UserCountAggregate } from './user-count-aggregate.output'; import { UserMinAggregate } from './user-min-aggregate.output'; @@ -40,7 +41,7 @@ export class UserGroupBy { @Field(() => String, { nullable: true }) phoneNumber?: string; - @Field(() => String, { nullable: true }) + @HideField() passwordHash?: string; @Field(() => Boolean, { nullable: false }) diff --git a/server/src/core/@generated/user/user-max-aggregate.input.ts b/server/src/core/@generated/user/user-max-aggregate.input.ts index 0c5422dbc..1f1565257 100644 --- a/server/src/core/@generated/user/user-max-aggregate.input.ts +++ b/server/src/core/@generated/user/user-max-aggregate.input.ts @@ -1,5 +1,6 @@ import { Field } from '@nestjs/graphql'; import { InputType } from '@nestjs/graphql'; +import { HideField } from '@nestjs/graphql'; @InputType() export class UserMaxAggregateInput { @@ -36,7 +37,7 @@ export class UserMaxAggregateInput { @Field(() => Boolean, { nullable: true }) phoneNumber?: true; - @Field(() => Boolean, { nullable: true }) + @HideField() passwordHash?: true; @Field(() => Boolean, { nullable: true }) diff --git a/server/src/core/@generated/user/user-max-aggregate.output.ts b/server/src/core/@generated/user/user-max-aggregate.output.ts index f48b01c45..4ac6dc13a 100644 --- a/server/src/core/@generated/user/user-max-aggregate.output.ts +++ b/server/src/core/@generated/user/user-max-aggregate.output.ts @@ -1,5 +1,6 @@ import { Field } from '@nestjs/graphql'; import { ObjectType } from '@nestjs/graphql'; +import { HideField } from '@nestjs/graphql'; @ObjectType() export class UserMaxAggregate { @@ -36,7 +37,7 @@ export class UserMaxAggregate { @Field(() => String, { nullable: true }) phoneNumber?: string; - @Field(() => String, { nullable: true }) + @HideField() passwordHash?: string; @Field(() => Boolean, { nullable: true }) diff --git a/server/src/core/@generated/user/user-max-order-by-aggregate.input.ts b/server/src/core/@generated/user/user-max-order-by-aggregate.input.ts index a7f5b5959..e5515afea 100644 --- a/server/src/core/@generated/user/user-max-order-by-aggregate.input.ts +++ b/server/src/core/@generated/user/user-max-order-by-aggregate.input.ts @@ -1,6 +1,7 @@ import { Field } from '@nestjs/graphql'; import { InputType } from '@nestjs/graphql'; import { SortOrder } from '../prisma/sort-order.enum'; +import { HideField } from '@nestjs/graphql'; @InputType() export class UserMaxOrderByAggregateInput { @@ -37,7 +38,7 @@ export class UserMaxOrderByAggregateInput { @Field(() => SortOrder, { nullable: true }) phoneNumber?: keyof typeof SortOrder; - @Field(() => SortOrder, { nullable: true }) + @HideField() passwordHash?: keyof typeof SortOrder; @Field(() => SortOrder, { nullable: true }) diff --git a/server/src/core/@generated/user/user-min-aggregate.input.ts b/server/src/core/@generated/user/user-min-aggregate.input.ts index e21094305..f4ca7d0d1 100644 --- a/server/src/core/@generated/user/user-min-aggregate.input.ts +++ b/server/src/core/@generated/user/user-min-aggregate.input.ts @@ -1,5 +1,6 @@ import { Field } from '@nestjs/graphql'; import { InputType } from '@nestjs/graphql'; +import { HideField } from '@nestjs/graphql'; @InputType() export class UserMinAggregateInput { @@ -36,7 +37,7 @@ export class UserMinAggregateInput { @Field(() => Boolean, { nullable: true }) phoneNumber?: true; - @Field(() => Boolean, { nullable: true }) + @HideField() passwordHash?: true; @Field(() => Boolean, { nullable: true }) diff --git a/server/src/core/@generated/user/user-min-aggregate.output.ts b/server/src/core/@generated/user/user-min-aggregate.output.ts index 8c31a6c1f..e8d1358e7 100644 --- a/server/src/core/@generated/user/user-min-aggregate.output.ts +++ b/server/src/core/@generated/user/user-min-aggregate.output.ts @@ -1,5 +1,6 @@ import { Field } from '@nestjs/graphql'; import { ObjectType } from '@nestjs/graphql'; +import { HideField } from '@nestjs/graphql'; @ObjectType() export class UserMinAggregate { @@ -36,7 +37,7 @@ export class UserMinAggregate { @Field(() => String, { nullable: true }) phoneNumber?: string; - @Field(() => String, { nullable: true }) + @HideField() passwordHash?: string; @Field(() => Boolean, { nullable: true }) diff --git a/server/src/core/@generated/user/user-min-order-by-aggregate.input.ts b/server/src/core/@generated/user/user-min-order-by-aggregate.input.ts index d3b9bc2fc..4fc9b1d09 100644 --- a/server/src/core/@generated/user/user-min-order-by-aggregate.input.ts +++ b/server/src/core/@generated/user/user-min-order-by-aggregate.input.ts @@ -1,6 +1,7 @@ import { Field } from '@nestjs/graphql'; import { InputType } from '@nestjs/graphql'; import { SortOrder } from '../prisma/sort-order.enum'; +import { HideField } from '@nestjs/graphql'; @InputType() export class UserMinOrderByAggregateInput { @@ -37,7 +38,7 @@ export class UserMinOrderByAggregateInput { @Field(() => SortOrder, { nullable: true }) phoneNumber?: keyof typeof SortOrder; - @Field(() => SortOrder, { nullable: true }) + @HideField() passwordHash?: keyof typeof SortOrder; @Field(() => SortOrder, { nullable: true }) diff --git a/server/src/core/@generated/user/user-order-by-with-aggregation.input.ts b/server/src/core/@generated/user/user-order-by-with-aggregation.input.ts index 5b2478751..35f2504fa 100644 --- a/server/src/core/@generated/user/user-order-by-with-aggregation.input.ts +++ b/server/src/core/@generated/user/user-order-by-with-aggregation.input.ts @@ -1,6 +1,7 @@ import { Field } from '@nestjs/graphql'; import { InputType } from '@nestjs/graphql'; import { SortOrder } from '../prisma/sort-order.enum'; +import { HideField } from '@nestjs/graphql'; import { UserCountOrderByAggregateInput } from './user-count-order-by-aggregate.input'; import { UserMaxOrderByAggregateInput } from './user-max-order-by-aggregate.input'; import { UserMinOrderByAggregateInput } from './user-min-order-by-aggregate.input'; @@ -40,7 +41,7 @@ export class UserOrderByWithAggregationInput { @Field(() => SortOrder, { nullable: true }) phoneNumber?: keyof typeof SortOrder; - @Field(() => SortOrder, { nullable: true }) + @HideField() passwordHash?: keyof typeof SortOrder; @Field(() => SortOrder, { nullable: true }) diff --git a/server/src/core/@generated/user/user-order-by-with-relation.input.ts b/server/src/core/@generated/user/user-order-by-with-relation.input.ts index c98cff704..ac2f3deef 100644 --- a/server/src/core/@generated/user/user-order-by-with-relation.input.ts +++ b/server/src/core/@generated/user/user-order-by-with-relation.input.ts @@ -1,8 +1,8 @@ import { Field } from '@nestjs/graphql'; import { InputType } from '@nestjs/graphql'; import { SortOrder } from '../prisma/sort-order.enum'; -import { WorkspaceMemberOrderByWithRelationInput } from '../workspace-member/workspace-member-order-by-with-relation.input'; import { HideField } from '@nestjs/graphql'; +import { WorkspaceMemberOrderByWithRelationInput } from '../workspace-member/workspace-member-order-by-with-relation.input'; import { CompanyOrderByRelationAggregateInput } from '../company/company-order-by-relation-aggregate.input'; import { RefreshTokenOrderByRelationAggregateInput } from '../refresh-token/refresh-token-order-by-relation-aggregate.input'; import { CommentOrderByRelationAggregateInput } from '../comment/comment-order-by-relation-aggregate.input'; @@ -42,7 +42,7 @@ export class UserOrderByWithRelationInput { @Field(() => SortOrder, { nullable: true }) phoneNumber?: keyof typeof SortOrder; - @Field(() => SortOrder, { nullable: true }) + @HideField() passwordHash?: keyof typeof SortOrder; @Field(() => SortOrder, { nullable: true }) diff --git a/server/src/core/@generated/user/user-scalar-where-with-aggregates.input.ts b/server/src/core/@generated/user/user-scalar-where-with-aggregates.input.ts index 3896aa146..f8f179b87 100644 --- a/server/src/core/@generated/user/user-scalar-where-with-aggregates.input.ts +++ b/server/src/core/@generated/user/user-scalar-where-with-aggregates.input.ts @@ -5,6 +5,7 @@ import { DateTimeWithAggregatesFilter } from '../prisma/date-time-with-aggregate import { DateTimeNullableWithAggregatesFilter } from '../prisma/date-time-nullable-with-aggregates-filter.input'; import { BoolWithAggregatesFilter } from '../prisma/bool-with-aggregates-filter.input'; import { StringNullableWithAggregatesFilter } from '../prisma/string-nullable-with-aggregates-filter.input'; +import { HideField } from '@nestjs/graphql'; import { JsonNullableWithAggregatesFilter } from '../prisma/json-nullable-with-aggregates-filter.input'; @InputType() @@ -51,7 +52,7 @@ export class UserScalarWhereWithAggregatesInput { @Field(() => StringNullableWithAggregatesFilter, { nullable: true }) phoneNumber?: StringNullableWithAggregatesFilter; - @Field(() => StringNullableWithAggregatesFilter, { nullable: true }) + @HideField() passwordHash?: StringNullableWithAggregatesFilter; @Field(() => BoolWithAggregatesFilter, { nullable: true }) diff --git a/server/src/core/@generated/user/user-unchecked-create-without-comments.input.ts b/server/src/core/@generated/user/user-unchecked-create-without-comments.input.ts index 6b0beffb2..fb9bc590d 100644 --- a/server/src/core/@generated/user/user-unchecked-create-without-comments.input.ts +++ b/server/src/core/@generated/user/user-unchecked-create-without-comments.input.ts @@ -1,15 +1,15 @@ import { Field } from '@nestjs/graphql'; import { InputType } from '@nestjs/graphql'; +import { HideField } from '@nestjs/graphql'; import { GraphQLJSON } from 'graphql-type-json'; import { WorkspaceMemberUncheckedCreateNestedOneWithoutUserInput } from '../workspace-member/workspace-member-unchecked-create-nested-one-without-user.input'; -import { HideField } from '@nestjs/graphql'; import { CompanyUncheckedCreateNestedManyWithoutAccountOwnerInput } from '../company/company-unchecked-create-nested-many-without-account-owner.input'; import { RefreshTokenUncheckedCreateNestedManyWithoutUserInput } from '../refresh-token/refresh-token-unchecked-create-nested-many-without-user.input'; @InputType() export class UserUncheckedCreateWithoutCommentsInput { - @Field(() => String, { nullable: false }) - id!: string; + @Field(() => String, { nullable: true }) + id?: string; @Field(() => Date, { nullable: true }) createdAt?: Date | string; @@ -41,7 +41,7 @@ export class UserUncheckedCreateWithoutCommentsInput { @Field(() => String, { nullable: true }) phoneNumber?: string; - @Field(() => String, { nullable: true }) + @HideField() passwordHash?: string; @Field(() => Boolean, { nullable: true }) diff --git a/server/src/core/@generated/user/user-unchecked-create-without-companies.input.ts b/server/src/core/@generated/user/user-unchecked-create-without-companies.input.ts index 073d2c0bc..585226f1d 100644 --- a/server/src/core/@generated/user/user-unchecked-create-without-companies.input.ts +++ b/server/src/core/@generated/user/user-unchecked-create-without-companies.input.ts @@ -1,15 +1,15 @@ import { Field } from '@nestjs/graphql'; import { InputType } from '@nestjs/graphql'; +import { HideField } from '@nestjs/graphql'; import { GraphQLJSON } from 'graphql-type-json'; import { WorkspaceMemberUncheckedCreateNestedOneWithoutUserInput } from '../workspace-member/workspace-member-unchecked-create-nested-one-without-user.input'; -import { HideField } from '@nestjs/graphql'; import { RefreshTokenUncheckedCreateNestedManyWithoutUserInput } from '../refresh-token/refresh-token-unchecked-create-nested-many-without-user.input'; import { CommentUncheckedCreateNestedManyWithoutAuthorInput } from '../comment/comment-unchecked-create-nested-many-without-author.input'; @InputType() export class UserUncheckedCreateWithoutCompaniesInput { - @Field(() => String, { nullable: false }) - id!: string; + @Field(() => String, { nullable: true }) + id?: string; @Field(() => Date, { nullable: true }) createdAt?: Date | string; @@ -41,7 +41,7 @@ export class UserUncheckedCreateWithoutCompaniesInput { @Field(() => String, { nullable: true }) phoneNumber?: string; - @Field(() => String, { nullable: true }) + @HideField() passwordHash?: string; @Field(() => Boolean, { nullable: true }) diff --git a/server/src/core/@generated/user/user-unchecked-create-without-refresh-tokens.input.ts b/server/src/core/@generated/user/user-unchecked-create-without-refresh-tokens.input.ts index 1eff80b8c..a1265db3a 100644 --- a/server/src/core/@generated/user/user-unchecked-create-without-refresh-tokens.input.ts +++ b/server/src/core/@generated/user/user-unchecked-create-without-refresh-tokens.input.ts @@ -1,15 +1,15 @@ import { Field } from '@nestjs/graphql'; import { InputType } from '@nestjs/graphql'; +import { HideField } from '@nestjs/graphql'; import { GraphQLJSON } from 'graphql-type-json'; import { WorkspaceMemberUncheckedCreateNestedOneWithoutUserInput } from '../workspace-member/workspace-member-unchecked-create-nested-one-without-user.input'; -import { HideField } from '@nestjs/graphql'; import { CompanyUncheckedCreateNestedManyWithoutAccountOwnerInput } from '../company/company-unchecked-create-nested-many-without-account-owner.input'; import { CommentUncheckedCreateNestedManyWithoutAuthorInput } from '../comment/comment-unchecked-create-nested-many-without-author.input'; @InputType() export class UserUncheckedCreateWithoutRefreshTokensInput { - @Field(() => String, { nullable: false }) - id!: string; + @Field(() => String, { nullable: true }) + id?: string; @Field(() => Date, { nullable: true }) createdAt?: Date | string; @@ -41,7 +41,7 @@ export class UserUncheckedCreateWithoutRefreshTokensInput { @Field(() => String, { nullable: true }) phoneNumber?: string; - @Field(() => String, { nullable: true }) + @HideField() passwordHash?: string; @Field(() => Boolean, { nullable: true }) diff --git a/server/src/core/@generated/user/user-unchecked-create-without-workspace-member.input.ts b/server/src/core/@generated/user/user-unchecked-create-without-workspace-member.input.ts index f4051cf02..345f2ded7 100644 --- a/server/src/core/@generated/user/user-unchecked-create-without-workspace-member.input.ts +++ b/server/src/core/@generated/user/user-unchecked-create-without-workspace-member.input.ts @@ -1,15 +1,15 @@ import { Field } from '@nestjs/graphql'; import { InputType } from '@nestjs/graphql'; +import { HideField } from '@nestjs/graphql'; import { GraphQLJSON } from 'graphql-type-json'; import { CompanyUncheckedCreateNestedManyWithoutAccountOwnerInput } from '../company/company-unchecked-create-nested-many-without-account-owner.input'; import { RefreshTokenUncheckedCreateNestedManyWithoutUserInput } from '../refresh-token/refresh-token-unchecked-create-nested-many-without-user.input'; -import { HideField } from '@nestjs/graphql'; import { CommentUncheckedCreateNestedManyWithoutAuthorInput } from '../comment/comment-unchecked-create-nested-many-without-author.input'; @InputType() export class UserUncheckedCreateWithoutWorkspaceMemberInput { - @Field(() => String, { nullable: false }) - id!: string; + @Field(() => String, { nullable: true }) + id?: string; @Field(() => Date, { nullable: true }) createdAt?: Date | string; @@ -41,7 +41,7 @@ export class UserUncheckedCreateWithoutWorkspaceMemberInput { @Field(() => String, { nullable: true }) phoneNumber?: string; - @Field(() => String, { nullable: true }) + @HideField() passwordHash?: string; @Field(() => Boolean, { nullable: true }) diff --git a/server/src/core/@generated/user/user-unchecked-create.input.ts b/server/src/core/@generated/user/user-unchecked-create.input.ts index e133e420d..5402354c2 100644 --- a/server/src/core/@generated/user/user-unchecked-create.input.ts +++ b/server/src/core/@generated/user/user-unchecked-create.input.ts @@ -1,16 +1,16 @@ import { Field } from '@nestjs/graphql'; import { InputType } from '@nestjs/graphql'; +import { HideField } from '@nestjs/graphql'; import { GraphQLJSON } from 'graphql-type-json'; import { WorkspaceMemberUncheckedCreateNestedOneWithoutUserInput } from '../workspace-member/workspace-member-unchecked-create-nested-one-without-user.input'; -import { HideField } from '@nestjs/graphql'; import { CompanyUncheckedCreateNestedManyWithoutAccountOwnerInput } from '../company/company-unchecked-create-nested-many-without-account-owner.input'; import { RefreshTokenUncheckedCreateNestedManyWithoutUserInput } from '../refresh-token/refresh-token-unchecked-create-nested-many-without-user.input'; import { CommentUncheckedCreateNestedManyWithoutAuthorInput } from '../comment/comment-unchecked-create-nested-many-without-author.input'; @InputType() export class UserUncheckedCreateInput { - @Field(() => String, { nullable: false }) - id!: string; + @Field(() => String, { nullable: true }) + id?: string; @Field(() => Date, { nullable: true }) createdAt?: Date | string; @@ -42,7 +42,7 @@ export class UserUncheckedCreateInput { @Field(() => String, { nullable: true }) phoneNumber?: string; - @Field(() => String, { nullable: true }) + @HideField() passwordHash?: string; @Field(() => Boolean, { nullable: true }) diff --git a/server/src/core/@generated/user/user-unchecked-update-many.input.ts b/server/src/core/@generated/user/user-unchecked-update-many.input.ts index 04abf4656..177390291 100644 --- a/server/src/core/@generated/user/user-unchecked-update-many.input.ts +++ b/server/src/core/@generated/user/user-unchecked-update-many.input.ts @@ -5,6 +5,7 @@ import { DateTimeFieldUpdateOperationsInput } from '../prisma/date-time-field-up import { NullableDateTimeFieldUpdateOperationsInput } from '../prisma/nullable-date-time-field-update-operations.input'; import { BoolFieldUpdateOperationsInput } from '../prisma/bool-field-update-operations.input'; import { NullableStringFieldUpdateOperationsInput } from '../prisma/nullable-string-field-update-operations.input'; +import { HideField } from '@nestjs/graphql'; import { GraphQLJSON } from 'graphql-type-json'; @InputType() @@ -42,7 +43,7 @@ export class UserUncheckedUpdateManyInput { @Field(() => NullableStringFieldUpdateOperationsInput, { nullable: true }) phoneNumber?: NullableStringFieldUpdateOperationsInput; - @Field(() => NullableStringFieldUpdateOperationsInput, { nullable: true }) + @HideField() passwordHash?: NullableStringFieldUpdateOperationsInput; @Field(() => BoolFieldUpdateOperationsInput, { nullable: true }) diff --git a/server/src/core/@generated/user/user-unchecked-update-without-comments.input.ts b/server/src/core/@generated/user/user-unchecked-update-without-comments.input.ts index 7b36954d5..7ced9ead4 100644 --- a/server/src/core/@generated/user/user-unchecked-update-without-comments.input.ts +++ b/server/src/core/@generated/user/user-unchecked-update-without-comments.input.ts @@ -5,9 +5,9 @@ import { DateTimeFieldUpdateOperationsInput } from '../prisma/date-time-field-up import { NullableDateTimeFieldUpdateOperationsInput } from '../prisma/nullable-date-time-field-update-operations.input'; import { BoolFieldUpdateOperationsInput } from '../prisma/bool-field-update-operations.input'; import { NullableStringFieldUpdateOperationsInput } from '../prisma/nullable-string-field-update-operations.input'; +import { HideField } from '@nestjs/graphql'; import { GraphQLJSON } from 'graphql-type-json'; import { WorkspaceMemberUncheckedUpdateOneWithoutUserNestedInput } from '../workspace-member/workspace-member-unchecked-update-one-without-user-nested.input'; -import { HideField } from '@nestjs/graphql'; import { CompanyUncheckedUpdateManyWithoutAccountOwnerNestedInput } from '../company/company-unchecked-update-many-without-account-owner-nested.input'; import { RefreshTokenUncheckedUpdateManyWithoutUserNestedInput } from '../refresh-token/refresh-token-unchecked-update-many-without-user-nested.input'; @@ -46,7 +46,7 @@ export class UserUncheckedUpdateWithoutCommentsInput { @Field(() => NullableStringFieldUpdateOperationsInput, { nullable: true }) phoneNumber?: NullableStringFieldUpdateOperationsInput; - @Field(() => NullableStringFieldUpdateOperationsInput, { nullable: true }) + @HideField() passwordHash?: NullableStringFieldUpdateOperationsInput; @Field(() => BoolFieldUpdateOperationsInput, { nullable: true }) diff --git a/server/src/core/@generated/user/user-unchecked-update-without-companies.input.ts b/server/src/core/@generated/user/user-unchecked-update-without-companies.input.ts index 81ace32fa..4a41eddea 100644 --- a/server/src/core/@generated/user/user-unchecked-update-without-companies.input.ts +++ b/server/src/core/@generated/user/user-unchecked-update-without-companies.input.ts @@ -5,9 +5,9 @@ import { DateTimeFieldUpdateOperationsInput } from '../prisma/date-time-field-up import { NullableDateTimeFieldUpdateOperationsInput } from '../prisma/nullable-date-time-field-update-operations.input'; import { BoolFieldUpdateOperationsInput } from '../prisma/bool-field-update-operations.input'; import { NullableStringFieldUpdateOperationsInput } from '../prisma/nullable-string-field-update-operations.input'; +import { HideField } from '@nestjs/graphql'; import { GraphQLJSON } from 'graphql-type-json'; import { WorkspaceMemberUncheckedUpdateOneWithoutUserNestedInput } from '../workspace-member/workspace-member-unchecked-update-one-without-user-nested.input'; -import { HideField } from '@nestjs/graphql'; import { RefreshTokenUncheckedUpdateManyWithoutUserNestedInput } from '../refresh-token/refresh-token-unchecked-update-many-without-user-nested.input'; import { CommentUncheckedUpdateManyWithoutAuthorNestedInput } from '../comment/comment-unchecked-update-many-without-author-nested.input'; @@ -46,7 +46,7 @@ export class UserUncheckedUpdateWithoutCompaniesInput { @Field(() => NullableStringFieldUpdateOperationsInput, { nullable: true }) phoneNumber?: NullableStringFieldUpdateOperationsInput; - @Field(() => NullableStringFieldUpdateOperationsInput, { nullable: true }) + @HideField() passwordHash?: NullableStringFieldUpdateOperationsInput; @Field(() => BoolFieldUpdateOperationsInput, { nullable: true }) diff --git a/server/src/core/@generated/user/user-unchecked-update-without-refresh-tokens.input.ts b/server/src/core/@generated/user/user-unchecked-update-without-refresh-tokens.input.ts index 321fc24de..a675f7e82 100644 --- a/server/src/core/@generated/user/user-unchecked-update-without-refresh-tokens.input.ts +++ b/server/src/core/@generated/user/user-unchecked-update-without-refresh-tokens.input.ts @@ -5,9 +5,9 @@ import { DateTimeFieldUpdateOperationsInput } from '../prisma/date-time-field-up import { NullableDateTimeFieldUpdateOperationsInput } from '../prisma/nullable-date-time-field-update-operations.input'; import { BoolFieldUpdateOperationsInput } from '../prisma/bool-field-update-operations.input'; import { NullableStringFieldUpdateOperationsInput } from '../prisma/nullable-string-field-update-operations.input'; +import { HideField } from '@nestjs/graphql'; import { GraphQLJSON } from 'graphql-type-json'; import { WorkspaceMemberUncheckedUpdateOneWithoutUserNestedInput } from '../workspace-member/workspace-member-unchecked-update-one-without-user-nested.input'; -import { HideField } from '@nestjs/graphql'; import { CompanyUncheckedUpdateManyWithoutAccountOwnerNestedInput } from '../company/company-unchecked-update-many-without-account-owner-nested.input'; import { CommentUncheckedUpdateManyWithoutAuthorNestedInput } from '../comment/comment-unchecked-update-many-without-author-nested.input'; @@ -46,7 +46,7 @@ export class UserUncheckedUpdateWithoutRefreshTokensInput { @Field(() => NullableStringFieldUpdateOperationsInput, { nullable: true }) phoneNumber?: NullableStringFieldUpdateOperationsInput; - @Field(() => NullableStringFieldUpdateOperationsInput, { nullable: true }) + @HideField() passwordHash?: NullableStringFieldUpdateOperationsInput; @Field(() => BoolFieldUpdateOperationsInput, { nullable: true }) diff --git a/server/src/core/@generated/user/user-unchecked-update-without-workspace-member.input.ts b/server/src/core/@generated/user/user-unchecked-update-without-workspace-member.input.ts index 09d68471b..ae8d0830f 100644 --- a/server/src/core/@generated/user/user-unchecked-update-without-workspace-member.input.ts +++ b/server/src/core/@generated/user/user-unchecked-update-without-workspace-member.input.ts @@ -5,10 +5,10 @@ import { DateTimeFieldUpdateOperationsInput } from '../prisma/date-time-field-up import { NullableDateTimeFieldUpdateOperationsInput } from '../prisma/nullable-date-time-field-update-operations.input'; import { BoolFieldUpdateOperationsInput } from '../prisma/bool-field-update-operations.input'; import { NullableStringFieldUpdateOperationsInput } from '../prisma/nullable-string-field-update-operations.input'; +import { HideField } from '@nestjs/graphql'; import { GraphQLJSON } from 'graphql-type-json'; import { CompanyUncheckedUpdateManyWithoutAccountOwnerNestedInput } from '../company/company-unchecked-update-many-without-account-owner-nested.input'; import { RefreshTokenUncheckedUpdateManyWithoutUserNestedInput } from '../refresh-token/refresh-token-unchecked-update-many-without-user-nested.input'; -import { HideField } from '@nestjs/graphql'; import { CommentUncheckedUpdateManyWithoutAuthorNestedInput } from '../comment/comment-unchecked-update-many-without-author-nested.input'; @InputType() @@ -46,7 +46,7 @@ export class UserUncheckedUpdateWithoutWorkspaceMemberInput { @Field(() => NullableStringFieldUpdateOperationsInput, { nullable: true }) phoneNumber?: NullableStringFieldUpdateOperationsInput; - @Field(() => NullableStringFieldUpdateOperationsInput, { nullable: true }) + @HideField() passwordHash?: NullableStringFieldUpdateOperationsInput; @Field(() => BoolFieldUpdateOperationsInput, { nullable: true }) diff --git a/server/src/core/@generated/user/user-unchecked-update.input.ts b/server/src/core/@generated/user/user-unchecked-update.input.ts index 032b603e8..4fcbd6f0d 100644 --- a/server/src/core/@generated/user/user-unchecked-update.input.ts +++ b/server/src/core/@generated/user/user-unchecked-update.input.ts @@ -5,9 +5,9 @@ import { DateTimeFieldUpdateOperationsInput } from '../prisma/date-time-field-up import { NullableDateTimeFieldUpdateOperationsInput } from '../prisma/nullable-date-time-field-update-operations.input'; import { BoolFieldUpdateOperationsInput } from '../prisma/bool-field-update-operations.input'; import { NullableStringFieldUpdateOperationsInput } from '../prisma/nullable-string-field-update-operations.input'; +import { HideField } from '@nestjs/graphql'; import { GraphQLJSON } from 'graphql-type-json'; import { WorkspaceMemberUncheckedUpdateOneWithoutUserNestedInput } from '../workspace-member/workspace-member-unchecked-update-one-without-user-nested.input'; -import { HideField } from '@nestjs/graphql'; import { CompanyUncheckedUpdateManyWithoutAccountOwnerNestedInput } from '../company/company-unchecked-update-many-without-account-owner-nested.input'; import { RefreshTokenUncheckedUpdateManyWithoutUserNestedInput } from '../refresh-token/refresh-token-unchecked-update-many-without-user-nested.input'; import { CommentUncheckedUpdateManyWithoutAuthorNestedInput } from '../comment/comment-unchecked-update-many-without-author-nested.input'; @@ -47,7 +47,7 @@ export class UserUncheckedUpdateInput { @Field(() => NullableStringFieldUpdateOperationsInput, { nullable: true }) phoneNumber?: NullableStringFieldUpdateOperationsInput; - @Field(() => NullableStringFieldUpdateOperationsInput, { nullable: true }) + @HideField() passwordHash?: NullableStringFieldUpdateOperationsInput; @Field(() => BoolFieldUpdateOperationsInput, { nullable: true }) diff --git a/server/src/core/@generated/user/user-update-many-mutation.input.ts b/server/src/core/@generated/user/user-update-many-mutation.input.ts index f6f445acf..67bf56205 100644 --- a/server/src/core/@generated/user/user-update-many-mutation.input.ts +++ b/server/src/core/@generated/user/user-update-many-mutation.input.ts @@ -5,6 +5,7 @@ import { DateTimeFieldUpdateOperationsInput } from '../prisma/date-time-field-up import { NullableDateTimeFieldUpdateOperationsInput } from '../prisma/nullable-date-time-field-update-operations.input'; import { BoolFieldUpdateOperationsInput } from '../prisma/bool-field-update-operations.input'; import { NullableStringFieldUpdateOperationsInput } from '../prisma/nullable-string-field-update-operations.input'; +import { HideField } from '@nestjs/graphql'; import { GraphQLJSON } from 'graphql-type-json'; @InputType() @@ -42,7 +43,7 @@ export class UserUpdateManyMutationInput { @Field(() => NullableStringFieldUpdateOperationsInput, { nullable: true }) phoneNumber?: NullableStringFieldUpdateOperationsInput; - @Field(() => NullableStringFieldUpdateOperationsInput, { nullable: true }) + @HideField() passwordHash?: NullableStringFieldUpdateOperationsInput; @Field(() => BoolFieldUpdateOperationsInput, { nullable: true }) diff --git a/server/src/core/@generated/user/user-update-without-comments.input.ts b/server/src/core/@generated/user/user-update-without-comments.input.ts index 254e42f07..75068941c 100644 --- a/server/src/core/@generated/user/user-update-without-comments.input.ts +++ b/server/src/core/@generated/user/user-update-without-comments.input.ts @@ -5,9 +5,9 @@ import { DateTimeFieldUpdateOperationsInput } from '../prisma/date-time-field-up import { NullableDateTimeFieldUpdateOperationsInput } from '../prisma/nullable-date-time-field-update-operations.input'; import { BoolFieldUpdateOperationsInput } from '../prisma/bool-field-update-operations.input'; import { NullableStringFieldUpdateOperationsInput } from '../prisma/nullable-string-field-update-operations.input'; +import { HideField } from '@nestjs/graphql'; import { GraphQLJSON } from 'graphql-type-json'; import { WorkspaceMemberUpdateOneWithoutUserNestedInput } from '../workspace-member/workspace-member-update-one-without-user-nested.input'; -import { HideField } from '@nestjs/graphql'; import { CompanyUpdateManyWithoutAccountOwnerNestedInput } from '../company/company-update-many-without-account-owner-nested.input'; import { RefreshTokenUpdateManyWithoutUserNestedInput } from '../refresh-token/refresh-token-update-many-without-user-nested.input'; @@ -46,7 +46,7 @@ export class UserUpdateWithoutCommentsInput { @Field(() => NullableStringFieldUpdateOperationsInput, { nullable: true }) phoneNumber?: NullableStringFieldUpdateOperationsInput; - @Field(() => NullableStringFieldUpdateOperationsInput, { nullable: true }) + @HideField() passwordHash?: NullableStringFieldUpdateOperationsInput; @Field(() => BoolFieldUpdateOperationsInput, { nullable: true }) diff --git a/server/src/core/@generated/user/user-update-without-companies.input.ts b/server/src/core/@generated/user/user-update-without-companies.input.ts index 474bdf650..2671e44e4 100644 --- a/server/src/core/@generated/user/user-update-without-companies.input.ts +++ b/server/src/core/@generated/user/user-update-without-companies.input.ts @@ -5,9 +5,9 @@ import { DateTimeFieldUpdateOperationsInput } from '../prisma/date-time-field-up import { NullableDateTimeFieldUpdateOperationsInput } from '../prisma/nullable-date-time-field-update-operations.input'; import { BoolFieldUpdateOperationsInput } from '../prisma/bool-field-update-operations.input'; import { NullableStringFieldUpdateOperationsInput } from '../prisma/nullable-string-field-update-operations.input'; +import { HideField } from '@nestjs/graphql'; import { GraphQLJSON } from 'graphql-type-json'; import { WorkspaceMemberUpdateOneWithoutUserNestedInput } from '../workspace-member/workspace-member-update-one-without-user-nested.input'; -import { HideField } from '@nestjs/graphql'; import { RefreshTokenUpdateManyWithoutUserNestedInput } from '../refresh-token/refresh-token-update-many-without-user-nested.input'; import { CommentUpdateManyWithoutAuthorNestedInput } from '../comment/comment-update-many-without-author-nested.input'; @@ -46,7 +46,7 @@ export class UserUpdateWithoutCompaniesInput { @Field(() => NullableStringFieldUpdateOperationsInput, { nullable: true }) phoneNumber?: NullableStringFieldUpdateOperationsInput; - @Field(() => NullableStringFieldUpdateOperationsInput, { nullable: true }) + @HideField() passwordHash?: NullableStringFieldUpdateOperationsInput; @Field(() => BoolFieldUpdateOperationsInput, { nullable: true }) diff --git a/server/src/core/@generated/user/user-update-without-refresh-tokens.input.ts b/server/src/core/@generated/user/user-update-without-refresh-tokens.input.ts index 87937b3f8..356ee174a 100644 --- a/server/src/core/@generated/user/user-update-without-refresh-tokens.input.ts +++ b/server/src/core/@generated/user/user-update-without-refresh-tokens.input.ts @@ -5,9 +5,9 @@ import { DateTimeFieldUpdateOperationsInput } from '../prisma/date-time-field-up import { NullableDateTimeFieldUpdateOperationsInput } from '../prisma/nullable-date-time-field-update-operations.input'; import { BoolFieldUpdateOperationsInput } from '../prisma/bool-field-update-operations.input'; import { NullableStringFieldUpdateOperationsInput } from '../prisma/nullable-string-field-update-operations.input'; +import { HideField } from '@nestjs/graphql'; import { GraphQLJSON } from 'graphql-type-json'; import { WorkspaceMemberUpdateOneWithoutUserNestedInput } from '../workspace-member/workspace-member-update-one-without-user-nested.input'; -import { HideField } from '@nestjs/graphql'; import { CompanyUpdateManyWithoutAccountOwnerNestedInput } from '../company/company-update-many-without-account-owner-nested.input'; import { CommentUpdateManyWithoutAuthorNestedInput } from '../comment/comment-update-many-without-author-nested.input'; @@ -46,7 +46,7 @@ export class UserUpdateWithoutRefreshTokensInput { @Field(() => NullableStringFieldUpdateOperationsInput, { nullable: true }) phoneNumber?: NullableStringFieldUpdateOperationsInput; - @Field(() => NullableStringFieldUpdateOperationsInput, { nullable: true }) + @HideField() passwordHash?: NullableStringFieldUpdateOperationsInput; @Field(() => BoolFieldUpdateOperationsInput, { nullable: true }) diff --git a/server/src/core/@generated/user/user-update-without-workspace-member.input.ts b/server/src/core/@generated/user/user-update-without-workspace-member.input.ts index 471a917df..87ccb8df6 100644 --- a/server/src/core/@generated/user/user-update-without-workspace-member.input.ts +++ b/server/src/core/@generated/user/user-update-without-workspace-member.input.ts @@ -5,10 +5,10 @@ import { DateTimeFieldUpdateOperationsInput } from '../prisma/date-time-field-up import { NullableDateTimeFieldUpdateOperationsInput } from '../prisma/nullable-date-time-field-update-operations.input'; import { BoolFieldUpdateOperationsInput } from '../prisma/bool-field-update-operations.input'; import { NullableStringFieldUpdateOperationsInput } from '../prisma/nullable-string-field-update-operations.input'; +import { HideField } from '@nestjs/graphql'; import { GraphQLJSON } from 'graphql-type-json'; import { CompanyUpdateManyWithoutAccountOwnerNestedInput } from '../company/company-update-many-without-account-owner-nested.input'; import { RefreshTokenUpdateManyWithoutUserNestedInput } from '../refresh-token/refresh-token-update-many-without-user-nested.input'; -import { HideField } from '@nestjs/graphql'; import { CommentUpdateManyWithoutAuthorNestedInput } from '../comment/comment-update-many-without-author-nested.input'; @InputType() @@ -46,7 +46,7 @@ export class UserUpdateWithoutWorkspaceMemberInput { @Field(() => NullableStringFieldUpdateOperationsInput, { nullable: true }) phoneNumber?: NullableStringFieldUpdateOperationsInput; - @Field(() => NullableStringFieldUpdateOperationsInput, { nullable: true }) + @HideField() passwordHash?: NullableStringFieldUpdateOperationsInput; @Field(() => BoolFieldUpdateOperationsInput, { nullable: true }) diff --git a/server/src/core/@generated/user/user-update.input.ts b/server/src/core/@generated/user/user-update.input.ts index 6766227cd..1cefe865b 100644 --- a/server/src/core/@generated/user/user-update.input.ts +++ b/server/src/core/@generated/user/user-update.input.ts @@ -5,9 +5,9 @@ import { DateTimeFieldUpdateOperationsInput } from '../prisma/date-time-field-up import { NullableDateTimeFieldUpdateOperationsInput } from '../prisma/nullable-date-time-field-update-operations.input'; import { BoolFieldUpdateOperationsInput } from '../prisma/bool-field-update-operations.input'; import { NullableStringFieldUpdateOperationsInput } from '../prisma/nullable-string-field-update-operations.input'; +import { HideField } from '@nestjs/graphql'; import { GraphQLJSON } from 'graphql-type-json'; import { WorkspaceMemberUpdateOneWithoutUserNestedInput } from '../workspace-member/workspace-member-update-one-without-user-nested.input'; -import { HideField } from '@nestjs/graphql'; import { CompanyUpdateManyWithoutAccountOwnerNestedInput } from '../company/company-update-many-without-account-owner-nested.input'; import { RefreshTokenUpdateManyWithoutUserNestedInput } from '../refresh-token/refresh-token-update-many-without-user-nested.input'; import { CommentUpdateManyWithoutAuthorNestedInput } from '../comment/comment-update-many-without-author-nested.input'; @@ -47,7 +47,7 @@ export class UserUpdateInput { @Field(() => NullableStringFieldUpdateOperationsInput, { nullable: true }) phoneNumber?: NullableStringFieldUpdateOperationsInput; - @Field(() => NullableStringFieldUpdateOperationsInput, { nullable: true }) + @HideField() passwordHash?: NullableStringFieldUpdateOperationsInput; @Field(() => BoolFieldUpdateOperationsInput, { nullable: true }) diff --git a/server/src/core/@generated/user/user-where.input.ts b/server/src/core/@generated/user/user-where.input.ts index 9c4d84a94..13c693d0e 100644 --- a/server/src/core/@generated/user/user-where.input.ts +++ b/server/src/core/@generated/user/user-where.input.ts @@ -5,9 +5,9 @@ import { DateTimeFilter } from '../prisma/date-time-filter.input'; import { DateTimeNullableFilter } from '../prisma/date-time-nullable-filter.input'; import { BoolFilter } from '../prisma/bool-filter.input'; import { StringNullableFilter } from '../prisma/string-nullable-filter.input'; +import { HideField } from '@nestjs/graphql'; import { JsonNullableFilter } from '../prisma/json-nullable-filter.input'; import { WorkspaceMemberRelationFilter } from '../workspace-member/workspace-member-relation-filter.input'; -import { HideField } from '@nestjs/graphql'; import { CompanyListRelationFilter } from '../company/company-list-relation-filter.input'; import { RefreshTokenListRelationFilter } from '../refresh-token/refresh-token-list-relation-filter.input'; import { CommentListRelationFilter } from '../comment/comment-list-relation-filter.input'; @@ -56,7 +56,7 @@ export class UserWhereInput { @Field(() => StringNullableFilter, { nullable: true }) phoneNumber?: StringNullableFilter; - @Field(() => StringNullableFilter, { nullable: true }) + @HideField() passwordHash?: StringNullableFilter; @Field(() => BoolFilter, { nullable: true }) diff --git a/server/src/core/@generated/user/user.model.ts b/server/src/core/@generated/user/user.model.ts index f48730ea1..176ab46c5 100644 --- a/server/src/core/@generated/user/user.model.ts +++ b/server/src/core/@generated/user/user.model.ts @@ -1,11 +1,11 @@ import { Field } from '@nestjs/graphql'; import { ObjectType } from '@nestjs/graphql'; import { ID } from '@nestjs/graphql'; +import { HideField } from '@nestjs/graphql'; import { GraphQLJSON } from 'graphql-type-json'; import { WorkspaceMember } from '../workspace-member/workspace-member.model'; import { Company } from '../company/company.model'; import { RefreshToken } from '../refresh-token/refresh-token.model'; -import { HideField } from '@nestjs/graphql'; import { Comment } from '../comment/comment.model'; import { UserCount } from './user-count.output'; @@ -44,7 +44,7 @@ export class User { @Field(() => String, { nullable: true }) phoneNumber!: string | null; - @Field(() => String, { nullable: true }) + @HideField() passwordHash!: string | null; @Field(() => Boolean, { nullable: false, defaultValue: false }) diff --git a/server/src/core/@generated/workspace-member/workspace-member-create-many-workspace.input.ts b/server/src/core/@generated/workspace-member/workspace-member-create-many-workspace.input.ts index f1a07b295..cc0cb949e 100644 --- a/server/src/core/@generated/workspace-member/workspace-member-create-many-workspace.input.ts +++ b/server/src/core/@generated/workspace-member/workspace-member-create-many-workspace.input.ts @@ -3,8 +3,8 @@ import { InputType } from '@nestjs/graphql'; @InputType() export class WorkspaceMemberCreateManyWorkspaceInput { - @Field(() => String, { nullable: false }) - id!: string; + @Field(() => String, { nullable: true }) + id?: string; @Field(() => Date, { nullable: true }) createdAt?: Date | string; diff --git a/server/src/core/@generated/workspace-member/workspace-member-create-many.input.ts b/server/src/core/@generated/workspace-member/workspace-member-create-many.input.ts index 3c7aa2e98..8b73d13bb 100644 --- a/server/src/core/@generated/workspace-member/workspace-member-create-many.input.ts +++ b/server/src/core/@generated/workspace-member/workspace-member-create-many.input.ts @@ -4,8 +4,8 @@ import { HideField } from '@nestjs/graphql'; @InputType() export class WorkspaceMemberCreateManyInput { - @Field(() => String, { nullable: false }) - id!: string; + @Field(() => String, { nullable: true }) + id?: string; @Field(() => Date, { nullable: true }) createdAt?: Date | string; diff --git a/server/src/core/@generated/workspace-member/workspace-member-create-without-user.input.ts b/server/src/core/@generated/workspace-member/workspace-member-create-without-user.input.ts index 9ff23d08b..084a53920 100644 --- a/server/src/core/@generated/workspace-member/workspace-member-create-without-user.input.ts +++ b/server/src/core/@generated/workspace-member/workspace-member-create-without-user.input.ts @@ -5,8 +5,8 @@ import { HideField } from '@nestjs/graphql'; @InputType() export class WorkspaceMemberCreateWithoutUserInput { - @Field(() => String, { nullable: false }) - id!: string; + @Field(() => String, { nullable: true }) + id?: string; @Field(() => Date, { nullable: true }) createdAt?: Date | string; diff --git a/server/src/core/@generated/workspace-member/workspace-member-create-without-workspace.input.ts b/server/src/core/@generated/workspace-member/workspace-member-create-without-workspace.input.ts index 2ebfbf280..8f1af26d1 100644 --- a/server/src/core/@generated/workspace-member/workspace-member-create-without-workspace.input.ts +++ b/server/src/core/@generated/workspace-member/workspace-member-create-without-workspace.input.ts @@ -4,8 +4,8 @@ import { UserCreateNestedOneWithoutWorkspaceMemberInput } from '../user/user-cre @InputType() export class WorkspaceMemberCreateWithoutWorkspaceInput { - @Field(() => String, { nullable: false }) - id!: string; + @Field(() => String, { nullable: true }) + id?: string; @Field(() => Date, { nullable: true }) createdAt?: Date | string; diff --git a/server/src/core/@generated/workspace-member/workspace-member-create.input.ts b/server/src/core/@generated/workspace-member/workspace-member-create.input.ts index 5bff173c3..0f5a4a280 100644 --- a/server/src/core/@generated/workspace-member/workspace-member-create.input.ts +++ b/server/src/core/@generated/workspace-member/workspace-member-create.input.ts @@ -6,8 +6,8 @@ import { HideField } from '@nestjs/graphql'; @InputType() export class WorkspaceMemberCreateInput { - @Field(() => String, { nullable: false }) - id!: string; + @Field(() => String, { nullable: true }) + id?: string; @Field(() => Date, { nullable: true }) createdAt?: Date | string; diff --git a/server/src/core/@generated/workspace-member/workspace-member-unchecked-create-without-user.input.ts b/server/src/core/@generated/workspace-member/workspace-member-unchecked-create-without-user.input.ts index 7cd761b73..ff53f9b4c 100644 --- a/server/src/core/@generated/workspace-member/workspace-member-unchecked-create-without-user.input.ts +++ b/server/src/core/@generated/workspace-member/workspace-member-unchecked-create-without-user.input.ts @@ -4,8 +4,8 @@ import { HideField } from '@nestjs/graphql'; @InputType() export class WorkspaceMemberUncheckedCreateWithoutUserInput { - @Field(() => String, { nullable: false }) - id!: string; + @Field(() => String, { nullable: true }) + id?: string; @Field(() => Date, { nullable: true }) createdAt?: Date | string; diff --git a/server/src/core/@generated/workspace-member/workspace-member-unchecked-create-without-workspace.input.ts b/server/src/core/@generated/workspace-member/workspace-member-unchecked-create-without-workspace.input.ts index 7b5a049d9..e15502e17 100644 --- a/server/src/core/@generated/workspace-member/workspace-member-unchecked-create-without-workspace.input.ts +++ b/server/src/core/@generated/workspace-member/workspace-member-unchecked-create-without-workspace.input.ts @@ -3,8 +3,8 @@ import { InputType } from '@nestjs/graphql'; @InputType() export class WorkspaceMemberUncheckedCreateWithoutWorkspaceInput { - @Field(() => String, { nullable: false }) - id!: string; + @Field(() => String, { nullable: true }) + id?: string; @Field(() => Date, { nullable: true }) createdAt?: Date | string; diff --git a/server/src/core/@generated/workspace-member/workspace-member-unchecked-create.input.ts b/server/src/core/@generated/workspace-member/workspace-member-unchecked-create.input.ts index 2eac82334..99e487a97 100644 --- a/server/src/core/@generated/workspace-member/workspace-member-unchecked-create.input.ts +++ b/server/src/core/@generated/workspace-member/workspace-member-unchecked-create.input.ts @@ -4,8 +4,8 @@ import { HideField } from '@nestjs/graphql'; @InputType() export class WorkspaceMemberUncheckedCreateInput { - @Field(() => String, { nullable: false }) - id!: string; + @Field(() => String, { nullable: true }) + id?: string; @Field(() => Date, { nullable: true }) createdAt?: Date | string; diff --git a/server/src/core/@generated/workspace/workspace-create-many.input.ts b/server/src/core/@generated/workspace/workspace-create-many.input.ts index fffb1b572..e450cd27d 100644 --- a/server/src/core/@generated/workspace/workspace-create-many.input.ts +++ b/server/src/core/@generated/workspace/workspace-create-many.input.ts @@ -3,8 +3,8 @@ import { InputType } from '@nestjs/graphql'; @InputType() export class WorkspaceCreateManyInput { - @Field(() => String, { nullable: false }) - id!: string; + @Field(() => String, { nullable: true }) + id?: string; @Field(() => Date, { nullable: true }) createdAt?: Date | string; diff --git a/server/src/core/@generated/workspace/workspace-create-without-comment-threads.input.ts b/server/src/core/@generated/workspace/workspace-create-without-comment-threads.input.ts index d085b3424..b0f7b2c79 100644 --- a/server/src/core/@generated/workspace/workspace-create-without-comment-threads.input.ts +++ b/server/src/core/@generated/workspace/workspace-create-without-comment-threads.input.ts @@ -10,8 +10,8 @@ import { PipelineProgressCreateNestedManyWithoutWorkspaceInput } from '../pipeli @InputType() export class WorkspaceCreateWithoutCommentThreadsInput { - @Field(() => String, { nullable: false }) - id!: string; + @Field(() => String, { nullable: true }) + id?: string; @Field(() => Date, { nullable: true }) createdAt?: Date | string; diff --git a/server/src/core/@generated/workspace/workspace-create-without-comments.input.ts b/server/src/core/@generated/workspace/workspace-create-without-comments.input.ts index ed42c4744..873add061 100644 --- a/server/src/core/@generated/workspace/workspace-create-without-comments.input.ts +++ b/server/src/core/@generated/workspace/workspace-create-without-comments.input.ts @@ -10,8 +10,8 @@ import { PipelineProgressCreateNestedManyWithoutWorkspaceInput } from '../pipeli @InputType() export class WorkspaceCreateWithoutCommentsInput { - @Field(() => String, { nullable: false }) - id!: string; + @Field(() => String, { nullable: true }) + id?: string; @Field(() => Date, { nullable: true }) createdAt?: Date | string; diff --git a/server/src/core/@generated/workspace/workspace-create-without-companies.input.ts b/server/src/core/@generated/workspace/workspace-create-without-companies.input.ts index 5331f13e6..90eb194d3 100644 --- a/server/src/core/@generated/workspace/workspace-create-without-companies.input.ts +++ b/server/src/core/@generated/workspace/workspace-create-without-companies.input.ts @@ -10,8 +10,8 @@ import { PipelineProgressCreateNestedManyWithoutWorkspaceInput } from '../pipeli @InputType() export class WorkspaceCreateWithoutCompaniesInput { - @Field(() => String, { nullable: false }) - id!: string; + @Field(() => String, { nullable: true }) + id?: string; @Field(() => Date, { nullable: true }) createdAt?: Date | string; diff --git a/server/src/core/@generated/workspace/workspace-create-without-people.input.ts b/server/src/core/@generated/workspace/workspace-create-without-people.input.ts index 8318ae023..6e068f9f2 100644 --- a/server/src/core/@generated/workspace/workspace-create-without-people.input.ts +++ b/server/src/core/@generated/workspace/workspace-create-without-people.input.ts @@ -10,8 +10,8 @@ import { PipelineProgressCreateNestedManyWithoutWorkspaceInput } from '../pipeli @InputType() export class WorkspaceCreateWithoutPeopleInput { - @Field(() => String, { nullable: false }) - id!: string; + @Field(() => String, { nullable: true }) + id?: string; @Field(() => Date, { nullable: true }) createdAt?: Date | string; diff --git a/server/src/core/@generated/workspace/workspace-create-without-pipeline-progresses.input.ts b/server/src/core/@generated/workspace/workspace-create-without-pipeline-progresses.input.ts index ca6c2e2ba..345b65505 100644 --- a/server/src/core/@generated/workspace/workspace-create-without-pipeline-progresses.input.ts +++ b/server/src/core/@generated/workspace/workspace-create-without-pipeline-progresses.input.ts @@ -10,8 +10,8 @@ import { PipelineStageCreateNestedManyWithoutWorkspaceInput } from '../pipeline- @InputType() export class WorkspaceCreateWithoutPipelineProgressesInput { - @Field(() => String, { nullable: false }) - id!: string; + @Field(() => String, { nullable: true }) + id?: string; @Field(() => Date, { nullable: true }) createdAt?: Date | string; diff --git a/server/src/core/@generated/workspace/workspace-create-without-pipeline-stages.input.ts b/server/src/core/@generated/workspace/workspace-create-without-pipeline-stages.input.ts index 6f3e63153..fe20ae75b 100644 --- a/server/src/core/@generated/workspace/workspace-create-without-pipeline-stages.input.ts +++ b/server/src/core/@generated/workspace/workspace-create-without-pipeline-stages.input.ts @@ -10,8 +10,8 @@ import { PipelineProgressCreateNestedManyWithoutWorkspaceInput } from '../pipeli @InputType() export class WorkspaceCreateWithoutPipelineStagesInput { - @Field(() => String, { nullable: false }) - id!: string; + @Field(() => String, { nullable: true }) + id?: string; @Field(() => Date, { nullable: true }) createdAt?: Date | string; diff --git a/server/src/core/@generated/workspace/workspace-create-without-pipelines.input.ts b/server/src/core/@generated/workspace/workspace-create-without-pipelines.input.ts index 0881a60de..28ce98f81 100644 --- a/server/src/core/@generated/workspace/workspace-create-without-pipelines.input.ts +++ b/server/src/core/@generated/workspace/workspace-create-without-pipelines.input.ts @@ -10,8 +10,8 @@ import { PipelineProgressCreateNestedManyWithoutWorkspaceInput } from '../pipeli @InputType() export class WorkspaceCreateWithoutPipelinesInput { - @Field(() => String, { nullable: false }) - id!: string; + @Field(() => String, { nullable: true }) + id?: string; @Field(() => Date, { nullable: true }) createdAt?: Date | string; diff --git a/server/src/core/@generated/workspace/workspace-create-without-workspace-member.input.ts b/server/src/core/@generated/workspace/workspace-create-without-workspace-member.input.ts index 77a4915d7..c2d3958b6 100644 --- a/server/src/core/@generated/workspace/workspace-create-without-workspace-member.input.ts +++ b/server/src/core/@generated/workspace/workspace-create-without-workspace-member.input.ts @@ -10,8 +10,8 @@ import { PipelineProgressCreateNestedManyWithoutWorkspaceInput } from '../pipeli @InputType() export class WorkspaceCreateWithoutWorkspaceMemberInput { - @Field(() => String, { nullable: false }) - id!: string; + @Field(() => String, { nullable: true }) + id?: string; @Field(() => Date, { nullable: true }) createdAt?: Date | string; diff --git a/server/src/core/@generated/workspace/workspace-create.input.ts b/server/src/core/@generated/workspace/workspace-create.input.ts index 3239759c0..a09ab27b2 100644 --- a/server/src/core/@generated/workspace/workspace-create.input.ts +++ b/server/src/core/@generated/workspace/workspace-create.input.ts @@ -11,8 +11,8 @@ import { PipelineProgressCreateNestedManyWithoutWorkspaceInput } from '../pipeli @InputType() export class WorkspaceCreateInput { - @Field(() => String, { nullable: false }) - id!: string; + @Field(() => String, { nullable: true }) + id?: string; @Field(() => Date, { nullable: true }) createdAt?: Date | string; diff --git a/server/src/core/@generated/workspace/workspace-unchecked-create-without-comment-threads.input.ts b/server/src/core/@generated/workspace/workspace-unchecked-create-without-comment-threads.input.ts index a0cedbcd8..361cf95cd 100644 --- a/server/src/core/@generated/workspace/workspace-unchecked-create-without-comment-threads.input.ts +++ b/server/src/core/@generated/workspace/workspace-unchecked-create-without-comment-threads.input.ts @@ -10,8 +10,8 @@ import { PipelineProgressUncheckedCreateNestedManyWithoutWorkspaceInput } from ' @InputType() export class WorkspaceUncheckedCreateWithoutCommentThreadsInput { - @Field(() => String, { nullable: false }) - id!: string; + @Field(() => String, { nullable: true }) + id?: string; @Field(() => Date, { nullable: true }) createdAt?: Date | string; diff --git a/server/src/core/@generated/workspace/workspace-unchecked-create-without-comments.input.ts b/server/src/core/@generated/workspace/workspace-unchecked-create-without-comments.input.ts index 15ec481a3..f09a8a39c 100644 --- a/server/src/core/@generated/workspace/workspace-unchecked-create-without-comments.input.ts +++ b/server/src/core/@generated/workspace/workspace-unchecked-create-without-comments.input.ts @@ -10,8 +10,8 @@ import { PipelineProgressUncheckedCreateNestedManyWithoutWorkspaceInput } from ' @InputType() export class WorkspaceUncheckedCreateWithoutCommentsInput { - @Field(() => String, { nullable: false }) - id!: string; + @Field(() => String, { nullable: true }) + id?: string; @Field(() => Date, { nullable: true }) createdAt?: Date | string; diff --git a/server/src/core/@generated/workspace/workspace-unchecked-create-without-companies.input.ts b/server/src/core/@generated/workspace/workspace-unchecked-create-without-companies.input.ts index 57797c602..4bddbc12b 100644 --- a/server/src/core/@generated/workspace/workspace-unchecked-create-without-companies.input.ts +++ b/server/src/core/@generated/workspace/workspace-unchecked-create-without-companies.input.ts @@ -10,8 +10,8 @@ import { PipelineProgressUncheckedCreateNestedManyWithoutWorkspaceInput } from ' @InputType() export class WorkspaceUncheckedCreateWithoutCompaniesInput { - @Field(() => String, { nullable: false }) - id!: string; + @Field(() => String, { nullable: true }) + id?: string; @Field(() => Date, { nullable: true }) createdAt?: Date | string; diff --git a/server/src/core/@generated/workspace/workspace-unchecked-create-without-people.input.ts b/server/src/core/@generated/workspace/workspace-unchecked-create-without-people.input.ts index a61809803..6007c5ed5 100644 --- a/server/src/core/@generated/workspace/workspace-unchecked-create-without-people.input.ts +++ b/server/src/core/@generated/workspace/workspace-unchecked-create-without-people.input.ts @@ -10,8 +10,8 @@ import { PipelineProgressUncheckedCreateNestedManyWithoutWorkspaceInput } from ' @InputType() export class WorkspaceUncheckedCreateWithoutPeopleInput { - @Field(() => String, { nullable: false }) - id!: string; + @Field(() => String, { nullable: true }) + id?: string; @Field(() => Date, { nullable: true }) createdAt?: Date | string; diff --git a/server/src/core/@generated/workspace/workspace-unchecked-create-without-pipeline-progresses.input.ts b/server/src/core/@generated/workspace/workspace-unchecked-create-without-pipeline-progresses.input.ts index fa4d502ec..dab7a0358 100644 --- a/server/src/core/@generated/workspace/workspace-unchecked-create-without-pipeline-progresses.input.ts +++ b/server/src/core/@generated/workspace/workspace-unchecked-create-without-pipeline-progresses.input.ts @@ -10,8 +10,8 @@ import { PipelineStageUncheckedCreateNestedManyWithoutWorkspaceInput } from '../ @InputType() export class WorkspaceUncheckedCreateWithoutPipelineProgressesInput { - @Field(() => String, { nullable: false }) - id!: string; + @Field(() => String, { nullable: true }) + id?: string; @Field(() => Date, { nullable: true }) createdAt?: Date | string; diff --git a/server/src/core/@generated/workspace/workspace-unchecked-create-without-pipeline-stages.input.ts b/server/src/core/@generated/workspace/workspace-unchecked-create-without-pipeline-stages.input.ts index d26323fd0..6ed068044 100644 --- a/server/src/core/@generated/workspace/workspace-unchecked-create-without-pipeline-stages.input.ts +++ b/server/src/core/@generated/workspace/workspace-unchecked-create-without-pipeline-stages.input.ts @@ -10,8 +10,8 @@ import { PipelineProgressUncheckedCreateNestedManyWithoutWorkspaceInput } from ' @InputType() export class WorkspaceUncheckedCreateWithoutPipelineStagesInput { - @Field(() => String, { nullable: false }) - id!: string; + @Field(() => String, { nullable: true }) + id?: string; @Field(() => Date, { nullable: true }) createdAt?: Date | string; diff --git a/server/src/core/@generated/workspace/workspace-unchecked-create-without-pipelines.input.ts b/server/src/core/@generated/workspace/workspace-unchecked-create-without-pipelines.input.ts index f8c109792..f98e4c25b 100644 --- a/server/src/core/@generated/workspace/workspace-unchecked-create-without-pipelines.input.ts +++ b/server/src/core/@generated/workspace/workspace-unchecked-create-without-pipelines.input.ts @@ -10,8 +10,8 @@ import { PipelineProgressUncheckedCreateNestedManyWithoutWorkspaceInput } from ' @InputType() export class WorkspaceUncheckedCreateWithoutPipelinesInput { - @Field(() => String, { nullable: false }) - id!: string; + @Field(() => String, { nullable: true }) + id?: string; @Field(() => Date, { nullable: true }) createdAt?: Date | string; diff --git a/server/src/core/@generated/workspace/workspace-unchecked-create-without-workspace-member.input.ts b/server/src/core/@generated/workspace/workspace-unchecked-create-without-workspace-member.input.ts index 2e44f427a..c88fc0302 100644 --- a/server/src/core/@generated/workspace/workspace-unchecked-create-without-workspace-member.input.ts +++ b/server/src/core/@generated/workspace/workspace-unchecked-create-without-workspace-member.input.ts @@ -10,8 +10,8 @@ import { PipelineProgressUncheckedCreateNestedManyWithoutWorkspaceInput } from ' @InputType() export class WorkspaceUncheckedCreateWithoutWorkspaceMemberInput { - @Field(() => String, { nullable: false }) - id!: string; + @Field(() => String, { nullable: true }) + id?: string; @Field(() => Date, { nullable: true }) createdAt?: Date | string; diff --git a/server/src/core/@generated/workspace/workspace-unchecked-create.input.ts b/server/src/core/@generated/workspace/workspace-unchecked-create.input.ts index bfe6d0021..a6f8bbf47 100644 --- a/server/src/core/@generated/workspace/workspace-unchecked-create.input.ts +++ b/server/src/core/@generated/workspace/workspace-unchecked-create.input.ts @@ -11,8 +11,8 @@ import { PipelineProgressUncheckedCreateNestedManyWithoutWorkspaceInput } from ' @InputType() export class WorkspaceUncheckedCreateInput { - @Field(() => String, { nullable: false }) - id!: string; + @Field(() => String, { nullable: true }) + id?: string; @Field(() => Date, { nullable: true }) createdAt?: Date | string; diff --git a/server/src/core/auth/auth.module.ts b/server/src/core/auth/auth.module.ts index c05397f71..7b76a717d 100644 --- a/server/src/core/auth/auth.module.ts +++ b/server/src/core/auth/auth.module.ts @@ -3,18 +3,22 @@ import { JwtModule } from '@nestjs/jwt'; import { ConfigModule, ConfigService } from '@nestjs/config'; import { JwtAuthStrategy } from './strategies/jwt.auth.strategy'; import { AuthService } from './services/auth.service'; -import { GoogleAuthController } from './google.auth.controller'; +import { GoogleAuthController } from './controllers/google-auth.controller'; import { GoogleStrategy } from './strategies/google.auth.strategy'; -import { TokenController } from './token.controller'; +import { TokenController } from './controllers/token.controller'; import { PrismaService } from 'src/database/prisma.service'; import { UserModule } from '../user/user.module'; +import { AuthController } from './controllers/auth.controller'; +import { PasswordAuthController } from './controllers/password-auth.controller'; + +import { TokenService } from './services/token.service'; const jwtModule = JwtModule.registerAsync({ useFactory: async (configService: ConfigService) => { return { - secret: configService.get('JWT_SECRET'), + secret: configService.get('ACCESS_TOKEN_SECRET'), signOptions: { - expiresIn: configService.get('JWT_EXPIRES_IN') + 's', + expiresIn: configService.get('ACCESS_TOKEN_EXPIRES_IN'), }, }; }, @@ -24,8 +28,19 @@ const jwtModule = JwtModule.registerAsync({ @Module({ imports: [jwtModule, ConfigModule.forRoot({}), UserModule], - controllers: [GoogleAuthController, TokenController], - providers: [AuthService, JwtAuthStrategy, GoogleStrategy, PrismaService], + controllers: [ + GoogleAuthController, + PasswordAuthController, + TokenController, + AuthController, + ], + providers: [ + AuthService, + TokenService, + JwtAuthStrategy, + GoogleStrategy, + PrismaService, + ], exports: [jwtModule], }) export class AuthModule {} diff --git a/server/src/core/auth/auth.util.ts b/server/src/core/auth/auth.util.ts new file mode 100644 index 000000000..a655a3758 --- /dev/null +++ b/server/src/core/auth/auth.util.ts @@ -0,0 +1,15 @@ +import * as bcrypt from 'bcrypt'; + +export const PASSWORD_REGEX = /^(?=.*\d)(?=.*[a-z])(?=.*[A-Z]).{8,}$/; + +const saltRounds = 10; + +export const hashPassword = async (password: string) => { + const hash = await bcrypt.hash(password, saltRounds); + + return hash; +}; + +export const compareHash = async (password: string, passwordHash: string) => { + return bcrypt.compare(password, passwordHash); +}; diff --git a/server/src/core/auth/controllers/auth.controller.spec.ts b/server/src/core/auth/controllers/auth.controller.spec.ts new file mode 100644 index 000000000..7874c788d --- /dev/null +++ b/server/src/core/auth/controllers/auth.controller.spec.ts @@ -0,0 +1,30 @@ +import { Test, TestingModule } from '@nestjs/testing'; +import { AuthController } from './auth.controller'; +import { AuthService } from '../services/auth.service'; +import { TokenService } from '../services/token.service'; + +describe('AuthController', () => { + let controller: AuthController; + + beforeEach(async () => { + const module: TestingModule = await Test.createTestingModule({ + controllers: [AuthController], + providers: [ + { + provide: AuthService, + useValue: {}, + }, + { + provide: TokenService, + useValue: {}, + }, + ], + }).compile(); + + controller = module.get(AuthController); + }); + + it('should be defined', () => { + expect(controller).toBeDefined(); + }); +}); diff --git a/server/src/core/auth/controllers/auth.controller.ts b/server/src/core/auth/controllers/auth.controller.ts new file mode 100644 index 000000000..2dbe0c5a7 --- /dev/null +++ b/server/src/core/auth/controllers/auth.controller.ts @@ -0,0 +1,23 @@ +import { Body, Controller, Post } from '@nestjs/common'; +import { AuthService } from '../services/auth.service'; +import { VerifyInput } from '../dto/verify.input'; +import { VerifyEntity } from '../dto/verify.entity'; +import { TokenService } from '../services/token.service'; + +@Controller('auth') +export class AuthController { + constructor( + private readonly authService: AuthService, + private readonly tokenService: TokenService, + ) {} + + @Post('verify') + async verify(@Body() verifyInput: VerifyInput): Promise { + const email = await this.tokenService.verifyLoginToken( + verifyInput.loginToken, + ); + const result = await this.authService.verify(email); + + return result; + } +} diff --git a/server/src/core/auth/controllers/google-auth.controller.ts b/server/src/core/auth/controllers/google-auth.controller.ts new file mode 100644 index 000000000..f36e7bbf9 --- /dev/null +++ b/server/src/core/auth/controllers/google-auth.controller.ts @@ -0,0 +1,54 @@ +import { + Controller, + Get, + InternalServerErrorException, + Req, + Res, + UseGuards, +} from '@nestjs/common'; +import { AuthGuard } from '@nestjs/passport'; +import { Response } from 'express'; +import { GoogleRequest } from '../strategies/google.auth.strategy'; +import { UserService } from '../../user/user.service'; +import { assertNotNull } from 'src/utils/assert'; +import { TokenService } from '../services/token.service'; + +@Controller('auth/google') +export class GoogleAuthController { + constructor( + private readonly tokenService: TokenService, + private readonly userService: UserService, + ) {} + + @Get() + @UseGuards(AuthGuard('google')) + async googleAuth() { + // As this method is protected by Google Auth guard, it will trigger Google SSO flow + return; + } + + @Get('redirect') + @UseGuards(AuthGuard('google')) + async googleAuthRedirect(@Req() req: GoogleRequest, @Res() res: Response) { + const { firstName, lastName, email } = req.user; + const displayName = [firstName, lastName].filter(assertNotNull).join(' '); + + const user = await this.userService.createUser({ + data: { + email, + displayName, + locale: 'en', + }, + }); + + if (!user) { + throw new InternalServerErrorException( + 'User email domain does not match an existing workspace', + ); + } + + const loginToken = await this.tokenService.generateLoginToken(user.email); + + return res.redirect(this.tokenService.computeRedirectURI(loginToken.token)); + } +} diff --git a/server/src/core/auth/controllers/password-auth.controller.spec.ts b/server/src/core/auth/controllers/password-auth.controller.spec.ts new file mode 100644 index 000000000..a3f87709d --- /dev/null +++ b/server/src/core/auth/controllers/password-auth.controller.spec.ts @@ -0,0 +1,30 @@ +import { Test, TestingModule } from '@nestjs/testing'; +import { PasswordAuthController } from './password-auth.controller'; +import { AuthService } from '../services/auth.service'; +import { TokenService } from '../services/token.service'; + +describe('PasswordAuthController', () => { + let controller: PasswordAuthController; + + beforeEach(async () => { + const module: TestingModule = await Test.createTestingModule({ + controllers: [PasswordAuthController], + providers: [ + { + provide: AuthService, + useValue: {}, + }, + { + provide: TokenService, + useValue: {}, + }, + ], + }).compile(); + + controller = module.get(PasswordAuthController); + }); + + it('should be defined', () => { + expect(controller).toBeDefined(); + }); +}); diff --git a/server/src/core/auth/controllers/password-auth.controller.ts b/server/src/core/auth/controllers/password-auth.controller.ts new file mode 100644 index 000000000..ead3351bd --- /dev/null +++ b/server/src/core/auth/controllers/password-auth.controller.ts @@ -0,0 +1,23 @@ +import { Body, Controller, Post } from '@nestjs/common'; +import { ChallengeInput } from '../dto/challenge.input'; +import { AuthService } from '../services/auth.service'; +import { LoginTokenEntity } from '../dto/login-token.entity'; +import { TokenService } from '../services/token.service'; + +@Controller('auth/password') +export class PasswordAuthController { + constructor( + private readonly authService: AuthService, + private readonly tokenService: TokenService, + ) {} + + @Post() + async challenge( + @Body() challengeInput: ChallengeInput, + ): Promise { + const user = await this.authService.challenge(challengeInput); + const loginToken = await this.tokenService.generateLoginToken(user.email); + + return { loginToken }; + } +} diff --git a/server/src/core/auth/controllers/token.controller.ts b/server/src/core/auth/controllers/token.controller.ts new file mode 100644 index 000000000..3b813bef1 --- /dev/null +++ b/server/src/core/auth/controllers/token.controller.ts @@ -0,0 +1,21 @@ +import { BadRequestException, Body, Controller, Post } from '@nestjs/common'; +import { RefreshTokenInput } from '../dto/refresh-token.input'; +import { TokenService } from '../services/token.service'; + +@Controller('auth/token') +export class TokenController { + constructor(private tokenService: TokenService) {} + + @Post() + async generateAccessToken(@Body() body: RefreshTokenInput) { + if (!body.refreshToken) { + throw new BadRequestException('Refresh token is mendatory'); + } + + const tokens = await this.tokenService.generateTokensFromRefreshToken( + body.refreshToken, + ); + + return { tokens: tokens }; + } +} diff --git a/server/src/core/auth/dto/challenge.input.ts b/server/src/core/auth/dto/challenge.input.ts new file mode 100644 index 000000000..2254fc0a4 --- /dev/null +++ b/server/src/core/auth/dto/challenge.input.ts @@ -0,0 +1,11 @@ +import { IsEmail, IsNotEmpty, IsString } from 'class-validator'; + +export class ChallengeInput { + @IsNotEmpty() + @IsEmail() + email: string; + + @IsNotEmpty() + @IsString() + password: string; +} diff --git a/server/src/core/auth/dto/login-token.entity.ts b/server/src/core/auth/dto/login-token.entity.ts new file mode 100644 index 000000000..713210a31 --- /dev/null +++ b/server/src/core/auth/dto/login-token.entity.ts @@ -0,0 +1,5 @@ +import { TokenEntity } from './token.entity'; + +export class LoginTokenEntity { + loginToken: TokenEntity; +} diff --git a/server/src/core/auth/dto/refresh-token.input.ts b/server/src/core/auth/dto/refresh-token.input.ts new file mode 100644 index 000000000..14a66a530 --- /dev/null +++ b/server/src/core/auth/dto/refresh-token.input.ts @@ -0,0 +1,7 @@ +import { IsNotEmpty, IsString } from 'class-validator'; + +export class RefreshTokenInput { + @IsNotEmpty() + @IsString() + refreshToken: string; +} diff --git a/server/src/core/auth/dto/register.input.ts b/server/src/core/auth/dto/register.input.ts new file mode 100644 index 000000000..ab872497c --- /dev/null +++ b/server/src/core/auth/dto/register.input.ts @@ -0,0 +1,24 @@ +import { + IsEmail, + IsNotEmpty, + IsString, + Matches, + MinLength, +} from 'class-validator'; +import { PASSWORD_REGEX } from '../auth.util'; + +export class RegisterInput { + @IsNotEmpty() + @IsEmail() + email: string; + + @IsNotEmpty() + @IsString() + @MinLength(8) + @Matches(PASSWORD_REGEX, { message: 'password too weak' }) + password: string; + + @IsNotEmpty() + @IsString() + displayName: string; +} diff --git a/server/src/core/auth/dto/token.entity.ts b/server/src/core/auth/dto/token.entity.ts new file mode 100644 index 000000000..ce45e2c11 --- /dev/null +++ b/server/src/core/auth/dto/token.entity.ts @@ -0,0 +1,4 @@ +export class TokenEntity { + token: string; + expiresAt: Date; +} diff --git a/server/src/core/auth/dto/verify.entity.ts b/server/src/core/auth/dto/verify.entity.ts new file mode 100644 index 000000000..3bdccc2a4 --- /dev/null +++ b/server/src/core/auth/dto/verify.entity.ts @@ -0,0 +1,11 @@ +import { TokenEntity } from './token.entity'; +import { User } from '@prisma/client'; + +export class VerifyEntity { + user: Omit; + + tokens: { + accessToken: TokenEntity; + refreshToken: TokenEntity; + }; +} diff --git a/server/src/core/auth/dto/verify.input.ts b/server/src/core/auth/dto/verify.input.ts new file mode 100644 index 000000000..506a3b297 --- /dev/null +++ b/server/src/core/auth/dto/verify.input.ts @@ -0,0 +1,7 @@ +import { IsNotEmpty, IsString } from 'class-validator'; + +export class VerifyInput { + @IsNotEmpty() + @IsString() + loginToken: string; +} diff --git a/server/src/core/auth/google.auth.controller.ts b/server/src/core/auth/google.auth.controller.ts deleted file mode 100644 index dad561ef6..000000000 --- a/server/src/core/auth/google.auth.controller.ts +++ /dev/null @@ -1,46 +0,0 @@ -import { - Controller, - Get, - HttpException, - HttpStatus, - Req, - Res, - UseGuards, -} from '@nestjs/common'; -import { AuthGuard } from '@nestjs/passport'; -import { Response } from 'express'; -import { AuthService } from './services/auth.service'; -import { GoogleRequest } from './strategies/google.auth.strategy'; -import { UserService } from '../user/user.service'; - -@Controller('auth/google') -export class GoogleAuthController { - constructor( - private readonly authService: AuthService, - private readonly userService: UserService, - ) {} - - @Get() - @UseGuards(AuthGuard('google')) - async googleAuth() { - // As this method is protected by Google Auth guard, it will trigger Google SSO flow - return; - } - - @Get('redirect') - @UseGuards(AuthGuard('google')) - async googleAuthRedirect(@Req() req: GoogleRequest, @Res() res: Response) { - const user = await this.userService.createUser(req.user); - - if (!user) { - throw new HttpException( - { reason: 'User email domain does not match an existing workspace' }, - HttpStatus.INTERNAL_SERVER_ERROR, - ); - } - const refreshToken = await this.authService.registerRefreshToken(user); - return res.redirect( - this.authService.computeRedirectURI(refreshToken.refreshToken), - ); - } -} diff --git a/server/src/core/auth/services/auth.service.spec.ts b/server/src/core/auth/services/auth.service.spec.ts index fa01e4678..33d44aae5 100644 --- a/server/src/core/auth/services/auth.service.spec.ts +++ b/server/src/core/auth/services/auth.service.spec.ts @@ -1,9 +1,7 @@ import { Test, TestingModule } from '@nestjs/testing'; import { AuthService } from './auth.service'; -import { PrismaService } from 'src/database/prisma.service'; -import { prismaMock } from 'src/prisma-mock/jest-prisma-singleton'; -import { JwtService } from '@nestjs/jwt'; -import { ConfigService } from '@nestjs/config'; +import { TokenService } from './token.service'; +import { UserService } from 'src/core/user/user.service'; describe('AuthService', () => { let service: AuthService; @@ -13,17 +11,13 @@ describe('AuthService', () => { providers: [ AuthService, { - provide: JwtService, + provide: TokenService, useValue: {}, }, { - provide: ConfigService, + provide: UserService, useValue: {}, }, - { - provide: PrismaService, - useValue: prismaMock, - }, ], }).compile(); diff --git a/server/src/core/auth/services/auth.service.ts b/server/src/core/auth/services/auth.service.ts index be69c66a4..7b8edcb2e 100644 --- a/server/src/core/auth/services/auth.service.ts +++ b/server/src/core/auth/services/auth.service.ts @@ -1,10 +1,16 @@ -import { HttpException, HttpStatus, Injectable } from '@nestjs/common'; -import { JwtService } from '@nestjs/jwt'; -import { JwtPayload } from '../strategies/jwt.auth.strategy'; -import { ConfigService } from '@nestjs/config'; -import { v4 } from 'uuid'; -import { RefreshToken, User } from '@prisma/client'; -import { PrismaService } from 'src/database/prisma.service'; +import { + BadRequestException, + ForbiddenException, + Injectable, + NotFoundException, +} from '@nestjs/common'; +import { ChallengeInput } from '../dto/challenge.input'; +import { UserService } from 'src/core/user/user.service'; +import { assert } from 'src/utils/assert'; +import { RegisterInput } from '../dto/register.input'; +import { PASSWORD_REGEX, compareHash, hashPassword } from '../auth.util'; +import { VerifyEntity } from '../dto/verify.entity'; +import { TokenService } from './token.service'; export type UserPayload = { firstName: string; @@ -15,71 +21,79 @@ export type UserPayload = { @Injectable() export class AuthService { constructor( - private jwtService: JwtService, - private configService: ConfigService, - private prismaService: PrismaService, + private readonly tokenService: TokenService, + private readonly userService: UserService, ) {} - async generateAccessToken(refreshToken: string): Promise { - const refreshTokenObject = await this.prismaService.refreshToken.findFirst({ - where: { refreshToken: refreshToken }, - }); - - if (!refreshTokenObject) { - throw new HttpException( - { reason: 'Invalid Refresh token' }, - HttpStatus.FORBIDDEN, - ); - } - - const user = await this.prismaService.user.findUnique({ - where: { id: refreshTokenObject.userId }, - }); - - if (!user) { - throw new HttpException( - { reason: 'Refresh token is not associated to a valid user' }, - HttpStatus.FORBIDDEN, - ); - } - - const workspace = await this.prismaService.workspace.findFirst({ - where: { workspaceMember: { some: { userId: user.id } } }, - }); - - if (!workspace) { - throw new HttpException( - { reason: 'Refresh token is not associated to a valid workspace' }, - HttpStatus.FORBIDDEN, - ); - } - - const payload: JwtPayload = { - userId: user.id, - workspaceId: workspace.id, - }; - return this.jwtService.sign(payload); - } - - async registerRefreshToken(user: User): Promise { - const refreshToken = await this.prismaService.refreshToken.upsert({ + async register(registerInput: RegisterInput) { + const existingUser = await this.userService.findUnique({ where: { - id: user.id, + email: registerInput.email, }, - create: { - id: v4(), - userId: user.id, - refreshToken: v4(), - }, - update: {}, }); - return refreshToken; + assert(!existingUser, 'This user already exist', NotFoundException); + assert( + PASSWORD_REGEX.test(registerInput.password), + 'Password too weak', + BadRequestException, + ); + + const passwordHash = await hashPassword(registerInput.password); + + const user = await this.userService.createUser({ + data: { + displayName: registerInput.displayName, + email: registerInput.email, + passwordHash, + locale: 'en', + }, + }); + + return user; } - computeRedirectURI(refreshToken: string): string { - return `${this.configService.get( - 'FRONT_AUTH_CALLBACK_URL', - )}?refreshToken=${refreshToken}`; + async challenge(challengeInput: ChallengeInput) { + const user = await this.userService.findUnique({ + where: { + email: challengeInput.email, + }, + }); + + assert(user, "This user doens't exist", NotFoundException); + assert(user.passwordHash, 'Something wrong happened', ForbiddenException); + + const isValid = await compareHash( + challengeInput.password, + user.passwordHash, + ); + + assert(isValid, 'Something wrong happened', ForbiddenException); + + return user; + } + + async verify(email: string): Promise { + const data = await this.userService.findUnique({ + where: { + email, + }, + }); + + assert(data, "This user doens't exist", NotFoundException); + + // eslint-disable-next-line @typescript-eslint/no-unused-vars + const { passwordHash: _, ...user } = data; + + const accessToken = await this.tokenService.generateAccessToken(user.id); + const refreshToken = await this.tokenService.generateRefreshToken(user.id); + + return { + user, + tokens: { + accessToken, + refreshToken, + }, + }; } } diff --git a/server/src/core/auth/services/token.service.spec.ts b/server/src/core/auth/services/token.service.spec.ts new file mode 100644 index 000000000..9d05aa98e --- /dev/null +++ b/server/src/core/auth/services/token.service.spec.ts @@ -0,0 +1,36 @@ +import { Test, TestingModule } from '@nestjs/testing'; +import { TokenService } from './token.service'; +import { PrismaService } from 'src/database/prisma.service'; +import { prismaMock } from 'src/prisma-mock/jest-prisma-singleton'; +import { JwtService } from '@nestjs/jwt'; +import { ConfigService } from '@nestjs/config'; + +describe('TokenService', () => { + let service: TokenService; + + beforeEach(async () => { + const module: TestingModule = await Test.createTestingModule({ + providers: [ + TokenService, + { + provide: JwtService, + useValue: {}, + }, + { + provide: ConfigService, + useValue: {}, + }, + { + provide: PrismaService, + useValue: prismaMock, + }, + ], + }).compile(); + + service = module.get(TokenService); + }); + + it('should be defined', () => { + expect(service).toBeDefined(); + }); +}); diff --git a/server/src/core/auth/services/token.service.ts b/server/src/core/auth/services/token.service.ts new file mode 100644 index 000000000..2e35a2195 --- /dev/null +++ b/server/src/core/auth/services/token.service.ts @@ -0,0 +1,211 @@ +import { + ForbiddenException, + Injectable, + InternalServerErrorException, + NotFoundException, + UnauthorizedException, + UnprocessableEntityException, +} from '@nestjs/common'; +import { JwtService } from '@nestjs/jwt'; +import { JwtPayload } from '../strategies/jwt.auth.strategy'; +import { ConfigService } from '@nestjs/config'; +import { PrismaService } from 'src/database/prisma.service'; +import { assert } from 'src/utils/assert'; +import { addMilliseconds } from 'date-fns'; +import ms from 'ms'; +import { TokenEntity } from '../dto/token.entity'; +import { TokenExpiredError } from 'jsonwebtoken'; + +@Injectable() +export class TokenService { + constructor( + private readonly jwtService: JwtService, + private readonly configService: ConfigService, + private readonly prismaService: PrismaService, + ) {} + + async generateAccessToken(userId: string): Promise { + const expires = this.configService.get('ACCESS_TOKEN_EXPIRES_IN'); + assert(expires, '', InternalServerErrorException); + const expiresIn = ms(expires); + const expiresAt = addMilliseconds(new Date().getTime(), expiresIn); + + const user = await this.prismaService.user.findUnique({ + where: { id: userId }, + include: { + workspaceMember: true, + }, + }); + + if (!user) { + throw new NotFoundException('User is not found'); + } + + if (!user.workspaceMember) { + throw new ForbiddenException('User is not associated to a workspace'); + } + + const jwtPayload: JwtPayload = { + sub: user.id, + workspaceId: user.workspaceMember.workspaceId, + }; + + return { + token: this.jwtService.sign(jwtPayload), + expiresAt, + }; + } + + async generateRefreshToken(userId: string): Promise { + const secret = this.configService.get('REFRESH_TOKEN_SECRET'); + const expires = this.configService.get('REFRESH_TOKEN_EXPIRES_IN'); + assert(expires, '', InternalServerErrorException); + const expiresIn = ms(expires); + const expiresAt = addMilliseconds(new Date().getTime(), expiresIn); + + const refreshTokenPayload = { + userId, + expiresAt, + }; + const jwtPayload = { + sub: userId, + }; + + const refreshToken = await this.prismaService.refreshToken.create({ + data: refreshTokenPayload, + }); + + return { + token: this.jwtService.sign(jwtPayload, { + secret, + expiresIn, + // Jwtid will be used to link RefreshToken entity to this token + jwtid: refreshToken.id, + }), + expiresAt, + }; + } + + async generateLoginToken(email: string): Promise { + const secret = this.configService.get('LOGIN_TOKEN_SECRET'); + const expires = this.configService.get('LOGIN_TOKEN_EXPIRES_IN'); + assert(expires, '', InternalServerErrorException); + const expiresIn = ms(expires); + const expiresAt = addMilliseconds(new Date().getTime(), expiresIn); + const jwtPayload = { + sub: email, + }; + + return { + token: this.jwtService.sign(jwtPayload, { + secret, + expiresIn, + }), + expiresAt, + }; + } + + async verifyLoginToken(loginToken: string): Promise { + const loginTokenSecret = this.configService.get('LOGIN_TOKEN_SECRET'); + + const payload = await this.verifyJwt(loginToken, loginTokenSecret); + + return payload.sub; + } + + async verifyRefreshToken(refreshToken: string) { + const secret = this.configService.get('REFRESH_TOKEN_SECRET'); + const jwtPayload = await this.verifyJwt(refreshToken, secret); + + assert( + jwtPayload.jti && jwtPayload.sub, + 'This refresh token is malformed', + UnprocessableEntityException, + ); + + const token = await this.prismaService.refreshToken.findUnique({ + where: { id: jwtPayload.jti }, + }); + + assert(token, "This refresh token doesn't exist", NotFoundException); + + const user = await this.prismaService.user.findUnique({ + where: { + id: jwtPayload.sub, + }, + include: { + refreshTokens: true, + }, + }); + + assert(user, 'User not found', NotFoundException); + + if (token.isRevoked) { + // Revoke all user refresh tokens + await this.prismaService.refreshToken.updateMany({ + where: { + id: { + in: user.refreshTokens.map(({ id }) => id), + }, + }, + data: { + isRevoked: true, + }, + }); + } + + assert( + !token.isRevoked, + 'Suspicious activity detected, this refresh token has been revoked. All tokens has been revoked.', + ForbiddenException, + ); + + return { user, token }; + } + + async generateTokensFromRefreshToken(token: string): Promise<{ + accessToken: TokenEntity; + refreshToken: TokenEntity; + }> { + const { + user, + token: { id }, + } = await this.verifyRefreshToken(token); + + // Revoke old refresh token + await this.prismaService.refreshToken.update({ + where: { + id, + }, + data: { + isRevoked: true, + }, + }); + + const accessToken = await this.generateAccessToken(user.id); + const refreshToken = await this.generateRefreshToken(user.id); + + return { + accessToken, + refreshToken, + }; + } + + computeRedirectURI(loginToken: string): string { + return `${this.configService.get( + 'FRONT_AUTH_CALLBACK_URL', + )}?loginToken=${loginToken}`; + } + + async verifyJwt(token: string, secret?: string) { + try { + return this.jwtService.verify(token, secret ? { secret } : undefined); + } catch (error) { + if (error instanceof TokenExpiredError) { + throw new UnauthorizedException('Token has expired.'); + } else { + throw new UnprocessableEntityException(); + } + } + } +} diff --git a/server/src/core/auth/strategies/google.auth.strategy.ts b/server/src/core/auth/strategies/google.auth.strategy.ts index 318bd1264..80a9da68e 100644 --- a/server/src/core/auth/strategies/google.auth.strategy.ts +++ b/server/src/core/auth/strategies/google.auth.strategy.ts @@ -6,7 +6,11 @@ import { ConfigService } from '@nestjs/config'; import { Request } from 'express'; export type GoogleRequest = Request & { - user: { firstName: string; lastName: string; email: string }; + user: { + firstName: string | undefined | null; + lastName: string | undefined | null; + email: string; + }; }; @Injectable() diff --git a/server/src/core/auth/strategies/jwt.auth.strategy.ts b/server/src/core/auth/strategies/jwt.auth.strategy.ts index 93b01fd73..903ac9da6 100644 --- a/server/src/core/auth/strategies/jwt.auth.strategy.ts +++ b/server/src/core/auth/strategies/jwt.auth.strategy.ts @@ -5,7 +5,7 @@ import { ConfigService } from '@nestjs/config'; import { PrismaService } from 'src/database/prisma.service'; import { User, Workspace } from '@prisma/client'; -export type JwtPayload = { userId: string; workspaceId: string }; +export type JwtPayload = { sub: string; workspaceId: string }; export type PassportUser = { user: User; workspace: Workspace }; @Injectable() @@ -17,13 +17,13 @@ export class JwtAuthStrategy extends PassportStrategy(Strategy, 'jwt') { super({ jwtFromRequest: ExtractJwt.fromAuthHeaderAsBearerToken(), ignoreExpiration: false, - secretOrKey: configService.get('JWT_SECRET'), + secretOrKey: configService.get('ACCESS_TOKEN_SECRET'), }); } async validate(payload: JwtPayload): Promise { const user = await this.prismaService.user.findUniqueOrThrow({ - where: { id: payload.userId }, + where: { id: payload.sub }, }); if (!user) { diff --git a/server/src/core/auth/token.controller.ts b/server/src/core/auth/token.controller.ts deleted file mode 100644 index b06cc9f82..000000000 --- a/server/src/core/auth/token.controller.ts +++ /dev/null @@ -1,20 +0,0 @@ -import { Controller, Post, Req, Res } from '@nestjs/common'; -import { Request, Response } from 'express'; -import { AuthService } from './services/auth.service'; - -@Controller('auth/token') -export class TokenController { - constructor(private authService: AuthService) {} - - @Post() - async generateAccessToken(@Req() req: Request, @Res() res: Response) { - const refreshToken = req.body.refreshToken; - - if (!refreshToken) { - return res.status(400).send('Refresh token not found'); - } - - const token = await this.authService.generateAccessToken(refreshToken); - return res.send({ accessToken: token }); - } -} diff --git a/server/src/core/user/user.service.ts b/server/src/core/user/user.service.ts index 41c059970..75ff7579b 100644 --- a/server/src/core/user/user.service.ts +++ b/server/src/core/user/user.service.ts @@ -3,14 +3,13 @@ import { ForbiddenException, Injectable, } from '@nestjs/common'; -import { v4 } from 'uuid'; import { PrismaService } from 'src/database/prisma.service'; import { WorkspaceService } from 'src/core/workspace/services/workspace.service'; -import { WorkspaceMemberService } from 'src/core/workspace/services/workspace-member.service'; +import { Prisma } from '@prisma/client'; +import { assert } from 'src/utils/assert'; export type UserPayload = { - firstName: string; - lastName: string; + displayName: string | undefined | null; email: string; }; @@ -19,7 +18,6 @@ export class UserService { constructor( private readonly prismaService: PrismaService, private readonly workspaceService: WorkspaceService, - private readonly workspaceMemberService: WorkspaceMemberService, ) {} // Find @@ -54,56 +52,49 @@ export class UserService { groupBy = this.prismaService.user.groupBy; // Customs - async createUser(rawUser: UserPayload) { - if (!rawUser.email) { - throw new BadRequestException('Email is missing'); - } + async createUser( + args: Prisma.SelectSubset, + ): Promise> { + assert(args.data.email, 'Email is missing', BadRequestException); + assert( + args.data.displayName, + 'DisplayName is missing', + BadRequestException, + ); - if (!rawUser.firstName || !rawUser.lastName) { - throw new BadRequestException('Firstname or lastname is missing'); - } + const emailDomain = args.data.email.split('@')[1]; - const emailDomain = rawUser.email.split('@')[1]; - - if (!emailDomain) { - throw new BadRequestException('Email is malformed'); - } + assert(emailDomain, 'Email is malformed', BadRequestException); const workspace = await this.workspaceService.findUnique({ where: { domainName: emailDomain }, }); - if (!workspace) { - throw new ForbiddenException( - 'User email domain does not match an existing workspace', - ); - } + assert( + workspace, + 'User email domain does not match an existing workspace', + ForbiddenException, + ); const user = await this.prismaService.user.upsert({ where: { - email: rawUser.email, + email: args.data.email, }, create: { - id: v4(), - displayName: rawUser.firstName + ' ' + rawUser.lastName, - email: rawUser.email, + ...(args.data as Prisma.UserCreateInput), + workspaceMember: { + connectOrCreate: { + where: { id: workspace.id }, + create: { workspaceId: workspace.id }, + }, + }, locale: 'en', }, update: {}, + ...(args.select ? { select: args.select } : {}), + ...(args.include ? { include: args.include } : {}), }); - await this.workspaceMemberService.upsert({ - where: { - userId: user.id, - }, - create: { - id: v4(), - userId: user.id, - workspaceId: workspace.id, - }, - update: {}, - }); - - return user; + return user as Prisma.UserGetPayload; } } diff --git a/server/src/database/migrations/20230616135457_alter_table_refresh_token/migration.sql b/server/src/database/migrations/20230616135457_alter_table_refresh_token/migration.sql new file mode 100644 index 000000000..d55582556 --- /dev/null +++ b/server/src/database/migrations/20230616135457_alter_table_refresh_token/migration.sql @@ -0,0 +1,11 @@ +/* + Warnings: + + - You are about to drop the column `refreshToken` on the `refresh_tokens` table. All the data in the column will be lost. + - Added the required column `expiresAt` to the `refresh_tokens` table without a default value. This is not possible if the table is not empty. + +*/ +-- AlterTable +ALTER TABLE "refresh_tokens" DROP COLUMN "refreshToken", +ADD COLUMN "expiresAt" TIMESTAMP(3) NOT NULL, +ADD COLUMN "isRevoked" BOOLEAN NOT NULL DEFAULT false; diff --git a/server/src/database/schema.prisma b/server/src/database/schema.prisma index b58af030e..80d208c16 100644 --- a/server/src/database/schema.prisma +++ b/server/src/database/schema.prisma @@ -113,7 +113,7 @@ generator nestgraphql { } model User { - id String @id + id String @id @default(uuid()) createdAt DateTime @default(now()) updatedAt DateTime @updatedAt deletedAt DateTime? @@ -124,6 +124,7 @@ model User { avatarUrl String? locale String phoneNumber String? + /// @TypeGraphQL.omit(input: true, output: true) passwordHash String? emailVerified Boolean @default(false) metadata Json? @@ -139,7 +140,7 @@ model User { /// @TypeGraphQL.omit(input: true) model Workspace { - id String @id + id String @id @default(uuid()) createdAt DateTime @default(now()) updatedAt DateTime @updatedAt deletedAt DateTime? @@ -159,7 +160,7 @@ model Workspace { } model WorkspaceMember { - id String @id + id String @id @default(uuid()) createdAt DateTime @default(now()) updatedAt DateTime @updatedAt deletedAt DateTime? @@ -174,7 +175,7 @@ model WorkspaceMember { } model Company { - id String @id + id String @id @default(uuid()) createdAt DateTime @default(now()) updatedAt DateTime @updatedAt deletedAt DateTime? @@ -195,7 +196,7 @@ model Company { } model Person { - id String @id + id String @id @default(uuid()) createdAt DateTime @default(now()) updatedAt DateTime @updatedAt deletedAt DateTime? @@ -216,19 +217,22 @@ model Person { } model RefreshToken { - id String @id + id String @id @default(uuid()) createdAt DateTime @default(now()) updatedAt DateTime @updatedAt + isRevoked Boolean @default(false) + expiresAt DateTime deletedAt DateTime? - refreshToken String + /// @TypeGraphQL.omit(input: true, output: true) userId String + /// @TypeGraphQL.omit(input: true, output: true) user User @relation(fields: [userId], references: [id]) @@map("refresh_tokens") } model CommentThread { - id String @id + id String @id @default(uuid()) createdAt DateTime @default(now()) updatedAt DateTime @updatedAt deletedAt DateTime? @@ -243,7 +247,7 @@ model CommentThread { } model Comment { - id String @id + id String @id @default(uuid()) createdAt DateTime @default(now()) updatedAt DateTime @updatedAt deletedAt DateTime? @@ -266,7 +270,7 @@ enum CommentableType { } model CommentThreadTarget { - id String @id + id String @id @default(uuid()) createdAt DateTime @default(now()) updatedAt DateTime @updatedAt deletedAt DateTime? @@ -280,7 +284,7 @@ model CommentThreadTarget { } model Pipeline { - id String @id + id String @id @default(uuid()) createdAt DateTime @default(now()) updatedAt DateTime @updatedAt deletedAt DateTime? @@ -298,7 +302,7 @@ model Pipeline { } model PipelineStage { - id String @id + id String @id @default(uuid()) createdAt DateTime @default(now()) updatedAt DateTime @updatedAt deletedAt DateTime? @@ -326,7 +330,7 @@ enum PipelineProgressableType { } model PipelineProgress { - id String @id + id String @id @default(uuid()) createdAt DateTime @default(now()) updatedAt DateTime @updatedAt deletedAt DateTime? @@ -340,7 +344,7 @@ model PipelineProgress { progressableType PipelineProgressableType progressableId String - /// @TypeGraphQL.omit(input: true, output: true) + /// @TypeGraphQL.omit(input: true, output: true) workspaceId String /// @TypeGraphQL.omit(input: true, output: true) workspace Workspace @relation(fields: [workspaceId], references: [id]) diff --git a/server/src/database/seeds/users.ts b/server/src/database/seeds/users.ts index ba419b877..4e706e888 100644 --- a/server/src/database/seeds/users.ts +++ b/server/src/database/seeds/users.ts @@ -1,5 +1,30 @@ import { PrismaClient } from '@prisma/client'; export const seedUsers = async (prisma: PrismaClient) => { + await prisma.user.upsert({ + where: { id: 'twenty-ge256b39-3ec3-4fe3-8997-b76aa0bfc102' }, + update: {}, + create: { + id: 'twenty-ge256b39-3ec3-4fe3-8997-b76aa0bfc102', + displayName: 'Twenty Demo', + email: 'demo@test.com', + passwordHash: + '$2b$10$mTVxSneZmbXsf9DxTlZRA.DyRO6aCCCOTTxeDv76KuJD524ZpaaZi', // twentydemo + locale: 'en', + avatarUrl: + 'https://s3-alpha-sig.figma.com/img/bbb5/4905/f0a52cc2b9aaeb0a82a360d478dae8bf?Expires=1687132800&Signature=iVBr0BADa3LHoFVGbwqO-wxC51n1o~ZyFD-w7nyTyFP4yB-Y6zFawL-igewaFf6PrlumCyMJThDLAAc-s-Cu35SBL8BjzLQ6HymzCXbrblUADMB208PnMAvc1EEUDq8TyryFjRO~GggLBk5yR0EXzZ3zenqnDEGEoQZR~TRqS~uDF-GwQB3eX~VdnuiU2iittWJkajIDmZtpN3yWtl4H630A3opQvBnVHZjXAL5YPkdh87-a-H~6FusWvvfJxfNC2ZzbrARzXofo8dUFtH7zUXGCC~eUk~hIuLbLuz024lFQOjiWq2VKyB7dQQuGFpM-OZQEV8tSfkViP8uzDLTaCg__&Key-Pair-Id=APKAQ4GOSFWCVNEHN3O4', + workspaceMember: { + connectOrCreate: { + where: { + id: 'twenty-7ef9d213-1c25-4d02-bf35-6aeccf7ea419', + }, + create: { + workspaceId: 'twenty-7ed9d212-1c25-4d02-bf25-6aeccf7ea419', + }, + }, + }, + }, + }); + await prisma.user.upsert({ where: { id: 'twenty-ge256b39-3ec3-4fe3-8997-b76aa0bfa408' }, update: {}, diff --git a/server/src/main.ts b/server/src/main.ts index 1e2e66b8a..52ac9033e 100644 --- a/server/src/main.ts +++ b/server/src/main.ts @@ -1,8 +1,13 @@ import { NestFactory } from '@nestjs/core'; +import { ValidationPipe } from '@nestjs/common'; import { AppModule } from './app.module'; async function bootstrap() { const app = await NestFactory.create(AppModule, { cors: true }); + + // Apply validation pipes globally + app.useGlobalPipes(new ValidationPipe()); + await app.listen(3000); } diff --git a/server/tsconfig.json b/server/tsconfig.json index 84461f5af..e5ca42a9a 100644 --- a/server/tsconfig.json +++ b/server/tsconfig.json @@ -6,6 +6,8 @@ "emitDecoratorMetadata": true, "experimentalDecorators": true, "allowSyntheticDefaultImports": true, + "allowUnreachableCode": false, + "esModuleInterop": true, "target": "es2017", "sourceMap": true, "outDir": "./dist", @@ -14,9 +16,11 @@ "incremental": true, "skipLibCheck": true, "strictNullChecks": true, + "alwaysStrict": true, "noImplicitAny": false, "strictBindCallApply": false, "forceConsistentCasingInFileNames": false, "noFallthroughCasesInSwitch": false, + "resolveJsonModule": true } } diff --git a/server/yarn.lock b/server/yarn.lock index 25b5e62e2..08e9bee4f 100644 --- a/server/yarn.lock +++ b/server/yarn.lock @@ -524,6 +524,13 @@ dependencies: "@babel/helper-plugin-utils" "^7.22.5" +"@babel/runtime@^7.21.0": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.22.5.tgz#8564dd588182ce0047d55d7a75e93921107b57ec" + integrity sha512-ecjvYlnAaZ/KVneE/OdKYBYfgXV3Ptu6zQWmgEF7vwKhQnvVS6bjMD2XYgj+SNvQ1GfK/pjgokfPkC/2CO8CuA== + dependencies: + regenerator-runtime "^0.13.11" + "@babel/template@^7.22.5", "@babel/template@^7.3.3": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.22.5.tgz#0c8c4d944509875849bd0344ff0050756eefc6ec" @@ -1003,6 +1010,21 @@ resolved "https://registry.yarnpkg.com/@lukeed/csprng/-/csprng-1.1.0.tgz#1e3e4bd05c1cc7a0b2ddbd8a03f39f6e4b5e6cfe" integrity sha512-Z7C/xXCiGWsg0KuKsHTKJxbWhpI3Vs5GwLfOean7MGyVFGqdRgBbAjOCh6u4bbjPc/8MJ2pZmK/0DLdCbivLDA== +"@mapbox/node-pre-gyp@^1.0.10": + version "1.0.10" + resolved "https://registry.yarnpkg.com/@mapbox/node-pre-gyp/-/node-pre-gyp-1.0.10.tgz#8e6735ccebbb1581e5a7e652244cadc8a844d03c" + integrity sha512-4ySo4CjzStuprMwk35H5pPbkymjv1SF3jGLj6rAHp/xT/RF7TL7bd9CTm1xDY49K2qF7jmR/g7k+SkLETP6opA== + dependencies: + detect-libc "^2.0.0" + https-proxy-agent "^5.0.0" + make-dir "^3.1.0" + node-fetch "^2.6.7" + nopt "^5.0.0" + npmlog "^5.0.1" + rimraf "^3.0.2" + semver "^7.3.5" + tar "^6.1.11" + "@nestjs/apollo@^11.0.5": version "11.0.6" resolved "https://registry.yarnpkg.com/@nestjs/apollo/-/apollo-11.0.6.tgz#7bd39e0efbaef3eceabfd99b3ae1e2dc8eff2d7a" @@ -1361,6 +1383,13 @@ dependencies: "@babel/types" "^7.20.7" +"@types/bcrypt@^5.0.0": + version "5.0.0" + resolved "https://registry.yarnpkg.com/@types/bcrypt/-/bcrypt-5.0.0.tgz#a835afa2882d165aff5690893db314eaa98b9f20" + integrity sha512-agtcFKaruL8TmcvqbndlqHPSJgsolhf/qPWchFlgnW1gECTN/nKbFcoFnvKAQRFfKbh+BO6A3SWdJu9t+xF3Lw== + dependencies: + "@types/node" "*" + "@types/body-parser@*", "@types/body-parser@1.19.2": version "1.19.2" resolved "https://registry.yarnpkg.com/@types/body-parser/-/body-parser-1.19.2.tgz#aea2059e28b7658639081347ac4fab3de166e6f0" @@ -1393,6 +1422,13 @@ dependencies: "@types/node" "*" +"@types/date-fns@^2.6.0": + version "2.6.0" + resolved "https://registry.yarnpkg.com/@types/date-fns/-/date-fns-2.6.0.tgz#b062ca46562002909be0c63a6467ed173136acc1" + integrity sha512-9DSw2ZRzV0Tmpa6PHHJbMcZn79HHus+BBBohcOaDzkK/G3zMjDUDYjJIWBFLbkh+1+/IOS0A59BpQfdr37hASg== + dependencies: + date-fns "*" + "@types/debug@4.1.8": version "4.1.8" resolved "https://registry.yarnpkg.com/@types/debug/-/debug-4.1.8.tgz#cef723a5d0a90990313faec2d1e22aee5eecb317" @@ -1528,7 +1564,7 @@ resolved "https://registry.yarnpkg.com/@types/mime/-/mime-1.3.2.tgz#93e25bf9ee75fe0fd80b594bc4feb0e862111b5a" integrity sha512-YATxVxgRqNH6nHEIsvg6k2Boc1JHI9ZbH5iWFFv/MTkchz3b1ieGDa5T0a9RznNdI0KhVbdbWSN+KWWrQZRxTw== -"@types/ms@*": +"@types/ms@*", "@types/ms@^0.7.31": version "0.7.31" resolved "https://registry.yarnpkg.com/@types/ms/-/ms-0.7.31.tgz#31b7ca6407128a3d2bbc27fe2d21b345397f6197" integrity sha512-iiUgKzV9AuaEkZqkOLDIvlQiL6ltuZd9tGcW3gwpnX8JbuiuhFlEGmmFXEXkN50Cvq7Os88IY2v0dkDqXYWVgA== @@ -1671,6 +1707,11 @@ resolved "https://registry.yarnpkg.com/@types/uuid/-/uuid-9.0.2.tgz#ede1d1b1e451548d44919dc226253e32a6952c4b" integrity sha512-kNnC1GFBLuhImSnV7w4njQkUiJi0ZXUycu1rUaouPqiKlXkh77JKgdRnTAp1x5eBwcIwbtI+3otwzuIDEuDoxQ== +"@types/validator@^13.7.10": + version "13.7.17" + resolved "https://registry.yarnpkg.com/@types/validator/-/validator-13.7.17.tgz#0a6d1510395065171e3378a4afc587a3aefa7cc1" + integrity sha512-aqayTNmeWrZcvnG2MG9eGYI6b7S5fl+yKgPs6bAjOTwPS316R5SxBGKvtSExfyoJU7pIeHJfsHI0Ji41RVMkvQ== + "@types/yargs-parser@*": version "21.0.0" resolved "https://registry.yarnpkg.com/@types/yargs-parser/-/yargs-parser-21.0.0.tgz#0c60e537fa790f5f9472ed2776c2b71ec117351b" @@ -1898,6 +1939,11 @@ resolved "https://registry.yarnpkg.com/@xtuc/long/-/long-4.2.2.tgz#d291c6a4e97989b5c61d9acf396ae4fe133a718d" integrity sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ== +abbrev@1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.1.tgz#f8f2c887ad10bf67f634f005b6987fed3179aac8" + integrity sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q== + accepts@^1.3.5, accepts@~1.3.8: version "1.3.8" resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.8.tgz#0bf0be125b67014adcb0b0921e62db7bffe16b2e" @@ -1926,6 +1972,13 @@ acorn@^8.4.1, acorn@^8.7.1, acorn@^8.8.0, acorn@^8.8.2: resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.8.2.tgz#1b2f25db02af965399b9776b0c2c391276d37c4a" integrity sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw== +agent-base@6: + version "6.0.2" + resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-6.0.2.tgz#49fff58577cfee3f37176feab4c22e00f86d7f77" + integrity sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ== + dependencies: + debug "4" + ajv-formats@2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/ajv-formats/-/ajv-formats-2.1.1.tgz#6e669400659eb74973bbf2e33327180a0996b520" @@ -2104,6 +2157,19 @@ append-field@^1.0.0: resolved "https://registry.yarnpkg.com/append-field/-/append-field-1.0.0.tgz#1e3440e915f0b1203d23748e78edd7b9b5b43e56" integrity sha512-klpgFSWLW1ZEs8svjfb7g4qWY0YS5imI82dTg+QahUvJ8YqAY0P10Uk8tTyh9ZGuYEZEMaeJYCF5BFuX552hsw== +"aproba@^1.0.3 || ^2.0.0": + version "2.0.0" + resolved "https://registry.yarnpkg.com/aproba/-/aproba-2.0.0.tgz#52520b8ae5b569215b354efc0caa3fe1e45a8adc" + integrity sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ== + +are-we-there-yet@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/are-we-there-yet/-/are-we-there-yet-2.0.0.tgz#372e0e7bd279d8e94c653aaa1f67200884bf3e1c" + integrity sha512-Ci/qENmwHnsYo9xKIcUJN5LeDKdJ6R1Z1j9V/J5wyq8nh/mYPEpIKJbBZXtZjG04HiK7zV/p6Vs9952MrMeUIw== + dependencies: + delegates "^1.0.0" + readable-stream "^3.6.0" + arg@^4.1.0: version "4.1.3" resolved "https://registry.yarnpkg.com/arg/-/arg-4.1.3.tgz#269fc7ad5b8e42cb63c896d5666017261c144089" @@ -2235,6 +2301,14 @@ base64url@3.x.x: resolved "https://registry.yarnpkg.com/base64url/-/base64url-3.0.1.tgz#6399d572e2bc3f90a9a8b22d5dbb0a32d33f788d" integrity sha512-ir1UPr3dkwexU7FdV8qBBbNDRUhMmIekYMFZfi+C/sLNnRESKPl23nB9b2pltqfOQNnGzsDdId90AEtG5tCx4A== +bcrypt@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/bcrypt/-/bcrypt-5.1.0.tgz#bbb27665dbc400480a524d8991ac7434e8529e17" + integrity sha512-RHBS7HI5N5tEnGTmtR/pppX0mmDSBpQ4aCBsj7CEQfYXDcO74A8sIBYcJMuCsis2E81zDxeENYhv66oZwLiA+Q== + dependencies: + "@mapbox/node-pre-gyp" "^1.0.10" + node-addon-api "^5.0.0" + binary-extensions@^2.0.0: version "2.2.0" resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.2.0.tgz#75f502eeaf9ffde42fc98829645be4ea76bd9e2d" @@ -2450,6 +2524,11 @@ chokidar@3.5.3, chokidar@^3.5.3: optionalDependencies: fsevents "~2.3.2" +chownr@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/chownr/-/chownr-2.0.0.tgz#15bfbe53d2eab4cf70f18a8cd68ebe5b3cb1dece" + integrity sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ== + chrome-trace-event@^1.0.2: version "1.0.3" resolved "https://registry.yarnpkg.com/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz#1015eced4741e15d06664a957dbbf50d041e26ac" @@ -2470,6 +2549,15 @@ class-transformer@^0.5.1: resolved "https://registry.yarnpkg.com/class-transformer/-/class-transformer-0.5.1.tgz#24147d5dffd2a6cea930a3250a677addf96ab336" integrity sha512-SQa1Ws6hUbfC98vKGxZH3KFY0Y1lm5Zm0SY8XX9zbK7FJCyVEac3ATW0RIpwzW+oOfmHE5PMPufDG9hCfoEOMw== +class-validator@^0.14.0: + version "0.14.0" + resolved "https://registry.yarnpkg.com/class-validator/-/class-validator-0.14.0.tgz#40ed0ecf3c83b2a8a6a320f4edb607be0f0df159" + integrity sha512-ct3ltplN8I9fOwUd8GrP8UQixwff129BkEtuWDKL5W45cQuLd19xqmTLu5ge78YDm/fdje6FMt0hGOhl0lii3A== + dependencies: + "@types/validator" "^13.7.10" + libphonenumber-js "^1.10.14" + validator "^13.7.0" + cli-boxes@^2.2.1: version "2.2.1" resolved "https://registry.yarnpkg.com/cli-boxes/-/cli-boxes-2.2.1.tgz#ddd5035d25094fce220e9cab40a45840a440318f" @@ -2554,6 +2642,11 @@ color-name@~1.1.4: resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== +color-support@^1.1.2: + version "1.1.3" + resolved "https://registry.yarnpkg.com/color-support/-/color-support-1.1.3.tgz#93834379a1cc9a0c61f82f52f0d04322251bd5a2" + integrity sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg== + combined-stream@^1.0.8: version "1.0.8" resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f" @@ -2596,6 +2689,11 @@ consola@^2.15.0: resolved "https://registry.yarnpkg.com/consola/-/consola-2.15.3.tgz#2e11f98d6a4be71ff72e0bdf07bd23e12cb61550" integrity sha512-9vAdYbHj6x2fLKC4+oPH0kFzY/orMZyG2Aj+kNylHxKGJ/Ed4dpNyAQYwJOdqO4zdM7XpVHmyejQDcQHrnuXbw== +console-control-strings@^1.0.0, console-control-strings@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/console-control-strings/-/console-control-strings-1.1.0.tgz#3d7cf4464db6446ea644bf4b39507f9851008e8e" + integrity sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ== + content-disposition@0.5.4: version "0.5.4" resolved "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.4.tgz#8b82b4efac82512a02bb0b1dcec9d2c5e8eb5bfe" @@ -2671,6 +2769,13 @@ cssfilter@0.0.10: resolved "https://registry.yarnpkg.com/cssfilter/-/cssfilter-0.0.10.tgz#c6d2672632a2e5c83e013e6864a42ce8defd20ae" integrity sha512-FAaLDaplstoRsDR8XGYH51znUN0UY7nMc6Z9/fvE8EXGwvJE9hu7W2vHwx1+bd6gCYnln9nLbzxFTrcO9YQDZw== +date-fns@*, date-fns@^2.30.0: + version "2.30.0" + resolved "https://registry.yarnpkg.com/date-fns/-/date-fns-2.30.0.tgz#f367e644839ff57894ec6ac480de40cae4b0f4d0" + integrity sha512-fnULvOpxnC5/Vg3NCiWelDsLiUc9bRwAPs/+LfTLNvetFCtCTN+yQz15C/fs4AwX1R9K5GLtLfn8QW+dWisaAw== + dependencies: + "@babel/runtime" "^7.21.0" + debug@2.6.9: version "2.6.9" resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" @@ -2678,7 +2783,7 @@ debug@2.6.9: dependencies: ms "2.0.0" -debug@4.3.4, debug@^4.1.0, debug@^4.1.1, debug@^4.3.2, debug@^4.3.4: +debug@4, debug@4.3.4, debug@^4.1.0, debug@^4.1.1, debug@^4.3.2, debug@^4.3.4: version "4.3.4" resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.4.tgz#1319f6579357f2338d3337d2cdd4914bb5dcc865" integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ== @@ -2712,6 +2817,11 @@ delayed-stream@~1.0.0: resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" integrity sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ== +delegates@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/delegates/-/delegates-1.0.0.tgz#84c6e159b81904fdca59a0ef44cd870d31250f9a" + integrity sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ== + depd@2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/depd/-/depd-2.0.0.tgz#b696163cc757560d09cf22cc8fad1571b79e76df" @@ -2722,6 +2832,11 @@ destroy@1.2.0: resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.2.0.tgz#4803735509ad8be552934c67df614f94e66fa015" integrity sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg== +detect-libc@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-2.0.1.tgz#e1897aa88fa6ad197862937fbc0441ef352ee0cd" + integrity sha512-463v3ZeIrcWtdgIg6vI6XUncguvr2TnGl4SzDXinkt9mSLpBJKXT3mW6xT3VQdDN11+WVs29pgvivTc4Lp8v+w== + detect-newline@^3.0.0: version "3.1.0" resolved "https://registry.yarnpkg.com/detect-newline/-/detect-newline-3.1.0.tgz#576f5dfc63ae1a192ff192d8ad3af6308991b651" @@ -3283,6 +3398,13 @@ fs-extra@^10.0.0: jsonfile "^6.0.1" universalify "^2.0.0" +fs-minipass@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-2.1.0.tgz#7f5036fdbf12c63c169190cbe4199c852271f9fb" + integrity sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg== + dependencies: + minipass "^3.0.0" + fs-monkey@^1.0.4: version "1.0.4" resolved "https://registry.yarnpkg.com/fs-monkey/-/fs-monkey-1.0.4.tgz#ee8c1b53d3fe8bb7e5d2c5c5dfc0168afdd2f747" @@ -3303,6 +3425,21 @@ function-bind@^1.1.1: resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== +gauge@^3.0.0: + version "3.0.2" + resolved "https://registry.yarnpkg.com/gauge/-/gauge-3.0.2.tgz#03bf4441c044383908bcfa0656ad91803259b395" + integrity sha512-+5J6MS/5XksCuXq++uFRsnUd7Ovu1XenbeuIuNRJxYWjgQbPuFhT14lAvsWfqfAmnwluf1OwMjz39HjfLPci0Q== + dependencies: + aproba "^1.0.3 || ^2.0.0" + color-support "^1.1.2" + console-control-strings "^1.0.0" + has-unicode "^2.0.1" + object-assign "^4.1.1" + signal-exit "^3.0.0" + string-width "^4.2.3" + strip-ansi "^6.0.1" + wide-align "^1.1.2" + gensync@^1.0.0-beta.2: version "1.0.0-beta.2" resolved "https://registry.yarnpkg.com/gensync/-/gensync-1.0.0-beta.2.tgz#32a6ee76c3d7f52d46b2b1ae5d93fea8580a25e0" @@ -3467,6 +3604,11 @@ has-symbols@^1.0.3: resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.3.tgz#bb7b2c4349251dce87b125f7bdf874aa7c8b39f8" integrity sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A== +has-unicode@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/has-unicode/-/has-unicode-2.0.1.tgz#e0e6fe6a28cf51138855e086d1691e771de2a8b9" + integrity sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ== + has@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796" @@ -3495,6 +3637,14 @@ http-errors@2.0.0: statuses "2.0.1" toidentifier "1.0.1" +https-proxy-agent@^5.0.0: + version "5.0.1" + resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz#c59ef224a04fe8b754f3db0063a25ea30d0005d6" + integrity sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA== + dependencies: + agent-base "6" + debug "4" + human-signals@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-1.1.1.tgz#c5b1cd14f50aeae09ab6c59fe63ba3395fe4dfa3" @@ -4229,6 +4379,11 @@ levn@^0.4.1: prelude-ls "^1.2.1" type-check "~0.4.0" +libphonenumber-js@^1.10.14: + version "1.10.36" + resolved "https://registry.yarnpkg.com/libphonenumber-js/-/libphonenumber-js-1.10.36.tgz#ec74008ffbc488d7ad9ebd722b2773292d568033" + integrity sha512-NCPWES1poiS4NSzIS49mxHM5hCkSWov8wFICRKfL9narzimqAXlnAgNloHCt0BukZHbWt8TIStCdzLy7LXBYpQ== + lines-and-columns@^1.1.6: version "1.2.4" resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.2.4.tgz#eca284f75d2965079309dc0ad9255abb2ebc1632" @@ -4337,7 +4492,7 @@ magic-string@0.30.0: dependencies: "@jridgewell/sourcemap-codec" "^1.4.13" -make-dir@^3.0.0: +make-dir@^3.0.0, make-dir@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-3.1.0.tgz#415e967046b3a7f1d185277d84aa58203726a13f" integrity sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw== @@ -4449,16 +4604,36 @@ minimist@^1.2.6: resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.8.tgz#c1a464e7693302e082a075cee0c057741ac4772c" integrity sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA== +minipass@^3.0.0: + version "3.3.6" + resolved "https://registry.yarnpkg.com/minipass/-/minipass-3.3.6.tgz#7bba384db3a1520d18c9c0e5251c3444e95dd94a" + integrity sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw== + dependencies: + yallist "^4.0.0" + minipass@^4.2.4: version "4.2.8" resolved "https://registry.yarnpkg.com/minipass/-/minipass-4.2.8.tgz#f0010f64393ecfc1d1ccb5f582bcaf45f48e1a3a" integrity sha512-fNzuVyifolSLFL4NzpF+wEF4qrgqaaKX0haXPQEdQ7NKAN+WecoKMHV09YcuL/DHxrUsYQOK3MiuDf7Ip2OXfQ== +minipass@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/minipass/-/minipass-5.0.0.tgz#3e9788ffb90b694a5d0ec94479a45b5d8738133d" + integrity sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ== + "minipass@^5.0.0 || ^6.0.2": version "6.0.2" resolved "https://registry.yarnpkg.com/minipass/-/minipass-6.0.2.tgz#542844b6c4ce95b202c0995b0a471f1229de4c81" integrity sha512-MzWSV5nYVT7mVyWCwn2o7JH13w2TBRmmSqSRCKzTw+lmft9X4z+3wjvs06Tzijo5z4W/kahUCDpRXTF+ZrmF/w== +minizlib@^2.1.1: + version "2.1.2" + resolved "https://registry.yarnpkg.com/minizlib/-/minizlib-2.1.2.tgz#e90d3466ba209b932451508a11ce3d3632145931" + integrity sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg== + dependencies: + minipass "^3.0.0" + yallist "^4.0.0" + mkdirp@^0.5.4: version "0.5.6" resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.6.tgz#7def03d2432dcae4ba1d611445c48396062255f6" @@ -4466,7 +4641,7 @@ mkdirp@^0.5.4: dependencies: minimist "^1.2.6" -mkdirp@^1.0.4: +mkdirp@^1.0.3, mkdirp@^1.0.4: version "1.0.4" resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-1.0.4.tgz#3eb5ed62622756d79a5f0e2a221dfebad75c2f7e" integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw== @@ -4481,7 +4656,7 @@ ms@2.1.2: resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== -ms@2.1.3, ms@^2.1.1: +ms@2.1.3, ms@^2.1.1, ms@^2.1.3: version "2.1.3" resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== @@ -4529,6 +4704,11 @@ node-abort-controller@^3.0.1, node-abort-controller@^3.1.1: resolved "https://registry.yarnpkg.com/node-abort-controller/-/node-abort-controller-3.1.1.tgz#a94377e964a9a37ac3976d848cb5c765833b8548" integrity sha512-AGK2yQKIjRuqnc6VkX2Xj5d+QW8xZ87pa1UK6yA6ouUyuxfHuMP6umE5QK7UmTeOAymo+Zx1Fxiuw9rVx8taHQ== +node-addon-api@^5.0.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/node-addon-api/-/node-addon-api-5.1.0.tgz#49da1ca055e109a23d537e9de43c09cca21eb762" + integrity sha512-eh0GgfEkpnoWDq+VY8OyvYhFEzBk6jIYbRKdIlyTiAXIVJ8PyBaKb0rp7oDtoddbdoHWhq8wwr+XZ81F1rpNdA== + node-emoji@1.11.0: version "1.11.0" resolved "https://registry.yarnpkg.com/node-emoji/-/node-emoji-1.11.0.tgz#69a0150e6946e2f115e9d7ea4df7971e2628301c" @@ -4553,6 +4733,13 @@ node-releases@^2.0.12: resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.12.tgz#35627cc224a23bfb06fb3380f2b3afaaa7eb1039" integrity sha512-QzsYKWhXTWx8h1kIvqfnC++o0pEmpRQA/aenALsL2F4pqNVr7YzcdMlDij5WBnwftRbJCNJL/O7zdKaxKPHqgQ== +nopt@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/nopt/-/nopt-5.0.0.tgz#530942bb58a512fccafe53fe210f13a25355dc88" + integrity sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ== + dependencies: + abbrev "1" + normalize-path@3.0.0, normalize-path@^3.0.0, normalize-path@~3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" @@ -4565,6 +4752,16 @@ npm-run-path@^4.0.0, npm-run-path@^4.0.1: dependencies: path-key "^3.0.0" +npmlog@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-5.0.1.tgz#f06678e80e29419ad67ab964e0fa69959c1eb8b0" + integrity sha512-AqZtDUWOMKs1G/8lwylVjrdYgqA4d9nu8hc+0gzRxlDb1I10+FHBGMXs6aiQHFdCUUlqH99MUMuLfzWDNDtfxw== + dependencies: + are-we-there-yet "^2.0.0" + console-control-strings "^1.1.0" + gauge "^3.0.0" + set-blocking "^2.0.0" + oauth@0.9.x: version "0.9.15" resolved "https://registry.yarnpkg.com/oauth/-/oauth-0.9.15.tgz#bd1fefaf686c96b75475aed5196412ff60cfb9c1" @@ -4995,7 +5192,7 @@ readable-stream@^2.2.2: string_decoder "~1.1.1" util-deprecate "~1.0.1" -readable-stream@^3.4.0: +readable-stream@^3.4.0, readable-stream@^3.6.0: version "3.6.2" resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.2.tgz#56a9b36ea965c00c5a93ef31eb111a0f11056967" integrity sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA== @@ -5023,6 +5220,11 @@ reflect-metadata@^0.1.13: resolved "https://registry.yarnpkg.com/reflect-metadata/-/reflect-metadata-0.1.13.tgz#67ae3ca57c972a2aa1642b10fe363fe32d49dc08" integrity sha512-Ts1Y/anZELhSsjMcU605fU9RE4Oi3p5ORujwbIKXfWa+0Zxs510Qrmrce5/Jowq3cHSZSJqBjypxmHarc+vEWg== +regenerator-runtime@^0.13.11: + version "0.13.11" + resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz#f6dca3e7ceec20590d07ada785636a90cdca17f9" + integrity sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg== + require-directory@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" @@ -5187,6 +5389,11 @@ serve-static@1.15.0: parseurl "~1.3.3" send "0.18.0" +set-blocking@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" + integrity sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw== + setprototypeof@1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.2.0.tgz#66c9a24a73f9fc28cbe66b09fed3d33dcaf1b424" @@ -5230,7 +5437,7 @@ side-channel@^1.0.4: get-intrinsic "^1.0.2" object-inspect "^1.9.0" -signal-exit@^3.0.2, signal-exit@^3.0.3, signal-exit@^3.0.7: +signal-exit@^3.0.0, signal-exit@^3.0.2, signal-exit@^3.0.3, signal-exit@^3.0.7: version "3.0.7" resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.7.tgz#a9a1767f8af84155114eaabd73f99273c8f59ad9" integrity sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ== @@ -5301,7 +5508,7 @@ string-length@^4.0.1: char-regex "^1.0.2" strip-ansi "^6.0.0" -string-width@^4.0.0, string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.2, string-width@^4.2.3: +"string-width@^1.0.2 || 2 || 3 || 4", string-width@^4.0.0, string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.2, string-width@^4.2.3: version "4.2.3" resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== @@ -5442,6 +5649,18 @@ tapable@^2.1.1, tapable@^2.2.0, tapable@^2.2.1: resolved "https://registry.yarnpkg.com/tapable/-/tapable-2.2.1.tgz#1967a73ef4060a82f12ab96af86d52fdb76eeca0" integrity sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ== +tar@^6.1.11: + version "6.1.15" + resolved "https://registry.yarnpkg.com/tar/-/tar-6.1.15.tgz#c9738b0b98845a3b344d334b8fa3041aaba53a69" + integrity sha512-/zKt9UyngnxIT/EAGYuxaMYgOIJiP81ab9ZfkILq4oNLPFX50qyYmu7jRj9qeXoxmJHjGlbH0+cm2uy1WCs10A== + dependencies: + chownr "^2.0.0" + fs-minipass "^2.0.0" + minipass "^5.0.0" + minizlib "^2.1.1" + mkdirp "^1.0.3" + yallist "^4.0.0" + terminal-link@^2.0.0: version "2.1.1" resolved "https://registry.yarnpkg.com/terminal-link/-/terminal-link-2.1.1.tgz#14a64a27ab3c0df933ea546fba55f2d078edc994" @@ -5747,6 +5966,11 @@ v8-to-istanbul@^9.0.1: "@types/istanbul-lib-coverage" "^2.0.1" convert-source-map "^1.6.0" +validator@^13.7.0: + version "13.9.0" + resolved "https://registry.yarnpkg.com/validator/-/validator-13.9.0.tgz#33e7b85b604f3bbce9bb1a05d5c3e22e1c2ff855" + integrity sha512-B+dGG8U3fdtM0/aNK4/X8CXq/EcxU2WPrPEkJGslb47qyHsxmbggTWK0yEA4qnYVNF+nxNlN88o14hIcPmSIEA== + value-or-promise@1.0.11: version "1.0.11" resolved "https://registry.yarnpkg.com/value-or-promise/-/value-or-promise-1.0.11.tgz#3e90299af31dd014fe843fe309cefa7c1d94b140" @@ -5849,6 +6073,13 @@ which@^2.0.1: dependencies: isexe "^2.0.0" +wide-align@^1.1.2: + version "1.1.5" + resolved "https://registry.yarnpkg.com/wide-align/-/wide-align-1.1.5.tgz#df1d4c206854369ecf3c9a4898f1b23fbd9d15d3" + integrity sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg== + dependencies: + string-width "^1.0.2 || 2 || 3 || 4" + widest-line@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/widest-line/-/widest-line-3.1.0.tgz#8292333bbf66cb45ff0de1603b136b7ae1496eca"