wreq-js 0.2.0 → 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.
@@ -0,0 +1,305 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.startLocalTestServer = startLocalTestServer;
4
+ const node_crypto_1 = require("node:crypto");
5
+ const node_http_1 = require("node:http");
6
+ const promises_1 = require("node:timers/promises");
7
+ const WS_MAGIC_STRING = "258EAFA5-E914-47DA-95CA-C5AB0DC85B11";
8
+ async function startLocalTestServer() {
9
+ let baseUrl = "http://127.0.0.1";
10
+ const sockets = new Set();
11
+ const server = (0, node_http_1.createServer)(async (req, res) => {
12
+ try {
13
+ await routeHttpRequest(req, res, baseUrl);
14
+ }
15
+ catch (error) {
16
+ console.error("Local test server request error:", error);
17
+ if (!res.headersSent) {
18
+ res.statusCode = 500;
19
+ res.setHeader("Content-Type", "application/json");
20
+ }
21
+ res.end(JSON.stringify({ error: "internal server error" }));
22
+ }
23
+ });
24
+ server.on("connection", (socket) => {
25
+ sockets.add(socket);
26
+ socket.on("close", () => sockets.delete(socket));
27
+ });
28
+ server.on("upgrade", (req, socket, head) => {
29
+ handleWebSocketUpgrade(req, socket, head);
30
+ });
31
+ await new Promise((resolve, reject) => {
32
+ const onError = (error) => {
33
+ server.off("listening", onListening);
34
+ reject(error);
35
+ };
36
+ const onListening = () => {
37
+ server.off("error", onError);
38
+ resolve();
39
+ };
40
+ server.once("error", onError);
41
+ server.once("listening", onListening);
42
+ server.listen(0, "127.0.0.1");
43
+ });
44
+ const address = server.address();
45
+ if (!address) {
46
+ await new Promise((resolve, reject) => server.close((error) => (error ? reject(error) : resolve())));
47
+ throw new Error("Unable to determine local test server address");
48
+ }
49
+ baseUrl = `http://127.0.0.1:${address.port}`;
50
+ const wsUrl = `ws://127.0.0.1:${address.port}/ws`;
51
+ const close = async () => {
52
+ for (const socket of sockets) {
53
+ socket.destroy();
54
+ }
55
+ await new Promise((resolve, reject) => {
56
+ server.close((error) => (error ? reject(error) : resolve()));
57
+ });
58
+ };
59
+ return {
60
+ httpBaseUrl: baseUrl,
61
+ wsUrl,
62
+ close,
63
+ };
64
+ async function routeHttpRequest(req, res, resolvedBase) {
65
+ const url = new URL(req.url ?? "/", resolvedBase);
66
+ const path = url.pathname;
67
+ if (path === "/get") {
68
+ return json(res, createEchoPayload(req, url));
69
+ }
70
+ if (path === "/json") {
71
+ return json(res, {
72
+ message: "local test server",
73
+ status: "ok",
74
+ ts: Date.now(),
75
+ });
76
+ }
77
+ if (path === "/user-agent") {
78
+ return json(res, { "user-agent": req.headers["user-agent"] ?? "" });
79
+ }
80
+ if (path === "/headers") {
81
+ return json(res, { headers: canonicalizeHeaders(req) });
82
+ }
83
+ if (path === "/cookies") {
84
+ return json(res, { cookies: parseCookies(req.headers.cookie) });
85
+ }
86
+ if (path.startsWith("/cookies/set")) {
87
+ const cookiesToSet = Array.from(url.searchParams.entries()).map(([key, value]) => `${key}=${value}; Path=/`);
88
+ const existingCookies = parseCookies(req.headers.cookie);
89
+ const newCookies = Object.fromEntries(url.searchParams.entries());
90
+ if (cookiesToSet.length > 0) {
91
+ res.setHeader("Set-Cookie", cookiesToSet);
92
+ }
93
+ return json(res, { cookies: { ...existingCookies, ...newCookies } });
94
+ }
95
+ const delayMatch = path.match(/^\/delay\/(\d+)/);
96
+ if (delayMatch) {
97
+ const seconds = Number(delayMatch[1]);
98
+ await (0, promises_1.setTimeout)(seconds * 1000);
99
+ return json(res, { delayed: seconds, ...createEchoPayload(req, url) });
100
+ }
101
+ res.statusCode = 404;
102
+ json(res, { error: "not found", path });
103
+ }
104
+ function createEchoPayload(req, url) {
105
+ const args = Object.fromEntries(url.searchParams.entries());
106
+ return {
107
+ args,
108
+ headers: canonicalizeHeaders(req),
109
+ method: req.method ?? "GET",
110
+ origin: req.socket.remoteAddress ?? "127.0.0.1",
111
+ url: url.toString(),
112
+ };
113
+ }
114
+ function canonicalizeHeaders(req) {
115
+ const headers = {};
116
+ for (const [name, value] of Object.entries(req.headers)) {
117
+ if (typeof value === "undefined")
118
+ continue;
119
+ const canonicalName = name
120
+ .split("-")
121
+ .map((segment) => segment.charAt(0).toUpperCase() + segment.slice(1))
122
+ .join("-");
123
+ headers[canonicalName] = Array.isArray(value) ? value.join(", ") : value;
124
+ }
125
+ return headers;
126
+ }
127
+ function parseCookies(cookieHeader) {
128
+ if (!cookieHeader) {
129
+ return {};
130
+ }
131
+ return cookieHeader.split(";").reduce((acc, cookie) => {
132
+ const [key, ...rest] = cookie.trim().split("=");
133
+ if (!key) {
134
+ return acc;
135
+ }
136
+ acc[key] = rest.join("=");
137
+ return acc;
138
+ }, {});
139
+ }
140
+ function json(res, body) {
141
+ if (!res.hasHeader("Content-Type")) {
142
+ res.setHeader("Content-Type", "application/json");
143
+ }
144
+ res.end(JSON.stringify(body));
145
+ }
146
+ function handleWebSocketUpgrade(req, socket, head) {
147
+ try {
148
+ const url = new URL(req.url ?? "/", baseUrl);
149
+ if (url.pathname !== "/ws") {
150
+ socket.write("HTTP/1.1 404 Not Found\r\nConnection: close\r\n\r\n");
151
+ socket.destroy();
152
+ return;
153
+ }
154
+ const secKey = req.headers["sec-websocket-key"];
155
+ if (!secKey || Array.isArray(secKey)) {
156
+ socket.write("HTTP/1.1 400 Bad Request\r\nConnection: close\r\n\r\n");
157
+ socket.destroy();
158
+ return;
159
+ }
160
+ const acceptKey = (0, node_crypto_1.createHash)("sha1")
161
+ .update(secKey + WS_MAGIC_STRING)
162
+ .digest("base64");
163
+ const responseHeaders = [
164
+ "HTTP/1.1 101 Switching Protocols",
165
+ "Upgrade: websocket",
166
+ "Connection: Upgrade",
167
+ `Sec-WebSocket-Accept: ${acceptKey}`,
168
+ ];
169
+ socket.write(`${responseHeaders.join("\r\n")}\r\n\r\n`);
170
+ if (head.length > 0) {
171
+ socket.unshift(head);
172
+ }
173
+ setupEchoWebSocket(socket);
174
+ }
175
+ catch (error) {
176
+ console.error("Local test server WebSocket upgrade error:", error);
177
+ socket.destroy();
178
+ }
179
+ }
180
+ }
181
+ function setupEchoWebSocket(socket) {
182
+ let buffer = Buffer.alloc(0);
183
+ let closed = false;
184
+ socket.on("data", (chunk) => {
185
+ buffer = Buffer.concat([buffer, chunk]);
186
+ parseFrames();
187
+ });
188
+ socket.on("close", () => {
189
+ closed = true;
190
+ });
191
+ socket.on("error", () => {
192
+ socket.destroy();
193
+ });
194
+ function parseFrames() {
195
+ while (buffer.length >= 2) {
196
+ const firstByte = buffer[0];
197
+ const secondByte = buffer[1];
198
+ const opcode = firstByte & 0x0f;
199
+ const isMasked = Boolean(secondByte & 0x80);
200
+ let offset = 2;
201
+ let payloadLength = secondByte & 0x7f;
202
+ if (payloadLength === 126) {
203
+ if (buffer.length < offset + 2)
204
+ return;
205
+ payloadLength = buffer.readUInt16BE(offset);
206
+ offset += 2;
207
+ }
208
+ else if (payloadLength === 127) {
209
+ if (buffer.length < offset + 8)
210
+ return;
211
+ const bigLength = buffer.readBigUInt64BE(offset);
212
+ payloadLength = Number(bigLength);
213
+ offset += 8;
214
+ }
215
+ const maskEnd = offset + (isMasked ? 4 : 0);
216
+ if (buffer.length < maskEnd)
217
+ return;
218
+ const maskingKey = isMasked ? buffer.subarray(offset, maskEnd) : undefined;
219
+ offset = maskEnd;
220
+ const frameEnd = offset + payloadLength;
221
+ if (buffer.length < frameEnd)
222
+ return;
223
+ const payload = buffer.subarray(offset, frameEnd);
224
+ buffer = buffer.subarray(frameEnd);
225
+ const data = isMasked && maskingKey ? unmask(payload, maskingKey) : payload;
226
+ handleFrame(opcode, data);
227
+ }
228
+ }
229
+ function handleFrame(opcode, data) {
230
+ if (closed) {
231
+ return;
232
+ }
233
+ switch (opcode) {
234
+ case 0x1: {
235
+ // Text frame: echo payload back
236
+ sendFrame(0x1, data);
237
+ break;
238
+ }
239
+ case 0x2: {
240
+ // Binary frame: echo back
241
+ sendFrame(0x2, data);
242
+ break;
243
+ }
244
+ case 0x8: {
245
+ // Close frame
246
+ sendFrame(0x8, data);
247
+ closed = true;
248
+ socket.end();
249
+ break;
250
+ }
251
+ case 0x9: {
252
+ // Ping
253
+ sendFrame(0xa, data);
254
+ break;
255
+ }
256
+ case 0xa: {
257
+ // Pong - ignore
258
+ break;
259
+ }
260
+ default: {
261
+ // Unsupported opcode: close connection
262
+ sendFrame(0x8, Buffer.alloc(0));
263
+ closed = true;
264
+ socket.end();
265
+ }
266
+ }
267
+ }
268
+ function sendFrame(opcode, data) {
269
+ const payloadLength = data.length;
270
+ let headerLength = 2;
271
+ if (payloadLength >= 126 && payloadLength < 65536) {
272
+ headerLength += 2;
273
+ }
274
+ else if (payloadLength >= 65536) {
275
+ headerLength += 8;
276
+ }
277
+ const frame = Buffer.alloc(headerLength + payloadLength);
278
+ frame[0] = 0x80 | (opcode & 0x0f);
279
+ let offset = 2;
280
+ if (payloadLength < 126) {
281
+ frame[1] = payloadLength;
282
+ }
283
+ else if (payloadLength < 65536) {
284
+ frame[1] = 126;
285
+ frame.writeUInt16BE(payloadLength, offset);
286
+ offset += 2;
287
+ }
288
+ else {
289
+ frame[1] = 127;
290
+ frame.writeBigUInt64BE(BigInt(payloadLength), offset);
291
+ offset += 8;
292
+ }
293
+ data.copy(frame, offset);
294
+ socket.write(frame);
295
+ }
296
+ function unmask(payload, maskingKey) {
297
+ const result = Buffer.alloc(payload.length);
298
+ for (let i = 0; i < payload.length; i++) {
299
+ const maskByte = maskingKey[i % 4];
300
+ result[i] = payload[i] ^ maskByte;
301
+ }
302
+ return result;
303
+ }
304
+ }
305
+ //# sourceMappingURL=local-test-server.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"local-test-server.js","sourceRoot":"","sources":["../../../src/test/helpers/local-test-server.ts"],"names":[],"mappings":"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"}
@@ -6,6 +6,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
6
6
  const node_assert_1 = __importDefault(require("node:assert"));
