xypriss 1.3.2 → 1.3.4
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/cluster/modules/CrossPlatformMemory.js +48 -14
- package/dist/cjs/src/cluster/modules/CrossPlatformMemory.js.map +1 -1
- package/dist/esm/src/cluster/modules/CrossPlatformMemory.js +49 -15
- package/dist/esm/src/cluster/modules/CrossPlatformMemory.js.map +1 -1
- package/package.json +1 -1
- package/scripts/install-memory-cli.js +36 -22
- package/scripts/postinstall.js +14 -10
|
@@ -21,24 +21,56 @@ class CrossPlatformMemory {
|
|
|
21
21
|
* Find the appropriate memory CLI binary for current platform
|
|
22
22
|
*/
|
|
23
23
|
findMemoryCLI() {
|
|
24
|
-
//
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
24
|
+
// First, try to find the binary in the XyPriss package directory
|
|
25
|
+
const possiblePackageRoots = [
|
|
26
|
+
// When running from node_modules/xypriss
|
|
27
|
+
path.join(__dirname, "../../../.."), // from src/cluster/modules to package root
|
|
28
|
+
path.join(__dirname, "../../.."), // alternative path
|
|
29
|
+
// When running in development
|
|
28
30
|
process.cwd(),
|
|
29
|
-
path.join(process.cwd(), ".."),
|
|
30
|
-
path.join(__dirname, "../../../.."),
|
|
31
|
-
path.join(__dirname, "../../.."),
|
|
32
31
|
];
|
|
33
|
-
|
|
34
|
-
|
|
32
|
+
let xyprissPackageRoot = "";
|
|
33
|
+
// Look for XyPriss package root (contains our bin directory)
|
|
34
|
+
for (const root of possiblePackageRoots) {
|
|
35
35
|
const packageJson = path.join(root, "package.json");
|
|
36
|
+
const binDir = path.join(root, "bin");
|
|
36
37
|
if (fs.existsSync(packageJson) && fs.existsSync(binDir)) {
|
|
37
|
-
|
|
38
|
-
|
|
38
|
+
try {
|
|
39
|
+
const pkg = JSON.parse(fs.readFileSync(packageJson, "utf8"));
|
|
40
|
+
if (pkg.name === "xypriss") {
|
|
41
|
+
xyprissPackageRoot = root;
|
|
42
|
+
break;
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
catch {
|
|
46
|
+
// Continue searching if package.json is invalid
|
|
47
|
+
}
|
|
39
48
|
}
|
|
40
49
|
}
|
|
41
|
-
|
|
50
|
+
// If we didn't find XyPriss package, try various node_modules locations
|
|
51
|
+
if (!xyprissPackageRoot) {
|
|
52
|
+
const nodeModulesPaths = [
|
|
53
|
+
path.join(process.cwd(), "node_modules", "xypriss"),
|
|
54
|
+
path.join(process.cwd(), "..", "node_modules", "xypriss"),
|
|
55
|
+
path.join(process.cwd(), "../..", "node_modules", "xypriss"),
|
|
56
|
+
// Global node_modules (less common but possible)
|
|
57
|
+
path.join(__dirname, "../../../../../xypriss"),
|
|
58
|
+
];
|
|
59
|
+
for (const nodeModulesPath of nodeModulesPaths) {
|
|
60
|
+
if (fs.existsSync(nodeModulesPath)) {
|
|
61
|
+
const binDir = path.join(nodeModulesPath, "bin");
|
|
62
|
+
if (fs.existsSync(binDir)) {
|
|
63
|
+
xyprissPackageRoot = nodeModulesPath;
|
|
64
|
+
break;
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
// Fallback to current working directory (development mode)
|
|
70
|
+
if (!xyprissPackageRoot) {
|
|
71
|
+
xyprissPackageRoot = process.cwd();
|
|
72
|
+
}
|
|
73
|
+
const binDir = path.join(xyprissPackageRoot, "bin");
|
|
42
74
|
// Platform-specific binary names
|
|
43
75
|
const platform = process.platform;
|
|
44
76
|
const arch = process.arch;
|
|
@@ -75,7 +107,7 @@ class CrossPlatformMemory {
|
|
|
75
107
|
return genericPath;
|
|
76
108
|
}
|
|
77
109
|
// Check if we're in development and binaries are in tools/memory-cli
|
|
78
|
-
const devBinaryPath = path.join(
|
|
110
|
+
const devBinaryPath = path.join(xyprissPackageRoot, "tools", "memory-cli", "../../bin", binaryName);
|
|
79
111
|
if (fs.existsSync(devBinaryPath)) {
|
|
80
112
|
Logger.logger.debug("memory", `Found development binary: ${devBinaryPath}`);
|
|
81
113
|
return devBinaryPath;
|
|
@@ -84,7 +116,9 @@ class CrossPlatformMemory {
|
|
|
84
116
|
Logger.logger.warn("memory", `Memory CLI binary not found. Searched:\n` +
|
|
85
117
|
` - ${binaryPath}\n` +
|
|
86
118
|
` - ${genericPath}\n` +
|
|
87
|
-
` - ${devBinaryPath}\n`
|
|
119
|
+
` - ${devBinaryPath}\n` +
|
|
120
|
+
`Package root: ${xyprissPackageRoot}\n` +
|
|
121
|
+
`Current working directory: ${process.cwd()}`);
|
|
88
122
|
return "";
|
|
89
123
|
}
|
|
90
124
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CrossPlatformMemory.js","sources":["../../../../../src/cluster/modules/CrossPlatformMemory.ts"],"sourcesContent":[null],"names":["join","existsSync","logger","spawn"],"mappings":";;;;;;;AAAA;;;AAGG;AAwBH;;AAEG;MACU,mBAAmB,CAAA;AAI5B,IAAA,WAAA,CAAY,kBAA2B,IAAI,EAAA;AACvC,QAAA,IAAI,CAAC,eAAe,GAAG,eAAe,CAAC;AACvC,QAAA,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC;KACvC;AAED;;AAEG;IACK,aAAa,GAAA;;AAEjB,QAAA,
|
|
1
|
+
{"version":3,"file":"CrossPlatformMemory.js","sources":["../../../../../src/cluster/modules/CrossPlatformMemory.ts"],"sourcesContent":[null],"names":["join","existsSync","readFileSync","logger","spawn"],"mappings":"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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { spawn } from 'child_process';
|
|
2
2
|
import { logger } from '../../../shared/logger/Logger.js';
|
|
3
3
|
import { join } from 'path';
|
|
4
|
-
import { existsSync } from 'fs';
|
|
4
|
+
import { existsSync, readFileSync } from 'fs';
|
|
5
5
|
|
|
6
6
|
/**
|
|
7
7
|
* Cross-Platform Memory Detection using Go CLI
|
|
@@ -19,24 +19,56 @@ class CrossPlatformMemory {
|
|
|
19
19
|
* Find the appropriate memory CLI binary for current platform
|
|
20
20
|
*/
|
|
21
21
|
findMemoryCLI() {
|
|
22
|
-
//
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
22
|
+
// First, try to find the binary in the XyPriss package directory
|
|
23
|
+
const possiblePackageRoots = [
|
|
24
|
+
// When running from node_modules/xypriss
|
|
25
|
+
join(__dirname, "../../../.."), // from src/cluster/modules to package root
|
|
26
|
+
join(__dirname, "../../.."), // alternative path
|
|
27
|
+
// When running in development
|
|
26
28
|
process.cwd(),
|
|
27
|
-
join(process.cwd(), ".."),
|
|
28
|
-
join(__dirname, "../../../.."),
|
|
29
|
-
join(__dirname, "../../.."),
|
|
30
29
|
];
|
|
31
|
-
|
|
32
|
-
|
|
30
|
+
let xyprissPackageRoot = "";
|
|
31
|
+
// Look for XyPriss package root (contains our bin directory)
|
|
32
|
+
for (const root of possiblePackageRoots) {
|
|
33
33
|
const packageJson = join(root, "package.json");
|
|
34
|
+
const binDir = join(root, "bin");
|
|
34
35
|
if (existsSync(packageJson) && existsSync(binDir)) {
|
|
35
|
-
|
|
36
|
-
|
|
36
|
+
try {
|
|
37
|
+
const pkg = JSON.parse(readFileSync(packageJson, "utf8"));
|
|
38
|
+
if (pkg.name === "xypriss") {
|
|
39
|
+
xyprissPackageRoot = root;
|
|
40
|
+
break;
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
catch {
|
|
44
|
+
// Continue searching if package.json is invalid
|
|
45
|
+
}
|
|
37
46
|
}
|
|
38
47
|
}
|
|
39
|
-
|
|
48
|
+
// If we didn't find XyPriss package, try various node_modules locations
|
|
49
|
+
if (!xyprissPackageRoot) {
|
|
50
|
+
const nodeModulesPaths = [
|
|
51
|
+
join(process.cwd(), "node_modules", "xypriss"),
|
|
52
|
+
join(process.cwd(), "..", "node_modules", "xypriss"),
|
|
53
|
+
join(process.cwd(), "../..", "node_modules", "xypriss"),
|
|
54
|
+
// Global node_modules (less common but possible)
|
|
55
|
+
join(__dirname, "../../../../../xypriss"),
|
|
56
|
+
];
|
|
57
|
+
for (const nodeModulesPath of nodeModulesPaths) {
|
|
58
|
+
if (existsSync(nodeModulesPath)) {
|
|
59
|
+
const binDir = join(nodeModulesPath, "bin");
|
|
60
|
+
if (existsSync(binDir)) {
|
|
61
|
+
xyprissPackageRoot = nodeModulesPath;
|
|
62
|
+
break;
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
// Fallback to current working directory (development mode)
|
|
68
|
+
if (!xyprissPackageRoot) {
|
|
69
|
+
xyprissPackageRoot = process.cwd();
|
|
70
|
+
}
|
|
71
|
+
const binDir = join(xyprissPackageRoot, "bin");
|
|
40
72
|
// Platform-specific binary names
|
|
41
73
|
const platform = process.platform;
|
|
42
74
|
const arch = process.arch;
|
|
@@ -73,7 +105,7 @@ class CrossPlatformMemory {
|
|
|
73
105
|
return genericPath;
|
|
74
106
|
}
|
|
75
107
|
// Check if we're in development and binaries are in tools/memory-cli
|
|
76
|
-
const devBinaryPath = join(
|
|
108
|
+
const devBinaryPath = join(xyprissPackageRoot, "tools", "memory-cli", "../../bin", binaryName);
|
|
77
109
|
if (existsSync(devBinaryPath)) {
|
|
78
110
|
logger.debug("memory", `Found development binary: ${devBinaryPath}`);
|
|
79
111
|
return devBinaryPath;
|
|
@@ -82,7 +114,9 @@ class CrossPlatformMemory {
|
|
|
82
114
|
logger.warn("memory", `Memory CLI binary not found. Searched:\n` +
|
|
83
115
|
` - ${binaryPath}\n` +
|
|
84
116
|
` - ${genericPath}\n` +
|
|
85
|
-
` - ${devBinaryPath}\n`
|
|
117
|
+
` - ${devBinaryPath}\n` +
|
|
118
|
+
`Package root: ${xyprissPackageRoot}\n` +
|
|
119
|
+
`Current working directory: ${process.cwd()}`);
|
|
86
120
|
return "";
|
|
87
121
|
}
|
|
88
122
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CrossPlatformMemory.js","sources":["../../../../../src/cluster/modules/CrossPlatformMemory.ts"],"sourcesContent":[null],"names":[],"mappings":";;;;;AAAA;;;AAGG;AAwBH;;AAEG;MACU,mBAAmB,CAAA;AAI5B,IAAA,WAAA,CAAY,kBAA2B,IAAI,EAAA;AACvC,QAAA,IAAI,CAAC,eAAe,GAAG,eAAe,CAAC;AACvC,QAAA,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC;KACvC;AAED;;AAEG;IACK,aAAa,GAAA;;AAEjB,QAAA,
|
|
1
|
+
{"version":3,"file":"CrossPlatformMemory.js","sources":["../../../../../src/cluster/modules/CrossPlatformMemory.ts"],"sourcesContent":[null],"names":[],"mappings":";;;;;AAAA;;;AAGG;AAwBH;;AAEG;MACU,mBAAmB,CAAA;AAI5B,IAAA,WAAA,CAAY,kBAA2B,IAAI,EAAA;AACvC,QAAA,IAAI,CAAC,eAAe,GAAG,eAAe,CAAC;AACvC,QAAA,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC;KACvC;AAED;;AAEG;IACK,aAAa,GAAA;;AAEjB,QAAA,MAAM,oBAAoB,GAAG;;AAEzB,YAAA,IAAI,CAAC,SAAS,EAAE,aAAa,CAAC;AAC9B,YAAA,IAAI,CAAC,SAAS,EAAE,UAAU,CAAC;;YAE3B,OAAO,CAAC,GAAG,EAAE;SAChB,CAAC;QAEF,IAAI,kBAAkB,GAAG,EAAE,CAAC;;AAG5B,QAAA,KAAK,MAAM,IAAI,IAAI,oBAAoB,EAAE;YACrC,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,EAAE,cAAc,CAAC,CAAC;YAC/C,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;YAEjC,IAAI,UAAU,CAAC,WAAW,CAAC,IAAI,UAAU,CAAC,MAAM,CAAC,EAAE;AAC/C,gBAAA,IAAI;AACA,oBAAA,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC,CAAC;AAC1D,oBAAA,IAAI,GAAG,CAAC,IAAI,KAAK,SAAS,EAAE;wBACxB,kBAAkB,GAAG,IAAI,CAAC;wBAC1B,MAAM;qBACT;iBACJ;AAAC,gBAAA,MAAM;;iBAEP;aACJ;SACJ;;QAGD,IAAI,CAAC,kBAAkB,EAAE;AACrB,YAAA,MAAM,gBAAgB,GAAG;gBACrB,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,cAAc,EAAE,SAAS,CAAC;gBAC9C,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,IAAI,EAAE,cAAc,EAAE,SAAS,CAAC;gBACpD,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,OAAO,EAAE,cAAc,EAAE,SAAS,CAAC;;AAEvD,gBAAA,IAAI,CAAC,SAAS,EAAE,wBAAwB,CAAC;aAC5C,CAAC;AAEF,YAAA,KAAK,MAAM,eAAe,IAAI,gBAAgB,EAAE;AAC5C,gBAAA,IAAI,UAAU,CAAC,eAAe,CAAC,EAAE;oBAC7B,MAAM,MAAM,GAAG,IAAI,CAAC,eAAe,EAAE,KAAK,CAAC,CAAC;AAC5C,oBAAA,IAAI,UAAU,CAAC,MAAM,CAAC,EAAE;wBACpB,kBAAkB,GAAG,eAAe,CAAC;wBACrC,MAAM;qBACT;iBACJ;aACJ;SACJ;;QAGD,IAAI,CAAC,kBAAkB,EAAE;AACrB,YAAA,kBAAkB,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;SACtC;QAED,MAAM,MAAM,GAAG,IAAI,CAAC,kBAAkB,EAAE,KAAK,CAAC,CAAC;;AAG/C,QAAA,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;AAClC,QAAA,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;AAE1B,QAAA,IAAI,UAAkB,CAAC;AAEvB,QAAA,IAAI,QAAQ,KAAK,OAAO,EAAE;YACtB,UAAU;AACN,gBAAA,IAAI,KAAK,OAAO;AACZ,sBAAE,8BAA8B;sBAC9B,4BAA4B,CAAC;SAC1C;AAAM,aAAA,IAAI,QAAQ,KAAK,QAAQ,EAAE;YAC9B,UAAU;AACN,gBAAA,IAAI,KAAK,OAAO;AACZ,sBAAE,yBAAyB;sBACzB,uBAAuB,CAAC;SACrC;AAAM,aAAA,IAAI,QAAQ,KAAK,OAAO,EAAE;YAC7B,UAAU,GAAG,sBAAsB,CAAC;SACvC;aAAM;AACH,YAAA,UAAU,GAAG,YAAY,CAAC;SAC7B;AAED,QAAA,MAAM,WAAW,GACb,QAAQ,KAAK,OAAO,GAAG,gBAAgB,GAAG,YAAY,CAAC;;QAG3D,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;AAC5C,QAAA,IAAI,UAAU,CAAC,UAAU,CAAC,EAAE;YACxB,MAAM,CAAC,KAAK,CACR,QAAQ,EACR,CAAmC,gCAAA,EAAA,UAAU,CAAE,CAAA,CAClD,CAAC;AACF,YAAA,OAAO,UAAU,CAAC;SACrB;;QAGD,MAAM,WAAW,GAAG,IAAI,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;AAC9C,QAAA,IAAI,UAAU,CAAC,WAAW,CAAC,EAAE;YACzB,MAAM,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAyB,sBAAA,EAAA,WAAW,CAAE,CAAA,CAAC,CAAC;AAC/D,YAAA,OAAO,WAAW,CAAC;SACtB;;AAGD,QAAA,MAAM,aAAa,GAAG,IAAI,CACtB,kBAAkB,EAClB,OAAO,EACP,YAAY,EACZ,WAAW,EACX,UAAU,CACb,CAAC;AACF,QAAA,IAAI,UAAU,CAAC,aAAa,CAAC,EAAE;YAC3B,MAAM,CAAC,KAAK,CACR,QAAQ,EACR,CAA6B,0BAAA,EAAA,aAAa,CAAE,CAAA,CAC/C,CAAC;AACF,YAAA,OAAO,aAAa,CAAC;SACxB;;AAGD,QAAA,MAAM,CAAC,IAAI,CACP,QAAQ,EACR,CAA0C,wCAAA,CAAA;AACtC,YAAA,CAAA,IAAA,EAAO,UAAU,CAAI,EAAA,CAAA;AACrB,YAAA,CAAA,IAAA,EAAO,WAAW,CAAI,EAAA,CAAA;AACtB,YAAA,CAAA,IAAA,EAAO,aAAa,CAAI,EAAA,CAAA;AACxB,YAAA,CAAA,cAAA,EAAiB,kBAAkB,CAAI,EAAA,CAAA;AACvC,YAAA,CAAA,2BAAA,EAA8B,OAAO,CAAC,GAAG,EAAE,CAAA,CAAE,CACpD,CAAC;AACF,QAAA,OAAO,EAAE,CAAC;KACb;AAED;;AAEG;AACI,IAAA,MAAM,aAAa,GAAA;AACtB,QAAA,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE;AACf,YAAA,IAAI,IAAI,CAAC,eAAe,EAAE;AACtB,gBAAA,MAAM,CAAC,IAAI,CACP,QAAQ,EACR,iDAAiD,CACpD,CAAC;AACF,gBAAA,OAAO,IAAI,CAAC,qBAAqB,EAAE,CAAC;aACvC;iBAAM;AACH,gBAAA,MAAM,IAAI,KAAK,CACX,mDAAmD,CACtD,CAAC;aACL;SACJ;AAED,QAAA,IAAI;AACA,YAAA,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,gBAAgB,EAAE,CAAC;AAC7C,YAAA,MAAM,CAAC,KAAK,CACR,QAAQ,EACR,gDAAgD,CACnD,CAAC;AACF,YAAA,OAAO,MAAM,CAAC;SACjB;QAAC,OAAO,KAAK,EAAE;YACZ,MAAM,CAAC,KAAK,CACR,QAAQ,EACR,wCAAwC,EACxC,KAAK,CACR,CAAC;AAEF,YAAA,IAAI,IAAI,CAAC,eAAe,EAAE;AACtB,gBAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,mCAAmC,CAAC,CAAC;AAC3D,gBAAA,OAAO,IAAI,CAAC,qBAAqB,EAAE,CAAC;aACvC;iBAAM;AACH,gBAAA,MAAM,KAAK,CAAC;aACf;SACJ;KACJ;AAED;;AAEG;AACK,IAAA,MAAM,gBAAgB,GAAA;QAC1B,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,KAAI;YACnC,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,EAAE;AAClC,gBAAA,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;gBAC/B,OAAO,EAAE,IAAI;AAChB,aAAA,CAAC,CAAC;YAEH,IAAI,MAAM,GAAG,EAAE,CAAC;YAChB,IAAI,MAAM,GAAG,EAAE,CAAC;YAEhB,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI,KAAI;AAC7B,gBAAA,MAAM,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;AAC9B,aAAC,CAAC,CAAC;YAEH,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI,KAAI;AAC7B,gBAAA,MAAM,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;AAC9B,aAAC,CAAC,CAAC;YAEH,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,IAAI,KAAI;AACvB,gBAAA,IAAI,IAAI,KAAK,CAAC,EAAE;AACZ,oBAAA,IAAI;wBACA,MAAM,UAAU,GAA4B,IAAI,CAAC,KAAK,CAClD,MAAM,CAAC,IAAI,EAAE,CAChB,CAAC;wBACF,OAAO,CAAC,UAAU,CAAC,CAAC;qBACvB;oBAAC,OAAO,UAAU,EAAE;wBACjB,MAAM,CACF,IAAI,KAAK,CACL,sCAAsC,UAAU,CAAA,CAAE,CACrD,CACJ,CAAC;qBACL;iBACJ;qBAAM;oBACH,MAAM,CACF,IAAI,KAAK,CACL,CAAA,4BAAA,EAA+B,IAAI,CAAA,EAAA,EAAK,MAAM,CAAA,CAAE,CACnD,CACJ,CAAC;iBACL;AACL,aAAC,CAAC,CAAC;YAEH,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,KAAK,KAAI;gBACxB,MAAM,CACF,IAAI,KAAK,CAAC,CAAA,8BAAA,EAAiC,KAAK,CAAC,OAAO,CAAA,CAAE,CAAC,CAC9D,CAAC;AACN,aAAC,CAAC,CAAC;AACP,SAAC,CAAC,CAAC;KACN;AAED;;AAEG;AACK,IAAA,MAAM,qBAAqB,GAAA;AAC/B,QAAA,MAAM,EAAE,GAAG,MAAM,OAAO,IAAI,CAAC,CAAC;AAC9B,QAAA,MAAM,WAAW,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC;AAClC,QAAA,MAAM,UAAU,GAAG,EAAE,CAAC,OAAO,EAAE,CAAC;;QAIhC,IAAI,eAAe,GAAG,UAAU,CAAC;AACjC,QAAA,IAAI,OAAO,CAAC,QAAQ,KAAK,OAAO,EAAE;AAC9B,YAAA,IAAI;AACA,gBAAA,MAAM,EAAE,GAAG,MAAM,OAAO,IAAI,CAAC,CAAC;AAC9B,gBAAA,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,QAAQ,CACtC,eAAe,EACf,MAAM,CACT,CAAC;gBACF,MAAM,cAAc,GAAG,OAAO,CAAC,KAAK,CAChC,4BAA4B,CAC/B,CAAC;gBACF,IAAI,cAAc,EAAE;oBAChB,eAAe,GAAG,QAAQ,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;iBACxD;aACJ;AAAC,YAAA,MAAM;;aAEP;SACJ;AAED,QAAA,MAAM,eAAe,GAAG,WAAW,GAAG,eAAe,CAAC;QAEtD,OAAO;YACH,QAAQ,EAAE,OAAO,CAAC,QAAQ;YAC1B,WAAW;YACX,eAAe;YACf,UAAU;AACV,YAAA,UAAU,EAAE,eAAe;AAC3B,YAAA,eAAe,EAAE,CAAC,eAAe,GAAG,WAAW,IAAI,GAAG;AACtD,YAAA,aAAa,EAAE,CAAC;AAChB,YAAA,YAAY,EAAE,CAAC;AACf,YAAA,SAAS,EAAE,CAAC;AACZ,YAAA,QAAQ,EAAE,CAAC;AACX,YAAA,QAAQ,EAAE,CAAC;SACd,CAAC;KACL;AAED;;AAEG;IACI,cAAc,GAAA;AACjB,QAAA,OAAO,IAAI,CAAC,OAAO,KAAK,EAAE,IAAI,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;KAC1D;AAED;;AAEG;IACI,UAAU,GAAA;QACb,OAAO,IAAI,CAAC,OAAO,CAAC;KACvB;AAED;;AAEG;AACI,IAAA,MAAM,OAAO,GAAA;AAKhB,QAAA,IAAI;AACA,YAAA,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,aAAa,EAAE,CAAC;AACxC,YAAA,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;SAClC;QAAC,OAAO,KAAK,EAAE;YACZ,OAAO;AACH,gBAAA,OAAO,EAAE,KAAK;AACd,gBAAA,KAAK,EAAE,KAAK,YAAY,KAAK,GAAG,KAAK,CAAC,OAAO,GAAG,MAAM,CAAC,KAAK,CAAC;aAChE,CAAC;SACL;KACJ;AAED;;AAEG;IACI,OAAO,YAAY,CAAC,KAAa,EAAA;AACpC,QAAA,MAAM,KAAK,GAAG,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;QAC5C,IAAI,IAAI,GAAG,KAAK,CAAC;QACjB,IAAI,SAAS,GAAG,CAAC,CAAC;AAElB,QAAA,OAAO,IAAI,IAAI,IAAI,IAAI,SAAS,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;YACjD,IAAI,IAAI,IAAI,CAAC;AACb,YAAA,SAAS,EAAE,CAAC;SACf;AAED,QAAA,OAAO,CAAG,EAAA,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAA,CAAA,EAAI,KAAK,CAAC,SAAS,CAAC,EAAE,CAAC;KACnD;AAED;;AAEG;AACI,IAAA,MAAM,gBAAgB,GAAA;AACzB,QAAA,IAAI;AACA,YAAA,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,aAAa,EAAE,CAAC;YACxC,OAAO;gBACH,CAAa,UAAA,EAAA,IAAI,CAAC,QAAQ,CAAE,CAAA;gBAC5B,CAAU,OAAA,EAAA,mBAAmB,CAAC,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC,CAAE,CAAA;gBAC9D,CAAc,WAAA,EAAA,mBAAmB,CAAC,YAAY,CAC1C,IAAI,CAAC,eAAe,CACvB,CAAE,CAAA;AACH,gBAAA,CAAA,MAAA,EAAS,mBAAmB,CAAC,YAAY,CACrC,IAAI,CAAC,UAAU,CAClB,CAAK,EAAA,EAAA,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,CAAC,CAAI,EAAA,CAAA;gBACzC,IAAI,CAAC,SAAS,GAAG,CAAC;AACd,sBAAE,CAAS,MAAA,EAAA,mBAAmB,CAAC,YAAY,CACrC,IAAI,CAAC,QAAQ,CAChB,CAAI,CAAA,EAAA,mBAAmB,CAAC,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC,CAAE,CAAA;AACzD,sBAAE,IAAI;AACb,aAAA;iBACI,MAAM,CAAC,OAAO,CAAC;iBACf,IAAI,CAAC,IAAI,CAAC,CAAC;SACnB;QAAC,OAAO,KAAK,EAAE;AACZ,YAAA,OAAO,4BACH,KAAK,YAAY,KAAK,GAAG,KAAK,CAAC,OAAO,GAAG,MAAM,CAAC,KAAK,CACzD,EAAE,CAAC;SACN;KACJ;AACJ;;;;"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "xypriss",
|
|
3
|
-
"version": "1.3.
|
|
3
|
+
"version": "1.3.4",
|
|
4
4
|
"description": "XyPriss is a Node.js framework that extends Express.js with additional performance, security, and scalability features. Built with TypeScript, it maintains full Express.js compatibility while adding enterprise-level capabilities for production applications.",
|
|
5
5
|
"main": "dist/cjs/index.js",
|
|
6
6
|
"module": "dist/esm/index.js",
|
|
@@ -5,14 +5,19 @@
|
|
|
5
5
|
* Downloads platform-specific memory CLI binary during npm install
|
|
6
6
|
*/
|
|
7
7
|
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
8
|
+
import https from "https";
|
|
9
|
+
import fs from "fs";
|
|
10
|
+
import path from "path";
|
|
11
|
+
import { execSync, spawn } from "child_process";
|
|
12
|
+
import { fileURLToPath } from "url";
|
|
13
|
+
|
|
14
|
+
const __filename = fileURLToPath(import.meta.url);
|
|
15
|
+
const __dirname = path.dirname(__filename);
|
|
12
16
|
|
|
13
17
|
const CDN_BASE_URL = "https://sdk.nehonix.space/dl/mds/xypriss/bin";
|
|
18
|
+
// Install binary in the package's own bin directory, not user's project
|
|
14
19
|
const BIN_DIR = path.join(__dirname, "..", "bin");
|
|
15
|
-
const TIMEOUT =
|
|
20
|
+
const TIMEOUT = 40000; // 40 seconds
|
|
16
21
|
|
|
17
22
|
/**
|
|
18
23
|
* Get platform-specific binary information
|
|
@@ -138,7 +143,7 @@ function makeExecutable(filePath) {
|
|
|
138
143
|
function verifyBinary(filePath) {
|
|
139
144
|
return new Promise((resolve) => {
|
|
140
145
|
try {
|
|
141
|
-
|
|
146
|
+
// spawn is already imported at the top
|
|
142
147
|
const child = spawn(filePath, ["--help"], {
|
|
143
148
|
stdio: "pipe",
|
|
144
149
|
timeout: 5000,
|
|
@@ -191,8 +196,22 @@ async function installMemoryCLI() {
|
|
|
191
196
|
}
|
|
192
197
|
|
|
193
198
|
try {
|
|
194
|
-
//
|
|
195
|
-
|
|
199
|
+
// First, try to copy from development bin if it exists (for development/testing)
|
|
200
|
+
const devBinaryPath = path.join(
|
|
201
|
+
__dirname,
|
|
202
|
+
"..",
|
|
203
|
+
"bin",
|
|
204
|
+
binaryInfo.downloadName
|
|
205
|
+
);
|
|
206
|
+
if (fs.existsSync(devBinaryPath)) {
|
|
207
|
+
console.log(
|
|
208
|
+
`📋 Copying binary from development location: ${devBinaryPath}`
|
|
209
|
+
);
|
|
210
|
+
fs.copyFileSync(devBinaryPath, binaryInfo.localPath);
|
|
211
|
+
} else {
|
|
212
|
+
// Download the binary from CDN
|
|
213
|
+
await downloadFile(binaryInfo.url, binaryInfo.localPath);
|
|
214
|
+
}
|
|
196
215
|
|
|
197
216
|
// Make it executable
|
|
198
217
|
makeExecutable(binaryInfo.localPath);
|
|
@@ -223,11 +242,10 @@ async function installMemoryCLI() {
|
|
|
223
242
|
return;
|
|
224
243
|
}
|
|
225
244
|
|
|
226
|
-
console.log("🎉 XyPriss
|
|
227
|
-
console.log(`📍 Binary location: ${binaryInfo.localPath}`);
|
|
245
|
+
console.log("🎉 XyPriss MCLI installed successfully!");
|
|
228
246
|
} catch (error) {
|
|
229
247
|
console.error("❌ Failed to install Memory CLI:", error.message);
|
|
230
|
-
console.log("
|
|
248
|
+
console.log("Memory CLI will use fallback mode (Node.js os module)");
|
|
231
249
|
|
|
232
250
|
// Clean up partial downloads
|
|
233
251
|
if (fs.existsSync(binaryInfo.localPath)) {
|
|
@@ -249,22 +267,23 @@ function shouldSkipInstall() {
|
|
|
249
267
|
process.env.CI === "true" ||
|
|
250
268
|
process.env.SKIP_BINARY_DOWNLOAD === "true"
|
|
251
269
|
) {
|
|
252
|
-
console.log("
|
|
270
|
+
console.log("Skipping binary download (CI environment detected)");
|
|
253
271
|
return true;
|
|
254
272
|
}
|
|
255
273
|
|
|
256
|
-
//
|
|
274
|
+
// Remove if binary already exists and is valid
|
|
257
275
|
const binaryInfo = getPlatformBinary();
|
|
258
276
|
if (binaryInfo && fs.existsSync(binaryInfo.localPath)) {
|
|
259
|
-
|
|
260
|
-
|
|
277
|
+
const unLinkPath = path.dirname(binaryInfo.localPath);
|
|
278
|
+
console.log("Removing MCLI dir to download latest version...");
|
|
279
|
+
fs.rmdirSync(unLinkPath, { recursive: true });
|
|
261
280
|
}
|
|
262
281
|
|
|
263
282
|
return false;
|
|
264
283
|
}
|
|
265
284
|
|
|
266
285
|
// Run installation if this script is executed directly
|
|
267
|
-
if (
|
|
286
|
+
if (import.meta.url === `file://${process.argv[1]}`) {
|
|
268
287
|
if (!shouldSkipInstall()) {
|
|
269
288
|
installMemoryCLI().catch((error) => {
|
|
270
289
|
console.error("💥 Installation failed:", error);
|
|
@@ -273,10 +292,5 @@ if (require.main === module) {
|
|
|
273
292
|
}
|
|
274
293
|
}
|
|
275
294
|
|
|
276
|
-
|
|
277
|
-
installMemoryCLI,
|
|
278
|
-
getPlatformBinary,
|
|
279
|
-
downloadFile,
|
|
280
|
-
verifyBinary,
|
|
281
|
-
};
|
|
295
|
+
export { installMemoryCLI, getPlatformBinary, downloadFile, verifyBinary };
|
|
282
296
|
|
package/scripts/postinstall.js
CHANGED
|
@@ -5,27 +5,31 @@
|
|
|
5
5
|
* Runs after npm install to set up platform-specific binaries
|
|
6
6
|
*/
|
|
7
7
|
|
|
8
|
-
|
|
8
|
+
import { installMemoryCLI } from "./install-memory-cli.js";
|
|
9
9
|
|
|
10
10
|
async function postInstall() {
|
|
11
|
-
console.log(
|
|
12
|
-
|
|
11
|
+
console.log("🔧 Running XyPriss post-install setup...");
|
|
12
|
+
|
|
13
13
|
try {
|
|
14
14
|
await installMemoryCLI();
|
|
15
|
-
console.log(
|
|
15
|
+
console.log("✅ XyPriss setup complete!");
|
|
16
16
|
} catch (error) {
|
|
17
|
-
console.warn(
|
|
18
|
-
|
|
17
|
+
console.warn(
|
|
18
|
+
"⚠️ Post-install setup encountered issues:",
|
|
19
|
+
error.message
|
|
20
|
+
);
|
|
21
|
+
console.log("📝 XyPriss will continue to work with fallback mode.");
|
|
19
22
|
}
|
|
20
23
|
}
|
|
21
24
|
|
|
22
|
-
// Only run if this is the main module (not being
|
|
23
|
-
if (
|
|
25
|
+
// Only run if this is the main module (not being imported)
|
|
26
|
+
if (import.meta.url === `file://${process.argv[1]}`) {
|
|
24
27
|
postInstall().catch((error) => {
|
|
25
|
-
console.error(
|
|
28
|
+
console.error("💥 Post-install failed:", error);
|
|
26
29
|
// Don't exit with error code to avoid breaking npm install
|
|
27
30
|
process.exit(0);
|
|
28
31
|
});
|
|
29
32
|
}
|
|
30
33
|
|
|
31
|
-
|
|
34
|
+
export { postInstall };
|
|
35
|
+
|