chofex-cli 0.1.142 → 0.1.144
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/README.md +9 -5
- package/dist/index.js +26 -5
- package/package.json +2 -2
package/README.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# chofex-cli
|
|
2
2
|
|
|
3
|
-
Command-line client for the
|
|
3
|
+
Command-line client for Hack the Andes.
|
|
4
4
|
|
|
5
5
|
## Install
|
|
6
6
|
|
|
@@ -13,6 +13,7 @@ The installed command is `chofex`:
|
|
|
13
13
|
```sh
|
|
14
14
|
chofex
|
|
15
15
|
chofex whoami
|
|
16
|
+
chofex update
|
|
16
17
|
chofex upgrade
|
|
17
18
|
chofex register
|
|
18
19
|
chofex status
|
|
@@ -26,11 +27,14 @@ chofex challenge ranking
|
|
|
26
27
|
chofex confirm
|
|
27
28
|
```
|
|
28
29
|
|
|
30
|
+
`chofex update` and `chofex upgrade` are interchangeable; both update the CLI
|
|
31
|
+
to the latest published version.
|
|
32
|
+
|
|
29
33
|
`chofex register` collects and submits an application with full name, role,
|
|
30
|
-
optional LinkedIn and GitHub URLs, and
|
|
31
|
-
submit a completed JSON application. The
|
|
32
|
-
and score give organizers another review
|
|
33
|
-
block an application submission.
|
|
34
|
+
optional bio, portfolio URL, shipped project, LinkedIn and GitHub URLs, and
|
|
35
|
+
Terms and Conditions. Use `--input` to submit a completed JSON application. The
|
|
36
|
+
Black Box is optional: its progress and score give organizers another review
|
|
37
|
+
metric, but never decide admission or block an application submission.
|
|
34
38
|
|
|
35
39
|
The public ranking is read-only at `https://hacktheandes.com/challenges`.
|
|
36
40
|
|
package/dist/index.js
CHANGED
|
@@ -58918,6 +58918,9 @@ var joinFullName = (firstName, lastName) => {
|
|
|
58918
58918
|
var applicationInputFields = {
|
|
58919
58919
|
fullName: nonBlank(givenNameMaximum + familyNameMaximum + 1),
|
|
58920
58920
|
role: nonBlank(120),
|
|
58921
|
+
bio: optionalText(2000),
|
|
58922
|
+
portfolioUrl: exports_Schema.optional(url),
|
|
58923
|
+
shippedProject: optionalText(2000),
|
|
58921
58924
|
githubUrl: exports_Schema.optional(url),
|
|
58922
58925
|
linkedInUrl: exports_Schema.optional(url),
|
|
58923
58926
|
codeOfConductAccepted: exports_Schema.Literal(true)
|
|
@@ -58927,6 +58930,9 @@ var ApplicationInput = exports_Schema.Struct(applicationInputFields);
|
|
|
58927
58930
|
var applicationDraftInputFields = {
|
|
58928
58931
|
fullName: exports_Schema.optional(applicationInputFields.fullName),
|
|
58929
58932
|
role: nullableOptionalText(120),
|
|
58933
|
+
bio: nullableOptionalText(2000),
|
|
58934
|
+
portfolioUrl: exports_Schema.optional(exports_Schema.NullOr(url)),
|
|
58935
|
+
shippedProject: nullableOptionalText(2000),
|
|
58930
58936
|
githubUrl: exports_Schema.optional(exports_Schema.NullOr(url)),
|
|
58931
58937
|
linkedInUrl: exports_Schema.optional(exports_Schema.NullOr(url)),
|
|
58932
58938
|
codeOfConductAccepted: exports_Schema.optional(exports_Schema.Boolean)
|
|
@@ -59680,6 +59686,9 @@ var shipmentInput = (path4, flags) => {
|
|
|
59680
59686
|
};
|
|
59681
59687
|
var defaultChallengeSlug = "black-box";
|
|
59682
59688
|
|
|
59689
|
+
// src/brand.ts
|
|
59690
|
+
var eventName = "Hack the Andes";
|
|
59691
|
+
|
|
59683
59692
|
// src/challenge-output.ts
|
|
59684
59693
|
var remainingBar = (used, limit) => {
|
|
59685
59694
|
if (limit <= 0)
|
|
@@ -59696,7 +59705,7 @@ var challengeLaunchNotice = (title, opensAt, now3 = new Date) => {
|
|
|
59696
59705
|
return challengeOpeningNotice(title, opensAt);
|
|
59697
59706
|
};
|
|
59698
59707
|
var challengeListText = (catalog) => {
|
|
59699
|
-
const lines2 = [
|
|
59708
|
+
const lines2 = [`${eventName} challenges`, ""];
|
|
59700
59709
|
for (const challenge of catalog.challenges) {
|
|
59701
59710
|
let state = "open";
|
|
59702
59711
|
if (!challenge.open) {
|
|
@@ -59992,7 +60001,7 @@ var root = exports_Command.make("chofex").pipe(exports_Command.withSharedFlags({
|
|
|
59992
60001
|
apiUrl: exports_Flag.string("api-url").pipe(exports_Flag.withDefault(config.apiUrl), exports_Flag.withDescription("Chofex API base URL")),
|
|
59993
60002
|
output: exports_Flag.choice("output", ["human", "json"]).pipe(exports_Flag.withDefault("human"), exports_Flag.withDescription("Output format")),
|
|
59994
60003
|
token: exports_Flag.string("token").pipe(exports_Flag.optional, exports_Flag.withDescription("Clerk OAuth token (prefer CHOFEX_TOKEN to avoid shell history)"))
|
|
59995
|
-
}), exports_Command.withDescription(
|
|
60004
|
+
}), exports_Command.withDescription(`Register for and manage your ${eventName} application`));
|
|
59996
60005
|
|
|
59997
60006
|
// src/output.ts
|
|
59998
60007
|
var printJson = (value3) => exports_Effect.sync(() => {
|
|
@@ -60613,6 +60622,9 @@ var withoutEmptyStrings = (input) => Object.fromEntries(Object.entries(input).fi
|
|
|
60613
60622
|
var applicationDefaultsFromRegistration = (registration) => ({
|
|
60614
60623
|
fullName: joinFullName(registration.firstName, registration.lastName),
|
|
60615
60624
|
role: registration.role,
|
|
60625
|
+
bio: registration.bio,
|
|
60626
|
+
portfolioUrl: registration.portfolioUrl,
|
|
60627
|
+
shippedProject: registration.shippedProject,
|
|
60616
60628
|
githubUrl: registration.githubUrl,
|
|
60617
60629
|
linkedInUrl: registration.linkedInUrl,
|
|
60618
60630
|
codeOfConductAccepted: registration.codeOfConductAccepted ? true : undefined
|
|
@@ -60650,6 +60662,9 @@ var validateSemantics = (input, requirements) => {
|
|
|
60650
60662
|
var applicationPrompts = (defaults2) => exports_Prompt.all({
|
|
60651
60663
|
fullName: requiredText("Full name", applicationInputFields.fullName, defaults2.fullName),
|
|
60652
60664
|
role: requiredText("Role", applicationInputFields.role, defaults2.role),
|
|
60665
|
+
bio: optionalText2("Short bio (optional)", applicationInputFields.bio, defaults2.bio),
|
|
60666
|
+
portfolioUrl: optionalText2("Portfolio URL (optional)", applicationInputFields.portfolioUrl, defaults2.portfolioUrl),
|
|
60667
|
+
shippedProject: optionalText2("What have you shipped? (optional)", applicationInputFields.shippedProject, defaults2.shippedProject),
|
|
60653
60668
|
linkedInUrl: profileUrlPrompt("LinkedIn username (optional)", "LinkedIn URL (optional)", linkedInProfilePrefix, applicationInputFields.linkedInUrl, defaults2.linkedInUrl),
|
|
60654
60669
|
githubUrl: profileUrlPrompt("GitHub username (optional)", "GitHub URL (optional)", githubProfilePrefix, applicationInputFields.githubUrl, defaults2.githubUrl)
|
|
60655
60670
|
});
|
|
@@ -62655,7 +62670,7 @@ var whoamiCommand = exports_Command.make("whoami", {}, exports_Effect.fn("whoami
|
|
|
62655
62670
|
const operation = getCurrentUser({ apiUrl: options.apiUrl, token });
|
|
62656
62671
|
yield* execute(options.output, operation, (result3) => `Authenticated as ${result3.email} (${result3.userId}, ${result3.tokenType}).`);
|
|
62657
62672
|
})).pipe(exports_Command.withDescription("Verify the current Clerk authentication"));
|
|
62658
|
-
var
|
|
62673
|
+
var makeUpgradeCommand = (name) => exports_Command.make(name, {}, exports_Effect.fn("upgradeCommand")(function* () {
|
|
62659
62674
|
const options = yield* root;
|
|
62660
62675
|
const operation = exports_Effect.tryPromise({
|
|
62661
62676
|
try: async () => {
|
|
@@ -62674,6 +62689,8 @@ var upgradeCommand = exports_Command.make("upgrade", {}, exports_Effect.fn("upgr
|
|
|
62674
62689
|
});
|
|
62675
62690
|
yield* execute(options.output, operation, () => `Updated ${cliPackageName} to the ${upgradeVersion} version.`);
|
|
62676
62691
|
})).pipe(exports_Command.withDescription("Update chofex-cli to the latest version"));
|
|
62692
|
+
var updateCommand = makeUpgradeCommand("update");
|
|
62693
|
+
var upgradeCommand = makeUpgradeCommand("upgrade");
|
|
62677
62694
|
var inputValidation = (stage, path4) => {
|
|
62678
62695
|
if (stage === "application") {
|
|
62679
62696
|
return applicationInput(path4, config.publicSiteUrl).pipe(exports_Effect.asVoid);
|
|
@@ -62698,6 +62715,9 @@ var validateCommand = exports_Command.make("validate", { input: inputFlag2, stag
|
|
|
62698
62715
|
var applicationTemplate = {
|
|
62699
62716
|
fullName: "Ada Lovelace",
|
|
62700
62717
|
role: "Programmer",
|
|
62718
|
+
bio: "I build tools that help people collaborate.",
|
|
62719
|
+
portfolioUrl: "https://ada.example.com",
|
|
62720
|
+
shippedProject: "An open-source analytical engine simulator.",
|
|
62701
62721
|
githubUrl: "https://github.com/ada-lovelace",
|
|
62702
62722
|
linkedInUrl: "https://linkedin.com/in/ada-lovelace",
|
|
62703
62723
|
codeOfConductAccepted: true
|
|
@@ -62732,6 +62752,7 @@ var command = root.pipe(exports_Command.withSubcommands([
|
|
|
62732
62752
|
loginCommand,
|
|
62733
62753
|
logoutCommand,
|
|
62734
62754
|
whoamiCommand,
|
|
62755
|
+
updateCommand,
|
|
62735
62756
|
upgradeCommand,
|
|
62736
62757
|
validateCommand,
|
|
62737
62758
|
registerCommand,
|
|
@@ -62801,7 +62822,7 @@ var renderWelcome = ({
|
|
|
62801
62822
|
const width = Math.max(1, Math.min(Math.floor(columns), 72));
|
|
62802
62823
|
if (width < 24) {
|
|
62803
62824
|
return [
|
|
62804
|
-
|
|
62825
|
+
eventName,
|
|
62805
62826
|
"by Chofex",
|
|
62806
62827
|
"S/8,000 in prizes",
|
|
62807
62828
|
"Only for the best engineers from Peru."
|
|
@@ -62835,7 +62856,7 @@ var renderWelcome = ({
|
|
|
62835
62856
|
let heading = "";
|
|
62836
62857
|
let foreground = palette.text;
|
|
62837
62858
|
if (y === 3)
|
|
62838
|
-
heading =
|
|
62859
|
+
heading = eventName;
|
|
62839
62860
|
if (y === 4) {
|
|
62840
62861
|
heading = "by Chofex";
|
|
62841
62862
|
foreground = palette.sun;
|
package/package.json
CHANGED