smartreadme 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 +270 -0
- package/dist/bin/cli.d.ts +3 -0
- package/dist/bin/cli.d.ts.map +1 -0
- package/dist/bin/cli.js +122 -0
- package/dist/bin/cli.js.map +1 -0
- package/dist/src/generator.d.ts +6 -0
- package/dist/src/generator.d.ts.map +1 -0
- package/dist/src/generator.js +296 -0
- package/dist/src/generator.js.map +1 -0
- package/dist/src/index.d.ts +26 -0
- package/dist/src/index.d.ts.map +1 -0
- package/dist/src/index.js +55 -0
- package/dist/src/index.js.map +1 -0
- package/dist/src/scanner.d.ts +39 -0
- package/dist/src/scanner.d.ts.map +1 -0
- package/dist/src/scanner.js +271 -0
- package/dist/src/scanner.js.map +1 -0
- package/dist/src/types.d.ts +69 -0
- package/dist/src/types.d.ts.map +1 -0
- package/dist/src/types.js +3 -0
- package/dist/src/types.js.map +1 -0
- package/dist/test/test.d.ts +2 -0
- package/dist/test/test.d.ts.map +1 -0
- package/dist/test/test.js +138 -0
- package/dist/test/test.js.map +1 -0
- package/package.json +50 -0
package/README.md
ADDED
|
@@ -0,0 +1,270 @@
|
|
|
1
|
+
# Readme Gen
|
|
2
|
+
|
|
3
|
+
> A zero-dependency CLI tool and Node.js library that scans your project and generates a professional, publish-ready `README.md` β written in TypeScript.
|
|
4
|
+
|
|
5
|
+
[](https://www.npmjs.com/package/smartreadme)
|
|
6
|
+
[](https://www.npmjs.com/package/smartreadme)
|
|
7
|
+
[](https://opensource.org/licenses/MIT)
|
|
8
|
+

|
|
9
|
+
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
## π About
|
|
13
|
+
|
|
14
|
+
**smartreadme** scans your `package.json`, detects your tech stack, reads your scripts, checks for Docker and CI configs, and safely masks any `.env` variables β then outputs a polished, structured `README.md` in seconds.
|
|
15
|
+
|
|
16
|
+
- **Zero dependencies** at runtime β nothing to install beyond the tool itself.
|
|
17
|
+
- **Safe `.env` handling** β real secret values are never written to your README; they are replaced with clearly labelled example placeholders.
|
|
18
|
+
- **Auto backup** β if a `README.md` already exists it is renamed to `README.backup.<timestamp>.md` before writing.
|
|
19
|
+
- **Works as a CLI or a programmatic API** β import `scan`, `generate`, and `run` directly in your own scripts.
|
|
20
|
+
|
|
21
|
+
---
|
|
22
|
+
|
|
23
|
+
## β¨ Features
|
|
24
|
+
|
|
25
|
+
- β
Detects 30+ frameworks and libraries (React, Vue, Next.js, Express, Prisma, tRPC, Honoβ¦)
|
|
26
|
+
- β
Generates npm badges, license badge, and per-tech-stack shield badges automatically
|
|
27
|
+
- β
Masks `.env` / `.env.example` values with safe, contextual placeholders
|
|
28
|
+
- β
Produces a scripts table from `package.json`
|
|
29
|
+
- β
Adds Docker usage section when `Dockerfile` / `docker-compose.yml` is detected
|
|
30
|
+
- β
Adds API Reference section for backend/library project types
|
|
31
|
+
- β
Backs up any existing README before overwriting
|
|
32
|
+
- β
Fully typed β ships with `.d.ts` declaration files
|
|
33
|
+
- π§ Plugin system for custom section builders β coming soon
|
|
34
|
+
|
|
35
|
+
---
|
|
36
|
+
|
|
37
|
+
## π οΈ Tech Stack
|
|
38
|
+
|
|
39
|
+
- **TypeScript** β strict mode, full declaration output
|
|
40
|
+
- **Node.js** β CommonJS, no runtime dependencies
|
|
41
|
+
- **ts-node** β for running tests directly without a build step
|
|
42
|
+
|
|
43
|
+
---
|
|
44
|
+
|
|
45
|
+
## π¦ Prerequisites
|
|
46
|
+
|
|
47
|
+
- [Node.js](https://nodejs.org/) v18 or higher
|
|
48
|
+
- [npm](https://www.npmjs.com/) v9 or higher
|
|
49
|
+
|
|
50
|
+
---
|
|
51
|
+
|
|
52
|
+
## π Getting Started
|
|
53
|
+
|
|
54
|
+
### Install globally (CLI usage)
|
|
55
|
+
|
|
56
|
+
```bash
|
|
57
|
+
npm install -g smartreadme
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
### Install locally (programmatic API)
|
|
61
|
+
|
|
62
|
+
```bash
|
|
63
|
+
npm install --save-dev readme-gen
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
### Clone and develop
|
|
67
|
+
|
|
68
|
+
```bash
|
|
69
|
+
git clone https://github.com/yourusername/readme-gen.git
|
|
70
|
+
cd readme-gen
|
|
71
|
+
|
|
72
|
+
# Install dev dependencies
|
|
73
|
+
npm install
|
|
74
|
+
|
|
75
|
+
# Build TypeScript β dist/
|
|
76
|
+
npm run build
|
|
77
|
+
|
|
78
|
+
# Run the CLI from dist
|
|
79
|
+
npm start
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
---
|
|
83
|
+
|
|
84
|
+
## π» Usage
|
|
85
|
+
|
|
86
|
+
### CLI
|
|
87
|
+
|
|
88
|
+
Run inside any Node.js project directory:
|
|
89
|
+
|
|
90
|
+
```bash
|
|
91
|
+
smartreadme
|
|
92
|
+
```
|
|
93
|
+
|
|
94
|
+
This scans the current directory, generates `README.md`, and backs up any existing file.
|
|
95
|
+
|
|
96
|
+
#### CLI Options
|
|
97
|
+
|
|
98
|
+
| Flag | Alias | Description |
|
|
99
|
+
|------|-------|-------------|
|
|
100
|
+
| `--help` | `-h` | Show help message |
|
|
101
|
+
| `--version` | `-v` | Print version number |
|
|
102
|
+
| `--output <file>` | `-o` | Output filename (default: `README.md`) |
|
|
103
|
+
| `--overwrite` | `-f` | Overwrite existing README without backup |
|
|
104
|
+
| `--preview` | `-p` | Print README to terminal, no file written |
|
|
105
|
+
| `--dir <path>` | | Target directory (default: current directory) |
|
|
106
|
+
|
|
107
|
+
#### Examples
|
|
108
|
+
|
|
109
|
+
```bash
|
|
110
|
+
# Generate README in current directory
|
|
111
|
+
readme-gen
|
|
112
|
+
|
|
113
|
+
# Preview without writing
|
|
114
|
+
readme-gen --preview
|
|
115
|
+
|
|
116
|
+
# Write to a custom file name
|
|
117
|
+
readme-gen --output DOCS.md
|
|
118
|
+
|
|
119
|
+
# Target a different project folder
|
|
120
|
+
readme-gen --dir ./my-other-project
|
|
121
|
+
|
|
122
|
+
# Overwrite without backup
|
|
123
|
+
readme-gen --overwrite
|
|
124
|
+
```
|
|
125
|
+
|
|
126
|
+
### Programmatic API
|
|
127
|
+
|
|
128
|
+
```typescript
|
|
129
|
+
import { scan, generate, run } from 'readme-gen';
|
|
130
|
+
|
|
131
|
+
// Scan + generate in one step (writes README.md to disk)
|
|
132
|
+
const result = run('/path/to/project');
|
|
133
|
+
console.log(result.outPath); // absolute path to the written file
|
|
134
|
+
console.log(result.markdown); // the raw markdown string
|
|
135
|
+
|
|
136
|
+
// Or do it in two steps
|
|
137
|
+
const data = scan('/path/to/project');
|
|
138
|
+
const markdown = generate(data);
|
|
139
|
+
console.log(markdown);
|
|
140
|
+
|
|
141
|
+
// Access individual helpers
|
|
142
|
+
import { scanEnvFile, generateExampleValue, detectStack } from 'readme-gen';
|
|
143
|
+
|
|
144
|
+
const env = scanEnvFile('/path/to/project');
|
|
145
|
+
// { found: true, content: 'DB_URL=mongodb://localhost:27017/your_db\n...', sourceFile: '.env' }
|
|
146
|
+
|
|
147
|
+
const placeholder = generateExampleValue('DATABASE_URL');
|
|
148
|
+
// 'mongodb://localhost:27017/your_db'
|
|
149
|
+
```
|
|
150
|
+
|
|
151
|
+
---
|
|
152
|
+
|
|
153
|
+
## π Environment Variable Masking
|
|
154
|
+
|
|
155
|
+
`readme-gen` scans `.env.example`, `.env.sample`, or `.env` (in that order of preference). Real values are **never** written to the README β instead, each key is matched against a set of patterns and replaced with a descriptive placeholder:
|
|
156
|
+
|
|
157
|
+
| Key pattern | Example output |
|
|
158
|
+
|-------------|----------------|
|
|
159
|
+
| `*PASSWORD*`, `*SECRET*`, `*PASS*` | `your_secret_here` |
|
|
160
|
+
| `*API_KEY*`, `*PRIVATE_KEY*` | `your_api_key_here` |
|
|
161
|
+
| `*TOKEN*` | `your_token_here` |
|
|
162
|
+
| `*DATABASE_URL*`, `*MONGO*` | `mongodb://localhost:27017/your_db` |
|
|
163
|
+
| `*REDIS_URL*` | `redis://localhost:6379` |
|
|
164
|
+
| `*POSTGRES*` | `postgresql://user:password@localhost:5432/your_db` |
|
|
165
|
+
| `PORT` | `3000` |
|
|
166
|
+
| `NODE_ENV` | `development` |
|
|
167
|
+
|
|
168
|
+
> β οΈ Even if you accidentally paste a `.env` with real secrets, they will not appear in the output README.
|
|
169
|
+
|
|
170
|
+
---
|
|
171
|
+
|
|
172
|
+
## π Available Scripts
|
|
173
|
+
|
|
174
|
+
| Script | Command | Description |
|
|
175
|
+
|--------|---------|-------------|
|
|
176
|
+
| `npm run build` | `tsc --project tsconfig.json` | Compile TypeScript to `dist/` |
|
|
177
|
+
| `npm run dev` | `tsc --project tsconfig.json --watch` | Watch mode compilation |
|
|
178
|
+
| `npm start` | `node dist/bin/cli.js` | Run the compiled CLI |
|
|
179
|
+
| `npm test` | `ts-node --project tsconfig.json test/test.ts` | Run the test suite |
|
|
180
|
+
| `npm run typecheck` | `tsc --noEmit` | Type-check without emitting files |
|
|
181
|
+
|
|
182
|
+
---
|
|
183
|
+
|
|
184
|
+
## π Project Structure
|
|
185
|
+
|
|
186
|
+
```
|
|
187
|
+
readme-gen/
|
|
188
|
+
βββ src/
|
|
189
|
+
β βββ types.ts # All TypeScript interfaces and type definitions
|
|
190
|
+
β βββ scanner.ts # Project scanner (package.json, stack, env, configs)
|
|
191
|
+
β βββ generator.ts # Markdown section builders
|
|
192
|
+
β βββ index.ts # Public API (scan, generate, run) + re-exports
|
|
193
|
+
βββ bin/
|
|
194
|
+
β βββ cli.ts # CLI entry point β argument parsing and file I/O
|
|
195
|
+
βββ demo/
|
|
196
|
+
β βββ index.html # Interactive browser demo β open and try it locally
|
|
197
|
+
βββ test/
|
|
198
|
+
β βββ test.ts # Test suite (20 assertions, zero test framework deps)
|
|
199
|
+
βββ dist/ # Compiled output (generated by `npm run build`)
|
|
200
|
+
βββ package.json
|
|
201
|
+
βββ tsconfig.json
|
|
202
|
+
βββ README.md
|
|
203
|
+
```
|
|
204
|
+
|
|
205
|
+
---
|
|
206
|
+
|
|
207
|
+
## π Demo
|
|
208
|
+
|
|
209
|
+
Open `demo/index.html` directly in your browser β no server needed. Fill in your project details, select your stack, paste a `.env`, and click **Generate README** to see a live preview with masked env values. You can download the result as `README.md`.
|
|
210
|
+
|
|
211
|
+
---
|
|
212
|
+
|
|
213
|
+
## π‘ API Reference
|
|
214
|
+
|
|
215
|
+
### `scan(projectRoot?: string): ProjectData`
|
|
216
|
+
|
|
217
|
+
Scans the given directory (default: `process.cwd()`) and returns a `ProjectData` object.
|
|
218
|
+
|
|
219
|
+
### `generate(data: ProjectData): string`
|
|
220
|
+
|
|
221
|
+
Takes `ProjectData` and returns a complete README markdown string.
|
|
222
|
+
|
|
223
|
+
### `run(projectRoot?: string, options?: RunOptions): RunResult`
|
|
224
|
+
|
|
225
|
+
Combines `scan` + `generate` + file write in one call. Backs up any existing README.
|
|
226
|
+
|
|
227
|
+
```typescript
|
|
228
|
+
interface RunOptions {
|
|
229
|
+
output?: string; // default: 'README.md'
|
|
230
|
+
overwrite?: boolean; // default: false
|
|
231
|
+
}
|
|
232
|
+
|
|
233
|
+
interface RunResult {
|
|
234
|
+
outPath: string;
|
|
235
|
+
data: ProjectData;
|
|
236
|
+
markdown: string;
|
|
237
|
+
}
|
|
238
|
+
```
|
|
239
|
+
|
|
240
|
+
### `generateExampleValue(key: string): string`
|
|
241
|
+
|
|
242
|
+
Returns a safe placeholder value for the given env variable key name.
|
|
243
|
+
|
|
244
|
+
### `scanEnvFile(projectRoot: string): EnvInfo`
|
|
245
|
+
|
|
246
|
+
Reads `.env.example` / `.env.sample` / `.env` and returns masked content.
|
|
247
|
+
|
|
248
|
+
### `detectStack(pkg: PackageJson | null): string[]`
|
|
249
|
+
|
|
250
|
+
Returns an array of detected framework/library names from `package.json` deps.
|
|
251
|
+
|
|
252
|
+
---
|
|
253
|
+
|
|
254
|
+
## π€ Contributing
|
|
255
|
+
|
|
256
|
+
Contributions are welcome! Please follow these steps:
|
|
257
|
+
|
|
258
|
+
1. Fork the repository
|
|
259
|
+
2. Create your feature branch: `git checkout -b feature/amazing-feature`
|
|
260
|
+
3. Commit your changes: `git commit -m "feat: add amazing feature"`
|
|
261
|
+
4. Push to the branch: `git push origin feature/amazing-feature`
|
|
262
|
+
5. Open a Pull Request
|
|
263
|
+
|
|
264
|
+
Please make sure to run `npm run typecheck` and `npm test` before submitting.
|
|
265
|
+
|
|
266
|
+
---
|
|
267
|
+
|
|
268
|
+
## π License
|
|
269
|
+
|
|
270
|
+
This project is licensed under the **MIT License** β see the [LICENSE](LICENSE) file for details.
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../../bin/cli.ts"],"names":[],"mappings":""}
|
package/dist/bin/cli.js
ADDED
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
"use strict";
|
|
3
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
4
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
5
|
+
};
|
|
6
|
+
var _a, _b, _c, _d;
|
|
7
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
8
|
+
const fs_1 = __importDefault(require("fs"));
|
|
9
|
+
const path_1 = __importDefault(require("path"));
|
|
10
|
+
const scanner_1 = require("../src/scanner");
|
|
11
|
+
const generator_1 = require("../src/generator");
|
|
12
|
+
// ββ Arg parsing βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
|
|
13
|
+
const args = process.argv.slice(2);
|
|
14
|
+
function getFlag(name) {
|
|
15
|
+
var _a;
|
|
16
|
+
const idx = args.indexOf(name);
|
|
17
|
+
if (idx !== -1 && idx + 1 < args.length)
|
|
18
|
+
return (_a = args[idx + 1]) !== null && _a !== void 0 ? _a : null;
|
|
19
|
+
return null;
|
|
20
|
+
}
|
|
21
|
+
function hasFlag(...names) {
|
|
22
|
+
return names.some((n) => args.includes(n));
|
|
23
|
+
}
|
|
24
|
+
const flags = {
|
|
25
|
+
help: hasFlag("--help", "-h"),
|
|
26
|
+
version: hasFlag("--version", "-v"),
|
|
27
|
+
output: (_b = (_a = getFlag("--output")) !== null && _a !== void 0 ? _a : getFlag("-o")) !== null && _b !== void 0 ? _b : "README.md",
|
|
28
|
+
overwrite: hasFlag("--overwrite", "-f"),
|
|
29
|
+
preview: hasFlag("--preview", "-p"),
|
|
30
|
+
dir: (_c = getFlag("--dir")) !== null && _c !== void 0 ? _c : process.cwd(),
|
|
31
|
+
};
|
|
32
|
+
// ββ Help ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
|
|
33
|
+
if (flags.help) {
|
|
34
|
+
console.log(`
|
|
35
|
+
βββββββββββββββββββββββββββββββββββββββββββ
|
|
36
|
+
β smartreadme π β
|
|
37
|
+
β Generate professional README files β
|
|
38
|
+
βββββββββββββββββββββββββββββββββββββββββββ
|
|
39
|
+
|
|
40
|
+
Usage:
|
|
41
|
+
smartreadme [options]
|
|
42
|
+
|
|
43
|
+
Options:
|
|
44
|
+
-h, --help Show this help message
|
|
45
|
+
-v, --version Show version number
|
|
46
|
+
-o, --output FILE Output file name (default: README.md)
|
|
47
|
+
-f, --overwrite Overwrite existing README without backup
|
|
48
|
+
-p, --preview Print README to terminal, no file written
|
|
49
|
+
--dir PATH Target project directory (default: cwd)
|
|
50
|
+
|
|
51
|
+
Examples:
|
|
52
|
+
smartreadme
|
|
53
|
+
smartreadme --output DOCS.md
|
|
54
|
+
smartreadme --dir ./my-project --overwrite
|
|
55
|
+
smartreadme --preview
|
|
56
|
+
`);
|
|
57
|
+
process.exit(0);
|
|
58
|
+
}
|
|
59
|
+
// ββ Version βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
|
|
60
|
+
if (flags.version) {
|
|
61
|
+
// Walk up from dist/bin/ to find package.json
|
|
62
|
+
const pkgPath = path_1.default.join(__dirname, "..", "package.json");
|
|
63
|
+
try {
|
|
64
|
+
const pkg = JSON.parse(fs_1.default.readFileSync(pkgPath, "utf-8"));
|
|
65
|
+
console.log(`smartreadme v${pkg.version}`);
|
|
66
|
+
}
|
|
67
|
+
catch {
|
|
68
|
+
console.error("β Could not read version from package.json");
|
|
69
|
+
process.exit(1);
|
|
70
|
+
}
|
|
71
|
+
process.exit(0);
|
|
72
|
+
}
|
|
73
|
+
// ββ Main ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
|
|
74
|
+
console.log("\n π‘ smartreadme β Scanning your project...\n");
|
|
75
|
+
const projectRoot = path_1.default.resolve(flags.dir);
|
|
76
|
+
if (!fs_1.default.existsSync(projectRoot)) {
|
|
77
|
+
console.error(` β Directory not found: ${projectRoot}`);
|
|
78
|
+
process.exit(1);
|
|
79
|
+
}
|
|
80
|
+
const data = (0, scanner_1.scanProject)(projectRoot);
|
|
81
|
+
console.log(` β
Project : ${data.name} (${data.projectType})`);
|
|
82
|
+
if (data.stack.length > 0) {
|
|
83
|
+
console.log(` β
Stack : ${data.stack.join(", ")}`);
|
|
84
|
+
}
|
|
85
|
+
if (data.envInfo.found) {
|
|
86
|
+
console.log(` β
Env file: ${(_d = data.envInfo.sourceFile) !== null && _d !== void 0 ? _d : ".env"} (values replaced with examples)`);
|
|
87
|
+
}
|
|
88
|
+
if (data.configs.docker) {
|
|
89
|
+
console.log(" β
Docker config detected");
|
|
90
|
+
}
|
|
91
|
+
console.log("");
|
|
92
|
+
const markdown = (0, generator_1.generateReadme)(data);
|
|
93
|
+
// Preview mode β just print, no file write
|
|
94
|
+
if (flags.preview) {
|
|
95
|
+
console.log("β".repeat(60));
|
|
96
|
+
console.log(markdown);
|
|
97
|
+
console.log("β".repeat(60));
|
|
98
|
+
console.log("\n βΉοΈ Preview mode β no file written.\n");
|
|
99
|
+
process.exit(0);
|
|
100
|
+
}
|
|
101
|
+
const outPath = path_1.default.join(projectRoot, flags.output);
|
|
102
|
+
if (fs_1.default.existsSync(outPath) && !flags.overwrite) {
|
|
103
|
+
const backup = outPath.replace(/\.md$/i, `.backup.${Date.now()}.md`);
|
|
104
|
+
try {
|
|
105
|
+
fs_1.default.renameSync(outPath, backup);
|
|
106
|
+
console.log(` π¦ Existing README backed up to: ${path_1.default.basename(backup)}`);
|
|
107
|
+
}
|
|
108
|
+
catch (err) {
|
|
109
|
+
console.error(` β Failed to backup existing README: ${err instanceof Error ? err.message : String(err)}`);
|
|
110
|
+
process.exit(1);
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
try {
|
|
114
|
+
fs_1.default.writeFileSync(outPath, markdown, "utf-8");
|
|
115
|
+
}
|
|
116
|
+
catch (err) {
|
|
117
|
+
console.error(` β Failed to write README: ${err instanceof Error ? err.message : String(err)}`);
|
|
118
|
+
process.exit(1);
|
|
119
|
+
}
|
|
120
|
+
console.log(` β¨ README generated successfully β ${flags.output}`);
|
|
121
|
+
console.log(" π Don't forget to fill in the placeholder sections!\n");
|
|
122
|
+
//# sourceMappingURL=cli.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../../bin/cli.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"generator.d.ts","sourceRoot":"","sources":["../../src/generator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAe,MAAM,SAAS,CAAC;AAExD;;GAEG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,WAAW,GAAG,MAAM,CAmBxD"}
|