@aoi-js/aka 0.0.10 → 0.0.12

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.
@@ -1,8 +1,3 @@
1
- import { IRanklist } from '../client.js';
2
- import { IRanklistSyncOptions, RanklistCalculator } from './base.js';
3
- export declare class BasicCalculator extends RanklistCalculator {
4
- topstars: number;
5
- warnings: string;
6
- loadConfig(dict: Record<string, string>): Promise<IRanklistSyncOptions>;
7
- calculate(contestId: string, taskId: string, key: string): Promise<IRanklist>;
1
+ import { PlusCalculator } from './plus.js';
2
+ export declare class BasicCalculator extends PlusCalculator {
8
3
  }
package/lib/calc/basic.js CHANGED
@@ -1,103 +1,4 @@
1
- import { RanklistCalculator } from './base.js';
2
- export class BasicCalculator extends RanklistCalculator {
3
- topstars = 0;
4
- warnings = '';
5
- async loadConfig(dict) {
6
- const topstars = +dict.topstars;
7
- if (!Number.isInteger(topstars) || topstars < 0 || topstars > 20) {
8
- this.warnings += 'topstars must be an integer between 0 and 20\n';
9
- }
10
- else {
11
- this.topstars = topstars;
12
- }
13
- return {
14
- shouldSyncParticipants: true,
15
- shouldSyncSolutions: !!this.topstars
16
- };
17
- }
18
- async calculate(contestId, taskId, key) {
19
- const problems = await this.client.problems(contestId, taskId);
20
- problems.sort((a, b) => a.settings.slug.localeCompare(b.settings.slug));
21
- const problemIdList = problems.map((p) => p._id);
22
- const problemScoreList = problems.map((p) => p.settings.score);
23
- const participants = await this.db.participants.find({ contestId }).toArray();
24
- const participantRecords = participants
25
- .map(({ userId, tags, results }) => ({
26
- userId,
27
- tags,
28
- scores: problemIdList
29
- .map((pid) => results[pid]?.lastSolution.score ?? 0)
30
- .map((score, i) => (score * problemScoreList[i]) / 100)
31
- }))
32
- .map((record) => ({
33
- ...record,
34
- totalScore: record.scores.reduce((a, b) => a + b, 0)
35
- }))
36
- .sort((a, b) => b.totalScore - a.totalScore)
37
- .map((record, index) => ({
38
- ...record,
39
- rank: index + 1
40
- }));
41
- participantRecords.forEach((record, index, arr) => {
42
- if (index > 0 && record.totalScore === arr[index - 1].totalScore) {
43
- record.rank = arr[index - 1].rank;
44
- }
45
- });
46
- let topstar;
47
- if (this.topstars) {
48
- const topstarUserIdList = participantRecords
49
- .slice(0, this.topstars)
50
- .filter((record) => record.totalScore > 0)
51
- .map((p) => p.userId);
52
- topstar = {
53
- list: await Promise.all(topstarUserIdList.map(async (userId) => {
54
- const solutions = await this.db.solutions
55
- .find({ contestId, userId })
56
- .sort({ submittedAt: 1 })
57
- .toArray();
58
- const currentScores = Object.create(null);
59
- const mutations = [];
60
- for (const { problemId, score, submittedAt } of solutions) {
61
- currentScores[problemId] = score;
62
- mutations.push({
63
- score: problemIdList
64
- .map((pid, i) => ((currentScores[pid] ?? 0) * problemScoreList[i]) / 100)
65
- .reduce((a, b) => a + b, 0),
66
- ts: submittedAt
67
- });
68
- }
69
- return { userId, mutations };
70
- }))
71
- };
72
- }
73
- if (this.warnings) {
74
- this.logger.warn({ contestId, taskId, key }, this.warnings);
75
- }
76
- return {
77
- topstar,
78
- participant: {
79
- list: participantRecords.map(({ userId, rank, tags, scores, totalScore }) => ({
80
- userId,
81
- rank,
82
- tags,
83
- columns: [
84
- ...scores.map((score) => ({ content: `${score}` })),
85
- { content: `${totalScore}` }
86
- ]
87
- })),
88
- columns: [
89
- ...problems.map(({ title, settings: { slug } }) => ({
90
- name: slug,
91
- description: title
92
- })),
93
- { name: 'Total', description: 'Total Score' }
94
- ]
95
- },
96
- metadata: {
97
- generatedAt: Date.now(),
98
- description: 'Basic ranklist generated'
99
- }
100
- };
101
- }
1
+ import { PlusCalculator } from './plus.js';
2
+ export class BasicCalculator extends PlusCalculator {
102
3
  }
103
4
  //# sourceMappingURL=basic.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"basic.js","sourceRoot":"","sources":["../../src/calc/basic.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"basic.js","sourceRoot":"","sources":["../../src/calc/basic.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,WAAW,CAAA;AAE1C,MAAM,OAAO,eAAgB,SAAQ,cAAc;CAAG"}
@@ -21,13 +21,14 @@ export declare class PlusCalculator extends RanklistCalculator {
21
21
  showProblemScore: boolean;
22
22
  showLastSubmission: boolean;
23
23
  sameRankForSameScore: boolean;
24
- submittedBefore?: number;
25
- submittedAfter?: number;
24
+ submittedBefore: number;
25
+ submittedAfter: number;
26
26
  loadConfig(dict: Record<string, string>): Promise<IRanklistSyncOptions>;
27
27
  private _loadRenderConfig;
28
28
  private _loadTotalReduceConfig;
29
29
  private _loadScoreReduceConfig;
30
30
  private _loadFilterConfig;
31
+ private _getContest;
31
32
  private _getProblems;
32
33
  private _getParticipants;
33
34
  private _renderParticipantItemColumn;
@@ -36,6 +37,5 @@ export declare class PlusCalculator extends RanklistCalculator {
36
37
  calculate(contestId: string, taskId: string, key: string): Promise<IRanklist>;
37
38
  private _calculateTopstars;
38
39
  private _calculateScores;
39
- private _calculateLastSubmission;
40
40
  }
41
41
  export {};
package/lib/calc/plus.js CHANGED
@@ -18,8 +18,8 @@ export class PlusCalculator extends RanklistCalculator {
18
18
  showProblemScore = false;
19
19
  showLastSubmission = false;
20
20
  sameRankForSameScore = false;
21
- submittedBefore;
22
- submittedAfter;
21
+ submittedBefore = Date.parse('2124-12-31T23:59:59Z');
22
+ submittedAfter = 0;
23
23
  async loadConfig(dict) {
24
24
  const topstars = +dict.topstars;
25
25
  if (!Number.isInteger(topstars) || topstars < 0 || topstars > 20) {
@@ -131,6 +131,9 @@ export class PlusCalculator extends RanklistCalculator {
131
131
  }
132
132
  }
133
133
  }
134
+ async _getContest(contestId, taskId) {
135
+ return this.client.contest(contestId, taskId);
136
+ }
134
137
  async _getProblems(contestId, taskId) {
135
138
  let problems = await this.client.problems(contestId, taskId);
136
139
  const { problemTagWhitelist, problemTagBlacklist, problemSlugFilter, problemTitleFilter } = this;
@@ -159,10 +162,19 @@ export class PlusCalculator extends RanklistCalculator {
159
162
  }
160
163
  return participants;
161
164
  }
162
- _renderParticipantItemColumn(score, problemScore) {
163
- if (this.showProblemScore)
164
- return { content: `\`${score}/${problemScore}\`` };
165
- return { content: `${score}` };
165
+ _renderParticipantItemColumn(score, problemScore, solutionId) {
166
+ const cell = Object.create(null);
167
+ if (this.showProblemScore) {
168
+ // return { content: `\`${score}/${problemScore}\`` }
169
+ cell.content = `${score}/${problemScore}`;
170
+ }
171
+ else {
172
+ cell.content = `${score}`;
173
+ }
174
+ if (solutionId) {
175
+ cell.solutionId = solutionId;
176
+ }
177
+ return cell;
166
178
  }
167
179
  _formatDate(ts) {
168
180
  const date = new Date(ts);
@@ -175,20 +187,22 @@ export class PlusCalculator extends RanklistCalculator {
175
187
  async calculate(contestId, taskId, key) {
176
188
  const logger = this.logger.child({ contestId, taskId, key });
177
189
  logger.info('Start to calculate ranklist');
190
+ const contest = await this._getContest(contestId, taskId);
191
+ logger.info(`Loaded contest ${contest.slug} (${contest.title})`);
178
192
  const problems = await this._getProblems(contestId, taskId);
179
193
  problems.sort((a, b) => a.settings.slug.localeCompare(b.settings.slug));
180
194
  const problemIdList = problems.map((p) => p._id);
181
195
  const problemScoreList = problems.map((p) => p.settings.score);
182
196
  const participants = await this._getParticipants(contestId);
183
- const participantsWithScores = participants.map(({ userId, tags, results }) => ({
197
+ const participantsWithScores = participants.map(({ userId, tags }) => ({
184
198
  userId,
185
199
  tags,
186
- scores: problemIdList.map((pid) => results[pid]?.lastSolution.score ?? 0),
200
+ scores: problemIdList.map(() => 0),
201
+ lastSubmissionIds: problemIdList.map(() => ''),
187
202
  lastSubmission: 0
188
203
  }));
189
204
  logger.info(`Loaded ${problems.length} problems and ${participants.length} participants`);
190
- await this._calculateLastSubmission(logger, contestId, problemIdList, participantsWithScores);
191
- await this._calculateScores(logger, contestId, problemIdList, participantsWithScores);
205
+ await this._calculateScores(logger, contestId, problemIdList, participantsWithScores, contest.stages);
192
206
  if (!this.showOriginalScore) {
193
207
  for (const participant of participantsWithScores) {
194
208
  participant.scores = participant.scores.map((score, i) => (score * problemScoreList[i]) / 100);
@@ -219,7 +233,7 @@ export class PlusCalculator extends RanklistCalculator {
219
233
  }
220
234
  let topstar;
221
235
  if (this.topstars) {
222
- topstar = await this._calculateTopstars(logger, participantRecords, contestId, problemIdList, problemScoreList);
236
+ topstar = await this._calculateTopstars(logger, participantRecords, contestId, problemIdList, problemScoreList, contest.stages);
223
237
  }
224
238
  const now = performance.now();
225
239
  logger.info(`Start to generate ranklist object`);
@@ -232,13 +246,13 @@ export class PlusCalculator extends RanklistCalculator {
232
246
  const ranklist = {
233
247
  topstar,
234
248
  participant: {
235
- list: participantRecords.map(({ userId, rank, tags, scores, totalScore, lastSubmission }) => ({
249
+ list: participantRecords.map(({ userId, rank, tags, scores, lastSubmissionIds, totalScore, lastSubmission }) => ({
236
250
  userId,
237
251
  rank,
238
252
  tags,
239
253
  columns: [
240
- ...scores.map((score, i) => this._renderParticipantItemColumn(score, this.showOriginalScore ? 100 : problemScoreList[i])),
241
- this._renderParticipantItemColumn(totalScore, problemTotalScore),
254
+ ...scores.map((score, i) => this._renderParticipantItemColumn(score, this.showOriginalScore ? 100 : problemScoreList[i], lastSubmissionIds[i])),
255
+ this._renderParticipantItemColumn(totalScore, problemTotalScore, ''),
242
256
  ...(this.showLastSubmission ? [{ content: this._renderDate(lastSubmission) }] : [])
243
257
  ]
244
258
  })),
@@ -261,16 +275,19 @@ export class PlusCalculator extends RanklistCalculator {
261
275
  logger.info(`Generated ranklist object in ${performance.now() - now}ms`);
262
276
  return ranklist;
263
277
  }
264
- async _calculateTopstars(logger, participantRecords, contestId, problemIdList, problemScoreList) {
265
- const now = Date.now();
278
+ async _calculateTopstars(logger, participantRecords, contestId, problemIdList, problemScoreList, stages) {
266
279
  logger.info('Calculating topstars');
280
+ const start = performance.now();
281
+ // Filter out topstars' userId list
267
282
  const topstarUserIdList = participantRecords
268
283
  .slice(0, this.topstars)
269
284
  .filter((record) => record.totalScore > 0)
270
285
  .map((p) => p.userId);
286
+ // Generate topstar info
271
287
  const topstar = {
272
288
  list: await Promise.all(topstarUserIdList.map(async (userId) => {
273
- const solutions = await this.db.solutions
289
+ // For each topstar, find all effective solutions
290
+ let solutions = await this.db.solutions
274
291
  .find({
275
292
  contestId,
276
293
  userId,
@@ -282,6 +299,12 @@ export class PlusCalculator extends RanklistCalculator {
282
299
  }, { ignoreUndefined: true })
283
300
  .sort({ submittedAt: 1 })
284
301
  .toArray();
302
+ // Filter out solutions that should be skipped
303
+ solutions = solutions.filter((solution) => {
304
+ const stage = stages.findLast((s) => s.start <= solution.submittedAt);
305
+ return !stage?.settings.ranklistSkipCalculation;
306
+ });
307
+ // Calculate score mutations
285
308
  const currentScores = Object.create(null);
286
309
  const mutations = [];
287
310
  for (const { problemId, score, submittedAt } of solutions) {
@@ -301,13 +324,15 @@ export class PlusCalculator extends RanklistCalculator {
301
324
  return { userId, mutations };
302
325
  }))
303
326
  };
304
- logger.info(`Calculated topstars in ${Date.now() - now}ms`);
327
+ logger.info(`Calculated topstars in ${performance.now() - start}ms`);
305
328
  return topstar;
306
329
  }
307
- async _calculateScores(logger, contestId, problemIdList, participantsWithScores) {
330
+ async _calculateScores(logger, contestId, problemIdList, participantsWithScores, stages) {
308
331
  logger.info('Calculating scores');
309
332
  const start = performance.now();
310
333
  const scores = new Map();
334
+ const lastSubmissions = new Map();
335
+ const lastSubmissionIds = new Map();
311
336
  const cursor = this.db.solutions.find({
312
337
  contestId,
313
338
  problemId: { $in: problemIdList },
@@ -316,50 +341,37 @@ export class PlusCalculator extends RanklistCalculator {
316
341
  $lt: this.submittedBefore
317
342
  }
318
343
  }, { ignoreUndefined: true });
344
+ // Iterate through all solutions and calculate scores
319
345
  for await (const solution of cursor) {
320
- const { userId, problemId, score } = solution;
321
- if (!scores.has(userId)) {
322
- scores.set(userId, Object.create(null));
323
- }
324
- const userScores = scores.get(userId);
346
+ const { _id, userId, problemId, score, submittedAt } = solution;
347
+ const stage = stages.findLast((s) => s.start <= submittedAt);
348
+ // If ranklistSkipCalculation is set for the corresponding stage,
349
+ // skip lastSubmission calculation
350
+ if (stage?.settings.ranklistSkipCalculation)
351
+ continue;
352
+ // Update participant's score using _reduceScore
353
+ const userScores = scores.get(userId) ?? Object.create(null);
325
354
  if (Object.hasOwn(userScores, problemId)) {
326
355
  userScores[problemId] = this._reduceScore(userScores[problemId], score);
327
356
  }
328
357
  else {
329
358
  userScores[problemId] = score;
330
359
  }
360
+ scores.set(userId, userScores);
361
+ // Update lastSubmission timestamp and id
362
+ lastSubmissions.set(userId, Math.max(lastSubmissions.get(userId) ?? 0, submittedAt));
363
+ const userLastSubmissionIds = lastSubmissionIds.get(userId) ?? Object.create(null);
364
+ userLastSubmissionIds[problemId] = _id;
365
+ lastSubmissionIds.set(userId, userLastSubmissionIds);
331
366
  }
332
367
  for (const participant of participantsWithScores) {
333
- const userScores = scores.get(participant.userId) ?? Object.create(null);
334
- participant.scores = problemIdList.map((pid) => userScores[pid] ?? 0);
335
- }
336
- logger.info(`Calculated scores in ${performance.now() - start}ms`);
337
- }
338
- async _calculateLastSubmission(logger, contestId, problemIdList, participantsWithScores) {
339
- logger.info('Calculating lastSubmission');
340
- const start = performance.now();
341
- const lastSubmissions = new Map();
342
- const cursor = this.db.solutions.find({
343
- contestId,
344
- problemId: { $in: problemIdList },
345
- submittedAt: {
346
- $gte: this.submittedAfter,
347
- $lt: this.submittedBefore
348
- }
349
- }, { ignoreUndefined: true });
350
- for await (const solution of cursor) {
351
- const { userId, submittedAt } = solution;
352
- if (lastSubmissions.has(userId)) {
353
- lastSubmissions.set(userId, Math.max(lastSubmissions.get(userId), submittedAt));
354
- }
355
- else {
356
- lastSubmissions.set(userId, submittedAt);
357
- }
358
- }
359
- for (const participant of participantsWithScores) {
368
+ const userScores = scores.get(participant.userId);
369
+ participant.scores = problemIdList.map((pid) => userScores?.[pid] ?? 0);
370
+ const userLastSubmissionIds = lastSubmissionIds.get(participant.userId);
371
+ participant.lastSubmissionIds = problemIdList.map((pid) => userLastSubmissionIds?.[pid] ?? '');
360
372
  participant.lastSubmission = lastSubmissions.get(participant.userId) ?? 0;
361
373
  }
362
- logger.info(`Calculated lastSubmission in ${performance.now() - start}ms`);
374
+ logger.info(`Calculated scores in ${performance.now() - start}ms`);
363
375
  }
364
376
  }
365
377
  //# sourceMappingURL=plus.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"plus.js","sourceRoot":"","sources":["../../src/calc/plus.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"plus.js","sourceRoot":"","sources":["../../src/calc/plus.ts"],"names":[],"mappings":"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"}
package/lib/client.d.ts CHANGED
@@ -1,4 +1,5 @@
1
1
  import { type KyInstance } from 'ky';
2
+ import type { IContestStage } from '@aoi-js/server';
2
3
  export interface IAkaClientConfig {
3
4
  server: string;
4
5
  runnerId: string;
@@ -53,6 +54,7 @@ export interface IRanklistParticipantColumn {
53
54
  }
54
55
  export interface IRanklistParticipantItemColumn {
55
56
  content: string;
57
+ solutionId?: string;
56
58
  }
57
59
  export interface IRanklistParticipantItem {
58
60
  rank: number;
@@ -94,6 +96,13 @@ export declare class AkaClient {
94
96
  complete(contestId: string, taskId: string, payload: {
95
97
  ranklistUpdatedAt: number;
96
98
  }): Promise<void>;
99
+ contest(contestId: string, taskId: string): Promise<{
100
+ slug: string;
101
+ title: string;
102
+ description: string;
103
+ tags: string[];
104
+ stages: IContestStage[];
105
+ }>;
97
106
  problems(contestId: string, taskId: string): Promise<{
98
107
  _id: string;
99
108
  title: string;
package/lib/client.js CHANGED
@@ -22,6 +22,9 @@ export class AkaClient {
22
22
  .post(`api/runner/ranklist/task/${contestId}/${taskId}/complete`, { json: payload })
23
23
  .json();
24
24
  }
25
+ async contest(contestId, taskId) {
26
+ return this.http.get(`api/runner/ranklist/task/${contestId}/${taskId}/contest`).json();
27
+ }
25
28
  async problems(contestId, taskId) {
26
29
  return this.http.get(`api/runner/ranklist/task/${contestId}/${taskId}/problems`).json();
27
30
  }
package/lib/client.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAuB,MAAM,IAAI,CAAA;AACxC,OAAO,QAAQ,MAAM,iBAAiB,CAAC,SAAS,IAAI,EAAE,MAAM,EAAE,CAAA;AA2F9D,MAAM,OAAO,SAAS;IAEA;IADpB,IAAI,CAAY;IAChB,YAAoB,MAAwB;QAAxB,WAAM,GAAN,MAAM,CAAkB;QAC1C,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,MAAM,CAAC;YACpB,SAAS,EAAE,MAAM,CAAC,MAAM;YACxB,OAAO,EAAE;gBACP,iBAAiB,EAAE,MAAM,CAAC,QAAQ;gBAClC,kBAAkB,EAAE,MAAM,CAAC,SAAS;gBACpC,YAAY,EAAE,OAAO,QAAQ,CAAC,OAAO,EAAE;aACxC;SACF,CAAC,CAAA;IACJ,CAAC;IAED,KAAK,CAAC,IAAI;QACR,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC,IAAI,EAalD,CAAA;IACN,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,SAAiB,EAAE,MAAc,EAAE,OAAsC;QACtF,OAAO,IAAI,CAAC,IAAI;aACb,IAAI,CAAC,4BAA4B,SAAS,IAAI,MAAM,WAAW,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;aACnF,IAAI,EAAQ,CAAA;IACjB,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,SAAiB,EAAE,MAAc;QAC9C,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,4BAA4B,SAAS,IAAI,MAAM,WAAW,CAAC,CAAC,IAAI,EAYlF,CAAA;IACL,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,SAAiB,EAAE,MAAc,EAAE,KAAa,EAAE,MAAc;QACjF,OAAO,IAAI,CAAC,IAAI;aACb,GAAG,CAAC,4BAA4B,SAAS,IAAI,MAAM,eAAe,EAAE;YACnE,YAAY,EAAE;gBACZ,KAAK;gBACL,MAAM;aACP;SACF,CAAC;aACD,IAAI,EAAkB,CAAA;IAC3B,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,SAAiB,EAAE,MAAc,EAAE,KAAa,EAAE,MAAc;QAC9E,OAAO,IAAI,CAAC,IAAI;aACb,GAAG,CAAC,4BAA4B,SAAS,IAAI,MAAM,YAAY,EAAE;YAChE,YAAY,EAAE;gBACZ,KAAK;gBACL,MAAM;aACP;SACF,CAAC;aACD,IAAI,EAAe,CAAA;IACxB,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,SAAiB,EAAE,MAAc;QAChD,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,4BAA4B,SAAS,IAAI,MAAM,aAAa,CAAC,CAAC,IAAI,EAKpF,CAAA;IACL,CAAC;IAED,KAAK,CAAC,cAAc,CAAC,GAAW,EAAE,QAAmB;QACnD,OAAO,EAAE,CAAC,GAAG,CAAC,GAAG,EAAE;YACjB,IAAI,EAAE,QAAQ;SACf,CAAC,CAAA;IACJ,CAAC;CACF"}
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAuB,MAAM,IAAI,CAAA;AACxC,OAAO,QAAQ,MAAM,iBAAiB,CAAC,SAAS,IAAI,EAAE,MAAM,EAAE,CAAA;AA6F9D,MAAM,OAAO,SAAS;IAEA;IADpB,IAAI,CAAY;IAChB,YAAoB,MAAwB;QAAxB,WAAM,GAAN,MAAM,CAAkB;QAC1C,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,MAAM,CAAC;YACpB,SAAS,EAAE,MAAM,CAAC,MAAM;YACxB,OAAO,EAAE;gBACP,iBAAiB,EAAE,MAAM,CAAC,QAAQ;gBAClC,kBAAkB,EAAE,MAAM,CAAC,SAAS;gBACpC,YAAY,EAAE,OAAO,QAAQ,CAAC,OAAO,EAAE;aACxC;SACF,CAAC,CAAA;IACJ,CAAC;IAED,KAAK,CAAC,IAAI;QACR,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC,IAAI,EAalD,CAAA;IACN,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,SAAiB,EAAE,MAAc,EAAE,OAAsC;QACtF,OAAO,IAAI,CAAC,IAAI;aACb,IAAI,CAAC,4BAA4B,SAAS,IAAI,MAAM,WAAW,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;aACnF,IAAI,EAAQ,CAAA;IACjB,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,SAAiB,EAAE,MAAc;QAC7C,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,4BAA4B,SAAS,IAAI,MAAM,UAAU,CAAC,CAAC,IAAI,EAMhF,CAAA;IACN,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,SAAiB,EAAE,MAAc;QAC9C,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,4BAA4B,SAAS,IAAI,MAAM,WAAW,CAAC,CAAC,IAAI,EAYlF,CAAA;IACL,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,SAAiB,EAAE,MAAc,EAAE,KAAa,EAAE,MAAc;QACjF,OAAO,IAAI,CAAC,IAAI;aACb,GAAG,CAAC,4BAA4B,SAAS,IAAI,MAAM,eAAe,EAAE;YACnE,YAAY,EAAE;gBACZ,KAAK;gBACL,MAAM;aACP;SACF,CAAC;aACD,IAAI,EAAkB,CAAA;IAC3B,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,SAAiB,EAAE,MAAc,EAAE,KAAa,EAAE,MAAc;QAC9E,OAAO,IAAI,CAAC,IAAI;aACb,GAAG,CAAC,4BAA4B,SAAS,IAAI,MAAM,YAAY,EAAE;YAChE,YAAY,EAAE;gBACZ,KAAK;gBACL,MAAM;aACP;SACF,CAAC;aACD,IAAI,EAAe,CAAA;IACxB,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,SAAiB,EAAE,MAAc;QAChD,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,4BAA4B,SAAS,IAAI,MAAM,aAAa,CAAC,CAAC,IAAI,EAKpF,CAAA;IACL,CAAC;IAED,KAAK,CAAC,cAAc,CAAC,GAAW,EAAE,QAAmB;QACnD,OAAO,EAAE,CAAC,GAAG,CAAC,GAAG,EAAE;YACjB,IAAI,EAAE,QAAQ;SACf,CAAC,CAAA;IACJ,CAAC;CACF"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@aoi-js/aka",
3
- "version": "0.0.10",
3
+ "version": "0.0.12",
4
4
  "packageManager": "yarn@4.3.1",
5
5
  "publishConfig": {
6
6
  "access": "public"
@@ -24,6 +24,7 @@
24
24
  ],
25
25
  "bin": "bin/aka.js",
26
26
  "devDependencies": {
27
+ "@aoi-js/server": "^1.1.7",
27
28
  "@types/node": "^20.11.5",
28
29
  "@typescript-eslint/eslint-plugin": "^6.19.0",
29
30
  "@typescript-eslint/parser": "^6.19.0",