@umeshindu222/apisnap 1.0.5 ā 1.1.1
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 +25 -18
- package/dist/core/runner.js +59 -26
- package/dist/core/runner.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -28,52 +28,59 @@
|
|
|
28
28
|
|
|
29
29
|
## š Quick Start
|
|
30
30
|
|
|
31
|
-
###
|
|
32
|
-
|
|
31
|
+
### 1. Install & Add Middleware
|
|
33
32
|
```bash
|
|
34
33
|
npm install @umeshindu222/apisnap
|
|
35
34
|
```
|
|
36
35
|
|
|
36
|
+
In your Express application, initialize APISnap **after** all your routes:
|
|
37
37
|
```javascript
|
|
38
38
|
const express = require('express');
|
|
39
39
|
const apisnap = require('@umeshindu222/apisnap');
|
|
40
|
-
|
|
41
40
|
const app = express();
|
|
42
41
|
|
|
43
|
-
// Your routes here
|
|
44
42
|
app.get('/users', (req, res) => res.json({ users: [] }));
|
|
45
|
-
app.post('/users', (req, res) => res.json({ message: 'Created' }));
|
|
46
43
|
|
|
47
|
-
// Add APISnap
|
|
44
|
+
// Add APISnap
|
|
48
45
|
apisnap.init(app);
|
|
49
46
|
|
|
50
47
|
app.listen(3000);
|
|
51
48
|
```
|
|
52
49
|
|
|
53
|
-
###
|
|
50
|
+
### 2. Initialize Config
|
|
51
|
+
Run this once in your project root to generate config templates:
|
|
52
|
+
```bash
|
|
53
|
+
npx @umeshindu222/apisnap init
|
|
54
|
+
```
|
|
54
55
|
|
|
56
|
+
### 3. Run the Check
|
|
55
57
|
```bash
|
|
56
|
-
npx @umeshindu222/apisnap
|
|
58
|
+
npx @umeshindu222/apisnap
|
|
57
59
|
```
|
|
58
60
|
|
|
59
|
-
|
|
61
|
+
---
|
|
62
|
+
|
|
63
|
+
## āļø Configuration
|
|
64
|
+
|
|
65
|
+
APISnap uses a dual-config system to keep your secrets safe:
|
|
66
|
+
|
|
67
|
+
| File | Purpose | Git Status |
|
|
68
|
+
| :--- | :--- | :--- |
|
|
69
|
+
| `apisnap.json` | Shared team settings (Port, Slow Threshold) | **Commit to Git** |
|
|
70
|
+
| `apisnap.local.json` | Personal secrets (Auth Tokens, API Keys) | **Add to .gitignore** |
|
|
60
71
|
|
|
61
72
|
---
|
|
62
73
|
|
|
63
|
-
##
|
|
74
|
+
## š ļø CLI Commands
|
|
64
75
|
|
|
65
76
|
```bash
|
|
66
77
|
npx @umeshindu222/apisnap [options]
|
|
67
78
|
```
|
|
68
79
|
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
| `-s, --slow <number>` | Response time threshold in ms for slow warnings | `200` |
|
|
74
|
-
| `-e, --export <filename>` | Export results to a JSON file | ā |
|
|
75
|
-
| `-V, --version` | Show version number | ā |
|
|
76
|
-
| `-h, --help` | Show help | ā |
|
|
80
|
+
- `npx @umeshindu222/apisnap init`: Create config templates.
|
|
81
|
+
- `npx @umeshindu222/apisnap --port 5000`: Override the port.
|
|
82
|
+
- `npx @umeshindu222/apisnap --header "Authorization:Bearer token"`: Add custom header.
|
|
83
|
+
- `npx @umeshindu222/apisnap --export report.json`: Export results to JSON.
|
|
77
84
|
|
|
78
85
|
---
|
|
79
86
|
|
package/dist/core/runner.js
CHANGED
|
@@ -8,39 +8,48 @@ const axios_1 = __importDefault(require("axios"));
|
|
|
8
8
|
const chalk_1 = __importDefault(require("chalk"));
|
|
9
9
|
const ora_1 = __importDefault(require("ora"));
|
|
10
10
|
const commander_1 = require("commander");
|
|
11
|
+
const path_1 = __importDefault(require("path"));
|
|
11
12
|
const program = new commander_1.Command();
|
|
12
13
|
const { version } = require('../../package.json');
|
|
13
14
|
program
|
|
14
15
|
.name('apisnap')
|
|
15
16
|
.description('Instant API health-check CLI for Express.js')
|
|
16
17
|
.version(version)
|
|
17
|
-
.option('-p, --port <number>', '
|
|
18
|
-
.option('-H, --header <string>', '
|
|
19
|
-
.option('-s, --slow <number>', '
|
|
20
|
-
.option('-e, --export <filename>', 'Export results to
|
|
18
|
+
.option('-p, --port <number>', 'Override port')
|
|
19
|
+
.option('-H, --header <string>', 'One-time header (Key:Value)')
|
|
20
|
+
.option('-s, --slow <number>', 'Override slow threshold (ms)')
|
|
21
|
+
.option('-e, --export <filename>', 'Export results to JSON file (e.g., report.json)')
|
|
21
22
|
.action(async (options) => {
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
23
|
+
let config = { port: 3000, slowThreshold: 200, headers: {} };
|
|
24
|
+
// Smart Merge: Load shared, then override with local
|
|
25
|
+
['apisnap.json', 'apisnap.local.json'].forEach(file => {
|
|
26
|
+
const filePath = path_1.default.join(process.cwd(), file);
|
|
27
|
+
if (fs_1.default.existsSync(filePath)) {
|
|
28
|
+
try {
|
|
29
|
+
const fileData = JSON.parse(fs_1.default.readFileSync(filePath, 'utf8'));
|
|
30
|
+
config = {
|
|
31
|
+
...config,
|
|
32
|
+
...fileData,
|
|
33
|
+
headers: { ...config.headers, ...fileData.headers }
|
|
34
|
+
};
|
|
35
|
+
}
|
|
36
|
+
catch (e) {
|
|
37
|
+
console.log(chalk_1.default.yellow(`ā ļø Warning: Failed to parse ${file}`));
|
|
38
|
+
}
|
|
32
39
|
}
|
|
40
|
+
});
|
|
41
|
+
// Final Priority: CLI Flags always win
|
|
42
|
+
const port = options.port || config.port;
|
|
43
|
+
const slowThreshold = options.slow ? parseInt(options.slow) : config.slowThreshold;
|
|
44
|
+
const finalHeaders = { ...config.headers };
|
|
45
|
+
if (options.header) {
|
|
46
|
+
const [key, ...val] = options.header.split(':');
|
|
47
|
+
finalHeaders[key.trim()] = val.join(':').trim();
|
|
33
48
|
}
|
|
49
|
+
const discoveryUrl = `http://localhost:${port}/__apisnap_discovery`;
|
|
50
|
+
const results = []; // Collect all test results here
|
|
34
51
|
console.log(chalk_1.default.bold.cyan(`\nšø APISnap v${version}`));
|
|
35
|
-
|
|
36
|
-
if (Object.keys(customHeaders).length > 0) {
|
|
37
|
-
console.log(chalk_1.default.gray(` Headers: ${JSON.stringify(customHeaders)}`));
|
|
38
|
-
}
|
|
39
|
-
console.log(chalk_1.default.gray(` Slow threshold: ${slowThreshold}ms`));
|
|
40
|
-
if (options.export) {
|
|
41
|
-
console.log(chalk_1.default.gray(` Export: ${options.export}`));
|
|
42
|
-
}
|
|
43
|
-
console.log();
|
|
52
|
+
console.log(chalk_1.default.gray(` š Port: ${port} | š”ļø Auth: ${finalHeaders.Authorization ? 'Detected' : 'None'}\n`));
|
|
44
53
|
const spinner = (0, ora_1.default)('Connecting to your API...').start();
|
|
45
54
|
try {
|
|
46
55
|
// 1. Fetch the route map from the middleware
|
|
@@ -77,8 +86,8 @@ program
|
|
|
77
86
|
method: method,
|
|
78
87
|
url: fullUrl,
|
|
79
88
|
headers: {
|
|
80
|
-
...
|
|
81
|
-
'User-Agent':
|
|
89
|
+
...finalHeaders,
|
|
90
|
+
'User-Agent': `APISnap/${version}`,
|
|
82
91
|
},
|
|
83
92
|
timeout: 5000,
|
|
84
93
|
});
|
|
@@ -136,7 +145,7 @@ program
|
|
|
136
145
|
config: {
|
|
137
146
|
port,
|
|
138
147
|
slowThreshold,
|
|
139
|
-
headers:
|
|
148
|
+
headers: finalHeaders,
|
|
140
149
|
},
|
|
141
150
|
summary: {
|
|
142
151
|
total: endpoints.length,
|
|
@@ -156,5 +165,29 @@ program
|
|
|
156
165
|
process.exit(1);
|
|
157
166
|
}
|
|
158
167
|
});
|
|
168
|
+
program
|
|
169
|
+
.command('init')
|
|
170
|
+
.description('Initialize APISnap configuration files')
|
|
171
|
+
.action(() => {
|
|
172
|
+
const sharedConfig = {
|
|
173
|
+
port: 3000,
|
|
174
|
+
slowThreshold: 200,
|
|
175
|
+
description: "Shared project API settings"
|
|
176
|
+
};
|
|
177
|
+
const localConfig = {
|
|
178
|
+
headers: {
|
|
179
|
+
Authorization: "Bearer YOUR_PRIVATE_TOKEN_HERE"
|
|
180
|
+
}
|
|
181
|
+
};
|
|
182
|
+
// Create the files in the user's current directory
|
|
183
|
+
fs_1.default.writeFileSync('apisnap.json', JSON.stringify(sharedConfig, null, 2));
|
|
184
|
+
fs_1.default.writeFileSync('apisnap.local.json', JSON.stringify(localConfig, null, 2));
|
|
185
|
+
console.log(chalk_1.default.green.bold('\n⨠APISnap Initialized Successfully!'));
|
|
186
|
+
console.log(chalk_1.default.cyan('Created:'));
|
|
187
|
+
console.log(` š ${chalk_1.default.white('apisnap.json')} (Shared - Push to GitHub)`);
|
|
188
|
+
console.log(` š ${chalk_1.default.yellow('apisnap.local.json')} (Private - DO NOT PUSH)`);
|
|
189
|
+
console.log(chalk_1.default.red.bold('\nā ļø IMPORTANT SECURITY STEP:'));
|
|
190
|
+
console.log(`Add ${chalk_1.default.yellow.bold('apisnap.local.json')} to your ${chalk_1.default.white('.gitignore')} file now!\n`);
|
|
191
|
+
});
|
|
159
192
|
program.parse(process.argv);
|
|
160
193
|
//# sourceMappingURL=runner.js.map
|
package/dist/core/runner.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runner.js","sourceRoot":"","sources":["../../src/core/runner.ts"],"names":[],"mappings":";;;;;AAAA,4CAAoB;AACpB,kDAA0B;AAC1B,kDAA0B;AAC1B,8CAAsB;AACtB,yCAAoC;
|
|
1
|
+
{"version":3,"file":"runner.js","sourceRoot":"","sources":["../../src/core/runner.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED