(function webpackUniversalModuleDefinition(root, factory) { if(typeof exports === 'object' && typeof module === 'object') module.exports = factory(); else if(typeof define === 'function' && define.amd) define([], factory); else if(typeof exports === 'object') exports["tauri"] = factory(); else root["tauri"] = factory(); })(this, function() { return /******/ (() => { // webpackBootstrap /******/ var __webpack_modules__ = ({ /***/ "../cli.rs/Cargo.toml": /*!****************************!*\ !*** ../cli.rs/Cargo.toml ***! \****************************/ /***/ ((module) => { module.exports = { "workspace": {}, "package": { "name": "tauri-cli", "version": "1.0.0-beta.5", "authors": [ "Tauri Programme within The Commons Conservancy" ], "edition": "2018", "categories": [ "gui", "web-programming" ], "license": "Apache-2.0 OR MIT", "homepage": "https://tauri.studio", "repository": "https://github.com/tauri-apps/tauri", "description": "Command line interface for building Tauri apps", "include": [ "src/", "/templates", "MergeModules/", "*.json", "*.rs" ] }, "bin": [ { "name": "cargo-tauri", "path": "src/main.rs" } ], "dependencies": { "clap": { "version": "3.0.0-beta.2", "features": [ "yaml" ] }, "anyhow": "1.0", "tauri-bundler": { "version": "1.0.0-beta.3", "path": "../bundler" }, "colored": "2.0", "once_cell": "1.8", "serde": { "version": "1.0", "features": [ "derive" ] }, "serde_json": "1.0", "serde_with": "1.9", "notify": "4.0", "shared_child": "0.3", "toml_edit": "0.2", "json-patch": "0.2", "schemars": "0.8", "toml": "0.5", "valico": "3.6", "handlebars": "4.1", "include_dir": "0.6", "minisign": "0.6", "base64": "0.13.0", "ureq": "2.1", "os_info": "3.0", "semver": "1.0", "regex": "1.5", "lazy_static": "1", "libc": "0.2", "terminal_size": "0.1", "unicode-width": "0.1", "tempfile": "3", "zeroize": "1.3" }, "target": { "cfg(windows)": { "dependencies": { "winapi": { "version": "0.3", "features": [ "winbase", "winuser", "consoleapi", "processenv", "wincon" ] }, "encode_unicode": "0.3" } }, "cfg(target_os = \"linux\")": { "dependencies": { "heck": "0.3" } } }, "build-dependencies": { "schemars": "0.8", "serde": { "version": "1.0", "features": [ "derive" ] }, "serde_json": "1.0", "serde_with": "1.9" } } /***/ }), /***/ "./src/api/dependency-manager/cargo-crates.ts": /*!****************************************************!*\ !*** ./src/api/dependency-manager/cargo-crates.ts ***! \****************************************************/ /***/ (function(__unused_webpack_module, exports, __webpack_require__) { "use strict"; // Copyright 2019-2021 Tauri Programme within The Commons Conservancy // SPDX-License-Identifier: Apache-2.0 // SPDX-License-Identifier: MIT var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } return new (P || (P = Promise))(function (resolve, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; var __generator = (this && this.__generator) || function (thisArg, body) { var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g; return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; function verb(n) { return function (v) { return step([n, v]); }; } function step(op) { if (f) throw new TypeError("Generator is already executing."); while (_) try { 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; if (y = 0, t) op = [op[0] & 2, t.value]; switch (op[0]) { case 0: case 1: t = op; break; case 4: _.label++; return { value: op[1], done: false }; case 5: _.label++; y = op[1]; op = [0]; continue; case 7: op = _.ops.pop(); _.trys.pop(); continue; default: if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; } if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } if (t[2]) _.ops.pop(); _.trys.pop(); continue; } op = body.call(thisArg, _); } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; } }; var __spreadArray = (this && this.__spreadArray) || function (to, from) { for (var i = 0, il = from.length, j = to.length; i < il; i++, j++) to[j] = from[i]; return to; }; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", ({ value: true })); exports.update = exports.install = void 0; var spawn_1 = __webpack_require__(/*! ./../../helpers/spawn */ "./src/helpers/spawn.ts"); var types_1 = __webpack_require__(/*! ./types */ "./src/api/dependency-manager/types.ts"); var util_1 = __webpack_require__(/*! ./util */ "./src/api/dependency-manager/util.ts"); var logger_1 = __importDefault(__webpack_require__(/*! ../../helpers/logger */ "./src/helpers/logger.ts")); var app_paths_1 = __webpack_require__(/*! ../../helpers/app-paths */ "./src/helpers/app-paths.ts"); var fs_1 = __webpack_require__(/*! fs */ "fs"); var toml_1 = __importDefault(__webpack_require__(/*! @tauri-apps/toml */ "@tauri-apps/toml")); var inquirer_1 = __importDefault(__webpack_require__(/*! inquirer */ "inquirer")); var log = logger_1.default('dependency:crates'); var dependencies = ['tauri']; function readToml(tomlPath) { if (fs_1.existsSync(tomlPath)) { var manifest = fs_1.readFileSync(tomlPath).toString(); return toml_1.default.parse(manifest); } return null; } function dependencyDefinition(version) { return { version: version.substring(0, version.lastIndexOf('.')) }; } function manageDependencies(managementType) { return __awaiter(this, void 0, void 0, function () { var installedDeps, updatedDeps, result, manifest, lockPath, lock, _loop_1, _i, dependencies_1, dependency; return __generator(this, function (_a) { switch (_a.label) { case 0: installedDeps = []; updatedDeps = []; result = new Map(); manifest = readToml(app_paths_1.resolve.tauri('Cargo.toml')); if (manifest === null) { log('Cargo.toml not found. Skipping crates check...'); return [2 /*return*/, result]; } lockPath = app_paths_1.resolve.tauri('Cargo.lock'); if (!fs_1.existsSync(lockPath)) { spawn_1.spawnSync('cargo', ['generate-lockfile'], app_paths_1.tauriDir); } lock = readToml(lockPath); _loop_1 = function (dependency) { var lockPackages, manifestDep, currentVersion, latestVersion, latestVersion, inquired; return __generator(this, function (_b) { switch (_b.label) { case 0: lockPackages = lock ? lock.package.filter(function (pkg) { return pkg.name === dependency; }) : []; manifestDep = manifest.dependencies[dependency]; currentVersion = lockPackages.length === 1 ? lockPackages[0].version : typeof manifestDep === 'string' ? manifestDep : manifestDep === null || manifestDep === void 0 ? void 0 : manifestDep.version; if (!(currentVersion === undefined)) return [3 /*break*/, 1]; log("Installing " + dependency + "..."); latestVersion = util_1.getCrateLatestVersion(dependency); if (latestVersion !== null) { // eslint-disable-next-line security/detect-object-injection manifest.dependencies[dependency] = dependencyDefinition(latestVersion); } installedDeps.push(dependency); return [3 /*break*/, 6]; case 1: if (!(managementType === types_1.ManagementType.Update)) return [3 /*break*/, 5]; latestVersion = util_1.getCrateLatestVersion(dependency); if (!(latestVersion !== null && util_1.semverLt(currentVersion, latestVersion))) return [3 /*break*/, 3]; return [4 /*yield*/, inquirer_1.default.prompt([ { type: 'confirm', name: 'answer', message: "[CRATES] \"" + dependency + "\" latest version is " + latestVersion + ". Do you want to update?", default: false } ])]; case 2: inquired = (_b.sent()); if (inquired.answer) { log("Updating " + dependency + "..."); // eslint-disable-next-line security/detect-object-injection manifest.dependencies[dependency] = dependencyDefinition(latestVersion); updatedDeps.push(dependency); } return [3 /*break*/, 4]; case 3: log("\"" + dependency + "\" is up to date"); _b.label = 4; case 4: return [3 /*break*/, 6]; case 5: log("\"" + dependency + "\" is already installed"); _b.label = 6; case 6: return [2 /*return*/]; } }); }; _i = 0, dependencies_1 = dependencies; _a.label = 1; case 1: if (!(_i < dependencies_1.length)) return [3 /*break*/, 4]; dependency = dependencies_1[_i]; return [5 /*yield**/, _loop_1(dependency)]; case 2: _a.sent(); _a.label = 3; case 3: _i++; return [3 /*break*/, 1]; case 4: if (installedDeps.length || updatedDeps.length) { fs_1.writeFileSync(app_paths_1.resolve.tauri('Cargo.toml'), toml_1.default.stringify(manifest)); } if (updatedDeps.length) { if (!fs_1.existsSync(app_paths_1.resolve.tauri('Cargo.lock'))) { spawn_1.spawnSync('cargo', ['generate-lockfile'], app_paths_1.tauriDir); } spawn_1.spawnSync('cargo', __spreadArray([ 'update', '--aggressive' ], updatedDeps.reduce(function (initialValue, dep) { return __spreadArray(__spreadArray([], initialValue), ['-p', dep]); }, [])), app_paths_1.tauriDir); } result.set(types_1.ManagementType.Install, installedDeps); result.set(types_1.ManagementType.Update, updatedDeps); return [2 /*return*/, result]; } }); }); } function install() { return __awaiter(this, void 0, void 0, function () { return __generator(this, function (_a) { switch (_a.label) { case 0: return [4 /*yield*/, manageDependencies(types_1.ManagementType.Install)]; case 1: return [2 /*return*/, _a.sent()]; } }); }); } exports.install = install; function update() { return __awaiter(this, void 0, void 0, function () { return __generator(this, function (_a) { switch (_a.label) { case 0: return [4 /*yield*/, manageDependencies(types_1.ManagementType.Update)]; case 1: return [2 /*return*/, _a.sent()]; } }); }); } exports.update = update; /***/ }), /***/ "./src/api/dependency-manager/index.ts": /*!*********************************************!*\ !*** ./src/api/dependency-manager/index.ts ***! \*********************************************/ /***/ (function(module, exports, __webpack_require__) { "use strict"; // Copyright 2019-2021 Tauri Programme within The Commons Conservancy // SPDX-License-Identifier: Apache-2.0 // SPDX-License-Identifier: MIT var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; })); var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { Object.defineProperty(o, "default", { enumerable: true, value: v }); }) : function(o, v) { o["default"] = v; }); var __importStar = (this && this.__importStar) || function (mod) { if (mod && mod.__esModule) return mod; var result = {}; if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); __setModuleDefault(result, mod); return result; }; var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } return new (P || (P = Promise))(function (resolve, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; var __generator = (this && this.__generator) || function (thisArg, body) { var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g; return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; function verb(n) { return function (v) { return step([n, v]); }; } function step(op) { if (f) throw new TypeError("Generator is already executing."); while (_) try { 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; if (y = 0, t) op = [op[0] & 2, t.value]; switch (op[0]) { case 0: case 1: t = op; break; case 4: _.label++; return { value: op[1], done: false }; case 5: _.label++; y = op[1]; op = [0]; continue; case 7: op = _.ops.pop(); _.trys.pop(); continue; default: if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; } if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } if (t[2]) _.ops.pop(); _.trys.pop(); continue; } op = body.call(thisArg, _); } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; } }; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", ({ value: true })); var logger_1 = __importDefault(__webpack_require__(/*! ../../helpers/logger */ "./src/helpers/logger.ts")); var rust = __importStar(__webpack_require__(/*! ./rust */ "./src/api/dependency-manager/rust.ts")); var cargoCrates = __importStar(__webpack_require__(/*! ./cargo-crates */ "./src/api/dependency-manager/cargo-crates.ts")); var npmPackages = __importStar(__webpack_require__(/*! ./npm-packages */ "./src/api/dependency-manager/npm-packages.ts")); var log = logger_1.default('dependency:manager'); module.exports = { installDependencies: function () { return __awaiter(this, void 0, void 0, function () { return __generator(this, function (_a) { switch (_a.label) { case 0: log('Installing missing dependencies...'); return [4 /*yield*/, rust.install()]; case 1: _a.sent(); return [4 /*yield*/, cargoCrates.install()]; case 2: _a.sent(); return [4 /*yield*/, npmPackages.install()]; case 3: _a.sent(); return [2 /*return*/]; } }); }); }, updateDependencies: function () { return __awaiter(this, void 0, void 0, function () { return __generator(this, function (_a) { switch (_a.label) { case 0: log('Updating dependencies...'); return [4 /*yield*/, rust.update()]; case 1: _a.sent(); return [4 /*yield*/, cargoCrates.update()]; case 2: _a.sent(); return [4 /*yield*/, npmPackages.update()]; case 3: _a.sent(); return [2 /*return*/]; } }); }); } }; /***/ }), /***/ "./src/api/dependency-manager/managers/index.ts": /*!******************************************************!*\ !*** ./src/api/dependency-manager/managers/index.ts ***! \******************************************************/ /***/ (function(__unused_webpack_module, exports, __webpack_require__) { "use strict"; var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; })); var __exportStar = (this && this.__exportStar) || function(m, exports) { for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p); }; Object.defineProperty(exports, "__esModule", ({ value: true })); __exportStar(__webpack_require__(/*! ./yarn-manager */ "./src/api/dependency-manager/managers/yarn-manager.ts"), exports); __exportStar(__webpack_require__(/*! ./npm-manager */ "./src/api/dependency-manager/managers/npm-manager.ts"), exports); __exportStar(__webpack_require__(/*! ./pnpm-manager */ "./src/api/dependency-manager/managers/pnpm-manager.ts"), exports); __exportStar(__webpack_require__(/*! ./types */ "./src/api/dependency-manager/managers/types.ts"), exports); /***/ }), /***/ "./src/api/dependency-manager/managers/npm-manager.ts": /*!************************************************************!*\ !*** ./src/api/dependency-manager/managers/npm-manager.ts ***! \************************************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; Object.defineProperty(exports, "__esModule", ({ value: true })); exports.NpmManager = void 0; var cross_spawn_1 = __webpack_require__(/*! cross-spawn */ "cross-spawn"); var spawn_1 = __webpack_require__(/*! ../../../helpers/spawn */ "./src/helpers/spawn.ts"); var app_paths_1 = __webpack_require__(/*! ../../../helpers/app-paths */ "./src/helpers/app-paths.ts"); var NpmManager = /** @class */ (function () { function NpmManager() { this.type = 'npm'; } NpmManager.prototype.installPackage = function (packageName) { spawn_1.spawnSync('npm', ['install', packageName], app_paths_1.appDir); }; NpmManager.prototype.installDevPackage = function (packageName) { spawn_1.spawnSync('npm', ['install', packageName, '--save-dev'], app_paths_1.appDir); }; NpmManager.prototype.updatePackage = function (packageName) { spawn_1.spawnSync('npm', ['install', packageName + "@latest"], app_paths_1.appDir); }; NpmManager.prototype.getPackageVersion = function (packageName) { var child = cross_spawn_1.sync('npm', ['list', packageName, 'version', '--depth', '0'], { cwd: app_paths_1.appDir }); var output = String(child.output[1]); // eslint-disable-next-line security/detect-non-literal-regexp var matches = new RegExp(packageName + '@(\\S+)', 'g').exec(output); if (matches === null || matches === void 0 ? void 0 : matches[1]) { return matches[1]; } else { return null; } }; NpmManager.prototype.getLatestVersion = function (packageName) { var child = cross_spawn_1.sync('npm', ['show', packageName, 'version'], { cwd: app_paths_1.appDir }); return String(child.output[1]).replace('\n', ''); }; return NpmManager; }()); exports.NpmManager = NpmManager; /***/ }), /***/ "./src/api/dependency-manager/managers/pnpm-manager.ts": /*!*************************************************************!*\ !*** ./src/api/dependency-manager/managers/pnpm-manager.ts ***! \*************************************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; Object.defineProperty(exports, "__esModule", ({ value: true })); exports.PnpmManager = void 0; var cross_spawn_1 = __webpack_require__(/*! cross-spawn */ "cross-spawn"); var spawn_1 = __webpack_require__(/*! ../../../helpers/spawn */ "./src/helpers/spawn.ts"); var app_paths_1 = __webpack_require__(/*! ../../../helpers/app-paths */ "./src/helpers/app-paths.ts"); var PnpmManager = /** @class */ (function () { function PnpmManager() { this.type = 'pnpm'; } PnpmManager.prototype.installPackage = function (packageName) { spawn_1.spawnSync('pnpm', ['add', packageName], app_paths_1.appDir); }; PnpmManager.prototype.installDevPackage = function (packageName) { spawn_1.spawnSync('pnpm', ['add', packageName, '--save-dev'], app_paths_1.appDir); }; PnpmManager.prototype.updatePackage = function (packageName) { spawn_1.spawnSync('pnpm', ['add', packageName + "@latest"], app_paths_1.appDir); }; PnpmManager.prototype.getPackageVersion = function (packageName) { var child = cross_spawn_1.sync('pnpm', ['list', packageName, 'version', '--depth', '0'], { cwd: app_paths_1.appDir }); var output = String(child.output[1]); // eslint-disable-next-line security/detect-non-literal-regexp var matches = new RegExp(packageName + ' (\\S+)', 'g').exec(output); if (matches === null || matches === void 0 ? void 0 : matches[1]) { return matches[1]; } else { return null; } }; PnpmManager.prototype.getLatestVersion = function (packageName) { var child = cross_spawn_1.sync('pnpm', ['info', packageName, 'version'], { cwd: app_paths_1.appDir }); return String(child.output[1]).replace('\n', ''); }; return PnpmManager; }()); exports.PnpmManager = PnpmManager; /***/ }), /***/ "./src/api/dependency-manager/managers/types.ts": /*!******************************************************!*\ !*** ./src/api/dependency-manager/managers/types.ts ***! \******************************************************/ /***/ ((__unused_webpack_module, exports) => { "use strict"; Object.defineProperty(exports, "__esModule", ({ value: true })); /***/ }), /***/ "./src/api/dependency-manager/managers/yarn-manager.ts": /*!*************************************************************!*\ !*** ./src/api/dependency-manager/managers/yarn-manager.ts ***! \*************************************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; Object.defineProperty(exports, "__esModule", ({ value: true })); exports.YarnManager = void 0; var cross_spawn_1 = __webpack_require__(/*! cross-spawn */ "cross-spawn"); var spawn_1 = __webpack_require__(/*! ../../../helpers/spawn */ "./src/helpers/spawn.ts"); var app_paths_1 = __webpack_require__(/*! ../../../helpers/app-paths */ "./src/helpers/app-paths.ts"); var YarnManager = /** @class */ (function () { function YarnManager() { this.type = 'yarn'; } YarnManager.prototype.installPackage = function (packageName) { spawn_1.spawnSync('yarn', ['add', packageName], app_paths_1.appDir); }; YarnManager.prototype.installDevPackage = function (packageName) { spawn_1.spawnSync('yarn', ['add', packageName, '--dev'], app_paths_1.appDir); }; YarnManager.prototype.updatePackage = function (packageName) { spawn_1.spawnSync('yarn', ['upgrade', packageName, '--latest'], app_paths_1.appDir); }; YarnManager.prototype.getPackageVersion = function (packageName) { var child = cross_spawn_1.sync('yarn', ['list', '--pattern', packageName, '--depth', '0'], { cwd: app_paths_1.appDir }); var output = String(child.output[1]); // eslint-disable-next-line security/detect-non-literal-regexp var matches = new RegExp(packageName + '@(\\S+)', 'g').exec(output); if (matches === null || matches === void 0 ? void 0 : matches[1]) { return matches[1]; } else { return null; } }; YarnManager.prototype.getLatestVersion = function (packageName) { var child = cross_spawn_1.sync('yarn', ['info', packageName, 'version', '--json'], { cwd: app_paths_1.appDir }); var output = String(child.output[1]); var packageJson = JSON.parse(output); return packageJson.data; }; return YarnManager; }()); exports.YarnManager = YarnManager; /***/ }), /***/ "./src/api/dependency-manager/npm-packages.ts": /*!****************************************************!*\ !*** ./src/api/dependency-manager/npm-packages.ts ***! \****************************************************/ /***/ (function(__unused_webpack_module, exports, __webpack_require__) { "use strict"; // Copyright 2019-2021 Tauri Programme within The Commons Conservancy // SPDX-License-Identifier: Apache-2.0 // SPDX-License-Identifier: MIT var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } return new (P || (P = Promise))(function (resolve, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; var __generator = (this && this.__generator) || function (thisArg, body) { var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g; return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; function verb(n) { return function (v) { return step([n, v]); }; } function step(op) { if (f) throw new TypeError("Generator is already executing."); while (_) try { 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; if (y = 0, t) op = [op[0] & 2, t.value]; switch (op[0]) { case 0: case 1: t = op; break; case 4: _.label++; return { value: op[1], done: false }; case 5: _.label++; y = op[1]; op = [0]; continue; case 7: op = _.ops.pop(); _.trys.pop(); continue; default: if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; } if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } if (t[2]) _.ops.pop(); _.trys.pop(); continue; } op = body.call(thisArg, _); } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; } }; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", ({ value: true })); exports.update = exports.installTheseDev = exports.installThese = exports.install = void 0; var types_1 = __webpack_require__(/*! ./types */ "./src/api/dependency-manager/types.ts"); var util_1 = __webpack_require__(/*! ./util */ "./src/api/dependency-manager/util.ts"); var logger_1 = __importDefault(__webpack_require__(/*! ../../helpers/logger */ "./src/helpers/logger.ts")); var app_paths_1 = __webpack_require__(/*! ../../helpers/app-paths */ "./src/helpers/app-paths.ts"); var inquirer_1 = __importDefault(__webpack_require__(/*! inquirer */ "inquirer")); var fs_1 = __webpack_require__(/*! fs */ "fs"); var cross_spawn_1 = __webpack_require__(/*! cross-spawn */ "cross-spawn"); var log = logger_1.default('dependency:npm-packages'); function manageDependencies(managementType, dependencies) { var _a, _b, _c; return __awaiter(this, void 0, void 0, function () { var installedDeps, updatedDeps, npmChild, yarnChild, pnpmChild, _i, dependencies_1, dependency, currentVersion, packageManager, prefix, inquired, latestVersion, inquired, result; return __generator(this, function (_d) { switch (_d.label) { case 0: installedDeps = []; updatedDeps = []; npmChild = cross_spawn_1.sync('npm', ['--version']); yarnChild = cross_spawn_1.sync('yarn', ['--version']); pnpmChild = cross_spawn_1.sync('pnpm', ['--version']); if (((_a = npmChild.status) !== null && _a !== void 0 ? _a : npmChild.error) && ((_b = yarnChild.status) !== null && _b !== void 0 ? _b : yarnChild.error) && ((_c = pnpmChild.status) !== null && _c !== void 0 ? _c : pnpmChild.error)) { throw new Error('must have installed one of the following package managers `npm`, `yarn`, `pnpm` to manage dependenices'); } if (!fs_1.existsSync(app_paths_1.resolve.app('package.json'))) return [3 /*break*/, 10]; _i = 0, dependencies_1 = dependencies; _d.label = 1; case 1: if (!(_i < dependencies_1.length)) return [3 /*break*/, 10]; dependency = dependencies_1[_i]; currentVersion = util_1.getNpmPackageVersion(dependency); packageManager = util_1.getManager().type.toUpperCase(); if (!(currentVersion === null)) return [3 /*break*/, 4]; log("Installing " + dependency + "..."); if (!(managementType === types_1.ManagementType.Install || managementType === types_1.ManagementType.InstallDev)) return [3 /*break*/, 3]; prefix = managementType === types_1.ManagementType.InstallDev ? ' as dev-dependency' : ''; return [4 /*yield*/, inquirer_1.default.prompt([ { type: 'confirm', name: 'answer', message: "[" + packageManager + "]: \"Do you want to install " + dependency + prefix + "?\"", default: false } ])]; case 2: inquired = _d.sent(); if (inquired.answer) { if (managementType === types_1.ManagementType.Install) { util_1.installNpmPackage(dependency); } else if (managementType === types_1.ManagementType.InstallDev) { util_1.installNpmDevPackage(dependency); } installedDeps.push(dependency); } _d.label = 3; case 3: return [3 /*break*/, 9]; case 4: if (!(managementType === types_1.ManagementType.Update)) return [3 /*break*/, 8]; latestVersion = util_1.getNpmLatestVersion(dependency); if (!util_1.semverLt(currentVersion, latestVersion)) return [3 /*break*/, 6]; return [4 /*yield*/, inquirer_1.default.prompt([ { type: 'confirm', name: 'answer', message: "[" + packageManager + "]: \"" + dependency + "\" latest version is " + latestVersion + ". Do you want to update?", default: false } ])]; case 5: inquired = _d.sent(); if (inquired.answer) { log("Updating " + dependency + "..."); util_1.updateNpmPackage(dependency); updatedDeps.push(dependency); } return [3 /*break*/, 7]; case 6: log("\"" + dependency + "\" is up to date"); _d.label = 7; case 7: return [3 /*break*/, 9]; case 8: log("\"" + dependency + "\" is already installed"); _d.label = 9; case 9: _i++; return [3 /*break*/, 1]; case 10: result = new Map(); result.set(types_1.ManagementType.Install, installedDeps); result.set(types_1.ManagementType.Update, updatedDeps); return [2 /*return*/, result]; } }); }); } var dependencies = ['@tauri-apps/api', '@tauri-apps/cli']; function install() { return __awaiter(this, void 0, void 0, function () { return __generator(this, function (_a) { switch (_a.label) { case 0: return [4 /*yield*/, manageDependencies(types_1.ManagementType.Install, dependencies)]; case 1: return [2 /*return*/, _a.sent()]; } }); }); } exports.install = install; function installThese(dependencies) { return __awaiter(this, void 0, void 0, function () { return __generator(this, function (_a) { switch (_a.label) { case 0: return [4 /*yield*/, manageDependencies(types_1.ManagementType.Install, dependencies)]; case 1: return [2 /*return*/, _a.sent()]; } }); }); } exports.installThese = installThese; function installTheseDev(dependencies) { return __awaiter(this, void 0, void 0, function () { return __generator(this, function (_a) { switch (_a.label) { case 0: return [4 /*yield*/, manageDependencies(types_1.ManagementType.InstallDev, dependencies)]; case 1: return [2 /*return*/, _a.sent()]; } }); }); } exports.installTheseDev = installTheseDev; function update() { return __awaiter(this, void 0, void 0, function () { return __generator(this, function (_a) { switch (_a.label) { case 0: return [4 /*yield*/, manageDependencies(types_1.ManagementType.Update, dependencies)]; case 1: return [2 /*return*/, _a.sent()]; } }); }); } exports.update = update; /***/ }), /***/ "./src/api/dependency-manager/rust.ts": /*!********************************************!*\ !*** ./src/api/dependency-manager/rust.ts ***! \********************************************/ /***/ (function(__unused_webpack_module, exports, __webpack_require__) { "use strict"; // Copyright 2019-2021 Tauri Programme within The Commons Conservancy // SPDX-License-Identifier: Apache-2.0 // SPDX-License-Identifier: MIT var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } return new (P || (P = Promise))(function (resolve, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; var __generator = (this && this.__generator) || function (thisArg, body) { var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g; return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; function verb(n) { return function (v) { return step([n, v]); }; } function step(op) { if (f) throw new TypeError("Generator is already executing."); while (_) try { 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; if (y = 0, t) op = [op[0] & 2, t.value]; switch (op[0]) { case 0: case 1: t = op; break; case 4: _.label++; return { value: op[1], done: false }; case 5: _.label++; y = op[1]; op = [0]; continue; case 7: op = _.ops.pop(); _.trys.pop(); continue; default: if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; } if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } if (t[2]) _.ops.pop(); _.trys.pop(); continue; } op = body.call(thisArg, _); } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; } }; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", ({ value: true })); exports.update = exports.install = void 0; var types_1 = __webpack_require__(/*! ./types */ "./src/api/dependency-manager/types.ts"); var spawn_1 = __webpack_require__(/*! ../../helpers/spawn */ "./src/helpers/spawn.ts"); var get_script_version_1 = __importDefault(__webpack_require__(/*! ../../helpers/get-script-version */ "./src/helpers/get-script-version.ts")); var download_binary_1 = __webpack_require__(/*! ../../helpers/download-binary */ "./src/helpers/download-binary.ts"); var logger_1 = __importDefault(__webpack_require__(/*! ../../helpers/logger */ "./src/helpers/logger.ts")); var fs_1 = __webpack_require__(/*! fs */ "fs"); var path_1 = __webpack_require__(/*! path */ "path"); var os_1 = __webpack_require__(/*! os */ "os"); var https_1 = __importDefault(__webpack_require__(/*! https */ "https")); var log = logger_1.default('dependency:rust'); // eslint-disable-next-line @typescript-eslint/no-unused-vars function download(url, dest) { return __awaiter(this, void 0, void 0, function () { var file; return __generator(this, function (_a) { switch (_a.label) { case 0: file = fs_1.createWriteStream(dest); return [4 /*yield*/, new Promise(function (resolve, reject) { https_1.default .get(url, function (response) { response.pipe(file); file.on('finish', function () { file.close(); resolve(); }); }) .on('error', function (err) { fs_1.unlinkSync(dest); reject(err.message); }); })]; case 1: return [2 /*return*/, _a.sent()]; } }); }); } function installRustup() { return __awaiter(this, void 0, void 0, function () { var assetName, rustupPath; return __generator(this, function (_a) { switch (_a.label) { case 0: assetName = os_1.platform() === 'win32' ? 'rustup-init.exe' : 'rustup-init.sh'; rustupPath = path_1.resolve(__dirname, "../../bin/" + assetName); if (!!fs_1.existsSync(rustupPath)) return [3 /*break*/, 2]; return [4 /*yield*/, download_binary_1.downloadRustup()]; case 1: _a.sent(); _a.label = 2; case 2: if (os_1.platform() === 'win32') { return [2 /*return*/, spawn_1.spawnSync('powershell', ['-NoProfile', rustupPath], process.cwd())]; } return [2 /*return*/, spawn_1.spawnSync('/bin/sh', [rustupPath], process.cwd())]; } }); }); } function manageDependencies(managementType) { return __awaiter(this, void 0, void 0, function () { return __generator(this, function (_a) { switch (_a.label) { case 0: if (!(get_script_version_1.default('rustup') === null)) return [3 /*break*/, 2]; log('Installing rustup...'); return [4 /*yield*/, installRustup()]; case 1: _a.sent(); _a.label = 2; case 2: if (managementType === types_1.ManagementType.Update) { spawn_1.spawnSync('rustup', ['update'], process.cwd()); } return [2 /*return*/]; } }); }); } function install() { return __awaiter(this, void 0, void 0, function () { return __generator(this, function (_a) { switch (_a.label) { case 0: return [4 /*yield*/, manageDependencies(types_1.ManagementType.Install)]; case 1: return [2 /*return*/, _a.sent()]; } }); }); } exports.install = install; function update() { return __awaiter(this, void 0, void 0, function () { return __generator(this, function (_a) { switch (_a.label) { case 0: return [4 /*yield*/, manageDependencies(types_1.ManagementType.Update)]; case 1: return [2 /*return*/, _a.sent()]; } }); }); } exports.update = update; /***/ }), /***/ "./src/api/dependency-manager/types.ts": /*!*********************************************!*\ !*** ./src/api/dependency-manager/types.ts ***! \*********************************************/ /***/ ((__unused_webpack_module, exports) => { "use strict"; // Copyright 2019-2021 Tauri Programme within The Commons Conservancy // SPDX-License-Identifier: Apache-2.0 // SPDX-License-Identifier: MIT Object.defineProperty(exports, "__esModule", ({ value: true })); exports.ManagementType = void 0; var ManagementType; (function (ManagementType) { ManagementType[ManagementType["Install"] = 0] = "Install"; ManagementType[ManagementType["InstallDev"] = 1] = "InstallDev"; ManagementType[ManagementType["Update"] = 2] = "Update"; })(ManagementType = exports.ManagementType || (exports.ManagementType = {})); /***/ }), /***/ "./src/api/dependency-manager/util.ts": /*!********************************************!*\ !*** ./src/api/dependency-manager/util.ts ***! \********************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; // Copyright 2019-2021 Tauri Programme within The Commons Conservancy // SPDX-License-Identifier: Apache-2.0 // SPDX-License-Identifier: MIT Object.defineProperty(exports, "__esModule", ({ value: true })); exports.semverLt = exports.padVersion = exports.updateNpmPackage = exports.installNpmDevPackage = exports.installNpmPackage = exports.getNpmPackageVersion = exports.getNpmLatestVersion = exports.getCrateLatestVersion = exports.getManager = void 0; var cross_spawn_1 = __webpack_require__(/*! cross-spawn */ "cross-spawn"); var app_paths_1 = __webpack_require__(/*! ../../helpers/app-paths */ "./src/helpers/app-paths.ts"); var fs_1 = __webpack_require__(/*! fs */ "fs"); // import semver from 'semver' var managers_1 = __webpack_require__(/*! ./managers */ "./src/api/dependency-manager/managers/index.ts"); var getManager = function () { if (fs_1.existsSync(app_paths_1.resolve.app('yarn.lock'))) { return new managers_1.YarnManager(); } else if (fs_1.existsSync(app_paths_1.resolve.app('pnpm-lock.yaml'))) { return new managers_1.PnpmManager(); } else { return new managers_1.NpmManager(); } }; exports.getManager = getManager; function getCrateLatestVersion(crateName) { var child = cross_spawn_1.sync('cargo', ['search', crateName, '--limit', '1']); var output = String(child.output[1]); // eslint-disable-next-line security/detect-non-literal-regexp var matches = new RegExp(crateName + ' = "(\\S+)"', 'g').exec(output); if (matches === null || matches === void 0 ? void 0 : matches[1]) { return matches[1]; } else { return null; } } exports.getCrateLatestVersion = getCrateLatestVersion; function getNpmLatestVersion(packageName) { return getManager().getLatestVersion(packageName); } exports.getNpmLatestVersion = getNpmLatestVersion; function getNpmPackageVersion(packageName) { return getManager().getPackageVersion(packageName); } exports.getNpmPackageVersion = getNpmPackageVersion; function installNpmPackage(packageName) { return getManager().installPackage(packageName); } exports.installNpmPackage = installNpmPackage; function installNpmDevPackage(packageName) { return getManager().installDevPackage(packageName); } exports.installNpmDevPackage = installNpmDevPackage; function updateNpmPackage(packageName) { return getManager().updatePackage(packageName); } exports.updateNpmPackage = updateNpmPackage; function padVersion(version) { var _a; var count = ((_a = version.match(/\./g)) !== null && _a !== void 0 ? _a : []).length; while (count < 2) { count++; version += '.0'; } return version; } exports.padVersion = padVersion; function semverLt(first, second) { return first !== second; // TODO: When version 1.0.0 is released this code should work again // return semver.lt(padVersion(first), padVersion(second)) } exports.semverLt = semverLt; /***/ }), /***/ "./src/helpers/app-paths.ts": /*!**********************************!*\ !*** ./src/helpers/app-paths.ts ***! \**********************************/ /***/ (function(__unused_webpack_module, exports, __webpack_require__) { "use strict"; // Copyright 2019-2021 Tauri Programme within The Commons Conservancy // SPDX-License-Identifier: Apache-2.0 // SPDX-License-Identifier: MIT var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", ({ value: true })); exports.resolve = exports.tauriDir = exports.appDir = void 0; var fs_1 = __webpack_require__(/*! fs */ "fs"); var path_1 = __webpack_require__(/*! path */ "path"); var logger_1 = __importDefault(__webpack_require__(/*! ./logger */ "./src/helpers/logger.ts")); var chalk_1 = __importDefault(__webpack_require__(/*! chalk */ "chalk")); var warn = logger_1.default('tauri', chalk_1.default.red); function resolvePath(basePath, dir) { return dir && path_1.isAbsolute(dir) ? dir : path_1.resolve(basePath, dir); } var getAppDir = function () { var dir = process.cwd(); var count = 0; // only go up three folders max while (dir.length > 0 && !dir.endsWith(path_1.sep) && count <= 2) { if (fs_1.existsSync(path_1.join(dir, 'src-tauri', 'tauri.conf.json'))) { return dir; } count++; dir = path_1.normalize(path_1.join(dir, '..')); } warn("Couldn't find recognize the current folder as a part of a Tauri project"); process.exit(1); }; var appDir = getAppDir(); exports.appDir = appDir; var tauriDir = path_1.resolve(appDir, 'src-tauri'); exports.tauriDir = tauriDir; var resolveDir = { app: function (dir) { return resolvePath(appDir, dir); }, tauri: function (dir) { return resolvePath(tauriDir, dir); } }; exports.resolve = resolveDir; /***/ }), /***/ "./src/helpers/download-binary.ts": /*!****************************************!*\ !*** ./src/helpers/download-binary.ts ***! \****************************************/ /***/ (function(__unused_webpack_module, exports, __webpack_require__) { "use strict"; var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } return new (P || (P = Promise))(function (resolve, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; var __generator = (this && this.__generator) || function (thisArg, body) { var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g; return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; function verb(n) { return function (v) { return step([n, v]); }; } function step(op) { if (f) throw new TypeError("Generator is already executing."); while (_) try { 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; if (y = 0, t) op = [op[0] & 2, t.value]; switch (op[0]) { case 0: case 1: t = op; break; case 4: _.label++; return { value: op[1], done: false }; case 5: _.label++; y = op[1]; op = [0]; continue; case 7: op = _.ops.pop(); _.trys.pop(); continue; default: if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; } if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } if (t[2]) _.ops.pop(); _.trys.pop(); continue; } op = body.call(thisArg, _); } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; } }; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", ({ value: true })); exports.downloadRustup = exports.downloadCli = void 0; var stream_1 = __importDefault(__webpack_require__(/*! stream */ "stream")); var util_1 = __webpack_require__(/*! util */ "util"); var fs_1 = __importDefault(__webpack_require__(/*! fs */ "fs")); var got_1 = __importDefault(__webpack_require__(/*! got */ "got")); var path_1 = __importDefault(__webpack_require__(/*! path */ "path")); var pipeline = util_1.promisify(stream_1.default.pipeline); // Webpack reads the file at build-time, so this becomes a static var // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment, @typescript-eslint/no-var-requires, @typescript-eslint/no-unsafe-member-access var tauriCliManifest = __webpack_require__(/*! ../../../cli.rs/Cargo.toml */ "../cli.rs/Cargo.toml"); var downloads = {}; function downloadBinaryRelease(tag, asset, outPath) { return __awaiter(this, void 0, void 0, function () { var url, removeDownloadedCliIfNeeded; return __generator(this, function (_a) { switch (_a.label) { case 0: url = "https://github.com/tauri-apps/binary-releases/releases/download/" + tag + "/" + asset; removeDownloadedCliIfNeeded = function () { try { if (!(url in downloads)) { // eslint-disable-next-line security/detect-non-literal-fs-filename fs_1.default.unlinkSync(outPath); } } finally { process.exit(); } }; // on exit, we remove the `tauri-cli` file if the download didn't complete process.on('exit', removeDownloadedCliIfNeeded); process.on('SIGINT', removeDownloadedCliIfNeeded); process.on('SIGTERM', removeDownloadedCliIfNeeded); process.on('SIGHUP', removeDownloadedCliIfNeeded); process.on('SIGBREAK', removeDownloadedCliIfNeeded); // TODO: Check hash of download // eslint-disable-next-line @typescript-eslint/no-unsafe-call, @typescript-eslint/no-unsafe-member-access, security/detect-non-literal-fs-filename return [4 /*yield*/, pipeline(got_1.default.stream(url), fs_1.default.createWriteStream(outPath)).catch(function (e) { try { // eslint-disable-next-line security/detect-non-literal-fs-filename fs_1.default.unlinkSync(outPath); } catch (_a) { } throw e; }) // eslint-disable-next-line security/detect-object-injection ]; case 1: // TODO: Check hash of download // eslint-disable-next-line @typescript-eslint/no-unsafe-call, @typescript-eslint/no-unsafe-member-access, security/detect-non-literal-fs-filename _a.sent(); // eslint-disable-next-line security/detect-object-injection downloads[url] = true; // eslint-disable-next-line security/detect-non-literal-fs-filename fs_1.default.chmodSync(outPath, 448); console.log('Download Complete'); return [2 /*return*/]; } }); }); } function downloadCli() { return __awaiter(this, void 0, void 0, function () { var version, platform, extension, outPath; return __generator(this, function (_a) { switch (_a.label) { case 0: version = tauriCliManifest.package.version; platform = process.platform; if (platform === 'win32') { platform = 'windows'; } else if (platform === 'linux') { platform = 'linux'; } else if (platform === 'darwin') { platform = 'macos'; } else { throw Error('Unsupported platform'); } extension = platform === 'windows' ? '.exe' : ''; outPath = path_1.default.join(__dirname, "../../bin/tauri-cli" + extension); console.log('Downloading Rust CLI...'); return [4 /*yield*/, downloadBinaryRelease("tauri-cli-v" + version, "tauri-cli_" + platform + extension, outPath)]; case 1: _a.sent(); return [2 /*return*/]; } }); }); } exports.downloadCli = downloadCli; function downloadRustup() { return __awaiter(this, void 0, void 0, function () { var assetName; return __generator(this, function (_a) { switch (_a.label) { case 0: assetName = process.platform === 'win32' ? 'rustup-init.exe' : 'rustup-init.sh'; console.log('Downloading Rustup...'); return [4 /*yield*/, downloadBinaryRelease('rustup', assetName, path_1.default.join(__dirname, "../../bin/" + assetName))]; case 1: return [2 /*return*/, _a.sent()]; } }); }); } exports.downloadRustup = downloadRustup; /***/ }), /***/ "./src/helpers/get-script-version.ts": /*!*******************************************!*\ !*** ./src/helpers/get-script-version.ts ***! \*******************************************/ /***/ (function(__unused_webpack_module, exports, __webpack_require__) { "use strict"; // Copyright 2019-2021 Tauri Programme within The Commons Conservancy // SPDX-License-Identifier: Apache-2.0 // SPDX-License-Identifier: MIT var __spreadArray = (this && this.__spreadArray) || function (to, from) { for (var i = 0, il = from.length, j = to.length; i < il; i++, j++) to[j] = from[i]; return to; }; Object.defineProperty(exports, "__esModule", ({ value: true })); var cross_spawn_1 = __webpack_require__(/*! cross-spawn */ "cross-spawn"); function getVersion(command, args) { if (args === void 0) { args = []; } try { var child = cross_spawn_1.sync(command, __spreadArray(__spreadArray([], args), ['--version'])); if (child.status === 0) { var output = String(child.output[1]); return output.replace(/\n/g, ''); } return null; } catch (err) { return null; } } exports.default = getVersion; /***/ }), /***/ "./src/helpers/logger.ts": /*!*******************************!*\ !*** ./src/helpers/logger.ts ***! \*******************************/ /***/ (function(__unused_webpack_module, exports, __webpack_require__) { "use strict"; // Copyright 2019-2021 Tauri Programme within The Commons Conservancy // SPDX-License-Identifier: Apache-2.0 // SPDX-License-Identifier: MIT var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", ({ value: true })); var chalk_1 = __importDefault(__webpack_require__(/*! chalk */ "chalk")); var ms_1 = __importDefault(__webpack_require__(/*! ms */ "ms")); var prevTime; exports.default = (function (banner, color) { if (color === void 0) { color = chalk_1.default.green; } return function (msg) { var curr = +new Date(); var diff = curr - (prevTime || curr); prevTime = curr; if (msg) { console.log( // TODO: proper typings for color and banner // eslint-disable-next-line @typescript-eslint/restrict-template-expressions, @typescript-eslint/no-unsafe-call " " + color(String(banner)) + " " + msg + " " + chalk_1.default.green("+" + ms_1.default(diff))); } else { console.log(); } }; }); /***/ }), /***/ "./src/helpers/spawn.ts": /*!******************************!*\ !*** ./src/helpers/spawn.ts ***! \******************************/ /***/ (function(__unused_webpack_module, exports, __webpack_require__) { "use strict"; // Copyright 2019-2021 Tauri Programme within The Commons Conservancy // SPDX-License-Identifier: Apache-2.0 // SPDX-License-Identifier: MIT var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", ({ value: true })); exports.spawnSync = exports.spawn = void 0; var cross_spawn_1 = __importDefault(__webpack_require__(/*! cross-spawn */ "cross-spawn")); var logger_1 = __importDefault(__webpack_require__(/*! ./logger */ "./src/helpers/logger.ts")); var chalk_1 = __importDefault(__webpack_require__(/*! chalk */ "chalk")); var log = logger_1.default('app:spawn'); var warn = logger_1.default('app:spawn', chalk_1.default.red); /* Returns pid, takes onClose */ var spawn = function (cmd, params, cwd, onClose) { var _a; log("Running \"" + cmd + " " + params.join(' ') + "\""); log(); // TODO: move to execa? var runner = cross_spawn_1.default(cmd, params, { stdio: 'inherit', cwd: cwd, env: process.env }); runner.on('close', function (code) { var _a; log(); if (code) { // eslint-disable-next-line @typescript-eslint/restrict-template-expressions log("Command \"" + cmd + "\" failed with exit code: " + code); } // eslint-disable-next-line @typescript-eslint/prefer-optional-chain onClose && onClose(code !== null && code !== void 0 ? code : 0, (_a = runner.pid) !== null && _a !== void 0 ? _a : 0); }); return (_a = runner.pid) !== null && _a !== void 0 ? _a : 0; }; exports.spawn = spawn; /* Returns nothing, takes onFail */ var spawnSync = function (cmd, params, cwd, onFail) { log("[sync] Running \"" + cmd + " " + params.join(' ') + "\""); log(); var runner = cross_spawn_1.default.sync(cmd, params, { stdio: 'inherit', cwd: cwd }); // eslint-disable-next-line @typescript-eslint/prefer-nullish-coalescing if (runner.status || runner.error) { warn(); // eslint-disable-next-line @typescript-eslint/restrict-template-expressions warn("\u26A0\uFE0F Command \"" + cmd + "\" failed with exit code: " + runner.status); if (runner.status === null) { warn("\u26A0\uFE0F Please globally install \"" + cmd + "\""); } // eslint-disable-next-line @typescript-eslint/prefer-optional-chain onFail && onFail(); process.exit(1); } }; exports.spawnSync = spawnSync; /***/ }), /***/ "@tauri-apps/toml": /*!***********************************!*\ !*** external "@tauri-apps/toml" ***! \***********************************/ /***/ ((module) => { "use strict"; module.exports = require("@tauri-apps/toml");; /***/ }), /***/ "chalk": /*!************************!*\ !*** external "chalk" ***! \************************/ /***/ ((module) => { "use strict"; module.exports = require("chalk");; /***/ }), /***/ "cross-spawn": /*!******************************!*\ !*** external "cross-spawn" ***! \******************************/ /***/ ((module) => { "use strict"; module.exports = require("cross-spawn");; /***/ }), /***/ "fs": /*!*********************!*\ !*** external "fs" ***! \*********************/ /***/ ((module) => { "use strict"; module.exports = require("fs");; /***/ }), /***/ "got": /*!**********************!*\ !*** external "got" ***! \**********************/ /***/ ((module) => { "use strict"; module.exports = require("got");; /***/ }), /***/ "https": /*!************************!*\ !*** external "https" ***! \************************/ /***/ ((module) => { "use strict"; module.exports = require("https");; /***/ }), /***/ "inquirer": /*!***************************!*\ !*** external "inquirer" ***! \***************************/ /***/ ((module) => { "use strict"; module.exports = require("inquirer");; /***/ }), /***/ "ms": /*!*********************!*\ !*** external "ms" ***! \*********************/ /***/ ((module) => { "use strict"; module.exports = require("ms");; /***/ }), /***/ "os": /*!*********************!*\ !*** external "os" ***! \*********************/ /***/ ((module) => { "use strict"; module.exports = require("os");; /***/ }), /***/ "path": /*!***********************!*\ !*** external "path" ***! \***********************/ /***/ ((module) => { "use strict"; module.exports = require("path");; /***/ }), /***/ "stream": /*!*************************!*\ !*** external "stream" ***! \*************************/ /***/ ((module) => { "use strict"; module.exports = require("stream");; /***/ }), /***/ "util": /*!***********************!*\ !*** external "util" ***! \***********************/ /***/ ((module) => { "use strict"; module.exports = require("util");; /***/ }) /******/ }); /************************************************************************/ /******/ // The module cache /******/ var __webpack_module_cache__ = {}; /******/ /******/ // The require function /******/ function __webpack_require__(moduleId) { /******/ // Check if module is in cache /******/ var cachedModule = __webpack_module_cache__[moduleId]; /******/ if (cachedModule !== undefined) { /******/ return cachedModule.exports; /******/ } /******/ // Create a new module (and put it into the cache) /******/ var module = __webpack_module_cache__[moduleId] = { /******/ // no module.id needed /******/ // no module.loaded needed /******/ exports: {} /******/ }; /******/ /******/ // Execute the module function /******/ __webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__); /******/ /******/ // Return the exports of the module /******/ return module.exports; /******/ } /******/ /************************************************************************/ /******/ /******/ // startup /******/ // Load entry module and return exports /******/ // This entry module is referenced by other modules so it can't be inlined /******/ var __webpack_exports__ = __webpack_require__("./src/api/dependency-manager/index.ts"); /******/ /******/ return __webpack_exports__; /******/ })() ; }); //# sourceMappingURL=dependency-manager.js.map