chofex-cli 0.1.143 → 0.1.145

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 (3) hide show
  1. package/README.md +10 -4
  2. package/dist/index.js +16 -5
  3. package/package.json +4 -4
package/README.md CHANGED
@@ -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,16 @@ 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 bio, portfolio URL, shipped project, LinkedIn and GitHub URLs, and
31
- Terms and Conditions. Use `--input` to submit a completed JSON application. The
32
- Black Box is optional: its progress and score give organizers another review
33
- metric, but never decide admission or block an application submission.
34
+ optional phone number, bio, portfolio URL, shipped project, LinkedIn and GitHub
35
+ URLs, and Terms and Conditions. Use `--input` to submit a completed JSON
36
+ application.
37
+ The Black Box does not block submission, but every challenge winner must submit
38
+ an application before being accepted. Top results receive a direct pass; other
39
+ scores give organizers another review metric.
34
40
 
35
41
  The public ranking is read-only at `https://hacktheandes.com/challenges`.
36
42
 
package/dist/index.js CHANGED
@@ -58564,7 +58564,7 @@ var challengeCatalog = [
58564
58564
  format: "accuracy",
58565
58565
  formatLabel: "Accuracy score",
58566
58566
  opensAt: "2026-09-17T14:00:00.000Z",
58567
- rankingVisibleAt: "2026-09-18T14:00:00.000Z",
58567
+ rankingVisibleAt: "2026-09-19T02:00:00.000Z",
58568
58568
  queryLimit: 25,
58569
58569
  evaluationLimit: 3,
58570
58570
  hiddenSampleSize: 1000,
@@ -58830,6 +58830,7 @@ var ChallengeCatalogSchema = exports_Schema.Struct({
58830
58830
  var nonBlank = (maximum) => exports_Schema.Trim.pipe(exports_Schema.check(exports_Schema.isMinLength(1), exports_Schema.isMaxLength(maximum)));
58831
58831
  var optionalText = (maximum) => exports_Schema.optional(nonBlank(maximum));
58832
58832
  var nullableOptionalText = (maximum) => exports_Schema.optional(exports_Schema.NullOr(nonBlank(maximum)));
58833
+ var phone = nonBlank(32);
58833
58834
  var normalizedString = (normalize2) => exports_Schema.String.pipe(exports_Schema.decode({
58834
58835
  decode: exports_SchemaGetter.transform(normalize2),
58835
58836
  encode: exports_SchemaGetter.transform((value3) => value3)
@@ -58918,6 +58919,7 @@ var joinFullName = (firstName, lastName) => {
58918
58919
  var applicationInputFields = {
58919
58920
  fullName: nonBlank(givenNameMaximum + familyNameMaximum + 1),
58920
58921
  role: nonBlank(120),
58922
+ phone: exports_Schema.optional(phone),
58921
58923
  bio: optionalText(2000),
58922
58924
  portfolioUrl: exports_Schema.optional(url),
58923
58925
  shippedProject: optionalText(2000),
@@ -58930,6 +58932,7 @@ var ApplicationInput = exports_Schema.Struct(applicationInputFields);
58930
58932
  var applicationDraftInputFields = {
58931
58933
  fullName: exports_Schema.optional(applicationInputFields.fullName),
58932
58934
  role: nullableOptionalText(120),
58935
+ phone: exports_Schema.optional(exports_Schema.NullOr(phone)),
58933
58936
  bio: nullableOptionalText(2000),
58934
58937
  portfolioUrl: exports_Schema.optional(exports_Schema.NullOr(url)),
58935
58938
  shippedProject: nullableOptionalText(2000),
@@ -58947,7 +58950,7 @@ var ApplicationPartId = exports_Schema.Literals([
58947
58950
  ]);
58948
58951
  var acceptedDetailsInputFields = {
58949
58952
  fullName: nonBlank(200),
58950
- phone: nonBlank(32),
58953
+ phone,
58951
58954
  dateOfBirth: exports_Schema.String.pipe(exports_Schema.check(exports_Schema.isPattern(/^\d{4}-\d{2}-\d{2}$/, {
58952
58955
  message: "Must use YYYY-MM-DD format"
58953
58956
  }))),
@@ -58956,7 +58959,7 @@ var acceptedDetailsInputFields = {
58956
58959
  dietaryRestrictions: optionalText(1000),
58957
58960
  accessibilityNeeds: optionalText(1000),
58958
58961
  emergencyContactName: nonBlank(200),
58959
- emergencyContactPhone: nonBlank(32),
58962
+ emergencyContactPhone: phone,
58960
58963
  mediaConsent: exports_Schema.optional(exports_Schema.Boolean),
58961
58964
  pictureSource: PictureSource
58962
58965
  };
@@ -59011,6 +59014,7 @@ var RegistrationViewSchema = exports_Schema.Struct({
59011
59014
  firstName: exports_Schema.String,
59012
59015
  lastName: exports_Schema.String,
59013
59016
  email: exports_Schema.String,
59017
+ applicationPhone: exports_Schema.optional(exports_Schema.String),
59014
59018
  fullName: exports_Schema.optional(exports_Schema.String),
59015
59019
  phone: exports_Schema.optional(exports_Schema.String),
59016
59020
  dateOfBirth: exports_Schema.optional(exports_Schema.String),
@@ -60622,6 +60626,7 @@ var withoutEmptyStrings = (input) => Object.fromEntries(Object.entries(input).fi
60622
60626
  var applicationDefaultsFromRegistration = (registration) => ({
60623
60627
  fullName: joinFullName(registration.firstName, registration.lastName),
60624
60628
  role: registration.role,
60629
+ phone: registration.applicationPhone,
60625
60630
  bio: registration.bio,
60626
60631
  portfolioUrl: registration.portfolioUrl,
60627
60632
  shippedProject: registration.shippedProject,
@@ -60662,6 +60667,7 @@ var validateSemantics = (input, requirements) => {
60662
60667
  var applicationPrompts = (defaults2) => exports_Prompt.all({
60663
60668
  fullName: requiredText("Full name", applicationInputFields.fullName, defaults2.fullName),
60664
60669
  role: requiredText("Role", applicationInputFields.role, defaults2.role),
60670
+ phone: optionalText2("Phone number (optional)", applicationInputFields.phone, defaults2.phone),
60665
60671
  bio: optionalText2("Short bio (optional)", applicationInputFields.bio, defaults2.bio),
60666
60672
  portfolioUrl: optionalText2("Portfolio URL (optional)", applicationInputFields.portfolioUrl, defaults2.portfolioUrl),
60667
60673
  shippedProject: optionalText2("What have you shipped? (optional)", applicationInputFields.shippedProject, defaults2.shippedProject),
@@ -60728,7 +60734,7 @@ var interactiveAcceptedDetails = (participationMode, pictures) => exports_Effect
60728
60734
  fullName = yield* exports_Prompt.run(requiredText("Full name exactly as it appears on your ID document", acceptedDetailsInputFields.fullName));
60729
60735
  }
60730
60736
  const details = yield* exports_Prompt.run(exports_Prompt.all({
60731
- phone: requiredText("Phone number", acceptedDetailsInputFields.phone),
60737
+ phone: requiredText("Phone number", acceptedDetailsInputFields.phone, pictures.currentPhone),
60732
60738
  dateOfBirth: dateOfBirthPrompt(),
60733
60739
  nationalIdNumber: requiredText("National ID or passport number", acceptedDetailsInputFields.nationalIdNumber),
60734
60740
  shirtSize: shirtSizePrompt(participationMode),
@@ -62601,6 +62607,7 @@ var confirmCommand = exports_Command.make("confirm", {
62601
62607
  const body = yield* acceptedDetailsInput(exports_Option.getOrUndefined(input), current.data.registration.participationMode, {
62602
62608
  clerkPictureUrl: currentUser.data.clerkPictureUrl,
62603
62609
  githubUrl: current.data.registration.githubUrl,
62610
+ currentPhone: current.data.registration.phone,
62604
62611
  currentFullName: joinFullName(current.data.registration.firstName, current.data.registration.lastName) || current.data.registration.fullName
62605
62612
  });
62606
62613
  const picturePath = exports_Option.getOrUndefined(picture);
@@ -62670,7 +62677,7 @@ var whoamiCommand = exports_Command.make("whoami", {}, exports_Effect.fn("whoami
62670
62677
  const operation = getCurrentUser({ apiUrl: options.apiUrl, token });
62671
62678
  yield* execute(options.output, operation, (result3) => `Authenticated as ${result3.email} (${result3.userId}, ${result3.tokenType}).`);
62672
62679
  })).pipe(exports_Command.withDescription("Verify the current Clerk authentication"));
62673
- var upgradeCommand = exports_Command.make("upgrade", {}, exports_Effect.fn("upgradeCommand")(function* () {
62680
+ var makeUpgradeCommand = (name) => exports_Command.make(name, {}, exports_Effect.fn("upgradeCommand")(function* () {
62674
62681
  const options = yield* root;
62675
62682
  const operation = exports_Effect.tryPromise({
62676
62683
  try: async () => {
@@ -62689,6 +62696,8 @@ var upgradeCommand = exports_Command.make("upgrade", {}, exports_Effect.fn("upgr
62689
62696
  });
62690
62697
  yield* execute(options.output, operation, () => `Updated ${cliPackageName} to the ${upgradeVersion} version.`);
62691
62698
  })).pipe(exports_Command.withDescription("Update chofex-cli to the latest version"));
62699
+ var updateCommand = makeUpgradeCommand("update");
62700
+ var upgradeCommand = makeUpgradeCommand("upgrade");
62692
62701
  var inputValidation = (stage, path4) => {
62693
62702
  if (stage === "application") {
62694
62703
  return applicationInput(path4, config.publicSiteUrl).pipe(exports_Effect.asVoid);
@@ -62713,6 +62722,7 @@ var validateCommand = exports_Command.make("validate", { input: inputFlag2, stag
62713
62722
  var applicationTemplate = {
62714
62723
  fullName: "Ada Lovelace",
62715
62724
  role: "Programmer",
62725
+ phone: "+51 999 999 999",
62716
62726
  bio: "I build tools that help people collaborate.",
62717
62727
  portfolioUrl: "https://ada.example.com",
62718
62728
  shippedProject: "An open-source analytical engine simulator.",
@@ -62750,6 +62760,7 @@ var command = root.pipe(exports_Command.withSubcommands([
62750
62760
  loginCommand,
62751
62761
  logoutCommand,
62752
62762
  whoamiCommand,
62763
+ updateCommand,
62753
62764
  upgradeCommand,
62754
62765
  validateCommand,
62755
62766
  registerCommand,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "chofex-cli",
3
- "version": "0.1.143",
3
+ "version": "0.1.145",
4
4
  "description": "Command-line client for Hack the Andes",
5
5
  "type": "module",
6
6
  "bin": {
@@ -11,12 +11,12 @@
11
11
  ],
12
12
  "repository": {
13
13
  "type": "git",
14
- "url": "git+https://github.com/crafter-station/chofex-hackathon.git",
14
+ "url": "git+https://github.com/crafter-station/hack-the-andes.git",
15
15
  "directory": "apps/cli"
16
16
  },
17
- "homepage": "https://github.com/crafter-station/chofex-hackathon#readme",
17
+ "homepage": "https://github.com/crafter-station/hack-the-andes#readme",
18
18
  "bugs": {
19
- "url": "https://github.com/crafter-station/chofex-hackathon/issues"
19
+ "url": "https://github.com/crafter-station/hack-the-andes/issues"
20
20
  },
21
21
  "license": "MIT",
22
22
  "keywords": [