@clauderecallhq/cli 0.12.0 → 0.12.5
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 +584 -407
- package/dist/cli.js +0 -8
- package/dist/cli.js.map +1 -1
- package/package.json +4 -3
- package/README.public.md +0 -523
- package/dist/commands/installs.js +0 -128
- package/dist/commands/installs.js.map +0 -1
|
@@ -1,128 +0,0 @@
|
|
|
1
|
-
import { c } from '../utils/format.js';
|
|
2
|
-
const NPM_PACKAGE = '@clauderecallhq/cli';
|
|
3
|
-
const VSCODE_EXTENSION = 'clauderecallhq.clauderecall-vscode';
|
|
4
|
-
const SPARK_CHARS = '▁▂▃▄▅▆▇█';
|
|
5
|
-
function sparkline(values) {
|
|
6
|
-
if (values.length === 0)
|
|
7
|
-
return '';
|
|
8
|
-
const min = Math.min(...values);
|
|
9
|
-
const max = Math.max(...values);
|
|
10
|
-
const range = max - min || 1;
|
|
11
|
-
return values
|
|
12
|
-
.map((v) => SPARK_CHARS[Math.round(((v - min) / range) * (SPARK_CHARS.length - 1))])
|
|
13
|
-
.join('');
|
|
14
|
-
}
|
|
15
|
-
async function fetchJson(url, init) {
|
|
16
|
-
const res = await fetch(url, init);
|
|
17
|
-
if (!res.ok) {
|
|
18
|
-
throw new Error(`HTTP ${res.status} ${res.statusText}`);
|
|
19
|
-
}
|
|
20
|
-
return (await res.json());
|
|
21
|
-
}
|
|
22
|
-
async function fetchNpm() {
|
|
23
|
-
const [weekly, monthly, range] = await Promise.all([
|
|
24
|
-
fetchJson(`https://api.npmjs.org/downloads/point/last-week/${encodeURIComponent(NPM_PACKAGE)}`),
|
|
25
|
-
fetchJson(`https://api.npmjs.org/downloads/point/last-month/${encodeURIComponent(NPM_PACKAGE)}`),
|
|
26
|
-
fetchJson(`https://api.npmjs.org/downloads/range/last-month/${encodeURIComponent(NPM_PACKAGE)}`),
|
|
27
|
-
]);
|
|
28
|
-
return {
|
|
29
|
-
lastWeek: weekly.downloads,
|
|
30
|
-
lastMonth: monthly.downloads,
|
|
31
|
-
dailyDownloads: range.downloads.map((d) => d.downloads),
|
|
32
|
-
dailyDays: range.downloads.map((d) => d.day),
|
|
33
|
-
};
|
|
34
|
-
}
|
|
35
|
-
async function fetchVsCode() {
|
|
36
|
-
const body = {
|
|
37
|
-
filters: [
|
|
38
|
-
{
|
|
39
|
-
criteria: [{ filterType: 7, value: VSCODE_EXTENSION }],
|
|
40
|
-
},
|
|
41
|
-
],
|
|
42
|
-
assetTypes: [],
|
|
43
|
-
flags: 914,
|
|
44
|
-
};
|
|
45
|
-
const data = await fetchJson('https://marketplace.visualstudio.com/_apis/public/gallery/extensionquery', {
|
|
46
|
-
method: 'POST',
|
|
47
|
-
headers: {
|
|
48
|
-
'Content-Type': 'application/json',
|
|
49
|
-
Accept: 'application/json;api-version=6.0-preview.1',
|
|
50
|
-
},
|
|
51
|
-
body: JSON.stringify(body),
|
|
52
|
-
});
|
|
53
|
-
const stats = data.results?.[0]?.extensions?.[0]?.statistics ?? [];
|
|
54
|
-
const stat = (name) => {
|
|
55
|
-
const entry = stats.find((s) => s.statisticName === name);
|
|
56
|
-
return entry ? entry.value : null;
|
|
57
|
-
};
|
|
58
|
-
return {
|
|
59
|
-
totalInstalls: stat('install') ?? 0,
|
|
60
|
-
totalDownloads: stat('updateCount') ?? stat('install') ?? 0,
|
|
61
|
-
averageRating: stat('averagerating'),
|
|
62
|
-
ratingCount: stat('ratingcount'),
|
|
63
|
-
};
|
|
64
|
-
}
|
|
65
|
-
function printFormatted(result) {
|
|
66
|
-
const { npm, vscode } = result;
|
|
67
|
-
process.stdout.write('\n');
|
|
68
|
-
process.stdout.write(c.bold('product installs') + '\n');
|
|
69
|
-
// --- npm section ---
|
|
70
|
-
process.stdout.write('\n');
|
|
71
|
-
process.stdout.write(c.accent(`npm`) + c.dim(` · ${NPM_PACKAGE}`) + '\n');
|
|
72
|
-
process.stdout.write(c.dim('─'.repeat(28)) + '\n');
|
|
73
|
-
if (npm) {
|
|
74
|
-
process.stdout.write(` last 7 days ${c.accent(String(npm.lastWeek))}\n`);
|
|
75
|
-
process.stdout.write(` last 30 days ${c.accent(String(npm.lastMonth))}\n`);
|
|
76
|
-
const tail = npm.dailyDownloads.slice(-8);
|
|
77
|
-
if (tail.length > 0) {
|
|
78
|
-
process.stdout.write(` daily trend ${sparkline(tail)} ${c.dim('(last 8 days)')}\n`);
|
|
79
|
-
}
|
|
80
|
-
}
|
|
81
|
-
else {
|
|
82
|
-
process.stdout.write(c.warn(` failed: ${result.npmError ?? 'unknown error'}`) + '\n');
|
|
83
|
-
}
|
|
84
|
-
// --- VS Code section ---
|
|
85
|
-
process.stdout.write('\n');
|
|
86
|
-
process.stdout.write(c.accent(`VS Code`) + c.dim(` · clauderecall-vscode`) + '\n');
|
|
87
|
-
process.stdout.write(c.dim('─'.repeat(28)) + '\n');
|
|
88
|
-
if (vscode) {
|
|
89
|
-
process.stdout.write(` total installs ${c.accent(String(vscode.totalInstalls))}\n`);
|
|
90
|
-
process.stdout.write(` total downloads ${c.accent(String(vscode.totalDownloads))}\n`);
|
|
91
|
-
}
|
|
92
|
-
else {
|
|
93
|
-
process.stdout.write(c.warn(` failed: ${result.vscodeError ?? 'unknown error'}`) + '\n');
|
|
94
|
-
}
|
|
95
|
-
process.stdout.write('\n');
|
|
96
|
-
process.stdout.write(c.dim(`fetched ${result.fetchedAt}`) + '\n');
|
|
97
|
-
process.stdout.write('\n');
|
|
98
|
-
}
|
|
99
|
-
export async function runInstalls(opts) {
|
|
100
|
-
const result = {
|
|
101
|
-
fetchedAt: new Date().toISOString(),
|
|
102
|
-
npm: null,
|
|
103
|
-
vscode: null,
|
|
104
|
-
};
|
|
105
|
-
const [npmResult, vscodeResult] = await Promise.allSettled([fetchNpm(), fetchVsCode()]);
|
|
106
|
-
if (npmResult.status === 'fulfilled') {
|
|
107
|
-
result.npm = npmResult.value;
|
|
108
|
-
}
|
|
109
|
-
else {
|
|
110
|
-
result.npmError =
|
|
111
|
-
npmResult.reason instanceof Error ? npmResult.reason.message : String(npmResult.reason);
|
|
112
|
-
}
|
|
113
|
-
if (vscodeResult.status === 'fulfilled') {
|
|
114
|
-
result.vscode = vscodeResult.value;
|
|
115
|
-
}
|
|
116
|
-
else {
|
|
117
|
-
result.vscodeError =
|
|
118
|
-
vscodeResult.reason instanceof Error
|
|
119
|
-
? vscodeResult.reason.message
|
|
120
|
-
: String(vscodeResult.reason);
|
|
121
|
-
}
|
|
122
|
-
if (opts.json) {
|
|
123
|
-
process.stdout.write(JSON.stringify(result, null, 2) + '\n');
|
|
124
|
-
return;
|
|
125
|
-
}
|
|
126
|
-
printFormatted(result);
|
|
127
|
-
}
|
|
128
|
-
//# sourceMappingURL=installs.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"installs.js","sourceRoot":"","sources":["../../src/commands/installs.ts"],"names":[],"mappings":"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"}
|