atcoder-gui 1.0.0 → 1.1.0

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 (105) hide show
  1. package/README.md +7 -0
  2. package/dist/analyzer/analyzer.d.ts +16 -0
  3. package/dist/analyzer/analyzer.d.ts.map +1 -0
  4. package/dist/analyzer/analyzer.js +379 -0
  5. package/dist/analyzer/analyzer.js.map +1 -0
  6. package/dist/analyzer/html-parser.d.ts +24 -0
  7. package/dist/analyzer/html-parser.d.ts.map +1 -0
  8. package/dist/analyzer/html-parser.js +214 -0
  9. package/dist/analyzer/html-parser.js.map +1 -0
  10. package/dist/analyzer/index.d.ts +7 -0
  11. package/dist/analyzer/index.d.ts.map +1 -0
  12. package/dist/analyzer/index.js +7 -0
  13. package/dist/analyzer/index.js.map +1 -0
  14. package/dist/analyzer/lexer.d.ts +14 -0
  15. package/dist/analyzer/lexer.d.ts.map +1 -0
  16. package/dist/analyzer/lexer.js +133 -0
  17. package/dist/analyzer/lexer.js.map +1 -0
  18. package/dist/analyzer/match.d.ts +7 -0
  19. package/dist/analyzer/match.d.ts.map +1 -0
  20. package/dist/analyzer/match.js +133 -0
  21. package/dist/analyzer/match.js.map +1 -0
  22. package/dist/analyzer/parser.d.ts +20 -0
  23. package/dist/analyzer/parser.d.ts.map +1 -0
  24. package/dist/analyzer/parser.js +135 -0
  25. package/dist/analyzer/parser.js.map +1 -0
  26. package/dist/analyzer/types.d.ts +54 -0
  27. package/dist/analyzer/types.d.ts.map +1 -0
  28. package/dist/analyzer/types.js +10 -0
  29. package/dist/analyzer/types.js.map +1 -0
  30. package/dist/analyzer/typing.d.ts +10 -0
  31. package/dist/analyzer/typing.d.ts.map +1 -0
  32. package/dist/analyzer/typing.js +246 -0
  33. package/dist/analyzer/typing.js.map +1 -0
  34. package/dist/browser.d.ts +12 -0
  35. package/dist/browser.d.ts.map +1 -1
  36. package/dist/browser.js +26 -1
  37. package/dist/browser.js.map +1 -1
  38. package/dist/build.d.ts +7 -0
  39. package/dist/build.d.ts.map +1 -0
  40. package/dist/build.js +40 -0
  41. package/dist/build.js.map +1 -0
  42. package/dist/config.d.ts +10 -2
  43. package/dist/config.d.ts.map +1 -1
  44. package/dist/config.js +31 -18
  45. package/dist/config.js.map +1 -1
  46. package/dist/config.json5 +16 -1
  47. package/dist/gen.d.ts +6 -12
  48. package/dist/gen.d.ts.map +1 -1
  49. package/dist/gen.js +153 -66
  50. package/dist/gen.js.map +1 -1
  51. package/dist/generator/checker.d.ts +2 -0
  52. package/dist/generator/checker.d.ts.map +1 -0
  53. package/dist/generator/checker.js +64 -0
  54. package/dist/generator/checker.js.map +1 -0
  55. package/dist/generator/cplusplus.d.ts +14 -0
  56. package/dist/generator/cplusplus.d.ts.map +1 -0
  57. package/dist/generator/cplusplus.js +43 -0
  58. package/dist/generator/cplusplus.js.map +1 -0
  59. package/dist/generator/fetcher.d.ts +2 -0
  60. package/dist/generator/fetcher.d.ts.map +1 -0
  61. package/dist/generator/fetcher.js +39 -0
  62. package/dist/generator/fetcher.js.map +1 -0
  63. package/dist/generator/pipeline.d.ts +25 -0
  64. package/dist/generator/pipeline.d.ts.map +1 -0
  65. package/dist/generator/pipeline.js +85 -0
  66. package/dist/generator/pipeline.js.map +1 -0
  67. package/dist/generator/python.d.ts +14 -0
  68. package/dist/generator/python.d.ts.map +1 -0
  69. package/dist/generator/python.js +41 -0
  70. package/dist/generator/python.js.map +1 -0
  71. package/dist/generator/types.d.ts +79 -0
  72. package/dist/generator/types.d.ts.map +1 -0
  73. package/dist/generator/types.js +2 -0
  74. package/dist/generator/types.js.map +1 -0
  75. package/dist/generator/universal.d.ts +35 -0
  76. package/dist/generator/universal.d.ts.map +1 -0
  77. package/dist/generator/universal.js +524 -0
  78. package/dist/generator/universal.js.map +1 -0
  79. package/dist/generator/variable-extractor.d.ts +16 -0
  80. package/dist/generator/variable-extractor.d.ts.map +1 -0
  81. package/dist/generator/variable-extractor.js +103 -0
  82. package/dist/generator/variable-extractor.js.map +1 -0
  83. package/dist/main.d.ts +3 -1
  84. package/dist/main.d.ts.map +1 -1
  85. package/dist/main.js +99 -100
  86. package/dist/main.js.map +1 -1
  87. package/dist/submit.d.ts +1 -1
  88. package/dist/submit.d.ts.map +1 -1
  89. package/dist/submit.js +17 -17
  90. package/dist/submit.js.map +1 -1
  91. package/dist/test.d.ts +10 -0
  92. package/dist/test.d.ts.map +1 -0
  93. package/dist/test.js +127 -0
  94. package/dist/test.js.map +1 -0
  95. package/dist/tests/batch_check.d.ts +2 -0
  96. package/dist/tests/batch_check.d.ts.map +1 -0
  97. package/dist/tests/batch_check.js +46 -0
  98. package/dist/tests/batch_check.js.map +1 -0
  99. package/dist/types.d.ts +2 -0
  100. package/dist/types.d.ts.map +1 -1
  101. package/dist/utils.d.ts +12 -0
  102. package/dist/utils.d.ts.map +1 -1
  103. package/dist/utils.js +32 -0
  104. package/dist/utils.js.map +1 -1
  105. package/package.json +21 -4
