From 91ec876b504bc92f787acac96d19d3fbd993475b Mon Sep 17 00:00:00 2001 From: Amr Bashir Date: Wed, 2 Mar 2022 15:21:00 +0200 Subject: [PATCH] chore: remove accidental checked cli.js dir (#3562) Co-authored-by: chip --- .gitignore | 6 +- tooling/cli.js/dist/api/cli.js | 760 ---- tooling/cli.js/dist/api/cli.js.map | 1 - tooling/cli.js/dist/api/dependency-manager.js | 1655 --------- .../cli.js/dist/api/dependency-manager.js.map | 1 - tooling/cli.js/dist/api/tauricon.js | 3106 ----------------- tooling/cli.js/dist/api/tauricon.js.map | 1 - .../cli.js/dist/helpers/download-binary.js | 384 -- .../dist/helpers/download-binary.js.map | 1 - tooling/cli.js/dist/helpers/rust-cli.js | 655 ---- tooling/cli.js/dist/helpers/rust-cli.js.map | 1 - tooling/cli.js/dist/helpers/spawn.js | 194 - tooling/cli.js/dist/helpers/spawn.js.map | 1 - 13 files changed, 5 insertions(+), 6761 deletions(-) delete mode 100644 tooling/cli.js/dist/api/cli.js delete mode 100644 tooling/cli.js/dist/api/cli.js.map delete mode 100644 tooling/cli.js/dist/api/dependency-manager.js delete mode 100644 tooling/cli.js/dist/api/dependency-manager.js.map delete mode 100644 tooling/cli.js/dist/api/tauricon.js delete mode 100644 tooling/cli.js/dist/api/tauricon.js.map delete mode 100644 tooling/cli.js/dist/helpers/download-binary.js delete mode 100644 tooling/cli.js/dist/helpers/download-binary.js.map delete mode 100644 tooling/cli.js/dist/helpers/rust-cli.js delete mode 100644 tooling/cli.js/dist/helpers/rust-cli.js.map delete mode 100644 tooling/cli.js/dist/helpers/spawn.js delete mode 100644 tooling/cli.js/dist/helpers/spawn.js.map diff --git a/.gitignore b/.gitignore index cc1a831a3..4fb1d3064 100644 --- a/.gitignore +++ b/.gitignore @@ -82,4 +82,8 @@ __handlers__/ # benches gh-pages -test_video.mp4 \ No newline at end of file +test_video.mp4 + +# old cli directories +/tooling/cli.js +/tooling/cli.rs diff --git a/tooling/cli.js/dist/api/cli.js b/tooling/cli.js/dist/api/cli.js deleted file mode 100644 index 24934d94a..000000000 --- a/tooling/cli.js/dist/api/cli.js +++ /dev/null @@ -1,760 +0,0 @@ -(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/cli.ts": -/*!************************!*\ - !*** ./src/api/cli.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 }; - } -}; -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.build = exports.dev = exports.init = void 0; -var rust_cli_1 = __webpack_require__(/*! ../helpers/rust-cli */ "./src/helpers/rust-cli.ts"); -function toKebabCase(value) { - return value - .replace(/([a-z])([A-Z])/g, '$1-$2') - .replace(/\s+/g, '-') - .toLowerCase(); -} -function runCliCommand(command, args) { - return __awaiter(this, void 0, void 0, function () { - var argsArray, _i, _a, _b, argName, argValue; - return __generator(this, function (_c) { - switch (_c.label) { - case 0: - argsArray = []; - for (_i = 0, _a = Object.entries(args !== null && args !== void 0 ? args : {}); _i < _a.length; _i++) { - _b = _a[_i], argName = _b[0], argValue = _b[1]; - if (argValue === false) { - continue; - } - argsArray.push("--" + toKebabCase(argName)); - if (argValue === true) { - continue; - } - argsArray.push(typeof argValue === 'string' ? argValue : JSON.stringify(argValue)); - } - return [4 /*yield*/, rust_cli_1.runOnRustCli(command, argsArray)]; - case 1: return [2 /*return*/, _c.sent()]; - } - }); - }); -} -var init = function (args) { return __awaiter(void 0, void 0, void 0, function () { return __generator(this, function (_a) { - switch (_a.label) { - case 0: return [4 /*yield*/, runCliCommand('init', args)]; - case 1: return [2 /*return*/, _a.sent()]; - } -}); }); }; -exports.init = init; -var dev = function (args) { return __awaiter(void 0, void 0, void 0, function () { return __generator(this, function (_a) { - switch (_a.label) { - case 0: return [4 /*yield*/, runCliCommand('dev', args)]; - case 1: return [2 /*return*/, _a.sent()]; - } -}); }); }; -exports.dev = dev; -var build = function (args) { return __awaiter(void 0, void 0, void 0, function () { return __generator(this, function (_a) { - switch (_a.label) { - case 0: return [4 /*yield*/, runCliCommand('build', args)]; - case 1: return [2 /*return*/, _a.sent()]; - } -}); }); }; -exports.build = build; - - -/***/ }), - -/***/ "./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/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/rust-cli.ts": -/*!*********************************!*\ - !*** ./src/helpers/rust-cli.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; -}; -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.runOnRustCli = void 0; -var fs_1 = __webpack_require__(/*! fs */ "fs"); -var path_1 = __webpack_require__(/*! path */ "path"); -var spawn_1 = __webpack_require__(/*! ./spawn */ "./src/helpers/spawn.ts"); -var download_binary_1 = __webpack_require__(/*! ./download-binary */ "./src/helpers/download-binary.ts"); -var currentTauriCliVersion = function () { - // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment, @typescript-eslint/no-unsafe-member-access - var tauriCliManifest = - // eslint-disable-next-line @typescript-eslint/no-var-requires - __webpack_require__(/*! ../../../cli.rs/Cargo.toml */ "../cli.rs/Cargo.toml"); - return tauriCliManifest.package.version; -}; -function runOnRustCli(command, args) { - return __awaiter(this, void 0, void 0, function () { - var targetPath, targetCliPath, resolveCb, rejectCb, pid, promise, onClose, cliPath, localCliPath; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - targetPath = path_1.resolve(__dirname, '../..'); - targetCliPath = path_1.join(targetPath, 'bin/tauri-cli' + (process.platform === 'win32' ? '.exe' : '')); - promise = new Promise(function (resolve, reject) { - resolveCb = resolve; - rejectCb = function () { return reject(new Error()); }; - }); - onClose = function (code, pid) { - if (code === 0) { - resolveCb(); - } - else { - rejectCb(); - } - }; - if (!fs_1.existsSync(targetCliPath)) return [3 /*break*/, 1]; - pid = spawn_1.spawn(targetCliPath, __spreadArray(['tauri', command], args), process.cwd(), onClose); - return [3 /*break*/, 4]; - case 1: - if (true) return [3 /*break*/, 3]; - return [4 /*yield*/, download_binary_1.downloadCli()]; - case 2: - _a.sent(); - pid = spawn_1.spawn(targetCliPath, __spreadArray(['tauri', command], args), process.cwd(), onClose); - return [3 /*break*/, 4]; - case 3: - if (fs_1.existsSync(path_1.resolve(targetPath, '../bundler'))) { - cliPath = path_1.resolve(targetPath, '../cli.rs'); - spawn_1.spawnSync('cargo', ['build', '--release'], cliPath); - localCliPath = path_1.resolve(targetPath, '../cli.rs/target/release/cargo-tauri'); - pid = spawn_1.spawn(localCliPath, __spreadArray(['tauri', command], args), process.cwd(), onClose); - } - else { - spawn_1.spawnSync('cargo', [ - 'install', - '--root', - targetPath, - 'tauri-cli', - '--version', - currentTauriCliVersion() - ], process.cwd()); - pid = spawn_1.spawn(targetCliPath, __spreadArray(['tauri', command], args), process.cwd(), onClose); - } - _a.label = 4; - case 4: return [2 /*return*/, { pid: pid, promise: promise }]; - } - }); - }); -} -exports.runOnRustCli = runOnRustCli; - - -/***/ }), - -/***/ "./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; - - -/***/ }), - -/***/ "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");; - -/***/ }), - -/***/ "ms": -/*!*********************!*\ - !*** external "ms" ***! - \*********************/ -/***/ ((module) => { - -"use strict"; -module.exports = require("ms");; - -/***/ }), - -/***/ "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/cli.ts"); -/******/ -/******/ return __webpack_exports__; -/******/ })() -; -}); -//# sourceMappingURL=cli.js.map \ No newline at end of file diff --git a/tooling/cli.js/dist/api/cli.js.map b/tooling/cli.js/dist/api/cli.js.map deleted file mode 100644 index 35bfa391e..000000000 --- a/tooling/cli.js/dist/api/cli.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["webpack://tauri/webpack/universalModuleDefinition","webpack://tauri/../cli.rs/Cargo.toml","webpack://tauri/./src/api/cli.ts","webpack://tauri/./src/helpers/download-binary.ts","webpack://tauri/./src/helpers/logger.ts","webpack://tauri/./src/helpers/rust-cli.ts","webpack://tauri/./src/helpers/spawn.ts","webpack://tauri/external \"chalk\"","webpack://tauri/external \"cross-spawn\"","webpack://tauri/external \"fs\"","webpack://tauri/external \"got\"","webpack://tauri/external \"ms\"","webpack://tauri/external \"path\"","webpack://tauri/external \"stream\"","webpack://tauri/external \"util\"","webpack://tauri/webpack/bootstrap","webpack://tauri/webpack/startup"],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,O;;;;;;;;;ACVA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,C;;;;;;;;;;;AC5Ga;AACb;AACA;AACA;AACA;AACA,2BAA2B,+DAA+D,gBAAgB,EAAE,EAAE;AAC9G;AACA,mCAAmC,MAAM,6BAA6B,EAAE,YAAY,WAAW,EAAE;AACjG,kCAAkC,MAAM,iCAAiC,EAAE,YAAY,WAAW,EAAE;AACpG,+BAA+B,qFAAqF;AACpH;AACA,KAAK;AACL;AACA;AACA,aAAa,6BAA6B,0BAA0B,aAAa,EAAE,qBAAqB;AACxG,gBAAgB,qDAAqD,oEAAoE,aAAa,EAAE;AACxJ,sBAAsB,sBAAsB,qBAAqB,GAAG;AACpE;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC;AACvC,kCAAkC,SAAS;AAC3C,kCAAkC,WAAW,UAAU;AACvD,yCAAyC,cAAc;AACvD;AACA,6GAA6G,OAAO,UAAU;AAC9H,gFAAgF,iBAAiB,OAAO;AACxG,wDAAwD,gBAAgB,QAAQ,OAAO;AACvF,8CAA8C,gBAAgB,gBAAgB,OAAO;AACrF;AACA,iCAAiC;AACjC;AACA;AACA,SAAS,YAAY,aAAa,OAAO,EAAE,UAAU,WAAW;AAChE,mCAAmC,SAAS;AAC5C;AACA;AACA,8CAA6C,CAAC,cAAc,EAAC;AAC7D,aAAa,GAAG,WAAW,GAAG,YAAY;AAC1C,iBAAiB,mBAAO,CAAC,sDAAqB;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iGAAiG,EAAE,gBAAgB;AACnH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;AACL;AACA,4BAA4B,uDAAuD;AACnF;AACA;AACA;AACA;AACA,CAAC,EAAE,EAAE,EAAE;AACP,YAAY;AACZ,2BAA2B,uDAAuD;AAClF;AACA;AACA;AACA;AACA,CAAC,EAAE,EAAE,EAAE;AACP,WAAW;AACX,6BAA6B,uDAAuD;AACpF;AACA;AACA;AACA;AACA,CAAC,EAAE,EAAE,EAAE;AACP,aAAa;;;;;;;;;;;;AC7FA;AACb;AACA,2BAA2B,+DAA+D,gBAAgB,EAAE,EAAE;AAC9G;AACA,mCAAmC,MAAM,6BAA6B,EAAE,YAAY,WAAW,EAAE;AACjG,kCAAkC,MAAM,iCAAiC,EAAE,YAAY,WAAW,EAAE;AACpG,+BAA+B,qFAAqF;AACpH;AACA,KAAK;AACL;AACA;AACA,aAAa,6BAA6B,0BAA0B,aAAa,EAAE,qBAAqB;AACxG,gBAAgB,qDAAqD,oEAAoE,aAAa,EAAE;AACxJ,sBAAsB,sBAAsB,qBAAqB,GAAG;AACpE;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC;AACvC,kCAAkC,SAAS;AAC3C,kCAAkC,WAAW,UAAU;AACvD,yCAAyC,cAAc;AACvD;AACA,6GAA6G,OAAO,UAAU;AAC9H,gFAAgF,iBAAiB,OAAO;AACxG,wDAAwD,gBAAgB,QAAQ,OAAO;AACvF,8CAA8C,gBAAgB,gBAAgB,OAAO;AACrF;AACA,iCAAiC;AACjC;AACA;AACA,SAAS,YAAY,aAAa,OAAO,EAAE,UAAU,WAAW;AAChE,mCAAmC,SAAS;AAC5C;AACA;AACA;AACA,4CAA4C;AAC5C;AACA,8CAA6C,CAAC,cAAc,EAAC;AAC7D,sBAAsB,GAAG,mBAAmB;AAC5C,+BAA+B,mBAAO,CAAC,sBAAQ;AAC/C,aAAa,mBAAO,CAAC,kBAAM;AAC3B,2BAA2B,mBAAO,CAAC,cAAI;AACvC,4BAA4B,mBAAO,CAAC,gBAAK;AACzC,6BAA6B,mBAAO,CAAC,kBAAM;AAC3C;AACA;AACA;AACA,uBAAuB,mBAAO,CAAC,wDAA4B;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC;AACxC;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;AACL;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;AACL;AACA,sBAAsB;;;;;;;;;;;;ACpJT;AACb;AACA;AACA;AACA;AACA,4CAA4C;AAC5C;AACA,8CAA6C,CAAC,cAAc,EAAC;AAC7D,8BAA8B,mBAAO,CAAC,oBAAO;AAC7C,2BAA2B,mBAAO,CAAC,cAAI;AACvC;AACA,eAAe;AACf,2BAA2B,+BAA+B;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;;;;;;;;;;;AC3BY;AACb;AACA;AACA;AACA;AACA,2BAA2B,+DAA+D,gBAAgB,EAAE,EAAE;AAC9G;AACA,mCAAmC,MAAM,6BAA6B,EAAE,YAAY,WAAW,EAAE;AACjG,kCAAkC,MAAM,iCAAiC,EAAE,YAAY,WAAW,EAAE;AACpG,+BAA+B,qFAAqF;AACpH;AACA,KAAK;AACL;AACA;AACA,aAAa,6BAA6B,0BAA0B,aAAa,EAAE,qBAAqB;AACxG,gBAAgB,qDAAqD,oEAAoE,aAAa,EAAE;AACxJ,sBAAsB,sBAAsB,qBAAqB,GAAG;AACpE;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC;AACvC,kCAAkC,SAAS;AAC3C,kCAAkC,WAAW,UAAU;AACvD,yCAAyC,cAAc;AACvD;AACA,6GAA6G,OAAO,UAAU;AAC9H,gFAAgF,iBAAiB,OAAO;AACxG,wDAAwD,gBAAgB,QAAQ,OAAO;AACvF,8CAA8C,gBAAgB,gBAAgB,OAAO;AACrF;AACA,iCAAiC;AACjC;AACA;AACA,SAAS,YAAY,aAAa,OAAO,EAAE,UAAU,WAAW;AAChE,mCAAmC,SAAS;AAC5C;AACA;AACA;AACA,oDAAoD,QAAQ;AAC5D;AACA;AACA;AACA,8CAA6C,CAAC,cAAc,EAAC;AAC7D,oBAAoB;AACpB,WAAW,mBAAO,CAAC,cAAI;AACvB,aAAa,mBAAO,CAAC,kBAAM;AAC3B,cAAc,mBAAO,CAAC,uCAAS;AAC/B,wBAAwB,mBAAO,CAAC,2DAAmB;AACnD;AACA;AACA;AACA;AACA,IAAI,mBAAO,CAAC,wDAA4B;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD,4BAA4B;AAC5E,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,IAAwC;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C,6BAA6B;AAC5E;AACA,SAAS;AACT,KAAK;AACL;AACA,oBAAoB;;;;;;;;;;;;AChHP;AACb;AACA;AACA;AACA;AACA,4CAA4C;AAC5C;AACA,8CAA6C,CAAC,cAAc,EAAC;AAC7D,iBAAiB,GAAG,aAAa;AACjC,oCAAoC,mBAAO,CAAC,gCAAa;AACzD,+BAA+B,mBAAO,CAAC,yCAAU;AACjD,8BAA8B,mBAAO,CAAC,oBAAO;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;;;;;;;;;;;;AC/DjB,mC;;;;;;;;;;;ACAA,yC;;;;;;;;;;;ACAA,gC;;;;;;;;;;;ACAA,iC;;;;;;;;;;;ACAA,gC;;;;;;;;;;;ACAA,kC;;;;;;;;;;;ACAA,oC;;;;;;;;;;;ACAA,kC;;;;;;UCAA;UACA;;UAEA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;;UAEA;UACA;;UAEA;UACA;UACA;;;;UCtBA;UACA;UACA;UACA","file":"api/cli.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"tauri\"] = factory();\n\telse\n\t\troot[\"tauri\"] = factory();\n})(this, function() {\nreturn ","module.exports = {\n\t\"workspace\": {},\n\t\"package\": {\n\t\t\"name\": \"tauri-cli\",\n\t\t\"version\": \"1.0.0-beta.5\",\n\t\t\"authors\": [\n\t\t\t\"Tauri Programme within The Commons Conservancy\"\n\t\t],\n\t\t\"edition\": \"2018\",\n\t\t\"categories\": [\n\t\t\t\"gui\",\n\t\t\t\"web-programming\"\n\t\t],\n\t\t\"license\": \"Apache-2.0 OR MIT\",\n\t\t\"homepage\": \"https://tauri.studio\",\n\t\t\"repository\": \"https://github.com/tauri-apps/tauri\",\n\t\t\"description\": \"Command line interface for building Tauri apps\",\n\t\t\"include\": [\n\t\t\t\"src/\",\n\t\t\t\"/templates\",\n\t\t\t\"MergeModules/\",\n\t\t\t\"*.json\",\n\t\t\t\"*.rs\"\n\t\t]\n\t},\n\t\"bin\": [\n\t\t{\n\t\t\t\"name\": \"cargo-tauri\",\n\t\t\t\"path\": \"src/main.rs\"\n\t\t}\n\t],\n\t\"dependencies\": {\n\t\t\"clap\": {\n\t\t\t\"version\": \"3.0.0-beta.2\",\n\t\t\t\"features\": [\n\t\t\t\t\"yaml\"\n\t\t\t]\n\t\t},\n\t\t\"anyhow\": \"1.0\",\n\t\t\"tauri-bundler\": {\n\t\t\t\"version\": \"1.0.0-beta.3\",\n\t\t\t\"path\": \"../bundler\"\n\t\t},\n\t\t\"colored\": \"2.0\",\n\t\t\"once_cell\": \"1.8\",\n\t\t\"serde\": {\n\t\t\t\"version\": \"1.0\",\n\t\t\t\"features\": [\n\t\t\t\t\"derive\"\n\t\t\t]\n\t\t},\n\t\t\"serde_json\": \"1.0\",\n\t\t\"serde_with\": \"1.9\",\n\t\t\"notify\": \"4.0\",\n\t\t\"shared_child\": \"0.3\",\n\t\t\"toml_edit\": \"0.2\",\n\t\t\"json-patch\": \"0.2\",\n\t\t\"schemars\": \"0.8\",\n\t\t\"toml\": \"0.5\",\n\t\t\"valico\": \"3.6\",\n\t\t\"handlebars\": \"4.1\",\n\t\t\"include_dir\": \"0.6\",\n\t\t\"minisign\": \"0.6\",\n\t\t\"base64\": \"0.13.0\",\n\t\t\"ureq\": \"2.1\",\n\t\t\"os_info\": \"3.0\",\n\t\t\"semver\": \"1.0\",\n\t\t\"regex\": \"1.5\",\n\t\t\"lazy_static\": \"1\",\n\t\t\"libc\": \"0.2\",\n\t\t\"terminal_size\": \"0.1\",\n\t\t\"unicode-width\": \"0.1\",\n\t\t\"tempfile\": \"3\",\n\t\t\"zeroize\": \"1.3\"\n\t},\n\t\"target\": {\n\t\t\"cfg(windows)\": {\n\t\t\t\"dependencies\": {\n\t\t\t\t\"winapi\": {\n\t\t\t\t\t\"version\": \"0.3\",\n\t\t\t\t\t\"features\": [\n\t\t\t\t\t\t\"winbase\",\n\t\t\t\t\t\t\"winuser\",\n\t\t\t\t\t\t\"consoleapi\",\n\t\t\t\t\t\t\"processenv\",\n\t\t\t\t\t\t\"wincon\"\n\t\t\t\t\t]\n\t\t\t\t},\n\t\t\t\t\"encode_unicode\": \"0.3\"\n\t\t\t}\n\t\t},\n\t\t\"cfg(target_os = \\\"linux\\\")\": {\n\t\t\t\"dependencies\": {\n\t\t\t\t\"heck\": \"0.3\"\n\t\t\t}\n\t\t}\n\t},\n\t\"build-dependencies\": {\n\t\t\"schemars\": \"0.8\",\n\t\t\"serde\": {\n\t\t\t\"version\": \"1.0\",\n\t\t\t\"features\": [\n\t\t\t\t\"derive\"\n\t\t\t]\n\t\t},\n\t\t\"serde_json\": \"1.0\",\n\t\t\"serde_with\": \"1.9\"\n\t}\n}","\"use strict\";\r\n// Copyright 2019-2021 Tauri Programme within The Commons Conservancy\r\n// SPDX-License-Identifier: Apache-2.0\r\n// SPDX-License-Identifier: MIT\r\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n};\r\nvar __generator = (this && this.__generator) || function (thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n 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;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.build = exports.dev = exports.init = void 0;\r\nvar rust_cli_1 = require(\"../helpers/rust-cli\");\r\nfunction toKebabCase(value) {\r\n return value\r\n .replace(/([a-z])([A-Z])/g, '$1-$2')\r\n .replace(/\\s+/g, '-')\r\n .toLowerCase();\r\n}\r\nfunction runCliCommand(command, args) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var argsArray, _i, _a, _b, argName, argValue;\r\n return __generator(this, function (_c) {\r\n switch (_c.label) {\r\n case 0:\r\n argsArray = [];\r\n for (_i = 0, _a = Object.entries(args !== null && args !== void 0 ? args : {}); _i < _a.length; _i++) {\r\n _b = _a[_i], argName = _b[0], argValue = _b[1];\r\n if (argValue === false) {\r\n continue;\r\n }\r\n argsArray.push(\"--\" + toKebabCase(argName));\r\n if (argValue === true) {\r\n continue;\r\n }\r\n argsArray.push(typeof argValue === 'string' ? argValue : JSON.stringify(argValue));\r\n }\r\n return [4 /*yield*/, rust_cli_1.runOnRustCli(command, argsArray)];\r\n case 1: return [2 /*return*/, _c.sent()];\r\n }\r\n });\r\n });\r\n}\r\nvar init = function (args) { return __awaiter(void 0, void 0, void 0, function () { return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0: return [4 /*yield*/, runCliCommand('init', args)];\r\n case 1: return [2 /*return*/, _a.sent()];\r\n }\r\n}); }); };\r\nexports.init = init;\r\nvar dev = function (args) { return __awaiter(void 0, void 0, void 0, function () { return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0: return [4 /*yield*/, runCliCommand('dev', args)];\r\n case 1: return [2 /*return*/, _a.sent()];\r\n }\r\n}); }); };\r\nexports.dev = dev;\r\nvar build = function (args) { return __awaiter(void 0, void 0, void 0, function () { return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0: return [4 /*yield*/, runCliCommand('build', args)];\r\n case 1: return [2 /*return*/, _a.sent()];\r\n }\r\n}); }); };\r\nexports.build = build;\r\n","\"use strict\";\r\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n};\r\nvar __generator = (this && this.__generator) || function (thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n 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;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n};\r\nvar __importDefault = (this && this.__importDefault) || function (mod) {\r\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.downloadRustup = exports.downloadCli = void 0;\r\nvar stream_1 = __importDefault(require(\"stream\"));\r\nvar util_1 = require(\"util\");\r\nvar fs_1 = __importDefault(require(\"fs\"));\r\nvar got_1 = __importDefault(require(\"got\"));\r\nvar path_1 = __importDefault(require(\"path\"));\r\nvar pipeline = util_1.promisify(stream_1.default.pipeline);\r\n// Webpack reads the file at build-time, so this becomes a static var\r\n// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment, @typescript-eslint/no-var-requires, @typescript-eslint/no-unsafe-member-access\r\nvar tauriCliManifest = require('../../../cli.rs/Cargo.toml');\r\nvar downloads = {};\r\nfunction downloadBinaryRelease(tag, asset, outPath) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var url, removeDownloadedCliIfNeeded;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n url = \"https://github.com/tauri-apps/binary-releases/releases/download/\" + tag + \"/\" + asset;\r\n removeDownloadedCliIfNeeded = function () {\r\n try {\r\n if (!(url in downloads)) {\r\n // eslint-disable-next-line security/detect-non-literal-fs-filename\r\n fs_1.default.unlinkSync(outPath);\r\n }\r\n }\r\n finally {\r\n process.exit();\r\n }\r\n };\r\n // on exit, we remove the `tauri-cli` file if the download didn't complete\r\n process.on('exit', removeDownloadedCliIfNeeded);\r\n process.on('SIGINT', removeDownloadedCliIfNeeded);\r\n process.on('SIGTERM', removeDownloadedCliIfNeeded);\r\n process.on('SIGHUP', removeDownloadedCliIfNeeded);\r\n process.on('SIGBREAK', removeDownloadedCliIfNeeded);\r\n // TODO: Check hash of download\r\n // eslint-disable-next-line @typescript-eslint/no-unsafe-call, @typescript-eslint/no-unsafe-member-access, security/detect-non-literal-fs-filename\r\n return [4 /*yield*/, pipeline(got_1.default.stream(url), fs_1.default.createWriteStream(outPath)).catch(function (e) {\r\n try {\r\n // eslint-disable-next-line security/detect-non-literal-fs-filename\r\n fs_1.default.unlinkSync(outPath);\r\n }\r\n catch (_a) { }\r\n throw e;\r\n })\r\n // eslint-disable-next-line security/detect-object-injection\r\n ];\r\n case 1:\r\n // TODO: Check hash of download\r\n // eslint-disable-next-line @typescript-eslint/no-unsafe-call, @typescript-eslint/no-unsafe-member-access, security/detect-non-literal-fs-filename\r\n _a.sent();\r\n // eslint-disable-next-line security/detect-object-injection\r\n downloads[url] = true;\r\n // eslint-disable-next-line security/detect-non-literal-fs-filename\r\n fs_1.default.chmodSync(outPath, 448);\r\n console.log('Download Complete');\r\n return [2 /*return*/];\r\n }\r\n });\r\n });\r\n}\r\nfunction downloadCli() {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var version, platform, extension, outPath;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n version = tauriCliManifest.package.version;\r\n platform = process.platform;\r\n if (platform === 'win32') {\r\n platform = 'windows';\r\n }\r\n else if (platform === 'linux') {\r\n platform = 'linux';\r\n }\r\n else if (platform === 'darwin') {\r\n platform = 'macos';\r\n }\r\n else {\r\n throw Error('Unsupported platform');\r\n }\r\n extension = platform === 'windows' ? '.exe' : '';\r\n outPath = path_1.default.join(__dirname, \"../../bin/tauri-cli\" + extension);\r\n console.log('Downloading Rust CLI...');\r\n return [4 /*yield*/, downloadBinaryRelease(\"tauri-cli-v\" + version, \"tauri-cli_\" + platform + extension, outPath)];\r\n case 1:\r\n _a.sent();\r\n return [2 /*return*/];\r\n }\r\n });\r\n });\r\n}\r\nexports.downloadCli = downloadCli;\r\nfunction downloadRustup() {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var assetName;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n assetName = process.platform === 'win32' ? 'rustup-init.exe' : 'rustup-init.sh';\r\n console.log('Downloading Rustup...');\r\n return [4 /*yield*/, downloadBinaryRelease('rustup', assetName, path_1.default.join(__dirname, \"../../bin/\" + assetName))];\r\n case 1: return [2 /*return*/, _a.sent()];\r\n }\r\n });\r\n });\r\n}\r\nexports.downloadRustup = downloadRustup;\r\n","\"use strict\";\r\n// Copyright 2019-2021 Tauri Programme within The Commons Conservancy\r\n// SPDX-License-Identifier: Apache-2.0\r\n// SPDX-License-Identifier: MIT\r\nvar __importDefault = (this && this.__importDefault) || function (mod) {\r\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar chalk_1 = __importDefault(require(\"chalk\"));\r\nvar ms_1 = __importDefault(require(\"ms\"));\r\nvar prevTime;\r\nexports.default = (function (banner, color) {\r\n if (color === void 0) { color = chalk_1.default.green; }\r\n return function (msg) {\r\n var curr = +new Date();\r\n var diff = curr - (prevTime || curr);\r\n prevTime = curr;\r\n if (msg) {\r\n console.log(\r\n // TODO: proper typings for color and banner\r\n // eslint-disable-next-line @typescript-eslint/restrict-template-expressions, @typescript-eslint/no-unsafe-call\r\n \" \" + color(String(banner)) + \" \" + msg + \" \" + chalk_1.default.green(\"+\" + ms_1.default(diff)));\r\n }\r\n else {\r\n console.log();\r\n }\r\n };\r\n});\r\n","\"use strict\";\r\n// Copyright 2019-2021 Tauri Programme within The Commons Conservancy\r\n// SPDX-License-Identifier: Apache-2.0\r\n// SPDX-License-Identifier: MIT\r\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n};\r\nvar __generator = (this && this.__generator) || function (thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n 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;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n};\r\nvar __spreadArray = (this && this.__spreadArray) || function (to, from) {\r\n for (var i = 0, il = from.length, j = to.length; i < il; i++, j++)\r\n to[j] = from[i];\r\n return to;\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.runOnRustCli = void 0;\r\nvar fs_1 = require(\"fs\");\r\nvar path_1 = require(\"path\");\r\nvar spawn_1 = require(\"./spawn\");\r\nvar download_binary_1 = require(\"./download-binary\");\r\nvar currentTauriCliVersion = function () {\r\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment, @typescript-eslint/no-unsafe-member-access\r\n var tauriCliManifest = \r\n // eslint-disable-next-line @typescript-eslint/no-var-requires\r\n require('../../../cli.rs/Cargo.toml');\r\n return tauriCliManifest.package.version;\r\n};\r\nfunction runOnRustCli(command, args) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var targetPath, targetCliPath, resolveCb, rejectCb, pid, promise, onClose, cliPath, localCliPath;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n targetPath = path_1.resolve(__dirname, '../..');\r\n targetCliPath = path_1.join(targetPath, 'bin/tauri-cli' + (process.platform === 'win32' ? '.exe' : ''));\r\n promise = new Promise(function (resolve, reject) {\r\n resolveCb = resolve;\r\n rejectCb = function () { return reject(new Error()); };\r\n });\r\n onClose = function (code, pid) {\r\n if (code === 0) {\r\n resolveCb();\r\n }\r\n else {\r\n rejectCb();\r\n }\r\n };\r\n if (!fs_1.existsSync(targetCliPath)) return [3 /*break*/, 1];\r\n pid = spawn_1.spawn(targetCliPath, __spreadArray(['tauri', command], args), process.cwd(), onClose);\r\n return [3 /*break*/, 4];\r\n case 1:\r\n if (!(process.env.NODE_ENV === 'production')) return [3 /*break*/, 3];\r\n return [4 /*yield*/, download_binary_1.downloadCli()];\r\n case 2:\r\n _a.sent();\r\n pid = spawn_1.spawn(targetCliPath, __spreadArray(['tauri', command], args), process.cwd(), onClose);\r\n return [3 /*break*/, 4];\r\n case 3:\r\n if (fs_1.existsSync(path_1.resolve(targetPath, '../bundler'))) {\r\n cliPath = path_1.resolve(targetPath, '../cli.rs');\r\n spawn_1.spawnSync('cargo', ['build', '--release'], cliPath);\r\n localCliPath = path_1.resolve(targetPath, '../cli.rs/target/release/cargo-tauri');\r\n pid = spawn_1.spawn(localCliPath, __spreadArray(['tauri', command], args), process.cwd(), onClose);\r\n }\r\n else {\r\n spawn_1.spawnSync('cargo', [\r\n 'install',\r\n '--root',\r\n targetPath,\r\n 'tauri-cli',\r\n '--version',\r\n currentTauriCliVersion()\r\n ], process.cwd());\r\n pid = spawn_1.spawn(targetCliPath, __spreadArray(['tauri', command], args), process.cwd(), onClose);\r\n }\r\n _a.label = 4;\r\n case 4: return [2 /*return*/, { pid: pid, promise: promise }];\r\n }\r\n });\r\n });\r\n}\r\nexports.runOnRustCli = runOnRustCli;\r\n","\"use strict\";\r\n// Copyright 2019-2021 Tauri Programme within The Commons Conservancy\r\n// SPDX-License-Identifier: Apache-2.0\r\n// SPDX-License-Identifier: MIT\r\nvar __importDefault = (this && this.__importDefault) || function (mod) {\r\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.spawnSync = exports.spawn = void 0;\r\nvar cross_spawn_1 = __importDefault(require(\"cross-spawn\"));\r\nvar logger_1 = __importDefault(require(\"./logger\"));\r\nvar chalk_1 = __importDefault(require(\"chalk\"));\r\nvar log = logger_1.default('app:spawn');\r\nvar warn = logger_1.default('app:spawn', chalk_1.default.red);\r\n/*\r\n Returns pid, takes onClose\r\n */\r\nvar spawn = function (cmd, params, cwd, onClose) {\r\n var _a;\r\n log(\"Running \\\"\" + cmd + \" \" + params.join(' ') + \"\\\"\");\r\n log();\r\n // TODO: move to execa?\r\n var runner = cross_spawn_1.default(cmd, params, {\r\n stdio: 'inherit',\r\n cwd: cwd,\r\n env: process.env\r\n });\r\n runner.on('close', function (code) {\r\n var _a;\r\n log();\r\n if (code) {\r\n // eslint-disable-next-line @typescript-eslint/restrict-template-expressions\r\n log(\"Command \\\"\" + cmd + \"\\\" failed with exit code: \" + code);\r\n }\r\n // eslint-disable-next-line @typescript-eslint/prefer-optional-chain\r\n onClose && onClose(code !== null && code !== void 0 ? code : 0, (_a = runner.pid) !== null && _a !== void 0 ? _a : 0);\r\n });\r\n return (_a = runner.pid) !== null && _a !== void 0 ? _a : 0;\r\n};\r\nexports.spawn = spawn;\r\n/*\r\n Returns nothing, takes onFail\r\n */\r\nvar spawnSync = function (cmd, params, cwd, onFail) {\r\n log(\"[sync] Running \\\"\" + cmd + \" \" + params.join(' ') + \"\\\"\");\r\n log();\r\n var runner = cross_spawn_1.default.sync(cmd, params, {\r\n stdio: 'inherit',\r\n cwd: cwd\r\n });\r\n // eslint-disable-next-line @typescript-eslint/prefer-nullish-coalescing\r\n if (runner.status || runner.error) {\r\n warn();\r\n // eslint-disable-next-line @typescript-eslint/restrict-template-expressions\r\n warn(\"\\u26A0\\uFE0F Command \\\"\" + cmd + \"\\\" failed with exit code: \" + runner.status);\r\n if (runner.status === null) {\r\n warn(\"\\u26A0\\uFE0F Please globally install \\\"\" + cmd + \"\\\"\");\r\n }\r\n // eslint-disable-next-line @typescript-eslint/prefer-optional-chain\r\n onFail && onFail();\r\n process.exit(1);\r\n }\r\n};\r\nexports.spawnSync = spawnSync;\r\n","module.exports = require(\"chalk\");;","module.exports = require(\"cross-spawn\");;","module.exports = require(\"fs\");;","module.exports = require(\"got\");;","module.exports = require(\"ms\");;","module.exports = require(\"path\");;","module.exports = require(\"stream\");;","module.exports = require(\"util\");;","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// startup\n// Load entry module and return exports\n// This entry module is referenced by other modules so it can't be inlined\nvar __webpack_exports__ = __webpack_require__(\"./src/api/cli.ts\");\n"],"sourceRoot":""} \ No newline at end of file diff --git a/tooling/cli.js/dist/api/dependency-manager.js b/tooling/cli.js/dist/api/dependency-manager.js deleted file mode 100644 index 39a044295..000000000 --- a/tooling/cli.js/dist/api/dependency-manager.js +++ /dev/null @@ -1,1655 +0,0 @@ -(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 \ No newline at end of file diff --git a/tooling/cli.js/dist/api/dependency-manager.js.map b/tooling/cli.js/dist/api/dependency-manager.js.map deleted file mode 100644 index 649270d6d..000000000 --- a/tooling/cli.js/dist/api/dependency-manager.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["webpack://tauri/webpack/universalModuleDefinition","webpack://tauri/../cli.rs/Cargo.toml","webpack://tauri/./src/api/dependency-manager/cargo-crates.ts","webpack://tauri/./src/api/dependency-manager/index.ts","webpack://tauri/./src/api/dependency-manager/managers/index.ts","webpack://tauri/./src/api/dependency-manager/managers/npm-manager.ts","webpack://tauri/./src/api/dependency-manager/managers/pnpm-manager.ts","webpack://tauri/./src/api/dependency-manager/managers/types.ts","webpack://tauri/./src/api/dependency-manager/managers/yarn-manager.ts","webpack://tauri/./src/api/dependency-manager/npm-packages.ts","webpack://tauri/./src/api/dependency-manager/rust.ts","webpack://tauri/./src/api/dependency-manager/types.ts","webpack://tauri/./src/api/dependency-manager/util.ts","webpack://tauri/./src/helpers/app-paths.ts","webpack://tauri/./src/helpers/download-binary.ts","webpack://tauri/./src/helpers/get-script-version.ts","webpack://tauri/./src/helpers/logger.ts","webpack://tauri/./src/helpers/spawn.ts","webpack://tauri/external \"@tauri-apps/toml\"","webpack://tauri/external \"chalk\"","webpack://tauri/external \"cross-spawn\"","webpack://tauri/external \"fs\"","webpack://tauri/external \"got\"","webpack://tauri/external \"https\"","webpack://tauri/external \"inquirer\"","webpack://tauri/external \"ms\"","webpack://tauri/external \"os\"","webpack://tauri/external \"path\"","webpack://tauri/external \"stream\"","webpack://tauri/external \"util\"","webpack://tauri/webpack/bootstrap","webpack://tauri/webpack/startup"],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,O;;;;;;;;;ACVA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,C;;;;;;;;;;;AC5Ga;AACb;AACA;AACA;AACA;AACA,2BAA2B,+DAA+D,gBAAgB,EAAE,EAAE;AAC9G;AACA,mCAAmC,MAAM,6BAA6B,EAAE,YAAY,WAAW,EAAE;AACjG,kCAAkC,MAAM,iCAAiC,EAAE,YAAY,WAAW,EAAE;AACpG,+BAA+B,qFAAqF;AACpH;AACA,KAAK;AACL;AACA;AACA,aAAa,6BAA6B,0BAA0B,aAAa,EAAE,qBAAqB;AACxG,gBAAgB,qDAAqD,oEAAoE,aAAa,EAAE;AACxJ,sBAAsB,sBAAsB,qBAAqB,GAAG;AACpE;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC;AACvC,kCAAkC,SAAS;AAC3C,kCAAkC,WAAW,UAAU;AACvD,yCAAyC,cAAc;AACvD;AACA,6GAA6G,OAAO,UAAU;AAC9H,gFAAgF,iBAAiB,OAAO;AACxG,wDAAwD,gBAAgB,QAAQ,OAAO;AACvF,8CAA8C,gBAAgB,gBAAgB,OAAO;AACrF;AACA,iCAAiC;AACjC;AACA;AACA,SAAS,YAAY,aAAa,OAAO,EAAE,UAAU,WAAW;AAChE,mCAAmC,SAAS;AAC5C;AACA;AACA;AACA,oDAAoD,QAAQ;AAC5D;AACA;AACA;AACA;AACA,4CAA4C;AAC5C;AACA,8CAA6C,CAAC,cAAc,EAAC;AAC7D,cAAc,GAAG,eAAe;AAChC,cAAc,mBAAO,CAAC,qDAAuB;AAC7C,cAAc,mBAAO,CAAC,sDAAS;AAC/B,aAAa,mBAAO,CAAC,oDAAQ;AAC7B,+BAA+B,mBAAO,CAAC,qDAAsB;AAC7D,kBAAkB,mBAAO,CAAC,2DAAyB;AACnD,WAAW,mBAAO,CAAC,cAAI;AACvB,6BAA6B,mBAAO,CAAC,0CAAkB;AACvD,iCAAiC,mBAAO,CAAC,0BAAU;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8EAA8E,gCAAgC,EAAE;AAChH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4EAA4E,oEAAoE,EAAE;AAClJ;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;AACL;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;AACL;AACA,cAAc;;;;;;;;;;;;ACtMD;AACb;AACA;AACA;AACA;AACA;AACA,kCAAkC,oCAAoC,aAAa,EAAE,EAAE;AACvF,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA,yCAAyC,6BAA6B;AACtE,CAAC;AACD;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,+DAA+D,gBAAgB,EAAE,EAAE;AAC9G;AACA,mCAAmC,MAAM,6BAA6B,EAAE,YAAY,WAAW,EAAE;AACjG,kCAAkC,MAAM,iCAAiC,EAAE,YAAY,WAAW,EAAE;AACpG,+BAA+B,qFAAqF;AACpH;AACA,KAAK;AACL;AACA;AACA,aAAa,6BAA6B,0BAA0B,aAAa,EAAE,qBAAqB;AACxG,gBAAgB,qDAAqD,oEAAoE,aAAa,EAAE;AACxJ,sBAAsB,sBAAsB,qBAAqB,GAAG;AACpE;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC;AACvC,kCAAkC,SAAS;AAC3C,kCAAkC,WAAW,UAAU;AACvD,yCAAyC,cAAc;AACvD;AACA,6GAA6G,OAAO,UAAU;AAC9H,gFAAgF,iBAAiB,OAAO;AACxG,wDAAwD,gBAAgB,QAAQ,OAAO;AACvF,8CAA8C,gBAAgB,gBAAgB,OAAO;AACrF;AACA,iCAAiC;AACjC;AACA;AACA,SAAS,YAAY,aAAa,OAAO,EAAE,UAAU,WAAW;AAChE,mCAAmC,SAAS;AAC5C;AACA;AACA;AACA,4CAA4C;AAC5C;AACA,8CAA6C,CAAC,cAAc,EAAC;AAC7D,+BAA+B,mBAAO,CAAC,qDAAsB;AAC7D,wBAAwB,mBAAO,CAAC,oDAAQ;AACxC,+BAA+B,mBAAO,CAAC,oEAAgB;AACvD,+BAA+B,mBAAO,CAAC,oEAAgB;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;;;;;;;;;;;;AC7Ga;AACb;AACA;AACA,kCAAkC,oCAAoC,aAAa,EAAE,EAAE;AACvF,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,8CAA6C,CAAC,cAAc,EAAC;AAC7D,aAAa,mBAAO,CAAC,6EAAgB;AACrC,aAAa,mBAAO,CAAC,2EAAe;AACpC,aAAa,mBAAO,CAAC,6EAAgB;AACrC,aAAa,mBAAO,CAAC,+DAAS;;;;;;;;;;;;ACfjB;AACb,8CAA6C,CAAC,cAAc,EAAC;AAC7D,kBAAkB;AAClB,oBAAoB,mBAAO,CAAC,gCAAa;AACzC,cAAc,mBAAO,CAAC,sDAAwB;AAC9C,kBAAkB,mBAAO,CAAC,8DAA4B;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,CAAC;AACD,kBAAkB;;;;;;;;;;;;ACzCL;AACb,8CAA6C,CAAC,cAAc,EAAC;AAC7D,mBAAmB;AACnB,oBAAoB,mBAAO,CAAC,gCAAa;AACzC,cAAc,mBAAO,CAAC,sDAAwB;AAC9C,kBAAkB,mBAAO,CAAC,8DAA4B;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,CAAC;AACD,mBAAmB;;;;;;;;;;;;ACzCN;AACb,8CAA6C,CAAC,cAAc,EAAC;;;;;;;;;;;;ACDhD;AACb,8CAA6C,CAAC,cAAc,EAAC;AAC7D,mBAAmB;AACnB,oBAAoB,mBAAO,CAAC,gCAAa;AACzC,cAAc,mBAAO,CAAC,sDAAwB;AAC9C,kBAAkB,mBAAO,CAAC,8DAA4B;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oGAAoG,0BAA0B;AAC9H;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4FAA4F,0BAA0B;AACtH;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,mBAAmB;;;;;;;;;;;;ACvCN;AACb;AACA;AACA;AACA;AACA,2BAA2B,+DAA+D,gBAAgB,EAAE,EAAE;AAC9G;AACA,mCAAmC,MAAM,6BAA6B,EAAE,YAAY,WAAW,EAAE;AACjG,kCAAkC,MAAM,iCAAiC,EAAE,YAAY,WAAW,EAAE;AACpG,+BAA+B,qFAAqF;AACpH;AACA,KAAK;AACL;AACA;AACA,aAAa,6BAA6B,0BAA0B,aAAa,EAAE,qBAAqB;AACxG,gBAAgB,qDAAqD,oEAAoE,aAAa,EAAE;AACxJ,sBAAsB,sBAAsB,qBAAqB,GAAG;AACpE;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC;AACvC,kCAAkC,SAAS;AAC3C,kCAAkC,WAAW,UAAU;AACvD,yCAAyC,cAAc;AACvD;AACA,6GAA6G,OAAO,UAAU;AAC9H,gFAAgF,iBAAiB,OAAO;AACxG,wDAAwD,gBAAgB,QAAQ,OAAO;AACvF,8CAA8C,gBAAgB,gBAAgB,OAAO;AACrF;AACA,iCAAiC;AACjC;AACA;AACA,SAAS,YAAY,aAAa,OAAO,EAAE,UAAU,WAAW;AAChE,mCAAmC,SAAS;AAC5C;AACA;AACA;AACA,4CAA4C;AAC5C;AACA,8CAA6C,CAAC,cAAc,EAAC;AAC7D,cAAc,GAAG,uBAAuB,GAAG,oBAAoB,GAAG,eAAe;AACjF,cAAc,mBAAO,CAAC,sDAAS;AAC/B,aAAa,mBAAO,CAAC,oDAAQ;AAC7B,+BAA+B,mBAAO,CAAC,qDAAsB;AAC7D,kBAAkB,mBAAO,CAAC,2DAAyB;AACnD,iCAAiC,mBAAO,CAAC,0BAAU;AACnD,WAAW,mBAAO,CAAC,cAAI;AACvB,oBAAoB,mBAAO,CAAC,gCAAa;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;AACL;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;AACL;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;AACL;AACA,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;AACL;AACA,cAAc;;;;;;;;;;;;AC7LD;AACb;AACA;AACA;AACA;AACA,2BAA2B,+DAA+D,gBAAgB,EAAE,EAAE;AAC9G;AACA,mCAAmC,MAAM,6BAA6B,EAAE,YAAY,WAAW,EAAE;AACjG,kCAAkC,MAAM,iCAAiC,EAAE,YAAY,WAAW,EAAE;AACpG,+BAA+B,qFAAqF;AACpH;AACA,KAAK;AACL;AACA;AACA,aAAa,6BAA6B,0BAA0B,aAAa,EAAE,qBAAqB;AACxG,gBAAgB,qDAAqD,oEAAoE,aAAa,EAAE;AACxJ,sBAAsB,sBAAsB,qBAAqB,GAAG;AACpE;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC;AACvC,kCAAkC,SAAS;AAC3C,kCAAkC,WAAW,UAAU;AACvD,yCAAyC,cAAc;AACvD;AACA,6GAA6G,OAAO,UAAU;AAC9H,gFAAgF,iBAAiB,OAAO;AACxG,wDAAwD,gBAAgB,QAAQ,OAAO;AACvF,8CAA8C,gBAAgB,gBAAgB,OAAO;AACrF;AACA,iCAAiC;AACjC;AACA;AACA,SAAS,YAAY,aAAa,OAAO,EAAE,UAAU,WAAW;AAChE,mCAAmC,SAAS;AAC5C;AACA;AACA;AACA,4CAA4C;AAC5C;AACA,8CAA6C,CAAC,cAAc,EAAC;AAC7D,cAAc,GAAG,eAAe;AAChC,cAAc,mBAAO,CAAC,sDAAS;AAC/B,cAAc,mBAAO,CAAC,mDAAqB;AAC3C,2CAA2C,mBAAO,CAAC,6EAAkC;AACrF,wBAAwB,mBAAO,CAAC,uEAA+B;AAC/D,+BAA+B,mBAAO,CAAC,qDAAsB;AAC7D,WAAW,mBAAO,CAAC,cAAI;AACvB,aAAa,mBAAO,CAAC,kBAAM;AAC3B,WAAW,mBAAO,CAAC,cAAI;AACvB,8BAA8B,mBAAO,CAAC,oBAAO;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC;AACjC,6BAA6B;AAC7B;AACA;AACA;AACA,6BAA6B;AAC7B,yBAAyB;AACzB;AACA;AACA,SAAS;AACT,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;AACL;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;AACL;AACA,cAAc;;;;;;;;;;;;ACjJD;AACb;AACA;AACA;AACA,8CAA6C,CAAC,cAAc,EAAC;AAC7D,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA,CAAC,8CAA8C,sBAAsB,KAAK;;;;;;;;;;;;ACX7D;AACb;AACA;AACA;AACA,8CAA6C,CAAC,cAAc,EAAC;AAC7D,gBAAgB,GAAG,kBAAkB,GAAG,wBAAwB,GAAG,4BAA4B,GAAG,yBAAyB,GAAG,4BAA4B,GAAG,2BAA2B,GAAG,6BAA6B,GAAG,kBAAkB;AAC7O,oBAAoB,mBAAO,CAAC,gCAAa;AACzC,kBAAkB,mBAAO,CAAC,2DAAyB;AACnD,WAAW,mBAAO,CAAC,cAAI;AACvB;AACA,iBAAiB,mBAAO,CAAC,kEAAY;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA,2BAA2B;AAC3B;AACA;AACA;AACA,4BAA4B;AAC5B;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA,4BAA4B;AAC5B;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA,gBAAgB;;;;;;;;;;;;ACvEH;AACb;AACA;AACA;AACA;AACA,4CAA4C;AAC5C;AACA,8CAA6C,CAAC,cAAc,EAAC;AAC7D,eAAe,GAAG,gBAAgB,GAAG,cAAc;AACnD,WAAW,mBAAO,CAAC,cAAI;AACvB,aAAa,mBAAO,CAAC,kBAAM;AAC3B,+BAA+B,mBAAO,CAAC,yCAAU;AACjD,8BAA8B,mBAAO,CAAC,oBAAO;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA,gBAAgB;AAChB;AACA,yBAAyB,iCAAiC,EAAE;AAC5D,2BAA2B,mCAAmC;AAC9D;AACA,eAAe;;;;;;;;;;;;ACvCF;AACb;AACA,2BAA2B,+DAA+D,gBAAgB,EAAE,EAAE;AAC9G;AACA,mCAAmC,MAAM,6BAA6B,EAAE,YAAY,WAAW,EAAE;AACjG,kCAAkC,MAAM,iCAAiC,EAAE,YAAY,WAAW,EAAE;AACpG,+BAA+B,qFAAqF;AACpH;AACA,KAAK;AACL;AACA;AACA,aAAa,6BAA6B,0BAA0B,aAAa,EAAE,qBAAqB;AACxG,gBAAgB,qDAAqD,oEAAoE,aAAa,EAAE;AACxJ,sBAAsB,sBAAsB,qBAAqB,GAAG;AACpE;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC;AACvC,kCAAkC,SAAS;AAC3C,kCAAkC,WAAW,UAAU;AACvD,yCAAyC,cAAc;AACvD;AACA,6GAA6G,OAAO,UAAU;AAC9H,gFAAgF,iBAAiB,OAAO;AACxG,wDAAwD,gBAAgB,QAAQ,OAAO;AACvF,8CAA8C,gBAAgB,gBAAgB,OAAO;AACrF;AACA,iCAAiC;AACjC;AACA;AACA,SAAS,YAAY,aAAa,OAAO,EAAE,UAAU,WAAW;AAChE,mCAAmC,SAAS;AAC5C;AACA;AACA;AACA,4CAA4C;AAC5C;AACA,8CAA6C,CAAC,cAAc,EAAC;AAC7D,sBAAsB,GAAG,mBAAmB;AAC5C,+BAA+B,mBAAO,CAAC,sBAAQ;AAC/C,aAAa,mBAAO,CAAC,kBAAM;AAC3B,2BAA2B,mBAAO,CAAC,cAAI;AACvC,4BAA4B,mBAAO,CAAC,gBAAK;AACzC,6BAA6B,mBAAO,CAAC,kBAAM;AAC3C;AACA;AACA;AACA,uBAAuB,mBAAO,CAAC,wDAA4B;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC;AACxC;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;AACL;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;AACL;AACA,sBAAsB;;;;;;;;;;;;ACpJT;AACb;AACA;AACA;AACA;AACA,oDAAoD,QAAQ;AAC5D;AACA;AACA;AACA,8CAA6C,CAAC,cAAc,EAAC;AAC7D,oBAAoB,mBAAO,CAAC,gCAAa;AACzC;AACA,0BAA0B,WAAW;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;;;;;;;;;;;;ACzBF;AACb;AACA;AACA;AACA;AACA,4CAA4C;AAC5C;AACA,8CAA6C,CAAC,cAAc,EAAC;AAC7D,8BAA8B,mBAAO,CAAC,oBAAO;AAC7C,2BAA2B,mBAAO,CAAC,cAAI;AACvC;AACA,eAAe;AACf,2BAA2B,+BAA+B;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;;;;;;;;;;;AC3BY;AACb;AACA;AACA;AACA;AACA,4CAA4C;AAC5C;AACA,8CAA6C,CAAC,cAAc,EAAC;AAC7D,iBAAiB,GAAG,aAAa;AACjC,oCAAoC,mBAAO,CAAC,gCAAa;AACzD,+BAA+B,mBAAO,CAAC,yCAAU;AACjD,8BAA8B,mBAAO,CAAC,oBAAO;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;;;;;;;;;;;;AC/DjB,8C;;;;;;;;;;;ACAA,mC;;;;;;;;;;;ACAA,yC;;;;;;;;;;;ACAA,gC;;;;;;;;;;;ACAA,iC;;;;;;;;;;;ACAA,mC;;;;;;;;;;;ACAA,sC;;;;;;;;;;;ACAA,gC;;;;;;;;;;;ACAA,gC;;;;;;;;;;;ACAA,kC;;;;;;;;;;;ACAA,oC;;;;;;;;;;;ACAA,kC;;;;;;UCAA;UACA;;UAEA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;;UAEA;UACA;;UAEA;UACA;UACA;;;;UCtBA;UACA;UACA;UACA","file":"api/dependency-manager.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"tauri\"] = factory();\n\telse\n\t\troot[\"tauri\"] = factory();\n})(this, function() {\nreturn ","module.exports = {\n\t\"workspace\": {},\n\t\"package\": {\n\t\t\"name\": \"tauri-cli\",\n\t\t\"version\": \"1.0.0-beta.5\",\n\t\t\"authors\": [\n\t\t\t\"Tauri Programme within The Commons Conservancy\"\n\t\t],\n\t\t\"edition\": \"2018\",\n\t\t\"categories\": [\n\t\t\t\"gui\",\n\t\t\t\"web-programming\"\n\t\t],\n\t\t\"license\": \"Apache-2.0 OR MIT\",\n\t\t\"homepage\": \"https://tauri.studio\",\n\t\t\"repository\": \"https://github.com/tauri-apps/tauri\",\n\t\t\"description\": \"Command line interface for building Tauri apps\",\n\t\t\"include\": [\n\t\t\t\"src/\",\n\t\t\t\"/templates\",\n\t\t\t\"MergeModules/\",\n\t\t\t\"*.json\",\n\t\t\t\"*.rs\"\n\t\t]\n\t},\n\t\"bin\": [\n\t\t{\n\t\t\t\"name\": \"cargo-tauri\",\n\t\t\t\"path\": \"src/main.rs\"\n\t\t}\n\t],\n\t\"dependencies\": {\n\t\t\"clap\": {\n\t\t\t\"version\": \"3.0.0-beta.2\",\n\t\t\t\"features\": [\n\t\t\t\t\"yaml\"\n\t\t\t]\n\t\t},\n\t\t\"anyhow\": \"1.0\",\n\t\t\"tauri-bundler\": {\n\t\t\t\"version\": \"1.0.0-beta.3\",\n\t\t\t\"path\": \"../bundler\"\n\t\t},\n\t\t\"colored\": \"2.0\",\n\t\t\"once_cell\": \"1.8\",\n\t\t\"serde\": {\n\t\t\t\"version\": \"1.0\",\n\t\t\t\"features\": [\n\t\t\t\t\"derive\"\n\t\t\t]\n\t\t},\n\t\t\"serde_json\": \"1.0\",\n\t\t\"serde_with\": \"1.9\",\n\t\t\"notify\": \"4.0\",\n\t\t\"shared_child\": \"0.3\",\n\t\t\"toml_edit\": \"0.2\",\n\t\t\"json-patch\": \"0.2\",\n\t\t\"schemars\": \"0.8\",\n\t\t\"toml\": \"0.5\",\n\t\t\"valico\": \"3.6\",\n\t\t\"handlebars\": \"4.1\",\n\t\t\"include_dir\": \"0.6\",\n\t\t\"minisign\": \"0.6\",\n\t\t\"base64\": \"0.13.0\",\n\t\t\"ureq\": \"2.1\",\n\t\t\"os_info\": \"3.0\",\n\t\t\"semver\": \"1.0\",\n\t\t\"regex\": \"1.5\",\n\t\t\"lazy_static\": \"1\",\n\t\t\"libc\": \"0.2\",\n\t\t\"terminal_size\": \"0.1\",\n\t\t\"unicode-width\": \"0.1\",\n\t\t\"tempfile\": \"3\",\n\t\t\"zeroize\": \"1.3\"\n\t},\n\t\"target\": {\n\t\t\"cfg(windows)\": {\n\t\t\t\"dependencies\": {\n\t\t\t\t\"winapi\": {\n\t\t\t\t\t\"version\": \"0.3\",\n\t\t\t\t\t\"features\": [\n\t\t\t\t\t\t\"winbase\",\n\t\t\t\t\t\t\"winuser\",\n\t\t\t\t\t\t\"consoleapi\",\n\t\t\t\t\t\t\"processenv\",\n\t\t\t\t\t\t\"wincon\"\n\t\t\t\t\t]\n\t\t\t\t},\n\t\t\t\t\"encode_unicode\": \"0.3\"\n\t\t\t}\n\t\t},\n\t\t\"cfg(target_os = \\\"linux\\\")\": {\n\t\t\t\"dependencies\": {\n\t\t\t\t\"heck\": \"0.3\"\n\t\t\t}\n\t\t}\n\t},\n\t\"build-dependencies\": {\n\t\t\"schemars\": \"0.8\",\n\t\t\"serde\": {\n\t\t\t\"version\": \"1.0\",\n\t\t\t\"features\": [\n\t\t\t\t\"derive\"\n\t\t\t]\n\t\t},\n\t\t\"serde_json\": \"1.0\",\n\t\t\"serde_with\": \"1.9\"\n\t}\n}","\"use strict\";\r\n// Copyright 2019-2021 Tauri Programme within The Commons Conservancy\r\n// SPDX-License-Identifier: Apache-2.0\r\n// SPDX-License-Identifier: MIT\r\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n};\r\nvar __generator = (this && this.__generator) || function (thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n 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;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n};\r\nvar __spreadArray = (this && this.__spreadArray) || function (to, from) {\r\n for (var i = 0, il = from.length, j = to.length; i < il; i++, j++)\r\n to[j] = from[i];\r\n return to;\r\n};\r\nvar __importDefault = (this && this.__importDefault) || function (mod) {\r\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.update = exports.install = void 0;\r\nvar spawn_1 = require(\"./../../helpers/spawn\");\r\nvar types_1 = require(\"./types\");\r\nvar util_1 = require(\"./util\");\r\nvar logger_1 = __importDefault(require(\"../../helpers/logger\"));\r\nvar app_paths_1 = require(\"../../helpers/app-paths\");\r\nvar fs_1 = require(\"fs\");\r\nvar toml_1 = __importDefault(require(\"@tauri-apps/toml\"));\r\nvar inquirer_1 = __importDefault(require(\"inquirer\"));\r\nvar log = logger_1.default('dependency:crates');\r\nvar dependencies = ['tauri'];\r\nfunction readToml(tomlPath) {\r\n if (fs_1.existsSync(tomlPath)) {\r\n var manifest = fs_1.readFileSync(tomlPath).toString();\r\n return toml_1.default.parse(manifest);\r\n }\r\n return null;\r\n}\r\nfunction dependencyDefinition(version) {\r\n return { version: version.substring(0, version.lastIndexOf('.')) };\r\n}\r\nfunction manageDependencies(managementType) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var installedDeps, updatedDeps, result, manifest, lockPath, lock, _loop_1, _i, dependencies_1, dependency;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n installedDeps = [];\r\n updatedDeps = [];\r\n result = new Map();\r\n manifest = readToml(app_paths_1.resolve.tauri('Cargo.toml'));\r\n if (manifest === null) {\r\n log('Cargo.toml not found. Skipping crates check...');\r\n return [2 /*return*/, result];\r\n }\r\n lockPath = app_paths_1.resolve.tauri('Cargo.lock');\r\n if (!fs_1.existsSync(lockPath)) {\r\n spawn_1.spawnSync('cargo', ['generate-lockfile'], app_paths_1.tauriDir);\r\n }\r\n lock = readToml(lockPath);\r\n _loop_1 = function (dependency) {\r\n var lockPackages, manifestDep, currentVersion, latestVersion, latestVersion, inquired;\r\n return __generator(this, function (_b) {\r\n switch (_b.label) {\r\n case 0:\r\n lockPackages = lock\r\n ? lock.package.filter(function (pkg) { return pkg.name === dependency; })\r\n : [];\r\n manifestDep = manifest.dependencies[dependency];\r\n currentVersion = lockPackages.length === 1\r\n ? lockPackages[0].version\r\n : typeof manifestDep === 'string'\r\n ? manifestDep\r\n : manifestDep === null || manifestDep === void 0 ? void 0 : manifestDep.version;\r\n if (!(currentVersion === undefined)) return [3 /*break*/, 1];\r\n log(\"Installing \" + dependency + \"...\");\r\n latestVersion = util_1.getCrateLatestVersion(dependency);\r\n if (latestVersion !== null) {\r\n // eslint-disable-next-line security/detect-object-injection\r\n manifest.dependencies[dependency] = dependencyDefinition(latestVersion);\r\n }\r\n installedDeps.push(dependency);\r\n return [3 /*break*/, 6];\r\n case 1:\r\n if (!(managementType === types_1.ManagementType.Update)) return [3 /*break*/, 5];\r\n latestVersion = util_1.getCrateLatestVersion(dependency);\r\n if (!(latestVersion !== null && util_1.semverLt(currentVersion, latestVersion))) return [3 /*break*/, 3];\r\n return [4 /*yield*/, inquirer_1.default.prompt([\r\n {\r\n type: 'confirm',\r\n name: 'answer',\r\n message: \"[CRATES] \\\"\" + dependency + \"\\\" latest version is \" + latestVersion + \". Do you want to update?\",\r\n default: false\r\n }\r\n ])];\r\n case 2:\r\n inquired = (_b.sent());\r\n if (inquired.answer) {\r\n log(\"Updating \" + dependency + \"...\");\r\n // eslint-disable-next-line security/detect-object-injection\r\n manifest.dependencies[dependency] =\r\n dependencyDefinition(latestVersion);\r\n updatedDeps.push(dependency);\r\n }\r\n return [3 /*break*/, 4];\r\n case 3:\r\n log(\"\\\"\" + dependency + \"\\\" is up to date\");\r\n _b.label = 4;\r\n case 4: return [3 /*break*/, 6];\r\n case 5:\r\n log(\"\\\"\" + dependency + \"\\\" is already installed\");\r\n _b.label = 6;\r\n case 6: return [2 /*return*/];\r\n }\r\n });\r\n };\r\n _i = 0, dependencies_1 = dependencies;\r\n _a.label = 1;\r\n case 1:\r\n if (!(_i < dependencies_1.length)) return [3 /*break*/, 4];\r\n dependency = dependencies_1[_i];\r\n return [5 /*yield**/, _loop_1(dependency)];\r\n case 2:\r\n _a.sent();\r\n _a.label = 3;\r\n case 3:\r\n _i++;\r\n return [3 /*break*/, 1];\r\n case 4:\r\n if (installedDeps.length || updatedDeps.length) {\r\n fs_1.writeFileSync(app_paths_1.resolve.tauri('Cargo.toml'), toml_1.default.stringify(manifest));\r\n }\r\n if (updatedDeps.length) {\r\n if (!fs_1.existsSync(app_paths_1.resolve.tauri('Cargo.lock'))) {\r\n spawn_1.spawnSync('cargo', ['generate-lockfile'], app_paths_1.tauriDir);\r\n }\r\n spawn_1.spawnSync('cargo', __spreadArray([\r\n 'update',\r\n '--aggressive'\r\n ], updatedDeps.reduce(function (initialValue, dep) { return __spreadArray(__spreadArray([], initialValue), ['-p', dep]); }, [])), app_paths_1.tauriDir);\r\n }\r\n result.set(types_1.ManagementType.Install, installedDeps);\r\n result.set(types_1.ManagementType.Update, updatedDeps);\r\n return [2 /*return*/, result];\r\n }\r\n });\r\n });\r\n}\r\nfunction install() {\r\n return __awaiter(this, void 0, void 0, function () {\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0: return [4 /*yield*/, manageDependencies(types_1.ManagementType.Install)];\r\n case 1: return [2 /*return*/, _a.sent()];\r\n }\r\n });\r\n });\r\n}\r\nexports.install = install;\r\nfunction update() {\r\n return __awaiter(this, void 0, void 0, function () {\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0: return [4 /*yield*/, manageDependencies(types_1.ManagementType.Update)];\r\n case 1: return [2 /*return*/, _a.sent()];\r\n }\r\n });\r\n });\r\n}\r\nexports.update = update;\r\n","\"use strict\";\r\n// Copyright 2019-2021 Tauri Programme within The Commons Conservancy\r\n// SPDX-License-Identifier: Apache-2.0\r\n// SPDX-License-Identifier: MIT\r\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}));\r\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n});\r\nvar __importStar = (this && this.__importStar) || function (mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n};\r\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n};\r\nvar __generator = (this && this.__generator) || function (thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n 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;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n};\r\nvar __importDefault = (this && this.__importDefault) || function (mod) {\r\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar logger_1 = __importDefault(require(\"../../helpers/logger\"));\r\nvar rust = __importStar(require(\"./rust\"));\r\nvar cargoCrates = __importStar(require(\"./cargo-crates\"));\r\nvar npmPackages = __importStar(require(\"./npm-packages\"));\r\nvar log = logger_1.default('dependency:manager');\r\nmodule.exports = {\r\n installDependencies: function () {\r\n return __awaiter(this, void 0, void 0, function () {\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n log('Installing missing dependencies...');\r\n return [4 /*yield*/, rust.install()];\r\n case 1:\r\n _a.sent();\r\n return [4 /*yield*/, cargoCrates.install()];\r\n case 2:\r\n _a.sent();\r\n return [4 /*yield*/, npmPackages.install()];\r\n case 3:\r\n _a.sent();\r\n return [2 /*return*/];\r\n }\r\n });\r\n });\r\n },\r\n updateDependencies: function () {\r\n return __awaiter(this, void 0, void 0, function () {\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n log('Updating dependencies...');\r\n return [4 /*yield*/, rust.update()];\r\n case 1:\r\n _a.sent();\r\n return [4 /*yield*/, cargoCrates.update()];\r\n case 2:\r\n _a.sent();\r\n return [4 /*yield*/, npmPackages.update()];\r\n case 3:\r\n _a.sent();\r\n return [2 /*return*/];\r\n }\r\n });\r\n });\r\n }\r\n};\r\n","\"use strict\";\r\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}));\r\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\n__exportStar(require(\"./yarn-manager\"), exports);\r\n__exportStar(require(\"./npm-manager\"), exports);\r\n__exportStar(require(\"./pnpm-manager\"), exports);\r\n__exportStar(require(\"./types\"), exports);\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.NpmManager = void 0;\r\nvar cross_spawn_1 = require(\"cross-spawn\");\r\nvar spawn_1 = require(\"../../../helpers/spawn\");\r\nvar app_paths_1 = require(\"../../../helpers/app-paths\");\r\nvar NpmManager = /** @class */ (function () {\r\n function NpmManager() {\r\n this.type = 'npm';\r\n }\r\n NpmManager.prototype.installPackage = function (packageName) {\r\n spawn_1.spawnSync('npm', ['install', packageName], app_paths_1.appDir);\r\n };\r\n NpmManager.prototype.installDevPackage = function (packageName) {\r\n spawn_1.spawnSync('npm', ['install', packageName, '--save-dev'], app_paths_1.appDir);\r\n };\r\n NpmManager.prototype.updatePackage = function (packageName) {\r\n spawn_1.spawnSync('npm', ['install', packageName + \"@latest\"], app_paths_1.appDir);\r\n };\r\n NpmManager.prototype.getPackageVersion = function (packageName) {\r\n var child = cross_spawn_1.sync('npm', ['list', packageName, 'version', '--depth', '0'], {\r\n cwd: app_paths_1.appDir\r\n });\r\n var output = String(child.output[1]);\r\n // eslint-disable-next-line security/detect-non-literal-regexp\r\n var matches = new RegExp(packageName + '@(\\\\S+)', 'g').exec(output);\r\n if (matches === null || matches === void 0 ? void 0 : matches[1]) {\r\n return matches[1];\r\n }\r\n else {\r\n return null;\r\n }\r\n };\r\n NpmManager.prototype.getLatestVersion = function (packageName) {\r\n var child = cross_spawn_1.sync('npm', ['show', packageName, 'version'], {\r\n cwd: app_paths_1.appDir\r\n });\r\n return String(child.output[1]).replace('\\n', '');\r\n };\r\n return NpmManager;\r\n}());\r\nexports.NpmManager = NpmManager;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.PnpmManager = void 0;\r\nvar cross_spawn_1 = require(\"cross-spawn\");\r\nvar spawn_1 = require(\"../../../helpers/spawn\");\r\nvar app_paths_1 = require(\"../../../helpers/app-paths\");\r\nvar PnpmManager = /** @class */ (function () {\r\n function PnpmManager() {\r\n this.type = 'pnpm';\r\n }\r\n PnpmManager.prototype.installPackage = function (packageName) {\r\n spawn_1.spawnSync('pnpm', ['add', packageName], app_paths_1.appDir);\r\n };\r\n PnpmManager.prototype.installDevPackage = function (packageName) {\r\n spawn_1.spawnSync('pnpm', ['add', packageName, '--save-dev'], app_paths_1.appDir);\r\n };\r\n PnpmManager.prototype.updatePackage = function (packageName) {\r\n spawn_1.spawnSync('pnpm', ['add', packageName + \"@latest\"], app_paths_1.appDir);\r\n };\r\n PnpmManager.prototype.getPackageVersion = function (packageName) {\r\n var child = cross_spawn_1.sync('pnpm', ['list', packageName, 'version', '--depth', '0'], {\r\n cwd: app_paths_1.appDir\r\n });\r\n var output = String(child.output[1]);\r\n // eslint-disable-next-line security/detect-non-literal-regexp\r\n var matches = new RegExp(packageName + ' (\\\\S+)', 'g').exec(output);\r\n if (matches === null || matches === void 0 ? void 0 : matches[1]) {\r\n return matches[1];\r\n }\r\n else {\r\n return null;\r\n }\r\n };\r\n PnpmManager.prototype.getLatestVersion = function (packageName) {\r\n var child = cross_spawn_1.sync('pnpm', ['info', packageName, 'version'], {\r\n cwd: app_paths_1.appDir\r\n });\r\n return String(child.output[1]).replace('\\n', '');\r\n };\r\n return PnpmManager;\r\n}());\r\nexports.PnpmManager = PnpmManager;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.YarnManager = void 0;\r\nvar cross_spawn_1 = require(\"cross-spawn\");\r\nvar spawn_1 = require(\"../../../helpers/spawn\");\r\nvar app_paths_1 = require(\"../../../helpers/app-paths\");\r\nvar YarnManager = /** @class */ (function () {\r\n function YarnManager() {\r\n this.type = 'yarn';\r\n }\r\n YarnManager.prototype.installPackage = function (packageName) {\r\n spawn_1.spawnSync('yarn', ['add', packageName], app_paths_1.appDir);\r\n };\r\n YarnManager.prototype.installDevPackage = function (packageName) {\r\n spawn_1.spawnSync('yarn', ['add', packageName, '--dev'], app_paths_1.appDir);\r\n };\r\n YarnManager.prototype.updatePackage = function (packageName) {\r\n spawn_1.spawnSync('yarn', ['upgrade', packageName, '--latest'], app_paths_1.appDir);\r\n };\r\n YarnManager.prototype.getPackageVersion = function (packageName) {\r\n var child = cross_spawn_1.sync('yarn', ['list', '--pattern', packageName, '--depth', '0'], { cwd: app_paths_1.appDir });\r\n var output = String(child.output[1]);\r\n // eslint-disable-next-line security/detect-non-literal-regexp\r\n var matches = new RegExp(packageName + '@(\\\\S+)', 'g').exec(output);\r\n if (matches === null || matches === void 0 ? void 0 : matches[1]) {\r\n return matches[1];\r\n }\r\n else {\r\n return null;\r\n }\r\n };\r\n YarnManager.prototype.getLatestVersion = function (packageName) {\r\n var child = cross_spawn_1.sync('yarn', ['info', packageName, 'version', '--json'], { cwd: app_paths_1.appDir });\r\n var output = String(child.output[1]);\r\n var packageJson = JSON.parse(output);\r\n return packageJson.data;\r\n };\r\n return YarnManager;\r\n}());\r\nexports.YarnManager = YarnManager;\r\n","\"use strict\";\r\n// Copyright 2019-2021 Tauri Programme within The Commons Conservancy\r\n// SPDX-License-Identifier: Apache-2.0\r\n// SPDX-License-Identifier: MIT\r\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n};\r\nvar __generator = (this && this.__generator) || function (thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n 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;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n};\r\nvar __importDefault = (this && this.__importDefault) || function (mod) {\r\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.update = exports.installTheseDev = exports.installThese = exports.install = void 0;\r\nvar types_1 = require(\"./types\");\r\nvar util_1 = require(\"./util\");\r\nvar logger_1 = __importDefault(require(\"../../helpers/logger\"));\r\nvar app_paths_1 = require(\"../../helpers/app-paths\");\r\nvar inquirer_1 = __importDefault(require(\"inquirer\"));\r\nvar fs_1 = require(\"fs\");\r\nvar cross_spawn_1 = require(\"cross-spawn\");\r\nvar log = logger_1.default('dependency:npm-packages');\r\nfunction manageDependencies(managementType, dependencies) {\r\n var _a, _b, _c;\r\n return __awaiter(this, void 0, void 0, function () {\r\n var installedDeps, updatedDeps, npmChild, yarnChild, pnpmChild, _i, dependencies_1, dependency, currentVersion, packageManager, prefix, inquired, latestVersion, inquired, result;\r\n return __generator(this, function (_d) {\r\n switch (_d.label) {\r\n case 0:\r\n installedDeps = [];\r\n updatedDeps = [];\r\n npmChild = cross_spawn_1.sync('npm', ['--version']);\r\n yarnChild = cross_spawn_1.sync('yarn', ['--version']);\r\n pnpmChild = cross_spawn_1.sync('pnpm', ['--version']);\r\n if (((_a = npmChild.status) !== null && _a !== void 0 ? _a : npmChild.error) &&\r\n ((_b = yarnChild.status) !== null && _b !== void 0 ? _b : yarnChild.error) &&\r\n ((_c = pnpmChild.status) !== null && _c !== void 0 ? _c : pnpmChild.error)) {\r\n throw new Error('must have installed one of the following package managers `npm`, `yarn`, `pnpm` to manage dependenices');\r\n }\r\n if (!fs_1.existsSync(app_paths_1.resolve.app('package.json'))) return [3 /*break*/, 10];\r\n _i = 0, dependencies_1 = dependencies;\r\n _d.label = 1;\r\n case 1:\r\n if (!(_i < dependencies_1.length)) return [3 /*break*/, 10];\r\n dependency = dependencies_1[_i];\r\n currentVersion = util_1.getNpmPackageVersion(dependency);\r\n packageManager = util_1.getManager().type.toUpperCase();\r\n if (!(currentVersion === null)) return [3 /*break*/, 4];\r\n log(\"Installing \" + dependency + \"...\");\r\n if (!(managementType === types_1.ManagementType.Install ||\r\n managementType === types_1.ManagementType.InstallDev)) return [3 /*break*/, 3];\r\n prefix = managementType === types_1.ManagementType.InstallDev\r\n ? ' as dev-dependency'\r\n : '';\r\n return [4 /*yield*/, inquirer_1.default.prompt([\r\n {\r\n type: 'confirm',\r\n name: 'answer',\r\n message: \"[\" + packageManager + \"]: \\\"Do you want to install \" + dependency + prefix + \"?\\\"\",\r\n default: false\r\n }\r\n ])];\r\n case 2:\r\n inquired = _d.sent();\r\n if (inquired.answer) {\r\n if (managementType === types_1.ManagementType.Install) {\r\n util_1.installNpmPackage(dependency);\r\n }\r\n else if (managementType === types_1.ManagementType.InstallDev) {\r\n util_1.installNpmDevPackage(dependency);\r\n }\r\n installedDeps.push(dependency);\r\n }\r\n _d.label = 3;\r\n case 3: return [3 /*break*/, 9];\r\n case 4:\r\n if (!(managementType === types_1.ManagementType.Update)) return [3 /*break*/, 8];\r\n latestVersion = util_1.getNpmLatestVersion(dependency);\r\n if (!util_1.semverLt(currentVersion, latestVersion)) return [3 /*break*/, 6];\r\n return [4 /*yield*/, inquirer_1.default.prompt([\r\n {\r\n type: 'confirm',\r\n name: 'answer',\r\n message: \"[\" + packageManager + \"]: \\\"\" + dependency + \"\\\" latest version is \" + latestVersion + \". Do you want to update?\",\r\n default: false\r\n }\r\n ])];\r\n case 5:\r\n inquired = _d.sent();\r\n if (inquired.answer) {\r\n log(\"Updating \" + dependency + \"...\");\r\n util_1.updateNpmPackage(dependency);\r\n updatedDeps.push(dependency);\r\n }\r\n return [3 /*break*/, 7];\r\n case 6:\r\n log(\"\\\"\" + dependency + \"\\\" is up to date\");\r\n _d.label = 7;\r\n case 7: return [3 /*break*/, 9];\r\n case 8:\r\n log(\"\\\"\" + dependency + \"\\\" is already installed\");\r\n _d.label = 9;\r\n case 9:\r\n _i++;\r\n return [3 /*break*/, 1];\r\n case 10:\r\n result = new Map();\r\n result.set(types_1.ManagementType.Install, installedDeps);\r\n result.set(types_1.ManagementType.Update, updatedDeps);\r\n return [2 /*return*/, result];\r\n }\r\n });\r\n });\r\n}\r\nvar dependencies = ['@tauri-apps/api', '@tauri-apps/cli'];\r\nfunction install() {\r\n return __awaiter(this, void 0, void 0, function () {\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0: return [4 /*yield*/, manageDependencies(types_1.ManagementType.Install, dependencies)];\r\n case 1: return [2 /*return*/, _a.sent()];\r\n }\r\n });\r\n });\r\n}\r\nexports.install = install;\r\nfunction installThese(dependencies) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0: return [4 /*yield*/, manageDependencies(types_1.ManagementType.Install, dependencies)];\r\n case 1: return [2 /*return*/, _a.sent()];\r\n }\r\n });\r\n });\r\n}\r\nexports.installThese = installThese;\r\nfunction installTheseDev(dependencies) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0: return [4 /*yield*/, manageDependencies(types_1.ManagementType.InstallDev, dependencies)];\r\n case 1: return [2 /*return*/, _a.sent()];\r\n }\r\n });\r\n });\r\n}\r\nexports.installTheseDev = installTheseDev;\r\nfunction update() {\r\n return __awaiter(this, void 0, void 0, function () {\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0: return [4 /*yield*/, manageDependencies(types_1.ManagementType.Update, dependencies)];\r\n case 1: return [2 /*return*/, _a.sent()];\r\n }\r\n });\r\n });\r\n}\r\nexports.update = update;\r\n","\"use strict\";\r\n// Copyright 2019-2021 Tauri Programme within The Commons Conservancy\r\n// SPDX-License-Identifier: Apache-2.0\r\n// SPDX-License-Identifier: MIT\r\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n};\r\nvar __generator = (this && this.__generator) || function (thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n 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;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n};\r\nvar __importDefault = (this && this.__importDefault) || function (mod) {\r\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.update = exports.install = void 0;\r\nvar types_1 = require(\"./types\");\r\nvar spawn_1 = require(\"../../helpers/spawn\");\r\nvar get_script_version_1 = __importDefault(require(\"../../helpers/get-script-version\"));\r\nvar download_binary_1 = require(\"../../helpers/download-binary\");\r\nvar logger_1 = __importDefault(require(\"../../helpers/logger\"));\r\nvar fs_1 = require(\"fs\");\r\nvar path_1 = require(\"path\");\r\nvar os_1 = require(\"os\");\r\nvar https_1 = __importDefault(require(\"https\"));\r\nvar log = logger_1.default('dependency:rust');\r\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\r\nfunction download(url, dest) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var file;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n file = fs_1.createWriteStream(dest);\r\n return [4 /*yield*/, new Promise(function (resolve, reject) {\r\n https_1.default\r\n .get(url, function (response) {\r\n response.pipe(file);\r\n file.on('finish', function () {\r\n file.close();\r\n resolve();\r\n });\r\n })\r\n .on('error', function (err) {\r\n fs_1.unlinkSync(dest);\r\n reject(err.message);\r\n });\r\n })];\r\n case 1: return [2 /*return*/, _a.sent()];\r\n }\r\n });\r\n });\r\n}\r\nfunction installRustup() {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var assetName, rustupPath;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n assetName = os_1.platform() === 'win32' ? 'rustup-init.exe' : 'rustup-init.sh';\r\n rustupPath = path_1.resolve(__dirname, \"../../bin/\" + assetName);\r\n if (!!fs_1.existsSync(rustupPath)) return [3 /*break*/, 2];\r\n return [4 /*yield*/, download_binary_1.downloadRustup()];\r\n case 1:\r\n _a.sent();\r\n _a.label = 2;\r\n case 2:\r\n if (os_1.platform() === 'win32') {\r\n return [2 /*return*/, spawn_1.spawnSync('powershell', ['-NoProfile', rustupPath], process.cwd())];\r\n }\r\n return [2 /*return*/, spawn_1.spawnSync('/bin/sh', [rustupPath], process.cwd())];\r\n }\r\n });\r\n });\r\n}\r\nfunction manageDependencies(managementType) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n if (!(get_script_version_1.default('rustup') === null)) return [3 /*break*/, 2];\r\n log('Installing rustup...');\r\n return [4 /*yield*/, installRustup()];\r\n case 1:\r\n _a.sent();\r\n _a.label = 2;\r\n case 2:\r\n if (managementType === types_1.ManagementType.Update) {\r\n spawn_1.spawnSync('rustup', ['update'], process.cwd());\r\n }\r\n return [2 /*return*/];\r\n }\r\n });\r\n });\r\n}\r\nfunction install() {\r\n return __awaiter(this, void 0, void 0, function () {\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0: return [4 /*yield*/, manageDependencies(types_1.ManagementType.Install)];\r\n case 1: return [2 /*return*/, _a.sent()];\r\n }\r\n });\r\n });\r\n}\r\nexports.install = install;\r\nfunction update() {\r\n return __awaiter(this, void 0, void 0, function () {\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0: return [4 /*yield*/, manageDependencies(types_1.ManagementType.Update)];\r\n case 1: return [2 /*return*/, _a.sent()];\r\n }\r\n });\r\n });\r\n}\r\nexports.update = update;\r\n","\"use strict\";\r\n// Copyright 2019-2021 Tauri Programme within The Commons Conservancy\r\n// SPDX-License-Identifier: Apache-2.0\r\n// SPDX-License-Identifier: MIT\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.ManagementType = void 0;\r\nvar ManagementType;\r\n(function (ManagementType) {\r\n ManagementType[ManagementType[\"Install\"] = 0] = \"Install\";\r\n ManagementType[ManagementType[\"InstallDev\"] = 1] = \"InstallDev\";\r\n ManagementType[ManagementType[\"Update\"] = 2] = \"Update\";\r\n})(ManagementType = exports.ManagementType || (exports.ManagementType = {}));\r\n","\"use strict\";\r\n// Copyright 2019-2021 Tauri Programme within The Commons Conservancy\r\n// SPDX-License-Identifier: Apache-2.0\r\n// SPDX-License-Identifier: MIT\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.semverLt = exports.padVersion = exports.updateNpmPackage = exports.installNpmDevPackage = exports.installNpmPackage = exports.getNpmPackageVersion = exports.getNpmLatestVersion = exports.getCrateLatestVersion = exports.getManager = void 0;\r\nvar cross_spawn_1 = require(\"cross-spawn\");\r\nvar app_paths_1 = require(\"../../helpers/app-paths\");\r\nvar fs_1 = require(\"fs\");\r\n// import semver from 'semver'\r\nvar managers_1 = require(\"./managers\");\r\nvar getManager = function () {\r\n if (fs_1.existsSync(app_paths_1.resolve.app('yarn.lock'))) {\r\n return new managers_1.YarnManager();\r\n }\r\n else if (fs_1.existsSync(app_paths_1.resolve.app('pnpm-lock.yaml'))) {\r\n return new managers_1.PnpmManager();\r\n }\r\n else {\r\n return new managers_1.NpmManager();\r\n }\r\n};\r\nexports.getManager = getManager;\r\nfunction getCrateLatestVersion(crateName) {\r\n var child = cross_spawn_1.sync('cargo', ['search', crateName, '--limit', '1']);\r\n var output = String(child.output[1]);\r\n // eslint-disable-next-line security/detect-non-literal-regexp\r\n var matches = new RegExp(crateName + ' = \"(\\\\S+)\"', 'g').exec(output);\r\n if (matches === null || matches === void 0 ? void 0 : matches[1]) {\r\n return matches[1];\r\n }\r\n else {\r\n return null;\r\n }\r\n}\r\nexports.getCrateLatestVersion = getCrateLatestVersion;\r\nfunction getNpmLatestVersion(packageName) {\r\n return getManager().getLatestVersion(packageName);\r\n}\r\nexports.getNpmLatestVersion = getNpmLatestVersion;\r\nfunction getNpmPackageVersion(packageName) {\r\n return getManager().getPackageVersion(packageName);\r\n}\r\nexports.getNpmPackageVersion = getNpmPackageVersion;\r\nfunction installNpmPackage(packageName) {\r\n return getManager().installPackage(packageName);\r\n}\r\nexports.installNpmPackage = installNpmPackage;\r\nfunction installNpmDevPackage(packageName) {\r\n return getManager().installDevPackage(packageName);\r\n}\r\nexports.installNpmDevPackage = installNpmDevPackage;\r\nfunction updateNpmPackage(packageName) {\r\n return getManager().updatePackage(packageName);\r\n}\r\nexports.updateNpmPackage = updateNpmPackage;\r\nfunction padVersion(version) {\r\n var _a;\r\n var count = ((_a = version.match(/\\./g)) !== null && _a !== void 0 ? _a : []).length;\r\n while (count < 2) {\r\n count++;\r\n version += '.0';\r\n }\r\n return version;\r\n}\r\nexports.padVersion = padVersion;\r\nfunction semverLt(first, second) {\r\n return first !== second;\r\n // TODO: When version 1.0.0 is released this code should work again\r\n // return semver.lt(padVersion(first), padVersion(second))\r\n}\r\nexports.semverLt = semverLt;\r\n","\"use strict\";\r\n// Copyright 2019-2021 Tauri Programme within The Commons Conservancy\r\n// SPDX-License-Identifier: Apache-2.0\r\n// SPDX-License-Identifier: MIT\r\nvar __importDefault = (this && this.__importDefault) || function (mod) {\r\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.resolve = exports.tauriDir = exports.appDir = void 0;\r\nvar fs_1 = require(\"fs\");\r\nvar path_1 = require(\"path\");\r\nvar logger_1 = __importDefault(require(\"./logger\"));\r\nvar chalk_1 = __importDefault(require(\"chalk\"));\r\nvar warn = logger_1.default('tauri', chalk_1.default.red);\r\nfunction resolvePath(basePath, dir) {\r\n return dir && path_1.isAbsolute(dir) ? dir : path_1.resolve(basePath, dir);\r\n}\r\nvar getAppDir = function () {\r\n var dir = process.cwd();\r\n var count = 0;\r\n // only go up three folders max\r\n while (dir.length > 0 && !dir.endsWith(path_1.sep) && count <= 2) {\r\n if (fs_1.existsSync(path_1.join(dir, 'src-tauri', 'tauri.conf.json'))) {\r\n return dir;\r\n }\r\n count++;\r\n dir = path_1.normalize(path_1.join(dir, '..'));\r\n }\r\n warn(\"Couldn't find recognize the current folder as a part of a Tauri project\");\r\n process.exit(1);\r\n};\r\nvar appDir = getAppDir();\r\nexports.appDir = appDir;\r\nvar tauriDir = path_1.resolve(appDir, 'src-tauri');\r\nexports.tauriDir = tauriDir;\r\nvar resolveDir = {\r\n app: function (dir) { return resolvePath(appDir, dir); },\r\n tauri: function (dir) { return resolvePath(tauriDir, dir); }\r\n};\r\nexports.resolve = resolveDir;\r\n","\"use strict\";\r\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n};\r\nvar __generator = (this && this.__generator) || function (thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n 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;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n};\r\nvar __importDefault = (this && this.__importDefault) || function (mod) {\r\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.downloadRustup = exports.downloadCli = void 0;\r\nvar stream_1 = __importDefault(require(\"stream\"));\r\nvar util_1 = require(\"util\");\r\nvar fs_1 = __importDefault(require(\"fs\"));\r\nvar got_1 = __importDefault(require(\"got\"));\r\nvar path_1 = __importDefault(require(\"path\"));\r\nvar pipeline = util_1.promisify(stream_1.default.pipeline);\r\n// Webpack reads the file at build-time, so this becomes a static var\r\n// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment, @typescript-eslint/no-var-requires, @typescript-eslint/no-unsafe-member-access\r\nvar tauriCliManifest = require('../../../cli.rs/Cargo.toml');\r\nvar downloads = {};\r\nfunction downloadBinaryRelease(tag, asset, outPath) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var url, removeDownloadedCliIfNeeded;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n url = \"https://github.com/tauri-apps/binary-releases/releases/download/\" + tag + \"/\" + asset;\r\n removeDownloadedCliIfNeeded = function () {\r\n try {\r\n if (!(url in downloads)) {\r\n // eslint-disable-next-line security/detect-non-literal-fs-filename\r\n fs_1.default.unlinkSync(outPath);\r\n }\r\n }\r\n finally {\r\n process.exit();\r\n }\r\n };\r\n // on exit, we remove the `tauri-cli` file if the download didn't complete\r\n process.on('exit', removeDownloadedCliIfNeeded);\r\n process.on('SIGINT', removeDownloadedCliIfNeeded);\r\n process.on('SIGTERM', removeDownloadedCliIfNeeded);\r\n process.on('SIGHUP', removeDownloadedCliIfNeeded);\r\n process.on('SIGBREAK', removeDownloadedCliIfNeeded);\r\n // TODO: Check hash of download\r\n // eslint-disable-next-line @typescript-eslint/no-unsafe-call, @typescript-eslint/no-unsafe-member-access, security/detect-non-literal-fs-filename\r\n return [4 /*yield*/, pipeline(got_1.default.stream(url), fs_1.default.createWriteStream(outPath)).catch(function (e) {\r\n try {\r\n // eslint-disable-next-line security/detect-non-literal-fs-filename\r\n fs_1.default.unlinkSync(outPath);\r\n }\r\n catch (_a) { }\r\n throw e;\r\n })\r\n // eslint-disable-next-line security/detect-object-injection\r\n ];\r\n case 1:\r\n // TODO: Check hash of download\r\n // eslint-disable-next-line @typescript-eslint/no-unsafe-call, @typescript-eslint/no-unsafe-member-access, security/detect-non-literal-fs-filename\r\n _a.sent();\r\n // eslint-disable-next-line security/detect-object-injection\r\n downloads[url] = true;\r\n // eslint-disable-next-line security/detect-non-literal-fs-filename\r\n fs_1.default.chmodSync(outPath, 448);\r\n console.log('Download Complete');\r\n return [2 /*return*/];\r\n }\r\n });\r\n });\r\n}\r\nfunction downloadCli() {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var version, platform, extension, outPath;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n version = tauriCliManifest.package.version;\r\n platform = process.platform;\r\n if (platform === 'win32') {\r\n platform = 'windows';\r\n }\r\n else if (platform === 'linux') {\r\n platform = 'linux';\r\n }\r\n else if (platform === 'darwin') {\r\n platform = 'macos';\r\n }\r\n else {\r\n throw Error('Unsupported platform');\r\n }\r\n extension = platform === 'windows' ? '.exe' : '';\r\n outPath = path_1.default.join(__dirname, \"../../bin/tauri-cli\" + extension);\r\n console.log('Downloading Rust CLI...');\r\n return [4 /*yield*/, downloadBinaryRelease(\"tauri-cli-v\" + version, \"tauri-cli_\" + platform + extension, outPath)];\r\n case 1:\r\n _a.sent();\r\n return [2 /*return*/];\r\n }\r\n });\r\n });\r\n}\r\nexports.downloadCli = downloadCli;\r\nfunction downloadRustup() {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var assetName;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n assetName = process.platform === 'win32' ? 'rustup-init.exe' : 'rustup-init.sh';\r\n console.log('Downloading Rustup...');\r\n return [4 /*yield*/, downloadBinaryRelease('rustup', assetName, path_1.default.join(__dirname, \"../../bin/\" + assetName))];\r\n case 1: return [2 /*return*/, _a.sent()];\r\n }\r\n });\r\n });\r\n}\r\nexports.downloadRustup = downloadRustup;\r\n","\"use strict\";\r\n// Copyright 2019-2021 Tauri Programme within The Commons Conservancy\r\n// SPDX-License-Identifier: Apache-2.0\r\n// SPDX-License-Identifier: MIT\r\nvar __spreadArray = (this && this.__spreadArray) || function (to, from) {\r\n for (var i = 0, il = from.length, j = to.length; i < il; i++, j++)\r\n to[j] = from[i];\r\n return to;\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar cross_spawn_1 = require(\"cross-spawn\");\r\nfunction getVersion(command, args) {\r\n if (args === void 0) { args = []; }\r\n try {\r\n var child = cross_spawn_1.sync(command, __spreadArray(__spreadArray([], args), ['--version']));\r\n if (child.status === 0) {\r\n var output = String(child.output[1]);\r\n return output.replace(/\\n/g, '');\r\n }\r\n return null;\r\n }\r\n catch (err) {\r\n return null;\r\n }\r\n}\r\nexports.default = getVersion;\r\n","\"use strict\";\r\n// Copyright 2019-2021 Tauri Programme within The Commons Conservancy\r\n// SPDX-License-Identifier: Apache-2.0\r\n// SPDX-License-Identifier: MIT\r\nvar __importDefault = (this && this.__importDefault) || function (mod) {\r\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar chalk_1 = __importDefault(require(\"chalk\"));\r\nvar ms_1 = __importDefault(require(\"ms\"));\r\nvar prevTime;\r\nexports.default = (function (banner, color) {\r\n if (color === void 0) { color = chalk_1.default.green; }\r\n return function (msg) {\r\n var curr = +new Date();\r\n var diff = curr - (prevTime || curr);\r\n prevTime = curr;\r\n if (msg) {\r\n console.log(\r\n // TODO: proper typings for color and banner\r\n // eslint-disable-next-line @typescript-eslint/restrict-template-expressions, @typescript-eslint/no-unsafe-call\r\n \" \" + color(String(banner)) + \" \" + msg + \" \" + chalk_1.default.green(\"+\" + ms_1.default(diff)));\r\n }\r\n else {\r\n console.log();\r\n }\r\n };\r\n});\r\n","\"use strict\";\r\n// Copyright 2019-2021 Tauri Programme within The Commons Conservancy\r\n// SPDX-License-Identifier: Apache-2.0\r\n// SPDX-License-Identifier: MIT\r\nvar __importDefault = (this && this.__importDefault) || function (mod) {\r\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.spawnSync = exports.spawn = void 0;\r\nvar cross_spawn_1 = __importDefault(require(\"cross-spawn\"));\r\nvar logger_1 = __importDefault(require(\"./logger\"));\r\nvar chalk_1 = __importDefault(require(\"chalk\"));\r\nvar log = logger_1.default('app:spawn');\r\nvar warn = logger_1.default('app:spawn', chalk_1.default.red);\r\n/*\r\n Returns pid, takes onClose\r\n */\r\nvar spawn = function (cmd, params, cwd, onClose) {\r\n var _a;\r\n log(\"Running \\\"\" + cmd + \" \" + params.join(' ') + \"\\\"\");\r\n log();\r\n // TODO: move to execa?\r\n var runner = cross_spawn_1.default(cmd, params, {\r\n stdio: 'inherit',\r\n cwd: cwd,\r\n env: process.env\r\n });\r\n runner.on('close', function (code) {\r\n var _a;\r\n log();\r\n if (code) {\r\n // eslint-disable-next-line @typescript-eslint/restrict-template-expressions\r\n log(\"Command \\\"\" + cmd + \"\\\" failed with exit code: \" + code);\r\n }\r\n // eslint-disable-next-line @typescript-eslint/prefer-optional-chain\r\n onClose && onClose(code !== null && code !== void 0 ? code : 0, (_a = runner.pid) !== null && _a !== void 0 ? _a : 0);\r\n });\r\n return (_a = runner.pid) !== null && _a !== void 0 ? _a : 0;\r\n};\r\nexports.spawn = spawn;\r\n/*\r\n Returns nothing, takes onFail\r\n */\r\nvar spawnSync = function (cmd, params, cwd, onFail) {\r\n log(\"[sync] Running \\\"\" + cmd + \" \" + params.join(' ') + \"\\\"\");\r\n log();\r\n var runner = cross_spawn_1.default.sync(cmd, params, {\r\n stdio: 'inherit',\r\n cwd: cwd\r\n });\r\n // eslint-disable-next-line @typescript-eslint/prefer-nullish-coalescing\r\n if (runner.status || runner.error) {\r\n warn();\r\n // eslint-disable-next-line @typescript-eslint/restrict-template-expressions\r\n warn(\"\\u26A0\\uFE0F Command \\\"\" + cmd + \"\\\" failed with exit code: \" + runner.status);\r\n if (runner.status === null) {\r\n warn(\"\\u26A0\\uFE0F Please globally install \\\"\" + cmd + \"\\\"\");\r\n }\r\n // eslint-disable-next-line @typescript-eslint/prefer-optional-chain\r\n onFail && onFail();\r\n process.exit(1);\r\n }\r\n};\r\nexports.spawnSync = spawnSync;\r\n","module.exports = require(\"@tauri-apps/toml\");;","module.exports = require(\"chalk\");;","module.exports = require(\"cross-spawn\");;","module.exports = require(\"fs\");;","module.exports = require(\"got\");;","module.exports = require(\"https\");;","module.exports = require(\"inquirer\");;","module.exports = require(\"ms\");;","module.exports = require(\"os\");;","module.exports = require(\"path\");;","module.exports = require(\"stream\");;","module.exports = require(\"util\");;","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// startup\n// Load entry module and return exports\n// This entry module is referenced by other modules so it can't be inlined\nvar __webpack_exports__ = __webpack_require__(\"./src/api/dependency-manager/index.ts\");\n"],"sourceRoot":""} \ No newline at end of file diff --git a/tooling/cli.js/dist/api/tauricon.js b/tooling/cli.js/dist/api/tauricon.js deleted file mode 100644 index 4470071e4..000000000 --- a/tooling/cli.js/dist/api/tauricon.js +++ /dev/null @@ -1,3106 +0,0 @@ -(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 -/******/ "use strict"; -/******/ var __webpack_modules__ = ({ - -/***/ "./node_modules/imagemin/index.js": -/*!****************************************!*\ - !*** ./node_modules/imagemin/index.js ***! - \****************************************/ -/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (/* binding */ imagemin) -/* harmony export */ }); -/* harmony import */ var util__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! util */ "util"); -/* harmony import */ var path__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! path */ "path"); -/* harmony import */ var graceful_fs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! graceful-fs */ "graceful-fs"); -/* harmony import */ var fs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! fs */ "fs"); -/* harmony import */ var file_type__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! file-type */ "./node_modules/imagemin/node_modules/file-type/index.js"); -/* harmony import */ var globby__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! globby */ "globby"); -/* harmony import */ var p_pipe__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! p-pipe */ "./node_modules/p-pipe/index.js"); -/* harmony import */ var replace_ext__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! replace-ext */ "replace-ext"); -/* harmony import */ var junk__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! junk */ "junk"); - - - - - - - - - - -const readFile = (0,util__WEBPACK_IMPORTED_MODULE_0__.promisify)(graceful_fs__WEBPACK_IMPORTED_MODULE_2__.readFile); -const writeFile = (0,util__WEBPACK_IMPORTED_MODULE_0__.promisify)(graceful_fs__WEBPACK_IMPORTED_MODULE_2__.writeFile); - -const handleFile = async (sourcePath, {destination, plugins = []}) => { - if (plugins && !Array.isArray(plugins)) { - throw new TypeError('The `plugins` option should be an `Array`'); - } - - let data = await readFile(sourcePath); - data = await (plugins.length > 0 ? (0,p_pipe__WEBPACK_IMPORTED_MODULE_6__.default)(...plugins)(data) : data); - - const {ext} = await file_type__WEBPACK_IMPORTED_MODULE_4__.fromBuffer(data); - let destinationPath = destination ? path__WEBPACK_IMPORTED_MODULE_1__.join(destination, path__WEBPACK_IMPORTED_MODULE_1__.basename(sourcePath)) : undefined; - destinationPath = ext === 'webp' ? replace_ext__WEBPACK_IMPORTED_MODULE_7__(destinationPath, '.webp') : destinationPath; - - const returnValue = { - data, - sourcePath, - destinationPath - }; - - if (!destinationPath) { - return returnValue; - } - - await fs__WEBPACK_IMPORTED_MODULE_3__.promises.mkdir(path__WEBPACK_IMPORTED_MODULE_1__.dirname(returnValue.destinationPath), {recursive: true}); - await writeFile(returnValue.destinationPath, returnValue.data); - - return returnValue; -}; - -async function imagemin(input, {glob = true, ...options} = {}) { - if (!Array.isArray(input)) { - throw new TypeError(`Expected an \`Array\`, got \`${typeof input}\``); - } - - const filePaths = glob ? await globby__WEBPACK_IMPORTED_MODULE_5__(input, {onlyFiles: true}) : input; - - return Promise.all( - filePaths - .filter(filePath => junk__WEBPACK_IMPORTED_MODULE_8__.not(path__WEBPACK_IMPORTED_MODULE_1__.basename(filePath))) - .map(async filePath => { - try { - return await handleFile(filePath, options); - } catch (error) { - error.message = `Error occurred when handling file: ${input}\n\n${error.stack}`; - throw error; - } - }) - ); -} - -imagemin.buffer = async (input, {plugins = []} = {}) => { - if (!Buffer.isBuffer(input)) { - throw new TypeError(`Expected a \`Buffer\`, got \`${typeof input}\``); - } - - if (plugins.length === 0) { - return input; - } - - return (0,p_pipe__WEBPACK_IMPORTED_MODULE_6__.default)(...plugins)(input); -}; - - -/***/ }), - -/***/ "./node_modules/imagemin/node_modules/file-type/core.js": -/*!**************************************************************!*\ - !*** ./node_modules/imagemin/node_modules/file-type/core.js ***! - \**************************************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { - - -const Token = __webpack_require__(/*! token-types */ "token-types"); -const strtok3 = __webpack_require__(/*! strtok3/lib/core */ "strtok3/lib/core"); -const { - stringToBytes, - tarHeaderChecksumMatches, - uint32SyncSafeToken -} = __webpack_require__(/*! ./util */ "./node_modules/imagemin/node_modules/file-type/util.js"); -const supported = __webpack_require__(/*! ./supported */ "./node_modules/imagemin/node_modules/file-type/supported.js"); - -const minimumBytes = 4100; // A fair amount of file-types are detectable within this range - -async function fromStream(stream) { - const tokenizer = await strtok3.fromStream(stream); - try { - return await fromTokenizer(tokenizer); - } finally { - await tokenizer.close(); - } -} - -async function fromBuffer(input) { - if (!(input instanceof Uint8Array || input instanceof ArrayBuffer || Buffer.isBuffer(input))) { - throw new TypeError(`Expected the \`input\` argument to be of type \`Uint8Array\` or \`Buffer\` or \`ArrayBuffer\`, got \`${typeof input}\``); - } - - const buffer = input instanceof Buffer ? input : Buffer.from(input); - - if (!(buffer && buffer.length > 1)) { - return; - } - - const tokenizer = strtok3.fromBuffer(buffer); - return fromTokenizer(tokenizer); -} - -function _check(buffer, headers, options) { - options = { - offset: 0, - ...options - }; - - for (const [index, header] of headers.entries()) { - // If a bitmask is set - if (options.mask) { - // If header doesn't equal `buf` with bits masked off - if (header !== (options.mask[index] & buffer[index + options.offset])) { - return false; - } - } else if (header !== buffer[index + options.offset]) { - return false; - } - } - - return true; -} - -async function _checkSequence(sequence, tokenizer, ignoreBytes) { - const buffer = Buffer.alloc(minimumBytes); - await tokenizer.ignore(ignoreBytes); - - await tokenizer.peekBuffer(buffer, {mayBeLess: true}); - - return buffer.includes(Buffer.from(sequence)); -} - -async function fromTokenizer(tokenizer) { - try { - return _fromTokenizer(tokenizer); - } catch (error) { - if (!(error instanceof strtok3.EndOfStreamError)) { - throw error; - } - } -} - -async function _fromTokenizer(tokenizer) { - let buffer = Buffer.alloc(minimumBytes); - const bytesRead = 12; - const check = (header, options) => _check(buffer, header, options); - const checkString = (header, options) => check(stringToBytes(header), options); - const checkSequence = (sequence, ignoreBytes) => _checkSequence(sequence, tokenizer, ignoreBytes); - - // Keep reading until EOF if the file size is unknown. - if (!tokenizer.fileInfo.size) { - tokenizer.fileInfo.size = Number.MAX_SAFE_INTEGER; - } - - await tokenizer.peekBuffer(buffer, {length: bytesRead, mayBeLess: true}); - - // -- 2-byte signatures -- - - if (check([0x42, 0x4D])) { - return { - ext: 'bmp', - mime: 'image/bmp' - }; - } - - if (check([0x0B, 0x77])) { - return { - ext: 'ac3', - mime: 'audio/vnd.dolby.dd-raw' - }; - } - - if (check([0x78, 0x01])) { - return { - ext: 'dmg', - mime: 'application/x-apple-diskimage' - }; - } - - if (check([0x4D, 0x5A])) { - return { - ext: 'exe', - mime: 'application/x-msdownload' - }; - } - - if (check([0x25, 0x21])) { - await tokenizer.peekBuffer(buffer, {length: 24, mayBeLess: true}); - - if (checkString('PS-Adobe-', {offset: 2}) && - checkString(' EPSF-', {offset: 14})) { - return { - ext: 'eps', - mime: 'application/eps' - }; - } - - return { - ext: 'ps', - mime: 'application/postscript' - }; - } - - if ( - check([0x1F, 0xA0]) || - check([0x1F, 0x9D]) - ) { - return { - ext: 'Z', - mime: 'application/x-compress' - }; - } - - // -- 3-byte signatures -- - - if (check([0xFF, 0xD8, 0xFF])) { - return { - ext: 'jpg', - mime: 'image/jpeg' - }; - } - - if (check([0x49, 0x49, 0xBC])) { - return { - ext: 'jxr', - mime: 'image/vnd.ms-photo' - }; - } - - if (check([0x1F, 0x8B, 0x8])) { - return { - ext: 'gz', - mime: 'application/gzip' - }; - } - - if (check([0x42, 0x5A, 0x68])) { - return { - ext: 'bz2', - mime: 'application/x-bzip2' - }; - } - - if (checkString('ID3')) { - await tokenizer.ignore(6); // Skip ID3 header until the header size - const id3HeaderLen = await tokenizer.readToken(uint32SyncSafeToken); - if (tokenizer.position + id3HeaderLen > tokenizer.fileInfo.size) { - // Guess file type based on ID3 header for backward compatibility - return { - ext: 'mp3', - mime: 'audio/mpeg' - }; - } - - await tokenizer.ignore(id3HeaderLen); - return fromTokenizer(tokenizer); // Skip ID3 header, recursion - } - - // Musepack, SV7 - if (checkString('MP+')) { - return { - ext: 'mpc', - mime: 'audio/x-musepack' - }; - } - - if ( - (buffer[0] === 0x43 || buffer[0] === 0x46) && - check([0x57, 0x53], {offset: 1}) - ) { - return { - ext: 'swf', - mime: 'application/x-shockwave-flash' - }; - } - - // -- 4-byte signatures -- - - if (check([0x47, 0x49, 0x46])) { - return { - ext: 'gif', - mime: 'image/gif' - }; - } - - if (checkString('FLIF')) { - return { - ext: 'flif', - mime: 'image/flif' - }; - } - - if (checkString('8BPS')) { - return { - ext: 'psd', - mime: 'image/vnd.adobe.photoshop' - }; - } - - if (checkString('WEBP', {offset: 8})) { - return { - ext: 'webp', - mime: 'image/webp' - }; - } - - // Musepack, SV8 - if (checkString('MPCK')) { - return { - ext: 'mpc', - mime: 'audio/x-musepack' - }; - } - - if (checkString('FORM')) { - return { - ext: 'aif', - mime: 'audio/aiff' - }; - } - - if (checkString('icns', {offset: 0})) { - return { - ext: 'icns', - mime: 'image/icns' - }; - } - - // Zip-based file formats - // Need to be before the `zip` check - if (check([0x50, 0x4B, 0x3, 0x4])) { // Local file header signature - try { - while (tokenizer.position + 30 < tokenizer.fileInfo.size) { - await tokenizer.readBuffer(buffer, {length: 30}); - - // https://en.wikipedia.org/wiki/Zip_(file_format)#File_headers - const zipHeader = { - compressedSize: buffer.readUInt32LE(18), - uncompressedSize: buffer.readUInt32LE(22), - filenameLength: buffer.readUInt16LE(26), - extraFieldLength: buffer.readUInt16LE(28) - }; - - zipHeader.filename = await tokenizer.readToken(new Token.StringType(zipHeader.filenameLength, 'utf-8')); - await tokenizer.ignore(zipHeader.extraFieldLength); - - // Assumes signed `.xpi` from addons.mozilla.org - if (zipHeader.filename === 'META-INF/mozilla.rsa') { - return { - ext: 'xpi', - mime: 'application/x-xpinstall' - }; - } - - if (zipHeader.filename.endsWith('.rels') || zipHeader.filename.endsWith('.xml')) { - const type = zipHeader.filename.split('/')[0]; - switch (type) { - case '_rels': - break; - case 'word': - return { - ext: 'docx', - mime: 'application/vnd.openxmlformats-officedocument.wordprocessingml.document' - }; - case 'ppt': - return { - ext: 'pptx', - mime: 'application/vnd.openxmlformats-officedocument.presentationml.presentation' - }; - case 'xl': - return { - ext: 'xlsx', - mime: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet' - }; - default: - break; - } - } - - if (zipHeader.filename.startsWith('xl/')) { - return { - ext: 'xlsx', - mime: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet' - }; - } - - // The docx, xlsx and pptx file types extend the Office Open XML file format: - // https://en.wikipedia.org/wiki/Office_Open_XML_file_formats - // We look for: - // - one entry named '[Content_Types].xml' or '_rels/.rels', - // - one entry indicating specific type of file. - // MS Office, OpenOffice and LibreOffice may put the parts in different order, so the check should not rely on it. - if (zipHeader.filename === 'mimetype' && zipHeader.compressedSize === zipHeader.uncompressedSize) { - const mimeType = await tokenizer.readToken(new Token.StringType(zipHeader.compressedSize, 'utf-8')); - - switch (mimeType) { - case 'application/epub+zip': - return { - ext: 'epub', - mime: 'application/epub+zip' - }; - case 'application/vnd.oasis.opendocument.text': - return { - ext: 'odt', - mime: 'application/vnd.oasis.opendocument.text' - }; - case 'application/vnd.oasis.opendocument.spreadsheet': - return { - ext: 'ods', - mime: 'application/vnd.oasis.opendocument.spreadsheet' - }; - case 'application/vnd.oasis.opendocument.presentation': - return { - ext: 'odp', - mime: 'application/vnd.oasis.opendocument.presentation' - }; - default: - } - } - - // Try to find next header manually when current one is corrupted - if (zipHeader.compressedSize === 0) { - let nextHeaderIndex = -1; - - while (nextHeaderIndex < 0 && (tokenizer.position < tokenizer.fileInfo.size)) { - await tokenizer.peekBuffer(buffer, {mayBeLess: true}); - - nextHeaderIndex = buffer.indexOf('504B0304', 0, 'hex'); - // Move position to the next header if found, skip the whole buffer otherwise - await tokenizer.ignore(nextHeaderIndex >= 0 ? nextHeaderIndex : buffer.length); - } - } else { - await tokenizer.ignore(zipHeader.compressedSize); - } - } - } catch (error) { - if (!(error instanceof strtok3.EndOfStreamError)) { - throw error; - } - } - - return { - ext: 'zip', - mime: 'application/zip' - }; - } - - if (checkString('OggS')) { - // This is an OGG container - await tokenizer.ignore(28); - const type = Buffer.alloc(8); - await tokenizer.readBuffer(type); - - // Needs to be before `ogg` check - if (_check(type, [0x4F, 0x70, 0x75, 0x73, 0x48, 0x65, 0x61, 0x64])) { - return { - ext: 'opus', - mime: 'audio/opus' - }; - } - - // If ' theora' in header. - if (_check(type, [0x80, 0x74, 0x68, 0x65, 0x6F, 0x72, 0x61])) { - return { - ext: 'ogv', - mime: 'video/ogg' - }; - } - - // If '\x01video' in header. - if (_check(type, [0x01, 0x76, 0x69, 0x64, 0x65, 0x6F, 0x00])) { - return { - ext: 'ogm', - mime: 'video/ogg' - }; - } - - // If ' FLAC' in header https://xiph.org/flac/faq.html - if (_check(type, [0x7F, 0x46, 0x4C, 0x41, 0x43])) { - return { - ext: 'oga', - mime: 'audio/ogg' - }; - } - - // 'Speex ' in header https://en.wikipedia.org/wiki/Speex - if (_check(type, [0x53, 0x70, 0x65, 0x65, 0x78, 0x20, 0x20])) { - return { - ext: 'spx', - mime: 'audio/ogg' - }; - } - - // If '\x01vorbis' in header - if (_check(type, [0x01, 0x76, 0x6F, 0x72, 0x62, 0x69, 0x73])) { - return { - ext: 'ogg', - mime: 'audio/ogg' - }; - } - - // Default OGG container https://www.iana.org/assignments/media-types/application/ogg - return { - ext: 'ogx', - mime: 'application/ogg' - }; - } - - if ( - check([0x50, 0x4B]) && - (buffer[2] === 0x3 || buffer[2] === 0x5 || buffer[2] === 0x7) && - (buffer[3] === 0x4 || buffer[3] === 0x6 || buffer[3] === 0x8) - ) { - return { - ext: 'zip', - mime: 'application/zip' - }; - } - - // - - // File Type Box (https://en.wikipedia.org/wiki/ISO_base_media_file_format) - // It's not required to be first, but it's recommended to be. Almost all ISO base media files start with `ftyp` box. - // `ftyp` box must contain a brand major identifier, which must consist of ISO 8859-1 printable characters. - // Here we check for 8859-1 printable characters (for simplicity, it's a mask which also catches one non-printable character). - if ( - checkString('ftyp', {offset: 4}) && - (buffer[8] & 0x60) !== 0x00 // Brand major, first character ASCII? - ) { - // They all can have MIME `video/mp4` except `application/mp4` special-case which is hard to detect. - // For some cases, we're specific, everything else falls to `video/mp4` with `mp4` extension. - const brandMajor = buffer.toString('binary', 8, 12).replace('\0', ' ').trim(); - switch (brandMajor) { - case 'avif': - return {ext: 'avif', mime: 'image/avif'}; - case 'mif1': - return {ext: 'heic', mime: 'image/heif'}; - case 'msf1': - return {ext: 'heic', mime: 'image/heif-sequence'}; - case 'heic': - case 'heix': - return {ext: 'heic', mime: 'image/heic'}; - case 'hevc': - case 'hevx': - return {ext: 'heic', mime: 'image/heic-sequence'}; - case 'qt': - return {ext: 'mov', mime: 'video/quicktime'}; - case 'M4V': - case 'M4VH': - case 'M4VP': - return {ext: 'm4v', mime: 'video/x-m4v'}; - case 'M4P': - return {ext: 'm4p', mime: 'video/mp4'}; - case 'M4B': - return {ext: 'm4b', mime: 'audio/mp4'}; - case 'M4A': - return {ext: 'm4a', mime: 'audio/x-m4a'}; - case 'F4V': - return {ext: 'f4v', mime: 'video/mp4'}; - case 'F4P': - return {ext: 'f4p', mime: 'video/mp4'}; - case 'F4A': - return {ext: 'f4a', mime: 'audio/mp4'}; - case 'F4B': - return {ext: 'f4b', mime: 'audio/mp4'}; - case 'crx': - return {ext: 'cr3', mime: 'image/x-canon-cr3'}; - default: - if (brandMajor.startsWith('3g')) { - if (brandMajor.startsWith('3g2')) { - return {ext: '3g2', mime: 'video/3gpp2'}; - } - - return {ext: '3gp', mime: 'video/3gpp'}; - } - - return {ext: 'mp4', mime: 'video/mp4'}; - } - } - - if (checkString('MThd')) { - return { - ext: 'mid', - mime: 'audio/midi' - }; - } - - if ( - checkString('wOFF') && - ( - check([0x00, 0x01, 0x00, 0x00], {offset: 4}) || - checkString('OTTO', {offset: 4}) - ) - ) { - return { - ext: 'woff', - mime: 'font/woff' - }; - } - - if ( - checkString('wOF2') && - ( - check([0x00, 0x01, 0x00, 0x00], {offset: 4}) || - checkString('OTTO', {offset: 4}) - ) - ) { - return { - ext: 'woff2', - mime: 'font/woff2' - }; - } - - if (check([0xD4, 0xC3, 0xB2, 0xA1]) || check([0xA1, 0xB2, 0xC3, 0xD4])) { - return { - ext: 'pcap', - mime: 'application/vnd.tcpdump.pcap' - }; - } - - // Sony DSD Stream File (DSF) - if (checkString('DSD ')) { - return { - ext: 'dsf', - mime: 'audio/x-dsf' // Non-standard - }; - } - - if (checkString('LZIP')) { - return { - ext: 'lz', - mime: 'application/x-lzip' - }; - } - - if (checkString('fLaC')) { - return { - ext: 'flac', - mime: 'audio/x-flac' - }; - } - - if (check([0x42, 0x50, 0x47, 0xFB])) { - return { - ext: 'bpg', - mime: 'image/bpg' - }; - } - - if (checkString('wvpk')) { - return { - ext: 'wv', - mime: 'audio/wavpack' - }; - } - - if (checkString('%PDF')) { - // Check if this is an Adobe Illustrator file - const isAiFile = await checkSequence('Adobe Illustrator', 1350); - if (isAiFile) { - return { - ext: 'ai', - mime: 'application/postscript' - }; - } - - // Assume this is just a normal PDF - return { - ext: 'pdf', - mime: 'application/pdf' - }; - } - - if (check([0x00, 0x61, 0x73, 0x6D])) { - return { - ext: 'wasm', - mime: 'application/wasm' - }; - } - - // TIFF, little-endian type - if (check([0x49, 0x49, 0x2A, 0x0])) { - if (checkString('CR', {offset: 8})) { - return { - ext: 'cr2', - mime: 'image/x-canon-cr2' - }; - } - - if (check([0x1C, 0x00, 0xFE, 0x00], {offset: 8}) || check([0x1F, 0x00, 0x0B, 0x00], {offset: 8})) { - return { - ext: 'nef', - mime: 'image/x-nikon-nef' - }; - } - - if ( - check([0x08, 0x00, 0x00, 0x00], {offset: 4}) && - (check([0x2D, 0x00, 0xFE, 0x00], {offset: 8}) || - check([0x27, 0x00, 0xFE, 0x00], {offset: 8})) - ) { - return { - ext: 'dng', - mime: 'image/x-adobe-dng' - }; - } - - buffer = Buffer.alloc(24); - await tokenizer.peekBuffer(buffer); - if ( - (check([0x10, 0xFB, 0x86, 0x01], {offset: 4}) || check([0x08, 0x00, 0x00, 0x00], {offset: 4})) && - // This pattern differentiates ARW from other TIFF-ish file types: - check([0x00, 0xFE, 0x00, 0x04, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x03, 0x01], {offset: 9}) - ) { - return { - ext: 'arw', - mime: 'image/x-sony-arw' - }; - } - - return { - ext: 'tif', - mime: 'image/tiff' - }; - } - - // TIFF, big-endian type - if (check([0x4D, 0x4D, 0x0, 0x2A])) { - return { - ext: 'tif', - mime: 'image/tiff' - }; - } - - if (checkString('MAC ')) { - return { - ext: 'ape', - mime: 'audio/ape' - }; - } - - // https://github.com/threatstack/libmagic/blob/master/magic/Magdir/matroska - if (check([0x1A, 0x45, 0xDF, 0xA3])) { // Root element: EBML - async function readField() { - const msb = await tokenizer.peekNumber(Token.UINT8); - let mask = 0x80; - let ic = 0; // 0 = A, 1 = B, 2 = C, 3 = D - - while ((msb & mask) === 0) { - ++ic; - mask >>= 1; - } - - const id = Buffer.alloc(ic + 1); - await tokenizer.readBuffer(id); - return id; - } - - async function readElement() { - const id = await readField(); - const lenField = await readField(); - lenField[0] ^= 0x80 >> (lenField.length - 1); - const nrLen = Math.min(6, lenField.length); // JavaScript can max read 6 bytes integer - return { - id: id.readUIntBE(0, id.length), - len: lenField.readUIntBE(lenField.length - nrLen, nrLen) - }; - } - - async function readChildren(level, children) { - while (children > 0) { - const e = await readElement(); - if (e.id === 0x4282) { - return tokenizer.readToken(new Token.StringType(e.len, 'utf-8')); // Return DocType - } - - await tokenizer.ignore(e.len); // ignore payload - --children; - } - } - - const re = await readElement(); - const docType = await readChildren(1, re.len); - - switch (docType) { - case 'webm': - return { - ext: 'webm', - mime: 'video/webm' - }; - - case 'matroska': - return { - ext: 'mkv', - mime: 'video/x-matroska' - }; - - default: - return; - } - } - - // RIFF file format which might be AVI, WAV, QCP, etc - if (check([0x52, 0x49, 0x46, 0x46])) { - if (check([0x41, 0x56, 0x49], {offset: 8})) { - return { - ext: 'avi', - mime: 'video/vnd.avi' - }; - } - - if (check([0x57, 0x41, 0x56, 0x45], {offset: 8})) { - return { - ext: 'wav', - mime: 'audio/vnd.wave' - }; - } - - // QLCM, QCP file - if (check([0x51, 0x4C, 0x43, 0x4D], {offset: 8})) { - return { - ext: 'qcp', - mime: 'audio/qcelp' - }; - } - } - - if (checkString('SQLi')) { - return { - ext: 'sqlite', - mime: 'application/x-sqlite3' - }; - } - - if (check([0x4E, 0x45, 0x53, 0x1A])) { - return { - ext: 'nes', - mime: 'application/x-nintendo-nes-rom' - }; - } - - if (checkString('Cr24')) { - return { - ext: 'crx', - mime: 'application/x-google-chrome-extension' - }; - } - - if ( - checkString('MSCF') || - checkString('ISc(') - ) { - return { - ext: 'cab', - mime: 'application/vnd.ms-cab-compressed' - }; - } - - if (check([0xED, 0xAB, 0xEE, 0xDB])) { - return { - ext: 'rpm', - mime: 'application/x-rpm' - }; - } - - if (check([0xC5, 0xD0, 0xD3, 0xC6])) { - return { - ext: 'eps', - mime: 'application/eps' - }; - } - - // -- 5-byte signatures -- - - if (check([0x4F, 0x54, 0x54, 0x4F, 0x00])) { - return { - ext: 'otf', - mime: 'font/otf' - }; - } - - if (checkString('#!AMR')) { - return { - ext: 'amr', - mime: 'audio/amr' - }; - } - - if (checkString('{\\rtf')) { - return { - ext: 'rtf', - mime: 'application/rtf' - }; - } - - if (check([0x46, 0x4C, 0x56, 0x01])) { - return { - ext: 'flv', - mime: 'video/x-flv' - }; - } - - if (checkString('IMPM')) { - return { - ext: 'it', - mime: 'audio/x-it' - }; - } - - if ( - checkString('-lh0-', {offset: 2}) || - checkString('-lh1-', {offset: 2}) || - checkString('-lh2-', {offset: 2}) || - checkString('-lh3-', {offset: 2}) || - checkString('-lh4-', {offset: 2}) || - checkString('-lh5-', {offset: 2}) || - checkString('-lh6-', {offset: 2}) || - checkString('-lh7-', {offset: 2}) || - checkString('-lzs-', {offset: 2}) || - checkString('-lz4-', {offset: 2}) || - checkString('-lz5-', {offset: 2}) || - checkString('-lhd-', {offset: 2}) - ) { - return { - ext: 'lzh', - mime: 'application/x-lzh-compressed' - }; - } - - // MPEG program stream (PS or MPEG-PS) - if (check([0x00, 0x00, 0x01, 0xBA])) { - // MPEG-PS, MPEG-1 Part 1 - if (check([0x21], {offset: 4, mask: [0xF1]})) { - return { - ext: 'mpg', // May also be .ps, .mpeg - mime: 'video/MP1S' - }; - } - - // MPEG-PS, MPEG-2 Part 1 - if (check([0x44], {offset: 4, mask: [0xC4]})) { - return { - ext: 'mpg', // May also be .mpg, .m2p, .vob or .sub - mime: 'video/MP2P' - }; - } - } - - // -- 6-byte signatures -- - - if (check([0xFD, 0x37, 0x7A, 0x58, 0x5A, 0x00])) { - return { - ext: 'xz', - mime: 'application/x-xz' - }; - } - - if (checkString('')) { - await tokenizer.ignore(8); - const str = await tokenizer.readToken(new Token.StringType(13, 'ascii')); - if (str === 'debian-binary') { - return { - ext: 'deb', - mime: 'application/x-deb' - }; - } - - return { - ext: 'ar', - mime: 'application/x-unix-archive' - }; - } - - // -- 8-byte signatures -- - - if (check([0x89, 0x50, 0x4E, 0x47, 0x0D, 0x0A, 0x1A, 0x0A])) { - // APNG format (https://wiki.mozilla.org/APNG_Specification) - // 1. Find the first IDAT (image data) chunk (49 44 41 54) - // 2. Check if there is an "acTL" chunk before the IDAT one (61 63 54 4C) - - // Offset calculated as follows: - // - 8 bytes: PNG signature - // - 4 (length) + 4 (chunk type) + 13 (chunk data) + 4 (CRC): IHDR chunk - - await tokenizer.ignore(8); // ignore PNG signature - - async function readChunkHeader() { - return { - length: await tokenizer.readToken(Token.INT32_BE), - type: await tokenizer.readToken(new Token.StringType(4, 'binary')) - }; - } - - do { - const chunk = await readChunkHeader(); - switch (chunk.type) { - case 'IDAT': - return { - ext: 'png', - mime: 'image/png' - }; - case 'acTL': - return { - ext: 'apng', - mime: 'image/apng' - }; - default: - await tokenizer.ignore(chunk.length + 4); // Ignore chunk-data + CRC - } - } while (tokenizer.position < tokenizer.fileInfo.size); - - return { - ext: 'png', - mime: 'image/png' - }; - } - - if (check([0x41, 0x52, 0x52, 0x4F, 0x57, 0x31, 0x00, 0x00])) { - return { - ext: 'arrow', - mime: 'application/x-apache-arrow' - }; - } - - if (check([0x67, 0x6C, 0x54, 0x46, 0x02, 0x00, 0x00, 0x00])) { - return { - ext: 'glb', - mime: 'model/gltf-binary' - }; - } - - // `mov` format variants - if ( - check([0x66, 0x72, 0x65, 0x65], {offset: 4}) || // `free` - check([0x6D, 0x64, 0x61, 0x74], {offset: 4}) || // `mdat` MJPEG - check([0x6D, 0x6F, 0x6F, 0x76], {offset: 4}) || // `moov` - check([0x77, 0x69, 0x64, 0x65], {offset: 4}) // `wide` - ) { - return { - ext: 'mov', - mime: 'video/quicktime' - }; - } - - // -- 9-byte signatures -- - - if (check([0x49, 0x49, 0x52, 0x4F, 0x08, 0x00, 0x00, 0x00, 0x18])) { - return { - ext: 'orf', - mime: 'image/x-olympus-orf' - }; - } - - // -- 12-byte signatures -- - - if (check([0x49, 0x49, 0x55, 0x00, 0x18, 0x00, 0x00, 0x00, 0x88, 0xE7, 0x74, 0xD8])) { - return { - ext: 'rw2', - mime: 'image/x-panasonic-rw2' - }; - } - - // ASF_Header_Object first 80 bytes - if (check([0x30, 0x26, 0xB2, 0x75, 0x8E, 0x66, 0xCF, 0x11, 0xA6, 0xD9])) { - async function readHeader() { - const guid = Buffer.alloc(16); - await tokenizer.readBuffer(guid); - return { - id: guid, - size: await tokenizer.readToken(Token.UINT64_LE) - }; - } - - await tokenizer.ignore(30); - // Search for header should be in first 1KB of file. - while (tokenizer.position + 24 < tokenizer.fileInfo.size) { - const header = await readHeader(); - let payload = header.size - 24; - if (_check(header.id, [0x91, 0x07, 0xDC, 0xB7, 0xB7, 0xA9, 0xCF, 0x11, 0x8E, 0xE6, 0x00, 0xC0, 0x0C, 0x20, 0x53, 0x65])) { - // Sync on Stream-Properties-Object (B7DC0791-A9B7-11CF-8EE6-00C00C205365) - const typeId = Buffer.alloc(16); - payload -= await tokenizer.readBuffer(typeId); - - if (_check(typeId, [0x40, 0x9E, 0x69, 0xF8, 0x4D, 0x5B, 0xCF, 0x11, 0xA8, 0xFD, 0x00, 0x80, 0x5F, 0x5C, 0x44, 0x2B])) { - // Found audio: - return { - ext: 'wma', - mime: 'audio/x-ms-wma' - }; - } - - if (_check(typeId, [0xC0, 0xEF, 0x19, 0xBC, 0x4D, 0x5B, 0xCF, 0x11, 0xA8, 0xFD, 0x00, 0x80, 0x5F, 0x5C, 0x44, 0x2B])) { - // Found video: - return { - ext: 'wmv', - mime: 'video/x-ms-asf' - }; - } - - break; - } - - await tokenizer.ignore(payload); - } - - // Default to ASF generic extension - return { - ext: 'asf', - mime: 'application/vnd.ms-asf' - }; - } - - if (check([0xAB, 0x4B, 0x54, 0x58, 0x20, 0x31, 0x31, 0xBB, 0x0D, 0x0A, 0x1A, 0x0A])) { - return { - ext: 'ktx', - mime: 'image/ktx' - }; - } - - if ((check([0x7E, 0x10, 0x04]) || check([0x7E, 0x18, 0x04])) && check([0x30, 0x4D, 0x49, 0x45], {offset: 4})) { - return { - ext: 'mie', - mime: 'application/x-mie' - }; - } - - if (check([0x27, 0x0A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00], {offset: 2})) { - return { - ext: 'shp', - mime: 'application/x-esri-shape' - }; - } - - if (check([0x00, 0x00, 0x00, 0x0C, 0x6A, 0x50, 0x20, 0x20, 0x0D, 0x0A, 0x87, 0x0A])) { - // JPEG-2000 family - - await tokenizer.ignore(20); - const type = await tokenizer.readToken(new Token.StringType(4, 'ascii')); - switch (type) { - case 'jp2 ': - return { - ext: 'jp2', - mime: 'image/jp2' - }; - case 'jpx ': - return { - ext: 'jpx', - mime: 'image/jpx' - }; - case 'jpm ': - return { - ext: 'jpm', - mime: 'image/jpm' - }; - case 'mjp2': - return { - ext: 'mj2', - mime: 'image/mj2' - }; - default: - return; - } - } - - // -- Unsafe signatures -- - - if ( - check([0x0, 0x0, 0x1, 0xBA]) || - check([0x0, 0x0, 0x1, 0xB3]) - ) { - return { - ext: 'mpg', - mime: 'video/mpeg' - }; - } - - if (check([0x00, 0x01, 0x00, 0x00, 0x00])) { - return { - ext: 'ttf', - mime: 'font/ttf' - }; - } - - if (check([0x00, 0x00, 0x01, 0x00])) { - return { - ext: 'ico', - mime: 'image/x-icon' - }; - } - - if (check([0x00, 0x00, 0x02, 0x00])) { - return { - ext: 'cur', - mime: 'image/x-icon' - }; - } - - // Increase sample size from 12 to 256. - await tokenizer.peekBuffer(buffer, {length: Math.min(256, tokenizer.fileInfo.size), mayBeLess: true}); - - // `raf` is here just to keep all the raw image detectors together. - if (checkString('FUJIFILMCCD-RAW')) { - return { - ext: 'raf', - mime: 'image/x-fujifilm-raf' - }; - } - - if (checkString('Extended Module:')) { - return { - ext: 'xm', - mime: 'audio/x-xm' - }; - } - - if (checkString('Creative Voice File')) { - return { - ext: 'voc', - mime: 'audio/x-voc' - }; - } - - if (check([0x04, 0x00, 0x00, 0x00]) && buffer.length >= 16) { // Rough & quick check Pickle/ASAR - const jsonSize = buffer.readUInt32LE(12); - if (jsonSize > 12 && jsonSize < 240 && buffer.length >= jsonSize + 16) { - try { - const header = buffer.slice(16, jsonSize + 16).toString(); - const json = JSON.parse(header); - // Check if Pickle is ASAR - if (json.files) { // Final check, assuring Pickle/ASAR format - return { - ext: 'asar', - mime: 'application/x-asar' - }; - } - } catch (_) { - } - } - } - - if (check([0xD0, 0xCF, 0x11, 0xE0, 0xA1, 0xB1, 0x1A, 0xE1, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3E])) { - return { - ext: 'msi', - mime: 'application/x-msi' - }; - } - - if (check([0x06, 0x0E, 0x2B, 0x34, 0x02, 0x05, 0x01, 0x01, 0x0D, 0x01, 0x02, 0x01, 0x01, 0x02])) { - return { - ext: 'mxf', - mime: 'application/mxf' - }; - } - - if (checkString('SCRM', {offset: 44})) { - return { - ext: 's3m', - mime: 'audio/x-s3m' - }; - } - - if (check([0x47], {offset: 4}) && (check([0x47], {offset: 192}) || check([0x47], {offset: 196}))) { - return { - ext: 'mts', - mime: 'video/mp2t' - }; - } - - if (check([0x42, 0x4F, 0x4F, 0x4B, 0x4D, 0x4F, 0x42, 0x49], {offset: 60})) { - return { - ext: 'mobi', - mime: 'application/x-mobipocket-ebook' - }; - } - - if (check([0x44, 0x49, 0x43, 0x4D], {offset: 128})) { - return { - ext: 'dcm', - mime: 'application/dicom' - }; - } - - if (check([0x4C, 0x00, 0x00, 0x00, 0x01, 0x14, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46])) { - return { - ext: 'lnk', - mime: 'application/x.ms.shortcut' // Invented by us - }; - } - - if (check([0x62, 0x6F, 0x6F, 0x6B, 0x00, 0x00, 0x00, 0x00, 0x6D, 0x61, 0x72, 0x6B, 0x00, 0x00, 0x00, 0x00])) { - return { - ext: 'alias', - mime: 'application/x.apple.alias' // Invented by us - }; - } - - if ( - check([0x4C, 0x50], {offset: 34}) && - ( - check([0x00, 0x00, 0x01], {offset: 8}) || - check([0x01, 0x00, 0x02], {offset: 8}) || - check([0x02, 0x00, 0x02], {offset: 8}) - ) - ) { - return { - ext: 'eot', - mime: 'application/vnd.ms-fontobject' - }; - } - - if (check([0x06, 0x06, 0xED, 0xF5, 0xD8, 0x1D, 0x46, 0xE5, 0xBD, 0x31, 0xEF, 0xE7, 0xFE, 0x74, 0xB7, 0x1D])) { - return { - ext: 'indd', - mime: 'application/x-indesign' - }; - } - - // Increase sample size from 256 to 512 - await tokenizer.peekBuffer(buffer, {length: Math.min(512, tokenizer.fileInfo.size), mayBeLess: true}); - - // Requires a buffer size of 512 bytes - if (tarHeaderChecksumMatches(buffer)) { - return { - ext: 'tar', - mime: 'application/x-tar' - }; - } - - if (check([0xFF, 0xFE, 0xFF, 0x0E, 0x53, 0x00, 0x6B, 0x00, 0x65, 0x00, 0x74, 0x00, 0x63, 0x00, 0x68, 0x00, 0x55, 0x00, 0x70, 0x00, 0x20, 0x00, 0x4D, 0x00, 0x6F, 0x00, 0x64, 0x00, 0x65, 0x00, 0x6C, 0x00])) { - return { - ext: 'skp', - mime: 'application/vnd.sketchup.skp' - }; - } - - if (checkString('-----BEGIN PGP MESSAGE-----')) { - return { - ext: 'pgp', - mime: 'application/pgp-encrypted' - }; - } - - // Check for MPEG header at different starting offsets - for (let start = 0; start < 2 && start < (buffer.length - 16); start++) { - // Check MPEG 1 or 2 Layer 3 header, or 'layer 0' for ADTS (MPEG sync-word 0xFFE) - if (buffer.length >= start + 2 && check([0xFF, 0xE0], {offset: start, mask: [0xFF, 0xE0]})) { - if (check([0x10], {offset: start + 1, mask: [0x16]})) { - // Check for (ADTS) MPEG-2 - if (check([0x08], {offset: start + 1, mask: [0x08]})) { - return { - ext: 'aac', - mime: 'audio/aac' - }; - } - - // Must be (ADTS) MPEG-4 - return { - ext: 'aac', - mime: 'audio/aac' - }; - } - - // MPEG 1 or 2 Layer 3 header - // Check for MPEG layer 3 - if (check([0x02], {offset: start + 1, mask: [0x06]})) { - return { - ext: 'mp3', - mime: 'audio/mpeg' - }; - } - - // Check for MPEG layer 2 - if (check([0x04], {offset: start + 1, mask: [0x06]})) { - return { - ext: 'mp2', - mime: 'audio/mpeg' - }; - } - - // Check for MPEG layer 1 - if (check([0x06], {offset: start + 1, mask: [0x06]})) { - return { - ext: 'mp1', - mime: 'audio/mpeg' - }; - } - } - } -} - -const stream = readableStream => new Promise((resolve, reject) => { - // Using `eval` to work around issues when bundling with Webpack - const stream = eval('require')('stream'); // eslint-disable-line no-eval - - readableStream.on('error', reject); - readableStream.once('readable', async () => { - // Set up output stream - const pass = new stream.PassThrough(); - let outputStream; - if (stream.pipeline) { - outputStream = stream.pipeline(readableStream, pass, () => { - }); - } else { - outputStream = readableStream.pipe(pass); - } - - // Read the input stream and detect the filetype - const chunk = readableStream.read(minimumBytes) || readableStream.read() || Buffer.alloc(0); - try { - const fileType = await fromBuffer(chunk); - pass.fileType = fileType; - } catch (error) { - reject(error); - } - - resolve(outputStream); - }); -}); - -const fileType = { - fromStream, - fromTokenizer, - fromBuffer, - stream -}; - -Object.defineProperty(fileType, 'extensions', { - get() { - return new Set(supported.extensions); - } -}); - -Object.defineProperty(fileType, 'mimeTypes', { - get() { - return new Set(supported.mimeTypes); - } -}); - -module.exports = fileType; - - -/***/ }), - -/***/ "./node_modules/imagemin/node_modules/file-type/index.js": -/*!***************************************************************!*\ - !*** ./node_modules/imagemin/node_modules/file-type/index.js ***! - \***************************************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { - - -const strtok3 = __webpack_require__(/*! strtok3 */ "strtok3"); -const core = __webpack_require__(/*! ./core */ "./node_modules/imagemin/node_modules/file-type/core.js"); - -async function fromFile(path) { - const tokenizer = await strtok3.fromFile(path); - try { - return await core.fromTokenizer(tokenizer); - } finally { - await tokenizer.close(); - } -} - -const fileType = { - fromFile -}; - -Object.assign(fileType, core); - -Object.defineProperty(fileType, 'extensions', { - get() { - return core.extensions; - } -}); - -Object.defineProperty(fileType, 'mimeTypes', { - get() { - return core.mimeTypes; - } -}); - -module.exports = fileType; - - -/***/ }), - -/***/ "./node_modules/imagemin/node_modules/file-type/supported.js": -/*!*******************************************************************!*\ - !*** ./node_modules/imagemin/node_modules/file-type/supported.js ***! - \*******************************************************************/ -/***/ ((module) => { - - - -module.exports = { - extensions: [ - 'jpg', - 'png', - 'apng', - 'gif', - 'webp', - 'flif', - 'cr2', - 'cr3', - 'orf', - 'arw', - 'dng', - 'nef', - 'rw2', - 'raf', - 'tif', - 'bmp', - 'icns', - 'jxr', - 'psd', - 'indd', - 'zip', - 'tar', - 'rar', - 'gz', - 'bz2', - '7z', - 'dmg', - 'mp4', - 'mid', - 'mkv', - 'webm', - 'mov', - 'avi', - 'mpg', - 'mp2', - 'mp3', - 'm4a', - 'oga', - 'ogg', - 'ogv', - 'opus', - 'flac', - 'wav', - 'spx', - 'amr', - 'pdf', - 'epub', - 'exe', - 'swf', - 'rtf', - 'wasm', - 'woff', - 'woff2', - 'eot', - 'ttf', - 'otf', - 'ico', - 'flv', - 'ps', - 'xz', - 'sqlite', - 'nes', - 'crx', - 'xpi', - 'cab', - 'deb', - 'ar', - 'rpm', - 'Z', - 'lz', - 'msi', - 'mxf', - 'mts', - 'blend', - 'bpg', - 'docx', - 'pptx', - 'xlsx', - '3gp', - '3g2', - 'jp2', - 'jpm', - 'jpx', - 'mj2', - 'aif', - 'qcp', - 'odt', - 'ods', - 'odp', - 'xml', - 'mobi', - 'heic', - 'cur', - 'ktx', - 'ape', - 'wv', - 'wmv', - 'wma', - 'dcm', - 'ics', - 'glb', - 'pcap', - 'dsf', - 'lnk', - 'alias', - 'voc', - 'ac3', - 'm4v', - 'm4p', - 'm4b', - 'f4v', - 'f4p', - 'f4b', - 'f4a', - 'mie', - 'asf', - 'ogm', - 'ogx', - 'mpc', - 'arrow', - 'shp', - 'aac', - 'mp1', - 'it', - 's3m', - 'xm', - 'ai', - 'skp', - 'avif', - 'eps', - 'lzh', - 'pgp', - 'asar' - ], - mimeTypes: [ - 'image/jpeg', - 'image/png', - 'image/gif', - 'image/webp', - 'image/flif', - 'image/x-canon-cr2', - 'image/x-canon-cr3', - 'image/tiff', - 'image/bmp', - 'image/vnd.ms-photo', - 'image/vnd.adobe.photoshop', - 'application/x-indesign', - 'application/epub+zip', - 'application/x-xpinstall', - 'application/vnd.oasis.opendocument.text', - 'application/vnd.oasis.opendocument.spreadsheet', - 'application/vnd.oasis.opendocument.presentation', - 'application/vnd.openxmlformats-officedocument.wordprocessingml.document', - 'application/vnd.openxmlformats-officedocument.presentationml.presentation', - 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet', - 'application/zip', - 'application/x-tar', - 'application/x-rar-compressed', - 'application/gzip', - 'application/x-bzip2', - 'application/x-7z-compressed', - 'application/x-apple-diskimage', - 'application/x-apache-arrow', - 'video/mp4', - 'audio/midi', - 'video/x-matroska', - 'video/webm', - 'video/quicktime', - 'video/vnd.avi', - 'audio/vnd.wave', - 'audio/qcelp', - 'audio/x-ms-wma', - 'video/x-ms-asf', - 'application/vnd.ms-asf', - 'video/mpeg', - 'video/3gpp', - 'audio/mpeg', - 'audio/mp4', // RFC 4337 - 'audio/opus', - 'video/ogg', - 'audio/ogg', - 'application/ogg', - 'audio/x-flac', - 'audio/ape', - 'audio/wavpack', - 'audio/amr', - 'application/pdf', - 'application/x-msdownload', - 'application/x-shockwave-flash', - 'application/rtf', - 'application/wasm', - 'font/woff', - 'font/woff2', - 'application/vnd.ms-fontobject', - 'font/ttf', - 'font/otf', - 'image/x-icon', - 'video/x-flv', - 'application/postscript', - 'application/eps', - 'application/x-xz', - 'application/x-sqlite3', - 'application/x-nintendo-nes-rom', - 'application/x-google-chrome-extension', - 'application/vnd.ms-cab-compressed', - 'application/x-deb', - 'application/x-unix-archive', - 'application/x-rpm', - 'application/x-compress', - 'application/x-lzip', - 'application/x-msi', - 'application/x-mie', - 'application/mxf', - 'video/mp2t', - 'application/x-blender', - 'image/bpg', - 'image/jp2', - 'image/jpx', - 'image/jpm', - 'image/mj2', - 'audio/aiff', - 'application/xml', - 'application/x-mobipocket-ebook', - 'image/heif', - 'image/heif-sequence', - 'image/heic', - 'image/heic-sequence', - 'image/icns', - 'image/ktx', - 'application/dicom', - 'audio/x-musepack', - 'text/calendar', - 'model/gltf-binary', - 'application/vnd.tcpdump.pcap', - 'audio/x-dsf', // Non-standard - 'application/x.ms.shortcut', // Invented by us - 'application/x.apple.alias', // Invented by us - 'audio/x-voc', - 'audio/vnd.dolby.dd-raw', - 'audio/x-m4a', - 'image/apng', - 'image/x-olympus-orf', - 'image/x-sony-arw', - 'image/x-adobe-dng', - 'image/x-nikon-nef', - 'image/x-panasonic-rw2', - 'image/x-fujifilm-raf', - 'video/x-m4v', - 'video/3gpp2', - 'application/x-esri-shape', - 'audio/aac', - 'audio/x-it', - 'audio/x-s3m', - 'audio/x-xm', - 'video/MP1S', - 'video/MP2P', - 'application/vnd.sketchup.skp', - 'image/avif', - 'application/x-lzh-compressed', - 'application/pgp-encrypted', - 'application/x-asar' - ] -}; - - -/***/ }), - -/***/ "./node_modules/imagemin/node_modules/file-type/util.js": -/*!**************************************************************!*\ - !*** ./node_modules/imagemin/node_modules/file-type/util.js ***! - \**************************************************************/ -/***/ ((__unused_webpack_module, exports) => { - - - -exports.stringToBytes = string => [...string].map(character => character.charCodeAt(0)); - -exports.tarHeaderChecksumMatches = buffer => { // Does not check if checksum field characters are valid - if (buffer.length < 512) { // `tar` header size, cannot compute checksum without it - return false; - } - - const readSum = parseInt(buffer.toString('utf8', 148, 154).replace(/\0.*$/, '').trim(), 8); // Read sum in header - if (isNaN(readSum)) { - return false; - } - - const MASK_8TH_BIT = 0x80; - - let sum = 256; // Initialize sum, with 256 as sum of 8 spaces in checksum field - let signedBitSum = 0; // Initialize signed bit sum - - for (let i = 0; i < 148; i++) { - const byte = buffer[i]; - sum += byte; - signedBitSum += byte & MASK_8TH_BIT; // Add signed bit to signed bit sum - } - - // Skip checksum field - - for (let i = 156; i < 512; i++) { - const byte = buffer[i]; - sum += byte; - signedBitSum += byte & MASK_8TH_BIT; // Add signed bit to signed bit sum - } - - // Some implementations compute checksum incorrectly using signed bytes - return ( - // Checksum in header equals the sum we calculated - readSum === sum || - - // Checksum in header equals sum we calculated plus signed-to-unsigned delta - readSum === (sum - (signedBitSum << 1)) - ); -}; - -/** -ID3 UINT32 sync-safe tokenizer token. -28 bits (representing up to 256MB) integer, the msb is 0 to avoid "false syncsignals". -*/ -exports.uint32SyncSafeToken = { - get: (buffer, offset) => { - return (buffer[offset + 3] & 0x7F) | ((buffer[offset + 2]) << 7) | ((buffer[offset + 1]) << 14) | ((buffer[offset]) << 21); - }, - len: 4 -}; - - -/***/ }), - -/***/ "./node_modules/is-png/index.js": -/*!**************************************!*\ - !*** ./node_modules/is-png/index.js ***! - \**************************************/ -/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (/* binding */ isPng) -/* harmony export */ }); -function isPng(buffer) { - if (!buffer || buffer.length < 8) { - return false; - } - - return ( - buffer[0] === 0x89 && - buffer[1] === 0x50 && - buffer[2] === 0x4E && - buffer[3] === 0x47 && - buffer[4] === 0x0D && - buffer[5] === 0x0A && - buffer[6] === 0x1A && - buffer[7] === 0x0A - ); -} - - -/***/ }), - -/***/ "./node_modules/p-pipe/index.js": -/*!**************************************!*\ - !*** ./node_modules/p-pipe/index.js ***! - \**************************************/ -/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (/* binding */ pPipe) -/* harmony export */ }); -function pPipe(...functions) { - if (functions.length === 0) { - throw new Error('Expected at least one argument'); - } - - return async input => { - let currentValue = input; - - for (const function_ of functions) { - currentValue = await function_(currentValue); // eslint-disable-line no-await-in-loop - } - - return currentValue; - }; -} - - -/***/ }), - -/***/ "./src/api/tauricon.ts": -/*!*****************************!*\ - !*** ./src/api/tauricon.ts ***! - \*****************************/ -/***/ (function(module, exports, __webpack_require__) { - -// 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 })); -/* eslint-disable @typescript-eslint/restrict-template-expressions, @typescript-eslint/no-unsafe-assignment, @typescript-eslint/no-unsafe-member-access, @typescript-eslint/no-unsafe-return, @typescript-eslint/no-unsafe-call */ -/** - * This is a module that takes an original image and resizes - * it to common icon sizes and will put them in a folder. - * It will retain transparency and can make special file - * types. You can control the settings. - * - * @module tauricon - * @exports tauricon - * @author Daniel Thompson-Yvetot - * @license MIT - */ -var fs_extra_1 = __webpack_require__(/*! fs-extra */ "fs-extra"); -var imagemin_1 = __importDefault(__webpack_require__(/*! imagemin */ "./node_modules/imagemin/index.js")); -var imagemin_optipng_1 = __importDefault(__webpack_require__(/*! imagemin-optipng */ "imagemin-optipng")); -var imagemin_zopfli_1 = __importDefault(__webpack_require__(/*! imagemin-zopfli */ "imagemin-zopfli")); -var is_png_1 = __importDefault(__webpack_require__(/*! is-png */ "./node_modules/is-png/index.js")); -var path_1 = __importDefault(__webpack_require__(/*! path */ "path")); -var png2icons = __importStar(__webpack_require__(/*! png2icons */ "png2icons")); -var read_chunk_1 = __importDefault(__webpack_require__(/*! read-chunk */ "read-chunk")); -var sharp_1 = __importDefault(__webpack_require__(/*! sharp */ "sharp")); -var app_paths_1 = __webpack_require__(/*! ../helpers/app-paths */ "./src/helpers/app-paths.ts"); -var logger_1 = __importDefault(__webpack_require__(/*! ../helpers/logger */ "./src/helpers/logger.ts")); -var settings = __importStar(__webpack_require__(/*! ../helpers/tauricon.config */ "./src/helpers/tauricon.config.ts")); -var chalk_1 = __importDefault(__webpack_require__(/*! chalk */ "chalk")); -var package_json_1 = __webpack_require__(/*! ../../package.json */ "./package.json"); -var log = logger_1.default('app:spawn'); -var warn = logger_1.default('app:spawn', chalk_1.default.red); -var image = false; -var spinnerInterval = null; -var exists = function (file) { - return __awaiter(this, void 0, void 0, function () { - var err_1; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - _a.trys.push([0, 2, , 3]); - return [4 /*yield*/, fs_extra_1.access(file)]; - case 1: - _a.sent(); - return [2 /*return*/, true]; - case 2: - err_1 = _a.sent(); - return [2 /*return*/, false]; - case 3: return [2 /*return*/]; - } - }); - }); -}; -/** - * This is the first call that attempts to memoize the sharp(src). - * If the source image cannot be found or if it is not a png, it - * is a failsafe that will exit or throw. - * - * @param {string} src - a folder to target - * @exits {error} if not a png, if not an image - */ -var checkSrc = function (src) { return __awaiter(void 0, void 0, void 0, function () { - var srcExists, buffer, meta, stats; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - if (!(image !== false)) return [3 /*break*/, 1]; - return [2 /*return*/, image]; - case 1: return [4 /*yield*/, exists(src)]; - case 2: - srcExists = _a.sent(); - if (!!srcExists) return [3 /*break*/, 3]; - image = false; - if (spinnerInterval) - clearInterval(spinnerInterval); - warn('[ERROR] Source image for tauricon not found'); - process.exit(1); - return [3 /*break*/, 8]; - case 3: return [4 /*yield*/, read_chunk_1.default(src, 0, 8)]; - case 4: - buffer = _a.sent(); - if (!is_png_1.default(buffer)) return [3 /*break*/, 7]; - image = sharp_1.default(src); - return [4 /*yield*/, image.metadata()]; - case 5: - meta = _a.sent(); - if (!meta.hasAlpha || meta.channels !== 4) { - if (spinnerInterval) - clearInterval(spinnerInterval); - warn('[ERROR] Source png for tauricon is not transparent'); - process.exit(1); - } - return [4 /*yield*/, image.stats()]; - case 6: - stats = _a.sent(); - if (stats.isOpaque) { - if (spinnerInterval) - clearInterval(spinnerInterval); - warn('[ERROR] Source png for tauricon could not be detected as transparent'); - process.exit(1); - } - return [2 /*return*/, image]; - case 7: - image = false; - if (spinnerInterval) - clearInterval(spinnerInterval); - warn('[ERROR] Source image for tauricon is not a png'); - process.exit(1); - _a.label = 8; - case 8: return [2 /*return*/]; - } - }); -}); }; -/** - * Sort the folders in the current job for unique folders. - * - * @param {object} options - a subset of the settings - * @returns {array} folders - */ -// TODO: proper type of options and folders -var uniqueFolders = function (options) { - var folders = []; - for (var type in options) { - var option = options[String(type)]; - if (option.folder) { - folders.push(option.folder); - } - } - // TODO: is compare argument required? - // eslint-disable-next-line @typescript-eslint/require-array-sort-compare - folders = folders.sort().filter(function (x, i, a) { return !i || x !== a[i - 1]; }); - return folders; -}; -/** - * Turn a hex color (like #212342) into r,g,b values - * - * @param {string} hex - hex colour - * @returns {array} r,g,b - */ -var hexToRgb = function (hex) { - // https://stackoverflow.com/questions/5623838/rgb-to-hex-and-hex-to-rgb - // Expand shorthand form (e.g. "03F") to full form (e.g. "0033FF") - var shorthandRegex = /^#?([a-f\d])([a-f\d])([a-f\d])$/i; - hex = hex.replace(shorthandRegex, function (m, r, g, b) { - return r + r + g + g + b + b; - }); - var result = /^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(hex); - return result - ? { - r: parseInt(result[1], 16), - g: parseInt(result[2], 16), - b: parseInt(result[3], 16) - } - : undefined; -}; -/** - * validate image and directory - */ -var validate = function (src, target) { return __awaiter(void 0, void 0, void 0, function () { - var res; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - if (!(target !== undefined)) return [3 /*break*/, 2]; - return [4 /*yield*/, fs_extra_1.ensureDir(target)]; - case 1: - _a.sent(); - _a.label = 2; - case 2: return [4 /*yield*/, checkSrc(src)]; - case 3: - res = _a.sent(); - return [2 /*return*/, res]; - } - }); -}); }; -// TODO: should take end param? -/** - * Log progress in the command line - * - * @param {boolean} end - */ -var progress = function (msg) { - process.stdout.write(" " + msg + " \r"); -}; -/** - * Create a spinner on the command line - * - * @example - * - * const spinnerInterval = spinner() - * // later - * clearInterval(spinnerInterval) - */ -var spinner = function () { - if ('CI' in process.env || process.argv.some(function (arg) { return arg === '--ci'; })) { - return null; - } - return setInterval(function () { - process.stdout.write('/ \r'); - setTimeout(function () { - process.stdout.write('- \r'); - setTimeout(function () { - process.stdout.write('\\ \r'); - setTimeout(function () { - process.stdout.write('| \r'); - }, 100); - }, 100); - }, 100); - }, 500); -}; -var tauricon = (exports.tauricon = { - validate: function (src, target) { - return __awaiter(this, void 0, void 0, function () { - return __generator(this, function (_a) { - switch (_a.label) { - case 0: return [4 /*yield*/, validate(src, target)]; - case 1: - _a.sent(); - return [2 /*return*/, typeof image === 'object']; - } - }); - }); - }, - version: function () { - return package_json_1.version; - }, - make: function (src, target, strategy, - // TODO: proper type for options - options) { - if (target === void 0) { target = path_1.default.resolve(app_paths_1.tauriDir, 'icons'); } - return __awaiter(this, void 0, void 0, function () { - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - if (!src) { - src = path_1.default.resolve(app_paths_1.appDir, 'app-icon.png'); - } - spinnerInterval = spinner(); - options = options || settings.options.tauri; - progress("Building Tauri icns and ico from \"" + src + "\""); - return [4 /*yield*/, this.validate(src, target)]; - case 1: - _a.sent(); - return [4 /*yield*/, this.icns(src, target, options, strategy)]; - case 2: - _a.sent(); - progress('Building Tauri png icons'); - return [4 /*yield*/, this.build(src, target, options)]; - case 3: - _a.sent(); - if (!strategy) return [3 /*break*/, 5]; - progress("Minifying assets with " + strategy); - return [4 /*yield*/, this.minify(target, options, strategy, 'batch')]; - case 4: - _a.sent(); - return [3 /*break*/, 6]; - case 5: - log('no minify strategy'); - _a.label = 6; - case 6: - progress('Tauricon Finished'); - if (spinnerInterval) - clearInterval(spinnerInterval); - return [2 /*return*/, true]; - } - }); - }); - }, - /** - * Creates a set of images according to the subset of options it knows about. - * - * @param {string} src - image location - * @param {string} target - where to drop the images - * @param {object} options - js object that defines path and sizes - */ - build: function (src, target, - // TODO: proper type for options - options) { - return __awaiter(this, void 0, void 0, function () { - var sharpSrc, buildify2, output, folders, n, folder, _a, _b, _i, optionKey, option, _c, _d, _e, sizeKey, size, dest, pvar; - return __generator(this, function (_f) { - switch (_f.label) { - case 0: return [4 /*yield*/, this.validate(src, target)]; - case 1: - _f.sent(); - sharpSrc = sharp_1.default(src) // creates the image object - ; - buildify2 = function (pvar) { - return __awaiter(this, void 0, void 0, function () { - var pngImage, rgb, err_2; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - _a.trys.push([0, 2, , 3]); - pngImage = sharpSrc.resize(pvar[1], pvar[1]); - if (pvar[2]) { - rgb = hexToRgb(options.background_color) || { - r: undefined, - g: undefined, - b: undefined - }; - pngImage.flatten({ - background: { r: rgb.r, g: rgb.g, b: rgb.b, alpha: 1 } - }); - } - pngImage.png(); - return [4 /*yield*/, pngImage.toFile(pvar[0])]; - case 1: - _a.sent(); - return [3 /*break*/, 3]; - case 2: - err_2 = _a.sent(); - warn(err_2); - return [3 /*break*/, 3]; - case 3: return [2 /*return*/]; - } - }); - }); - }; - folders = uniqueFolders(options); - // eslint-disable-next-line @typescript-eslint/no-for-in-array - for (n in folders) { - folder = folders[Number(n)]; - // make the folders first - // TODO: should this be ensureDirSync? - // eslint-disable-next-line @typescript-eslint/no-floating-promises - fs_extra_1.ensureDir("" + target + path_1.default.sep + folder); - } - _a = []; - for (_b in options) - _a.push(_b); - _i = 0; - _f.label = 2; - case 2: - if (!(_i < _a.length)) return [3 /*break*/, 7]; - optionKey = _a[_i]; - option = options[String(optionKey)]; - _c = []; - for (_d in option.sizes) - _c.push(_d); - _e = 0; - _f.label = 3; - case 3: - if (!(_e < _c.length)) return [3 /*break*/, 6]; - sizeKey = _c[_e]; - size = option.sizes[String(sizeKey)]; - if (!!option.splash) return [3 /*break*/, 5]; - dest = target + "/" + option.folder; - if (option.infix === true) { - output = "" + dest + path_1.default.sep + option.prefix + size + "x" + size + option.suffix; - } - else { - output = "" + dest + path_1.default.sep + option.prefix + option.suffix; - } - pvar = [ - output, - size, - option.background - ]; - return [4 /*yield*/, buildify2(pvar)]; - case 4: - _f.sent(); - _f.label = 5; - case 5: - _e++; - return [3 /*break*/, 3]; - case 6: - _i++; - return [3 /*break*/, 2]; - case 7: return [2 /*return*/]; - } - }); - }); - }, - /** - * Creates a set of splash images (COMING SOON!!!) - * - * @param {string} src - icon location - * @param {string} splashSrc - splashscreen location - * @param {string} target - where to drop the images - * @param {object} options - js object that defines path and sizes - */ - splash: function (src, splashSrc, target, - // TODO: proper type for options - options) { - return __awaiter(this, void 0, void 0, function () { - var output, block, rgb, sharpSrc, data, _a, _b, _i, optionKey, option, _c, _d, _e, sizeKey, size, dest, pvar, sharpData; - return __generator(this, function (_f) { - switch (_f.label) { - case 0: - block = false; - rgb = hexToRgb(options.background_color) || { - r: undefined, - g: undefined, - b: undefined - }; - if (splashSrc === src) { - // prevent overlay or pure - block = true; - } - if (!(block || options.splashscreen_type === 'generate')) return [3 /*break*/, 2]; - return [4 /*yield*/, this.validate(src, target)]; - case 1: - _f.sent(); - if (!image) { - process.exit(1); - } - sharpSrc = sharp_1.default(src); - sharpSrc - .extend({ - top: 726, - bottom: 726, - left: 726, - right: 726, - background: { - r: rgb.r, - g: rgb.g, - b: rgb.b, - alpha: 1 - } - }) - .flatten({ background: { r: rgb.r, g: rgb.g, b: rgb.b, alpha: 1 } }); - return [3 /*break*/, 3]; - case 2: - if (options.splashscreen_type === 'overlay') { - sharpSrc = sharp_1.default(splashSrc) - .flatten({ background: { r: rgb.r, g: rgb.g, b: rgb.b, alpha: 1 } }) - .composite([ - { - input: src - // blend: 'multiply' <= future work, maybe just a gag - } - ]); - } - else if (options.splashscreen_type === 'pure') { - sharpSrc = sharp_1.default(splashSrc).flatten({ - background: { r: rgb.r, g: rgb.g, b: rgb.b, alpha: 1 } - }); - } - else { - throw new Error("unknown options.splashscreen_type: " + options.splashscreen_type); - } - _f.label = 3; - case 3: return [4 /*yield*/, sharpSrc.toBuffer()]; - case 4: - data = _f.sent(); - _a = []; - for (_b in options) - _a.push(_b); - _i = 0; - _f.label = 5; - case 5: - if (!(_i < _a.length)) return [3 /*break*/, 11]; - optionKey = _a[_i]; - option = options[String(optionKey)]; - _c = []; - for (_d in option.sizes) - _c.push(_d); - _e = 0; - _f.label = 6; - case 6: - if (!(_e < _c.length)) return [3 /*break*/, 10]; - sizeKey = _c[_e]; - size = option.sizes[String(sizeKey)]; - if (!option.splash) return [3 /*break*/, 9]; - dest = "" + target + path_1.default.sep + option.folder; - return [4 /*yield*/, fs_extra_1.ensureDir(dest)]; - case 7: - _f.sent(); - if (option.infix === true) { - output = "" + dest + path_1.default.sep + option.prefix + size + "x" + size + option.suffix; - } - else { - output = "" + dest + path_1.default.sep + option.prefix + option.suffix; - } - pvar = [output, size]; - sharpData = sharp_1.default(data); - sharpData = sharpData.resize(pvar[1][0], pvar[1][1]); - return [4 /*yield*/, sharpData.toFile(pvar[0])]; - case 8: - _f.sent(); - _f.label = 9; - case 9: - _e++; - return [3 /*break*/, 6]; - case 10: - _i++; - return [3 /*break*/, 5]; - case 11: return [2 /*return*/]; - } - }); - }); - }, - /** - * Minifies a set of images - * - * @param {string} target - image location - * @param {object} options - where to drop the images - * @param {string} strategy - which minify strategy to use - * @param {string} mode - singlefile or batch - */ - minify: function (target, - // TODO: proper type for options - options, strategy, mode) { - return __awaiter(this, void 0, void 0, function () { - var cmd, minify, minifier, _a, folders, _b, _c, _i, n, folder; - var _this = this; - return __generator(this, function (_d) { - switch (_d.label) { - case 0: - minify = settings.options.minify; - if (!minify.available.find(function (x) { return x === strategy; })) { - strategy = minify.type; - } - switch (strategy) { - case 'optipng': - cmd = imagemin_optipng_1.default(minify.optipngOptions); - break; - case 'zopfli': - cmd = imagemin_zopfli_1.default(minify.zopfliOptions); - break; - default: - throw new Error('unknown strategy' + strategy); - } - minifier = function (pvar, cmd) { return __awaiter(_this, void 0, void 0, function () { - return __generator(this, function (_a) { - switch (_a.label) { - case 0: return [4 /*yield*/, imagemin_1.default([pvar[0]], { - destination: pvar[1], - plugins: [cmd] - }).catch(function (err) { - warn(err); - })]; - case 1: - _a.sent(); - return [2 /*return*/]; - } - }); - }); }; - _a = mode; - switch (_a) { - case 'singlefile': return [3 /*break*/, 1]; - case 'batch': return [3 /*break*/, 3]; - } - return [3 /*break*/, 8]; - case 1: return [4 /*yield*/, minifier([target, path_1.default.dirname(target)], cmd)]; - case 2: - _d.sent(); - return [3 /*break*/, 9]; - case 3: - folders = uniqueFolders(options); - _b = []; - for (_c in folders) - _b.push(_c); - _i = 0; - _d.label = 4; - case 4: - if (!(_i < _b.length)) return [3 /*break*/, 7]; - n = _b[_i]; - folder = folders[Number(n)]; - log('batch minify:' + String(folder)); - return [4 /*yield*/, minifier([ - "" + target + path_1.default.sep + folder + path_1.default.sep + "*.png", - "" + target + path_1.default.sep + folder - ], cmd)]; - case 5: - _d.sent(); - _d.label = 6; - case 6: - _i++; - return [3 /*break*/, 4]; - case 7: return [3 /*break*/, 9]; - case 8: - warn('[ERROR] Minify mode must be one of [ singlefile | batch]'); - process.exit(1); - _d.label = 9; - case 9: return [2 /*return*/, 'minified']; - } - }); - }); - }, - /** - * Creates special icns and ico filetypes - * - * @param {string} src - image location - * @param {string} target - where to drop the images - * @param {object} options - * @param {string} strategy - */ - icns: function (src, target, - // TODO: proper type for options - options, strategy) { - return __awaiter(this, void 0, void 0, function () { - var sharpSrc, buf, out, out2, err_3; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - _a.trys.push([0, 3, , 4]); - if (!image) { - process.exit(1); - } - return [4 /*yield*/, this.validate(src, target)]; - case 1: - _a.sent(); - sharpSrc = sharp_1.default(src); - return [4 /*yield*/, sharpSrc.toBuffer()]; - case 2: - buf = _a.sent(); - out = png2icons.createICNS(buf, png2icons.BICUBIC, 0); - if (out === null) { - throw new Error('Failed to create icon.icns'); - } - fs_extra_1.ensureFileSync(path_1.default.join(target, '/icon.icns')); - fs_extra_1.writeFileSync(path_1.default.join(target, '/icon.icns'), out); - out2 = png2icons.createICO(buf, png2icons.BICUBIC, 0, true); - if (out2 === null) { - throw new Error('Failed to create icon.ico'); - } - fs_extra_1.ensureFileSync(path_1.default.join(target, '/icon.ico')); - fs_extra_1.writeFileSync(path_1.default.join(target, '/icon.ico'), out2); - return [3 /*break*/, 4]; - case 3: - err_3 = _a.sent(); - console.error(err_3); - throw err_3; - case 4: return [2 /*return*/]; - } - }); - }); - } -}); -/* eslint-enable @typescript-eslint/restrict-template-expressions */ -if (true) { - if ( true && module.exports) { - exports = module.exports = tauricon; - } - exports.tauricon = tauricon; -} - - -/***/ }), - -/***/ "./src/helpers/app-paths.ts": -/*!**********************************!*\ - !*** ./src/helpers/app-paths.ts ***! - \**********************************/ -/***/ (function(__unused_webpack_module, exports, __webpack_require__) { - - -// 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/logger.ts": -/*!*******************************!*\ - !*** ./src/helpers/logger.ts ***! - \*******************************/ -/***/ (function(__unused_webpack_module, exports, __webpack_require__) { - - -// 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/tauricon.config.ts": -/*!****************************************!*\ - !*** ./src/helpers/tauricon.config.ts ***! - \****************************************/ -/***/ ((__unused_webpack_module, exports) => { - - -// 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.options = void 0; -exports.options = { - // folder determines in which path to drop the generated file - // prefix is the first part of the generated file's name - // infix adds e.g. '44x44' based on the size in sizes to the generated file's name - // suffix adds a file-ending to the generated file's name - // sizes determines the pixel width and height to use - background_color: '#000074', - theme_color: '#02aa9b', - sharp: 'kernel: sharp.kernel.lanczos3', - minify: { - batch: false, - overwrite: true, - available: ['optipng', 'zopfli'], - type: 'optipng', - optipngOptions: { - optimizationLevel: 4, - paletteReduction: true - }, - zopfliOptions: { - transparent: true, - more: true - } - }, - splash_type: 'generate', - tauri: { - linux: { - folder: '.', - prefix: '', - infix: true, - suffix: '.png', - sizes: [32, 128] - }, - linux_2x: { - folder: '.', - prefix: '128x128@2x', - infix: false, - suffix: '.png', - sizes: [256] - }, - defaults: { - folder: '.', - prefix: 'icon', - infix: false, - suffix: '.png', - sizes: [512] - }, - appx_logo: { - folder: '.', - prefix: 'StoreLogo', - infix: false, - suffix: '.png', - sizes: [50] - }, - appx_square: { - folder: '.', - prefix: 'Square', - infix: true, - suffix: 'Logo.png', - sizes: [30, 44, 71, 89, 107, 142, 150, 284, 310] - } - // todo: look at capacitor and cordova for insight into what icons - // we need for those distribution targets - } -}; - - -/***/ }), - -/***/ "./package.json": -/*!**********************!*\ - !*** ./package.json ***! - \**********************/ -/***/ ((module) => { - -module.exports = JSON.parse('{"name":"@tauri-apps/cli","version":"1.0.0-beta.6","description":"Command line interface for building Tauri apps","bin":{"tauri":"./bin/tauri.js"},"files":["bin","dist","scripts"],"funding":{"type":"opencollective","url":"https://opencollective.com/tauri"},"scripts":{"build":"rimraf ./dist && webpack --progress","build-release":"rimraf ./dist && cross-env NODE_ENV=production webpack","test":"jest --runInBand --no-cache --testPathIgnorePatterns=\\"(build|dev)\\"","pretest":"yarn build","prepublishOnly":"yarn build-release","test:local":"jest --runInBand","lint":"eslint --ext ts \\"./src/**/*.ts\\"","lint-fix":"eslint --fix --ext ts \\"./src/**/*.ts\\"","lint:lockfile":"lockfile-lint --path yarn.lock --type yarn --validate-https --allowed-hosts npm yarn","format":"prettier --write --end-of-line=auto \\"./**/*.{cjs,js,jsx,ts,tsx,html,css,json}\\" --ignore-path .gitignore","format:check":"prettier --check --end-of-line=auto \\"./**/*.{cjs,js,jsx,ts,tsx,html,css,json}\\" --ignore-path .gitignore"},"repository":{"type":"git","url":"git+https://github.com/tauri-apps/tauri.git"},"contributors":["Tauri Team (https://tauri.studio)"],"license":"Apache-2.0 OR MIT","bugs":{"url":"https://github.com/tauri-apps/tauri/issues"},"homepage":"https://github.com/tauri-apps/tauri#readme","publishConfig":{"access":"public"},"engines":{"node":">= 12.13.0","npm":">= 6.6.0","yarn":">= 1.19.1"},"dependencies":{"@tauri-apps/toml":"2.2.4","chalk":"4.1.1","cross-env":"7.0.3","cross-spawn":"7.0.3","fs-extra":"10.0.0","got":"11.8.2","imagemin":"8.0.0","imagemin-optipng":"8.0.0","imagemin-zopfli":"7.0.0","inquirer":"8.1.1","is-png":"3.0.0","minimist":"1.2.5","ms":"2.1.3","png2icons":"2.0.1","read-chunk":"3.2.0","semver":"7.3.5","sharp":"0.28.3","update-notifier":"5.1.0"},"devDependencies":{"@babel/core":"7.14.6","@babel/preset-env":"7.14.7","@babel/preset-typescript":"7.14.5","@types/cross-spawn":"6.0.2","@types/fs-extra":"9.0.12","@types/imagemin":"7.0.1","@types/imagemin-optipng":"5.2.1","@types/inquirer":"7.3.3","@types/ms":"0.7.31","@types/semver":"7.3.7","@types/sharp":"0.28.4","@typescript-eslint/eslint-plugin":"4.28.3","@typescript-eslint/parser":"4.28.3","babel-jest":"27.0.6","eslint":"7.30.0","eslint-config-prettier":"8.3.0","eslint-config-standard-with-typescript":"20.0.0","eslint-plugin-import":"2.23.4","eslint-plugin-lodash-template":"0.19.0","eslint-plugin-node":"11.1.0","eslint-plugin-promise":"5.1.0","eslint-plugin-security":"1.4.0","is-running":"2.1.0","jest":"27.0.6","jest-transform-toml":"1.0.0","lockfile-lint":"4.6.2","prettier":"2.3.2","promise":"8.1.0","raw-loader":"4.0.2","rimraf":"3.0.2","toml-loader":"1.0.0","ts-loader":"9.2.3","typescript":"4.3.5","webpack":"5.44.0","webpack-cli":"4.7.2","webpack-node-externals":"3.0.0"},"resolutions":{"**/lodash":"4.17.21","**/hosted-git-info":"4.0.2","**/normalize-url":"6.1.0","**/trim-newlines":"4.0.2"}}'); - -/***/ }), - -/***/ "chalk": -/*!************************!*\ - !*** external "chalk" ***! - \************************/ -/***/ ((module) => { - -module.exports = require("chalk");; - -/***/ }), - -/***/ "fs": -/*!*********************!*\ - !*** external "fs" ***! - \*********************/ -/***/ ((module) => { - -module.exports = require("fs");; - -/***/ }), - -/***/ "fs-extra": -/*!***************************!*\ - !*** external "fs-extra" ***! - \***************************/ -/***/ ((module) => { - -module.exports = require("fs-extra");; - -/***/ }), - -/***/ "globby": -/*!*************************!*\ - !*** external "globby" ***! - \*************************/ -/***/ ((module) => { - -module.exports = require("globby");; - -/***/ }), - -/***/ "graceful-fs": -/*!******************************!*\ - !*** external "graceful-fs" ***! - \******************************/ -/***/ ((module) => { - -module.exports = require("graceful-fs");; - -/***/ }), - -/***/ "imagemin-optipng": -/*!***********************************!*\ - !*** external "imagemin-optipng" ***! - \***********************************/ -/***/ ((module) => { - -module.exports = require("imagemin-optipng");; - -/***/ }), - -/***/ "imagemin-zopfli": -/*!**********************************!*\ - !*** external "imagemin-zopfli" ***! - \**********************************/ -/***/ ((module) => { - -module.exports = require("imagemin-zopfli");; - -/***/ }), - -/***/ "junk": -/*!***********************!*\ - !*** external "junk" ***! - \***********************/ -/***/ ((module) => { - -module.exports = require("junk");; - -/***/ }), - -/***/ "ms": -/*!*********************!*\ - !*** external "ms" ***! - \*********************/ -/***/ ((module) => { - -module.exports = require("ms");; - -/***/ }), - -/***/ "path": -/*!***********************!*\ - !*** external "path" ***! - \***********************/ -/***/ ((module) => { - -module.exports = require("path");; - -/***/ }), - -/***/ "png2icons": -/*!****************************!*\ - !*** external "png2icons" ***! - \****************************/ -/***/ ((module) => { - -module.exports = require("png2icons");; - -/***/ }), - -/***/ "read-chunk": -/*!*****************************!*\ - !*** external "read-chunk" ***! - \*****************************/ -/***/ ((module) => { - -module.exports = require("read-chunk");; - -/***/ }), - -/***/ "replace-ext": -/*!******************************!*\ - !*** external "replace-ext" ***! - \******************************/ -/***/ ((module) => { - -module.exports = require("replace-ext");; - -/***/ }), - -/***/ "sharp": -/*!************************!*\ - !*** external "sharp" ***! - \************************/ -/***/ ((module) => { - -module.exports = require("sharp");; - -/***/ }), - -/***/ "strtok3": -/*!**************************!*\ - !*** external "strtok3" ***! - \**************************/ -/***/ ((module) => { - -module.exports = require("strtok3");; - -/***/ }), - -/***/ "strtok3/lib/core": -/*!***********************************!*\ - !*** external "strtok3/lib/core" ***! - \***********************************/ -/***/ ((module) => { - -module.exports = require("strtok3/lib/core");; - -/***/ }), - -/***/ "token-types": -/*!******************************!*\ - !*** external "token-types" ***! - \******************************/ -/***/ ((module) => { - -module.exports = require("token-types");; - -/***/ }), - -/***/ "util": -/*!***********************!*\ - !*** external "util" ***! - \***********************/ -/***/ ((module) => { - -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; -/******/ } -/******/ -/************************************************************************/ -/******/ /* webpack/runtime/define property getters */ -/******/ (() => { -/******/ // define getter functions for harmony exports -/******/ __webpack_require__.d = (exports, definition) => { -/******/ for(var key in definition) { -/******/ if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) { -/******/ Object.defineProperty(exports, key, { enumerable: true, get: definition[key] }); -/******/ } -/******/ } -/******/ }; -/******/ })(); -/******/ -/******/ /* webpack/runtime/hasOwnProperty shorthand */ -/******/ (() => { -/******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop)) -/******/ })(); -/******/ -/******/ /* webpack/runtime/make namespace object */ -/******/ (() => { -/******/ // define __esModule on exports -/******/ __webpack_require__.r = (exports) => { -/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { -/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); -/******/ } -/******/ Object.defineProperty(exports, '__esModule', { value: true }); -/******/ }; -/******/ })(); -/******/ -/************************************************************************/ -/******/ -/******/ // 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/tauricon.ts"); -/******/ -/******/ return __webpack_exports__; -/******/ })() -; -}); -//# sourceMappingURL=tauricon.js.map \ No newline at end of file diff --git a/tooling/cli.js/dist/api/tauricon.js.map b/tooling/cli.js/dist/api/tauricon.js.map deleted file mode 100644 index 4473ef2f0..000000000 --- a/tooling/cli.js/dist/api/tauricon.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["webpack://tauri/webpack/universalModuleDefinition","webpack://tauri/./node_modules/imagemin/index.js","webpack://tauri/./node_modules/imagemin/node_modules/file-type/core.js","webpack://tauri/./node_modules/imagemin/node_modules/file-type/index.js","webpack://tauri/./node_modules/imagemin/node_modules/file-type/supported.js","webpack://tauri/./node_modules/imagemin/node_modules/file-type/util.js","webpack://tauri/./node_modules/is-png/index.js","webpack://tauri/./node_modules/p-pipe/index.js","webpack://tauri/./src/api/tauricon.ts","webpack://tauri/./src/helpers/app-paths.ts","webpack://tauri/./src/helpers/logger.ts","webpack://tauri/./src/helpers/tauricon.config.ts","webpack://tauri/external \"chalk\"","webpack://tauri/external \"fs\"","webpack://tauri/external \"fs-extra\"","webpack://tauri/external \"globby\"","webpack://tauri/external \"graceful-fs\"","webpack://tauri/external \"imagemin-optipng\"","webpack://tauri/external \"imagemin-zopfli\"","webpack://tauri/external \"junk\"","webpack://tauri/external \"ms\"","webpack://tauri/external \"path\"","webpack://tauri/external \"png2icons\"","webpack://tauri/external \"read-chunk\"","webpack://tauri/external \"replace-ext\"","webpack://tauri/external \"sharp\"","webpack://tauri/external \"strtok3\"","webpack://tauri/external \"strtok3/lib/core\"","webpack://tauri/external \"token-types\"","webpack://tauri/external \"util\"","webpack://tauri/webpack/bootstrap","webpack://tauri/webpack/runtime/define property getters","webpack://tauri/webpack/runtime/hasOwnProperty shorthand","webpack://tauri/webpack/runtime/make namespace object","webpack://tauri/webpack/startup"],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,O;;;;;;;;;;;;;;;;;;;;;;;ACV+B;AACP;AACK;AACa;AACT;AACL;AACD;AACU;AACb;;AAExB,iBAAiB,+CAAS,CAAC,iDAAW;AACtC,kBAAkB,+CAAS,CAAC,kDAAY;;AAExC,uCAAuC,0BAA0B;AACjE;AACA;AACA;;AAEA;AACA,oCAAoC,+CAAK;;AAEzC,QAAQ,IAAI,SAAS,iDAAmB;AACxC,qCAAqC,sCAAS,cAAc,0CAAa;AACzE,oCAAoC,wCAAU;;AAE9C;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,OAAO,8CAAgB,CAAC,yCAAY,gCAAgC,gBAAgB;AACpF;;AAEA;AACA;;AAEe,gCAAgC,wBAAwB,KAAK;AAC5E;AACA,sDAAsD,aAAa;AACnE;;AAEA,gCAAgC,mCAAM,SAAS,gBAAgB;;AAE/D;AACA;AACA,uBAAuB,qCAAQ,CAAC,0CAAa;AAC7C;AACA;AACA;AACA,KAAK;AACL,2DAA2D,MAAM,MAAM,YAAY;AACnF;AACA;AACA,IAAI;AACJ;AACA;;AAEA,iCAAiC,aAAa,KAAK;AACnD;AACA,sDAAsD,aAAa;AACnE;;AAEA;AACA;AACA;;AAEA,QAAQ,+CAAK;AACb;;;;;;;;;;;ACxEa;AACb,cAAc,mBAAO,CAAC,gCAAa;AACnC,gBAAgB,mBAAO,CAAC,0CAAkB;AAC1C;AACA;AACA;AACA;AACA,CAAC,GAAG,mBAAO,CAAC,sEAAQ;AACpB,kBAAkB,mBAAO,CAAC,gFAAa;;AAEvC,0BAA0B;;AAE1B;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;;AAEA;AACA;AACA,8HAA8H,aAAa;AAC3I;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA,qCAAqC,gBAAgB;;AAErD;AACA;;AAEA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,qCAAqC,mCAAmC;;AAExE;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,sCAAsC,4BAA4B;;AAElE,gCAAgC,UAAU;AAC1C,0BAA0B,WAAW;AACrC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,4BAA4B;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,kCAAkC;AAClC;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,uBAAuB,UAAU;AACjC;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,0BAA0B,UAAU;AACpC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,0BAA0B,UAAU;AACpC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,qCAAqC;AACrC;AACA;AACA,wCAAwC,WAAW;;AAEnD;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,0CAA0C,gBAAgB;;AAE1D;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,uBAAuB,UAAU;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA,YAAY;AACZ;AACA,YAAY;AACZ;AACA;AACA,YAAY;AACZ;AACA;AACA,YAAY;AACZ;AACA,YAAY;AACZ;AACA;AACA;AACA,YAAY;AACZ;AACA,YAAY;AACZ;AACA,YAAY;AACZ;AACA,YAAY;AACZ;AACA,YAAY;AACZ;AACA,YAAY;AACZ;AACA,YAAY;AACZ;AACA,YAAY;AACZ;AACA,YAAY;AACZ;AACA;AACA;AACA,cAAc;AACd;;AAEA,aAAa;AACb;;AAEA,YAAY;AACZ;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,oCAAoC,UAAU;AAC9C,wBAAwB,UAAU;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,oCAAoC,UAAU;AAC9C,wBAAwB,UAAU;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,yBAAyB,UAAU;AACnC;AACA;AACA;AACA;AACA;;AAEA,uCAAuC,UAAU,sCAAsC,UAAU;AACjG;AACA;AACA;AACA;AACA;;AAEA;AACA,oCAAoC,UAAU;AAC9C,qCAAqC,UAAU;AAC/C,qCAAqC,UAAU;AAC/C;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,qCAAqC,UAAU,sCAAsC,UAAU;AAC/F;AACA,sGAAsG,UAAU;AAChH;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,uCAAuC;AACvC;AACA;AACA;AACA,cAAc;;AAEd;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,8CAA8C;AAC9C;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,sEAAsE;AACtE;;AAEA,kCAAkC;AAClC;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,iCAAiC,UAAU;AAC3C;AACA;AACA;AACA;AACA;;AAEA,uCAAuC,UAAU;AACjD;AACA;AACA;AACA;AACA;;AAEA;AACA,uCAAuC,UAAU;AACjD;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,mBAAmB;AACnB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,wBAAwB,UAAU;AAClC,wBAAwB,UAAU;AAClC,wBAAwB,UAAU;AAClC,wBAAwB,UAAU;AAClC,wBAAwB,UAAU;AAClC,wBAAwB,UAAU;AAClC,wBAAwB,UAAU;AAClC,wBAAwB,UAAU;AAClC,wBAAwB,UAAU;AAClC,wBAAwB,UAAU;AAClC,wBAAwB,UAAU;AAClC,wBAAwB,UAAU;AAClC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,qBAAqB,wBAAwB;AAC7C;AACA;AACA;AACA;AACA;;AAEA;AACA,qBAAqB,wBAAwB;AAC7C;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,4BAA4B;;AAE5B;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C;AAC9C;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,mCAAmC,UAAU;AAC7C,mCAAmC,UAAU;AAC7C,mCAAmC,UAAU;AAC7C,mCAAmC,UAAU;AAC7C;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,kGAAkG,UAAU;AAC5G;AACA;AACA;AACA;AACA;;AAEA,sFAAsF,UAAU;AAChG;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,qCAAqC,gEAAgE;;AAErG;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,8DAA8D;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,0BAA0B,WAAW;AACrC;AACA;AACA;AACA;AACA;;AAEA,oBAAoB,UAAU,qBAAqB,YAAY,oBAAoB,YAAY;AAC/F;AACA;AACA;AACA;AACA;;AAEA,8DAA8D,WAAW;AACzE;AACA;AACA;AACA;AACA;;AAEA,sCAAsC,YAAY;AAClD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,uBAAuB,WAAW;AAClC;AACA,8BAA8B,UAAU;AACxC,8BAA8B,UAAU;AACxC,8BAA8B,UAAU;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,qCAAqC,gEAAgE;;AAErG;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,oBAAoB,2CAA2C;AAC/D;AACA,yDAAyD,kCAAkC;AAC3F,sBAAsB,gCAAgC;AACtD;AACA,uBAAuB,gCAAgC;AACvD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,sBAAsB,gCAAgC;AACtD;AACA;AACA;AACA;AACA;;AAEA;AACA,sBAAsB,gCAAgC;AACtD;AACA;AACA;AACA;AACA;;AAEA;AACA,sBAAsB,gCAAgC;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,0CAA0C;;AAE1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA,EAAE;AACF,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA,CAAC;;AAED;;;;;;;;;;;ACp4Ca;AACb,gBAAgB,mBAAO,CAAC,wBAAS;AACjC,aAAa,mBAAO,CAAC,sEAAQ;;AAE7B;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA,CAAC;;AAED;;;;;;;;;;;AC/Ba;;AAEb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;AC1Qa;;AAEb,qBAAqB;;AAErB,gCAAgC,cAAc;AAC9C,2BAA2B;AAC3B;AACA;;AAEA,4FAA4F;AAC5F;AACA;AACA;;AAEA;;AAEA,eAAe;AACf,sBAAsB;;AAEtB,gBAAgB,SAAS;AACzB;AACA;AACA,sCAAsC;AACtC;;AAEA;;AAEA,kBAAkB,SAAS;AAC3B;AACA;AACA,sCAAsC;AACtC;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,2BAA2B;AAC3B;AACA;AACA,EAAE;AACF;AACA;;;;;;;;;;;;;;;ACpDe;AACf;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;ACfe;AACf;AACA;AACA;;AAEA;AACA;;AAEA;AACA,gDAAgD;AAChD;;AAEA;AACA;AACA;;;;;;;;;;;ACdA;AACA;AACA;AACa;AACb;AACA;AACA,kCAAkC,oCAAoC,aAAa,EAAE,EAAE;AACvF,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA,yCAAyC,6BAA6B;AACtE,CAAC;AACD;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,+DAA+D,gBAAgB,EAAE,EAAE;AAC9G;AACA,mCAAmC,MAAM,6BAA6B,EAAE,YAAY,WAAW,EAAE;AACjG,kCAAkC,MAAM,iCAAiC,EAAE,YAAY,WAAW,EAAE;AACpG,+BAA+B,qFAAqF;AACpH;AACA,KAAK;AACL;AACA;AACA,aAAa,6BAA6B,0BAA0B,aAAa,EAAE,qBAAqB;AACxG,gBAAgB,qDAAqD,oEAAoE,aAAa,EAAE;AACxJ,sBAAsB,sBAAsB,qBAAqB,GAAG;AACpE;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC;AACvC,kCAAkC,SAAS;AAC3C,kCAAkC,WAAW,UAAU;AACvD,yCAAyC,cAAc;AACvD;AACA,6GAA6G,OAAO,UAAU;AAC9H,gFAAgF,iBAAiB,OAAO;AACxG,wDAAwD,gBAAgB,QAAQ,OAAO;AACvF,8CAA8C,gBAAgB,gBAAgB,OAAO;AACrF;AACA,iCAAiC;AACjC;AACA;AACA,SAAS,YAAY,aAAa,OAAO,EAAE,UAAU,WAAW;AAChE,mCAAmC,SAAS;AAC5C;AACA;AACA;AACA,4CAA4C;AAC5C;AACA,8CAA6C,CAAC,cAAc,EAAC;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,mBAAO,CAAC,0BAAU;AACnC,iCAAiC,mBAAO,CAAC,kDAAU;AACnD,yCAAyC,mBAAO,CAAC,0CAAkB;AACnE,wCAAwC,mBAAO,CAAC,wCAAiB;AACjE,+BAA+B,mBAAO,CAAC,8CAAQ;AAC/C,6BAA6B,mBAAO,CAAC,kBAAM;AAC3C,6BAA6B,mBAAO,CAAC,4BAAW;AAChD,mCAAmC,mBAAO,CAAC,8BAAY;AACvD,8BAA8B,mBAAO,CAAC,oBAAO;AAC7C,kBAAkB,mBAAO,CAAC,wDAAsB;AAChD,+BAA+B,mBAAO,CAAC,kDAAmB;AAC1D,4BAA4B,mBAAO,CAAC,oEAA4B;AAChE,8BAA8B,mBAAO,CAAC,oBAAO;AAC7C,qBAAqB,mBAAO,CAAC,0CAAoB;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,MAAM;AACjB;AACA,+BAA+B;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,CAAC,EAAE;AACH;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wDAAwD,6BAA6B,EAAE;AACvF;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,8BAA8B,EAAE,UAAU,EAAE,UAAU,EAAE;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,CAAC,EAAE;AACH;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iEAAiE,uBAAuB,EAAE;AAC1F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB,aAAa;AACb,SAAS;AACT,KAAK;AACL;AACA,gBAAgB,gBAAgB;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,gCAAgC,gEAAgE;AAChG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT,KAAK;AACL;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iEAAiE;AACjE,iDAAiD;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC;AACjC,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT,KAAK;AACL;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB,sCAAsC,cAAc,yCAAyC,EAAE;AAC/F;AACA;AACA;AACA;AACA,0CAA0C,cAAc,yCAAyC,EAAE;AACnG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C;AAC7C,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT,KAAK;AACL;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iEAAiE,uBAAuB,EAAE;AAC1F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yDAAyD;AACzD;AACA;AACA;AACA;AACA;AACA,yCAAyC;AACzC;AACA,yCAAyC;AACzC;AACA;AACA;AACA;AACA,6BAA6B;AAC7B,yBAAyB,EAAE;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT,KAAK;AACL;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA,CAAC;AACD;AACA,IAAI,IAA8B;AAClC,QAAQ,KAA6B;AACrC;AACA;AACA,IAAI,gBAAgB;AACpB;;;;;;;;;;;ACxrBa;AACb;AACA;AACA;AACA;AACA,4CAA4C;AAC5C;AACA,8CAA6C,CAAC,cAAc,EAAC;AAC7D,eAAe,GAAG,gBAAgB,GAAG,cAAc;AACnD,WAAW,mBAAO,CAAC,cAAI;AACvB,aAAa,mBAAO,CAAC,kBAAM;AAC3B,+BAA+B,mBAAO,CAAC,yCAAU;AACjD,8BAA8B,mBAAO,CAAC,oBAAO;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA,gBAAgB;AAChB;AACA,yBAAyB,iCAAiC,EAAE;AAC5D,2BAA2B,mCAAmC;AAC9D;AACA,eAAe;;;;;;;;;;;ACvCF;AACb;AACA;AACA;AACA;AACA,4CAA4C;AAC5C;AACA,8CAA6C,CAAC,cAAc,EAAC;AAC7D,8BAA8B,mBAAO,CAAC,oBAAO;AAC7C,2BAA2B,mBAAO,CAAC,cAAI;AACvC;AACA,eAAe;AACf,2BAA2B,+BAA+B;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;;;;;;;;;;AC3BY;AACb;AACA;AACA;AACA,8CAA6C,CAAC,cAAc,EAAC;AAC7D,eAAe;AACf,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;ACrEA,mC;;;;;;;;;;ACAA,gC;;;;;;;;;;ACAA,sC;;;;;;;;;;ACAA,oC;;;;;;;;;;ACAA,yC;;;;;;;;;;ACAA,8C;;;;;;;;;;ACAA,6C;;;;;;;;;;ACAA,kC;;;;;;;;;;ACAA,gC;;;;;;;;;;ACAA,kC;;;;;;;;;;ACAA,uC;;;;;;;;;;ACAA,wC;;;;;;;;;;ACAA,yC;;;;;;;;;;ACAA,mC;;;;;;;;;;ACAA,qC;;;;;;;;;;ACAA,8C;;;;;;;;;;ACAA,yC;;;;;;;;;;ACAA,kC;;;;;;UCAA;UACA;;UAEA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;;UAEA;UACA;;UAEA;UACA;UACA;;;;;WCtBA;WACA;WACA;WACA;WACA,wCAAwC,yCAAyC;WACjF;WACA;WACA,E;;;;;WCPA,wF;;;;;WCAA;WACA;WACA;WACA,sDAAsD,kBAAkB;WACxE;WACA,+CAA+C,cAAc;WAC7D,E;;;;;UCNA;UACA;UACA;UACA","file":"api/tauricon.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"tauri\"] = factory();\n\telse\n\t\troot[\"tauri\"] = factory();\n})(this, function() {\nreturn ","import {promisify} from 'util';\nimport path from 'path';\nimport fs from 'graceful-fs';\nimport {promises as fsPromises} from 'fs';\nimport FileType from 'file-type';\nimport globby from 'globby';\nimport pPipe from 'p-pipe';\nimport replaceExt from 'replace-ext';\nimport junk from 'junk';\n\nconst readFile = promisify(fs.readFile);\nconst writeFile = promisify(fs.writeFile);\n\nconst handleFile = async (sourcePath, {destination, plugins = []}) => {\n\tif (plugins && !Array.isArray(plugins)) {\n\t\tthrow new TypeError('The `plugins` option should be an `Array`');\n\t}\n\n\tlet data = await readFile(sourcePath);\n\tdata = await (plugins.length > 0 ? pPipe(...plugins)(data) : data);\n\n\tconst {ext} = await FileType.fromBuffer(data);\n\tlet destinationPath = destination ? path.join(destination, path.basename(sourcePath)) : undefined;\n\tdestinationPath = ext === 'webp' ? replaceExt(destinationPath, '.webp') : destinationPath;\n\n\tconst returnValue = {\n\t\tdata,\n\t\tsourcePath,\n\t\tdestinationPath\n\t};\n\n\tif (!destinationPath) {\n\t\treturn returnValue;\n\t}\n\n\tawait fsPromises.mkdir(path.dirname(returnValue.destinationPath), {recursive: true});\n\tawait writeFile(returnValue.destinationPath, returnValue.data);\n\n\treturn returnValue;\n};\n\nexport default async function imagemin(input, {glob = true, ...options} = {}) {\n\tif (!Array.isArray(input)) {\n\t\tthrow new TypeError(`Expected an \\`Array\\`, got \\`${typeof input}\\``);\n\t}\n\n\tconst filePaths = glob ? await globby(input, {onlyFiles: true}) : input;\n\n\treturn Promise.all(\n\t\tfilePaths\n\t\t\t.filter(filePath => junk.not(path.basename(filePath)))\n\t\t\t.map(async filePath => {\n\t\t\t\ttry {\n\t\t\t\t\treturn await handleFile(filePath, options);\n\t\t\t\t} catch (error) {\n\t\t\t\t\terror.message = `Error occurred when handling file: ${input}\\n\\n${error.stack}`;\n\t\t\t\t\tthrow error;\n\t\t\t\t}\n\t\t\t})\n\t);\n}\n\nimagemin.buffer = async (input, {plugins = []} = {}) => {\n\tif (!Buffer.isBuffer(input)) {\n\t\tthrow new TypeError(`Expected a \\`Buffer\\`, got \\`${typeof input}\\``);\n\t}\n\n\tif (plugins.length === 0) {\n\t\treturn input;\n\t}\n\n\treturn pPipe(...plugins)(input);\n};\n","'use strict';\nconst Token = require('token-types');\nconst strtok3 = require('strtok3/lib/core');\nconst {\n\tstringToBytes,\n\ttarHeaderChecksumMatches,\n\tuint32SyncSafeToken\n} = require('./util');\nconst supported = require('./supported');\n\nconst minimumBytes = 4100; // A fair amount of file-types are detectable within this range\n\nasync function fromStream(stream) {\n\tconst tokenizer = await strtok3.fromStream(stream);\n\ttry {\n\t\treturn await fromTokenizer(tokenizer);\n\t} finally {\n\t\tawait tokenizer.close();\n\t}\n}\n\nasync function fromBuffer(input) {\n\tif (!(input instanceof Uint8Array || input instanceof ArrayBuffer || Buffer.isBuffer(input))) {\n\t\tthrow new TypeError(`Expected the \\`input\\` argument to be of type \\`Uint8Array\\` or \\`Buffer\\` or \\`ArrayBuffer\\`, got \\`${typeof input}\\``);\n\t}\n\n\tconst buffer = input instanceof Buffer ? input : Buffer.from(input);\n\n\tif (!(buffer && buffer.length > 1)) {\n\t\treturn;\n\t}\n\n\tconst tokenizer = strtok3.fromBuffer(buffer);\n\treturn fromTokenizer(tokenizer);\n}\n\nfunction _check(buffer, headers, options) {\n\toptions = {\n\t\toffset: 0,\n\t\t...options\n\t};\n\n\tfor (const [index, header] of headers.entries()) {\n\t\t// If a bitmask is set\n\t\tif (options.mask) {\n\t\t\t// If header doesn't equal `buf` with bits masked off\n\t\t\tif (header !== (options.mask[index] & buffer[index + options.offset])) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t} else if (header !== buffer[index + options.offset]) {\n\t\t\treturn false;\n\t\t}\n\t}\n\n\treturn true;\n}\n\nasync function _checkSequence(sequence, tokenizer, ignoreBytes) {\n\tconst buffer = Buffer.alloc(minimumBytes);\n\tawait tokenizer.ignore(ignoreBytes);\n\n\tawait tokenizer.peekBuffer(buffer, {mayBeLess: true});\n\n\treturn buffer.includes(Buffer.from(sequence));\n}\n\nasync function fromTokenizer(tokenizer) {\n\ttry {\n\t\treturn _fromTokenizer(tokenizer);\n\t} catch (error) {\n\t\tif (!(error instanceof strtok3.EndOfStreamError)) {\n\t\t\tthrow error;\n\t\t}\n\t}\n}\n\nasync function _fromTokenizer(tokenizer) {\n\tlet buffer = Buffer.alloc(minimumBytes);\n\tconst bytesRead = 12;\n\tconst check = (header, options) => _check(buffer, header, options);\n\tconst checkString = (header, options) => check(stringToBytes(header), options);\n\tconst checkSequence = (sequence, ignoreBytes) => _checkSequence(sequence, tokenizer, ignoreBytes);\n\n\t// Keep reading until EOF if the file size is unknown.\n\tif (!tokenizer.fileInfo.size) {\n\t\ttokenizer.fileInfo.size = Number.MAX_SAFE_INTEGER;\n\t}\n\n\tawait tokenizer.peekBuffer(buffer, {length: bytesRead, mayBeLess: true});\n\n\t// -- 2-byte signatures --\n\n\tif (check([0x42, 0x4D])) {\n\t\treturn {\n\t\t\text: 'bmp',\n\t\t\tmime: 'image/bmp'\n\t\t};\n\t}\n\n\tif (check([0x0B, 0x77])) {\n\t\treturn {\n\t\t\text: 'ac3',\n\t\t\tmime: 'audio/vnd.dolby.dd-raw'\n\t\t};\n\t}\n\n\tif (check([0x78, 0x01])) {\n\t\treturn {\n\t\t\text: 'dmg',\n\t\t\tmime: 'application/x-apple-diskimage'\n\t\t};\n\t}\n\n\tif (check([0x4D, 0x5A])) {\n\t\treturn {\n\t\t\text: 'exe',\n\t\t\tmime: 'application/x-msdownload'\n\t\t};\n\t}\n\n\tif (check([0x25, 0x21])) {\n\t\tawait tokenizer.peekBuffer(buffer, {length: 24, mayBeLess: true});\n\n\t\tif (checkString('PS-Adobe-', {offset: 2}) &&\n\t\t\tcheckString(' EPSF-', {offset: 14})) {\n\t\t\treturn {\n\t\t\t\text: 'eps',\n\t\t\t\tmime: 'application/eps'\n\t\t\t};\n\t\t}\n\n\t\treturn {\n\t\t\text: 'ps',\n\t\t\tmime: 'application/postscript'\n\t\t};\n\t}\n\n\tif (\n\t\tcheck([0x1F, 0xA0]) ||\n\t\tcheck([0x1F, 0x9D])\n\t) {\n\t\treturn {\n\t\t\text: 'Z',\n\t\t\tmime: 'application/x-compress'\n\t\t};\n\t}\n\n\t// -- 3-byte signatures --\n\n\tif (check([0xFF, 0xD8, 0xFF])) {\n\t\treturn {\n\t\t\text: 'jpg',\n\t\t\tmime: 'image/jpeg'\n\t\t};\n\t}\n\n\tif (check([0x49, 0x49, 0xBC])) {\n\t\treturn {\n\t\t\text: 'jxr',\n\t\t\tmime: 'image/vnd.ms-photo'\n\t\t};\n\t}\n\n\tif (check([0x1F, 0x8B, 0x8])) {\n\t\treturn {\n\t\t\text: 'gz',\n\t\t\tmime: 'application/gzip'\n\t\t};\n\t}\n\n\tif (check([0x42, 0x5A, 0x68])) {\n\t\treturn {\n\t\t\text: 'bz2',\n\t\t\tmime: 'application/x-bzip2'\n\t\t};\n\t}\n\n\tif (checkString('ID3')) {\n\t\tawait tokenizer.ignore(6); // Skip ID3 header until the header size\n\t\tconst id3HeaderLen = await tokenizer.readToken(uint32SyncSafeToken);\n\t\tif (tokenizer.position + id3HeaderLen > tokenizer.fileInfo.size) {\n\t\t\t// Guess file type based on ID3 header for backward compatibility\n\t\t\treturn {\n\t\t\t\text: 'mp3',\n\t\t\t\tmime: 'audio/mpeg'\n\t\t\t};\n\t\t}\n\n\t\tawait tokenizer.ignore(id3HeaderLen);\n\t\treturn fromTokenizer(tokenizer); // Skip ID3 header, recursion\n\t}\n\n\t// Musepack, SV7\n\tif (checkString('MP+')) {\n\t\treturn {\n\t\t\text: 'mpc',\n\t\t\tmime: 'audio/x-musepack'\n\t\t};\n\t}\n\n\tif (\n\t\t(buffer[0] === 0x43 || buffer[0] === 0x46) &&\n\t\tcheck([0x57, 0x53], {offset: 1})\n\t) {\n\t\treturn {\n\t\t\text: 'swf',\n\t\t\tmime: 'application/x-shockwave-flash'\n\t\t};\n\t}\n\n\t// -- 4-byte signatures --\n\n\tif (check([0x47, 0x49, 0x46])) {\n\t\treturn {\n\t\t\text: 'gif',\n\t\t\tmime: 'image/gif'\n\t\t};\n\t}\n\n\tif (checkString('FLIF')) {\n\t\treturn {\n\t\t\text: 'flif',\n\t\t\tmime: 'image/flif'\n\t\t};\n\t}\n\n\tif (checkString('8BPS')) {\n\t\treturn {\n\t\t\text: 'psd',\n\t\t\tmime: 'image/vnd.adobe.photoshop'\n\t\t};\n\t}\n\n\tif (checkString('WEBP', {offset: 8})) {\n\t\treturn {\n\t\t\text: 'webp',\n\t\t\tmime: 'image/webp'\n\t\t};\n\t}\n\n\t// Musepack, SV8\n\tif (checkString('MPCK')) {\n\t\treturn {\n\t\t\text: 'mpc',\n\t\t\tmime: 'audio/x-musepack'\n\t\t};\n\t}\n\n\tif (checkString('FORM')) {\n\t\treturn {\n\t\t\text: 'aif',\n\t\t\tmime: 'audio/aiff'\n\t\t};\n\t}\n\n\tif (checkString('icns', {offset: 0})) {\n\t\treturn {\n\t\t\text: 'icns',\n\t\t\tmime: 'image/icns'\n\t\t};\n\t}\n\n\t// Zip-based file formats\n\t// Need to be before the `zip` check\n\tif (check([0x50, 0x4B, 0x3, 0x4])) { // Local file header signature\n\t\ttry {\n\t\t\twhile (tokenizer.position + 30 < tokenizer.fileInfo.size) {\n\t\t\t\tawait tokenizer.readBuffer(buffer, {length: 30});\n\n\t\t\t\t// https://en.wikipedia.org/wiki/Zip_(file_format)#File_headers\n\t\t\t\tconst zipHeader = {\n\t\t\t\t\tcompressedSize: buffer.readUInt32LE(18),\n\t\t\t\t\tuncompressedSize: buffer.readUInt32LE(22),\n\t\t\t\t\tfilenameLength: buffer.readUInt16LE(26),\n\t\t\t\t\textraFieldLength: buffer.readUInt16LE(28)\n\t\t\t\t};\n\n\t\t\t\tzipHeader.filename = await tokenizer.readToken(new Token.StringType(zipHeader.filenameLength, 'utf-8'));\n\t\t\t\tawait tokenizer.ignore(zipHeader.extraFieldLength);\n\n\t\t\t\t// Assumes signed `.xpi` from addons.mozilla.org\n\t\t\t\tif (zipHeader.filename === 'META-INF/mozilla.rsa') {\n\t\t\t\t\treturn {\n\t\t\t\t\t\text: 'xpi',\n\t\t\t\t\t\tmime: 'application/x-xpinstall'\n\t\t\t\t\t};\n\t\t\t\t}\n\n\t\t\t\tif (zipHeader.filename.endsWith('.rels') || zipHeader.filename.endsWith('.xml')) {\n\t\t\t\t\tconst type = zipHeader.filename.split('/')[0];\n\t\t\t\t\tswitch (type) {\n\t\t\t\t\t\tcase '_rels':\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase 'word':\n\t\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t\text: 'docx',\n\t\t\t\t\t\t\t\tmime: 'application/vnd.openxmlformats-officedocument.wordprocessingml.document'\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\tcase 'ppt':\n\t\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t\text: 'pptx',\n\t\t\t\t\t\t\t\tmime: 'application/vnd.openxmlformats-officedocument.presentationml.presentation'\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\tcase 'xl':\n\t\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t\text: 'xlsx',\n\t\t\t\t\t\t\t\tmime: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tif (zipHeader.filename.startsWith('xl/')) {\n\t\t\t\t\treturn {\n\t\t\t\t\t\text: 'xlsx',\n\t\t\t\t\t\tmime: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'\n\t\t\t\t\t};\n\t\t\t\t}\n\n\t\t\t\t// The docx, xlsx and pptx file types extend the Office Open XML file format:\n\t\t\t\t// https://en.wikipedia.org/wiki/Office_Open_XML_file_formats\n\t\t\t\t// We look for:\n\t\t\t\t// - one entry named '[Content_Types].xml' or '_rels/.rels',\n\t\t\t\t// - one entry indicating specific type of file.\n\t\t\t\t// MS Office, OpenOffice and LibreOffice may put the parts in different order, so the check should not rely on it.\n\t\t\t\tif (zipHeader.filename === 'mimetype' && zipHeader.compressedSize === zipHeader.uncompressedSize) {\n\t\t\t\t\tconst mimeType = await tokenizer.readToken(new Token.StringType(zipHeader.compressedSize, 'utf-8'));\n\n\t\t\t\t\tswitch (mimeType) {\n\t\t\t\t\t\tcase 'application/epub+zip':\n\t\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t\text: 'epub',\n\t\t\t\t\t\t\t\tmime: 'application/epub+zip'\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\tcase 'application/vnd.oasis.opendocument.text':\n\t\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t\text: 'odt',\n\t\t\t\t\t\t\t\tmime: 'application/vnd.oasis.opendocument.text'\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\tcase 'application/vnd.oasis.opendocument.spreadsheet':\n\t\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t\text: 'ods',\n\t\t\t\t\t\t\t\tmime: 'application/vnd.oasis.opendocument.spreadsheet'\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\tcase 'application/vnd.oasis.opendocument.presentation':\n\t\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t\text: 'odp',\n\t\t\t\t\t\t\t\tmime: 'application/vnd.oasis.opendocument.presentation'\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\tdefault:\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Try to find next header manually when current one is corrupted\n\t\t\t\tif (zipHeader.compressedSize === 0) {\n\t\t\t\t\tlet nextHeaderIndex = -1;\n\n\t\t\t\t\twhile (nextHeaderIndex < 0 && (tokenizer.position < tokenizer.fileInfo.size)) {\n\t\t\t\t\t\tawait tokenizer.peekBuffer(buffer, {mayBeLess: true});\n\n\t\t\t\t\t\tnextHeaderIndex = buffer.indexOf('504B0304', 0, 'hex');\n\t\t\t\t\t\t// Move position to the next header if found, skip the whole buffer otherwise\n\t\t\t\t\t\tawait tokenizer.ignore(nextHeaderIndex >= 0 ? nextHeaderIndex : buffer.length);\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tawait tokenizer.ignore(zipHeader.compressedSize);\n\t\t\t\t}\n\t\t\t}\n\t\t} catch (error) {\n\t\t\tif (!(error instanceof strtok3.EndOfStreamError)) {\n\t\t\t\tthrow error;\n\t\t\t}\n\t\t}\n\n\t\treturn {\n\t\t\text: 'zip',\n\t\t\tmime: 'application/zip'\n\t\t};\n\t}\n\n\tif (checkString('OggS')) {\n\t\t// This is an OGG container\n\t\tawait tokenizer.ignore(28);\n\t\tconst type = Buffer.alloc(8);\n\t\tawait tokenizer.readBuffer(type);\n\n\t\t// Needs to be before `ogg` check\n\t\tif (_check(type, [0x4F, 0x70, 0x75, 0x73, 0x48, 0x65, 0x61, 0x64])) {\n\t\t\treturn {\n\t\t\t\text: 'opus',\n\t\t\t\tmime: 'audio/opus'\n\t\t\t};\n\t\t}\n\n\t\t// If ' theora' in header.\n\t\tif (_check(type, [0x80, 0x74, 0x68, 0x65, 0x6F, 0x72, 0x61])) {\n\t\t\treturn {\n\t\t\t\text: 'ogv',\n\t\t\t\tmime: 'video/ogg'\n\t\t\t};\n\t\t}\n\n\t\t// If '\\x01video' in header.\n\t\tif (_check(type, [0x01, 0x76, 0x69, 0x64, 0x65, 0x6F, 0x00])) {\n\t\t\treturn {\n\t\t\t\text: 'ogm',\n\t\t\t\tmime: 'video/ogg'\n\t\t\t};\n\t\t}\n\n\t\t// If ' FLAC' in header https://xiph.org/flac/faq.html\n\t\tif (_check(type, [0x7F, 0x46, 0x4C, 0x41, 0x43])) {\n\t\t\treturn {\n\t\t\t\text: 'oga',\n\t\t\t\tmime: 'audio/ogg'\n\t\t\t};\n\t\t}\n\n\t\t// 'Speex ' in header https://en.wikipedia.org/wiki/Speex\n\t\tif (_check(type, [0x53, 0x70, 0x65, 0x65, 0x78, 0x20, 0x20])) {\n\t\t\treturn {\n\t\t\t\text: 'spx',\n\t\t\t\tmime: 'audio/ogg'\n\t\t\t};\n\t\t}\n\n\t\t// If '\\x01vorbis' in header\n\t\tif (_check(type, [0x01, 0x76, 0x6F, 0x72, 0x62, 0x69, 0x73])) {\n\t\t\treturn {\n\t\t\t\text: 'ogg',\n\t\t\t\tmime: 'audio/ogg'\n\t\t\t};\n\t\t}\n\n\t\t// Default OGG container https://www.iana.org/assignments/media-types/application/ogg\n\t\treturn {\n\t\t\text: 'ogx',\n\t\t\tmime: 'application/ogg'\n\t\t};\n\t}\n\n\tif (\n\t\tcheck([0x50, 0x4B]) &&\n\t\t(buffer[2] === 0x3 || buffer[2] === 0x5 || buffer[2] === 0x7) &&\n\t\t(buffer[3] === 0x4 || buffer[3] === 0x6 || buffer[3] === 0x8)\n\t) {\n\t\treturn {\n\t\t\text: 'zip',\n\t\t\tmime: 'application/zip'\n\t\t};\n\t}\n\n\t//\n\n\t// File Type Box (https://en.wikipedia.org/wiki/ISO_base_media_file_format)\n\t// It's not required to be first, but it's recommended to be. Almost all ISO base media files start with `ftyp` box.\n\t// `ftyp` box must contain a brand major identifier, which must consist of ISO 8859-1 printable characters.\n\t// Here we check for 8859-1 printable characters (for simplicity, it's a mask which also catches one non-printable character).\n\tif (\n\t\tcheckString('ftyp', {offset: 4}) &&\n\t\t(buffer[8] & 0x60) !== 0x00 // Brand major, first character ASCII?\n\t) {\n\t\t// They all can have MIME `video/mp4` except `application/mp4` special-case which is hard to detect.\n\t\t// For some cases, we're specific, everything else falls to `video/mp4` with `mp4` extension.\n\t\tconst brandMajor = buffer.toString('binary', 8, 12).replace('\\0', ' ').trim();\n\t\tswitch (brandMajor) {\n\t\t\tcase 'avif':\n\t\t\t\treturn {ext: 'avif', mime: 'image/avif'};\n\t\t\tcase 'mif1':\n\t\t\t\treturn {ext: 'heic', mime: 'image/heif'};\n\t\t\tcase 'msf1':\n\t\t\t\treturn {ext: 'heic', mime: 'image/heif-sequence'};\n\t\t\tcase 'heic':\n\t\t\tcase 'heix':\n\t\t\t\treturn {ext: 'heic', mime: 'image/heic'};\n\t\t\tcase 'hevc':\n\t\t\tcase 'hevx':\n\t\t\t\treturn {ext: 'heic', mime: 'image/heic-sequence'};\n\t\t\tcase 'qt':\n\t\t\t\treturn {ext: 'mov', mime: 'video/quicktime'};\n\t\t\tcase 'M4V':\n\t\t\tcase 'M4VH':\n\t\t\tcase 'M4VP':\n\t\t\t\treturn {ext: 'm4v', mime: 'video/x-m4v'};\n\t\t\tcase 'M4P':\n\t\t\t\treturn {ext: 'm4p', mime: 'video/mp4'};\n\t\t\tcase 'M4B':\n\t\t\t\treturn {ext: 'm4b', mime: 'audio/mp4'};\n\t\t\tcase 'M4A':\n\t\t\t\treturn {ext: 'm4a', mime: 'audio/x-m4a'};\n\t\t\tcase 'F4V':\n\t\t\t\treturn {ext: 'f4v', mime: 'video/mp4'};\n\t\t\tcase 'F4P':\n\t\t\t\treturn {ext: 'f4p', mime: 'video/mp4'};\n\t\t\tcase 'F4A':\n\t\t\t\treturn {ext: 'f4a', mime: 'audio/mp4'};\n\t\t\tcase 'F4B':\n\t\t\t\treturn {ext: 'f4b', mime: 'audio/mp4'};\n\t\t\tcase 'crx':\n\t\t\t\treturn {ext: 'cr3', mime: 'image/x-canon-cr3'};\n\t\t\tdefault:\n\t\t\t\tif (brandMajor.startsWith('3g')) {\n\t\t\t\t\tif (brandMajor.startsWith('3g2')) {\n\t\t\t\t\t\treturn {ext: '3g2', mime: 'video/3gpp2'};\n\t\t\t\t\t}\n\n\t\t\t\t\treturn {ext: '3gp', mime: 'video/3gpp'};\n\t\t\t\t}\n\n\t\t\t\treturn {ext: 'mp4', mime: 'video/mp4'};\n\t\t}\n\t}\n\n\tif (checkString('MThd')) {\n\t\treturn {\n\t\t\text: 'mid',\n\t\t\tmime: 'audio/midi'\n\t\t};\n\t}\n\n\tif (\n\t\tcheckString('wOFF') &&\n\t\t(\n\t\t\tcheck([0x00, 0x01, 0x00, 0x00], {offset: 4}) ||\n\t\t\tcheckString('OTTO', {offset: 4})\n\t\t)\n\t) {\n\t\treturn {\n\t\t\text: 'woff',\n\t\t\tmime: 'font/woff'\n\t\t};\n\t}\n\n\tif (\n\t\tcheckString('wOF2') &&\n\t\t(\n\t\t\tcheck([0x00, 0x01, 0x00, 0x00], {offset: 4}) ||\n\t\t\tcheckString('OTTO', {offset: 4})\n\t\t)\n\t) {\n\t\treturn {\n\t\t\text: 'woff2',\n\t\t\tmime: 'font/woff2'\n\t\t};\n\t}\n\n\tif (check([0xD4, 0xC3, 0xB2, 0xA1]) || check([0xA1, 0xB2, 0xC3, 0xD4])) {\n\t\treturn {\n\t\t\text: 'pcap',\n\t\t\tmime: 'application/vnd.tcpdump.pcap'\n\t\t};\n\t}\n\n\t// Sony DSD Stream File (DSF)\n\tif (checkString('DSD ')) {\n\t\treturn {\n\t\t\text: 'dsf',\n\t\t\tmime: 'audio/x-dsf' // Non-standard\n\t\t};\n\t}\n\n\tif (checkString('LZIP')) {\n\t\treturn {\n\t\t\text: 'lz',\n\t\t\tmime: 'application/x-lzip'\n\t\t};\n\t}\n\n\tif (checkString('fLaC')) {\n\t\treturn {\n\t\t\text: 'flac',\n\t\t\tmime: 'audio/x-flac'\n\t\t};\n\t}\n\n\tif (check([0x42, 0x50, 0x47, 0xFB])) {\n\t\treturn {\n\t\t\text: 'bpg',\n\t\t\tmime: 'image/bpg'\n\t\t};\n\t}\n\n\tif (checkString('wvpk')) {\n\t\treturn {\n\t\t\text: 'wv',\n\t\t\tmime: 'audio/wavpack'\n\t\t};\n\t}\n\n\tif (checkString('%PDF')) {\n\t\t// Check if this is an Adobe Illustrator file\n\t\tconst isAiFile = await checkSequence('Adobe Illustrator', 1350);\n\t\tif (isAiFile) {\n\t\t\treturn {\n\t\t\t\text: 'ai',\n\t\t\t\tmime: 'application/postscript'\n\t\t\t};\n\t\t}\n\n\t\t// Assume this is just a normal PDF\n\t\treturn {\n\t\t\text: 'pdf',\n\t\t\tmime: 'application/pdf'\n\t\t};\n\t}\n\n\tif (check([0x00, 0x61, 0x73, 0x6D])) {\n\t\treturn {\n\t\t\text: 'wasm',\n\t\t\tmime: 'application/wasm'\n\t\t};\n\t}\n\n\t// TIFF, little-endian type\n\tif (check([0x49, 0x49, 0x2A, 0x0])) {\n\t\tif (checkString('CR', {offset: 8})) {\n\t\t\treturn {\n\t\t\t\text: 'cr2',\n\t\t\t\tmime: 'image/x-canon-cr2'\n\t\t\t};\n\t\t}\n\n\t\tif (check([0x1C, 0x00, 0xFE, 0x00], {offset: 8}) || check([0x1F, 0x00, 0x0B, 0x00], {offset: 8})) {\n\t\t\treturn {\n\t\t\t\text: 'nef',\n\t\t\t\tmime: 'image/x-nikon-nef'\n\t\t\t};\n\t\t}\n\n\t\tif (\n\t\t\tcheck([0x08, 0x00, 0x00, 0x00], {offset: 4}) &&\n\t\t\t(check([0x2D, 0x00, 0xFE, 0x00], {offset: 8}) ||\n\t\t\t\tcheck([0x27, 0x00, 0xFE, 0x00], {offset: 8}))\n\t\t) {\n\t\t\treturn {\n\t\t\t\text: 'dng',\n\t\t\t\tmime: 'image/x-adobe-dng'\n\t\t\t};\n\t\t}\n\n\t\tbuffer = Buffer.alloc(24);\n\t\tawait tokenizer.peekBuffer(buffer);\n\t\tif (\n\t\t\t(check([0x10, 0xFB, 0x86, 0x01], {offset: 4}) || check([0x08, 0x00, 0x00, 0x00], {offset: 4})) &&\n\t\t\t// This pattern differentiates ARW from other TIFF-ish file types:\n\t\t\tcheck([0x00, 0xFE, 0x00, 0x04, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x03, 0x01], {offset: 9})\n\t\t) {\n\t\t\treturn {\n\t\t\t\text: 'arw',\n\t\t\t\tmime: 'image/x-sony-arw'\n\t\t\t};\n\t\t}\n\n\t\treturn {\n\t\t\text: 'tif',\n\t\t\tmime: 'image/tiff'\n\t\t};\n\t}\n\n\t// TIFF, big-endian type\n\tif (check([0x4D, 0x4D, 0x0, 0x2A])) {\n\t\treturn {\n\t\t\text: 'tif',\n\t\t\tmime: 'image/tiff'\n\t\t};\n\t}\n\n\tif (checkString('MAC ')) {\n\t\treturn {\n\t\t\text: 'ape',\n\t\t\tmime: 'audio/ape'\n\t\t};\n\t}\n\n\t// https://github.com/threatstack/libmagic/blob/master/magic/Magdir/matroska\n\tif (check([0x1A, 0x45, 0xDF, 0xA3])) { // Root element: EBML\n\t\tasync function readField() {\n\t\t\tconst msb = await tokenizer.peekNumber(Token.UINT8);\n\t\t\tlet mask = 0x80;\n\t\t\tlet ic = 0; // 0 = A, 1 = B, 2 = C, 3 = D\n\n\t\t\twhile ((msb & mask) === 0) {\n\t\t\t\t++ic;\n\t\t\t\tmask >>= 1;\n\t\t\t}\n\n\t\t\tconst id = Buffer.alloc(ic + 1);\n\t\t\tawait tokenizer.readBuffer(id);\n\t\t\treturn id;\n\t\t}\n\n\t\tasync function readElement() {\n\t\t\tconst id = await readField();\n\t\t\tconst lenField = await readField();\n\t\t\tlenField[0] ^= 0x80 >> (lenField.length - 1);\n\t\t\tconst nrLen = Math.min(6, lenField.length); // JavaScript can max read 6 bytes integer\n\t\t\treturn {\n\t\t\t\tid: id.readUIntBE(0, id.length),\n\t\t\t\tlen: lenField.readUIntBE(lenField.length - nrLen, nrLen)\n\t\t\t};\n\t\t}\n\n\t\tasync function readChildren(level, children) {\n\t\t\twhile (children > 0) {\n\t\t\t\tconst e = await readElement();\n\t\t\t\tif (e.id === 0x4282) {\n\t\t\t\t\treturn tokenizer.readToken(new Token.StringType(e.len, 'utf-8')); // Return DocType\n\t\t\t\t}\n\n\t\t\t\tawait tokenizer.ignore(e.len); // ignore payload\n\t\t\t\t--children;\n\t\t\t}\n\t\t}\n\n\t\tconst re = await readElement();\n\t\tconst docType = await readChildren(1, re.len);\n\n\t\tswitch (docType) {\n\t\t\tcase 'webm':\n\t\t\t\treturn {\n\t\t\t\t\text: 'webm',\n\t\t\t\t\tmime: 'video/webm'\n\t\t\t\t};\n\n\t\t\tcase 'matroska':\n\t\t\t\treturn {\n\t\t\t\t\text: 'mkv',\n\t\t\t\t\tmime: 'video/x-matroska'\n\t\t\t\t};\n\n\t\t\tdefault:\n\t\t\t\treturn;\n\t\t}\n\t}\n\n\t// RIFF file format which might be AVI, WAV, QCP, etc\n\tif (check([0x52, 0x49, 0x46, 0x46])) {\n\t\tif (check([0x41, 0x56, 0x49], {offset: 8})) {\n\t\t\treturn {\n\t\t\t\text: 'avi',\n\t\t\t\tmime: 'video/vnd.avi'\n\t\t\t};\n\t\t}\n\n\t\tif (check([0x57, 0x41, 0x56, 0x45], {offset: 8})) {\n\t\t\treturn {\n\t\t\t\text: 'wav',\n\t\t\t\tmime: 'audio/vnd.wave'\n\t\t\t};\n\t\t}\n\n\t\t// QLCM, QCP file\n\t\tif (check([0x51, 0x4C, 0x43, 0x4D], {offset: 8})) {\n\t\t\treturn {\n\t\t\t\text: 'qcp',\n\t\t\t\tmime: 'audio/qcelp'\n\t\t\t};\n\t\t}\n\t}\n\n\tif (checkString('SQLi')) {\n\t\treturn {\n\t\t\text: 'sqlite',\n\t\t\tmime: 'application/x-sqlite3'\n\t\t};\n\t}\n\n\tif (check([0x4E, 0x45, 0x53, 0x1A])) {\n\t\treturn {\n\t\t\text: 'nes',\n\t\t\tmime: 'application/x-nintendo-nes-rom'\n\t\t};\n\t}\n\n\tif (checkString('Cr24')) {\n\t\treturn {\n\t\t\text: 'crx',\n\t\t\tmime: 'application/x-google-chrome-extension'\n\t\t};\n\t}\n\n\tif (\n\t\tcheckString('MSCF') ||\n\t\tcheckString('ISc(')\n\t) {\n\t\treturn {\n\t\t\text: 'cab',\n\t\t\tmime: 'application/vnd.ms-cab-compressed'\n\t\t};\n\t}\n\n\tif (check([0xED, 0xAB, 0xEE, 0xDB])) {\n\t\treturn {\n\t\t\text: 'rpm',\n\t\t\tmime: 'application/x-rpm'\n\t\t};\n\t}\n\n\tif (check([0xC5, 0xD0, 0xD3, 0xC6])) {\n\t\treturn {\n\t\t\text: 'eps',\n\t\t\tmime: 'application/eps'\n\t\t};\n\t}\n\n\t// -- 5-byte signatures --\n\n\tif (check([0x4F, 0x54, 0x54, 0x4F, 0x00])) {\n\t\treturn {\n\t\t\text: 'otf',\n\t\t\tmime: 'font/otf'\n\t\t};\n\t}\n\n\tif (checkString('#!AMR')) {\n\t\treturn {\n\t\t\text: 'amr',\n\t\t\tmime: 'audio/amr'\n\t\t};\n\t}\n\n\tif (checkString('{\\\\rtf')) {\n\t\treturn {\n\t\t\text: 'rtf',\n\t\t\tmime: 'application/rtf'\n\t\t};\n\t}\n\n\tif (check([0x46, 0x4C, 0x56, 0x01])) {\n\t\treturn {\n\t\t\text: 'flv',\n\t\t\tmime: 'video/x-flv'\n\t\t};\n\t}\n\n\tif (checkString('IMPM')) {\n\t\treturn {\n\t\t\text: 'it',\n\t\t\tmime: 'audio/x-it'\n\t\t};\n\t}\n\n\tif (\n\t\tcheckString('-lh0-', {offset: 2}) ||\n\t\tcheckString('-lh1-', {offset: 2}) ||\n\t\tcheckString('-lh2-', {offset: 2}) ||\n\t\tcheckString('-lh3-', {offset: 2}) ||\n\t\tcheckString('-lh4-', {offset: 2}) ||\n\t\tcheckString('-lh5-', {offset: 2}) ||\n\t\tcheckString('-lh6-', {offset: 2}) ||\n\t\tcheckString('-lh7-', {offset: 2}) ||\n\t\tcheckString('-lzs-', {offset: 2}) ||\n\t\tcheckString('-lz4-', {offset: 2}) ||\n\t\tcheckString('-lz5-', {offset: 2}) ||\n\t\tcheckString('-lhd-', {offset: 2})\n\t) {\n\t\treturn {\n\t\t\text: 'lzh',\n\t\t\tmime: 'application/x-lzh-compressed'\n\t\t};\n\t}\n\n\t// MPEG program stream (PS or MPEG-PS)\n\tif (check([0x00, 0x00, 0x01, 0xBA])) {\n\t\t// MPEG-PS, MPEG-1 Part 1\n\t\tif (check([0x21], {offset: 4, mask: [0xF1]})) {\n\t\t\treturn {\n\t\t\t\text: 'mpg', // May also be .ps, .mpeg\n\t\t\t\tmime: 'video/MP1S'\n\t\t\t};\n\t\t}\n\n\t\t// MPEG-PS, MPEG-2 Part 1\n\t\tif (check([0x44], {offset: 4, mask: [0xC4]})) {\n\t\t\treturn {\n\t\t\t\text: 'mpg', // May also be .mpg, .m2p, .vob or .sub\n\t\t\t\tmime: 'video/MP2P'\n\t\t\t};\n\t\t}\n\t}\n\n\t// -- 6-byte signatures --\n\n\tif (check([0xFD, 0x37, 0x7A, 0x58, 0x5A, 0x00])) {\n\t\treturn {\n\t\t\text: 'xz',\n\t\t\tmime: 'application/x-xz'\n\t\t};\n\t}\n\n\tif (checkString('')) {\n\t\tawait tokenizer.ignore(8);\n\t\tconst str = await tokenizer.readToken(new Token.StringType(13, 'ascii'));\n\t\tif (str === 'debian-binary') {\n\t\t\treturn {\n\t\t\t\text: 'deb',\n\t\t\t\tmime: 'application/x-deb'\n\t\t\t};\n\t\t}\n\n\t\treturn {\n\t\t\text: 'ar',\n\t\t\tmime: 'application/x-unix-archive'\n\t\t};\n\t}\n\n\t// -- 8-byte signatures --\n\n\tif (check([0x89, 0x50, 0x4E, 0x47, 0x0D, 0x0A, 0x1A, 0x0A])) {\n\t\t// APNG format (https://wiki.mozilla.org/APNG_Specification)\n\t\t// 1. Find the first IDAT (image data) chunk (49 44 41 54)\n\t\t// 2. Check if there is an \"acTL\" chunk before the IDAT one (61 63 54 4C)\n\n\t\t// Offset calculated as follows:\n\t\t// - 8 bytes: PNG signature\n\t\t// - 4 (length) + 4 (chunk type) + 13 (chunk data) + 4 (CRC): IHDR chunk\n\n\t\tawait tokenizer.ignore(8); // ignore PNG signature\n\n\t\tasync function readChunkHeader() {\n\t\t\treturn {\n\t\t\t\tlength: await tokenizer.readToken(Token.INT32_BE),\n\t\t\t\ttype: await tokenizer.readToken(new Token.StringType(4, 'binary'))\n\t\t\t};\n\t\t}\n\n\t\tdo {\n\t\t\tconst chunk = await readChunkHeader();\n\t\t\tswitch (chunk.type) {\n\t\t\t\tcase 'IDAT':\n\t\t\t\t\treturn {\n\t\t\t\t\t\text: 'png',\n\t\t\t\t\t\tmime: 'image/png'\n\t\t\t\t\t};\n\t\t\t\tcase 'acTL':\n\t\t\t\t\treturn {\n\t\t\t\t\t\text: 'apng',\n\t\t\t\t\t\tmime: 'image/apng'\n\t\t\t\t\t};\n\t\t\t\tdefault:\n\t\t\t\t\tawait tokenizer.ignore(chunk.length + 4); // Ignore chunk-data + CRC\n\t\t\t}\n\t\t} while (tokenizer.position < tokenizer.fileInfo.size);\n\n\t\treturn {\n\t\t\text: 'png',\n\t\t\tmime: 'image/png'\n\t\t};\n\t}\n\n\tif (check([0x41, 0x52, 0x52, 0x4F, 0x57, 0x31, 0x00, 0x00])) {\n\t\treturn {\n\t\t\text: 'arrow',\n\t\t\tmime: 'application/x-apache-arrow'\n\t\t};\n\t}\n\n\tif (check([0x67, 0x6C, 0x54, 0x46, 0x02, 0x00, 0x00, 0x00])) {\n\t\treturn {\n\t\t\text: 'glb',\n\t\t\tmime: 'model/gltf-binary'\n\t\t};\n\t}\n\n\t// `mov` format variants\n\tif (\n\t\tcheck([0x66, 0x72, 0x65, 0x65], {offset: 4}) || // `free`\n\t\tcheck([0x6D, 0x64, 0x61, 0x74], {offset: 4}) || // `mdat` MJPEG\n\t\tcheck([0x6D, 0x6F, 0x6F, 0x76], {offset: 4}) || // `moov`\n\t\tcheck([0x77, 0x69, 0x64, 0x65], {offset: 4}) // `wide`\n\t) {\n\t\treturn {\n\t\t\text: 'mov',\n\t\t\tmime: 'video/quicktime'\n\t\t};\n\t}\n\n\t// -- 9-byte signatures --\n\n\tif (check([0x49, 0x49, 0x52, 0x4F, 0x08, 0x00, 0x00, 0x00, 0x18])) {\n\t\treturn {\n\t\t\text: 'orf',\n\t\t\tmime: 'image/x-olympus-orf'\n\t\t};\n\t}\n\n\t// -- 12-byte signatures --\n\n\tif (check([0x49, 0x49, 0x55, 0x00, 0x18, 0x00, 0x00, 0x00, 0x88, 0xE7, 0x74, 0xD8])) {\n\t\treturn {\n\t\t\text: 'rw2',\n\t\t\tmime: 'image/x-panasonic-rw2'\n\t\t};\n\t}\n\n\t// ASF_Header_Object first 80 bytes\n\tif (check([0x30, 0x26, 0xB2, 0x75, 0x8E, 0x66, 0xCF, 0x11, 0xA6, 0xD9])) {\n\t\tasync function readHeader() {\n\t\t\tconst guid = Buffer.alloc(16);\n\t\t\tawait tokenizer.readBuffer(guid);\n\t\t\treturn {\n\t\t\t\tid: guid,\n\t\t\t\tsize: await tokenizer.readToken(Token.UINT64_LE)\n\t\t\t};\n\t\t}\n\n\t\tawait tokenizer.ignore(30);\n\t\t// Search for header should be in first 1KB of file.\n\t\twhile (tokenizer.position + 24 < tokenizer.fileInfo.size) {\n\t\t\tconst header = await readHeader();\n\t\t\tlet payload = header.size - 24;\n\t\t\tif (_check(header.id, [0x91, 0x07, 0xDC, 0xB7, 0xB7, 0xA9, 0xCF, 0x11, 0x8E, 0xE6, 0x00, 0xC0, 0x0C, 0x20, 0x53, 0x65])) {\n\t\t\t\t// Sync on Stream-Properties-Object (B7DC0791-A9B7-11CF-8EE6-00C00C205365)\n\t\t\t\tconst typeId = Buffer.alloc(16);\n\t\t\t\tpayload -= await tokenizer.readBuffer(typeId);\n\n\t\t\t\tif (_check(typeId, [0x40, 0x9E, 0x69, 0xF8, 0x4D, 0x5B, 0xCF, 0x11, 0xA8, 0xFD, 0x00, 0x80, 0x5F, 0x5C, 0x44, 0x2B])) {\n\t\t\t\t\t// Found audio:\n\t\t\t\t\treturn {\n\t\t\t\t\t\text: 'wma',\n\t\t\t\t\t\tmime: 'audio/x-ms-wma'\n\t\t\t\t\t};\n\t\t\t\t}\n\n\t\t\t\tif (_check(typeId, [0xC0, 0xEF, 0x19, 0xBC, 0x4D, 0x5B, 0xCF, 0x11, 0xA8, 0xFD, 0x00, 0x80, 0x5F, 0x5C, 0x44, 0x2B])) {\n\t\t\t\t\t// Found video:\n\t\t\t\t\treturn {\n\t\t\t\t\t\text: 'wmv',\n\t\t\t\t\t\tmime: 'video/x-ms-asf'\n\t\t\t\t\t};\n\t\t\t\t}\n\n\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\tawait tokenizer.ignore(payload);\n\t\t}\n\n\t\t// Default to ASF generic extension\n\t\treturn {\n\t\t\text: 'asf',\n\t\t\tmime: 'application/vnd.ms-asf'\n\t\t};\n\t}\n\n\tif (check([0xAB, 0x4B, 0x54, 0x58, 0x20, 0x31, 0x31, 0xBB, 0x0D, 0x0A, 0x1A, 0x0A])) {\n\t\treturn {\n\t\t\text: 'ktx',\n\t\t\tmime: 'image/ktx'\n\t\t};\n\t}\n\n\tif ((check([0x7E, 0x10, 0x04]) || check([0x7E, 0x18, 0x04])) && check([0x30, 0x4D, 0x49, 0x45], {offset: 4})) {\n\t\treturn {\n\t\t\text: 'mie',\n\t\t\tmime: 'application/x-mie'\n\t\t};\n\t}\n\n\tif (check([0x27, 0x0A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00], {offset: 2})) {\n\t\treturn {\n\t\t\text: 'shp',\n\t\t\tmime: 'application/x-esri-shape'\n\t\t};\n\t}\n\n\tif (check([0x00, 0x00, 0x00, 0x0C, 0x6A, 0x50, 0x20, 0x20, 0x0D, 0x0A, 0x87, 0x0A])) {\n\t\t// JPEG-2000 family\n\n\t\tawait tokenizer.ignore(20);\n\t\tconst type = await tokenizer.readToken(new Token.StringType(4, 'ascii'));\n\t\tswitch (type) {\n\t\t\tcase 'jp2 ':\n\t\t\t\treturn {\n\t\t\t\t\text: 'jp2',\n\t\t\t\t\tmime: 'image/jp2'\n\t\t\t\t};\n\t\t\tcase 'jpx ':\n\t\t\t\treturn {\n\t\t\t\t\text: 'jpx',\n\t\t\t\t\tmime: 'image/jpx'\n\t\t\t\t};\n\t\t\tcase 'jpm ':\n\t\t\t\treturn {\n\t\t\t\t\text: 'jpm',\n\t\t\t\t\tmime: 'image/jpm'\n\t\t\t\t};\n\t\t\tcase 'mjp2':\n\t\t\t\treturn {\n\t\t\t\t\text: 'mj2',\n\t\t\t\t\tmime: 'image/mj2'\n\t\t\t\t};\n\t\t\tdefault:\n\t\t\t\treturn;\n\t\t}\n\t}\n\n\t// -- Unsafe signatures --\n\n\tif (\n\t\tcheck([0x0, 0x0, 0x1, 0xBA]) ||\n\t\tcheck([0x0, 0x0, 0x1, 0xB3])\n\t) {\n\t\treturn {\n\t\t\text: 'mpg',\n\t\t\tmime: 'video/mpeg'\n\t\t};\n\t}\n\n\tif (check([0x00, 0x01, 0x00, 0x00, 0x00])) {\n\t\treturn {\n\t\t\text: 'ttf',\n\t\t\tmime: 'font/ttf'\n\t\t};\n\t}\n\n\tif (check([0x00, 0x00, 0x01, 0x00])) {\n\t\treturn {\n\t\t\text: 'ico',\n\t\t\tmime: 'image/x-icon'\n\t\t};\n\t}\n\n\tif (check([0x00, 0x00, 0x02, 0x00])) {\n\t\treturn {\n\t\t\text: 'cur',\n\t\t\tmime: 'image/x-icon'\n\t\t};\n\t}\n\n\t// Increase sample size from 12 to 256.\n\tawait tokenizer.peekBuffer(buffer, {length: Math.min(256, tokenizer.fileInfo.size), mayBeLess: true});\n\n\t// `raf` is here just to keep all the raw image detectors together.\n\tif (checkString('FUJIFILMCCD-RAW')) {\n\t\treturn {\n\t\t\text: 'raf',\n\t\t\tmime: 'image/x-fujifilm-raf'\n\t\t};\n\t}\n\n\tif (checkString('Extended Module:')) {\n\t\treturn {\n\t\t\text: 'xm',\n\t\t\tmime: 'audio/x-xm'\n\t\t};\n\t}\n\n\tif (checkString('Creative Voice File')) {\n\t\treturn {\n\t\t\text: 'voc',\n\t\t\tmime: 'audio/x-voc'\n\t\t};\n\t}\n\n\tif (check([0x04, 0x00, 0x00, 0x00]) && buffer.length >= 16) { // Rough & quick check Pickle/ASAR\n\t\tconst jsonSize = buffer.readUInt32LE(12);\n\t\tif (jsonSize > 12 && jsonSize < 240 && buffer.length >= jsonSize + 16) {\n\t\t\ttry {\n\t\t\t\tconst header = buffer.slice(16, jsonSize + 16).toString();\n\t\t\t\tconst json = JSON.parse(header);\n\t\t\t\t// Check if Pickle is ASAR\n\t\t\t\tif (json.files) { // Final check, assuring Pickle/ASAR format\n\t\t\t\t\treturn {\n\t\t\t\t\t\text: 'asar',\n\t\t\t\t\t\tmime: 'application/x-asar'\n\t\t\t\t\t};\n\t\t\t\t}\n\t\t\t} catch (_) {\n\t\t\t}\n\t\t}\n\t}\n\n\tif (check([0xD0, 0xCF, 0x11, 0xE0, 0xA1, 0xB1, 0x1A, 0xE1, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3E])) {\n\t\treturn {\n\t\t\text: 'msi',\n\t\t\tmime: 'application/x-msi'\n\t\t};\n\t}\n\n\tif (check([0x06, 0x0E, 0x2B, 0x34, 0x02, 0x05, 0x01, 0x01, 0x0D, 0x01, 0x02, 0x01, 0x01, 0x02])) {\n\t\treturn {\n\t\t\text: 'mxf',\n\t\t\tmime: 'application/mxf'\n\t\t};\n\t}\n\n\tif (checkString('SCRM', {offset: 44})) {\n\t\treturn {\n\t\t\text: 's3m',\n\t\t\tmime: 'audio/x-s3m'\n\t\t};\n\t}\n\n\tif (check([0x47], {offset: 4}) && (check([0x47], {offset: 192}) || check([0x47], {offset: 196}))) {\n\t\treturn {\n\t\t\text: 'mts',\n\t\t\tmime: 'video/mp2t'\n\t\t};\n\t}\n\n\tif (check([0x42, 0x4F, 0x4F, 0x4B, 0x4D, 0x4F, 0x42, 0x49], {offset: 60})) {\n\t\treturn {\n\t\t\text: 'mobi',\n\t\t\tmime: 'application/x-mobipocket-ebook'\n\t\t};\n\t}\n\n\tif (check([0x44, 0x49, 0x43, 0x4D], {offset: 128})) {\n\t\treturn {\n\t\t\text: 'dcm',\n\t\t\tmime: 'application/dicom'\n\t\t};\n\t}\n\n\tif (check([0x4C, 0x00, 0x00, 0x00, 0x01, 0x14, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46])) {\n\t\treturn {\n\t\t\text: 'lnk',\n\t\t\tmime: 'application/x.ms.shortcut' // Invented by us\n\t\t};\n\t}\n\n\tif (check([0x62, 0x6F, 0x6F, 0x6B, 0x00, 0x00, 0x00, 0x00, 0x6D, 0x61, 0x72, 0x6B, 0x00, 0x00, 0x00, 0x00])) {\n\t\treturn {\n\t\t\text: 'alias',\n\t\t\tmime: 'application/x.apple.alias' // Invented by us\n\t\t};\n\t}\n\n\tif (\n\t\tcheck([0x4C, 0x50], {offset: 34}) &&\n\t\t(\n\t\t\tcheck([0x00, 0x00, 0x01], {offset: 8}) ||\n\t\t\tcheck([0x01, 0x00, 0x02], {offset: 8}) ||\n\t\t\tcheck([0x02, 0x00, 0x02], {offset: 8})\n\t\t)\n\t) {\n\t\treturn {\n\t\t\text: 'eot',\n\t\t\tmime: 'application/vnd.ms-fontobject'\n\t\t};\n\t}\n\n\tif (check([0x06, 0x06, 0xED, 0xF5, 0xD8, 0x1D, 0x46, 0xE5, 0xBD, 0x31, 0xEF, 0xE7, 0xFE, 0x74, 0xB7, 0x1D])) {\n\t\treturn {\n\t\t\text: 'indd',\n\t\t\tmime: 'application/x-indesign'\n\t\t};\n\t}\n\n\t// Increase sample size from 256 to 512\n\tawait tokenizer.peekBuffer(buffer, {length: Math.min(512, tokenizer.fileInfo.size), mayBeLess: true});\n\n\t// Requires a buffer size of 512 bytes\n\tif (tarHeaderChecksumMatches(buffer)) {\n\t\treturn {\n\t\t\text: 'tar',\n\t\t\tmime: 'application/x-tar'\n\t\t};\n\t}\n\n\tif (check([0xFF, 0xFE, 0xFF, 0x0E, 0x53, 0x00, 0x6B, 0x00, 0x65, 0x00, 0x74, 0x00, 0x63, 0x00, 0x68, 0x00, 0x55, 0x00, 0x70, 0x00, 0x20, 0x00, 0x4D, 0x00, 0x6F, 0x00, 0x64, 0x00, 0x65, 0x00, 0x6C, 0x00])) {\n\t\treturn {\n\t\t\text: 'skp',\n\t\t\tmime: 'application/vnd.sketchup.skp'\n\t\t};\n\t}\n\n\tif (checkString('-----BEGIN PGP MESSAGE-----')) {\n\t\treturn {\n\t\t\text: 'pgp',\n\t\t\tmime: 'application/pgp-encrypted'\n\t\t};\n\t}\n\n\t// Check for MPEG header at different starting offsets\n\tfor (let start = 0; start < 2 && start < (buffer.length - 16); start++) {\n\t\t// Check MPEG 1 or 2 Layer 3 header, or 'layer 0' for ADTS (MPEG sync-word 0xFFE)\n\t\tif (buffer.length >= start + 2 && check([0xFF, 0xE0], {offset: start, mask: [0xFF, 0xE0]})) {\n\t\t\tif (check([0x10], {offset: start + 1, mask: [0x16]})) {\n\t\t\t\t// Check for (ADTS) MPEG-2\n\t\t\t\tif (check([0x08], {offset: start + 1, mask: [0x08]})) {\n\t\t\t\t\treturn {\n\t\t\t\t\t\text: 'aac',\n\t\t\t\t\t\tmime: 'audio/aac'\n\t\t\t\t\t};\n\t\t\t\t}\n\n\t\t\t\t// Must be (ADTS) MPEG-4\n\t\t\t\treturn {\n\t\t\t\t\text: 'aac',\n\t\t\t\t\tmime: 'audio/aac'\n\t\t\t\t};\n\t\t\t}\n\n\t\t\t// MPEG 1 or 2 Layer 3 header\n\t\t\t// Check for MPEG layer 3\n\t\t\tif (check([0x02], {offset: start + 1, mask: [0x06]})) {\n\t\t\t\treturn {\n\t\t\t\t\text: 'mp3',\n\t\t\t\t\tmime: 'audio/mpeg'\n\t\t\t\t};\n\t\t\t}\n\n\t\t\t// Check for MPEG layer 2\n\t\t\tif (check([0x04], {offset: start + 1, mask: [0x06]})) {\n\t\t\t\treturn {\n\t\t\t\t\text: 'mp2',\n\t\t\t\t\tmime: 'audio/mpeg'\n\t\t\t\t};\n\t\t\t}\n\n\t\t\t// Check for MPEG layer 1\n\t\t\tif (check([0x06], {offset: start + 1, mask: [0x06]})) {\n\t\t\t\treturn {\n\t\t\t\t\text: 'mp1',\n\t\t\t\t\tmime: 'audio/mpeg'\n\t\t\t\t};\n\t\t\t}\n\t\t}\n\t}\n}\n\nconst stream = readableStream => new Promise((resolve, reject) => {\n\t// Using `eval` to work around issues when bundling with Webpack\n\tconst stream = eval('require')('stream'); // eslint-disable-line no-eval\n\n\treadableStream.on('error', reject);\n\treadableStream.once('readable', async () => {\n\t\t// Set up output stream\n\t\tconst pass = new stream.PassThrough();\n\t\tlet outputStream;\n\t\tif (stream.pipeline) {\n\t\t\toutputStream = stream.pipeline(readableStream, pass, () => {\n\t\t\t});\n\t\t} else {\n\t\t\toutputStream = readableStream.pipe(pass);\n\t\t}\n\n\t\t// Read the input stream and detect the filetype\n\t\tconst chunk = readableStream.read(minimumBytes) || readableStream.read() || Buffer.alloc(0);\n\t\ttry {\n\t\t\tconst fileType = await fromBuffer(chunk);\n\t\t\tpass.fileType = fileType;\n\t\t} catch (error) {\n\t\t\treject(error);\n\t\t}\n\n\t\tresolve(outputStream);\n\t});\n});\n\nconst fileType = {\n\tfromStream,\n\tfromTokenizer,\n\tfromBuffer,\n\tstream\n};\n\nObject.defineProperty(fileType, 'extensions', {\n\tget() {\n\t\treturn new Set(supported.extensions);\n\t}\n});\n\nObject.defineProperty(fileType, 'mimeTypes', {\n\tget() {\n\t\treturn new Set(supported.mimeTypes);\n\t}\n});\n\nmodule.exports = fileType;\n","'use strict';\nconst strtok3 = require('strtok3');\nconst core = require('./core');\n\nasync function fromFile(path) {\n\tconst tokenizer = await strtok3.fromFile(path);\n\ttry {\n\t\treturn await core.fromTokenizer(tokenizer);\n\t} finally {\n\t\tawait tokenizer.close();\n\t}\n}\n\nconst fileType = {\n\tfromFile\n};\n\nObject.assign(fileType, core);\n\nObject.defineProperty(fileType, 'extensions', {\n\tget() {\n\t\treturn core.extensions;\n\t}\n});\n\nObject.defineProperty(fileType, 'mimeTypes', {\n\tget() {\n\t\treturn core.mimeTypes;\n\t}\n});\n\nmodule.exports = fileType;\n","'use strict';\n\nmodule.exports = {\n\textensions: [\n\t\t'jpg',\n\t\t'png',\n\t\t'apng',\n\t\t'gif',\n\t\t'webp',\n\t\t'flif',\n\t\t'cr2',\n\t\t'cr3',\n\t\t'orf',\n\t\t'arw',\n\t\t'dng',\n\t\t'nef',\n\t\t'rw2',\n\t\t'raf',\n\t\t'tif',\n\t\t'bmp',\n\t\t'icns',\n\t\t'jxr',\n\t\t'psd',\n\t\t'indd',\n\t\t'zip',\n\t\t'tar',\n\t\t'rar',\n\t\t'gz',\n\t\t'bz2',\n\t\t'7z',\n\t\t'dmg',\n\t\t'mp4',\n\t\t'mid',\n\t\t'mkv',\n\t\t'webm',\n\t\t'mov',\n\t\t'avi',\n\t\t'mpg',\n\t\t'mp2',\n\t\t'mp3',\n\t\t'm4a',\n\t\t'oga',\n\t\t'ogg',\n\t\t'ogv',\n\t\t'opus',\n\t\t'flac',\n\t\t'wav',\n\t\t'spx',\n\t\t'amr',\n\t\t'pdf',\n\t\t'epub',\n\t\t'exe',\n\t\t'swf',\n\t\t'rtf',\n\t\t'wasm',\n\t\t'woff',\n\t\t'woff2',\n\t\t'eot',\n\t\t'ttf',\n\t\t'otf',\n\t\t'ico',\n\t\t'flv',\n\t\t'ps',\n\t\t'xz',\n\t\t'sqlite',\n\t\t'nes',\n\t\t'crx',\n\t\t'xpi',\n\t\t'cab',\n\t\t'deb',\n\t\t'ar',\n\t\t'rpm',\n\t\t'Z',\n\t\t'lz',\n\t\t'msi',\n\t\t'mxf',\n\t\t'mts',\n\t\t'blend',\n\t\t'bpg',\n\t\t'docx',\n\t\t'pptx',\n\t\t'xlsx',\n\t\t'3gp',\n\t\t'3g2',\n\t\t'jp2',\n\t\t'jpm',\n\t\t'jpx',\n\t\t'mj2',\n\t\t'aif',\n\t\t'qcp',\n\t\t'odt',\n\t\t'ods',\n\t\t'odp',\n\t\t'xml',\n\t\t'mobi',\n\t\t'heic',\n\t\t'cur',\n\t\t'ktx',\n\t\t'ape',\n\t\t'wv',\n\t\t'wmv',\n\t\t'wma',\n\t\t'dcm',\n\t\t'ics',\n\t\t'glb',\n\t\t'pcap',\n\t\t'dsf',\n\t\t'lnk',\n\t\t'alias',\n\t\t'voc',\n\t\t'ac3',\n\t\t'm4v',\n\t\t'm4p',\n\t\t'm4b',\n\t\t'f4v',\n\t\t'f4p',\n\t\t'f4b',\n\t\t'f4a',\n\t\t'mie',\n\t\t'asf',\n\t\t'ogm',\n\t\t'ogx',\n\t\t'mpc',\n\t\t'arrow',\n\t\t'shp',\n\t\t'aac',\n\t\t'mp1',\n\t\t'it',\n\t\t's3m',\n\t\t'xm',\n\t\t'ai',\n\t\t'skp',\n\t\t'avif',\n\t\t'eps',\n\t\t'lzh',\n\t\t'pgp',\n\t\t'asar'\n\t],\n\tmimeTypes: [\n\t\t'image/jpeg',\n\t\t'image/png',\n\t\t'image/gif',\n\t\t'image/webp',\n\t\t'image/flif',\n\t\t'image/x-canon-cr2',\n\t\t'image/x-canon-cr3',\n\t\t'image/tiff',\n\t\t'image/bmp',\n\t\t'image/vnd.ms-photo',\n\t\t'image/vnd.adobe.photoshop',\n\t\t'application/x-indesign',\n\t\t'application/epub+zip',\n\t\t'application/x-xpinstall',\n\t\t'application/vnd.oasis.opendocument.text',\n\t\t'application/vnd.oasis.opendocument.spreadsheet',\n\t\t'application/vnd.oasis.opendocument.presentation',\n\t\t'application/vnd.openxmlformats-officedocument.wordprocessingml.document',\n\t\t'application/vnd.openxmlformats-officedocument.presentationml.presentation',\n\t\t'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet',\n\t\t'application/zip',\n\t\t'application/x-tar',\n\t\t'application/x-rar-compressed',\n\t\t'application/gzip',\n\t\t'application/x-bzip2',\n\t\t'application/x-7z-compressed',\n\t\t'application/x-apple-diskimage',\n\t\t'application/x-apache-arrow',\n\t\t'video/mp4',\n\t\t'audio/midi',\n\t\t'video/x-matroska',\n\t\t'video/webm',\n\t\t'video/quicktime',\n\t\t'video/vnd.avi',\n\t\t'audio/vnd.wave',\n\t\t'audio/qcelp',\n\t\t'audio/x-ms-wma',\n\t\t'video/x-ms-asf',\n\t\t'application/vnd.ms-asf',\n\t\t'video/mpeg',\n\t\t'video/3gpp',\n\t\t'audio/mpeg',\n\t\t'audio/mp4', // RFC 4337\n\t\t'audio/opus',\n\t\t'video/ogg',\n\t\t'audio/ogg',\n\t\t'application/ogg',\n\t\t'audio/x-flac',\n\t\t'audio/ape',\n\t\t'audio/wavpack',\n\t\t'audio/amr',\n\t\t'application/pdf',\n\t\t'application/x-msdownload',\n\t\t'application/x-shockwave-flash',\n\t\t'application/rtf',\n\t\t'application/wasm',\n\t\t'font/woff',\n\t\t'font/woff2',\n\t\t'application/vnd.ms-fontobject',\n\t\t'font/ttf',\n\t\t'font/otf',\n\t\t'image/x-icon',\n\t\t'video/x-flv',\n\t\t'application/postscript',\n\t\t'application/eps',\n\t\t'application/x-xz',\n\t\t'application/x-sqlite3',\n\t\t'application/x-nintendo-nes-rom',\n\t\t'application/x-google-chrome-extension',\n\t\t'application/vnd.ms-cab-compressed',\n\t\t'application/x-deb',\n\t\t'application/x-unix-archive',\n\t\t'application/x-rpm',\n\t\t'application/x-compress',\n\t\t'application/x-lzip',\n\t\t'application/x-msi',\n\t\t'application/x-mie',\n\t\t'application/mxf',\n\t\t'video/mp2t',\n\t\t'application/x-blender',\n\t\t'image/bpg',\n\t\t'image/jp2',\n\t\t'image/jpx',\n\t\t'image/jpm',\n\t\t'image/mj2',\n\t\t'audio/aiff',\n\t\t'application/xml',\n\t\t'application/x-mobipocket-ebook',\n\t\t'image/heif',\n\t\t'image/heif-sequence',\n\t\t'image/heic',\n\t\t'image/heic-sequence',\n\t\t'image/icns',\n\t\t'image/ktx',\n\t\t'application/dicom',\n\t\t'audio/x-musepack',\n\t\t'text/calendar',\n\t\t'model/gltf-binary',\n\t\t'application/vnd.tcpdump.pcap',\n\t\t'audio/x-dsf', // Non-standard\n\t\t'application/x.ms.shortcut', // Invented by us\n\t\t'application/x.apple.alias', // Invented by us\n\t\t'audio/x-voc',\n\t\t'audio/vnd.dolby.dd-raw',\n\t\t'audio/x-m4a',\n\t\t'image/apng',\n\t\t'image/x-olympus-orf',\n\t\t'image/x-sony-arw',\n\t\t'image/x-adobe-dng',\n\t\t'image/x-nikon-nef',\n\t\t'image/x-panasonic-rw2',\n\t\t'image/x-fujifilm-raf',\n\t\t'video/x-m4v',\n\t\t'video/3gpp2',\n\t\t'application/x-esri-shape',\n\t\t'audio/aac',\n\t\t'audio/x-it',\n\t\t'audio/x-s3m',\n\t\t'audio/x-xm',\n\t\t'video/MP1S',\n\t\t'video/MP2P',\n\t\t'application/vnd.sketchup.skp',\n\t\t'image/avif',\n\t\t'application/x-lzh-compressed',\n\t\t'application/pgp-encrypted',\n\t\t'application/x-asar'\n\t]\n};\n","'use strict';\n\nexports.stringToBytes = string => [...string].map(character => character.charCodeAt(0));\n\nexports.tarHeaderChecksumMatches = buffer => { // Does not check if checksum field characters are valid\n\tif (buffer.length < 512) { // `tar` header size, cannot compute checksum without it\n\t\treturn false;\n\t}\n\n\tconst readSum = parseInt(buffer.toString('utf8', 148, 154).replace(/\\0.*$/, '').trim(), 8); // Read sum in header\n\tif (isNaN(readSum)) {\n\t\treturn false;\n\t}\n\n\tconst MASK_8TH_BIT = 0x80;\n\n\tlet sum = 256; // Initialize sum, with 256 as sum of 8 spaces in checksum field\n\tlet signedBitSum = 0; // Initialize signed bit sum\n\n\tfor (let i = 0; i < 148; i++) {\n\t\tconst byte = buffer[i];\n\t\tsum += byte;\n\t\tsignedBitSum += byte & MASK_8TH_BIT; // Add signed bit to signed bit sum\n\t}\n\n\t// Skip checksum field\n\n\tfor (let i = 156; i < 512; i++) {\n\t\tconst byte = buffer[i];\n\t\tsum += byte;\n\t\tsignedBitSum += byte & MASK_8TH_BIT; // Add signed bit to signed bit sum\n\t}\n\n\t// Some implementations compute checksum incorrectly using signed bytes\n\treturn (\n\t\t// Checksum in header equals the sum we calculated\n\t\treadSum === sum ||\n\n\t\t// Checksum in header equals sum we calculated plus signed-to-unsigned delta\n\t\treadSum === (sum - (signedBitSum << 1))\n\t);\n};\n\n/**\nID3 UINT32 sync-safe tokenizer token.\n28 bits (representing up to 256MB) integer, the msb is 0 to avoid \"false syncsignals\".\n*/\nexports.uint32SyncSafeToken = {\n\tget: (buffer, offset) => {\n\t\treturn (buffer[offset + 3] & 0x7F) | ((buffer[offset + 2]) << 7) | ((buffer[offset + 1]) << 14) | ((buffer[offset]) << 21);\n\t},\n\tlen: 4\n};\n","export default function isPng(buffer) {\n\tif (!buffer || buffer.length < 8) {\n\t\treturn false;\n\t}\n\n\treturn (\n\t\tbuffer[0] === 0x89 &&\n\t\tbuffer[1] === 0x50 &&\n\t\tbuffer[2] === 0x4E &&\n\t\tbuffer[3] === 0x47 &&\n\t\tbuffer[4] === 0x0D &&\n\t\tbuffer[5] === 0x0A &&\n\t\tbuffer[6] === 0x1A &&\n\t\tbuffer[7] === 0x0A\n\t);\n}\n","export default function pPipe(...functions) {\n\tif (functions.length === 0) {\n\t\tthrow new Error('Expected at least one argument');\n\t}\n\n\treturn async input => {\n\t\tlet currentValue = input;\n\n\t\tfor (const function_ of functions) {\n\t\t\tcurrentValue = await function_(currentValue); // eslint-disable-line no-await-in-loop\n\t\t}\n\n\t\treturn currentValue;\n\t};\n}\n","// Copyright 2019-2021 Tauri Programme within The Commons Conservancy\r\n// SPDX-License-Identifier: Apache-2.0\r\n// SPDX-License-Identifier: MIT\r\n'use strict';\r\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}));\r\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n});\r\nvar __importStar = (this && this.__importStar) || function (mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n};\r\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n};\r\nvar __generator = (this && this.__generator) || function (thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n 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;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n};\r\nvar __importDefault = (this && this.__importDefault) || function (mod) {\r\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\n/* eslint-disable @typescript-eslint/restrict-template-expressions, @typescript-eslint/no-unsafe-assignment, @typescript-eslint/no-unsafe-member-access, @typescript-eslint/no-unsafe-return, @typescript-eslint/no-unsafe-call */\r\n/**\r\n * This is a module that takes an original image and resizes\r\n * it to common icon sizes and will put them in a folder.\r\n * It will retain transparency and can make special file\r\n * types. You can control the settings.\r\n *\r\n * @module tauricon\r\n * @exports tauricon\r\n * @author Daniel Thompson-Yvetot\r\n * @license MIT\r\n */\r\nvar fs_extra_1 = require(\"fs-extra\");\r\nvar imagemin_1 = __importDefault(require(\"imagemin\"));\r\nvar imagemin_optipng_1 = __importDefault(require(\"imagemin-optipng\"));\r\nvar imagemin_zopfli_1 = __importDefault(require(\"imagemin-zopfli\"));\r\nvar is_png_1 = __importDefault(require(\"is-png\"));\r\nvar path_1 = __importDefault(require(\"path\"));\r\nvar png2icons = __importStar(require(\"png2icons\"));\r\nvar read_chunk_1 = __importDefault(require(\"read-chunk\"));\r\nvar sharp_1 = __importDefault(require(\"sharp\"));\r\nvar app_paths_1 = require(\"../helpers/app-paths\");\r\nvar logger_1 = __importDefault(require(\"../helpers/logger\"));\r\nvar settings = __importStar(require(\"../helpers/tauricon.config\"));\r\nvar chalk_1 = __importDefault(require(\"chalk\"));\r\nvar package_json_1 = require(\"../../package.json\");\r\nvar log = logger_1.default('app:spawn');\r\nvar warn = logger_1.default('app:spawn', chalk_1.default.red);\r\nvar image = false;\r\nvar spinnerInterval = null;\r\nvar exists = function (file) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var err_1;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n _a.trys.push([0, 2, , 3]);\r\n return [4 /*yield*/, fs_extra_1.access(file)];\r\n case 1:\r\n _a.sent();\r\n return [2 /*return*/, true];\r\n case 2:\r\n err_1 = _a.sent();\r\n return [2 /*return*/, false];\r\n case 3: return [2 /*return*/];\r\n }\r\n });\r\n });\r\n};\r\n/**\r\n * This is the first call that attempts to memoize the sharp(src).\r\n * If the source image cannot be found or if it is not a png, it\r\n * is a failsafe that will exit or throw.\r\n *\r\n * @param {string} src - a folder to target\r\n * @exits {error} if not a png, if not an image\r\n */\r\nvar checkSrc = function (src) { return __awaiter(void 0, void 0, void 0, function () {\r\n var srcExists, buffer, meta, stats;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n if (!(image !== false)) return [3 /*break*/, 1];\r\n return [2 /*return*/, image];\r\n case 1: return [4 /*yield*/, exists(src)];\r\n case 2:\r\n srcExists = _a.sent();\r\n if (!!srcExists) return [3 /*break*/, 3];\r\n image = false;\r\n if (spinnerInterval)\r\n clearInterval(spinnerInterval);\r\n warn('[ERROR] Source image for tauricon not found');\r\n process.exit(1);\r\n return [3 /*break*/, 8];\r\n case 3: return [4 /*yield*/, read_chunk_1.default(src, 0, 8)];\r\n case 4:\r\n buffer = _a.sent();\r\n if (!is_png_1.default(buffer)) return [3 /*break*/, 7];\r\n image = sharp_1.default(src);\r\n return [4 /*yield*/, image.metadata()];\r\n case 5:\r\n meta = _a.sent();\r\n if (!meta.hasAlpha || meta.channels !== 4) {\r\n if (spinnerInterval)\r\n clearInterval(spinnerInterval);\r\n warn('[ERROR] Source png for tauricon is not transparent');\r\n process.exit(1);\r\n }\r\n return [4 /*yield*/, image.stats()];\r\n case 6:\r\n stats = _a.sent();\r\n if (stats.isOpaque) {\r\n if (spinnerInterval)\r\n clearInterval(spinnerInterval);\r\n warn('[ERROR] Source png for tauricon could not be detected as transparent');\r\n process.exit(1);\r\n }\r\n return [2 /*return*/, image];\r\n case 7:\r\n image = false;\r\n if (spinnerInterval)\r\n clearInterval(spinnerInterval);\r\n warn('[ERROR] Source image for tauricon is not a png');\r\n process.exit(1);\r\n _a.label = 8;\r\n case 8: return [2 /*return*/];\r\n }\r\n });\r\n}); };\r\n/**\r\n * Sort the folders in the current job for unique folders.\r\n *\r\n * @param {object} options - a subset of the settings\r\n * @returns {array} folders\r\n */\r\n// TODO: proper type of options and folders\r\nvar uniqueFolders = function (options) {\r\n var folders = [];\r\n for (var type in options) {\r\n var option = options[String(type)];\r\n if (option.folder) {\r\n folders.push(option.folder);\r\n }\r\n }\r\n // TODO: is compare argument required?\r\n // eslint-disable-next-line @typescript-eslint/require-array-sort-compare\r\n folders = folders.sort().filter(function (x, i, a) { return !i || x !== a[i - 1]; });\r\n return folders;\r\n};\r\n/**\r\n * Turn a hex color (like #212342) into r,g,b values\r\n *\r\n * @param {string} hex - hex colour\r\n * @returns {array} r,g,b\r\n */\r\nvar hexToRgb = function (hex) {\r\n // https://stackoverflow.com/questions/5623838/rgb-to-hex-and-hex-to-rgb\r\n // Expand shorthand form (e.g. \"03F\") to full form (e.g. \"0033FF\")\r\n var shorthandRegex = /^#?([a-f\\d])([a-f\\d])([a-f\\d])$/i;\r\n hex = hex.replace(shorthandRegex, function (m, r, g, b) {\r\n return r + r + g + g + b + b;\r\n });\r\n var result = /^#?([a-f\\d]{2})([a-f\\d]{2})([a-f\\d]{2})$/i.exec(hex);\r\n return result\r\n ? {\r\n r: parseInt(result[1], 16),\r\n g: parseInt(result[2], 16),\r\n b: parseInt(result[3], 16)\r\n }\r\n : undefined;\r\n};\r\n/**\r\n * validate image and directory\r\n */\r\nvar validate = function (src, target) { return __awaiter(void 0, void 0, void 0, function () {\r\n var res;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n if (!(target !== undefined)) return [3 /*break*/, 2];\r\n return [4 /*yield*/, fs_extra_1.ensureDir(target)];\r\n case 1:\r\n _a.sent();\r\n _a.label = 2;\r\n case 2: return [4 /*yield*/, checkSrc(src)];\r\n case 3:\r\n res = _a.sent();\r\n return [2 /*return*/, res];\r\n }\r\n });\r\n}); };\r\n// TODO: should take end param?\r\n/**\r\n * Log progress in the command line\r\n *\r\n * @param {boolean} end\r\n */\r\nvar progress = function (msg) {\r\n process.stdout.write(\" \" + msg + \" \\r\");\r\n};\r\n/**\r\n * Create a spinner on the command line\r\n *\r\n * @example\r\n *\r\n * const spinnerInterval = spinner()\r\n * // later\r\n * clearInterval(spinnerInterval)\r\n */\r\nvar spinner = function () {\r\n if ('CI' in process.env || process.argv.some(function (arg) { return arg === '--ci'; })) {\r\n return null;\r\n }\r\n return setInterval(function () {\r\n process.stdout.write('/ \\r');\r\n setTimeout(function () {\r\n process.stdout.write('- \\r');\r\n setTimeout(function () {\r\n process.stdout.write('\\\\ \\r');\r\n setTimeout(function () {\r\n process.stdout.write('| \\r');\r\n }, 100);\r\n }, 100);\r\n }, 100);\r\n }, 500);\r\n};\r\nvar tauricon = (exports.tauricon = {\r\n validate: function (src, target) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0: return [4 /*yield*/, validate(src, target)];\r\n case 1:\r\n _a.sent();\r\n return [2 /*return*/, typeof image === 'object'];\r\n }\r\n });\r\n });\r\n },\r\n version: function () {\r\n return package_json_1.version;\r\n },\r\n make: function (src, target, strategy, \r\n // TODO: proper type for options\r\n options) {\r\n if (target === void 0) { target = path_1.default.resolve(app_paths_1.tauriDir, 'icons'); }\r\n return __awaiter(this, void 0, void 0, function () {\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n if (!src) {\r\n src = path_1.default.resolve(app_paths_1.appDir, 'app-icon.png');\r\n }\r\n spinnerInterval = spinner();\r\n options = options || settings.options.tauri;\r\n progress(\"Building Tauri icns and ico from \\\"\" + src + \"\\\"\");\r\n return [4 /*yield*/, this.validate(src, target)];\r\n case 1:\r\n _a.sent();\r\n return [4 /*yield*/, this.icns(src, target, options, strategy)];\r\n case 2:\r\n _a.sent();\r\n progress('Building Tauri png icons');\r\n return [4 /*yield*/, this.build(src, target, options)];\r\n case 3:\r\n _a.sent();\r\n if (!strategy) return [3 /*break*/, 5];\r\n progress(\"Minifying assets with \" + strategy);\r\n return [4 /*yield*/, this.minify(target, options, strategy, 'batch')];\r\n case 4:\r\n _a.sent();\r\n return [3 /*break*/, 6];\r\n case 5:\r\n log('no minify strategy');\r\n _a.label = 6;\r\n case 6:\r\n progress('Tauricon Finished');\r\n if (spinnerInterval)\r\n clearInterval(spinnerInterval);\r\n return [2 /*return*/, true];\r\n }\r\n });\r\n });\r\n },\r\n /**\r\n * Creates a set of images according to the subset of options it knows about.\r\n *\r\n * @param {string} src - image location\r\n * @param {string} target - where to drop the images\r\n * @param {object} options - js object that defines path and sizes\r\n */\r\n build: function (src, target, \r\n // TODO: proper type for options\r\n options) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var sharpSrc, buildify2, output, folders, n, folder, _a, _b, _i, optionKey, option, _c, _d, _e, sizeKey, size, dest, pvar;\r\n return __generator(this, function (_f) {\r\n switch (_f.label) {\r\n case 0: return [4 /*yield*/, this.validate(src, target)];\r\n case 1:\r\n _f.sent();\r\n sharpSrc = sharp_1.default(src) // creates the image object\r\n ;\r\n buildify2 = function (pvar) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var pngImage, rgb, err_2;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n _a.trys.push([0, 2, , 3]);\r\n pngImage = sharpSrc.resize(pvar[1], pvar[1]);\r\n if (pvar[2]) {\r\n rgb = hexToRgb(options.background_color) || {\r\n r: undefined,\r\n g: undefined,\r\n b: undefined\r\n };\r\n pngImage.flatten({\r\n background: { r: rgb.r, g: rgb.g, b: rgb.b, alpha: 1 }\r\n });\r\n }\r\n pngImage.png();\r\n return [4 /*yield*/, pngImage.toFile(pvar[0])];\r\n case 1:\r\n _a.sent();\r\n return [3 /*break*/, 3];\r\n case 2:\r\n err_2 = _a.sent();\r\n warn(err_2);\r\n return [3 /*break*/, 3];\r\n case 3: return [2 /*return*/];\r\n }\r\n });\r\n });\r\n };\r\n folders = uniqueFolders(options);\r\n // eslint-disable-next-line @typescript-eslint/no-for-in-array\r\n for (n in folders) {\r\n folder = folders[Number(n)];\r\n // make the folders first\r\n // TODO: should this be ensureDirSync?\r\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\r\n fs_extra_1.ensureDir(\"\" + target + path_1.default.sep + folder);\r\n }\r\n _a = [];\r\n for (_b in options)\r\n _a.push(_b);\r\n _i = 0;\r\n _f.label = 2;\r\n case 2:\r\n if (!(_i < _a.length)) return [3 /*break*/, 7];\r\n optionKey = _a[_i];\r\n option = options[String(optionKey)];\r\n _c = [];\r\n for (_d in option.sizes)\r\n _c.push(_d);\r\n _e = 0;\r\n _f.label = 3;\r\n case 3:\r\n if (!(_e < _c.length)) return [3 /*break*/, 6];\r\n sizeKey = _c[_e];\r\n size = option.sizes[String(sizeKey)];\r\n if (!!option.splash) return [3 /*break*/, 5];\r\n dest = target + \"/\" + option.folder;\r\n if (option.infix === true) {\r\n output = \"\" + dest + path_1.default.sep + option.prefix + size + \"x\" + size + option.suffix;\r\n }\r\n else {\r\n output = \"\" + dest + path_1.default.sep + option.prefix + option.suffix;\r\n }\r\n pvar = [\r\n output,\r\n size,\r\n option.background\r\n ];\r\n return [4 /*yield*/, buildify2(pvar)];\r\n case 4:\r\n _f.sent();\r\n _f.label = 5;\r\n case 5:\r\n _e++;\r\n return [3 /*break*/, 3];\r\n case 6:\r\n _i++;\r\n return [3 /*break*/, 2];\r\n case 7: return [2 /*return*/];\r\n }\r\n });\r\n });\r\n },\r\n /**\r\n * Creates a set of splash images (COMING SOON!!!)\r\n *\r\n * @param {string} src - icon location\r\n * @param {string} splashSrc - splashscreen location\r\n * @param {string} target - where to drop the images\r\n * @param {object} options - js object that defines path and sizes\r\n */\r\n splash: function (src, splashSrc, target, \r\n // TODO: proper type for options\r\n options) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var output, block, rgb, sharpSrc, data, _a, _b, _i, optionKey, option, _c, _d, _e, sizeKey, size, dest, pvar, sharpData;\r\n return __generator(this, function (_f) {\r\n switch (_f.label) {\r\n case 0:\r\n block = false;\r\n rgb = hexToRgb(options.background_color) || {\r\n r: undefined,\r\n g: undefined,\r\n b: undefined\r\n };\r\n if (splashSrc === src) {\r\n // prevent overlay or pure\r\n block = true;\r\n }\r\n if (!(block || options.splashscreen_type === 'generate')) return [3 /*break*/, 2];\r\n return [4 /*yield*/, this.validate(src, target)];\r\n case 1:\r\n _f.sent();\r\n if (!image) {\r\n process.exit(1);\r\n }\r\n sharpSrc = sharp_1.default(src);\r\n sharpSrc\r\n .extend({\r\n top: 726,\r\n bottom: 726,\r\n left: 726,\r\n right: 726,\r\n background: {\r\n r: rgb.r,\r\n g: rgb.g,\r\n b: rgb.b,\r\n alpha: 1\r\n }\r\n })\r\n .flatten({ background: { r: rgb.r, g: rgb.g, b: rgb.b, alpha: 1 } });\r\n return [3 /*break*/, 3];\r\n case 2:\r\n if (options.splashscreen_type === 'overlay') {\r\n sharpSrc = sharp_1.default(splashSrc)\r\n .flatten({ background: { r: rgb.r, g: rgb.g, b: rgb.b, alpha: 1 } })\r\n .composite([\r\n {\r\n input: src\r\n // blend: 'multiply' <= future work, maybe just a gag\r\n }\r\n ]);\r\n }\r\n else if (options.splashscreen_type === 'pure') {\r\n sharpSrc = sharp_1.default(splashSrc).flatten({\r\n background: { r: rgb.r, g: rgb.g, b: rgb.b, alpha: 1 }\r\n });\r\n }\r\n else {\r\n throw new Error(\"unknown options.splashscreen_type: \" + options.splashscreen_type);\r\n }\r\n _f.label = 3;\r\n case 3: return [4 /*yield*/, sharpSrc.toBuffer()];\r\n case 4:\r\n data = _f.sent();\r\n _a = [];\r\n for (_b in options)\r\n _a.push(_b);\r\n _i = 0;\r\n _f.label = 5;\r\n case 5:\r\n if (!(_i < _a.length)) return [3 /*break*/, 11];\r\n optionKey = _a[_i];\r\n option = options[String(optionKey)];\r\n _c = [];\r\n for (_d in option.sizes)\r\n _c.push(_d);\r\n _e = 0;\r\n _f.label = 6;\r\n case 6:\r\n if (!(_e < _c.length)) return [3 /*break*/, 10];\r\n sizeKey = _c[_e];\r\n size = option.sizes[String(sizeKey)];\r\n if (!option.splash) return [3 /*break*/, 9];\r\n dest = \"\" + target + path_1.default.sep + option.folder;\r\n return [4 /*yield*/, fs_extra_1.ensureDir(dest)];\r\n case 7:\r\n _f.sent();\r\n if (option.infix === true) {\r\n output = \"\" + dest + path_1.default.sep + option.prefix + size + \"x\" + size + option.suffix;\r\n }\r\n else {\r\n output = \"\" + dest + path_1.default.sep + option.prefix + option.suffix;\r\n }\r\n pvar = [output, size];\r\n sharpData = sharp_1.default(data);\r\n sharpData = sharpData.resize(pvar[1][0], pvar[1][1]);\r\n return [4 /*yield*/, sharpData.toFile(pvar[0])];\r\n case 8:\r\n _f.sent();\r\n _f.label = 9;\r\n case 9:\r\n _e++;\r\n return [3 /*break*/, 6];\r\n case 10:\r\n _i++;\r\n return [3 /*break*/, 5];\r\n case 11: return [2 /*return*/];\r\n }\r\n });\r\n });\r\n },\r\n /**\r\n * Minifies a set of images\r\n *\r\n * @param {string} target - image location\r\n * @param {object} options - where to drop the images\r\n * @param {string} strategy - which minify strategy to use\r\n * @param {string} mode - singlefile or batch\r\n */\r\n minify: function (target, \r\n // TODO: proper type for options\r\n options, strategy, mode) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var cmd, minify, minifier, _a, folders, _b, _c, _i, n, folder;\r\n var _this = this;\r\n return __generator(this, function (_d) {\r\n switch (_d.label) {\r\n case 0:\r\n minify = settings.options.minify;\r\n if (!minify.available.find(function (x) { return x === strategy; })) {\r\n strategy = minify.type;\r\n }\r\n switch (strategy) {\r\n case 'optipng':\r\n cmd = imagemin_optipng_1.default(minify.optipngOptions);\r\n break;\r\n case 'zopfli':\r\n cmd = imagemin_zopfli_1.default(minify.zopfliOptions);\r\n break;\r\n default:\r\n throw new Error('unknown strategy' + strategy);\r\n }\r\n minifier = function (pvar, cmd) { return __awaiter(_this, void 0, void 0, function () {\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0: return [4 /*yield*/, imagemin_1.default([pvar[0]], {\r\n destination: pvar[1],\r\n plugins: [cmd]\r\n }).catch(function (err) {\r\n warn(err);\r\n })];\r\n case 1:\r\n _a.sent();\r\n return [2 /*return*/];\r\n }\r\n });\r\n }); };\r\n _a = mode;\r\n switch (_a) {\r\n case 'singlefile': return [3 /*break*/, 1];\r\n case 'batch': return [3 /*break*/, 3];\r\n }\r\n return [3 /*break*/, 8];\r\n case 1: return [4 /*yield*/, minifier([target, path_1.default.dirname(target)], cmd)];\r\n case 2:\r\n _d.sent();\r\n return [3 /*break*/, 9];\r\n case 3:\r\n folders = uniqueFolders(options);\r\n _b = [];\r\n for (_c in folders)\r\n _b.push(_c);\r\n _i = 0;\r\n _d.label = 4;\r\n case 4:\r\n if (!(_i < _b.length)) return [3 /*break*/, 7];\r\n n = _b[_i];\r\n folder = folders[Number(n)];\r\n log('batch minify:' + String(folder));\r\n return [4 /*yield*/, minifier([\r\n \"\" + target + path_1.default.sep + folder + path_1.default.sep + \"*.png\",\r\n \"\" + target + path_1.default.sep + folder\r\n ], cmd)];\r\n case 5:\r\n _d.sent();\r\n _d.label = 6;\r\n case 6:\r\n _i++;\r\n return [3 /*break*/, 4];\r\n case 7: return [3 /*break*/, 9];\r\n case 8:\r\n warn('[ERROR] Minify mode must be one of [ singlefile | batch]');\r\n process.exit(1);\r\n _d.label = 9;\r\n case 9: return [2 /*return*/, 'minified'];\r\n }\r\n });\r\n });\r\n },\r\n /**\r\n * Creates special icns and ico filetypes\r\n *\r\n * @param {string} src - image location\r\n * @param {string} target - where to drop the images\r\n * @param {object} options\r\n * @param {string} strategy\r\n */\r\n icns: function (src, target, \r\n // TODO: proper type for options\r\n options, strategy) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var sharpSrc, buf, out, out2, err_3;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n _a.trys.push([0, 3, , 4]);\r\n if (!image) {\r\n process.exit(1);\r\n }\r\n return [4 /*yield*/, this.validate(src, target)];\r\n case 1:\r\n _a.sent();\r\n sharpSrc = sharp_1.default(src);\r\n return [4 /*yield*/, sharpSrc.toBuffer()];\r\n case 2:\r\n buf = _a.sent();\r\n out = png2icons.createICNS(buf, png2icons.BICUBIC, 0);\r\n if (out === null) {\r\n throw new Error('Failed to create icon.icns');\r\n }\r\n fs_extra_1.ensureFileSync(path_1.default.join(target, '/icon.icns'));\r\n fs_extra_1.writeFileSync(path_1.default.join(target, '/icon.icns'), out);\r\n out2 = png2icons.createICO(buf, png2icons.BICUBIC, 0, true);\r\n if (out2 === null) {\r\n throw new Error('Failed to create icon.ico');\r\n }\r\n fs_extra_1.ensureFileSync(path_1.default.join(target, '/icon.ico'));\r\n fs_extra_1.writeFileSync(path_1.default.join(target, '/icon.ico'), out2);\r\n return [3 /*break*/, 4];\r\n case 3:\r\n err_3 = _a.sent();\r\n console.error(err_3);\r\n throw err_3;\r\n case 4: return [2 /*return*/];\r\n }\r\n });\r\n });\r\n }\r\n});\r\n/* eslint-enable @typescript-eslint/restrict-template-expressions */\r\nif (typeof exports !== 'undefined') {\r\n if (typeof module !== 'undefined' && module.exports) {\r\n exports = module.exports = tauricon;\r\n }\r\n exports.tauricon = tauricon;\r\n}\r\n","\"use strict\";\r\n// Copyright 2019-2021 Tauri Programme within The Commons Conservancy\r\n// SPDX-License-Identifier: Apache-2.0\r\n// SPDX-License-Identifier: MIT\r\nvar __importDefault = (this && this.__importDefault) || function (mod) {\r\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.resolve = exports.tauriDir = exports.appDir = void 0;\r\nvar fs_1 = require(\"fs\");\r\nvar path_1 = require(\"path\");\r\nvar logger_1 = __importDefault(require(\"./logger\"));\r\nvar chalk_1 = __importDefault(require(\"chalk\"));\r\nvar warn = logger_1.default('tauri', chalk_1.default.red);\r\nfunction resolvePath(basePath, dir) {\r\n return dir && path_1.isAbsolute(dir) ? dir : path_1.resolve(basePath, dir);\r\n}\r\nvar getAppDir = function () {\r\n var dir = process.cwd();\r\n var count = 0;\r\n // only go up three folders max\r\n while (dir.length > 0 && !dir.endsWith(path_1.sep) && count <= 2) {\r\n if (fs_1.existsSync(path_1.join(dir, 'src-tauri', 'tauri.conf.json'))) {\r\n return dir;\r\n }\r\n count++;\r\n dir = path_1.normalize(path_1.join(dir, '..'));\r\n }\r\n warn(\"Couldn't find recognize the current folder as a part of a Tauri project\");\r\n process.exit(1);\r\n};\r\nvar appDir = getAppDir();\r\nexports.appDir = appDir;\r\nvar tauriDir = path_1.resolve(appDir, 'src-tauri');\r\nexports.tauriDir = tauriDir;\r\nvar resolveDir = {\r\n app: function (dir) { return resolvePath(appDir, dir); },\r\n tauri: function (dir) { return resolvePath(tauriDir, dir); }\r\n};\r\nexports.resolve = resolveDir;\r\n","\"use strict\";\r\n// Copyright 2019-2021 Tauri Programme within The Commons Conservancy\r\n// SPDX-License-Identifier: Apache-2.0\r\n// SPDX-License-Identifier: MIT\r\nvar __importDefault = (this && this.__importDefault) || function (mod) {\r\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar chalk_1 = __importDefault(require(\"chalk\"));\r\nvar ms_1 = __importDefault(require(\"ms\"));\r\nvar prevTime;\r\nexports.default = (function (banner, color) {\r\n if (color === void 0) { color = chalk_1.default.green; }\r\n return function (msg) {\r\n var curr = +new Date();\r\n var diff = curr - (prevTime || curr);\r\n prevTime = curr;\r\n if (msg) {\r\n console.log(\r\n // TODO: proper typings for color and banner\r\n // eslint-disable-next-line @typescript-eslint/restrict-template-expressions, @typescript-eslint/no-unsafe-call\r\n \" \" + color(String(banner)) + \" \" + msg + \" \" + chalk_1.default.green(\"+\" + ms_1.default(diff)));\r\n }\r\n else {\r\n console.log();\r\n }\r\n };\r\n});\r\n","\"use strict\";\r\n// Copyright 2019-2021 Tauri Programme within The Commons Conservancy\r\n// SPDX-License-Identifier: Apache-2.0\r\n// SPDX-License-Identifier: MIT\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.options = void 0;\r\nexports.options = {\r\n // folder determines in which path to drop the generated file\r\n // prefix is the first part of the generated file's name\r\n // infix adds e.g. '44x44' based on the size in sizes to the generated file's name\r\n // suffix adds a file-ending to the generated file's name\r\n // sizes determines the pixel width and height to use\r\n background_color: '#000074',\r\n theme_color: '#02aa9b',\r\n sharp: 'kernel: sharp.kernel.lanczos3',\r\n minify: {\r\n batch: false,\r\n overwrite: true,\r\n available: ['optipng', 'zopfli'],\r\n type: 'optipng',\r\n optipngOptions: {\r\n optimizationLevel: 4,\r\n paletteReduction: true\r\n },\r\n zopfliOptions: {\r\n transparent: true,\r\n more: true\r\n }\r\n },\r\n splash_type: 'generate',\r\n tauri: {\r\n linux: {\r\n folder: '.',\r\n prefix: '',\r\n infix: true,\r\n suffix: '.png',\r\n sizes: [32, 128]\r\n },\r\n linux_2x: {\r\n folder: '.',\r\n prefix: '128x128@2x',\r\n infix: false,\r\n suffix: '.png',\r\n sizes: [256]\r\n },\r\n defaults: {\r\n folder: '.',\r\n prefix: 'icon',\r\n infix: false,\r\n suffix: '.png',\r\n sizes: [512]\r\n },\r\n appx_logo: {\r\n folder: '.',\r\n prefix: 'StoreLogo',\r\n infix: false,\r\n suffix: '.png',\r\n sizes: [50]\r\n },\r\n appx_square: {\r\n folder: '.',\r\n prefix: 'Square',\r\n infix: true,\r\n suffix: 'Logo.png',\r\n sizes: [30, 44, 71, 89, 107, 142, 150, 284, 310]\r\n }\r\n // todo: look at capacitor and cordova for insight into what icons\r\n // we need for those distribution targets\r\n }\r\n};\r\n","module.exports = require(\"chalk\");;","module.exports = require(\"fs\");;","module.exports = require(\"fs-extra\");;","module.exports = require(\"globby\");;","module.exports = require(\"graceful-fs\");;","module.exports = require(\"imagemin-optipng\");;","module.exports = require(\"imagemin-zopfli\");;","module.exports = require(\"junk\");;","module.exports = require(\"ms\");;","module.exports = require(\"path\");;","module.exports = require(\"png2icons\");;","module.exports = require(\"read-chunk\");;","module.exports = require(\"replace-ext\");;","module.exports = require(\"sharp\");;","module.exports = require(\"strtok3\");;","module.exports = require(\"strtok3/lib/core\");;","module.exports = require(\"token-types\");;","module.exports = require(\"util\");;","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","// startup\n// Load entry module and return exports\n// This entry module is referenced by other modules so it can't be inlined\nvar __webpack_exports__ = __webpack_require__(\"./src/api/tauricon.ts\");\n"],"sourceRoot":""} \ No newline at end of file diff --git a/tooling/cli.js/dist/helpers/download-binary.js b/tooling/cli.js/dist/helpers/download-binary.js deleted file mode 100644 index 01b51abfd..000000000 --- a/tooling/cli.js/dist/helpers/download-binary.js +++ /dev/null @@ -1,384 +0,0 @@ -(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/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; - - -/***/ }), - -/***/ "fs": -/*!*********************!*\ - !*** external "fs" ***! - \*********************/ -/***/ ((module) => { - -"use strict"; -module.exports = require("fs");; - -/***/ }), - -/***/ "got": -/*!**********************!*\ - !*** external "got" ***! - \**********************/ -/***/ ((module) => { - -"use strict"; -module.exports = require("got");; - -/***/ }), - -/***/ "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/helpers/download-binary.ts"); -/******/ -/******/ return __webpack_exports__; -/******/ })() -; -}); -//# sourceMappingURL=download-binary.js.map \ No newline at end of file diff --git a/tooling/cli.js/dist/helpers/download-binary.js.map b/tooling/cli.js/dist/helpers/download-binary.js.map deleted file mode 100644 index 8f76ad8f4..000000000 --- a/tooling/cli.js/dist/helpers/download-binary.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["webpack://tauri/webpack/universalModuleDefinition","webpack://tauri/../cli.rs/Cargo.toml","webpack://tauri/./src/helpers/download-binary.ts","webpack://tauri/external \"fs\"","webpack://tauri/external \"got\"","webpack://tauri/external \"path\"","webpack://tauri/external \"stream\"","webpack://tauri/external \"util\"","webpack://tauri/webpack/bootstrap","webpack://tauri/webpack/startup"],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,O;;;;;;;;;ACVA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,C;;;;;;;;;;;AC5Ga;AACb;AACA,2BAA2B,+DAA+D,gBAAgB,EAAE,EAAE;AAC9G;AACA,mCAAmC,MAAM,6BAA6B,EAAE,YAAY,WAAW,EAAE;AACjG,kCAAkC,MAAM,iCAAiC,EAAE,YAAY,WAAW,EAAE;AACpG,+BAA+B,qFAAqF;AACpH;AACA,KAAK;AACL;AACA;AACA,aAAa,6BAA6B,0BAA0B,aAAa,EAAE,qBAAqB;AACxG,gBAAgB,qDAAqD,oEAAoE,aAAa,EAAE;AACxJ,sBAAsB,sBAAsB,qBAAqB,GAAG;AACpE;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC;AACvC,kCAAkC,SAAS;AAC3C,kCAAkC,WAAW,UAAU;AACvD,yCAAyC,cAAc;AACvD;AACA,6GAA6G,OAAO,UAAU;AAC9H,gFAAgF,iBAAiB,OAAO;AACxG,wDAAwD,gBAAgB,QAAQ,OAAO;AACvF,8CAA8C,gBAAgB,gBAAgB,OAAO;AACrF;AACA,iCAAiC;AACjC;AACA;AACA,SAAS,YAAY,aAAa,OAAO,EAAE,UAAU,WAAW;AAChE,mCAAmC,SAAS;AAC5C;AACA;AACA;AACA,4CAA4C;AAC5C;AACA,8CAA6C,CAAC,cAAc,EAAC;AAC7D,sBAAsB,GAAG,mBAAmB;AAC5C,+BAA+B,mBAAO,CAAC,sBAAQ;AAC/C,aAAa,mBAAO,CAAC,kBAAM;AAC3B,2BAA2B,mBAAO,CAAC,cAAI;AACvC,4BAA4B,mBAAO,CAAC,gBAAK;AACzC,6BAA6B,mBAAO,CAAC,kBAAM;AAC3C;AACA;AACA;AACA,uBAAuB,mBAAO,CAAC,wDAA4B;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC;AACxC;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;AACL;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;AACL;AACA,sBAAsB;;;;;;;;;;;;ACpJtB,gC;;;;;;;;;;;ACAA,iC;;;;;;;;;;;ACAA,kC;;;;;;;;;;;ACAA,oC;;;;;;;;;;;ACAA,kC;;;;;;UCAA;UACA;;UAEA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;;UAEA;UACA;;UAEA;UACA;UACA;;;;UCtBA;UACA;UACA;UACA","file":"helpers/download-binary.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"tauri\"] = factory();\n\telse\n\t\troot[\"tauri\"] = factory();\n})(this, function() {\nreturn ","module.exports = {\n\t\"workspace\": {},\n\t\"package\": {\n\t\t\"name\": \"tauri-cli\",\n\t\t\"version\": \"1.0.0-beta.5\",\n\t\t\"authors\": [\n\t\t\t\"Tauri Programme within The Commons Conservancy\"\n\t\t],\n\t\t\"edition\": \"2018\",\n\t\t\"categories\": [\n\t\t\t\"gui\",\n\t\t\t\"web-programming\"\n\t\t],\n\t\t\"license\": \"Apache-2.0 OR MIT\",\n\t\t\"homepage\": \"https://tauri.studio\",\n\t\t\"repository\": \"https://github.com/tauri-apps/tauri\",\n\t\t\"description\": \"Command line interface for building Tauri apps\",\n\t\t\"include\": [\n\t\t\t\"src/\",\n\t\t\t\"/templates\",\n\t\t\t\"MergeModules/\",\n\t\t\t\"*.json\",\n\t\t\t\"*.rs\"\n\t\t]\n\t},\n\t\"bin\": [\n\t\t{\n\t\t\t\"name\": \"cargo-tauri\",\n\t\t\t\"path\": \"src/main.rs\"\n\t\t}\n\t],\n\t\"dependencies\": {\n\t\t\"clap\": {\n\t\t\t\"version\": \"3.0.0-beta.2\",\n\t\t\t\"features\": [\n\t\t\t\t\"yaml\"\n\t\t\t]\n\t\t},\n\t\t\"anyhow\": \"1.0\",\n\t\t\"tauri-bundler\": {\n\t\t\t\"version\": \"1.0.0-beta.3\",\n\t\t\t\"path\": \"../bundler\"\n\t\t},\n\t\t\"colored\": \"2.0\",\n\t\t\"once_cell\": \"1.8\",\n\t\t\"serde\": {\n\t\t\t\"version\": \"1.0\",\n\t\t\t\"features\": [\n\t\t\t\t\"derive\"\n\t\t\t]\n\t\t},\n\t\t\"serde_json\": \"1.0\",\n\t\t\"serde_with\": \"1.9\",\n\t\t\"notify\": \"4.0\",\n\t\t\"shared_child\": \"0.3\",\n\t\t\"toml_edit\": \"0.2\",\n\t\t\"json-patch\": \"0.2\",\n\t\t\"schemars\": \"0.8\",\n\t\t\"toml\": \"0.5\",\n\t\t\"valico\": \"3.6\",\n\t\t\"handlebars\": \"4.1\",\n\t\t\"include_dir\": \"0.6\",\n\t\t\"minisign\": \"0.6\",\n\t\t\"base64\": \"0.13.0\",\n\t\t\"ureq\": \"2.1\",\n\t\t\"os_info\": \"3.0\",\n\t\t\"semver\": \"1.0\",\n\t\t\"regex\": \"1.5\",\n\t\t\"lazy_static\": \"1\",\n\t\t\"libc\": \"0.2\",\n\t\t\"terminal_size\": \"0.1\",\n\t\t\"unicode-width\": \"0.1\",\n\t\t\"tempfile\": \"3\",\n\t\t\"zeroize\": \"1.3\"\n\t},\n\t\"target\": {\n\t\t\"cfg(windows)\": {\n\t\t\t\"dependencies\": {\n\t\t\t\t\"winapi\": {\n\t\t\t\t\t\"version\": \"0.3\",\n\t\t\t\t\t\"features\": [\n\t\t\t\t\t\t\"winbase\",\n\t\t\t\t\t\t\"winuser\",\n\t\t\t\t\t\t\"consoleapi\",\n\t\t\t\t\t\t\"processenv\",\n\t\t\t\t\t\t\"wincon\"\n\t\t\t\t\t]\n\t\t\t\t},\n\t\t\t\t\"encode_unicode\": \"0.3\"\n\t\t\t}\n\t\t},\n\t\t\"cfg(target_os = \\\"linux\\\")\": {\n\t\t\t\"dependencies\": {\n\t\t\t\t\"heck\": \"0.3\"\n\t\t\t}\n\t\t}\n\t},\n\t\"build-dependencies\": {\n\t\t\"schemars\": \"0.8\",\n\t\t\"serde\": {\n\t\t\t\"version\": \"1.0\",\n\t\t\t\"features\": [\n\t\t\t\t\"derive\"\n\t\t\t]\n\t\t},\n\t\t\"serde_json\": \"1.0\",\n\t\t\"serde_with\": \"1.9\"\n\t}\n}","\"use strict\";\r\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n};\r\nvar __generator = (this && this.__generator) || function (thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n 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;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n};\r\nvar __importDefault = (this && this.__importDefault) || function (mod) {\r\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.downloadRustup = exports.downloadCli = void 0;\r\nvar stream_1 = __importDefault(require(\"stream\"));\r\nvar util_1 = require(\"util\");\r\nvar fs_1 = __importDefault(require(\"fs\"));\r\nvar got_1 = __importDefault(require(\"got\"));\r\nvar path_1 = __importDefault(require(\"path\"));\r\nvar pipeline = util_1.promisify(stream_1.default.pipeline);\r\n// Webpack reads the file at build-time, so this becomes a static var\r\n// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment, @typescript-eslint/no-var-requires, @typescript-eslint/no-unsafe-member-access\r\nvar tauriCliManifest = require('../../../cli.rs/Cargo.toml');\r\nvar downloads = {};\r\nfunction downloadBinaryRelease(tag, asset, outPath) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var url, removeDownloadedCliIfNeeded;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n url = \"https://github.com/tauri-apps/binary-releases/releases/download/\" + tag + \"/\" + asset;\r\n removeDownloadedCliIfNeeded = function () {\r\n try {\r\n if (!(url in downloads)) {\r\n // eslint-disable-next-line security/detect-non-literal-fs-filename\r\n fs_1.default.unlinkSync(outPath);\r\n }\r\n }\r\n finally {\r\n process.exit();\r\n }\r\n };\r\n // on exit, we remove the `tauri-cli` file if the download didn't complete\r\n process.on('exit', removeDownloadedCliIfNeeded);\r\n process.on('SIGINT', removeDownloadedCliIfNeeded);\r\n process.on('SIGTERM', removeDownloadedCliIfNeeded);\r\n process.on('SIGHUP', removeDownloadedCliIfNeeded);\r\n process.on('SIGBREAK', removeDownloadedCliIfNeeded);\r\n // TODO: Check hash of download\r\n // eslint-disable-next-line @typescript-eslint/no-unsafe-call, @typescript-eslint/no-unsafe-member-access, security/detect-non-literal-fs-filename\r\n return [4 /*yield*/, pipeline(got_1.default.stream(url), fs_1.default.createWriteStream(outPath)).catch(function (e) {\r\n try {\r\n // eslint-disable-next-line security/detect-non-literal-fs-filename\r\n fs_1.default.unlinkSync(outPath);\r\n }\r\n catch (_a) { }\r\n throw e;\r\n })\r\n // eslint-disable-next-line security/detect-object-injection\r\n ];\r\n case 1:\r\n // TODO: Check hash of download\r\n // eslint-disable-next-line @typescript-eslint/no-unsafe-call, @typescript-eslint/no-unsafe-member-access, security/detect-non-literal-fs-filename\r\n _a.sent();\r\n // eslint-disable-next-line security/detect-object-injection\r\n downloads[url] = true;\r\n // eslint-disable-next-line security/detect-non-literal-fs-filename\r\n fs_1.default.chmodSync(outPath, 448);\r\n console.log('Download Complete');\r\n return [2 /*return*/];\r\n }\r\n });\r\n });\r\n}\r\nfunction downloadCli() {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var version, platform, extension, outPath;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n version = tauriCliManifest.package.version;\r\n platform = process.platform;\r\n if (platform === 'win32') {\r\n platform = 'windows';\r\n }\r\n else if (platform === 'linux') {\r\n platform = 'linux';\r\n }\r\n else if (platform === 'darwin') {\r\n platform = 'macos';\r\n }\r\n else {\r\n throw Error('Unsupported platform');\r\n }\r\n extension = platform === 'windows' ? '.exe' : '';\r\n outPath = path_1.default.join(__dirname, \"../../bin/tauri-cli\" + extension);\r\n console.log('Downloading Rust CLI...');\r\n return [4 /*yield*/, downloadBinaryRelease(\"tauri-cli-v\" + version, \"tauri-cli_\" + platform + extension, outPath)];\r\n case 1:\r\n _a.sent();\r\n return [2 /*return*/];\r\n }\r\n });\r\n });\r\n}\r\nexports.downloadCli = downloadCli;\r\nfunction downloadRustup() {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var assetName;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n assetName = process.platform === 'win32' ? 'rustup-init.exe' : 'rustup-init.sh';\r\n console.log('Downloading Rustup...');\r\n return [4 /*yield*/, downloadBinaryRelease('rustup', assetName, path_1.default.join(__dirname, \"../../bin/\" + assetName))];\r\n case 1: return [2 /*return*/, _a.sent()];\r\n }\r\n });\r\n });\r\n}\r\nexports.downloadRustup = downloadRustup;\r\n","module.exports = require(\"fs\");;","module.exports = require(\"got\");;","module.exports = require(\"path\");;","module.exports = require(\"stream\");;","module.exports = require(\"util\");;","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// startup\n// Load entry module and return exports\n// This entry module is referenced by other modules so it can't be inlined\nvar __webpack_exports__ = __webpack_require__(\"./src/helpers/download-binary.ts\");\n"],"sourceRoot":""} \ No newline at end of file diff --git a/tooling/cli.js/dist/helpers/rust-cli.js b/tooling/cli.js/dist/helpers/rust-cli.js deleted file mode 100644 index bcce812f9..000000000 --- a/tooling/cli.js/dist/helpers/rust-cli.js +++ /dev/null @@ -1,655 +0,0 @@ -(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/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/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/rust-cli.ts": -/*!*********************************!*\ - !*** ./src/helpers/rust-cli.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; -}; -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.runOnRustCli = void 0; -var fs_1 = __webpack_require__(/*! fs */ "fs"); -var path_1 = __webpack_require__(/*! path */ "path"); -var spawn_1 = __webpack_require__(/*! ./spawn */ "./src/helpers/spawn.ts"); -var download_binary_1 = __webpack_require__(/*! ./download-binary */ "./src/helpers/download-binary.ts"); -var currentTauriCliVersion = function () { - // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment, @typescript-eslint/no-unsafe-member-access - var tauriCliManifest = - // eslint-disable-next-line @typescript-eslint/no-var-requires - __webpack_require__(/*! ../../../cli.rs/Cargo.toml */ "../cli.rs/Cargo.toml"); - return tauriCliManifest.package.version; -}; -function runOnRustCli(command, args) { - return __awaiter(this, void 0, void 0, function () { - var targetPath, targetCliPath, resolveCb, rejectCb, pid, promise, onClose, cliPath, localCliPath; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - targetPath = path_1.resolve(__dirname, '../..'); - targetCliPath = path_1.join(targetPath, 'bin/tauri-cli' + (process.platform === 'win32' ? '.exe' : '')); - promise = new Promise(function (resolve, reject) { - resolveCb = resolve; - rejectCb = function () { return reject(new Error()); }; - }); - onClose = function (code, pid) { - if (code === 0) { - resolveCb(); - } - else { - rejectCb(); - } - }; - if (!fs_1.existsSync(targetCliPath)) return [3 /*break*/, 1]; - pid = spawn_1.spawn(targetCliPath, __spreadArray(['tauri', command], args), process.cwd(), onClose); - return [3 /*break*/, 4]; - case 1: - if (true) return [3 /*break*/, 3]; - return [4 /*yield*/, download_binary_1.downloadCli()]; - case 2: - _a.sent(); - pid = spawn_1.spawn(targetCliPath, __spreadArray(['tauri', command], args), process.cwd(), onClose); - return [3 /*break*/, 4]; - case 3: - if (fs_1.existsSync(path_1.resolve(targetPath, '../bundler'))) { - cliPath = path_1.resolve(targetPath, '../cli.rs'); - spawn_1.spawnSync('cargo', ['build', '--release'], cliPath); - localCliPath = path_1.resolve(targetPath, '../cli.rs/target/release/cargo-tauri'); - pid = spawn_1.spawn(localCliPath, __spreadArray(['tauri', command], args), process.cwd(), onClose); - } - else { - spawn_1.spawnSync('cargo', [ - 'install', - '--root', - targetPath, - 'tauri-cli', - '--version', - currentTauriCliVersion() - ], process.cwd()); - pid = spawn_1.spawn(targetCliPath, __spreadArray(['tauri', command], args), process.cwd(), onClose); - } - _a.label = 4; - case 4: return [2 /*return*/, { pid: pid, promise: promise }]; - } - }); - }); -} -exports.runOnRustCli = runOnRustCli; - - -/***/ }), - -/***/ "./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; - - -/***/ }), - -/***/ "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");; - -/***/ }), - -/***/ "ms": -/*!*********************!*\ - !*** external "ms" ***! - \*********************/ -/***/ ((module) => { - -"use strict"; -module.exports = require("ms");; - -/***/ }), - -/***/ "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/helpers/rust-cli.ts"); -/******/ -/******/ return __webpack_exports__; -/******/ })() -; -}); -//# sourceMappingURL=rust-cli.js.map \ No newline at end of file diff --git a/tooling/cli.js/dist/helpers/rust-cli.js.map b/tooling/cli.js/dist/helpers/rust-cli.js.map deleted file mode 100644 index 00a68c675..000000000 --- a/tooling/cli.js/dist/helpers/rust-cli.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["webpack://tauri/webpack/universalModuleDefinition","webpack://tauri/../cli.rs/Cargo.toml","webpack://tauri/./src/helpers/download-binary.ts","webpack://tauri/./src/helpers/logger.ts","webpack://tauri/./src/helpers/rust-cli.ts","webpack://tauri/./src/helpers/spawn.ts","webpack://tauri/external \"chalk\"","webpack://tauri/external \"cross-spawn\"","webpack://tauri/external \"fs\"","webpack://tauri/external \"got\"","webpack://tauri/external \"ms\"","webpack://tauri/external \"path\"","webpack://tauri/external \"stream\"","webpack://tauri/external \"util\"","webpack://tauri/webpack/bootstrap","webpack://tauri/webpack/startup"],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,O;;;;;;;;;ACVA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,C;;;;;;;;;;;AC5Ga;AACb;AACA,2BAA2B,+DAA+D,gBAAgB,EAAE,EAAE;AAC9G;AACA,mCAAmC,MAAM,6BAA6B,EAAE,YAAY,WAAW,EAAE;AACjG,kCAAkC,MAAM,iCAAiC,EAAE,YAAY,WAAW,EAAE;AACpG,+BAA+B,qFAAqF;AACpH;AACA,KAAK;AACL;AACA;AACA,aAAa,6BAA6B,0BAA0B,aAAa,EAAE,qBAAqB;AACxG,gBAAgB,qDAAqD,oEAAoE,aAAa,EAAE;AACxJ,sBAAsB,sBAAsB,qBAAqB,GAAG;AACpE;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC;AACvC,kCAAkC,SAAS;AAC3C,kCAAkC,WAAW,UAAU;AACvD,yCAAyC,cAAc;AACvD;AACA,6GAA6G,OAAO,UAAU;AAC9H,gFAAgF,iBAAiB,OAAO;AACxG,wDAAwD,gBAAgB,QAAQ,OAAO;AACvF,8CAA8C,gBAAgB,gBAAgB,OAAO;AACrF;AACA,iCAAiC;AACjC;AACA;AACA,SAAS,YAAY,aAAa,OAAO,EAAE,UAAU,WAAW;AAChE,mCAAmC,SAAS;AAC5C;AACA;AACA;AACA,4CAA4C;AAC5C;AACA,8CAA6C,CAAC,cAAc,EAAC;AAC7D,sBAAsB,GAAG,mBAAmB;AAC5C,+BAA+B,mBAAO,CAAC,sBAAQ;AAC/C,aAAa,mBAAO,CAAC,kBAAM;AAC3B,2BAA2B,mBAAO,CAAC,cAAI;AACvC,4BAA4B,mBAAO,CAAC,gBAAK;AACzC,6BAA6B,mBAAO,CAAC,kBAAM;AAC3C;AACA;AACA;AACA,uBAAuB,mBAAO,CAAC,wDAA4B;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC;AACxC;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;AACL;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;AACL;AACA,sBAAsB;;;;;;;;;;;;ACpJT;AACb;AACA;AACA;AACA;AACA,4CAA4C;AAC5C;AACA,8CAA6C,CAAC,cAAc,EAAC;AAC7D,8BAA8B,mBAAO,CAAC,oBAAO;AAC7C,2BAA2B,mBAAO,CAAC,cAAI;AACvC;AACA,eAAe;AACf,2BAA2B,+BAA+B;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;;;;;;;;;;;AC3BY;AACb;AACA;AACA;AACA;AACA,2BAA2B,+DAA+D,gBAAgB,EAAE,EAAE;AAC9G;AACA,mCAAmC,MAAM,6BAA6B,EAAE,YAAY,WAAW,EAAE;AACjG,kCAAkC,MAAM,iCAAiC,EAAE,YAAY,WAAW,EAAE;AACpG,+BAA+B,qFAAqF;AACpH;AACA,KAAK;AACL;AACA;AACA,aAAa,6BAA6B,0BAA0B,aAAa,EAAE,qBAAqB;AACxG,gBAAgB,qDAAqD,oEAAoE,aAAa,EAAE;AACxJ,sBAAsB,sBAAsB,qBAAqB,GAAG;AACpE;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC;AACvC,kCAAkC,SAAS;AAC3C,kCAAkC,WAAW,UAAU;AACvD,yCAAyC,cAAc;AACvD;AACA,6GAA6G,OAAO,UAAU;AAC9H,gFAAgF,iBAAiB,OAAO;AACxG,wDAAwD,gBAAgB,QAAQ,OAAO;AACvF,8CAA8C,gBAAgB,gBAAgB,OAAO;AACrF;AACA,iCAAiC;AACjC;AACA;AACA,SAAS,YAAY,aAAa,OAAO,EAAE,UAAU,WAAW;AAChE,mCAAmC,SAAS;AAC5C;AACA;AACA;AACA,oDAAoD,QAAQ;AAC5D;AACA;AACA;AACA,8CAA6C,CAAC,cAAc,EAAC;AAC7D,oBAAoB;AACpB,WAAW,mBAAO,CAAC,cAAI;AACvB,aAAa,mBAAO,CAAC,kBAAM;AAC3B,cAAc,mBAAO,CAAC,uCAAS;AAC/B,wBAAwB,mBAAO,CAAC,2DAAmB;AACnD;AACA;AACA;AACA;AACA,IAAI,mBAAO,CAAC,wDAA4B;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD,4BAA4B;AAC5E,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,IAAwC;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C,6BAA6B;AAC5E;AACA,SAAS;AACT,KAAK;AACL;AACA,oBAAoB;;;;;;;;;;;;AChHP;AACb;AACA;AACA;AACA;AACA,4CAA4C;AAC5C;AACA,8CAA6C,CAAC,cAAc,EAAC;AAC7D,iBAAiB,GAAG,aAAa;AACjC,oCAAoC,mBAAO,CAAC,gCAAa;AACzD,+BAA+B,mBAAO,CAAC,yCAAU;AACjD,8BAA8B,mBAAO,CAAC,oBAAO;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;;;;;;;;;;;;AC/DjB,mC;;;;;;;;;;;ACAA,yC;;;;;;;;;;;ACAA,gC;;;;;;;;;;;ACAA,iC;;;;;;;;;;;ACAA,gC;;;;;;;;;;;ACAA,kC;;;;;;;;;;;ACAA,oC;;;;;;;;;;;ACAA,kC;;;;;;UCAA;UACA;;UAEA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;;UAEA;UACA;;UAEA;UACA;UACA;;;;UCtBA;UACA;UACA;UACA","file":"helpers/rust-cli.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"tauri\"] = factory();\n\telse\n\t\troot[\"tauri\"] = factory();\n})(this, function() {\nreturn ","module.exports = {\n\t\"workspace\": {},\n\t\"package\": {\n\t\t\"name\": \"tauri-cli\",\n\t\t\"version\": \"1.0.0-beta.5\",\n\t\t\"authors\": [\n\t\t\t\"Tauri Programme within The Commons Conservancy\"\n\t\t],\n\t\t\"edition\": \"2018\",\n\t\t\"categories\": [\n\t\t\t\"gui\",\n\t\t\t\"web-programming\"\n\t\t],\n\t\t\"license\": \"Apache-2.0 OR MIT\",\n\t\t\"homepage\": \"https://tauri.studio\",\n\t\t\"repository\": \"https://github.com/tauri-apps/tauri\",\n\t\t\"description\": \"Command line interface for building Tauri apps\",\n\t\t\"include\": [\n\t\t\t\"src/\",\n\t\t\t\"/templates\",\n\t\t\t\"MergeModules/\",\n\t\t\t\"*.json\",\n\t\t\t\"*.rs\"\n\t\t]\n\t},\n\t\"bin\": [\n\t\t{\n\t\t\t\"name\": \"cargo-tauri\",\n\t\t\t\"path\": \"src/main.rs\"\n\t\t}\n\t],\n\t\"dependencies\": {\n\t\t\"clap\": {\n\t\t\t\"version\": \"3.0.0-beta.2\",\n\t\t\t\"features\": [\n\t\t\t\t\"yaml\"\n\t\t\t]\n\t\t},\n\t\t\"anyhow\": \"1.0\",\n\t\t\"tauri-bundler\": {\n\t\t\t\"version\": \"1.0.0-beta.3\",\n\t\t\t\"path\": \"../bundler\"\n\t\t},\n\t\t\"colored\": \"2.0\",\n\t\t\"once_cell\": \"1.8\",\n\t\t\"serde\": {\n\t\t\t\"version\": \"1.0\",\n\t\t\t\"features\": [\n\t\t\t\t\"derive\"\n\t\t\t]\n\t\t},\n\t\t\"serde_json\": \"1.0\",\n\t\t\"serde_with\": \"1.9\",\n\t\t\"notify\": \"4.0\",\n\t\t\"shared_child\": \"0.3\",\n\t\t\"toml_edit\": \"0.2\",\n\t\t\"json-patch\": \"0.2\",\n\t\t\"schemars\": \"0.8\",\n\t\t\"toml\": \"0.5\",\n\t\t\"valico\": \"3.6\",\n\t\t\"handlebars\": \"4.1\",\n\t\t\"include_dir\": \"0.6\",\n\t\t\"minisign\": \"0.6\",\n\t\t\"base64\": \"0.13.0\",\n\t\t\"ureq\": \"2.1\",\n\t\t\"os_info\": \"3.0\",\n\t\t\"semver\": \"1.0\",\n\t\t\"regex\": \"1.5\",\n\t\t\"lazy_static\": \"1\",\n\t\t\"libc\": \"0.2\",\n\t\t\"terminal_size\": \"0.1\",\n\t\t\"unicode-width\": \"0.1\",\n\t\t\"tempfile\": \"3\",\n\t\t\"zeroize\": \"1.3\"\n\t},\n\t\"target\": {\n\t\t\"cfg(windows)\": {\n\t\t\t\"dependencies\": {\n\t\t\t\t\"winapi\": {\n\t\t\t\t\t\"version\": \"0.3\",\n\t\t\t\t\t\"features\": [\n\t\t\t\t\t\t\"winbase\",\n\t\t\t\t\t\t\"winuser\",\n\t\t\t\t\t\t\"consoleapi\",\n\t\t\t\t\t\t\"processenv\",\n\t\t\t\t\t\t\"wincon\"\n\t\t\t\t\t]\n\t\t\t\t},\n\t\t\t\t\"encode_unicode\": \"0.3\"\n\t\t\t}\n\t\t},\n\t\t\"cfg(target_os = \\\"linux\\\")\": {\n\t\t\t\"dependencies\": {\n\t\t\t\t\"heck\": \"0.3\"\n\t\t\t}\n\t\t}\n\t},\n\t\"build-dependencies\": {\n\t\t\"schemars\": \"0.8\",\n\t\t\"serde\": {\n\t\t\t\"version\": \"1.0\",\n\t\t\t\"features\": [\n\t\t\t\t\"derive\"\n\t\t\t]\n\t\t},\n\t\t\"serde_json\": \"1.0\",\n\t\t\"serde_with\": \"1.9\"\n\t}\n}","\"use strict\";\r\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n};\r\nvar __generator = (this && this.__generator) || function (thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n 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;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n};\r\nvar __importDefault = (this && this.__importDefault) || function (mod) {\r\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.downloadRustup = exports.downloadCli = void 0;\r\nvar stream_1 = __importDefault(require(\"stream\"));\r\nvar util_1 = require(\"util\");\r\nvar fs_1 = __importDefault(require(\"fs\"));\r\nvar got_1 = __importDefault(require(\"got\"));\r\nvar path_1 = __importDefault(require(\"path\"));\r\nvar pipeline = util_1.promisify(stream_1.default.pipeline);\r\n// Webpack reads the file at build-time, so this becomes a static var\r\n// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment, @typescript-eslint/no-var-requires, @typescript-eslint/no-unsafe-member-access\r\nvar tauriCliManifest = require('../../../cli.rs/Cargo.toml');\r\nvar downloads = {};\r\nfunction downloadBinaryRelease(tag, asset, outPath) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var url, removeDownloadedCliIfNeeded;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n url = \"https://github.com/tauri-apps/binary-releases/releases/download/\" + tag + \"/\" + asset;\r\n removeDownloadedCliIfNeeded = function () {\r\n try {\r\n if (!(url in downloads)) {\r\n // eslint-disable-next-line security/detect-non-literal-fs-filename\r\n fs_1.default.unlinkSync(outPath);\r\n }\r\n }\r\n finally {\r\n process.exit();\r\n }\r\n };\r\n // on exit, we remove the `tauri-cli` file if the download didn't complete\r\n process.on('exit', removeDownloadedCliIfNeeded);\r\n process.on('SIGINT', removeDownloadedCliIfNeeded);\r\n process.on('SIGTERM', removeDownloadedCliIfNeeded);\r\n process.on('SIGHUP', removeDownloadedCliIfNeeded);\r\n process.on('SIGBREAK', removeDownloadedCliIfNeeded);\r\n // TODO: Check hash of download\r\n // eslint-disable-next-line @typescript-eslint/no-unsafe-call, @typescript-eslint/no-unsafe-member-access, security/detect-non-literal-fs-filename\r\n return [4 /*yield*/, pipeline(got_1.default.stream(url), fs_1.default.createWriteStream(outPath)).catch(function (e) {\r\n try {\r\n // eslint-disable-next-line security/detect-non-literal-fs-filename\r\n fs_1.default.unlinkSync(outPath);\r\n }\r\n catch (_a) { }\r\n throw e;\r\n })\r\n // eslint-disable-next-line security/detect-object-injection\r\n ];\r\n case 1:\r\n // TODO: Check hash of download\r\n // eslint-disable-next-line @typescript-eslint/no-unsafe-call, @typescript-eslint/no-unsafe-member-access, security/detect-non-literal-fs-filename\r\n _a.sent();\r\n // eslint-disable-next-line security/detect-object-injection\r\n downloads[url] = true;\r\n // eslint-disable-next-line security/detect-non-literal-fs-filename\r\n fs_1.default.chmodSync(outPath, 448);\r\n console.log('Download Complete');\r\n return [2 /*return*/];\r\n }\r\n });\r\n });\r\n}\r\nfunction downloadCli() {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var version, platform, extension, outPath;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n version = tauriCliManifest.package.version;\r\n platform = process.platform;\r\n if (platform === 'win32') {\r\n platform = 'windows';\r\n }\r\n else if (platform === 'linux') {\r\n platform = 'linux';\r\n }\r\n else if (platform === 'darwin') {\r\n platform = 'macos';\r\n }\r\n else {\r\n throw Error('Unsupported platform');\r\n }\r\n extension = platform === 'windows' ? '.exe' : '';\r\n outPath = path_1.default.join(__dirname, \"../../bin/tauri-cli\" + extension);\r\n console.log('Downloading Rust CLI...');\r\n return [4 /*yield*/, downloadBinaryRelease(\"tauri-cli-v\" + version, \"tauri-cli_\" + platform + extension, outPath)];\r\n case 1:\r\n _a.sent();\r\n return [2 /*return*/];\r\n }\r\n });\r\n });\r\n}\r\nexports.downloadCli = downloadCli;\r\nfunction downloadRustup() {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var assetName;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n assetName = process.platform === 'win32' ? 'rustup-init.exe' : 'rustup-init.sh';\r\n console.log('Downloading Rustup...');\r\n return [4 /*yield*/, downloadBinaryRelease('rustup', assetName, path_1.default.join(__dirname, \"../../bin/\" + assetName))];\r\n case 1: return [2 /*return*/, _a.sent()];\r\n }\r\n });\r\n });\r\n}\r\nexports.downloadRustup = downloadRustup;\r\n","\"use strict\";\r\n// Copyright 2019-2021 Tauri Programme within The Commons Conservancy\r\n// SPDX-License-Identifier: Apache-2.0\r\n// SPDX-License-Identifier: MIT\r\nvar __importDefault = (this && this.__importDefault) || function (mod) {\r\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar chalk_1 = __importDefault(require(\"chalk\"));\r\nvar ms_1 = __importDefault(require(\"ms\"));\r\nvar prevTime;\r\nexports.default = (function (banner, color) {\r\n if (color === void 0) { color = chalk_1.default.green; }\r\n return function (msg) {\r\n var curr = +new Date();\r\n var diff = curr - (prevTime || curr);\r\n prevTime = curr;\r\n if (msg) {\r\n console.log(\r\n // TODO: proper typings for color and banner\r\n // eslint-disable-next-line @typescript-eslint/restrict-template-expressions, @typescript-eslint/no-unsafe-call\r\n \" \" + color(String(banner)) + \" \" + msg + \" \" + chalk_1.default.green(\"+\" + ms_1.default(diff)));\r\n }\r\n else {\r\n console.log();\r\n }\r\n };\r\n});\r\n","\"use strict\";\r\n// Copyright 2019-2021 Tauri Programme within The Commons Conservancy\r\n// SPDX-License-Identifier: Apache-2.0\r\n// SPDX-License-Identifier: MIT\r\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n};\r\nvar __generator = (this && this.__generator) || function (thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n 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;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n};\r\nvar __spreadArray = (this && this.__spreadArray) || function (to, from) {\r\n for (var i = 0, il = from.length, j = to.length; i < il; i++, j++)\r\n to[j] = from[i];\r\n return to;\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.runOnRustCli = void 0;\r\nvar fs_1 = require(\"fs\");\r\nvar path_1 = require(\"path\");\r\nvar spawn_1 = require(\"./spawn\");\r\nvar download_binary_1 = require(\"./download-binary\");\r\nvar currentTauriCliVersion = function () {\r\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment, @typescript-eslint/no-unsafe-member-access\r\n var tauriCliManifest = \r\n // eslint-disable-next-line @typescript-eslint/no-var-requires\r\n require('../../../cli.rs/Cargo.toml');\r\n return tauriCliManifest.package.version;\r\n};\r\nfunction runOnRustCli(command, args) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var targetPath, targetCliPath, resolveCb, rejectCb, pid, promise, onClose, cliPath, localCliPath;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n targetPath = path_1.resolve(__dirname, '../..');\r\n targetCliPath = path_1.join(targetPath, 'bin/tauri-cli' + (process.platform === 'win32' ? '.exe' : ''));\r\n promise = new Promise(function (resolve, reject) {\r\n resolveCb = resolve;\r\n rejectCb = function () { return reject(new Error()); };\r\n });\r\n onClose = function (code, pid) {\r\n if (code === 0) {\r\n resolveCb();\r\n }\r\n else {\r\n rejectCb();\r\n }\r\n };\r\n if (!fs_1.existsSync(targetCliPath)) return [3 /*break*/, 1];\r\n pid = spawn_1.spawn(targetCliPath, __spreadArray(['tauri', command], args), process.cwd(), onClose);\r\n return [3 /*break*/, 4];\r\n case 1:\r\n if (!(process.env.NODE_ENV === 'production')) return [3 /*break*/, 3];\r\n return [4 /*yield*/, download_binary_1.downloadCli()];\r\n case 2:\r\n _a.sent();\r\n pid = spawn_1.spawn(targetCliPath, __spreadArray(['tauri', command], args), process.cwd(), onClose);\r\n return [3 /*break*/, 4];\r\n case 3:\r\n if (fs_1.existsSync(path_1.resolve(targetPath, '../bundler'))) {\r\n cliPath = path_1.resolve(targetPath, '../cli.rs');\r\n spawn_1.spawnSync('cargo', ['build', '--release'], cliPath);\r\n localCliPath = path_1.resolve(targetPath, '../cli.rs/target/release/cargo-tauri');\r\n pid = spawn_1.spawn(localCliPath, __spreadArray(['tauri', command], args), process.cwd(), onClose);\r\n }\r\n else {\r\n spawn_1.spawnSync('cargo', [\r\n 'install',\r\n '--root',\r\n targetPath,\r\n 'tauri-cli',\r\n '--version',\r\n currentTauriCliVersion()\r\n ], process.cwd());\r\n pid = spawn_1.spawn(targetCliPath, __spreadArray(['tauri', command], args), process.cwd(), onClose);\r\n }\r\n _a.label = 4;\r\n case 4: return [2 /*return*/, { pid: pid, promise: promise }];\r\n }\r\n });\r\n });\r\n}\r\nexports.runOnRustCli = runOnRustCli;\r\n","\"use strict\";\r\n// Copyright 2019-2021 Tauri Programme within The Commons Conservancy\r\n// SPDX-License-Identifier: Apache-2.0\r\n// SPDX-License-Identifier: MIT\r\nvar __importDefault = (this && this.__importDefault) || function (mod) {\r\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.spawnSync = exports.spawn = void 0;\r\nvar cross_spawn_1 = __importDefault(require(\"cross-spawn\"));\r\nvar logger_1 = __importDefault(require(\"./logger\"));\r\nvar chalk_1 = __importDefault(require(\"chalk\"));\r\nvar log = logger_1.default('app:spawn');\r\nvar warn = logger_1.default('app:spawn', chalk_1.default.red);\r\n/*\r\n Returns pid, takes onClose\r\n */\r\nvar spawn = function (cmd, params, cwd, onClose) {\r\n var _a;\r\n log(\"Running \\\"\" + cmd + \" \" + params.join(' ') + \"\\\"\");\r\n log();\r\n // TODO: move to execa?\r\n var runner = cross_spawn_1.default(cmd, params, {\r\n stdio: 'inherit',\r\n cwd: cwd,\r\n env: process.env\r\n });\r\n runner.on('close', function (code) {\r\n var _a;\r\n log();\r\n if (code) {\r\n // eslint-disable-next-line @typescript-eslint/restrict-template-expressions\r\n log(\"Command \\\"\" + cmd + \"\\\" failed with exit code: \" + code);\r\n }\r\n // eslint-disable-next-line @typescript-eslint/prefer-optional-chain\r\n onClose && onClose(code !== null && code !== void 0 ? code : 0, (_a = runner.pid) !== null && _a !== void 0 ? _a : 0);\r\n });\r\n return (_a = runner.pid) !== null && _a !== void 0 ? _a : 0;\r\n};\r\nexports.spawn = spawn;\r\n/*\r\n Returns nothing, takes onFail\r\n */\r\nvar spawnSync = function (cmd, params, cwd, onFail) {\r\n log(\"[sync] Running \\\"\" + cmd + \" \" + params.join(' ') + \"\\\"\");\r\n log();\r\n var runner = cross_spawn_1.default.sync(cmd, params, {\r\n stdio: 'inherit',\r\n cwd: cwd\r\n });\r\n // eslint-disable-next-line @typescript-eslint/prefer-nullish-coalescing\r\n if (runner.status || runner.error) {\r\n warn();\r\n // eslint-disable-next-line @typescript-eslint/restrict-template-expressions\r\n warn(\"\\u26A0\\uFE0F Command \\\"\" + cmd + \"\\\" failed with exit code: \" + runner.status);\r\n if (runner.status === null) {\r\n warn(\"\\u26A0\\uFE0F Please globally install \\\"\" + cmd + \"\\\"\");\r\n }\r\n // eslint-disable-next-line @typescript-eslint/prefer-optional-chain\r\n onFail && onFail();\r\n process.exit(1);\r\n }\r\n};\r\nexports.spawnSync = spawnSync;\r\n","module.exports = require(\"chalk\");;","module.exports = require(\"cross-spawn\");;","module.exports = require(\"fs\");;","module.exports = require(\"got\");;","module.exports = require(\"ms\");;","module.exports = require(\"path\");;","module.exports = require(\"stream\");;","module.exports = require(\"util\");;","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// startup\n// Load entry module and return exports\n// This entry module is referenced by other modules so it can't be inlined\nvar __webpack_exports__ = __webpack_require__(\"./src/helpers/rust-cli.ts\");\n"],"sourceRoot":""} \ No newline at end of file diff --git a/tooling/cli.js/dist/helpers/spawn.js b/tooling/cli.js/dist/helpers/spawn.js deleted file mode 100644 index ec1c8021e..000000000 --- a/tooling/cli.js/dist/helpers/spawn.js +++ /dev/null @@ -1,194 +0,0 @@ -(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 -/******/ "use strict"; -/******/ var __webpack_modules__ = ({ - -/***/ "./src/helpers/logger.ts": -/*!*******************************!*\ - !*** ./src/helpers/logger.ts ***! - \*******************************/ -/***/ (function(__unused_webpack_module, exports, __webpack_require__) { - - -// 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__) { - - -// 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; - - -/***/ }), - -/***/ "chalk": -/*!************************!*\ - !*** external "chalk" ***! - \************************/ -/***/ ((module) => { - -module.exports = require("chalk");; - -/***/ }), - -/***/ "cross-spawn": -/*!******************************!*\ - !*** external "cross-spawn" ***! - \******************************/ -/***/ ((module) => { - -module.exports = require("cross-spawn");; - -/***/ }), - -/***/ "ms": -/*!*********************!*\ - !*** external "ms" ***! - \*********************/ -/***/ ((module) => { - -module.exports = require("ms");; - -/***/ }) - -/******/ }); -/************************************************************************/ -/******/ // 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/helpers/spawn.ts"); -/******/ -/******/ return __webpack_exports__; -/******/ })() -; -}); -//# sourceMappingURL=spawn.js.map \ No newline at end of file diff --git a/tooling/cli.js/dist/helpers/spawn.js.map b/tooling/cli.js/dist/helpers/spawn.js.map deleted file mode 100644 index 8c8f9e5c9..000000000 --- a/tooling/cli.js/dist/helpers/spawn.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["webpack://tauri/webpack/universalModuleDefinition","webpack://tauri/./src/helpers/logger.ts","webpack://tauri/./src/helpers/spawn.ts","webpack://tauri/external \"chalk\"","webpack://tauri/external \"cross-spawn\"","webpack://tauri/external \"ms\"","webpack://tauri/webpack/bootstrap","webpack://tauri/webpack/startup"],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,O;;;;;;;;;;ACVa;AACb;AACA;AACA;AACA;AACA,4CAA4C;AAC5C;AACA,8CAA6C,CAAC,cAAc,EAAC;AAC7D,8BAA8B,mBAAO,CAAC,oBAAO;AAC7C,2BAA2B,mBAAO,CAAC,cAAI;AACvC;AACA,eAAe;AACf,2BAA2B,+BAA+B;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;;;;;;;;;;AC3BY;AACb;AACA;AACA;AACA;AACA,4CAA4C;AAC5C;AACA,8CAA6C,CAAC,cAAc,EAAC;AAC7D,iBAAiB,GAAG,aAAa;AACjC,oCAAoC,mBAAO,CAAC,gCAAa;AACzD,+BAA+B,mBAAO,CAAC,yCAAU;AACjD,8BAA8B,mBAAO,CAAC,oBAAO;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;;;;;;;;;;;AC/DjB,mC;;;;;;;;;;ACAA,yC;;;;;;;;;;ACAA,gC;;;;;;UCAA;UACA;;UAEA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;;UAEA;UACA;;UAEA;UACA;UACA;;;;UCtBA;UACA;UACA;UACA","file":"helpers/spawn.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"tauri\"] = factory();\n\telse\n\t\troot[\"tauri\"] = factory();\n})(this, function() {\nreturn ","\"use strict\";\r\n// Copyright 2019-2021 Tauri Programme within The Commons Conservancy\r\n// SPDX-License-Identifier: Apache-2.0\r\n// SPDX-License-Identifier: MIT\r\nvar __importDefault = (this && this.__importDefault) || function (mod) {\r\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar chalk_1 = __importDefault(require(\"chalk\"));\r\nvar ms_1 = __importDefault(require(\"ms\"));\r\nvar prevTime;\r\nexports.default = (function (banner, color) {\r\n if (color === void 0) { color = chalk_1.default.green; }\r\n return function (msg) {\r\n var curr = +new Date();\r\n var diff = curr - (prevTime || curr);\r\n prevTime = curr;\r\n if (msg) {\r\n console.log(\r\n // TODO: proper typings for color and banner\r\n // eslint-disable-next-line @typescript-eslint/restrict-template-expressions, @typescript-eslint/no-unsafe-call\r\n \" \" + color(String(banner)) + \" \" + msg + \" \" + chalk_1.default.green(\"+\" + ms_1.default(diff)));\r\n }\r\n else {\r\n console.log();\r\n }\r\n };\r\n});\r\n","\"use strict\";\r\n// Copyright 2019-2021 Tauri Programme within The Commons Conservancy\r\n// SPDX-License-Identifier: Apache-2.0\r\n// SPDX-License-Identifier: MIT\r\nvar __importDefault = (this && this.__importDefault) || function (mod) {\r\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.spawnSync = exports.spawn = void 0;\r\nvar cross_spawn_1 = __importDefault(require(\"cross-spawn\"));\r\nvar logger_1 = __importDefault(require(\"./logger\"));\r\nvar chalk_1 = __importDefault(require(\"chalk\"));\r\nvar log = logger_1.default('app:spawn');\r\nvar warn = logger_1.default('app:spawn', chalk_1.default.red);\r\n/*\r\n Returns pid, takes onClose\r\n */\r\nvar spawn = function (cmd, params, cwd, onClose) {\r\n var _a;\r\n log(\"Running \\\"\" + cmd + \" \" + params.join(' ') + \"\\\"\");\r\n log();\r\n // TODO: move to execa?\r\n var runner = cross_spawn_1.default(cmd, params, {\r\n stdio: 'inherit',\r\n cwd: cwd,\r\n env: process.env\r\n });\r\n runner.on('close', function (code) {\r\n var _a;\r\n log();\r\n if (code) {\r\n // eslint-disable-next-line @typescript-eslint/restrict-template-expressions\r\n log(\"Command \\\"\" + cmd + \"\\\" failed with exit code: \" + code);\r\n }\r\n // eslint-disable-next-line @typescript-eslint/prefer-optional-chain\r\n onClose && onClose(code !== null && code !== void 0 ? code : 0, (_a = runner.pid) !== null && _a !== void 0 ? _a : 0);\r\n });\r\n return (_a = runner.pid) !== null && _a !== void 0 ? _a : 0;\r\n};\r\nexports.spawn = spawn;\r\n/*\r\n Returns nothing, takes onFail\r\n */\r\nvar spawnSync = function (cmd, params, cwd, onFail) {\r\n log(\"[sync] Running \\\"\" + cmd + \" \" + params.join(' ') + \"\\\"\");\r\n log();\r\n var runner = cross_spawn_1.default.sync(cmd, params, {\r\n stdio: 'inherit',\r\n cwd: cwd\r\n });\r\n // eslint-disable-next-line @typescript-eslint/prefer-nullish-coalescing\r\n if (runner.status || runner.error) {\r\n warn();\r\n // eslint-disable-next-line @typescript-eslint/restrict-template-expressions\r\n warn(\"\\u26A0\\uFE0F Command \\\"\" + cmd + \"\\\" failed with exit code: \" + runner.status);\r\n if (runner.status === null) {\r\n warn(\"\\u26A0\\uFE0F Please globally install \\\"\" + cmd + \"\\\"\");\r\n }\r\n // eslint-disable-next-line @typescript-eslint/prefer-optional-chain\r\n onFail && onFail();\r\n process.exit(1);\r\n }\r\n};\r\nexports.spawnSync = spawnSync;\r\n","module.exports = require(\"chalk\");;","module.exports = require(\"cross-spawn\");;","module.exports = require(\"ms\");;","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// startup\n// Load entry module and return exports\n// This entry module is referenced by other modules so it can't be inlined\nvar __webpack_exports__ = __webpack_require__(\"./src/helpers/spawn.ts\");\n"],"sourceRoot":""} \ No newline at end of file