@boneskull/bargs 0.1.1

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 (91) hide show
  1. package/LICENSE +55 -0
  2. package/README.md +483 -0
  3. package/dist/bargs.cjs +167 -0
  4. package/dist/bargs.cjs.map +1 -0
  5. package/dist/bargs.d.cts +31 -0
  6. package/dist/bargs.d.cts.map +1 -0
  7. package/dist/bargs.d.ts +31 -0
  8. package/dist/bargs.d.ts.map +1 -0
  9. package/dist/bargs.js +163 -0
  10. package/dist/bargs.js.map +1 -0
  11. package/dist/errors.cjs +57 -0
  12. package/dist/errors.cjs.map +1 -0
  13. package/dist/errors.d.cts +40 -0
  14. package/dist/errors.d.cts.map +1 -0
  15. package/dist/errors.d.ts +40 -0
  16. package/dist/errors.d.ts.map +1 -0
  17. package/dist/errors.js +51 -0
  18. package/dist/errors.js.map +1 -0
  19. package/dist/help.cjs +309 -0
  20. package/dist/help.cjs.map +1 -0
  21. package/dist/help.d.cts +21 -0
  22. package/dist/help.d.cts.map +1 -0
  23. package/dist/help.d.ts +21 -0
  24. package/dist/help.d.ts.map +1 -0
  25. package/dist/help.js +304 -0
  26. package/dist/help.js.map +1 -0
  27. package/dist/index.cjs +63 -0
  28. package/dist/index.cjs.map +1 -0
  29. package/dist/index.d.cts +96 -0
  30. package/dist/index.d.cts.map +1 -0
  31. package/dist/index.d.ts +96 -0
  32. package/dist/index.d.ts.map +1 -0
  33. package/dist/index.js +47 -0
  34. package/dist/index.js.map +1 -0
  35. package/dist/opt.cjs +205 -0
  36. package/dist/opt.cjs.map +1 -0
  37. package/dist/opt.d.cts +145 -0
  38. package/dist/opt.d.cts.map +1 -0
  39. package/dist/opt.d.ts +145 -0
  40. package/dist/opt.d.ts.map +1 -0
  41. package/dist/opt.js +202 -0
  42. package/dist/opt.js.map +1 -0
  43. package/dist/osc.cjs +190 -0
  44. package/dist/osc.cjs.map +1 -0
  45. package/dist/osc.d.cts +30 -0
  46. package/dist/osc.d.cts.map +1 -0
  47. package/dist/osc.d.ts +30 -0
  48. package/dist/osc.d.ts.map +1 -0
  49. package/dist/osc.js +181 -0
  50. package/dist/osc.js.map +1 -0
  51. package/dist/parser.cjs +293 -0
  52. package/dist/parser.cjs.map +1 -0
  53. package/dist/parser.d.cts +47 -0
  54. package/dist/parser.d.cts.map +1 -0
  55. package/dist/parser.d.ts +47 -0
  56. package/dist/parser.d.ts.map +1 -0
  57. package/dist/parser.js +285 -0
  58. package/dist/parser.js.map +1 -0
  59. package/dist/theme.cjs +203 -0
  60. package/dist/theme.cjs.map +1 -0
  61. package/dist/theme.d.cts +227 -0
  62. package/dist/theme.d.cts.map +1 -0
  63. package/dist/theme.d.ts +227 -0
  64. package/dist/theme.d.ts.map +1 -0
  65. package/dist/theme.js +198 -0
  66. package/dist/theme.js.map +1 -0
  67. package/dist/types.cjs +18 -0
  68. package/dist/types.cjs.map +1 -0
  69. package/dist/types.d.cts +244 -0
  70. package/dist/types.d.cts.map +1 -0
  71. package/dist/types.d.ts +244 -0
  72. package/dist/types.d.ts.map +1 -0
  73. package/dist/types.js +17 -0
  74. package/dist/types.js.map +1 -0
  75. package/dist/validate.cjs +452 -0
  76. package/dist/validate.cjs.map +1 -0
  77. package/dist/validate.d.cts +28 -0
  78. package/dist/validate.d.cts.map +1 -0
  79. package/dist/validate.d.ts +28 -0
  80. package/dist/validate.d.ts.map +1 -0
  81. package/dist/validate.js +448 -0
  82. package/dist/validate.js.map +1 -0
  83. package/dist/version.cjs +134 -0
  84. package/dist/version.cjs.map +1 -0
  85. package/dist/version.d.cts +27 -0
  86. package/dist/version.d.cts.map +1 -0
  87. package/dist/version.d.ts +27 -0
  88. package/dist/version.d.ts.map +1 -0
  89. package/dist/version.js +129 -0
  90. package/dist/version.js.map +1 -0
  91. package/package.json +149 -0
