@juki-team/commons 0.1.31 → 0.1.40

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 (254) hide show
  1. package/dist/cjs/index.cjs +3567 -0
  2. package/dist/esm/index.js +3347 -0
  3. package/dist/{constants → types/constants}/commons.d.ts +8 -8
  4. package/dist/{constants → types/constants}/company.d.ts +3 -3
  5. package/dist/{constants → types/constants}/contest.d.ts +3 -3
  6. package/dist/{constants → types/constants}/course.d.ts +2 -2
  7. package/dist/{constants → types/constants}/entity.d.ts +1 -1
  8. package/dist/{constants → types/constants}/file.d.ts +5 -6
  9. package/dist/types/constants/index.d.ts +18 -0
  10. package/dist/{constants → types/constants}/judge.d.ts +9 -11
  11. package/dist/{constants → types/constants}/problem.d.ts +8 -9
  12. package/dist/types/constants/services.d.ts +8 -0
  13. package/dist/{constants → types/constants}/system.d.ts +2 -2
  14. package/dist/{constants → types/constants}/teams.d.ts +3 -4
  15. package/dist/types/constants/user.d.ts +16 -0
  16. package/dist/{constants → types/constants}/websocket.d.ts +1 -1
  17. package/dist/{constants → types/constants}/worksheet.d.ts +2 -2
  18. package/dist/{dto → types/dto}/class.d.ts +4 -4
  19. package/dist/{dto → types/dto}/code.d.ts +1 -1
  20. package/dist/{dto → types/dto}/comments.d.ts +3 -3
  21. package/dist/types/dto/company.d.ts +67 -0
  22. package/dist/{dto → types/dto}/contest.d.ts +8 -9
  23. package/dist/{dto → types/dto}/course.d.ts +5 -5
  24. package/dist/{dto → types/dto}/entity.d.ts +3 -3
  25. package/dist/{dto → types/dto}/excalidraw.d.ts +4 -4
  26. package/dist/{dto → types/dto}/file.d.ts +2 -2
  27. package/dist/types/dto/index.d.ts +25 -0
  28. package/dist/{dto → types/dto}/judge.d.ts +1 -1
  29. package/dist/{dto → types/dto}/markdown.d.ts +4 -4
  30. package/dist/{dto → types/dto}/mermaid.d.ts +4 -4
  31. package/dist/{dto → types/dto}/problem.d.ts +4 -5
  32. package/dist/{dto → types/dto}/scoreboard.d.ts +1 -1
  33. package/dist/{dto → types/dto}/session.d.ts +2 -2
  34. package/dist/{dto → types/dto}/socket.d.ts +7 -8
  35. package/dist/{dto → types/dto}/statistics.d.ts +2 -2
  36. package/dist/{dto → types/dto}/submission.d.ts +4 -5
  37. package/dist/{dto → types/dto}/system.d.ts +18 -18
  38. package/dist/{dto → types/dto}/user.d.ts +14 -14
  39. package/dist/{dto → types/dto}/virtual-user.d.ts +1 -2
  40. package/dist/{dto → types/dto}/worksheet-submissions.d.ts +4 -4
  41. package/dist/{dto → types/dto}/worksheet.d.ts +4 -4
  42. package/dist/{helpers → types/helpers}/class.d.ts +1 -1
  43. package/dist/{helpers → types/helpers}/commons.d.ts +11 -9
  44. package/dist/{helpers → types/helpers}/contest.d.ts +1 -1
  45. package/dist/{helpers → types/helpers}/document.d.ts +2 -2
  46. package/dist/types/helpers/index.d.ts +14 -0
  47. package/dist/types/helpers/interval.d.ts +2 -0
  48. package/dist/{helpers → types/helpers}/judging.d.ts +2 -3
  49. package/dist/types/helpers/object.d.ts +1 -0
  50. package/dist/types/helpers/responses.d.ts +8 -0
  51. package/dist/types/helpers/socket.d.ts +45 -0
  52. package/dist/{helpers → types/helpers}/time.d.ts +1 -1
  53. package/dist/{helpers → types/helpers}/user.d.ts +1 -1
  54. package/dist/types/helpers/worksheet.d.ts +10 -0
  55. package/dist/types/index.d.ts +5 -23
  56. package/dist/{prototypes → types/prototypes}/Error.d.ts +3 -3
  57. package/dist/types/prototypes/Number.d.ts +7 -0
  58. package/dist/types/prototypes/index.d.ts +3 -0
  59. package/dist/types/{class.d.ts → types/class.d.ts} +2 -2
  60. package/dist/types/{commons.d.ts → types/commons.d.ts} +3 -3
  61. package/dist/types/types/company.d.ts +29 -0
  62. package/dist/types/{contest.d.ts → types/contest.d.ts} +26 -9
  63. package/dist/types/{course.d.ts → types/course.d.ts} +1 -1
  64. package/dist/types/{entity.d.ts → types/entity.d.ts} +4 -4
  65. package/dist/types/{excalidraw.d.ts → types/excalidraw.d.ts} +3 -3
  66. package/dist/types/{file.d.ts → types/file.d.ts} +9 -4
  67. package/dist/types/{group.d.ts → types/group.d.ts} +5 -2
  68. package/dist/types/types/index.d.ts +25 -0
  69. package/dist/types/{judge.d.ts → types/judge.d.ts} +32 -3
  70. package/dist/types/{markdown.d.ts → types/markdown.d.ts} +1 -1
  71. package/dist/types/{mermaid.d.ts → types/mermaid.d.ts} +1 -1
  72. package/dist/types/types/prisma.d.ts +284 -0
  73. package/dist/types/{problems.d.ts → types/problems.d.ts} +13 -4
  74. package/dist/types/types/services.d.ts +213 -0
  75. package/dist/types/{sheet.d.ts → types/sheet.d.ts} +2 -3
  76. package/dist/types/{socket.d.ts → types/socket.d.ts} +3 -3
  77. package/dist/types/{teams.d.ts → types/teams.d.ts} +2 -25
  78. package/dist/types/{users.d.ts → types/users.d.ts} +4 -10
  79. package/dist/types/types/virtual-user.d.ts +7 -0
  80. package/dist/types/{worksheet.d.ts → types/worksheet.d.ts} +3 -3
  81. package/package.json +18 -22
  82. package/biome.shared.json +0 -102
  83. package/dist/constants/commons.js +0 -658
  84. package/dist/constants/company.js +0 -24
  85. package/dist/constants/contest.js +0 -29
  86. package/dist/constants/course.js +0 -12
  87. package/dist/constants/date.js +0 -23
  88. package/dist/constants/email.js +0 -34
  89. package/dist/constants/entity.js +0 -18
  90. package/dist/constants/file.js +0 -46
  91. package/dist/constants/index.d.ts +0 -18
  92. package/dist/constants/index.js +0 -18
  93. package/dist/constants/judge.js +0 -221
  94. package/dist/constants/problem.js +0 -72
  95. package/dist/constants/routing.js +0 -7
  96. package/dist/constants/services.d.ts +0 -5
  97. package/dist/constants/services.js +0 -131
  98. package/dist/constants/system.js +0 -9
  99. package/dist/constants/teams.js +0 -18
  100. package/dist/constants/time.js +0 -9
  101. package/dist/constants/user.d.ts +0 -10
  102. package/dist/constants/user.js +0 -35
  103. package/dist/constants/websocket.js +0 -5
  104. package/dist/constants/worksheet.js +0 -66
  105. package/dist/dto/class.js +0 -1
  106. package/dist/dto/code.js +0 -1
  107. package/dist/dto/comments.js +0 -1
  108. package/dist/dto/contest.js +0 -7
  109. package/dist/dto/course.js +0 -1
  110. package/dist/dto/entity.js +0 -5
  111. package/dist/dto/excalidraw.js +0 -1
  112. package/dist/dto/file.js +0 -1
  113. package/dist/dto/image.js +0 -1
  114. package/dist/dto/index.d.ts +0 -24
  115. package/dist/dto/index.js +0 -24
  116. package/dist/dto/judge.js +0 -1
  117. package/dist/dto/markdown.js +0 -1
  118. package/dist/dto/mermaid.js +0 -1
  119. package/dist/dto/organization.d.ts +0 -102
  120. package/dist/dto/organization.js +0 -1
  121. package/dist/dto/problem.js +0 -1
  122. package/dist/dto/scoreboard.js +0 -1
  123. package/dist/dto/session.js +0 -1
  124. package/dist/dto/socket.js +0 -1
  125. package/dist/dto/statistics.js +0 -1
  126. package/dist/dto/submission.js +0 -1
  127. package/dist/dto/system.js +0 -1
  128. package/dist/dto/url.js +0 -1
  129. package/dist/dto/user.js +0 -1
  130. package/dist/dto/virtual-user.js +0 -1
  131. package/dist/dto/worksheet-submissions.js +0 -1
  132. package/dist/dto/worksheet.js +0 -1
  133. package/dist/helpers/class.js +0 -10
  134. package/dist/helpers/comments.js +0 -4
  135. package/dist/helpers/commons.js +0 -191
  136. package/dist/helpers/contest.js +0 -21
  137. package/dist/helpers/document.js +0 -38
  138. package/dist/helpers/file.js +0 -4
  139. package/dist/helpers/index.d.ts +0 -14
  140. package/dist/helpers/index.js +0 -14
  141. package/dist/helpers/interval.d.ts +0 -2
  142. package/dist/helpers/interval.js +0 -22
  143. package/dist/helpers/judging.js +0 -107
  144. package/dist/helpers/object.d.ts +0 -1
  145. package/dist/helpers/object.js +0 -32
  146. package/dist/helpers/responses.d.ts +0 -8
  147. package/dist/helpers/responses.js +0 -78
  148. package/dist/helpers/socket.d.ts +0 -45
  149. package/dist/helpers/socket.js +0 -238
  150. package/dist/helpers/time.js +0 -101
  151. package/dist/helpers/user.js +0 -14
  152. package/dist/helpers/worksheet.d.ts +0 -10
  153. package/dist/helpers/worksheet.js +0 -131
  154. package/dist/index.d.ts +0 -6
  155. package/dist/index.js +0 -6
  156. package/dist/prisma/enums/AssignmentClassType.d.ts +0 -7
  157. package/dist/prisma/enums/AssignmentClassType.js +0 -6
  158. package/dist/prisma/enums/ContestEventAction.d.ts +0 -10
  159. package/dist/prisma/enums/ContestEventAction.js +0 -9
  160. package/dist/prisma/enums/ContestProblemPrerequisiteType.d.ts +0 -5
  161. package/dist/prisma/enums/ContestProblemPrerequisiteType.js +0 -4
  162. package/dist/prisma/enums/ContestRole.d.ts +0 -11
  163. package/dist/prisma/enums/ContestRole.js +0 -10
  164. package/dist/prisma/enums/ContestStatus.d.ts +0 -6
  165. package/dist/prisma/enums/ContestStatus.js +0 -5
  166. package/dist/prisma/enums/CourseRole.d.ts +0 -12
  167. package/dist/prisma/enums/CourseRole.js +0 -11
  168. package/dist/prisma/enums/EntityObjectType.d.ts +0 -13
  169. package/dist/prisma/enums/EntityObjectType.js +0 -12
  170. package/dist/prisma/enums/EntityRole.d.ts +0 -8
  171. package/dist/prisma/enums/EntityRole.js +0 -7
  172. package/dist/prisma/enums/EntitySubjectType.d.ts +0 -7
  173. package/dist/prisma/enums/EntitySubjectType.js +0 -6
  174. package/dist/prisma/enums/FileRole.d.ts +0 -9
  175. package/dist/prisma/enums/FileRole.js +0 -8
  176. package/dist/prisma/enums/FileType.d.ts +0 -5
  177. package/dist/prisma/enums/FileType.js +0 -4
  178. package/dist/prisma/enums/GroupType.d.ts +0 -5
  179. package/dist/prisma/enums/GroupType.js +0 -4
  180. package/dist/prisma/enums/JudgeType.d.ts +0 -12
  181. package/dist/prisma/enums/JudgeType.js +0 -11
  182. package/dist/prisma/enums/OrganizationPlan.d.ts +0 -7
  183. package/dist/prisma/enums/OrganizationPlan.js +0 -6
  184. package/dist/prisma/enums/ProblemRole.d.ts +0 -11
  185. package/dist/prisma/enums/ProblemRole.js +0 -10
  186. package/dist/prisma/enums/ProblemScoringMode.d.ts +0 -6
  187. package/dist/prisma/enums/ProblemScoringMode.js +0 -5
  188. package/dist/prisma/enums/ProblemType.d.ts +0 -6
  189. package/dist/prisma/enums/ProblemType.js +0 -5
  190. package/dist/prisma/enums/ProblemVerdict.d.ts +0 -14
  191. package/dist/prisma/enums/ProblemVerdict.js +0 -13
  192. package/dist/prisma/enums/ShareLinkVisibility.d.ts +0 -5
  193. package/dist/prisma/enums/ShareLinkVisibility.js +0 -4
  194. package/dist/prisma/enums/SubmissionRunStatus.d.ts +0 -18
  195. package/dist/prisma/enums/SubmissionRunStatus.js +0 -17
  196. package/dist/prisma/enums/SystemRole.d.ts +0 -9
  197. package/dist/prisma/enums/SystemRole.js +0 -8
  198. package/dist/prisma/enums/TeamRole.d.ts +0 -9
  199. package/dist/prisma/enums/TeamRole.js +0 -8
  200. package/dist/prisma/enums/TelemetryType.d.ts +0 -9
  201. package/dist/prisma/enums/TelemetryType.js +0 -8
  202. package/dist/prisma/enums/UserRole.d.ts +0 -10
  203. package/dist/prisma/enums/UserRole.js +0 -9
  204. package/dist/prisma/enums/WorkingIn.d.ts +0 -8
  205. package/dist/prisma/enums/WorkingIn.js +0 -7
  206. package/dist/prisma/enums/WorksheetContentType.d.ts +0 -10
  207. package/dist/prisma/enums/WorksheetContentType.js +0 -9
  208. package/dist/prisma/enums/index.d.ts +0 -26
  209. package/dist/prisma/enums/index.js +0 -26
  210. package/dist/prototypes/Date.js +0 -218
  211. package/dist/prototypes/Error.js +0 -17
  212. package/dist/prototypes/Number.d.ts +0 -7
  213. package/dist/prototypes/Number.js +0 -8
  214. package/dist/prototypes/index.d.ts +0 -3
  215. package/dist/prototypes/index.js +0 -3
  216. package/dist/types/account.js +0 -10
  217. package/dist/types/class.js +0 -7
  218. package/dist/types/comments.js +0 -1
  219. package/dist/types/commons.js +0 -69
  220. package/dist/types/company.d.ts +0 -6
  221. package/dist/types/company.js +0 -7
  222. package/dist/types/contest.js +0 -6
  223. package/dist/types/course.js +0 -1
  224. package/dist/types/entity.js +0 -50
  225. package/dist/types/excalidraw.js +0 -1
  226. package/dist/types/file.js +0 -13
  227. package/dist/types/group.js +0 -1
  228. package/dist/types/index.js +0 -23
  229. package/dist/types/judge.js +0 -17
  230. package/dist/types/markdown.js +0 -1
  231. package/dist/types/mermaid.js +0 -1
  232. package/dist/types/notification.js +0 -8
  233. package/dist/types/problems.js +0 -16
  234. package/dist/types/services.d.ts +0 -214
  235. package/dist/types/services.js +0 -147
  236. package/dist/types/sheet.js +0 -16
  237. package/dist/types/socket.js +0 -49
  238. package/dist/types/submission.js +0 -1
  239. package/dist/types/teams.js +0 -28
  240. package/dist/types/users.js +0 -33
  241. package/dist/types/worksheet.js +0 -11
  242. /package/dist/{constants → types/constants}/date.d.ts +0 -0
  243. /package/dist/{constants → types/constants}/email.d.ts +0 -0
  244. /package/dist/{constants → types/constants}/routing.d.ts +0 -0
  245. /package/dist/{constants → types/constants}/time.d.ts +0 -0
  246. /package/dist/{dto → types/dto}/image.d.ts +0 -0
  247. /package/dist/{dto → types/dto}/url.d.ts +0 -0
  248. /package/dist/{helpers → types/helpers}/comments.d.ts +0 -0
  249. /package/dist/{helpers → types/helpers}/file.d.ts +0 -0
  250. /package/dist/{prototypes → types/prototypes}/Date.d.ts +0 -0
  251. /package/dist/types/{account.d.ts → types/account.d.ts} +0 -0
  252. /package/dist/types/{comments.d.ts → types/comments.d.ts} +0 -0
  253. /package/dist/types/{notification.d.ts → types/notification.d.ts} +0 -0
  254. /package/dist/types/{submission.d.ts → types/submission.d.ts} +0 -0
