@navbook/cli 0.1.1 → 0.2.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/commands/complete.js +124 -0
- package/dist/commands/complete.js.map +1 -0
- package/dist/{cli/commands → commands}/compose.js +5 -3
- package/dist/commands/compose.js.map +1 -0
- package/dist/commands/doctor.js +56 -0
- package/dist/commands/doctor.js.map +1 -0
- package/dist/commands/entity.js +235 -0
- package/dist/commands/entity.js.map +1 -0
- package/dist/commands/feature.js +202 -0
- package/dist/commands/feature.js.map +1 -0
- package/dist/commands/init.js +23 -0
- package/dist/commands/init.js.map +1 -0
- package/dist/{cli/commands → commands}/install.js +1 -2
- package/dist/commands/install.js.map +1 -0
- package/dist/commands/issue.js +89 -0
- package/dist/commands/issue.js.map +1 -0
- package/dist/commands/policy.js +49 -0
- package/dist/commands/policy.js.map +1 -0
- package/dist/commands/pr.js +262 -0
- package/dist/commands/pr.js.map +1 -0
- package/dist/context.js +21 -0
- package/dist/context.js.map +1 -0
- package/dist/{cli/editor.js → editor.js} +1 -1
- package/dist/editor.js.map +1 -0
- package/dist/errors.js.map +1 -0
- package/dist/install/completions.js.map +1 -0
- package/dist/{cli/install → install}/hook.js +1 -1
- package/dist/install/hook.js.map +1 -0
- package/dist/{cli/main.js → main.js} +10 -0
- package/dist/main.js.map +1 -0
- package/dist/program.js +356 -0
- package/dist/program.js.map +1 -0
- package/dist/{cli/prompt.js → prompt.js} +11 -0
- package/dist/prompt.js.map +1 -0
- package/dist/render/colors.js.map +1 -0
- package/dist/render/detail.js +197 -0
- package/dist/render/detail.js.map +1 -0
- package/dist/render/table.js.map +1 -0
- package/dist/sort.js +77 -0
- package/dist/sort.js.map +1 -0
- package/package.json +15 -21
- package/README.md +0 -165
- package/dist/cli/commands/complete.d.ts +0 -9
- package/dist/cli/commands/complete.js +0 -72
- package/dist/cli/commands/complete.js.map +0 -1
- package/dist/cli/commands/compose.d.ts +0 -27
- package/dist/cli/commands/compose.js.map +0 -1
- package/dist/cli/commands/doctor.d.ts +0 -14
- package/dist/cli/commands/doctor.js +0 -127
- package/dist/cli/commands/doctor.js.map +0 -1
- package/dist/cli/commands/entity.d.ts +0 -55
- package/dist/cli/commands/entity.js +0 -209
- package/dist/cli/commands/entity.js.map +0 -1
- package/dist/cli/commands/init.d.ts +0 -11
- package/dist/cli/commands/init.js +0 -39
- package/dist/cli/commands/init.js.map +0 -1
- package/dist/cli/commands/install.d.ts +0 -17
- package/dist/cli/commands/install.js.map +0 -1
- package/dist/cli/commands/issue.d.ts +0 -12
- package/dist/cli/commands/issue.js +0 -42
- package/dist/cli/commands/issue.js.map +0 -1
- package/dist/cli/commands/pr.d.ts +0 -64
- package/dist/cli/commands/pr.js +0 -466
- package/dist/cli/commands/pr.js.map +0 -1
- package/dist/cli/commit-flow.d.ts +0 -27
- package/dist/cli/commit-flow.js +0 -47
- package/dist/cli/commit-flow.js.map +0 -1
- package/dist/cli/context.d.ts +0 -39
- package/dist/cli/context.js +0 -93
- package/dist/cli/context.js.map +0 -1
- package/dist/cli/editor.d.ts +0 -23
- package/dist/cli/editor.js.map +0 -1
- package/dist/cli/errors.d.ts +0 -17
- package/dist/cli/errors.js.map +0 -1
- package/dist/cli/history-checks.d.ts +0 -21
- package/dist/cli/history-checks.js +0 -134
- package/dist/cli/history-checks.js.map +0 -1
- package/dist/cli/install/completions.d.ts +0 -19
- package/dist/cli/install/completions.js.map +0 -1
- package/dist/cli/install/hook.d.ts +0 -20
- package/dist/cli/install/hook.js.map +0 -1
- package/dist/cli/main.d.ts +0 -14
- package/dist/cli/main.js.map +0 -1
- package/dist/cli/program.d.ts +0 -23
- package/dist/cli/program.js +0 -204
- package/dist/cli/program.js.map +0 -1
- package/dist/cli/prompt.d.ts +0 -22
- package/dist/cli/prompt.js.map +0 -1
- package/dist/cli/render/colors.d.ts +0 -13
- package/dist/cli/render/colors.js.map +0 -1
- package/dist/cli/render/detail.d.ts +0 -10
- package/dist/cli/render/detail.js +0 -105
- package/dist/cli/render/detail.js.map +0 -1
- package/dist/cli/render/table.d.ts +0 -19
- package/dist/cli/render/table.js.map +0 -1
- package/dist/cli/resolve.d.ts +0 -17
- package/dist/cli/resolve.js +0 -68
- package/dist/cli/resolve.js.map +0 -1
- package/dist/cli/workspace.d.ts +0 -52
- package/dist/cli/workspace.js +0 -178
- package/dist/cli/workspace.js.map +0 -1
- package/dist/core/comments.d.ts +0 -31
- package/dist/core/comments.js +0 -80
- package/dist/core/comments.js.map +0 -1
- package/dist/core/files.d.ts +0 -88
- package/dist/core/files.js +0 -441
- package/dist/core/files.js.map +0 -1
- package/dist/core/frontmatter.d.ts +0 -63
- package/dist/core/frontmatter.js +0 -149
- package/dist/core/frontmatter.js.map +0 -1
- package/dist/core/id.d.ts +0 -46
- package/dist/core/id.js +0 -66
- package/dist/core/id.js.map +0 -1
- package/dist/core/index.d.ts +0 -19
- package/dist/core/index.js +0 -20
- package/dist/core/index.js.map +0 -1
- package/dist/core/json.d.ts +0 -18
- package/dist/core/json.js +0 -51
- package/dist/core/json.js.map +0 -1
- package/dist/core/ops.d.ts +0 -92
- package/dist/core/ops.js +0 -173
- package/dist/core/ops.js.map +0 -1
- package/dist/core/person.d.ts +0 -20
- package/dist/core/person.js +0 -50
- package/dist/core/person.js.map +0 -1
- package/dist/core/query.d.ts +0 -30
- package/dist/core/query.js +0 -106
- package/dist/core/query.js.map +0 -1
- package/dist/core/refs.d.ts +0 -12
- package/dist/core/refs.js +0 -36
- package/dist/core/refs.js.map +0 -1
- package/dist/core/slug.d.ts +0 -22
- package/dist/core/slug.js +0 -40
- package/dist/core/slug.js.map +0 -1
- package/dist/core/time.d.ts +0 -14
- package/dist/core/time.js +0 -37
- package/dist/core/time.js.map +0 -1
- package/dist/core/tree.d.ts +0 -94
- package/dist/core/tree.js +0 -237
- package/dist/core/tree.js.map +0 -1
- package/dist/core/validate.d.ts +0 -55
- package/dist/core/validate.js +0 -312
- package/dist/core/validate.js.map +0 -1
- package/dist/git/config.d.ts +0 -12
- package/dist/git/config.js +0 -27
- package/dist/git/config.js.map +0 -1
- package/dist/git/exec.d.ts +0 -35
- package/dist/git/exec.js +0 -58
- package/dist/git/exec.js.map +0 -1
- package/dist/git/history.d.ts +0 -35
- package/dist/git/history.js +0 -82
- package/dist/git/history.js.map +0 -1
- package/dist/git/index-ops.d.ts +0 -20
- package/dist/git/index-ops.js +0 -45
- package/dist/git/index-ops.js.map +0 -1
- package/dist/git/merge.d.ts +0 -27
- package/dist/git/merge.js +0 -57
- package/dist/git/merge.js.map +0 -1
- package/dist/git/refscan.d.ts +0 -32
- package/dist/git/refscan.js +0 -82
- package/dist/git/refscan.js.map +0 -1
- package/dist/git/repo.d.ts +0 -45
- package/dist/git/repo.js +0 -95
- package/dist/git/repo.js.map +0 -1
- /package/dist/{cli/errors.js → errors.js} +0 -0
- /package/dist/{cli/install → install}/completions.js +0 -0
- /package/dist/{cli/render → render}/colors.js +0 -0
- /package/dist/{cli/render → render}/table.js +0 -0
|
@@ -1,209 +0,0 @@
|
|
|
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.
|
|
7
|
-
*/
|
|
8
|
-
import { readFileSync } from "node:fs";
|
|
9
|
-
import { newCommentFile, parseFile, readAssignees, readLabels, validateComment, validateIssue, validatePr, } from "../../core/files.js";
|
|
10
|
-
import { FrontmatterError } from "../../core/frontmatter.js";
|
|
11
|
-
import { commentJson, entityJson, NAVBOOK_ROOT, toNdjson } from "../../core/json.js";
|
|
12
|
-
import { docsSubject, planClose, planComment, planReopen, } from "../../core/ops.js";
|
|
13
|
-
import { isQueryError, matchesQuery, parseQuery } from "../../core/query.js";
|
|
14
|
-
import { commitReport, runPlan } from "../commit-flow.js";
|
|
15
|
-
import { openInEditor } from "../editor.js";
|
|
16
|
-
import { fail } from "../errors.js";
|
|
17
|
-
import { renderDetail } from "../render/detail.js";
|
|
18
|
-
import { renderTable } from "../render/table.js";
|
|
19
|
-
import { resolveComment, resolveEntity } from "../resolve.js";
|
|
20
|
-
import { absPath, loadRepo, loadRepoForQuery, scanAllIds } from "../workspace.js";
|
|
21
|
-
import { composeFile } from "./compose.js";
|
|
22
|
-
const PLURAL = { issue: "issues", pr: "pull requests" };
|
|
23
|
-
/** Author string for the current git identity. */
|
|
24
|
-
export function currentAuthor(ctx) {
|
|
25
|
-
const identity = ctx.identity();
|
|
26
|
-
return identity.name ? `${identity.name} <${identity.email}>` : identity.email;
|
|
27
|
-
}
|
|
28
|
-
/** Entities of one kind from a parsed repository. */
|
|
29
|
-
export function selectEntities(repo, kind) {
|
|
30
|
-
return kind === "issue" ? repo.issues : repo.prs;
|
|
31
|
-
}
|
|
32
|
-
/** Newest first, with a stable tie-break on ID. */
|
|
33
|
-
export function sortEntities(entities) {
|
|
34
|
-
return [...entities].sort((a, b) => {
|
|
35
|
-
const aCreated = typeof a.fm.created === "string" ? a.fm.created : "";
|
|
36
|
-
const bCreated = typeof b.fm.created === "string" ? b.fm.created : "";
|
|
37
|
-
if (aCreated !== bCreated)
|
|
38
|
-
return aCreated < bCreated ? 1 : -1;
|
|
39
|
-
return a.id < b.id ? -1 : a.id > b.id ? 1 : 0;
|
|
40
|
-
});
|
|
41
|
-
}
|
|
42
|
-
export function cmdList(ctx, kind, terms, opts) {
|
|
43
|
-
const query = parseQuery(terms, kind);
|
|
44
|
-
if (isQueryError(query))
|
|
45
|
-
fail(query.message);
|
|
46
|
-
const source = opts.entities ?? selectEntities(loadRepoForQuery(ctx, query), kind);
|
|
47
|
-
const matched = sortEntities(source.filter((entity) => matchesQuery(query, entity)));
|
|
48
|
-
if (opts.json) {
|
|
49
|
-
if (matched.length === 0)
|
|
50
|
-
return;
|
|
51
|
-
const objects = matched.map((entity) => entityJson(entity, opts.jsonExtra?.(entity) ?? {}));
|
|
52
|
-
ctx.stdout.write(`${toNdjson(objects)}\n`);
|
|
53
|
-
return;
|
|
54
|
-
}
|
|
55
|
-
if (matched.length === 0) {
|
|
56
|
-
ctx.stdout.write(`No ${PLURAL[kind]} match this query.\n`);
|
|
57
|
-
return;
|
|
58
|
-
}
|
|
59
|
-
ctx.stdout.write(`${renderList(ctx, matched, opts.extraColumns ?? [])}\n`);
|
|
60
|
-
}
|
|
61
|
-
function renderList(ctx, entities, extra) {
|
|
62
|
-
const columns = [{ header: "id" }, { header: "status" }];
|
|
63
|
-
const values = [(e) => `#${e.id}`, (e) => e.status];
|
|
64
|
-
for (const column of extra) {
|
|
65
|
-
columns.push({ header: column.header });
|
|
66
|
-
values.push(column.value);
|
|
67
|
-
}
|
|
68
|
-
columns.push({ header: "title", flexible: true, minWidth: 20 });
|
|
69
|
-
values.push((e) => e.title);
|
|
70
|
-
if (entities.some((e) => readLabels(e.fm).length > 0)) {
|
|
71
|
-
columns.push({ header: "labels", flexible: true, minWidth: 6 });
|
|
72
|
-
values.push((e) => readLabels(e.fm).join(","));
|
|
73
|
-
}
|
|
74
|
-
if (entities.some((e) => readAssignees(e.fm).length > 0)) {
|
|
75
|
-
columns.push({ header: "assignee", flexible: true, minWidth: 6 });
|
|
76
|
-
values.push((e) => readAssignees(e.fm).join(","));
|
|
77
|
-
}
|
|
78
|
-
const rows = entities.map((entity) => values.map((value) => value(entity)));
|
|
79
|
-
return renderTable(columns, rows, { colors: ctx.colors, width: terminalWidth(ctx) });
|
|
80
|
-
}
|
|
81
|
-
function terminalWidth(ctx) {
|
|
82
|
-
const columns = ctx.stdout.columns;
|
|
83
|
-
return typeof columns === "number" && columns > 20 ? columns : undefined;
|
|
84
|
-
}
|
|
85
|
-
/** The query a listing will run, for callers that need it before loading. */
|
|
86
|
-
export function parseListQuery(terms, kind) {
|
|
87
|
-
const query = parseQuery(terms, kind);
|
|
88
|
-
if (isQueryError(query))
|
|
89
|
-
fail(query.message);
|
|
90
|
-
return query;
|
|
91
|
-
}
|
|
92
|
-
/* --------------------------------------------------------------------- show */
|
|
93
|
-
export function cmdShow(ctx, kind, prefix, opts) {
|
|
94
|
-
const entity = resolveEntity(loadRepo(ctx), prefix, kind);
|
|
95
|
-
if (opts.json) {
|
|
96
|
-
ctx.stdout.write(`${JSON.stringify(entityJson(entity, { comments: entity.comments.map(commentJson) }))}\n`);
|
|
97
|
-
return;
|
|
98
|
-
}
|
|
99
|
-
ctx.stdout.write(`${renderDetail(entity, { colors: ctx.colors })}\n`);
|
|
100
|
-
}
|
|
101
|
-
/* --------------------------------------------------------------------- edit */
|
|
102
|
-
export function cmdEdit(ctx, kind, prefix, opts) {
|
|
103
|
-
const entity = resolveEntity(loadRepo(ctx), prefix, kind);
|
|
104
|
-
const target = absPath(ctx, entity.filePath);
|
|
105
|
-
openInEditor(ctx, target);
|
|
106
|
-
for (const problem of revalidate(target, kind)) {
|
|
107
|
-
ctx.stderr.write(`${ctx.colors.yellow("warning:")} ${entity.filePath}: ${problem}\n`);
|
|
108
|
-
}
|
|
109
|
-
// The edited file is the operation's own output, so it belongs in the plan:
|
|
110
|
-
// that is what tells the --commit guard which staged path is expected.
|
|
111
|
-
const plan = {
|
|
112
|
-
ops: [{ op: "write", path: entity.filePath, content: readFileSync(target, "utf8") }],
|
|
113
|
-
message: docsSubject(entity.kind, "edit", entity.id),
|
|
114
|
-
trailers: [{ key: "Refs", id: entity.id }],
|
|
115
|
-
};
|
|
116
|
-
runPlan(ctx, plan, { commit: opts.commit });
|
|
117
|
-
ctx.stdout.write(`Edited #${entity.id} ${NAVBOOK_ROOT}/${entity.filePath}\n`);
|
|
118
|
-
if (opts.commit)
|
|
119
|
-
ctx.stdout.write(`${commitReport(plan)}\n`);
|
|
120
|
-
}
|
|
121
|
-
function revalidate(path, kind) {
|
|
122
|
-
try {
|
|
123
|
-
const parsed = parseFile(readFileSync(path, "utf8"));
|
|
124
|
-
const problems = kind === "issue" ? validateIssue(parsed) : validatePr(parsed);
|
|
125
|
-
return problems.map((problem) => problem.message);
|
|
126
|
-
}
|
|
127
|
-
catch (error) {
|
|
128
|
-
return [error instanceof Error ? error.message : String(error)];
|
|
129
|
-
}
|
|
130
|
-
}
|
|
131
|
-
export function cmdComment(ctx, kind, prefix, opts) {
|
|
132
|
-
const repo = loadRepo(ctx);
|
|
133
|
-
const entity = resolveEntity(repo, prefix, kind);
|
|
134
|
-
const replyTo = opts.replyTo ? resolveComment(entity, opts.replyTo) : undefined;
|
|
135
|
-
const isReview = opts.review?.verdict !== undefined;
|
|
136
|
-
const noun = isReview ? "review" : "comment";
|
|
137
|
-
const base = {
|
|
138
|
-
author: currentAuthor(ctx),
|
|
139
|
-
body: "",
|
|
140
|
-
...(replyTo ? { replyTo } : {}),
|
|
141
|
-
...(opts.review ?? {}),
|
|
142
|
-
};
|
|
143
|
-
const composed = composeFile(ctx, {
|
|
144
|
-
message: opts.message,
|
|
145
|
-
bufferName: "NAVBOOK_COMMENT.md",
|
|
146
|
-
noun,
|
|
147
|
-
render: (body) => newCommentFile({ ...base, body }),
|
|
148
|
-
validate: (parsed) => validateComment(parsed, { onPr: kind === "pr" }),
|
|
149
|
-
});
|
|
150
|
-
const id = ctx.mintId(scanAllIds(ctx.navRoot));
|
|
151
|
-
const { plan, path } = planComment(entity, id, ctx.now(), composed.content, { review: isReview });
|
|
152
|
-
runPlan(ctx, plan, { commit: opts.commit });
|
|
153
|
-
ctx.stdout.write(`${isReview ? "Reviewed" : "Commented on"} #${entity.id} ${NAVBOOK_ROOT}/${path} (#${id})\n`);
|
|
154
|
-
if (opts.commit)
|
|
155
|
-
ctx.stdout.write(`${commitReport(plan)}\n`);
|
|
156
|
-
}
|
|
157
|
-
export function cmdClose(ctx, kind, prefix, opts) {
|
|
158
|
-
const repo = loadRepo(ctx);
|
|
159
|
-
const entity = resolveEntity(repo, prefix, kind);
|
|
160
|
-
if (entity.status === "closed")
|
|
161
|
-
fail(`#${entity.id} is already closed`);
|
|
162
|
-
if (entity.status === "merged")
|
|
163
|
-
fail(`#${entity.id} is merged and cannot be closed`);
|
|
164
|
-
const input = { ...opts };
|
|
165
|
-
if (input.duplicateOf) {
|
|
166
|
-
const target = resolveEntity(repo, input.duplicateOf, kind);
|
|
167
|
-
if (target.id === entity.id)
|
|
168
|
-
fail(`#${entity.id} cannot be a duplicate of itself`);
|
|
169
|
-
input.duplicateOf = target.id;
|
|
170
|
-
}
|
|
171
|
-
const plan = rewritePlan(entity, () => planClose(entity, input));
|
|
172
|
-
runPlan(ctx, plan, { commit: opts.commit });
|
|
173
|
-
ctx.stdout.write(`Closed #${entity.id} ${NAVBOOK_ROOT}/${destination(entity, "closed")}/\n`);
|
|
174
|
-
if (opts.commit)
|
|
175
|
-
ctx.stdout.write(`${commitReport(plan)}\n`);
|
|
176
|
-
}
|
|
177
|
-
export function cmdReopen(ctx, kind, prefix, opts) {
|
|
178
|
-
const entity = resolveEntity(loadRepo(ctx), prefix, kind);
|
|
179
|
-
if (entity.status === "open")
|
|
180
|
-
fail(`#${entity.id} is already open`);
|
|
181
|
-
if (entity.status === "merged") {
|
|
182
|
-
fail(`#${entity.id} is merged; a merged pull request cannot be reopened`);
|
|
183
|
-
}
|
|
184
|
-
const plan = rewritePlan(entity, () => planReopen(entity));
|
|
185
|
-
runPlan(ctx, plan, { commit: opts.commit });
|
|
186
|
-
ctx.stdout.write(`Reopened #${entity.id} ${NAVBOOK_ROOT}/${destination(entity, "open")}/\n`);
|
|
187
|
-
if (opts.commit)
|
|
188
|
-
ctx.stdout.write(`${commitReport(plan)}\n`);
|
|
189
|
-
}
|
|
190
|
-
/**
|
|
191
|
-
* Build a plan that rewrites an entity file, turning a malformed-frontmatter
|
|
192
|
-
* failure into an operational error that names the file and the way out.
|
|
193
|
-
*/
|
|
194
|
-
export function rewritePlan(entity, build) {
|
|
195
|
-
try {
|
|
196
|
-
return build();
|
|
197
|
-
}
|
|
198
|
-
catch (error) {
|
|
199
|
-
if (!(error instanceof FrontmatterError))
|
|
200
|
-
throw error;
|
|
201
|
-
fail(`${NAVBOOK_ROOT}/${entity.filePath}: ${error.message}`, [
|
|
202
|
-
"fix the file by hand, or run 'nav doctor' to see what is wrong",
|
|
203
|
-
]);
|
|
204
|
-
}
|
|
205
|
-
}
|
|
206
|
-
function destination(entity, status) {
|
|
207
|
-
return `${entity.kind === "issue" ? "issues" : "prs"}/${status}/${entity.dirName}`;
|
|
208
|
-
}
|
|
209
|
-
//# sourceMappingURL=entity.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"entity.js","sourceRoot":"","sources":["../../../src/cli/commands/entity.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,11 +0,0 @@
|
|
|
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 a fresh ID, for hand-editors and scripts. */
|
|
9
|
-
export declare function cmdId(ctx: Ctx, opts: {
|
|
10
|
-
count?: number;
|
|
11
|
-
}): void;
|
|
@@ -1,39 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* `nav init` and `nav id` — the repository-level utilities of spec 04 §4.3.
|
|
3
|
-
*/
|
|
4
|
-
import { existsSync } from "node:fs";
|
|
5
|
-
import { NAVBOOK_ROOT } from "../../core/json.js";
|
|
6
|
-
import { planInit } from "../../core/ops.js";
|
|
7
|
-
import { commitReport, runPlan } from "../commit-flow.js";
|
|
8
|
-
import { fail } from "../errors.js";
|
|
9
|
-
import { scanAllIds } from "../workspace.js";
|
|
10
|
-
/** Create the `.navbook/` skeleton. */
|
|
11
|
-
export function cmdInit(ctx, opts) {
|
|
12
|
-
if (existsSync(ctx.navRoot)) {
|
|
13
|
-
fail(`${NAVBOOK_ROOT}/ already exists at the repository root`);
|
|
14
|
-
}
|
|
15
|
-
const plan = planInit();
|
|
16
|
-
runPlan(ctx, plan, { commit: opts.commit });
|
|
17
|
-
ctx.stdout.write(`Created ${NAVBOOK_ROOT}/\n`);
|
|
18
|
-
if (opts.commit) {
|
|
19
|
-
ctx.stdout.write(`${commitReport(plan)}\n`);
|
|
20
|
-
}
|
|
21
|
-
else {
|
|
22
|
-
// Say so plainly: a later --commit refuses to run while this is staged.
|
|
23
|
-
ctx.stdout.write("The skeleton is staged; commit it, or re-run with --commit.\n");
|
|
24
|
-
}
|
|
25
|
-
ctx.stdout.write(`Next: nav issue open "Something is broken"\n`);
|
|
26
|
-
}
|
|
27
|
-
/** Mint and print a fresh ID, for hand-editors and scripts. */
|
|
28
|
-
export function cmdId(ctx, opts) {
|
|
29
|
-
const taken = ctx.hasNavbook ? scanAllIds(ctx.navRoot) : new Set();
|
|
30
|
-
const count = opts.count ?? 1;
|
|
31
|
-
if (!Number.isInteger(count) || count < 1)
|
|
32
|
-
fail("--count must be a positive integer");
|
|
33
|
-
for (let i = 0; i < count; i++) {
|
|
34
|
-
const id = ctx.mintId(taken);
|
|
35
|
-
taken.add(id);
|
|
36
|
-
ctx.stdout.write(`${id}\n`);
|
|
37
|
-
}
|
|
38
|
-
}
|
|
39
|
-
//# sourceMappingURL=init.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../../src/cli/commands/init.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAC7C,OAAO,EAAE,YAAY,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAE1D,OAAO,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AACpC,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAG7C,uCAAuC;AACvC,MAAM,UAAU,OAAO,CAAC,GAAQ,EAAE,IAAiB;IACjD,IAAI,UAAU,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC;QAC5B,IAAI,CAAC,GAAG,YAAY,yCAAyC,CAAC,CAAC;IACjE,CAAC;IACD,MAAM,IAAI,GAAG,QAAQ,EAAE,CAAC;IACxB,OAAO,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;IAC5C,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,WAAW,YAAY,KAAK,CAAC,CAAC;IAC/C,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;QAChB,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC9C,CAAC;SAAM,CAAC;QACN,wEAAwE;QACxE,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,+DAA+D,CAAC,CAAC;IACpF,CAAC;IACD,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,8CAA8C,CAAC,CAAC;AACnE,CAAC;AAED,+DAA+D;AAC/D,MAAM,UAAU,KAAK,CAAC,GAAQ,EAAE,IAAwB;IACtD,MAAM,KAAK,GAAG,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,EAAU,CAAC;IAC3E,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,IAAI,CAAC,CAAC;IAC9B,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,KAAK,GAAG,CAAC;QAAE,IAAI,CAAC,oCAAoC,CAAC,CAAC;IACtF,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC;QAC/B,MAAM,EAAE,GAAG,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAC7B,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACd,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;IAC9B,CAAC;AACH,CAAC"}
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* `nav install` / `nav uninstall` — spec 04 §4.1, §4.3, §4.5.
|
|
3
|
-
*
|
|
4
|
-
* Everything that touches the user's environment lives here, and nothing
|
|
5
|
-
* happens without printing the exact action first: the `git config` command to
|
|
6
|
-
* be run, the hook path, the completions file.
|
|
7
|
-
*/
|
|
8
|
-
import type { Ctx } from "../context.ts";
|
|
9
|
-
export interface InstallOptions {
|
|
10
|
-
alias?: string | boolean;
|
|
11
|
-
hooks?: boolean;
|
|
12
|
-
completions?: string | boolean;
|
|
13
|
-
mergeConfig?: boolean;
|
|
14
|
-
yes?: boolean;
|
|
15
|
-
}
|
|
16
|
-
export declare function cmdInstall(ctx: Ctx, opts: InstallOptions): void;
|
|
17
|
-
export declare function cmdUninstall(ctx: Ctx, opts: InstallOptions): void;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"install.js","sourceRoot":"","sources":["../../../src/cli/commands/install.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* `nav issue <verb>` — spec 04 §4.3.
|
|
3
|
-
*/
|
|
4
|
-
import { type Ctx } from "../context.ts";
|
|
5
|
-
import { type GlobalFlags } from "./entity.ts";
|
|
6
|
-
export interface IssueOpenOptions extends GlobalFlags {
|
|
7
|
-
message?: string;
|
|
8
|
-
label?: string[];
|
|
9
|
-
assignee?: string[];
|
|
10
|
-
milestone?: string;
|
|
11
|
-
}
|
|
12
|
-
export declare function cmdIssueOpen(ctx: Ctx, title: string, opts: IssueOpenOptions): void;
|
|
@@ -1,42 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* `nav issue <verb>` — spec 04 §4.3.
|
|
3
|
-
*/
|
|
4
|
-
import { newIssueFile, validateIssue } from "../../core/files.js";
|
|
5
|
-
import { NAVBOOK_ROOT } from "../../core/json.js";
|
|
6
|
-
import { planEntityOpen } from "../../core/ops.js";
|
|
7
|
-
import { commitReport, runPlan } from "../commit-flow.js";
|
|
8
|
-
import { nowIso } from "../context.js";
|
|
9
|
-
import { fail } from "../errors.js";
|
|
10
|
-
import { requireNavbook, scanAllIds } from "../workspace.js";
|
|
11
|
-
import { composeFile } from "./compose.js";
|
|
12
|
-
import { currentAuthor } from "./entity.js";
|
|
13
|
-
export function cmdIssueOpen(ctx, title, opts) {
|
|
14
|
-
if (title.trim() === "")
|
|
15
|
-
fail("an issue needs a title");
|
|
16
|
-
requireNavbook(ctx);
|
|
17
|
-
const created = nowIso(ctx);
|
|
18
|
-
const composed = composeFile(ctx, {
|
|
19
|
-
message: opts.message,
|
|
20
|
-
bufferName: "NAVBOOK_ISSUE.md",
|
|
21
|
-
noun: "issue",
|
|
22
|
-
render: (body) => newIssueFile({
|
|
23
|
-
title,
|
|
24
|
-
author: currentAuthor(ctx),
|
|
25
|
-
created,
|
|
26
|
-
body,
|
|
27
|
-
labels: opts.label,
|
|
28
|
-
assignee: opts.assignee,
|
|
29
|
-
milestone: opts.milestone,
|
|
30
|
-
}),
|
|
31
|
-
validate: validateIssue,
|
|
32
|
-
});
|
|
33
|
-
// A title edited in the buffer decides the slug, so read it back.
|
|
34
|
-
const finalTitle = typeof composed.parsed.fm.title === "string" ? composed.parsed.fm.title : title;
|
|
35
|
-
const id = ctx.mintId(scanAllIds(ctx.navRoot));
|
|
36
|
-
const { plan, dirPath } = planEntityOpen("issue", id, finalTitle, composed.content);
|
|
37
|
-
runPlan(ctx, plan, { commit: opts.commit });
|
|
38
|
-
ctx.stdout.write(`Created ${NAVBOOK_ROOT}/${dirPath}/ (#${id})\n`);
|
|
39
|
-
if (opts.commit)
|
|
40
|
-
ctx.stdout.write(`${commitReport(plan)}\n`);
|
|
41
|
-
}
|
|
42
|
-
//# sourceMappingURL=issue.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"issue.js","sourceRoot":"","sources":["../../../src/cli/commands/issue.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAClE,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAAE,YAAY,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAC1D,OAAO,EAAY,MAAM,EAAE,MAAM,eAAe,CAAC;AACjD,OAAO,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AACpC,OAAO,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7D,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,EAAE,aAAa,EAAoB,MAAM,aAAa,CAAC;AAS9D,MAAM,UAAU,YAAY,CAAC,GAAQ,EAAE,KAAa,EAAE,IAAsB;IAC1E,IAAI,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE;QAAE,IAAI,CAAC,wBAAwB,CAAC,CAAC;IACxD,cAAc,CAAC,GAAG,CAAC,CAAC;IACpB,MAAM,OAAO,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;IAE5B,MAAM,QAAQ,GAAG,WAAW,CAAC,GAAG,EAAE;QAChC,OAAO,EAAE,IAAI,CAAC,OAAO;QACrB,UAAU,EAAE,kBAAkB;QAC9B,IAAI,EAAE,OAAO;QACb,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE,CACf,YAAY,CAAC;YACX,KAAK;YACL,MAAM,EAAE,aAAa,CAAC,GAAG,CAAC;YAC1B,OAAO;YACP,IAAI;YACJ,MAAM,EAAE,IAAI,CAAC,KAAK;YAClB,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,SAAS,EAAE,IAAI,CAAC,SAAS;SAC1B,CAAC;QACJ,QAAQ,EAAE,aAAa;KACxB,CAAC,CAAC;IAEH,kEAAkE;IAClE,MAAM,UAAU,GACd,OAAO,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC;IAClF,MAAM,EAAE,GAAG,GAAG,CAAC,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC;IAC/C,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,cAAc,CAAC,OAAO,EAAE,EAAE,EAAE,UAAU,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAC;IAEpF,OAAO,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;IAC5C,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,WAAW,YAAY,IAAI,OAAO,QAAQ,EAAE,KAAK,CAAC,CAAC;IACpE,IAAI,IAAI,CAAC,MAAM;QAAE,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC/D,CAAC"}
|
|
@@ -1,64 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* `nav pr <verb>` — spec 04 §4.3.
|
|
3
|
-
*
|
|
4
|
-
* The seven shared verbs come from `entity.ts`; this module adds the three that
|
|
5
|
-
* only pull requests have (`update`, `review`, `merge`) and the parts of the
|
|
6
|
-
* shared verbs that must reach across branches, because a PR's files live on
|
|
7
|
-
* the branch it proposes to merge (spec 03 §3.5).
|
|
8
|
-
*/
|
|
9
|
-
import { type EntityRecord } from "../../core/tree.ts";
|
|
10
|
-
import { type Ref } from "../../git/refscan.ts";
|
|
11
|
-
import { type Ctx } from "../context.ts";
|
|
12
|
-
import { type CloseOptions, type GlobalFlags, type ListOptions } from "./entity.ts";
|
|
13
|
-
export interface PrOpenOptions extends GlobalFlags {
|
|
14
|
-
target?: string;
|
|
15
|
-
title?: string;
|
|
16
|
-
message?: string;
|
|
17
|
-
draft?: boolean;
|
|
18
|
-
label?: string[];
|
|
19
|
-
assignee?: string[];
|
|
20
|
-
milestone?: string;
|
|
21
|
-
}
|
|
22
|
-
export declare function cmdPrOpen(ctx: Ctx, opts: PrOpenOptions): void;
|
|
23
|
-
export declare function cmdPrUpdate(ctx: Ctx, prefix: string, opts: GlobalFlags): void;
|
|
24
|
-
export interface ReviewOptions extends GlobalFlags {
|
|
25
|
-
approve?: boolean;
|
|
26
|
-
requestChanges?: boolean;
|
|
27
|
-
message?: string;
|
|
28
|
-
revision?: string;
|
|
29
|
-
file?: string;
|
|
30
|
-
line?: string;
|
|
31
|
-
}
|
|
32
|
-
export declare function cmdPrReview(ctx: Ctx, prefix: string, opts: ReviewOptions): void;
|
|
33
|
-
export interface PrListOptions extends ListOptions {
|
|
34
|
-
allRefs?: boolean;
|
|
35
|
-
}
|
|
36
|
-
export declare function cmdPrList(ctx: Ctx, terms: string[], opts: PrListOptions): void;
|
|
37
|
-
interface FoundPr {
|
|
38
|
-
entity: EntityRecord;
|
|
39
|
-
refs: Ref[];
|
|
40
|
-
}
|
|
41
|
-
/**
|
|
42
|
-
* Enumerate open pull requests across local and fetched remote branches.
|
|
43
|
-
*
|
|
44
|
-
* The target branch does not show open PRs — they live on their source branches
|
|
45
|
-
* — so this is how they are discovered (spec 03 §3.5). Local refs win when the
|
|
46
|
-
* same PR appears on several, and every ref it was found on is reported: this
|
|
47
|
-
* is the state of the branches you have fetched, not an aggregate truth.
|
|
48
|
-
*/
|
|
49
|
-
declare function scanRefsForOpenPrs(ctx: Ctx): FoundPr[];
|
|
50
|
-
export interface MergeOptions extends GlobalFlags {
|
|
51
|
-
noFf?: boolean;
|
|
52
|
-
continue?: boolean;
|
|
53
|
-
}
|
|
54
|
-
export declare function cmdPrMerge(ctx: Ctx, prefix: string | undefined, opts: MergeOptions): void;
|
|
55
|
-
/**
|
|
56
|
-
* Decline a pull request.
|
|
57
|
-
*
|
|
58
|
-
* Its files usually live on the source branch, so when the ID is not in the
|
|
59
|
-
* current tree the directory is first checked out from the ref that has it —
|
|
60
|
-
* which is exactly the manual recipe spec 02 §2.8 describes for keeping a
|
|
61
|
-
* durable record of a declined PR on the default branch.
|
|
62
|
-
*/
|
|
63
|
-
export declare function cmdPrClose(ctx: Ctx, prefix: string, opts: CloseOptions): void;
|
|
64
|
-
export { scanRefsForOpenPrs };
|