@navbook/cli 0.4.0 → 0.5.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/args.d.ts +28 -0
- package/dist/args.js +48 -0
- package/dist/args.js.map +1 -0
- package/dist/commands/complete.d.ts +10 -0
- package/dist/commands/complete.js +59 -51
- package/dist/commands/complete.js.map +1 -1
- package/dist/commands/compose.d.ts +35 -0
- package/dist/commands/doctor.d.ts +15 -0
- package/dist/commands/entity.d.ts +73 -0
- package/dist/commands/entity.js +59 -44
- package/dist/commands/entity.js.map +1 -1
- package/dist/commands/init.d.ts +11 -0
- package/dist/commands/install.d.ts +17 -0
- package/dist/commands/install.js +6 -3
- package/dist/commands/install.js.map +1 -1
- package/dist/commands/issue.d.ts +35 -0
- package/dist/commands/issue.js +4 -5
- package/dist/commands/issue.js.map +1 -1
- package/dist/commands/plugin.d.ts +36 -0
- package/dist/commands/plugin.js +386 -0
- package/dist/commands/plugin.js.map +1 -0
- package/dist/commands/policy.d.ts +58 -0
- package/dist/commands/policy.js +13 -0
- package/dist/commands/policy.js.map +1 -1
- package/dist/commands/pr-elsewhere.d.ts +40 -0
- package/dist/commands/pr-elsewhere.js +209 -0
- package/dist/commands/pr-elsewhere.js.map +1 -0
- package/dist/commands/pr.d.ts +69 -0
- package/dist/commands/pr.js +86 -60
- package/dist/commands/pr.js.map +1 -1
- package/dist/context.d.ts +42 -0
- package/dist/context.js +2 -0
- package/dist/context.js.map +1 -1
- package/dist/editor.d.ts +23 -0
- package/dist/editor.js +4 -0
- package/dist/editor.js.map +1 -1
- package/dist/errors.d.ts +17 -0
- package/dist/install/completions.d.ts +19 -0
- package/dist/install/hook.d.ts +32 -0
- package/dist/install/hook.js +48 -4
- package/dist/install/hook.js.map +1 -1
- package/dist/main.d.ts +21 -0
- package/dist/main.js +112 -8
- package/dist/main.js.map +1 -1
- package/dist/plugins/commands.d.ts +69 -0
- package/dist/plugins/commands.js +148 -0
- package/dist/plugins/commands.js.map +1 -0
- package/dist/plugins/hint.d.ts +23 -0
- package/dist/plugins/hint.js +65 -0
- package/dist/plugins/hint.js.map +1 -0
- package/dist/plugins/host.d.ts +125 -0
- package/dist/plugins/host.js +18 -0
- package/dist/plugins/host.js.map +1 -0
- package/dist/plugins/loader.d.ts +54 -0
- package/dist/plugins/loader.js +165 -0
- package/dist/plugins/loader.js.map +1 -0
- package/dist/plugins/resolve.d.ts +50 -0
- package/dist/plugins/resolve.js +134 -0
- package/dist/plugins/resolve.js.map +1 -0
- package/dist/plugins/runtime.d.ts +69 -0
- package/dist/plugins/runtime.js +256 -0
- package/dist/plugins/runtime.js.map +1 -0
- package/dist/plugins/store.d.ts +96 -0
- package/dist/plugins/store.js +186 -0
- package/dist/plugins/store.js.map +1 -0
- package/dist/program.d.ts +49 -0
- package/dist/program.js +351 -113
- package/dist/program.js.map +1 -1
- package/dist/prompt.d.ts +31 -0
- package/dist/render/colors.d.ts +13 -0
- package/dist/render/detail.d.ts +22 -0
- package/dist/render/table.d.ts +32 -0
- package/dist/render/table.js +123 -13
- package/dist/render/table.js.map +1 -1
- package/dist/sort.d.ts +27 -0
- package/package.json +9 -2
- package/dist/commands/feature.js +0 -202
- package/dist/commands/feature.js.map +0 -1
package/dist/args.d.ts
ADDED
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Numeric option values, refused where they are read.
|
|
3
|
+
*
|
|
4
|
+
* Commander catches an `InvalidArgumentError` thrown by a parser and reports
|
|
5
|
+
* it as a usage error, so a bad value never reaches a command. That keeps a
|
|
6
|
+
* flag's validation beside its declaration rather than in whichever command
|
|
7
|
+
* happens to read it — which is how `nav feature show --commits 2.5` came to
|
|
8
|
+
* report an empty history instead of a mistake (#kw143sq9).
|
|
9
|
+
*
|
|
10
|
+
* Both read plain decimal notation only. `Number` alone would also take
|
|
11
|
+
* `0x10`, `0b11` and `1e3`, none of which anybody means by a count of levels
|
|
12
|
+
* or a place in a queue, and `Number("")` is 0.
|
|
13
|
+
*
|
|
14
|
+
* Commander prints the message after its own "option '--x <n>' argument 'v'
|
|
15
|
+
* is invalid.", so each one is a sentence of its own and names the unit.
|
|
16
|
+
*/
|
|
17
|
+
/**
|
|
18
|
+
* A count: a whole number no smaller than `min`.
|
|
19
|
+
*
|
|
20
|
+
* `unit` is null for a plugin's option, whose manifest says it is a count but
|
|
21
|
+
* not of what.
|
|
22
|
+
*/
|
|
23
|
+
export declare function wholeNumber(unit: string | null, min?: number): (value: string) => number;
|
|
24
|
+
/**
|
|
25
|
+
* A position rather than a count: any finite decimal, negatives and zero
|
|
26
|
+
* included (spec 02 §2.5), so it must not be folded into `wholeNumber`.
|
|
27
|
+
*/
|
|
28
|
+
export declare function finiteNumber(value: string): number;
|
package/dist/args.js
ADDED
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Numeric option values, refused where they are read.
|
|
3
|
+
*
|
|
4
|
+
* Commander catches an `InvalidArgumentError` thrown by a parser and reports
|
|
5
|
+
* it as a usage error, so a bad value never reaches a command. That keeps a
|
|
6
|
+
* flag's validation beside its declaration rather than in whichever command
|
|
7
|
+
* happens to read it — which is how `nav feature show --commits 2.5` came to
|
|
8
|
+
* report an empty history instead of a mistake (#kw143sq9).
|
|
9
|
+
*
|
|
10
|
+
* Both read plain decimal notation only. `Number` alone would also take
|
|
11
|
+
* `0x10`, `0b11` and `1e3`, none of which anybody means by a count of levels
|
|
12
|
+
* or a place in a queue, and `Number("")` is 0.
|
|
13
|
+
*
|
|
14
|
+
* Commander prints the message after its own "option '--x <n>' argument 'v'
|
|
15
|
+
* is invalid.", so each one is a sentence of its own and names the unit.
|
|
16
|
+
*/
|
|
17
|
+
import { InvalidArgumentError } from "commander";
|
|
18
|
+
const DIGITS = /^\s*\d+\s*$/;
|
|
19
|
+
const DECIMAL = /^\s*[-+]?(\d+(\.\d*)?|\.\d+)\s*$/;
|
|
20
|
+
/**
|
|
21
|
+
* A count: a whole number no smaller than `min`.
|
|
22
|
+
*
|
|
23
|
+
* `unit` is null for a plugin's option, whose manifest says it is a count but
|
|
24
|
+
* not of what.
|
|
25
|
+
*/
|
|
26
|
+
export function wholeNumber(unit, min = 0) {
|
|
27
|
+
return (value) => {
|
|
28
|
+
const parsed = Number(value);
|
|
29
|
+
if (!DIGITS.test(value) || !Number.isSafeInteger(parsed) || parsed < min) {
|
|
30
|
+
const floor = min > 0 ? `, at least ${min}` : "";
|
|
31
|
+
const of = unit === null ? "" : ` of ${unit}`;
|
|
32
|
+
throw new InvalidArgumentError(`Expected a whole number${of}${floor}.`);
|
|
33
|
+
}
|
|
34
|
+
return parsed;
|
|
35
|
+
};
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* A position rather than a count: any finite decimal, negatives and zero
|
|
39
|
+
* included (spec 02 §2.5), so it must not be folded into `wholeNumber`.
|
|
40
|
+
*/
|
|
41
|
+
export function finiteNumber(value) {
|
|
42
|
+
const parsed = Number(value);
|
|
43
|
+
if (!DECIMAL.test(value) || !Number.isFinite(parsed)) {
|
|
44
|
+
throw new InvalidArgumentError("Expected a number.");
|
|
45
|
+
}
|
|
46
|
+
return parsed;
|
|
47
|
+
}
|
|
48
|
+
//# sourceMappingURL=args.js.map
|
package/dist/args.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"args.js","sourceRoot":"","sources":["../src/args.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,EAAE,oBAAoB,EAAE,MAAM,WAAW,CAAC;AAEjD,MAAM,MAAM,GAAG,aAAa,CAAC;AAC7B,MAAM,OAAO,GAAG,kCAAkC,CAAC;AAEnD;;;;;GAKG;AACH,MAAM,UAAU,WAAW,CAAC,IAAmB,EAAE,GAAG,GAAG,CAAC;IACtD,OAAO,CAAC,KAAK,EAAE,EAAE;QACf,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;QAC7B,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,MAAM,GAAG,GAAG,EAAE,CAAC;YACzE,MAAM,KAAK,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,cAAc,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACjD,MAAM,EAAE,GAAG,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,IAAI,EAAE,CAAC;YAC9C,MAAM,IAAI,oBAAoB,CAAC,0BAA0B,EAAE,GAAG,KAAK,GAAG,CAAC,CAAC;QAC1E,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,YAAY,CAAC,KAAa;IACxC,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;IAC7B,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;QACrD,MAAM,IAAI,oBAAoB,CAAC,oBAAoB,CAAC,CAAC;IACvD,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `nav __complete` — the completion backend the shell scripts call.
|
|
3
|
+
*
|
|
4
|
+
* Given the words typed so far (without the leading `nav`), it prints one
|
|
5
|
+
* candidate per line. Keeping the logic here rather than in three shell
|
|
6
|
+
* dialects is what makes ID and slug completion possible at all.
|
|
7
|
+
*/
|
|
8
|
+
import type { Ctx } from "../context.ts";
|
|
9
|
+
import type { PluginRuntime } from "../plugins/runtime.ts";
|
|
10
|
+
export declare function cmdComplete(ctx: Ctx, words: string[], plugins?: PluginRuntime): Promise<void>;
|
|
@@ -5,31 +5,35 @@
|
|
|
5
5
|
* candidate per line. Keeping the logic here rather than in three shell
|
|
6
6
|
* dialects is what makes ID and slug completion possible at all.
|
|
7
7
|
*/
|
|
8
|
-
import { allEntities, loadRepo } from "@navbook/core";
|
|
9
|
-
|
|
10
|
-
const
|
|
8
|
+
import { allEntities, loadRepo, queryTermsFor, } from "@navbook/core";
|
|
9
|
+
const ROOT_COMMANDS = ["issue", "pr", "plugin", "init", "id", "doctor", "install", "uninstall"];
|
|
10
|
+
const PLUGIN_VERBS = ["install", "remove", "update", "list"];
|
|
11
11
|
const SHARED_VERBS = ["open", "list", "show", "edit", "comment", "close", "reopen", "delete"];
|
|
12
12
|
const ISSUE_VERBS = [...SHARED_VERBS, "link", "unlink"];
|
|
13
13
|
const PR_VERBS = [...SHARED_VERBS, "update", "request", "review", "merge"];
|
|
14
|
-
|
|
15
|
-
const
|
|
16
|
-
const QUERY_KEYS = ["status:", "label:", "assignee:", "author:", "milestone:", "feature:"];
|
|
17
|
-
/** Terms only a pull request has (spec 04 §4.3), offered only where they work. */
|
|
18
|
-
const PR_QUERY_KEYS = ["reviewer:", "review:", "awaiting:"];
|
|
19
|
-
/** And the one only an issue has (spec 02 §2.5). */
|
|
20
|
-
const ISSUE_QUERY_KEYS = ["deadline:"];
|
|
21
|
-
export function cmdComplete(ctx, words) {
|
|
22
|
-
for (const candidate of completionsFor(ctx, words))
|
|
14
|
+
export async function cmdComplete(ctx, words, plugins) {
|
|
15
|
+
for (const candidate of await completionsFor(ctx, words, plugins)) {
|
|
23
16
|
ctx.stdout.write(`${candidate}\n`);
|
|
17
|
+
}
|
|
24
18
|
}
|
|
25
|
-
function completionsFor(ctx, words) {
|
|
19
|
+
async function completionsFor(ctx, words, plugins) {
|
|
20
|
+
// Plugin nouns and verbs come from manifests, so completion costs no import
|
|
21
|
+
// however many plugins are installed (spec 04 §4.3).
|
|
22
|
+
const pluginNouns = [...(plugins?.commands.nouns.keys() ?? [])];
|
|
23
|
+
const rootCommands = [...ROOT_COMMANDS, ...pluginNouns];
|
|
26
24
|
const [noun, verb] = words;
|
|
27
25
|
if (noun === undefined)
|
|
28
|
-
return
|
|
29
|
-
if (noun === "
|
|
30
|
-
return
|
|
26
|
+
return rootCommands;
|
|
27
|
+
if (noun === "plugin")
|
|
28
|
+
return verb === undefined ? PLUGIN_VERBS : [];
|
|
29
|
+
if (plugins?.commands.nouns.has(noun)) {
|
|
30
|
+
const owner = plugins.commands.nouns.get(noun);
|
|
31
|
+
return owner === undefined
|
|
32
|
+
? []
|
|
33
|
+
: pluginCompletions(ctx, plugins, owner.plugin, owner.spec, words.slice(1));
|
|
34
|
+
}
|
|
31
35
|
if (noun !== "issue" && noun !== "pr") {
|
|
32
|
-
return words.length === 1 ?
|
|
36
|
+
return words.length === 1 ? rootCommands : [];
|
|
33
37
|
}
|
|
34
38
|
const kind = noun === "issue" ? "issue" : "pr";
|
|
35
39
|
const verbs = kind === "issue" ? ISSUE_VERBS : PR_VERBS;
|
|
@@ -38,8 +42,16 @@ function completionsFor(ctx, words) {
|
|
|
38
42
|
if (!verbs.includes(verb))
|
|
39
43
|
return [];
|
|
40
44
|
if (verb === "list") {
|
|
41
|
-
|
|
42
|
-
|
|
45
|
+
// Only the terms this noun has (spec 04 §4.3), offered only where they
|
|
46
|
+
// work; a plugin's come from its manifest. A plugin's *values* cost an
|
|
47
|
+
// import, and only for a verb whose manifest declared `completions` — so
|
|
48
|
+
// completing `nav pr list` loads nothing when no plugin contributes there.
|
|
49
|
+
return [
|
|
50
|
+
...queryTermsFor(kind).map((term) => `${term.key}:`),
|
|
51
|
+
...(plugins?.queryKeys(kind) ?? []).map((key) => `${key.key}:`),
|
|
52
|
+
...(await pluginListValues(ctx, kind, plugins)),
|
|
53
|
+
...labels(ctx),
|
|
54
|
+
];
|
|
43
55
|
}
|
|
44
56
|
if (verb === "open")
|
|
45
57
|
return [];
|
|
@@ -47,45 +59,41 @@ function completionsFor(ctx, words) {
|
|
|
47
59
|
return words.length === 2 ? entityCandidates(ctx, kind) : [];
|
|
48
60
|
}
|
|
49
61
|
/**
|
|
50
|
-
*
|
|
62
|
+
* Verbs a plugin's noun offers, walked down whatever has been typed so far.
|
|
51
63
|
*
|
|
52
|
-
*
|
|
53
|
-
*
|
|
54
|
-
*
|
|
64
|
+
* Declarations only. A plugin's *values* — the slugs and ids its arguments
|
|
65
|
+
* take — need the plugin itself, and are offered through a completer it
|
|
66
|
+
* registers; those cost an import and are asked for only once the noun and
|
|
67
|
+
* the verb are on the line.
|
|
55
68
|
*/
|
|
56
|
-
function
|
|
57
|
-
const
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
return featureSlugs(ctx);
|
|
67
|
-
// `spec edit <slug> <file>` is the one place a document name is wanted.
|
|
68
|
-
if (third === "edit" && words.length === 4)
|
|
69
|
-
return specNames(ctx, words[3]);
|
|
70
|
-
return [];
|
|
69
|
+
async function pluginCompletions(ctx, plugins, plugin, spec, rest) {
|
|
70
|
+
const children = spec.commands ?? [];
|
|
71
|
+
const [next, ...deeper] = rest;
|
|
72
|
+
// Still walking down the verb tree: the names come from the manifest, so
|
|
73
|
+
// nothing is loaded to offer them.
|
|
74
|
+
if (children.length > 0) {
|
|
75
|
+
if (next === undefined)
|
|
76
|
+
return children.map((child) => child.name);
|
|
77
|
+
const child = children.find((candidate) => candidate.name === next);
|
|
78
|
+
return child === undefined ? [] : pluginCompletions(ctx, plugins, plugin, child, deeper);
|
|
71
79
|
}
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
80
|
+
// At a leaf. The argument being typed is the one at this position, and it
|
|
81
|
+
// offers values only if the manifest named a completer for it — which is
|
|
82
|
+
// what makes asking the plugin a declared cost rather than a surprise.
|
|
83
|
+
const argument = (spec.arguments ?? [])[rest.length];
|
|
84
|
+
if (argument?.complete === undefined)
|
|
75
85
|
return [];
|
|
76
|
-
return
|
|
86
|
+
return plugins.completions(ctx, plugin, argument.complete, [...rest]);
|
|
77
87
|
}
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
return feature ? feature.specs.map((spec) => spec.fileName) : [];
|
|
82
|
-
}
|
|
83
|
-
catch {
|
|
88
|
+
/** Values plugins offer for this listing's terms; loads their CLI entries. */
|
|
89
|
+
async function pluginListValues(ctx, kind, plugins) {
|
|
90
|
+
if (plugins === undefined)
|
|
84
91
|
return [];
|
|
92
|
+
const out = [];
|
|
93
|
+
for (const handlers of await plugins.handlersFor(ctx, `${kind} list`)) {
|
|
94
|
+
out.push(...(handlers.listCompletions?.() ?? []));
|
|
85
95
|
}
|
|
86
|
-
|
|
87
|
-
function features(ctx) {
|
|
88
|
-
return featureSlugs(ctx).map((slug) => `feature:${slug}`);
|
|
96
|
+
return out;
|
|
89
97
|
}
|
|
90
98
|
/**
|
|
91
99
|
* Bare IDs and full directory names, so a user can complete either the short
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"complete.js","sourceRoot":"","sources":["../../src/commands/complete.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,
|
|
1
|
+
{"version":3,"file":"complete.js","sourceRoot":"","sources":["../../src/commands/complete.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Producing the text of a new Navbook file, from `-m` or from `$EDITOR`.
|
|
3
|
+
*
|
|
4
|
+
* Both paths end in the same place: a complete file that has been parsed and
|
|
5
|
+
* validated before anything is written into `.navbook/`. The editor buffer is
|
|
6
|
+
* the whole file — frontmatter included — so an author can set the title,
|
|
7
|
+
* labels and body in one pass, and an abort leaves nothing behind.
|
|
8
|
+
*/
|
|
9
|
+
import { type ParsedFile, type Problem } from "@navbook/core";
|
|
10
|
+
import type { Ctx } from "../context.ts";
|
|
11
|
+
export interface ComposeOptions {
|
|
12
|
+
/** Text supplied with `-m`; when absent the editor is opened. */
|
|
13
|
+
message?: string;
|
|
14
|
+
/** Name of the scratch buffer inside the git directory. */
|
|
15
|
+
bufferName: string;
|
|
16
|
+
/** Render the complete file from a body. */
|
|
17
|
+
render: (body: string) => string;
|
|
18
|
+
/** Schema check applied to the finished file. */
|
|
19
|
+
validate: (parsed: ParsedFile) => Problem[];
|
|
20
|
+
/** Noun used in error messages, e.g. "issue" or "comment". */
|
|
21
|
+
noun: string;
|
|
22
|
+
/**
|
|
23
|
+
* Accept a file with no body.
|
|
24
|
+
*
|
|
25
|
+
* An issue with no description says nothing, but a feature is named by its
|
|
26
|
+
* title and described by the documents beside it, so an empty summary is a
|
|
27
|
+
* reasonable thing to commit (spec 02 §2.11).
|
|
28
|
+
*/
|
|
29
|
+
allowEmptyBody?: boolean;
|
|
30
|
+
}
|
|
31
|
+
export interface Composed {
|
|
32
|
+
content: string;
|
|
33
|
+
parsed: ParsedFile;
|
|
34
|
+
}
|
|
35
|
+
export declare function composeFile(ctx: Ctx, opts: ComposeOptions): Composed;
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `nav doctor` — spec 04 §4.3.
|
|
3
|
+
*
|
|
4
|
+
* Doctor enforces the specification, not a house style: hand edits that are
|
|
5
|
+
* unusual but valid must pass. Errors (exit 2) are format violations; warnings
|
|
6
|
+
* (exit 0) are things worth a look that may be perfectly deliberate. Deciding
|
|
7
|
+
* which is which is `core`'s job; deciding what an exit code is, is this file's.
|
|
8
|
+
*/
|
|
9
|
+
import type { Ctx } from "../context.ts";
|
|
10
|
+
export interface DoctorOptions {
|
|
11
|
+
staged?: boolean;
|
|
12
|
+
fix?: boolean;
|
|
13
|
+
json?: boolean;
|
|
14
|
+
}
|
|
15
|
+
export declare function cmdDoctor(ctx: Ctx, opts: DoctorOptions): void;
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The verbs issues and pull requests share — spec 04 §4.3.
|
|
3
|
+
*
|
|
4
|
+
* One implementation serves both nouns; the entity kind only selects which
|
|
5
|
+
* collection is searched, which file name is edited, and which words appear in
|
|
6
|
+
* the report. The work itself is in `ops/entity.ts` — what is left here is
|
|
7
|
+
* gathering what the user typed and phrasing what came back.
|
|
8
|
+
*/
|
|
9
|
+
import { type CloseInput, type EntityKind, type EntityRecord, type NewCommentInput, type Repo } from "@navbook/core";
|
|
10
|
+
import type { Ctx } from "../context.ts";
|
|
11
|
+
import { type PrWriteOptions } from "./pr-elsewhere.ts";
|
|
12
|
+
export interface GlobalFlags {
|
|
13
|
+
json?: boolean;
|
|
14
|
+
commit?: boolean;
|
|
15
|
+
}
|
|
16
|
+
export interface ExtraColumn {
|
|
17
|
+
header: string;
|
|
18
|
+
value: (entity: EntityRecord) => string;
|
|
19
|
+
/** Shown only when this holds of some entity listed; always, when absent. */
|
|
20
|
+
when?: (entities: readonly EntityRecord[]) => boolean;
|
|
21
|
+
/** Grown to fill the terminal, like `title`, rather than sized to content. */
|
|
22
|
+
flexible?: boolean;
|
|
23
|
+
}
|
|
24
|
+
export interface ListOptions extends GlobalFlags {
|
|
25
|
+
/** One of the orders of spec 02 §2.5; `newest` when nobody asks (§4.2). */
|
|
26
|
+
sort?: string;
|
|
27
|
+
/** Columns appended by PR-specific listings. */
|
|
28
|
+
extraColumns?: ExtraColumn[];
|
|
29
|
+
/** Pre-collected entities, used by `nav pr list --all-refs`. */
|
|
30
|
+
entities?: EntityRecord[];
|
|
31
|
+
/** Extra JSON keys per entity, keyed by entity identity. */
|
|
32
|
+
jsonExtra?: (entity: EntityRecord) => Record<string, unknown>;
|
|
33
|
+
}
|
|
34
|
+
export declare function cmdList(ctx: Ctx, kind: EntityKind, terms: string[], opts: ListOptions): void;
|
|
35
|
+
/** Render a listing whose entities have already been collected. */
|
|
36
|
+
export declare function reportList(ctx: Ctx, kind: EntityKind, matched: readonly EntityRecord[], opts: ListOptions): void;
|
|
37
|
+
export interface ShowOptions extends GlobalFlags {
|
|
38
|
+
/** Levels of subtasks to render; issue-only, one by default. */
|
|
39
|
+
depth?: number;
|
|
40
|
+
/** Extra JSON keys, merged into the `--json` object (spec 02 §2.12). */
|
|
41
|
+
jsonExtra?: (entity: EntityRecord) => Record<string, unknown>;
|
|
42
|
+
/** Sections plugins append after the built-in detail. */
|
|
43
|
+
sections?: ((entity: EntityRecord, repo: Repo) => string[])[];
|
|
44
|
+
}
|
|
45
|
+
export declare function cmdShow(ctx: Ctx, kind: EntityKind, prefix: string, opts: ShowOptions): void;
|
|
46
|
+
export interface EditOptions extends GlobalFlags, PrWriteOptions {
|
|
47
|
+
}
|
|
48
|
+
export declare function cmdEdit(ctx: Ctx, kind: EntityKind, prefix: string, opts: EditOptions): void;
|
|
49
|
+
export interface CommentOptions extends GlobalFlags, PrWriteOptions {
|
|
50
|
+
message?: string;
|
|
51
|
+
replyTo?: string;
|
|
52
|
+
/** Review fields, supplied by `nav pr review`. */
|
|
53
|
+
review?: Pick<NewCommentInput, "verdict" | "revision" | "file" | "line">;
|
|
54
|
+
}
|
|
55
|
+
export declare function cmdComment(ctx: Ctx, kind: EntityKind, prefix: string, opts: CommentOptions): void;
|
|
56
|
+
export interface CloseOptions extends GlobalFlags, CloseInput {
|
|
57
|
+
}
|
|
58
|
+
export declare function cmdClose(ctx: Ctx, kind: EntityKind, prefix: string, opts: CloseOptions): void;
|
|
59
|
+
export declare function cmdReopen(ctx: Ctx, kind: EntityKind, prefix: string, opts: GlobalFlags): void;
|
|
60
|
+
export interface DeleteCommandOptions extends GlobalFlags {
|
|
61
|
+
force?: boolean;
|
|
62
|
+
/** Take the issue's subtasks with it, to any depth; issue-only. */
|
|
63
|
+
recursive?: boolean;
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* Remove an entity's directory — spec 04 §4.3.
|
|
67
|
+
*
|
|
68
|
+
* Closing records how work ended; deleting says it should never have been
|
|
69
|
+
* filed. Whatever git already holds can be recovered from history, so the
|
|
70
|
+
* command only stops to ask when it would destroy something git could not give
|
|
71
|
+
* back.
|
|
72
|
+
*/
|
|
73
|
+
export declare function cmdDelete(ctx: Ctx, kind: EntityKind, prefix: string, opts: DeleteCommandOptions): void;
|
package/dist/commands/entity.js
CHANGED
|
@@ -6,15 +6,16 @@
|
|
|
6
6
|
* the report. The work itself is in `ops/entity.ts` — what is left here is
|
|
7
7
|
* gathering what the user typed and phrasing what came back.
|
|
8
8
|
*/
|
|
9
|
-
import { absPath, applyComment, applyEntityEdit, closeEntity, commentJson, commitReport, currentAuthor, entityJson, executeEntityDelete, findEntity,
|
|
9
|
+
import { absPath, applyComment, applyEntityEdit, closeEntity, commentJson, commitReport, currentAuthor, entityJson, executeEntityDelete, findEntity, listEntities, loadRepo, newCommentFile, parentNode, parseListQuery, planEntityDelete, readAssignees, readDeadline, readLabels, readPr, readRank, reopenEntity, resolveComment, resolveEntity, revalidateEntityFile, reviewSummary, subtaskTree, toNdjson, uncommittedUnder, validateComment, } from "@navbook/core";
|
|
10
10
|
import { openInEditor } from "../editor.js";
|
|
11
11
|
import { fail } from "../errors.js";
|
|
12
12
|
import { askYesNo } from "../prompt.js";
|
|
13
13
|
import { renderDetail } from "../render/detail.js";
|
|
14
|
-
import { renderTable } from "../render/table.js";
|
|
14
|
+
import { renderTable, terminalWidth } from "../render/table.js";
|
|
15
15
|
import { parseSortOrder, sortListing } from "../sort.js";
|
|
16
16
|
import { composeFile } from "./compose.js";
|
|
17
17
|
import { warnPolicyProblems } from "./policy.js";
|
|
18
|
+
import { withPrWriteSite } from "./pr-elsewhere.js";
|
|
18
19
|
const PLURAL = { issue: "issues", pr: "pull requests" };
|
|
19
20
|
export function cmdList(ctx, kind, terms, opts) {
|
|
20
21
|
const query = parseListQuery(ctx, terms, kind);
|
|
@@ -85,11 +86,7 @@ function renderList(ctx, entities, extra) {
|
|
|
85
86
|
values.push((e) => readDeadline(e.fm) ?? "");
|
|
86
87
|
}
|
|
87
88
|
const rows = entities.map((entity) => values.map((value) => value(entity)));
|
|
88
|
-
return renderTable(columns, rows, { colors: ctx.colors, width: terminalWidth(ctx) });
|
|
89
|
-
}
|
|
90
|
-
function terminalWidth(ctx) {
|
|
91
|
-
const columns = ctx.stdout.columns;
|
|
92
|
-
return typeof columns === "number" && columns > 20 ? columns : undefined;
|
|
89
|
+
return renderTable(columns, rows, { colors: ctx.colors, width: terminalWidth(ctx.stdout) });
|
|
93
90
|
}
|
|
94
91
|
export function cmdShow(ctx, kind, prefix, opts) {
|
|
95
92
|
const repo = loadRepo(ctx);
|
|
@@ -108,6 +105,10 @@ export function cmdShow(ctx, kind, prefix, opts) {
|
|
|
108
105
|
// §2.7, and it is here rather than in `list` because `show` is the command
|
|
109
106
|
// that has already read every comment it is computed from.
|
|
110
107
|
ctx.stdout.write(`${JSON.stringify(entityJson(ctx.navDir, entity, {
|
|
108
|
+
// A plugin's keys first, so the ones `show` adds below win over
|
|
109
|
+
// them. The entity's own keys it cannot name at all: those are
|
|
110
|
+
// dropped where the contributions are merged (`mergedJsonExtra`).
|
|
111
|
+
...(opts.jsonExtra?.(entity) ?? {}),
|
|
111
112
|
...(kind === "pr"
|
|
112
113
|
? {
|
|
113
114
|
...(ref === null ? {} : { refs: [ref] }),
|
|
@@ -124,8 +125,6 @@ export function cmdShow(ctx, kind, prefix, opts) {
|
|
|
124
125
|
return;
|
|
125
126
|
}
|
|
126
127
|
const depth = opts.depth ?? 1;
|
|
127
|
-
if (!Number.isInteger(depth) || depth < 0)
|
|
128
|
-
fail("--depth takes a whole number of levels");
|
|
129
128
|
// To stderr, so the detail itself reads the same wherever it came from.
|
|
130
129
|
if (ref !== null) {
|
|
131
130
|
ctx.stderr.write(`${ctx.colors.dim(`read from '${ref}'; this checkout does not hold #${entity.id}`)}\n`);
|
|
@@ -139,49 +138,65 @@ export function cmdShow(ctx, kind, prefix, opts) {
|
|
|
139
138
|
}
|
|
140
139
|
: { reviewPolicy: reading }),
|
|
141
140
|
})}\n`);
|
|
141
|
+
// After the detail rather than woven into it: a plugin's section is its own
|
|
142
|
+
// to lay out, and one that could interleave with the built-in fields would
|
|
143
|
+
// make the rendering depend on which plugins are installed.
|
|
144
|
+
for (const section of opts.sections ?? []) {
|
|
145
|
+
const lines = section(entity, repo);
|
|
146
|
+
if (lines.length > 0)
|
|
147
|
+
ctx.stdout.write(`\n${lines.join("\n")}\n`);
|
|
148
|
+
}
|
|
142
149
|
}
|
|
143
|
-
/* --------------------------------------------------------------------- edit */
|
|
144
150
|
export function cmdEdit(ctx, kind, prefix, opts) {
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
151
|
+
withWriteTarget(ctx, kind, prefix, opts, (at, entity) => {
|
|
152
|
+
const path = absPath(at, entity.filePath);
|
|
153
|
+
openInEditor(at, path);
|
|
154
|
+
for (const problem of revalidateEntityFile(at, path, kind)) {
|
|
155
|
+
ctx.stderr.write(`${ctx.colors.yellow("warning:")} ${entity.filePath}: ${problem}\n`);
|
|
156
|
+
}
|
|
157
|
+
const result = applyEntityEdit(at, entity, { commit: opts.commit });
|
|
158
|
+
ctx.stdout.write(`Edited #${entity.id} ${at.navDir}/${entity.filePath}\n`);
|
|
159
|
+
if (opts.commit)
|
|
160
|
+
ctx.stdout.write(`${commitReport(result)}\n`);
|
|
161
|
+
});
|
|
155
162
|
}
|
|
156
163
|
export function cmdComment(ctx, kind, prefix, opts) {
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
164
|
+
withWriteTarget(ctx, kind, prefix, opts, (at, entity) => {
|
|
165
|
+
const replyTo = opts.replyTo ? resolveComment(entity, opts.replyTo) : undefined;
|
|
166
|
+
const isReview = opts.review?.verdict !== undefined;
|
|
167
|
+
const noun = isReview ? "review" : "comment";
|
|
168
|
+
const base = {
|
|
169
|
+
author: currentAuthor(at),
|
|
170
|
+
body: "",
|
|
171
|
+
...(replyTo ? { replyTo } : {}),
|
|
172
|
+
...(opts.review ?? {}),
|
|
173
|
+
};
|
|
174
|
+
const composed = composeFile(ctx, {
|
|
175
|
+
message: opts.message,
|
|
176
|
+
bufferName: "NAVBOOK_COMMENT.md",
|
|
177
|
+
noun,
|
|
178
|
+
render: (body) => newCommentFile({ ...base, body }),
|
|
179
|
+
validate: (parsed) => validateComment(parsed, { onPr: kind === "pr" }),
|
|
180
|
+
});
|
|
181
|
+
const { id, path, run } = applyComment(at, entity, { content: composed.content, review: isReview }, { commit: opts.commit });
|
|
182
|
+
ctx.stdout.write(`${isReview ? "Reviewed" : "Commented on"} #${entity.id} ${at.navDir}/${path} (#${id})\n`);
|
|
183
|
+
if (opts.commit)
|
|
184
|
+
ctx.stdout.write(`${commitReport(run)}\n`);
|
|
173
185
|
});
|
|
174
|
-
const { id, path, run } = applyComment(ctx, entity, { content: composed.content, review: isReview }, { commit: opts.commit });
|
|
175
|
-
ctx.stdout.write(`${isReview ? "Reviewed" : "Commented on"} #${entity.id} ${ctx.navDir}/${path} (#${id})\n`);
|
|
176
|
-
if (opts.commit)
|
|
177
|
-
ctx.stdout.write(`${commitReport(run)}\n`);
|
|
178
186
|
}
|
|
179
187
|
/**
|
|
180
|
-
*
|
|
181
|
-
*
|
|
188
|
+
* Run a write against the entity it names, in the checkout it belongs in.
|
|
189
|
+
*
|
|
190
|
+
* An issue is written here. A pull request that only another branch holds
|
|
191
|
+
* cannot be: the write moves to a worktree on that branch when somebody agrees
|
|
192
|
+
* to it, and otherwise this is core's refusal naming where it lives, rather
|
|
193
|
+
* than a report that it does not exist.
|
|
182
194
|
*/
|
|
183
|
-
function
|
|
184
|
-
|
|
195
|
+
function withWriteTarget(ctx, kind, prefix, opts, write) {
|
|
196
|
+
if (kind === "pr")
|
|
197
|
+
withPrWriteSite(ctx, prefix, opts, write);
|
|
198
|
+
else
|
|
199
|
+
write(ctx, findEntity(ctx, kind, prefix));
|
|
185
200
|
}
|
|
186
201
|
export function cmdClose(ctx, kind, prefix, opts) {
|
|
187
202
|
const { entity, destination, run } = closeEntity(ctx, kind, prefix, opts, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"entity.js","sourceRoot":"","sources":["../../src/commands/entity.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"entity.js","sourceRoot":"","sources":["../../src/commands/entity.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `nav init` and `nav id` — the repository-level utilities of spec 04 §4.3.
|
|
3
|
+
*/
|
|
4
|
+
import type { Ctx } from "../context.ts";
|
|
5
|
+
import type { GlobalFlags } from "./entity.ts";
|
|
6
|
+
/** Create the Navbook skeleton. */
|
|
7
|
+
export declare function cmdInit(ctx: Ctx, opts: GlobalFlags): void;
|
|
8
|
+
/** Mint and print fresh IDs, for hand-editors and scripts. */
|
|
9
|
+
export declare function cmdId(ctx: Ctx, opts: {
|
|
10
|
+
count?: number;
|
|
11
|
+
}): void;
|