@proteinjs/server 3.1.13 → 3.2.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/CHANGELOG.md CHANGED
@@ -3,6 +3,28 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
5
 
6
+ # [3.2.0](https://github.com/proteinjs/server/compare/@proteinjs/server@3.1.14...@proteinjs/server@3.2.0) (2026-08-11)
7
+
8
+
9
+ ### Features
10
+
11
+ * re-export the socket.io namespace and socket types ([a6ed703](https://github.com/proteinjs/server/commit/a6ed703c273b311c61c95bbf9ae3fc934364fbad))
12
+
13
+
14
+
15
+
16
+
17
+ ## [3.1.14](https://github.com/proteinjs/server/compare/@proteinjs/server@3.1.13...@proteinjs/server@3.1.14) (2026-08-05)
18
+
19
+
20
+ ### Bug Fixes
21
+
22
+ * HMR slot hygiene — +100 port scheme and visibility-gated connections ([8409a69](https://github.com/proteinjs/server/commit/8409a693aac3dfed5e2ddf7f024ff717f4affd35))
23
+
24
+
25
+
26
+
27
+
6
28
  ## [3.1.13](https://github.com/proteinjs/server/compare/@proteinjs/server@3.1.12...@proteinjs/server@3.1.13) (2026-08-05)
7
29
 
8
30
 
@@ -1,6 +1,7 @@
1
1
  /// <reference types="node" />
2
2
  import { Server as HttpServer, IncomingMessage } from 'http';
3
3
  import { Socket, Server as SocketIOServer } from 'socket.io';
4
+ export type { Namespace as SocketIONamespace, Socket as SocketIOSocket } from 'socket.io';
4
5
  export interface ExtendedIncomingMessage extends IncomingMessage {
5
6
  sessionID?: string;
6
7
  user?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"SocketIOServerRepo.d.ts","sourceRoot":"","sources":["../../src/SocketIOServerRepo.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,MAAM,IAAI,UAAU,EAAE,eAAe,EAAE,MAAM,MAAM,CAAC;AAC7D,OAAO,EAAE,MAAM,EAAE,MAAM,IAAI,cAAc,EAAE,MAAM,WAAW,CAAC;AAW7D,MAAM,WAAW,uBAAwB,SAAQ,eAAe;IAC9D,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,cAAe,SAAQ,MAAM;IAC5C,OAAO,EAAE,uBAAuB,CAAC;CAClC;AAED,qBAAa,kBAAkB;WAChB,oBAAoB,CAAC,UAAU,EAAE,UAAU,GAAG,OAAO,CAAC,cAAc,CAAC;IAclF,MAAM,CAAC,iBAAiB,IAAI,cAAc;IAU1C,MAAM,CAAC,yBAAyB,IAAI,cAAc,GAAG,SAAS;CAG/D"}
1
+ {"version":3,"file":"SocketIOServerRepo.d.ts","sourceRoot":"","sources":["../../src/SocketIOServerRepo.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,MAAM,IAAI,UAAU,EAAE,eAAe,EAAE,MAAM,MAAM,CAAC;AAC7D,OAAO,EAAE,MAAM,EAAE,MAAM,IAAI,cAAc,EAAE,MAAM,WAAW,CAAC;AAgB7D,YAAY,EAAE,SAAS,IAAI,iBAAiB,EAAE,MAAM,IAAI,cAAc,EAAE,MAAM,WAAW,CAAC;AAE1F,MAAM,WAAW,uBAAwB,SAAQ,eAAe;IAC9D,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,cAAe,SAAQ,MAAM;IAC5C,OAAO,EAAE,uBAAuB,CAAC;CAClC;AAED,qBAAa,kBAAkB;WAChB,oBAAoB,CAAC,UAAU,EAAE,UAAU,GAAG,OAAO,CAAC,cAAc,CAAC;IAclF,MAAM,CAAC,iBAAiB,IAAI,cAAc;IAU1C,MAAM,CAAC,yBAAyB,IAAI,cAAc,GAAG,SAAS;CAG/D"}
@@ -1 +1 @@
1
- {"version":3,"file":"SocketIOServerRepo.js","sourceRoot":"","sources":["../../src/SocketIOServerRepo.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,uCAA6D;AAC7D,0CAAmE;AAEnE,IAAM,SAAS,GAAG;IAChB,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE;QACjC,OAAO,MAAM,CAAC;KACf;IAED,OAAO,UAAU,CAAC;AACpB,CAAC,CAAC;AAWF;IAAA;IA4BA,CAAC;IA3Bc,uCAAoB,GAAjC,UAAkC,UAAsB;;;;;;wBACtD,IAAI,SAAS,EAAE,CAAC,iCAAiC,EAAE;4BACjD,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAC;yBACzD;wBAEK,qBAAqB,GAAG,IAAA,uCAA+B,GAAE,CAAC;6BACzC,qBAAqB,EAArB,wBAAqB;wBACxC,qBAAM,qBAAqB,CAAC,oBAAoB,CAAC,UAAU,CAAC,EAAA;;wBAA5D,KAAA,SAA4D,CAAA;;;wBAC5D,KAAA,IAAI,kBAAc,CAAC,UAAU,CAAC,CAAA;;;wBAF5B,cAAc,KAEc;wBAClC,SAAS,EAAE,CAAC,iCAAiC,GAAG,cAAc,CAAC;wBAE/D,sBAAO,SAAS,EAAE,CAAC,iCAAiC,EAAC;;;;KACtD;IAEM,oCAAiB,GAAxB;QACE,IAAI,CAAC,SAAS,EAAE,CAAC,iCAAiC,EAAE;YAClD,MAAM,IAAI,KAAK,CACb,8GAA8G,CAC/G,CAAC;SACH;QAED,OAAO,SAAS,EAAE,CAAC,iCAAiC,CAAC;IACvD,CAAC;IAEM,4CAAyB,GAAhC;QACE,OAAO,SAAS,EAAE,CAAC,iCAAiC,CAAC;IACvD,CAAC;IACH,yBAAC;AAAD,CAAC,AA5BD,IA4BC;AA5BY,gDAAkB"}
1
+ {"version":3,"file":"SocketIOServerRepo.js","sourceRoot":"","sources":["../../src/SocketIOServerRepo.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,uCAA6D;AAC7D,0CAAmE;AAEnE,IAAM,SAAS,GAAG;IAChB,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE;QACjC,OAAO,MAAM,CAAC;KACf;IAED,OAAO,UAAU,CAAC;AACpB,CAAC,CAAC;AAkBF;IAAA;IA4BA,CAAC;IA3Bc,uCAAoB,GAAjC,UAAkC,UAAsB;;;;;;wBACtD,IAAI,SAAS,EAAE,CAAC,iCAAiC,EAAE;4BACjD,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAC;yBACzD;wBAEK,qBAAqB,GAAG,IAAA,uCAA+B,GAAE,CAAC;6BACzC,qBAAqB,EAArB,wBAAqB;wBACxC,qBAAM,qBAAqB,CAAC,oBAAoB,CAAC,UAAU,CAAC,EAAA;;wBAA5D,KAAA,SAA4D,CAAA;;;wBAC5D,KAAA,IAAI,kBAAc,CAAC,UAAU,CAAC,CAAA;;;wBAF5B,cAAc,KAEc;wBAClC,SAAS,EAAE,CAAC,iCAAiC,GAAG,cAAc,CAAC;wBAE/D,sBAAO,SAAS,EAAE,CAAC,iCAAiC,EAAC;;;;KACtD;IAEM,oCAAiB,GAAxB;QACE,IAAI,CAAC,SAAS,EAAE,CAAC,iCAAiC,EAAE;YAClD,MAAM,IAAI,KAAK,CACb,8GAA8G,CAC/G,CAAC;SACH;QAED,OAAO,SAAS,EAAE,CAAC,iCAAiC,CAAC;IACvD,CAAC;IAEM,4CAAyB,GAAhC;QACE,OAAO,SAAS,EAAE,CAAC,iCAAiC,CAAC;IACvD,CAAC;IACH,yBAAC;AAAD,CAAC,AA5BD,IA4BC;AA5BY,gDAAkB"}
@@ -0,0 +1,39 @@
1
+ /**
2
+ * Dev-only webpack entry that VISIBILITY-GATES the HMR event stream: only visible tabs hold
3
+ * an SSE connection. Each dev tab's hot-update stream occupies one of the browser's 6
4
+ * HTTP/1.1 connection slots to the HMR origin for as long as the tab lives, so accumulated
5
+ * hidden tabs (agent-driven panes especially) can exhaust the pool and starve newly visible
6
+ * tabs of live reload. Closing the stream while hidden frees the slot; catch-up on
7
+ * re-connect is free because webpack-hot-middleware's server publishes its latest build
8
+ * stats ('sync') to every new subscriber, and the stock client hot-applies from that.
9
+ *
10
+ * This file is compiled by the normal package build and injected by absolute dist path as a
11
+ * webpack entry AHEAD of webpack-hot-middleware/client (see createWebpackConfigOverlay), so
12
+ * the EventSource patch below is installed before the client connects. It executes inside
13
+ * the browser bundle: keep it free of imports and Node globals (`process` in particular —
14
+ * webpack's DefinePlugin rewrites `process.env` references).
15
+ */
16
+ /**
17
+ * Drop-in for the EventSource the HMR client holds. The client keeps its instance for the
18
+ * page lifetime, so a plain EventSource can't be closed and reopened on visibility changes
19
+ * without the client seeing a dead connection; this gate owns the underlying native
20
+ * connection and creates/destroys it as the tab shows/hides, while the client's handler
21
+ * assignments (onopen/onerror/onmessage — the only surface webpack-hot-middleware/client
22
+ * uses, plus close()) keep working across recreations because they live here, not on the
23
+ * connection.
24
+ */
25
+ export declare class VisibilityGatedEventSource {
26
+ private readonly url;
27
+ onopen: ((event: Event) => unknown) | null;
28
+ onerror: ((event: Event) => unknown) | null;
29
+ onmessage: ((event: MessageEvent) => unknown) | null;
30
+ private source;
31
+ private closed;
32
+ constructor(url: string);
33
+ close(): void;
34
+ get readyState(): number;
35
+ private readonly handleVisibilityChange;
36
+ private connect;
37
+ private disconnect;
38
+ }
39
+ //# sourceMappingURL=VisibilityGatedEventSource.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"VisibilityGatedEventSource.d.ts","sourceRoot":"","sources":["../../src/VisibilityGatedEventSource.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH;;;;;;;;GAQG;AACH,qBAAa,0BAA0B;IAQzB,OAAO,CAAC,QAAQ,CAAC,GAAG;IAPhC,MAAM,EAAE,CAAC,CAAC,KAAK,EAAE,KAAK,KAAK,OAAO,CAAC,GAAG,IAAI,CAAQ;IAClD,OAAO,EAAE,CAAC,CAAC,KAAK,EAAE,KAAK,KAAK,OAAO,CAAC,GAAG,IAAI,CAAQ;IACnD,SAAS,EAAE,CAAC,CAAC,KAAK,EAAE,YAAY,KAAK,OAAO,CAAC,GAAG,IAAI,CAAQ;IAE5D,OAAO,CAAC,MAAM,CAA4B;IAC1C,OAAO,CAAC,MAAM,CAAS;gBAEM,GAAG,EAAE,MAAM;IASxC,KAAK,IAAI,IAAI;IAMb,IAAI,UAAU,IAAI,MAAM,CAMvB;IAED,OAAO,CAAC,QAAQ,CAAC,sBAAsB,CAMrC;IAEF,OAAO,CAAC,OAAO;IAUf,OAAO,CAAC,UAAU;CAMnB"}
@@ -0,0 +1,110 @@
1
+ "use strict";
2
+ /**
3
+ * Dev-only webpack entry that VISIBILITY-GATES the HMR event stream: only visible tabs hold
4
+ * an SSE connection. Each dev tab's hot-update stream occupies one of the browser's 6
5
+ * HTTP/1.1 connection slots to the HMR origin for as long as the tab lives, so accumulated
6
+ * hidden tabs (agent-driven panes especially) can exhaust the pool and starve newly visible
7
+ * tabs of live reload. Closing the stream while hidden frees the slot; catch-up on
8
+ * re-connect is free because webpack-hot-middleware's server publishes its latest build
9
+ * stats ('sync') to every new subscriber, and the stock client hot-applies from that.
10
+ *
11
+ * This file is compiled by the normal package build and injected by absolute dist path as a
12
+ * webpack entry AHEAD of webpack-hot-middleware/client (see createWebpackConfigOverlay), so
13
+ * the EventSource patch below is installed before the client connects. It executes inside
14
+ * the browser bundle: keep it free of imports and Node globals (`process` in particular —
15
+ * webpack's DefinePlugin rewrites `process.env` references).
16
+ */
17
+ Object.defineProperty(exports, "__esModule", { value: true });
18
+ exports.VisibilityGatedEventSource = void 0;
19
+ /**
20
+ * Drop-in for the EventSource the HMR client holds. The client keeps its instance for the
21
+ * page lifetime, so a plain EventSource can't be closed and reopened on visibility changes
22
+ * without the client seeing a dead connection; this gate owns the underlying native
23
+ * connection and creates/destroys it as the tab shows/hides, while the client's handler
24
+ * assignments (onopen/onerror/onmessage — the only surface webpack-hot-middleware/client
25
+ * uses, plus close()) keep working across recreations because they live here, not on the
26
+ * connection.
27
+ */
28
+ var VisibilityGatedEventSource = /** @class */ (function () {
29
+ function VisibilityGatedEventSource(url) {
30
+ var _this = this;
31
+ this.url = url;
32
+ this.onopen = null;
33
+ this.onerror = null;
34
+ this.onmessage = null;
35
+ this.source = null;
36
+ this.closed = false;
37
+ this.handleVisibilityChange = function () {
38
+ if (document.visibilityState === 'hidden') {
39
+ _this.disconnect();
40
+ }
41
+ else if (!_this.source) {
42
+ _this.connect();
43
+ }
44
+ };
45
+ document.addEventListener('visibilitychange', this.handleVisibilityChange);
46
+ // Hidden at construction (the client re-inits after its own disconnect timeout): stay
47
+ // parked with no connection until the tab becomes visible.
48
+ if (document.visibilityState === 'visible') {
49
+ this.connect();
50
+ }
51
+ }
52
+ VisibilityGatedEventSource.prototype.close = function () {
53
+ this.closed = true;
54
+ document.removeEventListener('visibilitychange', this.handleVisibilityChange);
55
+ this.disconnect();
56
+ };
57
+ Object.defineProperty(VisibilityGatedEventSource.prototype, "readyState", {
58
+ get: function () {
59
+ if (this.closed) {
60
+ return 2; // CLOSED
61
+ }
62
+ // Parked-while-hidden reads as CONNECTING: not closed, will connect on visibility.
63
+ return this.source ? this.source.readyState : 0;
64
+ },
65
+ enumerable: false,
66
+ configurable: true
67
+ });
68
+ VisibilityGatedEventSource.prototype.connect = function () {
69
+ var _this = this;
70
+ var source = new nativeEventSource(this.url);
71
+ // Forward through the gate's handler slots so handlers the client assigned once keep
72
+ // firing on every recreated connection.
73
+ source.onopen = function (event) { return _this.onopen && _this.onopen(event); };
74
+ source.onerror = function (event) { return _this.onerror && _this.onerror(event); };
75
+ source.onmessage = function (event) { return _this.onmessage && _this.onmessage(event); };
76
+ this.source = source;
77
+ };
78
+ VisibilityGatedEventSource.prototype.disconnect = function () {
79
+ if (this.source) {
80
+ this.source.close();
81
+ this.source = null;
82
+ }
83
+ };
84
+ return VisibilityGatedEventSource;
85
+ }());
86
+ exports.VisibilityGatedEventSource = VisibilityGatedEventSource;
87
+ var hmrUrlMarker = '__webpack_hmr';
88
+ var nativeEventSource;
89
+ // Install the patch at module load (this entry precedes the HMR client in the bundle).
90
+ // Only the HMR stream URL is gated; every other EventSource on the page is untouched.
91
+ (function () {
92
+ if (typeof window === 'undefined' || !window.EventSource || typeof document.visibilityState !== 'string') {
93
+ return; // no browser, no EventSource, or no Page Visibility API — leave native behavior alone
94
+ }
95
+ nativeEventSource = window.EventSource;
96
+ function PatchedEventSource(url, init) {
97
+ return (String(url).indexOf(hmrUrlMarker) !== -1
98
+ ? new VisibilityGatedEventSource(String(url))
99
+ : new nativeEventSource(url, init));
100
+ }
101
+ // Non-HMR instances are genuine natives; sharing the native prototype keeps their
102
+ // `instanceof EventSource` true, and the state constants ride along for code that reads
103
+ // them off the global.
104
+ PatchedEventSource.prototype = nativeEventSource.prototype;
105
+ PatchedEventSource.CONNECTING = nativeEventSource.CONNECTING;
106
+ PatchedEventSource.OPEN = nativeEventSource.OPEN;
107
+ PatchedEventSource.CLOSED = nativeEventSource.CLOSED;
108
+ window.EventSource = PatchedEventSource;
109
+ })();
110
+ //# sourceMappingURL=VisibilityGatedEventSource.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"VisibilityGatedEventSource.js","sourceRoot":"","sources":["../../src/VisibilityGatedEventSource.ts"],"names":[],"mappings":"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"}
@@ -192,9 +192,11 @@ function initializeHotReloading(app, config) {
192
192
  var webpack = appRequire('webpack');
193
193
  var webpackDevMiddleware = appRequire('webpack-dev-middleware');
194
194
  var webpackHotMiddleware = appRequire('webpack-hot-middleware');
195
- // Same port resolution start() uses (SERVER_PORT wins), +1 — the stream's own origin.
195
+ // Same port resolution start() uses (SERVER_PORT wins), +100 — the stream's own origin.
196
+ // +1 would collide with a sibling workspace: local workspaces run their apps on
197
+ // consecutive ports (3002, 3004, ...); +100 maps 3002→3102, 3004→3104, clear of all.
196
198
  var appPort = process.env.SERVER_PORT ? parseInt(process.env.SERVER_PORT) : config.port ? config.port : 3000;
197
- var hmrPort = Number(process.env.HMR_PORT) || appPort + 1;
199
+ var hmrPort = Number(process.env.HMR_PORT) || appPort + 100;
198
200
  var devConfig = createWebpackConfigOverlay(config, webpack, appRequire, hmrPort);
199
201
  var compiler = webpack(devConfig);
200
202
  // Every completed compile is recorded (for the `?v=<hash>` script-tag stamp + /dev/build-info)
@@ -221,7 +223,7 @@ function initializeHotReloading(app, config) {
221
223
  headers: { 'Cache-Control': 'no-cache' },
222
224
  });
223
225
  app.use(devMiddleware);
224
- // The HMR EVENT STREAM lives on its OWN ORIGIN (port + 1, or HMR_PORT), never the app's.
226
+ // The HMR EVENT STREAM lives on its OWN ORIGIN (port + 100, or HMR_PORT), never the app's.
225
227
  // Each open dev tab holds one persistent SSE connection for hot updates, and SSE counts
226
228
  // against Chrome's 6-connections-per-origin HTTP/1.1 limit — with the stream on the app
227
229
  // origin, ~6 accumulated tabs (agent-driven panes accumulate them fast) silently exhausted
@@ -270,9 +272,16 @@ function createWebpackConfigOverlay(config, webpack, appRequire, hmrPort) {
270
272
  // Use an ABSOLUTE path to the HMR client from the consumer's node_modules. The `path` query
271
273
  // points the client's EventSource at the stream's OWN ORIGIN (see the sibling listener in
272
274
  // initializeHotReloading) so dev tabs never spend app-origin connection slots on SSE.
275
+ // The visibility gate (compiled by this package's own build) must come FIRST: its
276
+ // EventSource patch has to be installed before the HMR client connects, so only VISIBLE
277
+ // tabs hold a stream slot (hidden tabs drop theirs and re-sync on reconnect).
278
+ var visibilityGateAbs = require.resolve('./VisibilityGatedEventSource');
273
279
  var hmrClientAbs = appRequire.resolve('webpack-hot-middleware/client');
274
- var hmrClientEntry = "".concat(hmrClientAbs, "?path=http://localhost:").concat(hmrPort, "/__webpack_hmr");
275
- devConfig.entry = { app: [hmrClientEntry, config.staticContent.appEntryPath] };
280
+ // reload=true: when hot-apply can't complete (typically a tab that sat hidden across a
281
+ // server restart the new process has none of the old hot-update manifests), the client
282
+ // falls back to a full reload instead of warning and silently serving a stale bundle.
283
+ var hmrClientEntry = "".concat(hmrClientAbs, "?path=http://localhost:").concat(hmrPort, "/__webpack_hmr&reload=true");
284
+ devConfig.entry = { app: [visibilityGateAbs, hmrClientEntry, config.staticContent.appEntryPath] };
276
285
  // Ensure bundles are served from memory at /static/, and set a concrete path for plugins that read it.
277
286
  devConfig.output = __assign(__assign({}, (baseConfig.output || {})), { publicPath: staticContentPath, path: config.staticContent.staticContentDir });
278
287
  // Make loaders (e.g., ts-loader) resolve from the consumer's node_modules
@@ -1 +1 @@
1
- {"version":3,"file":"startServer.js","sourceRoot":"","sources":["../../src/startServer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"startServer.js","sourceRoot":"","sources":["../../src/startServer.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@proteinjs/server",
3
- "version": "3.1.13",
3
+ "version": "3.2.0",
4
4
  "description": "A server impl",
5
5
  "publishConfig": {
6
6
  "access": "public"
@@ -60,5 +60,5 @@
60
60
  },
61
61
  "main": "./dist/generated/index.js",
62
62
  "types": "./dist/generated/index.d.ts",
63
- "gitHead": "0ceadd4c29fa2637c1f35a224929924613688d2d"
63
+ "gitHead": "b443bc14fc6840960e499861f7810aa66ccc1666"
64
64
  }
@@ -10,6 +10,13 @@ const getGlobal = (): any => {
10
10
  return globalThis;
11
11
  };
12
12
 
13
+ // This package's socket.io is THE socket.io: consumers that type against the server it hosts
14
+ // (namespaces bound at startup, sockets in handlers) import these re-exports instead of
15
+ // declaring their own socket.io dependency — a second declaration forks the install into two
16
+ // copies whose identical-looking types are mutually unassignable (this package pins an exact
17
+ // version, so any caret range in a consumer resolves a different copy at install time).
18
+ export type { Namespace as SocketIONamespace, Socket as SocketIOSocket } from 'socket.io';
19
+
13
20
  export interface ExtendedIncomingMessage extends IncomingMessage {
14
21
  sessionID?: string;
15
22
  user?: string;
@@ -0,0 +1,109 @@
1
+ /**
2
+ * Dev-only webpack entry that VISIBILITY-GATES the HMR event stream: only visible tabs hold
3
+ * an SSE connection. Each dev tab's hot-update stream occupies one of the browser's 6
4
+ * HTTP/1.1 connection slots to the HMR origin for as long as the tab lives, so accumulated
5
+ * hidden tabs (agent-driven panes especially) can exhaust the pool and starve newly visible
6
+ * tabs of live reload. Closing the stream while hidden frees the slot; catch-up on
7
+ * re-connect is free because webpack-hot-middleware's server publishes its latest build
8
+ * stats ('sync') to every new subscriber, and the stock client hot-applies from that.
9
+ *
10
+ * This file is compiled by the normal package build and injected by absolute dist path as a
11
+ * webpack entry AHEAD of webpack-hot-middleware/client (see createWebpackConfigOverlay), so
12
+ * the EventSource patch below is installed before the client connects. It executes inside
13
+ * the browser bundle: keep it free of imports and Node globals (`process` in particular —
14
+ * webpack's DefinePlugin rewrites `process.env` references).
15
+ */
16
+
17
+ /**
18
+ * Drop-in for the EventSource the HMR client holds. The client keeps its instance for the
19
+ * page lifetime, so a plain EventSource can't be closed and reopened on visibility changes
20
+ * without the client seeing a dead connection; this gate owns the underlying native
21
+ * connection and creates/destroys it as the tab shows/hides, while the client's handler
22
+ * assignments (onopen/onerror/onmessage — the only surface webpack-hot-middleware/client
23
+ * uses, plus close()) keep working across recreations because they live here, not on the
24
+ * connection.
25
+ */
26
+ export class VisibilityGatedEventSource {
27
+ onopen: ((event: Event) => unknown) | null = null;
28
+ onerror: ((event: Event) => unknown) | null = null;
29
+ onmessage: ((event: MessageEvent) => unknown) | null = null;
30
+
31
+ private source: EventSource | null = null;
32
+ private closed = false;
33
+
34
+ constructor(private readonly url: string) {
35
+ document.addEventListener('visibilitychange', this.handleVisibilityChange);
36
+ // Hidden at construction (the client re-inits after its own disconnect timeout): stay
37
+ // parked with no connection until the tab becomes visible.
38
+ if (document.visibilityState === 'visible') {
39
+ this.connect();
40
+ }
41
+ }
42
+
43
+ close(): void {
44
+ this.closed = true;
45
+ document.removeEventListener('visibilitychange', this.handleVisibilityChange);
46
+ this.disconnect();
47
+ }
48
+
49
+ get readyState(): number {
50
+ if (this.closed) {
51
+ return 2; // CLOSED
52
+ }
53
+ // Parked-while-hidden reads as CONNECTING: not closed, will connect on visibility.
54
+ return this.source ? this.source.readyState : 0;
55
+ }
56
+
57
+ private readonly handleVisibilityChange = (): void => {
58
+ if (document.visibilityState === 'hidden') {
59
+ this.disconnect();
60
+ } else if (!this.source) {
61
+ this.connect();
62
+ }
63
+ };
64
+
65
+ private connect(): void {
66
+ const source = new nativeEventSource(this.url);
67
+ // Forward through the gate's handler slots so handlers the client assigned once keep
68
+ // firing on every recreated connection.
69
+ source.onopen = (event) => this.onopen && this.onopen(event);
70
+ source.onerror = (event) => this.onerror && this.onerror(event);
71
+ source.onmessage = (event) => this.onmessage && this.onmessage(event);
72
+ this.source = source;
73
+ }
74
+
75
+ private disconnect(): void {
76
+ if (this.source) {
77
+ this.source.close();
78
+ this.source = null;
79
+ }
80
+ }
81
+ }
82
+
83
+ const hmrUrlMarker = '__webpack_hmr';
84
+ let nativeEventSource: typeof EventSource;
85
+
86
+ // Install the patch at module load (this entry precedes the HMR client in the bundle).
87
+ // Only the HMR stream URL is gated; every other EventSource on the page is untouched.
88
+ (() => {
89
+ if (typeof window === 'undefined' || !window.EventSource || typeof document.visibilityState !== 'string') {
90
+ return; // no browser, no EventSource, or no Page Visibility API — leave native behavior alone
91
+ }
92
+
93
+ nativeEventSource = window.EventSource;
94
+ function PatchedEventSource(this: unknown, url: string | URL, init?: EventSourceInit): EventSource {
95
+ return (
96
+ String(url).indexOf(hmrUrlMarker) !== -1
97
+ ? new VisibilityGatedEventSource(String(url))
98
+ : new nativeEventSource(url, init)
99
+ ) as EventSource;
100
+ }
101
+ // Non-HMR instances are genuine natives; sharing the native prototype keeps their
102
+ // `instanceof EventSource` true, and the state constants ride along for code that reads
103
+ // them off the global.
104
+ PatchedEventSource.prototype = nativeEventSource.prototype;
105
+ (PatchedEventSource as any).CONNECTING = nativeEventSource.CONNECTING;
106
+ (PatchedEventSource as any).OPEN = nativeEventSource.OPEN;
107
+ (PatchedEventSource as any).CLOSED = nativeEventSource.CLOSED;
108
+ window.EventSource = PatchedEventSource as unknown as typeof EventSource;
109
+ })();
@@ -122,9 +122,11 @@ function initializeHotReloading(app: express.Express, config: ServerConfig): Pro
122
122
  const webpackDevMiddleware = appRequire('webpack-dev-middleware');
123
123
  const webpackHotMiddleware = appRequire('webpack-hot-middleware');
124
124
 
125
- // Same port resolution start() uses (SERVER_PORT wins), +1 — the stream's own origin.
125
+ // Same port resolution start() uses (SERVER_PORT wins), +100 — the stream's own origin.
126
+ // +1 would collide with a sibling workspace: local workspaces run their apps on
127
+ // consecutive ports (3002, 3004, ...); +100 maps 3002→3102, 3004→3104, clear of all.
126
128
  const appPort = process.env.SERVER_PORT ? parseInt(process.env.SERVER_PORT) : config.port ? config.port : 3000;
127
- const hmrPort = Number(process.env.HMR_PORT) || appPort + 1;
129
+ const hmrPort = Number(process.env.HMR_PORT) || appPort + 100;
128
130
  const devConfig = createWebpackConfigOverlay(config, webpack, appRequire, hmrPort);
129
131
 
130
132
  const compiler = webpack(devConfig);
@@ -153,7 +155,7 @@ function initializeHotReloading(app: express.Express, config: ServerConfig): Pro
153
155
  });
154
156
  app.use(devMiddleware);
155
157
 
156
- // The HMR EVENT STREAM lives on its OWN ORIGIN (port + 1, or HMR_PORT), never the app's.
158
+ // The HMR EVENT STREAM lives on its OWN ORIGIN (port + 100, or HMR_PORT), never the app's.
157
159
  // Each open dev tab holds one persistent SSE connection for hot updates, and SSE counts
158
160
  // against Chrome's 6-connections-per-origin HTTP/1.1 limit — with the stream on the app
159
161
  // origin, ~6 accumulated tabs (agent-driven panes accumulate them fast) silently exhausted
@@ -207,9 +209,16 @@ function createWebpackConfigOverlay(config: ServerConfig, webpack: any, appRequi
207
209
  // Use an ABSOLUTE path to the HMR client from the consumer's node_modules. The `path` query
208
210
  // points the client's EventSource at the stream's OWN ORIGIN (see the sibling listener in
209
211
  // initializeHotReloading) so dev tabs never spend app-origin connection slots on SSE.
212
+ // The visibility gate (compiled by this package's own build) must come FIRST: its
213
+ // EventSource patch has to be installed before the HMR client connects, so only VISIBLE
214
+ // tabs hold a stream slot (hidden tabs drop theirs and re-sync on reconnect).
215
+ const visibilityGateAbs = require.resolve('./VisibilityGatedEventSource');
210
216
  const hmrClientAbs = appRequire.resolve('webpack-hot-middleware/client');
211
- const hmrClientEntry = `${hmrClientAbs}?path=http://localhost:${hmrPort}/__webpack_hmr`;
212
- devConfig.entry = { app: [hmrClientEntry, config.staticContent!.appEntryPath] };
217
+ // reload=true: when hot-apply can't complete (typically a tab that sat hidden across a
218
+ // server restart the new process has none of the old hot-update manifests), the client
219
+ // falls back to a full reload instead of warning and silently serving a stale bundle.
220
+ const hmrClientEntry = `${hmrClientAbs}?path=http://localhost:${hmrPort}/__webpack_hmr&reload=true`;
221
+ devConfig.entry = { app: [visibilityGateAbs, hmrClientEntry, config.staticContent!.appEntryPath] };
213
222
 
214
223
  // Ensure bundles are served from memory at /static/, and set a concrete path for plugins that read it.
215
224
  devConfig.output = {