massarg 2.0.0-pre.8 → 2.0.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.
package/index.js CHANGED
@@ -14,5 +14,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
14
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
+ const massarg_1 = require("./massarg");
17
18
  __exportStar(require("./massarg"), exports);
19
+ exports.default = massarg_1.massarg;
18
20
  //# sourceMappingURL=index.js.map
package/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,4CAAyB"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,uCAAmC;AAEnC,4CAAyB;AAEzB,kBAAe,iBAAO,CAAA"}
package/massarg.d.ts CHANGED
@@ -1,8 +1,20 @@
1
1
  import { ArgsObject, CommandConfig, MassargCommand } from './command';
2
- type MinimalCommandConfig<Args extends ArgsObject = ArgsObject> = Omit<CommandConfig<Args>, 'aliases' | 'run'> & Partial<Pick<CommandConfig<Args>, 'aliases' | 'run'>>;
2
+ /** A minimal command config that can be used to create a top-level command. */
3
+ export type MinimalCommandConfig<Args extends ArgsObject = ArgsObject> = Omit<CommandConfig<Args>, 'aliases' | 'run'> & Partial<Pick<CommandConfig<Args>, 'aliases' | 'run'>>;
4
+ /**
5
+ * This class behaves similarly to {@link MassargCommand}, but it accepts only params that are relevant
6
+ * to the top-level command.
7
+ *
8
+ * @see {@link massarg}
9
+ * @see {@link MassargCommand}
10
+ */
3
11
  export declare class Massarg<Args extends ArgsObject = ArgsObject> extends MassargCommand<Args> {
4
12
  constructor(options: MinimalCommandConfig<Args>);
5
13
  }
14
+ /**
15
+ * Creates a new top-level command.
16
+ * @see {@link MassargCommand}
17
+ * @see {@link Massarg}
18
+ */
6
19
  export declare function massarg<Args extends ArgsObject = ArgsObject>(options: MinimalCommandConfig<Args>): MassargCommand<Args>;
7
- export {};
8
20
  //# sourceMappingURL=massarg.d.ts.map
