ssh-keyman 1.0.2 → 2.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.
@@ -0,0 +1,244 @@
1
+ # 🏆 Badge Summary - ssh-keyman
2
+
3
+ ## Visual Overview
4
+
5
+ ```
6
+ ┌─────────────────────────────────────────────────────────────────┐
7
+ │ SSH-KEYMAN BADGES │
8
+ ├─────────────────────────────────────────────────────────────────┤
9
+ │ │
10
+ │ BUILD & TEST STATUS │
11
+ │ ├─ Build Status : ✅ Passing │
12
+ │ ├─ Tests Status : ✅ 35/35 Passing │
13
+ │ ├─ Test Coverage : ✅ 75.11% │
14
+ │ └─ Coverage Graph : ✅ Trending Up │
15
+ │ │
16
+ │ PACKAGE INFORMATION │
17
+ │ ├─ NPM Version : 📦 v1.0.2 │
18
+ │ ├─ Monthly Downloads : 📊 Live from NPM │
19
+ │ └─ Bundle Size : 📦 < 50KB │
20
+ │ │
21
+ │ PLATFORM & STANDARDS │
22
+ │ ├─ Node.js Support : 💚 v16+ (16.x, 18.x, 20.x) │
23
+ │ ├─ License : 📜 ISC │
24
+ │ ├─ Maintained : ✅ Active │
25
+ │ └─ PRs Welcome : 💚 Yes │
26
+ │ │
27
+ │ REPOSITORY STATS │
28
+ │ ├─ Last Commit : 🕐 Live from GitHub │
29
+ │ ├─ Open Issues : 🐛 Live Count │
30
+ │ ├─ Pull Requests : 🔀 Live Count │
31
+ │ └─ GitHub Stars : ⭐ Live Count │
32
+ │ │
33
+ └─────────────────────────────────────────────────────────────────┘
34
+ ```
35
+
36
+ ## 📊 Badge Breakdown
37
+
38
+ ### Total Badges: 16
39
+
40
+ #### By Category:
41
+ - 🔧 **Build & Test**: 4 badges
42
+ - 📦 **Package Info**: 3 badges
43
+ - 🖥️ **Platform**: 4 badges
44
+ - 📈 **Repository**: 4 badges
45
+ - 🔄 **CI/CD Workflows**: 2 badges (in status table)
46
+
47
+ ---
48
+
49
+ ## 🎯 Badge Purposes
50
+
51
+ ### For Users
52
+ ✅ **Trust Indicators**
53
+ - See that package is actively maintained
54
+ - Verify tests are passing
55
+ - Check platform compatibility
56
+
57
+ ✅ **Quick Info**
58
+ - Latest version number
59
+ - Download popularity
60
+ - License type
61
+
62
+ ### For Contributors
63
+ ✅ **Development Status**
64
+ - Build health
65
+ - Test coverage
66
+ - Open issues/PRs
67
+
68
+ ✅ **Contribution Welcome**
69
+ - PR acceptance indicator
70
+ - Links to guidelines
71
+
72
+ ### For Maintainers
73
+ ✅ **Quality Metrics**
74
+ - Coverage tracking
75
+ - Build status monitoring
76
+ - Cross-platform validation
77
+
78
+ ---
79
+
80
+ ## 🚀 Auto-Update Schedule
81
+
82
+ | Badge | Update Frequency |
83
+ |-------|------------------|
84
+ | Build Status | On every push |
85
+ | Test Status | On every push |
86
+ | Coverage | After CI run completes |
87
+ | NPM Version | On publish |
88
+ | Downloads | Daily |
89
+ | Last Commit | Real-time |
90
+ | Issues/PRs | Real-time |
91
+ | Stars | Real-time |
92
+
93
+ ---
94
+
95
+ ## 🎨 Badge Colors Explained
96
+
97
+ ### Status Colors
98
+ - 🟢 **Green**: Passing, Good, Active
99
+ - 🟡 **Yellow**: Warning, Medium
100
+ - 🔴 **Red**: Failing, Critical
101
+ - 🔵 **Blue**: Info, Neutral
102
+ - ⚫ **Gray**: Inactive, Unknown
103
+
104
+ ### Build Status
105
+ ```
106
+ ✅ Passing → Green (All tests pass)
107
+ ⚠️ Warning → Yellow (Some tests skip)
108
+ ❌ Failing → Red (Tests fail)
109
+ ```
110
+
111
+ ### Coverage Status
112
+ ```
113
+ 🟢 Green → 75%+ coverage (Excellent)
114
+ 🟡 Yellow → 50-75% coverage (Good)
115
+ 🔴 Red → <50% coverage (Needs work)
116
+ ```
117
+
118
+ ---
119
+
120
+ ## 📍 Badge Locations
121
+
122
+ ### README.md
123
+ - **Top Section**: All 16 badges in organized groups
124
+ - **CI/CD Table**: 2 workflow status badges
125
+ - **Platform Section**: Cross-platform support summary
126
+
127
+ ### STATUS.md
128
+ - **Detailed Coverage**: Full breakdown by file
129
+ - **Platform Matrix**: Node version compatibility
130
+ - **Test Suite Status**: Individual test file results
131
+
132
+ ---
133
+
134
+ ## 🔗 Badge Links
135
+
136
+ Each badge links to relevant information:
137
+
138
+ | Badge Type | Links To |
139
+ |-----------|----------|
140
+ | Build Status | GitHub Actions workflow |
141
+ | Coverage | Codecov dashboard |
142
+ | NPM Version | NPM package page |
143
+ | Issues | GitHub issues list |
144
+ | PRs | GitHub pull requests |
145
+ | Stars | GitHub stargazers |
146
+ | License | License details |
147
+
148
+ ---
149
+
150
+ ## ✨ Badge Highlights
151
+
152
+ ### Most Important
153
+ 1. **Build Status** - Primary health indicator
154
+ 2. **Test Coverage** - Quality metric
155
+ 3. **NPM Version** - Current release
156
+
157
+ ### Most Dynamic
158
+ 1. **Last Commit** - Updates with every commit
159
+ 2. **Issues/PRs** - Changes frequently
160
+ 3. **Downloads** - Updates daily
161
+
162
+ ### Most Informative
163
+ 1. **Coverage Graph** - Visual trend
164
+ 2. **Platform Support** - Compatibility info
165
+ 3. **Bundle Size** - Performance metric
166
+
167
+ ---
168
+
169
+ ## 🛠️ Customization Guide
170
+
171
+ ### To Update Badge Style
172
+ Change `?style=` parameter:
173
+ ```markdown
174
+ ?style=flat (default)
175
+ ?style=flat-square (modern)
176
+ ?style=for-the-badge (bold)
177
+ ?style=plastic (3D effect)
178
+ ?style=social (with count)
179
+ ```
180
+
181
+ ### To Add Logo
182
+ Add `&logo=` parameter:
183
+ ```markdown
184
+ &logo=npm
185
+ &logo=github
186
+ &logo=node.js
187
+ ```
188
+
189
+ ### To Change Color
190
+ Add `&color=` parameter:
191
+ ```markdown
192
+ &color=blue
193
+ &color=brightgreen
194
+ &color=ff69b4
195
+ ```
196
+
197
+ ---
198
+
199
+ ## 📈 Badge Performance
200
+
201
+ ### Load Times
202
+ - **Shields.io badges**: ~100-200ms
203
+ - **GitHub badges**: ~50-100ms
204
+ - **Codecov badges**: ~150-300ms
205
+
206
+ ### Caching
207
+ - Most badges cached for 5-10 minutes
208
+ - Real-time badges update immediately
209
+ - CDN propagation: ~5 minutes
210
+
211
+ ### Reliability
212
+ - **Shields.io**: 99.9% uptime
213
+ - **GitHub Actions**: 99.9% uptime
214
+ - **Codecov**: 99.5% uptime
215
+
216
+ ---
217
+
218
+ ## 🎓 Best Practices Applied
219
+
220
+ ✅ Badges grouped by category
221
+ ✅ Most important badges first
222
+ ✅ Clean, organized layout
223
+ ✅ All badges link to details
224
+ ✅ Color-coded for quick scanning
225
+ ✅ Mobile-friendly display
226
+ ✅ Accessible alt text
227
+ ✅ Fast loading times
228
+
229
+ ---
230
+
231
+ ## 📚 Resources
232
+
233
+ - [Shields.io](https://shields.io) - Badge generator
234
+ - [Simple Icons](https://simpleicons.org) - Logo library
235
+ - [GitHub Actions Badges](https://docs.github.com/en/actions/monitoring-and-troubleshooting-workflows/adding-a-workflow-status-badge)
236
+ - [Badge Best Practices](https://github.com/badges/shields#readme)
237
+
238
+ ---
239
+
240
+ **Last Updated**: Automated via CI/CD
241
+ **Maintained By**: ssh-keyman team
242
+ **Badge Count**: 16 active badges
243
+ **Status**: ✅ All operational
244
+
@@ -0,0 +1,214 @@
1
+ # Badge Reference Guide
2
+
3
+ This document explains all the badges used in the README and what they indicate.
4
+
5
+ ## Build & Test Status Badges
6
+
7
+ ### Build Status
8
+ ```markdown
9
+ [![Build Status](https://github.com/shahidullahkhankhattak/ssh-keyman/actions/workflows/ci.yml/badge.svg?branch=master)](...)
10
+ ```
11
+ **Shows:** Whether the latest build on the master branch passed or failed
12
+ **Green = Passing** | **Red = Failing**
13
+
14
+ ### Tests Status
15
+ ```markdown
16
+ [![Tests](https://img.shields.io/github/actions/workflow/status/shahidullahkhankhattak/ssh-keyman/ci.yml?branch=master&label=tests&logo=github)](...)
17
+ ```
18
+ **Shows:** Current test execution status
19
+ **Updates:** On every push and pull request
20
+
21
+ ### Test Coverage (Codecov)
22
+ ```markdown
23
+ [![Test Coverage](https://codecov.io/gh/shahidullahkhankhattak/ssh-keyman/branch/master/graph/badge.svg)](...)
24
+ ```
25
+ **Shows:** Percentage of code covered by tests
26
+ **Target:** 55%+ coverage
27
+ **Current:** ~75%
28
+
29
+ ### Coverage Status (Shields.io)
30
+ ```markdown
31
+ [![Coverage Status](https://img.shields.io/codecov/c/github/shahidullahkhankhattak/ssh-keyman/master.svg?logo=codecov)](...)
32
+ ```
33
+ **Shows:** Alternative coverage badge with percentage
34
+ **Color Coding:**
35
+ - 🟢 Green: 75%+
36
+ - 🟡 Yellow: 50-75%
37
+ - 🔴 Red: <50%
38
+
39
+ ---
40
+
41
+ ## Package Information Badges
42
+
43
+ ### NPM Version
44
+ ```markdown
45
+ [![npm version](https://img.shields.io/npm/v/ssh-keyman.svg?logo=npm&color=cb3837)](...)
46
+ ```
47
+ **Shows:** Current version published on NPM
48
+ **Updates:** On each NPM publish
49
+
50
+ ### NPM Downloads
51
+ ```markdown
52
+ [![npm downloads](https://img.shields.io/npm/dm/ssh-keyman.svg?logo=npm)](...)
53
+ ```
54
+ **Shows:** Monthly download count from NPM
55
+ **Updates:** Daily
56
+
57
+ ### Bundle Size
58
+ ```markdown
59
+ [![npm bundle size](https://img.shields.io/bundlephobia/min/ssh-keyman?logo=npm)](...)
60
+ ```
61
+ **Shows:** Minified package size
62
+ **Target:** Keep under 100KB
63
+
64
+ ---
65
+
66
+ ## Platform & Standards Badges
67
+
68
+ ### Node.js Version
69
+ ```markdown
70
+ [![Node.js Version](https://img.shields.io/node/v/ssh-keyman.svg?logo=node.js)](...)
71
+ ```
72
+ **Shows:** Minimum required Node.js version
73
+ **Currently:** Supports Node.js 16+
74
+
75
+ ### License
76
+ ```markdown
77
+ [![License: ISC](https://img.shields.io/badge/License-ISC-blue.svg)](...)
78
+ ```
79
+ **Shows:** Project license type
80
+ **License:** ISC (permissive open-source)
81
+
82
+ ### Maintained Status
83
+ ```markdown
84
+ [![Maintained](https://img.shields.io/badge/Maintained%3F-yes-green.svg)](...)
85
+ ```
86
+ **Shows:** Whether project is actively maintained
87
+ **Status:** Yes ✅
88
+
89
+ ### PRs Welcome
90
+ ```markdown
91
+ [![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg)](...)
92
+ ```
93
+ **Shows:** Project accepts pull requests
94
+ **Links to:** CONTRIBUTING.md
95
+
96
+ ---
97
+
98
+ ## Repository Statistics Badges
99
+
100
+ ### Last Commit
101
+ ```markdown
102
+ [![Last Commit](https://img.shields.io/github/last-commit/shahidullahkhankhattak/ssh-keyman?logo=github)](...)
103
+ ```
104
+ **Shows:** Date of most recent commit
105
+ **Indicates:** Project activity level
106
+
107
+ ### Open Issues
108
+ ```markdown
109
+ [![Issues](https://img.shields.io/github/issues/shahidullahkhankhattak/ssh-keyman?logo=github)](...)
110
+ ```
111
+ **Shows:** Number of open issues
112
+ **Links to:** GitHub issues page
113
+
114
+ ### Pull Requests
115
+ ```markdown
116
+ [![Pull Requests](https://img.shields.io/github/issues-pr/shahidullahkhankhattak/ssh-keyman?logo=github)](...)
117
+ ```
118
+ **Shows:** Number of open pull requests
119
+ **Links to:** GitHub PRs page
120
+
121
+ ### GitHub Stars
122
+ ```markdown
123
+ [![Stars](https://img.shields.io/github/stars/shahidullahkhankhattak/ssh-keyman?style=social)](...)
124
+ ```
125
+ **Shows:** Number of GitHub stars
126
+ **Style:** Social (includes star count)
127
+
128
+ ---
129
+
130
+ ## How Badges Update
131
+
132
+ ### Automatic Updates
133
+ Most badges update automatically when:
134
+ - Code is pushed to GitHub
135
+ - Tests run in CI/CD
136
+ - Package is published to NPM
137
+ - Issues/PRs are created or closed
138
+
139
+ ### Manual Refresh
140
+ If a badge appears outdated:
141
+ 1. Click the badge to visit the source
142
+ 2. Use Ctrl+F5 (or Cmd+Shift+R) to hard refresh
143
+ 3. Wait a few minutes for CDN cache to clear
144
+
145
+ ---
146
+
147
+ ## Adding More Badges
148
+
149
+ ### Shields.io
150
+ Visit [shields.io](https://shields.io) to create custom badges:
151
+ - Dynamic badges from APIs
152
+ - Static badges with custom text
153
+ - Styles: flat, flat-square, plastic, for-the-badge
154
+
155
+ ### Simple Icons
156
+ Use [simpleicons.org](https://simpleicons.org) for logo names in badges:
157
+ ```markdown
158
+ ![Badge](https://img.shields.io/badge/text-value-color?logo=github)
159
+ ```
160
+
161
+ ---
162
+
163
+ ## Badge Best Practices
164
+
165
+ 1. **Order by Importance**
166
+ - Build/Test status first
167
+ - Package info second
168
+ - Stats last
169
+
170
+ 2. **Group Related Badges**
171
+ - Use HTML comments to section badges
172
+ - Keep similar badges together
173
+
174
+ 3. **Limit Badge Count**
175
+ - Too many badges = cluttered README
176
+ - Focus on most relevant information
177
+
178
+ 4. **Keep Links Updated**
179
+ - Badges should link to relevant pages
180
+ - Test links periodically
181
+
182
+ 5. **Use Alt Text**
183
+ - Always include descriptive alt text
184
+ - Helps with accessibility
185
+
186
+ ---
187
+
188
+ ## Troubleshooting
189
+
190
+ ### Badge Not Updating
191
+ - Check if service is online
192
+ - Verify URL parameters are correct
193
+ - Clear browser cache
194
+ - Wait for CDN propagation (5-10 mins)
195
+
196
+ ### Badge Shows Error
197
+ - Verify repository/package name is correct
198
+ - Check if badge service supports your platform
199
+ - Ensure repository is public (for most badges)
200
+
201
+ ### Badge Wrong Color
202
+ - Coverage thresholds may need adjustment
203
+ - Check if tests are actually passing
204
+ - Verify badge service status
205
+
206
+ ---
207
+
208
+ ## Resources
209
+
210
+ - [Shields.io Documentation](https://shields.io)
211
+ - [GitHub Actions Badges](https://docs.github.com/en/actions/monitoring-and-troubleshooting-workflows/adding-a-workflow-status-badge)
212
+ - [Codecov Badges](https://docs.codecov.com/docs/status-badges)
213
+ - [NPM Badges](https://shields.io/category/version)
214
+
@@ -0,0 +1,36 @@
1
+ ## Description
2
+
3
+ <!-- Provide a brief description of your changes -->
4
+
5
+ ## Type of Change
6
+
7
+ - [ ] Bug fix (non-breaking change which fixes an issue)
8
+ - [ ] New feature (non-breaking change which adds functionality)
9
+ - [ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)
10
+ - [ ] Documentation update
11
+ - [ ] Code refactoring
12
+ - [ ] Performance improvement
13
+
14
+ ## Checklist
15
+
16
+ - [ ] My code follows the style guidelines of this project
17
+ - [ ] I have performed a self-review of my own code
18
+ - [ ] I have commented my code, particularly in hard-to-understand areas
19
+ - [ ] I have made corresponding changes to the documentation
20
+ - [ ] My changes generate no new warnings
21
+ - [ ] I have added tests that prove my fix is effective or that my feature works
22
+ - [ ] New and existing unit tests pass locally with my changes
23
+ - [ ] Any dependent changes have been merged and published
24
+
25
+ ## Testing
26
+
27
+ <!-- Describe the tests you ran and how to reproduce them -->
28
+
29
+ ```bash
30
+ npm test
31
+ ```
32
+
33
+ ## Screenshots (if applicable)
34
+
35
+ <!-- Add screenshots to help explain your changes -->
36
+
@@ -0,0 +1,69 @@
1
+ name: CI
2
+
3
+ on:
4
+ push:
5
+ branches: [ main, master, develop ]
6
+ pull_request:
7
+ branches: [ main, master, develop ]
8
+
9
+ jobs:
10
+ test:
11
+ name: Test on Node.js ${{ matrix.node-version }}
12
+ runs-on: ${{ matrix.os }}
13
+
14
+ strategy:
15
+ matrix:
16
+ node-version: [16.x, 18.x, 20.x]
17
+ os: [ubuntu-latest, macos-latest, windows-latest]
18
+
19
+ steps:
20
+ - name: Checkout code
21
+ uses: actions/checkout@v4
22
+
23
+ - name: Setup Node.js ${{ matrix.node-version }}
24
+ uses: actions/setup-node@v4
25
+ with:
26
+ node-version: ${{ matrix.node-version }}
27
+ cache: 'npm'
28
+
29
+ - name: Install dependencies
30
+ run: npm ci
31
+
32
+ - name: Run linter (if available)
33
+ run: npm run lint --if-present
34
+
35
+ - name: Run tests
36
+ run: npm run test:ci
37
+
38
+ - name: Upload coverage to Codecov
39
+ if: matrix.os == 'ubuntu-latest' && matrix.node-version == '20.x'
40
+ uses: codecov/codecov-action@v4
41
+ with:
42
+ file: ./coverage/coverage-final.json
43
+ flags: unittests
44
+ name: codecov-umbrella
45
+ fail_ci_if_error: false
46
+
47
+ build:
48
+ name: Build Check
49
+ runs-on: ubuntu-latest
50
+
51
+ steps:
52
+ - name: Checkout code
53
+ uses: actions/checkout@v4
54
+
55
+ - name: Setup Node.js
56
+ uses: actions/setup-node@v4
57
+ with:
58
+ node-version: '20.x'
59
+ cache: 'npm'
60
+
61
+ - name: Install dependencies
62
+ run: npm ci
63
+
64
+ - name: Verify package installation
65
+ run: npm link
66
+
67
+ - name: Test CLI help command
68
+ run: ssh-keyman -h
69
+
@@ -0,0 +1,32 @@
1
+ name: Publish to NPM
2
+
3
+ on:
4
+ release:
5
+ types: [created]
6
+
7
+ jobs:
8
+ publish:
9
+ name: Publish to NPM
10
+ runs-on: ubuntu-latest
11
+
12
+ steps:
13
+ - name: Checkout code
14
+ uses: actions/checkout@v4
15
+
16
+ - name: Setup Node.js
17
+ uses: actions/setup-node@v4
18
+ with:
19
+ node-version: '20.x'
20
+ registry-url: 'https://registry.npmjs.org'
21
+
22
+ - name: Install dependencies
23
+ run: npm ci
24
+
25
+ - name: Run tests
26
+ run: npm test
27
+
28
+ - name: Publish to NPM
29
+ run: npm publish
30
+ env:
31
+ NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
32
+
@@ -0,0 +1,50 @@
1
+ name: Test Report
2
+
3
+ on:
4
+ push:
5
+ branches: [ main, master, develop ]
6
+ pull_request:
7
+ branches: [ main, master, develop ]
8
+ schedule:
9
+ # Run tests daily at 2 AM UTC
10
+ - cron: '0 2 * * *'
11
+
12
+ jobs:
13
+ test-report:
14
+ name: Generate Test Report
15
+ runs-on: ubuntu-latest
16
+
17
+ steps:
18
+ - name: Checkout code
19
+ uses: actions/checkout@v4
20
+
21
+ - name: Setup Node.js
22
+ uses: actions/setup-node@v4
23
+ with:
24
+ node-version: '20.x'
25
+ cache: 'npm'
26
+
27
+ - name: Install dependencies
28
+ run: npm ci
29
+
30
+ - name: Run tests with coverage
31
+ run: npm run test:ci
32
+
33
+ - name: Generate test report
34
+ if: always()
35
+ uses: dorny/test-reporter@v1
36
+ with:
37
+ name: Jest Tests
38
+ path: coverage/junit.xml
39
+ reporter: jest-junit
40
+ fail-on-error: false
41
+
42
+ - name: Comment PR with test results
43
+ if: github.event_name == 'pull_request'
44
+ uses: ArtiomTr/jest-coverage-report-action@v2
45
+ with:
46
+ coverage-file: ./coverage/coverage-summary.json
47
+ base-coverage-file: ./coverage/coverage-summary.json
48
+ annotations: failed-tests
49
+ package-manager: npm
50
+