@agi-ventures-canada/hackathon-cli 0.1.7 → 0.1.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/_chunks/activate-round.mjs +18 -0
- package/dist/_chunks/activate-round.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 +154 -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
|
@@ -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
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"update-round.mjs","names":[],"sources":["../../src/commands/tracks/update-round.ts"],"sourcesContent":["import type { OatmealClient } from \"../../client.js\"\nimport { formatJson, formatSuccess } from \"../../output.js\"\n\ninterface RoundUpdateOptions {\n name?: string\n style?: string\n status?: string\n advancement?: string\n json?: boolean\n}\n\nfunction parseOptions(args: string[]): RoundUpdateOptions {\n const options: RoundUpdateOptions = {}\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 \"--style\":\n options.style = args[++i]\n break\n case \"--status\":\n options.status = args[++i]\n break\n case \"--advancement\":\n options.advancement = args[++i]\n break\n case \"--json\":\n options.json = true\n break\n }\n }\n return options\n}\n\nexport async function runTracksUpdateRound(\n client: OatmealClient,\n hackathonId: string,\n trackId: string,\n roundId: string,\n args: string[]\n): Promise<void> {\n if (!trackId || !roundId) {\n console.error(\"Usage: hackathon tracks update-round <hackathon-id> <track-id> <round-id> [--style ...]\")\n process.exit(1)\n }\n\n const options = parseOptions(args)\n const body: Record<string, unknown> = {}\n if (options.name) body.name = options.name\n if (options.style) body.style = options.style\n if (options.status) body.status = options.status\n if (options.advancement) body.advancement = options.advancement\n\n if (Object.keys(body).length === 0) {\n console.error(\"Error: provide at least one field to update\")\n process.exit(1)\n }\n\n const result = await client.patch<{ id: string; status: string; style: string }>(\n `/api/dashboard/hackathons/${hackathonId}/prize-tracks/${trackId}/rounds/${roundId}`,\n body\n )\n\n if (options.json) {\n console.log(formatJson(result))\n return\n }\n\n console.log(formatSuccess(`Updated round ${result.id} [${result.style}, ${result.status}]`))\n}\n"],"mappings":";;AAWA,SAAS,aAAa,MAAoC;CACxD,MAAM,UAA8B,EAAE;AACtC,MAAK,IAAI,IAAI,GAAG,IAAI,KAAK,QAAQ,IAC/B,SAAQ,KAAK,IAAb;EACE,KAAK;AACH,WAAQ,OAAO,KAAK,EAAE;AACtB;EACF,KAAK;AACH,WAAQ,QAAQ,KAAK,EAAE;AACvB;EACF,KAAK;AACH,WAAQ,SAAS,KAAK,EAAE;AACxB;EACF,KAAK;AACH,WAAQ,cAAc,KAAK,EAAE;AAC7B;EACF,KAAK;AACH,WAAQ,OAAO;AACf;;AAGN,QAAO;;AAGT,eAAsB,qBACpB,QACA,aACA,SACA,SACA,MACe;AACf,KAAI,CAAC,WAAW,CAAC,SAAS;AACxB,UAAQ,MAAM,0FAA0F;AACxG,UAAQ,KAAK,EAAE;;CAGjB,MAAM,UAAU,aAAa,KAAK;CAClC,MAAM,OAAgC,EAAE;AACxC,KAAI,QAAQ,KAAM,MAAK,OAAO,QAAQ;AACtC,KAAI,QAAQ,MAAO,MAAK,QAAQ,QAAQ;AACxC,KAAI,QAAQ,OAAQ,MAAK,SAAS,QAAQ;AAC1C,KAAI,QAAQ,YAAa,MAAK,cAAc,QAAQ;AAEpD,KAAI,OAAO,KAAK,KAAK,CAAC,WAAW,GAAG;AAClC,UAAQ,MAAM,8CAA8C;AAC5D,UAAQ,KAAK,EAAE;;CAGjB,MAAM,SAAS,MAAM,OAAO,MAC1B,6BAA6B,YAAY,gBAAgB,QAAQ,UAAU,WAC3E,KACD;AAED,KAAI,QAAQ,MAAM;AAChB,UAAQ,IAAI,WAAW,OAAO,CAAC;AAC/B;;AAGF,SAAQ,IAAI,cAAc,iBAAiB,OAAO,GAAG,IAAI,OAAO,MAAM,IAAI,OAAO,OAAO,GAAG,CAAC"}
|
package/dist/_chunks/update5.mjs
CHANGED
|
@@ -1,56 +1,49 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
return {
|
|
22
|
-
cmd: "npm",
|
|
23
|
-
install: `npm install -g ${PKG}@latest`
|
|
24
|
-
};
|
|
25
|
-
}
|
|
26
|
-
async function runUpdate() {
|
|
27
|
-
console.log(`Current version: ${VERSION}`);
|
|
28
|
-
console.log("Checking for updates...");
|
|
29
|
-
const update = await checkForUpdate();
|
|
30
|
-
if (!update) {
|
|
31
|
-
console.log(pc.green("Already up to date."));
|
|
32
|
-
return;
|
|
1
|
+
import { n as formatJson, r as formatSuccess } from "../cli.mjs";
|
|
2
|
+
//#region src/commands/tracks/update.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 "--description":
|
|
10
|
+
options.description = args[++i];
|
|
11
|
+
break;
|
|
12
|
+
case "--intent":
|
|
13
|
+
options.intent = args[++i];
|
|
14
|
+
break;
|
|
15
|
+
case "--display-order":
|
|
16
|
+
options.displayOrder = Number(args[++i]);
|
|
17
|
+
break;
|
|
18
|
+
case "--json":
|
|
19
|
+
options.json = true;
|
|
20
|
+
break;
|
|
33
21
|
}
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
if (
|
|
38
|
-
console.
|
|
39
|
-
|
|
40
|
-
console.log(` ${pm.install}`);
|
|
41
|
-
return;
|
|
22
|
+
return options;
|
|
23
|
+
}
|
|
24
|
+
async function runTracksUpdate(client, hackathonId, trackId, args) {
|
|
25
|
+
if (!trackId) {
|
|
26
|
+
console.error("Usage: hackathon tracks update <hackathon-id> <track-id> [--name ...]");
|
|
27
|
+
process.exit(1);
|
|
42
28
|
}
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
29
|
+
const options = parseOptions(args);
|
|
30
|
+
const body = {};
|
|
31
|
+
if (options.name) body.name = options.name;
|
|
32
|
+
if (options.description) body.description = options.description;
|
|
33
|
+
if (options.intent) body.intent = options.intent;
|
|
34
|
+
if (options.displayOrder !== void 0) body.displayOrder = options.displayOrder;
|
|
35
|
+
if (Object.keys(body).length === 0) {
|
|
36
|
+
console.error("Error: provide at least one field to update");
|
|
50
37
|
process.exit(1);
|
|
51
38
|
}
|
|
39
|
+
const result = await client.patch(`/api/dashboard/hackathons/${hackathonId}/prize-tracks/${trackId}`, body);
|
|
40
|
+
if (options.json) {
|
|
41
|
+
console.log(formatJson(result));
|
|
42
|
+
return;
|
|
43
|
+
}
|
|
44
|
+
console.log(formatSuccess(`Updated track ${result.id}`));
|
|
52
45
|
}
|
|
53
46
|
//#endregion
|
|
54
|
-
export {
|
|
47
|
+
export { runTracksUpdate };
|
|
55
48
|
|
|
56
49
|
//# sourceMappingURL=update5.mjs.map
|