Skip to content

INeedJobToStartWork/BetterNPM

Repository files navigation

image

Better Npm

Make NPM great Again!


Hello! This project is created to show how NPM packages could work if they would be refactored and made properly.

Project it's made by Community and is not related with official NPM.

Currently Problems of NPM

  • Documentation is outdated
  • Types are outdated
  • Not friendly for developers to use it as Dependency
  • Not minified

Mission

  • 100% original functionality (Maybe extras sometimes)
  • Typescript as Base
  • Make Dependencies easier in use for developers of external packages
  • Up-to-date documentation
  • Correct types
  • Minimal usage of External Packages

About:

  • πŸ“˜ Docs (External documentation) (in soon)

About packages:

  • πŸ“– TSDocs (Internal documentation)
  • ♻️ Minified
  • ⚠️ Error Handler (Custom - oh-my-error, why this?)
  • βœ… Support JS/TS & CJS/ESM
  • πŸ’ Rewriten Test units from tap -> vitest
  • πŸ“ Debug Logging (Only for CLI commands)

Packages

Status

Emoji Meaning
βœ… Completed
⏸️ Paused
❌ Aborted
πŸ› οΈ In Progress
πŸ’€ Not Yet Started
Category Functionality (Original) Package name (Better) Package name Progress Status
πŸ“¦ Package Management πŸ” Validates NPM package names validate-npm-package-name @betternpm/validate-npm-package-name βœ…
πŸ“¦ Package Management πŸ“₯ NPM API (programmatic) Package download and extraction pacote @betternpm/pacote πŸ’€
πŸ“¦ Package Management 🎁 Create NPM packages libnpmpack @betternpm/libnpmpack πŸ’€
πŸ“¦ Package Management 🏷️ Parse package names and specifiers npm-package-arg @betternpm/npm-package-arg πŸ’€
πŸ“¦ Package Management 🌿 Manage package dependencies @npmcli/arborist @betternpm/@npmcli/arborist πŸ’€
πŸ“¦ Package Management 🏁 Initialize package.json files init-package-json @betternpm/init-package-json πŸ’€
πŸ“¦ Package Management 🎯 Select best matching package manifest npm-pick-manifest @betternpm/npm-pick-manifest πŸ’€
πŸ“¦ Package Management πŸ” Verify package installation integrity npm-install-checks @betternpm/npm-install-checks πŸ’€
πŸ“¦ Package Management πŸ“ Read and write package.json files @npmcli/package-json @betternpm/@npmcli/package-json πŸ’€
πŸ“¦ Package Management πŸ”§ Normalize package metadata normalize-package-data @betternpm/normalize-package-data πŸ’€
πŸ“¦ Package Management πŸ” Validates NPM package names validate-npm-package-name @betternpm/validate-npm-package-name πŸ’€
🌐 Registry and API Interaction πŸ›οΈ NPM organization management libnpmorg @betternpm/libnpmorg πŸ’€
🌐 Registry and API Interaction πŸ” Compare NPM packages libnpmdifference @betternpm/libnpmdifference πŸ’€
🌐 Registry and API Interaction πŸ•΅οΈ Search NPM packages libnpmsearch @betternpm/libnpmsearch πŸ’€
🌐 Registry and API Interaction πŸš€ Publish NPM packages libnpmpublish @betternpm/libnpmpublish πŸ’€
🌐 Registry and API Interaction πŸ”„ Interact with npm registry API npm-registry-fetch @betternpm/npm-registry-fetch πŸ’€
πŸ”’ Version Management πŸ“Š Semantic versioning utility semver @betternpm/semver πŸ› οΈ
πŸ”’ Version Management 🏷️ NPM package versioning libnpmversion @betternpm/libnpmversion πŸ’€
πŸ” Security and Access Control πŸ”’ Subresource Integrity ssri @betternpm/ssri πŸ’€
πŸ” Security and Access Control πŸ”‘ NPM package access management libnpmaccess @betternpm/libnpmaccess πŸ’€
πŸ” Security and Access Control πŸ•ΆοΈ Redact sensitive information @npmcli/redact @betternpm/@npmcli/redact πŸ’€
πŸ” Security and Access Control πŸ“Š Generate npm audit reports npm-audit-report @betternpm/npm-audit-report πŸ’€
πŸ‘₯ User and Team Management πŸ‘ͺ NPM team management libnpmteam @betternpm/libnpmteam πŸ’€
πŸ‘₯ User and Team Management πŸ‘¨β€πŸ’Ό NPM user profile management npm-profile @betternpm/npm-profile πŸ’€
πŸ‘₯ User and Team Management βœ… Validate npm usernames npm-user-validate @betternpm/npm-user-validate πŸ’€
πŸƒ Script and Process Execution ▢️ Execute NPM packages libnpmexec @betternpm/libnpmexec πŸ’€
πŸƒ Script and Process Execution ▢️ Run package scripts @npmcli/run-script @betternpm/@npmcli/run-script πŸ’€
πŸƒ Script and Process Execution πŸš€ Spawn processes with Promises @npmcli/promise-spawn @betternpm/@npmcli/promise-spawn πŸ’€
πŸ’Ύ File System and Caching πŸ—„οΈ Content-addressable cache cacache @betternpm/cacache πŸ’€
πŸ’Ύ File System and Caching πŸ“‚ File system operations fs @betternpm/fs πŸ’€
πŸ’Ύ File System and Caching πŸ”„ File system streams fs-minipass @betternpm/fs-minipass πŸ’€
πŸ’Ύ File System and Caching ✍️ Atomically write files write-file-atomic @betternpm/write-file-atomic πŸ’€
βš™οΈ Configuration and Settings πŸ“ INI file parser and serializer ini @betternpm/ini πŸ’€
βš™οΈ Configuration and Settings πŸ› οΈ NPM configuration management @npmcli/config @betternpm/@npmcli/config πŸ’€
πŸ—ΊοΈ Workspace and Repository Management ℹ️ Git repository information hosted-git-info @betternpm/hosted-git-info πŸ’€
πŸ—ΊοΈ Workspace and Repository Management πŸ—‚οΈ Map npm workspaces @npmcli/map-workspaces @betternpm/@npmcli/map-workspaces πŸ’€
🌐 Networking 🚚 HTTP/HTTPS requests with caching make-fetch-happen @betternpm/make-fetch-happen πŸ’€
πŸ“Š Logging and Reporting πŸ“ Process logging utility proc-log @betternpm/proc-log πŸ’€
πŸ” Utility Functions ⌨️ Command-line option parsing nopt @betternpm/nopt πŸ’€
πŸ” Utility Functions πŸ“– Read user input from console read @betternpm/read πŸ’€
πŸ” Utility Functions πŸ”Ž Locate command in system PATH which @betternpm/which πŸ’€
πŸ” Utility Functions πŸ”€ String abbreviation abbrev @betternpm/abbrev πŸ’€
πŸ” Utility Functions 🚢 Walk tree-like structures treeverse @betternpm/treeverse πŸ’€
πŸ” Utility Functions πŸ’Έ Handles dependency funding libnpmfund @betternpm/libnpmfund πŸ’€
πŸ” Utility Functions 🎣 NPM hooks management libnpmhook @betternpm/libnpmhook πŸ’€
πŸ” Utility Functions πŸ”€ Parse JSON with conflict markers parse-conflict-json @betternpm/parse-conflict-json πŸ’€
πŸ” Utility Functions πŸ› Improve JSON parsing errors json-parse-even-better-errors @betternpm/json-parse-even-better-errors πŸ’€