package/massarg.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"massarg.d.ts","sourceRoot":"","sources":["../src/massarg.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,WAAW,CAAA;AAErE,KAAK,oBAAoB,CAAC,IAAI,SAAS,UAAU,GAAG,UAAU,IAAI,IAAI,CACpE,aAAa,CAAC,IAAI,CAAC,EACnB,SAAS,GAAG,KAAK,CAClB,GACC,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE,SAAS,GAAG,KAAK,CAAC,CAAC,CAAA;AAEvD,qBAAa,OAAO,CAAC,IAAI,SAAS,UAAU,GAAG,UAAU,CAAE,SAAQ,cAAc,CAAC,IAAI,CAAC;gBACzE,OAAO,EAAE,oBAAoB,CAAC,IAAI,CAAC;CAWhD;AAED,wBAAgB,OAAO,CAAC,IAAI,SAAS,UAAU,GAAG,UAAU,EAC1D,OAAO,EAAE,oBAAoB,CAAC,IAAI,CAAC,GAClC,cAAc,CAAC,IAAI,CAAC,CAEtB"}
1
+ {"version":3,"file":"massarg.d.ts","sourceRoot":"","sources":["../src/massarg.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,WAAW,CAAA;AAErE,+EAA+E;AAC/E,MAAM,MAAM,oBAAoB,CAAC,IAAI,SAAS,UAAU,GAAG,UAAU,IAAI,IAAI,CAC3E,aAAa,CAAC,IAAI,CAAC,EACnB,SAAS,GAAG,KAAK,CAClB,GACC,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE,SAAS,GAAG,KAAK,CAAC,CAAC,CAAA;AAEvD;;;;;;GAMG;AACH,qBAAa,OAAO,CAAC,IAAI,SAAS,UAAU,GAAG,UAAU,CAAE,SAAQ,cAAc,CAAC,IAAI,CAAC;gBACzE,OAAO,EAAE,oBAAoB,CAAC,IAAI,CAAC;CAWhD;AAED;;;;GAIG;AACH,wBAAgB,OAAO,CAAC,IAAI,SAAS,UAAU,GAAG,UAAU,EAC1D,OAAO,EAAE,oBAAoB,CAAC,IAAI,CAAC,GAClC,cAAc,CAAC,IAAI,CAAC,CAEtB"}
package/massarg.js CHANGED
@@ -2,6 +2,13 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.massarg = exports.Massarg = void 0;
4
4
  const command_1 = require("./command");
5
+ /**
6
+ * This class behaves similarly to {@link MassargCommand}, but it accepts only params that are relevant
7
+ * to the top-level command.
8
+ *
9
+ * @see {@link massarg}
10
+ * @see {@link MassargCommand}
11
+ */
5
12
  class Massarg extends command_1.MassargCommand {
6
13
  constructor(options) {
7
14
  // TODO consider re-using name and description for general help, and pass them to super
@@ -16,6 +23,11 @@ class Massarg extends command_1.MassargCommand {
16
23
  }
17
24
  }
18
25
  exports.Massarg = Massarg;
26
+ /**
27
+ * Creates a new top-level command.
28
+ * @see {@link MassargCommand}
29
+ * @see {@link Massarg}
30
+ */
19
31
  function massarg(options) {
20
32
  return new Massarg(options);
21
33
  }
package/massarg.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"massarg.js","sourceRoot":"","sources":["../src/massarg.ts"],"names":[],"mappings":";;;AAAA,uCAAqE;AAQrE,MAAa,OAA8C,SAAQ,wBAAoB;IACrF,YAAY,OAAmC;QAC7C,uFAAuF;QACvF,KAAK,CAAC;YACJ,OAAO,EAAE,EAAE;YACX,GAAG,EAAE,GAAG,EAAE;gBACR,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,CAAA;gBAC9B,8CAA8C;YAChD,CAAC;YACD,GAAG,OAAO;SACX,CAAC,CAAA;IACJ,CAAC;CACF;AAZD,0BAYC;AAED,SAAgB,OAAO,CACrB,OAAmC;IAEnC,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC,CAAA;AAC7B,CAAC;AAJD,0BAIC"}
1
+ {"version":3,"file":"massarg.js","sourceRoot":"","sources":["../src/massarg.ts"],"names":[],"mappings":";;;AAAA,uCAAqE;AASrE;;;;;;GAMG;AACH,MAAa,OAA8C,SAAQ,wBAAoB;IACrF,YAAY,OAAmC;QAC7C,uFAAuF;QACvF,KAAK,CAAC;YACJ,OAAO,EAAE,EAAE;YACX,GAAG,EAAE,GAAG,EAAE;gBACR,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,CAAA;gBAC9B,8CAA8C;YAChD,CAAC;YACD,GAAG,OAAO;SACX,CAAC,CAAA;IACJ,CAAC;CACF;AAZD,0BAYC;AAED;;;;GAIG;AACH,SAAgB,OAAO,CACrB,OAAmC;IAEnC,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC,CAAA;AAC7B,CAAC;AAJD,0BAIC"}
package/option.d.ts CHANGED
@@ -1,6 +1,6 @@
1
1
  import { z } from 'zod';
2
2
  import { ArgsObject } from './command';
3
- export declare const OptionConfig: <OptionType, Args extends object = object>(type: z.ZodType<OptionType, z.ZodTypeDef, OptionType>) => z.ZodObject<{
3
+ export declare const OptionConfig: <OptionType, Args extends ArgsObject = ArgsObject>(type: z.ZodType<OptionType, z.ZodTypeDef, OptionType>) => z.ZodObject<{
4
4
  /** Name of the option */
5
5
  name: z.ZodString;
6
6
  /** Description of the option, displayed in the help output */
@@ -61,6 +61,9 @@ export declare const OptionConfig: <OptionType, Args extends object = object>(ty
61
61
  outputName?: string | undefined;
62
62
  }>;
63
63
  export type OptionConfig<T = unknown, Args extends ArgsObject = ArgsObject> = z.infer<ReturnType<typeof OptionConfig<T, Args>>>;
64
+ /**
65
+ * Configuration for a flag (boolean argument) that can be passed to a command.
66
+ */
64
67
  export declare const FlagConfig: z.ZodObject<{
65
68
  name: z.ZodString;
66
69
  description: z.ZodString;
@@ -71,6 +74,8 @@ export declare const FlagConfig: z.ZodObject<{
71
74
  hidden: z.ZodOptional<z.ZodBoolean>;
72
75
  outputName: z.ZodOptional<z.ZodString>;
73
76
  negatable: z.ZodOptional<z.ZodBoolean>;
77
+ negationName: z.ZodOptional<z.ZodString>;
78
+ negationAliases: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
74
79
  }, "strip", z.ZodTypeAny, {
75
80
  name: string;
76
81
  description: string;
@@ -81,6 +86,8 @@ export declare const FlagConfig: z.ZodObject<{
81
86
  hidden?: boolean | undefined;
82
87
  outputName?: string | undefined;
83
88
  negatable?: boolean | undefined;
89
+ negationName?: string | undefined;
90
+ negationAliases?: string[] | undefined;
84
91
  }, {
85
92
  name: string;
86
93
  description: string;
@@ -91,10 +98,16 @@ export declare const FlagConfig: z.ZodObject<{
91
98
  hidden?: boolean | undefined;
92
99
  outputName?: string | undefined;
93
100
  negatable?: boolean | undefined;
101
+ negationName?: string | undefined;
102
+ negationAliases?: string[] | undefined;
94
103
  }>;
95
104
  export type FlagConfig = z.infer<typeof FlagConfig>;
105
+ /**
106
+ * A function that parses an option value.
107
+ */
96
108
  export type Parser<Args extends ArgsObject = ArgsObject, OptionType extends any = any> = (x: string, y: Args) => OptionType;
97
- export declare const TypedOptionConfig: <OptionType, Args extends object = object>(type: z.ZodType<OptionType, z.ZodTypeDef, OptionType>) => z.ZodObject<{
109
+ /** {@link OptionConfig} with a specified value type */
110
+ export declare const TypedOptionConfig: <OptionType, Args extends ArgsObject = ArgsObject>(type: z.ZodType<OptionType, z.ZodTypeDef, OptionType>) => z.ZodObject<{
98
111
  name: z.ZodString;
99
112
  description: z.ZodString;
100
113
  defaultValue: z.ZodOptional<z.ZodAny>;
@@ -136,7 +149,7 @@ export type TypedOptionConfig<T, A extends ArgsObject = ArgsObject> = z.infer<Re
136
149
  * @see OptionConfig
137
150
  * @see ArrayOptionConfig
138
151
  */
139
- export declare const ArrayOptionConfig: <T, A extends object = object>(type: z.ZodType<T, z.ZodTypeDef, T>) => z.ZodObject<{
152
+ export declare const ArrayOptionConfig: <T, A extends ArgsObject = ArgsObject>(type: z.ZodType<T, z.ZodTypeDef, T>) => z.ZodObject<{
140
153
  type: z.ZodOptional<z.ZodEnum<["number"]>>;
141
154
  name: z.ZodString;
142
155
  description: z.ZodString;
@@ -179,15 +192,24 @@ export declare const ArrayOptionConfig: <T, A extends object = object>(type: z.Z
179
192
  * This type represents an array option, which can be specified multiple times.
180
193
  */
181
194
  export type ArrayOptionConfig<T = unknown> = z.infer<ReturnType<typeof ArrayOptionConfig<z.ZodType<T>>>>;
182
- export declare const OPT_FULL_PREFIX = "--";
183
- export declare const OPT_SHORT_PREFIX = "-";
184
- export declare const NEGATE_FULL_PREFIX = "--no-";
185
- export declare const NEGATE_SHORT_PREFIX = "^";
195
+ /** The default prefixes for options */
196
+ export declare const DEFAULT_OPT_FULL_PREFIX = "--";
197
+ /** The default prefix for option aliases */
198
+ export declare const DEFAULT_OPT_SHORT_PREFIX = "-";
186
199
  export type Prefixes = {
187
- optionPrefix: string;
200
+ normalPrefix: string;
188
201
  aliasPrefix: string;
189
- negateFlagPrefix: string;
190
- negateAliasPrefix: string;
202
+ };
203
+ export type Names = {
204
+ name: string;
205
+ aliases: string[];
206
+ };
207
+ /** Names with prefixes built-in */
208
+ export type QualifiedNames = {
209
+ name: string;
210
+ aliases: string[];
211
+ negationName: string;
212
+ negationAliases: string[];
191
213
  };
192
214
  /** @internal */
193
215
  export type ArgvValue<T> = {
@@ -217,29 +239,43 @@ export type ArgvValue<T> = {
217
239
  * })
218
240
  * ```
219
241
  */
220
- export declare class MassargOption<OptionType extends any = unknown, Args extends ArgsObject = ArgsObject> {
242
+ export declare class MassargOption<OptionType extends any = unknown, Args extends ArgsObject = ArgsObject> implements OptionConfig<OptionType, Args> {
221
243
  name: string;
222
244
  description: string;
223
245
  defaultValue?: OptionType;
224
246
  aliases: string[];
225
247
  parse: Parser<Args, OptionType>;
248
+ /**
249
+ * Whether this option can be used multiple times. Any passed values will end up in an array
250
+ * instead of each usage overwriting the existing value.
251
+ */
226
252
  isArray: boolean;
253
+ /** Whether this option is required. Failing to specify this option will throw an error. */
227
254
  isRequired: boolean;
228
255
  isDefault: boolean;
229
256
  outputName?: string;
230
257
  constructor(options: OptionConfig<OptionType, Args>);
258
+ /**
259
+ * Create a typed option from a configuration. Currently supports `number` options which
260
+ * are automatically transformed from `string` to `number`.
261
+ */
231
262
  static fromTypedConfig<T = unknown, A extends ArgsObject = ArgsObject>(config: TypedOptionConfig<T, A>): MassargOption<T>;
263
+ /**
264
+ * Returns the key which this option outputs to in the final object.
265
+ *
266
+ * @default The camelCase version of this option's name.
267
+ *
268
+ * Can be overridden with {@link outputName}.
269
+ */
232
270
  getOutputName(): string;
271
+ /** @internal */
233
272
  parseDetails(argv: string[], options: ArgsObject, prefixes: Prefixes): ArgvValue<OptionType>;
273
+ /** Get the help string for this option */
234
274
  helpString(): string;
235
275
  /** Returns true if the flag (including any prefixes) matches the name or aliases */
236
276
  isMatch(arg: string, prefixes: Prefixes): boolean;
237
- /**
238
- * Returns the name of the flag, removing any prefixes. It is discriminate of if the option
239
- * exists, as it is a static method; it only returns the name of the flag if it matches the
240
- * prefixes format.
241
- */
242
- static findNameInArg(arg: string, prefixes: Prefixes): string;
277
+ /** Return the finalized names that will cause this option to match. */
278
+ qualifiedNames(prefixes: Prefixes): QualifiedNames;
243
279
  }
244
280
  /**
245
281
  * An option that can be passed to a command.
@@ -262,15 +298,16 @@ export declare class MassargNumber extends MassargOption<number> {
262
298
  parseDetails(argv: string[], options: ArgsObject, prefixes: Prefixes): ArgvValue<number>;
263
299
  }
264
300
  /**
265
- * An option that can be passed to a command.
301
+ * A boolean option that can be passed to a command.
266
302
  *
267
303
  * A flag is an option that is either present or not. It can be used to toggle
268
304
  * a boolean value, or to indicate that a command should be run in a different
269
305
  * mode.
270
306
  *
271
- * A flag can be negated by prefixing it with `no-`. For example, `--no-verbose`,
272
- * or by prefixing the alias with `^` instead of `-`. This is configurable via the command's
273
- * configuration. To turn this behavior on, set `negatable: true` in the flag's configuration.
307
+ * A flag can be negated by using `negatable: true`. By default, the negated name is the same
308
+ * as the option name, prefixed by `no-`, and each of the aliases will be uppercased.
309
+ * For example, `--verbose` and `--no-verbose`, or `-v` and `-V`.
310
+ * This behavior can be overridden by the `negatedName` and `negatedAliases` options.
274
311
  *
275
312
  * @example
276
313
  * ```ts
@@ -283,10 +320,17 @@ export declare class MassargNumber extends MassargOption<number> {
283
320
  * ```
284
321
  */
285
322
  export declare class MassargFlag extends MassargOption<boolean> {
323
+ /** Whether this flag may be negated using `negationName` or `negationAliases`. */
286
324
  negatable: boolean;
325
+ /** The negation name of this flag, which can be used with the full option notation. */
326
+ negationName: string;
327
+ /** The negation aliases of this flag, which can be used with the shorthand option notation. */
328
+ negationAliases: string[];
287
329
  constructor(options: FlagConfig);
288
330
  parseDetails(argv: string[], _options: ArgsObject, prefixes: Prefixes): ArgvValue<boolean>;
331
+ qualifiedNames(prefixes: Prefixes): QualifiedNames;
289
332
  }
333
+ /** A flag that can be passed to a command to show the help message. */
290
334
  export declare class MassargHelpFlag extends MassargFlag {
291
335
  constructor(config?: Partial<Omit<OptionConfig<boolean>, 'parse'>>);
292
336
  }
package/option.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"option.d.ts","sourceRoot":"","sources":["../src/option.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"option.d.ts","sourceRoot":"","sources":["../src/option.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAGvB,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAA;AAEtC,eAAO,MAAM,YAAY;IAIrB,yBAAyB;;IAEzB,8DAA8D;;IAE9D,kCAAkC;;IAElC,oFAAoF;;IAEpF;;;OAGG;;IAIH;;;;;;OAMG;;IAEH;;OAEG;;IAEH;;;;;OAKG;;IAEH,yFAAyF;;IAEzF,sFAAsF;;;;;;;;;;;;;;;;;;;;;;;;EAEtF,CAAA;AACJ,MAAM,MAAM,YAAY,CAAC,CAAC,GAAG,OAAO,EAAE,IAAI,SAAS,UAAU,GAAG,UAAU,IAAI,CAAC,CAAC,KAAK,CACnF,UAAU,CAAC,OAAO,YAAY,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CACzC,CAAA;AAED;;GAEG;AACH,eAAO,MAAM,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAuBpB,CAAA;AACH,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,UAAU,CAAC,CAAA;AAEnD;;GAEG;AACH,MAAM,MAAM,MAAM,CAAC,IAAI,SAAS,UAAU,GAAG,UAAU,EAAE,UAAU,SAAS,GAAG,GAAG,GAAG,IAAI,CACvF,CAAC,EAAE,MAAM,EACT,CAAC,EAAE,IAAI,KACJ,UAAU,CAAA;AAEf,uDAAuD;AACvD,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAO3B,CAAA;AACH,MAAM,MAAM,iBAAiB,CAAC,CAAC,EAAE,CAAC,SAAS,UAAU,GAAG,UAAU,IAAI,CAAC,CAAC,KAAK,CAC3E,UAAU,CAAC,OAAO,iBAAiB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAC3C,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAM3B,CAAA;AAEH;;;;GAIG;AACH,MAAM,MAAM,iBAAiB,CAAC,CAAC,GAAG,OAAO,IAAI,CAAC,CAAC,KAAK,CAClD,UAAU,CAAC,OAAO,iBAAiB,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CACnD,CAAA;AAED,uCAAuC;AACvC,eAAO,MAAM,uBAAuB,OAAO,CAAA;AAC3C,4CAA4C;AAC5C,eAAO,MAAM,wBAAwB,MAAM,CAAA;AAG3C,MAAM,MAAM,QAAQ,GAAG;IACrB,YAAY,EAAE,MAAM,CAAA;IACpB,WAAW,EAAE,MAAM,CAAA;CACpB,CAAA;AAGD,MAAM,MAAM,KAAK,GAAG;IAClB,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,MAAM,EAAE,CAAA;CAClB,CAAA;AAED,mCAAmC;AACnC,MAAM,MAAM,cAAc,GAAG;IAC3B,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,MAAM,EAAE,CAAA;IACjB,YAAY,EAAE,MAAM,CAAA;IACpB,eAAe,EAAE,MAAM,EAAE,CAAA;CAC1B,CAAA;AAED,gBAAgB;AAChB,MAAM,MAAM,SAAS,CAAC,CAAC,IAAI;IAAE,IAAI,EAAE,MAAM,EAAE,CAAC;IAAC,KAAK,EAAE,CAAC,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,CAAA;AAEpE;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,qBAAa,aAAa,CAAC,UAAU,SAAS,GAAG,GAAG,OAAO,EAAE,IAAI,SAAS,UAAU,GAAG,UAAU,CAC/F,YAAW,YAAY,CAAC,UAAU,EAAE,IAAI,CAAC;IAEzC,IAAI,EAAE,MAAM,CAAA;IACZ,WAAW,EAAE,MAAM,CAAA;IACnB,YAAY,CAAC,EAAE,UAAU,CAAA;IACzB,OAAO,EAAE,MAAM,EAAE,CAAA;IACjB,KAAK,EAAE,MAAM,CAAC,IAAI,EAAE,UAAU,CAAC,CAAA;IAC/B;;;OAGG;IACH,OAAO,EAAE,OAAO,CAAA;IAChB,2FAA2F;IAC3F,UAAU,EAAE,OAAO,CAAA;IACnB,SAAS,EAAE,OAAO,CAAA;IAClB,UAAU,CAAC,EAAE,MAAM,CAAA;gBAEP,OAAO,EAAE,YAAY,CAAC,UAAU,EAAE,IAAI,CAAC;IAanD;;;OAGG;IACH,MAAM,CAAC,eAAe,CAAC,CAAC,GAAG,OAAO,EAAE,CAAC,SAAS,UAAU,GAAG,UAAU,EACnE,MAAM,EAAE,iBAAiB,CAAC,CAAC,EAAE,CAAC,CAAC,GAC9B,aAAa,CAAC,CAAC,CAAC;IAQnB;;;;;;OAMG;IACH,aAAa,IAAI,MAAM;IAIvB,gBAAgB;IAChB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,QAAQ,GAAG,SAAS,CAAC,UAAU,CAAC;IA4B5F,0CAA0C;IAC1C,UAAU,IAAI,MAAM;IAKpB,oFAAoF;IACpF,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,GAAG,OAAO;IAUjD,uEAAuE;IACvE,cAAc,CAAC,QAAQ,EAAE,QAAQ,GAAG,cAAc;CAQnD;AAED;;;;;;;;;;;;;;;GAeG;AACH,qBAAa,aAAc,SAAQ,aAAa,CAAC,MAAM,CAAC;gBAC1C,OAAO,EAAE,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC;IAOxD,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,QAAQ,GAAG,SAAS,CAAC,MAAM,CAAC;CAwBzF;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,qBAAa,WAAY,SAAQ,aAAa,CAAC,OAAO,CAAC;IACrD,kFAAkF;IAClF,SAAS,EAAE,OAAO,CAAA;IAClB,uFAAuF;IACvF,YAAY,EAAE,MAAM,CAAA;IACpB,+FAA+F;IAC/F,eAAe,EAAE,MAAM,EAAE,CAAA;gBAEb,OAAO,EAAE,UAAU;IAU/B,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,QAAQ,EAAE,UAAU,EAAE,QAAQ,EAAE,QAAQ,GAAG,SAAS,CAAC,OAAO,CAAC;IAyC1F,cAAc,CAAC,QAAQ,EAAE,QAAQ,GAAG,cAAc;CAOnD;AAED,uEAAuE;AACvE,qBAAa,eAAgB,SAAQ,WAAW;gBAClC,MAAM,GAAE,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC,CAAM;CAQvE"}
package/option.js CHANGED
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.MassargHelpFlag = exports.MassargFlag = exports.MassargNumber = exports.MassargOption = exports.NEGATE_SHORT_PREFIX = exports.NEGATE_FULL_PREFIX = exports.OPT_SHORT_PREFIX = exports.OPT_FULL_PREFIX = exports.ArrayOptionConfig = exports.TypedOptionConfig = exports.FlagConfig = exports.OptionConfig = void 0;
3
+ exports.MassargHelpFlag = exports.MassargFlag = exports.MassargNumber = exports.MassargOption = exports.DEFAULT_OPT_SHORT_PREFIX = exports.DEFAULT_OPT_FULL_PREFIX = exports.ArrayOptionConfig = exports.TypedOptionConfig = exports.FlagConfig = exports.OptionConfig = void 0;
4
4
  const zod_1 = require("zod");
5
5
  const error_1 = require("./error");
6
6
  const utils_1 = require("./utils");
@@ -43,12 +43,32 @@ const OptionConfig = (type) => zod_1.z.object({
43
43
  outputName: zod_1.z.string().optional(),
44
44
  });
45
45
  exports.OptionConfig = OptionConfig;
46
+ /**
47
+ * Configuration for a flag (boolean argument) that can be passed to a command.
48
+ */
46
49
  exports.FlagConfig = (0, exports.OptionConfig)(zod_1.z.any())
47
50
  .omit({ parse: true, isDefault: true })
48
51
  .merge(zod_1.z.object({
49
52
  /** Whether the flag can be negated, e.g. `--no-verbose` */
50
53
  negatable: zod_1.z.boolean().optional(),
54
+ /**
55
+ * Negation name of the option, which can be used with the full option notation.
56
+ *
57
+ * Defaults to `no-{name}` of your option's name, e.g. `verbose` becomes `--no-verbose`.
58
+ *
59
+ * To use this, you must set `negatable: true` in the option's configuration.
60
+ */
61
+ negationName: zod_1.z.string().optional(),
62
+ /**
63
+ * Negation aliases for the option, which can be used with the shorthand option notation.
64
+ *
65
+ * Defaults to uppercase of each of the aliases provided, e.g. `q` becomes `-Q`.
66
+ *
67
+ * To use this, you must set `negatable: true` in the option's configuration.
68
+ */
69
+ negationAliases: zod_1.z.string().array().optional(),
51
70
  }));
71
+ /** {@link OptionConfig} with a specified value type */
52
72
  const TypedOptionConfig = (type) => (0, exports.OptionConfig)(type).merge(zod_1.z.object({
53
73
  type: zod_1.z.enum(['number']).optional(),
54
74
  }));
@@ -63,11 +83,10 @@ zod_1.z.object({
63
83
  defaultValue: zod_1.z.array(type).optional(),
64
84
  }));
65
85
  exports.ArrayOptionConfig = ArrayOptionConfig;
66
- // TODO turn to options
67
- exports.OPT_FULL_PREFIX = '--';
68
- exports.OPT_SHORT_PREFIX = '-';
69
- exports.NEGATE_FULL_PREFIX = '--no-';
70
- exports.NEGATE_SHORT_PREFIX = '^';
86
+ /** The default prefixes for options */
87
+ exports.DEFAULT_OPT_FULL_PREFIX = '--';
88
+ /** The default prefix for option aliases */
89
+ exports.DEFAULT_OPT_SHORT_PREFIX = '-';
71
90
  /**
72
91
  * An option that can be passed to a command.
73
92
  *
@@ -103,6 +122,10 @@ class MassargOption {
103
122
  this.isRequired = options.required ?? false;
104
123
  this.outputName = options.outputName;
105
124
  }
125
+ /**
126
+ * Create a typed option from a configuration. Currently supports `number` options which
127
+ * are automatically transformed from `string` to `number`.
128
+ */
106
129
  static fromTypedConfig(config) {
107
130
  switch (config.type) {
108
131
  case 'number':
@@ -110,9 +133,17 @@ class MassargOption {
110
133
  }
111
134
  return new MassargOption(config);
112
135
  }
136
+ /**
137
+ * Returns the key which this option outputs to in the final object.
138
+ *
139
+ * @default The camelCase version of this option's name.
140
+ *
141
+ * Can be overridden with {@link outputName}.
142
+ */
113
143
  getOutputName() {
114
144
  return this.outputName || (0, utils_1.toCamelCase)(this.name);
115
145
  }
146
+ /** @internal */
116
147
  parseDetails(argv, options, prefixes) {
117
148
  let input = '';
118
149
  try {
@@ -141,38 +172,27 @@ class MassargOption {
141
172
  throw e;
142
173
  }
143
174
  }
175
+ /** Get the help string for this option */
144
176
  helpString() {
145
177
  const aliases = this.aliases.length ? `|${this.aliases.join('|-')}` : '';
146
178
  return `--${this.name}${aliases} ${this.description}`;
147
179
  }
148
180
  /** Returns true if the flag (including any prefixes) matches the name or aliases */
149
181
  isMatch(arg, prefixes) {
150
- const name = MassargOption.findNameInArg(arg, prefixes);
151
- return name === this.name || this.aliases.includes(name);
182
+ const qualifiedNames = this.qualifiedNames(prefixes);
183
+ return (arg === qualifiedNames.name ||
184
+ arg === qualifiedNames.negationName ||
185
+ qualifiedNames.aliases.includes(arg) ||
186
+ qualifiedNames.negationAliases.includes(arg));
152
187
  }
153
- /**
154
- * Returns the name of the flag, removing any prefixes. It is discriminate of if the option
155
- * exists, as it is a static method; it only returns the name of the flag if it matches the
156
- * prefixes format.
157
- */
158
- static findNameInArg(arg, prefixes) {
159
- const { optionPrefix, aliasPrefix, negateFlagPrefix, negateAliasPrefix } = prefixes;
160
- // negate full prefix
161
- if (arg.startsWith(negateFlagPrefix)) {
162
- return arg.slice(negateFlagPrefix.length);
163
- }
164
- if (arg.startsWith(optionPrefix)) {
165
- return arg.slice(optionPrefix.length);
166
- }
167
- // negate short prefix
168
- if (arg.startsWith(negateAliasPrefix)) {
169
- return arg.slice(negateAliasPrefix.length);
170
- }
171
- // short prefix
172
- if (arg.startsWith(aliasPrefix) || arg.startsWith(negateAliasPrefix)) {
173
- return arg.slice(aliasPrefix.length);
174
- }
175
- return '<blank>';
188
+ /** Return the finalized names that will cause this option to match. */
189
+ qualifiedNames(prefixes) {
190
+ return {
191
+ name: prefixes.normalPrefix + this.name,
192
+ aliases: this.aliases.map((a) => prefixes.aliasPrefix + a),
193
+ negationName: '',
194
+ negationAliases: [],
195
+ };
176
196
  }
177
197
  }
178
198
  exports.MassargOption = MassargOption;
@@ -227,15 +247,16 @@ class MassargNumber extends MassargOption {
227
247
  }
228
248
  exports.MassargNumber = MassargNumber;
229
249
  /**
230
- * An option that can be passed to a command.
250
+ * A boolean option that can be passed to a command.
231
251
  *
232
252
  * A flag is an option that is either present or not. It can be used to toggle
233
253
  * a boolean value, or to indicate that a command should be run in a different
234
254
  * mode.
235
255
  *
236
- * A flag can be negated by prefixing it with `no-`. For example, `--no-verbose`,
237
- * or by prefixing the alias with `^` instead of `-`. This is configurable via the command's
238
- * configuration. To turn this behavior on, set `negatable: true` in the flag's configuration.
256
+ * A flag can be negated by using `negatable: true`. By default, the negated name is the same
257
+ * as the option name, prefixed by `no-`, and each of the aliases will be uppercased.
258
+ * For example, `--verbose` and `--no-verbose`, or `-v` and `-V`.
259
+ * This behavior can be overridden by the `negatedName` and `negatedAliases` options.
239
260
  *
240
261
  * @example
241
262
  * ```ts
@@ -254,11 +275,14 @@ class MassargFlag extends MassargOption {
254
275
  parse: () => true,
255
276
  });
256
277
  this.negatable = options.negatable ?? false;
278
+ this.negationName = options.negationName ?? `no-${options.name}`;
279
+ this.negationAliases = options.negationAliases ?? this.aliases.map((a) => a.toUpperCase());
257
280
  }
258
281
  parseDetails(argv, _options, prefixes) {
259
282
  try {
260
- const isNegation = argv[0]?.startsWith(prefixes.negateAliasPrefix) ||
261
- argv[0]?.startsWith(prefixes.negateFlagPrefix);
283
+ const qualifiedNames = this.qualifiedNames(prefixes);
284
+ const isNegation = (qualifiedNames.negationName && argv[0] === qualifiedNames.negationName) ||
285
+ (qualifiedNames.negationAliases.length && qualifiedNames.negationAliases.includes(argv[0]));
262
286
  if (!this.negatable && isNegation) {
263
287
  throw new error_1.ParseError({
264
288
  path: [this.name],
@@ -292,8 +316,16 @@ class MassargFlag extends MassargOption {
292
316
  throw e;
293
317
  }
294
318
  }
319
+ qualifiedNames(prefixes) {
320
+ return {
321
+ ...super.qualifiedNames(prefixes),
322
+ negationName: prefixes.normalPrefix + this.negationName,
323
+ negationAliases: this.negationAliases.map((a) => prefixes.aliasPrefix + a),
324
+ };
325
+ }
295
326
  }
296
327
  exports.MassargFlag = MassargFlag;
328
+ /** A flag that can be passed to a command to show the help message. */
297
329
  class MassargHelpFlag extends MassargFlag {
298
330
  constructor(config = {}) {
299
331
  super({
package/option.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"option.js","sourceRoot":"","sources":["../src/option.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"option.js","sourceRoot":"","sources":["../src/option.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "massarg",
3
- "version": "2.0.0-pre.8",
3
+ "version": "2.0.0",
4
4
  "description": "Flexible, powerful, and simple command/argument parser for CLI applications",
5
5
  "keywords": [
6
6
  "shell",
@@ -19,24 +19,28 @@
19
19
  "dev": "tsc --watch",
20
20
  "cmd": "ts-node src/sample.ts",
21
21
  "test": "jest",
22
- "doc": "typedoc",
23
- "deploy-doc": "pnpm doc && gh-pages -d docs",
24
- "semantic-release": "semantic-release"
22
+ "docs:build": "cd docs && pnpm build",
23
+ "docs:watch": "cd docs && pnpm start",
24
+ "docs:deploy": "pnpm docs:build && gh-pages -d docs",
25
+ "semantic-release": "semantic-release",
26
+ "changelog": "conventional-changelog -i CHANGELOG.md -s -r 0; echo \"# Change Log\n\n$(cat CHANGELOG.md)\" > CHANGELOG.md"
25
27
  },
26
28
  "devDependencies": {
27
29
  "@semantic-release/changelog": "^6.0.3",
28
30
  "@semantic-release/exec": "^6.0.3",
29
31
  "@semantic-release/git": "^10.0.1",
30
- "@types/jest": "^29.5.8",
31
- "@types/node": "^20.9.2",
32
- "gh-pages": "^6.1.0",
32
+ "@semantic-release/release-notes-generator": "^12.1.0",
33
+ "@types/jest": "^29.5.11",
34
+ "@types/node": "^20.11.10",
35
+ "conventional-changelog": "^5.1.0",
36
+ "conventional-changelog-cli": "^4.1.0",
37
+ "gh-pages": "^6.1.1",
33
38
  "jest": "^29.7.0",
34
- "semantic-release": "^22.0.8",
35
- "ts-jest": "^29.1.1",
36
- "ts-node": "^10.9.1",
37
- "typedoc": "^0.25.3",
38
- "typedoc-plugin-zod": "^1.1.0",
39
- "typescript": "^5.2.2"
39
+ "prettier": "^3.2.4",
40
+ "semantic-release": "^23.0.0",
41
+ "ts-jest": "^29.1.2",
42
+ "ts-node": "^10.9.2",
43
+ "typescript": "^5.3.3"
40
44
  },
41
45
  "dependencies": {
42
46
  "zod": "^3.22.4"
package/style.js CHANGED
@@ -18,9 +18,9 @@ exports.ansiStyles = {
18
18
  exports.ansiColors = {
19
19
  red: '\x1b[31m',
20
20
  green: '\x1b[32m',
21
- yellow: '\x1b[33m',
21
+ yellow: '\x1b[33m', // warning
22
22
  blue: '\x1b[34m',
23
- magenta: '\x1b[35m',
23
+ magenta: '\x1b[35m', // error
24
24
  cyan: '\x1b[36m',
25
25
  white: '\x1b[37m',
26
26
  gray: '\x1b[90m',
@@ -36,7 +36,7 @@ exports.ansiColors = {
36
36
  exports.StringStyle = zod_1.default.object({
37
37
  bold: zod_1.default.boolean().optional(),
38
38
  underline: zod_1.default.boolean().optional(),
39
- color: (0, utils_1.zodEnumFromObjKeys)(exports.ansiColors).optional(),
39
+ color: (0, utils_1._zodEnumFromObjKeys)(exports.ansiColors).optional(),
40
40
  reset: zod_1.default.boolean().default(true).optional(),
41
41
  });
42
42
  function format(string, style = {}) {
package/style.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"style.js","sourceRoot":"","sources":["../src/style.ts"],"names":[],"mappings":";;;;;;AAAA,8CAAmB;AACnB,mCAA4C;AAC5C,iCAA2C;AAAlC,kGAAA,SAAS,OAAA;AAAE,+FAAA,MAAM,OAAA;AAEb,QAAA,UAAU,GAAG;IACxB,KAAK,EAAE,SAAS;IAChB,IAAI,EAAE,SAAS;IACf,SAAS,EAAE,SAAS;IACpB,KAAK,EAAE,UAAU;CAClB,CAAA;AAEY,QAAA,UAAU,GAAG;IACxB,GAAG,EAAE,UAAU;IACf,KAAK,EAAE,UAAU;IACjB,MAAM,EAAE,UAAU;IAClB,IAAI,EAAE,UAAU;IAChB,OAAO,EAAE,UAAU;IACnB,IAAI,EAAE,UAAU;IAChB,KAAK,EAAE,UAAU;IACjB,IAAI,EAAE,UAAU;IAChB,IAAI,EAAE,UAAU;IAChB,SAAS,EAAE,UAAU;IACrB,WAAW,EAAE,UAAU;IACvB,YAAY,EAAE,UAAU;IACxB,UAAU,EAAE,UAAU;IACtB,aAAa,EAAE,UAAU;IACzB,UAAU,EAAE,UAAU;IACtB,WAAW,EAAE,UAAU;CACxB,CAAA;AAEY,QAAA,WAAW,GAAG,aAAC,CAAC,MAAM,CAAC;IAClC,IAAI,EAAE,aAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;IAC5B,SAAS,EAAE,aAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;IACjC,KAAK,EAAE,IAAA,0BAAkB,EAAC,kBAAU,CAAC,CAAC,QAAQ,EAAE;IAChD,KAAK,EAAE,aAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE;CAC5C,CAAC,CAAA;AAIF,SAAgB,MAAM,CAAC,MAAc,EAAE,QAAqB,EAAE;IAC5D,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,GAAG,IAAI,EAAE,GAAG,KAAK,CAAA;IACtD,MAAM,SAAS,GAAG,KAAK,CAAC,CAAC,CAAC,kBAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAA;IAChD,MAAM,QAAQ,GAAG,IAAI,CAAC,CAAC,CAAC,kBAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAA;IAC5C,MAAM,aAAa,GAAG,SAAS,CAAC,CAAC,CAAC,kBAAU,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAA;IAC3D,MAAM,SAAS,GAAG,KAAK,CAAC,CAAC,CAAC,kBAAU,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAA;IAC/C,OAAO,GAAG,SAAS,GAAG,QAAQ,GAAG,aAAa,GAAG,MAAM,GAAG,SAAS,EAAE,CAAA;AACvE,CAAC;AAPD,wBAOC;AAED,SAAgB,UAAU,CAAC,MAAc;IACvC,OAAO,MAAM,CAAC,OAAO,CAAC,cAAc,EAAE,EAAE,CAAC,CAAA;AAC3C,CAAC;AAFD,gCAEC"}
1
+ {"version":3,"file":"style.js","sourceRoot":"","sources":["../src/style.ts"],"names":[],"mappings":";;;;;;AAAA,8CAAmB;AACnB,mCAA6C;AAC7C,iCAA2C;AAAlC,kGAAA,SAAS,OAAA;AAAE,+FAAA,MAAM,OAAA;AAEb,QAAA,UAAU,GAAG;IACxB,KAAK,EAAE,SAAS;IAChB,IAAI,EAAE,SAAS;IACf,SAAS,EAAE,SAAS;IACpB,KAAK,EAAE,UAAU;CAClB,CAAA;AAEY,QAAA,UAAU,GAAG;IACxB,GAAG,EAAE,UAAU;IACf,KAAK,EAAE,UAAU;IACjB,MAAM,EAAE,UAAU,EAAE,UAAU;IAC9B,IAAI,EAAE,UAAU;IAChB,OAAO,EAAE,UAAU,EAAE,QAAQ;IAC7B,IAAI,EAAE,UAAU;IAChB,KAAK,EAAE,UAAU;IACjB,IAAI,EAAE,UAAU;IAChB,IAAI,EAAE,UAAU;IAChB,SAAS,EAAE,UAAU;IACrB,WAAW,EAAE,UAAU;IACvB,YAAY,EAAE,UAAU;IACxB,UAAU,EAAE,UAAU;IACtB,aAAa,EAAE,UAAU;IACzB,UAAU,EAAE,UAAU;IACtB,WAAW,EAAE,UAAU;CACxB,CAAA;AAEY,QAAA,WAAW,GAAG,aAAC,CAAC,MAAM,CAAC;IAClC,IAAI,EAAE,aAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;IAC5B,SAAS,EAAE,aAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;IACjC,KAAK,EAAE,IAAA,2BAAmB,EAAC,kBAAU,CAAC,CAAC,QAAQ,EAAE;IACjD,KAAK,EAAE,aAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE;CAC5C,CAAC,CAAA;AAIF,SAAgB,MAAM,CAAC,MAAc,EAAE,QAAqB,EAAE;IAC5D,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,GAAG,IAAI,EAAE,GAAG,KAAK,CAAA;IACtD,MAAM,SAAS,GAAG,KAAK,CAAC,CAAC,CAAC,kBAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAA;IAChD,MAAM,QAAQ,GAAG,IAAI,CAAC,CAAC,CAAC,kBAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAA;IAC5C,MAAM,aAAa,GAAG,SAAS,CAAC,CAAC,CAAC,kBAAU,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAA;IAC3D,MAAM,SAAS,GAAG,KAAK,CAAC,CAAC,CAAC,kBAAU,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAA;IAC/C,OAAO,GAAG,SAAS,GAAG,QAAQ,GAAG,aAAa,GAAG,MAAM,GAAG,SAAS,EAAE,CAAA;AACvE,CAAC;AAPD,wBAOC;AAED,SAAgB,UAAU,CAAC,MAAc;IACvC,OAAO,MAAM,CAAC,OAAO,CAAC,cAAc,EAAE,EAAE,CAAC,CAAA;AAC3C,CAAC;AAFD,gCAEC"}
package/utils.d.ts CHANGED
@@ -1,7 +1,8 @@
1
1
  import z from 'zod';
2
2
  /** @internal */
3
- export declare function setOrPush<T>(newValue: unknown, currentValue: T[] | T | undefined, isArray: boolean): T;
4
- type Parseable = string | number | boolean | null | undefined | Record<string, unknown>;
3
+ export declare function _setOrPush<T>(newValue: unknown, currentValue: T[] | T | undefined, isArray: boolean): T;
4
+ /** A value that can be stringified using one of the util functions. */
5
+ export type Parseable = string | number | boolean | null | undefined | Record<string, unknown>;
5
6
  /** A type that makes all properties of an object required, recursively. */
6
7
  export type DeepRequired<T> = {
7
8
  [P in keyof T]-?: T[P] extends object ? DeepRequired<T[P]> : NonNullable<T[P]>;
@@ -20,9 +21,9 @@ export declare function strConcat(...strs: (Parseable | Parseable[])[]): string;
20
21
  */
21
22
  export declare function indent(str: Parseable | Parseable[], indent?: number): string;
22
23
  /** @internal */
23
- export declare function zodEnumFromObjKeys<K extends string>(obj: Record<K, any>): z.ZodEnum<[K, ...K[]]>;
24
+ export declare function _zodEnumFromObjKeys<K extends string>(obj: Record<K, any>): z.ZodEnum<[K, ...K[]]>;
24
25
  /** @internal */
25
- export declare function deepMerge<T1, T2>(obj1: T1, obj2: T2): NonNullable<T1> & NonNullable<T2>;
26
+ export declare function _deepMerge<T1, T2>(obj1: T1, obj2: T2): NonNullable<T1> & NonNullable<T2>;
26
27
  export declare function capitalize(str: string): string;
27
28
  /**
28
29
  * Splits a name into words, using camelCase, PascalCase, snake_case, and kebab-case or
@@ -32,5 +33,4 @@ export declare function splitWords(str: string): string[];
32
33
  export declare function toCamelCase(str: string): string;
33
34
  export declare function toPascalCase(str: string): string;
34
35
  export declare function getErrorMessage(err: unknown): string;
35
- export {};
36
36
  //# sourceMappingURL=utils.d.ts.map