@mcptoolshop/registry-stats 2.0.0 → 2.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.es.md +134 -130
- package/README.fr.md +134 -130
- package/README.hi.md +134 -130
- package/README.it.md +134 -130
- package/README.ja.md +134 -130
- package/README.md +18 -11
- package/README.pt-BR.md +134 -130
- package/README.zh.md +134 -130
- package/package.json +2 -2
package/README.fr.md
CHANGED
|
@@ -1,15 +1,15 @@
|
|
|
1
|
-
<p align="center">
|
|
2
|
-
<a href="README.ja.md">日本語</a> | <a href="README.zh.md">中文</a> | <a href="README.es.md">Español</a> | <a href="README.md">English</a> | <a href="README.hi.md">हिन्दी</a> | <a href="README.it.md">Italiano</a> | <a href="README.pt-BR.md">Português (BR)</a>
|
|
3
|
-
</p>
|
|
4
|
-
|
|
1
|
+
<p align="center">
|
|
2
|
+
<a href="README.ja.md">日本語</a> | <a href="README.zh.md">中文</a> | <a href="README.es.md">Español</a> | <a href="README.md">English</a> | <a href="README.hi.md">हिन्दी</a> | <a href="README.it.md">Italiano</a> | <a href="README.pt-BR.md">Português (BR)</a>
|
|
3
|
+
</p>
|
|
4
|
+
|
|
5
5
|
<p align="center">
|
|
6
6
|
<img src="https://raw.githubusercontent.com/mcp-tool-shop-org/brand/main/logos/registry-stats/readme.png" alt="registry-stats logo" width="400" />
|
|
7
7
|
</p>
|
|
8
|
-
|
|
8
|
+
|
|
9
9
|
<p align="center">
|
|
10
10
|
Five registries. One engine. Dashboard included.
|
|
11
11
|
</p>
|
|
12
|
-
|
|
12
|
+
|
|
13
13
|
<p align="center">
|
|
14
14
|
<a href="https://github.com/mcp-tool-shop-org/registry-stats/actions/workflows/pages.yml"><img src="https://github.com/mcp-tool-shop-org/registry-stats/actions/workflows/pages.yml/badge.svg" alt="CI"></a>
|
|
15
15
|
<a href="https://opensource.org/licenses/MIT"><img src="https://img.shields.io/badge/License-MIT-yellow.svg" alt="MIT License"></a>
|
|
@@ -17,7 +17,7 @@
|
|
|
17
17
|
<a href="https://mcp-tool-shop-org.github.io/registry-stats/dashboard/"><img src="https://img.shields.io/badge/Dashboard-live-green" alt="Dashboard"></a>
|
|
18
18
|
<a href="https://mcp-tool-shop-org.github.io/registry-stats/"><img src="https://img.shields.io/badge/Landing_Page-live-blue" alt="Landing Page"></a>
|
|
19
19
|
</p>
|
|
20
|
-
|
|
20
|
+
|
|
21
21
|
<p align="center">
|
|
22
22
|
<a href="#dashboard">Dashboard</a> ·
|
|
23
23
|
<a href="#desktop-app">Desktop App</a> ·
|
|
@@ -28,53 +28,57 @@
|
|
|
28
28
|
<a href="#config-file">Config</a> ·
|
|
29
29
|
<a href="#license">License</a>
|
|
30
30
|
</p>
|
|
31
|
-
|
|
31
|
+
|
|
32
32
|
---
|
|
33
|
-
|
|
34
|
-
Vous publiez sur npm, PyPI, NuGet, le Marketplace de VS Code et Docker Hub. Actuellement, répondre à la question "comment vont mes paquets ?" nécessite de consulter cinq sites différents. **registry-stats** est une plateforme complète : un moteur TypeScript (CLI + API + serveur REST), un tableau de bord web interactif et une application de bureau Windows native, le tout regroupé dans un seul dépôt.
|
|
35
|
-
|
|
36
|
-
Aucune dépendance d'exécution. Utilise la fonction native `fetch()`. Node 18+.
|
|
37
|
-
|
|
38
|
-
## Contenu
|
|
39
|
-
|
|
40
|
-
| Couche | Fonctionnalités |
|
|
41
|
-
|-------|-------------|
|
|
42
|
-
| **Engine** | Bibliothèque TypeScript + CLI + serveur REST. Interrogez cinq registres avec une seule interface. Publié sur npm sous le nom `@mcptoolshop/registry-stats`. |
|
|
43
|
-
| **Dashboard** | Application web basée sur Astro.
|
|
44
|
-
| **Desktop** | Application Windows native utilisant WinUI 3 + WebView2. Inclut le tableau de bord hors ligne et récupère les statistiques en direct à la demande. |
|
|
45
|
-
|
|
46
|
-
## Tableau de bord
|
|
47
|
-
|
|
48
|
-
Un tableau de bord de statistiques qui se met à jour automatiquement est disponible à l'adresse [`/dashboard/`](https://mcp-tool-shop-org.github.io/registry-stats/dashboard/).
|
|
49
|
-
|
|
50
|
-
- **
|
|
51
|
-
- **
|
|
52
|
-
-
|
|
53
|
-
-
|
|
54
|
-
- **
|
|
55
|
-
- **
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
33
|
+
|
|
34
|
+
Vous publiez sur npm, PyPI, NuGet, le Marketplace de VS Code et Docker Hub. Actuellement, répondre à la question "comment vont mes paquets ?" nécessite de consulter cinq sites différents. **registry-stats** est une plateforme complète : un moteur TypeScript (CLI + API + serveur REST), un tableau de bord web interactif et une application de bureau Windows native, le tout regroupé dans un seul dépôt.
|
|
35
|
+
|
|
36
|
+
Aucune dépendance d'exécution. Utilise la fonction native `fetch()`. Node 18+.
|
|
37
|
+
|
|
38
|
+
## Contenu
|
|
39
|
+
|
|
40
|
+
| Couche | Fonctionnalités |
|
|
41
|
+
|-------|-------------|
|
|
42
|
+
| **Engine** | Bibliothèque TypeScript + CLI + serveur REST. Interrogez cinq registres avec une seule interface. Publié sur npm sous le nom `@mcptoolshop/registry-stats`. |
|
|
43
|
+
| **Dashboard** | Application web basée sur Astro. Assistant de chat IA, six graphiques interactifs, moteur de croissance intelligent et guide d'aide avec onglets. Reconstruite chaque semaine par CI. |
|
|
44
|
+
| **Desktop** | Application Windows native utilisant WinUI 3 + WebView2. Inclut le tableau de bord hors ligne et récupère les statistiques en direct à la demande. |
|
|
45
|
+
|
|
46
|
+
## Tableau de bord
|
|
47
|
+
|
|
48
|
+
Un tableau de bord de statistiques qui se met à jour automatiquement est disponible à l'adresse [`/dashboard/`](https://mcp-tool-shop-org.github.io/registry-stats/dashboard/).
|
|
49
|
+
|
|
50
|
+
- **Interface à onglets** — Onglets Home, Analytics, Leaderboard et Help
|
|
51
|
+
- **Assistant de chat IA** — Registry Assistant alimenté par Ollama avec contexte RAG, réponses en streaming, sélecteur de modèles et mémoire de conversation
|
|
52
|
+
- **Résumé exécutif** — score de santé (0–100), indice de diversité, variation hebdomadaire, téléchargements totaux sur tous les registres
|
|
53
|
+
- **Six graphiques interactifs** — tendance sur 30 jours (vue agrégée / par registre / top 5), part des registres (aire polaire), risque du portefeuille (histogramme + Gini & P90), top 10 momentum, suivi de la vélocité avec sparklines, et carte thermique 30 jours avec détection de pics (>2σ)
|
|
54
|
+
- **Moteur de croissance intelligent** — gère la distorsion des petits dénominateurs avec seuil de référence, plafonnement du pourcentage et formule de vélocité amortie
|
|
55
|
+
- **Perspectives exploitables** — recommandations auto-générées et alertes d'attention pour les paquets en déclin
|
|
56
|
+
- **Classement** — tous les paquets classés par téléchargements hebdomadaires avec sparklines sur 30 jours et badges de tendance intelligents
|
|
57
|
+
- **Page de configuration** — éditeur de portefeuille avec validation, section registry-sync et vue d'ensemble du pipeline
|
|
58
|
+
- **Onglet d'aide** — guide convivial couvrant chaque onglet, les concepts clés, les conseils pour l'assistant IA, le pipeline de données et les liens utiles
|
|
59
|
+
- **Thème clair/sombre** — suit les préférences du système
|
|
60
|
+
|
|
61
|
+
Les données sont récupérées au moment de la construction et le tableau de bord est reconstruit chaque semaine par CI (lundi à 06h00 UTC). Configurez les paquets suivis dans `site/src/data/packages.json`.
|
|
62
|
+
|
|
63
|
+
## Application de bureau
|
|
64
|
+
|
|
65
|
+
Une application Windows native qui intègre le tableau de bord dans un environnement WebView2 local :
|
|
66
|
+
|
|
67
|
+
- **Fonctionne hors ligne** — inclut les fichiers HTML/CSS/JS ; fonctionne sans connexion Internet.
|
|
68
|
+
- **Actualisation en direct** — récupère le fichier `stats.json` depuis GitHub Pages à la demande.
|
|
69
|
+
- **Exportation CSV** — exportez les données du classement en un seul clic.
|
|
70
|
+
- **Paquet MSIX** — construit et signé par CI via `desktop-ci.yml`.
|
|
71
|
+
|
|
72
|
+
Le code source de l'application de bureau se trouve dans le répertoire `desktop/`. Développé avec .NET 10 MAUI et ciblant WinUI 3.
|
|
73
|
+
|
|
74
|
+
## Installer
|
|
75
|
+
|
|
72
76
|
```bash
|
|
73
77
|
npm install @mcptoolshop/registry-stats
|
|
74
78
|
```
|
|
75
|
-
|
|
76
|
-
## CLI
|
|
77
|
-
|
|
79
|
+
|
|
80
|
+
## CLI
|
|
81
|
+
|
|
78
82
|
```bash
|
|
79
83
|
# Query a single registry
|
|
80
84
|
registry-stats express -r npm
|
|
@@ -112,11 +116,11 @@ registry-stats express -r npm --range 2025-01-01:2025-06-30 --format chart
|
|
|
112
116
|
# Start a REST API server
|
|
113
117
|
registry-stats serve --port 3000
|
|
114
118
|
```
|
|
115
|
-
|
|
116
|
-
## Fichier de configuration
|
|
117
|
-
|
|
118
|
-
Créez un fichier `registry-stats.config.json` à la racine de votre projet (ou exécutez la commande `registry-stats --init`) :
|
|
119
|
-
|
|
119
|
+
|
|
120
|
+
## Fichier de configuration
|
|
121
|
+
|
|
122
|
+
Créez un fichier `registry-stats.config.json` à la racine de votre projet (ou exécutez la commande `registry-stats --init`) :
|
|
123
|
+
|
|
120
124
|
```json
|
|
121
125
|
{
|
|
122
126
|
"registries": ["npm", "pypi", "nuget", "vscode", "docker"],
|
|
@@ -135,11 +139,11 @@ Créez un fichier `registry-stats.config.json` à la racine de votre projet (ou
|
|
|
135
139
|
"concurrency": 5
|
|
136
140
|
}
|
|
137
141
|
```
|
|
138
|
-
|
|
139
|
-
Exécutez la commande `registry-stats` sans arguments pour obtenir les statistiques de tous les paquets configurés. L'interface en ligne de commande (CLI) remonte à partir du répertoire de travail actuel (cwd) pour trouver le fichier de configuration le plus proche.
|
|
140
|
-
|
|
141
|
-
La configuration est également accessible par programmation :
|
|
142
|
-
|
|
142
|
+
|
|
143
|
+
Exécutez la commande `registry-stats` sans arguments pour obtenir les statistiques de tous les paquets configurés. L'interface en ligne de commande (CLI) remonte à partir du répertoire de travail actuel (cwd) pour trouver le fichier de configuration le plus proche.
|
|
144
|
+
|
|
145
|
+
La configuration est également accessible par programmation :
|
|
146
|
+
|
|
143
147
|
```typescript
|
|
144
148
|
import { loadConfig, defaultConfig, starterConfig } from '@mcptoolshop/registry-stats';
|
|
145
149
|
|
|
@@ -147,9 +151,9 @@ const config = loadConfig(); // finds nearest config file, or null
|
|
|
147
151
|
const defaults = defaultConfig(); // returns default Config object
|
|
148
152
|
const template = starterConfig(); // returns starter JSON string
|
|
149
153
|
```
|
|
150
|
-
|
|
151
|
-
## API programmable
|
|
152
|
-
|
|
154
|
+
|
|
155
|
+
## API programmable
|
|
156
|
+
|
|
153
157
|
```typescript
|
|
154
158
|
import { stats, calc, createCache } from '@mcptoolshop/registry-stats';
|
|
155
159
|
|
|
@@ -190,41 +194,41 @@ const cache = createCache();
|
|
|
190
194
|
await stats('npm', 'express', { cache }); // fetches
|
|
191
195
|
await stats('npm', 'express', { cache }); // cache hit
|
|
192
196
|
```
|
|
193
|
-
|
|
194
|
-
## Support technique pour les registres
|
|
195
|
-
|
|
196
|
-
| Registre. | Format du paquet. | Séries temporelles. | Données disponibles. |
|
|
197
|
-
|----------|---------------|-------------|----------------|
|
|
198
|
-
| `npm` | `express`, `@scope/pkg` | Oui (549 jours). | dernier jour, dernière semaine, dernier mois. |
|
|
199
|
-
| `pypi` | `requests` | Oui (180 jours). | dernier jour, dernière semaine, dernier mois, total. |
|
|
200
|
-
| `nuget` | `Newtonsoft.Json` | No | total |
|
|
201
|
-
| `vscode` | `publisher.extension` | No | total (installations), évaluation, tendances. |
|
|
202
|
-
| `docker` | `namespace/repo` | No | total (nombre de tirages), étoiles. |
|
|
203
|
-
|
|
204
|
-
## Fiabilité intégrée
|
|
205
|
-
|
|
206
|
-
- Nouvelle tentative automatique avec un délai exponentiel en cas d'erreurs 429/5xx.
|
|
207
|
-
- Respect des en-têtes "Retry-After".
|
|
208
|
-
- Limitation de la concurrence pour les requêtes groupées.
|
|
209
|
-
- Cache TTL optionnel (extensible – possibilité d'utiliser votre propre backend Redis ou fichier via l'interface "StatsCache").
|
|
210
|
-
|
|
211
|
-
## Serveur d'API REST
|
|
212
|
-
|
|
213
|
-
Fonctionnez en tant que microservice ou intégrez-le à votre propre serveur :
|
|
214
|
-
|
|
197
|
+
|
|
198
|
+
## Support technique pour les registres
|
|
199
|
+
|
|
200
|
+
| Registre. | Format du paquet. | Séries temporelles. | Données disponibles. |
|
|
201
|
+
|----------|---------------|-------------|----------------|
|
|
202
|
+
| `npm` | `express`, `@scope/pkg` | Oui (549 jours). | dernier jour, dernière semaine, dernier mois. |
|
|
203
|
+
| `pypi` | `requests` | Oui (180 jours). | dernier jour, dernière semaine, dernier mois, total. |
|
|
204
|
+
| `nuget` | `Newtonsoft.Json` | No | total |
|
|
205
|
+
| `vscode` | `publisher.extension` | No | total (installations), évaluation, tendances. |
|
|
206
|
+
| `docker` | `namespace/repo` | No | total (nombre de tirages), étoiles. |
|
|
207
|
+
|
|
208
|
+
## Fiabilité intégrée
|
|
209
|
+
|
|
210
|
+
- Nouvelle tentative automatique avec un délai exponentiel en cas d'erreurs 429/5xx.
|
|
211
|
+
- Respect des en-têtes "Retry-After".
|
|
212
|
+
- Limitation de la concurrence pour les requêtes groupées.
|
|
213
|
+
- Cache TTL optionnel (extensible – possibilité d'utiliser votre propre backend Redis ou fichier via l'interface "StatsCache").
|
|
214
|
+
|
|
215
|
+
## Serveur d'API REST
|
|
216
|
+
|
|
217
|
+
Fonctionnez en tant que microservice ou intégrez-le à votre propre serveur :
|
|
218
|
+
|
|
215
219
|
```bash
|
|
216
220
|
registry-stats serve --port 3000
|
|
217
221
|
```
|
|
218
|
-
|
|
222
|
+
|
|
219
223
|
```
|
|
220
224
|
GET /stats/:package # all registries
|
|
221
225
|
GET /stats/:registry/:package # single registry
|
|
222
226
|
GET /compare/:package?registries=npm,pypi
|
|
223
227
|
GET /range/:registry/:package?start=YYYY-MM-DD&end=YYYY-MM-DD&format=json|csv|chart
|
|
224
228
|
```
|
|
225
|
-
|
|
226
|
-
Utilisation par programmation pour les serveurs personnalisés ou les environnements sans serveur :
|
|
227
|
-
|
|
229
|
+
|
|
230
|
+
Utilisation par programmation pour les serveurs personnalisés ou les environnements sans serveur :
|
|
231
|
+
|
|
228
232
|
```typescript
|
|
229
233
|
import { createHandler, serve } from '@mcptoolshop/registry-stats';
|
|
230
234
|
|
|
@@ -236,9 +240,9 @@ import { createServer } from 'node:http';
|
|
|
236
240
|
const handler = createHandler();
|
|
237
241
|
createServer(handler).listen(3000);
|
|
238
242
|
```
|
|
239
|
-
|
|
240
|
-
## Registres personnalisés
|
|
241
|
-
|
|
243
|
+
|
|
244
|
+
## Registres personnalisés
|
|
245
|
+
|
|
242
246
|
```typescript
|
|
243
247
|
import { registerProvider, type RegistryProvider } from '@mcptoolshop/registry-stats';
|
|
244
248
|
|
|
@@ -259,9 +263,9 @@ const cargo: RegistryProvider = {
|
|
|
259
263
|
registerProvider(cargo);
|
|
260
264
|
await stats('cargo', 'serde');
|
|
261
265
|
```
|
|
262
|
-
|
|
263
|
-
## Structure du dépôt
|
|
264
|
-
|
|
266
|
+
|
|
267
|
+
## Structure du dépôt
|
|
268
|
+
|
|
265
269
|
```
|
|
266
270
|
registry-stats/
|
|
267
271
|
├── src/ # TypeScript engine (published to npm)
|
|
@@ -269,9 +273,9 @@ registry-stats/
|
|
|
269
273
|
├── desktop/ # WinUI 3 desktop app (.NET 10 MAUI)
|
|
270
274
|
└── test/ # Library tests (vitest)
|
|
271
275
|
```
|
|
272
|
-
|
|
273
|
-
## Développement
|
|
274
|
-
|
|
276
|
+
|
|
277
|
+
## Développement
|
|
278
|
+
|
|
275
279
|
```bash
|
|
276
280
|
# Engine
|
|
277
281
|
npm install && npm run build && npm test
|
|
@@ -282,36 +286,36 @@ npm run site:dev
|
|
|
282
286
|
# Dashboard (production build)
|
|
283
287
|
npm run site:build
|
|
284
288
|
```
|
|
285
|
-
|
|
286
|
-
## Sécurité et portée des données
|
|
287
|
-
|
|
288
|
-
| Aspect | Détail |
|
|
289
|
-
|--------|--------|
|
|
290
|
-
| **Data touched** | Statistiques de téléchargement publiques provenant de npm, PyPI, NuGet, VS Code Marketplace, Docker Hub. Cache en mémoire (facultatif). |
|
|
291
|
-
| **Data NOT touched** | Aucune télémétrie. Aucune analyse. Aucun stockage d'informations d'identification. Aucune donnée utilisateur. Aucune écriture de fichiers. |
|
|
292
|
-
| **Permissions** | Lecture : API publiques des registres via HTTPS. Écriture : uniquement vers la sortie standard/erreur standard. |
|
|
293
|
-
| **Network** | Sorties HTTPS vers les API publiques des registres. Serveur REST localhost facultatif. |
|
|
294
|
-
| **Telemetry** | Aucune donnée collectée ou envoyée. |
|
|
295
|
-
|
|
296
|
-
Consultez le fichier [SECURITY.md](SECURITY.md) pour signaler les vulnérabilités.
|
|
297
|
-
|
|
298
|
-
## Tableau de bord
|
|
299
|
-
|
|
300
|
-
| Catégorie | Score |
|
|
301
|
-
|----------|-------|
|
|
302
|
-
| A. Sécurité | 10 |
|
|
303
|
-
| B. Gestion des erreurs | 10 |
|
|
304
|
-
| C. Documentation pour les administrateurs | 10 |
|
|
305
|
-
| D. Bonnes pratiques de déploiement | 10 |
|
|
306
|
-
| E. Identité (facultatif) | 10 |
|
|
307
|
-
| **Overall** | **50/50** |
|
|
308
|
-
|
|
309
|
-
> Audit complet : [SHIP_GATE.md](SHIP_GATE.md) · [SCORECARD.md](SCORECARD.md)
|
|
310
|
-
|
|
311
|
-
## Licence
|
|
312
|
-
|
|
313
|
-
MIT.
|
|
314
|
-
|
|
289
|
+
|
|
290
|
+
## Sécurité et portée des données
|
|
291
|
+
|
|
292
|
+
| Aspect | Détail |
|
|
293
|
+
|--------|--------|
|
|
294
|
+
| **Data touched** | Statistiques de téléchargement publiques provenant de npm, PyPI, NuGet, VS Code Marketplace, Docker Hub. Cache en mémoire (facultatif). |
|
|
295
|
+
| **Data NOT touched** | Aucune télémétrie. Aucune analyse. Aucun stockage d'informations d'identification. Aucune donnée utilisateur. Aucune écriture de fichiers. |
|
|
296
|
+
| **Permissions** | Lecture : API publiques des registres via HTTPS. Écriture : uniquement vers la sortie standard/erreur standard. |
|
|
297
|
+
| **Network** | Sorties HTTPS vers les API publiques des registres. Serveur REST localhost facultatif. |
|
|
298
|
+
| **Telemetry** | Aucune donnée collectée ou envoyée. |
|
|
299
|
+
|
|
300
|
+
Consultez le fichier [SECURITY.md](SECURITY.md) pour signaler les vulnérabilités.
|
|
301
|
+
|
|
302
|
+
## Tableau de bord
|
|
303
|
+
|
|
304
|
+
| Catégorie | Score |
|
|
305
|
+
|----------|-------|
|
|
306
|
+
| A. Sécurité | 10 |
|
|
307
|
+
| B. Gestion des erreurs | 10 |
|
|
308
|
+
| C. Documentation pour les administrateurs | 10 |
|
|
309
|
+
| D. Bonnes pratiques de déploiement | 10 |
|
|
310
|
+
| E. Identité (facultatif) | 10 |
|
|
311
|
+
| **Overall** | **50/50** |
|
|
312
|
+
|
|
313
|
+
> Audit complet : [SHIP_GATE.md](SHIP_GATE.md) · [SCORECARD.md](SCORECARD.md)
|
|
314
|
+
|
|
315
|
+
## Licence
|
|
316
|
+
|
|
317
|
+
MIT.
|
|
318
|
+
|
|
315
319
|
---
|
|
316
|
-
|
|
317
|
-
Construit par <a href="https://mcp-tool-shop.github.io/">MCP Tool Shop</a>.
|
|
320
|
+
|
|
321
|
+
Construit par <a href="https://mcp-tool-shop.github.io/">MCP Tool Shop</a>.
|