@nestjs-ssr/react 0.3.20 → 0.3.22

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/dist/index.js CHANGED
@@ -1408,6 +1408,7 @@ var ViteInitializerService = class _ViteInitializerService {
1408
1408
  vitePort;
1409
1409
  viteServer = null;
1410
1410
  isShuttingDown = false;
1411
+ trackedSockets = /* @__PURE__ */ new Set();
1411
1412
  constructor(renderService, httpAdapterHost, viteConfig) {
1412
1413
  this.renderService = renderService;
1413
1414
  this.httpAdapterHost = httpAdapterHost;
@@ -1437,7 +1438,10 @@ var ViteInitializerService = class _ViteInitializerService {
1437
1438
  const { createServer: createViteServer } = await import('vite');
1438
1439
  this.viteServer = await createViteServer({
1439
1440
  server: {
1440
- middlewareMode: true
1441
+ middlewareMode: true,
1442
+ hmr: {
1443
+ port: 0
1444
+ }
1441
1445
  },
1442
1446
  appType: "custom"
1443
1447
  });
@@ -1467,6 +1471,15 @@ var ViteInitializerService = class _ViteInitializerService {
1467
1471
  });
1468
1472
  app.use(viteProxy);
1469
1473
  this.logger.log(`\u2713 Vite HMR proxy configured (Vite dev server on port ${this.vitePort})`);
1474
+ const httpServer = httpAdapter.getHttpServer?.();
1475
+ if (httpServer && typeof httpServer.on === "function") {
1476
+ const track = /* @__PURE__ */ __name((socket) => {
1477
+ this.trackedSockets.add(socket);
1478
+ socket.once("close", () => this.trackedSockets.delete(socket));
1479
+ }, "track");
1480
+ httpServer.on("connection", track);
1481
+ httpServer.on("upgrade", (_req, socket) => track(socket));
1482
+ }
1470
1483
  } catch (error) {
1471
1484
  this.logger.warn(`Failed to setup Vite proxy: ${error.message}. Make sure http-proxy-middleware is installed.`);
1472
1485
  }
@@ -1535,6 +1548,14 @@ var ViteInitializerService = class _ViteInitializerService {
1535
1548
  this.logger.warn(`Failed to close Vite server: ${error.message}`);
1536
1549
  }
1537
1550
  }
1551
+ const httpServer = this.httpAdapterHost?.httpAdapter?.getHttpServer?.();
1552
+ if (httpServer && typeof httpServer.closeAllConnections === "function") {
1553
+ httpServer.closeAllConnections();
1554
+ }
1555
+ for (const socket of this.trackedSockets) {
1556
+ socket.destroy();
1557
+ }
1558
+ this.trackedSockets.clear();
1538
1559
  }
1539
1560
  };
1540
1561
  ViteInitializerService = _ts_decorate7([
package/dist/index.mjs CHANGED
@@ -1401,6 +1401,7 @@ var ViteInitializerService = class _ViteInitializerService {
1401
1401
  vitePort;
1402
1402
  viteServer = null;
1403
1403
  isShuttingDown = false;
1404
+ trackedSockets = /* @__PURE__ */ new Set();
1404
1405
  constructor(renderService, httpAdapterHost, viteConfig) {
1405
1406
  this.renderService = renderService;
1406
1407
  this.httpAdapterHost = httpAdapterHost;
@@ -1430,7 +1431,10 @@ var ViteInitializerService = class _ViteInitializerService {
1430
1431
  const { createServer: createViteServer } = await import('vite');
1431
1432
  this.viteServer = await createViteServer({
1432
1433
  server: {
1433
- middlewareMode: true
1434
+ middlewareMode: true,
1435
+ hmr: {
1436
+ port: 0
1437
+ }
1434
1438
  },
1435
1439
  appType: "custom"
1436
1440
  });
@@ -1460,6 +1464,15 @@ var ViteInitializerService = class _ViteInitializerService {
1460
1464
  });
1461
1465
  app.use(viteProxy);
1462
1466
  this.logger.log(`\u2713 Vite HMR proxy configured (Vite dev server on port ${this.vitePort})`);
1467
+ const httpServer = httpAdapter.getHttpServer?.();
1468
+ if (httpServer && typeof httpServer.on === "function") {
1469
+ const track = /* @__PURE__ */ __name((socket) => {
1470
+ this.trackedSockets.add(socket);
1471
+ socket.once("close", () => this.trackedSockets.delete(socket));
1472
+ }, "track");
1473
+ httpServer.on("connection", track);
1474
+ httpServer.on("upgrade", (_req, socket) => track(socket));
1475
+ }
1463
1476
  } catch (error) {
1464
1477
  this.logger.warn(`Failed to setup Vite proxy: ${error.message}. Make sure http-proxy-middleware is installed.`);
1465
1478
  }
@@ -1528,6 +1541,14 @@ var ViteInitializerService = class _ViteInitializerService {
1528
1541
  this.logger.warn(`Failed to close Vite server: ${error.message}`);
1529
1542
  }
1530
1543
  }
1544
+ const httpServer = this.httpAdapterHost?.httpAdapter?.getHttpServer?.();
1545
+ if (httpServer && typeof httpServer.closeAllConnections === "function") {
1546
+ httpServer.closeAllConnections();
1547
+ }
1548
+ for (const socket of this.trackedSockets) {
1549
+ socket.destroy();
1550
+ }
1551
+ this.trackedSockets.clear();
1531
1552
  }
1532
1553
  };
