UNPKG

authenticator-clui

Version:

A simple command-line authenticator with encryption (import accounts from Google Authenticator, Microsoft Authenticator and Facebook Authenticator)

499 lines (493 loc) 13.5 kB
const moment = require('moment'); const rp = require('request-promise'); const _ = require('lodash'); const packages = [ { "name": "etstatic", "private": false, "settings": null, "created": { "ts": 1519811577114, "rel": "4 years ago" }, "updated": { "ts": 1519811577114, "rel": "4 years ago" }, "description": "A simple static file server middleware n", "maintainers": [ "tauseefnaqvi" ], "dist-tags": { "latest": "1.0.3" }, "lastPublish": { "maintainer": "tauseefnaqvi", "time": "2018-02-28T12:50:42.051Z", "formattedTime": "4 years ago" }, "types": {}, "publisher": { "name": "tauseefnaqvi", "avatars": {}, "created": { "ts": null, "rel": "Invalid date" } }, "date": { "ts": 1519822242051, "rel": "4 years ago" }, "version": "1.0.3" }, { "name": "http-webnode", "private": false, "settings": null, "created": { "ts": 1519973128104, "rel": "4 years ago" }, "updated": { "ts": 1519973128104, "rel": "4 years ago" }, "description": "A simple zero-configuration command-line static web server with custom error file, also serve single page application like angular 2/4/5 over http/https.", "maintainers": [ "tauseefnaqvi" ], "dist-tags": { "latest": "1.0.1" }, "lastPublish": { "maintainer": "tauseefnaqvi", "time": "2018-03-02T06:46:15.772Z", "formattedTime": "4 years ago" }, "types": {}, "publisher": { "name": "tauseefnaqvi", "avatars": {}, "created": { "ts": null, "rel": "Invalid date" } }, "date": { "ts": 1519973175772, "rel": "4 years ago" }, "version": "1.0.1" }, { "name": "input-data-decoder-ethereum", "private": false, "settings": null, "created": { "ts": 1522841082410, "rel": "3 years ago" }, "updated": { "ts": 1522841082410, "rel": "3 years ago" }, "description": "ethereum transaction input data decoder", "maintainers": [ "tauseefnaqvi" ], "dist-tags": { "latest": "0.0.2" }, "lastPublish": { "maintainer": "tauseefnaqvi", "time": "2018-04-04T11:29:58.337Z", "formattedTime": "3 years ago" }, "types": {}, "publisher": { "name": "tauseefnaqvi", "avatars": {}, "created": { "ts": null, "rel": "Invalid date" } }, "date": { "ts": 1522841398337, "rel": "3 years ago" }, "version": "0.0.2" }, { "name": "follow-redirect-url", "private": false, "settings": null, "created": { "ts": 1550358795275, "rel": "3 years ago" }, "updated": { "ts": 1550358798535, "rel": "3 years ago" }, "description": "A simple command-line utility that lets you follow redirects to see where http URLs end up. Useful for shortened URLs.", "maintainers": [ "tauseefnaqvi" ], "dist-tags": { "latest": "1.0.5" }, "lastPublish": { "maintainer": "tauseefnaqvi", "time": "2019-02-17T11:56:19.750Z", "formattedTime": "3 years ago" }, "types": {}, "publisher": { "name": "tauseefnaqvi", "avatars": {}, "created": { "ts": null, "rel": "Invalid date" } }, "date": { "ts": 1550404579750, "rel": "3 years ago" }, "version": "1.0.5" }, { "name": "timestamp-mongoose", "private": false, "settings": null, "created": { "ts": 1564158503794, "rel": "2 years ago" }, "updated": { "ts": 1564158608775, "rel": "2 years ago" }, "description": "Mongoose plugin that automatically adds createdAt and updatedAt date properties", "maintainers": [ "tauseefnaqvi" ], "dist-tags": { "latest": "0.0.2" }, "lastPublish": { "maintainer": "tauseefnaqvi", "time": "2019-07-27T07:25:37.802Z", "formattedTime": "2 years ago" }, "types": {}, "publisher": { "name": "tauseefnaqvi", "avatars": {}, "created": { "ts": null, "rel": "Invalid date" } }, "date": { "ts": 1564212337802, "rel": "2 years ago" }, "version": "0.0.2" }, { "name": "city-timezones-offset", "private": false, "settings": null, "created": { "ts": 1565241980389, "rel": "2 years ago" }, "updated": { "ts": 1565241983696, "rel": "2 years ago" }, "description": "A lightweight module to get timezones and offset for a particular city", "maintainers": [ "tauseefnaqvi" ], "dist-tags": { "latest": "0.0.2" }, "lastPublish": { "maintainer": "tauseefnaqvi", "time": "2019-08-08T05:30:49.955Z", "formattedTime": "2 years ago" }, "types": {}, "publisher": { "name": "tauseefnaqvi", "avatars": {}, "created": { "ts": null, "rel": "Invalid date" } }, "date": { "ts": 1565242249955, "rel": "2 years ago" }, "version": "0.0.2" }, { "name": "pm2-logrotate-s3", "private": false, "settings": null, "created": { "ts": 1576406476051, "rel": "2 years ago" }, "updated": { "ts": 1576406479984, "rel": "2 years ago" }, "description": "Module to rotate logs of every pm2 application and also upload to s3", "maintainers": [ "tauseefnaqvi" ], "dist-tags": { "latest": "3.0.3" }, "lastPublish": { "maintainer": "tauseefnaqvi", "time": "2021-03-01T11:32:18.958Z", "formattedTime": "7 months ago" }, "types": {}, "publisher": { "name": "tauseefnaqvi", "avatars": {}, "created": { "ts": null, "rel": "Invalid date" } }, "date": { "ts": 1614598338958, "rel": "7 months ago" }, "version": "3.0.3" }, { "name": "nodegitlib", "private": false, "settings": null, "created": { "ts": 1583663245789, "rel": "2 years ago" }, "updated": { "ts": 1583663248693, "rel": "2 years ago" }, "description": "A tool to play with git within node project", "maintainers": [ "tauseefnaqvi" ], "dist-tags": { "latest": "1.0.2" }, "lastPublish": { "maintainer": "tauseefnaqvi", "time": "2020-03-08T13:59:41.776Z", "formattedTime": "2 years ago" }, "types": {}, "publisher": { "name": "tauseefnaqvi", "avatars": {}, "created": { "ts": null, "rel": "Invalid date" } }, "date": { "ts": 1583675981776, "rel": "2 years ago" }, "version": "1.0.2" }, { "name": "knexcache", "private": false, "settings": null, "created": { "ts": 1592309343948, "rel": "a year ago" }, "updated": { "ts": 1592309346443, "rel": "a year ago" }, "description": "Events and Redis based caching service for Knex, Cache frequently use knex query result in Redis with TTL ", "maintainers": [ "tauseefnaqvi" ], "dist-tags": { "latest": "1.0.0" }, "lastPublish": { "maintainer": "tauseefnaqvi", "time": "2020-06-16T12:09:04.212Z", "formattedTime": "a year ago" }, "types": {}, "publisher": { "name": "tauseefnaqvi", "avatars": {}, "created": { "ts": null, "rel": "Invalid date" } }, "date": { "ts": 1592309344212, "rel": "a year ago" }, "version": "1.0.0" }, { "name": "infeedohello", "private": false, "settings": null, "created": { "ts": 1614838904532, "rel": "6 months ago" }, "updated": { "ts": 1614838907025, "rel": "6 months ago" }, "description": "Basic Hello Program", "maintainers": [ "tauseefnaqvi" ], "dist-tags": { "latest": "1.0.1" }, "lastPublish": { "maintainer": "tauseefnaqvi", "time": "2021-03-04T06:27:26.080Z", "formattedTime": "6 months ago" }, "types": {}, "publisher": { "name": "tauseefnaqvi", "avatars": {}, "created": { "ts": null, "rel": "Invalid date" } }, "date": { "ts": 1614839246080, "rel": "6 months ago" }, "version": "1.0.1" }, { "name": "aws-redshift", "private": false, "settings": null, "created": { "ts": 1614928874969, "rel": "6 months ago" }, "updated": { "ts": 1614928877671, "rel": "6 months ago" }, "description": "A simple collection of tools to help you get started with Amazon Redshift from node.js", "maintainers": [ "tauseefnaqvi" ], "dist-tags": { "latest": "1.0.1" }, "lastPublish": { "maintainer": "tauseefnaqvi", "time": "2021-03-05T10:39:42.012Z", "formattedTime": "6 months ago" }, "types": {}, "publisher": { "name": "tauseefnaqvi", "avatars": {}, "created": { "ts": null, "rel": "Invalid date" } }, "date": { "ts": 1614940782012, "rel": "6 months ago" }, "version": "1.0.1" }, { "name": "authenticator-clui", "private": false, "settings": null, "created": { "ts": 1631533369943, "rel": "5 days ago" }, "updated": { "ts": 1631533505193, "rel": "5 days ago" }, "description": "A simple command-line authenticator (import accounts from Google Authenticator, Microsoft Authenticator and Facebook Authenticator)", "maintainers": [ "tauseefnaqvi" ], "dist-tags": { "latest": "1.0.3" }, "lastPublish": { "maintainer": "tauseefnaqvi", "time": "2021-09-16T23:05:42.810Z", "formattedTime": "a day ago" }, "types": {}, "publisher": { "name": "tauseefnaqvi", "avatars": {}, "created": { "ts": null, "rel": "Invalid date" } }, "date": { "ts": 1631833542810, "rel": "a day ago" }, "version": "1.0.3" } ]; const DATE_FORMAT = 'YYYY-MM-DD'; const CURRENT_DATE = moment().format(DATE_FORMAT); const getStats = async () => { let packages_stats = [] for (let package of packages) { const created = moment(package.created.ts).format(DATE_FORMAT); const name = package.name; const url = `https://npm-stat.com/api/download-counts?package=${name}&from=${created}&until=${CURRENT_DATE}`; let date_stat_map = await rp(url, { json: true }); date_stat_map = date_stat_map[name]; let total_stats = 0; for (let date in date_stat_map) { total_stats += date_stat_map[date]; } packages_stats.push({ name, created, total_stats }) } packages_stats = _.orderBy(packages_stats, 'total_stats', 'desc') console.log(packages_stats); } getStats()