@coldtea/pr-lens-cli 0.3.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/README.md +13 -4
- package/dist/canvas/api.d.ts +5 -1
- package/dist/canvas/api.d.ts.map +1 -1
- package/dist/canvas/api.js +3 -2
- package/dist/canvas/api.js.map +1 -1
- package/dist/canvas/delete.d.ts +3 -0
- package/dist/canvas/delete.d.ts.map +1 -0
- package/dist/canvas/delete.js +25 -0
- package/dist/canvas/delete.js.map +1 -0
- package/dist/canvas/registry.d.ts +1 -0
- package/dist/canvas/registry.d.ts.map +1 -1
- package/dist/canvas/registry.js +3 -2
- package/dist/canvas/registry.js.map +1 -1
- package/dist/canvas/write.d.ts +15 -0
- package/dist/canvas/write.d.ts.map +1 -0
- package/dist/canvas/write.js +82 -0
- package/dist/canvas/write.js.map +1 -0
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +1 -1
- package/dist/cli.js.map +1 -1
- package/dist/commands/canvas.d.ts.map +1 -1
- package/dist/commands/canvas.js +22 -89
- package/dist/commands/canvas.js.map +1 -1
- package/dist/commands/validate.d.ts.map +1 -1
- package/dist/commands/validate.js +3 -2
- package/dist/commands/validate.js.map +1 -1
- package/dist/skill-content.generated.d.ts +5 -5
- package/dist/skill-content.generated.d.ts.map +1 -1
- package/dist/skill-content.generated.js +5 -5
- package/dist/skill-content.generated.js.map +1 -1
- package/dist/snapshot.d.ts +3 -2
- package/dist/snapshot.d.ts.map +1 -1
- package/dist/snapshot.js +4 -2
- package/dist/snapshot.js.map +1 -1
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/package.json +3 -3
- package/src/canvas/api.ts +15 -3
- package/src/canvas/delete.ts +39 -0
- package/src/canvas/registry.ts +8 -3
- package/src/canvas/write.ts +128 -0
- package/src/cli.ts +2 -1
- package/src/commands/canvas.ts +22 -128
- package/src/commands/validate.ts +4 -2
- package/src/skill-content.generated.ts +5 -5
- package/src/snapshot.ts +4 -2
- package/src/version.ts +1 -1
package/README.md
CHANGED
|
@@ -75,6 +75,8 @@ Both matter to what comes next. The manifest is where `comment` gets its file na
|
|
|
75
75
|
|
|
76
76
|
The SVGs carry no script and no external reference, and the same document renders to the same bytes every time. `--theme light` or `--theme dark` draws one half of the pair.
|
|
77
77
|
|
|
78
|
+
The renderer also hands back an atlas of where every lane, node, edge and flow step landed in each picture. `render` and `export` write no file for it. The SVGs and the manifest are what a comment and a canvas need, and a file of coordinates beside them would be a second copy of the geometry to keep in step. A program that wants the boxes calls `@coldtea/pr-lens-renderer` directly.
|
|
79
|
+
|
|
78
80
|
### `comment`
|
|
79
81
|
|
|
80
82
|
```bash
|
|
@@ -98,7 +100,7 @@ Parses graph documents, patch documents, render manifests and configs, JSON or Y
|
|
|
98
100
|
pr-lens export .pr-lens/graph.json -o .github/pr-lens.map.json
|
|
99
101
|
```
|
|
100
102
|
|
|
101
|
-
Turns a pull-request document into the map of the system once that pull request has merged: elements the change deletes are dropped, along with the edges and flow steps that hung from them; the rest stops being annotated, and the result is stamped with the single commit it reflects.
|
|
103
|
+
Turns a pull-request document into the map of the system once that pull request has merged: elements the change deletes are dropped, along with the edges and flow steps that hung from them; the rest stops being annotated, the walkthrough goes with the change it narrated, and the result is stamped with the single commit it reflects.
|
|
102
104
|
|
|
103
105
|
The map is a snapshot, not a source of truth. Nothing reads it back into the pipeline: a committed map that overrode inference would be hand-maintained rot with merge conflicts attached. Commit it so a repository has something to read, to diff, and to hand an agent.
|
|
104
106
|
|
|
@@ -108,22 +110,29 @@ The map is a snapshot, not a source of truth. Nothing reads it back into the pip
|
|
|
108
110
|
pr-lens canvas push
|
|
109
111
|
```
|
|
110
112
|
|
|
111
|
-
Puts the document on prlens.dev as a canvas: a page anyone
|
|
113
|
+
Puts the document on prlens.dev as a canvas: a page anyone you share it with can read, and an SVG a README can embed.
|
|
112
114
|
|
|
113
|
-
`push` sends the JSON document, never an SVG; the app draws it. The default is `.pr-lens/drawn.graph.json`, the document `render` drew, so what the page shows is what the diagrams show. The first push of a file mints a canvas and every push after that updates the same one, matched by the path it came from. `--canvas <id|name>` picks a different one and `--name` says what to call a new one; the document's title is the default. It prints
|
|
115
|
+
`push` sends the JSON document, never an SVG; the app draws it. The default is `.pr-lens/drawn.graph.json`, the document `render` drew, so what the page shows is what the diagrams show. The first push of a file mints a canvas and every push after that updates the same one, matched by the path it came from. `--canvas <id|name>` picks a different one and `--name` says what to call a new one; the document's title is the default. It prints the view link, the embed, and the way to take it down again:
|
|
114
116
|
|
|
115
117
|
```
|
|
116
118
|
✓ https://prlens.dev/c/{id} — rev 1 · 4 diagrams
|
|
117
|
-
|
|
119
|
+
unlisted: anyone you share it with can open it, no sign-in needed
|
|
118
120
|
README embed: https://prlens.dev/c/{id}.svg
|
|
121
|
+
remove: pr-lens canvas delete
|
|
119
122
|
```
|
|
120
123
|
|
|
121
124
|
The view link is the one to share. The edit link is the same page with the write token in the fragment, and anyone holding it can push over your canvas, so it stays with you. The embed is the hero diagram as an SVG, for a README or a wiki.
|
|
122
125
|
|
|
126
|
+
A canvas plays the document's walkthrough when it carries one. The app checks that every step resolves against the diagrams it drew, and a push it refuses arrives here as `CANVAS_REJECTED` carrying the app's own words rather than a generic failure.
|
|
127
|
+
|
|
123
128
|
`pull` fetches the document back, by the view link or the bare id, into `.pr-lens/graph.json` unless `-o` says otherwise, and records the revision. Pull the edit link, the one ending in `#w=…`, and its token is recorded too: that is how a fresh checkout, or one that lost `.pr-lens/canvas.json`, gets the canvas back. A push carries the revision it last saw, and one that has been overtaken is refused rather than applied: pull, then push again.
|
|
124
129
|
|
|
125
130
|
`rotate` mints a new write token and retires the old one. Use it when an edit link has leaked. The CLI saves the new token before it sends the request, so if the connection drops, the next command finishes the rotation instead of losing the token. The token lives in `.pr-lens/canvas.json`, keyed by canvas id, and git ignores it. Lose that file and the canvas is still readable by everyone; pushing to it again needs the token, which the edit link still carries.
|
|
126
131
|
|
|
132
|
+
`delete` removes the hosted canvas: the document, every revision of it, and the images drawn from it, at once and for good. It needs the write token, like `push`. The local graph and SVG files stay where they are.
|
|
133
|
+
|
|
134
|
+
A canvas is a labelled map of a system, so before pushing one it is fair to ask where it goes. The short answer: it can be opened by anyone you share it with and nobody else, it is never listed or indexed, it is kept in the EU until you delete it, and nothing is done with it beyond drawing the page. The long answer, with every company that touches it and the region each runs in, is the [privacy policy](https://prlens.dev/privacy).
|
|
135
|
+
|
|
127
136
|
Registry writes take a lock at `.pr-lens/canvas.json.lock`. The CLI never removes another command's lock. If a command dies and leaves one behind, the error names its process id and you remove the file yourself.
|
|
128
137
|
|
|
129
138
|
The CLI refuses to write the registry where git could commit it. If a checkout tracks `.pr-lens/canvas.json` or un-ignores `.pr-lens/`, the command fails with `CANVAS_REGISTRY_EXPOSED` and writes nothing.
|
package/dist/canvas/api.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { type GraphDoc } from "@coldtea/pr-lens-schema";
|
|
2
1
|
import { z } from "zod";
|
|
2
|
+
import { type GraphDoc } from "@coldtea/pr-lens-schema";
|
|
3
3
|
declare const Minted: z.ZodObject<{
|
|
4
4
|
id: z.ZodString;
|
|
5
5
|
writeToken: z.ZodString;
|
|
@@ -61,5 +61,9 @@ export declare const pushCanvas: (api: string, id: string, token: string, rev: n
|
|
|
61
61
|
export declare const verifyWriteToken: (api: string, id: string, token: string) => Promise<boolean>;
|
|
62
62
|
/** The caller mints the next token, so a lost answer can be asked for again. */
|
|
63
63
|
export declare const rotateCanvas: (api: string, id: string, token: string, nextToken: string) => Promise<Rotated>;
|
|
64
|
+
export declare const deleteCanvas: (api: string, id: string, token: string) => Promise<{
|
|
65
|
+
id: string;
|
|
66
|
+
deleted: true;
|
|
67
|
+
}>;
|
|
64
68
|
export {};
|
|
65
69
|
//# sourceMappingURL=api.d.ts.map
|
package/dist/canvas/api.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../src/canvas/api.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../src/canvas/api.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAGL,KAAK,QAAQ,EACd,MAAM,yBAAyB,CAAC;AAmBjC,QAAA,MAAM,MAAM;;;;;;;iBAOV,CAAC;AAEH,QAAA,MAAM,OAAO;;;;;;;;;;;;;;;;;iBAOX,CAAC;AAEH,QAAA,MAAM,MAAM;;;;;;;;;;;;;;;;;iBAOV,CAAC;AAEH,QAAA,MAAM,OAAO;;;iBAAoD,CAAC;AAElE,MAAM,MAAM,MAAM,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,MAAM,CAAC,CAAC;AAC5C,MAAM,MAAM,MAAM,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,MAAM,CAAC,CAAC;AAC5C,MAAM,MAAM,OAAO,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,OAAO,CAAC,CAAC;AAC9C,MAAM,MAAM,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,OAAO,CAAC,EAAE,UAAU,CAAC,GAAG;IAChE,QAAQ,EAAE,QAAQ,CAAC;CACpB,CAAC;AAkLF,eAAO,MAAM,UAAU,QAAS,MAAM,KAAG,OAAO,CAAC,MAAM,CACwB,CAAC;AAEhF,eAAO,MAAM,WAAW,QACjB,MAAM,MACP,MAAM,KACT,OAAO,CAAC,OAAO,CAgBjB,CAAC;AAEF,eAAO,MAAM,UAAU,QAChB,MAAM,MACP,MAAM,SACH,MAAM,OACR,MAAM,YACD,QAAQ,KACjB,OAAO,CAAC,MAAM,CAYd,CAAC;AAEJ,mGAAmG;AACnG,eAAO,MAAM,gBAAgB,QACtB,MAAM,MACP,MAAM,SACH,MAAM,KACZ,OAAO,CAAC,OAAO,CAQf,CAAC;AAEJ,gFAAgF;AAChF,eAAO,MAAM,YAAY,QAClB,MAAM,MACP,MAAM,SACH,MAAM,aACF,MAAM,KAChB,OAAO,CAAC,OAAO,CAWf,CAAC;AAEJ,eAAO,MAAM,YAAY,QAClB,MAAM,MACP,MAAM,SACH,MAAM,KACZ,OAAO,CAAC;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,IAAI,CAAA;CAAE,CAKrC,CAAC"}
|
package/dist/canvas/api.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { assertNever, safeParseGraphDoc, } from "@coldtea/pr-lens-schema";
|
|
2
1
|
import { z } from "zod";
|
|
3
|
-
import {
|
|
2
|
+
import { assertNever, safeParseGraphDoc, } from "@coldtea/pr-lens-schema";
|
|
4
3
|
import { CLI_VERSION } from "../version.js";
|
|
4
|
+
import { PrLensCliError } from "../errors.js";
|
|
5
5
|
const REQUEST_TIMEOUT_MS = 60_000;
|
|
6
6
|
const Tile = z.object({
|
|
7
7
|
id: z.string(),
|
|
@@ -172,4 +172,5 @@ export const rotateCanvas = (api, id, token, nextToken) => call(api, {
|
|
|
172
172
|
token,
|
|
173
173
|
body: { writeToken: nextToken },
|
|
174
174
|
}, Rotated);
|
|
175
|
+
export const deleteCanvas = (api, id, token) => call(api, { method: "DELETE", path: canvasPath(id), canvas: id, token }, z.object({ id: z.literal(id), deleted: z.literal(true) }));
|
|
175
176
|
//# sourceMappingURL=api.js.map
|
package/dist/canvas/api.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api.js","sourceRoot":"","sources":["../../src/canvas/api.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"api.js","sourceRoot":"","sources":["../../src/canvas/api.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"delete.d.ts","sourceRoot":"","sources":["../../src/canvas/delete.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAK/C,eAAO,MAAM,aAAa,SAClB,SAAS,MAAM,EAAE,YACb,QAAQ,OACb,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,KACtC,OAAO,CAAC,IAAI,CA2Bd,CAAC"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { deleteCanvas } from "./api.js";
|
|
2
|
+
import { usageError } from "../errors.js";
|
|
3
|
+
import { parseOptions, readString } from "../args.js";
|
|
4
|
+
import { selectCanvas, readRegistry, updateRegistry } from "./registry.js";
|
|
5
|
+
import { readApi, requireWriteToken, settlePendingRotation } from "./write.js";
|
|
6
|
+
export const deleteCommand = async (args, terminal, env) => {
|
|
7
|
+
const { values, positionals } = parseOptions(args, {
|
|
8
|
+
canvas: { type: "string" },
|
|
9
|
+
api: { type: "string" },
|
|
10
|
+
});
|
|
11
|
+
if (positionals.length > 0)
|
|
12
|
+
throw usageError(`delete takes no positional arguments, got ${positionals.join(" ")}`);
|
|
13
|
+
const api = readApi(values.api, env);
|
|
14
|
+
const registry = await readRegistry();
|
|
15
|
+
const ref = readString(values.canvas, "canvas");
|
|
16
|
+
const selected = selectCanvas(registry, ref);
|
|
17
|
+
const target = await settlePendingRotation(api, selected, terminal);
|
|
18
|
+
await deleteCanvas(api, target.id, requireWriteToken(target));
|
|
19
|
+
await updateRegistry((current) => {
|
|
20
|
+
if (current.canvases[target.id]?.api === api)
|
|
21
|
+
delete current.canvases[target.id];
|
|
22
|
+
}, terminal);
|
|
23
|
+
terminal.out(`✓ deleted ${target.id} from ${api}; local graph and SVG files kept`);
|
|
24
|
+
};
|
|
25
|
+
//# sourceMappingURL=delete.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"delete.js","sourceRoot":"","sources":["../../src/canvas/delete.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AACxC,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE1C,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AACtD,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAC3E,OAAO,EAAE,OAAO,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AAE/E,MAAM,CAAC,MAAM,aAAa,GAAG,KAAK,EAChC,IAAuB,EACvB,QAAkB,EAClB,GAAuC,EACxB,EAAE;IACjB,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,GAAG,YAAY,CAAC,IAAI,EAAE;QACjD,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;QAC1B,GAAG,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;KACxB,CAAC,CAAC;IACH,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC;QACxB,MAAM,UAAU,CACd,6CAA6C,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CACrE,CAAC;IAEJ,MAAM,GAAG,GAAG,OAAO,CAAC,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IAErC,MAAM,QAAQ,GAAG,MAAM,YAAY,EAAE,CAAC;IAEtC,MAAM,GAAG,GAAG,UAAU,CAAC,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IAChD,MAAM,QAAQ,GAAG,YAAY,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;IAE7C,MAAM,MAAM,GAAG,MAAM,qBAAqB,CAAC,GAAG,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;IACpE,MAAM,YAAY,CAAC,GAAG,EAAE,MAAM,CAAC,EAAE,EAAE,iBAAiB,CAAC,MAAM,CAAC,CAAC,CAAC;IAE9D,MAAM,cAAc,CAAC,CAAC,OAAO,EAAE,EAAE;QAC/B,IAAI,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,GAAG,KAAK,GAAG;YAC1C,OAAO,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IACvC,CAAC,EAAE,QAAQ,CAAC,CAAC;IACb,QAAQ,CAAC,GAAG,CACV,aAAa,MAAM,CAAC,EAAE,SAAS,GAAG,kCAAkC,CACrE,CAAC;AACJ,CAAC,CAAC"}
|
|
@@ -41,5 +41,6 @@ export declare const sourceKey: (path: string) => string;
|
|
|
41
41
|
export declare const findCanvas: (registry: CanvasRegistry, ref: string) => Registered;
|
|
42
42
|
export declare const findBySource: (registry: CanvasRegistry, path: string) => Registered | undefined;
|
|
43
43
|
export declare const onlyCanvas: (registry: CanvasRegistry) => Registered;
|
|
44
|
+
export declare const selectCanvas: (registry: CanvasRegistry, ref: string | undefined) => Registered;
|
|
44
45
|
export {};
|
|
45
46
|
//# sourceMappingURL=registry.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../src/canvas/registry.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../src/canvas/registry.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAmBxB,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAK/C,kEAAkE;AAClE,eAAO,MAAM,aAAa,QAAqC,CAAC;AAMhE,eAAO,MAAM,UAAU,UAAW,MAAM,KAAG,OAAgC,CAAC;AAE5E,eAAO,MAAM,cAAc,QAAO,MACK,CAAC;AAExC,QAAA,MAAM,KAAK;;;;;;;iBAUT,CAAC;AAEH,QAAA,MAAM,QAAQ;;;;;;;;;iBAEZ,CAAC;AAEH,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,KAAK,CAAC,CAAC;AAChD,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,QAAQ,CAAC,CAAC;AACtD,MAAM,MAAM,UAAU,GAAG;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,WAAW,CAAA;CAAE,CAAC;AAQ5D,eAAO,MAAM,YAAY,QAAa,OAAO,CAAC,cAAc,CAc3D,CAAC;AAkGF,8EAA8E;AAC9E,eAAO,MAAM,kBAAkB,aAAoB,QAAQ,KAAG,OAAO,CAAC,IAAI,CAGzE,CAAC;AAWF,yFAAyF;AACzF,eAAO,MAAM,wBAAwB,SAC7B,MAAM,KACX,OAAO,CAAC,OAAO,CA6BjB,CAAC;AAEF,eAAO,MAAM,aAAa,aACd,cAAc,YACd,QAAQ,KACjB,OAAO,CAAC,IAAI,CAGd,CAAC;AAyHF,yFAAyF;AACzF,eAAO,MAAM,gBAAgB,GAAU,CAAC,QAChC,MAAM,OAAO,CAAC,CAAC,CAAC,KACrB,OAAO,CAAC,CAAC,CAwCX,CAAC;AAEF,eAAO,MAAM,cAAc,WACjB,CAAC,QAAQ,EAAE,cAAc,KAAK,IAAI,YAChC,QAAQ,KACjB,OAAO,CAAC,cAAc,CAMrB,CAAC;AAEL,eAAO,MAAM,SAAS,SAAU,MAAM,KAAG,MACD,CAAC;AAUzC,eAAO,MAAM,UAAU,aACX,cAAc,OACnB,MAAM,KACV,UAoBF,CAAC;AAEF,eAAO,MAAM,YAAY,aACb,cAAc,QAClB,MAAM,KACX,UAAU,GAAG,SAaf,CAAC;AAEF,eAAO,MAAM,UAAU,aAAc,cAAc,KAAG,UAiBrD,CAAC;AAEF,eAAO,MAAM,YAAY,aACb,cAAc,OACnB,MAAM,GAAG,SAAS,KACtB,UACmE,CAAC"}
|
package/dist/canvas/registry.js
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import { access, link, lstat, stat, mkdir, unlink, realpath, readFile, writeFile, } from "node:fs/promises";
|
|
2
1
|
import { z } from "zod";
|
|
2
|
+
import { access, link, lstat, stat, mkdir, unlink, realpath, readFile, writeFile, } from "node:fs/promises";
|
|
3
3
|
import { randomBytes } from "node:crypto";
|
|
4
|
+
import { assertNever } from "@coldtea/pr-lens-schema";
|
|
4
5
|
import { setTimeout as sleep } from "node:timers/promises";
|
|
5
6
|
import { basename, dirname, join, relative, resolve } from "node:path";
|
|
6
|
-
import { assertNever } from "@coldtea/pr-lens-schema";
|
|
7
7
|
import { git } from "../git.js";
|
|
8
8
|
import { PrLensCliError, usageError } from "../errors.js";
|
|
9
9
|
import { prepareWorkspace, WORKSPACE_DIR } from "../workspace.js";
|
|
@@ -306,4 +306,5 @@ export const onlyCanvas = (registry) => {
|
|
|
306
306
|
throw unregistered(`${all.length} canvases in ${REGISTRY_PATH}`, `pass --canvas <id|name>: ${all.map(describe).join(", ")}`);
|
|
307
307
|
return only;
|
|
308
308
|
};
|
|
309
|
+
export const selectCanvas = (registry, ref) => ref === undefined ? onlyCanvas(registry) : findCanvas(registry, ref);
|
|
309
310
|
//# sourceMappingURL=registry.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/canvas/registry.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/canvas/registry.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import type { Terminal } from "../terminal.js";
|
|
2
|
+
import { type Registered } from "./registry.js";
|
|
3
|
+
export declare const DEFAULT_API = "https://prlens.dev";
|
|
4
|
+
export declare const API_ENV = "PR_LENS_API_URL";
|
|
5
|
+
export declare const readApi: (value: unknown, env: Record<string, string | undefined>) => string;
|
|
6
|
+
/** Another app's 404 says nothing about this entry, so it must not change it. */
|
|
7
|
+
export declare const requireSameApi: (api: string, { id, entry }: Registered) => void;
|
|
8
|
+
export declare const requireWriteToken: ({ id, entry }: Registered) => string;
|
|
9
|
+
/** Asking again with the same pair is safe: the app answers "rotated" once the token is on record. */
|
|
10
|
+
export declare const settleRotation: (api: string, { id, entry }: Registered, nextToken: string, terminal: Terminal) => Promise<{
|
|
11
|
+
registered: Registered;
|
|
12
|
+
editUrl: string;
|
|
13
|
+
}>;
|
|
14
|
+
export declare const settlePendingRotation: (api: string, registered: Registered, terminal: Terminal) => Promise<Registered>;
|
|
15
|
+
//# sourceMappingURL=write.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"write.d.ts","sourceRoot":"","sources":["../../src/canvas/write.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAE/C,OAAO,EAAkB,KAAK,UAAU,EAAE,MAAM,eAAe,CAAC;AAEhE,eAAO,MAAM,WAAW,uBAAuB,CAAC;AAChD,eAAO,MAAM,OAAO,oBAAoB,CAAC;AAEzC,eAAO,MAAM,OAAO,UACX,OAAO,OACT,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,KACtC,MAQF,CAAC;AAEF,iFAAiF;AACjF,eAAO,MAAM,cAAc,QACpB,MAAM,iBACI,UAAU,KACxB,IAOF,CAAC;AAEF,eAAO,MAAM,iBAAiB,kBAAmB,UAAU,KAAG,MAO7D,CAAC;AAcF,sGAAsG;AACtG,eAAO,MAAM,cAAc,QACpB,MAAM,iBACI,UAAU,aACd,MAAM,YACP,QAAQ,KACjB,OAAO,CAAC;IAAE,UAAU,EAAE,UAAU,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAoDrD,CAAC;AAEF,eAAO,MAAM,qBAAqB,QAC3B,MAAM,cACC,UAAU,YACZ,QAAQ,KACjB,OAAO,CAAC,UAAU,CAOpB,CAAC"}
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
import { readString } from "../args.js";
|
|
2
|
+
import { rotateCanvas } from "./api.js";
|
|
3
|
+
import { PrLensCliError, usageError } from "../errors.js";
|
|
4
|
+
import { updateRegistry } from "./registry.js";
|
|
5
|
+
export const DEFAULT_API = "https://prlens.dev";
|
|
6
|
+
export const API_ENV = "PR_LENS_API_URL";
|
|
7
|
+
export const readApi = (value, env) => {
|
|
8
|
+
const api = readString(value, "api") ?? env[API_ENV] ?? DEFAULT_API;
|
|
9
|
+
try {
|
|
10
|
+
new URL(api);
|
|
11
|
+
}
|
|
12
|
+
catch {
|
|
13
|
+
throw usageError(`--api needs a URL, got ${JSON.stringify(api)}`);
|
|
14
|
+
}
|
|
15
|
+
return api.replace(/\/+$/, "");
|
|
16
|
+
};
|
|
17
|
+
/** Another app's 404 says nothing about this entry, so it must not change it. */
|
|
18
|
+
export const requireSameApi = (api, { id, entry }) => {
|
|
19
|
+
if (entry.api === api)
|
|
20
|
+
return;
|
|
21
|
+
throw new PrLensCliError("CANVAS_UNREGISTERED", `${id} is registered against ${entry.api}, not ${api}`, `pass --api ${entry.api}, or push the document without --canvas to mint a canvas here`);
|
|
22
|
+
};
|
|
23
|
+
export const requireWriteToken = ({ id, entry }) => {
|
|
24
|
+
if (entry.writeToken !== undefined)
|
|
25
|
+
return entry.writeToken;
|
|
26
|
+
throw new PrLensCliError("CANVAS_UNREGISTERED", `this checkout can read ${id} but holds no write token for it`, "pull its edit link, the one with #w= at the end, and the token comes with it");
|
|
27
|
+
};
|
|
28
|
+
const unfinishedRotation = (error) => new PrLensCliError(error.code, `${error.message}; the rotation is not finished`, [
|
|
29
|
+
error.details,
|
|
30
|
+
"run pr-lens canvas rotate again to finish it: the new token is kept until the app confirms it",
|
|
31
|
+
]
|
|
32
|
+
.filter((line) => line !== undefined && line !== "")
|
|
33
|
+
.join("\n"));
|
|
34
|
+
/** Asking again with the same pair is safe: the app answers "rotated" once the token is on record. */
|
|
35
|
+
export const settleRotation = async (api, { id, entry }, nextToken, terminal) => {
|
|
36
|
+
const rotated = await rotateCanvas(api, id, requireWriteToken({ id, entry }), nextToken).catch(async (error) => {
|
|
37
|
+
if (!(error instanceof PrLensCliError))
|
|
38
|
+
throw error;
|
|
39
|
+
if (error.code !== "CANVAS_UNKNOWN")
|
|
40
|
+
throw unfinishedRotation(error);
|
|
41
|
+
// Final: a pending token that was current would have been answered
|
|
42
|
+
// "rotated". Drop it now, or a token imported later would carry it out.
|
|
43
|
+
await updateRegistry((registry) => {
|
|
44
|
+
const current = registry.canvases[id];
|
|
45
|
+
if (current === undefined ||
|
|
46
|
+
current.pending !== nextToken ||
|
|
47
|
+
current.api !== api)
|
|
48
|
+
return;
|
|
49
|
+
registry.canvases[id] = { ...current, pending: undefined };
|
|
50
|
+
}, terminal);
|
|
51
|
+
throw new PrLensCliError(error.code, `${error.message}; the pending rotation was dropped`, error.details);
|
|
52
|
+
});
|
|
53
|
+
// A different token pending by now belongs to a later rotation.
|
|
54
|
+
await updateRegistry((registry) => {
|
|
55
|
+
const current = registry.canvases[id];
|
|
56
|
+
if (current === undefined ||
|
|
57
|
+
current.pending !== nextToken ||
|
|
58
|
+
current.api !== api)
|
|
59
|
+
return;
|
|
60
|
+
registry.canvases[id] = {
|
|
61
|
+
...current,
|
|
62
|
+
writeToken: nextToken,
|
|
63
|
+
pending: undefined,
|
|
64
|
+
};
|
|
65
|
+
}, terminal);
|
|
66
|
+
return {
|
|
67
|
+
registered: {
|
|
68
|
+
id,
|
|
69
|
+
entry: { ...entry, writeToken: nextToken, pending: undefined },
|
|
70
|
+
},
|
|
71
|
+
editUrl: rotated.editUrl,
|
|
72
|
+
};
|
|
73
|
+
};
|
|
74
|
+
export const settlePendingRotation = async (api, registered, terminal) => {
|
|
75
|
+
requireSameApi(api, registered);
|
|
76
|
+
requireWriteToken(registered);
|
|
77
|
+
const pending = registered.entry.pending;
|
|
78
|
+
return pending === undefined
|
|
79
|
+
? registered
|
|
80
|
+
: (await settleRotation(api, registered, pending, terminal)).registered;
|
|
81
|
+
};
|
|
82
|
+
//# sourceMappingURL=write.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"write.js","sourceRoot":"","sources":["../../src/canvas/write.ts"],"names":[],"mappings":"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"}
|
package/dist/cli.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAmF9C,eAAO,MAAM,GAAG,SACR,SAAS,MAAM,EAAE,YACb,QAAQ,OACb,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,KACtC,OAAO,CAAC,MAAM,CA0ChB,CAAC"}
|
package/dist/cli.js
CHANGED
|
@@ -17,7 +17,7 @@ const HELP = `pr-lens — review what actually matters
|
|
|
17
17
|
pr-lens comment --graph --manifest the pull request comment, as markdown
|
|
18
18
|
pr-lens validate <file...> any PR Lens document, checked against the contract
|
|
19
19
|
pr-lens export <graph.json> the merged state, as a map worth committing
|
|
20
|
-
pr-lens canvas push | pull | rotate that document, kept on prlens.dev as a page and an embed
|
|
20
|
+
pr-lens canvas push | pull | rotate | delete that document, kept on prlens.dev as a page and an embed
|
|
21
21
|
pr-lens skill diagram instructions for coding agents
|
|
22
22
|
|
|
23
23
|
pr-lens <command> --help what a command takes
|
package/dist/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"canvas.d.ts","sourceRoot":"","sources":["../../src/commands/canvas.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"canvas.d.ts","sourceRoot":"","sources":["../../src/commands/canvas.ts"],"names":[],"mappings":"AA4BA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAgB/C,eAAO,MAAM,KAAK,QAsBgF,CAAC;AAiWnG,eAAO,MAAM,aAAa,SAClB,SAAS,MAAM,EAAE,YACb,QAAQ,OACb,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,KACtC,OAAO,CAAC,IAAI,CAmBd,CAAC"}
|
package/dist/commands/canvas.js
CHANGED
|
@@ -1,21 +1,21 @@
|
|
|
1
1
|
import { assertNever } from "@coldtea/pr-lens-schema";
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import { ensureRegistryHome, findBySource, findCanvas, isCanvasId, mintWriteToken, onlyCanvas, isReservedRegistryTarget, readRegistry, REGISTRY_PATH, sourceKey, updateRegistry, withRegistryLock, writeRegistry, } from "../canvas/registry.js";
|
|
5
|
-
import { readGraphDoc } from "../document.js";
|
|
6
|
-
import { PrLensCliError, usageError } from "../errors.js";
|
|
2
|
+
import { fetchCanvas, mintCanvas, pushCanvas, verifyWriteToken, } from "../canvas/api.js";
|
|
3
|
+
import { ensureRegistryHome, findBySource, findCanvas, isCanvasId, mintWriteToken, selectCanvas, isReservedRegistryTarget, readRegistry, REGISTRY_PATH, sourceKey, updateRegistry, withRegistryLock, writeRegistry, } from "../canvas/registry.js";
|
|
7
4
|
import { writeJsonFile } from "../io.js";
|
|
5
|
+
import { readGraphDoc } from "../document.js";
|
|
8
6
|
import { WORKSPACE_DIR } from "../workspace.js";
|
|
9
|
-
|
|
10
|
-
|
|
7
|
+
import { deleteCommand } from "../canvas/delete.js";
|
|
8
|
+
import { parseOptions, readString } from "../args.js";
|
|
9
|
+
import { PrLensCliError, usageError } from "../errors.js";
|
|
10
|
+
import { DEFAULT_API, API_ENV, readApi, requireSameApi, requireWriteToken, settleRotation, settlePendingRotation } from "../canvas/write.js";
|
|
11
11
|
const DEFAULT_SOURCE = `${WORKSPACE_DIR}/drawn.graph.json`;
|
|
12
12
|
const DEFAULT_OUT = `${WORKSPACE_DIR}/graph.json`;
|
|
13
|
-
const SUBCOMMANDS = ["push", "pull", "rotate"];
|
|
13
|
+
const SUBCOMMANDS = ["push", "pull", "rotate", "delete"];
|
|
14
14
|
const isSubcommand = (value) => SUBCOMMANDS.some((subcommand) => subcommand === value);
|
|
15
|
-
export const USAGE = `pr-lens canvas <push | pull | rotate> [options]
|
|
15
|
+
export const USAGE = `pr-lens canvas <push | pull | rotate | delete> [options]
|
|
16
16
|
|
|
17
|
-
Keeps a graph document on the PR Lens app as a canvas: a page anyone
|
|
18
|
-
|
|
17
|
+
Keeps a graph document on the PR Lens app as a canvas: a page anyone you share
|
|
18
|
+
it with can read, and an SVG a README can embed. The write token lands in
|
|
19
19
|
${REGISTRY_PATH}, which git ignores; the edit link carries the same token
|
|
20
20
|
in its fragment, so share the view link and keep the edit link to yourself.
|
|
21
21
|
|
|
@@ -31,17 +31,10 @@ in its fragment, so share the view link and keep the edit link to yourself.
|
|
|
31
31
|
pr-lens canvas rotate mint a new write token; the old edit link stops working
|
|
32
32
|
--canvas <id|name> which canvas (default the checkout's only canvas)
|
|
33
33
|
|
|
34
|
+
pr-lens canvas delete permanently delete the hosted canvas; keep local graph and SVG files
|
|
35
|
+
--canvas <id|name> which canvas (default the checkout's only canvas)
|
|
36
|
+
|
|
34
37
|
--api <url> the PR Lens app (default $${API_ENV}, else ${DEFAULT_API})`;
|
|
35
|
-
const readApi = (value, env) => {
|
|
36
|
-
const api = readString(value, "api") ?? env[API_ENV] ?? DEFAULT_API;
|
|
37
|
-
try {
|
|
38
|
-
new URL(api);
|
|
39
|
-
}
|
|
40
|
-
catch {
|
|
41
|
-
throw usageError(`--api needs a URL, got ${JSON.stringify(api)}`);
|
|
42
|
-
}
|
|
43
|
-
return api.replace(/\/+$/, "");
|
|
44
|
-
};
|
|
45
38
|
const TOKEN_SHAPE = /^[A-Za-z0-9_-]{22}$/;
|
|
46
39
|
/** Pulling an edit link is how a checkout that never pushed a canvas gets its token. */
|
|
47
40
|
const readCanvasRef = (value) => {
|
|
@@ -65,64 +58,7 @@ const readCanvasRef = (value) => {
|
|
|
65
58
|
throw usageError(`${value} carries something after #w= that is not a write token`, "an edit link ends in #w= and 22 characters");
|
|
66
59
|
return { id, origin: url.origin, writeToken };
|
|
67
60
|
};
|
|
68
|
-
/** Another app's 404 says nothing about this entry, so it must not change it. */
|
|
69
|
-
const requireSameApi = (api, { id, entry }) => {
|
|
70
|
-
if (entry.api === api)
|
|
71
|
-
return;
|
|
72
|
-
throw new PrLensCliError("CANVAS_UNREGISTERED", `${id} is registered against ${entry.api}, not ${api}`, `pass --api ${entry.api}, or push the document without --canvas to mint a canvas here`);
|
|
73
|
-
};
|
|
74
|
-
const requireWriteToken = ({ id, entry }) => {
|
|
75
|
-
if (entry.writeToken !== undefined)
|
|
76
|
-
return entry.writeToken;
|
|
77
|
-
throw new PrLensCliError("CANVAS_UNREGISTERED", `this checkout can read ${id} but holds no write token for it`, "pull its edit link, the one with #w= at the end, and the token comes with it");
|
|
78
|
-
};
|
|
79
61
|
const countDiagrams = (count) => `${count} ${count === 1 ? "diagram" : "diagrams"}`;
|
|
80
|
-
const unfinishedRotation = (error) => new PrLensCliError(error.code, `${error.message}; the rotation is not finished`, [
|
|
81
|
-
error.details,
|
|
82
|
-
"run pr-lens canvas rotate again to finish it: the new token is kept until the app confirms it",
|
|
83
|
-
]
|
|
84
|
-
.filter((line) => line !== undefined && line !== "")
|
|
85
|
-
.join("\n"));
|
|
86
|
-
/** Asking again with the same pair is safe: the app answers "rotated" once the token is on record. */
|
|
87
|
-
const settleRotation = async (api, { id, entry }, nextToken, terminal) => {
|
|
88
|
-
const rotated = await rotateCanvas(api, id, requireWriteToken({ id, entry }), nextToken).catch(async (error) => {
|
|
89
|
-
if (!(error instanceof PrLensCliError))
|
|
90
|
-
throw error;
|
|
91
|
-
if (error.code !== "CANVAS_UNKNOWN")
|
|
92
|
-
throw unfinishedRotation(error);
|
|
93
|
-
// Final: a pending token that was current would have been answered
|
|
94
|
-
// "rotated". Drop it now, or a token imported later would carry it out.
|
|
95
|
-
await updateRegistry((registry) => {
|
|
96
|
-
const current = registry.canvases[id];
|
|
97
|
-
if (current === undefined ||
|
|
98
|
-
current.pending !== nextToken ||
|
|
99
|
-
current.api !== api)
|
|
100
|
-
return;
|
|
101
|
-
registry.canvases[id] = { ...current, pending: undefined };
|
|
102
|
-
}, terminal);
|
|
103
|
-
throw new PrLensCliError(error.code, `${error.message}; the pending rotation was dropped`, error.details);
|
|
104
|
-
});
|
|
105
|
-
// A different token pending by now belongs to a later rotation.
|
|
106
|
-
await updateRegistry((registry) => {
|
|
107
|
-
const current = registry.canvases[id];
|
|
108
|
-
if (current === undefined ||
|
|
109
|
-
current.pending !== nextToken ||
|
|
110
|
-
current.api !== api)
|
|
111
|
-
return;
|
|
112
|
-
registry.canvases[id] = {
|
|
113
|
-
...current,
|
|
114
|
-
writeToken: nextToken,
|
|
115
|
-
pending: undefined,
|
|
116
|
-
};
|
|
117
|
-
}, terminal);
|
|
118
|
-
return {
|
|
119
|
-
registered: {
|
|
120
|
-
id,
|
|
121
|
-
entry: { ...entry, writeToken: nextToken, pending: undefined },
|
|
122
|
-
},
|
|
123
|
-
editUrl: rotated.editUrl,
|
|
124
|
-
};
|
|
125
|
-
};
|
|
126
62
|
/**
|
|
127
63
|
* Decided under the lock. A token that changes hands drops a pending
|
|
128
64
|
* rotation, which was the old holder's business; the same token keeps it.
|
|
@@ -223,11 +159,7 @@ const push = async (args, terminal, env) => {
|
|
|
223
159
|
}
|
|
224
160
|
return { id: minted.id, entry };
|
|
225
161
|
}));
|
|
226
|
-
|
|
227
|
-
const pending = registered.entry.pending;
|
|
228
|
-
const target = pending === undefined
|
|
229
|
-
? registered
|
|
230
|
-
: (await settleRotation(api, registered, pending, terminal)).registered;
|
|
162
|
+
const target = await settlePendingRotation(api, registered, terminal);
|
|
231
163
|
const pushed = await pushCanvas(api, target.id, requireWriteToken(target), target.entry.rev, document);
|
|
232
164
|
await updateRegistry((current) => {
|
|
233
165
|
current.canvases[target.id] = {
|
|
@@ -237,8 +169,9 @@ const push = async (args, terminal, env) => {
|
|
|
237
169
|
};
|
|
238
170
|
}, terminal);
|
|
239
171
|
terminal.out(`✓ ${pushed.viewUrl} — rev ${pushed.rev} · ${countDiagrams(pushed.tiles.length)}`);
|
|
240
|
-
terminal.out(
|
|
172
|
+
terminal.out(" unlisted: anyone you share it with can open it, no sign-in needed");
|
|
241
173
|
terminal.out(` README embed: ${pushed.embedUrl}`);
|
|
174
|
+
terminal.out(" remove: pr-lens canvas delete");
|
|
242
175
|
};
|
|
243
176
|
const pull = async (args, terminal, env) => {
|
|
244
177
|
const { values, positionals } = parseOptions(args, {
|
|
@@ -254,9 +187,7 @@ const pull = async (args, terminal, env) => {
|
|
|
254
187
|
const { id, origin, writeToken } = positional !== undefined
|
|
255
188
|
? readCanvasRef(positional)
|
|
256
189
|
: {
|
|
257
|
-
...(ref
|
|
258
|
-
? onlyCanvas(registry)
|
|
259
|
-
: findCanvas(registry, ref)),
|
|
190
|
+
...selectCanvas(registry, ref),
|
|
260
191
|
origin: undefined,
|
|
261
192
|
writeToken: undefined,
|
|
262
193
|
};
|
|
@@ -312,7 +243,7 @@ const rotate = async (args, terminal, env) => {
|
|
|
312
243
|
await ensureRegistryHome(terminal);
|
|
313
244
|
const registry = await readRegistry();
|
|
314
245
|
const ref = readString(values.canvas, "canvas");
|
|
315
|
-
const { id } =
|
|
246
|
+
const { id } = selectCanvas(registry, ref);
|
|
316
247
|
// Saved before the request, so a lost answer cannot lose it; chosen under
|
|
317
248
|
// the lock, so two rotations at once finish the same one.
|
|
318
249
|
let pending;
|
|
@@ -341,7 +272,7 @@ const rotate = async (args, terminal, env) => {
|
|
|
341
272
|
export const canvasCommand = async (args, terminal, env) => {
|
|
342
273
|
const [name, ...rest] = args;
|
|
343
274
|
if (name === undefined)
|
|
344
|
-
throw usageError("canvas needs a subcommand: push, pull or
|
|
275
|
+
throw usageError("canvas needs a subcommand: push, pull, rotate or delete");
|
|
345
276
|
if (!isSubcommand(name))
|
|
346
277
|
throw usageError(`unknown canvas subcommand ${JSON.stringify(name)}`);
|
|
347
278
|
switch (name) {
|
|
@@ -349,6 +280,8 @@ export const canvasCommand = async (args, terminal, env) => {
|
|
|
349
280
|
return push(rest, terminal, env);
|
|
350
281
|
case "pull":
|
|
351
282
|
return pull(rest, terminal, env);
|
|
283
|
+
case "delete":
|
|
284
|
+
return deleteCommand(rest, terminal, env);
|
|
352
285
|
case "rotate":
|
|
353
286
|
return rotate(rest, terminal, env);
|
|
354
287
|
default:
|