1533
1554
  ViteInitializerService = _ts_decorate7([
@@ -1389,6 +1389,7 @@ var ViteInitializerService = class _ViteInitializerService {
1389
1389
  vitePort;
1390
1390
  viteServer = null;
1391
1391
  isShuttingDown = false;
1392
+ trackedSockets = /* @__PURE__ */ new Set();
1392
1393
  constructor(renderService, httpAdapterHost, viteConfig) {
1393
1394
  this.renderService = renderService;
1394
1395
  this.httpAdapterHost = httpAdapterHost;
@@ -1418,7 +1419,10 @@ var ViteInitializerService = class _ViteInitializerService {
1418
1419
  const { createServer: createViteServer } = await import('vite');
1419
1420
  this.viteServer = await createViteServer({
1420
1421
  server: {
1421
- middlewareMode: true
1422
+ middlewareMode: true,
1423
+ hmr: {
1424
+ port: 0
1425
+ }
1422
1426
  },
1423
1427
  appType: "custom"
1424
1428
  });
@@ -1448,6 +1452,15 @@ var ViteInitializerService = class _ViteInitializerService {
1448
1452
  });
1449
1453
  app.use(viteProxy);
1450
1454
  this.logger.log(`\u2713 Vite HMR proxy configured (Vite dev server on port ${this.vitePort})`);
1455
+ const httpServer = httpAdapter.getHttpServer?.();
1456
+ if (httpServer && typeof httpServer.on === "function") {
1457
+ const track = /* @__PURE__ */ __name((socket) => {
1458
+ this.trackedSockets.add(socket);
1459
+ socket.once("close", () => this.trackedSockets.delete(socket));
1460
+ }, "track");
1461
+ httpServer.on("connection", track);
1462
+ httpServer.on("upgrade", (_req, socket) => track(socket));
1463
+ }
1451
1464
  } catch (error) {
1452
1465
  this.logger.warn(`Failed to setup Vite proxy: ${error.message}. Make sure http-proxy-middleware is installed.`);
1453
1466
  }
@@ -1516,6 +1529,14 @@ var ViteInitializerService = class _ViteInitializerService {
1516
1529
  this.logger.warn(`Failed to close Vite server: ${error.message}`);
1517
1530
  }
1518
1531
  }
1532
+ const httpServer = this.httpAdapterHost?.httpAdapter?.getHttpServer?.();
1533
+ if (httpServer && typeof httpServer.closeAllConnections === "function") {
1534
+ httpServer.closeAllConnections();
1535
+ }
1536
+ for (const socket of this.trackedSockets) {
1537
+ socket.destroy();
1538
+ }
1539
+ this.trackedSockets.clear();
1519
1540
  }
1520
1541
  };
