@procedures/mark 0.34.0 → 0.35.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/dist/parse.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"parse.js","sourceRoot":"","sources":["../src/parse.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"parse.js","sourceRoot":"","sources":["../src/parse.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "$schema": "https://json.schemastore.org/package",
3
3
  "name": "@procedures/mark",
4
- "version": "0.34.0",
4
+ "version": "0.35.0",
5
5
  "description": "mark: one CLI for every procedure package. It finds the procedures, parses flags by their Zod types, runs local or through a fast warm server, and asks for missing arguments.",
6
6
  "keywords": [
7
7
  "cli",
@@ -51,19 +51,19 @@
51
51
  "provenance": true
52
52
  },
53
53
  "dependencies": {
54
- "@clack/prompts": "^0.7.0",
55
54
  "@mark1russell7/service": "^0.5.8",
56
- "@procedures/cli-run": "0.34.0",
57
- "@procedures/client": "0.34.0",
58
- "@procedures/fs": "0.34.0",
59
- "@procedures/lib": "0.34.0",
60
- "@procedures/mcp-dev-tools": "0.34.0",
61
- "@procedures/peer": "0.34.0",
62
- "@procedures/pnpm": "0.34.0",
63
- "@procedures/procedure": "0.34.0",
64
- "@procedures/server": "0.34.0",
65
- "@procedures/shell": "0.34.0",
66
- "@procedures/vitest": "0.34.0",
55
+ "@procedures/cli-kit": "0.35.0",
56
+ "@procedures/cli-run": "0.35.0",
57
+ "@procedures/client": "0.35.0",
58
+ "@procedures/fs": "0.35.0",
59
+ "@procedures/lib": "0.35.0",
60
+ "@procedures/mcp-dev-tools": "0.35.0",
61
+ "@procedures/peer": "0.35.0",
62
+ "@procedures/pnpm": "0.35.0",
63
+ "@procedures/procedure": "0.35.0",
64
+ "@procedures/server": "0.35.0",
65
+ "@procedures/shell": "0.35.0",
66
+ "@procedures/vitest": "0.35.0",
67
67
  "chalk": "^5.3.0",
68
68
  "cli-table3": "^0.6.5",
69
69
  "ora": "^8.0.0",
@@ -72,43 +72,43 @@
72
72
  },
73
73
  "devDependencies": {
74
74
  "@mark1russell7/cue": "^1.0.0",
75
- "@procedures/archive": "0.34.0",
76
- "@procedures/bundle-assistant": "0.34.0",
77
- "@procedures/bundle-dev": "0.34.0",
78
- "@procedures/bundle-mcp": "0.34.0",
79
- "@procedures/claude-cli": "0.34.0",
80
- "@procedures/compiler": "0.34.0",
81
- "@procedures/cue": "0.34.0",
82
- "@procedures/dag": "0.34.0",
83
- "@procedures/docker": "0.34.0",
84
- "@procedures/env": "0.34.0",
85
- "@procedures/exif": "0.34.0",
86
- "@procedures/geo": "0.34.0",
87
- "@procedures/gh": "0.34.0",
88
- "@procedures/git": "0.34.0",
89
- "@procedures/http": "0.34.0",
90
- "@procedures/ics": "0.34.0",
91
- "@procedures/ios-backup": "0.34.0",
92
- "@procedures/json": "0.34.0",
93
- "@procedures/llm": "0.34.0",
94
- "@procedures/mail": "0.34.0",
95
- "@procedures/mongo": "0.34.0",
96
- "@procedures/node": "0.34.0",
97
- "@procedures/notify": "0.34.0",
98
- "@procedures/npm": "0.34.0",
99
- "@procedures/pdf": "0.34.0",
100
- "@procedures/privacy-scan": "0.34.0",
101
- "@procedures/restic": "0.34.0",
102
- "@procedures/s3": "0.34.0",
103
- "@procedures/schedule": "0.34.0",
104
- "@procedures/snapshot": "0.34.0",
105
- "@procedures/splay": "0.34.0",
106
- "@procedures/sqlite": "0.34.0",
107
- "@procedures/store": "0.34.0",
108
- "@procedures/systems": "0.34.0",
109
- "@procedures/tailscale": "0.34.0",
110
- "@procedures/vite": "0.34.0",
111
- "@procedures/weather": "0.34.0",
75
+ "@procedures/archive": "0.35.0",
76
+ "@procedures/bundle-assistant": "0.35.0",
77
+ "@procedures/bundle-dev": "0.35.0",
78
+ "@procedures/bundle-mcp": "0.35.0",
79
+ "@procedures/claude-cli": "0.35.0",
80
+ "@procedures/compiler": "0.35.0",
81
+ "@procedures/cue": "0.35.0",
82
+ "@procedures/dag": "0.35.0",
83
+ "@procedures/docker": "0.35.0",
84
+ "@procedures/env": "0.35.0",
85
+ "@procedures/exif": "0.35.0",
86
+ "@procedures/geo": "0.35.0",
87
+ "@procedures/gh": "0.35.0",
88
+ "@procedures/git": "0.35.0",
89
+ "@procedures/http": "0.35.0",
90
+ "@procedures/ics": "0.35.0",
91
+ "@procedures/ios-backup": "0.35.0",
92
+ "@procedures/json": "0.35.0",
93
+ "@procedures/llm": "0.35.0",
94
+ "@procedures/mail": "0.35.0",
95
+ "@procedures/mongo": "0.35.0",
96
+ "@procedures/node": "0.35.0",
97
+ "@procedures/notify": "0.35.0",
98
+ "@procedures/npm": "0.35.0",
99
+ "@procedures/pdf": "0.35.0",
100
+ "@procedures/privacy-scan": "0.35.0",
101
+ "@procedures/restic": "0.35.0",
102
+ "@procedures/s3": "0.35.0",
103
+ "@procedures/schedule": "0.35.0",
104
+ "@procedures/snapshot": "0.35.0",
105
+ "@procedures/splay": "0.35.0",
106
+ "@procedures/sqlite": "0.35.0",
107
+ "@procedures/store": "0.35.0",
108
+ "@procedures/systems": "0.35.0",
109
+ "@procedures/tailscale": "0.35.0",
110
+ "@procedures/vite": "0.35.0",
111
+ "@procedures/weather": "0.35.0",
112
112
  "@types/node": "^22.0.0",
113
113
  "fast-check": "^4.10.2",
114
114
  "typescript": "^7.0.2",
package/src/args.ts CHANGED
@@ -2,33 +2,19 @@
2
2
  * Command Line Splitting
3
3
  *
4
4
  * Splits the argv of `mark` into the global flags, the command path, and the input of the
5
- * procedure. The rules (deep dive CLI-7, CLI-9, CLI-10, CLI-11):
6
- *
7
- * - A flag before the command path is a global flag.
8
- * - After the path, a flag is the procedure's when the procedure declares it (its field name, the
9
- * kebab-case name, or its short letter). Otherwise it is a global flag. Otherwise it is an error.
10
- * So `mark docker compose down -v` gives `-v` to the procedure, not to `--version`.
11
- * - Each value is converted by the type of its field: a string field keeps its text.
12
- * - A repeated array flag collects its values. A repeated record flag (`--env A=1 --env B=2`) merges.
13
- * - A boolean flag takes `true`/`false` after it, or `--flag=false`, or `--no-flag`.
14
- * - A repeated global flag with a value keeps the last value. A repeatable one (`--events`)
15
- * collects its values, separated by commas.
16
- * - A negative number is a value, not a flag. `--` ends the flags.
17
- * - The positional fields take the arguments in order. A last array field takes the rest.
18
- * An argument that no field takes is an error.
5
+ * procedure. The rules are in `@procedures/cli-kit` (roadmap O61): this module gives them the
6
+ * name `mark` and the global flags of mark (`@procedures/lib/cli-flags`).
19
7
  */
20
8
 
21
- import { findGlobalFlag, type CliGlobalFlag } from "@procedures/lib/cli-flags";
9
+ import { CLI_GLOBAL_FLAGS } from "@procedures/lib/cli-flags";
22
10
  import {
23
- convertValue,
24
- fieldsOf,
25
- mergeValue,
26
- toCamel,
27
- toKebab,
28
- type CLIMeta,
11
+ parseCommandLine as kitParseCommandLine,
12
+ parseLeadingGlobals as kitParseLeadingGlobals,
29
13
  type CommandLike,
30
- type FieldType,
31
- } from "./parse.js";
14
+ type ParsedCommandLine as KitParsedCommandLine,
15
+ } from "@procedures/cli-kit";
16
+
17
+ export { findChildren, findProcedure, procedureFlags } from "@procedures/cli-kit";
32
18
 
