@agi-ventures-canada/hackathon-cli 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (121) hide show
  1. package/bin/cli.mjs +11 -0
  2. package/dist/_chunks/assign.mjs +35 -0
  3. package/dist/_chunks/assign.mjs.map +1 -0
  4. package/dist/_chunks/assignments-create.mjs +37 -0
  5. package/dist/_chunks/assignments-create.mjs.map +1 -0
  6. package/dist/_chunks/assignments-delete.mjs +22 -0
  7. package/dist/_chunks/assignments-delete.mjs.map +1 -0
  8. package/dist/_chunks/assignments-list.mjs +35 -0
  9. package/dist/_chunks/assignments-list.mjs.map +1 -0
  10. package/dist/_chunks/auto-assign.mjs +31 -0
  11. package/dist/_chunks/auto-assign.mjs.map +1 -0
  12. package/dist/_chunks/calculate.mjs +18 -0
  13. package/dist/_chunks/calculate.mjs.map +1 -0
  14. package/dist/_chunks/cancel.mjs +22 -0
  15. package/dist/_chunks/cancel.mjs.map +1 -0
  16. package/dist/_chunks/config.mjs +70 -0
  17. package/dist/_chunks/config.mjs.map +1 -0
  18. package/dist/_chunks/constants.mjs +14 -0
  19. package/dist/_chunks/constants.mjs.map +1 -0
  20. package/dist/_chunks/create.mjs +66 -0
  21. package/dist/_chunks/create.mjs.map +1 -0
  22. package/dist/_chunks/create2.mjs +47 -0
  23. package/dist/_chunks/create2.mjs.map +1 -0
  24. package/dist/_chunks/create3.mjs +51 -0
  25. package/dist/_chunks/create3.mjs.map +1 -0
  26. package/dist/_chunks/create4.mjs +55 -0
  27. package/dist/_chunks/create4.mjs.map +1 -0
  28. package/dist/_chunks/create5.mjs +60 -0
  29. package/dist/_chunks/create5.mjs.map +1 -0
  30. package/dist/_chunks/create6.mjs +57 -0
  31. package/dist/_chunks/create6.mjs.map +1 -0
  32. package/dist/_chunks/criteria-create.mjs +77 -0
  33. package/dist/_chunks/criteria-create.mjs.map +1 -0
  34. package/dist/_chunks/criteria-delete.mjs +22 -0
  35. package/dist/_chunks/criteria-delete.mjs.map +1 -0
  36. package/dist/_chunks/criteria-list.mjs +35 -0
  37. package/dist/_chunks/criteria-list.mjs.map +1 -0
  38. package/dist/_chunks/criteria-update.mjs +49 -0
  39. package/dist/_chunks/criteria-update.mjs.map +1 -0
  40. package/dist/_chunks/delete.mjs +24 -0
  41. package/dist/_chunks/delete.mjs.map +1 -0
  42. package/dist/_chunks/delete2.mjs +22 -0
  43. package/dist/_chunks/delete2.mjs.map +1 -0
  44. package/dist/_chunks/delete3.mjs +22 -0
  45. package/dist/_chunks/delete3.mjs.map +1 -0
  46. package/dist/_chunks/delete4.mjs +22 -0
  47. package/dist/_chunks/delete4.mjs.map +1 -0
  48. package/dist/_chunks/delete5.mjs +22 -0
  49. package/dist/_chunks/delete5.mjs.map +1 -0
  50. package/dist/_chunks/get.mjs +61 -0
  51. package/dist/_chunks/get.mjs.map +1 -0
  52. package/dist/_chunks/get2.mjs +43 -0
  53. package/dist/_chunks/get2.mjs.map +1 -0
  54. package/dist/_chunks/get3.mjs +39 -0
  55. package/dist/_chunks/get3.mjs.map +1 -0
  56. package/dist/_chunks/get4.mjs +47 -0
  57. package/dist/_chunks/get4.mjs.map +1 -0
  58. package/dist/_chunks/hackathons.mjs +64 -0
  59. package/dist/_chunks/hackathons.mjs.map +1 -0
  60. package/dist/_chunks/invitations-cancel.mjs +22 -0
  61. package/dist/_chunks/invitations-cancel.mjs.map +1 -0
  62. package/dist/_chunks/invitations-list.mjs +31 -0
  63. package/dist/_chunks/invitations-list.mjs.map +1 -0
  64. package/dist/_chunks/judges-add.mjs +37 -0
  65. package/dist/_chunks/judges-add.mjs.map +1 -0
  66. package/dist/_chunks/judges-list.mjs +35 -0
  67. package/dist/_chunks/judges-list.mjs.map +1 -0
  68. package/dist/_chunks/judges-remove.mjs +22 -0
  69. package/dist/_chunks/judges-remove.mjs.map +1 -0
  70. package/dist/_chunks/list.mjs +39 -0
  71. package/dist/_chunks/list.mjs.map +1 -0
  72. package/dist/_chunks/list2.mjs +37 -0
  73. package/dist/_chunks/list2.mjs.map +1 -0
  74. package/dist/_chunks/list3.mjs +31 -0
  75. package/dist/_chunks/list3.mjs.map +1 -0
  76. package/dist/_chunks/list4.mjs +35 -0
  77. package/dist/_chunks/list4.mjs.map +1 -0
  78. package/dist/_chunks/list5.mjs +39 -0
  79. package/dist/_chunks/list5.mjs.map +1 -0
  80. package/dist/_chunks/list6.mjs +40 -0
  81. package/dist/_chunks/list6.mjs.map +1 -0
  82. package/dist/_chunks/login.mjs +114 -0
  83. package/dist/_chunks/login.mjs.map +1 -0
  84. package/dist/_chunks/logout.mjs +16 -0
  85. package/dist/_chunks/logout.mjs.map +1 -0
  86. package/dist/_chunks/org.mjs +35 -0
  87. package/dist/_chunks/org.mjs.map +1 -0
  88. package/dist/_chunks/pick-results.mjs +35 -0
  89. package/dist/_chunks/pick-results.mjs.map +1 -0
  90. package/dist/_chunks/publish.mjs +22 -0
  91. package/dist/_chunks/publish.mjs.map +1 -0
  92. package/dist/_chunks/reorder.mjs +16 -0
  93. package/dist/_chunks/reorder.mjs.map +1 -0
  94. package/dist/_chunks/reorder2.mjs +16 -0
  95. package/dist/_chunks/reorder2.mjs.map +1 -0
  96. package/dist/_chunks/resolve.mjs +15 -0
  97. package/dist/_chunks/resolve.mjs.map +1 -0
  98. package/dist/_chunks/result.mjs +46 -0
  99. package/dist/_chunks/result.mjs.map +1 -0
  100. package/dist/_chunks/results.mjs +43 -0
  101. package/dist/_chunks/results.mjs.map +1 -0
  102. package/dist/_chunks/submissions.mjs +35 -0
  103. package/dist/_chunks/submissions.mjs.map +1 -0
  104. package/dist/_chunks/unassign.mjs +22 -0
  105. package/dist/_chunks/unassign.mjs.map +1 -0
  106. package/dist/_chunks/unpublish.mjs +22 -0
  107. package/dist/_chunks/unpublish.mjs.map +1 -0
  108. package/dist/_chunks/update.mjs +47 -0
  109. package/dist/_chunks/update.mjs.map +1 -0
  110. package/dist/_chunks/update2.mjs +45 -0
  111. package/dist/_chunks/update2.mjs.map +1 -0
  112. package/dist/_chunks/update3.mjs +49 -0
  113. package/dist/_chunks/update3.mjs.map +1 -0
  114. package/dist/_chunks/update4.mjs +48 -0
  115. package/dist/_chunks/update4.mjs.map +1 -0
  116. package/dist/_chunks/whoami.mjs +31 -0
  117. package/dist/_chunks/whoami.mjs.map +1 -0
  118. package/dist/cli.d.mts +1 -0
  119. package/dist/cli.mjs +711 -0
  120. package/dist/cli.mjs.map +1 -0
  121. package/package.json +35 -0
