@malikasadjaved/readme-ai 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/LICENSE +21 -0
- package/README.md +309 -0
- package/dist/analyzers/badge-generator.d.ts +12 -0
- package/dist/analyzers/badge-generator.d.ts.map +1 -0
- package/dist/analyzers/badge-generator.js +139 -0
- package/dist/analyzers/badge-generator.js.map +1 -0
- package/dist/analyzers/code-analyzer.d.ts +34 -0
- package/dist/analyzers/code-analyzer.d.ts.map +1 -0
- package/dist/analyzers/code-analyzer.js +210 -0
- package/dist/analyzers/code-analyzer.js.map +1 -0
- package/dist/analyzers/dependency-analyzer.d.ts +16 -0
- package/dist/analyzers/dependency-analyzer.d.ts.map +1 -0
- package/dist/analyzers/dependency-analyzer.js +169 -0
- package/dist/analyzers/dependency-analyzer.js.map +1 -0
- package/dist/analyzers/diagram-builder.d.ts +11 -0
- package/dist/analyzers/diagram-builder.d.ts.map +1 -0
- package/dist/analyzers/diagram-builder.js +163 -0
- package/dist/analyzers/diagram-builder.js.map +1 -0
- package/dist/analyzers/file-scanner.d.ts +17 -0
- package/dist/analyzers/file-scanner.d.ts.map +1 -0
- package/dist/analyzers/file-scanner.js +103 -0
- package/dist/analyzers/file-scanner.js.map +1 -0
- package/dist/analyzers/index.d.ts +7 -0
- package/dist/analyzers/index.d.ts.map +1 -0
- package/dist/analyzers/index.js +7 -0
- package/dist/analyzers/index.js.map +1 -0
- package/dist/analyzers/repo-fetcher.d.ts +22 -0
- package/dist/analyzers/repo-fetcher.d.ts.map +1 -0
- package/dist/analyzers/repo-fetcher.js +134 -0
- package/dist/analyzers/repo-fetcher.js.map +1 -0
- package/dist/cli.d.ts +2 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +54 -0
- package/dist/cli.js.map +1 -0
- package/dist/commands/generate.d.ts +17 -0
- package/dist/commands/generate.d.ts.map +1 -0
- package/dist/commands/generate.js +189 -0
- package/dist/commands/generate.js.map +1 -0
- package/dist/config.d.ts +17 -0
- package/dist/config.d.ts.map +1 -0
- package/dist/config.js +28 -0
- package/dist/config.js.map +1 -0
- package/dist/generators/changelog.d.ts +7 -0
- package/dist/generators/changelog.d.ts.map +1 -0
- package/dist/generators/changelog.js +15 -0
- package/dist/generators/changelog.js.map +1 -0
- package/dist/generators/contributing.d.ts +5 -0
- package/dist/generators/contributing.d.ts.map +1 -0
- package/dist/generators/contributing.js +28 -0
- package/dist/generators/contributing.js.map +1 -0
- package/dist/generators/index.d.ts +6 -0
- package/dist/generators/index.d.ts.map +1 -0
- package/dist/generators/index.js +6 -0
- package/dist/generators/index.js.map +1 -0
- package/dist/generators/install.d.ts +14 -0
- package/dist/generators/install.d.ts.map +1 -0
- package/dist/generators/install.js +95 -0
- package/dist/generators/install.js.map +1 -0
- package/dist/generators/overview.d.ts +20 -0
- package/dist/generators/overview.d.ts.map +1 -0
- package/dist/generators/overview.js +87 -0
- package/dist/generators/overview.js.map +1 -0
- package/dist/generators/usage.d.ts +33 -0
- package/dist/generators/usage.d.ts.map +1 -0
- package/dist/generators/usage.js +130 -0
- package/dist/generators/usage.js.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +47 -0
- package/dist/index.js.map +1 -0
- package/dist/providers/anthropic.d.ts +3 -0
- package/dist/providers/anthropic.d.ts.map +1 -0
- package/dist/providers/anthropic.js +47 -0
- package/dist/providers/anthropic.js.map +1 -0
- package/dist/providers/gemini.d.ts +3 -0
- package/dist/providers/gemini.d.ts.map +1 -0
- package/dist/providers/gemini.js +28 -0
- package/dist/providers/gemini.js.map +1 -0
- package/dist/providers/index.d.ts +8 -0
- package/dist/providers/index.d.ts.map +1 -0
- package/dist/providers/index.js +24 -0
- package/dist/providers/index.js.map +1 -0
- package/dist/providers/ollama.d.ts +3 -0
- package/dist/providers/ollama.d.ts.map +1 -0
- package/dist/providers/ollama.js +46 -0
- package/dist/providers/ollama.js.map +1 -0
- package/dist/providers/openai.d.ts +3 -0
- package/dist/providers/openai.d.ts.map +1 -0
- package/dist/providers/openai.js +40 -0
- package/dist/providers/openai.js.map +1 -0
- package/dist/themes/academic.d.ts +3 -0
- package/dist/themes/academic.d.ts.map +1 -0
- package/dist/themes/academic.js +113 -0
- package/dist/themes/academic.js.map +1 -0
- package/dist/themes/default.d.ts +3 -0
- package/dist/themes/default.d.ts.map +1 -0
- package/dist/themes/default.js +114 -0
- package/dist/themes/default.js.map +1 -0
- package/dist/themes/hacker.d.ts +3 -0
- package/dist/themes/hacker.d.ts.map +1 -0
- package/dist/themes/hacker.js +100 -0
- package/dist/themes/hacker.js.map +1 -0
- package/dist/themes/index.d.ts +26 -0
- package/dist/themes/index.d.ts.map +1 -0
- package/dist/themes/index.js +23 -0
- package/dist/themes/index.js.map +1 -0
- package/dist/themes/minimal.d.ts +3 -0
- package/dist/themes/minimal.d.ts.map +1 -0
- package/dist/themes/minimal.js +85 -0
- package/dist/themes/minimal.js.map +1 -0
- package/dist/themes/modern.d.ts +3 -0
- package/dist/themes/modern.d.ts.map +1 -0
- package/dist/themes/modern.js +114 -0
- package/dist/themes/modern.js.map +1 -0
- package/dist/utils/file-utils.d.ts +9 -0
- package/dist/utils/file-utils.d.ts.map +1 -0
- package/dist/utils/file-utils.js +93 -0
- package/dist/utils/file-utils.js.map +1 -0
- package/dist/utils/github-api.d.ts +27 -0
- package/dist/utils/github-api.d.ts.map +1 -0
- package/dist/utils/github-api.js +68 -0
- package/dist/utils/github-api.js.map +1 -0
- package/dist/utils/language-detector.d.ts +18 -0
- package/dist/utils/language-detector.d.ts.map +1 -0
- package/dist/utils/language-detector.js +139 -0
- package/dist/utils/language-detector.js.map +1 -0
- package/dist/utils/markdown-writer.d.ts +5 -0
- package/dist/utils/markdown-writer.d.ts.map +1 -0
- package/dist/utils/markdown-writer.js +19 -0
- package/dist/utils/markdown-writer.js.map +1 -0
- package/dist/utils/template-engine.d.ts +9 -0
- package/dist/utils/template-engine.d.ts.map +1 -0
- package/dist/utils/template-engine.js +29 -0
- package/dist/utils/template-engine.js.map +1 -0
- package/package.json +60 -0
- package/templates/.readmeaiignore.example +41 -0
- package/templates/github-action.yml +35 -0
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2024 readme-ai contributors
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.md
ADDED
|
@@ -0,0 +1,309 @@
|
|
|
1
|
+
<div align="center">
|
|
2
|
+
|
|
3
|
+
# readme-ai
|
|
4
|
+
|
|
5
|
+
> Generate stunning, production-quality READMEs from any codebase in seconds
|
|
6
|
+
|
|
7
|
+
[](#)
|
|
8
|
+
[](#)
|
|
9
|
+
[](#license)
|
|
10
|
+
[](https://www.npmjs.com/package/readme-ai)
|
|
11
|
+
|
|
12
|
+
**One command. Zero install. Beautiful READMEs.**
|
|
13
|
+
|
|
14
|
+
[Quick Start](#-quick-start) · [Themes](#-themes) · [Providers](#-ai-providers) · [CLI Options](#-cli-options) · [GitHub Action](#-github-action)
|
|
15
|
+
|
|
16
|
+
</div>
|
|
17
|
+
|
|
18
|
+
---
|
|
19
|
+
|
|
20
|
+
## Overview
|
|
21
|
+
|
|
22
|
+
**readme-ai** reads your actual source code — not just directory names — and generates a complete, polished README with architecture diagrams, badges, install instructions, usage examples, and API docs. Point it at any local project or public GitHub repo and get a production-ready README in seconds.
|
|
23
|
+
|
|
24
|
+
Unlike existing tools, readme-ai goes deep: it parses dependencies, detects frameworks, extracts API endpoints and CLI commands, and builds Mermaid architecture diagrams automatically. It supports 5 visual themes and 4 AI providers (including fully local generation via Ollama).
|
|
25
|
+
|
|
26
|
+
## Key Features
|
|
27
|
+
|
|
28
|
+
- **npx-first** — zero install, works instantly: `npx readme-ai`
|
|
29
|
+
- **Deep code analysis** — reads actual source files, extracts functions, endpoints, and CLI commands
|
|
30
|
+
- **Auto Mermaid diagrams** — generates architecture diagrams from your code structure
|
|
31
|
+
- **5 beautiful themes** — Default, Modern, Hacker, Minimal, Academic
|
|
32
|
+
- **4 AI providers** — Claude, GPT-4o, Gemini, Ollama (free & local)
|
|
33
|
+
- **Smart badge generation** — auto-detects language, frameworks, CI, Docker, license
|
|
34
|
+
- **GitHub URL support** — `npx readme-ai github:user/repo` analyzes any public repo
|
|
35
|
+
- **GitHub Action included** — auto-regenerate your README on every push
|
|
36
|
+
|
|
37
|
+
## Quick Start
|
|
38
|
+
|
|
39
|
+
```bash
|
|
40
|
+
# Generate README for current directory
|
|
41
|
+
npx readme-ai
|
|
42
|
+
|
|
43
|
+
# Point at a local project
|
|
44
|
+
npx readme-ai ./my-project
|
|
45
|
+
|
|
46
|
+
# Point at a GitHub repo
|
|
47
|
+
npx readme-ai github:expressjs/express
|
|
48
|
+
|
|
49
|
+
# Interactive mode (guided prompts)
|
|
50
|
+
npx readme-ai --interactive
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
## Comparison
|
|
54
|
+
|
|
55
|
+
| Feature | readme-ai | eli64s/readme-ai | readmeX |
|
|
56
|
+
|---------|:---------:|:----------------:|:-------:|
|
|
57
|
+
| npx support (zero install) | **Yes** | No | No |
|
|
58
|
+
| Mermaid architecture diagrams | **Yes** | No | No |
|
|
59
|
+
| GitHub URL analysis | **Yes** | Yes | Yes |
|
|
60
|
+
| Multiple themes | **5** | 3 | No |
|
|
61
|
+
| GitHub Action template | **Yes** | No | No |
|
|
62
|
+
| API docs from code | **Yes** | No | No |
|
|
63
|
+
| Badge auto-generation | **Yes** | Yes | Partial |
|
|
64
|
+
| Local AI (Ollama) | **Yes** | No | No |
|
|
65
|
+
|
|
66
|
+
## Themes
|
|
67
|
+
|
|
68
|
+
### Default — Clean & Professional
|
|
69
|
+
The standard theme with a centered header, emoji section headers, and shields.io badges.
|
|
70
|
+
|
|
71
|
+
### Modern — Emoji-rich & Colorful
|
|
72
|
+
Heavy use of emojis, colorful badge rows, and visual separators for maximum impact.
|
|
73
|
+
|
|
74
|
+
### Hacker — Terminal Aesthetic
|
|
75
|
+
ASCII art header, monospace styling, `>` prefixed descriptions — for the terminal lovers.
|
|
76
|
+
|
|
77
|
+
### Minimal — Pure Markdown
|
|
78
|
+
No emojis, no badges, no frills. Just clean, readable markdown.
|
|
79
|
+
|
|
80
|
+
### Academic — Formal & Structured
|
|
81
|
+
Numbered sections, citation-style references, formal language. Great for research projects.
|
|
82
|
+
|
|
83
|
+
```bash
|
|
84
|
+
# Use a specific theme
|
|
85
|
+
npx readme-ai --theme modern
|
|
86
|
+
npx readme-ai --theme hacker
|
|
87
|
+
npx readme-ai --theme minimal
|
|
88
|
+
npx readme-ai --theme academic
|
|
89
|
+
```
|
|
90
|
+
|
|
91
|
+
## AI Providers
|
|
92
|
+
|
|
93
|
+
### Claude (Anthropic) — Default
|
|
94
|
+
|
|
95
|
+
```bash
|
|
96
|
+
export ANTHROPIC_API_KEY=sk-ant-...
|
|
97
|
+
npx readme-ai
|
|
98
|
+
```
|
|
99
|
+
|
|
100
|
+
### GPT-4o-mini (OpenAI)
|
|
101
|
+
|
|
102
|
+
```bash
|
|
103
|
+
export OPENAI_API_KEY=sk-...
|
|
104
|
+
npx readme-ai --provider openai
|
|
105
|
+
```
|
|
106
|
+
|
|
107
|
+
### Gemini Flash (Google)
|
|
108
|
+
|
|
109
|
+
```bash
|
|
110
|
+
export GEMINI_API_KEY=...
|
|
111
|
+
npx readme-ai --provider gemini
|
|
112
|
+
```
|
|
113
|
+
|
|
114
|
+
### Ollama (Local, Free)
|
|
115
|
+
|
|
116
|
+
```bash
|
|
117
|
+
# Make sure Ollama is running locally
|
|
118
|
+
npx readme-ai --provider ollama
|
|
119
|
+
npx readme-ai --provider ollama --model llama3.1
|
|
120
|
+
```
|
|
121
|
+
|
|
122
|
+
## CLI Options
|
|
123
|
+
|
|
124
|
+
```
|
|
125
|
+
Usage: readme-ai [repo] [options]
|
|
126
|
+
|
|
127
|
+
Arguments:
|
|
128
|
+
repo Local path or GitHub URL (github:user/repo)
|
|
129
|
+
|
|
130
|
+
Options:
|
|
131
|
+
-V, --version Output the version number
|
|
132
|
+
-o, --output <file> Output file path (default: "README.md")
|
|
133
|
+
-p, --provider <name> AI provider: anthropic | openai | gemini | ollama (default: "anthropic")
|
|
134
|
+
-m, --model <name> Model name (depends on provider)
|
|
135
|
+
-t, --theme <name> Theme: default | minimal | hacker | modern | academic (default: "default")
|
|
136
|
+
--no-diagram Skip Mermaid architecture diagram
|
|
137
|
+
--no-badges Skip badge generation
|
|
138
|
+
--no-api-docs Skip API documentation section
|
|
139
|
+
--interactive Run in interactive mode
|
|
140
|
+
--action Generate a GitHub Action for auto-updating README
|
|
141
|
+
--overwrite Overwrite existing README without asking
|
|
142
|
+
--dry-run Print README to stdout instead of writing to file
|
|
143
|
+
-h, --help Display help for command
|
|
144
|
+
```
|
|
145
|
+
|
|
146
|
+
### Examples
|
|
147
|
+
|
|
148
|
+
```bash
|
|
149
|
+
# Generate with Modern theme using OpenAI
|
|
150
|
+
npx readme-ai ./my-app --provider openai --theme modern
|
|
151
|
+
|
|
152
|
+
# Dry run (preview without writing)
|
|
153
|
+
npx readme-ai --dry-run
|
|
154
|
+
|
|
155
|
+
# Generate without diagram and badges
|
|
156
|
+
npx readme-ai --no-diagram --no-badges
|
|
157
|
+
|
|
158
|
+
# Overwrite existing README and generate GitHub Action
|
|
159
|
+
npx readme-ai --overwrite --action
|
|
160
|
+
|
|
161
|
+
# Analyze a remote GitHub repository
|
|
162
|
+
npx readme-ai github:tiangolo/fastapi --theme academic
|
|
163
|
+
```
|
|
164
|
+
|
|
165
|
+
## GitHub Action
|
|
166
|
+
|
|
167
|
+
Auto-regenerate your README on every push to main:
|
|
168
|
+
|
|
169
|
+
```bash
|
|
170
|
+
# Generate the action file automatically
|
|
171
|
+
npx readme-ai --action
|
|
172
|
+
```
|
|
173
|
+
|
|
174
|
+
Or manually create `.github/workflows/readme-update.yml`:
|
|
175
|
+
|
|
176
|
+
```yaml
|
|
177
|
+
name: Update README
|
|
178
|
+
|
|
179
|
+
on:
|
|
180
|
+
push:
|
|
181
|
+
branches: [main, master]
|
|
182
|
+
paths-ignore:
|
|
183
|
+
- 'README.md'
|
|
184
|
+
|
|
185
|
+
jobs:
|
|
186
|
+
update-readme:
|
|
187
|
+
runs-on: ubuntu-latest
|
|
188
|
+
permissions:
|
|
189
|
+
contents: write
|
|
190
|
+
|
|
191
|
+
steps:
|
|
192
|
+
- uses: actions/checkout@v4
|
|
193
|
+
|
|
194
|
+
- uses: actions/setup-node@v4
|
|
195
|
+
with:
|
|
196
|
+
node-version: '20'
|
|
197
|
+
|
|
198
|
+
- name: Generate README
|
|
199
|
+
run: npx readme-ai@latest --overwrite --no-interactive
|
|
200
|
+
env:
|
|
201
|
+
ANTHROPIC_API_KEY: ${{ secrets.ANTHROPIC_API_KEY }}
|
|
202
|
+
|
|
203
|
+
- name: Commit updated README
|
|
204
|
+
uses: stefanzweifel/git-auto-commit-action@v5
|
|
205
|
+
with:
|
|
206
|
+
commit_message: 'docs: auto-update README [skip ci]'
|
|
207
|
+
file_pattern: README.md
|
|
208
|
+
```
|
|
209
|
+
|
|
210
|
+
## Architecture
|
|
211
|
+
|
|
212
|
+
```mermaid
|
|
213
|
+
graph TD
|
|
214
|
+
A[CLI Input] --> B[Command Parser]
|
|
215
|
+
B --> C[Repo Fetcher]
|
|
216
|
+
C -->|Local Path| D[File Scanner]
|
|
217
|
+
C -->|GitHub URL| E[GitHub API]
|
|
218
|
+
E --> D
|
|
219
|
+
D --> F[Code Analyzer]
|
|
220
|
+
D --> G[Dependency Analyzer]
|
|
221
|
+
F --> H[AI Provider]
|
|
222
|
+
G --> H
|
|
223
|
+
H --> I[Section Generators]
|
|
224
|
+
I --> J[Theme Engine]
|
|
225
|
+
J --> K[Markdown Writer]
|
|
226
|
+
K --> L[README.md]
|
|
227
|
+
```
|
|
228
|
+
|
|
229
|
+
## Project Structure
|
|
230
|
+
|
|
231
|
+
```
|
|
232
|
+
readme-ai/
|
|
233
|
+
├── src/
|
|
234
|
+
│ ├── index.ts # CLI entry point
|
|
235
|
+
│ ├── cli.ts # Interactive mode
|
|
236
|
+
│ ├── config.ts # Configuration management
|
|
237
|
+
│ ├── commands/
|
|
238
|
+
│ │ └── generate.ts # Main generation pipeline
|
|
239
|
+
│ ├── analyzers/
|
|
240
|
+
│ │ ├── repo-fetcher.ts # Fetch from local or GitHub
|
|
241
|
+
│ │ ├── file-scanner.ts # Scan and categorize files
|
|
242
|
+
│ │ ├── code-analyzer.ts # Extract functions, endpoints, exports
|
|
243
|
+
│ │ ├── dependency-analyzer.ts
|
|
244
|
+
│ │ ├── badge-generator.ts
|
|
245
|
+
│ │ └── diagram-builder.ts
|
|
246
|
+
│ ├── generators/
|
|
247
|
+
│ │ ├── overview.ts # Project summary + features
|
|
248
|
+
│ │ ├── install.ts # Install instructions
|
|
249
|
+
│ │ ├── usage.ts # Usage examples + API docs
|
|
250
|
+
│ │ ├── contributing.ts # Contributing guide
|
|
251
|
+
│ │ └── changelog.ts # Changelog section
|
|
252
|
+
│ ├── providers/
|
|
253
|
+
│ │ ├── anthropic.ts # Claude
|
|
254
|
+
│ │ ├── openai.ts # GPT-4o
|
|
255
|
+
│ │ ├── gemini.ts # Gemini Flash
|
|
256
|
+
│ │ └── ollama.ts # Local Ollama
|
|
257
|
+
│ ├── themes/
|
|
258
|
+
│ │ ├── default.ts
|
|
259
|
+
│ │ ├── modern.ts
|
|
260
|
+
│ │ ├── hacker.ts
|
|
261
|
+
│ │ ├── minimal.ts
|
|
262
|
+
│ │ └── academic.ts
|
|
263
|
+
│ └── utils/
|
|
264
|
+
│ ├── file-utils.ts
|
|
265
|
+
│ ├── github-api.ts
|
|
266
|
+
│ ├── language-detector.ts
|
|
267
|
+
│ ├── markdown-writer.ts
|
|
268
|
+
│ └── template-engine.ts
|
|
269
|
+
├── templates/
|
|
270
|
+
│ ├── github-action.yml
|
|
271
|
+
│ └── .readmeaiignore.example
|
|
272
|
+
└── tests/
|
|
273
|
+
├── analyzers/
|
|
274
|
+
└── generators/
|
|
275
|
+
```
|
|
276
|
+
|
|
277
|
+
## Contributing
|
|
278
|
+
|
|
279
|
+
Contributions are welcome! Here's how to get started:
|
|
280
|
+
|
|
281
|
+
```bash
|
|
282
|
+
# Clone the repo
|
|
283
|
+
git clone https://github.com/malikasadjaved/readme-ai.git
|
|
284
|
+
cd readme-ai
|
|
285
|
+
|
|
286
|
+
# Install dependencies
|
|
287
|
+
npm install
|
|
288
|
+
|
|
289
|
+
# Run in development mode
|
|
290
|
+
npm run dev
|
|
291
|
+
|
|
292
|
+
# Run tests
|
|
293
|
+
npm test
|
|
294
|
+
|
|
295
|
+
# Build
|
|
296
|
+
npm run build
|
|
297
|
+
```
|
|
298
|
+
|
|
299
|
+
## License
|
|
300
|
+
|
|
301
|
+
[MIT](LICENSE)
|
|
302
|
+
|
|
303
|
+
---
|
|
304
|
+
|
|
305
|
+
<div align="center">
|
|
306
|
+
|
|
307
|
+
Built with readme-ai
|
|
308
|
+
|
|
309
|
+
</div>
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { ScanResult } from './file-scanner.js';
|
|
2
|
+
import type { DependencyAnalysis } from './dependency-analyzer.js';
|
|
3
|
+
import type { GitHubMeta } from '../utils/github-api.js';
|
|
4
|
+
export interface Badge {
|
|
5
|
+
label: string;
|
|
6
|
+
url: string;
|
|
7
|
+
markdown: string;
|
|
8
|
+
category: 'language' | 'framework' | 'tool' | 'status' | 'meta';
|
|
9
|
+
}
|
|
10
|
+
export declare function generateBadges(scan: ScanResult, deps: DependencyAnalysis, githubMeta?: GitHubMeta): Badge[];
|
|
11
|
+
export declare function formatBadgeRow(badges: Badge[]): string;
|
|
12
|
+
//# sourceMappingURL=badge-generator.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"badge-generator.d.ts","sourceRoot":"","sources":["../../src/analyzers/badge-generator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AACnE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAEzD,MAAM,WAAW,KAAK;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,UAAU,GAAG,WAAW,GAAG,MAAM,GAAG,QAAQ,GAAG,MAAM,CAAC;CACjE;AAgDD,wBAAgB,cAAc,CAC5B,IAAI,EAAE,UAAU,EAChB,IAAI,EAAE,kBAAkB,EACxB,UAAU,CAAC,EAAE,UAAU,GACtB,KAAK,EAAE,CAoGT;AAED,wBAAgB,cAAc,CAAC,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,CAEtD"}
|
|
@@ -0,0 +1,139 @@
|
|
|
1
|
+
const STYLE = 'flat-square';
|
|
2
|
+
function shieldsBadge(label, message, color, logo) {
|
|
3
|
+
const encodedLabel = encodeURIComponent(label);
|
|
4
|
+
const encodedMessage = encodeURIComponent(message);
|
|
5
|
+
let url = `https://img.shields.io/badge/${encodedLabel}-${encodedMessage}-${color}?style=${STYLE}`;
|
|
6
|
+
if (logo)
|
|
7
|
+
url += `&logo=${encodeURIComponent(logo)}`;
|
|
8
|
+
return url;
|
|
9
|
+
}
|
|
10
|
+
const LANGUAGE_BADGES = {
|
|
11
|
+
'TypeScript': { color: '3178C6', logo: 'typescript' },
|
|
12
|
+
'JavaScript': { color: 'F7DF1E', logo: 'javascript' },
|
|
13
|
+
'Python': { color: '3776AB', logo: 'python' },
|
|
14
|
+
'Rust': { color: '000000', logo: 'rust' },
|
|
15
|
+
'Go': { color: '00ADD8', logo: 'go' },
|
|
16
|
+
'Java': { color: 'ED8B00', logo: 'openjdk' },
|
|
17
|
+
'C#': { color: '239120', logo: 'csharp' },
|
|
18
|
+
'C++': { color: '00599C', logo: 'cplusplus' },
|
|
19
|
+
'Ruby': { color: 'CC342D', logo: 'ruby' },
|
|
20
|
+
'PHP': { color: '777BB4', logo: 'php' },
|
|
21
|
+
'Swift': { color: 'FA7343', logo: 'swift' },
|
|
22
|
+
'Kotlin': { color: '7F52FF', logo: 'kotlin' },
|
|
23
|
+
'Dart': { color: '0175C2', logo: 'dart' },
|
|
24
|
+
'Scala': { color: 'DC322F', logo: 'scala' },
|
|
25
|
+
};
|
|
26
|
+
const FRAMEWORK_BADGES = {
|
|
27
|
+
'React': { color: '61DAFB', logo: 'react' },
|
|
28
|
+
'Next.js': { color: '000000', logo: 'nextdotjs' },
|
|
29
|
+
'Vue': { color: '4FC08D', logo: 'vuedotjs' },
|
|
30
|
+
'Nuxt': { color: '00DC82', logo: 'nuxtdotjs' },
|
|
31
|
+
'Angular': { color: 'DD0031', logo: 'angular' },
|
|
32
|
+
'Svelte': { color: 'FF3E00', logo: 'svelte' },
|
|
33
|
+
'Express': { color: '000000', logo: 'express' },
|
|
34
|
+
'Fastify': { color: '000000', logo: 'fastify' },
|
|
35
|
+
'NestJS': { color: 'E0234E', logo: 'nestjs' },
|
|
36
|
+
'FastAPI': { color: '009688', logo: 'fastapi' },
|
|
37
|
+
'Django': { color: '092E20', logo: 'django' },
|
|
38
|
+
'Flask': { color: '000000', logo: 'flask' },
|
|
39
|
+
'Prisma': { color: '2D3748', logo: 'prisma' },
|
|
40
|
+
'Docker': { color: '2496ED', logo: 'docker' },
|
|
41
|
+
'Tailwind CSS': { color: '06B6D4', logo: 'tailwindcss' },
|
|
42
|
+
'Vite': { color: '646CFF', logo: 'vite' },
|
|
43
|
+
};
|
|
44
|
+
export function generateBadges(scan, deps, githubMeta) {
|
|
45
|
+
const badges = [];
|
|
46
|
+
// Primary language badge
|
|
47
|
+
if (scan.languages.length > 0) {
|
|
48
|
+
const lang = scan.languages[0];
|
|
49
|
+
const info = LANGUAGE_BADGES[lang.name];
|
|
50
|
+
if (info) {
|
|
51
|
+
const url = shieldsBadge(lang.name, `${lang.percentage}%25`, info.color, info.logo);
|
|
52
|
+
badges.push({
|
|
53
|
+
label: lang.name,
|
|
54
|
+
url,
|
|
55
|
+
markdown: `[](#)`,
|
|
56
|
+
category: 'language',
|
|
57
|
+
});
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
// Framework badges
|
|
61
|
+
for (const framework of scan.frameworks) {
|
|
62
|
+
const info = FRAMEWORK_BADGES[framework];
|
|
63
|
+
if (info) {
|
|
64
|
+
const url = shieldsBadge(framework, '', info.color, info.logo);
|
|
65
|
+
badges.push({
|
|
66
|
+
label: framework,
|
|
67
|
+
url,
|
|
68
|
+
markdown: `[](#)`,
|
|
69
|
+
category: 'framework',
|
|
70
|
+
});
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
// Node version
|
|
74
|
+
if (deps.nodeVersion) {
|
|
75
|
+
const url = shieldsBadge('Node.js', deps.nodeVersion, '5FA04E', 'nodedotjs');
|
|
76
|
+
badges.push({
|
|
77
|
+
label: 'Node.js',
|
|
78
|
+
url,
|
|
79
|
+
markdown: `[](#)`,
|
|
80
|
+
category: 'tool',
|
|
81
|
+
});
|
|
82
|
+
}
|
|
83
|
+
// License badge
|
|
84
|
+
const license = scan.hasLicense;
|
|
85
|
+
if (license) {
|
|
86
|
+
const url = shieldsBadge('License', license, 'yellow');
|
|
87
|
+
badges.push({
|
|
88
|
+
label: 'License',
|
|
89
|
+
url,
|
|
90
|
+
markdown: `[](#)`,
|
|
91
|
+
category: 'meta',
|
|
92
|
+
});
|
|
93
|
+
}
|
|
94
|
+
// Docker badge
|
|
95
|
+
if (scan.hasDocker) {
|
|
96
|
+
const url = shieldsBadge('Docker', 'Ready', '2496ED', 'docker');
|
|
97
|
+
badges.push({
|
|
98
|
+
label: 'Docker',
|
|
99
|
+
url,
|
|
100
|
+
markdown: `[](#)`,
|
|
101
|
+
category: 'tool',
|
|
102
|
+
});
|
|
103
|
+
}
|
|
104
|
+
// CI/CD badge
|
|
105
|
+
if (scan.hasCICD) {
|
|
106
|
+
const url = shieldsBadge('CI/CD', 'Configured', 'brightgreen', 'githubactions');
|
|
107
|
+
badges.push({
|
|
108
|
+
label: 'CI/CD',
|
|
109
|
+
url,
|
|
110
|
+
markdown: `[](#)`,
|
|
111
|
+
category: 'status',
|
|
112
|
+
});
|
|
113
|
+
}
|
|
114
|
+
// Tests badge
|
|
115
|
+
if (scan.hasTests) {
|
|
116
|
+
const url = shieldsBadge('Tests', 'Included', 'brightgreen', 'vitest');
|
|
117
|
+
badges.push({
|
|
118
|
+
label: 'Tests',
|
|
119
|
+
url,
|
|
120
|
+
markdown: `[](#)`,
|
|
121
|
+
category: 'status',
|
|
122
|
+
});
|
|
123
|
+
}
|
|
124
|
+
// GitHub badges
|
|
125
|
+
if (githubMeta) {
|
|
126
|
+
const starsUrl = `https://img.shields.io/github/stars/${githubMeta.owner}/${githubMeta.repo}?style=${STYLE}`;
|
|
127
|
+
badges.push({
|
|
128
|
+
label: 'Stars',
|
|
129
|
+
url: starsUrl,
|
|
130
|
+
markdown: `[](https://github.com/${githubMeta.owner}/${githubMeta.repo})`,
|
|
131
|
+
category: 'meta',
|
|
132
|
+
});
|
|
133
|
+
}
|
|
134
|
+
return badges;
|
|
135
|
+
}
|
|
136
|
+
export function formatBadgeRow(badges) {
|
|
137
|
+
return badges.map(b => b.markdown).join(' ');
|
|
138
|
+
}
|
|
139
|
+
//# sourceMappingURL=badge-generator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"badge-generator.js","sourceRoot":"","sources":["../../src/analyzers/badge-generator.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import type { FileEntry } from './repo-fetcher.js';
|
|
2
|
+
export interface CodeAnalysis {
|
|
3
|
+
exports: ExportInfo[];
|
|
4
|
+
mainFunctions: FunctionInfo[];
|
|
5
|
+
apiEndpoints: Endpoint[];
|
|
6
|
+
cliCommands: CLICommand[];
|
|
7
|
+
envVariables: string[];
|
|
8
|
+
externalDependencies: string[];
|
|
9
|
+
}
|
|
10
|
+
export interface ExportInfo {
|
|
11
|
+
name: string;
|
|
12
|
+
type: 'function' | 'class' | 'const' | 'type' | 'interface';
|
|
13
|
+
signature: string;
|
|
14
|
+
file: string;
|
|
15
|
+
}
|
|
16
|
+
export interface FunctionInfo {
|
|
17
|
+
name: string;
|
|
18
|
+
signature: string;
|
|
19
|
+
description: string;
|
|
20
|
+
file: string;
|
|
21
|
+
}
|
|
22
|
+
export interface Endpoint {
|
|
23
|
+
method: string;
|
|
24
|
+
path: string;
|
|
25
|
+
handler: string;
|
|
26
|
+
file: string;
|
|
27
|
+
}
|
|
28
|
+
export interface CLICommand {
|
|
29
|
+
name: string;
|
|
30
|
+
description: string;
|
|
31
|
+
file: string;
|
|
32
|
+
}
|
|
33
|
+
export declare function analyzeCode(keyFiles: FileEntry[]): Promise<CodeAnalysis>;
|
|
34
|
+
//# sourceMappingURL=code-analyzer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"code-analyzer.d.ts","sourceRoot":"","sources":["../../src/analyzers/code-analyzer.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAEnD,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,UAAU,EAAE,CAAC;IACtB,aAAa,EAAE,YAAY,EAAE,CAAC;IAC9B,YAAY,EAAE,QAAQ,EAAE,CAAC;IACzB,WAAW,EAAE,UAAU,EAAE,CAAC;IAC1B,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,oBAAoB,EAAE,MAAM,EAAE,CAAC;CAChC;AAED,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,UAAU,GAAG,OAAO,GAAG,OAAO,GAAG,MAAM,GAAG,WAAW,CAAC;IAC5D,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,QAAQ;IACvB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;CACd;AAED,wBAAsB,WAAW,CAAC,QAAQ,EAAE,SAAS,EAAE,GAAG,OAAO,CAAC,YAAY,CAAC,CAsC9E"}
|