1521
1542
  ViteInitializerService = _ts_decorate7([
@@ -1383,6 +1383,7 @@ var ViteInitializerService = class _ViteInitializerService {
1383
1383
  vitePort;
1384
1384
  viteServer = null;
1385
1385
  isShuttingDown = false;
1386
+ trackedSockets = /* @__PURE__ */ new Set();
1386
1387
  constructor(renderService, httpAdapterHost, viteConfig) {
1387
1388
  this.renderService = renderService;
1388
1389
  this.httpAdapterHost = httpAdapterHost;
@@ -1412,7 +1413,10 @@ var ViteInitializerService = class _ViteInitializerService {
1412
1413
  const { createServer: createViteServer } = await import('vite');
1413
1414
  this.viteServer = await createViteServer({
1414
1415
  server: {
1415
- middlewareMode: true
1416
+ middlewareMode: true,
1417
+ hmr: {
1418
+ port: 0
1419
+ }
1416
1420
  },
1417
1421
  appType: "custom"
1418
1422
  });
@@ -1442,6 +1446,15 @@ var ViteInitializerService = class _ViteInitializerService {
1442
1446
  });
1443
1447
  app.use(viteProxy);
1444
1448
  this.logger.log(`\u2713 Vite HMR proxy configured (Vite dev server on port ${this.vitePort})`);
1449
+ const httpServer = httpAdapter.getHttpServer?.();
1450
+ if (httpServer && typeof httpServer.on === "function") {
1451
+ const track = /* @__PURE__ */ __name((socket) => {
1452
+ this.trackedSockets.add(socket);
1453
+ socket.once("close", () => this.trackedSockets.delete(socket));
1454
+ }, "track");
1455
+ httpServer.on("connection", track);
1456
+ httpServer.on("upgrade", (_req, socket) => track(socket));
1457
+ }
1445
1458
  } catch (error) {
1446
1459
  this.logger.warn(`Failed to setup Vite proxy: ${error.message}. Make sure http-proxy-middleware is installed.`);
1447
1460
  }
@@ -1510,6 +1523,14 @@ var ViteInitializerService = class _ViteInitializerService {
1510
1523
  this.logger.warn(`Failed to close Vite server: ${error.message}`);
1511
1524
  }
1512
1525
  }
1526
+ const httpServer = this.httpAdapterHost?.httpAdapter?.getHttpServer?.();
1527
+ if (httpServer && typeof httpServer.closeAllConnections === "function") {
1528
+ httpServer.closeAllConnections();
1529
+ }
1530
+ for (const socket of this.trackedSockets) {
1531
+ socket.destroy();
1532
+ }
1533
+ this.trackedSockets.clear();
1513
1534
  }
1514
1535
  };
1515
1536
  ViteInitializerService = _ts_decorate7([
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nestjs-ssr/react",
3
- "version": "0.3.20",
3
+ "version": "0.3.22",
4
4
  "description": "React SSR for NestJS that respects Clean Architecture. Proper DI, SOLID principles, clear separation of concerns.",
5
5
  "keywords": [
6
6
  "nestjs",
@@ -139,39 +139,39 @@
139
139
  }
140
140
  },
141
141
  "dependencies": {
142
- "citty": "^0.2.1",
142
+ "citty": "^0.2.2",
143
143
  "consola": "^3.4.2",
144
- "devalue": "^5.6.4",
144
+ "devalue": "^5.8.1",
145
145
  "escape-html": "^1.0.3"
146
146
  },
147
147
  "devDependencies": {
148
- "@microsoft/api-extractor": "^7.57.7",
148
+ "@microsoft/api-extractor": "^7.58.7",
149
149
  "@nestjs/common": "^11.1.19",
150
150
  "@nestjs/core": "^11.1.19",
151
151
  "@nestjs/platform-express": "^11.1.19",
152
- "@nestjs/testing": "^11.1.17",
153
- "@playwright/test": "^1.58.2",
154
- "@swc/core": "^1.15.21",
152
+ "@nestjs/testing": "^11.1.21",
153
+ "@playwright/test": "^1.60.0",
154
+ "@swc/core": "^1.15.33",
155
155
  "@testing-library/jest-dom": "^6.9.1",
156
156
  "@testing-library/react": "^16.3.2",
157
157
  "@types/escape-html": "^1.0.4",
158
158
  "@types/express": "^5.0.6",
159
- "@types/node": "^25.5.0",
159
+ "@types/node": "^25.8.0",
160
160
  "@types/react": "^19.2.14",
161
161
  "@types/react-dom": "^19.2.3",
162
162
  "@types/supertest": "^7.2.0",
163
- "@vitejs/plugin-react": "^6.0.1",
164
- "@vitest/coverage-v8": "^4.1.2",
165
- "@vitest/ui": "^4.1.2",
166
- "happy-dom": "^20.8.9",
167
- "react": "^19.2.5",
168
- "react-dom": "^19.2.5",
163
+ "@vitejs/plugin-react": "^6.0.2",
164
+ "@vitest/coverage-v8": "^4.1.6",
165
+ "@vitest/ui": "^4.1.6",
166
+ "happy-dom": "^20.9.0",
167
+ "react": "^19.2.6",
168
+ "react-dom": "^19.2.6",
169
169
  "rxjs": "^7.8.2",
170
170
  "supertest": "^7.2.2",
171
171
  "tsup": "^8.5.1",
172
172
  "typescript": "^5.9.3",
173
- "vite": "^8.0.9",
174
- "vitest": "^4.1.2"
173
+ "vite": "^8.0.13",
174
+ "vitest": "^4.1.6"
175
175
  },
176
176
  "publishConfig": {
177
177
  "access": "public"