7
7
  const node_test_1 = require("node:test");
8
8
  const wreq_js_1 = require("../wreq-js");
9
+ const HTTP_TEST_BASE_URL = process.env.HTTP_TEST_BASE_URL ?? "https://httpbingo.org";
10
+ const httpUrl = (path) => new URL(path, HTTP_TEST_BASE_URL).toString();
9
11
  (0, node_test_1.describe)("HTTP", () => {
10
12
  (0, node_test_1.before)(() => {
11
13
  console.log("🔌 HTTP Test Suite\n");
@@ -20,25 +22,23 @@ const wreq_js_1 = require("../wreq-js");
20
22
  console.log("Available profiles:", profiles.join(", "));
21
23
  });
22
24
  (0, node_test_1.test)("should make a simple GET request", async () => {
23
- const response = await (0, wreq_js_1.request)({
24
- url: "https://httpbingo.org/get",
25
+ const response = await (0, wreq_js_1.fetch)(httpUrl("/get"), {
25
26
  browser: "chrome_131",
26
27
  timeout: 10000,
27
28
  });
28
29
  node_assert_1.default.ok(response.status >= 200 && response.status < 300, "Should return successful status");
29
- node_assert_1.default.ok(Object.keys(response.headers).length > 0, "Should have response headers");
30
- node_assert_1.default.ok(response.body.length > 0, "Should have response body");
31
- const body = JSON.parse(response.body);
30
+ node_assert_1.default.ok(response.headers.has("content-type"), "Should have response headers");
31
+ const body = await response.json();
32
32
  node_assert_1.default.ok(body.headers["User-Agent"], "Should have User-Agent header");
33
+ node_assert_1.default.ok(response.bodyUsed, "json() should mark the body as used");
33
34
  console.log("Status:", response.status);
34
35
  console.log("User-Agent:", body.headers["User-Agent"]);
35
36
  });
36
37
  (0, node_test_1.test)("should work with different browser profiles", async () => {
37
- const testUrl = "https://httpbingo.org/user-agent";
38
- const browsers = ["chrome_137", "firefox_139", "safari_18"];
38
+ const testUrl = httpUrl("/user-agent");
39
+ const browsers = ["chrome_142", "firefox_139", "safari_18"];
39
40
  for (const browser of browsers) {
40
- const response = await (0, wreq_js_1.request)({
41
- url: testUrl,
41
+ const response = await (0, wreq_js_1.fetch)(testUrl, {
42
42
  browser,
43
43
  timeout: 10000,
44
44
  });
@@ -50,14 +50,143 @@ const wreq_js_1 = require("../wreq-js");
50
50
  });
51
51
  (0, node_test_1.test)("should handle timeout errors", async () => {
52
52
  await node_assert_1.default.rejects(async () => {
53
- await (0, wreq_js_1.request)({
54
- url: "https://httpbingo.org/delay/10",
55
- browser: "chrome_137",
53
+ await (0, wreq_js_1.fetch)(httpUrl("/delay/10"), {
54
+ browser: "chrome_142",
56
55
  timeout: 1000, // 1 second timeout for 10 second delay
57
56
  });
58
57
  }, {
59
58
  name: "RequestError",
60
59
  }, "Should throw an error on timeout");
61
60
  });
61
+ (0, node_test_1.test)("should disable default headers when requested", async () => {
62
+ const customAccept = "*/*";
63
+ const response = await (0, wreq_js_1.fetch)(httpUrl("/headers"), {
64
+ browser: "chrome_142",
65
+ headers: {
66
+ Accept: customAccept,
67
+ },
68
+ disableDefaultHeaders: true,
69
+ timeout: 10000,
70
+ });
71
+ node_assert_1.default.ok(response.status === 200, "Should return status 200");
72
+ const body = await response.json();
73
+ node_assert_1.default.strictEqual(body.headers.Accept, customAccept, "Should use only custom Accept header without emulation headers appended");
74
+ console.log("Custom Accept sent:", body.headers.Accept);
75
+ });
76
+ (0, node_test_1.test)("should append emulation headers by default", async () => {
77
+ const customAccept = "*/*";
78
+ const response = await (0, wreq_js_1.fetch)(httpUrl("/headers"), {
79
+ browser: "chrome_142",
80
+ headers: {
81
+ Accept: customAccept,
82
+ },
83
+ timeout: 10000,
84
+ });
85
+ node_assert_1.default.ok(response.status === 200, "Should return status 200");
86
+ const body = await response.json();
87
+ const accept = body.headers.Accept;
88
+ node_assert_1.default.ok(accept, "Should have Accept header");
89
+ node_assert_1.default.ok(accept.includes(customAccept), "Should include custom Accept header");
90
+ console.log("Accept with emulation (may be overwritten):", accept);
91
+ });
92
+ (0, node_test_1.test)("should provide functional clone and text helpers", async () => {
93
+ const response = await (0, wreq_js_1.fetch)(httpUrl("/json"), {
94
+ browser: "chrome_142",
95
+ timeout: 10000,
96
+ });
97
+ const clone = response.clone();
98
+ const original = await response.json();
99
+ const cloneText = await clone.text();
100
+ node_assert_1.default.ok(original, "json() should parse successfully");
101
+ node_assert_1.default.ok(cloneText.length > 0, "clone text should return payload");
102
+ node_assert_1.default.ok(response.bodyUsed, "original body should be consumed");
103
+ node_assert_1.default.ok(clone.bodyUsed, "clone body should be consumed");
104
+ });
105
+ (0, node_test_1.test)("should reject aborted requests with AbortError", async () => {
106
+ const controller = new AbortController();
107
+ controller.abort();
108
+ await node_assert_1.default.rejects(async () => {
109
+ await (0, wreq_js_1.fetch)(httpUrl("/get"), {
110
+ browser: "chrome_142",
111
+ signal: controller.signal,
112
+ timeout: 1000,
113
+ });
114
+ }, (error) => error instanceof Error && error.name === "AbortError", "Should reject with AbortError");
115
+ });
116
+ (0, node_test_1.test)("should work with custom Headers helper", () => {
117
+ const headers = new wreq_js_1.Headers({
118
+ "X-Test": "alpha",
119
+ });
120
+ headers.append("x-test", "beta");
121
+ headers.set("X-Another", "value");
122
+ const collected = Array.from(headers.entries());
123
+ node_assert_1.default.strictEqual(headers.get("X-Test"), "alpha, beta", "append should concatenate values");
124
+ node_assert_1.default.strictEqual(headers.get("x-another"), "value", "set should overwrite values");
125
+ node_assert_1.default.ok(collected.length >= 2, "entries should iterate all headers");
126
+ });
127
+ (0, node_test_1.test)("should validate browser profiles in fetch", async () => {
128
+ await node_assert_1.default.rejects(async () => {
129
+ await (0, wreq_js_1.fetch)(httpUrl("/get"), {
130
+ browser: "nonexistent_browser",
131
+ timeout: 1000,
132
+ });
133
+ }, (error) => error instanceof wreq_js_1.RequestError, "Should reject invalid browser profiles");
134
+ });
135
+ (0, node_test_1.test)("should isolate cookies for default fetch calls", async () => {
136
+ await (0, wreq_js_1.fetch)(httpUrl("/cookies/set?ephemeral=on"), {
137
+ browser: "chrome_142",
138
+ timeout: 5000,
139
+ });
140
+ const response = await (0, wreq_js_1.fetch)(httpUrl("/cookies"), {
141
+ browser: "chrome_142",
142
+ timeout: 5000,
143
+ });
144
+ const body = await response.json();
145
+ node_assert_1.default.ok(!body.cookies.ephemeral, "Ephemeral cookies should not persist across requests");
146
+ });
147
+ (0, node_test_1.test)("should isolate cookies between sessions", async () => {
148
+ const sessionA = await (0, wreq_js_1.createSession)({ browser: "chrome_142" });
149
+ const sessionB = await (0, wreq_js_1.createSession)({ browser: "chrome_142" });
150
+ try {
151
+ await sessionA.fetch(httpUrl("/cookies/set?flavor=alpha"), { timeout: 10000 });
152
+ await sessionB.fetch(httpUrl("/cookies/set?flavor=beta"), { timeout: 10000 });
153
+ const cookiesA = await sessionA.fetch(httpUrl("/cookies"), { timeout: 10000 });
154
+ const cookiesB = await sessionB.fetch(httpUrl("/cookies"), { timeout: 10000 });
155
+ const bodyA = await cookiesA.json();
156
+ const bodyB = await cookiesB.json();
157
+ node_assert_1.default.strictEqual(bodyA.cookies.flavor, "alpha", "Session A should keep its own cookies");
158
+ node_assert_1.default.strictEqual(bodyB.cookies.flavor, "beta", "Session B should keep its own cookies");
159
+ }
160
+ finally {
161
+ await sessionA.close();
162
+ await sessionB.close();
163
+ }
164
+ });
165
+ (0, node_test_1.test)("should clear session cookies on demand", async () => {
166
+ const session = await (0, wreq_js_1.createSession)({ browser: "chrome_142" });
167
+ try {
168
+ await session.fetch(httpUrl("/cookies/set?token=123"), { timeout: 10000 });
169
+ await session.clearCookies();
170
+ const response = await session.fetch(httpUrl("/cookies"), { timeout: 10000 });
171
+ const body = await response.json();
172
+ node_assert_1.default.deepStrictEqual(body.cookies, {}, "Clearing the session should drop stored cookies");
173
+ }
174
+ finally {
175
+ await session.close();
176
+ }
177
+ });
178
+ (0, node_test_1.test)("withSession helper should dispose sessions automatically", async () => {
179
+ let capturedSession;
180
+ await (0, wreq_js_1.withSession)(async (session) => {
181
+ capturedSession = session;
182
+ const response = await session.fetch(httpUrl("/get"), { timeout: 5000 });
183
+ node_assert_1.default.strictEqual(response.status, 200);
184
+ });
185
+ const session = capturedSession;
186
+ node_assert_1.default.ok(session, "withSession should provide a session instance");
187
+ await node_assert_1.default.rejects(async () => {
188
+ await session.fetch(httpUrl("/get"), { timeout: 5000 });
189
+ }, (error) => error instanceof wreq_js_1.RequestError, "Using a closed session should fail");
190
+ });
62
191
  });
63
192
  //# sourceMappingURL=http.spec.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"http.spec.js","sourceRoot":"","sources":["../../src/test/http.spec.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"http.spec.js","sourceRoot":"","sources":["../../src/test/http.spec.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=run-with-local-server.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"run-with-local-server.d.ts","sourceRoot":"","sources":["../../src/test/run-with-local-server.ts"],"names":[],"mappings":""}
@@ -0,0 +1,61 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const node_child_process_1 = require("node:child_process");
7
+ const node_path_1 = require("node:path");
8
+ const node_process_1 = __importDefault(require("node:process"));
9
+ const local_test_server_1 = require("./helpers/local-test-server");
10
+ const testDir = __dirname;
11
+ async function main() {
12
+ const extraArgs = node_process_1.default.argv.slice(2);
13
+ const defaultTestFiles = [(0, node_path_1.resolve)(testDir, "http.spec.js"), (0, node_path_1.resolve)(testDir, "websocket.spec.js")];
14
+ const env = { ...node_process_1.default.env };
15
+ let localServer;
16
+ if (!env.HTTP_TEST_BASE_URL || !env.WS_TEST_URL) {
17
+ localServer = await (0, local_test_server_1.startLocalTestServer)();
18
+ if (!env.HTTP_TEST_BASE_URL) {
19
+ env.HTTP_TEST_BASE_URL = localServer.httpBaseUrl;
20
+ }
21
+ if (!env.WS_TEST_URL) {
22
+ env.WS_TEST_URL = localServer.wsUrl;
23
+ }
24
+ }
25
+ const nodeArgs = ["--test", ...defaultTestFiles, ...extraArgs];
26
+ const testProcess = (0, node_child_process_1.spawn)(node_process_1.default.execPath, nodeArgs, {
27
+ stdio: "inherit",
28
+ env,
29
+ });
30
+ const cleanup = async () => {
31
+ if (!localServer) {
32
+ return;
33
+ }
34
+ const server = localServer;
35
+ localServer = undefined;
36
+ try {
37
+ await server.close();
38
+ }
39
+ catch (error) {
40
+ console.error("Failed to stop local test server:", error);
41
+ }
42
+ };
43
+ testProcess.once("exit", async (code, signal) => {
44
+ await cleanup();
45
+ if (signal) {
46
+ node_process_1.default.kill(node_process_1.default.pid, signal);
47
+ return;
48
+ }
49
+ node_process_1.default.exit(code ?? 1);
50
+ });
51
+ testProcess.once("error", async (error) => {
52
+ console.error("Failed to run tests:", error);
53
+ await cleanup();
54
+ node_process_1.default.exit(1);
55
+ });
56
+ }
57
+ main().catch((error) => {
58
+ console.error(error);
59
+ node_process_1.default.exit(1);
60
+ });
61
+ //# sourceMappingURL=run-with-local-server.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"run-with-local-server.js","sourceRoot":"","sources":["../../src/test/run-with-local-server.ts"],"names":[],"mappings":";;;;;AAAA,2DAA2C;AAC3C,yCAAoC;AACpC,gEAAmC;AAEnC,mEAAmE;AAEnE,MAAM,OAAO,GAAG,SAAS,CAAC;AAE1B,KAAK,UAAU,IAAI;IACjB,MAAM,SAAS,GAAG,sBAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACxC,MAAM,gBAAgB,GAAG,CAAC,IAAA,mBAAO,EAAC,OAAO,EAAE,cAAc,CAAC,EAAE,IAAA,mBAAO,EAAC,OAAO,EAAE,mBAAmB,CAAC,CAAC,CAAC;IAEnG,MAAM,GAAG,GAAG,EAAE,GAAG,sBAAO,CAAC,GAAG,EAAE,CAAC;IAE/B,IAAI,WAAwC,CAAC;IAC7C,IAAI,CAAC,GAAG,CAAC,kBAAkB,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC;QAChD,WAAW,GAAG,MAAM,IAAA,wCAAoB,GAAE,CAAC;QAC3C,IAAI,CAAC,GAAG,CAAC,kBAAkB,EAAE,CAAC;YAC5B,GAAG,CAAC,kBAAkB,GAAG,WAAW,CAAC,WAAW,CAAC;QACnD,CAAC;QACD,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC;YACrB,GAAG,CAAC,WAAW,GAAG,WAAW,CAAC,KAAK,CAAC;QACtC,CAAC;IACH,CAAC;IAED,MAAM,QAAQ,GAAG,CAAC,QAAQ,EAAE,GAAG,gBAAgB,EAAE,GAAG,SAAS,CAAC,CAAC;IAC/D,MAAM,WAAW,GAAG,IAAA,0BAAK,EAAC,sBAAO,CAAC,QAAQ,EAAE,QAAQ,EAAE;QACpD,KAAK,EAAE,SAAS;QAChB,GAAG;KACJ,CAAC,CAAC;IAEH,MAAM,OAAO,GAAG,KAAK,IAAI,EAAE;QACzB,IAAI,CAAC,WAAW,EAAE,CAAC;YACjB,OAAO;QACT,CAAC;QACD,MAAM,MAAM,GAAG,WAAW,CAAC;QAC3B,WAAW,GAAG,SAAS,CAAC;QACxB,IAAI,CAAC;YACH,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC;QACvB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,mCAAmC,EAAE,KAAK,CAAC,CAAC;QAC5D,CAAC;IACH,CAAC,CAAC;IAEF,WAAW,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE;QAC9C,MAAM,OAAO,EAAE,CAAC;QAChB,IAAI,MAAM,EAAE,CAAC;YACX,sBAAO,CAAC,IAAI,CAAC,sBAAO,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;YAClC,OAAO;QACT,CAAC;QACD,sBAAO,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC;IAC1B,CAAC,CAAC,CAAC;IAEH,WAAW,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE;QACxC,OAAO,CAAC,KAAK,CAAC,sBAAsB,EAAE,KAAK,CAAC,CAAC;QAC7C,MAAM,OAAO,EAAE,CAAC;QAChB,sBAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC,CAAC,CAAC;AACL,CAAC;AAED,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;IACrB,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IACrB,sBAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC"}