@nocoo/otter 1.2.0 → 1.3.4
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/cli.d.ts.map +1 -1
- package/dist/cli.js +26 -28
- package/dist/cli.js.map +1 -1
- package/dist/collectors/applications.d.ts +1 -1
- package/dist/collectors/applications.d.ts.map +1 -1
- package/dist/collectors/applications.js +5 -3
- package/dist/collectors/applications.js.map +1 -1
- package/dist/collectors/base.d.ts +1 -1
- package/dist/collectors/base.d.ts.map +1 -1
- package/dist/collectors/base.js +5 -3
- package/dist/collectors/base.js.map +1 -1
- package/dist/collectors/claude-config.d.ts +1 -1
- package/dist/collectors/claude-config.d.ts.map +1 -1
- package/dist/collectors/claude-config.js +28 -13
- package/dist/collectors/claude-config.js.map +1 -1
- package/dist/collectors/cloud-cli.d.ts +1 -1
- package/dist/collectors/cloud-cli.d.ts.map +1 -1
- package/dist/collectors/cloud-cli.js +9 -6
- package/dist/collectors/cloud-cli.js.map +1 -1
- package/dist/collectors/dev-toolchain.d.ts +1 -1
- package/dist/collectors/dev-toolchain.d.ts.map +1 -1
- package/dist/collectors/dev-toolchain.js +39 -23
- package/dist/collectors/dev-toolchain.js.map +1 -1
- package/dist/collectors/docker.d.ts +1 -1
- package/dist/collectors/docker.d.ts.map +1 -1
- package/dist/collectors/docker.js +6 -6
- package/dist/collectors/docker.js.map +1 -1
- package/dist/collectors/fonts.d.ts +1 -1
- package/dist/collectors/fonts.d.ts.map +1 -1
- package/dist/collectors/fonts.js +3 -2
- package/dist/collectors/fonts.js.map +1 -1
- package/dist/collectors/homebrew.d.ts +1 -1
- package/dist/collectors/homebrew.d.ts.map +1 -1
- package/dist/collectors/homebrew.js +3 -2
- package/dist/collectors/homebrew.js.map +1 -1
- package/dist/collectors/index.d.ts +8 -8
- package/dist/collectors/index.d.ts.map +1 -1
- package/dist/collectors/index.js +18 -18
- package/dist/collectors/index.js.map +1 -1
- package/dist/collectors/launch-agents.d.ts +1 -1
- package/dist/collectors/launch-agents.d.ts.map +1 -1
- package/dist/collectors/launch-agents.js +2 -2
- package/dist/collectors/launch-agents.js.map +1 -1
- package/dist/collectors/macos-defaults.d.ts +1 -1
- package/dist/collectors/macos-defaults.d.ts.map +1 -1
- package/dist/collectors/macos-defaults.js +3 -1
- package/dist/collectors/macos-defaults.js.map +1 -1
- package/dist/collectors/opencode-config.d.ts +1 -1
- package/dist/collectors/opencode-config.d.ts.map +1 -1
- package/dist/collectors/opencode-config.js +13 -7
- package/dist/collectors/opencode-config.js.map +1 -1
- package/dist/collectors/shell-config.d.ts +1 -1
- package/dist/collectors/shell-config.d.ts.map +1 -1
- package/dist/collectors/shell-config.js +8 -3
- package/dist/collectors/shell-config.js.map +1 -1
- package/dist/collectors/vscode.d.ts +1 -1
- package/dist/collectors/vscode.d.ts.map +1 -1
- package/dist/collectors/vscode.js +13 -5
- package/dist/collectors/vscode.js.map +1 -1
- package/dist/commands/login.d.ts.map +1 -1
- package/dist/commands/login.js +4 -7
- package/dist/commands/login.js.map +1 -1
- package/dist/commands/scan.d.ts.map +1 -1
- package/dist/commands/scan.js +2 -3
- package/dist/commands/scan.js.map +1 -1
- package/dist/commands/snapshot.d.ts +2 -2
- package/dist/commands/snapshot.d.ts.map +1 -1
- package/dist/commands/snapshot.js +11 -12
- package/dist/commands/snapshot.js.map +1 -1
- package/dist/config/manager.js +3 -3
- package/dist/config/manager.js.map +1 -1
- package/dist/index.d.ts +3 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -3
- package/dist/index.js.map +1 -1
- package/dist/snapshot/builder.d.ts.map +1 -1
- package/dist/snapshot/builder.js +4 -3
- package/dist/snapshot/builder.js.map +1 -1
- package/dist/storage/local.d.ts.map +1 -1
- package/dist/storage/local.js +7 -9
- package/dist/storage/local.js.map +1 -1
- package/dist/ui.d.ts +2 -2
- package/dist/ui.d.ts.map +1 -1
- package/dist/ui.js +8 -17
- package/dist/ui.js.map +1 -1
- package/dist/uploader/icons-server.d.ts.map +1 -1
- package/dist/uploader/icons-server.js +5 -6
- package/dist/uploader/icons-server.js.map +1 -1
- package/dist/utils/icons.d.ts.map +1 -1
- package/dist/utils/icons.js +25 -16
- package/dist/utils/icons.js.map +1 -1
- package/dist/utils/redact.d.ts.map +1 -1
- package/dist/utils/redact.js.map +1 -1
- package/package.json +1 -1
|
@@ -2,6 +2,14 @@ import { exec } from "node:child_process";
|
|
|
2
2
|
import { promisify } from "node:util";
|
|
3
3
|
import { BaseCollector } from "./base.js";
|
|
4
4
|
const execAsync = promisify(exec);
|
|
5
|
+
const FNM_VERSION_PATTERN = /v(\d+\.\d+\.\d+)/;
|
|
6
|
+
const DASHES_ONLY_LINE = /^-+$/;
|
|
7
|
+
const VOLTA_TOOL_LINE = /^(node|npm|yarn|pnpm)\s+/;
|
|
8
|
+
const WHITESPACE_SPLIT = /\s+/;
|
|
9
|
+
const BUN_TREE_PREFIX = /^[├└─\s]+/;
|
|
10
|
+
const RUSTUP_ANNOTATION = /\s*\((?:active(?:,\s*)?)?default\)/;
|
|
11
|
+
const CARGO_INSTALL_LINE = /^([^\s]+) v([^:]+):?$/;
|
|
12
|
+
const GO_VERSION_PATTERN = /go version go([^\s]+)/;
|
|
5
13
|
function lines(output) {
|
|
6
14
|
return output
|
|
7
15
|
.split("\n")
|
|
@@ -9,7 +17,7 @@ function lines(output) {
|
|
|
9
17
|
.filter((line) => line.length > 0);
|
|
10
18
|
}
|
|
11
19
|
function parseFnmVersion(line) {
|
|
12
|
-
const versionMatch = line.match(
|
|
20
|
+
const versionMatch = line.match(FNM_VERSION_PATTERN);
|
|
13
21
|
return versionMatch?.[1] ?? null;
|
|
14
22
|
}
|
|
15
23
|
function parseInstalledRustToolchains(output) {
|
|
@@ -25,7 +33,7 @@ function parseInstalledRustToolchains(output) {
|
|
|
25
33
|
break;
|
|
26
34
|
continue;
|
|
27
35
|
}
|
|
28
|
-
if (
|
|
36
|
+
if (DASHES_ONLY_LINE.test(line))
|
|
29
37
|
continue;
|
|
30
38
|
if (line.endsWith(":"))
|
|
31
39
|
break;
|
|
@@ -41,7 +49,7 @@ export class DevToolchainCollector extends BaseCollector {
|
|
|
41
49
|
const { stdout } = await execAsync(cmd, { shell: "/bin/bash" });
|
|
42
50
|
return stdout;
|
|
43
51
|
};
|
|
44
|
-
|
|
52
|
+
collect() {
|
|
45
53
|
return this.timed(async (result) => {
|
|
46
54
|
result.lists.push(...(await this.collectFnm(result)));
|
|
47
55
|
result.lists.push(...(await this.collectVolta(result)));
|
|
@@ -57,8 +65,7 @@ export class DevToolchainCollector extends BaseCollector {
|
|
|
57
65
|
async collectFnm(result) {
|
|
58
66
|
try {
|
|
59
67
|
const output = await this._execCommand("fnm list");
|
|
60
|
-
return lines(output)
|
|
61
|
-
.flatMap((line) => {
|
|
68
|
+
return lines(output).flatMap((line) => {
|
|
62
69
|
const version = parseFnmVersion(line);
|
|
63
70
|
if (!version)
|
|
64
71
|
return [];
|
|
@@ -84,14 +91,20 @@ export class DevToolchainCollector extends BaseCollector {
|
|
|
84
91
|
try {
|
|
85
92
|
const output = await this._execCommand("volta list all");
|
|
86
93
|
return lines(output)
|
|
87
|
-
.filter((line) =>
|
|
88
|
-
.
|
|
89
|
-
const
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
94
|
+
.filter((line) => VOLTA_TOOL_LINE.test(line))
|
|
95
|
+
.flatMap((line) => {
|
|
96
|
+
const parts = line.split(WHITESPACE_SPLIT);
|
|
97
|
+
const tool = parts[0];
|
|
98
|
+
const version = parts[1];
|
|
99
|
+
if (!tool)
|
|
100
|
+
return [];
|
|
101
|
+
return [
|
|
102
|
+
{
|
|
103
|
+
name: tool,
|
|
104
|
+
...(version ? { version } : {}),
|
|
105
|
+
meta: { type: "tool-version", manager: "volta" },
|
|
106
|
+
},
|
|
107
|
+
];
|
|
95
108
|
});
|
|
96
109
|
}
|
|
97
110
|
catch (err) {
|
|
@@ -120,7 +133,7 @@ export class DevToolchainCollector extends BaseCollector {
|
|
|
120
133
|
try {
|
|
121
134
|
const output = await this._execCommand("bun pm ls -g");
|
|
122
135
|
return lines(output)
|
|
123
|
-
.map((line) => line.replace(
|
|
136
|
+
.map((line) => line.replace(BUN_TREE_PREFIX, "").trim())
|
|
124
137
|
.filter((line) => line.includes("@"))
|
|
125
138
|
.map((line) => {
|
|
126
139
|
const atIndex = line.lastIndexOf("@");
|
|
@@ -142,11 +155,10 @@ export class DevToolchainCollector extends BaseCollector {
|
|
|
142
155
|
async collectRustup(result) {
|
|
143
156
|
try {
|
|
144
157
|
const output = await this._execCommand("rustup show");
|
|
145
|
-
return parseInstalledRustToolchains(output)
|
|
146
|
-
.map((line) => {
|
|
158
|
+
return parseInstalledRustToolchains(output).map((line) => {
|
|
147
159
|
const isDefault = line.includes("default");
|
|
148
160
|
const isActive = line.includes("active");
|
|
149
|
-
const name = line.replace(
|
|
161
|
+
const name = line.replace(RUSTUP_ANNOTATION, "").trim();
|
|
150
162
|
return {
|
|
151
163
|
name,
|
|
152
164
|
meta: {
|
|
@@ -169,12 +181,16 @@ export class DevToolchainCollector extends BaseCollector {
|
|
|
169
181
|
for (const line of lines(output)) {
|
|
170
182
|
if (!line.includes(" v"))
|
|
171
183
|
continue;
|
|
172
|
-
const match = line.match(
|
|
184
|
+
const match = line.match(CARGO_INSTALL_LINE);
|
|
173
185
|
if (!match)
|
|
174
186
|
continue;
|
|
187
|
+
const matchedName = match[1];
|
|
188
|
+
const matchedVersion = match[2];
|
|
189
|
+
if (!matchedName)
|
|
190
|
+
continue;
|
|
175
191
|
items.push({
|
|
176
|
-
name:
|
|
177
|
-
version:
|
|
192
|
+
name: matchedName,
|
|
193
|
+
...(matchedVersion ? { version: matchedVersion } : {}),
|
|
178
194
|
meta: { type: "cargo-global" },
|
|
179
195
|
});
|
|
180
196
|
}
|
|
@@ -216,8 +232,8 @@ export class DevToolchainCollector extends BaseCollector {
|
|
|
216
232
|
async collectGo(result) {
|
|
217
233
|
try {
|
|
218
234
|
const output = await this._execCommand("go version");
|
|
219
|
-
const match = output.match(
|
|
220
|
-
if (!match)
|
|
235
|
+
const match = output.match(GO_VERSION_PATTERN);
|
|
236
|
+
if (!match?.[1])
|
|
221
237
|
return [];
|
|
222
238
|
return [
|
|
223
239
|
{
|
|
@@ -245,7 +261,7 @@ export class DevToolchainCollector extends BaseCollector {
|
|
|
245
261
|
}
|
|
246
262
|
shouldIgnoreBunGlobalError(err) {
|
|
247
263
|
const message = err.message;
|
|
248
|
-
return (message.includes(
|
|
264
|
+
return (message.includes("No package.json was found for directory") ||
|
|
249
265
|
message.includes('Run "bun init" to initialize a project'));
|
|
250
266
|
}
|
|
251
267
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dev-toolchain.js","sourceRoot":"","sources":["../../src/collectors/dev-toolchain.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAC;AAC1C,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"dev-toolchain.js","sourceRoot":"","sources":["../../src/collectors/dev-toolchain.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { BaseCollector } from "./base.js";
|
|
2
1
|
import type { CollectorCategory, CollectorResult } from "@otter/core";
|
|
2
|
+
import { BaseCollector } from "./base.js";
|
|
3
3
|
export declare class DockerCollector extends BaseCollector {
|
|
4
4
|
readonly id = "docker";
|
|
5
5
|
readonly label = "Docker Configuration";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"docker.d.ts","sourceRoot":"","sources":["../../src/collectors/docker.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"docker.d.ts","sourceRoot":"","sources":["../../src/collectors/docker.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAqB,iBAAiB,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AACzF,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAoC1C,qBAAa,eAAgB,SAAQ,aAAa;IAChD,QAAQ,CAAC,EAAE,YAAY;IACvB,QAAQ,CAAC,KAAK,0BAA0B;IACxC,QAAQ,CAAC,QAAQ,EAAE,iBAAiB,CAAiB;IAErD,YAAY,GAAU,KAAK,MAAM,KAAG,OAAO,CAAC,MAAM,CAAC,CAGjD;IAEF,OAAO,IAAI,OAAO,CAAC,eAAe,CAAC;CAiBpC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { join } from "node:path";
|
|
2
1
|
import { exec } from "node:child_process";
|
|
2
|
+
import { join } from "node:path";
|
|
3
3
|
import { promisify } from "node:util";
|
|
4
4
|
import { BaseCollector } from "./base.js";
|
|
5
5
|
const execAsync = promisify(exec);
|
|
@@ -19,9 +19,7 @@ function parseDockerContexts(output) {
|
|
|
19
19
|
meta: {
|
|
20
20
|
type: "docker-context",
|
|
21
21
|
...(parsed.Current ? { current: "true" } : {}),
|
|
22
|
-
...(parsed.DockerEndpoint
|
|
23
|
-
? { endpoint: parsed.DockerEndpoint }
|
|
24
|
-
: {}),
|
|
22
|
+
...(parsed.DockerEndpoint ? { endpoint: parsed.DockerEndpoint } : {}),
|
|
25
23
|
},
|
|
26
24
|
},
|
|
27
25
|
];
|
|
@@ -39,9 +37,11 @@ export class DockerCollector extends BaseCollector {
|
|
|
39
37
|
const { stdout } = await execAsync(cmd);
|
|
40
38
|
return stdout;
|
|
41
39
|
};
|
|
42
|
-
|
|
40
|
+
collect() {
|
|
43
41
|
return this.timed(async (result) => {
|
|
44
|
-
const config = await this.safeReadFile(join(this.homeDir, ".docker", "config.json"), result, {
|
|
42
|
+
const config = await this.safeReadFile(join(this.homeDir, ".docker", "config.json"), result, {
|
|
43
|
+
redact: true,
|
|
44
|
+
});
|
|
45
45
|
if (config)
|
|
46
46
|
result.files.push(config);
|
|
47
47
|
try {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"docker.js","sourceRoot":"","sources":["../../src/collectors/docker.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"docker.js","sourceRoot":"","sources":["../../src/collectors/docker.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAC;AAC1C,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAEtC,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAE1C,MAAM,SAAS,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;AAElC,SAAS,mBAAmB,CAAC,MAAc;IACzC,OAAO,MAAM;SACV,KAAK,CAAC,IAAI,CAAC;SACX,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;SAC1B,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;SACjC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;QAChB,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAO7B,CAAC;YACF,IAAI,CAAC,MAAM,CAAC,IAAI;gBAAE,OAAO,EAAE,CAAC;YAC5B,OAAO;gBACL;oBACE,IAAI,EAAE,MAAM,CAAC,IAAI;oBACjB,IAAI,EAAE;wBACJ,IAAI,EAAE,gBAAgB;wBACtB,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;wBAC9C,GAAG,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;qBACtE;iBACF;aACF,CAAC;QACJ,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,EAAE,CAAC;QACZ,CAAC;IACH,CAAC,CAAC,CAAC;AACP,CAAC;AAED,MAAM,OAAO,eAAgB,SAAQ,aAAa;IACvC,EAAE,GAAG,QAAQ,CAAC;IACd,KAAK,GAAG,sBAAsB,CAAC;IAC/B,QAAQ,GAAsB,aAAa,CAAC;IAErD,YAAY,GAAG,KAAK,EAAE,GAAW,EAAmB,EAAE;QACpD,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,SAAS,CAAC,GAAG,CAAC,CAAC;QACxC,OAAO,MAAM,CAAC;IAChB,CAAC,CAAC;IAEF,OAAO;QACL,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE;YACjC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,SAAS,EAAE,aAAa,CAAC,EAAE,MAAM,EAAE;gBAC3F,MAAM,EAAE,IAAI;aACb,CAAC,CAAC;YACH,IAAI,MAAM;gBAAE,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAEtC,IAAI,CAAC;gBACH,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,iCAAiC,CAAC,CAAC;gBAC1E,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,mBAAmB,CAAC,MAAM,CAAC,CAAC,CAAC;YACpD,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,MAAM,CAAC,MAAM,CAAC,IAAI,CAChB,oDAAqD,GAAa,CAAC,OAAO,EAAE,CAC7E,CAAC;YACJ,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;CACF"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { BaseCollector } from "./base.js";
|
|
2
1
|
import type { CollectorCategory, CollectorResult } from "@otter/core";
|
|
2
|
+
import { BaseCollector } from "./base.js";
|
|
3
3
|
export declare class FontsCollector extends BaseCollector {
|
|
4
4
|
readonly id = "fonts";
|
|
5
5
|
readonly label = "Installed Fonts";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fonts.d.ts","sourceRoot":"","sources":["../../src/collectors/fonts.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"fonts.d.ts","sourceRoot":"","sources":["../../src/collectors/fonts.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAqB,iBAAiB,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AACzF,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAI1C,qBAAa,cAAe,SAAQ,aAAa;IAC/C,QAAQ,CAAC,EAAE,WAAW;IACtB,QAAQ,CAAC,KAAK,qBAAqB;IACnC,QAAQ,CAAC,QAAQ,EAAE,iBAAiB,CAAiB;IAErD,OAAO,IAAI,OAAO,CAAC,eAAe,CAAC;CA2BpC"}
|
package/dist/collectors/fonts.js
CHANGED
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
import { readdir } from "node:fs/promises";
|
|
2
2
|
import { extname, join } from "node:path";
|
|
3
3
|
import { BaseCollector } from "./base.js";
|
|
4
|
+
const LEADING_DOT = /^\./;
|
|
4
5
|
export class FontsCollector extends BaseCollector {
|
|
5
6
|
id = "fonts";
|
|
6
7
|
label = "Installed Fonts";
|
|
7
8
|
category = "environment";
|
|
8
|
-
|
|
9
|
+
collect() {
|
|
9
10
|
return this.timed(async (result) => {
|
|
10
11
|
const fontsDir = join(this.homeDir, "Library", "Fonts");
|
|
11
12
|
try {
|
|
@@ -18,7 +19,7 @@ export class FontsCollector extends BaseCollector {
|
|
|
18
19
|
name: entry.name.slice(0, ext ? -ext.length : undefined),
|
|
19
20
|
meta: {
|
|
20
21
|
type: "font",
|
|
21
|
-
format: ext.replace(
|
|
22
|
+
format: ext.replace(LEADING_DOT, "").toLowerCase() || "unknown",
|
|
22
23
|
},
|
|
23
24
|
};
|
|
24
25
|
})
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fonts.js","sourceRoot":"","sources":["../../src/collectors/fonts.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAC3C,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"fonts.js","sourceRoot":"","sources":["../../src/collectors/fonts.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAC3C,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAE1C,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAE1C,MAAM,WAAW,GAAG,KAAK,CAAC;AAE1B,MAAM,OAAO,cAAe,SAAQ,aAAa;IACtC,EAAE,GAAG,OAAO,CAAC;IACb,KAAK,GAAG,iBAAiB,CAAC;IAC1B,QAAQ,GAAsB,aAAa,CAAC;IAErD,OAAO;QACL,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE;YACjC,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;YACxD,IAAI,CAAC;gBACH,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,QAAQ,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;gBACjE,MAAM,KAAK,GAAwB,OAAO;qBACvC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;qBACjC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;oBACb,MAAM,GAAG,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;oBAChC,OAAO;wBACL,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC;wBACxD,IAAI,EAAE;4BACJ,IAAI,EAAE,MAAM;4BACZ,MAAM,EAAE,GAAG,CAAC,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC,WAAW,EAAE,IAAI,SAAS;yBAChE;qBACF,CAAC;gBACJ,CAAC,CAAC;qBACD,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;gBAEhD,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC;YAC9B,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,IAAK,GAA6B,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;oBACrD,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,mCAAoC,GAAa,CAAC,OAAO,EAAE,CAAC,CAAC;gBAClF,CAAC;YACH,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;CACF"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { BaseCollector } from "./base.js";
|
|
2
1
|
import type { CollectorCategory, CollectorResult } from "@otter/core";
|
|
2
|
+
import { BaseCollector } from "./base.js";
|
|
3
3
|
/**
|
|
4
4
|
* Collects installed Homebrew packages (formulae + casks).
|
|
5
5
|
* List-only: no binary content is collected.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"homebrew.d.ts","sourceRoot":"","sources":["../../src/collectors/homebrew.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"homebrew.d.ts","sourceRoot":"","sources":["../../src/collectors/homebrew.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAqB,iBAAiB,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AACzF,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAkD1C;;;GAGG;AACH,qBAAa,iBAAkB,SAAQ,aAAa;IAClD,QAAQ,CAAC,EAAE,cAAc;IACzB,QAAQ,CAAC,KAAK,uBAAuB;IACrC,QAAQ,CAAC,QAAQ,EAAE,iBAAiB,CAAiB;IAErD,4EAA4E;IAC5E,YAAY,GAAU,KAAK,MAAM,KAAG,OAAO,CAAC,MAAM,CAAC,CAGjD;IAEF,OAAO,IAAI,OAAO,CAAC,eAAe,CAAC;YA4BrB,WAAW;YAeX,kBAAkB;CAWjC"}
|
|
@@ -2,13 +2,14 @@ import { exec } from "node:child_process";
|
|
|
2
2
|
import { promisify } from "node:util";
|
|
3
3
|
import { BaseCollector } from "./base.js";
|
|
4
4
|
const execAsync = promisify(exec);
|
|
5
|
+
const WHITESPACE_SPLIT = /\s+/;
|
|
5
6
|
function parseVersionedItems(output, type) {
|
|
6
7
|
return output
|
|
7
8
|
.split("\n")
|
|
8
9
|
.map((line) => line.trim())
|
|
9
10
|
.filter((line) => line.length > 0)
|
|
10
11
|
.map((line) => {
|
|
11
|
-
const [name, ...versions] = line.split(
|
|
12
|
+
const [name, ...versions] = line.split(WHITESPACE_SPLIT);
|
|
12
13
|
if (!name) {
|
|
13
14
|
return { name: "", meta: { type } };
|
|
14
15
|
}
|
|
@@ -53,7 +54,7 @@ export class HomebrewCollector extends BaseCollector {
|
|
|
53
54
|
const { stdout } = await execAsync(cmd);
|
|
54
55
|
return stdout;
|
|
55
56
|
};
|
|
56
|
-
|
|
57
|
+
collect() {
|
|
57
58
|
return this.timed(async (result) => {
|
|
58
59
|
const formulae = await this.collectList("brew list --formula --versions", "formula", result, parseVersionedItems);
|
|
59
60
|
const casks = await this.collectList("brew list --cask --versions", "cask", result, parseVersionedItems);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"homebrew.js","sourceRoot":"","sources":["../../src/collectors/homebrew.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAC;AAC1C,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"homebrew.js","sourceRoot":"","sources":["../../src/collectors/homebrew.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,16 +1,16 @@
|
|
|
1
|
+
export { ApplicationsCollector } from "./applications.js";
|
|
1
2
|
export { BaseCollector } from "./base.js";
|
|
2
3
|
export { ClaudeConfigCollector } from "./claude-config.js";
|
|
3
|
-
export {
|
|
4
|
-
export {
|
|
5
|
-
export { HomebrewCollector } from "./homebrew.js";
|
|
6
|
-
export { ApplicationsCollector } from "./applications.js";
|
|
7
|
-
export { VSCodeCollector } from "./vscode.js";
|
|
4
|
+
export { CloudCLICollector } from "./cloud-cli.js";
|
|
5
|
+
export { DevToolchainCollector } from "./dev-toolchain.js";
|
|
8
6
|
export { DockerCollector } from "./docker.js";
|
|
9
7
|
export { FontsCollector } from "./fonts.js";
|
|
10
|
-
export {
|
|
11
|
-
export { CloudCLICollector } from "./cloud-cli.js";
|
|
12
|
-
export { MacOSDefaultsCollector } from "./macos-defaults.js";
|
|
8
|
+
export { HomebrewCollector } from "./homebrew.js";
|
|
13
9
|
export { LaunchAgentsCollector } from "./launch-agents.js";
|
|
10
|
+
export { MacOSDefaultsCollector } from "./macos-defaults.js";
|
|
11
|
+
export { OpenCodeConfigCollector } from "./opencode-config.js";
|
|
12
|
+
export { ShellConfigCollector } from "./shell-config.js";
|
|
13
|
+
export { VSCodeCollector } from "./vscode.js";
|
|
14
14
|
import type { Collector } from "@otter/core";
|
|
15
15
|
/**
|
|
16
16
|
* Options for creating the default set of collectors.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/collectors/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/collectors/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AAC1D,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAC3D,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACnD,OAAO,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAC3D,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAC5C,OAAO,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAClD,OAAO,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAC3D,OAAO,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAC7D,OAAO,EAAE,uBAAuB,EAAE,MAAM,sBAAsB,CAAC;AAC/D,OAAO,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AACzD,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAG9C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAiB7C;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,wEAAwE;IACxE,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,0EAA0E;IAC1E,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CACrC,OAAO,GAAE,MAAkB,EAC3B,OAAO,GAAE,gBAAqB,GAC7B,SAAS,EAAE,CAgBb"}
|
package/dist/collectors/index.js
CHANGED
|
@@ -1,29 +1,29 @@
|
|
|
1
|
+
export { ApplicationsCollector } from "./applications.js";
|
|
1
2
|
export { BaseCollector } from "./base.js";
|
|
2
3
|
export { ClaudeConfigCollector } from "./claude-config.js";
|
|
3
|
-
export {
|
|
4
|
-
export {
|
|
5
|
-
export { HomebrewCollector } from "./homebrew.js";
|
|
6
|
-
export { ApplicationsCollector } from "./applications.js";
|
|
7
|
-
export { VSCodeCollector } from "./vscode.js";
|
|
4
|
+
export { CloudCLICollector } from "./cloud-cli.js";
|
|
5
|
+
export { DevToolchainCollector } from "./dev-toolchain.js";
|
|
8
6
|
export { DockerCollector } from "./docker.js";
|
|
9
7
|
export { FontsCollector } from "./fonts.js";
|
|
10
|
-
export {
|
|
11
|
-
export { CloudCLICollector } from "./cloud-cli.js";
|
|
12
|
-
export { MacOSDefaultsCollector } from "./macos-defaults.js";
|
|
8
|
+
export { HomebrewCollector } from "./homebrew.js";
|
|
13
9
|
export { LaunchAgentsCollector } from "./launch-agents.js";
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
10
|
+
export { MacOSDefaultsCollector } from "./macos-defaults.js";
|
|
11
|
+
export { OpenCodeConfigCollector } from "./opencode-config.js";
|
|
12
|
+
export { ShellConfigCollector } from "./shell-config.js";
|
|
13
|
+
export { VSCodeCollector } from "./vscode.js";
|
|
14
|
+
import { homedir } from "node:os";
|
|
18
15
|
import { ApplicationsCollector } from "./applications.js";
|
|
19
|
-
import {
|
|
16
|
+
import { ClaudeConfigCollector } from "./claude-config.js";
|
|
17
|
+
import { CloudCLICollector } from "./cloud-cli.js";
|
|
18
|
+
import { DevToolchainCollector } from "./dev-toolchain.js";
|
|
20
19
|
import { DockerCollector } from "./docker.js";
|
|
21
20
|
import { FontsCollector } from "./fonts.js";
|
|
22
|
-
import {
|
|
23
|
-
import { CloudCLICollector } from "./cloud-cli.js";
|
|
24
|
-
import { MacOSDefaultsCollector } from "./macos-defaults.js";
|
|
21
|
+
import { HomebrewCollector } from "./homebrew.js";
|
|
25
22
|
import { LaunchAgentsCollector } from "./launch-agents.js";
|
|
26
|
-
import {
|
|
23
|
+
import { MacOSDefaultsCollector } from "./macos-defaults.js";
|
|
24
|
+
import { OpenCodeConfigCollector } from "./opencode-config.js";
|
|
25
|
+
import { ShellConfigCollector } from "./shell-config.js";
|
|
26
|
+
import { VSCodeCollector } from "./vscode.js";
|
|
27
27
|
/** Default R2 public base URL for app icon assets */
|
|
28
28
|
const DEFAULT_ICON_BASE_URL = "https://s.zhe.to/apps/otter";
|
|
29
29
|
/**
|
|
@@ -32,7 +32,7 @@ const DEFAULT_ICON_BASE_URL = "https://s.zhe.to/apps/otter";
|
|
|
32
32
|
export function createDefaultCollectors(homeDir = homedir(), options = {}) {
|
|
33
33
|
const iconBaseUrl = options.iconBaseUrl ?? DEFAULT_ICON_BASE_URL;
|
|
34
34
|
return [
|
|
35
|
-
new ClaudeConfigCollector(homeDir, { slim: options.slim }),
|
|
35
|
+
new ClaudeConfigCollector(homeDir, { slim: options.slim ?? false }),
|
|
36
36
|
new OpenCodeConfigCollector(homeDir),
|
|
37
37
|
new ShellConfigCollector(homeDir),
|
|
38
38
|
new HomebrewCollector(homeDir),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/collectors/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/collectors/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AAC1D,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAC3D,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACnD,OAAO,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAC3D,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAC5C,OAAO,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAClD,OAAO,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAC3D,OAAO,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAC7D,OAAO,EAAE,uBAAuB,EAAE,MAAM,sBAAsB,CAAC;AAC/D,OAAO,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AACzD,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAE9C,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAElC,OAAO,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AAC1D,OAAO,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAC3D,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACnD,OAAO,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAC3D,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAC5C,OAAO,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAClD,OAAO,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAC3D,OAAO,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAC7D,OAAO,EAAE,uBAAuB,EAAE,MAAM,sBAAsB,CAAC;AAC/D,OAAO,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AACzD,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAE9C,qDAAqD;AACrD,MAAM,qBAAqB,GAAG,6BAA6B,CAAC;AAY5D;;GAEG;AACH,MAAM,UAAU,uBAAuB,CACrC,UAAkB,OAAO,EAAE,EAC3B,UAA4B,EAAE;IAE9B,MAAM,WAAW,GAAG,OAAO,CAAC,WAAW,IAAI,qBAAqB,CAAC;IACjE,OAAO;QACL,IAAI,qBAAqB,CAAC,OAAO,EAAE,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,IAAI,KAAK,EAAE,CAAC;QACnE,IAAI,uBAAuB,CAAC,OAAO,CAAC;QACpC,IAAI,oBAAoB,CAAC,OAAO,CAAC;QACjC,IAAI,iBAAiB,CAAC,OAAO,CAAC;QAC9B,IAAI,qBAAqB,CAAC,OAAO,EAAE,eAAe,EAAE,WAAW,CAAC;QAChE,IAAI,eAAe,CAAC,OAAO,CAAC;QAC5B,IAAI,eAAe,CAAC,OAAO,CAAC;QAC5B,IAAI,cAAc,CAAC,OAAO,CAAC;QAC3B,IAAI,qBAAqB,CAAC,OAAO,CAAC;QAClC,IAAI,iBAAiB,CAAC,OAAO,CAAC;QAC9B,IAAI,sBAAsB,CAAC,OAAO,CAAC;QACnC,IAAI,qBAAqB,CAAC,OAAO,CAAC;KACnC,CAAC;AACJ,CAAC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { BaseCollector } from "./base.js";
|
|
2
1
|
import type { CollectorCategory, CollectorResult } from "@otter/core";
|
|
2
|
+
import { BaseCollector } from "./base.js";
|
|
3
3
|
export declare class LaunchAgentsCollector extends BaseCollector {
|
|
4
4
|
readonly id = "launch-agents";
|
|
5
5
|
readonly label = "Launch Agents & Daemons";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"launch-agents.d.ts","sourceRoot":"","sources":["../../src/collectors/launch-agents.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"launch-agents.d.ts","sourceRoot":"","sources":["../../src/collectors/launch-agents.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAiB,iBAAiB,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAErF,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAI1C,qBAAa,qBAAsB,SAAQ,aAAa;IACtD,QAAQ,CAAC,EAAE,mBAAmB;IAC9B,QAAQ,CAAC,KAAK,6BAA6B;IAC3C,QAAQ,CAAC,QAAQ,EAAE,iBAAiB,CAAiB;IAErD,YAAY,GAAU,KAAK,MAAM,KAAG,OAAO,CAAC,MAAM,CAAC,CAGjD;IAEF,OAAO,IAAI,OAAO,CAAC,eAAe,CAAC;CAqCpC"}
|
|
@@ -2,8 +2,8 @@ import { exec } from "node:child_process";
|
|
|
2
2
|
import { readdir } from "node:fs/promises";
|
|
3
3
|
import { join } from "node:path";
|
|
4
4
|
import { promisify } from "node:util";
|
|
5
|
-
import { BaseCollector } from "./base.js";
|
|
6
5
|
import { redactSecrets } from "../utils/redact.js";
|
|
6
|
+
import { BaseCollector } from "./base.js";
|
|
7
7
|
const execAsync = promisify(exec);
|
|
8
8
|
export class LaunchAgentsCollector extends BaseCollector {
|
|
9
9
|
id = "launch-agents";
|
|
@@ -13,7 +13,7 @@ export class LaunchAgentsCollector extends BaseCollector {
|
|
|
13
13
|
const { stdout } = await execAsync(cmd);
|
|
14
14
|
return stdout;
|
|
15
15
|
};
|
|
16
|
-
|
|
16
|
+
collect() {
|
|
17
17
|
return this.timed(async (result) => {
|
|
18
18
|
const agentsDir = join(this.homeDir, "Library", "LaunchAgents");
|
|
19
19
|
try {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"launch-agents.js","sourceRoot":"","sources":["../../src/collectors/launch-agents.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAC;AAC1C,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAC3C,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"launch-agents.js","sourceRoot":"","sources":["../../src/collectors/launch-agents.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAC;AAC1C,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAC3C,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAEtC,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAE1C,MAAM,SAAS,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;AAElC,MAAM,OAAO,qBAAsB,SAAQ,aAAa;IAC7C,EAAE,GAAG,eAAe,CAAC;IACrB,KAAK,GAAG,yBAAyB,CAAC;IAClC,QAAQ,GAAsB,aAAa,CAAC;IAErD,YAAY,GAAG,KAAK,EAAE,GAAW,EAAmB,EAAE;QACpD,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,SAAS,CAAC,GAAG,CAAC,CAAC;QACxC,OAAO,MAAM,CAAC;IAChB,CAAC,CAAC;IAEF,OAAO;QACL,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE;YACjC,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,SAAS,EAAE,cAAc,CAAC,CAAC;YAChE,IAAI,CAAC;gBACH,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,SAAS,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;gBAClE,MAAM,CAAC,KAAK,CAAC,IAAI,CACf,GAAG,OAAO;qBACP,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,EAAE,IAAI,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;qBAClE,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;oBACf,IAAI,EAAE,KAAK,CAAC,IAAI;oBAChB,IAAI,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE;iBAC7B,CAAC,CAAC;qBACF,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAChD,CAAC;YACJ,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,IAAK,GAA6B,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;oBACrD,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,iCAAkC,GAAa,CAAC,OAAO,EAAE,CAAC,CAAC;gBAChF,CAAC;YACH,CAAC;YAED,IAAI,CAAC;gBACH,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC;gBACrD,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC;gBAC9B,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBACvB,MAAM,OAAO,GAAG,aAAa,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;oBAC/C,MAAM,IAAI,GAAkB;wBAC1B,IAAI,EAAE,SAAS;wBACf,OAAO;wBACP,SAAS,EAAE,MAAM,CAAC,UAAU,CAAC,OAAO,EAAE,OAAO,CAAC;qBAC/C,CAAC;oBACF,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBAC1B,CAAC;YACH,CAAC;YAAC,MAAM,CAAC;gBACP,gCAAgC;YAClC,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;CACF"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { BaseCollector } from "./base.js";
|
|
2
1
|
import type { CollectorCategory, CollectorResult } from "@otter/core";
|
|
2
|
+
import { BaseCollector } from "./base.js";
|
|
3
3
|
export declare class MacOSDefaultsCollector extends BaseCollector {
|
|
4
4
|
readonly id = "macos-defaults";
|
|
5
5
|
readonly label = "macOS System Preferences";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"macos-defaults.d.ts","sourceRoot":"","sources":["../../src/collectors/macos-defaults.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"macos-defaults.d.ts","sourceRoot":"","sources":["../../src/collectors/macos-defaults.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAiB,iBAAiB,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AACrF,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAe1C,qBAAa,sBAAuB,SAAQ,aAAa;IACvD,QAAQ,CAAC,EAAE,oBAAoB;IAC/B,QAAQ,CAAC,KAAK,8BAA8B;IAC5C,QAAQ,CAAC,QAAQ,EAAE,iBAAiB,CAAiB;IAErD,YAAY,GAAU,KAAK,MAAM,KAAG,OAAO,CAAC,MAAM,CAAC,CAGjD;IAEF,OAAO,IAAI,OAAO,CAAC,eAAe,CAAC;CAkCpC"}
|
|
@@ -11,6 +11,7 @@ const DOMAINS = [
|
|
|
11
11
|
"com.apple.symbolichotkeys",
|
|
12
12
|
"com.apple.screencapture",
|
|
13
13
|
];
|
|
14
|
+
// biome-ignore lint/style/useNamingConvention: acronym in class name
|
|
14
15
|
export class MacOSDefaultsCollector extends BaseCollector {
|
|
15
16
|
id = "macos-defaults";
|
|
16
17
|
label = "macOS System Preferences";
|
|
@@ -19,10 +20,11 @@ export class MacOSDefaultsCollector extends BaseCollector {
|
|
|
19
20
|
const { stdout } = await execAsync(cmd);
|
|
20
21
|
return stdout;
|
|
21
22
|
};
|
|
22
|
-
|
|
23
|
+
collect() {
|
|
23
24
|
return this.timed(async (result) => {
|
|
24
25
|
for (const domain of DOMAINS) {
|
|
25
26
|
try {
|
|
27
|
+
// biome-ignore lint/performance/noAwaitInLoops: sequential shell command execution
|
|
26
28
|
const content = await this._execCommand(`defaults export ${domain} -`);
|
|
27
29
|
const file = {
|
|
28
30
|
path: `macos-defaults/${domain}.plist`,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"macos-defaults.js","sourceRoot":"","sources":["../../src/collectors/macos-defaults.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAC;AAC1C,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"macos-defaults.js","sourceRoot":"","sources":["../../src/collectors/macos-defaults.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAC;AAC1C,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAEtC,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAE1C,MAAM,SAAS,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;AAElC,MAAM,OAAO,GAAG;IACd,gBAAgB;IAChB,kBAAkB;IAClB,mCAAmC;IACnC,oDAAoD;IACpD,gBAAgB;IAChB,2BAA2B;IAC3B,yBAAyB;CAC1B,CAAC;AAEF,qEAAqE;AACrE,MAAM,OAAO,sBAAuB,SAAQ,aAAa;IAC9C,EAAE,GAAG,gBAAgB,CAAC;IACtB,KAAK,GAAG,0BAA0B,CAAC;IACnC,QAAQ,GAAsB,aAAa,CAAC;IAErD,YAAY,GAAG,KAAK,EAAE,GAAW,EAAmB,EAAE;QACpD,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,SAAS,CAAC,GAAG,CAAC,CAAC;QACxC,OAAO,MAAM,CAAC;IAChB,CAAC,CAAC;IAEF,OAAO;QACL,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE;YACjC,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;gBAC7B,IAAI,CAAC;oBACH,mFAAmF;oBACnF,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,mBAAmB,MAAM,IAAI,CAAC,CAAC;oBACvE,MAAM,IAAI,GAAkB;wBAC1B,IAAI,EAAE,kBAAkB,MAAM,QAAQ;wBACtC,OAAO;wBACP,SAAS,EAAE,MAAM,CAAC,UAAU,CAAC,OAAO,EAAE,OAAO,CAAC;qBAC/C,CAAC;oBACF,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBAC1B,CAAC;gBAAC,OAAO,GAAG,EAAE,CAAC;oBACb,MAAM,CAAC,MAAM,CAAC,IAAI,CAChB,oCAAoC,MAAM,KAAM,GAAa,CAAC,OAAO,EAAE,CACxE,CAAC;gBACJ,CAAC;YACH,CAAC;YAED,IAAI,CAAC;gBACH,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,YAAY,CACpC,uFAAuF,CACxF,CAAC;gBACF,MAAM,KAAK,GAAG,MAAM;qBACjB,KAAK,CAAC,GAAG,CAAC;qBACV,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;qBAC1B,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;qBACjC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE,EAAE,CAAC,CAAC,CAAC;gBAC3D,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC;YAC9B,CAAC;YAAC,MAAM,CAAC;gBACP,yCAAyC;YAC3C,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;CACF"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { BaseCollector } from "./base.js";
|
|
2
1
|
import type { CollectorCategory, CollectorResult } from "@otter/core";
|
|
2
|
+
import { BaseCollector } from "./base.js";
|
|
3
3
|
/**
|
|
4
4
|
* Parse YAML-like frontmatter from a SKILL.md file.
|
|
5
5
|
* Extracts simple `key: value` pairs between `---` delimiters.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"opencode-config.d.ts","sourceRoot":"","sources":["../../src/collectors/opencode-config.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"opencode-config.d.ts","sourceRoot":"","sources":["../../src/collectors/opencode-config.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAqB,iBAAiB,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AACzF,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAW1C;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAe7E;AAED;;;;GAIG;AACH,qBAAa,uBAAwB,SAAQ,aAAa;IACxD,QAAQ,CAAC,EAAE,qBAAqB;IAChC,QAAQ,CAAC,KAAK,4BAA4B;IAC1C,QAAQ,CAAC,QAAQ,EAAE,iBAAiB,CAAY;IAEhD,OAAO,IAAI,OAAO,CAAC,eAAe,CAAC;YAuBrB,iBAAiB;CAuChC"}
|