@cloud-copilot/cli 0.2.26 → 0.2.28

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 (63) hide show
  1. package/dist/cjs/arguments/argument.d.ts +5 -2
  2. package/dist/cjs/arguments/argument.d.ts.map +1 -1
  3. package/dist/cjs/arguments/arrayValueArgument.d.ts +8 -6
  4. package/dist/cjs/arguments/arrayValueArgument.d.ts.map +1 -1
  5. package/dist/cjs/arguments/arrayValueArgument.js +3 -3
  6. package/dist/cjs/arguments/arrayValueArgument.js.map +1 -1
  7. package/dist/cjs/arguments/booleanArgument.d.ts +2 -2
  8. package/dist/cjs/arguments/booleanArgument.d.ts.map +1 -1
  9. package/dist/cjs/arguments/booleanArgument.js +2 -2
  10. package/dist/cjs/arguments/booleanArgument.js.map +1 -1
  11. package/dist/cjs/arguments/enumArgument.d.ts +6 -4
  12. package/dist/cjs/arguments/enumArgument.d.ts.map +1 -1
  13. package/dist/cjs/arguments/enumArgument.js +2 -2
  14. package/dist/cjs/arguments/enumArgument.js.map +1 -1
  15. package/dist/cjs/arguments/enumArrayArgument.d.ts +6 -4
  16. package/dist/cjs/arguments/enumArrayArgument.d.ts.map +1 -1
  17. package/dist/cjs/arguments/enumArrayArgument.js +4 -3
  18. package/dist/cjs/arguments/enumArrayArgument.js.map +1 -1
  19. package/dist/cjs/arguments/mapArgument.d.ts +8 -6
  20. package/dist/cjs/arguments/mapArgument.d.ts.map +1 -1
  21. package/dist/cjs/arguments/mapArgument.js +4 -4
  22. package/dist/cjs/arguments/mapArgument.js.map +1 -1
  23. package/dist/cjs/arguments/numberArguments.d.ts +8 -8
  24. package/dist/cjs/arguments/singleValueArgument.d.ts +8 -6
  25. package/dist/cjs/arguments/singleValueArgument.d.ts.map +1 -1
  26. package/dist/cjs/arguments/singleValueArgument.js +2 -2
  27. package/dist/cjs/arguments/singleValueArgument.js.map +1 -1
  28. package/dist/cjs/arguments/stringArguments.d.ts +8 -8
  29. package/dist/cjs/cli.d.ts.map +1 -1
  30. package/dist/cjs/cli.js +10 -7
  31. package/dist/cjs/cli.js.map +1 -1
  32. package/dist/esm/arguments/argument.d.ts +5 -2
  33. package/dist/esm/arguments/argument.d.ts.map +1 -1
  34. package/dist/esm/arguments/arrayValueArgument.d.ts +8 -6
  35. package/dist/esm/arguments/arrayValueArgument.d.ts.map +1 -1
  36. package/dist/esm/arguments/arrayValueArgument.js +3 -3
  37. package/dist/esm/arguments/arrayValueArgument.js.map +1 -1
  38. package/dist/esm/arguments/booleanArgument.d.ts +2 -2
  39. package/dist/esm/arguments/booleanArgument.d.ts.map +1 -1
  40. package/dist/esm/arguments/booleanArgument.js +2 -2
  41. package/dist/esm/arguments/booleanArgument.js.map +1 -1
  42. package/dist/esm/arguments/enumArgument.d.ts +6 -4
  43. package/dist/esm/arguments/enumArgument.d.ts.map +1 -1
  44. package/dist/esm/arguments/enumArgument.js +2 -2
  45. package/dist/esm/arguments/enumArgument.js.map +1 -1
  46. package/dist/esm/arguments/enumArrayArgument.d.ts +6 -4
  47. package/dist/esm/arguments/enumArrayArgument.d.ts.map +1 -1
  48. package/dist/esm/arguments/enumArrayArgument.js +4 -3
  49. package/dist/esm/arguments/enumArrayArgument.js.map +1 -1
  50. package/dist/esm/arguments/mapArgument.d.ts +8 -6
  51. package/dist/esm/arguments/mapArgument.d.ts.map +1 -1
  52. package/dist/esm/arguments/mapArgument.js +4 -4
  53. package/dist/esm/arguments/mapArgument.js.map +1 -1
  54. package/dist/esm/arguments/numberArguments.d.ts +8 -8
  55. package/dist/esm/arguments/singleValueArgument.d.ts +8 -6
  56. package/dist/esm/arguments/singleValueArgument.d.ts.map +1 -1
  57. package/dist/esm/arguments/singleValueArgument.js +2 -2
  58. package/dist/esm/arguments/singleValueArgument.js.map +1 -1
  59. package/dist/esm/arguments/stringArguments.d.ts +8 -8
  60. package/dist/esm/cli.d.ts.map +1 -1
  61. package/dist/esm/cli.js +10 -7
  62. package/dist/esm/cli.js.map +1 -1
  63. package/package.json +1 -1
