@procedures/mark 0.33.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/CHANGELOG.md +108 -0
- package/README.md +2 -0
- package/dist/.tsbuildinfo +1 -1
- package/dist/args.d.ts +5 -53
- package/dist/args.d.ts.map +1 -1
- package/dist/args.js +9 -341
- package/dist/args.js.map +1 -1
- package/dist/ask.d.ts +3 -38
- package/dist/ask.d.ts.map +1 -1
- package/dist/ask.js +3 -81
- package/dist/ask.js.map +1 -1
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +18 -64
- package/dist/cli.js.map +1 -1
- package/dist/client-mode.js +3 -3
- package/dist/client-mode.js.map +1 -1
- package/dist/failure.d.ts +3 -2
- package/dist/failure.d.ts.map +1 -1
- package/dist/failure.js +3 -33
- package/dist/failure.js.map +1 -1
- package/dist/format.d.ts +3 -25
- package/dist/format.d.ts.map +1 -1
- package/dist/format.js +3 -120
- package/dist/format.js.map +1 -1
- package/dist/manifest.d.ts.map +1 -1
- package/dist/manifest.js +3 -9
- package/dist/manifest.js.map +1 -1
- package/dist/manifest.json +23 -21
- package/dist/parse.d.ts +4 -114
- package/dist/parse.d.ts.map +1 -1
- package/dist/parse.js +7 -445
- package/dist/parse.js.map +1 -1
- package/package.json +50 -50
- package/src/args.ts +14 -403
- package/src/ask.ts +14 -109
- package/src/cli.ts +16 -70
- package/src/client-mode.ts +3 -3
- package/src/failure.ts +3 -33
- package/src/format.ts +3 -172
- package/src/manifest.ts +3 -8
- package/src/parse.ts +33 -570
- package/dist/prompts.d.ts +0 -58
- package/dist/prompts.d.ts.map +0 -1
- package/dist/prompts.js +0 -124
- package/dist/prompts.js.map +0 -1
- package/src/prompts.ts +0 -181
package/dist/parse.js
CHANGED
|
@@ -1,295 +1,12 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Schema-based CLI Argument Parser
|
|
3
3
|
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
4
|
+
* The field types, the conversion of CLI text and the help text are in `@procedures/cli-kit`
|
|
5
|
+
* (roadmap O61). This module gives them to mark with the name `mark` and the global flags of mark.
|
|
6
6
|
*/
|
|
7
7
|
import { CLI_GLOBAL_FLAGS } from "@procedures/lib/cli-flags";
|
|
8
|
-
import {
|
|
9
|
-
|
|
10
|
-
function isNull(node) {
|
|
11
|
-
return node.type === "null" || (node.const === null && node.type === undefined);
|
|
12
|
-
}
|
|
13
|
-
/** The members of a union, without `null` (a nullable value is the type itself on the CLI). */
|
|
14
|
-
function unionMembers(node) {
|
|
15
|
-
const members = node.anyOf ?? node.oneOf;
|
|
16
|
-
return members?.filter((member) => !isNull(member));
|
|
17
|
-
}
|
|
18
|
-
/**
|
|
19
|
-
* The CLI type of a JSON Schema node.
|
|
20
|
-
*/
|
|
21
|
-
function fieldTypeOfJson(node) {
|
|
22
|
-
if (!node || typeof node !== "object") {
|
|
23
|
-
return { kind: "any" };
|
|
24
|
-
}
|
|
25
|
-
const members = unionMembers(node);
|
|
26
|
-
if (members) {
|
|
27
|
-
if (members.length === 1)
|
|
28
|
-
return fieldTypeOfJson(members[0]);
|
|
29
|
-
// A union of string constants is an enum on the CLI
|
|
30
|
-
if (members.length > 1 && members.every((member) => typeof member.const === "string")) {
|
|
31
|
-
return { kind: "enum", values: members.map((member) => member.const) };
|
|
32
|
-
}
|
|
33
|
-
return { kind: "union", options: members.map((member) => fieldTypeOfJson(member)) };
|
|
34
|
-
}
|
|
35
|
-
if (node.allOf?.length === 1) {
|
|
36
|
-
return fieldTypeOfJson(node.allOf[0]);
|
|
37
|
-
}
|
|
38
|
-
if (Array.isArray(node.enum)) {
|
|
39
|
-
return node.enum.every((value) => typeof value === "string")
|
|
40
|
-
? { kind: "enum", values: node.enum }
|
|
41
|
-
: { kind: "any" };
|
|
42
|
-
}
|
|
43
|
-
if ("const" in node && node.const !== undefined) {
|
|
44
|
-
return { kind: "literal", literal: node.const };
|
|
45
|
-
}
|
|
46
|
-
const types = Array.isArray(node.type) ? node.type.filter((type) => type !== "null") : node.type ? [node.type] : [];
|
|
47
|
-
if (types.length > 1) {
|
|
48
|
-
return { kind: "union", options: types.map((type) => fieldTypeOfJson({ ...node, type })) };
|
|
49
|
-
}
|
|
50
|
-
switch (types[0]) {
|
|
51
|
-
case "string":
|
|
52
|
-
return node.format === "date-time" || node.format === "date" ? { kind: "date" } : { kind: "string" };
|
|
53
|
-
case "number":
|
|
54
|
-
case "integer":
|
|
55
|
-
return { kind: "number" };
|
|
56
|
-
case "boolean":
|
|
57
|
-
return { kind: "boolean" };
|
|
58
|
-
case "array":
|
|
59
|
-
return { kind: "array", item: fieldTypeOfJson(Array.isArray(node.items) ? undefined : node.items) };
|
|
60
|
-
case "object": {
|
|
61
|
-
const extra = node.additionalProperties;
|
|
62
|
-
const hasFields = node.properties && Object.keys(node.properties).length > 0;
|
|
63
|
-
if (!hasFields && extra && typeof extra === "object") {
|
|
64
|
-
return { kind: "record", value: fieldTypeOfJson(extra) };
|
|
65
|
-
}
|
|
66
|
-
return { kind: "object" };
|
|
67
|
-
}
|
|
68
|
-
default:
|
|
69
|
-
return { kind: "any" };
|
|
70
|
-
}
|
|
71
|
-
}
|
|
72
|
-
/**
|
|
73
|
-
* The JSON Schema of a procedure schema (or a JSON Schema itself, as the manifest stores it).
|
|
74
|
-
*/
|
|
75
|
-
function asJsonSchema(schema) {
|
|
76
|
-
if (!schema || typeof schema !== "object") {
|
|
77
|
-
return undefined;
|
|
78
|
-
}
|
|
79
|
-
// A JSON Schema already (from the manifest): it has no validator
|
|
80
|
-
const props = schema;
|
|
81
|
-
if (!("~standard" in props) && typeof props["safeParse"] !== "function" && typeof props["parse"] !== "function") {
|
|
82
|
-
return schema;
|
|
83
|
-
}
|
|
84
|
-
return jsonSchemaOf(schema);
|
|
85
|
-
}
|
|
86
|
-
/**
|
|
87
|
-
* The CLI type of a schema: a procedure schema (a Standard Schema such as zod 4) or its JSON
|
|
88
|
-
* Schema. The type comes from the JSON Schema, so every schema library works. (Before, the
|
|
89
|
-
* parser read the private fields of zod 3.)
|
|
90
|
-
*/
|
|
91
|
-
export function fieldTypeOf(schema) {
|
|
92
|
-
return fieldTypeOfJson(asJsonSchema(schema));
|
|
93
|
-
}
|
|
94
|
-
/**
|
|
95
|
-
* The display name of a type, for the help text
|
|
96
|
-
*/
|
|
97
|
-
function typeName(type) {
|
|
98
|
-
switch (type.kind) {
|
|
99
|
-
case "array":
|
|
100
|
-
return `${typeName(type.item ?? { kind: "any" })}[]`;
|
|
101
|
-
case "record":
|
|
102
|
-
return "key=value";
|
|
103
|
-
case "object":
|
|
104
|
-
case "any":
|
|
105
|
-
return "json";
|
|
106
|
-
case "union":
|
|
107
|
-
return (type.options ?? []).map(typeName).join("|");
|
|
108
|
-
case "literal":
|
|
109
|
-
return JSON.stringify(type.literal);
|
|
110
|
-
default:
|
|
111
|
-
return type.kind;
|
|
112
|
-
}
|
|
113
|
-
}
|
|
114
|
-
/**
|
|
115
|
-
* Extract field information from a schema: a procedure schema or its JSON Schema. A schema that
|
|
116
|
-
* is not an object (or that has no JSON Schema) gives no fields: the CLI then passes its flags
|
|
117
|
-
* through.
|
|
118
|
-
*/
|
|
119
|
-
export function extractSchemaFields(schema) {
|
|
120
|
-
const json = asJsonSchema(schema);
|
|
121
|
-
const object = json && !json.properties ? unionMembers(json)?.find((member) => member.properties) : json;
|
|
122
|
-
if (!object?.properties) {
|
|
123
|
-
return [];
|
|
124
|
-
}
|
|
125
|
-
const required = new Set(object.required ?? []);
|
|
126
|
-
const fields = [];
|
|
127
|
-
for (const [name, field] of Object.entries(object.properties)) {
|
|
128
|
-
if (!field || typeof field !== "object") {
|
|
129
|
-
continue;
|
|
130
|
-
}
|
|
131
|
-
const fieldType = fieldTypeOfJson(field);
|
|
132
|
-
const description = field.description ?? unionMembers(field)?.find((member) => member.description)?.description;
|
|
133
|
-
fields.push({
|
|
134
|
-
name,
|
|
135
|
-
type: fieldType.kind === "enum" ? "enum" : typeName(fieldType),
|
|
136
|
-
fieldType,
|
|
137
|
-
required: required.has(name) && field.default === undefined,
|
|
138
|
-
description,
|
|
139
|
-
defaultValue: field.default,
|
|
140
|
-
enumValues: fieldType.kind === "enum" ? fieldType.values : undefined,
|
|
141
|
-
});
|
|
142
|
-
}
|
|
143
|
-
return fields;
|
|
144
|
-
}
|
|
145
|
-
// The digits before the point and the digits after it are two groups, so each text has one match
|
|
146
|
-
const NUMBER_TEXT = /^[-+]?(?:\d+(?:\.\d*)?|\.\d+)(?:[eE][-+]?\d+)?$|^0[xX][0-9a-fA-F]+$/;
|
|
147
|
-
const SAFE_INTEGER_LIMIT = BigInt(Number.MAX_SAFE_INTEGER);
|
|
148
|
-
/**
|
|
149
|
-
* Text as a JSON value, when it is JSON. A whole number that a JavaScript number cannot hold
|
|
150
|
-
* exactly stays text. Anything that is not JSON stays text.
|
|
151
|
-
*/
|
|
152
|
-
function jsonOrText(text) {
|
|
153
|
-
const trimmed = text.trim();
|
|
154
|
-
if (/^-?\d+$/.test(trimmed)) {
|
|
155
|
-
const big = BigInt(trimmed);
|
|
156
|
-
if (big > SAFE_INTEGER_LIMIT || big < -SAFE_INTEGER_LIMIT) {
|
|
157
|
-
return text;
|
|
158
|
-
}
|
|
159
|
-
}
|
|
160
|
-
try {
|
|
161
|
-
return JSON.parse(trimmed);
|
|
162
|
-
}
|
|
163
|
-
catch {
|
|
164
|
-
return text;
|
|
165
|
-
}
|
|
166
|
-
}
|
|
167
|
-
/**
|
|
168
|
-
* Convert the CLI text of one value to a field type
|
|
169
|
-
*/
|
|
170
|
-
export function convertValue(text, type, label) {
|
|
171
|
-
switch (type.kind) {
|
|
172
|
-
case "string":
|
|
173
|
-
case "date":
|
|
174
|
-
return { ok: true, value: text };
|
|
175
|
-
case "enum":
|
|
176
|
-
return { ok: true, value: text };
|
|
177
|
-
case "number": {
|
|
178
|
-
if (!NUMBER_TEXT.test(text.trim())) {
|
|
179
|
-
return { ok: false, error: `${label} needs a number, not "${text}"` };
|
|
180
|
-
}
|
|
181
|
-
return { ok: true, value: Number(text) };
|
|
182
|
-
}
|
|
183
|
-
case "bigint":
|
|
184
|
-
try {
|
|
185
|
-
return { ok: true, value: BigInt(text) };
|
|
186
|
-
}
|
|
187
|
-
catch {
|
|
188
|
-
return { ok: false, error: `${label} needs a whole number, not "${text}"` };
|
|
189
|
-
}
|
|
190
|
-
case "boolean":
|
|
191
|
-
if (text === "true")
|
|
192
|
-
return { ok: true, value: true };
|
|
193
|
-
if (text === "false")
|
|
194
|
-
return { ok: true, value: false };
|
|
195
|
-
return { ok: false, error: `${label} needs true or false, not "${text}"` };
|
|
196
|
-
case "literal": {
|
|
197
|
-
const literal = type.literal;
|
|
198
|
-
if (typeof literal === "number")
|
|
199
|
-
return convertValue(text, { kind: "number" }, label);
|
|
200
|
-
if (typeof literal === "boolean")
|
|
201
|
-
return convertValue(text, { kind: "boolean" }, label);
|
|
202
|
-
return { ok: true, value: text };
|
|
203
|
-
}
|
|
204
|
-
case "array": {
|
|
205
|
-
const item = type.item ?? { kind: "any" };
|
|
206
|
-
if (text.trimStart().startsWith("[")) {
|
|
207
|
-
const parsed = jsonOrText(text);
|
|
208
|
-
if (Array.isArray(parsed)) {
|
|
209
|
-
return { ok: true, value: parsed };
|
|
210
|
-
}
|
|
211
|
-
}
|
|
212
|
-
const converted = convertValue(text, item, label);
|
|
213
|
-
return converted.ok ? { ok: true, value: [converted.value] } : converted;
|
|
214
|
-
}
|
|
215
|
-
case "record": {
|
|
216
|
-
if (text.trimStart().startsWith("{")) {
|
|
217
|
-
const parsed = jsonOrText(text);
|
|
218
|
-
if (parsed && typeof parsed === "object" && !Array.isArray(parsed)) {
|
|
219
|
-
return { ok: true, value: parsed };
|
|
220
|
-
}
|
|
221
|
-
return { ok: false, error: `${label} needs key=value or a JSON object` };
|
|
222
|
-
}
|
|
223
|
-
const eq = text.indexOf("=");
|
|
224
|
-
if (eq <= 0) {
|
|
225
|
-
return { ok: false, error: `${label} needs key=value, not "${text}"` };
|
|
226
|
-
}
|
|
227
|
-
const converted = convertValue(text.slice(eq + 1), type.value ?? { kind: "any" }, label);
|
|
228
|
-
return converted.ok ? { ok: true, value: { [text.slice(0, eq)]: converted.value } } : converted;
|
|
229
|
-
}
|
|
230
|
-
case "object": {
|
|
231
|
-
const parsed = jsonOrText(text);
|
|
232
|
-
if (parsed && typeof parsed === "object" && !Array.isArray(parsed)) {
|
|
233
|
-
return { ok: true, value: parsed };
|
|
234
|
-
}
|
|
235
|
-
return { ok: false, error: `${label} needs a JSON object, not "${text}"` };
|
|
236
|
-
}
|
|
237
|
-
case "union": {
|
|
238
|
-
const options = type.options ?? [];
|
|
239
|
-
// Zod tries the members in order: a member that takes text takes the text as it is
|
|
240
|
-
for (const option of options) {
|
|
241
|
-
if (option.kind === "string" || option.kind === "date")
|
|
242
|
-
return { ok: true, value: text };
|
|
243
|
-
if (option.kind === "enum" && option.values?.includes(text))
|
|
244
|
-
return { ok: true, value: text };
|
|
245
|
-
if (option.kind === "literal" && String(option.literal) === text) {
|
|
246
|
-
return { ok: true, value: option.literal };
|
|
247
|
-
}
|
|
248
|
-
}
|
|
249
|
-
for (const option of options) {
|
|
250
|
-
if (option.kind === "enum" || option.kind === "literal")
|
|
251
|
-
continue;
|
|
252
|
-
const converted = convertValue(text, option, label);
|
|
253
|
-
if (converted.ok)
|
|
254
|
-
return converted;
|
|
255
|
-
}
|
|
256
|
-
return { ok: true, value: jsonOrText(text) };
|
|
257
|
-
}
|
|
258
|
-
case "any":
|
|
259
|
-
default:
|
|
260
|
-
return { ok: true, value: jsonOrText(text) };
|
|
261
|
-
}
|
|
262
|
-
}
|
|
263
|
-
/**
|
|
264
|
-
* Add a converted value to a field that already has one. Arrays collect and records merge,
|
|
265
|
-
* so a repeated flag adds to the field. Other fields take the last value.
|
|
266
|
-
*/
|
|
267
|
-
export function mergeValue(previous, next, type) {
|
|
268
|
-
if (previous === undefined) {
|
|
269
|
-
return next;
|
|
270
|
-
}
|
|
271
|
-
if (type.kind === "array" && Array.isArray(previous) && Array.isArray(next)) {
|
|
272
|
-
return [...previous, ...next];
|
|
273
|
-
}
|
|
274
|
-
if (type.kind === "record" &&
|
|
275
|
-
previous && typeof previous === "object" && !Array.isArray(previous) &&
|
|
276
|
-
next && typeof next === "object" && !Array.isArray(next)) {
|
|
277
|
-
return { ...previous, ...next };
|
|
278
|
-
}
|
|
279
|
-
return next;
|
|
280
|
-
}
|
|
281
|
-
/**
|
|
282
|
-
* Convert camelCase to kebab-case
|
|
283
|
-
*/
|
|
284
|
-
export function toKebab(str) {
|
|
285
|
-
return str.replace(/([a-z0-9])([A-Z])/g, "$1-$2").toLowerCase();
|
|
286
|
-
}
|
|
287
|
-
/**
|
|
288
|
-
* Convert kebab-case to camelCase
|
|
289
|
-
*/
|
|
290
|
-
export function toCamel(str) {
|
|
291
|
-
return str.replace(/-([a-zA-Z0-9])/g, (_, c) => c.toUpperCase());
|
|
292
|
-
}
|
|
8
|
+
import { convertValue, extractSchemaFields, generateHelp as kitGenerateHelp, toCamel, toKebab, } from "@procedures/cli-kit";
|
|
9
|
+
export { convertValue, extractSchemaFields, fieldTypeOf, fieldsOf, mergeValue, resultFieldsOf, resultFieldsOfSchema, toCamel, toKebab, } from "@procedures/cli-kit";
|
|
293
10
|
/**
|
|
294
11
|
* Convert one parameter by the type of its field. A value that is not text (true for a flag
|
|
295
12
|
* with no value) is not changed.
|
|
@@ -342,169 +59,14 @@ export function parseFromSchema(params, meta, schema) {
|
|
|
342
59
|
// =============================================================================
|
|
343
60
|
// Help
|
|
344
61
|
// =============================================================================
|
|
345
|
-
/**
|
|
346
|
-
|
|
347
|
-
*/
|
|
348
|
-
function valueHint(field) {
|
|
349
|
-
const type = field.fieldType;
|
|
350
|
-
switch (type.kind) {
|
|
351
|
-
case "boolean":
|
|
352
|
-
return "";
|
|
353
|
-
case "array":
|
|
354
|
-
return ` <${typeName(type.item ?? { kind: "any" })}>... (repeat the flag, or give a JSON array)`;
|
|
355
|
-
case "record":
|
|
356
|
-
return " <key=value>... (repeat the flag, or give a JSON object)";
|
|
357
|
-
case "object":
|
|
358
|
-
case "any":
|
|
359
|
-
return " <json>";
|
|
360
|
-
case "enum":
|
|
361
|
-
return ` <${(field.enumValues ?? []).join("|")}>`;
|
|
362
|
-
default:
|
|
363
|
-
return ` <${typeName(type)}>`;
|
|
364
|
-
}
|
|
365
|
-
}
|
|
366
|
-
/** The fields of the input of a command: from the manifest, or read from the schema */
|
|
367
|
-
export function fieldsOf(command) {
|
|
368
|
-
return command.fields ? [...command.fields] : extractSchemaFields(command.input);
|
|
369
|
-
}
|
|
370
|
-
/**
|
|
371
|
-
* The fields of the result of a procedure, from its output schema: only for a result that is an
|
|
372
|
-
* object (a union, a stream item or a pass-through schema gives none).
|
|
373
|
-
*/
|
|
374
|
-
export function resultFieldsOfSchema(output) {
|
|
375
|
-
const json = output ? jsonSchemaOf(output, { io: "output" }) : undefined;
|
|
376
|
-
if (!json)
|
|
377
|
-
return [];
|
|
378
|
-
if (json.type === "object")
|
|
379
|
-
return extractSchemaFields(json);
|
|
380
|
-
// A number, a string, a boolean or an array: the help shows the one value (`mark client add`)
|
|
381
|
-
if (typeof json.type === "string" && ["number", "integer", "string", "boolean", "array"].includes(json.type)) {
|
|
382
|
-
const fieldType = fieldTypeOfJson(json);
|
|
383
|
-
return [
|
|
384
|
-
{
|
|
385
|
-
name: "value",
|
|
386
|
-
type: typeName(fieldType),
|
|
387
|
-
fieldType,
|
|
388
|
-
required: true,
|
|
389
|
-
description: json.description,
|
|
390
|
-
defaultValue: undefined,
|
|
391
|
-
enumValues: undefined,
|
|
392
|
-
},
|
|
393
|
-
];
|
|
394
|
-
}
|
|
395
|
-
return [];
|
|
396
|
-
}
|
|
397
|
-
/** The fields of the result of a command: from the manifest, or read from the output schema */
|
|
398
|
-
export function resultFieldsOf(command) {
|
|
399
|
-
return command.resultFields ? [...command.resultFields] : resultFieldsOfSchema(command.output);
|
|
400
|
-
}
|
|
62
|
+
/** The global flags that the help of a command lists: not the modes, the options of --server or --version. */
|
|
63
|
+
const HELP_GLOBALS = CLI_GLOBAL_FLAGS.filter((flag) => !flag.mode && !flag.serverOption && flag.long !== "version");
|
|
401
64
|
/**
|
|
402
65
|
* Generate help text for a procedure based on its metadata and schema. `schema` is the input
|
|
403
66
|
* schema, or the fields of the input (a command of the manifest). `result` gives the fields of
|
|
404
67
|
* the result, which the help lists after the options.
|
|
405
68
|
*/
|
|
406
69
|
export function generateHelp(path, meta, schema, result = []) {
|
|
407
|
-
|
|
408
|
-
const shorts = meta.shorts ?? {};
|
|
409
|
-
const lines = [];
|
|
410
|
-
// Extract schema fields for enhanced help
|
|
411
|
-
const schemaFields = Array.isArray(schema)
|
|
412
|
-
? schema
|
|
413
|
-
: schema
|
|
414
|
-
? extractSchemaFields(schema)
|
|
415
|
-
: [];
|
|
416
|
-
const schemaFieldMap = new Map(schemaFields.map((f) => [f.name, f]));
|
|
417
|
-
// Command signature: the last positional array takes the rest of the arguments
|
|
418
|
-
const cmdName = `mark ${path.join(" ")}`;
|
|
419
|
-
const posStr = positionalArgs
|
|
420
|
-
.map((a, i) => {
|
|
421
|
-
const many = i === positionalArgs.length - 1 && schemaFieldMap.get(a)?.fieldType.kind === "array";
|
|
422
|
-
return many ? `<${a}...>` : `<${a}>`;
|
|
423
|
-
})
|
|
424
|
-
.join(" ");
|
|
425
|
-
lines.push(`Usage: ${cmdName}${posStr ? " " + posStr : ""} [options]`);
|
|
426
|
-
lines.push("");
|
|
427
|
-
if (meta.description) {
|
|
428
|
-
lines.push(meta.description);
|
|
429
|
-
lines.push("");
|
|
430
|
-
}
|
|
431
|
-
// Positional args with schema info
|
|
432
|
-
if (positionalArgs.length > 0) {
|
|
433
|
-
lines.push("Arguments:");
|
|
434
|
-
for (const arg of positionalArgs) {
|
|
435
|
-
const fieldInfo = schemaFieldMap.get(arg);
|
|
436
|
-
const typeStr = fieldInfo ? ` (${fieldInfo.type})` : "";
|
|
437
|
-
const reqStr = fieldInfo?.required ? " [required]" : "";
|
|
438
|
-
const descStr = fieldInfo?.description ? ` ${fieldInfo.description}` : "";
|
|
439
|
-
lines.push(` ${arg}${typeStr}${reqStr}`);
|
|
440
|
-
if (descStr) {
|
|
441
|
-
lines.push(` ${descStr}`);
|
|
442
|
-
}
|
|
443
|
-
}
|
|
444
|
-
lines.push("");
|
|
445
|
-
}
|
|
446
|
-
// Options: each schema field that is not positional, with its short flag if it has one
|
|
447
|
-
const optionLines = [];
|
|
448
|
-
const positionalSet = new Set(positionalArgs);
|
|
449
|
-
const listed = new Set();
|
|
450
|
-
const optionFields = [
|
|
451
|
-
...Object.keys(shorts).map((name) => schemaFieldMap.get(name) ?? fieldWithoutSchema(name)),
|
|
452
|
-
...schemaFields.filter((field) => !(field.name in shorts) && !positionalSet.has(field.name)),
|
|
453
|
-
];
|
|
454
|
-
for (const field of optionFields) {
|
|
455
|
-
if (listed.has(field.name)) {
|
|
456
|
-
continue;
|
|
457
|
-
}
|
|
458
|
-
listed.add(field.name);
|
|
459
|
-
const short = shorts[field.name];
|
|
460
|
-
const kebab = toKebab(field.name);
|
|
461
|
-
const flag = short ? ` -${short}, --${kebab}` : ` --${kebab}`;
|
|
462
|
-
const negation = field.fieldType.kind === "boolean" ? ` (or --no-${kebab})` : "";
|
|
463
|
-
const reqStr = field.required ? " [required]" : "";
|
|
464
|
-
const defaultStr = field.defaultValue !== undefined ? ` (default: ${JSON.stringify(field.defaultValue)})` : "";
|
|
465
|
-
optionLines.push(`${flag}${valueHint(field)}${negation}${reqStr}${defaultStr}`);
|
|
466
|
-
if (field.description) {
|
|
467
|
-
optionLines.push(` ${field.description}`);
|
|
468
|
-
}
|
|
469
|
-
}
|
|
470
|
-
if (optionLines.length > 0) {
|
|
471
|
-
lines.push("Options:");
|
|
472
|
-
lines.push(...optionLines);
|
|
473
|
-
}
|
|
474
|
-
// The fields of the result (roadmap 2.1: the output schemas describe them)
|
|
475
|
-
if (result.length > 0) {
|
|
476
|
-
lines.push("");
|
|
477
|
-
lines.push("Result:");
|
|
478
|
-
for (const field of result) {
|
|
479
|
-
const optional = field.required ? "" : ", optional";
|
|
480
|
-
lines.push(` ${field.name} (${field.type}${optional})`);
|
|
481
|
-
if (field.description) {
|
|
482
|
-
lines.push(` ${field.description}`);
|
|
483
|
-
}
|
|
484
|
-
}
|
|
485
|
-
}
|
|
486
|
-
// Standard options
|
|
487
|
-
lines.push("");
|
|
488
|
-
lines.push("Global Options (before the command, or after it when the command has no flag of that name):");
|
|
489
|
-
for (const flag of CLI_GLOBAL_FLAGS) {
|
|
490
|
-
if (flag.mode || flag.serverOption || flag.long === "version") {
|
|
491
|
-
continue;
|
|
492
|
-
}
|
|
493
|
-
const name = flag.short ? `-${flag.short}, --${flag.long}` : ` --${flag.long}`;
|
|
494
|
-
lines.push(` ${name.padEnd(18)} ${flag.description}`);
|
|
495
|
-
}
|
|
496
|
-
return lines.join("\n");
|
|
497
|
-
}
|
|
498
|
-
/** A field that only the metadata names (the schema has no readable shape) */
|
|
499
|
-
function fieldWithoutSchema(name) {
|
|
500
|
-
return {
|
|
501
|
-
name,
|
|
502
|
-
type: "json",
|
|
503
|
-
fieldType: { kind: "any" },
|
|
504
|
-
required: false,
|
|
505
|
-
description: undefined,
|
|
506
|
-
defaultValue: undefined,
|
|
507
|
-
enumValues: undefined,
|
|
508
|
-
};
|
|
70
|
+
return kitGenerateHelp(path, meta, schema, result, { name: "mark", globals: HELP_GLOBALS });
|
|
509
71
|
}
|
|
510
72
|
//# sourceMappingURL=parse.js.map
|
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.
|
|
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,18 +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-
|
|
57
|
-
"@procedures/
|
|
58
|
-
"@procedures/
|
|
59
|
-
"@procedures/
|
|
60
|
-
"@procedures/
|
|
61
|
-
"@procedures/
|
|
62
|
-
"@procedures/
|
|
63
|
-
"@procedures/
|
|
64
|
-
"@procedures/
|
|
65
|
-
"@procedures/
|
|
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",
|
|
66
67
|
"chalk": "^5.3.0",
|
|
67
68
|
"cli-table3": "^0.6.5",
|
|
68
69
|
"ora": "^8.0.0",
|
|
@@ -71,44 +72,43 @@
|
|
|
71
72
|
},
|
|
72
73
|
"devDependencies": {
|
|
73
74
|
"@mark1russell7/cue": "^1.0.0",
|
|
74
|
-
"@procedures/archive": "0.
|
|
75
|
-
"@procedures/bundle-assistant": "0.
|
|
76
|
-
"@procedures/bundle-dev": "0.
|
|
77
|
-
"@procedures/bundle-mcp": "0.
|
|
78
|
-
"@procedures/claude-cli": "0.
|
|
79
|
-
"@procedures/compiler": "0.
|
|
80
|
-
"@procedures/cue": "0.
|
|
81
|
-
"@procedures/dag": "0.
|
|
82
|
-
"@procedures/docker": "0.
|
|
83
|
-
"@procedures/env": "0.
|
|
84
|
-
"@procedures/exif": "0.
|
|
85
|
-
"@procedures/
|
|
86
|
-
"@procedures/
|
|
87
|
-
"@procedures/
|
|
88
|
-
"@procedures/
|
|
89
|
-
"@procedures/
|
|
90
|
-
"@procedures/
|
|
91
|
-
"@procedures/
|
|
92
|
-
"@procedures/
|
|
93
|
-
"@procedures/
|
|
94
|
-
"@procedures/
|
|
95
|
-
"@procedures/
|
|
96
|
-
"@procedures/
|
|
97
|
-
"@procedures/
|
|
98
|
-
"@procedures/
|
|
99
|
-
"@procedures/
|
|
100
|
-
"@procedures/
|
|
101
|
-
"@procedures/
|
|
102
|
-
"@procedures/
|
|
103
|
-
"@procedures/
|
|
104
|
-
"@procedures/
|
|
105
|
-
"@procedures/
|
|
106
|
-
"@procedures/
|
|
107
|
-
"@procedures/
|
|
108
|
-
"@procedures/
|
|
109
|
-
"@procedures/
|
|
110
|
-
"@procedures/
|
|
111
|
-
"@procedures/weather": "0.33.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",
|