@agi-ventures-canada/hackathon-cli 0.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 (121) hide show
  1. package/bin/cli.mjs +11 -0
  2. package/dist/_chunks/assign.mjs +35 -0
  3. package/dist/_chunks/assign.mjs.map +1 -0
  4. package/dist/_chunks/assignments-create.mjs +37 -0
  5. package/dist/_chunks/assignments-create.mjs.map +1 -0
  6. package/dist/_chunks/assignments-delete.mjs +22 -0
  7. package/dist/_chunks/assignments-delete.mjs.map +1 -0
  8. package/dist/_chunks/assignments-list.mjs +35 -0
  9. package/dist/_chunks/assignments-list.mjs.map +1 -0
  10. package/dist/_chunks/auto-assign.mjs +31 -0
  11. package/dist/_chunks/auto-assign.mjs.map +1 -0
  12. package/dist/_chunks/calculate.mjs +18 -0
  13. package/dist/_chunks/calculate.mjs.map +1 -0
  14. package/dist/_chunks/cancel.mjs +22 -0
  15. package/dist/_chunks/cancel.mjs.map +1 -0
  16. package/dist/_chunks/config.mjs +70 -0
  17. package/dist/_chunks/config.mjs.map +1 -0
  18. package/dist/_chunks/constants.mjs +14 -0
  19. package/dist/_chunks/constants.mjs.map +1 -0
  20. package/dist/_chunks/create.mjs +66 -0
  21. package/dist/_chunks/create.mjs.map +1 -0
  22. package/dist/_chunks/create2.mjs +47 -0
  23. package/dist/_chunks/create2.mjs.map +1 -0
  24. package/dist/_chunks/create3.mjs +51 -0
  25. package/dist/_chunks/create3.mjs.map +1 -0
  26. package/dist/_chunks/create4.mjs +55 -0
  27. package/dist/_chunks/create4.mjs.map +1 -0
  28. package/dist/_chunks/create5.mjs +60 -0
  29. package/dist/_chunks/create5.mjs.map +1 -0
  30. package/dist/_chunks/create6.mjs +57 -0
  31. package/dist/_chunks/create6.mjs.map +1 -0
  32. package/dist/_chunks/criteria-create.mjs +77 -0
  33. package/dist/_chunks/criteria-create.mjs.map +1 -0
  34. package/dist/_chunks/criteria-delete.mjs +22 -0
  35. package/dist/_chunks/criteria-delete.mjs.map +1 -0
  36. package/dist/_chunks/criteria-list.mjs +35 -0
  37. package/dist/_chunks/criteria-list.mjs.map +1 -0
  38. package/dist/_chunks/criteria-update.mjs +49 -0
  39. package/dist/_chunks/criteria-update.mjs.map +1 -0
  40. package/dist/_chunks/delete.mjs +24 -0
  41. package/dist/_chunks/delete.mjs.map +1 -0
  42. package/dist/_chunks/delete2.mjs +22 -0
  43. package/dist/_chunks/delete2.mjs.map +1 -0
  44. package/dist/_chunks/delete3.mjs +22 -0
  45. package/dist/_chunks/delete3.mjs.map +1 -0
  46. package/dist/_chunks/delete4.mjs +22 -0
  47. package/dist/_chunks/delete4.mjs.map +1 -0
  48. package/dist/_chunks/delete5.mjs +22 -0
  49. package/dist/_chunks/delete5.mjs.map +1 -0
  50. package/dist/_chunks/get.mjs +61 -0
  51. package/dist/_chunks/get.mjs.map +1 -0
  52. package/dist/_chunks/get2.mjs +43 -0
  53. package/dist/_chunks/get2.mjs.map +1 -0
  54. package/dist/_chunks/get3.mjs +39 -0
  55. package/dist/_chunks/get3.mjs.map +1 -0
  56. package/dist/_chunks/get4.mjs +47 -0
  57. package/dist/_chunks/get4.mjs.map +1 -0
  58. package/dist/_chunks/hackathons.mjs +64 -0
  59. package/dist/_chunks/hackathons.mjs.map +1 -0
  60. package/dist/_chunks/invitations-cancel.mjs +22 -0
  61. package/dist/_chunks/invitations-cancel.mjs.map +1 -0
  62. package/dist/_chunks/invitations-list.mjs +31 -0
  63. package/dist/_chunks/invitations-list.mjs.map +1 -0
  64. package/dist/_chunks/judges-add.mjs +37 -0
  65. package/dist/_chunks/judges-add.mjs.map +1 -0
  66. package/dist/_chunks/judges-list.mjs +35 -0
  67. package/dist/_chunks/judges-list.mjs.map +1 -0
  68. package/dist/_chunks/judges-remove.mjs +22 -0
  69. package/dist/_chunks/judges-remove.mjs.map +1 -0
  70. package/dist/_chunks/list.mjs +39 -0
  71. package/dist/_chunks/list.mjs.map +1 -0
  72. package/dist/_chunks/list2.mjs +37 -0
  73. package/dist/_chunks/list2.mjs.map +1 -0
  74. package/dist/_chunks/list3.mjs +31 -0
  75. package/dist/_chunks/list3.mjs.map +1 -0
  76. package/dist/_chunks/list4.mjs +35 -0
  77. package/dist/_chunks/list4.mjs.map +1 -0
  78. package/dist/_chunks/list5.mjs +39 -0
  79. package/dist/_chunks/list5.mjs.map +1 -0
  80. package/dist/_chunks/list6.mjs +40 -0
  81. package/dist/_chunks/list6.mjs.map +1 -0
  82. package/dist/_chunks/login.mjs +114 -0
  83. package/dist/_chunks/login.mjs.map +1 -0
  84. package/dist/_chunks/logout.mjs +16 -0
  85. package/dist/_chunks/logout.mjs.map +1 -0
  86. package/dist/_chunks/org.mjs +35 -0
  87. package/dist/_chunks/org.mjs.map +1 -0
  88. package/dist/_chunks/pick-results.mjs +35 -0
  89. package/dist/_chunks/pick-results.mjs.map +1 -0
  90. package/dist/_chunks/publish.mjs +22 -0
  91. package/dist/_chunks/publish.mjs.map +1 -0
  92. package/dist/_chunks/reorder.mjs +16 -0
  93. package/dist/_chunks/reorder.mjs.map +1 -0
  94. package/dist/_chunks/reorder2.mjs +16 -0
  95. package/dist/_chunks/reorder2.mjs.map +1 -0
  96. package/dist/_chunks/resolve.mjs +15 -0
  97. package/dist/_chunks/resolve.mjs.map +1 -0
  98. package/dist/_chunks/result.mjs +46 -0
  99. package/dist/_chunks/result.mjs.map +1 -0
  100. package/dist/_chunks/results.mjs +43 -0
  101. package/dist/_chunks/results.mjs.map +1 -0
  102. package/dist/_chunks/submissions.mjs +35 -0
  103. package/dist/_chunks/submissions.mjs.map +1 -0
  104. package/dist/_chunks/unassign.mjs +22 -0
  105. package/dist/_chunks/unassign.mjs.map +1 -0
  106. package/dist/_chunks/unpublish.mjs +22 -0
  107. package/dist/_chunks/unpublish.mjs.map +1 -0
  108. package/dist/_chunks/update.mjs +47 -0
  109. package/dist/_chunks/update.mjs.map +1 -0
  110. package/dist/_chunks/update2.mjs +45 -0
  111. package/dist/_chunks/update2.mjs.map +1 -0
  112. package/dist/_chunks/update3.mjs +49 -0
  113. package/dist/_chunks/update3.mjs.map +1 -0
  114. package/dist/_chunks/update4.mjs +48 -0
  115. package/dist/_chunks/update4.mjs.map +1 -0
  116. package/dist/_chunks/whoami.mjs +31 -0
  117. package/dist/_chunks/whoami.mjs.map +1 -0
  118. package/dist/cli.d.mts +1 -0
  119. package/dist/cli.mjs +711 -0
  120. package/dist/cli.mjs.map +1 -0
  121. package/package.json +35 -0
@@ -0,0 +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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"}
package/package.json ADDED
@@ -0,0 +1,35 @@
1
+ {
2
+ "name": "@agi-ventures-canada/hackathon-cli",
3
+ "version": "0.1.0",
4
+ "description": "CLI for the Oatmeal hackathon platform",
5
+ "type": "module",
6
+ "bin": {
7
+ "oatmeal": "./bin/cli.mjs"
8
+ },
9
+ "files": [
10
+ "dist",
11
+ "bin",
12
+ "README.md"
13
+ ],
14
+ "scripts": {
15
+ "build": "obuild",
16
+ "dev": "bun run src/cli.ts",
17
+ "test": "bun test",
18
+ "prepublishOnly": ""
19
+ },
20
+ "dependencies": {
21
+ "@clack/prompts": "^0.10.0",
22
+ "picocolors": "^1.1.1"
23
+ },
24
+ "devDependencies": {
25
+ "@types/node": "^20",
26
+ "obuild": "^0.4.32",
27
+ "typescript": "^5"
28
+ },
29
+ "engines": {
30
+ "node": ">=20.9.0"
31
+ },
32
+ "publishConfig": {
33
+ "access": "public"
34
+ }
35
+ }