├── stats.json ├── package.json ├── .github └── workflows │ └── sync.yml ├── .gitignore ├── index.js └── README.md /stats.json: -------------------------------------------------------------------------------- 1 | { 2 | "schemaVersion": 1, 3 | "label": "NPM", 4 | "message": "79,686,753 Downloads", 5 | "color": "orange", 6 | "style": "for-the-badge", 7 | "namedLogo": "npm" 8 | } -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "npm-statistics", 3 | "version": "1.0.0", 4 | "private": true, 5 | "description": "NPM Download Statistics for DavidWells Open Source Projects", 6 | "main": "index.js", 7 | "scripts": { 8 | "start": "node index.js" 9 | }, 10 | "repository": { 11 | "type": "git", 12 | "url": "git+https://github.com/DavidWells/npm-statistics.git" 13 | }, 14 | "keywords": [], 15 | "author": "ClearTax OpenSource ", 16 | "license": "ISC", 17 | "bugs": { 18 | "url": "https://github.com/DavidWells/npm-statistics/issues" 19 | }, 20 | "homepage": "https://github.com/DavidWells/npm-statistics#readme", 21 | "devDependencies": { 22 | "lodash": "^4.17.15", 23 | "markdown-magic": "^1.0.0", 24 | "markdown-table": "^1.1.3" 25 | }, 26 | "npm-stats": "davidwells", 27 | "dependencies": { 28 | "analytics": "^0.3.5", 29 | "npmtotal": "^1.4.0" 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /.github/workflows/sync.yml: -------------------------------------------------------------------------------- 1 | name: cron 2 | 3 | on: 4 | schedule: 5 | - cron: "1 0 * * *" 6 | 7 | jobs: 8 | update: 9 | runs-on: ubuntu-latest 10 | steps: 11 | - uses: actions/checkout@v1 12 | 13 | - uses: actions/setup-node@v1 14 | with: 15 | node-version: "13.x" 16 | # Maybe switch to https://github.com/bahmutov/npm-install 17 | - name: Cache node modules 18 | uses: actions/cache@v1 19 | with: 20 | path: ~/.npm 21 | key: ${{ runner.os }}-node-${{ hashFiles('**/package-lock.json') }} 22 | restore-keys: | 23 | ${{ runner.os }}-node- 24 | - name: Install 25 | run: | 26 | npm ci 27 | - name: Collect 28 | run: | 29 | npm start 30 | - name: Add 31 | run: | 32 | git config --global user.email "davidtronfivethousand@gmail.com" 33 | git config --global user.name "David Wells Bot" 34 | git status 35 | git add . 36 | git commit -m ":package: Update Downloads" 37 | - name: Push 38 | uses: ad-m/github-push-action@master 39 | with: 40 | github_token: ${{ secrets.GITHUB_TOKEN }} 41 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # Logs 2 | logs 3 | *.log 4 | npm-debug.log* 5 | yarn-debug.log* 6 | yarn-error.log* 7 | lerna-debug.log* 8 | 9 | # Diagnostic reports (https://nodejs.org/api/report.html) 10 | report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json 11 | 12 | # Runtime data 13 | pids 14 | *.pid 15 | *.seed 16 | *.pid.lock 17 | 18 | # Directory for instrumented libs generated by jscoverage/JSCover 19 | lib-cov 20 | 21 | # Coverage directory used by tools like istanbul 22 | coverage 23 | *.lcov 24 | 25 | # nyc test coverage 26 | .nyc_output 27 | 28 | # Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files) 29 | .grunt 30 | 31 | # Bower dependency directory (https://bower.io/) 32 | bower_components 33 | 34 | # node-waf configuration 35 | .lock-wscript 36 | 37 | # Compiled binary addons (https://nodejs.org/api/addons.html) 38 | build/Release 39 | 40 | # Dependency directories 41 | node_modules/ 42 | jspm_packages/ 43 | 44 | # TypeScript v1 declaration files 45 | typings/ 46 | 47 | # TypeScript cache 48 | *.tsbuildinfo 49 | 50 | # Optional npm cache directory 51 | .npm 52 | 53 | # Optional eslint cache 54 | .eslintcache 55 | 56 | # Microbundle cache 57 | .rpt2_cache/ 58 | .rts2_cache_cjs/ 59 | .rts2_cache_es/ 60 | .rts2_cache_umd/ 61 | 62 | # Optional REPL history 63 | .node_repl_history 64 | 65 | # Output of 'npm pack' 66 | *.tgz 67 | 68 | # Yarn Integrity file 69 | .yarn-integrity 70 | 71 | # dotenv environment variables file 72 | .env 73 | .env.test 74 | 75 | # parcel-bundler cache (https://parceljs.org/) 76 | .cache 77 | 78 | # Next.js build output 79 | .next 80 | 81 | # Nuxt.js build / generate output 82 | .nuxt 83 | dist 84 | 85 | # Gatsby files 86 | .cache/ 87 | # Comment in the public line in if your project uses Gatsby and not Next.js 88 | # https://nextjs.org/blog/next-9-1#public-directory-support 89 | # public 90 | 91 | # vuepress build output 92 | .vuepress/dist 93 | 94 | # Serverless directories 95 | .serverless/ 96 | 97 | # FuseBox cache 98 | .fusebox/ 99 | 100 | # DynamoDB Local files 101 | .dynamodb/ 102 | 103 | # TernJS port file 104 | .tern-port 105 | 106 | # Stores VSCode versions used for testing VSCode extensions 107 | .vscode-test 108 | -------------------------------------------------------------------------------- /index.js: -------------------------------------------------------------------------------- 1 | const path = require('path') 2 | const fs = require('fs') 3 | const _ = require('lodash') 4 | const table = require('markdown-table') 5 | const markdownMagic = require('markdown-magic') 6 | const npmtotal = require('npmtotal') 7 | const pkg = require('./package.json') 8 | const badgeStats = require('./stats.json') 9 | 10 | const key = pkg['npm-stats'] 11 | 12 | if (!key) { 13 | throw new Error('Please add `npm-stats` to your package.json'); // eslint-disable-line 14 | } 15 | 16 | const exclude = [ 17 | 'fung-shway', 18 | '@vendia/serverless-express', 19 | 'testing-lerna-usage', 20 | 'testing-lerna-one', 21 | 'testing-lerna-two', 22 | '@serverless/sdk', 23 | 'micro-api-client', 24 | '@middy', 25 | 'proto-jojo', 26 | 'serviceful', 27 | '@middy/core', 28 | '@middy/error-logger', 29 | '@middy/http-partial-response', 30 | '@middy/http-content-negotiation', 31 | '@middy/input-output-logger', 32 | '@middy/s3-key-normalizer', 33 | 'vue-cli-plugin-netlify-lambda', 34 | '@middy/function-shield', 35 | '@netlify/git-utils', 36 | '@netlify/run-utils', 37 | '@netlify/functions-utils', 38 | '@middy/ssm', 39 | '@middy/secrets-manager', 40 | '@middy/validator', 41 | 'netlify-lambda', 42 | '@middy/cache', 43 | '@middy/http-error-handler', 44 | '@netlify/rules-proxy', 45 | 'netlify-redirector', 46 | 'netlify-cms', 47 | 'netlify-cli-logo', 48 | '@netlify/open-api', 49 | 'gotrue-js', 50 | 'gocommerce-js', 51 | 'netlify-lm-plugin', 52 | '@netlify/cli-utils', 53 | 'netlify-setup-heuristics', 54 | '@serverless/emulator', 55 | 'netlify', 56 | '@netlify/zip-it-and-ship-it', 57 | 'netlify-identity-widget', 58 | 'middy', 59 | 'netlify-redirect-parser', 60 | '@netlify/config', 61 | 'user-events', 62 | '@middy/http-urlencode-path-parser', 63 | '@middy/http-urlencode-body-parser', 64 | '@middy/do-not-wait-for-empty-event-loop', 65 | '@middy/http-multipart-body-parser', 66 | '@middy/http-cors', 67 | '@middy/http-header-normalizer', 68 | '@middy/http-json-body-parser', 69 | '@middy/http-event-normalizer', 70 | '@middy/http-response-serializer', 71 | '@middy/warmup', 72 | '@netlify/cache-utils', 73 | '@middy/http-security-headers', 74 | '@middy/db-manager', 75 | 'phenomic-serverless', 76 | '@serverless/sdk', 77 | '@serverless/aws', 78 | '@netlify/parse-domain', 79 | '@netlify/plugin-sitemap', 80 | '@netlify/sitemap-plugin', 81 | '@serverless/ui-components', 82 | '@serverless/fdk', 83 | 'netlify-dev-plugin', 84 | 'npm-post-install-example', 85 | 'netlifys_api_definition' 86 | ] 87 | 88 | function numberWithCommas(x) { 89 | return x.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ","); 90 | } 91 | 92 | function generateMarkdownTable(tableRows, sum) { 93 | const total = numberWithCommas(sum) 94 | const config = { 95 | transforms: { 96 | PACKAGES() { 97 | return table([ 98 | ['Name', 'Downloads'], 99 | ['**Total**', `**${total}**`], 100 | ...tableRows, 101 | ['**Total**', `**${total}**`], 102 | ]) 103 | } 104 | } 105 | } 106 | 107 | markdownMagic(path.join(__dirname, 'README.md'), config, d => { 108 | console.log(`Updated total downloads ${sum}`) 109 | }) 110 | } 111 | 112 | (async () => { 113 | console.log(`Running npmtotal(${key}), This can take some time`) 114 | const stats = await npmtotal(key, { 115 | exclude: exclude 116 | }) 117 | 118 | const sortedStats = _.reverse( 119 | _.sortBy(stats.stats, [ 120 | function(o) { 121 | return o[1] 122 | } 123 | ]) 124 | ).filter((d) => { 125 | const [name, count] = d 126 | if (count === 0) { 127 | return false 128 | } 129 | if (name.match(/^@middy/)) { 130 | return false 131 | } 132 | return true 133 | }).map((d) => { 134 | const [name, count] = d 135 | return [ 136 | `[${name}](https://www.npmjs.com/package/${name})`, 137 | numberWithCommas(count) 138 | ] 139 | }) 140 | // '@serverless', '@netlify', 'netlify-', '@middy' 141 | 142 | badgeStats.message = `${numberWithCommas(stats.sum)} Downloads` 143 | 144 | await fs.writeFileSync('./stats.json', JSON.stringify(badgeStats, null, 2)) 145 | 146 | generateMarkdownTable(sortedStats, stats.sum) 147 | })() 148 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # npm-statistics 2 | 3 | > Repo deprecated. NPM stats API broken 4 | 5 | NPM Download Statistics for DavidWells Open Source Projects. Updated Daily. 6 | 7 | ## Downloads 8 | 9 | 10 | 11 | | Name | Downloads | 12 | | ---------------------------------------------------------------------------------------------------------------------- | -------------- | 13 | | **Total** | **79,686,753** | 14 | | [@analytics/type-utils](https://www.npmjs.com/package/@analytics/type-utils) | 8,638,828 | 15 | | [@analytics/storage-utils](https://www.npmjs.com/package/@analytics/storage-utils) | 7,767,352 | 16 | | [analytics](https://www.npmjs.com/package/analytics) | 7,615,426 | 17 | | [@analytics/core](https://www.npmjs.com/package/@analytics/core) | 7,450,089 | 18 | | [analytics-utils](https://www.npmjs.com/package/analytics-utils) | 7,394,086 | 19 | | [@analytics/cookie-utils](https://www.npmjs.com/package/@analytics/cookie-utils) | 7,352,547 | 20 | | [@analytics/global-storage-utils](https://www.npmjs.com/package/@analytics/global-storage-utils) | 7,170,480 | 21 | | [@analytics/localstorage-utils](https://www.npmjs.com/package/@analytics/localstorage-utils) | 7,129,228 | 22 | | [@analytics/session-storage-utils](https://www.npmjs.com/package/@analytics/session-storage-utils) | 6,876,611 | 23 | | [@analytics/google-analytics](https://www.npmjs.com/package/@analytics/google-analytics) | 2,277,837 | 24 | | [@analytics/segment](https://www.npmjs.com/package/@analytics/segment) | 1,793,579 | 25 | | [@analytics/google-tag-manager](https://www.npmjs.com/package/@analytics/google-tag-manager) | 1,745,246 | 26 | | [use-analytics](https://www.npmjs.com/package/use-analytics) | 1,344,083 | 27 | | [@analytics/mixpanel](https://www.npmjs.com/package/@analytics/mixpanel) | 588,402 | 28 | | [@analytics/amplitude](https://www.npmjs.com/package/@analytics/amplitude) | 445,890 | 29 | | [json-alexander](https://www.npmjs.com/package/json-alexander) | 381,993 | 30 | | [@analytics/listener-utils](https://www.npmjs.com/package/@analytics/listener-utils) | 376,540 | 31 | | [@analytics/session-utils](https://www.npmjs.com/package/@analytics/session-utils) | 346,175 | 32 | | [markdown-magic](https://www.npmjs.com/package/markdown-magic) | 324,538 | 33 | | [@analytics/hubspot](https://www.npmjs.com/package/@analytics/hubspot) | 288,465 | 34 | | [@analytics/snowplow](https://www.npmjs.com/package/@analytics/snowplow) | 256,582 | 35 | | [@analytics/form-utils](https://www.npmjs.com/package/@analytics/form-utils) | 243,233 | 36 | | [analytics-plugin-tab-events](https://www.npmjs.com/package/analytics-plugin-tab-events) | 218,429 | 37 | | [@analytics/activity-utils](https://www.npmjs.com/package/@analytics/activity-utils) | 190,851 | 38 | | [@analytics/scroll-utils](https://www.npmjs.com/package/@analytics/scroll-utils) | 158,851 | 39 | | [serverless-manifest-plugin](https://www.npmjs.com/package/serverless-manifest-plugin) | 127,158 | 40 | | [@analytics/url-utils](https://www.npmjs.com/package/@analytics/url-utils) | 105,605 | 41 | | [@analytics/google-analytics-v3](https://www.npmjs.com/package/@analytics/google-analytics-v3) | 92,036 | 42 | | [analytics-plugin-do-not-track](https://www.npmjs.com/package/analytics-plugin-do-not-track) | 89,225 | 43 | | [@analytics/queue-utils](https://www.npmjs.com/package/@analytics/queue-utils) | 82,802 | 44 | | [@analytics/router-utils](https://www.npmjs.com/package/@analytics/router-utils) | 72,168 | 45 | | [safe-await](https://www.npmjs.com/package/safe-await) | 67,462 | 46 | | [@analytics/aws-pinpoint](https://www.npmjs.com/package/@analytics/aws-pinpoint) | 63,434 | 47 | | [@analytics/intercom](https://www.npmjs.com/package/@analytics/intercom) | 58,669 | 48 | | [oparser](https://www.npmjs.com/package/oparser) | 50,817 | 49 | | [micro-mdx-parser](https://www.npmjs.com/package/micro-mdx-parser) | 47,382 | 50 | | [@davidwells/md-utils](https://www.npmjs.com/package/@davidwells/md-utils) | 46,945 | 51 | | [@davidwells/postcss-math](https://www.npmjs.com/package/@davidwells/postcss-math) | 46,116 | 52 | | [@analytics/fullstory](https://www.npmjs.com/package/@analytics/fullstory) | 43,991 | 53 | | [@analytics/perfumejs](https://www.npmjs.com/package/@analytics/perfumejs) | 42,281 | 54 | | [@analytics/original-source-plugin](https://www.npmjs.com/package/@analytics/original-source-plugin) | 35,613 | 55 | | [@analytics/customerio](https://www.npmjs.com/package/@analytics/customerio) | 26,348 | 56 | | [@analytics/gosquared](https://www.npmjs.com/package/@analytics/gosquared) | 22,711 | 57 | | [analytics-plugin-original-source](https://www.npmjs.com/package/analytics-plugin-original-source) | 21,360 | 58 | | [@analytics/crazy-egg](https://www.npmjs.com/package/@analytics/crazy-egg) | 19,782 | 59 | | [netlify-plugin-debug-cache](https://www.npmjs.com/package/netlify-plugin-debug-cache) | 19,528 | 60 | | [react-autocomplete-cli](https://www.npmjs.com/package/react-autocomplete-cli) | 18,965 | 61 | | [cache-me-outside](https://www.npmjs.com/package/cache-me-outside) | 7,781 | 62 | | [configorama](https://www.npmjs.com/package/configorama) | 6,892 | 63 | | [analytics-plugin-event-validation](https://www.npmjs.com/package/analytics-plugin-event-validation) | 6,320 | 64 | | [icon-pipeline](https://www.npmjs.com/package/icon-pipeline) | 5,791 | 65 | | [@analytics/simple-analytics](https://www.npmjs.com/package/@analytics/simple-analytics) | 5,553 | 66 | | [analytics-plugin-window-events](https://www.npmjs.com/package/analytics-plugin-window-events) | 5,485 | 67 | | [@analytics/remote-storage-utils](https://www.npmjs.com/package/@analytics/remote-storage-utils) | 5,349 | 68 | | [@vendia/share-cli](https://www.npmjs.com/package/@vendia/share-cli) | 5,152 | 69 | | [analytics-plugin-ga](https://www.npmjs.com/package/analytics-plugin-ga) | 5,135 | 70 | | [safe-chalk](https://www.npmjs.com/package/safe-chalk) | 4,500 | 71 | | [@vendia/share-sdk](https://www.npmjs.com/package/@vendia/share-sdk) | 4,137 | 72 | | [analytics-plugin-google-tag-manager](https://www.npmjs.com/package/analytics-plugin-google-tag-manager) | 3,987 | 73 | | [@analytics/visitor-source](https://www.npmjs.com/package/@analytics/visitor-source) | 3,889 | 74 | | [get-object-diff](https://www.npmjs.com/package/get-object-diff) | 3,781 | 75 | | [doxxx](https://www.npmjs.com/package/doxxx) | 3,390 | 76 | | [@vendia/client](https://www.npmjs.com/package/@vendia/client) | 3,232 | 77 | | [@vendia/codegen-tools](https://www.npmjs.com/package/@vendia/codegen-tools) | 3,012 | 78 | | [@vendia/aws-signed-fetch](https://www.npmjs.com/package/@vendia/aws-signed-fetch) | 2,911 | 79 | | [gatsby-plugin-analytics](https://www.npmjs.com/package/gatsby-plugin-analytics) | 2,901 | 80 | | [@vendia/codegen-vendia-client-plugin](https://www.npmjs.com/package/@vendia/codegen-vendia-client-plugin) | 2,759 | 81 | | [@analytics/custify](https://www.npmjs.com/package/@analytics/custify) | 1,603 | 82 | | [markdown-magic-github-contributors](https://www.npmjs.com/package/markdown-magic-github-contributors) | 1,316 | 83 | | [netlify-cms-app-fork](https://www.npmjs.com/package/netlify-cms-app-fork) | 1,296 | 84 | | [@vendia/live-lambda](https://www.npmjs.com/package/@vendia/live-lambda) | 980 | 85 | | [@davidwells/config-postcss](https://www.npmjs.com/package/@davidwells/config-postcss) | 748 | 86 | | [parse-npm-script](https://www.npmjs.com/package/parse-npm-script) | 671 | 87 | | [netlify-cms-widget-markdown-with-underline](https://www.npmjs.com/package/netlify-cms-widget-markdown-with-underline) | 647 | 88 | | [tiny-cognito](https://www.npmjs.com/package/tiny-cognito) | 513 | 89 | | [@davidwells/yaml-utils](https://www.npmjs.com/package/@davidwells/yaml-utils) | 457 | 90 | | [analytics-plugin-segment](https://www.npmjs.com/package/analytics-plugin-segment) | 437 | 91 | | [whats-in-the-cache](https://www.npmjs.com/package/whats-in-the-cache) | 385 | 92 | | [@analytics/redact-utils](https://www.npmjs.com/package/@analytics/redact-utils) | 307 | 93 | | [@davidwells/components-form](https://www.npmjs.com/package/@davidwells/components-form) | 298 | 94 | | [analytics-plugin-customerio](https://www.npmjs.com/package/analytics-plugin-customerio) | 287 | 95 | | [@davidwells/react-utils](https://www.npmjs.com/package/@davidwells/react-utils) | 277 | 96 | | [analytics-util-params](https://www.npmjs.com/package/analytics-util-params) | 261 | 97 | | [git-er-done](https://www.npmjs.com/package/git-er-done) | 252 | 98 | | [analytics-util-cookie](https://www.npmjs.com/package/analytics-util-cookie) | 252 | 99 | | [testing-pnpm-package-c](https://www.npmjs.com/package/testing-pnpm-package-c) | 250 | 100 | | [react-primatives](https://www.npmjs.com/package/react-primatives) | 244 | 101 | | [@davidwells/eslint-config](https://www.npmjs.com/package/@davidwells/eslint-config) | 233 | 102 | | [analytics-plugin-simple-analytics](https://www.npmjs.com/package/analytics-plugin-simple-analytics) | 224 | 103 | | [@davidwells/components-flex](https://www.npmjs.com/package/@davidwells/components-flex) | 214 | 104 | | [extract-responsive-styles](https://www.npmjs.com/package/extract-responsive-styles) | 213 | 105 | | [@vendia/block-subscription-handler](https://www.npmjs.com/package/@vendia/block-subscription-handler) | 208 | 106 | | [vendia](https://www.npmjs.com/package/vendia) | 204 | 107 | | [@analytics/countly](https://www.npmjs.com/package/@analytics/countly) | 197 | 108 | | [@davidwells/cms-setup](https://www.npmjs.com/package/@davidwells/cms-setup) | 188 | 109 | | [analytics-util-storage](https://www.npmjs.com/package/analytics-util-storage) | 187 | 110 | | [@davidwells/cms-auth](https://www.npmjs.com/package/@davidwells/cms-auth) | 187 | 111 | | [style-guard](https://www.npmjs.com/package/style-guard) | 186 | 112 | | [@davidwells/cogneato](https://www.npmjs.com/package/@davidwells/cogneato) | 182 | 113 | | [testing-pnpm-package-d](https://www.npmjs.com/package/testing-pnpm-package-d) | 173 | 114 | | [persist-previous-build-assets](https://www.npmjs.com/package/persist-previous-build-assets) | 171 | 115 | | [gitignore-utils](https://www.npmjs.com/package/gitignore-utils) | 164 | 116 | | [@davidwells/components-input](https://www.npmjs.com/package/@davidwells/components-input) | 164 | 117 | | [@analytics/ownstats](https://www.npmjs.com/package/@analytics/ownstats) | 161 | 118 | | [@analytics/churn-zero](https://www.npmjs.com/package/@analytics/churn-zero) | 150 | 119 | | [glob-monster](https://www.npmjs.com/package/glob-monster) | 147 | 120 | | [install-github-dep](https://www.npmjs.com/package/install-github-dep) | 145 | 121 | | [aws-profile-utils](https://www.npmjs.com/package/aws-profile-utils) | 145 | 122 | | [env-stage-loader](https://www.npmjs.com/package/env-stage-loader) | 141 | 123 | | [analytics-plugin-hubspot](https://www.npmjs.com/package/analytics-plugin-hubspot) | 135 | 124 | | [testing-pnpm-package-a](https://www.npmjs.com/package/testing-pnpm-package-a) | 132 | 125 | | [@davidwells/mrm-task-ava](https://www.npmjs.com/package/@davidwells/mrm-task-ava) | 130 | 126 | | [analytics-plugin-lifecycle-example](https://www.npmjs.com/package/analytics-plugin-lifecycle-example) | 129 | 127 | | [analytics-cli](https://www.npmjs.com/package/analytics-cli) | 124 | 128 | | [analytics-util-forms](https://www.npmjs.com/package/analytics-util-forms) | 123 | 129 | | [@davidwells/lerna-smart-run](https://www.npmjs.com/package/@davidwells/lerna-smart-run) | 120 | 130 | | [ui-base](https://www.npmjs.com/package/ui-base) | 120 | 131 | | [analytics-plugin-crazy-egg](https://www.npmjs.com/package/analytics-plugin-crazy-egg) | 116 | 132 | | [@davidwells/smart-log](https://www.npmjs.com/package/@davidwells/smart-log) | 115 | 133 | | [dom-guard](https://www.npmjs.com/package/dom-guard) | 114 | 134 | | [split-guide-yml](https://www.npmjs.com/package/split-guide-yml) | 113 | 135 | | [testing-pnpm-package-b](https://www.npmjs.com/package/testing-pnpm-package-b) | 111 | 136 | | [js-library-starter-kit](https://www.npmjs.com/package/js-library-starter-kit) | 109 | 137 | | [super-simple-serverless-plugin](https://www.npmjs.com/package/super-simple-serverless-plugin) | 105 | 138 | | [get-last-edited-github-file](https://www.npmjs.com/package/get-last-edited-github-file) | 98 | 139 | | [@davidwells/prettier-config](https://www.npmjs.com/package/@davidwells/prettier-config) | 96 | 140 | | [content-api](https://www.npmjs.com/package/content-api) | 91 | 141 | | [@vendia/analytics-attribution](https://www.npmjs.com/package/@vendia/analytics-attribution) | 88 | 142 | | [babel-plugin-style-guard](https://www.npmjs.com/package/babel-plugin-style-guard) | 87 | 143 | | [react-dom-primitives](https://www.npmjs.com/package/react-dom-primitives) | 86 | 144 | | [markdown-magic-wordcount](https://www.npmjs.com/package/markdown-magic-wordcount) | 85 | 145 | | [aws-profile-cli](https://www.npmjs.com/package/aws-profile-cli) | 85 | 146 | | [analytics-plugin-fullstory](https://www.npmjs.com/package/analytics-plugin-fullstory) | 80 | 147 | | [leanstats](https://www.npmjs.com/package/leanstats) | 76 | 148 | | [webpack-persist-build-hash](https://www.npmjs.com/package/webpack-persist-build-hash) | 76 | 149 | | [@vendia/client-plugin-file-upload](https://www.npmjs.com/package/@vendia/client-plugin-file-upload) | 76 | 150 | | [script-loader-util](https://www.npmjs.com/package/script-loader-util) | 72 | 151 | | [quick-persist](https://www.npmjs.com/package/quick-persist) | 70 | 152 | | [@vendia/graphql-to-json-schema](https://www.npmjs.com/package/@vendia/graphql-to-json-schema) | 69 | 153 | | [store-it](https://www.npmjs.com/package/store-it) | 67 | 154 | | [@davidwells/mrm-task-types](https://www.npmjs.com/package/@davidwells/mrm-task-types) | 66 | 155 | | [@davidwells/fs-utils](https://www.npmjs.com/package/@davidwells/fs-utils) | 63 | 156 | | [devflow](https://www.npmjs.com/package/devflow) | 62 | 157 | | [create-serverless-app](https://www.npmjs.com/package/create-serverless-app) | 55 | 158 | | [feng-shui](https://www.npmjs.com/package/feng-shui) | 52 | 159 | | [vendia-cli](https://www.npmjs.com/package/vendia-cli) | 52 | 160 | | [calm.js](https://www.npmjs.com/package/calm.js) | 50 | 161 | | [responsible.js](https://www.npmjs.com/package/responsible.js) | 50 | 162 | | [redact-logs](https://www.npmjs.com/package/redact-logs) | 44 | 163 | | **Total** | **79,686,753** | 164 | 165 | 166 | ### Wanna use `npm-statistics`? 167 | 168 | 1. `Fork` this repository. 169 | 2. Add your npm username/author or list of packages in `package.json` as `npm-stats` key. 170 | for author 171 | 172 | ```js 173 | { 174 | "npm-stats": "DavidWells" 175 | } 176 | ``` 177 | 178 | or for packages 179 | 180 | ```js 181 | { 182 | "npm-stats": [ 183 | "markdown-magic", 184 | "analytics" 185 | ] 186 | } 187 | ``` 188 | 189 | 3. Run `npm i` and then `npm start` to generate the Downloads. 190 | 4. The repo comes with a daily CRON job that updates the Downloads. 191 | 5. For updating the badge replace `DavidWells` in badge endpoint to your github username/orgname. 192 | https://img.shields.io/endpoint?url=https%3A%2F%2Fraw.githubusercontent.com%2F`username`%2Fnpm-statistics%2Fmaster%2Fstats.json 193 | 6. Enable `GitHub Actions` for your forked repo, as it is enabled by default for forks. 194 | 195 | ## Ref 196 | 197 | - [npmtotal](https://github.com/maddhruv/npmtotal) - Find you npm download statistics 198 | - [Props to ClearTax for this awesome action](https://github.com/ClearTax/npm-statistics) 199 | --------------------------------------------------------------------------------