@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,60 @@
1
+ import { n as formatJson, r as formatSuccess } from "../cli.mjs";
2
+ import * as p from "@clack/prompts";
3
+ //#region src/commands/schedules/create.ts
4
+ function parseScheduleCreateOptions(args) {
5
+ const options = {};
6
+ for (let i = 0; i < args.length; i++) switch (args[i]) {
7
+ case "--name":
8
+ options.name = args[++i];
9
+ break;
10
+ case "--cron":
11
+ options.cron = args[++i];
12
+ break;
13
+ case "--json":
14
+ options.json = true;
15
+ break;
16
+ }
17
+ return options;
18
+ }
19
+ async function runSchedulesCreate(client, args) {
20
+ const options = parseScheduleCreateOptions(args);
21
+ let name = options.name;
22
+ let cron = options.cron;
23
+ if (!name && process.stdout.isTTY) {
24
+ const result = await p.text({
25
+ message: "Schedule name:",
26
+ validate: (v) => v ? void 0 : "Required"
27
+ });
28
+ if (p.isCancel(result)) return;
29
+ name = result;
30
+ }
31
+ if (!name) {
32
+ console.error("Error: --name is required");
33
+ process.exit(1);
34
+ }
35
+ if (!cron && process.stdout.isTTY) {
36
+ const result = await p.text({
37
+ message: "Cron expression:",
38
+ validate: (v) => v ? void 0 : "Required"
39
+ });
40
+ if (p.isCancel(result)) return;
41
+ cron = result;
42
+ }
43
+ if (!cron) {
44
+ console.error("Error: --cron is required");
45
+ process.exit(1);
46
+ }
47
+ const schedule = await client.post("/api/dashboard/schedules", {
48
+ name,
49
+ cron_expression: cron
50
+ });
51
+ if (options.json) {
52
+ console.log(formatJson(schedule));
53
+ return;
54
+ }
55
+ console.log(formatSuccess(`Created schedule "${schedule.name}" (${schedule.id})`));
56
+ }
57
+ //#endregion
58
+ export { runSchedulesCreate };
59
+
60
+ //# sourceMappingURL=create5.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create5.mjs","names":[],"sources":["../../src/commands/schedules/create.ts"],"sourcesContent":["import * as p from \"@clack/prompts\"\nimport type { OatmealClient } from \"../../client.js\"\nimport { formatJson, formatSuccess } from \"../../output.js\"\nimport type { Schedule } from \"../../types.js\"\n\ninterface ScheduleCreateOptions {\n name?: string\n cron?: string\n json?: boolean\n}\n\nexport function parseScheduleCreateOptions(args: string[]): ScheduleCreateOptions {\n const options: ScheduleCreateOptions = {}\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 \"--cron\":\n options.cron = args[++i]\n break\n case \"--json\":\n options.json = true\n break\n }\n }\n return options\n}\n\nexport async function runSchedulesCreate(\n client: OatmealClient,\n args: string[]\n): Promise<void> {\n const options = parseScheduleCreateOptions(args)\n\n let name = options.name\n let cron = options.cron\n\n if (!name && process.stdout.isTTY) {\n const result = await p.text({ message: \"Schedule name:\", validate: (v) => (v ? undefined : \"Required\") })\n if (p.isCancel(result)) return\n name = result\n }\n\n if (!name) {\n console.error(\"Error: --name is required\")\n process.exit(1)\n }\n\n if (!cron && process.stdout.isTTY) {\n const result = await p.text({ message: \"Cron expression:\", validate: (v) => (v ? undefined : \"Required\") })\n if (p.isCancel(result)) return\n cron = result\n }\n\n if (!cron) {\n console.error(\"Error: --cron is required\")\n process.exit(1)\n }\n\n const schedule = await client.post<Schedule>(\"/api/dashboard/schedules\", {\n name,\n cron_expression: cron,\n })\n\n if (options.json) {\n console.log(formatJson(schedule))\n return\n }\n\n console.log(formatSuccess(`Created schedule \"${schedule.name}\" (${schedule.id})`))\n}\n"],"mappings":";;;AAWA,SAAgB,2BAA2B,MAAuC;CAChF,MAAM,UAAiC,EAAE;AACzC,MAAK,IAAI,IAAI,GAAG,IAAI,KAAK,QAAQ,IAC/B,SAAQ,KAAK,IAAb;EACE,KAAK;AACH,WAAQ,OAAO,KAAK,EAAE;AACtB;EACF,KAAK;AACH,WAAQ,OAAO,KAAK,EAAE;AACtB;EACF,KAAK;AACH,WAAQ,OAAO;AACf;;AAGN,QAAO;;AAGT,eAAsB,mBACpB,QACA,MACe;CACf,MAAM,UAAU,2BAA2B,KAAK;CAEhD,IAAI,OAAO,QAAQ;CACnB,IAAI,OAAO,QAAQ;AAEnB,KAAI,CAAC,QAAQ,QAAQ,OAAO,OAAO;EACjC,MAAM,SAAS,MAAM,EAAE,KAAK;GAAE,SAAS;GAAkB,WAAW,MAAO,IAAI,KAAA,IAAY;GAAa,CAAC;AACzG,MAAI,EAAE,SAAS,OAAO,CAAE;AACxB,SAAO;;AAGT,KAAI,CAAC,MAAM;AACT,UAAQ,MAAM,4BAA4B;AAC1C,UAAQ,KAAK,EAAE;;AAGjB,KAAI,CAAC,QAAQ,QAAQ,OAAO,OAAO;EACjC,MAAM,SAAS,MAAM,EAAE,KAAK;GAAE,SAAS;GAAoB,WAAW,MAAO,IAAI,KAAA,IAAY;GAAa,CAAC;AAC3G,MAAI,EAAE,SAAS,OAAO,CAAE;AACxB,SAAO;;AAGT,KAAI,CAAC,MAAM;AACT,UAAQ,MAAM,4BAA4B;AAC1C,UAAQ,KAAK,EAAE;;CAGjB,MAAM,WAAW,MAAM,OAAO,KAAe,4BAA4B;EACvE;EACA,iBAAiB;EAClB,CAAC;AAEF,KAAI,QAAQ,MAAM;AAChB,UAAQ,IAAI,WAAW,SAAS,CAAC;AACjC;;AAGF,SAAQ,IAAI,cAAc,qBAAqB,SAAS,KAAK,KAAK,SAAS,GAAG,GAAG,CAAC"}
@@ -0,0 +1,57 @@
1
+ import { a as formatWarning, n as formatJson, r as formatSuccess } from "../cli.mjs";
2
+ import * as p from "@clack/prompts";
3
+ //#region src/commands/webhooks/create.ts
4
+ function parseWebhookCreateOptions(args) {
5
+ const options = {};
6
+ for (let i = 0; i < args.length; i++) switch (args[i]) {
7
+ case "--url":
8
+ options.url = args[++i];
9
+ break;
10
+ case "--events":
11
+ options.events = args[++i]?.split(",").map((s) => s.trim());
12
+ break;
13
+ case "--json":
14
+ options.json = true;
15
+ break;
16
+ }
17
+ return options;
18
+ }
19
+ async function runWebhooksCreate(client, args) {
20
+ const options = parseWebhookCreateOptions(args);
21
+ let url = options.url;
22
+ let events = options.events;
23
+ if (!url && process.stdout.isTTY) {
24
+ const result = await p.text({
25
+ message: "Webhook URL:",
26
+ validate: (v) => v ? void 0 : "Required"
27
+ });
28
+ if (p.isCancel(result)) return;
29
+ url = result;
30
+ }
31
+ if (!url) {
32
+ console.error("Error: --url is required");
33
+ process.exit(1);
34
+ }
35
+ if (!events?.length && process.stdout.isTTY) {
36
+ const result = await p.text({ message: "Events (comma-separated):" });
37
+ if (p.isCancel(result)) return;
38
+ events = result.split(",").map((s) => s.trim());
39
+ }
40
+ const webhook = await client.post("/api/v1/webhooks", {
41
+ url,
42
+ events
43
+ });
44
+ if (options.json) {
45
+ console.log(formatJson(webhook));
46
+ return;
47
+ }
48
+ console.log(formatSuccess(`Created webhook ${webhook.id}`));
49
+ if (webhook.signing_secret) {
50
+ console.log(formatWarning("Save this signing secret — it won't be shown again:"));
51
+ console.log(webhook.signing_secret);
52
+ }
53
+ }
54
+ //#endregion
55
+ export { runWebhooksCreate };
56
+
57
+ //# sourceMappingURL=create6.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create6.mjs","names":[],"sources":["../../src/commands/webhooks/create.ts"],"sourcesContent":["import * as p from \"@clack/prompts\"\nimport type { OatmealClient } from \"../../client.js\"\nimport { formatJson, formatSuccess, formatWarning } from \"../../output.js\"\nimport type { Webhook } from \"../../types.js\"\n\ninterface WebhookCreateOptions {\n url?: string\n events?: string[]\n json?: boolean\n}\n\nexport function parseWebhookCreateOptions(args: string[]): WebhookCreateOptions {\n const options: WebhookCreateOptions = {}\n for (let i = 0; i < args.length; i++) {\n switch (args[i]) {\n case \"--url\":\n options.url = args[++i]\n break\n case \"--events\":\n options.events = args[++i]?.split(\",\").map((s) => s.trim())\n break\n case \"--json\":\n options.json = true\n break\n }\n }\n return options\n}\n\nexport async function runWebhooksCreate(\n client: OatmealClient,\n args: string[]\n): Promise<void> {\n const options = parseWebhookCreateOptions(args)\n\n let url = options.url\n let events = options.events\n\n if (!url && process.stdout.isTTY) {\n const result = await p.text({ message: \"Webhook URL:\", validate: (v) => (v ? undefined : \"Required\") })\n if (p.isCancel(result)) return\n url = result\n }\n\n if (!url) {\n console.error(\"Error: --url is required\")\n process.exit(1)\n }\n\n if (!events?.length && process.stdout.isTTY) {\n const result = await p.text({ message: \"Events (comma-separated):\" })\n if (p.isCancel(result)) return\n events = result.split(\",\").map((s) => s.trim())\n }\n\n const webhook = await client.post<Webhook>(\"/api/v1/webhooks\", { url, events })\n\n if (options.json) {\n console.log(formatJson(webhook))\n return\n }\n\n console.log(formatSuccess(`Created webhook ${webhook.id}`))\n if (webhook.signing_secret) {\n console.log(formatWarning(\"Save this signing secret — it won't be shown again:\"))\n console.log(webhook.signing_secret)\n }\n}\n"],"mappings":";;;AAWA,SAAgB,0BAA0B,MAAsC;CAC9E,MAAM,UAAgC,EAAE;AACxC,MAAK,IAAI,IAAI,GAAG,IAAI,KAAK,QAAQ,IAC/B,SAAQ,KAAK,IAAb;EACE,KAAK;AACH,WAAQ,MAAM,KAAK,EAAE;AACrB;EACF,KAAK;AACH,WAAQ,SAAS,KAAK,EAAE,IAAI,MAAM,IAAI,CAAC,KAAK,MAAM,EAAE,MAAM,CAAC;AAC3D;EACF,KAAK;AACH,WAAQ,OAAO;AACf;;AAGN,QAAO;;AAGT,eAAsB,kBACpB,QACA,MACe;CACf,MAAM,UAAU,0BAA0B,KAAK;CAE/C,IAAI,MAAM,QAAQ;CAClB,IAAI,SAAS,QAAQ;AAErB,KAAI,CAAC,OAAO,QAAQ,OAAO,OAAO;EAChC,MAAM,SAAS,MAAM,EAAE,KAAK;GAAE,SAAS;GAAgB,WAAW,MAAO,IAAI,KAAA,IAAY;GAAa,CAAC;AACvG,MAAI,EAAE,SAAS,OAAO,CAAE;AACxB,QAAM;;AAGR,KAAI,CAAC,KAAK;AACR,UAAQ,MAAM,2BAA2B;AACzC,UAAQ,KAAK,EAAE;;AAGjB,KAAI,CAAC,QAAQ,UAAU,QAAQ,OAAO,OAAO;EAC3C,MAAM,SAAS,MAAM,EAAE,KAAK,EAAE,SAAS,6BAA6B,CAAC;AACrE,MAAI,EAAE,SAAS,OAAO,CAAE;AACxB,WAAS,OAAO,MAAM,IAAI,CAAC,KAAK,MAAM,EAAE,MAAM,CAAC;;CAGjD,MAAM,UAAU,MAAM,OAAO,KAAc,oBAAoB;EAAE;EAAK;EAAQ,CAAC;AAE/E,KAAI,QAAQ,MAAM;AAChB,UAAQ,IAAI,WAAW,QAAQ,CAAC;AAChC;;AAGF,SAAQ,IAAI,cAAc,mBAAmB,QAAQ,KAAK,CAAC;AAC3D,KAAI,QAAQ,gBAAgB;AAC1B,UAAQ,IAAI,cAAc,sDAAsD,CAAC;AACjF,UAAQ,IAAI,QAAQ,eAAe"}
@@ -0,0 +1,77 @@
1
+ import { n as formatJson, r as formatSuccess } from "../cli.mjs";
2
+ import * as p from "@clack/prompts";
3
+ //#region src/commands/judging/criteria-create.ts
4
+ function parseCriteriaCreateOptions(args) {
5
+ const options = {};
6
+ for (let i = 0; i < args.length; i++) switch (args[i]) {
7
+ case "--name":
8
+ options.name = args[++i];
9
+ break;
10
+ case "--description":
11
+ options.description = args[++i];
12
+ break;
13
+ case "--max-score":
14
+ options.maxScore = parseInt(args[++i], 10);
15
+ break;
16
+ case "--weight":
17
+ options.weight = parseFloat(args[++i]);
18
+ break;
19
+ case "--json":
20
+ options.json = true;
21
+ break;
22
+ }
23
+ return options;
24
+ }
25
+ async function runCriteriaCreate(client, hackathonId, args) {
26
+ const options = parseCriteriaCreateOptions(args);
27
+ let name = options.name;
28
+ let maxScore = options.maxScore;
29
+ let weight = options.weight;
30
+ if (!name && process.stdout.isTTY) {
31
+ const result = await p.text({
32
+ message: "Criteria name:",
33
+ validate: (v) => v ? void 0 : "Required"
34
+ });
35
+ if (p.isCancel(result)) return;
36
+ name = result;
37
+ }
38
+ if (!name) {
39
+ console.error("Error: --name is required");
40
+ process.exit(1);
41
+ }
42
+ if (maxScore === void 0 && process.stdout.isTTY) {
43
+ const result = await p.text({
44
+ message: "Max score:",
45
+ initialValue: "10"
46
+ });
47
+ if (p.isCancel(result)) return;
48
+ maxScore = parseInt(result, 10);
49
+ }
50
+ if (maxScore !== void 0 && (isNaN(maxScore) || maxScore <= 0)) {
51
+ console.error("Error: --max-score must be a positive integer");
52
+ process.exit(1);
53
+ }
54
+ if (weight === void 0 && process.stdout.isTTY) {
55
+ const result = await p.text({
56
+ message: "Weight:",
57
+ initialValue: "1"
58
+ });
59
+ if (p.isCancel(result)) return;
60
+ weight = parseFloat(result);
61
+ }
62
+ const criteria = await client.post(`/api/dashboard/hackathons/${hackathonId}/judging/criteria`, {
63
+ name,
64
+ description: options.description,
65
+ max_score: maxScore ?? 10,
66
+ weight: weight ?? 1
67
+ });
68
+ if (options.json) {
69
+ console.log(formatJson(criteria));
70
+ return;
71
+ }
72
+ console.log(formatSuccess(`Created criteria "${criteria.name}" (${criteria.id})`));
73
+ }
74
+ //#endregion
75
+ export { runCriteriaCreate };
76
+
77
+ //# sourceMappingURL=criteria-create.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"criteria-create.mjs","names":[],"sources":["../../src/commands/judging/criteria-create.ts"],"sourcesContent":["import * as p from \"@clack/prompts\"\nimport type { OatmealClient } from \"../../client.js\"\nimport { formatJson, formatSuccess } from \"../../output.js\"\nimport type { JudgingCriteria } from \"../../types.js\"\n\ninterface CriteriaCreateOptions {\n name?: string\n description?: string\n maxScore?: number\n weight?: number\n json?: boolean\n}\n\nexport function parseCriteriaCreateOptions(args: string[]): CriteriaCreateOptions {\n const options: CriteriaCreateOptions = {}\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 \"--max-score\":\n options.maxScore = parseInt(args[++i], 10)\n break\n case \"--weight\":\n options.weight = parseFloat(args[++i])\n break\n case \"--json\":\n options.json = true\n break\n }\n }\n return options\n}\n\nexport async function runCriteriaCreate(\n client: OatmealClient,\n hackathonId: string,\n args: string[]\n): Promise<void> {\n const options = parseCriteriaCreateOptions(args)\n\n let name = options.name\n let maxScore = options.maxScore\n let weight = options.weight\n\n if (!name && process.stdout.isTTY) {\n const result = await p.text({ message: \"Criteria name:\", validate: (v) => (v ? undefined : \"Required\") })\n if (p.isCancel(result)) return\n name = result\n }\n\n if (!name) {\n console.error(\"Error: --name is required\")\n process.exit(1)\n }\n\n if (maxScore === undefined && process.stdout.isTTY) {\n const result = await p.text({ message: \"Max score:\", initialValue: \"10\" })\n if (p.isCancel(result)) return\n maxScore = parseInt(result, 10)\n }\n\n if (maxScore !== undefined && (isNaN(maxScore) || maxScore <= 0)) {\n console.error(\"Error: --max-score must be a positive integer\")\n process.exit(1)\n }\n\n if (weight === undefined && process.stdout.isTTY) {\n const result = await p.text({ message: \"Weight:\", initialValue: \"1\" })\n if (p.isCancel(result)) return\n weight = parseFloat(result)\n }\n\n const criteria = await client.post<JudgingCriteria>(\n `/api/dashboard/hackathons/${hackathonId}/judging/criteria`,\n {\n name,\n description: options.description,\n max_score: maxScore ?? 10,\n weight: weight ?? 1,\n }\n )\n\n if (options.json) {\n console.log(formatJson(criteria))\n return\n }\n\n console.log(formatSuccess(`Created criteria \"${criteria.name}\" (${criteria.id})`))\n}\n"],"mappings":";;;AAaA,SAAgB,2BAA2B,MAAuC;CAChF,MAAM,UAAiC,EAAE;AACzC,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,WAAW,SAAS,KAAK,EAAE,IAAI,GAAG;AAC1C;EACF,KAAK;AACH,WAAQ,SAAS,WAAW,KAAK,EAAE,GAAG;AACtC;EACF,KAAK;AACH,WAAQ,OAAO;AACf;;AAGN,QAAO;;AAGT,eAAsB,kBACpB,QACA,aACA,MACe;CACf,MAAM,UAAU,2BAA2B,KAAK;CAEhD,IAAI,OAAO,QAAQ;CACnB,IAAI,WAAW,QAAQ;CACvB,IAAI,SAAS,QAAQ;AAErB,KAAI,CAAC,QAAQ,QAAQ,OAAO,OAAO;EACjC,MAAM,SAAS,MAAM,EAAE,KAAK;GAAE,SAAS;GAAkB,WAAW,MAAO,IAAI,KAAA,IAAY;GAAa,CAAC;AACzG,MAAI,EAAE,SAAS,OAAO,CAAE;AACxB,SAAO;;AAGT,KAAI,CAAC,MAAM;AACT,UAAQ,MAAM,4BAA4B;AAC1C,UAAQ,KAAK,EAAE;;AAGjB,KAAI,aAAa,KAAA,KAAa,QAAQ,OAAO,OAAO;EAClD,MAAM,SAAS,MAAM,EAAE,KAAK;GAAE,SAAS;GAAc,cAAc;GAAM,CAAC;AAC1E,MAAI,EAAE,SAAS,OAAO,CAAE;AACxB,aAAW,SAAS,QAAQ,GAAG;;AAGjC,KAAI,aAAa,KAAA,MAAc,MAAM,SAAS,IAAI,YAAY,IAAI;AAChE,UAAQ,MAAM,gDAAgD;AAC9D,UAAQ,KAAK,EAAE;;AAGjB,KAAI,WAAW,KAAA,KAAa,QAAQ,OAAO,OAAO;EAChD,MAAM,SAAS,MAAM,EAAE,KAAK;GAAE,SAAS;GAAW,cAAc;GAAK,CAAC;AACtE,MAAI,EAAE,SAAS,OAAO,CAAE;AACxB,WAAS,WAAW,OAAO;;CAG7B,MAAM,WAAW,MAAM,OAAO,KAC5B,6BAA6B,YAAY,oBACzC;EACE;EACA,aAAa,QAAQ;EACrB,WAAW,YAAY;EACvB,QAAQ,UAAU;EACnB,CACF;AAED,KAAI,QAAQ,MAAM;AAChB,UAAQ,IAAI,WAAW,SAAS,CAAC;AACjC;;AAGF,SAAQ,IAAI,cAAc,qBAAqB,SAAS,KAAK,KAAK,SAAS,GAAG,GAAG,CAAC"}
@@ -0,0 +1,22 @@
1
+ import { r as formatSuccess } from "../cli.mjs";
2
+ import * as p from "@clack/prompts";
3
+ //#region src/commands/judging/criteria-delete.ts
4
+ async function runCriteriaDelete(client, hackathonId, criteriaId, options) {
5
+ if (!criteriaId) {
6
+ console.error("Usage: oatmeal judging criteria delete <hackathon-id> <criteria-id>");
7
+ process.exit(1);
8
+ }
9
+ if (!options.yes) {
10
+ const confirm = await p.confirm({ message: `Delete criteria ${criteriaId}?` });
11
+ if (p.isCancel(confirm) || !confirm) {
12
+ p.log.info("Cancelled.");
13
+ return;
14
+ }
15
+ }
16
+ await client.delete(`/api/dashboard/hackathons/${hackathonId}/judging/criteria/${criteriaId}`);
17
+ console.log(formatSuccess(`Deleted criteria ${criteriaId}`));
18
+ }
19
+ //#endregion
20
+ export { runCriteriaDelete };
21
+
22
+ //# sourceMappingURL=criteria-delete.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"criteria-delete.mjs","names":[],"sources":["../../src/commands/judging/criteria-delete.ts"],"sourcesContent":["import * as p from \"@clack/prompts\"\nimport type { OatmealClient } from \"../../client.js\"\nimport { formatSuccess } from \"../../output.js\"\n\nexport async function runCriteriaDelete(\n client: OatmealClient,\n hackathonId: string,\n criteriaId: string,\n options: { yes?: boolean }\n): Promise<void> {\n if (!criteriaId) {\n console.error(\"Usage: oatmeal judging criteria delete <hackathon-id> <criteria-id>\")\n process.exit(1)\n }\n\n if (!options.yes) {\n const confirm = await p.confirm({ message: `Delete criteria ${criteriaId}?` })\n if (p.isCancel(confirm) || !confirm) {\n p.log.info(\"Cancelled.\")\n return\n }\n }\n\n await client.delete(\n `/api/dashboard/hackathons/${hackathonId}/judging/criteria/${criteriaId}`\n )\n console.log(formatSuccess(`Deleted criteria ${criteriaId}`))\n}\n"],"mappings":";;;AAIA,eAAsB,kBACpB,QACA,aACA,YACA,SACe;AACf,KAAI,CAAC,YAAY;AACf,UAAQ,MAAM,sEAAsE;AACpF,UAAQ,KAAK,EAAE;;AAGjB,KAAI,CAAC,QAAQ,KAAK;EAChB,MAAM,UAAU,MAAM,EAAE,QAAQ,EAAE,SAAS,mBAAmB,WAAW,IAAI,CAAC;AAC9E,MAAI,EAAE,SAAS,QAAQ,IAAI,CAAC,SAAS;AACnC,KAAE,IAAI,KAAK,aAAa;AACxB;;;AAIJ,OAAM,OAAO,OACX,6BAA6B,YAAY,oBAAoB,aAC9D;AACD,SAAQ,IAAI,cAAc,oBAAoB,aAAa,CAAC"}
@@ -0,0 +1,35 @@
1
+ import { i as formatTable, n as formatJson } from "../cli.mjs";
2
+ //#region src/commands/judging/criteria-list.ts
3
+ async function runCriteriaList(client, hackathonId, options) {
4
+ const data = await client.get(`/api/dashboard/hackathons/${hackathonId}/judging/criteria`);
5
+ if (options.json) {
6
+ console.log(formatJson(data));
7
+ return;
8
+ }
9
+ if (!data.criteria?.length) {
10
+ console.log("No judging criteria found.");
11
+ return;
12
+ }
13
+ console.log(formatTable(data.criteria, [
14
+ {
15
+ key: "name",
16
+ label: "Name"
17
+ },
18
+ {
19
+ key: "max_score",
20
+ label: "Max Score"
21
+ },
22
+ {
23
+ key: "weight",
24
+ label: "Weight"
25
+ },
26
+ {
27
+ key: "description",
28
+ label: "Description"
29
+ }
30
+ ]));
31
+ }
32
+ //#endregion
33
+ export { runCriteriaList };
34
+
35
+ //# sourceMappingURL=criteria-list.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"criteria-list.mjs","names":[],"sources":["../../src/commands/judging/criteria-list.ts"],"sourcesContent":["import type { OatmealClient } from \"../../client.js\"\nimport { formatJson, formatTable } from \"../../output.js\"\nimport type { JudgingCriteria } from \"../../types.js\"\n\nexport async function runCriteriaList(\n client: OatmealClient,\n hackathonId: string,\n options: { json?: boolean }\n): Promise<void> {\n const data = await client.get<{ criteria: JudgingCriteria[] }>(\n `/api/dashboard/hackathons/${hackathonId}/judging/criteria`\n )\n\n if (options.json) {\n console.log(formatJson(data))\n return\n }\n\n if (!data.criteria?.length) {\n console.log(\"No judging criteria found.\")\n return\n }\n\n console.log(\n formatTable(data.criteria, [\n { key: \"name\", label: \"Name\" },\n { key: \"max_score\", label: \"Max Score\" },\n { key: \"weight\", label: \"Weight\" },\n { key: \"description\", label: \"Description\" },\n ])\n )\n}\n"],"mappings":";;AAIA,eAAsB,gBACpB,QACA,aACA,SACe;CACf,MAAM,OAAO,MAAM,OAAO,IACxB,6BAA6B,YAAY,mBAC1C;AAED,KAAI,QAAQ,MAAM;AAChB,UAAQ,IAAI,WAAW,KAAK,CAAC;AAC7B;;AAGF,KAAI,CAAC,KAAK,UAAU,QAAQ;AAC1B,UAAQ,IAAI,6BAA6B;AACzC;;AAGF,SAAQ,IACN,YAAY,KAAK,UAAU;EACzB;GAAE,KAAK;GAAQ,OAAO;GAAQ;EAC9B;GAAE,KAAK;GAAa,OAAO;GAAa;EACxC;GAAE,KAAK;GAAU,OAAO;GAAU;EAClC;GAAE,KAAK;GAAe,OAAO;;EAC9B,CAAC,CACH"}
@@ -0,0 +1,49 @@
1
+ import { n as formatJson, r as formatSuccess } from "../cli.mjs";
2
+ //#region src/commands/judging/criteria-update.ts
3
+ function parseCriteriaUpdateOptions(args) {
4
+ const options = {};
5
+ for (let i = 0; i < args.length; i++) switch (args[i]) {
6
+ case "--name":
7
+ options.name = args[++i];
8
+ break;
9
+ case "--description":
10
+ options.description = args[++i];
11
+ break;
12
+ case "--max-score":
13
+ options.maxScore = parseInt(args[++i], 10);
14
+ break;
15
+ case "--weight":
16
+ options.weight = parseFloat(args[++i]);
17
+ break;
18
+ case "--json":
19
+ options.json = true;
20
+ break;
21
+ }
22
+ return options;
23
+ }
24
+ async function runCriteriaUpdate(client, hackathonId, criteriaId, args) {
25
+ if (!criteriaId) {
26
+ console.error("Usage: oatmeal judging criteria update <hackathon-id> <criteria-id> [--name ...] [--max-score ...]");
27
+ process.exit(1);
28
+ }
29
+ const options = parseCriteriaUpdateOptions(args);
30
+ const body = {};
31
+ if (options.name) body.name = options.name;
32
+ if (options.description) body.description = options.description;
33
+ if (options.maxScore !== void 0) body.max_score = options.maxScore;
34
+ if (options.weight !== void 0) body.weight = options.weight;
35
+ if (Object.keys(body).length === 0) {
36
+ console.error("Error: provide at least one field to update");
37
+ process.exit(1);
38
+ }
39
+ const criteria = await client.patch(`/api/dashboard/hackathons/${hackathonId}/judging/criteria/${criteriaId}`, body);
40
+ if (options.json) {
41
+ console.log(formatJson(criteria));
42
+ return;
43
+ }
44
+ console.log(formatSuccess(`Updated criteria "${criteria.name}"`));
45
+ }
46
+ //#endregion
47
+ export { runCriteriaUpdate };
48
+
49
+ //# sourceMappingURL=criteria-update.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"criteria-update.mjs","names":[],"sources":["../../src/commands/judging/criteria-update.ts"],"sourcesContent":["import type { OatmealClient } from \"../../client.js\"\nimport { formatJson, formatSuccess } from \"../../output.js\"\nimport type { JudgingCriteria } from \"../../types.js\"\n\ninterface CriteriaUpdateOptions {\n name?: string\n description?: string\n maxScore?: number\n weight?: number\n json?: boolean\n}\n\nexport function parseCriteriaUpdateOptions(args: string[]): CriteriaUpdateOptions {\n const options: CriteriaUpdateOptions = {}\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 \"--max-score\":\n options.maxScore = parseInt(args[++i], 10)\n break\n case \"--weight\":\n options.weight = parseFloat(args[++i])\n break\n case \"--json\":\n options.json = true\n break\n }\n }\n return options\n}\n\nexport async function runCriteriaUpdate(\n client: OatmealClient,\n hackathonId: string,\n criteriaId: string,\n args: string[]\n): Promise<void> {\n if (!criteriaId) {\n console.error(\"Usage: oatmeal judging criteria update <hackathon-id> <criteria-id> [--name ...] [--max-score ...]\")\n process.exit(1)\n }\n\n const options = parseCriteriaUpdateOptions(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.maxScore !== undefined) body.max_score = options.maxScore\n if (options.weight !== undefined) body.weight = options.weight\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 criteria = await client.patch<JudgingCriteria>(\n `/api/dashboard/hackathons/${hackathonId}/judging/criteria/${criteriaId}`,\n body\n )\n\n if (options.json) {\n console.log(formatJson(criteria))\n return\n }\n\n console.log(formatSuccess(`Updated criteria \"${criteria.name}\"`))\n}\n"],"mappings":";;AAYA,SAAgB,2BAA2B,MAAuC;CAChF,MAAM,UAAiC,EAAE;AACzC,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,WAAW,SAAS,KAAK,EAAE,IAAI,GAAG;AAC1C;EACF,KAAK;AACH,WAAQ,SAAS,WAAW,KAAK,EAAE,GAAG;AACtC;EACF,KAAK;AACH,WAAQ,OAAO;AACf;;AAGN,QAAO;;AAGT,eAAsB,kBACpB,QACA,aACA,YACA,MACe;AACf,KAAI,CAAC,YAAY;AACf,UAAQ,MAAM,qGAAqG;AACnH,UAAQ,KAAK,EAAE;;CAGjB,MAAM,UAAU,2BAA2B,KAAK;CAChD,MAAM,OAAgC,EAAE;AACxC,KAAI,QAAQ,KAAM,MAAK,OAAO,QAAQ;AACtC,KAAI,QAAQ,YAAa,MAAK,cAAc,QAAQ;AACpD,KAAI,QAAQ,aAAa,KAAA,EAAW,MAAK,YAAY,QAAQ;AAC7D,KAAI,QAAQ,WAAW,KAAA,EAAW,MAAK,SAAS,QAAQ;AAExD,KAAI,OAAO,KAAK,KAAK,CAAC,WAAW,GAAG;AAClC,UAAQ,MAAM,8CAA8C;AAC5D,UAAQ,KAAK,EAAE;;CAGjB,MAAM,WAAW,MAAM,OAAO,MAC5B,6BAA6B,YAAY,oBAAoB,cAC7D,KACD;AAED,KAAI,QAAQ,MAAM;AAChB,UAAQ,IAAI,WAAW,SAAS,CAAC;AACjC;;AAGF,SAAQ,IAAI,cAAc,qBAAqB,SAAS,KAAK,GAAG,CAAC"}
@@ -0,0 +1,24 @@
1
+ import { r as formatSuccess } from "../cli.mjs";
2
+ import { t as resolveHackathonId } from "./resolve.mjs";
3
+ import * as p from "@clack/prompts";
4
+ //#region src/commands/hackathons/delete.ts
5
+ async function runHackathonsDelete(client, idOrSlug, options) {
6
+ if (!idOrSlug) {
7
+ console.error("Usage: oatmeal hackathons delete <id-or-slug>");
8
+ process.exit(1);
9
+ }
10
+ const id = await resolveHackathonId(client, idOrSlug);
11
+ if (!options.yes) {
12
+ const confirm = await p.confirm({ message: `Delete hackathon ${idOrSlug}? This cannot be undone.` });
13
+ if (p.isCancel(confirm) || !confirm) {
14
+ p.log.info("Cancelled.");
15
+ return;
16
+ }
17
+ }
18
+ await client.delete(`/api/dashboard/hackathons/${id}`);
19
+ console.log(formatSuccess(`Deleted hackathon ${idOrSlug}`));
20
+ }
21
+ //#endregion
22
+ export { runHackathonsDelete };
23
+
24
+ //# sourceMappingURL=delete.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"delete.mjs","names":[],"sources":["../../src/commands/hackathons/delete.ts"],"sourcesContent":["import * as p from \"@clack/prompts\"\nimport type { OatmealClient } from \"../../client.js\"\nimport { formatSuccess } from \"../../output.js\"\nimport { resolveHackathonId } from \"./resolve.js\"\n\nexport async function runHackathonsDelete(\n client: OatmealClient,\n idOrSlug: string,\n options: { yes?: boolean }\n): Promise<void> {\n if (!idOrSlug) {\n console.error(\"Usage: oatmeal hackathons delete <id-or-slug>\")\n process.exit(1)\n }\n\n const id = await resolveHackathonId(client, idOrSlug)\n\n if (!options.yes) {\n const confirm = await p.confirm({\n message: `Delete hackathon ${idOrSlug}? This cannot be undone.`,\n })\n if (p.isCancel(confirm) || !confirm) {\n p.log.info(\"Cancelled.\")\n return\n }\n }\n\n await client.delete(`/api/dashboard/hackathons/${id}`)\n console.log(formatSuccess(`Deleted hackathon ${idOrSlug}`))\n}\n"],"mappings":";;;;AAKA,eAAsB,oBACpB,QACA,UACA,SACe;AACf,KAAI,CAAC,UAAU;AACb,UAAQ,MAAM,gDAAgD;AAC9D,UAAQ,KAAK,EAAE;;CAGjB,MAAM,KAAK,MAAM,mBAAmB,QAAQ,SAAS;AAErD,KAAI,CAAC,QAAQ,KAAK;EAChB,MAAM,UAAU,MAAM,EAAE,QAAQ,EAC9B,SAAS,oBAAoB,SAAS,2BACvC,CAAC;AACF,MAAI,EAAE,SAAS,QAAQ,IAAI,CAAC,SAAS;AACnC,KAAE,IAAI,KAAK,aAAa;AACxB;;;AAIJ,OAAM,OAAO,OAAO,6BAA6B,KAAK;AACtD,SAAQ,IAAI,cAAc,qBAAqB,WAAW,CAAC"}
@@ -0,0 +1,22 @@
1
+ import { r as formatSuccess } from "../cli.mjs";
2
+ import * as p from "@clack/prompts";
3
+ //#region src/commands/judge-display/delete.ts
4
+ async function runJudgeDisplayDelete(client, hackathonId, profileId, options) {
5
+ if (!profileId) {
6
+ console.error("Usage: oatmeal judge-display delete <hackathon-id> <profile-id>");
7
+ process.exit(1);
8
+ }
9
+ if (!options.yes) {
10
+ const confirm = await p.confirm({ message: `Delete judge display profile ${profileId}?` });
11
+ if (p.isCancel(confirm) || !confirm) {
12
+ p.log.info("Cancelled.");
13
+ return;
14
+ }
15
+ }
16
+ await client.delete(`/api/dashboard/hackathons/${hackathonId}/judges/display/${profileId}`);
17
+ console.log(formatSuccess(`Deleted judge display profile ${profileId}`));
18
+ }
19
+ //#endregion
20
+ export { runJudgeDisplayDelete };
21
+
22
+ //# sourceMappingURL=delete2.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"delete2.mjs","names":[],"sources":["../../src/commands/judge-display/delete.ts"],"sourcesContent":["import * as p from \"@clack/prompts\"\nimport type { OatmealClient } from \"../../client.js\"\nimport { formatSuccess } from \"../../output.js\"\n\nexport async function runJudgeDisplayDelete(\n client: OatmealClient,\n hackathonId: string,\n profileId: string,\n options: { yes?: boolean }\n): Promise<void> {\n if (!profileId) {\n console.error(\"Usage: oatmeal judge-display delete <hackathon-id> <profile-id>\")\n process.exit(1)\n }\n\n if (!options.yes) {\n const confirm = await p.confirm({ message: `Delete judge display profile ${profileId}?` })\n if (p.isCancel(confirm) || !confirm) {\n p.log.info(\"Cancelled.\")\n return\n }\n }\n\n await client.delete(\n `/api/dashboard/hackathons/${hackathonId}/judges/display/${profileId}`\n )\n console.log(formatSuccess(`Deleted judge display profile ${profileId}`))\n}\n"],"mappings":";;;AAIA,eAAsB,sBACpB,QACA,aACA,WACA,SACe;AACf,KAAI,CAAC,WAAW;AACd,UAAQ,MAAM,kEAAkE;AAChF,UAAQ,KAAK,EAAE;;AAGjB,KAAI,CAAC,QAAQ,KAAK;EAChB,MAAM,UAAU,MAAM,EAAE,QAAQ,EAAE,SAAS,gCAAgC,UAAU,IAAI,CAAC;AAC1F,MAAI,EAAE,SAAS,QAAQ,IAAI,CAAC,SAAS;AACnC,KAAE,IAAI,KAAK,aAAa;AACxB;;;AAIJ,OAAM,OAAO,OACX,6BAA6B,YAAY,kBAAkB,YAC5D;AACD,SAAQ,IAAI,cAAc,iCAAiC,YAAY,CAAC"}
@@ -0,0 +1,22 @@
1
+ import { r as formatSuccess } from "../cli.mjs";
2
+ import * as p from "@clack/prompts";
3
+ //#region src/commands/prizes/delete.ts
4
+ async function runPrizesDelete(client, hackathonId, prizeId, options) {
5
+ if (!prizeId) {
6
+ console.error("Usage: oatmeal prizes delete <hackathon-id> <prize-id>");
7
+ process.exit(1);
8
+ }
9
+ if (!options.yes) {
10
+ const confirm = await p.confirm({ message: `Delete prize ${prizeId}?` });
11
+ if (p.isCancel(confirm) || !confirm) {
12
+ p.log.info("Cancelled.");
13
+ return;
14
+ }
15
+ }
16
+ await client.delete(`/api/dashboard/hackathons/${hackathonId}/prizes/${prizeId}`);
17
+ console.log(formatSuccess(`Deleted prize ${prizeId}`));
18
+ }
19
+ //#endregion
20
+ export { runPrizesDelete };
21
+
22
+ //# sourceMappingURL=delete3.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"delete3.mjs","names":[],"sources":["../../src/commands/prizes/delete.ts"],"sourcesContent":["import * as p from \"@clack/prompts\"\nimport type { OatmealClient } from \"../../client.js\"\nimport { formatSuccess } from \"../../output.js\"\n\nexport async function runPrizesDelete(\n client: OatmealClient,\n hackathonId: string,\n prizeId: string,\n options: { yes?: boolean }\n): Promise<void> {\n if (!prizeId) {\n console.error(\"Usage: oatmeal prizes delete <hackathon-id> <prize-id>\")\n process.exit(1)\n }\n\n if (!options.yes) {\n const confirm = await p.confirm({ message: `Delete prize ${prizeId}?` })\n if (p.isCancel(confirm) || !confirm) {\n p.log.info(\"Cancelled.\")\n return\n }\n }\n\n await client.delete(`/api/dashboard/hackathons/${hackathonId}/prizes/${prizeId}`)\n console.log(formatSuccess(`Deleted prize ${prizeId}`))\n}\n"],"mappings":";;;AAIA,eAAsB,gBACpB,QACA,aACA,SACA,SACe;AACf,KAAI,CAAC,SAAS;AACZ,UAAQ,MAAM,yDAAyD;AACvE,UAAQ,KAAK,EAAE;;AAGjB,KAAI,CAAC,QAAQ,KAAK;EAChB,MAAM,UAAU,MAAM,EAAE,QAAQ,EAAE,SAAS,gBAAgB,QAAQ,IAAI,CAAC;AACxE,MAAI,EAAE,SAAS,QAAQ,IAAI,CAAC,SAAS;AACnC,KAAE,IAAI,KAAK,aAAa;AACxB;;;AAIJ,OAAM,OAAO,OAAO,6BAA6B,YAAY,UAAU,UAAU;AACjF,SAAQ,IAAI,cAAc,iBAAiB,UAAU,CAAC"}
@@ -0,0 +1,22 @@
1
+ import { r as formatSuccess } from "../cli.mjs";
2
+ import * as p from "@clack/prompts";
3
+ //#region src/commands/schedules/delete.ts
4
+ async function runSchedulesDelete(client, scheduleId, options) {
5
+ if (!scheduleId) {
6
+ console.error("Usage: oatmeal schedules delete <schedule-id>");
7
+ process.exit(1);
8
+ }
9
+ if (!options.yes) {
10
+ const confirm = await p.confirm({ message: `Delete schedule ${scheduleId}?` });
11
+ if (p.isCancel(confirm) || !confirm) {
12
+ p.log.info("Cancelled.");
13
+ return;
14
+ }
15
+ }
16
+ await client.delete(`/api/dashboard/schedules/${scheduleId}`);
17
+ console.log(formatSuccess(`Deleted schedule ${scheduleId}`));
18
+ }
19
+ //#endregion
20
+ export { runSchedulesDelete };
21
+
22
+ //# sourceMappingURL=delete4.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"delete4.mjs","names":[],"sources":["../../src/commands/schedules/delete.ts"],"sourcesContent":["import * as p from \"@clack/prompts\"\nimport type { OatmealClient } from \"../../client.js\"\nimport { formatSuccess } from \"../../output.js\"\n\nexport async function runSchedulesDelete(\n client: OatmealClient,\n scheduleId: string,\n options: { yes?: boolean }\n): Promise<void> {\n if (!scheduleId) {\n console.error(\"Usage: oatmeal schedules delete <schedule-id>\")\n process.exit(1)\n }\n\n if (!options.yes) {\n const confirm = await p.confirm({ message: `Delete schedule ${scheduleId}?` })\n if (p.isCancel(confirm) || !confirm) {\n p.log.info(\"Cancelled.\")\n return\n }\n }\n\n await client.delete(`/api/dashboard/schedules/${scheduleId}`)\n console.log(formatSuccess(`Deleted schedule ${scheduleId}`))\n}\n"],"mappings":";;;AAIA,eAAsB,mBACpB,QACA,YACA,SACe;AACf,KAAI,CAAC,YAAY;AACf,UAAQ,MAAM,gDAAgD;AAC9D,UAAQ,KAAK,EAAE;;AAGjB,KAAI,CAAC,QAAQ,KAAK;EAChB,MAAM,UAAU,MAAM,EAAE,QAAQ,EAAE,SAAS,mBAAmB,WAAW,IAAI,CAAC;AAC9E,MAAI,EAAE,SAAS,QAAQ,IAAI,CAAC,SAAS;AACnC,KAAE,IAAI,KAAK,aAAa;AACxB;;;AAIJ,OAAM,OAAO,OAAO,4BAA4B,aAAa;AAC7D,SAAQ,IAAI,cAAc,oBAAoB,aAAa,CAAC"}
@@ -0,0 +1,22 @@
1
+ import { r as formatSuccess } from "../cli.mjs";
2
+ import * as p from "@clack/prompts";
3
+ //#region src/commands/webhooks/delete.ts
4
+ async function runWebhooksDelete(client, webhookId, options) {
5
+ if (!webhookId) {
6
+ console.error("Usage: oatmeal webhooks delete <webhook-id>");
7
+ process.exit(1);
8
+ }
9
+ if (!options.yes) {
10
+ const confirm = await p.confirm({ message: `Delete webhook ${webhookId}?` });
11
+ if (p.isCancel(confirm) || !confirm) {
12
+ p.log.info("Cancelled.");
13
+ return;
14
+ }
15
+ }
16
+ await client.delete(`/api/v1/webhooks/${webhookId}`);
17
+ console.log(formatSuccess(`Deleted webhook ${webhookId}`));
18
+ }
19
+ //#endregion
20
+ export { runWebhooksDelete };
21
+
22
+ //# sourceMappingURL=delete5.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"delete5.mjs","names":[],"sources":["../../src/commands/webhooks/delete.ts"],"sourcesContent":["import * as p from \"@clack/prompts\"\nimport type { OatmealClient } from \"../../client.js\"\nimport { formatSuccess } from \"../../output.js\"\n\nexport async function runWebhooksDelete(\n client: OatmealClient,\n webhookId: string,\n options: { yes?: boolean }\n): Promise<void> {\n if (!webhookId) {\n console.error(\"Usage: oatmeal webhooks delete <webhook-id>\")\n process.exit(1)\n }\n\n if (!options.yes) {\n const confirm = await p.confirm({ message: `Delete webhook ${webhookId}?` })\n if (p.isCancel(confirm) || !confirm) {\n p.log.info(\"Cancelled.\")\n return\n }\n }\n\n await client.delete(`/api/v1/webhooks/${webhookId}`)\n console.log(formatSuccess(`Deleted webhook ${webhookId}`))\n}\n"],"mappings":";;;AAIA,eAAsB,kBACpB,QACA,WACA,SACe;AACf,KAAI,CAAC,WAAW;AACd,UAAQ,MAAM,8CAA8C;AAC5D,UAAQ,KAAK,EAAE;;AAGjB,KAAI,CAAC,QAAQ,KAAK;EAChB,MAAM,UAAU,MAAM,EAAE,QAAQ,EAAE,SAAS,kBAAkB,UAAU,IAAI,CAAC;AAC5E,MAAI,EAAE,SAAS,QAAQ,IAAI,CAAC,SAAS;AACnC,KAAE,IAAI,KAAK,aAAa;AACxB;;;AAIJ,OAAM,OAAO,OAAO,oBAAoB,YAAY;AACpD,SAAQ,IAAI,cAAc,mBAAmB,YAAY,CAAC"}
@@ -0,0 +1,61 @@
1
+ import { n as formatJson, t as formatDetail } from "../cli.mjs";
2
+ import { t as resolveHackathonId } from "./resolve.mjs";
3
+ //#region src/commands/hackathons/get.ts
4
+ async function runHackathonsGet(client, idOrSlug, options) {
5
+ if (!idOrSlug) {
6
+ console.error("Usage: oatmeal hackathons get <id-or-slug>");
7
+ process.exit(1);
8
+ }
9
+ const id = await resolveHackathonId(client, idOrSlug);
10
+ const hackathon = await client.get(`/api/dashboard/hackathons/${id}`);
11
+ if (options.json) {
12
+ console.log(formatJson(hackathon));
13
+ return;
14
+ }
15
+ console.log(formatDetail([
16
+ {
17
+ label: "ID",
18
+ value: hackathon.id
19
+ },
20
+ {
21
+ label: "Name",
22
+ value: hackathon.name
23
+ },
24
+ {
25
+ label: "Slug",
26
+ value: hackathon.slug
27
+ },
28
+ {
29
+ label: "Status",
30
+ value: hackathon.status
31
+ },
32
+ {
33
+ label: "Description",
34
+ value: hackathon.description
35
+ },
36
+ {
37
+ label: "Starts",
38
+ value: hackathon.starts_at
39
+ },
40
+ {
41
+ label: "Ends",
42
+ value: hackathon.ends_at
43
+ },
44
+ {
45
+ label: "Registration Opens",
46
+ value: hackathon.registration_opens_at
47
+ },
48
+ {
49
+ label: "Registration Closes",
50
+ value: hackathon.registration_closes_at
51
+ },
52
+ {
53
+ label: "Created",
54
+ value: hackathon.created_at
55
+ }
56
+ ]));
57
+ }
58
+ //#endregion
59
+ export { runHackathonsGet };
60
+
61
+ //# sourceMappingURL=get.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get.mjs","names":[],"sources":["../../src/commands/hackathons/get.ts"],"sourcesContent":["import type { OatmealClient } from \"../../client.js\"\nimport { formatDetail, formatJson } from \"../../output.js\"\nimport type { Hackathon } from \"../../types.js\"\nimport { resolveHackathonId } from \"./resolve.js\"\n\nexport async function runHackathonsGet(\n client: OatmealClient,\n idOrSlug: string,\n options: { json?: boolean }\n): Promise<void> {\n if (!idOrSlug) {\n console.error(\"Usage: oatmeal hackathons get <id-or-slug>\")\n process.exit(1)\n }\n\n const id = await resolveHackathonId(client, idOrSlug)\n const hackathon = await client.get<Hackathon>(`/api/dashboard/hackathons/${id}`)\n\n if (options.json) {\n console.log(formatJson(hackathon))\n return\n }\n\n console.log(\n formatDetail([\n { label: \"ID\", value: hackathon.id },\n { label: \"Name\", value: hackathon.name },\n { label: \"Slug\", value: hackathon.slug },\n { label: \"Status\", value: hackathon.status },\n { label: \"Description\", value: hackathon.description },\n { label: \"Starts\", value: hackathon.starts_at },\n { label: \"Ends\", value: hackathon.ends_at },\n { label: \"Registration Opens\", value: hackathon.registration_opens_at },\n { label: \"Registration Closes\", value: hackathon.registration_closes_at },\n { label: \"Created\", value: hackathon.created_at },\n ])\n )\n}\n"],"mappings":";;;AAKA,eAAsB,iBACpB,QACA,UACA,SACe;AACf,KAAI,CAAC,UAAU;AACb,UAAQ,MAAM,6CAA6C;AAC3D,UAAQ,KAAK,EAAE;;CAGjB,MAAM,KAAK,MAAM,mBAAmB,QAAQ,SAAS;CACrD,MAAM,YAAY,MAAM,OAAO,IAAe,6BAA6B,KAAK;AAEhF,KAAI,QAAQ,MAAM;AAChB,UAAQ,IAAI,WAAW,UAAU,CAAC;AAClC;;AAGF,SAAQ,IACN,aAAa;EACX;GAAE,OAAO;GAAM,OAAO,UAAU;GAAI;EACpC;GAAE,OAAO;GAAQ,OAAO,UAAU;GAAM;EACxC;GAAE,OAAO;GAAQ,OAAO,UAAU;GAAM;EACxC;GAAE,OAAO;GAAU,OAAO,UAAU;GAAQ;EAC5C;GAAE,OAAO;GAAe,OAAO,UAAU;GAAa;EACtD;GAAE,OAAO;GAAU,OAAO,UAAU;GAAW;EAC/C;GAAE,OAAO;GAAQ,OAAO,UAAU;GAAS;EAC3C;GAAE,OAAO;GAAsB,OAAO,UAAU;GAAuB;EACvE;GAAE,OAAO;GAAuB,OAAO,UAAU;GAAwB;EACzE;GAAE,OAAO;GAAW,OAAO,UAAU;;EACtC,CAAC,CACH"}
@@ -0,0 +1,43 @@
1
+ import { n as formatJson, t as formatDetail } from "../cli.mjs";
2
+ //#region src/commands/jobs/get.ts
3
+ async function runJobsGet(client, jobId, options) {
4
+ if (!jobId) {
5
+ console.error("Usage: oatmeal jobs get <job-id>");
6
+ process.exit(1);
7
+ }
8
+ const job = await client.get(`/api/dashboard/jobs/${jobId}`);
9
+ if (options.json) {
10
+ console.log(formatJson(job));
11
+ return;
12
+ }
13
+ console.log(formatDetail([
14
+ {
15
+ label: "ID",
16
+ value: job.id
17
+ },
18
+ {
19
+ label: "Type",
20
+ value: job.type
21
+ },
22
+ {
23
+ label: "Status",
24
+ value: job.status
25
+ },
26
+ {
27
+ label: "Created",
28
+ value: job.created_at
29
+ },
30
+ {
31
+ label: "Completed",
32
+ value: job.completed_at
33
+ },
34
+ {
35
+ label: "Error",
36
+ value: job.error
37
+ }
38
+ ]));
39
+ }
40
+ //#endregion
41
+ export { runJobsGet };
42
+
43
+ //# sourceMappingURL=get2.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get2.mjs","names":[],"sources":["../../src/commands/jobs/get.ts"],"sourcesContent":["import type { OatmealClient } from \"../../client.js\"\nimport { formatDetail, formatJson } from \"../../output.js\"\nimport type { Job } from \"../../types.js\"\n\nexport async function runJobsGet(\n client: OatmealClient,\n jobId: string,\n options: { json?: boolean }\n): Promise<void> {\n if (!jobId) {\n console.error(\"Usage: oatmeal jobs get <job-id>\")\n process.exit(1)\n }\n\n const job = await client.get<Job>(`/api/dashboard/jobs/${jobId}`)\n\n if (options.json) {\n console.log(formatJson(job))\n return\n }\n\n console.log(\n formatDetail([\n { label: \"ID\", value: job.id },\n { label: \"Type\", value: job.type },\n { label: \"Status\", value: job.status },\n { label: \"Created\", value: job.created_at },\n { label: \"Completed\", value: job.completed_at },\n { label: \"Error\", value: job.error },\n ])\n )\n}\n"],"mappings":";;AAIA,eAAsB,WACpB,QACA,OACA,SACe;AACf,KAAI,CAAC,OAAO;AACV,UAAQ,MAAM,mCAAmC;AACjD,UAAQ,KAAK,EAAE;;CAGjB,MAAM,MAAM,MAAM,OAAO,IAAS,uBAAuB,QAAQ;AAEjE,KAAI,QAAQ,MAAM;AAChB,UAAQ,IAAI,WAAW,IAAI,CAAC;AAC5B;;AAGF,SAAQ,IACN,aAAa;EACX;GAAE,OAAO;GAAM,OAAO,IAAI;GAAI;EAC9B;GAAE,OAAO;GAAQ,OAAO,IAAI;GAAM;EAClC;GAAE,OAAO;GAAU,OAAO,IAAI;GAAQ;EACtC;GAAE,OAAO;GAAW,OAAO,IAAI;GAAY;EAC3C;GAAE,OAAO;GAAa,OAAO,IAAI;GAAc;EAC/C;GAAE,OAAO;GAAS,OAAO,IAAI;;EAC9B,CAAC,CACH"}