serverreq 1.1.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 +194 -0
- package/dist/cli.d.ts +8 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +186 -0
- package/dist/cli.js.map +1 -0
- package/dist/config.d.ts +21 -0
- package/dist/config.d.ts.map +1 -0
- package/dist/config.js +78 -0
- package/dist/config.js.map +1 -0
- package/dist/devtools/event-bus.d.ts +12 -0
- package/dist/devtools/event-bus.d.ts.map +1 -0
- package/dist/devtools/event-bus.js +47 -0
- package/dist/devtools/event-bus.js.map +1 -0
- package/dist/devtools/index.d.ts +25 -0
- package/dist/devtools/index.d.ts.map +1 -0
- package/dist/devtools/index.js +55 -0
- package/dist/devtools/index.js.map +1 -0
- package/dist/devtools/panel.d.ts +19 -0
- package/dist/devtools/panel.d.ts.map +1 -0
- package/dist/devtools/panel.js +308 -0
- package/dist/devtools/panel.js.map +1 -0
- package/dist/devtools/server.d.ts +39 -0
- package/dist/devtools/server.d.ts.map +1 -0
- package/dist/devtools/server.js +184 -0
- package/dist/devtools/server.js.map +1 -0
- package/dist/devtools/sse-handler.d.ts +5 -0
- package/dist/devtools/sse-handler.d.ts.map +1 -0
- package/dist/devtools/sse-handler.js +92 -0
- package/dist/devtools/sse-handler.js.map +1 -0
- package/dist/devtools/store.d.ts +31 -0
- package/dist/devtools/store.d.ts.map +1 -0
- package/dist/devtools/store.js +145 -0
- package/dist/devtools/store.js.map +1 -0
- package/dist/devtools/types.d.ts +45 -0
- package/dist/devtools/types.d.ts.map +1 -0
- package/dist/devtools/types.js +18 -0
- package/dist/devtools/types.js.map +1 -0
- package/dist/index.d.ts +18 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +25 -0
- package/dist/index.js.map +1 -0
- package/dist/interceptor.d.ts +14 -0
- package/dist/interceptor.d.ts.map +1 -0
- package/dist/interceptor.js +404 -0
- package/dist/interceptor.js.map +1 -0
- package/dist/logger.d.ts +23 -0
- package/dist/logger.d.ts.map +1 -0
- package/dist/logger.js +123 -0
- package/dist/logger.js.map +1 -0
- package/dist/nextjs.d.ts +43 -0
- package/dist/nextjs.d.ts.map +1 -0
- package/dist/nextjs.js +55 -0
- package/dist/nextjs.js.map +1 -0
- package/dist/preload.d.ts +2 -0
- package/dist/preload.d.ts.map +1 -0
- package/dist/preload.js +24 -0
- package/dist/preload.js.map +1 -0
- package/dist/test-interceptor.d.ts +5 -0
- package/dist/test-interceptor.d.ts.map +1 -0
- package/dist/test-interceptor.js +113 -0
- package/dist/test-interceptor.js.map +1 -0
- package/package.json +94 -0
package/dist/nextjs.js
ADDED
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Next.js Integration Helper for serverreq DevTools
|
|
4
|
+
*
|
|
5
|
+
* This module provides helpers for integrating serverreq with Next.js.
|
|
6
|
+
* Since Next.js doesn't expose its HTTP server directly, we use the
|
|
7
|
+
* standalone DevTools server approach which works reliably with Turbopack.
|
|
8
|
+
*
|
|
9
|
+
* USAGE IN next.config.js:
|
|
10
|
+
* ```js
|
|
11
|
+
* // next.config.js
|
|
12
|
+
* module.exports = {
|
|
13
|
+
* experimental: {
|
|
14
|
+
* instrumentationHook: true
|
|
15
|
+
* }
|
|
16
|
+
* }
|
|
17
|
+
* ```
|
|
18
|
+
*
|
|
19
|
+
* USAGE IN instrumentation.ts:
|
|
20
|
+
* ```ts
|
|
21
|
+
* export async function register() {
|
|
22
|
+
* if (process.env.NODE_ENV === 'development') {
|
|
23
|
+
* const { setupDevTools } = await import('serverreq/nextjs');
|
|
24
|
+
* await setupDevTools();
|
|
25
|
+
* }
|
|
26
|
+
* }
|
|
27
|
+
* ```
|
|
28
|
+
*/
|
|
29
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
30
|
+
exports.createSSEHandler = exports.eventBus = exports.install = void 0;
|
|
31
|
+
exports.setupDevTools = setupDevTools;
|
|
32
|
+
const interceptor_1 = require("./interceptor");
|
|
33
|
+
Object.defineProperty(exports, "install", { enumerable: true, get: function () { return interceptor_1.install; } });
|
|
34
|
+
/**
|
|
35
|
+
* Setup DevTools for Next.js
|
|
36
|
+
* Called from instrumentation.ts
|
|
37
|
+
*/
|
|
38
|
+
async function setupDevTools(options = {}) {
|
|
39
|
+
const { port = 4000, installInterceptor = true } = options;
|
|
40
|
+
if (process.env.NODE_ENV === 'production') {
|
|
41
|
+
console.log('[serverreq] DevTools disabled in production');
|
|
42
|
+
return;
|
|
43
|
+
}
|
|
44
|
+
// Install HTTP interceptors
|
|
45
|
+
if (installInterceptor) {
|
|
46
|
+
(0, interceptor_1.install)();
|
|
47
|
+
}
|
|
48
|
+
console.log('[serverreq] DevTools initialized for Next.js');
|
|
49
|
+
}
|
|
50
|
+
var event_bus_1 = require("./devtools/event-bus");
|
|
51
|
+
Object.defineProperty(exports, "eventBus", { enumerable: true, get: function () { return event_bus_1.eventBus; } });
|
|
52
|
+
// Export SSE handler for API Routes
|
|
53
|
+
var sse_handler_1 = require("./devtools/sse-handler");
|
|
54
|
+
Object.defineProperty(exports, "createSSEHandler", { enumerable: true, get: function () { return sse_handler_1.createSSEHandler; } });
|
|
55
|
+
//# sourceMappingURL=nextjs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"nextjs.js","sourceRoot":"","sources":["../src/nextjs.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;;;AAeH,sCAcC;AA3BD,+CAAwC;AA8B/B,wFA9BA,qBAAO,OA8BA;AArBhB;;;GAGG;AACI,KAAK,UAAU,aAAa,CAAC,UAAwB,EAAE;IAC1D,MAAM,EAAE,IAAI,GAAG,IAAI,EAAE,kBAAkB,GAAG,IAAI,EAAE,GAAG,OAAO,CAAC;IAE3D,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,YAAY,EAAE,CAAC;QACxC,OAAO,CAAC,GAAG,CAAC,6CAA6C,CAAC,CAAC;QAC3D,OAAO;IACX,CAAC;IAED,4BAA4B;IAC5B,IAAI,kBAAkB,EAAE,CAAC;QACrB,IAAA,qBAAO,GAAE,CAAC;IACd,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,8CAA8C,CAAC,CAAC;AAChE,CAAC;AAID,kDAAgD;AAAvC,qGAAA,QAAQ,OAAA;AAEjB,oCAAoC;AACpC,sDAA0D;AAAjD,+GAAA,gBAAgB,OAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"preload.d.ts","sourceRoot":"","sources":["../src/preload.ts"],"names":[],"mappings":""}
|
package/dist/preload.js
ADDED
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const interceptor_1 = require("./interceptor");
|
|
4
|
+
const config_1 = require("./config");
|
|
5
|
+
console.log('[serverreq] Preload script starting...');
|
|
6
|
+
try {
|
|
7
|
+
// Load config from environment if present
|
|
8
|
+
if (process.env.SERVERREQ_CONFIG) {
|
|
9
|
+
try {
|
|
10
|
+
const config = JSON.parse(process.env.SERVERREQ_CONFIG);
|
|
11
|
+
(0, config_1.getConfig)().merge(config);
|
|
12
|
+
}
|
|
13
|
+
catch (error) {
|
|
14
|
+
console.error('[serverreq] Invalid SERVERREQ_CONFIG:', error);
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
// Auto-install interceptor
|
|
18
|
+
(0, interceptor_1.install)();
|
|
19
|
+
}
|
|
20
|
+
catch (error) {
|
|
21
|
+
console.error('[serverreq] Failed to install interceptor:', error);
|
|
22
|
+
// Don't crash the application
|
|
23
|
+
}
|
|
24
|
+
//# sourceMappingURL=preload.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"preload.js","sourceRoot":"","sources":["../src/preload.ts"],"names":[],"mappings":";;AAAA,+CAAwC;AACxC,qCAAqC;AAErC,OAAO,CAAC,GAAG,CAAC,wCAAwC,CAAC,CAAC;AACtD,IAAI,CAAC;IACD,0CAA0C;IAC1C,IAAI,OAAO,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAC;QAC/B,IAAI,CAAC;YACD,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;YACxD,IAAA,kBAAS,GAAE,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QAC9B,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACb,OAAO,CAAC,KAAK,CAAC,uCAAuC,EAAE,KAAK,CAAC,CAAC;QAClE,CAAC;IACL,CAAC;IAED,2BAA2B;IAC3B,IAAA,qBAAO,GAAE,CAAC;AACd,CAAC;AAAC,OAAO,KAAK,EAAE,CAAC;IACb,OAAO,CAAC,KAAK,CAAC,4CAA4C,EAAE,KAAK,CAAC,CAAC;IACnE,8BAA8B;AAClC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"test-interceptor.d.ts","sourceRoot":"","sources":["../src/test-interceptor.ts"],"names":[],"mappings":"AAAA;;GAEG"}
|
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Test script for the HTTP/HTTPS interceptor
|
|
4
|
+
*/
|
|
5
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
6
|
+
if (k2 === undefined) k2 = k;
|
|
7
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
8
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
9
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
10
|
+
}
|
|
11
|
+
Object.defineProperty(o, k2, desc);
|
|
12
|
+
}) : (function(o, m, k, k2) {
|
|
13
|
+
if (k2 === undefined) k2 = k;
|
|
14
|
+
o[k2] = m[k];
|
|
15
|
+
}));
|
|
16
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
17
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
18
|
+
}) : function(o, v) {
|
|
19
|
+
o["default"] = v;
|
|
20
|
+
});
|
|
21
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
22
|
+
var ownKeys = function(o) {
|
|
23
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
24
|
+
var ar = [];
|
|
25
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
26
|
+
return ar;
|
|
27
|
+
};
|
|
28
|
+
return ownKeys(o);
|
|
29
|
+
};
|
|
30
|
+
return function (mod) {
|
|
31
|
+
if (mod && mod.__esModule) return mod;
|
|
32
|
+
var result = {};
|
|
33
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
34
|
+
__setModuleDefault(result, mod);
|
|
35
|
+
return result;
|
|
36
|
+
};
|
|
37
|
+
})();
|
|
38
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
|
+
const interceptor_1 = require("./interceptor");
|
|
40
|
+
const https = __importStar(require("https"));
|
|
41
|
+
// Install the interceptor
|
|
42
|
+
(0, interceptor_1.install)();
|
|
43
|
+
console.log('Testing HTTP/HTTPS interceptor...\n');
|
|
44
|
+
// Test 1: fetch API
|
|
45
|
+
async function testFetch() {
|
|
46
|
+
console.log('=== Test 1: fetch API ===');
|
|
47
|
+
try {
|
|
48
|
+
const response = await fetch('https://jsonplaceholder.typicode.com/posts/1');
|
|
49
|
+
const data = await response.json();
|
|
50
|
+
console.log('Fetch successful, received data with id:', data.id);
|
|
51
|
+
}
|
|
52
|
+
catch (error) {
|
|
53
|
+
console.error('Fetch failed:', error);
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
// Test 2: https.request
|
|
57
|
+
function testHttpsRequest() {
|
|
58
|
+
console.log('\n=== Test 2: https.request ===');
|
|
59
|
+
return new Promise((resolve) => {
|
|
60
|
+
const req = https.request('https://jsonplaceholder.typicode.com/posts/1', (res) => {
|
|
61
|
+
let data = '';
|
|
62
|
+
res.on('data', (chunk) => {
|
|
63
|
+
data += chunk;
|
|
64
|
+
});
|
|
65
|
+
res.on('end', () => {
|
|
66
|
+
const parsed = JSON.parse(data);
|
|
67
|
+
console.log('HTTPS request successful, received data with id:', parsed.id);
|
|
68
|
+
resolve(null);
|
|
69
|
+
});
|
|
70
|
+
});
|
|
71
|
+
req.on('error', (error) => {
|
|
72
|
+
console.error('HTTPS request failed:', error);
|
|
73
|
+
resolve(null);
|
|
74
|
+
});
|
|
75
|
+
req.end();
|
|
76
|
+
});
|
|
77
|
+
}
|
|
78
|
+
// Test 3: POST request with body
|
|
79
|
+
async function testPostRequest() {
|
|
80
|
+
console.log('\n=== Test 3: POST request with body ===');
|
|
81
|
+
try {
|
|
82
|
+
const response = await fetch('https://jsonplaceholder.typicode.com/posts', {
|
|
83
|
+
method: 'POST',
|
|
84
|
+
headers: {
|
|
85
|
+
'Content-Type': 'application/json',
|
|
86
|
+
'Authorization': 'Bearer secret-token-12345',
|
|
87
|
+
},
|
|
88
|
+
body: JSON.stringify({
|
|
89
|
+
title: 'Test Post',
|
|
90
|
+
body: 'This is a test',
|
|
91
|
+
userId: 1,
|
|
92
|
+
password: 'should-be-masked',
|
|
93
|
+
}),
|
|
94
|
+
});
|
|
95
|
+
const data = await response.json();
|
|
96
|
+
console.log('POST successful, received data with id:', data.id);
|
|
97
|
+
}
|
|
98
|
+
catch (error) {
|
|
99
|
+
console.error('POST failed:', error);
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
// Run all tests
|
|
103
|
+
(async () => {
|
|
104
|
+
await testFetch();
|
|
105
|
+
await testHttpsRequest();
|
|
106
|
+
await testPostRequest();
|
|
107
|
+
console.log('\n=== All tests completed ===');
|
|
108
|
+
console.log('Check the logs above to verify request/response interception\n');
|
|
109
|
+
// Uninstall the interceptor
|
|
110
|
+
(0, interceptor_1.uninstall)();
|
|
111
|
+
console.log('Interceptor uninstalled');
|
|
112
|
+
})();
|
|
113
|
+
//# sourceMappingURL=test-interceptor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"test-interceptor.js","sourceRoot":"","sources":["../src/test-interceptor.ts"],"names":[],"mappings":"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"}
|
package/package.json
ADDED
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "serverreq",
|
|
3
|
+
"version": "1.1.0",
|
|
4
|
+
"description": "Production-ready DevTools for intercepting HTTP/HTTPS requests in Node.js applications with React DevTools UI",
|
|
5
|
+
"main": "./dist/index.js",
|
|
6
|
+
"module": "./dist/index.js",
|
|
7
|
+
"types": "./dist/index.d.ts",
|
|
8
|
+
"bin": {
|
|
9
|
+
"serverreq": "dist/cli.js"
|
|
10
|
+
},
|
|
11
|
+
"exports": {
|
|
12
|
+
".": {
|
|
13
|
+
"types": "./dist/index.d.ts",
|
|
14
|
+
"default": "./dist/index.js"
|
|
15
|
+
},
|
|
16
|
+
"./devtools": {
|
|
17
|
+
"types": "./dist/devtools/index.d.ts",
|
|
18
|
+
"default": "./dist/devtools/index.js"
|
|
19
|
+
},
|
|
20
|
+
"./nextjs": {
|
|
21
|
+
"types": "./dist/nextjs.d.ts",
|
|
22
|
+
"default": "./dist/nextjs.js"
|
|
23
|
+
},
|
|
24
|
+
"./instrumentation": {
|
|
25
|
+
"types": "./dist/nextjs.d.ts",
|
|
26
|
+
"default": "./dist/nextjs.js"
|
|
27
|
+
},
|
|
28
|
+
"./package.json": "./package.json"
|
|
29
|
+
},
|
|
30
|
+
"files": [
|
|
31
|
+
"dist",
|
|
32
|
+
"README.md",
|
|
33
|
+
"LICENSE"
|
|
34
|
+
],
|
|
35
|
+
"scripts": {
|
|
36
|
+
"build": "tsc",
|
|
37
|
+
"build:all": "npm run build",
|
|
38
|
+
"dev": "tsc --watch",
|
|
39
|
+
"prepublishOnly": "npm run build:all",
|
|
40
|
+
"clean": "rmdir /s /q dist 2>nul || rm -rf dist",
|
|
41
|
+
"test": "node test-app.js"
|
|
42
|
+
},
|
|
43
|
+
"keywords": [
|
|
44
|
+
"http",
|
|
45
|
+
"https",
|
|
46
|
+
"fetch",
|
|
47
|
+
"interceptor",
|
|
48
|
+
"request",
|
|
49
|
+
"logging",
|
|
50
|
+
"debugging",
|
|
51
|
+
"cli",
|
|
52
|
+
"nodejs",
|
|
53
|
+
"nextjs",
|
|
54
|
+
"devtools",
|
|
55
|
+
"react",
|
|
56
|
+
"socket.io"
|
|
57
|
+
],
|
|
58
|
+
"repository": {
|
|
59
|
+
"type": "git",
|
|
60
|
+
"url": "git+https://github.com/AhmedNnasser11/serverreq.git"
|
|
61
|
+
},
|
|
62
|
+
"homepage": "https://github.com/AhmedNnasser11/serverreq#readme",
|
|
63
|
+
"bugs": {
|
|
64
|
+
"url": "https://github.com/AhmedNnasser11/serverreq/issues"
|
|
65
|
+
},
|
|
66
|
+
"author": "ServerReq",
|
|
67
|
+
"license": "MIT",
|
|
68
|
+
"engines": {
|
|
69
|
+
"node": ">=18.0.0"
|
|
70
|
+
},
|
|
71
|
+
"peerDependencies": {
|
|
72
|
+
"react": ">=18.0.0",
|
|
73
|
+
"react-dom": ">=18.0.0"
|
|
74
|
+
},
|
|
75
|
+
"peerDependenciesMeta": {
|
|
76
|
+
"react": {
|
|
77
|
+
"optional": true
|
|
78
|
+
},
|
|
79
|
+
"react-dom": {
|
|
80
|
+
"optional": true
|
|
81
|
+
}
|
|
82
|
+
},
|
|
83
|
+
"devDependencies": {
|
|
84
|
+
"@types/node": "^18.0.0",
|
|
85
|
+
"@types/react": "^19.2.10",
|
|
86
|
+
"@types/react-dom": "^19.2.3",
|
|
87
|
+
"next": "^16.1.6",
|
|
88
|
+
"typescript": "^5.3.0"
|
|
89
|
+
},
|
|
90
|
+
"dependencies": {
|
|
91
|
+
"socket.io": "^4.8.3",
|
|
92
|
+
"socket.io-client": "^4.8.3"
|
|
93
|
+
}
|
|
94
|
+
}
|