@@ -19,19 +19,22 @@ export type Argument<ArgumentType> = {
19
19
  defaultValue: ArgumentType;
20
20
  /**
21
21
  * Validate all values passed to the argument at once.
22
+ * @param currentValue the current value of the argument
22
23
  * @param values the array of strings passed to the argument
24
+ * @param isCurrentlyDefaulted true if the current value has not been set by the user and is still the default value
23
25
  * @returns if the value is invalid, returns { valid: false, message: string } and message will be shown to the user.
24
26
  * if the value is valid, returns { valid: true, values`: ArgumentType[] } where value is the parsed value.
25
27
  */
26
- validateValues: (currentValue: ArgumentType, values: string[]) => Promise<ValidValue<ArgumentType> | InvalidValue> | ValidValue<ArgumentType> | InvalidValue;
28
+ validateValues: (currentValue: ArgumentType, values: string[], isCurrentlyDefaulted: boolean) => Promise<ValidValue<ArgumentType> | InvalidValue> | ValidValue<ArgumentType> | InvalidValue;
27
29
  /**
28
30
  * Reduces the current value and a new values into a single value.
29
31
  *
30
32
  * @param current the current value of the argument, can be undefined if there is no default value
31
33
  * @param newValues the new values being added as parsed by validateValues
34
+ * @param isCurrentlyDefaulted true if the current value has not been set by the user and is still the default value
32
35
  * @returns the new value of the argument
33
36
  */
34
- reduceValues: (currentValue: ArgumentType, newValues: NonNullable<ArgumentType>) => Promise<ArgumentType> | ArgumentType;
37
+ reduceValues: (currentValue: ArgumentType, newValues: NonNullable<ArgumentType>, isCurrentlyDefaulted: boolean) => Promise<ArgumentType> | ArgumentType;
35
38
  /**
36
39
  * If this callback is provided, it will be called when the argument is present
37
40
  *
@@ -1 +1 @@
1
- {"version":3,"file":"argument.d.ts","sourceRoot":"","sources":["../../../src/arguments/argument.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,UAAU,CAAC,CAAC,IAAI;IAAE,KAAK,EAAE,IAAI,CAAC;IAAC,KAAK,EAAE,CAAC,CAAA;CAAE,CAAA;AACrD,MAAM,MAAM,YAAY,GAAG;IAAE,KAAK,EAAE,KAAK,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAA;AAC5D,MAAM,MAAM,eAAe,CAAC,CAAC,IAAI,UAAU,CAAC,CAAC,CAAC,GAAG,YAAY,CAAA;AAE7D,MAAM,MAAM,QAAQ,CAAC,YAAY,IAAI;IACnC;;OAEG;IACH,WAAW,EAAE,MAAM,CAAA;IAEnB;;;OAGG;IACH,YAAY,EAAE,YAAY,CAAA;IAE1B;;;;;OAKG;IACH,cAAc,EAAE,CACd,YAAY,EAAE,YAAY,EAC1B,MAAM,EAAE,MAAM,EAAE,KACb,OAAO,CAAC,UAAU,CAAC,YAAY,CAAC,GAAG,YAAY,CAAC,GAAG,UAAU,CAAC,YAAY,CAAC,GAAG,YAAY,CAAA;IAE/F;;;;;;OAMG;IACH,YAAY,EAAE,CACZ,YAAY,EAAE,YAAY,EAC1B,SAAS,EAAE,WAAW,CAAC,YAAY,CAAC,KACjC,OAAO,CAAC,YAAY,CAAC,GAAG,YAAY,CAAA;IAEzC;;;;;OAKG;IACH,OAAO,CAAC,CAAC,YAAY,EAAE,YAAY,GAAG,OAAO,CAAC,YAAY,CAAC,GAAG,YAAY,CAAA;IAE1E;;;;;;;OAOG;IACH,oBAAoB,CAAC,IAAI,OAAO,CAAA;IAEhC;;;;OAIG;IACH,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB,CAAA;AAED,MAAM,MAAM,eAAe,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,aAAa,CAAC,CAAA;AAChE,MAAM,MAAM,cAAc,CAAC,YAAY,IAAI,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE,WAAW,CAAC,CAAA"}
1
+ {"version":3,"file":"argument.d.ts","sourceRoot":"","sources":["../../../src/arguments/argument.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,UAAU,CAAC,CAAC,IAAI;IAAE,KAAK,EAAE,IAAI,CAAC;IAAC,KAAK,EAAE,CAAC,CAAA;CAAE,CAAA;AACrD,MAAM,MAAM,YAAY,GAAG;IAAE,KAAK,EAAE,KAAK,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAA;AAC5D,MAAM,MAAM,eAAe,CAAC,CAAC,IAAI,UAAU,CAAC,CAAC,CAAC,GAAG,YAAY,CAAA;AAE7D,MAAM,MAAM,QAAQ,CAAC,YAAY,IAAI;IACnC;;OAEG;IACH,WAAW,EAAE,MAAM,CAAA;IAEnB;;;OAGG;IACH,YAAY,EAAE,YAAY,CAAA;IAE1B;;;;;;;OAOG;IACH,cAAc,EAAE,CACd,YAAY,EAAE,YAAY,EAC1B,MAAM,EAAE,MAAM,EAAE,EAChB,oBAAoB,EAAE,OAAO,KAC1B,OAAO,CAAC,UAAU,CAAC,YAAY,CAAC,GAAG,YAAY,CAAC,GAAG,UAAU,CAAC,YAAY,CAAC,GAAG,YAAY,CAAA;IAE/F;;;;;;;OAOG;IACH,YAAY,EAAE,CACZ,YAAY,EAAE,YAAY,EAC1B,SAAS,EAAE,WAAW,CAAC,YAAY,CAAC,EACpC,oBAAoB,EAAE,OAAO,KAC1B,OAAO,CAAC,YAAY,CAAC,GAAG,YAAY,CAAA;IAEzC;;;;;OAKG;IACH,OAAO,CAAC,CAAC,YAAY,EAAE,YAAY,GAAG,OAAO,CAAC,YAAY,CAAC,GAAG,YAAY,CAAA;IAE1E;;;;;;;OAOG;IACH,oBAAoB,CAAC,IAAI,OAAO,CAAA;IAEhC;;;;OAIG;IACH,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB,CAAA;AAED,MAAM,MAAM,eAAe,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,aAAa,CAAC,CAAA;AAChE,MAAM,MAAM,cAAc,CAAC,YAAY,IAAI,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE,WAAW,CAAC,CAAA"}
@@ -1,15 +1,17 @@
1
1
  import { Argument, PerArgumentArgs, ValidatedValues } from './argument.js';
2
2
  type ArrayValueValidator<ValueType> = (rawValue: string) => Promise<ValidatedValues<ValueType>> | ValidatedValues<ValueType>;
3
+ type ArrayWithDefault<ValueType> = {
4
+ defaultValue: ValueType[];
5
+ } & PerArgumentArgs;
6
+ type ArrayWithoutDefault<ValueType> = {
7
+ defaultValue?: undefined;
8
+ } & PerArgumentArgs;
3
9
  /**
4
10
  * Creates an array value argument factory for a specific type
5
11
  */
6
12
  export declare function arrayValueArgument<ValueType>(validator: ArrayValueValidator<ValueType>, descriptionSuffix?: string): {
7
- <const O extends {
8
- defaultValue: ValueType[];
9
- } & PerArgumentArgs>(options: O): Argument<ValueType[]>;
10
- <const O extends {
11
- defaultValue?: undefined;
12
- } & PerArgumentArgs>(options: O): Argument<ValueType[] | undefined>;
13
+ (options: ArrayWithDefault<ValueType>): Argument<ValueType[]>;
14
+ (options: ArrayWithoutDefault<ValueType>): Argument<ValueType[] | undefined>;
13
15
  };
14
16
  export {};
15
17
  //# sourceMappingURL=arrayValueArgument.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"arrayValueArgument.d.ts","sourceRoot":"","sources":["../../../src/arguments/arrayValueArgument.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,eAAe,CAAA;AAE1E,KAAK,mBAAmB,CAAC,SAAS,IAAI,CACpC,QAAQ,EAAE,MAAM,KACb,OAAO,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC,GAAG,eAAe,CAAC,SAAS,CAAC,CAAA;AAErE;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,SAAS,EAC1C,SAAS,EAAE,mBAAmB,CAAC,SAAS,CAAC,EACzC,iBAAiB,GAAE,MAAW;WAEA,CAAC,SAAS;QAAE,YAAY,EAAE,SAAS,EAAE,CAAA;KAAE,GAAG,eAAe,WAC5E,CAAC,GACT,QAAQ,CAAC,SAAS,EAAE,CAAC;WACM,CAAC,SAAS;QAAE,YAAY,CAAC,EAAE,SAAS,CAAA;KAAE,GAAG,eAAe,WAC3E,CAAC,GACT,QAAQ,CAAC,SAAS,EAAE,GAAG,SAAS,CAAC;EAsCrC"}
1
+ {"version":3,"file":"arrayValueArgument.d.ts","sourceRoot":"","sources":["../../../src/arguments/arrayValueArgument.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,eAAe,CAAA;AAE1E,KAAK,mBAAmB,CAAC,SAAS,IAAI,CACpC,QAAQ,EAAE,MAAM,KACb,OAAO,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC,GAAG,eAAe,CAAC,SAAS,CAAC,CAAA;AAErE,KAAK,gBAAgB,CAAC,SAAS,IAAI;IAAE,YAAY,EAAE,SAAS,EAAE,CAAA;CAAE,GAAG,eAAe,CAAA;AAClF,KAAK,mBAAmB,CAAC,SAAS,IAAI;IAAE,YAAY,CAAC,EAAE,SAAS,CAAA;CAAE,GAAG,eAAe,CAAA;AAKpF;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,SAAS,EAC1C,SAAS,EAAE,mBAAmB,CAAC,SAAS,CAAC,EACzC,iBAAiB,GAAE,MAAW;cAEG,gBAAgB,CAAC,SAAS,CAAC,GAAG,QAAQ,CAAC,SAAS,EAAE,CAAC;cAEzE,mBAAmB,CAAC,SAAS,CAAC,GACtC,QAAQ,CAAC,SAAS,EAAE,GAAG,SAAS,CAAC;EA2CrC"}
@@ -8,7 +8,7 @@ function arrayValueArgument(validator, descriptionSuffix = '') {
8
8
  function createArgument(options) {
9
9
  return {
10
10
  description: options.description + descriptionSuffix,
11
- validateValues: async (current, values) => {
11
+ validateValues: async (current, values, isCurrentlyDefaulted) => {
12
12
  if (values.length === 0) {
13
13
  return { valid: false, message: 'at least one value is required' };
14
14
  }
@@ -22,8 +22,8 @@ function arrayValueArgument(validator, descriptionSuffix = '') {
22
22
  }
23
23
  return { valid: true, value: validatedValues };
24
24
  },
25
- reduceValues: async (current, newValues) => {
26
- if (!current) {
25
+ reduceValues: async (current, newValues, isCurrentlyDefaulted) => {
26
+ if (isCurrentlyDefaulted || !current) {
27
27
  return newValues;
28
28
  }
29
29
  current.push(...newValues);
@@ -1 +1 @@
1
- {"version":3,"file":"arrayValueArgument.js","sourceRoot":"","sources":["../../../src/arguments/arrayValueArgument.ts"],"names":[],"mappings":";;AASA,gDA+CC;AAlDD;;GAEG;AACH,SAAgB,kBAAkB,CAChC,SAAyC,EACzC,oBAA4B,EAAE;IAQ9B,SAAS,cAAc,CAErB,OAAU;QACV,OAAO;YACL,WAAW,EAAE,OAAO,CAAC,WAAW,GAAG,iBAAiB;YACpD,cAAc,EAAE,KAAK,EACnB,OAAgC,EAChC,MAAgB,EACuB,EAAE;gBACzC,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;oBACxB,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,gCAAgC,EAAE,CAAA;gBACpE,CAAC;gBAED,MAAM,eAAe,GAAgB,EAAE,CAAA;gBACvC,KAAK,MAAM,QAAQ,IAAI,MAAM,EAAE,CAAC;oBAC9B,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,QAAQ,CAAC,CAAA;oBACxC,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;wBAClB,OAAO,MAAM,CAAA;oBACf,CAAC;oBACD,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;gBACpC,CAAC;gBAED,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,eAAe,EAAE,CAAA;YAChD,CAAC;YACD,YAAY,EAAE,KAAK,EAAE,OAAgC,EAAE,SAAsB,EAAE,EAAE;gBAC/E,IAAI,CAAC,OAAO,EAAE,CAAC;oBACb,OAAO,SAAS,CAAA;gBAClB,CAAC;gBACD,OAAO,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC,CAAA;gBAC1B,OAAO,OAAO,CAAA;YAChB,CAAC;YACD,YAAY,EAAE,OAAO,CAAC,YAAY;YAClC,oBAAoB,EAAE,GAAG,EAAE,CAAC,IAAI;SACjC,CAAA;IACH,CAAC;IAED,OAAO,cAAc,CAAA;AACvB,CAAC"}
1
+ {"version":3,"file":"arrayValueArgument.js","sourceRoot":"","sources":["../../../src/arguments/arrayValueArgument.ts"],"names":[],"mappings":";;AAeA,gDAkDC;AArDD;;GAEG;AACH,SAAgB,kBAAkB,CAChC,SAAyC,EACzC,oBAA4B,EAAE;IAM9B,SAAS,cAAc,CACrB,OAA4C;QAE5C,OAAO;YACL,WAAW,EAAE,OAAO,CAAC,WAAW,GAAG,iBAAiB;YACpD,cAAc,EAAE,KAAK,EACnB,OAAgC,EAChC,MAAgB,EAChB,oBAA6B,EACU,EAAE;gBACzC,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;oBACxB,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,gCAAgC,EAAE,CAAA;gBACpE,CAAC;gBAED,MAAM,eAAe,GAAgB,EAAE,CAAA;gBACvC,KAAK,MAAM,QAAQ,IAAI,MAAM,EAAE,CAAC;oBAC9B,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,QAAQ,CAAC,CAAA;oBACxC,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;wBAClB,OAAO,MAAM,CAAA;oBACf,CAAC;oBACD,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;gBACpC,CAAC;gBAED,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,eAAe,EAAE,CAAA;YAChD,CAAC;YACD,YAAY,EAAE,KAAK,EACjB,OAAgC,EAChC,SAAsB,EACtB,oBAA8B,EAC9B,EAAE;gBACF,IAAI,oBAAoB,IAAI,CAAC,OAAO,EAAE,CAAC;oBACrC,OAAO,SAAS,CAAA;gBAClB,CAAC;gBACD,OAAO,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC,CAAA;gBAC1B,OAAO,OAAO,CAAA;YAChB,CAAC;YACD,YAAY,EAAE,OAAO,CAAC,YAAY;YAClC,oBAAoB,EAAE,GAAG,EAAE,CAAC,IAAI;SACjC,CAAA;IACH,CAAC;IAED,OAAO,cAAc,CAAA;AACvB,CAAC"}
@@ -5,7 +5,7 @@ import { Argument, PerArgumentArgs } from './argument.js';
5
5
  * @param options the description and the single character that can be used to set the value to true
6
6
  * @returns a boolean argument
7
7
  */
8
- export declare function booleanArgument<const O extends {
8
+ export declare function booleanArgument(options: {
9
9
  character: string;
10
- } & PerArgumentArgs>(options: O): Argument<boolean>;
10
+ } & PerArgumentArgs): Argument<boolean>;
11
11
  //# sourceMappingURL=booleanArgument.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"booleanArgument.d.ts","sourceRoot":"","sources":["../../../src/arguments/booleanArgument.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,eAAe,EAAmB,MAAM,eAAe,CAAA;AAE1E;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,KAAK,CAAC,CAAC,SAAS;IAAE,SAAS,EAAE,MAAM,CAAA;CAAE,GAAG,eAAe,EACrF,OAAO,EAAE,CAAC,GACT,QAAQ,CAAC,OAAO,CAAC,CAcnB"}
1
+ {"version":3,"file":"booleanArgument.d.ts","sourceRoot":"","sources":["../../../src/arguments/booleanArgument.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,eAAe,EAAmB,MAAM,eAAe,CAAA;AAE1E;;;;;GAKG;AACH,wBAAgB,eAAe,CAC7B,OAAO,EAAE;IAAE,SAAS,EAAE,MAAM,CAAA;CAAE,GAAG,eAAe,GAC/C,QAAQ,CAAC,OAAO,CAAC,CAkBnB"}
@@ -11,13 +11,13 @@ function booleanArgument(options) {
11
11
  return {
12
12
  description: options.description,
13
13
  character: options.character,
14
- validateValues: (currentValue, value) => {
14
+ validateValues: (currentValue, value, isCurrentlyDefaulted) => {
15
15
  if (value.length == 0) {
16
16
  return { valid: true, value: true };
17
17
  }
18
18
  return { valid: false, message: `does not accept values but received ${value.join(', ')}` };
19
19
  },
20
- reduceValues: (current, newValue) => current,
20
+ reduceValues: (current, newValue, isCurrentlyDefaulted) => current,
21
21
  present: (currentValue) => true,
22
22
  defaultValue: false
23
23
  };
@@ -1 +1 @@
1
- {"version":3,"file":"booleanArgument.js","sourceRoot":"","sources":["../../../src/arguments/booleanArgument.ts"],"names":[],"mappings":";;AAQA,0CAgBC;AAtBD;;;;;GAKG;AACH,SAAgB,eAAe,CAC7B,OAAU;IAEV,OAAO;QACL,WAAW,EAAE,OAAO,CAAC,WAAW;QAChC,SAAS,EAAE,OAAO,CAAC,SAAS;QAC5B,cAAc,EAAE,CAAC,YAAqB,EAAE,KAAe,EAA4B,EAAE;YACnF,IAAI,KAAK,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;gBACtB,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAA;YACrC,CAAC;YACD,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,uCAAuC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,CAAA;QAC7F,CAAC;QACD,YAAY,EAAE,CAAC,OAAgB,EAAE,QAAiB,EAAE,EAAE,CAAC,OAAO;QAC9D,OAAO,EAAE,CAAC,YAAqB,EAAE,EAAE,CAAC,IAAI;QACxC,YAAY,EAAE,KAAK;KACpB,CAAA;AACH,CAAC"}
1
+ {"version":3,"file":"booleanArgument.js","sourceRoot":"","sources":["../../../src/arguments/booleanArgument.ts"],"names":[],"mappings":";;AAQA,0CAoBC;AA1BD;;;;;GAKG;AACH,SAAgB,eAAe,CAC7B,OAAgD;IAEhD,OAAO;QACL,WAAW,EAAE,OAAO,CAAC,WAAW;QAChC,SAAS,EAAE,OAAO,CAAC,SAAS;QAC5B,cAAc,EAAE,CACd,YAAqB,EACrB,KAAe,EACf,oBAA6B,EACH,EAAE;YAC5B,IAAI,KAAK,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;gBACtB,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAA;YACrC,CAAC;YACD,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,uCAAuC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,CAAA;QAC7F,CAAC;QACD,YAAY,EAAE,CAAC,OAAgB,EAAE,QAAiB,EAAE,oBAA6B,EAAE,EAAE,CAAC,OAAO;QAC7F,OAAO,EAAE,CAAC,YAAqB,EAAE,EAAE,CAAC,IAAI;QACxC,YAAY,EAAE,KAAK;KACpB,CAAA;AACH,CAAC"}
@@ -3,13 +3,15 @@ type EnumType<T extends {
3
3
  validValues: string[];
4
4
  defaultValue?: string | undefined;
5
5
  }> = T['defaultValue'] extends string ? T['validValues'][number] | T['defaultValue'] : T['validValues'][number];
6
- export declare function enumArgument<const O extends {
6
+ type EnumWithDefault = {
7
7
  defaultValue: string;
8
8
  validValues: string[];
9
- } & PerArgumentArgs>(options: O): Argument<EnumType<O>>;
10
- export declare function enumArgument<const O extends {
9
+ } & PerArgumentArgs;
10
+ type EnumWithoutDefault = {
11
11
  defaultValue?: undefined;
12
12
  validValues: string[];
13
- } & PerArgumentArgs>(options: O): Argument<EnumType<O> | undefined>;
13
+ } & PerArgumentArgs;
14
+ export declare function enumArgument<const O extends EnumWithDefault>(options: EnumWithDefault): Argument<EnumType<O>>;
15
+ export declare function enumArgument<const O extends EnumWithoutDefault>(options: EnumWithoutDefault): Argument<EnumType<O> | undefined>;
14
16
  export {};
15
17
  //# sourceMappingURL=enumArgument.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"enumArgument.d.ts","sourceRoot":"","sources":["../../../src/arguments/enumArgument.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,eAAe,EAAmB,MAAM,eAAe,CAAA;AAE1E,KAAK,QAAQ,CAAC,CAAC,SAAS;IAAE,WAAW,EAAE,MAAM,EAAE,CAAC;IAAC,YAAY,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;CAAE,IAClF,CAAC,CAAC,cAAc,CAAC,SAAS,MAAM,GAC5B,CAAC,CAAC,aAAa,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,cAAc,CAAC,GAC5C,CAAC,CAAC,aAAa,CAAC,CAAC,MAAM,CAAC,CAAA;AAE9B,wBAAgB,YAAY,CAC1B,KAAK,CAAC,CAAC,SAAS;IAAE,YAAY,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,EAAE,CAAA;CAAE,GAAG,eAAe,EACjF,OAAO,EAAE,CAAC,GAAG,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAA;AACpC,wBAAgB,YAAY,CAC1B,KAAK,CAAC,CAAC,SAAS;IAAE,YAAY,CAAC,EAAE,SAAS,CAAC;IAAC,WAAW,EAAE,MAAM,EAAE,CAAA;CAAE,GAAG,eAAe,EACrF,OAAO,EAAE,CAAC,GAAG,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,CAAA"}
1
+ {"version":3,"file":"enumArgument.d.ts","sourceRoot":"","sources":["../../../src/arguments/enumArgument.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,eAAe,EAAmB,MAAM,eAAe,CAAA;AAE1E,KAAK,QAAQ,CAAC,CAAC,SAAS;IAAE,WAAW,EAAE,MAAM,EAAE,CAAC;IAAC,YAAY,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;CAAE,IAClF,CAAC,CAAC,cAAc,CAAC,SAAS,MAAM,GAC5B,CAAC,CAAC,aAAa,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,cAAc,CAAC,GAC5C,CAAC,CAAC,aAAa,CAAC,CAAC,MAAM,CAAC,CAAA;AAE9B,KAAK,eAAe,GAAG;IAAE,YAAY,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,EAAE,CAAA;CAAE,GAAG,eAAe,CAAA;AACxF,KAAK,kBAAkB,GAAG;IAAE,YAAY,CAAC,EAAE,SAAS,CAAC;IAAC,WAAW,EAAE,MAAM,EAAE,CAAA;CAAE,GAAG,eAAe,CAAA;AAM/F,wBAAgB,YAAY,CAAC,KAAK,CAAC,CAAC,SAAS,eAAe,EAC1D,OAAO,EAAE,eAAe,GACvB,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAA;AACxB,wBAAgB,YAAY,CAAC,KAAK,CAAC,CAAC,SAAS,kBAAkB,EAC7D,OAAO,EAAE,kBAAkB,GAC1B,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,CAAA"}
@@ -5,7 +5,7 @@ function enumArgument(options) {
5
5
  return {
6
6
  description: options.description +
7
7
  `. One value required, valid values are: ${options.validValues.join(', ')}`,
8
- validateValues: (currentValue, values) => {
8
+ validateValues: (currentValue, values, isCurrentlyDefaulted) => {
9
9
  if (values.length == 0) {
10
10
  return { valid: false, message: 'a value is required' };
11
11
  }
@@ -28,7 +28,7 @@ function enumArgument(options) {
28
28
  }
29
29
  return { valid: true, value: match };
30
30
  },
31
- reduceValues: (current, newValue) => newValue,
31
+ reduceValues: (current, newValue, isCurrentlyDefaulted) => newValue,
32
32
  defaultValue: options.defaultValue
33
33
  };
34
34
  }
@@ -1 +1 @@
1
- {"version":3,"file":"enumArgument.js","sourceRoot":"","sources":["../../../src/arguments/enumArgument.ts"],"names":[],"mappings":";;AAaA,oCAqCC;AArCD,SAAgB,YAAY,CAE1B,OAAU;IACV,OAAO;QACL,WAAW,EACT,OAAO,CAAC,WAAW;YACnB,2CAA2C,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;QAC7E,cAAc,EAAE,CACd,YAAqC,EACrC,MAAgB,EACc,EAAE;YAChC,IAAI,MAAM,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;gBACvB,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,qBAAqB,EAAE,CAAA;YACzD,CAAC;YACD,IAAI,YAAY,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC;gBACzC,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,mDAAmD,EAAE,CAAA;YACvF,CAAC;YACD,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACtB,OAAO;oBACL,KAAK,EAAE,KAAK;oBACZ,OAAO,EAAE,sCAAsC,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC;iBACpE,CAAA;YACH,CAAC;YACD,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,CAAA;YACvB,MAAM,KAAK,GAAG,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,KAAK,KAAK,CAAC,WAAW,EAAE,CAAC,CAAA;YACtF,IAAI,CAAC,KAAK,EAAE,CAAC;gBACX,OAAO;oBACL,KAAK,EAAE,KAAK;oBACZ,OAAO,EAAE,GAAG,KAAK,sCAAsC,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;iBACxF,CAAA;YACH,CAAC;YAED,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,KAAoB,EAAE,CAAA;QACrD,CAAC;QACD,YAAY,EAAE,CAAC,OAAgC,EAAE,QAAqB,EAAE,EAAE,CAAC,QAAQ;QACnF,YAAY,EAAE,OAAO,CAAC,YAAY;KACnC,CAAA;AACH,CAAC"}
1
+ {"version":3,"file":"enumArgument.js","sourceRoot":"","sources":["../../../src/arguments/enumArgument.ts"],"names":[],"mappings":";;AAoBA,oCA0CC;AA1CD,SAAgB,YAAY,CAC1B,OAAgC;IAEhC,OAAO;QACL,WAAW,EACT,OAAO,CAAC,WAAW;YACnB,2CAA2C,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;QAC7E,cAAc,EAAE,CACd,YAAqC,EACrC,MAAgB,EAChB,oBAA6B,EACC,EAAE;YAChC,IAAI,MAAM,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;gBACvB,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,qBAAqB,EAAE,CAAA;YACzD,CAAC;YACD,IAAI,YAAY,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC;gBACzC,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,mDAAmD,EAAE,CAAA;YACvF,CAAC;YACD,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACtB,OAAO;oBACL,KAAK,EAAE,KAAK;oBACZ,OAAO,EAAE,sCAAsC,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC;iBACpE,CAAA;YACH,CAAC;YACD,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,CAAA;YACvB,MAAM,KAAK,GAAG,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,KAAK,KAAK,CAAC,WAAW,EAAE,CAAC,CAAA;YACtF,IAAI,CAAC,KAAK,EAAE,CAAC;gBACX,OAAO;oBACL,KAAK,EAAE,KAAK;oBACZ,OAAO,EAAE,GAAG,KAAK,sCAAsC,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;iBACxF,CAAA;YACH,CAAC;YAED,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,KAAoB,EAAE,CAAA;QACrD,CAAC;QACD,YAAY,EAAE,CACZ,OAAgC,EAChC,QAAqB,EACrB,oBAA6B,EAC7B,EAAE,CAAC,QAAQ;QACb,YAAY,EAAE,OAAO,CAAC,YAAY;KACnC,CAAA;AACH,CAAC"}
@@ -3,13 +3,15 @@ type EnumArrayType<T extends {
3
3
  validValues: string[];
4
4
  defaultValue?: string[] | undefined;
5
5
  }> = T['defaultValue'] extends string[] ? T['validValues'][number] | T['defaultValue'][number] : T['validValues'][number];
6
- export declare function enumArrayArgument<const O extends {
6
+ type EnumArrayWithDefault = {
7
7
  defaultValue: string[];
8
8
  validValues: string[];
9
- } & PerArgumentArgs>(options: O): Argument<EnumArrayType<O>[]>;
10
- export declare function enumArrayArgument<const O extends {
9
+ } & PerArgumentArgs;
10
+ type EnumArrayWithoutDefault = {
11
11
  defaultValue?: undefined;
12
12
  validValues: string[];
13
- } & PerArgumentArgs>(options: O): Argument<EnumArrayType<O>[] | undefined>;
13
+ } & PerArgumentArgs;
14
+ export declare function enumArrayArgument<const O extends EnumArrayWithDefault>(options: EnumArrayWithDefault): Argument<EnumArrayType<O>[]>;
15
+ export declare function enumArrayArgument<const O extends EnumArrayWithoutDefault>(options: EnumArrayWithoutDefault): Argument<EnumArrayType<O>[] | undefined>;
14
16
  export {};
15
17
  //# sourceMappingURL=enumArrayArgument.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"enumArrayArgument.d.ts","sourceRoot":"","sources":["../../../src/arguments/enumArrayArgument.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,eAAe,EAAmB,MAAM,eAAe,CAAA;AAE1E,KAAK,aAAa,CAAC,CAAC,SAAS;IAAE,WAAW,EAAE,MAAM,EAAE,CAAC;IAAC,YAAY,CAAC,EAAE,MAAM,EAAE,GAAG,SAAS,CAAA;CAAE,IACzF,CAAC,CAAC,cAAc,CAAC,SAAS,MAAM,EAAE,GAC9B,CAAC,CAAC,aAAa,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,cAAc,CAAC,CAAC,MAAM,CAAC,GACpD,CAAC,CAAC,aAAa,CAAC,CAAC,MAAM,CAAC,CAAA;AAE9B,wBAAgB,iBAAiB,CAC/B,KAAK,CAAC,CAAC,SAAS;IAAE,YAAY,EAAE,MAAM,EAAE,CAAC;IAAC,WAAW,EAAE,MAAM,EAAE,CAAA;CAAE,GAAG,eAAe,EACnF,OAAO,EAAE,CAAC,GAAG,QAAQ,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC,CAAA;AAC3C,wBAAgB,iBAAiB,CAC/B,KAAK,CAAC,CAAC,SAAS;IAAE,YAAY,CAAC,EAAE,SAAS,CAAC;IAAC,WAAW,EAAE,MAAM,EAAE,CAAA;CAAE,GAAG,eAAe,EACrF,OAAO,EAAE,CAAC,GAAG,QAAQ,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,GAAG,SAAS,CAAC,CAAA"}
1
+ {"version":3,"file":"enumArrayArgument.d.ts","sourceRoot":"","sources":["../../../src/arguments/enumArrayArgument.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,eAAe,EAAmB,MAAM,eAAe,CAAA;AAE1E,KAAK,aAAa,CAAC,CAAC,SAAS;IAAE,WAAW,EAAE,MAAM,EAAE,CAAC;IAAC,YAAY,CAAC,EAAE,MAAM,EAAE,GAAG,SAAS,CAAA;CAAE,IACzF,CAAC,CAAC,cAAc,CAAC,SAAS,MAAM,EAAE,GAC9B,CAAC,CAAC,aAAa,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,cAAc,CAAC,CAAC,MAAM,CAAC,GACpD,CAAC,CAAC,aAAa,CAAC,CAAC,MAAM,CAAC,CAAA;AAE9B,KAAK,oBAAoB,GAAG;IAAE,YAAY,EAAE,MAAM,EAAE,CAAC;IAAC,WAAW,EAAE,MAAM,EAAE,CAAA;CAAE,GAAG,eAAe,CAAA;AAC/F,KAAK,uBAAuB,GAAG;IAAE,YAAY,CAAC,EAAE,SAAS,CAAC;IAAC,WAAW,EAAE,MAAM,EAAE,CAAA;CAAE,GAAG,eAAe,CAAA;AAMpG,wBAAgB,iBAAiB,CAAC,KAAK,CAAC,CAAC,SAAS,oBAAoB,EACpE,OAAO,EAAE,oBAAoB,GAC5B,QAAQ,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC,CAAA;AAC/B,wBAAgB,iBAAiB,CAAC,KAAK,CAAC,CAAC,SAAS,uBAAuB,EACvE,OAAO,EAAE,uBAAuB,GAC/B,QAAQ,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,GAAG,SAAS,CAAC,CAAA"}
@@ -5,7 +5,7 @@ function enumArrayArgument(options) {
5
5
  return {
6
6
  description: options.description +
7
7
  `. One or more values required, valid values are: ${options.validValues.join(', ')}`,
8
- validateValues: async (currentValue, values) => {
8
+ validateValues: async (currentValue, values, isCurrentlyDefaulted) => {
9
9
  if (values.length == 0) {
10
10
  return { valid: false, message: 'At least one value is required' };
11
11
  }
@@ -28,8 +28,9 @@ function enumArrayArgument(options) {
28
28
  }
29
29
  return { valid: true, value: validValues };
30
30
  },
31
- reduceValues: async (current, newValues) => {
32
- if (!current) {
31
+ reduceValues: async (current, newValues, isCurrentlyDefaulted) => {
32
+ if (isCurrentlyDefaulted || !current) {
33
+ // If the current value is the default or undefined, replace it entirely
33
34
  return newValues;
34
35
  }
35
36
  current.push(...newValues);
@@ -1 +1 @@
1
- {"version":3,"file":"enumArrayArgument.js","sourceRoot":"","sources":["../../../src/arguments/enumArrayArgument.ts"],"names":[],"mappings":";;AAaA,8CA+CC;AA/CD,SAAgB,iBAAiB,CAE/B,OAAU;IACV,OAAO;QACL,WAAW,EACT,OAAO,CAAC,WAAW;YACnB,oDAAoD,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;QACtF,cAAc,EAAE,KAAK,EACnB,YAA4C,EAC5C,MAAgB,EAC8B,EAAE;YAChD,IAAI,MAAM,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;gBACvB,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,gCAAgC,EAAE,CAAA;YACpE,CAAC;YACD,MAAM,aAAa,GAAa,EAAE,CAAA;YAClC,MAAM,WAAW,GAAuB,EAAE,CAAA;YAC1C,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;gBAC3B,MAAM,KAAK,GAAG,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,KAAK,KAAK,CAAC,WAAW,EAAE,CAAC,CAAA;gBACtF,IAAI,CAAC,KAAK,EAAE,CAAC;oBACX,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;gBAC3B,CAAC;qBAAM,CAAC;oBACN,WAAW,CAAC,IAAI,CAAC,KAAyB,CAAC,CAAA;gBAC7C,CAAC;YACH,CAAC;YAED,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC7B,OAAO;oBACL,KAAK,EAAE,KAAK;oBACZ,OAAO,EAAE,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,sCAAsC,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;iBAC9H,CAAA;YACH,CAAC;YAED,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,WAAW,EAAE,CAAA;QAC5C,CAAC;QACD,YAAY,EAAE,KAAK,EACjB,OAAuC,EACvC,SAA6B,EAC7B,EAAE;YACF,IAAI,CAAC,OAAO,EAAE,CAAC;gBACb,OAAO,SAAS,CAAA;YAClB,CAAC;YACD,OAAO,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC,CAAA;YAC1B,OAAO,OAAO,CAAA;QAChB,CAAC;QACD,YAAY,EAAE,OAAO,CAAC,YAAY;QAClC,oBAAoB,EAAE,GAAG,EAAE,CAAC,IAAI;KACjC,CAAA;AACH,CAAC"}
1
+ {"version":3,"file":"enumArrayArgument.js","sourceRoot":"","sources":["../../../src/arguments/enumArrayArgument.ts"],"names":[],"mappings":";;AAoBA,8CAkDC;AAlDD,SAAgB,iBAAiB,CAC/B,OAAqC;IAErC,OAAO;QACL,WAAW,EACT,OAAO,CAAC,WAAW;YACnB,oDAAoD,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;QACtF,cAAc,EAAE,KAAK,EACnB,YAA4C,EAC5C,MAAgB,EAChB,oBAA6B,EACiB,EAAE;YAChD,IAAI,MAAM,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;gBACvB,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,gCAAgC,EAAE,CAAA;YACpE,CAAC;YACD,MAAM,aAAa,GAAa,EAAE,CAAA;YAClC,MAAM,WAAW,GAAuB,EAAE,CAAA;YAC1C,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;gBAC3B,MAAM,KAAK,GAAG,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,KAAK,KAAK,CAAC,WAAW,EAAE,CAAC,CAAA;gBACtF,IAAI,CAAC,KAAK,EAAE,CAAC;oBACX,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;gBAC3B,CAAC;qBAAM,CAAC;oBACN,WAAW,CAAC,IAAI,CAAC,KAAyB,CAAC,CAAA;gBAC7C,CAAC;YACH,CAAC;YAED,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC7B,OAAO;oBACL,KAAK,EAAE,KAAK;oBACZ,OAAO,EAAE,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,sCAAsC,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;iBAC9H,CAAA;YACH,CAAC;YAED,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,WAAW,EAAE,CAAA;QAC5C,CAAC;QACD,YAAY,EAAE,KAAK,EACjB,OAAuC,EACvC,SAA6B,EAC7B,oBAA8B,EAC9B,EAAE;YACF,IAAI,oBAAoB,IAAI,CAAC,OAAO,EAAE,CAAC;gBACrC,wEAAwE;gBACxE,OAAO,SAAS,CAAA;YAClB,CAAC;YACD,OAAO,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC,CAAA;YAC1B,OAAO,OAAO,CAAA;QAChB,CAAC;QACD,YAAY,EAAE,OAAO,CAAC,YAAY;QAClC,oBAAoB,EAAE,GAAG,EAAE,CAAC,IAAI;KACjC,CAAA;AACH,CAAC"}
@@ -1,5 +1,11 @@
1
1
  import { Argument, PerArgumentArgs } from './argument.js';
2
2
  type MapResult = Record<string, string[]>;
3
+ type MapWithDefault = {
4
+ defaultValue: MapResult;
5
+ } & PerArgumentArgs;
6
+ type MapWithoutDefault = {
7
+ defaultValue?: undefined;
8
+ } & PerArgumentArgs;
3
9
  /**
4
10
  * Creates a map argument where the first value is the key and the rest are values.
5
11
  *
@@ -8,11 +14,7 @@ type MapResult = Record<string, string[]>;
8
14
  * @param options the description and optional default value
9
15
  * @returns a map argument
10
16
  */
11
- export declare function mapArgument<const O extends {
12
- defaultValue: MapResult;
13
- } & PerArgumentArgs>(options: O): Argument<MapResult>;
14
- export declare function mapArgument<const O extends {
15
- defaultValue?: undefined;
16
- } & PerArgumentArgs>(options: O): Argument<MapResult | undefined>;
17
+ export declare function mapArgument(options: MapWithDefault): Argument<MapResult>;
18
+ export declare function mapArgument(options: MapWithoutDefault): Argument<MapResult | undefined>;
17
19
  export {};
18
20
  //# sourceMappingURL=mapArgument.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"mapArgument.d.ts","sourceRoot":"","sources":["../../../src/arguments/mapArgument.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,eAAe,EAAmB,MAAM,eAAe,CAAA;AAE1E,KAAK,SAAS,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAA;AAEzC;;;;;;;GAOG;AACH,wBAAgB,WAAW,CAAC,KAAK,CAAC,CAAC,SAAS;IAAE,YAAY,EAAE,SAAS,CAAA;CAAE,GAAG,eAAe,EACvF,OAAO,EAAE,CAAC,GACT,QAAQ,CAAC,SAAS,CAAC,CAAA;AACtB,wBAAgB,WAAW,CAAC,KAAK,CAAC,CAAC,SAAS;IAAE,YAAY,CAAC,EAAE,SAAS,CAAA;CAAE,GAAG,eAAe,EACxF,OAAO,EAAE,CAAC,GACT,QAAQ,CAAC,SAAS,GAAG,SAAS,CAAC,CAAA"}
1
+ {"version":3,"file":"mapArgument.d.ts","sourceRoot":"","sources":["../../../src/arguments/mapArgument.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,eAAe,EAAmB,MAAM,eAAe,CAAA;AAE1E,KAAK,SAAS,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAA;AAEzC,KAAK,cAAc,GAAG;IAAE,YAAY,EAAE,SAAS,CAAA;CAAE,GAAG,eAAe,CAAA;AACnE,KAAK,iBAAiB,GAAG;IAAE,YAAY,CAAC,EAAE,SAAS,CAAA;CAAE,GAAG,eAAe,CAAA;AAGvE;;;;;;;GAOG;AACH,wBAAgB,WAAW,CAAC,OAAO,EAAE,cAAc,GAAG,QAAQ,CAAC,SAAS,CAAC,CAAA;AACzE,wBAAgB,WAAW,CAAC,OAAO,EAAE,iBAAiB,GAAG,QAAQ,CAAC,SAAS,GAAG,SAAS,CAAC,CAAA"}
@@ -4,7 +4,7 @@ exports.mapArgument = mapArgument;
4
4
  function mapArgument(options) {
5
5
  return {
6
6
  description: options.description + `. Each instance requires a key and at least one value.`,
7
- validateValues: async (currentValue, values) => {
7
+ validateValues: async (currentValue, values, isCurrentlyDefaulted) => {
8
8
  const [first, ...rest] = values;
9
9
  if (!first) {
10
10
  return { valid: false, message: 'a key is required and at least one value is required' };
@@ -12,7 +12,7 @@ function mapArgument(options) {
12
12
  if (rest.length < 1) {
13
13
  return { valid: false, message: `${first} requires at least one value` };
14
14
  }
15
- if (currentValue && first in currentValue) {
15
+ if (!isCurrentlyDefaulted && currentValue && first in currentValue) {
16
16
  return { valid: false, message: `${first} is set multiple times` };
17
17
  }
18
18
  return {
@@ -22,8 +22,8 @@ function mapArgument(options) {
22
22
  }
23
23
  };
24
24
  },
25
- reduceValues: async (current, newValue) => {
26
- if (!current) {
25
+ reduceValues: async (current, newValue, isCurrentlyDefaulted) => {
26
+ if (isCurrentlyDefaulted || !current) {
27
27
  return { ...newValue };
28
28
  }
29
29
  return { ...current, ...newValue };
@@ -1 +1 @@
1
- {"version":3,"file":"mapArgument.js","sourceRoot":"","sources":["../../../src/arguments/mapArgument.ts"],"names":[],"mappings":";;AAkBA,kCAmCC;AAnCD,SAAgB,WAAW,CAEzB,OAAU;IACV,OAAO;QACL,WAAW,EAAE,OAAO,CAAC,WAAW,GAAG,wDAAwD;QAC3F,cAAc,EAAE,KAAK,EACnB,YAAmC,EACnC,MAAgB,EACqB,EAAE;YACvC,MAAM,CAAC,KAAK,EAAE,GAAG,IAAI,CAAC,GAAG,MAAM,CAAA;YAC/B,IAAI,CAAC,KAAK,EAAE,CAAC;gBACX,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,sDAAsD,EAAE,CAAA;YAC1F,CAAC;YACD,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACpB,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,KAAK,8BAA8B,EAAE,CAAA;YAC1E,CAAC;YACD,IAAI,YAAY,IAAI,KAAK,IAAI,YAAY,EAAE,CAAC;gBAC1C,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,KAAK,wBAAwB,EAAE,CAAA;YACpE,CAAC;YACD,OAAO;gBACL,KAAK,EAAE,IAAI;gBACX,KAAK,EAAE;oBACL,CAAC,KAAK,CAAC,EAAE,IAAI;iBACd;aACF,CAAA;QACH,CAAC;QACD,YAAY,EAAE,KAAK,EAAE,OAA8B,EAAE,QAAmB,EAAE,EAAE;YAC1E,IAAI,CAAC,OAAO,EAAE,CAAC;gBACb,OAAO,EAAE,GAAG,QAAQ,EAAE,CAAA;YACxB,CAAC;YACD,OAAO,EAAE,GAAG,OAAO,EAAE,GAAG,QAAQ,EAAE,CAAA;QACpC,CAAC;QACD,YAAY,EAAE,OAAO,CAAC,YAAY;QAClC,oBAAoB,EAAE,GAAG,EAAE,CAAC,IAAI;KACjC,CAAA;AACH,CAAC"}
1
+ {"version":3,"file":"mapArgument.js","sourceRoot":"","sources":["../../../src/arguments/mapArgument.ts"],"names":[],"mappings":";;AAkBA,kCAwCC;AAxCD,SAAgB,WAAW,CACzB,OAA+B;IAE/B,OAAO;QACL,WAAW,EAAE,OAAO,CAAC,WAAW,GAAG,wDAAwD;QAC3F,cAAc,EAAE,KAAK,EACnB,YAAmC,EACnC,MAAgB,EAChB,oBAA6B,EACQ,EAAE;YACvC,MAAM,CAAC,KAAK,EAAE,GAAG,IAAI,CAAC,GAAG,MAAM,CAAA;YAC/B,IAAI,CAAC,KAAK,EAAE,CAAC;gBACX,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,sDAAsD,EAAE,CAAA;YAC1F,CAAC;YACD,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACpB,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,KAAK,8BAA8B,EAAE,CAAA;YAC1E,CAAC;YACD,IAAI,CAAC,oBAAoB,IAAI,YAAY,IAAI,KAAK,IAAI,YAAY,EAAE,CAAC;gBACnE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,KAAK,wBAAwB,EAAE,CAAA;YACpE,CAAC;YACD,OAAO;gBACL,KAAK,EAAE,IAAI;gBACX,KAAK,EAAE;oBACL,CAAC,KAAK,CAAC,EAAE,IAAI;iBACd;aACF,CAAA;QACH,CAAC;QACD,YAAY,EAAE,KAAK,EACjB,OAA8B,EAC9B,QAAmB,EACnB,oBAA6B,EAC7B,EAAE;YACF,IAAI,oBAAoB,IAAI,CAAC,OAAO,EAAE,CAAC;gBACrC,OAAO,EAAE,GAAG,QAAQ,EAAE,CAAA;YACxB,CAAC;YACD,OAAO,EAAE,GAAG,OAAO,EAAE,GAAG,QAAQ,EAAE,CAAA;QACpC,CAAC;QACD,YAAY,EAAE,OAAO,CAAC,YAAY;QAClC,oBAAoB,EAAE,GAAG,EAAE,CAAC,IAAI;KACjC,CAAA;AACH,CAAC"}
@@ -1,17 +1,17 @@
1
1
  export declare const numberArgument: {
2
- <const O extends {
2
+ (options: {
3
3
  defaultValue: number;
4
- } & import("./argument.js").PerArgumentArgs>(options: O): import("./argument.js").Argument<number>;
5
- <const O extends {
4
+ } & import("./argument.js").PerArgumentArgs): import("./argument.js").Argument<number>;
5
+ (options: {
6
6
  defaultValue?: undefined;
7
- } & import("./argument.js").PerArgumentArgs>(options: O): import("./argument.js").Argument<number | undefined>;
7
+ } & import("./argument.js").PerArgumentArgs): import("./argument.js").Argument<number | undefined>;
8
8
  };
9
9
  export declare const numberArrayArgument: {
10
- <const O extends {
10
+ (options: {
11
11
  defaultValue: number[];
12
- } & import("./argument.js").PerArgumentArgs>(options: O): import("./argument.js").Argument<number[]>;
13
- <const O extends {
12
+ } & import("./argument.js").PerArgumentArgs): import("./argument.js").Argument<number[]>;
13
+ (options: {
14
14
  defaultValue?: undefined;
15
- } & import("./argument.js").PerArgumentArgs>(options: O): import("./argument.js").Argument<number[] | undefined>;
15
+ } & import("./argument.js").PerArgumentArgs): import("./argument.js").Argument<number[] | undefined>;
16
16
  };
17
17
  //# sourceMappingURL=numberArguments.d.ts.map
@@ -1,15 +1,17 @@
1
1
  import { Argument, PerArgumentArgs, ValidatedValues } from './argument.js';
2
2
  type SingleValueValidator<ValueType> = (rawValue: string) => Promise<ValidatedValues<ValueType>> | ValidatedValues<ValueType>;
3
+ type ArgumentWithDefault<ValueType> = {
4
+ defaultValue: ValueType;
5
+ } & PerArgumentArgs;
6
+ type ArgumentWithoutDefault<ValueType> = {
7
+ defaultValue?: undefined;
8
+ } & PerArgumentArgs;
3
9
  /**
4
10
  * Creates a single value argument factory for a specific type
5
11
  */
6
12
  export declare function singleValueArgument<ValueType>(validator: SingleValueValidator<ValueType>, descriptionSuffix?: string): {
7
- <const O extends {
8
- defaultValue: ValueType;
9
- } & PerArgumentArgs>(options: O): Argument<ValueType>;
10
- <const O extends {
11
- defaultValue?: undefined;
12
- } & PerArgumentArgs>(options: O): Argument<ValueType | undefined>;
13
+ (options: ArgumentWithDefault<ValueType>): Argument<ValueType>;
14
+ (options: ArgumentWithoutDefault<ValueType>): Argument<ValueType | undefined>;
13
15
  };
14
16
  export {};
15
17
  //# sourceMappingURL=singleValueArgument.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"singleValueArgument.d.ts","sourceRoot":"","sources":["../../../src/arguments/singleValueArgument.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,eAAe,CAAA;AAE1E,KAAK,oBAAoB,CAAC,SAAS,IAAI,CACrC,QAAQ,EAAE,MAAM,KACb,OAAO,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC,GAAG,eAAe,CAAC,SAAS,CAAC,CAAA;AAErE;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,SAAS,EAC3C,SAAS,EAAE,oBAAoB,CAAC,SAAS,CAAC,EAC1C,iBAAiB,GAAE,MAAW;WAEA,CAAC,SAAS;QAAE,YAAY,EAAE,SAAS,CAAA;KAAE,GAAG,eAAe,WAC1E,CAAC,GACT,QAAQ,CAAC,SAAS,CAAC;WACQ,CAAC,SAAS;QAAE,YAAY,CAAC,EAAE,SAAS,CAAA;KAAE,GAAG,eAAe,WAC3E,CAAC,GACT,QAAQ,CAAC,SAAS,GAAG,SAAS,CAAC;EAkCnC"}
1
+ {"version":3,"file":"singleValueArgument.d.ts","sourceRoot":"","sources":["../../../src/arguments/singleValueArgument.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,eAAe,CAAA;AAE1E,KAAK,oBAAoB,CAAC,SAAS,IAAI,CACrC,QAAQ,EAAE,MAAM,KACb,OAAO,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC,GAAG,eAAe,CAAC,SAAS,CAAC,CAAA;AAErE,KAAK,mBAAmB,CAAC,SAAS,IAAI;IAAE,YAAY,EAAE,SAAS,CAAA;CAAE,GAAG,eAAe,CAAA;AACnF,KAAK,sBAAsB,CAAC,SAAS,IAAI;IAAE,YAAY,CAAC,EAAE,SAAS,CAAA;CAAE,GAAG,eAAe,CAAA;AAKvF;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,SAAS,EAC3C,SAAS,EAAE,oBAAoB,CAAC,SAAS,CAAC,EAC1C,iBAAiB,GAAE,MAAW;cAEG,mBAAmB,CAAC,SAAS,CAAC,GAAG,QAAQ,CAAC,SAAS,CAAC;cAE1E,sBAAsB,CAAC,SAAS,CAAC,GACzC,QAAQ,CAAC,SAAS,GAAG,SAAS,CAAC;EAuCnC"}
@@ -8,7 +8,7 @@ function singleValueArgument(validator, descriptionSuffix = '') {
8
8
  function createArgument(options) {
9
9
  return {
10
10
  description: options.description + descriptionSuffix,
11
- validateValues: async (currentValue, values) => {
11
+ validateValues: async (currentValue, values, isCurrentlyDefaulted) => {
12
12
  if (currentValue !== undefined && currentValue != options.defaultValue) {
13
13
  return {
14
14
  valid: false,
@@ -26,7 +26,7 @@ function singleValueArgument(validator, descriptionSuffix = '') {
26
26
  }
27
27
  return validator(values[0]);
28
28
  },
29
- reduceValues: async (current, newValue) => newValue,
29
+ reduceValues: async (current, newValue, isCurrentlyDefaulted) => newValue,
30
30
  defaultValue: options.defaultValue
31
31
  };
32
32
  }
@@ -1 +1 @@
1
- {"version":3,"file":"singleValueArgument.js","sourceRoot":"","sources":["../../../src/arguments/singleValueArgument.ts"],"names":[],"mappings":";;AASA,kDA2CC;AA9CD;;GAEG;AACH,SAAgB,mBAAmB,CACjC,SAA0C,EAC1C,oBAA4B,EAAE;IAQ9B,SAAS,cAAc,CAErB,OAAU;QACV,OAAO;YACL,WAAW,EAAE,OAAO,CAAC,WAAW,GAAG,iBAAiB;YACpD,cAAc,EAAE,KAAK,EACnB,YAAmC,EACnC,MAAgB,EACqB,EAAE;gBACvC,IAAI,YAAY,KAAK,SAAS,IAAI,YAAY,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC;oBACvE,OAAO;wBACL,KAAK,EAAE,KAAK;wBACZ,OAAO,EAAE,oDAAoD;qBAC9D,CAAA;gBACH,CAAC;gBACD,IAAI,MAAM,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;oBACvB,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,qBAAqB,EAAE,CAAA;gBACzD,CAAC;gBACD,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBACtB,OAAO;wBACL,KAAK,EAAE,KAAK;wBACZ,OAAO,EAAE,sCAAsC,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC;qBACpE,CAAA;gBACH,CAAC;gBAED,OAAO,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAA;YAC7B,CAAC;YACD,YAAY,EAAE,KAAK,EAAE,OAA8B,EAAE,QAAmB,EAAE,EAAE,CAAC,QAAQ;YACrF,YAAY,EAAE,OAAO,CAAC,YAAY;SACnC,CAAA;IACH,CAAC;IAED,OAAO,cAAc,CAAA;AACvB,CAAC"}
1
+ {"version":3,"file":"singleValueArgument.js","sourceRoot":"","sources":["../../../src/arguments/singleValueArgument.ts"],"names":[],"mappings":";;AAeA,kDA8CC;AAjDD;;GAEG;AACH,SAAgB,mBAAmB,CACjC,SAA0C,EAC1C,oBAA4B,EAAE;IAM9B,SAAS,cAAc,CACrB,OAA+C;QAE/C,OAAO;YACL,WAAW,EAAE,OAAO,CAAC,WAAW,GAAG,iBAAiB;YACpD,cAAc,EAAE,KAAK,EACnB,YAAmC,EACnC,MAAgB,EAChB,oBAA6B,EACQ,EAAE;gBACvC,IAAI,YAAY,KAAK,SAAS,IAAI,YAAY,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC;oBACvE,OAAO;wBACL,KAAK,EAAE,KAAK;wBACZ,OAAO,EAAE,oDAAoD;qBAC9D,CAAA;gBACH,CAAC;gBACD,IAAI,MAAM,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;oBACvB,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,qBAAqB,EAAE,CAAA;gBACzD,CAAC;gBACD,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBACtB,OAAO;wBACL,KAAK,EAAE,KAAK;wBACZ,OAAO,EAAE,sCAAsC,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC;qBACpE,CAAA;gBACH,CAAC;gBAED,OAAO,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAA;YAC7B,CAAC;YACD,YAAY,EAAE,KAAK,EACjB,OAA8B,EAC9B,QAAmB,EACnB,oBAA6B,EAC7B,EAAE,CAAC,QAAQ;YACb,YAAY,EAAE,OAAO,CAAC,YAAY;SACnC,CAAA;IACH,CAAC;IAED,OAAO,cAAc,CAAA;AACvB,CAAC"}
@@ -1,17 +1,17 @@
1
1
  export declare const stringArgument: {
2
- <const O extends {
2
+ (options: {
3
3
  defaultValue: string;
4
- } & import("./argument.js").PerArgumentArgs>(options: O): import("./argument.js").Argument<string>;
5
- <const O extends {
4
+ } & import("./argument.js").PerArgumentArgs): import("./argument.js").Argument<string>;
5
+ (options: {
6
6
  defaultValue?: undefined;
7
- } & import("./argument.js").PerArgumentArgs>(options: O): import("./argument.js").Argument<string | undefined>;
7
+ } & import("./argument.js").PerArgumentArgs): import("./argument.js").Argument<string | undefined>;
8
8
  };
9
9
  export declare const stringArrayArgument: {
10
- <const O extends {
10
+ (options: {
11
11
  defaultValue: string[];
12
- } & import("./argument.js").PerArgumentArgs>(options: O): import("./argument.js").Argument<string[]>;
13
- <const O extends {
12
+ } & import("./argument.js").PerArgumentArgs): import("./argument.js").Argument<string[]>;
13
+ (options: {
14
14
  defaultValue?: undefined;
15
- } & import("./argument.js").PerArgumentArgs>(options: O): import("./argument.js").Argument<string[] | undefined>;
15
+ } & import("./argument.js").PerArgumentArgs): import("./argument.js").Argument<string[] | undefined>;
16
16
  };
17
17
  //# sourceMappingURL=stringArguments.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../../src/cli.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../../src/cli.ts"],"names":[],"mappings":"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"}
package/dist/cjs/cli.js CHANGED
@@ -34,11 +34,12 @@ async function parseCliArguments(command, subcommands, cliArgs, additionalOption
34
34
  return {};
35
35
  }
36
36
  const allDefaults = {};
37
+ const isSetByCli = {};
37
38
  // Step 1: Initialize defaults
38
39
  const parsedEnvironmentArgs = {};
39
40
  initializeOptionDefaults(allDefaults, booleanOptions, cliArgs);
40
41
  // Step 2: Handle environment variables
41
- await parseEnvironmentVariables(cliArgs, parsedEnvironmentArgs, env, additionalOptions?.envPrefix);
42
+ await parseEnvironmentVariables(cliArgs, parsedEnvironmentArgs, env, additionalOptions?.envPrefix, isSetByCli);
42
43
  // Step 3: Group arguments into objects
43
44
  const commandChunks = groupArguments(args);
44
45
  // Step 4: Validation and parsing arguments
@@ -82,7 +83,7 @@ async function parseCliArguments(command, subcommands, cliArgs, additionalOption
82
83
  subcommand = matchingCommands.at(0);
83
84
  const subcommandOptions = subcommands[subcommand].arguments;
84
85
  initializeOptionDefaults(allDefaults, booleanOptions, subcommandOptions);
85
- await parseEnvironmentVariables(subcommandOptions, parsedEnvironmentArgs, env, additionalOptions?.envPrefix);
86
+ await parseEnvironmentVariables(subcommandOptions, parsedEnvironmentArgs, env, additionalOptions?.envPrefix, isSetByCli);
86
87
  for (const [key, option] of Object.entries(subcommandOptions)) {
87
88
  combinedOptions[key] = option;
88
89
  }
@@ -163,13 +164,14 @@ async function parseCliArguments(command, subcommands, cliArgs, additionalOption
163
164
  }
164
165
  }
165
166
  const currentValue = parsedArgs[selectedArgument];
166
- const validation = await optionConfig.validateValues(currentValue, theRest);
167
+ const validation = await optionConfig.validateValues(currentValue, theRest, isSetByCli[selectedArgument] === undefined);
167
168
  if (!validation.valid) {
168
169
  (0, utils_js_1.exit)(2, `Validation error for ${fullArgumentName}: ${validation.message}`);
169
170
  return {};
170
171
  }
171
172
  else {
172
- parsedArgs[selectedArgument] = await optionConfig.reduceValues(currentValue, validation.value);
173
+ parsedArgs[selectedArgument] = await optionConfig.reduceValues(currentValue, validation.value, isSetByCli[selectedArgument] === undefined);
174
+ isSetByCli[selectedArgument] = true;
173
175
  }
174
176
  }
175
177
  }
@@ -256,7 +258,7 @@ function initializeDefault(parsedArgs, cliArguments, key) {
256
258
  * @param env the environment variables to get values from
257
259
  * @param envPrefix the prefix to use for environment variables, if any
258
260
  */
259
- async function parseEnvironmentVariables(cliArguments, parsedArgs, env, envPrefix) {
261
+ async function parseEnvironmentVariables(cliArguments, parsedArgs, env, envPrefix, valuesSetByCli) {
260
262
  if (!envPrefix) {
261
263
  return;
262
264
  }
@@ -277,13 +279,14 @@ async function parseEnvironmentVariables(cliArguments, parsedArgs, env, envPrefi
277
279
  }
278
280
  if (!config.character) {
279
281
  const values = value.split(' ');
280
- const validation = await config.validateValues(parsedArgs[option], values);
282
+ const validation = await config.validateValues(parsedArgs[option], values, valuesSetByCli[option] === undefined);
281
283
  if (!validation.valid) {
282
284
  const s = values.length > 1 ? 's' : '';
283
285
  (0, utils_js_1.exit)(2, `Invalid value${s} for environment ${key}: ${validation.message}`);
284
286
  return;
285
287
  }
286
- parsedArgs[option] = await config.reduceValues(parsedArgs[option], validation.value);
288
+ parsedArgs[option] = await config.reduceValues(parsedArgs[option], validation.value, valuesSetByCli[option] === undefined);
289
+ valuesSetByCli[option] = true;
287
290
  }
288
291
  }
289
292
  }