@@ -0,0 +1,103 @@
1
+ import { VarType, } from "../analyzer/types.js";
2
+ export class VariableExtractor {
3
+ vars = new Map();
4
+ collapsedVars = new Set();
5
+ setCollapsedVars(collapsedVars) {
6
+ this.collapsedVars = collapsedVars;
7
+ }
8
+ extract(node) {
9
+ this.visit(node, []);
10
+ }
11
+ visit(node, loops) {
12
+ if (!node)
13
+ return;
14
+ if (node.type === "format") {
15
+ node.children.forEach((c) => this.visit(c, loops));
16
+ }
17
+ else if (node.type === "loop") {
18
+ const loop = node;
19
+ // Visit bounds first
20
+ this.visit(loop.start, loops);
21
+ this.visit(loop.end, loops);
22
+ // Visit body with updated loop stack
23
+ loop.body.forEach((c) => this.visit(c, [...loops, loop]));
24
+ }
25
+ else if (node.type === "item") {
26
+ const item = node;
27
+ const existing = this.vars.get(item.name) || {
28
+ dims: 0,
29
+ indices: [],
30
+ loopDepth: 0,
31
+ };
32
+ const currentLoopDepth = loops.length;
33
+ // We only update if we find a usage with MORE dimensions, or if it's new.
34
+ // Usually the usage with most dimensions defines the array.
35
+ // E.g. A_i ... A_N implies A is vector.
36
+ if (item.indices.length >= existing.dims) {
37
+ const indices = [];
38
+ for (const idx of item.indices) {
39
+ let resolvedSize = idx;
40
+ // Try to resolve index to a loop bound
41
+ // Heuristic: if index is a simple variable and matches a loop variable, use loop end
42
+ if (idx.type === "item") {
43
+ const idxName = idx.name;
44
+ const loop = loops.find((l) => l.variable === idxName);
45
+ if (loop) {
46
+ resolvedSize = loop.end;
47
+ }
48
+ }
49
+ indices.push(resolvedSize);
50
+ }
51
+ // Keep the MAX loop depth seen for this variable (or should we strictly bind depth to definition?)
52
+ // If defined in Loop, depth is > 0.
53
+ // We use the depth at the point of definition (maximum dimensions).
54
+ this.vars.set(item.name, {
55
+ dims: item.indices.length,
56
+ indices,
57
+ loopDepth: currentLoopDepth,
58
+ });
59
+ }
60
+ }
61
+ else if (node.type === "binop") {
62
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
63
+ const bin = node;
64
+ this.visit(bin.left, loops);
65
+ this.visit(bin.right, loops);
66
+ }
67
+ }
68
+ getVariables(types) {
69
+ return Array.from(this.vars.entries()).map(([name, info]) => {
70
+ let dims = info.dims;
71
+ let indices = info.indices;
72
+ const type = types[name] || VarType.ValueInt;
73
+ // Rule 1: Explicitly collapsed variables (Standard match failed, Collapse succeeded)
74
+ if (this.collapsedVars.has(name) && dims > 0) {
75
+ dims -= 1;
76
+ indices = indices.slice(0, -1);
77
+ }
78
+ // Rule 2: String anomaly (Standard match succeeded, but Analyzer produced disconnected dimensions)
79
+ // If type is String, and dimensions exceed the loop depth, it implies we are indexing implicitly into the string.
80
+ // e.g. loops=1, indices=2 (S[N][i]). This means S[i] is a string. We drop the extra index.
81
+ else if (type === VarType.String && dims > info.loopDepth) {
82
+ // const excess = dims - info.loopDepth;
83
+ dims = info.loopDepth;
84
+ // Keep the last 'dims' indices (assuming loop vars are inner)
85
+ // E.g. [N, i], depth=1. excess=1. slice(-1) -> [i].
86
+ // If depth=0 (scalar usage outside loop), but indices=1? -> dims=0.
87
+ if (dims === 0) {
88
+ indices = [];
89
+ }
90
+ else {
91
+ indices = indices.slice(-dims);
92
+ }
93
+ }
94
+ return {
95
+ name,
96
+ type,
97
+ dims,
98
+ indices,
99
+ };
100
+ });
101
+ }
102
+ }
103
+ //# sourceMappingURL=variable-extractor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"variable-extractor.js","sourceRoot":"","sources":["../../src/generator/variable-extractor.ts"],"names":[],"mappings":"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"}
package/dist/main.d.ts CHANGED
@@ -1,11 +1,13 @@
1
1
  #!/usr/bin/env node
