diff --git a/apps/client/src/Root.tsx b/apps/client/src/Root.tsx index 22a1ba2..071f154 100644 --- a/apps/client/src/Root.tsx +++ b/apps/client/src/Root.tsx @@ -3,10 +3,9 @@ import React from 'react'; import { BrowserRouter, Route, Routes } from 'react-router-dom'; import { Spinner } from 'tw-react-components'; -import { Role } from '@prisma/client'; - import { Logout } from '@core/components'; import { useAuthContext } from '@core/contexts'; +import { Role } from '@core/prisma'; import { AdminLayout } from './pages/admin/AdminLayout'; import { PublicLayout } from './pages/public/PublicLayout'; diff --git a/apps/client/src/core/components/CodeEditorSheet.tsx b/apps/client/src/core/components/CodeEditorSheet.tsx index 4778ee7..da6b0b0 100644 --- a/apps/client/src/core/components/CodeEditorSheet.tsx +++ b/apps/client/src/core/components/CodeEditorSheet.tsx @@ -2,8 +2,7 @@ import { FC, useEffect } from 'react'; import { SubmitHandler, useForm } from 'react-hook-form'; import { FormDialog } from 'tw-react-components'; -import { FileKind } from '@prisma/client'; - +import { FileKind } from '@core/prisma'; import { downloadFile, uploadFile } from '@core/utils'; import { CodeEditor, CodeEditorLanguages } from './CodeEditor'; diff --git a/apps/client/src/core/components/ProblemSet.tsx b/apps/client/src/core/components/ProblemSet.tsx index affacb3..e745a38 100644 --- a/apps/client/src/core/components/ProblemSet.tsx +++ b/apps/client/src/core/components/ProblemSet.tsx @@ -11,9 +11,8 @@ import { cn, } from 'tw-react-components'; -import { Prisma, ScoreCache, Submission } from '@prisma/client'; - import { useActiveContest, useAuthContext } from '@core/contexts'; +import { Prisma, ScoreCache, Submission } from '@core/prisma'; import { contestStartedAndNotOver, dateComparator, formatBytes } from '@core/utils'; import { NoActiveContest } from './NoActiveContest'; diff --git a/apps/client/src/core/components/SubmissionResult.tsx b/apps/client/src/core/components/SubmissionResult.tsx index 6f2ce06..80dc504 100644 --- a/apps/client/src/core/components/SubmissionResult.tsx +++ b/apps/client/src/core/components/SubmissionResult.tsx @@ -1,8 +1,7 @@ import { FC } from 'react'; import { cn } from 'tw-react-components'; -import { Judging, Prisma } from '@prisma/client'; - +import { Judging, Prisma } from '@core/prisma'; import { dateComparator } from '@core/utils'; import { JUDGING_RESULT_LABELS } from '../constants'; diff --git a/apps/client/src/core/components/SubmitForm.tsx b/apps/client/src/core/components/SubmitForm.tsx index 827c01a..aacfac2 100644 --- a/apps/client/src/core/components/SubmitForm.tsx +++ b/apps/client/src/core/components/SubmitForm.tsx @@ -2,9 +2,8 @@ import { FC, useEffect, useState } from 'react'; import { SubmitHandler, useForm } from 'react-hook-form'; import { FormDialog, FormInputs } from 'tw-react-components'; -import { FileKind, Submission } from '@prisma/client'; - import { useActiveContest, useAuthContext } from '@core/contexts'; +import { FileKind, Submission } from '@core/prisma'; import { useCountSubmission, useCreateSubmission, useFindManyLanguage } from '@core/queries'; import { uploadFile } from '@core/utils'; diff --git a/apps/client/src/core/components/chat-box/ChatBox.tsx b/apps/client/src/core/components/chat-box/ChatBox.tsx index c9de69f..e512a83 100644 --- a/apps/client/src/core/components/chat-box/ChatBox.tsx +++ b/apps/client/src/core/components/chat-box/ChatBox.tsx @@ -2,9 +2,8 @@ import { FC, useEffect } from 'react'; import { useForm } from 'react-hook-form'; import { Flex, Sheet, cn } from 'tw-react-components'; -import { Prisma } from '@prisma/client'; - import { useActiveContest, useAuthContext } from '@core/contexts'; +import { Prisma } from '@core/prisma'; import { useCreateManyClarificationSeen, useFindFirstClarification } from '@core/queries'; import { ChatBoxHeader } from './ChatBoxHeader'; diff --git a/apps/client/src/core/components/filters/constants.ts b/apps/client/src/core/components/filters/constants.ts index 58bf8e5..b922b12 100644 --- a/apps/client/src/core/components/filters/constants.ts +++ b/apps/client/src/core/components/filters/constants.ts @@ -1,6 +1,6 @@ import { FC } from 'react'; -import { Prisma } from '@prisma/client'; +import { Prisma } from '@core/prisma'; import { BooleanFilterOptions, diff --git a/apps/client/src/core/constants.ts b/apps/client/src/core/constants.ts index 057816a..050f65b 100644 --- a/apps/client/src/core/constants.ts +++ b/apps/client/src/core/constants.ts @@ -1,4 +1,4 @@ -import { JudgingResult } from '@prisma/client'; +import { JudgingResult } from '@core/prisma'; import { CodeEditorLanguages } from './components'; diff --git a/apps/client/src/core/contexts/active-contest/context.tsx b/apps/client/src/core/contexts/active-contest/context.tsx index 1568e21..659c377 100644 --- a/apps/client/src/core/contexts/active-contest/context.tsx +++ b/apps/client/src/core/contexts/active-contest/context.tsx @@ -1,7 +1,6 @@ import { FC, PropsWithChildren, createContext, useEffect, useState } from 'react'; -import { Prisma } from '@prisma/client'; - +import { Prisma } from '@core/prisma'; import { useFindManyContest } from '@core/queries'; export type Contest = Prisma.ContestGetPayload<{ diff --git a/apps/client/src/core/contexts/auth/context.tsx b/apps/client/src/core/contexts/auth/context.tsx index 4430741..22a535c 100644 --- a/apps/client/src/core/contexts/auth/context.tsx +++ b/apps/client/src/core/contexts/auth/context.tsx @@ -8,7 +8,7 @@ import { useState, } from 'react'; -import { Prisma } from '@prisma/client'; +import { Prisma } from '@core/prisma'; import { request } from '../../utils'; diff --git a/apps/client/src/core/utils/compareRoles.ts b/apps/client/src/core/utils/compareRoles.ts index 4f81942..a327dc4 100644 --- a/apps/client/src/core/utils/compareRoles.ts +++ b/apps/client/src/core/utils/compareRoles.ts @@ -1,4 +1,4 @@ -import { User } from '@prisma/client'; +import { User } from '@core/prisma'; export function compareRoles(currentUser: User, sendingUser: User): boolean { if (currentUser.roleName === 'team') { diff --git a/apps/client/src/core/utils/countUnseenMessages.ts b/apps/client/src/core/utils/countUnseenMessages.ts index ae61de6..759e696 100644 --- a/apps/client/src/core/utils/countUnseenMessages.ts +++ b/apps/client/src/core/utils/countUnseenMessages.ts @@ -1,6 +1,5 @@ -import { User } from '@prisma/client'; - import { Clarification } from '@core/components'; +import { User } from '@core/prisma'; import { compareRoles } from './compareRoles'; diff --git a/apps/client/src/core/utils/files/types.ts b/apps/client/src/core/utils/files/types.ts index f6a440e..7571a1b 100644 --- a/apps/client/src/core/utils/files/types.ts +++ b/apps/client/src/core/utils/files/types.ts @@ -1,4 +1,4 @@ -import { FileKind } from '@prisma/client'; +import { FileKind } from '@core/prisma'; export type FileUpdateStatus = { metadata: FileInput; file: File } & ( | { status: 'new' } diff --git a/apps/client/src/core/utils/isContestRunning.ts b/apps/client/src/core/utils/isContestRunning.ts index 3cd8d86..2d2d142 100644 --- a/apps/client/src/core/utils/isContestRunning.ts +++ b/apps/client/src/core/utils/isContestRunning.ts @@ -1,4 +1,4 @@ -import { Contest } from '@prisma/client'; +import { Contest } from '@core/prisma'; export function isContestRunning(contest?: Contest): boolean { const now = Date.now(); diff --git a/apps/client/src/pages/admin/views/contests/ContestForm.tsx b/apps/client/src/pages/admin/views/contests/ContestForm.tsx index 12a7448..f20983e 100644 --- a/apps/client/src/pages/admin/views/contests/ContestForm.tsx +++ b/apps/client/src/pages/admin/views/contests/ContestForm.tsx @@ -4,10 +4,9 @@ import { FormProvider, useForm } from 'react-hook-form'; import { useNavigate, useParams } from 'react-router-dom'; import { Block, Button, DataTable, Flex, FormInputs, Spinner } from 'tw-react-components'; -import { ContestProblem, Prisma } from '@prisma/client'; - import { PageTemplate } from '@core/components'; import { useAuthContext, useToastContext } from '@core/contexts'; +import { ContestProblem, Prisma } from '@core/prisma'; import { useFindFirstContest, useFindManyProblem, useUpsertContest } from '@core/queries'; import { getRandomHexColor } from '@core/utils'; diff --git a/apps/client/src/pages/admin/views/contests/ContestsList.tsx b/apps/client/src/pages/admin/views/contests/ContestsList.tsx index 8066697..83f4a64 100644 --- a/apps/client/src/pages/admin/views/contests/ContestsList.tsx +++ b/apps/client/src/pages/admin/views/contests/ContestsList.tsx @@ -9,11 +9,10 @@ import { useLayoutContext, } from 'tw-react-components'; -import { Prisma } from '@prisma/client'; - import { PageTemplate } from '@core/components'; import { useAuthContext } from '@core/contexts'; import { useSorting } from '@core/hooks'; +import { Prisma } from '@core/prisma'; import { useDeleteContest, useFindManyContest } from '@core/queries'; import { getDisplayDate } from '@core/utils'; diff --git a/apps/client/src/pages/admin/views/executables/ExecutableForm.tsx b/apps/client/src/pages/admin/views/executables/ExecutableForm.tsx index 6c4e91b..df45a53 100644 --- a/apps/client/src/pages/admin/views/executables/ExecutableForm.tsx +++ b/apps/client/src/pages/admin/views/executables/ExecutableForm.tsx @@ -2,9 +2,8 @@ import { FC, useEffect, useState } from 'react'; import { useForm } from 'react-hook-form'; import { FormDialog, FormInputs } from 'tw-react-components'; -import { Executable, ExecutableType, FileKind } from '@prisma/client'; - import { useToastContext } from '@core/contexts'; +import { Executable, ExecutableType, FileKind } from '@core/prisma'; import { useUpsertExecutable } from '@core/queries'; import { uploadFile } from '@core/utils'; diff --git a/apps/client/src/pages/admin/views/executables/ExecutablesList.tsx b/apps/client/src/pages/admin/views/executables/ExecutablesList.tsx index fc66d5a..c876dd3 100644 --- a/apps/client/src/pages/admin/views/executables/ExecutablesList.tsx +++ b/apps/client/src/pages/admin/views/executables/ExecutablesList.tsx @@ -8,11 +8,10 @@ import { useLayoutContext, } from 'tw-react-components'; -import { Executable, ExecutableType } from '@prisma/client'; - import { CodeEditorSheet, PageTemplate } from '@core/components'; import { useAuthContext } from '@core/contexts'; import { useSorting } from '@core/hooks'; +import { Executable, ExecutableType } from '@core/prisma'; import { useDeleteExecutable, useFindManyExecutable } from '@core/queries'; import { ExecutableForm } from './ExecutableForm'; diff --git a/apps/client/src/pages/admin/views/judge-hosts/JudgeHostsList.tsx b/apps/client/src/pages/admin/views/judge-hosts/JudgeHostsList.tsx index 9c528ec..ebdb71b 100644 --- a/apps/client/src/pages/admin/views/judge-hosts/JudgeHostsList.tsx +++ b/apps/client/src/pages/admin/views/judge-hosts/JudgeHostsList.tsx @@ -9,11 +9,10 @@ import { useLayoutContext, } from 'tw-react-components'; -import { Prisma } from '@prisma/client'; - import { PageTemplate } from '@core/components'; import { useAuthContext } from '@core/contexts'; import { useSorting } from '@core/hooks'; +import { Prisma } from '@core/prisma'; import { useDeleteJudgeHost, useFindManyJudgeHost, useUpdateJudgeHost } from '@core/queries'; import { getDisplayDate } from '@core/utils'; diff --git a/apps/client/src/pages/admin/views/languages/LanguageForm.tsx b/apps/client/src/pages/admin/views/languages/LanguageForm.tsx index 3d4abf3..08a108b 100644 --- a/apps/client/src/pages/admin/views/languages/LanguageForm.tsx +++ b/apps/client/src/pages/admin/views/languages/LanguageForm.tsx @@ -2,9 +2,8 @@ import { FC, useEffect, useState } from 'react'; import { useForm } from 'react-hook-form'; import { FormDialog, FormInputs } from 'tw-react-components'; -import { FileKind } from '@prisma/client'; - import { useToastContext } from '@core/contexts'; +import { FileKind } from '@core/prisma'; import { useUpsertLanguage } from '@core/queries'; import { uploadFile } from '@core/utils'; diff --git a/apps/client/src/pages/admin/views/languages/LanguagesList.tsx b/apps/client/src/pages/admin/views/languages/LanguagesList.tsx index badac92..66480bf 100644 --- a/apps/client/src/pages/admin/views/languages/LanguagesList.tsx +++ b/apps/client/src/pages/admin/views/languages/LanguagesList.tsx @@ -8,11 +8,10 @@ import { useLayoutContext, } from 'tw-react-components'; -import { Prisma } from '@prisma/client'; - import { CodeEditorSheet, PageTemplate } from '@core/components'; import { useAuthContext } from '@core/contexts'; import { useSorting } from '@core/hooks'; +import { Prisma } from '@core/prisma'; import { useDeleteLanguage, useFindManyLanguage } from '@core/queries'; import { LanguageForm } from './LanguageForm'; diff --git a/apps/client/src/pages/admin/views/problems/ProblemForm.tsx b/apps/client/src/pages/admin/views/problems/ProblemForm.tsx index 1e58f78..704b59c 100644 --- a/apps/client/src/pages/admin/views/problems/ProblemForm.tsx +++ b/apps/client/src/pages/admin/views/problems/ProblemForm.tsx @@ -2,9 +2,8 @@ import { FC, useEffect, useState } from 'react'; import { useForm } from 'react-hook-form'; import { FormDialog, FormInputs } from 'tw-react-components'; -import { FileKind, Problem } from '@prisma/client'; - import { useToastContext } from '@core/contexts'; +import { FileKind, Problem } from '@core/prisma'; import { useFindManyExecutable, useUpsertProblem } from '@core/queries'; import { uploadFile } from '@core/utils'; diff --git a/apps/client/src/pages/admin/views/problems/ProblemView.tsx b/apps/client/src/pages/admin/views/problems/ProblemView.tsx index b346818..e2da5db 100644 --- a/apps/client/src/pages/admin/views/problems/ProblemView.tsx +++ b/apps/client/src/pages/admin/views/problems/ProblemView.tsx @@ -3,9 +3,8 @@ import { FC } from 'react'; import { Link, useParams } from 'react-router-dom'; import { Button, Flex, Spinner, Table } from 'tw-react-components'; -import { Prisma } from '@prisma/client'; - import { PageTemplate } from '@core/components'; +import { Prisma } from '@core/prisma'; import { useFindFirstProblem, useUpdateManySubmission } from '@core/queries'; import { TestcasesList } from './testcases/TestcasesList'; diff --git a/apps/client/src/pages/admin/views/problems/ProblemsList.tsx b/apps/client/src/pages/admin/views/problems/ProblemsList.tsx index 14fac0a..daebe5f 100644 --- a/apps/client/src/pages/admin/views/problems/ProblemsList.tsx +++ b/apps/client/src/pages/admin/views/problems/ProblemsList.tsx @@ -10,11 +10,10 @@ import { useLayoutContext, } from 'tw-react-components'; -import { Problem } from '@prisma/client'; - import { PageTemplate } from '@core/components'; import { useAuthContext } from '@core/contexts'; import { useSorting } from '@core/hooks'; +import { Problem } from '@core/prisma'; import { useDeleteProblem, useFindManyProblem } from '@core/queries'; import { ProblemForm } from './ProblemForm'; diff --git a/apps/client/src/pages/admin/views/problems/testcases/TestcaseBulkUploader.tsx b/apps/client/src/pages/admin/views/problems/testcases/TestcaseBulkUploader.tsx index 09eb38d..fdf2a19 100644 --- a/apps/client/src/pages/admin/views/problems/testcases/TestcaseBulkUploader.tsx +++ b/apps/client/src/pages/admin/views/problems/testcases/TestcaseBulkUploader.tsx @@ -2,8 +2,7 @@ import { CloudUploadIcon } from 'lucide-react'; import { FC, useRef } from 'react'; import { Button } from 'tw-react-components'; -import { FileKind } from '@prisma/client'; - +import { FileKind } from '@core/prisma'; import { useCreateTestcase } from '@core/queries'; import { uploadFile } from '@core/utils'; diff --git a/apps/client/src/pages/admin/views/problems/testcases/TestcaseForm.tsx b/apps/client/src/pages/admin/views/problems/testcases/TestcaseForm.tsx index b2562bb..45b3c8d 100644 --- a/apps/client/src/pages/admin/views/problems/testcases/TestcaseForm.tsx +++ b/apps/client/src/pages/admin/views/problems/testcases/TestcaseForm.tsx @@ -2,9 +2,8 @@ import { FC, useEffect, useState } from 'react'; import { useForm } from 'react-hook-form'; import { FormDialog, FormInputs } from 'tw-react-components'; -import { FileKind } from '@prisma/client'; - import { useToastContext } from '@core/contexts'; +import { FileKind } from '@core/prisma'; import { useUpsertTestcase } from '@core/queries'; import { uploadFile } from '@core/utils'; diff --git a/apps/client/src/pages/admin/views/submissions/SubmissionView.tsx b/apps/client/src/pages/admin/views/submissions/SubmissionView.tsx index 5810346..e1ba9ab 100644 --- a/apps/client/src/pages/admin/views/submissions/SubmissionView.tsx +++ b/apps/client/src/pages/admin/views/submissions/SubmissionView.tsx @@ -12,12 +12,11 @@ import { FC, useEffect, useMemo, useState } from 'react'; import { useNavigate, useParams } from 'react-router-dom'; import { Button, Spinner, Tooltip } from 'tw-react-components'; -import { Prisma, User } from '@prisma/client'; - import { CodeEditor, PageTemplate } from '@core/components'; import { LANGUAGES_MAP } from '@core/constants'; import { useAuthContext } from '@core/contexts'; import { useDownloadedFile, useOnWebSocketEvent } from '@core/hooks'; +import { Prisma, User } from '@core/prisma'; import { useFindFirstSubmission, useUpdateJudging, useUpdateSubmission } from '@core/queries'; import { request } from '@core/utils'; diff --git a/apps/client/src/pages/admin/views/submissions/SubmissionViewJudgingRuns.tsx b/apps/client/src/pages/admin/views/submissions/SubmissionViewJudgingRuns.tsx index 9ea65a4..5ccfa94 100644 --- a/apps/client/src/pages/admin/views/submissions/SubmissionViewJudgingRuns.tsx +++ b/apps/client/src/pages/admin/views/submissions/SubmissionViewJudgingRuns.tsx @@ -2,11 +2,10 @@ import { EyeIcon, FlaskConicalIcon } from 'lucide-react'; import { FC, useState } from 'react'; import { Button, Flex, cn } from 'tw-react-components'; -import { JudgingRunResult } from '@prisma/client'; - import { CodeEditorSheet, DiffValues, DiffViewerSheet, PageTemplate } from '@core/components'; import { JUDGING_RESULT_LABELS } from '@core/constants'; import { useDownloadedFile } from '@core/hooks'; +import { JudgingRunResult } from '@core/prisma'; import { downloadFile, formatBytes } from '@core/utils'; import { Judging, JudgingRun } from './SubmissionView'; diff --git a/apps/client/src/pages/admin/views/submissions/SubmissionsList.tsx b/apps/client/src/pages/admin/views/submissions/SubmissionsList.tsx index b0481da..467d1ad 100644 --- a/apps/client/src/pages/admin/views/submissions/SubmissionsList.tsx +++ b/apps/client/src/pages/admin/views/submissions/SubmissionsList.tsx @@ -3,11 +3,10 @@ import { FC } from 'react'; import { Link, useNavigate, useParams } from 'react-router-dom'; import { Button, DataTable, DataTableColumn } from 'tw-react-components'; -import { Prisma, Testcase } from '@prisma/client'; - import { SubmissionResult } from '@core/components'; import { useAuthContext } from '@core/contexts'; import { useOnWebSocketEvent, usePagination } from '@core/hooks'; +import { Prisma, Testcase } from '@core/prisma'; import { useCountSubmission, useFindFirstContest, diff --git a/apps/client/src/pages/admin/views/team-category/TeamCategoriesList.tsx b/apps/client/src/pages/admin/views/team-category/TeamCategoriesList.tsx index 3fb3e99..47b8067 100644 --- a/apps/client/src/pages/admin/views/team-category/TeamCategoriesList.tsx +++ b/apps/client/src/pages/admin/views/team-category/TeamCategoriesList.tsx @@ -11,11 +11,10 @@ import { observer } from 'mobx-react'; import React, { useState } from 'react'; import { Button, ConfirmDialog, DataTable, DataTableColumn, cn } from 'tw-react-components'; -import { Prisma } from '@prisma/client'; - import { PageTemplate } from '@core/components'; import { useAuthContext } from '@core/contexts'; import { useSorting } from '@core/hooks'; +import { Prisma } from '@core/prisma'; import { useDeleteTeamCategory, useFindManyTeamCategory } from '@core/queries'; import { getRGBColorContrast } from '@core/utils'; diff --git a/apps/client/src/pages/admin/views/teams/TeamsList.tsx b/apps/client/src/pages/admin/views/teams/TeamsList.tsx index 4bcb68c..6f8f46d 100644 --- a/apps/client/src/pages/admin/views/teams/TeamsList.tsx +++ b/apps/client/src/pages/admin/views/teams/TeamsList.tsx @@ -9,11 +9,10 @@ import { useLayoutContext, } from 'tw-react-components'; -import { Prisma } from '@prisma/client'; - import { PageTemplate } from '@core/components'; import { useAuthContext } from '@core/contexts'; import { useSorting } from '@core/hooks'; +import { Prisma } from '@core/prisma'; import { useDeleteTeam, useFindManyTeam } from '@core/queries'; import { TeamForm } from './TeamForm'; diff --git a/apps/client/src/pages/team/TeamNavbar.tsx b/apps/client/src/pages/team/TeamNavbar.tsx index febb896..34a5a1c 100644 --- a/apps/client/src/pages/team/TeamNavbar.tsx +++ b/apps/client/src/pages/team/TeamNavbar.tsx @@ -3,11 +3,10 @@ import { FC, useState } from 'react'; import { Link, useLocation } from 'react-router-dom'; import { Button, DropdownMenu, ThemeSelector } from 'tw-react-components'; -import { Submission } from '@prisma/client'; - import { NavBar, SubmitForm } from '@core/components'; import { useActiveContest, useAuthContext } from '@core/contexts'; import { useTimeLeftToContest } from '@core/hooks'; +import { Submission } from '@core/prisma'; import { contestStartedAndNotOver } from '@core/utils'; import { ActiveContestSelector } from '../../core/components/ActiveContestSelector'; diff --git a/apps/client/src/pages/team/views/SubmissionsList.tsx b/apps/client/src/pages/team/views/SubmissionsList.tsx index f755161..9efc3ee 100644 --- a/apps/client/src/pages/team/views/SubmissionsList.tsx +++ b/apps/client/src/pages/team/views/SubmissionsList.tsx @@ -1,11 +1,10 @@ import { FC } from 'react'; import { DataTable, DataTableColumn } from 'tw-react-components'; -import { Judging, Prisma } from '@prisma/client'; - import { PageTemplate, SubmissionResult } from '@core/components'; import { useActiveContest, useAuthContext } from '@core/contexts'; import { useOnWebSocketEvent } from '@core/hooks'; +import { Judging, Prisma } from '@core/prisma'; import { useFindManySubmission } from '@core/queries'; import { dateComparator, formatRestTime, isContestRunning } from '@core/utils'; diff --git a/apps/client/tsconfig.json b/apps/client/tsconfig.json index 6aa2031..042191f 100644 --- a/apps/client/tsconfig.json +++ b/apps/client/tsconfig.json @@ -7,6 +7,7 @@ "strict": true, "types": ["vite/client"], "paths": { + "@core/prisma": ["node_modules/.prisma/browser"], "@core/components": ["apps/client/src/core/components/index.ts"], "@core/constants": ["apps/client/src/core/constants.ts"], "@core/contexts": ["apps/client/src/core/contexts/index.ts"], diff --git a/apps/client/vite.config.mts b/apps/client/vite.config.mts index 9710d1f..c4ca74d 100644 --- a/apps/client/vite.config.mts +++ b/apps/client/vite.config.mts @@ -32,6 +32,7 @@ export default defineConfig({ resolve: { alias: { + '@core/prisma': 'node_modules/.prisma/browser/index-browser.js', '@core/components': '/src/core/components', '@core/contexts': '/src/core/contexts', '@core/constants': '/src/core/constants.ts', diff --git a/apps/judge/package.json b/apps/judge/package.json new file mode 100644 index 0000000..c8429af --- /dev/null +++ b/apps/judge/package.json @@ -0,0 +1,7 @@ +{ + "name": "judge", + "version": "0.0.0", + "description": "Judge of the application", + "private": true, + "license": "MIT" +} diff --git a/apps/server/package.json b/apps/server/package.json new file mode 100644 index 0000000..c153525 --- /dev/null +++ b/apps/server/package.json @@ -0,0 +1,7 @@ +{ + "name": "server", + "version": "0.0.0", + "description": "Server of the application", + "private": true, + "license": "MIT" +} diff --git a/docker-compose.test.yml b/docker-compose.test.yml index 9553255..8c2e0f8 100644 --- a/docker-compose.test.yml +++ b/docker-compose.test.yml @@ -31,8 +31,9 @@ services: TUN_JUDGE_URL: http://server:3000 TUN_JUDGE_USERNAME: judge-host TUN_JUDGE_PASSWORD: judge-host + SYSTEM_STORAGE_DIRECTORY_PATH: /tmp/judge-files-storage volumes: - - /tmp/tun-judge/workDir:/tmp/tun-judge/workDir + - ./dist/judge-files-storage:/tmp/judge-files-storage - /var/run/docker.sock:/var/run/docker.sock depends_on: - server @@ -45,7 +46,7 @@ services: POSTGRES_USER: tun-judge POSTGRES_PASSWORD: tun-judge volumes: - - /opt/tun-judge/db-data:/var/lib/postgresql/data + - db-data:/var/lib/postgresql/data redis: image: bitnami/redis:6.0 @@ -56,5 +57,7 @@ services: - redis-data:/bitnami/redis/data volumes: + db-data: + driver: local redis-data: driver: local diff --git a/docker/judge/Dockerfile b/docker/judge/Dockerfile index c7896b1..8c9957f 100644 --- a/docker/judge/Dockerfile +++ b/docker/judge/Dockerfile @@ -6,10 +6,11 @@ WORKDIR /usr/src/app COPY --chown=node:node docker/judge/start.sh ./start.sh COPY --chown=node:node apps/judge/package.json ./package.json -COPY --chown=node:node zenstack/prisma ./prisma COPY --chown=node:node dist/apps/judge ./judge +COPY --chown=node:node zenstack ./zenstack -RUN yarn prisma generate +RUN sed -i -E 's$\.\.\/apps\/client\/$./__ignore__/$g' ./zenstack/schema.zmodel +RUN yarn zenstack generate --schema=./zenstack/schema.zmodel ENV ENVIRONMENT=production diff --git a/docker/judge/start.sh b/docker/judge/start.sh old mode 100644 new mode 100755 diff --git a/docker/server/Dockerfile b/docker/server/Dockerfile index c7ecb77..8b755bb 100644 --- a/docker/server/Dockerfile +++ b/docker/server/Dockerfile @@ -6,10 +6,11 @@ WORKDIR /usr/src/app COPY --chown=node:node docker/server/start.sh ./start.sh COPY --chown=node:node apps/server/package.json ./package.json -COPY --chown=node:node zenstack ./zenstack COPY --chown=node:node dist/apps/server ./server COPY --chown=node:node dist/apps/client ./client +COPY --chown=node:node zenstack ./zenstack +RUN sed -i -E 's$\.\.\/apps\/client\/$./__ignore__/$g' ./zenstack/schema.zmodel RUN yarn zenstack generate --schema=./zenstack/schema.zmodel ENV ENVIRONMENT=production diff --git a/docker/server/start.sh b/docker/server/start.sh old mode 100644 new mode 100755 diff --git a/zenstack/prisma/schema.prisma b/zenstack/prisma/schema.prisma index 520ef18..7c499ff 100644 --- a/zenstack/prisma/schema.prisma +++ b/zenstack/prisma/schema.prisma @@ -8,8 +8,13 @@ datasource db { url = env("DATABASE_URL") } +generator server { + provider = "prisma-client-js" +} + generator client { provider = "prisma-client-js" + output = "../../node_modules/.prisma/browser" } enum FileKind { diff --git a/zenstack/schema.zmodel b/zenstack/schema.zmodel index 5f832e1..69590b0 100644 --- a/zenstack/schema.zmodel +++ b/zenstack/schema.zmodel @@ -22,8 +22,13 @@ datasource db { url = env('DATABASE_URL') } +generator server { + provider = 'prisma-client-js' +} + generator client { provider = 'prisma-client-js' + output = "../../node_modules/.prisma/browser" } plugin hooks {