@progress/kendo-cli 1.0.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.
@@ -0,0 +1,273 @@
1
+ "use strict";
2
+ exports.id = "node_modules_telerik_machine-id_index_mjs";
3
+ exports.ids = ["node_modules_telerik_machine-id_index_mjs"];
4
+ exports.modules = {
5
+
6
+ /***/ "../node_modules/@telerik/machine-id/index.mjs":
7
+ /*!*****************************************************!*\
8
+ !*** ../node_modules/@telerik/machine-id/index.mjs ***!
9
+ \*****************************************************/
10
+ /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
11
+
12
+ __webpack_require__.r(__webpack_exports__);
13
+ /* harmony export */ __webpack_require__.d(__webpack_exports__, {
14
+ /* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__),
15
+ /* harmony export */ loadMachineId: () => (/* binding */ loadMachineId)
16
+ /* harmony export */ });
17
+ /* harmony import */ var child_process__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! child_process */ "child_process");
18
+ /* harmony import */ var readline__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! readline */ "readline");
19
+ /* harmony import */ var crypto__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! crypto */ "crypto");
20
+ /* harmony import */ var util__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! util */ "util");
21
+ /* harmony import */ var fs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! fs */ "fs");
22
+
23
+
24
+
25
+
26
+
27
+
28
+ const exec = util__WEBPACK_IMPORTED_MODULE_3__.promisify(child_process__WEBPACK_IMPORTED_MODULE_0__.exec);
29
+ const readFile = fs__WEBPACK_IMPORTED_MODULE_4__.promises.readFile;
30
+
31
+ async function loadMachineIdWindows() {
32
+
33
+ async function runInPowershell(command) {
34
+ let output = "";
35
+
36
+ const child = (0,child_process__WEBPACK_IMPORTED_MODULE_0__.spawn)("powershell.exe", ["-nologo"]);
37
+ child.stdin.write(command + "\n");
38
+ child.stdin.end();
39
+
40
+ const shellInterface = readline__WEBPACK_IMPORTED_MODULE_1__.createInterface(child.stdout);
41
+
42
+ for await(const line of shellInterface) {
43
+ // if (!line) continue;
44
+ if (line.startsWith("PS ")) continue;
45
+
46
+ output = output == "" ? line : (output + "\n" + line);
47
+ }
48
+
49
+ const wmiObjects = output.trim().split("\n\n").map(a => {
50
+ const wmiPropertyLines = a.split("\n");
51
+
52
+ const properties = {
53
+ fingerprint: ""
54
+ };
55
+
56
+ for (const line of wmiPropertyLines) {
57
+ const separatorIndex = line.indexOf(" : ");
58
+ if (separatorIndex == -1) continue;
59
+
60
+ const value = line.length < separatorIndex + 3 ? "" : line.substring(separatorIndex + 3);
61
+
62
+ if (value) {
63
+ properties.fingerprint += value + ";";
64
+ properties[line.substring(0, separatorIndex).trim()] = value;
65
+ }
66
+ }
67
+
68
+ return properties;
69
+ });
70
+
71
+ return wmiObjects;
72
+ }
73
+
74
+ const bios = await runInPowershell("Get-WmiObject Win32_BIOS | Format-List -Property Manufacturer, SerialNumber, Name");
75
+ const hdds = await runInPowershell("Get-WmiObject Win32_DiskDrive | Format-List -Property SerialNumber, Model, InterfaceType");
76
+ const processors = await runInPowershell("Get-WmiObject Win32_Processor | Format-List -Property UniqueId, ProcessorId, Name, Manufacturer");
77
+
78
+ // console.log("=== bios: ===\n" + JSON.stringify(bios, null, " "));
79
+ // console.log("=== hdds: ===\n" + JSON.stringify(hdds, null, " "));
80
+ // console.log("=== processors: ===\n" + JSON.stringify(processors, null, " "));
81
+
82
+ let machineFingerprint = [
83
+ ...bios,
84
+ // TRICKY: Filter USB hard disks, although my personal HDD is detected as SCSI when connected over USB.
85
+ ...hdds.filter(f => f.InterfaceType != "USB"),
86
+ ...processors
87
+ ].map(m => m.fingerprint).join("");
88
+
89
+ var shasum = crypto__WEBPACK_IMPORTED_MODULE_2__.createHash('sha1');
90
+ shasum.update(machineFingerprint);
91
+ const machineId = shasum.digest("base64");
92
+
93
+ return {
94
+ fingerprint: machineFingerprint,
95
+ id: machineId,
96
+ algorithm: "SHA1"
97
+ };
98
+ }
99
+
100
+ async function loadMachineIdDarwin() {
101
+
102
+ const platfromResult = (await exec("ioreg -rd1 -w0 -c IOPlatformExpertDevice"))?.stdout?.toString();
103
+ const { platformUUID } = platfromResult.match(/"IOPlatformUUID"\s=\s"(?<platformUUID>[0-9A-F\-]*)"/).groups;
104
+ const { platformSN } = platfromResult.match(/"IOPlatformSerialNumber"\s=\s"(?<platformSN>[^"]*)"/).groups;
105
+
106
+ const modelResult = (await exec("sysctl hw.model machdep.cpu.brand_string"))?.stdout?.toString();
107
+ const { hardwareModel } = modelResult.match(/^hw.model:\s(?<hardwareModel>.*)$/m).groups;
108
+ const { cpuBrand } = modelResult.match(/^machdep.cpu.brand_string:\s(?<cpuBrand>.*)$/m).groups;
109
+
110
+ // Disk drives...
111
+ let hdds = "";
112
+
113
+ const ahciDDriveResult = (await exec("ioreg -rd1 -w0 -c AppleAHCIDiskDriver"))?.stdout?.toString();
114
+ for (const ahciDevice of propertyGroups(ahciDDriveResult)) {
115
+ try {
116
+ const ahciName = ahciDevice.match(/^\s*"(Model|Model Name|Model Number)"\s*=\s*"(?<ahciName>[^"]*)"\s*$/m).groups.ahciName.trim();
117
+ const ahciSN = ahciDevice.match(/^\s*"Serial Number"\s*=\s*"(?<ahciSN>[^"]*)"\s*$/m).groups.ahciSN.trim();
118
+ hdds += `\nDisk Drive, AppleAHCIDiskDriver: ${ahciName} (${ahciSN})`;
119
+ } catch {
120
+ }
121
+ }
122
+
123
+ const ans2ControlerResult = (await exec("ioreg -rd1 -w0 -c AppleANS2Controller")).stdout?.toString();
124
+ for (const ans2Controller of propertyGroups(ans2ControlerResult)) {
125
+ try {
126
+ const ans2Name = ans2Controller.match(/^\s*"(Model|Model Name|Model Number)"\s*=\s*"(?<ans2Name>[^"]*)"\s*$/m).groups.ans2Name.trim();
127
+ const ans2SN = ans2Controller.match(/^\s*"Serial Number"\s*=\s*"(?<ans2SN>[^"]*)"\s*$/m).groups.ans2SN.trim();
128
+ hdds += `\nDisk Drive, AppleANS2Controller: ${ans2Name} (${ans2SN})`;
129
+ } catch {
130
+ }
131
+ }
132
+
133
+ const machineFingerprint =
134
+ `Platform UUID: ${platformUUID}\n` +
135
+ `Platform S/N: ${platformSN}\n` +
136
+ `Hardware model: ${hardwareModel}\n` +
137
+ `CPU brand: ${cpuBrand}` + hdds;
138
+
139
+ var shasum = crypto__WEBPACK_IMPORTED_MODULE_2__.createHash('sha256');
140
+ shasum.update(machineFingerprint);
141
+ const machineId = shasum.digest("base64");
142
+
143
+ return {
144
+ fingerprint: machineFingerprint,
145
+ id: machineId,
146
+ algorithm: "SHA256"
147
+ };
148
+
149
+ /**
150
+ * Each HDD is returned in a JSON-like structure:
151
+ * ```
152
+ * {
153
+ * "prop1" = "value1"
154
+ * "prop2" = "value2"
155
+ * }
156
+ * ```
157
+ * This method is used to split the result into chunks of HDDs
158
+ */
159
+ function propertyGroups(str) {
160
+ const groups = [];
161
+
162
+ const startRegex = /(?<=\n[\t ]*){/g;
163
+ const endRegex = /\n[\t ]*}/g;
164
+
165
+ let start = 0;
166
+ let end = 0;
167
+ do {
168
+ startRegex.lastIndex = start;
169
+ start = startRegex.exec(ahciDDriveResult)?.index;
170
+ if (start == undefined) break;
171
+ endRegex.lastIndex = start;
172
+ if (endRegex.exec(ahciDDriveResult)?.index == undefined) break;
173
+ end = endRegex.lastIndex;
174
+ console.log(`Found range: ${start} - ${end}`);
175
+ groups.push(str.substring(start, end));
176
+ start = end;
177
+ } while(true);
178
+
179
+ return groups;
180
+ }
181
+ }
182
+
183
+ async function loadMachineIdLinux() {
184
+ let linuxMachineId = "";
185
+
186
+ try {
187
+ linuxMachineId = (await readFile("/etc/machine-id"))?.toString()?.trim() || "";
188
+ } catch {
189
+ }
190
+
191
+ try {
192
+ linuxMachineId = linuxMachineId || (await readFile("/var/lib/dbus/machine-id"))?.toString()?.trim() || "";
193
+ } catch {
194
+ }
195
+
196
+ let cpuModel = undefined;
197
+ let cpuMHz = undefined;
198
+
199
+ try {
200
+ const cpuInfo = (await readFile("/proc/cpuinfo")).toString();
201
+
202
+ try {
203
+ for(const match of cpuInfo.matchAll(/^\s*model name\s*:\s*(?<cpuModel>.*)$/gm)) {
204
+ cpuModel = match?.groups?.cpuModel;
205
+ }
206
+ } catch {}
207
+
208
+ try {
209
+ for (const match of cpuInfo.matchAll(/^\s*cpu MHz\s*:\s*(?<cpuMHz>.*)$/gm)) {
210
+ cpuMHz = match?.groups?.cpuMHz;
211
+ }
212
+ } catch {}
213
+ } catch {
214
+ }
215
+
216
+ let biosVendor = "";
217
+ try {
218
+ biosVendor = (await readFile("/sys/devices/virtual/dmi/id/bios_vendor"))?.toString()?.trim() || "";
219
+ } catch {}
220
+
221
+ let boardVendor = "";
222
+ try {
223
+ boardVendor = (await readFile("/sys/devices/virtual/dmi/id/board_vendor"))?.toString()?.trim() || "";
224
+ } catch {}
225
+
226
+ let chassisVendor = "";
227
+ try {
228
+ chassisVendor = (await readFile("/sys/devices/virtual/dmi/id/chassis_vendor"))?.toString()?.trim() || "";
229
+ } catch {}
230
+
231
+ const machineFingerprint = `Machine Id: ${linuxMachineId}\nCPU Model: ${cpuModel}\nCPU MHz: ${cpuMHz}\nBIOS Vendor: ${biosVendor}\nBoard Vendor: ${boardVendor}\nChassis Vendor: ${chassisVendor}`;
232
+
233
+ var shasum = crypto__WEBPACK_IMPORTED_MODULE_2__.createHash('sha256');
234
+ shasum.update(machineFingerprint);
235
+ const machineId = shasum.digest("base64");
236
+
237
+ return {
238
+ fingerprint: machineFingerprint,
239
+ id: machineId,
240
+ algorithm: "SHA256"
241
+ };
242
+ }
243
+
244
+ async function loadMachineIdPerPlatform() {
245
+ try {
246
+ switch (process.platform) {
247
+ case "win32": return await loadMachineIdWindows();
248
+ case "darwin": return await loadMachineIdDarwin();
249
+ case "linux": return await loadMachineIdLinux();
250
+ default: throw new Error(`Platform ${process.platform} not supported.`);
251
+ }
252
+ } catch(error) {
253
+ if (error instanceof Error) {
254
+ return { id: "ZGVmYXVsdF9pZA==", fingerprint: "", algorithm: "SHA1", error };
255
+ } else {
256
+ return { id: "ZGVmYXVsdF9pZA==", fingerprint: "", algorithm: "SHA1" };
257
+ }
258
+ }
259
+ }
260
+
261
+ let machineIdCache = undefined;
262
+
263
+ function loadMachineId() {
264
+ return machineIdCache || (machineIdCache = loadMachineIdPerPlatform());
265
+ };
266
+ /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (loadMachineId);
267
+
268
+
269
+ /***/ })
270
+
271
+ };
272
+ ;
273
+ //# sourceMappingURL=node_modules_telerik_machine-id_index_mjs.index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"node_modules_telerik_machine-id_index_mjs.index.js","mappings":";;;;;;;;;;;;;;;;;;;;;AAAwD;AACxB;AACJ;AACJ;AACJ;;AAEpB,aAAa,2CAAc,CAAC,+CAAQ;AACpC,iBAAiB,wCAAW;;AAE5B;;AAEA;AACA;;AAEA,sBAAsB,oDAAK;AAC3B;AACA;;AAEA,+BAA+B,qDAAwB;;AAEvD;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA,wDAAwD;AACxD;AACA;AACA;;AAEA;AACA,SAAS;;AAET;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,iBAAiB,8CAAiB;AAClC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA,YAAY,eAAe;AAC3B,YAAY,aAAa;AACzB;AACA;AACA,YAAY,gBAAgB;AAC5B,YAAY,WAAW;;AAEvB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,0DAA0D,UAAU,GAAG,OAAO;AAC9E,UAAU;AACV;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,0DAA0D,UAAU,GAAG,OAAO;AAC9E,UAAU;AACV;AACA;;AAEA;AACA,0BAA0B,aAAa;AACvC,yBAAyB,WAAW;AACpC,2BAA2B,cAAc;AACzC,sBAAsB,SAAS;AAC/B;AACA,iBAAiB,8CAAiB;AAClC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,0CAA0C;AAC1C,mCAAmC;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,OAAO,IAAI,IAAI;AACvD;AACA;AACA,UAAU;;AAEV;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,MAAM;AACN;;AAEA;AACA;AACA,MAAM;AACN;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,UAAU;;AAEV;AACA;AACA;AACA;AACA,UAAU;AACV,MAAM;AACN;;AAEA;AACA;AACA;AACA,MAAM;;AAEN;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA,MAAM;;AAEN,8CAA8C,eAAe,eAAe,SAAS,aAAa,OAAO,iBAAiB,WAAW,kBAAkB,YAAY,oBAAoB,cAAc;;AAErM,iBAAiB,8CAAiB;AAClC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD,kBAAkB;AACnE;AACA,MAAM;AACN;AACA,qBAAqB;AACrB,UAAU;AACV,qBAAqB;AACrB;AACA;AACA;;AAEA;;AAEO;AACP;AACA;AACA,iEAAe,aAAa,EAAC","sources":["webpack://@progress/kendo-cli/../node_modules/@telerik/machine-id/index.mjs"],"sourcesContent":["import { spawn, exec as execFunc } from \"child_process\";\nimport readline from \"readline\";\nimport crypto from \"crypto\";\nimport util from \"util\";\nimport fs from \"fs\";\n\nconst exec = util.promisify(execFunc);\nconst readFile = fs.promises.readFile;\n\nasync function loadMachineIdWindows() {\n\n async function runInPowershell(command) {\n let output = \"\";\n\n const child = spawn(\"powershell.exe\", [\"-nologo\"]);\n child.stdin.write(command + \"\\n\");\n child.stdin.end();\n\n const shellInterface = readline.createInterface(child.stdout);\n\n for await(const line of shellInterface) {\n // if (!line) continue;\n if (line.startsWith(\"PS \")) continue;\n\n output = output == \"\" ? line : (output + \"\\n\" + line);\n }\n\n const wmiObjects = output.trim().split(\"\\n\\n\").map(a => {\n const wmiPropertyLines = a.split(\"\\n\");\n\n const properties = {\n fingerprint: \"\"\n };\n\n for (const line of wmiPropertyLines) {\n const separatorIndex = line.indexOf(\" : \");\n if (separatorIndex == -1) continue;\n\n const value = line.length < separatorIndex + 3 ? \"\" : line.substring(separatorIndex + 3);\n\n if (value) {\n properties.fingerprint += value + \";\";\n properties[line.substring(0, separatorIndex).trim()] = value;\n }\n }\n\n return properties;\n });\n\n return wmiObjects;\n }\n\n const bios = await runInPowershell(\"Get-WmiObject Win32_BIOS | Format-List -Property Manufacturer, SerialNumber, Name\");\n const hdds = await runInPowershell(\"Get-WmiObject Win32_DiskDrive | Format-List -Property SerialNumber, Model, InterfaceType\");\n const processors = await runInPowershell(\"Get-WmiObject Win32_Processor | Format-List -Property UniqueId, ProcessorId, Name, Manufacturer\");\n\n // console.log(\"=== bios: ===\\n\" + JSON.stringify(bios, null, \" \"));\n // console.log(\"=== hdds: ===\\n\" + JSON.stringify(hdds, null, \" \"));\n // console.log(\"=== processors: ===\\n\" + JSON.stringify(processors, null, \" \"));\n\n let machineFingerprint = [\n ...bios,\n // TRICKY: Filter USB hard disks, although my personal HDD is detected as SCSI when connected over USB.\n ...hdds.filter(f => f.InterfaceType != \"USB\"),\n ...processors\n ].map(m => m.fingerprint).join(\"\");\n\n var shasum = crypto.createHash('sha1');\n shasum.update(machineFingerprint);\n const machineId = shasum.digest(\"base64\");\n\n return {\n fingerprint: machineFingerprint,\n id: machineId,\n algorithm: \"SHA1\"\n };\n}\n\nasync function loadMachineIdDarwin() {\n\n const platfromResult = (await exec(\"ioreg -rd1 -w0 -c IOPlatformExpertDevice\"))?.stdout?.toString();\n const { platformUUID } = platfromResult.match(/\"IOPlatformUUID\"\\s=\\s\"(?<platformUUID>[0-9A-F\\-]*)\"/).groups;\n const { platformSN } = platfromResult.match(/\"IOPlatformSerialNumber\"\\s=\\s\"(?<platformSN>[^\"]*)\"/).groups;\n \n const modelResult = (await exec(\"sysctl hw.model machdep.cpu.brand_string\"))?.stdout?.toString();\n const { hardwareModel } = modelResult.match(/^hw.model:\\s(?<hardwareModel>.*)$/m).groups;\n const { cpuBrand } = modelResult.match(/^machdep.cpu.brand_string:\\s(?<cpuBrand>.*)$/m).groups;\n\n // Disk drives...\n let hdds = \"\";\n\n const ahciDDriveResult = (await exec(\"ioreg -rd1 -w0 -c AppleAHCIDiskDriver\"))?.stdout?.toString();\n for (const ahciDevice of propertyGroups(ahciDDriveResult)) {\n try {\n const ahciName = ahciDevice.match(/^\\s*\"(Model|Model Name|Model Number)\"\\s*=\\s*\"(?<ahciName>[^\"]*)\"\\s*$/m).groups.ahciName.trim();\n const ahciSN = ahciDevice.match(/^\\s*\"Serial Number\"\\s*=\\s*\"(?<ahciSN>[^\"]*)\"\\s*$/m).groups.ahciSN.trim();\n hdds += `\\nDisk Drive, AppleAHCIDiskDriver: ${ahciName} (${ahciSN})`;\n } catch {\n }\n }\n\n const ans2ControlerResult = (await exec(\"ioreg -rd1 -w0 -c AppleANS2Controller\")).stdout?.toString();\n for (const ans2Controller of propertyGroups(ans2ControlerResult)) {\n try {\n const ans2Name = ans2Controller.match(/^\\s*\"(Model|Model Name|Model Number)\"\\s*=\\s*\"(?<ans2Name>[^\"]*)\"\\s*$/m).groups.ans2Name.trim();\n const ans2SN = ans2Controller.match(/^\\s*\"Serial Number\"\\s*=\\s*\"(?<ans2SN>[^\"]*)\"\\s*$/m).groups.ans2SN.trim();\n hdds += `\\nDisk Drive, AppleANS2Controller: ${ans2Name} (${ans2SN})`;\n } catch {\n }\n }\n\n const machineFingerprint =\n `Platform UUID: ${platformUUID}\\n` +\n `Platform S/N: ${platformSN}\\n` + \n `Hardware model: ${hardwareModel}\\n` + \n `CPU brand: ${cpuBrand}` + hdds;\n \n var shasum = crypto.createHash('sha256');\n shasum.update(machineFingerprint);\n const machineId = shasum.digest(\"base64\");\n\n return {\n fingerprint: machineFingerprint,\n id: machineId,\n algorithm: \"SHA256\"\n };\n \n /**\n * Each HDD is returned in a JSON-like structure:\n * ```\n * {\n * \"prop1\" = \"value1\"\n * \"prop2\" = \"value2\"\n * }\n * ```\n * This method is used to split the result into chunks of HDDs\n */\n function propertyGroups(str) {\n const groups = [];\n\n const startRegex = /(?<=\\n[\\t ]*){/g;\n const endRegex = /\\n[\\t ]*}/g;\n \n let start = 0;\n let end = 0;\n do {\n startRegex.lastIndex = start;\n start = startRegex.exec(ahciDDriveResult)?.index;\n if (start == undefined) break;\n endRegex.lastIndex = start;\n if (endRegex.exec(ahciDDriveResult)?.index == undefined) break;\n end = endRegex.lastIndex;\n console.log(`Found range: ${start} - ${end}`);\n groups.push(str.substring(start, end));\n start = end;\n } while(true);\n\n return groups;\n }\n}\n\nasync function loadMachineIdLinux() {\n let linuxMachineId = \"\";\n\n try {\n linuxMachineId = (await readFile(\"/etc/machine-id\"))?.toString()?.trim() || \"\";\n } catch {\n }\n\n try {\n linuxMachineId = linuxMachineId || (await readFile(\"/var/lib/dbus/machine-id\"))?.toString()?.trim() || \"\";\n } catch {\n }\n\n let cpuModel = undefined;\n let cpuMHz = undefined;\n\n try {\n const cpuInfo = (await readFile(\"/proc/cpuinfo\")).toString();\n\n try {\n for(const match of cpuInfo.matchAll(/^\\s*model name\\s*:\\s*(?<cpuModel>.*)$/gm)) {\n cpuModel = match?.groups?.cpuModel;\n }\n } catch {}\n\n try {\n for (const match of cpuInfo.matchAll(/^\\s*cpu MHz\\s*:\\s*(?<cpuMHz>.*)$/gm)) {\n cpuMHz = match?.groups?.cpuMHz;\n }\n } catch {}\n } catch {\n }\n\n let biosVendor = \"\";\n try {\n biosVendor = (await readFile(\"/sys/devices/virtual/dmi/id/bios_vendor\"))?.toString()?.trim() || \"\";\n } catch {}\n\n let boardVendor = \"\";\n try {\n boardVendor = (await readFile(\"/sys/devices/virtual/dmi/id/board_vendor\"))?.toString()?.trim() || \"\";\n } catch {}\n \n let chassisVendor = \"\";\n try {\n chassisVendor = (await readFile(\"/sys/devices/virtual/dmi/id/chassis_vendor\"))?.toString()?.trim() || \"\";\n } catch {}\n\n const machineFingerprint = `Machine Id: ${linuxMachineId}\\nCPU Model: ${cpuModel}\\nCPU MHz: ${cpuMHz}\\nBIOS Vendor: ${biosVendor}\\nBoard Vendor: ${boardVendor}\\nChassis Vendor: ${chassisVendor}`;\n\n var shasum = crypto.createHash('sha256');\n shasum.update(machineFingerprint);\n const machineId = shasum.digest(\"base64\");\n\n return {\n fingerprint: machineFingerprint,\n id: machineId,\n algorithm: \"SHA256\"\n };\n}\n\nasync function loadMachineIdPerPlatform() {\n try {\n switch (process.platform) {\n case \"win32\": return await loadMachineIdWindows();\n case \"darwin\": return await loadMachineIdDarwin();\n case \"linux\": return await loadMachineIdLinux();\n default: throw new Error(`Platform ${process.platform} not supported.`);\n } \n } catch(error) {\n if (error instanceof Error) {\n return { id: \"ZGVmYXVsdF9pZA==\", fingerprint: \"\", algorithm: \"SHA1\", error };\n } else {\n return { id: \"ZGVmYXVsdF9pZA==\", fingerprint: \"\", algorithm: \"SHA1\" };\n }\n }\n}\n\nlet machineIdCache = undefined;\n\nexport function loadMachineId() {\n return machineIdCache || (machineIdCache = loadMachineIdPerPlatform());\n};\nexport default loadMachineId; \n"],"names":[],"sourceRoot":""}
package/package.json ADDED
@@ -0,0 +1,69 @@
1
+ {
2
+ "name": "@progress/kendo-cli",
3
+ "version": "1.0.0",
4
+ "description": "",
5
+ "repository": {
6
+ "type": "git",
7
+ "url": "git+https://github.com/telerik/scaffolders.git"
8
+ },
9
+ "publishConfig": {
10
+ "access": "public"
11
+ },
12
+ "release": {
13
+ "branches": [
14
+ {
15
+ "name": "main",
16
+ "channel": "latest"
17
+ }
18
+ ]
19
+ },
20
+ "scripts": {
21
+ "build": "tsc -p . && webpack && npm pack && copyfiles --flat --error --verbose progress-kendo-cli-*.tgz ../dist",
22
+ "test": "tsc -p . && jest",
23
+ "semantic-release": "semantic-release"
24
+ },
25
+ "author": "Progress",
26
+ "private": false,
27
+ "license": "SEE LICENSE IN LICENSE.md",
28
+ "devDependencies": {
29
+ "@commitlint/config-conventional": "^18.4.3",
30
+ "@jest/globals": "^29.3.1",
31
+ "@telerik/call-home": "^4.3.0",
32
+ "@telerik/jquery-scaffolders": "1.0.0",
33
+ "@telerik/machine-id": "^1.5.0",
34
+ "@telerik/react-scaffolders": "1.0.0",
35
+ "@telerik/scaffolding": "1.0.0",
36
+ "@telerik/vue-scaffolders": "1.0.0",
37
+ "@types/node": "^18.11.10",
38
+ "@types/semver": "^7.5.6",
39
+ "@types/yargs": "^17.0.15",
40
+ "binary-base64-loader": "^1.0.0",
41
+ "copyfiles": "^2.4.1",
42
+ "jest": "^29.3.1",
43
+ "json-loader": "^0.5.7",
44
+ "raw-loader": "^4.0.2",
45
+ "semantic-release": "^22.0.12",
46
+ "semver": "^7.5.4",
47
+ "ts-loader": "^9.5.1",
48
+ "typescript": "^4.9.3",
49
+ "vscode-diff": "^2.0.2",
50
+ "webpack": "^5.89.0",
51
+ "webpack-cli": "^5.1.4",
52
+ "webpack-shebang-plugin": "^1.1.8",
53
+ "yargs": "^17.6.2"
54
+ },
55
+ "bin": {
56
+ "kendo": "dist/index.js"
57
+ },
58
+ "jest": {
59
+ "testMatch": [
60
+ "**/?(*.)+(spec|test).js?(x)"
61
+ ]
62
+ },
63
+ "files": [
64
+ "package.json",
65
+ "README.md",
66
+ "LICENSE.md",
67
+ "dist/*"
68
+ ]
69
+ }