@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.
- package/bin/cli.mjs +11 -0
- package/dist/_chunks/assign.mjs +35 -0
- package/dist/_chunks/assign.mjs.map +1 -0
- package/dist/_chunks/assignments-create.mjs +37 -0
- package/dist/_chunks/assignments-create.mjs.map +1 -0
- package/dist/_chunks/assignments-delete.mjs +22 -0
- package/dist/_chunks/assignments-delete.mjs.map +1 -0
- package/dist/_chunks/assignments-list.mjs +35 -0
- package/dist/_chunks/assignments-list.mjs.map +1 -0
- package/dist/_chunks/auto-assign.mjs +31 -0
- package/dist/_chunks/auto-assign.mjs.map +1 -0
- package/dist/_chunks/calculate.mjs +18 -0
- package/dist/_chunks/calculate.mjs.map +1 -0
- package/dist/_chunks/cancel.mjs +22 -0
- package/dist/_chunks/cancel.mjs.map +1 -0
- package/dist/_chunks/config.mjs +70 -0
- package/dist/_chunks/config.mjs.map +1 -0
- package/dist/_chunks/constants.mjs +14 -0
- package/dist/_chunks/constants.mjs.map +1 -0
- package/dist/_chunks/create.mjs +66 -0
- package/dist/_chunks/create.mjs.map +1 -0
- package/dist/_chunks/create2.mjs +47 -0
- package/dist/_chunks/create2.mjs.map +1 -0
- package/dist/_chunks/create3.mjs +51 -0
- package/dist/_chunks/create3.mjs.map +1 -0
- package/dist/_chunks/create4.mjs +55 -0
- package/dist/_chunks/create4.mjs.map +1 -0
- package/dist/_chunks/create5.mjs +60 -0
- package/dist/_chunks/create5.mjs.map +1 -0
- package/dist/_chunks/create6.mjs +57 -0
- package/dist/_chunks/create6.mjs.map +1 -0
- package/dist/_chunks/criteria-create.mjs +77 -0
- package/dist/_chunks/criteria-create.mjs.map +1 -0
- package/dist/_chunks/criteria-delete.mjs +22 -0
- package/dist/_chunks/criteria-delete.mjs.map +1 -0
- package/dist/_chunks/criteria-list.mjs +35 -0
- package/dist/_chunks/criteria-list.mjs.map +1 -0
- package/dist/_chunks/criteria-update.mjs +49 -0
- package/dist/_chunks/criteria-update.mjs.map +1 -0
- package/dist/_chunks/delete.mjs +24 -0
- package/dist/_chunks/delete.mjs.map +1 -0
- package/dist/_chunks/delete2.mjs +22 -0
- package/dist/_chunks/delete2.mjs.map +1 -0
- package/dist/_chunks/delete3.mjs +22 -0
- package/dist/_chunks/delete3.mjs.map +1 -0
- package/dist/_chunks/delete4.mjs +22 -0
- package/dist/_chunks/delete4.mjs.map +1 -0
- package/dist/_chunks/delete5.mjs +22 -0
- package/dist/_chunks/delete5.mjs.map +1 -0
- package/dist/_chunks/get.mjs +61 -0
- package/dist/_chunks/get.mjs.map +1 -0
- package/dist/_chunks/get2.mjs +43 -0
- package/dist/_chunks/get2.mjs.map +1 -0
- package/dist/_chunks/get3.mjs +39 -0
- package/dist/_chunks/get3.mjs.map +1 -0
- package/dist/_chunks/get4.mjs +47 -0
- package/dist/_chunks/get4.mjs.map +1 -0
- package/dist/_chunks/hackathons.mjs +64 -0
- package/dist/_chunks/hackathons.mjs.map +1 -0
- package/dist/_chunks/invitations-cancel.mjs +22 -0
- package/dist/_chunks/invitations-cancel.mjs.map +1 -0
- package/dist/_chunks/invitations-list.mjs +31 -0
- package/dist/_chunks/invitations-list.mjs.map +1 -0
- package/dist/_chunks/judges-add.mjs +37 -0
- package/dist/_chunks/judges-add.mjs.map +1 -0
- package/dist/_chunks/judges-list.mjs +35 -0
- package/dist/_chunks/judges-list.mjs.map +1 -0
- package/dist/_chunks/judges-remove.mjs +22 -0
- package/dist/_chunks/judges-remove.mjs.map +1 -0
- package/dist/_chunks/list.mjs +39 -0
- package/dist/_chunks/list.mjs.map +1 -0
- package/dist/_chunks/list2.mjs +37 -0
- package/dist/_chunks/list2.mjs.map +1 -0
- package/dist/_chunks/list3.mjs +31 -0
- package/dist/_chunks/list3.mjs.map +1 -0
- package/dist/_chunks/list4.mjs +35 -0
- package/dist/_chunks/list4.mjs.map +1 -0
- package/dist/_chunks/list5.mjs +39 -0
- package/dist/_chunks/list5.mjs.map +1 -0
- package/dist/_chunks/list6.mjs +40 -0
- package/dist/_chunks/list6.mjs.map +1 -0
- package/dist/_chunks/login.mjs +114 -0
- package/dist/_chunks/login.mjs.map +1 -0
- package/dist/_chunks/logout.mjs +16 -0
- package/dist/_chunks/logout.mjs.map +1 -0
- package/dist/_chunks/org.mjs +35 -0
- package/dist/_chunks/org.mjs.map +1 -0
- package/dist/_chunks/pick-results.mjs +35 -0
- package/dist/_chunks/pick-results.mjs.map +1 -0
- package/dist/_chunks/publish.mjs +22 -0
- package/dist/_chunks/publish.mjs.map +1 -0
- package/dist/_chunks/reorder.mjs +16 -0
- package/dist/_chunks/reorder.mjs.map +1 -0
- package/dist/_chunks/reorder2.mjs +16 -0
- package/dist/_chunks/reorder2.mjs.map +1 -0
- package/dist/_chunks/resolve.mjs +15 -0
- package/dist/_chunks/resolve.mjs.map +1 -0
- package/dist/_chunks/result.mjs +46 -0
- package/dist/_chunks/result.mjs.map +1 -0
- package/dist/_chunks/results.mjs +43 -0
- package/dist/_chunks/results.mjs.map +1 -0
- package/dist/_chunks/submissions.mjs +35 -0
- package/dist/_chunks/submissions.mjs.map +1 -0
- package/dist/_chunks/unassign.mjs +22 -0
- package/dist/_chunks/unassign.mjs.map +1 -0
- package/dist/_chunks/unpublish.mjs +22 -0
- package/dist/_chunks/unpublish.mjs.map +1 -0
- package/dist/_chunks/update.mjs +47 -0
- package/dist/_chunks/update.mjs.map +1 -0
- package/dist/_chunks/update2.mjs +45 -0
- package/dist/_chunks/update2.mjs.map +1 -0
- package/dist/_chunks/update3.mjs +49 -0
- package/dist/_chunks/update3.mjs.map +1 -0
- package/dist/_chunks/update4.mjs +48 -0
- package/dist/_chunks/update4.mjs.map +1 -0
- package/dist/_chunks/whoami.mjs +31 -0
- package/dist/_chunks/whoami.mjs.map +1 -0
- package/dist/cli.d.mts +1 -0
- package/dist/cli.mjs +711 -0
- package/dist/cli.mjs.map +1 -0
- 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"}
|