xypriss 9.12.71 → 9.13.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/dist/cjs/src/middleware/built-in/security/HoneypotTarpit.js +5 -0
- package/dist/cjs/src/middleware/built-in/security/HoneypotTarpit.js.map +1 -1
- package/dist/cjs/src/plugins/const/XyprissTempDir.js +33 -2
- package/dist/cjs/src/plugins/const/XyprissTempDir.js.map +1 -1
- package/dist/cjs/src/server/FastServer/index.js +1 -0
- package/dist/cjs/src/server/FastServer/index.js.map +1 -1
- package/dist/cjs/src/server/const/Defaulthelmetopts.js +1 -1
- package/dist/cjs/src/server/const/Defaulthelmetopts.js.map +1 -1
- package/dist/cjs/src/shared/logger/quickLogger.js +13 -7
- package/dist/cjs/src/shared/logger/quickLogger.js.map +1 -1
- package/dist/cjs/src/xhsc/EnvApi.js +10 -3
- package/dist/cjs/src/xhsc/EnvApi.js.map +1 -1
- package/dist/cjs/src/xhsc/api/env/XessIpcClient.js +299 -0
- package/dist/cjs/src/xhsc/api/env/XessIpcClient.js.map +1 -0
- package/dist/cjs/src/xhsc/api/env/env.js +31 -9
- package/dist/cjs/src/xhsc/api/env/env.js.map +1 -1
- package/dist/cjs/src/xhsc/cluster/XHSCWorker.js +9 -1
- package/dist/cjs/src/xhsc/cluster/XHSCWorker.js.map +1 -1
- package/dist/cjs/src/xhsc/fs/TempFileManager.js +12 -14
- package/dist/cjs/src/xhsc/fs/TempFileManager.js.map +1 -1
- package/dist/cjs/src/xhsc.js +26 -11
- package/dist/cjs/src/xhsc.js.map +1 -1
- package/dist/esm/src/middleware/built-in/security/HoneypotTarpit.js +5 -0
- package/dist/esm/src/middleware/built-in/security/HoneypotTarpit.js.map +1 -1
- package/dist/esm/src/plugins/const/XyprissTempDir.js +33 -3
- package/dist/esm/src/plugins/const/XyprissTempDir.js.map +1 -1
- package/dist/esm/src/server/FastServer/index.js +1 -0
- package/dist/esm/src/server/FastServer/index.js.map +1 -1
- package/dist/esm/src/server/const/Defaulthelmetopts.js +1 -1
- package/dist/esm/src/server/const/Defaulthelmetopts.js.map +1 -1
- package/dist/esm/src/shared/logger/quickLogger.js +13 -7
- package/dist/esm/src/shared/logger/quickLogger.js.map +1 -1
- package/dist/esm/src/xhsc/EnvApi.js +11 -4
- package/dist/esm/src/xhsc/EnvApi.js.map +1 -1
- package/dist/esm/src/xhsc/api/env/XessIpcClient.js +275 -0
- package/dist/esm/src/xhsc/api/env/XessIpcClient.js.map +1 -0
- package/dist/esm/src/xhsc/api/env/env.js +29 -9
- package/dist/esm/src/xhsc/api/env/env.js.map +1 -1
- package/dist/esm/src/xhsc/cluster/XHSCWorker.js +9 -1
- package/dist/esm/src/xhsc/cluster/XHSCWorker.js.map +1 -1
- package/dist/esm/src/xhsc/fs/TempFileManager.js +12 -14
- package/dist/esm/src/xhsc/fs/TempFileManager.js.map +1 -1
- package/dist/esm/src/xhsc.js +27 -12
- package/dist/esm/src/xhsc.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,299 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var net = require('node:net');
|
|
4
|
+
var fs = require('node:fs');
|
|
5
|
+
var os = require('node:os');
|
|
6
|
+
var path = require('node:path');
|
|
7
|
+
var node_child_process = require('node:child_process');
|
|
8
|
+
var xyprissSecurity = require('xypriss-security');
|
|
9
|
+
var quickLogger = require('../../../shared/logger/quickLogger.js');
|
|
10
|
+
var XyprissTempDir = require('../../../plugins/const/XyprissTempDir.js');
|
|
11
|
+
|
|
12
|
+
function _interopNamespaceDefault(e) {
|
|
13
|
+
var n = Object.create(null);
|
|
14
|
+
if (e) {
|
|
15
|
+
Object.keys(e).forEach(function (k) {
|
|
16
|
+
if (k !== 'default') {
|
|
17
|
+
var d = Object.getOwnPropertyDescriptor(e, k);
|
|
18
|
+
Object.defineProperty(n, k, d.get ? d : {
|
|
19
|
+
enumerable: true,
|
|
20
|
+
get: function () { return e[k]; }
|
|
21
|
+
});
|
|
22
|
+
}
|
|
23
|
+
});
|
|
24
|
+
}
|
|
25
|
+
n.default = e;
|
|
26
|
+
return Object.freeze(n);
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
var net__namespace = /*#__PURE__*/_interopNamespaceDefault(net);
|
|
30
|
+
var fs__namespace = /*#__PURE__*/_interopNamespaceDefault(fs);
|
|
31
|
+
var os__namespace = /*#__PURE__*/_interopNamespaceDefault(os);
|
|
32
|
+
var path__namespace = /*#__PURE__*/_interopNamespaceDefault(path);
|
|
33
|
+
|
|
34
|
+
const logger = new quickLogger.QuickLogger("LibXESS");
|
|
35
|
+
/**
|
|
36
|
+
* **XessIpcClient**
|
|
37
|
+
*
|
|
38
|
+
* Client IPC sécurisé pour communiquer avec le superviseur libXESS.
|
|
39
|
+
* Permet de récupérer les secrets authentiques en mémoire RAM via Unix Domain Socket
|
|
40
|
+
* tout en maintenant l'isolation bipolaire (le fichier .env sur disque étant un leurre canary).
|
|
41
|
+
*
|
|
42
|
+
* L'adresse du socket IPC est résolue de manière déterministe hors process.env
|
|
43
|
+
* à partir de l'empreinte cryptographique XSec de la racine du projet.
|
|
44
|
+
*/
|
|
45
|
+
class XessIpcClient {
|
|
46
|
+
/**
|
|
47
|
+
* Calcule la liste des emplacements potentiels du socket IPC libXESS pour un répertoire donné.
|
|
48
|
+
* Privilégie le dossier dédié scoped dans xuser/ tout en conservant les fallbacks.
|
|
49
|
+
*/
|
|
50
|
+
static getSocketCandidatesForDir(dir) {
|
|
51
|
+
const hash = xyprissSecurity.Cipher.hash
|
|
52
|
+
.create(path__namespace.resolve(dir), { algorithm: "sha256" })
|
|
53
|
+
.toString("hex")
|
|
54
|
+
.slice(0, 12);
|
|
55
|
+
const fileName = `xess_ipc_${hash}.sock`;
|
|
56
|
+
const tempBase = os__namespace.tmpdir();
|
|
57
|
+
const candidates = [];
|
|
58
|
+
// 1. Emplacement principal sous xuser/<instanceId>/xess/
|
|
59
|
+
try {
|
|
60
|
+
const xessDir = XyprissTempDir.getXessTempDir();
|
|
61
|
+
candidates.push(path__namespace.join(xessDir, fileName));
|
|
62
|
+
}
|
|
63
|
+
catch { }
|
|
64
|
+
try {
|
|
65
|
+
const sessionDir = XyprissTempDir.generateXUserTmpDir();
|
|
66
|
+
candidates.push(path__namespace.join(sessionDir, "xess", fileName));
|
|
67
|
+
candidates.push(path__namespace.join(sessionDir, fileName));
|
|
68
|
+
}
|
|
69
|
+
catch { }
|
|
70
|
+
// 2. Scan des instances actives sous <tempBase>/nehonix.xypriss.data/xuser/*/xess/
|
|
71
|
+
const xuserRoot = path__namespace.join(tempBase, "nehonix.xypriss.data", "xuser");
|
|
72
|
+
if (fs__namespace.existsSync(xuserRoot)) {
|
|
73
|
+
try {
|
|
74
|
+
const entries = fs__namespace.readdirSync(xuserRoot);
|
|
75
|
+
for (const entry of entries) {
|
|
76
|
+
candidates.push(path__namespace.join(xuserRoot, entry, "xess", fileName));
|
|
77
|
+
candidates.push(path__namespace.join(xuserRoot, entry, fileName));
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
catch { }
|
|
81
|
+
}
|
|
82
|
+
// 3. Emplacements de fallback pour rétro-compatibilité
|
|
83
|
+
candidates.push(path__namespace.join(tempBase, "nehonix.xypriss.data", "xess", fileName));
|
|
84
|
+
candidates.push(path__namespace.join(tempBase, "nehonix.xypriss.data", fileName));
|
|
85
|
+
candidates.push(path__namespace.join(tempBase, fileName));
|
|
86
|
+
return candidates;
|
|
87
|
+
}
|
|
88
|
+
/**
|
|
89
|
+
* Liste ordonnée de tous les chemins de sockets candidats potentiels :
|
|
90
|
+
* 1. process.cwd() (dossier d'exécution du CLI xfpm / superviseur libXESS)
|
|
91
|
+
* 2. projectDir (dossier du projet ou plugin ciblé)
|
|
92
|
+
* 3. Répertoires parents ascendants
|
|
93
|
+
*/
|
|
94
|
+
static getCandidateSocketPaths(projectDir) {
|
|
95
|
+
const candidates = [];
|
|
96
|
+
const seen = new Set();
|
|
97
|
+
const addDirHierarchy = (dir) => {
|
|
98
|
+
let current = path__namespace.resolve(dir);
|
|
99
|
+
while (current && !seen.has(current)) {
|
|
100
|
+
seen.add(current);
|
|
101
|
+
const candidatesForDir = XessIpcClient.getSocketCandidatesForDir(current);
|
|
102
|
+
for (const candidate of candidatesForDir) {
|
|
103
|
+
if (fs__namespace.existsSync(candidate) && !candidates.includes(candidate)) {
|
|
104
|
+
candidates.push(candidate);
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
const parent = path__namespace.dirname(current);
|
|
108
|
+
if (parent === current)
|
|
109
|
+
break;
|
|
110
|
+
current = parent;
|
|
111
|
+
}
|
|
112
|
+
};
|
|
113
|
+
// 1. Purge et interception défensive d'une variable transitoire éventuelle
|
|
114
|
+
if (typeof process !== "undefined" && process.env?.XFPM_IPC_SOCK) {
|
|
115
|
+
const legacySock = process.env.XFPM_IPC_SOCK;
|
|
116
|
+
try {
|
|
117
|
+
delete process.env.XFPM_IPC_SOCK;
|
|
118
|
+
}
|
|
119
|
+
catch {
|
|
120
|
+
// Ignore si process.env est scellé
|
|
121
|
+
}
|
|
122
|
+
if (fs__namespace.existsSync(legacySock) && !candidates.includes(legacySock)) {
|
|
123
|
+
candidates.push(legacySock);
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
// 2. Dossier de travail courant (process.cwd()) où xfpm ancre son superviseur
|
|
127
|
+
if (typeof process !== "undefined" && process.cwd) {
|
|
128
|
+
addDirHierarchy(process.cwd());
|
|
129
|
+
}
|
|
130
|
+
// 3. Dossier de projet spécifique si différent
|
|
131
|
+
if (projectDir) {
|
|
132
|
+
addDirHierarchy(projectDir);
|
|
133
|
+
}
|
|
134
|
+
return candidates;
|
|
135
|
+
}
|
|
136
|
+
/**
|
|
137
|
+
* Résout déterministement le chemin du socket IPC libXESS actif.
|
|
138
|
+
*/
|
|
139
|
+
static resolveSocketPath(projectDir) {
|
|
140
|
+
const candidates = this.getCandidateSocketPaths(projectDir);
|
|
141
|
+
return candidates.length > 0 ? candidates[0] : undefined;
|
|
142
|
+
}
|
|
143
|
+
/**
|
|
144
|
+
* Vérifie si le runtime tourne sous le confinement actif de libXESS.
|
|
145
|
+
*/
|
|
146
|
+
static isShielded(projectDir) {
|
|
147
|
+
return this.getCandidateSocketPaths(projectDir).length > 0;
|
|
148
|
+
}
|
|
149
|
+
/**
|
|
150
|
+
* Récupère le chemin du socket IPC libXESS.
|
|
151
|
+
*/
|
|
152
|
+
static getSocketPath(projectDir) {
|
|
153
|
+
return this.resolveSocketPath(projectDir);
|
|
154
|
+
}
|
|
155
|
+
/**
|
|
156
|
+
* Récupération synchrone des secrets lors du bootstrap initial.
|
|
157
|
+
* Tente les sockets candidats et purge automatiquement les sockets fantômes résiduels.
|
|
158
|
+
*/
|
|
159
|
+
static fetchSecretsSync(projectDirOrSocket) {
|
|
160
|
+
let candidates = [];
|
|
161
|
+
if (projectDirOrSocket &&
|
|
162
|
+
(projectDirOrSocket.endsWith(".sock") ||
|
|
163
|
+
(fs__namespace.existsSync(projectDirOrSocket) &&
|
|
164
|
+
!fs__namespace.statSync(projectDirOrSocket).isDirectory()))) {
|
|
165
|
+
candidates = [projectDirOrSocket];
|
|
166
|
+
}
|
|
167
|
+
else {
|
|
168
|
+
candidates = this.getCandidateSocketPaths(projectDirOrSocket);
|
|
169
|
+
}
|
|
170
|
+
if (candidates.length === 0) {
|
|
171
|
+
throw new Error("No active IPC socket found for project. libXESS confinement is required.");
|
|
172
|
+
}
|
|
173
|
+
const targetDir = projectDirOrSocket && !projectDirOrSocket.endsWith(".sock")
|
|
174
|
+
? path__namespace.resolve(projectDirOrSocket)
|
|
175
|
+
: "";
|
|
176
|
+
const script = `
|
|
177
|
+
const net = require("net");
|
|
178
|
+
const sock = process.argv[1];
|
|
179
|
+
const targetDir = process.argv[2] || "";
|
|
180
|
+
const client = net.createConnection(sock, () => {
|
|
181
|
+
client.write(JSON.stringify({ action: "INIT", projectDir: targetDir }) + "\\n");
|
|
182
|
+
});
|
|
183
|
+
let data = "";
|
|
184
|
+
client.on("data", (chunk) => {
|
|
185
|
+
data += chunk.toString();
|
|
186
|
+
if (data.includes("\\n")) {
|
|
187
|
+
client.end();
|
|
188
|
+
process.stdout.write(data.trim());
|
|
189
|
+
process.exit(0);
|
|
190
|
+
}
|
|
191
|
+
});
|
|
192
|
+
client.on("error", (err) => {
|
|
193
|
+
process.stderr.write(err.message);
|
|
194
|
+
process.exit(1);
|
|
195
|
+
});
|
|
196
|
+
setTimeout(() => { process.exit(1); }, 3000);
|
|
197
|
+
`;
|
|
198
|
+
let lastErr;
|
|
199
|
+
for (const sock of candidates) {
|
|
200
|
+
try {
|
|
201
|
+
const output = node_child_process.execFileSync(process.execPath, ["-e", script, sock, targetDir], {
|
|
202
|
+
encoding: "utf8",
|
|
203
|
+
timeout: 3000,
|
|
204
|
+
stdio: ["ignore", "pipe", "pipe"],
|
|
205
|
+
});
|
|
206
|
+
const parsed = JSON.parse(output.trim());
|
|
207
|
+
if (parsed && parsed.secrets) {
|
|
208
|
+
return parsed.secrets;
|
|
209
|
+
}
|
|
210
|
+
}
|
|
211
|
+
catch (err) {
|
|
212
|
+
lastErr = err;
|
|
213
|
+
// Si le socket est orphelin/mort (connect ENOENT / ECONNREFUSED), suppression du fichier résiduel
|
|
214
|
+
if (err.message && (err.message.includes("ENOENT") || err.message.includes("ECONNREFUSED"))) {
|
|
215
|
+
try {
|
|
216
|
+
fs__namespace.unlinkSync(sock);
|
|
217
|
+
}
|
|
218
|
+
catch {
|
|
219
|
+
// Ignore
|
|
220
|
+
}
|
|
221
|
+
}
|
|
222
|
+
}
|
|
223
|
+
}
|
|
224
|
+
logger.error(`Failed to fetch secrets from libXESS IPC candidates: ${lastErr?.message}`);
|
|
225
|
+
throw new Error(`Fatal IPC error communicating with libXESS supervisor: ${lastErr?.message}`);
|
|
226
|
+
}
|
|
227
|
+
/**
|
|
228
|
+
* Récupération asynchrone des secrets via net.Socket natif.
|
|
229
|
+
*/
|
|
230
|
+
static async fetchSecretsAsync(projectDirOrSocket) {
|
|
231
|
+
let candidates = [];
|
|
232
|
+
if (projectDirOrSocket &&
|
|
233
|
+
(projectDirOrSocket.endsWith(".sock") ||
|
|
234
|
+
(fs__namespace.existsSync(projectDirOrSocket) &&
|
|
235
|
+
!fs__namespace.statSync(projectDirOrSocket).isDirectory()))) {
|
|
236
|
+
candidates = [projectDirOrSocket];
|
|
237
|
+
}
|
|
238
|
+
else {
|
|
239
|
+
candidates = this.getCandidateSocketPaths(projectDirOrSocket);
|
|
240
|
+
}
|
|
241
|
+
if (candidates.length === 0) {
|
|
242
|
+
return {};
|
|
243
|
+
}
|
|
244
|
+
const targetDir = projectDirOrSocket && !projectDirOrSocket.endsWith(".sock")
|
|
245
|
+
? path__namespace.resolve(projectDirOrSocket)
|
|
246
|
+
: "";
|
|
247
|
+
for (const sock of candidates) {
|
|
248
|
+
try {
|
|
249
|
+
const secrets = await new Promise((resolve, reject) => {
|
|
250
|
+
const client = net__namespace.createConnection(sock, () => {
|
|
251
|
+
client.write(JSON.stringify({
|
|
252
|
+
action: "INIT",
|
|
253
|
+
projectDir: targetDir,
|
|
254
|
+
}) + "\n");
|
|
255
|
+
});
|
|
256
|
+
let buffer = "";
|
|
257
|
+
const timeout = setTimeout(() => {
|
|
258
|
+
client.destroy();
|
|
259
|
+
reject(new Error("Socket timeout"));
|
|
260
|
+
}, 3000);
|
|
261
|
+
client.on("data", (chunk) => {
|
|
262
|
+
buffer += chunk.toString();
|
|
263
|
+
if (buffer.includes("\n")) {
|
|
264
|
+
clearTimeout(timeout);
|
|
265
|
+
client.end();
|
|
266
|
+
try {
|
|
267
|
+
const parsed = JSON.parse(buffer.trim());
|
|
268
|
+
resolve(parsed.secrets || {});
|
|
269
|
+
}
|
|
270
|
+
catch (e) {
|
|
271
|
+
resolve({});
|
|
272
|
+
}
|
|
273
|
+
}
|
|
274
|
+
});
|
|
275
|
+
client.on("error", (err) => {
|
|
276
|
+
clearTimeout(timeout);
|
|
277
|
+
client.destroy();
|
|
278
|
+
reject(err);
|
|
279
|
+
});
|
|
280
|
+
});
|
|
281
|
+
return secrets;
|
|
282
|
+
}
|
|
283
|
+
catch (err) {
|
|
284
|
+
if (err.message && (err.message.includes("ENOENT") || err.message.includes("ECONNREFUSED"))) {
|
|
285
|
+
try {
|
|
286
|
+
fs__namespace.unlinkSync(sock);
|
|
287
|
+
}
|
|
288
|
+
catch {
|
|
289
|
+
// Ignore
|
|
290
|
+
}
|
|
291
|
+
}
|
|
292
|
+
}
|
|
293
|
+
}
|
|
294
|
+
return {};
|
|
295
|
+
}
|
|
296
|
+
}
|
|
297
|
+
|
|
298
|
+
exports.XessIpcClient = XessIpcClient;
|
|
299
|
+
//# sourceMappingURL=XessIpcClient.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"XessIpcClient.js","sources":["../../../../../../src/xhsc/api/env/XessIpcClient.ts"],"sourcesContent":[null],"names":["QuickLogger","Cipher","path","os","getXessTempDir","generateXUserTmpDir","fs","execFileSync","net"],"mappings":"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"}
|
|
@@ -1,16 +1,23 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
3
|
// ---------------------------------------------------------------------------
|
|
4
|
-
// Internal store
|
|
4
|
+
// Internal RAM store for project environments — purely module-scoped.
|
|
5
5
|
//
|
|
6
|
-
//
|
|
7
|
-
//
|
|
8
|
-
//
|
|
9
|
-
//
|
|
10
|
-
//
|
|
6
|
+
// CRITICAL SECURITY FIX:
|
|
7
|
+
// Do NOT store this on `globalThis` using a Symbol. `Object.getOwnPropertySymbols(globalThis)`
|
|
8
|
+
// allows any script or untrusted dependency to enumerate all symbols on globalThis
|
|
9
|
+
// and exfiltrate secrets without using __sys__.__env__.
|
|
10
|
+
// By encapsulating the store in module-scoped closures, the data is completely
|
|
11
|
+
// invisible to global reflection APIs.
|
|
11
12
|
// ---------------------------------------------------------------------------
|
|
12
|
-
|
|
13
|
-
|
|
13
|
+
let _internalProjectEnvs;
|
|
14
|
+
function setInternalProjectEnvs(store) {
|
|
15
|
+
_internalProjectEnvs = store;
|
|
16
|
+
}
|
|
17
|
+
function getInternalProjectEnvs() {
|
|
18
|
+
return _internalProjectEnvs;
|
|
19
|
+
}
|
|
20
|
+
const XY_XHSC_REGISTER_FS = Symbol();
|
|
14
21
|
/**
|
|
15
22
|
* **Internal Root-Scoped Env Access Key**
|
|
16
23
|
*
|
|
@@ -113,6 +120,19 @@ class EnvStoreError extends Error {
|
|
|
113
120
|
Object.setPrototypeOf(this, EnvStoreError.prototype);
|
|
114
121
|
}
|
|
115
122
|
}
|
|
123
|
+
/**
|
|
124
|
+
* Thrown when an application attempts to boot without the mandatory libXESS confinement shield.
|
|
125
|
+
*/
|
|
126
|
+
class XessShieldRequiredError extends Error {
|
|
127
|
+
constructor(message) {
|
|
128
|
+
super(message ||
|
|
129
|
+
"XyPriss Security Violation: libXESS environment confinement is mandatory.\n" +
|
|
130
|
+
"Applications must be launched through the official XFPM CLI (e.g. 'xfpm run', 'xfpm dev', 'xfpm start').\n" +
|
|
131
|
+
"Unconfined direct runtime execution exposes secrets to host disk leaks and is strictly prohibited.");
|
|
132
|
+
this.name = "XessShieldRequiredError";
|
|
133
|
+
Object.setPrototypeOf(this, XessShieldRequiredError.prototype);
|
|
134
|
+
}
|
|
135
|
+
}
|
|
116
136
|
|
|
117
137
|
exports.EnvAccessError = EnvAccessError;
|
|
118
138
|
exports.EnvKeyError = EnvKeyError;
|
|
@@ -120,6 +140,8 @@ exports.EnvStoreError = EnvStoreError;
|
|
|
120
140
|
exports.FORBIDDEN_VALUE_PATTERN = FORBIDDEN_VALUE_PATTERN;
|
|
121
141
|
exports.XY_ENV_CONFIGURE_SHIELD = XY_ENV_CONFIGURE_SHIELD;
|
|
122
142
|
exports.XY_ENV_INTERNAL_GET_FOR_ROOT = XY_ENV_INTERNAL_GET_FOR_ROOT;
|
|
123
|
-
exports.XY_ENV_STORE_KEY = XY_ENV_STORE_KEY;
|
|
124
143
|
exports.XY_XHSC_REGISTER_FS = XY_XHSC_REGISTER_FS;
|
|
144
|
+
exports.XessShieldRequiredError = XessShieldRequiredError;
|
|
145
|
+
exports.getInternalProjectEnvs = getInternalProjectEnvs;
|
|
146
|
+
exports.setInternalProjectEnvs = setInternalProjectEnvs;
|
|
125
147
|
//# sourceMappingURL=env.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"env.js","sources":["../../../../../../src/xhsc/api/env/env.ts"],"sourcesContent":[null],"names":[],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;
|
|
1
|
+
{"version":3,"file":"env.js","sources":["../../../../../../src/xhsc/api/env/env.ts"],"sourcesContent":[null],"names":[],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,oBAAiF;AAE/E,SAAU,sBAAsB,CAClC,KAAsD,EAAA;IAEtD,oBAAoB,GAAG,KAAK;AAChC;SAEgB,sBAAsB,GAAA;AAGlC,IAAA,OAAO,oBAAoB;AAC/B;AAGO,MAAM,mBAAmB,GAAG,MAAM;AAEzC;;;;;;;;;;;;;AAaG;MACU,4BAA4B,GAAG,MAAM,CAAC,kCAAkC;AAErF;;;;;;;;;;;;;AAaG;MACU,uBAAuB,GAAG,MAAM,CAAC,6BAA6B;AAE3E;AACA;AACA;AACA;AACA;AACA;AAEA;AACO,MAAM,uBAAuB,GAAG;AAgDvC;AACA;AACA;AAEA;;;;;;;;;;;;AAYG;AACG,MAAO,cAAe,SAAQ,KAAK,CAAA;IAIrC,WAAA,CAAY,GAAW,EAAE,MAA2B,EAAA;QAChD,KAAK,CACD,MAAM,KAAK;cACL,CAAA,sBAAA,EAAyB,GAAG,CAAA,sCAAA,CAAwC;AAChE,gBAAA,CAAA,yBAAA,EAA4B,GAAG,CAAA,mCAAA;cACnC,CAAA,+BAAA,EAAkC,GAAG,CAAA,kBAAA,CAAoB;AACrD,gBAAA,CAAA,gEAAA,CAAkE,CAC/E;AACD,QAAA,IAAI,CAAC,IAAI,GAAG,gBAAgB;AAC5B,QAAA,IAAI,CAAC,GAAG,GAAG,GAAG;QACd,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,cAAc,CAAC,SAAS,CAAC;IACzD;AACH;AAED;;;;;;;;;;;;AAYG;AACG,MAAO,WAAY,SAAQ,KAAK,CAAA;IAGlC,WAAA,CAAY,GAAW,EAAE,MAAc,EAAA;AACnC,QAAA,KAAK,CAAC,CAAA,8BAAA,EAAiC,GAAG,MAAM,MAAM,CAAA,CAAE,CAAC;AACzD,QAAA,IAAI,CAAC,IAAI,GAAG,aAAa;AACzB,QAAA,IAAI,CAAC,GAAG,GAAG,GAAG;QACd,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,WAAW,CAAC,SAAS,CAAC;IACtD;AACH;AAED;;;;;;AAMG;AACG,MAAO,aAAc,SAAQ,KAAK,CAAA;AACpC,IAAA,WAAA,GAAA;AACI,QAAA,KAAK,CACD,0DAA0D;AACtD,YAAA,4EAA4E,CACnF;AACD,QAAA,IAAI,CAAC,IAAI,GAAG,eAAe;QAC3B,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,aAAa,CAAC,SAAS,CAAC;IACxD;AACH;AAED;;AAEG;AACG,MAAO,uBAAwB,SAAQ,KAAK,CAAA;AAC9C,IAAA,WAAA,CAAY,OAAgB,EAAA;AACxB,QAAA,KAAK,CACD,OAAO;YACH,6EAA6E;gBAC7E,4GAA4G;AAC5G,gBAAA,oGAAoG,CAC3G;AACD,QAAA,IAAI,CAAC,IAAI,GAAG,yBAAyB;QACrC,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,uBAAuB,CAAC,SAAS,CAAC;IAClE;AACH;;;;;;;;;;;;;"}
|
|
@@ -84,7 +84,12 @@ class XHSCWorker {
|
|
|
84
84
|
});
|
|
85
85
|
this.socket.on("close", () => {
|
|
86
86
|
this.logger.warn("cluster", `Worker ${this.workerId} IPC connection closed`);
|
|
87
|
-
|
|
87
|
+
if (this.workerId !== "master") {
|
|
88
|
+
process.exit(1); // Exit so Go can respawn worker in cluster mode
|
|
89
|
+
}
|
|
90
|
+
else {
|
|
91
|
+
this.logger.error("cluster", `Primary IPC socket disconnected for ${this.ipcPath}. Host process remains alive.`);
|
|
92
|
+
}
|
|
88
93
|
});
|
|
89
94
|
this.handleData();
|
|
90
95
|
};
|
|
@@ -229,6 +234,9 @@ class XHSCWorker {
|
|
|
229
234
|
if (global.gc)
|
|
230
235
|
global.gc();
|
|
231
236
|
}
|
|
237
|
+
else if (message.type === "Farewell") {
|
|
238
|
+
this.logger.warn("cluster", `Worker ${this.workerId} received Farewell signal from XHSC engine: ${JSON.stringify(message.payload || {})}`);
|
|
239
|
+
}
|
|
232
240
|
}
|
|
233
241
|
}
|
|
234
242
|
catch (e) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"XHSCWorker.js","sources":["../../../../../src/xhsc/cluster/XHSCWorker.ts"],"sourcesContent":[null],"names":["initializeLogger","Configs","getSysApi","net","SUPPORTED_HTTP_METHODS","XStatic","decodeXbpRequest","XHSCRequest","XHSCResponse","encodeXbpResponse"],"mappings":"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
|
|
1
|
+
{"version":3,"file":"XHSCWorker.js","sources":["../../../../../src/xhsc/cluster/XHSCWorker.ts"],"sourcesContent":[null],"names":["initializeLogger","Configs","getSysApi","net","SUPPORTED_HTTP_METHODS","XStatic","decodeXbpRequest","XHSCRequest","XHSCResponse","encodeXbpResponse"],"mappings":"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"}
|
|
@@ -69,17 +69,17 @@ class TempFileManager {
|
|
|
69
69
|
autoCleanupOnExit: autoCleanup,
|
|
70
70
|
};
|
|
71
71
|
this.trackedFiles.set(filePath, entry);
|
|
72
|
-
const filename = sys
|
|
72
|
+
const filename = sys?.path.basename(filePath);
|
|
73
73
|
let size = 0;
|
|
74
74
|
try {
|
|
75
|
-
const stat = sys
|
|
75
|
+
const stat = sys?.fs.stats(filePath);
|
|
76
76
|
size = stat?.size || 0;
|
|
77
77
|
}
|
|
78
78
|
catch { }
|
|
79
79
|
const cleanupFn = () => this.removeFile(filePath);
|
|
80
80
|
return {
|
|
81
81
|
path: filePath,
|
|
82
|
-
filename,
|
|
82
|
+
filename: filename,
|
|
83
83
|
size,
|
|
84
84
|
createdAt: now,
|
|
85
85
|
expiresAt,
|
|
@@ -98,8 +98,8 @@ class TempFileManager {
|
|
|
98
98
|
}
|
|
99
99
|
this.trackedFiles.delete(filePath);
|
|
100
100
|
try {
|
|
101
|
-
if (sys
|
|
102
|
-
sys
|
|
101
|
+
if (sys?.fs.exist(filePath)) {
|
|
102
|
+
sys?.fs.rm(filePath, { force: true });
|
|
103
103
|
logger.debug("fs", `Cleaned up temp file: ${filePath}`);
|
|
104
104
|
return true;
|
|
105
105
|
}
|
|
@@ -119,8 +119,8 @@ class TempFileManager {
|
|
|
119
119
|
if (entry.timer)
|
|
120
120
|
clearTimeout(entry.timer);
|
|
121
121
|
try {
|
|
122
|
-
if (sys
|
|
123
|
-
sys
|
|
122
|
+
if (sys?.fs.exist(filePath)) {
|
|
123
|
+
sys?.fs.rm(filePath, { force: true });
|
|
124
124
|
count++;
|
|
125
125
|
}
|
|
126
126
|
}
|
|
@@ -141,8 +141,8 @@ class TempFileManager {
|
|
|
141
141
|
for (const [filePath, entry] of this.trackedFiles.entries()) {
|
|
142
142
|
if (entry.autoCleanupOnExit) {
|
|
143
143
|
try {
|
|
144
|
-
if (sys
|
|
145
|
-
sys
|
|
144
|
+
if (sys?.fs.exist(filePath)) {
|
|
145
|
+
sys?.fs.rm(filePath, { force: true });
|
|
146
146
|
}
|
|
147
147
|
}
|
|
148
148
|
catch { }
|
|
@@ -151,9 +151,9 @@ class TempFileManager {
|
|
|
151
151
|
this.trackedFiles.clear();
|
|
152
152
|
// Auto-clean the entire session temp directory (tmpUserDir)
|
|
153
153
|
try {
|
|
154
|
-
const tmpUserDir = sys
|
|
155
|
-
if (tmpUserDir && sys
|
|
156
|
-
sys
|
|
154
|
+
const tmpUserDir = sys?.path.tmpUserDir;
|
|
155
|
+
if (tmpUserDir && sys?.fs.exist(tmpUserDir)) {
|
|
156
|
+
sys?.fs.rm(tmpUserDir, { force: true });
|
|
157
157
|
logger.debug("fs", `Cleaned up session temp dir: ${tmpUserDir}`);
|
|
158
158
|
}
|
|
159
159
|
}
|
|
@@ -165,11 +165,9 @@ class TempFileManager {
|
|
|
165
165
|
process.once("beforeExit", performExitCleanup);
|
|
166
166
|
process.once("SIGINT", () => {
|
|
167
167
|
performExitCleanup();
|
|
168
|
-
process.exit(0);
|
|
169
168
|
});
|
|
170
169
|
process.once("SIGTERM", () => {
|
|
171
170
|
performExitCleanup();
|
|
172
|
-
process.exit(0);
|
|
173
171
|
});
|
|
174
172
|
}
|
|
175
173
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TempFileManager.js","sources":["../../../../../src/xhsc/fs/TempFileManager.ts"],"sourcesContent":[null],"names":["QuickLogger","getSysApi"],"mappings":";;;;;AAGA,MAAM,MAAM,GAAGA,uBAAW,CAAC,GAAG,CAAC,eAAe,CAAC;MAwDlC,eAAe,CAAA;AAKxB,IAAA,WAAA,GAAA;AAHQ,QAAA,IAAA,CAAA,YAAY,GAAiC,IAAI,GAAG,EAAE;QACtD,IAAA,CAAA,mBAAmB,GAAY,KAAK;QAGxC,IAAI,CAAC,iBAAiB,EAAE;IAC5B;AAEO,IAAA,OAAO,WAAW,GAAA;AACrB,QAAA,IAAI,CAAC,eAAe,CAAC,QAAQ,EAAE;AAC3B,YAAA,eAAe,CAAC,QAAQ,GAAG,IAAI,eAAe,EAAE;QACpD;QACA,OAAO,eAAe,CAAC,QAAQ;IACnC;AAEA;;AAEG;IACI,OAAO,QAAQ,CAAC,GAAqB,EAAA;AACxC,QAAA,IAAI,CAAC,GAAG;AAAE,YAAA,OAAO,CAAC;QAClB,IAAI,OAAO,GAAG,KAAK,QAAQ;YAAE,OAAO,GAAG,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC;AACrD,QAAA,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE;YACzB,MAAM,KAAK,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,oCAAoC,CAAC;YACpE,IAAI,KAAK,EAAE;gBACP,MAAM,GAAG,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAChC,gBAAA,MAAM,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE,WAAW,EAAE;gBAC7C,QAAQ,IAAI;AACR,oBAAA,KAAK,GAAG;wBACJ,OAAO,GAAG,GAAG,IAAI;AACrB,oBAAA,KAAK,GAAG;wBACJ,OAAO,GAAG,GAAG,KAAK;AACtB,oBAAA,KAAK,GAAG;wBACJ,OAAO,GAAG,GAAG,OAAO;AACxB,oBAAA,KAAK,GAAG;wBACJ,OAAO,GAAG,GAAG,QAAQ;AACzB,oBAAA;AACI,wBAAA,OAAO,GAAG;;YAEtB;QACJ;AACA,QAAA,OAAO,CAAC;IACZ;AAEA;;AAEG;AACI,IAAA,KAAK,CACR,QAAgB,EAChB,OAAA,GAA2B,EAAE,EAAA;AAE7B,QAAA,MAAM,GAAG,GAAGC,mBAAS,EAAE;QACvB,MAAM,KAAK,GAAG,eAAe,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC;AACnD,QAAA,MAAM,WAAW,GAAG,OAAO,CAAC,iBAAiB,KAAK,KAAK;AACvD,QAAA,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE;AACtB,QAAA,MAAM,SAAS,GAAG,KAAK,GAAG,CAAC,GAAG,GAAG,GAAG,KAAK,GAAG,IAAI;QAEhD,IAAI,KAAK,GAAyC,IAAI;AAEtD,QAAA,IAAI,KAAK,GAAG,CAAC,EAAE;AACX,YAAA,KAAK,GAAG,UAAU,CAAC,MAAK;AACpB,gBAAA,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC;YAC7B,CAAC,EAAE,KAAK,CAAC;AACT,YAAA,IAAI,OAAO,KAAK,CAAC,KAAK,KAAK,UAAU,EAAE;gBACnC,KAAK,CAAC,KAAK,EAAE;YACjB;QACJ;AAEA,QAAA,MAAM,KAAK,GAAoB;YAC3B,QAAQ;YACR,KAAK;AACL,YAAA,iBAAiB,EAAE,WAAW;SACjC;QAED,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,QAAQ,EAAE,KAAK,CAAC;QAEtC,MAAM,QAAQ,GAAG,GAAG,
|
|
1
|
+
{"version":3,"file":"TempFileManager.js","sources":["../../../../../src/xhsc/fs/TempFileManager.ts"],"sourcesContent":[null],"names":["QuickLogger","getSysApi"],"mappings":"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"}
|
package/dist/cjs/src/xhsc.js
CHANGED
|
@@ -3,13 +3,14 @@
|
|
|
3
3
|
var fs = require('fs');
|
|
4
4
|
var path = require('path');
|
|
5
5
|
var System = require('./xhsc/System.js');
|
|
6
|
-
var DotEnvLoader = require('./utils/DotEnvLoader.js');
|
|
7
6
|
var JsonUtils = require('./utils/JsonUtils.js');
|
|
8
7
|
var env = require('./xhsc/api/env/env.js');
|
|
9
8
|
var ProjectDiscovery = require('./utils/ProjectDiscovery.js');
|
|
10
9
|
var Logger = require('./shared/logger/Logger.js');
|
|
11
10
|
var XyprissTempDir = require('./plugins/const/XyprissTempDir.js');
|
|
12
11
|
var SecurityShield = require('./utils/SecurityShield.js');
|
|
12
|
+
var XessIpcClient = require('./xhsc/api/env/XessIpcClient.js');
|
|
13
|
+
var quickLogger = require('./shared/logger/quickLogger.js');
|
|
13
14
|
|
|
14
15
|
/**
|
|
15
16
|
* **XyPriss System Variables (`__sys__`)**
|
|
@@ -44,6 +45,9 @@ class XyPrissXHSC extends System.XyPrissFS {
|
|
|
44
45
|
super({ __root__: root, __mode__: mode, isDynamicEnv: true });
|
|
45
46
|
this._pluginMap = new Map();
|
|
46
47
|
this._primaryRoot = root;
|
|
48
|
+
if (!globalThis.__sys__) {
|
|
49
|
+
globalThis.__sys__ = this;
|
|
50
|
+
}
|
|
47
51
|
// Initialize default vars
|
|
48
52
|
this.vars.update({
|
|
49
53
|
__version__: "0.0.0",
|
|
@@ -197,23 +201,34 @@ if (typeof globalThis !== "undefined") {
|
|
|
197
201
|
}
|
|
198
202
|
// Load environment variables for each project hierarchy independently
|
|
199
203
|
const projectEnvs = new Map();
|
|
204
|
+
// Enforce libXESS Bipolar Shield as strictly mandatory
|
|
205
|
+
if (!XessIpcClient.XessIpcClient.isShielded(foundRoot)) {
|
|
206
|
+
const err = new env.XessShieldRequiredError();
|
|
207
|
+
const l = new quickLogger.QuickLogger("XHSC");
|
|
208
|
+
l.error(`[XyPriss Security Violation] ${err.message}`);
|
|
209
|
+
throw err;
|
|
210
|
+
}
|
|
211
|
+
const ipcSecrets = XessIpcClient.XessIpcClient.fetchSecretsSync(foundRoot);
|
|
200
212
|
// Process each project found in the hierarchy
|
|
201
213
|
for (const projectPath of projects) {
|
|
202
|
-
const envPath = path.resolve(projectPath, ".env");
|
|
203
214
|
const envData = {};
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
215
|
+
// Under libXESS confinement, all on-disk .env files are decoy honeypots.
|
|
216
|
+
// Hydrate the authentic secrets for each project directly from the Supervisor IPC RAM store.
|
|
217
|
+
try {
|
|
218
|
+
const projectSecrets = projectPath === foundRoot
|
|
219
|
+
? ipcSecrets
|
|
220
|
+
: XessIpcClient.XessIpcClient.fetchSecretsSync(projectPath);
|
|
221
|
+
for (const key in projectSecrets) {
|
|
222
|
+
envData[key] = projectSecrets[key];
|
|
211
223
|
}
|
|
212
224
|
}
|
|
225
|
+
catch {
|
|
226
|
+
// Project has no specific .env or failed IPC lookup
|
|
227
|
+
}
|
|
213
228
|
projectEnvs.set(projectPath, envData);
|
|
214
229
|
}
|
|
215
|
-
// Initialize the
|
|
216
|
-
|
|
230
|
+
// Initialize the internal secure store as a Map of project environments in module closure
|
|
231
|
+
env.setInternalProjectEnvs(projectEnvs);
|
|
217
232
|
const primaryEnv = projectEnvs.get(foundRoot) || {};
|
|
218
233
|
const defaultPort = parseInt(primaryEnv["PORT"] || "3000");
|
|
219
234
|
// Read xypriss.config.jsonc or xypriss.config.json early to apply XESS configuration declaratively
|