@agi-ventures-canada/hackathon-cli 0.1.7 → 0.1.8

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 (63) hide show
  1. package/dist/_chunks/activate-round.mjs +18 -0
  2. package/dist/_chunks/activate-round.mjs.map +1 -0
  3. package/dist/_chunks/buckets.mjs +56 -0
  4. package/dist/_chunks/buckets.mjs.map +1 -0
  5. package/dist/_chunks/calculate-results.mjs +18 -0
  6. package/dist/_chunks/calculate-results.mjs.map +1 -0
  7. package/dist/_chunks/create.mjs +1 -1
  8. package/dist/_chunks/create.mjs.map +1 -1
  9. package/dist/_chunks/create6.mjs +29 -38
  10. package/dist/_chunks/create6.mjs.map +1 -1
  11. package/dist/_chunks/create7.mjs +63 -0
  12. package/dist/_chunks/create7.mjs.map +1 -0
  13. package/dist/_chunks/criteria-create.mjs +9 -22
  14. package/dist/_chunks/criteria-create.mjs.map +1 -1
  15. package/dist/_chunks/criteria-list.mjs +4 -0
  16. package/dist/_chunks/criteria-list.mjs.map +1 -1
  17. package/dist/_chunks/criteria-update.mjs +13 -5
  18. package/dist/_chunks/criteria-update.mjs.map +1 -1
  19. package/dist/_chunks/delete5.mjs +8 -8
  20. package/dist/_chunks/delete5.mjs.map +1 -1
  21. package/dist/_chunks/delete6.mjs +22 -0
  22. package/dist/_chunks/delete6.mjs.map +1 -0
  23. package/dist/_chunks/get5.mjs +42 -0
  24. package/dist/_chunks/get5.mjs.map +1 -0
  25. package/dist/_chunks/levels-add.mjs +53 -0
  26. package/dist/_chunks/levels-add.mjs.map +1 -0
  27. package/dist/_chunks/levels-delete.mjs +53 -0
  28. package/dist/_chunks/levels-delete.mjs.map +1 -0
  29. package/dist/_chunks/levels-list.mjs +39 -0
  30. package/dist/_chunks/levels-list.mjs.map +1 -0
  31. package/dist/_chunks/levels-update.mjs +61 -0
  32. package/dist/_chunks/levels-update.mjs.map +1 -0
  33. package/dist/_chunks/list6.mjs +22 -19
  34. package/dist/_chunks/list6.mjs.map +1 -1
  35. package/dist/_chunks/list7.mjs +40 -0
  36. package/dist/_chunks/list7.mjs.map +1 -0
  37. package/dist/_chunks/track-assign.mjs +37 -0
  38. package/dist/_chunks/track-assign.mjs.map +1 -0
  39. package/dist/_chunks/track-unassign.mjs +49 -0
  40. package/dist/_chunks/track-unassign.mjs.map +1 -0
  41. package/dist/_chunks/update-round.mjs +49 -0
  42. package/dist/_chunks/update-round.mjs.map +1 -0
  43. package/dist/_chunks/update5.mjs +41 -48
  44. package/dist/_chunks/update5.mjs.map +1 -1
  45. package/dist/_chunks/update6.mjs +56 -0
  46. package/dist/_chunks/update6.mjs.map +1 -0
  47. package/dist/cli.mjs +154 -86
  48. package/dist/cli.mjs.map +1 -1
  49. package/package.json +1 -1
  50. package/dist/_chunks/hackathons-delete.mjs +0 -26
  51. package/dist/_chunks/hackathons-delete.mjs.map +0 -1
  52. package/dist/_chunks/hackathons-get.mjs +0 -34
  53. package/dist/_chunks/hackathons-get.mjs.map +0 -1
  54. package/dist/_chunks/hackathons-list.mjs +0 -64
  55. package/dist/_chunks/hackathons-list.mjs.map +0 -1
  56. package/dist/_chunks/hackathons-update.mjs +0 -73
  57. package/dist/_chunks/hackathons-update.mjs.map +0 -1
  58. package/dist/_chunks/scenarios-list.mjs +0 -24
  59. package/dist/_chunks/scenarios-list.mjs.map +0 -1
  60. package/dist/_chunks/scenarios-run.mjs +0 -23
  61. package/dist/_chunks/scenarios-run.mjs.map +0 -1
  62. package/dist/_chunks/stats.mjs +0 -37
  63. package/dist/_chunks/stats.mjs.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"update5.mjs","names":[],"sources":["../../src/commands/update.ts"],"sourcesContent":["import { execSync } from \"node:child_process\"\nimport pc from \"picocolors\"\nimport { VERSION } from \"../constants.js\"\nimport { detectInvocationMode } from \"../invocation.js\"\nimport { checkForUpdate } from \"../update-check.js\"\n\nconst PKG = \"@agi-ventures-canada/hackathon-cli\"\n\nfunction detectPackageManager(): { cmd: string; install: string } {\n const execPath = process.env.npm_execpath ?? process.env._ ?? \"\"\n if (/bun/.test(execPath)) return { cmd: \"bun\", install: `bun install -g ${PKG}@latest` }\n if (/pnpm/.test(execPath)) return { cmd: \"pnpm\", install: `pnpm add -g ${PKG}@latest` }\n if (/yarn/.test(execPath)) return { cmd: \"yarn\", install: `yarn global add ${PKG}@latest` }\n return { cmd: \"npm\", install: `npm install -g ${PKG}@latest` }\n}\n\nexport async function runUpdate(): Promise<void> {\n console.log(`Current version: ${VERSION}`)\n console.log(\"Checking for updates...\")\n\n const update = await checkForUpdate()\n if (!update) {\n console.log(pc.green(\"Already up to date.\"))\n return\n }\n\n const pm = detectPackageManager()\n const invocationMode = detectInvocationMode()\n console.log(`New version available: ${update.latest}`)\n\n if (invocationMode === \"local-bun-script\") {\n console.log(pc.yellow(\"You are running the repo-local CLI via `bun cli`.\"))\n console.log(\"Update this repository to use the newer CLI source, or install the published package globally:\")\n console.log(` ${pm.install}`)\n return\n }\n\n console.log(`Updating via ${pm.cmd}...`)\n\n try {\n execSync(pm.install, { stdio: \"inherit\" })\n console.log(pc.green(`\\nUpdated to ${update.latest}`))\n } catch {\n console.error(pc.red(\"Update failed. Try manually:\"))\n console.error(` ${pm.install}`)\n process.exit(1)\n }\n}\n"],"mappings":";;;;;AAMA,MAAM,MAAM;AAEZ,SAAS,uBAAyD;CAChE,MAAM,WAAW,QAAQ,IAAI,gBAAgB,QAAQ,IAAI,KAAK;AAC9D,KAAI,MAAM,KAAK,SAAS,CAAE,QAAO;EAAE,KAAK;EAAO,SAAS,kBAAkB,IAAI;EAAU;AACxF,KAAI,OAAO,KAAK,SAAS,CAAE,QAAO;EAAE,KAAK;EAAQ,SAAS,eAAe,IAAI;EAAU;AACvF,KAAI,OAAO,KAAK,SAAS,CAAE,QAAO;EAAE,KAAK;EAAQ,SAAS,mBAAmB,IAAI;EAAU;AAC3F,QAAO;EAAE,KAAK;EAAO,SAAS,kBAAkB,IAAI;EAAU;;AAGhE,eAAsB,YAA2B;AAC/C,SAAQ,IAAI,oBAAoB,UAAU;AAC1C,SAAQ,IAAI,0BAA0B;CAEtC,MAAM,SAAS,MAAM,gBAAgB;AACrC,KAAI,CAAC,QAAQ;AACX,UAAQ,IAAI,GAAG,MAAM,sBAAsB,CAAC;AAC5C;;CAGF,MAAM,KAAK,sBAAsB;CACjC,MAAM,iBAAiB,sBAAsB;AAC7C,SAAQ,IAAI,0BAA0B,OAAO,SAAS;AAEtD,KAAI,mBAAmB,oBAAoB;AACzC,UAAQ,IAAI,GAAG,OAAO,oDAAoD,CAAC;AAC3E,UAAQ,IAAI,iGAAiG;AAC7G,UAAQ,IAAI,KAAK,GAAG,UAAU;AAC9B;;AAGF,SAAQ,IAAI,gBAAgB,GAAG,IAAI,KAAK;AAExC,KAAI;AACF,WAAS,GAAG,SAAS,EAAE,OAAO,WAAW,CAAC;AAC1C,UAAQ,IAAI,GAAG,MAAM,gBAAgB,OAAO,SAAS,CAAC;SAChD;AACN,UAAQ,MAAM,GAAG,IAAI,+BAA+B,CAAC;AACrD,UAAQ,MAAM,KAAK,GAAG,UAAU;AAChC,UAAQ,KAAK,EAAE"}