2
- import { AppConfig } from './config.js';
2
+ import { AppConfig } from "./config.js";
3
3
  export declare class AtCoderGUI {
4
4
  private browserManager;
5
5
  private configManager;
6
6
  private submitManager;
7
7
  private cookieExporter;
8
8
  private genManager;
9
+ private buildManager;
10
+ private testManager;
9
11
  private problemManager;
10
12
  private rl;
11
13
  constructor();
@@ -1 +1 @@
1
- {"version":3,"file":"main.d.ts","sourceRoot":"","sources":["../src/main.ts"],"names":[],"mappings":";AAMA,OAAO,EAAiB,SAAS,EAAE,MAAM,aAAa,CAAC;AAOvD,qBAAa,UAAU;IACrB,OAAO,CAAC,cAAc,CAAiB;IACvC,OAAO,CAAC,aAAa,CAAgB;IACrC,OAAO,CAAC,aAAa,CAAgB;IACrC,OAAO,CAAC,cAAc,CAAiB;IACvC,OAAO,CAAC,UAAU,CAAa;IAC/B,OAAO,CAAC,cAAc,CAAiB;IACvC,OAAO,CAAC,EAAE,CAAmC;;IAW7C;;OAEG;IACG,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAM3B;;OAEG;IACG,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAazC;;OAEG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAO5B;;OAEG;IACH,SAAS,IAAI,SAAS;IAItB;;OAEG;IACG,mBAAmB,IAAI,OAAO,CAAC,IAAI,CAAC;IA2C1C;;OAEG;YACW,aAAa;IAoJ3B;;OAEG;IACH,OAAO,CAAC,QAAQ;CA+BjB"}
1
+ {"version":3,"file":"main.d.ts","sourceRoot":"","sources":["../src/main.ts"],"names":[],"mappings":";AAMA,OAAO,EAAiB,SAAS,EAAE,MAAM,aAAa,CAAC;AAUvD,qBAAa,UAAU;IACrB,OAAO,CAAC,cAAc,CAAiB;IACvC,OAAO,CAAC,aAAa,CAAgB;IACrC,OAAO,CAAC,aAAa,CAAgB;IACrC,OAAO,CAAC,cAAc,CAAiB;IACvC,OAAO,CAAC,UAAU,CAAa;IAC/B,OAAO,CAAC,YAAY,CAAe;IACnC,OAAO,CAAC,WAAW,CAAc;IACjC,OAAO,CAAC,cAAc,CAAiB;IACvC,OAAO,CAAC,EAAE,CAAmC;;IAa7C;;OAEG;IACG,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAU3B;;OAEG;IACG,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAazC;;OAEG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAO5B;;OAEG;IACH,SAAS,IAAI,SAAS;IAItB;;OAEG;IACG,mBAAmB,IAAI,OAAO,CAAC,IAAI,CAAC;IAiD1C;;OAEG;YACW,aAAa;IAoI3B;;OAEG;IACH,OAAO,CAAC,QAAQ;CA+BjB"}
package/dist/main.js CHANGED
@@ -1,37 +1,49 @@
1
1
  #!/usr/bin/env node
2
- import * as readline from 'readline';
3
- import { pathToFileURL } from 'url';
4
- import * as fs from 'fs';
5
- import { BrowserManager } from './browser.js';
6
- import { ConfigManager } from './config.js';
7
- import { SubmitManager } from './submit.js';
8
- import { CookieExporter } from './cookie-export.js';
9
- import { GenManager } from './gen.js';
10
- import { ProblemManager } from './problem.js';
11
- import { execSync } from 'child_process';
2
+ import * as readline from "readline";
3
+ import { pathToFileURL } from "url";
4
+ import * as fs from "fs";
5
+ import { BrowserManager } from "./browser.js";
6
+ import { ConfigManager } from "./config.js";
7
+ import { SubmitManager } from "./submit.js";
8
+ import { CookieExporter } from "./cookie-export.js";
9
+ import { GenManager } from "./gen.js";
10
+ import { BuildManager } from "./build.js";
11
+ import { TestManager } from "./test.js";
12
+ import { ProblemManager } from "./problem.js";
13
+ import { expandHomeDir, compactHomeDir } from "./utils.js";
14
+ import { execSync } from "child_process";
12
15
  export class AtCoderGUI {
13
16
  browserManager;
14
17
  configManager;
15
18
  submitManager;
16
19
  cookieExporter;
17
20
  genManager;
21
+ buildManager;
22
+ testManager;
18
23
  problemManager;
19
24
  rl = null;
20
25
  constructor() {
21
26
  this.browserManager = new BrowserManager();
22
- this.configManager = new ConfigManager();
27
+ this.configManager = new ConfigManager(true);
23
28
  this.submitManager = new SubmitManager(this.browserManager);
24
29
  this.cookieExporter = new CookieExporter(this.browserManager);
25
- this.genManager = new GenManager(this.browserManager);
30
+ this.genManager = new GenManager(this.browserManager, this.configManager);
31
+ this.buildManager = new BuildManager(this.configManager);
32
+ this.testManager = new TestManager(this.configManager, this.buildManager);
26
33
  this.problemManager = new ProblemManager(this.browserManager);
27
34
  }
28
35
  /**
29
36
  * Initialize the application
30
37
  */
31
38
  async init() {
32
- await this.browserManager.launch(this.getConfig());
33
- const url = this.getConfig().defaultUrl || 'https://atcoder.jp';
34
- await this.browserManager.openUrl(url);
39
+ try {
40
+ await this.browserManager.launch(this.getConfig());
41
+ const url = this.getConfig().defaultUrl || "https://atcoder.jp";
42
+ await this.browserManager.openUrl(url);
43
+ }
44
+ catch (error) {
45
+ console.warn("Warning: Failed to launch browser. Some commands may not work.", error);
46
+ }
35
47
  }
36
48
  /**
37
49
  * Open a URL in the browser
@@ -72,30 +84,35 @@ export class AtCoderGUI {
72
84
  this.rl = readline.createInterface({
73
85
  input: process.stdin,
74
86
  output: process.stdout,
75
- prompt: 'command> '
87
+ prompt: "command> ",
76
88
  });
77
89
  this.browserManager.setOnPageClose(() => {
78
90
  this.rl?.close();
79
91
  });
92
+ const workspaceDir = this.getConfig().workspaceDir;
93
+ if (workspaceDir) {
94
+ process.chdir(expandHomeDir(workspaceDir));
95
+ console.log(`Current directory: ${compactHomeDir(process.cwd())}`);
96
+ }
80
97
  console.log('Type "help" for available commands or "exit" to quit');
81
98
  this.rl.prompt();
82
- this.rl.on('line', async (input) => {
99
+ this.rl.on("line", async (input) => {
83
100
  const trimmedInput = input.trim();
84
- if (trimmedInput === '') {
101
+ if (trimmedInput === "") {
85
102
  this.rl.prompt();
86
103
  return;
87
104
  }
88
105
  await this.handleCommand(trimmedInput);
89
106
  this.rl.prompt();
90
107
  });
91
- this.rl.on('close', async () => {
92
- console.log('\nGoodbye!');
108
+ this.rl.on("close", async () => {
109
+ console.log("\nGoodbye!");
93
110
  await this.close();
94
111
  process.exit(0);
95
112
  });
96
113
  // Handle Ctrl+C
97
- process.on('SIGINT', async () => {
98
- console.log('\nShutting down...');
114
+ process.on("SIGINT", async () => {
115
+ console.log("\nShutting down...");
99
116
  await this.close();
100
117
  process.exit(0);
101
118
  });
@@ -104,9 +121,9 @@ export class AtCoderGUI {
104
121
  * Handle CLI commands
105
122
  */
106
123
  async handleCommand(input) {
107
- const args = input.split(' ').filter(arg => arg.length > 0);
124
+ const args = input.split(" ").filter((arg) => arg.length > 0);
108
125
  const command = args[0].toLowerCase();
109
- if (command == '') {
126
+ if (command == "") {
110
127
  return;
111
128
  }
112
129
  // Try to navigate to problem directory if command is a single letter
@@ -115,131 +132,113 @@ export class AtCoderGUI {
115
132
  }
116
133
  try {
117
134
  switch (command) {
118
- case 'open':
135
+ case "open":
119
136
  if (args.length < 2) {
120
- console.log('Error: URL is required for open command');
121
- console.log('Usage: open <URL>');
137
+ console.log("Error: URL is required for open command");
138
+ console.log("Usage: open <URL>");
122
139
  return;
123
140
  }
124
141
  await this.openUrl(args[1]);
125
142
  break;
126
- case 'config':
127
- console.log('Current configuration:');
143
+ case "config":
144
+ console.log("Current configuration:");
128
145
  console.log(JSON.stringify(this.getConfig(), null, 2));
129
146
  break;
130
- case 'help':
147
+ case "help":
131
148
  this.showHelp();
132
149
  break;
133
- case 'exit':
134
- case 'quit':
150
+ case "exit":
151
+ case "quit":
135
152
  this.rl?.close();
136
153
  break;
137
- case 'acc':
138
- case 'oj':
154
+ case "acc":
155
+ case "oj":
139
156
  {
140
- const command_line = args.join(' ');
157
+ const command_line = args.join(" ");
141
158
  try {
142
- execSync(command_line, { encoding: 'utf-8', stdio: 'inherit' });
143
- }
144
- catch (_) {
145
- ;
159
+ execSync(command_line, { encoding: "utf-8", stdio: "inherit" });
146
160
  }
161
+ catch (_) { }
147
162
  }
148
163
  break;
149
- case 'export':
164
+ case "export":
150
165
  if (args.length < 2) {
151
- console.log('Error: Target is required for export command');
152
- console.log('Usage: export <target>');
153
- console.log('Available targets:');
154
- console.log(' atcoder-tools Export cookies to atcoder-tools cookie.txt');
155
- console.log(' atcoder-cli Export cookies to atcoder-cli session.json');
156
- console.log(' oj Export cookies to online-judge-tools cookie.jar');
166
+ console.log("Error: Target is required for export command");
167
+ console.log("Usage: export <target>");
168
+ console.log("Available targets:");
169
+ console.log(" atcoder-tools Export cookies to atcoder-tools cookie.txt");
170
+ console.log(" atcoder-cli Export cookies to atcoder-cli session.json");
171
+ console.log(" oj Export cookies to online-judge-tools cookie.jar");
157
172
  return;
158
173
  }
159
174
  {
160
175
  const target = args[1].toLowerCase();
161
176
  switch (target) {
162
- case 'atcoder-tools':
177
+ case "atcoder-tools":
163
178
  await this.cookieExporter.exportCookiesForAtCoderTools();
164
179
  break;
165
- case 'atcoder-cli':
180
+ case "atcoder-cli":
166
181
  await this.cookieExporter.exportCookiesForAtCoderCli();
167
182
  break;
168
- case 'oj':
183
+ case "oj":
169
184
  await this.cookieExporter.exportCookiesForOj();
170
185
  break;
171
186
  default:
172
187
  console.log(`Unknown export target: ${target}`);
173
- console.log('Available targets: atcoder-tools, atcoder-cli, oj');
188
+ console.log("Available targets: atcoder-tools, atcoder-cli, oj");
174
189
  }
175
190
  }
176
191
  break;
177
- case 'gen':
178
- this.genManager.run(args);
192
+ case "build":
193
+ await this.buildManager.run(args);
179
194
  break;
180
- case 'new':
181
- this.genManager.runAtcoderCli(args);
195
+ case "gen":
196
+ await this.genManager.run(args);
182
197
  break;
183
- case 'cp':
184
- case 'copy':
185
- case 'del':
186
- case 'dir':
187
- case 'ls':
188
- case 'make':
189
- case 'pwd':
190
- case 'rm':
198
+ case "cp":
199
+ case "copy":
200
+ case "del":
201
+ case "dir":
202
+ case "ls":
203
+ case "make":
204
+ case "pwd":
205
+ case "rm":
191
206
  {
192
- const command_line = args.join(' ');
207
+ const command_line = args.join(" ");
193
208
  try {
194
- execSync(command_line, { encoding: 'utf-8', stdio: 'inherit' });
195
- }
196
- catch (_) {
197
- ;
209
+ execSync(command_line, { encoding: "utf-8", stdio: "inherit" });
198
210
  }
211
+ catch (_) { }
199
212
  }
200
213
  break;
201
- case 'submit':
214
+ case "submit":
202
215
  if (!(await this.submitManager.submitSolution(args[1]))) {
203
216
  break;
204
217
  }
205
218
  // eslint-disable-next-line no-fallthrough
206
- case 'test':
219
+ case "test":
220
+ await this.testManager.run(args);
221
+ break;
222
+ case "cd":
207
223
  {
208
- const testCommand = this.getConfig().testCommand;
209
- if (testCommand) {
210
- try {
211
- execSync(testCommand, { encoding: 'utf-8', stdio: 'inherit' });
212
- }
213
- catch (_) {
214
- ;
215
- }
224
+ const dir = args.length >= 2 ? args[1] : this.getConfig().workspaceDir || "~";
225
+ const expandedDir = expandHomeDir(dir);
226
+ try {
227
+ process.chdir(expandedDir);
228
+ console.log(`Current directory: ${compactHomeDir(process.cwd())}`);
216
229
  }
217
- else {
218
- console.log('Error: testCommand is not configured in config.json5');
230
+ catch (err) {
231
+ console.error(`Error changing directory: ${err}`);
219
232
  }
220
233
  }
221
234
  break;
222
- case 'cd':
223
- if (args.length < 2) {
224
- console.log('Error: Directory is required for cd command');
225
- console.log('Usage: cd <directory>');
226
- return;
227
- }
228
- try {
229
- process.chdir(args[1]);
230
- console.log(`Current directory: ${process.cwd()}`);
231
- }
232
- catch (err) {
233
- console.error(`Error changing directory: ${err}`);
234
- }
235
- break;
236
235
  default:
237
236
  console.log(`Unknown command: ${command}`);
238
237
  console.log('Type "help" for available commands');
239
238
  }
240
239
  }
241
240
  catch (error) {
242
- console.error('Error:', error);
241
+ console.error("Error:", error);
243
242
  }
244
243
  }
245
244
  /**
@@ -251,10 +250,10 @@ Available commands:
251
250
  open <URL> Open a URL in the browser
252
251
  config Show current configuration
253
252
  submit <filename> Submit solution to AtCoder
254
- gen <contest-id> Generate sample cases using atcoder-tools
255
- new <contest-id> Generate sample cases using atcoder-cli
253
+ gen <contest-id> Generate main.cpp from current problem page or contest ID
256
254
  make <args> Execute make command
257
255
  test Execute test command
256
+ build Build the source code specified in metadata.json
258
257
  export <target> Export data to external tools
259
258
  cd <directory> Change current directory
260
259
  close Close the browser (if running)
@@ -289,12 +288,12 @@ async function ui_main() {
289
288
  */
290
289
  async function main() {
291
290
  const args = process.argv.slice(2);
292
- const configManager = new ConfigManager();
293
- if (args.includes('version') || args.includes('--version') || args.includes('-v')) {
291
+ const configManager = new ConfigManager(true);
292
+ if (args.includes("version") || args.includes("--version") || args.includes("-v")) {
294
293
  console.log(configManager.getVersion());
295
294
  return;
296
295
  }
297
- if (args.includes('config-dir') || args.includes('--config-dir')) {
296
+ if (args.includes("config-dir") || args.includes("--config-dir")) {
298
297
  console.log(configManager.getConfigDirPath());
299
298
  return;
300
299
  }
@@ -303,7 +302,7 @@ async function main() {
303
302
  // Run the CLI if this file is executed directly
304
303
  if (import.meta.url === pathToFileURL(fs.realpathSync(process.argv[1])).href) {
305
304
  main().catch((error) => {
306
- console.error('Fatal error:', error);
305
+ console.error("Fatal error:", error);
307
306
  process.exit(1);
308
307
  });
309
308
  }
package/dist/main.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"main.js","sourceRoot":"","sources":["../src/main.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"main.js","sourceRoot":"","sources":["../src/main.ts"],"names":[],"mappings":"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"}
package/dist/submit.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import { BrowserManager } from './browser.js';
1
+ import { BrowserManager } from "./browser.js";
2
2
  export declare class SubmitManager {
3
3
  private browserManager;
4
4
  constructor(browserManager: BrowserManager);
@@ -1 +1 @@
1
- {"version":3,"file":"submit.d.ts","sourceRoot":"","sources":["../src/submit.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAqB9C,qBAAa,aAAa;IACxB,OAAO,CAAC,cAAc,CAAiB;gBAE3B,cAAc,EAAE,cAAc;IAI1C;;OAEG;IACG,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAAC,OAAO,CAAC;YA8BtD,cAAc;IAiB5B;;OAEG;IACH,OAAO,CAAC,aAAa;IAkBrB;;OAEG;IACH,OAAO,CAAC,cAAc;IAQtB;;OAEG;YACW,kBAAkB;CAyBjC"}
1
+ {"version":3,"file":"submit.d.ts","sourceRoot":"","sources":["../src/submit.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAG9C,qBAAa,aAAa;IACxB,OAAO,CAAC,cAAc,CAAiB;gBAE3B,cAAc,EAAE,cAAc;IAI1C;;OAEG;IACG,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAAC,OAAO,CAAC;YAsCtD,cAAc;IAqB5B;;OAEG;IACH,OAAO,CAAC,aAAa;IAkBrB;;OAEG;IACH,OAAO,CAAC,cAAc;IAQtB;;OAEG;YACW,kBAAkB;CAyBjC"}
package/dist/submit.js CHANGED
@@ -1,5 +1,5 @@
1
- import { readFileSync, existsSync } from 'fs';
2
- import * as path from 'path';
1
+ import { readFileSync, existsSync } from "fs";
2
+ import * as path from "path";
3
3
  export class SubmitManager {
4
4
  browserManager;
5
5
  constructor(browserManager) {
@@ -10,19 +10,19 @@ export class SubmitManager {
10
10
  */
11
11
  async submitSolution(filename) {
12
12
  try {
13
- const atcoderToolsMetadataPath = './metadata.json';
14
- const atcoderCliMetadataPath = '../contest.acc.json';
13
+ const atcoderToolsMetadataPath = "./metadata.json";
14
+ const atcoderCliMetadataPath = "../contest.acc.json";
15
15
  if (existsSync(atcoderToolsMetadataPath)) {
16
- const metadata = JSON.parse(readFileSync(atcoderToolsMetadataPath, 'utf-8'));
16
+ const metadata = JSON.parse(readFileSync(atcoderToolsMetadataPath, "utf-8"));
17
17
  this.pasteToBrowser(metadata.problem.contest.contest_id, metadata.problem.problem_id, filename || metadata.code_filename);
18
18
  return true;
19
19
  }
20
20
  else if (existsSync(atcoderCliMetadataPath)) {
21
21
  if (!filename) {
22
- console.error('Error: filename is required');
22
+ console.error("Error: filename is required");
23
23
  return false;
24
24
  }
25
- const metadata = JSON.parse(readFileSync(atcoderCliMetadataPath, 'utf-8'));
25
+ const metadata = JSON.parse(readFileSync(atcoderCliMetadataPath, "utf-8"));
26
26
  const problem_id = path.basename(process.cwd());
27
27
  for (const task of metadata.tasks) {
28
28
  if (task.directory?.path == problem_id) {
@@ -32,11 +32,11 @@ export class SubmitManager {
32
32
  }
33
33
  }
34
34
  else {
35
- console.error('Error: metadata not found in current directory');
35
+ console.error("Error: metadata not found in current directory");
36
36
  }
37
37
  }
38
38
  catch (error) {
39
- console.error('Error during submission:', error);
39
+ console.error("Error during submission:", error);
40
40
  }
41
41
  return false;
42
42
  }
@@ -58,12 +58,12 @@ export class SubmitManager {
58
58
  */
59
59
  parseMetadata(metadataPath) {
60
60
  try {
61
- const metadataContent = readFileSync(metadataPath, 'utf-8');
61
+ const metadataContent = readFileSync(metadataPath, "utf-8");
62
62
  const metadata = JSON.parse(metadataContent);
63
63
  const contestId = metadata.problem.contest.contest_id;
64
64
  const problemId = metadata.problem.problem_id;
65
65
  if (!contestId || !problemId) {
66
- throw new Error('contest_id or problem_id not found in metadata.json');
66
+ throw new Error("contest_id or problem_id not found in metadata.json");
67
67
  }
68
68
  return { contestId, problemId };
69
69
  }
@@ -76,7 +76,7 @@ export class SubmitManager {
76
76
  */
77
77
  readSourceCode(mainCppPath) {
78
78
  try {
79
- return readFileSync(mainCppPath, 'utf-8');
79
+ return readFileSync(mainCppPath, "utf-8");
80
80
  }
81
81
  catch (error) {
82
82
  throw new Error(`Failed to read main.cpp: ${error}`);
@@ -89,21 +89,21 @@ export class SubmitManager {
89
89
  try {
90
90
  const page = this.browserManager.getCurrentPage();
91
91
  if (!page) {
92
- throw new Error('No active page found');
92
+ throw new Error("No active page found");
93
93
  }
94
94
  // Wait for the page to load
95
- await page.waitForLoadState('domcontentloaded');
95
+ await page.waitForLoadState("domcontentloaded");
96
96
  // Find the source code textarea (common selectors for AtCoder)
97
- const textareaSelector = '#editor .ace_text-input';
97
+ const textareaSelector = "#editor .ace_text-input";
98
98
  await page.waitForSelector(textareaSelector, { timeout: 10000 });
99
99
  // Set min-height for the editor textarea
100
100
  await page.addStyleTag({ content: `div#editor { min-height: 200px !important; }` });
101
101
  // Clear existing content and paste source code
102
102
  await page.fill(textareaSelector, sourceCode);
103
- console.log('✓ Copied!');
103
+ console.log("✓ Copied!");
104
104
  }
105
105
  catch (error) {
106
- console.error('Failed to fill source code area:', error);
106
+ console.error("Failed to fill source code area:", error);
107
107
  }
108
108
  }
109
109
  }