unfairly 0.5.1 → 0.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +8 -0
- package/README.md +16 -7
- package/dist/cmd/init.d.ts +2 -3
- package/dist/cmd/init.d.ts.map +1 -1
- package/dist/cmd/init.js +60 -44
- package/dist/cmd/init.js.map +1 -1
- package/dist/cmd/pull.d.ts.map +1 -1
- package/dist/cmd/pull.js +16 -2
- package/dist/cmd/pull.js.map +1 -1
- package/dist/cmd/setup.d.ts +19 -19
- package/dist/cmd/setup.d.ts.map +1 -1
- package/dist/cmd/setup.js +143 -84
- package/dist/cmd/setup.js.map +1 -1
- package/dist/cmd/status-card.d.ts +2 -0
- package/dist/cmd/status-card.d.ts.map +1 -0
- package/dist/cmd/status-card.js +156 -0
- package/dist/cmd/status-card.js.map +1 -0
- package/dist/cmd/status.d.ts.map +1 -1
- package/dist/cmd/status.js +3 -0
- package/dist/cmd/status.js.map +1 -1
- package/dist/hosts/claude-desktop.d.ts +47 -0
- package/dist/hosts/claude-desktop.d.ts.map +1 -0
- package/dist/hosts/claude-desktop.js +83 -0
- package/dist/hosts/claude-desktop.js.map +1 -0
- package/dist/index.js +58 -27
- package/dist/index.js.map +1 -1
- package/dist/sync/repo-root.d.ts +7 -0
- package/dist/sync/repo-root.d.ts.map +1 -0
- package/dist/sync/repo-root.js +24 -0
- package/dist/sync/repo-root.js.map +1 -0
- package/dist/sync/stitch-claude-md.d.ts +9 -0
- package/dist/sync/stitch-claude-md.d.ts.map +1 -0
- package/dist/sync/stitch-claude-md.js +48 -0
- package/dist/sync/stitch-claude-md.js.map +1 -0
- package/dist/ui/colors.d.ts +17 -0
- package/dist/ui/colors.d.ts.map +1 -0
- package/dist/ui/colors.js +28 -0
- package/dist/ui/colors.js.map +1 -0
- package/dist/ui/screens.d.ts +44 -0
- package/dist/ui/screens.d.ts.map +1 -0
- package/dist/ui/screens.js +135 -0
- package/dist/ui/screens.js.map +1 -0
- package/package.json +32 -7
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,13 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 0.6.0
|
|
4
|
+
|
|
5
|
+
- **Bare `unfairly` entrypoint** — one command auto-detects state and runs setup + workspace bind. Daily re-run shows a status card with team moves.
|
|
6
|
+
- **Claude Desktop MCP wiring** — new `hosts/claude-desktop.ts` patches `~/Library/Application Support/Claude/claude_desktop_config.json` (Mac) and `%APPDATA%\Claude\claude_desktop_config.json` (Win) with HTTP transport + bearer-via-env. The Mac chat app is now wired by `setup`.
|
|
7
|
+
- **CLAUDE.md auto-stitch** — `init` (and the chained init from bare entrypoint) idempotently adds `@.unfairly/CLAUDE.md` to your repo's root CLAUDE.md with a sentinel comment.
|
|
8
|
+
- **Styled presentation** — banner, step headers, glyphs, coral hand-off card. `picocolors` added as a 2 kB dep. Strips to plain ASCII when piped or `NO_COLOR` is set.
|
|
9
|
+
- Internal: new `ui/` module, `sync/repo-root.ts`, `sync/stitch-claude-md.ts`.
|
|
10
|
+
|
|
3
11
|
## 0.5.1 — 2026-05-12
|
|
4
12
|
|
|
5
13
|
- Fix: `unfairly/events` subpath now re-exports `ALLOWED_EVENT_NAMES`,
|
package/README.md
CHANGED
|
@@ -5,15 +5,24 @@ CLI + stdio MCP for syncing Unfairly vaults to local markdown.
|
|
|
5
5
|
## Quick start
|
|
6
6
|
|
|
7
7
|
```bash
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
unfairly init # interactive: paste mcp_* token from app.unfairly.ai/dashboard/setup
|
|
11
|
-
unfairly pull # fetch all accessible vaults to .unfairly/
|
|
12
|
-
unfairly status # show modified-locally count per vault
|
|
13
|
-
# edit any .md file in .unfairly/{vault}/{section}/{slug}.md
|
|
14
|
-
unfairly push # broadcast back to cloud
|
|
8
|
+
cd ~/path/to/your/repo
|
|
9
|
+
npx unfairly@latest
|
|
15
10
|
```
|
|
16
11
|
|
|
12
|
+
That's it. One command — auto-detects state and:
|
|
13
|
+
|
|
14
|
+
- pops a browser for OAuth (skipped if you already have a token)
|
|
15
|
+
- wires Claude Desktop, Claude Code, and Codex to the Unfairly MCP server
|
|
16
|
+
- writes `UNFAIRLY_MCP_TOKEN` into your shell rc
|
|
17
|
+
- binds `.unfairly/` to your repo (pulls all accessible vaults)
|
|
18
|
+
- stitches `@.unfairly/CLAUDE.md` into your repo's `CLAUDE.md`
|
|
19
|
+
|
|
20
|
+
Re-run any time inside the repo for a daily check-in card showing what your team's been up to.
|
|
21
|
+
|
|
22
|
+
### Power-user commands
|
|
23
|
+
|
|
24
|
+
`unfairly setup` (machine wiring only), `unfairly init` (workspace bind only), `unfairly pull`, `unfairly push`, `unfairly status`, `unfairly watch`, `unfairly mcp`, `unfairly login`. The bare command above delegates to these — they're available when you want fine-grained control.
|
|
25
|
+
|
|
17
26
|
## Commands
|
|
18
27
|
|
|
19
28
|
- `unfairly init` — set up `.unfairly/` in cwd, prompt for token, run first pull
|
package/dist/cmd/init.d.ts
CHANGED
|
@@ -1,10 +1,9 @@
|
|
|
1
1
|
export type InitOptions = {
|
|
2
|
-
/** mcp_* token for non-interactive runs (agents, CI, etc.) */
|
|
3
2
|
token?: string;
|
|
4
|
-
/** skip the .unfairly/ overwrite confirmation */
|
|
5
3
|
yes?: boolean;
|
|
6
|
-
/** disable browser-based OAuth and force the manual prompt fallback */
|
|
7
4
|
noBrowser?: boolean;
|
|
5
|
+
/** When chained from setup, skip our own banner (setup already drew it). */
|
|
6
|
+
assumeAuthed?: boolean;
|
|
8
7
|
};
|
|
9
8
|
export declare function runInit(opts?: InitOptions): Promise<void>;
|
|
10
9
|
//# sourceMappingURL=init.d.ts.map
|
package/dist/cmd/init.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/cmd/init.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/cmd/init.ts"],"names":[],"mappings":"AAeA,MAAM,MAAM,WAAW,GAAG;IACxB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,4EAA4E;IAC5E,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB,CAAC;AAMF,wBAAsB,OAAO,CAAC,IAAI,GAAE,WAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,CAuHnE"}
|
package/dist/cmd/init.js
CHANGED
|
@@ -7,6 +7,9 @@ import { emptyManifest, writeManifest } from "../sync/manifest.js";
|
|
|
7
7
|
import { getToken, setToken } from "../sync/credentials.js";
|
|
8
8
|
import { browserAuthFlow } from "../auth/browser-flow.js";
|
|
9
9
|
import { runPull } from "./pull.js";
|
|
10
|
+
import { findRepoRoot } from "../sync/repo-root.js";
|
|
11
|
+
import { stitchClaudeMd } from "../sync/stitch-claude-md.js";
|
|
12
|
+
import { banner, stepHeader, result, divider, defaultOpts } from "../ui/screens.js";
|
|
10
13
|
const DEFAULT_API = "https://app.unfairly.ai";
|
|
11
14
|
function isTty() {
|
|
12
15
|
return Boolean(process.stdin.isTTY);
|
|
@@ -14,22 +17,26 @@ function isTty() {
|
|
|
14
17
|
export async function runInit(opts = {}) {
|
|
15
18
|
const cwd = process.cwd();
|
|
16
19
|
const target = path.join(cwd, ".unfairly");
|
|
20
|
+
const apiUrl = process.env.UNFAIRLY_API_URL ?? DEFAULT_API;
|
|
21
|
+
const ui = defaultOpts();
|
|
22
|
+
const write = (s) => process.stderr.write(`${s}\n`);
|
|
23
|
+
if (!opts.assumeAuthed) {
|
|
24
|
+
write(banner(ui));
|
|
25
|
+
write("");
|
|
26
|
+
}
|
|
17
27
|
// Confirm overwrite if .unfairly/ already exists
|
|
18
28
|
try {
|
|
19
29
|
await fs.access(target);
|
|
20
|
-
if (opts.yes) {
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
process.exit(1);
|
|
26
|
-
}
|
|
27
|
-
else {
|
|
30
|
+
if (!opts.yes) {
|
|
31
|
+
if (!isTty()) {
|
|
32
|
+
write(result("err", ".unfairly/ already exists — re-run with --yes to overwrite (non-TTY).", ui));
|
|
33
|
+
process.exit(1);
|
|
34
|
+
}
|
|
28
35
|
const rl = readline.createInterface({ input, output });
|
|
29
36
|
const ans = await rl.question(`.unfairly/ already exists. Re-initialize? [y/N] `);
|
|
30
37
|
rl.close();
|
|
31
38
|
if (ans.trim().toLowerCase() !== "y") {
|
|
32
|
-
|
|
39
|
+
write(result("skip", "aborted", ui));
|
|
33
40
|
return;
|
|
34
41
|
}
|
|
35
42
|
}
|
|
@@ -37,61 +44,55 @@ export async function runInit(opts = {}) {
|
|
|
37
44
|
catch {
|
|
38
45
|
// didn't exist; fine
|
|
39
46
|
}
|
|
40
|
-
//
|
|
41
|
-
// 1. --token flag (agents, CI, scripts)
|
|
42
|
-
// 2. UNFAIRLY_TOKEN env (persisted shell config)
|
|
43
|
-
// 3. keychain / ~/.unfairly/credentials (last successful login)
|
|
44
|
-
// 4. browser-based OAuth (default in TTY mode — no copy/paste)
|
|
45
|
-
// 5. interactive prompt (fallback when --no-browser)
|
|
46
|
-
const apiUrl = process.env.UNFAIRLY_API_URL ?? DEFAULT_API;
|
|
47
|
+
// Resolve token (flag → env → keychain → browser → paste)
|
|
47
48
|
let token = opts.token ?? process.env.UNFAIRLY_TOKEN ?? (await getToken());
|
|
48
49
|
if (!token) {
|
|
49
50
|
if (!isTty()) {
|
|
50
|
-
|
|
51
|
+
write(result("err", "No token. Pass --token or set UNFAIRLY_TOKEN (non-TTY).", ui));
|
|
51
52
|
process.exit(1);
|
|
52
53
|
}
|
|
53
54
|
if (!opts.noBrowser) {
|
|
54
|
-
console.log("Authorize this CLI in your browser (already signed in → one click).");
|
|
55
55
|
const fromBrowser = await browserAuthFlow(apiUrl);
|
|
56
|
-
if (fromBrowser)
|
|
56
|
+
if (fromBrowser)
|
|
57
57
|
token = fromBrowser;
|
|
58
|
-
console.log("Authorized.");
|
|
59
|
-
}
|
|
60
|
-
else {
|
|
61
|
-
console.log("Browser flow timed out or was cancelled. Falling back to manual paste.");
|
|
62
|
-
}
|
|
63
58
|
}
|
|
64
59
|
if (!token) {
|
|
65
60
|
const rl = readline.createInterface({ input, output });
|
|
66
|
-
console.log("Get a token at https://app.unfairly.ai/dashboard/setup (click 'Issue token').");
|
|
67
61
|
token = (await rl.question("Paste mcp_* token: ")).trim();
|
|
68
62
|
rl.close();
|
|
69
63
|
}
|
|
70
64
|
}
|
|
71
65
|
if (!token || !token.startsWith("mcp_")) {
|
|
72
|
-
|
|
66
|
+
write(result("err", "Token must start with mcp_", ui));
|
|
73
67
|
process.exit(1);
|
|
74
68
|
}
|
|
75
69
|
await setToken(token);
|
|
76
|
-
// Verify
|
|
70
|
+
// Verify + list vaults
|
|
77
71
|
const client = new SyncClient(apiUrl, token);
|
|
72
|
+
write(stepHeader(1, 3, "VAULT INVENTORY", ui));
|
|
78
73
|
let status;
|
|
79
74
|
try {
|
|
80
75
|
status = await client.status();
|
|
81
76
|
}
|
|
82
77
|
catch (err) {
|
|
83
|
-
|
|
78
|
+
write(result("err", `failed to reach ${apiUrl}/api/sync/status — ${err.message}`, ui));
|
|
84
79
|
process.exit(1);
|
|
85
80
|
}
|
|
86
81
|
if (status.vaults.length === 0) {
|
|
87
|
-
|
|
82
|
+
write(result("err", "no accessible vaults. Ask an admin to grant you access.", ui));
|
|
88
83
|
process.exit(1);
|
|
89
84
|
}
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
85
|
+
for (const v of status.vaults.slice(0, 6)) {
|
|
86
|
+
write(result("ok", `${v.name.padEnd(20)} · ${v.doc_count} docs${v.track_in_git ? "" : " (gitignored)"}`, ui));
|
|
87
|
+
}
|
|
88
|
+
if (status.vaults.length > 6) {
|
|
89
|
+
const remaining = status.vaults.length - 6;
|
|
90
|
+
const totalDocs = status.vaults.reduce((s, v) => s + v.doc_count, 0);
|
|
91
|
+
write(result("skip", `… ${remaining} more vaults · ${totalDocs} docs total`, ui));
|
|
93
92
|
}
|
|
94
|
-
|
|
93
|
+
write("");
|
|
94
|
+
// Seed manifest + pull
|
|
95
|
+
write(stepHeader(2, 3, "PULL", ui));
|
|
95
96
|
await fs.mkdir(target, { recursive: true });
|
|
96
97
|
const manifest = emptyManifest(apiUrl);
|
|
97
98
|
for (const v of status.vaults) {
|
|
@@ -106,17 +107,32 @@ export async function runInit(opts = {}) {
|
|
|
106
107
|
};
|
|
107
108
|
}
|
|
108
109
|
await writeManifest(cwd, manifest);
|
|
109
|
-
// First pull (all vaults). runPull writes .unfairly/CLAUDE.md and .gitignore
|
|
110
|
-
// at the end, so we don't need a second writeAutoloader call here.
|
|
111
110
|
await runPull(undefined);
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
111
|
+
write(result("ok", "wrote .unfairly/CLAUDE.md (auto-loader for Claude Code)", ui));
|
|
112
|
+
write("");
|
|
113
|
+
// Stitch repo's root CLAUDE.md
|
|
114
|
+
write(stepHeader(3, 3, "STITCH", ui));
|
|
115
|
+
const repoRoot = await findRepoRoot(cwd);
|
|
116
|
+
if (!repoRoot) {
|
|
117
|
+
write(result("skip", "not in a git repo — skipping CLAUDE.md stitch", ui));
|
|
118
|
+
}
|
|
119
|
+
else {
|
|
120
|
+
const stitch = await stitchClaudeMd(repoRoot);
|
|
121
|
+
if (stitch.action === "created") {
|
|
122
|
+
write(result("ok", `created ${stitch.path} with @.unfairly/CLAUDE.md`, ui));
|
|
123
|
+
}
|
|
124
|
+
else if (stitch.action === "appended") {
|
|
125
|
+
write(result("ok", `appended @.unfairly/CLAUDE.md to ${stitch.path}`, ui));
|
|
126
|
+
}
|
|
127
|
+
else if (stitch.action === "noop") {
|
|
128
|
+
write(result("skip", `${stitch.path} already references the autoloader`, ui));
|
|
129
|
+
}
|
|
130
|
+
else if (stitch.action === "error") {
|
|
131
|
+
write(result("warn", `couldn't stitch ${stitch.path} — ${stitch.message}`, ui));
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
write("");
|
|
135
|
+
write(divider(ui));
|
|
136
|
+
write("");
|
|
121
137
|
}
|
|
122
138
|
//# sourceMappingURL=init.js.map
|
package/dist/cmd/init.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/cmd/init.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,IAAI,EAAE,EAAE,MAAM,SAAS,CAAC;AACzC,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,QAAQ,MAAM,wBAAwB,CAAC;AAC9C,OAAO,EAAE,KAAK,IAAI,KAAK,EAAE,MAAM,IAAI,MAAM,EAAE,MAAM,cAAc,CAAC;AAChE,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACnE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAC5D,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/cmd/init.ts"],"names":[],"mappings":"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"}
|
package/dist/cmd/pull.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pull.d.ts","sourceRoot":"","sources":["../../src/cmd/pull.ts"],"names":[],"mappings":"AA2BA,wBAAsB,OAAO,CAAC,QAAQ,CAAC,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"pull.d.ts","sourceRoot":"","sources":["../../src/cmd/pull.ts"],"names":[],"mappings":"AA2BA,wBAAsB,OAAO,CAAC,QAAQ,CAAC,EAAE,MAAM,iBA0G9C"}
|
package/dist/cmd/pull.js
CHANGED
|
@@ -52,8 +52,22 @@ export async function runPull(vaultArg) {
|
|
|
52
52
|
let upserts = 0;
|
|
53
53
|
let deletes = 0;
|
|
54
54
|
let renames = 0;
|
|
55
|
+
let skipped = 0;
|
|
55
56
|
for (const doc of result.docs) {
|
|
56
|
-
|
|
57
|
+
let file;
|
|
58
|
+
try {
|
|
59
|
+
file = buildFileFromServer(doc, vaultRoot);
|
|
60
|
+
}
|
|
61
|
+
catch (err) {
|
|
62
|
+
// One bad doc shouldn't kill the whole pull. Most commonly this is
|
|
63
|
+
// gray-matter/js-yaml choking on body content that the YAML
|
|
64
|
+
// serializer mis-parses (e.g. `*Foo` interpreted as an alias). The
|
|
65
|
+
// doc stays on the server; the user can re-pull after the upstream
|
|
66
|
+
// doc is sanitized.
|
|
67
|
+
process.stderr.write(` · skipped ${doc.slug} — ${err.message.split("\n")[0]}\n`);
|
|
68
|
+
skipped++;
|
|
69
|
+
continue;
|
|
70
|
+
}
|
|
57
71
|
const relPath = file.path;
|
|
58
72
|
const absPath = path.join(cwd, ".unfairly", relPath);
|
|
59
73
|
// Detect rename: same id, different stored path
|
|
@@ -93,7 +107,7 @@ export async function runPull(vaultArg) {
|
|
|
93
107
|
deletes++;
|
|
94
108
|
}
|
|
95
109
|
v.last_pulled_at = new Date().toISOString();
|
|
96
|
-
console.log(`+${upserts} -${deletes}${renames ? ` ~${renames}` : ""}`);
|
|
110
|
+
console.log(`+${upserts} -${deletes}${renames ? ` ~${renames}` : ""}${skipped ? ` (skipped ${skipped})` : ""}`);
|
|
97
111
|
}
|
|
98
112
|
await writeManifest(cwd, manifest);
|
|
99
113
|
// Regenerate .unfairly/CLAUDE.md autoloader + .gitignore from the latest mirror.
|
package/dist/cmd/pull.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pull.js","sourceRoot":"","sources":["../../src/cmd/pull.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"pull.js","sourceRoot":"","sources":["../../src/cmd/pull.ts"],"names":[],"mappings":"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"}
|
package/dist/cmd/setup.d.ts
CHANGED
|
@@ -1,20 +1,20 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
export declare function runSetup(): Promise<
|
|
1
|
+
import { type CodexResult } from "../hosts/codex.js";
|
|
2
|
+
import { type ClaudeCodeResult } from "../hosts/claude-code.js";
|
|
3
|
+
import { type ClaudeDesktopResult } from "../hosts/claude-desktop.js";
|
|
4
|
+
export type SetupOptions = {
|
|
5
|
+
/** When the caller (bare entrypoint) is in a repo, chain init after verify. */
|
|
6
|
+
chainInit?: boolean;
|
|
7
|
+
/** Skip the workspace-bind confirmation prompt. */
|
|
8
|
+
yes?: boolean;
|
|
9
|
+
};
|
|
10
|
+
export type SetupOutcome = {
|
|
11
|
+
ok: boolean;
|
|
12
|
+
token: string | null;
|
|
13
|
+
hosts: {
|
|
14
|
+
claudeDesktop: ClaudeDesktopResult;
|
|
15
|
+
claudeCode: ClaudeCodeResult;
|
|
16
|
+
codex: CodexResult;
|
|
17
|
+
};
|
|
18
|
+
};
|
|
19
|
+
export declare function runSetup(opts?: SetupOptions): Promise<SetupOutcome>;
|
|
20
20
|
//# sourceMappingURL=setup.d.ts.map
|
package/dist/cmd/setup.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"setup.d.ts","sourceRoot":"","sources":["../../src/cmd/setup.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"setup.d.ts","sourceRoot":"","sources":["../../src/cmd/setup.ts"],"names":[],"mappings":"AAGA,OAAO,EAAkB,KAAK,WAAW,EAAE,MAAM,mBAAmB,CAAC;AACrE,OAAO,EAAuB,KAAK,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AACrF,OAAO,EAA0B,KAAK,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AAM9F,MAAM,MAAM,YAAY,GAAG;IACzB,+EAA+E;IAC/E,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,mDAAmD;IACnD,GAAG,CAAC,EAAE,OAAO,CAAC;CACf,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG;IACzB,EAAE,EAAE,OAAO,CAAC;IACZ,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,KAAK,EAAE;QACL,aAAa,EAAE,mBAAmB,CAAC;QACnC,UAAU,EAAE,gBAAgB,CAAC;QAC7B,KAAK,EAAE,WAAW,CAAC;KACpB,CAAC;CACH,CAAC;AAEF,wBAAsB,QAAQ,CAAC,IAAI,GAAE,YAAiB,GAAG,OAAO,CAAC,YAAY,CAAC,CA+I7E"}
|