package/dist/help.js ADDED
@@ -0,0 +1,304 @@
1
+ /**
2
+ * Help text generation for CLI applications.
3
+ *
4
+ * Generates formatted, colorized help output for both simple CLIs and
5
+ * command-based CLIs. Supports customizable themes, automatic URL linkification
6
+ * in terminals that support hyperlinks, option grouping, and automatic epilog
7
+ * generation from `package.json` metadata.
8
+ *
9
+ * @packageDocumentation
10
+ */
11
+ import { link, supportsHyperlinks } from "./osc.js";
12
+ import { createStyler, defaultTheme, } from "./theme.js";
13
+ import { readPackageInfoSync } from "./version.js";
14
+ /**
15
+ * URL regex pattern for matching URLs in text.
16
+ */
17
+ const URL_PATTERN = /https?:\/\/[^\s<>"\])}]+/g;
18
+ /**
19
+ * Linkify URLs in text if terminal supports hyperlinks. Applies URL styling.
20
+ */
21
+ const linkifyText = (text, styler, stream = process.stdout) => {
22
+ const canLink = supportsHyperlinks(stream);
23
+ return text.replace(URL_PATTERN, (url) => {
24
+ const styledUrl = styler.url(url);
25
+ return canLink ? link(styledUrl, url) : styledUrl;
26
+ });
27
+ };
28
+ /**
29
+ * Generate default epilog from package.json (homepage and repository).
30
+ */
31
+ const generateDefaultEpilog = (styler) => {
32
+ const pkgInfo = readPackageInfoSync();
33
+ const lines = [];
34
+ if (pkgInfo.homepage) {
35
+ const styledUrl = styler.url(pkgInfo.homepage);
36
+ const linkedUrl = supportsHyperlinks()
37
+ ? link(styledUrl, pkgInfo.homepage)
38
+ : styledUrl;
39
+ lines.push(styler.epilog(`Homepage: ${linkedUrl}`));
40
+ }
41
+ if (pkgInfo.repository) {
42
+ const styledUrl = styler.url(pkgInfo.repository);
43
+ const linkedUrl = supportsHyperlinks()
44
+ ? link(styledUrl, pkgInfo.repository)
45
+ : styledUrl;
46
+ lines.push(styler.epilog(`Repository: ${linkedUrl}`));
47
+ }
48
+ return lines;
49
+ };
50
+ /**
51
+ * Format epilog based on config. Returns empty array if epilog is disabled,
52
+ * custom epilog lines if provided, or default epilog from package.json.
53
+ */
54
+ const formatEpilog = (config, styler) => {
55
+ // Explicitly disabled
56
+ if (config.epilog === false || config.epilog === '') {
57
+ return [];
58
+ }
59
+ // Custom epilog provided
60
+ if (typeof config.epilog === 'string') {
61
+ const linkified = linkifyText(config.epilog, styler);
62
+ return [styler.epilog(linkified)];
63
+ }
64
+ // Default: generate from package.json
65
+ return generateDefaultEpilog(styler);
66
+ };
67
+ /**
68
+ * Format a single positional for help usage line. Required positionals use
69
+ * <name>, optional use [name]. Variadic positionals append "...".
70
+ */
71
+ const formatPositionalUsage = (def, index) => {
72
+ const name = def.name ?? `arg${index}`;
73
+ const isRequired = def.required || 'default' in def;
74
+ const isVariadic = def.type === 'variadic';
75
+ const displayName = isVariadic ? `${name}...` : name;
76
+ return isRequired ? `<${displayName}>` : `[${displayName}]`;
77
+ };
78
+ /**
79
+ * Build the positionals usage string from a schema.
80
+ */
81
+ const buildPositionalsUsage = (schema) => {
82
+ if (!schema || schema.length === 0) {
83
+ return '';
84
+ }
85
+ return schema
86
+ .map((def, index) => formatPositionalUsage(def, index))
87
+ .join(' ');
88
+ };
89
+ /**
90
+ * Get type label for help display.
91
+ */
92
+ const getTypeLabel = (def) => {
93
+ switch (def.type) {
94
+ case 'array':
95
+ return `${def.items}[]`;
96
+ case 'boolean':
97
+ return 'boolean';
98
+ case 'count':
99
+ return 'count';
100
+ case 'enum':
101
+ return def.choices.join(' | ');
102
+ case 'number':
103
+ return 'number';
104
+ case 'string':
105
+ return 'string';
106
+ default:
107
+ return 'string';
108
+ }
109
+ };
110
+ /**
111
+ * Format a single option for help output.
112
+ */
113
+ const formatOptionHelp = (name, def, styler) => {
114
+ const parts = [];
115
+ // Build flag string: -v, --verbose
116
+ const shortAlias = def.aliases?.find((a) => a.length === 1);
117
+ const flagText = shortAlias ? `-${shortAlias}, --${name}` : ` --${name}`;
118
+ parts.push(` ${styler.flag(flagText)}`);
119
+ // Pad to align descriptions
120
+ const padding = Math.max(0, 24 - flagText.length - 2);
121
+ parts.push(' '.repeat(padding));
122
+ // Description
123
+ if (def.description) {
124
+ parts.push(styler.description(def.description));
125
+ }
126
+ // Type and default
127
+ const typeLabel = getTypeLabel(def);
128
+ const suffixParts = [styler.type(`[${typeLabel}]`)];
129
+ if ('default' in def && def.default !== undefined) {
130
+ suffixParts.push(`${styler.defaultText('default:')} ${styler.defaultValue(JSON.stringify(def.default))}`);
131
+ }
132
+ parts.push(' ', suffixParts.join(' '));
133
+ return parts.join('');
134
+ };
135
+ /**
136
+ * Check if config has commands.
137
+ */
138
+ const hasCommands = (config) => config.commands !== undefined && Object.keys(config.commands).length > 0;
139
+ /**
140
+ * Generate help text for a bargs config.
141
+ */
142
+ export const generateHelp = (config, theme = defaultTheme) => {
143
+ const styler = createStyler(theme);
144
+ const lines = [];
145
+ // Header
146
+ const version = config.version ? ` v${config.version}` : '';
147
+ lines.push('');
148
+ lines.push(`${styler.scriptName(config.name)}${styler.defaultValue(version)}`);
149
+ if (config.description) {
150
+ const linkifiedDesc = linkifyText(config.description, styler);
151
+ lines.push(` ${styler.description(linkifiedDesc)}`);
152
+ }
153
+ lines.push('');
154
+ // Build positional names for usage line
155
+ const posNames = [];
156
+ if (config.positionals && config.positionals.length > 0) {
157
+ for (let i = 0; i < config.positionals.length; i++) {
158
+ const pos = config.positionals[i];
159
+ const formatted = formatPositionalUsage(pos, i);
160
+ posNames.push(styler.positional(formatted));
161
+ }
162
+ }
163
+ // Usage
164
+ lines.push(styler.sectionHeader('USAGE'));
165
+ if (hasCommands(config)) {
166
+ const posStr = posNames.length > 0 ? ` ${posNames.join(' ')}` : '';
167
+ lines.push(styler.usage(` $ ${config.name} <command> [options]${posStr}`));
168
+ }
169
+ else {
170
+ const posStr = posNames.length > 0 ? ` ${posNames.join(' ')}` : '';
171
+ lines.push(styler.usage(` $ ${config.name} [options]${posStr}`));
172
+ }
173
+ lines.push('');
174
+ // Commands
175
+ if (hasCommands(config)) {
176
+ lines.push(styler.sectionHeader('COMMANDS'));
177
+ for (const [name, cmd] of Object.entries(config.commands)) {
178
+ const padding = Math.max(0, 14 - name.length);
179
+ lines.push(` ${styler.command(name)}${' '.repeat(padding)}${styler.description(cmd.description)}`);
180
+ }
181
+ lines.push('');
182
+ }
183
+ // Options
184
+ if (config.options && Object.keys(config.options).length > 0) {
185
+ // Group options
186
+ const groups = new Map();
187
+ const ungrouped = [];
188
+ for (const [name, def] of Object.entries(config.options)) {
189
+ if (def.hidden) {
190
+ continue;
191
+ }
192
+ if (def.group) {
193
+ const group = groups.get(def.group) ?? [];
194
+ group.push({ def, name });
195
+ groups.set(def.group, group);
196
+ }
197
+ else {
198
+ ungrouped.push({ def, name });
199
+ }
200
+ }
201
+ // Print grouped options
202
+ for (const [groupName, options] of Array.from(groups.entries())) {
203
+ lines.push(styler.sectionHeader(groupName.toUpperCase()));
204
+ for (const opt of options) {
205
+ lines.push(formatOptionHelp(opt.name, opt.def, styler));
206
+ }
207
+ lines.push('');
208
+ }
209
+ // Print ungrouped
210
+ if (ungrouped.length > 0) {
211
+ const label = hasCommands(config) ? 'GLOBAL OPTIONS' : 'OPTIONS';
212
+ lines.push(styler.sectionHeader(label));
213
+ for (const opt of ungrouped) {
214
+ lines.push(formatOptionHelp(opt.name, opt.def, styler));
215
+ }
216
+ lines.push('');
217
+ }
218
+ }
219
+ // Positionals
220
+ if (config.positionals && config.positionals.length > 0) {
221
+ lines.push(styler.sectionHeader('POSITIONALS'));
222
+ for (let i = 0; i < config.positionals.length; i++) {
223
+ const pos = config.positionals[i];
224
+ const name = pos.name ?? `arg${i}`;
225
+ const formatted = pos.required ? `<${name}>` : `[${name}]`;
226
+ const padding = Math.max(0, 20 - formatted.length);
227
+ const desc = pos.description ?? '';
228
+ lines.push(` ${styler.positional(formatted)}${' '.repeat(padding)}${styler.description(desc)}`);
229
+ }
230
+ lines.push('');
231
+ }
232
+ // Footer
233
+ if (hasCommands(config)) {
234
+ lines.push(styler.example(`Run '${config.name} <command> --help' for command-specific help.`));
235
+ lines.push('');
236
+ }
237
+ // Epilog
238
+ const epilogLines = formatEpilog(config, styler);
239
+ if (epilogLines.length > 0) {
240
+ lines.push(...epilogLines);
241
+ lines.push('');
242
+ }
243
+ return lines.join('\n');
244
+ };
245
+ /**
246
+ * Generate help text for a specific command.
247
+ */
248
+ export const generateCommandHelp = (config, commandName, theme = defaultTheme) => {
249
+ const styler = createStyler(theme);
250
+ const commandsRecord = config.commands;
251
+ const command = commandsRecord[commandName];
252
+ if (!command) {
253
+ return `Unknown command: ${commandName}`;
254
+ }
255
+ const lines = [];
256
+ // Header
257
+ lines.push('');
258
+ lines.push(` ${styler.scriptName(config.name)} ${styler.command(commandName)}`);
259
+ const linkifiedDesc = linkifyText(command.description, styler);
260
+ lines.push(` ${styler.description(linkifiedDesc)}`);
261
+ lines.push('');
262
+ // Usage
263
+ lines.push(styler.sectionHeader('USAGE'));
264
+ const positionalsPart = buildPositionalsUsage(command.positionals);
265
+ const usageParts = [
266
+ `$ ${config.name} ${commandName}`,
267
+ '[options]',
268
+ positionalsPart,
269
+ ]
270
+ .filter(Boolean)
271
+ .join(' ');
272
+ lines.push(styler.usage(` ${usageParts}`));
273
+ lines.push('');
274
+ // Command options
275
+ if (command.options && Object.keys(command.options).length > 0) {
276
+ lines.push(styler.sectionHeader('OPTIONS'));
277
+ for (const [name, def] of Object.entries(command.options)) {
278
+ if (def.hidden) {
279
+ continue;
280
+ }
281
+ lines.push(formatOptionHelp(name, def, styler));
282
+ }
283
+ lines.push('');
284
+ }
285
+ // Global options
286
+ if (config.options && Object.keys(config.options).length > 0) {
287
+ lines.push(styler.sectionHeader('GLOBAL OPTIONS'));
288
+ for (const [name, def] of Object.entries(config.options)) {
289
+ if (def.hidden) {
290
+ continue;
291
+ }
292
+ lines.push(formatOptionHelp(name, def, styler));
293
+ }
294
+ lines.push('');
295
+ }
296
+ // Epilog
297
+ const epilogLines = formatEpilog(config, styler);
298
+ if (epilogLines.length > 0) {
299
+ lines.push(...epilogLines);
300
+ lines.push('');
301
+ }
302
+ return lines.join('\n');
303
+ };
304
+ //# sourceMappingURL=help.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"help.js","sourceRoot":"","sources":["../src/help.ts"],"names":[],"mappings":"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"}
package/dist/index.cjs ADDED
@@ -0,0 +1,63 @@
1
+ "use strict";
2
+ /**
3
+ * Main entry point for the bargs CLI argument parser.
4
+ *
5
+ * This module exports the primary `bargs` and `bargsAsync` functions with
6
+ * attached option builder methods (e.g., `bargs.string()`, `bargs.boolean()`),
7
+ * allowing both function-call and builder-namespace usage patterns. It also
8
+ * re-exports all public types, error classes, help generators, theme utilities,
9
+ * and OSC hyperlink functions.
10
+ *
11
+ * @example
12
+ *
13
+ * ```typescript
14
+ * import { bargs } from 'bargs';
15
+ *
16
+ * // Use as function
17
+ * const result = bargs({
18
+ * name: 'myapp',
19
+ * options: { verbose: bargs.boolean({ aliases: ['v'] }) },
20
+ * });
21
+ *
22
+ * // Access builder namespace
23
+ * const opts = bargs.options({ name: bargs.string() });
24
+ * ```
25
+ *
26
+ * @packageDocumentation
27
+ */
28
+ Object.defineProperty(exports, "__esModule", { value: true });
29
+ exports.themes = exports.stripAnsi = exports.defaultTheme = exports.createStyler = exports.ansi = exports.supportsHyperlinks = exports.linkifyUrls = exports.link = exports.generateHelp = exports.generateCommandHelp = exports.ValidationError = exports.HelpError = exports.BargsError = exports.bargsAsync = exports.bargs = void 0;
30
+ const bargs_js_1 = require("./bargs.cjs");
31
+ const opt_js_1 = require("./opt.cjs");
32
+ /**
33
+ * Main bargs entry point (sync). Also provides access to all opt builders via
34
+ * bargs.string(), bargs.boolean(), etc.
35
+ */
36
+ exports.bargs = Object.assign(bargs_js_1.bargs, opt_js_1.opt);
37
+ /**
38
+ * Async bargs entry point. Also provides access to all opt builders via
39
+ * bargsAsync.string(), etc.
40
+ */
41
+ exports.bargsAsync = Object.assign(bargs_js_1.bargsAsync, opt_js_1.opt);
42
+ // Re-export errors
43
+ var errors_js_1 = require("./errors.cjs");
44
+ Object.defineProperty(exports, "BargsError", { enumerable: true, get: function () { return errors_js_1.BargsError; } });
45
+ Object.defineProperty(exports, "HelpError", { enumerable: true, get: function () { return errors_js_1.HelpError; } });
46
+ Object.defineProperty(exports, "ValidationError", { enumerable: true, get: function () { return errors_js_1.ValidationError; } });
47
+ // Re-export help generators
48
+ var help_js_1 = require("./help.cjs");
49
+ Object.defineProperty(exports, "generateCommandHelp", { enumerable: true, get: function () { return help_js_1.generateCommandHelp; } });
50
+ Object.defineProperty(exports, "generateHelp", { enumerable: true, get: function () { return help_js_1.generateHelp; } });
51
+ // Re-export OSC utilities for terminal hyperlinks
52
+ var osc_js_1 = require("./osc.cjs");
53
+ Object.defineProperty(exports, "link", { enumerable: true, get: function () { return osc_js_1.link; } });
54
+ Object.defineProperty(exports, "linkifyUrls", { enumerable: true, get: function () { return osc_js_1.linkifyUrls; } });
55
+ Object.defineProperty(exports, "supportsHyperlinks", { enumerable: true, get: function () { return osc_js_1.supportsHyperlinks; } });
56
+ // Re-export theme utilities
57
+ var theme_js_1 = require("./theme.cjs");
58
+ Object.defineProperty(exports, "ansi", { enumerable: true, get: function () { return theme_js_1.ansi; } });
59
+ Object.defineProperty(exports, "createStyler", { enumerable: true, get: function () { return theme_js_1.createStyler; } });
60
+ Object.defineProperty(exports, "defaultTheme", { enumerable: true, get: function () { return theme_js_1.defaultTheme; } });
61
+ Object.defineProperty(exports, "stripAnsi", { enumerable: true, get: function () { return theme_js_1.stripAnsi; } });
62
+ Object.defineProperty(exports, "themes", { enumerable: true, get: function () { return theme_js_1.themes; } });
63
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;;;AAEH,0CAA8E;AAC9E,sCAA+B;AAE/B;;;GAGG;AACU,QAAA,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,gBAAS,EAAE,YAAG,CAAC,CAAC;AAEnD;;;GAGG;AACU,QAAA,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC,qBAAc,EAAE,YAAG,CAAC,CAAC;AAE7D,mBAAmB;AACnB,0CAAqE;AAA5D,uGAAA,UAAU,OAAA;AAAE,sGAAA,SAAS,OAAA;AAAE,4GAAA,eAAe,OAAA;AAE/C,4BAA4B;AAC5B,sCAA8D;AAArD,8GAAA,mBAAmB,OAAA;AAAE,uGAAA,YAAY,OAAA;AAE1C,kDAAkD;AAClD,oCAAiE;AAAxD,8FAAA,IAAI,OAAA;AAAE,qGAAA,WAAW,OAAA;AAAE,4GAAA,kBAAkB,OAAA;AAE9C,4BAA4B;AAC5B,wCAMoB;AALlB,gGAAA,IAAI,OAAA;AACJ,wGAAA,YAAY,OAAA;AACZ,wGAAA,YAAY,OAAA;AACZ,qGAAA,SAAS,OAAA;AACT,kGAAA,MAAM,OAAA"}
@@ -0,0 +1,96 @@
1
+ /**
2
+ * Main entry point for the bargs CLI argument parser.
3
+ *
4
+ * This module exports the primary `bargs` and `bargsAsync` functions with
5
+ * attached option builder methods (e.g., `bargs.string()`, `bargs.boolean()`),
6
+ * allowing both function-call and builder-namespace usage patterns. It also
7
+ * re-exports all public types, error classes, help generators, theme utilities,
8
+ * and OSC hyperlink functions.
9
+ *
10
+ * @example
11
+ *
12
+ * ```typescript
13
+ * import { bargs } from 'bargs';
14
+ *
15
+ * // Use as function
16
+ * const result = bargs({
17
+ * name: 'myapp',
18
+ * options: { verbose: bargs.boolean({ aliases: ['v'] }) },
19
+ * });
20
+ *
21
+ * // Access builder namespace
22
+ * const opts = bargs.options({ name: bargs.string() });
23
+ * ```
24
+ *
25
+ * @packageDocumentation
26
+ */
27
+ import { bargsAsync as bargsAsyncBase, bargs as bargsBase } from "./bargs.cjs";
28
+ /**
29
+ * Main bargs entry point (sync). Also provides access to all opt builders via
30
+ * bargs.string(), bargs.boolean(), etc.
31
+ */
32
+ export declare const bargs: typeof bargsBase & {
33
+ array: (items: "number" | "string", props?: Omit<import("./types.js").ArrayOption, "items" | "type">) => import("./types.js").ArrayOption;
34
+ boolean: <P extends Omit<import("./types.js").BooleanOption, "type"> = Omit<import("./types.js").BooleanOption, "type">>(props?: P) => import("./types.js").BooleanOption & P;
35
+ command: <TOptions extends import("./types.js").OptionsSchema = import("./types.js").OptionsSchema, TPositionals extends import("./types.js").PositionalsSchema = import("./types.js").PositionalsSchema>(config: import("./types.js").CommandConfig<TOptions, TPositionals>) => import("./types.js").CommandConfig<TOptions, TPositionals>;
36
+ count: (props?: Omit<import("./types.js").CountOption, "type">) => import("./types.js").CountOption;
37
+ enum: <const T extends readonly string[], P extends Omit<import("./types.js").EnumOption<T[number]>, "choices" | "type"> = Omit<import("./types.js").EnumOption<T[number]>, "type" | "choices">>(choices: T, props?: P) => import("./types.js").EnumOption<T[number]> & P;
38
+ enumPos: <const T extends readonly string[], P extends Omit<import("./types.js").EnumPositional<T[number]>, "choices" | "type"> = Omit<import("./types.js").EnumPositional<T[number]>, "type" | "choices">>(choices: T, props?: P) => import("./types.js").EnumPositional<T[number]> & P;
39
+ number: <P extends Omit<import("./types.js").NumberOption, "type"> = Omit<import("./types.js").NumberOption, "type">>(props?: P) => import("./types.js").NumberOption & P;
40
+ numberPos: (props?: Omit<import("./types.js").NumberPositional, "type">) => import("./types.js").NumberPositional;
41
+ options: {
42
+ <A extends import("./types.js").OptionsSchema>(a: A): A;
43
+ <A extends import("./types.js").OptionsSchema, B extends import("./types.js").OptionsSchema>(a: A, b: B): A & B;
44
+ <A extends import("./types.js").OptionsSchema, B extends import("./types.js").OptionsSchema, C extends import("./types.js").OptionsSchema>(a: A, b: B, c: C): A & B & C;
45
+ <A extends import("./types.js").OptionsSchema, B extends import("./types.js").OptionsSchema, C extends import("./types.js").OptionsSchema, D extends import("./types.js").OptionsSchema>(a: A, b: B, c: C, d: D): A & B & C & D;
46
+ (...schemas: import("./types.js").OptionsSchema[]): import("./types.js").OptionsSchema;
47
+ };
48
+ positionals: {
49
+ <A extends import("./types.js").PositionalDef>(a: A): [A];
50
+ <A extends import("./types.js").PositionalDef, B extends import("./types.js").PositionalDef>(a: A, b: B): [A, B];
51
+ <A extends import("./types.js").PositionalDef, B extends import("./types.js").PositionalDef, C extends import("./types.js").PositionalDef>(a: A, b: B, c: C): [A, B, C];
52
+ <A extends import("./types.js").PositionalDef, B extends import("./types.js").PositionalDef, C extends import("./types.js").PositionalDef, D extends import("./types.js").PositionalDef>(a: A, b: B, c: C, d: D): [A, B, C, D];
53
+ (...positionals: import("./types.js").PositionalDef[]): import("./types.js").PositionalsSchema;
54
+ };
55
+ string: <P extends Omit<import("./types.js").StringOption, "type"> = Omit<import("./types.js").StringOption, "type">>(props?: P) => P & import("./types.js").StringOption;
56
+ stringPos: (props?: Omit<import("./types.js").StringPositional, "type">) => import("./types.js").StringPositional;
57
+ variadic: (items: "number" | "string", props?: Omit<import("./types.js").VariadicPositional, "items" | "type">) => import("./types.js").VariadicPositional;
58
+ };
59
+ /**
60
+ * Async bargs entry point. Also provides access to all opt builders via
61
+ * bargsAsync.string(), etc.
62
+ */
63
+ export declare const bargsAsync: typeof bargsAsyncBase & {
64
+ array: (items: "number" | "string", props?: Omit<import("./types.js").ArrayOption, "items" | "type">) => import("./types.js").ArrayOption;
65
+ boolean: <P extends Omit<import("./types.js").BooleanOption, "type"> = Omit<import("./types.js").BooleanOption, "type">>(props?: P) => import("./types.js").BooleanOption & P;
66
+ command: <TOptions extends import("./types.js").OptionsSchema = import("./types.js").OptionsSchema, TPositionals extends import("./types.js").PositionalsSchema = import("./types.js").PositionalsSchema>(config: import("./types.js").CommandConfig<TOptions, TPositionals>) => import("./types.js").CommandConfig<TOptions, TPositionals>;
67
+ count: (props?: Omit<import("./types.js").CountOption, "type">) => import("./types.js").CountOption;
68
+ enum: <const T extends readonly string[], P extends Omit<import("./types.js").EnumOption<T[number]>, "choices" | "type"> = Omit<import("./types.js").EnumOption<T[number]>, "type" | "choices">>(choices: T, props?: P) => import("./types.js").EnumOption<T[number]> & P;
69
+ enumPos: <const T extends readonly string[], P extends Omit<import("./types.js").EnumPositional<T[number]>, "choices" | "type"> = Omit<import("./types.js").EnumPositional<T[number]>, "type" | "choices">>(choices: T, props?: P) => import("./types.js").EnumPositional<T[number]> & P;
70
+ number: <P extends Omit<import("./types.js").NumberOption, "type"> = Omit<import("./types.js").NumberOption, "type">>(props?: P) => import("./types.js").NumberOption & P;
71
+ numberPos: (props?: Omit<import("./types.js").NumberPositional, "type">) => import("./types.js").NumberPositional;
72
+ options: {
73
+ <A extends import("./types.js").OptionsSchema>(a: A): A;
74
+ <A extends import("./types.js").OptionsSchema, B extends import("./types.js").OptionsSchema>(a: A, b: B): A & B;
75
+ <A extends import("./types.js").OptionsSchema, B extends import("./types.js").OptionsSchema, C extends import("./types.js").OptionsSchema>(a: A, b: B, c: C): A & B & C;
76
+ <A extends import("./types.js").OptionsSchema, B extends import("./types.js").OptionsSchema, C extends import("./types.js").OptionsSchema, D extends import("./types.js").OptionsSchema>(a: A, b: B, c: C, d: D): A & B & C & D;
77
+ (...schemas: import("./types.js").OptionsSchema[]): import("./types.js").OptionsSchema;
78
+ };
79
+ positionals: {
80
+ <A extends import("./types.js").PositionalDef>(a: A): [A];
81
+ <A extends import("./types.js").PositionalDef, B extends import("./types.js").PositionalDef>(a: A, b: B): [A, B];
82
+ <A extends import("./types.js").PositionalDef, B extends import("./types.js").PositionalDef, C extends import("./types.js").PositionalDef>(a: A, b: B, c: C): [A, B, C];
83
+ <A extends import("./types.js").PositionalDef, B extends import("./types.js").PositionalDef, C extends import("./types.js").PositionalDef, D extends import("./types.js").PositionalDef>(a: A, b: B, c: C, d: D): [A, B, C, D];
84
+ (...positionals: import("./types.js").PositionalDef[]): import("./types.js").PositionalsSchema;
85
+ };
86
+ string: <P extends Omit<import("./types.js").StringOption, "type"> = Omit<import("./types.js").StringOption, "type">>(props?: P) => P & import("./types.js").StringOption;
87
+ stringPos: (props?: Omit<import("./types.js").StringPositional, "type">) => import("./types.js").StringPositional;
88
+ variadic: (items: "number" | "string", props?: Omit<import("./types.js").VariadicPositional, "items" | "type">) => import("./types.js").VariadicPositional;
89
+ };
90
+ export { BargsError, HelpError, ValidationError } from "./errors.cjs";
91
+ export { generateCommandHelp, generateHelp } from "./help.cjs";
92
+ export { link, linkifyUrls, supportsHyperlinks } from "./osc.cjs";
93
+ export { ansi, createStyler, defaultTheme, stripAnsi, themes, } from "./theme.cjs";
94
+ export type { StyleFn, Styler, Theme, ThemeColors, ThemeInput, } from "./theme.cjs";
95
+ export type { AnyCommandConfig, ArrayOption, BargsConfig, BargsConfigWithCommands, BargsOptions, BargsResult, BooleanOption, CommandConfig, CommandConfigInput, CountOption, EnumOption, Handler, HandlerFn, InferOption, InferOptions, InferPositional, InferPositionals, NumberOption, NumberPositional, OptionDef, OptionsSchema, PositionalDef, PositionalsSchema, StringOption, StringPositional, VariadicPositional, } from "./types.cjs";
96
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAEH,OAAO,EAAE,UAAU,IAAI,cAAc,EAAE,KAAK,IAAI,SAAS,EAAE,oBAAmB;AAG9E;;;GAGG;AACH,eAAO,MAAM,KAAK;;;;;;;;;;;;;;SAgE8rI,GAAG;;;;;;;SAAo1B,GAAG;;;;;CAhEx/J,CAAC;AAEnD;;;GAGG;AACH,eAAO,MAAM,UAAU;;;;;;;;;;;;;;SA0DyrI,GAAG;;;;;;;SAAo1B,GAAG;;;;;CA1D9+J,CAAC;AAG7D,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,eAAe,EAAE,qBAAoB;AAGrE,OAAO,EAAE,mBAAmB,EAAE,YAAY,EAAE,mBAAkB;AAG9D,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,kBAAkB,EAAE,kBAAiB;AAGjE,OAAO,EACL,IAAI,EACJ,YAAY,EACZ,YAAY,EACZ,SAAS,EACT,MAAM,GACP,oBAAmB;AAGpB,YAAY,EACV,OAAO,EACP,MAAM,EACN,KAAK,EACL,WAAW,EACX,UAAU,GACX,oBAAmB;AAGpB,YAAY,EACV,gBAAgB,EAChB,WAAW,EACX,WAAW,EACX,uBAAuB,EACvB,YAAY,EACZ,WAAW,EACX,aAAa,EACb,aAAa,EACb,kBAAkB,EAClB,WAAW,EACX,UAAU,EACV,OAAO,EACP,SAAS,EACT,WAAW,EACX,YAAY,EACZ,eAAe,EACf,gBAAgB,EAChB,YAAY,EACZ,gBAAgB,EAChB,SAAS,EACT,aAAa,EACb,aAAa,EACb,iBAAiB,EACjB,YAAY,EACZ,gBAAgB,EAChB,kBAAkB,GACnB,oBAAmB"}
@@ -0,0 +1,96 @@
1
+ /**
2
+ * Main entry point for the bargs CLI argument parser.
3
+ *
4
+ * This module exports the primary `bargs` and `bargsAsync` functions with
5
+ * attached option builder methods (e.g., `bargs.string()`, `bargs.boolean()`),
6
+ * allowing both function-call and builder-namespace usage patterns. It also
7
+ * re-exports all public types, error classes, help generators, theme utilities,
8
+ * and OSC hyperlink functions.
9
+ *
10
+ * @example
11
+ *
12
+ * ```typescript
13
+ * import { bargs } from 'bargs';
14
+ *
15
+ * // Use as function
16
+ * const result = bargs({
17
+ * name: 'myapp',
18
+ * options: { verbose: bargs.boolean({ aliases: ['v'] }) },
19
+ * });
20
+ *
21
+ * // Access builder namespace
22
+ * const opts = bargs.options({ name: bargs.string() });
23
+ * ```
24
+ *
25
+ * @packageDocumentation
26
+ */
27
+ import { bargsAsync as bargsAsyncBase, bargs as bargsBase } from "./bargs.js";
28
+ /**
29
+ * Main bargs entry point (sync). Also provides access to all opt builders via
30
+ * bargs.string(), bargs.boolean(), etc.
31
+ */
32
+ export declare const bargs: typeof bargsBase & {
33
+ array: (items: "number" | "string", props?: Omit<import("./types.js").ArrayOption, "items" | "type">) => import("./types.js").ArrayOption;
34
+ boolean: <P extends Omit<import("./types.js").BooleanOption, "type"> = Omit<import("./types.js").BooleanOption, "type">>(props?: P) => import("./types.js").BooleanOption & P;
35
+ command: <TOptions extends import("./types.js").OptionsSchema = import("./types.js").OptionsSchema, TPositionals extends import("./types.js").PositionalsSchema = import("./types.js").PositionalsSchema>(config: import("./types.js").CommandConfig<TOptions, TPositionals>) => import("./types.js").CommandConfig<TOptions, TPositionals>;
36
+ count: (props?: Omit<import("./types.js").CountOption, "type">) => import("./types.js").CountOption;
37
+ enum: <const T extends readonly string[], P extends Omit<import("./types.js").EnumOption<T[number]>, "choices" | "type"> = Omit<import("./types.js").EnumOption<T[number]>, "type" | "choices">>(choices: T, props?: P) => import("./types.js").EnumOption<T[number]> & P;
38
+ enumPos: <const T extends readonly string[], P extends Omit<import("./types.js").EnumPositional<T[number]>, "choices" | "type"> = Omit<import("./types.js").EnumPositional<T[number]>, "type" | "choices">>(choices: T, props?: P) => import("./types.js").EnumPositional<T[number]> & P;
39
+ number: <P extends Omit<import("./types.js").NumberOption, "type"> = Omit<import("./types.js").NumberOption, "type">>(props?: P) => import("./types.js").NumberOption & P;
40
+ numberPos: (props?: Omit<import("./types.js").NumberPositional, "type">) => import("./types.js").NumberPositional;
41
+ options: {
42
+ <A extends import("./types.js").OptionsSchema>(a: A): A;
43
+ <A extends import("./types.js").OptionsSchema, B extends import("./types.js").OptionsSchema>(a: A, b: B): A & B;
44
+ <A extends import("./types.js").OptionsSchema, B extends import("./types.js").OptionsSchema, C extends import("./types.js").OptionsSchema>(a: A, b: B, c: C): A & B & C;
45
+ <A extends import("./types.js").OptionsSchema, B extends import("./types.js").OptionsSchema, C extends import("./types.js").OptionsSchema, D extends import("./types.js").OptionsSchema>(a: A, b: B, c: C, d: D): A & B & C & D;
46
+ (...schemas: import("./types.js").OptionsSchema[]): import("./types.js").OptionsSchema;
47
+ };
48
+ positionals: {
49
+ <A extends import("./types.js").PositionalDef>(a: A): [A];
50
+ <A extends import("./types.js").PositionalDef, B extends import("./types.js").PositionalDef>(a: A, b: B): [A, B];
51
+ <A extends import("./types.js").PositionalDef, B extends import("./types.js").PositionalDef, C extends import("./types.js").PositionalDef>(a: A, b: B, c: C): [A, B, C];
52
+ <A extends import("./types.js").PositionalDef, B extends import("./types.js").PositionalDef, C extends import("./types.js").PositionalDef, D extends import("./types.js").PositionalDef>(a: A, b: B, c: C, d: D): [A, B, C, D];
53
+ (...positionals: import("./types.js").PositionalDef[]): import("./types.js").PositionalsSchema;
54
+ };
55
+ string: <P extends Omit<import("./types.js").StringOption, "type"> = Omit<import("./types.js").StringOption, "type">>(props?: P) => P & import("./types.js").StringOption;
56
+ stringPos: (props?: Omit<import("./types.js").StringPositional, "type">) => import("./types.js").StringPositional;
57
+ variadic: (items: "number" | "string", props?: Omit<import("./types.js").VariadicPositional, "items" | "type">) => import("./types.js").VariadicPositional;
58
+ };
59
+ /**
60
+ * Async bargs entry point. Also provides access to all opt builders via
61
+ * bargsAsync.string(), etc.
62
+ */
63
+ export declare const bargsAsync: typeof bargsAsyncBase & {
64
+ array: (items: "number" | "string", props?: Omit<import("./types.js").ArrayOption, "items" | "type">) => import("./types.js").ArrayOption;
65
+ boolean: <P extends Omit<import("./types.js").BooleanOption, "type"> = Omit<import("./types.js").BooleanOption, "type">>(props?: P) => import("./types.js").BooleanOption & P;
66
+ command: <TOptions extends import("./types.js").OptionsSchema = import("./types.js").OptionsSchema, TPositionals extends import("./types.js").PositionalsSchema = import("./types.js").PositionalsSchema>(config: import("./types.js").CommandConfig<TOptions, TPositionals>) => import("./types.js").CommandConfig<TOptions, TPositionals>;
67
+ count: (props?: Omit<import("./types.js").CountOption, "type">) => import("./types.js").CountOption;
68
+ enum: <const T extends readonly string[], P extends Omit<import("./types.js").EnumOption<T[number]>, "choices" | "type"> = Omit<import("./types.js").EnumOption<T[number]>, "type" | "choices">>(choices: T, props?: P) => import("./types.js").EnumOption<T[number]> & P;
69
+ enumPos: <const T extends readonly string[], P extends Omit<import("./types.js").EnumPositional<T[number]>, "choices" | "type"> = Omit<import("./types.js").EnumPositional<T[number]>, "type" | "choices">>(choices: T, props?: P) => import("./types.js").EnumPositional<T[number]> & P;
70
+ number: <P extends Omit<import("./types.js").NumberOption, "type"> = Omit<import("./types.js").NumberOption, "type">>(props?: P) => import("./types.js").NumberOption & P;
71
+ numberPos: (props?: Omit<import("./types.js").NumberPositional, "type">) => import("./types.js").NumberPositional;
72
+ options: {
73
+ <A extends import("./types.js").OptionsSchema>(a: A): A;
74
+ <A extends import("./types.js").OptionsSchema, B extends import("./types.js").OptionsSchema>(a: A, b: B): A & B;
75
+ <A extends import("./types.js").OptionsSchema, B extends import("./types.js").OptionsSchema, C extends import("./types.js").OptionsSchema>(a: A, b: B, c: C): A & B & C;
76
+ <A extends import("./types.js").OptionsSchema, B extends import("./types.js").OptionsSchema, C extends import("./types.js").OptionsSchema, D extends import("./types.js").OptionsSchema>(a: A, b: B, c: C, d: D): A & B & C & D;
77
+ (...schemas: import("./types.js").OptionsSchema[]): import("./types.js").OptionsSchema;
78
+ };
79
+ positionals: {
80
+ <A extends import("./types.js").PositionalDef>(a: A): [A];
81
+ <A extends import("./types.js").PositionalDef, B extends import("./types.js").PositionalDef>(a: A, b: B): [A, B];
82
+ <A extends import("./types.js").PositionalDef, B extends import("./types.js").PositionalDef, C extends import("./types.js").PositionalDef>(a: A, b: B, c: C): [A, B, C];
83
+ <A extends import("./types.js").PositionalDef, B extends import("./types.js").PositionalDef, C extends import("./types.js").PositionalDef, D extends import("./types.js").PositionalDef>(a: A, b: B, c: C, d: D): [A, B, C, D];
84
+ (...positionals: import("./types.js").PositionalDef[]): import("./types.js").PositionalsSchema;
85
+ };
86
+ string: <P extends Omit<import("./types.js").StringOption, "type"> = Omit<import("./types.js").StringOption, "type">>(props?: P) => P & import("./types.js").StringOption;
87
+ stringPos: (props?: Omit<import("./types.js").StringPositional, "type">) => import("./types.js").StringPositional;
88
+ variadic: (items: "number" | "string", props?: Omit<import("./types.js").VariadicPositional, "items" | "type">) => import("./types.js").VariadicPositional;
89
+ };
90
+ export { BargsError, HelpError, ValidationError } from "./errors.js";
91
+ export { generateCommandHelp, generateHelp } from "./help.js";
92
+ export { link, linkifyUrls, supportsHyperlinks } from "./osc.js";
93
+ export { ansi, createStyler, defaultTheme, stripAnsi, themes, } from "./theme.js";
94
+ export type { StyleFn, Styler, Theme, ThemeColors, ThemeInput, } from "./theme.js";
95
+ export type { AnyCommandConfig, ArrayOption, BargsConfig, BargsConfigWithCommands, BargsOptions, BargsResult, BooleanOption, CommandConfig, CommandConfigInput, CountOption, EnumOption, Handler, HandlerFn, InferOption, InferOptions, InferPositional, InferPositionals, NumberOption, NumberPositional, OptionDef, OptionsSchema, PositionalDef, PositionalsSchema, StringOption, StringPositional, VariadicPositional, } from "./types.js";
96
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAEH,OAAO,EAAE,UAAU,IAAI,cAAc,EAAE,KAAK,IAAI,SAAS,EAAE,mBAAmB;AAG9E;;;GAGG;AACH,eAAO,MAAM,KAAK;;;;;;;;;;;;;;SAgE8rI,GAAG;;;;;;;SAAo1B,GAAG;;;;;CAhEx/J,CAAC;AAEnD;;;GAGG;AACH,eAAO,MAAM,UAAU;;;;;;;;;;;;;;SA0DyrI,GAAG;;;;;;;SAAo1B,GAAG;;;;;CA1D9+J,CAAC;AAG7D,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,eAAe,EAAE,oBAAoB;AAGrE,OAAO,EAAE,mBAAmB,EAAE,YAAY,EAAE,kBAAkB;AAG9D,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,kBAAkB,EAAE,iBAAiB;AAGjE,OAAO,EACL,IAAI,EACJ,YAAY,EACZ,YAAY,EACZ,SAAS,EACT,MAAM,GACP,mBAAmB;AAGpB,YAAY,EACV,OAAO,EACP,MAAM,EACN,KAAK,EACL,WAAW,EACX,UAAU,GACX,mBAAmB;AAGpB,YAAY,EACV,gBAAgB,EAChB,WAAW,EACX,WAAW,EACX,uBAAuB,EACvB,YAAY,EACZ,WAAW,EACX,aAAa,EACb,aAAa,EACb,kBAAkB,EAClB,WAAW,EACX,UAAU,EACV,OAAO,EACP,SAAS,EACT,WAAW,EACX,YAAY,EACZ,eAAe,EACf,gBAAgB,EAChB,YAAY,EACZ,gBAAgB,EAChB,SAAS,EACT,aAAa,EACb,aAAa,EACb,iBAAiB,EACjB,YAAY,EACZ,gBAAgB,EAChB,kBAAkB,GACnB,mBAAmB"}