1
+ {"version":3,"file":"update5.mjs","names":[],"sources":["../../src/commands/tracks/update.ts"],"sourcesContent":["import type { OatmealClient } from \"../../client.js\"\nimport { formatJson, formatSuccess } from \"../../output.js\"\n\ninterface TrackUpdateOptions {\n name?: string\n description?: string\n intent?: string\n displayOrder?: number\n json?: boolean\n}\n\nfunction parseOptions(args: string[]): TrackUpdateOptions {\n const options: TrackUpdateOptions = {}\n for (let i = 0; i < args.length; i++) {\n switch (args[i]) {\n case \"--name\":\n options.name = args[++i]\n break\n case \"--description\":\n options.description = args[++i]\n break\n case \"--intent\":\n options.intent = args[++i]\n break\n case \"--display-order\":\n options.displayOrder = Number(args[++i])\n break\n case \"--json\":\n options.json = true\n break\n }\n }\n return options\n}\n\nexport async function runTracksUpdate(\n client: OatmealClient,\n hackathonId: string,\n trackId: string,\n args: string[]\n): Promise<void> {\n if (!trackId) {\n console.error(\"Usage: hackathon tracks update <hackathon-id> <track-id> [--name ...]\")\n process.exit(1)\n }\n\n const options = parseOptions(args)\n const body: Record<string, unknown> = {}\n if (options.name) body.name = options.name\n if (options.description) body.description = options.description\n if (options.intent) body.intent = options.intent\n if (options.displayOrder !== undefined) body.displayOrder = options.displayOrder\n\n if (Object.keys(body).length === 0) {\n console.error(\"Error: provide at least one field to update\")\n process.exit(1)\n }\n\n const result = await client.patch<{ id: string; updatedAt: string }>(\n `/api/dashboard/hackathons/${hackathonId}/prize-tracks/${trackId}`,\n body\n )\n\n if (options.json) {\n console.log(formatJson(result))\n return\n }\n\n console.log(formatSuccess(`Updated track ${result.id}`))\n}\n"],"mappings":";;AAWA,SAAS,aAAa,MAAoC;CACxD,MAAM,UAA8B,EAAE;AACtC,MAAK,IAAI,IAAI,GAAG,IAAI,KAAK,QAAQ,IAC/B,SAAQ,KAAK,IAAb;EACE,KAAK;AACH,WAAQ,OAAO,KAAK,EAAE;AACtB;EACF,KAAK;AACH,WAAQ,cAAc,KAAK,EAAE;AAC7B;EACF,KAAK;AACH,WAAQ,SAAS,KAAK,EAAE;AACxB;EACF,KAAK;AACH,WAAQ,eAAe,OAAO,KAAK,EAAE,GAAG;AACxC;EACF,KAAK;AACH,WAAQ,OAAO;AACf;;AAGN,QAAO;;AAGT,eAAsB,gBACpB,QACA,aACA,SACA,MACe;AACf,KAAI,CAAC,SAAS;AACZ,UAAQ,MAAM,wEAAwE;AACtF,UAAQ,KAAK,EAAE;;CAGjB,MAAM,UAAU,aAAa,KAAK;CAClC,MAAM,OAAgC,EAAE;AACxC,KAAI,QAAQ,KAAM,MAAK,OAAO,QAAQ;AACtC,KAAI,QAAQ,YAAa,MAAK,cAAc,QAAQ;AACpD,KAAI,QAAQ,OAAQ,MAAK,SAAS,QAAQ;AAC1C,KAAI,QAAQ,iBAAiB,KAAA,EAAW,MAAK,eAAe,QAAQ;AAEpE,KAAI,OAAO,KAAK,KAAK,CAAC,WAAW,GAAG;AAClC,UAAQ,MAAM,8CAA8C;AAC5D,UAAQ,KAAK,EAAE;;CAGjB,MAAM,SAAS,MAAM,OAAO,MAC1B,6BAA6B,YAAY,gBAAgB,WACzD,KACD;AAED,KAAI,QAAQ,MAAM;AAChB,UAAQ,IAAI,WAAW,OAAO,CAAC;AAC/B;;AAGF,SAAQ,IAAI,cAAc,iBAAiB,OAAO,KAAK,CAAC"}
@@ -0,0 +1,56 @@
1
+ import { s as VERSION } from "./constants.mjs";
2
+ import { checkForUpdate, t as detectInvocationMode } from "./update-check.mjs";
3
+ import pc from "picocolors";
4
+ import { execSync } from "node:child_process";
5
+ //#region src/commands/update.ts
6
+ const PKG = "@agi-ventures-canada/hackathon-cli";
7
+ function detectPackageManager() {
8
+ const execPath = process.env.npm_execpath ?? process.env._ ?? "";
9
+ if (/bun/.test(execPath)) return {
10
+ cmd: "bun",
11
+ install: `bun install -g ${PKG}@latest`
12
+ };
13
+ if (/pnpm/.test(execPath)) return {
14
+ cmd: "pnpm",
15
+ install: `pnpm add -g ${PKG}@latest`
16
+ };
17
+ if (/yarn/.test(execPath)) return {
18
+ cmd: "yarn",
19
+ install: `yarn global add ${PKG}@latest`
20
+ };
21
+ return {
22
+ cmd: "npm",
23
+ install: `npm install -g ${PKG}@latest`
24
+ };
25
+ }
26
+ async function runUpdate() {
27
+ console.log(`Current version: ${VERSION}`);
28
+ console.log("Checking for updates...");
29
+ const update = await checkForUpdate();
30
+ if (!update) {
31
+ console.log(pc.green("Already up to date."));
32
+ return;
33
+ }
34
+ const pm = detectPackageManager();
35
+ const invocationMode = detectInvocationMode();
36
+ console.log(`New version available: ${update.latest}`);
37
+ if (invocationMode === "local-bun-script") {
38
+ console.log(pc.yellow("You are running the repo-local CLI via `bun cli`."));
39
+ console.log("Update this repository to use the newer CLI source, or install the published package globally:");
40
+ console.log(` ${pm.install}`);
41
+ return;
42
+ }
43
+ console.log(`Updating via ${pm.cmd}...`);
44
+ try {
45
+ execSync(pm.install, { stdio: "inherit" });
46
+ console.log(pc.green(`\nUpdated to ${update.latest}`));
47
+ } catch {
48
+ console.error(pc.red("Update failed. Try manually:"));
49
+ console.error(` ${pm.install}`);
50
+ process.exit(1);
51
+ }
52
+ }
53
+ //#endregion
54
+ export { runUpdate };
55
+
56
+ //# sourceMappingURL=update6.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"update6.mjs","names":[],"sources":["../../src/commands/update.ts"],"sourcesContent":["import { execSync } from \"node:child_process\"\nimport pc from \"picocolors\"\nimport { VERSION } from \"../constants.js\"\nimport { detectInvocationMode } from \"../invocation.js\"\nimport { checkForUpdate } from \"../update-check.js\"\n\nconst PKG = \"@agi-ventures-canada/hackathon-cli\"\n\nfunction detectPackageManager(): { cmd: string; install: string } {\n const execPath = process.env.npm_execpath ?? process.env._ ?? \"\"\n if (/bun/.test(execPath)) return { cmd: \"bun\", install: `bun install -g ${PKG}@latest` }\n if (/pnpm/.test(execPath)) return { cmd: \"pnpm\", install: `pnpm add -g ${PKG}@latest` }\n if (/yarn/.test(execPath)) return { cmd: \"yarn\", install: `yarn global add ${PKG}@latest` }\n return { cmd: \"npm\", install: `npm install -g ${PKG}@latest` }\n}\n\nexport async function runUpdate(): Promise<void> {\n console.log(`Current version: ${VERSION}`)\n console.log(\"Checking for updates...\")\n\n const update = await checkForUpdate()\n if (!update) {\n console.log(pc.green(\"Already up to date.\"))\n return\n }\n\n const pm = detectPackageManager()\n const invocationMode = detectInvocationMode()\n console.log(`New version available: ${update.latest}`)\n\n if (invocationMode === \"local-bun-script\") {\n console.log(pc.yellow(\"You are running the repo-local CLI via `bun cli`.\"))\n console.log(\"Update this repository to use the newer CLI source, or install the published package globally:\")\n console.log(` ${pm.install}`)\n return\n }\n\n console.log(`Updating via ${pm.cmd}...`)\n\n try {\n execSync(pm.install, { stdio: \"inherit\" })\n console.log(pc.green(`\\nUpdated to ${update.latest}`))\n } catch {\n console.error(pc.red(\"Update failed. Try manually:\"))\n console.error(` ${pm.install}`)\n process.exit(1)\n }\n}\n"],"mappings":";;;;;AAMA,MAAM,MAAM;AAEZ,SAAS,uBAAyD;CAChE,MAAM,WAAW,QAAQ,IAAI,gBAAgB,QAAQ,IAAI,KAAK;AAC9D,KAAI,MAAM,KAAK,SAAS,CAAE,QAAO;EAAE,KAAK;EAAO,SAAS,kBAAkB,IAAI;EAAU;AACxF,KAAI,OAAO,KAAK,SAAS,CAAE,QAAO;EAAE,KAAK;EAAQ,SAAS,eAAe,IAAI;EAAU;AACvF,KAAI,OAAO,KAAK,SAAS,CAAE,QAAO;EAAE,KAAK;EAAQ,SAAS,mBAAmB,IAAI;EAAU;AAC3F,QAAO;EAAE,KAAK;EAAO,SAAS,kBAAkB,IAAI;EAAU;;AAGhE,eAAsB,YAA2B;AAC/C,SAAQ,IAAI,oBAAoB,UAAU;AAC1C,SAAQ,IAAI,0BAA0B;CAEtC,MAAM,SAAS,MAAM,gBAAgB;AACrC,KAAI,CAAC,QAAQ;AACX,UAAQ,IAAI,GAAG,MAAM,sBAAsB,CAAC;AAC5C;;CAGF,MAAM,KAAK,sBAAsB;CACjC,MAAM,iBAAiB,sBAAsB;AAC7C,SAAQ,IAAI,0BAA0B,OAAO,SAAS;AAEtD,KAAI,mBAAmB,oBAAoB;AACzC,UAAQ,IAAI,GAAG,OAAO,oDAAoD,CAAC;AAC3E,UAAQ,IAAI,iGAAiG;AAC7G,UAAQ,IAAI,KAAK,GAAG,UAAU;AAC9B;;AAGF,SAAQ,IAAI,gBAAgB,GAAG,IAAI,KAAK;AAExC,KAAI;AACF,WAAS,GAAG,SAAS,EAAE,OAAO,WAAW,CAAC;AAC1C,UAAQ,IAAI,GAAG,MAAM,gBAAgB,OAAO,SAAS,CAAC;SAChD;AACN,UAAQ,MAAM,GAAG,IAAI,+BAA+B,CAAC;AACrD,UAAQ,MAAM,KAAK,GAAG,UAAU;AAChC,UAAQ,KAAK,EAAE"}
package/dist/cli.mjs CHANGED
@@ -22,6 +22,13 @@ var OatmealClient = class {
22
22
  body
23
23
  });
