@agi-ventures-canada/hackathon-cli 0.1.0 → 0.1.2
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.
- package/dist/_chunks/assign.mjs +1 -1
- package/dist/_chunks/assign.mjs.map +1 -1
- package/dist/_chunks/assignments-delete.mjs +1 -1
- package/dist/_chunks/assignments-delete.mjs.map +1 -1
- package/dist/_chunks/calculate.mjs +1 -1
- package/dist/_chunks/calculate.mjs.map +1 -1
- package/dist/_chunks/cancel.mjs +1 -1
- package/dist/_chunks/cancel.mjs.map +1 -1
- package/dist/_chunks/config.mjs +5 -5
- package/dist/_chunks/config.mjs.map +1 -1
- package/dist/_chunks/constants.mjs +2 -2
- package/dist/_chunks/constants.mjs.map +1 -1
- package/dist/_chunks/create.mjs.map +1 -1
- package/dist/_chunks/create3.mjs.map +1 -1
- package/dist/_chunks/create4.mjs.map +1 -1
- package/dist/_chunks/create5.mjs.map +1 -1
- package/dist/_chunks/create6.mjs.map +1 -1
- package/dist/_chunks/criteria-create.mjs.map +1 -1
- package/dist/_chunks/criteria-delete.mjs +1 -1
- package/dist/_chunks/criteria-delete.mjs.map +1 -1
- package/dist/_chunks/criteria-update.mjs +1 -1
- package/dist/_chunks/criteria-update.mjs.map +1 -1
- package/dist/_chunks/delete.mjs +1 -1
- package/dist/_chunks/delete.mjs.map +1 -1
- package/dist/_chunks/delete2.mjs +1 -1
- package/dist/_chunks/delete2.mjs.map +1 -1
- package/dist/_chunks/delete3.mjs +1 -1
- package/dist/_chunks/delete3.mjs.map +1 -1
- package/dist/_chunks/delete4.mjs +1 -1
- package/dist/_chunks/delete4.mjs.map +1 -1
- package/dist/_chunks/delete5.mjs +1 -1
- package/dist/_chunks/delete5.mjs.map +1 -1
- package/dist/_chunks/get.mjs +1 -1
- package/dist/_chunks/get.mjs.map +1 -1
- package/dist/_chunks/get2.mjs +1 -1
- package/dist/_chunks/get2.mjs.map +1 -1
- package/dist/_chunks/get3.mjs +2 -2
- package/dist/_chunks/get3.mjs.map +1 -1
- package/dist/_chunks/get4.mjs +1 -1
- package/dist/_chunks/get4.mjs.map +1 -1
- package/dist/_chunks/invitations-cancel.mjs +1 -1
- package/dist/_chunks/invitations-cancel.mjs.map +1 -1
- package/dist/_chunks/judges-remove.mjs +1 -1
- package/dist/_chunks/judges-remove.mjs.map +1 -1
- package/dist/_chunks/login.mjs +4 -4
- package/dist/_chunks/login.mjs.map +1 -1
- package/dist/_chunks/org.mjs +1 -1
- package/dist/_chunks/org.mjs.map +1 -1
- package/dist/_chunks/publish.mjs +1 -1
- package/dist/_chunks/publish.mjs.map +1 -1
- package/dist/_chunks/resolve.mjs +1 -4
- package/dist/_chunks/resolve.mjs.map +1 -1
- package/dist/_chunks/result.mjs +1 -1
- package/dist/_chunks/result.mjs.map +1 -1
- package/dist/_chunks/results.mjs +1 -1
- package/dist/_chunks/results.mjs.map +1 -1
- package/dist/_chunks/submissions.mjs +1 -1
- package/dist/_chunks/submissions.mjs.map +1 -1
- package/dist/_chunks/unassign.mjs +1 -1
- package/dist/_chunks/unassign.mjs.map +1 -1
- package/dist/_chunks/unpublish.mjs +1 -1
- package/dist/_chunks/unpublish.mjs.map +1 -1
- package/dist/_chunks/update-check.mjs +70 -0
- package/dist/_chunks/update-check.mjs.map +1 -0
- package/dist/_chunks/update.mjs +3 -3
- package/dist/_chunks/update.mjs.map +1 -1
- package/dist/_chunks/update2.mjs +1 -1
- package/dist/_chunks/update2.mjs.map +1 -1
- package/dist/_chunks/update3.mjs +1 -1
- package/dist/_chunks/update3.mjs.map +1 -1
- package/dist/_chunks/update4.mjs +1 -1
- package/dist/_chunks/update4.mjs.map +1 -1
- package/dist/_chunks/update5.mjs +49 -0
- package/dist/_chunks/update5.mjs.map +1 -0
- package/dist/cli.mjs +32 -15
- package/dist/cli.mjs.map +1 -1
- package/package.json +3 -3
package/dist/cli.mjs
CHANGED
|
@@ -183,12 +183,12 @@ function parseGlobalFlags(args) {
|
|
|
183
183
|
}
|
|
184
184
|
function createPublicClient(flags) {
|
|
185
185
|
const config = loadConfig();
|
|
186
|
-
return new OatmealClient({ baseUrl: flags.baseUrl ?? config?.baseUrl ?? "https://
|
|
186
|
+
return new OatmealClient({ baseUrl: flags.baseUrl ?? config?.baseUrl ?? "https://getoatmeal.com" });
|
|
187
187
|
}
|
|
188
188
|
function createAuthenticatedClient(flags) {
|
|
189
|
-
const apiKey = flags.apiKey ?? process.env.
|
|
189
|
+
const apiKey = flags.apiKey ?? process.env.HACKATHON_API_KEY;
|
|
190
190
|
if (apiKey) return new OatmealClient({
|
|
191
|
-
baseUrl: flags.baseUrl ?? "https://
|
|
191
|
+
baseUrl: flags.baseUrl ?? "https://getoatmeal.com",
|
|
192
192
|
apiKey
|
|
193
193
|
});
|
|
194
194
|
const config = loadConfig();
|
|
@@ -199,10 +199,10 @@ function createAuthenticatedClient(flags) {
|
|
|
199
199
|
});
|
|
200
200
|
}
|
|
201
201
|
const BANNER = `
|
|
202
|
-
${pc.bold("
|
|
202
|
+
${pc.bold("hackathon")} — CLI for the Oatmeal hackathon platform
|
|
203
203
|
|
|
204
204
|
${pc.dim("USAGE")}
|
|
205
|
-
|
|
205
|
+
hackathon <command> [options]
|
|
206
206
|
|
|
207
207
|
${pc.dim("PUBLIC COMMANDS (no auth required)")}
|
|
208
208
|
browse hackathons Search public hackathons
|
|
@@ -214,13 +214,15 @@ const BANNER = `
|
|
|
214
214
|
login Sign in via browser or API key
|
|
215
215
|
logout Remove saved credentials
|
|
216
216
|
whoami Show current auth info
|
|
217
|
+
update Update CLI to latest version
|
|
217
218
|
|
|
218
|
-
${pc.dim("
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
219
|
+
${pc.dim("EVENT MANAGEMENT (auth required)")}
|
|
220
|
+
events list List your hackathons
|
|
221
|
+
events get <id> Get hackathon details
|
|
222
|
+
events create Create a hackathon
|
|
223
|
+
events update <id> Update a hackathon
|
|
224
|
+
events delete <id> Delete a hackathon
|
|
225
|
+
${pc.dim("(alias: hackathons)")}
|
|
224
226
|
|
|
225
227
|
${pc.dim("JUDGING")}
|
|
226
228
|
judging criteria list <id> List criteria
|
|
@@ -287,6 +289,13 @@ const BANNER = `
|
|
|
287
289
|
--help, -h Show help
|
|
288
290
|
--version, -v Show version
|
|
289
291
|
`;
|
|
292
|
+
async function notifyIfUpdateAvailable() {
|
|
293
|
+
try {
|
|
294
|
+
const { checkForUpdate, formatUpdateNotice } = await import("./_chunks/update-check.mjs");
|
|
295
|
+
const update = await checkForUpdate();
|
|
296
|
+
if (update) console.error(formatUpdateNotice(update));
|
|
297
|
+
} catch {}
|
|
298
|
+
}
|
|
290
299
|
async function main() {
|
|
291
300
|
const { flags, rest } = parseGlobalFlags(process.argv.slice(2));
|
|
292
301
|
if (rest.length === 0 || flags.help) {
|
|
@@ -314,6 +323,11 @@ async function main() {
|
|
|
314
323
|
await runWhoAmI(client, { json: flags.json });
|
|
315
324
|
break;
|
|
316
325
|
}
|
|
326
|
+
case "update": {
|
|
327
|
+
const { runUpdate } = await import("./_chunks/update5.mjs");
|
|
328
|
+
await runUpdate();
|
|
329
|
+
return;
|
|
330
|
+
}
|
|
317
331
|
case "browse": {
|
|
318
332
|
const client = createPublicClient(flags);
|
|
319
333
|
switch (sub) {
|
|
@@ -338,12 +352,13 @@ async function main() {
|
|
|
338
352
|
break;
|
|
339
353
|
}
|
|
340
354
|
default:
|
|
341
|
-
console.error(`Unknown browse command: ${sub}. Run "
|
|
355
|
+
console.error(`Unknown browse command: ${sub}. Run "hackathon browse --help" for usage.`);
|
|
342
356
|
process.exit(1);
|
|
343
357
|
}
|
|
344
358
|
break;
|
|
345
359
|
}
|
|
346
|
-
case "hackathons":
|
|
360
|
+
case "hackathons":
|
|
361
|
+
case "events": {
|
|
347
362
|
const client = createAuthenticatedClient(flags);
|
|
348
363
|
switch (sub) {
|
|
349
364
|
case "list": {
|
|
@@ -372,7 +387,7 @@ async function main() {
|
|
|
372
387
|
break;
|
|
373
388
|
}
|
|
374
389
|
default:
|
|
375
|
-
console.error(`Unknown
|
|
390
|
+
console.error(`Unknown events command: ${sub}. Run "hackathon events --help" for usage.`);
|
|
376
391
|
process.exit(1);
|
|
377
392
|
}
|
|
378
393
|
break;
|
|
@@ -685,7 +700,7 @@ async function main() {
|
|
|
685
700
|
break;
|
|
686
701
|
}
|
|
687
702
|
default:
|
|
688
|
-
console.error(`Unknown command: ${command}. Run "
|
|
703
|
+
console.error(`Unknown command: ${command}. Run "hackathon --help" for usage.`);
|
|
689
704
|
process.exit(1);
|
|
690
705
|
}
|
|
691
706
|
} catch (error) {
|
|
@@ -702,6 +717,8 @@ async function main() {
|
|
|
702
717
|
else if (error instanceof Error) console.error(formatError({ message: error.message }));
|
|
703
718
|
else console.error(formatError({ message: String(error) }));
|
|
704
719
|
process.exit(1);
|
|
720
|
+
} finally {
|
|
721
|
+
await notifyIfUpdateAvailable();
|
|
705
722
|
}
|
|
706
723
|
}
|
|
707
724
|
main();
|
package/dist/cli.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.mjs","names":[],"sources":["../src/client.ts","../src/output.ts","../src/cli.ts"],"sourcesContent":["import { REQUEST_TIMEOUT_MS } from \"./constants.js\"\nimport { ApiError, AuthError, ScopeError } from \"./errors.js\"\n\ninterface ClientOptions {\n baseUrl: string\n apiKey?: string\n}\n\ninterface RequestOptions {\n method?: string\n body?: unknown\n params?: Record<string, string | number | undefined>\n timeout?: number\n}\n\nexport class OatmealClient {\n private baseUrl: string\n private apiKey?: string\n\n constructor(options: ClientOptions) {\n this.baseUrl = options.baseUrl.replace(/\\/$/, \"\")\n this.apiKey = options.apiKey\n }\n\n async get<T>(path: string, options?: RequestOptions): Promise<T> {\n return this.request<T>(path, { ...options, method: \"GET\" })\n }\n\n async post<T>(path: string, body?: unknown, options?: RequestOptions): Promise<T> {\n return this.request<T>(path, { ...options, method: \"POST\", body })\n }\n\n async patch<T>(path: string, body?: unknown, options?: RequestOptions): Promise<T> {\n return this.request<T>(path, { ...options, method: \"PATCH\", body })\n }\n\n async delete<T>(path: string, options?: RequestOptions): Promise<T> {\n return this.request<T>(path, { ...options, method: \"DELETE\" })\n }\n\n private async request<T>(path: string, options: RequestOptions = {}): Promise<T> {\n const { method = \"GET\", body, params, timeout = REQUEST_TIMEOUT_MS } = options\n\n let url = `${this.baseUrl}${path}`\n if (params) {\n const searchParams = new URLSearchParams()\n for (const [key, value] of Object.entries(params)) {\n if (value !== undefined) {\n searchParams.set(key, String(value))\n }\n }\n const qs = searchParams.toString()\n if (qs) url += `?${qs}`\n }\n\n const headers: Record<string, string> = {}\n if (this.apiKey) {\n headers[\"Authorization\"] = `Bearer ${this.apiKey}`\n }\n if (body !== undefined) {\n headers[\"Content-Type\"] = \"application/json\"\n }\n\n const controller = new AbortController()\n const timer = setTimeout(() => controller.abort(), timeout)\n\n try {\n const response = await this.fetchWithRetry(url, {\n method,\n headers,\n body: body !== undefined ? JSON.stringify(body) : undefined,\n signal: controller.signal,\n })\n\n clearTimeout(timer)\n\n if (response.status === 204) {\n return undefined as T\n }\n\n const contentType = response.headers.get(\"content-type\") ?? \"\"\n let data: unknown\n\n if (contentType.includes(\"application/json\")) {\n data = await response.json()\n } else {\n const text = await response.text()\n data = { message: text }\n }\n\n if (!response.ok) {\n this.handleErrorResponse(response.status, data)\n }\n\n return data as T\n } catch (error) {\n clearTimeout(timer)\n if (error instanceof ApiError || error instanceof AuthError || error instanceof ScopeError) {\n throw error\n }\n if (error instanceof DOMException && error.name === \"AbortError\") {\n throw new ApiError(0, `Request timed out after ${timeout / 1000}s`)\n }\n if (error instanceof TypeError && (error.message.includes(\"fetch\") || error.message.includes(\"network\"))) {\n throw new ApiError(0, `Could not connect to ${this.baseUrl}. Is the server running?`)\n }\n throw new ApiError(0, `Network error: ${(error as Error).message}`)\n }\n }\n\n private async fetchWithRetry(\n url: string,\n init: RequestInit,\n retried = false\n ): Promise<Response> {\n const response = await fetch(url, init)\n\n if (response.status === 429 && !retried) {\n const retryAfter = response.headers.get(\"retry-after\")\n const delay = retryAfter ? parseInt(retryAfter, 10) * 1000 : 1000\n await new Promise((resolve) => setTimeout(resolve, Math.min(delay, 10_000)))\n return this.fetchWithRetry(url, init, true)\n }\n\n return response\n }\n\n private handleErrorResponse(status: number, data: unknown): never {\n const body = data as Record<string, unknown>\n const message = (body?.error as string) || (body?.message as string) || `Request failed`\n\n if (status === 401) {\n throw new AuthError(message)\n }\n\n if (status === 403) {\n const scope = body?.requiredScope as string | undefined\n if (scope) {\n throw new ScopeError(scope, body?.currentScopes as string[] | undefined)\n }\n throw new ApiError(403, message)\n }\n\n if (status === 404) {\n throw new ApiError(404, body?.message ? message : \"Resource not found\")\n }\n\n if (status === 429) {\n throw new ApiError(429, \"Rate limited. Please try again later.\", \"Wait a moment before retrying.\")\n }\n\n throw new ApiError(status, message)\n }\n}\n","import pc from \"picocolors\"\n\nconst noColor = !!process.env.NO_COLOR\n\nfunction color<T extends string>(fn: (s: T) => string, s: T): string {\n return noColor ? s : fn(s)\n}\n\ninterface Column<T> {\n key: keyof T\n label: string\n width?: number\n}\n\nexport function formatTable<T extends object>(\n rows: T[],\n columns: Column<T>[]\n): string {\n if (rows.length === 0) {\n return \"\"\n }\n\n const widths = columns.map((col) => {\n const headerWidth = col.label.length\n const maxDataWidth = rows.reduce((max, row) => {\n const val = String(row[col.key] ?? \"\")\n return Math.max(max, val.length)\n }, 0)\n return col.width ?? Math.min(Math.max(headerWidth, maxDataWidth), 50)\n })\n\n const header = columns.map((col, i) => col.label.padEnd(widths[i])).join(\" \")\n const separator = widths.map((w) => \"─\".repeat(w)).join(\"──\")\n\n const dataRows = rows.map((row) =>\n columns\n .map((col, i) => {\n const val = String(row[col.key] ?? \"\")\n return val.length > widths[i] ? val.slice(0, widths[i] - 1) + \"…\" : val.padEnd(widths[i])\n })\n .join(\" \")\n )\n\n return [color(pc.bold, header), separator, ...dataRows].join(\"\\n\")\n}\n\nexport function formatJson(data: unknown): string {\n return JSON.stringify(data, null, 2)\n}\n\nexport function formatDetail(fields: Array<{ label: string; value: string | undefined }>): string {\n const maxLabel = fields.reduce((max, f) => Math.max(max, f.label.length), 0)\n return fields\n .map((f) => `${color(pc.bold, f.label.padEnd(maxLabel))} ${f.value ?? color(pc.dim, \"—\")}`)\n .join(\"\\n\")\n}\n\nexport function formatError(error: { message: string; hint?: string }): string {\n const lines = [color(pc.red, `Error: ${error.message}`)]\n if (error.hint) {\n lines.push(color(pc.dim, `Hint: ${error.hint}`))\n }\n return lines.join(\"\\n\")\n}\n\nexport function formatSuccess(message: string): string {\n return color(pc.green, `✓ ${message}`)\n}\n\nexport function formatWarning(message: string): string {\n return color(pc.yellow, `⚠ ${message}`)\n}\n","import pc from \"picocolors\"\nimport { OatmealClient } from \"./client.js\"\nimport { loadConfig } from \"./config.js\"\nimport { VERSION, DEFAULT_BASE_URL } from \"./constants.js\"\nimport { ApiError, AuthError, ConfigError, ScopeError } from \"./errors.js\"\nimport { formatError } from \"./output.js\"\n\ninterface GlobalFlags {\n json: boolean\n yes: boolean\n baseUrl?: string\n apiKey?: string\n help: boolean\n}\n\nfunction parseGlobalFlags(args: string[]): { flags: GlobalFlags; rest: string[] } {\n const flags: GlobalFlags = { json: false, yes: false, help: false }\n const rest: string[] = []\n\n for (let i = 0; i < args.length; i++) {\n switch (args[i]) {\n case \"--json\":\n flags.json = true\n break\n case \"--yes\":\n case \"-y\":\n flags.yes = true\n break\n case \"--base-url\":\n flags.baseUrl = args[++i]\n break\n case \"--api-key\":\n flags.apiKey = args[++i]\n break\n case \"--help\":\n case \"-h\":\n flags.help = true\n break\n case \"--version\":\n case \"-v\":\n console.log(VERSION)\n process.exit(0)\n break\n default:\n rest.push(args[i])\n }\n }\n\n return { flags, rest }\n}\n\nfunction createPublicClient(flags: GlobalFlags): OatmealClient {\n const config = loadConfig()\n return new OatmealClient({\n baseUrl: flags.baseUrl ?? config?.baseUrl ?? DEFAULT_BASE_URL,\n })\n}\n\nfunction createAuthenticatedClient(flags: GlobalFlags): OatmealClient {\n const apiKey = flags.apiKey ?? process.env.OATMEAL_API_KEY\n if (apiKey) {\n return new OatmealClient({\n baseUrl: flags.baseUrl ?? DEFAULT_BASE_URL,\n apiKey,\n })\n }\n\n const config = loadConfig()\n if (!config?.apiKey) {\n throw new AuthError()\n }\n\n return new OatmealClient({\n baseUrl: flags.baseUrl ?? config.baseUrl,\n apiKey: config.apiKey,\n })\n}\n\nconst BANNER = `\n ${pc.bold(\"oatmeal\")} — CLI for the Oatmeal hackathon platform\n\n ${pc.dim(\"USAGE\")}\n oatmeal <command> [options]\n\n ${pc.dim(\"PUBLIC COMMANDS (no auth required)\")}\n browse hackathons Search public hackathons\n browse submissions <slug> View submissions for a hackathon\n browse results <slug> View published results\n browse org <slug> View organization profile\n\n ${pc.dim(\"AUTH\")}\n login Sign in via browser or API key\n logout Remove saved credentials\n whoami Show current auth info\n\n ${pc.dim(\"HACKATHON MANAGEMENT (auth required)\")}\n hackathons list List your hackathons\n hackathons get <id> Get hackathon details\n hackathons create Create a hackathon\n hackathons update <id> Update a hackathon\n hackathons delete <id> Delete a hackathon\n\n ${pc.dim(\"JUDGING\")}\n judging criteria list <id> List criteria\n judging criteria create <id> Create criteria\n judging criteria update <id> <cid> Update criteria\n judging criteria delete <id> <cid> Delete criteria\n judging judges list <id> List judges\n judging judges add <id> Add a judge\n judging judges remove <id> <pid> Remove a judge\n judging assignments list <id> List assignments\n judging assignments create <id> Create assignment\n judging assignments delete <id> <aid> Delete assignment\n judging auto-assign <id> Auto-assign judges\n judging invitations list <id> List invitations\n judging invitations cancel <id> <iid> Cancel invitation\n judging pick-results <id> View pick results\n\n ${pc.dim(\"PRIZES\")}\n prizes list <id> List prizes\n prizes create <id> Create a prize\n prizes update <id> <pid> Update a prize\n prizes delete <id> <pid> Delete a prize\n prizes reorder <id> Reorder prizes\n prizes assign <id> <pid> Assign prize\n prizes unassign <id> <pid> <sid> Unassign prize\n\n ${pc.dim(\"JUDGE DISPLAY\")}\n judge-display list <id> List display profiles\n judge-display create <id> Create display profile\n judge-display update <id> <jid> Update display profile\n judge-display delete <id> <jid> Delete display profile\n judge-display reorder <id> Reorder profiles\n\n ${pc.dim(\"RESULTS\")}\n results calculate <id> Calculate results\n results get <id> Get detailed results\n results publish <id> Publish results\n results unpublish <id> Unpublish results\n\n ${pc.dim(\"WEBHOOKS\")}\n webhooks list List webhooks\n webhooks create Create a webhook\n webhooks delete <id> Delete a webhook\n\n ${pc.dim(\"JOBS\")}\n jobs list List jobs\n jobs get <id> Get job details\n jobs create Create a job\n jobs result <id> Get job result\n jobs cancel <id> Cancel a job\n\n ${pc.dim(\"SCHEDULES\")}\n schedules list List schedules\n schedules create Create a schedule\n schedules get <id> Get schedule details\n schedules update <id> Update a schedule\n schedules delete <id> Delete a schedule\n\n ${pc.dim(\"GLOBAL OPTIONS\")}\n --json Output as JSON\n --yes, -y Skip confirmation prompts\n --base-url API base URL\n --api-key API key (overrides config)\n --help, -h Show help\n --version, -v Show version\n`\n\nasync function main() {\n const { flags, rest } = parseGlobalFlags(process.argv.slice(2))\n\n if (rest.length === 0 || flags.help) {\n console.log(BANNER)\n return\n }\n\n const command = rest[0]\n const sub = rest[1]\n const sub2 = rest[2]\n\n try {\n switch (command) {\n case \"login\": {\n const { runLogin } = await import(\"./commands/login.js\")\n await runLogin(rest.slice(1).concat(flags.yes ? [\"--yes\"] : []).concat(flags.baseUrl ? [\"--base-url\", flags.baseUrl] : []).concat(flags.apiKey ? [\"--api-key\", flags.apiKey] : []))\n break\n }\n\n case \"logout\": {\n const { runLogout } = await import(\"./commands/logout.js\")\n await runLogout()\n break\n }\n\n case \"whoami\": {\n const client = createAuthenticatedClient(flags)\n const { runWhoAmI } = await import(\"./commands/whoami.js\")\n await runWhoAmI(client, { json: flags.json })\n break\n }\n\n case \"browse\": {\n const client = createPublicClient(flags)\n switch (sub) {\n case \"hackathons\": {\n const { runBrowseHackathons } = await import(\"./commands/browse/hackathons.js\")\n await runBrowseHackathons(client, rest.slice(2).concat(flags.json ? [\"--json\"] : []))\n break\n }\n case \"submissions\": {\n const { runBrowseSubmissions } = await import(\"./commands/browse/submissions.js\")\n await runBrowseSubmissions(client, rest[2], { json: flags.json })\n break\n }\n case \"results\": {\n const { runBrowseResults } = await import(\"./commands/browse/results.js\")\n await runBrowseResults(client, rest[2], { json: flags.json })\n break\n }\n case \"org\": {\n const { runBrowseOrg } = await import(\"./commands/browse/org.js\")\n await runBrowseOrg(client, rest[2], { json: flags.json })\n break\n }\n default:\n console.error(`Unknown browse command: ${sub}. Run \"oatmeal browse --help\" for usage.`)\n process.exit(1)\n }\n break\n }\n\n case \"hackathons\": {\n const client = createAuthenticatedClient(flags)\n switch (sub) {\n case \"list\": {\n const { runHackathonsList } = await import(\"./commands/hackathons/list.js\")\n await runHackathonsList(client, { json: flags.json })\n break\n }\n case \"get\": {\n const { runHackathonsGet } = await import(\"./commands/hackathons/get.js\")\n await runHackathonsGet(client, rest[2], { json: flags.json })\n break\n }\n case \"create\": {\n const { runHackathonsCreate } = await import(\"./commands/hackathons/create.js\")\n await runHackathonsCreate(client, rest.slice(2).concat(flags.json ? [\"--json\"] : []))\n break\n }\n case \"update\": {\n const { runHackathonsUpdate } = await import(\"./commands/hackathons/update.js\")\n await runHackathonsUpdate(client, rest[2], rest.slice(3).concat(flags.json ? [\"--json\"] : []))\n break\n }\n case \"delete\": {\n const { runHackathonsDelete } = await import(\"./commands/hackathons/delete.js\")\n await runHackathonsDelete(client, rest[2], { yes: flags.yes })\n break\n }\n default:\n console.error(`Unknown hackathons command: ${sub}. Run \"oatmeal hackathons --help\" for usage.`)\n process.exit(1)\n }\n break\n }\n\n case \"judging\": {\n const client = createAuthenticatedClient(flags)\n const hackathonId = rest[2]\n switch (sub) {\n case \"criteria\":\n switch (sub2) {\n case \"list\": {\n const { runCriteriaList } = await import(\"./commands/judging/criteria-list.js\")\n await runCriteriaList(client, rest[3], { json: flags.json })\n break\n }\n case \"create\": {\n const { runCriteriaCreate } = await import(\"./commands/judging/criteria-create.js\")\n await runCriteriaCreate(client, rest[3], rest.slice(4).concat(flags.json ? [\"--json\"] : []))\n break\n }\n case \"update\": {\n const { runCriteriaUpdate } = await import(\"./commands/judging/criteria-update.js\")\n await runCriteriaUpdate(client, rest[3], rest[4], rest.slice(5).concat(flags.json ? [\"--json\"] : []))\n break\n }\n case \"delete\": {\n const { runCriteriaDelete } = await import(\"./commands/judging/criteria-delete.js\")\n await runCriteriaDelete(client, rest[3], rest[4], { yes: flags.yes })\n break\n }\n default:\n console.error(`Unknown judging criteria command: ${sub2}`)\n process.exit(1)\n }\n break\n\n case \"judges\":\n switch (sub2) {\n case \"list\": {\n const { runJudgesList } = await import(\"./commands/judging/judges-list.js\")\n await runJudgesList(client, rest[3], { json: flags.json })\n break\n }\n case \"add\": {\n const { runJudgesAdd } = await import(\"./commands/judging/judges-add.js\")\n await runJudgesAdd(client, rest[3], rest.slice(4).concat(flags.json ? [\"--json\"] : []))\n break\n }\n case \"remove\": {\n const { runJudgesRemove } = await import(\"./commands/judging/judges-remove.js\")\n await runJudgesRemove(client, rest[3], rest[4], { yes: flags.yes })\n break\n }\n default:\n console.error(`Unknown judging judges command: ${sub2}`)\n process.exit(1)\n }\n break\n\n case \"assignments\":\n switch (sub2) {\n case \"list\": {\n const { runAssignmentsList } = await import(\"./commands/judging/assignments-list.js\")\n await runAssignmentsList(client, rest[3], { json: flags.json })\n break\n }\n case \"create\": {\n const { runAssignmentsCreate } = await import(\"./commands/judging/assignments-create.js\")\n await runAssignmentsCreate(client, rest[3], rest.slice(4).concat(flags.json ? [\"--json\"] : []))\n break\n }\n case \"delete\": {\n const { runAssignmentsDelete } = await import(\"./commands/judging/assignments-delete.js\")\n await runAssignmentsDelete(client, rest[3], rest[4], { yes: flags.yes })\n break\n }\n default:\n console.error(`Unknown judging assignments command: ${sub2}`)\n process.exit(1)\n }\n break\n\n case \"auto-assign\": {\n const { runAutoAssign } = await import(\"./commands/judging/auto-assign.js\")\n await runAutoAssign(client, hackathonId, rest.slice(3).concat(flags.json ? [\"--json\"] : []))\n break\n }\n\n case \"invitations\":\n switch (sub2) {\n case \"list\": {\n const { runInvitationsList } = await import(\"./commands/judging/invitations-list.js\")\n await runInvitationsList(client, rest[3], { json: flags.json })\n break\n }\n case \"cancel\": {\n const { runInvitationsCancel } = await import(\"./commands/judging/invitations-cancel.js\")\n await runInvitationsCancel(client, rest[3], rest[4], { yes: flags.yes })\n break\n }\n default:\n console.error(`Unknown judging invitations command: ${sub2}`)\n process.exit(1)\n }\n break\n\n case \"pick-results\": {\n const { runPickResults } = await import(\"./commands/judging/pick-results.js\")\n await runPickResults(client, hackathonId, { json: flags.json })\n break\n }\n\n default:\n console.error(`Unknown judging command: ${sub}`)\n process.exit(1)\n }\n break\n }\n\n case \"prizes\": {\n const client = createAuthenticatedClient(flags)\n switch (sub) {\n case \"list\": {\n const { runPrizesList } = await import(\"./commands/prizes/list.js\")\n await runPrizesList(client, rest[2], { json: flags.json })\n break\n }\n case \"create\": {\n const { runPrizesCreate } = await import(\"./commands/prizes/create.js\")\n await runPrizesCreate(client, rest[2], rest.slice(3).concat(flags.json ? [\"--json\"] : []))\n break\n }\n case \"update\": {\n const { runPrizesUpdate } = await import(\"./commands/prizes/update.js\")\n await runPrizesUpdate(client, rest[2], rest[3], rest.slice(4).concat(flags.json ? [\"--json\"] : []))\n break\n }\n case \"delete\": {\n const { runPrizesDelete } = await import(\"./commands/prizes/delete.js\")\n await runPrizesDelete(client, rest[2], rest[3], { yes: flags.yes })\n break\n }\n case \"reorder\": {\n const { runPrizesReorder } = await import(\"./commands/prizes/reorder.js\")\n await runPrizesReorder(client, rest[2], rest.slice(3))\n break\n }\n case \"assign\": {\n const { runPrizesAssign } = await import(\"./commands/prizes/assign.js\")\n await runPrizesAssign(client, rest[2], rest[3], rest.slice(4).concat(flags.json ? [\"--json\"] : []))\n break\n }\n case \"unassign\": {\n const { runPrizesUnassign } = await import(\"./commands/prizes/unassign.js\")\n await runPrizesUnassign(client, rest[2], rest[3], rest[4], { yes: flags.yes })\n break\n }\n default:\n console.error(`Unknown prizes command: ${sub}`)\n process.exit(1)\n }\n break\n }\n\n case \"judge-display\": {\n const client = createAuthenticatedClient(flags)\n switch (sub) {\n case \"list\": {\n const { runJudgeDisplayList } = await import(\"./commands/judge-display/list.js\")\n await runJudgeDisplayList(client, rest[2], { json: flags.json })\n break\n }\n case \"create\": {\n const { runJudgeDisplayCreate } = await import(\"./commands/judge-display/create.js\")\n await runJudgeDisplayCreate(client, rest[2], rest.slice(3).concat(flags.json ? [\"--json\"] : []))\n break\n }\n case \"update\": {\n const { runJudgeDisplayUpdate } = await import(\"./commands/judge-display/update.js\")\n await runJudgeDisplayUpdate(client, rest[2], rest[3], rest.slice(4).concat(flags.json ? [\"--json\"] : []))\n break\n }\n case \"delete\": {\n const { runJudgeDisplayDelete } = await import(\"./commands/judge-display/delete.js\")\n await runJudgeDisplayDelete(client, rest[2], rest[3], { yes: flags.yes })\n break\n }\n case \"reorder\": {\n const { runJudgeDisplayReorder } = await import(\"./commands/judge-display/reorder.js\")\n await runJudgeDisplayReorder(client, rest[2], rest.slice(3))\n break\n }\n default:\n console.error(`Unknown judge-display command: ${sub}`)\n process.exit(1)\n }\n break\n }\n\n case \"results\": {\n const client = createAuthenticatedClient(flags)\n switch (sub) {\n case \"calculate\": {\n const { runResultsCalculate } = await import(\"./commands/results/calculate.js\")\n await runResultsCalculate(client, rest[2], { json: flags.json })\n break\n }\n case \"get\": {\n const { runResultsGet } = await import(\"./commands/results/get.js\")\n await runResultsGet(client, rest[2], { json: flags.json })\n break\n }\n case \"publish\": {\n const { runResultsPublish } = await import(\"./commands/results/publish.js\")\n await runResultsPublish(client, rest[2], { yes: flags.yes })\n break\n }\n case \"unpublish\": {\n const { runResultsUnpublish } = await import(\"./commands/results/unpublish.js\")\n await runResultsUnpublish(client, rest[2], { yes: flags.yes })\n break\n }\n default:\n console.error(`Unknown results command: ${sub}`)\n process.exit(1)\n }\n break\n }\n\n case \"webhooks\": {\n const client = createAuthenticatedClient(flags)\n switch (sub) {\n case \"list\": {\n const { runWebhooksList } = await import(\"./commands/webhooks/list.js\")\n await runWebhooksList(client, { json: flags.json })\n break\n }\n case \"create\": {\n const { runWebhooksCreate } = await import(\"./commands/webhooks/create.js\")\n await runWebhooksCreate(client, rest.slice(2).concat(flags.json ? [\"--json\"] : []))\n break\n }\n case \"delete\": {\n const { runWebhooksDelete } = await import(\"./commands/webhooks/delete.js\")\n await runWebhooksDelete(client, rest[2], { yes: flags.yes })\n break\n }\n default:\n console.error(`Unknown webhooks command: ${sub}`)\n process.exit(1)\n }\n break\n }\n\n case \"jobs\": {\n const client = createAuthenticatedClient(flags)\n switch (sub) {\n case \"list\": {\n const { runJobsList } = await import(\"./commands/jobs/list.js\")\n await runJobsList(client, rest.slice(2), { json: flags.json })\n break\n }\n case \"get\": {\n const { runJobsGet } = await import(\"./commands/jobs/get.js\")\n await runJobsGet(client, rest[2], { json: flags.json })\n break\n }\n case \"create\": {\n const { runJobsCreate } = await import(\"./commands/jobs/create.js\")\n await runJobsCreate(client, rest.slice(2).concat(flags.json ? [\"--json\"] : []))\n break\n }\n case \"result\": {\n const { runJobsResult } = await import(\"./commands/jobs/result.js\")\n await runJobsResult(client, rest[2], rest.slice(3).concat(flags.json ? [\"--json\"] : []))\n break\n }\n case \"cancel\": {\n const { runJobsCancel } = await import(\"./commands/jobs/cancel.js\")\n await runJobsCancel(client, rest[2], { yes: flags.yes })\n break\n }\n default:\n console.error(`Unknown jobs command: ${sub}`)\n process.exit(1)\n }\n break\n }\n\n case \"schedules\": {\n const client = createAuthenticatedClient(flags)\n switch (sub) {\n case \"list\": {\n const { runSchedulesList } = await import(\"./commands/schedules/list.js\")\n await runSchedulesList(client, { json: flags.json })\n break\n }\n case \"create\": {\n const { runSchedulesCreate } = await import(\"./commands/schedules/create.js\")\n await runSchedulesCreate(client, rest.slice(2).concat(flags.json ? [\"--json\"] : []))\n break\n }\n case \"get\": {\n const { runSchedulesGet } = await import(\"./commands/schedules/get.js\")\n await runSchedulesGet(client, rest[2], { json: flags.json })\n break\n }\n case \"update\": {\n const { runSchedulesUpdate } = await import(\"./commands/schedules/update.js\")\n await runSchedulesUpdate(client, rest[2], rest.slice(3).concat(flags.json ? [\"--json\"] : []))\n break\n }\n case \"delete\": {\n const { runSchedulesDelete } = await import(\"./commands/schedules/delete.js\")\n await runSchedulesDelete(client, rest[2], { yes: flags.yes })\n break\n }\n default:\n console.error(`Unknown schedules command: ${sub}`)\n process.exit(1)\n }\n break\n }\n\n default:\n console.error(`Unknown command: ${command}. Run \"oatmeal --help\" for usage.`)\n process.exit(1)\n }\n } catch (error) {\n if (error instanceof ScopeError) {\n console.error(formatError({ message: error.message, hint: error.hint }))\n } else if (error instanceof AuthError) {\n console.error(formatError({ message: error.message }))\n } else if (error instanceof ConfigError) {\n console.error(formatError({ message: error.message }))\n } else if (error instanceof ApiError) {\n console.error(formatError({ message: error.toString(), hint: error.hint }))\n } else if (error instanceof Error) {\n console.error(formatError({ message: error.message }))\n } else {\n console.error(formatError({ message: String(error) }))\n }\n process.exit(1)\n }\n}\n\nmain()\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"cli.mjs","names":[],"sources":["../src/client.ts","../src/output.ts","../src/cli.ts"],"sourcesContent":["import { REQUEST_TIMEOUT_MS } from \"./constants.js\"\nimport { ApiError, AuthError, ScopeError } from \"./errors.js\"\n\ninterface ClientOptions {\n baseUrl: string\n apiKey?: string\n}\n\ninterface RequestOptions {\n method?: string\n body?: unknown\n params?: Record<string, string | number | undefined>\n timeout?: number\n}\n\nexport class OatmealClient {\n private baseUrl: string\n private apiKey?: string\n\n constructor(options: ClientOptions) {\n this.baseUrl = options.baseUrl.replace(/\\/$/, \"\")\n this.apiKey = options.apiKey\n }\n\n async get<T>(path: string, options?: RequestOptions): Promise<T> {\n return this.request<T>(path, { ...options, method: \"GET\" })\n }\n\n async post<T>(path: string, body?: unknown, options?: RequestOptions): Promise<T> {\n return this.request<T>(path, { ...options, method: \"POST\", body })\n }\n\n async patch<T>(path: string, body?: unknown, options?: RequestOptions): Promise<T> {\n return this.request<T>(path, { ...options, method: \"PATCH\", body })\n }\n\n async delete<T>(path: string, options?: RequestOptions): Promise<T> {\n return this.request<T>(path, { ...options, method: \"DELETE\" })\n }\n\n private async request<T>(path: string, options: RequestOptions = {}): Promise<T> {\n const { method = \"GET\", body, params, timeout = REQUEST_TIMEOUT_MS } = options\n\n let url = `${this.baseUrl}${path}`\n if (params) {\n const searchParams = new URLSearchParams()\n for (const [key, value] of Object.entries(params)) {\n if (value !== undefined) {\n searchParams.set(key, String(value))\n }\n }\n const qs = searchParams.toString()\n if (qs) url += `?${qs}`\n }\n\n const headers: Record<string, string> = {}\n if (this.apiKey) {\n headers[\"Authorization\"] = `Bearer ${this.apiKey}`\n }\n if (body !== undefined) {\n headers[\"Content-Type\"] = \"application/json\"\n }\n\n const controller = new AbortController()\n const timer = setTimeout(() => controller.abort(), timeout)\n\n try {\n const response = await this.fetchWithRetry(url, {\n method,\n headers,\n body: body !== undefined ? JSON.stringify(body) : undefined,\n signal: controller.signal,\n })\n\n clearTimeout(timer)\n\n if (response.status === 204) {\n return undefined as T\n }\n\n const contentType = response.headers.get(\"content-type\") ?? \"\"\n let data: unknown\n\n if (contentType.includes(\"application/json\")) {\n data = await response.json()\n } else {\n const text = await response.text()\n data = { message: text }\n }\n\n if (!response.ok) {\n this.handleErrorResponse(response.status, data)\n }\n\n return data as T\n } catch (error) {\n clearTimeout(timer)\n if (error instanceof ApiError || error instanceof AuthError || error instanceof ScopeError) {\n throw error\n }\n if (error instanceof DOMException && error.name === \"AbortError\") {\n throw new ApiError(0, `Request timed out after ${timeout / 1000}s`)\n }\n if (error instanceof TypeError && (error.message.includes(\"fetch\") || error.message.includes(\"network\"))) {\n throw new ApiError(0, `Could not connect to ${this.baseUrl}. Is the server running?`)\n }\n throw new ApiError(0, `Network error: ${(error as Error).message}`)\n }\n }\n\n private async fetchWithRetry(\n url: string,\n init: RequestInit,\n retried = false\n ): Promise<Response> {\n const response = await fetch(url, init)\n\n if (response.status === 429 && !retried) {\n const retryAfter = response.headers.get(\"retry-after\")\n const delay = retryAfter ? parseInt(retryAfter, 10) * 1000 : 1000\n await new Promise((resolve) => setTimeout(resolve, Math.min(delay, 10_000)))\n return this.fetchWithRetry(url, init, true)\n }\n\n return response\n }\n\n private handleErrorResponse(status: number, data: unknown): never {\n const body = data as Record<string, unknown>\n const message = (body?.error as string) || (body?.message as string) || `Request failed`\n\n if (status === 401) {\n throw new AuthError(message)\n }\n\n if (status === 403) {\n const scope = body?.requiredScope as string | undefined\n if (scope) {\n throw new ScopeError(scope, body?.currentScopes as string[] | undefined)\n }\n throw new ApiError(403, message)\n }\n\n if (status === 404) {\n throw new ApiError(404, body?.message ? message : \"Resource not found\")\n }\n\n if (status === 429) {\n throw new ApiError(429, \"Rate limited. Please try again later.\", \"Wait a moment before retrying.\")\n }\n\n throw new ApiError(status, message)\n }\n}\n","import pc from \"picocolors\"\n\nconst noColor = !!process.env.NO_COLOR\n\nfunction color<T extends string>(fn: (s: T) => string, s: T): string {\n return noColor ? s : fn(s)\n}\n\ninterface Column<T> {\n key: keyof T\n label: string\n width?: number\n}\n\nexport function formatTable<T extends object>(\n rows: T[],\n columns: Column<T>[]\n): string {\n if (rows.length === 0) {\n return \"\"\n }\n\n const widths = columns.map((col) => {\n const headerWidth = col.label.length\n const maxDataWidth = rows.reduce((max, row) => {\n const val = String(row[col.key] ?? \"\")\n return Math.max(max, val.length)\n }, 0)\n return col.width ?? Math.min(Math.max(headerWidth, maxDataWidth), 50)\n })\n\n const header = columns.map((col, i) => col.label.padEnd(widths[i])).join(\" \")\n const separator = widths.map((w) => \"─\".repeat(w)).join(\"──\")\n\n const dataRows = rows.map((row) =>\n columns\n .map((col, i) => {\n const val = String(row[col.key] ?? \"\")\n return val.length > widths[i] ? val.slice(0, widths[i] - 1) + \"…\" : val.padEnd(widths[i])\n })\n .join(\" \")\n )\n\n return [color(pc.bold, header), separator, ...dataRows].join(\"\\n\")\n}\n\nexport function formatJson(data: unknown): string {\n return JSON.stringify(data, null, 2)\n}\n\nexport function formatDetail(fields: Array<{ label: string; value: string | undefined }>): string {\n const maxLabel = fields.reduce((max, f) => Math.max(max, f.label.length), 0)\n return fields\n .map((f) => `${color(pc.bold, f.label.padEnd(maxLabel))} ${f.value ?? color(pc.dim, \"—\")}`)\n .join(\"\\n\")\n}\n\nexport function formatError(error: { message: string; hint?: string }): string {\n const lines = [color(pc.red, `Error: ${error.message}`)]\n if (error.hint) {\n lines.push(color(pc.dim, `Hint: ${error.hint}`))\n }\n return lines.join(\"\\n\")\n}\n\nexport function formatSuccess(message: string): string {\n return color(pc.green, `✓ ${message}`)\n}\n\nexport function formatWarning(message: string): string {\n return color(pc.yellow, `⚠ ${message}`)\n}\n","import pc from \"picocolors\"\nimport { OatmealClient } from \"./client.js\"\nimport { loadConfig } from \"./config.js\"\nimport { VERSION, DEFAULT_BASE_URL } from \"./constants.js\"\nimport { ApiError, AuthError, ConfigError, ScopeError } from \"./errors.js\"\nimport { formatError } from \"./output.js\"\n\ninterface GlobalFlags {\n json: boolean\n yes: boolean\n baseUrl?: string\n apiKey?: string\n help: boolean\n}\n\nfunction parseGlobalFlags(args: string[]): { flags: GlobalFlags; rest: string[] } {\n const flags: GlobalFlags = { json: false, yes: false, help: false }\n const rest: string[] = []\n\n for (let i = 0; i < args.length; i++) {\n switch (args[i]) {\n case \"--json\":\n flags.json = true\n break\n case \"--yes\":\n case \"-y\":\n flags.yes = true\n break\n case \"--base-url\":\n flags.baseUrl = args[++i]\n break\n case \"--api-key\":\n flags.apiKey = args[++i]\n break\n case \"--help\":\n case \"-h\":\n flags.help = true\n break\n case \"--version\":\n case \"-v\":\n console.log(VERSION)\n process.exit(0)\n break\n default:\n rest.push(args[i])\n }\n }\n\n return { flags, rest }\n}\n\nfunction createPublicClient(flags: GlobalFlags): OatmealClient {\n const config = loadConfig()\n return new OatmealClient({\n baseUrl: flags.baseUrl ?? config?.baseUrl ?? DEFAULT_BASE_URL,\n })\n}\n\nfunction createAuthenticatedClient(flags: GlobalFlags): OatmealClient {\n const apiKey = flags.apiKey ?? process.env.HACKATHON_API_KEY\n if (apiKey) {\n return new OatmealClient({\n baseUrl: flags.baseUrl ?? DEFAULT_BASE_URL,\n apiKey,\n })\n }\n\n const config = loadConfig()\n if (!config?.apiKey) {\n throw new AuthError()\n }\n\n return new OatmealClient({\n baseUrl: flags.baseUrl ?? config.baseUrl,\n apiKey: config.apiKey,\n })\n}\n\nconst BANNER = `\n ${pc.bold(\"hackathon\")} — CLI for the Oatmeal hackathon platform\n\n ${pc.dim(\"USAGE\")}\n hackathon <command> [options]\n\n ${pc.dim(\"PUBLIC COMMANDS (no auth required)\")}\n browse hackathons Search public hackathons\n browse submissions <slug> View submissions for a hackathon\n browse results <slug> View published results\n browse org <slug> View organization profile\n\n ${pc.dim(\"AUTH\")}\n login Sign in via browser or API key\n logout Remove saved credentials\n whoami Show current auth info\n update Update CLI to latest version\n\n ${pc.dim(\"EVENT MANAGEMENT (auth required)\")}\n events list List your hackathons\n events get <id> Get hackathon details\n events create Create a hackathon\n events update <id> Update a hackathon\n events delete <id> Delete a hackathon\n ${pc.dim(\"(alias: hackathons)\")}\n\n ${pc.dim(\"JUDGING\")}\n judging criteria list <id> List criteria\n judging criteria create <id> Create criteria\n judging criteria update <id> <cid> Update criteria\n judging criteria delete <id> <cid> Delete criteria\n judging judges list <id> List judges\n judging judges add <id> Add a judge\n judging judges remove <id> <pid> Remove a judge\n judging assignments list <id> List assignments\n judging assignments create <id> Create assignment\n judging assignments delete <id> <aid> Delete assignment\n judging auto-assign <id> Auto-assign judges\n judging invitations list <id> List invitations\n judging invitations cancel <id> <iid> Cancel invitation\n judging pick-results <id> View pick results\n\n ${pc.dim(\"PRIZES\")}\n prizes list <id> List prizes\n prizes create <id> Create a prize\n prizes update <id> <pid> Update a prize\n prizes delete <id> <pid> Delete a prize\n prizes reorder <id> Reorder prizes\n prizes assign <id> <pid> Assign prize\n prizes unassign <id> <pid> <sid> Unassign prize\n\n ${pc.dim(\"JUDGE DISPLAY\")}\n judge-display list <id> List display profiles\n judge-display create <id> Create display profile\n judge-display update <id> <jid> Update display profile\n judge-display delete <id> <jid> Delete display profile\n judge-display reorder <id> Reorder profiles\n\n ${pc.dim(\"RESULTS\")}\n results calculate <id> Calculate results\n results get <id> Get detailed results\n results publish <id> Publish results\n results unpublish <id> Unpublish results\n\n ${pc.dim(\"WEBHOOKS\")}\n webhooks list List webhooks\n webhooks create Create a webhook\n webhooks delete <id> Delete a webhook\n\n ${pc.dim(\"JOBS\")}\n jobs list List jobs\n jobs get <id> Get job details\n jobs create Create a job\n jobs result <id> Get job result\n jobs cancel <id> Cancel a job\n\n ${pc.dim(\"SCHEDULES\")}\n schedules list List schedules\n schedules create Create a schedule\n schedules get <id> Get schedule details\n schedules update <id> Update a schedule\n schedules delete <id> Delete a schedule\n\n ${pc.dim(\"GLOBAL OPTIONS\")}\n --json Output as JSON\n --yes, -y Skip confirmation prompts\n --base-url API base URL\n --api-key API key (overrides config)\n --help, -h Show help\n --version, -v Show version\n`\n\nasync function notifyIfUpdateAvailable(): Promise<void> {\n try {\n const { checkForUpdate, formatUpdateNotice } = await import(\"./update-check.js\")\n const update = await checkForUpdate()\n if (update) {\n console.error(formatUpdateNotice(update))\n }\n } catch {\n // Silently ignore update check failures\n }\n}\n\nasync function main() {\n const { flags, rest } = parseGlobalFlags(process.argv.slice(2))\n\n if (rest.length === 0 || flags.help) {\n console.log(BANNER)\n return\n }\n\n const command = rest[0]\n const sub = rest[1]\n const sub2 = rest[2]\n\n try {\n switch (command) {\n case \"login\": {\n const { runLogin } = await import(\"./commands/login.js\")\n await runLogin(rest.slice(1).concat(flags.yes ? [\"--yes\"] : []).concat(flags.baseUrl ? [\"--base-url\", flags.baseUrl] : []).concat(flags.apiKey ? [\"--api-key\", flags.apiKey] : []))\n break\n }\n\n case \"logout\": {\n const { runLogout } = await import(\"./commands/logout.js\")\n await runLogout()\n break\n }\n\n case \"whoami\": {\n const client = createAuthenticatedClient(flags)\n const { runWhoAmI } = await import(\"./commands/whoami.js\")\n await runWhoAmI(client, { json: flags.json })\n break\n }\n\n case \"update\": {\n const { runUpdate } = await import(\"./commands/update.js\")\n await runUpdate()\n return\n }\n\n case \"browse\": {\n const client = createPublicClient(flags)\n switch (sub) {\n case \"hackathons\": {\n const { runBrowseHackathons } = await import(\"./commands/browse/hackathons.js\")\n await runBrowseHackathons(client, rest.slice(2).concat(flags.json ? [\"--json\"] : []))\n break\n }\n case \"submissions\": {\n const { runBrowseSubmissions } = await import(\"./commands/browse/submissions.js\")\n await runBrowseSubmissions(client, rest[2], { json: flags.json })\n break\n }\n case \"results\": {\n const { runBrowseResults } = await import(\"./commands/browse/results.js\")\n await runBrowseResults(client, rest[2], { json: flags.json })\n break\n }\n case \"org\": {\n const { runBrowseOrg } = await import(\"./commands/browse/org.js\")\n await runBrowseOrg(client, rest[2], { json: flags.json })\n break\n }\n default:\n console.error(`Unknown browse command: ${sub}. Run \"hackathon browse --help\" for usage.`)\n process.exit(1)\n }\n break\n }\n\n case \"hackathons\":\n case \"events\": {\n const client = createAuthenticatedClient(flags)\n switch (sub) {\n case \"list\": {\n const { runHackathonsList } = await import(\"./commands/hackathons/list.js\")\n await runHackathonsList(client, { json: flags.json })\n break\n }\n case \"get\": {\n const { runHackathonsGet } = await import(\"./commands/hackathons/get.js\")\n await runHackathonsGet(client, rest[2], { json: flags.json })\n break\n }\n case \"create\": {\n const { runHackathonsCreate } = await import(\"./commands/hackathons/create.js\")\n await runHackathonsCreate(client, rest.slice(2).concat(flags.json ? [\"--json\"] : []))\n break\n }\n case \"update\": {\n const { runHackathonsUpdate } = await import(\"./commands/hackathons/update.js\")\n await runHackathonsUpdate(client, rest[2], rest.slice(3).concat(flags.json ? [\"--json\"] : []))\n break\n }\n case \"delete\": {\n const { runHackathonsDelete } = await import(\"./commands/hackathons/delete.js\")\n await runHackathonsDelete(client, rest[2], { yes: flags.yes })\n break\n }\n default:\n console.error(`Unknown events command: ${sub}. Run \"hackathon events --help\" for usage.`)\n process.exit(1)\n }\n break\n }\n\n case \"judging\": {\n const client = createAuthenticatedClient(flags)\n const hackathonId = rest[2]\n switch (sub) {\n case \"criteria\":\n switch (sub2) {\n case \"list\": {\n const { runCriteriaList } = await import(\"./commands/judging/criteria-list.js\")\n await runCriteriaList(client, rest[3], { json: flags.json })\n break\n }\n case \"create\": {\n const { runCriteriaCreate } = await import(\"./commands/judging/criteria-create.js\")\n await runCriteriaCreate(client, rest[3], rest.slice(4).concat(flags.json ? [\"--json\"] : []))\n break\n }\n case \"update\": {\n const { runCriteriaUpdate } = await import(\"./commands/judging/criteria-update.js\")\n await runCriteriaUpdate(client, rest[3], rest[4], rest.slice(5).concat(flags.json ? [\"--json\"] : []))\n break\n }\n case \"delete\": {\n const { runCriteriaDelete } = await import(\"./commands/judging/criteria-delete.js\")\n await runCriteriaDelete(client, rest[3], rest[4], { yes: flags.yes })\n break\n }\n default:\n console.error(`Unknown judging criteria command: ${sub2}`)\n process.exit(1)\n }\n break\n\n case \"judges\":\n switch (sub2) {\n case \"list\": {\n const { runJudgesList } = await import(\"./commands/judging/judges-list.js\")\n await runJudgesList(client, rest[3], { json: flags.json })\n break\n }\n case \"add\": {\n const { runJudgesAdd } = await import(\"./commands/judging/judges-add.js\")\n await runJudgesAdd(client, rest[3], rest.slice(4).concat(flags.json ? [\"--json\"] : []))\n break\n }\n case \"remove\": {\n const { runJudgesRemove } = await import(\"./commands/judging/judges-remove.js\")\n await runJudgesRemove(client, rest[3], rest[4], { yes: flags.yes })\n break\n }\n default:\n console.error(`Unknown judging judges command: ${sub2}`)\n process.exit(1)\n }\n break\n\n case \"assignments\":\n switch (sub2) {\n case \"list\": {\n const { runAssignmentsList } = await import(\"./commands/judging/assignments-list.js\")\n await runAssignmentsList(client, rest[3], { json: flags.json })\n break\n }\n case \"create\": {\n const { runAssignmentsCreate } = await import(\"./commands/judging/assignments-create.js\")\n await runAssignmentsCreate(client, rest[3], rest.slice(4).concat(flags.json ? [\"--json\"] : []))\n break\n }\n case \"delete\": {\n const { runAssignmentsDelete } = await import(\"./commands/judging/assignments-delete.js\")\n await runAssignmentsDelete(client, rest[3], rest[4], { yes: flags.yes })\n break\n }\n default:\n console.error(`Unknown judging assignments command: ${sub2}`)\n process.exit(1)\n }\n break\n\n case \"auto-assign\": {\n const { runAutoAssign } = await import(\"./commands/judging/auto-assign.js\")\n await runAutoAssign(client, hackathonId, rest.slice(3).concat(flags.json ? [\"--json\"] : []))\n break\n }\n\n case \"invitations\":\n switch (sub2) {\n case \"list\": {\n const { runInvitationsList } = await import(\"./commands/judging/invitations-list.js\")\n await runInvitationsList(client, rest[3], { json: flags.json })\n break\n }\n case \"cancel\": {\n const { runInvitationsCancel } = await import(\"./commands/judging/invitations-cancel.js\")\n await runInvitationsCancel(client, rest[3], rest[4], { yes: flags.yes })\n break\n }\n default:\n console.error(`Unknown judging invitations command: ${sub2}`)\n process.exit(1)\n }\n break\n\n case \"pick-results\": {\n const { runPickResults } = await import(\"./commands/judging/pick-results.js\")\n await runPickResults(client, hackathonId, { json: flags.json })\n break\n }\n\n default:\n console.error(`Unknown judging command: ${sub}`)\n process.exit(1)\n }\n break\n }\n\n case \"prizes\": {\n const client = createAuthenticatedClient(flags)\n switch (sub) {\n case \"list\": {\n const { runPrizesList } = await import(\"./commands/prizes/list.js\")\n await runPrizesList(client, rest[2], { json: flags.json })\n break\n }\n case \"create\": {\n const { runPrizesCreate } = await import(\"./commands/prizes/create.js\")\n await runPrizesCreate(client, rest[2], rest.slice(3).concat(flags.json ? [\"--json\"] : []))\n break\n }\n case \"update\": {\n const { runPrizesUpdate } = await import(\"./commands/prizes/update.js\")\n await runPrizesUpdate(client, rest[2], rest[3], rest.slice(4).concat(flags.json ? [\"--json\"] : []))\n break\n }\n case \"delete\": {\n const { runPrizesDelete } = await import(\"./commands/prizes/delete.js\")\n await runPrizesDelete(client, rest[2], rest[3], { yes: flags.yes })\n break\n }\n case \"reorder\": {\n const { runPrizesReorder } = await import(\"./commands/prizes/reorder.js\")\n await runPrizesReorder(client, rest[2], rest.slice(3))\n break\n }\n case \"assign\": {\n const { runPrizesAssign } = await import(\"./commands/prizes/assign.js\")\n await runPrizesAssign(client, rest[2], rest[3], rest.slice(4).concat(flags.json ? [\"--json\"] : []))\n break\n }\n case \"unassign\": {\n const { runPrizesUnassign } = await import(\"./commands/prizes/unassign.js\")\n await runPrizesUnassign(client, rest[2], rest[3], rest[4], { yes: flags.yes })\n break\n }\n default:\n console.error(`Unknown prizes command: ${sub}`)\n process.exit(1)\n }\n break\n }\n\n case \"judge-display\": {\n const client = createAuthenticatedClient(flags)\n switch (sub) {\n case \"list\": {\n const { runJudgeDisplayList } = await import(\"./commands/judge-display/list.js\")\n await runJudgeDisplayList(client, rest[2], { json: flags.json })\n break\n }\n case \"create\": {\n const { runJudgeDisplayCreate } = await import(\"./commands/judge-display/create.js\")\n await runJudgeDisplayCreate(client, rest[2], rest.slice(3).concat(flags.json ? [\"--json\"] : []))\n break\n }\n case \"update\": {\n const { runJudgeDisplayUpdate } = await import(\"./commands/judge-display/update.js\")\n await runJudgeDisplayUpdate(client, rest[2], rest[3], rest.slice(4).concat(flags.json ? [\"--json\"] : []))\n break\n }\n case \"delete\": {\n const { runJudgeDisplayDelete } = await import(\"./commands/judge-display/delete.js\")\n await runJudgeDisplayDelete(client, rest[2], rest[3], { yes: flags.yes })\n break\n }\n case \"reorder\": {\n const { runJudgeDisplayReorder } = await import(\"./commands/judge-display/reorder.js\")\n await runJudgeDisplayReorder(client, rest[2], rest.slice(3))\n break\n }\n default:\n console.error(`Unknown judge-display command: ${sub}`)\n process.exit(1)\n }\n break\n }\n\n case \"results\": {\n const client = createAuthenticatedClient(flags)\n switch (sub) {\n case \"calculate\": {\n const { runResultsCalculate } = await import(\"./commands/results/calculate.js\")\n await runResultsCalculate(client, rest[2], { json: flags.json })\n break\n }\n case \"get\": {\n const { runResultsGet } = await import(\"./commands/results/get.js\")\n await runResultsGet(client, rest[2], { json: flags.json })\n break\n }\n case \"publish\": {\n const { runResultsPublish } = await import(\"./commands/results/publish.js\")\n await runResultsPublish(client, rest[2], { yes: flags.yes })\n break\n }\n case \"unpublish\": {\n const { runResultsUnpublish } = await import(\"./commands/results/unpublish.js\")\n await runResultsUnpublish(client, rest[2], { yes: flags.yes })\n break\n }\n default:\n console.error(`Unknown results command: ${sub}`)\n process.exit(1)\n }\n break\n }\n\n case \"webhooks\": {\n const client = createAuthenticatedClient(flags)\n switch (sub) {\n case \"list\": {\n const { runWebhooksList } = await import(\"./commands/webhooks/list.js\")\n await runWebhooksList(client, { json: flags.json })\n break\n }\n case \"create\": {\n const { runWebhooksCreate } = await import(\"./commands/webhooks/create.js\")\n await runWebhooksCreate(client, rest.slice(2).concat(flags.json ? [\"--json\"] : []))\n break\n }\n case \"delete\": {\n const { runWebhooksDelete } = await import(\"./commands/webhooks/delete.js\")\n await runWebhooksDelete(client, rest[2], { yes: flags.yes })\n break\n }\n default:\n console.error(`Unknown webhooks command: ${sub}`)\n process.exit(1)\n }\n break\n }\n\n case \"jobs\": {\n const client = createAuthenticatedClient(flags)\n switch (sub) {\n case \"list\": {\n const { runJobsList } = await import(\"./commands/jobs/list.js\")\n await runJobsList(client, rest.slice(2), { json: flags.json })\n break\n }\n case \"get\": {\n const { runJobsGet } = await import(\"./commands/jobs/get.js\")\n await runJobsGet(client, rest[2], { json: flags.json })\n break\n }\n case \"create\": {\n const { runJobsCreate } = await import(\"./commands/jobs/create.js\")\n await runJobsCreate(client, rest.slice(2).concat(flags.json ? [\"--json\"] : []))\n break\n }\n case \"result\": {\n const { runJobsResult } = await import(\"./commands/jobs/result.js\")\n await runJobsResult(client, rest[2], rest.slice(3).concat(flags.json ? [\"--json\"] : []))\n break\n }\n case \"cancel\": {\n const { runJobsCancel } = await import(\"./commands/jobs/cancel.js\")\n await runJobsCancel(client, rest[2], { yes: flags.yes })\n break\n }\n default:\n console.error(`Unknown jobs command: ${sub}`)\n process.exit(1)\n }\n break\n }\n\n case \"schedules\": {\n const client = createAuthenticatedClient(flags)\n switch (sub) {\n case \"list\": {\n const { runSchedulesList } = await import(\"./commands/schedules/list.js\")\n await runSchedulesList(client, { json: flags.json })\n break\n }\n case \"create\": {\n const { runSchedulesCreate } = await import(\"./commands/schedules/create.js\")\n await runSchedulesCreate(client, rest.slice(2).concat(flags.json ? [\"--json\"] : []))\n break\n }\n case \"get\": {\n const { runSchedulesGet } = await import(\"./commands/schedules/get.js\")\n await runSchedulesGet(client, rest[2], { json: flags.json })\n break\n }\n case \"update\": {\n const { runSchedulesUpdate } = await import(\"./commands/schedules/update.js\")\n await runSchedulesUpdate(client, rest[2], rest.slice(3).concat(flags.json ? [\"--json\"] : []))\n break\n }\n case \"delete\": {\n const { runSchedulesDelete } = await import(\"./commands/schedules/delete.js\")\n await runSchedulesDelete(client, rest[2], { yes: flags.yes })\n break\n }\n default:\n console.error(`Unknown schedules command: ${sub}`)\n process.exit(1)\n }\n break\n }\n\n default:\n console.error(`Unknown command: ${command}. Run \"hackathon --help\" for usage.`)\n process.exit(1)\n }\n } catch (error) {\n if (error instanceof ScopeError) {\n console.error(formatError({ message: error.message, hint: error.hint }))\n } else if (error instanceof AuthError) {\n console.error(formatError({ message: error.message }))\n } else if (error instanceof ConfigError) {\n console.error(formatError({ message: error.message }))\n } else if (error instanceof ApiError) {\n console.error(formatError({ message: error.toString(), hint: error.hint }))\n } else if (error instanceof Error) {\n console.error(formatError({ message: error.message }))\n } else {\n console.error(formatError({ message: String(error) }))\n }\n process.exit(1)\n } finally {\n await notifyIfUpdateAvailable()\n }\n}\n\nmain()\n"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@agi-ventures-canada/hackathon-cli",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.2",
|
|
4
4
|
"description": "CLI for the Oatmeal hackathon platform",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": {
|
|
7
|
-
"
|
|
7
|
+
"hackathon": "./bin/cli.mjs"
|
|
8
8
|
},
|
|
9
9
|
"files": [
|
|
10
10
|
"dist",
|
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
"build": "obuild",
|
|
16
16
|
"dev": "bun run src/cli.ts",
|
|
17
17
|
"test": "bun test",
|
|
18
|
-
"prepublishOnly": ""
|
|
18
|
+
"prepublishOnly": "npm run build"
|
|
19
19
|
},
|
|
20
20
|
"dependencies": {
|
|
21
21
|
"@clack/prompts": "^0.10.0",
|