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 💤
🌐 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 💤