@umeshindu222/apisnap 1.1.0 ā 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 +55 -41
- 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
|
@@ -15,51 +15,41 @@ program
|
|
|
15
15
|
.name('apisnap')
|
|
16
16
|
.description('Instant API health-check CLI for Express.js')
|
|
17
17
|
.version(version)
|
|
18
|
-
.option('-p, --port <number>', '
|
|
19
|
-
.option('-H, --header <string>', '
|
|
20
|
-
.option('-s, --slow <number>', '
|
|
21
|
-
.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)')
|
|
22
22
|
.action(async (options) => {
|
|
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
|
}
|
|
33
|
-
}
|
|
34
|
-
//
|
|
35
|
-
const
|
|
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 };
|
|
36
45
|
if (options.header) {
|
|
37
|
-
const [key, ...
|
|
38
|
-
|
|
39
|
-
customHeaders[key.trim()] = value.join(':').trim();
|
|
40
|
-
}
|
|
46
|
+
const [key, ...val] = options.header.split(':');
|
|
47
|
+
finalHeaders[key.trim()] = val.join(':').trim();
|
|
41
48
|
}
|
|
42
|
-
// Merge config with CLI options (CLI options override config file)
|
|
43
|
-
// options.port defaults to '3000' because of commander's default options,
|
|
44
|
-
// so we check if the user actually provided it or if it's the raw default.
|
|
45
|
-
const port = program.opts().port !== '3000' ? options.port : (config.port || '3000');
|
|
46
|
-
const slowThreshold = parseInt(program.opts().slow !== '200' ? options.slow : (config.slowThreshold || 200));
|
|
47
|
-
const headers = { ...config.headers, ...customHeaders };
|
|
48
49
|
const discoveryUrl = `http://localhost:${port}/__apisnap_discovery`;
|
|
49
50
|
const results = []; // Collect all test results here
|
|
50
51
|
console.log(chalk_1.default.bold.cyan(`\nšø APISnap v${version}`));
|
|
51
|
-
|
|
52
|
-
console.log(chalk_1.default.gray(' āļø Loaded configuration from apisnap.json'));
|
|
53
|
-
}
|
|
54
|
-
// Show active options
|
|
55
|
-
if (Object.keys(headers).length > 0) {
|
|
56
|
-
console.log(chalk_1.default.gray(` Headers: ${JSON.stringify(headers)}`));
|
|
57
|
-
}
|
|
58
|
-
console.log(chalk_1.default.gray(` Slow threshold: ${slowThreshold}ms`));
|
|
59
|
-
if (options.export) {
|
|
60
|
-
console.log(chalk_1.default.gray(` Export: ${options.export}`));
|
|
61
|
-
}
|
|
62
|
-
console.log();
|
|
52
|
+
console.log(chalk_1.default.gray(` š Port: ${port} | š”ļø Auth: ${finalHeaders.Authorization ? 'Detected' : 'None'}\n`));
|
|
63
53
|
const spinner = (0, ora_1.default)('Connecting to your API...').start();
|
|
64
54
|
try {
|
|
65
55
|
// 1. Fetch the route map from the middleware
|
|
@@ -96,8 +86,8 @@ program
|
|
|
96
86
|
method: method,
|
|
97
87
|
url: fullUrl,
|
|
98
88
|
headers: {
|
|
99
|
-
...
|
|
100
|
-
'User-Agent':
|
|
89
|
+
...finalHeaders,
|
|
90
|
+
'User-Agent': `APISnap/${version}`,
|
|
101
91
|
},
|
|
102
92
|
timeout: 5000,
|
|
103
93
|
});
|
|
@@ -155,7 +145,7 @@ program
|
|
|
155
145
|
config: {
|
|
156
146
|
port,
|
|
157
147
|
slowThreshold,
|
|
158
|
-
headers:
|
|
148
|
+
headers: finalHeaders,
|
|
159
149
|
},
|
|
160
150
|
summary: {
|
|
161
151
|
total: endpoints.length,
|
|
@@ -175,5 +165,29 @@ program
|
|
|
175
165
|
process.exit(1);
|
|
176
166
|
}
|
|
177
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
|
+
});
|
|
178
192
|
program.parse(process.argv);
|
|
179
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;AACpC,gDAAwB;AAExB,MAAM,OAAO,GAAG,IAAI,mBAAO,EAAE,CAAC;AAE9B,MAAM,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAAC;AAElD,OAAO;KACF,IAAI,CAAC,SAAS,CAAC;KACf,WAAW,CAAC,6CAA6C,CAAC;KAC1D,OAAO,CAAC,OAAO,CAAC;KAChB,MAAM,CAAC,qBAAqB,EAAE,
|
|
1
|
+
{"version":3,"file":"runner.js","sourceRoot":"","sources":["../../src/core/runner.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED