@euler-edu/schema 0.0.0-stage → 7.0.1-beta0

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 (120) hide show
  1. package/lib/.tsbuildinfo +1 -0
  2. package/lib/auths/index.d.ts +49 -0
  3. package/lib/auths/index.js +49 -0
  4. package/lib/auths/index.js.map +1 -0
  5. package/lib/configs/index.d.ts +2 -0
  6. package/lib/configs/index.js +19 -0
  7. package/lib/configs/index.js.map +1 -0
  8. package/lib/configs/oj-envConfig/index.d.ts +143 -0
  9. package/lib/configs/oj-envConfig/index.js +35 -0
  10. package/lib/configs/oj-envConfig/index.js.map +1 -0
  11. package/lib/configs/style/index.d.ts +53 -0
  12. package/lib/configs/style/index.js +46 -0
  13. package/lib/configs/style/index.js.map +1 -0
  14. package/lib/endpoints/index.d.ts +2586 -0
  15. package/lib/endpoints/index.js +11 -0
  16. package/lib/endpoints/index.js.map +1 -0
  17. package/lib/endpoints/oj-api/auth.atom.d.ts +10 -0
  18. package/lib/endpoints/oj-api/auth.atom.js +26 -0
  19. package/lib/endpoints/oj-api/auth.atom.js.map +1 -0
  20. package/lib/endpoints/oj-api/auth.endpoint.d.ts +105 -0
  21. package/lib/endpoints/oj-api/auth.endpoint.js +118 -0
  22. package/lib/endpoints/oj-api/auth.endpoint.js.map +1 -0
  23. package/lib/endpoints/oj-api/contest.atom.d.ts +23 -0
  24. package/lib/endpoints/oj-api/contest.atom.js +20 -0
  25. package/lib/endpoints/oj-api/contest.atom.js.map +1 -0
  26. package/lib/endpoints/oj-api/contest.endpoint.d.ts +53 -0
  27. package/lib/endpoints/oj-api/contest.endpoint.js +49 -0
  28. package/lib/endpoints/oj-api/contest.endpoint.js.map +1 -0
  29. package/lib/endpoints/oj-api/index.d.ts +2523 -0
  30. package/lib/endpoints/oj-api/index.js +58 -0
  31. package/lib/endpoints/oj-api/index.js.map +1 -0
  32. package/lib/endpoints/oj-api/mail.atom.d.ts +12 -0
  33. package/lib/endpoints/oj-api/mail.atom.js +14 -0
  34. package/lib/endpoints/oj-api/mail.atom.js.map +1 -0
  35. package/lib/endpoints/oj-api/mail.endpoint.d.ts +48 -0
  36. package/lib/endpoints/oj-api/mail.endpoint.js +50 -0
  37. package/lib/endpoints/oj-api/mail.endpoint.js.map +1 -0
  38. package/lib/endpoints/oj-api/problem.atom.d.ts +120 -0
  39. package/lib/endpoints/oj-api/problem.atom.js +164 -0
  40. package/lib/endpoints/oj-api/problem.atom.js.map +1 -0
  41. package/lib/endpoints/oj-api/problem.endpoint.d.ts +291 -0
  42. package/lib/endpoints/oj-api/problem.endpoint.js +199 -0
  43. package/lib/endpoints/oj-api/problem.endpoint.js.map +1 -0
  44. package/lib/endpoints/oj-api/rank.atom.d.ts +5 -0
  45. package/lib/endpoints/oj-api/rank.atom.js +9 -0
  46. package/lib/endpoints/oj-api/rank.atom.js.map +1 -0
  47. package/lib/endpoints/oj-api/rank.endpoint.d.ts +54 -0
  48. package/lib/endpoints/oj-api/rank.endpoint.js +59 -0
  49. package/lib/endpoints/oj-api/rank.endpoint.js.map +1 -0
  50. package/lib/endpoints/oj-api/record.atom.d.ts +31 -0
  51. package/lib/endpoints/oj-api/record.atom.js +12 -0
  52. package/lib/endpoints/oj-api/record.atom.js.map +1 -0
  53. package/lib/endpoints/oj-api/record.endpoint.d.ts +107 -0
  54. package/lib/endpoints/oj-api/record.endpoint.js +87 -0
  55. package/lib/endpoints/oj-api/record.endpoint.js.map +1 -0
  56. package/lib/endpoints/oj-api/run.atom.d.ts +29 -0
  57. package/lib/endpoints/oj-api/run.atom.js +22 -0
  58. package/lib/endpoints/oj-api/run.atom.js.map +1 -0
  59. package/lib/endpoints/oj-api/run.endpoint.d.ts +59 -0
  60. package/lib/endpoints/oj-api/run.endpoint.js +50 -0
  61. package/lib/endpoints/oj-api/run.endpoint.js.map +1 -0
  62. package/lib/endpoints/oj-api/scoringRequest.atom.d.ts +24 -0
  63. package/lib/endpoints/oj-api/scoringRequest.atom.js +21 -0
  64. package/lib/endpoints/oj-api/scoringRequest.atom.js.map +1 -0
  65. package/lib/endpoints/oj-api/scoringRequest.endpoint.d.ts +47 -0
  66. package/lib/endpoints/oj-api/scoringRequest.endpoint.js +37 -0
  67. package/lib/endpoints/oj-api/scoringRequest.endpoint.js.map +1 -0
  68. package/lib/endpoints/oj-api/scoringServer.atom.d.ts +10 -0
  69. package/lib/endpoints/oj-api/scoringServer.atom.js +18 -0
  70. package/lib/endpoints/oj-api/scoringServer.atom.js.map +1 -0
  71. package/lib/endpoints/oj-api/scoringServer.endpoint.d.ts +21 -0
  72. package/lib/endpoints/oj-api/scoringServer.endpoint.js +25 -0
  73. package/lib/endpoints/oj-api/scoringServer.endpoint.js.map +1 -0
  74. package/lib/endpoints/oj-api/source.atom.d.ts +10 -0
  75. package/lib/endpoints/oj-api/source.atom.js +22 -0
  76. package/lib/endpoints/oj-api/source.atom.js.map +1 -0
  77. package/lib/endpoints/oj-api/source.endpoint.d.ts +98 -0
  78. package/lib/endpoints/oj-api/source.endpoint.js +72 -0
  79. package/lib/endpoints/oj-api/source.endpoint.js.map +1 -0
  80. package/lib/endpoints/oj-api/submit.atom.d.ts +62 -0
  81. package/lib/endpoints/oj-api/submit.atom.js +40 -0
  82. package/lib/endpoints/oj-api/submit.atom.js.map +1 -0
  83. package/lib/endpoints/oj-api/submit.endpoint.d.ts +236 -0
  84. package/lib/endpoints/oj-api/submit.endpoint.js +162 -0
  85. package/lib/endpoints/oj-api/submit.endpoint.js.map +1 -0
  86. package/lib/endpoints/oj-api/user.atom.d.ts +220 -0
  87. package/lib/endpoints/oj-api/user.atom.js +74 -0
  88. package/lib/endpoints/oj-api/user.atom.js.map +1 -0
  89. package/lib/endpoints/oj-api/user.endpoint.d.ts +879 -0
  90. package/lib/endpoints/oj-api/user.endpoint.js +502 -0
  91. package/lib/endpoints/oj-api/user.endpoint.js.map +1 -0
  92. package/lib/endpoints/oj-archives/index.d.ts +51 -0
  93. package/lib/endpoints/oj-archives/index.js +47 -0
  94. package/lib/endpoints/oj-archives/index.js.map +1 -0
  95. package/lib/endpoints/oj-problemContents/index.d.ts +15 -0
  96. package/lib/endpoints/oj-problemContents/index.js +17 -0
  97. package/lib/endpoints/oj-problemContents/index.js.map +1 -0
  98. package/lib/index.d.ts +2 -0
  99. package/lib/index.js +6 -0
  100. package/lib/index.js.map +1 -0
  101. package/lib/queues/index.d.ts +12 -0
  102. package/lib/queues/index.js +11 -0
  103. package/lib/queues/index.js.map +1 -0
  104. package/lib/queues/oj-clientSocketEventQueue.d.ts +12 -0
  105. package/lib/queues/oj-clientSocketEventQueue.js +16 -0
  106. package/lib/queues/oj-clientSocketEventQueue.js.map +1 -0
  107. package/lib/sockets/index.d.ts +34 -0
  108. package/lib/sockets/index.js +13 -0
  109. package/lib/sockets/index.js.map +1 -0
  110. package/lib/sockets/oj-socket/index.d.ts +18 -0
  111. package/lib/sockets/oj-socket/index.js +21 -0
  112. package/lib/sockets/oj-socket/index.js.map +1 -0
  113. package/lib/sockets/oj-web/index.d.ts +18 -0
  114. package/lib/sockets/oj-web/index.js +21 -0
  115. package/lib/sockets/oj-web/index.js.map +1 -0
  116. package/lib/types/index.d.ts +28 -0
  117. package/lib/types/index.js +3 -0
  118. package/lib/types/index.js.map +1 -0
  119. package/package.json +30 -3
  120. package/README.md +0 -3
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.endpoints = void 0;
7
+ const oj_api_1 = __importDefault(require("./oj-api"));
8
+ const oj_archives_1 = __importDefault(require("./oj-archives"));
9
+ const oj_problemContents_1 = __importDefault(require("./oj-problemContents"));
10
+ exports.endpoints = { ojApi: oj_api_1.default, ojArchives: oj_archives_1.default, ojProblemContents: oj_problemContents_1.default };
11
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/endpoints/index.ts"],"names":[],"mappings":";;;;;;AAAA,sDAA6B;AAC7B,gEAAuC;AACvC,8EAAqD;AAExC,QAAA,SAAS,GAAG,EAAE,KAAK,EAAL,gBAAK,EAAE,UAAU,EAAV,qBAAU,EAAE,iBAAiB,EAAjB,4BAAiB,EAAE,CAAC"}
@@ -0,0 +1,10 @@
1
+ import { z } from 'zod';
2
+ export declare const authAtom: {
3
+ prefix: string;
4
+ id: z.ZodString;
5
+ password: z.ZodString;
6
+ accessToken: z.ZodString;
7
+ refreshToken: z.ZodString;
8
+ tempAccessToken: z.ZodString;
9
+ accessTokenExpiredAt: z.ZodISODateTime;
10
+ };
@@ -0,0 +1,26 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.authAtom = void 0;
4
+ const zod_1 = require("zod");
5
+ exports.authAtom = {
6
+ prefix: '/auth',
7
+ id: zod_1.z.string().trim().min(1).max(30).describe('로그인을 위한 ID'),
8
+ password: zod_1.z.string().trim().min(1).max(50).describe('로그인을 위한 비밀번호'),
9
+ accessToken: zod_1.z
10
+ .string()
11
+ .trim()
12
+ .min(1)
13
+ .describe('로그인 후 발급되는 Access Token'),
14
+ refreshToken: zod_1.z
15
+ .string()
16
+ .trim()
17
+ .min(1)
18
+ .describe('로그인 후 발급되는 Refresh Token'),
19
+ tempAccessToken: zod_1.z
20
+ .string()
21
+ .trim()
22
+ .min(1)
23
+ .describe('로그인이 불가한 상태에서 발급되는 임시 Access Token'),
24
+ accessTokenExpiredAt: zod_1.z.iso.datetime({ offset: true }),
25
+ };
26
+ //# sourceMappingURL=auth.atom.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auth.atom.js","sourceRoot":"","sources":["../../../src/endpoints/oj-api/auth.atom.ts"],"names":[],"mappings":";;;AAAA,6BAAwB;AAEX,QAAA,QAAQ,GAAG;IACtB,MAAM,EAAE,OAAO;IACf,EAAE,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,YAAY,CAAC;IAC3D,QAAQ,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,cAAc,CAAC;IACnE,WAAW,EAAE,OAAC;SACX,MAAM,EAAE;SACR,IAAI,EAAE;SACN,GAAG,CAAC,CAAC,CAAC;SACN,QAAQ,CAAC,yBAAyB,CAAC;IACtC,YAAY,EAAE,OAAC;SACZ,MAAM,EAAE;SACR,IAAI,EAAE;SACN,GAAG,CAAC,CAAC,CAAC;SACN,QAAQ,CAAC,0BAA0B,CAAC;IACvC,eAAe,EAAE,OAAC;SACf,MAAM,EAAE;SACR,IAAI,EAAE;SACN,GAAG,CAAC,CAAC,CAAC;SACN,QAAQ,CAAC,oCAAoC,CAAC;IACjD,oBAAoB,EAAE,OAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;CACvD,CAAC"}
@@ -0,0 +1,105 @@
1
+ import { z } from 'zod';
2
+ declare const _default: {
3
+ readonly postAccessToken: {
4
+ readonly prefix: string;
5
+ readonly operation: {
6
+ readonly summary: "accessToken 발급";
7
+ readonly description: "로그인 시, 아이디와 비밀번호로 accessToken를 발급합니다. 일부 사유로 발급 실패 시, tempAccessToken를 발급합니다.";
8
+ };
9
+ readonly auth: {
10
+ readonly temp: 0;
11
+ };
12
+ readonly base: "oj-api";
13
+ readonly method: "post";
14
+ readonly path: () => string;
15
+ readonly body: z.ZodUnion<[z.ZodUnion<[z.ZodUnion<[z.ZodUnion<[z.ZodObject<{
16
+ id: z.ZodString;
17
+ password: z.ZodString;
18
+ }, z.core.$strip>, z.ZodObject<{
19
+ naverCode: z.ZodString;
20
+ state: z.ZodString;
21
+ }, z.core.$strip>]>, z.ZodObject<{
22
+ googleCode: z.ZodString;
23
+ state: z.ZodString;
24
+ }, z.core.$strip>]>, z.ZodObject<{
25
+ kakaoCode: z.ZodString;
26
+ state: z.ZodString;
27
+ }, z.core.$strip>]>, z.ZodObject<{
28
+ googleIdToken: z.ZodString;
29
+ }, z.core.$strip>]>;
30
+ readonly data: z.ZodUnion<[z.ZodObject<{
31
+ accessToken: z.ZodString;
32
+ accessTokenExpiredAt: z.ZodISODateTime;
33
+ }, z.core.$strip>, z.ZodObject<{
34
+ tempAccessToken: z.ZodString;
35
+ tempAccessTokenType: z.ZodEnum<{
36
+ SOCIAL_SIGNUP_REQUIRED: "SOCIAL_SIGNUP_REQUIRED";
37
+ EMAIL_NOT_VERIFIED: "EMAIL_NOT_VERIFIED";
38
+ TERMS_NOT_AGREED: "TERMS_NOT_AGREED";
39
+ }>;
40
+ }, z.core.$strip>]>;
41
+ };
42
+ readonly putAccessToken: {
43
+ readonly prefix: string;
44
+ readonly operation: {
45
+ readonly summary: "accessToken 갱신";
46
+ readonly description: "refreshToken으로 accessToken를 갱신합니다";
47
+ };
48
+ readonly base: "oj-api";
49
+ readonly method: "put";
50
+ readonly path: () => string;
51
+ readonly data: z.ZodObject<{
52
+ accessToken: z.ZodString;
53
+ accessTokenExpiredAt: z.ZodISODateTime;
54
+ }, z.core.$strip>;
55
+ };
56
+ readonly getRefreshTokenByMe: {
57
+ readonly prefix: string;
58
+ readonly operation: {
59
+ readonly summary: "refreshToken 조회";
60
+ readonly description: "현재 유효한 refreshToken를 조회합니다";
61
+ };
62
+ readonly auth: {
63
+ readonly requiredLevel: 1;
64
+ };
65
+ readonly base: "oj-api";
66
+ readonly method: "get";
67
+ readonly path: () => string;
68
+ readonly data: z.ZodArray<z.ZodObject<{
69
+ deviceId: z.ZodString;
70
+ issuedBy: z.ZodString;
71
+ issuedAt: z.ZodISODateTime;
72
+ expiredAt: z.ZodISODateTime;
73
+ clientMetadata: z.ZodOptional<z.ZodObject<{
74
+ ip: z.ZodOptional<z.ZodString>;
75
+ location: z.ZodOptional<z.ZodString>;
76
+ browser: z.ZodOptional<z.ZodString>;
77
+ os: z.ZodOptional<z.ZodString>;
78
+ device: z.ZodOptional<z.ZodString>;
79
+ }, z.core.$strip>>;
80
+ }, z.core.$strip>>;
81
+ };
82
+ readonly deleteRefreshToken: {
83
+ readonly prefix: string;
84
+ readonly operation: {
85
+ readonly summary: "refreshToken 삭제";
86
+ readonly description: "로그아웃 시, refreshToken를 삭제합니다";
87
+ };
88
+ readonly base: "oj-api";
89
+ readonly method: "delete";
90
+ readonly path: () => string;
91
+ };
92
+ readonly deleteRefreshTokenByDeviceId: {
93
+ readonly prefix: string;
94
+ readonly operation: {
95
+ readonly summary: "refreshToken 삭제";
96
+ };
97
+ readonly auth: {
98
+ readonly requiredLevel: 1;
99
+ };
100
+ readonly base: "oj-api";
101
+ readonly method: "delete";
102
+ readonly path: (deviceId: string) => string;
103
+ };
104
+ };
105
+ export default _default;
@@ -0,0 +1,118 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const zod_1 = require("zod");
4
+ const auth_atom_1 = require("./auth.atom");
5
+ const { prefix } = auth_atom_1.authAtom;
6
+ exports.default = {
7
+ postAccessToken: {
8
+ prefix,
9
+ operation: {
10
+ summary: 'accessToken 발급',
11
+ description: '로그인 시, 아이디와 비밀번호로 accessToken를 발급합니다. 일부 사유로 발급 실패 시, tempAccessToken를 발급합니다.',
12
+ },
13
+ auth: {
14
+ temp: 0,
15
+ },
16
+ base: 'oj-api',
17
+ method: 'post',
18
+ path: () => `/accessToken`,
19
+ body: zod_1.z
20
+ .object({
21
+ id: auth_atom_1.authAtom.id,
22
+ password: auth_atom_1.authAtom.password,
23
+ })
24
+ .or(zod_1.z.object({
25
+ naverCode: zod_1.z.string().trim().min(1),
26
+ state: zod_1.z.string().trim().min(1),
27
+ }))
28
+ .or(zod_1.z.object({
29
+ googleCode: zod_1.z.string().trim().min(1),
30
+ state: zod_1.z.string().trim().min(1),
31
+ }))
32
+ .or(zod_1.z.object({
33
+ kakaoCode: zod_1.z.string().trim().min(1),
34
+ state: zod_1.z.string().trim().min(1),
35
+ }))
36
+ .or(zod_1.z.object({
37
+ googleIdToken: zod_1.z.string().trim().min(1),
38
+ })),
39
+ data: zod_1.z
40
+ .object({
41
+ accessToken: auth_atom_1.authAtom.accessToken,
42
+ accessTokenExpiredAt: auth_atom_1.authAtom.accessTokenExpiredAt,
43
+ })
44
+ .or(zod_1.z.object({
45
+ tempAccessToken: auth_atom_1.authAtom.tempAccessToken,
46
+ tempAccessTokenType: zod_1.z.enum([
47
+ 'SOCIAL_SIGNUP_REQUIRED',
48
+ 'EMAIL_NOT_VERIFIED',
49
+ 'TERMS_NOT_AGREED',
50
+ ]),
51
+ })),
52
+ },
53
+ putAccessToken: {
54
+ prefix,
55
+ operation: {
56
+ summary: 'accessToken 갱신',
57
+ description: 'refreshToken으로 accessToken를 갱신합니다',
58
+ },
59
+ base: 'oj-api',
60
+ method: 'put',
61
+ path: () => `/accessToken`,
62
+ data: zod_1.z.object({
63
+ accessToken: auth_atom_1.authAtom.accessToken,
64
+ accessTokenExpiredAt: auth_atom_1.authAtom.accessTokenExpiredAt,
65
+ }),
66
+ },
67
+ getRefreshTokenByMe: {
68
+ prefix,
69
+ operation: {
70
+ summary: 'refreshToken 조회',
71
+ description: '현재 유효한 refreshToken를 조회합니다',
72
+ },
73
+ auth: {
74
+ requiredLevel: 1,
75
+ },
76
+ base: 'oj-api',
77
+ method: 'get',
78
+ path: () => `/refreshToken/byMe`,
79
+ data: zod_1.z.array(zod_1.z.object({
80
+ deviceId: zod_1.z.string().trim().min(1),
81
+ issuedBy: zod_1.z.string().trim().min(1),
82
+ issuedAt: zod_1.z.iso.datetime({ offset: true }),
83
+ expiredAt: zod_1.z.iso.datetime({ offset: true }),
84
+ clientMetadata: zod_1.z
85
+ .object({
86
+ ip: zod_1.z.string().trim().min(1).optional(),
87
+ location: zod_1.z.string().trim().min(1).optional(),
88
+ browser: zod_1.z.string().trim().min(1).optional(),
89
+ os: zod_1.z.string().trim().min(1).optional(),
90
+ device: zod_1.z.string().trim().min(1).optional(),
91
+ })
92
+ .optional(),
93
+ })),
94
+ },
95
+ deleteRefreshToken: {
96
+ prefix,
97
+ operation: {
98
+ summary: 'refreshToken 삭제',
99
+ description: '로그아웃 시, refreshToken를 삭제합니다',
100
+ },
101
+ base: 'oj-api',
102
+ method: 'delete',
103
+ path: () => `/refreshToken`,
104
+ },
105
+ deleteRefreshTokenByDeviceId: {
106
+ prefix,
107
+ operation: {
108
+ summary: 'refreshToken 삭제',
109
+ },
110
+ auth: {
111
+ requiredLevel: 1,
112
+ },
113
+ base: 'oj-api',
114
+ method: 'delete',
115
+ path: (deviceId) => `/refreshToken/byDeviceId/${deviceId}`,
116
+ },
117
+ };
118
+ //# sourceMappingURL=auth.endpoint.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auth.endpoint.js","sourceRoot":"","sources":["../../../src/endpoints/oj-api/auth.endpoint.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,23 @@
1
+ import { z } from 'zod';
2
+ export declare const contestAtom: {
3
+ prefix: string;
4
+ id: z.ZodString;
5
+ pastContestId: z.ZodString;
6
+ title: z.ZodString;
7
+ rankType: z.ZodEnum<{
8
+ "acm-icpc": "acm-icpc";
9
+ }>;
10
+ joinType: z.ZodEnum<{
11
+ public: "public";
12
+ }>;
13
+ participantsCount: z.ZodNumber;
14
+ timeStart: z.ZodISODateTime;
15
+ timeEnd: z.ZodISODateTime;
16
+ tag: z.ZodEnum<{
17
+ end: "end";
18
+ ready: "ready";
19
+ ongoing: "ongoing";
20
+ joined: "joined";
21
+ manager: "manager";
22
+ }>;
23
+ };
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.contestAtom = void 0;
4
+ const zod_1 = require("zod");
5
+ const oj_contest_1 = require("@euler-edu/constant/oj-contest");
6
+ exports.contestAtom = {
7
+ prefix: '/contest',
8
+ id: zod_1.z.string().trim().min(1).describe('대회 아이디'),
9
+ pastContestId: zod_1.z.string().trim().min(1).describe('아카이브 대회 아이디'),
10
+ title: zod_1.z.string().trim().min(1).describe('대회 제목'),
11
+ rankType: zod_1.z.enum(oj_contest_1.ojContest.rankTypes).describe('대회 순위 타입'),
12
+ joinType: zod_1.z.enum(oj_contest_1.ojContest.joinTypes).describe('대회 참여 타입'),
13
+ participantsCount: zod_1.z.number().min(0).describe('참가자 수'),
14
+ timeStart: zod_1.z.iso.datetime({ offset: true }).describe('대회 시작 시간'),
15
+ timeEnd: zod_1.z.iso.datetime({ offset: true }).describe('대회 종료 시간'),
16
+ tag: zod_1.z
17
+ .enum(['end', 'ready', 'ongoing', 'joined', 'manager'])
18
+ .describe('대회 태그'),
19
+ };
20
+ //# sourceMappingURL=contest.atom.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"contest.atom.js","sourceRoot":"","sources":["../../../src/endpoints/oj-api/contest.atom.ts"],"names":[],"mappings":";;;AAAA,6BAAwB;AAExB,+DAA2D;AAE9C,QAAA,WAAW,GAAG;IACzB,MAAM,EAAE,UAAU;IAClB,EAAE,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC;IAC/C,aAAa,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,aAAa,CAAC;IAC/D,KAAK,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC;IACjD,QAAQ,EAAE,OAAC,CAAC,IAAI,CAAC,sBAAS,CAAC,SAAS,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC;IAC1D,QAAQ,EAAE,OAAC,CAAC,IAAI,CAAC,sBAAS,CAAC,SAAS,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC;IAC1D,iBAAiB,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC;IACtD,SAAS,EAAE,OAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC;IAChE,OAAO,EAAE,OAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC;IAC9D,GAAG,EAAE,OAAC;SACH,IAAI,CAAC,CAAC,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC;SACtD,QAAQ,CAAC,OAAO,CAAC;CACrB,CAAC"}
@@ -0,0 +1,53 @@
1
+ import { z } from 'zod';
2
+ declare const _default: {
3
+ readonly get: {
4
+ readonly prefix: string;
5
+ readonly operation: {
6
+ readonly summary: "대회 조회";
7
+ };
8
+ readonly auth: {
9
+ readonly requiredLevel: 0;
10
+ };
11
+ readonly base: "oj-api";
12
+ readonly method: "get";
13
+ readonly path: () => string;
14
+ readonly data: z.ZodObject<{
15
+ contests: z.ZodArray<z.ZodObject<{
16
+ id: z.ZodString;
17
+ title: z.ZodString;
18
+ rankType: z.ZodEnum<{
19
+ "acm-icpc": "acm-icpc";
20
+ }>;
21
+ joinType: z.ZodEnum<{
22
+ public: "public";
23
+ }>;
24
+ participantsCount: z.ZodNumber;
25
+ timeStart: z.ZodISODateTime;
26
+ timeEnd: z.ZodISODateTime;
27
+ tags: z.ZodArray<z.ZodEnum<{
28
+ end: "end";
29
+ ready: "ready";
30
+ ongoing: "ongoing";
31
+ joined: "joined";
32
+ manager: "manager";
33
+ }>>;
34
+ }, z.core.$strip>>;
35
+ page: z.ZodNumber;
36
+ maxPage: z.ZodNumber;
37
+ count: z.ZodNumber;
38
+ }, z.core.$strip>;
39
+ readonly query: z.ZodObject<{
40
+ tags: z.ZodOptional<z.ZodString>;
41
+ search: z.ZodOptional<z.ZodString>;
42
+ sort: z.ZodOptional<z.ZodEnum<{
43
+ "timeStart-asc": "timeStart-asc";
44
+ "timeStart-desc": "timeStart-desc";
45
+ "timeEnd-asc": "timeEnd-asc";
46
+ "timeEnd-desc": "timeEnd-desc";
47
+ }>>;
48
+ page: z.ZodDefault<z.ZodCoercedNumber<unknown>>;
49
+ onePageLength: z.ZodDefault<z.ZodCoercedNumber<unknown>>;
50
+ }, z.core.$strip>;
51
+ };
52
+ };
53
+ export default _default;
@@ -0,0 +1,49 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const zod_1 = require("zod");
4
+ const contest_atom_1 = require("./contest.atom");
5
+ const { prefix } = contest_atom_1.contestAtom;
6
+ exports.default = {
7
+ get: {
8
+ prefix,
9
+ operation: {
10
+ summary: '대회 조회',
11
+ },
12
+ auth: {
13
+ requiredLevel: 0,
14
+ },
15
+ base: 'oj-api',
16
+ method: 'get',
17
+ path: () => `/`,
18
+ data: zod_1.z.object({
19
+ contests: zod_1.z.array(zod_1.z.object({
20
+ id: contest_atom_1.contestAtom.id,
21
+ title: contest_atom_1.contestAtom.title,
22
+ rankType: contest_atom_1.contestAtom.rankType,
23
+ joinType: contest_atom_1.contestAtom.joinType,
24
+ participantsCount: contest_atom_1.contestAtom.participantsCount,
25
+ timeStart: contest_atom_1.contestAtom.timeStart,
26
+ timeEnd: contest_atom_1.contestAtom.timeEnd,
27
+ tags: zod_1.z.array(contest_atom_1.contestAtom.tag),
28
+ })),
29
+ page: zod_1.z.number().int().positive(),
30
+ maxPage: zod_1.z.number().int().positive(),
31
+ count: zod_1.z.number().int().nonnegative(),
32
+ }),
33
+ query: zod_1.z.object({
34
+ tags: zod_1.z.string().trim().optional(),
35
+ search: zod_1.z.string().trim().optional(),
36
+ sort: zod_1.z
37
+ .enum([
38
+ 'timeStart-asc',
39
+ 'timeStart-desc',
40
+ 'timeEnd-asc',
41
+ 'timeEnd-desc',
42
+ ])
43
+ .optional(),
44
+ page: zod_1.z.coerce.number().int().positive().default(1),
45
+ onePageLength: zod_1.z.coerce.number().int().positive().max(200).default(100),
46
+ }),
47
+ },
48
+ };
49
+ //# sourceMappingURL=contest.endpoint.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"contest.endpoint.js","sourceRoot":"","sources":["../../../src/endpoints/oj-api/contest.endpoint.ts"],"names":[],"mappings":";;AACA,6BAAwB;AAExB,iDAA6C;AAE7C,MAAM,EAAE,MAAM,EAAE,GAAG,0BAAW,CAAC;AAE/B,kBAAe;IACb,GAAG,EAAE;QACH,MAAM;QACN,SAAS,EAAE;YACT,OAAO,EAAE,OAAO;SACjB;QACD,IAAI,EAAE;YACJ,aAAa,EAAE,CAAC;SACjB;QACD,IAAI,EAAE,QAAiB;QACvB,MAAM,EAAE,KAAc;QACtB,IAAI,EAAE,GAAG,EAAE,CAAC,GAAG;QACf,IAAI,EAAE,OAAC,CAAC,MAAM,CAAC;YACb,QAAQ,EAAE,OAAC,CAAC,KAAK,CACf,OAAC,CAAC,MAAM,CAAC;gBACP,EAAE,EAAE,0BAAW,CAAC,EAAE;gBAClB,KAAK,EAAE,0BAAW,CAAC,KAAK;gBACxB,QAAQ,EAAE,0BAAW,CAAC,QAAQ;gBAC9B,QAAQ,EAAE,0BAAW,CAAC,QAAQ;gBAC9B,iBAAiB,EAAE,0BAAW,CAAC,iBAAiB;gBAChD,SAAS,EAAE,0BAAW,CAAC,SAAS;gBAChC,OAAO,EAAE,0BAAW,CAAC,OAAO;gBAC5B,IAAI,EAAE,OAAC,CAAC,KAAK,CAAC,0BAAW,CAAC,GAAG,CAAC;aAC/B,CAAC,CACH;YACD,IAAI,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE;YACjC,OAAO,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE;YACpC,KAAK,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE;SACtC,CAAC;QACF,KAAK,EAAE,OAAC,CAAC,MAAM,CAAC;YACd,IAAI,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,QAAQ,EAAE;YAClC,MAAM,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,QAAQ,EAAE;YACpC,IAAI,EAAE,OAAC;iBACJ,IAAI,CAAC;gBACJ,eAAe;gBACf,gBAAgB;gBAChB,aAAa;gBACb,cAAc;aACf,CAAC;iBACD,QAAQ,EAAE;YACb,IAAI,EAAE,OAAC,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;YACnD,aAAa,EAAE,OAAC,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC;SACxE,CAAC;KACH;CAC0C,CAAC"}