The package provides public api that gives you download counts by package and time range.
npm install verdaccio-install-counts
* Introduction
* Install
* API endpoints
* Point values
* Parameters
* Output
* Ranges
* Parameters
* Output
* Redis data structure
* Timeseries
* Hashes
* Sorted sets
* Cron
This package implements API endpoints for package download counts similar to the ones provided by npm, but limited to a specific package.
The stats data is stored in Redis, using RedisTimeSeries. Please refer to the Redis data structure section for more information.
Note that this package does not include a widget for the Verdaccio web UI.
Install the package.
```
npm install verdaccio-install-counts
Update the middlewares seciton of verdaccio's config.yaml.``
middlewares:
install-counts:
enabled: true
redis:
host: 127.0.0.1
port: 6379
password: ...
Gets the total downloads for a given period for a specific package.
``
GET https://127.0.0.1:4873/downloads/point/{period}/{package}
Acceptable values for period for a specific package. The timezone is GMT.
JSON output:
`javascript`
{
"downloads": 16230,
"start": "2023-01-01",
"end": "2023-01-31",
"package": "com.example.package"
}
Gets the downloads per day for a given period for a specific package.
``
GET https://127.0.0.1:4873/downloads/range/{period}/{package}
Same as for /downloads/point.
Responses are very similar to the point API, except that downloads is now an array of days with downloads on each day:
`javascript`
{
"downloads": [
{
"day": "2023-01-01",
"downloads": 540
},
..
{
"day": "2023-01-31",
"downloads": 425
}
],
"start": "2023-01-01",
"end": "2023-01-31",
"package": "com.example.package"
}
The stats data is stored in Redis using timeseries, hashes or sorted sets.
Timeseries for daily download counts for a specific package.
``
tspkghit:daily:
Hash for download counts for a specific package breakdown by versions.
``
pkghit:ver:
Sorted set for all-time download counts.
``
zpkghit:alltime
Sorted set for the last 30 days' download counts.
``
zpkghit:lastmonth
The zpkghit:lastmonth sorted set requries a cron job:`bash``
VERDACCIO_CONFIG=config.yaml npm run update-lastmonth