@juki-team/commons 0.1.43 → 0.1.46

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 (65) hide show
  1. package/dist/cjs/index.cjs +514 -546
  2. package/dist/esm/index.js +416 -491
  3. package/dist/types/constants/entity.d.ts +3 -3
  4. package/dist/types/constants/index.d.ts +1 -1
  5. package/dist/types/constants/organization.d.ts +9 -0
  6. package/dist/types/constants/websocket.d.ts +18 -22
  7. package/dist/types/dto/class.d.ts +34 -34
  8. package/dist/types/dto/code.d.ts +1 -1
  9. package/dist/types/dto/comments.d.ts +9 -9
  10. package/dist/types/dto/contest.d.ts +46 -42
  11. package/dist/types/dto/course.d.ts +13 -13
  12. package/dist/types/dto/entity.d.ts +30 -25
  13. package/dist/types/dto/excalidraw.d.ts +7 -7
  14. package/dist/types/dto/file.d.ts +10 -15
  15. package/dist/types/dto/image.d.ts +2 -2
  16. package/dist/types/dto/index.d.ts +1 -1
  17. package/dist/types/dto/judge.d.ts +5 -5
  18. package/dist/types/dto/markdown.d.ts +7 -7
  19. package/dist/types/dto/mermaid.d.ts +7 -7
  20. package/dist/types/dto/{company.d.ts → organization.d.ts} +16 -16
  21. package/dist/types/dto/problem.d.ts +22 -22
  22. package/dist/types/dto/scoreboard.d.ts +8 -18
  23. package/dist/types/dto/session.d.ts +9 -9
  24. package/dist/types/dto/socket.d.ts +76 -125
  25. package/dist/types/dto/statistics.d.ts +7 -7
  26. package/dist/types/dto/submission.d.ts +22 -22
  27. package/dist/types/dto/system.d.ts +7 -82
  28. package/dist/types/dto/url.d.ts +1 -1
  29. package/dist/types/dto/user.d.ts +22 -22
  30. package/dist/types/dto/virtual-user.d.ts +3 -25
  31. package/dist/types/dto/worksheet-submissions.d.ts +22 -22
  32. package/dist/types/dto/worksheet.d.ts +12 -12
  33. package/dist/types/helpers/class.d.ts +4 -4
  34. package/dist/types/helpers/comments.d.ts +1 -1
  35. package/dist/types/helpers/contest.d.ts +4 -4
  36. package/dist/types/helpers/date.d.ts +68 -0
  37. package/dist/types/helpers/document.d.ts +2 -2
  38. package/dist/types/helpers/index.d.ts +3 -0
  39. package/dist/types/helpers/number.d.ts +2 -0
  40. package/dist/types/helpers/responses.d.ts +1 -1
  41. package/dist/types/helpers/socket.d.ts +48 -50
  42. package/dist/types/helpers/time.d.ts +0 -11
  43. package/dist/types/helpers/user.d.ts +2 -2
  44. package/dist/types/index.d.ts +0 -1
  45. package/dist/types/types/class.d.ts +6 -6
  46. package/dist/types/types/comments.d.ts +2 -2
  47. package/dist/types/types/contest.d.ts +20 -23
  48. package/dist/types/types/entity.d.ts +13 -19
  49. package/dist/types/types/file.d.ts +6 -0
  50. package/dist/types/types/index.d.ts +3 -1
  51. package/dist/types/types/{company.d.ts → organization.d.ts} +2 -2
  52. package/dist/types/types/prisma.d.ts +2 -2
  53. package/dist/types/types/problems.d.ts +1 -1
  54. package/dist/types/types/scoreboard.d.ts +11 -0
  55. package/dist/types/types/sheet.d.ts +1 -1
  56. package/dist/types/types/socket.d.ts +32 -16
  57. package/dist/types/types/system.d.ts +76 -0
  58. package/dist/types/types/teams.d.ts +8 -8
  59. package/dist/types/types/virtual-user.d.ts +22 -0
  60. package/package.json +1 -1
  61. package/dist/types/constants/company.d.ts +0 -9
  62. package/dist/types/prototypes/Date.d.ts +0 -62
  63. package/dist/types/prototypes/Number.d.ts +0 -7
  64. package/dist/types/prototypes/index.d.ts +0 -3
  65. /package/dist/types/{prototypes/Error.d.ts → helpers/errors.d.ts} +0 -0
@@ -1,7 +1,7 @@
1
1
  export * from './class';
2
2
  export * from './code';
3
3
  export * from './comments';
4
- export * from './company';
4
+ export * from './organization';
5
5
  export * from './contest';
6
6
  export * from './course';
7
7
  export * from './entity';
@@ -1,12 +1,12 @@
1
1
  import { JudgeBaseDocument } from '../types';
