verdaccio-install-counts
v1.1.5
Published
The package provides public api that gives you download counts by package and time range.
Downloads
3
Maintainers
Readme
verdaccio-install-counts
Introduction
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
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: ...
API endpoints
Point values
Gets the total downloads for a given period for a specific package.
GET https://127.0.0.1:4873/downloads/point/{period}/{package}
Parameters
Acceptable values for period
for a specific package. The timezone is GMT.
Output
JSON output:
{
"downloads": 16230,
"start": "2023-01-01",
"end": "2023-01-31",
"package": "com.example.package"
}
Ranges
Gets the downloads per day for a given period for a specific package.
GET https://127.0.0.1:4873/downloads/range/{period}/{package}
Parameters
Same as for /downloads/point
.
Output
Responses are very similar to the point API, except that downloads is now an array of days with downloads on each day:
{
"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"
}
Redis data structure
The stats data is stored in Redis using timeseries, hashes or sorted sets.
Timeseries
Timeseries for daily download counts for a specific package.
tspkghit:daily:<package_name> <timestamp_utc> <count> LABELS category tspkghit:daily pkgname <package_name>
Hashes
Hash for download counts for a specific package breakdown by versions.
pkghit:ver:<package_name> <version> <count>
Sorted sets
Sorted set for all-time download counts.
zpkghit:alltime <count> <package_name>
Sorted set for the last 30 days' download counts.
zpkghit:lastmonth <count> <package_name>
Cron
The zpkghit:lastmonth
sorted set requries a cron job:
VERDACCIO_CONFIG=config.yaml npm run update-lastmonth