xypriss 9.13.3 → 9.13.5
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/cjs/src/plugins/const/XyprissTempDir.js +44 -115
- package/dist/cjs/src/plugins/const/XyprissTempDir.js.map +1 -1
- package/dist/cjs/src/server/FastServer/ShutdownManager.js +2 -2
- package/dist/cjs/src/server/FastServer/ShutdownManager.js.map +1 -1
- package/dist/cjs/src/server/FastServer/index.js +4 -3
- package/dist/cjs/src/server/FastServer/index.js.map +1 -1
- package/dist/cjs/src/server/ServerFactory.js +27 -3
- package/dist/cjs/src/server/ServerFactory.js.map +1 -1
- package/dist/cjs/src/server/components/multi-server/MultiServerApp.js +247 -130
- package/dist/cjs/src/server/components/multi-server/MultiServerApp.js.map +1 -1
- package/dist/cjs/src/server/components/multi-server/MultiServerManager.js +120 -25
- package/dist/cjs/src/server/components/multi-server/MultiServerManager.js.map +1 -1
- package/dist/cjs/src/server/components/multi-server/XMSStartupUI.js +320 -0
- package/dist/cjs/src/server/components/multi-server/XMSStartupUI.js.map +1 -0
- package/dist/cjs/src/server/const/default.js +9 -3
- package/dist/cjs/src/server/const/default.js.map +1 -1
- package/dist/cjs/src/server/core/StartupProcessor.js +42 -48
- package/dist/cjs/src/server/core/StartupProcessor.js.map +1 -1
- package/dist/cjs/src/server/core/XHSCBridge/EngineManager.js +5 -4
- package/dist/cjs/src/server/core/XHSCBridge/EngineManager.js.map +1 -1
- package/dist/cjs/src/server/core/XHSCBridge/LogProcessor.js +32 -1
- package/dist/cjs/src/server/core/XHSCBridge/LogProcessor.js.map +1 -1
- package/dist/cjs/src/server/core/XHSCBridge/cmd/buildCoreArgs.js +16 -1
- package/dist/cjs/src/server/core/XHSCBridge/cmd/buildCoreArgs.js.map +1 -1
- package/dist/cjs/src/server/core/XHSCBridge/index.js +3 -2
- package/dist/cjs/src/server/core/XHSCBridge/index.js.map +1 -1
- package/dist/cjs/src/server/core/XyLifecycleManager.js +2 -2
- package/dist/cjs/src/server/core/XyLifecycleManager.js.map +1 -1
- package/dist/cjs/src/server/core/XyServerCreator.js +5 -0
- package/dist/cjs/src/server/core/XyServerCreator.js.map +1 -1
- package/dist/cjs/src/server/utils/PortManager.js +120 -157
- package/dist/cjs/src/server/utils/PortManager.js.map +1 -1
- package/dist/cjs/src/server/utils/reconcilePortConflictResolution.js +79 -0
- package/dist/cjs/src/server/utils/reconcilePortConflictResolution.js.map +1 -0
- package/dist/cjs/src/shared/logger/Logger.js +59 -1
- package/dist/cjs/src/shared/logger/Logger.js.map +1 -1
- package/dist/cjs/src/xhsc/EnvApi.js +7 -0
- package/dist/cjs/src/xhsc/EnvApi.js.map +1 -1
- package/dist/cjs/src/xhsc/PathApi.js +11 -1
- package/dist/cjs/src/xhsc/PathApi.js.map +1 -1
- package/dist/cjs/src/xhsc/api/env/XessIpcClient.js +76 -27
- package/dist/cjs/src/xhsc/api/env/XessIpcClient.js.map +1 -1
- package/dist/cjs/src/xhsc/cluster/XHSCWorker.js +2 -2
- package/dist/cjs/src/xhsc/cluster/XHSCWorker.js.map +1 -1
- package/dist/cjs/src/xhsc/fs/TempFileManager.js +0 -3
- package/dist/cjs/src/xhsc/fs/TempFileManager.js.map +1 -1
- package/dist/cjs/src/xhsc/ipc/XHSCDirectIPC.js +2 -2
- package/dist/cjs/src/xhsc/ipc/XHSCDirectIPC.js.map +1 -1
- package/dist/esm/src/plugins/const/XyprissTempDir.js +44 -115
- package/dist/esm/src/plugins/const/XyprissTempDir.js.map +1 -1
- package/dist/esm/src/server/FastServer/ShutdownManager.js +2 -2
- package/dist/esm/src/server/FastServer/ShutdownManager.js.map +1 -1
- package/dist/esm/src/server/FastServer/index.js +4 -3
- package/dist/esm/src/server/FastServer/index.js.map +1 -1
- package/dist/esm/src/server/ServerFactory.js +27 -3
- package/dist/esm/src/server/ServerFactory.js.map +1 -1
- package/dist/esm/src/server/components/multi-server/MultiServerApp.js +247 -130
- package/dist/esm/src/server/components/multi-server/MultiServerApp.js.map +1 -1
- package/dist/esm/src/server/components/multi-server/MultiServerManager.js +120 -25
- package/dist/esm/src/server/components/multi-server/MultiServerManager.js.map +1 -1
- package/dist/esm/src/server/components/multi-server/XMSStartupUI.js +318 -0
- package/dist/esm/src/server/components/multi-server/XMSStartupUI.js.map +1 -0
- package/dist/esm/src/server/const/default.js +9 -3
- package/dist/esm/src/server/const/default.js.map +1 -1
- package/dist/esm/src/server/core/StartupProcessor.js +43 -49
- package/dist/esm/src/server/core/StartupProcessor.js.map +1 -1
- package/dist/esm/src/server/core/XHSCBridge/EngineManager.js +5 -4
- package/dist/esm/src/server/core/XHSCBridge/EngineManager.js.map +1 -1
- package/dist/esm/src/server/core/XHSCBridge/LogProcessor.js +32 -1
- package/dist/esm/src/server/core/XHSCBridge/LogProcessor.js.map +1 -1
- package/dist/esm/src/server/core/XHSCBridge/cmd/buildCoreArgs.js +16 -1
- package/dist/esm/src/server/core/XHSCBridge/cmd/buildCoreArgs.js.map +1 -1
- package/dist/esm/src/server/core/XHSCBridge/index.js +3 -2
- package/dist/esm/src/server/core/XHSCBridge/index.js.map +1 -1
- package/dist/esm/src/server/core/XyLifecycleManager.js +2 -2
- package/dist/esm/src/server/core/XyLifecycleManager.js.map +1 -1
- package/dist/esm/src/server/core/XyServerCreator.js +5 -0
- package/dist/esm/src/server/core/XyServerCreator.js.map +1 -1
- package/dist/esm/src/server/utils/PortManager.js +120 -158
- package/dist/esm/src/server/utils/PortManager.js.map +1 -1
- package/dist/esm/src/server/utils/reconcilePortConflictResolution.js +77 -0
- package/dist/esm/src/server/utils/reconcilePortConflictResolution.js.map +1 -0
- package/dist/esm/src/shared/logger/Logger.js +59 -1
- package/dist/esm/src/shared/logger/Logger.js.map +1 -1
- package/dist/esm/src/xhsc/EnvApi.js +7 -0
- package/dist/esm/src/xhsc/EnvApi.js.map +1 -1
- package/dist/esm/src/xhsc/PathApi.js +12 -2
- package/dist/esm/src/xhsc/PathApi.js.map +1 -1
- package/dist/esm/src/xhsc/api/env/XessIpcClient.js +76 -27
- package/dist/esm/src/xhsc/api/env/XessIpcClient.js.map +1 -1
- package/dist/esm/src/xhsc/cluster/XHSCWorker.js +2 -2
- package/dist/esm/src/xhsc/cluster/XHSCWorker.js.map +1 -1
- package/dist/esm/src/xhsc/fs/TempFileManager.js +0 -3
- package/dist/esm/src/xhsc/fs/TempFileManager.js.map +1 -1
- package/dist/esm/src/xhsc/ipc/XHSCDirectIPC.js +2 -2
- package/dist/esm/src/xhsc/ipc/XHSCDirectIPC.js.map +1 -1
- package/dist/index.d.ts +59 -5
- package/package.json +1 -1
- package/dist/cjs/src/server/utils/forceClosePort.js +0 -332
- package/dist/cjs/src/server/utils/forceClosePort.js.map +0 -1
- package/dist/esm/src/server/utils/forceClosePort.js +0 -330
- package/dist/esm/src/server/utils/forceClosePort.js.map +0 -1
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var xyprissSecurity = require('xypriss-security');
|
|
4
3
|
var getSysApi = require('./getSysApi.js');
|
|
5
4
|
|
|
6
5
|
/**
|
|
@@ -36,19 +35,6 @@ function createXyprissTempDir(_p) {
|
|
|
36
35
|
}
|
|
37
36
|
return normalisedPath;
|
|
38
37
|
}
|
|
39
|
-
let _instanceId = null;
|
|
40
|
-
/**
|
|
41
|
-
* Returns a unique 8-character instance identifier (hash) for the active server process.
|
|
42
|
-
* Memoized once per process run.
|
|
43
|
-
*/
|
|
44
|
-
function getInstanceId() {
|
|
45
|
-
if (_instanceId !== null) {
|
|
46
|
-
return _instanceId;
|
|
47
|
-
}
|
|
48
|
-
const raw = `${process.pid}-${Date.now()}-${xyprissSecurity.getRandomBytes(8).toString("hex")}`;
|
|
49
|
-
_instanceId = xyprissSecurity.Hash.create(Buffer.from(raw), { algorithm: "sha256" }).toString("hex").slice(0, 8);
|
|
50
|
-
return _instanceId;
|
|
51
|
-
}
|
|
52
38
|
/**
|
|
53
39
|
* **Session Temp Directory (singleton)**
|
|
54
40
|
*
|
|
@@ -60,79 +46,6 @@ function getInstanceId() {
|
|
|
60
46
|
* session share the same isolated scratch space.
|
|
61
47
|
*/
|
|
62
48
|
let _sessionTmpDir = null;
|
|
63
|
-
/**
|
|
64
|
-
* Safely purges orphan session folders from past terminated/dead processes
|
|
65
|
-
* without touching active server instances.
|
|
66
|
-
*/
|
|
67
|
-
function sweepOrphanXUserTmpDirs() {
|
|
68
|
-
// Under libXESS / xfpm supervision, the parent CLI supervisor owns the session directory lifecycle.
|
|
69
|
-
if (typeof process !== "undefined" &&
|
|
70
|
-
(process.env?.XYPRISS_USER_TMP ||
|
|
71
|
-
process.env?.XESS_TEMP_DIR ||
|
|
72
|
-
process.env?.LIBXESS_ACTIVE)) {
|
|
73
|
-
return;
|
|
74
|
-
}
|
|
75
|
-
try {
|
|
76
|
-
const sys = getSysApi.getSysApi();
|
|
77
|
-
if (!sys)
|
|
78
|
-
return;
|
|
79
|
-
const xuserRoot = sys.path.join(getXyprissTempDir(), "xuser");
|
|
80
|
-
if (!sys.fs.exist(xuserRoot))
|
|
81
|
-
return;
|
|
82
|
-
const entries = sys.fs.ls(xuserRoot);
|
|
83
|
-
for (const entry of entries) {
|
|
84
|
-
const folderName = typeof entry === "string" ? entry : entry[0];
|
|
85
|
-
const fullPath = sys.path.join(xuserRoot, folderName);
|
|
86
|
-
// Skip current active process session temp directory
|
|
87
|
-
if (_sessionTmpDir && sys.path.resolve(fullPath) === sys.path.resolve(_sessionTmpDir)) {
|
|
88
|
-
continue;
|
|
89
|
-
}
|
|
90
|
-
// Never sweep directories containing libXESS IPC sockets
|
|
91
|
-
const xessSub = sys.path.join(fullPath, "xess");
|
|
92
|
-
if (sys.fs.exist(xessSub)) {
|
|
93
|
-
try {
|
|
94
|
-
const files = sys.fs.ls(xessSub);
|
|
95
|
-
const hasSock = files.some((f) => {
|
|
96
|
-
const name = typeof f === "string" ? f : f[0];
|
|
97
|
-
return typeof name === "string" && name.endsWith(".sock");
|
|
98
|
-
});
|
|
99
|
-
if (hasSock)
|
|
100
|
-
continue;
|
|
101
|
-
}
|
|
102
|
-
catch { }
|
|
103
|
-
}
|
|
104
|
-
const pidFile = sys.path.join(fullPath, ".pid");
|
|
105
|
-
let isAlive = false;
|
|
106
|
-
if (sys.fs.exist(pidFile)) {
|
|
107
|
-
try {
|
|
108
|
-
const pidRaw = sys.fs.readSync(pidFile);
|
|
109
|
-
const pidContent = String(pidRaw || "").trim();
|
|
110
|
-
const pid = parseInt(pidContent, 10);
|
|
111
|
-
if (!isNaN(pid) && pid > 0) {
|
|
112
|
-
try {
|
|
113
|
-
isAlive = process.kill(pid, 0);
|
|
114
|
-
}
|
|
115
|
-
catch (err) {
|
|
116
|
-
isAlive = err.code === "EPERM";
|
|
117
|
-
}
|
|
118
|
-
}
|
|
119
|
-
}
|
|
120
|
-
catch { }
|
|
121
|
-
}
|
|
122
|
-
// Do not delete temp directories of active running instances!
|
|
123
|
-
if (isAlive) {
|
|
124
|
-
continue;
|
|
125
|
-
}
|
|
126
|
-
if (sys.fs.exist(fullPath)) {
|
|
127
|
-
try {
|
|
128
|
-
sys.fs.rm(fullPath, { force: true });
|
|
129
|
-
}
|
|
130
|
-
catch { }
|
|
131
|
-
}
|
|
132
|
-
}
|
|
133
|
-
}
|
|
134
|
-
catch { }
|
|
135
|
-
}
|
|
136
49
|
/**
|
|
137
50
|
* Returns the process-scoped user temp directory path for THIS active server instance.
|
|
138
51
|
*
|
|
@@ -146,39 +59,47 @@ function generateXUserTmpDir() {
|
|
|
146
59
|
return _sessionTmpDir;
|
|
147
60
|
}
|
|
148
61
|
const sys = getSysApi.getSysApi();
|
|
149
|
-
// 1.
|
|
150
|
-
const envSession =
|
|
151
|
-
|
|
152
|
-
|
|
62
|
+
// 1. Adopt the session directory allocated exclusively by the libProc supervisor
|
|
63
|
+
const envSession = sys?.__env__?.get("XYPRISS_USER_TMP") ||
|
|
64
|
+
sys?.__env__?.get("XESS_SESSION_TMP") ||
|
|
65
|
+
(typeof process !== "undefined"
|
|
66
|
+
? (process.env?.XYPRISS_USER_TMP || process.env?.XESS_SESSION_TMP)
|
|
67
|
+
: undefined);
|
|
153
68
|
if (envSession && typeof envSession === "string") {
|
|
154
69
|
_sessionTmpDir = envSession;
|
|
155
|
-
if (!sys.fs.exist(_sessionTmpDir)) {
|
|
70
|
+
if (sys?.fs && !sys.fs.exist(_sessionTmpDir)) {
|
|
156
71
|
sys.fs.mkdir(_sessionTmpDir, { parents: true });
|
|
157
72
|
}
|
|
158
|
-
try {
|
|
159
|
-
const pidFile = sys.path.join(_sessionTmpDir, ".pid");
|
|
160
|
-
if (!sys.fs.exist(pidFile)) {
|
|
161
|
-
sys.fs.writeFileSync(pidFile, String(process.pid));
|
|
162
|
-
}
|
|
163
|
-
}
|
|
164
|
-
catch { }
|
|
165
73
|
return _sessionTmpDir;
|
|
166
74
|
}
|
|
167
|
-
//
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
75
|
+
// No supervisor session provisioned by libProc: unconfined execution has no valid session
|
|
76
|
+
return "";
|
|
77
|
+
}
|
|
78
|
+
/**
|
|
79
|
+
* Returns the unique 8-character session hash ID for the active server instance.
|
|
80
|
+
* Delegated exclusively to the libProc supervisor (Single Source of Truth).
|
|
81
|
+
*/
|
|
82
|
+
function getSessionHash() {
|
|
83
|
+
const sys = getSysApi.getSysApi();
|
|
84
|
+
const envHash = sys?.__env__?.get("XYPRISS_SESSION_HASH") ||
|
|
85
|
+
(typeof process !== "undefined" ? process.env?.XYPRISS_SESSION_HASH : undefined);
|
|
86
|
+
if (envHash && typeof envHash === "string") {
|
|
87
|
+
return envHash;
|
|
172
88
|
}
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
89
|
+
if (_sessionTmpDir) {
|
|
90
|
+
if (sys?.path) {
|
|
91
|
+
return sys.path.basename(_sessionTmpDir);
|
|
92
|
+
}
|
|
93
|
+
const parts = _sessionTmpDir.split(/[/\\]/).filter(Boolean);
|
|
94
|
+
return parts[parts.length - 1] || "";
|
|
177
95
|
}
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
96
|
+
return "";
|
|
97
|
+
}
|
|
98
|
+
/**
|
|
99
|
+
* Backward-compatibility alias for getSessionHash().
|
|
100
|
+
*/
|
|
101
|
+
function getInstanceId() {
|
|
102
|
+
return getSessionHash();
|
|
182
103
|
}
|
|
183
104
|
/**
|
|
184
105
|
* **Scoped libXESS Temp Directory**
|
|
@@ -190,9 +111,17 @@ function generateXUserTmpDir() {
|
|
|
190
111
|
*/
|
|
191
112
|
function getXessTempDir() {
|
|
192
113
|
const sys = getSysApi.getSysApi();
|
|
114
|
+
const envXess = sys?.__env__?.get("XESS_TEMP_DIR") ||
|
|
115
|
+
(typeof process !== "undefined" ? process.env?.XESS_TEMP_DIR : undefined);
|
|
116
|
+
if (envXess && typeof envXess === "string") {
|
|
117
|
+
return envXess;
|
|
118
|
+
}
|
|
193
119
|
const sessionDir = generateXUserTmpDir();
|
|
194
|
-
|
|
195
|
-
|
|
120
|
+
if (!sessionDir) {
|
|
121
|
+
return "";
|
|
122
|
+
}
|
|
123
|
+
const xessDir = sys?.path ? sys.path.join(sessionDir, "xess") : `${sessionDir}/xess`;
|
|
124
|
+
if (sys?.fs && !sys.fs.exist(xessDir)) {
|
|
196
125
|
sys.fs.mkdir(xessDir, { parents: true });
|
|
197
126
|
}
|
|
198
127
|
return xessDir;
|
|
@@ -201,7 +130,7 @@ function getXessTempDir() {
|
|
|
201
130
|
exports.createXyprissTempDir = createXyprissTempDir;
|
|
202
131
|
exports.generateXUserTmpDir = generateXUserTmpDir;
|
|
203
132
|
exports.getInstanceId = getInstanceId;
|
|
133
|
+
exports.getSessionHash = getSessionHash;
|
|
204
134
|
exports.getXessTempDir = getXessTempDir;
|
|
205
135
|
exports.getXyprissTempDir = getXyprissTempDir;
|
|
206
|
-
exports.sweepOrphanXUserTmpDirs = sweepOrphanXUserTmpDirs;
|
|
207
136
|
//# sourceMappingURL=XyprissTempDir.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"XyprissTempDir.js","sources":["../../../../../src/plugins/const/XyprissTempDir.ts"],"sourcesContent":[null],"names":["getSysApi"
|
|
1
|
+
{"version":3,"file":"XyprissTempDir.js","sources":["../../../../../src/plugins/const/XyprissTempDir.ts"],"sourcesContent":[null],"names":["getSysApi"],"mappings":"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"}
|
|
@@ -23,9 +23,9 @@ class ShutdownManager {
|
|
|
23
23
|
process.exit(1);
|
|
24
24
|
}
|
|
25
25
|
};
|
|
26
|
+
// Signal arbitration and process group lifecycle are delegated to libproc supervisor.
|
|
27
|
+
// Node listens only to SIGTERM for cascading graceful shutdown.
|
|
26
28
|
process.on("SIGTERM", () => gracefulShutdown("SIGTERM"));
|
|
27
|
-
process.on("SIGINT", () => gracefulShutdown("SIGINT"));
|
|
28
|
-
process.on("SIGHUP", () => gracefulShutdown("SIGHUP"));
|
|
29
29
|
process.on("uncaughtException", (error) => {
|
|
30
30
|
const msg = error?.message || String(error);
|
|
31
31
|
const stack = error?.stack || "";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ShutdownManager.js","sources":["../../../../../src/server/FastServer/ShutdownManager.ts"],"sourcesContent":[null],"names":["SecureInMemoryCache"],"mappings":";;;;MAMa,eAAe,CAAA;AACxB,IAAA,WAAA,CACY,GAAe,EACf,MAAc,EACd,gBAAoC,EACpC,sBAEP,EAAA;QALO,IAAA,CAAA,GAAG,GAAH,GAAG;QACH,IAAA,CAAA,MAAM,GAAN,MAAM;QACN,IAAA,CAAA,gBAAgB,GAAhB,gBAAgB;QAChB,IAAA,CAAA,sBAAsB,GAAtB,sBAAsB;IAG/B;AAEI,IAAA,qBAAqB,CAAC,YAAiC,EAAA;AAC1D,QAAA,MAAM,gBAAgB,GAAG,OAAO,MAAc,KAAI;YAC9C,IAAI,CAAC,MAAM,CAAC,KAAK,CACb,QAAQ,EACR,CAAA,wDAAA,EAA2D,MAAM,CAAA,CAAA,CAAG,CACvE;AACD,YAAA,IAAI;gBACA,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,EAAE,wBAAwB,CAAC;gBACrD,MAAM,YAAY,EAAE;gBACpB,IAAI,CAAC,MAAM,CAAC,KAAK,CACb,QAAQ,EACR,oCAAoC,CACvC;AACD,gBAAA,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;YACnB;YAAE,OAAO,KAAK,EAAE;gBACZ,IAAI,CAAC,MAAM,CAAC,KAAK,CACb,QAAQ,EACR,iCAAiC,EACjC,KAAK,CACR;AACD,gBAAA,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;YACnB;AACJ,QAAA,CAAC
|
|
1
|
+
{"version":3,"file":"ShutdownManager.js","sources":["../../../../../src/server/FastServer/ShutdownManager.ts"],"sourcesContent":[null],"names":["SecureInMemoryCache"],"mappings":";;;;MAMa,eAAe,CAAA;AACxB,IAAA,WAAA,CACY,GAAe,EACf,MAAc,EACd,gBAAoC,EACpC,sBAEP,EAAA;QALO,IAAA,CAAA,GAAG,GAAH,GAAG;QACH,IAAA,CAAA,MAAM,GAAN,MAAM;QACN,IAAA,CAAA,gBAAgB,GAAhB,gBAAgB;QAChB,IAAA,CAAA,sBAAsB,GAAtB,sBAAsB;IAG/B;AAEI,IAAA,qBAAqB,CAAC,YAAiC,EAAA;AAC1D,QAAA,MAAM,gBAAgB,GAAG,OAAO,MAAc,KAAI;YAC9C,IAAI,CAAC,MAAM,CAAC,KAAK,CACb,QAAQ,EACR,CAAA,wDAAA,EAA2D,MAAM,CAAA,CAAA,CAAG,CACvE;AACD,YAAA,IAAI;gBACA,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,EAAE,wBAAwB,CAAC;gBACrD,MAAM,YAAY,EAAE;gBACpB,IAAI,CAAC,MAAM,CAAC,KAAK,CACb,QAAQ,EACR,oCAAoC,CACvC;AACD,gBAAA,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;YACnB;YAAE,OAAO,KAAK,EAAE;gBACZ,IAAI,CAAC,MAAM,CAAC,KAAK,CACb,QAAQ,EACR,iCAAiC,EACjC,KAAK,CACR;AACD,gBAAA,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;YACnB;AACJ,QAAA,CAAC;;;AAID,QAAA,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,gBAAgB,CAAC,SAAS,CAAC,CAAC;QACxD,OAAO,CAAC,EAAE,CAAC,mBAAmB,EAAE,CAAC,KAAK,KAAI;YACtC,MAAM,GAAG,GAAG,KAAK,EAAE,OAAO,IAAI,MAAM,CAAC,KAAK,CAAC;AAC3C,YAAA,MAAM,KAAK,GAAG,KAAK,EAAE,KAAK,IAAI,EAAE;AAChC,YAAA,IACI,CAAC,GAAG,CAAC,QAAQ,CAAC,uBAAuB,CAAC,IAAI,GAAG,CAAC,QAAQ,CAAC,SAAS,CAAC;AACjE,gBAAA,KAAK,CAAC,QAAQ,CAAC,gCAAgC,CAAC,EAClD;gBACE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,oEAAoE,EAAE,KAAK,CAAC;gBACvG;YACJ;YACA,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,EAAE,qBAAqB,EAAE,KAAK,CAAC;YACzD,gBAAgB,CAAC,oBAAoB,CAAC;AAC1C,QAAA,CAAC,CAAC;QACF,OAAO,CAAC,EAAE,CAAC,oBAAoB,EAAE,CAAC,MAAM,KAAI;YACxC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,EAAE,8BAA8B,EAAE,MAAM,CAAC;AACvE,QAAA,CAAC,CAAC;IACN;AAEO,IAAA,MAAM,IAAI,GAAA;QACb,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,EAAE,6BAA6B,CAAC;AAC1D,QAAA,IAAI;AACA,YAAA,MAAM,aAAa,GAAI,IAAI,CAAC,GAAW,CAAC,aAAa;YACrD,IAAI,aAAa,IAAI,OAAO,aAAa,CAAC,QAAQ,KAAK,UAAU,EAAE;AAC/D,gBAAA,MAAM,aAAa,CAAC,QAAQ,EAAE;gBAC9B,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,EAAE,gCAAgC,CAAC;YACjE;AAEA,YAAA,IACI,IAAI,CAAC,sBAAsB,CAAC,QAAQ;AACpC,gBAAA,OAAO,IAAI,CAAC,sBAAsB,CAAC,QAAQ,CAAC,OAAO;AAC/C,oBAAA,UAAU,EAChB;AACE,gBAAA,IAAI,CAAC,sBAAsB,CAAC,QAAQ,CAAC,OAAO,EAAE;gBAC9C,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,EAAE,iCAAiC,CAAC;YAClE;YAEA,MAAM,UAAU,GAAG,IAAI,CAAC,gBAAgB,EAAE,aAAa,EAAE;YACzD,IAAI,UAAU,EAAE;AACZ,gBAAA,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,KAAI;AAChC,oBAAA,UAAU,CAAC,KAAK,CAAC,MAAK;wBAClB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,EAAE,oBAAoB,CAAC;AACjD,wBAAA,OAAO,EAAE;AACb,oBAAA,CAAC,CAAC;AACN,gBAAA,CAAC,CAAC;YACN;AAEA,YAAA,MAAM,EAAE,GAAG,IAAIA,mCAAmB,EAAE;YACpC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,EAAE,gCAAgC,CAAC;AAC7D,YAAA,MAAM,EAAE,CAAC,QAAQ,EAAE;AACnB,YAAA,MAAM,IAAI,CAAC,gBAAgB,CAAC,IAAI,EAAE;AAClC,YAAA,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC;YAE3B,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,QAAQ,EAAE,6BAA6B,CAAC;QAChE;QAAE,OAAO,KAAK,EAAE;YACZ,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,EAAE,wBAAwB,EAAE,KAAK,CAAC;AAC5D,YAAA,MAAM,KAAK;QACf;IACJ;AACH;;;;"}
|
|
@@ -5,7 +5,7 @@ var Logger = require('../../shared/logger/Logger.js');
|
|
|
5
5
|
var ConfigurationManager = require('../../ConfigurationManager.js');
|
|
6
6
|
var ServerPluginManager = require('../../plugins/ServerPluginManager.js');
|
|
7
7
|
var XyRequestManager = require('../core/request/XyRequestManager.js');
|
|
8
|
-
var
|
|
8
|
+
var PortManager = require('../utils/PortManager.js');
|
|
9
9
|
var ConsoleInterceptor = require('../components/fastapi/console/ConsoleInterceptor.js');
|
|
10
10
|
var securityMiddleware = require('../../middleware/security-middleware.js');
|
|
11
11
|
var MiddlewareManager = require('./MiddlewareManager.js');
|
|
@@ -157,7 +157,7 @@ class XyPrissServer {
|
|
|
157
157
|
return this.lifecycleManager.getCurrentPort();
|
|
158
158
|
}
|
|
159
159
|
async forceClosePort(port) {
|
|
160
|
-
return await new
|
|
160
|
+
return await new PortManager.Port(port).forceClosePort();
|
|
161
161
|
}
|
|
162
162
|
getConsoleInterceptor() {
|
|
163
163
|
return this.consoleInterceptor;
|
|
@@ -215,9 +215,10 @@ class XyPrissServer {
|
|
|
215
215
|
this.shutdownManager.serverPluginManagerRef.instance =
|
|
216
216
|
this.serverPluginManager;
|
|
217
217
|
await this.shutdownManager.stop();
|
|
218
|
+
// console.log("running stop");
|
|
218
219
|
// Session temp directories and IPC sockets are managed by the supervisor (xfpm)
|
|
219
220
|
// or swept after process exit. Never delete sessionDir on individual server stop.
|
|
220
|
-
|
|
221
|
+
this.logger.debug("server", "shutting down...");
|
|
221
222
|
}
|
|
222
223
|
}
|
|
223
224
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../../../../src/server/FastServer/index.ts"],"sourcesContent":[null],"names":["Configs","initializeLogger","ConsoleInterceptor","XyprissApp","XyRequestManager","MiddlewareManager","ShutdownManager","ComponentManager","UploadManager","LogTracingMethods","SecurityMiddleware","ServerPluginManager","Port"],"mappings":";;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../../../src/server/FastServer/index.ts"],"sourcesContent":[null],"names":["Configs","initializeLogger","ConsoleInterceptor","XyprissApp","XyRequestManager","MiddlewareManager","ShutdownManager","ComponentManager","UploadManager","LogTracingMethods","SecurityMiddleware","ServerPluginManager","Port"],"mappings":"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"}
|
|
@@ -9,6 +9,7 @@ var ConfigLoader = require('./utils/ConfigLoader.js');
|
|
|
9
9
|
var WorkerModeHandler = require('./utils/WorkerModeHandler.js');
|
|
10
10
|
var internalFlagsFunctions = require('./utils/internalFlagsFunctions.js');
|
|
11
11
|
var mergeWithDefaults = require('../utils/mergeWithDefaults.js');
|
|
12
|
+
var reconcilePortConflictResolution = require('./utils/reconcilePortConflictResolution.js');
|
|
12
13
|
|
|
13
14
|
/***************************************************************************
|
|
14
15
|
* XyPrissJS - Fast And Secure
|
|
@@ -119,10 +120,29 @@ function createServer(options = {}) {
|
|
|
119
120
|
// We merge these global options with each individual server's config.
|
|
120
121
|
const globalOptions = { ...options };
|
|
121
122
|
delete globalOptions.multiServer;
|
|
123
|
+
if (globalOptions.server) {
|
|
124
|
+
reconcilePortConflictResolution.reconcilePortConflictResolution(globalOptions.server);
|
|
125
|
+
}
|
|
122
126
|
ConfigurationManager.CM.merge(globalOptions);
|
|
127
|
+
if (options.multiServer) {
|
|
128
|
+
ConfigurationManager.CM.update("multiServer", options.multiServer);
|
|
129
|
+
}
|
|
123
130
|
const servers = (xms || []).map((server) => {
|
|
124
131
|
// Individual server options take precedence over global ones
|
|
125
|
-
|
|
132
|
+
const merged = mergeWithDefaults.mergeWithDefaults(globalOptions, server);
|
|
133
|
+
// Ensure child server port & host override global server block
|
|
134
|
+
if (server.port) {
|
|
135
|
+
merged.server = merged.server || {};
|
|
136
|
+
merged.server.port = server.port;
|
|
137
|
+
}
|
|
138
|
+
if (server.host) {
|
|
139
|
+
merged.server = merged.server || {};
|
|
140
|
+
merged.server.host = server.host;
|
|
141
|
+
}
|
|
142
|
+
// Reconcile mutual exclusivity: autokill vs autoPortSwitch per server instance
|
|
143
|
+
merged.server = merged.server || {};
|
|
144
|
+
reconcilePortConflictResolution.reconcilePortConflictResolution(merged.server, server.server);
|
|
145
|
+
return merged;
|
|
126
146
|
});
|
|
127
147
|
if (servers.length === 0) {
|
|
128
148
|
throw new Error("XMS configuration error: at least one server must be defined in `multiServer.servers`. Please update your configuration and try again.");
|
|
@@ -130,11 +150,15 @@ function createServer(options = {}) {
|
|
|
130
150
|
const workerOptions = WorkerModeHandler.handleWorkerMode(options);
|
|
131
151
|
ConfigurationManager.CM.merge(workerOptions);
|
|
132
152
|
const logger = Logger.initializeLogger(ConfigurationManager.CM.get("logging"));
|
|
133
|
-
const multiServerManager = new MultiServerManager.MultiServerManager(
|
|
134
|
-
const multiApp = new MultiServerApp.MultiServerApp(multiServerManager, servers, logger);
|
|
153
|
+
const multiServerManager = new MultiServerManager.MultiServerManager(options, logger);
|
|
154
|
+
const multiApp = new MultiServerApp.MultiServerApp(multiServerManager, servers, logger, options);
|
|
155
|
+
multiApp.configs = options;
|
|
135
156
|
return multiApp;
|
|
136
157
|
}
|
|
137
158
|
// 3. Fallback to Single Server mode via unified creator
|
|
159
|
+
// Enforce mutual exclusivity for single server mode
|
|
160
|
+
options.server = options.server || {};
|
|
161
|
+
reconcilePortConflictResolution.reconcilePortConflictResolution(options.server);
|
|
138
162
|
return XyServerCreator.XyServerCreator.create(options);
|
|
139
163
|
}
|
|
140
164
|
const XServer = {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ServerFactory.js","sources":["../../../../src/server/ServerFactory.ts"],"sourcesContent":[null],"names":["rejectInternalFlag","configLoader","Logger","Configs","mergeWithDefaults","handleWorkerMode","initializeLogger","MultiServerManager","MultiServerApp","XyServerCreator"],"mappings":"
|
|
1
|
+
{"version":3,"file":"ServerFactory.js","sources":["../../../../src/server/ServerFactory.ts"],"sourcesContent":[null],"names":["rejectInternalFlag","configLoader","Logger","reconcilePortConflictResolution","Configs","mergeWithDefaults","handleWorkerMode","initializeLogger","MultiServerManager","MultiServerApp","XyServerCreator"],"mappings":";;;;;;;;;;;;;AAAA;;;;;;;;;;;;;;;;;;;;;;AAsBiF;AAgBjF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA+DG;AACG,SAAU,YAAY,CAAC,OAAA,GAAyB,EAAE,EAAA;;IAEpDA,yCAAkB,CAAC,OAAO,CAAC;;IAG3BC,yBAAY,CAAC,qBAAqB,EAAE;AACpC,IAAAC,aAAM,CAAC,WAAW,CAAC,OAAO,CAAC,OAAO,CAAC;IACnC,MAAM,GAAG,GAAG,OAAO,EAAE,WAAW,EAAE,OAAO,CAAC;;AAG1C,IAAA,IAAI,OAAO,CAAC,WAAW,EAAE,OAAO,EAAE;;;;AAI9B,QAAA,MAAM,aAAa,GAAG,EAAE,GAAG,OAAO,EAAE;QACpC,OAAO,aAAa,CAAC,WAAW;AAEhC,QAAA,IAAI,aAAa,CAAC,MAAM,EAAE;AACtB,YAAAC,+DAA+B,CAAC,aAAa,CAAC,MAAM,CAAC;QACzD;AAEA,QAAAC,uBAAO,CAAC,KAAK,CAAC,aAAa,CAAC;AAC5B,QAAA,IAAI,OAAO,CAAC,WAAW,EAAE;YACrBA,uBAAO,CAAC,MAAM,CAAC,aAAa,EAAE,OAAO,CAAC,WAAW,CAAC;QACtD;AAEA,QAAA,MAAM,OAAO,GAAG,CAAC,GAAG,IAAI,EAAE,EAAE,GAAG,CAAC,CAAC,MAAM,KAAI;;YAEvC,MAAM,MAAM,GAAGC,mCAAiB,CAAC,aAAa,EAAE,MAAa,CAAC;;AAG9D,YAAA,IAAI,MAAM,CAAC,IAAI,EAAE;gBACb,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,IAAI,EAAE;gBACnC,MAAM,CAAC,MAAM,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI;YACpC;AACA,YAAA,IAAI,MAAM,CAAC,IAAI,EAAE;gBACb,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,IAAI,EAAE;gBACnC,MAAM,CAAC,MAAM,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI;YACpC;;YAGA,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,IAAI,EAAE;YACnCF,+DAA+B,CAC3B,MAAM,CAAC,MAAM,EACZ,MAAc,CAAC,MAAM,CACzB;AAED,YAAA,OAAO,MAAM;AACjB,QAAA,CAAC,CAAC;AAEF,QAAA,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE;AACtB,YAAA,MAAM,IAAI,KAAK,CACX,wIAAwI,CAC3I;QACL;AAEA,QAAA,MAAM,aAAa,GAAGG,kCAAgB,CAAC,OAAO,CAAC;AAC/C,QAAAF,uBAAO,CAAC,KAAK,CAAC,aAAa,CAAC;QAC5B,MAAM,MAAM,GAAGG,uBAAgB,CAACH,uBAAO,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QACvD,MAAM,kBAAkB,GAAG,IAAII,qCAAkB,CAC7C,OAAO,EACP,MAAM,CACT;AAED,QAAA,MAAM,QAAQ,GAAG,IAAIC,6BAAc,CAC/B,kBAAkB,EAClB,OAAc,EACd,MAAM,EACN,OAAO,CACV;AACD,QAAA,QAAQ,CAAC,OAAO,GAAG,OAAO;AAE1B,QAAA,OAAO,QAA4B;IACvC;;;IAIA,OAAO,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,EAAE;AACrC,IAAAN,+DAA+B,CAAC,OAAO,CAAC,MAAM,CAAC;AAC/C,IAAA,OAAOO,+BAAe,CAAC,MAAM,CAAC,OAAO,CAAC;AAC1C;AACO,MAAM,OAAO,GAAG;AACnB,IAAA,MAAM,EAAE,YAAY;;;;;;"}
|