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