33
19
  /** The long names of the global flags */
34
20
  export type GlobalName =
@@ -51,408 +37,25 @@ export type GlobalName =
51
37
  /** The global flags that the command line gives: true for a flag, text for a flag with a value */
52
38
  export type Globals = Partial<Record<GlobalName, string | boolean>>;
53
39
 
54
- export interface ParsedCommandLine<T extends CommandLike = CommandLike> {
55
- /** The command path */
56
- path: string[];
57
- /** The procedure at the path, if there is one */
58
- procedure: T | undefined;
59
- /** The procedure input, converted by the field types (not validated yet) */
60
- input: Record<string, unknown>;
40
+ export interface ParsedCommandLine<T extends CommandLike = CommandLike> extends Omit<KitParsedCommandLine<T>, "globals"> {
61
41
  /** The global flags */
62
42
  globals: Globals;
63
- /** The arguments that no positional field took */
64
- extraArguments: string[];
65
- /** The problems, one message each */
66
- errors: string[];
67
43
  }
68
44
 
69
- // The digits before the point and the digits after it are two groups, so each token has one match
70
- const NEGATIVE_NUMBER = /^-(?:\d+(?:\.\d*)?|\.\d+)(?:[eE][-+]?\d+)?$/;
71
- const ANY: FieldType = { kind: "any" };
72
-
73
- /** A token that is a flag (not a value, not a negative number, not "-" alone) */
74
- function isFlag(token: string): boolean {
75
- return token.startsWith("-") && token !== "-" && !NEGATIVE_NUMBER.test(token);
76
- }
77
-
78
- /**
79
- * Find a procedure matching the given path
80
- */
81
- export function findProcedure<T extends CommandLike>(procedures: readonly T[], path: readonly string[]): T | undefined {
82
- return procedures.find((p) => p.path.length === path.length && p.path.every((seg, i) => seg === path[i]));
83
- }
84
-
85
- /**
86
- * Find procedures that are children of the given path
87
- */
88
- export function findChildren<T extends CommandLike>(procedures: readonly T[], path: readonly string[]): T[] {
89
- return procedures.filter((p) => p.path.length > path.length && path.every((seg, i) => seg === p.path[i]));
90
- }
91
-
92
- interface FlagSpec {
93
- field: string;
94
- type: FieldType;
95
- }
96
-
97
- interface ProcedureFlags {
98
- long: Map<string, FlagSpec>;
99
- short: Map<string, FlagSpec>;
100
- /** The field types by field name */
101
- fields: Map<string, FieldType>;
102
- /** True when the schema has readable fields: then an unknown flag is an error */
103
- typed: boolean;
104
- meta: CLIMeta;
105
- }
106
-
107
- /**
108
- * The flags a procedure declares: each field of its input schema (camelCase and kebab-case
109
- * names) and the short letters of its metadata.
110
- */
111
- export function procedureFlags(procedure: CommandLike | undefined): ProcedureFlags {
112
- const meta = (procedure?.metadata ?? {}) as CLIMeta;
113
- const schemaFields = procedure ? fieldsOf(procedure) : [];
114
- const fields = new Map(schemaFields.map((field) => [field.name, field.fieldType]));
115
- const long = new Map<string, FlagSpec>();
116
- const short = new Map<string, FlagSpec>();
117
-
118
- const addLong = (field: string): void => {
119
- const spec = { field, type: fields.get(field) ?? ANY };
120
- long.set(field, spec);
121
- long.set(toKebab(field), spec);
122
- };
123
- for (const field of fields.keys()) {
124
- addLong(field);
125
- }
126
- for (const [field, letter] of Object.entries(meta.shorts ?? {})) {
127
- if (!long.has(field)) {
128
- addLong(field);
129
- }
130
- short.set(letter, { field, type: fields.get(field) ?? ANY });
131
- }
132
-
133
- return { long, short, fields, typed: schemaFields.length > 0, meta };
134
- }
135
-
136
- /** The state of one pass over the tokens */
137
- class TokenReader {
138
- index = 0;
139
- constructor(readonly tokens: readonly string[]) {}
140
-
141
- get current(): string | undefined {
142
- return this.tokens[this.index];
143
- }
144
-
145
- /** The value of a flag: the inline value, or the next token when it is not a flag */
146
- takeValue(inline: string | undefined): string | undefined {
147
- if (inline !== undefined) {
148
- return inline;
149
- }
150
- const next = this.tokens[this.index + 1];
151
- if (next !== undefined && !isFlag(next)) {
152
- this.index++;
153
- return next;
154
- }
155
- return undefined;
156
- }
157
-
158
- /** The value of a boolean flag: the inline value, or a next token that is "true" or "false" */
159
- takeBoolean(inline: string | undefined): string | undefined {
160
- if (inline !== undefined) {
161
- return inline;
162
- }
163
- const next = this.tokens[this.index + 1];
164
- if (next === "true" || next === "false") {
165
- this.index++;
166
- return next;
167
- }
168
- return undefined;
169
- }
170
- }
171
-
172
- /** Split "--name=value" (or "-n=value") into the name and the inline value */
173
- function splitInline(body: string): { name: string; inline: string | undefined } {
174
- const eq = body.indexOf("=");
175
- return eq === -1 ? { name: body, inline: undefined } : { name: body.slice(0, eq), inline: body.slice(eq + 1) };
176
- }
177
-
178
- /** Read one global flag. Returns an error message, or undefined. */
179
- function readGlobal(
180
- flag: CliGlobalFlag,
181
- label: string,
182
- inline: string | undefined,
183
- reader: TokenReader,
184
- globals: Globals
185
- ): string | undefined {
186
- const name = flag.long as GlobalName;
187
- if (flag.takesValue) {
188
- const value = reader.takeValue(inline);
189
- if (value === undefined) {
190
- return `${label} needs a value`;
191
- }
192
- // A repeatable flag (--events) collects its values, separated by commas
193
- const previous = globals[name];
194
- globals[name] = flag.repeatable && typeof previous === "string" ? `${previous},${value}` : value;
195
- return undefined;
196
- }
197
- if (inline !== undefined && inline !== "true" && inline !== "false") {
198
- return `${label} needs true or false, not "${inline}"`;
199
- }
200
- globals[name] = inline !== "false";
201
- return undefined;
202
- }
45
+ /** The options of the parse of mark: its name and its global flags. A value `@<file>` stays text. */
46
+ const MARK = { name: "mark", globals: CLI_GLOBAL_FLAGS } as const;
203
47
 
204
48
  /**
205
49
  * Read the global flags before the command path. This needs no procedures: `mark` reads them
206
50
  * before it loads the procedures (`--version`, `--server`, `-i`).
207
51
  */
208
52
  export function parseLeadingGlobals(argv: readonly string[]): { globals: Globals; rest: string[]; errors: string[] } {
209
- const globals: Globals = {};
210
- const errors: string[] = [];
211
- const reader = new TokenReader(argv);
212
-
213
- for (; reader.index < argv.length; reader.index++) {
214
- const token = reader.current!;
215
- if (!isFlag(token) || token === "--") {
216
- break;
217
- }
218
- const isLong = token.startsWith("--");
219
- const { name, inline } = splitInline(token.slice(isLong ? 2 : 1));
220
- const flag = isLong || name.length === 1 ? findGlobalFlag(name, !isLong) : undefined;
221
- if (!flag) {
222
- errors.push(`Unknown option before the command: ${token}`);
223
- continue;
224
- }
225
- const error = readGlobal(flag, isLong ? `--${name}` : `-${name}`, inline, reader, globals);
226
- if (error) {
227
- errors.push(error);
228
- }
229
- }
230
-
231
- const rest = argv.slice(reader.index);
232
- if (rest[0] === "--") {
233
- rest.shift();
234
- }
235
- return { globals, rest, errors };
236
- }
237
-
238
- /**
239
- * The command path at the start of the tokens: the longest run of words that names a procedure
240
- * or a group of procedures. The first word is part of the path even when it names nothing (the
241
- * command is then unknown).
242
- *
243
- * A procedure can also be a group: `fs read` and `fs read json` are both procedures (roadmap
244
- * CLI-75). The words go on while a longer path can match, and the path is the longest one that
245
- * names a procedure. Thus `fs read json` names `fs.read.json`, and `fs read notes.txt` names
246
- * `fs.read` with the argument `notes.txt`.
247
- */
248
- function readPath(tokens: readonly string[], procedures: readonly CommandLike[]): string[] {
249
- const path: string[] = [];
250
- // The length of the longest path that names a procedure
251
- let named = 0;
252
- for (const token of tokens) {
253
- if (isFlag(token) || token === "--") {
254
- break;
255
- }
256
- const testPath = [...path, token];
257
- const procedure = findProcedure(procedures, testPath) !== undefined;
258
- const group = findChildren(procedures, testPath).length > 0;
259
- if (!procedure && !group && path.length > 0) {
260
- break;
261
- }
262
- path.push(token);
263
- if (procedure) named = path.length;
264
- if (!group) {
265
- break;
266
- }
267
- }
268
- return named > 0 ? path.slice(0, named) : path;
53
+ return kitParseLeadingGlobals(argv, MARK) as { globals: Globals; rest: string[]; errors: string[] };
269
54
  }
270
55
 
271
56
  /**
272
57
  * Split a whole command line: global flags, the command path, and the procedure input
273
58
  */
274
59
  export function parseCommandLine<T extends CommandLike>(argv: readonly string[], procedures: readonly T[]): ParsedCommandLine<T> {
275
- const leading = parseLeadingGlobals(argv);
276
- const globals = leading.globals;
277
- const errors = [...leading.errors];
278
- const path = readPath(leading.rest, procedures);
279
- const procedure = findProcedure(procedures, path);
280
- const flags = procedureFlags(procedure);
281
- const input: Record<string, unknown> = {};
282
- const fromFlag = new Set<string>();
283
- const positionals: string[] = [];
284
-
285
- const setField = (spec: FlagSpec, text: string, label: string): void => {
286
- const converted = convertValue(text, spec.type, label);
287
- if (!converted.ok) {
288
- errors.push(converted.error);
289
- return;
290
- }
291
- input[spec.field] = mergeValue(input[spec.field], converted.value, spec.type);
292
- fromFlag.add(spec.field);
293
- };
294
-
295
- /** Read one procedure flag. Returns false when the procedure does not declare it. */
296
- const readProcedureFlag = (
297
- spec: FlagSpec | undefined,
298
- label: string,
299
- inline: string | undefined,
300
- reader: TokenReader
301
- ): boolean => {
302
- if (!spec) {
303
- return false;
304
- }
305
- if (spec.type.kind === "boolean") {
306
- setField(spec, reader.takeBoolean(inline) ?? "true", label);
307
- return true;
308
- }
309
- const value = reader.takeValue(inline);
310
- if (value === undefined) {
311
- errors.push(`${label} needs a value`);
312
- return true;
313
- }
314
- setField(spec, value, label);
315
- return true;
316
- };
317
-
318
- /** A flag that neither the procedure nor the globals have */
319
- const readOther = (name: string, label: string, inline: string | undefined, reader: TokenReader): void => {
320
- if (procedure && !flags.typed) {
321
- // The schema has no readable fields: pass the flag through, as JSON or text
322
- const value = reader.takeValue(inline);
323
- setField({ field: toCamel(name), type: ANY }, value ?? "true", label);
324
- return;
325
- }
326
- const where = path.length > 0 ? ` for mark ${path.join(" ")}` : "";
327
- errors.push(`Unknown option${where}: ${label}`);
328
- };
329
-
330
- const reader = new TokenReader(leading.rest);
331
- reader.index = path.length;
332
- let onlyPositionals = false;
333
-
334
- for (; reader.index < leading.rest.length; reader.index++) {
335
- const token = reader.current!;
336
-
337
- if (onlyPositionals || !isFlag(token)) {
338
- positionals.push(token);
339
- continue;
340
- }
341
- if (token === "--") {
342
- onlyPositionals = true;
343
- continue;
344
- }
345
-
346
- if (token.startsWith("--")) {
347
- const { name, inline } = splitInline(token.slice(2));
348
- const label = `--${name}`;
349
- if (readProcedureFlag(flags.long.get(name), label, inline, reader)) {
350
- continue;
351
- }
352
- // --no-<flag> sets a boolean field to false
353
- const negated = name.startsWith("no-") ? flags.long.get(name.slice(3)) : undefined;
354
- if (negated?.type.kind === "boolean") {
355
- if (inline !== undefined) {
356
- errors.push(`${label} takes no value`);
357
- } else {
358
- setField(negated, "false", label);
359
- }
360
- continue;
361
- }
362
- const global = findGlobalFlag(name, false);
363
- if (global) {
364
- const error = readGlobal(global, label, inline, reader, globals);
365
- if (error) errors.push(error);
366
- continue;
367
- }
368
- readOther(name, label, inline, reader);
369
- continue;
370
- }
371
-
372
- // Short flags: "-x", "-x=value", "-xvalue" (a flag with a value), or "-abc" (boolean flags)
373
- const { name: body, inline } = splitInline(token.slice(1));
374
- for (let k = 0; k < body.length; k++) {
375
- const letter = body[k]!;
376
- const label = `-${letter}`;
377
- const last = k === body.length - 1;
378
- const attached = last ? inline : body.slice(k + 1);
379
- const spec = flags.short.get(letter);
380
- const global = spec ? undefined : findGlobalFlag(letter, true);
381
- const takesValue = spec ? spec.type.kind !== "boolean" : global?.takesValue === true;
382
-
383
- if (!spec && !global) {
384
- if (body.length === 1) {
385
- readOther(letter, label, inline, reader);
386
- } else {
387
- errors.push(`Unknown option ${label} in ${token}`);
388
- }
389
- break;
390
- }
391
- if (takesValue || last) {
392
- // The rest of the token (or the next token) is the value of this flag
393
- if (spec) {
394
- readProcedureFlag(spec, label, attached === "" ? undefined : attached, reader);
395
- } else {
396
- const error = readGlobal(global!, label, attached === "" ? undefined : attached, reader, globals);
397
- if (error) errors.push(error);
398
- }
399
- break;
400
- }
401
- if (spec) {
402
- setField(spec, "true", label);
403
- } else {
404
- globals[global!.long as GlobalName] = true;
405
- }
406
- }
407
- }
408
-
409
- // Positional fields take the arguments in order; a last array field takes the rest
410
- const positionalFields = flags.meta.args ?? [];
411
- let next = 0;
412
- if (procedure) {
413
- positionalFields.forEach((field, k) => {
414
- if (next >= positionals.length) {
415
- return;
416
- }
417
- const type = flags.fields.get(field) ?? ANY;
418
- const many = type.kind === "array" && k === positionalFields.length - 1;
419
- const texts = many ? positionals.slice(next) : [positionals[next]!];
420
- next += texts.length;
421
- if (fromFlag.has(field)) {
422
- errors.push(`${field} is given twice: as an argument and as --${toKebab(field)}`);
423
- return;
424
- }
425
- let value: unknown;
426
- // Each argument of a last array field is one item, also when there is only one. Before, one
427
- // argument was converted as the whole array, so `[]` gave no item and `["a","b"]` two.
428
- if (many) {
429
- const items: unknown[] = [];
430
- for (const text of texts) {
431
- const converted = convertValue(text, type.item ?? ANY, field);
432
- if (!converted.ok) {
433
- errors.push(converted.error);
434
- return;
435
- }
436
- items.push(converted.value);
437
- }
438
- value = items;
439
- } else {
440
- const converted = convertValue(texts[0]!, type, field);
441
- if (!converted.ok) {
442
- errors.push(converted.error);
443
- return;
444
- }
445
- value = converted.value;
446
- }
447
- input[field] = value;
448
- });
449
- }
450
- const extraArguments = positionals.slice(next);
451
- if (procedure && extraArguments.length > 0) {
452
- errors.push(
453
- `Unexpected argument${extraArguments.length > 1 ? "s" : ""} for mark ${path.join(" ")}: ${extraArguments.join(" ")}`
454
- );
455
- }
456
-
457
- return { path, procedure, input, globals, extraArguments, errors };
60
+ return kitParseCommandLine(argv, procedures, MARK) as ParsedCommandLine<T>;
458
61
  }