2
- export interface JudgeDataResponseDTO extends Omit<JudgeBaseDocument, 'getProblemUrl' | 'getUserSubmissionsUrl' | 'getLoginUrl' | 'getSubmitUrl'> {
2
+ export interface JudgeDataResponseDto extends Omit<JudgeBaseDocument, 'getProblemUrl' | 'getUserSubmissionsUrl' | 'getLoginUrl' | 'getSubmitUrl'> {
3
3
  }
4
- export interface JudgeSummaryListResponseDTO extends Omit<JudgeBaseDocument, 'getProblemUrl' | 'getUserSubmissionsUrl' | 'getSubmissionUrl' | 'getLoginUrl' | 'getProfileUrl' | 'getSubmitUrl'> {
4
+ export interface JudgeSummaryListResponseDto extends Omit<JudgeBaseDocument, 'getProblemUrl' | 'getUserSubmissionsUrl' | 'getSubmissionUrl' | 'getLoginUrl' | 'getProfileUrl' | 'getSubmitUrl'> {
5
5
  }
6
- export interface JudgeSystemSummaryListResponseDTO extends JudgeSummaryListResponseDTO {
6
+ export interface JudgeSystemSummaryListResponseDto extends JudgeSummaryListResponseDto {
7
7
  id: string;
8
- creationTimestamp: number;
9
- updateTimestamp: number;
8
+ createdAt: number;
9
+ updatedAt: number;
10
10
  getLoginUrl: string;
11
11
  getProfileUrl: string;
12
12
  getSubmitUrl: string;
@@ -1,12 +1,12 @@
1
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;
2
+ import { EntityMembersDto, EntityMembersResponseDto } from './entity';
3
+ import { UserOrganizationBasicInfoResponseDto } from './user';
4
+ export interface MarkdownResponseDto extends Omit<MarkdownBaseDocument, 'members'> {
5
+ owner: UserOrganizationBasicInfoResponseDto;
6
+ members: EntityMembersResponseDto;
7
7
  updatedAt: number;
8
8
  createdAt: number;
9
9
  }
10
- export interface UpsertMarkdownDTO extends Omit<MarkdownBaseDocument, 'key' | 'members'> {
11
- members: EntityMembersDTO;
10
+ export interface UpsertMarkdownDto extends Omit<MarkdownBaseDocument, 'key' | 'members'> {
11
+ members: EntityMembersDto;
12
12
  }
@@ -1,12 +1,12 @@
1
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;
2
+ import { EntityMembersDto, EntityMembersResponseDto } from './entity';
3
+ import { UserOrganizationBasicInfoResponseDto } from './user';
4
+ export interface MermaidResponseDto extends Omit<MermaidBaseDocument, 'members'> {
5
+ owner: UserOrganizationBasicInfoResponseDto;
6
+ members: EntityMembersResponseDto;
7
7
  updatedAt: number;
8
8
  createdAt: number;
9
9
  }
10
- export interface UpsertMermaidDTO extends Omit<MermaidBaseDocument, 'key' | 'members'> {
11
- members: EntityMembersDTO;
10
+ export interface UpsertMermaidDto extends Omit<MermaidBaseDocument, 'key' | 'members'> {
11
+ members: EntityMembersDto;
12
12
  }
@@ -1,35 +1,35 @@
1
- import { CompanyPlan, ResourceInstance, ResourceLogger, Theme } from '../types';
2
- import { EmailDataResponseDTO } from './system';
3
- import { UserCompanyBasicInfoResponseDTO, UserPermissions } from './user';
4
- export interface CompanyJudgeResponseDTO {
1
+ import { OrganizationPlan, ResourceInstance, ResourceLogger, Theme } from '../types';
2
+ import { EmailDataResponseDto } from './system';
3
+ import { UserOrganizationBasicInfoResponseDto, UserPermissions } from './user';
4
+ export interface OrganizationJudgeResponseDto {
5
5
  key: string;
6
6
  name: string;
7
7
  keyPrefix: string;
8
8
  }
9
- export interface CompanyTrustedCompanyResponseDTO {
9
+ export interface OrganizationTrustedOrganizationResponseDto {
10
10
  key: string;
11
11
  name: string;
12
12
  }
13
- export interface CompanyResponseDTO extends EmailDataResponseDTO {
13
+ export interface OrganizationResponseDto extends EmailDataResponseDto {
14
14
  name: string;
15
15
  key: string;
16
16
  hosts: string[];
17
17
  imageUrl: string;
18
- managerUser: UserCompanyBasicInfoResponseDTO;
19
- systemAdminUser: UserCompanyBasicInfoResponseDTO;
20
- plan: CompanyPlan;
21
- startTimestamp: number;
22
- judges: CompanyJudgeResponseDTO[];
23
- trustedCompanies: CompanyTrustedCompanyResponseDTO[];
24
- styles: CompanyStyles;
18
+ managerUser: UserOrganizationBasicInfoResponseDto;
19
+ systemAdminUser: UserOrganizationBasicInfoResponseDto;
20
+ plan: OrganizationPlan;
21
+ startsAt: number;
22
+ judges: OrganizationJudgeResponseDto[];
23
+ trustedOrganizations: OrganizationTrustedOrganizationResponseDto[];
24
+ styles: OrganizationStyles;
25
25
  }
26
- export interface CompanyUserPermissionsResponseDTO extends CompanyResponseDTO {
26
+ export interface OrganizationUserPermissionsResponseDto extends OrganizationResponseDto {
27
27
  userPermissions: UserPermissions;
28
28
  contactEmail: string;
29
29
  contactCellPhoneNumber: string;
30
30
  contactTelegram: string;
31
31
  }
32
- export interface CompanyResourceSpecificationsResponseDTO {
32
+ export interface OrganizationResourceSpecificationsResponseDto {
33
33
  logger: ResourceLogger;
34
34
  runnerInstance: ResourceInstance;
35
35
  runnerListener: {
@@ -48,7 +48,7 @@ export interface CompanyResourceSpecificationsResponseDTO {
48
48
  maximum: number;
49
49
  };
50
50
  }
51
- export type CompanyStyles = Record<Theme, {
51
+ export type OrganizationStyles = Record<Theme, {
52
52
  body: {
53
53
  backgroundColor: string;
54
54
  backgroundColorHighlight: string;
@@ -1,16 +1,16 @@
1
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'> {
2
+ import { EntityMembersDto, EntityMembersResponseDto } from './entity';
3
+ import { EntityOwnerSystemSummaryListResponseDto, UserOrganizationBasicInfoResponseDto } from './user';
4
+ export interface ProblemJudgeSummaryListResponseDto extends Pick<JudgeBaseDocument, 'isExternal' | 'isSubmitSupported' | 'name' | 'key'> {
5
5
  isCustom: boolean;
6
6
  isMain: boolean;
7
7
  }
8
- export interface EntityCompanySummaryListResponseDTO {
8
+ export interface EntityOrganizationSummaryListResponseDto {
9
9
  key: string;
10
10
  }
11
- export interface ProblemBasicSummaryListResponseDTO {
12
- company: EntityCompanySummaryListResponseDTO;
13
- judge: ProblemJudgeSummaryListResponseDTO;
11
+ export interface ProblemBasicSummaryListResponseDto {
12
+ organization: EntityOrganizationSummaryListResponseDto;
13
+ judge: ProblemJudgeSummaryListResponseDto;
14
14
  key: string;
15
15
  name: string;
16
16
  shortname: string;
@@ -19,14 +19,14 @@ export interface ProblemBasicSummaryListResponseDTO {
19
19
  scoringMode: ProblemScoringMode;
20
20
  type: ProblemType;
21
21
  };
22
- members: EntityMembersResponseDTO;
22
+ members: EntityMembersResponseDto;
23
23
  externalUrl: string;
24
24
  }
25
- export interface ProblemSummaryListResponseDTO extends ProblemBasicSummaryListResponseDTO {
25
+ export interface ProblemSummaryListResponseDto extends ProblemBasicSummaryListResponseDto {
26
26
  user: ProblemUser;
27
- owner: UserCompanyBasicInfoResponseDTO;
27
+ owner: UserOrganizationBasicInfoResponseDto;
28
28
  }
29
- export interface ProblemDataResponseDTO extends ProblemSummaryListResponseDTO {
29
+ export interface ProblemDataResponseDto extends ProblemSummaryListResponseDto {
30
30
  author: string;
31
31
  statement: ProblemStatement;
32
32
  editorial: TextLanguage;
@@ -34,22 +34,22 @@ export interface ProblemDataResponseDTO extends ProblemSummaryListResponseDTO {
34
34
  ownerNickname: string;
35
35
  state: EntityState;
36
36
  }
37
- export interface ProblemJudgeSystemSummaryListResponseDTO extends ProblemJudgeSummaryListResponseDTO {
37
+ export interface ProblemJudgeSystemSummaryListResponseDto extends ProblemJudgeSummaryListResponseDto {
38
38
  name: string;
39
39
  id: string;
40
40
  }
41
- export interface EntityCompanySystemSummaryListResponseDTO extends EntityCompanySummaryListResponseDTO {
41
+ export interface EntityOrganizationSystemSummaryListResponseDto extends EntityOrganizationSummaryListResponseDto {
42
42
  name: string;
43
43
  id: string;
44
44
  }
45
- export interface ProblemSystemSummaryListResponseDTO extends ProblemSummaryListResponseDTO {
45
+ export interface ProblemSystemSummaryListResponseDto extends ProblemSummaryListResponseDto {
46
46
  state: EntityState;
47
47
  id: string;
48
- owner: EntityOwnerSystemSummaryListResponseDTO;
49
- judge: ProblemJudgeSystemSummaryListResponseDTO;
50
- company: EntityCompanySystemSummaryListResponseDTO;
51
- creationTimestamp: number;
52
- updateTimestamp: number;
48
+ owner: EntityOwnerSystemSummaryListResponseDto;
49
+ judge: ProblemJudgeSystemSummaryListResponseDto;
50
+ organization: EntityOrganizationSystemSummaryListResponseDto;
51
+ createdAt: number;
52
+ updatedAt: number;
53
53
  }
54
54
  export interface ProblemTestCaseResponse {
55
55
  testCaseKey: string;
@@ -59,8 +59,8 @@ export interface ProblemTestCaseResponse {
59
59
  outputFileSize: number;
60
60
  outputFileLastModified: Date;
61
61
  }
62
- export interface ProblemTestCasesResponseDTO extends Array<ProblemTestCaseResponse> {
62
+ export interface ProblemTestCasesResponseDto extends Array<ProblemTestCaseResponse> {
63
63
  }
64
- export interface UpsertProblemDTO extends Omit<ProblemBaseDocument, 'testCases' | 'testCasesUpdatedAtTimestamp' | 'key' | 'members' | 'judgeId'> {
65
- members: EntityMembersDTO;
64
+ export interface UpsertProblemDto extends Omit<ProblemBaseDocument, 'testCases' | 'testCasesUpdatedAt' | 'key' | 'members' | 'judgeId'> {
65
+ members: EntityMembersDto;
66
66
  }
@@ -1,23 +1,13 @@
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;
1
+ import { ScoreboardProblems } from '../types';
2
+ import { UserSummaryListResponseDto } from './user';
3
+ export interface ScoreboardResponseDto {
4
+ user: UserSummaryListResponseDto;
15
5
  totalPenalty: number;
16
6
  totalPoints: number;
17
7
  position: number;
18
8
  problems: ScoreboardProblems;
19
9
  }
20
- export type ScoreboardTimelineEventResponseDTO = {
10
+ export type ScoreboardTimelineEventResponseDto = {
21
11
  timestamp: number;
22
12
  userKey: string;
23
13
  problemKey: string;
@@ -27,9 +17,9 @@ export type ScoreboardTimelineEventResponseDTO = {
27
17
  indexAccepted: number;
28
18
  penalty: number;
29
19
  };
30
- export interface ScoreboardHistoryResponseDTO {
20
+ export interface ScoreboardHistoryResponseDto {
31
21
  contestKey: string;
32
22
  userProblemTimelineRefs: Record<string, number[]>;
33
- timelineEvents: ScoreboardTimelineEventResponseDTO[];
34
- participants: Record<string, UserSummaryListResponseDTO>;
23
+ timelineEvents: ScoreboardTimelineEventResponseDto[];
24
+ participants: Record<string, UserSummaryListResponseDto>;
35
25
  }
@@ -1,15 +1,15 @@
1
- import { EntityCompanySystemSummaryListResponseDTO } from './problem';
2
- import { UserBasicResponseDTO } from './user';
3
- export interface SessionBasicResponseDTO {
1
+ import { EntityOrganizationSystemSummaryListResponseDto } from './problem';
2
+ import { UserBasicResponseDto } from './user';
3
+ export interface SessionBasicResponseDto {
4
4
  id: string;
5
5
  deviceName: string;
6
6
  osName: string;
7
- validUntilTimestamp: number;
8
- creationTimestamp: number;
9
- updateTimestamp: number;
7
+ expiresAt: number;
8
+ createdAt: number;
9
+ updatedAt: number;
10
10
  }
11
- export interface UserSessionSystemSummaryListResponseDTO extends SessionBasicResponseDTO {
11
+ export interface UserSessionSystemSummaryListResponseDto extends SessionBasicResponseDto {
12
12
  userId: string;
13
- user: UserBasicResponseDTO;
14
- company: EntityCompanySystemSummaryListResponseDTO;
13
+ user: UserBasicResponseDto;
14
+ organization: EntityOrganizationSystemSummaryListResponseDto;
15
15
  }
@@ -1,138 +1,100 @@
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
- /** @deprecated the location is the `href` of the company presence (`UserPresenceData`) */
12
- export interface ClientTrackLocationWebSocketEventDTO extends WebsocketMessage {
13
- event: WebSocketMessageEvent.CLIENT_TRACK_LOCATION;
14
- href: string;
15
- }
16
- export interface ClientTrackScreenshotWebSocketEventDTO extends WebsocketMessage {
17
- event: WebSocketMessageEvent.CLIENT_TRACK_SCREENSHOT;
18
- screenshot: string;
19
- }
20
- export interface ClientTrackDeviceWebSocketEventDTO extends WebsocketMessage {
21
- event: WebSocketMessageEvent.CLIENT_TRACK_DEVICE;
22
- device: Device;
23
- }
24
- export interface ChatCompletionsWebSocketEventDTO extends WebsocketMessage {
25
- event: WebSocketMessageEvent.CHAT_COMPLETIONS;
26
- chatAiId: string;
27
- content: string;
28
- }
29
- export type WebSocketMessageEventDTO = PingWebSocketEventDTO | ClientTrackLocationWebSocketEventDTO | ClientTrackScreenshotWebSocketEventDTO | ClientTrackDeviceWebSocketEventDTO | ChatCompletionsWebSocketEventDTO;
1
+ import { ClientId, Ec2Instance, InfoLogCaseStatus, ProblemVerdict, SsmSession, SubmissionRunStatus, TestInfo, WebSocketResponseEvent, WebSocketResponseEventKey, WebSocketSubscriptionEvent } from '../types';
2
+ import { EcsTaskDefinitionSystemSummaryListResponseDto, EcsTaskSystemSummaryListResponseDto } from './system';
3
+ import { UserOrganizationBasicInfoResponseDto } from './user';
30
4
  export interface WebsocketSubscription {
31
5
  event: WebSocketSubscriptionEvent;
32
6
  clientId: ClientId;
33
7
  }
34
- export interface SubscribeCodeRunStatusWebSocketEventDTO extends WebsocketSubscription {
8
+ export interface SubscribeCodeRunStatusWebSocketEventDto extends WebsocketSubscription {
35
9
  event: WebSocketSubscriptionEvent.SUBSCRIBE_CODE_RUN_STATUS;
36
10
  runId: string;
37
11
  }
38
- export interface UnsubscribeCodeRunStatusWebSocketEventDTO extends WebsocketSubscription {
12
+ export interface UnsubscribeCodeRunStatusWebSocketEventDto extends WebsocketSubscription {
39
13
  event: WebSocketSubscriptionEvent.UNSUBSCRIBE_CODE_RUN_STATUS;
40
14
  runId: string;
41
15
  }
42
- export interface SubscribeSubmissionRunStatusWebSocketEventDTO extends WebsocketSubscription {
16
+ export interface SubscribeSubmissionRunStatusWebSocketEventDto extends WebsocketSubscription {
43
17
  event: WebSocketSubscriptionEvent.SUBSCRIBE_SUBMISSION_RUN_STATUS;
44
18
  submitId: string;
45
19
  }
46
- export interface UnsubscribeSubmissionRunStatusWebSocketEventDTO extends WebsocketSubscription {
20
+ export interface UnsubscribeSubmissionRunStatusWebSocketEventDto extends WebsocketSubscription {
47
21
  event: WebSocketSubscriptionEvent.UNSUBSCRIBE_SUBMISSION_RUN_STATUS;
48
22
  submitId: string;
49
23
  }
50
- export interface SubscribeGetDataWebSocketEventDTO extends WebsocketSubscription {
24
+ export interface SubscribeGetDataWebSocketEventDto extends WebsocketSubscription {
51
25
  dataId: string;
52
26
  event: WebSocketSubscriptionEvent.SUBSCRIBE_GET_DATA;
53
27
  }
54
- export interface UnsubscribeGetDataWebSocketEventDTO extends WebsocketSubscription {
28
+ export interface UnsubscribeGetDataWebSocketEventDto extends WebsocketSubscription {
55
29
  dataId: string;
56
30
  event: WebSocketSubscriptionEvent.UNSUBSCRIBE_GET_DATA;
57
31
  }
58
- export interface SubscribeProblemCrawledWebSocketEventDTO extends WebsocketSubscription {
32
+ export interface SubscribeProblemCrawledWebSocketEventDto extends WebsocketSubscription {
59
33
  event: WebSocketSubscriptionEvent.SUBSCRIBE_PROBLEM_CRAWLED;
60
34
  problemKey: string;
61
35
  }
62
- export interface UnsubscribeProblemCrawledWebSocketEventDTO extends WebsocketSubscription {
36
+ export interface UnsubscribeProblemCrawledWebSocketEventDto extends WebsocketSubscription {
63
37
  event: WebSocketSubscriptionEvent.UNSUBSCRIBE_PROBLEM_CRAWLED;
64
38
  problemKey: string;
65
39
  }
66
- export interface SubscribeSubmissionsCrawlWebSocketEventDTO extends WebsocketSubscription {
40
+ export interface SubscribeSubmissionsCrawlWebSocketEventDto extends WebsocketSubscription {
67
41
  event: WebSocketSubscriptionEvent.SUBSCRIBE_SUBMISSIONS_CRAWL;
68
42
  contestKey: string;
69
43
  problemKeys: string;
70
44
  }
71
- export interface UnsubscribeSubmissionsCrawlWebSocketEventDTO extends WebsocketSubscription {
45
+ export interface UnsubscribeSubmissionsCrawlWebSocketEventDto extends WebsocketSubscription {
72
46
  event: WebSocketSubscriptionEvent.UNSUBSCRIBE_SUBMISSIONS_CRAWL;
73
47
  contestKey: string;
74
48
  problemKeys: string;
75
49
  }
76
- export interface SubscribeContestChangesWebSocketEventDTO extends WebsocketSubscription {
50
+ export interface SubscribeContestChangesWebSocketEventDto extends WebsocketSubscription {
77
51
  event: WebSocketSubscriptionEvent.SUBSCRIBE_CONTEST_CHANGES;
78
52
  contestKey: string;
79
53
  }
80
- export interface UnsubscribeContestChangesWebSocketEventDTO extends WebsocketSubscription {
54
+ export interface UnsubscribeContestChangesWebSocketEventDto extends WebsocketSubscription {
81
55
  event: WebSocketSubscriptionEvent.UNSUBSCRIBE_CONTEST_CHANGES;
82
56
  contestKey: string;
83
57
  }
84
- export interface SubscribeClientTrackWebSocketEventDTO extends WebsocketSubscription {
85
- event: WebSocketSubscriptionEvent.SUBSCRIBE_CLIENT_TRACK;
86
- }
87
- export interface UnsubscribeClientTrackWebSocketEventDTO extends WebsocketSubscription {
88
- event: WebSocketSubscriptionEvent.UNSUBSCRIBE_CLIENT_TRACK;
89
- }
90
- export interface SubscribeUserNotificationWebsocketEventDTO extends WebsocketSubscription {
58
+ export interface SubscribeUserNotificationWebsocketEventDto extends WebsocketSubscription {
91
59
  event: WebSocketSubscriptionEvent.SUBSCRIBE_USER_NOTIFICATION;
92
60
  userKey: string;
93
61
  }
94
- export interface UnsubscribeUserNotificationWebSocketEventDTO extends WebsocketSubscription {
62
+ export interface UnsubscribeUserNotificationWebSocketEventDto extends WebsocketSubscription {
95
63
  event: WebSocketSubscriptionEvent.UNSUBSCRIBE_USER_NOTIFICATION;
96
64
  userKey: string;
97
65
  }
98
- export interface SubscribeClientTrackDataWebSocketEventDTO extends WebsocketSubscription {
99
- event: WebSocketSubscriptionEvent.SUBSCRIBE_CLIENT_TRACK_DATA;
100
- trackedClientId: ClientId;
101
- }
102
- export interface UnsubscribeClientTrackDataWebSocketEventDTO extends WebsocketSubscription {
103
- event: WebSocketSubscriptionEvent.UNSUBSCRIBE_CLIENT_TRACK_DATA;
104
- trackedClientId: ClientId;
105
- }
106
- export type WebSocketSubscribeEventDTO = SubscribeCodeRunStatusWebSocketEventDTO | SubscribeSubmissionRunStatusWebSocketEventDTO | SubscribeGetDataWebSocketEventDTO | SubscribeProblemCrawledWebSocketEventDTO | SubscribeSubmissionsCrawlWebSocketEventDTO | SubscribeContestChangesWebSocketEventDTO | SubscribeClientTrackWebSocketEventDTO | SubscribeUserNotificationWebsocketEventDTO | SubscribeClientTrackDataWebSocketEventDTO;
107
- export type WebSocketUnsubscribeEventDTO = UnsubscribeCodeRunStatusWebSocketEventDTO | UnsubscribeSubmissionRunStatusWebSocketEventDTO | UnsubscribeGetDataWebSocketEventDTO | UnsubscribeProblemCrawledWebSocketEventDTO | UnsubscribeSubmissionsCrawlWebSocketEventDTO | UnsubscribeContestChangesWebSocketEventDTO | UnsubscribeClientTrackWebSocketEventDTO | UnsubscribeUserNotificationWebSocketEventDTO | UnsubscribeClientTrackDataWebSocketEventDTO;
66
+ /**
67
+ * Scope of a submissions table: the judging start/end of the submissions of one problem, one contest or one user.
68
+ * Exactly one of the keys is set.
69
+ */
70
+ export type SubmissionsJudgingScope = {
71
+ problemKey: string;
72
+ } | {
73
+ contestKey: string;
74
+ } | {
75
+ userId: string;
76
+ };
77
+ export type SubscribeSubmissionsJudgingWebSocketEventDto = WebsocketSubscription & {
78
+ event: WebSocketSubscriptionEvent.SUBSCRIBE_SUBMISSIONS_JUDGING;
79
+ } & SubmissionsJudgingScope;
80
+ export type UnsubscribeSubmissionsJudgingWebSocketEventDto = WebsocketSubscription & {
81
+ event: WebSocketSubscriptionEvent.UNSUBSCRIBE_SUBMISSIONS_JUDGING;
82
+ } & SubmissionsJudgingScope;
83
+ export type WebSocketSubscribeEventDto = SubscribeCodeRunStatusWebSocketEventDto | SubscribeSubmissionRunStatusWebSocketEventDto | SubscribeGetDataWebSocketEventDto | SubscribeProblemCrawledWebSocketEventDto | SubscribeSubmissionsCrawlWebSocketEventDto | SubscribeContestChangesWebSocketEventDto | SubscribeUserNotificationWebsocketEventDto | SubscribeSubmissionsJudgingWebSocketEventDto;
84
+ export type WebSocketUnsubscribeEventDto = UnsubscribeCodeRunStatusWebSocketEventDto | UnsubscribeSubmissionRunStatusWebSocketEventDto | UnsubscribeGetDataWebSocketEventDto | UnsubscribeProblemCrawledWebSocketEventDto | UnsubscribeSubmissionsCrawlWebSocketEventDto | UnsubscribeContestChangesWebSocketEventDto | UnsubscribeUserNotificationWebSocketEventDto | UnsubscribeSubmissionsJudgingWebSocketEventDto;
108
85
  export interface WebSocketResponse {
109
86
  event: WebSocketResponseEvent;
110
87
  key: WebSocketResponseEventKey;
111
88
  connectionId: string;
112
- messageTimestamp: number;
113
- }
114
- export interface PongWebSocketResponseEventDTO extends WebSocketResponse {
115
- event: WebSocketResponseEvent.PONG;
116
- data: PingResponseDTO;
89
+ createdAt: number;
117
90
  }
118
- export type InfoLogCaseStatus = {
119
- inputKey: string;
120
- out: string;
121
- err: string;
122
- log: string;
123
- };
124
- export interface CodeRunStatusWebSocketResponseEventDTO extends WebSocketResponse {
91
+ export interface CodeRunStatusWebSocketResponseEventDto extends WebSocketResponse {
125
92
  event: WebSocketResponseEvent.CODE_RUN_STATUS;
126
93
  runId: string;
127
94
  status: SubmissionRunStatus;
128
95
  log: InfoLogCaseStatus;
129
96
  }
130
- export type TestInfo = {
131
- sampleCase: boolean;
132
- caseResultsExecuted: number;
133
- caseResultsTotal: number;
134
- };
135
- export interface SubmissionRunStatusWebSocketResponseEventDTO extends WebSocketResponse {
97
+ export interface SubmissionRunStatusWebSocketResponseEventDto extends WebSocketResponse {
136
98
  event: WebSocketResponseEvent.SUBMISSION_RUN_STATUS;
137
99
  submitId: string;
138
100
  status: SubmissionRunStatus;
@@ -141,9 +103,26 @@ export interface SubmissionRunStatusWebSocketResponseEventDTO extends WebSocketR
141
103
  testInfo?: TestInfo;
142
104
  shouldValidateContest: boolean;
143
105
  }
144
- export interface UserMessageWebSocketResponseEventDTO extends WebSocketResponse {
106
+ /**
107
+ * Start (`judging: true`, status RECEIVED) and end (`judging: false`, status COMPLETED / FAILED) of the judging of a
108
+ * submission, also on rejudges. Published on the channels of the tables that list it (problem / contest / user), so a
109
+ * table listens to one channel and only attaches `CHANNEL_SUBMISSION` (the case by case progress) of the submissions
110
+ * on screen that are being judged. The case by case events keep arriving as `SubmissionRunStatusWebSocketResponseEventDto`.
111
+ */
112
+ export interface SubmissionJudgingWebSocketResponseEventDto extends WebSocketResponse {
113
+ event: WebSocketResponseEvent.SUBMISSION_JUDGING;
114
+ submitId: string;
115
+ problemKey: string;
116
+ contestKey: string | null;
117
+ userId: string;
118
+ judging: boolean;
119
+ status: SubmissionRunStatus;
120
+ verdict: ProblemVerdict;
121
+ points: number;
122
+ }
123
+ export interface UserMessageWebSocketResponseEventDto extends WebSocketResponse {
145
124
  event: WebSocketResponseEvent.USER_MESSAGE;
146
- user: UserCompanyBasicInfoResponseDTO;
125
+ user: UserOrganizationBasicInfoResponseDto;
147
126
  content: {
148
127
  type: 'SUBMISSION_VERDICT';
149
128
  contestName: string;
@@ -152,27 +131,27 @@ export interface UserMessageWebSocketResponseEventDTO extends WebSocketResponse
152
131
  points: number;
153
132
  };
154
133
  }
155
- export interface SendDataWebSocketResponseEventDTO extends WebSocketResponse {
134
+ export interface SendDataWebSocketResponseEventDto extends WebSocketResponse {
156
135
  dataId: string;
157
136
  content: any;
158
137
  }
159
- export interface SendDataEcsTaskDefinitionListWebSocketResponseEventDTO extends SendDataWebSocketResponseEventDTO {
138
+ export interface SendDataEcsTaskDefinitionListWebSocketResponseEventDto extends SendDataWebSocketResponseEventDto {
160
139
  event: WebSocketResponseEvent.SEND_DATA_ECS_TASK_DEFINITIONS_LIST;
161
- content: EcsTaskDefinitionSystemSummaryListResponseDTO[];
140
+ content: EcsTaskDefinitionSystemSummaryListResponseDto[];
162
141
  }
163
- export interface SendDataEcsTasksListWebSocketResponseEventDTO extends SendDataWebSocketResponseEventDTO {
142
+ export interface SendDataEcsTasksListWebSocketResponseEventDto extends SendDataWebSocketResponseEventDto {
164
143
  event: WebSocketResponseEvent.SEND_DATA_ECS_TASKS_LIST;
165
- content: EcsTaskSystemSummaryListResponseDTO[];
144
+ content: EcsTaskSystemSummaryListResponseDto[];
166
145
  }
167
- export interface SendDataEc2InstancesListWebSocketResponseEventDTO extends SendDataWebSocketResponseEventDTO {
146
+ export interface SendDataEc2InstancesListWebSocketResponseEventDto extends SendDataWebSocketResponseEventDto {
168
147
  event: WebSocketResponseEvent.SEND_DATA_EC2_INSTANCES_LIST;
169
148
  content: Ec2Instance[];
170
149
  }
171
- export interface SendDataSsmSessionsListWebSocketResponseEventDTO extends SendDataWebSocketResponseEventDTO {
150
+ export interface SendDataSsmSessionsListWebSocketResponseEventDto extends SendDataWebSocketResponseEventDto {
172
151
  event: WebSocketResponseEvent.SEND_DATA_SSM_SESSIONS_LIST;
173
152
  content: SsmSession[];
174
153
  }
175
- export interface SendDataRunCommandWebSocketResponseEventDTO extends SendDataWebSocketResponseEventDTO {
154
+ export interface SendDataRunCommandWebSocketResponseEventDto extends SendDataWebSocketResponseEventDto {
176
155
  event: WebSocketResponseEvent.SEND_DATA_RUN_COMMAND;
177
156
  content: {
178
157
  testCaseOutContent: string;
@@ -180,34 +159,13 @@ export interface SendDataRunCommandWebSocketResponseEventDTO extends SendDataWeb
180
159
  testCaseLogContent: string;
181
160
  };
182
161
  }
183
- export interface SendDataClientTrackWebSocketResponseEventDTO extends SendDataWebSocketResponseEventDTO {
184
- event: WebSocketResponseEvent.SEND_DATA_CLIENT_TRACK;
185
- content: {
186
- location?: string;
187
- screenshot?: string;
188
- device?: Device;
189
- };
190
- }
191
- export interface SendDataChatCompletionsWebSocketResponseEventDTO extends SendDataWebSocketResponseEventDTO {
192
- event: WebSocketResponseEvent.SEND_DATA_CHAT_COMPLETIONS;
193
- content: {
194
- choices: [{
195
- index: number;
196
- message: {
197
- role: string;
198
- content: string;
199
- };
200
- }];
201
- rawData: any;
202
- };
203
- }
204
- export interface ProblemCrawledWebSocketResponseEventDTO extends WebSocketResponse {
162
+ export interface ProblemCrawledWebSocketResponseEventDto extends WebSocketResponse {
205
163
  event: WebSocketResponseEvent.PROBLEM_CRAWLED;
206
164
  content: {
207
165
  problemKey: string;
208
166
  };
209
167
  }
210
- export interface SubmissionsCrawlWebSocketResponseEventDTO extends WebSocketResponse {
168
+ export interface SubmissionsCrawlWebSocketResponseEventDto extends WebSocketResponse {
211
169
  event: WebSocketResponseEvent.SUBMISSIONS_CRAWL;
212
170
  content: {
213
171
  contestKey: string;
@@ -219,23 +177,17 @@ export interface SubmissionsCrawlWebSocketResponseEventDTO extends WebSocketResp
219
177
  isNewSubmission: boolean;
220
178
  };
221
179
  }
222
- export interface ContestChangesWebSocketResponseEventDTO extends WebSocketResponse {
180
+ export interface ContestChangesWebSocketResponseEventDto extends WebSocketResponse {
223
181
  event: WebSocketResponseEvent.CONTEST_CHANGES;
224
182
  content: {
225
183
  contestKey: string;
226
184
  };
227
185
  }
228
- export interface ClientTrackWebSocketResponseEventDTO extends WebSocketResponse {
229
- event: WebSocketResponseEvent.CLIENT_TRACK;
230
- location: boolean;
231
- screenshot: boolean;
232
- device: boolean;
233
- }
234
- export interface UserNotificationWebSocketResponseEventDTO extends WebSocketResponse {
186
+ export interface UserNotificationWebSocketResponseEventDto extends WebSocketResponse {
235
187
  event: WebSocketResponseEvent.USER_NOTIFICATION_SUBMISSION | WebSocketResponseEvent.USER_NOTIFICATION_CONTEST_CLARIFICATION;
236
188
  content: any;
237
189
  }
238
- export interface UserNotificationSubmissionWebSocketResponseEventDTO extends UserNotificationWebSocketResponseEventDTO {
190
+ export interface UserNotificationSubmissionWebSocketResponseEventDto extends UserNotificationWebSocketResponseEventDto {
239
191
  event: WebSocketResponseEvent.USER_NOTIFICATION_SUBMISSION;
240
192
  content: {
241
193
  contest: {
@@ -255,27 +207,26 @@ export interface UserNotificationSubmissionWebSocketResponseEventDTO extends Use
255
207
  submissionId: string;
256
208
  };
257
209
  }
258
- export interface UserNotificationContestClarificationWebSocketResponseEventDTO extends UserNotificationWebSocketResponseEventDTO {
210
+ export interface UserNotificationContestClarificationWebSocketResponseEventDto extends UserNotificationWebSocketResponseEventDto {
259
211
  event: WebSocketResponseEvent.USER_NOTIFICATION_CONTEST_CLARIFICATION;
260
212
  content: {
261
213
  contestKey: string;
262
214
  };
263
215
  }
264
- export type WebSocketResponseEventDTO = PongWebSocketResponseEventDTO | CodeRunStatusWebSocketResponseEventDTO | SubmissionRunStatusWebSocketResponseEventDTO | UserMessageWebSocketResponseEventDTO | SendDataEcsTaskDefinitionListWebSocketResponseEventDTO | SendDataEcsTasksListWebSocketResponseEventDTO | SendDataEc2InstancesListWebSocketResponseEventDTO | SendDataSsmSessionsListWebSocketResponseEventDTO | ProblemCrawledWebSocketResponseEventDTO | SendDataChatCompletionsWebSocketResponseEventDTO | SubmissionsCrawlWebSocketResponseEventDTO | ContestChangesWebSocketResponseEventDTO | SendDataRunCommandWebSocketResponseEventDTO | SendDataClientTrackWebSocketResponseEventDTO | ClientTrackWebSocketResponseEventDTO | UserNotificationSubmissionWebSocketResponseEventDTO | UserNotificationContestClarificationWebSocketResponseEventDTO;
216
+ export type WebSocketResponseEventDto = CodeRunStatusWebSocketResponseEventDto | SubmissionRunStatusWebSocketResponseEventDto | UserMessageWebSocketResponseEventDto | SendDataEcsTaskDefinitionListWebSocketResponseEventDto | SendDataEcsTasksListWebSocketResponseEventDto | SendDataEc2InstancesListWebSocketResponseEventDto | SendDataSsmSessionsListWebSocketResponseEventDto | ProblemCrawledWebSocketResponseEventDto | SubmissionsCrawlWebSocketResponseEventDto | ContestChangesWebSocketResponseEventDto | SendDataRunCommandWebSocketResponseEventDto | UserNotificationSubmissionWebSocketResponseEventDto | UserNotificationContestClarificationWebSocketResponseEventDto | SubmissionJudgingWebSocketResponseEventDto;
265
217
  /**
266
218
  * Message sent by the backend producers to the websocket SQS queue:
267
219
  * the producer (trusted, with access to the DB) decides the Ably channels where the event is published.
268
220
  */
269
- export interface WebSocketChannelsMessageDTO {
221
+ export interface WebSocketChannelsMessageDto {
270
222
  channels: string[];
271
- event: WebSocketResponseEventDTO;
223
+ event: WebSocketResponseEventDto;
272
224
  }
273
225
  /**
274
- * Data of a client (tab) in its company presence channel (`CHANNEL_COMPANY_PRESENCE`).
226
+ * Data of a client (tab) in its organization presence channel (`CHANNEL_ORGANIZATION_PRESENCE`).
275
227
  * Sent by the client: informative only, the identity is the presence member `clientId`.
276
228
  */
277
229
  export interface UserPresenceData {
278
230
  href: string;
279
231
  uiId: string;
280
232
  }
281
- export {};