dependency-manager.js 69 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655
  1. (function webpackUniversalModuleDefinition(root, factory) {
  2. if(typeof exports === 'object' && typeof module === 'object')
  3. module.exports = factory();
  4. else if(typeof define === 'function' && define.amd)
  5. define([], factory);
  6. else if(typeof exports === 'object')
  7. exports["tauri"] = factory();
  8. else
  9. root["tauri"] = factory();
  10. })(this, function() {
  11. return /******/ (() => { // webpackBootstrap
  12. /******/ var __webpack_modules__ = ({
  13. /***/ "../cli.rs/Cargo.toml":
  14. /*!****************************!*\
  15. !*** ../cli.rs/Cargo.toml ***!
  16. \****************************/
  17. /***/ ((module) => {
  18. module.exports = {
  19. "workspace": {},
  20. "package": {
  21. "name": "tauri-cli",
  22. "version": "1.0.0-beta.5",
  23. "authors": [
  24. "Tauri Programme within The Commons Conservancy"
  25. ],
  26. "edition": "2018",
  27. "categories": [
  28. "gui",
  29. "web-programming"
  30. ],
  31. "license": "Apache-2.0 OR MIT",
  32. "homepage": "https://tauri.studio",
  33. "repository": "https://github.com/tauri-apps/tauri",
  34. "description": "Command line interface for building Tauri apps",
  35. "include": [
  36. "src/",
  37. "/templates",
  38. "MergeModules/",
  39. "*.json",
  40. "*.rs"
  41. ]
  42. },
  43. "bin": [
  44. {
  45. "name": "cargo-tauri",
  46. "path": "src/main.rs"
  47. }
  48. ],
  49. "dependencies": {
  50. "clap": {
  51. "version": "3.0.0-beta.2",
  52. "features": [
  53. "yaml"
  54. ]
  55. },
  56. "anyhow": "1.0",
  57. "tauri-bundler": {
  58. "version": "1.0.0-beta.3",
  59. "path": "../bundler"
  60. },
  61. "colored": "2.0",
  62. "once_cell": "1.8",
  63. "serde": {
  64. "version": "1.0",
  65. "features": [
  66. "derive"
  67. ]
  68. },
  69. "serde_json": "1.0",
  70. "serde_with": "1.9",
  71. "notify": "4.0",
  72. "shared_child": "0.3",
  73. "toml_edit": "0.2",
  74. "json-patch": "0.2",
  75. "schemars": "0.8",
  76. "toml": "0.5",
  77. "valico": "3.6",
  78. "handlebars": "4.1",
  79. "include_dir": "0.6",
  80. "minisign": "0.6",
  81. "base64": "0.13.0",
  82. "ureq": "2.1",
  83. "os_info": "3.0",
  84. "semver": "1.0",
  85. "regex": "1.5",
  86. "lazy_static": "1",
  87. "libc": "0.2",
  88. "terminal_size": "0.1",
  89. "unicode-width": "0.1",
  90. "tempfile": "3",
  91. "zeroize": "1.3"
  92. },
  93. "target": {
  94. "cfg(windows)": {
  95. "dependencies": {
  96. "winapi": {
  97. "version": "0.3",
  98. "features": [
  99. "winbase",
  100. "winuser",
  101. "consoleapi",
  102. "processenv",
  103. "wincon"
  104. ]
  105. },
  106. "encode_unicode": "0.3"
  107. }
  108. },
  109. "cfg(target_os = \"linux\")": {
  110. "dependencies": {
  111. "heck": "0.3"
  112. }
  113. }
  114. },
  115. "build-dependencies": {
  116. "schemars": "0.8",
  117. "serde": {
  118. "version": "1.0",
  119. "features": [
  120. "derive"
  121. ]
  122. },
  123. "serde_json": "1.0",
  124. "serde_with": "1.9"
  125. }
  126. }
  127. /***/ }),
  128. /***/ "./src/api/dependency-manager/cargo-crates.ts":
  129. /*!****************************************************!*\
  130. !*** ./src/api/dependency-manager/cargo-crates.ts ***!
  131. \****************************************************/
  132. /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
  133. "use strict";
  134. // Copyright 2019-2021 Tauri Programme within The Commons Conservancy
  135. // SPDX-License-Identifier: Apache-2.0
  136. // SPDX-License-Identifier: MIT
  137. var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
  138. function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
  139. return new (P || (P = Promise))(function (resolve, reject) {
  140. function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
  141. function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
  142. function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
  143. step((generator = generator.apply(thisArg, _arguments || [])).next());
  144. });
  145. };
  146. var __generator = (this && this.__generator) || function (thisArg, body) {
  147. var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
  148. return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
  149. function verb(n) { return function (v) { return step([n, v]); }; }
  150. function step(op) {
  151. if (f) throw new TypeError("Generator is already executing.");
  152. while (_) try {
  153. if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
  154. if (y = 0, t) op = [op[0] & 2, t.value];
  155. switch (op[0]) {
  156. case 0: case 1: t = op; break;
  157. case 4: _.label++; return { value: op[1], done: false };
  158. case 5: _.label++; y = op[1]; op = [0]; continue;
  159. case 7: op = _.ops.pop(); _.trys.pop(); continue;
  160. default:
  161. if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
  162. if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
  163. if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
  164. if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
  165. if (t[2]) _.ops.pop();
  166. _.trys.pop(); continue;
  167. }
  168. op = body.call(thisArg, _);
  169. } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
  170. if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
  171. }
  172. };
  173. var __spreadArray = (this && this.__spreadArray) || function (to, from) {
  174. for (var i = 0, il = from.length, j = to.length; i < il; i++, j++)
  175. to[j] = from[i];
  176. return to;
  177. };
  178. var __importDefault = (this && this.__importDefault) || function (mod) {
  179. return (mod && mod.__esModule) ? mod : { "default": mod };
  180. };
  181. Object.defineProperty(exports, "__esModule", ({ value: true }));
  182. exports.update = exports.install = void 0;
  183. var spawn_1 = __webpack_require__(/*! ./../../helpers/spawn */ "./src/helpers/spawn.ts");
  184. var types_1 = __webpack_require__(/*! ./types */ "./src/api/dependency-manager/types.ts");
  185. var util_1 = __webpack_require__(/*! ./util */ "./src/api/dependency-manager/util.ts");
  186. var logger_1 = __importDefault(__webpack_require__(/*! ../../helpers/logger */ "./src/helpers/logger.ts"));
  187. var app_paths_1 = __webpack_require__(/*! ../../helpers/app-paths */ "./src/helpers/app-paths.ts");
  188. var fs_1 = __webpack_require__(/*! fs */ "fs");
  189. var toml_1 = __importDefault(__webpack_require__(/*! @tauri-apps/toml */ "@tauri-apps/toml"));
  190. var inquirer_1 = __importDefault(__webpack_require__(/*! inquirer */ "inquirer"));
  191. var log = logger_1.default('dependency:crates');
  192. var dependencies = ['tauri'];
  193. function readToml(tomlPath) {
  194. if (fs_1.existsSync(tomlPath)) {
  195. var manifest = fs_1.readFileSync(tomlPath).toString();
  196. return toml_1.default.parse(manifest);
  197. }
  198. return null;
  199. }
  200. function dependencyDefinition(version) {
  201. return { version: version.substring(0, version.lastIndexOf('.')) };
  202. }
  203. function manageDependencies(managementType) {
  204. return __awaiter(this, void 0, void 0, function () {
  205. var installedDeps, updatedDeps, result, manifest, lockPath, lock, _loop_1, _i, dependencies_1, dependency;
  206. return __generator(this, function (_a) {
  207. switch (_a.label) {
  208. case 0:
  209. installedDeps = [];
  210. updatedDeps = [];
  211. result = new Map();
  212. manifest = readToml(app_paths_1.resolve.tauri('Cargo.toml'));
  213. if (manifest === null) {
  214. log('Cargo.toml not found. Skipping crates check...');
  215. return [2 /*return*/, result];
  216. }
  217. lockPath = app_paths_1.resolve.tauri('Cargo.lock');
  218. if (!fs_1.existsSync(lockPath)) {
  219. spawn_1.spawnSync('cargo', ['generate-lockfile'], app_paths_1.tauriDir);
  220. }
  221. lock = readToml(lockPath);
  222. _loop_1 = function (dependency) {
  223. var lockPackages, manifestDep, currentVersion, latestVersion, latestVersion, inquired;
  224. return __generator(this, function (_b) {
  225. switch (_b.label) {
  226. case 0:
  227. lockPackages = lock
  228. ? lock.package.filter(function (pkg) { return pkg.name === dependency; })
  229. : [];
  230. manifestDep = manifest.dependencies[dependency];
  231. currentVersion = lockPackages.length === 1
  232. ? lockPackages[0].version
  233. : typeof manifestDep === 'string'
  234. ? manifestDep
  235. : manifestDep === null || manifestDep === void 0 ? void 0 : manifestDep.version;
  236. if (!(currentVersion === undefined)) return [3 /*break*/, 1];
  237. log("Installing " + dependency + "...");
  238. latestVersion = util_1.getCrateLatestVersion(dependency);
  239. if (latestVersion !== null) {
  240. // eslint-disable-next-line security/detect-object-injection
  241. manifest.dependencies[dependency] = dependencyDefinition(latestVersion);
  242. }
  243. installedDeps.push(dependency);
  244. return [3 /*break*/, 6];
  245. case 1:
  246. if (!(managementType === types_1.ManagementType.Update)) return [3 /*break*/, 5];
  247. latestVersion = util_1.getCrateLatestVersion(dependency);
  248. if (!(latestVersion !== null && util_1.semverLt(currentVersion, latestVersion))) return [3 /*break*/, 3];
  249. return [4 /*yield*/, inquirer_1.default.prompt([
  250. {
  251. type: 'confirm',
  252. name: 'answer',
  253. message: "[CRATES] \"" + dependency + "\" latest version is " + latestVersion + ". Do you want to update?",
  254. default: false
  255. }
  256. ])];
  257. case 2:
  258. inquired = (_b.sent());
  259. if (inquired.answer) {
  260. log("Updating " + dependency + "...");
  261. // eslint-disable-next-line security/detect-object-injection
  262. manifest.dependencies[dependency] =
  263. dependencyDefinition(latestVersion);
  264. updatedDeps.push(dependency);
  265. }
  266. return [3 /*break*/, 4];
  267. case 3:
  268. log("\"" + dependency + "\" is up to date");
  269. _b.label = 4;
  270. case 4: return [3 /*break*/, 6];
  271. case 5:
  272. log("\"" + dependency + "\" is already installed");
  273. _b.label = 6;
  274. case 6: return [2 /*return*/];
  275. }
  276. });
  277. };
  278. _i = 0, dependencies_1 = dependencies;
  279. _a.label = 1;
  280. case 1:
  281. if (!(_i < dependencies_1.length)) return [3 /*break*/, 4];
  282. dependency = dependencies_1[_i];
  283. return [5 /*yield**/, _loop_1(dependency)];
  284. case 2:
  285. _a.sent();
  286. _a.label = 3;
  287. case 3:
  288. _i++;
  289. return [3 /*break*/, 1];
  290. case 4:
  291. if (installedDeps.length || updatedDeps.length) {
  292. fs_1.writeFileSync(app_paths_1.resolve.tauri('Cargo.toml'), toml_1.default.stringify(manifest));
  293. }
  294. if (updatedDeps.length) {
  295. if (!fs_1.existsSync(app_paths_1.resolve.tauri('Cargo.lock'))) {
  296. spawn_1.spawnSync('cargo', ['generate-lockfile'], app_paths_1.tauriDir);
  297. }
  298. spawn_1.spawnSync('cargo', __spreadArray([
  299. 'update',
  300. '--aggressive'
  301. ], updatedDeps.reduce(function (initialValue, dep) { return __spreadArray(__spreadArray([], initialValue), ['-p', dep]); }, [])), app_paths_1.tauriDir);
  302. }
  303. result.set(types_1.ManagementType.Install, installedDeps);
  304. result.set(types_1.ManagementType.Update, updatedDeps);
  305. return [2 /*return*/, result];
  306. }
  307. });
  308. });
  309. }
  310. function install() {
  311. return __awaiter(this, void 0, void 0, function () {
  312. return __generator(this, function (_a) {
  313. switch (_a.label) {
  314. case 0: return [4 /*yield*/, manageDependencies(types_1.ManagementType.Install)];
  315. case 1: return [2 /*return*/, _a.sent()];
  316. }
  317. });
  318. });
  319. }
  320. exports.install = install;
  321. function update() {
  322. return __awaiter(this, void 0, void 0, function () {
  323. return __generator(this, function (_a) {
  324. switch (_a.label) {
  325. case 0: return [4 /*yield*/, manageDependencies(types_1.ManagementType.Update)];
  326. case 1: return [2 /*return*/, _a.sent()];
  327. }
  328. });
  329. });
  330. }
  331. exports.update = update;
  332. /***/ }),
  333. /***/ "./src/api/dependency-manager/index.ts":
  334. /*!*********************************************!*\
  335. !*** ./src/api/dependency-manager/index.ts ***!
  336. \*********************************************/
  337. /***/ (function(module, exports, __webpack_require__) {
  338. "use strict";
  339. // Copyright 2019-2021 Tauri Programme within The Commons Conservancy
  340. // SPDX-License-Identifier: Apache-2.0
  341. // SPDX-License-Identifier: MIT
  342. var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
  343. if (k2 === undefined) k2 = k;
  344. Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
  345. }) : (function(o, m, k, k2) {
  346. if (k2 === undefined) k2 = k;
  347. o[k2] = m[k];
  348. }));
  349. var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
  350. Object.defineProperty(o, "default", { enumerable: true, value: v });
  351. }) : function(o, v) {
  352. o["default"] = v;
  353. });
  354. var __importStar = (this && this.__importStar) || function (mod) {
  355. if (mod && mod.__esModule) return mod;
  356. var result = {};
  357. if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
  358. __setModuleDefault(result, mod);
  359. return result;
  360. };
  361. var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
  362. function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
  363. return new (P || (P = Promise))(function (resolve, reject) {
  364. function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
  365. function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
  366. function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
  367. step((generator = generator.apply(thisArg, _arguments || [])).next());
  368. });
  369. };
  370. var __generator = (this && this.__generator) || function (thisArg, body) {
  371. var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
  372. return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
  373. function verb(n) { return function (v) { return step([n, v]); }; }
  374. function step(op) {
  375. if (f) throw new TypeError("Generator is already executing.");
  376. while (_) try {
  377. if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
  378. if (y = 0, t) op = [op[0] & 2, t.value];
  379. switch (op[0]) {
  380. case 0: case 1: t = op; break;
  381. case 4: _.label++; return { value: op[1], done: false };
  382. case 5: _.label++; y = op[1]; op = [0]; continue;
  383. case 7: op = _.ops.pop(); _.trys.pop(); continue;
  384. default:
  385. if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
  386. if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
  387. if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
  388. if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
  389. if (t[2]) _.ops.pop();
  390. _.trys.pop(); continue;
  391. }
  392. op = body.call(thisArg, _);
  393. } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
  394. if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
  395. }
  396. };
  397. var __importDefault = (this && this.__importDefault) || function (mod) {
  398. return (mod && mod.__esModule) ? mod : { "default": mod };
  399. };
  400. Object.defineProperty(exports, "__esModule", ({ value: true }));
  401. var logger_1 = __importDefault(__webpack_require__(/*! ../../helpers/logger */ "./src/helpers/logger.ts"));
  402. var rust = __importStar(__webpack_require__(/*! ./rust */ "./src/api/dependency-manager/rust.ts"));
  403. var cargoCrates = __importStar(__webpack_require__(/*! ./cargo-crates */ "./src/api/dependency-manager/cargo-crates.ts"));
  404. var npmPackages = __importStar(__webpack_require__(/*! ./npm-packages */ "./src/api/dependency-manager/npm-packages.ts"));
  405. var log = logger_1.default('dependency:manager');
  406. module.exports = {
  407. installDependencies: function () {
  408. return __awaiter(this, void 0, void 0, function () {
  409. return __generator(this, function (_a) {
  410. switch (_a.label) {
  411. case 0:
  412. log('Installing missing dependencies...');
  413. return [4 /*yield*/, rust.install()];
  414. case 1:
  415. _a.sent();
  416. return [4 /*yield*/, cargoCrates.install()];
  417. case 2:
  418. _a.sent();
  419. return [4 /*yield*/, npmPackages.install()];
  420. case 3:
  421. _a.sent();
  422. return [2 /*return*/];
  423. }
  424. });
  425. });
  426. },
  427. updateDependencies: function () {
  428. return __awaiter(this, void 0, void 0, function () {
  429. return __generator(this, function (_a) {
  430. switch (_a.label) {
  431. case 0:
  432. log('Updating dependencies...');
  433. return [4 /*yield*/, rust.update()];
  434. case 1:
  435. _a.sent();
  436. return [4 /*yield*/, cargoCrates.update()];
  437. case 2:
  438. _a.sent();
  439. return [4 /*yield*/, npmPackages.update()];
  440. case 3:
  441. _a.sent();
  442. return [2 /*return*/];
  443. }
  444. });
  445. });
  446. }
  447. };
  448. /***/ }),
  449. /***/ "./src/api/dependency-manager/managers/index.ts":
  450. /*!******************************************************!*\
  451. !*** ./src/api/dependency-manager/managers/index.ts ***!
  452. \******************************************************/
  453. /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
  454. "use strict";
  455. var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
  456. if (k2 === undefined) k2 = k;
  457. Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
  458. }) : (function(o, m, k, k2) {
  459. if (k2 === undefined) k2 = k;
  460. o[k2] = m[k];
  461. }));
  462. var __exportStar = (this && this.__exportStar) || function(m, exports) {
  463. for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
  464. };
  465. Object.defineProperty(exports, "__esModule", ({ value: true }));
  466. __exportStar(__webpack_require__(/*! ./yarn-manager */ "./src/api/dependency-manager/managers/yarn-manager.ts"), exports);
  467. __exportStar(__webpack_require__(/*! ./npm-manager */ "./src/api/dependency-manager/managers/npm-manager.ts"), exports);
  468. __exportStar(__webpack_require__(/*! ./pnpm-manager */ "./src/api/dependency-manager/managers/pnpm-manager.ts"), exports);
  469. __exportStar(__webpack_require__(/*! ./types */ "./src/api/dependency-manager/managers/types.ts"), exports);
  470. /***/ }),
  471. /***/ "./src/api/dependency-manager/managers/npm-manager.ts":
  472. /*!************************************************************!*\
  473. !*** ./src/api/dependency-manager/managers/npm-manager.ts ***!
  474. \************************************************************/
  475. /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
  476. "use strict";
  477. Object.defineProperty(exports, "__esModule", ({ value: true }));
  478. exports.NpmManager = void 0;
  479. var cross_spawn_1 = __webpack_require__(/*! cross-spawn */ "cross-spawn");
  480. var spawn_1 = __webpack_require__(/*! ../../../helpers/spawn */ "./src/helpers/spawn.ts");
  481. var app_paths_1 = __webpack_require__(/*! ../../../helpers/app-paths */ "./src/helpers/app-paths.ts");
  482. var NpmManager = /** @class */ (function () {
  483. function NpmManager() {
  484. this.type = 'npm';
  485. }
  486. NpmManager.prototype.installPackage = function (packageName) {
  487. spawn_1.spawnSync('npm', ['install', packageName], app_paths_1.appDir);
  488. };
  489. NpmManager.prototype.installDevPackage = function (packageName) {
  490. spawn_1.spawnSync('npm', ['install', packageName, '--save-dev'], app_paths_1.appDir);
  491. };
  492. NpmManager.prototype.updatePackage = function (packageName) {
  493. spawn_1.spawnSync('npm', ['install', packageName + "@latest"], app_paths_1.appDir);
  494. };
  495. NpmManager.prototype.getPackageVersion = function (packageName) {
  496. var child = cross_spawn_1.sync('npm', ['list', packageName, 'version', '--depth', '0'], {
  497. cwd: app_paths_1.appDir
  498. });
  499. var output = String(child.output[1]);
  500. // eslint-disable-next-line security/detect-non-literal-regexp
  501. var matches = new RegExp(packageName + '@(\\S+)', 'g').exec(output);
  502. if (matches === null || matches === void 0 ? void 0 : matches[1]) {
  503. return matches[1];
  504. }
  505. else {
  506. return null;
  507. }
  508. };
  509. NpmManager.prototype.getLatestVersion = function (packageName) {
  510. var child = cross_spawn_1.sync('npm', ['show', packageName, 'version'], {
  511. cwd: app_paths_1.appDir
  512. });
  513. return String(child.output[1]).replace('\n', '');
  514. };
  515. return NpmManager;
  516. }());
  517. exports.NpmManager = NpmManager;
  518. /***/ }),
  519. /***/ "./src/api/dependency-manager/managers/pnpm-manager.ts":
  520. /*!*************************************************************!*\
  521. !*** ./src/api/dependency-manager/managers/pnpm-manager.ts ***!
  522. \*************************************************************/
  523. /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
  524. "use strict";
  525. Object.defineProperty(exports, "__esModule", ({ value: true }));
  526. exports.PnpmManager = void 0;
  527. var cross_spawn_1 = __webpack_require__(/*! cross-spawn */ "cross-spawn");
  528. var spawn_1 = __webpack_require__(/*! ../../../helpers/spawn */ "./src/helpers/spawn.ts");
  529. var app_paths_1 = __webpack_require__(/*! ../../../helpers/app-paths */ "./src/helpers/app-paths.ts");
  530. var PnpmManager = /** @class */ (function () {
  531. function PnpmManager() {
  532. this.type = 'pnpm';
  533. }
  534. PnpmManager.prototype.installPackage = function (packageName) {
  535. spawn_1.spawnSync('pnpm', ['add', packageName], app_paths_1.appDir);
  536. };
  537. PnpmManager.prototype.installDevPackage = function (packageName) {
  538. spawn_1.spawnSync('pnpm', ['add', packageName, '--save-dev'], app_paths_1.appDir);
  539. };
  540. PnpmManager.prototype.updatePackage = function (packageName) {
  541. spawn_1.spawnSync('pnpm', ['add', packageName + "@latest"], app_paths_1.appDir);
  542. };
  543. PnpmManager.prototype.getPackageVersion = function (packageName) {
  544. var child = cross_spawn_1.sync('pnpm', ['list', packageName, 'version', '--depth', '0'], {
  545. cwd: app_paths_1.appDir
  546. });
  547. var output = String(child.output[1]);
  548. // eslint-disable-next-line security/detect-non-literal-regexp
  549. var matches = new RegExp(packageName + ' (\\S+)', 'g').exec(output);
  550. if (matches === null || matches === void 0 ? void 0 : matches[1]) {
  551. return matches[1];
  552. }
  553. else {
  554. return null;
  555. }
  556. };
  557. PnpmManager.prototype.getLatestVersion = function (packageName) {
  558. var child = cross_spawn_1.sync('pnpm', ['info', packageName, 'version'], {
  559. cwd: app_paths_1.appDir
  560. });
  561. return String(child.output[1]).replace('\n', '');
  562. };
  563. return PnpmManager;
  564. }());
  565. exports.PnpmManager = PnpmManager;
  566. /***/ }),
  567. /***/ "./src/api/dependency-manager/managers/types.ts":
  568. /*!******************************************************!*\
  569. !*** ./src/api/dependency-manager/managers/types.ts ***!
  570. \******************************************************/
  571. /***/ ((__unused_webpack_module, exports) => {
  572. "use strict";
  573. Object.defineProperty(exports, "__esModule", ({ value: true }));
  574. /***/ }),
  575. /***/ "./src/api/dependency-manager/managers/yarn-manager.ts":
  576. /*!*************************************************************!*\
  577. !*** ./src/api/dependency-manager/managers/yarn-manager.ts ***!
  578. \*************************************************************/
  579. /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
  580. "use strict";
  581. Object.defineProperty(exports, "__esModule", ({ value: true }));
  582. exports.YarnManager = void 0;
  583. var cross_spawn_1 = __webpack_require__(/*! cross-spawn */ "cross-spawn");
  584. var spawn_1 = __webpack_require__(/*! ../../../helpers/spawn */ "./src/helpers/spawn.ts");
  585. var app_paths_1 = __webpack_require__(/*! ../../../helpers/app-paths */ "./src/helpers/app-paths.ts");
  586. var YarnManager = /** @class */ (function () {
  587. function YarnManager() {
  588. this.type = 'yarn';
  589. }
  590. YarnManager.prototype.installPackage = function (packageName) {
  591. spawn_1.spawnSync('yarn', ['add', packageName], app_paths_1.appDir);
  592. };
  593. YarnManager.prototype.installDevPackage = function (packageName) {
  594. spawn_1.spawnSync('yarn', ['add', packageName, '--dev'], app_paths_1.appDir);
  595. };
  596. YarnManager.prototype.updatePackage = function (packageName) {
  597. spawn_1.spawnSync('yarn', ['upgrade', packageName, '--latest'], app_paths_1.appDir);
  598. };
  599. YarnManager.prototype.getPackageVersion = function (packageName) {
  600. var child = cross_spawn_1.sync('yarn', ['list', '--pattern', packageName, '--depth', '0'], { cwd: app_paths_1.appDir });
  601. var output = String(child.output[1]);
  602. // eslint-disable-next-line security/detect-non-literal-regexp
  603. var matches = new RegExp(packageName + '@(\\S+)', 'g').exec(output);
  604. if (matches === null || matches === void 0 ? void 0 : matches[1]) {
  605. return matches[1];
  606. }
  607. else {
  608. return null;
  609. }
  610. };
  611. YarnManager.prototype.getLatestVersion = function (packageName) {
  612. var child = cross_spawn_1.sync('yarn', ['info', packageName, 'version', '--json'], { cwd: app_paths_1.appDir });
  613. var output = String(child.output[1]);
  614. var packageJson = JSON.parse(output);
  615. return packageJson.data;
  616. };
  617. return YarnManager;
  618. }());
  619. exports.YarnManager = YarnManager;
  620. /***/ }),
  621. /***/ "./src/api/dependency-manager/npm-packages.ts":
  622. /*!****************************************************!*\
  623. !*** ./src/api/dependency-manager/npm-packages.ts ***!
  624. \****************************************************/
  625. /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
  626. "use strict";
  627. // Copyright 2019-2021 Tauri Programme within The Commons Conservancy
  628. // SPDX-License-Identifier: Apache-2.0
  629. // SPDX-License-Identifier: MIT
  630. var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
  631. function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
  632. return new (P || (P = Promise))(function (resolve, reject) {
  633. function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
  634. function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
  635. function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
  636. step((generator = generator.apply(thisArg, _arguments || [])).next());
  637. });
  638. };
  639. var __generator = (this && this.__generator) || function (thisArg, body) {
  640. var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
  641. return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
  642. function verb(n) { return function (v) { return step([n, v]); }; }
  643. function step(op) {
  644. if (f) throw new TypeError("Generator is already executing.");
  645. while (_) try {
  646. if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
  647. if (y = 0, t) op = [op[0] & 2, t.value];
  648. switch (op[0]) {
  649. case 0: case 1: t = op; break;
  650. case 4: _.label++; return { value: op[1], done: false };
  651. case 5: _.label++; y = op[1]; op = [0]; continue;
  652. case 7: op = _.ops.pop(); _.trys.pop(); continue;
  653. default:
  654. if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
  655. if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
  656. if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
  657. if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
  658. if (t[2]) _.ops.pop();
  659. _.trys.pop(); continue;
  660. }
  661. op = body.call(thisArg, _);
  662. } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
  663. if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
  664. }
  665. };
  666. var __importDefault = (this && this.__importDefault) || function (mod) {
  667. return (mod && mod.__esModule) ? mod : { "default": mod };
  668. };
  669. Object.defineProperty(exports, "__esModule", ({ value: true }));
  670. exports.update = exports.installTheseDev = exports.installThese = exports.install = void 0;
  671. var types_1 = __webpack_require__(/*! ./types */ "./src/api/dependency-manager/types.ts");
  672. var util_1 = __webpack_require__(/*! ./util */ "./src/api/dependency-manager/util.ts");
  673. var logger_1 = __importDefault(__webpack_require__(/*! ../../helpers/logger */ "./src/helpers/logger.ts"));
  674. var app_paths_1 = __webpack_require__(/*! ../../helpers/app-paths */ "./src/helpers/app-paths.ts");
  675. var inquirer_1 = __importDefault(__webpack_require__(/*! inquirer */ "inquirer"));
  676. var fs_1 = __webpack_require__(/*! fs */ "fs");
  677. var cross_spawn_1 = __webpack_require__(/*! cross-spawn */ "cross-spawn");
  678. var log = logger_1.default('dependency:npm-packages');
  679. function manageDependencies(managementType, dependencies) {
  680. var _a, _b, _c;
  681. return __awaiter(this, void 0, void 0, function () {
  682. var installedDeps, updatedDeps, npmChild, yarnChild, pnpmChild, _i, dependencies_1, dependency, currentVersion, packageManager, prefix, inquired, latestVersion, inquired, result;
  683. return __generator(this, function (_d) {
  684. switch (_d.label) {
  685. case 0:
  686. installedDeps = [];
  687. updatedDeps = [];
  688. npmChild = cross_spawn_1.sync('npm', ['--version']);
  689. yarnChild = cross_spawn_1.sync('yarn', ['--version']);
  690. pnpmChild = cross_spawn_1.sync('pnpm', ['--version']);
  691. if (((_a = npmChild.status) !== null && _a !== void 0 ? _a : npmChild.error) &&
  692. ((_b = yarnChild.status) !== null && _b !== void 0 ? _b : yarnChild.error) &&
  693. ((_c = pnpmChild.status) !== null && _c !== void 0 ? _c : pnpmChild.error)) {
  694. throw new Error('must have installed one of the following package managers `npm`, `yarn`, `pnpm` to manage dependenices');
  695. }
  696. if (!fs_1.existsSync(app_paths_1.resolve.app('package.json'))) return [3 /*break*/, 10];
  697. _i = 0, dependencies_1 = dependencies;
  698. _d.label = 1;
  699. case 1:
  700. if (!(_i < dependencies_1.length)) return [3 /*break*/, 10];
  701. dependency = dependencies_1[_i];
  702. currentVersion = util_1.getNpmPackageVersion(dependency);
  703. packageManager = util_1.getManager().type.toUpperCase();
  704. if (!(currentVersion === null)) return [3 /*break*/, 4];
  705. log("Installing " + dependency + "...");
  706. if (!(managementType === types_1.ManagementType.Install ||
  707. managementType === types_1.ManagementType.InstallDev)) return [3 /*break*/, 3];
  708. prefix = managementType === types_1.ManagementType.InstallDev
  709. ? ' as dev-dependency'
  710. : '';
  711. return [4 /*yield*/, inquirer_1.default.prompt([
  712. {
  713. type: 'confirm',
  714. name: 'answer',
  715. message: "[" + packageManager + "]: \"Do you want to install " + dependency + prefix + "?\"",
  716. default: false
  717. }
  718. ])];
  719. case 2:
  720. inquired = _d.sent();
  721. if (inquired.answer) {
  722. if (managementType === types_1.ManagementType.Install) {
  723. util_1.installNpmPackage(dependency);
  724. }
  725. else if (managementType === types_1.ManagementType.InstallDev) {
  726. util_1.installNpmDevPackage(dependency);
  727. }
  728. installedDeps.push(dependency);
  729. }
  730. _d.label = 3;
  731. case 3: return [3 /*break*/, 9];
  732. case 4:
  733. if (!(managementType === types_1.ManagementType.Update)) return [3 /*break*/, 8];
  734. latestVersion = util_1.getNpmLatestVersion(dependency);
  735. if (!util_1.semverLt(currentVersion, latestVersion)) return [3 /*break*/, 6];
  736. return [4 /*yield*/, inquirer_1.default.prompt([
  737. {
  738. type: 'confirm',
  739. name: 'answer',
  740. message: "[" + packageManager + "]: \"" + dependency + "\" latest version is " + latestVersion + ". Do you want to update?",
  741. default: false
  742. }
  743. ])];
  744. case 5:
  745. inquired = _d.sent();
  746. if (inquired.answer) {
  747. log("Updating " + dependency + "...");
  748. util_1.updateNpmPackage(dependency);
  749. updatedDeps.push(dependency);
  750. }
  751. return [3 /*break*/, 7];
  752. case 6:
  753. log("\"" + dependency + "\" is up to date");
  754. _d.label = 7;
  755. case 7: return [3 /*break*/, 9];
  756. case 8:
  757. log("\"" + dependency + "\" is already installed");
  758. _d.label = 9;
  759. case 9:
  760. _i++;
  761. return [3 /*break*/, 1];
  762. case 10:
  763. result = new Map();
  764. result.set(types_1.ManagementType.Install, installedDeps);
  765. result.set(types_1.ManagementType.Update, updatedDeps);
  766. return [2 /*return*/, result];
  767. }
  768. });
  769. });
  770. }
  771. var dependencies = ['@tauri-apps/api', '@tauri-apps/cli'];
  772. function install() {
  773. return __awaiter(this, void 0, void 0, function () {
  774. return __generator(this, function (_a) {
  775. switch (_a.label) {
  776. case 0: return [4 /*yield*/, manageDependencies(types_1.ManagementType.Install, dependencies)];
  777. case 1: return [2 /*return*/, _a.sent()];
  778. }
  779. });
  780. });
  781. }
  782. exports.install = install;
  783. function installThese(dependencies) {
  784. return __awaiter(this, void 0, void 0, function () {
  785. return __generator(this, function (_a) {
  786. switch (_a.label) {
  787. case 0: return [4 /*yield*/, manageDependencies(types_1.ManagementType.Install, dependencies)];
  788. case 1: return [2 /*return*/, _a.sent()];
  789. }
  790. });
  791. });
  792. }
  793. exports.installThese = installThese;
  794. function installTheseDev(dependencies) {
  795. return __awaiter(this, void 0, void 0, function () {
  796. return __generator(this, function (_a) {
  797. switch (_a.label) {
  798. case 0: return [4 /*yield*/, manageDependencies(types_1.ManagementType.InstallDev, dependencies)];
  799. case 1: return [2 /*return*/, _a.sent()];
  800. }
  801. });
  802. });
  803. }
  804. exports.installTheseDev = installTheseDev;
  805. function update() {
  806. return __awaiter(this, void 0, void 0, function () {
  807. return __generator(this, function (_a) {
  808. switch (_a.label) {
  809. case 0: return [4 /*yield*/, manageDependencies(types_1.ManagementType.Update, dependencies)];
  810. case 1: return [2 /*return*/, _a.sent()];
  811. }
  812. });
  813. });
  814. }
  815. exports.update = update;
  816. /***/ }),
  817. /***/ "./src/api/dependency-manager/rust.ts":
  818. /*!********************************************!*\
  819. !*** ./src/api/dependency-manager/rust.ts ***!
  820. \********************************************/
  821. /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
  822. "use strict";
  823. // Copyright 2019-2021 Tauri Programme within The Commons Conservancy
  824. // SPDX-License-Identifier: Apache-2.0
  825. // SPDX-License-Identifier: MIT
  826. var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
  827. function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
  828. return new (P || (P = Promise))(function (resolve, reject) {
  829. function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
  830. function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
  831. function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
  832. step((generator = generator.apply(thisArg, _arguments || [])).next());
  833. });
  834. };
  835. var __generator = (this && this.__generator) || function (thisArg, body) {
  836. var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
  837. return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
  838. function verb(n) { return function (v) { return step([n, v]); }; }
  839. function step(op) {
  840. if (f) throw new TypeError("Generator is already executing.");
  841. while (_) try {
  842. if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
  843. if (y = 0, t) op = [op[0] & 2, t.value];
  844. switch (op[0]) {
  845. case 0: case 1: t = op; break;
  846. case 4: _.label++; return { value: op[1], done: false };
  847. case 5: _.label++; y = op[1]; op = [0]; continue;
  848. case 7: op = _.ops.pop(); _.trys.pop(); continue;
  849. default:
  850. if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
  851. if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
  852. if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
  853. if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
  854. if (t[2]) _.ops.pop();
  855. _.trys.pop(); continue;
  856. }
  857. op = body.call(thisArg, _);
  858. } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
  859. if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
  860. }
  861. };
  862. var __importDefault = (this && this.__importDefault) || function (mod) {
  863. return (mod && mod.__esModule) ? mod : { "default": mod };
  864. };
  865. Object.defineProperty(exports, "__esModule", ({ value: true }));
  866. exports.update = exports.install = void 0;
  867. var types_1 = __webpack_require__(/*! ./types */ "./src/api/dependency-manager/types.ts");
  868. var spawn_1 = __webpack_require__(/*! ../../helpers/spawn */ "./src/helpers/spawn.ts");
  869. var get_script_version_1 = __importDefault(__webpack_require__(/*! ../../helpers/get-script-version */ "./src/helpers/get-script-version.ts"));
  870. var download_binary_1 = __webpack_require__(/*! ../../helpers/download-binary */ "./src/helpers/download-binary.ts");
  871. var logger_1 = __importDefault(__webpack_require__(/*! ../../helpers/logger */ "./src/helpers/logger.ts"));
  872. var fs_1 = __webpack_require__(/*! fs */ "fs");
  873. var path_1 = __webpack_require__(/*! path */ "path");
  874. var os_1 = __webpack_require__(/*! os */ "os");
  875. var https_1 = __importDefault(__webpack_require__(/*! https */ "https"));
  876. var log = logger_1.default('dependency:rust');
  877. // eslint-disable-next-line @typescript-eslint/no-unused-vars
  878. function download(url, dest) {
  879. return __awaiter(this, void 0, void 0, function () {
  880. var file;
  881. return __generator(this, function (_a) {
  882. switch (_a.label) {
  883. case 0:
  884. file = fs_1.createWriteStream(dest);
  885. return [4 /*yield*/, new Promise(function (resolve, reject) {
  886. https_1.default
  887. .get(url, function (response) {
  888. response.pipe(file);
  889. file.on('finish', function () {
  890. file.close();
  891. resolve();
  892. });
  893. })
  894. .on('error', function (err) {
  895. fs_1.unlinkSync(dest);
  896. reject(err.message);
  897. });
  898. })];
  899. case 1: return [2 /*return*/, _a.sent()];
  900. }
  901. });
  902. });
  903. }
  904. function installRustup() {
  905. return __awaiter(this, void 0, void 0, function () {
  906. var assetName, rustupPath;
  907. return __generator(this, function (_a) {
  908. switch (_a.label) {
  909. case 0:
  910. assetName = os_1.platform() === 'win32' ? 'rustup-init.exe' : 'rustup-init.sh';
  911. rustupPath = path_1.resolve(__dirname, "../../bin/" + assetName);
  912. if (!!fs_1.existsSync(rustupPath)) return [3 /*break*/, 2];
  913. return [4 /*yield*/, download_binary_1.downloadRustup()];
  914. case 1:
  915. _a.sent();
  916. _a.label = 2;
  917. case 2:
  918. if (os_1.platform() === 'win32') {
  919. return [2 /*return*/, spawn_1.spawnSync('powershell', ['-NoProfile', rustupPath], process.cwd())];
  920. }
  921. return [2 /*return*/, spawn_1.spawnSync('/bin/sh', [rustupPath], process.cwd())];
  922. }
  923. });
  924. });
  925. }
  926. function manageDependencies(managementType) {
  927. return __awaiter(this, void 0, void 0, function () {
  928. return __generator(this, function (_a) {
  929. switch (_a.label) {
  930. case 0:
  931. if (!(get_script_version_1.default('rustup') === null)) return [3 /*break*/, 2];
  932. log('Installing rustup...');
  933. return [4 /*yield*/, installRustup()];
  934. case 1:
  935. _a.sent();
  936. _a.label = 2;
  937. case 2:
  938. if (managementType === types_1.ManagementType.Update) {
  939. spawn_1.spawnSync('rustup', ['update'], process.cwd());
  940. }
  941. return [2 /*return*/];
  942. }
  943. });
  944. });
  945. }
  946. function install() {
  947. return __awaiter(this, void 0, void 0, function () {
  948. return __generator(this, function (_a) {
  949. switch (_a.label) {
  950. case 0: return [4 /*yield*/, manageDependencies(types_1.ManagementType.Install)];
  951. case 1: return [2 /*return*/, _a.sent()];
  952. }
  953. });
  954. });
  955. }
  956. exports.install = install;
  957. function update() {
  958. return __awaiter(this, void 0, void 0, function () {
  959. return __generator(this, function (_a) {
  960. switch (_a.label) {
  961. case 0: return [4 /*yield*/, manageDependencies(types_1.ManagementType.Update)];
  962. case 1: return [2 /*return*/, _a.sent()];
  963. }
  964. });
  965. });
  966. }
  967. exports.update = update;
  968. /***/ }),
  969. /***/ "./src/api/dependency-manager/types.ts":
  970. /*!*********************************************!*\
  971. !*** ./src/api/dependency-manager/types.ts ***!
  972. \*********************************************/
  973. /***/ ((__unused_webpack_module, exports) => {
  974. "use strict";
  975. // Copyright 2019-2021 Tauri Programme within The Commons Conservancy
  976. // SPDX-License-Identifier: Apache-2.0
  977. // SPDX-License-Identifier: MIT
  978. Object.defineProperty(exports, "__esModule", ({ value: true }));
  979. exports.ManagementType = void 0;
  980. var ManagementType;
  981. (function (ManagementType) {
  982. ManagementType[ManagementType["Install"] = 0] = "Install";
  983. ManagementType[ManagementType["InstallDev"] = 1] = "InstallDev";
  984. ManagementType[ManagementType["Update"] = 2] = "Update";
  985. })(ManagementType = exports.ManagementType || (exports.ManagementType = {}));
  986. /***/ }),
  987. /***/ "./src/api/dependency-manager/util.ts":
  988. /*!********************************************!*\
  989. !*** ./src/api/dependency-manager/util.ts ***!
  990. \********************************************/
  991. /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
  992. "use strict";
  993. // Copyright 2019-2021 Tauri Programme within The Commons Conservancy
  994. // SPDX-License-Identifier: Apache-2.0
  995. // SPDX-License-Identifier: MIT
  996. Object.defineProperty(exports, "__esModule", ({ value: true }));
  997. exports.semverLt = exports.padVersion = exports.updateNpmPackage = exports.installNpmDevPackage = exports.installNpmPackage = exports.getNpmPackageVersion = exports.getNpmLatestVersion = exports.getCrateLatestVersion = exports.getManager = void 0;
  998. var cross_spawn_1 = __webpack_require__(/*! cross-spawn */ "cross-spawn");
  999. var app_paths_1 = __webpack_require__(/*! ../../helpers/app-paths */ "./src/helpers/app-paths.ts");
  1000. var fs_1 = __webpack_require__(/*! fs */ "fs");
  1001. // import semver from 'semver'
  1002. var managers_1 = __webpack_require__(/*! ./managers */ "./src/api/dependency-manager/managers/index.ts");
  1003. var getManager = function () {
  1004. if (fs_1.existsSync(app_paths_1.resolve.app('yarn.lock'))) {
  1005. return new managers_1.YarnManager();
  1006. }
  1007. else if (fs_1.existsSync(app_paths_1.resolve.app('pnpm-lock.yaml'))) {
  1008. return new managers_1.PnpmManager();
  1009. }
  1010. else {
  1011. return new managers_1.NpmManager();
  1012. }
  1013. };
  1014. exports.getManager = getManager;
  1015. function getCrateLatestVersion(crateName) {
  1016. var child = cross_spawn_1.sync('cargo', ['search', crateName, '--limit', '1']);
  1017. var output = String(child.output[1]);
  1018. // eslint-disable-next-line security/detect-non-literal-regexp
  1019. var matches = new RegExp(crateName + ' = "(\\S+)"', 'g').exec(output);
  1020. if (matches === null || matches === void 0 ? void 0 : matches[1]) {
  1021. return matches[1];
  1022. }
  1023. else {
  1024. return null;
  1025. }
  1026. }
  1027. exports.getCrateLatestVersion = getCrateLatestVersion;
  1028. function getNpmLatestVersion(packageName) {
  1029. return getManager().getLatestVersion(packageName);
  1030. }
  1031. exports.getNpmLatestVersion = getNpmLatestVersion;
  1032. function getNpmPackageVersion(packageName) {
  1033. return getManager().getPackageVersion(packageName);
  1034. }
  1035. exports.getNpmPackageVersion = getNpmPackageVersion;
  1036. function installNpmPackage(packageName) {
  1037. return getManager().installPackage(packageName);
  1038. }
  1039. exports.installNpmPackage = installNpmPackage;
  1040. function installNpmDevPackage(packageName) {
  1041. return getManager().installDevPackage(packageName);
  1042. }
  1043. exports.installNpmDevPackage = installNpmDevPackage;
  1044. function updateNpmPackage(packageName) {
  1045. return getManager().updatePackage(packageName);
  1046. }
  1047. exports.updateNpmPackage = updateNpmPackage;
  1048. function padVersion(version) {
  1049. var _a;
  1050. var count = ((_a = version.match(/\./g)) !== null && _a !== void 0 ? _a : []).length;
  1051. while (count < 2) {
  1052. count++;
  1053. version += '.0';
  1054. }
  1055. return version;
  1056. }
  1057. exports.padVersion = padVersion;
  1058. function semverLt(first, second) {
  1059. return first !== second;
  1060. // TODO: When version 1.0.0 is released this code should work again
  1061. // return semver.lt(padVersion(first), padVersion(second))
  1062. }
  1063. exports.semverLt = semverLt;
  1064. /***/ }),
  1065. /***/ "./src/helpers/app-paths.ts":
  1066. /*!**********************************!*\
  1067. !*** ./src/helpers/app-paths.ts ***!
  1068. \**********************************/
  1069. /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
  1070. "use strict";
  1071. // Copyright 2019-2021 Tauri Programme within The Commons Conservancy
  1072. // SPDX-License-Identifier: Apache-2.0
  1073. // SPDX-License-Identifier: MIT
  1074. var __importDefault = (this && this.__importDefault) || function (mod) {
  1075. return (mod && mod.__esModule) ? mod : { "default": mod };
  1076. };
  1077. Object.defineProperty(exports, "__esModule", ({ value: true }));
  1078. exports.resolve = exports.tauriDir = exports.appDir = void 0;
  1079. var fs_1 = __webpack_require__(/*! fs */ "fs");
  1080. var path_1 = __webpack_require__(/*! path */ "path");
  1081. var logger_1 = __importDefault(__webpack_require__(/*! ./logger */ "./src/helpers/logger.ts"));
  1082. var chalk_1 = __importDefault(__webpack_require__(/*! chalk */ "chalk"));
  1083. var warn = logger_1.default('tauri', chalk_1.default.red);
  1084. function resolvePath(basePath, dir) {
  1085. return dir && path_1.isAbsolute(dir) ? dir : path_1.resolve(basePath, dir);
  1086. }
  1087. var getAppDir = function () {
  1088. var dir = process.cwd();
  1089. var count = 0;
  1090. // only go up three folders max
  1091. while (dir.length > 0 && !dir.endsWith(path_1.sep) && count <= 2) {
  1092. if (fs_1.existsSync(path_1.join(dir, 'src-tauri', 'tauri.conf.json'))) {
  1093. return dir;
  1094. }
  1095. count++;
  1096. dir = path_1.normalize(path_1.join(dir, '..'));
  1097. }
  1098. warn("Couldn't find recognize the current folder as a part of a Tauri project");
  1099. process.exit(1);
  1100. };
  1101. var appDir = getAppDir();
  1102. exports.appDir = appDir;
  1103. var tauriDir = path_1.resolve(appDir, 'src-tauri');
  1104. exports.tauriDir = tauriDir;
  1105. var resolveDir = {
  1106. app: function (dir) { return resolvePath(appDir, dir); },
  1107. tauri: function (dir) { return resolvePath(tauriDir, dir); }
  1108. };
  1109. exports.resolve = resolveDir;
  1110. /***/ }),
  1111. /***/ "./src/helpers/download-binary.ts":
  1112. /*!****************************************!*\
  1113. !*** ./src/helpers/download-binary.ts ***!
  1114. \****************************************/
  1115. /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
  1116. "use strict";
  1117. var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
  1118. function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
  1119. return new (P || (P = Promise))(function (resolve, reject) {
  1120. function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
  1121. function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
  1122. function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
  1123. step((generator = generator.apply(thisArg, _arguments || [])).next());
  1124. });
  1125. };
  1126. var __generator = (this && this.__generator) || function (thisArg, body) {
  1127. var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
  1128. return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
  1129. function verb(n) { return function (v) { return step([n, v]); }; }
  1130. function step(op) {
  1131. if (f) throw new TypeError("Generator is already executing.");
  1132. while (_) try {
  1133. if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
  1134. if (y = 0, t) op = [op[0] & 2, t.value];
  1135. switch (op[0]) {
  1136. case 0: case 1: t = op; break;
  1137. case 4: _.label++; return { value: op[1], done: false };
  1138. case 5: _.label++; y = op[1]; op = [0]; continue;
  1139. case 7: op = _.ops.pop(); _.trys.pop(); continue;
  1140. default:
  1141. if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
  1142. if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
  1143. if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
  1144. if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
  1145. if (t[2]) _.ops.pop();
  1146. _.trys.pop(); continue;
  1147. }
  1148. op = body.call(thisArg, _);
  1149. } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
  1150. if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
  1151. }
  1152. };
  1153. var __importDefault = (this && this.__importDefault) || function (mod) {
  1154. return (mod && mod.__esModule) ? mod : { "default": mod };
  1155. };
  1156. Object.defineProperty(exports, "__esModule", ({ value: true }));
  1157. exports.downloadRustup = exports.downloadCli = void 0;
  1158. var stream_1 = __importDefault(__webpack_require__(/*! stream */ "stream"));
  1159. var util_1 = __webpack_require__(/*! util */ "util");
  1160. var fs_1 = __importDefault(__webpack_require__(/*! fs */ "fs"));
  1161. var got_1 = __importDefault(__webpack_require__(/*! got */ "got"));
  1162. var path_1 = __importDefault(__webpack_require__(/*! path */ "path"));
  1163. var pipeline = util_1.promisify(stream_1.default.pipeline);
  1164. // Webpack reads the file at build-time, so this becomes a static var
  1165. // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment, @typescript-eslint/no-var-requires, @typescript-eslint/no-unsafe-member-access
  1166. var tauriCliManifest = __webpack_require__(/*! ../../../cli.rs/Cargo.toml */ "../cli.rs/Cargo.toml");
  1167. var downloads = {};
  1168. function downloadBinaryRelease(tag, asset, outPath) {
  1169. return __awaiter(this, void 0, void 0, function () {
  1170. var url, removeDownloadedCliIfNeeded;
  1171. return __generator(this, function (_a) {
  1172. switch (_a.label) {
  1173. case 0:
  1174. url = "https://github.com/tauri-apps/binary-releases/releases/download/" + tag + "/" + asset;
  1175. removeDownloadedCliIfNeeded = function () {
  1176. try {
  1177. if (!(url in downloads)) {
  1178. // eslint-disable-next-line security/detect-non-literal-fs-filename
  1179. fs_1.default.unlinkSync(outPath);
  1180. }
  1181. }
  1182. finally {
  1183. process.exit();
  1184. }
  1185. };
  1186. // on exit, we remove the `tauri-cli` file if the download didn't complete
  1187. process.on('exit', removeDownloadedCliIfNeeded);
  1188. process.on('SIGINT', removeDownloadedCliIfNeeded);
  1189. process.on('SIGTERM', removeDownloadedCliIfNeeded);
  1190. process.on('SIGHUP', removeDownloadedCliIfNeeded);
  1191. process.on('SIGBREAK', removeDownloadedCliIfNeeded);
  1192. // TODO: Check hash of download
  1193. // eslint-disable-next-line @typescript-eslint/no-unsafe-call, @typescript-eslint/no-unsafe-member-access, security/detect-non-literal-fs-filename
  1194. return [4 /*yield*/, pipeline(got_1.default.stream(url), fs_1.default.createWriteStream(outPath)).catch(function (e) {
  1195. try {
  1196. // eslint-disable-next-line security/detect-non-literal-fs-filename
  1197. fs_1.default.unlinkSync(outPath);
  1198. }
  1199. catch (_a) { }
  1200. throw e;
  1201. })
  1202. // eslint-disable-next-line security/detect-object-injection
  1203. ];
  1204. case 1:
  1205. // TODO: Check hash of download
  1206. // eslint-disable-next-line @typescript-eslint/no-unsafe-call, @typescript-eslint/no-unsafe-member-access, security/detect-non-literal-fs-filename
  1207. _a.sent();
  1208. // eslint-disable-next-line security/detect-object-injection
  1209. downloads[url] = true;
  1210. // eslint-disable-next-line security/detect-non-literal-fs-filename
  1211. fs_1.default.chmodSync(outPath, 448);
  1212. console.log('Download Complete');
  1213. return [2 /*return*/];
  1214. }
  1215. });
  1216. });
  1217. }
  1218. function downloadCli() {
  1219. return __awaiter(this, void 0, void 0, function () {
  1220. var version, platform, extension, outPath;
  1221. return __generator(this, function (_a) {
  1222. switch (_a.label) {
  1223. case 0:
  1224. version = tauriCliManifest.package.version;
  1225. platform = process.platform;
  1226. if (platform === 'win32') {
  1227. platform = 'windows';
  1228. }
  1229. else if (platform === 'linux') {
  1230. platform = 'linux';
  1231. }
  1232. else if (platform === 'darwin') {
  1233. platform = 'macos';
  1234. }
  1235. else {
  1236. throw Error('Unsupported platform');
  1237. }
  1238. extension = platform === 'windows' ? '.exe' : '';
  1239. outPath = path_1.default.join(__dirname, "../../bin/tauri-cli" + extension);
  1240. console.log('Downloading Rust CLI...');
  1241. return [4 /*yield*/, downloadBinaryRelease("tauri-cli-v" + version, "tauri-cli_" + platform + extension, outPath)];
  1242. case 1:
  1243. _a.sent();
  1244. return [2 /*return*/];
  1245. }
  1246. });
  1247. });
  1248. }
  1249. exports.downloadCli = downloadCli;
  1250. function downloadRustup() {
  1251. return __awaiter(this, void 0, void 0, function () {
  1252. var assetName;
  1253. return __generator(this, function (_a) {
  1254. switch (_a.label) {
  1255. case 0:
  1256. assetName = process.platform === 'win32' ? 'rustup-init.exe' : 'rustup-init.sh';
  1257. console.log('Downloading Rustup...');
  1258. return [4 /*yield*/, downloadBinaryRelease('rustup', assetName, path_1.default.join(__dirname, "../../bin/" + assetName))];
  1259. case 1: return [2 /*return*/, _a.sent()];
  1260. }
  1261. });
  1262. });
  1263. }
  1264. exports.downloadRustup = downloadRustup;
  1265. /***/ }),
  1266. /***/ "./src/helpers/get-script-version.ts":
  1267. /*!*******************************************!*\
  1268. !*** ./src/helpers/get-script-version.ts ***!
  1269. \*******************************************/
  1270. /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
  1271. "use strict";
  1272. // Copyright 2019-2021 Tauri Programme within The Commons Conservancy
  1273. // SPDX-License-Identifier: Apache-2.0
  1274. // SPDX-License-Identifier: MIT
  1275. var __spreadArray = (this && this.__spreadArray) || function (to, from) {
  1276. for (var i = 0, il = from.length, j = to.length; i < il; i++, j++)
  1277. to[j] = from[i];
  1278. return to;
  1279. };
  1280. Object.defineProperty(exports, "__esModule", ({ value: true }));
  1281. var cross_spawn_1 = __webpack_require__(/*! cross-spawn */ "cross-spawn");
  1282. function getVersion(command, args) {
  1283. if (args === void 0) { args = []; }
  1284. try {
  1285. var child = cross_spawn_1.sync(command, __spreadArray(__spreadArray([], args), ['--version']));
  1286. if (child.status === 0) {
  1287. var output = String(child.output[1]);
  1288. return output.replace(/\n/g, '');
  1289. }
  1290. return null;
  1291. }
  1292. catch (err) {
  1293. return null;
  1294. }
  1295. }
  1296. exports.default = getVersion;
  1297. /***/ }),
  1298. /***/ "./src/helpers/logger.ts":
  1299. /*!*******************************!*\
  1300. !*** ./src/helpers/logger.ts ***!
  1301. \*******************************/
  1302. /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
  1303. "use strict";
  1304. // Copyright 2019-2021 Tauri Programme within The Commons Conservancy
  1305. // SPDX-License-Identifier: Apache-2.0
  1306. // SPDX-License-Identifier: MIT
  1307. var __importDefault = (this && this.__importDefault) || function (mod) {
  1308. return (mod && mod.__esModule) ? mod : { "default": mod };
  1309. };
  1310. Object.defineProperty(exports, "__esModule", ({ value: true }));
  1311. var chalk_1 = __importDefault(__webpack_require__(/*! chalk */ "chalk"));
  1312. var ms_1 = __importDefault(__webpack_require__(/*! ms */ "ms"));
  1313. var prevTime;
  1314. exports.default = (function (banner, color) {
  1315. if (color === void 0) { color = chalk_1.default.green; }
  1316. return function (msg) {
  1317. var curr = +new Date();
  1318. var diff = curr - (prevTime || curr);
  1319. prevTime = curr;
  1320. if (msg) {
  1321. console.log(
  1322. // TODO: proper typings for color and banner
  1323. // eslint-disable-next-line @typescript-eslint/restrict-template-expressions, @typescript-eslint/no-unsafe-call
  1324. " " + color(String(banner)) + " " + msg + " " + chalk_1.default.green("+" + ms_1.default(diff)));
  1325. }
  1326. else {
  1327. console.log();
  1328. }
  1329. };
  1330. });
  1331. /***/ }),
  1332. /***/ "./src/helpers/spawn.ts":
  1333. /*!******************************!*\
  1334. !*** ./src/helpers/spawn.ts ***!
  1335. \******************************/
  1336. /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
  1337. "use strict";
  1338. // Copyright 2019-2021 Tauri Programme within The Commons Conservancy
  1339. // SPDX-License-Identifier: Apache-2.0
  1340. // SPDX-License-Identifier: MIT
  1341. var __importDefault = (this && this.__importDefault) || function (mod) {
  1342. return (mod && mod.__esModule) ? mod : { "default": mod };
  1343. };
  1344. Object.defineProperty(exports, "__esModule", ({ value: true }));
  1345. exports.spawnSync = exports.spawn = void 0;
  1346. var cross_spawn_1 = __importDefault(__webpack_require__(/*! cross-spawn */ "cross-spawn"));
  1347. var logger_1 = __importDefault(__webpack_require__(/*! ./logger */ "./src/helpers/logger.ts"));
  1348. var chalk_1 = __importDefault(__webpack_require__(/*! chalk */ "chalk"));
  1349. var log = logger_1.default('app:spawn');
  1350. var warn = logger_1.default('app:spawn', chalk_1.default.red);
  1351. /*
  1352. Returns pid, takes onClose
  1353. */
  1354. var spawn = function (cmd, params, cwd, onClose) {
  1355. var _a;
  1356. log("Running \"" + cmd + " " + params.join(' ') + "\"");
  1357. log();
  1358. // TODO: move to execa?
  1359. var runner = cross_spawn_1.default(cmd, params, {
  1360. stdio: 'inherit',
  1361. cwd: cwd,
  1362. env: process.env
  1363. });
  1364. runner.on('close', function (code) {
  1365. var _a;
  1366. log();
  1367. if (code) {
  1368. // eslint-disable-next-line @typescript-eslint/restrict-template-expressions
  1369. log("Command \"" + cmd + "\" failed with exit code: " + code);
  1370. }
  1371. // eslint-disable-next-line @typescript-eslint/prefer-optional-chain
  1372. onClose && onClose(code !== null && code !== void 0 ? code : 0, (_a = runner.pid) !== null && _a !== void 0 ? _a : 0);
  1373. });
  1374. return (_a = runner.pid) !== null && _a !== void 0 ? _a : 0;
  1375. };
  1376. exports.spawn = spawn;
  1377. /*
  1378. Returns nothing, takes onFail
  1379. */
  1380. var spawnSync = function (cmd, params, cwd, onFail) {
  1381. log("[sync] Running \"" + cmd + " " + params.join(' ') + "\"");
  1382. log();
  1383. var runner = cross_spawn_1.default.sync(cmd, params, {
  1384. stdio: 'inherit',
  1385. cwd: cwd
  1386. });
  1387. // eslint-disable-next-line @typescript-eslint/prefer-nullish-coalescing
  1388. if (runner.status || runner.error) {
  1389. warn();
  1390. // eslint-disable-next-line @typescript-eslint/restrict-template-expressions
  1391. warn("\u26A0\uFE0F Command \"" + cmd + "\" failed with exit code: " + runner.status);
  1392. if (runner.status === null) {
  1393. warn("\u26A0\uFE0F Please globally install \"" + cmd + "\"");
  1394. }
  1395. // eslint-disable-next-line @typescript-eslint/prefer-optional-chain
  1396. onFail && onFail();
  1397. process.exit(1);
  1398. }
  1399. };
  1400. exports.spawnSync = spawnSync;
  1401. /***/ }),
  1402. /***/ "@tauri-apps/toml":
  1403. /*!***********************************!*\
  1404. !*** external "@tauri-apps/toml" ***!
  1405. \***********************************/
  1406. /***/ ((module) => {
  1407. "use strict";
  1408. module.exports = require("@tauri-apps/toml");;
  1409. /***/ }),
  1410. /***/ "chalk":
  1411. /*!************************!*\
  1412. !*** external "chalk" ***!
  1413. \************************/
  1414. /***/ ((module) => {
  1415. "use strict";
  1416. module.exports = require("chalk");;
  1417. /***/ }),
  1418. /***/ "cross-spawn":
  1419. /*!******************************!*\
  1420. !*** external "cross-spawn" ***!
  1421. \******************************/
  1422. /***/ ((module) => {
  1423. "use strict";
  1424. module.exports = require("cross-spawn");;
  1425. /***/ }),
  1426. /***/ "fs":
  1427. /*!*********************!*\
  1428. !*** external "fs" ***!
  1429. \*********************/
  1430. /***/ ((module) => {
  1431. "use strict";
  1432. module.exports = require("fs");;
  1433. /***/ }),
  1434. /***/ "got":
  1435. /*!**********************!*\
  1436. !*** external "got" ***!
  1437. \**********************/
  1438. /***/ ((module) => {
  1439. "use strict";
  1440. module.exports = require("got");;
  1441. /***/ }),
  1442. /***/ "https":
  1443. /*!************************!*\
  1444. !*** external "https" ***!
  1445. \************************/
  1446. /***/ ((module) => {
  1447. "use strict";
  1448. module.exports = require("https");;
  1449. /***/ }),
  1450. /***/ "inquirer":
  1451. /*!***************************!*\
  1452. !*** external "inquirer" ***!
  1453. \***************************/
  1454. /***/ ((module) => {
  1455. "use strict";
  1456. module.exports = require("inquirer");;
  1457. /***/ }),
  1458. /***/ "ms":
  1459. /*!*********************!*\
  1460. !*** external "ms" ***!
  1461. \*********************/
  1462. /***/ ((module) => {
  1463. "use strict";
  1464. module.exports = require("ms");;
  1465. /***/ }),
  1466. /***/ "os":
  1467. /*!*********************!*\
  1468. !*** external "os" ***!
  1469. \*********************/
  1470. /***/ ((module) => {
  1471. "use strict";
  1472. module.exports = require("os");;
  1473. /***/ }),
  1474. /***/ "path":
  1475. /*!***********************!*\
  1476. !*** external "path" ***!
  1477. \***********************/
  1478. /***/ ((module) => {
  1479. "use strict";
  1480. module.exports = require("path");;
  1481. /***/ }),
  1482. /***/ "stream":
  1483. /*!*************************!*\
  1484. !*** external "stream" ***!
  1485. \*************************/
  1486. /***/ ((module) => {
  1487. "use strict";
  1488. module.exports = require("stream");;
  1489. /***/ }),
  1490. /***/ "util":
  1491. /*!***********************!*\
  1492. !*** external "util" ***!
  1493. \***********************/
  1494. /***/ ((module) => {
  1495. "use strict";
  1496. module.exports = require("util");;
  1497. /***/ })
  1498. /******/ });
  1499. /************************************************************************/
  1500. /******/ // The module cache
  1501. /******/ var __webpack_module_cache__ = {};
  1502. /******/
  1503. /******/ // The require function
  1504. /******/ function __webpack_require__(moduleId) {
  1505. /******/ // Check if module is in cache
  1506. /******/ var cachedModule = __webpack_module_cache__[moduleId];
  1507. /******/ if (cachedModule !== undefined) {
  1508. /******/ return cachedModule.exports;
  1509. /******/ }
  1510. /******/ // Create a new module (and put it into the cache)
  1511. /******/ var module = __webpack_module_cache__[moduleId] = {
  1512. /******/ // no module.id needed
  1513. /******/ // no module.loaded needed
  1514. /******/ exports: {}
  1515. /******/ };
  1516. /******/
  1517. /******/ // Execute the module function
  1518. /******/ __webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);
  1519. /******/
  1520. /******/ // Return the exports of the module
  1521. /******/ return module.exports;
  1522. /******/ }
  1523. /******/
  1524. /************************************************************************/
  1525. /******/
  1526. /******/ // startup
  1527. /******/ // Load entry module and return exports
  1528. /******/ // This entry module is referenced by other modules so it can't be inlined
  1529. /******/ var __webpack_exports__ = __webpack_require__("./src/api/dependency-manager/index.ts");
  1530. /******/
  1531. /******/ return __webpack_exports__;
  1532. /******/ })()
  1533. ;
  1534. });
  1535. //# sourceMappingURL=dependency-manager.js.map