@agi-ventures-canada/hackathon-cli 0.1.6 → 0.1.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/_chunks/activate-round.mjs +18 -0
- package/dist/_chunks/activate-round.mjs.map +1 -0
- package/dist/_chunks/activity.mjs +82 -0
- package/dist/_chunks/activity.mjs.map +1 -0
- package/dist/_chunks/buckets.mjs +56 -0
- package/dist/_chunks/buckets.mjs.map +1 -0
- package/dist/_chunks/calculate-results.mjs +18 -0
- package/dist/_chunks/calculate-results.mjs.map +1 -0
- package/dist/_chunks/create.mjs +1 -1
- package/dist/_chunks/create.mjs.map +1 -1
- package/dist/_chunks/create6.mjs +29 -38
- package/dist/_chunks/create6.mjs.map +1 -1
- package/dist/_chunks/create7.mjs +63 -0
- package/dist/_chunks/create7.mjs.map +1 -0
- package/dist/_chunks/criteria-create.mjs +9 -22
- package/dist/_chunks/criteria-create.mjs.map +1 -1
- package/dist/_chunks/criteria-list.mjs +4 -0
- package/dist/_chunks/criteria-list.mjs.map +1 -1
- package/dist/_chunks/criteria-update.mjs +13 -5
- package/dist/_chunks/criteria-update.mjs.map +1 -1
- package/dist/_chunks/delete5.mjs +8 -8
- package/dist/_chunks/delete5.mjs.map +1 -1
- package/dist/_chunks/delete6.mjs +22 -0
- package/dist/_chunks/delete6.mjs.map +1 -0
- package/dist/_chunks/get5.mjs +42 -0
- package/dist/_chunks/get5.mjs.map +1 -0
- package/dist/_chunks/levels-add.mjs +53 -0
- package/dist/_chunks/levels-add.mjs.map +1 -0
- package/dist/_chunks/levels-delete.mjs +53 -0
- package/dist/_chunks/levels-delete.mjs.map +1 -0
- package/dist/_chunks/levels-list.mjs +39 -0
- package/dist/_chunks/levels-list.mjs.map +1 -0
- package/dist/_chunks/levels-update.mjs +61 -0
- package/dist/_chunks/levels-update.mjs.map +1 -0
- package/dist/_chunks/list6.mjs +22 -19
- package/dist/_chunks/list6.mjs.map +1 -1
- package/dist/_chunks/list7.mjs +40 -0
- package/dist/_chunks/list7.mjs.map +1 -0
- package/dist/_chunks/track-assign.mjs +37 -0
- package/dist/_chunks/track-assign.mjs.map +1 -0
- package/dist/_chunks/track-unassign.mjs +49 -0
- package/dist/_chunks/track-unassign.mjs.map +1 -0
- package/dist/_chunks/update-round.mjs +49 -0
- package/dist/_chunks/update-round.mjs.map +1 -0
- package/dist/_chunks/update5.mjs +41 -48
- package/dist/_chunks/update5.mjs.map +1 -1
- package/dist/_chunks/update6.mjs +56 -0
- package/dist/_chunks/update6.mjs.map +1 -0
- package/dist/cli.mjs +160 -86
- package/dist/cli.mjs.map +1 -1
- package/package.json +1 -1
- package/dist/_chunks/hackathons-delete.mjs +0 -26
- package/dist/_chunks/hackathons-delete.mjs.map +0 -1
- package/dist/_chunks/hackathons-get.mjs +0 -34
- package/dist/_chunks/hackathons-get.mjs.map +0 -1
- package/dist/_chunks/hackathons-list.mjs +0 -64
- package/dist/_chunks/hackathons-list.mjs.map +0 -1
- package/dist/_chunks/hackathons-update.mjs +0 -73
- package/dist/_chunks/hackathons-update.mjs.map +0 -1
- package/dist/_chunks/scenarios-list.mjs +0 -24
- package/dist/_chunks/scenarios-list.mjs.map +0 -1
- package/dist/_chunks/scenarios-run.mjs +0 -23
- package/dist/_chunks/scenarios-run.mjs.map +0 -1
- package/dist/_chunks/stats.mjs +0 -37
- package/dist/_chunks/stats.mjs.map +0 -1
package/dist/_chunks/delete5.mjs
CHANGED
|
@@ -1,22 +1,22 @@
|
|
|
1
1
|
import { r as formatSuccess } from "../cli.mjs";
|
|
2
2
|
import * as p from "@clack/prompts";
|
|
3
|
-
//#region src/commands/
|
|
4
|
-
async function
|
|
5
|
-
if (!
|
|
6
|
-
console.error("Usage: hackathon
|
|
3
|
+
//#region src/commands/tracks/delete.ts
|
|
4
|
+
async function runTracksDelete(client, hackathonId, trackId, options) {
|
|
5
|
+
if (!trackId) {
|
|
6
|
+
console.error("Usage: hackathon tracks delete <hackathon-id> <track-id>");
|
|
7
7
|
process.exit(1);
|
|
8
8
|
}
|
|
9
9
|
if (!options.yes) {
|
|
10
|
-
const confirm = await p.confirm({ message: `Delete
|
|
10
|
+
const confirm = await p.confirm({ message: `Delete track ${trackId}? This removes all rounds, buckets, and responses.` });
|
|
11
11
|
if (p.isCancel(confirm) || !confirm) {
|
|
12
12
|
p.log.info("Cancelled.");
|
|
13
13
|
return;
|
|
14
14
|
}
|
|
15
15
|
}
|
|
16
|
-
await client.delete(`/api/
|
|
17
|
-
console.log(formatSuccess(`Deleted
|
|
16
|
+
await client.delete(`/api/dashboard/hackathons/${hackathonId}/prize-tracks/${trackId}`);
|
|
17
|
+
console.log(formatSuccess(`Deleted track ${trackId}`));
|
|
18
18
|
}
|
|
19
19
|
//#endregion
|
|
20
|
-
export {
|
|
20
|
+
export { runTracksDelete };
|
|
21
21
|
|
|
22
22
|
//# sourceMappingURL=delete5.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"delete5.mjs","names":[],"sources":["../../src/commands/
|
|
1
|
+
{"version":3,"file":"delete5.mjs","names":[],"sources":["../../src/commands/tracks/delete.ts"],"sourcesContent":["import * as p from \"@clack/prompts\"\nimport type { OatmealClient } from \"../../client.js\"\nimport { formatSuccess } from \"../../output.js\"\n\nexport async function runTracksDelete(\n client: OatmealClient,\n hackathonId: string,\n trackId: string,\n options: { yes?: boolean }\n): Promise<void> {\n if (!trackId) {\n console.error(\"Usage: hackathon tracks delete <hackathon-id> <track-id>\")\n process.exit(1)\n }\n\n if (!options.yes) {\n const confirm = await p.confirm({ message: `Delete track ${trackId}? This removes all rounds, buckets, and responses.` })\n if (p.isCancel(confirm) || !confirm) {\n p.log.info(\"Cancelled.\")\n return\n }\n }\n\n await client.delete(`/api/dashboard/hackathons/${hackathonId}/prize-tracks/${trackId}`)\n console.log(formatSuccess(`Deleted track ${trackId}`))\n}\n"],"mappings":";;;AAIA,eAAsB,gBACpB,QACA,aACA,SACA,SACe;AACf,KAAI,CAAC,SAAS;AACZ,UAAQ,MAAM,2DAA2D;AACzE,UAAQ,KAAK,EAAE;;AAGjB,KAAI,CAAC,QAAQ,KAAK;EAChB,MAAM,UAAU,MAAM,EAAE,QAAQ,EAAE,SAAS,gBAAgB,QAAQ,qDAAqD,CAAC;AACzH,MAAI,EAAE,SAAS,QAAQ,IAAI,CAAC,SAAS;AACnC,KAAE,IAAI,KAAK,aAAa;AACxB;;;AAIJ,OAAM,OAAO,OAAO,6BAA6B,YAAY,gBAAgB,UAAU;AACvF,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/webhooks/delete.ts
|
|
4
|
+
async function runWebhooksDelete(client, webhookId, options) {
|
|
5
|
+
if (!webhookId) {
|
|
6
|
+
console.error("Usage: hackathon 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=delete6.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"delete6.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: hackathon 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,gDAAgD;AAC9D,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,42 @@
|
|
|
1
|
+
import { n as formatJson, t as formatDetail } from "../cli.mjs";
|
|
2
|
+
//#region src/commands/tracks/get.ts
|
|
3
|
+
async function runTracksGet(client, hackathonId, trackId, options) {
|
|
4
|
+
if (!trackId) {
|
|
5
|
+
console.error("Usage: hackathon tracks get <hackathon-id> <track-id>");
|
|
6
|
+
process.exit(1);
|
|
7
|
+
}
|
|
8
|
+
const track = await client.get(`/api/dashboard/hackathons/${hackathonId}/prize-tracks/${trackId}`);
|
|
9
|
+
if (options.json) {
|
|
10
|
+
console.log(formatJson(track));
|
|
11
|
+
return;
|
|
12
|
+
}
|
|
13
|
+
console.log(formatDetail([
|
|
14
|
+
{
|
|
15
|
+
label: "ID",
|
|
16
|
+
value: track.id
|
|
17
|
+
},
|
|
18
|
+
{
|
|
19
|
+
label: "Name",
|
|
20
|
+
value: track.name
|
|
21
|
+
},
|
|
22
|
+
{
|
|
23
|
+
label: "Description",
|
|
24
|
+
value: track.description ?? void 0
|
|
25
|
+
},
|
|
26
|
+
{
|
|
27
|
+
label: "Intent",
|
|
28
|
+
value: track.intent
|
|
29
|
+
}
|
|
30
|
+
]));
|
|
31
|
+
if (track.rounds.length > 0) {
|
|
32
|
+
console.log(`\nRounds (${track.rounds.length}):`);
|
|
33
|
+
for (const round of track.rounds) {
|
|
34
|
+
console.log(` ${round.name} — ${round.style ?? "no style"} [${round.status}]`);
|
|
35
|
+
if (round.buckets.length > 0) for (const b of round.buckets) console.log(` ${b.level}. ${b.label}${b.description ? ` — ${b.description}` : ""}`);
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
//#endregion
|
|
40
|
+
export { runTracksGet };
|
|
41
|
+
|
|
42
|
+
//# sourceMappingURL=get5.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"get5.mjs","names":[],"sources":["../../src/commands/tracks/get.ts"],"sourcesContent":["import type { OatmealClient } from \"../../client.js\"\nimport { formatJson, formatDetail } from \"../../output.js\"\nimport type { TrackDetail } from \"../../types.js\"\n\nexport async function runTracksGet(\n client: OatmealClient,\n hackathonId: string,\n trackId: string,\n options: { json?: boolean }\n): Promise<void> {\n if (!trackId) {\n console.error(\"Usage: hackathon tracks get <hackathon-id> <track-id>\")\n process.exit(1)\n }\n\n const track = await client.get<TrackDetail>(\n `/api/dashboard/hackathons/${hackathonId}/prize-tracks/${trackId}`\n )\n\n if (options.json) {\n console.log(formatJson(track))\n return\n }\n\n console.log(\n formatDetail([\n { label: \"ID\", value: track.id },\n { label: \"Name\", value: track.name },\n { label: \"Description\", value: track.description ?? undefined },\n { label: \"Intent\", value: track.intent },\n ])\n )\n\n if (track.rounds.length > 0) {\n console.log(`\\nRounds (${track.rounds.length}):`)\n for (const round of track.rounds) {\n console.log(` ${round.name} — ${round.style ?? \"no style\"} [${round.status}]`)\n if (round.buckets.length > 0) {\n for (const b of round.buckets) {\n console.log(` ${b.level}. ${b.label}${b.description ? ` — ${b.description}` : \"\"}`)\n }\n }\n }\n }\n}\n"],"mappings":";;AAIA,eAAsB,aACpB,QACA,aACA,SACA,SACe;AACf,KAAI,CAAC,SAAS;AACZ,UAAQ,MAAM,wDAAwD;AACtE,UAAQ,KAAK,EAAE;;CAGjB,MAAM,QAAQ,MAAM,OAAO,IACzB,6BAA6B,YAAY,gBAAgB,UAC1D;AAED,KAAI,QAAQ,MAAM;AAChB,UAAQ,IAAI,WAAW,MAAM,CAAC;AAC9B;;AAGF,SAAQ,IACN,aAAa;EACX;GAAE,OAAO;GAAM,OAAO,MAAM;GAAI;EAChC;GAAE,OAAO;GAAQ,OAAO,MAAM;GAAM;EACpC;GAAE,OAAO;GAAe,OAAO,MAAM,eAAe,KAAA;GAAW;EAC/D;GAAE,OAAO;GAAU,OAAO,MAAM;;EACjC,CAAC,CACH;AAED,KAAI,MAAM,OAAO,SAAS,GAAG;AAC3B,UAAQ,IAAI,aAAa,MAAM,OAAO,OAAO,IAAI;AACjD,OAAK,MAAM,SAAS,MAAM,QAAQ;AAChC,WAAQ,IAAI,KAAK,MAAM,KAAK,KAAK,MAAM,SAAS,WAAW,IAAI,MAAM,OAAO,GAAG;AAC/E,OAAI,MAAM,QAAQ,SAAS,EACzB,MAAK,MAAM,KAAK,MAAM,QACpB,SAAQ,IAAI,OAAO,EAAE,MAAM,IAAI,EAAE,QAAQ,EAAE,cAAc,MAAM,EAAE,gBAAgB,KAAK"}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import { n as formatJson, r as formatSuccess } from "../cli.mjs";
|
|
2
|
+
//#region src/commands/judging/levels-add.ts
|
|
3
|
+
function parseLevelsAddOptions(args) {
|
|
4
|
+
const options = {};
|
|
5
|
+
for (let i = 0; i < args.length; i++) switch (args[i]) {
|
|
6
|
+
case "--hackathon-id":
|
|
7
|
+
options.hackathonId = args[++i];
|
|
8
|
+
break;
|
|
9
|
+
case "--criteria-id":
|
|
10
|
+
options.criteriaId = args[++i];
|
|
11
|
+
break;
|
|
12
|
+
case "--label":
|
|
13
|
+
options.label = args[++i];
|
|
14
|
+
break;
|
|
15
|
+
case "--description":
|
|
16
|
+
options.description = args[++i];
|
|
17
|
+
break;
|
|
18
|
+
case "--json":
|
|
19
|
+
options.json = true;
|
|
20
|
+
break;
|
|
21
|
+
}
|
|
22
|
+
return options;
|
|
23
|
+
}
|
|
24
|
+
async function runLevelsAdd(client, hackathonId, criteriaId, args) {
|
|
25
|
+
const options = parseLevelsAddOptions(args);
|
|
26
|
+
const resolvedHackathonId = options.hackathonId ?? hackathonId;
|
|
27
|
+
const resolvedCriteriaId = options.criteriaId ?? criteriaId;
|
|
28
|
+
if (!resolvedHackathonId) {
|
|
29
|
+
console.error("Error: --hackathon-id is required");
|
|
30
|
+
process.exit(1);
|
|
31
|
+
}
|
|
32
|
+
if (!resolvedCriteriaId) {
|
|
33
|
+
console.error("Error: --criteria-id is required");
|
|
34
|
+
process.exit(1);
|
|
35
|
+
}
|
|
36
|
+
if (!options.label) {
|
|
37
|
+
console.error("Error: --label is required");
|
|
38
|
+
process.exit(1);
|
|
39
|
+
}
|
|
40
|
+
const level = await client.post(`/api/dashboard/hackathons/${resolvedHackathonId}/judging/criteria/${resolvedCriteriaId}/levels`, {
|
|
41
|
+
label: options.label,
|
|
42
|
+
description: options.description
|
|
43
|
+
});
|
|
44
|
+
if (options.json) {
|
|
45
|
+
console.log(formatJson(level));
|
|
46
|
+
return;
|
|
47
|
+
}
|
|
48
|
+
console.log(formatSuccess(`Added level "${level.label}" (${level.id})`));
|
|
49
|
+
}
|
|
50
|
+
//#endregion
|
|
51
|
+
export { runLevelsAdd };
|
|
52
|
+
|
|
53
|
+
//# sourceMappingURL=levels-add.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"levels-add.mjs","names":[],"sources":["../../src/commands/judging/levels-add.ts"],"sourcesContent":["import type { OatmealClient } from \"../../client.js\"\nimport { formatJson, formatSuccess } from \"../../output.js\"\nimport type { RubricLevel } from \"../../types.js\"\n\ninterface LevelsAddOptions {\n hackathonId?: string\n criteriaId?: string\n label?: string\n description?: string\n json?: boolean\n}\n\nexport function parseLevelsAddOptions(args: string[]): LevelsAddOptions {\n const options: LevelsAddOptions = {}\n for (let i = 0; i < args.length; i++) {\n switch (args[i]) {\n case \"--hackathon-id\":\n options.hackathonId = args[++i]\n break\n case \"--criteria-id\":\n options.criteriaId = args[++i]\n break\n case \"--label\":\n options.label = args[++i]\n break\n case \"--description\":\n options.description = args[++i]\n break\n case \"--json\":\n options.json = true\n break\n }\n }\n return options\n}\n\nexport async function runLevelsAdd(\n client: OatmealClient,\n hackathonId: string,\n criteriaId: string,\n args: string[]\n): Promise<void> {\n const options = parseLevelsAddOptions(args)\n\n const resolvedHackathonId = options.hackathonId ?? hackathonId\n const resolvedCriteriaId = options.criteriaId ?? criteriaId\n\n if (!resolvedHackathonId) {\n console.error(\"Error: --hackathon-id is required\")\n process.exit(1)\n }\n\n if (!resolvedCriteriaId) {\n console.error(\"Error: --criteria-id is required\")\n process.exit(1)\n }\n\n if (!options.label) {\n console.error(\"Error: --label is required\")\n process.exit(1)\n }\n\n const level = await client.post<RubricLevel>(\n `/api/dashboard/hackathons/${resolvedHackathonId}/judging/criteria/${resolvedCriteriaId}/levels`,\n {\n label: options.label,\n description: options.description,\n }\n )\n\n if (options.json) {\n console.log(formatJson(level))\n return\n }\n\n console.log(formatSuccess(`Added level \"${level.label}\" (${level.id})`))\n}\n"],"mappings":";;AAYA,SAAgB,sBAAsB,MAAkC;CACtE,MAAM,UAA4B,EAAE;AACpC,MAAK,IAAI,IAAI,GAAG,IAAI,KAAK,QAAQ,IAC/B,SAAQ,KAAK,IAAb;EACE,KAAK;AACH,WAAQ,cAAc,KAAK,EAAE;AAC7B;EACF,KAAK;AACH,WAAQ,aAAa,KAAK,EAAE;AAC5B;EACF,KAAK;AACH,WAAQ,QAAQ,KAAK,EAAE;AACvB;EACF,KAAK;AACH,WAAQ,cAAc,KAAK,EAAE;AAC7B;EACF,KAAK;AACH,WAAQ,OAAO;AACf;;AAGN,QAAO;;AAGT,eAAsB,aACpB,QACA,aACA,YACA,MACe;CACf,MAAM,UAAU,sBAAsB,KAAK;CAE3C,MAAM,sBAAsB,QAAQ,eAAe;CACnD,MAAM,qBAAqB,QAAQ,cAAc;AAEjD,KAAI,CAAC,qBAAqB;AACxB,UAAQ,MAAM,oCAAoC;AAClD,UAAQ,KAAK,EAAE;;AAGjB,KAAI,CAAC,oBAAoB;AACvB,UAAQ,MAAM,mCAAmC;AACjD,UAAQ,KAAK,EAAE;;AAGjB,KAAI,CAAC,QAAQ,OAAO;AAClB,UAAQ,MAAM,6BAA6B;AAC3C,UAAQ,KAAK,EAAE;;CAGjB,MAAM,QAAQ,MAAM,OAAO,KACzB,6BAA6B,oBAAoB,oBAAoB,mBAAmB,UACxF;EACE,OAAO,QAAQ;EACf,aAAa,QAAQ;EACtB,CACF;AAED,KAAI,QAAQ,MAAM;AAChB,UAAQ,IAAI,WAAW,MAAM,CAAC;AAC9B;;AAGF,SAAQ,IAAI,cAAc,gBAAgB,MAAM,MAAM,KAAK,MAAM,GAAG,GAAG,CAAC"}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import { i as formatTable, n as formatJson, r as formatSuccess } from "../cli.mjs";
|
|
2
|
+
import * as p from "@clack/prompts";
|
|
3
|
+
//#region src/commands/judging/levels-delete.ts
|
|
4
|
+
async function runLevelsDelete(client, hackathonId, criteriaId, levelId, options) {
|
|
5
|
+
if (!hackathonId) {
|
|
6
|
+
console.error("Usage: hackathon judging levels delete --hackathon-id <id> --criteria-id <id> --level-id <id>");
|
|
7
|
+
process.exit(1);
|
|
8
|
+
}
|
|
9
|
+
if (!criteriaId) {
|
|
10
|
+
console.error("Usage: hackathon judging levels delete --hackathon-id <id> --criteria-id <id> --level-id <id>");
|
|
11
|
+
process.exit(1);
|
|
12
|
+
}
|
|
13
|
+
if (!levelId) {
|
|
14
|
+
console.error("Usage: hackathon judging levels delete --hackathon-id <id> --criteria-id <id> --level-id <id>");
|
|
15
|
+
process.exit(1);
|
|
16
|
+
}
|
|
17
|
+
if (!options.yes) {
|
|
18
|
+
const confirm = await p.confirm({ message: `Delete level ${levelId}?` });
|
|
19
|
+
if (p.isCancel(confirm) || !confirm) {
|
|
20
|
+
p.log.info("Cancelled.");
|
|
21
|
+
return;
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
await client.delete(`/api/dashboard/hackathons/${hackathonId}/judging/criteria/${criteriaId}/levels/${levelId}`);
|
|
25
|
+
console.log(formatSuccess(`Deleted level ${levelId}`));
|
|
26
|
+
const data = await client.get(`/api/dashboard/hackathons/${hackathonId}/judging/criteria/${criteriaId}/levels`);
|
|
27
|
+
if (options.json) {
|
|
28
|
+
console.log(formatJson(data));
|
|
29
|
+
return;
|
|
30
|
+
}
|
|
31
|
+
if (!data.levels?.length) {
|
|
32
|
+
console.log("No rubric levels remaining.");
|
|
33
|
+
return;
|
|
34
|
+
}
|
|
35
|
+
console.log(formatTable(data.levels, [
|
|
36
|
+
{
|
|
37
|
+
key: "levelNumber",
|
|
38
|
+
label: "Level #"
|
|
39
|
+
},
|
|
40
|
+
{
|
|
41
|
+
key: "label",
|
|
42
|
+
label: "Label"
|
|
43
|
+
},
|
|
44
|
+
{
|
|
45
|
+
key: "description",
|
|
46
|
+
label: "Description"
|
|
47
|
+
}
|
|
48
|
+
]));
|
|
49
|
+
}
|
|
50
|
+
//#endregion
|
|
51
|
+
export { runLevelsDelete };
|
|
52
|
+
|
|
53
|
+
//# sourceMappingURL=levels-delete.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"levels-delete.mjs","names":[],"sources":["../../src/commands/judging/levels-delete.ts"],"sourcesContent":["import * as p from \"@clack/prompts\"\nimport type { OatmealClient } from \"../../client.js\"\nimport { formatJson, formatSuccess, formatTable } from \"../../output.js\"\nimport type { RubricLevel } from \"../../types.js\"\n\nexport async function runLevelsDelete(\n client: OatmealClient,\n hackathonId: string,\n criteriaId: string,\n levelId: string,\n options: { yes?: boolean; json?: boolean }\n): Promise<void> {\n if (!hackathonId) {\n console.error(\"Usage: hackathon judging levels delete --hackathon-id <id> --criteria-id <id> --level-id <id>\")\n process.exit(1)\n }\n\n if (!criteriaId) {\n console.error(\"Usage: hackathon judging levels delete --hackathon-id <id> --criteria-id <id> --level-id <id>\")\n process.exit(1)\n }\n\n if (!levelId) {\n console.error(\"Usage: hackathon judging levels delete --hackathon-id <id> --criteria-id <id> --level-id <id>\")\n process.exit(1)\n }\n\n if (!options.yes) {\n const confirm = await p.confirm({ message: `Delete level ${levelId}?` })\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}/levels/${levelId}`\n )\n console.log(formatSuccess(`Deleted level ${levelId}`))\n\n const data = await client.get<{ levels: RubricLevel[] }>(\n `/api/dashboard/hackathons/${hackathonId}/judging/criteria/${criteriaId}/levels`\n )\n\n if (options.json) {\n console.log(formatJson(data))\n return\n }\n\n if (!data.levels?.length) {\n console.log(\"No rubric levels remaining.\")\n return\n }\n\n console.log(\n formatTable(data.levels, [\n { key: \"levelNumber\", label: \"Level #\" },\n { key: \"label\", label: \"Label\" },\n { key: \"description\", label: \"Description\" },\n ])\n )\n}\n"],"mappings":";;;AAKA,eAAsB,gBACpB,QACA,aACA,YACA,SACA,SACe;AACf,KAAI,CAAC,aAAa;AAChB,UAAQ,MAAM,gGAAgG;AAC9G,UAAQ,KAAK,EAAE;;AAGjB,KAAI,CAAC,YAAY;AACf,UAAQ,MAAM,gGAAgG;AAC9G,UAAQ,KAAK,EAAE;;AAGjB,KAAI,CAAC,SAAS;AACZ,UAAQ,MAAM,gGAAgG;AAC9G,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,OACX,6BAA6B,YAAY,oBAAoB,WAAW,UAAU,UACnF;AACD,SAAQ,IAAI,cAAc,iBAAiB,UAAU,CAAC;CAEtD,MAAM,OAAO,MAAM,OAAO,IACxB,6BAA6B,YAAY,oBAAoB,WAAW,SACzE;AAED,KAAI,QAAQ,MAAM;AAChB,UAAQ,IAAI,WAAW,KAAK,CAAC;AAC7B;;AAGF,KAAI,CAAC,KAAK,QAAQ,QAAQ;AACxB,UAAQ,IAAI,8BAA8B;AAC1C;;AAGF,SAAQ,IACN,YAAY,KAAK,QAAQ;EACvB;GAAE,KAAK;GAAe,OAAO;GAAW;EACxC;GAAE,KAAK;GAAS,OAAO;GAAS;EAChC;GAAE,KAAK;GAAe,OAAO;;EAC9B,CAAC,CACH"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { i as formatTable, n as formatJson } from "../cli.mjs";
|
|
2
|
+
//#region src/commands/judging/levels-list.ts
|
|
3
|
+
async function runLevelsList(client, hackathonId, criteriaId, options) {
|
|
4
|
+
if (!hackathonId) {
|
|
5
|
+
console.error("Usage: hackathon judging levels list --hackathon-id <id> --criteria-id <id>");
|
|
6
|
+
process.exit(1);
|
|
7
|
+
}
|
|
8
|
+
if (!criteriaId) {
|
|
9
|
+
console.error("Usage: hackathon judging levels list --hackathon-id <id> --criteria-id <id>");
|
|
10
|
+
process.exit(1);
|
|
11
|
+
}
|
|
12
|
+
const data = await client.get(`/api/dashboard/hackathons/${hackathonId}/judging/criteria/${criteriaId}/levels`);
|
|
13
|
+
if (options.json) {
|
|
14
|
+
console.log(formatJson(data));
|
|
15
|
+
return;
|
|
16
|
+
}
|
|
17
|
+
if (!data.levels?.length) {
|
|
18
|
+
console.log("No rubric levels found.");
|
|
19
|
+
return;
|
|
20
|
+
}
|
|
21
|
+
console.log(formatTable(data.levels, [
|
|
22
|
+
{
|
|
23
|
+
key: "levelNumber",
|
|
24
|
+
label: "Level #"
|
|
25
|
+
},
|
|
26
|
+
{
|
|
27
|
+
key: "label",
|
|
28
|
+
label: "Label"
|
|
29
|
+
},
|
|
30
|
+
{
|
|
31
|
+
key: "description",
|
|
32
|
+
label: "Description"
|
|
33
|
+
}
|
|
34
|
+
]));
|
|
35
|
+
}
|
|
36
|
+
//#endregion
|
|
37
|
+
export { runLevelsList };
|
|
38
|
+
|
|
39
|
+
//# sourceMappingURL=levels-list.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"levels-list.mjs","names":[],"sources":["../../src/commands/judging/levels-list.ts"],"sourcesContent":["import type { OatmealClient } from \"../../client.js\"\nimport { formatJson, formatTable } from \"../../output.js\"\nimport type { RubricLevel } from \"../../types.js\"\n\nexport async function runLevelsList(\n client: OatmealClient,\n hackathonId: string,\n criteriaId: string,\n options: { json?: boolean }\n): Promise<void> {\n if (!hackathonId) {\n console.error(\"Usage: hackathon judging levels list --hackathon-id <id> --criteria-id <id>\")\n process.exit(1)\n }\n\n if (!criteriaId) {\n console.error(\"Usage: hackathon judging levels list --hackathon-id <id> --criteria-id <id>\")\n process.exit(1)\n }\n\n const data = await client.get<{ levels: RubricLevel[] }>(\n `/api/dashboard/hackathons/${hackathonId}/judging/criteria/${criteriaId}/levels`\n )\n\n if (options.json) {\n console.log(formatJson(data))\n return\n }\n\n if (!data.levels?.length) {\n console.log(\"No rubric levels found.\")\n return\n }\n\n console.log(\n formatTable(data.levels, [\n { key: \"levelNumber\", label: \"Level #\" },\n { key: \"label\", label: \"Label\" },\n { key: \"description\", label: \"Description\" },\n ])\n )\n}\n"],"mappings":";;AAIA,eAAsB,cACpB,QACA,aACA,YACA,SACe;AACf,KAAI,CAAC,aAAa;AAChB,UAAQ,MAAM,8EAA8E;AAC5F,UAAQ,KAAK,EAAE;;AAGjB,KAAI,CAAC,YAAY;AACf,UAAQ,MAAM,8EAA8E;AAC5F,UAAQ,KAAK,EAAE;;CAGjB,MAAM,OAAO,MAAM,OAAO,IACxB,6BAA6B,YAAY,oBAAoB,WAAW,SACzE;AAED,KAAI,QAAQ,MAAM;AAChB,UAAQ,IAAI,WAAW,KAAK,CAAC;AAC7B;;AAGF,KAAI,CAAC,KAAK,QAAQ,QAAQ;AACxB,UAAQ,IAAI,0BAA0B;AACtC;;AAGF,SAAQ,IACN,YAAY,KAAK,QAAQ;EACvB;GAAE,KAAK;GAAe,OAAO;GAAW;EACxC;GAAE,KAAK;GAAS,OAAO;GAAS;EAChC;GAAE,KAAK;GAAe,OAAO;;EAC9B,CAAC,CACH"}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
import { n as formatJson, r as formatSuccess } from "../cli.mjs";
|
|
2
|
+
//#region src/commands/judging/levels-update.ts
|
|
3
|
+
function parseLevelsUpdateOptions(args) {
|
|
4
|
+
const options = {};
|
|
5
|
+
for (let i = 0; i < args.length; i++) switch (args[i]) {
|
|
6
|
+
case "--hackathon-id":
|
|
7
|
+
options.hackathonId = args[++i];
|
|
8
|
+
break;
|
|
9
|
+
case "--criteria-id":
|
|
10
|
+
options.criteriaId = args[++i];
|
|
11
|
+
break;
|
|
12
|
+
case "--level-id":
|
|
13
|
+
options.levelId = args[++i];
|
|
14
|
+
break;
|
|
15
|
+
case "--label":
|
|
16
|
+
options.label = args[++i];
|
|
17
|
+
break;
|
|
18
|
+
case "--description":
|
|
19
|
+
options.description = args[++i];
|
|
20
|
+
break;
|
|
21
|
+
case "--json":
|
|
22
|
+
options.json = true;
|
|
23
|
+
break;
|
|
24
|
+
}
|
|
25
|
+
return options;
|
|
26
|
+
}
|
|
27
|
+
async function runLevelsUpdate(client, hackathonId, criteriaId, levelId, args) {
|
|
28
|
+
const options = parseLevelsUpdateOptions(args);
|
|
29
|
+
const resolvedHackathonId = options.hackathonId ?? hackathonId;
|
|
30
|
+
const resolvedCriteriaId = options.criteriaId ?? criteriaId;
|
|
31
|
+
const resolvedLevelId = options.levelId ?? levelId;
|
|
32
|
+
if (!resolvedHackathonId) {
|
|
33
|
+
console.error("Error: --hackathon-id is required");
|
|
34
|
+
process.exit(1);
|
|
35
|
+
}
|
|
36
|
+
if (!resolvedCriteriaId) {
|
|
37
|
+
console.error("Error: --criteria-id is required");
|
|
38
|
+
process.exit(1);
|
|
39
|
+
}
|
|
40
|
+
if (!resolvedLevelId) {
|
|
41
|
+
console.error("Error: --level-id is required");
|
|
42
|
+
process.exit(1);
|
|
43
|
+
}
|
|
44
|
+
const body = {};
|
|
45
|
+
if (options.label) body.label = options.label;
|
|
46
|
+
if (options.description !== void 0) body.description = options.description;
|
|
47
|
+
if (Object.keys(body).length === 0) {
|
|
48
|
+
console.error("Error: provide at least one field to update (--label, --description)");
|
|
49
|
+
process.exit(1);
|
|
50
|
+
}
|
|
51
|
+
const level = await client.patch(`/api/dashboard/hackathons/${resolvedHackathonId}/judging/criteria/${resolvedCriteriaId}/levels/${resolvedLevelId}`, body);
|
|
52
|
+
if (options.json) {
|
|
53
|
+
console.log(formatJson(level));
|
|
54
|
+
return;
|
|
55
|
+
}
|
|
56
|
+
console.log(formatSuccess(`Updated level "${level.label}"`));
|
|
57
|
+
}
|
|
58
|
+
//#endregion
|
|
59
|
+
export { runLevelsUpdate };
|
|
60
|
+
|
|
61
|
+
//# sourceMappingURL=levels-update.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"levels-update.mjs","names":[],"sources":["../../src/commands/judging/levels-update.ts"],"sourcesContent":["import type { OatmealClient } from \"../../client.js\"\nimport { formatJson, formatSuccess } from \"../../output.js\"\nimport type { RubricLevel } from \"../../types.js\"\n\ninterface LevelsUpdateOptions {\n hackathonId?: string\n criteriaId?: string\n levelId?: string\n label?: string\n description?: string\n json?: boolean\n}\n\nexport function parseLevelsUpdateOptions(args: string[]): LevelsUpdateOptions {\n const options: LevelsUpdateOptions = {}\n for (let i = 0; i < args.length; i++) {\n switch (args[i]) {\n case \"--hackathon-id\":\n options.hackathonId = args[++i]\n break\n case \"--criteria-id\":\n options.criteriaId = args[++i]\n break\n case \"--level-id\":\n options.levelId = args[++i]\n break\n case \"--label\":\n options.label = args[++i]\n break\n case \"--description\":\n options.description = args[++i]\n break\n case \"--json\":\n options.json = true\n break\n }\n }\n return options\n}\n\nexport async function runLevelsUpdate(\n client: OatmealClient,\n hackathonId: string,\n criteriaId: string,\n levelId: string,\n args: string[]\n): Promise<void> {\n const options = parseLevelsUpdateOptions(args)\n\n const resolvedHackathonId = options.hackathonId ?? hackathonId\n const resolvedCriteriaId = options.criteriaId ?? criteriaId\n const resolvedLevelId = options.levelId ?? levelId\n\n if (!resolvedHackathonId) {\n console.error(\"Error: --hackathon-id is required\")\n process.exit(1)\n }\n\n if (!resolvedCriteriaId) {\n console.error(\"Error: --criteria-id is required\")\n process.exit(1)\n }\n\n if (!resolvedLevelId) {\n console.error(\"Error: --level-id is required\")\n process.exit(1)\n }\n\n const body: Record<string, unknown> = {}\n if (options.label) body.label = options.label\n if (options.description !== undefined) body.description = options.description\n\n if (Object.keys(body).length === 0) {\n console.error(\"Error: provide at least one field to update (--label, --description)\")\n process.exit(1)\n }\n\n const level = await client.patch<RubricLevel>(\n `/api/dashboard/hackathons/${resolvedHackathonId}/judging/criteria/${resolvedCriteriaId}/levels/${resolvedLevelId}`,\n body\n )\n\n if (options.json) {\n console.log(formatJson(level))\n return\n }\n\n console.log(formatSuccess(`Updated level \"${level.label}\"`))\n}\n"],"mappings":";;AAaA,SAAgB,yBAAyB,MAAqC;CAC5E,MAAM,UAA+B,EAAE;AACvC,MAAK,IAAI,IAAI,GAAG,IAAI,KAAK,QAAQ,IAC/B,SAAQ,KAAK,IAAb;EACE,KAAK;AACH,WAAQ,cAAc,KAAK,EAAE;AAC7B;EACF,KAAK;AACH,WAAQ,aAAa,KAAK,EAAE;AAC5B;EACF,KAAK;AACH,WAAQ,UAAU,KAAK,EAAE;AACzB;EACF,KAAK;AACH,WAAQ,QAAQ,KAAK,EAAE;AACvB;EACF,KAAK;AACH,WAAQ,cAAc,KAAK,EAAE;AAC7B;EACF,KAAK;AACH,WAAQ,OAAO;AACf;;AAGN,QAAO;;AAGT,eAAsB,gBACpB,QACA,aACA,YACA,SACA,MACe;CACf,MAAM,UAAU,yBAAyB,KAAK;CAE9C,MAAM,sBAAsB,QAAQ,eAAe;CACnD,MAAM,qBAAqB,QAAQ,cAAc;CACjD,MAAM,kBAAkB,QAAQ,WAAW;AAE3C,KAAI,CAAC,qBAAqB;AACxB,UAAQ,MAAM,oCAAoC;AAClD,UAAQ,KAAK,EAAE;;AAGjB,KAAI,CAAC,oBAAoB;AACvB,UAAQ,MAAM,mCAAmC;AACjD,UAAQ,KAAK,EAAE;;AAGjB,KAAI,CAAC,iBAAiB;AACpB,UAAQ,MAAM,gCAAgC;AAC9C,UAAQ,KAAK,EAAE;;CAGjB,MAAM,OAAgC,EAAE;AACxC,KAAI,QAAQ,MAAO,MAAK,QAAQ,QAAQ;AACxC,KAAI,QAAQ,gBAAgB,KAAA,EAAW,MAAK,cAAc,QAAQ;AAElE,KAAI,OAAO,KAAK,KAAK,CAAC,WAAW,GAAG;AAClC,UAAQ,MAAM,uEAAuE;AACrF,UAAQ,KAAK,EAAE;;CAGjB,MAAM,QAAQ,MAAM,OAAO,MACzB,6BAA6B,oBAAoB,oBAAoB,mBAAmB,UAAU,mBAClG,KACD;AAED,KAAI,QAAQ,MAAM;AAChB,UAAQ,IAAI,WAAW,MAAM,CAAC;AAC9B;;AAGF,SAAQ,IAAI,cAAc,kBAAkB,MAAM,MAAM,GAAG,CAAC"}
|
package/dist/_chunks/list6.mjs
CHANGED
|
@@ -1,40 +1,43 @@
|
|
|
1
1
|
import { i as formatTable, n as formatJson } from "../cli.mjs";
|
|
2
|
-
//#region src/commands/
|
|
3
|
-
async function
|
|
4
|
-
const data = await client.get(
|
|
2
|
+
//#region src/commands/tracks/list.ts
|
|
3
|
+
async function runTracksList(client, hackathonId, options) {
|
|
4
|
+
const data = await client.get(`/api/dashboard/hackathons/${hackathonId}/prize-tracks`);
|
|
5
5
|
if (options.json) {
|
|
6
6
|
console.log(formatJson(data));
|
|
7
7
|
return;
|
|
8
8
|
}
|
|
9
|
-
if (!data.
|
|
10
|
-
console.log("No
|
|
9
|
+
if (!data.tracks?.length) {
|
|
10
|
+
console.log("No prize tracks found.");
|
|
11
11
|
return;
|
|
12
12
|
}
|
|
13
|
-
|
|
14
|
-
...w,
|
|
15
|
-
events_list: w.events.join(", "),
|
|
16
|
-
active_str: w.active ? "Active" : "Inactive"
|
|
17
|
-
}));
|
|
18
|
-
console.log(formatTable(rows, [
|
|
13
|
+
console.log(formatTable(data.tracks, [
|
|
19
14
|
{
|
|
20
|
-
key: "
|
|
15
|
+
key: "trackId",
|
|
21
16
|
label: "ID"
|
|
22
17
|
},
|
|
23
18
|
{
|
|
24
|
-
key: "
|
|
25
|
-
label: "
|
|
19
|
+
key: "trackName",
|
|
20
|
+
label: "Name"
|
|
26
21
|
},
|
|
27
22
|
{
|
|
28
|
-
key: "
|
|
29
|
-
label: "
|
|
23
|
+
key: "intent",
|
|
24
|
+
label: "Intent"
|
|
30
25
|
},
|
|
31
26
|
{
|
|
32
|
-
key: "
|
|
33
|
-
label: "
|
|
27
|
+
key: "style",
|
|
28
|
+
label: "Style"
|
|
29
|
+
},
|
|
30
|
+
{
|
|
31
|
+
key: "totalAssignments",
|
|
32
|
+
label: "Assignments"
|
|
33
|
+
},
|
|
34
|
+
{
|
|
35
|
+
key: "completedAssignments",
|
|
36
|
+
label: "Completed"
|
|
34
37
|
}
|
|
35
38
|
]));
|
|
36
39
|
}
|
|
37
40
|
//#endregion
|
|
38
|
-
export {
|
|
41
|
+
export { runTracksList };
|
|
39
42
|
|
|
40
43
|
//# sourceMappingURL=list6.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"list6.mjs","names":[],"sources":["../../src/commands/
|
|
1
|
+
{"version":3,"file":"list6.mjs","names":[],"sources":["../../src/commands/tracks/list.ts"],"sourcesContent":["import type { OatmealClient } from \"../../client.js\"\nimport { formatJson, formatTable } from \"../../output.js\"\nimport type { PrizeTrack } from \"../../types.js\"\n\nexport async function runTracksList(\n client: OatmealClient,\n hackathonId: string,\n options: { json?: boolean }\n): Promise<void> {\n const data = await client.get<{ tracks: PrizeTrack[] }>(\n `/api/dashboard/hackathons/${hackathonId}/prize-tracks`\n )\n\n if (options.json) {\n console.log(formatJson(data))\n return\n }\n\n if (!data.tracks?.length) {\n console.log(\"No prize tracks found.\")\n return\n }\n\n console.log(\n formatTable(data.tracks, [\n { key: \"trackId\", label: \"ID\" },\n { key: \"trackName\", label: \"Name\" },\n { key: \"intent\", label: \"Intent\" },\n { key: \"style\", label: \"Style\" },\n { key: \"totalAssignments\", label: \"Assignments\" },\n { key: \"completedAssignments\", label: \"Completed\" },\n ])\n )\n}\n"],"mappings":";;AAIA,eAAsB,cACpB,QACA,aACA,SACe;CACf,MAAM,OAAO,MAAM,OAAO,IACxB,6BAA6B,YAAY,eAC1C;AAED,KAAI,QAAQ,MAAM;AAChB,UAAQ,IAAI,WAAW,KAAK,CAAC;AAC7B;;AAGF,KAAI,CAAC,KAAK,QAAQ,QAAQ;AACxB,UAAQ,IAAI,yBAAyB;AACrC;;AAGF,SAAQ,IACN,YAAY,KAAK,QAAQ;EACvB;GAAE,KAAK;GAAW,OAAO;GAAM;EAC/B;GAAE,KAAK;GAAa,OAAO;GAAQ;EACnC;GAAE,KAAK;GAAU,OAAO;GAAU;EAClC;GAAE,KAAK;GAAS,OAAO;GAAS;EAChC;GAAE,KAAK;GAAoB,OAAO;GAAe;EACjD;GAAE,KAAK;GAAwB,OAAO;;EACvC,CAAC,CACH"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { i as formatTable, n as formatJson } from "../cli.mjs";
|
|
2
|
+
//#region src/commands/webhooks/list.ts
|
|
3
|
+
async function runWebhooksList(client, options) {
|
|
4
|
+
const data = await client.get("/api/v1/webhooks");
|
|
5
|
+
if (options.json) {
|
|
6
|
+
console.log(formatJson(data));
|
|
7
|
+
return;
|
|
8
|
+
}
|
|
9
|
+
if (!data.webhooks?.length) {
|
|
10
|
+
console.log("No webhooks found.");
|
|
11
|
+
return;
|
|
12
|
+
}
|
|
13
|
+
const rows = data.webhooks.map((w) => ({
|
|
14
|
+
...w,
|
|
15
|
+
events_list: w.events.join(", "),
|
|
16
|
+
active_str: w.active ? "Active" : "Inactive"
|
|
17
|
+
}));
|
|
18
|
+
console.log(formatTable(rows, [
|
|
19
|
+
{
|
|
20
|
+
key: "id",
|
|
21
|
+
label: "ID"
|
|
22
|
+
},
|
|
23
|
+
{
|
|
24
|
+
key: "url",
|
|
25
|
+
label: "URL"
|
|
26
|
+
},
|
|
27
|
+
{
|
|
28
|
+
key: "events_list",
|
|
29
|
+
label: "Events"
|
|
30
|
+
},
|
|
31
|
+
{
|
|
32
|
+
key: "active_str",
|
|
33
|
+
label: "Status"
|
|
34
|
+
}
|
|
35
|
+
]));
|
|
36
|
+
}
|
|
37
|
+
//#endregion
|
|
38
|
+
export { runWebhooksList };
|
|
39
|
+
|
|
40
|
+
//# sourceMappingURL=list7.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"list7.mjs","names":[],"sources":["../../src/commands/webhooks/list.ts"],"sourcesContent":["import type { OatmealClient } from \"../../client.js\"\nimport { formatJson, formatTable } from \"../../output.js\"\nimport type { Webhook } from \"../../types.js\"\n\nexport async function runWebhooksList(\n client: OatmealClient,\n options: { json?: boolean }\n): Promise<void> {\n const data = await client.get<{ webhooks: Webhook[] }>(\"/api/v1/webhooks\")\n\n if (options.json) {\n console.log(formatJson(data))\n return\n }\n\n if (!data.webhooks?.length) {\n console.log(\"No webhooks found.\")\n return\n }\n\n const rows = data.webhooks.map((w) => ({\n ...w,\n events_list: w.events.join(\", \"),\n active_str: w.active ? \"Active\" : \"Inactive\",\n }))\n\n console.log(\n formatTable(rows, [\n { key: \"id\", label: \"ID\" },\n { key: \"url\", label: \"URL\" },\n { key: \"events_list\", label: \"Events\" },\n { key: \"active_str\", label: \"Status\" },\n ])\n )\n}\n"],"mappings":";;AAIA,eAAsB,gBACpB,QACA,SACe;CACf,MAAM,OAAO,MAAM,OAAO,IAA6B,mBAAmB;AAE1E,KAAI,QAAQ,MAAM;AAChB,UAAQ,IAAI,WAAW,KAAK,CAAC;AAC7B;;AAGF,KAAI,CAAC,KAAK,UAAU,QAAQ;AAC1B,UAAQ,IAAI,qBAAqB;AACjC;;CAGF,MAAM,OAAO,KAAK,SAAS,KAAK,OAAO;EACrC,GAAG;EACH,aAAa,EAAE,OAAO,KAAK,KAAK;EAChC,YAAY,EAAE,SAAS,WAAW;EACnC,EAAE;AAEH,SAAQ,IACN,YAAY,MAAM;EAChB;GAAE,KAAK;GAAM,OAAO;GAAM;EAC1B;GAAE,KAAK;GAAO,OAAO;GAAO;EAC5B;GAAE,KAAK;GAAe,OAAO;GAAU;EACvC;GAAE,KAAK;GAAc,OAAO;;EAC7B,CAAC,CACH"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { n as formatJson, r as formatSuccess } from "../cli.mjs";
|
|
2
|
+
//#region src/commands/judging/track-assign.ts
|
|
3
|
+
function parseOptions(args) {
|
|
4
|
+
const options = {};
|
|
5
|
+
for (let i = 0; i < args.length; i++) switch (args[i]) {
|
|
6
|
+
case "--judge":
|
|
7
|
+
options.judgeParticipantId = args[++i];
|
|
8
|
+
break;
|
|
9
|
+
case "--track":
|
|
10
|
+
options.trackId = args[++i];
|
|
11
|
+
break;
|
|
12
|
+
case "--json":
|
|
13
|
+
options.json = true;
|
|
14
|
+
break;
|
|
15
|
+
}
|
|
16
|
+
return options;
|
|
17
|
+
}
|
|
18
|
+
async function runTrackAssign(client, hackathonId, args) {
|
|
19
|
+
const options = parseOptions(args);
|
|
20
|
+
if (!options.judgeParticipantId || !options.trackId) {
|
|
21
|
+
console.error("Usage: hackathon judging track-assign <hackathon-id> --judge <participant-id> --track <track-id>");
|
|
22
|
+
process.exit(1);
|
|
23
|
+
}
|
|
24
|
+
const result = await client.post(`/api/dashboard/hackathons/${hackathonId}/judging/track-assign`, {
|
|
25
|
+
judgeParticipantId: options.judgeParticipantId,
|
|
26
|
+
trackId: options.trackId
|
|
27
|
+
});
|
|
28
|
+
if (options.json) {
|
|
29
|
+
console.log(formatJson(result));
|
|
30
|
+
return;
|
|
31
|
+
}
|
|
32
|
+
console.log(formatSuccess(`Assigned judge to track (${result.assignedCount} submissions)`));
|
|
33
|
+
}
|
|
34
|
+
//#endregion
|
|
35
|
+
export { runTrackAssign };
|
|
36
|
+
|
|
37
|
+
//# sourceMappingURL=track-assign.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"track-assign.mjs","names":[],"sources":["../../src/commands/judging/track-assign.ts"],"sourcesContent":["import type { OatmealClient } from \"../../client.js\"\nimport { formatJson, formatSuccess } from \"../../output.js\"\n\ninterface TrackAssignOptions {\n judgeParticipantId?: string\n trackId?: string\n json?: boolean\n}\n\nfunction parseOptions(args: string[]): TrackAssignOptions {\n const options: TrackAssignOptions = {}\n for (let i = 0; i < args.length; i++) {\n switch (args[i]) {\n case \"--judge\":\n options.judgeParticipantId = args[++i]\n break\n case \"--track\":\n options.trackId = args[++i]\n break\n case \"--json\":\n options.json = true\n break\n }\n }\n return options\n}\n\nexport async function runTrackAssign(\n client: OatmealClient,\n hackathonId: string,\n args: string[]\n): Promise<void> {\n const options = parseOptions(args)\n\n if (!options.judgeParticipantId || !options.trackId) {\n console.error(\"Usage: hackathon judging track-assign <hackathon-id> --judge <participant-id> --track <track-id>\")\n process.exit(1)\n }\n\n const result = await client.post<{ assignedCount: number }>(\n `/api/dashboard/hackathons/${hackathonId}/judging/track-assign`,\n {\n judgeParticipantId: options.judgeParticipantId,\n trackId: options.trackId,\n }\n )\n\n if (options.json) {\n console.log(formatJson(result))\n return\n }\n\n console.log(formatSuccess(`Assigned judge to track (${result.assignedCount} submissions)`))\n}\n"],"mappings":";;AASA,SAAS,aAAa,MAAoC;CACxD,MAAM,UAA8B,EAAE;AACtC,MAAK,IAAI,IAAI,GAAG,IAAI,KAAK,QAAQ,IAC/B,SAAQ,KAAK,IAAb;EACE,KAAK;AACH,WAAQ,qBAAqB,KAAK,EAAE;AACpC;EACF,KAAK;AACH,WAAQ,UAAU,KAAK,EAAE;AACzB;EACF,KAAK;AACH,WAAQ,OAAO;AACf;;AAGN,QAAO;;AAGT,eAAsB,eACpB,QACA,aACA,MACe;CACf,MAAM,UAAU,aAAa,KAAK;AAElC,KAAI,CAAC,QAAQ,sBAAsB,CAAC,QAAQ,SAAS;AACnD,UAAQ,MAAM,mGAAmG;AACjH,UAAQ,KAAK,EAAE;;CAGjB,MAAM,SAAS,MAAM,OAAO,KAC1B,6BAA6B,YAAY,wBACzC;EACE,oBAAoB,QAAQ;EAC5B,SAAS,QAAQ;EAClB,CACF;AAED,KAAI,QAAQ,MAAM;AAChB,UAAQ,IAAI,WAAW,OAAO,CAAC;AAC/B;;AAGF,SAAQ,IAAI,cAAc,4BAA4B,OAAO,cAAc,eAAe,CAAC"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import { n as formatJson, r as formatSuccess } from "../cli.mjs";
|
|
2
|
+
import * as p from "@clack/prompts";
|
|
3
|
+
//#region src/commands/judging/track-unassign.ts
|
|
4
|
+
function parseOptions(args) {
|
|
5
|
+
const options = {};
|
|
6
|
+
for (let i = 0; i < args.length; i++) switch (args[i]) {
|
|
7
|
+
case "--judge":
|
|
8
|
+
options.judgeParticipantId = args[++i];
|
|
9
|
+
break;
|
|
10
|
+
case "--track":
|
|
11
|
+
options.trackId = args[++i];
|
|
12
|
+
break;
|
|
13
|
+
case "--json":
|
|
14
|
+
options.json = true;
|
|
15
|
+
break;
|
|
16
|
+
case "--yes":
|
|
17
|
+
case "-y":
|
|
18
|
+
options.yes = true;
|
|
19
|
+
break;
|
|
20
|
+
}
|
|
21
|
+
return options;
|
|
22
|
+
}
|
|
23
|
+
async function runTrackUnassign(client, hackathonId, args) {
|
|
24
|
+
const options = parseOptions(args);
|
|
25
|
+
if (!options.judgeParticipantId || !options.trackId) {
|
|
26
|
+
console.error("Usage: hackathon judging track-unassign <hackathon-id> --judge <participant-id> --track <track-id>");
|
|
27
|
+
process.exit(1);
|
|
28
|
+
}
|
|
29
|
+
if (!options.yes) {
|
|
30
|
+
const confirm = await p.confirm({ message: "Remove judge from this track?" });
|
|
31
|
+
if (p.isCancel(confirm) || !confirm) {
|
|
32
|
+
p.log.info("Cancelled.");
|
|
33
|
+
return;
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
const result = await client.delete(`/api/dashboard/hackathons/${hackathonId}/judging/track-assign`, { body: {
|
|
37
|
+
judgeParticipantId: options.judgeParticipantId,
|
|
38
|
+
trackId: options.trackId
|
|
39
|
+
} });
|
|
40
|
+
if (options.json) {
|
|
41
|
+
console.log(formatJson(result));
|
|
42
|
+
return;
|
|
43
|
+
}
|
|
44
|
+
console.log(formatSuccess(`Removed judge from track (${result.removedCount} assignments removed)`));
|
|
45
|
+
}
|
|
46
|
+
//#endregion
|
|
47
|
+
export { runTrackUnassign };
|
|
48
|
+
|
|
49
|
+
//# sourceMappingURL=track-unassign.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"track-unassign.mjs","names":[],"sources":["../../src/commands/judging/track-unassign.ts"],"sourcesContent":["import * as p from \"@clack/prompts\"\nimport type { OatmealClient } from \"../../client.js\"\nimport { formatJson, formatSuccess } from \"../../output.js\"\n\ninterface TrackUnassignOptions {\n judgeParticipantId?: string\n trackId?: string\n json?: boolean\n yes?: boolean\n}\n\nfunction parseOptions(args: string[]): TrackUnassignOptions {\n const options: TrackUnassignOptions = {}\n for (let i = 0; i < args.length; i++) {\n switch (args[i]) {\n case \"--judge\":\n options.judgeParticipantId = args[++i]\n break\n case \"--track\":\n options.trackId = args[++i]\n break\n case \"--json\":\n options.json = true\n break\n case \"--yes\":\n case \"-y\":\n options.yes = true\n break\n }\n }\n return options\n}\n\nexport async function runTrackUnassign(\n client: OatmealClient,\n hackathonId: string,\n args: string[]\n): Promise<void> {\n const options = parseOptions(args)\n\n if (!options.judgeParticipantId || !options.trackId) {\n console.error(\"Usage: hackathon judging track-unassign <hackathon-id> --judge <participant-id> --track <track-id>\")\n process.exit(1)\n }\n\n if (!options.yes) {\n const confirm = await p.confirm({ message: \"Remove judge from this track?\" })\n if (p.isCancel(confirm) || !confirm) {\n p.log.info(\"Cancelled.\")\n return\n }\n }\n\n const result = await client.delete<{ removedCount: number }>(\n `/api/dashboard/hackathons/${hackathonId}/judging/track-assign`,\n {\n body: {\n judgeParticipantId: options.judgeParticipantId,\n trackId: options.trackId,\n },\n }\n )\n\n if (options.json) {\n console.log(formatJson(result))\n return\n }\n\n console.log(formatSuccess(`Removed judge from track (${result.removedCount} assignments removed)`))\n}\n"],"mappings":";;;AAWA,SAAS,aAAa,MAAsC;CAC1D,MAAM,UAAgC,EAAE;AACxC,MAAK,IAAI,IAAI,GAAG,IAAI,KAAK,QAAQ,IAC/B,SAAQ,KAAK,IAAb;EACE,KAAK;AACH,WAAQ,qBAAqB,KAAK,EAAE;AACpC;EACF,KAAK;AACH,WAAQ,UAAU,KAAK,EAAE;AACzB;EACF,KAAK;AACH,WAAQ,OAAO;AACf;EACF,KAAK;EACL,KAAK;AACH,WAAQ,MAAM;AACd;;AAGN,QAAO;;AAGT,eAAsB,iBACpB,QACA,aACA,MACe;CACf,MAAM,UAAU,aAAa,KAAK;AAElC,KAAI,CAAC,QAAQ,sBAAsB,CAAC,QAAQ,SAAS;AACnD,UAAQ,MAAM,qGAAqG;AACnH,UAAQ,KAAK,EAAE;;AAGjB,KAAI,CAAC,QAAQ,KAAK;EAChB,MAAM,UAAU,MAAM,EAAE,QAAQ,EAAE,SAAS,iCAAiC,CAAC;AAC7E,MAAI,EAAE,SAAS,QAAQ,IAAI,CAAC,SAAS;AACnC,KAAE,IAAI,KAAK,aAAa;AACxB;;;CAIJ,MAAM,SAAS,MAAM,OAAO,OAC1B,6BAA6B,YAAY,wBACzC,EACE,MAAM;EACJ,oBAAoB,QAAQ;EAC5B,SAAS,QAAQ;EAClB,EACF,CACF;AAED,KAAI,QAAQ,MAAM;AAChB,UAAQ,IAAI,WAAW,OAAO,CAAC;AAC/B;;AAGF,SAAQ,IAAI,cAAc,6BAA6B,OAAO,aAAa,uBAAuB,CAAC"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import { n as formatJson, r as formatSuccess } from "../cli.mjs";
|
|
2
|
+
//#region src/commands/tracks/update-round.ts
|
|
3
|
+
function parseOptions(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 "--style":
|
|
10
|
+
options.style = args[++i];
|
|
11
|
+
break;
|
|
12
|
+
case "--status":
|
|
13
|
+
options.status = args[++i];
|
|
14
|
+
break;
|
|
15
|
+
case "--advancement":
|
|
16
|
+
options.advancement = args[++i];
|
|
17
|
+
break;
|
|
18
|
+
case "--json":
|
|
19
|
+
options.json = true;
|
|
20
|
+
break;
|
|
21
|
+
}
|
|
22
|
+
return options;
|
|
23
|
+
}
|
|
24
|
+
async function runTracksUpdateRound(client, hackathonId, trackId, roundId, args) {
|
|
25
|
+
if (!trackId || !roundId) {
|
|
26
|
+
console.error("Usage: hackathon tracks update-round <hackathon-id> <track-id> <round-id> [--style ...]");
|
|
27
|
+
process.exit(1);
|
|
28
|
+
}
|
|
29
|
+
const options = parseOptions(args);
|
|
30
|
+
const body = {};
|
|
31
|
+
if (options.name) body.name = options.name;
|
|
32
|
+
if (options.style) body.style = options.style;
|
|
33
|
+
if (options.status) body.status = options.status;
|
|
34
|
+
if (options.advancement) body.advancement = options.advancement;
|
|
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 result = await client.patch(`/api/dashboard/hackathons/${hackathonId}/prize-tracks/${trackId}/rounds/${roundId}`, body);
|
|
40
|
+
if (options.json) {
|
|
41
|
+
console.log(formatJson(result));
|
|
42
|
+
return;
|
|
43
|
+
}
|
|
44
|
+
console.log(formatSuccess(`Updated round ${result.id} [${result.style}, ${result.status}]`));
|
|
45
|
+
}
|
|
46
|
+
//#endregion
|
|
47
|
+
export { runTracksUpdateRound };
|
|
48
|
+
|
|
49
|
+
//# sourceMappingURL=update-round.mjs.map
|