@juki-team/commons 0.1.11

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (95) hide show
  1. package/README.md +3 -0
  2. package/dist/cjs/index.cjs +3567 -0
  3. package/dist/esm/index.js +3347 -0
  4. package/dist/types/constants/commons.d.ts +62 -0
  5. package/dist/types/constants/company.d.ts +9 -0
  6. package/dist/types/constants/contest.d.ts +15 -0
  7. package/dist/types/constants/course.d.ts +8 -0
  8. package/dist/types/constants/date.d.ts +9 -0
  9. package/dist/types/constants/email.d.ts +2 -0
  10. package/dist/types/constants/entity.d.ts +3 -0
  11. package/dist/types/constants/file.d.ts +27 -0
  12. package/dist/types/constants/index.d.ts +18 -0
  13. package/dist/types/constants/judge.d.ts +35 -0
  14. package/dist/types/constants/problem.d.ts +36 -0
  15. package/dist/types/constants/routing.d.ts +7 -0
  16. package/dist/types/constants/services.d.ts +8 -0
  17. package/dist/types/constants/system.d.ts +8 -0
  18. package/dist/types/constants/teams.d.ts +14 -0
  19. package/dist/types/constants/time.d.ts +9 -0
  20. package/dist/types/constants/user.d.ts +16 -0
  21. package/dist/types/constants/websocket.d.ts +6 -0
  22. package/dist/types/constants/worksheet.d.ts +11 -0
  23. package/dist/types/dto/class.d.ts +115 -0
  24. package/dist/types/dto/code.d.ts +13 -0
  25. package/dist/types/dto/comments.d.ts +21 -0
  26. package/dist/types/dto/company.d.ts +67 -0
  27. package/dist/types/dto/contest.d.ts +94 -0
  28. package/dist/types/dto/course.d.ts +34 -0
  29. package/dist/types/dto/entity.d.ts +92 -0
  30. package/dist/types/dto/excalidraw.d.ts +12 -0
  31. package/dist/types/dto/file.d.ts +34 -0
  32. package/dist/types/dto/image.d.ts +6 -0
  33. package/dist/types/dto/index.d.ts +25 -0
  34. package/dist/types/dto/judge.d.ts +16 -0
  35. package/dist/types/dto/markdown.d.ts +12 -0
  36. package/dist/types/dto/mermaid.d.ts +12 -0
  37. package/dist/types/dto/problem.d.ts +66 -0
  38. package/dist/types/dto/scoreboard.d.ts +35 -0
  39. package/dist/types/dto/session.d.ts +15 -0
  40. package/dist/types/dto/socket.d.ts +256 -0
  41. package/dist/types/dto/statistics.d.ts +43 -0
  42. package/dist/types/dto/submission.d.ts +94 -0
  43. package/dist/types/dto/system.d.ts +91 -0
  44. package/dist/types/dto/url.d.ts +8 -0
  45. package/dist/types/dto/user.d.ts +109 -0
  46. package/dist/types/dto/virtual-user.d.ts +38 -0
  47. package/dist/types/dto/worksheet-submissions.d.ts +64 -0
  48. package/dist/types/dto/worksheet.d.ts +39 -0
  49. package/dist/types/helpers/class.d.ts +4 -0
  50. package/dist/types/helpers/comments.d.ts +4 -0
  51. package/dist/types/helpers/commons.d.ts +35 -0
  52. package/dist/types/helpers/contest.d.ts +5 -0
  53. package/dist/types/helpers/document.d.ts +14 -0
  54. package/dist/types/helpers/file.d.ts +1 -0
  55. package/dist/types/helpers/index.d.ts +14 -0
  56. package/dist/types/helpers/interval.d.ts +2 -0
  57. package/dist/types/helpers/judging.d.ts +24 -0
  58. package/dist/types/helpers/object.d.ts +1 -0
  59. package/dist/types/helpers/responses.d.ts +8 -0
  60. package/dist/types/helpers/socket.d.ts +45 -0
  61. package/dist/types/helpers/time.d.ts +13 -0
  62. package/dist/types/helpers/user.d.ts +11 -0
  63. package/dist/types/helpers/worksheet.d.ts +10 -0
  64. package/dist/types/index.d.ts +5 -0
  65. package/dist/types/prototypes/Date.d.ts +62 -0
  66. package/dist/types/prototypes/Error.d.ts +10 -0
  67. package/dist/types/prototypes/Number.d.ts +7 -0
  68. package/dist/types/prototypes/index.d.ts +3 -0
  69. package/dist/types/types/account.d.ts +9 -0
  70. package/dist/types/types/class.d.ts +67 -0
  71. package/dist/types/types/comments.d.ts +17 -0
  72. package/dist/types/types/commons.d.ts +84 -0
  73. package/dist/types/types/company.d.ts +29 -0
  74. package/dist/types/types/contest.d.ts +161 -0
  75. package/dist/types/types/course.d.ts +13 -0
  76. package/dist/types/types/entity.d.ts +116 -0
  77. package/dist/types/types/excalidraw.d.ts +9 -0
  78. package/dist/types/types/file.d.ts +27 -0
  79. package/dist/types/types/group.d.ts +12 -0
  80. package/dist/types/types/index.d.ts +25 -0
  81. package/dist/types/types/judge.d.ts +75 -0
  82. package/dist/types/types/markdown.d.ts +8 -0
  83. package/dist/types/types/mermaid.d.ts +8 -0
  84. package/dist/types/types/notification.d.ts +7 -0
  85. package/dist/types/types/prisma.d.ts +284 -0
  86. package/dist/types/types/problems.d.ts +102 -0
  87. package/dist/types/types/services.d.ts +213 -0
  88. package/dist/types/types/sheet.d.ts +103 -0
  89. package/dist/types/types/socket.d.ts +49 -0
  90. package/dist/types/types/submission.d.ts +5 -0
  91. package/dist/types/types/teams.d.ts +73 -0
  92. package/dist/types/types/users.d.ts +59 -0
  93. package/dist/types/types/virtual-user.d.ts +7 -0
  94. package/dist/types/types/worksheet.d.ts +42 -0
  95. package/package.json +38 -0
