@bekmurod6574/explain-deps 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -0
- package/package.json +33 -0
- package/src/bin/cli.js +82 -0
- package/src/data/cache.json +403 -0
- package/src/index.js +34 -0
package/README.md
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
# pkg-scanner
|
package/package.json
ADDED
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@bekmurod6574/explain-deps",
|
|
3
|
+
"version": "1.0.0",
|
|
4
|
+
"description": "explain-deps is a lightweight CLI tool that brings clarity to your terminal. It scans your local package.json file, fetches your project's dependencies, and prints out a clean, plain-English summary of exactly what each package does—saving you from endless searching when trying to understand a new codebase.",
|
|
5
|
+
"main": "src/index.js",
|
|
6
|
+
"bin": {
|
|
7
|
+
"pkg-scanner": "dist/bin/cli.js"
|
|
8
|
+
},
|
|
9
|
+
"files": [
|
|
10
|
+
"src",
|
|
11
|
+
"dist"
|
|
12
|
+
],
|
|
13
|
+
"scripts": {
|
|
14
|
+
"build": "tsc",
|
|
15
|
+
"test": "echo \"Error: no test specified\" && exit 1"
|
|
16
|
+
},
|
|
17
|
+
"repository": {
|
|
18
|
+
"type": "git",
|
|
19
|
+
"url": "git+https://github.com/bekmurod2510/pkg-scanner.git"
|
|
20
|
+
},
|
|
21
|
+
"keywords": [],
|
|
22
|
+
"author": "",
|
|
23
|
+
"license": "ISC",
|
|
24
|
+
"type": "module",
|
|
25
|
+
"bugs": {
|
|
26
|
+
"url": "https://github.com/bekmurod2510/pkg-scanner/issues"
|
|
27
|
+
},
|
|
28
|
+
"homepage": "https://github.com/bekmurod2510/pkg-scanner#readme",
|
|
29
|
+
"dependencies": {
|
|
30
|
+
"canvas-confetti": "^1.9.4",
|
|
31
|
+
"lodash": "^4.18.1"
|
|
32
|
+
}
|
|
33
|
+
}
|
package/src/bin/cli.js
ADDED
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
import fs from 'fs';
|
|
3
|
+
import path from 'path';
|
|
4
|
+
import { fileURLToPath } from "url";
|
|
5
|
+
|
|
6
|
+
const __filename = fileURLToPath(import.meta.url);
|
|
7
|
+
const __dirname = path.dirname(__filename);
|
|
8
|
+
|
|
9
|
+
const cachePath = path.join(__dirname, "../data/cache.json");
|
|
10
|
+
let localCache = {};
|
|
11
|
+
|
|
12
|
+
try {
|
|
13
|
+
if (fs.existsSync(cachePath)) {
|
|
14
|
+
const rawCacheData = fs.readFileSync(cachePath, "utf-8");
|
|
15
|
+
localCache = JSON.parse(rawCacheData);
|
|
16
|
+
}
|
|
17
|
+
} catch (error) {
|
|
18
|
+
localCache = {};
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
async function getPackageDescription(pkgName) {
|
|
22
|
+
// 1. Check local cache first
|
|
23
|
+
if (pkgName in localCache) {
|
|
24
|
+
return (localCache)[pkgName];
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
// 2. Fallback to the live npm registry API if offline/not in cache
|
|
28
|
+
try {
|
|
29
|
+
const response = await fetch(`https://registry.npmjs.org/${pkgName}/latest`);
|
|
30
|
+
if (!response.ok) {
|
|
31
|
+
return "Could not find package description on npm registry.";
|
|
32
|
+
}
|
|
33
|
+
const data = (await response.json());
|
|
34
|
+
return data.description || "No description provided by the author.";
|
|
35
|
+
} catch (error) {
|
|
36
|
+
return "Failed to fetch description (you might be offline).";
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
async function run() {
|
|
41
|
+
console.log("\n🔍 Scanning package.json dependencies...\n");
|
|
42
|
+
|
|
43
|
+
// Locate the package.json file in the folder where the user ran the command
|
|
44
|
+
const targetPackageJsonPath = path.join(process.cwd(), 'package.json');
|
|
45
|
+
|
|
46
|
+
// Check if a package.json actually exists here
|
|
47
|
+
if (!fs.existsSync(targetPackageJsonPath)) {
|
|
48
|
+
console.error("❌ Error: No package.json found in this directory.");
|
|
49
|
+
process.exit(1);
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
try {
|
|
53
|
+
// Read and parse the target package.json
|
|
54
|
+
const rawData = fs.readFileSync(targetPackageJsonPath, 'utf-8');
|
|
55
|
+
const parsedJson = JSON.parse(rawData);
|
|
56
|
+
|
|
57
|
+
// Extract regular and development dependencies
|
|
58
|
+
const dependencies = {
|
|
59
|
+
...parsedJson.dependencies,
|
|
60
|
+
...parsedJson.devDependencies
|
|
61
|
+
};
|
|
62
|
+
|
|
63
|
+
const packageNames = Object.keys(dependencies);
|
|
64
|
+
|
|
65
|
+
if (packageNames.length === 0) {
|
|
66
|
+
console.log("Your package.json doesn't have any dependencies listed!");
|
|
67
|
+
return;
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
// Loop through each package, look up its description, and print it
|
|
71
|
+
for (const pkgName of packageNames) {
|
|
72
|
+
const description = await getPackageDescription(pkgName);
|
|
73
|
+
console.log(`📦 \x1b[36m${pkgName}\x1b[0m: ${description}`);
|
|
74
|
+
console.log("------------------------------------------------");
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
} catch (error) {
|
|
78
|
+
console.error("❌ Failed to parse package.json. Ensure it is valid JSON.");
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
run();
|
|
@@ -0,0 +1,403 @@
|
|
|
1
|
+
{
|
|
2
|
+
"lodash": "A modern JavaScript utility library delivering modularity, performance, & extras.",
|
|
3
|
+
"chalk": "A terminal string styling library used to colorize console output text.",
|
|
4
|
+
"request": "A deprecated, simplified HTTP request client (legacy project).",
|
|
5
|
+
"commander": "A complete solution for building expressive Node.js command-line interfaces.",
|
|
6
|
+
"react": "A JavaScript library for building component-based user interfaces.",
|
|
7
|
+
"express": "A minimal and flexible Node.js web application framework.",
|
|
8
|
+
"debug": "A tiny JavaScript debugging utility modeled after Node.js core's debugging technique.",
|
|
9
|
+
"async": "A utility module that provides straight-forward, powerful functions for working with asynchronous JavaScript.",
|
|
10
|
+
"fs-extra": "Adds file system methods that aren't included in the native fs module and adds promise support.",
|
|
11
|
+
"moment": "A legacy JavaScript date library for parsing, validating, manipulating, and formatting dates.",
|
|
12
|
+
"prop-types": "Runtime type checking for React props and similar objects.",
|
|
13
|
+
"react-dom": "Serves as the entry point to the DOM and server renderers for React.",
|
|
14
|
+
"bluebird": "A full-featured promise library with a focus on innovative features and performance.",
|
|
15
|
+
"underscore": "A JavaScript utility library that provides useful functional programming helpers.",
|
|
16
|
+
"vue": "A progressive JavaScript framework for building user interfaces.",
|
|
17
|
+
"axios": "A promise-based HTTP client for the browser and Node.js.",
|
|
18
|
+
"tslib": "A runtime library for TypeScript containing all the compile-time helper functions.",
|
|
19
|
+
"mkdirp": "Recursively creates directories like `mkdir -p`, handling nested paths automatically.",
|
|
20
|
+
"glob": "Matches files using the patterns the shell uses, like stars and stuff.",
|
|
21
|
+
"yargs": "A framework for building interactive command-line tools by parsing arguments.",
|
|
22
|
+
"colors": "A library for getting color and style in your Node.js console.",
|
|
23
|
+
"inquirer": "A collection of common interactive command-line user interfaces.",
|
|
24
|
+
"webpack": "A static module bundler for modern JavaScript applications.",
|
|
25
|
+
"uuid": "Simple, fast generation of RFC4122 universally unique identifiers.",
|
|
26
|
+
"classnames": "A simple JavaScript utility for conditionally joining classNames together.",
|
|
27
|
+
"minimist": "A lightweight module for parsing command-line argument options.",
|
|
28
|
+
"body-parser": "Node.js body parsing middleware to handle incoming request bodies.",
|
|
29
|
+
"rxjs": "A reactive programming library for JavaScript using Observables.",
|
|
30
|
+
"babel-runtime": "Babel's modular runtime helpers and polyfills for production use.",
|
|
31
|
+
"jquery": "A fast, small, and feature-rich legacy JavaScript utility library.",
|
|
32
|
+
"yeoman-generator": "A scaffolding framework for creating customizable project generators.",
|
|
33
|
+
"through2": "A tiny wrapper around Node.js streams to simplify transform streams.",
|
|
34
|
+
"babel-core": "The core compiler functionality for the Babel JavaScript transpiler.",
|
|
35
|
+
"core-js": "Modular standard library for JavaScript, including polyfills for ECMAScript.",
|
|
36
|
+
"semver": "The semantic version parser and utility library used by npm.",
|
|
37
|
+
"babel-loader": "A webpack loader that allows transpiling JavaScript files using Babel.",
|
|
38
|
+
"cheerio": "A fast, flexible, and lean implementation of core jQuery designed for the server.",
|
|
39
|
+
"rimraf": "The UNIX command `rm -rf` for Node.js, used for deleting files and folders.",
|
|
40
|
+
"q": "A legacy promise library for managing asynchronous control flow in JavaScript.",
|
|
41
|
+
"eslint": "An extensible, pluggable linting utility for JavaScript and JSX.",
|
|
42
|
+
"css-loader": "A webpack loader that interprets `@import` and `url()` like `import/require()` and resolves them.",
|
|
43
|
+
"shelljs": "Portable Unix shell commands for Node.js based on the ShellJS API.",
|
|
44
|
+
"dotenv": "Loads environment variables from a .env file into process.env.",
|
|
45
|
+
"typescript": "A superset of JavaScript that adds optional static typing to the language.",
|
|
46
|
+
"@types/node": "TypeScript type definitions for the core Node.js runtime and modules.",
|
|
47
|
+
"@angular/core": "The core framework runtime, dependency injection, and component engine for Angular.",
|
|
48
|
+
"js-yaml": "A fast and compliant JavaScript YAML parser and dumper.",
|
|
49
|
+
"style-loader": "A webpack loader that injects CSS into the DOM via <style> tags.",
|
|
50
|
+
"winston": "A multi-transport, universal logging library for Node.js applications.",
|
|
51
|
+
"@angular/common": "Commonly used Angular directives, pipes, and services like NgIf and NgFor.",
|
|
52
|
+
"redux": "A predictable state container designed for JavaScript applications.",
|
|
53
|
+
"object-assign": "A ponyfill for Object.assign, merging properties into a target object.",
|
|
54
|
+
"zone.js": "An execution context that persists across async tasks, used by Angular for change detection.",
|
|
55
|
+
"babel-eslint": "A legacy linting parser that allowed ESLint to run on Babel-transformed code.",
|
|
56
|
+
"gulp": "A toolkit to automate and enhance painful or time-consuming workflows in development.",
|
|
57
|
+
"gulp-util": "A deprecated set of utilities for writing Gulp plugins.",
|
|
58
|
+
"file-loader": "A legacy webpack loader that instructs webpack to emit files as assets.",
|
|
59
|
+
"ora": "An elegant terminal spinner utility for command-line interfaces.",
|
|
60
|
+
"node-fetch": "A light-weight module that brings the window.fetch API to Node.js.",
|
|
61
|
+
"@angular/platform-browser": "Angular services and providers required to run applications inside a web browser.",
|
|
62
|
+
"@babel/runtime": "A library containing Babel modular runtime helpers for production builds.",
|
|
63
|
+
"handlebars": "An extension to the Mustache templating language for building semantic templates.",
|
|
64
|
+
"eslint-plugin-import": "An ESLint plugin providing validation of app import/export syntax and paths.",
|
|
65
|
+
"@angular/compiler": "The Angular template compiler that converts views into executable code.",
|
|
66
|
+
"eslint-plugin-react": "React-specific linting rules for ESLint to enforce best practices.",
|
|
67
|
+
"aws-sdk": "The official AWS Software Development Kit for accessing Amazon Web Services.",
|
|
68
|
+
"yosay": "A tiny utility that lets the Yeoman mascot say whatever you want in the terminal.",
|
|
69
|
+
"url-loader": "A legacy webpack loader that transforms files into base64 URIs if they are small enough.",
|
|
70
|
+
"@angular/forms": "Angular features for building and managing forms, supporting template-driven and reactive styles.",
|
|
71
|
+
"webpack-dev-server": "A development server that provides live reloading and hot module replacement for webpack apps.",
|
|
72
|
+
"@angular/platform-browser-dynamic": "Angular providers and compiler to bootstrap applications dynamically in the browser.",
|
|
73
|
+
"mocha": "A feature-rich JavaScript test framework running on Node.js and in the browser.",
|
|
74
|
+
"html-webpack-plugin": "Simplifies creation of HTML files to serve your webpack bundles with automatic scripts.",
|
|
75
|
+
"socket.io": "A real-time, bidirectional, event-based communication library built on WebSockets.",
|
|
76
|
+
"ws": "A fast and thoroughly tested WebSocket client and server implementation for Node.js.",
|
|
77
|
+
"babel-preset-es2015": "A deprecated Babel preset to compile ES2015 (ES6) JavaScript down to ES5.",
|
|
78
|
+
"postcss-loader": "A webpack loader to process CSS code using PostCSS tools and plugins.",
|
|
79
|
+
"node-sass": "A legacy wrapper around LibSass for compiling Sass stylesheets to CSS.",
|
|
80
|
+
"ember-cli-babel": "An Ember CLI addon that handles the compilation of JavaScript files using Babel.",
|
|
81
|
+
"babel-polyfill": "A deprecated Babel wrapper providing full ES2015+ environment polyfills.",
|
|
82
|
+
"@angular/router": "A robust router for navigating and managing application states within Angular applications.",
|
|
83
|
+
"ramda": "A practical functional library for JavaScript programmers that emphasizes immutability.",
|
|
84
|
+
"react-redux": "The official React UI bindings layer for working with Redux state containers.",
|
|
85
|
+
"@babel/core": "The modern, modular compiler core functionality for the Babel ecosystem.",
|
|
86
|
+
"@angular/http": "Angular's legacy module for making HTTP requests (replaced by HttpClient).",
|
|
87
|
+
"ejs": "Embedded JavaScript templating engine that lets you generate HTML markup with vanilla JS.",
|
|
88
|
+
"coffee-script": "A legacy language that compiles into JavaScript, adding syntactic sugar inspired by Ruby and Python.",
|
|
89
|
+
"superagent": "A small, progressive client-side and Node.js HTTP request library.",
|
|
90
|
+
"request-promise": "A deprecated wrapper for the legacy request client that adds Promise support.",
|
|
91
|
+
"autoprefixer": "A PostCSS plugin that parses CSS and adds vendor prefixes to rules using data from Can I Use.",
|
|
92
|
+
"path": "Node.js core utility module for handling and transforming file system paths.",
|
|
93
|
+
"mongodb": "The official Node.js driver for connecting to and interacting with MongoDB databases.",
|
|
94
|
+
"chai": "A BDD/TDD assertion library for Node.js and browsers that pairs with any testing framework.",
|
|
95
|
+
"mongoose": "An elegant MongoDB object modeling tool designed to work in an asynchronous environment.",
|
|
96
|
+
"xml2js": "A simple XML to JavaScript object converter that works bi-directionally.",
|
|
97
|
+
"bootstrap": "The popular sleek, intuitive, and powerful front-end framework for web development.",
|
|
98
|
+
"jest": "A delightful, zero-config JavaScript testing framework with a focus on simplicity.",
|
|
99
|
+
"sass-loader": "A webpack loader for compiling Sass/SCSS files into standard CSS.",
|
|
100
|
+
"redis": "A high-performance, official Node.js client for connecting to Redis databases.",
|
|
101
|
+
"vue-router": "The official, deeply integrated router framework for building SPAs with Vue.js.",
|
|
102
|
+
"chokidar": "A minimal, efficient, and robust wrapper around Node.js file system watching methods.",
|
|
103
|
+
"co": "A legacy generator-based control flow goodness for Node.js and the browser.",
|
|
104
|
+
"eslint-plugin-jsx-a11y": "An ESLint plugin for checking accessibility (a11y) rules on JSX elements.",
|
|
105
|
+
"nan": "Native Abstractions for Node.js, providing a legacy C++ wrapper layer for writing native add-ons.",
|
|
106
|
+
"optimist": "A deprecated command-line argument parser library for Node.js.",
|
|
107
|
+
"promise": "A bare-bones implementation of Promises/A+ for JavaScript.",
|
|
108
|
+
"@angular/animations": "The animations system module for creating complex transitions in Angular.",
|
|
109
|
+
"postcss": "A tool for transforming CSS with JavaScript plugins.",
|
|
110
|
+
"morgan": "An HTTP request logger middleware designed specifically for Node.js applications.",
|
|
111
|
+
"less": "A dynamic stylesheet preprocessor language that extends the capabilities of standard CSS.",
|
|
112
|
+
"immutable": "Provides persistent, immutable data structures to simplify state tracking in JavaScript.",
|
|
113
|
+
"qs": "A querystring parsing and stringifying library with nested object support.",
|
|
114
|
+
"loader-utils": "A collection of utility methods commonly used by webpack loaders.",
|
|
115
|
+
"fs": "Node.js core module for interacting with the local file system (built-in).",
|
|
116
|
+
"extract-text-webpack-plugin": "A deprecated webpack plugin used to extract CSS from bundles into separate files.",
|
|
117
|
+
"marked": "A fast and full-featured markdown parser and compiler written in JavaScript.",
|
|
118
|
+
"mime": "A comprehensive utility for mapping file extensions to MIME content types.",
|
|
119
|
+
"@alifd/next": "An enterprise-class UI component library designed for the Alibaba Fusion system.",
|
|
120
|
+
"meow": "A CLI app helper for parsing flags and displaying help menus.",
|
|
121
|
+
"styled-components": "A library utilizing tagged template literals to style React components directly.",
|
|
122
|
+
"resolve": "Implements the node `require.resolve()` algorithm asynchronously and synchronously.",
|
|
123
|
+
"reflect-metadata": "A polyfill library that adds a prototype metadata API to JavaScript.",
|
|
124
|
+
"babel-preset-react": "A deprecated Babel preset for compiling React JSX and display names.",
|
|
125
|
+
"jsonwebtoken": "An implementation of JSON Web Tokens for user authentication and authorization.",
|
|
126
|
+
"react-router-dom": "DOM bindings and navigation components for using React Router in web apps.",
|
|
127
|
+
"extend": "A utility to deep or shallow clone and merge objects together.",
|
|
128
|
+
"cookie-parser": "A Node.js middleware to parse cookie headers and populate req.cookies.",
|
|
129
|
+
"whatwg-fetch": "A window.fetch polyfill for legacy browsers lacking native Fetch support.",
|
|
130
|
+
"babel-preset-env": "A legacy Babel preset that determined plug-ins based on target environments.",
|
|
131
|
+
"babel-jest": "A Jest plugin that automatically transpiles JavaScript code using Babel.",
|
|
132
|
+
"mysql": "A pure JavaScript client implementation for interacting with MySQL databases.",
|
|
133
|
+
"joi": "An object schema description language and validator for JavaScript objects.",
|
|
134
|
+
"minimatch": "A minimal matching library that converts glob expressions into JavaScript RegExp objects.",
|
|
135
|
+
"eslint-loader": "A deprecated webpack loader that ran ESLint checks during development builds.",
|
|
136
|
+
"react-dev-utils": "A collection of internal helper utilities used by Create React App.",
|
|
137
|
+
"node-uuid": "A legacy package name for the universally unique identifier (uuid) library.",
|
|
138
|
+
"es6-promise": "A lightweight polyfill that integrates ES6-style promises into older environments.",
|
|
139
|
+
"cross-spawn": "A cross-platform solution to Node's spawn and spawnSync to fix Windows issues.",
|
|
140
|
+
"case-sensitive-paths-webpack-plugin": "Enforces case-sensitive paths for modules inside webpack compilations.",
|
|
141
|
+
"uglify-js": "A legacy JavaScript parser, minifier, compressor, and beautifier toolkit.",
|
|
142
|
+
"cors": "A Node.js middleware for enabling Cross-Origin Resource Sharing with various options.",
|
|
143
|
+
"eslint-plugin-flowtype": "An ESLint plugin that provides linting rules for Flow type annotations.",
|
|
144
|
+
"react-router": "The core routing architecture and state management for the React Router ecosystem.",
|
|
145
|
+
"@babel/preset-env": "A modern smart Babel preset that allows using the latest JS without syntax micro-management.",
|
|
146
|
+
"deepmerge": "A utility to recursively merge two or more JavaScript objects deeply.",
|
|
147
|
+
"socket.io-client": "The client-side library for connecting to real-time, bidirectional Socket.IO servers.",
|
|
148
|
+
"npm": "The official package manager cli client for the Node.js registry ecosystem.",
|
|
149
|
+
"webpack-manifest-plugin": "A webpack plugin that generates a JSON manifest mapping asset source files to bundles.",
|
|
150
|
+
"koa": "An expressive, next-generation web framework designed by the creators of Express.",
|
|
151
|
+
"isomorphic-fetch": "A legacy wrapper bringing the Fetch API seamlessly to both Node and browsers.",
|
|
152
|
+
"babel-cli": "A deprecated command-line interface tool for compiling files with Babel.",
|
|
153
|
+
"del": "Delete files and directories using glob patterns with safe-guards against deleting outside cwd.",
|
|
154
|
+
"postcss-flexbugs-fixes": "A PostCSS plugin that fixes commonly known bugs related to flexbox layouts.",
|
|
155
|
+
"compression": "A Node.js compression middleware supporting gzip and deflate for responses.",
|
|
156
|
+
"update-notifier": "An automated check mechanism to inform CLI users about newer package updates.",
|
|
157
|
+
"babel-preset-react-app": "The default Babel configuration preset used within Create React App setups.",
|
|
158
|
+
"jade": "A legacy templating engine for Node.js, officially renamed to Pug.",
|
|
159
|
+
"prompt": "A simple command-line user prompt and input collection utility for Node.js.",
|
|
160
|
+
"gulp-rename": "A lightweight Gulp plugin designed to easily rename files in streams.",
|
|
161
|
+
"angular": "The legacy AngularJS (v1.x) framework library for frontend development.",
|
|
162
|
+
"underscore.string": "An extension for Underscore or standalone utility for string manipulation.",
|
|
163
|
+
"graphql": "The reference implementation of the GraphQL query language for JavaScript.",
|
|
164
|
+
"execa": "A process execution tool providing enhanced capabilities over native child_process methods.",
|
|
165
|
+
"browserify": "A tool that bundles up browser-side JavaScript scripts by resolving node-style requires.",
|
|
166
|
+
"opn": "A deprecated utility for opening websites, files, or executables across platforms.",
|
|
167
|
+
"validator": "A comprehensive string validation and sanitization library for Node.js.",
|
|
168
|
+
"eslint-config-react-app": "The standard ESLint configuration rule-set utilized by Create React App.",
|
|
169
|
+
"vuex": "The centralized state management pattern and architecture library tailored for Vue.js.",
|
|
170
|
+
"prettier": "An opinionated, multi-language code formatter that enforces uniform code style.",
|
|
171
|
+
"invariant": "A development-only assertion library that provides clean error messages for broken invariants.",
|
|
172
|
+
"jsdom": "A pure-JavaScript implementation of various web standards, notably the WHATWG DOM.",
|
|
173
|
+
"@types/react": "TypeScript type definitions for using React components and APIs.",
|
|
174
|
+
"redux-thunk": "A popular asynchronous middleware solution for handling side-effects in Redux.",
|
|
175
|
+
"mini-css-extract-plugin": "Extracts CSS styles into separate physical files for modern webpack configurations.",
|
|
176
|
+
"globby": "An enhanced wrapper around glob patterns that adds promise support and multiple array matches.",
|
|
177
|
+
"pg": "A non-blocking, pure-JavaScript PostgreSQL database client for Node.js.",
|
|
178
|
+
"got": "A modern, human-friendly, and powerful HTTP request client designed for Node.js.",
|
|
179
|
+
"ajv": "An incredibly fast JSON Schema validator conforming to modern draft specifications.",
|
|
180
|
+
"xtend": "A primitive object extension utility function that returns immutable shallow copies.",
|
|
181
|
+
"ember-cli-htmlbars": "An Ember CLI addon responsible for compiling Handlebars/HTMLbars templates.",
|
|
182
|
+
"babel-plugin-transform-runtime": "A Babel plugin that externalizes references to helpers to reduce bundle sizes.",
|
|
183
|
+
"nodemailer": "An easy-to-use module for sending emails from Node.js applications.",
|
|
184
|
+
"source-map-support": "Adds source map debugging support for stack traces inside Node.js scripts.",
|
|
185
|
+
"express-session": "Session middleware for Express, managing server-side session stores and cookies.",
|
|
186
|
+
"d3": "A powerful data visualization library used to manipulate documents based on data.",
|
|
187
|
+
"less-loader": "A webpack loader that compiles Less files into standard CSS files.",
|
|
188
|
+
"fsevents": "Native macOS file system monitoring wrapper used internally by chokidar.",
|
|
189
|
+
"babel-preset-stage-0": "A deprecated Babel preset containing highly experimental JavaScript proposals.",
|
|
190
|
+
"download-git-repo": "Downloads and extracts git repositories from GitHub, GitLab, or Bitbucket easily.",
|
|
191
|
+
"query-string": "A highly tuned utility for parsing and stringifying URL query parameters.",
|
|
192
|
+
"font-awesome": "The asset library distribution for Font Awesome scalable vector icons.",
|
|
193
|
+
"open": "A cross-platform solution to spawn open windows for URLs, files, or applications.",
|
|
194
|
+
"passport": "An unobtrusive, modular authentication middleware ecosystem for Node.js.",
|
|
195
|
+
"@types/lodash": "TypeScript type definitions for the modern Lodash utility library.",
|
|
196
|
+
"grunt": "A legacy JavaScript task runner used to automate repetitive development workflows.",
|
|
197
|
+
"path-to-regexp": "Turns a path string like `/user/:id` into a matching regular expression.",
|
|
198
|
+
"mustache": "A minimal, logic-less template syntax system available across languages.",
|
|
199
|
+
"inherits": "A tiny utility that provides standard prototype inheritance mechanics across Node.js environments.",
|
|
200
|
+
"tmp": "A simple temporary file and directory creator for Node.js programs.",
|
|
201
|
+
"md5": "A legacy utility for calculating MD5 message-digest hashes on strings or buffers.",
|
|
202
|
+
"dotenv-expand": "Adds variable expansion capabilities to preexisting dotenv configuration files.",
|
|
203
|
+
"crypto-js": "A library of secure cryptographic standards implemented in pure JavaScript.",
|
|
204
|
+
"request-promise-native": "A deprecated wrapper for legacy request using native ES6 Promises.",
|
|
205
|
+
"through": "A tiny, simplified wrapper for creating readable/writable transform streams.",
|
|
206
|
+
"connect": "A legacy extensible HTTP server framework for Node.js using middleware.",
|
|
207
|
+
"raf": "A requestAnimationFrame polyfill for both browser and Node.js environments.",
|
|
208
|
+
"react-scripts": "Configuration and scripts used by Create React App to build applications.",
|
|
209
|
+
"readable-stream": "A mirror of Node.js core streams to ensure stability across versions.",
|
|
210
|
+
"highlight.js": "A robust syntax highlighter supporting multiple languages with automatic detection.",
|
|
211
|
+
"@babel/polyfill": "A deprecated global polyfill mimicking a full ES2015+ environment.",
|
|
212
|
+
"progress": "A flexible ASCII progress bar utility for command-line interfaces.",
|
|
213
|
+
"optimize-css-assets-webpack-plugin": "A deprecated webpack plugin to optimize and minify CSS files.",
|
|
214
|
+
"iconv-lite": "Pure JavaScript character encoding conversion tool without native compilation.",
|
|
215
|
+
"bunyan": "A simple, fast, and structured JSON logging library for Node.js.",
|
|
216
|
+
"gulp-uglify": "A Gulp plugin used to minify JavaScript files via UglifyJS.",
|
|
217
|
+
"koa-router": "The official routing middleware engine built for the Koa framework.",
|
|
218
|
+
"ncp": "Asynchronous recursive file and directory copying utility for Node.js.",
|
|
219
|
+
"lodash.merge": "The individual modular package for Lodash's deep object merge utility.",
|
|
220
|
+
"lru-cache": "A cache implementation that deletes the least-recently-used items when full.",
|
|
221
|
+
"moment-timezone": "Parse, validate, manipulate, and format dates across specific global timezones.",
|
|
222
|
+
"figlet": "Creates large ASCII art text banners from standard strings in terminal.",
|
|
223
|
+
"history": "A JavaScript library that manages session history across various environments.",
|
|
224
|
+
"readline-sync": "Synchronous command-line interface reader to manage interactive user prompts.",
|
|
225
|
+
"pluralize": "Pluralize or singularize any English word based on preconfigured rules.",
|
|
226
|
+
"url": "Node.js core utility module for URL parsing, resolution, and formatting.",
|
|
227
|
+
"log4js": "A highly configurable logging framework modeled after the Java log4j API.",
|
|
228
|
+
"cli-table": "Renders clean, structured Unicode tables inside command-line interfaces.",
|
|
229
|
+
"webpack-merge": "Merges webpack configurations cleanly without duplicating identical shared keys.",
|
|
230
|
+
"archiver": "A streaming interface for generating archive formats like Zip and Tar.",
|
|
231
|
+
"babel-register": "A legacy compiler hook that transpiles files on-the-fly via require.",
|
|
232
|
+
"eslint-config-airbnb": "The highly popular JavaScript style guide configuration provided by Airbnb.",
|
|
233
|
+
"clone": "Deeply clones variables, objects, and nested structures safely in JavaScript.",
|
|
234
|
+
"jsonfile": "An extension utility to easily read and write JSON configuration files.",
|
|
235
|
+
"puppeteer": "A high-level API to control headless Chrome or Chromium over DevTools.",
|
|
236
|
+
"shortid": "A deprecated short, non-sequential, and url-friendly unique id generator.",
|
|
237
|
+
"@babel/plugin-proposal-class-properties": "Babel plugin allowing support for direct class properties and static fields.",
|
|
238
|
+
"querystring": "Node.js core utility for parsing and formatting URL query parameters.",
|
|
239
|
+
"serve-static": "Static file serving middleware based on the robust send framework.",
|
|
240
|
+
"tslint": "A deprecated, legacy static analysis linter engineered for TypeScript projects.",
|
|
241
|
+
"pug": "A clean, whitespace-sensitive template engine formerly known to devs as Jade.",
|
|
242
|
+
"config": "Organizes hierarchical configurations for deployments across varying application environments.",
|
|
243
|
+
"source-map": "A mapping generator that lets tools consume standard V3 source maps.",
|
|
244
|
+
"antd": "Ant Design, an enterprise-class UI component library designed for React.",
|
|
245
|
+
"concat-stream": "Writable stream that concatenates buffered data into a single buffer result.",
|
|
246
|
+
"element-ui": "A legacy desktop UI component library built specifically for Vue 2.",
|
|
247
|
+
"lodash.get": "The individual modular package for Lodash's safe object property retriever.",
|
|
248
|
+
"@babel/preset-react": "A smart Babel preset that interprets React-specific syntax like JSX.",
|
|
249
|
+
"serve-favicon": "Express middleware for serving the classic application favicon from memory.",
|
|
250
|
+
"stylus": "A highly expressive, dynamic, and flexible CSS preprocessor for Node.js.",
|
|
251
|
+
"date-fns": "Modern, modular, and lightweight date utility library for JavaScript formatting.",
|
|
252
|
+
"esprima": "An ECMAScript parsing infrastructure tool for structural static code analysis.",
|
|
253
|
+
"sequelize": "A promise-based Node.js ORM supporting PostgreSQL, MySQL, SQLite, and MSSQL.",
|
|
254
|
+
"babel-plugin-transform-object-rest-spread": "A deprecated Babel plugin enabling object destructuring assignment syntax.",
|
|
255
|
+
"bindings": "A helper tool that locates and loads native C++ addon bindings.",
|
|
256
|
+
"events": "The decoupled Node.js core EventEmitter implementation packaged for browser use.",
|
|
257
|
+
"graceful-fs": "An fs enhancement that handles EMFILE errors gracefully without crashes.",
|
|
258
|
+
"normalize.css": "A modern, HTML5-ready alternative to traditional radical CSS resets.",
|
|
259
|
+
"crypto": "Node.js core cryptographic module providing wrappers for OpenSSL functions.",
|
|
260
|
+
"cross-env": "Run scripts using environment variables seamlessly across differing platform OSs.",
|
|
261
|
+
"mime-types": "The definitive counter-part mapping utility built around custom mime-db files.",
|
|
262
|
+
"event-stream": "A toolkit designed to make creating and managing streams manageable.",
|
|
263
|
+
"hoist-non-react-statics": "Copies non-React specific static properties between components automatically.",
|
|
264
|
+
"gulp-concat": "A Gulp streaming utility to bundle separate files into one.",
|
|
265
|
+
"terser-webpack-plugin": "The modern standard webpack plugin for minifying production JavaScript assets.",
|
|
266
|
+
"json-loader": "A legacy webpack loader used to load local JSON resource files.",
|
|
267
|
+
"warning": "A lightweight logging utility that mimics Facebook's internal warning system.",
|
|
268
|
+
"bignumber.js": "A JavaScript library for arbitrary-precision decimal and non-decimal arithmetic.",
|
|
269
|
+
"eventemitter3": "A high-performance, highly optimized EventEmitter rewrite for modern web architectures.",
|
|
270
|
+
"webpack-cli": "The command-line interface providing configuration options to execute Webpack.",
|
|
271
|
+
"strip-ansi": "Strip ANSI escape codes out of standard terminal strings cleanly.",
|
|
272
|
+
"cli-color": "Color and formatting utilities for terminal styling in Node.js applications.",
|
|
273
|
+
"form-data": "A library allowing programmatic multi-part form submissions to HTTP servers.",
|
|
274
|
+
"web3": "The legacy Ethereum JavaScript API client collection for decentralized app interactions.",
|
|
275
|
+
"gulp-sourcemaps": "Generates source maps for debugging files modified during Gulp processing.",
|
|
276
|
+
"webpack-dev-middleware": "Middleware wrapper that emits files from webpack directly to memory.",
|
|
277
|
+
"ip": "IP address utility for parsing, validating, and subnet checking in Node.js.",
|
|
278
|
+
"camelcase": "Converts dash, snake, or space-separated strings into standard camelCase syntax.",
|
|
279
|
+
"sw-precache-webpack-plugin": "A deprecated webpack plugin to generate service workers for offline caching.",
|
|
280
|
+
"merge": "A basic utility to merge multiple JavaScript objects into one.",
|
|
281
|
+
"http-proxy": "A full-featured, programmable HTTP proxying library for Node.js architectures.",
|
|
282
|
+
"react-transition-group": "Exposes simple components for managing entry/exit animations on React components.",
|
|
283
|
+
"multer": "Node.js middleware for handling multipart/form-data, primarily used for uploading files.",
|
|
284
|
+
"deep-equal": "Node's structural deep equal comparison algorithm made available for browser use.",
|
|
285
|
+
"browser-sync": "Keep multiple browsers and devices in sync during active local development.",
|
|
286
|
+
"babel": "The global umbrella legacy CLI wrapper name for the Babel project.",
|
|
287
|
+
"dateformat": "A simple, lightweight package for formatting dates using custom format masks.",
|
|
288
|
+
"postcss-preset-env": "Convert modern CSS syntax into legacy formats supported by target browsers.",
|
|
289
|
+
"uglifyjs-webpack-plugin": "A deprecated webpack asset optimization plugin superseded by Terser plugin.",
|
|
290
|
+
"@polymer/polymer": "A legacy JavaScript library for building cross-browser web components.",
|
|
291
|
+
"sinon": "Standalone test spies, stubs, and mocks for any JavaScript framework.",
|
|
292
|
+
"eslint-config-prettier": "Turns off all ESLint rules that might conflict with Prettier.",
|
|
293
|
+
"gulp-sass": "A Gulp plugin wrapper that compiles Sass files into standard CSS.",
|
|
294
|
+
"identity-obj-proxy": "An identity object proxy useful for mocking CSS Modules in Jest.",
|
|
295
|
+
"ts-loader": "The official TypeScript loader ecosystem integration built explicitly for Webpack.",
|
|
296
|
+
"react-hot-loader": "A legacy tweak library allowing real-time components editing without reloading states.",
|
|
297
|
+
"sqlite3": "Asynchronous, non-blocking bindings for interacting with local SQLite databases.",
|
|
298
|
+
"popper.js": "A legacy robust engine for computing custom position alignments on popovers.",
|
|
299
|
+
"which": "The Unix `which` command replica implemented in pure synchronous JavaScript.",
|
|
300
|
+
"markdown-it": "A fast, pluggable, and fully CommonMark-compliant Markdown parser engine.",
|
|
301
|
+
"tar": "A native JavaScript streaming tarball archiver/unpacker tool for Node.js.",
|
|
302
|
+
"vue-template-compiler": "Precompiles Vue templates into render functions for optimal production performance.",
|
|
303
|
+
"babel-plugin-transform-class-properties": "A legacy Babel plugin to compile compile-time class properties and static fields.",
|
|
304
|
+
"js-beautify": "A code formatter that re-indents and reformats JavaScript, HTML, and CSS files.",
|
|
305
|
+
"log-symbols": "Provides colored symbols for various log levels in the terminal (e.g., info, success).",
|
|
306
|
+
"webpack-hot-middleware": "Webpack hot reloading middleware designed to pair alongside webpack-dev-middleware.",
|
|
307
|
+
"rollup": "A next-generation ES module bundler primarily optimized for packaging JavaScript libraries.",
|
|
308
|
+
"copy-webpack-plugin": "Copies individual files or entire directories into the production webpack build directory.",
|
|
309
|
+
"nodemon": "A development tool that automatically restarts a Node.js application when file changes are detected.",
|
|
310
|
+
"boom": "An HTTP-friendly error object utility that provides standardized error responses.",
|
|
311
|
+
"xmldom": "A pure JavaScript W3C standard-compliant XML DOMParser and XMLSerializer implementation.",
|
|
312
|
+
"recompose": "A legacy utility belt for React functional components and higher-order components.",
|
|
313
|
+
"util": "Node.js core utility module providing helper functions for formatting and type-checking.",
|
|
314
|
+
"ini": "An INI file format parser and serializer utility for handling configuration scripts.",
|
|
315
|
+
"pify": "A lightweight utility that converts callback-based asynchronous functions into Promise-based functions.",
|
|
316
|
+
"command-line-args": "A command-line argument parser that extracts typed options from raw argv text.",
|
|
317
|
+
"vinyl": "A virtual file format metadata object abstraction used to describe files across Gulp streams.",
|
|
318
|
+
"mz": "A legacy utility that wraps native Node.js API functions with standard ES6 promises.",
|
|
319
|
+
"lodash.debounce": "The individual modular package for Lodash's execution debounce utility.",
|
|
320
|
+
"html-minifier": "A highly configurable JavaScript-based HTML minifier tool used to reduce markup sizes.",
|
|
321
|
+
"ts-node": "A TypeScript execution engine and REPL that allows running TypeScript directly in Node.js.",
|
|
322
|
+
"nconf": "Hierarchical node configuration engine supporting files, environment variables, and command-line arguments.",
|
|
323
|
+
"recursive-readdir": "Recursively lists all files within a nested directory structure while honoring exclusions.",
|
|
324
|
+
"vue-loader": "A loader for webpack that allows authoring Vue components in a Single-File Component format.",
|
|
325
|
+
"@types/express": "TypeScript type definitions for the Express web application framework backend.",
|
|
326
|
+
"datafire": "An open-source integration framework for building and connecting APIs and serverless workflows.",
|
|
327
|
+
"@types/react-dom": "TypeScript type definitions for using React DOM rendering methods.",
|
|
328
|
+
"babel-plugin-transform-decorators-legacy": "A legacy Babel plugin that enables using experimental ES7 decorator syntax.",
|
|
329
|
+
"clean-css": "A fast and highly efficient CSS minifier and optimizer utility for Node.js.",
|
|
330
|
+
"hoek": "A legacy utility library filled with general helper functions for the Hapi ecosystem.",
|
|
331
|
+
"cookie": "A basic, lightweight cookie serialization and parsing library for HTTP servers.",
|
|
332
|
+
"@babel/plugin-transform-runtime": "A modern Babel plugin that reuses modular helper methods to minimize code size.",
|
|
333
|
+
"when": "A legacy, feature-rich Promise/A+ and async control-flow toolset library.",
|
|
334
|
+
"babel-plugin-named-asset-import": "A Babel plugin utilized by Create React App to support named asset imports.",
|
|
335
|
+
"postcss-safe-parser": "A fault-tolerant CSS parser for PostCSS that fixes broken or unclosed code.",
|
|
336
|
+
"bcrypt": "A native hashing library implementing the industry-standard Blowfish file encryption algorithm.",
|
|
337
|
+
"@material-ui/core": "The official core component package for Material UI (v4), implementing Google's Material Design.",
|
|
338
|
+
"@babel/plugin-syntax-dynamic-import": "A Babel plugin that provides native syntax support for dynamic import() expressions.",
|
|
339
|
+
"nunjucks": "A powerful, sophisticated templating engine for JavaScript inspired by Jinja2.",
|
|
340
|
+
"eslint-plugin-promise": "Enforces best practices and error handling patterns for JavaScript Promises in ESLint.",
|
|
341
|
+
"react-native": "A mobile application framework for building native iOS and Android apps using React.",
|
|
342
|
+
"lodash.isequal": "The individual modular package for Lodash's deep object equality checker query.",
|
|
343
|
+
"workbox-webpack-plugin": "A webpack plugin that simplifies generating service workers for progressive web apps.",
|
|
344
|
+
"acorn": "A tiny, lightning-fast, and extensible pure-JavaScript ECMAScript parser engine.",
|
|
345
|
+
"amqplib": "An AMQP 0-9-1 protocol client library used to interact with RabbitMQ message brokers.",
|
|
346
|
+
"@svgr/webpack": "A webpack loader that converts scalable vector graphics (SVG) directly into React components.",
|
|
347
|
+
"color": "An immutable color conversion and manipulation library supporting various color spaces.",
|
|
348
|
+
"ms": "A tiny utility that converts various time string formats into milliseconds and vice versa.",
|
|
349
|
+
"js-cookie": "A simple, lightweight JavaScript API for handling cookies in the web browser.",
|
|
350
|
+
"temp": "Temporary file, directory, and stream creator featuring automatic cleanup for Node.js programs.",
|
|
351
|
+
"simple-git": "A lightweight interface tool used to execute Git commands directly within Node.js.",
|
|
352
|
+
"cssnano": "A modular, extensible CSS optimization framework built on top of PostCSS.",
|
|
353
|
+
"reselect": "A selector utility library for Redux designed to create efficient, memoized state queries.",
|
|
354
|
+
"yamljs": "A legacy, native JavaScript standalone YAML parser and encoder utility.",
|
|
355
|
+
"ioredis": "A robust, full-featured, and performance-driven Redis client library supporting clusters and sentinels.",
|
|
356
|
+
"koa-static": "Static file serving middleware built explicitly for the next-generation Koa framework.",
|
|
357
|
+
"react-app-polyfill": "A collection of polyfills utilized by Create React App for legacy browser support.",
|
|
358
|
+
"react-select": "A highly flexible, customizable, and feature-rich select control component for React.",
|
|
359
|
+
"escape-string-regexp": "Escapes special regular expression characters within strings for safe matching queries.",
|
|
360
|
+
"firebase": "The official JavaScript SDK bundle for connecting to Google Firebase cloud services.",
|
|
361
|
+
"bn.js": "A fast big number library tailored for multi-precision mathematics and cryptography.",
|
|
362
|
+
"escodegen": "An ECMAScript code generator that reconstructs valid JavaScript code from an AST structure.",
|
|
363
|
+
"react-bootstrap": "The popular Bootstrap UI framework completely rebuilt as native components for React.",
|
|
364
|
+
"babelify": "A Browserify transform module that allows transpiling source code files using Babel.",
|
|
365
|
+
"helmet": "Secures Express applications by configuring various crucial HTTP response headers.",
|
|
366
|
+
"nopt": "An advanced command-line option parser utility utilized internally by the npm project.",
|
|
367
|
+
"eslint-plugin-prettier": "Runs Prettier code formatting checks directly as linting rules within ESLint.",
|
|
368
|
+
"jest-resolve": "The module resolution architecture and implementation used internally by Jest.",
|
|
369
|
+
"knex": "A multi-dialect SQL query builder supporting Postgres, MSSQL, MySQL, and SQLite3.",
|
|
370
|
+
"pnp-webpack-plugin": "A legacy webpack plugin that implemented support for Yarn Plug'n'Play architectures.",
|
|
371
|
+
"gulp-if": "A Gulp utility used to conditionally filter and execute plugins inside code streams.",
|
|
372
|
+
"assert": "Node.js core validation assertion module packaged for seamless cross-platform browser use.",
|
|
373
|
+
"global": "A basic utility providing consistent access to the global window/global namespace objects.",
|
|
374
|
+
"npmlog": "The standard logger framework utility utilized internally by the npm CLI client tool.",
|
|
375
|
+
"backbone": "A legacy, structural MV* frontend framework utilizing model-view-presenter patterns.",
|
|
376
|
+
"graphql-tag": "A JavaScript template literal tag used to parse GraphQL query strings into ASTs.",
|
|
377
|
+
"raw-loader": "A legacy webpack loader that imports raw text file data as a string module.",
|
|
378
|
+
"run-sequence": "A deprecated Gulp utility used to run sequential or parallel tasks in order.",
|
|
379
|
+
"lodash.clonedeep": "The individual modular package for Lodash's deep cloning utility function.",
|
|
380
|
+
"@oclif/command": "The base command execution layer module for the Salesforce oclif CLI framework.",
|
|
381
|
+
"http-proxy-middleware": "The definitive configuration proxy middleware for Express, Connect, and browser-sync setups.",
|
|
382
|
+
"gulp-babel": "A Gulp streaming plugin used to transpile JavaScript files using Babel.",
|
|
383
|
+
"@oclif/config": "The core plugin configuration management layer for the Salesforce oclif CLI framework.",
|
|
384
|
+
"vinyl-fs": "The core file system adaptation stream source and destination layer for Gulp.",
|
|
385
|
+
"lodash.throttle": "The individual modular package for Lodash's execution throttle utility.",
|
|
386
|
+
"passport-local": "A local username and password authentication strategy plugin tailored for Passport.",
|
|
387
|
+
"eventemitter2": "An enhanced EventEmitter featuring namespaced wildcards, listeners, and performance updates.",
|
|
388
|
+
"mqtt": "A high-performance client library for the MQTT protocol, used in IoT architectures.",
|
|
389
|
+
"unique-random-array": "Picks a random item from an array without returning consecutive duplicate values.",
|
|
390
|
+
"buffer": "The Node.js core Buffer API layer implemented cleanly for modern browser environments.",
|
|
391
|
+
"redux-saga": "An alternative Redux middleware layer utilizing generators to manage complex async side-effects.",
|
|
392
|
+
"react-router-redux": "A deprecated synchronization utility library connecting React Router and Redux state histories.",
|
|
393
|
+
"jszip": "A comprehensive utility library used to read, edit, and create .zip archive files.",
|
|
394
|
+
"koa-bodyparser": "A comprehensive request body parser middleware designed for the Koa framework ecosystem.",
|
|
395
|
+
"async-validator": "An asynchronous schema validation engine used for verifying object parameters.",
|
|
396
|
+
"babel-preset-stage-2": "A deprecated Babel configuration preset containing experimental candidate-stage JS proposals.",
|
|
397
|
+
"node-notifier": "Sends native cross-platform desktop notifications to macOS, Windows, and Linux desktops.",
|
|
398
|
+
"eslint-config-airbnb-base": "Airbnb's standard JavaScript style guide rules without React-specific linting parameters.",
|
|
399
|
+
"material-ui": "The deprecated legacy package name for the original Material UI component library.",
|
|
400
|
+
"validate-npm-package-name": "Validates whether a given text string constitutes a valid npm package name.",
|
|
401
|
+
"clean-webpack-plugin": "A webpack plugin that cleans and empties the build output folder prior to compilation.",
|
|
402
|
+
"hammerjs": "A popular JavaScript library used to detect multi-touch gestures on touch screens."
|
|
403
|
+
}
|
package/src/index.js
ADDED
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
const fs = require("fs");
|
|
2
|
+
const path = require("path");
|
|
3
|
+
|
|
4
|
+
function scanPackageJson(filePath) {
|
|
5
|
+
const resolved = path.resolve(filePath);
|
|
6
|
+
const raw = fs.readFileSync(resolved, "utf-8");
|
|
7
|
+
const pkg = JSON.parse(raw);
|
|
8
|
+
|
|
9
|
+
const deps = () => {
|
|
10
|
+
const allDeps = { ...pkg.dependencies, ...pkg.devDependencies };
|
|
11
|
+
return Object.keys(allDeps);
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
const descriptions = deps().map((dep) => {
|
|
15
|
+
try {
|
|
16
|
+
const depPkgPath = require.resolve(`${dep}/package.json`, { paths: [path.dirname(resolved)] });
|
|
17
|
+
const depPkgRaw = fs.readFileSync(depPkgPath, "utf-8");
|
|
18
|
+
const depPkg = JSON.parse(depPkgRaw);
|
|
19
|
+
return { name: dep, description: depPkg.description || "(no description)" };
|
|
20
|
+
} catch (e) {
|
|
21
|
+
return { name: dep, description: "(description not found)" };
|
|
22
|
+
}
|
|
23
|
+
});
|
|
24
|
+
|
|
25
|
+
return {
|
|
26
|
+
name: pkg.name ?? "(unknown)",
|
|
27
|
+
version: pkg.version ?? "(unknown)",
|
|
28
|
+
dependencies: pkg.dependencies ?? {},
|
|
29
|
+
devDependencies: pkg.devDependencies ?? {},
|
|
30
|
+
issues,
|
|
31
|
+
};
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
module.exports = { scanPackageJson };
|