@@ -0,0 +1,39 @@
1
+ import { i as formatTable, n as formatJson } from "../cli.mjs";
2
+ //#region src/commands/results/get.ts
3
+ async function runResultsGet(client, hackathonId, options) {
4
+ if (!hackathonId) {
5
+ console.error("Usage: oatmeal results get <hackathon-id>");
6
+ process.exit(1);
7
+ }
8
+ const data = await client.get(`/api/dashboard/hackathons/${hackathonId}/results`);
9
+ if (options.json) {
10
+ console.log(formatJson(data));
11
+ return;
12
+ }
13
+ if (!data.rankings?.length) {
14
+ console.log("No results available. Run 'oatmeal results calculate <id>' first.");
15
+ return;
16
+ }
17
+ console.log(formatTable(data.rankings, [
18
+ {
19
+ key: "rank",
20
+ label: "#"
21
+ },
22
+ {
23
+ key: "submission_name",
24
+ label: "Submission"
25
+ },
26
+ {
27
+ key: "team_name",
28
+ label: "Team"
29
+ },
30
+ {
31
+ key: "total_score",
32
+ label: "Score"
33
+ }
34
+ ]));
35
+ }
36
+ //#endregion
37
+ export { runResultsGet };
38
+
39
+ //# sourceMappingURL=get3.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get3.mjs","names":[],"sources":["../../src/commands/results/get.ts"],"sourcesContent":["import type { OatmealClient } from \"../../client.js\"\nimport { formatJson, formatTable } from \"../../output.js\"\nimport type { ResultsData } from \"../../types.js\"\n\nexport async function runResultsGet(\n client: OatmealClient,\n hackathonId: string,\n options: { json?: boolean }\n): Promise<void> {\n if (!hackathonId) {\n console.error(\"Usage: oatmeal results get <hackathon-id>\")\n process.exit(1)\n }\n\n const data = await client.get<ResultsData>(\n `/api/dashboard/hackathons/${hackathonId}/results`\n )\n\n if (options.json) {\n console.log(formatJson(data))\n return\n }\n\n if (!data.rankings?.length) {\n console.log(\"No results available. Run 'oatmeal results calculate <id>' first.\")\n return\n }\n\n console.log(\n formatTable(data.rankings, [\n { key: \"rank\", label: \"#\" },\n { key: \"submission_name\", label: \"Submission\" },\n { key: \"team_name\", label: \"Team\" },\n { key: \"total_score\", label: \"Score\" },\n ])\n )\n}\n"],"mappings":";;AAIA,eAAsB,cACpB,QACA,aACA,SACe;AACf,KAAI,CAAC,aAAa;AAChB,UAAQ,MAAM,4CAA4C;AAC1D,UAAQ,KAAK,EAAE;;CAGjB,MAAM,OAAO,MAAM,OAAO,IACxB,6BAA6B,YAAY,UAC1C;AAED,KAAI,QAAQ,MAAM;AAChB,UAAQ,IAAI,WAAW,KAAK,CAAC;AAC7B;;AAGF,KAAI,CAAC,KAAK,UAAU,QAAQ;AAC1B,UAAQ,IAAI,oEAAoE;AAChF;;AAGF,SAAQ,IACN,YAAY,KAAK,UAAU;EACzB;GAAE,KAAK;GAAQ,OAAO;GAAK;EAC3B;GAAE,KAAK;GAAmB,OAAO;GAAc;EAC/C;GAAE,KAAK;GAAa,OAAO;GAAQ;EACnC;GAAE,KAAK;GAAe,OAAO;;EAC9B,CAAC,CACH"}
@@ -0,0 +1,47 @@
1
+ import { n as formatJson, t as formatDetail } from "../cli.mjs";
2
+ //#region src/commands/schedules/get.ts
3
+ async function runSchedulesGet(client, scheduleId, options) {
4
+ if (!scheduleId) {
5
+ console.error("Usage: oatmeal schedules get <schedule-id>");
6
+ process.exit(1);
7
+ }
8
+ const schedule = await client.get(`/api/dashboard/schedules/${scheduleId}`);
9
+ if (options.json) {
10
+ console.log(formatJson(schedule));
11
+ return;
12
+ }
13
+ console.log(formatDetail([
14
+ {
15
+ label: "ID",
16
+ value: schedule.id
17
+ },
18
+ {
19
+ label: "Name",
20
+ value: schedule.name
21
+ },
22
+ {
23
+ label: "Cron",
24
+ value: schedule.cron_expression
25
+ },
26
+ {
27
+ label: "Enabled",
28
+ value: String(schedule.enabled)
29
+ },
30
+ {
31
+ label: "Last Run",
32
+ value: schedule.last_run_at
33
+ },
34
+ {
35
+ label: "Next Run",
36
+ value: schedule.next_run_at
37
+ },
38
+ {
39
+ label: "Created",
40
+ value: schedule.created_at
41
+ }
42
+ ]));
43
+ }
44
+ //#endregion
45
+ export { runSchedulesGet };
46
+
47
+ //# sourceMappingURL=get4.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get4.mjs","names":[],"sources":["../../src/commands/schedules/get.ts"],"sourcesContent":["import type { OatmealClient } from \"../../client.js\"\nimport { formatDetail, formatJson } from \"../../output.js\"\nimport type { Schedule } from \"../../types.js\"\n\nexport async function runSchedulesGet(\n client: OatmealClient,\n scheduleId: string,\n options: { json?: boolean }\n): Promise<void> {\n if (!scheduleId) {\n console.error(\"Usage: oatmeal schedules get <schedule-id>\")\n process.exit(1)\n }\n\n const schedule = await client.get<Schedule>(`/api/dashboard/schedules/${scheduleId}`)\n\n if (options.json) {\n console.log(formatJson(schedule))\n return\n }\n\n console.log(\n formatDetail([\n { label: \"ID\", value: schedule.id },\n { label: \"Name\", value: schedule.name },\n { label: \"Cron\", value: schedule.cron_expression },\n { label: \"Enabled\", value: String(schedule.enabled) },\n { label: \"Last Run\", value: schedule.last_run_at },\n { label: \"Next Run\", value: schedule.next_run_at },\n { label: \"Created\", value: schedule.created_at },\n ])\n )\n}\n"],"mappings":";;AAIA,eAAsB,gBACpB,QACA,YACA,SACe;AACf,KAAI,CAAC,YAAY;AACf,UAAQ,MAAM,6CAA6C;AAC3D,UAAQ,KAAK,EAAE;;CAGjB,MAAM,WAAW,MAAM,OAAO,IAAc,4BAA4B,aAAa;AAErF,KAAI,QAAQ,MAAM;AAChB,UAAQ,IAAI,WAAW,SAAS,CAAC;AACjC;;AAGF,SAAQ,IACN,aAAa;EACX;GAAE,OAAO;GAAM,OAAO,SAAS;GAAI;EACnC;GAAE,OAAO;GAAQ,OAAO,SAAS;GAAM;EACvC;GAAE,OAAO;GAAQ,OAAO,SAAS;GAAiB;EAClD;GAAE,OAAO;GAAW,OAAO,OAAO,SAAS,QAAA;GAAU;EACrD;GAAE,OAAO;GAAY,OAAO,SAAS;GAAa;EAClD;GAAE,OAAO;GAAY,OAAO,SAAS;GAAa;EAClD;GAAE,OAAO;GAAW,OAAO,SAAS;;EACrC,CAAC,CACH"}
@@ -0,0 +1,64 @@
1
+ import { i as formatTable, n as formatJson } from "../cli.mjs";
2
+ //#region src/commands/browse/hackathons.ts
3
+ function parseBrowseHackathonsOptions(args) {
4
+ const options = {};
5
+ for (let i = 0; i < args.length; i++) switch (args[i]) {
6
+ case "--search":
7
+ case "-s":
8
+ options.search = args[++i];
9
+ break;
10
+ case "--page":
11
+ options.page = parseInt(args[++i], 10);
12
+ break;
13
+ case "--limit":
14
+ options.limit = parseInt(args[++i], 10);
15
+ break;
16
+ case "--json":
17
+ options.json = true;
18
+ break;
19
+ }
20
+ return options;
21
+ }
22
+ async function runBrowseHackathons(client, args) {
23
+ const options = parseBrowseHackathonsOptions(args);
24
+ const params = {
25
+ q: options.search,
26
+ page: options.page,
27
+ limit: options.limit
28
+ };
29
+ const data = await client.get("/api/public/hackathons", { params });
30
+ if (options.json) {
31
+ console.log(formatJson(data));
32
+ return;
33
+ }
34
+ if (!data.hackathons?.length) {
35
+ console.log("No hackathons found.");
36
+ return;
37
+ }
38
+ console.log(formatTable(data.hackathons, [
39
+ {
40
+ key: "name",
41
+ label: "Name"
42
+ },
43
+ {
44
+ key: "slug",
45
+ label: "Slug"
46
+ },
47
+ {
48
+ key: "status",
49
+ label: "Status"
50
+ },
51
+ {
52
+ key: "starts_at",
53
+ label: "Starts"
54
+ },
55
+ {
56
+ key: "ends_at",
57
+ label: "Ends"
58
+ }
59
+ ]));
60
+ }
61
+ //#endregion
62
+ export { runBrowseHackathons };
63
+
64
+ //# sourceMappingURL=hackathons.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hackathons.mjs","names":[],"sources":["../../src/commands/browse/hackathons.ts"],"sourcesContent":["import type { OatmealClient } from \"../../client.js\"\nimport { formatJson, formatTable } from \"../../output.js\"\nimport type { Hackathon } from \"../../types.js\"\n\ninterface BrowseHackathonsOptions {\n search?: string\n page?: number\n limit?: number\n json?: boolean\n}\n\nexport function parseBrowseHackathonsOptions(args: string[]): BrowseHackathonsOptions {\n const options: BrowseHackathonsOptions = {}\n for (let i = 0; i < args.length; i++) {\n switch (args[i]) {\n case \"--search\":\n case \"-s\":\n options.search = args[++i]\n break\n case \"--page\":\n options.page = parseInt(args[++i], 10)\n break\n case \"--limit\":\n options.limit = parseInt(args[++i], 10)\n break\n case \"--json\":\n options.json = true\n break\n }\n }\n return options\n}\n\nexport async function runBrowseHackathons(\n client: OatmealClient,\n args: string[]\n): Promise<void> {\n const options = parseBrowseHackathonsOptions(args)\n\n const params: Record<string, string | number | undefined> = {\n q: options.search,\n page: options.page,\n limit: options.limit,\n }\n\n const data = await client.get<{ hackathons: Hackathon[] }>(\"/api/public/hackathons\", {\n params,\n })\n\n if (options.json) {\n console.log(formatJson(data))\n return\n }\n\n if (!data.hackathons?.length) {\n console.log(\"No hackathons found.\")\n return\n }\n\n console.log(\n formatTable(data.hackathons, [\n { key: \"name\", label: \"Name\" },\n { key: \"slug\", label: \"Slug\" },\n { key: \"status\", label: \"Status\" },\n { key: \"starts_at\", label: \"Starts\" },\n { key: \"ends_at\", label: \"Ends\" },\n ])\n )\n}\n"],"mappings":";;AAWA,SAAgB,6BAA6B,MAAyC;CACpF,MAAM,UAAmC,EAAE;AAC3C,MAAK,IAAI,IAAI,GAAG,IAAI,KAAK,QAAQ,IAC/B,SAAQ,KAAK,IAAb;EACE,KAAK;EACL,KAAK;AACH,WAAQ,SAAS,KAAK,EAAE;AACxB;EACF,KAAK;AACH,WAAQ,OAAO,SAAS,KAAK,EAAE,IAAI,GAAG;AACtC;EACF,KAAK;AACH,WAAQ,QAAQ,SAAS,KAAK,EAAE,IAAI,GAAG;AACvC;EACF,KAAK;AACH,WAAQ,OAAO;AACf;;AAGN,QAAO;;AAGT,eAAsB,oBACpB,QACA,MACe;CACf,MAAM,UAAU,6BAA6B,KAAK;CAElD,MAAM,SAAsD;EAC1D,GAAG,QAAQ;EACX,MAAM,QAAQ;EACd,OAAO,QAAQ;EAChB;CAED,MAAM,OAAO,MAAM,OAAO,IAAiC,0BAA0B,EACnF,QACD,CAAC;AAEF,KAAI,QAAQ,MAAM;AAChB,UAAQ,IAAI,WAAW,KAAK,CAAC;AAC7B;;AAGF,KAAI,CAAC,KAAK,YAAY,QAAQ;AAC5B,UAAQ,IAAI,uBAAuB;AACnC;;AAGF,SAAQ,IACN,YAAY,KAAK,YAAY;EAC3B;GAAE,KAAK;GAAQ,OAAO;GAAQ;EAC9B;GAAE,KAAK;GAAQ,OAAO;GAAQ;EAC9B;GAAE,KAAK;GAAU,OAAO;GAAU;EAClC;GAAE,KAAK;GAAa,OAAO;GAAU;EACrC;GAAE,KAAK;GAAW,OAAO;;EAC1B,CAAC,CACH"}
@@ -0,0 +1,22 @@
1
+ import { r as formatSuccess } from "../cli.mjs";
2
+ import * as p from "@clack/prompts";
3
+ //#region src/commands/judging/invitations-cancel.ts
4
+ async function runInvitationsCancel(client, hackathonId, invitationId, options) {
5
+ if (!invitationId) {
6
+ console.error("Usage: oatmeal judging invitations cancel <hackathon-id> <invitation-id>");
7
+ process.exit(1);
8
+ }
9
+ if (!options.yes) {
10
+ const confirm = await p.confirm({ message: `Cancel invitation ${invitationId}?` });
11
+ if (p.isCancel(confirm) || !confirm) {
12
+ p.log.info("Cancelled.");
13
+ return;
14
+ }
15
+ }
16
+ await client.delete(`/api/dashboard/hackathons/${hackathonId}/judging/invitations/${invitationId}`);
17
+ console.log(formatSuccess(`Cancelled invitation ${invitationId}`));
18
+ }
19
+ //#endregion
20
+ export { runInvitationsCancel };
21
+
22
+ //# sourceMappingURL=invitations-cancel.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"invitations-cancel.mjs","names":[],"sources":["../../src/commands/judging/invitations-cancel.ts"],"sourcesContent":["import * as p from \"@clack/prompts\"\nimport type { OatmealClient } from \"../../client.js\"\nimport { formatSuccess } from \"../../output.js\"\n\nexport async function runInvitationsCancel(\n client: OatmealClient,\n hackathonId: string,\n invitationId: string,\n options: { yes?: boolean }\n): Promise<void> {\n if (!invitationId) {\n console.error(\"Usage: oatmeal judging invitations cancel <hackathon-id> <invitation-id>\")\n process.exit(1)\n }\n\n if (!options.yes) {\n const confirm = await p.confirm({ message: `Cancel invitation ${invitationId}?` })\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/invitations/${invitationId}`\n )\n console.log(formatSuccess(`Cancelled invitation ${invitationId}`))\n}\n"],"mappings":";;;AAIA,eAAsB,qBACpB,QACA,aACA,cACA,SACe;AACf,KAAI,CAAC,cAAc;AACjB,UAAQ,MAAM,2EAA2E;AACzF,UAAQ,KAAK,EAAE;;AAGjB,KAAI,CAAC,QAAQ,KAAK;EAChB,MAAM,UAAU,MAAM,EAAE,QAAQ,EAAE,SAAS,qBAAqB,aAAa,IAAI,CAAC;AAClF,MAAI,EAAE,SAAS,QAAQ,IAAI,CAAC,SAAS;AACnC,KAAE,IAAI,KAAK,aAAa;AACxB;;;AAIJ,OAAM,OAAO,OACX,6BAA6B,YAAY,uBAAuB,eACjE;AACD,SAAQ,IAAI,cAAc,wBAAwB,eAAe,CAAC"}
@@ -0,0 +1,31 @@
1
+ import { i as formatTable, n as formatJson } from "../cli.mjs";
2
+ //#region src/commands/judging/invitations-list.ts
3
+ async function runInvitationsList(client, hackathonId, options) {
4
+ const data = await client.get(`/api/dashboard/hackathons/${hackathonId}/judging/invitations`);
5
+ if (options.json) {
6
+ console.log(formatJson(data));
7
+ return;
8
+ }
9
+ if (!data.invitations?.length) {
10
+ console.log("No pending invitations.");
11
+ return;
12
+ }
13
+ console.log(formatTable(data.invitations, [
14
+ {
15
+ key: "email",
16
+ label: "Email"
17
+ },
18
+ {
19
+ key: "status",
20
+ label: "Status"
21
+ },
22
+ {
23
+ key: "created_at",
24
+ label: "Sent"
25
+ }
26
+ ]));
27
+ }
28
+ //#endregion
29
+ export { runInvitationsList };
30
+
31
+ //# sourceMappingURL=invitations-list.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"invitations-list.mjs","names":[],"sources":["../../src/commands/judging/invitations-list.ts"],"sourcesContent":["import type { OatmealClient } from \"../../client.js\"\nimport { formatJson, formatTable } from \"../../output.js\"\nimport type { JudgeInvitation } from \"../../types.js\"\n\nexport async function runInvitationsList(\n client: OatmealClient,\n hackathonId: string,\n options: { json?: boolean }\n): Promise<void> {\n const data = await client.get<{ invitations: JudgeInvitation[] }>(\n `/api/dashboard/hackathons/${hackathonId}/judging/invitations`\n )\n\n if (options.json) {\n console.log(formatJson(data))\n return\n }\n\n if (!data.invitations?.length) {\n console.log(\"No pending invitations.\")\n return\n }\n\n console.log(\n formatTable(data.invitations, [\n { key: \"email\", label: \"Email\" },\n { key: \"status\", label: \"Status\" },\n { key: \"created_at\", label: \"Sent\" },\n ])\n )\n}\n"],"mappings":";;AAIA,eAAsB,mBACpB,QACA,aACA,SACe;CACf,MAAM,OAAO,MAAM,OAAO,IACxB,6BAA6B,YAAY,sBAC1C;AAED,KAAI,QAAQ,MAAM;AAChB,UAAQ,IAAI,WAAW,KAAK,CAAC;AAC7B;;AAGF,KAAI,CAAC,KAAK,aAAa,QAAQ;AAC7B,UAAQ,IAAI,0BAA0B;AACtC;;AAGF,SAAQ,IACN,YAAY,KAAK,aAAa;EAC5B;GAAE,KAAK;GAAS,OAAO;GAAS;EAChC;GAAE,KAAK;GAAU,OAAO;GAAU;EAClC;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/judges-add.ts
3
+ function parseJudgesAddOptions(args) {
4
+ const options = {};
5
+ for (let i = 0; i < args.length; i++) switch (args[i]) {
6
+ case "--email":
7
+ options.email = args[++i];
8
+ break;
9
+ case "--user-id":
10
+ options.userId = args[++i];
11
+ break;
12
+ case "--json":
13
+ options.json = true;
14
+ break;
15
+ }
16
+ return options;
17
+ }
18
+ async function runJudgesAdd(client, hackathonId, args) {
19
+ const options = parseJudgesAddOptions(args);
20
+ if (!options.email && !options.userId) {
21
+ console.error("Error: provide --email or --user-id");
22
+ process.exit(1);
23
+ }
24
+ const body = {};
25
+ if (options.email) body.email = options.email;
26
+ if (options.userId) body.user_id = options.userId;
27
+ const judge = await client.post(`/api/dashboard/hackathons/${hackathonId}/judging/judges`, body);
28
+ if (options.json) {
29
+ console.log(formatJson(judge));
30
+ return;
31
+ }
32
+ console.log(formatSuccess(`Added judge ${judge.name ?? judge.email ?? judge.id}`));
33
+ }
34
+ //#endregion
35
+ export { runJudgesAdd };
36
+
37
+ //# sourceMappingURL=judges-add.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"judges-add.mjs","names":[],"sources":["../../src/commands/judging/judges-add.ts"],"sourcesContent":["import type { OatmealClient } from \"../../client.js\"\nimport { formatJson, formatSuccess } from \"../../output.js\"\nimport type { Judge } from \"../../types.js\"\n\ninterface JudgesAddOptions {\n email?: string\n userId?: string\n json?: boolean\n}\n\nexport function parseJudgesAddOptions(args: string[]): JudgesAddOptions {\n const options: JudgesAddOptions = {}\n for (let i = 0; i < args.length; i++) {\n switch (args[i]) {\n case \"--email\":\n options.email = args[++i]\n break\n case \"--user-id\":\n options.userId = args[++i]\n break\n case \"--json\":\n options.json = true\n break\n }\n }\n return options\n}\n\nexport async function runJudgesAdd(\n client: OatmealClient,\n hackathonId: string,\n args: string[]\n): Promise<void> {\n const options = parseJudgesAddOptions(args)\n\n if (!options.email && !options.userId) {\n console.error(\"Error: provide --email or --user-id\")\n process.exit(1)\n }\n\n const body: Record<string, string> = {}\n if (options.email) body.email = options.email\n if (options.userId) body.user_id = options.userId\n\n const judge = await client.post<Judge>(\n `/api/dashboard/hackathons/${hackathonId}/judging/judges`,\n body\n )\n\n if (options.json) {\n console.log(formatJson(judge))\n return\n }\n\n console.log(formatSuccess(`Added judge ${judge.name ?? judge.email ?? judge.id}`))\n}\n"],"mappings":";;AAUA,SAAgB,sBAAsB,MAAkC;CACtE,MAAM,UAA4B,EAAE;AACpC,MAAK,IAAI,IAAI,GAAG,IAAI,KAAK,QAAQ,IAC/B,SAAQ,KAAK,IAAb;EACE,KAAK;AACH,WAAQ,QAAQ,KAAK,EAAE;AACvB;EACF,KAAK;AACH,WAAQ,SAAS,KAAK,EAAE;AACxB;EACF,KAAK;AACH,WAAQ,OAAO;AACf;;AAGN,QAAO;;AAGT,eAAsB,aACpB,QACA,aACA,MACe;CACf,MAAM,UAAU,sBAAsB,KAAK;AAE3C,KAAI,CAAC,QAAQ,SAAS,CAAC,QAAQ,QAAQ;AACrC,UAAQ,MAAM,sCAAsC;AACpD,UAAQ,KAAK,EAAE;;CAGjB,MAAM,OAA+B,EAAE;AACvC,KAAI,QAAQ,MAAO,MAAK,QAAQ,QAAQ;AACxC,KAAI,QAAQ,OAAQ,MAAK,UAAU,QAAQ;CAE3C,MAAM,QAAQ,MAAM,OAAO,KACzB,6BAA6B,YAAY,kBACzC,KACD;AAED,KAAI,QAAQ,MAAM;AAChB,UAAQ,IAAI,WAAW,MAAM,CAAC;AAC9B;;AAGF,SAAQ,IAAI,cAAc,eAAe,MAAM,QAAQ,MAAM,SAAS,MAAM,KAAK,CAAC"}
@@ -0,0 +1,35 @@
1
+ import { i as formatTable, n as formatJson } from "../cli.mjs";
2
+ //#region src/commands/judging/judges-list.ts
3
+ async function runJudgesList(client, hackathonId, options) {
4
+ const data = await client.get(`/api/dashboard/hackathons/${hackathonId}/judging/judges`);
5
+ if (options.json) {
6
+ console.log(formatJson(data));
7
+ return;
8
+ }
9
+ if (!data.judges?.length) {
10
+ console.log("No judges found.");
11
+ return;
12
+ }
13
+ const rows = data.judges.map((j) => ({
14
+ ...j,
15
+ progress: `${j.completed_count ?? 0}/${j.total_count ?? 0}`
16
+ }));
17
+ console.log(formatTable(rows, [
18
+ {
19
+ key: "name",
20
+ label: "Name"
21
+ },
22
+ {
23
+ key: "email",
24
+ label: "Email"
25
+ },
26
+ {
27
+ key: "progress",
28
+ label: "Progress"
29
+ }
30
+ ]));
31
+ }
32
+ //#endregion
33
+ export { runJudgesList };
34
+
35
+ //# sourceMappingURL=judges-list.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"judges-list.mjs","names":[],"sources":["../../src/commands/judging/judges-list.ts"],"sourcesContent":["import type { OatmealClient } from \"../../client.js\"\nimport { formatJson, formatTable } from \"../../output.js\"\nimport type { Judge } from \"../../types.js\"\n\nexport async function runJudgesList(\n client: OatmealClient,\n hackathonId: string,\n options: { json?: boolean }\n): Promise<void> {\n const data = await client.get<{ judges: Judge[] }>(\n `/api/dashboard/hackathons/${hackathonId}/judging/judges`\n )\n\n if (options.json) {\n console.log(formatJson(data))\n return\n }\n\n if (!data.judges?.length) {\n console.log(\"No judges found.\")\n return\n }\n\n const rows = data.judges.map((j) => ({\n ...j,\n progress: `${j.completed_count ?? 0}/${j.total_count ?? 0}`,\n }))\n\n console.log(\n formatTable(rows, [\n { key: \"name\", label: \"Name\" },\n { key: \"email\", label: \"Email\" },\n { key: \"progress\", label: \"Progress\" },\n ])\n )\n}\n"],"mappings":";;AAIA,eAAsB,cACpB,QACA,aACA,SACe;CACf,MAAM,OAAO,MAAM,OAAO,IACxB,6BAA6B,YAAY,iBAC1C;AAED,KAAI,QAAQ,MAAM;AAChB,UAAQ,IAAI,WAAW,KAAK,CAAC;AAC7B;;AAGF,KAAI,CAAC,KAAK,QAAQ,QAAQ;AACxB,UAAQ,IAAI,mBAAmB;AAC/B;;CAGF,MAAM,OAAO,KAAK,OAAO,KAAK,OAAO;EACnC,GAAG;EACH,UAAU,GAAG,EAAE,mBAAmB,EAAE,GAAG,EAAE,eAAe;EACzD,EAAE;AAEH,SAAQ,IACN,YAAY,MAAM;EAChB;GAAE,KAAK;GAAQ,OAAO;GAAQ;EAC9B;GAAE,KAAK;GAAS,OAAO;GAAS;EAChC;GAAE,KAAK;GAAY,OAAO;;EAC3B,CAAC,CACH"}
@@ -0,0 +1,22 @@
1
+ import { r as formatSuccess } from "../cli.mjs";
2
+ import * as p from "@clack/prompts";
3
+ //#region src/commands/judging/judges-remove.ts
4
+ async function runJudgesRemove(client, hackathonId, participantId, options) {
5
+ if (!participantId) {
6
+ console.error("Usage: oatmeal judging judges remove <hackathon-id> <participant-id>");
7
+ process.exit(1);
8
+ }
9
+ if (!options.yes) {
10
+ const confirm = await p.confirm({ message: `Remove judge ${participantId}?` });
11
+ if (p.isCancel(confirm) || !confirm) {
12
+ p.log.info("Cancelled.");
13
+ return;
14
+ }
15
+ }
16
+ await client.delete(`/api/dashboard/hackathons/${hackathonId}/judging/judges/${participantId}`);
17
+ console.log(formatSuccess(`Removed judge ${participantId}`));
18
+ }
19
+ //#endregion
20
+ export { runJudgesRemove };
21
+
22
+ //# sourceMappingURL=judges-remove.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"judges-remove.mjs","names":[],"sources":["../../src/commands/judging/judges-remove.ts"],"sourcesContent":["import * as p from \"@clack/prompts\"\nimport type { OatmealClient } from \"../../client.js\"\nimport { formatSuccess } from \"../../output.js\"\n\nexport async function runJudgesRemove(\n client: OatmealClient,\n hackathonId: string,\n participantId: string,\n options: { yes?: boolean }\n): Promise<void> {\n if (!participantId) {\n console.error(\"Usage: oatmeal judging judges remove <hackathon-id> <participant-id>\")\n process.exit(1)\n }\n\n if (!options.yes) {\n const confirm = await p.confirm({ message: `Remove judge ${participantId}?` })\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/judges/${participantId}`\n )\n console.log(formatSuccess(`Removed judge ${participantId}`))\n}\n"],"mappings":";;;AAIA,eAAsB,gBACpB,QACA,aACA,eACA,SACe;AACf,KAAI,CAAC,eAAe;AAClB,UAAQ,MAAM,uEAAuE;AACrF,UAAQ,KAAK,EAAE;;AAGjB,KAAI,CAAC,QAAQ,KAAK;EAChB,MAAM,UAAU,MAAM,EAAE,QAAQ,EAAE,SAAS,gBAAgB,cAAc,IAAI,CAAC;AAC9E,MAAI,EAAE,SAAS,QAAQ,IAAI,CAAC,SAAS;AACnC,KAAE,IAAI,KAAK,aAAa;AACxB;;;AAIJ,OAAM,OAAO,OACX,6BAA6B,YAAY,kBAAkB,gBAC5D;AACD,SAAQ,IAAI,cAAc,iBAAiB,gBAAgB,CAAC"}
@@ -0,0 +1,39 @@
1
+ import { i as formatTable, n as formatJson } from "../cli.mjs";
2
+ //#region src/commands/hackathons/list.ts
3
+ async function runHackathonsList(client, options) {
4
+ const data = await client.get("/api/dashboard/hackathons");
5
+ if (options.json) {
6
+ console.log(formatJson(data));
7
+ return;
8
+ }
9
+ if (!data.hackathons?.length) {
10
+ console.log("No hackathons found.");
11
+ return;
12
+ }
13
+ console.log(formatTable(data.hackathons, [
14
+ {
15
+ key: "name",
16
+ label: "Name"
17
+ },
18
+ {
19
+ key: "slug",
20
+ label: "Slug"
21
+ },
22
+ {
23
+ key: "status",
24
+ label: "Status"
25
+ },
26
+ {
27
+ key: "starts_at",
28
+ label: "Starts"
29
+ },
30
+ {
31
+ key: "ends_at",
32
+ label: "Ends"
33
+ }
34
+ ]));
35
+ }
36
+ //#endregion
37
+ export { runHackathonsList };
38
+
39
+ //# sourceMappingURL=list.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"list.mjs","names":[],"sources":["../../src/commands/hackathons/list.ts"],"sourcesContent":["import type { OatmealClient } from \"../../client.js\"\nimport { formatJson, formatTable } from \"../../output.js\"\nimport type { Hackathon } from \"../../types.js\"\n\nexport async function runHackathonsList(\n client: OatmealClient,\n options: { json?: boolean }\n): Promise<void> {\n const data = await client.get<{ hackathons: Hackathon[] }>(\"/api/dashboard/hackathons\")\n\n if (options.json) {\n console.log(formatJson(data))\n return\n }\n\n if (!data.hackathons?.length) {\n console.log(\"No hackathons found.\")\n return\n }\n\n console.log(\n formatTable(data.hackathons, [\n { key: \"name\", label: \"Name\" },\n { key: \"slug\", label: \"Slug\" },\n { key: \"status\", label: \"Status\" },\n { key: \"starts_at\", label: \"Starts\" },\n { key: \"ends_at\", label: \"Ends\" },\n ])\n )\n}\n"],"mappings":";;AAIA,eAAsB,kBACpB,QACA,SACe;CACf,MAAM,OAAO,MAAM,OAAO,IAAiC,4BAA4B;AAEvF,KAAI,QAAQ,MAAM;AAChB,UAAQ,IAAI,WAAW,KAAK,CAAC;AAC7B;;AAGF,KAAI,CAAC,KAAK,YAAY,QAAQ;AAC5B,UAAQ,IAAI,uBAAuB;AACnC;;AAGF,SAAQ,IACN,YAAY,KAAK,YAAY;EAC3B;GAAE,KAAK;GAAQ,OAAO;GAAQ;EAC9B;GAAE,KAAK;GAAQ,OAAO;GAAQ;EAC9B;GAAE,KAAK;GAAU,OAAO;GAAU;EAClC;GAAE,KAAK;GAAa,OAAO;GAAU;EACrC;GAAE,KAAK;GAAW,OAAO;;EAC1B,CAAC,CACH"}
@@ -0,0 +1,37 @@
1
+ import { i as formatTable, n as formatJson } from "../cli.mjs";
2
+ //#region src/commands/jobs/list.ts
3
+ async function runJobsList(client, args, options) {
4
+ let limit;
5
+ for (let i = 0; i < args.length; i++) if (args[i] === "--limit") limit = parseInt(args[++i], 10);
6
+ const data = await client.get("/api/dashboard/jobs", { params: { limit } });
7
+ if (options.json) {
8
+ console.log(formatJson(data));
9
+ return;
10
+ }
11
+ if (!data.jobs?.length) {
12
+ console.log("No jobs found.");
13
+ return;
14
+ }
15
+ console.log(formatTable(data.jobs, [
16
+ {
17
+ key: "id",
18
+ label: "ID"
19
+ },
20
+ {
21
+ key: "type",
22
+ label: "Type"
23
+ },
24
+ {
25
+ key: "status",
26
+ label: "Status"
27
+ },
28
+ {
29
+ key: "created_at",
30
+ label: "Created"
31
+ }
32
+ ]));
33
+ }
34
+ //#endregion
35
+ export { runJobsList };
36
+
37
+ //# sourceMappingURL=list2.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"list2.mjs","names":[],"sources":["../../src/commands/jobs/list.ts"],"sourcesContent":["import type { OatmealClient } from \"../../client.js\"\nimport { formatJson, formatTable } from \"../../output.js\"\nimport type { Job } from \"../../types.js\"\n\nexport async function runJobsList(\n client: OatmealClient,\n args: string[],\n options: { json?: boolean }\n): Promise<void> {\n let limit: number | undefined\n for (let i = 0; i < args.length; i++) {\n if (args[i] === \"--limit\") limit = parseInt(args[++i], 10)\n }\n\n const data = await client.get<{ jobs: Job[] }>(\"/api/dashboard/jobs\", {\n params: { limit },\n })\n\n if (options.json) {\n console.log(formatJson(data))\n return\n }\n\n if (!data.jobs?.length) {\n console.log(\"No jobs found.\")\n return\n }\n\n console.log(\n formatTable(data.jobs, [\n { key: \"id\", label: \"ID\" },\n { key: \"type\", label: \"Type\" },\n { key: \"status\", label: \"Status\" },\n { key: \"created_at\", label: \"Created\" },\n ])\n )\n}\n"],"mappings":";;AAIA,eAAsB,YACpB,QACA,MACA,SACe;CACf,IAAI;AACJ,MAAK,IAAI,IAAI,GAAG,IAAI,KAAK,QAAQ,IAC/B,KAAI,KAAK,OAAO,UAAW,SAAQ,SAAS,KAAK,EAAE,IAAI,GAAG;CAG5D,MAAM,OAAO,MAAM,OAAO,IAAqB,uBAAuB,EACpE,QAAQ,EAAE,OAAO,EAClB,CAAC;AAEF,KAAI,QAAQ,MAAM;AAChB,UAAQ,IAAI,WAAW,KAAK,CAAC;AAC7B;;AAGF,KAAI,CAAC,KAAK,MAAM,QAAQ;AACtB,UAAQ,IAAI,iBAAiB;AAC7B;;AAGF,SAAQ,IACN,YAAY,KAAK,MAAM;EACrB;GAAE,KAAK;GAAM,OAAO;GAAM;EAC1B;GAAE,KAAK;GAAQ,OAAO;GAAQ;EAC9B;GAAE,KAAK;GAAU,OAAO;GAAU;EAClC;GAAE,KAAK;GAAc,OAAO;;EAC7B,CAAC,CACH"}
@@ -0,0 +1,31 @@
1
+ import { i as formatTable, n as formatJson } from "../cli.mjs";
2
+ //#region src/commands/judge-display/list.ts
3
+ async function runJudgeDisplayList(client, hackathonId, options) {
4
+ const data = await client.get(`/api/dashboard/hackathons/${hackathonId}/judges/display`);
5
+ if (options.json) {
6
+ console.log(formatJson(data));
7
+ return;
8
+ }
9
+ if (!data.profiles?.length) {
10
+ console.log("No judge display profiles found.");
11
+ return;
12
+ }
13
+ console.log(formatTable(data.profiles, [
14
+ {
15
+ key: "name",
16
+ label: "Name"
17
+ },
18
+ {
19
+ key: "title",
20
+ label: "Title"
21
+ },
22
+ {
23
+ key: "bio",
24
+ label: "Bio"
25
+ }
26
+ ]));
27
+ }
28
+ //#endregion
29
+ export { runJudgeDisplayList };
30
+
31
+ //# sourceMappingURL=list3.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"list3.mjs","names":[],"sources":["../../src/commands/judge-display/list.ts"],"sourcesContent":["import type { OatmealClient } from \"../../client.js\"\nimport { formatJson, formatTable } from \"../../output.js\"\nimport type { JudgeDisplayProfile } from \"../../types.js\"\n\nexport async function runJudgeDisplayList(\n client: OatmealClient,\n hackathonId: string,\n options: { json?: boolean }\n): Promise<void> {\n const data = await client.get<{ profiles: JudgeDisplayProfile[] }>(\n `/api/dashboard/hackathons/${hackathonId}/judges/display`\n )\n\n if (options.json) {\n console.log(formatJson(data))\n return\n }\n\n if (!data.profiles?.length) {\n console.log(\"No judge display profiles found.\")\n return\n }\n\n console.log(\n formatTable(data.profiles, [\n { key: \"name\", label: \"Name\" },\n { key: \"title\", label: \"Title\" },\n { key: \"bio\", label: \"Bio\" },\n ])\n )\n}\n"],"mappings":";;AAIA,eAAsB,oBACpB,QACA,aACA,SACe;CACf,MAAM,OAAO,MAAM,OAAO,IACxB,6BAA6B,YAAY,iBAC1C;AAED,KAAI,QAAQ,MAAM;AAChB,UAAQ,IAAI,WAAW,KAAK,CAAC;AAC7B;;AAGF,KAAI,CAAC,KAAK,UAAU,QAAQ;AAC1B,UAAQ,IAAI,mCAAmC;AAC/C;;AAGF,SAAQ,IACN,YAAY,KAAK,UAAU;EACzB;GAAE,KAAK;GAAQ,OAAO;GAAQ;EAC9B;GAAE,KAAK;GAAS,OAAO;GAAS;EAChC;GAAE,KAAK;GAAO,OAAO;;EACtB,CAAC,CACH"}
@@ -0,0 +1,35 @@
1
+ import { i as formatTable, n as formatJson } from "../cli.mjs";
2
+ //#region src/commands/prizes/list.ts
3
+ async function runPrizesList(client, hackathonId, options) {
4
+ const data = await client.get(`/api/dashboard/hackathons/${hackathonId}/prizes`);
5
+ if (options.json) {
6
+ console.log(formatJson(data));
7
+ return;
8
+ }
9
+ if (!data.prizes?.length) {
10
+ console.log("No prizes found.");
11
+ return;
12
+ }
13
+ console.log(formatTable(data.prizes, [
14
+ {
15
+ key: "name",
16
+ label: "Name"
17
+ },
18
+ {
19
+ key: "type",
20
+ label: "Type"
21
+ },
22
+ {
23
+ key: "value",
24
+ label: "Value"
25
+ },
26
+ {
27
+ key: "assigned_submission_name",
28
+ label: "Assigned To"
29
+ }
30
+ ]));
31
+ }
32
+ //#endregion
33
+ export { runPrizesList };
34
+
35
+ //# sourceMappingURL=list4.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"list4.mjs","names":[],"sources":["../../src/commands/prizes/list.ts"],"sourcesContent":["import type { OatmealClient } from \"../../client.js\"\nimport { formatJson, formatTable } from \"../../output.js\"\nimport type { Prize } from \"../../types.js\"\n\nexport async function runPrizesList(\n client: OatmealClient,\n hackathonId: string,\n options: { json?: boolean }\n): Promise<void> {\n const data = await client.get<{ prizes: Prize[] }>(\n `/api/dashboard/hackathons/${hackathonId}/prizes`\n )\n\n if (options.json) {\n console.log(formatJson(data))\n return\n }\n\n if (!data.prizes?.length) {\n console.log(\"No prizes found.\")\n return\n }\n\n console.log(\n formatTable(data.prizes, [\n { key: \"name\", label: \"Name\" },\n { key: \"type\", label: \"Type\" },\n { key: \"value\", label: \"Value\" },\n { key: \"assigned_submission_name\", label: \"Assigned To\" },\n ])\n )\n}\n"],"mappings":";;AAIA,eAAsB,cACpB,QACA,aACA,SACe;CACf,MAAM,OAAO,MAAM,OAAO,IACxB,6BAA6B,YAAY,SAC1C;AAED,KAAI,QAAQ,MAAM;AAChB,UAAQ,IAAI,WAAW,KAAK,CAAC;AAC7B;;AAGF,KAAI,CAAC,KAAK,QAAQ,QAAQ;AACxB,UAAQ,IAAI,mBAAmB;AAC/B;;AAGF,SAAQ,IACN,YAAY,KAAK,QAAQ;EACvB;GAAE,KAAK;GAAQ,OAAO;GAAQ;EAC9B;GAAE,KAAK;GAAQ,OAAO;GAAQ;EAC9B;GAAE,KAAK;GAAS,OAAO;GAAS;EAChC;GAAE,KAAK;GAA4B,OAAO;;EAC3C,CAAC,CACH"}
@@ -0,0 +1,39 @@
1
+ import { i as formatTable, n as formatJson } from "../cli.mjs";
2
+ //#region src/commands/schedules/list.ts
3
+ async function runSchedulesList(client, options) {
4
+ const data = await client.get("/api/dashboard/schedules");
5
+ if (options.json) {
6
+ console.log(formatJson(data));
7
+ return;
8
+ }
9
+ if (!data.schedules?.length) {
10
+ console.log("No schedules found.");
11
+ return;
12
+ }
13
+ const rows = data.schedules.map((s) => ({
14
+ ...s,
15
+ enabled_str: s.enabled ? "Enabled" : "Disabled"
16
+ }));
17
+ console.log(formatTable(rows, [
18
+ {
19
+ key: "name",
20
+ label: "Name"
21
+ },
22
+ {
23
+ key: "cron_expression",
24
+ label: "Cron"
25
+ },
26
+ {
27
+ key: "enabled_str",
28
+ label: "Status"
29
+ },
30
+ {
31
+ key: "next_run_at",
32
+ label: "Next Run"
33
+ }
34
+ ]));
35
+ }
36
+ //#endregion
37
+ export { runSchedulesList };
38
+
39
+ //# sourceMappingURL=list5.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"list5.mjs","names":[],"sources":["../../src/commands/schedules/list.ts"],"sourcesContent":["import type { OatmealClient } from \"../../client.js\"\nimport { formatJson, formatTable } from \"../../output.js\"\nimport type { Schedule } from \"../../types.js\"\n\nexport async function runSchedulesList(\n client: OatmealClient,\n options: { json?: boolean }\n): Promise<void> {\n const data = await client.get<{ schedules: Schedule[] }>(\"/api/dashboard/schedules\")\n\n if (options.json) {\n console.log(formatJson(data))\n return\n }\n\n if (!data.schedules?.length) {\n console.log(\"No schedules found.\")\n return\n }\n\n const rows = data.schedules.map((s) => ({\n ...s,\n enabled_str: s.enabled ? \"Enabled\" : \"Disabled\",\n }))\n\n console.log(\n formatTable(rows, [\n { key: \"name\", label: \"Name\" },\n { key: \"cron_expression\", label: \"Cron\" },\n { key: \"enabled_str\", label: \"Status\" },\n { key: \"next_run_at\", label: \"Next Run\" },\n ])\n )\n}\n"],"mappings":";;AAIA,eAAsB,iBACpB,QACA,SACe;CACf,MAAM,OAAO,MAAM,OAAO,IAA+B,2BAA2B;AAEpF,KAAI,QAAQ,MAAM;AAChB,UAAQ,IAAI,WAAW,KAAK,CAAC;AAC7B;;AAGF,KAAI,CAAC,KAAK,WAAW,QAAQ;AAC3B,UAAQ,IAAI,sBAAsB;AAClC;;CAGF,MAAM,OAAO,KAAK,UAAU,KAAK,OAAO;EACtC,GAAG;EACH,aAAa,EAAE,UAAU,YAAY;EACtC,EAAE;AAEH,SAAQ,IACN,YAAY,MAAM;EAChB;GAAE,KAAK;GAAQ,OAAO;GAAQ;EAC9B;GAAE,KAAK;GAAmB,OAAO;GAAQ;EACzC;GAAE,KAAK;GAAe,OAAO;GAAU;EACvC;GAAE,KAAK;GAAe,OAAO;;EAC9B,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=list6.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"list6.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"}