@@ -0,0 +1,34 @@
1
+ import { CourseBaseDocument } from '../types';
2
+ import { EntityMembersDTO, EntityMembersResponseDTO } from './entity';
3
+ import { UserCompanyBasicInfoResponseDTO } from './user';
4
+ import { WorksheetSummaryListResponseDTO } from './worksheet';
5
+ export type CourseUserResponseDTO = {
6
+ isOwner: boolean;
7
+ isManager: boolean;
8
+ isSpectator: boolean;
9
+ isParticipant: boolean;
10
+ isGuest: boolean;
11
+ };
12
+ export interface CourseSummaryListResponseDTO {
13
+ key: string;
14
+ title: string;
15
+ abstract: string;
16
+ description: string;
17
+ coverImageUrl: string;
18
+ owner: UserCompanyBasicInfoResponseDTO;
19
+ user: CourseUserResponseDTO;
20
+ }
21
+ export interface CourseLessonsWorksheetDataResponseDTO extends Pick<WorksheetSummaryListResponseDTO, 'key' | 'name' | 'content'> {
22
+ }
23
+ export interface CourseDataResponseDTO extends CourseSummaryListResponseDTO {
24
+ lessons: {
25
+ worksheet: CourseLessonsWorksheetDataResponseDTO;
26
+ }[];
27
+ members: EntityMembersResponseDTO;
28
+ }
29
+ export interface UpsertCourseDTO extends Omit<CourseBaseDocument, 'members' | 'key' | 'lessons' | 'state'> {
30
+ lessons: {
31
+ worksheetKey: string;
32
+ }[];
33
+ members: EntityMembersDTO;
34
+ }
@@ -0,0 +1,92 @@
1
+ import { EntityAccess, EntityMembersRank } from '../types';
2
+ import { UserCompanyBasicInfoResponseDTO } from './user';
3
+ export interface EntityMembersDTO {
4
+ rankAdministrators: EntityMembersRank;
5
+ administrators: string[];
6
+ rankManagers: EntityMembersRank;
7
+ managers: string[];
8
+ rankGuests: EntityMembersRank;
9
+ guests: string[];
10
+ rankSpectators: EntityMembersRank;
11
+ spectators: string[];
12
+ rankParticipants: EntityMembersRank;
13
+ participants: string[];
14
+ }
15
+ export interface EntityMembersResponseDTO {
16
+ rankAdministrators: EntityMembersRank;
17
+ administrators: {
18
+ [key: string]: DocumentMemberResponseDTO;
19
+ };
20
+ rankManagers: EntityMembersRank;
21
+ managers: {
22
+ [key: string]: DocumentMemberResponseDTO;
23
+ };
24
+ rankGuests: EntityMembersRank;
25
+ guests: {
26
+ [key: string]: DocumentMemberResponseDTO;
27
+ };
28
+ rankSpectators: EntityMembersRank;
29
+ spectators: {
30
+ [key: string]: DocumentMemberResponseDTO;
31
+ };
32
+ rankParticipants: EntityMembersRank;
33
+ participants: {
34
+ [key: string]: DocumentMemberResponseDTO;
35
+ };
36
+ }
37
+ export interface DocumentUserResponseDTO {
38
+ isOwner: boolean;
39
+ isManager: boolean;
40
+ isSpectator: boolean;
41
+ }
42
+ export declare enum MemberType {
43
+ USER = "USER",
44
+ TEAM = "TEAM"
45
+ }
46
+ export interface DocumentMemberResponseDTO extends UserCompanyBasicInfoResponseDTO {
47
+ type: MemberType;
48
+ }
49
+ export interface DocumentMemberWithTimestampsResponseDTO extends DocumentMemberResponseDTO {
50
+ type: MemberType;
51
+ lastVisitTimestamp: number;
52
+ joinedAtTimestamp: number;
53
+ }
54
+ export interface EntityMembersWithTimestampsResponseDTO {
55
+ rankAdministrators: EntityMembersRank;
56
+ administrators: {
57
+ [key: string]: DocumentMemberWithTimestampsResponseDTO;
58
+ };
59
+ rankManagers: EntityMembersRank;
60
+ managers: {
61
+ [key: string]: DocumentMemberWithTimestampsResponseDTO;
62
+ };
63
+ rankGuests: EntityMembersRank;
64
+ guests: {
65
+ [key: string]: DocumentMemberWithTimestampsResponseDTO;
66
+ };
67
+ rankSpectators: EntityMembersRank;
68
+ spectators: {
69
+ [key: string]: DocumentMemberWithTimestampsResponseDTO;
70
+ };
71
+ rankParticipants: EntityMembersRank;
72
+ participants: {
73
+ [key: string]: DocumentMemberWithTimestampsResponseDTO;
74
+ };
75
+ }
76
+ export interface DocumentMembersResponseDTO {
77
+ access: EntityAccess;
78
+ managers: {
79
+ [key: string]: DocumentMemberResponseDTO;
80
+ };
81
+ spectators: {
82
+ [key: string]: DocumentMemberResponseDTO;
83
+ };
84
+ }
85
+ export interface DocumentCreateResponseDTO {
86
+ key: string;
87
+ }
88
+ export interface MetadataResponseDTO {
89
+ title: string;
90
+ description: string;
91
+ cover: string;
92
+ }
@@ -0,0 +1,12 @@
1
+ import { ExcalidrawBaseDocument } from '../types';
2
+ import { EntityMembersDTO, EntityMembersResponseDTO } from './entity';
3
+ import { UserCompanyBasicInfoResponseDTO } from './user';
4
+ export interface ExcalidrawResponseDTO extends Omit<ExcalidrawBaseDocument, 'members'> {
5
+ owner: UserCompanyBasicInfoResponseDTO;
6
+ members: EntityMembersResponseDTO;
7
+ updatedAt: number;
8
+ createdAt: number;
9
+ }
10
+ export interface UpsertExcalidrawDTO extends Omit<ExcalidrawBaseDocument, 'key' | 'members'> {
11
+ members: EntityMembersDTO;
12
+ }
@@ -0,0 +1,34 @@
1
+ import { EntityState, FileContent, FileMemberRole, SummaryFileContent, UserBasic } from '../types';
2
+ import { DocumentMembersResponseDTO, DocumentUserResponseDTO } from './entity';
3
+ export interface FileBasic {
4
+ name: string;
5
+ description: string;
6
+ state: EntityState;
7
+ }
8
+ export interface CreateFileDTO extends FileBasic {
9
+ folderId: string;
10
+ content: FileContent;
11
+ members: FileMembersDTO;
12
+ }
13
+ export interface FileSummaryListResponseDTO extends FileBasic {
14
+ key: string;
15
+ updatedAt: Date;
16
+ content: SummaryFileContent;
17
+ user: DocumentUserResponseDTO;
18
+ owner: UserBasic;
19
+ }
20
+ export interface FileDataResponseDTO extends FileSummaryListResponseDTO {
21
+ content: FileContent;
22
+ members: DocumentMembersResponseDTO;
23
+ parentFolders: {
24
+ name: string;
25
+ key: string;
26
+ isInOwnerFolder: boolean;
27
+ isInEditorFolder: boolean;
28
+ isInViewerFolder: boolean;
29
+ isInArchivedFolder: boolean;
30
+ }[];
31
+ }
32
+ export interface FileMembersDTO {
33
+ [key: string]: FileMemberRole;
34
+ }
@@ -0,0 +1,6 @@
1
+ export interface ImageSummaryResponseDTO {
2
+ imageUrl: string;
3
+ imageThumbnailUrl: string;
4
+ lastModifiedTimestamp: number;
5
+ size: number;
6
+ }
@@ -0,0 +1,25 @@
1
+ export * from './class';
2
+ export * from './code';
3
+ export * from './comments';
4
+ export * from './company';
5
+ export * from './contest';
6
+ export * from './course';
7
+ export * from './entity';
8
+ export * from './excalidraw';
9
+ export * from './file';
10
+ export * from './image';
11
+ export * from './judge';
12
+ export * from './problem';
13
+ export * from './markdown';
14
+ export * from './mermaid';
15
+ export * from './scoreboard';
16
+ export * from './session';
17
+ export * from './socket';
18
+ export * from './statistics';
19
+ export * from './submission';
20
+ export * from './system';
21
+ export * from './url';
22
+ export * from './user';
23
+ export * from './virtual-user';
24
+ export * from './worksheet';
25
+ export * from './worksheet-submissions';
@@ -0,0 +1,16 @@
1
+ import { JudgeBaseDocument } from '../types';
2
+ export interface JudgeDataResponseDTO extends Omit<JudgeBaseDocument, 'getProblemUrl' | 'getUserSubmissionsUrl' | 'getLoginUrl' | 'getSubmitUrl'> {
3
+ }
4
+ export interface JudgeSummaryListResponseDTO extends Omit<JudgeBaseDocument, 'getProblemUrl' | 'getUserSubmissionsUrl' | 'getSubmissionUrl' | 'getLoginUrl' | 'getProfileUrl' | 'getSubmitUrl'> {
5
+ }
6
+ export interface JudgeSystemSummaryListResponseDTO extends JudgeSummaryListResponseDTO {
7
+ id: string;
8
+ creationTimestamp: number;
9
+ updateTimestamp: number;
10
+ getLoginUrl: string;
11
+ getProfileUrl: string;
12
+ getSubmitUrl: string;
13
+ getSubmissionUrl: string;
14
+ getProblemUrl: string;
15
+ getUserSubmissionsUrl: string;
16
+ }
@@ -0,0 +1,12 @@
1
+ import { MarkdownBaseDocument } from '../types';
2
+ import { EntityMembersDTO, EntityMembersResponseDTO } from './entity';
3
+ import { UserCompanyBasicInfoResponseDTO } from './user';
4
+ export interface MarkdownResponseDTO extends Omit<MarkdownBaseDocument, 'members'> {
5
+ owner: UserCompanyBasicInfoResponseDTO;
6
+ members: EntityMembersResponseDTO;
7
+ updatedAt: number;
8
+ createdAt: number;
9
+ }
10
+ export interface UpsertMarkdownDTO extends Omit<MarkdownBaseDocument, 'key' | 'members'> {
11
+ members: EntityMembersDTO;
12
+ }
@@ -0,0 +1,12 @@
1
+ import { MermaidBaseDocument } from '../types';
2
+ import { EntityMembersDTO, EntityMembersResponseDTO } from './entity';
3
+ import { UserCompanyBasicInfoResponseDTO } from './user';
4
+ export interface MermaidResponseDTO extends Omit<MermaidBaseDocument, 'members'> {
5
+ owner: UserCompanyBasicInfoResponseDTO;
6
+ members: EntityMembersResponseDTO;
7
+ updatedAt: number;
8
+ createdAt: number;
9
+ }
10
+ export interface UpsertMermaidDTO extends Omit<MermaidBaseDocument, 'key' | 'members'> {
11
+ members: EntityMembersDTO;
12
+ }
@@ -0,0 +1,66 @@
1
+ import { EntityState, JudgeBaseDocument, ProblemBaseDocument, ProblemScoringMode, ProblemSettings, ProblemStatement, ProblemType, ProblemUser, TextLanguage } from '../types';
2
+ import { EntityMembersDTO, EntityMembersResponseDTO } from './entity';
3
+ import { EntityOwnerSystemSummaryListResponseDTO, UserCompanyBasicInfoResponseDTO } from './user';
4
+ export interface ProblemJudgeSummaryListResponseDTO extends Pick<JudgeBaseDocument, 'isExternal' | 'isSubmitSupported' | 'name' | 'key'> {
5
+ isCustom: boolean;
6
+ isMain: boolean;
7
+ }
8
+ export interface EntityCompanySummaryListResponseDTO {
9
+ key: string;
10
+ }
11
+ export interface ProblemBasicSummaryListResponseDTO {
12
+ company: EntityCompanySummaryListResponseDTO;
13
+ judge: ProblemJudgeSummaryListResponseDTO;
14
+ key: string;
15
+ name: string;
16
+ shortname: string;
17
+ tags: string[];
18
+ settings: {
19
+ scoringMode: ProblemScoringMode;
20
+ type: ProblemType;
21
+ };
22
+ members: EntityMembersResponseDTO;
23
+ externalUrl: string;
24
+ }
25
+ export interface ProblemSummaryListResponseDTO extends ProblemBasicSummaryListResponseDTO {
26
+ user: ProblemUser;
27
+ owner: UserCompanyBasicInfoResponseDTO;
28
+ }
29
+ export interface ProblemDataResponseDTO extends ProblemSummaryListResponseDTO {
30
+ author: string;
31
+ statement: ProblemStatement;
32
+ editorial: TextLanguage;
33
+ settings: ProblemSettings;
34
+ ownerNickname: string;
35
+ state: EntityState;
36
+ }
37
+ export interface ProblemJudgeSystemSummaryListResponseDTO extends ProblemJudgeSummaryListResponseDTO {
38
+ name: string;
39
+ id: string;
40
+ }
41
+ export interface EntityCompanySystemSummaryListResponseDTO extends EntityCompanySummaryListResponseDTO {
42
+ name: string;
43
+ id: string;
44
+ }
45
+ export interface ProblemSystemSummaryListResponseDTO extends ProblemSummaryListResponseDTO {
46
+ state: EntityState;
47
+ id: string;
48
+ owner: EntityOwnerSystemSummaryListResponseDTO;
49
+ judge: ProblemJudgeSystemSummaryListResponseDTO;
50
+ company: EntityCompanySystemSummaryListResponseDTO;
51
+ creationTimestamp: number;
52
+ updateTimestamp: number;
53
+ }
54
+ export interface ProblemTestCaseResponse {
55
+ testCaseKey: string;
56
+ groups: number[];
57
+ inputFileSize: number;
58
+ inputFileLastModified: Date;
59
+ outputFileSize: number;
60
+ outputFileLastModified: Date;
61
+ }
62
+ export interface ProblemTestCasesResponseDTO extends Array<ProblemTestCaseResponse> {
63
+ }
64
+ export interface UpsertProblemDTO extends Omit<ProblemBaseDocument, 'testCases' | 'testCasesUpdatedAtTimestamp' | 'key' | 'members' | 'judgeId'> {
65
+ members: EntityMembersDTO;
66
+ }
@@ -0,0 +1,35 @@
1
+ import { UserSummaryListResponseDTO } from './user';
2
+ export type ScoreboardProblem = {
3
+ attempts: number;
4
+ points: number;
5
+ success: boolean;
6
+ penalty: number;
7
+ isFirstAccepted: boolean;
8
+ indexAccepted: number;
9
+ };
10
+ export type ScoreboardProblems = {
11
+ [key: string]: ScoreboardProblem;
12
+ };
13
+ export interface ScoreboardResponseDTO {
14
+ user: UserSummaryListResponseDTO;
15
+ totalPenalty: number;
16
+ totalPoints: number;
17
+ position: number;
18
+ problems: ScoreboardProblems;
19
+ }
20
+ export type ScoreboardTimelineEventResponseDTO = {
21
+ timestamp: number;
22
+ userKey: string;
23
+ problemKey: string;
24
+ attempts: number;
25
+ points: number;
26
+ success: boolean;
27
+ indexAccepted: number;
28
+ penalty: number;
29
+ };
30
+ export interface ScoreboardHistoryResponseDTO {
31
+ contestKey: string;
32
+ userProblemTimelineRefs: Record<string, number[]>;
33
+ timelineEvents: ScoreboardTimelineEventResponseDTO[];
34
+ participants: Record<string, UserSummaryListResponseDTO>;
35
+ }
@@ -0,0 +1,15 @@
1
+ import { EntityCompanySystemSummaryListResponseDTO } from './problem';
2
+ import { UserBasicResponseDTO } from './user';
3
+ export interface SessionBasicResponseDTO {
4
+ id: string;
5
+ deviceName: string;
6
+ osName: string;
7
+ validUntilTimestamp: number;
8
+ creationTimestamp: number;
9
+ updateTimestamp: number;
10
+ }
11
+ export interface UserSessionSystemSummaryListResponseDTO extends SessionBasicResponseDTO {
12
+ userId: string;
13
+ user: UserBasicResponseDTO;
14
+ company: EntityCompanySystemSummaryListResponseDTO;
15
+ }
@@ -0,0 +1,256 @@
1
+ import { ClientId, Device, ProblemVerdict, SubmissionRunStatus, WebSocketMessageEvent, WebSocketResponseEvent, WebSocketResponseEventKey, WebSocketSubscriptionEvent } from '../types';
2
+ import { Ec2Instance, EcsTaskDefinitionSystemSummaryListResponseDTO, EcsTaskSystemSummaryListResponseDTO, SsmSession } from './system';
3
+ import { PingResponseDTO, UserCompanyBasicInfoResponseDTO } from './user';
4
+ interface WebsocketMessage {
5
+ event: WebSocketMessageEvent;
6
+ clientId: ClientId;
7
+ }
8
+ export interface PingWebSocketEventDTO extends WebsocketMessage {
9
+ event: WebSocketMessageEvent.PING;
10
+ }
11
+ export interface ClientTrackLocationWebSocketEventDTO extends WebsocketMessage {
12
+ event: WebSocketMessageEvent.CLIENT_TRACK_LOCATION;
13
+ href: string;
14
+ }
15
+ export interface ClientTrackScreenshotWebSocketEventDTO extends WebsocketMessage {
16
+ event: WebSocketMessageEvent.CLIENT_TRACK_SCREENSHOT;
17
+ screenshot: string;
18
+ }
19
+ export interface ClientTrackDeviceWebSocketEventDTO extends WebsocketMessage {
20
+ event: WebSocketMessageEvent.CLIENT_TRACK_DEVICE;
21
+ device: Device;
22
+ }
23
+ export interface ChatCompletionsWebSocketEventDTO extends WebsocketMessage {
24
+ event: WebSocketMessageEvent.CHAT_COMPLETIONS;
25
+ chatAiId: string;
26
+ content: string;
27
+ }
28
+ export type WebSocketMessageEventDTO = PingWebSocketEventDTO | ClientTrackLocationWebSocketEventDTO | ClientTrackScreenshotWebSocketEventDTO | ClientTrackDeviceWebSocketEventDTO | ChatCompletionsWebSocketEventDTO;
29
+ export interface WebsocketSubscription {
30
+ event: WebSocketSubscriptionEvent;
31
+ clientId: ClientId;
32
+ }
33
+ export interface SubscribeCodeRunStatusWebSocketEventDTO extends WebsocketSubscription {
34
+ event: WebSocketSubscriptionEvent.SUBSCRIBE_CODE_RUN_STATUS;
35
+ runId: string;
36
+ }
37
+ export interface UnsubscribeCodeRunStatusWebSocketEventDTO extends WebsocketSubscription {
38
+ event: WebSocketSubscriptionEvent.UNSUBSCRIBE_CODE_RUN_STATUS;
39
+ runId: string;
40
+ }
41
+ export interface SubscribeSubmissionRunStatusWebSocketEventDTO extends WebsocketSubscription {
42
+ event: WebSocketSubscriptionEvent.SUBSCRIBE_SUBMISSION_RUN_STATUS;
43
+ submitId: string;
44
+ }
45
+ export interface UnsubscribeSubmissionRunStatusWebSocketEventDTO extends WebsocketSubscription {
46
+ event: WebSocketSubscriptionEvent.UNSUBSCRIBE_SUBMISSION_RUN_STATUS;
47
+ submitId: string;
48
+ }
49
+ export interface SubscribeGetDataWebSocketEventDTO extends WebsocketSubscription {
50
+ dataId: string;
51
+ event: WebSocketSubscriptionEvent.SUBSCRIBE_GET_DATA;
52
+ }
53
+ export interface UnsubscribeGetDataWebSocketEventDTO extends WebsocketSubscription {
54
+ dataId: string;
55
+ event: WebSocketSubscriptionEvent.UNSUBSCRIBE_GET_DATA;
56
+ }
57
+ export interface SubscribeProblemCrawledWebSocketEventDTO extends WebsocketSubscription {
58
+ event: WebSocketSubscriptionEvent.SUBSCRIBE_PROBLEM_CRAWLED;
59
+ problemKey: string;
60
+ }
61
+ export interface UnsubscribeProblemCrawledWebSocketEventDTO extends WebsocketSubscription {
62
+ event: WebSocketSubscriptionEvent.UNSUBSCRIBE_PROBLEM_CRAWLED;
63
+ problemKey: string;
64
+ }
65
+ export interface SubscribeSubmissionsCrawlWebSocketEventDTO extends WebsocketSubscription {
66
+ event: WebSocketSubscriptionEvent.SUBSCRIBE_SUBMISSIONS_CRAWL;
67
+ contestKey: string;
68
+ problemKeys: string;
69
+ }
70
+ export interface UnsubscribeSubmissionsCrawlWebSocketEventDTO extends WebsocketSubscription {
71
+ event: WebSocketSubscriptionEvent.UNSUBSCRIBE_SUBMISSIONS_CRAWL;
72
+ contestKey: string;
73
+ problemKeys: string;
74
+ }
75
+ export interface SubscribeContestChangesWebSocketEventDTO extends WebsocketSubscription {
76
+ event: WebSocketSubscriptionEvent.SUBSCRIBE_CONTEST_CHANGES;
77
+ contestKey: string;
78
+ }
79
+ export interface UnsubscribeContestChangesWebSocketEventDTO extends WebsocketSubscription {
80
+ event: WebSocketSubscriptionEvent.UNSUBSCRIBE_CONTEST_CHANGES;
81
+ contestKey: string;
82
+ }
83
+ export interface SubscribeClientTrackWebSocketEventDTO extends WebsocketSubscription {
84
+ event: WebSocketSubscriptionEvent.SUBSCRIBE_CLIENT_TRACK;
85
+ }
86
+ export interface UnsubscribeClientTrackWebSocketEventDTO extends WebsocketSubscription {
87
+ event: WebSocketSubscriptionEvent.UNSUBSCRIBE_CLIENT_TRACK;
88
+ }
89
+ export interface SubscribeUserNotificationWebsocketEventDTO extends WebsocketSubscription {
90
+ event: WebSocketSubscriptionEvent.SUBSCRIBE_USER_NOTIFICATION;
91
+ userKey: string;
92
+ }
93
+ export interface UnsubscribeUserNotificationWebSocketEventDTO extends WebsocketSubscription {
94
+ event: WebSocketSubscriptionEvent.UNSUBSCRIBE_USER_NOTIFICATION;
95
+ userKey: string;
96
+ }
97
+ export type WebSocketSubscribeEventDTO = SubscribeCodeRunStatusWebSocketEventDTO | SubscribeSubmissionRunStatusWebSocketEventDTO | SubscribeGetDataWebSocketEventDTO | SubscribeProblemCrawledWebSocketEventDTO | SubscribeSubmissionsCrawlWebSocketEventDTO | SubscribeContestChangesWebSocketEventDTO | SubscribeClientTrackWebSocketEventDTO | SubscribeUserNotificationWebsocketEventDTO;
98
+ export type WebSocketUnsubscribeEventDTO = UnsubscribeCodeRunStatusWebSocketEventDTO | UnsubscribeSubmissionRunStatusWebSocketEventDTO | UnsubscribeGetDataWebSocketEventDTO | UnsubscribeProblemCrawledWebSocketEventDTO | UnsubscribeSubmissionsCrawlWebSocketEventDTO | UnsubscribeContestChangesWebSocketEventDTO | UnsubscribeClientTrackWebSocketEventDTO | UnsubscribeUserNotificationWebSocketEventDTO;
99
+ export interface WebSocketResponse {
100
+ event: WebSocketResponseEvent;
101
+ key: WebSocketResponseEventKey;
102
+ connectionId: string;
103
+ messageTimestamp: number;
104
+ }
105
+ export interface PongWebSocketResponseEventDTO extends WebSocketResponse {
106
+ event: WebSocketResponseEvent.PONG;
107
+ data: PingResponseDTO;
108
+ }
109
+ export type InfoLogCaseStatus = {
110
+ inputKey: string;
111
+ out: string;
112
+ err: string;
113
+ log: string;
114
+ };
115
+ export interface CodeRunStatusWebSocketResponseEventDTO extends WebSocketResponse {
116
+ event: WebSocketResponseEvent.CODE_RUN_STATUS;
117
+ runId: string;
118
+ status: SubmissionRunStatus;
119
+ log: InfoLogCaseStatus;
120
+ }
121
+ export type TestInfo = {
122
+ sampleCase: boolean;
123
+ caseResultsExecuted: number;
124
+ caseResultsTotal: number;
125
+ };
126
+ export interface SubmissionRunStatusWebSocketResponseEventDTO extends WebSocketResponse {
127
+ event: WebSocketResponseEvent.SUBMISSION_RUN_STATUS;
128
+ submitId: string;
129
+ status: SubmissionRunStatus;
130
+ verdict: ProblemVerdict;
131
+ points: number;
132
+ testInfo?: TestInfo;
133
+ shouldValidateContest: boolean;
134
+ }
135
+ export interface UserMessageWebSocketResponseEventDTO extends WebSocketResponse {
136
+ event: WebSocketResponseEvent.USER_MESSAGE;
137
+ user: UserCompanyBasicInfoResponseDTO;
138
+ content: {
139
+ type: 'SUBMISSION_VERDICT';
140
+ contestName: string;
141
+ problemName: string;
142
+ verdict: ProblemVerdict;
143
+ points: number;
144
+ };
145
+ }
146
+ export interface SendDataWebSocketResponseEventDTO extends WebSocketResponse {
147
+ dataId: string;
148
+ content: any;
149
+ }
150
+ export interface SendDataEcsTaskDefinitionListWebSocketResponseEventDTO extends SendDataWebSocketResponseEventDTO {
151
+ event: WebSocketResponseEvent.SEND_DATA_ECS_TASK_DEFINITIONS_LIST;
152
+ content: EcsTaskDefinitionSystemSummaryListResponseDTO[];
153
+ }
154
+ export interface SendDataEcsTasksListWebSocketResponseEventDTO extends SendDataWebSocketResponseEventDTO {
155
+ event: WebSocketResponseEvent.SEND_DATA_ECS_TASKS_LIST;
156
+ content: EcsTaskSystemSummaryListResponseDTO[];
157
+ }
158
+ export interface SendDataEc2InstancesListWebSocketResponseEventDTO extends SendDataWebSocketResponseEventDTO {
159
+ event: WebSocketResponseEvent.SEND_DATA_EC2_INSTANCES_LIST;
160
+ content: Ec2Instance[];
161
+ }
162
+ export interface SendDataSsmSessionsListWebSocketResponseEventDTO extends SendDataWebSocketResponseEventDTO {
163
+ event: WebSocketResponseEvent.SEND_DATA_SSM_SESSIONS_LIST;
164
+ content: SsmSession[];
165
+ }
166
+ export interface SendDataRunCommandWebSocketResponseEventDTO extends SendDataWebSocketResponseEventDTO {
167
+ event: WebSocketResponseEvent.SEND_DATA_RUN_COMMAND;
168
+ content: {
169
+ testCaseOutContent: string;
170
+ testCaseErrorContent: string;
171
+ testCaseLogContent: string;
172
+ };
173
+ }
174
+ export interface SendDataClientTrackWebSocketResponseEventDTO extends SendDataWebSocketResponseEventDTO {
175
+ event: WebSocketResponseEvent.SEND_DATA_CLIENT_TRACK;
176
+ content: {
177
+ location?: string;
178
+ screenshot?: string;
179
+ device?: Device;
180
+ };
181
+ }
182
+ export interface SendDataChatCompletionsWebSocketResponseEventDTO extends SendDataWebSocketResponseEventDTO {
183
+ event: WebSocketResponseEvent.SEND_DATA_CHAT_COMPLETIONS;
184
+ content: {
185
+ choices: [{
186
+ index: number;
187
+ message: {
188
+ role: string;
189
+ content: string;
190
+ };
191
+ }];
192
+ rawData: any;
193
+ };
194
+ }
195
+ export interface ProblemCrawledWebSocketResponseEventDTO extends WebSocketResponse {
196
+ event: WebSocketResponseEvent.PROBLEM_CRAWLED;
197
+ content: {
198
+ problemKey: string;
199
+ };
200
+ }
201
+ export interface SubmissionsCrawlWebSocketResponseEventDTO extends WebSocketResponse {
202
+ event: WebSocketResponseEvent.SUBMISSIONS_CRAWL;
203
+ content: {
204
+ contestKey: string;
205
+ problemKeys: string;
206
+ judge: string;
207
+ userKey: string;
208
+ submissionsCount: number;
209
+ submitId: string;
210
+ isNewSubmission: boolean;
211
+ };
212
+ }
213
+ export interface ContestChangesWebSocketResponseEventDTO extends WebSocketResponse {
214
+ event: WebSocketResponseEvent.CONTEST_CHANGES;
215
+ content: {
216
+ contestKey: string;
217
+ };
218
+ }
219
+ export interface ClientTrackWebSocketResponseEventDTO extends WebSocketResponse {
220
+ event: WebSocketResponseEvent.CLIENT_TRACK;
221
+ location: boolean;
222
+ screenshot: boolean;
223
+ device: boolean;
224
+ }
225
+ export interface UserNotificationWebSocketResponseEventDTO extends WebSocketResponse {
226
+ event: WebSocketResponseEvent.USER_NOTIFICATION_SUBMISSION | WebSocketResponseEvent.USER_NOTIFICATION_CONTEST_CLARIFICATION;
227
+ content: any;
228
+ }
229
+ export interface UserNotificationSubmissionWebSocketResponseEventDTO extends UserNotificationWebSocketResponseEventDTO {
230
+ event: WebSocketResponseEvent.USER_NOTIFICATION_SUBMISSION;
231
+ content: {
232
+ contest: {
233
+ key: string;
234
+ name: string;
235
+ problemIndex: string;
236
+ isFrozen: boolean;
237
+ isQuiet: boolean;
238
+ isUpsolving: boolean;
239
+ } | null;
240
+ problem: {
241
+ key: string;
242
+ name: string;
243
+ };
244
+ verdict: ProblemVerdict;
245
+ points: number;
246
+ submissionId: string;
247
+ };
248
+ }
249
+ export interface UserNotificationContestClarificationWebSocketResponseEventDTO extends UserNotificationWebSocketResponseEventDTO {
250
+ event: WebSocketResponseEvent.USER_NOTIFICATION_CONTEST_CLARIFICATION;
251
+ content: {
252
+ contestKey: string;
253
+ };
254
+ }
255
+ export type WebSocketResponseEventDTO = PongWebSocketResponseEventDTO | CodeRunStatusWebSocketResponseEventDTO | SubmissionRunStatusWebSocketResponseEventDTO | UserMessageWebSocketResponseEventDTO | SendDataEcsTaskDefinitionListWebSocketResponseEventDTO | SendDataEcsTasksListWebSocketResponseEventDTO | SendDataEc2InstancesListWebSocketResponseEventDTO | SendDataSsmSessionsListWebSocketResponseEventDTO | ProblemCrawledWebSocketResponseEventDTO | SendDataChatCompletionsWebSocketResponseEventDTO | SubmissionsCrawlWebSocketResponseEventDTO | ContestChangesWebSocketResponseEventDTO | SendDataRunCommandWebSocketResponseEventDTO | SendDataClientTrackWebSocketResponseEventDTO | ClientTrackWebSocketResponseEventDTO | UserNotificationSubmissionWebSocketResponseEventDTO | UserNotificationContestClarificationWebSocketResponseEventDTO;
256
+ export {};
@@ -0,0 +1,43 @@
1
+ import { UserCompanyBasicInfoResponseDTO } from './user';
2
+ export type GroupByTimestampKey = 'year' | 'month' | 'day' | 'hour' | 'minute' | 'second' | number;
3
+ export type StatisticsGrouped<T> = Partial<Record<GroupByTimestampKey, Record<number, T>>>;
4
+ export interface StatisticsCompanyResponseDTO {
5
+ codeEditorRuns: StatisticsGrouped<number>;
6
+ judgingRuns: StatisticsGrouped<number>;
7
+ reJudgingRuns: StatisticsGrouped<number>;
8
+ users: number;
9
+ problems: number;
10
+ contests: number;
11
+ }
12
+ export interface StatisticsProblemResponseDTO {
13
+ verdict: {
14
+ [key: string]: {
15
+ key: string;
16
+ value: number;
17
+ label: string;
18
+ };
19
+ };
20
+ language: {
21
+ [key: string]: {
22
+ key: string;
23
+ value: number;
24
+ label: string;
25
+ };
26
+ };
27
+ date: StatisticsGrouped<number>;
28
+ }
29
+ export type StatisticsUserTrackDataResponseDTO = {
30
+ timestamp: number;
31
+ history: {
32
+ href: string;
33
+ uiId: string;
34
+ timestamp: number;
35
+ }[];
36
+ };
37
+ export interface StatisticsUserTrackResponseDTO {
38
+ [key: string]: {
39
+ user: UserCompanyBasicInfoResponseDTO;
40
+ sessionId: string;
41
+ data: StatisticsGrouped<StatisticsUserTrackDataResponseDTO>;
42
+ };
43
+ }