@@ -1,14 +0,0 @@
1
- export * from './class.js';
2
- export * from './comments.js';
3
- export * from './commons.js';
4
- export * from './contest.js';
5
- export * from './document.js';
6
- export * from './file.js';
7
- export * from './interval.js';
8
- export * from './judging.js';
9
- export * from './object.js';
10
- export * from './responses.js';
11
- export * from './socket.js';
12
- export * from './time.js';
13
- export * from './user.js';
14
- export * from './worksheet.js';
@@ -1,14 +0,0 @@
1
- export * from './class.js';
2
- export * from './comments.js';
3
- export * from './commons.js';
4
- export * from './contest.js';
5
- export * from './document.js';
6
- export * from './file.js';
7
- export * from './interval.js';
8
- export * from './judging.js';
9
- export * from './object.js';
10
- export * from './responses.js';
11
- export * from './socket.js';
12
- export * from './time.js';
13
- export * from './user.js';
14
- export * from './worksheet.js';
@@ -1,2 +0,0 @@
1
- export declare const setAsyncInterval: (cb: () => Promise<void> | void, interval: number) => number;
2
- export declare const clearAsyncInterval: (intervalIndex: number) => void;
@@ -1,22 +0,0 @@
1
- // https://dev.to/jsmccrumb/asynchronous-setinterval-4j69
2
- const asyncIntervals = [];
3
- const runAsyncInterval = async (cb, interval, intervalIndex) => {
4
- await cb();
5
- if (asyncIntervals[intervalIndex]) {
6
- setTimeout(() => runAsyncInterval(cb, interval, intervalIndex), interval);
7
- }
8
- };
9
- export const setAsyncInterval = (cb, interval) => {
10
- if (cb) {
11
- const intervalIndex = asyncIntervals.length;
12
- asyncIntervals.push(true);
13
- void runAsyncInterval(cb, interval, intervalIndex);
14
- return intervalIndex;
15
- }
16
- throw new Error('Callback must be a function');
17
- };
18
- export const clearAsyncInterval = (intervalIndex) => {
19
- if (asyncIntervals[intervalIndex]) {
20
- asyncIntervals[intervalIndex] = false;
21
- }
22
- };
@@ -1,107 +0,0 @@
1
- import { ProblemVerdict, SubmissionRunStatus } from '../prisma/enums/index.js';
2
- export const getDataOfTestCase = (testCase, timeLimit, memoryLimit) => {
3
- const { timeUsed, memoryUsed, exitCode } = getDataLog(testCase?.log);
4
- const timeLimitExceeded = timeUsed > timeLimit;
5
- const memoryLimitExceeded = memoryUsed > memoryLimit;
6
- const runtimeError = exitCode !== 0;
7
- const compilationError = testCase?.status === SubmissionRunStatus.COMPILATION_ERROR;
8
- return {
9
- compilationError,
10
- timeUsed,
11
- timeLimitExceeded: timeLimitExceeded,
12
- memoryUsed,
13
- memoryLimitExceeded: memoryLimitExceeded,
14
- exitCode,
15
- runtimeError,
16
- failed: !!testCase?.log && (timeLimitExceeded || memoryLimitExceeded || runtimeError),
17
- };
18
- };
19
- function classifyOutput(testCaseValue) {
20
- if (testCaseValue.out === testCaseValue.testOut)
21
- return ProblemVerdict.AC;
22
- const normalize = (s) => s.replaceAll(' ', '').replaceAll('\n', '');
23
- if (normalize(testCaseValue.out) === normalize(testCaseValue.testOut)) {
24
- return testCaseValue.withPE ? ProblemVerdict.PE : ProblemVerdict.AC;
25
- }
26
- return ProblemVerdict.WA;
27
- }
28
- function determineVerdict(testCaseValue, compilationError, timeLimitExceeded, memoryLimitExceeded, runtimeError) {
29
- if (compilationError)
30
- return ProblemVerdict.CE;
31
- if (timeLimitExceeded)
32
- return ProblemVerdict.TLE;
33
- if (memoryLimitExceeded)
34
- return ProblemVerdict.MLE;
35
- if (runtimeError)
36
- return ProblemVerdict.RE;
37
- return classifyOutput(testCaseValue);
38
- }
39
- export const getVerdictFromTestCase = (testCaseValue, timeLimit, memoryLimit) => {
40
- const { compilationError, timeLimitExceeded, memoryLimitExceeded, runtimeError, timeUsed, memoryUsed, exitCode } = getDataOfTestCase(testCaseValue, timeLimit, memoryLimit);
41
- return {
42
- verdict: determineVerdict(testCaseValue, compilationError, timeLimitExceeded, memoryLimitExceeded, runtimeError),
43
- timeUsed,
44
- memoryUsed,
45
- exitCode,
46
- };
47
- };
48
- const VERDICT_PRIORITY = [
49
- ProblemVerdict.RE,
50
- ProblemVerdict.TLE,
51
- ProblemVerdict.MLE,
52
- ProblemVerdict.WA,
53
- ProblemVerdict.PE,
54
- ProblemVerdict.PA,
55
- ProblemVerdict.AC,
56
- ];
57
- export const mergeVerdicts = (first, second) => {
58
- const firstRank = VERDICT_PRIORITY.indexOf(first.verdict);
59
- const secondRank = VERDICT_PRIORITY.indexOf(second.verdict);
60
- const verdict = secondRank !== -1 && (firstRank === -1 || secondRank < firstRank) ? second.verdict : first.verdict;
61
- return {
62
- timeUsed: Math.max(first.timeUsed, second.timeUsed),
63
- memoryUsed: Math.max(first.memoryUsed, second.memoryUsed),
64
- exitCode: first.exitCode || second.exitCode,
65
- verdict,
66
- };
67
- };
68
- function parseLineValue(line, prefix) {
69
- return parseInt(line.slice(prefix.length + 1), 10);
70
- }
71
- function parseStructuredLog(lines) {
72
- let timeUsed = 0;
73
- let memoryUsed = 0;
74
- let exitCode = -1;
75
- for (const line of lines) {
76
- if (line.startsWith('time:')) {
77
- timeUsed = (Number.isNaN(+line.split(':')[1]) ? 0 : +line.split(':')[1]) * 1000;
78
- }
79
- else if (line.startsWith('max-rss:')) {
80
- memoryUsed = parseLineValue(line, 'max-rss');
81
- }
82
- else if (line.startsWith('exitcode:')) {
83
- exitCode = parseLineValue(line, 'exitcode');
84
- }
85
- }
86
- return { timeUsed, memoryUsed, exitCode };
87
- }
88
- function parseLegacyLog(lines) {
89
- return {
90
- timeUsed: +lines[0],
91
- memoryUsed: +lines[1],
92
- exitCode: +lines[2],
93
- };
94
- }
95
- export const getDataLog = (log) => {
96
- const lines = log?.split?.('\n') ?? [];
97
- const raw = lines.length > 4
98
- ? parseStructuredLog(lines)
99
- : lines.length >= 3
100
- ? parseLegacyLog(lines)
101
- : { timeUsed: 0, memoryUsed: 0, exitCode: -1 };
102
- return {
103
- timeUsed: Number.isNaN(raw.timeUsed) ? 0 : raw.timeUsed,
104
- memoryUsed: Number.isNaN(raw.memoryUsed) ? 0 : raw.memoryUsed,
105
- exitCode: Number.isNaN(raw.exitCode) ? -1 : raw.exitCode,
106
- };
107
- };
@@ -1 +0,0 @@
1
- export declare function memorySizeOf(obj: unknown): number;
@@ -1,32 +0,0 @@
1
- function sizeOfObject(obj) {
2
- const objClass = Object.prototype.toString.call(obj).slice(8, -1);
3
- if (objClass !== 'Object' && objClass !== 'Array') {
4
- return obj.toString().length * 2;
5
- }
6
- let bytes = 0;
7
- for (const key in obj) {
8
- if (!Object.hasOwn(obj, key))
9
- continue;
10
- bytes += key.length * 2 + sizeOf(obj[key]);
11
- }
12
- return bytes;
13
- }
14
- function sizeOf(obj) {
15
- if (obj === null || obj === undefined)
16
- return 0;
17
- switch (typeof obj) {
18
- case 'number':
19
- return 8;
20
- case 'string':
21
- return obj.length * 2;
22
- case 'boolean':
23
- return 4;
24
- case 'object':
25
- return sizeOfObject(obj);
26
- default:
27
- return 0;
28
- }
29
- }
30
- export function memorySizeOf(obj) {
31
- return sizeOf(obj);
32
- }
@@ -1,8 +0,0 @@
1
- import { JkError } from '../prototypes/index.js';
2
- import { type ContentResponse, type ContentsMeta, type ContentsResponse, type ErrorResponse } from '../types/index.js';
3
- export declare function toJkError(err: unknown): 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<unknown> | ContentsResponse<unknown>>(responseText: string) => ErrorResponse | T;
8
- export declare const getDefaultMeta: (contents: unknown[], sort?: ContentsMeta["sort"]) => ContentsMeta;
@@ -1,78 +0,0 @@
1
- import { getErrorMessage } from '../constants/index.js';
2
- import { JkError } from '../prototypes/index.js';
3
- import { ErrorCode, } from '../types/index.js';
4
- import { consoleError, isStringJson } from './commons.js';
5
- export function toJkError(err) {
6
- const error = new Error();
7
- let code = err?.code;
8
- if (!Object.values(ErrorCode).includes(code)) {
9
- code = ErrorCode.INTERNAL_SERVER_ERROR;
10
- }
11
- return new JkError(code, {
12
- message: err?.message || error.message,
13
- stack: err?.stack || error.stack,
14
- data: err?.data || null,
15
- });
16
- }
17
- export function errorsResponse(message, ...errors) {
18
- return {
19
- success: false,
20
- message: message,
21
- errors: errors.map((error) => ({
22
- code: error.code,
23
- message: error.message,
24
- detail: error.stack || new Error().stack || '',
25
- data: error.data,
26
- })),
27
- };
28
- }
29
- export function contentResponse(message, content) {
30
- return {
31
- success: true,
32
- message,
33
- content,
34
- };
35
- }
36
- export function contentsResponse(message, contents, meta) {
37
- return {
38
- success: true,
39
- message,
40
- contents,
41
- meta,
42
- };
43
- }
44
- function parseSuccessJson(responseJson) {
45
- if (responseJson.success === true && typeof responseJson.message === 'string') {
46
- if (responseJson.content) {
47
- return { success: true, message: responseJson.message, content: responseJson.content };
48
- }
49
- if (Array.isArray(responseJson.contents) && responseJson.meta) {
50
- return { success: true, message: responseJson.message, contents: responseJson.contents, meta: responseJson.meta };
51
- }
52
- }
53
- return null;
54
- }
55
- export const cleanRequest = (responseText) => {
56
- if (!isStringJson(responseText)) {
57
- const response = errorsResponse(getErrorMessage(ErrorCode.SERVICE_NOT_FOUND), new JkError(ErrorCode.SERVICE_NOT_FOUND));
58
- consoleError({ message: 'response is not string json, success false on cleaning request', responseText, response });
59
- return response;
60
- }
61
- const responseJson = JSON.parse(responseText);
62
- if (typeof responseJson.success === 'boolean') {
63
- const success = parseSuccessJson(responseJson);
64
- if (success)
65
- return success;
66
- if (responseJson.success === false && typeof responseJson.message === 'string' && Array.isArray(responseJson.errors)) {
67
- const response = { success: false, message: responseJson.message, errors: responseJson.errors };
68
- consoleError({ message: 'success false on cleaning request', responseText, response });
69
- return response;
70
- }
71
- }
72
- const response = errorsResponse(getErrorMessage(ErrorCode.ERROR_ON_RESPONSE), new JkError(ErrorCode.ERROR_ON_RESPONSE));
73
- consoleError({ message: 'success false on cleaning request', responseText, response });
74
- return response;
75
- };
76
- export const getDefaultMeta = (contents, sort) => {
77
- return { sort: sort ?? [], page: 1, size: contents.length, total: contents.length, filter: {} };
78
- };
@@ -1,45 +0,0 @@
1
- import type { 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/index.js';
2
- import { type ClientId, WebSocketResponseEvent, type WebSocketResponseEventKey } from '../types/index.js';
3
- export declare const isWebsocketSubscription: (event: unknown) => event is WebSocketSubscribeEventDTO | WebSocketUnsubscribeEventDTO | WebSocketMessageEventDTO;
4
- export declare const isPingWebSocketEventDTO: (event: unknown) => event is PingWebSocketEventDTO;
5
- export declare const isClientTrackLocationWebSocketEventDTO: (event: unknown) => event is ClientTrackLocationWebSocketEventDTO;
6
- export declare const isClientTrackScreenshotWebSocketEventDTO: (event: unknown) => event is ClientTrackScreenshotWebSocketEventDTO;
7
- export declare const isClientTrackDeviceWebSocketEventDTO: (event: unknown) => event is ClientTrackDeviceWebSocketEventDTO;
8
- export declare const isChatCompletionsWebSocketEventDTO: (event: unknown) => event is ChatCompletionsWebSocketEventDTO;
9
- export declare const isSubscribeCodeRunStatusWebSocketEventDTO: (event: unknown) => event is SubscribeCodeRunStatusWebSocketEventDTO;
10
- export declare const isUnsubscribeCodeRunStatusWebSocketEventDTO: (event: unknown) => event is UnsubscribeCodeRunStatusWebSocketEventDTO;
11
- export declare const isSubscribeSubmissionRunStatusWebSocketEventDTO: (event: unknown) => event is SubscribeSubmissionRunStatusWebSocketEventDTO;
12
- export declare const isUnsubscribeSubmissionRunStatusWebSocketEventDTO: (event: unknown) => event is UnsubscribeSubmissionRunStatusWebSocketEventDTO;
13
- export declare const isSubscribeGetDataWebSocketEventDTO: (event: unknown) => event is SubscribeGetDataWebSocketEventDTO;
14
- export declare const isUnsubscribeGetDataWebSocketEventDTO: (event: unknown) => event is UnsubscribeGetDataWebSocketEventDTO;
15
- export declare const isSubscribeProblemCrawledWebSocketEventDTO: (event: unknown) => event is SubscribeProblemCrawledWebSocketEventDTO;
16
- export declare const isUnsubscribeProblemCrawledWebSocketEventDTO: (event: unknown) => event is UnsubscribeProblemCrawledWebSocketEventDTO;
17
- export declare const isSubscribeSubmissionsCrawlWebSocketEventDTO: (event: unknown) => event is SubscribeSubmissionsCrawlWebSocketEventDTO;
18
- export declare const isUnsubscribeSubmissionsCrawlWebSocketEventDTO: (event: unknown) => event is UnsubscribeSubmissionsCrawlWebSocketEventDTO;
19
- export declare const isSubscribeContestChangesWebSocketEventDTO: (event: unknown) => event is SubscribeContestChangesWebSocketEventDTO;
20
- export declare const isUnsubscribeContestChangesWebSocketEventDTO: (event: unknown) => event is UnsubscribeContestChangesWebSocketEventDTO;
21
- export declare const isSubscribeClientTrackWebSocketEventDTO: (event: unknown) => event is SubscribeClientTrackWebSocketEventDTO;
22
- export declare const isUnsubscribeClientTrackWebSocketEventDTO: (event: unknown) => event is UnsubscribeClientTrackWebSocketEventDTO;
23
- export declare const isSubscribeUserNotificationWebSocketEventDTO: (event: unknown) => event is SubscribeUserNotificationWebsocketEventDTO;
24
- export declare const isUnsubscribeUserNotificationWebSocketEventDTO: (event: unknown) => event is UnsubscribeUserNotificationWebSocketEventDTO;
25
- export declare const isWebSocketResponseEventDTO: (event: unknown) => event is WebSocketResponseEventDTO;
26
- export declare const isPongWebSocketResponseEventDTO: (event: unknown) => event is PongWebSocketResponseEventDTO;
27
- export declare const isCodeRunStatusMessageWebSocketResponseEventDTO: (event: unknown) => event is CodeRunStatusWebSocketResponseEventDTO;
28
- export declare const isSubmissionRunStatusMessageWebSocketResponseEventDTO: (event: unknown) => event is SubmissionRunStatusWebSocketResponseEventDTO;
29
- export declare const isUserMessageWebSocketResponseEventDTO: (event: unknown) => event is UserMessageWebSocketResponseEventDTO;
30
- export declare const isSendDataWebSocketResponseEventDTO: (event: unknown) => event is SendDataWebSocketResponseEventDTO;
31
- export declare const isSendDataEcsTaskDefinitionListWebSocketResponseEventDTO: (event: unknown) => event is SendDataEcsTaskDefinitionListWebSocketResponseEventDTO;
32
- export declare const isSendDataEc2InstancesListWebSocketResponseEventDTO: (event: unknown) => event is SendDataEc2InstancesListWebSocketResponseEventDTO;
33
- export declare const isSendDataEcsTasksListWebSocketResponseEventDTO: (event: unknown) => event is SendDataEcsTasksListWebSocketResponseEventDTO;
34
- export declare const isSendDataSsmSessionsListWebSocketResponseEventDTO: (event: unknown) => event is SendDataSsmSessionsListWebSocketResponseEventDTO;
35
- export declare const isSendDataRunCommandWebSocketResponseEventDTO: (event: unknown) => event is SendDataRunCommandWebSocketResponseEventDTO;
36
- export declare const isSendDataClientTrackWebSocketResponseEventDTO: (event: unknown) => event is SendDataClientTrackWebSocketResponseEventDTO;
37
- export declare const isSenDataChatCompletionsWebSocketResponseEventDTO: (event: unknown) => event is SendDataChatCompletionsWebSocketResponseEventDTO;
38
- export declare const isProblemCrawledWebSocketResponseEventDTO: (event: unknown) => event is ProblemCrawledWebSocketResponseEventDTO;
39
- export declare const isSubmissionsCrawlWebSocketResponseEventDTO: (event: unknown) => event is SubmissionsCrawlWebSocketResponseEventDTO;
40
- export declare const isContestChangesWebSocketResponseEventDTO: (event: unknown) => event is ContestChangesWebSocketResponseEventDTO;
41
- export declare const isClientTrackWebSocketResponseEventDTO: (event: unknown) => event is ClientTrackWebSocketResponseEventDTO;
42
- export declare const isUserNotificationWebSocketResponseEventDTO: (event: unknown) => event is UserNotificationWebSocketResponseEventDTO;
43
- export declare const isUserNotificationSubmissionWebSocketResponseEventDTO: (event: unknown) => event is UserNotificationSubmissionWebSocketResponseEventDTO;
44
- export declare const isUserNotificationContestClarificationWebSocketResponseEventDTO: (event: unknown) => event is UserNotificationContestClarificationWebSocketResponseEventDTO;
45
- export declare const getWebSocketResponseEventKey: (event: WebSocketResponseEvent, clientId: ClientId, id: string) => WebSocketResponseEventKey;
@@ -1,238 +0,0 @@
1
- import { ProblemVerdict, SubmissionRunStatus } from '../prisma/enums/index.js';
2
- import { WebSocketMessageEvent, WebSocketResponseEvent, WebSocketSubscriptionEvent, } from '../types/index.js';
3
- export const isWebsocketSubscription = (event) => {
4
- if (typeof event !== 'object' || event === null)
5
- return false;
6
- const v = event;
7
- return ((Object.values(WebSocketSubscriptionEvent).includes(v.event) ||
8
- Object.values(WebSocketMessageEvent).includes(v.event)) &&
9
- typeof v.clientId === 'string' &&
10
- !!v.clientId);
11
- };
12
- // Custom CHANNEL_PUBLISH_MESSAGES
13
- export const isPingWebSocketEventDTO = (event) => {
14
- return isWebsocketSubscription(event) && event.event === WebSocketMessageEvent.PING;
15
- };
16
- export const isClientTrackLocationWebSocketEventDTO = (event) => {
17
- return isWebsocketSubscription(event) && event.event === WebSocketMessageEvent.CLIENT_TRACK_LOCATION;
18
- };
19
- export const isClientTrackScreenshotWebSocketEventDTO = (event) => {
20
- return isWebsocketSubscription(event) && event.event === WebSocketMessageEvent.CLIENT_TRACK_SCREENSHOT;
21
- };
22
- export const isClientTrackDeviceWebSocketEventDTO = (event) => {
23
- return isWebsocketSubscription(event) && event.event === WebSocketMessageEvent.CLIENT_TRACK_DEVICE;
24
- };
25
- export const isChatCompletionsWebSocketEventDTO = (event) => {
26
- return isWebsocketSubscription(event) && event.event === WebSocketMessageEvent.CHAT_COMPLETIONS;
27
- };
28
- // CHANNEL_PUBLISH_SUBSCRIPTIONS
29
- export const isSubscribeCodeRunStatusWebSocketEventDTO = (event) => {
30
- if (!isWebsocketSubscription(event))
31
- return false;
32
- const v = event;
33
- return event.event === WebSocketSubscriptionEvent.SUBSCRIBE_CODE_RUN_STATUS && typeof v.runId === 'string' && !!v.runId;
34
- };
35
- export const isUnsubscribeCodeRunStatusWebSocketEventDTO = (event) => {
36
- if (!isWebsocketSubscription(event))
37
- return false;
38
- const v = event;
39
- return event.event === WebSocketSubscriptionEvent.UNSUBSCRIBE_CODE_RUN_STATUS && typeof v.runId === 'string' && !!v.runId;
40
- };
41
- export const isSubscribeSubmissionRunStatusWebSocketEventDTO = (event) => {
42
- if (!isWebsocketSubscription(event))
43
- return false;
44
- const v = event;
45
- return (event.event === WebSocketSubscriptionEvent.SUBSCRIBE_SUBMISSION_RUN_STATUS && typeof v.submitId === 'string' && !!v.submitId);
46
- };
47
- export const isUnsubscribeSubmissionRunStatusWebSocketEventDTO = (event) => {
48
- if (!isWebsocketSubscription(event))
49
- return false;
50
- const v = event;
51
- return (event.event === WebSocketSubscriptionEvent.UNSUBSCRIBE_SUBMISSION_RUN_STATUS &&
52
- typeof v.submitId === 'string' &&
53
- !!v.submitId);
54
- };
55
- export const isSubscribeGetDataWebSocketEventDTO = (event) => {
56
- return isWebsocketSubscription(event) && event.event === WebSocketSubscriptionEvent.SUBSCRIBE_GET_DATA;
57
- };
58
- export const isUnsubscribeGetDataWebSocketEventDTO = (event) => {
59
- return isWebsocketSubscription(event) && event.event === WebSocketSubscriptionEvent.UNSUBSCRIBE_GET_DATA;
60
- };
61
- export const isSubscribeProblemCrawledWebSocketEventDTO = (event) => {
62
- return isWebsocketSubscription(event) && event.event === WebSocketSubscriptionEvent.SUBSCRIBE_PROBLEM_CRAWLED;
63
- };
64
- export const isUnsubscribeProblemCrawledWebSocketEventDTO = (event) => {
65
- return isWebsocketSubscription(event) && event.event === WebSocketSubscriptionEvent.UNSUBSCRIBE_PROBLEM_CRAWLED;
66
- };
67
- export const isSubscribeSubmissionsCrawlWebSocketEventDTO = (event) => {
68
- return isWebsocketSubscription(event) && event.event === WebSocketSubscriptionEvent.SUBSCRIBE_SUBMISSIONS_CRAWL;
69
- };
70
- export const isUnsubscribeSubmissionsCrawlWebSocketEventDTO = (event) => {
71
- return isWebsocketSubscription(event) && event.event === WebSocketSubscriptionEvent.UNSUBSCRIBE_SUBMISSIONS_CRAWL;
72
- };
73
- export const isSubscribeContestChangesWebSocketEventDTO = (event) => {
74
- return isWebsocketSubscription(event) && event.event === WebSocketSubscriptionEvent.SUBSCRIBE_CONTEST_CHANGES;
75
- };
76
- export const isUnsubscribeContestChangesWebSocketEventDTO = (event) => {
77
- return isWebsocketSubscription(event) && event.event === WebSocketSubscriptionEvent.UNSUBSCRIBE_CONTEST_CHANGES;
78
- };
79
- export const isSubscribeClientTrackWebSocketEventDTO = (event) => {
80
- return isWebsocketSubscription(event) && event.event === WebSocketSubscriptionEvent.SUBSCRIBE_CLIENT_TRACK;
81
- };
82
- export const isUnsubscribeClientTrackWebSocketEventDTO = (event) => {
83
- return isWebsocketSubscription(event) && event.event === WebSocketSubscriptionEvent.UNSUBSCRIBE_CLIENT_TRACK;
84
- };
85
- export const isSubscribeUserNotificationWebSocketEventDTO = (event) => {
86
- return isWebsocketSubscription(event) && event.event === WebSocketSubscriptionEvent.SUBSCRIBE_USER_NOTIFICATION;
87
- };
88
- export const isUnsubscribeUserNotificationWebSocketEventDTO = (event) => {
89
- return isWebsocketSubscription(event) && event.event === WebSocketSubscriptionEvent.UNSUBSCRIBE_USER_NOTIFICATION;
90
- };
91
- // is WebSocketResponseEventDTO, CHANNEL_SUBSCRIBE_CLIENT
92
- export const isWebSocketResponseEventDTO = (event) => {
93
- if (typeof event !== 'object' || event === null)
94
- return false;
95
- const v = event;
96
- return (Object.values(WebSocketResponseEvent).includes(v.event) &&
97
- typeof v.key === 'string' &&
98
- typeof v.connectionId === 'string' &&
99
- typeof v.messageTimestamp === 'number' &&
100
- !!v.messageTimestamp);
101
- };
102
- export const isPongWebSocketResponseEventDTO = (event) => {
103
- if (!isWebSocketResponseEventDTO(event))
104
- return false;
105
- const v = event;
106
- return event.event === WebSocketResponseEvent.PONG && !!v.data;
107
- };
108
- export const isCodeRunStatusMessageWebSocketResponseEventDTO = (event) => {
109
- if (!isWebSocketResponseEventDTO(event))
110
- return false;
111
- const v = event;
112
- return (event.event === WebSocketResponseEvent.CODE_RUN_STATUS &&
113
- typeof v.runId === 'string' &&
114
- !!v.runId &&
115
- v.status in SubmissionRunStatus);
116
- };
117
- export const isSubmissionRunStatusMessageWebSocketResponseEventDTO = (event) => {
118
- if (!isWebSocketResponseEventDTO(event))
119
- return false;
120
- const v = event;
121
- return (event.event === WebSocketResponseEvent.SUBMISSION_RUN_STATUS &&
122
- typeof v.submitId === 'string' &&
123
- !!v.submitId &&
124
- v.status in SubmissionRunStatus &&
125
- v.verdict in ProblemVerdict &&
126
- typeof v.points === 'number');
127
- };
128
- export const isUserMessageWebSocketResponseEventDTO = (event) => {
129
- if (!isWebSocketResponseEventDTO(event))
130
- return false;
131
- const v = event;
132
- const user = v.user;
133
- const company = user?.company;
134
- return (event.event === WebSocketResponseEvent.USER_MESSAGE &&
135
- typeof user?.nickname === 'string' &&
136
- !!user.nickname &&
137
- typeof user?.imageUrl === 'string' &&
138
- !!user.imageUrl &&
139
- typeof company?.key === 'string' &&
140
- !!company.key &&
141
- !!v.content);
142
- };
143
- export const isSendDataWebSocketResponseEventDTO = (event) => {
144
- if (typeof event !== 'object' || event === null)
145
- return false;
146
- const v = event;
147
- return ([
148
- WebSocketResponseEvent.SEND_DATA_ECS_TASK_DEFINITIONS_LIST,
149
- WebSocketResponseEvent.SEND_DATA_EC2_INSTANCES_LIST,
150
- WebSocketResponseEvent.SEND_DATA_ECS_TASKS_LIST,
151
- WebSocketResponseEvent.SEND_DATA_SSM_SESSIONS_LIST,
152
- WebSocketResponseEvent.SEND_DATA_RUN_COMMAND,
153
- WebSocketResponseEvent.SEND_DATA_CLIENT_TRACK,
154
- WebSocketResponseEvent.SEND_DATA_CHAT_COMPLETIONS,
155
- ].includes(v.event) &&
156
- typeof v.dataId === 'string' &&
157
- !!v.dataId &&
158
- !!v.content);
159
- };
160
- export const isSendDataEcsTaskDefinitionListWebSocketResponseEventDTO = (event) => {
161
- return (isWebSocketResponseEventDTO(event) &&
162
- isSendDataWebSocketResponseEventDTO(event) &&
163
- event.event === WebSocketResponseEvent.SEND_DATA_ECS_TASK_DEFINITIONS_LIST);
164
- };
165
- export const isSendDataEc2InstancesListWebSocketResponseEventDTO = (event) => {
166
- return (isWebSocketResponseEventDTO(event) &&
167
- isSendDataWebSocketResponseEventDTO(event) &&
168
- event.event === WebSocketResponseEvent.SEND_DATA_EC2_INSTANCES_LIST);
169
- };
170
- export const isSendDataEcsTasksListWebSocketResponseEventDTO = (event) => {
171
- return (isWebSocketResponseEventDTO(event) &&
172
- isSendDataWebSocketResponseEventDTO(event) &&
173
- event.event === WebSocketResponseEvent.SEND_DATA_ECS_TASKS_LIST);
174
- };
175
- export const isSendDataSsmSessionsListWebSocketResponseEventDTO = (event) => {
176
- return (isWebSocketResponseEventDTO(event) &&
177
- isSendDataWebSocketResponseEventDTO(event) &&
178
- event.event === WebSocketResponseEvent.SEND_DATA_SSM_SESSIONS_LIST);
179
- };
180
- export const isSendDataRunCommandWebSocketResponseEventDTO = (event) => {
181
- return (isWebSocketResponseEventDTO(event) &&
182
- isSendDataWebSocketResponseEventDTO(event) &&
183
- event.event === WebSocketResponseEvent.SEND_DATA_RUN_COMMAND);
184
- };
185
- export const isSendDataClientTrackWebSocketResponseEventDTO = (event) => {
186
- return (isWebSocketResponseEventDTO(event) &&
187
- isSendDataWebSocketResponseEventDTO(event) &&
188
- event.event === WebSocketResponseEvent.SEND_DATA_CLIENT_TRACK);
189
- };
190
- export const isSenDataChatCompletionsWebSocketResponseEventDTO = (event) => {
191
- return (isWebSocketResponseEventDTO(event) &&
192
- isSendDataWebSocketResponseEventDTO(event) &&
193
- event.event === WebSocketResponseEvent.SEND_DATA_CHAT_COMPLETIONS);
194
- };
195
- export const isProblemCrawledWebSocketResponseEventDTO = (event) => {
196
- if (!isWebSocketResponseEventDTO(event))
197
- return false;
198
- const v = event;
199
- return event.event === WebSocketResponseEvent.PROBLEM_CRAWLED && !!v.content;
200
- };
201
- export const isSubmissionsCrawlWebSocketResponseEventDTO = (event) => {
202
- if (!isWebSocketResponseEventDTO(event))
203
- return false;
204
- const v = event;
205
- return event.event === WebSocketResponseEvent.SUBMISSIONS_CRAWL && !!v.content;
206
- };
207
- export const isContestChangesWebSocketResponseEventDTO = (event) => {
208
- if (!isWebSocketResponseEventDTO(event))
209
- return false;
210
- const v = event;
211
- return event.event === WebSocketResponseEvent.CONTEST_CHANGES && !!v.content;
212
- };
213
- export const isClientTrackWebSocketResponseEventDTO = (event) => {
214
- return isWebSocketResponseEventDTO(event) && event.event === WebSocketResponseEvent.CLIENT_TRACK;
215
- };
216
- export const isUserNotificationWebSocketResponseEventDTO = (event) => {
217
- if (typeof event !== 'object' || event === null)
218
- return false;
219
- const v = event;
220
- return ([
221
- WebSocketResponseEvent.USER_NOTIFICATION_SUBMISSION,
222
- WebSocketResponseEvent.USER_NOTIFICATION_CONTEST_CLARIFICATION,
223
- ].includes(v.event) && !!v.content);
224
- };
225
- export const isUserNotificationSubmissionWebSocketResponseEventDTO = (event) => {
226
- return (isWebSocketResponseEventDTO(event) &&
227
- isUserNotificationWebSocketResponseEventDTO(event) &&
228
- event.event === WebSocketResponseEvent.USER_NOTIFICATION_SUBMISSION);
229
- };
230
- export const isUserNotificationContestClarificationWebSocketResponseEventDTO = (event) => {
231
- return (isWebSocketResponseEventDTO(event) &&
232
- isUserNotificationWebSocketResponseEventDTO(event) &&
233
- event.event === WebSocketResponseEvent.USER_NOTIFICATION_CONTEST_CLARIFICATION);
234
- };
235
- // generic
236
- export const getWebSocketResponseEventKey = (event, clientId, id) => {
237
- return `${event}-${clientId}-${id}`;
238
- };