24
24
  }
25
+ async put(path, body, options) {
26
+ return this.request(path, {
27
+ ...options,
28
+ method: "PUT",
29
+ body
30
+ });
31
+ }
25
32
  async patch(path, body, options) {
26
33
  return this.request(path, {
27
34
  ...options,
@@ -32,7 +39,8 @@ var OatmealClient = class {
32
39
  async delete(path, options) {
33
40
  return this.request(path, {
34
41
  ...options,
35
- method: "DELETE"
42
+ method: "DELETE",
43
+ body: options?.body
36
44
  });
37
45
  }
38
46
  async request(path, options = {}) {
@@ -226,20 +234,37 @@ const BANNER = `
226
234
  ${pc.dim("(alias: hackathons)")}
227
235
 
228
236
  ${pc.dim("JUDGING")}
229
- judging criteria list <id> List criteria
230
- judging criteria create <id> Create criteria
231
- judging criteria update <id> <cid> Update criteria
232
- judging criteria delete <id> <cid> Delete criteria
233
- judging judges list <id> List judges
234
- judging judges add <id> Add a judge
235
- judging judges remove <id> <pid> Remove a judge
236
- judging assignments list <id> List assignments
237
- judging assignments create <id> Create assignment
238
- judging assignments delete <id> <aid> Delete assignment
239
- judging auto-assign <id> Auto-assign judges
240
- judging invitations list <id> List invitations
241
- judging invitations cancel <id> <iid> Cancel invitation
242
- judging pick-results <id> View pick results
237
+ judging criteria list <id> List criteria
238
+ judging criteria create <id> Create criteria
239
+ judging criteria update <id> <cid> Update criteria
240
+ judging criteria delete <id> <cid> Delete criteria
241
+ judging levels list --hackathon-id <id> --criteria-id <cid> List rubric levels
242
+ judging levels add --hackathon-id <id> --criteria-id <cid> Add a rubric level
243
+ judging levels update --hackathon-id <id> --criteria-id <cid> Update a rubric level
244
+ judging levels delete --hackathon-id <id> --criteria-id <cid> Delete a rubric level
245
+ judging judges list <id> List judges
246
+ judging judges add <id> Add a judge
247
+ judging judges remove <id> <pid> Remove a judge
248
+ judging assignments list <id> List assignments
249
+ judging assignments create <id> Create assignment
250
+ judging assignments delete <id> <aid> Delete assignment
251
+ judging auto-assign <id> Auto-assign judges
252
+ judging invitations list <id> List invitations
253
+ judging invitations cancel <id> <iid> Cancel invitation
254
+ judging track-assign <id> Assign judge to track
255
+ judging track-unassign <id> Remove judge from track
256
+ judging pick-results <id> View pick results
257
+
258
+ ${pc.dim("PRIZE TRACKS")}
259
+ tracks list <id> List prize tracks
260
+ tracks get <id> <tid> Get track details
261
+ tracks create <id> Create a track
262
+ tracks update <id> <tid> Update a track
263
+ tracks delete <id> <tid> Delete a track
264
+ tracks buckets <id> <tid> <rid> Replace bucket definitions
265
+ tracks update-round <id> <tid> <rid> Update a round
266
+ tracks activate-round <id> <tid> <rid> Activate a round
267
+ tracks calculate-results <id> <tid> <rid> Calculate round results
243
268
 
244
269
  ${pc.dim("PRIZES")}
245
270
  prizes list <id> List prizes
@@ -282,15 +307,6 @@ const BANNER = `
282
307
  schedules update <id> Update a schedule
283
308
  schedules delete <id> Delete a schedule
284
309
 
285
- ${pc.dim("ADMIN (requires API key with admin:read, admin:write, admin:scenarios scopes)")}
286
- admin stats Platform-wide statistics
287
- admin hackathons list List all hackathons across tenants
288
- admin hackathons get <id> Get hackathon details
289
- admin hackathons update <id> Update any hackathon field
290
- admin hackathons delete <id> Delete a hackathon (--yes auto-confirms name, skips interactive prompt)
291
- admin scenarios list List available test scenarios
292
- admin scenarios run <name> Run a test scenario
293
-
294
310
  ${pc.dim("GLOBAL OPTIONS")}
295
311
  --json Output as JSON
296
312
  --yes, -y Skip confirmation prompts
@@ -334,7 +350,7 @@ async function main() {
334
350
  break;
335
351
  }
336
352
  case "update": {
337
- const { runUpdate } = await import("./_chunks/update5.mjs");
353
+ const { runUpdate } = await import("./_chunks/update6.mjs");
338
354
  await runUpdate();
339
355
  return;
340
356
  }
@@ -438,6 +454,52 @@ async function main() {
438
454
  process.exit(1);
439
455
  }
440
456
  break;
457
+ case "levels": {
458
+ const levelArgs = rest.slice(3).concat(flags.json ? ["--json"] : []).concat(flags.yes ? ["--yes"] : []);
459
+ const parseLevelFlags = (a) => {
460
+ let hackathonId = "";
461
+ let criteriaId = "";
462
+ let levelId = "";
463
+ for (let i = 0; i < a.length; i++) if (a[i] === "--hackathon-id") hackathonId = a[++i];
464
+ else if (a[i] === "--criteria-id") criteriaId = a[++i];
465
+ else if (a[i] === "--level-id") levelId = a[++i];
466
+ return {
467
+ hackathonId,
468
+ criteriaId,
469
+ levelId
470
+ };
471
+ };
472
+ const levelFlags = parseLevelFlags(levelArgs);
473
+ switch (sub2) {
474
+ case "list": {
475
+ const { runLevelsList } = await import("./_chunks/levels-list.mjs");
476
+ await runLevelsList(client, levelFlags.hackathonId, levelFlags.criteriaId, { json: flags.json });
477
+ break;
478
+ }
479
+ case "add": {
480
+ const { runLevelsAdd } = await import("./_chunks/levels-add.mjs");
481
+ await runLevelsAdd(client, levelFlags.hackathonId, levelFlags.criteriaId, levelArgs);
482
+ break;
483
+ }
484
+ case "update": {
485
+ const { runLevelsUpdate } = await import("./_chunks/levels-update.mjs");
486
+ await runLevelsUpdate(client, levelFlags.hackathonId, levelFlags.criteriaId, levelFlags.levelId, levelArgs);
487
+ break;
488
+ }
489
+ case "delete": {
490
+ const { runLevelsDelete } = await import("./_chunks/levels-delete.mjs");
491
+ await runLevelsDelete(client, levelFlags.hackathonId, levelFlags.criteriaId, levelFlags.levelId, {
492
+ yes: flags.yes,
493
+ json: flags.json
494
+ });
495
+ break;
496
+ }
497
+ default:
498
+ console.error(`Unknown judging levels command: ${sub2}`);
499
+ process.exit(1);
500
+ }
501
+ break;
502
+ }
441
503
  case "judges":
442
504
  switch (sub2) {
443
505
  case "list": {
@@ -504,6 +566,16 @@ async function main() {
504
566
  process.exit(1);
505
567
  }
506
568
  break;
569
+ case "track-assign": {
570
+ const { runTrackAssign } = await import("./_chunks/track-assign.mjs");
571
+ await runTrackAssign(client, hackathonId, rest.slice(3).concat(flags.json ? ["--json"] : []));
572
+ break;
573
+ }
574
+ case "track-unassign": {
575
+ const { runTrackUnassign } = await import("./_chunks/track-unassign.mjs");
576
+ await runTrackUnassign(client, hackathonId, rest.slice(3).concat(flags.json ? ["--json"] : []).concat(flags.yes ? ["--yes"] : []));
577
+ break;
578
+ }
507
579
  case "pick-results": {
508
580
  const { runPickResults } = await import("./_chunks/pick-results.mjs");
509
581
  await runPickResults(client, hackathonId, { json: flags.json });
@@ -515,6 +587,60 @@ async function main() {
515
587
  }
516
588
  break;
517
589
  }
590
+ case "tracks": {
591
+ const client = createAuthenticatedClient(flags);
592
+ switch (sub) {
593
+ case "list": {
594
+ const { runTracksList } = await import("./_chunks/list6.mjs");
595
+ await runTracksList(client, rest[2], { json: flags.json });
596
+ break;
597
+ }
598
+ case "get": {
599
+ const { runTracksGet } = await import("./_chunks/get5.mjs");
600
+ await runTracksGet(client, rest[2], rest[3], { json: flags.json });
601
+ break;
602
+ }
603
+ case "create": {
604
+ const { runTracksCreate } = await import("./_chunks/create6.mjs");
605
+ await runTracksCreate(client, rest[2], rest.slice(3).concat(flags.json ? ["--json"] : []));
606
+ break;
607
+ }
608
+ case "update": {
609
+ const { runTracksUpdate } = await import("./_chunks/update5.mjs");
610
+ await runTracksUpdate(client, rest[2], rest[3], rest.slice(4).concat(flags.json ? ["--json"] : []));
611
+ break;
612
+ }
613
+ case "delete": {
614
+ const { runTracksDelete } = await import("./_chunks/delete5.mjs");
615
+ await runTracksDelete(client, rest[2], rest[3], { yes: flags.yes });
616
+ break;
617
+ }
618
+ case "buckets": {
619
+ const { runTracksBuckets } = await import("./_chunks/buckets.mjs");
620
+ await runTracksBuckets(client, rest[2], rest[3], rest[4], rest.slice(5).concat(flags.json ? ["--json"] : []));
621
+ break;
622
+ }
623
+ case "update-round": {
624
+ const { runTracksUpdateRound } = await import("./_chunks/update-round.mjs");
625
+ await runTracksUpdateRound(client, rest[2], rest[3], rest[4], rest.slice(5).concat(flags.json ? ["--json"] : []));
626
+ break;
627
+ }
628
+ case "activate-round": {
629
+ const { runTracksActivateRound } = await import("./_chunks/activate-round.mjs");
630
+ await runTracksActivateRound(client, rest[2], rest[3], rest[4], { json: flags.json });
631
+ break;
632
+ }
633
+ case "calculate-results": {
634
+ const { runTracksCalculateResults } = await import("./_chunks/calculate-results.mjs");
635
+ await runTracksCalculateResults(client, rest[2], rest[3], rest[4], { json: flags.json });
636
+ break;
637
+ }
638
+ default:
639
+ console.error(`Unknown tracks command: ${sub}. Run "hackathon tracks --help" for usage.`);
640
+ process.exit(1);
641
+ }
642
+ break;
643
+ }
518
644
  case "prizes": {
519
645
  const client = createAuthenticatedClient(flags);
520
646
  switch (sub) {
@@ -626,17 +752,17 @@ async function main() {
626
752
  const client = createAuthenticatedClient(flags);
627
753
  switch (sub) {
628
754
  case "list": {
629
- const { runWebhooksList } = await import("./_chunks/list6.mjs");
755
+ const { runWebhooksList } = await import("./_chunks/list7.mjs");
630
756
  await runWebhooksList(client, { json: flags.json });
631
757
  break;
632
758
  }
633
759
  case "create": {
634
- const { runWebhooksCreate } = await import("./_chunks/create6.mjs");
760
+ const { runWebhooksCreate } = await import("./_chunks/create7.mjs");
635
761
  await runWebhooksCreate(client, rest.slice(2).concat(flags.json ? ["--json"] : []));
636
762
  break;
637
763
  }
638
764
  case "delete": {
639
- const { runWebhooksDelete } = await import("./_chunks/delete5.mjs");
765
+ const { runWebhooksDelete } = await import("./_chunks/delete6.mjs");
640
766
  await runWebhooksDelete(client, rest[2], { yes: flags.yes });
641
767
  break;
642
768
  }
@@ -714,64 +840,6 @@ async function main() {
714
840
  }
715
841
  break;
716
842
  }
717
- case "admin": {
718
- const client = createAuthenticatedClient(flags);
719
- switch (sub) {
720
- case "stats": {
721
- const { runAdminStats } = await import("./_chunks/stats.mjs");
722
- await runAdminStats(client, { json: flags.json });
723
- break;
724
- }
725
- case "hackathons":
726
- switch (sub2) {
727
- case "list": {
728
- const { runAdminHackathonsList } = await import("./_chunks/hackathons-list.mjs");
729
- await runAdminHackathonsList(client, rest.slice(3), { json: flags.json });
730
- break;
731
- }
732
- case "get": {
733
- const { runAdminHackathonsGet } = await import("./_chunks/hackathons-get.mjs");
734
- await runAdminHackathonsGet(client, rest[3], { json: flags.json });
735
- break;
736
- }
737
- case "update": {
738
- const { runAdminHackathonsUpdate } = await import("./_chunks/hackathons-update.mjs");
739
- await runAdminHackathonsUpdate(client, rest[3], rest.slice(4), { json: flags.json });
740
- break;
741
- }
742
- case "delete": {
743
- const { runAdminHackathonsDelete } = await import("./_chunks/hackathons-delete.mjs");
744
- await runAdminHackathonsDelete(client, rest[3], { yes: flags.yes });
745
- break;
746
- }
747
- default:
748
- console.error(`Unknown admin hackathons command: ${sub2}`);
749
- process.exit(1);
750
- }
751
- break;
752
- case "scenarios":
753
- switch (sub2) {
754
- case "list": {
755
- const { runAdminScenariosList } = await import("./_chunks/scenarios-list.mjs");
756
- await runAdminScenariosList(client, { json: flags.json });
757
- break;
758
- }
759
- case "run": {
760
- const { runAdminScenariosRun } = await import("./_chunks/scenarios-run.mjs");
761
- await runAdminScenariosRun(client, rest[3], rest.slice(4), { json: flags.json });
762
- break;
763
- }
764
- default:
765
- console.error(`Unknown admin scenarios command: ${sub2}`);
766
- process.exit(1);
767
- }
768
- break;
769
- default:
770
- console.error(`Unknown admin command: ${sub}. Run "hackathon admin --help" for usage.`);
771
- process.exit(1);
772
- }
773
- break;
774
- }
775
843
  default:
776
844
  console.error(`Unknown command: ${command}. Run "hackathon --help" for usage.`);
777
845
  process.exit(1);