@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,94 @@
1
+ import { CodeLanguage, ContestUser, DataLog, EntityState, ProblemScoringMode, ProblemType, ProblemVerdict, SubmissionRunStatus } from '../types';
2
+ import { EntityCompanySummaryListResponseDTO, EntityCompanySystemSummaryListResponseDTO, ProblemJudgeSummaryListResponseDTO } from './problem';
3
+ import { UserCompanyBasicInfoResponseDTO } from './user';
4
+ export interface SubmissionProblemSummaryListResponseDTO {
5
+ isAdministrator: boolean;
6
+ isManager: boolean;
7
+ key: string;
8
+ name: string;
9
+ scoringMode: ProblemScoringMode;
10
+ type: ProblemType;
11
+ timeLimit: number;
12
+ memoryLimit: number;
13
+ company: EntityCompanySummaryListResponseDTO;
14
+ judge: ProblemJudgeSummaryListResponseDTO;
15
+ }
16
+ export interface SubmissionContestSummaryListResponseDTO {
17
+ key: string;
18
+ name: string;
19
+ settingsStartTimestamp: number;
20
+ isManager: boolean;
21
+ problemIndex: string;
22
+ problemColor: string;
23
+ company: EntityCompanySummaryListResponseDTO;
24
+ isFrozen: boolean;
25
+ isQuiet: boolean;
26
+ isUpsolving: boolean;
27
+ }
28
+ export interface SubmissionSummaryListResponseDTO {
29
+ submitId: string;
30
+ language: CodeLanguage;
31
+ timestamp: number;
32
+ memoryUsed: number;
33
+ timeUsed: number;
34
+ verdict: ProblemVerdict;
35
+ points: number;
36
+ status: SubmissionRunStatus;
37
+ problem: SubmissionProblemSummaryListResponseDTO;
38
+ user: UserCompanyBasicInfoResponseDTO & {
39
+ canViewSourceCode: boolean;
40
+ };
41
+ contest: SubmissionContestSummaryListResponseDTO | null;
42
+ hiddenSubmission: boolean;
43
+ hiddenVerdict: boolean;
44
+ processedCases: {
45
+ samples: {
46
+ total: number;
47
+ processed: number;
48
+ };
49
+ tests: {
50
+ total: number;
51
+ processed: number;
52
+ };
53
+ };
54
+ company: EntityCompanySummaryListResponseDTO;
55
+ }
56
+ export interface SubmissionProblemSystemSummaryListResponseDTO extends SubmissionProblemSummaryListResponseDTO {
57
+ id: string;
58
+ }
59
+ export interface SubmissionContestSystemSummaryListResponseDTO extends SubmissionContestSummaryListResponseDTO {
60
+ id: string;
61
+ user: ContestUser;
62
+ }
63
+ export interface SubmissionSystemSummaryListResponseDTO extends SubmissionSummaryListResponseDTO {
64
+ problem: SubmissionProblemSystemSummaryListResponseDTO;
65
+ contest: SubmissionContestSystemSummaryListResponseDTO | null;
66
+ company: EntityCompanySystemSummaryListResponseDTO;
67
+ creationTimestamp: number;
68
+ updateTimestamp: number;
69
+ state: EntityState;
70
+ }
71
+ export type TestCaseResult = DataLog & {
72
+ err: string;
73
+ verdict: ProblemVerdict;
74
+ diff: string;
75
+ croppedDiff: boolean;
76
+ group: number;
77
+ points: number;
78
+ testCaseKey: string;
79
+ };
80
+ export type VerdictByGroups = {
81
+ [key: number]: Omit<TestCaseResult, 'err' | 'diff' | 'croppedDiff'>;
82
+ };
83
+ export type CompilationResult = DataLog & {
84
+ err: string;
85
+ success: boolean;
86
+ };
87
+ export interface SubmissionDataResponseDTO extends SubmissionSummaryListResponseDTO {
88
+ judgmentTime: number;
89
+ sourceCode: string;
90
+ verdictByGroups: VerdictByGroups;
91
+ testCaseResults: TestCaseResult[];
92
+ compilationResult: CompilationResult;
93
+ runId: string;
94
+ }
@@ -0,0 +1,91 @@
1
+ export type TaskResponseDTOContainer = {
2
+ runtimeId?: string;
3
+ };
4
+ export interface EcsTask {
5
+ taskArn: string;
6
+ taskDefinitionArn: string;
7
+ group: string;
8
+ version: number;
9
+ cpu: string;
10
+ memory: string;
11
+ launchType: string;
12
+ createdAt: Date;
13
+ startedAt: Date;
14
+ desiredStatus: string;
15
+ lastStatus: string;
16
+ containers?: TaskResponseDTOContainer[];
17
+ }
18
+ export interface EcsTaskSystemSummaryListResponseDTO extends EcsTask {
19
+ isHighRunnerCompanyKeys: string[];
20
+ }
21
+ export interface EcsTaskDefinition {
22
+ family: string;
23
+ taskDefinitionArn: string;
24
+ revision: number;
25
+ cpu: string;
26
+ memory: string;
27
+ registeredAt: Date;
28
+ }
29
+ export interface EcsTaskDefinitionSystemSummaryListResponseDTO extends EcsTaskDefinition {
30
+ isHighRunnerCompanyKeys: string[];
31
+ }
32
+ export interface Ec2Instance {
33
+ instanceId: string;
34
+ state: 'pending' | 'running' | 'shutting-down' | 'stopped' | 'stopping' | 'terminated' | undefined;
35
+ instanceType: string;
36
+ privateIpAddress: string;
37
+ publicIpAddress: string;
38
+ tags: {
39
+ key: string;
40
+ value: string;
41
+ }[];
42
+ launchTime: Date | undefined;
43
+ instanceLifecycle: 'capacity-block' | 'scheduled' | 'spot' | 'interruptible-capacity-reservation' | undefined;
44
+ imageId: string;
45
+ vpcId: string;
46
+ subnet: {
47
+ id: string;
48
+ name: string;
49
+ };
50
+ securityGroups: {
51
+ groupId: string;
52
+ groupName: string;
53
+ }[];
54
+ raw: any;
55
+ }
56
+ export type SqsProperties = {
57
+ QueueArn: string;
58
+ ApproximateNumberOfMessages: string;
59
+ ApproximateNumberOfMessagesNotVisible: string;
60
+ ApproximateNumberOfMessagesDelayed: string;
61
+ CreatedTimestamp: string;
62
+ LastModifiedTimestamp: string;
63
+ VisibilityTimeout: string;
64
+ MaximumMessageSize: string;
65
+ MessageRetentionPeriod: string;
66
+ DelaySeconds: string;
67
+ ReceiveMessageWaitTimeSeconds: string;
68
+ SqsManagedSseEnabled: string;
69
+ FifoQueue: string;
70
+ DeduplicationScope: string;
71
+ FifoThroughputLimit: string;
72
+ ContentBasedDeduplication: string;
73
+ };
74
+ export interface SqsPropertiesResponseDTO {
75
+ sqsJukiHighRunnerFifo: SqsProperties;
76
+ sqsJukiLowRunnerFifo: SqsProperties;
77
+ }
78
+ export interface EmailDataResponseDTO {
79
+ emailTemplate: string;
80
+ contactEmails: string[];
81
+ mainEmail: string;
82
+ }
83
+ export type SsmSession = {
84
+ sessionId: string;
85
+ target: string;
86
+ status: 'Connected' | 'Connecting' | 'Disconnected' | 'Failed' | 'Terminating' | 'Terminated' | undefined;
87
+ startTimestamps: number;
88
+ owner: string;
89
+ maxSessionDuration: number;
90
+ raw: any;
91
+ };
@@ -0,0 +1,8 @@
1
+ export interface ShorterListResponseDTO {
2
+ slug: string;
3
+ url: string;
4
+ createdAt: number;
5
+ expiresAt: number;
6
+ views: number;
7
+ lastAccessAt: number;
8
+ }
@@ -0,0 +1,109 @@
1
+ import { ContestRole, CourseRole, FileRole, ProblemRole, RecordId, SystemRole, TeamRole, UserBasicInfo, UserHandles, UserRole, UserSettings, UserStatus } from '../types';
2
+ import { CompanyStyles } from './company';
3
+ import { EntityCompanySummaryListResponseDTO, EntityCompanySystemSummaryListResponseDTO } from './problem';
4
+ export interface EntityOwnerSystemSummaryListResponseDTO {
5
+ id: string;
6
+ nickname: string;
7
+ imageUrl: string;
8
+ company: EntityCompanySummaryListResponseDTO;
9
+ }
10
+ export interface UserCompanyBasicInfoResponseDTO extends UserBasicInfo {
11
+ company: EntityCompanySummaryListResponseDTO;
12
+ }
13
+ export interface UserSummaryListResponseDTO extends UserCompanyBasicInfoResponseDTO {
14
+ email: string;
15
+ familyName: string;
16
+ givenName: string;
17
+ }
18
+ export interface UserSystemSummaryListResponseDTO extends UserSummaryListResponseDTO {
19
+ id: string;
20
+ status: UserStatus;
21
+ city: string;
22
+ country: string;
23
+ institution: string;
24
+ systemRole: SystemRole;
25
+ userRole: UserRole;
26
+ contestRole: ContestRole;
27
+ problemRole: ProblemRole;
28
+ fileRole: FileRole;
29
+ teamRole: TeamRole;
30
+ courseRole: CourseRole;
31
+ canResetPassword: boolean;
32
+ owner: EntityOwnerSystemSummaryListResponseDTO;
33
+ company: EntityCompanySystemSummaryListResponseDTO;
34
+ creationTimestamp: number;
35
+ updateTimestamp: number;
36
+ }
37
+ export interface UserBasicResponseDTO extends UserSummaryListResponseDTO {
38
+ aboutMe: string;
39
+ city: string;
40
+ country: string;
41
+ institution: string;
42
+ handles: UserHandles;
43
+ }
44
+ export interface UserProfileResponseDTO extends UserBasicResponseDTO {
45
+ canEditProfileData: boolean;
46
+ canEditSettingsData: boolean;
47
+ canEditPermissionsData: boolean;
48
+ canUpdatePassword: boolean;
49
+ canResetPassword: boolean;
50
+ }
51
+ export type UserPermissions = {
52
+ users: {
53
+ create: boolean;
54
+ manage: boolean;
55
+ administrate: boolean;
56
+ };
57
+ problems: {
58
+ create: boolean;
59
+ manage: boolean;
60
+ };
61
+ submissions: {
62
+ manage: boolean;
63
+ };
64
+ contests: {
65
+ create: boolean;
66
+ manage: boolean;
67
+ };
68
+ company: {
69
+ manage: boolean;
70
+ administrate: boolean;
71
+ };
72
+ services: {
73
+ administrate: boolean;
74
+ };
75
+ };
76
+ export type UserPing = {
77
+ permissions: UserPermissions;
78
+ nickname: string;
79
+ imageUrl: string;
80
+ settings: UserSettings;
81
+ isLogged: boolean;
82
+ sessionId: RecordId;
83
+ company: EntityCompanySummaryListResponseDTO;
84
+ };
85
+ export type CompanyPing = {
86
+ key: string;
87
+ contactEmail: string;
88
+ contactCellPhoneNumber: string;
89
+ contactTelegram: string;
90
+ imageUrl: string;
91
+ name: string;
92
+ codeEditorRunEnabled: boolean;
93
+ styles: CompanyStyles;
94
+ };
95
+ export interface PingResponseDTO {
96
+ user: UserPing;
97
+ company: CompanyPing;
98
+ }
99
+ export interface UserRankResponseDTO {
100
+ imageUrl: string;
101
+ nickname: string;
102
+ status: UserStatus;
103
+ city: string;
104
+ country: string;
105
+ institution: string;
106
+ problemPoints: number;
107
+ competitionPoints: number;
108
+ company: EntityCompanySummaryListResponseDTO;
109
+ }
@@ -0,0 +1,38 @@
1
+ import { Judge, WorkingIn } from '../types';
2
+ export type CookieSameSite = 'Strict' | 'Lax' | 'None';
3
+ export type CookiePriority = 'Low' | 'Medium' | 'High';
4
+ export interface CookiePartitionKey {
5
+ sourceOrigin: string;
6
+ hasCrossSiteAncestor?: boolean;
7
+ }
8
+ export interface Cookie {
9
+ name: string;
10
+ value: string;
11
+ domain: string;
12
+ path: string;
13
+ expires: number;
14
+ size: number;
15
+ httpOnly?: boolean;
16
+ secure: boolean;
17
+ session: boolean;
18
+ sameSite?: CookieSameSite;
19
+ priority?: CookiePriority;
20
+ sameParty?: boolean;
21
+ partitionKey?: CookiePartitionKey | string;
22
+ partitionKeyOpaque?: boolean;
23
+ }
24
+ export interface VirtualUserResponseDTO {
25
+ id: string;
26
+ judge: Judge;
27
+ email: string;
28
+ username: string;
29
+ password: string;
30
+ submitId: string;
31
+ attempts: number;
32
+ workingIn: WorkingIn;
33
+ updatedAt: Date;
34
+ judgeSubmissionId: string;
35
+ session: {
36
+ cookies: Cookie[];
37
+ };
38
+ }
@@ -0,0 +1,64 @@
1
+ import { CodeEditorSheet, CodeLanguage, JkmdSheet, QuizOptionsSheet, QuizProblemSheet, QuizTextSheet, UserBasic, WorksheetType } from '../types';
2
+ import { SubmissionSummaryListResponseDTO } from './submission';
3
+ import { UserCompanyBasicInfoResponseDTO } from './user';
4
+ export type WorksheetResponseBasicInfoProcessed = {
5
+ submittedAt: number;
6
+ points: number;
7
+ isCompleted: boolean;
8
+ };
9
+ export interface QuizProblemSubmissionDTO extends Pick<QuizProblemSheet, 'id' | 'type'> {
10
+ language: CodeLanguage;
11
+ source: string;
12
+ }
13
+ export interface QuizProblemSubmissionResponseDTO extends WorksheetResponseBasicInfoProcessed, Omit<QuizProblemSubmissionDTO, 'source' | 'language'> {
14
+ submissionResult: SubmissionSummaryListResponseDTO;
15
+ }
16
+ export interface JkmdSubmissionDTO extends Pick<JkmdSheet, 'id' | 'type'> {
17
+ read: boolean;
18
+ }
19
+ export interface JkmdSubmissionResponseDTO extends WorksheetResponseBasicInfoProcessed, JkmdSubmissionDTO {
20
+ }
21
+ export interface CodeEditorSubmissionDTO extends Pick<CodeEditorSheet, 'id' | 'type' | 'files' | 'testCases'> {
22
+ }
23
+ export interface CodeEditorSubmissionResponseDTO extends WorksheetResponseBasicInfoProcessed, CodeEditorSubmissionDTO {
24
+ }
25
+ export interface QuizOptionsSubmissionDTO extends Pick<QuizOptionsSheet, 'id' | 'type'> {
26
+ checkedOptions: string[];
27
+ }
28
+ export interface QuizOptionsSubmissionResponseDTO extends WorksheetResponseBasicInfoProcessed, QuizOptionsSubmissionDTO {
29
+ }
30
+ export interface QuizTextSubmissionDTO extends Pick<QuizTextSheet, 'id' | 'type'> {
31
+ response: string;
32
+ }
33
+ export interface QuizTextSubmissionResponseDTO extends WorksheetResponseBasicInfoProcessed, QuizTextSubmissionDTO {
34
+ }
35
+ export type WorkSheetSubmissions = {
36
+ [WorksheetType.JK_MD]: {
37
+ [key: string]: JkmdSubmissionResponseDTO[];
38
+ };
39
+ [WorksheetType.CODE_EDITOR]: {
40
+ [key: string]: CodeEditorSubmissionResponseDTO[];
41
+ };
42
+ [WorksheetType.QUIZ_PROBLEM]: {
43
+ [key: string]: QuizProblemSubmissionResponseDTO[];
44
+ };
45
+ [WorksheetType.QUIZ_OPTIONS]: {
46
+ [key: string]: QuizOptionsSubmissionResponseDTO[];
47
+ };
48
+ [WorksheetType.QUIZ_TEXT]: {
49
+ [key: string]: QuizTextSubmissionResponseDTO[];
50
+ };
51
+ };
52
+ export interface WorksheetSubmissionsResponseDTO {
53
+ [key: string]: {
54
+ submissions: WorkSheetSubmissions;
55
+ user: UserBasic;
56
+ };
57
+ }
58
+ export interface WorksheetSubmissionsUsersResponseDTO {
59
+ [key: string]: UserCompanyBasicInfoResponseDTO;
60
+ }
61
+ export interface WorksheetUserSubmissionsResponseDTO {
62
+ submissions: WorkSheetSubmissions;
63
+ user: UserBasic;
64
+ }
@@ -0,0 +1,39 @@
1
+ import { BodyWorksheet, SummaryWorksheetsInPages, WorksheetBaseDocument } from '../types';
2
+ import { EntityMembersDTO, EntityMembersResponseDTO } from './entity';
3
+ import { UserCompanyBasicInfoResponseDTO } from './user';
4
+ export interface WorksheetUserResponseDTO {
5
+ isOwner: boolean;
6
+ isManager: boolean;
7
+ isSpectator: boolean;
8
+ }
9
+ export interface WorksheetSummaryListResponseDTO extends Pick<WorksheetBaseDocument, 'key' | 'name' | 'description'> {
10
+ updatedAt: Date;
11
+ content: SummaryWorksheetsInPages;
12
+ user: WorksheetUserResponseDTO;
13
+ owner: UserCompanyBasicInfoResponseDTO;
14
+ }
15
+ export interface WorksheetDataResponseDTO extends Omit<WorksheetSummaryListResponseDTO, 'content'> {
16
+ folderId: string;
17
+ content: BodyWorksheet[];
18
+ members: EntityMembersResponseDTO;
19
+ quiz: WorksheetBaseDocument['quiz'];
20
+ slides: WorksheetBaseDocument['slides'];
21
+ }
22
+ export interface UpsertWorksheetDTO extends Omit<WorksheetBaseDocument, 'members' | 'key' | 'state'> {
23
+ members: EntityMembersDTO;
24
+ }
25
+ export interface WorksheetsProgressByUsersResponseDTO {
26
+ [key: string]: {
27
+ [key: string]: {
28
+ pages: {
29
+ totalPoints: number;
30
+ points: number;
31
+ percent: number;
32
+ worksheetPercent: number;
33
+ }[];
34
+ percent: number;
35
+ points: number;
36
+ totalPoints: number;
37
+ };
38
+ };
39
+ }
@@ -0,0 +1,4 @@
1
+ import { AssignmentSessionCycleClassDataResponseDTO, ContestAssignmentSessionCycleClassDataResponseDTO, CourseAssignmentSessionCycleClassDataResponseDTO, WorksheetAssignmentSessionCycleClassDataResponseDTO } from '../dto';
2
+ export declare const isWorksheetAssignment: (assignment: AssignmentSessionCycleClassDataResponseDTO) => assignment is WorksheetAssignmentSessionCycleClassDataResponseDTO;
3
+ export declare const isCourseAssignment: (assignment: AssignmentSessionCycleClassDataResponseDTO) => assignment is CourseAssignmentSessionCycleClassDataResponseDTO;
4
+ export declare const isContestAssignment: (assignment: AssignmentSessionCycleClassDataResponseDTO) => assignment is ContestAssignmentSessionCycleClassDataResponseDTO;
@@ -0,0 +1,4 @@
1
+ export declare const getAssignmentCommentKey: (classKey: string, cycleKey: string, sessionKey: string, assignmentKey: string) => string;
2
+ export declare const getAssignmentUserCommentKey: (classKey: string, cycleKey: string, sessionKey: string, assignmentKey: string, userNickname: string, userCompany: string) => string;
3
+ export declare const getProblemCommentKey: (problemKey: string) => string;
4
+ export declare const getContestCommentKey: (contestKey: string) => string;
@@ -0,0 +1,35 @@
1
+ import { Judge } from '../types';
2
+ export declare function isStringJson(str: any): str is string;
3
+ export declare function safeJsonParse(str: any): any;
4
+ export declare function isObjectJson(obj: any): boolean;
5
+ export declare function mex(array: number[]): number;
6
+ export declare function range(start: number, end: number): number[];
7
+ export declare function getPlainText(url: string): Promise<string>;
8
+ export declare function objectUpdate(base: any, update: any): any;
9
+ export declare function objectsUpdate(base: any, ...objects: any[]): {
10
+ [key: string]: any;
11
+ };
12
+ export declare function consoleWarn(...warn: any): void;
13
+ export declare function consoleInfo(...info: any): void;
14
+ export declare function consoleError(...error: any): void;
15
+ export declare function indexToLetters(index: number): string;
16
+ export declare function lettersToIndex(index: string): number;
17
+ export declare function getProblemJudgeKey(judge: Judge, key: string): string;
18
+ /**
19
+ * https://stackoverflow.com/questions/10420352/converting-file-size-in-bytes-to-human-readable-string
20
+ * Format bytes as human-readable text.
21
+ *
22
+ * @param bytes Number of bytes.
23
+ * @param si True to use metric (SI) units, aka powers of 1000. False to use
24
+ * binary (IEC), aka powers of 1024.
25
+ * @param dp Number of decimal places to display.
26
+ *
27
+ * @return Formatted string.
28
+ */
29
+ export declare function humanFileSize(bytes: number, si?: boolean, dp?: number): string;
30
+ export declare function stringToArrayBuffer(str: string): ArrayBuffer;
31
+ export declare function chunkString(str: string, size: number): string[];
32
+ export declare function getRandomString(length: number): string;
33
+ export declare function join(array: (string | null | Date)[]): string;
34
+ export declare function split(text: string): string[];
35
+ export declare const areArraysDifferent: <T>(a: T[], b: T[]) => boolean;
@@ -0,0 +1,5 @@
1
+ import { ContestSettings } from '../types';
2
+ export declare const isEndlessContest: (settings: Pick<ContestSettings, "startTimestamp" | "frozenTimestamp" | "quietTimestamp" | "endTimestamp" | "penalty"> | undefined) => boolean;
3
+ export declare const isGlobalContest: (settings: Pick<ContestSettings, "startTimestamp" | "frozenTimestamp" | "quietTimestamp" | "endTimestamp" | "penalty"> | undefined) => boolean;
4
+ export declare const isPastContest: (settings: Pick<ContestSettings, "endTimestamp"> | undefined) => boolean;
5
+ export declare const isFutureContest: (settings: Pick<ContestSettings, "startTimestamp"> | undefined) => boolean;
@@ -0,0 +1,14 @@
1
+ import { EntityMembersDTO, EntityMembersResponseDTO } from '../dto';
2
+ import { EntityAccess, EntityMembers, EntityTeamsMemberUserData, EntityUsersMemberUserData } from '../types';
3
+ export declare const getDocumentAccess: (document: {
4
+ members: Pick<EntityMembers, "rankAdministrators" | "rankManagers" | "rankGuests" | "rankSpectators" | "rankParticipants">;
5
+ } | undefined) => EntityAccess;
6
+ export declare const isUserMember: (member: {
7
+ userId?: string;
8
+ teamId?: string;
9
+ }) => member is EntityUsersMemberUserData;
10
+ export declare const isTeamMember: (member: {
11
+ userId?: string;
12
+ teamId?: string;
13
+ }) => member is EntityTeamsMemberUserData;
14
+ export declare const toEntityMembersDTO: (members: EntityMembersResponseDTO) => EntityMembersDTO;
@@ -0,0 +1 @@
1
+ export declare function removeExtension(fileName: string): string;
@@ -0,0 +1,14 @@
1
+ export * from './class';
2
+ export * from './comments';
3
+ export * from './commons';
4
+ export * from './contest';
5
+ export * from './document';
6
+ export * from './file';
7
+ export * from './interval';
8
+ export * from './judging';
9
+ export * from './object';
10
+ export * from './responses';
11
+ export * from './socket';
12
+ export * from './time';
13
+ export * from './user';
14
+ export * from './worksheet';
@@ -0,0 +1,2 @@
1
+ export declare const setAsyncInterval: (cb: Function, interval: number) => number;
2
+ export declare const clearAsyncInterval: (intervalIndex: number) => void;
@@ -0,0 +1,24 @@
1
+ import { CodeEditorTestCase, DataLog, ProblemVerdict, SubmissionTestCase, TestCaseVerdict } from '../types';
2
+ export declare const getDataOfTestCase: (testCase: SubmissionTestCase, timeLimit: number, memoryLimit: number) => {
3
+ compilationError: boolean;
4
+ timeUsed: number;
5
+ timeLimitExceeded: boolean;
6
+ memoryUsed: number;
7
+ memoryLimitExceeded: boolean;
8
+ exitCode: number;
9
+ runtimeError: boolean;
10
+ failed: boolean;
11
+ };
12
+ export declare const getVerdictFromTestCase: (testCaseValue: CodeEditorTestCase, timeLimit: number, memoryLimit: number) => {
13
+ verdict: ProblemVerdict;
14
+ timeUsed: number;
15
+ memoryUsed: number;
16
+ exitCode: number;
17
+ };
18
+ export declare const mergeVerdicts: (first: TestCaseVerdict, second: TestCaseVerdict) => {
19
+ timeUsed: number;
20
+ memoryUsed: number;
21
+ exitCode: number;
22
+ verdict: ProblemVerdict;
23
+ };
24
+ export declare const getDataLog: (log: any) => DataLog;
@@ -0,0 +1 @@
1
+ export declare function memorySizeOf(obj: any): number;
@@ -0,0 +1,8 @@
1
+ import { JkError } from '../prototypes';
2
+ import { ContentResponse, ContentsMeta, ContentsResponse, ErrorResponse } from '../types';
3
+ export declare function toJkError(err: any): JkError;
4
+ export declare function errorsResponse(message: string, ...errors: JkError[]): ErrorResponse;
5
+ export declare function contentResponse<T>(message: string, content: T): ContentResponse<T>;
6
+ export declare function contentsResponse<T>(message: string, contents: T[], meta: ContentsMeta): ContentsResponse<T>;
7
+ export declare const cleanRequest: <T extends ContentResponse<any> | ContentsResponse<any>>(responseText: string) => (ErrorResponse | T);
8
+ export declare const getDefaultMeta: (contents: any[], sort?: ContentsMeta["sort"]) => ContentsMeta;
@@ -0,0 +1,45 @@
1
+ import { ChatCompletionsWebSocketEventDTO, ClientTrackDeviceWebSocketEventDTO, ClientTrackLocationWebSocketEventDTO, ClientTrackScreenshotWebSocketEventDTO, ClientTrackWebSocketResponseEventDTO, CodeRunStatusWebSocketResponseEventDTO, ContestChangesWebSocketResponseEventDTO, PingWebSocketEventDTO, PongWebSocketResponseEventDTO, ProblemCrawledWebSocketResponseEventDTO, SendDataChatCompletionsWebSocketResponseEventDTO, SendDataClientTrackWebSocketResponseEventDTO, SendDataEc2InstancesListWebSocketResponseEventDTO, SendDataEcsTaskDefinitionListWebSocketResponseEventDTO, SendDataEcsTasksListWebSocketResponseEventDTO, SendDataRunCommandWebSocketResponseEventDTO, SendDataSsmSessionsListWebSocketResponseEventDTO, SendDataWebSocketResponseEventDTO, SubmissionRunStatusWebSocketResponseEventDTO, SubmissionsCrawlWebSocketResponseEventDTO, SubscribeClientTrackWebSocketEventDTO, SubscribeCodeRunStatusWebSocketEventDTO, SubscribeContestChangesWebSocketEventDTO, SubscribeGetDataWebSocketEventDTO, SubscribeProblemCrawledWebSocketEventDTO, SubscribeSubmissionRunStatusWebSocketEventDTO, SubscribeSubmissionsCrawlWebSocketEventDTO, SubscribeUserNotificationWebsocketEventDTO, UnsubscribeClientTrackWebSocketEventDTO, UnsubscribeCodeRunStatusWebSocketEventDTO, UnsubscribeContestChangesWebSocketEventDTO, UnsubscribeGetDataWebSocketEventDTO, UnsubscribeProblemCrawledWebSocketEventDTO, UnsubscribeSubmissionRunStatusWebSocketEventDTO, UnsubscribeSubmissionsCrawlWebSocketEventDTO, UnsubscribeUserNotificationWebSocketEventDTO, UserMessageWebSocketResponseEventDTO, UserNotificationContestClarificationWebSocketResponseEventDTO, UserNotificationSubmissionWebSocketResponseEventDTO, UserNotificationWebSocketResponseEventDTO, WebSocketMessageEventDTO, WebSocketResponseEventDTO, WebSocketSubscribeEventDTO, WebSocketUnsubscribeEventDTO } from '../dto';
2
+ import { ClientId, WebSocketResponseEvent, WebSocketResponseEventKey } from '../types';
3
+ export declare const isWebsocketSubscription: (event: any) => event is WebSocketSubscribeEventDTO | WebSocketUnsubscribeEventDTO | WebSocketMessageEventDTO;
4
+ export declare const isPingWebSocketEventDTO: (event: any) => event is PingWebSocketEventDTO;
5
+ export declare const isClientTrackLocationWebSocketEventDTO: (event: any) => event is ClientTrackLocationWebSocketEventDTO;
6
+ export declare const isClientTrackScreenshotWebSocketEventDTO: (event: any) => event is ClientTrackScreenshotWebSocketEventDTO;
7
+ export declare const isClientTrackDeviceWebSocketEventDTO: (event: any) => event is ClientTrackDeviceWebSocketEventDTO;
8
+ export declare const isChatCompletionsWebSocketEventDTO: (event: any) => event is ChatCompletionsWebSocketEventDTO;
9
+ export declare const isSubscribeCodeRunStatusWebSocketEventDTO: (event: any) => event is SubscribeCodeRunStatusWebSocketEventDTO;
10
+ export declare const isUnsubscribeCodeRunStatusWebSocketEventDTO: (event: any) => event is UnsubscribeCodeRunStatusWebSocketEventDTO;
11
+ export declare const isSubscribeSubmissionRunStatusWebSocketEventDTO: (event: any) => event is SubscribeSubmissionRunStatusWebSocketEventDTO;
12
+ export declare const isUnsubscribeSubmissionRunStatusWebSocketEventDTO: (event: any) => event is UnsubscribeSubmissionRunStatusWebSocketEventDTO;
13
+ export declare const isSubscribeGetDataWebSocketEventDTO: (event: any) => event is SubscribeGetDataWebSocketEventDTO;
14
+ export declare const isUnsubscribeGetDataWebSocketEventDTO: (event: any) => event is UnsubscribeGetDataWebSocketEventDTO;
15
+ export declare const isSubscribeProblemCrawledWebSocketEventDTO: (event: any) => event is SubscribeProblemCrawledWebSocketEventDTO;
16
+ export declare const isUnsubscribeProblemCrawledWebSocketEventDTO: (event: any) => event is UnsubscribeProblemCrawledWebSocketEventDTO;
17
+ export declare const isSubscribeSubmissionsCrawlWebSocketEventDTO: (event: any) => event is SubscribeSubmissionsCrawlWebSocketEventDTO;
18
+ export declare const isUnsubscribeSubmissionsCrawlWebSocketEventDTO: (event: any) => event is UnsubscribeSubmissionsCrawlWebSocketEventDTO;
19
+ export declare const isSubscribeContestChangesWebSocketEventDTO: (event: any) => event is SubscribeContestChangesWebSocketEventDTO;
20
+ export declare const isUnsubscribeContestChangesWebSocketEventDTO: (event: any) => event is UnsubscribeContestChangesWebSocketEventDTO;
21
+ export declare const isSubscribeClientTrackWebSocketEventDTO: (event: any) => event is SubscribeClientTrackWebSocketEventDTO;
22
+ export declare const isUnsubscribeClientTrackWebSocketEventDTO: (event: any) => event is UnsubscribeClientTrackWebSocketEventDTO;
23
+ export declare const isSubscribeUserNotificationWebSocketEventDTO: (event: any) => event is SubscribeUserNotificationWebsocketEventDTO;
24
+ export declare const isUnsubscribeUserNotificationWebSocketEventDTO: (event: any) => event is UnsubscribeUserNotificationWebSocketEventDTO;
25
+ export declare const isWebSocketResponseEventDTO: (event: any) => event is WebSocketResponseEventDTO;
26
+ export declare const isPongWebSocketResponseEventDTO: (event: any) => event is PongWebSocketResponseEventDTO;
27
+ export declare const isCodeRunStatusMessageWebSocketResponseEventDTO: (event: any) => event is CodeRunStatusWebSocketResponseEventDTO;
28
+ export declare const isSubmissionRunStatusMessageWebSocketResponseEventDTO: (event: any) => event is SubmissionRunStatusWebSocketResponseEventDTO;
29
+ export declare const isUserMessageWebSocketResponseEventDTO: (event: any) => event is UserMessageWebSocketResponseEventDTO;
30
+ export declare const isSendDataWebSocketResponseEventDTO: (event: any) => event is SendDataWebSocketResponseEventDTO;
31
+ export declare const isSendDataEcsTaskDefinitionListWebSocketResponseEventDTO: (event: any) => event is SendDataEcsTaskDefinitionListWebSocketResponseEventDTO;
32
+ export declare const isSendDataEc2InstancesListWebSocketResponseEventDTO: (event: any) => event is SendDataEc2InstancesListWebSocketResponseEventDTO;
33
+ export declare const isSendDataEcsTasksListWebSocketResponseEventDTO: (event: any) => event is SendDataEcsTasksListWebSocketResponseEventDTO;
34
+ export declare const isSendDataSsmSessionsListWebSocketResponseEventDTO: (event: any) => event is SendDataSsmSessionsListWebSocketResponseEventDTO;
35
+ export declare const isSendDataRunCommandWebSocketResponseEventDTO: (event: any) => event is SendDataRunCommandWebSocketResponseEventDTO;
36
+ export declare const isSendDataClientTrackWebSocketResponseEventDTO: (event: any) => event is SendDataClientTrackWebSocketResponseEventDTO;
37
+ export declare const isSenDataChatCompletionsWebSocketResponseEventDTO: (event: any) => event is SendDataChatCompletionsWebSocketResponseEventDTO;
38
+ export declare const isProblemCrawledWebSocketResponseEventDTO: (event: any) => event is ProblemCrawledWebSocketResponseEventDTO;
39
+ export declare const isSubmissionsCrawlWebSocketResponseEventDTO: (event: any) => event is SubmissionsCrawlWebSocketResponseEventDTO;
40
+ export declare const isContestChangesWebSocketResponseEventDTO: (event: any) => event is ContestChangesWebSocketResponseEventDTO;
41
+ export declare const isClientTrackWebSocketResponseEventDTO: (event: any) => event is ClientTrackWebSocketResponseEventDTO;
42
+ export declare const isUserNotificationWebSocketResponseEventDTO: (event: any) => event is UserNotificationWebSocketResponseEventDTO;
43
+ export declare const isUserNotificationSubmissionWebSocketResponseEventDTO: (event: any) => event is UserNotificationSubmissionWebSocketResponseEventDTO;
44
+ export declare const isUserNotificationContestClarificationWebSocketResponseEventDTO: (event: any) => event is UserNotificationContestClarificationWebSocketResponseEventDTO;
45
+ export declare const getWebSocketResponseEventKey: (event: WebSocketResponseEvent, clientId: ClientId, id: string) => WebSocketResponseEventKey;
@@ -0,0 +1,13 @@
1
+ import { SplitTime } from '../types';
2
+ export declare function splitTime(timeRemaining: number): [SplitTime, SplitTime, SplitTime, SplitTime, SplitTime, SplitTime];
3
+ export declare function normalizeToLocalStartOfDay(timestamp: number | Date): Date;
4
+ export declare function normalizeToLocalStartOfHour(timestamp: number | Date): Date;
5
+ export declare function normalizeToLocalStartOfMinutes(timestamp: number | Date): Date;
6
+ export declare function normalizeToLocalStartOfSeconds(timestamp: number | Date): Date;
7
+ export declare const getYears: (d: Date) => number;
8
+ export declare const getMonths: (d: Date) => number;
9
+ export declare const getDays: (d: Date) => number;
10
+ export declare const getHours: (d: Date) => number;
11
+ export declare const getMinutes: (d: Date) => number;
12
+ export declare const getSeconds: (d: Date) => number;
13
+ export declare const getMilliseconds: (d: Date) => number;
@@ -0,0 +1,11 @@
1
+ import { ClientId, RecordId } from '../types';
2
+ export declare const getUserKey: (userNickname: string, userCompanyKey: string) => string;
3
+ export declare const getParamsOfUserKey: (userKey: string) => {
4
+ userNickname: string;
5
+ userCompanyKey: string;
6
+ };
7
+ export declare const getClientId: (sessionId: RecordId, uiId: string) => ClientId;
8
+ export declare const getParamsOfClientId: (clientId: ClientId) => {
9
+ sessionId: RecordId;
10
+ uiId: string;
11
+ };