Gathering detailed insights and metrics for @nodesecure/npm-registry-sdk
Gathering detailed insights and metrics for @nodesecure/npm-registry-sdk
Gathering detailed insights and metrics for @nodesecure/npm-registry-sdk
Gathering detailed insights and metrics for @nodesecure/npm-registry-sdk
Node.js SDK to fetch data from the npm API.
npm install @nodesecure/npm-registry-sdk
Typescript
Module System
Node Version
NPM Version
81
Supply Chain
98.3
Quality
82.4
Maintenance
100
Vulnerability
100
License
TypeScript (99.53%)
JavaScript (0.47%)
Total Downloads
47,073
Last Day
213
Last Week
1,799
Last Month
6,380
Last Year
20,092
MIT License
9 Stars
145 Commits
8 Forks
2 Watchers
1 Branches
15 Contributors
Updated on Jul 01, 2025
Latest Version
3.0.0
Package Id
@nodesecure/npm-registry-sdk@3.0.0
Unpacked Size
30.54 kB
Size
8.75 kB
File Count
33
NPM Version
10.5.2
Node Version
20.13.1
Published on
Jul 05, 2024
Cumulative downloads
Total Downloads
Last Day
-69.5%
213
Compared to previous day
Last Week
-29.7%
1,799
Compared to previous week
Last Month
374.7%
6,380
Compared to previous month
Last Year
56.5%
20,092
Compared to previous year
2
6
Node.js SDK to fetch data from the npm API (with up to date TypeScript types)
This package is available in the Node Package Repository and can be easily installed with npm or yarn.
1$ npm i @nodesecure/npm-registry-sdk 2# or 3$ yarn add @nodesecure/npm-registry-sdk
1import * as Npm from "@nodesecure/npm-registry-sdk"; 2 3const packument: Npm.Packument = await Npm.packument("express"); 4console.log(packument);
packument and packumentVersion take an optional payload options which can be used to provide an NPM token.
1import * as Npm from "@nodesecure/npm-registry-sdk"; 2 3const user: NpmUserProfile = await Npm.user("test-user"); 4console.log(user);
user takes an optional payload pagination which can be used to set page number and page size to be used for paginated properties of the user like pacakges.
1interface LoadRegistryMixins { 2 spawn?: typeof spawnSync; 3}
1interface NpmRegistryMetadata { 2 db_name: string; 3 doc_count: number; 4 doc_del_count: number; 5 update_seq: number; 6 purge_seq: number; 7 compact_running: boolean; 8 disk_size: number; 9 data_size: number; 10 instance_start_time: string; 11 disk_format_version: number; 12 committed_update_seq: number; 13}
1interface Packument { 2 _id: string; 3 _rev: string; 4 name: string; 5 readme?: string; 6 description?: string; 7 'dist-tags': { latest?: string } & ObjectOfStrings; 8 versions: { 9 [key: string]: PackumentVersion 10 }; 11 maintainers: Maintainer[]; 12 time: { 13 modified: string, 14 created: string, 15 [key: string]: string 16 }; 17 users?: { 18 [key: string]: boolean; 19 } 20 contributors?: Maintainer[]; 21 homepage?: string; 22 keywords?: string[]; 23 repository?: Repository; 24 author?: Maintainer; 25 bugs?: { url: string }; 26 license: string; 27 // left out users (stars) deprecated, and attachments (does nothing) 28 readmeFilename?: string; 29}
1type PackumentVersion = PackageJson & { 2 gitHead?: string; 3 maintainers: Maintainer[]; 4 dist: Dist; 5 types?: string; 6 deprecated?: string; 7 _id: string; 8 _npmVersion: string; 9 _nodeVersion: string; 10 _npmUser: Maintainer; 11 _hasShrinkwrap?: boolean; 12 _engineSupported?: boolean; 13 _defaultsLoaded?: boolean; 14 _npmOperationalInternal?: { 15 host: string; 16 tmp: string; 17 } 18};
1interface NpmPackageDownload { 2 downloads: number; 3 start: string; 4 end: string; 5 package: string; 6}
1interface Pagination { 2 perPage: number; 3 page: number; 4} 5 6interface NpmPackage { 7 id: number; 8 name: string; 9 description: string; 10 maintainers: string[]; 11 version: string; 12} 13 14interface NpmUserProfile { 15 id: number; 16 name: string; 17 fullname?: string; 18 accounts: { 19 twitter?: string; 20 github?: string; 21 }; 22 avatars: { 23 small: string; 24 medium: string; 25 large: string; 26 }; 27 packages: { 28 total: number; 29 objects: NpmPackage[]; 30 urls: { 31 next: string; 32 prev: string; 33 } 34 }; 35 pagination: Pagination; 36}
Thanks goes to these wonderful people (emoji key):
Gentilhomme 💻 📖 👀 🛡️ 🐛 | Quentin Lepateley 💻 📖 👀 | Nicolas Hallaert 📖 | tekeuange23 💻 | Tony Gorez 💻 | hiroki osame 💻 | Kouadio Fabrice Nguessan 🚧 |
PierreDemailly 💻 📖 ⚠️ | Kishore 💻 ⚠️ 📖 |
MIT
No vulnerabilities found.
Reason
no dangerous workflow patterns detected
Reason
security policy file detected
Details
Reason
no binaries found in the repo
Reason
update tool detected
Details
Reason
GitHub workflow tokens follow principle of least privilege
Details
Reason
0 existing vulnerabilities detected
Reason
license file detected
Details
Reason
project has 12 contributing companies or organizations
Details
Reason
SAST tool detected but not run on all commits
Details
Reason
Found 7/8 approved changesets -- score normalized to 8
Reason
dependency not pinned by hash detected -- score normalized to 8
Details
Reason
18 out of 23 merged PRs checked by a CI test -- score normalized to 7
Reason
4 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 3
Reason
no effort to earn an OpenSSF best practices badge detected
Reason
project is not fuzzed
Details
Score
Last Scanned on 2025-06-29T18:45:45Z
The Open Source Security Foundation is a cross-industry collaboration to improve the security of open source software (OSS). The Scorecard provides security health metrics for open source projects.
Learn More